Codebase list getfem++ / 1e39cbf
Merge tag 'upstream/5.0+dfsg1' Upstream version 5.0+dfsg1 Anton Gladky 7 years ago
345 changed file(s) with 0 addition(s) and 158258 deletion(s). Raw diff Collapse all Expand all
+0
-347
compile less more
0 #! /bin/sh
1 # Wrapper for compilers which do not understand '-c -o'.
2
3 scriptversion=2012-10-14.11; # UTC
4
5 # Copyright (C) 1999-2013 Free Software Foundation, Inc.
6 # Written by Tom Tromey <tromey@cygnus.com>.
7 #
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2, or (at your option)
11 # any later version.
12 #
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with this program. If not, see <http://www.gnu.org/licenses/>.
20
21 # As a special exception to the GNU General Public License, if you
22 # distribute this file as part of a program that contains a
23 # configuration script generated by Autoconf, you may include it under
24 # the same distribution terms that you use for the rest of that program.
25
26 # This file is maintained in Automake, please report
27 # bugs to <bug-automake@gnu.org> or send patches to
28 # <automake-patches@gnu.org>.
29
30 nl='
31 '
32
33 # We need space, tab and new line, in precisely that order. Quoting is
34 # there to prevent tools from complaining about whitespace usage.
35 IFS=" "" $nl"
36
37 file_conv=
38
39 # func_file_conv build_file lazy
40 # Convert a $build file to $host form and store it in $file
41 # Currently only supports Windows hosts. If the determined conversion
42 # type is listed in (the comma separated) LAZY, no conversion will
43 # take place.
44 func_file_conv ()
45 {
46 file=$1
47 case $file in
48 / | /[!/]*) # absolute file, and not a UNC file
49 if test -z "$file_conv"; then
50 # lazily determine how to convert abs files
51 case `uname -s` in
52 MINGW*)
53 file_conv=mingw
54 ;;
55 CYGWIN*)
56 file_conv=cygwin
57 ;;
58 *)
59 file_conv=wine
60 ;;
61 esac
62 fi
63 case $file_conv/,$2, in
64 *,$file_conv,*)
65 ;;
66 mingw/*)
67 file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
68 ;;
69 cygwin/*)
70 file=`cygpath -m "$file" || echo "$file"`
71 ;;
72 wine/*)
73 file=`winepath -w "$file" || echo "$file"`
74 ;;
75 esac
76 ;;
77 esac
78 }
79
80 # func_cl_dashL linkdir
81 # Make cl look for libraries in LINKDIR
82 func_cl_dashL ()
83 {
84 func_file_conv "$1"
85 if test -z "$lib_path"; then
86 lib_path=$file
87 else
88 lib_path="$lib_path;$file"
89 fi
90 linker_opts="$linker_opts -LIBPATH:$file"
91 }
92
93 # func_cl_dashl library
94 # Do a library search-path lookup for cl
95 func_cl_dashl ()
96 {
97 lib=$1
98 found=no
99 save_IFS=$IFS
100 IFS=';'
101 for dir in $lib_path $LIB
102 do
103 IFS=$save_IFS
104 if $shared && test -f "$dir/$lib.dll.lib"; then
105 found=yes
106 lib=$dir/$lib.dll.lib
107 break
108 fi
109 if test -f "$dir/$lib.lib"; then
110 found=yes
111 lib=$dir/$lib.lib
112 break
113 fi
114 if test -f "$dir/lib$lib.a"; then
115 found=yes
116 lib=$dir/lib$lib.a
117 break
118 fi
119 done
120 IFS=$save_IFS
121
122 if test "$found" != yes; then
123 lib=$lib.lib
124 fi
125 }
126
127 # func_cl_wrapper cl arg...
128 # Adjust compile command to suit cl
129 func_cl_wrapper ()
130 {
131 # Assume a capable shell
132 lib_path=
133 shared=:
134 linker_opts=
135 for arg
136 do
137 if test -n "$eat"; then
138 eat=
139 else
140 case $1 in
141 -o)
142 # configure might choose to run compile as 'compile cc -o foo foo.c'.
143 eat=1
144 case $2 in
145 *.o | *.[oO][bB][jJ])
146 func_file_conv "$2"
147 set x "$@" -Fo"$file"
148 shift
149 ;;
150 *)
151 func_file_conv "$2"
152 set x "$@" -Fe"$file"
153 shift
154 ;;
155 esac
156 ;;
157 -I)
158 eat=1
159 func_file_conv "$2" mingw
160 set x "$@" -I"$file"
161 shift
162 ;;
163 -I*)
164 func_file_conv "${1#-I}" mingw
165 set x "$@" -I"$file"
166 shift
167 ;;
168 -l)
169 eat=1
170 func_cl_dashl "$2"
171 set x "$@" "$lib"
172 shift
173 ;;
174 -l*)
175 func_cl_dashl "${1#-l}"
176 set x "$@" "$lib"
177 shift
178 ;;
179 -L)
180 eat=1
181 func_cl_dashL "$2"
182 ;;
183 -L*)
184 func_cl_dashL "${1#-L}"
185 ;;
186 -static)
187 shared=false
188 ;;
189 -Wl,*)
190 arg=${1#-Wl,}
191 save_ifs="$IFS"; IFS=','
192 for flag in $arg; do
193 IFS="$save_ifs"
194 linker_opts="$linker_opts $flag"
195 done
196 IFS="$save_ifs"
197 ;;
198 -Xlinker)
199 eat=1
200 linker_opts="$linker_opts $2"
201 ;;
202 -*)
203 set x "$@" "$1"
204 shift
205 ;;
206 *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
207 func_file_conv "$1"
208 set x "$@" -Tp"$file"
209 shift
210 ;;
211 *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
212 func_file_conv "$1" mingw
213 set x "$@" "$file"
214 shift
215 ;;
216 *)
217 set x "$@" "$1"
218 shift
219 ;;
220 esac
221 fi
222 shift
223 done
224 if test -n "$linker_opts"; then
225 linker_opts="-link$linker_opts"
226 fi
227 exec "$@" $linker_opts
228 exit 1
229 }
230
231 eat=
232
233 case $1 in
234 '')
235 echo "$0: No command. Try '$0 --help' for more information." 1>&2
236 exit 1;
237 ;;
238 -h | --h*)
239 cat <<\EOF
240 Usage: compile [--help] [--version] PROGRAM [ARGS]
241
242 Wrapper for compilers which do not understand '-c -o'.
243 Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
244 arguments, and rename the output as expected.
245
246 If you are trying to build a whole package this is not the
247 right script to run: please start by reading the file 'INSTALL'.
248
249 Report bugs to <bug-automake@gnu.org>.
250 EOF
251 exit $?
252 ;;
253 -v | --v*)
254 echo "compile $scriptversion"
255 exit $?
256 ;;
257 cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
258 func_cl_wrapper "$@" # Doesn't return...
259 ;;
260 esac
261
262 ofile=
263 cfile=
264
265 for arg
266 do
267 if test -n "$eat"; then
268 eat=
269 else
270 case $1 in
271 -o)
272 # configure might choose to run compile as 'compile cc -o foo foo.c'.
273 # So we strip '-o arg' only if arg is an object.
274 eat=1
275 case $2 in
276 *.o | *.obj)
277 ofile=$2
278 ;;
279 *)
280 set x "$@" -o "$2"
281 shift
282 ;;
283 esac
284 ;;
285 *.c)
286 cfile=$1
287 set x "$@" "$1"
288 shift
289 ;;
290 *)
291 set x "$@" "$1"
292 shift
293 ;;
294 esac
295 fi
296 shift
297 done
298
299 if test -z "$ofile" || test -z "$cfile"; then
300 # If no '-o' option was seen then we might have been invoked from a
301 # pattern rule where we don't need one. That is ok -- this is a
302 # normal compilation that the losing compiler can handle. If no
303 # '.c' file was seen then we are probably linking. That is also
304 # ok.
305 exec "$@"
306 fi
307
308 # Name of file we expect compiler to create.
309 cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
310
311 # Create the lock directory.
312 # Note: use '[/\\:.-]' here to ensure that we don't use the same name
313 # that we are using for the .o file. Also, base the name on the expected
314 # object file name, since that is what matters with a parallel build.
315 lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
316 while true; do
317 if mkdir "$lockdir" >/dev/null 2>&1; then
318 break
319 fi
320 sleep 1
321 done
322 # FIXME: race condition here if user kills between mkdir and trap.
323 trap "rmdir '$lockdir'; exit 1" 1 2 15
324
325 # Run the compile.
326 "$@"
327 ret=$?
328
329 if test -f "$cofile"; then
330 test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
331 elif test -f "${cofile}bj"; then
332 test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
333 fi
334
335 rmdir "$lockdir"
336 exit $ret
337
338 # Local Variables:
339 # mode: shell-script
340 # sh-indentation: 2
341 # eval: (add-hook 'write-file-hooks 'time-stamp)
342 # time-stamp-start: "scriptversion="
343 # time-stamp-format: "%:y-%02m-%02d.%02H"
344 # time-stamp-time-zone: "UTC"
345 # time-stamp-end: "; # UTC"
346 # End:
+0
-28129
configure less more
0 #! /bin/sh
1 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.69 for getfem 5.0.
3 #
4 #
5 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
6 #
7 #
8 # This configure script is free software; the Free Software Foundation
9 # gives unlimited permission to copy, distribute and modify it.
10 ## -------------------- ##
11 ## M4sh Initialization. ##
12 ## -------------------- ##
13
14 # Be more Bourne compatible
15 DUALCASE=1; export DUALCASE # for MKS sh
16 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
17 emulate sh
18 NULLCMD=:
19 # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
20 # is contrary to our usage. Disable this feature.
21 alias -g '${1+"$@"}'='"$@"'
22 setopt NO_GLOB_SUBST
23 else
24 case `(set -o) 2>/dev/null` in #(
25 *posix*) :
26 set -o posix ;; #(
27 *) :
28 ;;
29 esac
30 fi
31
32
33 as_nl='
34 '
35 export as_nl
36 # Printing a long string crashes Solaris 7 /usr/bin/printf.
37 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
38 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
39 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
40 # Prefer a ksh shell builtin over an external printf program on Solaris,
41 # but without wasting forks for bash or zsh.
42 if test -z "$BASH_VERSION$ZSH_VERSION" \
43 && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
44 as_echo='print -r --'
45 as_echo_n='print -rn --'
46 elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
47 as_echo='printf %s\n'
48 as_echo_n='printf %s'
49 else
50 if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
51 as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
52 as_echo_n='/usr/ucb/echo -n'
53 else
54 as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
55 as_echo_n_body='eval
56 arg=$1;
57 case $arg in #(
58 *"$as_nl"*)
59 expr "X$arg" : "X\\(.*\\)$as_nl";
60 arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
61 esac;
62 expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
63 '
64 export as_echo_n_body
65 as_echo_n='sh -c $as_echo_n_body as_echo'
66 fi
67 export as_echo_body
68 as_echo='sh -c $as_echo_body as_echo'
69 fi
70
71 # The user is always right.
72 if test "${PATH_SEPARATOR+set}" != set; then
73 PATH_SEPARATOR=:
74 (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
75 (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
76 PATH_SEPARATOR=';'
77 }
78 fi
79
80
81 # IFS
82 # We need space, tab and new line, in precisely that order. Quoting is
83 # there to prevent editors from complaining about space-tab.
84 # (If _AS_PATH_WALK were called with IFS unset, it would disable word
85 # splitting by setting IFS to empty value.)
86 IFS=" "" $as_nl"
87
88 # Find who we are. Look in the path if we contain no directory separator.
89 as_myself=
90 case $0 in #((
91 *[\\/]* ) as_myself=$0 ;;
92 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
93 for as_dir in $PATH
94 do
95 IFS=$as_save_IFS
96 test -z "$as_dir" && as_dir=.
97 test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
98 done
99 IFS=$as_save_IFS
100
101 ;;
102 esac
103 # We did not find ourselves, most probably we were run as `sh COMMAND'
104 # in which case we are not to be found in the path.
105 if test "x$as_myself" = x; then
106 as_myself=$0
107 fi
108 if test ! -f "$as_myself"; then
109 $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
110 exit 1
111 fi
112
113 # Unset variables that we do not need and which cause bugs (e.g. in
114 # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
115 # suppresses any "Segmentation fault" message there. '((' could
116 # trigger a bug in pdksh 5.2.14.
117 for as_var in BASH_ENV ENV MAIL MAILPATH
118 do eval test x\${$as_var+set} = xset \
119 && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
120 done
121 PS1='$ '
122 PS2='> '
123 PS4='+ '
124
125 # NLS nuisances.
126 LC_ALL=C
127 export LC_ALL
128 LANGUAGE=C
129 export LANGUAGE
130
131 # CDPATH.
132 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
133
134 # Use a proper internal environment variable to ensure we don't fall
135 # into an infinite loop, continuously re-executing ourselves.
136 if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
137 _as_can_reexec=no; export _as_can_reexec;
138 # We cannot yet assume a decent shell, so we have to provide a
139 # neutralization value for shells without unset; and this also
140 # works around shells that cannot unset nonexistent variables.
141 # Preserve -v and -x to the replacement shell.
142 BASH_ENV=/dev/null
143 ENV=/dev/null
144 (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
145 case $- in # ((((
146 *v*x* | *x*v* ) as_opts=-vx ;;
147 *v* ) as_opts=-v ;;
148 *x* ) as_opts=-x ;;
149 * ) as_opts= ;;
150 esac
151 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
152 # Admittedly, this is quite paranoid, since all the known shells bail
153 # out after a failed `exec'.
154 $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
155 as_fn_exit 255
156 fi
157 # We don't want this to propagate to other subprocesses.
158 { _as_can_reexec=; unset _as_can_reexec;}
159 if test "x$CONFIG_SHELL" = x; then
160 as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
161 emulate sh
162 NULLCMD=:
163 # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
164 # is contrary to our usage. Disable this feature.
165 alias -g '\${1+\"\$@\"}'='\"\$@\"'
166 setopt NO_GLOB_SUBST
167 else
168 case \`(set -o) 2>/dev/null\` in #(
169 *posix*) :
170 set -o posix ;; #(
171 *) :
172 ;;
173 esac
174 fi
175 "
176 as_required="as_fn_return () { (exit \$1); }
177 as_fn_success () { as_fn_return 0; }
178 as_fn_failure () { as_fn_return 1; }
179 as_fn_ret_success () { return 0; }
180 as_fn_ret_failure () { return 1; }
181
182 exitcode=0
183 as_fn_success || { exitcode=1; echo as_fn_success failed.; }
184 as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
185 as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
186 as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
187 if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
188
189 else
190 exitcode=1; echo positional parameters were not saved.
191 fi
192 test x\$exitcode = x0 || exit 1
193 test -x / || exit 1"
194 as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
195 as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
196 eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
197 test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
198
199 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
200 ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
201 ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
202 ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
203 PATH=/empty FPATH=/empty; export PATH FPATH
204 test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
205 || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
206 test \$(( 1 + 1 )) = 2 || exit 1"
207 if (eval "$as_required") 2>/dev/null; then :
208 as_have_required=yes
209 else
210 as_have_required=no
211 fi
212 if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
213
214 else
215 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
216 as_found=false
217 for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
218 do
219 IFS=$as_save_IFS
220 test -z "$as_dir" && as_dir=.
221 as_found=:
222 case $as_dir in #(
223 /*)
224 for as_base in sh bash ksh sh5; do
225 # Try only shells that exist, to save several forks.
226 as_shell=$as_dir/$as_base
227 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
228 { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
229 CONFIG_SHELL=$as_shell as_have_required=yes
230 if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
231 break 2
232 fi
233 fi
234 done;;
235 esac
236 as_found=false
237 done
238 $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
239 { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
240 CONFIG_SHELL=$SHELL as_have_required=yes
241 fi; }
242 IFS=$as_save_IFS
243
244
245 if test "x$CONFIG_SHELL" != x; then :
246 export CONFIG_SHELL
247 # We cannot yet assume a decent shell, so we have to provide a
248 # neutralization value for shells without unset; and this also
249 # works around shells that cannot unset nonexistent variables.
250 # Preserve -v and -x to the replacement shell.
251 BASH_ENV=/dev/null
252 ENV=/dev/null
253 (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
254 case $- in # ((((
255 *v*x* | *x*v* ) as_opts=-vx ;;
256 *v* ) as_opts=-v ;;
257 *x* ) as_opts=-x ;;
258 * ) as_opts= ;;
259 esac
260 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
261 # Admittedly, this is quite paranoid, since all the known shells bail
262 # out after a failed `exec'.
263 $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
264 exit 255
265 fi
266
267 if test x$as_have_required = xno; then :
268 $as_echo "$0: This script requires a shell more modern than all"
269 $as_echo "$0: the shells that I found on your system."
270 if test x${ZSH_VERSION+set} = xset ; then
271 $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
272 $as_echo "$0: be upgraded to zsh 4.3.4 or later."
273 else
274 $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
275 $0: including any error possibly output before this
276 $0: message. Then install a modern shell, or manually run
277 $0: the script under such a shell if you do have one."
278 fi
279 exit 1
280 fi
281 fi
282 fi
283 SHELL=${CONFIG_SHELL-/bin/sh}
284 export SHELL
285 # Unset more variables known to interfere with behavior of common tools.
286 CLICOLOR_FORCE= GREP_OPTIONS=
287 unset CLICOLOR_FORCE GREP_OPTIONS
288
289 ## --------------------- ##
290 ## M4sh Shell Functions. ##
291 ## --------------------- ##
292 # as_fn_unset VAR
293 # ---------------
294 # Portably unset VAR.
295 as_fn_unset ()
296 {
297 { eval $1=; unset $1;}
298 }
299 as_unset=as_fn_unset
300
301 # as_fn_set_status STATUS
302 # -----------------------
303 # Set $? to STATUS, without forking.
304 as_fn_set_status ()
305 {
306 return $1
307 } # as_fn_set_status
308
309 # as_fn_exit STATUS
310 # -----------------
311 # Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
312 as_fn_exit ()
313 {
314 set +e
315 as_fn_set_status $1
316 exit $1
317 } # as_fn_exit
318
319 # as_fn_mkdir_p
320 # -------------
321 # Create "$as_dir" as a directory, including parents if necessary.
322 as_fn_mkdir_p ()
323 {
324
325 case $as_dir in #(
326 -*) as_dir=./$as_dir;;
327 esac
328 test -d "$as_dir" || eval $as_mkdir_p || {
329 as_dirs=
330 while :; do
331 case $as_dir in #(
332 *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
333 *) as_qdir=$as_dir;;
334 esac
335 as_dirs="'$as_qdir' $as_dirs"
336 as_dir=`$as_dirname -- "$as_dir" ||
337 $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
338 X"$as_dir" : 'X\(//\)[^/]' \| \
339 X"$as_dir" : 'X\(//\)$' \| \
340 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
341 $as_echo X"$as_dir" |
342 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
343 s//\1/
344 q
345 }
346 /^X\(\/\/\)[^/].*/{
347 s//\1/
348 q
349 }
350 /^X\(\/\/\)$/{
351 s//\1/
352 q
353 }
354 /^X\(\/\).*/{
355 s//\1/
356 q
357 }
358 s/.*/./; q'`
359 test -d "$as_dir" && break
360 done
361 test -z "$as_dirs" || eval "mkdir $as_dirs"
362 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
363
364
365 } # as_fn_mkdir_p
366
367 # as_fn_executable_p FILE
368 # -----------------------
369 # Test if FILE is an executable regular file.
370 as_fn_executable_p ()
371 {
372 test -f "$1" && test -x "$1"
373 } # as_fn_executable_p
374 # as_fn_append VAR VALUE
375 # ----------------------
376 # Append the text in VALUE to the end of the definition contained in VAR. Take
377 # advantage of any shell optimizations that allow amortized linear growth over
378 # repeated appends, instead of the typical quadratic growth present in naive
379 # implementations.
380 if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
381 eval 'as_fn_append ()
382 {
383 eval $1+=\$2
384 }'
385 else
386 as_fn_append ()
387 {
388 eval $1=\$$1\$2
389 }
390 fi # as_fn_append
391
392 # as_fn_arith ARG...
393 # ------------------
394 # Perform arithmetic evaluation on the ARGs, and store the result in the
395 # global $as_val. Take advantage of shells that can avoid forks. The arguments
396 # must be portable across $(()) and expr.
397 if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
398 eval 'as_fn_arith ()
399 {
400 as_val=$(( $* ))
401 }'
402 else
403 as_fn_arith ()
404 {
405 as_val=`expr "$@" || test $? -eq 1`
406 }
407 fi # as_fn_arith
408
409
410 # as_fn_error STATUS ERROR [LINENO LOG_FD]
411 # ----------------------------------------
412 # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
413 # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
414 # script with STATUS, using 1 if that was 0.
415 as_fn_error ()
416 {
417 as_status=$1; test $as_status -eq 0 && as_status=1
418 if test "$4"; then
419 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
420 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
421 fi
422 $as_echo "$as_me: error: $2" >&2
423 as_fn_exit $as_status
424 } # as_fn_error
425
426 if expr a : '\(a\)' >/dev/null 2>&1 &&
427 test "X`expr 00001 : '.*\(...\)'`" = X001; then
428 as_expr=expr
429 else
430 as_expr=false
431 fi
432
433 if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
434 as_basename=basename
435 else
436 as_basename=false
437 fi
438
439 if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
440 as_dirname=dirname
441 else
442 as_dirname=false
443 fi
444
445 as_me=`$as_basename -- "$0" ||
446 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
447 X"$0" : 'X\(//\)$' \| \
448 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
449 $as_echo X/"$0" |
450 sed '/^.*\/\([^/][^/]*\)\/*$/{
451 s//\1/
452 q
453 }
454 /^X\/\(\/\/\)$/{
455 s//\1/
456 q
457 }
458 /^X\/\(\/\).*/{
459 s//\1/
460 q
461 }
462 s/.*/./; q'`
463
464 # Avoid depending upon Character Ranges.
465 as_cr_letters='abcdefghijklmnopqrstuvwxyz'
466 as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
467 as_cr_Letters=$as_cr_letters$as_cr_LETTERS
468 as_cr_digits='0123456789'
469 as_cr_alnum=$as_cr_Letters$as_cr_digits
470
471
472 as_lineno_1=$LINENO as_lineno_1a=$LINENO
473 as_lineno_2=$LINENO as_lineno_2a=$LINENO
474 eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
475 test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
476 # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
477 sed -n '
478 p
479 /[$]LINENO/=
480 ' <$as_myself |
481 sed '
482 s/[$]LINENO.*/&-/
483 t lineno
484 b
485 :lineno
486 N
487 :loop
488 s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
489 t loop
490 s/-\n.*//
491 ' >$as_me.lineno &&
492 chmod +x "$as_me.lineno" ||
493 { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
494
495 # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
496 # already done that, so ensure we don't try to do so again and fall
497 # in an infinite loop. This has already happened in practice.
498 _as_can_reexec=no; export _as_can_reexec
499 # Don't try to exec as it changes $[0], causing all sort of problems
500 # (the dirname of $[0] is not the place where we might find the
501 # original and so on. Autoconf is especially sensitive to this).
502 . "./$as_me.lineno"
503 # Exit status is that of the last command.
504 exit
505 }
506
507 ECHO_C= ECHO_N= ECHO_T=
508 case `echo -n x` in #(((((
509 -n*)
510 case `echo 'xy\c'` in
511 *c*) ECHO_T=' ';; # ECHO_T is single tab character.
512 xy) ECHO_C='\c';;
513 *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
514 ECHO_T=' ';;
515 esac;;
516 *)
517 ECHO_N='-n';;
518 esac
519
520 rm -f conf$$ conf$$.exe conf$$.file
521 if test -d conf$$.dir; then
522 rm -f conf$$.dir/conf$$.file
523 else
524 rm -f conf$$.dir
525 mkdir conf$$.dir 2>/dev/null
526 fi
527 if (echo >conf$$.file) 2>/dev/null; then
528 if ln -s conf$$.file conf$$ 2>/dev/null; then
529 as_ln_s='ln -s'
530 # ... but there are two gotchas:
531 # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
532 # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
533 # In both cases, we have to default to `cp -pR'.
534 ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
535 as_ln_s='cp -pR'
536 elif ln conf$$.file conf$$ 2>/dev/null; then
537 as_ln_s=ln
538 else
539 as_ln_s='cp -pR'
540 fi
541 else
542 as_ln_s='cp -pR'
543 fi
544 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
545 rmdir conf$$.dir 2>/dev/null
546
547 if mkdir -p . 2>/dev/null; then
548 as_mkdir_p='mkdir -p "$as_dir"'
549 else
550 test -d ./-p && rmdir ./-p
551 as_mkdir_p=false
552 fi
553
554 as_test_x='test -x'
555 as_executable_p=as_fn_executable_p
556
557 # Sed expression to map a string onto a valid CPP name.
558 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
559
560 # Sed expression to map a string onto a valid variable name.
561 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
562
563 SHELL=${CONFIG_SHELL-/bin/sh}
564
565
566 test -n "$DJDIR" || exec 7<&0 </dev/null
567 exec 6>&1
568
569 # Name of the host.
570 # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
571 # so uname gets run too.
572 ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
573
574 #
575 # Initializations.
576 #
577 ac_default_prefix=/usr/local
578 ac_clean_files=
579 ac_config_libobj_dir=.
580 LIBOBJS=
581 cross_compiling=no
582 subdirs=
583 MFLAGS=
584 MAKEFLAGS=
585
586 # Identity of this package.
587 PACKAGE_NAME='getfem'
588 PACKAGE_TARNAME='getfem'
589 PACKAGE_VERSION='5.0'
590 PACKAGE_STRING='getfem 5.0'
591 PACKAGE_BUGREPORT=''
592 PACKAGE_URL=''
593
594 ac_unique_file="install-sh"
595 # Factoring default headers for most tests.
596 ac_includes_default="\
597 #include <stdio.h>
598 #ifdef HAVE_SYS_TYPES_H
599 # include <sys/types.h>
600 #endif
601 #ifdef HAVE_SYS_STAT_H
602 # include <sys/stat.h>
603 #endif
604 #ifdef STDC_HEADERS
605 # include <stdlib.h>
606 # include <stddef.h>
607 #else
608 # ifdef HAVE_STDLIB_H
609 # include <stdlib.h>
610 # endif
611 #endif
612 #ifdef HAVE_STRING_H
613 # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
614 # include <memory.h>
615 # endif
616 # include <string.h>
617 #endif
618 #ifdef HAVE_STRINGS_H
619 # include <strings.h>
620 #endif
621 #ifdef HAVE_INTTYPES_H
622 # include <inttypes.h>
623 #endif
624 #ifdef HAVE_STDINT_H
625 # include <stdint.h>
626 #endif
627 #ifdef HAVE_UNISTD_H
628 # include <unistd.h>
629 #endif"
630
631 ac_subst_vars='am__EXEEXT_FALSE
632 am__EXEEXT_TRUE
633 LTLIBOBJS
634 LIBOBJS
635 IM_METHODS_LOC
636 IM_METHODS
637 GETFEM_BUILD_INTERFACE_PATH
638 GETFEM_INTERFACE_PATH
639 SCILAB_VERSION
640 SCILAB_VERSION_MICRO
641 SCILAB_VERSION_MINOR
642 SCILAB_VERSION_MAJOR
643 SCILAB_TOOLBOX_DIR
644 SCILAB_DIR
645 SCILAB_EXE
646 HAVE_SCILAB
647 BUILDSCILAB_FALSE
648 BUILDSCILAB_TRUE
649 has_scilab
650 BUILDPYTHONPAR_FALSE
651 BUILDPYTHONPAR_TRUE
652 BUILDPYTHON_FALSE
653 BUILDPYTHON_TRUE
654 PYTHON_EXTRA_LDFLAGS
655 PYTHON_EXTRA_LIBS
656 PYTHON_SITE_PKG
657 PYTHON_LDFLAGS
658 PYTHON_CPPFLAGS
659 pkgpyexecdir
660 pyexecdir
661 pkgpythondir
662 pythondir
663 PYTHON_PLATFORM
664 PYTHON_EXEC_PREFIX
665 PYTHON_PREFIX
666 PYTHON_VERSION
667 PYTHON
668 STDCPP_STATICLIBS
669 GFSERVERFLAGS
670 BUILDMEXRPC_FALSE
671 BUILDMEXRPC_TRUE
672 GETFEM_SERVER
673 RPC_LIB
674 RPC_INC_DIR
675 USE_MINGW_MEX_FALSE
676 USE_MINGW_MEX_TRUE
677 MATLAB_COM_EXT
678 MATLAB_RELEASE
679 MATLAB_INC_DIR
680 MATLAB_ROOT
681 BUILDMEX_FALSE
682 BUILDMEX_TRUE
683 MEX
684 TOOLBOXDIR
685 MATLAB_OBJ_DIRS
686 PSEUDO_FUNCTIONS_LOC
687 PSEUDO_FUNCTIONS
688 BOOST_LIBS
689 BOOST_THREAD_LIB
690 BOOST_SYSTEM_LIB
691 BOOST_LDFLAGS
692 BOOST_CPPFLAGS
693 DISTCLEANMESH
694 LIBTOOL_VERSION_INFO
695 CONFIGURE_ARGS
696 BUILDDATE
697 BUILDER
698 METIS_LIBS
699 METIS_FALSE
700 METIS_TRUE
701 MUMPS_LIBS
702 MUMPS_FALSE
703 MUMPS_TRUE
704 QHULL_LIBS
705 QHULL_FALSE
706 QHULL_TRUE
707 USEBLASLITE_FALSE
708 USEBLASLITE_TRUE
709 SUPERLU_LIBS
710 SUPERLU_SRC
711 SUPERLU_CPPFLAGS
712 AM_CXXFLAGS
713 OPENMP_CXXFLAGS
714 BLAS_LIBS
715 LIBTOOL_DEPS
716 CPP
717 OTOOL64
718 OTOOL
719 LIPO
720 NMEDIT
721 DSYMUTIL
722 MANIFEST_TOOL
723 RANLIB
724 ac_ct_AR
725 AR
726 DLLTOOL
727 OBJDUMP
728 LN_S
729 NM
730 ac_ct_DUMPBIN
731 DUMPBIN
732 LD
733 FGREP
734 EGREP
735 GREP
736 SED
737 LIBTOOL
738 SUPLDFLAGS
739 FCLIBS
740 host_os
741 host_vendor
742 host_cpu
743 host
744 build_os
745 build_vendor
746 build_cpu
747 build
748 CXXCPP
749 FCFLAGS
750 ac_ct_FC
751 FC
752 MPIFC
753 am__fastdepCC_FALSE
754 am__fastdepCC_TRUE
755 CCDEPMODE
756 CFLAGS
757 ac_ct_CC
758 CC
759 MPICC
760 am__fastdepCXX_FALSE
761 am__fastdepCXX_TRUE
762 CXXDEPMODE
763 am__nodep
764 AMDEPBACKSLASH
765 AMDEP_FALSE
766 AMDEP_TRUE
767 am__quote
768 am__include
769 DEPDIR
770 OBJEXT
771 EXEEXT
772 CPPFLAGS
773 LDFLAGS
774 CXXFLAGS
775 ac_ct_CXX
776 CXX
777 MPICXX
778 AM_BACKSLASH
779 AM_DEFAULT_VERBOSITY
780 AM_DEFAULT_V
781 AM_V
782 am__untar
783 am__tar
784 AMTAR
785 am__leading_dot
786 SET_MAKE
787 AWK
788 mkdir_p
789 MKDIR_P
790 INSTALL_STRIP_PROGRAM
791 STRIP
792 install_sh
793 MAKEINFO
794 AUTOHEADER
795 AUTOMAKE
796 AUTOCONF
797 ACLOCAL
798 VERSION
799 PACKAGE
800 CYGPATH_W
801 am__isrc
802 INSTALL_DATA
803 INSTALL_SCRIPT
804 INSTALL_PROGRAM
805 target_alias
806 host_alias
807 build_alias
808 LIBS
809 ECHO_T
810 ECHO_N
811 ECHO_C
812 DEFS
813 mandir
814 localedir
815 libdir
816 psdir
817 pdfdir
818 dvidir
819 htmldir
820 infodir
821 docdir
822 oldincludedir
823 includedir
824 localstatedir
825 sharedstatedir
826 sysconfdir
827 datadir
828 datarootdir
829 libexecdir
830 sbindir
831 bindir
832 program_transform_name
833 prefix
834 exec_prefix
835 PACKAGE_URL
836 PACKAGE_BUGREPORT
837 PACKAGE_STRING
838 PACKAGE_VERSION
839 PACKAGE_TARNAME
840 PACKAGE_NAME
841 PATH_SEPARATOR
842 SHELL'
843 ac_subst_files=''
844 ac_user_opts='
845 enable_option_checking
846 enable_silent_rules
847 with_optimization
848 enable_paralevel
849 enable_dependency_tracking
850 with_pic
851 enable_shared
852 enable_static
853 enable_fast_install
854 with_gnu_ld
855 with_sysroot
856 enable_libtool_lock
857 with_blas
858 enable_openmp
859 enable_superlu
860 enable_experimental
861 with_qd_lib_dir
862 with_qd_include_dir
863 enable_dd
864 enable_qd
865 enable_qhull
866 with_mumps_include_dir
867 enable_mumps
868 enable_par_mumps
869 with_mumps
870 enable_metis
871 enable_boost
872 with_boost
873 with_boost_libdir
874 with_boost_system
875 with_boost_thread
876 enable_matlab
877 with_matlab_toolbox_dir
878 enable_python
879 enable_matlab_rpc
880 with_rpc_include
881 with_rpc_lib
882 enable_scilab
883 with_scilab_prefix
884 with_scilab_version
885 with_scilab_toolbox_dir
886 '
887 ac_precious_vars='build_alias
888 host_alias
889 target_alias
890 MPICXX
891 CXX
892 CXXFLAGS
893 LDFLAGS
894 LIBS
895 CPPFLAGS
896 CCC
897 MPICC
898 CC
899 CFLAGS
900 MPIFC
901 FC
902 FCFLAGS
903 CXXCPP
904 CPP
905 PYTHON
906 PYTHON_VERSION'
907
908
909 # Initialize some variables set by options.
910 ac_init_help=
911 ac_init_version=false
912 ac_unrecognized_opts=
913 ac_unrecognized_sep=
914 # The variables have the same names as the options, with
915 # dashes changed to underlines.
916 cache_file=/dev/null
917 exec_prefix=NONE
918 no_create=
919 no_recursion=
920 prefix=NONE
921 program_prefix=NONE
922 program_suffix=NONE
923 program_transform_name=s,x,x,
924 silent=
925 site=
926 srcdir=
927 verbose=
928 x_includes=NONE
929 x_libraries=NONE
930
931 # Installation directory options.
932 # These are left unexpanded so users can "make install exec_prefix=/foo"
933 # and all the variables that are supposed to be based on exec_prefix
934 # by default will actually change.
935 # Use braces instead of parens because sh, perl, etc. also accept them.
936 # (The list follows the same order as the GNU Coding Standards.)
937 bindir='${exec_prefix}/bin'
938 sbindir='${exec_prefix}/sbin'
939 libexecdir='${exec_prefix}/libexec'
940 datarootdir='${prefix}/share'
941 datadir='${datarootdir}'
942 sysconfdir='${prefix}/etc'
943 sharedstatedir='${prefix}/com'
944 localstatedir='${prefix}/var'
945 includedir='${prefix}/include'
946 oldincludedir='/usr/include'
947 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
948 infodir='${datarootdir}/info'
949 htmldir='${docdir}'
950 dvidir='${docdir}'
951 pdfdir='${docdir}'
952 psdir='${docdir}'
953 libdir='${exec_prefix}/lib'
954 localedir='${datarootdir}/locale'
955 mandir='${datarootdir}/man'
956
957 ac_prev=
958 ac_dashdash=
959 for ac_option
960 do
961 # If the previous option needs an argument, assign it.
962 if test -n "$ac_prev"; then
963 eval $ac_prev=\$ac_option
964 ac_prev=
965 continue
966 fi
967
968 case $ac_option in
969 *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
970 *=) ac_optarg= ;;
971 *) ac_optarg=yes ;;
972 esac
973
974 # Accept the important Cygnus configure options, so we can diagnose typos.
975
976 case $ac_dashdash$ac_option in
977 --)
978 ac_dashdash=yes ;;
979
980 -bindir | --bindir | --bindi | --bind | --bin | --bi)
981 ac_prev=bindir ;;
982 -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
983 bindir=$ac_optarg ;;
984
985 -build | --build | --buil | --bui | --bu)
986 ac_prev=build_alias ;;
987 -build=* | --build=* | --buil=* | --bui=* | --bu=*)
988 build_alias=$ac_optarg ;;
989
990 -cache-file | --cache-file | --cache-fil | --cache-fi \
991 | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
992 ac_prev=cache_file ;;
993 -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
994 | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
995 cache_file=$ac_optarg ;;
996
997 --config-cache | -C)
998 cache_file=config.cache ;;
999
1000 -datadir | --datadir | --datadi | --datad)
1001 ac_prev=datadir ;;
1002 -datadir=* | --datadir=* | --datadi=* | --datad=*)
1003 datadir=$ac_optarg ;;
1004
1005 -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
1006 | --dataroo | --dataro | --datar)
1007 ac_prev=datarootdir ;;
1008 -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
1009 | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
1010 datarootdir=$ac_optarg ;;
1011
1012 -disable-* | --disable-*)
1013 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
1014 # Reject names that are not valid shell variable names.
1015 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1016 as_fn_error $? "invalid feature name: $ac_useropt"
1017 ac_useropt_orig=$ac_useropt
1018 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1019 case $ac_user_opts in
1020 *"
1021 "enable_$ac_useropt"
1022 "*) ;;
1023 *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
1024 ac_unrecognized_sep=', ';;
1025 esac
1026 eval enable_$ac_useropt=no ;;
1027
1028 -docdir | --docdir | --docdi | --doc | --do)
1029 ac_prev=docdir ;;
1030 -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
1031 docdir=$ac_optarg ;;
1032
1033 -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
1034 ac_prev=dvidir ;;
1035 -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
1036 dvidir=$ac_optarg ;;
1037
1038 -enable-* | --enable-*)
1039 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
1040 # Reject names that are not valid shell variable names.
1041 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1042 as_fn_error $? "invalid feature name: $ac_useropt"
1043 ac_useropt_orig=$ac_useropt
1044 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1045 case $ac_user_opts in
1046 *"
1047 "enable_$ac_useropt"
1048 "*) ;;
1049 *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
1050 ac_unrecognized_sep=', ';;
1051 esac
1052 eval enable_$ac_useropt=\$ac_optarg ;;
1053
1054 -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
1055 | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
1056 | --exec | --exe | --ex)
1057 ac_prev=exec_prefix ;;
1058 -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
1059 | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
1060 | --exec=* | --exe=* | --ex=*)
1061 exec_prefix=$ac_optarg ;;
1062
1063 -gas | --gas | --ga | --g)
1064 # Obsolete; use --with-gas.
1065 with_gas=yes ;;
1066
1067 -help | --help | --hel | --he | -h)
1068 ac_init_help=long ;;
1069 -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
1070 ac_init_help=recursive ;;
1071 -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
1072 ac_init_help=short ;;
1073
1074 -host | --host | --hos | --ho)
1075 ac_prev=host_alias ;;
1076 -host=* | --host=* | --hos=* | --ho=*)
1077 host_alias=$ac_optarg ;;
1078
1079 -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
1080 ac_prev=htmldir ;;
1081 -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
1082 | --ht=*)
1083 htmldir=$ac_optarg ;;
1084
1085 -includedir | --includedir | --includedi | --included | --include \
1086 | --includ | --inclu | --incl | --inc)
1087 ac_prev=includedir ;;
1088 -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
1089 | --includ=* | --inclu=* | --incl=* | --inc=*)
1090 includedir=$ac_optarg ;;
1091
1092 -infodir | --infodir | --infodi | --infod | --info | --inf)
1093 ac_prev=infodir ;;
1094 -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
1095 infodir=$ac_optarg ;;
1096
1097 -libdir | --libdir | --libdi | --libd)
1098 ac_prev=libdir ;;
1099 -libdir=* | --libdir=* | --libdi=* | --libd=*)
1100 libdir=$ac_optarg ;;
1101
1102 -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
1103 | --libexe | --libex | --libe)
1104 ac_prev=libexecdir ;;
1105 -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
1106 | --libexe=* | --libex=* | --libe=*)
1107 libexecdir=$ac_optarg ;;
1108
1109 -localedir | --localedir | --localedi | --localed | --locale)
1110 ac_prev=localedir ;;
1111 -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
1112 localedir=$ac_optarg ;;
1113
1114 -localstatedir | --localstatedir | --localstatedi | --localstated \
1115 | --localstate | --localstat | --localsta | --localst | --locals)
1116 ac_prev=localstatedir ;;
1117 -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
1118 | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
1119 localstatedir=$ac_optarg ;;
1120
1121 -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
1122 ac_prev=mandir ;;
1123 -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
1124 mandir=$ac_optarg ;;
1125
1126 -nfp | --nfp | --nf)
1127 # Obsolete; use --without-fp.
1128 with_fp=no ;;
1129
1130 -no-create | --no-create | --no-creat | --no-crea | --no-cre \
1131 | --no-cr | --no-c | -n)
1132 no_create=yes ;;
1133
1134 -no-recursion | --no-recursion | --no-recursio | --no-recursi \
1135 | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
1136 no_recursion=yes ;;
1137
1138 -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
1139 | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
1140 | --oldin | --oldi | --old | --ol | --o)
1141 ac_prev=oldincludedir ;;
1142 -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
1143 | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
1144 | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
1145 oldincludedir=$ac_optarg ;;
1146
1147 -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
1148 ac_prev=prefix ;;
1149 -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
1150 prefix=$ac_optarg ;;
1151
1152 -program-prefix | --program-prefix | --program-prefi | --program-pref \
1153 | --program-pre | --program-pr | --program-p)
1154 ac_prev=program_prefix ;;
1155 -program-prefix=* | --program-prefix=* | --program-prefi=* \
1156 | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
1157 program_prefix=$ac_optarg ;;
1158
1159 -program-suffix | --program-suffix | --program-suffi | --program-suff \
1160 | --program-suf | --program-su | --program-s)
1161 ac_prev=program_suffix ;;
1162 -program-suffix=* | --program-suffix=* | --program-suffi=* \
1163 | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
1164 program_suffix=$ac_optarg ;;
1165
1166 -program-transform-name | --program-transform-name \
1167 | --program-transform-nam | --program-transform-na \
1168 | --program-transform-n | --program-transform- \
1169 | --program-transform | --program-transfor \
1170 | --program-transfo | --program-transf \
1171 | --program-trans | --program-tran \
1172 | --progr-tra | --program-tr | --program-t)
1173 ac_prev=program_transform_name ;;
1174 -program-transform-name=* | --program-transform-name=* \
1175 | --program-transform-nam=* | --program-transform-na=* \
1176 | --program-transform-n=* | --program-transform-=* \
1177 | --program-transform=* | --program-transfor=* \
1178 | --program-transfo=* | --program-transf=* \
1179 | --program-trans=* | --program-tran=* \
1180 | --progr-tra=* | --program-tr=* | --program-t=*)
1181 program_transform_name=$ac_optarg ;;
1182
1183 -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
1184 ac_prev=pdfdir ;;
1185 -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
1186 pdfdir=$ac_optarg ;;
1187
1188 -psdir | --psdir | --psdi | --psd | --ps)
1189 ac_prev=psdir ;;
1190 -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
1191 psdir=$ac_optarg ;;
1192
1193 -q | -quiet | --quiet | --quie | --qui | --qu | --q \
1194 | -silent | --silent | --silen | --sile | --sil)
1195 silent=yes ;;
1196
1197 -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
1198 ac_prev=sbindir ;;
1199 -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
1200 | --sbi=* | --sb=*)
1201 sbindir=$ac_optarg ;;
1202
1203 -sharedstatedir | --sharedstatedir | --sharedstatedi \
1204 | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
1205 | --sharedst | --shareds | --shared | --share | --shar \
1206 | --sha | --sh)
1207 ac_prev=sharedstatedir ;;
1208 -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
1209 | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
1210 | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
1211 | --sha=* | --sh=*)
1212 sharedstatedir=$ac_optarg ;;
1213
1214 -site | --site | --sit)
1215 ac_prev=site ;;
1216 -site=* | --site=* | --sit=*)
1217 site=$ac_optarg ;;
1218
1219 -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
1220 ac_prev=srcdir ;;
1221 -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
1222 srcdir=$ac_optarg ;;
1223
1224 -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
1225 | --syscon | --sysco | --sysc | --sys | --sy)
1226 ac_prev=sysconfdir ;;
1227 -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
1228 | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
1229 sysconfdir=$ac_optarg ;;
1230
1231 -target | --target | --targe | --targ | --tar | --ta | --t)
1232 ac_prev=target_alias ;;
1233 -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
1234 target_alias=$ac_optarg ;;
1235
1236 -v | -verbose | --verbose | --verbos | --verbo | --verb)
1237 verbose=yes ;;
1238
1239 -version | --version | --versio | --versi | --vers | -V)
1240 ac_init_version=: ;;
1241
1242 -with-* | --with-*)
1243 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
1244 # Reject names that are not valid shell variable names.
1245 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1246 as_fn_error $? "invalid package name: $ac_useropt"
1247 ac_useropt_orig=$ac_useropt
1248 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1249 case $ac_user_opts in
1250 *"
1251 "with_$ac_useropt"
1252 "*) ;;
1253 *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
1254 ac_unrecognized_sep=', ';;
1255 esac
1256 eval with_$ac_useropt=\$ac_optarg ;;
1257
1258 -without-* | --without-*)
1259 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
1260 # Reject names that are not valid shell variable names.
1261 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1262 as_fn_error $? "invalid package name: $ac_useropt"
1263 ac_useropt_orig=$ac_useropt
1264 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
1265 case $ac_user_opts in
1266 *"
1267 "with_$ac_useropt"
1268 "*) ;;
1269 *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
1270 ac_unrecognized_sep=', ';;
1271 esac
1272 eval with_$ac_useropt=no ;;
1273
1274 --x)
1275 # Obsolete; use --with-x.
1276 with_x=yes ;;
1277
1278 -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
1279 | --x-incl | --x-inc | --x-in | --x-i)
1280 ac_prev=x_includes ;;
1281 -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
1282 | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
1283 x_includes=$ac_optarg ;;
1284
1285 -x-libraries | --x-libraries | --x-librarie | --x-librari \
1286 | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
1287 ac_prev=x_libraries ;;
1288 -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
1289 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
1290 x_libraries=$ac_optarg ;;
1291
1292 -*) as_fn_error $? "unrecognized option: \`$ac_option'
1293 Try \`$0 --help' for more information"
1294 ;;
1295
1296 *=*)
1297 ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
1298 # Reject names that are not valid shell variable names.
1299 case $ac_envvar in #(
1300 '' | [0-9]* | *[!_$as_cr_alnum]* )
1301 as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
1302 esac
1303 eval $ac_envvar=\$ac_optarg
1304 export $ac_envvar ;;
1305
1306 *)
1307 # FIXME: should be removed in autoconf 3.0.
1308 $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
1309 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
1310 $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
1311 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
1312 ;;
1313
1314 esac
1315 done
1316
1317 if test -n "$ac_prev"; then
1318 ac_option=--`echo $ac_prev | sed 's/_/-/g'`
1319 as_fn_error $? "missing argument to $ac_option"
1320 fi
1321
1322 if test -n "$ac_unrecognized_opts"; then
1323 case $enable_option_checking in
1324 no) ;;
1325 fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
1326 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
1327 esac
1328 fi
1329
1330 # Check all directory arguments for consistency.
1331 for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
1332 datadir sysconfdir sharedstatedir localstatedir includedir \
1333 oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
1334 libdir localedir mandir
1335 do
1336 eval ac_val=\$$ac_var
1337 # Remove trailing slashes.
1338 case $ac_val in
1339 */ )
1340 ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
1341 eval $ac_var=\$ac_val;;
1342 esac
1343 # Be sure to have absolute directory names.
1344 case $ac_val in
1345 [\\/$]* | ?:[\\/]* ) continue;;
1346 NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
1347 esac
1348 as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
1349 done
1350
1351 # There might be people who depend on the old broken behavior: `$host'
1352 # used to hold the argument of --host etc.
1353 # FIXME: To remove some day.
1354 build=$build_alias
1355 host=$host_alias
1356 target=$target_alias
1357
1358 # FIXME: To remove some day.
1359 if test "x$host_alias" != x; then
1360 if test "x$build_alias" = x; then
1361 cross_compiling=maybe
1362 elif test "x$build_alias" != "x$host_alias"; then
1363 cross_compiling=yes
1364 fi
1365 fi
1366
1367 ac_tool_prefix=
1368 test -n "$host_alias" && ac_tool_prefix=$host_alias-
1369
1370 test "$silent" = yes && exec 6>/dev/null
1371
1372
1373 ac_pwd=`pwd` && test -n "$ac_pwd" &&
1374 ac_ls_di=`ls -di .` &&
1375 ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
1376 as_fn_error $? "working directory cannot be determined"
1377 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
1378 as_fn_error $? "pwd does not report name of working directory"
1379
1380
1381 # Find the source files, if location was not specified.
1382 if test -z "$srcdir"; then
1383 ac_srcdir_defaulted=yes
1384 # Try the directory containing this script, then the parent directory.
1385 ac_confdir=`$as_dirname -- "$as_myself" ||
1386 $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
1387 X"$as_myself" : 'X\(//\)[^/]' \| \
1388 X"$as_myself" : 'X\(//\)$' \| \
1389 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
1390 $as_echo X"$as_myself" |
1391 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
1392 s//\1/
1393 q
1394 }
1395 /^X\(\/\/\)[^/].*/{
1396 s//\1/
1397 q
1398 }
1399 /^X\(\/\/\)$/{
1400 s//\1/
1401 q
1402 }
1403 /^X\(\/\).*/{
1404 s//\1/
1405 q
1406 }
1407 s/.*/./; q'`
1408 srcdir=$ac_confdir
1409 if test ! -r "$srcdir/$ac_unique_file"; then
1410 srcdir=..
1411 fi
1412 else
1413 ac_srcdir_defaulted=no
1414 fi
1415 if test ! -r "$srcdir/$ac_unique_file"; then
1416 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
1417 as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
1418 fi
1419 ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
1420 ac_abs_confdir=`(
1421 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
1422 pwd)`
1423 # When building in place, set srcdir=.
1424 if test "$ac_abs_confdir" = "$ac_pwd"; then
1425 srcdir=.
1426 fi
1427 # Remove unnecessary trailing slashes from srcdir.
1428 # Double slashes in file names in object file debugging info
1429 # mess up M-x gdb in Emacs.
1430 case $srcdir in
1431 */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
1432 esac
1433 for ac_var in $ac_precious_vars; do
1434 eval ac_env_${ac_var}_set=\${${ac_var}+set}
1435 eval ac_env_${ac_var}_value=\$${ac_var}
1436 eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
1437 eval ac_cv_env_${ac_var}_value=\$${ac_var}
1438 done
1439
1440 #
1441 # Report the --help message.
1442 #
1443 if test "$ac_init_help" = "long"; then
1444 # Omit some internal or obsolete options to make the list less imposing.
1445 # This message is too long to be a string in the A/UX 3.1 sh.
1446 cat <<_ACEOF
1447 \`configure' configures getfem 5.0 to adapt to many kinds of systems.
1448
1449 Usage: $0 [OPTION]... [VAR=VALUE]...
1450
1451 To assign environment variables (e.g., CC, CFLAGS...), specify them as
1452 VAR=VALUE. See below for descriptions of some of the useful variables.
1453
1454 Defaults for the options are specified in brackets.
1455
1456 Configuration:
1457 -h, --help display this help and exit
1458 --help=short display options specific to this package
1459 --help=recursive display the short help of all the included packages
1460 -V, --version display version information and exit
1461 -q, --quiet, --silent do not print \`checking ...' messages
1462 --cache-file=FILE cache test results in FILE [disabled]
1463 -C, --config-cache alias for \`--cache-file=config.cache'
1464 -n, --no-create do not create output files
1465 --srcdir=DIR find the sources in DIR [configure dir or \`..']
1466
1467 Installation directories:
1468 --prefix=PREFIX install architecture-independent files in PREFIX
1469 [$ac_default_prefix]
1470 --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
1471 [PREFIX]
1472
1473 By default, \`make install' will install all the files in
1474 \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
1475 an installation prefix other than \`$ac_default_prefix' using \`--prefix',
1476 for instance \`--prefix=\$HOME'.
1477
1478 For better control, use the options below.
1479
1480 Fine tuning of the installation directories:
1481 --bindir=DIR user executables [EPREFIX/bin]
1482 --sbindir=DIR system admin executables [EPREFIX/sbin]
1483 --libexecdir=DIR program executables [EPREFIX/libexec]
1484 --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
1485 --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
1486 --localstatedir=DIR modifiable single-machine data [PREFIX/var]
1487 --libdir=DIR object code libraries [EPREFIX/lib]
1488 --includedir=DIR C header files [PREFIX/include]
1489 --oldincludedir=DIR C header files for non-gcc [/usr/include]
1490 --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
1491 --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
1492 --infodir=DIR info documentation [DATAROOTDIR/info]
1493 --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
1494 --mandir=DIR man documentation [DATAROOTDIR/man]
1495 --docdir=DIR documentation root [DATAROOTDIR/doc/getfem]
1496 --htmldir=DIR html documentation [DOCDIR]
1497 --dvidir=DIR dvi documentation [DOCDIR]
1498 --pdfdir=DIR pdf documentation [DOCDIR]
1499 --psdir=DIR ps documentation [DOCDIR]
1500 _ACEOF
1501
1502 cat <<\_ACEOF
1503
1504 Program names:
1505 --program-prefix=PREFIX prepend PREFIX to installed program names
1506 --program-suffix=SUFFIX append SUFFIX to installed program names
1507 --program-transform-name=PROGRAM run sed PROGRAM on installed program names
1508
1509 System types:
1510 --build=BUILD configure for building on BUILD [guessed]
1511 --host=HOST cross-compile to build programs to run on HOST [BUILD]
1512 _ACEOF
1513 fi
1514
1515 if test -n "$ac_init_help"; then
1516 case $ac_init_help in
1517 short | recursive ) echo "Configuration of getfem 5.0:";;
1518 esac
1519 cat <<\_ACEOF
1520
1521 Optional Features:
1522 --disable-option-checking ignore unrecognized --enable/--with options
1523 --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
1524 --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
1525 --enable-silent-rules less verbose build output (undo: "make V=1")
1526 --disable-silent-rules verbose build output (undo: "make V=0")
1527 --enable-paralevel=level
1528 enable the parallel version of GetFEM++ (use MPI and
1529 METIS)
1530 --enable-dependency-tracking
1531 do not reject slow dependency extractors
1532 --disable-dependency-tracking
1533 speeds up one-time build
1534 --enable-shared[=PKGS] build shared libraries [default=no]
1535 --enable-static[=PKGS] build static libraries [default=yes]
1536 --enable-fast-install[=PKGS]
1537 optimize for fast installation [default=yes]
1538 --disable-libtool-lock avoid locking (might break parallel builds)
1539 --enable-openmp enable the multihreaded version of GetFEM++
1540 --disable-openmp do not use OpenMP
1541 --enable-superlu turn on/off SuperLU support
1542 --enable-experimental compile experimental parts of the library
1543 --enable-dd enable the use of the qd library (some computation
1544 will be done with double-double precision, useful
1545 for high order FEMs)
1546 --enable-qd enable the use of the qd library (some computation
1547 will be done with quad-double precision, useful for
1548 high order FEMs)
1549 --enable-qhull enable the use of the qhull library (required for
1550 generation of non regular meshes)
1551 --enable-mumps enable the use of the (sequential) MUMPS library. A
1552 direct solver for large sparse linear systems.
1553 --enable-par-mumps enable the use of the parrallel MUMPS library. A
1554 direct solver for large sparse linear systems.
1555 --enable-metis enable the use of the METIS library.
1556 --enable-boost check if boost is installed and use it
1557 --enable-matlab turn on/off matlab support
1558 --enable-python turn on/off python support
1559 --enable-matlab-rpc enable use of RPCs for matlab interface
1560 --enable-scilab turn on/off scilab support
1561
1562 Optional Packages:
1563 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
1564 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
1565 --with-optimization=FLAG
1566 Set the optimization level (-O3 by default)
1567 --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
1568 both]
1569 --with-gnu-ld assume the C compiler uses GNU ld [default=no]
1570 --with-sysroot=DIR Search for dependent libraries within DIR
1571 (or the compiler's sysroot if not specified).
1572 --with-blas=<lib> use BLAS library <lib>
1573 --with-qd-lib-dir directory in which the libqd.a can be found
1574 --with-qd-include-dir directory in which the qd.h header can be found
1575 --with-mumps-include-dir
1576 directory in which the dmumps.h header can be found
1577 --with-mumps=<lib> use MUMPS library <lib>
1578 --with-boost[=ARG] use Boost library from a standard location
1579 (ARG=yes), from the specified location (ARG=<path>),
1580 or disable it (ARG=no) [ARG=yes]
1581 --with-boost-libdir=LIB_DIR
1582 Force given directory for boost libraries. Note that
1583 this will override library path detection, so use
1584 this parameter only if default library detection
1585 fails and you know exactly where your boost
1586 libraries are located.
1587 --with-boost-system[=special-lib]
1588 use the System library from boost - it is possible
1589 to specify a certain library for the linker e.g.
1590 --with-boost-system=boost_system-gcc-mt
1591 --with-boost-thread[=special-lib]
1592 use the Thread library from boost - it is possible
1593 to specify a certain library for the linker e.g.
1594 --with-boost-thread=boost_thread-gcc-mt
1595 --with-matlab-toolbox-dir
1596 directory in which the matlab interface will be
1597 installed
1598 --with-rpc-include directory in which the rpc/rpc.h header can be found
1599 --with-rpc-lib linker flags for the RPC library
1600 --with-scilab-prefix=DIR
1601 Set the path to Scilab
1602 --with-scilab-version="major.minor.micro"
1603 Set the required Scilab version
1604 --with-scilab-toolbox-dir=DIR
1605 Set the path to the toolbox installation directory
1606 --with-scilab-toolbox-dir
1607 directory in which the scilab interface will be
1608 installed
1609
1610 Some influential environment variables:
1611 MPICXX MPI C++ compiler command
1612 CXX C++ compiler command
1613 CXXFLAGS C++ compiler flags
1614 LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
1615 nonstandard directory <lib dir>
1616 LIBS libraries to pass to the linker, e.g. -l<library>
1617 CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
1618 you have headers in a nonstandard directory <include dir>
1619 MPICC MPI C compiler command
1620 CC C compiler command
1621 CFLAGS C compiler flags
1622 MPIFC MPI Fortran compiler command
1623 FC Fortran compiler command
1624 FCFLAGS Fortran compiler flags
1625 CXXCPP C++ preprocessor
1626 CPP C preprocessor
1627 PYTHON the Python interpreter
1628 PYTHON_VERSION
1629 The installed Python version to use, for example '2.3'. This
1630 string will be appended to the Python interpreter canonical
1631 name.
1632
1633 Use these variables to override the choices made by `configure' or to help
1634 it to find libraries and programs with nonstandard names/locations.
1635
1636 Report bugs to the package provider.
1637 _ACEOF
1638 ac_status=$?
1639 fi
1640
1641 if test "$ac_init_help" = "recursive"; then
1642 # If there are subdirs, report their specific --help.
1643 for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
1644 test -d "$ac_dir" ||
1645 { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
1646 continue
1647 ac_builddir=.
1648
1649 case "$ac_dir" in
1650 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
1651 *)
1652 ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
1653 # A ".." for each directory in $ac_dir_suffix.
1654 ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
1655 case $ac_top_builddir_sub in
1656 "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
1657 *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
1658 esac ;;
1659 esac
1660 ac_abs_top_builddir=$ac_pwd
1661 ac_abs_builddir=$ac_pwd$ac_dir_suffix
1662 # for backward compatibility:
1663 ac_top_builddir=$ac_top_build_prefix
1664
1665 case $srcdir in
1666 .) # We are building in place.
1667 ac_srcdir=.
1668 ac_top_srcdir=$ac_top_builddir_sub
1669 ac_abs_top_srcdir=$ac_pwd ;;
1670 [\\/]* | ?:[\\/]* ) # Absolute name.
1671 ac_srcdir=$srcdir$ac_dir_suffix;
1672 ac_top_srcdir=$srcdir
1673 ac_abs_top_srcdir=$srcdir ;;
1674 *) # Relative name.
1675 ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
1676 ac_top_srcdir=$ac_top_build_prefix$srcdir
1677 ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
1678 esac
1679 ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
1680
1681 cd "$ac_dir" || { ac_status=$?; continue; }
1682 # Check for guested configure.
1683 if test -f "$ac_srcdir/configure.gnu"; then
1684 echo &&
1685 $SHELL "$ac_srcdir/configure.gnu" --help=recursive
1686 elif test -f "$ac_srcdir/configure"; then
1687 echo &&
1688 $SHELL "$ac_srcdir/configure" --help=recursive
1689 else
1690 $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
1691 fi || ac_status=$?
1692 cd "$ac_pwd" || { ac_status=$?; break; }
1693 done
1694 fi
1695
1696 test -n "$ac_init_help" && exit $ac_status
1697 if $ac_init_version; then
1698 cat <<\_ACEOF
1699 getfem configure 5.0
1700 generated by GNU Autoconf 2.69
1701
1702 Copyright (C) 2012 Free Software Foundation, Inc.
1703 This configure script is free software; the Free Software Foundation
1704 gives unlimited permission to copy, distribute and modify it.
1705 _ACEOF
1706 exit
1707 fi
1708
1709 ## ------------------------ ##
1710 ## Autoconf initialization. ##
1711 ## ------------------------ ##
1712
1713 # ac_fn_cxx_try_compile LINENO
1714 # ----------------------------
1715 # Try to compile conftest.$ac_ext, and return whether this succeeded.
1716 ac_fn_cxx_try_compile ()
1717 {
1718 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1719 rm -f conftest.$ac_objext
1720 if { { ac_try="$ac_compile"
1721 case "(($ac_try" in
1722 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1723 *) ac_try_echo=$ac_try;;
1724 esac
1725 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
1726 $as_echo "$ac_try_echo"; } >&5
1727 (eval "$ac_compile") 2>conftest.err
1728 ac_status=$?
1729 if test -s conftest.err; then
1730 grep -v '^ *+' conftest.err >conftest.er1
1731 cat conftest.er1 >&5
1732 mv -f conftest.er1 conftest.err
1733 fi
1734 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1735 test $ac_status = 0; } && {
1736 test -z "$ac_cxx_werror_flag" ||
1737 test ! -s conftest.err
1738 } && test -s conftest.$ac_objext; then :
1739 ac_retval=0
1740 else
1741 $as_echo "$as_me: failed program was:" >&5
1742 sed 's/^/| /' conftest.$ac_ext >&5
1743
1744 ac_retval=1
1745 fi
1746 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1747 as_fn_set_status $ac_retval
1748
1749 } # ac_fn_cxx_try_compile
1750
1751 # ac_fn_cxx_try_link LINENO
1752 # -------------------------
1753 # Try to link conftest.$ac_ext, and return whether this succeeded.
1754 ac_fn_cxx_try_link ()
1755 {
1756 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1757 rm -f conftest.$ac_objext conftest$ac_exeext
1758 if { { ac_try="$ac_link"
1759 case "(($ac_try" in
1760 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1761 *) ac_try_echo=$ac_try;;
1762 esac
1763 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
1764 $as_echo "$ac_try_echo"; } >&5
1765 (eval "$ac_link") 2>conftest.err
1766 ac_status=$?
1767 if test -s conftest.err; then
1768 grep -v '^ *+' conftest.err >conftest.er1
1769 cat conftest.er1 >&5
1770 mv -f conftest.er1 conftest.err
1771 fi
1772 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1773 test $ac_status = 0; } && {
1774 test -z "$ac_cxx_werror_flag" ||
1775 test ! -s conftest.err
1776 } && test -s conftest$ac_exeext && {
1777 test "$cross_compiling" = yes ||
1778 test -x conftest$ac_exeext
1779 }; then :
1780 ac_retval=0
1781 else
1782 $as_echo "$as_me: failed program was:" >&5
1783 sed 's/^/| /' conftest.$ac_ext >&5
1784
1785 ac_retval=1
1786 fi
1787 # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
1788 # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
1789 # interfere with the next link command; also delete a directory that is
1790 # left behind by Apple's compiler. We do this before executing the actions.
1791 rm -rf conftest.dSYM conftest_ipa8_conftest.oo
1792 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1793 as_fn_set_status $ac_retval
1794
1795 } # ac_fn_cxx_try_link
1796
1797 # ac_fn_c_try_compile LINENO
1798 # --------------------------
1799 # Try to compile conftest.$ac_ext, and return whether this succeeded.
1800 ac_fn_c_try_compile ()
1801 {
1802 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1803 rm -f conftest.$ac_objext
1804 if { { ac_try="$ac_compile"
1805 case "(($ac_try" in
1806 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1807 *) ac_try_echo=$ac_try;;
1808 esac
1809 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
1810 $as_echo "$ac_try_echo"; } >&5
1811 (eval "$ac_compile") 2>conftest.err
1812 ac_status=$?
1813 if test -s conftest.err; then
1814 grep -v '^ *+' conftest.err >conftest.er1
1815 cat conftest.er1 >&5
1816 mv -f conftest.er1 conftest.err
1817 fi
1818 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1819 test $ac_status = 0; } && {
1820 test -z "$ac_c_werror_flag" ||
1821 test ! -s conftest.err
1822 } && test -s conftest.$ac_objext; then :
1823 ac_retval=0
1824 else
1825 $as_echo "$as_me: failed program was:" >&5
1826 sed 's/^/| /' conftest.$ac_ext >&5
1827
1828 ac_retval=1
1829 fi
1830 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1831 as_fn_set_status $ac_retval
1832
1833 } # ac_fn_c_try_compile
1834
1835 # ac_fn_c_try_link LINENO
1836 # -----------------------
1837 # Try to link conftest.$ac_ext, and return whether this succeeded.
1838 ac_fn_c_try_link ()
1839 {
1840 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1841 rm -f conftest.$ac_objext conftest$ac_exeext
1842 if { { ac_try="$ac_link"
1843 case "(($ac_try" in
1844 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1845 *) ac_try_echo=$ac_try;;
1846 esac
1847 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
1848 $as_echo "$ac_try_echo"; } >&5
1849 (eval "$ac_link") 2>conftest.err
1850 ac_status=$?
1851 if test -s conftest.err; then
1852 grep -v '^ *+' conftest.err >conftest.er1
1853 cat conftest.er1 >&5
1854 mv -f conftest.er1 conftest.err
1855 fi
1856 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1857 test $ac_status = 0; } && {
1858 test -z "$ac_c_werror_flag" ||
1859 test ! -s conftest.err
1860 } && test -s conftest$ac_exeext && {
1861 test "$cross_compiling" = yes ||
1862 test -x conftest$ac_exeext
1863 }; then :
1864 ac_retval=0
1865 else
1866 $as_echo "$as_me: failed program was:" >&5
1867 sed 's/^/| /' conftest.$ac_ext >&5
1868
1869 ac_retval=1
1870 fi
1871 # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
1872 # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
1873 # interfere with the next link command; also delete a directory that is
1874 # left behind by Apple's compiler. We do this before executing the actions.
1875 rm -rf conftest.dSYM conftest_ipa8_conftest.oo
1876 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1877 as_fn_set_status $ac_retval
1878
1879 } # ac_fn_c_try_link
1880
1881 # ac_fn_fc_try_compile LINENO
1882 # ---------------------------
1883 # Try to compile conftest.$ac_ext, and return whether this succeeded.
1884 ac_fn_fc_try_compile ()
1885 {
1886 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1887 rm -f conftest.$ac_objext
1888 if { { ac_try="$ac_compile"
1889 case "(($ac_try" in
1890 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1891 *) ac_try_echo=$ac_try;;
1892 esac
1893 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
1894 $as_echo "$ac_try_echo"; } >&5
1895 (eval "$ac_compile") 2>conftest.err
1896 ac_status=$?
1897 if test -s conftest.err; then
1898 grep -v '^ *+' conftest.err >conftest.er1
1899 cat conftest.er1 >&5
1900 mv -f conftest.er1 conftest.err
1901 fi
1902 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1903 test $ac_status = 0; } && {
1904 test -z "$ac_fc_werror_flag" ||
1905 test ! -s conftest.err
1906 } && test -s conftest.$ac_objext; then :
1907 ac_retval=0
1908 else
1909 $as_echo "$as_me: failed program was:" >&5
1910 sed 's/^/| /' conftest.$ac_ext >&5
1911
1912 ac_retval=1
1913 fi
1914 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1915 as_fn_set_status $ac_retval
1916
1917 } # ac_fn_fc_try_compile
1918
1919 # ac_fn_fc_try_link LINENO
1920 # ------------------------
1921 # Try to link conftest.$ac_ext, and return whether this succeeded.
1922 ac_fn_fc_try_link ()
1923 {
1924 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1925 rm -f conftest.$ac_objext conftest$ac_exeext
1926 if { { ac_try="$ac_link"
1927 case "(($ac_try" in
1928 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1929 *) ac_try_echo=$ac_try;;
1930 esac
1931 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
1932 $as_echo "$ac_try_echo"; } >&5
1933 (eval "$ac_link") 2>conftest.err
1934 ac_status=$?
1935 if test -s conftest.err; then
1936 grep -v '^ *+' conftest.err >conftest.er1
1937 cat conftest.er1 >&5
1938 mv -f conftest.er1 conftest.err
1939 fi
1940 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1941 test $ac_status = 0; } && {
1942 test -z "$ac_fc_werror_flag" ||
1943 test ! -s conftest.err
1944 } && test -s conftest$ac_exeext && {
1945 test "$cross_compiling" = yes ||
1946 test -x conftest$ac_exeext
1947 }; then :
1948 ac_retval=0
1949 else
1950 $as_echo "$as_me: failed program was:" >&5
1951 sed 's/^/| /' conftest.$ac_ext >&5
1952
1953 ac_retval=1
1954 fi
1955 # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
1956 # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
1957 # interfere with the next link command; also delete a directory that is
1958 # left behind by Apple's compiler. We do this before executing the actions.
1959 rm -rf conftest.dSYM conftest_ipa8_conftest.oo
1960 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1961 as_fn_set_status $ac_retval
1962
1963 } # ac_fn_fc_try_link
1964
1965 # ac_fn_cxx_try_cpp LINENO
1966 # ------------------------
1967 # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
1968 ac_fn_cxx_try_cpp ()
1969 {
1970 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1971 if { { ac_try="$ac_cpp conftest.$ac_ext"
1972 case "(($ac_try" in
1973 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1974 *) ac_try_echo=$ac_try;;
1975 esac
1976 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
1977 $as_echo "$ac_try_echo"; } >&5
1978 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
1979 ac_status=$?
1980 if test -s conftest.err; then
1981 grep -v '^ *+' conftest.err >conftest.er1
1982 cat conftest.er1 >&5
1983 mv -f conftest.er1 conftest.err
1984 fi
1985 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1986 test $ac_status = 0; } > conftest.i && {
1987 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
1988 test ! -s conftest.err
1989 }; then :
1990 ac_retval=0
1991 else
1992 $as_echo "$as_me: failed program was:" >&5
1993 sed 's/^/| /' conftest.$ac_ext >&5
1994
1995 ac_retval=1
1996 fi
1997 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1998 as_fn_set_status $ac_retval
1999
2000 } # ac_fn_cxx_try_cpp
2001
2002 # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
2003 # -------------------------------------------------------
2004 # Tests whether HEADER exists and can be compiled using the include files in
2005 # INCLUDES, setting the cache variable VAR accordingly.
2006 ac_fn_c_check_header_compile ()
2007 {
2008 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2009 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2010 $as_echo_n "checking for $2... " >&6; }
2011 if eval \${$3+:} false; then :
2012 $as_echo_n "(cached) " >&6
2013 else
2014 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2015 /* end confdefs.h. */
2016 $4
2017 #include <$2>
2018 _ACEOF
2019 if ac_fn_c_try_compile "$LINENO"; then :
2020 eval "$3=yes"
2021 else
2022 eval "$3=no"
2023 fi
2024 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2025 fi
2026 eval ac_res=\$$3
2027 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2028 $as_echo "$ac_res" >&6; }
2029 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2030
2031 } # ac_fn_c_check_header_compile
2032
2033 # ac_fn_c_try_cpp LINENO
2034 # ----------------------
2035 # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
2036 ac_fn_c_try_cpp ()
2037 {
2038 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2039 if { { ac_try="$ac_cpp conftest.$ac_ext"
2040 case "(($ac_try" in
2041 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
2042 *) ac_try_echo=$ac_try;;
2043 esac
2044 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
2045 $as_echo "$ac_try_echo"; } >&5
2046 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
2047 ac_status=$?
2048 if test -s conftest.err; then
2049 grep -v '^ *+' conftest.err >conftest.er1
2050 cat conftest.er1 >&5
2051 mv -f conftest.er1 conftest.err
2052 fi
2053 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2054 test $ac_status = 0; } > conftest.i && {
2055 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
2056 test ! -s conftest.err
2057 }; then :
2058 ac_retval=0
2059 else
2060 $as_echo "$as_me: failed program was:" >&5
2061 sed 's/^/| /' conftest.$ac_ext >&5
2062
2063 ac_retval=1
2064 fi
2065 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2066 as_fn_set_status $ac_retval
2067
2068 } # ac_fn_c_try_cpp
2069
2070 # ac_fn_c_try_run LINENO
2071 # ----------------------
2072 # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
2073 # that executables *can* be run.
2074 ac_fn_c_try_run ()
2075 {
2076 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2077 if { { ac_try="$ac_link"
2078 case "(($ac_try" in
2079 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
2080 *) ac_try_echo=$ac_try;;
2081 esac
2082 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
2083 $as_echo "$ac_try_echo"; } >&5
2084 (eval "$ac_link") 2>&5
2085 ac_status=$?
2086 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2087 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
2088 { { case "(($ac_try" in
2089 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
2090 *) ac_try_echo=$ac_try;;
2091 esac
2092 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
2093 $as_echo "$ac_try_echo"; } >&5
2094 (eval "$ac_try") 2>&5
2095 ac_status=$?
2096 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2097 test $ac_status = 0; }; }; then :
2098 ac_retval=0
2099 else
2100 $as_echo "$as_me: program exited with status $ac_status" >&5
2101 $as_echo "$as_me: failed program was:" >&5
2102 sed 's/^/| /' conftest.$ac_ext >&5
2103
2104 ac_retval=$ac_status
2105 fi
2106 rm -rf conftest.dSYM conftest_ipa8_conftest.oo
2107 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2108 as_fn_set_status $ac_retval
2109
2110 } # ac_fn_c_try_run
2111
2112 # ac_fn_c_check_func LINENO FUNC VAR
2113 # ----------------------------------
2114 # Tests whether FUNC exists, setting the cache variable VAR accordingly
2115 ac_fn_c_check_func ()
2116 {
2117 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2118 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2119 $as_echo_n "checking for $2... " >&6; }
2120 if eval \${$3+:} false; then :
2121 $as_echo_n "(cached) " >&6
2122 else
2123 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2124 /* end confdefs.h. */
2125 /* Define $2 to an innocuous variant, in case <limits.h> declares $2.
2126 For example, HP-UX 11i <limits.h> declares gettimeofday. */
2127 #define $2 innocuous_$2
2128
2129 /* System header to define __stub macros and hopefully few prototypes,
2130 which can conflict with char $2 (); below.
2131 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
2132 <limits.h> exists even on freestanding compilers. */
2133
2134 #ifdef __STDC__
2135 # include <limits.h>
2136 #else
2137 # include <assert.h>
2138 #endif
2139
2140 #undef $2
2141
2142 /* Override any GCC internal prototype to avoid an error.
2143 Use char because int might match the return type of a GCC
2144 builtin and then its argument prototype would still apply. */
2145 #ifdef __cplusplus
2146 extern "C"
2147 #endif
2148 char $2 ();
2149 /* The GNU C library defines this for functions which it implements
2150 to always fail with ENOSYS. Some functions are actually named
2151 something starting with __ and the normal name is an alias. */
2152 #if defined __stub_$2 || defined __stub___$2
2153 choke me
2154 #endif
2155
2156 int
2157 main ()
2158 {
2159 return $2 ();
2160 ;
2161 return 0;
2162 }
2163 _ACEOF
2164 if ac_fn_c_try_link "$LINENO"; then :
2165 eval "$3=yes"
2166 else
2167 eval "$3=no"
2168 fi
2169 rm -f core conftest.err conftest.$ac_objext \
2170 conftest$ac_exeext conftest.$ac_ext
2171 fi
2172 eval ac_res=\$$3
2173 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2174 $as_echo "$ac_res" >&6; }
2175 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2176
2177 } # ac_fn_c_check_func
2178
2179 # ac_fn_cxx_check_func LINENO FUNC VAR
2180 # ------------------------------------
2181 # Tests whether FUNC exists, setting the cache variable VAR accordingly
2182 ac_fn_cxx_check_func ()
2183 {
2184 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2185 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2186 $as_echo_n "checking for $2... " >&6; }
2187 if eval \${$3+:} false; then :
2188 $as_echo_n "(cached) " >&6
2189 else
2190 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2191 /* end confdefs.h. */
2192 /* Define $2 to an innocuous variant, in case <limits.h> declares $2.
2193 For example, HP-UX 11i <limits.h> declares gettimeofday. */
2194 #define $2 innocuous_$2
2195
2196 /* System header to define __stub macros and hopefully few prototypes,
2197 which can conflict with char $2 (); below.
2198 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
2199 <limits.h> exists even on freestanding compilers. */
2200
2201 #ifdef __STDC__
2202 # include <limits.h>
2203 #else
2204 # include <assert.h>
2205 #endif
2206
2207 #undef $2
2208
2209 /* Override any GCC internal prototype to avoid an error.
2210 Use char because int might match the return type of a GCC
2211 builtin and then its argument prototype would still apply. */
2212 #ifdef __cplusplus
2213 extern "C"
2214 #endif
2215 char $2 ();
2216 /* The GNU C library defines this for functions which it implements
2217 to always fail with ENOSYS. Some functions are actually named
2218 something starting with __ and the normal name is an alias. */
2219 #if defined __stub_$2 || defined __stub___$2
2220 choke me
2221 #endif
2222
2223 #ifdef FC_DUMMY_MAIN
2224 #ifndef FC_DUMMY_MAIN_EQ_F77
2225 # ifdef __cplusplus
2226 extern "C"
2227 # endif
2228 int FC_DUMMY_MAIN() { return 1; }
2229 #endif
2230 #endif
2231 int
2232 main ()
2233 {
2234 return $2 ();
2235 ;
2236 return 0;
2237 }
2238 _ACEOF
2239 if ac_fn_cxx_try_link "$LINENO"; then :
2240 eval "$3=yes"
2241 else
2242 eval "$3=no"
2243 fi
2244 rm -f core conftest.err conftest.$ac_objext \
2245 conftest$ac_exeext conftest.$ac_ext
2246 fi
2247 eval ac_res=\$$3
2248 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2249 $as_echo "$ac_res" >&6; }
2250 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2251
2252 } # ac_fn_cxx_check_func
2253
2254 # ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES
2255 # ---------------------------------------------------------
2256 # Tests whether HEADER exists, giving a warning if it cannot be compiled using
2257 # the include files in INCLUDES and setting the cache variable VAR
2258 # accordingly.
2259 ac_fn_cxx_check_header_mongrel ()
2260 {
2261 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2262 if eval \${$3+:} false; then :
2263 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2264 $as_echo_n "checking for $2... " >&6; }
2265 if eval \${$3+:} false; then :
2266 $as_echo_n "(cached) " >&6
2267 fi
2268 eval ac_res=\$$3
2269 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2270 $as_echo "$ac_res" >&6; }
2271 else
2272 # Is the header compilable?
2273 { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
2274 $as_echo_n "checking $2 usability... " >&6; }
2275 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2276 /* end confdefs.h. */
2277 $4
2278 #include <$2>
2279 _ACEOF
2280 if ac_fn_cxx_try_compile "$LINENO"; then :
2281 ac_header_compiler=yes
2282 else
2283 ac_header_compiler=no
2284 fi
2285 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2286 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
2287 $as_echo "$ac_header_compiler" >&6; }
2288
2289 # Is the header present?
2290 { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
2291 $as_echo_n "checking $2 presence... " >&6; }
2292 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2293 /* end confdefs.h. */
2294 #include <$2>
2295 _ACEOF
2296 if ac_fn_cxx_try_cpp "$LINENO"; then :
2297 ac_header_preproc=yes
2298 else
2299 ac_header_preproc=no
2300 fi
2301 rm -f conftest.err conftest.i conftest.$ac_ext
2302 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
2303 $as_echo "$ac_header_preproc" >&6; }
2304
2305 # So? What about this header?
2306 case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #((
2307 yes:no: )
2308 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
2309 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
2310 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
2311 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
2312 ;;
2313 no:yes:* )
2314 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
2315 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
2316 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
2317 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
2318 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
2319 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
2320 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
2321 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
2322 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
2323 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
2324 ;;
2325 esac
2326 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2327 $as_echo_n "checking for $2... " >&6; }
2328 if eval \${$3+:} false; then :
2329 $as_echo_n "(cached) " >&6
2330 else
2331 eval "$3=\$ac_header_compiler"
2332 fi
2333 eval ac_res=\$$3
2334 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2335 $as_echo "$ac_res" >&6; }
2336 fi
2337 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2338
2339 } # ac_fn_cxx_check_header_mongrel
2340
2341 # ac_fn_cxx_try_run LINENO
2342 # ------------------------
2343 # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
2344 # that executables *can* be run.
2345 ac_fn_cxx_try_run ()
2346 {
2347 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
2348 if { { ac_try="$ac_link"
2349 case "(($ac_try" in
2350 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
2351 *) ac_try_echo=$ac_try;;
2352 esac
2353 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
2354 $as_echo "$ac_try_echo"; } >&5
2355 (eval "$ac_link") 2>&5
2356 ac_status=$?
2357 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2358 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
2359 { { case "(($ac_try" in
2360 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
2361 *) ac_try_echo=$ac_try;;
2362 esac
2363 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
2364 $as_echo "$ac_try_echo"; } >&5
2365 (eval "$ac_try") 2>&5
2366 ac_status=$?
2367 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
2368 test $ac_status = 0; }; }; then :
2369 ac_retval=0
2370 else
2371 $as_echo "$as_me: program exited with status $ac_status" >&5
2372 $as_echo "$as_me: failed program was:" >&5
2373 sed 's/^/| /' conftest.$ac_ext >&5
2374
2375 ac_retval=$ac_status
2376 fi
2377 rm -rf conftest.dSYM conftest_ipa8_conftest.oo
2378 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2379 as_fn_set_status $ac_retval
2380
2381 } # ac_fn_cxx_try_run
2382 cat >config.log <<_ACEOF
2383 This file contains any messages produced by compilers while
2384 running configure, to aid debugging if configure makes a mistake.
2385
2386 It was created by getfem $as_me 5.0, which was
2387 generated by GNU Autoconf 2.69. Invocation command line was
2388
2389 $ $0 $@
2390
2391 _ACEOF
2392 exec 5>>config.log
2393 {
2394 cat <<_ASUNAME
2395 ## --------- ##
2396 ## Platform. ##
2397 ## --------- ##
2398
2399 hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
2400 uname -m = `(uname -m) 2>/dev/null || echo unknown`
2401 uname -r = `(uname -r) 2>/dev/null || echo unknown`
2402 uname -s = `(uname -s) 2>/dev/null || echo unknown`
2403 uname -v = `(uname -v) 2>/dev/null || echo unknown`
2404
2405 /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
2406 /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
2407
2408 /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
2409 /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
2410 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
2411 /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
2412 /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
2413 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
2414 /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
2415
2416 _ASUNAME
2417
2418 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2419 for as_dir in $PATH
2420 do
2421 IFS=$as_save_IFS
2422 test -z "$as_dir" && as_dir=.
2423 $as_echo "PATH: $as_dir"
2424 done
2425 IFS=$as_save_IFS
2426
2427 } >&5
2428
2429 cat >&5 <<_ACEOF
2430
2431
2432 ## ----------- ##
2433 ## Core tests. ##
2434 ## ----------- ##
2435
2436 _ACEOF
2437
2438
2439 # Keep a trace of the command line.
2440 # Strip out --no-create and --no-recursion so they do not pile up.
2441 # Strip out --silent because we don't want to record it for future runs.
2442 # Also quote any args containing shell meta-characters.
2443 # Make two passes to allow for proper duplicate-argument suppression.
2444 ac_configure_args=
2445 ac_configure_args0=
2446 ac_configure_args1=
2447 ac_must_keep_next=false
2448 for ac_pass in 1 2
2449 do
2450 for ac_arg
2451 do
2452 case $ac_arg in
2453 -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
2454 -q | -quiet | --quiet | --quie | --qui | --qu | --q \
2455 | -silent | --silent | --silen | --sile | --sil)
2456 continue ;;
2457 *\'*)
2458 ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2459 esac
2460 case $ac_pass in
2461 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
2462 2)
2463 as_fn_append ac_configure_args1 " '$ac_arg'"
2464 if test $ac_must_keep_next = true; then
2465 ac_must_keep_next=false # Got value, back to normal.
2466 else
2467 case $ac_arg in
2468 *=* | --config-cache | -C | -disable-* | --disable-* \
2469 | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
2470 | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
2471 | -with-* | --with-* | -without-* | --without-* | --x)
2472 case "$ac_configure_args0 " in
2473 "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
2474 esac
2475 ;;
2476 -* ) ac_must_keep_next=true ;;
2477 esac
2478 fi
2479 as_fn_append ac_configure_args " '$ac_arg'"
2480 ;;
2481 esac
2482 done
2483 done
2484 { ac_configure_args0=; unset ac_configure_args0;}
2485 { ac_configure_args1=; unset ac_configure_args1;}
2486
2487 # When interrupted or exit'd, cleanup temporary files, and complete
2488 # config.log. We remove comments because anyway the quotes in there
2489 # would cause problems or look ugly.
2490 # WARNING: Use '\'' to represent an apostrophe within the trap.
2491 # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
2492 trap 'exit_status=$?
2493 # Save into config.log some information that might help in debugging.
2494 {
2495 echo
2496
2497 $as_echo "## ---------------- ##
2498 ## Cache variables. ##
2499 ## ---------------- ##"
2500 echo
2501 # The following way of writing the cache mishandles newlines in values,
2502 (
2503 for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
2504 eval ac_val=\$$ac_var
2505 case $ac_val in #(
2506 *${as_nl}*)
2507 case $ac_var in #(
2508 *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
2509 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
2510 esac
2511 case $ac_var in #(
2512 _ | IFS | as_nl) ;; #(
2513 BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
2514 *) { eval $ac_var=; unset $ac_var;} ;;
2515 esac ;;
2516 esac
2517 done
2518 (set) 2>&1 |
2519 case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
2520 *${as_nl}ac_space=\ *)
2521 sed -n \
2522 "s/'\''/'\''\\\\'\'''\''/g;
2523 s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
2524 ;; #(
2525 *)
2526 sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
2527 ;;
2528 esac |
2529 sort
2530 )
2531 echo
2532
2533 $as_echo "## ----------------- ##
2534 ## Output variables. ##
2535 ## ----------------- ##"
2536 echo
2537 for ac_var in $ac_subst_vars
2538 do
2539 eval ac_val=\$$ac_var
2540 case $ac_val in
2541 *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
2542 esac
2543 $as_echo "$ac_var='\''$ac_val'\''"
2544 done | sort
2545 echo
2546
2547 if test -n "$ac_subst_files"; then
2548 $as_echo "## ------------------- ##
2549 ## File substitutions. ##
2550 ## ------------------- ##"
2551 echo
2552 for ac_var in $ac_subst_files
2553 do
2554 eval ac_val=\$$ac_var
2555 case $ac_val in
2556 *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
2557 esac
2558 $as_echo "$ac_var='\''$ac_val'\''"
2559 done | sort
2560 echo
2561 fi
2562
2563 if test -s confdefs.h; then
2564 $as_echo "## ----------- ##
2565 ## confdefs.h. ##
2566 ## ----------- ##"
2567 echo
2568 cat confdefs.h
2569 echo
2570 fi
2571 test "$ac_signal" != 0 &&
2572 $as_echo "$as_me: caught signal $ac_signal"
2573 $as_echo "$as_me: exit $exit_status"
2574 } >&5
2575 rm -f core *.core core.conftest.* &&
2576 rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
2577 exit $exit_status
2578 ' 0
2579 for ac_signal in 1 2 13 15; do
2580 trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
2581 done
2582 ac_signal=0
2583
2584 # confdefs.h avoids OS command line length limits that DEFS can exceed.
2585 rm -f -r conftest* confdefs.h
2586
2587 $as_echo "/* confdefs.h */" > confdefs.h
2588
2589 # Predefined preprocessor variables.
2590
2591 cat >>confdefs.h <<_ACEOF
2592 #define PACKAGE_NAME "$PACKAGE_NAME"
2593 _ACEOF
2594
2595 cat >>confdefs.h <<_ACEOF
2596 #define PACKAGE_TARNAME "$PACKAGE_TARNAME"
2597 _ACEOF
2598
2599 cat >>confdefs.h <<_ACEOF
2600 #define PACKAGE_VERSION "$PACKAGE_VERSION"
2601 _ACEOF
2602
2603 cat >>confdefs.h <<_ACEOF
2604 #define PACKAGE_STRING "$PACKAGE_STRING"
2605 _ACEOF
2606
2607 cat >>confdefs.h <<_ACEOF
2608 #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
2609 _ACEOF
2610
2611 cat >>confdefs.h <<_ACEOF
2612 #define PACKAGE_URL "$PACKAGE_URL"
2613 _ACEOF
2614
2615
2616 # Let the site file select an alternate cache file if it wants to.
2617 # Prefer an explicitly selected file to automatically selected ones.
2618 ac_site_file1=NONE
2619 ac_site_file2=NONE
2620 if test -n "$CONFIG_SITE"; then
2621 # We do not want a PATH search for config.site.
2622 case $CONFIG_SITE in #((
2623 -*) ac_site_file1=./$CONFIG_SITE;;
2624 */*) ac_site_file1=$CONFIG_SITE;;
2625 *) ac_site_file1=./$CONFIG_SITE;;
2626 esac
2627 elif test "x$prefix" != xNONE; then
2628 ac_site_file1=$prefix/share/config.site
2629 ac_site_file2=$prefix/etc/config.site
2630 else
2631 ac_site_file1=$ac_default_prefix/share/config.site
2632 ac_site_file2=$ac_default_prefix/etc/config.site
2633 fi
2634 for ac_site_file in "$ac_site_file1" "$ac_site_file2"
2635 do
2636 test "x$ac_site_file" = xNONE && continue
2637 if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
2638 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
2639 $as_echo "$as_me: loading site script $ac_site_file" >&6;}
2640 sed 's/^/| /' "$ac_site_file" >&5
2641 . "$ac_site_file" \
2642 || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
2643 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2644 as_fn_error $? "failed to load site script $ac_site_file
2645 See \`config.log' for more details" "$LINENO" 5; }
2646 fi
2647 done
2648
2649
2650 # Check that the precious variables saved in the cache have kept the same
2651 # value.
2652 ac_cache_corrupted=false
2653 for ac_var in $ac_precious_vars; do
2654 eval ac_old_set=\$ac_cv_env_${ac_var}_set
2655 eval ac_new_set=\$ac_env_${ac_var}_set
2656 eval ac_old_val=\$ac_cv_env_${ac_var}_value
2657 eval ac_new_val=\$ac_env_${ac_var}_value
2658 case $ac_old_set,$ac_new_set in
2659 set,)
2660 { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
2661 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
2662 ac_cache_corrupted=: ;;
2663 ,set)
2664 { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
2665 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
2666 ac_cache_corrupted=: ;;
2667 ,);;
2668 *)
2669 if test "x$ac_old_val" != "x$ac_new_val"; then
2670 # differences in whitespace do not lead to failure.
2671 ac_old_val_w=`echo x $ac_old_val`
2672 ac_new_val_w=`echo x $ac_new_val`
2673 if test "$ac_old_val_w" != "$ac_new_val_w"; then
2674 { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
2675 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
2676 ac_cache_corrupted=:
2677 else
2678 { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
2679 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
2680 eval $ac_var=\$ac_old_val
2681 fi
2682 { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
2683 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
2684 { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
2685 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
2686 fi;;
2687 esac
2688 # Pass precious variables to config.status.
2689 if test "$ac_new_set" = set; then
2690 case $ac_new_val in
2691 *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
2692 *) ac_arg=$ac_var=$ac_new_val ;;
2693 esac
2694 case " $ac_configure_args " in
2695 *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
2696 *) as_fn_append ac_configure_args " '$ac_arg'" ;;
2697 esac
2698 fi
2699 done
2700 if $ac_cache_corrupted; then
2701 { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
2702 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2703 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
2704 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
2705 as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
2706 fi
2707 ## -------------------- ##
2708 ## Main body of script. ##
2709 ## -------------------- ##
2710
2711 ac_ext=c
2712 ac_cpp='$CPP $CPPFLAGS'
2713 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
2714 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
2715 ac_compiler_gnu=$ac_cv_c_compiler_gnu
2716
2717
2718 MAJOR_VERSION="5"
2719 MINOR_VERSION="0"
2720 PATCH_VERSION=""
2721
2722
2723
2724 ac_config_headers="$ac_config_headers config.h"
2725
2726
2727 ac_config_commands="$ac_config_commands src/getfem/getfem_arch_config.h"
2728
2729
2730 test "$program_prefix" != NONE &&
2731 program_transform_name="s&^&$program_prefix&;$program_transform_name"
2732 # Use a double $ so make ignores it.
2733 test "$program_suffix" != NONE &&
2734 program_transform_name="s&\$&$program_suffix&;$program_transform_name"
2735 # Double any \ or $.
2736 # By default was `s,x,x', remove it if useless.
2737 ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
2738 program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
2739
2740
2741
2742
2743
2744 am__api_version='1.14'
2745
2746 ac_aux_dir=
2747 for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
2748 if test -f "$ac_dir/install-sh"; then
2749 ac_aux_dir=$ac_dir
2750 ac_install_sh="$ac_aux_dir/install-sh -c"
2751 break
2752 elif test -f "$ac_dir/install.sh"; then
2753 ac_aux_dir=$ac_dir
2754 ac_install_sh="$ac_aux_dir/install.sh -c"
2755 break
2756 elif test -f "$ac_dir/shtool"; then
2757 ac_aux_dir=$ac_dir
2758 ac_install_sh="$ac_aux_dir/shtool install -c"
2759 break
2760 fi
2761 done
2762 if test -z "$ac_aux_dir"; then
2763 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
2764 fi
2765
2766 # These three variables are undocumented and unsupported,
2767 # and are intended to be withdrawn in a future Autoconf release.
2768 # They can cause serious problems if a builder's source tree is in a directory
2769 # whose full name contains unusual characters.
2770 ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
2771 ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
2772 ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
2773
2774
2775 # Find a good install program. We prefer a C program (faster),
2776 # so one script is as good as another. But avoid the broken or
2777 # incompatible versions:
2778 # SysV /etc/install, /usr/sbin/install
2779 # SunOS /usr/etc/install
2780 # IRIX /sbin/install
2781 # AIX /bin/install
2782 # AmigaOS /C/install, which installs bootblocks on floppy discs
2783 # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
2784 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
2785 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
2786 # OS/2's system install, which has a completely different semantic
2787 # ./install, which can be erroneously created by make from ./install.sh.
2788 # Reject install programs that cannot install multiple files.
2789 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
2790 $as_echo_n "checking for a BSD-compatible install... " >&6; }
2791 if test -z "$INSTALL"; then
2792 if ${ac_cv_path_install+:} false; then :
2793 $as_echo_n "(cached) " >&6
2794 else
2795 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2796 for as_dir in $PATH
2797 do
2798 IFS=$as_save_IFS
2799 test -z "$as_dir" && as_dir=.
2800 # Account for people who put trailing slashes in PATH elements.
2801 case $as_dir/ in #((
2802 ./ | .// | /[cC]/* | \
2803 /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
2804 ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
2805 /usr/ucb/* ) ;;
2806 *)
2807 # OSF1 and SCO ODT 3.0 have their own names for install.
2808 # Don't use installbsd from OSF since it installs stuff as root
2809 # by default.
2810 for ac_prog in ginstall scoinst install; do
2811 for ac_exec_ext in '' $ac_executable_extensions; do
2812 if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
2813 if test $ac_prog = install &&
2814 grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
2815 # AIX install. It has an incompatible calling convention.
2816 :
2817 elif test $ac_prog = install &&
2818 grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
2819 # program-specific install script used by HP pwplus--don't use.
2820 :
2821 else
2822 rm -rf conftest.one conftest.two conftest.dir
2823 echo one > conftest.one
2824 echo two > conftest.two
2825 mkdir conftest.dir
2826 if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
2827 test -s conftest.one && test -s conftest.two &&
2828 test -s conftest.dir/conftest.one &&
2829 test -s conftest.dir/conftest.two
2830 then
2831 ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
2832 break 3
2833 fi
2834 fi
2835 fi
2836 done
2837 done
2838 ;;
2839 esac
2840
2841 done
2842 IFS=$as_save_IFS
2843
2844 rm -rf conftest.one conftest.two conftest.dir
2845
2846 fi
2847 if test "${ac_cv_path_install+set}" = set; then
2848 INSTALL=$ac_cv_path_install
2849 else
2850 # As a last resort, use the slow shell script. Don't cache a
2851 # value for INSTALL within a source directory, because that will
2852 # break other packages using the cache if that directory is
2853 # removed, or if the value is a relative name.
2854 INSTALL=$ac_install_sh
2855 fi
2856 fi
2857 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
2858 $as_echo "$INSTALL" >&6; }
2859
2860 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
2861 # It thinks the first close brace ends the variable substitution.
2862 test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
2863
2864 test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
2865
2866 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
2867
2868 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
2869 $as_echo_n "checking whether build environment is sane... " >&6; }
2870 # Reject unsafe characters in $srcdir or the absolute working directory
2871 # name. Accept space and tab only in the latter.
2872 am_lf='
2873 '
2874 case `pwd` in
2875 *[\\\"\#\$\&\'\`$am_lf]*)
2876 as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
2877 esac
2878 case $srcdir in
2879 *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
2880 as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
2881 esac
2882
2883 # Do 'set' in a subshell so we don't clobber the current shell's
2884 # arguments. Must try -L first in case configure is actually a
2885 # symlink; some systems play weird games with the mod time of symlinks
2886 # (eg FreeBSD returns the mod time of the symlink's containing
2887 # directory).
2888 if (
2889 am_has_slept=no
2890 for am_try in 1 2; do
2891 echo "timestamp, slept: $am_has_slept" > conftest.file
2892 set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
2893 if test "$*" = "X"; then
2894 # -L didn't work.
2895 set X `ls -t "$srcdir/configure" conftest.file`
2896 fi
2897 if test "$*" != "X $srcdir/configure conftest.file" \
2898 && test "$*" != "X conftest.file $srcdir/configure"; then
2899
2900 # If neither matched, then we have a broken ls. This can happen
2901 # if, for instance, CONFIG_SHELL is bash and it inherits a
2902 # broken ls alias from the environment. This has actually
2903 # happened. Such a system could not be considered "sane".
2904 as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
2905 alias in your environment" "$LINENO" 5
2906 fi
2907 if test "$2" = conftest.file || test $am_try -eq 2; then
2908 break
2909 fi
2910 # Just in case.
2911 sleep 1
2912 am_has_slept=yes
2913 done
2914 test "$2" = conftest.file
2915 )
2916 then
2917 # Ok.
2918 :
2919 else
2920 as_fn_error $? "newly created file is older than distributed files!
2921 Check your system clock" "$LINENO" 5
2922 fi
2923 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
2924 $as_echo "yes" >&6; }
2925 # If we didn't sleep, we still need to ensure time stamps of config.status and
2926 # generated files are strictly newer.
2927 am_sleep_pid=
2928 if grep 'slept: no' conftest.file >/dev/null 2>&1; then
2929 ( sleep 1 ) &
2930 am_sleep_pid=$!
2931 fi
2932
2933 rm -f conftest.file
2934
2935 # expand $ac_aux_dir to an absolute path
2936 am_aux_dir=`cd $ac_aux_dir && pwd`
2937
2938 if test x"${MISSING+set}" != xset; then
2939 case $am_aux_dir in
2940 *\ * | *\ *)
2941 MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
2942 *)
2943 MISSING="\${SHELL} $am_aux_dir/missing" ;;
2944 esac
2945 fi
2946 # Use eval to expand $SHELL
2947 if eval "$MISSING --is-lightweight"; then
2948 am_missing_run="$MISSING "
2949 else
2950 am_missing_run=
2951 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
2952 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
2953 fi
2954
2955 if test x"${install_sh}" != xset; then
2956 case $am_aux_dir in
2957 *\ * | *\ *)
2958 install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
2959 *)
2960 install_sh="\${SHELL} $am_aux_dir/install-sh"
2961 esac
2962 fi
2963
2964 # Installed binaries are usually stripped using 'strip' when the user
2965 # run "make install-strip". However 'strip' might not be the right
2966 # tool to use in cross-compilation environments, therefore Automake
2967 # will honor the 'STRIP' environment variable to overrule this program.
2968 if test "$cross_compiling" != no; then
2969 if test -n "$ac_tool_prefix"; then
2970 # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
2971 set dummy ${ac_tool_prefix}strip; ac_word=$2
2972 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
2973 $as_echo_n "checking for $ac_word... " >&6; }
2974 if ${ac_cv_prog_STRIP+:} false; then :
2975 $as_echo_n "(cached) " >&6
2976 else
2977 if test -n "$STRIP"; then
2978 ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
2979 else
2980 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2981 for as_dir in $PATH
2982 do
2983 IFS=$as_save_IFS
2984 test -z "$as_dir" && as_dir=.
2985 for ac_exec_ext in '' $ac_executable_extensions; do
2986 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
2987 ac_cv_prog_STRIP="${ac_tool_prefix}strip"
2988 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
2989 break 2
2990 fi
2991 done
2992 done
2993 IFS=$as_save_IFS
2994
2995 fi
2996 fi
2997 STRIP=$ac_cv_prog_STRIP
2998 if test -n "$STRIP"; then
2999 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
3000 $as_echo "$STRIP" >&6; }
3001 else
3002 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3003 $as_echo "no" >&6; }
3004 fi
3005
3006
3007 fi
3008 if test -z "$ac_cv_prog_STRIP"; then
3009 ac_ct_STRIP=$STRIP
3010 # Extract the first word of "strip", so it can be a program name with args.
3011 set dummy strip; ac_word=$2
3012 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
3013 $as_echo_n "checking for $ac_word... " >&6; }
3014 if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
3015 $as_echo_n "(cached) " >&6
3016 else
3017 if test -n "$ac_ct_STRIP"; then
3018 ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
3019 else
3020 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3021 for as_dir in $PATH
3022 do
3023 IFS=$as_save_IFS
3024 test -z "$as_dir" && as_dir=.
3025 for ac_exec_ext in '' $ac_executable_extensions; do
3026 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3027 ac_cv_prog_ac_ct_STRIP="strip"
3028 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
3029 break 2
3030 fi
3031 done
3032 done
3033 IFS=$as_save_IFS
3034
3035 fi
3036 fi
3037 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
3038 if test -n "$ac_ct_STRIP"; then
3039 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
3040 $as_echo "$ac_ct_STRIP" >&6; }
3041 else
3042 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3043 $as_echo "no" >&6; }
3044 fi
3045
3046 if test "x$ac_ct_STRIP" = x; then
3047 STRIP=":"
3048 else
3049 case $cross_compiling:$ac_tool_warned in
3050 yes:)
3051 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
3052 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
3053 ac_tool_warned=yes ;;
3054 esac
3055 STRIP=$ac_ct_STRIP
3056 fi
3057 else
3058 STRIP="$ac_cv_prog_STRIP"
3059 fi
3060
3061 fi
3062 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
3063
3064 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
3065 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
3066 if test -z "$MKDIR_P"; then
3067 if ${ac_cv_path_mkdir+:} false; then :
3068 $as_echo_n "(cached) " >&6
3069 else
3070 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3071 for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
3072 do
3073 IFS=$as_save_IFS
3074 test -z "$as_dir" && as_dir=.
3075 for ac_prog in mkdir gmkdir; do
3076 for ac_exec_ext in '' $ac_executable_extensions; do
3077 as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
3078 case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
3079 'mkdir (GNU coreutils) '* | \
3080 'mkdir (coreutils) '* | \
3081 'mkdir (fileutils) '4.1*)
3082 ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
3083 break 3;;
3084 esac
3085 done
3086 done
3087 done
3088 IFS=$as_save_IFS
3089
3090 fi
3091
3092 test -d ./--version && rmdir ./--version
3093 if test "${ac_cv_path_mkdir+set}" = set; then
3094 MKDIR_P="$ac_cv_path_mkdir -p"
3095 else
3096 # As a last resort, use the slow shell script. Don't cache a
3097 # value for MKDIR_P within a source directory, because that will
3098 # break other packages using the cache if that directory is
3099 # removed, or if the value is a relative name.
3100 MKDIR_P="$ac_install_sh -d"
3101 fi
3102 fi
3103 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
3104 $as_echo "$MKDIR_P" >&6; }
3105
3106 for ac_prog in gawk mawk nawk awk
3107 do
3108 # Extract the first word of "$ac_prog", so it can be a program name with args.
3109 set dummy $ac_prog; ac_word=$2
3110 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
3111 $as_echo_n "checking for $ac_word... " >&6; }
3112 if ${ac_cv_prog_AWK+:} false; then :
3113 $as_echo_n "(cached) " >&6
3114 else
3115 if test -n "$AWK"; then
3116 ac_cv_prog_AWK="$AWK" # Let the user override the test.
3117 else
3118 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3119 for as_dir in $PATH
3120 do
3121 IFS=$as_save_IFS
3122 test -z "$as_dir" && as_dir=.
3123 for ac_exec_ext in '' $ac_executable_extensions; do
3124 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3125 ac_cv_prog_AWK="$ac_prog"
3126 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
3127 break 2
3128 fi
3129 done
3130 done
3131 IFS=$as_save_IFS
3132
3133 fi
3134 fi
3135 AWK=$ac_cv_prog_AWK
3136 if test -n "$AWK"; then
3137 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
3138 $as_echo "$AWK" >&6; }
3139 else
3140 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3141 $as_echo "no" >&6; }
3142 fi
3143
3144
3145 test -n "$AWK" && break
3146 done
3147
3148 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
3149 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
3150 set x ${MAKE-make}
3151 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
3152 if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
3153 $as_echo_n "(cached) " >&6
3154 else
3155 cat >conftest.make <<\_ACEOF
3156 SHELL = /bin/sh
3157 all:
3158 @echo '@@@%%%=$(MAKE)=@@@%%%'
3159 _ACEOF
3160 # GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
3161 case `${MAKE-make} -f conftest.make 2>/dev/null` in
3162 *@@@%%%=?*=@@@%%%*)
3163 eval ac_cv_prog_make_${ac_make}_set=yes;;
3164 *)
3165 eval ac_cv_prog_make_${ac_make}_set=no;;
3166 esac
3167 rm -f conftest.make
3168 fi
3169 if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
3170 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3171 $as_echo "yes" >&6; }
3172 SET_MAKE=
3173 else
3174 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3175 $as_echo "no" >&6; }
3176 SET_MAKE="MAKE=${MAKE-make}"
3177 fi
3178
3179 rm -rf .tst 2>/dev/null
3180 mkdir .tst 2>/dev/null
3181 if test -d .tst; then
3182 am__leading_dot=.
3183 else
3184 am__leading_dot=_
3185 fi
3186 rmdir .tst 2>/dev/null
3187
3188 # Check whether --enable-silent-rules was given.
3189 if test "${enable_silent_rules+set}" = set; then :
3190 enableval=$enable_silent_rules;
3191 fi
3192
3193 case $enable_silent_rules in # (((
3194 yes) AM_DEFAULT_VERBOSITY=0;;
3195 no) AM_DEFAULT_VERBOSITY=1;;
3196 *) AM_DEFAULT_VERBOSITY=1;;
3197 esac
3198 am_make=${MAKE-make}
3199 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
3200 $as_echo_n "checking whether $am_make supports nested variables... " >&6; }
3201 if ${am_cv_make_support_nested_variables+:} false; then :
3202 $as_echo_n "(cached) " >&6
3203 else
3204 if $as_echo 'TRUE=$(BAR$(V))
3205 BAR0=false
3206 BAR1=true
3207 V=1
3208 am__doit:
3209 @$(TRUE)
3210 .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
3211 am_cv_make_support_nested_variables=yes
3212 else
3213 am_cv_make_support_nested_variables=no
3214 fi
3215 fi
3216 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
3217 $as_echo "$am_cv_make_support_nested_variables" >&6; }
3218 if test $am_cv_make_support_nested_variables = yes; then
3219 AM_V='$(V)'
3220 AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
3221 else
3222 AM_V=$AM_DEFAULT_VERBOSITY
3223 AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
3224 fi
3225 AM_BACKSLASH='\'
3226
3227 if test "`cd $srcdir && pwd`" != "`pwd`"; then
3228 # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
3229 # is not polluted with repeated "-I."
3230 am__isrc=' -I$(srcdir)'
3231 # test to see if srcdir already configured
3232 if test -f $srcdir/config.status; then
3233 as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
3234 fi
3235 fi
3236
3237 # test whether we have cygpath
3238 if test -z "$CYGPATH_W"; then
3239 if (cygpath --version) >/dev/null 2>/dev/null; then
3240 CYGPATH_W='cygpath -w'
3241 else
3242 CYGPATH_W=echo
3243 fi
3244 fi
3245
3246
3247 # Define the identity of the package.
3248 PACKAGE='getfem'
3249 VERSION='5.0'
3250
3251
3252 cat >>confdefs.h <<_ACEOF
3253 #define PACKAGE "$PACKAGE"
3254 _ACEOF
3255
3256
3257 cat >>confdefs.h <<_ACEOF
3258 #define VERSION "$VERSION"
3259 _ACEOF
3260
3261 # Some tools Automake needs.
3262
3263 ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
3264
3265
3266 AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
3267
3268
3269 AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
3270
3271
3272 AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
3273
3274
3275 MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
3276
3277 # For better backward compatibility. To be removed once Automake 1.9.x
3278 # dies out for good. For more background, see:
3279 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
3280 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
3281 mkdir_p='$(MKDIR_P)'
3282
3283 # We need awk for the "check" target. The system "awk" is bad on
3284 # some platforms.
3285 # Always define AMTAR for backward compatibility. Yes, it's still used
3286 # in the wild :-( We should find a proper way to deprecate it ...
3287 AMTAR='$${TAR-tar}'
3288
3289
3290 # We'll loop over all known methods to create a tar archive until one works.
3291 _am_tools='gnutar pax cpio none'
3292
3293 am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
3294
3295
3296
3297
3298
3299
3300 # POSIX will say in a future version that running "rm -f" with no argument
3301 # is OK; and we want to be able to make that assumption in our Makefile
3302 # recipes. So use an aggressive probe to check that the usage we want is
3303 # actually supported "in the wild" to an acceptable degree.
3304 # See automake bug#10828.
3305 # To make any issue more visible, cause the running configure to be aborted
3306 # by default if the 'rm' program in use doesn't match our expectations; the
3307 # user can still override this though.
3308 if rm -f && rm -fr && rm -rf; then : OK; else
3309 cat >&2 <<'END'
3310 Oops!
3311
3312 Your 'rm' program seems unable to run without file operands specified
3313 on the command line, even when the '-f' option is present. This is contrary
3314 to the behaviour of most rm programs out there, and not conforming with
3315 the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
3316
3317 Please tell bug-automake@gnu.org about your system, including the value
3318 of your $PATH and any error possibly output before this message. This
3319 can help us improve future automake versions.
3320
3321 END
3322 if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
3323 echo 'Configuration will proceed anyway, since you have set the' >&2
3324 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
3325 echo >&2
3326 else
3327 cat >&2 <<'END'
3328 Aborting the configuration process, to ensure you take notice of the issue.
3329
3330 You can download and install GNU coreutils to get an 'rm' implementation
3331 that behaves properly: <http://www.gnu.org/software/coreutils/>.
3332
3333 If you want to complete the configuration process using your problematic
3334 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
3335 to "yes", and re-run configure.
3336
3337 END
3338 as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
3339 fi
3340 fi
3341 WARNING_MSG=""
3342
3343
3344
3345 # Check whether --with-optimization was given.
3346 if test "${with_optimization+set}" = set; then :
3347 withval=$with_optimization; with_optimization=$withval
3348 else
3349 with_optimization='-O3'
3350
3351 fi
3352
3353
3354
3355 paralevel=0
3356 # Check whether --enable-paralevel was given.
3357 if test "${enable_paralevel+set}" = set; then :
3358 enableval=$enable_paralevel; case $enableval in
3359 yes | "") paralevel=2;;
3360 no) ;;
3361 *) paralevel=$enableval ;;
3362 esac
3363
3364 fi
3365
3366
3367 if test $paralevel -ge 1; then
3368 CPPFLAGS="$CPPFLAGS -DGETFEM_PARA_LEVEL=$paralevel"
3369 fi;
3370
3371
3372
3373
3374 USER_CXXFLAGS="$CXXFLAGS"
3375 USER_CFLAGS="$CFLAGS"
3376 DEPDIR="${am__leading_dot}deps"
3377
3378 ac_config_commands="$ac_config_commands depfiles"
3379
3380
3381 am_make=${MAKE-make}
3382 cat > confinc << 'END'
3383 am__doit:
3384 @echo this is the am__doit target
3385 .PHONY: am__doit
3386 END
3387 # If we don't find an include directive, just comment out the code.
3388 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
3389 $as_echo_n "checking for style of include used by $am_make... " >&6; }
3390 am__include="#"
3391 am__quote=
3392 _am_result=none
3393 # First try GNU make style include.
3394 echo "include confinc" > confmf
3395 # Ignore all kinds of additional output from 'make'.
3396 case `$am_make -s -f confmf 2> /dev/null` in #(
3397 *the\ am__doit\ target*)
3398 am__include=include
3399 am__quote=
3400 _am_result=GNU
3401 ;;
3402 esac
3403 # Now try BSD make style include.
3404 if test "$am__include" = "#"; then
3405 echo '.include "confinc"' > confmf
3406 case `$am_make -s -f confmf 2> /dev/null` in #(
3407 *the\ am__doit\ target*)
3408 am__include=.include
3409 am__quote="\""
3410 _am_result=BSD
3411 ;;
3412 esac
3413 fi
3414
3415
3416 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
3417 $as_echo "$_am_result" >&6; }
3418 rm -f confinc confmf
3419
3420 # Check whether --enable-dependency-tracking was given.
3421 if test "${enable_dependency_tracking+set}" = set; then :
3422 enableval=$enable_dependency_tracking;
3423 fi
3424
3425 if test "x$enable_dependency_tracking" != xno; then
3426 am_depcomp="$ac_aux_dir/depcomp"
3427 AMDEPBACKSLASH='\'
3428 am__nodep='_no'
3429 fi
3430 if test "x$enable_dependency_tracking" != xno; then
3431 AMDEP_TRUE=
3432 AMDEP_FALSE='#'
3433 else
3434 AMDEP_TRUE='#'
3435 AMDEP_FALSE=
3436 fi
3437
3438
3439
3440
3441
3442 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to compile using MPI" >&5
3443 $as_echo_n "checking whether to compile using MPI... " >&6; }
3444 if test $paralevel -ge 1; then
3445 _ax_prog_cxx_mpi_mpi_wanted=yes
3446 else
3447 _ax_prog_cxx_mpi_mpi_wanted=no
3448 fi
3449 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_ax_prog_cxx_mpi_mpi_wanted" >&5
3450 $as_echo "$_ax_prog_cxx_mpi_mpi_wanted" >&6; }
3451
3452 if test x"$_ax_prog_cxx_mpi_mpi_wanted" = xyes; then
3453 if test -z "$CXX" && test -n "$MPICXX"; then
3454 CXX="$MPICXX"
3455 else
3456 if test -n "$ac_tool_prefix"; then
3457 for ac_prog in mpic++ mpicxx mpiCC sxmpic++ hcp mpxlC_r mpxlC mpixlcxx_r mpixlcxx mpg++ mpc++ mpCC cmpic++ mpiFCC CCicpc pgCC pathCC sxc++ xlC_r xlC bgxlC_r bgxlC openCC sunCC crayCC g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC
3458 do
3459 # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
3460 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
3461 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
3462 $as_echo_n "checking for $ac_word... " >&6; }
3463 if ${ac_cv_prog_CXX+:} false; then :
3464 $as_echo_n "(cached) " >&6
3465 else
3466 if test -n "$CXX"; then
3467 ac_cv_prog_CXX="$CXX" # Let the user override the test.
3468 else
3469 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3470 for as_dir in $PATH
3471 do
3472 IFS=$as_save_IFS
3473 test -z "$as_dir" && as_dir=.
3474 for ac_exec_ext in '' $ac_executable_extensions; do
3475 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3476 ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
3477 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
3478 break 2
3479 fi
3480 done
3481 done
3482 IFS=$as_save_IFS
3483
3484 fi
3485 fi
3486 CXX=$ac_cv_prog_CXX
3487 if test -n "$CXX"; then
3488 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
3489 $as_echo "$CXX" >&6; }
3490 else
3491 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3492 $as_echo "no" >&6; }
3493 fi
3494
3495
3496 test -n "$CXX" && break
3497 done
3498 fi
3499 if test -z "$CXX"; then
3500 ac_ct_CXX=$CXX
3501 for ac_prog in mpic++ mpicxx mpiCC sxmpic++ hcp mpxlC_r mpxlC mpixlcxx_r mpixlcxx mpg++ mpc++ mpCC cmpic++ mpiFCC CCicpc pgCC pathCC sxc++ xlC_r xlC bgxlC_r bgxlC openCC sunCC crayCC g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC
3502 do
3503 # Extract the first word of "$ac_prog", so it can be a program name with args.
3504 set dummy $ac_prog; ac_word=$2
3505 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
3506 $as_echo_n "checking for $ac_word... " >&6; }
3507 if ${ac_cv_prog_ac_ct_CXX+:} false; then :
3508 $as_echo_n "(cached) " >&6
3509 else
3510 if test -n "$ac_ct_CXX"; then
3511 ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
3512 else
3513 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3514 for as_dir in $PATH
3515 do
3516 IFS=$as_save_IFS
3517 test -z "$as_dir" && as_dir=.
3518 for ac_exec_ext in '' $ac_executable_extensions; do
3519 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3520 ac_cv_prog_ac_ct_CXX="$ac_prog"
3521 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
3522 break 2
3523 fi
3524 done
3525 done
3526 IFS=$as_save_IFS
3527
3528 fi
3529 fi
3530 ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
3531 if test -n "$ac_ct_CXX"; then
3532 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
3533 $as_echo "$ac_ct_CXX" >&6; }
3534 else
3535 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3536 $as_echo "no" >&6; }
3537 fi
3538
3539
3540 test -n "$ac_ct_CXX" && break
3541 done
3542
3543 if test "x$ac_ct_CXX" = x; then
3544 CXX=""
3545 else
3546 case $cross_compiling:$ac_tool_warned in
3547 yes:)
3548 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
3549 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
3550 ac_tool_warned=yes ;;
3551 esac
3552 CXX=$ac_ct_CXX
3553 fi
3554 fi
3555
3556 fi
3557 fi
3558 ac_ext=cpp
3559 ac_cpp='$CXXCPP $CPPFLAGS'
3560 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
3561 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
3562 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
3563 if test -z "$CXX"; then
3564 if test -n "$CCC"; then
3565 CXX=$CCC
3566 else
3567 if test -n "$ac_tool_prefix"; then
3568 for ac_prog in g++ cxx KCC CC cc++ xlC aCC c++ icpc
3569 do
3570 # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
3571 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
3572 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
3573 $as_echo_n "checking for $ac_word... " >&6; }
3574 if ${ac_cv_prog_CXX+:} false; then :
3575 $as_echo_n "(cached) " >&6
3576 else
3577 if test -n "$CXX"; then
3578 ac_cv_prog_CXX="$CXX" # Let the user override the test.
3579 else
3580 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3581 for as_dir in $PATH
3582 do
3583 IFS=$as_save_IFS
3584 test -z "$as_dir" && as_dir=.
3585 for ac_exec_ext in '' $ac_executable_extensions; do
3586 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3587 ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
3588 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
3589 break 2
3590 fi
3591 done
3592 done
3593 IFS=$as_save_IFS
3594
3595 fi
3596 fi
3597 CXX=$ac_cv_prog_CXX
3598 if test -n "$CXX"; then
3599 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
3600 $as_echo "$CXX" >&6; }
3601 else
3602 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3603 $as_echo "no" >&6; }
3604 fi
3605
3606
3607 test -n "$CXX" && break
3608 done
3609 fi
3610 if test -z "$CXX"; then
3611 ac_ct_CXX=$CXX
3612 for ac_prog in g++ cxx KCC CC cc++ xlC aCC c++ icpc
3613 do
3614 # Extract the first word of "$ac_prog", so it can be a program name with args.
3615 set dummy $ac_prog; ac_word=$2
3616 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
3617 $as_echo_n "checking for $ac_word... " >&6; }
3618 if ${ac_cv_prog_ac_ct_CXX+:} false; then :
3619 $as_echo_n "(cached) " >&6
3620 else
3621 if test -n "$ac_ct_CXX"; then
3622 ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
3623 else
3624 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3625 for as_dir in $PATH
3626 do
3627 IFS=$as_save_IFS
3628 test -z "$as_dir" && as_dir=.
3629 for ac_exec_ext in '' $ac_executable_extensions; do
3630 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3631 ac_cv_prog_ac_ct_CXX="$ac_prog"
3632 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
3633 break 2
3634 fi
3635 done
3636 done
3637 IFS=$as_save_IFS
3638
3639 fi
3640 fi
3641 ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
3642 if test -n "$ac_ct_CXX"; then
3643 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
3644 $as_echo "$ac_ct_CXX" >&6; }
3645 else
3646 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3647 $as_echo "no" >&6; }
3648 fi
3649
3650
3651 test -n "$ac_ct_CXX" && break
3652 done
3653
3654 if test "x$ac_ct_CXX" = x; then
3655 CXX="g++"
3656 else
3657 case $cross_compiling:$ac_tool_warned in
3658 yes:)
3659 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
3660 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
3661 ac_tool_warned=yes ;;
3662 esac
3663 CXX=$ac_ct_CXX
3664 fi
3665 fi
3666
3667 fi
3668 fi
3669 # Provide some information about the compiler.
3670 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
3671 set X $ac_compile
3672 ac_compiler=$2
3673 for ac_option in --version -v -V -qversion; do
3674 { { ac_try="$ac_compiler $ac_option >&5"
3675 case "(($ac_try" in
3676 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
3677 *) ac_try_echo=$ac_try;;
3678 esac
3679 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
3680 $as_echo "$ac_try_echo"; } >&5
3681 (eval "$ac_compiler $ac_option >&5") 2>conftest.err
3682 ac_status=$?
3683 if test -s conftest.err; then
3684 sed '10a\
3685 ... rest of stderr output deleted ...
3686 10q' conftest.err >conftest.er1
3687 cat conftest.er1 >&5
3688 fi
3689 rm -f conftest.er1 conftest.err
3690 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
3691 test $ac_status = 0; }
3692 done
3693
3694 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3695 /* end confdefs.h. */
3696
3697 int
3698 main ()
3699 {
3700
3701 ;
3702 return 0;
3703 }
3704 _ACEOF
3705 ac_clean_files_save=$ac_clean_files
3706 ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
3707 # Try to create an executable without -o first, disregard a.out.
3708 # It will help us diagnose broken compilers, and finding out an intuition
3709 # of exeext.
3710 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5
3711 $as_echo_n "checking whether the C++ compiler works... " >&6; }
3712 ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
3713
3714 # The possible output files:
3715 ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
3716
3717 ac_rmfiles=
3718 for ac_file in $ac_files
3719 do
3720 case $ac_file in
3721 *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
3722 * ) ac_rmfiles="$ac_rmfiles $ac_file";;
3723 esac
3724 done
3725 rm -f $ac_rmfiles
3726
3727 if { { ac_try="$ac_link_default"
3728 case "(($ac_try" in
3729 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
3730 *) ac_try_echo=$ac_try;;
3731 esac
3732 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
3733 $as_echo "$ac_try_echo"; } >&5
3734 (eval "$ac_link_default") 2>&5
3735 ac_status=$?
3736 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
3737 test $ac_status = 0; }; then :
3738 # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
3739 # So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
3740 # in a Makefile. We should not override ac_cv_exeext if it was cached,
3741 # so that the user can short-circuit this test for compilers unknown to
3742 # Autoconf.
3743 for ac_file in $ac_files ''
3744 do
3745 test -f "$ac_file" || continue
3746 case $ac_file in
3747 *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
3748 ;;
3749 [ab].out )
3750 # We found the default executable, but exeext='' is most
3751 # certainly right.
3752 break;;
3753 *.* )
3754 if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
3755 then :; else
3756 ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
3757 fi
3758 # We set ac_cv_exeext here because the later test for it is not
3759 # safe: cross compilers may not add the suffix if given an `-o'
3760 # argument, so we may need to know it at that point already.
3761 # Even if this section looks crufty: it has the advantage of
3762 # actually working.
3763 break;;
3764 * )
3765 break;;
3766 esac
3767 done
3768 test "$ac_cv_exeext" = no && ac_cv_exeext=
3769
3770 else
3771 ac_file=''
3772 fi
3773 if test -z "$ac_file"; then :
3774 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3775 $as_echo "no" >&6; }
3776 $as_echo "$as_me: failed program was:" >&5
3777 sed 's/^/| /' conftest.$ac_ext >&5
3778
3779 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3780 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3781 as_fn_error 77 "C++ compiler cannot create executables
3782 See \`config.log' for more details" "$LINENO" 5; }
3783 else
3784 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3785 $as_echo "yes" >&6; }
3786 fi
3787 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5
3788 $as_echo_n "checking for C++ compiler default output file name... " >&6; }
3789 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
3790 $as_echo "$ac_file" >&6; }
3791 ac_exeext=$ac_cv_exeext
3792
3793 rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
3794 ac_clean_files=$ac_clean_files_save
3795 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
3796 $as_echo_n "checking for suffix of executables... " >&6; }
3797 if { { ac_try="$ac_link"
3798 case "(($ac_try" in
3799 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
3800 *) ac_try_echo=$ac_try;;
3801 esac
3802 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
3803 $as_echo "$ac_try_echo"; } >&5
3804 (eval "$ac_link") 2>&5
3805 ac_status=$?
3806 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
3807 test $ac_status = 0; }; then :
3808 # If both `conftest.exe' and `conftest' are `present' (well, observable)
3809 # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
3810 # work properly (i.e., refer to `conftest.exe'), while it won't with
3811 # `rm'.
3812 for ac_file in conftest.exe conftest conftest.*; do
3813 test -f "$ac_file" || continue
3814 case $ac_file in
3815 *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
3816 *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
3817 break;;
3818 * ) break;;
3819 esac
3820 done
3821 else
3822 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3823 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3824 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
3825 See \`config.log' for more details" "$LINENO" 5; }
3826 fi
3827 rm -f conftest conftest$ac_cv_exeext
3828 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
3829 $as_echo "$ac_cv_exeext" >&6; }
3830
3831 rm -f conftest.$ac_ext
3832 EXEEXT=$ac_cv_exeext
3833 ac_exeext=$EXEEXT
3834 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3835 /* end confdefs.h. */
3836 #include <stdio.h>
3837 int
3838 main ()
3839 {
3840 FILE *f = fopen ("conftest.out", "w");
3841 return ferror (f) || fclose (f) != 0;
3842
3843 ;
3844 return 0;
3845 }
3846 _ACEOF
3847 ac_clean_files="$ac_clean_files conftest.out"
3848 # Check that the compiler produces executables we can run. If not, either
3849 # the compiler is broken, or we cross compile.
3850 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
3851 $as_echo_n "checking whether we are cross compiling... " >&6; }
3852 if test "$cross_compiling" != yes; then
3853 { { ac_try="$ac_link"
3854 case "(($ac_try" in
3855 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
3856 *) ac_try_echo=$ac_try;;
3857 esac
3858 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
3859 $as_echo "$ac_try_echo"; } >&5
3860 (eval "$ac_link") 2>&5
3861 ac_status=$?
3862 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
3863 test $ac_status = 0; }
3864 if { ac_try='./conftest$ac_cv_exeext'
3865 { { case "(($ac_try" in
3866 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
3867 *) ac_try_echo=$ac_try;;
3868 esac
3869 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
3870 $as_echo "$ac_try_echo"; } >&5
3871 (eval "$ac_try") 2>&5
3872 ac_status=$?
3873 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
3874 test $ac_status = 0; }; }; then
3875 cross_compiling=no
3876 else
3877 if test "$cross_compiling" = maybe; then
3878 cross_compiling=yes
3879 else
3880 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3881 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3882 as_fn_error $? "cannot run C++ compiled programs.
3883 If you meant to cross compile, use \`--host'.
3884 See \`config.log' for more details" "$LINENO" 5; }
3885 fi
3886 fi
3887 fi
3888 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
3889 $as_echo "$cross_compiling" >&6; }
3890
3891 rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
3892 ac_clean_files=$ac_clean_files_save
3893 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
3894 $as_echo_n "checking for suffix of object files... " >&6; }
3895 if ${ac_cv_objext+:} false; then :
3896 $as_echo_n "(cached) " >&6
3897 else
3898 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3899 /* end confdefs.h. */
3900
3901 int
3902 main ()
3903 {
3904
3905 ;
3906 return 0;
3907 }
3908 _ACEOF
3909 rm -f conftest.o conftest.obj
3910 if { { ac_try="$ac_compile"
3911 case "(($ac_try" in
3912 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
3913 *) ac_try_echo=$ac_try;;
3914 esac
3915 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
3916 $as_echo "$ac_try_echo"; } >&5
3917 (eval "$ac_compile") 2>&5
3918 ac_status=$?
3919 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
3920 test $ac_status = 0; }; then :
3921 for ac_file in conftest.o conftest.obj conftest.*; do
3922 test -f "$ac_file" || continue;
3923 case $ac_file in
3924 *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
3925 *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
3926 break;;
3927 esac
3928 done
3929 else
3930 $as_echo "$as_me: failed program was:" >&5
3931 sed 's/^/| /' conftest.$ac_ext >&5
3932
3933 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3934 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3935 as_fn_error $? "cannot compute suffix of object files: cannot compile
3936 See \`config.log' for more details" "$LINENO" 5; }
3937 fi
3938 rm -f conftest.$ac_cv_objext conftest.$ac_ext
3939 fi
3940 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
3941 $as_echo "$ac_cv_objext" >&6; }
3942 OBJEXT=$ac_cv_objext
3943 ac_objext=$OBJEXT
3944 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
3945 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
3946 if ${ac_cv_cxx_compiler_gnu+:} false; then :
3947 $as_echo_n "(cached) " >&6
3948 else
3949 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3950 /* end confdefs.h. */
3951
3952 int
3953 main ()
3954 {
3955 #ifndef __GNUC__
3956 choke me
3957 #endif
3958
3959 ;
3960 return 0;
3961 }
3962 _ACEOF
3963 if ac_fn_cxx_try_compile "$LINENO"; then :
3964 ac_compiler_gnu=yes
3965 else
3966 ac_compiler_gnu=no
3967 fi
3968 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
3969 ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
3970
3971 fi
3972 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
3973 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
3974 if test $ac_compiler_gnu = yes; then
3975 GXX=yes
3976 else
3977 GXX=
3978 fi
3979 ac_test_CXXFLAGS=${CXXFLAGS+set}
3980 ac_save_CXXFLAGS=$CXXFLAGS
3981 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
3982 $as_echo_n "checking whether $CXX accepts -g... " >&6; }
3983 if ${ac_cv_prog_cxx_g+:} false; then :
3984 $as_echo_n "(cached) " >&6
3985 else
3986 ac_save_cxx_werror_flag=$ac_cxx_werror_flag
3987 ac_cxx_werror_flag=yes
3988 ac_cv_prog_cxx_g=no
3989 CXXFLAGS="-g"
3990 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3991 /* end confdefs.h. */
3992
3993 int
3994 main ()
3995 {
3996
3997 ;
3998 return 0;
3999 }
4000 _ACEOF
4001 if ac_fn_cxx_try_compile "$LINENO"; then :
4002 ac_cv_prog_cxx_g=yes
4003 else
4004 CXXFLAGS=""
4005 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
4006 /* end confdefs.h. */
4007
4008 int
4009 main ()
4010 {
4011
4012 ;
4013 return 0;
4014 }
4015 _ACEOF
4016 if ac_fn_cxx_try_compile "$LINENO"; then :
4017
4018 else
4019 ac_cxx_werror_flag=$ac_save_cxx_werror_flag
4020 CXXFLAGS="-g"
4021 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
4022 /* end confdefs.h. */
4023
4024 int
4025 main ()
4026 {
4027
4028 ;
4029 return 0;
4030 }
4031 _ACEOF
4032 if ac_fn_cxx_try_compile "$LINENO"; then :
4033 ac_cv_prog_cxx_g=yes
4034 fi
4035 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4036 fi
4037 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4038 fi
4039 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4040 ac_cxx_werror_flag=$ac_save_cxx_werror_flag
4041 fi
4042 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
4043 $as_echo "$ac_cv_prog_cxx_g" >&6; }
4044 if test "$ac_test_CXXFLAGS" = set; then
4045 CXXFLAGS=$ac_save_CXXFLAGS
4046 elif test $ac_cv_prog_cxx_g = yes; then
4047 if test "$GXX" = yes; then
4048 CXXFLAGS="-g -O2"
4049 else
4050 CXXFLAGS="-g"
4051 fi
4052 else
4053 if test "$GXX" = yes; then
4054 CXXFLAGS="-O2"
4055 else
4056 CXXFLAGS=
4057 fi
4058 fi
4059 ac_ext=c
4060 ac_cpp='$CPP $CPPFLAGS'
4061 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4062 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4063 ac_compiler_gnu=$ac_cv_c_compiler_gnu
4064
4065 depcc="$CXX" am_compiler_list=
4066
4067 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
4068 $as_echo_n "checking dependency style of $depcc... " >&6; }
4069 if ${am_cv_CXX_dependencies_compiler_type+:} false; then :
4070 $as_echo_n "(cached) " >&6
4071 else
4072 if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
4073 # We make a subdir and do the tests there. Otherwise we can end up
4074 # making bogus files that we don't know about and never remove. For
4075 # instance it was reported that on HP-UX the gcc test will end up
4076 # making a dummy file named 'D' -- because '-MD' means "put the output
4077 # in D".
4078 rm -rf conftest.dir
4079 mkdir conftest.dir
4080 # Copy depcomp to subdir because otherwise we won't find it if we're
4081 # using a relative directory.
4082 cp "$am_depcomp" conftest.dir
4083 cd conftest.dir
4084 # We will build objects and dependencies in a subdirectory because
4085 # it helps to detect inapplicable dependency modes. For instance
4086 # both Tru64's cc and ICC support -MD to output dependencies as a
4087 # side effect of compilation, but ICC will put the dependencies in
4088 # the current directory while Tru64 will put them in the object
4089 # directory.
4090 mkdir sub
4091
4092 am_cv_CXX_dependencies_compiler_type=none
4093 if test "$am_compiler_list" = ""; then
4094 am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
4095 fi
4096 am__universal=false
4097 case " $depcc " in #(
4098 *\ -arch\ *\ -arch\ *) am__universal=true ;;
4099 esac
4100
4101 for depmode in $am_compiler_list; do
4102 # Setup a source with many dependencies, because some compilers
4103 # like to wrap large dependency lists on column 80 (with \), and
4104 # we should not choose a depcomp mode which is confused by this.
4105 #
4106 # We need to recreate these files for each test, as the compiler may
4107 # overwrite some of them when testing with obscure command lines.
4108 # This happens at least with the AIX C compiler.
4109 : > sub/conftest.c
4110 for i in 1 2 3 4 5 6; do
4111 echo '#include "conftst'$i'.h"' >> sub/conftest.c
4112 # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
4113 # Solaris 10 /bin/sh.
4114 echo '/* dummy */' > sub/conftst$i.h
4115 done
4116 echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
4117
4118 # We check with '-c' and '-o' for the sake of the "dashmstdout"
4119 # mode. It turns out that the SunPro C++ compiler does not properly
4120 # handle '-M -o', and we need to detect this. Also, some Intel
4121 # versions had trouble with output in subdirs.
4122 am__obj=sub/conftest.${OBJEXT-o}
4123 am__minus_obj="-o $am__obj"
4124 case $depmode in
4125 gcc)
4126 # This depmode causes a compiler race in universal mode.
4127 test "$am__universal" = false || continue
4128 ;;
4129 nosideeffect)
4130 # After this tag, mechanisms are not by side-effect, so they'll
4131 # only be used when explicitly requested.
4132 if test "x$enable_dependency_tracking" = xyes; then
4133 continue
4134 else
4135 break
4136 fi
4137 ;;
4138 msvc7 | msvc7msys | msvisualcpp | msvcmsys)
4139 # This compiler won't grok '-c -o', but also, the minuso test has
4140 # not run yet. These depmodes are late enough in the game, and
4141 # so weak that their functioning should not be impacted.
4142 am__obj=conftest.${OBJEXT-o}
4143 am__minus_obj=
4144 ;;
4145 none) break ;;
4146 esac
4147 if depmode=$depmode \
4148 source=sub/conftest.c object=$am__obj \
4149 depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
4150 $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
4151 >/dev/null 2>conftest.err &&
4152 grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
4153 grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
4154 grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
4155 ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
4156 # icc doesn't choke on unknown options, it will just issue warnings
4157 # or remarks (even with -Werror). So we grep stderr for any message
4158 # that says an option was ignored or not supported.
4159 # When given -MP, icc 7.0 and 7.1 complain thusly:
4160 # icc: Command line warning: ignoring option '-M'; no argument required
4161 # The diagnosis changed in icc 8.0:
4162 # icc: Command line remark: option '-MP' not supported
4163 if (grep 'ignoring option' conftest.err ||
4164 grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
4165 am_cv_CXX_dependencies_compiler_type=$depmode
4166 break
4167 fi
4168 fi
4169 done
4170
4171 cd ..
4172 rm -rf conftest.dir
4173 else
4174 am_cv_CXX_dependencies_compiler_type=none
4175 fi
4176
4177 fi
4178 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
4179 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
4180 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
4181
4182 if
4183 test "x$enable_dependency_tracking" != xno \
4184 && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
4185 am__fastdepCXX_TRUE=
4186 am__fastdepCXX_FALSE='#'
4187 else
4188 am__fastdepCXX_TRUE='#'
4189 am__fastdepCXX_FALSE=
4190 fi
4191
4192
4193
4194
4195
4196
4197
4198 # Check for compiler
4199 # Needs to be split off into an extra macro to ensure right expansion
4200 # order.
4201
4202
4203 if test x"$_ax_prog_cxx_mpi_mpi_wanted" = xno; then :
4204 _ax_prog_cxx_mpi_mpi_found=no
4205 else
4206
4207 ac_ext=cpp
4208 ac_cpp='$CXXCPP $CPPFLAGS'
4209 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4210 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4211 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
4212
4213
4214 # test whether MPI::Init is available
4215 # We do not use AC_SEARCH_LIBS here, as it caches its outcome and
4216 # thus disallows corresponding calls in the other AX_PROG_*_MPI
4217 # macros.
4218 for lib in NONE mpi mpich; do
4219 save_LIBS=$LIBS
4220 if test x"$lib" = xNONE; then
4221 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for function MPI::Init" >&5
4222 $as_echo_n "checking for function MPI::Init... " >&6; }
4223 else
4224 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for function MPI::Init in -l$lib" >&5
4225 $as_echo_n "checking for function MPI::Init in -l$lib... " >&6; }
4226 LIBS="-l$lib $LIBS"
4227 fi
4228 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
4229 /* end confdefs.h. */
4230
4231
4232 namespace MPI {
4233 char Init();
4234 };
4235 using MPI::Init;
4236 int
4237 main ()
4238 {
4239 MPI::Init;
4240 ;
4241 return 0;
4242 }
4243 _ACEOF
4244 if ac_fn_cxx_try_link "$LINENO"; then :
4245 _ax_prog_cxx_mpi_mpi_found=yes
4246 else
4247 _ax_prog_cxx_mpi_mpi_found=no
4248 fi
4249 rm -f core conftest.err conftest.$ac_objext \
4250 conftest$ac_exeext conftest.$ac_ext
4251 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_ax_prog_cxx_mpi_mpi_found" >&5
4252 $as_echo "$_ax_prog_cxx_mpi_mpi_found" >&6; }
4253 if test "x$_ax_prog_cxx_mpi_mpi_found" = "xyes"; then
4254 break;
4255 fi
4256 LIBS=$save_LIBS
4257 done
4258
4259 # Check for header
4260 if test x"$_ax_prog_cxx_mpi_mpi_found" = xyes; then :
4261
4262 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpi.h" >&5
4263 $as_echo_n "checking for mpi.h... " >&6; }
4264 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
4265 /* end confdefs.h. */
4266 #include <mpi.h>
4267 int
4268 main ()
4269 {
4270
4271 ;
4272 return 0;
4273 }
4274 _ACEOF
4275 if ac_fn_cxx_try_compile "$LINENO"; then :
4276 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
4277 $as_echo "yes" >&6; }
4278 else
4279 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4280 $as_echo "no" >&6; }
4281 _ax_prog_cxx_mpi_mpi_found=no
4282
4283 fi
4284 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4285
4286 fi
4287 ac_ext=c
4288 ac_cpp='$CPP $CPPFLAGS'
4289 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4290 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4291 ac_compiler_gnu=$ac_cv_c_compiler_gnu
4292
4293
4294 fi
4295
4296 # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
4297 if test x"$_ax_prog_cxx_mpi_mpi_found" = xyes; then :
4298
4299 usempi=yes
4300 :
4301
4302 else
4303
4304 usempi=no
4305 :
4306
4307 fi
4308
4309
4310
4311
4312
4313 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to compile using MPI" >&5
4314 $as_echo_n "checking whether to compile using MPI... " >&6; }
4315 if test "x$usempi" = "xyes"; then
4316 _ax_prog_cc_mpi_mpi_wanted=yes
4317 else
4318 _ax_prog_cc_mpi_mpi_wanted=no
4319 fi
4320 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_ax_prog_cc_mpi_mpi_wanted" >&5
4321 $as_echo "$_ax_prog_cc_mpi_mpi_wanted" >&6; }
4322
4323 if test x"$_ax_prog_cc_mpi_mpi_wanted" = xyes; then
4324 if test -z "$CC" && test -n "$MPICC"; then
4325 CC="$MPICC"
4326 else
4327 if test -n "$ac_tool_prefix"; then
4328 for ac_prog in mpicc mpixlc_r mpixlc hcc mpxlc_r mpxlc sxmpicc mpifcc mpgcc mpcc cmpicc cc gcc
4329 do
4330 # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
4331 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
4332 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
4333 $as_echo_n "checking for $ac_word... " >&6; }
4334 if ${ac_cv_prog_CC+:} false; then :
4335 $as_echo_n "(cached) " >&6
4336 else
4337 if test -n "$CC"; then
4338 ac_cv_prog_CC="$CC" # Let the user override the test.
4339 else
4340 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4341 for as_dir in $PATH
4342 do
4343 IFS=$as_save_IFS
4344 test -z "$as_dir" && as_dir=.
4345 for ac_exec_ext in '' $ac_executable_extensions; do
4346 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4347 ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
4348 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
4349 break 2
4350 fi
4351 done
4352 done
4353 IFS=$as_save_IFS
4354
4355 fi
4356 fi
4357 CC=$ac_cv_prog_CC
4358 if test -n "$CC"; then
4359 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
4360 $as_echo "$CC" >&6; }
4361 else
4362 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4363 $as_echo "no" >&6; }
4364 fi
4365
4366
4367 test -n "$CC" && break
4368 done
4369 fi
4370 if test -z "$CC"; then
4371 ac_ct_CC=$CC
4372 for ac_prog in mpicc mpixlc_r mpixlc hcc mpxlc_r mpxlc sxmpicc mpifcc mpgcc mpcc cmpicc cc gcc
4373 do
4374 # Extract the first word of "$ac_prog", so it can be a program name with args.
4375 set dummy $ac_prog; ac_word=$2
4376 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
4377 $as_echo_n "checking for $ac_word... " >&6; }
4378 if ${ac_cv_prog_ac_ct_CC+:} false; then :
4379 $as_echo_n "(cached) " >&6
4380 else
4381 if test -n "$ac_ct_CC"; then
4382 ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
4383 else
4384 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4385 for as_dir in $PATH
4386 do
4387 IFS=$as_save_IFS
4388 test -z "$as_dir" && as_dir=.
4389 for ac_exec_ext in '' $ac_executable_extensions; do
4390 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4391 ac_cv_prog_ac_ct_CC="$ac_prog"
4392 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
4393 break 2
4394 fi
4395 done
4396 done
4397 IFS=$as_save_IFS
4398
4399 fi
4400 fi
4401 ac_ct_CC=$ac_cv_prog_ac_ct_CC
4402 if test -n "$ac_ct_CC"; then
4403 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
4404 $as_echo "$ac_ct_CC" >&6; }
4405 else
4406 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4407 $as_echo "no" >&6; }
4408 fi
4409
4410
4411 test -n "$ac_ct_CC" && break
4412 done
4413
4414 if test "x$ac_ct_CC" = x; then
4415 CC=""
4416 else
4417 case $cross_compiling:$ac_tool_warned in
4418 yes:)
4419 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
4420 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
4421 ac_tool_warned=yes ;;
4422 esac
4423 CC=$ac_ct_CC
4424 fi
4425 fi
4426
4427 fi
4428 fi
4429 ac_ext=c
4430 ac_cpp='$CPP $CPPFLAGS'
4431 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4432 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4433 ac_compiler_gnu=$ac_cv_c_compiler_gnu
4434 if test -n "$ac_tool_prefix"; then
4435 for ac_prog in gcc icc cc
4436 do
4437 # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
4438 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
4439 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
4440 $as_echo_n "checking for $ac_word... " >&6; }
4441 if ${ac_cv_prog_CC+:} false; then :
4442 $as_echo_n "(cached) " >&6
4443 else
4444 if test -n "$CC"; then
4445 ac_cv_prog_CC="$CC" # Let the user override the test.
4446 else
4447 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4448 for as_dir in $PATH
4449 do
4450 IFS=$as_save_IFS
4451 test -z "$as_dir" && as_dir=.
4452 for ac_exec_ext in '' $ac_executable_extensions; do
4453 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4454 ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
4455 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
4456 break 2
4457 fi
4458 done
4459 done
4460 IFS=$as_save_IFS
4461
4462 fi
4463 fi
4464 CC=$ac_cv_prog_CC
4465 if test -n "$CC"; then
4466 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
4467 $as_echo "$CC" >&6; }
4468 else
4469 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4470 $as_echo "no" >&6; }
4471 fi
4472
4473
4474 test -n "$CC" && break
4475 done
4476 fi
4477 if test -z "$CC"; then
4478 ac_ct_CC=$CC
4479 for ac_prog in gcc icc cc
4480 do
4481 # Extract the first word of "$ac_prog", so it can be a program name with args.
4482 set dummy $ac_prog; ac_word=$2
4483 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
4484 $as_echo_n "checking for $ac_word... " >&6; }
4485 if ${ac_cv_prog_ac_ct_CC+:} false; then :
4486 $as_echo_n "(cached) " >&6
4487 else
4488 if test -n "$ac_ct_CC"; then
4489 ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
4490 else
4491 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4492 for as_dir in $PATH
4493 do
4494 IFS=$as_save_IFS
4495 test -z "$as_dir" && as_dir=.
4496 for ac_exec_ext in '' $ac_executable_extensions; do
4497 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4498 ac_cv_prog_ac_ct_CC="$ac_prog"
4499 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
4500 break 2
4501 fi
4502 done
4503 done
4504 IFS=$as_save_IFS
4505
4506 fi
4507 fi
4508 ac_ct_CC=$ac_cv_prog_ac_ct_CC
4509 if test -n "$ac_ct_CC"; then
4510 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
4511 $as_echo "$ac_ct_CC" >&6; }
4512 else
4513 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4514 $as_echo "no" >&6; }
4515 fi
4516
4517
4518 test -n "$ac_ct_CC" && break
4519 done
4520
4521 if test "x$ac_ct_CC" = x; then
4522 CC=""
4523 else
4524 case $cross_compiling:$ac_tool_warned in
4525 yes:)
4526 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
4527 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
4528 ac_tool_warned=yes ;;
4529 esac
4530 CC=$ac_ct_CC
4531 fi
4532 fi
4533
4534
4535 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
4536 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4537 as_fn_error $? "no acceptable C compiler found in \$PATH
4538 See \`config.log' for more details" "$LINENO" 5; }
4539
4540 # Provide some information about the compiler.
4541 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
4542 set X $ac_compile
4543 ac_compiler=$2
4544 for ac_option in --version -v -V -qversion; do
4545 { { ac_try="$ac_compiler $ac_option >&5"
4546 case "(($ac_try" in
4547 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
4548 *) ac_try_echo=$ac_try;;
4549 esac
4550 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
4551 $as_echo "$ac_try_echo"; } >&5
4552 (eval "$ac_compiler $ac_option >&5") 2>conftest.err
4553 ac_status=$?
4554 if test -s conftest.err; then
4555 sed '10a\
4556 ... rest of stderr output deleted ...
4557 10q' conftest.err >conftest.er1
4558 cat conftest.er1 >&5
4559 fi
4560 rm -f conftest.er1 conftest.err
4561 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
4562 test $ac_status = 0; }
4563 done
4564
4565 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
4566 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
4567 if ${ac_cv_c_compiler_gnu+:} false; then :
4568 $as_echo_n "(cached) " >&6
4569 else
4570 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
4571 /* end confdefs.h. */
4572
4573 int
4574 main ()
4575 {
4576 #ifndef __GNUC__
4577 choke me
4578 #endif
4579
4580 ;
4581 return 0;
4582 }
4583 _ACEOF
4584 if ac_fn_c_try_compile "$LINENO"; then :
4585 ac_compiler_gnu=yes
4586 else
4587 ac_compiler_gnu=no
4588 fi
4589 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4590 ac_cv_c_compiler_gnu=$ac_compiler_gnu
4591
4592 fi
4593 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
4594 $as_echo "$ac_cv_c_compiler_gnu" >&6; }
4595 if test $ac_compiler_gnu = yes; then
4596 GCC=yes
4597 else
4598 GCC=
4599 fi
4600 ac_test_CFLAGS=${CFLAGS+set}
4601 ac_save_CFLAGS=$CFLAGS
4602 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
4603 $as_echo_n "checking whether $CC accepts -g... " >&6; }
4604 if ${ac_cv_prog_cc_g+:} false; then :
4605 $as_echo_n "(cached) " >&6
4606 else
4607 ac_save_c_werror_flag=$ac_c_werror_flag
4608 ac_c_werror_flag=yes
4609 ac_cv_prog_cc_g=no
4610 CFLAGS="-g"
4611 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
4612 /* end confdefs.h. */
4613
4614 int
4615 main ()
4616 {
4617
4618 ;
4619 return 0;
4620 }
4621 _ACEOF
4622 if ac_fn_c_try_compile "$LINENO"; then :
4623 ac_cv_prog_cc_g=yes
4624 else
4625 CFLAGS=""
4626 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
4627 /* end confdefs.h. */
4628
4629 int
4630 main ()
4631 {
4632
4633 ;
4634 return 0;
4635 }
4636 _ACEOF
4637 if ac_fn_c_try_compile "$LINENO"; then :
4638
4639 else
4640 ac_c_werror_flag=$ac_save_c_werror_flag
4641 CFLAGS="-g"
4642 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
4643 /* end confdefs.h. */
4644
4645 int
4646 main ()
4647 {
4648
4649 ;
4650 return 0;
4651 }
4652 _ACEOF
4653 if ac_fn_c_try_compile "$LINENO"; then :
4654 ac_cv_prog_cc_g=yes
4655 fi
4656 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4657 fi
4658 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4659 fi
4660 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4661 ac_c_werror_flag=$ac_save_c_werror_flag
4662 fi
4663 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
4664 $as_echo "$ac_cv_prog_cc_g" >&6; }
4665 if test "$ac_test_CFLAGS" = set; then
4666 CFLAGS=$ac_save_CFLAGS
4667 elif test $ac_cv_prog_cc_g = yes; then
4668 if test "$GCC" = yes; then
4669 CFLAGS="-g -O2"
4670 else
4671 CFLAGS="-g"
4672 fi
4673 else
4674 if test "$GCC" = yes; then
4675 CFLAGS="-O2"
4676 else
4677 CFLAGS=
4678 fi
4679 fi
4680 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
4681 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
4682 if ${ac_cv_prog_cc_c89+:} false; then :
4683 $as_echo_n "(cached) " >&6
4684 else
4685 ac_cv_prog_cc_c89=no
4686 ac_save_CC=$CC
4687 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
4688 /* end confdefs.h. */
4689 #include <stdarg.h>
4690 #include <stdio.h>
4691 struct stat;
4692 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
4693 struct buf { int x; };
4694 FILE * (*rcsopen) (struct buf *, struct stat *, int);
4695 static char *e (p, i)
4696 char **p;
4697 int i;
4698 {
4699 return p[i];
4700 }
4701 static char *f (char * (*g) (char **, int), char **p, ...)
4702 {
4703 char *s;
4704 va_list v;
4705 va_start (v,p);
4706 s = g (p, va_arg (v,int));
4707 va_end (v);
4708 return s;
4709 }
4710
4711 /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
4712 function prototypes and stuff, but not '\xHH' hex character constants.
4713 These don't provoke an error unfortunately, instead are silently treated
4714 as 'x'. The following induces an error, until -std is added to get
4715 proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
4716 array size at least. It's necessary to write '\x00'==0 to get something
4717 that's true only with -std. */
4718 int osf4_cc_array ['\x00' == 0 ? 1 : -1];
4719
4720 /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
4721 inside strings and character constants. */
4722 #define FOO(x) 'x'
4723 int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
4724
4725 int test (int i, double x);
4726 struct s1 {int (*f) (int a);};
4727 struct s2 {int (*f) (double a);};
4728 int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
4729 int argc;
4730 char **argv;
4731 int
4732 main ()
4733 {
4734 return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
4735 ;
4736 return 0;
4737 }
4738 _ACEOF
4739 for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
4740 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
4741 do
4742 CC="$ac_save_CC $ac_arg"
4743 if ac_fn_c_try_compile "$LINENO"; then :
4744 ac_cv_prog_cc_c89=$ac_arg
4745 fi
4746 rm -f core conftest.err conftest.$ac_objext
4747 test "x$ac_cv_prog_cc_c89" != "xno" && break
4748 done
4749 rm -f conftest.$ac_ext
4750 CC=$ac_save_CC
4751
4752 fi
4753 # AC_CACHE_VAL
4754 case "x$ac_cv_prog_cc_c89" in
4755 x)
4756 { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
4757 $as_echo "none needed" >&6; } ;;
4758 xno)
4759 { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
4760 $as_echo "unsupported" >&6; } ;;
4761 *)
4762 CC="$CC $ac_cv_prog_cc_c89"
4763 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
4764 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
4765 esac
4766 if test "x$ac_cv_prog_cc_c89" != xno; then :
4767
4768 fi
4769
4770 ac_ext=c
4771 ac_cpp='$CPP $CPPFLAGS'
4772 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4773 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4774 ac_compiler_gnu=$ac_cv_c_compiler_gnu
4775
4776 ac_ext=c
4777 ac_cpp='$CPP $CPPFLAGS'
4778 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4779 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4780 ac_compiler_gnu=$ac_cv_c_compiler_gnu
4781 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
4782 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
4783 if ${am_cv_prog_cc_c_o+:} false; then :
4784 $as_echo_n "(cached) " >&6
4785 else
4786 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
4787 /* end confdefs.h. */
4788
4789 int
4790 main ()
4791 {
4792
4793 ;
4794 return 0;
4795 }
4796 _ACEOF
4797 # Make sure it works both with $CC and with simple cc.
4798 # Following AC_PROG_CC_C_O, we do the test twice because some
4799 # compilers refuse to overwrite an existing .o file with -o,
4800 # though they will create one.
4801 am_cv_prog_cc_c_o=yes
4802 for am_i in 1 2; do
4803 if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
4804 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
4805 ac_status=$?
4806 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4807 (exit $ac_status); } \
4808 && test -f conftest2.$ac_objext; then
4809 : OK
4810 else
4811 am_cv_prog_cc_c_o=no
4812 break
4813 fi
4814 done
4815 rm -f core conftest*
4816 unset am_i
4817 fi
4818 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
4819 $as_echo "$am_cv_prog_cc_c_o" >&6; }
4820 if test "$am_cv_prog_cc_c_o" != yes; then
4821 # Losing compiler, so override with the script.
4822 # FIXME: It is wrong to rewrite CC.
4823 # But if we don't then we get into trouble of one sort or another.
4824 # A longer-term fix would be to have automake use am__CC in this case,
4825 # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
4826 CC="$am_aux_dir/compile $CC"
4827 fi
4828 ac_ext=c
4829 ac_cpp='$CPP $CPPFLAGS'
4830 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4831 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4832 ac_compiler_gnu=$ac_cv_c_compiler_gnu
4833
4834
4835 depcc="$CC" am_compiler_list=
4836
4837 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
4838 $as_echo_n "checking dependency style of $depcc... " >&6; }
4839 if ${am_cv_CC_dependencies_compiler_type+:} false; then :
4840 $as_echo_n "(cached) " >&6
4841 else
4842 if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
4843 # We make a subdir and do the tests there. Otherwise we can end up
4844 # making bogus files that we don't know about and never remove. For
4845 # instance it was reported that on HP-UX the gcc test will end up
4846 # making a dummy file named 'D' -- because '-MD' means "put the output
4847 # in D".
4848 rm -rf conftest.dir
4849 mkdir conftest.dir
4850 # Copy depcomp to subdir because otherwise we won't find it if we're
4851 # using a relative directory.
4852 cp "$am_depcomp" conftest.dir
4853 cd conftest.dir
4854 # We will build objects and dependencies in a subdirectory because
4855 # it helps to detect inapplicable dependency modes. For instance
4856 # both Tru64's cc and ICC support -MD to output dependencies as a
4857 # side effect of compilation, but ICC will put the dependencies in
4858 # the current directory while Tru64 will put them in the object
4859 # directory.
4860 mkdir sub
4861
4862 am_cv_CC_dependencies_compiler_type=none
4863 if test "$am_compiler_list" = ""; then
4864 am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
4865 fi
4866 am__universal=false
4867 case " $depcc " in #(
4868 *\ -arch\ *\ -arch\ *) am__universal=true ;;
4869 esac
4870
4871 for depmode in $am_compiler_list; do
4872 # Setup a source with many dependencies, because some compilers
4873 # like to wrap large dependency lists on column 80 (with \), and
4874 # we should not choose a depcomp mode which is confused by this.
4875 #
4876 # We need to recreate these files for each test, as the compiler may
4877 # overwrite some of them when testing with obscure command lines.
4878 # This happens at least with the AIX C compiler.
4879 : > sub/conftest.c
4880 for i in 1 2 3 4 5 6; do
4881 echo '#include "conftst'$i'.h"' >> sub/conftest.c
4882 # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
4883 # Solaris 10 /bin/sh.
4884 echo '/* dummy */' > sub/conftst$i.h
4885 done
4886 echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
4887
4888 # We check with '-c' and '-o' for the sake of the "dashmstdout"
4889 # mode. It turns out that the SunPro C++ compiler does not properly
4890 # handle '-M -o', and we need to detect this. Also, some Intel
4891 # versions had trouble with output in subdirs.
4892 am__obj=sub/conftest.${OBJEXT-o}
4893 am__minus_obj="-o $am__obj"
4894 case $depmode in
4895 gcc)
4896 # This depmode causes a compiler race in universal mode.
4897 test "$am__universal" = false || continue
4898 ;;
4899 nosideeffect)
4900 # After this tag, mechanisms are not by side-effect, so they'll
4901 # only be used when explicitly requested.
4902 if test "x$enable_dependency_tracking" = xyes; then
4903 continue
4904 else
4905 break
4906 fi
4907 ;;
4908 msvc7 | msvc7msys | msvisualcpp | msvcmsys)
4909 # This compiler won't grok '-c -o', but also, the minuso test has
4910 # not run yet. These depmodes are late enough in the game, and
4911 # so weak that their functioning should not be impacted.
4912 am__obj=conftest.${OBJEXT-o}
4913 am__minus_obj=
4914 ;;
4915 none) break ;;
4916 esac
4917 if depmode=$depmode \
4918 source=sub/conftest.c object=$am__obj \
4919 depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
4920 $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
4921 >/dev/null 2>conftest.err &&
4922 grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
4923 grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
4924 grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
4925 ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
4926 # icc doesn't choke on unknown options, it will just issue warnings
4927 # or remarks (even with -Werror). So we grep stderr for any message
4928 # that says an option was ignored or not supported.
4929 # When given -MP, icc 7.0 and 7.1 complain thusly:
4930 # icc: Command line warning: ignoring option '-M'; no argument required
4931 # The diagnosis changed in icc 8.0:
4932 # icc: Command line remark: option '-MP' not supported
4933 if (grep 'ignoring option' conftest.err ||
4934 grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
4935 am_cv_CC_dependencies_compiler_type=$depmode
4936 break
4937 fi
4938 fi
4939 done
4940
4941 cd ..
4942 rm -rf conftest.dir
4943 else
4944 am_cv_CC_dependencies_compiler_type=none
4945 fi
4946
4947 fi
4948 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
4949 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
4950 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
4951
4952 if
4953 test "x$enable_dependency_tracking" != xno \
4954 && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
4955 am__fastdepCC_TRUE=
4956 am__fastdepCC_FALSE='#'
4957 else
4958 am__fastdepCC_TRUE='#'
4959 am__fastdepCC_FALSE=
4960 fi
4961
4962
4963
4964
4965
4966
4967
4968 # Check for compiler
4969 # Needs to be split off into an extra macro to ensure right expansion
4970 # order.
4971
4972
4973 if test x"$_ax_prog_cc_mpi_mpi_wanted" = xno; then :
4974 _ax_prog_cc_mpi_mpi_found=no
4975 else
4976
4977 ac_ext=c
4978 ac_cpp='$CPP $CPPFLAGS'
4979 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4980 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4981 ac_compiler_gnu=$ac_cv_c_compiler_gnu
4982
4983 # test whether MPI_Init is available
4984 # We do not use AC_SEARCH_LIBS here, as it caches its outcome and
4985 # thus disallows corresponding calls in the other AX_PROG_*_MPI
4986 # macros.
4987 for lib in NONE mpi mpich; do
4988 save_LIBS=$LIBS
4989 if test x"$lib" = xNONE; then
4990 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for function MPI_Init" >&5
4991 $as_echo_n "checking for function MPI_Init... " >&6; }
4992 else
4993 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for function MPI_Init in -l$lib" >&5
4994 $as_echo_n "checking for function MPI_Init in -l$lib... " >&6; }
4995 LIBS="-l$lib $LIBS"
4996 fi
4997 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
4998 /* end confdefs.h. */
4999
5000 /* Override any GCC internal prototype to avoid an error.
5001 Use char because int might match the return type of a GCC
5002 builtin and then its argument prototype would still apply. */
5003 #ifdef __cplusplus
5004 extern "C"
5005 #endif
5006 char MPI_Init ();
5007 int
5008 main ()
5009 {
5010 return MPI_Init ();
5011 ;
5012 return 0;
5013 }
5014 _ACEOF
5015 if ac_fn_c_try_link "$LINENO"; then :
5016 _ax_prog_cc_mpi_mpi_found=yes
5017 else
5018 _ax_prog_cc_mpi_mpi_found=no
5019 fi
5020 rm -f core conftest.err conftest.$ac_objext \
5021 conftest$ac_exeext conftest.$ac_ext
5022 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_ax_prog_cc_mpi_mpi_found" >&5
5023 $as_echo "$_ax_prog_cc_mpi_mpi_found" >&6; }
5024 if test "x$_ax_prog_cc_mpi_mpi_found" = "xyes"; then
5025 break;
5026 fi
5027 LIBS=$save_LIBS
5028 done
5029
5030 # Check for header
5031 if test x"$_ax_prog_cc_mpi_mpi_found" = xyes; then :
5032
5033 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpi.h" >&5
5034 $as_echo_n "checking for mpi.h... " >&6; }
5035 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
5036 /* end confdefs.h. */
5037 #include <mpi.h>
5038 int
5039 main ()
5040 {
5041
5042 ;
5043 return 0;
5044 }
5045 _ACEOF
5046 if ac_fn_c_try_compile "$LINENO"; then :
5047 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
5048 $as_echo "yes" >&6; }
5049 else
5050 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5051 $as_echo "no" >&6; }
5052 _ax_prog_cc_mpi_mpi_found=no
5053
5054 fi
5055 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
5056
5057 fi
5058 ac_ext=c
5059 ac_cpp='$CPP $CPPFLAGS'
5060 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
5061 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
5062 ac_compiler_gnu=$ac_cv_c_compiler_gnu
5063
5064
5065 fi
5066
5067 # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
5068 if test x"$_ax_prog_cc_mpi_mpi_found" = xyes; then :
5069
5070
5071 $as_echo "#define HAVE_MPI 1" >>confdefs.h
5072
5073 :
5074
5075 else
5076
5077 usempi=no
5078 :
5079
5080 fi
5081
5082
5083
5084
5085
5086 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to compile using MPI" >&5
5087 $as_echo_n "checking whether to compile using MPI... " >&6; }
5088 if test "x$usempi" = "xyes"; then
5089 _ax_prog_fc_mpi_mpi_wanted=yes
5090 else
5091 _ax_prog_fc_mpi_mpi_wanted=no
5092 fi
5093 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_ax_prog_fc_mpi_mpi_wanted" >&5
5094 $as_echo "$_ax_prog_fc_mpi_mpi_wanted" >&6; }
5095
5096 if test x"$_ax_prog_fc_mpi_mpi_wanted" = xyes; then
5097 if test -z "$FC" && test -n "$MPIFC"; then
5098 FC="$MPIFC"
5099 else
5100 if test -n "$ac_tool_prefix"; then
5101 for ac_prog in mpif95 mpxlf95_r mpxlf95 ftn mpif90 mpxlf90_r mpxlf90 mpf90 cmpif90c sxmpif90 mpif77 hf77 mpxlf_r mpxlf mpifrt mpf77 cmpifc xlf95 pgf95 pathf95 ifort g95 f95 fort ifc efc openf95 sunf95 crayftn gfortran lf95 ftn xlf90 f90 pgf90 pghpf pathf90 epcf90 sxf90 openf90 sunf90 xlf f77 frt pgf77 pathf77 g77 cf77 fort77 fl32 af77
5102 do
5103 # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
5104 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
5105 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5106 $as_echo_n "checking for $ac_word... " >&6; }
5107 if ${ac_cv_prog_FC+:} false; then :
5108 $as_echo_n "(cached) " >&6
5109 else
5110 if test -n "$FC"; then
5111 ac_cv_prog_FC="$FC" # Let the user override the test.
5112 else
5113 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5114 for as_dir in $PATH
5115 do
5116 IFS=$as_save_IFS
5117 test -z "$as_dir" && as_dir=.
5118 for ac_exec_ext in '' $ac_executable_extensions; do
5119 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5120 ac_cv_prog_FC="$ac_tool_prefix$ac_prog"
5121 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5122 break 2
5123 fi
5124 done
5125 done
5126 IFS=$as_save_IFS
5127
5128 fi
5129 fi
5130 FC=$ac_cv_prog_FC
5131 if test -n "$FC"; then
5132 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FC" >&5
5133 $as_echo "$FC" >&6; }
5134 else
5135 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5136 $as_echo "no" >&6; }
5137 fi
5138
5139
5140 test -n "$FC" && break
5141 done
5142 fi
5143 if test -z "$FC"; then
5144 ac_ct_FC=$FC
5145 for ac_prog in mpif95 mpxlf95_r mpxlf95 ftn mpif90 mpxlf90_r mpxlf90 mpf90 cmpif90c sxmpif90 mpif77 hf77 mpxlf_r mpxlf mpifrt mpf77 cmpifc xlf95 pgf95 pathf95 ifort g95 f95 fort ifc efc openf95 sunf95 crayftn gfortran lf95 ftn xlf90 f90 pgf90 pghpf pathf90 epcf90 sxf90 openf90 sunf90 xlf f77 frt pgf77 pathf77 g77 cf77 fort77 fl32 af77
5146 do
5147 # Extract the first word of "$ac_prog", so it can be a program name with args.
5148 set dummy $ac_prog; ac_word=$2
5149 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5150 $as_echo_n "checking for $ac_word... " >&6; }
5151 if ${ac_cv_prog_ac_ct_FC+:} false; then :
5152 $as_echo_n "(cached) " >&6
5153 else
5154 if test -n "$ac_ct_FC"; then
5155 ac_cv_prog_ac_ct_FC="$ac_ct_FC" # Let the user override the test.
5156 else
5157 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5158 for as_dir in $PATH
5159 do
5160 IFS=$as_save_IFS
5161 test -z "$as_dir" && as_dir=.
5162 for ac_exec_ext in '' $ac_executable_extensions; do
5163 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5164 ac_cv_prog_ac_ct_FC="$ac_prog"
5165 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5166 break 2
5167 fi
5168 done
5169 done
5170 IFS=$as_save_IFS
5171
5172 fi
5173 fi
5174 ac_ct_FC=$ac_cv_prog_ac_ct_FC
5175 if test -n "$ac_ct_FC"; then
5176 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FC" >&5
5177 $as_echo "$ac_ct_FC" >&6; }
5178 else
5179 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5180 $as_echo "no" >&6; }
5181 fi
5182
5183
5184 test -n "$ac_ct_FC" && break
5185 done
5186
5187 if test "x$ac_ct_FC" = x; then
5188 FC=""
5189 else
5190 case $cross_compiling:$ac_tool_warned in
5191 yes:)
5192 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
5193 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
5194 ac_tool_warned=yes ;;
5195 esac
5196 FC=$ac_ct_FC
5197 fi
5198 fi
5199
5200 fi
5201 fi
5202 ac_ext=${ac_fc_srcext-f}
5203 ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
5204 ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
5205 ac_compiler_gnu=$ac_cv_fc_compiler_gnu
5206 if test -n "$ac_tool_prefix"; then
5207 for ac_prog in gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn nagfor xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77
5208 do
5209 # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
5210 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
5211 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5212 $as_echo_n "checking for $ac_word... " >&6; }
5213 if ${ac_cv_prog_FC+:} false; then :
5214 $as_echo_n "(cached) " >&6
5215 else
5216 if test -n "$FC"; then
5217 ac_cv_prog_FC="$FC" # Let the user override the test.
5218 else
5219 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5220 for as_dir in $PATH
5221 do
5222 IFS=$as_save_IFS
5223 test -z "$as_dir" && as_dir=.
5224 for ac_exec_ext in '' $ac_executable_extensions; do
5225 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5226 ac_cv_prog_FC="$ac_tool_prefix$ac_prog"
5227 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5228 break 2
5229 fi
5230 done
5231 done
5232 IFS=$as_save_IFS
5233
5234 fi
5235 fi
5236 FC=$ac_cv_prog_FC
5237 if test -n "$FC"; then
5238 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FC" >&5
5239 $as_echo "$FC" >&6; }
5240 else
5241 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5242 $as_echo "no" >&6; }
5243 fi
5244
5245
5246 test -n "$FC" && break
5247 done
5248 fi
5249 if test -z "$FC"; then
5250 ac_ct_FC=$FC
5251 for ac_prog in gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn nagfor xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77
5252 do
5253 # Extract the first word of "$ac_prog", so it can be a program name with args.
5254 set dummy $ac_prog; ac_word=$2
5255 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5256 $as_echo_n "checking for $ac_word... " >&6; }
5257 if ${ac_cv_prog_ac_ct_FC+:} false; then :
5258 $as_echo_n "(cached) " >&6
5259 else
5260 if test -n "$ac_ct_FC"; then
5261 ac_cv_prog_ac_ct_FC="$ac_ct_FC" # Let the user override the test.
5262 else
5263 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5264 for as_dir in $PATH
5265 do
5266 IFS=$as_save_IFS
5267 test -z "$as_dir" && as_dir=.
5268 for ac_exec_ext in '' $ac_executable_extensions; do
5269 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5270 ac_cv_prog_ac_ct_FC="$ac_prog"
5271 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5272 break 2
5273 fi
5274 done
5275 done
5276 IFS=$as_save_IFS
5277
5278 fi
5279 fi
5280 ac_ct_FC=$ac_cv_prog_ac_ct_FC
5281 if test -n "$ac_ct_FC"; then
5282 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FC" >&5
5283 $as_echo "$ac_ct_FC" >&6; }
5284 else
5285 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5286 $as_echo "no" >&6; }
5287 fi
5288
5289
5290 test -n "$ac_ct_FC" && break
5291 done
5292
5293 if test "x$ac_ct_FC" = x; then
5294 FC=""
5295 else
5296 case $cross_compiling:$ac_tool_warned in
5297 yes:)
5298 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
5299 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
5300 ac_tool_warned=yes ;;
5301 esac
5302 FC=$ac_ct_FC
5303 fi
5304 fi
5305
5306
5307 # Provide some information about the compiler.
5308 $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran compiler version" >&5
5309 set X $ac_compile
5310 ac_compiler=$2
5311 for ac_option in --version -v -V -qversion; do
5312 { { ac_try="$ac_compiler $ac_option >&5"
5313 case "(($ac_try" in
5314 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
5315 *) ac_try_echo=$ac_try;;
5316 esac
5317 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
5318 $as_echo "$ac_try_echo"; } >&5
5319 (eval "$ac_compiler $ac_option >&5") 2>conftest.err
5320 ac_status=$?
5321 if test -s conftest.err; then
5322 sed '10a\
5323 ... rest of stderr output deleted ...
5324 10q' conftest.err >conftest.er1
5325 cat conftest.er1 >&5
5326 fi
5327 rm -f conftest.er1 conftest.err
5328 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
5329 test $ac_status = 0; }
5330 done
5331 rm -f a.out
5332
5333 # If we don't use `.F' as extension, the preprocessor is not run on the
5334 # input file. (Note that this only needs to work for GNU compilers.)
5335 ac_save_ext=$ac_ext
5336 ac_ext=F
5337 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Fortran compiler" >&5
5338 $as_echo_n "checking whether we are using the GNU Fortran compiler... " >&6; }
5339 if ${ac_cv_fc_compiler_gnu+:} false; then :
5340 $as_echo_n "(cached) " >&6
5341 else
5342 cat > conftest.$ac_ext <<_ACEOF
5343 program main
5344 #ifndef __GNUC__
5345 choke me
5346 #endif
5347
5348 end
5349 _ACEOF
5350 if ac_fn_fc_try_compile "$LINENO"; then :
5351 ac_compiler_gnu=yes
5352 else
5353 ac_compiler_gnu=no
5354 fi
5355 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
5356 ac_cv_fc_compiler_gnu=$ac_compiler_gnu
5357
5358 fi
5359 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_compiler_gnu" >&5
5360 $as_echo "$ac_cv_fc_compiler_gnu" >&6; }
5361 ac_ext=$ac_save_ext
5362 ac_test_FCFLAGS=${FCFLAGS+set}
5363 ac_save_FCFLAGS=$FCFLAGS
5364 FCFLAGS=
5365 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $FC accepts -g" >&5
5366 $as_echo_n "checking whether $FC accepts -g... " >&6; }
5367 if ${ac_cv_prog_fc_g+:} false; then :
5368 $as_echo_n "(cached) " >&6
5369 else
5370 FCFLAGS=-g
5371 cat > conftest.$ac_ext <<_ACEOF
5372 program main
5373
5374 end
5375 _ACEOF
5376 if ac_fn_fc_try_compile "$LINENO"; then :
5377 ac_cv_prog_fc_g=yes
5378 else
5379 ac_cv_prog_fc_g=no
5380 fi
5381 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
5382
5383 fi
5384 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_fc_g" >&5
5385 $as_echo "$ac_cv_prog_fc_g" >&6; }
5386 if test "$ac_test_FCFLAGS" = set; then
5387 FCFLAGS=$ac_save_FCFLAGS
5388 elif test $ac_cv_prog_fc_g = yes; then
5389 if test "x$ac_cv_fc_compiler_gnu" = xyes; then
5390 FCFLAGS="-g -O2"
5391 else
5392 FCFLAGS="-g"
5393 fi
5394 else
5395 if test "x$ac_cv_fc_compiler_gnu" = xyes; then
5396 FCFLAGS="-O2"
5397 else
5398 FCFLAGS=
5399 fi
5400 fi
5401
5402 if test $ac_compiler_gnu = yes; then
5403 GFC=yes
5404 else
5405 GFC=
5406 fi
5407 ac_ext=c
5408 ac_cpp='$CPP $CPPFLAGS'
5409 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
5410 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
5411 ac_compiler_gnu=$ac_cv_c_compiler_gnu
5412
5413
5414
5415
5416
5417
5418 # Check for compiler
5419 # Needs to be split off into an extra macro to ensure right expansion
5420 # order.
5421
5422
5423 if test x"$_ax_prog_fc_mpi_mpi_wanted" = xno; then :
5424 _ax_prog_fc_mpi_mpi_found=no
5425 else
5426
5427 ac_ext=${ac_fc_srcext-f}
5428 ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
5429 ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
5430 ac_compiler_gnu=$ac_cv_fc_compiler_gnu
5431
5432
5433 # test whether MPI_INIT is available
5434 # We do not use AC_SEARCH_LIBS here, as it caches its outcome and
5435 # thus disallows corresponding calls in the other AX_PROG_*_MPI
5436 # macros.
5437 for lib in NONE mpichf90 fmpi fmpich; do
5438 save_LIBS=$LIBS
5439 if test x"$lib" = xNONE; then
5440 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for function MPI_INIT" >&5
5441 $as_echo_n "checking for function MPI_INIT... " >&6; }
5442 else
5443 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for function MPI_INIT in -l$lib" >&5
5444 $as_echo_n "checking for function MPI_INIT in -l$lib... " >&6; }
5445 LIBS="-l$lib $LIBS"
5446 fi
5447 cat > conftest.$ac_ext <<_ACEOF
5448 program main
5449 call MPI_INIT
5450 end
5451 _ACEOF
5452 if ac_fn_fc_try_link "$LINENO"; then :
5453 _ax_prog_fc_mpi_mpi_found=yes
5454 else
5455 _ax_prog_fc_mpi_mpi_found=no
5456 fi
5457 rm -f core conftest.err conftest.$ac_objext \
5458 conftest$ac_exeext conftest.$ac_ext
5459 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_ax_prog_fc_mpi_mpi_found" >&5
5460 $as_echo "$_ax_prog_fc_mpi_mpi_found" >&6; }
5461 if test "x$_ax_prog_fc_mpi_mpi_found" = "xyes"; then
5462 break;
5463 fi
5464 LIBS=$save_LIBS
5465 done
5466
5467 # Check for header
5468 if test x"$_ax_prog_fc_mpi_mpi_found" = xyes; then :
5469
5470 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpif.h" >&5
5471 $as_echo_n "checking for mpif.h... " >&6; }
5472 cat > conftest.$ac_ext <<_ACEOF
5473 program main
5474
5475 include 'mpif.h'
5476
5477 end
5478 _ACEOF
5479 if ac_fn_fc_try_compile "$LINENO"; then :
5480 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
5481 $as_echo "yes" >&6; }
5482 else
5483 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5484 $as_echo "no" >&6; }
5485 _ax_prog_fc_mpi_mpi_found=no
5486
5487 fi
5488 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
5489
5490 fi
5491 ac_ext=c
5492 ac_cpp='$CPP $CPPFLAGS'
5493 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
5494 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
5495 ac_compiler_gnu=$ac_cv_c_compiler_gnu
5496
5497
5498 fi
5499
5500 # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
5501 if test x"$_ax_prog_fc_mpi_mpi_found" = xyes; then :
5502
5503 CPPFLAGS="$CPPFLAGS -DGMM_USES_MPI"
5504 :
5505
5506 else
5507
5508 usempi=no
5509 :
5510
5511 fi
5512
5513
5514
5515 if test "x$usempi" = "xyes"; then
5516 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _init in -lmpi_cxx" >&5
5517 $as_echo_n "checking for _init in -lmpi_cxx... " >&6; }
5518 if ${ac_cv_lib_mpi_cxx__init+:} false; then :
5519 $as_echo_n "(cached) " >&6
5520 else
5521 ac_check_lib_save_LIBS=$LIBS
5522 LIBS="-lmpi_cxx $LIBS"
5523 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
5524 /* end confdefs.h. */
5525
5526 /* Override any GCC internal prototype to avoid an error.
5527 Use char because int might match the return type of a GCC
5528 builtin and then its argument prototype would still apply. */
5529 #ifdef __cplusplus
5530 extern "C"
5531 #endif
5532 char _init ();
5533 int
5534 main ()
5535 {
5536 return _init ();
5537 ;
5538 return 0;
5539 }
5540 _ACEOF
5541 if ac_fn_c_try_link "$LINENO"; then :
5542 ac_cv_lib_mpi_cxx__init=yes
5543 else
5544 ac_cv_lib_mpi_cxx__init=no
5545 fi
5546 rm -f core conftest.err conftest.$ac_objext \
5547 conftest$ac_exeext conftest.$ac_ext
5548 LIBS=$ac_check_lib_save_LIBS
5549 fi
5550 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpi_cxx__init" >&5
5551 $as_echo "$ac_cv_lib_mpi_cxx__init" >&6; }
5552 if test "x$ac_cv_lib_mpi_cxx__init" = xyes; then :
5553 cat >>confdefs.h <<_ACEOF
5554 #define HAVE_LIBMPI_CXX 1
5555 _ACEOF
5556
5557 LIBS="-lmpi_cxx $LIBS"
5558
5559 fi
5560
5561 fi
5562
5563 ac_ext=cpp
5564 ac_cpp='$CXXCPP $CPPFLAGS'
5565 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
5566 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
5567 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
5568 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
5569 $as_echo_n "checking how to run the C++ preprocessor... " >&6; }
5570 if test -z "$CXXCPP"; then
5571 if ${ac_cv_prog_CXXCPP+:} false; then :
5572 $as_echo_n "(cached) " >&6
5573 else
5574 # Double quotes because CXXCPP needs to be expanded
5575 for CXXCPP in "$CXX -E" "/lib/cpp"
5576 do
5577 ac_preproc_ok=false
5578 for ac_cxx_preproc_warn_flag in '' yes
5579 do
5580 # Use a header file that comes with gcc, so configuring glibc
5581 # with a fresh cross-compiler works.
5582 # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
5583 # <limits.h> exists even on freestanding compilers.
5584 # On the NeXT, cc -E runs the code through the compiler's parser,
5585 # not just through cpp. "Syntax error" is here to catch this case.
5586 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
5587 /* end confdefs.h. */
5588 #ifdef __STDC__
5589 # include <limits.h>
5590 #else
5591 # include <assert.h>
5592 #endif
5593 Syntax error
5594 _ACEOF
5595 if ac_fn_cxx_try_cpp "$LINENO"; then :
5596
5597 else
5598 # Broken: fails on valid input.
5599 continue
5600 fi
5601 rm -f conftest.err conftest.i conftest.$ac_ext
5602
5603 # OK, works on sane cases. Now check whether nonexistent headers
5604 # can be detected and how.
5605 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
5606 /* end confdefs.h. */
5607 #include <ac_nonexistent.h>
5608 _ACEOF
5609 if ac_fn_cxx_try_cpp "$LINENO"; then :
5610 # Broken: success on invalid input.
5611 continue
5612 else
5613 # Passes both tests.
5614 ac_preproc_ok=:
5615 break
5616 fi
5617 rm -f conftest.err conftest.i conftest.$ac_ext
5618
5619 done
5620 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
5621 rm -f conftest.i conftest.err conftest.$ac_ext
5622 if $ac_preproc_ok; then :
5623 break
5624 fi
5625
5626 done
5627 ac_cv_prog_CXXCPP=$CXXCPP
5628
5629 fi
5630 CXXCPP=$ac_cv_prog_CXXCPP
5631 else
5632 ac_cv_prog_CXXCPP=$CXXCPP
5633 fi
5634 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
5635 $as_echo "$CXXCPP" >&6; }
5636 ac_preproc_ok=false
5637 for ac_cxx_preproc_warn_flag in '' yes
5638 do
5639 # Use a header file that comes with gcc, so configuring glibc
5640 # with a fresh cross-compiler works.
5641 # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
5642 # <limits.h> exists even on freestanding compilers.
5643 # On the NeXT, cc -E runs the code through the compiler's parser,
5644 # not just through cpp. "Syntax error" is here to catch this case.
5645 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
5646 /* end confdefs.h. */
5647 #ifdef __STDC__
5648 # include <limits.h>
5649 #else
5650 # include <assert.h>
5651 #endif
5652 Syntax error
5653 _ACEOF
5654 if ac_fn_cxx_try_cpp "$LINENO"; then :
5655
5656 else
5657 # Broken: fails on valid input.
5658 continue
5659 fi
5660 rm -f conftest.err conftest.i conftest.$ac_ext
5661
5662 # OK, works on sane cases. Now check whether nonexistent headers
5663 # can be detected and how.
5664 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
5665 /* end confdefs.h. */
5666 #include <ac_nonexistent.h>
5667 _ACEOF
5668 if ac_fn_cxx_try_cpp "$LINENO"; then :
5669 # Broken: success on invalid input.
5670 continue
5671 else
5672 # Passes both tests.
5673 ac_preproc_ok=:
5674 break
5675 fi
5676 rm -f conftest.err conftest.i conftest.$ac_ext
5677
5678 done
5679 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
5680 rm -f conftest.i conftest.err conftest.$ac_ext
5681 if $ac_preproc_ok; then :
5682
5683 else
5684 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
5685 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
5686 as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
5687 See \`config.log' for more details" "$LINENO" 5; }
5688 fi
5689
5690 ac_ext=c
5691 ac_cpp='$CPP $CPPFLAGS'
5692 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
5693 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
5694 ac_compiler_gnu=$ac_cv_c_compiler_gnu
5695
5696 CXXFLAGS="${USER_CXXFLAGS}"
5697 CFLAGS="${USER_CFLAGS}"
5698 SUPLDFLAGS=""
5699 # Make sure we can run config.sub.
5700 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
5701 as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
5702
5703 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
5704 $as_echo_n "checking build system type... " >&6; }
5705 if ${ac_cv_build+:} false; then :
5706 $as_echo_n "(cached) " >&6
5707 else
5708 ac_build_alias=$build_alias
5709 test "x$ac_build_alias" = x &&
5710 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
5711 test "x$ac_build_alias" = x &&
5712 as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
5713 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
5714 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
5715
5716 fi
5717 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
5718 $as_echo "$ac_cv_build" >&6; }
5719 case $ac_cv_build in
5720 *-*-*) ;;
5721 *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
5722 esac
5723 build=$ac_cv_build
5724 ac_save_IFS=$IFS; IFS='-'
5725 set x $ac_cv_build
5726 shift
5727 build_cpu=$1
5728 build_vendor=$2
5729 shift; shift
5730 # Remember, the first character of IFS is used to create $*,
5731 # except with old shells:
5732 build_os=$*
5733 IFS=$ac_save_IFS
5734 case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
5735
5736
5737 { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
5738 $as_echo_n "checking host system type... " >&6; }
5739 if ${ac_cv_host+:} false; then :
5740 $as_echo_n "(cached) " >&6
5741 else
5742 if test "x$host_alias" = x; then
5743 ac_cv_host=$ac_cv_build
5744 else
5745 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
5746 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
5747 fi
5748
5749 fi
5750 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
5751 $as_echo "$ac_cv_host" >&6; }
5752 case $ac_cv_host in
5753 *-*-*) ;;
5754 *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
5755 esac
5756 host=$ac_cv_host
5757 ac_save_IFS=$IFS; IFS='-'
5758 set x $ac_cv_host
5759 shift
5760 host_cpu=$1
5761 host_vendor=$2
5762 shift; shift
5763 # Remember, the first character of IFS is used to create $*,
5764 # except with old shells:
5765 host_os=$*
5766 IFS=$ac_save_IFS
5767 case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
5768
5769
5770 ac_ext=${ac_fc_srcext-f}
5771 ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
5772 ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
5773 ac_compiler_gnu=$ac_cv_fc_compiler_gnu
5774 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get verbose linking output from $FC" >&5
5775 $as_echo_n "checking how to get verbose linking output from $FC... " >&6; }
5776 if ${ac_cv_prog_fc_v+:} false; then :
5777 $as_echo_n "(cached) " >&6
5778 else
5779 cat > conftest.$ac_ext <<_ACEOF
5780 program main
5781
5782 end
5783 _ACEOF
5784 if ac_fn_fc_try_compile "$LINENO"; then :
5785 ac_cv_prog_fc_v=
5786 # Try some options frequently used verbose output
5787 for ac_verb in -v -verbose --verbose -V -\#\#\#; do
5788 cat > conftest.$ac_ext <<_ACEOF
5789 program main
5790
5791 end
5792 _ACEOF
5793
5794 # Compile and link our simple test program by passing a flag (argument
5795 # 1 to this macro) to the Fortran compiler in order to get
5796 # "verbose" output that we can then parse for the Fortran linker
5797 # flags.
5798 ac_save_FCFLAGS=$FCFLAGS
5799 FCFLAGS="$FCFLAGS $ac_verb"
5800 eval "set x $ac_link"
5801 shift
5802 $as_echo "$as_me:${as_lineno-$LINENO}: $*" >&5
5803 # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH,
5804 # LIBRARY_PATH; skip all such settings.
5805 ac_fc_v_output=`eval $ac_link 5>&1 2>&1 |
5806 sed '/^Driving:/d; /^Configured with:/d;
5807 '"/^[_$as_cr_Letters][_$as_cr_alnum]*=/d"`
5808 $as_echo "$ac_fc_v_output" >&5
5809 FCFLAGS=$ac_save_FCFLAGS
5810
5811 rm -rf conftest*
5812
5813 # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where
5814 # /foo, /bar, and /baz are search directories for the Fortran linker.
5815 # Here, we change these into -L/foo -L/bar -L/baz (and put it first):
5816 ac_fc_v_output="`echo $ac_fc_v_output |
5817 grep 'LPATH is:' |
5818 sed 's|.*LPATH is\(: *[^ ]*\).*|\1|;s|: */| -L/|g'` $ac_fc_v_output"
5819
5820 # FIXME: we keep getting bitten by quoted arguments; a more general fix
5821 # that detects unbalanced quotes in FLIBS should be implemented
5822 # and (ugh) tested at some point.
5823 case $ac_fc_v_output in
5824 # With xlf replace commas with spaces,
5825 # and remove "-link" and closing parenthesis.
5826 *xlfentry*)
5827 ac_fc_v_output=`echo $ac_fc_v_output |
5828 sed '
5829 s/,/ /g
5830 s/ -link / /g
5831 s/) *$//
5832 '
5833 ` ;;
5834
5835 # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted
5836 # $LIBS confuse us, and the libraries appear later in the output anyway).
5837 *mGLOB_options_string*)
5838 ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"-mGLOB[^"]*"/ /g'` ;;
5839
5840 # Portland Group compiler has singly- or doubly-quoted -cmdline argument
5841 # Singly-quoted arguments were reported for versions 5.2-4 and 6.0-4.
5842 # Doubly-quoted arguments were reported for "PGF90/x86 Linux/x86 5.0-2".
5843 *-cmdline\ * | *-ignore\ * | *-def\ *)
5844 ac_fc_v_output=`echo $ac_fc_v_output | sed "\
5845 s/-cmdline *'[^']*'/ /g; s/-cmdline *\"[^\"]*\"/ /g
5846 s/-ignore *'[^']*'/ /g; s/-ignore *\"[^\"]*\"/ /g
5847 s/-def *'[^']*'/ /g; s/-def *\"[^\"]*\"/ /g"` ;;
5848
5849 # If we are using fort77 (the f2c wrapper) then filter output and delete quotes.
5850 *fort77*f2c*gcc*)
5851 ac_fc_v_output=`echo "$ac_fc_v_output" | sed -n '
5852 /:[ ]\+Running[ ]\{1,\}"gcc"/{
5853 /"-c"/d
5854 /[.]c"*/d
5855 s/^.*"gcc"/"gcc"/
5856 s/"//gp
5857 }'` ;;
5858
5859 # If we are using Cray Fortran then delete quotes.
5860 *cft90*)
5861 ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"//g'` ;;
5862 esac
5863
5864
5865 # look for -l* and *.a constructs in the output
5866 for ac_arg in $ac_fc_v_output; do
5867 case $ac_arg in
5868 [\\/]*.a | ?:[\\/]*.a | -[lLRu]*)
5869 ac_cv_prog_fc_v=$ac_verb
5870 break 2 ;;
5871 esac
5872 done
5873 done
5874 if test -z "$ac_cv_prog_fc_v"; then
5875 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine how to obtain linking information from $FC" >&5
5876 $as_echo "$as_me: WARNING: cannot determine how to obtain linking information from $FC" >&2;}
5877 fi
5878 else
5879 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compilation failed" >&5
5880 $as_echo "$as_me: WARNING: compilation failed" >&2;}
5881 fi
5882 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
5883
5884 fi
5885 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_fc_v" >&5
5886 $as_echo "$ac_cv_prog_fc_v" >&6; }
5887 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran libraries of $FC" >&5
5888 $as_echo_n "checking for Fortran libraries of $FC... " >&6; }
5889 if ${ac_cv_fc_libs+:} false; then :
5890 $as_echo_n "(cached) " >&6
5891 else
5892 if test "x$FCLIBS" != "x"; then
5893 ac_cv_fc_libs="$FCLIBS" # Let the user override the test.
5894 else
5895
5896 cat > conftest.$ac_ext <<_ACEOF
5897 program main
5898
5899 end
5900 _ACEOF
5901
5902 # Compile and link our simple test program by passing a flag (argument
5903 # 1 to this macro) to the Fortran compiler in order to get
5904 # "verbose" output that we can then parse for the Fortran linker
5905 # flags.
5906 ac_save_FCFLAGS=$FCFLAGS
5907 FCFLAGS="$FCFLAGS $ac_cv_prog_fc_v"
5908 eval "set x $ac_link"
5909 shift
5910 $as_echo "$as_me:${as_lineno-$LINENO}: $*" >&5
5911 # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH,
5912 # LIBRARY_PATH; skip all such settings.
5913 ac_fc_v_output=`eval $ac_link 5>&1 2>&1 |
5914 sed '/^Driving:/d; /^Configured with:/d;
5915 '"/^[_$as_cr_Letters][_$as_cr_alnum]*=/d"`
5916 $as_echo "$ac_fc_v_output" >&5
5917 FCFLAGS=$ac_save_FCFLAGS
5918
5919 rm -rf conftest*
5920
5921 # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where
5922 # /foo, /bar, and /baz are search directories for the Fortran linker.
5923 # Here, we change these into -L/foo -L/bar -L/baz (and put it first):
5924 ac_fc_v_output="`echo $ac_fc_v_output |
5925 grep 'LPATH is:' |
5926 sed 's|.*LPATH is\(: *[^ ]*\).*|\1|;s|: */| -L/|g'` $ac_fc_v_output"
5927
5928 # FIXME: we keep getting bitten by quoted arguments; a more general fix
5929 # that detects unbalanced quotes in FLIBS should be implemented
5930 # and (ugh) tested at some point.
5931 case $ac_fc_v_output in
5932 # With xlf replace commas with spaces,
5933 # and remove "-link" and closing parenthesis.
5934 *xlfentry*)
5935 ac_fc_v_output=`echo $ac_fc_v_output |
5936 sed '
5937 s/,/ /g
5938 s/ -link / /g
5939 s/) *$//
5940 '
5941 ` ;;
5942
5943 # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted
5944 # $LIBS confuse us, and the libraries appear later in the output anyway).
5945 *mGLOB_options_string*)
5946 ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"-mGLOB[^"]*"/ /g'` ;;
5947
5948 # Portland Group compiler has singly- or doubly-quoted -cmdline argument
5949 # Singly-quoted arguments were reported for versions 5.2-4 and 6.0-4.
5950 # Doubly-quoted arguments were reported for "PGF90/x86 Linux/x86 5.0-2".
5951 *-cmdline\ * | *-ignore\ * | *-def\ *)
5952 ac_fc_v_output=`echo $ac_fc_v_output | sed "\
5953 s/-cmdline *'[^']*'/ /g; s/-cmdline *\"[^\"]*\"/ /g
5954 s/-ignore *'[^']*'/ /g; s/-ignore *\"[^\"]*\"/ /g
5955 s/-def *'[^']*'/ /g; s/-def *\"[^\"]*\"/ /g"` ;;
5956
5957 # If we are using fort77 (the f2c wrapper) then filter output and delete quotes.
5958 *fort77*f2c*gcc*)
5959 ac_fc_v_output=`echo "$ac_fc_v_output" | sed -n '
5960 /:[ ]\+Running[ ]\{1,\}"gcc"/{
5961 /"-c"/d
5962 /[.]c"*/d
5963 s/^.*"gcc"/"gcc"/
5964 s/"//gp
5965 }'` ;;
5966
5967 # If we are using Cray Fortran then delete quotes.
5968 *cft90*)
5969 ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"//g'` ;;
5970 esac
5971
5972
5973
5974 ac_cv_fc_libs=
5975
5976 # Save positional arguments (if any)
5977 ac_save_positional="$@"
5978
5979 set X $ac_fc_v_output
5980 while test $# != 1; do
5981 shift
5982 ac_arg=$1
5983 case $ac_arg in
5984 [\\/]*.a | ?:[\\/]*.a)
5985 ac_exists=false
5986 for ac_i in $ac_cv_fc_libs; do
5987 if test x"$ac_arg" = x"$ac_i"; then
5988 ac_exists=true
5989 break
5990 fi
5991 done
5992
5993 if test x"$ac_exists" = xtrue; then :
5994
5995 else
5996 ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg"
5997 fi
5998 ;;
5999 -bI:*)
6000 ac_exists=false
6001 for ac_i in $ac_cv_fc_libs; do
6002 if test x"$ac_arg" = x"$ac_i"; then
6003 ac_exists=true
6004 break
6005 fi
6006 done
6007
6008 if test x"$ac_exists" = xtrue; then :
6009
6010 else
6011 if test "$ac_compiler_gnu" = yes; then
6012 for ac_link_opt in $ac_arg; do
6013 ac_cv_fc_libs="$ac_cv_fc_libs -Xlinker $ac_link_opt"
6014 done
6015 else
6016 ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg"
6017 fi
6018 fi
6019 ;;
6020 # Ignore these flags.
6021 -lang* | -lcrt*.o | -lc | -lgcc* | -lSystem | -libmil | -little \
6022 |-LANG:=* | -LIST:* | -LNO:* | -link)
6023 ;;
6024 -lkernel32)
6025 case $host_os in
6026 *cygwin*) ;;
6027 *) ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg"
6028 ;;
6029 esac
6030 ;;
6031 -[LRuYz])
6032 # These flags, when seen by themselves, take an argument.
6033 # We remove the space between option and argument and re-iterate
6034 # unless we find an empty arg or a new option (starting with -)
6035 case $2 in
6036 "" | -*);;
6037 *)
6038 ac_arg="$ac_arg$2"
6039 shift; shift
6040 set X $ac_arg "$@"
6041 ;;
6042 esac
6043 ;;
6044 -YP,*)
6045 for ac_j in `$as_echo "$ac_arg" | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do
6046 ac_exists=false
6047 for ac_i in $ac_cv_fc_libs; do
6048 if test x"$ac_j" = x"$ac_i"; then
6049 ac_exists=true
6050 break
6051 fi
6052 done
6053
6054 if test x"$ac_exists" = xtrue; then :
6055
6056 else
6057 ac_arg="$ac_arg $ac_j"
6058 ac_cv_fc_libs="$ac_cv_fc_libs $ac_j"
6059 fi
6060 done
6061 ;;
6062 -[lLR]*)
6063 ac_exists=false
6064 for ac_i in $ac_cv_fc_libs; do
6065 if test x"$ac_arg" = x"$ac_i"; then
6066 ac_exists=true
6067 break
6068 fi
6069 done
6070
6071 if test x"$ac_exists" = xtrue; then :
6072
6073 else
6074 ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg"
6075 fi
6076 ;;
6077 -zallextract*| -zdefaultextract)
6078 ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg"
6079 ;;
6080 # Ignore everything else.
6081 esac
6082 done
6083 # restore positional arguments
6084 set X $ac_save_positional; shift
6085
6086 # We only consider "LD_RUN_PATH" on Solaris systems. If this is seen,
6087 # then we insist that the "run path" must be an absolute path (i.e. it
6088 # must begin with a "/").
6089 case `(uname -sr) 2>/dev/null` in
6090 "SunOS 5"*)
6091 ac_ld_run_path=`$as_echo "$ac_fc_v_output" |
6092 sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'`
6093 test "x$ac_ld_run_path" != x &&
6094 if test "$ac_compiler_gnu" = yes; then
6095 for ac_link_opt in $ac_ld_run_path; do
6096 ac_cv_fc_libs="$ac_cv_fc_libs -Xlinker $ac_link_opt"
6097 done
6098 else
6099 ac_cv_fc_libs="$ac_cv_fc_libs $ac_ld_run_path"
6100 fi
6101 ;;
6102 esac
6103 fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x"
6104
6105 fi
6106 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_libs" >&5
6107 $as_echo "$ac_cv_fc_libs" >&6; }
6108 FCLIBS="$ac_cv_fc_libs"
6109
6110
6111 ac_ext=c
6112 ac_cpp='$CPP $CPPFLAGS'
6113 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
6114 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
6115 ac_compiler_gnu=$ac_cv_c_compiler_gnu
6116
6117
6118 ac_ext=cpp
6119 ac_cpp='$CXXCPP $CPPFLAGS'
6120 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
6121 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
6122 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
6123
6124
6125 if test "x$prefix" = "xNONE"; then
6126 GFPREFIX=/usr/local;
6127 else
6128 GFPREFIX="$prefix";
6129 fi;
6130
6131 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler recognizes the partial specialization syntax" >&5
6132 $as_echo_n "checking whether the compiler recognizes the partial specialization syntax... " >&6; }
6133 if ${ac_cv_cxx_partial_specialization_syntax+:} false; then :
6134 $as_echo_n "(cached) " >&6
6135 else
6136
6137 ac_ext=cpp
6138 ac_cpp='$CXXCPP $CPPFLAGS'
6139 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
6140 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
6141 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
6142
6143 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6144 /* end confdefs.h. */
6145
6146 template<class T> class A { public : int f () const { return 1; } };
6147 template<class T> class A<T*> { public : int f () const { return 0; } };
6148 int
6149 main ()
6150 {
6151
6152 A<float*> a; return a.f();
6153 ;
6154 return 0;
6155 }
6156 _ACEOF
6157 if ac_fn_cxx_try_compile "$LINENO"; then :
6158 ac_cv_cxx_partial_specialization_syntax=yes
6159 else
6160 ac_cv_cxx_partial_specialization_syntax=no
6161 fi
6162 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
6163 ac_ext=cpp
6164 ac_cpp='$CXXCPP $CPPFLAGS'
6165 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
6166 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
6167 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
6168
6169
6170 fi
6171 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_partial_specialization_syntax" >&5
6172 $as_echo "$ac_cv_cxx_partial_specialization_syntax" >&6; }
6173 if test "$ac_cv_cxx_partial_specialization_syntax" != yes; then
6174 echo "Your compiler ($CXX) does not support partial template specialization, trash it"
6175 exit 1;
6176 fi
6177
6178
6179
6180 echo "you are compiling GetFEM++ on a $host"
6181
6182 case $CXX in
6183
6184 *g++* | c++)
6185 GCCVER=`$CXX --version | head -1 | cut -d ' ' -f3`
6186 echo "Using the GNU g++ compiler $GCCVER"
6187 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts $with_optimization" >&5
6188 $as_echo_n "checking whether ${CXX} accepts $with_optimization... " >&6; }
6189
6190 echo 'int main(){}' > conftest.c
6191 if test -z "`${CXX} $with_optimization -o conftest conftest.c 2>&1`"; then
6192 CXXFLAGS="${CXXFLAGS} $with_optimization"
6193 echo "yes"
6194 else
6195 echo "no"
6196
6197 fi
6198 rm -f conftest*
6199
6200 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -Wall -W" >&5
6201 $as_echo_n "checking whether ${CXX} accepts -Wall -W... " >&6; }
6202
6203 echo 'int main(){}' > conftest.c
6204 if test -z "`${CXX} -Wall -W -o conftest conftest.c 2>&1`"; then
6205 CXXFLAGS="${CXXFLAGS} -Wall -W"
6206 echo "yes"
6207 else
6208 echo "no"
6209
6210 fi
6211 rm -f conftest*
6212
6213 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -fmessage-length=0" >&5
6214 $as_echo_n "checking whether ${CXX} accepts -fmessage-length=0... " >&6; }
6215
6216 echo 'int main(){}' > conftest.c
6217 if test -z "`${CXX} -fmessage-length=0 -o conftest conftest.c 2>&1`"; then
6218 CXXFLAGS="${CXXFLAGS} -fmessage-length=0"
6219 echo "yes"
6220 else
6221 echo "no"
6222
6223 fi
6224 rm -f conftest*
6225
6226 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -ftemplate-depth-100" >&5
6227 $as_echo_n "checking whether ${CXX} accepts -ftemplate-depth-100... " >&6; }
6228
6229 echo 'int main(){}' > conftest.c
6230 if test -z "`${CXX} -ftemplate-depth-100 -o conftest conftest.c 2>&1`"; then
6231 CXXFLAGS="${CXXFLAGS} -ftemplate-depth-100"
6232 echo "yes"
6233 else
6234 echo "no"
6235
6236 fi
6237 rm -f conftest*
6238
6239 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -std=c++11" >&5
6240 $as_echo_n "checking whether ${CXX} accepts -std=c++11... " >&6; }
6241
6242 echo 'int main(){}' > conftest.c
6243 if test -z "`${CXX} -std=c++11 -o conftest conftest.c 2>&1`"; then
6244 CXXFLAGS="${CXXFLAGS} -std=c++11"
6245 echo "yes"
6246 else
6247 echo "no"
6248 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -std=c++0x" >&5
6249 $as_echo_n "checking whether ${CXX} accepts -std=c++0x... " >&6; }
6250
6251 echo 'int main(){}' > conftest.c
6252 if test -z "`${CXX} -std=c++0x -o conftest conftest.c 2>&1`"; then
6253 CXXFLAGS="${CXXFLAGS} -std=c++0x"
6254 echo "yes"
6255 else
6256 echo "no"
6257 as_fn_error $? "g++ do not support option -std=c++11. Update g++ to at least release 4.8.1." "$LINENO" 5
6258 fi
6259 rm -f conftest*
6260
6261 fi
6262 rm -f conftest*
6263
6264 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -fPIC" >&5
6265 $as_echo_n "checking whether ${CXX} accepts -fPIC... " >&6; }
6266
6267 echo 'int main(){}' > conftest.c
6268 if test -z "`${CXX} -fPIC -o conftest conftest.c 2>&1`"; then
6269 CXXFLAGS="${CXXFLAGS} -fPIC"
6270 echo "yes"
6271 else
6272 echo "no"
6273
6274 fi
6275 rm -f conftest*
6276
6277 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -pedantic" >&5
6278 $as_echo_n "checking whether ${CXX} accepts -pedantic... " >&6; }
6279
6280 echo 'int main(){}' > conftest.c
6281 if test -z "`${CXX} -pedantic -o conftest conftest.c 2>&1`"; then
6282 CXXFLAGS="${CXXFLAGS} -pedantic"
6283 echo "yes"
6284 else
6285 echo "no"
6286
6287 fi
6288 rm -f conftest*
6289
6290 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -Wshadow" >&5
6291 $as_echo_n "checking whether ${CXX} accepts -Wshadow... " >&6; }
6292
6293 echo 'int main(){}' > conftest.c
6294 if test -z "`${CXX} -Wshadow -o conftest conftest.c 2>&1`"; then
6295 CXXFLAGS="${CXXFLAGS} -Wshadow"
6296 echo "yes"
6297 else
6298 echo "no"
6299
6300 fi
6301 rm -f conftest*
6302
6303 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -Wno-unknown-pragmas" >&5
6304 $as_echo_n "checking whether ${CXX} accepts -Wno-unknown-pragmas... " >&6; }
6305
6306 echo 'int main(){}' > conftest.c
6307 if test -z "`${CXX} -Wno-unknown-pragmas -o conftest conftest.c 2>&1`"; then
6308 CXXFLAGS="${CXXFLAGS} -Wno-unknown-pragmas"
6309 echo "yes"
6310 else
6311 echo "no"
6312
6313 fi
6314 rm -f conftest*
6315
6316 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -Wno-variadic-macros" >&5
6317 $as_echo_n "checking whether ${CXX} accepts -Wno-variadic-macros... " >&6; }
6318
6319 echo 'int main(){}' > conftest.c
6320 if test -z "`${CXX} -Wno-variadic-macros -o conftest conftest.c 2>&1`"; then
6321 CXXFLAGS="${CXXFLAGS} -Wno-variadic-macros"
6322 echo "yes"
6323 else
6324 echo "no"
6325
6326 fi
6327 rm -f conftest*
6328
6329 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -Wno-unused-but-set-variable" >&5
6330 $as_echo_n "checking whether ${CXX} accepts -Wno-unused-but-set-variable... " >&6; }
6331
6332 echo 'int main(){}' > conftest.c
6333 if test -z "`${CXX} -Wno-unused-but-set-variable -o conftest conftest.c 2>&1`"; then
6334 CXXFLAGS="${CXXFLAGS} -Wno-unused-but-set-variable"
6335 echo "yes"
6336 else
6337 echo "no"
6338
6339 fi
6340 rm -f conftest*
6341
6342 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -Wpointer-arith" >&5
6343 $as_echo_n "checking whether ${CXX} accepts -Wpointer-arith... " >&6; }
6344
6345 echo 'int main(){}' > conftest.c
6346 if test -z "`${CXX} -Wpointer-arith -o conftest conftest.c 2>&1`"; then
6347 CXXFLAGS="${CXXFLAGS} -Wpointer-arith"
6348 echo "yes"
6349 else
6350 echo "no"
6351
6352 fi
6353 rm -f conftest*
6354
6355 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -Wcast-qual" >&5
6356 $as_echo_n "checking whether ${CXX} accepts -Wcast-qual... " >&6; }
6357
6358 echo 'int main(){}' > conftest.c
6359 if test -z "`${CXX} -Wcast-qual -o conftest conftest.c 2>&1`"; then
6360 CXXFLAGS="${CXXFLAGS} -Wcast-qual"
6361 echo "yes"
6362 else
6363 echo "no"
6364
6365 fi
6366 rm -f conftest*
6367
6368 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -Wwrite-strings" >&5
6369 $as_echo_n "checking whether ${CXX} accepts -Wwrite-strings... " >&6; }
6370
6371 echo 'int main(){}' > conftest.c
6372 if test -z "`${CXX} -Wwrite-strings -o conftest conftest.c 2>&1`"; then
6373 CXXFLAGS="${CXXFLAGS} -Wwrite-strings"
6374 echo "yes"
6375 else
6376 echo "no"
6377
6378 fi
6379 rm -f conftest*
6380
6381 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -Wconversion" >&5
6382 $as_echo_n "checking whether ${CXX} accepts -Wconversion... " >&6; }
6383
6384 echo 'int main(){}' > conftest.c
6385 if test -z "`${CXX} -Wconversion -o conftest conftest.c 2>&1`"; then
6386 CXXFLAGS="${CXXFLAGS} -Wconversion"
6387 echo "yes"
6388 else
6389 echo "no"
6390
6391 fi
6392 rm -f conftest*
6393
6394 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -Wredundant-decls" >&5
6395 $as_echo_n "checking whether ${CXX} accepts -Wredundant-decls... " >&6; }
6396
6397 echo 'int main(){}' > conftest.c
6398 if test -z "`${CXX} -Wredundant-decls -o conftest conftest.c 2>&1`"; then
6399 CXXFLAGS="${CXXFLAGS} -Wredundant-decls"
6400 echo "yes"
6401 else
6402 echo "no"
6403
6404 fi
6405 rm -f conftest*
6406
6407 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -Wno-long-long" >&5
6408 $as_echo_n "checking whether ${CXX} accepts -Wno-long-long... " >&6; }
6409
6410 echo 'int main(){}' > conftest.c
6411 if test -z "`${CXX} -Wno-long-long -o conftest conftest.c 2>&1`"; then
6412 CXXFLAGS="${CXXFLAGS} -Wno-long-long"
6413 echo "yes"
6414 else
6415 echo "no"
6416
6417 fi
6418 rm -f conftest*
6419
6420 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} accepts -rdynamic" >&5
6421 $as_echo_n "checking whether ${CXX} accepts -rdynamic... " >&6; }
6422
6423 echo 'int main(){}' > conftest.c
6424 if test -z "`${CXX} -rdynamic -o conftest conftest.c 2>&1`"; then
6425 SUPLDFLAGS="${SUPLDFLAGS} -rdynamic"
6426 echo "yes"
6427 else
6428 echo "no"
6429
6430 fi
6431 rm -f conftest*
6432
6433
6434 CFLAGS="$CFLAGS $with_optimization -fPIC"
6435 ;;
6436 icc | icpc)
6437 echo "Using INTEL icc"
6438 CXXFLAGS="$CXXFLAGS $with_optimization -Xc -ansi -std=c++11"
6439 CFLAGS="$CFLAGS $with_optimization -Xc -ansi"
6440 ;;
6441 *)
6442 echo "Using a unknown compiler"
6443 CXXFLAGS="$CXXFLAGS $with_optimization -std=c++11"
6444 CFLAGS="$CFLAGS $with_optimization"
6445 ;;
6446 esac
6447
6448
6449
6450
6451 case `pwd` in
6452 *\ * | *\ *)
6453 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
6454 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
6455 esac
6456
6457
6458
6459 macro_version='2.4.2'
6460 macro_revision='1.3337'
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474 ltmain="$ac_aux_dir/ltmain.sh"
6475
6476 # Backslashify metacharacters that are still active within
6477 # double-quoted strings.
6478 sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
6479
6480 # Same as above, but do not quote variable references.
6481 double_quote_subst='s/\(["`\\]\)/\\\1/g'
6482
6483 # Sed substitution to delay expansion of an escaped shell variable in a
6484 # double_quote_subst'ed string.
6485 delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
6486
6487 # Sed substitution to delay expansion of an escaped single quote.
6488 delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
6489
6490 # Sed substitution to avoid accidental globbing in evaled expressions
6491 no_glob_subst='s/\*/\\\*/g'
6492
6493 ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
6494 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
6495 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
6496
6497 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
6498 $as_echo_n "checking how to print strings... " >&6; }
6499 # Test print first, because it will be a builtin if present.
6500 if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
6501 test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
6502 ECHO='print -r --'
6503 elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
6504 ECHO='printf %s\n'
6505 else
6506 # Use this function as a fallback that always works.
6507 func_fallback_echo ()
6508 {
6509 eval 'cat <<_LTECHO_EOF
6510 $1
6511 _LTECHO_EOF'
6512 }
6513 ECHO='func_fallback_echo'
6514 fi
6515
6516 # func_echo_all arg...
6517 # Invoke $ECHO with all args, space-separated.
6518 func_echo_all ()
6519 {
6520 $ECHO ""
6521 }
6522
6523 case "$ECHO" in
6524 printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
6525 $as_echo "printf" >&6; } ;;
6526 print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
6527 $as_echo "print -r" >&6; } ;;
6528 *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
6529 $as_echo "cat" >&6; } ;;
6530 esac
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
6546 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
6547 if ${ac_cv_path_SED+:} false; then :
6548 $as_echo_n "(cached) " >&6
6549 else
6550 ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
6551 for ac_i in 1 2 3 4 5 6 7; do
6552 ac_script="$ac_script$as_nl$ac_script"
6553 done
6554 echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
6555 { ac_script=; unset ac_script;}
6556 if test -z "$SED"; then
6557 ac_path_SED_found=false
6558 # Loop through the user's path and test for each of PROGNAME-LIST
6559 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6560 for as_dir in $PATH
6561 do
6562 IFS=$as_save_IFS
6563 test -z "$as_dir" && as_dir=.
6564 for ac_prog in sed gsed; do
6565 for ac_exec_ext in '' $ac_executable_extensions; do
6566 ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
6567 as_fn_executable_p "$ac_path_SED" || continue
6568 # Check for GNU ac_path_SED and select it if it is found.
6569 # Check for GNU $ac_path_SED
6570 case `"$ac_path_SED" --version 2>&1` in
6571 *GNU*)
6572 ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
6573 *)
6574 ac_count=0
6575 $as_echo_n 0123456789 >"conftest.in"
6576 while :
6577 do
6578 cat "conftest.in" "conftest.in" >"conftest.tmp"
6579 mv "conftest.tmp" "conftest.in"
6580 cp "conftest.in" "conftest.nl"
6581 $as_echo '' >> "conftest.nl"
6582 "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
6583 diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
6584 as_fn_arith $ac_count + 1 && ac_count=$as_val
6585 if test $ac_count -gt ${ac_path_SED_max-0}; then
6586 # Best one so far, save it but keep looking for a better one
6587 ac_cv_path_SED="$ac_path_SED"
6588 ac_path_SED_max=$ac_count
6589 fi
6590 # 10*(2^10) chars as input seems more than enough
6591 test $ac_count -gt 10 && break
6592 done
6593 rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
6594 esac
6595
6596 $ac_path_SED_found && break 3
6597 done
6598 done
6599 done
6600 IFS=$as_save_IFS
6601 if test -z "$ac_cv_path_SED"; then
6602 as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
6603 fi
6604 else
6605 ac_cv_path_SED=$SED
6606 fi
6607
6608 fi
6609 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
6610 $as_echo "$ac_cv_path_SED" >&6; }
6611 SED="$ac_cv_path_SED"
6612 rm -f conftest.sed
6613
6614 test -z "$SED" && SED=sed
6615 Xsed="$SED -e 1s/^X//"
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
6628 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
6629 if ${ac_cv_path_GREP+:} false; then :
6630 $as_echo_n "(cached) " >&6
6631 else
6632 if test -z "$GREP"; then
6633 ac_path_GREP_found=false
6634 # Loop through the user's path and test for each of PROGNAME-LIST
6635 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6636 for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
6637 do
6638 IFS=$as_save_IFS
6639 test -z "$as_dir" && as_dir=.
6640 for ac_prog in grep ggrep; do
6641 for ac_exec_ext in '' $ac_executable_extensions; do
6642 ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
6643 as_fn_executable_p "$ac_path_GREP" || continue
6644 # Check for GNU ac_path_GREP and select it if it is found.
6645 # Check for GNU $ac_path_GREP
6646 case `"$ac_path_GREP" --version 2>&1` in
6647 *GNU*)
6648 ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
6649 *)
6650 ac_count=0
6651 $as_echo_n 0123456789 >"conftest.in"
6652 while :
6653 do
6654 cat "conftest.in" "conftest.in" >"conftest.tmp"
6655 mv "conftest.tmp" "conftest.in"
6656 cp "conftest.in" "conftest.nl"
6657 $as_echo 'GREP' >> "conftest.nl"
6658 "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
6659 diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
6660 as_fn_arith $ac_count + 1 && ac_count=$as_val
6661 if test $ac_count -gt ${ac_path_GREP_max-0}; then
6662 # Best one so far, save it but keep looking for a better one
6663 ac_cv_path_GREP="$ac_path_GREP"
6664 ac_path_GREP_max=$ac_count
6665 fi
6666 # 10*(2^10) chars as input seems more than enough
6667 test $ac_count -gt 10 && break
6668 done
6669 rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
6670 esac
6671
6672 $ac_path_GREP_found && break 3
6673 done
6674 done
6675 done
6676 IFS=$as_save_IFS
6677 if test -z "$ac_cv_path_GREP"; then
6678 as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
6679 fi
6680 else
6681 ac_cv_path_GREP=$GREP
6682 fi
6683
6684 fi
6685 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
6686 $as_echo "$ac_cv_path_GREP" >&6; }
6687 GREP="$ac_cv_path_GREP"
6688
6689
6690 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
6691 $as_echo_n "checking for egrep... " >&6; }
6692 if ${ac_cv_path_EGREP+:} false; then :
6693 $as_echo_n "(cached) " >&6
6694 else
6695 if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
6696 then ac_cv_path_EGREP="$GREP -E"
6697 else
6698 if test -z "$EGREP"; then
6699 ac_path_EGREP_found=false
6700 # Loop through the user's path and test for each of PROGNAME-LIST
6701 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6702 for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
6703 do
6704 IFS=$as_save_IFS
6705 test -z "$as_dir" && as_dir=.
6706 for ac_prog in egrep; do
6707 for ac_exec_ext in '' $ac_executable_extensions; do
6708 ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
6709 as_fn_executable_p "$ac_path_EGREP" || continue
6710 # Check for GNU ac_path_EGREP and select it if it is found.
6711 # Check for GNU $ac_path_EGREP
6712 case `"$ac_path_EGREP" --version 2>&1` in
6713 *GNU*)
6714 ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
6715 *)
6716 ac_count=0
6717 $as_echo_n 0123456789 >"conftest.in"
6718 while :
6719 do
6720 cat "conftest.in" "conftest.in" >"conftest.tmp"
6721 mv "conftest.tmp" "conftest.in"
6722 cp "conftest.in" "conftest.nl"
6723 $as_echo 'EGREP' >> "conftest.nl"
6724 "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
6725 diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
6726 as_fn_arith $ac_count + 1 && ac_count=$as_val
6727 if test $ac_count -gt ${ac_path_EGREP_max-0}; then
6728 # Best one so far, save it but keep looking for a better one
6729 ac_cv_path_EGREP="$ac_path_EGREP"
6730 ac_path_EGREP_max=$ac_count
6731 fi
6732 # 10*(2^10) chars as input seems more than enough
6733 test $ac_count -gt 10 && break
6734 done
6735 rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
6736 esac
6737
6738 $ac_path_EGREP_found && break 3
6739 done
6740 done
6741 done
6742 IFS=$as_save_IFS
6743 if test -z "$ac_cv_path_EGREP"; then
6744 as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
6745 fi
6746 else
6747 ac_cv_path_EGREP=$EGREP
6748 fi
6749
6750 fi
6751 fi
6752 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
6753 $as_echo "$ac_cv_path_EGREP" >&6; }
6754 EGREP="$ac_cv_path_EGREP"
6755
6756
6757 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
6758 $as_echo_n "checking for fgrep... " >&6; }
6759 if ${ac_cv_path_FGREP+:} false; then :
6760 $as_echo_n "(cached) " >&6
6761 else
6762 if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
6763 then ac_cv_path_FGREP="$GREP -F"
6764 else
6765 if test -z "$FGREP"; then
6766 ac_path_FGREP_found=false
6767 # Loop through the user's path and test for each of PROGNAME-LIST
6768 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6769 for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
6770 do
6771 IFS=$as_save_IFS
6772 test -z "$as_dir" && as_dir=.
6773 for ac_prog in fgrep; do
6774 for ac_exec_ext in '' $ac_executable_extensions; do
6775 ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
6776 as_fn_executable_p "$ac_path_FGREP" || continue
6777 # Check for GNU ac_path_FGREP and select it if it is found.
6778 # Check for GNU $ac_path_FGREP
6779 case `"$ac_path_FGREP" --version 2>&1` in
6780 *GNU*)
6781 ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
6782 *)
6783 ac_count=0
6784 $as_echo_n 0123456789 >"conftest.in"
6785 while :
6786 do
6787 cat "conftest.in" "conftest.in" >"conftest.tmp"
6788 mv "conftest.tmp" "conftest.in"
6789 cp "conftest.in" "conftest.nl"
6790 $as_echo 'FGREP' >> "conftest.nl"
6791 "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
6792 diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
6793 as_fn_arith $ac_count + 1 && ac_count=$as_val
6794 if test $ac_count -gt ${ac_path_FGREP_max-0}; then
6795 # Best one so far, save it but keep looking for a better one
6796 ac_cv_path_FGREP="$ac_path_FGREP"
6797 ac_path_FGREP_max=$ac_count
6798 fi
6799 # 10*(2^10) chars as input seems more than enough
6800 test $ac_count -gt 10 && break
6801 done
6802 rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
6803 esac
6804
6805 $ac_path_FGREP_found && break 3
6806 done
6807 done
6808 done
6809 IFS=$as_save_IFS
6810 if test -z "$ac_cv_path_FGREP"; then
6811 as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
6812 fi
6813 else
6814 ac_cv_path_FGREP=$FGREP
6815 fi
6816
6817 fi
6818 fi
6819 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
6820 $as_echo "$ac_cv_path_FGREP" >&6; }
6821 FGREP="$ac_cv_path_FGREP"
6822
6823
6824 test -z "$GREP" && GREP=grep
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844 # Check whether --with-gnu-ld was given.
6845 if test "${with_gnu_ld+set}" = set; then :
6846 withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
6847 else
6848 with_gnu_ld=no
6849 fi
6850
6851 ac_prog=ld
6852 if test "$GCC" = yes; then
6853 # Check if gcc -print-prog-name=ld gives a path.
6854 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
6855 $as_echo_n "checking for ld used by $CC... " >&6; }
6856 case $host in
6857 *-*-mingw*)
6858 # gcc leaves a trailing carriage return which upsets mingw
6859 ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
6860 *)
6861 ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
6862 esac
6863 case $ac_prog in
6864 # Accept absolute paths.
6865 [\\/]* | ?:[\\/]*)
6866 re_direlt='/[^/][^/]*/\.\./'
6867 # Canonicalize the pathname of ld
6868 ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
6869 while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
6870 ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
6871 done
6872 test -z "$LD" && LD="$ac_prog"
6873 ;;
6874 "")
6875 # If it fails, then pretend we aren't using GCC.
6876 ac_prog=ld
6877 ;;
6878 *)
6879 # If it is relative, then search for the first ld in PATH.
6880 with_gnu_ld=unknown
6881 ;;
6882 esac
6883 elif test "$with_gnu_ld" = yes; then
6884 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
6885 $as_echo_n "checking for GNU ld... " >&6; }
6886 else
6887 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
6888 $as_echo_n "checking for non-GNU ld... " >&6; }
6889 fi
6890 if ${lt_cv_path_LD+:} false; then :
6891 $as_echo_n "(cached) " >&6
6892 else
6893 if test -z "$LD"; then
6894 lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
6895 for ac_dir in $PATH; do
6896 IFS="$lt_save_ifs"
6897 test -z "$ac_dir" && ac_dir=.
6898 if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
6899 lt_cv_path_LD="$ac_dir/$ac_prog"
6900 # Check to see if the program is GNU ld. I'd rather use --version,
6901 # but apparently some variants of GNU ld only accept -v.
6902 # Break only if it was the GNU/non-GNU ld that we prefer.
6903 case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
6904 *GNU* | *'with BFD'*)
6905 test "$with_gnu_ld" != no && break
6906 ;;
6907 *)
6908 test "$with_gnu_ld" != yes && break
6909 ;;
6910 esac
6911 fi
6912 done
6913 IFS="$lt_save_ifs"
6914 else
6915 lt_cv_path_LD="$LD" # Let the user override the test with a path.
6916 fi
6917 fi
6918
6919 LD="$lt_cv_path_LD"
6920 if test -n "$LD"; then
6921 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
6922 $as_echo "$LD" >&6; }
6923 else
6924 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6925 $as_echo "no" >&6; }
6926 fi
6927 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
6928 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
6929 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
6930 if ${lt_cv_prog_gnu_ld+:} false; then :
6931 $as_echo_n "(cached) " >&6
6932 else
6933 # I'd rather use --version here, but apparently some GNU lds only accept -v.
6934 case `$LD -v 2>&1 </dev/null` in
6935 *GNU* | *'with BFD'*)
6936 lt_cv_prog_gnu_ld=yes
6937 ;;
6938 *)
6939 lt_cv_prog_gnu_ld=no
6940 ;;
6941 esac
6942 fi
6943 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
6944 $as_echo "$lt_cv_prog_gnu_ld" >&6; }
6945 with_gnu_ld=$lt_cv_prog_gnu_ld
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
6956 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
6957 if ${lt_cv_path_NM+:} false; then :
6958 $as_echo_n "(cached) " >&6
6959 else
6960 if test -n "$NM"; then
6961 # Let the user override the test.
6962 lt_cv_path_NM="$NM"
6963 else
6964 lt_nm_to_check="${ac_tool_prefix}nm"
6965 if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
6966 lt_nm_to_check="$lt_nm_to_check nm"
6967 fi
6968 for lt_tmp_nm in $lt_nm_to_check; do
6969 lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
6970 for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
6971 IFS="$lt_save_ifs"
6972 test -z "$ac_dir" && ac_dir=.
6973 tmp_nm="$ac_dir/$lt_tmp_nm"
6974 if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
6975 # Check to see if the nm accepts a BSD-compat flag.
6976 # Adding the `sed 1q' prevents false positives on HP-UX, which says:
6977 # nm: unknown option "B" ignored
6978 # Tru64's nm complains that /dev/null is an invalid object file
6979 case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
6980 */dev/null* | *'Invalid file or object type'*)
6981 lt_cv_path_NM="$tmp_nm -B"
6982 break
6983 ;;
6984 *)
6985 case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
6986 */dev/null*)
6987 lt_cv_path_NM="$tmp_nm -p"
6988 break
6989 ;;
6990 *)
6991 lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
6992 continue # so that we can try to find one that supports BSD flags
6993 ;;
6994 esac
6995 ;;
6996 esac
6997 fi
6998 done
6999 IFS="$lt_save_ifs"
7000 done
7001 : ${lt_cv_path_NM=no}
7002 fi
7003 fi
7004 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
7005 $as_echo "$lt_cv_path_NM" >&6; }
7006 if test "$lt_cv_path_NM" != "no"; then
7007 NM="$lt_cv_path_NM"
7008 else
7009 # Didn't find any BSD compatible name lister, look for dumpbin.
7010 if test -n "$DUMPBIN"; then :
7011 # Let the user override the test.
7012 else
7013 if test -n "$ac_tool_prefix"; then
7014 for ac_prog in dumpbin "link -dump"
7015 do
7016 # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
7017 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
7018 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
7019 $as_echo_n "checking for $ac_word... " >&6; }
7020 if ${ac_cv_prog_DUMPBIN+:} false; then :
7021 $as_echo_n "(cached) " >&6
7022 else
7023 if test -n "$DUMPBIN"; then
7024 ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
7025 else
7026 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7027 for as_dir in $PATH
7028 do
7029 IFS=$as_save_IFS
7030 test -z "$as_dir" && as_dir=.
7031 for ac_exec_ext in '' $ac_executable_extensions; do
7032 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
7033 ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
7034 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
7035 break 2
7036 fi
7037 done
7038 done
7039 IFS=$as_save_IFS
7040
7041 fi
7042 fi
7043 DUMPBIN=$ac_cv_prog_DUMPBIN
7044 if test -n "$DUMPBIN"; then
7045 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
7046 $as_echo "$DUMPBIN" >&6; }
7047 else
7048 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
7049 $as_echo "no" >&6; }
7050 fi
7051
7052
7053 test -n "$DUMPBIN" && break
7054 done
7055 fi
7056 if test -z "$DUMPBIN"; then
7057 ac_ct_DUMPBIN=$DUMPBIN
7058 for ac_prog in dumpbin "link -dump"
7059 do
7060 # Extract the first word of "$ac_prog", so it can be a program name with args.
7061 set dummy $ac_prog; ac_word=$2
7062 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
7063 $as_echo_n "checking for $ac_word... " >&6; }
7064 if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
7065 $as_echo_n "(cached) " >&6
7066 else
7067 if test -n "$ac_ct_DUMPBIN"; then
7068 ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
7069 else
7070 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7071 for as_dir in $PATH
7072 do
7073 IFS=$as_save_IFS
7074 test -z "$as_dir" && as_dir=.
7075 for ac_exec_ext in '' $ac_executable_extensions; do
7076 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
7077 ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
7078 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
7079 break 2
7080 fi
7081 done
7082 done
7083 IFS=$as_save_IFS
7084
7085 fi
7086 fi
7087 ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
7088 if test -n "$ac_ct_DUMPBIN"; then
7089 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
7090 $as_echo "$ac_ct_DUMPBIN" >&6; }
7091 else
7092 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
7093 $as_echo "no" >&6; }
7094 fi
7095
7096
7097 test -n "$ac_ct_DUMPBIN" && break
7098 done
7099
7100 if test "x$ac_ct_DUMPBIN" = x; then
7101 DUMPBIN=":"
7102 else
7103 case $cross_compiling:$ac_tool_warned in
7104 yes:)
7105 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
7106 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
7107 ac_tool_warned=yes ;;
7108 esac
7109 DUMPBIN=$ac_ct_DUMPBIN
7110 fi
7111 fi
7112
7113 case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
7114 *COFF*)
7115 DUMPBIN="$DUMPBIN -symbols"
7116 ;;
7117 *)
7118 DUMPBIN=:
7119 ;;
7120 esac
7121 fi
7122
7123 if test "$DUMPBIN" != ":"; then
7124 NM="$DUMPBIN"
7125 fi
7126 fi
7127 test -z "$NM" && NM=nm
7128
7129
7130
7131
7132
7133
7134 { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
7135 $as_echo_n "checking the name lister ($NM) interface... " >&6; }
7136 if ${lt_cv_nm_interface+:} false; then :
7137 $as_echo_n "(cached) " >&6
7138 else
7139 lt_cv_nm_interface="BSD nm"
7140 echo "int some_variable = 0;" > conftest.$ac_ext
7141 (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
7142 (eval "$ac_compile" 2>conftest.err)
7143 cat conftest.err >&5
7144 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
7145 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
7146 cat conftest.err >&5
7147 (eval echo "\"\$as_me:$LINENO: output\"" >&5)
7148 cat conftest.out >&5
7149 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
7150 lt_cv_nm_interface="MS dumpbin"
7151 fi
7152 rm -f conftest*
7153 fi
7154 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
7155 $as_echo "$lt_cv_nm_interface" >&6; }
7156
7157 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
7158 $as_echo_n "checking whether ln -s works... " >&6; }
7159 LN_S=$as_ln_s
7160 if test "$LN_S" = "ln -s"; then
7161 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
7162 $as_echo "yes" >&6; }
7163 else
7164 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
7165 $as_echo "no, using $LN_S" >&6; }
7166 fi
7167
7168 # find the maximum length of command line arguments
7169 { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
7170 $as_echo_n "checking the maximum length of command line arguments... " >&6; }
7171 if ${lt_cv_sys_max_cmd_len+:} false; then :
7172 $as_echo_n "(cached) " >&6
7173 else
7174 i=0
7175 teststring="ABCD"
7176
7177 case $build_os in
7178 msdosdjgpp*)
7179 # On DJGPP, this test can blow up pretty badly due to problems in libc
7180 # (any single argument exceeding 2000 bytes causes a buffer overrun
7181 # during glob expansion). Even if it were fixed, the result of this
7182 # check would be larger than it should be.
7183 lt_cv_sys_max_cmd_len=12288; # 12K is about right
7184 ;;
7185
7186 gnu*)
7187 # Under GNU Hurd, this test is not required because there is
7188 # no limit to the length of command line arguments.
7189 # Libtool will interpret -1 as no limit whatsoever
7190 lt_cv_sys_max_cmd_len=-1;
7191 ;;
7192
7193 cygwin* | mingw* | cegcc*)
7194 # On Win9x/ME, this test blows up -- it succeeds, but takes
7195 # about 5 minutes as the teststring grows exponentially.
7196 # Worse, since 9x/ME are not pre-emptively multitasking,
7197 # you end up with a "frozen" computer, even though with patience
7198 # the test eventually succeeds (with a max line length of 256k).
7199 # Instead, let's just punt: use the minimum linelength reported by
7200 # all of the supported platforms: 8192 (on NT/2K/XP).
7201 lt_cv_sys_max_cmd_len=8192;
7202 ;;
7203
7204 mint*)
7205 # On MiNT this can take a long time and run out of memory.
7206 lt_cv_sys_max_cmd_len=8192;
7207 ;;
7208
7209 amigaos*)
7210 # On AmigaOS with pdksh, this test takes hours, literally.
7211 # So we just punt and use a minimum line length of 8192.
7212 lt_cv_sys_max_cmd_len=8192;
7213 ;;
7214
7215 netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
7216 # This has been around since 386BSD, at least. Likely further.
7217 if test -x /sbin/sysctl; then
7218 lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
7219 elif test -x /usr/sbin/sysctl; then
7220 lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
7221 else
7222 lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
7223 fi
7224 # And add a safety zone
7225 lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
7226 lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
7227 ;;
7228
7229 interix*)
7230 # We know the value 262144 and hardcode it with a safety zone (like BSD)
7231 lt_cv_sys_max_cmd_len=196608
7232 ;;
7233
7234 os2*)
7235 # The test takes a long time on OS/2.
7236 lt_cv_sys_max_cmd_len=8192
7237 ;;
7238
7239 osf*)
7240 # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
7241 # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
7242 # nice to cause kernel panics so lets avoid the loop below.
7243 # First set a reasonable default.
7244 lt_cv_sys_max_cmd_len=16384
7245 #
7246 if test -x /sbin/sysconfig; then
7247 case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
7248 *1*) lt_cv_sys_max_cmd_len=-1 ;;
7249 esac
7250 fi
7251 ;;
7252 sco3.2v5*)
7253 lt_cv_sys_max_cmd_len=102400
7254 ;;
7255 sysv5* | sco5v6* | sysv4.2uw2*)
7256 kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
7257 if test -n "$kargmax"; then
7258 lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
7259 else
7260 lt_cv_sys_max_cmd_len=32768
7261 fi
7262 ;;
7263 *)
7264 lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
7265 if test -n "$lt_cv_sys_max_cmd_len" && \
7266 test undefined != "$lt_cv_sys_max_cmd_len"; then
7267 lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
7268 lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
7269 else
7270 # Make teststring a little bigger before we do anything with it.
7271 # a 1K string should be a reasonable start.
7272 for i in 1 2 3 4 5 6 7 8 ; do
7273 teststring=$teststring$teststring
7274 done
7275 SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
7276 # If test is not a shell built-in, we'll probably end up computing a
7277 # maximum length that is only half of the actual maximum length, but
7278 # we can't tell.
7279 while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
7280 = "X$teststring$teststring"; } >/dev/null 2>&1 &&
7281 test $i != 17 # 1/2 MB should be enough
7282 do
7283 i=`expr $i + 1`
7284 teststring=$teststring$teststring
7285 done
7286 # Only check the string length outside the loop.
7287 lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
7288 teststring=
7289 # Add a significant safety factor because C++ compilers can tack on
7290 # massive amounts of additional arguments before passing them to the
7291 # linker. It appears as though 1/2 is a usable value.
7292 lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
7293 fi
7294 ;;
7295 esac
7296
7297 fi
7298
7299 if test -n $lt_cv_sys_max_cmd_len ; then
7300 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
7301 $as_echo "$lt_cv_sys_max_cmd_len" >&6; }
7302 else
7303 { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
7304 $as_echo "none" >&6; }
7305 fi
7306 max_cmd_len=$lt_cv_sys_max_cmd_len
7307
7308
7309
7310
7311
7312
7313 : ${CP="cp -f"}
7314 : ${MV="mv -f"}
7315 : ${RM="rm -f"}
7316
7317 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
7318 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
7319 # Try some XSI features
7320 xsi_shell=no
7321 ( _lt_dummy="a/b/c"
7322 test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
7323 = c,a/b,b/c, \
7324 && eval 'test $(( 1 + 1 )) -eq 2 \
7325 && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
7326 && xsi_shell=yes
7327 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
7328 $as_echo "$xsi_shell" >&6; }
7329
7330
7331 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
7332 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
7333 lt_shell_append=no
7334 ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
7335 >/dev/null 2>&1 \
7336 && lt_shell_append=yes
7337 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
7338 $as_echo "$lt_shell_append" >&6; }
7339
7340
7341 if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
7342 lt_unset=unset
7343 else
7344 lt_unset=false
7345 fi
7346
7347
7348
7349
7350
7351 # test EBCDIC or ASCII
7352 case `echo X|tr X '\101'` in
7353 A) # ASCII based system
7354 # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
7355 lt_SP2NL='tr \040 \012'
7356 lt_NL2SP='tr \015\012 \040\040'
7357 ;;
7358 *) # EBCDIC based system
7359 lt_SP2NL='tr \100 \n'
7360 lt_NL2SP='tr \r\n \100\100'
7361 ;;
7362 esac
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
7373 $as_echo_n "checking how to convert $build file names to $host format... " >&6; }
7374 if ${lt_cv_to_host_file_cmd+:} false; then :
7375 $as_echo_n "(cached) " >&6
7376 else
7377 case $host in
7378 *-*-mingw* )
7379 case $build in
7380 *-*-mingw* ) # actually msys
7381 lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
7382 ;;
7383 *-*-cygwin* )
7384 lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
7385 ;;
7386 * ) # otherwise, assume *nix
7387 lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
7388 ;;
7389 esac
7390 ;;
7391 *-*-cygwin* )
7392 case $build in
7393 *-*-mingw* ) # actually msys
7394 lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
7395 ;;
7396 *-*-cygwin* )
7397 lt_cv_to_host_file_cmd=func_convert_file_noop
7398 ;;
7399 * ) # otherwise, assume *nix
7400 lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
7401 ;;
7402 esac
7403 ;;
7404 * ) # unhandled hosts (and "normal" native builds)
7405 lt_cv_to_host_file_cmd=func_convert_file_noop
7406 ;;
7407 esac
7408
7409 fi
7410
7411 to_host_file_cmd=$lt_cv_to_host_file_cmd
7412 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
7413 $as_echo "$lt_cv_to_host_file_cmd" >&6; }
7414
7415
7416
7417
7418
7419 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
7420 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
7421 if ${lt_cv_to_tool_file_cmd+:} false; then :
7422 $as_echo_n "(cached) " >&6
7423 else
7424 #assume ordinary cross tools, or native build.
7425 lt_cv_to_tool_file_cmd=func_convert_file_noop
7426 case $host in
7427 *-*-mingw* )
7428 case $build in
7429 *-*-mingw* ) # actually msys
7430 lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
7431 ;;
7432 esac
7433 ;;
7434 esac
7435
7436 fi
7437
7438 to_tool_file_cmd=$lt_cv_to_tool_file_cmd
7439 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
7440 $as_echo "$lt_cv_to_tool_file_cmd" >&6; }
7441
7442
7443
7444
7445
7446 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
7447 $as_echo_n "checking for $LD option to reload object files... " >&6; }
7448 if ${lt_cv_ld_reload_flag+:} false; then :
7449 $as_echo_n "(cached) " >&6
7450 else
7451 lt_cv_ld_reload_flag='-r'
7452 fi
7453 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
7454 $as_echo "$lt_cv_ld_reload_flag" >&6; }
7455 reload_flag=$lt_cv_ld_reload_flag
7456 case $reload_flag in
7457 "" | " "*) ;;
7458 *) reload_flag=" $reload_flag" ;;
7459 esac
7460 reload_cmds='$LD$reload_flag -o $output$reload_objs'
7461 case $host_os in
7462 cygwin* | mingw* | pw32* | cegcc*)
7463 if test "$GCC" != yes; then
7464 reload_cmds=false
7465 fi
7466 ;;
7467 darwin*)
7468 if test "$GCC" = yes; then
7469 reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
7470 else
7471 reload_cmds='$LD$reload_flag -o $output$reload_objs'
7472 fi
7473 ;;
7474 esac
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484 if test -n "$ac_tool_prefix"; then
7485 # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
7486 set dummy ${ac_tool_prefix}objdump; ac_word=$2
7487 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
7488 $as_echo_n "checking for $ac_word... " >&6; }
7489 if ${ac_cv_prog_OBJDUMP+:} false; then :
7490 $as_echo_n "(cached) " >&6
7491 else
7492 if test -n "$OBJDUMP"; then
7493 ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
7494 else
7495 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7496 for as_dir in $PATH
7497 do
7498 IFS=$as_save_IFS
7499 test -z "$as_dir" && as_dir=.
7500 for ac_exec_ext in '' $ac_executable_extensions; do
7501 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
7502 ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
7503 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
7504 break 2
7505 fi
7506 done
7507 done
7508 IFS=$as_save_IFS
7509
7510 fi
7511 fi
7512 OBJDUMP=$ac_cv_prog_OBJDUMP
7513 if test -n "$OBJDUMP"; then
7514 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
7515 $as_echo "$OBJDUMP" >&6; }
7516 else
7517 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
7518 $as_echo "no" >&6; }
7519 fi
7520
7521
7522 fi
7523 if test -z "$ac_cv_prog_OBJDUMP"; then
7524 ac_ct_OBJDUMP=$OBJDUMP
7525 # Extract the first word of "objdump", so it can be a program name with args.
7526 set dummy objdump; ac_word=$2
7527 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
7528 $as_echo_n "checking for $ac_word... " >&6; }
7529 if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
7530 $as_echo_n "(cached) " >&6
7531 else
7532 if test -n "$ac_ct_OBJDUMP"; then
7533 ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
7534 else
7535 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7536 for as_dir in $PATH
7537 do
7538 IFS=$as_save_IFS
7539 test -z "$as_dir" && as_dir=.
7540 for ac_exec_ext in '' $ac_executable_extensions; do
7541 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
7542 ac_cv_prog_ac_ct_OBJDUMP="objdump"
7543 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
7544 break 2
7545 fi
7546 done
7547 done
7548 IFS=$as_save_IFS
7549
7550 fi
7551 fi
7552 ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
7553 if test -n "$ac_ct_OBJDUMP"; then
7554 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
7555 $as_echo "$ac_ct_OBJDUMP" >&6; }
7556 else
7557 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
7558 $as_echo "no" >&6; }
7559 fi
7560
7561 if test "x$ac_ct_OBJDUMP" = x; then
7562 OBJDUMP="false"
7563 else
7564 case $cross_compiling:$ac_tool_warned in
7565 yes:)
7566 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
7567 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
7568 ac_tool_warned=yes ;;
7569 esac
7570 OBJDUMP=$ac_ct_OBJDUMP
7571 fi
7572 else
7573 OBJDUMP="$ac_cv_prog_OBJDUMP"
7574 fi
7575
7576 test -z "$OBJDUMP" && OBJDUMP=objdump
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
7587 $as_echo_n "checking how to recognize dependent libraries... " >&6; }
7588 if ${lt_cv_deplibs_check_method+:} false; then :
7589 $as_echo_n "(cached) " >&6
7590 else
7591 lt_cv_file_magic_cmd='$MAGIC_CMD'
7592 lt_cv_file_magic_test_file=
7593 lt_cv_deplibs_check_method='unknown'
7594 # Need to set the preceding variable on all platforms that support
7595 # interlibrary dependencies.
7596 # 'none' -- dependencies not supported.
7597 # `unknown' -- same as none, but documents that we really don't know.
7598 # 'pass_all' -- all dependencies passed with no checks.
7599 # 'test_compile' -- check by making test program.
7600 # 'file_magic [[regex]]' -- check by looking for files in library path
7601 # which responds to the $file_magic_cmd with a given extended regex.
7602 # If you have `file' or equivalent on your system and you're not sure
7603 # whether `pass_all' will *always* work, you probably want this one.
7604
7605 case $host_os in
7606 aix[4-9]*)
7607 lt_cv_deplibs_check_method=pass_all
7608 ;;
7609
7610 beos*)
7611 lt_cv_deplibs_check_method=pass_all
7612 ;;
7613
7614 bsdi[45]*)
7615 lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
7616 lt_cv_file_magic_cmd='/usr/bin/file -L'
7617 lt_cv_file_magic_test_file=/shlib/libc.so
7618 ;;
7619
7620 cygwin*)
7621 # func_win32_libid is a shell function defined in ltmain.sh
7622 lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
7623 lt_cv_file_magic_cmd='func_win32_libid'
7624 ;;
7625
7626 mingw* | pw32*)
7627 # Base MSYS/MinGW do not provide the 'file' command needed by
7628 # func_win32_libid shell function, so use a weaker test based on 'objdump',
7629 # unless we find 'file', for example because we are cross-compiling.
7630 # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
7631 if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
7632 lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
7633 lt_cv_file_magic_cmd='func_win32_libid'
7634 else
7635 # Keep this pattern in sync with the one in func_win32_libid.
7636 lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
7637 lt_cv_file_magic_cmd='$OBJDUMP -f'
7638 fi
7639 ;;
7640
7641 cegcc*)
7642 # use the weaker test based on 'objdump'. See mingw*.
7643 lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
7644 lt_cv_file_magic_cmd='$OBJDUMP -f'
7645 ;;
7646
7647 darwin* | rhapsody*)
7648 lt_cv_deplibs_check_method=pass_all
7649 ;;
7650
7651 freebsd* | dragonfly*)
7652 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
7653 case $host_cpu in
7654 i*86 )
7655 # Not sure whether the presence of OpenBSD here was a mistake.
7656 # Let's accept both of them until this is cleared up.
7657 lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
7658 lt_cv_file_magic_cmd=/usr/bin/file
7659 lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
7660 ;;
7661 esac
7662 else
7663 lt_cv_deplibs_check_method=pass_all
7664 fi
7665 ;;
7666
7667 haiku*)
7668 lt_cv_deplibs_check_method=pass_all
7669 ;;
7670
7671 hpux10.20* | hpux11*)
7672 lt_cv_file_magic_cmd=/usr/bin/file
7673 case $host_cpu in
7674 ia64*)
7675 lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
7676 lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
7677 ;;
7678 hppa*64*)
7679 lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
7680 lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
7681 ;;
7682 *)
7683 lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
7684 lt_cv_file_magic_test_file=/usr/lib/libc.sl
7685 ;;
7686 esac
7687 ;;
7688
7689 interix[3-9]*)
7690 # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
7691 lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
7692 ;;
7693
7694 irix5* | irix6* | nonstopux*)
7695 case $LD in
7696 *-32|*"-32 ") libmagic=32-bit;;
7697 *-n32|*"-n32 ") libmagic=N32;;
7698 *-64|*"-64 ") libmagic=64-bit;;
7699 *) libmagic=never-match;;
7700 esac
7701 lt_cv_deplibs_check_method=pass_all
7702 ;;
7703
7704 # This must be glibc/ELF.
7705 linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
7706 lt_cv_deplibs_check_method=pass_all
7707 ;;
7708
7709 netbsd* | netbsdelf*-gnu)
7710 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
7711 lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
7712 else
7713 lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
7714 fi
7715 ;;
7716
7717 newos6*)
7718 lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
7719 lt_cv_file_magic_cmd=/usr/bin/file
7720 lt_cv_file_magic_test_file=/usr/lib/libnls.so
7721 ;;
7722
7723 *nto* | *qnx*)
7724 lt_cv_deplibs_check_method=pass_all
7725 ;;
7726
7727 openbsd*)
7728 if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
7729 lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
7730 else
7731 lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
7732 fi
7733 ;;
7734
7735 osf3* | osf4* | osf5*)
7736 lt_cv_deplibs_check_method=pass_all
7737 ;;
7738
7739 rdos*)
7740 lt_cv_deplibs_check_method=pass_all
7741 ;;
7742
7743 solaris*)
7744 lt_cv_deplibs_check_method=pass_all
7745 ;;
7746
7747 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
7748 lt_cv_deplibs_check_method=pass_all
7749 ;;
7750
7751 sysv4 | sysv4.3*)
7752 case $host_vendor in
7753 motorola)
7754 lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
7755 lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
7756 ;;
7757 ncr)
7758 lt_cv_deplibs_check_method=pass_all
7759 ;;
7760 sequent)
7761 lt_cv_file_magic_cmd='/bin/file'
7762 lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
7763 ;;
7764 sni)
7765 lt_cv_file_magic_cmd='/bin/file'
7766 lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
7767 lt_cv_file_magic_test_file=/lib/libc.so
7768 ;;
7769 siemens)
7770 lt_cv_deplibs_check_method=pass_all
7771 ;;
7772 pc)
7773 lt_cv_deplibs_check_method=pass_all
7774 ;;
7775 esac
7776 ;;
7777
7778 tpf*)
7779 lt_cv_deplibs_check_method=pass_all
7780 ;;
7781 esac
7782
7783 fi
7784 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
7785 $as_echo "$lt_cv_deplibs_check_method" >&6; }
7786
7787 file_magic_glob=
7788 want_nocaseglob=no
7789 if test "$build" = "$host"; then
7790 case $host_os in
7791 mingw* | pw32*)
7792 if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
7793 want_nocaseglob=yes
7794 else
7795 file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
7796 fi
7797 ;;
7798 esac
7799 fi
7800
7801 file_magic_cmd=$lt_cv_file_magic_cmd
7802 deplibs_check_method=$lt_cv_deplibs_check_method
7803 test -z "$deplibs_check_method" && deplibs_check_method=unknown
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826 if test -n "$ac_tool_prefix"; then
7827 # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
7828 set dummy ${ac_tool_prefix}dlltool; ac_word=$2
7829 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
7830 $as_echo_n "checking for $ac_word... " >&6; }
7831 if ${ac_cv_prog_DLLTOOL+:} false; then :
7832 $as_echo_n "(cached) " >&6
7833 else
7834 if test -n "$DLLTOOL"; then
7835 ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
7836 else
7837 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7838 for as_dir in $PATH
7839 do
7840 IFS=$as_save_IFS
7841 test -z "$as_dir" && as_dir=.
7842 for ac_exec_ext in '' $ac_executable_extensions; do
7843 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
7844 ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
7845 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
7846 break 2
7847 fi
7848 done
7849 done
7850 IFS=$as_save_IFS
7851
7852 fi
7853 fi
7854 DLLTOOL=$ac_cv_prog_DLLTOOL
7855 if test -n "$DLLTOOL"; then
7856 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
7857 $as_echo "$DLLTOOL" >&6; }
7858 else
7859 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
7860 $as_echo "no" >&6; }
7861 fi
7862
7863
7864 fi
7865 if test -z "$ac_cv_prog_DLLTOOL"; then
7866 ac_ct_DLLTOOL=$DLLTOOL
7867 # Extract the first word of "dlltool", so it can be a program name with args.
7868 set dummy dlltool; ac_word=$2
7869 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
7870 $as_echo_n "checking for $ac_word... " >&6; }
7871 if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
7872 $as_echo_n "(cached) " >&6
7873 else
7874 if test -n "$ac_ct_DLLTOOL"; then
7875 ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
7876 else
7877 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7878 for as_dir in $PATH
7879 do
7880 IFS=$as_save_IFS
7881 test -z "$as_dir" && as_dir=.
7882 for ac_exec_ext in '' $ac_executable_extensions; do
7883 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
7884 ac_cv_prog_ac_ct_DLLTOOL="dlltool"
7885 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
7886 break 2
7887 fi
7888 done
7889 done
7890 IFS=$as_save_IFS
7891
7892 fi
7893 fi
7894 ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
7895 if test -n "$ac_ct_DLLTOOL"; then
7896 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
7897 $as_echo "$ac_ct_DLLTOOL" >&6; }
7898 else
7899 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
7900 $as_echo "no" >&6; }
7901 fi
7902
7903 if test "x$ac_ct_DLLTOOL" = x; then
7904 DLLTOOL="false"
7905 else
7906 case $cross_compiling:$ac_tool_warned in
7907 yes:)
7908 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
7909 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
7910 ac_tool_warned=yes ;;
7911 esac
7912 DLLTOOL=$ac_ct_DLLTOOL
7913 fi
7914 else
7915 DLLTOOL="$ac_cv_prog_DLLTOOL"
7916 fi
7917
7918 test -z "$DLLTOOL" && DLLTOOL=dlltool
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
7930 $as_echo_n "checking how to associate runtime and link libraries... " >&6; }
7931 if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
7932 $as_echo_n "(cached) " >&6
7933 else
7934 lt_cv_sharedlib_from_linklib_cmd='unknown'
7935
7936 case $host_os in
7937 cygwin* | mingw* | pw32* | cegcc*)
7938 # two different shell functions defined in ltmain.sh
7939 # decide which to use based on capabilities of $DLLTOOL
7940 case `$DLLTOOL --help 2>&1` in
7941 *--identify-strict*)
7942 lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
7943 ;;
7944 *)
7945 lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
7946 ;;
7947 esac
7948 ;;
7949 *)
7950 # fallback: assume linklib IS sharedlib
7951 lt_cv_sharedlib_from_linklib_cmd="$ECHO"
7952 ;;
7953 esac
7954
7955 fi
7956 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
7957 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
7958 sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
7959 test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
7960
7961
7962
7963
7964
7965
7966
7967 if test -n "$ac_tool_prefix"; then
7968 for ac_prog in ar
7969 do
7970 # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
7971 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
7972 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
7973 $as_echo_n "checking for $ac_word... " >&6; }
7974 if ${ac_cv_prog_AR+:} false; then :
7975 $as_echo_n "(cached) " >&6
7976 else
7977 if test -n "$AR"; then
7978 ac_cv_prog_AR="$AR" # Let the user override the test.
7979 else
7980 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7981 for as_dir in $PATH
7982 do
7983 IFS=$as_save_IFS
7984 test -z "$as_dir" && as_dir=.
7985 for ac_exec_ext in '' $ac_executable_extensions; do
7986 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
7987 ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
7988 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
7989 break 2
7990 fi
7991 done
7992 done
7993 IFS=$as_save_IFS
7994
7995 fi
7996 fi
7997 AR=$ac_cv_prog_AR
7998 if test -n "$AR"; then
7999 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
8000 $as_echo "$AR" >&6; }
8001 else
8002 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
8003 $as_echo "no" >&6; }
8004 fi
8005
8006
8007 test -n "$AR" && break
8008 done
8009 fi
8010 if test -z "$AR"; then
8011 ac_ct_AR=$AR
8012 for ac_prog in ar
8013 do
8014 # Extract the first word of "$ac_prog", so it can be a program name with args.
8015 set dummy $ac_prog; ac_word=$2
8016 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8017 $as_echo_n "checking for $ac_word... " >&6; }
8018 if ${ac_cv_prog_ac_ct_AR+:} false; then :
8019 $as_echo_n "(cached) " >&6
8020 else
8021 if test -n "$ac_ct_AR"; then
8022 ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
8023 else
8024 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8025 for as_dir in $PATH
8026 do
8027 IFS=$as_save_IFS
8028 test -z "$as_dir" && as_dir=.
8029 for ac_exec_ext in '' $ac_executable_extensions; do
8030 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8031 ac_cv_prog_ac_ct_AR="$ac_prog"
8032 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
8033 break 2
8034 fi
8035 done
8036 done
8037 IFS=$as_save_IFS
8038
8039 fi
8040 fi
8041 ac_ct_AR=$ac_cv_prog_ac_ct_AR
8042 if test -n "$ac_ct_AR"; then
8043 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
8044 $as_echo "$ac_ct_AR" >&6; }
8045 else
8046 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
8047 $as_echo "no" >&6; }
8048 fi
8049
8050
8051 test -n "$ac_ct_AR" && break
8052 done
8053
8054 if test "x$ac_ct_AR" = x; then
8055 AR="false"
8056 else
8057 case $cross_compiling:$ac_tool_warned in
8058 yes:)
8059 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
8060 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
8061 ac_tool_warned=yes ;;
8062 esac
8063 AR=$ac_ct_AR
8064 fi
8065 fi
8066
8067 : ${AR=ar}
8068 : ${AR_FLAGS=cru}
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
8081 $as_echo_n "checking for archiver @FILE support... " >&6; }
8082 if ${lt_cv_ar_at_file+:} false; then :
8083 $as_echo_n "(cached) " >&6
8084 else
8085 lt_cv_ar_at_file=no
8086 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
8087 /* end confdefs.h. */
8088
8089 int
8090 main ()
8091 {
8092
8093 ;
8094 return 0;
8095 }
8096 _ACEOF
8097 if ac_fn_cxx_try_compile "$LINENO"; then :
8098 echo conftest.$ac_objext > conftest.lst
8099 lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
8100 { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
8101 (eval $lt_ar_try) 2>&5
8102 ac_status=$?
8103 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
8104 test $ac_status = 0; }
8105 if test "$ac_status" -eq 0; then
8106 # Ensure the archiver fails upon bogus file names.
8107 rm -f conftest.$ac_objext libconftest.a
8108 { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
8109 (eval $lt_ar_try) 2>&5
8110 ac_status=$?
8111 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
8112 test $ac_status = 0; }
8113 if test "$ac_status" -ne 0; then
8114 lt_cv_ar_at_file=@
8115 fi
8116 fi
8117 rm -f conftest.* libconftest.a
8118
8119 fi
8120 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
8121
8122 fi
8123 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
8124 $as_echo "$lt_cv_ar_at_file" >&6; }
8125
8126 if test "x$lt_cv_ar_at_file" = xno; then
8127 archiver_list_spec=
8128 else
8129 archiver_list_spec=$lt_cv_ar_at_file
8130 fi
8131
8132
8133
8134
8135
8136
8137
8138 if test -n "$ac_tool_prefix"; then
8139 # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
8140 set dummy ${ac_tool_prefix}strip; ac_word=$2
8141 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8142 $as_echo_n "checking for $ac_word... " >&6; }
8143 if ${ac_cv_prog_STRIP+:} false; then :
8144 $as_echo_n "(cached) " >&6
8145 else
8146 if test -n "$STRIP"; then
8147 ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
8148 else
8149 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8150 for as_dir in $PATH
8151 do
8152 IFS=$as_save_IFS
8153 test -z "$as_dir" && as_dir=.
8154 for ac_exec_ext in '' $ac_executable_extensions; do
8155 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8156 ac_cv_prog_STRIP="${ac_tool_prefix}strip"
8157 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
8158 break 2
8159 fi
8160 done
8161 done
8162 IFS=$as_save_IFS
8163
8164 fi
8165 fi
8166 STRIP=$ac_cv_prog_STRIP
8167 if test -n "$STRIP"; then
8168 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
8169 $as_echo "$STRIP" >&6; }
8170 else
8171 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
8172 $as_echo "no" >&6; }
8173 fi
8174
8175
8176 fi
8177 if test -z "$ac_cv_prog_STRIP"; then
8178 ac_ct_STRIP=$STRIP
8179 # Extract the first word of "strip", so it can be a program name with args.
8180 set dummy strip; ac_word=$2
8181 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8182 $as_echo_n "checking for $ac_word... " >&6; }
8183 if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
8184 $as_echo_n "(cached) " >&6
8185 else
8186 if test -n "$ac_ct_STRIP"; then
8187 ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
8188 else
8189 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8190 for as_dir in $PATH
8191 do
8192 IFS=$as_save_IFS
8193 test -z "$as_dir" && as_dir=.
8194 for ac_exec_ext in '' $ac_executable_extensions; do
8195 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8196 ac_cv_prog_ac_ct_STRIP="strip"
8197 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
8198 break 2
8199 fi
8200 done
8201 done
8202 IFS=$as_save_IFS
8203
8204 fi
8205 fi
8206 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
8207 if test -n "$ac_ct_STRIP"; then
8208 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
8209 $as_echo "$ac_ct_STRIP" >&6; }
8210 else
8211 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
8212 $as_echo "no" >&6; }
8213 fi
8214
8215 if test "x$ac_ct_STRIP" = x; then
8216 STRIP=":"
8217 else
8218 case $cross_compiling:$ac_tool_warned in
8219 yes:)
8220 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
8221 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
8222 ac_tool_warned=yes ;;
8223 esac
8224 STRIP=$ac_ct_STRIP
8225 fi
8226 else
8227 STRIP="$ac_cv_prog_STRIP"
8228 fi
8229
8230 test -z "$STRIP" && STRIP=:
8231
8232
8233
8234
8235
8236
8237 if test -n "$ac_tool_prefix"; then
8238 # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
8239 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
8240 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8241 $as_echo_n "checking for $ac_word... " >&6; }
8242 if ${ac_cv_prog_RANLIB+:} false; then :
8243 $as_echo_n "(cached) " >&6
8244 else
8245 if test -n "$RANLIB"; then
8246 ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
8247 else
8248 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8249 for as_dir in $PATH
8250 do
8251 IFS=$as_save_IFS
8252 test -z "$as_dir" && as_dir=.
8253 for ac_exec_ext in '' $ac_executable_extensions; do
8254 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8255 ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
8256 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
8257 break 2
8258 fi
8259 done
8260 done
8261 IFS=$as_save_IFS
8262
8263 fi
8264 fi
8265 RANLIB=$ac_cv_prog_RANLIB
8266 if test -n "$RANLIB"; then
8267 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
8268 $as_echo "$RANLIB" >&6; }
8269 else
8270 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
8271 $as_echo "no" >&6; }
8272 fi
8273
8274
8275 fi
8276 if test -z "$ac_cv_prog_RANLIB"; then
8277 ac_ct_RANLIB=$RANLIB
8278 # Extract the first word of "ranlib", so it can be a program name with args.
8279 set dummy ranlib; ac_word=$2
8280 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8281 $as_echo_n "checking for $ac_word... " >&6; }
8282 if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
8283 $as_echo_n "(cached) " >&6
8284 else
8285 if test -n "$ac_ct_RANLIB"; then
8286 ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
8287 else
8288 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8289 for as_dir in $PATH
8290 do
8291 IFS=$as_save_IFS
8292 test -z "$as_dir" && as_dir=.
8293 for ac_exec_ext in '' $ac_executable_extensions; do
8294 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8295 ac_cv_prog_ac_ct_RANLIB="ranlib"
8296 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
8297 break 2
8298 fi
8299 done
8300 done
8301 IFS=$as_save_IFS
8302
8303 fi
8304 fi
8305 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
8306 if test -n "$ac_ct_RANLIB"; then
8307 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
8308 $as_echo "$ac_ct_RANLIB" >&6; }
8309 else
8310 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
8311 $as_echo "no" >&6; }
8312 fi
8313
8314 if test "x$ac_ct_RANLIB" = x; then
8315 RANLIB=":"
8316 else
8317 case $cross_compiling:$ac_tool_warned in
8318 yes:)
8319 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
8320 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
8321 ac_tool_warned=yes ;;
8322 esac
8323 RANLIB=$ac_ct_RANLIB
8324 fi
8325 else
8326 RANLIB="$ac_cv_prog_RANLIB"
8327 fi
8328
8329 test -z "$RANLIB" && RANLIB=:
8330
8331
8332
8333
8334
8335
8336 # Determine commands to create old-style static archives.
8337 old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
8338 old_postinstall_cmds='chmod 644 $oldlib'
8339 old_postuninstall_cmds=
8340
8341 if test -n "$RANLIB"; then
8342 case $host_os in
8343 openbsd*)
8344 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
8345 ;;
8346 *)
8347 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
8348 ;;
8349 esac
8350 old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
8351 fi
8352
8353 case $host_os in
8354 darwin*)
8355 lock_old_archive_extraction=yes ;;
8356 *)
8357 lock_old_archive_extraction=no ;;
8358 esac
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398 # If no C compiler was specified, use CC.
8399 LTCC=${LTCC-"$CC"}
8400
8401 # If no C compiler flags were specified, use CFLAGS.
8402 LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
8403
8404 # Allow CC to be a program name with arguments.
8405 compiler=$CC
8406
8407
8408 # Check for command to grab the raw symbol name followed by C symbol from nm.
8409 { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
8410 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
8411 if ${lt_cv_sys_global_symbol_pipe+:} false; then :
8412 $as_echo_n "(cached) " >&6
8413 else
8414
8415 # These are sane defaults that work on at least a few old systems.
8416 # [They come from Ultrix. What could be older than Ultrix?!! ;)]
8417
8418 # Character class describing NM global symbol codes.
8419 symcode='[BCDEGRST]'
8420
8421 # Regexp to match symbols that can be accessed directly from C.
8422 sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
8423
8424 # Define system-specific variables.
8425 case $host_os in
8426 aix*)
8427 symcode='[BCDT]'
8428 ;;
8429 cygwin* | mingw* | pw32* | cegcc*)
8430 symcode='[ABCDGISTW]'
8431 ;;
8432 hpux*)
8433 if test "$host_cpu" = ia64; then
8434 symcode='[ABCDEGRST]'
8435 fi
8436 ;;
8437 irix* | nonstopux*)
8438 symcode='[BCDEGRST]'
8439 ;;
8440 osf*)
8441 symcode='[BCDEGQRST]'
8442 ;;
8443 solaris*)
8444 symcode='[BDRT]'
8445 ;;
8446 sco3.2v5*)
8447 symcode='[DT]'
8448 ;;
8449 sysv4.2uw2*)
8450 symcode='[DT]'
8451 ;;
8452 sysv5* | sco5v6* | unixware* | OpenUNIX*)
8453 symcode='[ABDT]'
8454 ;;
8455 sysv4)
8456 symcode='[DFNSTU]'
8457 ;;
8458 esac
8459
8460 # If we're using GNU nm, then use its standard symbol codes.
8461 case `$NM -V 2>&1` in
8462 *GNU* | *'with BFD'*)
8463 symcode='[ABCDGIRSTW]' ;;
8464 esac
8465
8466 # Transform an extracted symbol line into a proper C declaration.
8467 # Some systems (esp. on ia64) link data and code symbols differently,
8468 # so use this general approach.
8469 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
8470
8471 # Transform an extracted symbol line into symbol name and symbol address
8472 lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
8473 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
8474
8475 # Handle CRLF in mingw tool chain
8476 opt_cr=
8477 case $build_os in
8478 mingw*)
8479 opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
8480 ;;
8481 esac
8482
8483 # Try without a prefix underscore, then with it.
8484 for ac_symprfx in "" "_"; do
8485
8486 # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
8487 symxfrm="\\1 $ac_symprfx\\2 \\2"
8488
8489 # Write the raw and C identifiers.
8490 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
8491 # Fake it for dumpbin and say T for any non-static function
8492 # and D for any global variable.
8493 # Also find C++ and __fastcall symbols from MSVC++,
8494 # which start with @ or ?.
8495 lt_cv_sys_global_symbol_pipe="$AWK '"\
8496 " {last_section=section; section=\$ 3};"\
8497 " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
8498 " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
8499 " \$ 0!~/External *\|/{next};"\
8500 " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
8501 " {if(hide[section]) next};"\
8502 " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
8503 " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
8504 " s[1]~/^[@?]/{print s[1], s[1]; next};"\
8505 " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
8506 " ' prfx=^$ac_symprfx"
8507 else
8508 lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
8509 fi
8510 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
8511
8512 # Check to see that the pipe works correctly.
8513 pipe_works=no
8514
8515 rm -f conftest*
8516 cat > conftest.$ac_ext <<_LT_EOF
8517 #ifdef __cplusplus
8518 extern "C" {
8519 #endif
8520 char nm_test_var;
8521 void nm_test_func(void);
8522 void nm_test_func(void){}
8523 #ifdef __cplusplus
8524 }
8525 #endif
8526 int main(){nm_test_var='a';nm_test_func();return(0);}
8527 _LT_EOF
8528
8529 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
8530 (eval $ac_compile) 2>&5
8531 ac_status=$?
8532 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
8533 test $ac_status = 0; }; then
8534 # Now try to grab the symbols.
8535 nlist=conftest.nm
8536 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
8537 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
8538 ac_status=$?
8539 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
8540 test $ac_status = 0; } && test -s "$nlist"; then
8541 # Try sorting and uniquifying the output.
8542 if sort "$nlist" | uniq > "$nlist"T; then
8543 mv -f "$nlist"T "$nlist"
8544 else
8545 rm -f "$nlist"T
8546 fi
8547
8548 # Make sure that we snagged all the symbols we need.
8549 if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
8550 if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
8551 cat <<_LT_EOF > conftest.$ac_ext
8552 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
8553 #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
8554 /* DATA imports from DLLs on WIN32 con't be const, because runtime
8555 relocations are performed -- see ld's documentation on pseudo-relocs. */
8556 # define LT_DLSYM_CONST
8557 #elif defined(__osf__)
8558 /* This system does not cope well with relocations in const data. */
8559 # define LT_DLSYM_CONST
8560 #else
8561 # define LT_DLSYM_CONST const
8562 #endif
8563
8564 #ifdef __cplusplus
8565 extern "C" {
8566 #endif
8567
8568 _LT_EOF
8569 # Now generate the symbol file.
8570 eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
8571
8572 cat <<_LT_EOF >> conftest.$ac_ext
8573
8574 /* The mapping between symbol names and symbols. */
8575 LT_DLSYM_CONST struct {
8576 const char *name;
8577 void *address;
8578 }
8579 lt__PROGRAM__LTX_preloaded_symbols[] =
8580 {
8581 { "@PROGRAM@", (void *) 0 },
8582 _LT_EOF
8583 $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
8584 cat <<\_LT_EOF >> conftest.$ac_ext
8585 {0, (void *) 0}
8586 };
8587
8588 /* This works around a problem in FreeBSD linker */
8589 #ifdef FREEBSD_WORKAROUND
8590 static const void *lt_preloaded_setup() {
8591 return lt__PROGRAM__LTX_preloaded_symbols;
8592 }
8593 #endif
8594
8595 #ifdef __cplusplus
8596 }
8597 #endif
8598 _LT_EOF
8599 # Now try linking the two files.
8600 mv conftest.$ac_objext conftstm.$ac_objext
8601 lt_globsym_save_LIBS=$LIBS
8602 lt_globsym_save_CFLAGS=$CFLAGS
8603 LIBS="conftstm.$ac_objext"
8604 CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
8605 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
8606 (eval $ac_link) 2>&5
8607 ac_status=$?
8608 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
8609 test $ac_status = 0; } && test -s conftest${ac_exeext}; then
8610 pipe_works=yes
8611 fi
8612 LIBS=$lt_globsym_save_LIBS
8613 CFLAGS=$lt_globsym_save_CFLAGS
8614 else
8615 echo "cannot find nm_test_func in $nlist" >&5
8616 fi
8617 else
8618 echo "cannot find nm_test_var in $nlist" >&5
8619 fi
8620 else
8621 echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
8622 fi
8623 else
8624 echo "$progname: failed program was:" >&5
8625 cat conftest.$ac_ext >&5
8626 fi
8627 rm -rf conftest* conftst*
8628
8629 # Do not use the global_symbol_pipe unless it works.
8630 if test "$pipe_works" = yes; then
8631 break
8632 else
8633 lt_cv_sys_global_symbol_pipe=
8634 fi
8635 done
8636
8637 fi
8638
8639 if test -z "$lt_cv_sys_global_symbol_pipe"; then
8640 lt_cv_sys_global_symbol_to_cdecl=
8641 fi
8642 if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
8643 { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
8644 $as_echo "failed" >&6; }
8645 else
8646 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
8647 $as_echo "ok" >&6; }
8648 fi
8649
8650 # Response file support.
8651 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
8652 nm_file_list_spec='@'
8653 elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
8654 nm_file_list_spec='@'
8655 fi
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
8684 $as_echo_n "checking for sysroot... " >&6; }
8685
8686 # Check whether --with-sysroot was given.
8687 if test "${with_sysroot+set}" = set; then :
8688 withval=$with_sysroot;
8689 else
8690 with_sysroot=no
8691 fi
8692
8693
8694 lt_sysroot=
8695 case ${with_sysroot} in #(
8696 yes)
8697 if test "$GCC" = yes; then
8698 lt_sysroot=`$CC --print-sysroot 2>/dev/null`
8699 fi
8700 ;; #(
8701 /*)
8702 lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
8703 ;; #(
8704 no|'')
8705 ;; #(
8706 *)
8707 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
8708 $as_echo "${with_sysroot}" >&6; }
8709 as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
8710 ;;
8711 esac
8712
8713 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
8714 $as_echo "${lt_sysroot:-no}" >&6; }
8715
8716
8717
8718
8719
8720 # Check whether --enable-libtool-lock was given.
8721 if test "${enable_libtool_lock+set}" = set; then :
8722 enableval=$enable_libtool_lock;
8723 fi
8724
8725 test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
8726
8727 # Some flags need to be propagated to the compiler or linker for good
8728 # libtool support.
8729 case $host in
8730 ia64-*-hpux*)
8731 # Find out which ABI we are using.
8732 echo 'int i;' > conftest.$ac_ext
8733 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
8734 (eval $ac_compile) 2>&5
8735 ac_status=$?
8736 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
8737 test $ac_status = 0; }; then
8738 case `/usr/bin/file conftest.$ac_objext` in
8739 *ELF-32*)
8740 HPUX_IA64_MODE="32"
8741 ;;
8742 *ELF-64*)
8743 HPUX_IA64_MODE="64"
8744 ;;
8745 esac
8746 fi
8747 rm -rf conftest*
8748 ;;
8749 *-*-irix6*)
8750 # Find out which ABI we are using.
8751 echo '#line '$LINENO' "configure"' > conftest.$ac_ext
8752 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
8753 (eval $ac_compile) 2>&5
8754 ac_status=$?
8755 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
8756 test $ac_status = 0; }; then
8757 if test "$lt_cv_prog_gnu_ld" = yes; then
8758 case `/usr/bin/file conftest.$ac_objext` in
8759 *32-bit*)
8760 LD="${LD-ld} -melf32bsmip"
8761 ;;
8762 *N32*)
8763 LD="${LD-ld} -melf32bmipn32"
8764 ;;
8765 *64-bit*)
8766 LD="${LD-ld} -melf64bmip"
8767 ;;
8768 esac
8769 else
8770 case `/usr/bin/file conftest.$ac_objext` in
8771 *32-bit*)
8772 LD="${LD-ld} -32"
8773 ;;
8774 *N32*)
8775 LD="${LD-ld} -n32"
8776 ;;
8777 *64-bit*)
8778 LD="${LD-ld} -64"
8779 ;;
8780 esac
8781 fi
8782 fi
8783 rm -rf conftest*
8784 ;;
8785
8786 x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
8787 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
8788 # Find out which ABI we are using.
8789 echo 'int i;' > conftest.$ac_ext
8790 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
8791 (eval $ac_compile) 2>&5
8792 ac_status=$?
8793 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
8794 test $ac_status = 0; }; then
8795 case `/usr/bin/file conftest.o` in
8796 *32-bit*)
8797 case $host in
8798 x86_64-*kfreebsd*-gnu)
8799 LD="${LD-ld} -m elf_i386_fbsd"
8800 ;;
8801 x86_64-*linux*)
8802 case `/usr/bin/file conftest.o` in
8803 *x86-64*)
8804 LD="${LD-ld} -m elf32_x86_64"
8805 ;;
8806 *)
8807 LD="${LD-ld} -m elf_i386"
8808 ;;
8809 esac
8810 ;;
8811 powerpc64le-*)
8812 LD="${LD-ld} -m elf32lppclinux"
8813 ;;
8814 powerpc64-*)
8815 LD="${LD-ld} -m elf32ppclinux"
8816 ;;
8817 s390x-*linux*)
8818 LD="${LD-ld} -m elf_s390"
8819 ;;
8820 sparc64-*linux*)
8821 LD="${LD-ld} -m elf32_sparc"
8822 ;;
8823 esac
8824 ;;
8825 *64-bit*)
8826 case $host in
8827 x86_64-*kfreebsd*-gnu)
8828 LD="${LD-ld} -m elf_x86_64_fbsd"
8829 ;;
8830 x86_64-*linux*)
8831 LD="${LD-ld} -m elf_x86_64"
8832 ;;
8833 powerpcle-*)
8834 LD="${LD-ld} -m elf64lppc"
8835 ;;
8836 powerpc-*)
8837 LD="${LD-ld} -m elf64ppc"
8838 ;;
8839 s390*-*linux*|s390*-*tpf*)
8840 LD="${LD-ld} -m elf64_s390"
8841 ;;
8842 sparc*-*linux*)
8843 LD="${LD-ld} -m elf64_sparc"
8844 ;;
8845 esac
8846 ;;
8847 esac
8848 fi
8849 rm -rf conftest*
8850 ;;
8851
8852 *-*-sco3.2v5*)
8853 # On SCO OpenServer 5, we need -belf to get full-featured binaries.
8854 SAVE_CFLAGS="$CFLAGS"
8855 CFLAGS="$CFLAGS -belf"
8856 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
8857 $as_echo_n "checking whether the C compiler needs -belf... " >&6; }
8858 if ${lt_cv_cc_needs_belf+:} false; then :
8859 $as_echo_n "(cached) " >&6
8860 else
8861 ac_ext=c
8862 ac_cpp='$CPP $CPPFLAGS'
8863 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
8864 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
8865 ac_compiler_gnu=$ac_cv_c_compiler_gnu
8866
8867 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
8868 /* end confdefs.h. */
8869
8870 int
8871 main ()
8872 {
8873
8874 ;
8875 return 0;
8876 }
8877 _ACEOF
8878 if ac_fn_c_try_link "$LINENO"; then :
8879 lt_cv_cc_needs_belf=yes
8880 else
8881 lt_cv_cc_needs_belf=no
8882 fi
8883 rm -f core conftest.err conftest.$ac_objext \
8884 conftest$ac_exeext conftest.$ac_ext
8885 ac_ext=c
8886 ac_cpp='$CPP $CPPFLAGS'
8887 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
8888 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
8889 ac_compiler_gnu=$ac_cv_c_compiler_gnu
8890
8891 fi
8892 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
8893 $as_echo "$lt_cv_cc_needs_belf" >&6; }
8894 if test x"$lt_cv_cc_needs_belf" != x"yes"; then
8895 # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
8896 CFLAGS="$SAVE_CFLAGS"
8897 fi
8898 ;;
8899 *-*solaris*)
8900 # Find out which ABI we are using.
8901 echo 'int i;' > conftest.$ac_ext
8902 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
8903 (eval $ac_compile) 2>&5
8904 ac_status=$?
8905 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
8906 test $ac_status = 0; }; then
8907 case `/usr/bin/file conftest.o` in
8908 *64-bit*)
8909 case $lt_cv_prog_gnu_ld in
8910 yes*)
8911 case $host in
8912 i?86-*-solaris*)
8913 LD="${LD-ld} -m elf_x86_64"
8914 ;;
8915 sparc*-*-solaris*)
8916 LD="${LD-ld} -m elf64_sparc"
8917 ;;
8918 esac
8919 # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
8920 if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
8921 LD="${LD-ld}_sol2"
8922 fi
8923 ;;
8924 *)
8925 if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
8926 LD="${LD-ld} -64"
8927 fi
8928 ;;
8929 esac
8930 ;;
8931 esac
8932 fi
8933 rm -rf conftest*
8934 ;;
8935 esac
8936
8937 need_locks="$enable_libtool_lock"
8938
8939 if test -n "$ac_tool_prefix"; then
8940 # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
8941 set dummy ${ac_tool_prefix}mt; ac_word=$2
8942 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8943 $as_echo_n "checking for $ac_word... " >&6; }
8944 if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
8945 $as_echo_n "(cached) " >&6
8946 else
8947 if test -n "$MANIFEST_TOOL"; then
8948 ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
8949 else
8950 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8951 for as_dir in $PATH
8952 do
8953 IFS=$as_save_IFS
8954 test -z "$as_dir" && as_dir=.
8955 for ac_exec_ext in '' $ac_executable_extensions; do
8956 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8957 ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
8958 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
8959 break 2
8960 fi
8961 done
8962 done
8963 IFS=$as_save_IFS
8964
8965 fi
8966 fi
8967 MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
8968 if test -n "$MANIFEST_TOOL"; then
8969 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
8970 $as_echo "$MANIFEST_TOOL" >&6; }
8971 else
8972 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
8973 $as_echo "no" >&6; }
8974 fi
8975
8976
8977 fi
8978 if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
8979 ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
8980 # Extract the first word of "mt", so it can be a program name with args.
8981 set dummy mt; ac_word=$2
8982 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8983 $as_echo_n "checking for $ac_word... " >&6; }
8984 if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
8985 $as_echo_n "(cached) " >&6
8986 else
8987 if test -n "$ac_ct_MANIFEST_TOOL"; then
8988 ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
8989 else
8990 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8991 for as_dir in $PATH
8992 do
8993 IFS=$as_save_IFS
8994 test -z "$as_dir" && as_dir=.
8995 for ac_exec_ext in '' $ac_executable_extensions; do
8996 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
8997 ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
8998 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
8999 break 2
9000 fi
9001 done
9002 done
9003 IFS=$as_save_IFS
9004
9005 fi
9006 fi
9007 ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
9008 if test -n "$ac_ct_MANIFEST_TOOL"; then
9009 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
9010 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
9011 else
9012 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9013 $as_echo "no" >&6; }
9014 fi
9015
9016 if test "x$ac_ct_MANIFEST_TOOL" = x; then
9017 MANIFEST_TOOL=":"
9018 else
9019 case $cross_compiling:$ac_tool_warned in
9020 yes:)
9021 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
9022 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
9023 ac_tool_warned=yes ;;
9024 esac
9025 MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
9026 fi
9027 else
9028 MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
9029 fi
9030
9031 test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
9032 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
9033 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
9034 if ${lt_cv_path_mainfest_tool+:} false; then :
9035 $as_echo_n "(cached) " >&6
9036 else
9037 lt_cv_path_mainfest_tool=no
9038 echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
9039 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
9040 cat conftest.err >&5
9041 if $GREP 'Manifest Tool' conftest.out > /dev/null; then
9042 lt_cv_path_mainfest_tool=yes
9043 fi
9044 rm -f conftest*
9045 fi
9046 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
9047 $as_echo "$lt_cv_path_mainfest_tool" >&6; }
9048 if test "x$lt_cv_path_mainfest_tool" != xyes; then
9049 MANIFEST_TOOL=:
9050 fi
9051
9052
9053
9054
9055
9056
9057 case $host_os in
9058 rhapsody* | darwin*)
9059 if test -n "$ac_tool_prefix"; then
9060 # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
9061 set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
9062 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9063 $as_echo_n "checking for $ac_word... " >&6; }
9064 if ${ac_cv_prog_DSYMUTIL+:} false; then :
9065 $as_echo_n "(cached) " >&6
9066 else
9067 if test -n "$DSYMUTIL"; then
9068 ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
9069 else
9070 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9071 for as_dir in $PATH
9072 do
9073 IFS=$as_save_IFS
9074 test -z "$as_dir" && as_dir=.
9075 for ac_exec_ext in '' $ac_executable_extensions; do
9076 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9077 ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
9078 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
9079 break 2
9080 fi
9081 done
9082 done
9083 IFS=$as_save_IFS
9084
9085 fi
9086 fi
9087 DSYMUTIL=$ac_cv_prog_DSYMUTIL
9088 if test -n "$DSYMUTIL"; then
9089 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
9090 $as_echo "$DSYMUTIL" >&6; }
9091 else
9092 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9093 $as_echo "no" >&6; }
9094 fi
9095
9096
9097 fi
9098 if test -z "$ac_cv_prog_DSYMUTIL"; then
9099 ac_ct_DSYMUTIL=$DSYMUTIL
9100 # Extract the first word of "dsymutil", so it can be a program name with args.
9101 set dummy dsymutil; ac_word=$2
9102 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9103 $as_echo_n "checking for $ac_word... " >&6; }
9104 if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
9105 $as_echo_n "(cached) " >&6
9106 else
9107 if test -n "$ac_ct_DSYMUTIL"; then
9108 ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
9109 else
9110 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9111 for as_dir in $PATH
9112 do
9113 IFS=$as_save_IFS
9114 test -z "$as_dir" && as_dir=.
9115 for ac_exec_ext in '' $ac_executable_extensions; do
9116 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9117 ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
9118 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
9119 break 2
9120 fi
9121 done
9122 done
9123 IFS=$as_save_IFS
9124
9125 fi
9126 fi
9127 ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
9128 if test -n "$ac_ct_DSYMUTIL"; then
9129 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
9130 $as_echo "$ac_ct_DSYMUTIL" >&6; }
9131 else
9132 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9133 $as_echo "no" >&6; }
9134 fi
9135
9136 if test "x$ac_ct_DSYMUTIL" = x; then
9137 DSYMUTIL=":"
9138 else
9139 case $cross_compiling:$ac_tool_warned in
9140 yes:)
9141 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
9142 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
9143 ac_tool_warned=yes ;;
9144 esac
9145 DSYMUTIL=$ac_ct_DSYMUTIL
9146 fi
9147 else
9148 DSYMUTIL="$ac_cv_prog_DSYMUTIL"
9149 fi
9150
9151 if test -n "$ac_tool_prefix"; then
9152 # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
9153 set dummy ${ac_tool_prefix}nmedit; ac_word=$2
9154 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9155 $as_echo_n "checking for $ac_word... " >&6; }
9156 if ${ac_cv_prog_NMEDIT+:} false; then :
9157 $as_echo_n "(cached) " >&6
9158 else
9159 if test -n "$NMEDIT"; then
9160 ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
9161 else
9162 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9163 for as_dir in $PATH
9164 do
9165 IFS=$as_save_IFS
9166 test -z "$as_dir" && as_dir=.
9167 for ac_exec_ext in '' $ac_executable_extensions; do
9168 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9169 ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
9170 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
9171 break 2
9172 fi
9173 done
9174 done
9175 IFS=$as_save_IFS
9176
9177 fi
9178 fi
9179 NMEDIT=$ac_cv_prog_NMEDIT
9180 if test -n "$NMEDIT"; then
9181 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
9182 $as_echo "$NMEDIT" >&6; }
9183 else
9184 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9185 $as_echo "no" >&6; }
9186 fi
9187
9188
9189 fi
9190 if test -z "$ac_cv_prog_NMEDIT"; then
9191 ac_ct_NMEDIT=$NMEDIT
9192 # Extract the first word of "nmedit", so it can be a program name with args.
9193 set dummy nmedit; ac_word=$2
9194 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9195 $as_echo_n "checking for $ac_word... " >&6; }
9196 if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
9197 $as_echo_n "(cached) " >&6
9198 else
9199 if test -n "$ac_ct_NMEDIT"; then
9200 ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
9201 else
9202 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9203 for as_dir in $PATH
9204 do
9205 IFS=$as_save_IFS
9206 test -z "$as_dir" && as_dir=.
9207 for ac_exec_ext in '' $ac_executable_extensions; do
9208 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9209 ac_cv_prog_ac_ct_NMEDIT="nmedit"
9210 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
9211 break 2
9212 fi
9213 done
9214 done
9215 IFS=$as_save_IFS
9216
9217 fi
9218 fi
9219 ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
9220 if test -n "$ac_ct_NMEDIT"; then
9221 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
9222 $as_echo "$ac_ct_NMEDIT" >&6; }
9223 else
9224 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9225 $as_echo "no" >&6; }
9226 fi
9227
9228 if test "x$ac_ct_NMEDIT" = x; then
9229 NMEDIT=":"
9230 else
9231 case $cross_compiling:$ac_tool_warned in
9232 yes:)
9233 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
9234 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
9235 ac_tool_warned=yes ;;
9236 esac
9237 NMEDIT=$ac_ct_NMEDIT
9238 fi
9239 else
9240 NMEDIT="$ac_cv_prog_NMEDIT"
9241 fi
9242
9243 if test -n "$ac_tool_prefix"; then
9244 # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
9245 set dummy ${ac_tool_prefix}lipo; ac_word=$2
9246 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9247 $as_echo_n "checking for $ac_word... " >&6; }
9248 if ${ac_cv_prog_LIPO+:} false; then :
9249 $as_echo_n "(cached) " >&6
9250 else
9251 if test -n "$LIPO"; then
9252 ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
9253 else
9254 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9255 for as_dir in $PATH
9256 do
9257 IFS=$as_save_IFS
9258 test -z "$as_dir" && as_dir=.
9259 for ac_exec_ext in '' $ac_executable_extensions; do
9260 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9261 ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
9262 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
9263 break 2
9264 fi
9265 done
9266 done
9267 IFS=$as_save_IFS
9268
9269 fi
9270 fi
9271 LIPO=$ac_cv_prog_LIPO
9272 if test -n "$LIPO"; then
9273 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
9274 $as_echo "$LIPO" >&6; }
9275 else
9276 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9277 $as_echo "no" >&6; }
9278 fi
9279
9280
9281 fi
9282 if test -z "$ac_cv_prog_LIPO"; then
9283 ac_ct_LIPO=$LIPO
9284 # Extract the first word of "lipo", so it can be a program name with args.
9285 set dummy lipo; ac_word=$2
9286 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9287 $as_echo_n "checking for $ac_word... " >&6; }
9288 if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
9289 $as_echo_n "(cached) " >&6
9290 else
9291 if test -n "$ac_ct_LIPO"; then
9292 ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
9293 else
9294 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9295 for as_dir in $PATH
9296 do
9297 IFS=$as_save_IFS
9298 test -z "$as_dir" && as_dir=.
9299 for ac_exec_ext in '' $ac_executable_extensions; do
9300 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9301 ac_cv_prog_ac_ct_LIPO="lipo"
9302 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
9303 break 2
9304 fi
9305 done
9306 done
9307 IFS=$as_save_IFS
9308
9309 fi
9310 fi
9311 ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
9312 if test -n "$ac_ct_LIPO"; then
9313 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
9314 $as_echo "$ac_ct_LIPO" >&6; }
9315 else
9316 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9317 $as_echo "no" >&6; }
9318 fi
9319
9320 if test "x$ac_ct_LIPO" = x; then
9321 LIPO=":"
9322 else
9323 case $cross_compiling:$ac_tool_warned in
9324 yes:)
9325 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
9326 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
9327 ac_tool_warned=yes ;;
9328 esac
9329 LIPO=$ac_ct_LIPO
9330 fi
9331 else
9332 LIPO="$ac_cv_prog_LIPO"
9333 fi
9334
9335 if test -n "$ac_tool_prefix"; then
9336 # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
9337 set dummy ${ac_tool_prefix}otool; ac_word=$2
9338 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9339 $as_echo_n "checking for $ac_word... " >&6; }
9340 if ${ac_cv_prog_OTOOL+:} false; then :
9341 $as_echo_n "(cached) " >&6
9342 else
9343 if test -n "$OTOOL"; then
9344 ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
9345 else
9346 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9347 for as_dir in $PATH
9348 do
9349 IFS=$as_save_IFS
9350 test -z "$as_dir" && as_dir=.
9351 for ac_exec_ext in '' $ac_executable_extensions; do
9352 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9353 ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
9354 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
9355 break 2
9356 fi
9357 done
9358 done
9359 IFS=$as_save_IFS
9360
9361 fi
9362 fi
9363 OTOOL=$ac_cv_prog_OTOOL
9364 if test -n "$OTOOL"; then
9365 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
9366 $as_echo "$OTOOL" >&6; }
9367 else
9368 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9369 $as_echo "no" >&6; }
9370 fi
9371
9372
9373 fi
9374 if test -z "$ac_cv_prog_OTOOL"; then
9375 ac_ct_OTOOL=$OTOOL
9376 # Extract the first word of "otool", so it can be a program name with args.
9377 set dummy otool; ac_word=$2
9378 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9379 $as_echo_n "checking for $ac_word... " >&6; }
9380 if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
9381 $as_echo_n "(cached) " >&6
9382 else
9383 if test -n "$ac_ct_OTOOL"; then
9384 ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
9385 else
9386 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9387 for as_dir in $PATH
9388 do
9389 IFS=$as_save_IFS
9390 test -z "$as_dir" && as_dir=.
9391 for ac_exec_ext in '' $ac_executable_extensions; do
9392 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9393 ac_cv_prog_ac_ct_OTOOL="otool"
9394 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
9395 break 2
9396 fi
9397 done
9398 done
9399 IFS=$as_save_IFS
9400
9401 fi
9402 fi
9403 ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
9404 if test -n "$ac_ct_OTOOL"; then
9405 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
9406 $as_echo "$ac_ct_OTOOL" >&6; }
9407 else
9408 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9409 $as_echo "no" >&6; }
9410 fi
9411
9412 if test "x$ac_ct_OTOOL" = x; then
9413 OTOOL=":"
9414 else
9415 case $cross_compiling:$ac_tool_warned in
9416 yes:)
9417 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
9418 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
9419 ac_tool_warned=yes ;;
9420 esac
9421 OTOOL=$ac_ct_OTOOL
9422 fi
9423 else
9424 OTOOL="$ac_cv_prog_OTOOL"
9425 fi
9426
9427 if test -n "$ac_tool_prefix"; then
9428 # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
9429 set dummy ${ac_tool_prefix}otool64; ac_word=$2
9430 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9431 $as_echo_n "checking for $ac_word... " >&6; }
9432 if ${ac_cv_prog_OTOOL64+:} false; then :
9433 $as_echo_n "(cached) " >&6
9434 else
9435 if test -n "$OTOOL64"; then
9436 ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
9437 else
9438 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9439 for as_dir in $PATH
9440 do
9441 IFS=$as_save_IFS
9442 test -z "$as_dir" && as_dir=.
9443 for ac_exec_ext in '' $ac_executable_extensions; do
9444 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9445 ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
9446 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
9447 break 2
9448 fi
9449 done
9450 done
9451 IFS=$as_save_IFS
9452
9453 fi
9454 fi
9455 OTOOL64=$ac_cv_prog_OTOOL64
9456 if test -n "$OTOOL64"; then
9457 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
9458 $as_echo "$OTOOL64" >&6; }
9459 else
9460 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9461 $as_echo "no" >&6; }
9462 fi
9463
9464
9465 fi
9466 if test -z "$ac_cv_prog_OTOOL64"; then
9467 ac_ct_OTOOL64=$OTOOL64
9468 # Extract the first word of "otool64", so it can be a program name with args.
9469 set dummy otool64; ac_word=$2
9470 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
9471 $as_echo_n "checking for $ac_word... " >&6; }
9472 if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
9473 $as_echo_n "(cached) " >&6
9474 else
9475 if test -n "$ac_ct_OTOOL64"; then
9476 ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
9477 else
9478 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
9479 for as_dir in $PATH
9480 do
9481 IFS=$as_save_IFS
9482 test -z "$as_dir" && as_dir=.
9483 for ac_exec_ext in '' $ac_executable_extensions; do
9484 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
9485 ac_cv_prog_ac_ct_OTOOL64="otool64"
9486 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
9487 break 2
9488 fi
9489 done
9490 done
9491 IFS=$as_save_IFS
9492
9493 fi
9494 fi
9495 ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
9496 if test -n "$ac_ct_OTOOL64"; then
9497 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
9498 $as_echo "$ac_ct_OTOOL64" >&6; }
9499 else
9500 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
9501 $as_echo "no" >&6; }
9502 fi
9503
9504 if test "x$ac_ct_OTOOL64" = x; then
9505 OTOOL64=":"
9506 else
9507 case $cross_compiling:$ac_tool_warned in
9508 yes:)
9509 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
9510 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
9511 ac_tool_warned=yes ;;
9512 esac
9513 OTOOL64=$ac_ct_OTOOL64
9514 fi
9515 else
9516 OTOOL64="$ac_cv_prog_OTOOL64"
9517 fi
9518
9519
9520
9521
9522
9523
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534
9535
9536
9537
9538
9539
9540
9541
9542
9543
9544
9545 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
9546 $as_echo_n "checking for -single_module linker flag... " >&6; }
9547 if ${lt_cv_apple_cc_single_mod+:} false; then :
9548 $as_echo_n "(cached) " >&6
9549 else
9550 lt_cv_apple_cc_single_mod=no
9551 if test -z "${LT_MULTI_MODULE}"; then
9552 # By default we will add the -single_module flag. You can override
9553 # by either setting the environment variable LT_MULTI_MODULE
9554 # non-empty at configure time, or by adding -multi_module to the
9555 # link flags.
9556 rm -rf libconftest.dylib*
9557 echo "int foo(void){return 1;}" > conftest.c
9558 echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
9559 -dynamiclib -Wl,-single_module conftest.c" >&5
9560 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
9561 -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
9562 _lt_result=$?
9563 # If there is a non-empty error log, and "single_module"
9564 # appears in it, assume the flag caused a linker warning
9565 if test -s conftest.err && $GREP single_module conftest.err; then
9566 cat conftest.err >&5
9567 # Otherwise, if the output was created with a 0 exit code from
9568 # the compiler, it worked.
9569 elif test -f libconftest.dylib && test $_lt_result -eq 0; then
9570 lt_cv_apple_cc_single_mod=yes
9571 else
9572 cat conftest.err >&5
9573 fi
9574 rm -rf libconftest.dylib*
9575 rm -f conftest.*
9576 fi
9577 fi
9578 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
9579 $as_echo "$lt_cv_apple_cc_single_mod" >&6; }
9580
9581 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
9582 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
9583 if ${lt_cv_ld_exported_symbols_list+:} false; then :
9584 $as_echo_n "(cached) " >&6
9585 else
9586 lt_cv_ld_exported_symbols_list=no
9587 save_LDFLAGS=$LDFLAGS
9588 echo "_main" > conftest.sym
9589 LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
9590 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9591 /* end confdefs.h. */
9592
9593 int
9594 main ()
9595 {
9596
9597 ;
9598 return 0;
9599 }
9600 _ACEOF
9601 if ac_fn_c_try_link "$LINENO"; then :
9602 lt_cv_ld_exported_symbols_list=yes
9603 else
9604 lt_cv_ld_exported_symbols_list=no
9605 fi
9606 rm -f core conftest.err conftest.$ac_objext \
9607 conftest$ac_exeext conftest.$ac_ext
9608 LDFLAGS="$save_LDFLAGS"
9609
9610 fi
9611 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
9612 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
9613
9614 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
9615 $as_echo_n "checking for -force_load linker flag... " >&6; }
9616 if ${lt_cv_ld_force_load+:} false; then :
9617 $as_echo_n "(cached) " >&6
9618 else
9619 lt_cv_ld_force_load=no
9620 cat > conftest.c << _LT_EOF
9621 int forced_loaded() { return 2;}
9622 _LT_EOF
9623 echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
9624 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
9625 echo "$AR cru libconftest.a conftest.o" >&5
9626 $AR cru libconftest.a conftest.o 2>&5
9627 echo "$RANLIB libconftest.a" >&5
9628 $RANLIB libconftest.a 2>&5
9629 cat > conftest.c << _LT_EOF
9630 int main() { return 0;}
9631 _LT_EOF
9632 echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
9633 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
9634 _lt_result=$?
9635 if test -s conftest.err && $GREP force_load conftest.err; then
9636 cat conftest.err >&5
9637 elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
9638 lt_cv_ld_force_load=yes
9639 else
9640 cat conftest.err >&5
9641 fi
9642 rm -f conftest.err libconftest.a conftest conftest.c
9643 rm -rf conftest.dSYM
9644
9645 fi
9646 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
9647 $as_echo "$lt_cv_ld_force_load" >&6; }
9648 case $host_os in
9649 rhapsody* | darwin1.[012])
9650 _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
9651 darwin1.*)
9652 _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
9653 darwin*) # darwin 5.x on
9654 # if running on 10.5 or later, the deployment target defaults
9655 # to the OS version, if on x86, and 10.4, the deployment
9656 # target defaults to 10.4. Don't you love it?
9657 case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
9658 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
9659 _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
9660 10.[012]*)
9661 _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
9662 10.*)
9663 _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
9664 esac
9665 ;;
9666 esac
9667 if test "$lt_cv_apple_cc_single_mod" = "yes"; then
9668 _lt_dar_single_mod='$single_module'
9669 fi
9670 if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
9671 _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
9672 else
9673 _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
9674 fi
9675 if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
9676 _lt_dsymutil='~$DSYMUTIL $lib || :'
9677 else
9678 _lt_dsymutil=
9679 fi
9680 ;;
9681 esac
9682
9683 ac_ext=c
9684 ac_cpp='$CPP $CPPFLAGS'
9685 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
9686 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
9687 ac_compiler_gnu=$ac_cv_c_compiler_gnu
9688 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
9689 $as_echo_n "checking how to run the C preprocessor... " >&6; }
9690 # On Suns, sometimes $CPP names a directory.
9691 if test -n "$CPP" && test -d "$CPP"; then
9692 CPP=
9693 fi
9694 if test -z "$CPP"; then
9695 if ${ac_cv_prog_CPP+:} false; then :
9696 $as_echo_n "(cached) " >&6
9697 else
9698 # Double quotes because CPP needs to be expanded
9699 for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
9700 do
9701 ac_preproc_ok=false
9702 for ac_c_preproc_warn_flag in '' yes
9703 do
9704 # Use a header file that comes with gcc, so configuring glibc
9705 # with a fresh cross-compiler works.
9706 # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
9707 # <limits.h> exists even on freestanding compilers.
9708 # On the NeXT, cc -E runs the code through the compiler's parser,
9709 # not just through cpp. "Syntax error" is here to catch this case.
9710 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9711 /* end confdefs.h. */
9712 #ifdef __STDC__
9713 # include <limits.h>
9714 #else
9715 # include <assert.h>
9716 #endif
9717 Syntax error
9718 _ACEOF
9719 if ac_fn_c_try_cpp "$LINENO"; then :
9720
9721 else
9722 # Broken: fails on valid input.
9723 continue
9724 fi
9725 rm -f conftest.err conftest.i conftest.$ac_ext
9726
9727 # OK, works on sane cases. Now check whether nonexistent headers
9728 # can be detected and how.
9729 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9730 /* end confdefs.h. */
9731 #include <ac_nonexistent.h>
9732 _ACEOF
9733 if ac_fn_c_try_cpp "$LINENO"; then :
9734 # Broken: success on invalid input.
9735 continue
9736 else
9737 # Passes both tests.
9738 ac_preproc_ok=:
9739 break
9740 fi
9741 rm -f conftest.err conftest.i conftest.$ac_ext
9742
9743 done
9744 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
9745 rm -f conftest.i conftest.err conftest.$ac_ext
9746 if $ac_preproc_ok; then :
9747 break
9748 fi
9749
9750 done
9751 ac_cv_prog_CPP=$CPP
9752
9753 fi
9754 CPP=$ac_cv_prog_CPP
9755 else
9756 ac_cv_prog_CPP=$CPP
9757 fi
9758 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
9759 $as_echo "$CPP" >&6; }
9760 ac_preproc_ok=false
9761 for ac_c_preproc_warn_flag in '' yes
9762 do
9763 # Use a header file that comes with gcc, so configuring glibc
9764 # with a fresh cross-compiler works.
9765 # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
9766 # <limits.h> exists even on freestanding compilers.
9767 # On the NeXT, cc -E runs the code through the compiler's parser,
9768 # not just through cpp. "Syntax error" is here to catch this case.
9769 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9770 /* end confdefs.h. */
9771 #ifdef __STDC__
9772 # include <limits.h>
9773 #else
9774 # include <assert.h>
9775 #endif
9776 Syntax error
9777 _ACEOF
9778 if ac_fn_c_try_cpp "$LINENO"; then :
9779
9780 else
9781 # Broken: fails on valid input.
9782 continue
9783 fi
9784 rm -f conftest.err conftest.i conftest.$ac_ext
9785
9786 # OK, works on sane cases. Now check whether nonexistent headers
9787 # can be detected and how.
9788 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9789 /* end confdefs.h. */
9790 #include <ac_nonexistent.h>
9791 _ACEOF
9792 if ac_fn_c_try_cpp "$LINENO"; then :
9793 # Broken: success on invalid input.
9794 continue
9795 else
9796 # Passes both tests.
9797 ac_preproc_ok=:
9798 break
9799 fi
9800 rm -f conftest.err conftest.i conftest.$ac_ext
9801
9802 done
9803 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
9804 rm -f conftest.i conftest.err conftest.$ac_ext
9805 if $ac_preproc_ok; then :
9806
9807 else
9808 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
9809 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
9810 as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
9811 See \`config.log' for more details" "$LINENO" 5; }
9812 fi
9813
9814 ac_ext=c
9815 ac_cpp='$CPP $CPPFLAGS'
9816 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
9817 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
9818 ac_compiler_gnu=$ac_cv_c_compiler_gnu
9819
9820
9821 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
9822 $as_echo_n "checking for ANSI C header files... " >&6; }
9823 if ${ac_cv_header_stdc+:} false; then :
9824 $as_echo_n "(cached) " >&6
9825 else
9826 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9827 /* end confdefs.h. */
9828 #include <stdlib.h>
9829 #include <stdarg.h>
9830 #include <string.h>
9831 #include <float.h>
9832
9833 int
9834 main ()
9835 {
9836
9837 ;
9838 return 0;
9839 }
9840 _ACEOF
9841 if ac_fn_c_try_compile "$LINENO"; then :
9842 ac_cv_header_stdc=yes
9843 else
9844 ac_cv_header_stdc=no
9845 fi
9846 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
9847
9848 if test $ac_cv_header_stdc = yes; then
9849 # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
9850 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9851 /* end confdefs.h. */
9852 #include <string.h>
9853
9854 _ACEOF
9855 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
9856 $EGREP "memchr" >/dev/null 2>&1; then :
9857
9858 else
9859 ac_cv_header_stdc=no
9860 fi
9861 rm -f conftest*
9862
9863 fi
9864
9865 if test $ac_cv_header_stdc = yes; then
9866 # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
9867 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9868 /* end confdefs.h. */
9869 #include <stdlib.h>
9870
9871 _ACEOF
9872 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
9873 $EGREP "free" >/dev/null 2>&1; then :
9874
9875 else
9876 ac_cv_header_stdc=no
9877 fi
9878 rm -f conftest*
9879
9880 fi
9881
9882 if test $ac_cv_header_stdc = yes; then
9883 # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
9884 if test "$cross_compiling" = yes; then :
9885 :
9886 else
9887 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9888 /* end confdefs.h. */
9889 #include <ctype.h>
9890 #include <stdlib.h>
9891 #if ((' ' & 0x0FF) == 0x020)
9892 # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
9893 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
9894 #else
9895 # define ISLOWER(c) \
9896 (('a' <= (c) && (c) <= 'i') \
9897 || ('j' <= (c) && (c) <= 'r') \
9898 || ('s' <= (c) && (c) <= 'z'))
9899 # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
9900 #endif
9901
9902 #define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
9903 int
9904 main ()
9905 {
9906 int i;
9907 for (i = 0; i < 256; i++)
9908 if (XOR (islower (i), ISLOWER (i))
9909 || toupper (i) != TOUPPER (i))
9910 return 2;
9911 return 0;
9912 }
9913 _ACEOF
9914 if ac_fn_c_try_run "$LINENO"; then :
9915
9916 else
9917 ac_cv_header_stdc=no
9918 fi
9919 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
9920 conftest.$ac_objext conftest.beam conftest.$ac_ext
9921 fi
9922
9923 fi
9924 fi
9925 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
9926 $as_echo "$ac_cv_header_stdc" >&6; }
9927 if test $ac_cv_header_stdc = yes; then
9928
9929 $as_echo "#define STDC_HEADERS 1" >>confdefs.h
9930
9931 fi
9932
9933 # On IRIX 5.3, sys/types and inttypes.h are conflicting.
9934 for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
9935 inttypes.h stdint.h unistd.h
9936 do :
9937 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
9938 ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
9939 "
9940 if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
9941 cat >>confdefs.h <<_ACEOF
9942 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
9943 _ACEOF
9944
9945 fi
9946
9947 done
9948
9949
9950 for ac_header in dlfcn.h
9951 do :
9952 ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
9953 "
9954 if test "x$ac_cv_header_dlfcn_h" = xyes; then :
9955 cat >>confdefs.h <<_ACEOF
9956 #define HAVE_DLFCN_H 1
9957 _ACEOF
9958
9959 fi
9960
9961 done
9962
9963
9964
9965 func_stripname_cnf ()
9966 {
9967 case ${2} in
9968 .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
9969 *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
9970 esac
9971 } # func_stripname_cnf
9972
9973
9974
9975
9976
9977 # Set options
9978
9979 # Check whether --with-pic was given.
9980 if test "${with_pic+set}" = set; then :
9981 withval=$with_pic; lt_p=${PACKAGE-default}
9982 case $withval in
9983 yes|no) pic_mode=$withval ;;
9984 *)
9985 pic_mode=default
9986 # Look at the argument we got. We use all the common list separators.
9987 lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
9988 for lt_pkg in $withval; do
9989 IFS="$lt_save_ifs"
9990 if test "X$lt_pkg" = "X$lt_p"; then
9991 pic_mode=yes
9992 fi
9993 done
9994 IFS="$lt_save_ifs"
9995 ;;
9996 esac
9997 else
9998 pic_mode=default
9999 fi
10000
10001
10002 test -z "$pic_mode" && pic_mode=yes
10003
10004
10005
10006
10007
10008 # Check whether --enable-shared was given.
10009 if test "${enable_shared+set}" = set; then :
10010 enableval=$enable_shared; p=${PACKAGE-default}
10011 case $enableval in
10012 yes) enable_shared=yes ;;
10013 no) enable_shared=no ;;
10014 *)
10015 enable_shared=no
10016 # Look at the argument we got. We use all the common list separators.
10017 lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
10018 for pkg in $enableval; do
10019 IFS="$lt_save_ifs"
10020 if test "X$pkg" = "X$p"; then
10021 enable_shared=yes
10022 fi
10023 done
10024 IFS="$lt_save_ifs"
10025 ;;
10026 esac
10027 else
10028 enable_shared=no
10029 fi
10030
10031
10032
10033
10034
10035
10036
10037
10038
10039
10040 enable_dlopen=no
10041
10042
10043 enable_win32_dll=no
10044
10045
10046
10047 # Check whether --enable-static was given.
10048 if test "${enable_static+set}" = set; then :
10049 enableval=$enable_static; p=${PACKAGE-default}
10050 case $enableval in
10051 yes) enable_static=yes ;;
10052 no) enable_static=no ;;
10053 *)
10054 enable_static=no
10055 # Look at the argument we got. We use all the common list separators.
10056 lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
10057 for pkg in $enableval; do
10058 IFS="$lt_save_ifs"
10059 if test "X$pkg" = "X$p"; then
10060 enable_static=yes
10061 fi
10062 done
10063 IFS="$lt_save_ifs"
10064 ;;
10065 esac
10066 else
10067 enable_static=yes
10068 fi
10069
10070
10071
10072
10073
10074
10075
10076
10077
10078
10079 # Check whether --enable-fast-install was given.
10080 if test "${enable_fast_install+set}" = set; then :
10081 enableval=$enable_fast_install; p=${PACKAGE-default}
10082 case $enableval in
10083 yes) enable_fast_install=yes ;;
10084 no) enable_fast_install=no ;;
10085 *)
10086 enable_fast_install=no
10087 # Look at the argument we got. We use all the common list separators.
10088 lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
10089 for pkg in $enableval; do
10090 IFS="$lt_save_ifs"
10091 if test "X$pkg" = "X$p"; then
10092 enable_fast_install=yes
10093 fi
10094 done
10095 IFS="$lt_save_ifs"
10096 ;;
10097 esac
10098 else
10099 enable_fast_install=yes
10100 fi
10101
10102
10103
10104
10105
10106
10107
10108
10109
10110
10111
10112 # This can be used to rebuild libtool when needed
10113 LIBTOOL_DEPS="$ltmain"
10114
10115 # Always use our own libtool.
10116 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135
10136
10137
10138
10139
10140
10141
10142
10143
10144
10145
10146
10147 test -z "$LN_S" && LN_S="ln -s"
10148
10149
10150
10151
10152
10153
10154
10155
10156
10157
10158
10159
10160
10161
10162 if test -n "${ZSH_VERSION+set}" ; then
10163 setopt NO_GLOB_SUBST
10164 fi
10165
10166 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
10167 $as_echo_n "checking for objdir... " >&6; }
10168 if ${lt_cv_objdir+:} false; then :
10169 $as_echo_n "(cached) " >&6
10170 else
10171 rm -f .libs 2>/dev/null
10172 mkdir .libs 2>/dev/null
10173 if test -d .libs; then
10174 lt_cv_objdir=.libs
10175 else
10176 # MS-DOS does not allow filenames that begin with a dot.
10177 lt_cv_objdir=_libs
10178 fi
10179 rmdir .libs 2>/dev/null
10180 fi
10181 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
10182 $as_echo "$lt_cv_objdir" >&6; }
10183 objdir=$lt_cv_objdir
10184
10185
10186
10187
10188
10189 cat >>confdefs.h <<_ACEOF
10190 #define LT_OBJDIR "$lt_cv_objdir/"
10191 _ACEOF
10192
10193
10194
10195
10196 case $host_os in
10197 aix3*)
10198 # AIX sometimes has problems with the GCC collect2 program. For some
10199 # reason, if we set the COLLECT_NAMES environment variable, the problems
10200 # vanish in a puff of smoke.
10201 if test "X${COLLECT_NAMES+set}" != Xset; then
10202 COLLECT_NAMES=
10203 export COLLECT_NAMES
10204 fi
10205 ;;
10206 esac
10207
10208 # Global variables:
10209 ofile=libtool
10210 can_build_shared=yes
10211
10212 # All known linkers require a `.a' archive for static linking (except MSVC,
10213 # which needs '.lib').
10214 libext=a
10215
10216 with_gnu_ld="$lt_cv_prog_gnu_ld"
10217
10218 old_CC="$CC"
10219 old_CFLAGS="$CFLAGS"
10220
10221 # Set sane defaults for various variables
10222 test -z "$CC" && CC=cc
10223 test -z "$LTCC" && LTCC=$CC
10224 test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
10225 test -z "$LD" && LD=ld
10226 test -z "$ac_objext" && ac_objext=o
10227
10228 for cc_temp in $compiler""; do
10229 case $cc_temp in
10230 compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
10231 distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
10232 \-*) ;;
10233 *) break;;
10234 esac
10235 done
10236 cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
10237
10238
10239 # Only perform the check for file, if the check method requires it
10240 test -z "$MAGIC_CMD" && MAGIC_CMD=file
10241 case $deplibs_check_method in
10242 file_magic*)
10243 if test "$file_magic_cmd" = '$MAGIC_CMD'; then
10244 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
10245 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
10246 if ${lt_cv_path_MAGIC_CMD+:} false; then :
10247 $as_echo_n "(cached) " >&6
10248 else
10249 case $MAGIC_CMD in
10250 [\\/*] | ?:[\\/]*)
10251 lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
10252 ;;
10253 *)
10254 lt_save_MAGIC_CMD="$MAGIC_CMD"
10255 lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
10256 ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
10257 for ac_dir in $ac_dummy; do
10258 IFS="$lt_save_ifs"
10259 test -z "$ac_dir" && ac_dir=.
10260 if test -f $ac_dir/${ac_tool_prefix}file; then
10261 lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
10262 if test -n "$file_magic_test_file"; then
10263 case $deplibs_check_method in
10264 "file_magic "*)
10265 file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
10266 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
10267 if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
10268 $EGREP "$file_magic_regex" > /dev/null; then
10269 :
10270 else
10271 cat <<_LT_EOF 1>&2
10272
10273 *** Warning: the command libtool uses to detect shared libraries,
10274 *** $file_magic_cmd, produces output that libtool cannot recognize.
10275 *** The result is that libtool may fail to recognize shared libraries
10276 *** as such. This will affect the creation of libtool libraries that
10277 *** depend on shared libraries, but programs linked with such libtool
10278 *** libraries will work regardless of this problem. Nevertheless, you
10279 *** may want to report the problem to your system manager and/or to
10280 *** bug-libtool@gnu.org
10281
10282 _LT_EOF
10283 fi ;;
10284 esac
10285 fi
10286 break
10287 fi
10288 done
10289 IFS="$lt_save_ifs"
10290 MAGIC_CMD="$lt_save_MAGIC_CMD"
10291 ;;
10292 esac
10293 fi
10294
10295 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
10296 if test -n "$MAGIC_CMD"; then
10297 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
10298 $as_echo "$MAGIC_CMD" >&6; }
10299 else
10300 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
10301 $as_echo "no" >&6; }
10302 fi
10303
10304
10305
10306
10307
10308 if test -z "$lt_cv_path_MAGIC_CMD"; then
10309 if test -n "$ac_tool_prefix"; then
10310 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
10311 $as_echo_n "checking for file... " >&6; }
10312 if ${lt_cv_path_MAGIC_CMD+:} false; then :
10313 $as_echo_n "(cached) " >&6
10314 else
10315 case $MAGIC_CMD in
10316 [\\/*] | ?:[\\/]*)
10317 lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
10318 ;;
10319 *)
10320 lt_save_MAGIC_CMD="$MAGIC_CMD"
10321 lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
10322 ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
10323 for ac_dir in $ac_dummy; do
10324 IFS="$lt_save_ifs"
10325 test -z "$ac_dir" && ac_dir=.
10326 if test -f $ac_dir/file; then
10327 lt_cv_path_MAGIC_CMD="$ac_dir/file"
10328 if test -n "$file_magic_test_file"; then
10329 case $deplibs_check_method in
10330 "file_magic "*)
10331 file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
10332 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
10333 if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
10334 $EGREP "$file_magic_regex" > /dev/null; then
10335 :
10336 else
10337 cat <<_LT_EOF 1>&2
10338
10339 *** Warning: the command libtool uses to detect shared libraries,
10340 *** $file_magic_cmd, produces output that libtool cannot recognize.
10341 *** The result is that libtool may fail to recognize shared libraries
10342 *** as such. This will affect the creation of libtool libraries that
10343 *** depend on shared libraries, but programs linked with such libtool
10344 *** libraries will work regardless of this problem. Nevertheless, you
10345 *** may want to report the problem to your system manager and/or to
10346 *** bug-libtool@gnu.org
10347
10348 _LT_EOF
10349 fi ;;
10350 esac
10351 fi
10352 break
10353 fi
10354 done
10355 IFS="$lt_save_ifs"
10356 MAGIC_CMD="$lt_save_MAGIC_CMD"
10357 ;;
10358 esac
10359 fi
10360
10361 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
10362 if test -n "$MAGIC_CMD"; then
10363 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
10364 $as_echo "$MAGIC_CMD" >&6; }
10365 else
10366 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
10367 $as_echo "no" >&6; }
10368 fi
10369
10370
10371 else
10372 MAGIC_CMD=:
10373 fi
10374 fi
10375
10376 fi
10377 ;;
10378 esac
10379
10380 # Use C for the default configuration in the libtool script
10381
10382 lt_save_CC="$CC"
10383 ac_ext=c
10384 ac_cpp='$CPP $CPPFLAGS'
10385 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
10386 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
10387 ac_compiler_gnu=$ac_cv_c_compiler_gnu
10388
10389
10390 # Source file extension for C test sources.
10391 ac_ext=c
10392
10393 # Object file extension for compiled C test sources.
10394 objext=o
10395 objext=$objext
10396
10397 # Code to be used in simple compile tests
10398 lt_simple_compile_test_code="int some_variable = 0;"
10399
10400 # Code to be used in simple link tests
10401 lt_simple_link_test_code='int main(){return(0);}'
10402
10403
10404
10405
10406
10407
10408
10409 # If no C compiler was specified, use CC.
10410 LTCC=${LTCC-"$CC"}
10411
10412 # If no C compiler flags were specified, use CFLAGS.
10413 LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
10414
10415 # Allow CC to be a program name with arguments.
10416 compiler=$CC
10417
10418 # Save the default compiler, since it gets overwritten when the other
10419 # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
10420 compiler_DEFAULT=$CC
10421
10422 # save warnings/boilerplate of simple test code
10423 ac_outfile=conftest.$ac_objext
10424 echo "$lt_simple_compile_test_code" >conftest.$ac_ext
10425 eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
10426 _lt_compiler_boilerplate=`cat conftest.err`
10427 $RM conftest*
10428
10429 ac_outfile=conftest.$ac_objext
10430 echo "$lt_simple_link_test_code" >conftest.$ac_ext
10431 eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
10432 _lt_linker_boilerplate=`cat conftest.err`
10433 $RM -r conftest*
10434
10435
10436 ## CAVEAT EMPTOR:
10437 ## There is no encapsulation within the following macros, do not change
10438 ## the running order or otherwise move them around unless you know exactly
10439 ## what you are doing...
10440 if test -n "$compiler"; then
10441
10442 lt_prog_compiler_no_builtin_flag=
10443
10444 if test "$GCC" = yes; then
10445 case $cc_basename in
10446 nvcc*)
10447 lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
10448 *)
10449 lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
10450 esac
10451
10452 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
10453 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
10454 if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
10455 $as_echo_n "(cached) " >&6
10456 else
10457 lt_cv_prog_compiler_rtti_exceptions=no
10458 ac_outfile=conftest.$ac_objext
10459 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
10460 lt_compiler_flag="-fno-rtti -fno-exceptions"
10461 # Insert the option either (1) after the last *FLAGS variable, or
10462 # (2) before a word containing "conftest.", or (3) at the end.
10463 # Note that $ac_compile itself does not contain backslashes and begins
10464 # with a dollar sign (not a hyphen), so the echo should work correctly.
10465 # The option is referenced via a variable to avoid confusing sed.
10466 lt_compile=`echo "$ac_compile" | $SED \
10467 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
10468 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
10469 -e 's:$: $lt_compiler_flag:'`
10470 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
10471 (eval "$lt_compile" 2>conftest.err)
10472 ac_status=$?
10473 cat conftest.err >&5
10474 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10475 if (exit $ac_status) && test -s "$ac_outfile"; then
10476 # The compiler can only warn and ignore the option if not recognized
10477 # So say no if there are warnings other than the usual output.
10478 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
10479 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
10480 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
10481 lt_cv_prog_compiler_rtti_exceptions=yes
10482 fi
10483 fi
10484 $RM conftest*
10485
10486 fi
10487 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
10488 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
10489
10490 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
10491 lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
10492 else
10493 :
10494 fi
10495
10496 fi
10497
10498
10499
10500
10501
10502
10503 lt_prog_compiler_wl=
10504 lt_prog_compiler_pic=
10505 lt_prog_compiler_static=
10506
10507
10508 if test "$GCC" = yes; then
10509 lt_prog_compiler_wl='-Wl,'
10510 lt_prog_compiler_static='-static'
10511
10512 case $host_os in
10513 aix*)
10514 # All AIX code is PIC.
10515 if test "$host_cpu" = ia64; then
10516 # AIX 5 now supports IA64 processor
10517 lt_prog_compiler_static='-Bstatic'
10518 fi
10519 ;;
10520
10521 amigaos*)
10522 case $host_cpu in
10523 powerpc)
10524 # see comment about AmigaOS4 .so support
10525 lt_prog_compiler_pic='-fPIC'
10526 ;;
10527 m68k)
10528 # FIXME: we need at least 68020 code to build shared libraries, but
10529 # adding the `-m68020' flag to GCC prevents building anything better,
10530 # like `-m68040'.
10531 lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
10532 ;;
10533 esac
10534 ;;
10535
10536 beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
10537 # PIC is the default for these OSes.
10538 ;;
10539
10540 mingw* | cygwin* | pw32* | os2* | cegcc*)
10541 # This hack is so that the source file can tell whether it is being
10542 # built for inclusion in a dll (and should export symbols for example).
10543 # Although the cygwin gcc ignores -fPIC, still need this for old-style
10544 # (--disable-auto-import) libraries
10545 lt_prog_compiler_pic='-DDLL_EXPORT'
10546 ;;
10547
10548 darwin* | rhapsody*)
10549 # PIC is the default on this platform
10550 # Common symbols not allowed in MH_DYLIB files
10551 lt_prog_compiler_pic='-fno-common'
10552 ;;
10553
10554 haiku*)
10555 # PIC is the default for Haiku.
10556 # The "-static" flag exists, but is broken.
10557 lt_prog_compiler_static=
10558 ;;
10559
10560 hpux*)
10561 # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
10562 # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
10563 # sets the default TLS model and affects inlining.
10564 case $host_cpu in
10565 hppa*64*)
10566 # +Z the default
10567 ;;
10568 *)
10569 lt_prog_compiler_pic='-fPIC'
10570 ;;
10571 esac
10572 ;;
10573
10574 interix[3-9]*)
10575 # Interix 3.x gcc -fpic/-fPIC options generate broken code.
10576 # Instead, we relocate shared libraries at runtime.
10577 ;;
10578
10579 msdosdjgpp*)
10580 # Just because we use GCC doesn't mean we suddenly get shared libraries
10581 # on systems that don't support them.
10582 lt_prog_compiler_can_build_shared=no
10583 enable_shared=no
10584 ;;
10585
10586 *nto* | *qnx*)
10587 # QNX uses GNU C++, but need to define -shared option too, otherwise
10588 # it will coredump.
10589 lt_prog_compiler_pic='-fPIC -shared'
10590 ;;
10591
10592 sysv4*MP*)
10593 if test -d /usr/nec; then
10594 lt_prog_compiler_pic=-Kconform_pic
10595 fi
10596 ;;
10597
10598 *)
10599 lt_prog_compiler_pic='-fPIC'
10600 ;;
10601 esac
10602
10603 case $cc_basename in
10604 nvcc*) # Cuda Compiler Driver 2.2
10605 lt_prog_compiler_wl='-Xlinker '
10606 if test -n "$lt_prog_compiler_pic"; then
10607 lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
10608 fi
10609 ;;
10610 esac
10611 else
10612 # PORTME Check for flag to pass linker flags through the system compiler.
10613 case $host_os in
10614 aix*)
10615 lt_prog_compiler_wl='-Wl,'
10616 if test "$host_cpu" = ia64; then
10617 # AIX 5 now supports IA64 processor
10618 lt_prog_compiler_static='-Bstatic'
10619 else
10620 lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
10621 fi
10622 ;;
10623
10624 mingw* | cygwin* | pw32* | os2* | cegcc*)
10625 # This hack is so that the source file can tell whether it is being
10626 # built for inclusion in a dll (and should export symbols for example).
10627 lt_prog_compiler_pic='-DDLL_EXPORT'
10628 ;;
10629
10630 hpux9* | hpux10* | hpux11*)
10631 lt_prog_compiler_wl='-Wl,'
10632 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
10633 # not for PA HP-UX.
10634 case $host_cpu in
10635 hppa*64*|ia64*)
10636 # +Z the default
10637 ;;
10638 *)
10639 lt_prog_compiler_pic='+Z'
10640 ;;
10641 esac
10642 # Is there a better lt_prog_compiler_static that works with the bundled CC?
10643 lt_prog_compiler_static='${wl}-a ${wl}archive'
10644 ;;
10645
10646 irix5* | irix6* | nonstopux*)
10647 lt_prog_compiler_wl='-Wl,'
10648 # PIC (with -KPIC) is the default.
10649 lt_prog_compiler_static='-non_shared'
10650 ;;
10651
10652 linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
10653 case $cc_basename in
10654 # old Intel for x86_64 which still supported -KPIC.
10655 ecc*)
10656 lt_prog_compiler_wl='-Wl,'
10657 lt_prog_compiler_pic='-KPIC'
10658 lt_prog_compiler_static='-static'
10659 ;;
10660 # icc used to be incompatible with GCC.
10661 # ICC 10 doesn't accept -KPIC any more.
10662 icc* | ifort*)
10663 lt_prog_compiler_wl='-Wl,'
10664 lt_prog_compiler_pic='-fPIC'
10665 lt_prog_compiler_static='-static'
10666 ;;
10667 # Lahey Fortran 8.1.
10668 lf95*)
10669 lt_prog_compiler_wl='-Wl,'
10670 lt_prog_compiler_pic='--shared'
10671 lt_prog_compiler_static='--static'
10672 ;;
10673 nagfor*)
10674 # NAG Fortran compiler
10675 lt_prog_compiler_wl='-Wl,-Wl,,'
10676 lt_prog_compiler_pic='-PIC'
10677 lt_prog_compiler_static='-Bstatic'
10678 ;;
10679 pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
10680 # Portland Group compilers (*not* the Pentium gcc compiler,
10681 # which looks to be a dead project)
10682 lt_prog_compiler_wl='-Wl,'
10683 lt_prog_compiler_pic='-fpic'
10684 lt_prog_compiler_static='-Bstatic'
10685 ;;
10686 ccc*)
10687 lt_prog_compiler_wl='-Wl,'
10688 # All Alpha code is PIC.
10689 lt_prog_compiler_static='-non_shared'
10690 ;;
10691 xl* | bgxl* | bgf* | mpixl*)
10692 # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
10693 lt_prog_compiler_wl='-Wl,'
10694 lt_prog_compiler_pic='-qpic'
10695 lt_prog_compiler_static='-qstaticlink'
10696 ;;
10697 *)
10698 case `$CC -V 2>&1 | sed 5q` in
10699 *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
10700 # Sun Fortran 8.3 passes all unrecognized flags to the linker
10701 lt_prog_compiler_pic='-KPIC'
10702 lt_prog_compiler_static='-Bstatic'
10703 lt_prog_compiler_wl=''
10704 ;;
10705 *Sun\ F* | *Sun*Fortran*)
10706 lt_prog_compiler_pic='-KPIC'
10707 lt_prog_compiler_static='-Bstatic'
10708 lt_prog_compiler_wl='-Qoption ld '
10709 ;;
10710 *Sun\ C*)
10711 # Sun C 5.9
10712 lt_prog_compiler_pic='-KPIC'
10713 lt_prog_compiler_static='-Bstatic'
10714 lt_prog_compiler_wl='-Wl,'
10715 ;;
10716 *Intel*\ [CF]*Compiler*)
10717 lt_prog_compiler_wl='-Wl,'
10718 lt_prog_compiler_pic='-fPIC'
10719 lt_prog_compiler_static='-static'
10720 ;;
10721 *Portland\ Group*)
10722 lt_prog_compiler_wl='-Wl,'
10723 lt_prog_compiler_pic='-fpic'
10724 lt_prog_compiler_static='-Bstatic'
10725 ;;
10726 esac
10727 ;;
10728 esac
10729 ;;
10730
10731 newsos6)
10732 lt_prog_compiler_pic='-KPIC'
10733 lt_prog_compiler_static='-Bstatic'
10734 ;;
10735
10736 *nto* | *qnx*)
10737 # QNX uses GNU C++, but need to define -shared option too, otherwise
10738 # it will coredump.
10739 lt_prog_compiler_pic='-fPIC -shared'
10740 ;;
10741
10742 osf3* | osf4* | osf5*)
10743 lt_prog_compiler_wl='-Wl,'
10744 # All OSF/1 code is PIC.
10745 lt_prog_compiler_static='-non_shared'
10746 ;;
10747
10748 rdos*)
10749 lt_prog_compiler_static='-non_shared'
10750 ;;
10751
10752 solaris*)
10753 lt_prog_compiler_pic='-KPIC'
10754 lt_prog_compiler_static='-Bstatic'
10755 case $cc_basename in
10756 f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
10757 lt_prog_compiler_wl='-Qoption ld ';;
10758 *)
10759 lt_prog_compiler_wl='-Wl,';;
10760 esac
10761 ;;
10762
10763 sunos4*)
10764 lt_prog_compiler_wl='-Qoption ld '
10765 lt_prog_compiler_pic='-PIC'
10766 lt_prog_compiler_static='-Bstatic'
10767 ;;
10768
10769 sysv4 | sysv4.2uw2* | sysv4.3*)
10770 lt_prog_compiler_wl='-Wl,'
10771 lt_prog_compiler_pic='-KPIC'
10772 lt_prog_compiler_static='-Bstatic'
10773 ;;
10774
10775 sysv4*MP*)
10776 if test -d /usr/nec ;then
10777 lt_prog_compiler_pic='-Kconform_pic'
10778 lt_prog_compiler_static='-Bstatic'
10779 fi
10780 ;;
10781
10782 sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
10783 lt_prog_compiler_wl='-Wl,'
10784 lt_prog_compiler_pic='-KPIC'
10785 lt_prog_compiler_static='-Bstatic'
10786 ;;
10787
10788 unicos*)
10789 lt_prog_compiler_wl='-Wl,'
10790 lt_prog_compiler_can_build_shared=no
10791 ;;
10792
10793 uts4*)
10794 lt_prog_compiler_pic='-pic'
10795 lt_prog_compiler_static='-Bstatic'
10796 ;;
10797
10798 *)
10799 lt_prog_compiler_can_build_shared=no
10800 ;;
10801 esac
10802 fi
10803
10804 case $host_os in
10805 # For platforms which do not support PIC, -DPIC is meaningless:
10806 *djgpp*)
10807 lt_prog_compiler_pic=
10808 ;;
10809 *)
10810 lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
10811 ;;
10812 esac
10813
10814 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
10815 $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
10816 if ${lt_cv_prog_compiler_pic+:} false; then :
10817 $as_echo_n "(cached) " >&6
10818 else
10819 lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
10820 fi
10821 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
10822 $as_echo "$lt_cv_prog_compiler_pic" >&6; }
10823 lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
10824
10825 #
10826 # Check to make sure the PIC flag actually works.
10827 #
10828 if test -n "$lt_prog_compiler_pic"; then
10829 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
10830 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
10831 if ${lt_cv_prog_compiler_pic_works+:} false; then :
10832 $as_echo_n "(cached) " >&6
10833 else
10834 lt_cv_prog_compiler_pic_works=no
10835 ac_outfile=conftest.$ac_objext
10836 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
10837 lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
10838 # Insert the option either (1) after the last *FLAGS variable, or
10839 # (2) before a word containing "conftest.", or (3) at the end.
10840 # Note that $ac_compile itself does not contain backslashes and begins
10841 # with a dollar sign (not a hyphen), so the echo should work correctly.
10842 # The option is referenced via a variable to avoid confusing sed.
10843 lt_compile=`echo "$ac_compile" | $SED \
10844 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
10845 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
10846 -e 's:$: $lt_compiler_flag:'`
10847 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
10848 (eval "$lt_compile" 2>conftest.err)
10849 ac_status=$?
10850 cat conftest.err >&5
10851 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10852 if (exit $ac_status) && test -s "$ac_outfile"; then
10853 # The compiler can only warn and ignore the option if not recognized
10854 # So say no if there are warnings other than the usual output.
10855 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
10856 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
10857 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
10858 lt_cv_prog_compiler_pic_works=yes
10859 fi
10860 fi
10861 $RM conftest*
10862
10863 fi
10864 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
10865 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
10866
10867 if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
10868 case $lt_prog_compiler_pic in
10869 "" | " "*) ;;
10870 *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
10871 esac
10872 else
10873 lt_prog_compiler_pic=
10874 lt_prog_compiler_can_build_shared=no
10875 fi
10876
10877 fi
10878
10879
10880
10881
10882
10883
10884
10885
10886
10887
10888
10889 #
10890 # Check to make sure the static flag actually works.
10891 #
10892 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
10893 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
10894 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
10895 if ${lt_cv_prog_compiler_static_works+:} false; then :
10896 $as_echo_n "(cached) " >&6
10897 else
10898 lt_cv_prog_compiler_static_works=no
10899 save_LDFLAGS="$LDFLAGS"
10900 LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
10901 echo "$lt_simple_link_test_code" > conftest.$ac_ext
10902 if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
10903 # The linker can only warn and ignore the option if not recognized
10904 # So say no if there are warnings
10905 if test -s conftest.err; then
10906 # Append any errors to the config.log.
10907 cat conftest.err 1>&5
10908 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
10909 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
10910 if diff conftest.exp conftest.er2 >/dev/null; then
10911 lt_cv_prog_compiler_static_works=yes
10912 fi
10913 else
10914 lt_cv_prog_compiler_static_works=yes
10915 fi
10916 fi
10917 $RM -r conftest*
10918 LDFLAGS="$save_LDFLAGS"
10919
10920 fi
10921 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
10922 $as_echo "$lt_cv_prog_compiler_static_works" >&6; }
10923
10924 if test x"$lt_cv_prog_compiler_static_works" = xyes; then
10925 :
10926 else
10927 lt_prog_compiler_static=
10928 fi
10929
10930
10931
10932
10933
10934
10935
10936 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
10937 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
10938 if ${lt_cv_prog_compiler_c_o+:} false; then :
10939 $as_echo_n "(cached) " >&6
10940 else
10941 lt_cv_prog_compiler_c_o=no
10942 $RM -r conftest 2>/dev/null
10943 mkdir conftest
10944 cd conftest
10945 mkdir out
10946 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
10947
10948 lt_compiler_flag="-o out/conftest2.$ac_objext"
10949 # Insert the option either (1) after the last *FLAGS variable, or
10950 # (2) before a word containing "conftest.", or (3) at the end.
10951 # Note that $ac_compile itself does not contain backslashes and begins
10952 # with a dollar sign (not a hyphen), so the echo should work correctly.
10953 lt_compile=`echo "$ac_compile" | $SED \
10954 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
10955 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
10956 -e 's:$: $lt_compiler_flag:'`
10957 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
10958 (eval "$lt_compile" 2>out/conftest.err)
10959 ac_status=$?
10960 cat out/conftest.err >&5
10961 echo "$as_me:$LINENO: \$? = $ac_status" >&5
10962 if (exit $ac_status) && test -s out/conftest2.$ac_objext
10963 then
10964 # The compiler can only warn and ignore the option if not recognized
10965 # So say no if there are warnings
10966 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
10967 $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
10968 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
10969 lt_cv_prog_compiler_c_o=yes
10970 fi
10971 fi
10972 chmod u+w . 2>&5
10973 $RM conftest*
10974 # SGI C++ compiler will create directory out/ii_files/ for
10975 # template instantiation
10976 test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
10977 $RM out/* && rmdir out
10978 cd ..
10979 $RM -r conftest
10980 $RM conftest*
10981
10982 fi
10983 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
10984 $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
10985
10986
10987
10988
10989
10990
10991 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
10992 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
10993 if ${lt_cv_prog_compiler_c_o+:} false; then :
10994 $as_echo_n "(cached) " >&6
10995 else
10996 lt_cv_prog_compiler_c_o=no
10997 $RM -r conftest 2>/dev/null
10998 mkdir conftest
10999 cd conftest
11000 mkdir out
11001 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
11002
11003 lt_compiler_flag="-o out/conftest2.$ac_objext"
11004 # Insert the option either (1) after the last *FLAGS variable, or
11005 # (2) before a word containing "conftest.", or (3) at the end.
11006 # Note that $ac_compile itself does not contain backslashes and begins
11007 # with a dollar sign (not a hyphen), so the echo should work correctly.
11008 lt_compile=`echo "$ac_compile" | $SED \
11009 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
11010 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
11011 -e 's:$: $lt_compiler_flag:'`
11012 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
11013 (eval "$lt_compile" 2>out/conftest.err)
11014 ac_status=$?
11015 cat out/conftest.err >&5
11016 echo "$as_me:$LINENO: \$? = $ac_status" >&5
11017 if (exit $ac_status) && test -s out/conftest2.$ac_objext
11018 then
11019 # The compiler can only warn and ignore the option if not recognized
11020 # So say no if there are warnings
11021 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
11022 $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
11023 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
11024 lt_cv_prog_compiler_c_o=yes
11025 fi
11026 fi
11027 chmod u+w . 2>&5
11028 $RM conftest*
11029 # SGI C++ compiler will create directory out/ii_files/ for
11030 # template instantiation
11031 test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
11032 $RM out/* && rmdir out
11033 cd ..
11034 $RM -r conftest
11035 $RM conftest*
11036
11037 fi
11038 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
11039 $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
11040
11041
11042
11043
11044 hard_links="nottested"
11045 if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
11046 # do not overwrite the value of need_locks provided by the user
11047 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
11048 $as_echo_n "checking if we can lock with hard links... " >&6; }
11049 hard_links=yes
11050 $RM conftest*
11051 ln conftest.a conftest.b 2>/dev/null && hard_links=no
11052 touch conftest.a
11053 ln conftest.a conftest.b 2>&5 || hard_links=no
11054 ln conftest.a conftest.b 2>/dev/null && hard_links=no
11055 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
11056 $as_echo "$hard_links" >&6; }
11057 if test "$hard_links" = no; then
11058 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
11059 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
11060 need_locks=warn
11061 fi
11062 else
11063 need_locks=no
11064 fi
11065
11066
11067
11068
11069
11070
11071 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
11072 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
11073
11074 runpath_var=
11075 allow_undefined_flag=
11076 always_export_symbols=no
11077 archive_cmds=
11078 archive_expsym_cmds=
11079 compiler_needs_object=no
11080 enable_shared_with_static_runtimes=no
11081 export_dynamic_flag_spec=
11082 export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
11083 hardcode_automatic=no
11084 hardcode_direct=no
11085 hardcode_direct_absolute=no
11086 hardcode_libdir_flag_spec=
11087 hardcode_libdir_separator=
11088 hardcode_minus_L=no
11089 hardcode_shlibpath_var=unsupported
11090 inherit_rpath=no
11091 link_all_deplibs=unknown
11092 module_cmds=
11093 module_expsym_cmds=
11094 old_archive_from_new_cmds=
11095 old_archive_from_expsyms_cmds=
11096 thread_safe_flag_spec=
11097 whole_archive_flag_spec=
11098 # include_expsyms should be a list of space-separated symbols to be *always*
11099 # included in the symbol list
11100 include_expsyms=
11101 # exclude_expsyms can be an extended regexp of symbols to exclude
11102 # it will be wrapped by ` (' and `)$', so one must not match beginning or
11103 # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
11104 # as well as any symbol that contains `d'.
11105 exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
11106 # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
11107 # platforms (ab)use it in PIC code, but their linkers get confused if
11108 # the symbol is explicitly referenced. Since portable code cannot
11109 # rely on this symbol name, it's probably fine to never include it in
11110 # preloaded symbol tables.
11111 # Exclude shared library initialization/finalization symbols.
11112 extract_expsyms_cmds=
11113
11114 case $host_os in
11115 cygwin* | mingw* | pw32* | cegcc*)
11116 # FIXME: the MSVC++ port hasn't been tested in a loooong time
11117 # When not using gcc, we currently assume that we are using
11118 # Microsoft Visual C++.
11119 if test "$GCC" != yes; then
11120 with_gnu_ld=no
11121 fi
11122 ;;
11123 interix*)
11124 # we just hope/assume this is gcc and not c89 (= MSVC++)
11125 with_gnu_ld=yes
11126 ;;
11127 openbsd*)
11128 with_gnu_ld=no
11129 ;;
11130 linux* | k*bsd*-gnu | gnu*)
11131 link_all_deplibs=no
11132 ;;
11133 esac
11134
11135 ld_shlibs=yes
11136
11137 # On some targets, GNU ld is compatible enough with the native linker
11138 # that we're better off using the native interface for both.
11139 lt_use_gnu_ld_interface=no
11140 if test "$with_gnu_ld" = yes; then
11141 case $host_os in
11142 aix*)
11143 # The AIX port of GNU ld has always aspired to compatibility
11144 # with the native linker. However, as the warning in the GNU ld
11145 # block says, versions before 2.19.5* couldn't really create working
11146 # shared libraries, regardless of the interface used.
11147 case `$LD -v 2>&1` in
11148 *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
11149 *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
11150 *\ \(GNU\ Binutils\)\ [3-9]*) ;;
11151 *)
11152 lt_use_gnu_ld_interface=yes
11153 ;;
11154 esac
11155 ;;
11156 *)
11157 lt_use_gnu_ld_interface=yes
11158 ;;
11159 esac
11160 fi
11161
11162 if test "$lt_use_gnu_ld_interface" = yes; then
11163 # If archive_cmds runs LD, not CC, wlarc should be empty
11164 wlarc='${wl}'
11165
11166 # Set some defaults for GNU ld with shared library support. These
11167 # are reset later if shared libraries are not supported. Putting them
11168 # here allows them to be overridden if necessary.
11169 runpath_var=LD_RUN_PATH
11170 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
11171 export_dynamic_flag_spec='${wl}--export-dynamic'
11172 # ancient GNU ld didn't support --whole-archive et. al.
11173 if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
11174 whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
11175 else
11176 whole_archive_flag_spec=
11177 fi
11178 supports_anon_versioning=no
11179 case `$LD -v 2>&1` in
11180 *GNU\ gold*) supports_anon_versioning=yes ;;
11181 *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
11182 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
11183 *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
11184 *\ 2.11.*) ;; # other 2.11 versions
11185 *) supports_anon_versioning=yes ;;
11186 esac
11187
11188 # See if GNU ld supports shared libraries.
11189 case $host_os in
11190 aix[3-9]*)
11191 # On AIX/PPC, the GNU linker is very broken
11192 if test "$host_cpu" != ia64; then
11193 ld_shlibs=no
11194 cat <<_LT_EOF 1>&2
11195
11196 *** Warning: the GNU linker, at least up to release 2.19, is reported
11197 *** to be unable to reliably create shared libraries on AIX.
11198 *** Therefore, libtool is disabling shared libraries support. If you
11199 *** really care for shared libraries, you may want to install binutils
11200 *** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
11201 *** You will then need to restart the configuration process.
11202
11203 _LT_EOF
11204 fi
11205 ;;
11206
11207 amigaos*)
11208 case $host_cpu in
11209 powerpc)
11210 # see comment about AmigaOS4 .so support
11211 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
11212 archive_expsym_cmds=''
11213 ;;
11214 m68k)
11215 archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
11216 hardcode_libdir_flag_spec='-L$libdir'
11217 hardcode_minus_L=yes
11218 ;;
11219 esac
11220 ;;
11221
11222 beos*)
11223 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
11224 allow_undefined_flag=unsupported
11225 # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
11226 # support --undefined. This deserves some investigation. FIXME
11227 archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
11228 else
11229 ld_shlibs=no
11230 fi
11231 ;;
11232
11233 cygwin* | mingw* | pw32* | cegcc*)
11234 # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
11235 # as there is no search path for DLLs.
11236 hardcode_libdir_flag_spec='-L$libdir'
11237 export_dynamic_flag_spec='${wl}--export-all-symbols'
11238 allow_undefined_flag=unsupported
11239 always_export_symbols=no
11240 enable_shared_with_static_runtimes=yes
11241 export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
11242 exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
11243
11244 if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
11245 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
11246 # If the export-symbols file already is a .def file (1st line
11247 # is EXPORTS), use it as is; otherwise, prepend...
11248 archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
11249 cp $export_symbols $output_objdir/$soname.def;
11250 else
11251 echo EXPORTS > $output_objdir/$soname.def;
11252 cat $export_symbols >> $output_objdir/$soname.def;
11253 fi~
11254 $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
11255 else
11256 ld_shlibs=no
11257 fi
11258 ;;
11259
11260 haiku*)
11261 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
11262 link_all_deplibs=yes
11263 ;;
11264
11265 interix[3-9]*)
11266 hardcode_direct=no
11267 hardcode_shlibpath_var=no
11268 hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
11269 export_dynamic_flag_spec='${wl}-E'
11270 # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
11271 # Instead, shared libraries are loaded at an image base (0x10000000 by
11272 # default) and relocated if they conflict, which is a slow very memory
11273 # consuming and fragmenting process. To avoid this, we pick a random,
11274 # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
11275 # time. Moving up from 0x10000000 also allows more sbrk(2) space.
11276 archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
11277 archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
11278 ;;
11279
11280 gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
11281 tmp_diet=no
11282 if test "$host_os" = linux-dietlibc; then
11283 case $cc_basename in
11284 diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
11285 esac
11286 fi
11287 if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
11288 && test "$tmp_diet" = no
11289 then
11290 tmp_addflag=' $pic_flag'
11291 tmp_sharedflag='-shared'
11292 case $cc_basename,$host_cpu in
11293 pgcc*) # Portland Group C compiler
11294 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
11295 tmp_addflag=' $pic_flag'
11296 ;;
11297 pgf77* | pgf90* | pgf95* | pgfortran*)
11298 # Portland Group f77 and f90 compilers
11299 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
11300 tmp_addflag=' $pic_flag -Mnomain' ;;
11301 ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
11302 tmp_addflag=' -i_dynamic' ;;
11303 efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
11304 tmp_addflag=' -i_dynamic -nofor_main' ;;
11305 ifc* | ifort*) # Intel Fortran compiler
11306 tmp_addflag=' -nofor_main' ;;
11307 lf95*) # Lahey Fortran 8.1
11308 whole_archive_flag_spec=
11309 tmp_sharedflag='--shared' ;;
11310 xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
11311 tmp_sharedflag='-qmkshrobj'
11312 tmp_addflag= ;;
11313 nvcc*) # Cuda Compiler Driver 2.2
11314 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
11315 compiler_needs_object=yes
11316 ;;
11317 esac
11318 case `$CC -V 2>&1 | sed 5q` in
11319 *Sun\ C*) # Sun C 5.9
11320 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
11321 compiler_needs_object=yes
11322 tmp_sharedflag='-G' ;;
11323 *Sun\ F*) # Sun Fortran 8.3
11324 tmp_sharedflag='-G' ;;
11325 esac
11326 archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
11327
11328 if test "x$supports_anon_versioning" = xyes; then
11329 archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
11330 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
11331 echo "local: *; };" >> $output_objdir/$libname.ver~
11332 $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
11333 fi
11334
11335 case $cc_basename in
11336 xlf* | bgf* | bgxlf* | mpixlf*)
11337 # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
11338 whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
11339 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
11340 archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
11341 if test "x$supports_anon_versioning" = xyes; then
11342 archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
11343 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
11344 echo "local: *; };" >> $output_objdir/$libname.ver~
11345 $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
11346 fi
11347 ;;
11348 esac
11349 else
11350 ld_shlibs=no
11351 fi
11352 ;;
11353
11354 netbsd* | netbsdelf*-gnu)
11355 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
11356 archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
11357 wlarc=
11358 else
11359 archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
11360 archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
11361 fi
11362 ;;
11363
11364 solaris*)
11365 if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
11366 ld_shlibs=no
11367 cat <<_LT_EOF 1>&2
11368
11369 *** Warning: The releases 2.8.* of the GNU linker cannot reliably
11370 *** create shared libraries on Solaris systems. Therefore, libtool
11371 *** is disabling shared libraries support. We urge you to upgrade GNU
11372 *** binutils to release 2.9.1 or newer. Another option is to modify
11373 *** your PATH or compiler configuration so that the native linker is
11374 *** used, and then restart.
11375
11376 _LT_EOF
11377 elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
11378 archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
11379 archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
11380 else
11381 ld_shlibs=no
11382 fi
11383 ;;
11384
11385 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
11386 case `$LD -v 2>&1` in
11387 *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
11388 ld_shlibs=no
11389 cat <<_LT_EOF 1>&2
11390
11391 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
11392 *** reliably create shared libraries on SCO systems. Therefore, libtool
11393 *** is disabling shared libraries support. We urge you to upgrade GNU
11394 *** binutils to release 2.16.91.0.3 or newer. Another option is to modify
11395 *** your PATH or compiler configuration so that the native linker is
11396 *** used, and then restart.
11397
11398 _LT_EOF
11399 ;;
11400 *)
11401 # For security reasons, it is highly recommended that you always
11402 # use absolute paths for naming shared libraries, and exclude the
11403 # DT_RUNPATH tag from executables and libraries. But doing so
11404 # requires that you compile everything twice, which is a pain.
11405 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
11406 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
11407 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
11408 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
11409 else
11410 ld_shlibs=no
11411 fi
11412 ;;
11413 esac
11414 ;;
11415
11416 sunos4*)
11417 archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
11418 wlarc=
11419 hardcode_direct=yes
11420 hardcode_shlibpath_var=no
11421 ;;
11422
11423 *)
11424 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
11425 archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
11426 archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
11427 else
11428 ld_shlibs=no
11429 fi
11430 ;;
11431 esac
11432
11433 if test "$ld_shlibs" = no; then
11434 runpath_var=
11435 hardcode_libdir_flag_spec=
11436 export_dynamic_flag_spec=
11437 whole_archive_flag_spec=
11438 fi
11439 else
11440 # PORTME fill in a description of your system's linker (not GNU ld)
11441 case $host_os in
11442 aix3*)
11443 allow_undefined_flag=unsupported
11444 always_export_symbols=yes
11445 archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
11446 # Note: this linker hardcodes the directories in LIBPATH if there
11447 # are no directories specified by -L.
11448 hardcode_minus_L=yes
11449 if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
11450 # Neither direct hardcoding nor static linking is supported with a
11451 # broken collect2.
11452 hardcode_direct=unsupported
11453 fi
11454 ;;
11455
11456 aix[4-9]*)
11457 if test "$host_cpu" = ia64; then
11458 # On IA64, the linker does run time linking by default, so we don't
11459 # have to do anything special.
11460 aix_use_runtimelinking=no
11461 exp_sym_flag='-Bexport'
11462 no_entry_flag=""
11463 else
11464 # If we're using GNU nm, then we don't want the "-C" option.
11465 # -C means demangle to AIX nm, but means don't demangle with GNU nm
11466 # Also, AIX nm treats weak defined symbols like other global
11467 # defined symbols, whereas GNU nm marks them as "W".
11468 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
11469 export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
11470 else
11471 export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
11472 fi
11473 aix_use_runtimelinking=no
11474
11475 # Test if we are trying to use run time linking or normal
11476 # AIX style linking. If -brtl is somewhere in LDFLAGS, we
11477 # need to do runtime linking.
11478 case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
11479 for ld_flag in $LDFLAGS; do
11480 if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
11481 aix_use_runtimelinking=yes
11482 break
11483 fi
11484 done
11485 ;;
11486 esac
11487
11488 exp_sym_flag='-bexport'
11489 no_entry_flag='-bnoentry'
11490 fi
11491
11492 # When large executables or shared objects are built, AIX ld can
11493 # have problems creating the table of contents. If linking a library
11494 # or program results in "error TOC overflow" add -mminimal-toc to
11495 # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
11496 # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
11497
11498 archive_cmds=''
11499 hardcode_direct=yes
11500 hardcode_direct_absolute=yes
11501 hardcode_libdir_separator=':'
11502 link_all_deplibs=yes
11503 file_list_spec='${wl}-f,'
11504
11505 if test "$GCC" = yes; then
11506 case $host_os in aix4.[012]|aix4.[012].*)
11507 # We only want to do this on AIX 4.2 and lower, the check
11508 # below for broken collect2 doesn't work under 4.3+
11509 collect2name=`${CC} -print-prog-name=collect2`
11510 if test -f "$collect2name" &&
11511 strings "$collect2name" | $GREP resolve_lib_name >/dev/null
11512 then
11513 # We have reworked collect2
11514 :
11515 else
11516 # We have old collect2
11517 hardcode_direct=unsupported
11518 # It fails to find uninstalled libraries when the uninstalled
11519 # path is not listed in the libpath. Setting hardcode_minus_L
11520 # to unsupported forces relinking
11521 hardcode_minus_L=yes
11522 hardcode_libdir_flag_spec='-L$libdir'
11523 hardcode_libdir_separator=
11524 fi
11525 ;;
11526 esac
11527 shared_flag='-shared'
11528 if test "$aix_use_runtimelinking" = yes; then
11529 shared_flag="$shared_flag "'${wl}-G'
11530 fi
11531 link_all_deplibs=no
11532 else
11533 # not using gcc
11534 if test "$host_cpu" = ia64; then
11535 # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
11536 # chokes on -Wl,-G. The following line is correct:
11537 shared_flag='-G'
11538 else
11539 if test "$aix_use_runtimelinking" = yes; then
11540 shared_flag='${wl}-G'
11541 else
11542 shared_flag='${wl}-bM:SRE'
11543 fi
11544 fi
11545 fi
11546
11547 export_dynamic_flag_spec='${wl}-bexpall'
11548 # It seems that -bexpall does not export symbols beginning with
11549 # underscore (_), so it is better to generate a list of symbols to export.
11550 always_export_symbols=yes
11551 if test "$aix_use_runtimelinking" = yes; then
11552 # Warning - without using the other runtime loading flags (-brtl),
11553 # -berok will link without error, but may produce a broken library.
11554 allow_undefined_flag='-berok'
11555 # Determine the default libpath from the value encoded in an
11556 # empty executable.
11557 if test "${lt_cv_aix_libpath+set}" = set; then
11558 aix_libpath=$lt_cv_aix_libpath
11559 else
11560 if ${lt_cv_aix_libpath_+:} false; then :
11561 $as_echo_n "(cached) " >&6
11562 else
11563 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
11564 /* end confdefs.h. */
11565
11566 int
11567 main ()
11568 {
11569
11570 ;
11571 return 0;
11572 }
11573 _ACEOF
11574 if ac_fn_c_try_link "$LINENO"; then :
11575
11576 lt_aix_libpath_sed='
11577 /Import File Strings/,/^$/ {
11578 /^0/ {
11579 s/^0 *\([^ ]*\) *$/\1/
11580 p
11581 }
11582 }'
11583 lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
11584 # Check for a 64-bit object if we didn't find anything.
11585 if test -z "$lt_cv_aix_libpath_"; then
11586 lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
11587 fi
11588 fi
11589 rm -f core conftest.err conftest.$ac_objext \
11590 conftest$ac_exeext conftest.$ac_ext
11591 if test -z "$lt_cv_aix_libpath_"; then
11592 lt_cv_aix_libpath_="/usr/lib:/lib"
11593 fi
11594
11595 fi
11596
11597 aix_libpath=$lt_cv_aix_libpath_
11598 fi
11599
11600 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
11601 archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
11602 else
11603 if test "$host_cpu" = ia64; then
11604 hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
11605 allow_undefined_flag="-z nodefs"
11606 archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
11607 else
11608 # Determine the default libpath from the value encoded in an
11609 # empty executable.
11610 if test "${lt_cv_aix_libpath+set}" = set; then
11611 aix_libpath=$lt_cv_aix_libpath
11612 else
11613 if ${lt_cv_aix_libpath_+:} false; then :
11614 $as_echo_n "(cached) " >&6
11615 else
11616 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
11617 /* end confdefs.h. */
11618
11619 int
11620 main ()
11621 {
11622
11623 ;
11624 return 0;
11625 }
11626 _ACEOF
11627 if ac_fn_c_try_link "$LINENO"; then :
11628
11629 lt_aix_libpath_sed='
11630 /Import File Strings/,/^$/ {
11631 /^0/ {
11632 s/^0 *\([^ ]*\) *$/\1/
11633 p
11634 }
11635 }'
11636 lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
11637 # Check for a 64-bit object if we didn't find anything.
11638 if test -z "$lt_cv_aix_libpath_"; then
11639 lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
11640 fi
11641 fi
11642 rm -f core conftest.err conftest.$ac_objext \
11643 conftest$ac_exeext conftest.$ac_ext
11644 if test -z "$lt_cv_aix_libpath_"; then
11645 lt_cv_aix_libpath_="/usr/lib:/lib"
11646 fi
11647
11648 fi
11649
11650 aix_libpath=$lt_cv_aix_libpath_
11651 fi
11652
11653 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
11654 # Warning - without using the other run time loading flags,
11655 # -berok will link without error, but may produce a broken library.
11656 no_undefined_flag=' ${wl}-bernotok'
11657 allow_undefined_flag=' ${wl}-berok'
11658 if test "$with_gnu_ld" = yes; then
11659 # We only use this code for GNU lds that support --whole-archive.
11660 whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
11661 else
11662 # Exported symbols can be pulled into shared objects from archives
11663 whole_archive_flag_spec='$convenience'
11664 fi
11665 archive_cmds_need_lc=yes
11666 # This is similar to how AIX traditionally builds its shared libraries.
11667 archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
11668 fi
11669 fi
11670 ;;
11671
11672 amigaos*)
11673 case $host_cpu in
11674 powerpc)
11675 # see comment about AmigaOS4 .so support
11676 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
11677 archive_expsym_cmds=''
11678 ;;
11679 m68k)
11680 archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
11681 hardcode_libdir_flag_spec='-L$libdir'
11682 hardcode_minus_L=yes
11683 ;;
11684 esac
11685 ;;
11686
11687 bsdi[45]*)
11688 export_dynamic_flag_spec=-rdynamic
11689 ;;
11690
11691 cygwin* | mingw* | pw32* | cegcc*)
11692 # When not using gcc, we currently assume that we are using
11693 # Microsoft Visual C++.
11694 # hardcode_libdir_flag_spec is actually meaningless, as there is
11695 # no search path for DLLs.
11696 case $cc_basename in
11697 cl*)
11698 # Native MSVC
11699 hardcode_libdir_flag_spec=' '
11700 allow_undefined_flag=unsupported
11701 always_export_symbols=yes
11702 file_list_spec='@'
11703 # Tell ltmain to make .lib files, not .a files.
11704 libext=lib
11705 # Tell ltmain to make .dll files, not .so files.
11706 shrext_cmds=".dll"
11707 # FIXME: Setting linknames here is a bad hack.
11708 archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
11709 archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
11710 sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
11711 else
11712 sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
11713 fi~
11714 $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
11715 linknames='
11716 # The linker will not automatically build a static lib if we build a DLL.
11717 # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
11718 enable_shared_with_static_runtimes=yes
11719 exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
11720 export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
11721 # Don't use ranlib
11722 old_postinstall_cmds='chmod 644 $oldlib'
11723 postlink_cmds='lt_outputfile="@OUTPUT@"~
11724 lt_tool_outputfile="@TOOL_OUTPUT@"~
11725 case $lt_outputfile in
11726 *.exe|*.EXE) ;;
11727 *)
11728 lt_outputfile="$lt_outputfile.exe"
11729 lt_tool_outputfile="$lt_tool_outputfile.exe"
11730 ;;
11731 esac~
11732 if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
11733 $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
11734 $RM "$lt_outputfile.manifest";
11735 fi'
11736 ;;
11737 *)
11738 # Assume MSVC wrapper
11739 hardcode_libdir_flag_spec=' '
11740 allow_undefined_flag=unsupported
11741 # Tell ltmain to make .lib files, not .a files.
11742 libext=lib
11743 # Tell ltmain to make .dll files, not .so files.
11744 shrext_cmds=".dll"
11745 # FIXME: Setting linknames here is a bad hack.
11746 archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
11747 # The linker will automatically build a .lib file if we build a DLL.
11748 old_archive_from_new_cmds='true'
11749 # FIXME: Should let the user specify the lib program.
11750 old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
11751 enable_shared_with_static_runtimes=yes
11752 ;;
11753 esac
11754 ;;
11755
11756 darwin* | rhapsody*)
11757
11758
11759 archive_cmds_need_lc=no
11760 hardcode_direct=no
11761 hardcode_automatic=yes
11762 hardcode_shlibpath_var=unsupported
11763 if test "$lt_cv_ld_force_load" = "yes"; then
11764 whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
11765
11766 else
11767 whole_archive_flag_spec=''
11768 fi
11769 link_all_deplibs=yes
11770 allow_undefined_flag="$_lt_dar_allow_undefined"
11771 case $cc_basename in
11772 ifort*) _lt_dar_can_shared=yes ;;
11773 *) _lt_dar_can_shared=$GCC ;;
11774 esac
11775 if test "$_lt_dar_can_shared" = "yes"; then
11776 output_verbose_link_cmd=func_echo_all
11777 archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
11778 module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
11779 archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
11780 module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
11781
11782 else
11783 ld_shlibs=no
11784 fi
11785
11786 ;;
11787
11788 dgux*)
11789 archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
11790 hardcode_libdir_flag_spec='-L$libdir'
11791 hardcode_shlibpath_var=no
11792 ;;
11793
11794 # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
11795 # support. Future versions do this automatically, but an explicit c++rt0.o
11796 # does not break anything, and helps significantly (at the cost of a little
11797 # extra space).
11798 freebsd2.2*)
11799 archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
11800 hardcode_libdir_flag_spec='-R$libdir'
11801 hardcode_direct=yes
11802 hardcode_shlibpath_var=no
11803 ;;
11804
11805 # Unfortunately, older versions of FreeBSD 2 do not have this feature.
11806 freebsd2.*)
11807 archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
11808 hardcode_direct=yes
11809 hardcode_minus_L=yes
11810 hardcode_shlibpath_var=no
11811 ;;
11812
11813 # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
11814 freebsd* | dragonfly*)
11815 archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
11816 hardcode_libdir_flag_spec='-R$libdir'
11817 hardcode_direct=yes
11818 hardcode_shlibpath_var=no
11819 ;;
11820
11821 hpux9*)
11822 if test "$GCC" = yes; then
11823 archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
11824 else
11825 archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
11826 fi
11827 hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
11828 hardcode_libdir_separator=:
11829 hardcode_direct=yes
11830
11831 # hardcode_minus_L: Not really in the search PATH,
11832 # but as the default location of the library.
11833 hardcode_minus_L=yes
11834 export_dynamic_flag_spec='${wl}-E'
11835 ;;
11836
11837 hpux10*)
11838 if test "$GCC" = yes && test "$with_gnu_ld" = no; then
11839 archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
11840 else
11841 archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
11842 fi
11843 if test "$with_gnu_ld" = no; then
11844 hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
11845 hardcode_libdir_separator=:
11846 hardcode_direct=yes
11847 hardcode_direct_absolute=yes
11848 export_dynamic_flag_spec='${wl}-E'
11849 # hardcode_minus_L: Not really in the search PATH,
11850 # but as the default location of the library.
11851 hardcode_minus_L=yes
11852 fi
11853 ;;
11854
11855 hpux11*)
11856 if test "$GCC" = yes && test "$with_gnu_ld" = no; then
11857 case $host_cpu in
11858 hppa*64*)
11859 archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
11860 ;;
11861 ia64*)
11862 archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
11863 ;;
11864 *)
11865 archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
11866 ;;
11867 esac
11868 else
11869 case $host_cpu in
11870 hppa*64*)
11871 archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
11872 ;;
11873 ia64*)
11874 archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
11875 ;;
11876 *)
11877
11878 # Older versions of the 11.00 compiler do not understand -b yet
11879 # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
11880 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
11881 $as_echo_n "checking if $CC understands -b... " >&6; }
11882 if ${lt_cv_prog_compiler__b+:} false; then :
11883 $as_echo_n "(cached) " >&6
11884 else
11885 lt_cv_prog_compiler__b=no
11886 save_LDFLAGS="$LDFLAGS"
11887 LDFLAGS="$LDFLAGS -b"
11888 echo "$lt_simple_link_test_code" > conftest.$ac_ext
11889 if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
11890 # The linker can only warn and ignore the option if not recognized
11891 # So say no if there are warnings
11892 if test -s conftest.err; then
11893 # Append any errors to the config.log.
11894 cat conftest.err 1>&5
11895 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
11896 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
11897 if diff conftest.exp conftest.er2 >/dev/null; then
11898 lt_cv_prog_compiler__b=yes
11899 fi
11900 else
11901 lt_cv_prog_compiler__b=yes
11902 fi
11903 fi
11904 $RM -r conftest*
11905 LDFLAGS="$save_LDFLAGS"
11906
11907 fi
11908 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
11909 $as_echo "$lt_cv_prog_compiler__b" >&6; }
11910
11911 if test x"$lt_cv_prog_compiler__b" = xyes; then
11912 archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
11913 else
11914 archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
11915 fi
11916
11917 ;;
11918 esac
11919 fi
11920 if test "$with_gnu_ld" = no; then
11921 hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
11922 hardcode_libdir_separator=:
11923
11924 case $host_cpu in
11925 hppa*64*|ia64*)
11926 hardcode_direct=no
11927 hardcode_shlibpath_var=no
11928 ;;
11929 *)
11930 hardcode_direct=yes
11931 hardcode_direct_absolute=yes
11932 export_dynamic_flag_spec='${wl}-E'
11933
11934 # hardcode_minus_L: Not really in the search PATH,
11935 # but as the default location of the library.
11936 hardcode_minus_L=yes
11937 ;;
11938 esac
11939 fi
11940 ;;
11941
11942 irix5* | irix6* | nonstopux*)
11943 if test "$GCC" = yes; then
11944 archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
11945 # Try to use the -exported_symbol ld option, if it does not
11946 # work, assume that -exports_file does not work either and
11947 # implicitly export all symbols.
11948 # This should be the same for all languages, so no per-tag cache variable.
11949 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
11950 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
11951 if ${lt_cv_irix_exported_symbol+:} false; then :
11952 $as_echo_n "(cached) " >&6
11953 else
11954 save_LDFLAGS="$LDFLAGS"
11955 LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
11956 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
11957 /* end confdefs.h. */
11958 int foo (void) { return 0; }
11959 _ACEOF
11960 if ac_fn_c_try_link "$LINENO"; then :
11961 lt_cv_irix_exported_symbol=yes
11962 else
11963 lt_cv_irix_exported_symbol=no
11964 fi
11965 rm -f core conftest.err conftest.$ac_objext \
11966 conftest$ac_exeext conftest.$ac_ext
11967 LDFLAGS="$save_LDFLAGS"
11968 fi
11969 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
11970 $as_echo "$lt_cv_irix_exported_symbol" >&6; }
11971 if test "$lt_cv_irix_exported_symbol" = yes; then
11972 archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
11973 fi
11974 else
11975 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
11976 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
11977 fi
11978 archive_cmds_need_lc='no'
11979 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
11980 hardcode_libdir_separator=:
11981 inherit_rpath=yes
11982 link_all_deplibs=yes
11983 ;;
11984
11985 netbsd* | netbsdelf*-gnu)
11986 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
11987 archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
11988 else
11989 archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
11990 fi
11991 hardcode_libdir_flag_spec='-R$libdir'
11992 hardcode_direct=yes
11993 hardcode_shlibpath_var=no
11994 ;;
11995
11996 newsos6)
11997 archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
11998 hardcode_direct=yes
11999 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
12000 hardcode_libdir_separator=:
12001 hardcode_shlibpath_var=no
12002 ;;
12003
12004 *nto* | *qnx*)
12005 ;;
12006
12007 openbsd*)
12008 if test -f /usr/libexec/ld.so; then
12009 hardcode_direct=yes
12010 hardcode_shlibpath_var=no
12011 hardcode_direct_absolute=yes
12012 if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
12013 archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
12014 archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
12015 hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
12016 export_dynamic_flag_spec='${wl}-E'
12017 else
12018 case $host_os in
12019 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
12020 archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
12021 hardcode_libdir_flag_spec='-R$libdir'
12022 ;;
12023 *)
12024 archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
12025 hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
12026 ;;
12027 esac
12028 fi
12029 else
12030 ld_shlibs=no
12031 fi
12032 ;;
12033
12034 os2*)
12035 hardcode_libdir_flag_spec='-L$libdir'
12036 hardcode_minus_L=yes
12037 allow_undefined_flag=unsupported
12038 archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
12039 old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
12040 ;;
12041
12042 osf3*)
12043 if test "$GCC" = yes; then
12044 allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
12045 archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
12046 else
12047 allow_undefined_flag=' -expect_unresolved \*'
12048 archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
12049 fi
12050 archive_cmds_need_lc='no'
12051 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
12052 hardcode_libdir_separator=:
12053 ;;
12054
12055 osf4* | osf5*) # as osf3* with the addition of -msym flag
12056 if test "$GCC" = yes; then
12057 allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
12058 archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
12059 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
12060 else
12061 allow_undefined_flag=' -expect_unresolved \*'
12062 archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
12063 archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
12064 $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
12065
12066 # Both c and cxx compiler support -rpath directly
12067 hardcode_libdir_flag_spec='-rpath $libdir'
12068 fi
12069 archive_cmds_need_lc='no'
12070 hardcode_libdir_separator=:
12071 ;;
12072
12073 solaris*)
12074 no_undefined_flag=' -z defs'
12075 if test "$GCC" = yes; then
12076 wlarc='${wl}'
12077 archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
12078 archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
12079 $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
12080 else
12081 case `$CC -V 2>&1` in
12082 *"Compilers 5.0"*)
12083 wlarc=''
12084 archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
12085 archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
12086 $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
12087 ;;
12088 *)
12089 wlarc='${wl}'
12090 archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
12091 archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
12092 $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
12093 ;;
12094 esac
12095 fi
12096 hardcode_libdir_flag_spec='-R$libdir'
12097 hardcode_shlibpath_var=no
12098 case $host_os in
12099 solaris2.[0-5] | solaris2.[0-5].*) ;;
12100 *)
12101 # The compiler driver will combine and reorder linker options,
12102 # but understands `-z linker_flag'. GCC discards it without `$wl',
12103 # but is careful enough not to reorder.
12104 # Supported since Solaris 2.6 (maybe 2.5.1?)
12105 if test "$GCC" = yes; then
12106 whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
12107 else
12108 whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
12109 fi
12110 ;;
12111 esac
12112 link_all_deplibs=yes
12113 ;;
12114
12115 sunos4*)
12116 if test "x$host_vendor" = xsequent; then
12117 # Use $CC to link under sequent, because it throws in some extra .o
12118 # files that make .init and .fini sections work.
12119 archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
12120 else
12121 archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
12122 fi
12123 hardcode_libdir_flag_spec='-L$libdir'
12124 hardcode_direct=yes
12125 hardcode_minus_L=yes
12126 hardcode_shlibpath_var=no
12127 ;;
12128
12129 sysv4)
12130 case $host_vendor in
12131 sni)
12132 archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12133 hardcode_direct=yes # is this really true???
12134 ;;
12135 siemens)
12136 ## LD is ld it makes a PLAMLIB
12137 ## CC just makes a GrossModule.
12138 archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
12139 reload_cmds='$CC -r -o $output$reload_objs'
12140 hardcode_direct=no
12141 ;;
12142 motorola)
12143 archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12144 hardcode_direct=no #Motorola manual says yes, but my tests say they lie
12145 ;;
12146 esac
12147 runpath_var='LD_RUN_PATH'
12148 hardcode_shlibpath_var=no
12149 ;;
12150
12151 sysv4.3*)
12152 archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12153 hardcode_shlibpath_var=no
12154 export_dynamic_flag_spec='-Bexport'
12155 ;;
12156
12157 sysv4*MP*)
12158 if test -d /usr/nec; then
12159 archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12160 hardcode_shlibpath_var=no
12161 runpath_var=LD_RUN_PATH
12162 hardcode_runpath_var=yes
12163 ld_shlibs=yes
12164 fi
12165 ;;
12166
12167 sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
12168 no_undefined_flag='${wl}-z,text'
12169 archive_cmds_need_lc=no
12170 hardcode_shlibpath_var=no
12171 runpath_var='LD_RUN_PATH'
12172
12173 if test "$GCC" = yes; then
12174 archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
12175 archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
12176 else
12177 archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
12178 archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
12179 fi
12180 ;;
12181
12182 sysv5* | sco3.2v5* | sco5v6*)
12183 # Note: We can NOT use -z defs as we might desire, because we do not
12184 # link with -lc, and that would cause any symbols used from libc to
12185 # always be unresolved, which means just about no library would
12186 # ever link correctly. If we're not using GNU ld we use -z text
12187 # though, which does catch some bad symbols but isn't as heavy-handed
12188 # as -z defs.
12189 no_undefined_flag='${wl}-z,text'
12190 allow_undefined_flag='${wl}-z,nodefs'
12191 archive_cmds_need_lc=no
12192 hardcode_shlibpath_var=no
12193 hardcode_libdir_flag_spec='${wl}-R,$libdir'
12194 hardcode_libdir_separator=':'
12195 link_all_deplibs=yes
12196 export_dynamic_flag_spec='${wl}-Bexport'
12197 runpath_var='LD_RUN_PATH'
12198
12199 if test "$GCC" = yes; then
12200 archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
12201 archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
12202 else
12203 archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
12204 archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
12205 fi
12206 ;;
12207
12208 uts4*)
12209 archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
12210 hardcode_libdir_flag_spec='-L$libdir'
12211 hardcode_shlibpath_var=no
12212 ;;
12213
12214 *)
12215 ld_shlibs=no
12216 ;;
12217 esac
12218
12219 if test x$host_vendor = xsni; then
12220 case $host in
12221 sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
12222 export_dynamic_flag_spec='${wl}-Blargedynsym'
12223 ;;
12224 esac
12225 fi
12226 fi
12227
12228 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
12229 $as_echo "$ld_shlibs" >&6; }
12230 test "$ld_shlibs" = no && can_build_shared=no
12231
12232 with_gnu_ld=$with_gnu_ld
12233
12234
12235
12236
12237
12238
12239
12240
12241
12242
12243
12244
12245
12246
12247
12248 #
12249 # Do we need to explicitly link libc?
12250 #
12251 case "x$archive_cmds_need_lc" in
12252 x|xyes)
12253 # Assume -lc should be added
12254 archive_cmds_need_lc=yes
12255
12256 if test "$enable_shared" = yes && test "$GCC" = yes; then
12257 case $archive_cmds in
12258 *'~'*)
12259 # FIXME: we may have to deal with multi-command sequences.
12260 ;;
12261 '$CC '*)
12262 # Test whether the compiler implicitly links with -lc since on some
12263 # systems, -lgcc has to come before -lc. If gcc already passes -lc
12264 # to ld, don't add -lc before -lgcc.
12265 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
12266 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
12267 if ${lt_cv_archive_cmds_need_lc+:} false; then :
12268 $as_echo_n "(cached) " >&6
12269 else
12270 $RM conftest*
12271 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
12272
12273 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
12274 (eval $ac_compile) 2>&5
12275 ac_status=$?
12276 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
12277 test $ac_status = 0; } 2>conftest.err; then
12278 soname=conftest
12279 lib=conftest
12280 libobjs=conftest.$ac_objext
12281 deplibs=
12282 wl=$lt_prog_compiler_wl
12283 pic_flag=$lt_prog_compiler_pic
12284 compiler_flags=-v
12285 linker_flags=-v
12286 verstring=
12287 output_objdir=.
12288 libname=conftest
12289 lt_save_allow_undefined_flag=$allow_undefined_flag
12290 allow_undefined_flag=
12291 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
12292 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
12293 ac_status=$?
12294 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
12295 test $ac_status = 0; }
12296 then
12297 lt_cv_archive_cmds_need_lc=no
12298 else
12299 lt_cv_archive_cmds_need_lc=yes
12300 fi
12301 allow_undefined_flag=$lt_save_allow_undefined_flag
12302 else
12303 cat conftest.err 1>&5
12304 fi
12305 $RM conftest*
12306
12307 fi
12308 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
12309 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
12310 archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
12311 ;;
12312 esac
12313 fi
12314 ;;
12315 esac
12316
12317
12318
12319
12320
12321
12322
12323
12324
12325
12326
12327
12328
12329
12330
12331
12332
12333
12334
12335
12336
12337
12338
12339
12340
12341
12342
12343
12344
12345
12346
12347
12348
12349
12350
12351
12352
12353
12354
12355
12356
12357
12358
12359
12360
12361
12362
12363
12364
12365
12366
12367
12368
12369
12370
12371
12372
12373
12374
12375
12376
12377
12378
12379
12380
12381
12382
12383
12384
12385
12386
12387
12388
12389
12390
12391
12392
12393
12394
12395
12396
12397
12398
12399
12400
12401
12402
12403
12404
12405
12406
12407
12408
12409
12410
12411
12412
12413
12414
12415
12416
12417
12418
12419
12420
12421
12422
12423
12424
12425
12426
12427
12428
12429
12430
12431
12432
12433
12434
12435
12436
12437
12438
12439
12440
12441
12442
12443
12444
12445
12446
12447
12448
12449
12450
12451
12452
12453
12454
12455
12456
12457
12458
12459
12460
12461
12462
12463
12464
12465
12466
12467
12468 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
12469 $as_echo_n "checking dynamic linker characteristics... " >&6; }
12470
12471 if test "$GCC" = yes; then
12472 case $host_os in
12473 darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
12474 *) lt_awk_arg="/^libraries:/" ;;
12475 esac
12476 case $host_os in
12477 mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
12478 *) lt_sed_strip_eq="s,=/,/,g" ;;
12479 esac
12480 lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
12481 case $lt_search_path_spec in
12482 *\;*)
12483 # if the path contains ";" then we assume it to be the separator
12484 # otherwise default to the standard path separator (i.e. ":") - it is
12485 # assumed that no part of a normal pathname contains ";" but that should
12486 # okay in the real world where ";" in dirpaths is itself problematic.
12487 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
12488 ;;
12489 *)
12490 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
12491 ;;
12492 esac
12493 # Ok, now we have the path, separated by spaces, we can step through it
12494 # and add multilib dir if necessary.
12495 lt_tmp_lt_search_path_spec=
12496 lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
12497 for lt_sys_path in $lt_search_path_spec; do
12498 if test -d "$lt_sys_path/$lt_multi_os_dir"; then
12499 lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
12500 else
12501 test -d "$lt_sys_path" && \
12502 lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
12503 fi
12504 done
12505 lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
12506 BEGIN {RS=" "; FS="/|\n";} {
12507 lt_foo="";
12508 lt_count=0;
12509 for (lt_i = NF; lt_i > 0; lt_i--) {
12510 if ($lt_i != "" && $lt_i != ".") {
12511 if ($lt_i == "..") {
12512 lt_count++;
12513 } else {
12514 if (lt_count == 0) {
12515 lt_foo="/" $lt_i lt_foo;
12516 } else {
12517 lt_count--;
12518 }
12519 }
12520 }
12521 }
12522 if (lt_foo != "") { lt_freq[lt_foo]++; }
12523 if (lt_freq[lt_foo] == 1) { print lt_foo; }
12524 }'`
12525 # AWK program above erroneously prepends '/' to C:/dos/paths
12526 # for these hosts.
12527 case $host_os in
12528 mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
12529 $SED 's,/\([A-Za-z]:\),\1,g'` ;;
12530 esac
12531 sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
12532 else
12533 sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
12534 fi
12535 library_names_spec=
12536 libname_spec='lib$name'
12537 soname_spec=
12538 shrext_cmds=".so"
12539 postinstall_cmds=
12540 postuninstall_cmds=
12541 finish_cmds=
12542 finish_eval=
12543 shlibpath_var=
12544 shlibpath_overrides_runpath=unknown
12545 version_type=none
12546 dynamic_linker="$host_os ld.so"
12547 sys_lib_dlsearch_path_spec="/lib /usr/lib"
12548 need_lib_prefix=unknown
12549 hardcode_into_libs=no
12550
12551 # when you set need_version to no, make sure it does not cause -set_version
12552 # flags to be left without arguments
12553 need_version=unknown
12554
12555 case $host_os in
12556 aix3*)
12557 version_type=linux # correct to gnu/linux during the next big refactor
12558 library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
12559 shlibpath_var=LIBPATH
12560
12561 # AIX 3 has no versioning support, so we append a major version to the name.
12562 soname_spec='${libname}${release}${shared_ext}$major'
12563 ;;
12564
12565 aix[4-9]*)
12566 version_type=linux # correct to gnu/linux during the next big refactor
12567 need_lib_prefix=no
12568 need_version=no
12569 hardcode_into_libs=yes
12570 if test "$host_cpu" = ia64; then
12571 # AIX 5 supports IA64
12572 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
12573 shlibpath_var=LD_LIBRARY_PATH
12574 else
12575 # With GCC up to 2.95.x, collect2 would create an import file
12576 # for dependence libraries. The import file would start with
12577 # the line `#! .'. This would cause the generated library to
12578 # depend on `.', always an invalid library. This was fixed in
12579 # development snapshots of GCC prior to 3.0.
12580 case $host_os in
12581 aix4 | aix4.[01] | aix4.[01].*)
12582 if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
12583 echo ' yes '
12584 echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
12585 :
12586 else
12587 can_build_shared=no
12588 fi
12589 ;;
12590 esac
12591 # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
12592 # soname into executable. Probably we can add versioning support to
12593 # collect2, so additional links can be useful in future.
12594 if test "$aix_use_runtimelinking" = yes; then
12595 # If using run time linking (on AIX 4.2 or later) use lib<name>.so
12596 # instead of lib<name>.a to let people know that these are not
12597 # typical AIX shared libraries.
12598 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
12599 else
12600 # We preserve .a as extension for shared libraries through AIX4.2
12601 # and later when we are not doing run time linking.
12602 library_names_spec='${libname}${release}.a $libname.a'
12603 soname_spec='${libname}${release}${shared_ext}$major'
12604 fi
12605 shlibpath_var=LIBPATH
12606 fi
12607 ;;
12608
12609 amigaos*)
12610 case $host_cpu in
12611 powerpc)
12612 # Since July 2007 AmigaOS4 officially supports .so libraries.
12613 # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
12614 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
12615 ;;
12616 m68k)
12617 library_names_spec='$libname.ixlibrary $libname.a'
12618 # Create ${libname}_ixlibrary.a entries in /sys/libs.
12619 finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
12620 ;;
12621 esac
12622 ;;
12623
12624 beos*)
12625 library_names_spec='${libname}${shared_ext}'
12626 dynamic_linker="$host_os ld.so"
12627 shlibpath_var=LIBRARY_PATH
12628 ;;
12629
12630 bsdi[45]*)
12631 version_type=linux # correct to gnu/linux during the next big refactor
12632 need_version=no
12633 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
12634 soname_spec='${libname}${release}${shared_ext}$major'
12635 finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
12636 shlibpath_var=LD_LIBRARY_PATH
12637 sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
12638 sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
12639 # the default ld.so.conf also contains /usr/contrib/lib and
12640 # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
12641 # libtool to hard-code these into programs
12642 ;;
12643
12644 cygwin* | mingw* | pw32* | cegcc*)
12645 version_type=windows
12646 shrext_cmds=".dll"
12647 need_version=no
12648 need_lib_prefix=no
12649
12650 case $GCC,$cc_basename in
12651 yes,*)
12652 # gcc
12653 library_names_spec='$libname.dll.a'
12654 # DLL is installed to $(libdir)/../bin by postinstall_cmds
12655 postinstall_cmds='base_file=`basename \${file}`~
12656 dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
12657 dldir=$destdir/`dirname \$dlpath`~
12658 test -d \$dldir || mkdir -p \$dldir~
12659 $install_prog $dir/$dlname \$dldir/$dlname~
12660 chmod a+x \$dldir/$dlname~
12661 if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
12662 eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
12663 fi'
12664 postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
12665 dlpath=$dir/\$dldll~
12666 $RM \$dlpath'
12667 shlibpath_overrides_runpath=yes
12668
12669 case $host_os in
12670 cygwin*)
12671 # Cygwin DLLs use 'cyg' prefix rather than 'lib'
12672 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
12673
12674 sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
12675 ;;
12676 mingw* | cegcc*)
12677 # MinGW DLLs use traditional 'lib' prefix
12678 soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
12679 ;;
12680 pw32*)
12681 # pw32 DLLs use 'pw' prefix rather than 'lib'
12682 library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
12683 ;;
12684 esac
12685 dynamic_linker='Win32 ld.exe'
12686 ;;
12687
12688 *,cl*)
12689 # Native MSVC
12690 libname_spec='$name'
12691 soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
12692 library_names_spec='${libname}.dll.lib'
12693
12694 case $build_os in
12695 mingw*)
12696 sys_lib_search_path_spec=
12697 lt_save_ifs=$IFS
12698 IFS=';'
12699 for lt_path in $LIB
12700 do
12701 IFS=$lt_save_ifs
12702 # Let DOS variable expansion print the short 8.3 style file name.
12703 lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
12704 sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
12705 done
12706 IFS=$lt_save_ifs
12707 # Convert to MSYS style.
12708 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
12709 ;;
12710 cygwin*)
12711 # Convert to unix form, then to dos form, then back to unix form
12712 # but this time dos style (no spaces!) so that the unix form looks
12713 # like /cygdrive/c/PROGRA~1:/cygdr...
12714 sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
12715 sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
12716 sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
12717 ;;
12718 *)
12719 sys_lib_search_path_spec="$LIB"
12720 if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
12721 # It is most probably a Windows format PATH.
12722 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
12723 else
12724 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
12725 fi
12726 # FIXME: find the short name or the path components, as spaces are
12727 # common. (e.g. "Program Files" -> "PROGRA~1")
12728 ;;
12729 esac
12730
12731 # DLL is installed to $(libdir)/../bin by postinstall_cmds
12732 postinstall_cmds='base_file=`basename \${file}`~
12733 dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
12734 dldir=$destdir/`dirname \$dlpath`~
12735 test -d \$dldir || mkdir -p \$dldir~
12736 $install_prog $dir/$dlname \$dldir/$dlname'
12737 postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
12738 dlpath=$dir/\$dldll~
12739 $RM \$dlpath'
12740 shlibpath_overrides_runpath=yes
12741 dynamic_linker='Win32 link.exe'
12742 ;;
12743
12744 *)
12745 # Assume MSVC wrapper
12746 library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
12747 dynamic_linker='Win32 ld.exe'
12748 ;;
12749 esac
12750 # FIXME: first we should search . and the directory the executable is in
12751 shlibpath_var=PATH
12752 ;;
12753
12754 darwin* | rhapsody*)
12755 dynamic_linker="$host_os dyld"
12756 version_type=darwin
12757 need_lib_prefix=no
12758 need_version=no
12759 library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
12760 soname_spec='${libname}${release}${major}$shared_ext'
12761 shlibpath_overrides_runpath=yes
12762 shlibpath_var=DYLD_LIBRARY_PATH
12763 shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
12764
12765 sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
12766 sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
12767 ;;
12768
12769 dgux*)
12770 version_type=linux # correct to gnu/linux during the next big refactor
12771 need_lib_prefix=no
12772 need_version=no
12773 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
12774 soname_spec='${libname}${release}${shared_ext}$major'
12775 shlibpath_var=LD_LIBRARY_PATH
12776 ;;
12777
12778 freebsd* | dragonfly*)
12779 # DragonFly does not have aout. When/if they implement a new
12780 # versioning mechanism, adjust this.
12781 if test -x /usr/bin/objformat; then
12782 objformat=`/usr/bin/objformat`
12783 else
12784 case $host_os in
12785 freebsd[23].*) objformat=aout ;;
12786 *) objformat=elf ;;
12787 esac
12788 fi
12789 version_type=freebsd-$objformat
12790 case $version_type in
12791 freebsd-elf*)
12792 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
12793 need_version=no
12794 need_lib_prefix=no
12795 ;;
12796 freebsd-*)
12797 library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
12798 need_version=yes
12799 ;;
12800 esac
12801 shlibpath_var=LD_LIBRARY_PATH
12802 case $host_os in
12803 freebsd2.*)
12804 shlibpath_overrides_runpath=yes
12805 ;;
12806 freebsd3.[01]* | freebsdelf3.[01]*)
12807 shlibpath_overrides_runpath=yes
12808 hardcode_into_libs=yes
12809 ;;
12810 freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
12811 freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
12812 shlibpath_overrides_runpath=no
12813 hardcode_into_libs=yes
12814 ;;
12815 *) # from 4.6 on, and DragonFly
12816 shlibpath_overrides_runpath=yes
12817 hardcode_into_libs=yes
12818 ;;
12819 esac
12820 ;;
12821
12822 haiku*)
12823 version_type=linux # correct to gnu/linux during the next big refactor
12824 need_lib_prefix=no
12825 need_version=no
12826 dynamic_linker="$host_os runtime_loader"
12827 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
12828 soname_spec='${libname}${release}${shared_ext}$major'
12829 shlibpath_var=LIBRARY_PATH
12830 shlibpath_overrides_runpath=yes
12831 sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
12832 hardcode_into_libs=yes
12833 ;;
12834
12835 hpux9* | hpux10* | hpux11*)
12836 # Give a soname corresponding to the major version so that dld.sl refuses to
12837 # link against other versions.
12838 version_type=sunos
12839 need_lib_prefix=no
12840 need_version=no
12841 case $host_cpu in
12842 ia64*)
12843 shrext_cmds='.so'
12844 hardcode_into_libs=yes
12845 dynamic_linker="$host_os dld.so"
12846 shlibpath_var=LD_LIBRARY_PATH
12847 shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
12848 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
12849 soname_spec='${libname}${release}${shared_ext}$major'
12850 if test "X$HPUX_IA64_MODE" = X32; then
12851 sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
12852 else
12853 sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
12854 fi
12855 sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
12856 ;;
12857 hppa*64*)
12858 shrext_cmds='.sl'
12859 hardcode_into_libs=yes
12860 dynamic_linker="$host_os dld.sl"
12861 shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
12862 shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
12863 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
12864 soname_spec='${libname}${release}${shared_ext}$major'
12865 sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
12866 sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
12867 ;;
12868 *)
12869 shrext_cmds='.sl'
12870 dynamic_linker="$host_os dld.sl"
12871 shlibpath_var=SHLIB_PATH
12872 shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
12873 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
12874 soname_spec='${libname}${release}${shared_ext}$major'
12875 ;;
12876 esac
12877 # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
12878 postinstall_cmds='chmod 555 $lib'
12879 # or fails outright, so override atomically:
12880 install_override_mode=555
12881 ;;
12882
12883 interix[3-9]*)
12884 version_type=linux # correct to gnu/linux during the next big refactor
12885 need_lib_prefix=no
12886 need_version=no
12887 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
12888 soname_spec='${libname}${release}${shared_ext}$major'
12889 dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
12890 shlibpath_var=LD_LIBRARY_PATH
12891 shlibpath_overrides_runpath=no
12892 hardcode_into_libs=yes
12893 ;;
12894
12895 irix5* | irix6* | nonstopux*)
12896 case $host_os in
12897 nonstopux*) version_type=nonstopux ;;
12898 *)
12899 if test "$lt_cv_prog_gnu_ld" = yes; then
12900 version_type=linux # correct to gnu/linux during the next big refactor
12901 else
12902 version_type=irix
12903 fi ;;
12904 esac
12905 need_lib_prefix=no
12906 need_version=no
12907 soname_spec='${libname}${release}${shared_ext}$major'
12908 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
12909 case $host_os in
12910 irix5* | nonstopux*)
12911 libsuff= shlibsuff=
12912 ;;
12913 *)
12914 case $LD in # libtool.m4 will add one of these switches to LD
12915 *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
12916 libsuff= shlibsuff= libmagic=32-bit;;
12917 *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
12918 libsuff=32 shlibsuff=N32 libmagic=N32;;
12919 *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
12920 libsuff=64 shlibsuff=64 libmagic=64-bit;;
12921 *) libsuff= shlibsuff= libmagic=never-match;;
12922 esac
12923 ;;
12924 esac
12925 shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
12926 shlibpath_overrides_runpath=no
12927 sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
12928 sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
12929 hardcode_into_libs=yes
12930 ;;
12931
12932 # No shared lib support for Linux oldld, aout, or coff.
12933 linux*oldld* | linux*aout* | linux*coff*)
12934 dynamic_linker=no
12935 ;;
12936
12937 # This must be glibc/ELF.
12938 linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
12939 version_type=linux # correct to gnu/linux during the next big refactor
12940 need_lib_prefix=no
12941 need_version=no
12942 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
12943 soname_spec='${libname}${release}${shared_ext}$major'
12944 finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
12945 shlibpath_var=LD_LIBRARY_PATH
12946 shlibpath_overrides_runpath=no
12947
12948 # Some binutils ld are patched to set DT_RUNPATH
12949 if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
12950 $as_echo_n "(cached) " >&6
12951 else
12952 lt_cv_shlibpath_overrides_runpath=no
12953 save_LDFLAGS=$LDFLAGS
12954 save_libdir=$libdir
12955 eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
12956 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
12957 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
12958 /* end confdefs.h. */
12959
12960 int
12961 main ()
12962 {
12963
12964 ;
12965 return 0;
12966 }
12967 _ACEOF
12968 if ac_fn_c_try_link "$LINENO"; then :
12969 if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
12970 lt_cv_shlibpath_overrides_runpath=yes
12971 fi
12972 fi
12973 rm -f core conftest.err conftest.$ac_objext \
12974 conftest$ac_exeext conftest.$ac_ext
12975 LDFLAGS=$save_LDFLAGS
12976 libdir=$save_libdir
12977
12978 fi
12979
12980 shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
12981
12982 # This implies no fast_install, which is unacceptable.
12983 # Some rework will be needed to allow for fast_install
12984 # before this can be enabled.
12985 hardcode_into_libs=yes
12986
12987 # Append ld.so.conf contents to the search path
12988 if test -f /etc/ld.so.conf; then
12989 lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
12990 sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
12991 fi
12992
12993 # We used to test for /lib/ld.so.1 and disable shared libraries on
12994 # powerpc, because MkLinux only supported shared libraries with the
12995 # GNU dynamic linker. Since this was broken with cross compilers,
12996 # most powerpc-linux boxes support dynamic linking these days and
12997 # people can always --disable-shared, the test was removed, and we
12998 # assume the GNU/Linux dynamic linker is in use.
12999 dynamic_linker='GNU/Linux ld.so'
13000 ;;
13001
13002 netbsdelf*-gnu)
13003 version_type=linux
13004 need_lib_prefix=no
13005 need_version=no
13006 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
13007 soname_spec='${libname}${release}${shared_ext}$major'
13008 shlibpath_var=LD_LIBRARY_PATH
13009 shlibpath_overrides_runpath=no
13010 hardcode_into_libs=yes
13011 dynamic_linker='NetBSD ld.elf_so'
13012 ;;
13013
13014 netbsd*)
13015 version_type=sunos
13016 need_lib_prefix=no
13017 need_version=no
13018 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
13019 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
13020 finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
13021 dynamic_linker='NetBSD (a.out) ld.so'
13022 else
13023 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
13024 soname_spec='${libname}${release}${shared_ext}$major'
13025 dynamic_linker='NetBSD ld.elf_so'
13026 fi
13027 shlibpath_var=LD_LIBRARY_PATH
13028 shlibpath_overrides_runpath=yes
13029 hardcode_into_libs=yes
13030 ;;
13031
13032 newsos6)
13033 version_type=linux # correct to gnu/linux during the next big refactor
13034 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
13035 shlibpath_var=LD_LIBRARY_PATH
13036 shlibpath_overrides_runpath=yes
13037 ;;
13038
13039 *nto* | *qnx*)
13040 version_type=qnx
13041 need_lib_prefix=no
13042 need_version=no
13043 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
13044 soname_spec='${libname}${release}${shared_ext}$major'
13045 shlibpath_var=LD_LIBRARY_PATH
13046 shlibpath_overrides_runpath=no
13047 hardcode_into_libs=yes
13048 dynamic_linker='ldqnx.so'
13049 ;;
13050
13051 openbsd*)
13052 version_type=sunos
13053 sys_lib_dlsearch_path_spec="/usr/lib"
13054 need_lib_prefix=no
13055 # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
13056 case $host_os in
13057 openbsd3.3 | openbsd3.3.*) need_version=yes ;;
13058 *) need_version=no ;;
13059 esac
13060 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
13061 finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
13062 shlibpath_var=LD_LIBRARY_PATH
13063 if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
13064 case $host_os in
13065 openbsd2.[89] | openbsd2.[89].*)
13066 shlibpath_overrides_runpath=no
13067 ;;
13068 *)
13069 shlibpath_overrides_runpath=yes
13070 ;;
13071 esac
13072 else
13073 shlibpath_overrides_runpath=yes
13074 fi
13075 ;;
13076
13077 os2*)
13078 libname_spec='$name'
13079 shrext_cmds=".dll"
13080 need_lib_prefix=no
13081 library_names_spec='$libname${shared_ext} $libname.a'
13082 dynamic_linker='OS/2 ld.exe'
13083 shlibpath_var=LIBPATH
13084 ;;
13085
13086 osf3* | osf4* | osf5*)
13087 version_type=osf
13088 need_lib_prefix=no
13089 need_version=no
13090 soname_spec='${libname}${release}${shared_ext}$major'
13091 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
13092 shlibpath_var=LD_LIBRARY_PATH
13093 sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
13094 sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
13095 ;;
13096
13097 rdos*)
13098 dynamic_linker=no
13099 ;;
13100
13101 solaris*)
13102 version_type=linux # correct to gnu/linux during the next big refactor
13103 need_lib_prefix=no
13104 need_version=no
13105 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
13106 soname_spec='${libname}${release}${shared_ext}$major'
13107 shlibpath_var=LD_LIBRARY_PATH
13108 shlibpath_overrides_runpath=yes
13109 hardcode_into_libs=yes
13110 # ldd complains unless libraries are executable
13111 postinstall_cmds='chmod +x $lib'
13112 ;;
13113
13114 sunos4*)
13115 version_type=sunos
13116 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
13117 finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
13118 shlibpath_var=LD_LIBRARY_PATH
13119 shlibpath_overrides_runpath=yes
13120 if test "$with_gnu_ld" = yes; then
13121 need_lib_prefix=no
13122 fi
13123 need_version=yes
13124 ;;
13125
13126 sysv4 | sysv4.3*)
13127 version_type=linux # correct to gnu/linux during the next big refactor
13128 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
13129 soname_spec='${libname}${release}${shared_ext}$major'
13130 shlibpath_var=LD_LIBRARY_PATH
13131 case $host_vendor in
13132 sni)
13133 shlibpath_overrides_runpath=no
13134 need_lib_prefix=no
13135 runpath_var=LD_RUN_PATH
13136 ;;
13137 siemens)
13138 need_lib_prefix=no
13139 ;;
13140 motorola)
13141 need_lib_prefix=no
13142 need_version=no
13143 shlibpath_overrides_runpath=no
13144 sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
13145 ;;
13146 esac
13147 ;;
13148
13149 sysv4*MP*)
13150 if test -d /usr/nec ;then
13151 version_type=linux # correct to gnu/linux during the next big refactor
13152 library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
13153 soname_spec='$libname${shared_ext}.$major'
13154 shlibpath_var=LD_LIBRARY_PATH
13155 fi
13156 ;;
13157
13158 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
13159 version_type=freebsd-elf
13160 need_lib_prefix=no
13161 need_version=no
13162 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
13163 soname_spec='${libname}${release}${shared_ext}$major'
13164 shlibpath_var=LD_LIBRARY_PATH
13165 shlibpath_overrides_runpath=yes
13166 hardcode_into_libs=yes
13167 if test "$with_gnu_ld" = yes; then
13168 sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
13169 else
13170 sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
13171 case $host_os in
13172 sco3.2v5*)
13173 sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
13174 ;;
13175 esac
13176 fi
13177 sys_lib_dlsearch_path_spec='/usr/lib'
13178 ;;
13179
13180 tpf*)
13181 # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
13182 version_type=linux # correct to gnu/linux during the next big refactor
13183 need_lib_prefix=no
13184 need_version=no
13185 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
13186 shlibpath_var=LD_LIBRARY_PATH
13187 shlibpath_overrides_runpath=no
13188 hardcode_into_libs=yes
13189 ;;
13190
13191 uts4*)
13192 version_type=linux # correct to gnu/linux during the next big refactor
13193 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
13194 soname_spec='${libname}${release}${shared_ext}$major'
13195 shlibpath_var=LD_LIBRARY_PATH
13196 ;;
13197
13198 *)
13199 dynamic_linker=no
13200 ;;
13201 esac
13202 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
13203 $as_echo "$dynamic_linker" >&6; }
13204 test "$dynamic_linker" = no && can_build_shared=no
13205
13206 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
13207 if test "$GCC" = yes; then
13208 variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
13209 fi
13210
13211 if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
13212 sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
13213 fi
13214 if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
13215 sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
13216 fi
13217
13218
13219
13220
13221
13222
13223
13224
13225
13226
13227
13228
13229
13230
13231
13232
13233
13234
13235
13236
13237
13238
13239
13240
13241
13242
13243
13244
13245
13246
13247
13248
13249
13250
13251
13252
13253
13254
13255
13256
13257
13258
13259
13260
13261
13262
13263
13264
13265
13266
13267
13268
13269
13270
13271
13272
13273
13274
13275
13276
13277
13278
13279
13280
13281
13282
13283
13284
13285
13286
13287
13288
13289
13290
13291
13292
13293
13294
13295
13296
13297
13298
13299
13300
13301
13302
13303
13304
13305
13306
13307
13308
13309 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
13310 $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
13311 hardcode_action=
13312 if test -n "$hardcode_libdir_flag_spec" ||
13313 test -n "$runpath_var" ||
13314 test "X$hardcode_automatic" = "Xyes" ; then
13315
13316 # We can hardcode non-existent directories.
13317 if test "$hardcode_direct" != no &&
13318 # If the only mechanism to avoid hardcoding is shlibpath_var, we
13319 # have to relink, otherwise we might link with an installed library
13320 # when we should be linking with a yet-to-be-installed one
13321 ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
13322 test "$hardcode_minus_L" != no; then
13323 # Linking always hardcodes the temporary library directory.
13324 hardcode_action=relink
13325 else
13326 # We can link without hardcoding, and we can hardcode nonexisting dirs.
13327 hardcode_action=immediate
13328 fi
13329 else
13330 # We cannot hardcode anything, or else we can only hardcode existing
13331 # directories.
13332 hardcode_action=unsupported
13333 fi
13334 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
13335 $as_echo "$hardcode_action" >&6; }
13336
13337 if test "$hardcode_action" = relink ||
13338 test "$inherit_rpath" = yes; then
13339 # Fast installation is not supported
13340 enable_fast_install=no
13341 elif test "$shlibpath_overrides_runpath" = yes ||
13342 test "$enable_shared" = no; then
13343 # Fast installation is not necessary
13344 enable_fast_install=needless
13345 fi
13346
13347
13348
13349
13350
13351
13352 if test "x$enable_dlopen" != xyes; then
13353 enable_dlopen=unknown
13354 enable_dlopen_self=unknown
13355 enable_dlopen_self_static=unknown
13356 else
13357 lt_cv_dlopen=no
13358 lt_cv_dlopen_libs=
13359
13360 case $host_os in
13361 beos*)
13362 lt_cv_dlopen="load_add_on"
13363 lt_cv_dlopen_libs=
13364 lt_cv_dlopen_self=yes
13365 ;;
13366
13367 mingw* | pw32* | cegcc*)
13368 lt_cv_dlopen="LoadLibrary"
13369 lt_cv_dlopen_libs=
13370 ;;
13371
13372 cygwin*)
13373 lt_cv_dlopen="dlopen"
13374 lt_cv_dlopen_libs=
13375 ;;
13376
13377 darwin*)
13378 # if libdl is installed we need to link against it
13379 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
13380 $as_echo_n "checking for dlopen in -ldl... " >&6; }
13381 if ${ac_cv_lib_dl_dlopen+:} false; then :
13382 $as_echo_n "(cached) " >&6
13383 else
13384 ac_check_lib_save_LIBS=$LIBS
13385 LIBS="-ldl $LIBS"
13386 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13387 /* end confdefs.h. */
13388
13389 /* Override any GCC internal prototype to avoid an error.
13390 Use char because int might match the return type of a GCC
13391 builtin and then its argument prototype would still apply. */
13392 #ifdef __cplusplus
13393 extern "C"
13394 #endif
13395 char dlopen ();
13396 int
13397 main ()
13398 {
13399 return dlopen ();
13400 ;
13401 return 0;
13402 }
13403 _ACEOF
13404 if ac_fn_c_try_link "$LINENO"; then :
13405 ac_cv_lib_dl_dlopen=yes
13406 else
13407 ac_cv_lib_dl_dlopen=no
13408 fi
13409 rm -f core conftest.err conftest.$ac_objext \
13410 conftest$ac_exeext conftest.$ac_ext
13411 LIBS=$ac_check_lib_save_LIBS
13412 fi
13413 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
13414 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
13415 if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
13416 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
13417 else
13418
13419 lt_cv_dlopen="dyld"
13420 lt_cv_dlopen_libs=
13421 lt_cv_dlopen_self=yes
13422
13423 fi
13424
13425 ;;
13426
13427 *)
13428 ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
13429 if test "x$ac_cv_func_shl_load" = xyes; then :
13430 lt_cv_dlopen="shl_load"
13431 else
13432 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
13433 $as_echo_n "checking for shl_load in -ldld... " >&6; }
13434 if ${ac_cv_lib_dld_shl_load+:} false; then :
13435 $as_echo_n "(cached) " >&6
13436 else
13437 ac_check_lib_save_LIBS=$LIBS
13438 LIBS="-ldld $LIBS"
13439 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13440 /* end confdefs.h. */
13441
13442 /* Override any GCC internal prototype to avoid an error.
13443 Use char because int might match the return type of a GCC
13444 builtin and then its argument prototype would still apply. */
13445 #ifdef __cplusplus
13446 extern "C"
13447 #endif
13448 char shl_load ();
13449 int
13450 main ()
13451 {
13452 return shl_load ();
13453 ;
13454 return 0;
13455 }
13456 _ACEOF
13457 if ac_fn_c_try_link "$LINENO"; then :
13458 ac_cv_lib_dld_shl_load=yes
13459 else
13460 ac_cv_lib_dld_shl_load=no
13461 fi
13462 rm -f core conftest.err conftest.$ac_objext \
13463 conftest$ac_exeext conftest.$ac_ext
13464 LIBS=$ac_check_lib_save_LIBS
13465 fi
13466 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
13467 $as_echo "$ac_cv_lib_dld_shl_load" >&6; }
13468 if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
13469 lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
13470 else
13471 ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
13472 if test "x$ac_cv_func_dlopen" = xyes; then :
13473 lt_cv_dlopen="dlopen"
13474 else
13475 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
13476 $as_echo_n "checking for dlopen in -ldl... " >&6; }
13477 if ${ac_cv_lib_dl_dlopen+:} false; then :
13478 $as_echo_n "(cached) " >&6
13479 else
13480 ac_check_lib_save_LIBS=$LIBS
13481 LIBS="-ldl $LIBS"
13482 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13483 /* end confdefs.h. */
13484
13485 /* Override any GCC internal prototype to avoid an error.
13486 Use char because int might match the return type of a GCC
13487 builtin and then its argument prototype would still apply. */
13488 #ifdef __cplusplus
13489 extern "C"
13490 #endif
13491 char dlopen ();
13492 int
13493 main ()
13494 {
13495 return dlopen ();
13496 ;
13497 return 0;
13498 }
13499 _ACEOF
13500 if ac_fn_c_try_link "$LINENO"; then :
13501 ac_cv_lib_dl_dlopen=yes
13502 else
13503 ac_cv_lib_dl_dlopen=no
13504 fi
13505 rm -f core conftest.err conftest.$ac_objext \
13506 conftest$ac_exeext conftest.$ac_ext
13507 LIBS=$ac_check_lib_save_LIBS
13508 fi
13509 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
13510 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
13511 if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
13512 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
13513 else
13514 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
13515 $as_echo_n "checking for dlopen in -lsvld... " >&6; }
13516 if ${ac_cv_lib_svld_dlopen+:} false; then :
13517 $as_echo_n "(cached) " >&6
13518 else
13519 ac_check_lib_save_LIBS=$LIBS
13520 LIBS="-lsvld $LIBS"
13521 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13522 /* end confdefs.h. */
13523
13524 /* Override any GCC internal prototype to avoid an error.
13525 Use char because int might match the return type of a GCC
13526 builtin and then its argument prototype would still apply. */
13527 #ifdef __cplusplus
13528 extern "C"
13529 #endif
13530 char dlopen ();
13531 int
13532 main ()
13533 {
13534 return dlopen ();
13535 ;
13536 return 0;
13537 }
13538 _ACEOF
13539 if ac_fn_c_try_link "$LINENO"; then :
13540 ac_cv_lib_svld_dlopen=yes
13541 else
13542 ac_cv_lib_svld_dlopen=no
13543 fi
13544 rm -f core conftest.err conftest.$ac_objext \
13545 conftest$ac_exeext conftest.$ac_ext
13546 LIBS=$ac_check_lib_save_LIBS
13547 fi
13548 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
13549 $as_echo "$ac_cv_lib_svld_dlopen" >&6; }
13550 if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
13551 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
13552 else
13553 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
13554 $as_echo_n "checking for dld_link in -ldld... " >&6; }
13555 if ${ac_cv_lib_dld_dld_link+:} false; then :
13556 $as_echo_n "(cached) " >&6
13557 else
13558 ac_check_lib_save_LIBS=$LIBS
13559 LIBS="-ldld $LIBS"
13560 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13561 /* end confdefs.h. */
13562
13563 /* Override any GCC internal prototype to avoid an error.
13564 Use char because int might match the return type of a GCC
13565 builtin and then its argument prototype would still apply. */
13566 #ifdef __cplusplus
13567 extern "C"
13568 #endif
13569 char dld_link ();
13570 int
13571 main ()
13572 {
13573 return dld_link ();
13574 ;
13575 return 0;
13576 }
13577 _ACEOF
13578 if ac_fn_c_try_link "$LINENO"; then :
13579 ac_cv_lib_dld_dld_link=yes
13580 else
13581 ac_cv_lib_dld_dld_link=no
13582 fi
13583 rm -f core conftest.err conftest.$ac_objext \
13584 conftest$ac_exeext conftest.$ac_ext
13585 LIBS=$ac_check_lib_save_LIBS
13586 fi
13587 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
13588 $as_echo "$ac_cv_lib_dld_dld_link" >&6; }
13589 if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
13590 lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
13591 fi
13592
13593
13594 fi
13595
13596
13597 fi
13598
13599
13600 fi
13601
13602
13603 fi
13604
13605
13606 fi
13607
13608 ;;
13609 esac
13610
13611 if test "x$lt_cv_dlopen" != xno; then
13612 enable_dlopen=yes
13613 else
13614 enable_dlopen=no
13615 fi
13616
13617 case $lt_cv_dlopen in
13618 dlopen)
13619 save_CPPFLAGS="$CPPFLAGS"
13620 test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
13621
13622 save_LDFLAGS="$LDFLAGS"
13623 wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
13624
13625 save_LIBS="$LIBS"
13626 LIBS="$lt_cv_dlopen_libs $LIBS"
13627
13628 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
13629 $as_echo_n "checking whether a program can dlopen itself... " >&6; }
13630 if ${lt_cv_dlopen_self+:} false; then :
13631 $as_echo_n "(cached) " >&6
13632 else
13633 if test "$cross_compiling" = yes; then :
13634 lt_cv_dlopen_self=cross
13635 else
13636 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
13637 lt_status=$lt_dlunknown
13638 cat > conftest.$ac_ext <<_LT_EOF
13639 #line $LINENO "configure"
13640 #include "confdefs.h"
13641
13642 #if HAVE_DLFCN_H
13643 #include <dlfcn.h>
13644 #endif
13645
13646 #include <stdio.h>
13647
13648 #ifdef RTLD_GLOBAL
13649 # define LT_DLGLOBAL RTLD_GLOBAL
13650 #else
13651 # ifdef DL_GLOBAL
13652 # define LT_DLGLOBAL DL_GLOBAL
13653 # else
13654 # define LT_DLGLOBAL 0
13655 # endif
13656 #endif
13657
13658 /* We may have to define LT_DLLAZY_OR_NOW in the command line if we
13659 find out it does not work in some platform. */
13660 #ifndef LT_DLLAZY_OR_NOW
13661 # ifdef RTLD_LAZY
13662 # define LT_DLLAZY_OR_NOW RTLD_LAZY
13663 # else
13664 # ifdef DL_LAZY
13665 # define LT_DLLAZY_OR_NOW DL_LAZY
13666 # else
13667 # ifdef RTLD_NOW
13668 # define LT_DLLAZY_OR_NOW RTLD_NOW
13669 # else
13670 # ifdef DL_NOW
13671 # define LT_DLLAZY_OR_NOW DL_NOW
13672 # else
13673 # define LT_DLLAZY_OR_NOW 0
13674 # endif
13675 # endif
13676 # endif
13677 # endif
13678 #endif
13679
13680 /* When -fvisbility=hidden is used, assume the code has been annotated
13681 correspondingly for the symbols needed. */
13682 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
13683 int fnord () __attribute__((visibility("default")));
13684 #endif
13685
13686 int fnord () { return 42; }
13687 int main ()
13688 {
13689 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
13690 int status = $lt_dlunknown;
13691
13692 if (self)
13693 {
13694 if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
13695 else
13696 {
13697 if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
13698 else puts (dlerror ());
13699 }
13700 /* dlclose (self); */
13701 }
13702 else
13703 puts (dlerror ());
13704
13705 return status;
13706 }
13707 _LT_EOF
13708 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
13709 (eval $ac_link) 2>&5
13710 ac_status=$?
13711 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
13712 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
13713 (./conftest; exit; ) >&5 2>/dev/null
13714 lt_status=$?
13715 case x$lt_status in
13716 x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
13717 x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
13718 x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
13719 esac
13720 else :
13721 # compilation failed
13722 lt_cv_dlopen_self=no
13723 fi
13724 fi
13725 rm -fr conftest*
13726
13727
13728 fi
13729 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
13730 $as_echo "$lt_cv_dlopen_self" >&6; }
13731
13732 if test "x$lt_cv_dlopen_self" = xyes; then
13733 wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
13734 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
13735 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
13736 if ${lt_cv_dlopen_self_static+:} false; then :
13737 $as_echo_n "(cached) " >&6
13738 else
13739 if test "$cross_compiling" = yes; then :
13740 lt_cv_dlopen_self_static=cross
13741 else
13742 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
13743 lt_status=$lt_dlunknown
13744 cat > conftest.$ac_ext <<_LT_EOF
13745 #line $LINENO "configure"
13746 #include "confdefs.h"
13747
13748 #if HAVE_DLFCN_H
13749 #include <dlfcn.h>
13750 #endif
13751
13752 #include <stdio.h>
13753
13754 #ifdef RTLD_GLOBAL
13755 # define LT_DLGLOBAL RTLD_GLOBAL
13756 #else
13757 # ifdef DL_GLOBAL
13758 # define LT_DLGLOBAL DL_GLOBAL
13759 # else
13760 # define LT_DLGLOBAL 0
13761 # endif
13762 #endif
13763
13764 /* We may have to define LT_DLLAZY_OR_NOW in the command line if we
13765 find out it does not work in some platform. */
13766 #ifndef LT_DLLAZY_OR_NOW
13767 # ifdef RTLD_LAZY
13768 # define LT_DLLAZY_OR_NOW RTLD_LAZY
13769 # else
13770 # ifdef DL_LAZY
13771 # define LT_DLLAZY_OR_NOW DL_LAZY
13772 # else
13773 # ifdef RTLD_NOW
13774 # define LT_DLLAZY_OR_NOW RTLD_NOW
13775 # else
13776 # ifdef DL_NOW
13777 # define LT_DLLAZY_OR_NOW DL_NOW
13778 # else
13779 # define LT_DLLAZY_OR_NOW 0
13780 # endif
13781 # endif
13782 # endif
13783 # endif
13784 #endif
13785
13786 /* When -fvisbility=hidden is used, assume the code has been annotated
13787 correspondingly for the symbols needed. */
13788 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
13789 int fnord () __attribute__((visibility("default")));
13790 #endif
13791
13792 int fnord () { return 42; }
13793 int main ()
13794 {
13795 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
13796 int status = $lt_dlunknown;
13797
13798 if (self)
13799 {
13800 if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
13801 else
13802 {
13803 if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
13804 else puts (dlerror ());
13805 }
13806 /* dlclose (self); */
13807 }
13808 else
13809 puts (dlerror ());
13810
13811 return status;
13812 }
13813 _LT_EOF
13814 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
13815 (eval $ac_link) 2>&5
13816 ac_status=$?
13817 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
13818 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
13819 (./conftest; exit; ) >&5 2>/dev/null
13820 lt_status=$?
13821 case x$lt_status in
13822 x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
13823 x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
13824 x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
13825 esac
13826 else :
13827 # compilation failed
13828 lt_cv_dlopen_self_static=no
13829 fi
13830 fi
13831 rm -fr conftest*
13832
13833
13834 fi
13835 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
13836 $as_echo "$lt_cv_dlopen_self_static" >&6; }
13837 fi
13838
13839 CPPFLAGS="$save_CPPFLAGS"
13840 LDFLAGS="$save_LDFLAGS"
13841 LIBS="$save_LIBS"
13842 ;;
13843 esac
13844
13845 case $lt_cv_dlopen_self in
13846 yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
13847 *) enable_dlopen_self=unknown ;;
13848 esac
13849
13850 case $lt_cv_dlopen_self_static in
13851 yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
13852 *) enable_dlopen_self_static=unknown ;;
13853 esac
13854 fi
13855
13856
13857
13858
13859
13860
13861
13862
13863
13864
13865
13866
13867
13868
13869
13870
13871
13872 striplib=
13873 old_striplib=
13874 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
13875 $as_echo_n "checking whether stripping libraries is possible... " >&6; }
13876 if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
13877 test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
13878 test -z "$striplib" && striplib="$STRIP --strip-unneeded"
13879 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
13880 $as_echo "yes" >&6; }
13881 else
13882 # FIXME - insert some real tests, host_os isn't really good enough
13883 case $host_os in
13884 darwin*)
13885 if test -n "$STRIP" ; then
13886 striplib="$STRIP -x"
13887 old_striplib="$STRIP -S"
13888 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
13889 $as_echo "yes" >&6; }
13890 else
13891 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13892 $as_echo "no" >&6; }
13893 fi
13894 ;;
13895 *)
13896 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13897 $as_echo "no" >&6; }
13898 ;;
13899 esac
13900 fi
13901
13902
13903
13904
13905
13906
13907
13908
13909
13910
13911
13912
13913 # Report which library types will actually be built
13914 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
13915 $as_echo_n "checking if libtool supports shared libraries... " >&6; }
13916 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
13917 $as_echo "$can_build_shared" >&6; }
13918
13919 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
13920 $as_echo_n "checking whether to build shared libraries... " >&6; }
13921 test "$can_build_shared" = "no" && enable_shared=no
13922
13923 # On AIX, shared libraries and static libraries use the same namespace, and
13924 # are all built from PIC.
13925 case $host_os in
13926 aix3*)
13927 test "$enable_shared" = yes && enable_static=no
13928 if test -n "$RANLIB"; then
13929 archive_cmds="$archive_cmds~\$RANLIB \$lib"
13930 postinstall_cmds='$RANLIB $lib'
13931 fi
13932 ;;
13933
13934 aix[4-9]*)
13935 if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
13936 test "$enable_shared" = yes && enable_static=no
13937 fi
13938 ;;
13939 esac
13940 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
13941 $as_echo "$enable_shared" >&6; }
13942
13943 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
13944 $as_echo_n "checking whether to build static libraries... " >&6; }
13945 # Make sure either enable_shared or enable_static is yes.
13946 test "$enable_shared" = yes || enable_static=yes
13947 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
13948 $as_echo "$enable_static" >&6; }
13949
13950
13951
13952
13953 fi
13954 ac_ext=cpp
13955 ac_cpp='$CXXCPP $CPPFLAGS'
13956 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
13957 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
13958 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
13959
13960 CC="$lt_save_CC"
13961
13962 if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
13963 ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
13964 (test "X$CXX" != "Xg++"))) ; then
13965 ac_ext=cpp
13966 ac_cpp='$CXXCPP $CPPFLAGS'
13967 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
13968 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
13969 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
13970 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
13971 $as_echo_n "checking how to run the C++ preprocessor... " >&6; }
13972 if test -z "$CXXCPP"; then
13973 if ${ac_cv_prog_CXXCPP+:} false; then :
13974 $as_echo_n "(cached) " >&6
13975 else
13976 # Double quotes because CXXCPP needs to be expanded
13977 for CXXCPP in "$CXX -E" "/lib/cpp"
13978 do
13979 ac_preproc_ok=false
13980 for ac_cxx_preproc_warn_flag in '' yes
13981 do
13982 # Use a header file that comes with gcc, so configuring glibc
13983 # with a fresh cross-compiler works.
13984 # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
13985 # <limits.h> exists even on freestanding compilers.
13986 # On the NeXT, cc -E runs the code through the compiler's parser,
13987 # not just through cpp. "Syntax error" is here to catch this case.
13988 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13989 /* end confdefs.h. */
13990 #ifdef __STDC__
13991 # include <limits.h>
13992 #else
13993 # include <assert.h>
13994 #endif
13995 Syntax error
13996 _ACEOF
13997 if ac_fn_cxx_try_cpp "$LINENO"; then :
13998
13999 else
14000 # Broken: fails on valid input.
14001 continue
14002 fi
14003 rm -f conftest.err conftest.i conftest.$ac_ext
14004
14005 # OK, works on sane cases. Now check whether nonexistent headers
14006 # can be detected and how.
14007 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
14008 /* end confdefs.h. */
14009 #include <ac_nonexistent.h>
14010 _ACEOF
14011 if ac_fn_cxx_try_cpp "$LINENO"; then :
14012 # Broken: success on invalid input.
14013 continue
14014 else
14015 # Passes both tests.
14016 ac_preproc_ok=:
14017 break
14018 fi
14019 rm -f conftest.err conftest.i conftest.$ac_ext
14020
14021 done
14022 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
14023 rm -f conftest.i conftest.err conftest.$ac_ext
14024 if $ac_preproc_ok; then :
14025 break
14026 fi
14027
14028 done
14029 ac_cv_prog_CXXCPP=$CXXCPP
14030
14031 fi
14032 CXXCPP=$ac_cv_prog_CXXCPP
14033 else
14034 ac_cv_prog_CXXCPP=$CXXCPP
14035 fi
14036 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
14037 $as_echo "$CXXCPP" >&6; }
14038 ac_preproc_ok=false
14039 for ac_cxx_preproc_warn_flag in '' yes
14040 do
14041 # Use a header file that comes with gcc, so configuring glibc
14042 # with a fresh cross-compiler works.
14043 # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
14044 # <limits.h> exists even on freestanding compilers.
14045 # On the NeXT, cc -E runs the code through the compiler's parser,
14046 # not just through cpp. "Syntax error" is here to catch this case.
14047 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
14048 /* end confdefs.h. */
14049 #ifdef __STDC__
14050 # include <limits.h>
14051 #else
14052 # include <assert.h>
14053 #endif
14054 Syntax error
14055 _ACEOF
14056 if ac_fn_cxx_try_cpp "$LINENO"; then :
14057
14058 else
14059 # Broken: fails on valid input.
14060 continue
14061 fi
14062 rm -f conftest.err conftest.i conftest.$ac_ext
14063
14064 # OK, works on sane cases. Now check whether nonexistent headers
14065 # can be detected and how.
14066 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
14067 /* end confdefs.h. */
14068 #include <ac_nonexistent.h>
14069 _ACEOF
14070 if ac_fn_cxx_try_cpp "$LINENO"; then :
14071 # Broken: success on invalid input.
14072 continue
14073 else
14074 # Passes both tests.
14075 ac_preproc_ok=:
14076 break
14077 fi
14078 rm -f conftest.err conftest.i conftest.$ac_ext
14079
14080 done
14081 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
14082 rm -f conftest.i conftest.err conftest.$ac_ext
14083 if $ac_preproc_ok; then :
14084
14085 else
14086 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
14087 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
14088 as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
14089 See \`config.log' for more details" "$LINENO" 5; }
14090 fi
14091
14092 ac_ext=cpp
14093 ac_cpp='$CXXCPP $CPPFLAGS'
14094 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
14095 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
14096 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
14097
14098 else
14099 _lt_caught_CXX_error=yes
14100 fi
14101
14102 ac_ext=cpp
14103 ac_cpp='$CXXCPP $CPPFLAGS'
14104 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
14105 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
14106 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
14107
14108 archive_cmds_need_lc_CXX=no
14109 allow_undefined_flag_CXX=
14110 always_export_symbols_CXX=no
14111 archive_expsym_cmds_CXX=
14112 compiler_needs_object_CXX=no
14113 export_dynamic_flag_spec_CXX=
14114 hardcode_direct_CXX=no
14115 hardcode_direct_absolute_CXX=no
14116 hardcode_libdir_flag_spec_CXX=
14117 hardcode_libdir_separator_CXX=
14118 hardcode_minus_L_CXX=no
14119 hardcode_shlibpath_var_CXX=unsupported
14120 hardcode_automatic_CXX=no
14121 inherit_rpath_CXX=no
14122 module_cmds_CXX=
14123 module_expsym_cmds_CXX=
14124 link_all_deplibs_CXX=unknown
14125 old_archive_cmds_CXX=$old_archive_cmds
14126 reload_flag_CXX=$reload_flag
14127 reload_cmds_CXX=$reload_cmds
14128 no_undefined_flag_CXX=
14129 whole_archive_flag_spec_CXX=
14130 enable_shared_with_static_runtimes_CXX=no
14131
14132 # Source file extension for C++ test sources.
14133 ac_ext=cpp
14134
14135 # Object file extension for compiled C++ test sources.
14136 objext=o
14137 objext_CXX=$objext
14138
14139 # No sense in running all these tests if we already determined that
14140 # the CXX compiler isn't working. Some variables (like enable_shared)
14141 # are currently assumed to apply to all compilers on this platform,
14142 # and will be corrupted by setting them based on a non-working compiler.
14143 if test "$_lt_caught_CXX_error" != yes; then
14144 # Code to be used in simple compile tests
14145 lt_simple_compile_test_code="int some_variable = 0;"
14146
14147 # Code to be used in simple link tests
14148 lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
14149
14150 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
14151
14152
14153
14154
14155
14156
14157 # If no C compiler was specified, use CC.
14158 LTCC=${LTCC-"$CC"}
14159
14160 # If no C compiler flags were specified, use CFLAGS.
14161 LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
14162
14163 # Allow CC to be a program name with arguments.
14164 compiler=$CC
14165
14166
14167 # save warnings/boilerplate of simple test code
14168 ac_outfile=conftest.$ac_objext
14169 echo "$lt_simple_compile_test_code" >conftest.$ac_ext
14170 eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
14171 _lt_compiler_boilerplate=`cat conftest.err`
14172 $RM conftest*
14173
14174 ac_outfile=conftest.$ac_objext
14175 echo "$lt_simple_link_test_code" >conftest.$ac_ext
14176 eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
14177 _lt_linker_boilerplate=`cat conftest.err`
14178 $RM -r conftest*
14179
14180
14181 # Allow CC to be a program name with arguments.
14182 lt_save_CC=$CC
14183 lt_save_CFLAGS=$CFLAGS
14184 lt_save_LD=$LD
14185 lt_save_GCC=$GCC
14186 GCC=$GXX
14187 lt_save_with_gnu_ld=$with_gnu_ld
14188 lt_save_path_LD=$lt_cv_path_LD
14189 if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
14190 lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
14191 else
14192 $as_unset lt_cv_prog_gnu_ld
14193 fi
14194 if test -n "${lt_cv_path_LDCXX+set}"; then
14195 lt_cv_path_LD=$lt_cv_path_LDCXX
14196 else
14197 $as_unset lt_cv_path_LD
14198 fi
14199 test -z "${LDCXX+set}" || LD=$LDCXX
14200 CC=${CXX-"c++"}
14201 CFLAGS=$CXXFLAGS
14202 compiler=$CC
14203 compiler_CXX=$CC
14204 for cc_temp in $compiler""; do
14205 case $cc_temp in
14206 compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
14207 distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
14208 \-*) ;;
14209 *) break;;
14210 esac
14211 done
14212 cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
14213
14214
14215 if test -n "$compiler"; then
14216 # We don't want -fno-exception when compiling C++ code, so set the
14217 # no_builtin_flag separately
14218 if test "$GXX" = yes; then
14219 lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
14220 else
14221 lt_prog_compiler_no_builtin_flag_CXX=
14222 fi
14223
14224 if test "$GXX" = yes; then
14225 # Set up default GNU C++ configuration
14226
14227
14228
14229 # Check whether --with-gnu-ld was given.
14230 if test "${with_gnu_ld+set}" = set; then :
14231 withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
14232 else
14233 with_gnu_ld=no
14234 fi
14235
14236 ac_prog=ld
14237 if test "$GCC" = yes; then
14238 # Check if gcc -print-prog-name=ld gives a path.
14239 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
14240 $as_echo_n "checking for ld used by $CC... " >&6; }
14241 case $host in
14242 *-*-mingw*)
14243 # gcc leaves a trailing carriage return which upsets mingw
14244 ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
14245 *)
14246 ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
14247 esac
14248 case $ac_prog in
14249 # Accept absolute paths.
14250 [\\/]* | ?:[\\/]*)
14251 re_direlt='/[^/][^/]*/\.\./'
14252 # Canonicalize the pathname of ld
14253 ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
14254 while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
14255 ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
14256 done
14257 test -z "$LD" && LD="$ac_prog"
14258 ;;
14259 "")
14260 # If it fails, then pretend we aren't using GCC.
14261 ac_prog=ld
14262 ;;
14263 *)
14264 # If it is relative, then search for the first ld in PATH.
14265 with_gnu_ld=unknown
14266 ;;
14267 esac
14268 elif test "$with_gnu_ld" = yes; then
14269 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
14270 $as_echo_n "checking for GNU ld... " >&6; }
14271 else
14272 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
14273 $as_echo_n "checking for non-GNU ld... " >&6; }
14274 fi
14275 if ${lt_cv_path_LD+:} false; then :
14276 $as_echo_n "(cached) " >&6
14277 else
14278 if test -z "$LD"; then
14279 lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
14280 for ac_dir in $PATH; do
14281 IFS="$lt_save_ifs"
14282 test -z "$ac_dir" && ac_dir=.
14283 if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
14284 lt_cv_path_LD="$ac_dir/$ac_prog"
14285 # Check to see if the program is GNU ld. I'd rather use --version,
14286 # but apparently some variants of GNU ld only accept -v.
14287 # Break only if it was the GNU/non-GNU ld that we prefer.
14288 case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
14289 *GNU* | *'with BFD'*)
14290 test "$with_gnu_ld" != no && break
14291 ;;
14292 *)
14293 test "$with_gnu_ld" != yes && break
14294 ;;
14295 esac
14296 fi
14297 done
14298 IFS="$lt_save_ifs"
14299 else
14300 lt_cv_path_LD="$LD" # Let the user override the test with a path.
14301 fi
14302 fi
14303
14304 LD="$lt_cv_path_LD"
14305 if test -n "$LD"; then
14306 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
14307 $as_echo "$LD" >&6; }
14308 else
14309 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14310 $as_echo "no" >&6; }
14311 fi
14312 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
14313 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
14314 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
14315 if ${lt_cv_prog_gnu_ld+:} false; then :
14316 $as_echo_n "(cached) " >&6
14317 else
14318 # I'd rather use --version here, but apparently some GNU lds only accept -v.
14319 case `$LD -v 2>&1 </dev/null` in
14320 *GNU* | *'with BFD'*)
14321 lt_cv_prog_gnu_ld=yes
14322 ;;
14323 *)
14324 lt_cv_prog_gnu_ld=no
14325 ;;
14326 esac
14327 fi
14328 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
14329 $as_echo "$lt_cv_prog_gnu_ld" >&6; }
14330 with_gnu_ld=$lt_cv_prog_gnu_ld
14331
14332
14333
14334
14335
14336
14337
14338 # Check if GNU C++ uses GNU ld as the underlying linker, since the
14339 # archiving commands below assume that GNU ld is being used.
14340 if test "$with_gnu_ld" = yes; then
14341 archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
14342 archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
14343
14344 hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
14345 export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
14346
14347 # If archive_cmds runs LD, not CC, wlarc should be empty
14348 # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
14349 # investigate it a little bit more. (MM)
14350 wlarc='${wl}'
14351
14352 # ancient GNU ld didn't support --whole-archive et. al.
14353 if eval "`$CC -print-prog-name=ld` --help 2>&1" |
14354 $GREP 'no-whole-archive' > /dev/null; then
14355 whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
14356 else
14357 whole_archive_flag_spec_CXX=
14358 fi
14359 else
14360 with_gnu_ld=no
14361 wlarc=
14362
14363 # A generic and very simple default shared library creation
14364 # command for GNU C++ for the case where it uses the native
14365 # linker, instead of GNU ld. If possible, this setting should
14366 # overridden to take advantage of the native linker features on
14367 # the platform it is being used on.
14368 archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
14369 fi
14370
14371 # Commands to make compiler produce verbose output that lists
14372 # what "hidden" libraries, object files and flags are used when
14373 # linking a shared library.
14374 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
14375
14376 else
14377 GXX=no
14378 with_gnu_ld=no
14379 wlarc=
14380 fi
14381
14382 # PORTME: fill in a description of your system's C++ link characteristics
14383 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
14384 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
14385 ld_shlibs_CXX=yes
14386 case $host_os in
14387 aix3*)
14388 # FIXME: insert proper C++ library support
14389 ld_shlibs_CXX=no
14390 ;;
14391 aix[4-9]*)
14392 if test "$host_cpu" = ia64; then
14393 # On IA64, the linker does run time linking by default, so we don't
14394 # have to do anything special.
14395 aix_use_runtimelinking=no
14396 exp_sym_flag='-Bexport'
14397 no_entry_flag=""
14398 else
14399 aix_use_runtimelinking=no
14400
14401 # Test if we are trying to use run time linking or normal
14402 # AIX style linking. If -brtl is somewhere in LDFLAGS, we
14403 # need to do runtime linking.
14404 case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
14405 for ld_flag in $LDFLAGS; do
14406 case $ld_flag in
14407 *-brtl*)
14408 aix_use_runtimelinking=yes
14409 break
14410 ;;
14411 esac
14412 done
14413 ;;
14414 esac
14415
14416 exp_sym_flag='-bexport'
14417 no_entry_flag='-bnoentry'
14418 fi
14419
14420 # When large executables or shared objects are built, AIX ld can
14421 # have problems creating the table of contents. If linking a library
14422 # or program results in "error TOC overflow" add -mminimal-toc to
14423 # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
14424 # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
14425
14426 archive_cmds_CXX=''
14427 hardcode_direct_CXX=yes
14428 hardcode_direct_absolute_CXX=yes
14429 hardcode_libdir_separator_CXX=':'
14430 link_all_deplibs_CXX=yes
14431 file_list_spec_CXX='${wl}-f,'
14432
14433 if test "$GXX" = yes; then
14434 case $host_os in aix4.[012]|aix4.[012].*)
14435 # We only want to do this on AIX 4.2 and lower, the check
14436 # below for broken collect2 doesn't work under 4.3+
14437 collect2name=`${CC} -print-prog-name=collect2`
14438 if test -f "$collect2name" &&
14439 strings "$collect2name" | $GREP resolve_lib_name >/dev/null
14440 then
14441 # We have reworked collect2
14442 :
14443 else
14444 # We have old collect2
14445 hardcode_direct_CXX=unsupported
14446 # It fails to find uninstalled libraries when the uninstalled
14447 # path is not listed in the libpath. Setting hardcode_minus_L
14448 # to unsupported forces relinking
14449 hardcode_minus_L_CXX=yes
14450 hardcode_libdir_flag_spec_CXX='-L$libdir'
14451 hardcode_libdir_separator_CXX=
14452 fi
14453 esac
14454 shared_flag='-shared'
14455 if test "$aix_use_runtimelinking" = yes; then
14456 shared_flag="$shared_flag "'${wl}-G'
14457 fi
14458 else
14459 # not using gcc
14460 if test "$host_cpu" = ia64; then
14461 # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
14462 # chokes on -Wl,-G. The following line is correct:
14463 shared_flag='-G'
14464 else
14465 if test "$aix_use_runtimelinking" = yes; then
14466 shared_flag='${wl}-G'
14467 else
14468 shared_flag='${wl}-bM:SRE'
14469 fi
14470 fi
14471 fi
14472
14473 export_dynamic_flag_spec_CXX='${wl}-bexpall'
14474 # It seems that -bexpall does not export symbols beginning with
14475 # underscore (_), so it is better to generate a list of symbols to
14476 # export.
14477 always_export_symbols_CXX=yes
14478 if test "$aix_use_runtimelinking" = yes; then
14479 # Warning - without using the other runtime loading flags (-brtl),
14480 # -berok will link without error, but may produce a broken library.
14481 allow_undefined_flag_CXX='-berok'
14482 # Determine the default libpath from the value encoded in an empty
14483 # executable.
14484 if test "${lt_cv_aix_libpath+set}" = set; then
14485 aix_libpath=$lt_cv_aix_libpath
14486 else
14487 if ${lt_cv_aix_libpath__CXX+:} false; then :
14488 $as_echo_n "(cached) " >&6
14489 else
14490 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
14491 /* end confdefs.h. */
14492
14493 int
14494 main ()
14495 {
14496
14497 ;
14498 return 0;
14499 }
14500 _ACEOF
14501 if ac_fn_cxx_try_link "$LINENO"; then :
14502
14503 lt_aix_libpath_sed='
14504 /Import File Strings/,/^$/ {
14505 /^0/ {
14506 s/^0 *\([^ ]*\) *$/\1/
14507 p
14508 }
14509 }'
14510 lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
14511 # Check for a 64-bit object if we didn't find anything.
14512 if test -z "$lt_cv_aix_libpath__CXX"; then
14513 lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
14514 fi
14515 fi
14516 rm -f core conftest.err conftest.$ac_objext \
14517 conftest$ac_exeext conftest.$ac_ext
14518 if test -z "$lt_cv_aix_libpath__CXX"; then
14519 lt_cv_aix_libpath__CXX="/usr/lib:/lib"
14520 fi
14521
14522 fi
14523
14524 aix_libpath=$lt_cv_aix_libpath__CXX
14525 fi
14526
14527 hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
14528
14529 archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
14530 else
14531 if test "$host_cpu" = ia64; then
14532 hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
14533 allow_undefined_flag_CXX="-z nodefs"
14534 archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
14535 else
14536 # Determine the default libpath from the value encoded in an
14537 # empty executable.
14538 if test "${lt_cv_aix_libpath+set}" = set; then
14539 aix_libpath=$lt_cv_aix_libpath
14540 else
14541 if ${lt_cv_aix_libpath__CXX+:} false; then :
14542 $as_echo_n "(cached) " >&6
14543 else
14544 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
14545 /* end confdefs.h. */
14546
14547 int
14548 main ()
14549 {
14550
14551 ;
14552 return 0;
14553 }
14554 _ACEOF
14555 if ac_fn_cxx_try_link "$LINENO"; then :
14556
14557 lt_aix_libpath_sed='
14558 /Import File Strings/,/^$/ {
14559 /^0/ {
14560 s/^0 *\([^ ]*\) *$/\1/
14561 p
14562 }
14563 }'
14564 lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
14565 # Check for a 64-bit object if we didn't find anything.
14566 if test -z "$lt_cv_aix_libpath__CXX"; then
14567 lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
14568 fi
14569 fi
14570 rm -f core conftest.err conftest.$ac_objext \
14571 conftest$ac_exeext conftest.$ac_ext
14572 if test -z "$lt_cv_aix_libpath__CXX"; then
14573 lt_cv_aix_libpath__CXX="/usr/lib:/lib"
14574 fi
14575
14576 fi
14577
14578 aix_libpath=$lt_cv_aix_libpath__CXX
14579 fi
14580
14581 hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
14582 # Warning - without using the other run time loading flags,
14583 # -berok will link without error, but may produce a broken library.
14584 no_undefined_flag_CXX=' ${wl}-bernotok'
14585 allow_undefined_flag_CXX=' ${wl}-berok'
14586 if test "$with_gnu_ld" = yes; then
14587 # We only use this code for GNU lds that support --whole-archive.
14588 whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
14589 else
14590 # Exported symbols can be pulled into shared objects from archives
14591 whole_archive_flag_spec_CXX='$convenience'
14592 fi
14593 archive_cmds_need_lc_CXX=yes
14594 # This is similar to how AIX traditionally builds its shared
14595 # libraries.
14596 archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
14597 fi
14598 fi
14599 ;;
14600
14601 beos*)
14602 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
14603 allow_undefined_flag_CXX=unsupported
14604 # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
14605 # support --undefined. This deserves some investigation. FIXME
14606 archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
14607 else
14608 ld_shlibs_CXX=no
14609 fi
14610 ;;
14611
14612 chorus*)
14613 case $cc_basename in
14614 *)
14615 # FIXME: insert proper C++ library support
14616 ld_shlibs_CXX=no
14617 ;;
14618 esac
14619 ;;
14620
14621 cygwin* | mingw* | pw32* | cegcc*)
14622 case $GXX,$cc_basename in
14623 ,cl* | no,cl*)
14624 # Native MSVC
14625 # hardcode_libdir_flag_spec is actually meaningless, as there is
14626 # no search path for DLLs.
14627 hardcode_libdir_flag_spec_CXX=' '
14628 allow_undefined_flag_CXX=unsupported
14629 always_export_symbols_CXX=yes
14630 file_list_spec_CXX='@'
14631 # Tell ltmain to make .lib files, not .a files.
14632 libext=lib
14633 # Tell ltmain to make .dll files, not .so files.
14634 shrext_cmds=".dll"
14635 # FIXME: Setting linknames here is a bad hack.
14636 archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
14637 archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
14638 $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
14639 else
14640 $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
14641 fi~
14642 $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
14643 linknames='
14644 # The linker will not automatically build a static lib if we build a DLL.
14645 # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true'
14646 enable_shared_with_static_runtimes_CXX=yes
14647 # Don't use ranlib
14648 old_postinstall_cmds_CXX='chmod 644 $oldlib'
14649 postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~
14650 lt_tool_outputfile="@TOOL_OUTPUT@"~
14651 case $lt_outputfile in
14652 *.exe|*.EXE) ;;
14653 *)
14654 lt_outputfile="$lt_outputfile.exe"
14655 lt_tool_outputfile="$lt_tool_outputfile.exe"
14656 ;;
14657 esac~
14658 func_to_tool_file "$lt_outputfile"~
14659 if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
14660 $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
14661 $RM "$lt_outputfile.manifest";
14662 fi'
14663 ;;
14664 *)
14665 # g++
14666 # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
14667 # as there is no search path for DLLs.
14668 hardcode_libdir_flag_spec_CXX='-L$libdir'
14669 export_dynamic_flag_spec_CXX='${wl}--export-all-symbols'
14670 allow_undefined_flag_CXX=unsupported
14671 always_export_symbols_CXX=no
14672 enable_shared_with_static_runtimes_CXX=yes
14673
14674 if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
14675 archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
14676 # If the export-symbols file already is a .def file (1st line
14677 # is EXPORTS), use it as is; otherwise, prepend...
14678 archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
14679 cp $export_symbols $output_objdir/$soname.def;
14680 else
14681 echo EXPORTS > $output_objdir/$soname.def;
14682 cat $export_symbols >> $output_objdir/$soname.def;
14683 fi~
14684 $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
14685 else
14686 ld_shlibs_CXX=no
14687 fi
14688 ;;
14689 esac
14690 ;;
14691 darwin* | rhapsody*)
14692
14693
14694 archive_cmds_need_lc_CXX=no
14695 hardcode_direct_CXX=no
14696 hardcode_automatic_CXX=yes
14697 hardcode_shlibpath_var_CXX=unsupported
14698 if test "$lt_cv_ld_force_load" = "yes"; then
14699 whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
14700
14701 else
14702 whole_archive_flag_spec_CXX=''
14703 fi
14704 link_all_deplibs_CXX=yes
14705 allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
14706 case $cc_basename in
14707 ifort*) _lt_dar_can_shared=yes ;;
14708 *) _lt_dar_can_shared=$GCC ;;
14709 esac
14710 if test "$_lt_dar_can_shared" = "yes"; then
14711 output_verbose_link_cmd=func_echo_all
14712 archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
14713 module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
14714 archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
14715 module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
14716 if test "$lt_cv_apple_cc_single_mod" != "yes"; then
14717 archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
14718 archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
14719 fi
14720
14721 else
14722 ld_shlibs_CXX=no
14723 fi
14724
14725 ;;
14726
14727 dgux*)
14728 case $cc_basename in
14729 ec++*)
14730 # FIXME: insert proper C++ library support
14731 ld_shlibs_CXX=no
14732 ;;
14733 ghcx*)
14734 # Green Hills C++ Compiler
14735 # FIXME: insert proper C++ library support
14736 ld_shlibs_CXX=no
14737 ;;
14738 *)
14739 # FIXME: insert proper C++ library support
14740 ld_shlibs_CXX=no
14741 ;;
14742 esac
14743 ;;
14744
14745 freebsd2.*)
14746 # C++ shared libraries reported to be fairly broken before
14747 # switch to ELF
14748 ld_shlibs_CXX=no
14749 ;;
14750
14751 freebsd-elf*)
14752 archive_cmds_need_lc_CXX=no
14753 ;;
14754
14755 freebsd* | dragonfly*)
14756 # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
14757 # conventions
14758 ld_shlibs_CXX=yes
14759 ;;
14760
14761 haiku*)
14762 archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
14763 link_all_deplibs_CXX=yes
14764 ;;
14765
14766 hpux9*)
14767 hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
14768 hardcode_libdir_separator_CXX=:
14769 export_dynamic_flag_spec_CXX='${wl}-E'
14770 hardcode_direct_CXX=yes
14771 hardcode_minus_L_CXX=yes # Not in the search PATH,
14772 # but as the default
14773 # location of the library.
14774
14775 case $cc_basename in
14776 CC*)
14777 # FIXME: insert proper C++ library support
14778 ld_shlibs_CXX=no
14779 ;;
14780 aCC*)
14781 archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
14782 # Commands to make compiler produce verbose output that lists
14783 # what "hidden" libraries, object files and flags are used when
14784 # linking a shared library.
14785 #
14786 # There doesn't appear to be a way to prevent this compiler from
14787 # explicitly linking system object files so we need to strip them
14788 # from the output so that they don't get included in the library
14789 # dependencies.
14790 output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
14791 ;;
14792 *)
14793 if test "$GXX" = yes; then
14794 archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
14795 else
14796 # FIXME: insert proper C++ library support
14797 ld_shlibs_CXX=no
14798 fi
14799 ;;
14800 esac
14801 ;;
14802
14803 hpux10*|hpux11*)
14804 if test $with_gnu_ld = no; then
14805 hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
14806 hardcode_libdir_separator_CXX=:
14807
14808 case $host_cpu in
14809 hppa*64*|ia64*)
14810 ;;
14811 *)
14812 export_dynamic_flag_spec_CXX='${wl}-E'
14813 ;;
14814 esac
14815 fi
14816 case $host_cpu in
14817 hppa*64*|ia64*)
14818 hardcode_direct_CXX=no
14819 hardcode_shlibpath_var_CXX=no
14820 ;;
14821 *)
14822 hardcode_direct_CXX=yes
14823 hardcode_direct_absolute_CXX=yes
14824 hardcode_minus_L_CXX=yes # Not in the search PATH,
14825 # but as the default
14826 # location of the library.
14827 ;;
14828 esac
14829
14830 case $cc_basename in
14831 CC*)
14832 # FIXME: insert proper C++ library support
14833 ld_shlibs_CXX=no
14834 ;;
14835 aCC*)
14836 case $host_cpu in
14837 hppa*64*)
14838 archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
14839 ;;
14840 ia64*)
14841 archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
14842 ;;
14843 *)
14844 archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
14845 ;;
14846 esac
14847 # Commands to make compiler produce verbose output that lists
14848 # what "hidden" libraries, object files and flags are used when
14849 # linking a shared library.
14850 #
14851 # There doesn't appear to be a way to prevent this compiler from
14852 # explicitly linking system object files so we need to strip them
14853 # from the output so that they don't get included in the library
14854 # dependencies.
14855 output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
14856 ;;
14857 *)
14858 if test "$GXX" = yes; then
14859 if test $with_gnu_ld = no; then
14860 case $host_cpu in
14861 hppa*64*)
14862 archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
14863 ;;
14864 ia64*)
14865 archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
14866 ;;
14867 *)
14868 archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
14869 ;;
14870 esac
14871 fi
14872 else
14873 # FIXME: insert proper C++ library support
14874 ld_shlibs_CXX=no
14875 fi
14876 ;;
14877 esac
14878 ;;
14879
14880 interix[3-9]*)
14881 hardcode_direct_CXX=no
14882 hardcode_shlibpath_var_CXX=no
14883 hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
14884 export_dynamic_flag_spec_CXX='${wl}-E'
14885 # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
14886 # Instead, shared libraries are loaded at an image base (0x10000000 by
14887 # default) and relocated if they conflict, which is a slow very memory
14888 # consuming and fragmenting process. To avoid this, we pick a random,
14889 # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
14890 # time. Moving up from 0x10000000 also allows more sbrk(2) space.
14891 archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
14892 archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
14893 ;;
14894 irix5* | irix6*)
14895 case $cc_basename in
14896 CC*)
14897 # SGI C++
14898 archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
14899
14900 # Archives containing C++ object files must be created using
14901 # "CC -ar", where "CC" is the IRIX C++ compiler. This is
14902 # necessary to make sure instantiated templates are included
14903 # in the archive.
14904 old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
14905 ;;
14906 *)
14907 if test "$GXX" = yes; then
14908 if test "$with_gnu_ld" = no; then
14909 archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
14910 else
14911 archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
14912 fi
14913 fi
14914 link_all_deplibs_CXX=yes
14915 ;;
14916 esac
14917 hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
14918 hardcode_libdir_separator_CXX=:
14919 inherit_rpath_CXX=yes
14920 ;;
14921
14922 linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
14923 case $cc_basename in
14924 KCC*)
14925 # Kuck and Associates, Inc. (KAI) C++ Compiler
14926
14927 # KCC will only create a shared library if the output file
14928 # ends with ".so" (or ".sl" for HP-UX), so rename the library
14929 # to its proper name (with version) after linking.
14930 archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
14931 archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
14932 # Commands to make compiler produce verbose output that lists
14933 # what "hidden" libraries, object files and flags are used when
14934 # linking a shared library.
14935 #
14936 # There doesn't appear to be a way to prevent this compiler from
14937 # explicitly linking system object files so we need to strip them
14938 # from the output so that they don't get included in the library
14939 # dependencies.
14940 output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
14941
14942 hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
14943 export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
14944
14945 # Archives containing C++ object files must be created using
14946 # "CC -Bstatic", where "CC" is the KAI C++ compiler.
14947 old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
14948 ;;
14949 icpc* | ecpc* )
14950 # Intel C++
14951 with_gnu_ld=yes
14952 # version 8.0 and above of icpc choke on multiply defined symbols
14953 # if we add $predep_objects and $postdep_objects, however 7.1 and
14954 # earlier do not add the objects themselves.
14955 case `$CC -V 2>&1` in
14956 *"Version 7."*)
14957 archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
14958 archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
14959 ;;
14960 *) # Version 8.0 or newer
14961 tmp_idyn=
14962 case $host_cpu in
14963 ia64*) tmp_idyn=' -i_dynamic';;
14964 esac
14965 archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
14966 archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
14967 ;;
14968 esac
14969 archive_cmds_need_lc_CXX=no
14970 hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
14971 export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
14972 whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
14973 ;;
14974 pgCC* | pgcpp*)
14975 # Portland Group C++ compiler
14976 case `$CC -V` in
14977 *pgCC\ [1-5].* | *pgcpp\ [1-5].*)
14978 prelink_cmds_CXX='tpldir=Template.dir~
14979 rm -rf $tpldir~
14980 $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
14981 compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
14982 old_archive_cmds_CXX='tpldir=Template.dir~
14983 rm -rf $tpldir~
14984 $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
14985 $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
14986 $RANLIB $oldlib'
14987 archive_cmds_CXX='tpldir=Template.dir~
14988 rm -rf $tpldir~
14989 $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
14990 $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
14991 archive_expsym_cmds_CXX='tpldir=Template.dir~
14992 rm -rf $tpldir~
14993 $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
14994 $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
14995 ;;
14996 *) # Version 6 and above use weak symbols
14997 archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
14998 archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
14999 ;;
15000 esac
15001
15002 hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
15003 export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
15004 whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
15005 ;;
15006 cxx*)
15007 # Compaq C++
15008 archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
15009 archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
15010
15011 runpath_var=LD_RUN_PATH
15012 hardcode_libdir_flag_spec_CXX='-rpath $libdir'
15013 hardcode_libdir_separator_CXX=:
15014
15015 # Commands to make compiler produce verbose output that lists
15016 # what "hidden" libraries, object files and flags are used when
15017 # linking a shared library.
15018 #
15019 # There doesn't appear to be a way to prevent this compiler from
15020 # explicitly linking system object files so we need to strip them
15021 # from the output so that they don't get included in the library
15022 # dependencies.
15023 output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
15024 ;;
15025 xl* | mpixl* | bgxl*)
15026 # IBM XL 8.0 on PPC, with GNU ld
15027 hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
15028 export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
15029 archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
15030 if test "x$supports_anon_versioning" = xyes; then
15031 archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
15032 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
15033 echo "local: *; };" >> $output_objdir/$libname.ver~
15034 $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
15035 fi
15036 ;;
15037 *)
15038 case `$CC -V 2>&1 | sed 5q` in
15039 *Sun\ C*)
15040 # Sun C++ 5.9
15041 no_undefined_flag_CXX=' -zdefs'
15042 archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
15043 archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
15044 hardcode_libdir_flag_spec_CXX='-R$libdir'
15045 whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
15046 compiler_needs_object_CXX=yes
15047
15048 # Not sure whether something based on
15049 # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
15050 # would be better.
15051 output_verbose_link_cmd='func_echo_all'
15052
15053 # Archives containing C++ object files must be created using
15054 # "CC -xar", where "CC" is the Sun C++ compiler. This is
15055 # necessary to make sure instantiated templates are included
15056 # in the archive.
15057 old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
15058 ;;
15059 esac
15060 ;;
15061 esac
15062 ;;
15063
15064 lynxos*)
15065 # FIXME: insert proper C++ library support
15066 ld_shlibs_CXX=no
15067 ;;
15068
15069 m88k*)
15070 # FIXME: insert proper C++ library support
15071 ld_shlibs_CXX=no
15072 ;;
15073
15074 mvs*)
15075 case $cc_basename in
15076 cxx*)
15077 # FIXME: insert proper C++ library support
15078 ld_shlibs_CXX=no
15079 ;;
15080 *)
15081 # FIXME: insert proper C++ library support
15082 ld_shlibs_CXX=no
15083 ;;
15084 esac
15085 ;;
15086
15087 netbsd*)
15088 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
15089 archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
15090 wlarc=
15091 hardcode_libdir_flag_spec_CXX='-R$libdir'
15092 hardcode_direct_CXX=yes
15093 hardcode_shlibpath_var_CXX=no
15094 fi
15095 # Workaround some broken pre-1.5 toolchains
15096 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
15097 ;;
15098
15099 *nto* | *qnx*)
15100 ld_shlibs_CXX=yes
15101 ;;
15102
15103 openbsd2*)
15104 # C++ shared libraries are fairly broken
15105 ld_shlibs_CXX=no
15106 ;;
15107
15108 openbsd*)
15109 if test -f /usr/libexec/ld.so; then
15110 hardcode_direct_CXX=yes
15111 hardcode_shlibpath_var_CXX=no
15112 hardcode_direct_absolute_CXX=yes
15113 archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
15114 hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
15115 if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
15116 archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
15117 export_dynamic_flag_spec_CXX='${wl}-E'
15118 whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
15119 fi
15120 output_verbose_link_cmd=func_echo_all
15121 else
15122 ld_shlibs_CXX=no
15123 fi
15124 ;;
15125
15126 osf3* | osf4* | osf5*)
15127 case $cc_basename in
15128 KCC*)
15129 # Kuck and Associates, Inc. (KAI) C++ Compiler
15130
15131 # KCC will only create a shared library if the output file
15132 # ends with ".so" (or ".sl" for HP-UX), so rename the library
15133 # to its proper name (with version) after linking.
15134 archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
15135
15136 hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
15137 hardcode_libdir_separator_CXX=:
15138
15139 # Archives containing C++ object files must be created using
15140 # the KAI C++ compiler.
15141 case $host in
15142 osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;
15143 *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;
15144 esac
15145 ;;
15146 RCC*)
15147 # Rational C++ 2.4.1
15148 # FIXME: insert proper C++ library support
15149 ld_shlibs_CXX=no
15150 ;;
15151 cxx*)
15152 case $host in
15153 osf3*)
15154 allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
15155 archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
15156 hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
15157 ;;
15158 *)
15159 allow_undefined_flag_CXX=' -expect_unresolved \*'
15160 archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
15161 archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
15162 echo "-hidden">> $lib.exp~
15163 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
15164 $RM $lib.exp'
15165 hardcode_libdir_flag_spec_CXX='-rpath $libdir'
15166 ;;
15167 esac
15168
15169 hardcode_libdir_separator_CXX=:
15170
15171 # Commands to make compiler produce verbose output that lists
15172 # what "hidden" libraries, object files and flags are used when
15173 # linking a shared library.
15174 #
15175 # There doesn't appear to be a way to prevent this compiler from
15176 # explicitly linking system object files so we need to strip them
15177 # from the output so that they don't get included in the library
15178 # dependencies.
15179 output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
15180 ;;
15181 *)
15182 if test "$GXX" = yes && test "$with_gnu_ld" = no; then
15183 allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
15184 case $host in
15185 osf3*)
15186 archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
15187 ;;
15188 *)
15189 archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
15190 ;;
15191 esac
15192
15193 hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
15194 hardcode_libdir_separator_CXX=:
15195
15196 # Commands to make compiler produce verbose output that lists
15197 # what "hidden" libraries, object files and flags are used when
15198 # linking a shared library.
15199 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
15200
15201 else
15202 # FIXME: insert proper C++ library support
15203 ld_shlibs_CXX=no
15204 fi
15205 ;;
15206 esac
15207 ;;
15208
15209 psos*)
15210 # FIXME: insert proper C++ library support
15211 ld_shlibs_CXX=no
15212 ;;
15213
15214 sunos4*)
15215 case $cc_basename in
15216 CC*)
15217 # Sun C++ 4.x
15218 # FIXME: insert proper C++ library support
15219 ld_shlibs_CXX=no
15220 ;;
15221 lcc*)
15222 # Lucid
15223 # FIXME: insert proper C++ library support
15224 ld_shlibs_CXX=no
15225 ;;
15226 *)
15227 # FIXME: insert proper C++ library support
15228 ld_shlibs_CXX=no
15229 ;;
15230 esac
15231 ;;
15232
15233 solaris*)
15234 case $cc_basename in
15235 CC* | sunCC*)
15236 # Sun C++ 4.2, 5.x and Centerline C++
15237 archive_cmds_need_lc_CXX=yes
15238 no_undefined_flag_CXX=' -zdefs'
15239 archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
15240 archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
15241 $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
15242
15243 hardcode_libdir_flag_spec_CXX='-R$libdir'
15244 hardcode_shlibpath_var_CXX=no
15245 case $host_os in
15246 solaris2.[0-5] | solaris2.[0-5].*) ;;
15247 *)
15248 # The compiler driver will combine and reorder linker options,
15249 # but understands `-z linker_flag'.
15250 # Supported since Solaris 2.6 (maybe 2.5.1?)
15251 whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
15252 ;;
15253 esac
15254 link_all_deplibs_CXX=yes
15255
15256 output_verbose_link_cmd='func_echo_all'
15257
15258 # Archives containing C++ object files must be created using
15259 # "CC -xar", where "CC" is the Sun C++ compiler. This is
15260 # necessary to make sure instantiated templates are included
15261 # in the archive.
15262 old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
15263 ;;
15264 gcx*)
15265 # Green Hills C++ Compiler
15266 archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
15267
15268 # The C++ compiler must be used to create the archive.
15269 old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
15270 ;;
15271 *)
15272 # GNU C++ compiler with Solaris linker
15273 if test "$GXX" = yes && test "$with_gnu_ld" = no; then
15274 no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
15275 if $CC --version | $GREP -v '^2\.7' > /dev/null; then
15276 archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
15277 archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
15278 $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
15279
15280 # Commands to make compiler produce verbose output that lists
15281 # what "hidden" libraries, object files and flags are used when
15282 # linking a shared library.
15283 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
15284 else
15285 # g++ 2.7 appears to require `-G' NOT `-shared' on this
15286 # platform.
15287 archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
15288 archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
15289 $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
15290
15291 # Commands to make compiler produce verbose output that lists
15292 # what "hidden" libraries, object files and flags are used when
15293 # linking a shared library.
15294 output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
15295 fi
15296
15297 hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
15298 case $host_os in
15299 solaris2.[0-5] | solaris2.[0-5].*) ;;
15300 *)
15301 whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
15302 ;;
15303 esac
15304 fi
15305 ;;
15306 esac
15307 ;;
15308
15309 sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
15310 no_undefined_flag_CXX='${wl}-z,text'
15311 archive_cmds_need_lc_CXX=no
15312 hardcode_shlibpath_var_CXX=no
15313 runpath_var='LD_RUN_PATH'
15314
15315 case $cc_basename in
15316 CC*)
15317 archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
15318 archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
15319 ;;
15320 *)
15321 archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
15322 archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
15323 ;;
15324 esac
15325 ;;
15326
15327 sysv5* | sco3.2v5* | sco5v6*)
15328 # Note: We can NOT use -z defs as we might desire, because we do not
15329 # link with -lc, and that would cause any symbols used from libc to
15330 # always be unresolved, which means just about no library would
15331 # ever link correctly. If we're not using GNU ld we use -z text
15332 # though, which does catch some bad symbols but isn't as heavy-handed
15333 # as -z defs.
15334 no_undefined_flag_CXX='${wl}-z,text'
15335 allow_undefined_flag_CXX='${wl}-z,nodefs'
15336 archive_cmds_need_lc_CXX=no
15337 hardcode_shlibpath_var_CXX=no
15338 hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir'
15339 hardcode_libdir_separator_CXX=':'
15340 link_all_deplibs_CXX=yes
15341 export_dynamic_flag_spec_CXX='${wl}-Bexport'
15342 runpath_var='LD_RUN_PATH'
15343
15344 case $cc_basename in
15345 CC*)
15346 archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
15347 archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
15348 old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~
15349 '"$old_archive_cmds_CXX"
15350 reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~
15351 '"$reload_cmds_CXX"
15352 ;;
15353 *)
15354 archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
15355 archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
15356 ;;
15357 esac
15358 ;;
15359
15360 tandem*)
15361 case $cc_basename in
15362 NCC*)
15363 # NonStop-UX NCC 3.20
15364 # FIXME: insert proper C++ library support
15365 ld_shlibs_CXX=no
15366 ;;
15367 *)
15368 # FIXME: insert proper C++ library support
15369 ld_shlibs_CXX=no
15370 ;;
15371 esac
15372 ;;
15373
15374 vxworks*)
15375 # FIXME: insert proper C++ library support
15376 ld_shlibs_CXX=no
15377 ;;
15378
15379 *)
15380 # FIXME: insert proper C++ library support
15381 ld_shlibs_CXX=no
15382 ;;
15383 esac
15384
15385 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
15386 $as_echo "$ld_shlibs_CXX" >&6; }
15387 test "$ld_shlibs_CXX" = no && can_build_shared=no
15388
15389 GCC_CXX="$GXX"
15390 LD_CXX="$LD"
15391
15392 ## CAVEAT EMPTOR:
15393 ## There is no encapsulation within the following macros, do not change
15394 ## the running order or otherwise move them around unless you know exactly
15395 ## what you are doing...
15396 # Dependencies to place before and after the object being linked:
15397 predep_objects_CXX=
15398 postdep_objects_CXX=
15399 predeps_CXX=
15400 postdeps_CXX=
15401 compiler_lib_search_path_CXX=
15402
15403 cat > conftest.$ac_ext <<_LT_EOF
15404 class Foo
15405 {
15406 public:
15407 Foo (void) { a = 0; }
15408 private:
15409 int a;
15410 };
15411 _LT_EOF
15412
15413
15414 _lt_libdeps_save_CFLAGS=$CFLAGS
15415 case "$CC $CFLAGS " in #(
15416 *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
15417 *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
15418 *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
15419 esac
15420
15421 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
15422 (eval $ac_compile) 2>&5
15423 ac_status=$?
15424 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
15425 test $ac_status = 0; }; then
15426 # Parse the compiler output and extract the necessary
15427 # objects, libraries and library flags.
15428
15429 # Sentinel used to keep track of whether or not we are before
15430 # the conftest object file.
15431 pre_test_object_deps_done=no
15432
15433 for p in `eval "$output_verbose_link_cmd"`; do
15434 case ${prev}${p} in
15435
15436 -L* | -R* | -l*)
15437 # Some compilers place space between "-{L,R}" and the path.
15438 # Remove the space.
15439 if test $p = "-L" ||
15440 test $p = "-R"; then
15441 prev=$p
15442 continue
15443 fi
15444
15445 # Expand the sysroot to ease extracting the directories later.
15446 if test -z "$prev"; then
15447 case $p in
15448 -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
15449 -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
15450 -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
15451 esac
15452 fi
15453 case $p in
15454 =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
15455 esac
15456 if test "$pre_test_object_deps_done" = no; then
15457 case ${prev} in
15458 -L | -R)
15459 # Internal compiler library paths should come after those
15460 # provided the user. The postdeps already come after the
15461 # user supplied libs so there is no need to process them.
15462 if test -z "$compiler_lib_search_path_CXX"; then
15463 compiler_lib_search_path_CXX="${prev}${p}"
15464 else
15465 compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
15466 fi
15467 ;;
15468 # The "-l" case would never come before the object being
15469 # linked, so don't bother handling this case.
15470 esac
15471 else
15472 if test -z "$postdeps_CXX"; then
15473 postdeps_CXX="${prev}${p}"
15474 else
15475 postdeps_CXX="${postdeps_CXX} ${prev}${p}"
15476 fi
15477 fi
15478 prev=
15479 ;;
15480
15481 *.lto.$objext) ;; # Ignore GCC LTO objects
15482 *.$objext)
15483 # This assumes that the test object file only shows up
15484 # once in the compiler output.
15485 if test "$p" = "conftest.$objext"; then
15486 pre_test_object_deps_done=yes
15487 continue
15488 fi
15489
15490 if test "$pre_test_object_deps_done" = no; then
15491 if test -z "$predep_objects_CXX"; then
15492 predep_objects_CXX="$p"
15493 else
15494 predep_objects_CXX="$predep_objects_CXX $p"
15495 fi
15496 else
15497 if test -z "$postdep_objects_CXX"; then
15498 postdep_objects_CXX="$p"
15499 else
15500 postdep_objects_CXX="$postdep_objects_CXX $p"
15501 fi
15502 fi
15503 ;;
15504
15505 *) ;; # Ignore the rest.
15506
15507 esac
15508 done
15509
15510 # Clean up.
15511 rm -f a.out a.exe
15512 else
15513 echo "libtool.m4: error: problem compiling CXX test program"
15514 fi
15515
15516 $RM -f confest.$objext
15517 CFLAGS=$_lt_libdeps_save_CFLAGS
15518
15519 # PORTME: override above test on systems where it is broken
15520 case $host_os in
15521 interix[3-9]*)
15522 # Interix 3.5 installs completely hosed .la files for C++, so rather than
15523 # hack all around it, let's just trust "g++" to DTRT.
15524 predep_objects_CXX=
15525 postdep_objects_CXX=
15526 postdeps_CXX=
15527 ;;
15528
15529 linux*)
15530 case `$CC -V 2>&1 | sed 5q` in
15531 *Sun\ C*)
15532 # Sun C++ 5.9
15533
15534 # The more standards-conforming stlport4 library is
15535 # incompatible with the Cstd library. Avoid specifying
15536 # it if it's in CXXFLAGS. Ignore libCrun as
15537 # -library=stlport4 depends on it.
15538 case " $CXX $CXXFLAGS " in
15539 *" -library=stlport4 "*)
15540 solaris_use_stlport4=yes
15541 ;;
15542 esac
15543
15544 if test "$solaris_use_stlport4" != yes; then
15545 postdeps_CXX='-library=Cstd -library=Crun'
15546 fi
15547 ;;
15548 esac
15549 ;;
15550
15551 solaris*)
15552 case $cc_basename in
15553 CC* | sunCC*)
15554 # The more standards-conforming stlport4 library is
15555 # incompatible with the Cstd library. Avoid specifying
15556 # it if it's in CXXFLAGS. Ignore libCrun as
15557 # -library=stlport4 depends on it.
15558 case " $CXX $CXXFLAGS " in
15559 *" -library=stlport4 "*)
15560 solaris_use_stlport4=yes
15561 ;;
15562 esac
15563
15564 # Adding this requires a known-good setup of shared libraries for
15565 # Sun compiler versions before 5.6, else PIC objects from an old
15566 # archive will be linked into the output, leading to subtle bugs.
15567 if test "$solaris_use_stlport4" != yes; then
15568 postdeps_CXX='-library=Cstd -library=Crun'
15569 fi
15570 ;;
15571 esac
15572 ;;
15573 esac
15574
15575
15576 case " $postdeps_CXX " in
15577 *" -lc "*) archive_cmds_need_lc_CXX=no ;;
15578 esac
15579 compiler_lib_search_dirs_CXX=
15580 if test -n "${compiler_lib_search_path_CXX}"; then
15581 compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
15582 fi
15583
15584
15585
15586
15587
15588
15589
15590
15591
15592
15593
15594
15595
15596
15597
15598
15599
15600
15601
15602
15603
15604
15605
15606
15607
15608
15609
15610
15611
15612
15613
15614 lt_prog_compiler_wl_CXX=
15615 lt_prog_compiler_pic_CXX=
15616 lt_prog_compiler_static_CXX=
15617
15618
15619 # C++ specific cases for pic, static, wl, etc.
15620 if test "$GXX" = yes; then
15621 lt_prog_compiler_wl_CXX='-Wl,'
15622 lt_prog_compiler_static_CXX='-static'
15623
15624 case $host_os in
15625 aix*)
15626 # All AIX code is PIC.
15627 if test "$host_cpu" = ia64; then
15628 # AIX 5 now supports IA64 processor
15629 lt_prog_compiler_static_CXX='-Bstatic'
15630 fi
15631 ;;
15632
15633 amigaos*)
15634 case $host_cpu in
15635 powerpc)
15636 # see comment about AmigaOS4 .so support
15637 lt_prog_compiler_pic_CXX='-fPIC'
15638 ;;
15639 m68k)
15640 # FIXME: we need at least 68020 code to build shared libraries, but
15641 # adding the `-m68020' flag to GCC prevents building anything better,
15642 # like `-m68040'.
15643 lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
15644 ;;
15645 esac
15646 ;;
15647
15648 beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
15649 # PIC is the default for these OSes.
15650 ;;
15651 mingw* | cygwin* | os2* | pw32* | cegcc*)
15652 # This hack is so that the source file can tell whether it is being
15653 # built for inclusion in a dll (and should export symbols for example).
15654 # Although the cygwin gcc ignores -fPIC, still need this for old-style
15655 # (--disable-auto-import) libraries
15656 lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
15657 ;;
15658 darwin* | rhapsody*)
15659 # PIC is the default on this platform
15660 # Common symbols not allowed in MH_DYLIB files
15661 lt_prog_compiler_pic_CXX='-fno-common'
15662 ;;
15663 *djgpp*)
15664 # DJGPP does not support shared libraries at all
15665 lt_prog_compiler_pic_CXX=
15666 ;;
15667 haiku*)
15668 # PIC is the default for Haiku.
15669 # The "-static" flag exists, but is broken.
15670 lt_prog_compiler_static_CXX=
15671 ;;
15672 interix[3-9]*)
15673 # Interix 3.x gcc -fpic/-fPIC options generate broken code.
15674 # Instead, we relocate shared libraries at runtime.
15675 ;;
15676 sysv4*MP*)
15677 if test -d /usr/nec; then
15678 lt_prog_compiler_pic_CXX=-Kconform_pic
15679 fi
15680 ;;
15681 hpux*)
15682 # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
15683 # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
15684 # sets the default TLS model and affects inlining.
15685 case $host_cpu in
15686 hppa*64*)
15687 ;;
15688 *)
15689 lt_prog_compiler_pic_CXX='-fPIC'
15690 ;;
15691 esac
15692 ;;
15693 *qnx* | *nto*)
15694 # QNX uses GNU C++, but need to define -shared option too, otherwise
15695 # it will coredump.
15696 lt_prog_compiler_pic_CXX='-fPIC -shared'
15697 ;;
15698 *)
15699 lt_prog_compiler_pic_CXX='-fPIC'
15700 ;;
15701 esac
15702 else
15703 case $host_os in
15704 aix[4-9]*)
15705 # All AIX code is PIC.
15706 if test "$host_cpu" = ia64; then
15707 # AIX 5 now supports IA64 processor
15708 lt_prog_compiler_static_CXX='-Bstatic'
15709 else
15710 lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
15711 fi
15712 ;;
15713 chorus*)
15714 case $cc_basename in
15715 cxch68*)
15716 # Green Hills C++ Compiler
15717 # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
15718 ;;
15719 esac
15720 ;;
15721 mingw* | cygwin* | os2* | pw32* | cegcc*)
15722 # This hack is so that the source file can tell whether it is being
15723 # built for inclusion in a dll (and should export symbols for example).
15724 lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
15725 ;;
15726 dgux*)
15727 case $cc_basename in
15728 ec++*)
15729 lt_prog_compiler_pic_CXX='-KPIC'
15730 ;;
15731 ghcx*)
15732 # Green Hills C++ Compiler
15733 lt_prog_compiler_pic_CXX='-pic'
15734 ;;
15735 *)
15736 ;;
15737 esac
15738 ;;
15739 freebsd* | dragonfly*)
15740 # FreeBSD uses GNU C++
15741 ;;
15742 hpux9* | hpux10* | hpux11*)
15743 case $cc_basename in
15744 CC*)
15745 lt_prog_compiler_wl_CXX='-Wl,'
15746 lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
15747 if test "$host_cpu" != ia64; then
15748 lt_prog_compiler_pic_CXX='+Z'
15749 fi
15750 ;;
15751 aCC*)
15752 lt_prog_compiler_wl_CXX='-Wl,'
15753 lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
15754 case $host_cpu in
15755 hppa*64*|ia64*)
15756 # +Z the default
15757 ;;
15758 *)
15759 lt_prog_compiler_pic_CXX='+Z'
15760 ;;
15761 esac
15762 ;;
15763 *)
15764 ;;
15765 esac
15766 ;;
15767 interix*)
15768 # This is c89, which is MS Visual C++ (no shared libs)
15769 # Anyone wants to do a port?
15770 ;;
15771 irix5* | irix6* | nonstopux*)
15772 case $cc_basename in
15773 CC*)
15774 lt_prog_compiler_wl_CXX='-Wl,'
15775 lt_prog_compiler_static_CXX='-non_shared'
15776 # CC pic flag -KPIC is the default.
15777 ;;
15778 *)
15779 ;;
15780 esac
15781 ;;
15782 linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
15783 case $cc_basename in
15784 KCC*)
15785 # KAI C++ Compiler
15786 lt_prog_compiler_wl_CXX='--backend -Wl,'
15787 lt_prog_compiler_pic_CXX='-fPIC'
15788 ;;
15789 ecpc* )
15790 # old Intel C++ for x86_64 which still supported -KPIC.
15791 lt_prog_compiler_wl_CXX='-Wl,'
15792 lt_prog_compiler_pic_CXX='-KPIC'
15793 lt_prog_compiler_static_CXX='-static'
15794 ;;
15795 icpc* )
15796 # Intel C++, used to be incompatible with GCC.
15797 # ICC 10 doesn't accept -KPIC any more.
15798 lt_prog_compiler_wl_CXX='-Wl,'
15799 lt_prog_compiler_pic_CXX='-fPIC'
15800 lt_prog_compiler_static_CXX='-static'
15801 ;;
15802 pgCC* | pgcpp*)
15803 # Portland Group C++ compiler
15804 lt_prog_compiler_wl_CXX='-Wl,'
15805 lt_prog_compiler_pic_CXX='-fpic'
15806 lt_prog_compiler_static_CXX='-Bstatic'
15807 ;;
15808 cxx*)
15809 # Compaq C++
15810 # Make sure the PIC flag is empty. It appears that all Alpha
15811 # Linux and Compaq Tru64 Unix objects are PIC.
15812 lt_prog_compiler_pic_CXX=
15813 lt_prog_compiler_static_CXX='-non_shared'
15814 ;;
15815 xlc* | xlC* | bgxl[cC]* | mpixl[cC]*)
15816 # IBM XL 8.0, 9.0 on PPC and BlueGene
15817 lt_prog_compiler_wl_CXX='-Wl,'
15818 lt_prog_compiler_pic_CXX='-qpic'
15819 lt_prog_compiler_static_CXX='-qstaticlink'
15820 ;;
15821 *)
15822 case `$CC -V 2>&1 | sed 5q` in
15823 *Sun\ C*)
15824 # Sun C++ 5.9
15825 lt_prog_compiler_pic_CXX='-KPIC'
15826 lt_prog_compiler_static_CXX='-Bstatic'
15827 lt_prog_compiler_wl_CXX='-Qoption ld '
15828 ;;
15829 esac
15830 ;;
15831 esac
15832 ;;
15833 lynxos*)
15834 ;;
15835 m88k*)
15836 ;;
15837 mvs*)
15838 case $cc_basename in
15839 cxx*)
15840 lt_prog_compiler_pic_CXX='-W c,exportall'
15841 ;;
15842 *)
15843 ;;
15844 esac
15845 ;;
15846 netbsd* | netbsdelf*-gnu)
15847 ;;
15848 *qnx* | *nto*)
15849 # QNX uses GNU C++, but need to define -shared option too, otherwise
15850 # it will coredump.
15851 lt_prog_compiler_pic_CXX='-fPIC -shared'
15852 ;;
15853 osf3* | osf4* | osf5*)
15854 case $cc_basename in
15855 KCC*)
15856 lt_prog_compiler_wl_CXX='--backend -Wl,'
15857 ;;
15858 RCC*)
15859 # Rational C++ 2.4.1
15860 lt_prog_compiler_pic_CXX='-pic'
15861 ;;
15862 cxx*)
15863 # Digital/Compaq C++
15864 lt_prog_compiler_wl_CXX='-Wl,'
15865 # Make sure the PIC flag is empty. It appears that all Alpha
15866 # Linux and Compaq Tru64 Unix objects are PIC.
15867 lt_prog_compiler_pic_CXX=
15868 lt_prog_compiler_static_CXX='-non_shared'
15869 ;;
15870 *)
15871 ;;
15872 esac
15873 ;;
15874 psos*)
15875 ;;
15876 solaris*)
15877 case $cc_basename in
15878 CC* | sunCC*)
15879 # Sun C++ 4.2, 5.x and Centerline C++
15880 lt_prog_compiler_pic_CXX='-KPIC'
15881 lt_prog_compiler_static_CXX='-Bstatic'
15882 lt_prog_compiler_wl_CXX='-Qoption ld '
15883 ;;
15884 gcx*)
15885 # Green Hills C++ Compiler
15886 lt_prog_compiler_pic_CXX='-PIC'
15887 ;;
15888 *)
15889 ;;
15890 esac
15891 ;;
15892 sunos4*)
15893 case $cc_basename in
15894 CC*)
15895 # Sun C++ 4.x
15896 lt_prog_compiler_pic_CXX='-pic'
15897 lt_prog_compiler_static_CXX='-Bstatic'
15898 ;;
15899 lcc*)
15900 # Lucid
15901 lt_prog_compiler_pic_CXX='-pic'
15902 ;;
15903 *)
15904 ;;
15905 esac
15906 ;;
15907 sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
15908 case $cc_basename in
15909 CC*)
15910 lt_prog_compiler_wl_CXX='-Wl,'
15911 lt_prog_compiler_pic_CXX='-KPIC'
15912 lt_prog_compiler_static_CXX='-Bstatic'
15913 ;;
15914 esac
15915 ;;
15916 tandem*)
15917 case $cc_basename in
15918 NCC*)
15919 # NonStop-UX NCC 3.20
15920 lt_prog_compiler_pic_CXX='-KPIC'
15921 ;;
15922 *)
15923 ;;
15924 esac
15925 ;;
15926 vxworks*)
15927 ;;
15928 *)
15929 lt_prog_compiler_can_build_shared_CXX=no
15930 ;;
15931 esac
15932 fi
15933
15934 case $host_os in
15935 # For platforms which do not support PIC, -DPIC is meaningless:
15936 *djgpp*)
15937 lt_prog_compiler_pic_CXX=
15938 ;;
15939 *)
15940 lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
15941 ;;
15942 esac
15943
15944 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
15945 $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
15946 if ${lt_cv_prog_compiler_pic_CXX+:} false; then :
15947 $as_echo_n "(cached) " >&6
15948 else
15949 lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX
15950 fi
15951 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5
15952 $as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; }
15953 lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX
15954
15955 #
15956 # Check to make sure the PIC flag actually works.
15957 #
15958 if test -n "$lt_prog_compiler_pic_CXX"; then
15959 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
15960 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
15961 if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then :
15962 $as_echo_n "(cached) " >&6
15963 else
15964 lt_cv_prog_compiler_pic_works_CXX=no
15965 ac_outfile=conftest.$ac_objext
15966 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
15967 lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
15968 # Insert the option either (1) after the last *FLAGS variable, or
15969 # (2) before a word containing "conftest.", or (3) at the end.
15970 # Note that $ac_compile itself does not contain backslashes and begins
15971 # with a dollar sign (not a hyphen), so the echo should work correctly.
15972 # The option is referenced via a variable to avoid confusing sed.
15973 lt_compile=`echo "$ac_compile" | $SED \
15974 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
15975 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
15976 -e 's:$: $lt_compiler_flag:'`
15977 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
15978 (eval "$lt_compile" 2>conftest.err)
15979 ac_status=$?
15980 cat conftest.err >&5
15981 echo "$as_me:$LINENO: \$? = $ac_status" >&5
15982 if (exit $ac_status) && test -s "$ac_outfile"; then
15983 # The compiler can only warn and ignore the option if not recognized
15984 # So say no if there are warnings other than the usual output.
15985 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
15986 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
15987 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
15988 lt_cv_prog_compiler_pic_works_CXX=yes
15989 fi
15990 fi
15991 $RM conftest*
15992
15993 fi
15994 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
15995 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
15996
15997 if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
15998 case $lt_prog_compiler_pic_CXX in
15999 "" | " "*) ;;
16000 *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
16001 esac
16002 else
16003 lt_prog_compiler_pic_CXX=
16004 lt_prog_compiler_can_build_shared_CXX=no
16005 fi
16006
16007 fi
16008
16009
16010
16011
16012
16013 #
16014 # Check to make sure the static flag actually works.
16015 #
16016 wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
16017 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
16018 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
16019 if ${lt_cv_prog_compiler_static_works_CXX+:} false; then :
16020 $as_echo_n "(cached) " >&6
16021 else
16022 lt_cv_prog_compiler_static_works_CXX=no
16023 save_LDFLAGS="$LDFLAGS"
16024 LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
16025 echo "$lt_simple_link_test_code" > conftest.$ac_ext
16026 if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
16027 # The linker can only warn and ignore the option if not recognized
16028 # So say no if there are warnings
16029 if test -s conftest.err; then
16030 # Append any errors to the config.log.
16031 cat conftest.err 1>&5
16032 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
16033 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
16034 if diff conftest.exp conftest.er2 >/dev/null; then
16035 lt_cv_prog_compiler_static_works_CXX=yes
16036 fi
16037 else
16038 lt_cv_prog_compiler_static_works_CXX=yes
16039 fi
16040 fi
16041 $RM -r conftest*
16042 LDFLAGS="$save_LDFLAGS"
16043
16044 fi
16045 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
16046 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
16047
16048 if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
16049 :
16050 else
16051 lt_prog_compiler_static_CXX=
16052 fi
16053
16054
16055
16056
16057 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
16058 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
16059 if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
16060 $as_echo_n "(cached) " >&6
16061 else
16062 lt_cv_prog_compiler_c_o_CXX=no
16063 $RM -r conftest 2>/dev/null
16064 mkdir conftest
16065 cd conftest
16066 mkdir out
16067 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
16068
16069 lt_compiler_flag="-o out/conftest2.$ac_objext"
16070 # Insert the option either (1) after the last *FLAGS variable, or
16071 # (2) before a word containing "conftest.", or (3) at the end.
16072 # Note that $ac_compile itself does not contain backslashes and begins
16073 # with a dollar sign (not a hyphen), so the echo should work correctly.
16074 lt_compile=`echo "$ac_compile" | $SED \
16075 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
16076 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
16077 -e 's:$: $lt_compiler_flag:'`
16078 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
16079 (eval "$lt_compile" 2>out/conftest.err)
16080 ac_status=$?
16081 cat out/conftest.err >&5
16082 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16083 if (exit $ac_status) && test -s out/conftest2.$ac_objext
16084 then
16085 # The compiler can only warn and ignore the option if not recognized
16086 # So say no if there are warnings
16087 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
16088 $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
16089 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
16090 lt_cv_prog_compiler_c_o_CXX=yes
16091 fi
16092 fi
16093 chmod u+w . 2>&5
16094 $RM conftest*
16095 # SGI C++ compiler will create directory out/ii_files/ for
16096 # template instantiation
16097 test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
16098 $RM out/* && rmdir out
16099 cd ..
16100 $RM -r conftest
16101 $RM conftest*
16102
16103 fi
16104 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
16105 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
16106
16107
16108
16109 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
16110 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
16111 if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
16112 $as_echo_n "(cached) " >&6
16113 else
16114 lt_cv_prog_compiler_c_o_CXX=no
16115 $RM -r conftest 2>/dev/null
16116 mkdir conftest
16117 cd conftest
16118 mkdir out
16119 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
16120
16121 lt_compiler_flag="-o out/conftest2.$ac_objext"
16122 # Insert the option either (1) after the last *FLAGS variable, or
16123 # (2) before a word containing "conftest.", or (3) at the end.
16124 # Note that $ac_compile itself does not contain backslashes and begins
16125 # with a dollar sign (not a hyphen), so the echo should work correctly.
16126 lt_compile=`echo "$ac_compile" | $SED \
16127 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
16128 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
16129 -e 's:$: $lt_compiler_flag:'`
16130 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
16131 (eval "$lt_compile" 2>out/conftest.err)
16132 ac_status=$?
16133 cat out/conftest.err >&5
16134 echo "$as_me:$LINENO: \$? = $ac_status" >&5
16135 if (exit $ac_status) && test -s out/conftest2.$ac_objext
16136 then
16137 # The compiler can only warn and ignore the option if not recognized
16138 # So say no if there are warnings
16139 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
16140 $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
16141 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
16142 lt_cv_prog_compiler_c_o_CXX=yes
16143 fi
16144 fi
16145 chmod u+w . 2>&5
16146 $RM conftest*
16147 # SGI C++ compiler will create directory out/ii_files/ for
16148 # template instantiation
16149 test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
16150 $RM out/* && rmdir out
16151 cd ..
16152 $RM -r conftest
16153 $RM conftest*
16154
16155 fi
16156 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
16157 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
16158
16159
16160
16161
16162 hard_links="nottested"
16163 if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
16164 # do not overwrite the value of need_locks provided by the user
16165 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
16166 $as_echo_n "checking if we can lock with hard links... " >&6; }
16167 hard_links=yes
16168 $RM conftest*
16169 ln conftest.a conftest.b 2>/dev/null && hard_links=no
16170 touch conftest.a
16171 ln conftest.a conftest.b 2>&5 || hard_links=no
16172 ln conftest.a conftest.b 2>/dev/null && hard_links=no
16173 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
16174 $as_echo "$hard_links" >&6; }
16175 if test "$hard_links" = no; then
16176 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
16177 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
16178 need_locks=warn
16179 fi
16180 else
16181 need_locks=no
16182 fi
16183
16184
16185
16186 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
16187 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
16188
16189 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
16190 exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
16191 case $host_os in
16192 aix[4-9]*)
16193 # If we're using GNU nm, then we don't want the "-C" option.
16194 # -C means demangle to AIX nm, but means don't demangle with GNU nm
16195 # Also, AIX nm treats weak defined symbols like other global defined
16196 # symbols, whereas GNU nm marks them as "W".
16197 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
16198 export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
16199 else
16200 export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
16201 fi
16202 ;;
16203 pw32*)
16204 export_symbols_cmds_CXX="$ltdll_cmds"
16205 ;;
16206 cygwin* | mingw* | cegcc*)
16207 case $cc_basename in
16208 cl*)
16209 exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
16210 ;;
16211 *)
16212 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
16213 exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
16214 ;;
16215 esac
16216 ;;
16217 linux* | k*bsd*-gnu | gnu*)
16218 link_all_deplibs_CXX=no
16219 ;;
16220 *)
16221 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
16222 ;;
16223 esac
16224
16225 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
16226 $as_echo "$ld_shlibs_CXX" >&6; }
16227 test "$ld_shlibs_CXX" = no && can_build_shared=no
16228
16229 with_gnu_ld_CXX=$with_gnu_ld
16230
16231
16232
16233
16234
16235
16236 #
16237 # Do we need to explicitly link libc?
16238 #
16239 case "x$archive_cmds_need_lc_CXX" in
16240 x|xyes)
16241 # Assume -lc should be added
16242 archive_cmds_need_lc_CXX=yes
16243
16244 if test "$enable_shared" = yes && test "$GCC" = yes; then
16245 case $archive_cmds_CXX in
16246 *'~'*)
16247 # FIXME: we may have to deal with multi-command sequences.
16248 ;;
16249 '$CC '*)
16250 # Test whether the compiler implicitly links with -lc since on some
16251 # systems, -lgcc has to come before -lc. If gcc already passes -lc
16252 # to ld, don't add -lc before -lgcc.
16253 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
16254 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
16255 if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then :
16256 $as_echo_n "(cached) " >&6
16257 else
16258 $RM conftest*
16259 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
16260
16261 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
16262 (eval $ac_compile) 2>&5
16263 ac_status=$?
16264 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
16265 test $ac_status = 0; } 2>conftest.err; then
16266 soname=conftest
16267 lib=conftest
16268 libobjs=conftest.$ac_objext
16269 deplibs=
16270 wl=$lt_prog_compiler_wl_CXX
16271 pic_flag=$lt_prog_compiler_pic_CXX
16272 compiler_flags=-v
16273 linker_flags=-v
16274 verstring=
16275 output_objdir=.
16276 libname=conftest
16277 lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
16278 allow_undefined_flag_CXX=
16279 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
16280 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
16281 ac_status=$?
16282 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
16283 test $ac_status = 0; }
16284 then
16285 lt_cv_archive_cmds_need_lc_CXX=no
16286 else
16287 lt_cv_archive_cmds_need_lc_CXX=yes
16288 fi
16289 allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
16290 else
16291 cat conftest.err 1>&5
16292 fi
16293 $RM conftest*
16294
16295 fi
16296 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5
16297 $as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; }
16298 archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX
16299 ;;
16300 esac
16301 fi
16302 ;;
16303 esac
16304
16305
16306
16307
16308
16309
16310
16311
16312
16313
16314
16315
16316
16317
16318
16319
16320
16321
16322
16323
16324
16325
16326
16327
16328
16329
16330
16331
16332
16333
16334
16335
16336
16337
16338
16339
16340
16341
16342
16343
16344
16345
16346
16347
16348
16349
16350
16351
16352
16353
16354
16355
16356
16357
16358
16359
16360
16361
16362
16363
16364
16365
16366 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
16367 $as_echo_n "checking dynamic linker characteristics... " >&6; }
16368
16369 library_names_spec=
16370 libname_spec='lib$name'
16371 soname_spec=
16372 shrext_cmds=".so"
16373 postinstall_cmds=
16374 postuninstall_cmds=
16375 finish_cmds=
16376 finish_eval=
16377 shlibpath_var=
16378 shlibpath_overrides_runpath=unknown
16379 version_type=none
16380 dynamic_linker="$host_os ld.so"
16381 sys_lib_dlsearch_path_spec="/lib /usr/lib"
16382 need_lib_prefix=unknown
16383 hardcode_into_libs=no
16384
16385 # when you set need_version to no, make sure it does not cause -set_version
16386 # flags to be left without arguments
16387 need_version=unknown
16388
16389 case $host_os in
16390 aix3*)
16391 version_type=linux # correct to gnu/linux during the next big refactor
16392 library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
16393 shlibpath_var=LIBPATH
16394
16395 # AIX 3 has no versioning support, so we append a major version to the name.
16396 soname_spec='${libname}${release}${shared_ext}$major'
16397 ;;
16398
16399 aix[4-9]*)
16400 version_type=linux # correct to gnu/linux during the next big refactor
16401 need_lib_prefix=no
16402 need_version=no
16403 hardcode_into_libs=yes
16404 if test "$host_cpu" = ia64; then
16405 # AIX 5 supports IA64
16406 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
16407 shlibpath_var=LD_LIBRARY_PATH
16408 else
16409 # With GCC up to 2.95.x, collect2 would create an import file
16410 # for dependence libraries. The import file would start with
16411 # the line `#! .'. This would cause the generated library to
16412 # depend on `.', always an invalid library. This was fixed in
16413 # development snapshots of GCC prior to 3.0.
16414 case $host_os in
16415 aix4 | aix4.[01] | aix4.[01].*)
16416 if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
16417 echo ' yes '
16418 echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
16419 :
16420 else
16421 can_build_shared=no
16422 fi
16423 ;;
16424 esac
16425 # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
16426 # soname into executable. Probably we can add versioning support to
16427 # collect2, so additional links can be useful in future.
16428 if test "$aix_use_runtimelinking" = yes; then
16429 # If using run time linking (on AIX 4.2 or later) use lib<name>.so
16430 # instead of lib<name>.a to let people know that these are not
16431 # typical AIX shared libraries.
16432 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
16433 else
16434 # We preserve .a as extension for shared libraries through AIX4.2
16435 # and later when we are not doing run time linking.
16436 library_names_spec='${libname}${release}.a $libname.a'
16437 soname_spec='${libname}${release}${shared_ext}$major'
16438 fi
16439 shlibpath_var=LIBPATH
16440 fi
16441 ;;
16442
16443 amigaos*)
16444 case $host_cpu in
16445 powerpc)
16446 # Since July 2007 AmigaOS4 officially supports .so libraries.
16447 # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
16448 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
16449 ;;
16450 m68k)
16451 library_names_spec='$libname.ixlibrary $libname.a'
16452 # Create ${libname}_ixlibrary.a entries in /sys/libs.
16453 finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
16454 ;;
16455 esac
16456 ;;
16457
16458 beos*)
16459 library_names_spec='${libname}${shared_ext}'
16460 dynamic_linker="$host_os ld.so"
16461 shlibpath_var=LIBRARY_PATH
16462 ;;
16463
16464 bsdi[45]*)
16465 version_type=linux # correct to gnu/linux during the next big refactor
16466 need_version=no
16467 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
16468 soname_spec='${libname}${release}${shared_ext}$major'
16469 finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
16470 shlibpath_var=LD_LIBRARY_PATH
16471 sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
16472 sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
16473 # the default ld.so.conf also contains /usr/contrib/lib and
16474 # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
16475 # libtool to hard-code these into programs
16476 ;;
16477
16478 cygwin* | mingw* | pw32* | cegcc*)
16479 version_type=windows
16480 shrext_cmds=".dll"
16481 need_version=no
16482 need_lib_prefix=no
16483
16484 case $GCC,$cc_basename in
16485 yes,*)
16486 # gcc
16487 library_names_spec='$libname.dll.a'
16488 # DLL is installed to $(libdir)/../bin by postinstall_cmds
16489 postinstall_cmds='base_file=`basename \${file}`~
16490 dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
16491 dldir=$destdir/`dirname \$dlpath`~
16492 test -d \$dldir || mkdir -p \$dldir~
16493 $install_prog $dir/$dlname \$dldir/$dlname~
16494 chmod a+x \$dldir/$dlname~
16495 if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
16496 eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
16497 fi'
16498 postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
16499 dlpath=$dir/\$dldll~
16500 $RM \$dlpath'
16501 shlibpath_overrides_runpath=yes
16502
16503 case $host_os in
16504 cygwin*)
16505 # Cygwin DLLs use 'cyg' prefix rather than 'lib'
16506 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
16507
16508 ;;
16509 mingw* | cegcc*)
16510 # MinGW DLLs use traditional 'lib' prefix
16511 soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
16512 ;;
16513 pw32*)
16514 # pw32 DLLs use 'pw' prefix rather than 'lib'
16515 library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
16516 ;;
16517 esac
16518 dynamic_linker='Win32 ld.exe'
16519 ;;
16520
16521 *,cl*)
16522 # Native MSVC
16523 libname_spec='$name'
16524 soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
16525 library_names_spec='${libname}.dll.lib'
16526
16527 case $build_os in
16528 mingw*)
16529 sys_lib_search_path_spec=
16530 lt_save_ifs=$IFS
16531 IFS=';'
16532 for lt_path in $LIB
16533 do
16534 IFS=$lt_save_ifs
16535 # Let DOS variable expansion print the short 8.3 style file name.
16536 lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
16537 sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
16538 done
16539 IFS=$lt_save_ifs
16540 # Convert to MSYS style.
16541 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
16542 ;;
16543 cygwin*)
16544 # Convert to unix form, then to dos form, then back to unix form
16545 # but this time dos style (no spaces!) so that the unix form looks
16546 # like /cygdrive/c/PROGRA~1:/cygdr...
16547 sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
16548 sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
16549 sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
16550 ;;
16551 *)
16552 sys_lib_search_path_spec="$LIB"
16553 if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
16554 # It is most probably a Windows format PATH.
16555 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
16556 else
16557 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
16558 fi
16559 # FIXME: find the short name or the path components, as spaces are
16560 # common. (e.g. "Program Files" -> "PROGRA~1")
16561 ;;
16562 esac
16563
16564 # DLL is installed to $(libdir)/../bin by postinstall_cmds
16565 postinstall_cmds='base_file=`basename \${file}`~
16566 dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
16567 dldir=$destdir/`dirname \$dlpath`~
16568 test -d \$dldir || mkdir -p \$dldir~
16569 $install_prog $dir/$dlname \$dldir/$dlname'
16570 postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
16571 dlpath=$dir/\$dldll~
16572 $RM \$dlpath'
16573 shlibpath_overrides_runpath=yes
16574 dynamic_linker='Win32 link.exe'
16575 ;;
16576
16577 *)
16578 # Assume MSVC wrapper
16579 library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
16580 dynamic_linker='Win32 ld.exe'
16581 ;;
16582 esac
16583 # FIXME: first we should search . and the directory the executable is in
16584 shlibpath_var=PATH
16585 ;;
16586
16587 darwin* | rhapsody*)
16588 dynamic_linker="$host_os dyld"
16589 version_type=darwin
16590 need_lib_prefix=no
16591 need_version=no
16592 library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
16593 soname_spec='${libname}${release}${major}$shared_ext'
16594 shlibpath_overrides_runpath=yes
16595 shlibpath_var=DYLD_LIBRARY_PATH
16596 shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
16597
16598 sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
16599 ;;
16600
16601 dgux*)
16602 version_type=linux # correct to gnu/linux during the next big refactor
16603 need_lib_prefix=no
16604 need_version=no
16605 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
16606 soname_spec='${libname}${release}${shared_ext}$major'
16607 shlibpath_var=LD_LIBRARY_PATH
16608 ;;
16609
16610 freebsd* | dragonfly*)
16611 # DragonFly does not have aout. When/if they implement a new
16612 # versioning mechanism, adjust this.
16613 if test -x /usr/bin/objformat; then
16614 objformat=`/usr/bin/objformat`
16615 else
16616 case $host_os in
16617 freebsd[23].*) objformat=aout ;;
16618 *) objformat=elf ;;
16619 esac
16620 fi
16621 version_type=freebsd-$objformat
16622 case $version_type in
16623 freebsd-elf*)
16624 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
16625 need_version=no
16626 need_lib_prefix=no
16627 ;;
16628 freebsd-*)
16629 library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
16630 need_version=yes
16631 ;;
16632 esac
16633 shlibpath_var=LD_LIBRARY_PATH
16634 case $host_os in
16635 freebsd2.*)
16636 shlibpath_overrides_runpath=yes
16637 ;;
16638 freebsd3.[01]* | freebsdelf3.[01]*)
16639 shlibpath_overrides_runpath=yes
16640 hardcode_into_libs=yes
16641 ;;
16642 freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
16643 freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
16644 shlibpath_overrides_runpath=no
16645 hardcode_into_libs=yes
16646 ;;
16647 *) # from 4.6 on, and DragonFly
16648 shlibpath_overrides_runpath=yes
16649 hardcode_into_libs=yes
16650 ;;
16651 esac
16652 ;;
16653
16654 haiku*)
16655 version_type=linux # correct to gnu/linux during the next big refactor
16656 need_lib_prefix=no
16657 need_version=no
16658 dynamic_linker="$host_os runtime_loader"
16659 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
16660 soname_spec='${libname}${release}${shared_ext}$major'
16661 shlibpath_var=LIBRARY_PATH
16662 shlibpath_overrides_runpath=yes
16663 sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
16664 hardcode_into_libs=yes
16665 ;;
16666
16667 hpux9* | hpux10* | hpux11*)
16668 # Give a soname corresponding to the major version so that dld.sl refuses to
16669 # link against other versions.
16670 version_type=sunos
16671 need_lib_prefix=no
16672 need_version=no
16673 case $host_cpu in
16674 ia64*)
16675 shrext_cmds='.so'
16676 hardcode_into_libs=yes
16677 dynamic_linker="$host_os dld.so"
16678 shlibpath_var=LD_LIBRARY_PATH
16679 shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
16680 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
16681 soname_spec='${libname}${release}${shared_ext}$major'
16682 if test "X$HPUX_IA64_MODE" = X32; then
16683 sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
16684 else
16685 sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
16686 fi
16687 sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
16688 ;;
16689 hppa*64*)
16690 shrext_cmds='.sl'
16691 hardcode_into_libs=yes
16692 dynamic_linker="$host_os dld.sl"
16693 shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
16694 shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
16695 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
16696 soname_spec='${libname}${release}${shared_ext}$major'
16697 sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
16698 sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
16699 ;;
16700 *)
16701 shrext_cmds='.sl'
16702 dynamic_linker="$host_os dld.sl"
16703 shlibpath_var=SHLIB_PATH
16704 shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
16705 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
16706 soname_spec='${libname}${release}${shared_ext}$major'
16707 ;;
16708 esac
16709 # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
16710 postinstall_cmds='chmod 555 $lib'
16711 # or fails outright, so override atomically:
16712 install_override_mode=555
16713 ;;
16714
16715 interix[3-9]*)
16716 version_type=linux # correct to gnu/linux during the next big refactor
16717 need_lib_prefix=no
16718 need_version=no
16719 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
16720 soname_spec='${libname}${release}${shared_ext}$major'
16721 dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
16722 shlibpath_var=LD_LIBRARY_PATH
16723 shlibpath_overrides_runpath=no
16724 hardcode_into_libs=yes
16725 ;;
16726
16727 irix5* | irix6* | nonstopux*)
16728 case $host_os in
16729 nonstopux*) version_type=nonstopux ;;
16730 *)
16731 if test "$lt_cv_prog_gnu_ld" = yes; then
16732 version_type=linux # correct to gnu/linux during the next big refactor
16733 else
16734 version_type=irix
16735 fi ;;
16736 esac
16737 need_lib_prefix=no
16738 need_version=no
16739 soname_spec='${libname}${release}${shared_ext}$major'
16740 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
16741 case $host_os in
16742 irix5* | nonstopux*)
16743 libsuff= shlibsuff=
16744 ;;
16745 *)
16746 case $LD in # libtool.m4 will add one of these switches to LD
16747 *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
16748 libsuff= shlibsuff= libmagic=32-bit;;
16749 *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
16750 libsuff=32 shlibsuff=N32 libmagic=N32;;
16751 *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
16752 libsuff=64 shlibsuff=64 libmagic=64-bit;;
16753 *) libsuff= shlibsuff= libmagic=never-match;;
16754 esac
16755 ;;
16756 esac
16757 shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
16758 shlibpath_overrides_runpath=no
16759 sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
16760 sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
16761 hardcode_into_libs=yes
16762 ;;
16763
16764 # No shared lib support for Linux oldld, aout, or coff.
16765 linux*oldld* | linux*aout* | linux*coff*)
16766 dynamic_linker=no
16767 ;;
16768
16769 # This must be glibc/ELF.
16770 linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
16771 version_type=linux # correct to gnu/linux during the next big refactor
16772 need_lib_prefix=no
16773 need_version=no
16774 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
16775 soname_spec='${libname}${release}${shared_ext}$major'
16776 finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
16777 shlibpath_var=LD_LIBRARY_PATH
16778 shlibpath_overrides_runpath=no
16779
16780 # Some binutils ld are patched to set DT_RUNPATH
16781 if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
16782 $as_echo_n "(cached) " >&6
16783 else
16784 lt_cv_shlibpath_overrides_runpath=no
16785 save_LDFLAGS=$LDFLAGS
16786 save_libdir=$libdir
16787 eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
16788 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
16789 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
16790 /* end confdefs.h. */
16791
16792 int
16793 main ()
16794 {
16795
16796 ;
16797 return 0;
16798 }
16799 _ACEOF
16800 if ac_fn_cxx_try_link "$LINENO"; then :
16801 if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
16802 lt_cv_shlibpath_overrides_runpath=yes
16803 fi
16804 fi
16805 rm -f core conftest.err conftest.$ac_objext \
16806 conftest$ac_exeext conftest.$ac_ext
16807 LDFLAGS=$save_LDFLAGS
16808 libdir=$save_libdir
16809
16810 fi
16811
16812 shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
16813
16814 # This implies no fast_install, which is unacceptable.
16815 # Some rework will be needed to allow for fast_install
16816 # before this can be enabled.
16817 hardcode_into_libs=yes
16818
16819 # Append ld.so.conf contents to the search path
16820 if test -f /etc/ld.so.conf; then
16821 lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
16822 sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
16823 fi
16824
16825 # We used to test for /lib/ld.so.1 and disable shared libraries on
16826 # powerpc, because MkLinux only supported shared libraries with the
16827 # GNU dynamic linker. Since this was broken with cross compilers,
16828 # most powerpc-linux boxes support dynamic linking these days and
16829 # people can always --disable-shared, the test was removed, and we
16830 # assume the GNU/Linux dynamic linker is in use.
16831 dynamic_linker='GNU/Linux ld.so'
16832 ;;
16833
16834 netbsdelf*-gnu)
16835 version_type=linux
16836 need_lib_prefix=no
16837 need_version=no
16838 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
16839 soname_spec='${libname}${release}${shared_ext}$major'
16840 shlibpath_var=LD_LIBRARY_PATH
16841 shlibpath_overrides_runpath=no
16842 hardcode_into_libs=yes
16843 dynamic_linker='NetBSD ld.elf_so'
16844 ;;
16845
16846 netbsd*)
16847 version_type=sunos
16848 need_lib_prefix=no
16849 need_version=no
16850 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
16851 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
16852 finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
16853 dynamic_linker='NetBSD (a.out) ld.so'
16854 else
16855 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
16856 soname_spec='${libname}${release}${shared_ext}$major'
16857 dynamic_linker='NetBSD ld.elf_so'
16858 fi
16859 shlibpath_var=LD_LIBRARY_PATH
16860 shlibpath_overrides_runpath=yes
16861 hardcode_into_libs=yes
16862 ;;
16863
16864 newsos6)
16865 version_type=linux # correct to gnu/linux during the next big refactor
16866 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
16867 shlibpath_var=LD_LIBRARY_PATH
16868 shlibpath_overrides_runpath=yes
16869 ;;
16870
16871 *nto* | *qnx*)
16872 version_type=qnx
16873 need_lib_prefix=no
16874 need_version=no
16875 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
16876 soname_spec='${libname}${release}${shared_ext}$major'
16877 shlibpath_var=LD_LIBRARY_PATH
16878 shlibpath_overrides_runpath=no
16879 hardcode_into_libs=yes
16880 dynamic_linker='ldqnx.so'
16881 ;;
16882
16883 openbsd*)
16884 version_type=sunos
16885 sys_lib_dlsearch_path_spec="/usr/lib"
16886 need_lib_prefix=no
16887 # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
16888 case $host_os in
16889 openbsd3.3 | openbsd3.3.*) need_version=yes ;;
16890 *) need_version=no ;;
16891 esac
16892 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
16893 finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
16894 shlibpath_var=LD_LIBRARY_PATH
16895 if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
16896 case $host_os in
16897 openbsd2.[89] | openbsd2.[89].*)
16898 shlibpath_overrides_runpath=no
16899 ;;
16900 *)
16901 shlibpath_overrides_runpath=yes
16902 ;;
16903 esac
16904 else
16905 shlibpath_overrides_runpath=yes
16906 fi
16907 ;;
16908
16909 os2*)
16910 libname_spec='$name'
16911 shrext_cmds=".dll"
16912 need_lib_prefix=no
16913 library_names_spec='$libname${shared_ext} $libname.a'
16914 dynamic_linker='OS/2 ld.exe'
16915 shlibpath_var=LIBPATH
16916 ;;
16917
16918 osf3* | osf4* | osf5*)
16919 version_type=osf
16920 need_lib_prefix=no
16921 need_version=no
16922 soname_spec='${libname}${release}${shared_ext}$major'
16923 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
16924 shlibpath_var=LD_LIBRARY_PATH
16925 sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
16926 sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
16927 ;;
16928
16929 rdos*)
16930 dynamic_linker=no
16931 ;;
16932
16933 solaris*)
16934 version_type=linux # correct to gnu/linux during the next big refactor
16935 need_lib_prefix=no
16936 need_version=no
16937 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
16938 soname_spec='${libname}${release}${shared_ext}$major'
16939 shlibpath_var=LD_LIBRARY_PATH
16940 shlibpath_overrides_runpath=yes
16941 hardcode_into_libs=yes
16942 # ldd complains unless libraries are executable
16943 postinstall_cmds='chmod +x $lib'
16944 ;;
16945
16946 sunos4*)
16947 version_type=sunos
16948 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
16949 finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
16950 shlibpath_var=LD_LIBRARY_PATH
16951 shlibpath_overrides_runpath=yes
16952 if test "$with_gnu_ld" = yes; then
16953 need_lib_prefix=no
16954 fi
16955 need_version=yes
16956 ;;
16957
16958 sysv4 | sysv4.3*)
16959 version_type=linux # correct to gnu/linux during the next big refactor
16960 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
16961 soname_spec='${libname}${release}${shared_ext}$major'
16962 shlibpath_var=LD_LIBRARY_PATH
16963 case $host_vendor in
16964 sni)
16965 shlibpath_overrides_runpath=no
16966 need_lib_prefix=no
16967 runpath_var=LD_RUN_PATH
16968 ;;
16969 siemens)
16970 need_lib_prefix=no
16971 ;;
16972 motorola)
16973 need_lib_prefix=no
16974 need_version=no
16975 shlibpath_overrides_runpath=no
16976 sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
16977 ;;
16978 esac
16979 ;;
16980
16981 sysv4*MP*)
16982 if test -d /usr/nec ;then
16983 version_type=linux # correct to gnu/linux during the next big refactor
16984 library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
16985 soname_spec='$libname${shared_ext}.$major'
16986 shlibpath_var=LD_LIBRARY_PATH
16987 fi
16988 ;;
16989
16990 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
16991 version_type=freebsd-elf
16992 need_lib_prefix=no
16993 need_version=no
16994 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
16995 soname_spec='${libname}${release}${shared_ext}$major'
16996 shlibpath_var=LD_LIBRARY_PATH
16997 shlibpath_overrides_runpath=yes
16998 hardcode_into_libs=yes
16999 if test "$with_gnu_ld" = yes; then
17000 sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
17001 else
17002 sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
17003 case $host_os in
17004 sco3.2v5*)
17005 sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
17006 ;;
17007 esac
17008 fi
17009 sys_lib_dlsearch_path_spec='/usr/lib'
17010 ;;
17011
17012 tpf*)
17013 # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
17014 version_type=linux # correct to gnu/linux during the next big refactor
17015 need_lib_prefix=no
17016 need_version=no
17017 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
17018 shlibpath_var=LD_LIBRARY_PATH
17019 shlibpath_overrides_runpath=no
17020 hardcode_into_libs=yes
17021 ;;
17022
17023 uts4*)
17024 version_type=linux # correct to gnu/linux during the next big refactor
17025 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
17026 soname_spec='${libname}${release}${shared_ext}$major'
17027 shlibpath_var=LD_LIBRARY_PATH
17028 ;;
17029
17030 *)
17031 dynamic_linker=no
17032 ;;
17033 esac
17034 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
17035 $as_echo "$dynamic_linker" >&6; }
17036 test "$dynamic_linker" = no && can_build_shared=no
17037
17038 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
17039 if test "$GCC" = yes; then
17040 variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
17041 fi
17042
17043 if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
17044 sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
17045 fi
17046 if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
17047 sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
17048 fi
17049
17050
17051
17052
17053
17054
17055
17056
17057
17058
17059
17060
17061
17062
17063
17064
17065
17066
17067
17068
17069
17070
17071
17072
17073
17074
17075
17076
17077
17078
17079
17080
17081
17082
17083
17084
17085
17086
17087 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
17088 $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
17089 hardcode_action_CXX=
17090 if test -n "$hardcode_libdir_flag_spec_CXX" ||
17091 test -n "$runpath_var_CXX" ||
17092 test "X$hardcode_automatic_CXX" = "Xyes" ; then
17093
17094 # We can hardcode non-existent directories.
17095 if test "$hardcode_direct_CXX" != no &&
17096 # If the only mechanism to avoid hardcoding is shlibpath_var, we
17097 # have to relink, otherwise we might link with an installed library
17098 # when we should be linking with a yet-to-be-installed one
17099 ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
17100 test "$hardcode_minus_L_CXX" != no; then
17101 # Linking always hardcodes the temporary library directory.
17102 hardcode_action_CXX=relink
17103 else
17104 # We can link without hardcoding, and we can hardcode nonexisting dirs.
17105 hardcode_action_CXX=immediate
17106 fi
17107 else
17108 # We cannot hardcode anything, or else we can only hardcode existing
17109 # directories.
17110 hardcode_action_CXX=unsupported
17111 fi
17112 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
17113 $as_echo "$hardcode_action_CXX" >&6; }
17114
17115 if test "$hardcode_action_CXX" = relink ||
17116 test "$inherit_rpath_CXX" = yes; then
17117 # Fast installation is not supported
17118 enable_fast_install=no
17119 elif test "$shlibpath_overrides_runpath" = yes ||
17120 test "$enable_shared" = no; then
17121 # Fast installation is not necessary
17122 enable_fast_install=needless
17123 fi
17124
17125
17126
17127
17128
17129
17130
17131 fi # test -n "$compiler"
17132
17133 CC=$lt_save_CC
17134 CFLAGS=$lt_save_CFLAGS
17135 LDCXX=$LD
17136 LD=$lt_save_LD
17137 GCC=$lt_save_GCC
17138 with_gnu_ld=$lt_save_with_gnu_ld
17139 lt_cv_path_LDCXX=$lt_cv_path_LD
17140 lt_cv_path_LD=$lt_save_path_LD
17141 lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
17142 lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
17143 fi # test "$_lt_caught_CXX_error" != yes
17144
17145 ac_ext=cpp
17146 ac_cpp='$CXXCPP $CPPFLAGS'
17147 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
17148 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
17149 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
17150
17151
17152
17153
17154
17155 ac_ext=${ac_fc_srcext-f}
17156 ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
17157 ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
17158 ac_compiler_gnu=$ac_cv_fc_compiler_gnu
17159
17160
17161 if test -z "$FC" || test "X$FC" = "Xno"; then
17162 _lt_disable_FC=yes
17163 fi
17164
17165 archive_cmds_need_lc_FC=no
17166 allow_undefined_flag_FC=
17167 always_export_symbols_FC=no
17168 archive_expsym_cmds_FC=
17169 export_dynamic_flag_spec_FC=
17170 hardcode_direct_FC=no
17171 hardcode_direct_absolute_FC=no
17172 hardcode_libdir_flag_spec_FC=
17173 hardcode_libdir_separator_FC=
17174 hardcode_minus_L_FC=no
17175 hardcode_automatic_FC=no
17176 inherit_rpath_FC=no
17177 module_cmds_FC=
17178 module_expsym_cmds_FC=
17179 link_all_deplibs_FC=unknown
17180 old_archive_cmds_FC=$old_archive_cmds
17181 reload_flag_FC=$reload_flag
17182 reload_cmds_FC=$reload_cmds
17183 no_undefined_flag_FC=
17184 whole_archive_flag_spec_FC=
17185 enable_shared_with_static_runtimes_FC=no
17186
17187 # Source file extension for fc test sources.
17188 ac_ext=${ac_fc_srcext-f}
17189
17190 # Object file extension for compiled fc test sources.
17191 objext=o
17192 objext_FC=$objext
17193
17194 # No sense in running all these tests if we already determined that
17195 # the FC compiler isn't working. Some variables (like enable_shared)
17196 # are currently assumed to apply to all compilers on this platform,
17197 # and will be corrupted by setting them based on a non-working compiler.
17198 if test "$_lt_disable_FC" != yes; then
17199 # Code to be used in simple compile tests
17200 lt_simple_compile_test_code="\
17201 subroutine t
17202 return
17203 end
17204 "
17205
17206 # Code to be used in simple link tests
17207 lt_simple_link_test_code="\
17208 program t
17209 end
17210 "
17211
17212 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
17213
17214
17215
17216
17217
17218
17219 # If no C compiler was specified, use CC.
17220 LTCC=${LTCC-"$CC"}
17221
17222 # If no C compiler flags were specified, use CFLAGS.
17223 LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
17224
17225 # Allow CC to be a program name with arguments.
17226 compiler=$CC
17227
17228
17229 # save warnings/boilerplate of simple test code
17230 ac_outfile=conftest.$ac_objext
17231 echo "$lt_simple_compile_test_code" >conftest.$ac_ext
17232 eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
17233 _lt_compiler_boilerplate=`cat conftest.err`
17234 $RM conftest*
17235
17236 ac_outfile=conftest.$ac_objext
17237 echo "$lt_simple_link_test_code" >conftest.$ac_ext
17238 eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
17239 _lt_linker_boilerplate=`cat conftest.err`
17240 $RM -r conftest*
17241
17242
17243 # Allow CC to be a program name with arguments.
17244 lt_save_CC="$CC"
17245 lt_save_GCC=$GCC
17246 lt_save_CFLAGS=$CFLAGS
17247 CC=${FC-"f95"}
17248 CFLAGS=$FCFLAGS
17249 compiler=$CC
17250 GCC=$ac_cv_fc_compiler_gnu
17251
17252 compiler_FC=$CC
17253 for cc_temp in $compiler""; do
17254 case $cc_temp in
17255 compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
17256 distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
17257 \-*) ;;
17258 *) break;;
17259 esac
17260 done
17261 cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
17262
17263
17264 if test -n "$compiler"; then
17265 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
17266 $as_echo_n "checking if libtool supports shared libraries... " >&6; }
17267 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
17268 $as_echo "$can_build_shared" >&6; }
17269
17270 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
17271 $as_echo_n "checking whether to build shared libraries... " >&6; }
17272 test "$can_build_shared" = "no" && enable_shared=no
17273
17274 # On AIX, shared libraries and static libraries use the same namespace, and
17275 # are all built from PIC.
17276 case $host_os in
17277 aix3*)
17278 test "$enable_shared" = yes && enable_static=no
17279 if test -n "$RANLIB"; then
17280 archive_cmds="$archive_cmds~\$RANLIB \$lib"
17281 postinstall_cmds='$RANLIB $lib'
17282 fi
17283 ;;
17284 aix[4-9]*)
17285 if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
17286 test "$enable_shared" = yes && enable_static=no
17287 fi
17288 ;;
17289 esac
17290 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
17291 $as_echo "$enable_shared" >&6; }
17292
17293 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
17294 $as_echo_n "checking whether to build static libraries... " >&6; }
17295 # Make sure either enable_shared or enable_static is yes.
17296 test "$enable_shared" = yes || enable_static=yes
17297 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
17298 $as_echo "$enable_static" >&6; }
17299
17300 GCC_FC="$ac_cv_fc_compiler_gnu"
17301 LD_FC="$LD"
17302
17303 ## CAVEAT EMPTOR:
17304 ## There is no encapsulation within the following macros, do not change
17305 ## the running order or otherwise move them around unless you know exactly
17306 ## what you are doing...
17307 # Dependencies to place before and after the object being linked:
17308 predep_objects_FC=
17309 postdep_objects_FC=
17310 predeps_FC=
17311 postdeps_FC=
17312 compiler_lib_search_path_FC=
17313
17314 cat > conftest.$ac_ext <<_LT_EOF
17315 subroutine foo
17316 implicit none
17317 integer a
17318 a=0
17319 return
17320 end
17321 _LT_EOF
17322
17323
17324 _lt_libdeps_save_CFLAGS=$CFLAGS
17325 case "$CC $CFLAGS " in #(
17326 *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
17327 *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
17328 *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
17329 esac
17330
17331 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
17332 (eval $ac_compile) 2>&5
17333 ac_status=$?
17334 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
17335 test $ac_status = 0; }; then
17336 # Parse the compiler output and extract the necessary
17337 # objects, libraries and library flags.
17338
17339 # Sentinel used to keep track of whether or not we are before
17340 # the conftest object file.
17341 pre_test_object_deps_done=no
17342
17343 for p in `eval "$output_verbose_link_cmd"`; do
17344 case ${prev}${p} in
17345
17346 -L* | -R* | -l*)
17347 # Some compilers place space between "-{L,R}" and the path.
17348 # Remove the space.
17349 if test $p = "-L" ||
17350 test $p = "-R"; then
17351 prev=$p
17352 continue
17353 fi
17354
17355 # Expand the sysroot to ease extracting the directories later.
17356 if test -z "$prev"; then
17357 case $p in
17358 -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
17359 -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
17360 -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
17361 esac
17362 fi
17363 case $p in
17364 =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
17365 esac
17366 if test "$pre_test_object_deps_done" = no; then
17367 case ${prev} in
17368 -L | -R)
17369 # Internal compiler library paths should come after those
17370 # provided the user. The postdeps already come after the
17371 # user supplied libs so there is no need to process them.
17372 if test -z "$compiler_lib_search_path_FC"; then
17373 compiler_lib_search_path_FC="${prev}${p}"
17374 else
17375 compiler_lib_search_path_FC="${compiler_lib_search_path_FC} ${prev}${p}"
17376 fi
17377 ;;
17378 # The "-l" case would never come before the object being
17379 # linked, so don't bother handling this case.
17380 esac
17381 else
17382 if test -z "$postdeps_FC"; then
17383 postdeps_FC="${prev}${p}"
17384 else
17385 postdeps_FC="${postdeps_FC} ${prev}${p}"
17386 fi
17387 fi
17388 prev=
17389 ;;
17390
17391 *.lto.$objext) ;; # Ignore GCC LTO objects
17392 *.$objext)
17393 # This assumes that the test object file only shows up
17394 # once in the compiler output.
17395 if test "$p" = "conftest.$objext"; then
17396 pre_test_object_deps_done=yes
17397 continue
17398 fi
17399
17400 if test "$pre_test_object_deps_done" = no; then
17401 if test -z "$predep_objects_FC"; then
17402 predep_objects_FC="$p"
17403 else
17404 predep_objects_FC="$predep_objects_FC $p"
17405 fi
17406 else
17407 if test -z "$postdep_objects_FC"; then
17408 postdep_objects_FC="$p"
17409 else
17410 postdep_objects_FC="$postdep_objects_FC $p"
17411 fi
17412 fi
17413 ;;
17414
17415 *) ;; # Ignore the rest.
17416
17417 esac
17418 done
17419
17420 # Clean up.
17421 rm -f a.out a.exe
17422 else
17423 echo "libtool.m4: error: problem compiling FC test program"
17424 fi
17425
17426 $RM -f confest.$objext
17427 CFLAGS=$_lt_libdeps_save_CFLAGS
17428
17429 # PORTME: override above test on systems where it is broken
17430
17431
17432 case " $postdeps_FC " in
17433 *" -lc "*) archive_cmds_need_lc_FC=no ;;
17434 esac
17435 compiler_lib_search_dirs_FC=
17436 if test -n "${compiler_lib_search_path_FC}"; then
17437 compiler_lib_search_dirs_FC=`echo " ${compiler_lib_search_path_FC}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
17438 fi
17439
17440
17441
17442
17443
17444
17445
17446
17447
17448
17449
17450
17451
17452 lt_prog_compiler_wl_FC=
17453 lt_prog_compiler_pic_FC=
17454 lt_prog_compiler_static_FC=
17455
17456
17457 if test "$GCC" = yes; then
17458 lt_prog_compiler_wl_FC='-Wl,'
17459 lt_prog_compiler_static_FC='-static'
17460
17461 case $host_os in
17462 aix*)
17463 # All AIX code is PIC.
17464 if test "$host_cpu" = ia64; then
17465 # AIX 5 now supports IA64 processor
17466 lt_prog_compiler_static_FC='-Bstatic'
17467 fi
17468 ;;
17469
17470 amigaos*)
17471 case $host_cpu in
17472 powerpc)
17473 # see comment about AmigaOS4 .so support
17474 lt_prog_compiler_pic_FC='-fPIC'
17475 ;;
17476 m68k)
17477 # FIXME: we need at least 68020 code to build shared libraries, but
17478 # adding the `-m68020' flag to GCC prevents building anything better,
17479 # like `-m68040'.
17480 lt_prog_compiler_pic_FC='-m68020 -resident32 -malways-restore-a4'
17481 ;;
17482 esac
17483 ;;
17484
17485 beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
17486 # PIC is the default for these OSes.
17487 ;;
17488
17489 mingw* | cygwin* | pw32* | os2* | cegcc*)
17490 # This hack is so that the source file can tell whether it is being
17491 # built for inclusion in a dll (and should export symbols for example).
17492 # Although the cygwin gcc ignores -fPIC, still need this for old-style
17493 # (--disable-auto-import) libraries
17494 lt_prog_compiler_pic_FC='-DDLL_EXPORT'
17495 ;;
17496
17497 darwin* | rhapsody*)
17498 # PIC is the default on this platform
17499 # Common symbols not allowed in MH_DYLIB files
17500 lt_prog_compiler_pic_FC='-fno-common'
17501 ;;
17502
17503 haiku*)
17504 # PIC is the default for Haiku.
17505 # The "-static" flag exists, but is broken.
17506 lt_prog_compiler_static_FC=
17507 ;;
17508
17509 hpux*)
17510 # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
17511 # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
17512 # sets the default TLS model and affects inlining.
17513 case $host_cpu in
17514 hppa*64*)
17515 # +Z the default
17516 ;;
17517 *)
17518 lt_prog_compiler_pic_FC='-fPIC'
17519 ;;
17520 esac
17521 ;;
17522
17523 interix[3-9]*)
17524 # Interix 3.x gcc -fpic/-fPIC options generate broken code.
17525 # Instead, we relocate shared libraries at runtime.
17526 ;;
17527
17528 msdosdjgpp*)
17529 # Just because we use GCC doesn't mean we suddenly get shared libraries
17530 # on systems that don't support them.
17531 lt_prog_compiler_can_build_shared_FC=no
17532 enable_shared=no
17533 ;;
17534
17535 *nto* | *qnx*)
17536 # QNX uses GNU C++, but need to define -shared option too, otherwise
17537 # it will coredump.
17538 lt_prog_compiler_pic_FC='-fPIC -shared'
17539 ;;
17540
17541 sysv4*MP*)
17542 if test -d /usr/nec; then
17543 lt_prog_compiler_pic_FC=-Kconform_pic
17544 fi
17545 ;;
17546
17547 *)
17548 lt_prog_compiler_pic_FC='-fPIC'
17549 ;;
17550 esac
17551
17552 case $cc_basename in
17553 nvcc*) # Cuda Compiler Driver 2.2
17554 lt_prog_compiler_wl_FC='-Xlinker '
17555 if test -n "$lt_prog_compiler_pic_FC"; then
17556 lt_prog_compiler_pic_FC="-Xcompiler $lt_prog_compiler_pic_FC"
17557 fi
17558 ;;
17559 esac
17560 else
17561 # PORTME Check for flag to pass linker flags through the system compiler.
17562 case $host_os in
17563 aix*)
17564 lt_prog_compiler_wl_FC='-Wl,'
17565 if test "$host_cpu" = ia64; then
17566 # AIX 5 now supports IA64 processor
17567 lt_prog_compiler_static_FC='-Bstatic'
17568 else
17569 lt_prog_compiler_static_FC='-bnso -bI:/lib/syscalls.exp'
17570 fi
17571 ;;
17572
17573 mingw* | cygwin* | pw32* | os2* | cegcc*)
17574 # This hack is so that the source file can tell whether it is being
17575 # built for inclusion in a dll (and should export symbols for example).
17576 lt_prog_compiler_pic_FC='-DDLL_EXPORT'
17577 ;;
17578
17579 hpux9* | hpux10* | hpux11*)
17580 lt_prog_compiler_wl_FC='-Wl,'
17581 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
17582 # not for PA HP-UX.
17583 case $host_cpu in
17584 hppa*64*|ia64*)
17585 # +Z the default
17586 ;;
17587 *)
17588 lt_prog_compiler_pic_FC='+Z'
17589 ;;
17590 esac
17591 # Is there a better lt_prog_compiler_static that works with the bundled CC?
17592 lt_prog_compiler_static_FC='${wl}-a ${wl}archive'
17593 ;;
17594
17595 irix5* | irix6* | nonstopux*)
17596 lt_prog_compiler_wl_FC='-Wl,'
17597 # PIC (with -KPIC) is the default.
17598 lt_prog_compiler_static_FC='-non_shared'
17599 ;;
17600
17601 linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
17602 case $cc_basename in
17603 # old Intel for x86_64 which still supported -KPIC.
17604 ecc*)
17605 lt_prog_compiler_wl_FC='-Wl,'
17606 lt_prog_compiler_pic_FC='-KPIC'
17607 lt_prog_compiler_static_FC='-static'
17608 ;;
17609 # icc used to be incompatible with GCC.
17610 # ICC 10 doesn't accept -KPIC any more.
17611 icc* | ifort*)
17612 lt_prog_compiler_wl_FC='-Wl,'
17613 lt_prog_compiler_pic_FC='-fPIC'
17614 lt_prog_compiler_static_FC='-static'
17615 ;;
17616 # Lahey Fortran 8.1.
17617 lf95*)
17618 lt_prog_compiler_wl_FC='-Wl,'
17619 lt_prog_compiler_pic_FC='--shared'
17620 lt_prog_compiler_static_FC='--static'
17621 ;;
17622 nagfor*)
17623 # NAG Fortran compiler
17624 lt_prog_compiler_wl_FC='-Wl,-Wl,,'
17625 lt_prog_compiler_pic_FC='-PIC'
17626 lt_prog_compiler_static_FC='-Bstatic'
17627 ;;
17628 pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
17629 # Portland Group compilers (*not* the Pentium gcc compiler,
17630 # which looks to be a dead project)
17631 lt_prog_compiler_wl_FC='-Wl,'
17632 lt_prog_compiler_pic_FC='-fpic'
17633 lt_prog_compiler_static_FC='-Bstatic'
17634 ;;
17635 ccc*)
17636 lt_prog_compiler_wl_FC='-Wl,'
17637 # All Alpha code is PIC.
17638 lt_prog_compiler_static_FC='-non_shared'
17639 ;;
17640 xl* | bgxl* | bgf* | mpixl*)
17641 # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
17642 lt_prog_compiler_wl_FC='-Wl,'
17643 lt_prog_compiler_pic_FC='-qpic'
17644 lt_prog_compiler_static_FC='-qstaticlink'
17645 ;;
17646 *)
17647 case `$CC -V 2>&1 | sed 5q` in
17648 *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
17649 # Sun Fortran 8.3 passes all unrecognized flags to the linker
17650 lt_prog_compiler_pic_FC='-KPIC'
17651 lt_prog_compiler_static_FC='-Bstatic'
17652 lt_prog_compiler_wl_FC=''
17653 ;;
17654 *Sun\ F* | *Sun*Fortran*)
17655 lt_prog_compiler_pic_FC='-KPIC'
17656 lt_prog_compiler_static_FC='-Bstatic'
17657 lt_prog_compiler_wl_FC='-Qoption ld '
17658 ;;
17659 *Sun\ C*)
17660 # Sun C 5.9
17661 lt_prog_compiler_pic_FC='-KPIC'
17662 lt_prog_compiler_static_FC='-Bstatic'
17663 lt_prog_compiler_wl_FC='-Wl,'
17664 ;;
17665 *Intel*\ [CF]*Compiler*)
17666 lt_prog_compiler_wl_FC='-Wl,'
17667 lt_prog_compiler_pic_FC='-fPIC'
17668 lt_prog_compiler_static_FC='-static'
17669 ;;
17670 *Portland\ Group*)
17671 lt_prog_compiler_wl_FC='-Wl,'
17672 lt_prog_compiler_pic_FC='-fpic'
17673 lt_prog_compiler_static_FC='-Bstatic'
17674 ;;
17675 esac
17676 ;;
17677 esac
17678 ;;
17679
17680 newsos6)
17681 lt_prog_compiler_pic_FC='-KPIC'
17682 lt_prog_compiler_static_FC='-Bstatic'
17683 ;;
17684
17685 *nto* | *qnx*)
17686 # QNX uses GNU C++, but need to define -shared option too, otherwise
17687 # it will coredump.
17688 lt_prog_compiler_pic_FC='-fPIC -shared'
17689 ;;
17690
17691 osf3* | osf4* | osf5*)
17692 lt_prog_compiler_wl_FC='-Wl,'
17693 # All OSF/1 code is PIC.
17694 lt_prog_compiler_static_FC='-non_shared'
17695 ;;
17696
17697 rdos*)
17698 lt_prog_compiler_static_FC='-non_shared'
17699 ;;
17700
17701 solaris*)
17702 lt_prog_compiler_pic_FC='-KPIC'
17703 lt_prog_compiler_static_FC='-Bstatic'
17704 case $cc_basename in
17705 f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
17706 lt_prog_compiler_wl_FC='-Qoption ld ';;
17707 *)
17708 lt_prog_compiler_wl_FC='-Wl,';;
17709 esac
17710 ;;
17711
17712 sunos4*)
17713 lt_prog_compiler_wl_FC='-Qoption ld '
17714 lt_prog_compiler_pic_FC='-PIC'
17715 lt_prog_compiler_static_FC='-Bstatic'
17716 ;;
17717
17718 sysv4 | sysv4.2uw2* | sysv4.3*)
17719 lt_prog_compiler_wl_FC='-Wl,'
17720 lt_prog_compiler_pic_FC='-KPIC'
17721 lt_prog_compiler_static_FC='-Bstatic'
17722 ;;
17723
17724 sysv4*MP*)
17725 if test -d /usr/nec ;then
17726 lt_prog_compiler_pic_FC='-Kconform_pic'
17727 lt_prog_compiler_static_FC='-Bstatic'
17728 fi
17729 ;;
17730
17731 sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
17732 lt_prog_compiler_wl_FC='-Wl,'
17733 lt_prog_compiler_pic_FC='-KPIC'
17734 lt_prog_compiler_static_FC='-Bstatic'
17735 ;;
17736
17737 unicos*)
17738 lt_prog_compiler_wl_FC='-Wl,'
17739 lt_prog_compiler_can_build_shared_FC=no
17740 ;;
17741
17742 uts4*)
17743 lt_prog_compiler_pic_FC='-pic'
17744 lt_prog_compiler_static_FC='-Bstatic'
17745 ;;
17746
17747 *)
17748 lt_prog_compiler_can_build_shared_FC=no
17749 ;;
17750 esac
17751 fi
17752
17753 case $host_os in
17754 # For platforms which do not support PIC, -DPIC is meaningless:
17755 *djgpp*)
17756 lt_prog_compiler_pic_FC=
17757 ;;
17758 *)
17759 lt_prog_compiler_pic_FC="$lt_prog_compiler_pic_FC"
17760 ;;
17761 esac
17762
17763 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
17764 $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
17765 if ${lt_cv_prog_compiler_pic_FC+:} false; then :
17766 $as_echo_n "(cached) " >&6
17767 else
17768 lt_cv_prog_compiler_pic_FC=$lt_prog_compiler_pic_FC
17769 fi
17770 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_FC" >&5
17771 $as_echo "$lt_cv_prog_compiler_pic_FC" >&6; }
17772 lt_prog_compiler_pic_FC=$lt_cv_prog_compiler_pic_FC
17773
17774 #
17775 # Check to make sure the PIC flag actually works.
17776 #
17777 if test -n "$lt_prog_compiler_pic_FC"; then
17778 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_FC works" >&5
17779 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_FC works... " >&6; }
17780 if ${lt_cv_prog_compiler_pic_works_FC+:} false; then :
17781 $as_echo_n "(cached) " >&6
17782 else
17783 lt_cv_prog_compiler_pic_works_FC=no
17784 ac_outfile=conftest.$ac_objext
17785 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
17786 lt_compiler_flag="$lt_prog_compiler_pic_FC"
17787 # Insert the option either (1) after the last *FLAGS variable, or
17788 # (2) before a word containing "conftest.", or (3) at the end.
17789 # Note that $ac_compile itself does not contain backslashes and begins
17790 # with a dollar sign (not a hyphen), so the echo should work correctly.
17791 # The option is referenced via a variable to avoid confusing sed.
17792 lt_compile=`echo "$ac_compile" | $SED \
17793 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
17794 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
17795 -e 's:$: $lt_compiler_flag:'`
17796 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
17797 (eval "$lt_compile" 2>conftest.err)
17798 ac_status=$?
17799 cat conftest.err >&5
17800 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17801 if (exit $ac_status) && test -s "$ac_outfile"; then
17802 # The compiler can only warn and ignore the option if not recognized
17803 # So say no if there are warnings other than the usual output.
17804 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
17805 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
17806 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
17807 lt_cv_prog_compiler_pic_works_FC=yes
17808 fi
17809 fi
17810 $RM conftest*
17811
17812 fi
17813 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_FC" >&5
17814 $as_echo "$lt_cv_prog_compiler_pic_works_FC" >&6; }
17815
17816 if test x"$lt_cv_prog_compiler_pic_works_FC" = xyes; then
17817 case $lt_prog_compiler_pic_FC in
17818 "" | " "*) ;;
17819 *) lt_prog_compiler_pic_FC=" $lt_prog_compiler_pic_FC" ;;
17820 esac
17821 else
17822 lt_prog_compiler_pic_FC=
17823 lt_prog_compiler_can_build_shared_FC=no
17824 fi
17825
17826 fi
17827
17828
17829
17830
17831
17832 #
17833 # Check to make sure the static flag actually works.
17834 #
17835 wl=$lt_prog_compiler_wl_FC eval lt_tmp_static_flag=\"$lt_prog_compiler_static_FC\"
17836 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
17837 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
17838 if ${lt_cv_prog_compiler_static_works_FC+:} false; then :
17839 $as_echo_n "(cached) " >&6
17840 else
17841 lt_cv_prog_compiler_static_works_FC=no
17842 save_LDFLAGS="$LDFLAGS"
17843 LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
17844 echo "$lt_simple_link_test_code" > conftest.$ac_ext
17845 if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
17846 # The linker can only warn and ignore the option if not recognized
17847 # So say no if there are warnings
17848 if test -s conftest.err; then
17849 # Append any errors to the config.log.
17850 cat conftest.err 1>&5
17851 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
17852 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
17853 if diff conftest.exp conftest.er2 >/dev/null; then
17854 lt_cv_prog_compiler_static_works_FC=yes
17855 fi
17856 else
17857 lt_cv_prog_compiler_static_works_FC=yes
17858 fi
17859 fi
17860 $RM -r conftest*
17861 LDFLAGS="$save_LDFLAGS"
17862
17863 fi
17864 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_FC" >&5
17865 $as_echo "$lt_cv_prog_compiler_static_works_FC" >&6; }
17866
17867 if test x"$lt_cv_prog_compiler_static_works_FC" = xyes; then
17868 :
17869 else
17870 lt_prog_compiler_static_FC=
17871 fi
17872
17873
17874
17875
17876 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
17877 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
17878 if ${lt_cv_prog_compiler_c_o_FC+:} false; then :
17879 $as_echo_n "(cached) " >&6
17880 else
17881 lt_cv_prog_compiler_c_o_FC=no
17882 $RM -r conftest 2>/dev/null
17883 mkdir conftest
17884 cd conftest
17885 mkdir out
17886 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
17887
17888 lt_compiler_flag="-o out/conftest2.$ac_objext"
17889 # Insert the option either (1) after the last *FLAGS variable, or
17890 # (2) before a word containing "conftest.", or (3) at the end.
17891 # Note that $ac_compile itself does not contain backslashes and begins
17892 # with a dollar sign (not a hyphen), so the echo should work correctly.
17893 lt_compile=`echo "$ac_compile" | $SED \
17894 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
17895 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
17896 -e 's:$: $lt_compiler_flag:'`
17897 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
17898 (eval "$lt_compile" 2>out/conftest.err)
17899 ac_status=$?
17900 cat out/conftest.err >&5
17901 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17902 if (exit $ac_status) && test -s out/conftest2.$ac_objext
17903 then
17904 # The compiler can only warn and ignore the option if not recognized
17905 # So say no if there are warnings
17906 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
17907 $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
17908 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
17909 lt_cv_prog_compiler_c_o_FC=yes
17910 fi
17911 fi
17912 chmod u+w . 2>&5
17913 $RM conftest*
17914 # SGI C++ compiler will create directory out/ii_files/ for
17915 # template instantiation
17916 test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
17917 $RM out/* && rmdir out
17918 cd ..
17919 $RM -r conftest
17920 $RM conftest*
17921
17922 fi
17923 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_FC" >&5
17924 $as_echo "$lt_cv_prog_compiler_c_o_FC" >&6; }
17925
17926
17927
17928 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
17929 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
17930 if ${lt_cv_prog_compiler_c_o_FC+:} false; then :
17931 $as_echo_n "(cached) " >&6
17932 else
17933 lt_cv_prog_compiler_c_o_FC=no
17934 $RM -r conftest 2>/dev/null
17935 mkdir conftest
17936 cd conftest
17937 mkdir out
17938 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
17939
17940 lt_compiler_flag="-o out/conftest2.$ac_objext"
17941 # Insert the option either (1) after the last *FLAGS variable, or
17942 # (2) before a word containing "conftest.", or (3) at the end.
17943 # Note that $ac_compile itself does not contain backslashes and begins
17944 # with a dollar sign (not a hyphen), so the echo should work correctly.
17945 lt_compile=`echo "$ac_compile" | $SED \
17946 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
17947 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
17948 -e 's:$: $lt_compiler_flag:'`
17949 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
17950 (eval "$lt_compile" 2>out/conftest.err)
17951 ac_status=$?
17952 cat out/conftest.err >&5
17953 echo "$as_me:$LINENO: \$? = $ac_status" >&5
17954 if (exit $ac_status) && test -s out/conftest2.$ac_objext
17955 then
17956 # The compiler can only warn and ignore the option if not recognized
17957 # So say no if there are warnings
17958 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
17959 $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
17960 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
17961 lt_cv_prog_compiler_c_o_FC=yes
17962 fi
17963 fi
17964 chmod u+w . 2>&5
17965 $RM conftest*
17966 # SGI C++ compiler will create directory out/ii_files/ for
17967 # template instantiation
17968 test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
17969 $RM out/* && rmdir out
17970 cd ..
17971 $RM -r conftest
17972 $RM conftest*
17973
17974 fi
17975 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_FC" >&5
17976 $as_echo "$lt_cv_prog_compiler_c_o_FC" >&6; }
17977
17978
17979
17980
17981 hard_links="nottested"
17982 if test "$lt_cv_prog_compiler_c_o_FC" = no && test "$need_locks" != no; then
17983 # do not overwrite the value of need_locks provided by the user
17984 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
17985 $as_echo_n "checking if we can lock with hard links... " >&6; }
17986 hard_links=yes
17987 $RM conftest*
17988 ln conftest.a conftest.b 2>/dev/null && hard_links=no
17989 touch conftest.a
17990 ln conftest.a conftest.b 2>&5 || hard_links=no
17991 ln conftest.a conftest.b 2>/dev/null && hard_links=no
17992 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
17993 $as_echo "$hard_links" >&6; }
17994 if test "$hard_links" = no; then
17995 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
17996 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
17997 need_locks=warn
17998 fi
17999 else
18000 need_locks=no
18001 fi
18002
18003
18004
18005 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
18006 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
18007
18008 runpath_var=
18009 allow_undefined_flag_FC=
18010 always_export_symbols_FC=no
18011 archive_cmds_FC=
18012 archive_expsym_cmds_FC=
18013 compiler_needs_object_FC=no
18014 enable_shared_with_static_runtimes_FC=no
18015 export_dynamic_flag_spec_FC=
18016 export_symbols_cmds_FC='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
18017 hardcode_automatic_FC=no
18018 hardcode_direct_FC=no
18019 hardcode_direct_absolute_FC=no
18020 hardcode_libdir_flag_spec_FC=
18021 hardcode_libdir_separator_FC=
18022 hardcode_minus_L_FC=no
18023 hardcode_shlibpath_var_FC=unsupported
18024 inherit_rpath_FC=no
18025 link_all_deplibs_FC=unknown
18026 module_cmds_FC=
18027 module_expsym_cmds_FC=
18028 old_archive_from_new_cmds_FC=
18029 old_archive_from_expsyms_cmds_FC=
18030 thread_safe_flag_spec_FC=
18031 whole_archive_flag_spec_FC=
18032 # include_expsyms should be a list of space-separated symbols to be *always*
18033 # included in the symbol list
18034 include_expsyms_FC=
18035 # exclude_expsyms can be an extended regexp of symbols to exclude
18036 # it will be wrapped by ` (' and `)$', so one must not match beginning or
18037 # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
18038 # as well as any symbol that contains `d'.
18039 exclude_expsyms_FC='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
18040 # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
18041 # platforms (ab)use it in PIC code, but their linkers get confused if
18042 # the symbol is explicitly referenced. Since portable code cannot
18043 # rely on this symbol name, it's probably fine to never include it in
18044 # preloaded symbol tables.
18045 # Exclude shared library initialization/finalization symbols.
18046 extract_expsyms_cmds=
18047
18048 case $host_os in
18049 cygwin* | mingw* | pw32* | cegcc*)
18050 # FIXME: the MSVC++ port hasn't been tested in a loooong time
18051 # When not using gcc, we currently assume that we are using
18052 # Microsoft Visual C++.
18053 if test "$GCC" != yes; then
18054 with_gnu_ld=no
18055 fi
18056 ;;
18057 interix*)
18058 # we just hope/assume this is gcc and not c89 (= MSVC++)
18059 with_gnu_ld=yes
18060 ;;
18061 openbsd*)
18062 with_gnu_ld=no
18063 ;;
18064 linux* | k*bsd*-gnu | gnu*)
18065 link_all_deplibs_FC=no
18066 ;;
18067 esac
18068
18069 ld_shlibs_FC=yes
18070
18071 # On some targets, GNU ld is compatible enough with the native linker
18072 # that we're better off using the native interface for both.
18073 lt_use_gnu_ld_interface=no
18074 if test "$with_gnu_ld" = yes; then
18075 case $host_os in
18076 aix*)
18077 # The AIX port of GNU ld has always aspired to compatibility
18078 # with the native linker. However, as the warning in the GNU ld
18079 # block says, versions before 2.19.5* couldn't really create working
18080 # shared libraries, regardless of the interface used.
18081 case `$LD -v 2>&1` in
18082 *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
18083 *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
18084 *\ \(GNU\ Binutils\)\ [3-9]*) ;;
18085 *)
18086 lt_use_gnu_ld_interface=yes
18087 ;;
18088 esac
18089 ;;
18090 *)
18091 lt_use_gnu_ld_interface=yes
18092 ;;
18093 esac
18094 fi
18095
18096 if test "$lt_use_gnu_ld_interface" = yes; then
18097 # If archive_cmds runs LD, not CC, wlarc should be empty
18098 wlarc='${wl}'
18099
18100 # Set some defaults for GNU ld with shared library support. These
18101 # are reset later if shared libraries are not supported. Putting them
18102 # here allows them to be overridden if necessary.
18103 runpath_var=LD_RUN_PATH
18104 hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir'
18105 export_dynamic_flag_spec_FC='${wl}--export-dynamic'
18106 # ancient GNU ld didn't support --whole-archive et. al.
18107 if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
18108 whole_archive_flag_spec_FC="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
18109 else
18110 whole_archive_flag_spec_FC=
18111 fi
18112 supports_anon_versioning=no
18113 case `$LD -v 2>&1` in
18114 *GNU\ gold*) supports_anon_versioning=yes ;;
18115 *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
18116 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
18117 *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
18118 *\ 2.11.*) ;; # other 2.11 versions
18119 *) supports_anon_versioning=yes ;;
18120 esac
18121
18122 # See if GNU ld supports shared libraries.
18123 case $host_os in
18124 aix[3-9]*)
18125 # On AIX/PPC, the GNU linker is very broken
18126 if test "$host_cpu" != ia64; then
18127 ld_shlibs_FC=no
18128 cat <<_LT_EOF 1>&2
18129
18130 *** Warning: the GNU linker, at least up to release 2.19, is reported
18131 *** to be unable to reliably create shared libraries on AIX.
18132 *** Therefore, libtool is disabling shared libraries support. If you
18133 *** really care for shared libraries, you may want to install binutils
18134 *** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
18135 *** You will then need to restart the configuration process.
18136
18137 _LT_EOF
18138 fi
18139 ;;
18140
18141 amigaos*)
18142 case $host_cpu in
18143 powerpc)
18144 # see comment about AmigaOS4 .so support
18145 archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
18146 archive_expsym_cmds_FC=''
18147 ;;
18148 m68k)
18149 archive_cmds_FC='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
18150 hardcode_libdir_flag_spec_FC='-L$libdir'
18151 hardcode_minus_L_FC=yes
18152 ;;
18153 esac
18154 ;;
18155
18156 beos*)
18157 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
18158 allow_undefined_flag_FC=unsupported
18159 # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
18160 # support --undefined. This deserves some investigation. FIXME
18161 archive_cmds_FC='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
18162 else
18163 ld_shlibs_FC=no
18164 fi
18165 ;;
18166
18167 cygwin* | mingw* | pw32* | cegcc*)
18168 # _LT_TAGVAR(hardcode_libdir_flag_spec, FC) is actually meaningless,
18169 # as there is no search path for DLLs.
18170 hardcode_libdir_flag_spec_FC='-L$libdir'
18171 export_dynamic_flag_spec_FC='${wl}--export-all-symbols'
18172 allow_undefined_flag_FC=unsupported
18173 always_export_symbols_FC=no
18174 enable_shared_with_static_runtimes_FC=yes
18175 export_symbols_cmds_FC='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
18176 exclude_expsyms_FC='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
18177
18178 if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
18179 archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
18180 # If the export-symbols file already is a .def file (1st line
18181 # is EXPORTS), use it as is; otherwise, prepend...
18182 archive_expsym_cmds_FC='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
18183 cp $export_symbols $output_objdir/$soname.def;
18184 else
18185 echo EXPORTS > $output_objdir/$soname.def;
18186 cat $export_symbols >> $output_objdir/$soname.def;
18187 fi~
18188 $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
18189 else
18190 ld_shlibs_FC=no
18191 fi
18192 ;;
18193
18194 haiku*)
18195 archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
18196 link_all_deplibs_FC=yes
18197 ;;
18198
18199 interix[3-9]*)
18200 hardcode_direct_FC=no
18201 hardcode_shlibpath_var_FC=no
18202 hardcode_libdir_flag_spec_FC='${wl}-rpath,$libdir'
18203 export_dynamic_flag_spec_FC='${wl}-E'
18204 # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
18205 # Instead, shared libraries are loaded at an image base (0x10000000 by
18206 # default) and relocated if they conflict, which is a slow very memory
18207 # consuming and fragmenting process. To avoid this, we pick a random,
18208 # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
18209 # time. Moving up from 0x10000000 also allows more sbrk(2) space.
18210 archive_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
18211 archive_expsym_cmds_FC='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
18212 ;;
18213
18214 gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
18215 tmp_diet=no
18216 if test "$host_os" = linux-dietlibc; then
18217 case $cc_basename in
18218 diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
18219 esac
18220 fi
18221 if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
18222 && test "$tmp_diet" = no
18223 then
18224 tmp_addflag=' $pic_flag'
18225 tmp_sharedflag='-shared'
18226 case $cc_basename,$host_cpu in
18227 pgcc*) # Portland Group C compiler
18228 whole_archive_flag_spec_FC='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
18229 tmp_addflag=' $pic_flag'
18230 ;;
18231 pgf77* | pgf90* | pgf95* | pgfortran*)
18232 # Portland Group f77 and f90 compilers
18233 whole_archive_flag_spec_FC='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
18234 tmp_addflag=' $pic_flag -Mnomain' ;;
18235 ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
18236 tmp_addflag=' -i_dynamic' ;;
18237 efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
18238 tmp_addflag=' -i_dynamic -nofor_main' ;;
18239 ifc* | ifort*) # Intel Fortran compiler
18240 tmp_addflag=' -nofor_main' ;;
18241 lf95*) # Lahey Fortran 8.1
18242 whole_archive_flag_spec_FC=
18243 tmp_sharedflag='--shared' ;;
18244 xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
18245 tmp_sharedflag='-qmkshrobj'
18246 tmp_addflag= ;;
18247 nvcc*) # Cuda Compiler Driver 2.2
18248 whole_archive_flag_spec_FC='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
18249 compiler_needs_object_FC=yes
18250 ;;
18251 esac
18252 case `$CC -V 2>&1 | sed 5q` in
18253 *Sun\ C*) # Sun C 5.9
18254 whole_archive_flag_spec_FC='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
18255 compiler_needs_object_FC=yes
18256 tmp_sharedflag='-G' ;;
18257 *Sun\ F*) # Sun Fortran 8.3
18258 tmp_sharedflag='-G' ;;
18259 esac
18260 archive_cmds_FC='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
18261
18262 if test "x$supports_anon_versioning" = xyes; then
18263 archive_expsym_cmds_FC='echo "{ global:" > $output_objdir/$libname.ver~
18264 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
18265 echo "local: *; };" >> $output_objdir/$libname.ver~
18266 $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
18267 fi
18268
18269 case $cc_basename in
18270 xlf* | bgf* | bgxlf* | mpixlf*)
18271 # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
18272 whole_archive_flag_spec_FC='--whole-archive$convenience --no-whole-archive'
18273 hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir'
18274 archive_cmds_FC='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
18275 if test "x$supports_anon_versioning" = xyes; then
18276 archive_expsym_cmds_FC='echo "{ global:" > $output_objdir/$libname.ver~
18277 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
18278 echo "local: *; };" >> $output_objdir/$libname.ver~
18279 $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
18280 fi
18281 ;;
18282 esac
18283 else
18284 ld_shlibs_FC=no
18285 fi
18286 ;;
18287
18288 netbsd* | netbsdelf*-gnu)
18289 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
18290 archive_cmds_FC='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
18291 wlarc=
18292 else
18293 archive_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
18294 archive_expsym_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
18295 fi
18296 ;;
18297
18298 solaris*)
18299 if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
18300 ld_shlibs_FC=no
18301 cat <<_LT_EOF 1>&2
18302
18303 *** Warning: The releases 2.8.* of the GNU linker cannot reliably
18304 *** create shared libraries on Solaris systems. Therefore, libtool
18305 *** is disabling shared libraries support. We urge you to upgrade GNU
18306 *** binutils to release 2.9.1 or newer. Another option is to modify
18307 *** your PATH or compiler configuration so that the native linker is
18308 *** used, and then restart.
18309
18310 _LT_EOF
18311 elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
18312 archive_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
18313 archive_expsym_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
18314 else
18315 ld_shlibs_FC=no
18316 fi
18317 ;;
18318
18319 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
18320 case `$LD -v 2>&1` in
18321 *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
18322 ld_shlibs_FC=no
18323 cat <<_LT_EOF 1>&2
18324
18325 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
18326 *** reliably create shared libraries on SCO systems. Therefore, libtool
18327 *** is disabling shared libraries support. We urge you to upgrade GNU
18328 *** binutils to release 2.16.91.0.3 or newer. Another option is to modify
18329 *** your PATH or compiler configuration so that the native linker is
18330 *** used, and then restart.
18331
18332 _LT_EOF
18333 ;;
18334 *)
18335 # For security reasons, it is highly recommended that you always
18336 # use absolute paths for naming shared libraries, and exclude the
18337 # DT_RUNPATH tag from executables and libraries. But doing so
18338 # requires that you compile everything twice, which is a pain.
18339 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
18340 hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir'
18341 archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
18342 archive_expsym_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
18343 else
18344 ld_shlibs_FC=no
18345 fi
18346 ;;
18347 esac
18348 ;;
18349
18350 sunos4*)
18351 archive_cmds_FC='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
18352 wlarc=
18353 hardcode_direct_FC=yes
18354 hardcode_shlibpath_var_FC=no
18355 ;;
18356
18357 *)
18358 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
18359 archive_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
18360 archive_expsym_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
18361 else
18362 ld_shlibs_FC=no
18363 fi
18364 ;;
18365 esac
18366
18367 if test "$ld_shlibs_FC" = no; then
18368 runpath_var=
18369 hardcode_libdir_flag_spec_FC=
18370 export_dynamic_flag_spec_FC=
18371 whole_archive_flag_spec_FC=
18372 fi
18373 else
18374 # PORTME fill in a description of your system's linker (not GNU ld)
18375 case $host_os in
18376 aix3*)
18377 allow_undefined_flag_FC=unsupported
18378 always_export_symbols_FC=yes
18379 archive_expsym_cmds_FC='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
18380 # Note: this linker hardcodes the directories in LIBPATH if there
18381 # are no directories specified by -L.
18382 hardcode_minus_L_FC=yes
18383 if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
18384 # Neither direct hardcoding nor static linking is supported with a
18385 # broken collect2.
18386 hardcode_direct_FC=unsupported
18387 fi
18388 ;;
18389
18390 aix[4-9]*)
18391 if test "$host_cpu" = ia64; then
18392 # On IA64, the linker does run time linking by default, so we don't
18393 # have to do anything special.
18394 aix_use_runtimelinking=no
18395 exp_sym_flag='-Bexport'
18396 no_entry_flag=""
18397 else
18398 # If we're using GNU nm, then we don't want the "-C" option.
18399 # -C means demangle to AIX nm, but means don't demangle with GNU nm
18400 # Also, AIX nm treats weak defined symbols like other global
18401 # defined symbols, whereas GNU nm marks them as "W".
18402 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
18403 export_symbols_cmds_FC='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
18404 else
18405 export_symbols_cmds_FC='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
18406 fi
18407 aix_use_runtimelinking=no
18408
18409 # Test if we are trying to use run time linking or normal
18410 # AIX style linking. If -brtl is somewhere in LDFLAGS, we
18411 # need to do runtime linking.
18412 case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
18413 for ld_flag in $LDFLAGS; do
18414 if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
18415 aix_use_runtimelinking=yes
18416 break
18417 fi
18418 done
18419 ;;
18420 esac
18421
18422 exp_sym_flag='-bexport'
18423 no_entry_flag='-bnoentry'
18424 fi
18425
18426 # When large executables or shared objects are built, AIX ld can
18427 # have problems creating the table of contents. If linking a library
18428 # or program results in "error TOC overflow" add -mminimal-toc to
18429 # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
18430 # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
18431
18432 archive_cmds_FC=''
18433 hardcode_direct_FC=yes
18434 hardcode_direct_absolute_FC=yes
18435 hardcode_libdir_separator_FC=':'
18436 link_all_deplibs_FC=yes
18437 file_list_spec_FC='${wl}-f,'
18438
18439 if test "$GCC" = yes; then
18440 case $host_os in aix4.[012]|aix4.[012].*)
18441 # We only want to do this on AIX 4.2 and lower, the check
18442 # below for broken collect2 doesn't work under 4.3+
18443 collect2name=`${CC} -print-prog-name=collect2`
18444 if test -f "$collect2name" &&
18445 strings "$collect2name" | $GREP resolve_lib_name >/dev/null
18446 then
18447 # We have reworked collect2
18448 :
18449 else
18450 # We have old collect2
18451 hardcode_direct_FC=unsupported
18452 # It fails to find uninstalled libraries when the uninstalled
18453 # path is not listed in the libpath. Setting hardcode_minus_L
18454 # to unsupported forces relinking
18455 hardcode_minus_L_FC=yes
18456 hardcode_libdir_flag_spec_FC='-L$libdir'
18457 hardcode_libdir_separator_FC=
18458 fi
18459 ;;
18460 esac
18461 shared_flag='-shared'
18462 if test "$aix_use_runtimelinking" = yes; then
18463 shared_flag="$shared_flag "'${wl}-G'
18464 fi
18465 link_all_deplibs_FC=no
18466 else
18467 # not using gcc
18468 if test "$host_cpu" = ia64; then
18469 # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
18470 # chokes on -Wl,-G. The following line is correct:
18471 shared_flag='-G'
18472 else
18473 if test "$aix_use_runtimelinking" = yes; then
18474 shared_flag='${wl}-G'
18475 else
18476 shared_flag='${wl}-bM:SRE'
18477 fi
18478 fi
18479 fi
18480
18481 export_dynamic_flag_spec_FC='${wl}-bexpall'
18482 # It seems that -bexpall does not export symbols beginning with
18483 # underscore (_), so it is better to generate a list of symbols to export.
18484 always_export_symbols_FC=yes
18485 if test "$aix_use_runtimelinking" = yes; then
18486 # Warning - without using the other runtime loading flags (-brtl),
18487 # -berok will link without error, but may produce a broken library.
18488 allow_undefined_flag_FC='-berok'
18489 # Determine the default libpath from the value encoded in an
18490 # empty executable.
18491 if test "${lt_cv_aix_libpath+set}" = set; then
18492 aix_libpath=$lt_cv_aix_libpath
18493 else
18494 if ${lt_cv_aix_libpath__FC+:} false; then :
18495 $as_echo_n "(cached) " >&6
18496 else
18497 cat > conftest.$ac_ext <<_ACEOF
18498 program main
18499
18500 end
18501 _ACEOF
18502 if ac_fn_fc_try_link "$LINENO"; then :
18503
18504 lt_aix_libpath_sed='
18505 /Import File Strings/,/^$/ {
18506 /^0/ {
18507 s/^0 *\([^ ]*\) *$/\1/
18508 p
18509 }
18510 }'
18511 lt_cv_aix_libpath__FC=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
18512 # Check for a 64-bit object if we didn't find anything.
18513 if test -z "$lt_cv_aix_libpath__FC"; then
18514 lt_cv_aix_libpath__FC=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
18515 fi
18516 fi
18517 rm -f core conftest.err conftest.$ac_objext \
18518 conftest$ac_exeext conftest.$ac_ext
18519 if test -z "$lt_cv_aix_libpath__FC"; then
18520 lt_cv_aix_libpath__FC="/usr/lib:/lib"
18521 fi
18522
18523 fi
18524
18525 aix_libpath=$lt_cv_aix_libpath__FC
18526 fi
18527
18528 hardcode_libdir_flag_spec_FC='${wl}-blibpath:$libdir:'"$aix_libpath"
18529 archive_expsym_cmds_FC='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
18530 else
18531 if test "$host_cpu" = ia64; then
18532 hardcode_libdir_flag_spec_FC='${wl}-R $libdir:/usr/lib:/lib'
18533 allow_undefined_flag_FC="-z nodefs"
18534 archive_expsym_cmds_FC="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
18535 else
18536 # Determine the default libpath from the value encoded in an
18537 # empty executable.
18538 if test "${lt_cv_aix_libpath+set}" = set; then
18539 aix_libpath=$lt_cv_aix_libpath
18540 else
18541 if ${lt_cv_aix_libpath__FC+:} false; then :
18542 $as_echo_n "(cached) " >&6
18543 else
18544 cat > conftest.$ac_ext <<_ACEOF
18545 program main
18546
18547 end
18548 _ACEOF
18549 if ac_fn_fc_try_link "$LINENO"; then :
18550
18551 lt_aix_libpath_sed='
18552 /Import File Strings/,/^$/ {
18553 /^0/ {
18554 s/^0 *\([^ ]*\) *$/\1/
18555 p
18556 }
18557 }'
18558 lt_cv_aix_libpath__FC=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
18559 # Check for a 64-bit object if we didn't find anything.
18560 if test -z "$lt_cv_aix_libpath__FC"; then
18561 lt_cv_aix_libpath__FC=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
18562 fi
18563 fi
18564 rm -f core conftest.err conftest.$ac_objext \
18565 conftest$ac_exeext conftest.$ac_ext
18566 if test -z "$lt_cv_aix_libpath__FC"; then
18567 lt_cv_aix_libpath__FC="/usr/lib:/lib"
18568 fi
18569
18570 fi
18571
18572 aix_libpath=$lt_cv_aix_libpath__FC
18573 fi
18574
18575 hardcode_libdir_flag_spec_FC='${wl}-blibpath:$libdir:'"$aix_libpath"
18576 # Warning - without using the other run time loading flags,
18577 # -berok will link without error, but may produce a broken library.
18578 no_undefined_flag_FC=' ${wl}-bernotok'
18579 allow_undefined_flag_FC=' ${wl}-berok'
18580 if test "$with_gnu_ld" = yes; then
18581 # We only use this code for GNU lds that support --whole-archive.
18582 whole_archive_flag_spec_FC='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
18583 else
18584 # Exported symbols can be pulled into shared objects from archives
18585 whole_archive_flag_spec_FC='$convenience'
18586 fi
18587 archive_cmds_need_lc_FC=yes
18588 # This is similar to how AIX traditionally builds its shared libraries.
18589 archive_expsym_cmds_FC="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
18590 fi
18591 fi
18592 ;;
18593
18594 amigaos*)
18595 case $host_cpu in
18596 powerpc)
18597 # see comment about AmigaOS4 .so support
18598 archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
18599 archive_expsym_cmds_FC=''
18600 ;;
18601 m68k)
18602 archive_cmds_FC='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
18603 hardcode_libdir_flag_spec_FC='-L$libdir'
18604 hardcode_minus_L_FC=yes
18605 ;;
18606 esac
18607 ;;
18608
18609 bsdi[45]*)
18610 export_dynamic_flag_spec_FC=-rdynamic
18611 ;;
18612
18613 cygwin* | mingw* | pw32* | cegcc*)
18614 # When not using gcc, we currently assume that we are using
18615 # Microsoft Visual C++.
18616 # hardcode_libdir_flag_spec is actually meaningless, as there is
18617 # no search path for DLLs.
18618 case $cc_basename in
18619 cl*)
18620 # Native MSVC
18621 hardcode_libdir_flag_spec_FC=' '
18622 allow_undefined_flag_FC=unsupported
18623 always_export_symbols_FC=yes
18624 file_list_spec_FC='@'
18625 # Tell ltmain to make .lib files, not .a files.
18626 libext=lib
18627 # Tell ltmain to make .dll files, not .so files.
18628 shrext_cmds=".dll"
18629 # FIXME: Setting linknames here is a bad hack.
18630 archive_cmds_FC='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
18631 archive_expsym_cmds_FC='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
18632 sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
18633 else
18634 sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
18635 fi~
18636 $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
18637 linknames='
18638 # The linker will not automatically build a static lib if we build a DLL.
18639 # _LT_TAGVAR(old_archive_from_new_cmds, FC)='true'
18640 enable_shared_with_static_runtimes_FC=yes
18641 exclude_expsyms_FC='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
18642 export_symbols_cmds_FC='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
18643 # Don't use ranlib
18644 old_postinstall_cmds_FC='chmod 644 $oldlib'
18645 postlink_cmds_FC='lt_outputfile="@OUTPUT@"~
18646 lt_tool_outputfile="@TOOL_OUTPUT@"~
18647 case $lt_outputfile in
18648 *.exe|*.EXE) ;;
18649 *)
18650 lt_outputfile="$lt_outputfile.exe"
18651 lt_tool_outputfile="$lt_tool_outputfile.exe"
18652 ;;
18653 esac~
18654 if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
18655 $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
18656 $RM "$lt_outputfile.manifest";
18657 fi'
18658 ;;
18659 *)
18660 # Assume MSVC wrapper
18661 hardcode_libdir_flag_spec_FC=' '
18662 allow_undefined_flag_FC=unsupported
18663 # Tell ltmain to make .lib files, not .a files.
18664 libext=lib
18665 # Tell ltmain to make .dll files, not .so files.
18666 shrext_cmds=".dll"
18667 # FIXME: Setting linknames here is a bad hack.
18668 archive_cmds_FC='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
18669 # The linker will automatically build a .lib file if we build a DLL.
18670 old_archive_from_new_cmds_FC='true'
18671 # FIXME: Should let the user specify the lib program.
18672 old_archive_cmds_FC='lib -OUT:$oldlib$oldobjs$old_deplibs'
18673 enable_shared_with_static_runtimes_FC=yes
18674 ;;
18675 esac
18676 ;;
18677
18678 darwin* | rhapsody*)
18679
18680
18681 archive_cmds_need_lc_FC=no
18682 hardcode_direct_FC=no
18683 hardcode_automatic_FC=yes
18684 hardcode_shlibpath_var_FC=unsupported
18685 if test "$lt_cv_ld_force_load" = "yes"; then
18686 whole_archive_flag_spec_FC='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
18687 compiler_needs_object_FC=yes
18688 else
18689 whole_archive_flag_spec_FC=''
18690 fi
18691 link_all_deplibs_FC=yes
18692 allow_undefined_flag_FC="$_lt_dar_allow_undefined"
18693 case $cc_basename in
18694 ifort*) _lt_dar_can_shared=yes ;;
18695 *) _lt_dar_can_shared=$GCC ;;
18696 esac
18697 if test "$_lt_dar_can_shared" = "yes"; then
18698 output_verbose_link_cmd=func_echo_all
18699 archive_cmds_FC="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
18700 module_cmds_FC="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
18701 archive_expsym_cmds_FC="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
18702 module_expsym_cmds_FC="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
18703
18704 else
18705 ld_shlibs_FC=no
18706 fi
18707
18708 ;;
18709
18710 dgux*)
18711 archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
18712 hardcode_libdir_flag_spec_FC='-L$libdir'
18713 hardcode_shlibpath_var_FC=no
18714 ;;
18715
18716 # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
18717 # support. Future versions do this automatically, but an explicit c++rt0.o
18718 # does not break anything, and helps significantly (at the cost of a little
18719 # extra space).
18720 freebsd2.2*)
18721 archive_cmds_FC='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
18722 hardcode_libdir_flag_spec_FC='-R$libdir'
18723 hardcode_direct_FC=yes
18724 hardcode_shlibpath_var_FC=no
18725 ;;
18726
18727 # Unfortunately, older versions of FreeBSD 2 do not have this feature.
18728 freebsd2.*)
18729 archive_cmds_FC='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
18730 hardcode_direct_FC=yes
18731 hardcode_minus_L_FC=yes
18732 hardcode_shlibpath_var_FC=no
18733 ;;
18734
18735 # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
18736 freebsd* | dragonfly*)
18737 archive_cmds_FC='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
18738 hardcode_libdir_flag_spec_FC='-R$libdir'
18739 hardcode_direct_FC=yes
18740 hardcode_shlibpath_var_FC=no
18741 ;;
18742
18743 hpux9*)
18744 if test "$GCC" = yes; then
18745 archive_cmds_FC='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
18746 else
18747 archive_cmds_FC='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
18748 fi
18749 hardcode_libdir_flag_spec_FC='${wl}+b ${wl}$libdir'
18750 hardcode_libdir_separator_FC=:
18751 hardcode_direct_FC=yes
18752
18753 # hardcode_minus_L: Not really in the search PATH,
18754 # but as the default location of the library.
18755 hardcode_minus_L_FC=yes
18756 export_dynamic_flag_spec_FC='${wl}-E'
18757 ;;
18758
18759 hpux10*)
18760 if test "$GCC" = yes && test "$with_gnu_ld" = no; then
18761 archive_cmds_FC='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
18762 else
18763 archive_cmds_FC='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
18764 fi
18765 if test "$with_gnu_ld" = no; then
18766 hardcode_libdir_flag_spec_FC='${wl}+b ${wl}$libdir'
18767 hardcode_libdir_separator_FC=:
18768 hardcode_direct_FC=yes
18769 hardcode_direct_absolute_FC=yes
18770 export_dynamic_flag_spec_FC='${wl}-E'
18771 # hardcode_minus_L: Not really in the search PATH,
18772 # but as the default location of the library.
18773 hardcode_minus_L_FC=yes
18774 fi
18775 ;;
18776
18777 hpux11*)
18778 if test "$GCC" = yes && test "$with_gnu_ld" = no; then
18779 case $host_cpu in
18780 hppa*64*)
18781 archive_cmds_FC='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
18782 ;;
18783 ia64*)
18784 archive_cmds_FC='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
18785 ;;
18786 *)
18787 archive_cmds_FC='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
18788 ;;
18789 esac
18790 else
18791 case $host_cpu in
18792 hppa*64*)
18793 archive_cmds_FC='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
18794 ;;
18795 ia64*)
18796 archive_cmds_FC='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
18797 ;;
18798 *)
18799 archive_cmds_FC='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
18800 ;;
18801 esac
18802 fi
18803 if test "$with_gnu_ld" = no; then
18804 hardcode_libdir_flag_spec_FC='${wl}+b ${wl}$libdir'
18805 hardcode_libdir_separator_FC=:
18806
18807 case $host_cpu in
18808 hppa*64*|ia64*)
18809 hardcode_direct_FC=no
18810 hardcode_shlibpath_var_FC=no
18811 ;;
18812 *)
18813 hardcode_direct_FC=yes
18814 hardcode_direct_absolute_FC=yes
18815 export_dynamic_flag_spec_FC='${wl}-E'
18816
18817 # hardcode_minus_L: Not really in the search PATH,
18818 # but as the default location of the library.
18819 hardcode_minus_L_FC=yes
18820 ;;
18821 esac
18822 fi
18823 ;;
18824
18825 irix5* | irix6* | nonstopux*)
18826 if test "$GCC" = yes; then
18827 archive_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
18828 # Try to use the -exported_symbol ld option, if it does not
18829 # work, assume that -exports_file does not work either and
18830 # implicitly export all symbols.
18831 # This should be the same for all languages, so no per-tag cache variable.
18832 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
18833 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
18834 if ${lt_cv_irix_exported_symbol+:} false; then :
18835 $as_echo_n "(cached) " >&6
18836 else
18837 save_LDFLAGS="$LDFLAGS"
18838 LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
18839 cat > conftest.$ac_ext <<_ACEOF
18840
18841 subroutine foo
18842 end
18843 _ACEOF
18844 if ac_fn_fc_try_link "$LINENO"; then :
18845 lt_cv_irix_exported_symbol=yes
18846 else
18847 lt_cv_irix_exported_symbol=no
18848 fi
18849 rm -f core conftest.err conftest.$ac_objext \
18850 conftest$ac_exeext conftest.$ac_ext
18851 LDFLAGS="$save_LDFLAGS"
18852 fi
18853 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
18854 $as_echo "$lt_cv_irix_exported_symbol" >&6; }
18855 if test "$lt_cv_irix_exported_symbol" = yes; then
18856 archive_expsym_cmds_FC='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
18857 fi
18858 else
18859 archive_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
18860 archive_expsym_cmds_FC='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
18861 fi
18862 archive_cmds_need_lc_FC='no'
18863 hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir'
18864 hardcode_libdir_separator_FC=:
18865 inherit_rpath_FC=yes
18866 link_all_deplibs_FC=yes
18867 ;;
18868
18869 netbsd* | netbsdelf*-gnu)
18870 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
18871 archive_cmds_FC='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
18872 else
18873 archive_cmds_FC='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
18874 fi
18875 hardcode_libdir_flag_spec_FC='-R$libdir'
18876 hardcode_direct_FC=yes
18877 hardcode_shlibpath_var_FC=no
18878 ;;
18879
18880 newsos6)
18881 archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
18882 hardcode_direct_FC=yes
18883 hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir'
18884 hardcode_libdir_separator_FC=:
18885 hardcode_shlibpath_var_FC=no
18886 ;;
18887
18888 *nto* | *qnx*)
18889 ;;
18890
18891 openbsd*)
18892 if test -f /usr/libexec/ld.so; then
18893 hardcode_direct_FC=yes
18894 hardcode_shlibpath_var_FC=no
18895 hardcode_direct_absolute_FC=yes
18896 if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
18897 archive_cmds_FC='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
18898 archive_expsym_cmds_FC='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
18899 hardcode_libdir_flag_spec_FC='${wl}-rpath,$libdir'
18900 export_dynamic_flag_spec_FC='${wl}-E'
18901 else
18902 case $host_os in
18903 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
18904 archive_cmds_FC='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
18905 hardcode_libdir_flag_spec_FC='-R$libdir'
18906 ;;
18907 *)
18908 archive_cmds_FC='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
18909 hardcode_libdir_flag_spec_FC='${wl}-rpath,$libdir'
18910 ;;
18911 esac
18912 fi
18913 else
18914 ld_shlibs_FC=no
18915 fi
18916 ;;
18917
18918 os2*)
18919 hardcode_libdir_flag_spec_FC='-L$libdir'
18920 hardcode_minus_L_FC=yes
18921 allow_undefined_flag_FC=unsupported
18922 archive_cmds_FC='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
18923 old_archive_from_new_cmds_FC='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
18924 ;;
18925
18926 osf3*)
18927 if test "$GCC" = yes; then
18928 allow_undefined_flag_FC=' ${wl}-expect_unresolved ${wl}\*'
18929 archive_cmds_FC='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
18930 else
18931 allow_undefined_flag_FC=' -expect_unresolved \*'
18932 archive_cmds_FC='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
18933 fi
18934 archive_cmds_need_lc_FC='no'
18935 hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir'
18936 hardcode_libdir_separator_FC=:
18937 ;;
18938
18939 osf4* | osf5*) # as osf3* with the addition of -msym flag
18940 if test "$GCC" = yes; then
18941 allow_undefined_flag_FC=' ${wl}-expect_unresolved ${wl}\*'
18942 archive_cmds_FC='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
18943 hardcode_libdir_flag_spec_FC='${wl}-rpath ${wl}$libdir'
18944 else
18945 allow_undefined_flag_FC=' -expect_unresolved \*'
18946 archive_cmds_FC='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
18947 archive_expsym_cmds_FC='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
18948 $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
18949
18950 # Both c and cxx compiler support -rpath directly
18951 hardcode_libdir_flag_spec_FC='-rpath $libdir'
18952 fi
18953 archive_cmds_need_lc_FC='no'
18954 hardcode_libdir_separator_FC=:
18955 ;;
18956
18957 solaris*)
18958 no_undefined_flag_FC=' -z defs'
18959 if test "$GCC" = yes; then
18960 wlarc='${wl}'
18961 archive_cmds_FC='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
18962 archive_expsym_cmds_FC='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
18963 $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
18964 else
18965 case `$CC -V 2>&1` in
18966 *"Compilers 5.0"*)
18967 wlarc=''
18968 archive_cmds_FC='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
18969 archive_expsym_cmds_FC='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
18970 $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
18971 ;;
18972 *)
18973 wlarc='${wl}'
18974 archive_cmds_FC='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
18975 archive_expsym_cmds_FC='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
18976 $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
18977 ;;
18978 esac
18979 fi
18980 hardcode_libdir_flag_spec_FC='-R$libdir'
18981 hardcode_shlibpath_var_FC=no
18982 case $host_os in
18983 solaris2.[0-5] | solaris2.[0-5].*) ;;
18984 *)
18985 # The compiler driver will combine and reorder linker options,
18986 # but understands `-z linker_flag'. GCC discards it without `$wl',
18987 # but is careful enough not to reorder.
18988 # Supported since Solaris 2.6 (maybe 2.5.1?)
18989 if test "$GCC" = yes; then
18990 whole_archive_flag_spec_FC='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
18991 else
18992 whole_archive_flag_spec_FC='-z allextract$convenience -z defaultextract'
18993 fi
18994 ;;
18995 esac
18996 link_all_deplibs_FC=yes
18997 ;;
18998
18999 sunos4*)
19000 if test "x$host_vendor" = xsequent; then
19001 # Use $CC to link under sequent, because it throws in some extra .o
19002 # files that make .init and .fini sections work.
19003 archive_cmds_FC='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
19004 else
19005 archive_cmds_FC='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
19006 fi
19007 hardcode_libdir_flag_spec_FC='-L$libdir'
19008 hardcode_direct_FC=yes
19009 hardcode_minus_L_FC=yes
19010 hardcode_shlibpath_var_FC=no
19011 ;;
19012
19013 sysv4)
19014 case $host_vendor in
19015 sni)
19016 archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
19017 hardcode_direct_FC=yes # is this really true???
19018 ;;
19019 siemens)
19020 ## LD is ld it makes a PLAMLIB
19021 ## CC just makes a GrossModule.
19022 archive_cmds_FC='$LD -G -o $lib $libobjs $deplibs $linker_flags'
19023 reload_cmds_FC='$CC -r -o $output$reload_objs'
19024 hardcode_direct_FC=no
19025 ;;
19026 motorola)
19027 archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
19028 hardcode_direct_FC=no #Motorola manual says yes, but my tests say they lie
19029 ;;
19030 esac
19031 runpath_var='LD_RUN_PATH'
19032 hardcode_shlibpath_var_FC=no
19033 ;;
19034
19035 sysv4.3*)
19036 archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
19037 hardcode_shlibpath_var_FC=no
19038 export_dynamic_flag_spec_FC='-Bexport'
19039 ;;
19040
19041 sysv4*MP*)
19042 if test -d /usr/nec; then
19043 archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
19044 hardcode_shlibpath_var_FC=no
19045 runpath_var=LD_RUN_PATH
19046 hardcode_runpath_var=yes
19047 ld_shlibs_FC=yes
19048 fi
19049 ;;
19050
19051 sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
19052 no_undefined_flag_FC='${wl}-z,text'
19053 archive_cmds_need_lc_FC=no
19054 hardcode_shlibpath_var_FC=no
19055 runpath_var='LD_RUN_PATH'
19056
19057 if test "$GCC" = yes; then
19058 archive_cmds_FC='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
19059 archive_expsym_cmds_FC='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
19060 else
19061 archive_cmds_FC='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
19062 archive_expsym_cmds_FC='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
19063 fi
19064 ;;
19065
19066 sysv5* | sco3.2v5* | sco5v6*)
19067 # Note: We can NOT use -z defs as we might desire, because we do not
19068 # link with -lc, and that would cause any symbols used from libc to
19069 # always be unresolved, which means just about no library would
19070 # ever link correctly. If we're not using GNU ld we use -z text
19071 # though, which does catch some bad symbols but isn't as heavy-handed
19072 # as -z defs.
19073 no_undefined_flag_FC='${wl}-z,text'
19074 allow_undefined_flag_FC='${wl}-z,nodefs'
19075 archive_cmds_need_lc_FC=no
19076 hardcode_shlibpath_var_FC=no
19077 hardcode_libdir_flag_spec_FC='${wl}-R,$libdir'
19078 hardcode_libdir_separator_FC=':'
19079 link_all_deplibs_FC=yes
19080 export_dynamic_flag_spec_FC='${wl}-Bexport'
19081 runpath_var='LD_RUN_PATH'
19082
19083 if test "$GCC" = yes; then
19084 archive_cmds_FC='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
19085 archive_expsym_cmds_FC='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
19086 else
19087 archive_cmds_FC='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
19088 archive_expsym_cmds_FC='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
19089 fi
19090 ;;
19091
19092 uts4*)
19093 archive_cmds_FC='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
19094 hardcode_libdir_flag_spec_FC='-L$libdir'
19095 hardcode_shlibpath_var_FC=no
19096 ;;
19097
19098 *)
19099 ld_shlibs_FC=no
19100 ;;
19101 esac
19102
19103 if test x$host_vendor = xsni; then
19104 case $host in
19105 sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
19106 export_dynamic_flag_spec_FC='${wl}-Blargedynsym'
19107 ;;
19108 esac
19109 fi
19110 fi
19111
19112 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_FC" >&5
19113 $as_echo "$ld_shlibs_FC" >&6; }
19114 test "$ld_shlibs_FC" = no && can_build_shared=no
19115
19116 with_gnu_ld_FC=$with_gnu_ld
19117
19118
19119
19120
19121
19122
19123 #
19124 # Do we need to explicitly link libc?
19125 #
19126 case "x$archive_cmds_need_lc_FC" in
19127 x|xyes)
19128 # Assume -lc should be added
19129 archive_cmds_need_lc_FC=yes
19130
19131 if test "$enable_shared" = yes && test "$GCC" = yes; then
19132 case $archive_cmds_FC in
19133 *'~'*)
19134 # FIXME: we may have to deal with multi-command sequences.
19135 ;;
19136 '$CC '*)
19137 # Test whether the compiler implicitly links with -lc since on some
19138 # systems, -lgcc has to come before -lc. If gcc already passes -lc
19139 # to ld, don't add -lc before -lgcc.
19140 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
19141 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
19142 if ${lt_cv_archive_cmds_need_lc_FC+:} false; then :
19143 $as_echo_n "(cached) " >&6
19144 else
19145 $RM conftest*
19146 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
19147
19148 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
19149 (eval $ac_compile) 2>&5
19150 ac_status=$?
19151 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
19152 test $ac_status = 0; } 2>conftest.err; then
19153 soname=conftest
19154 lib=conftest
19155 libobjs=conftest.$ac_objext
19156 deplibs=
19157 wl=$lt_prog_compiler_wl_FC
19158 pic_flag=$lt_prog_compiler_pic_FC
19159 compiler_flags=-v
19160 linker_flags=-v
19161 verstring=
19162 output_objdir=.
19163 libname=conftest
19164 lt_save_allow_undefined_flag=$allow_undefined_flag_FC
19165 allow_undefined_flag_FC=
19166 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_FC 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
19167 (eval $archive_cmds_FC 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
19168 ac_status=$?
19169 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
19170 test $ac_status = 0; }
19171 then
19172 lt_cv_archive_cmds_need_lc_FC=no
19173 else
19174 lt_cv_archive_cmds_need_lc_FC=yes
19175 fi
19176 allow_undefined_flag_FC=$lt_save_allow_undefined_flag
19177 else
19178 cat conftest.err 1>&5
19179 fi
19180 $RM conftest*
19181
19182 fi
19183 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_FC" >&5
19184 $as_echo "$lt_cv_archive_cmds_need_lc_FC" >&6; }
19185 archive_cmds_need_lc_FC=$lt_cv_archive_cmds_need_lc_FC
19186 ;;
19187 esac
19188 fi
19189 ;;
19190 esac
19191
19192
19193
19194
19195
19196
19197
19198
19199
19200
19201
19202
19203
19204
19205
19206
19207
19208
19209
19210
19211
19212
19213
19214
19215
19216
19217
19218
19219
19220
19221
19222
19223
19224
19225
19226
19227
19228
19229
19230
19231
19232
19233
19234
19235
19236
19237
19238
19239
19240
19241
19242
19243
19244
19245
19246
19247
19248
19249
19250
19251
19252
19253 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
19254 $as_echo_n "checking dynamic linker characteristics... " >&6; }
19255
19256 library_names_spec=
19257 libname_spec='lib$name'
19258 soname_spec=
19259 shrext_cmds=".so"
19260 postinstall_cmds=
19261 postuninstall_cmds=
19262 finish_cmds=
19263 finish_eval=
19264 shlibpath_var=
19265 shlibpath_overrides_runpath=unknown
19266 version_type=none
19267 dynamic_linker="$host_os ld.so"
19268 sys_lib_dlsearch_path_spec="/lib /usr/lib"
19269 need_lib_prefix=unknown
19270 hardcode_into_libs=no
19271
19272 # when you set need_version to no, make sure it does not cause -set_version
19273 # flags to be left without arguments
19274 need_version=unknown
19275
19276 case $host_os in
19277 aix3*)
19278 version_type=linux # correct to gnu/linux during the next big refactor
19279 library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
19280 shlibpath_var=LIBPATH
19281
19282 # AIX 3 has no versioning support, so we append a major version to the name.
19283 soname_spec='${libname}${release}${shared_ext}$major'
19284 ;;
19285
19286 aix[4-9]*)
19287 version_type=linux # correct to gnu/linux during the next big refactor
19288 need_lib_prefix=no
19289 need_version=no
19290 hardcode_into_libs=yes
19291 if test "$host_cpu" = ia64; then
19292 # AIX 5 supports IA64
19293 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
19294 shlibpath_var=LD_LIBRARY_PATH
19295 else
19296 # With GCC up to 2.95.x, collect2 would create an import file
19297 # for dependence libraries. The import file would start with
19298 # the line `#! .'. This would cause the generated library to
19299 # depend on `.', always an invalid library. This was fixed in
19300 # development snapshots of GCC prior to 3.0.
19301 case $host_os in
19302 aix4 | aix4.[01] | aix4.[01].*)
19303 if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
19304 echo ' yes '
19305 echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
19306 :
19307 else
19308 can_build_shared=no
19309 fi
19310 ;;
19311 esac
19312 # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
19313 # soname into executable. Probably we can add versioning support to
19314 # collect2, so additional links can be useful in future.
19315 if test "$aix_use_runtimelinking" = yes; then
19316 # If using run time linking (on AIX 4.2 or later) use lib<name>.so
19317 # instead of lib<name>.a to let people know that these are not
19318 # typical AIX shared libraries.
19319 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
19320 else
19321 # We preserve .a as extension for shared libraries through AIX4.2
19322 # and later when we are not doing run time linking.
19323 library_names_spec='${libname}${release}.a $libname.a'
19324 soname_spec='${libname}${release}${shared_ext}$major'
19325 fi
19326 shlibpath_var=LIBPATH
19327 fi
19328 ;;
19329
19330 amigaos*)
19331 case $host_cpu in
19332 powerpc)
19333 # Since July 2007 AmigaOS4 officially supports .so libraries.
19334 # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
19335 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
19336 ;;
19337 m68k)
19338 library_names_spec='$libname.ixlibrary $libname.a'
19339 # Create ${libname}_ixlibrary.a entries in /sys/libs.
19340 finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
19341 ;;
19342 esac
19343 ;;
19344
19345 beos*)
19346 library_names_spec='${libname}${shared_ext}'
19347 dynamic_linker="$host_os ld.so"
19348 shlibpath_var=LIBRARY_PATH
19349 ;;
19350
19351 bsdi[45]*)
19352 version_type=linux # correct to gnu/linux during the next big refactor
19353 need_version=no
19354 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
19355 soname_spec='${libname}${release}${shared_ext}$major'
19356 finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
19357 shlibpath_var=LD_LIBRARY_PATH
19358 sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
19359 sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
19360 # the default ld.so.conf also contains /usr/contrib/lib and
19361 # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
19362 # libtool to hard-code these into programs
19363 ;;
19364
19365 cygwin* | mingw* | pw32* | cegcc*)
19366 version_type=windows
19367 shrext_cmds=".dll"
19368 need_version=no
19369 need_lib_prefix=no
19370
19371 case $GCC,$cc_basename in
19372 yes,*)
19373 # gcc
19374 library_names_spec='$libname.dll.a'
19375 # DLL is installed to $(libdir)/../bin by postinstall_cmds
19376 postinstall_cmds='base_file=`basename \${file}`~
19377 dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
19378 dldir=$destdir/`dirname \$dlpath`~
19379 test -d \$dldir || mkdir -p \$dldir~
19380 $install_prog $dir/$dlname \$dldir/$dlname~
19381 chmod a+x \$dldir/$dlname~
19382 if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
19383 eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
19384 fi'
19385 postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
19386 dlpath=$dir/\$dldll~
19387 $RM \$dlpath'
19388 shlibpath_overrides_runpath=yes
19389
19390 case $host_os in
19391 cygwin*)
19392 # Cygwin DLLs use 'cyg' prefix rather than 'lib'
19393 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
19394
19395 ;;
19396 mingw* | cegcc*)
19397 # MinGW DLLs use traditional 'lib' prefix
19398 soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
19399 ;;
19400 pw32*)
19401 # pw32 DLLs use 'pw' prefix rather than 'lib'
19402 library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
19403 ;;
19404 esac
19405 dynamic_linker='Win32 ld.exe'
19406 ;;
19407
19408 *,cl*)
19409 # Native MSVC
19410 libname_spec='$name'
19411 soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
19412 library_names_spec='${libname}.dll.lib'
19413
19414 case $build_os in
19415 mingw*)
19416 sys_lib_search_path_spec=
19417 lt_save_ifs=$IFS
19418 IFS=';'
19419 for lt_path in $LIB
19420 do
19421 IFS=$lt_save_ifs
19422 # Let DOS variable expansion print the short 8.3 style file name.
19423 lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
19424 sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
19425 done
19426 IFS=$lt_save_ifs
19427 # Convert to MSYS style.
19428 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
19429 ;;
19430 cygwin*)
19431 # Convert to unix form, then to dos form, then back to unix form
19432 # but this time dos style (no spaces!) so that the unix form looks
19433 # like /cygdrive/c/PROGRA~1:/cygdr...
19434 sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
19435 sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
19436 sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
19437 ;;
19438 *)
19439 sys_lib_search_path_spec="$LIB"
19440 if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
19441 # It is most probably a Windows format PATH.
19442 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
19443 else
19444 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
19445 fi
19446 # FIXME: find the short name or the path components, as spaces are
19447 # common. (e.g. "Program Files" -> "PROGRA~1")
19448 ;;
19449 esac
19450
19451 # DLL is installed to $(libdir)/../bin by postinstall_cmds
19452 postinstall_cmds='base_file=`basename \${file}`~
19453 dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
19454 dldir=$destdir/`dirname \$dlpath`~
19455 test -d \$dldir || mkdir -p \$dldir~
19456 $install_prog $dir/$dlname \$dldir/$dlname'
19457 postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
19458 dlpath=$dir/\$dldll~
19459 $RM \$dlpath'
19460 shlibpath_overrides_runpath=yes
19461 dynamic_linker='Win32 link.exe'
19462 ;;
19463
19464 *)
19465 # Assume MSVC wrapper
19466 library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
19467 dynamic_linker='Win32 ld.exe'
19468 ;;
19469 esac
19470 # FIXME: first we should search . and the directory the executable is in
19471 shlibpath_var=PATH
19472 ;;
19473
19474 darwin* | rhapsody*)
19475 dynamic_linker="$host_os dyld"
19476 version_type=darwin
19477 need_lib_prefix=no
19478 need_version=no
19479 library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
19480 soname_spec='${libname}${release}${major}$shared_ext'
19481 shlibpath_overrides_runpath=yes
19482 shlibpath_var=DYLD_LIBRARY_PATH
19483 shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
19484
19485 sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
19486 ;;
19487
19488 dgux*)
19489 version_type=linux # correct to gnu/linux during the next big refactor
19490 need_lib_prefix=no
19491 need_version=no
19492 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
19493 soname_spec='${libname}${release}${shared_ext}$major'
19494 shlibpath_var=LD_LIBRARY_PATH
19495 ;;
19496
19497 freebsd* | dragonfly*)
19498 # DragonFly does not have aout. When/if they implement a new
19499 # versioning mechanism, adjust this.
19500 if test -x /usr/bin/objformat; then
19501 objformat=`/usr/bin/objformat`
19502 else
19503 case $host_os in
19504 freebsd[23].*) objformat=aout ;;
19505 *) objformat=elf ;;
19506 esac
19507 fi
19508 version_type=freebsd-$objformat
19509 case $version_type in
19510 freebsd-elf*)
19511 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
19512 need_version=no
19513 need_lib_prefix=no
19514 ;;
19515 freebsd-*)
19516 library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
19517 need_version=yes
19518 ;;
19519 esac
19520 shlibpath_var=LD_LIBRARY_PATH
19521 case $host_os in
19522 freebsd2.*)
19523 shlibpath_overrides_runpath=yes
19524 ;;
19525 freebsd3.[01]* | freebsdelf3.[01]*)
19526 shlibpath_overrides_runpath=yes
19527 hardcode_into_libs=yes
19528 ;;
19529 freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
19530 freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
19531 shlibpath_overrides_runpath=no
19532 hardcode_into_libs=yes
19533 ;;
19534 *) # from 4.6 on, and DragonFly
19535 shlibpath_overrides_runpath=yes
19536 hardcode_into_libs=yes
19537 ;;
19538 esac
19539 ;;
19540
19541 haiku*)
19542 version_type=linux # correct to gnu/linux during the next big refactor
19543 need_lib_prefix=no
19544 need_version=no
19545 dynamic_linker="$host_os runtime_loader"
19546 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
19547 soname_spec='${libname}${release}${shared_ext}$major'
19548 shlibpath_var=LIBRARY_PATH
19549 shlibpath_overrides_runpath=yes
19550 sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
19551 hardcode_into_libs=yes
19552 ;;
19553
19554 hpux9* | hpux10* | hpux11*)
19555 # Give a soname corresponding to the major version so that dld.sl refuses to
19556 # link against other versions.
19557 version_type=sunos
19558 need_lib_prefix=no
19559 need_version=no
19560 case $host_cpu in
19561 ia64*)
19562 shrext_cmds='.so'
19563 hardcode_into_libs=yes
19564 dynamic_linker="$host_os dld.so"
19565 shlibpath_var=LD_LIBRARY_PATH
19566 shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
19567 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
19568 soname_spec='${libname}${release}${shared_ext}$major'
19569 if test "X$HPUX_IA64_MODE" = X32; then
19570 sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
19571 else
19572 sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
19573 fi
19574 sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
19575 ;;
19576 hppa*64*)
19577 shrext_cmds='.sl'
19578 hardcode_into_libs=yes
19579 dynamic_linker="$host_os dld.sl"
19580 shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
19581 shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
19582 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
19583 soname_spec='${libname}${release}${shared_ext}$major'
19584 sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
19585 sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
19586 ;;
19587 *)
19588 shrext_cmds='.sl'
19589 dynamic_linker="$host_os dld.sl"
19590 shlibpath_var=SHLIB_PATH
19591 shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
19592 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
19593 soname_spec='${libname}${release}${shared_ext}$major'
19594 ;;
19595 esac
19596 # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
19597 postinstall_cmds='chmod 555 $lib'
19598 # or fails outright, so override atomically:
19599 install_override_mode=555
19600 ;;
19601
19602 interix[3-9]*)
19603 version_type=linux # correct to gnu/linux during the next big refactor
19604 need_lib_prefix=no
19605 need_version=no
19606 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
19607 soname_spec='${libname}${release}${shared_ext}$major'
19608 dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
19609 shlibpath_var=LD_LIBRARY_PATH
19610 shlibpath_overrides_runpath=no
19611 hardcode_into_libs=yes
19612 ;;
19613
19614 irix5* | irix6* | nonstopux*)
19615 case $host_os in
19616 nonstopux*) version_type=nonstopux ;;
19617 *)
19618 if test "$lt_cv_prog_gnu_ld" = yes; then
19619 version_type=linux # correct to gnu/linux during the next big refactor
19620 else
19621 version_type=irix
19622 fi ;;
19623 esac
19624 need_lib_prefix=no
19625 need_version=no
19626 soname_spec='${libname}${release}${shared_ext}$major'
19627 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
19628 case $host_os in
19629 irix5* | nonstopux*)
19630 libsuff= shlibsuff=
19631 ;;
19632 *)
19633 case $LD in # libtool.m4 will add one of these switches to LD
19634 *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
19635 libsuff= shlibsuff= libmagic=32-bit;;
19636 *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
19637 libsuff=32 shlibsuff=N32 libmagic=N32;;
19638 *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
19639 libsuff=64 shlibsuff=64 libmagic=64-bit;;
19640 *) libsuff= shlibsuff= libmagic=never-match;;
19641 esac
19642 ;;
19643 esac
19644 shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
19645 shlibpath_overrides_runpath=no
19646 sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
19647 sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
19648 hardcode_into_libs=yes
19649 ;;
19650
19651 # No shared lib support for Linux oldld, aout, or coff.
19652 linux*oldld* | linux*aout* | linux*coff*)
19653 dynamic_linker=no
19654 ;;
19655
19656 # This must be glibc/ELF.
19657 linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
19658 version_type=linux # correct to gnu/linux during the next big refactor
19659 need_lib_prefix=no
19660 need_version=no
19661 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
19662 soname_spec='${libname}${release}${shared_ext}$major'
19663 finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
19664 shlibpath_var=LD_LIBRARY_PATH
19665 shlibpath_overrides_runpath=no
19666
19667 # Some binutils ld are patched to set DT_RUNPATH
19668 if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
19669 $as_echo_n "(cached) " >&6
19670 else
19671 lt_cv_shlibpath_overrides_runpath=no
19672 save_LDFLAGS=$LDFLAGS
19673 save_libdir=$libdir
19674 eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_FC\"; \
19675 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_FC\""
19676 cat > conftest.$ac_ext <<_ACEOF
19677 program main
19678
19679 end
19680 _ACEOF
19681 if ac_fn_fc_try_link "$LINENO"; then :
19682 if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
19683 lt_cv_shlibpath_overrides_runpath=yes
19684 fi
19685 fi
19686 rm -f core conftest.err conftest.$ac_objext \
19687 conftest$ac_exeext conftest.$ac_ext
19688 LDFLAGS=$save_LDFLAGS
19689 libdir=$save_libdir
19690
19691 fi
19692
19693 shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
19694
19695 # This implies no fast_install, which is unacceptable.
19696 # Some rework will be needed to allow for fast_install
19697 # before this can be enabled.
19698 hardcode_into_libs=yes
19699
19700 # Append ld.so.conf contents to the search path
19701 if test -f /etc/ld.so.conf; then
19702 lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
19703 sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
19704 fi
19705
19706 # We used to test for /lib/ld.so.1 and disable shared libraries on
19707 # powerpc, because MkLinux only supported shared libraries with the
19708 # GNU dynamic linker. Since this was broken with cross compilers,
19709 # most powerpc-linux boxes support dynamic linking these days and
19710 # people can always --disable-shared, the test was removed, and we
19711 # assume the GNU/Linux dynamic linker is in use.
19712 dynamic_linker='GNU/Linux ld.so'
19713 ;;
19714
19715 netbsdelf*-gnu)
19716 version_type=linux
19717 need_lib_prefix=no
19718 need_version=no
19719 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
19720 soname_spec='${libname}${release}${shared_ext}$major'
19721 shlibpath_var=LD_LIBRARY_PATH
19722 shlibpath_overrides_runpath=no
19723 hardcode_into_libs=yes
19724 dynamic_linker='NetBSD ld.elf_so'
19725 ;;
19726
19727 netbsd*)
19728 version_type=sunos
19729 need_lib_prefix=no
19730 need_version=no
19731 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
19732 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
19733 finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
19734 dynamic_linker='NetBSD (a.out) ld.so'
19735 else
19736 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
19737 soname_spec='${libname}${release}${shared_ext}$major'
19738 dynamic_linker='NetBSD ld.elf_so'
19739 fi
19740 shlibpath_var=LD_LIBRARY_PATH
19741 shlibpath_overrides_runpath=yes
19742 hardcode_into_libs=yes
19743 ;;
19744
19745 newsos6)
19746 version_type=linux # correct to gnu/linux during the next big refactor
19747 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
19748 shlibpath_var=LD_LIBRARY_PATH
19749 shlibpath_overrides_runpath=yes
19750 ;;
19751
19752 *nto* | *qnx*)
19753 version_type=qnx
19754 need_lib_prefix=no
19755 need_version=no
19756 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
19757 soname_spec='${libname}${release}${shared_ext}$major'
19758 shlibpath_var=LD_LIBRARY_PATH
19759 shlibpath_overrides_runpath=no
19760 hardcode_into_libs=yes
19761 dynamic_linker='ldqnx.so'
19762 ;;
19763
19764 openbsd*)
19765 version_type=sunos
19766 sys_lib_dlsearch_path_spec="/usr/lib"
19767 need_lib_prefix=no
19768 # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
19769 case $host_os in
19770 openbsd3.3 | openbsd3.3.*) need_version=yes ;;
19771 *) need_version=no ;;
19772 esac
19773 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
19774 finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
19775 shlibpath_var=LD_LIBRARY_PATH
19776 if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
19777 case $host_os in
19778 openbsd2.[89] | openbsd2.[89].*)
19779 shlibpath_overrides_runpath=no
19780 ;;
19781 *)
19782 shlibpath_overrides_runpath=yes
19783 ;;
19784 esac
19785 else
19786 shlibpath_overrides_runpath=yes
19787 fi
19788 ;;
19789
19790 os2*)
19791 libname_spec='$name'
19792 shrext_cmds=".dll"
19793 need_lib_prefix=no
19794 library_names_spec='$libname${shared_ext} $libname.a'
19795 dynamic_linker='OS/2 ld.exe'
19796 shlibpath_var=LIBPATH
19797 ;;
19798
19799 osf3* | osf4* | osf5*)
19800 version_type=osf
19801 need_lib_prefix=no
19802 need_version=no
19803 soname_spec='${libname}${release}${shared_ext}$major'
19804 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
19805 shlibpath_var=LD_LIBRARY_PATH
19806 sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
19807 sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
19808 ;;
19809
19810 rdos*)
19811 dynamic_linker=no
19812 ;;
19813
19814 solaris*)
19815 version_type=linux # correct to gnu/linux during the next big refactor
19816 need_lib_prefix=no
19817 need_version=no
19818 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
19819 soname_spec='${libname}${release}${shared_ext}$major'
19820 shlibpath_var=LD_LIBRARY_PATH
19821 shlibpath_overrides_runpath=yes
19822 hardcode_into_libs=yes
19823 # ldd complains unless libraries are executable
19824 postinstall_cmds='chmod +x $lib'
19825 ;;
19826
19827 sunos4*)
19828 version_type=sunos
19829 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
19830 finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
19831 shlibpath_var=LD_LIBRARY_PATH
19832 shlibpath_overrides_runpath=yes
19833 if test "$with_gnu_ld" = yes; then
19834 need_lib_prefix=no
19835 fi
19836 need_version=yes
19837 ;;
19838
19839 sysv4 | sysv4.3*)
19840 version_type=linux # correct to gnu/linux during the next big refactor
19841 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
19842 soname_spec='${libname}${release}${shared_ext}$major'
19843 shlibpath_var=LD_LIBRARY_PATH
19844 case $host_vendor in
19845 sni)
19846 shlibpath_overrides_runpath=no
19847 need_lib_prefix=no
19848 runpath_var=LD_RUN_PATH
19849 ;;
19850 siemens)
19851 need_lib_prefix=no
19852 ;;
19853 motorola)
19854 need_lib_prefix=no
19855 need_version=no
19856 shlibpath_overrides_runpath=no
19857 sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
19858 ;;
19859 esac
19860 ;;
19861
19862 sysv4*MP*)
19863 if test -d /usr/nec ;then
19864 version_type=linux # correct to gnu/linux during the next big refactor
19865 library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
19866 soname_spec='$libname${shared_ext}.$major'
19867 shlibpath_var=LD_LIBRARY_PATH
19868 fi
19869 ;;
19870
19871 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
19872 version_type=freebsd-elf
19873 need_lib_prefix=no
19874 need_version=no
19875 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
19876 soname_spec='${libname}${release}${shared_ext}$major'
19877 shlibpath_var=LD_LIBRARY_PATH
19878 shlibpath_overrides_runpath=yes
19879 hardcode_into_libs=yes
19880 if test "$with_gnu_ld" = yes; then
19881 sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
19882 else
19883 sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
19884 case $host_os in
19885 sco3.2v5*)
19886 sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
19887 ;;
19888 esac
19889 fi
19890 sys_lib_dlsearch_path_spec='/usr/lib'
19891 ;;
19892
19893 tpf*)
19894 # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
19895 version_type=linux # correct to gnu/linux during the next big refactor
19896 need_lib_prefix=no
19897 need_version=no
19898 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
19899 shlibpath_var=LD_LIBRARY_PATH
19900 shlibpath_overrides_runpath=no
19901 hardcode_into_libs=yes
19902 ;;
19903
19904 uts4*)
19905 version_type=linux # correct to gnu/linux during the next big refactor
19906 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
19907 soname_spec='${libname}${release}${shared_ext}$major'
19908 shlibpath_var=LD_LIBRARY_PATH
19909 ;;
19910
19911 *)
19912 dynamic_linker=no
19913 ;;
19914 esac
19915 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
19916 $as_echo "$dynamic_linker" >&6; }
19917 test "$dynamic_linker" = no && can_build_shared=no
19918
19919 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
19920 if test "$GCC" = yes; then
19921 variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
19922 fi
19923
19924 if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
19925 sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
19926 fi
19927 if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
19928 sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
19929 fi
19930
19931
19932
19933
19934
19935
19936
19937
19938
19939
19940
19941
19942
19943
19944
19945
19946
19947
19948
19949
19950
19951
19952
19953
19954
19955
19956
19957
19958
19959
19960
19961
19962
19963
19964
19965
19966
19967
19968 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
19969 $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
19970 hardcode_action_FC=
19971 if test -n "$hardcode_libdir_flag_spec_FC" ||
19972 test -n "$runpath_var_FC" ||
19973 test "X$hardcode_automatic_FC" = "Xyes" ; then
19974
19975 # We can hardcode non-existent directories.
19976 if test "$hardcode_direct_FC" != no &&
19977 # If the only mechanism to avoid hardcoding is shlibpath_var, we
19978 # have to relink, otherwise we might link with an installed library
19979 # when we should be linking with a yet-to-be-installed one
19980 ## test "$_LT_TAGVAR(hardcode_shlibpath_var, FC)" != no &&
19981 test "$hardcode_minus_L_FC" != no; then
19982 # Linking always hardcodes the temporary library directory.
19983 hardcode_action_FC=relink
19984 else
19985 # We can link without hardcoding, and we can hardcode nonexisting dirs.
19986 hardcode_action_FC=immediate
19987 fi
19988 else
19989 # We cannot hardcode anything, or else we can only hardcode existing
19990 # directories.
19991 hardcode_action_FC=unsupported
19992 fi
19993 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_FC" >&5
19994 $as_echo "$hardcode_action_FC" >&6; }
19995
19996 if test "$hardcode_action_FC" = relink ||
19997 test "$inherit_rpath_FC" = yes; then
19998 # Fast installation is not supported
19999 enable_fast_install=no
20000 elif test "$shlibpath_overrides_runpath" = yes ||
20001 test "$enable_shared" = no; then
20002 # Fast installation is not necessary
20003 enable_fast_install=needless
20004 fi
20005
20006
20007
20008
20009
20010
20011
20012 fi # test -n "$compiler"
20013
20014 GCC=$lt_save_GCC
20015 CC=$lt_save_CC
20016 CFLAGS=$lt_save_CFLAGS
20017 fi # test "$_lt_disable_FC" != yes
20018
20019 ac_ext=cpp
20020 ac_cpp='$CXXCPP $CPPFLAGS'
20021 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
20022 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
20023 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
20024
20025
20026
20027
20028
20029
20030
20031
20032
20033
20034
20035 ac_config_commands="$ac_config_commands libtool"
20036
20037
20038
20039
20040 # Only expand once:
20041
20042
20043
20044
20045
20046 acx_blas_ok=no
20047
20048
20049 # Check whether --with-blas was given.
20050 if test "${with_blas+set}" = set; then :
20051 withval=$with_blas;
20052 fi
20053
20054 case $with_blas in
20055 yes | "") ;;
20056 no) acx_blas_ok=disable ;;
20057 -* | */* | *.a | *.so | *.so.* | *.o| builtin) BLAS_LIBS="$with_blas" ;;
20058 *) BLAS_LIBS="-l$with_blas" ;;
20059 esac
20060
20061 # Get fortran linker names of BLAS functions to check for.
20062 if test x"$FC" = "x"; then
20063 echo "No fortran compiler found, assuming c-name for SGEMM is 'sgemm_'"
20064 sgemm=sgemm_
20065 dgemm=dgemm_
20066 else
20067 ac_ext=${ac_fc_srcext-f}
20068 ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
20069 ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
20070 ac_compiler_gnu=$ac_cv_fc_compiler_gnu
20071
20072 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dummy main to link with Fortran libraries" >&5
20073 $as_echo_n "checking for dummy main to link with Fortran libraries... " >&6; }
20074 if ${ac_cv_fc_dummy_main+:} false; then :
20075 $as_echo_n "(cached) " >&6
20076 else
20077 ac_fc_dm_save_LIBS=$LIBS
20078 LIBS="$LIBS $FCLIBS"
20079 ac_fortran_dm_var=FC_DUMMY_MAIN
20080 ac_ext=c
20081 ac_cpp='$CPP $CPPFLAGS'
20082 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
20083 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
20084 ac_compiler_gnu=$ac_cv_c_compiler_gnu
20085
20086 # First, try linking without a dummy main:
20087 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20088 /* end confdefs.h. */
20089
20090 #ifdef FC_DUMMY_MAIN
20091 #ifndef FC_DUMMY_MAIN_EQ_F77
20092 # ifdef __cplusplus
20093 extern "C"
20094 # endif
20095 int FC_DUMMY_MAIN() { return 1; }
20096 #endif
20097 #endif
20098 int
20099 main ()
20100 {
20101
20102 ;
20103 return 0;
20104 }
20105 _ACEOF
20106 if ac_fn_c_try_link "$LINENO"; then :
20107 ac_cv_fortran_dummy_main=none
20108 else
20109 ac_cv_fortran_dummy_main=unknown
20110 fi
20111 rm -f core conftest.err conftest.$ac_objext \
20112 conftest$ac_exeext conftest.$ac_ext
20113
20114 if test $ac_cv_fortran_dummy_main = unknown; then
20115 for ac_func in MAIN__ MAIN_ __main MAIN _MAIN __MAIN main_ main__ _main; do
20116 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20117 /* end confdefs.h. */
20118 #define $ac_fortran_dm_var $ac_func
20119 #ifdef FC_DUMMY_MAIN
20120 #ifndef FC_DUMMY_MAIN_EQ_F77
20121 # ifdef __cplusplus
20122 extern "C"
20123 # endif
20124 int FC_DUMMY_MAIN() { return 1; }
20125 #endif
20126 #endif
20127 int
20128 main ()
20129 {
20130
20131 ;
20132 return 0;
20133 }
20134 _ACEOF
20135 if ac_fn_c_try_link "$LINENO"; then :
20136 ac_cv_fortran_dummy_main=$ac_func; break
20137 fi
20138 rm -f core conftest.err conftest.$ac_objext \
20139 conftest$ac_exeext conftest.$ac_ext
20140 done
20141 fi
20142 ac_ext=${ac_fc_srcext-f}
20143 ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
20144 ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
20145 ac_compiler_gnu=$ac_cv_fc_compiler_gnu
20146 ac_cv_fc_dummy_main=$ac_cv_fortran_dummy_main
20147 rm -rf conftest*
20148 LIBS=$ac_fc_dm_save_LIBS
20149
20150 fi
20151 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_dummy_main" >&5
20152 $as_echo "$ac_cv_fc_dummy_main" >&6; }
20153 FC_DUMMY_MAIN=$ac_cv_fc_dummy_main
20154 if test "$FC_DUMMY_MAIN" != unknown; then :
20155 if test $FC_DUMMY_MAIN != none; then
20156
20157 cat >>confdefs.h <<_ACEOF
20158 #define FC_DUMMY_MAIN $FC_DUMMY_MAIN
20159 _ACEOF
20160
20161 if test "x$ac_cv_fc_dummy_main" = "x$ac_cv_f77_dummy_main"; then
20162
20163 $as_echo "#define FC_DUMMY_MAIN_EQ_F77 1" >>confdefs.h
20164
20165 fi
20166 fi
20167 else
20168 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
20169 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
20170 as_fn_error $? "linking to Fortran libraries from C fails
20171 See \`config.log' for more details" "$LINENO" 5; }
20172 fi
20173
20174 ac_ext=cpp
20175 ac_cpp='$CXXCPP $CPPFLAGS'
20176 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
20177 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
20178 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
20179
20180 ac_ext=${ac_fc_srcext-f}
20181 ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
20182 ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
20183 ac_compiler_gnu=$ac_cv_fc_compiler_gnu
20184 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran name-mangling scheme" >&5
20185 $as_echo_n "checking for Fortran name-mangling scheme... " >&6; }
20186 if ${ac_cv_fc_mangling+:} false; then :
20187 $as_echo_n "(cached) " >&6
20188 else
20189 cat > conftest.$ac_ext <<_ACEOF
20190 subroutine foobar()
20191 return
20192 end
20193 subroutine foo_bar()
20194 return
20195 end
20196 _ACEOF
20197 if ac_fn_fc_try_compile "$LINENO"; then :
20198 mv conftest.$ac_objext cfortran_test.$ac_objext
20199
20200 ac_save_LIBS=$LIBS
20201 LIBS="cfortran_test.$ac_objext $LIBS $FCLIBS"
20202
20203 ac_ext=c
20204 ac_cpp='$CPP $CPPFLAGS'
20205 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
20206 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
20207 ac_compiler_gnu=$ac_cv_c_compiler_gnu
20208 ac_success=no
20209 for ac_foobar in foobar FOOBAR; do
20210 for ac_underscore in "" "_"; do
20211 ac_func="$ac_foobar$ac_underscore"
20212 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20213 /* end confdefs.h. */
20214
20215 /* Override any GCC internal prototype to avoid an error.
20216 Use char because int might match the return type of a GCC
20217 builtin and then its argument prototype would still apply. */
20218 #ifdef __cplusplus
20219 extern "C"
20220 #endif
20221 char $ac_func ();
20222 #ifdef FC_DUMMY_MAIN
20223 #ifndef FC_DUMMY_MAIN_EQ_F77
20224 # ifdef __cplusplus
20225 extern "C"
20226 # endif
20227 int FC_DUMMY_MAIN() { return 1; }
20228 #endif
20229 #endif
20230 int
20231 main ()
20232 {
20233 return $ac_func ();
20234 ;
20235 return 0;
20236 }
20237 _ACEOF
20238 if ac_fn_c_try_link "$LINENO"; then :
20239 ac_success=yes; break 2
20240 fi
20241 rm -f core conftest.err conftest.$ac_objext \
20242 conftest$ac_exeext conftest.$ac_ext
20243 done
20244 done
20245 ac_ext=${ac_fc_srcext-f}
20246 ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
20247 ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
20248 ac_compiler_gnu=$ac_cv_fc_compiler_gnu
20249
20250 if test "$ac_success" = "yes"; then
20251 case $ac_foobar in
20252 foobar)
20253 ac_case=lower
20254 ac_foo_bar=foo_bar
20255 ;;
20256 FOOBAR)
20257 ac_case=upper
20258 ac_foo_bar=FOO_BAR
20259 ;;
20260 esac
20261
20262 ac_ext=c
20263 ac_cpp='$CPP $CPPFLAGS'
20264 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
20265 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
20266 ac_compiler_gnu=$ac_cv_c_compiler_gnu
20267 ac_success_extra=no
20268 for ac_extra in "" "_"; do
20269 ac_func="$ac_foo_bar$ac_underscore$ac_extra"
20270 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20271 /* end confdefs.h. */
20272
20273 /* Override any GCC internal prototype to avoid an error.
20274 Use char because int might match the return type of a GCC
20275 builtin and then its argument prototype would still apply. */
20276 #ifdef __cplusplus
20277 extern "C"
20278 #endif
20279 char $ac_func ();
20280 #ifdef FC_DUMMY_MAIN
20281 #ifndef FC_DUMMY_MAIN_EQ_F77
20282 # ifdef __cplusplus
20283 extern "C"
20284 # endif
20285 int FC_DUMMY_MAIN() { return 1; }
20286 #endif
20287 #endif
20288 int
20289 main ()
20290 {
20291 return $ac_func ();
20292 ;
20293 return 0;
20294 }
20295 _ACEOF
20296 if ac_fn_c_try_link "$LINENO"; then :
20297 ac_success_extra=yes; break
20298 fi
20299 rm -f core conftest.err conftest.$ac_objext \
20300 conftest$ac_exeext conftest.$ac_ext
20301 done
20302 ac_ext=${ac_fc_srcext-f}
20303 ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
20304 ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
20305 ac_compiler_gnu=$ac_cv_fc_compiler_gnu
20306
20307 if test "$ac_success_extra" = "yes"; then
20308 ac_cv_fc_mangling="$ac_case case"
20309 if test -z "$ac_underscore"; then
20310 ac_cv_fc_mangling="$ac_cv_fc_mangling, no underscore"
20311 else
20312 ac_cv_fc_mangling="$ac_cv_fc_mangling, underscore"
20313 fi
20314 if test -z "$ac_extra"; then
20315 ac_cv_fc_mangling="$ac_cv_fc_mangling, no extra underscore"
20316 else
20317 ac_cv_fc_mangling="$ac_cv_fc_mangling, extra underscore"
20318 fi
20319 else
20320 ac_cv_fc_mangling="unknown"
20321 fi
20322 else
20323 ac_cv_fc_mangling="unknown"
20324 fi
20325
20326 LIBS=$ac_save_LIBS
20327 rm -rf conftest*
20328 rm -f cfortran_test*
20329 else
20330 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
20331 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
20332 as_fn_error $? "cannot compile a simple Fortran program
20333 See \`config.log' for more details" "$LINENO" 5; }
20334 fi
20335 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
20336
20337 fi
20338 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_fc_mangling" >&5
20339 $as_echo "$ac_cv_fc_mangling" >&6; }
20340
20341 ac_ext=cpp
20342 ac_cpp='$CXXCPP $CPPFLAGS'
20343 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
20344 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
20345 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
20346
20347 ac_ext=${ac_fc_srcext-f}
20348 ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
20349 ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
20350 ac_compiler_gnu=$ac_cv_fc_compiler_gnu
20351 case $ac_cv_fc_mangling in
20352 upper*) ac_val="SGEMM" ;;
20353 lower*) ac_val="sgemm" ;;
20354 *) ac_val="unknown" ;;
20355 esac
20356 case $ac_cv_fc_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac
20357
20358 sgemm="$ac_val"
20359
20360 ac_ext=cpp
20361 ac_cpp='$CXXCPP $CPPFLAGS'
20362 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
20363 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
20364 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
20365
20366 ac_ext=${ac_fc_srcext-f}
20367 ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
20368 ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
20369 ac_compiler_gnu=$ac_cv_fc_compiler_gnu
20370 case $ac_cv_fc_mangling in
20371 upper*) ac_val="DGEMM" ;;
20372 lower*) ac_val="dgemm" ;;
20373 *) ac_val="unknown" ;;
20374 esac
20375 case $ac_cv_fc_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac
20376
20377 dgemm="$ac_val"
20378
20379 ac_ext=cpp
20380 ac_cpp='$CXXCPP $CPPFLAGS'
20381 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
20382 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
20383 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
20384
20385 fi
20386 acx_blas_save_LIBS="$LIBS"
20387 LIBS="$LIBS $FLIBS"
20388 echo "BLAS_LIBS=$BLAS_LIBS"
20389 # First, check BLAS_LIBS environment variable
20390 if test "x$BLAS_LIBS" = xbuiltin; then
20391 echo "Using builtin blas lib";
20392 BLAS_LIBS=""
20393 else
20394
20395 if test $acx_blas_ok = no; then
20396 if test "x$BLAS_LIBS" != x; then
20397 save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS"
20398 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in $BLAS_LIBS" >&5
20399 $as_echo_n "checking for $sgemm in $BLAS_LIBS... " >&6; }
20400 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20401 /* end confdefs.h. */
20402
20403 /* Override any GCC internal prototype to avoid an error.
20404 Use char because int might match the return type of a GCC
20405 builtin and then its argument prototype would still apply. */
20406 #ifdef __cplusplus
20407 extern "C"
20408 #endif
20409 char $sgemm ();
20410 #ifdef FC_DUMMY_MAIN
20411 #ifndef FC_DUMMY_MAIN_EQ_F77
20412 # ifdef __cplusplus
20413 extern "C"
20414 # endif
20415 int FC_DUMMY_MAIN() { return 1; }
20416 #endif
20417 #endif
20418 int
20419 main ()
20420 {
20421 return $sgemm ();
20422 ;
20423 return 0;
20424 }
20425 _ACEOF
20426 if ac_fn_cxx_try_link "$LINENO"; then :
20427 acx_blas_ok=yes
20428 else
20429 BLAS_LIBS=""
20430 fi
20431 rm -f core conftest.err conftest.$ac_objext \
20432 conftest$ac_exeext conftest.$ac_ext
20433 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_blas_ok" >&5
20434 $as_echo "$acx_blas_ok" >&6; }
20435 LIBS="$save_LIBS"
20436 fi
20437 fi
20438
20439 # BLAS linked to by default? (happens on some supercomputers)
20440 if test $acx_blas_ok = no; then
20441 save_LIBS="$LIBS"; LIBS="$LIBS"
20442 as_ac_var=`$as_echo "ac_cv_func_$sgemm" | $as_tr_sh`
20443 ac_fn_cxx_check_func "$LINENO" "$sgemm" "$as_ac_var"
20444 if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
20445 acx_blas_ok=yes
20446 fi
20447
20448 LIBS="$save_LIBS"
20449 fi
20450
20451 # BLAS in ATLAS library? (http://math-atlas.sourceforge.net/)
20452 if test $acx_blas_ok = no; then
20453 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ATL_xerbla in -latlas" >&5
20454 $as_echo_n "checking for ATL_xerbla in -latlas... " >&6; }
20455 if ${ac_cv_lib_atlas_ATL_xerbla+:} false; then :
20456 $as_echo_n "(cached) " >&6
20457 else
20458 ac_check_lib_save_LIBS=$LIBS
20459 LIBS="-latlas $LIBS"
20460 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20461 /* end confdefs.h. */
20462
20463 /* Override any GCC internal prototype to avoid an error.
20464 Use char because int might match the return type of a GCC
20465 builtin and then its argument prototype would still apply. */
20466 #ifdef __cplusplus
20467 extern "C"
20468 #endif
20469 char ATL_xerbla ();
20470 #ifdef FC_DUMMY_MAIN
20471 #ifndef FC_DUMMY_MAIN_EQ_F77
20472 # ifdef __cplusplus
20473 extern "C"
20474 # endif
20475 int FC_DUMMY_MAIN() { return 1; }
20476 #endif
20477 #endif
20478 int
20479 main ()
20480 {
20481 return ATL_xerbla ();
20482 ;
20483 return 0;
20484 }
20485 _ACEOF
20486 if ac_fn_cxx_try_link "$LINENO"; then :
20487 ac_cv_lib_atlas_ATL_xerbla=yes
20488 else
20489 ac_cv_lib_atlas_ATL_xerbla=no
20490 fi
20491 rm -f core conftest.err conftest.$ac_objext \
20492 conftest$ac_exeext conftest.$ac_ext
20493 LIBS=$ac_check_lib_save_LIBS
20494 fi
20495 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_atlas_ATL_xerbla" >&5
20496 $as_echo "$ac_cv_lib_atlas_ATL_xerbla" >&6; }
20497 if test "x$ac_cv_lib_atlas_ATL_xerbla" = xyes; then :
20498 as_ac_Lib=`$as_echo "ac_cv_lib_f77blas_$sgemm" | $as_tr_sh`
20499 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lf77blas" >&5
20500 $as_echo_n "checking for $sgemm in -lf77blas... " >&6; }
20501 if eval \${$as_ac_Lib+:} false; then :
20502 $as_echo_n "(cached) " >&6
20503 else
20504 ac_check_lib_save_LIBS=$LIBS
20505 LIBS="-lf77blas -latlas $LIBS"
20506 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20507 /* end confdefs.h. */
20508
20509 /* Override any GCC internal prototype to avoid an error.
20510 Use char because int might match the return type of a GCC
20511 builtin and then its argument prototype would still apply. */
20512 #ifdef __cplusplus
20513 extern "C"
20514 #endif
20515 char $sgemm ();
20516 #ifdef FC_DUMMY_MAIN
20517 #ifndef FC_DUMMY_MAIN_EQ_F77
20518 # ifdef __cplusplus
20519 extern "C"
20520 # endif
20521 int FC_DUMMY_MAIN() { return 1; }
20522 #endif
20523 #endif
20524 int
20525 main ()
20526 {
20527 return $sgemm ();
20528 ;
20529 return 0;
20530 }
20531 _ACEOF
20532 if ac_fn_cxx_try_link "$LINENO"; then :
20533 eval "$as_ac_Lib=yes"
20534 else
20535 eval "$as_ac_Lib=no"
20536 fi
20537 rm -f core conftest.err conftest.$ac_objext \
20538 conftest$ac_exeext conftest.$ac_ext
20539 LIBS=$ac_check_lib_save_LIBS
20540 fi
20541 eval ac_res=\$$as_ac_Lib
20542 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
20543 $as_echo "$ac_res" >&6; }
20544 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
20545 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cblas_dgemm in -lcblas" >&5
20546 $as_echo_n "checking for cblas_dgemm in -lcblas... " >&6; }
20547 if ${ac_cv_lib_cblas_cblas_dgemm+:} false; then :
20548 $as_echo_n "(cached) " >&6
20549 else
20550 ac_check_lib_save_LIBS=$LIBS
20551 LIBS="-lcblas -lf77blas -latlas $LIBS"
20552 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20553 /* end confdefs.h. */
20554
20555 /* Override any GCC internal prototype to avoid an error.
20556 Use char because int might match the return type of a GCC
20557 builtin and then its argument prototype would still apply. */
20558 #ifdef __cplusplus
20559 extern "C"
20560 #endif
20561 char cblas_dgemm ();
20562 #ifdef FC_DUMMY_MAIN
20563 #ifndef FC_DUMMY_MAIN_EQ_F77
20564 # ifdef __cplusplus
20565 extern "C"
20566 # endif
20567 int FC_DUMMY_MAIN() { return 1; }
20568 #endif
20569 #endif
20570 int
20571 main ()
20572 {
20573 return cblas_dgemm ();
20574 ;
20575 return 0;
20576 }
20577 _ACEOF
20578 if ac_fn_cxx_try_link "$LINENO"; then :
20579 ac_cv_lib_cblas_cblas_dgemm=yes
20580 else
20581 ac_cv_lib_cblas_cblas_dgemm=no
20582 fi
20583 rm -f core conftest.err conftest.$ac_objext \
20584 conftest$ac_exeext conftest.$ac_ext
20585 LIBS=$ac_check_lib_save_LIBS
20586 fi
20587 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cblas_cblas_dgemm" >&5
20588 $as_echo "$ac_cv_lib_cblas_cblas_dgemm" >&6; }
20589 if test "x$ac_cv_lib_cblas_cblas_dgemm" = xyes; then :
20590 acx_blas_ok=yes
20591 BLAS_LIBS="-lf77blas -latlas $FCLIBS"
20592 fi
20593
20594 fi
20595
20596 fi
20597
20598 fi
20599
20600 # BLAS in PhiPACK libraries? (requires generic BLAS lib, too)
20601 if test $acx_blas_ok = no; then
20602 as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh`
20603 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5
20604 $as_echo_n "checking for $sgemm in -lblas... " >&6; }
20605 if eval \${$as_ac_Lib+:} false; then :
20606 $as_echo_n "(cached) " >&6
20607 else
20608 ac_check_lib_save_LIBS=$LIBS
20609 LIBS="-lblas $LIBS"
20610 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20611 /* end confdefs.h. */
20612
20613 /* Override any GCC internal prototype to avoid an error.
20614 Use char because int might match the return type of a GCC
20615 builtin and then its argument prototype would still apply. */
20616 #ifdef __cplusplus
20617 extern "C"
20618 #endif
20619 char $sgemm ();
20620 #ifdef FC_DUMMY_MAIN
20621 #ifndef FC_DUMMY_MAIN_EQ_F77
20622 # ifdef __cplusplus
20623 extern "C"
20624 # endif
20625 int FC_DUMMY_MAIN() { return 1; }
20626 #endif
20627 #endif
20628 int
20629 main ()
20630 {
20631 return $sgemm ();
20632 ;
20633 return 0;
20634 }
20635 _ACEOF
20636 if ac_fn_cxx_try_link "$LINENO"; then :
20637 eval "$as_ac_Lib=yes"
20638 else
20639 eval "$as_ac_Lib=no"
20640 fi
20641 rm -f core conftest.err conftest.$ac_objext \
20642 conftest$ac_exeext conftest.$ac_ext
20643 LIBS=$ac_check_lib_save_LIBS
20644 fi
20645 eval ac_res=\$$as_ac_Lib
20646 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
20647 $as_echo "$ac_res" >&6; }
20648 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
20649 as_ac_Lib=`$as_echo "ac_cv_lib_dgemm_$dgemm" | $as_tr_sh`
20650 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $dgemm in -ldgemm" >&5
20651 $as_echo_n "checking for $dgemm in -ldgemm... " >&6; }
20652 if eval \${$as_ac_Lib+:} false; then :
20653 $as_echo_n "(cached) " >&6
20654 else
20655 ac_check_lib_save_LIBS=$LIBS
20656 LIBS="-ldgemm -lblas $LIBS"
20657 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20658 /* end confdefs.h. */
20659
20660 /* Override any GCC internal prototype to avoid an error.
20661 Use char because int might match the return type of a GCC
20662 builtin and then its argument prototype would still apply. */
20663 #ifdef __cplusplus
20664 extern "C"
20665 #endif
20666 char $dgemm ();
20667 #ifdef FC_DUMMY_MAIN
20668 #ifndef FC_DUMMY_MAIN_EQ_F77
20669 # ifdef __cplusplus
20670 extern "C"
20671 # endif
20672 int FC_DUMMY_MAIN() { return 1; }
20673 #endif
20674 #endif
20675 int
20676 main ()
20677 {
20678 return $dgemm ();
20679 ;
20680 return 0;
20681 }
20682 _ACEOF
20683 if ac_fn_cxx_try_link "$LINENO"; then :
20684 eval "$as_ac_Lib=yes"
20685 else
20686 eval "$as_ac_Lib=no"
20687 fi
20688 rm -f core conftest.err conftest.$ac_objext \
20689 conftest$ac_exeext conftest.$ac_ext
20690 LIBS=$ac_check_lib_save_LIBS
20691 fi
20692 eval ac_res=\$$as_ac_Lib
20693 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
20694 $as_echo "$ac_res" >&6; }
20695 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
20696 as_ac_Lib=`$as_echo "ac_cv_lib_sgemm_$sgemm" | $as_tr_sh`
20697 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lsgemm" >&5
20698 $as_echo_n "checking for $sgemm in -lsgemm... " >&6; }
20699 if eval \${$as_ac_Lib+:} false; then :
20700 $as_echo_n "(cached) " >&6
20701 else
20702 ac_check_lib_save_LIBS=$LIBS
20703 LIBS="-lsgemm -lblas $LIBS"
20704 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20705 /* end confdefs.h. */
20706
20707 /* Override any GCC internal prototype to avoid an error.
20708 Use char because int might match the return type of a GCC
20709 builtin and then its argument prototype would still apply. */
20710 #ifdef __cplusplus
20711 extern "C"
20712 #endif
20713 char $sgemm ();
20714 #ifdef FC_DUMMY_MAIN
20715 #ifndef FC_DUMMY_MAIN_EQ_F77
20716 # ifdef __cplusplus
20717 extern "C"
20718 # endif
20719 int FC_DUMMY_MAIN() { return 1; }
20720 #endif
20721 #endif
20722 int
20723 main ()
20724 {
20725 return $sgemm ();
20726 ;
20727 return 0;
20728 }
20729 _ACEOF
20730 if ac_fn_cxx_try_link "$LINENO"; then :
20731 eval "$as_ac_Lib=yes"
20732 else
20733 eval "$as_ac_Lib=no"
20734 fi
20735 rm -f core conftest.err conftest.$ac_objext \
20736 conftest$ac_exeext conftest.$ac_ext
20737 LIBS=$ac_check_lib_save_LIBS
20738 fi
20739 eval ac_res=\$$as_ac_Lib
20740 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
20741 $as_echo "$ac_res" >&6; }
20742 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
20743 acx_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas"
20744 fi
20745
20746 fi
20747
20748 fi
20749
20750 fi
20751
20752 # BLAS in Alpha CXML library?
20753 if test $acx_blas_ok = no; then
20754 as_ac_Lib=`$as_echo "ac_cv_lib_cxml_$sgemm" | $as_tr_sh`
20755 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lcxml" >&5
20756 $as_echo_n "checking for $sgemm in -lcxml... " >&6; }
20757 if eval \${$as_ac_Lib+:} false; then :
20758 $as_echo_n "(cached) " >&6
20759 else
20760 ac_check_lib_save_LIBS=$LIBS
20761 LIBS="-lcxml $LIBS"
20762 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20763 /* end confdefs.h. */
20764
20765 /* Override any GCC internal prototype to avoid an error.
20766 Use char because int might match the return type of a GCC
20767 builtin and then its argument prototype would still apply. */
20768 #ifdef __cplusplus
20769 extern "C"
20770 #endif
20771 char $sgemm ();
20772 #ifdef FC_DUMMY_MAIN
20773 #ifndef FC_DUMMY_MAIN_EQ_F77
20774 # ifdef __cplusplus
20775 extern "C"
20776 # endif
20777 int FC_DUMMY_MAIN() { return 1; }
20778 #endif
20779 #endif
20780 int
20781 main ()
20782 {
20783 return $sgemm ();
20784 ;
20785 return 0;
20786 }
20787 _ACEOF
20788 if ac_fn_cxx_try_link "$LINENO"; then :
20789 eval "$as_ac_Lib=yes"
20790 else
20791 eval "$as_ac_Lib=no"
20792 fi
20793 rm -f core conftest.err conftest.$ac_objext \
20794 conftest$ac_exeext conftest.$ac_ext
20795 LIBS=$ac_check_lib_save_LIBS
20796 fi
20797 eval ac_res=\$$as_ac_Lib
20798 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
20799 $as_echo "$ac_res" >&6; }
20800 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
20801 acx_blas_ok=yes;BLAS_LIBS="-lcxml"
20802 fi
20803
20804 fi
20805
20806 # BLAS in Alpha DXML library? (now called CXML, see above)
20807 if test $acx_blas_ok = no; then
20808 as_ac_Lib=`$as_echo "ac_cv_lib_dxml_$sgemm" | $as_tr_sh`
20809 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -ldxml" >&5
20810 $as_echo_n "checking for $sgemm in -ldxml... " >&6; }
20811 if eval \${$as_ac_Lib+:} false; then :
20812 $as_echo_n "(cached) " >&6
20813 else
20814 ac_check_lib_save_LIBS=$LIBS
20815 LIBS="-ldxml $LIBS"
20816 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20817 /* end confdefs.h. */
20818
20819 /* Override any GCC internal prototype to avoid an error.
20820 Use char because int might match the return type of a GCC
20821 builtin and then its argument prototype would still apply. */
20822 #ifdef __cplusplus
20823 extern "C"
20824 #endif
20825 char $sgemm ();
20826 #ifdef FC_DUMMY_MAIN
20827 #ifndef FC_DUMMY_MAIN_EQ_F77
20828 # ifdef __cplusplus
20829 extern "C"
20830 # endif
20831 int FC_DUMMY_MAIN() { return 1; }
20832 #endif
20833 #endif
20834 int
20835 main ()
20836 {
20837 return $sgemm ();
20838 ;
20839 return 0;
20840 }
20841 _ACEOF
20842 if ac_fn_cxx_try_link "$LINENO"; then :
20843 eval "$as_ac_Lib=yes"
20844 else
20845 eval "$as_ac_Lib=no"
20846 fi
20847 rm -f core conftest.err conftest.$ac_objext \
20848 conftest$ac_exeext conftest.$ac_ext
20849 LIBS=$ac_check_lib_save_LIBS
20850 fi
20851 eval ac_res=\$$as_ac_Lib
20852 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
20853 $as_echo "$ac_res" >&6; }
20854 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
20855 acx_blas_ok=yes;BLAS_LIBS="-ldxml"
20856 fi
20857
20858 fi
20859
20860 # BLAS in Sun Performance library?
20861 if test $acx_blas_ok = no; then
20862 if test "x$GCC" != xyes; then # only works with Sun CC
20863 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acosp in -lsunmath" >&5
20864 $as_echo_n "checking for acosp in -lsunmath... " >&6; }
20865 if ${ac_cv_lib_sunmath_acosp+:} false; then :
20866 $as_echo_n "(cached) " >&6
20867 else
20868 ac_check_lib_save_LIBS=$LIBS
20869 LIBS="-lsunmath $LIBS"
20870 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20871 /* end confdefs.h. */
20872
20873 /* Override any GCC internal prototype to avoid an error.
20874 Use char because int might match the return type of a GCC
20875 builtin and then its argument prototype would still apply. */
20876 #ifdef __cplusplus
20877 extern "C"
20878 #endif
20879 char acosp ();
20880 #ifdef FC_DUMMY_MAIN
20881 #ifndef FC_DUMMY_MAIN_EQ_F77
20882 # ifdef __cplusplus
20883 extern "C"
20884 # endif
20885 int FC_DUMMY_MAIN() { return 1; }
20886 #endif
20887 #endif
20888 int
20889 main ()
20890 {
20891 return acosp ();
20892 ;
20893 return 0;
20894 }
20895 _ACEOF
20896 if ac_fn_cxx_try_link "$LINENO"; then :
20897 ac_cv_lib_sunmath_acosp=yes
20898 else
20899 ac_cv_lib_sunmath_acosp=no
20900 fi
20901 rm -f core conftest.err conftest.$ac_objext \
20902 conftest$ac_exeext conftest.$ac_ext
20903 LIBS=$ac_check_lib_save_LIBS
20904 fi
20905 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sunmath_acosp" >&5
20906 $as_echo "$ac_cv_lib_sunmath_acosp" >&6; }
20907 if test "x$ac_cv_lib_sunmath_acosp" = xyes; then :
20908 as_ac_Lib=`$as_echo "ac_cv_lib_sunperf_$sgemm" | $as_tr_sh`
20909 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lsunperf" >&5
20910 $as_echo_n "checking for $sgemm in -lsunperf... " >&6; }
20911 if eval \${$as_ac_Lib+:} false; then :
20912 $as_echo_n "(cached) " >&6
20913 else
20914 ac_check_lib_save_LIBS=$LIBS
20915 LIBS="-lsunperf -lsunmath $LIBS"
20916 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20917 /* end confdefs.h. */
20918
20919 /* Override any GCC internal prototype to avoid an error.
20920 Use char because int might match the return type of a GCC
20921 builtin and then its argument prototype would still apply. */
20922 #ifdef __cplusplus
20923 extern "C"
20924 #endif
20925 char $sgemm ();
20926 #ifdef FC_DUMMY_MAIN
20927 #ifndef FC_DUMMY_MAIN_EQ_F77
20928 # ifdef __cplusplus
20929 extern "C"
20930 # endif
20931 int FC_DUMMY_MAIN() { return 1; }
20932 #endif
20933 #endif
20934 int
20935 main ()
20936 {
20937 return $sgemm ();
20938 ;
20939 return 0;
20940 }
20941 _ACEOF
20942 if ac_fn_cxx_try_link "$LINENO"; then :
20943 eval "$as_ac_Lib=yes"
20944 else
20945 eval "$as_ac_Lib=no"
20946 fi
20947 rm -f core conftest.err conftest.$ac_objext \
20948 conftest$ac_exeext conftest.$ac_ext
20949 LIBS=$ac_check_lib_save_LIBS
20950 fi
20951 eval ac_res=\$$as_ac_Lib
20952 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
20953 $as_echo "$ac_res" >&6; }
20954 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
20955 BLAS_LIBS="-xlic_lib=sunperf -lsunmath"
20956 acx_blas_ok=yes
20957 fi
20958
20959 fi
20960
20961 fi
20962 fi
20963
20964 # BLAS in SCSL library? (SGI/Cray Scientific Library)
20965 if test $acx_blas_ok = no; then
20966 as_ac_Lib=`$as_echo "ac_cv_lib_scs_$sgemm" | $as_tr_sh`
20967 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lscs" >&5
20968 $as_echo_n "checking for $sgemm in -lscs... " >&6; }
20969 if eval \${$as_ac_Lib+:} false; then :
20970 $as_echo_n "(cached) " >&6
20971 else
20972 ac_check_lib_save_LIBS=$LIBS
20973 LIBS="-lscs $LIBS"
20974 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20975 /* end confdefs.h. */
20976
20977 /* Override any GCC internal prototype to avoid an error.
20978 Use char because int might match the return type of a GCC
20979 builtin and then its argument prototype would still apply. */
20980 #ifdef __cplusplus
20981 extern "C"
20982 #endif
20983 char $sgemm ();
20984 #ifdef FC_DUMMY_MAIN
20985 #ifndef FC_DUMMY_MAIN_EQ_F77
20986 # ifdef __cplusplus
20987 extern "C"
20988 # endif
20989 int FC_DUMMY_MAIN() { return 1; }
20990 #endif
20991 #endif
20992 int
20993 main ()
20994 {
20995 return $sgemm ();
20996 ;
20997 return 0;
20998 }
20999 _ACEOF
21000 if ac_fn_cxx_try_link "$LINENO"; then :
21001 eval "$as_ac_Lib=yes"
21002 else
21003 eval "$as_ac_Lib=no"
21004 fi
21005 rm -f core conftest.err conftest.$ac_objext \
21006 conftest$ac_exeext conftest.$ac_ext
21007 LIBS=$ac_check_lib_save_LIBS
21008 fi
21009 eval ac_res=\$$as_ac_Lib
21010 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
21011 $as_echo "$ac_res" >&6; }
21012 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
21013 acx_blas_ok=yes; BLAS_LIBS="-lscs"
21014 fi
21015
21016 fi
21017
21018 # BLAS in SGIMATH library?
21019 if test $acx_blas_ok = no; then
21020 as_ac_Lib=`$as_echo "ac_cv_lib_complib.sgimath_$sgemm" | $as_tr_sh`
21021 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lcomplib.sgimath" >&5
21022 $as_echo_n "checking for $sgemm in -lcomplib.sgimath... " >&6; }
21023 if eval \${$as_ac_Lib+:} false; then :
21024 $as_echo_n "(cached) " >&6
21025 else
21026 ac_check_lib_save_LIBS=$LIBS
21027 LIBS="-lcomplib.sgimath $LIBS"
21028 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21029 /* end confdefs.h. */
21030
21031 /* Override any GCC internal prototype to avoid an error.
21032 Use char because int might match the return type of a GCC
21033 builtin and then its argument prototype would still apply. */
21034 #ifdef __cplusplus
21035 extern "C"
21036 #endif
21037 char $sgemm ();
21038 #ifdef FC_DUMMY_MAIN
21039 #ifndef FC_DUMMY_MAIN_EQ_F77
21040 # ifdef __cplusplus
21041 extern "C"
21042 # endif
21043 int FC_DUMMY_MAIN() { return 1; }
21044 #endif
21045 #endif
21046 int
21047 main ()
21048 {
21049 return $sgemm ();
21050 ;
21051 return 0;
21052 }
21053 _ACEOF
21054 if ac_fn_cxx_try_link "$LINENO"; then :
21055 eval "$as_ac_Lib=yes"
21056 else
21057 eval "$as_ac_Lib=no"
21058 fi
21059 rm -f core conftest.err conftest.$ac_objext \
21060 conftest$ac_exeext conftest.$ac_ext
21061 LIBS=$ac_check_lib_save_LIBS
21062 fi
21063 eval ac_res=\$$as_ac_Lib
21064 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
21065 $as_echo "$ac_res" >&6; }
21066 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
21067 acx_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath"
21068 fi
21069
21070 fi
21071
21072 # BLAS in IBM ESSL library? (requires generic BLAS lib, too)
21073 if test $acx_blas_ok = no; then
21074 as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh`
21075 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5
21076 $as_echo_n "checking for $sgemm in -lblas... " >&6; }
21077 if eval \${$as_ac_Lib+:} false; then :
21078 $as_echo_n "(cached) " >&6
21079 else
21080 ac_check_lib_save_LIBS=$LIBS
21081 LIBS="-lblas $LIBS"
21082 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21083 /* end confdefs.h. */
21084
21085 /* Override any GCC internal prototype to avoid an error.
21086 Use char because int might match the return type of a GCC
21087 builtin and then its argument prototype would still apply. */
21088 #ifdef __cplusplus
21089 extern "C"
21090 #endif
21091 char $sgemm ();
21092 #ifdef FC_DUMMY_MAIN
21093 #ifndef FC_DUMMY_MAIN_EQ_F77
21094 # ifdef __cplusplus
21095 extern "C"
21096 # endif
21097 int FC_DUMMY_MAIN() { return 1; }
21098 #endif
21099 #endif
21100 int
21101 main ()
21102 {
21103 return $sgemm ();
21104 ;
21105 return 0;
21106 }
21107 _ACEOF
21108 if ac_fn_cxx_try_link "$LINENO"; then :
21109 eval "$as_ac_Lib=yes"
21110 else
21111 eval "$as_ac_Lib=no"
21112 fi
21113 rm -f core conftest.err conftest.$ac_objext \
21114 conftest$ac_exeext conftest.$ac_ext
21115 LIBS=$ac_check_lib_save_LIBS
21116 fi
21117 eval ac_res=\$$as_ac_Lib
21118 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
21119 $as_echo "$ac_res" >&6; }
21120 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
21121 as_ac_Lib=`$as_echo "ac_cv_lib_essl_$sgemm" | $as_tr_sh`
21122 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lessl" >&5
21123 $as_echo_n "checking for $sgemm in -lessl... " >&6; }
21124 if eval \${$as_ac_Lib+:} false; then :
21125 $as_echo_n "(cached) " >&6
21126 else
21127 ac_check_lib_save_LIBS=$LIBS
21128 LIBS="-lessl -lblas $FLIBS $LIBS"
21129 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21130 /* end confdefs.h. */
21131
21132 /* Override any GCC internal prototype to avoid an error.
21133 Use char because int might match the return type of a GCC
21134 builtin and then its argument prototype would still apply. */
21135 #ifdef __cplusplus
21136 extern "C"
21137 #endif
21138 char $sgemm ();
21139 #ifdef FC_DUMMY_MAIN
21140 #ifndef FC_DUMMY_MAIN_EQ_F77
21141 # ifdef __cplusplus
21142 extern "C"
21143 # endif
21144 int FC_DUMMY_MAIN() { return 1; }
21145 #endif
21146 #endif
21147 int
21148 main ()
21149 {
21150 return $sgemm ();
21151 ;
21152 return 0;
21153 }
21154 _ACEOF
21155 if ac_fn_cxx_try_link "$LINENO"; then :
21156 eval "$as_ac_Lib=yes"
21157 else
21158 eval "$as_ac_Lib=no"
21159 fi
21160 rm -f core conftest.err conftest.$ac_objext \
21161 conftest$ac_exeext conftest.$ac_ext
21162 LIBS=$ac_check_lib_save_LIBS
21163 fi
21164 eval ac_res=\$$as_ac_Lib
21165 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
21166 $as_echo "$ac_res" >&6; }
21167 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
21168 acx_blas_ok=yes; BLAS_LIBS="-lessl -lblas"
21169 fi
21170
21171 fi
21172
21173 fi
21174
21175 # Generic BLAS library?
21176 if test $acx_blas_ok = no; then
21177 as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh`
21178 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5
21179 $as_echo_n "checking for $sgemm in -lblas... " >&6; }
21180 if eval \${$as_ac_Lib+:} false; then :
21181 $as_echo_n "(cached) " >&6
21182 else
21183 ac_check_lib_save_LIBS=$LIBS
21184 LIBS="-lblas $LIBS"
21185 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21186 /* end confdefs.h. */
21187
21188 /* Override any GCC internal prototype to avoid an error.
21189 Use char because int might match the return type of a GCC
21190 builtin and then its argument prototype would still apply. */
21191 #ifdef __cplusplus
21192 extern "C"
21193 #endif
21194 char $sgemm ();
21195 #ifdef FC_DUMMY_MAIN
21196 #ifndef FC_DUMMY_MAIN_EQ_F77
21197 # ifdef __cplusplus
21198 extern "C"
21199 # endif
21200 int FC_DUMMY_MAIN() { return 1; }
21201 #endif
21202 #endif
21203 int
21204 main ()
21205 {
21206 return $sgemm ();
21207 ;
21208 return 0;
21209 }
21210 _ACEOF
21211 if ac_fn_cxx_try_link "$LINENO"; then :
21212 eval "$as_ac_Lib=yes"
21213 else
21214 eval "$as_ac_Lib=no"
21215 fi
21216 rm -f core conftest.err conftest.$ac_objext \
21217 conftest$ac_exeext conftest.$ac_ext
21218 LIBS=$ac_check_lib_save_LIBS
21219 fi
21220 eval ac_res=\$$as_ac_Lib
21221 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
21222 $as_echo "$ac_res" >&6; }
21223 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
21224 acx_blas_ok=yes; BLAS_LIBS="-lblas"
21225 fi
21226
21227 fi
21228
21229 if test $acx_blas_ok = no; then
21230 as_ac_Lib=`$as_echo "ac_cv_lib_blas_$sgemm" | $as_tr_sh`
21231 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $sgemm in -lblas" >&5
21232 $as_echo_n "checking for $sgemm in -lblas... " >&6; }
21233 if eval \${$as_ac_Lib+:} false; then :
21234 $as_echo_n "(cached) " >&6
21235 else
21236 ac_check_lib_save_LIBS=$LIBS
21237 LIBS="-lblas $LIBS"
21238 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21239 /* end confdefs.h. */
21240
21241 /* Override any GCC internal prototype to avoid an error.
21242 Use char because int might match the return type of a GCC
21243 builtin and then its argument prototype would still apply. */
21244 #ifdef __cplusplus
21245 extern "C"
21246 #endif
21247 char $sgemm ();
21248 #ifdef FC_DUMMY_MAIN
21249 #ifndef FC_DUMMY_MAIN_EQ_F77
21250 # ifdef __cplusplus
21251 extern "C"
21252 # endif
21253 int FC_DUMMY_MAIN() { return 1; }
21254 #endif
21255 #endif
21256 int
21257 main ()
21258 {
21259 return $sgemm ();
21260 ;
21261 return 0;
21262 }
21263 _ACEOF
21264 if ac_fn_cxx_try_link "$LINENO"; then :
21265 eval "$as_ac_Lib=yes"
21266 else
21267 eval "$as_ac_Lib=no"
21268 fi
21269 rm -f core conftest.err conftest.$ac_objext \
21270 conftest$ac_exeext conftest.$ac_ext
21271 LIBS=$ac_check_lib_save_LIBS
21272 fi
21273 eval ac_res=\$$as_ac_Lib
21274 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
21275 $as_echo "$ac_res" >&6; }
21276 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
21277 acx_blas_ok=yes; BLAS_LIBS="-lblas $FCLIBS"
21278 fi
21279
21280 fi
21281
21282 fi # if BLAS_LIBS=builtin
21283
21284
21285
21286 LIBS="$acx_blas_save_LIBS"
21287
21288 # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
21289 if test x"$acx_blas_ok" = xyes; then
21290 echo "OK, You have working BLAS libs ! Using $BLAS_LIBS" ; HAVE_VENDOR_BLAS=1
21291 else
21292 echo " *** YOU DONT HAVE BLAS! *** Using a cheap replacement" ; HAVE_VENDOR_BLAS=0
21293 fi
21294
21295 LIBS="$LIBS $BLAS_LIBS"
21296 CPPFLAGS="$CPPFLAGS -DGMM_USES_BLAS"
21297
21298
21299 useopenmp=0
21300 # Check whether --enable-openmp was given.
21301 if test "${enable_openmp+set}" = set; then :
21302 enableval=$enable_openmp; case $enableval in
21303 yes | "") useopenmp=YES ;;
21304 no) useopenmp=NO ;;
21305 *) as_fn_error $? "bad value ${enableval} for --enable-openmp" "$LINENO" 5 ;;
21306 esac
21307 else
21308 useopenmp=NO
21309
21310 fi
21311
21312
21313 if test x$useopenmp = xYES; then
21314
21315 OPENMP_CXXFLAGS=
21316 # Check whether --enable-openmp was given.
21317 if test "${enable_openmp+set}" = set; then :
21318 enableval=$enable_openmp;
21319 fi
21320
21321 if test "$enable_openmp" != no; then
21322 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CXX option to support OpenMP" >&5
21323 $as_echo_n "checking for $CXX option to support OpenMP... " >&6; }
21324 if ${ac_cv_prog_cxx_openmp+:} false; then :
21325 $as_echo_n "(cached) " >&6
21326 else
21327 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21328 /* end confdefs.h. */
21329
21330 #ifndef _OPENMP
21331 choke me
21332 #endif
21333 #include <omp.h>
21334 int main () { return omp_get_num_threads (); }
21335
21336 _ACEOF
21337 if ac_fn_cxx_try_link "$LINENO"; then :
21338 ac_cv_prog_cxx_openmp='none needed'
21339 else
21340 ac_cv_prog_cxx_openmp='unsupported'
21341 for ac_option in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp -homp \
21342 -Popenmp --openmp; do
21343 ac_save_CXXFLAGS=$CXXFLAGS
21344 CXXFLAGS="$CXXFLAGS $ac_option"
21345 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21346 /* end confdefs.h. */
21347
21348 #ifndef _OPENMP
21349 choke me
21350 #endif
21351 #include <omp.h>
21352 int main () { return omp_get_num_threads (); }
21353
21354 _ACEOF
21355 if ac_fn_cxx_try_link "$LINENO"; then :
21356 ac_cv_prog_cxx_openmp=$ac_option
21357 fi
21358 rm -f core conftest.err conftest.$ac_objext \
21359 conftest$ac_exeext conftest.$ac_ext
21360 CXXFLAGS=$ac_save_CXXFLAGS
21361 if test "$ac_cv_prog_cxx_openmp" != unsupported; then
21362 break
21363 fi
21364 done
21365 fi
21366 rm -f core conftest.err conftest.$ac_objext \
21367 conftest$ac_exeext conftest.$ac_ext
21368 fi
21369 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_openmp" >&5
21370 $as_echo "$ac_cv_prog_cxx_openmp" >&6; }
21371 case $ac_cv_prog_cxx_openmp in #(
21372 "none needed" | unsupported)
21373 ;; #(
21374 *)
21375 OPENMP_CXXFLAGS=$ac_cv_prog_cxx_openmp ;;
21376 esac
21377 fi
21378
21379
21380 if test "x$ac_cv_prog_cxx_openmp" != "xunsupported" && test "x$ac_cv_prog_cxx_openmp" != "x"; then
21381 AM_CXXFLAGS="$OPENMP_CXXFLAGS"
21382
21383 CPPFLAGS="$CPPFLAGS -DGETFEM_HAVE_OPENMP"
21384 else
21385 as_fn_error $? "OpenMP support not found. Use --enable-openmp=no flag to compile GetFEM++ without OpenMP" "$LINENO" 5;
21386 fi
21387 fi;
21388
21389
21390 # Check whether --enable-superlu was given.
21391 if test "${enable_superlu+set}" = set; then :
21392 enableval=$enable_superlu; case "${enableval}" in
21393 yes) usesuperlu=YES ;;
21394 no) usesuperlu=NO ;;
21395 *) as_fn_error $? "bad value ${enableval} for --enable-superlu" "$LINENO" 5 ;;
21396 esac
21397 else
21398 usesuperlu=YES
21399 fi
21400
21401
21402 SUPERLU_CPPFLAGS=""
21403 SUPERLU_SRC=""
21404 SUPERLU_LIBS=""
21405 SUPERLU_MAKEFILE=""
21406
21407 if test x$usesuperlu = xYES; then
21408 echo "Building with SuperLU support (use --enable-superlu=no to disable it)"
21409 if test x"$FC" = "x"; then
21410 sgemm="sgemm_"
21411 else
21412 ac_ext=${ac_fc_srcext-f}
21413 ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
21414 ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
21415 ac_compiler_gnu=$ac_cv_fc_compiler_gnu
21416 case $ac_cv_fc_mangling in
21417 upper*) ac_val="SGEMM" ;;
21418 lower*) ac_val="sgemm" ;;
21419 *) ac_val="unknown" ;;
21420 esac
21421 case $ac_cv_fc_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac
21422
21423 sgemm="$ac_val"
21424
21425 ac_ext=cpp
21426 ac_cpp='$CXXCPP $CPPFLAGS'
21427 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
21428 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
21429 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
21430
21431 echo "FC=$FC"
21432 fi
21433 case $sgemm in
21434 sgemm)
21435 F77_CALL_C="NOCHANGE";
21436 ;;
21437 sgemm_)
21438 F77_CALL_C="ADD_";
21439 ;;
21440 SGEMM)
21441 F77_CALL_C="UPCASE";
21442 ;;
21443 sgemm__)
21444 F77_CALL_C="ADD__";
21445 ;;
21446 *)
21447 as_fn_error $? "\"superlu won't handle this calling convention: sgemm -> $sgemm\"" "$LINENO" 5
21448 ;;
21449 esac
21450 SUPERLU_CPPFLAGS="$CPPFLAGS -DUSE_VENDOR_BLAS -DF77_CALL_C=$F77_CALL_C"
21451 SUPERLU_SRC="superlu"
21452 case $host in
21453 *apple*)
21454 SUPERLU_LIBS="../$SUPERLU_SRC/libsuperlu.la"
21455 ;;
21456 *)
21457 SUPERLU_LIBS="`readlink -f .`/$SUPERLU_SRC/libsuperlu.la"
21458 ;;
21459 esac
21460 SUPERLU_MAKEFILE="$SUPERLU_SRC/Makefile"
21461 else
21462 echo "Building without SuperLU support (use --enable-superlu=yes to enable it)"
21463 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dCreate_CompCol_Matrix in -lsuperlu" >&5
21464 $as_echo_n "checking for dCreate_CompCol_Matrix in -lsuperlu... " >&6; }
21465 if ${ac_cv_lib_superlu_dCreate_CompCol_Matrix+:} false; then :
21466 $as_echo_n "(cached) " >&6
21467 else
21468 ac_check_lib_save_LIBS=$LIBS
21469 LIBS="-lsuperlu $LIBS"
21470 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21471 /* end confdefs.h. */
21472
21473 /* Override any GCC internal prototype to avoid an error.
21474 Use char because int might match the return type of a GCC
21475 builtin and then its argument prototype would still apply. */
21476 #ifdef __cplusplus
21477 extern "C"
21478 #endif
21479 char dCreate_CompCol_Matrix ();
21480 #ifdef FC_DUMMY_MAIN
21481 #ifndef FC_DUMMY_MAIN_EQ_F77
21482 # ifdef __cplusplus
21483 extern "C"
21484 # endif
21485 int FC_DUMMY_MAIN() { return 1; }
21486 #endif
21487 #endif
21488 int
21489 main ()
21490 {
21491 return dCreate_CompCol_Matrix ();
21492 ;
21493 return 0;
21494 }
21495 _ACEOF
21496 if ac_fn_cxx_try_link "$LINENO"; then :
21497 ac_cv_lib_superlu_dCreate_CompCol_Matrix=yes
21498 else
21499 ac_cv_lib_superlu_dCreate_CompCol_Matrix=no
21500 fi
21501 rm -f core conftest.err conftest.$ac_objext \
21502 conftest$ac_exeext conftest.$ac_ext
21503 LIBS=$ac_check_lib_save_LIBS
21504 fi
21505 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_superlu_dCreate_CompCol_Matrix" >&5
21506 $as_echo "$ac_cv_lib_superlu_dCreate_CompCol_Matrix" >&6; }
21507 if test "x$ac_cv_lib_superlu_dCreate_CompCol_Matrix" = xyes; then :
21508 cat >>confdefs.h <<_ACEOF
21509 #define HAVE_LIBSUPERLU 1
21510 _ACEOF
21511
21512 LIBS="-lsuperlu $LIBS"
21513
21514 else
21515 as_fn_error $? "SuperLU library not found" "$LINENO" 5
21516 fi
21517
21518
21519
21520 for ac_header in superlu/colamd.h superlu/slu_Cnames.h \
21521 superlu/slu_cdefs.h superlu/slu_ddefs.h superlu/slu_sdefs.h superlu/slu_zdefs.h \
21522 superlu/slu_dcomplex.h superlu/slu_scomplex.h
21523 do :
21524 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
21525 ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
21526 if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
21527 cat >>confdefs.h <<_ACEOF
21528 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
21529 _ACEOF
21530 usesuperlu="YES"
21531 else
21532
21533 if test "x$usesuperlu" = "xYES"; then
21534 as_fn_error $? "header files of superlu not found. Use --enable-superlu=yes flag" "$LINENO" 5;
21535 fi;
21536
21537 fi
21538
21539 done
21540
21541
21542 SUPERLU_LIBS="-lsuperlu"
21543 LIBS="$LIBS $SUPERLU_LIBS"
21544 fi
21545
21546
21547
21548
21549 if test x$HAVE_VENDOR_BLAS = x0; then
21550 USEBLASLITE_TRUE=
21551 USEBLASLITE_FALSE='#'
21552 else
21553 USEBLASLITE_TRUE='#'
21554 USEBLASLITE_FALSE=
21555 fi
21556
21557 echo "Configuration of SuperLU done"
21558
21559
21560 EXPER=""
21561 # Check whether --enable-experimental was given.
21562 if test "${enable_experimental+set}" = set; then :
21563 enableval=$enable_experimental; if test "x$enableval" = "xyes" ; then EXPER="-DEXPERIMENTAL_PURPOSE_ONLY"; fi
21564 else
21565 EXPER=""
21566 fi
21567
21568 CPPFLAGS="$CPPFLAGS $EXPER"
21569
21570
21571 # Check whether --with-qd-lib-dir was given.
21572 if test "${with_qd_lib_dir+set}" = set; then :
21573 withval=$with_qd_lib_dir; QDLIB="$withval/libqd.a"
21574 else
21575 QDLIB="$GFPREFIX/lib/libqd.a"
21576 fi
21577
21578
21579 # Check whether --with-qd-include-dir was given.
21580 if test "${with_qd_include_dir+set}" = set; then :
21581 withval=$with_qd_include_dir; QDINC="-I$withval"
21582 else
21583 QDINC="-I$GFPREFIX/include"
21584 fi
21585
21586 # Check whether --enable-dd was given.
21587 if test "${enable_dd+set}" = set; then :
21588 enableval=$enable_dd; if test "x$enableval" = "xyes" ; then useQDlib="yes"; QD_PREC="double"; fi
21589 else
21590 useQDlib="no"
21591 fi
21592
21593 # Check whether --enable-qd was given.
21594 if test "${enable_qd+set}" = set; then :
21595 enableval=$enable_qd; if test "x$enableval" = "xyes" ; then useQDlib="yes"; QD_PREC="quad"; fi
21596 else
21597 if test "x$useQDlib" = "xyes"; then useQDlib="yes"; else useQDlib="no"; fi
21598 fi
21599
21600 if test "x$useQDlib" = "xyes" ; then
21601 LIBS="$LIBS $QDLIB -lm"
21602 CPPFLAGS="$CPPFLAGS $QDINC"
21603 if test "$cross_compiling" = yes; then :
21604 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
21605 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
21606 as_fn_error $? "cannot run test program while cross compiling
21607 See \`config.log' for more details" "$LINENO" 5; }
21608 else
21609 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21610 /* end confdefs.h. */
21611
21612 #include <qd/qd_real.h>
21613 #include <qd/dd_real.h>
21614 #include <qd/fpu.h>
21615 #include <iostream>
21616 int main() {
21617 unsigned int old_cw;
21618 int ok;
21619 fpu_fix_start(&old_cw);
21620 qd_real q = 1.0;
21621 qd_real qq = qd_real("0.01");
21622 qd_real qqq = "1.010101010101010101010101010101010101010101010101010101010101010E0";
21623 dd_real d = 1.0;
21624 dd_real dd = dd_real("0.1");
21625 dd_real ddd = "1.1111111111111111111111111111111E0";
21626 for (int i=0; i < 100; ++i) { d += dd; dd *= dd_real("0.1"); }
21627 for (int i=0; i < 100; ++i) { q += qq; qq *= qd_real("0.01"); }
21628 std::cerr << "d = " << d << std::endl << "q = " << q << std::endl;
21629 std::cerr << abs(q - qqq) << std::endl;
21630 std::cerr << abs(d - ddd) << std::endl;
21631 if (abs(q - qqq) < 1e-63 && abs(d -ddd) < 1e-31) ok = 1;
21632 else ok = 0;
21633 fpu_fix_end(&old_cw); return 1-ok;
21634 }
21635
21636 _ACEOF
21637 if ac_fn_cxx_try_run "$LINENO"; then :
21638 echo "checking if qd library is working...yes"
21639 else
21640 echo "QD library is not working (check config.log)"; exit 1
21641 fi
21642 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
21643 conftest.$ac_objext conftest.beam conftest.$ac_ext
21644 fi
21645
21646
21647 cat >>confdefs.h <<_ACEOF
21648 #define HAVE_QDLIB 1
21649 _ACEOF
21650
21651 HAVE_QDLIB=1;
21652 if test "x$QD_PREC" = "xquad"; then
21653
21654 cat >>confdefs.h <<_ACEOF
21655 #define QDLIB_USE_QUAD 1
21656 _ACEOF
21657
21658 fi;
21659 fi;
21660
21661 useQHULL="no"
21662 # Check whether --enable-qhull was given.
21663 if test "${enable_qhull+set}" = set; then :
21664 enableval=$enable_qhull; if test "x$enableval" = "xyes" ; then useQHULL="yes"; fi
21665 else
21666 useQHULL="test"
21667 fi
21668
21669 QHULL_LIBS=""
21670
21671 if test "x$useQHULL" = "xno"; then
21672 echo "Building with libqhull explicitly disabled";
21673 else
21674 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for qh_new_qhull in -lqhull" >&5
21675 $as_echo_n "checking for qh_new_qhull in -lqhull... " >&6; }
21676 if ${ac_cv_lib_qhull_qh_new_qhull+:} false; then :
21677 $as_echo_n "(cached) " >&6
21678 else
21679 ac_check_lib_save_LIBS=$LIBS
21680 LIBS="-lqhull $LIBS"
21681 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21682 /* end confdefs.h. */
21683
21684 /* Override any GCC internal prototype to avoid an error.
21685 Use char because int might match the return type of a GCC
21686 builtin and then its argument prototype would still apply. */
21687 #ifdef __cplusplus
21688 extern "C"
21689 #endif
21690 char qh_new_qhull ();
21691 #ifdef FC_DUMMY_MAIN
21692 #ifndef FC_DUMMY_MAIN_EQ_F77
21693 # ifdef __cplusplus
21694 extern "C"
21695 # endif
21696 int FC_DUMMY_MAIN() { return 1; }
21697 #endif
21698 #endif
21699 int
21700 main ()
21701 {
21702 return qh_new_qhull ();
21703 ;
21704 return 0;
21705 }
21706 _ACEOF
21707 if ac_fn_cxx_try_link "$LINENO"; then :
21708 ac_cv_lib_qhull_qh_new_qhull=yes
21709 else
21710 ac_cv_lib_qhull_qh_new_qhull=no
21711 fi
21712 rm -f core conftest.err conftest.$ac_objext \
21713 conftest$ac_exeext conftest.$ac_ext
21714 LIBS=$ac_check_lib_save_LIBS
21715 fi
21716 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_qhull_qh_new_qhull" >&5
21717 $as_echo "$ac_cv_lib_qhull_qh_new_qhull" >&6; }
21718 if test "x$ac_cv_lib_qhull_qh_new_qhull" = xyes; then :
21719 cat >>confdefs.h <<_ACEOF
21720 #define HAVE_LIBQHULL 1
21721 _ACEOF
21722
21723 LIBS="-lqhull $LIBS"
21724
21725 fi
21726
21727 for ac_header in qhull/qhull.h
21728 do :
21729 ac_fn_cxx_check_header_mongrel "$LINENO" "qhull/qhull.h" "ac_cv_header_qhull_qhull_h" "$ac_includes_default"
21730 if test "x$ac_cv_header_qhull_qhull_h" = xyes; then :
21731 cat >>confdefs.h <<_ACEOF
21732 #define HAVE_QHULL_QHULL_H 1
21733 _ACEOF
21734 useQHULL="yes"
21735 else
21736
21737 if test "x$useQHULL" = "xyes"; then
21738 as_fn_error $? "header files qhull/qhull.h not found. Use --enable-qhull=no flag" "$LINENO" 5;
21739 useQHULL="no"
21740 fi;
21741
21742 fi
21743
21744 done
21745
21746 if test "x$useQHULL" = "xyes"; then
21747 QHULL_LIBS="-lqhull"
21748 fi;
21749 echo "Building with libqhull (use --enable-qhull=no to disable it)"
21750 fi;
21751 if test x$useQHULL = xyes; then
21752 QHULL_TRUE=
21753 QHULL_FALSE='#'
21754 else
21755 QHULL_TRUE='#'
21756 QHULL_FALSE=
21757 fi
21758
21759
21760
21761 echo "Configuration of qhull done"
21762
21763 MUMPSINC=""
21764
21765 # Check whether --with-mumps-include-dir was given.
21766 if test "${with_mumps_include_dir+set}" = set; then :
21767 withval=$with_mumps_include_dir; case $withval in
21768 -I* ) MUMPSINC="$withval";;
21769 * ) MUMPSINC="-I$withval";;
21770 esac
21771 else
21772 MUMPSINC="-I$GFPREFIX/include"
21773
21774 fi
21775
21776 CPPFLAGS="$CPPFLAGS $MUMPSINC"
21777
21778 MUMPS_LIBS=""
21779 acx_mumps_ok="no"
21780 usemumps="no"
21781 # Check whether --enable-mumps was given.
21782 if test "${enable_mumps+set}" = set; then :
21783 enableval=$enable_mumps; case $enableval in
21784 yes | "") usemumps="yes"; acx_mumps_ok="yes"; MUMPS_LIBS="-lsmumps_seq -ldmumps_seq -lcmumps_seq -lzmumps_seq";;
21785 no) usemumps="no";;
21786 esac
21787 else
21788 usemumps="test"; acx_mumps_ok="test"; MUMPS_LIBS="-lsmumps_seq -ldmumps_seq -lcmumps_seq -lzmumps_seq"
21789
21790 fi
21791
21792
21793 # Check whether --enable-par-mumps was given.
21794 if test "${enable_par_mumps+set}" = set; then :
21795 enableval=$enable_par_mumps; case $enableval in
21796 yes | "") usemumps="yes"; MUMPS_LIBS="-lsmumps -ldmumps -lcmumps -lzmumps";;
21797 no) usemumps="no";;
21798 esac
21799 else
21800 if test $paralevel -ge 1; then
21801 usemumps="test"; acx_mumps_ok="test"; MUMPS_LIBS="-lsmumps -ldmumps -lcmumps -lzmumps"
21802 fi;
21803
21804 fi
21805
21806
21807
21808 # Check whether --with-mumps was given.
21809 if test "${with_mumps+set}" = set; then :
21810 withval=$with_mumps; case $with_mumps in
21811 yes | "") usemumps="yes";;
21812 no) acx_mumps_ok="no" ;;
21813 -* | */* | *.a | *.so | *.so.* | *.o| builtin) MUMPS_LIBS="$with_mumps"; acx_mumps_ok="yes" ;;
21814 *) MUMPS_LIBS=`echo $with_mumps | sed -e 's/^/-l/g;s/ / -l/g'` ; usemumps="yes";;
21815 esac
21816
21817 fi
21818
21819
21820
21821 if test "x$usemumps" = "xno" -o "x$acx_mumps_ok" = "xno"; then
21822 echo "Building with MUMPS explicitly disabled";
21823 else
21824 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing smumps_c" >&5
21825 $as_echo_n "checking for library containing smumps_c... " >&6; }
21826 if ${ac_cv_search_smumps_c+:} false; then :
21827 $as_echo_n "(cached) " >&6
21828 else
21829 ac_func_search_save_LIBS=$LIBS
21830 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21831 /* end confdefs.h. */
21832
21833 /* Override any GCC internal prototype to avoid an error.
21834 Use char because int might match the return type of a GCC
21835 builtin and then its argument prototype would still apply. */
21836 #ifdef __cplusplus
21837 extern "C"
21838 #endif
21839 char smumps_c ();
21840 #ifdef FC_DUMMY_MAIN
21841 #ifndef FC_DUMMY_MAIN_EQ_F77
21842 # ifdef __cplusplus
21843 extern "C"
21844 # endif
21845 int FC_DUMMY_MAIN() { return 1; }
21846 #endif
21847 #endif
21848 int
21849 main ()
21850 {
21851 return smumps_c ();
21852 ;
21853 return 0;
21854 }
21855 _ACEOF
21856 for ac_lib in '' `echo $MUMPS_LIBS | sed -e 's/^-l//g;s/ -l/ /g'`; do
21857 if test -z "$ac_lib"; then
21858 ac_res="none required"
21859 else
21860 ac_res=-l$ac_lib
21861 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
21862 fi
21863 if ac_fn_cxx_try_link "$LINENO"; then :
21864 ac_cv_search_smumps_c=$ac_res
21865 fi
21866 rm -f core conftest.err conftest.$ac_objext \
21867 conftest$ac_exeext
21868 if ${ac_cv_search_smumps_c+:} false; then :
21869 break
21870 fi
21871 done
21872 if ${ac_cv_search_smumps_c+:} false; then :
21873
21874 else
21875 ac_cv_search_smumps_c=no
21876 fi
21877 rm conftest.$ac_ext
21878 LIBS=$ac_func_search_save_LIBS
21879 fi
21880 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_smumps_c" >&5
21881 $as_echo "$ac_cv_search_smumps_c" >&6; }
21882 ac_res=$ac_cv_search_smumps_c
21883 if test "$ac_res" != no; then :
21884 test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
21885 usemumps="yes"
21886 else
21887 if test "x$acx_mumps_ok" = "xyes"; then
21888 as_fn_error $? "The function smumps_c couldn't be found in the provided MUMPS libraries." "$LINENO" 5;
21889 fi;
21890 usemumps="no"
21891
21892 fi
21893
21894 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dmumps_c" >&5
21895 $as_echo_n "checking for library containing dmumps_c... " >&6; }
21896 if ${ac_cv_search_dmumps_c+:} false; then :
21897 $as_echo_n "(cached) " >&6
21898 else
21899 ac_func_search_save_LIBS=$LIBS
21900 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21901 /* end confdefs.h. */
21902
21903 /* Override any GCC internal prototype to avoid an error.
21904 Use char because int might match the return type of a GCC
21905 builtin and then its argument prototype would still apply. */
21906 #ifdef __cplusplus
21907 extern "C"
21908 #endif
21909 char dmumps_c ();
21910 #ifdef FC_DUMMY_MAIN
21911 #ifndef FC_DUMMY_MAIN_EQ_F77
21912 # ifdef __cplusplus
21913 extern "C"
21914 # endif
21915 int FC_DUMMY_MAIN() { return 1; }
21916 #endif
21917 #endif
21918 int
21919 main ()
21920 {
21921 return dmumps_c ();
21922 ;
21923 return 0;
21924 }
21925 _ACEOF
21926 for ac_lib in '' `echo $MUMPS_LIBS | sed -e 's/^-l//g;s/ -l/ /g'`; do
21927 if test -z "$ac_lib"; then
21928 ac_res="none required"
21929 else
21930 ac_res=-l$ac_lib
21931 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
21932 fi
21933 if ac_fn_cxx_try_link "$LINENO"; then :
21934 ac_cv_search_dmumps_c=$ac_res
21935 fi
21936 rm -f core conftest.err conftest.$ac_objext \
21937 conftest$ac_exeext
21938 if ${ac_cv_search_dmumps_c+:} false; then :
21939 break
21940 fi
21941 done
21942 if ${ac_cv_search_dmumps_c+:} false; then :
21943
21944 else
21945 ac_cv_search_dmumps_c=no
21946 fi
21947 rm conftest.$ac_ext
21948 LIBS=$ac_func_search_save_LIBS
21949 fi
21950 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dmumps_c" >&5
21951 $as_echo "$ac_cv_search_dmumps_c" >&6; }
21952 ac_res=$ac_cv_search_dmumps_c
21953 if test "$ac_res" != no; then :
21954 test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
21955 usemumps="yes"
21956 else
21957 if test "x$acx_mumps_ok" = "xyes"; then
21958 as_fn_error $? "The function dmumps_c couldn't be found in the provided MUMPS libraries." "$LINENO" 5;
21959 fi;
21960 usemumps="no"
21961
21962 fi
21963
21964 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing cmumps_c" >&5
21965 $as_echo_n "checking for library containing cmumps_c... " >&6; }
21966 if ${ac_cv_search_cmumps_c+:} false; then :
21967 $as_echo_n "(cached) " >&6
21968 else
21969 ac_func_search_save_LIBS=$LIBS
21970 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
21971 /* end confdefs.h. */
21972
21973 /* Override any GCC internal prototype to avoid an error.
21974 Use char because int might match the return type of a GCC
21975 builtin and then its argument prototype would still apply. */
21976 #ifdef __cplusplus
21977 extern "C"
21978 #endif
21979 char cmumps_c ();
21980 #ifdef FC_DUMMY_MAIN
21981 #ifndef FC_DUMMY_MAIN_EQ_F77
21982 # ifdef __cplusplus
21983 extern "C"
21984 # endif
21985 int FC_DUMMY_MAIN() { return 1; }
21986 #endif
21987 #endif
21988 int
21989 main ()
21990 {
21991 return cmumps_c ();
21992 ;
21993 return 0;
21994 }
21995 _ACEOF
21996 for ac_lib in '' `echo $MUMPS_LIBS | sed -e 's/^-l//g;s/ -l/ /g'`; do
21997 if test -z "$ac_lib"; then
21998 ac_res="none required"
21999 else
22000 ac_res=-l$ac_lib
22001 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
22002 fi
22003 if ac_fn_cxx_try_link "$LINENO"; then :
22004 ac_cv_search_cmumps_c=$ac_res
22005 fi
22006 rm -f core conftest.err conftest.$ac_objext \
22007 conftest$ac_exeext
22008 if ${ac_cv_search_cmumps_c+:} false; then :
22009 break
22010 fi
22011 done
22012 if ${ac_cv_search_cmumps_c+:} false; then :
22013
22014 else
22015 ac_cv_search_cmumps_c=no
22016 fi
22017 rm conftest.$ac_ext
22018 LIBS=$ac_func_search_save_LIBS
22019 fi
22020 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_cmumps_c" >&5
22021 $as_echo "$ac_cv_search_cmumps_c" >&6; }
22022 ac_res=$ac_cv_search_cmumps_c
22023 if test "$ac_res" != no; then :
22024 test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
22025 usemumps="yes"
22026 else
22027 if test "x$acx_mumps_ok" = "xyes"; then
22028 as_fn_error $? "The function cmumps_c couldn't be found in the provided MUMPS libraries." "$LINENO" 5;
22029 fi;
22030 usemumps="no"
22031
22032 fi
22033
22034 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing zmumps_c" >&5
22035 $as_echo_n "checking for library containing zmumps_c... " >&6; }
22036 if ${ac_cv_search_zmumps_c+:} false; then :
22037 $as_echo_n "(cached) " >&6
22038 else
22039 ac_func_search_save_LIBS=$LIBS
22040 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
22041 /* end confdefs.h. */
22042
22043 /* Override any GCC internal prototype to avoid an error.
22044 Use char because int might match the return type of a GCC
22045 builtin and then its argument prototype would still apply. */
22046 #ifdef __cplusplus
22047 extern "C"
22048 #endif
22049 char zmumps_c ();
22050 #ifdef FC_DUMMY_MAIN
22051 #ifndef FC_DUMMY_MAIN_EQ_F77
22052 # ifdef __cplusplus
22053 extern "C"
22054 # endif
22055 int FC_DUMMY_MAIN() { return 1; }
22056 #endif
22057 #endif
22058 int
22059 main ()
22060 {
22061 return zmumps_c ();
22062 ;
22063 return 0;
22064 }
22065 _ACEOF
22066 for ac_lib in '' `echo $MUMPS_LIBS | sed -e 's/^-l//g;s/ -l/ /g'`; do
22067 if test -z "$ac_lib"; then
22068 ac_res="none required"
22069 else
22070 ac_res=-l$ac_lib
22071 LIBS="-l$ac_lib $ac_func_search_save_LIBS"
22072 fi
22073 if ac_fn_cxx_try_link "$LINENO"; then :
22074 ac_cv_search_zmumps_c=$ac_res
22075 fi
22076 rm -f core conftest.err conftest.$ac_objext \
22077 conftest$ac_exeext
22078 if ${ac_cv_search_zmumps_c+:} false; then :
22079 break
22080 fi
22081 done
22082 if ${ac_cv_search_zmumps_c+:} false; then :
22083
22084 else
22085 ac_cv_search_zmumps_c=no
22086 fi
22087 rm conftest.$ac_ext
22088 LIBS=$ac_func_search_save_LIBS
22089 fi
22090 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_zmumps_c" >&5
22091 $as_echo "$ac_cv_search_zmumps_c" >&6; }
22092 ac_res=$ac_cv_search_zmumps_c
22093 if test "$ac_res" != no; then :
22094 test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
22095 usemumps="yes"
22096 else
22097 if test "x$acx_mumps_ok" = "xyes"; then
22098 as_fn_error $? "The function zmumps_c couldn't be found in the provided MUMPS libraries." "$LINENO" 5;
22099 fi;
22100 usemumps="no"
22101
22102 fi
22103
22104 for ac_header in smumps_c.h dmumps_c.h cmumps_c.h zmumps_c.h
22105 do :
22106 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
22107 ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
22108 if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
22109 cat >>confdefs.h <<_ACEOF
22110 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
22111 _ACEOF
22112 usemumps="yes"
22113 else
22114 if test "x$acx_mumps_ok" = "xyes"; then
22115 as_fn_error $? "header file dmumps_c.h not found." "$LINENO" 5;
22116 fi;
22117 usemumps="no"
22118
22119 fi
22120
22121 done
22122
22123
22124 if test "x$usemumps" = "xyes"; then
22125 echo "Building with MUMPS (use --enable-mumps=no to disable it)"
22126 else
22127 MUMPS_LIBS=""
22128 fi;
22129 fi;
22130
22131 if test x$usemumps = xyes; then
22132 MUMPS_TRUE=
22133 MUMPS_FALSE='#'
22134 else
22135 MUMPS_TRUE='#'
22136 MUMPS_FALSE=
22137 fi
22138
22139
22140 echo "Configuration of MUMPS done"
22141
22142 METIS_LIBS=""
22143 # Check whether --enable-metis was given.
22144 if test "${enable_metis+set}" = set; then :
22145 enableval=$enable_metis; case $enableval in
22146 yes | "") usemetis="yes" ;;
22147 no) usemetis="no"; METIS_LIBS="" ;;
22148 esac
22149 else
22150 usemetis="test"
22151
22152 fi
22153
22154
22155 if test $paralevel -ge 2 -a "x$usemetis" = "xno"; then
22156 echo "Parallel getfem requires the METIS library, --enable-metis=no will be ignored";
22157 usemetis="yes"
22158 fi;
22159
22160 if test "x$usemetis" = "xno"; then
22161 echo "Building without METIS";
22162 else
22163 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for METIS_PartGraphRecursive in -lmetis" >&5
22164 $as_echo_n "checking for METIS_PartGraphRecursive in -lmetis... " >&6; }
22165 if ${ac_cv_lib_metis_METIS_PartGraphRecursive+:} false; then :
22166 $as_echo_n "(cached) " >&6
22167 else
22168 ac_check_lib_save_LIBS=$LIBS
22169 LIBS="-lmetis $LIBS"
22170 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
22171 /* end confdefs.h. */
22172
22173 /* Override any GCC internal prototype to avoid an error.
22174 Use char because int might match the return type of a GCC
22175 builtin and then its argument prototype would still apply. */
22176 #ifdef __cplusplus
22177 extern "C"
22178 #endif
22179 char METIS_PartGraphRecursive ();
22180 #ifdef FC_DUMMY_MAIN
22181 #ifndef FC_DUMMY_MAIN_EQ_F77
22182 # ifdef __cplusplus
22183 extern "C"
22184 # endif
22185 int FC_DUMMY_MAIN() { return 1; }
22186 #endif
22187 #endif
22188 int
22189 main ()
22190 {
22191 return METIS_PartGraphRecursive ();
22192 ;
22193 return 0;
22194 }
22195 _ACEOF
22196 if ac_fn_cxx_try_link "$LINENO"; then :
22197 ac_cv_lib_metis_METIS_PartGraphRecursive=yes
22198 else
22199 ac_cv_lib_metis_METIS_PartGraphRecursive=no
22200 fi
22201 rm -f core conftest.err conftest.$ac_objext \
22202 conftest$ac_exeext conftest.$ac_ext
22203 LIBS=$ac_check_lib_save_LIBS
22204 fi
22205 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_metis_METIS_PartGraphRecursive" >&5
22206 $as_echo "$ac_cv_lib_metis_METIS_PartGraphRecursive" >&6; }
22207 if test "x$ac_cv_lib_metis_METIS_PartGraphRecursive" = xyes; then :
22208 usemetis="yes"
22209 else
22210 usemetis="no";
22211 if test $paralevel -ge 2; then
22212 as_fn_error $? "METIS library required for parallel getfem was not found" "$LINENO" 5
22213 fi
22214
22215 fi
22216
22217
22218 if test "x$usemetis" = "xyes"; then
22219 METIS_LIBS="-lmetis"
22220 LIBS="$LIBS $METIS_LIBS"
22221
22222 cat >>confdefs.h <<_ACEOF
22223 #define HAVE_METIS 1
22224 _ACEOF
22225
22226 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for METIS_SetDefaultOptions in -lmetis" >&5
22227 $as_echo_n "checking for METIS_SetDefaultOptions in -lmetis... " >&6; }
22228 if ${ac_cv_lib_metis_METIS_SetDefaultOptions+:} false; then :
22229 $as_echo_n "(cached) " >&6
22230 else
22231 ac_check_lib_save_LIBS=$LIBS
22232 LIBS="-lmetis $LIBS"
22233 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
22234 /* end confdefs.h. */
22235
22236 /* Override any GCC internal prototype to avoid an error.
22237 Use char because int might match the return type of a GCC
22238 builtin and then its argument prototype would still apply. */
22239 #ifdef __cplusplus
22240 extern "C"
22241 #endif
22242 char METIS_SetDefaultOptions ();
22243 #ifdef FC_DUMMY_MAIN
22244 #ifndef FC_DUMMY_MAIN_EQ_F77
22245 # ifdef __cplusplus
22246 extern "C"
22247 # endif
22248 int FC_DUMMY_MAIN() { return 1; }
22249 #endif
22250 #endif
22251 int
22252 main ()
22253 {
22254 return METIS_SetDefaultOptions ();
22255 ;
22256 return 0;
22257 }
22258 _ACEOF
22259 if ac_fn_cxx_try_link "$LINENO"; then :
22260 ac_cv_lib_metis_METIS_SetDefaultOptions=yes
22261 else
22262 ac_cv_lib_metis_METIS_SetDefaultOptions=no
22263 fi
22264 rm -f core conftest.err conftest.$ac_objext \
22265 conftest$ac_exeext conftest.$ac_ext
22266 LIBS=$ac_check_lib_save_LIBS
22267 fi
22268 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_metis_METIS_SetDefaultOptions" >&5
22269 $as_echo "$ac_cv_lib_metis_METIS_SetDefaultOptions" >&6; }
22270 if test "x$ac_cv_lib_metis_METIS_SetDefaultOptions" = xyes; then :
22271 usemetisnew="yes"
22272 else
22273
22274 cat >>confdefs.h <<_ACEOF
22275 #define HAVE_METIS_OLD_API 1
22276 _ACEOF
22277
22278
22279 fi
22280
22281 echo "Building with METIS (use --enable-metis=no to disable it)"
22282 if test "x$usemetisnew" = "xyes"; then
22283 for ac_header in metis.h
22284 do :
22285 ac_fn_cxx_check_header_mongrel "$LINENO" "metis.h" "ac_cv_header_metis_h" "$ac_includes_default"
22286 if test "x$ac_cv_header_metis_h" = xyes; then :
22287 cat >>confdefs.h <<_ACEOF
22288 #define HAVE_METIS_H 1
22289 _ACEOF
22290 usemetis="yes"
22291 else
22292 usemetis="no";
22293 if test $paralevel -ge 2; then
22294 as_fn_error $? "metis.h header required for parallel getfem was not found" "$LINENO" 5
22295 fi
22296
22297 fi
22298
22299 done
22300
22301 fi;
22302 else
22303 echo "METIS library could not be found, building without METIS";
22304 fi;
22305 fi;
22306
22307 if test x$usemetis = xyes; then
22308 METIS_TRUE=
22309 METIS_FALSE='#'
22310 else
22311 METIS_TRUE='#'
22312 METIS_FALSE=
22313 fi
22314
22315
22316
22317
22318
22319
22320
22321 if test x"$acx_blas_ok" = xyes; then
22322 if test x"$FC" = "x"; then
22323 dgetrf=dgetrf_
22324 else
22325 ac_ext=${ac_fc_srcext-f}
22326 ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
22327 ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
22328 ac_compiler_gnu=$ac_cv_fc_compiler_gnu
22329 case $ac_cv_fc_mangling in
22330 upper*) ac_val="DGETRF" ;;
22331 lower*) ac_val="dgetrf" ;;
22332 *) ac_val="unknown" ;;
22333 esac
22334 case $ac_cv_fc_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac
22335
22336 dgetrf="$ac_val"
22337
22338 ac_ext=cpp
22339 ac_cpp='$CXXCPP $CPPFLAGS'
22340 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
22341 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
22342 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
22343
22344 fi;
22345
22346 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgetrf_ in -llapack" >&5
22347 $as_echo_n "checking for dgetrf_ in -llapack... " >&6; }
22348 if ${ac_cv_lib_lapack_dgetrf_+:} false; then :
22349 $as_echo_n "(cached) " >&6
22350 else
22351 ac_check_lib_save_LIBS=$LIBS
22352 LIBS="-llapack $LIBS"
22353 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
22354 /* end confdefs.h. */
22355
22356 /* Override any GCC internal prototype to avoid an error.
22357 Use char because int might match the return type of a GCC
22358 builtin and then its argument prototype would still apply. */
22359 #ifdef __cplusplus
22360 extern "C"
22361 #endif
22362 char dgetrf_ ();
22363 #ifdef FC_DUMMY_MAIN
22364 #ifndef FC_DUMMY_MAIN_EQ_F77
22365 # ifdef __cplusplus
22366 extern "C"
22367 # endif
22368 int FC_DUMMY_MAIN() { return 1; }
22369 #endif
22370 #endif
22371 int
22372 main ()
22373 {
22374 return dgetrf_ ();
22375 ;
22376 return 0;
22377 }
22378 _ACEOF
22379 if ac_fn_cxx_try_link "$LINENO"; then :
22380 ac_cv_lib_lapack_dgetrf_=yes
22381 else
22382 ac_cv_lib_lapack_dgetrf_=no
22383 fi
22384 rm -f core conftest.err conftest.$ac_objext \
22385 conftest$ac_exeext conftest.$ac_ext
22386 LIBS=$ac_check_lib_save_LIBS
22387 fi
22388 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lapack_dgetrf_" >&5
22389 $as_echo "$ac_cv_lib_lapack_dgetrf_" >&6; }
22390 if test "x$ac_cv_lib_lapack_dgetrf_" = xyes; then :
22391 acx_lapack_ok=yes; LAPACK_LIBS="-llapack "
22392 fi
22393
22394
22395 if test x"$acx_lapack_ok" = xyes; then
22396 CPPFLAGS="$CPPFLAGS -DGMM_USES_LAPACK"
22397 LIBS="$LIBS $LAPACK_LIBS"
22398 fi
22399 fi
22400
22401
22402
22403 for ac_header in sys/times.h
22404 do :
22405 ac_fn_cxx_check_header_mongrel "$LINENO" "sys/times.h" "ac_cv_header_sys_times_h" "$ac_includes_default"
22406 if test "x$ac_cv_header_sys_times_h" = xyes; then :
22407 cat >>confdefs.h <<_ACEOF
22408 #define HAVE_SYS_TIMES_H 1
22409 _ACEOF
22410
22411 else
22412 SUPERLU_CPPFLAGS="$SUPERLU_CPPFLAGS -DNO_TIMER"
22413 fi
22414
22415 done
22416
22417 for ac_header in cxxabi.h
22418 do :
22419 ac_fn_cxx_check_header_mongrel "$LINENO" "cxxabi.h" "ac_cv_header_cxxabi_h" "$ac_includes_default"
22420 if test "x$ac_cv_header_cxxabi_h" = xyes; then :
22421 cat >>confdefs.h <<_ACEOF
22422 #define HAVE_CXXABI_H 1
22423 _ACEOF
22424
22425 fi
22426
22427 done
22428
22429 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __PRETTY_FUNCTION__" >&5
22430 $as_echo_n "checking for __PRETTY_FUNCTION__... " >&6; }
22431 if ${ac_cv_have_pretty_function+:} false; then :
22432 $as_echo_n "(cached) " >&6
22433 else
22434
22435 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
22436 /* end confdefs.h. */
22437
22438 #ifdef FC_DUMMY_MAIN
22439 #ifndef FC_DUMMY_MAIN_EQ_F77
22440 # ifdef __cplusplus
22441 extern "C"
22442 # endif
22443 int FC_DUMMY_MAIN() { return 1; }
22444 #endif
22445 #endif
22446 int
22447 main ()
22448 {
22449
22450 const char *s = __PRETTY_FUNCTION__;
22451 ;
22452 return 0;
22453 }
22454 _ACEOF
22455 if ac_fn_cxx_try_compile "$LINENO"; then :
22456 ac_cv_have_pretty_function="yes"
22457 else
22458 ac_cv_have_pretty_function=="no"
22459 fi
22460 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
22461 fi
22462 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_pretty_function" >&5
22463 $as_echo "$ac_cv_have_pretty_function" >&6; }
22464 if test "x$ac_cv_have_pretty_function" = "xyes"; then
22465
22466 cat >>confdefs.h <<_ACEOF
22467 #define HAVE_PRETTY_FUNCTION 1
22468 _ACEOF
22469
22470 fi;
22471
22472
22473 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for execinfo.h and backtrace" >&5
22474 $as_echo_n "checking for execinfo.h and backtrace... " >&6; }
22475 if ${ac_cv_have_backtrace+:} false; then :
22476 $as_echo_n "(cached) " >&6
22477 else
22478
22479 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
22480 /* end confdefs.h. */
22481 #include <execinfo.h>
22482 #ifdef FC_DUMMY_MAIN
22483 #ifndef FC_DUMMY_MAIN_EQ_F77
22484 # ifdef __cplusplus
22485 extern "C"
22486 # endif
22487 int FC_DUMMY_MAIN() { return 1; }
22488 #endif
22489 #endif
22490 int
22491 main ()
22492 {
22493 void* trace[256]; int n = backtrace(trace, 256);
22494 ;
22495 return 0;
22496 }
22497 _ACEOF
22498 if ac_fn_cxx_try_compile "$LINENO"; then :
22499 ac_cv_have_backtrace="yes"
22500 else
22501 ac_cv_have_backtrace="no"
22502 fi
22503 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
22504 fi
22505 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_backtrace" >&5
22506 $as_echo "$ac_cv_have_backtrace" >&6; }
22507 if test "x$ac_cv_have_backtrace" = "xyes"; then
22508
22509 cat >>confdefs.h <<_ACEOF
22510 #define HAVE_BACKTRACE 1
22511 _ACEOF
22512
22513 fi;
22514
22515 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fenv.h and feenableexcept" >&5
22516 $as_echo_n "checking for fenv.h and feenableexcept... " >&6; }
22517 if ${ac_cv_have_feenableexcept+:} false; then :
22518 $as_echo_n "(cached) " >&6
22519 else
22520
22521 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
22522 /* end confdefs.h. */
22523 #include <fenv.h>
22524 #ifdef FC_DUMMY_MAIN
22525 #ifndef FC_DUMMY_MAIN_EQ_F77
22526 # ifdef __cplusplus
22527 extern "C"
22528 # endif
22529 int FC_DUMMY_MAIN() { return 1; }
22530 #endif
22531 #endif
22532 int
22533 main ()
22534 {
22535 feenableexcept(FE_DIVBYZERO | FE_INVALID);
22536 ;
22537 return 0;
22538 }
22539 _ACEOF
22540 if ac_fn_cxx_try_compile "$LINENO"; then :
22541 ac_cv_have_feenableexcept="yes"
22542 else
22543 ac_cv_have_feenableexcept="no"
22544 fi
22545 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
22546 fi
22547 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_feenableexcept" >&5
22548 $as_echo "$ac_cv_have_feenableexcept" >&6; }
22549 if test "x$ac_cv_have_feenableexcept" = "xyes"; then
22550
22551 cat >>confdefs.h <<_ACEOF
22552 #define HAVE_FEENABLEEXCEPT 1
22553 _ACEOF
22554
22555 fi;
22556
22557 BUILDER=`whoami`
22558
22559 BUILDDATE=`date +%D,%H:%M:%S`
22560
22561 CONFIGURE_ARGS=$ac_configure_args
22562
22563 LIBTOOL_VERSION_INFO="-version-info ${MAJOR_VERSION}:${MINOR_VERSION}:0"
22564
22565
22566
22567
22568 j="tests/meshes/disc_P2_h4.mesh"
22569 if test -L $j || test ! -f $j; then
22570 DISTCLEANMESH="";
22571 else
22572 DISTCLEANMESH="#";
22573 fi;
22574
22575
22576
22577
22578 # Check whether --enable-boost was given.
22579 if test "${enable_boost+set}" = set; then :
22580 enableval=$enable_boost; case "${enableval}" in
22581 yes) useboost=YES ;;
22582 no) useboost=NO ;;
22583 *) as_fn_error $? "bad value ${enableval} for --enable-boost" "$LINENO" 5 ;;
22584 esac
22585 else
22586 useboost=NO
22587 fi
22588
22589
22590 if test "x$useboost" = "xNO" -a "x$useopenmp" = "xYES"; then
22591 echo "OpenMP version of GetFEM++ requires the boost library, --enable-boost=no will be ignored";
22592 useboost=YES
22593 fi;
22594
22595 if test "x$useboost" = "xYES"; then
22596 if test "x$useopenmp" = "xYES"; then
22597
22598
22599 # Check whether --with-boost was given.
22600 if test "${with_boost+set}" = set; then :
22601 withval=$with_boost;
22602 if test "$withval" = "no"; then
22603 want_boost="no"
22604 elif test "$withval" = "yes"; then
22605 want_boost="yes"
22606 ac_boost_path=""
22607 else
22608 want_boost="yes"
22609 ac_boost_path="$withval"
22610 fi
22611
22612 else
22613 want_boost="yes"
22614 fi
22615
22616
22617
22618
22619 # Check whether --with-boost-libdir was given.
22620 if test "${with_boost_libdir+set}" = set; then :
22621 withval=$with_boost_libdir;
22622 if test -d "$withval"
22623 then
22624 ac_boost_lib_path="$withval"
22625 else
22626 as_fn_error $? "--with-boost-libdir expected directory name" "$LINENO" 5
22627 fi
22628
22629 else
22630 ac_boost_lib_path=""
22631
22632 fi
22633
22634
22635 if test "x$want_boost" = "xyes"; then
22636 boost_lib_version_req=1.53.0
22637 boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([0-9]*\.[0-9]*\)'`
22638 boost_lib_version_req_major=`expr $boost_lib_version_req : '\([0-9]*\)'`
22639 boost_lib_version_req_minor=`expr $boost_lib_version_req : '[0-9]*\.\([0-9]*\)'`
22640 boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
22641 if test "x$boost_lib_version_req_sub_minor" = "x" ; then
22642 boost_lib_version_req_sub_minor="0"
22643 fi
22644 WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+ $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor`
22645 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for boostlib >= $boost_lib_version_req" >&5
22646 $as_echo_n "checking for boostlib >= $boost_lib_version_req... " >&6; }
22647 succeeded=no
22648
22649 libsubdirs="lib"
22650 ax_arch=`uname -m`
22651 case $ax_arch in
22652 x86_64|ppc64|s390x|sparc64|aarch64)
22653 libsubdirs="lib64 lib lib64"
22654 ;;
22655 esac
22656
22657
22658 libsubdirs="lib/${host_cpu}-${host_os} $libsubdirs"
22659
22660 case ${host_cpu} in
22661 i?86)
22662 libsubdirs="lib/i386-${host_os} $libsubdirs"
22663 ;;
22664 esac
22665
22666 if test "$ac_boost_path" != ""; then
22667 BOOST_CPPFLAGS="-I$ac_boost_path/include"
22668 for ac_boost_path_tmp in $libsubdirs; do
22669 if test -d "$ac_boost_path"/"$ac_boost_path_tmp" ; then
22670 BOOST_LDFLAGS="-L$ac_boost_path/$ac_boost_path_tmp"
22671 break
22672 fi
22673 done
22674 elif test "$cross_compiling" != yes; then
22675 for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
22676 if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then
22677 for libsubdir in $libsubdirs ; do
22678 if ls "$ac_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
22679 done
22680 BOOST_LDFLAGS="-L$ac_boost_path_tmp/$libsubdir"
22681 BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include"
22682 break;
22683 fi
22684 done
22685 fi
22686
22687 if test "$ac_boost_lib_path" != ""; then
22688 BOOST_LDFLAGS="-L$ac_boost_lib_path"
22689 fi
22690
22691 CPPFLAGS_SAVED="$CPPFLAGS"
22692 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
22693 export CPPFLAGS
22694
22695 LDFLAGS_SAVED="$LDFLAGS"
22696 LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
22697 export LDFLAGS
22698
22699
22700 ac_ext=cpp
22701 ac_cpp='$CXXCPP $CPPFLAGS'
22702 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
22703 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
22704 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
22705
22706 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
22707 /* end confdefs.h. */
22708
22709 #include <boost/version.hpp>
22710
22711 #ifdef FC_DUMMY_MAIN
22712 #ifndef FC_DUMMY_MAIN_EQ_F77
22713 # ifdef __cplusplus
22714 extern "C"
22715 # endif
22716 int FC_DUMMY_MAIN() { return 1; }
22717 #endif
22718 #endif
22719 int
22720 main ()
22721 {
22722
22723 #if BOOST_VERSION >= $WANT_BOOST_VERSION
22724 // Everything is okay
22725 #else
22726 # error Boost version is too old
22727 #endif
22728
22729 ;
22730 return 0;
22731 }
22732 _ACEOF
22733 if ac_fn_cxx_try_compile "$LINENO"; then :
22734
22735 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
22736 $as_echo "yes" >&6; }
22737 succeeded=yes
22738 found_system=yes
22739
22740 fi
22741 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
22742 ac_ext=cpp
22743 ac_cpp='$CXXCPP $CPPFLAGS'
22744 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
22745 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
22746 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
22747
22748
22749
22750
22751 if test "x$succeeded" != "xyes"; then
22752 _version=0
22753 if test "$ac_boost_path" != ""; then
22754 if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
22755 for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
22756 _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
22757 V_CHECK=`expr $_version_tmp \> $_version`
22758 if test "$V_CHECK" = "1" ; then
22759 _version=$_version_tmp
22760 fi
22761 VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
22762 BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE"
22763 done
22764 fi
22765 else
22766 if test "$cross_compiling" != yes; then
22767 for ac_boost_path in /usr /usr/local /opt /opt/local ; do
22768 if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
22769 for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
22770 _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
22771 V_CHECK=`expr $_version_tmp \> $_version`
22772 if test "$V_CHECK" = "1" ; then
22773 _version=$_version_tmp
22774 best_path=$ac_boost_path
22775 fi
22776 done
22777 fi
22778 done
22779
22780 VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
22781 BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
22782 if test "$ac_boost_lib_path" = ""; then
22783 for libsubdir in $libsubdirs ; do
22784 if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
22785 done
22786 BOOST_LDFLAGS="-L$best_path/$libsubdir"
22787 fi
22788 fi
22789
22790 if test "x$BOOST_ROOT" != "x"; then
22791 for libsubdir in $libsubdirs ; do
22792 if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
22793 done
22794 if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then
22795 version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
22796 stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
22797 stage_version_shorten=`expr $stage_version : '\([0-9]*\.[0-9]*\)'`
22798 V_CHECK=`expr $stage_version_shorten \>\= $_version`
22799 if test "$V_CHECK" = "1" -a "$ac_boost_lib_path" = "" ; then
22800 { $as_echo "$as_me:${as_lineno-$LINENO}: We will use a staged boost library from $BOOST_ROOT" >&5
22801 $as_echo "$as_me: We will use a staged boost library from $BOOST_ROOT" >&6;}
22802 BOOST_CPPFLAGS="-I$BOOST_ROOT"
22803 BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir"
22804 fi
22805 fi
22806 fi
22807 fi
22808
22809 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
22810 export CPPFLAGS
22811 LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
22812 export LDFLAGS
22813
22814 ac_ext=cpp
22815 ac_cpp='$CXXCPP $CPPFLAGS'
22816 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
22817 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
22818 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
22819
22820 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
22821 /* end confdefs.h. */
22822
22823 #include <boost/version.hpp>
22824
22825 #ifdef FC_DUMMY_MAIN
22826 #ifndef FC_DUMMY_MAIN_EQ_F77
22827 # ifdef __cplusplus
22828 extern "C"
22829 # endif
22830 int FC_DUMMY_MAIN() { return 1; }
22831 #endif
22832 #endif
22833 int
22834 main ()
22835 {
22836
22837 #if BOOST_VERSION >= $WANT_BOOST_VERSION
22838 // Everything is okay
22839 #else
22840 # error Boost version is too old
22841 #endif
22842
22843 ;
22844 return 0;
22845 }
22846 _ACEOF
22847 if ac_fn_cxx_try_compile "$LINENO"; then :
22848
22849 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
22850 $as_echo "yes" >&6; }
22851 succeeded=yes
22852 found_system=yes
22853
22854 fi
22855 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
22856 ac_ext=cpp
22857 ac_cpp='$CXXCPP $CPPFLAGS'
22858 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
22859 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
22860 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
22861
22862 fi
22863
22864 if test "$succeeded" != "yes" ; then
22865 if test "$_version" = "0" ; then
22866 { $as_echo "$as_me:${as_lineno-$LINENO}: We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation." >&5
22867 $as_echo "$as_me: We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation." >&6;}
22868 else
22869 { $as_echo "$as_me:${as_lineno-$LINENO}: Your boost libraries seems to old (version $_version)." >&5
22870 $as_echo "$as_me: Your boost libraries seems to old (version $_version)." >&6;}
22871 fi
22872 # execute ACTION-IF-NOT-FOUND (if present):
22873 as_fn_error $? "Please install boost >= 1.53.0 in order to build GetFEM++ with OpenMP support" "$LINENO" 5
22874 else
22875
22876
22877
22878 $as_echo "#define HAVE_BOOST /**/" >>confdefs.h
22879
22880 # execute ACTION-IF-FOUND (if present):
22881 :
22882 fi
22883
22884 CPPFLAGS="$CPPFLAGS_SAVED"
22885 LDFLAGS="$LDFLAGS_SAVED"
22886 fi
22887
22888
22889
22890
22891 # Check whether --with-boost-system was given.
22892 if test "${with_boost_system+set}" = set; then :
22893 withval=$with_boost_system;
22894 if test "$withval" = "no"; then
22895 want_boost="no"
22896 elif test "$withval" = "yes"; then
22897 want_boost="yes"
22898 ax_boost_user_system_lib=""
22899 else
22900 want_boost="yes"
22901 ax_boost_user_system_lib="$withval"
22902 fi
22903
22904 else
22905 want_boost="yes"
22906
22907 fi
22908
22909
22910 if test "x$want_boost" = "xyes"; then
22911
22912
22913 CPPFLAGS_SAVED="$CPPFLAGS"
22914 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
22915 export CPPFLAGS
22916
22917 LDFLAGS_SAVED="$LDFLAGS"
22918 LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
22919 export LDFLAGS
22920
22921 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Boost::System library is available" >&5
22922 $as_echo_n "checking whether the Boost::System library is available... " >&6; }
22923 if ${ax_cv_boost_system+:} false; then :
22924 $as_echo_n "(cached) " >&6
22925 else
22926 ac_ext=cpp
22927 ac_cpp='$CXXCPP $CPPFLAGS'
22928 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
22929 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
22930 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
22931
22932 CXXFLAGS_SAVE=$CXXFLAGS
22933
22934 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
22935 /* end confdefs.h. */
22936 #include <boost/system/error_code.hpp>
22937 #ifdef FC_DUMMY_MAIN
22938 #ifndef FC_DUMMY_MAIN_EQ_F77
22939 # ifdef __cplusplus
22940 extern "C"
22941 # endif
22942 int FC_DUMMY_MAIN() { return 1; }
22943 #endif
22944 #endif
22945 int
22946 main ()
22947 {
22948 boost::system::system_category
22949 ;
22950 return 0;
22951 }
22952 _ACEOF
22953 if ac_fn_cxx_try_compile "$LINENO"; then :
22954 ax_cv_boost_system=yes
22955 else
22956 ax_cv_boost_system=no
22957 fi
22958 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
22959 CXXFLAGS=$CXXFLAGS_SAVE
22960 ac_ext=cpp
22961 ac_cpp='$CXXCPP $CPPFLAGS'
22962 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
22963 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
22964 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
22965
22966
22967 fi
22968 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_boost_system" >&5
22969 $as_echo "$ax_cv_boost_system" >&6; }
22970 if test "x$ax_cv_boost_system" = "xyes"; then
22971
22972
22973
22974 $as_echo "#define HAVE_BOOST_SYSTEM /**/" >>confdefs.h
22975
22976 BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/[^\/]*//'`
22977
22978 LDFLAGS_SAVE=$LDFLAGS
22979 if test "x$ax_boost_user_system_lib" = "x"; then
22980 for libextension in `ls -r $BOOSTLIBDIR/libboost_system* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do
22981 ax_lib=${libextension}
22982 as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh`
22983 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5
22984 $as_echo_n "checking for exit in -l$ax_lib... " >&6; }
22985 if eval \${$as_ac_Lib+:} false; then :
22986 $as_echo_n "(cached) " >&6
22987 else
22988 ac_check_lib_save_LIBS=$LIBS
22989 LIBS="-l$ax_lib $LIBS"
22990 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
22991 /* end confdefs.h. */
22992
22993 /* Override any GCC internal prototype to avoid an error.
22994 Use char because int might match the return type of a GCC
22995 builtin and then its argument prototype would still apply. */
22996 #ifdef __cplusplus
22997 extern "C"
22998 #endif
22999 char exit ();
23000 #ifdef FC_DUMMY_MAIN
23001 #ifndef FC_DUMMY_MAIN_EQ_F77
23002 # ifdef __cplusplus
23003 extern "C"
23004 # endif
23005 int FC_DUMMY_MAIN() { return 1; }
23006 #endif
23007 #endif
23008 int
23009 main ()
23010 {
23011 return exit ();
23012 ;
23013 return 0;
23014 }
23015 _ACEOF
23016 if ac_fn_cxx_try_link "$LINENO"; then :
23017 eval "$as_ac_Lib=yes"
23018 else
23019 eval "$as_ac_Lib=no"
23020 fi
23021 rm -f core conftest.err conftest.$ac_objext \
23022 conftest$ac_exeext conftest.$ac_ext
23023 LIBS=$ac_check_lib_save_LIBS
23024 fi
23025 eval ac_res=\$$as_ac_Lib
23026 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
23027 $as_echo "$ac_res" >&6; }
23028 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
23029 BOOST_SYSTEM_LIB="-l$ax_lib"; link_system="yes"; break
23030 else
23031 link_system="no"
23032 fi
23033
23034 done
23035 if test "x$link_system" != "xyes"; then
23036 for libextension in `ls -r $BOOSTLIBDIR/boost_system* 2>/dev/null | sed 's,.*/,,' | sed -e 's,\..*,,'` ; do
23037 ax_lib=${libextension}
23038 as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh`
23039 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5
23040 $as_echo_n "checking for exit in -l$ax_lib... " >&6; }
23041 if eval \${$as_ac_Lib+:} false; then :
23042 $as_echo_n "(cached) " >&6
23043 else
23044 ac_check_lib_save_LIBS=$LIBS
23045 LIBS="-l$ax_lib $LIBS"
23046 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
23047 /* end confdefs.h. */
23048
23049 /* Override any GCC internal prototype to avoid an error.
23050 Use char because int might match the return type of a GCC
23051 builtin and then its argument prototype would still apply. */
23052 #ifdef __cplusplus
23053 extern "C"
23054 #endif
23055 char exit ();
23056 #ifdef FC_DUMMY_MAIN
23057 #ifndef FC_DUMMY_MAIN_EQ_F77
23058 # ifdef __cplusplus
23059 extern "C"
23060 # endif
23061 int FC_DUMMY_MAIN() { return 1; }
23062 #endif
23063 #endif
23064 int
23065 main ()
23066 {
23067 return exit ();
23068 ;
23069 return 0;
23070 }
23071 _ACEOF
23072 if ac_fn_cxx_try_link "$LINENO"; then :
23073 eval "$as_ac_Lib=yes"
23074 else
23075 eval "$as_ac_Lib=no"
23076 fi
23077 rm -f core conftest.err conftest.$ac_objext \
23078 conftest$ac_exeext conftest.$ac_ext
23079 LIBS=$ac_check_lib_save_LIBS
23080 fi
23081 eval ac_res=\$$as_ac_Lib
23082 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
23083 $as_echo "$ac_res" >&6; }
23084 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
23085 BOOST_SYSTEM_LIB="-l$ax_lib"; link_system="yes"; break
23086 else
23087 link_system="no"
23088 fi
23089
23090 done
23091 fi
23092
23093 else
23094 for ax_lib in $ax_boost_user_system_lib boost_system-$ax_boost_user_system_lib; do
23095 as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh`
23096 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5
23097 $as_echo_n "checking for exit in -l$ax_lib... " >&6; }
23098 if eval \${$as_ac_Lib+:} false; then :
23099 $as_echo_n "(cached) " >&6
23100 else
23101 ac_check_lib_save_LIBS=$LIBS
23102 LIBS="-l$ax_lib $LIBS"
23103 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
23104 /* end confdefs.h. */
23105
23106 /* Override any GCC internal prototype to avoid an error.
23107 Use char because int might match the return type of a GCC
23108 builtin and then its argument prototype would still apply. */
23109 #ifdef __cplusplus
23110 extern "C"
23111 #endif
23112 char exit ();
23113 #ifdef FC_DUMMY_MAIN
23114 #ifndef FC_DUMMY_MAIN_EQ_F77
23115 # ifdef __cplusplus
23116 extern "C"
23117 # endif
23118 int FC_DUMMY_MAIN() { return 1; }
23119 #endif
23120 #endif
23121 int
23122 main ()
23123 {
23124 return exit ();
23125 ;
23126 return 0;
23127 }
23128 _ACEOF
23129 if ac_fn_cxx_try_link "$LINENO"; then :
23130 eval "$as_ac_Lib=yes"
23131 else
23132 eval "$as_ac_Lib=no"
23133 fi
23134 rm -f core conftest.err conftest.$ac_objext \
23135 conftest$ac_exeext conftest.$ac_ext
23136 LIBS=$ac_check_lib_save_LIBS
23137 fi
23138 eval ac_res=\$$as_ac_Lib
23139 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
23140 $as_echo "$ac_res" >&6; }
23141 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
23142 BOOST_SYSTEM_LIB="-l$ax_lib"; link_system="yes"; break
23143 else
23144 link_system="no"
23145 fi
23146
23147 done
23148
23149 fi
23150 if test "x$ax_lib" = "x"; then
23151 as_fn_error $? "Could not find a version of the library!" "$LINENO" 5
23152 fi
23153 if test "x$link_system" = "xno"; then
23154 as_fn_error $? "Could not link against $ax_lib !" "$LINENO" 5
23155 fi
23156 fi
23157
23158 CPPFLAGS="$CPPFLAGS_SAVED"
23159 LDFLAGS="$LDFLAGS_SAVED"
23160 fi
23161
23162
23163
23164 # Check whether --with-boost-thread was given.
23165 if test "${with_boost_thread+set}" = set; then :
23166 withval=$with_boost_thread;
23167 if test "$withval" = "no"; then
23168 want_boost="no"
23169 elif test "$withval" = "yes"; then
23170 want_boost="yes"
23171 ax_boost_user_thread_lib=""
23172 else
23173 want_boost="yes"
23174 ax_boost_user_thread_lib="$withval"
23175 fi
23176
23177 else
23178 want_boost="yes"
23179
23180 fi
23181
23182
23183 if test "x$want_boost" = "xyes"; then
23184
23185
23186 CPPFLAGS_SAVED="$CPPFLAGS"
23187 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
23188 export CPPFLAGS
23189
23190 LDFLAGS_SAVED="$LDFLAGS"
23191 LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
23192 export LDFLAGS
23193
23194 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Boost::Thread library is available" >&5
23195 $as_echo_n "checking whether the Boost::Thread library is available... " >&6; }
23196 if ${ax_cv_boost_thread+:} false; then :
23197 $as_echo_n "(cached) " >&6
23198 else
23199 ac_ext=cpp
23200 ac_cpp='$CXXCPP $CPPFLAGS'
23201 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
23202 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
23203 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
23204
23205 CXXFLAGS_SAVE=$CXXFLAGS
23206
23207 if test "x$host_os" = "xsolaris" ; then
23208 CXXFLAGS="-pthreads $CXXFLAGS"
23209 elif test "x$host_os" = "xmingw32" ; then
23210 CXXFLAGS="-mthreads $CXXFLAGS"
23211 else
23212 CXXFLAGS="-pthread $CXXFLAGS"
23213 fi
23214 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
23215 /* end confdefs.h. */
23216 #include <boost/thread/thread.hpp>
23217 #ifdef FC_DUMMY_MAIN
23218 #ifndef FC_DUMMY_MAIN_EQ_F77
23219 # ifdef __cplusplus
23220 extern "C"
23221 # endif
23222 int FC_DUMMY_MAIN() { return 1; }
23223 #endif
23224 #endif
23225 int
23226 main ()
23227 {
23228 boost::thread_group thrds;
23229 return 0;
23230 ;
23231 return 0;
23232 }
23233 _ACEOF
23234 if ac_fn_cxx_try_compile "$LINENO"; then :
23235 ax_cv_boost_thread=yes
23236 else
23237 ax_cv_boost_thread=no
23238 fi
23239 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
23240 CXXFLAGS=$CXXFLAGS_SAVE
23241 ac_ext=cpp
23242 ac_cpp='$CXXCPP $CPPFLAGS'
23243 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
23244 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
23245 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
23246
23247
23248 fi
23249 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_boost_thread" >&5
23250 $as_echo "$ax_cv_boost_thread" >&6; }
23251 if test "x$ax_cv_boost_thread" = "xyes"; then
23252 if test "x$host_os" = "xsolaris" ; then
23253 BOOST_CPPFLAGS="-pthreads $BOOST_CPPFLAGS"
23254 elif test "x$host_os" = "xmingw32" ; then
23255 BOOST_CPPFLAGS="-mthreads $BOOST_CPPFLAGS"
23256 else
23257 BOOST_CPPFLAGS="-pthread $BOOST_CPPFLAGS"
23258 fi
23259
23260
23261
23262
23263 $as_echo "#define HAVE_BOOST_THREAD /**/" >>confdefs.h
23264
23265 BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/[^\/]*//'`
23266
23267 LDFLAGS_SAVE=$LDFLAGS
23268 case "x$host_os" in
23269 *bsd* )
23270 LDFLAGS="-pthread $LDFLAGS"
23271 break;
23272 ;;
23273 esac
23274 if test "x$ax_boost_user_thread_lib" = "x"; then
23275 for libextension in `ls -r $BOOSTLIBDIR/libboost_thread* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'`; do
23276 ax_lib=${libextension}
23277 as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh`
23278 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5
23279 $as_echo_n "checking for exit in -l$ax_lib... " >&6; }
23280 if eval \${$as_ac_Lib+:} false; then :
23281 $as_echo_n "(cached) " >&6
23282 else
23283 ac_check_lib_save_LIBS=$LIBS
23284 LIBS="-l$ax_lib $LIBS"
23285 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
23286 /* end confdefs.h. */
23287
23288 /* Override any GCC internal prototype to avoid an error.
23289 Use char because int might match the return type of a GCC
23290 builtin and then its argument prototype would still apply. */
23291 #ifdef __cplusplus
23292 extern "C"
23293 #endif
23294 char exit ();
23295 #ifdef FC_DUMMY_MAIN
23296 #ifndef FC_DUMMY_MAIN_EQ_F77
23297 # ifdef __cplusplus
23298 extern "C"
23299 # endif
23300 int FC_DUMMY_MAIN() { return 1; }
23301 #endif
23302 #endif
23303 int
23304 main ()
23305 {
23306 return exit ();
23307 ;
23308 return 0;
23309 }
23310 _ACEOF
23311 if ac_fn_cxx_try_link "$LINENO"; then :
23312 eval "$as_ac_Lib=yes"
23313 else
23314 eval "$as_ac_Lib=no"
23315 fi
23316 rm -f core conftest.err conftest.$ac_objext \
23317 conftest$ac_exeext conftest.$ac_ext
23318 LIBS=$ac_check_lib_save_LIBS
23319 fi
23320 eval ac_res=\$$as_ac_Lib
23321 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
23322 $as_echo "$ac_res" >&6; }
23323 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
23324 BOOST_THREAD_LIB="-l$ax_lib"; link_thread="yes"; break
23325 else
23326 link_thread="no"
23327 fi
23328
23329 done
23330 if test "x$link_thread" != "xyes"; then
23331 for libextension in `ls -r $BOOSTLIBDIR/boost_thread* 2>/dev/null | sed 's,.*/,,' | sed 's,\..*,,'`; do
23332 ax_lib=${libextension}
23333 as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh`
23334 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5
23335 $as_echo_n "checking for exit in -l$ax_lib... " >&6; }
23336 if eval \${$as_ac_Lib+:} false; then :
23337 $as_echo_n "(cached) " >&6
23338 else
23339 ac_check_lib_save_LIBS=$LIBS
23340 LIBS="-l$ax_lib $LIBS"
23341 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
23342 /* end confdefs.h. */
23343
23344 /* Override any GCC internal prototype to avoid an error.
23345 Use char because int might match the return type of a GCC
23346 builtin and then its argument prototype would still apply. */
23347 #ifdef __cplusplus
23348 extern "C"
23349 #endif
23350 char exit ();
23351 #ifdef FC_DUMMY_MAIN
23352 #ifndef FC_DUMMY_MAIN_EQ_F77
23353 # ifdef __cplusplus
23354 extern "C"
23355 # endif
23356 int FC_DUMMY_MAIN() { return 1; }
23357 #endif
23358 #endif
23359 int
23360 main ()
23361 {
23362 return exit ();
23363 ;
23364 return 0;
23365 }
23366 _ACEOF
23367 if ac_fn_cxx_try_link "$LINENO"; then :
23368 eval "$as_ac_Lib=yes"
23369 else
23370 eval "$as_ac_Lib=no"
23371 fi
23372 rm -f core conftest.err conftest.$ac_objext \
23373 conftest$ac_exeext conftest.$ac_ext
23374 LIBS=$ac_check_lib_save_LIBS
23375 fi
23376 eval ac_res=\$$as_ac_Lib
23377 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
23378 $as_echo "$ac_res" >&6; }
23379 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
23380 BOOST_THREAD_LIB="-l$ax_lib"; link_thread="yes"; break
23381 else
23382 link_thread="no"
23383 fi
23384
23385 done
23386 fi
23387
23388 else
23389 for ax_lib in $ax_boost_user_thread_lib boost_thread-$ax_boost_user_thread_lib; do
23390 as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh`
23391 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5
23392 $as_echo_n "checking for exit in -l$ax_lib... " >&6; }
23393 if eval \${$as_ac_Lib+:} false; then :
23394 $as_echo_n "(cached) " >&6
23395 else
23396 ac_check_lib_save_LIBS=$LIBS
23397 LIBS="-l$ax_lib $LIBS"
23398 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
23399 /* end confdefs.h. */
23400
23401 /* Override any GCC internal prototype to avoid an error.
23402 Use char because int might match the return type of a GCC
23403 builtin and then its argument prototype would still apply. */
23404 #ifdef __cplusplus
23405 extern "C"
23406 #endif
23407 char exit ();
23408 #ifdef FC_DUMMY_MAIN
23409 #ifndef FC_DUMMY_MAIN_EQ_F77
23410 # ifdef __cplusplus
23411 extern "C"
23412 # endif
23413 int FC_DUMMY_MAIN() { return 1; }
23414 #endif
23415 #endif
23416 int
23417 main ()
23418 {
23419 return exit ();
23420 ;
23421 return 0;
23422 }
23423 _ACEOF
23424 if ac_fn_cxx_try_link "$LINENO"; then :
23425 eval "$as_ac_Lib=yes"
23426 else
23427 eval "$as_ac_Lib=no"
23428 fi
23429 rm -f core conftest.err conftest.$ac_objext \
23430 conftest$ac_exeext conftest.$ac_ext
23431 LIBS=$ac_check_lib_save_LIBS
23432 fi
23433 eval ac_res=\$$as_ac_Lib
23434 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
23435 $as_echo "$ac_res" >&6; }
23436 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
23437 BOOST_THREAD_LIB="-l$ax_lib"; link_thread="yes"; break
23438 else
23439 link_thread="no"
23440 fi
23441
23442 done
23443
23444 fi
23445 if test "x$ax_lib" = "x"; then
23446 as_fn_error $? "Could not find a version of the library!" "$LINENO" 5
23447 fi
23448 if test "x$link_thread" = "xno"; then
23449 as_fn_error $? "Could not link against $ax_lib !" "$LINENO" 5
23450 else
23451 case "x$host_os" in
23452 *bsd* )
23453 BOOST_LDFLAGS="-pthread $BOOST_LDFLAGS"
23454 break;
23455 ;;
23456 esac
23457
23458 fi
23459 fi
23460
23461 CPPFLAGS="$CPPFLAGS_SAVED"
23462 LDFLAGS="$LDFLAGS_SAVED"
23463 fi
23464
23465 else
23466
23467
23468 # Check whether --with-boost was given.
23469 if test "${with_boost+set}" = set; then :
23470 withval=$with_boost;
23471 if test "$withval" = "no"; then
23472 want_boost="no"
23473 elif test "$withval" = "yes"; then
23474 want_boost="yes"
23475 ac_boost_path=""
23476 else
23477 want_boost="yes"
23478 ac_boost_path="$withval"
23479 fi
23480
23481 else
23482 want_boost="yes"
23483 fi
23484
23485
23486
23487
23488 # Check whether --with-boost-libdir was given.
23489 if test "${with_boost_libdir+set}" = set; then :
23490 withval=$with_boost_libdir;
23491 if test -d "$withval"
23492 then
23493 ac_boost_lib_path="$withval"
23494 else
23495 as_fn_error $? "--with-boost-libdir expected directory name" "$LINENO" 5
23496 fi
23497
23498 else
23499 ac_boost_lib_path=""
23500
23501 fi
23502
23503
23504 if test "x$want_boost" = "xyes"; then
23505 boost_lib_version_req=1.20.0
23506 boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([0-9]*\.[0-9]*\)'`
23507 boost_lib_version_req_major=`expr $boost_lib_version_req : '\([0-9]*\)'`
23508 boost_lib_version_req_minor=`expr $boost_lib_version_req : '[0-9]*\.\([0-9]*\)'`
23509 boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
23510 if test "x$boost_lib_version_req_sub_minor" = "x" ; then
23511 boost_lib_version_req_sub_minor="0"
23512 fi
23513 WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+ $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor`
23514 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for boostlib >= $boost_lib_version_req" >&5
23515 $as_echo_n "checking for boostlib >= $boost_lib_version_req... " >&6; }
23516 succeeded=no
23517
23518 libsubdirs="lib"
23519 ax_arch=`uname -m`
23520 case $ax_arch in
23521 x86_64|ppc64|s390x|sparc64|aarch64)
23522 libsubdirs="lib64 lib lib64"
23523 ;;
23524 esac
23525
23526
23527 libsubdirs="lib/${host_cpu}-${host_os} $libsubdirs"
23528
23529 case ${host_cpu} in
23530 i?86)
23531 libsubdirs="lib/i386-${host_os} $libsubdirs"
23532 ;;
23533 esac
23534
23535 if test "$ac_boost_path" != ""; then
23536 BOOST_CPPFLAGS="-I$ac_boost_path/include"
23537 for ac_boost_path_tmp in $libsubdirs; do
23538 if test -d "$ac_boost_path"/"$ac_boost_path_tmp" ; then
23539 BOOST_LDFLAGS="-L$ac_boost_path/$ac_boost_path_tmp"
23540 break
23541 fi
23542 done
23543 elif test "$cross_compiling" != yes; then
23544 for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
23545 if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then
23546 for libsubdir in $libsubdirs ; do
23547 if ls "$ac_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
23548 done
23549 BOOST_LDFLAGS="-L$ac_boost_path_tmp/$libsubdir"
23550 BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include"
23551 break;
23552 fi
23553 done
23554 fi
23555
23556 if test "$ac_boost_lib_path" != ""; then
23557 BOOST_LDFLAGS="-L$ac_boost_lib_path"
23558 fi
23559
23560 CPPFLAGS_SAVED="$CPPFLAGS"
23561 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
23562 export CPPFLAGS
23563
23564 LDFLAGS_SAVED="$LDFLAGS"
23565 LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
23566 export LDFLAGS
23567
23568
23569 ac_ext=cpp
23570 ac_cpp='$CXXCPP $CPPFLAGS'
23571 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
23572 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
23573 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
23574
23575 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
23576 /* end confdefs.h. */
23577
23578 #include <boost/version.hpp>
23579
23580 #ifdef FC_DUMMY_MAIN
23581 #ifndef FC_DUMMY_MAIN_EQ_F77
23582 # ifdef __cplusplus
23583 extern "C"
23584 # endif
23585 int FC_DUMMY_MAIN() { return 1; }
23586 #endif
23587 #endif
23588 int
23589 main ()
23590 {
23591
23592 #if BOOST_VERSION >= $WANT_BOOST_VERSION
23593 // Everything is okay
23594 #else
23595 # error Boost version is too old
23596 #endif
23597
23598 ;
23599 return 0;
23600 }
23601 _ACEOF
23602 if ac_fn_cxx_try_compile "$LINENO"; then :
23603
23604 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
23605 $as_echo "yes" >&6; }
23606 succeeded=yes
23607 found_system=yes
23608
23609 fi
23610 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
23611 ac_ext=cpp
23612 ac_cpp='$CXXCPP $CPPFLAGS'
23613 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
23614 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
23615 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
23616
23617
23618
23619
23620 if test "x$succeeded" != "xyes"; then
23621 _version=0
23622 if test "$ac_boost_path" != ""; then
23623 if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
23624 for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
23625 _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
23626 V_CHECK=`expr $_version_tmp \> $_version`
23627 if test "$V_CHECK" = "1" ; then
23628 _version=$_version_tmp
23629 fi
23630 VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
23631 BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE"
23632 done
23633 fi
23634 else
23635 if test "$cross_compiling" != yes; then
23636 for ac_boost_path in /usr /usr/local /opt /opt/local ; do
23637 if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
23638 for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
23639 _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
23640 V_CHECK=`expr $_version_tmp \> $_version`
23641 if test "$V_CHECK" = "1" ; then
23642 _version=$_version_tmp
23643 best_path=$ac_boost_path
23644 fi
23645 done
23646 fi
23647 done
23648
23649 VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
23650 BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
23651 if test "$ac_boost_lib_path" = ""; then
23652 for libsubdir in $libsubdirs ; do
23653 if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
23654 done
23655 BOOST_LDFLAGS="-L$best_path/$libsubdir"
23656 fi
23657 fi
23658
23659 if test "x$BOOST_ROOT" != "x"; then
23660 for libsubdir in $libsubdirs ; do
23661 if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi
23662 done
23663 if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then
23664 version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
23665 stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
23666 stage_version_shorten=`expr $stage_version : '\([0-9]*\.[0-9]*\)'`
23667 V_CHECK=`expr $stage_version_shorten \>\= $_version`
23668 if test "$V_CHECK" = "1" -a "$ac_boost_lib_path" = "" ; then
23669 { $as_echo "$as_me:${as_lineno-$LINENO}: We will use a staged boost library from $BOOST_ROOT" >&5
23670 $as_echo "$as_me: We will use a staged boost library from $BOOST_ROOT" >&6;}
23671 BOOST_CPPFLAGS="-I$BOOST_ROOT"
23672 BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir"
23673 fi
23674 fi
23675 fi
23676 fi
23677
23678 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
23679 export CPPFLAGS
23680 LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
23681 export LDFLAGS
23682
23683 ac_ext=cpp
23684 ac_cpp='$CXXCPP $CPPFLAGS'
23685 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
23686 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
23687 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
23688
23689 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
23690 /* end confdefs.h. */
23691
23692 #include <boost/version.hpp>
23693
23694 #ifdef FC_DUMMY_MAIN
23695 #ifndef FC_DUMMY_MAIN_EQ_F77
23696 # ifdef __cplusplus
23697 extern "C"
23698 # endif
23699 int FC_DUMMY_MAIN() { return 1; }
23700 #endif
23701 #endif
23702 int
23703 main ()
23704 {
23705
23706 #if BOOST_VERSION >= $WANT_BOOST_VERSION
23707 // Everything is okay
23708 #else
23709 # error Boost version is too old
23710 #endif
23711
23712 ;
23713 return 0;
23714 }
23715 _ACEOF
23716 if ac_fn_cxx_try_compile "$LINENO"; then :
23717
23718 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
23719 $as_echo "yes" >&6; }
23720 succeeded=yes
23721 found_system=yes
23722
23723 fi
23724 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
23725 ac_ext=cpp
23726 ac_cpp='$CXXCPP $CPPFLAGS'
23727 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
23728 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
23729 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
23730
23731 fi
23732
23733 if test "$succeeded" != "yes" ; then
23734 if test "$_version" = "0" ; then
23735 { $as_echo "$as_me:${as_lineno-$LINENO}: We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation." >&5
23736 $as_echo "$as_me: We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation." >&6;}
23737 else
23738 { $as_echo "$as_me:${as_lineno-$LINENO}: Your boost libraries seems to old (version $_version)." >&5
23739 $as_echo "$as_me: Your boost libraries seems to old (version $_version)." >&6;}
23740 fi
23741 # execute ACTION-IF-NOT-FOUND (if present):
23742 as_fn_error $? "Please install boost >= 1.20.0 (system) or use --enable-boost=no to disable it" "$LINENO" 5
23743 else
23744
23745
23746
23747 $as_echo "#define HAVE_BOOST /**/" >>confdefs.h
23748
23749 # execute ACTION-IF-FOUND (if present):
23750 :
23751 fi
23752
23753 CPPFLAGS="$CPPFLAGS_SAVED"
23754 LDFLAGS="$LDFLAGS_SAVED"
23755 fi
23756
23757
23758
23759
23760 # Check whether --with-boost-system was given.
23761 if test "${with_boost_system+set}" = set; then :
23762 withval=$with_boost_system;
23763 if test "$withval" = "no"; then
23764 want_boost="no"
23765 elif test "$withval" = "yes"; then
23766 want_boost="yes"
23767 ax_boost_user_system_lib=""
23768 else
23769 want_boost="yes"
23770 ax_boost_user_system_lib="$withval"
23771 fi
23772
23773 else
23774 want_boost="yes"
23775
23776 fi
23777
23778
23779 if test "x$want_boost" = "xyes"; then
23780
23781
23782 CPPFLAGS_SAVED="$CPPFLAGS"
23783 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
23784 export CPPFLAGS
23785
23786 LDFLAGS_SAVED="$LDFLAGS"
23787 LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
23788 export LDFLAGS
23789
23790 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Boost::System library is available" >&5
23791 $as_echo_n "checking whether the Boost::System library is available... " >&6; }
23792 if ${ax_cv_boost_system+:} false; then :
23793 $as_echo_n "(cached) " >&6
23794 else
23795 ac_ext=cpp
23796 ac_cpp='$CXXCPP $CPPFLAGS'
23797 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
23798 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
23799 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
23800
23801 CXXFLAGS_SAVE=$CXXFLAGS
23802
23803 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
23804 /* end confdefs.h. */
23805 #include <boost/system/error_code.hpp>
23806 #ifdef FC_DUMMY_MAIN
23807 #ifndef FC_DUMMY_MAIN_EQ_F77
23808 # ifdef __cplusplus
23809 extern "C"
23810 # endif
23811 int FC_DUMMY_MAIN() { return 1; }
23812 #endif
23813 #endif
23814 int
23815 main ()
23816 {
23817 boost::system::system_category
23818 ;
23819 return 0;
23820 }
23821 _ACEOF
23822 if ac_fn_cxx_try_compile "$LINENO"; then :
23823 ax_cv_boost_system=yes
23824 else
23825 ax_cv_boost_system=no
23826 fi
23827 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
23828 CXXFLAGS=$CXXFLAGS_SAVE
23829 ac_ext=cpp
23830 ac_cpp='$CXXCPP $CPPFLAGS'
23831 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
23832 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
23833 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
23834
23835
23836 fi
23837 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_boost_system" >&5
23838 $as_echo "$ax_cv_boost_system" >&6; }
23839 if test "x$ax_cv_boost_system" = "xyes"; then
23840
23841
23842
23843 $as_echo "#define HAVE_BOOST_SYSTEM /**/" >>confdefs.h
23844
23845 BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/[^\/]*//'`
23846
23847 LDFLAGS_SAVE=$LDFLAGS
23848 if test "x$ax_boost_user_system_lib" = "x"; then
23849 for libextension in `ls -r $BOOSTLIBDIR/libboost_system* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do
23850 ax_lib=${libextension}
23851 as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh`
23852 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5
23853 $as_echo_n "checking for exit in -l$ax_lib... " >&6; }
23854 if eval \${$as_ac_Lib+:} false; then :
23855 $as_echo_n "(cached) " >&6
23856 else
23857 ac_check_lib_save_LIBS=$LIBS
23858 LIBS="-l$ax_lib $LIBS"
23859 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
23860 /* end confdefs.h. */
23861
23862 /* Override any GCC internal prototype to avoid an error.
23863 Use char because int might match the return type of a GCC
23864 builtin and then its argument prototype would still apply. */
23865 #ifdef __cplusplus
23866 extern "C"
23867 #endif
23868 char exit ();
23869 #ifdef FC_DUMMY_MAIN
23870 #ifndef FC_DUMMY_MAIN_EQ_F77
23871 # ifdef __cplusplus
23872 extern "C"
23873 # endif
23874 int FC_DUMMY_MAIN() { return 1; }
23875 #endif
23876 #endif
23877 int
23878 main ()
23879 {
23880 return exit ();
23881 ;
23882 return 0;
23883 }
23884 _ACEOF
23885 if ac_fn_cxx_try_link "$LINENO"; then :
23886 eval "$as_ac_Lib=yes"
23887 else
23888 eval "$as_ac_Lib=no"
23889 fi
23890 rm -f core conftest.err conftest.$ac_objext \
23891 conftest$ac_exeext conftest.$ac_ext
23892 LIBS=$ac_check_lib_save_LIBS
23893 fi
23894 eval ac_res=\$$as_ac_Lib
23895 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
23896 $as_echo "$ac_res" >&6; }
23897 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
23898 BOOST_SYSTEM_LIB="-l$ax_lib"; link_system="yes"; break
23899 else
23900 link_system="no"
23901 fi
23902
23903 done
23904 if test "x$link_system" != "xyes"; then
23905 for libextension in `ls -r $BOOSTLIBDIR/boost_system* 2>/dev/null | sed 's,.*/,,' | sed -e 's,\..*,,'` ; do
23906 ax_lib=${libextension}
23907 as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh`
23908 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5
23909 $as_echo_n "checking for exit in -l$ax_lib... " >&6; }
23910 if eval \${$as_ac_Lib+:} false; then :
23911 $as_echo_n "(cached) " >&6
23912 else
23913 ac_check_lib_save_LIBS=$LIBS
23914 LIBS="-l$ax_lib $LIBS"
23915 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
23916 /* end confdefs.h. */
23917
23918 /* Override any GCC internal prototype to avoid an error.
23919 Use char because int might match the return type of a GCC
23920 builtin and then its argument prototype would still apply. */
23921 #ifdef __cplusplus
23922 extern "C"
23923 #endif
23924 char exit ();
23925 #ifdef FC_DUMMY_MAIN
23926 #ifndef FC_DUMMY_MAIN_EQ_F77
23927 # ifdef __cplusplus
23928 extern "C"
23929 # endif
23930 int FC_DUMMY_MAIN() { return 1; }
23931 #endif
23932 #endif
23933 int
23934 main ()
23935 {
23936 return exit ();
23937 ;
23938 return 0;
23939 }
23940 _ACEOF
23941 if ac_fn_cxx_try_link "$LINENO"; then :
23942 eval "$as_ac_Lib=yes"
23943 else
23944 eval "$as_ac_Lib=no"
23945 fi
23946 rm -f core conftest.err conftest.$ac_objext \
23947 conftest$ac_exeext conftest.$ac_ext
23948 LIBS=$ac_check_lib_save_LIBS
23949 fi
23950 eval ac_res=\$$as_ac_Lib
23951 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
23952 $as_echo "$ac_res" >&6; }
23953 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
23954 BOOST_SYSTEM_LIB="-l$ax_lib"; link_system="yes"; break
23955 else
23956 link_system="no"
23957 fi
23958
23959 done
23960 fi
23961
23962 else
23963 for ax_lib in $ax_boost_user_system_lib boost_system-$ax_boost_user_system_lib; do
23964 as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh`
23965 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exit in -l$ax_lib" >&5
23966 $as_echo_n "checking for exit in -l$ax_lib... " >&6; }
23967 if eval \${$as_ac_Lib+:} false; then :
23968 $as_echo_n "(cached) " >&6
23969 else
23970 ac_check_lib_save_LIBS=$LIBS
23971 LIBS="-l$ax_lib $LIBS"
23972 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
23973 /* end confdefs.h. */
23974
23975 /* Override any GCC internal prototype to avoid an error.
23976 Use char because int might match the return type of a GCC
23977 builtin and then its argument prototype would still apply. */
23978 #ifdef __cplusplus
23979 extern "C"
23980 #endif
23981 char exit ();
23982 #ifdef FC_DUMMY_MAIN
23983 #ifndef FC_DUMMY_MAIN_EQ_F77
23984 # ifdef __cplusplus
23985 extern "C"
23986 # endif
23987 int FC_DUMMY_MAIN() { return 1; }
23988 #endif
23989 #endif
23990 int
23991 main ()
23992 {
23993 return exit ();
23994 ;
23995 return 0;
23996 }
23997 _ACEOF
23998 if ac_fn_cxx_try_link "$LINENO"; then :
23999 eval "$as_ac_Lib=yes"
24000 else
24001 eval "$as_ac_Lib=no"
24002 fi
24003 rm -f core conftest.err conftest.$ac_objext \
24004 conftest$ac_exeext conftest.$ac_ext
24005 LIBS=$ac_check_lib_save_LIBS
24006 fi
24007 eval ac_res=\$$as_ac_Lib
24008 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
24009 $as_echo "$ac_res" >&6; }
24010 if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
24011 BOOST_SYSTEM_LIB="-l$ax_lib"; link_system="yes"; break
24012 else
24013 link_system="no"
24014 fi
24015
24016 done
24017
24018 fi
24019 if test "x$ax_lib" = "x"; then
24020 as_fn_error $? "Could not find a version of the library!" "$LINENO" 5
24021 fi
24022 if test "x$link_system" = "xno"; then
24023 as_fn_error $? "Could not link against $ax_lib !" "$LINENO" 5
24024 fi
24025 fi
24026
24027 CPPFLAGS="$CPPFLAGS_SAVED"
24028 LDFLAGS="$LDFLAGS_SAVED"
24029 fi
24030
24031 fi;
24032 BOOST_LIBS="$BOOST_SYSTEM_LIB $BOOST_THREAD_LIB"
24033
24034 fi;
24035
24036
24037
24038 # list of pseudo functions
24039 PSEUDO_FUNCTIONS_LOC=`$srcdir/bin/extract_doc $srcdir/interface/src pseudo_loc`
24040 echo $PSEUDO_FUNCTIONS_LOC
24041 PSEUDO_FUNCTIONS=`$srcdir/bin/extract_doc $srcdir/interface/src pseudo_gen`
24042 MATLAB_OBJ_DIRS=`$srcdir/bin/extract_doc $srcdir/interface/src mobj_dirs`
24043
24044
24045
24046
24047 # Check whether --enable-matlab was given.
24048 if test "${enable_matlab+set}" = set; then :
24049 enableval=$enable_matlab; case "${enableval}" in
24050 yes) usematlab=YES ;;
24051 no) usematlab=NO ;;
24052 *) as_fn_error $? "bad value ${enableval} for --enable-matlab" "$LINENO" 5 ;;
24053 esac
24054 else
24055 usematlab=NO
24056 fi
24057
24058
24059
24060 # Check whether --with-matlab-toolbox-dir was given.
24061 if test "${with_matlab_toolbox_dir+set}" = set; then :
24062 withval=$with_matlab_toolbox_dir; TOOLBOXDIR="$withval"
24063 else
24064 TOOLBOXDIR="$GFPREFIX/getfem_toolbox"
24065 fi
24066
24067
24068
24069 # Check whether --enable-python was given.
24070 if test "${enable_python+set}" = set; then :
24071 enableval=$enable_python; case "${enableval}" in
24072 yes) usepython=YES ;;
24073 no) usepython=NO ;;
24074 *) as_fn_error $? "bad value ${enableval} for --enable-python" "$LINENO" 5 ;;
24075 esac
24076 else
24077 usepython=YES
24078 fi
24079
24080
24081 if test "$usematlab" != NO; then
24082 for ac_prog in mex
24083 do
24084 # Extract the first word of "$ac_prog", so it can be a program name with args.
24085 set dummy $ac_prog; ac_word=$2
24086 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
24087 $as_echo_n "checking for $ac_word... " >&6; }
24088 if ${ac_cv_prog_MEX+:} false; then :
24089 $as_echo_n "(cached) " >&6
24090 else
24091 if test -n "$MEX"; then
24092 ac_cv_prog_MEX="$MEX" # Let the user override the test.
24093 else
24094 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
24095 for as_dir in $PATH
24096 do
24097 IFS=$as_save_IFS
24098 test -z "$as_dir" && as_dir=.
24099 for ac_exec_ext in '' $ac_executable_extensions; do
24100 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
24101 ac_cv_prog_MEX="$ac_prog"
24102 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
24103 break 2
24104 fi
24105 done
24106 done
24107 IFS=$as_save_IFS
24108
24109 fi
24110 fi
24111 MEX=$ac_cv_prog_MEX
24112 if test -n "$MEX"; then
24113 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MEX" >&5
24114 $as_echo "$MEX" >&6; }
24115 else
24116 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
24117 $as_echo "no" >&6; }
24118 fi
24119
24120
24121 test -n "$MEX" && break
24122 done
24123
24124 if test x"$MEX" = x""; then
24125 for ac_prog in mex.bat
24126 do
24127 # Extract the first word of "$ac_prog", so it can be a program name with args.
24128 set dummy $ac_prog; ac_word=$2
24129 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
24130 $as_echo_n "checking for $ac_word... " >&6; }
24131 if ${ac_cv_prog_MEX+:} false; then :
24132 $as_echo_n "(cached) " >&6
24133 else
24134 if test -n "$MEX"; then
24135 ac_cv_prog_MEX="$MEX" # Let the user override the test.
24136 else
24137 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
24138 for as_dir in $PATH
24139 do
24140 IFS=$as_save_IFS
24141 test -z "$as_dir" && as_dir=.
24142 for ac_exec_ext in '' $ac_executable_extensions; do
24143 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
24144 ac_cv_prog_MEX="$ac_prog"
24145 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
24146 break 2
24147 fi
24148 done
24149 done
24150 IFS=$as_save_IFS
24151
24152 fi
24153 fi
24154 MEX=$ac_cv_prog_MEX
24155 if test -n "$MEX"; then
24156 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MEX" >&5
24157 $as_echo "$MEX" >&6; }
24158 else
24159 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
24160 $as_echo "no" >&6; }
24161 fi
24162
24163
24164 test -n "$MEX" && break
24165 done
24166
24167 if test x"$MEX" = x""; then
24168 if test x$usematlab = xYES; then
24169 as_fn_error $? "Impossible to build the matlab interface without mex -- specify its full path with the MEX=/path/to/mex option, or use --enable-matlab-interface=no" "$LINENO" 5
24170 exit 1
24171 fi
24172 else
24173 MEX=gnumex;
24174 MATLAB_COM_EXT=".dll";
24175 echo "You are using Matlab on a windows platform (assuming MingW compiler)";
24176 if test -f gnumex.opts; then
24177 echo "sourcing gnumex.opts.."
24178 source gnumex.opts;
24179 echo "MATLAB_ROOT=$MATLAB_ROOT"
24180 echo "Matlab release is : R$MATLAB_RELEASE"
24181 elif test x$usematlab = xYES; then
24182 echo "You need to fill the gnumex.opts file, for example (use MSys-style paths, not DOS-style paths)"
24183 echo '#!/bin/sh'
24184 echo 'MATLAB_ROOT="c:\\MATLAB6p5"'
24185 echo 'MATLAB_RELEASE=13'
24186 echo 'MATLAB_INC_DIR="$MATLAB_ROOT\\extern\\include"'
24187 echo 'MEXOPTS=c:\\gnumex\\mexopts.bat'
24188 echo "when this is done, check that the gnumex script works correctly"
24189 echo " (i.e. gnumex gnumex.opts -v prints the rights options to use the MinGW gcc)"
24190 exit 1
24191 fi
24192 fi
24193 else
24194 if $(echo "" | $MEX 2>&1 | grep 'This is .*TeX'); then
24195 as_fn_error $? "the mex binary which is in the PATH appears to be part of LaTeX, not matlab !! run ./configure MEX=/path/to/matlab/mex" "$LINENO" 5;
24196 fi;
24197 MATLAB_ROOT=`$MEX -v 2>&1 | grep "MATLAB " | awk '{print $4}'|sed -e '2,$d'`
24198 MATLAB_INC_DIR=$MATLAB_ROOT/extern/include
24199 echo "checking for matlab path... " $MATLAB_ROOT
24200 MATLAB_COM_EXT=`$MEX -v 2>&1 | grep "LDEXTENSION " | awk '{print $3}'`
24201 echo "checking for mex extension... " $MATLAB_COM_EXT
24202 # MATLAB_RELEASE=`grep "MATLAB R" $MATLAB_ROOT/extern/src/mexversion.c | awk '{print $4}' | sed -e 's/R//'`
24203 MATLAB_RELEASE=`grep "full_ver=" $(which $MEX) | sed 's/[^0-9]//g'` # double brackets are for escaping reasons.
24204 echo "Matlab release is : R$MATLAB_RELEASE"
24205 fi
24206 fi
24207 if test x$usematlab = xYES; then
24208 BUILDMEX_TRUE=
24209 BUILDMEX_FALSE='#'
24210 else
24211 BUILDMEX_TRUE='#'
24212 BUILDMEX_FALSE=
24213 fi
24214
24215
24216
24217
24218
24219
24220
24221
24222
24223
24224 if test x"$MATLAB_COM_EXT" = x".dll"; then
24225 USE_MINGW_MEX_TRUE=
24226 USE_MINGW_MEX_FALSE='#'
24227 else
24228 USE_MINGW_MEX_TRUE='#'
24229 USE_MINGW_MEX_FALSE=
24230 fi
24231
24232
24233
24234
24235 GETFEM_SERVER="";
24236 use_rpc="no";
24237 # Check whether --enable-matlab-rpc was given.
24238 if test "${enable_matlab_rpc+set}" = set; then :
24239 enableval=$enable_matlab_rpc; matlab_rpc="yes"; use_rpc="yes";
24240 echo "Matlab mex-file will use sun RPCs in order to communicate with the getfem server"
24241 else
24242 matlab_rpc="no"
24243 fi
24244
24245
24246 if test x$use_rpc = xyes; then
24247 GETFEM_SERVER="getfem_server";
24248
24249 # Check whether --with-rpc-include was given.
24250 if test "${with_rpc_include+set}" = set; then :
24251 withval=$with_rpc_include; RPC_INC_DIR="-I$withval"
24252 else
24253 RPC_INC_DIR=""
24254 fi
24255
24256 case $host in
24257 *alpha*)
24258 RPC_LIB="-lrpc";
24259 ;;
24260 *darwin*)
24261 RPC_LIB="";
24262 ;;
24263 *)
24264 RPC_LIB="-lnsl";
24265 ;;
24266 esac
24267
24268 # Check whether --with-rpc-lib was given.
24269 if test "${with_rpc_lib+set}" = set; then :
24270 withval=$with_rpc_lib; RPC_LIB="$withval"
24271 fi
24272
24273
24274
24275
24276 cat >>confdefs.h <<_ACEOF
24277 #define USE_RPC 1
24278 _ACEOF
24279
24280 fi;
24281
24282 if test x$matlab_rpc = xyes; then
24283 BUILDMEXRPC_TRUE=
24284 BUILDMEXRPC_FALSE='#'
24285 else
24286 BUILDMEXRPC_TRUE='#'
24287 BUILDMEXRPC_FALSE=
24288 fi
24289
24290
24291
24292 STDCPP_STATICLIBS=""
24293
24294 if test $usematlab = xYES; then
24295 compiler_type=dontcare
24296 case $CXX in
24297 *g++* | c++)
24298 case $host in
24299 x86_64-*)
24300 echo "Compiling on an x86_64 architecture..."
24301 ;;
24302 *-darwin*)
24303 echo "Compiling on Darwin (MacOS)"
24304 ;;
24305 *)
24306 STDCPP_STATICLIBS=$($CXX -print-file-name=libstdc++.a)
24307 echo "The MEX file will be linked against the static c++ library '$STDCPP_STATICLIBS'"
24308 ;;
24309 esac
24310 ;;
24311 *icc | *icpc)
24312 GFSERVERFLAGS="-Wl,-static -static"
24313 ;;
24314 *)
24315 ;;
24316 esac
24317 fi
24318
24319
24320
24321
24322
24323
24324 if test x$usepython = xYES; then
24325
24326
24327
24328
24329
24330
24331 if test -n "$PYTHON"; then
24332 # If the user set $PYTHON, use it and don't search something else.
24333 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version is >= 2.2" >&5
24334 $as_echo_n "checking whether $PYTHON version is >= 2.2... " >&6; }
24335 prog="import sys
24336 # split strings by '.' and convert to numeric. Append some zeros
24337 # because we need at least 4 digits for the hex conversion.
24338 # map returns an iterator in Python 3.0 and a list in 2.x
24339 minver = list(map(int, '2.2'.split('.'))) + [0, 0, 0]
24340 minverhex = 0
24341 # xrange is not present in Python 3.0 and range returns an iterator
24342 for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i]
24343 sys.exit(sys.hexversion < minverhex)"
24344 if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5
24345 ($PYTHON -c "$prog") >&5 2>&5
24346 ac_status=$?
24347 echo "$as_me:$LINENO: \$? = $ac_status" >&5
24348 (exit $ac_status); }; then :
24349 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
24350 $as_echo "yes" >&6; }
24351 else
24352 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
24353 $as_echo "no" >&6; }
24354 as_fn_error $? "Python interpreter is too old" "$LINENO" 5
24355 fi
24356 am_display_PYTHON=$PYTHON
24357 else
24358 # Otherwise, try each interpreter until we find one that satisfies
24359 # VERSION.
24360 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 2.2" >&5
24361 $as_echo_n "checking for a Python interpreter with version >= 2.2... " >&6; }
24362 if ${am_cv_pathless_PYTHON+:} false; then :
24363 $as_echo_n "(cached) " >&6
24364 else
24365
24366 for am_cv_pathless_PYTHON in python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 none; do
24367 test "$am_cv_pathless_PYTHON" = none && break
24368 prog="import sys
24369 # split strings by '.' and convert to numeric. Append some zeros
24370 # because we need at least 4 digits for the hex conversion.
24371 # map returns an iterator in Python 3.0 and a list in 2.x
24372 minver = list(map(int, '2.2'.split('.'))) + [0, 0, 0]
24373 minverhex = 0
24374 # xrange is not present in Python 3.0 and range returns an iterator
24375 for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i]
24376 sys.exit(sys.hexversion < minverhex)"
24377 if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5
24378 ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5
24379 ac_status=$?
24380 echo "$as_me:$LINENO: \$? = $ac_status" >&5
24381 (exit $ac_status); }; then :
24382 break
24383 fi
24384 done
24385 fi
24386 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_pathless_PYTHON" >&5
24387 $as_echo "$am_cv_pathless_PYTHON" >&6; }
24388 # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
24389 if test "$am_cv_pathless_PYTHON" = none; then
24390 PYTHON=:
24391 else
24392 # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args.
24393 set dummy $am_cv_pathless_PYTHON; ac_word=$2
24394 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
24395 $as_echo_n "checking for $ac_word... " >&6; }
24396 if ${ac_cv_path_PYTHON+:} false; then :
24397 $as_echo_n "(cached) " >&6
24398 else
24399 case $PYTHON in
24400 [\\/]* | ?:[\\/]*)
24401 ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
24402 ;;
24403 *)
24404 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
24405 for as_dir in $PATH
24406 do
24407 IFS=$as_save_IFS
24408 test -z "$as_dir" && as_dir=.
24409 for ac_exec_ext in '' $ac_executable_extensions; do
24410 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
24411 ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
24412 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
24413 break 2
24414 fi
24415 done
24416 done
24417 IFS=$as_save_IFS
24418
24419 ;;
24420 esac
24421 fi
24422 PYTHON=$ac_cv_path_PYTHON
24423 if test -n "$PYTHON"; then
24424 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
24425 $as_echo "$PYTHON" >&6; }
24426 else
24427 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
24428 $as_echo "no" >&6; }
24429 fi
24430
24431
24432 fi
24433 am_display_PYTHON=$am_cv_pathless_PYTHON
24434 fi
24435
24436
24437 if test "$PYTHON" = :; then
24438 usepython=NO
24439 else
24440
24441
24442 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
24443 $as_echo_n "checking for $am_display_PYTHON version... " >&6; }
24444 if ${am_cv_python_version+:} false; then :
24445 $as_echo_n "(cached) " >&6
24446 else
24447 am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
24448 fi
24449 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
24450 $as_echo "$am_cv_python_version" >&6; }
24451 PYTHON_VERSION=$am_cv_python_version
24452
24453
24454
24455 PYTHON_PREFIX='${prefix}'
24456
24457 PYTHON_EXEC_PREFIX='${exec_prefix}'
24458
24459
24460
24461 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
24462 $as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
24463 if ${am_cv_python_platform+:} false; then :
24464 $as_echo_n "(cached) " >&6
24465 else
24466 am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
24467 fi
24468 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
24469 $as_echo "$am_cv_python_platform" >&6; }
24470 PYTHON_PLATFORM=$am_cv_python_platform
24471
24472
24473 # Just factor out some code duplication.
24474 am_python_setup_sysconfig="\
24475 import sys
24476 # Prefer sysconfig over distutils.sysconfig, for better compatibility
24477 # with python 3.x. See automake bug#10227.
24478 try:
24479 import sysconfig
24480 except ImportError:
24481 can_use_sysconfig = 0
24482 else:
24483 can_use_sysconfig = 1
24484 # Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
24485 # <https://github.com/pypa/virtualenv/issues/118>
24486 try:
24487 from platform import python_implementation
24488 if python_implementation() == 'CPython' and sys.version[:3] == '2.7':
24489 can_use_sysconfig = 0
24490 except ImportError:
24491 pass"
24492
24493
24494 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
24495 $as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
24496 if ${am_cv_python_pythondir+:} false; then :
24497 $as_echo_n "(cached) " >&6
24498 else
24499 if test "x$prefix" = xNONE
24500 then
24501 am_py_prefix=$ac_default_prefix
24502 else
24503 am_py_prefix=$prefix
24504 fi
24505 am_cv_python_pythondir=`$PYTHON -c "
24506 $am_python_setup_sysconfig
24507 if can_use_sysconfig:
24508 sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
24509 else:
24510 from distutils import sysconfig
24511 sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
24512 sys.stdout.write(sitedir)"`
24513 case $am_cv_python_pythondir in
24514 $am_py_prefix*)
24515 am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
24516 am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
24517 ;;
24518 *)
24519 case $am_py_prefix in
24520 /usr|/System*) ;;
24521 *)
24522 am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
24523 ;;
24524 esac
24525 ;;
24526 esac
24527
24528 fi
24529 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
24530 $as_echo "$am_cv_python_pythondir" >&6; }
24531 pythondir=$am_cv_python_pythondir
24532
24533
24534
24535 pkgpythondir=\${pythondir}/$PACKAGE
24536
24537
24538 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
24539 $as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
24540 if ${am_cv_python_pyexecdir+:} false; then :
24541 $as_echo_n "(cached) " >&6
24542 else
24543 if test "x$exec_prefix" = xNONE
24544 then
24545 am_py_exec_prefix=$am_py_prefix
24546 else
24547 am_py_exec_prefix=$exec_prefix
24548 fi
24549 am_cv_python_pyexecdir=`$PYTHON -c "
24550 $am_python_setup_sysconfig
24551 if can_use_sysconfig:
24552 sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
24553 else:
24554 from distutils import sysconfig
24555 sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
24556 sys.stdout.write(sitedir)"`
24557 case $am_cv_python_pyexecdir in
24558 $am_py_exec_prefix*)
24559 am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
24560 am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
24561 ;;
24562 *)
24563 case $am_py_exec_prefix in
24564 /usr|/System*) ;;
24565 *)
24566 am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
24567 ;;
24568 esac
24569 ;;
24570 esac
24571
24572 fi
24573 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
24574 $as_echo "$am_cv_python_pyexecdir" >&6; }
24575 pyexecdir=$am_cv_python_pyexecdir
24576
24577
24578
24579 pkgpyexecdir=\${pyexecdir}/$PACKAGE
24580
24581
24582 usepython=YES
24583 fi
24584
24585
24586 fi
24587 echo $PYTHON
24588
24589
24590 if test "x$usepython" = "xYES"; then
24591 echo "Building with python support (use --enable-python=no to disable it)"
24592 echo "You will need the python-numpy and python-scipy packages."
24593
24594 #
24595 # Allow the use of a (user set) custom python version
24596 #
24597
24598
24599 # Extract the first word of "python[$PYTHON_VERSION]", so it can be a program name with args.
24600 set dummy python$PYTHON_VERSION; ac_word=$2
24601 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
24602 $as_echo_n "checking for $ac_word... " >&6; }
24603 if ${ac_cv_path_PYTHON+:} false; then :
24604 $as_echo_n "(cached) " >&6
24605 else
24606 case $PYTHON in
24607 [\\/]* | ?:[\\/]*)
24608 ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
24609 ;;
24610 *)
24611 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
24612 for as_dir in $PATH
24613 do
24614 IFS=$as_save_IFS
24615 test -z "$as_dir" && as_dir=.
24616 for ac_exec_ext in '' $ac_executable_extensions; do
24617 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
24618 ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
24619 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
24620 break 2
24621 fi
24622 done
24623 done
24624 IFS=$as_save_IFS
24625
24626 ;;
24627 esac
24628 fi
24629 PYTHON=$ac_cv_path_PYTHON
24630 if test -n "$PYTHON"; then
24631 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
24632 $as_echo "$PYTHON" >&6; }
24633 else
24634 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
24635 $as_echo "no" >&6; }
24636 fi
24637
24638
24639 if test -z "$PYTHON"; then
24640 as_fn_error $? "Cannot find python$PYTHON_VERSION in your system path" "$LINENO" 5
24641 fi
24642
24643 #
24644 # Check for a version of Python >= 2.1.0
24645 #
24646 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a version of Python >= '2.1.0'" >&5
24647 $as_echo_n "checking for a version of Python >= '2.1.0'... " >&6; }
24648 ac_supports_python_ver=`$PYTHON -c "import sys, string; \
24649 ver = string.split(sys.version)[0]; \
24650 print int(ver >= '2.1.0')"`
24651 if test "$ac_supports_python_ver" != "1"; then
24652 if test -z "$PYTHON_NOVERSIONCHECK"; then
24653 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
24654 $as_echo "no" >&6; }
24655 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
24656 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
24657 as_fn_error $? "
24658 This version of the AC_PYTHON_DEVEL macro
24659 doesn't work properly with versions of Python before
24660 2.1.0. You may need to re-run configure, setting the
24661 variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG,
24662 PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand.
24663 Moreover, to disable this check, set PYTHON_NOVERSIONCHECK
24664 to something else than an empty string.
24665
24666 See \`config.log' for more details" "$LINENO" 5; } else
24667 { $as_echo "$as_me:${as_lineno-$LINENO}: result: skip at user request" >&5
24668 $as_echo "skip at user request" >&6; }
24669 fi
24670 else
24671 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
24672 $as_echo "yes" >&6; }
24673 fi
24674
24675 #
24676 # if the macro parameter ``version'' is set, honour it
24677 #
24678 if test -n ""; then
24679 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a version of Python " >&5
24680 $as_echo_n "checking for a version of Python ... " >&6; }
24681 ac_supports_python_ver=`$PYTHON -c "import sys, string; \
24682 ver = string.split(sys.version)[0]; \
24683 print ver "`
24684 if test "$ac_supports_python_ver" = "True"; then
24685 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
24686 $as_echo "yes" >&6; }
24687 else
24688 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
24689 $as_echo "no" >&6; }
24690 as_fn_error $? "this package requires Python .
24691 If you have it installed, but it isn't the default Python
24692 interpreter in your system path, please pass the PYTHON_VERSION
24693 variable to configure. See \`\`configure --help'' for reference.
24694 " "$LINENO" 5
24695 fi
24696 fi
24697
24698 #
24699 # Check if you have distutils, else fail
24700 #
24701 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the distutils Python package" >&5
24702 $as_echo_n "checking for the distutils Python package... " >&6; }
24703 ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
24704 if test -z "$ac_distutils_result"; then
24705 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
24706 $as_echo "yes" >&6; }
24707 else
24708 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
24709 $as_echo "no" >&6; }
24710 as_fn_error $? "cannot import Python module \"distutils\".
24711 Please check your Python installation. The error was:
24712 $ac_distutils_result" "$LINENO" 5
24713 fi
24714
24715 #
24716 # Check for Python include path
24717 #
24718 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
24719 $as_echo_n "checking for Python include path... " >&6; }
24720 if test -z "$PYTHON_CPPFLAGS"; then
24721 python_path=`$PYTHON -c "import distutils.sysconfig; \
24722 print distutils.sysconfig.get_python_inc();"`
24723 if test -n "${python_path}"; then
24724 python_path="-I$python_path"
24725 fi
24726 PYTHON_CPPFLAGS=$python_path
24727 fi
24728 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_CPPFLAGS" >&5
24729 $as_echo "$PYTHON_CPPFLAGS" >&6; }
24730
24731
24732 #
24733 # Check for Python library path
24734 #
24735 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python library path" >&5
24736 $as_echo_n "checking for Python library path... " >&6; }
24737 if test -z "$PYTHON_LDFLAGS"; then
24738 # (makes two attempts to ensure we've got a version number
24739 # from the interpreter)
24740 py_version=`$PYTHON -c "from distutils.sysconfig import *; \
24741 from string import join; \
24742 print join(get_config_vars('VERSION'))"`
24743 if test "$py_version" == "None"; then
24744 if test -n "$PYTHON_VERSION"; then
24745 py_version=$PYTHON_VERSION
24746 else
24747 py_version=`$PYTHON -c "import sys; \
24748 print sys.version[:3]"`
24749 fi
24750 fi
24751
24752 PYTHON_LDFLAGS=`$PYTHON -c "from distutils.sysconfig import *; \
24753 from string import join; \
24754 print '-L' + get_python_lib(0,1), \
24755 '-lpython';"`$py_version
24756 fi
24757 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_LDFLAGS" >&5
24758 $as_echo "$PYTHON_LDFLAGS" >&6; }
24759
24760
24761 #
24762 # Check for site packages
24763 #
24764 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python site-packages path" >&5
24765 $as_echo_n "checking for Python site-packages path... " >&6; }
24766 if test -z "$PYTHON_SITE_PKG"; then
24767 PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
24768 print distutils.sysconfig.get_python_lib(0,0);"`
24769 fi
24770 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_SITE_PKG" >&5
24771 $as_echo "$PYTHON_SITE_PKG" >&6; }
24772
24773
24774 #
24775 # libraries which must be linked in when embedding
24776 #
24777 { $as_echo "$as_me:${as_lineno-$LINENO}: checking python extra libraries" >&5
24778 $as_echo_n "checking python extra libraries... " >&6; }
24779 if test -z "$PYTHON_EXTRA_LIBS"; then
24780 PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
24781 conf = distutils.sysconfig.get_config_var; \
24782 print conf('LOCALMODLIBS'), conf('LIBS')"`
24783 fi
24784 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LIBS" >&5
24785 $as_echo "$PYTHON_EXTRA_LIBS" >&6; }
24786
24787
24788 #
24789 # linking flags needed when embedding
24790 #
24791 { $as_echo "$as_me:${as_lineno-$LINENO}: checking python extra linking flags" >&5
24792 $as_echo_n "checking python extra linking flags... " >&6; }
24793 if test -z "$PYTHON_EXTRA_LDFLAGS"; then
24794 PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
24795 conf = distutils.sysconfig.get_config_var; \
24796 print conf('LINKFORSHARED')"`
24797 fi
24798 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LDFLAGS" >&5
24799 $as_echo "$PYTHON_EXTRA_LDFLAGS" >&6; }
24800
24801
24802 ac_python_numpy=`$PYTHON -c 'import numpy; print "YES"' 2>/dev/null`
24803 if test "x$ac_python_numpy" != "xYES"; then
24804 usepython=NO
24805 MSG="PYTHON DISABLED: numpy not found. You need to install the python-numpy package."
24806 echo $MSG
24807 WARNING_MSG="$WARNING_MSG\n$MSG"
24808 fi
24809 ac_python_scipy=`$PYTHON -c 'import scipy; print "YES"' 2>/dev/null`
24810 if test "x$ac_python_scipy" != "xYES"; then
24811 usepython=NO
24812 MSG="PYTHON DISABLED: scipy not found. You need to install the python-scipy package."
24813 echo $MSG
24814 WARNING_MSG="$WARNING_MSG\n$MSG"
24815 fi
24816 if test $paralevel -ge 1; then
24817 ac_python_mpi4py=`$PYTHON -c 'import mpi4py; print "YES"' 2>/dev/null`
24818 if test "x$ac_python_mpi4py" != "xYES"; then
24819 usepython=NO
24820 MSG="PARALLEL PYTHON DISABLED: mpi4py not found. You need to install the python-mpi4py package."
24821 echo $MSG
24822 WARNING_MSG="$WARNING_MSG\n$MSG"
24823 fi
24824 fi
24825 fi
24826
24827 if test x$usepython = xYES; then
24828 BUILDPYTHON_TRUE=
24829 BUILDPYTHON_FALSE='#'
24830 else
24831 BUILDPYTHON_TRUE='#'
24832 BUILDPYTHON_FALSE=
24833 fi
24834
24835 if test x$ac_python_mpi4py = xYES; then
24836 BUILDPYTHONPAR_TRUE=
24837 BUILDPYTHONPAR_FALSE='#'
24838 else
24839 BUILDPYTHONPAR_TRUE='#'
24840 BUILDPYTHONPAR_FALSE=
24841 fi
24842
24843
24844
24845
24846
24847
24848 REQUIRED_SCILAB_MAJOR=5
24849 REQUIRED_SCILAB_MINOR=2
24850 REQUIRED_SCILAB_MICRO=0
24851
24852
24853
24854
24855 # Check whether --enable-scilab was given.
24856 if test "${enable_scilab+set}" = set; then :
24857 enableval=$enable_scilab; case "${enableval}" in
24858 yes) usescilab=YES ;;
24859 no) usescilab=NO ;;
24860 *) as_fn_error $? "bad value ${enableval} for --enable-scilab" "$LINENO" 5 ;;
24861 esac
24862 else
24863 usescilab=NO
24864 fi
24865
24866
24867
24868 # Check whether --with-scilab_prefix was given.
24869 if test "${with_scilab_prefix+set}" = set; then :
24870 withval=$with_scilab_prefix; with_scilab_prefix=$withval
24871 else
24872 with_scilab_prefix='yes'
24873
24874 fi
24875
24876
24877
24878 # Check whether --with-scilab_version was given.
24879 if test "${with_scilab_version+set}" = set; then :
24880 withval=$with_scilab_version; with_scilab_version=$withval
24881 else
24882 with_scilab_version='yes'
24883
24884 fi
24885
24886
24887
24888 # Check whether --with-scilab_toolbox_dir was given.
24889 if test "${with_scilab_toolbox_dir+set}" = set; then :
24890 withval=$with_scilab_toolbox_dir; with_scilab_toolbox_dir=$withval
24891 else
24892 with_scilab_toolbox_dir='yes'
24893
24894 fi
24895
24896
24897 if test "x$usescilab" == "xYES"
24898 then
24899 if test -z $REQUIRED_SCILAB_MAJOR
24900 then
24901 REQUIRED_SCILAB_MAJOR=`echo "$SCILAB_VERSION" | sed "s/.*\([0-9]\+\)[.]\([0-9]\+\)[.]\([0-9]\+\)/\1/"`
24902 fi
24903 if test -z $REQUIRED_SCILAB_MINOR
24904 then
24905 REQUIRED_SCILAB_MINOR=`echo "$SCILAB_VERSION" | sed "s/.*\([0-9]\+\)[.]\([0-9]\+\)[.]\([0-9]\+\)/\2/"`
24906 fi
24907 if test -z $REQUIRED_SCILAB_MICRO
24908 then
24909 REQUIRED_SCILAB_MICRO=`echo "$SCILAB_VERSION" | sed "s/.*\([0-9]\+\)[.]\([0-9]\+\)[.]\([0-9]\+\)/\3/"`
24910 fi
24911
24912
24913 if test "x$with_scilab_prefix" != "xyes"
24914 then
24915 if test -x "$with_scilab_prefix/bin/scilab"
24916 then
24917 { $as_echo "$as_me:${as_lineno-$LINENO}: result: Scilab binary program was found in $with_scilab_prefix" >&5
24918 $as_echo "Scilab binary program was found in $with_scilab_prefix" >&6; }
24919 else
24920 as_fn_error $? "Scilab binary program was not found in $with_scilab_prefix/bin" "$LINENO" 5
24921 fi
24922 SCILAB_EXE="$with_scilab_prefix/bin/scilab"
24923 $as_echo "#define HAVE_SCILAB 1" >>confdefs.h
24924
24925 else
24926 # Extract the first word of "scilab", so it can be a program name with args.
24927 set dummy scilab; ac_word=$2
24928 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
24929 $as_echo_n "checking for $ac_word... " >&6; }
24930 if ${ac_cv_prog_has_scilab+:} false; then :
24931 $as_echo_n "(cached) " >&6
24932 else
24933 if test -n "$has_scilab"; then
24934 ac_cv_prog_has_scilab="$has_scilab" # Let the user override the test.
24935 else
24936 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
24937 for as_dir in $PATH
24938 do
24939 IFS=$as_save_IFS
24940 test -z "$as_dir" && as_dir=.
24941 for ac_exec_ext in '' $ac_executable_extensions; do
24942 if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
24943 ac_cv_prog_has_scilab="yes"
24944 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
24945 break 2
24946 fi
24947 done
24948 done
24949 IFS=$as_save_IFS
24950
24951 test -z "$ac_cv_prog_has_scilab" && ac_cv_prog_has_scilab="no"
24952 fi
24953 fi
24954 has_scilab=$ac_cv_prog_has_scilab
24955 if test -n "$has_scilab"; then
24956 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_scilab" >&5
24957 $as_echo "$has_scilab" >&6; }
24958 else
24959 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
24960 $as_echo "no" >&6; }
24961 fi
24962
24963
24964 if test x$has_scilab = xno; then
24965 as_fn_error $? "Scilab binary program was not found in your PATH, your PATH is $PATH" "$LINENO" 5
24966 fi
24967 SCILAB_EXE="scilab"
24968 $as_echo "#define HAVE_SCILAB 1" >>confdefs.h
24969
24970 fi
24971
24972 if test -z "$SCI"; then
24973 cmd='F=mopen("getpath.incl","w");
24974 mfprintf(F,SCI);
24975 mclose(F);exit;'
24976 echo "$cmd" > getpath.sci
24977 $SCILAB_EXE -nw -f getpath.sci >/dev/null
24978 SCILAB_DIR=`cat getpath.incl`
24979 rm -f getpath.sci getpath.incl
24980 else
24981 SCILAB_DIR="$SCI"
24982 fi
24983
24984 cmd='F=mopen("version.incl","w");
24985 ver=getversion();
24986 mfprintf(F,ver);
24987 mclose(F);exit;'
24988 echo "$cmd" > version.sci
24989 $SCILAB_EXE -nwni -f version.sci >/dev/null
24990 SCILAB_VERSION=`cat version.incl`
24991 rm -f version.sci version.incl
24992
24993 scilab_tmp_version=`echo $SCILAB_VERSION | sed -r "s/.*(branch).*/\1/"`
24994
24995 if test "x$scilab_tmp_version" = "xbranch"
24996 then
24997 SCILAB_VERSION_MAJOR=-1
24998 SCILAB_VERSION_MINOR=-1
24999 SCILAB_VERSION_MICRO=-1
25000 else
25001 SCILAB_VERSION_MAJOR=`echo "$SCILAB_VERSION" | sed -r "s/.*([0-9]+)[.]([0-9]+)[.]([0-9]+)/\1/"`
25002 SCILAB_VERSION_MINOR=`echo "$SCILAB_VERSION" | sed -r "s/.*([0-9]+)[.]([0-9]+)[.]([0-9]+)/\2/"`
25003 SCILAB_VERSION_MICRO=`echo "$SCILAB_VERSION" | sed -r "s/.*([0-9]+)[.]([0-9]+)[.]([0-9]+)/\3/"`
25004
25005 if test $SCILAB_VERSION_MAJOR -lt $REQUIRED_SCILAB_MAJOR
25006 then
25007 as_fn_error $? "scilab major version does not match" "$LINENO" 5
25008 else
25009 if test $SCILAB_VERSION_MINOR -lt $REQUIRED_SCILAB_MINOR
25010 then
25011 as_fn_error $? "scilab minor version does not match" "$LINENO" 5
25012 else
25013 if test $SCILAB_VERSION_MICRO -lt $REQUIRED_SCILAB_MICRO
25014 then
25015 as_fn_error $? "scilab micro version does not match" "$LINENO" 5
25016 fi
25017 fi
25018 fi
25019 fi
25020
25021 if test "x$with_scilab_toolbox_dir" != "xyes"
25022 then
25023 SCILAB_TOOLBOX_DIR="$with_scilab_toolbox_dir"
25024 else
25025 SCILAB_TOOLBOX_DIR="$SCILAB_DIR/contrib/$PACKAGE_NAME-$PACKAGE_VERSION"
25026 fi
25027 fi
25028
25029 if test x$usescilab = xYES; then
25030 BUILDSCILAB_TRUE=
25031 BUILDSCILAB_FALSE='#'
25032 else
25033 BUILDSCILAB_TRUE='#'
25034 BUILDSCILAB_FALSE=
25035 fi
25036
25037
25038
25039
25040
25041
25042
25043
25044
25045
25046
25047
25048 GETFEM_INTERFACE_PATH="`readlink -f $srcdir`"
25049 GETFEM_BUILD_INTERFACE_PATH="`readlink -f $PWD`"
25050
25051
25052
25053
25054 if test "x$usescilab" == "xYES"
25055 then
25056 currentdir=`pwd`
25057 if test ! -f $currentdir/interface/src/scilab/builder.sce
25058 then
25059 echo "Copying Scilab toolbox src in the build directory"
25060 mkdir -p $currentdir/interface/src/scilab/
25061 cp -r $srcdir/interface/src/scilab/* $currentdir/interface/src/scilab
25062 fi
25063 fi
25064
25065
25066 # Check whether --with-scilab-toolbox-dir was given.
25067 if test "${with_scilab_toolbox_dir+set}" = set; then :
25068 withval=$with_scilab_toolbox_dir; SCILAB_TOOLBOX_DIR="$withval"
25069 else
25070 SCILAB_TOOLBOX_DIR="$GFPREFIX/getfem_toolbox"
25071 fi
25072
25073
25074
25075
25076
25077
25078 IM_METHODS=`$srcdir/bin/extract_doc $srcdir/interface/src cubature`
25079 IM_METHODS_LOC=`$srcdir/bin/extract_doc $srcdir/interface/src cubature_loc`
25080
25081
25082
25083
25084 ac_config_files="$ac_config_files Makefile m4/Makefile cubature/Makefile $SUPERLU_MAKEFILE doc/Makefile doc/sphinx/Makefile src/Makefile tests/Makefile contrib/Makefile contrib/icare/Makefile contrib/delaminated_crack/Makefile contrib/bimaterial_crack_test/Makefile contrib/xfem_stab_unilat_contact/Makefile contrib/mixed_elastostatic/Makefile contrib/xfem_contact/Makefile contrib/crack_plate/Makefile contrib/inter_element_test/Makefile contrib/aposteriori/Makefile contrib/level_set_contact/Makefile contrib/static_contact_gears/Makefile bin/Makefile interface/Makefile interface/src/Makefile interface/src/matlab/Makefile interface/src/matlab/private/Makefile interface/src/python/Makefile interface/src/python/setup.py interface/src/scilab/Makefile interface/src/scilab/sci_gateway/c/builder_gateway_c.sce interface/tests/Makefile interface/tests/meshes/Makefile interface/tests/matlab/Makefile interface/tests/matlab/private/Makefile interface/tests/python/Makefile getfem-config getfem-config-notinstalled gmm-config"
25085
25086
25087
25088 test "x$prefix" = xNONE && prefix=$ac_default_prefix
25089 # Let make expand exec_prefix.
25090 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
25091
25092 DEFS=-DHAVE_CONFIG_H
25093
25094 ac_libobjs=
25095 ac_ltlibobjs=
25096 U=
25097 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
25098 # 1. Remove the extension, and $U if already installed.
25099 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
25100 ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
25101 # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
25102 # will be set to the directory where LIBOBJS objects are built.
25103 as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
25104 as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
25105 done
25106 LIBOBJS=$ac_libobjs
25107
25108 LTLIBOBJS=$ac_ltlibobjs
25109
25110
25111 { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
25112 $as_echo_n "checking that generated files are newer than configure... " >&6; }
25113 if test -n "$am_sleep_pid"; then
25114 # Hide warnings about reused PIDs.
25115 wait $am_sleep_pid 2>/dev/null
25116 fi
25117 { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
25118 $as_echo "done" >&6; }
25119 if test -n "$EXEEXT"; then
25120 am__EXEEXT_TRUE=
25121 am__EXEEXT_FALSE='#'
25122 else
25123 am__EXEEXT_TRUE='#'
25124 am__EXEEXT_FALSE=
25125 fi
25126
25127 if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
25128 as_fn_error $? "conditional \"AMDEP\" was never defined.
25129 Usually this means the macro was only invoked conditionally." "$LINENO" 5
25130 fi
25131 if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
25132 as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
25133 Usually this means the macro was only invoked conditionally." "$LINENO" 5
25134 fi
25135 if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
25136 as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
25137 Usually this means the macro was only invoked conditionally." "$LINENO" 5
25138 fi
25139 if test -z "${USEBLASLITE_TRUE}" && test -z "${USEBLASLITE_FALSE}"; then
25140 as_fn_error $? "conditional \"USEBLASLITE\" was never defined.
25141 Usually this means the macro was only invoked conditionally." "$LINENO" 5
25142 fi
25143 if test -z "${QHULL_TRUE}" && test -z "${QHULL_FALSE}"; then
25144 as_fn_error $? "conditional \"QHULL\" was never defined.
25145 Usually this means the macro was only invoked conditionally." "$LINENO" 5
25146 fi
25147 if test -z "${MUMPS_TRUE}" && test -z "${MUMPS_FALSE}"; then
25148 as_fn_error $? "conditional \"MUMPS\" was never defined.
25149 Usually this means the macro was only invoked conditionally." "$LINENO" 5
25150 fi
25151 if test -z "${METIS_TRUE}" && test -z "${METIS_FALSE}"; then
25152 as_fn_error $? "conditional \"METIS\" was never defined.
25153 Usually this means the macro was only invoked conditionally." "$LINENO" 5
25154 fi
25155 if test -z "${BUILDMEX_TRUE}" && test -z "${BUILDMEX_FALSE}"; then
25156 as_fn_error $? "conditional \"BUILDMEX\" was never defined.
25157 Usually this means the macro was only invoked conditionally." "$LINENO" 5
25158 fi
25159 if test -z "${USE_MINGW_MEX_TRUE}" && test -z "${USE_MINGW_MEX_FALSE}"; then
25160 as_fn_error $? "conditional \"USE_MINGW_MEX\" was never defined.
25161 Usually this means the macro was only invoked conditionally." "$LINENO" 5
25162 fi
25163 if test -z "${BUILDMEXRPC_TRUE}" && test -z "${BUILDMEXRPC_FALSE}"; then
25164 as_fn_error $? "conditional \"BUILDMEXRPC\" was never defined.
25165 Usually this means the macro was only invoked conditionally." "$LINENO" 5
25166 fi
25167 if test -z "${BUILDPYTHON_TRUE}" && test -z "${BUILDPYTHON_FALSE}"; then
25168 as_fn_error $? "conditional \"BUILDPYTHON\" was never defined.
25169 Usually this means the macro was only invoked conditionally." "$LINENO" 5
25170 fi
25171 if test -z "${BUILDPYTHONPAR_TRUE}" && test -z "${BUILDPYTHONPAR_FALSE}"; then
25172 as_fn_error $? "conditional \"BUILDPYTHONPAR\" was never defined.
25173 Usually this means the macro was only invoked conditionally." "$LINENO" 5
25174 fi
25175 if test -z "${BUILDSCILAB_TRUE}" && test -z "${BUILDSCILAB_FALSE}"; then
25176 as_fn_error $? "conditional \"BUILDSCILAB\" was never defined.
25177 Usually this means the macro was only invoked conditionally." "$LINENO" 5
25178 fi
25179
25180 : "${CONFIG_STATUS=./config.status}"
25181 ac_write_fail=0
25182 ac_clean_files_save=$ac_clean_files
25183 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
25184 { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
25185 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
25186 as_write_fail=0
25187 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
25188 #! $SHELL
25189 # Generated by $as_me.
25190 # Run this file to recreate the current configuration.
25191 # Compiler output produced by configure, useful for debugging
25192 # configure, is in config.log if it exists.
25193
25194 debug=false
25195 ac_cs_recheck=false
25196 ac_cs_silent=false
25197
25198 SHELL=\${CONFIG_SHELL-$SHELL}
25199 export SHELL
25200 _ASEOF
25201 cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
25202 ## -------------------- ##
25203 ## M4sh Initialization. ##
25204 ## -------------------- ##
25205
25206 # Be more Bourne compatible
25207 DUALCASE=1; export DUALCASE # for MKS sh
25208 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
25209 emulate sh
25210 NULLCMD=:
25211 # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
25212 # is contrary to our usage. Disable this feature.
25213 alias -g '${1+"$@"}'='"$@"'
25214 setopt NO_GLOB_SUBST
25215 else
25216 case `(set -o) 2>/dev/null` in #(
25217 *posix*) :
25218 set -o posix ;; #(
25219 *) :
25220 ;;
25221 esac
25222 fi
25223
25224
25225 as_nl='
25226 '
25227 export as_nl
25228 # Printing a long string crashes Solaris 7 /usr/bin/printf.
25229 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
25230 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
25231 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
25232 # Prefer a ksh shell builtin over an external printf program on Solaris,
25233 # but without wasting forks for bash or zsh.
25234 if test -z "$BASH_VERSION$ZSH_VERSION" \
25235 && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
25236 as_echo='print -r --'
25237 as_echo_n='print -rn --'
25238 elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
25239 as_echo='printf %s\n'
25240 as_echo_n='printf %s'
25241 else
25242 if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
25243 as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
25244 as_echo_n='/usr/ucb/echo -n'
25245 else
25246 as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
25247 as_echo_n_body='eval
25248 arg=$1;
25249 case $arg in #(
25250 *"$as_nl"*)
25251 expr "X$arg" : "X\\(.*\\)$as_nl";
25252 arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
25253 esac;
25254 expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
25255 '
25256 export as_echo_n_body
25257 as_echo_n='sh -c $as_echo_n_body as_echo'
25258 fi
25259 export as_echo_body
25260 as_echo='sh -c $as_echo_body as_echo'
25261 fi
25262
25263 # The user is always right.
25264 if test "${PATH_SEPARATOR+set}" != set; then
25265 PATH_SEPARATOR=:
25266 (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
25267 (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
25268 PATH_SEPARATOR=';'
25269 }
25270 fi
25271
25272
25273 # IFS
25274 # We need space, tab and new line, in precisely that order. Quoting is
25275 # there to prevent editors from complaining about space-tab.
25276 # (If _AS_PATH_WALK were called with IFS unset, it would disable word
25277 # splitting by setting IFS to empty value.)
25278 IFS=" "" $as_nl"
25279
25280 # Find who we are. Look in the path if we contain no directory separator.
25281 as_myself=
25282 case $0 in #((
25283 *[\\/]* ) as_myself=$0 ;;
25284 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
25285 for as_dir in $PATH
25286 do
25287 IFS=$as_save_IFS
25288 test -z "$as_dir" && as_dir=.
25289 test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
25290 done
25291 IFS=$as_save_IFS
25292
25293 ;;
25294 esac
25295 # We did not find ourselves, most probably we were run as `sh COMMAND'
25296 # in which case we are not to be found in the path.
25297 if test "x$as_myself" = x; then
25298 as_myself=$0
25299 fi
25300 if test ! -f "$as_myself"; then
25301 $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
25302 exit 1
25303 fi
25304
25305 # Unset variables that we do not need and which cause bugs (e.g. in
25306 # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
25307 # suppresses any "Segmentation fault" message there. '((' could
25308 # trigger a bug in pdksh 5.2.14.
25309 for as_var in BASH_ENV ENV MAIL MAILPATH
25310 do eval test x\${$as_var+set} = xset \
25311 && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
25312 done
25313 PS1='$ '
25314 PS2='> '
25315 PS4='+ '
25316
25317 # NLS nuisances.
25318 LC_ALL=C
25319 export LC_ALL
25320 LANGUAGE=C
25321 export LANGUAGE
25322
25323 # CDPATH.
25324 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
25325
25326
25327 # as_fn_error STATUS ERROR [LINENO LOG_FD]
25328 # ----------------------------------------
25329 # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
25330 # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
25331 # script with STATUS, using 1 if that was 0.
25332 as_fn_error ()
25333 {
25334 as_status=$1; test $as_status -eq 0 && as_status=1
25335 if test "$4"; then
25336 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
25337 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
25338 fi
25339 $as_echo "$as_me: error: $2" >&2
25340 as_fn_exit $as_status
25341 } # as_fn_error
25342
25343
25344 # as_fn_set_status STATUS
25345 # -----------------------
25346 # Set $? to STATUS, without forking.
25347 as_fn_set_status ()
25348 {
25349 return $1
25350 } # as_fn_set_status
25351
25352 # as_fn_exit STATUS
25353 # -----------------
25354 # Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
25355 as_fn_exit ()
25356 {
25357 set +e
25358 as_fn_set_status $1
25359 exit $1
25360 } # as_fn_exit
25361
25362 # as_fn_unset VAR
25363 # ---------------
25364 # Portably unset VAR.
25365 as_fn_unset ()
25366 {
25367 { eval $1=; unset $1;}
25368 }
25369 as_unset=as_fn_unset
25370 # as_fn_append VAR VALUE
25371 # ----------------------
25372 # Append the text in VALUE to the end of the definition contained in VAR. Take
25373 # advantage of any shell optimizations that allow amortized linear growth over
25374 # repeated appends, instead of the typical quadratic growth present in naive
25375 # implementations.
25376 if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
25377 eval 'as_fn_append ()
25378 {
25379 eval $1+=\$2
25380 }'
25381 else
25382 as_fn_append ()
25383 {
25384 eval $1=\$$1\$2
25385 }
25386 fi # as_fn_append
25387
25388 # as_fn_arith ARG...
25389 # ------------------
25390 # Perform arithmetic evaluation on the ARGs, and store the result in the
25391 # global $as_val. Take advantage of shells that can avoid forks. The arguments
25392 # must be portable across $(()) and expr.
25393 if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
25394 eval 'as_fn_arith ()
25395 {
25396 as_val=$(( $* ))
25397 }'
25398 else
25399 as_fn_arith ()
25400 {
25401 as_val=`expr "$@" || test $? -eq 1`
25402 }
25403 fi # as_fn_arith
25404
25405
25406 if expr a : '\(a\)' >/dev/null 2>&1 &&
25407 test "X`expr 00001 : '.*\(...\)'`" = X001; then
25408 as_expr=expr
25409 else
25410 as_expr=false
25411 fi
25412
25413 if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
25414 as_basename=basename
25415 else
25416 as_basename=false
25417 fi
25418
25419 if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
25420 as_dirname=dirname
25421 else
25422 as_dirname=false
25423 fi
25424
25425 as_me=`$as_basename -- "$0" ||
25426 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
25427 X"$0" : 'X\(//\)$' \| \
25428 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
25429 $as_echo X/"$0" |
25430 sed '/^.*\/\([^/][^/]*\)\/*$/{
25431 s//\1/
25432 q
25433 }
25434 /^X\/\(\/\/\)$/{
25435 s//\1/
25436 q
25437 }
25438 /^X\/\(\/\).*/{
25439 s//\1/
25440 q
25441 }
25442 s/.*/./; q'`
25443
25444 # Avoid depending upon Character Ranges.
25445 as_cr_letters='abcdefghijklmnopqrstuvwxyz'
25446 as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
25447 as_cr_Letters=$as_cr_letters$as_cr_LETTERS
25448 as_cr_digits='0123456789'
25449 as_cr_alnum=$as_cr_Letters$as_cr_digits
25450
25451 ECHO_C= ECHO_N= ECHO_T=
25452 case `echo -n x` in #(((((
25453 -n*)
25454 case `echo 'xy\c'` in
25455 *c*) ECHO_T=' ';; # ECHO_T is single tab character.
25456 xy) ECHO_C='\c';;
25457 *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
25458 ECHO_T=' ';;
25459 esac;;
25460 *)
25461 ECHO_N='-n';;
25462 esac
25463
25464 rm -f conf$$ conf$$.exe conf$$.file
25465 if test -d conf$$.dir; then
25466 rm -f conf$$.dir/conf$$.file
25467 else
25468 rm -f conf$$.dir
25469 mkdir conf$$.dir 2>/dev/null
25470 fi
25471 if (echo >conf$$.file) 2>/dev/null; then
25472 if ln -s conf$$.file conf$$ 2>/dev/null; then
25473 as_ln_s='ln -s'
25474 # ... but there are two gotchas:
25475 # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
25476 # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
25477 # In both cases, we have to default to `cp -pR'.
25478 ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
25479 as_ln_s='cp -pR'
25480 elif ln conf$$.file conf$$ 2>/dev/null; then
25481 as_ln_s=ln
25482 else
25483 as_ln_s='cp -pR'
25484 fi
25485 else
25486 as_ln_s='cp -pR'
25487 fi
25488 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
25489 rmdir conf$$.dir 2>/dev/null
25490
25491
25492 # as_fn_mkdir_p
25493 # -------------
25494 # Create "$as_dir" as a directory, including parents if necessary.
25495 as_fn_mkdir_p ()
25496 {
25497
25498 case $as_dir in #(
25499 -*) as_dir=./$as_dir;;
25500 esac
25501 test -d "$as_dir" || eval $as_mkdir_p || {
25502 as_dirs=
25503 while :; do
25504 case $as_dir in #(
25505 *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
25506 *) as_qdir=$as_dir;;
25507 esac
25508 as_dirs="'$as_qdir' $as_dirs"
25509 as_dir=`$as_dirname -- "$as_dir" ||
25510 $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
25511 X"$as_dir" : 'X\(//\)[^/]' \| \
25512 X"$as_dir" : 'X\(//\)$' \| \
25513 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
25514 $as_echo X"$as_dir" |
25515 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
25516 s//\1/
25517 q
25518 }
25519 /^X\(\/\/\)[^/].*/{
25520 s//\1/
25521 q
25522 }
25523 /^X\(\/\/\)$/{
25524 s//\1/
25525 q
25526 }
25527 /^X\(\/\).*/{
25528 s//\1/
25529 q
25530 }
25531 s/.*/./; q'`
25532 test -d "$as_dir" && break
25533 done
25534 test -z "$as_dirs" || eval "mkdir $as_dirs"
25535 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
25536
25537
25538 } # as_fn_mkdir_p
25539 if mkdir -p . 2>/dev/null; then
25540 as_mkdir_p='mkdir -p "$as_dir"'
25541 else
25542 test -d ./-p && rmdir ./-p
25543 as_mkdir_p=false
25544 fi
25545
25546
25547 # as_fn_executable_p FILE
25548 # -----------------------
25549 # Test if FILE is an executable regular file.
25550 as_fn_executable_p ()
25551 {
25552 test -f "$1" && test -x "$1"
25553 } # as_fn_executable_p
25554 as_test_x='test -x'
25555 as_executable_p=as_fn_executable_p
25556
25557 # Sed expression to map a string onto a valid CPP name.
25558 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
25559
25560 # Sed expression to map a string onto a valid variable name.
25561 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
25562
25563
25564 exec 6>&1
25565 ## ----------------------------------- ##
25566 ## Main body of $CONFIG_STATUS script. ##
25567 ## ----------------------------------- ##
25568 _ASEOF
25569 test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
25570
25571 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
25572 # Save the log message, to keep $0 and so on meaningful, and to
25573 # report actual input values of CONFIG_FILES etc. instead of their
25574 # values after options handling.
25575 ac_log="
25576 This file was extended by getfem $as_me 5.0, which was
25577 generated by GNU Autoconf 2.69. Invocation command line was
25578
25579 CONFIG_FILES = $CONFIG_FILES
25580 CONFIG_HEADERS = $CONFIG_HEADERS
25581 CONFIG_LINKS = $CONFIG_LINKS
25582 CONFIG_COMMANDS = $CONFIG_COMMANDS
25583 $ $0 $@
25584
25585 on `(hostname || uname -n) 2>/dev/null | sed 1q`
25586 "
25587
25588 _ACEOF
25589
25590 case $ac_config_files in *"
25591 "*) set x $ac_config_files; shift; ac_config_files=$*;;
25592 esac
25593
25594 case $ac_config_headers in *"
25595 "*) set x $ac_config_headers; shift; ac_config_headers=$*;;
25596 esac
25597
25598
25599 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
25600 # Files that config.status was made for.
25601 config_files="$ac_config_files"
25602 config_headers="$ac_config_headers"
25603 config_commands="$ac_config_commands"
25604
25605 _ACEOF
25606
25607 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
25608 ac_cs_usage="\
25609 \`$as_me' instantiates files and other configuration actions
25610 from templates according to the current configuration. Unless the files
25611 and actions are specified as TAGs, all are instantiated by default.
25612
25613 Usage: $0 [OPTION]... [TAG]...
25614
25615 -h, --help print this help, then exit
25616 -V, --version print version number and configuration settings, then exit
25617 --config print configuration, then exit
25618 -q, --quiet, --silent
25619 do not print progress messages
25620 -d, --debug don't remove temporary files
25621 --recheck update $as_me by reconfiguring in the same conditions
25622 --file=FILE[:TEMPLATE]
25623 instantiate the configuration file FILE
25624 --header=FILE[:TEMPLATE]
25625 instantiate the configuration header FILE
25626
25627 Configuration files:
25628 $config_files
25629
25630 Configuration headers:
25631 $config_headers
25632
25633 Configuration commands:
25634 $config_commands
25635
25636 Report bugs to the package provider."
25637
25638 _ACEOF
25639 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
25640 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
25641 ac_cs_version="\\
25642 getfem config.status 5.0
25643 configured by $0, generated by GNU Autoconf 2.69,
25644 with options \\"\$ac_cs_config\\"
25645
25646 Copyright (C) 2012 Free Software Foundation, Inc.
25647 This config.status script is free software; the Free Software Foundation
25648 gives unlimited permission to copy, distribute and modify it."
25649
25650 ac_pwd='$ac_pwd'
25651 srcdir='$srcdir'
25652 INSTALL='$INSTALL'
25653 MKDIR_P='$MKDIR_P'
25654 AWK='$AWK'
25655 test -n "\$AWK" || AWK=awk
25656 _ACEOF
25657
25658 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
25659 # The default lists apply if the user does not specify any file.
25660 ac_need_defaults=:
25661 while test $# != 0
25662 do
25663 case $1 in
25664 --*=?*)
25665 ac_option=`expr "X$1" : 'X\([^=]*\)='`
25666 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
25667 ac_shift=:
25668 ;;
25669 --*=)
25670 ac_option=`expr "X$1" : 'X\([^=]*\)='`
25671 ac_optarg=
25672 ac_shift=:
25673 ;;
25674 *)
25675 ac_option=$1
25676 ac_optarg=$2
25677 ac_shift=shift
25678 ;;
25679 esac
25680
25681 case $ac_option in
25682 # Handling of the options.
25683 -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
25684 ac_cs_recheck=: ;;
25685 --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
25686 $as_echo "$ac_cs_version"; exit ;;
25687 --config | --confi | --conf | --con | --co | --c )
25688 $as_echo "$ac_cs_config"; exit ;;
25689 --debug | --debu | --deb | --de | --d | -d )
25690 debug=: ;;
25691 --file | --fil | --fi | --f )
25692 $ac_shift
25693 case $ac_optarg in
25694 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
25695 '') as_fn_error $? "missing file argument" ;;
25696 esac
25697 as_fn_append CONFIG_FILES " '$ac_optarg'"
25698 ac_need_defaults=false;;
25699 --header | --heade | --head | --hea )
25700 $ac_shift
25701 case $ac_optarg in
25702 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
25703 esac
25704 as_fn_append CONFIG_HEADERS " '$ac_optarg'"
25705 ac_need_defaults=false;;
25706 --he | --h)
25707 # Conflict between --help and --header
25708 as_fn_error $? "ambiguous option: \`$1'
25709 Try \`$0 --help' for more information.";;
25710 --help | --hel | -h )
25711 $as_echo "$ac_cs_usage"; exit ;;
25712 -q | -quiet | --quiet | --quie | --qui | --qu | --q \
25713 | -silent | --silent | --silen | --sile | --sil | --si | --s)
25714 ac_cs_silent=: ;;
25715
25716 # This is an error.
25717 -*) as_fn_error $? "unrecognized option: \`$1'
25718 Try \`$0 --help' for more information." ;;
25719
25720 *) as_fn_append ac_config_targets " $1"
25721 ac_need_defaults=false ;;
25722
25723 esac
25724 shift
25725 done
25726
25727 ac_configure_extra_args=
25728
25729 if $ac_cs_silent; then
25730 exec 6>/dev/null
25731 ac_configure_extra_args="$ac_configure_extra_args --silent"
25732 fi
25733
25734 _ACEOF
25735 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
25736 if \$ac_cs_recheck; then
25737 set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
25738 shift
25739 \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
25740 CONFIG_SHELL='$SHELL'
25741 export CONFIG_SHELL
25742 exec "\$@"
25743 fi
25744
25745 _ACEOF
25746 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
25747 exec 5>>config.log
25748 {
25749 echo
25750 sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
25751 ## Running $as_me. ##
25752 _ASBOX
25753 $as_echo "$ac_log"
25754 } >&5
25755
25756 _ACEOF
25757 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
25758 #
25759 # INIT-COMMANDS
25760 #
25761 PACKAGE="$PACKAGE"
25762 AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
25763
25764
25765 # The HP-UX ksh and POSIX shell print the target directory to stdout
25766 # if CDPATH is set.
25767 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
25768
25769 sed_quote_subst='$sed_quote_subst'
25770 double_quote_subst='$double_quote_subst'
25771 delay_variable_subst='$delay_variable_subst'
25772 macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
25773 macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
25774 pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
25775 enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
25776 enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
25777 enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
25778 SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
25779 ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
25780 PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
25781 host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
25782 host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
25783 host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
25784 build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
25785 build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
25786 build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
25787 SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
25788 Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
25789 GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
25790 EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
25791 FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
25792 LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
25793 NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
25794 LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
25795 max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
25796 ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
25797 exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
25798 lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
25799 lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
25800 lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
25801 lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
25802 lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
25803 reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
25804 reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
25805 OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
25806 deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
25807 file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
25808 file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
25809 want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
25810 DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
25811 sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
25812 AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
25813 AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
25814 archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
25815 STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
25816 RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
25817 old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
25818 old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
25819 old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
25820 lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
25821 CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
25822 CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
25823 compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
25824 GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
25825 lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
25826 lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
25827 lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
25828 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
25829 nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
25830 lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
25831 objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
25832 MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
25833 lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
25834 lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
25835 lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
25836 lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
25837 lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
25838 need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
25839 MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
25840 DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
25841 NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
25842 LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
25843 OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
25844 OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
25845 libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
25846 shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
25847 extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
25848 archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
25849 enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
25850 export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
25851 whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
25852 compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
25853 old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
25854 old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
25855 archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
25856 archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
25857 module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
25858 module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
25859 with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
25860 allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
25861 no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
25862 hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
25863 hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
25864 hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
25865 hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
25866 hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
25867 hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
25868 hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
25869 inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
25870 link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
25871 always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
25872 export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
25873 exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
25874 include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
25875 prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
25876 postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
25877 file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
25878 variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
25879 need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
25880 need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
25881 version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
25882 runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
25883 shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
25884 shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
25885 libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
25886 library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
25887 soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
25888 install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
25889 postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
25890 postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
25891 finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
25892 finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
25893 hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
25894 sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
25895 sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
25896 hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
25897 enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
25898 enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
25899 enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
25900 old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
25901 striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
25902 compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`'
25903 predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`'
25904 postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`'
25905 predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`'
25906 postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`'
25907 compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`'
25908 LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`'
25909 LD_FC='`$ECHO "$LD_FC" | $SED "$delay_single_quote_subst"`'
25910 reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`'
25911 reload_flag_FC='`$ECHO "$reload_flag_FC" | $SED "$delay_single_quote_subst"`'
25912 reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`'
25913 reload_cmds_FC='`$ECHO "$reload_cmds_FC" | $SED "$delay_single_quote_subst"`'
25914 old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
25915 old_archive_cmds_FC='`$ECHO "$old_archive_cmds_FC" | $SED "$delay_single_quote_subst"`'
25916 compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
25917 compiler_FC='`$ECHO "$compiler_FC" | $SED "$delay_single_quote_subst"`'
25918 GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
25919 GCC_FC='`$ECHO "$GCC_FC" | $SED "$delay_single_quote_subst"`'
25920 lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
25921 lt_prog_compiler_no_builtin_flag_FC='`$ECHO "$lt_prog_compiler_no_builtin_flag_FC" | $SED "$delay_single_quote_subst"`'
25922 lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`'
25923 lt_prog_compiler_pic_FC='`$ECHO "$lt_prog_compiler_pic_FC" | $SED "$delay_single_quote_subst"`'
25924 lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`'
25925 lt_prog_compiler_wl_FC='`$ECHO "$lt_prog_compiler_wl_FC" | $SED "$delay_single_quote_subst"`'
25926 lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
25927 lt_prog_compiler_static_FC='`$ECHO "$lt_prog_compiler_static_FC" | $SED "$delay_single_quote_subst"`'
25928 lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
25929 lt_cv_prog_compiler_c_o_FC='`$ECHO "$lt_cv_prog_compiler_c_o_FC" | $SED "$delay_single_quote_subst"`'
25930 archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
25931 archive_cmds_need_lc_FC='`$ECHO "$archive_cmds_need_lc_FC" | $SED "$delay_single_quote_subst"`'
25932 enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`'
25933 enable_shared_with_static_runtimes_FC='`$ECHO "$enable_shared_with_static_runtimes_FC" | $SED "$delay_single_quote_subst"`'
25934 export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
25935 export_dynamic_flag_spec_FC='`$ECHO "$export_dynamic_flag_spec_FC" | $SED "$delay_single_quote_subst"`'
25936 whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
25937 whole_archive_flag_spec_FC='`$ECHO "$whole_archive_flag_spec_FC" | $SED "$delay_single_quote_subst"`'
25938 compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`'
25939 compiler_needs_object_FC='`$ECHO "$compiler_needs_object_FC" | $SED "$delay_single_quote_subst"`'
25940 old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`'
25941 old_archive_from_new_cmds_FC='`$ECHO "$old_archive_from_new_cmds_FC" | $SED "$delay_single_quote_subst"`'
25942 old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`'
25943 old_archive_from_expsyms_cmds_FC='`$ECHO "$old_archive_from_expsyms_cmds_FC" | $SED "$delay_single_quote_subst"`'
25944 archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
25945 archive_cmds_FC='`$ECHO "$archive_cmds_FC" | $SED "$delay_single_quote_subst"`'
25946 archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
25947 archive_expsym_cmds_FC='`$ECHO "$archive_expsym_cmds_FC" | $SED "$delay_single_quote_subst"`'
25948 module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`'
25949 module_cmds_FC='`$ECHO "$module_cmds_FC" | $SED "$delay_single_quote_subst"`'
25950 module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
25951 module_expsym_cmds_FC='`$ECHO "$module_expsym_cmds_FC" | $SED "$delay_single_quote_subst"`'
25952 with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`'
25953 with_gnu_ld_FC='`$ECHO "$with_gnu_ld_FC" | $SED "$delay_single_quote_subst"`'
25954 allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
25955 allow_undefined_flag_FC='`$ECHO "$allow_undefined_flag_FC" | $SED "$delay_single_quote_subst"`'
25956 no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
25957 no_undefined_flag_FC='`$ECHO "$no_undefined_flag_FC" | $SED "$delay_single_quote_subst"`'
25958 hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
25959 hardcode_libdir_flag_spec_FC='`$ECHO "$hardcode_libdir_flag_spec_FC" | $SED "$delay_single_quote_subst"`'
25960 hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`'
25961 hardcode_libdir_separator_FC='`$ECHO "$hardcode_libdir_separator_FC" | $SED "$delay_single_quote_subst"`'
25962 hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`'
25963 hardcode_direct_FC='`$ECHO "$hardcode_direct_FC" | $SED "$delay_single_quote_subst"`'
25964 hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`'
25965 hardcode_direct_absolute_FC='`$ECHO "$hardcode_direct_absolute_FC" | $SED "$delay_single_quote_subst"`'
25966 hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`'
25967 hardcode_minus_L_FC='`$ECHO "$hardcode_minus_L_FC" | $SED "$delay_single_quote_subst"`'
25968 hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`'
25969 hardcode_shlibpath_var_FC='`$ECHO "$hardcode_shlibpath_var_FC" | $SED "$delay_single_quote_subst"`'
25970 hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
25971 hardcode_automatic_FC='`$ECHO "$hardcode_automatic_FC" | $SED "$delay_single_quote_subst"`'
25972 inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
25973 inherit_rpath_FC='`$ECHO "$inherit_rpath_FC" | $SED "$delay_single_quote_subst"`'
25974 link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
25975 link_all_deplibs_FC='`$ECHO "$link_all_deplibs_FC" | $SED "$delay_single_quote_subst"`'
25976 always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`'
25977 always_export_symbols_FC='`$ECHO "$always_export_symbols_FC" | $SED "$delay_single_quote_subst"`'
25978 export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`'
25979 export_symbols_cmds_FC='`$ECHO "$export_symbols_cmds_FC" | $SED "$delay_single_quote_subst"`'
25980 exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
25981 exclude_expsyms_FC='`$ECHO "$exclude_expsyms_FC" | $SED "$delay_single_quote_subst"`'
25982 include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
25983 include_expsyms_FC='`$ECHO "$include_expsyms_FC" | $SED "$delay_single_quote_subst"`'
25984 prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
25985 prelink_cmds_FC='`$ECHO "$prelink_cmds_FC" | $SED "$delay_single_quote_subst"`'
25986 postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
25987 postlink_cmds_FC='`$ECHO "$postlink_cmds_FC" | $SED "$delay_single_quote_subst"`'
25988 file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
25989 file_list_spec_FC='`$ECHO "$file_list_spec_FC" | $SED "$delay_single_quote_subst"`'
25990 hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
25991 hardcode_action_FC='`$ECHO "$hardcode_action_FC" | $SED "$delay_single_quote_subst"`'
25992 compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
25993 compiler_lib_search_dirs_FC='`$ECHO "$compiler_lib_search_dirs_FC" | $SED "$delay_single_quote_subst"`'
25994 predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`'
25995 predep_objects_FC='`$ECHO "$predep_objects_FC" | $SED "$delay_single_quote_subst"`'
25996 postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`'
25997 postdep_objects_FC='`$ECHO "$postdep_objects_FC" | $SED "$delay_single_quote_subst"`'
25998 predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`'
25999 predeps_FC='`$ECHO "$predeps_FC" | $SED "$delay_single_quote_subst"`'
26000 postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`'
26001 postdeps_FC='`$ECHO "$postdeps_FC" | $SED "$delay_single_quote_subst"`'
26002 compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`'
26003 compiler_lib_search_path_FC='`$ECHO "$compiler_lib_search_path_FC" | $SED "$delay_single_quote_subst"`'
26004
26005 LTCC='$LTCC'
26006 LTCFLAGS='$LTCFLAGS'
26007 compiler='$compiler_DEFAULT'
26008
26009 # A function that is used when there is no print builtin or printf.
26010 func_fallback_echo ()
26011 {
26012 eval 'cat <<_LTECHO_EOF
26013 \$1
26014 _LTECHO_EOF'
26015 }
26016
26017 # Quote evaled strings.
26018 for var in SHELL \
26019 ECHO \
26020 PATH_SEPARATOR \
26021 SED \
26022 GREP \
26023 EGREP \
26024 FGREP \
26025 LD \
26026 NM \
26027 LN_S \
26028 lt_SP2NL \
26029 lt_NL2SP \
26030 reload_flag \
26031 OBJDUMP \
26032 deplibs_check_method \
26033 file_magic_cmd \
26034 file_magic_glob \
26035 want_nocaseglob \
26036 DLLTOOL \
26037 sharedlib_from_linklib_cmd \
26038 AR \
26039 AR_FLAGS \
26040 archiver_list_spec \
26041 STRIP \
26042 RANLIB \
26043 CC \
26044 CFLAGS \
26045 compiler \
26046 lt_cv_sys_global_symbol_pipe \
26047 lt_cv_sys_global_symbol_to_cdecl \
26048 lt_cv_sys_global_symbol_to_c_name_address \
26049 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
26050 nm_file_list_spec \
26051 lt_prog_compiler_no_builtin_flag \
26052 lt_prog_compiler_pic \
26053 lt_prog_compiler_wl \
26054 lt_prog_compiler_static \
26055 lt_cv_prog_compiler_c_o \
26056 need_locks \
26057 MANIFEST_TOOL \
26058 DSYMUTIL \
26059 NMEDIT \
26060 LIPO \
26061 OTOOL \
26062 OTOOL64 \
26063 shrext_cmds \
26064 export_dynamic_flag_spec \
26065 whole_archive_flag_spec \
26066 compiler_needs_object \
26067 with_gnu_ld \
26068 allow_undefined_flag \
26069 no_undefined_flag \
26070 hardcode_libdir_flag_spec \
26071 hardcode_libdir_separator \
26072 exclude_expsyms \
26073 include_expsyms \
26074 file_list_spec \
26075 variables_saved_for_relink \
26076 libname_spec \
26077 library_names_spec \
26078 soname_spec \
26079 install_override_mode \
26080 finish_eval \
26081 old_striplib \
26082 striplib \
26083 compiler_lib_search_dirs \
26084 predep_objects \
26085 postdep_objects \
26086 predeps \
26087 postdeps \
26088 compiler_lib_search_path \
26089 LD_CXX \
26090 LD_FC \
26091 reload_flag_CXX \
26092 reload_flag_FC \
26093 compiler_CXX \
26094 compiler_FC \
26095 lt_prog_compiler_no_builtin_flag_CXX \
26096 lt_prog_compiler_no_builtin_flag_FC \
26097 lt_prog_compiler_pic_CXX \
26098 lt_prog_compiler_pic_FC \
26099 lt_prog_compiler_wl_CXX \
26100 lt_prog_compiler_wl_FC \
26101 lt_prog_compiler_static_CXX \
26102 lt_prog_compiler_static_FC \
26103 lt_cv_prog_compiler_c_o_CXX \
26104 lt_cv_prog_compiler_c_o_FC \
26105 export_dynamic_flag_spec_CXX \
26106 export_dynamic_flag_spec_FC \
26107 whole_archive_flag_spec_CXX \
26108 whole_archive_flag_spec_FC \
26109 compiler_needs_object_CXX \
26110 compiler_needs_object_FC \
26111 with_gnu_ld_CXX \
26112 with_gnu_ld_FC \
26113 allow_undefined_flag_CXX \
26114 allow_undefined_flag_FC \
26115 no_undefined_flag_CXX \
26116 no_undefined_flag_FC \
26117 hardcode_libdir_flag_spec_CXX \
26118 hardcode_libdir_flag_spec_FC \
26119 hardcode_libdir_separator_CXX \
26120 hardcode_libdir_separator_FC \
26121 exclude_expsyms_CXX \
26122 exclude_expsyms_FC \
26123 include_expsyms_CXX \
26124 include_expsyms_FC \
26125 file_list_spec_CXX \
26126 file_list_spec_FC \
26127 compiler_lib_search_dirs_CXX \
26128 compiler_lib_search_dirs_FC \
26129 predep_objects_CXX \
26130 predep_objects_FC \
26131 postdep_objects_CXX \
26132 postdep_objects_FC \
26133 predeps_CXX \
26134 predeps_FC \
26135 postdeps_CXX \
26136 postdeps_FC \
26137 compiler_lib_search_path_CXX \
26138 compiler_lib_search_path_FC; do
26139 case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
26140 *[\\\\\\\`\\"\\\$]*)
26141 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
26142 ;;
26143 *)
26144 eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
26145 ;;
26146 esac
26147 done
26148
26149 # Double-quote double-evaled strings.
26150 for var in reload_cmds \
26151 old_postinstall_cmds \
26152 old_postuninstall_cmds \
26153 old_archive_cmds \
26154 extract_expsyms_cmds \
26155 old_archive_from_new_cmds \
26156 old_archive_from_expsyms_cmds \
26157 archive_cmds \
26158 archive_expsym_cmds \
26159 module_cmds \
26160 module_expsym_cmds \
26161 export_symbols_cmds \
26162 prelink_cmds \
26163 postlink_cmds \
26164 postinstall_cmds \
26165 postuninstall_cmds \
26166 finish_cmds \
26167 sys_lib_search_path_spec \
26168 sys_lib_dlsearch_path_spec \
26169 reload_cmds_CXX \
26170 reload_cmds_FC \
26171 old_archive_cmds_CXX \
26172 old_archive_cmds_FC \
26173 old_archive_from_new_cmds_CXX \
26174 old_archive_from_new_cmds_FC \
26175 old_archive_from_expsyms_cmds_CXX \
26176 old_archive_from_expsyms_cmds_FC \
26177 archive_cmds_CXX \
26178 archive_cmds_FC \
26179 archive_expsym_cmds_CXX \
26180 archive_expsym_cmds_FC \
26181 module_cmds_CXX \
26182 module_cmds_FC \
26183 module_expsym_cmds_CXX \
26184 module_expsym_cmds_FC \
26185 export_symbols_cmds_CXX \
26186 export_symbols_cmds_FC \
26187 prelink_cmds_CXX \
26188 prelink_cmds_FC \
26189 postlink_cmds_CXX \
26190 postlink_cmds_FC; do
26191 case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
26192 *[\\\\\\\`\\"\\\$]*)
26193 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
26194 ;;
26195 *)
26196 eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
26197 ;;
26198 esac
26199 done
26200
26201 ac_aux_dir='$ac_aux_dir'
26202 xsi_shell='$xsi_shell'
26203 lt_shell_append='$lt_shell_append'
26204
26205 # See if we are running on zsh, and set the options which allow our
26206 # commands through without removal of \ escapes INIT.
26207 if test -n "\${ZSH_VERSION+set}" ; then
26208 setopt NO_GLOB_SUBST
26209 fi
26210
26211
26212 PACKAGE='$PACKAGE'
26213 VERSION='$VERSION'
26214 TIMESTAMP='$TIMESTAMP'
26215 RM='$RM'
26216 ofile='$ofile'
26217
26218
26219
26220
26221
26222
26223
26224
26225 _ACEOF
26226
26227 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
26228
26229 # Handling of arguments.
26230 for ac_config_target in $ac_config_targets
26231 do
26232 case $ac_config_target in
26233 "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
26234 "src/getfem/getfem_arch_config.h") CONFIG_COMMANDS="$CONFIG_COMMANDS src/getfem/getfem_arch_config.h" ;;
26235 "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
26236 "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
26237 "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
26238 "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;;
26239 "cubature/Makefile") CONFIG_FILES="$CONFIG_FILES cubature/Makefile" ;;
26240 "$SUPERLU_MAKEFILE") CONFIG_FILES="$CONFIG_FILES $SUPERLU_MAKEFILE" ;;
26241 "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
26242 "doc/sphinx/Makefile") CONFIG_FILES="$CONFIG_FILES doc/sphinx/Makefile" ;;
26243 "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
26244 "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
26245 "contrib/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/Makefile" ;;
26246 "contrib/icare/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/icare/Makefile" ;;
26247 "contrib/delaminated_crack/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/delaminated_crack/Makefile" ;;
26248 "contrib/bimaterial_crack_test/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/bimaterial_crack_test/Makefile" ;;
26249 "contrib/xfem_stab_unilat_contact/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/xfem_stab_unilat_contact/Makefile" ;;
26250 "contrib/mixed_elastostatic/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/mixed_elastostatic/Makefile" ;;
26251 "contrib/xfem_contact/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/xfem_contact/Makefile" ;;
26252 "contrib/crack_plate/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/crack_plate/Makefile" ;;
26253 "contrib/inter_element_test/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/inter_element_test/Makefile" ;;
26254 "contrib/aposteriori/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/aposteriori/Makefile" ;;
26255 "contrib/level_set_contact/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/level_set_contact/Makefile" ;;
26256 "contrib/static_contact_gears/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/static_contact_gears/Makefile" ;;
26257 "bin/Makefile") CONFIG_FILES="$CONFIG_FILES bin/Makefile" ;;
26258 "interface/Makefile") CONFIG_FILES="$CONFIG_FILES interface/Makefile" ;;
26259 "interface/src/Makefile") CONFIG_FILES="$CONFIG_FILES interface/src/Makefile" ;;
26260 "interface/src/matlab/Makefile") CONFIG_FILES="$CONFIG_FILES interface/src/matlab/Makefile" ;;
26261 "interface/src/matlab/private/Makefile") CONFIG_FILES="$CONFIG_FILES interface/src/matlab/private/Makefile" ;;
26262 "interface/src/python/Makefile") CONFIG_FILES="$CONFIG_FILES interface/src/python/Makefile" ;;
26263 "interface/src/python/setup.py") CONFIG_FILES="$CONFIG_FILES interface/src/python/setup.py" ;;
26264 "interface/src/scilab/Makefile") CONFIG_FILES="$CONFIG_FILES interface/src/scilab/Makefile" ;;
26265 "interface/src/scilab/sci_gateway/c/builder_gateway_c.sce") CONFIG_FILES="$CONFIG_FILES interface/src/scilab/sci_gateway/c/builder_gateway_c.sce" ;;
26266 "interface/tests/Makefile") CONFIG_FILES="$CONFIG_FILES interface/tests/Makefile" ;;
26267 "interface/tests/meshes/Makefile") CONFIG_FILES="$CONFIG_FILES interface/tests/meshes/Makefile" ;;
26268 "interface/tests/matlab/Makefile") CONFIG_FILES="$CONFIG_FILES interface/tests/matlab/Makefile" ;;
26269 "interface/tests/matlab/private/Makefile") CONFIG_FILES="$CONFIG_FILES interface/tests/matlab/private/Makefile" ;;
26270 "interface/tests/python/Makefile") CONFIG_FILES="$CONFIG_FILES interface/tests/python/Makefile" ;;
26271 "getfem-config") CONFIG_FILES="$CONFIG_FILES getfem-config" ;;
26272 "getfem-config-notinstalled") CONFIG_FILES="$CONFIG_FILES getfem-config-notinstalled" ;;
26273 "gmm-config") CONFIG_FILES="$CONFIG_FILES gmm-config" ;;
26274
26275 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
26276 esac
26277 done
26278
26279
26280 # If the user did not use the arguments to specify the items to instantiate,
26281 # then the envvar interface is used. Set only those that are not.
26282 # We use the long form for the default assignment because of an extremely
26283 # bizarre bug on SunOS 4.1.3.
26284 if $ac_need_defaults; then
26285 test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
26286 test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
26287 test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
26288 fi
26289
26290 # Have a temporary directory for convenience. Make it in the build tree
26291 # simply because there is no reason against having it here, and in addition,
26292 # creating and moving files from /tmp can sometimes cause problems.
26293 # Hook for its removal unless debugging.
26294 # Note that there is a small window in which the directory will not be cleaned:
26295 # after its creation but before its name has been assigned to `$tmp'.
26296 $debug ||
26297 {
26298 tmp= ac_tmp=
26299 trap 'exit_status=$?
26300 : "${ac_tmp:=$tmp}"
26301 { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
26302 ' 0
26303 trap 'as_fn_exit 1' 1 2 13 15
26304 }
26305 # Create a (secure) tmp directory for tmp files.
26306
26307 {
26308 tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
26309 test -d "$tmp"
26310 } ||
26311 {
26312 tmp=./conf$$-$RANDOM
26313 (umask 077 && mkdir "$tmp")
26314 } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
26315 ac_tmp=$tmp
26316
26317 # Set up the scripts for CONFIG_FILES section.
26318 # No need to generate them if there are no CONFIG_FILES.
26319 # This happens for instance with `./config.status config.h'.
26320 if test -n "$CONFIG_FILES"; then
26321
26322
26323 ac_cr=`echo X | tr X '\015'`
26324 # On cygwin, bash can eat \r inside `` if the user requested igncr.
26325 # But we know of no other shell where ac_cr would be empty at this
26326 # point, so we can use a bashism as a fallback.
26327 if test "x$ac_cr" = x; then
26328 eval ac_cr=\$\'\\r\'
26329 fi
26330 ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
26331 if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
26332 ac_cs_awk_cr='\\r'
26333 else
26334 ac_cs_awk_cr=$ac_cr
26335 fi
26336
26337 echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
26338 _ACEOF
26339
26340
26341 {
26342 echo "cat >conf$$subs.awk <<_ACEOF" &&
26343 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
26344 echo "_ACEOF"
26345 } >conf$$subs.sh ||
26346 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
26347 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
26348 ac_delim='%!_!# '
26349 for ac_last_try in false false false false false :; do
26350 . ./conf$$subs.sh ||
26351 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
26352
26353 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
26354 if test $ac_delim_n = $ac_delim_num; then
26355 break
26356 elif $ac_last_try; then
26357 as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
26358 else
26359 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
26360 fi
26361 done
26362 rm -f conf$$subs.sh
26363
26364 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
26365 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
26366 _ACEOF
26367 sed -n '
26368 h
26369 s/^/S["/; s/!.*/"]=/
26370 p
26371 g
26372 s/^[^!]*!//
26373 :repl
26374 t repl
26375 s/'"$ac_delim"'$//
26376 t delim
26377 :nl
26378 h
26379 s/\(.\{148\}\)..*/\1/
26380 t more1
26381 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
26382 p
26383 n
26384 b repl
26385 :more1
26386 s/["\\]/\\&/g; s/^/"/; s/$/"\\/
26387 p
26388 g
26389 s/.\{148\}//
26390 t nl
26391 :delim
26392 h
26393 s/\(.\{148\}\)..*/\1/
26394 t more2
26395 s/["\\]/\\&/g; s/^/"/; s/$/"/
26396 p
26397 b
26398 :more2
26399 s/["\\]/\\&/g; s/^/"/; s/$/"\\/
26400 p
26401 g
26402 s/.\{148\}//
26403 t delim
26404 ' <conf$$subs.awk | sed '
26405 /^[^""]/{
26406 N
26407 s/\n//
26408 }
26409 ' >>$CONFIG_STATUS || ac_write_fail=1
26410 rm -f conf$$subs.awk
26411 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
26412 _ACAWK
26413 cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
26414 for (key in S) S_is_set[key] = 1
26415 FS = ""
26416
26417 }
26418 {
26419 line = $ 0
26420 nfields = split(line, field, "@")
26421 substed = 0
26422 len = length(field[1])
26423 for (i = 2; i < nfields; i++) {
26424 key = field[i]
26425 keylen = length(key)
26426 if (S_is_set[key]) {
26427 value = S[key]
26428 line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
26429 len += length(value) + length(field[++i])
26430 substed = 1
26431 } else
26432 len += 1 + keylen
26433 }
26434
26435 print line
26436 }
26437
26438 _ACAWK
26439 _ACEOF
26440 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
26441 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
26442 sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
26443 else
26444 cat
26445 fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
26446 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
26447 _ACEOF
26448
26449 # VPATH may cause trouble with some makes, so we remove sole $(srcdir),
26450 # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
26451 # trailing colons and then remove the whole line if VPATH becomes empty
26452 # (actually we leave an empty line to preserve line numbers).
26453 if test "x$srcdir" = x.; then
26454 ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
26455 h
26456 s///
26457 s/^/:/
26458 s/[ ]*$/:/
26459 s/:\$(srcdir):/:/g
26460 s/:\${srcdir}:/:/g
26461 s/:@srcdir@:/:/g
26462 s/^:*//
26463 s/:*$//
26464 x
26465 s/\(=[ ]*\).*/\1/
26466 G
26467 s/\n//
26468 s/^[^=]*=[ ]*$//
26469 }'
26470 fi
26471
26472 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
26473 fi # test -n "$CONFIG_FILES"
26474
26475 # Set up the scripts for CONFIG_HEADERS section.
26476 # No need to generate them if there are no CONFIG_HEADERS.
26477 # This happens for instance with `./config.status Makefile'.
26478 if test -n "$CONFIG_HEADERS"; then
26479 cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
26480 BEGIN {
26481 _ACEOF
26482
26483 # Transform confdefs.h into an awk script `defines.awk', embedded as
26484 # here-document in config.status, that substitutes the proper values into
26485 # config.h.in to produce config.h.
26486
26487 # Create a delimiter string that does not exist in confdefs.h, to ease
26488 # handling of long lines.
26489 ac_delim='%!_!# '
26490 for ac_last_try in false false :; do
26491 ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
26492 if test -z "$ac_tt"; then
26493 break
26494 elif $ac_last_try; then
26495 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
26496 else
26497 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
26498 fi
26499 done
26500
26501 # For the awk script, D is an array of macro values keyed by name,
26502 # likewise P contains macro parameters if any. Preserve backslash
26503 # newline sequences.
26504
26505 ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
26506 sed -n '
26507 s/.\{148\}/&'"$ac_delim"'/g
26508 t rset
26509 :rset
26510 s/^[ ]*#[ ]*define[ ][ ]*/ /
26511 t def
26512 d
26513 :def
26514 s/\\$//
26515 t bsnl
26516 s/["\\]/\\&/g
26517 s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
26518 D["\1"]=" \3"/p
26519 s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
26520 d
26521 :bsnl
26522 s/["\\]/\\&/g
26523 s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
26524 D["\1"]=" \3\\\\\\n"\\/p
26525 t cont
26526 s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
26527 t cont
26528 d
26529 :cont
26530 n
26531 s/.\{148\}/&'"$ac_delim"'/g
26532 t clear
26533 :clear
26534 s/\\$//
26535 t bsnlc
26536 s/["\\]/\\&/g; s/^/"/; s/$/"/p
26537 d
26538 :bsnlc
26539 s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
26540 b cont
26541 ' <confdefs.h | sed '
26542 s/'"$ac_delim"'/"\\\
26543 "/g' >>$CONFIG_STATUS || ac_write_fail=1
26544
26545 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
26546 for (key in D) D_is_set[key] = 1
26547 FS = ""
26548 }
26549 /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
26550 line = \$ 0
26551 split(line, arg, " ")
26552 if (arg[1] == "#") {
26553 defundef = arg[2]
26554 mac1 = arg[3]
26555 } else {
26556 defundef = substr(arg[1], 2)
26557 mac1 = arg[2]
26558 }
26559 split(mac1, mac2, "(") #)
26560 macro = mac2[1]
26561 prefix = substr(line, 1, index(line, defundef) - 1)
26562 if (D_is_set[macro]) {
26563 # Preserve the white space surrounding the "#".
26564 print prefix "define", macro P[macro] D[macro]
26565 next
26566 } else {
26567 # Replace #undef with comments. This is necessary, for example,
26568 # in the case of _POSIX_SOURCE, which is predefined and required
26569 # on some systems where configure will not decide to define it.
26570 if (defundef == "undef") {
26571 print "/*", prefix defundef, macro, "*/"
26572 next
26573 }
26574 }
26575 }
26576 { print }
26577 _ACAWK
26578 _ACEOF
26579 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
26580 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
26581 fi # test -n "$CONFIG_HEADERS"
26582
26583
26584 eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
26585 shift
26586 for ac_tag
26587 do
26588 case $ac_tag in
26589 :[FHLC]) ac_mode=$ac_tag; continue;;
26590 esac
26591 case $ac_mode$ac_tag in
26592 :[FHL]*:*);;
26593 :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
26594 :[FH]-) ac_tag=-:-;;
26595 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
26596 esac
26597 ac_save_IFS=$IFS
26598 IFS=:
26599 set x $ac_tag
26600 IFS=$ac_save_IFS
26601 shift
26602 ac_file=$1
26603 shift
26604
26605 case $ac_mode in
26606 :L) ac_source=$1;;
26607 :[FH])
26608 ac_file_inputs=
26609 for ac_f
26610 do
26611 case $ac_f in
26612 -) ac_f="$ac_tmp/stdin";;
26613 *) # Look for the file first in the build tree, then in the source tree
26614 # (if the path is not absolute). The absolute path cannot be DOS-style,
26615 # because $ac_f cannot contain `:'.
26616 test -f "$ac_f" ||
26617 case $ac_f in
26618 [\\/$]*) false;;
26619 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
26620 esac ||
26621 as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
26622 esac
26623 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
26624 as_fn_append ac_file_inputs " '$ac_f'"
26625 done
26626
26627 # Let's still pretend it is `configure' which instantiates (i.e., don't
26628 # use $as_me), people would be surprised to read:
26629 # /* config.h. Generated by config.status. */
26630 configure_input='Generated from '`
26631 $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
26632 `' by configure.'
26633 if test x"$ac_file" != x-; then
26634 configure_input="$ac_file. $configure_input"
26635 { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
26636 $as_echo "$as_me: creating $ac_file" >&6;}
26637 fi
26638 # Neutralize special characters interpreted by sed in replacement strings.
26639 case $configure_input in #(
26640 *\&* | *\|* | *\\* )
26641 ac_sed_conf_input=`$as_echo "$configure_input" |
26642 sed 's/[\\\\&|]/\\\\&/g'`;; #(
26643 *) ac_sed_conf_input=$configure_input;;
26644 esac
26645
26646 case $ac_tag in
26647 *:-:* | *:-) cat >"$ac_tmp/stdin" \
26648 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
26649 esac
26650 ;;
26651 esac
26652
26653 ac_dir=`$as_dirname -- "$ac_file" ||
26654 $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
26655 X"$ac_file" : 'X\(//\)[^/]' \| \
26656 X"$ac_file" : 'X\(//\)$' \| \
26657 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
26658 $as_echo X"$ac_file" |
26659 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
26660 s//\1/
26661 q
26662 }
26663 /^X\(\/\/\)[^/].*/{
26664 s//\1/
26665 q
26666 }
26667 /^X\(\/\/\)$/{
26668 s//\1/
26669 q
26670 }
26671 /^X\(\/\).*/{
26672 s//\1/
26673 q
26674 }
26675 s/.*/./; q'`
26676 as_dir="$ac_dir"; as_fn_mkdir_p
26677 ac_builddir=.
26678
26679 case "$ac_dir" in
26680 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
26681 *)
26682 ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
26683 # A ".." for each directory in $ac_dir_suffix.
26684 ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
26685 case $ac_top_builddir_sub in
26686 "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
26687 *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
26688 esac ;;
26689 esac
26690 ac_abs_top_builddir=$ac_pwd
26691 ac_abs_builddir=$ac_pwd$ac_dir_suffix
26692 # for backward compatibility:
26693 ac_top_builddir=$ac_top_build_prefix
26694
26695 case $srcdir in
26696 .) # We are building in place.
26697 ac_srcdir=.
26698 ac_top_srcdir=$ac_top_builddir_sub
26699 ac_abs_top_srcdir=$ac_pwd ;;
26700 [\\/]* | ?:[\\/]* ) # Absolute name.
26701 ac_srcdir=$srcdir$ac_dir_suffix;
26702 ac_top_srcdir=$srcdir
26703 ac_abs_top_srcdir=$srcdir ;;
26704 *) # Relative name.
26705 ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
26706 ac_top_srcdir=$ac_top_build_prefix$srcdir
26707 ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
26708 esac
26709 ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
26710
26711
26712 case $ac_mode in
26713 :F)
26714 #
26715 # CONFIG_FILE
26716 #
26717
26718 case $INSTALL in
26719 [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
26720 *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
26721 esac
26722 ac_MKDIR_P=$MKDIR_P
26723 case $MKDIR_P in
26724 [\\/$]* | ?:[\\/]* ) ;;
26725 */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
26726 esac
26727 _ACEOF
26728
26729 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
26730 # If the template does not know about datarootdir, expand it.
26731 # FIXME: This hack should be removed a few years after 2.60.
26732 ac_datarootdir_hack=; ac_datarootdir_seen=
26733 ac_sed_dataroot='
26734 /datarootdir/ {
26735 p
26736 q
26737 }
26738 /@datadir@/p
26739 /@docdir@/p
26740 /@infodir@/p
26741 /@localedir@/p
26742 /@mandir@/p'
26743 case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
26744 *datarootdir*) ac_datarootdir_seen=yes;;
26745 *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
26746 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
26747 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
26748 _ACEOF
26749 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
26750 ac_datarootdir_hack='
26751 s&@datadir@&$datadir&g
26752 s&@docdir@&$docdir&g
26753 s&@infodir@&$infodir&g
26754 s&@localedir@&$localedir&g
26755 s&@mandir@&$mandir&g
26756 s&\\\${datarootdir}&$datarootdir&g' ;;
26757 esac
26758 _ACEOF
26759
26760 # Neutralize VPATH when `$srcdir' = `.'.
26761 # Shell code in configure.ac might set extrasub.
26762 # FIXME: do we really want to maintain this feature?
26763 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
26764 ac_sed_extra="$ac_vpsub
26765 $extrasub
26766 _ACEOF
26767 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
26768 :t
26769 /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
26770 s|@configure_input@|$ac_sed_conf_input|;t t
26771 s&@top_builddir@&$ac_top_builddir_sub&;t t
26772 s&@top_build_prefix@&$ac_top_build_prefix&;t t
26773 s&@srcdir@&$ac_srcdir&;t t
26774 s&@abs_srcdir@&$ac_abs_srcdir&;t t
26775 s&@top_srcdir@&$ac_top_srcdir&;t t
26776 s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
26777 s&@builddir@&$ac_builddir&;t t
26778 s&@abs_builddir@&$ac_abs_builddir&;t t
26779 s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
26780 s&@INSTALL@&$ac_INSTALL&;t t
26781 s&@MKDIR_P@&$ac_MKDIR_P&;t t
26782 $ac_datarootdir_hack
26783 "
26784 eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
26785 >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
26786
26787 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
26788 { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
26789 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
26790 "$ac_tmp/out"`; test -z "$ac_out"; } &&
26791 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
26792 which seems to be undefined. Please make sure it is defined" >&5
26793 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
26794 which seems to be undefined. Please make sure it is defined" >&2;}
26795
26796 rm -f "$ac_tmp/stdin"
26797 case $ac_file in
26798 -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
26799 *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
26800 esac \
26801 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
26802 ;;
26803 :H)
26804 #
26805 # CONFIG_HEADER
26806 #
26807 if test x"$ac_file" != x-; then
26808 {
26809 $as_echo "/* $configure_input */" \
26810 && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
26811 } >"$ac_tmp/config.h" \
26812 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
26813 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
26814 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
26815 $as_echo "$as_me: $ac_file is unchanged" >&6;}
26816 else
26817 rm -f "$ac_file"
26818 mv "$ac_tmp/config.h" "$ac_file" \
26819 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
26820 fi
26821 else
26822 $as_echo "/* $configure_input */" \
26823 && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
26824 || as_fn_error $? "could not create -" "$LINENO" 5
26825 fi
26826 # Compute "$ac_file"'s index in $config_headers.
26827 _am_arg="$ac_file"
26828 _am_stamp_count=1
26829 for _am_header in $config_headers :; do
26830 case $_am_header in
26831 $_am_arg | $_am_arg:* )
26832 break ;;
26833 * )
26834 _am_stamp_count=`expr $_am_stamp_count + 1` ;;
26835 esac
26836 done
26837 echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
26838 $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
26839 X"$_am_arg" : 'X\(//\)[^/]' \| \
26840 X"$_am_arg" : 'X\(//\)$' \| \
26841 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
26842 $as_echo X"$_am_arg" |
26843 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
26844 s//\1/
26845 q
26846 }
26847 /^X\(\/\/\)[^/].*/{
26848 s//\1/
26849 q
26850 }
26851 /^X\(\/\/\)$/{
26852 s//\1/
26853 q
26854 }
26855 /^X\(\/\).*/{
26856 s//\1/
26857 q
26858 }
26859 s/.*/./; q'`/stamp-h$_am_stamp_count
26860 ;;
26861
26862 :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
26863 $as_echo "$as_me: executing $ac_file commands" >&6;}
26864 ;;
26865 esac
26866
26867
26868 case $ac_file$ac_mode in
26869 "src/getfem/getfem_arch_config.h":C) ac_prefix_conf_OUT=`echo src/getfem/getfem_arch_config.h`
26870 ac_prefix_conf_DEF=`echo _$ac_prefix_conf_OUT | sed -e "y:abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:" -e "s/[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g"`
26871 ac_prefix_conf_PKG=`echo GETFEM`
26872 ac_prefix_conf_LOW=`echo _$ac_prefix_conf_PKG | sed -e "y:ABCDEFGHIJKLMNOPQRSTUVWXYZ-:abcdefghijklmnopqrstuvwxyz_:"`
26873 ac_prefix_conf_UPP=`echo $ac_prefix_conf_PKG | sed -e "y:abcdefghijklmnopqrstuvwxyz-:ABCDEFGHIJKLMNOPQRSTUVWXYZ_:" -e "/^[0123456789]/s/^/_/"`
26874 ac_prefix_conf_INP=`echo "" | sed -e 's/ *//'`
26875 if test ".$ac_prefix_conf_INP" = "."; then
26876 for ac_file in : $CONFIG_HEADERS; do test "_$ac_file" = _: && continue
26877 case "$ac_file" in
26878 *.h) ac_prefix_conf_INP=$ac_file ;;
26879 *)
26880 esac
26881 test ".$ac_prefix_conf_INP" != "." && break
26882 done
26883 fi
26884 if test ".$ac_prefix_conf_INP" = "."; then
26885 case "$ac_prefix_conf_OUT" in
26886 */*) ac_prefix_conf_INP=`basename "$ac_prefix_conf_OUT"`
26887 ;;
26888 *-*) ac_prefix_conf_INP=`echo "$ac_prefix_conf_OUT" | sed -e "s/[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*-//"`
26889 ;;
26890 *) ac_prefix_conf_INP=config.h
26891 ;;
26892 esac
26893 fi
26894 if test -z "$ac_prefix_conf_PKG" ; then
26895 as_fn_error $? "no prefix for _PREFIX_PKG_CONFIG_H" "$LINENO" 5
26896 else
26897 if test ! -f "$ac_prefix_conf_INP" ; then if test -f "$srcdir/$ac_prefix_conf_INP" ; then
26898 ac_prefix_conf_INP="$srcdir/$ac_prefix_conf_INP"
26899 fi fi
26900 { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&5
26901 $as_echo "$as_me: creating $ac_prefix_conf_OUT - prefix $ac_prefix_conf_UPP for $ac_prefix_conf_INP defines" >&6;}
26902 if test -f $ac_prefix_conf_INP ; then
26903 echo "s/#undef *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]\\)/#undef $ac_prefix_conf_UPP""_\\1/" > conftest.prefix
26904 echo "s/#undef *\\([abcdefghijklmnopqrstuvwxyz]\\)/#undef $ac_prefix_conf_LOW""_\\1/" >> conftest.prefix
26905 echo "s/#define *\\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_UPP""_\\1 \\" >> conftest.prefix
26906 echo "#define $ac_prefix_conf_UPP""_\\1 \\2 \\" >> conftest.prefix
26907 echo "#endif/" >>conftest.prefix
26908 echo "s/#define *\\([abcdefghijklmnopqrstuvwxyz][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)\\(.*\\)/#ifndef $ac_prefix_conf_LOW""_\\1 \\" >> conftest.prefix
26909 echo "#define $ac_prefix_conf_LOW""_\\1 \\2 \\" >> conftest.prefix
26910 echo "#endif/" >> conftest.prefix
26911 # now executing _script on _DEF input to create _OUT output file
26912 echo "#ifndef $ac_prefix_conf_DEF" >$tmp/pconfig.h
26913 echo "#define $ac_prefix_conf_DEF 1" >>$tmp/pconfig.h
26914 echo ' ' >>$tmp/pconfig.h
26915 echo /'*' $ac_prefix_conf_OUT. Generated automatically at end of configure. '*'/ >>$tmp/pconfig.h
26916
26917 sed -f conftest.prefix $ac_prefix_conf_INP >>$tmp/pconfig.h
26918 echo ' ' >>$tmp/pconfig.h
26919 echo '/* once:' $ac_prefix_conf_DEF '*/' >>$tmp/pconfig.h
26920 echo "#endif" >>$tmp/pconfig.h
26921 if cmp -s $ac_prefix_conf_OUT $tmp/pconfig.h 2>/dev/null; then
26922 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_prefix_conf_OUT is unchanged" >&5
26923 $as_echo "$as_me: $ac_prefix_conf_OUT is unchanged" >&6;}
26924 else
26925 ac_dir=`$as_dirname -- "$ac_prefix_conf_OUT" ||
26926 $as_expr X"$ac_prefix_conf_OUT" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
26927 X"$ac_prefix_conf_OUT" : 'X\(//\)[^/]' \| \
26928 X"$ac_prefix_conf_OUT" : 'X\(//\)$' \| \
26929 X"$ac_prefix_conf_OUT" : 'X\(/\)' \| . 2>/dev/null ||
26930 $as_echo X"$ac_prefix_conf_OUT" |
26931 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
26932 s//\1/
26933 q
26934 }
26935 /^X\(\/\/\)[^/].*/{
26936 s//\1/
26937 q
26938 }
26939 /^X\(\/\/\)$/{
26940 s//\1/
26941 q
26942 }
26943 /^X\(\/\).*/{
26944 s//\1/
26945 q
26946 }
26947 s/.*/./; q'`
26948 as_dir="$ac_dir"; as_fn_mkdir_p
26949 rm -f "$ac_prefix_conf_OUT"
26950 mv $tmp/pconfig.h "$ac_prefix_conf_OUT"
26951 fi
26952 cp conftest.prefix _configs.sed
26953 else
26954 as_fn_error $? "input file $ac_prefix_conf_INP does not exist - skip generating $ac_prefix_conf_OUT" "$LINENO" 5
26955 fi
26956 rm -f conftest.*
26957 fi
26958 ;;
26959 "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
26960 # Older Autoconf quotes --file arguments for eval, but not when files
26961 # are listed without --file. Let's play safe and only enable the eval
26962 # if we detect the quoting.
26963 case $CONFIG_FILES in
26964 *\'*) eval set x "$CONFIG_FILES" ;;
26965 *) set x $CONFIG_FILES ;;
26966 esac
26967 shift
26968 for mf
26969 do
26970 # Strip MF so we end up with the name of the file.
26971 mf=`echo "$mf" | sed -e 's/:.*$//'`
26972 # Check whether this is an Automake generated Makefile or not.
26973 # We used to match only the files named 'Makefile.in', but
26974 # some people rename them; so instead we look at the file content.
26975 # Grep'ing the first line is not enough: some people post-process
26976 # each Makefile.in and add a new line on top of each file to say so.
26977 # Grep'ing the whole file is not good either: AIX grep has a line
26978 # limit of 2048, but all sed's we know have understand at least 4000.
26979 if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
26980 dirpart=`$as_dirname -- "$mf" ||
26981 $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
26982 X"$mf" : 'X\(//\)[^/]' \| \
26983 X"$mf" : 'X\(//\)$' \| \
26984 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
26985 $as_echo X"$mf" |
26986 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
26987 s//\1/
26988 q
26989 }
26990 /^X\(\/\/\)[^/].*/{
26991 s//\1/
26992 q
26993 }
26994 /^X\(\/\/\)$/{
26995 s//\1/
26996 q
26997 }
26998 /^X\(\/\).*/{
26999 s//\1/
27000 q
27001 }
27002 s/.*/./; q'`
27003 else
27004 continue
27005 fi
27006 # Extract the definition of DEPDIR, am__include, and am__quote
27007 # from the Makefile without running 'make'.
27008 DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
27009 test -z "$DEPDIR" && continue
27010 am__include=`sed -n 's/^am__include = //p' < "$mf"`
27011 test -z "$am__include" && continue
27012 am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
27013 # Find all dependency output files, they are included files with
27014 # $(DEPDIR) in their names. We invoke sed twice because it is the
27015 # simplest approach to changing $(DEPDIR) to its actual value in the
27016 # expansion.
27017 for file in `sed -n "
27018 s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
27019 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
27020 # Make sure the directory exists.
27021 test -f "$dirpart/$file" && continue
27022 fdir=`$as_dirname -- "$file" ||
27023 $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
27024 X"$file" : 'X\(//\)[^/]' \| \
27025 X"$file" : 'X\(//\)$' \| \
27026 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
27027 $as_echo X"$file" |
27028 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
27029 s//\1/
27030 q
27031 }
27032 /^X\(\/\/\)[^/].*/{
27033 s//\1/
27034 q
27035 }
27036 /^X\(\/\/\)$/{
27037 s//\1/
27038 q
27039 }
27040 /^X\(\/\).*/{
27041 s//\1/
27042 q
27043 }
27044 s/.*/./; q'`
27045 as_dir=$dirpart/$fdir; as_fn_mkdir_p
27046 # echo "creating $dirpart/$file"
27047 echo '# dummy' > "$dirpart/$file"
27048 done
27049 done
27050 }
27051 ;;
27052 "libtool":C)
27053
27054 # See if we are running on zsh, and set the options which allow our
27055 # commands through without removal of \ escapes.
27056 if test -n "${ZSH_VERSION+set}" ; then
27057 setopt NO_GLOB_SUBST
27058 fi
27059
27060 cfgfile="${ofile}T"
27061 trap "$RM \"$cfgfile\"; exit 1" 1 2 15
27062 $RM "$cfgfile"
27063
27064 cat <<_LT_EOF >> "$cfgfile"
27065 #! $SHELL
27066
27067 # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
27068 # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
27069 # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
27070 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
27071 #
27072 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
27073 # 2006, 2007, 2008, 2009, 2010, 2011 Free Software
27074 # Foundation, Inc.
27075 # Written by Gordon Matzigkeit, 1996
27076 #
27077 # This file is part of GNU Libtool.
27078 #
27079 # GNU Libtool is free software; you can redistribute it and/or
27080 # modify it under the terms of the GNU General Public License as
27081 # published by the Free Software Foundation; either version 2 of
27082 # the License, or (at your option) any later version.
27083 #
27084 # As a special exception to the GNU General Public License,
27085 # if you distribute this file as part of a program or library that
27086 # is built using GNU Libtool, you may include this file under the
27087 # same distribution terms that you use for the rest of that program.
27088 #
27089 # GNU Libtool is distributed in the hope that it will be useful,
27090 # but WITHOUT ANY WARRANTY; without even the implied warranty of
27091 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27092 # GNU General Public License for more details.
27093 #
27094 # You should have received a copy of the GNU General Public License
27095 # along with GNU Libtool; see the file COPYING. If not, a copy
27096 # can be downloaded from http://www.gnu.org/licenses/gpl.html, or
27097 # obtained by writing to the Free Software Foundation, Inc.,
27098 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
27099
27100
27101 # The names of the tagged configurations supported by this script.
27102 available_tags="CXX FC "
27103
27104 # ### BEGIN LIBTOOL CONFIG
27105
27106 # Which release of libtool.m4 was used?
27107 macro_version=$macro_version
27108 macro_revision=$macro_revision
27109
27110 # What type of objects to build.
27111 pic_mode=$pic_mode
27112
27113 # Whether or not to build shared libraries.
27114 build_libtool_libs=$enable_shared
27115
27116 # Whether or not to build static libraries.
27117 build_old_libs=$enable_static
27118
27119 # Whether or not to optimize for fast installation.
27120 fast_install=$enable_fast_install
27121
27122 # Shell to use when invoking shell scripts.
27123 SHELL=$lt_SHELL
27124
27125 # An echo program that protects backslashes.
27126 ECHO=$lt_ECHO
27127
27128 # The PATH separator for the build system.
27129 PATH_SEPARATOR=$lt_PATH_SEPARATOR
27130
27131 # The host system.
27132 host_alias=$host_alias
27133 host=$host
27134 host_os=$host_os
27135
27136 # The build system.
27137 build_alias=$build_alias
27138 build=$build
27139 build_os=$build_os
27140
27141 # A sed program that does not truncate output.
27142 SED=$lt_SED
27143
27144 # Sed that helps us avoid accidentally triggering echo(1) options like -n.
27145 Xsed="\$SED -e 1s/^X//"
27146
27147 # A grep program that handles long lines.
27148 GREP=$lt_GREP
27149
27150 # An ERE matcher.
27151 EGREP=$lt_EGREP
27152
27153 # A literal string matcher.
27154 FGREP=$lt_FGREP
27155
27156 # A BSD- or MS-compatible name lister.
27157 NM=$lt_NM
27158
27159 # Whether we need soft or hard links.
27160 LN_S=$lt_LN_S
27161
27162 # What is the maximum length of a command?
27163 max_cmd_len=$max_cmd_len
27164
27165 # Object file suffix (normally "o").
27166 objext=$ac_objext
27167
27168 # Executable file suffix (normally "").
27169 exeext=$exeext
27170
27171 # whether the shell understands "unset".
27172 lt_unset=$lt_unset
27173
27174 # turn spaces into newlines.
27175 SP2NL=$lt_lt_SP2NL
27176
27177 # turn newlines into spaces.
27178 NL2SP=$lt_lt_NL2SP
27179
27180 # convert \$build file names to \$host format.
27181 to_host_file_cmd=$lt_cv_to_host_file_cmd
27182
27183 # convert \$build files to toolchain format.
27184 to_tool_file_cmd=$lt_cv_to_tool_file_cmd
27185
27186 # An object symbol dumper.
27187 OBJDUMP=$lt_OBJDUMP
27188
27189 # Method to check whether dependent libraries are shared objects.
27190 deplibs_check_method=$lt_deplibs_check_method
27191
27192 # Command to use when deplibs_check_method = "file_magic".
27193 file_magic_cmd=$lt_file_magic_cmd
27194
27195 # How to find potential files when deplibs_check_method = "file_magic".
27196 file_magic_glob=$lt_file_magic_glob
27197
27198 # Find potential files using nocaseglob when deplibs_check_method = "file_magic".
27199 want_nocaseglob=$lt_want_nocaseglob
27200
27201 # DLL creation program.
27202 DLLTOOL=$lt_DLLTOOL
27203
27204 # Command to associate shared and link libraries.
27205 sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
27206
27207 # The archiver.
27208 AR=$lt_AR
27209
27210 # Flags to create an archive.
27211 AR_FLAGS=$lt_AR_FLAGS
27212
27213 # How to feed a file listing to the archiver.
27214 archiver_list_spec=$lt_archiver_list_spec
27215
27216 # A symbol stripping program.
27217 STRIP=$lt_STRIP
27218
27219 # Commands used to install an old-style archive.
27220 RANLIB=$lt_RANLIB
27221 old_postinstall_cmds=$lt_old_postinstall_cmds
27222 old_postuninstall_cmds=$lt_old_postuninstall_cmds
27223
27224 # Whether to use a lock for old archive extraction.
27225 lock_old_archive_extraction=$lock_old_archive_extraction
27226
27227 # A C compiler.
27228 LTCC=$lt_CC
27229
27230 # LTCC compiler flags.
27231 LTCFLAGS=$lt_CFLAGS
27232
27233 # Take the output of nm and produce a listing of raw symbols and C names.
27234 global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
27235
27236 # Transform the output of nm in a proper C declaration.
27237 global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
27238
27239 # Transform the output of nm in a C name address pair.
27240 global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
27241
27242 # Transform the output of nm in a C name address pair when lib prefix is needed.
27243 global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
27244
27245 # Specify filename containing input files for \$NM.
27246 nm_file_list_spec=$lt_nm_file_list_spec
27247
27248 # The root where to search for dependent libraries,and in which our libraries should be installed.
27249 lt_sysroot=$lt_sysroot
27250
27251 # The name of the directory that contains temporary libtool files.
27252 objdir=$objdir
27253
27254 # Used to examine libraries when file_magic_cmd begins with "file".
27255 MAGIC_CMD=$MAGIC_CMD
27256
27257 # Must we lock files when doing compilation?
27258 need_locks=$lt_need_locks
27259
27260 # Manifest tool.
27261 MANIFEST_TOOL=$lt_MANIFEST_TOOL
27262
27263 # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
27264 DSYMUTIL=$lt_DSYMUTIL
27265
27266 # Tool to change global to local symbols on Mac OS X.
27267 NMEDIT=$lt_NMEDIT
27268
27269 # Tool to manipulate fat objects and archives on Mac OS X.
27270 LIPO=$lt_LIPO
27271
27272 # ldd/readelf like tool for Mach-O binaries on Mac OS X.
27273 OTOOL=$lt_OTOOL
27274
27275 # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
27276 OTOOL64=$lt_OTOOL64
27277
27278 # Old archive suffix (normally "a").
27279 libext=$libext
27280
27281 # Shared library suffix (normally ".so").
27282 shrext_cmds=$lt_shrext_cmds
27283
27284 # The commands to extract the exported symbol list from a shared archive.
27285 extract_expsyms_cmds=$lt_extract_expsyms_cmds
27286
27287 # Variables whose values should be saved in libtool wrapper scripts and
27288 # restored at link time.
27289 variables_saved_for_relink=$lt_variables_saved_for_relink
27290
27291 # Do we need the "lib" prefix for modules?
27292 need_lib_prefix=$need_lib_prefix
27293
27294 # Do we need a version for libraries?
27295 need_version=$need_version
27296
27297 # Library versioning type.
27298 version_type=$version_type
27299
27300 # Shared library runtime path variable.
27301 runpath_var=$runpath_var
27302
27303 # Shared library path variable.
27304 shlibpath_var=$shlibpath_var
27305
27306 # Is shlibpath searched before the hard-coded library search path?
27307 shlibpath_overrides_runpath=$shlibpath_overrides_runpath
27308
27309 # Format of library name prefix.
27310 libname_spec=$lt_libname_spec
27311
27312 # List of archive names. First name is the real one, the rest are links.
27313 # The last name is the one that the linker finds with -lNAME
27314 library_names_spec=$lt_library_names_spec
27315
27316 # The coded name of the library, if different from the real name.
27317 soname_spec=$lt_soname_spec
27318
27319 # Permission mode override for installation of shared libraries.
27320 install_override_mode=$lt_install_override_mode
27321
27322 # Command to use after installation of a shared archive.
27323 postinstall_cmds=$lt_postinstall_cmds
27324
27325 # Command to use after uninstallation of a shared archive.
27326 postuninstall_cmds=$lt_postuninstall_cmds
27327
27328 # Commands used to finish a libtool library installation in a directory.
27329 finish_cmds=$lt_finish_cmds
27330
27331 # As "finish_cmds", except a single script fragment to be evaled but
27332 # not shown.
27333 finish_eval=$lt_finish_eval
27334
27335 # Whether we should hardcode library paths into libraries.
27336 hardcode_into_libs=$hardcode_into_libs
27337
27338 # Compile-time system search path for libraries.
27339 sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
27340
27341 # Run-time system search path for libraries.
27342 sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
27343
27344 # Whether dlopen is supported.
27345 dlopen_support=$enable_dlopen
27346
27347 # Whether dlopen of programs is supported.
27348 dlopen_self=$enable_dlopen_self
27349
27350 # Whether dlopen of statically linked programs is supported.
27351 dlopen_self_static=$enable_dlopen_self_static
27352
27353 # Commands to strip libraries.
27354 old_striplib=$lt_old_striplib
27355 striplib=$lt_striplib
27356
27357
27358 # The linker used to build libraries.
27359 LD=$lt_LD
27360
27361 # How to create reloadable object files.
27362 reload_flag=$lt_reload_flag
27363 reload_cmds=$lt_reload_cmds
27364
27365 # Commands used to build an old-style archive.
27366 old_archive_cmds=$lt_old_archive_cmds
27367
27368 # A language specific compiler.
27369 CC=$lt_compiler
27370
27371 # Is the compiler the GNU compiler?
27372 with_gcc=$GCC
27373
27374 # Compiler flag to turn off builtin functions.
27375 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
27376
27377 # Additional compiler flags for building library objects.
27378 pic_flag=$lt_lt_prog_compiler_pic
27379
27380 # How to pass a linker flag through the compiler.
27381 wl=$lt_lt_prog_compiler_wl
27382
27383 # Compiler flag to prevent dynamic linking.
27384 link_static_flag=$lt_lt_prog_compiler_static
27385
27386 # Does compiler simultaneously support -c and -o options?
27387 compiler_c_o=$lt_lt_cv_prog_compiler_c_o
27388
27389 # Whether or not to add -lc for building shared libraries.
27390 build_libtool_need_lc=$archive_cmds_need_lc
27391
27392 # Whether or not to disallow shared libs when runtime libs are static.
27393 allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
27394
27395 # Compiler flag to allow reflexive dlopens.
27396 export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
27397
27398 # Compiler flag to generate shared objects directly from archives.
27399 whole_archive_flag_spec=$lt_whole_archive_flag_spec
27400
27401 # Whether the compiler copes with passing no objects directly.
27402 compiler_needs_object=$lt_compiler_needs_object
27403
27404 # Create an old-style archive from a shared archive.
27405 old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
27406
27407 # Create a temporary old-style archive to link instead of a shared archive.
27408 old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
27409
27410 # Commands used to build a shared archive.
27411 archive_cmds=$lt_archive_cmds
27412 archive_expsym_cmds=$lt_archive_expsym_cmds
27413
27414 # Commands used to build a loadable module if different from building
27415 # a shared archive.
27416 module_cmds=$lt_module_cmds
27417 module_expsym_cmds=$lt_module_expsym_cmds
27418
27419 # Whether we are building with GNU ld or not.
27420 with_gnu_ld=$lt_with_gnu_ld
27421
27422 # Flag that allows shared libraries with undefined symbols to be built.
27423 allow_undefined_flag=$lt_allow_undefined_flag
27424
27425 # Flag that enforces no undefined symbols.
27426 no_undefined_flag=$lt_no_undefined_flag
27427
27428 # Flag to hardcode \$libdir into a binary during linking.
27429 # This must work even if \$libdir does not exist
27430 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
27431
27432 # Whether we need a single "-rpath" flag with a separated argument.
27433 hardcode_libdir_separator=$lt_hardcode_libdir_separator
27434
27435 # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
27436 # DIR into the resulting binary.
27437 hardcode_direct=$hardcode_direct
27438
27439 # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
27440 # DIR into the resulting binary and the resulting library dependency is
27441 # "absolute",i.e impossible to change by setting \${shlibpath_var} if the
27442 # library is relocated.
27443 hardcode_direct_absolute=$hardcode_direct_absolute
27444
27445 # Set to "yes" if using the -LDIR flag during linking hardcodes DIR
27446 # into the resulting binary.
27447 hardcode_minus_L=$hardcode_minus_L
27448
27449 # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
27450 # into the resulting binary.
27451 hardcode_shlibpath_var=$hardcode_shlibpath_var
27452
27453 # Set to "yes" if building a shared library automatically hardcodes DIR
27454 # into the library and all subsequent libraries and executables linked
27455 # against it.
27456 hardcode_automatic=$hardcode_automatic
27457
27458 # Set to yes if linker adds runtime paths of dependent libraries
27459 # to runtime path list.
27460 inherit_rpath=$inherit_rpath
27461
27462 # Whether libtool must link a program against all its dependency libraries.
27463 link_all_deplibs=$link_all_deplibs
27464
27465 # Set to "yes" if exported symbols are required.
27466 always_export_symbols=$always_export_symbols
27467
27468 # The commands to list exported symbols.
27469 export_symbols_cmds=$lt_export_symbols_cmds
27470
27471 # Symbols that should not be listed in the preloaded symbols.
27472 exclude_expsyms=$lt_exclude_expsyms
27473
27474 # Symbols that must always be exported.
27475 include_expsyms=$lt_include_expsyms
27476
27477 # Commands necessary for linking programs (against libraries) with templates.
27478 prelink_cmds=$lt_prelink_cmds
27479
27480 # Commands necessary for finishing linking programs.
27481 postlink_cmds=$lt_postlink_cmds
27482
27483 # Specify filename containing input files.
27484 file_list_spec=$lt_file_list_spec
27485
27486 # How to hardcode a shared library path into an executable.
27487 hardcode_action=$hardcode_action
27488
27489 # The directories searched by this compiler when creating a shared library.
27490 compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
27491
27492 # Dependencies to place before and after the objects being linked to
27493 # create a shared library.
27494 predep_objects=$lt_predep_objects
27495 postdep_objects=$lt_postdep_objects
27496 predeps=$lt_predeps
27497 postdeps=$lt_postdeps
27498
27499 # The library search path used internally by the compiler when linking
27500 # a shared library.
27501 compiler_lib_search_path=$lt_compiler_lib_search_path
27502
27503 # ### END LIBTOOL CONFIG
27504
27505 _LT_EOF
27506
27507 case $host_os in
27508 aix3*)
27509 cat <<\_LT_EOF >> "$cfgfile"
27510 # AIX sometimes has problems with the GCC collect2 program. For some
27511 # reason, if we set the COLLECT_NAMES environment variable, the problems
27512 # vanish in a puff of smoke.
27513 if test "X${COLLECT_NAMES+set}" != Xset; then
27514 COLLECT_NAMES=
27515 export COLLECT_NAMES
27516 fi
27517 _LT_EOF
27518 ;;
27519 esac
27520
27521
27522 ltmain="$ac_aux_dir/ltmain.sh"
27523
27524
27525 # We use sed instead of cat because bash on DJGPP gets confused if
27526 # if finds mixed CR/LF and LF-only lines. Since sed operates in
27527 # text mode, it properly converts lines to CR/LF. This bash problem
27528 # is reportedly fixed, but why not run on old versions too?
27529 sed '$q' "$ltmain" >> "$cfgfile" \
27530 || (rm -f "$cfgfile"; exit 1)
27531
27532 if test x"$xsi_shell" = xyes; then
27533 sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
27534 func_dirname ()\
27535 {\
27536 \ case ${1} in\
27537 \ */*) func_dirname_result="${1%/*}${2}" ;;\
27538 \ * ) func_dirname_result="${3}" ;;\
27539 \ esac\
27540 } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
27541 && mv -f "$cfgfile.tmp" "$cfgfile" \
27542 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
27543 test 0 -eq $? || _lt_function_replace_fail=:
27544
27545
27546 sed -e '/^func_basename ()$/,/^} # func_basename /c\
27547 func_basename ()\
27548 {\
27549 \ func_basename_result="${1##*/}"\
27550 } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
27551 && mv -f "$cfgfile.tmp" "$cfgfile" \
27552 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
27553 test 0 -eq $? || _lt_function_replace_fail=:
27554
27555
27556 sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
27557 func_dirname_and_basename ()\
27558 {\
27559 \ case ${1} in\
27560 \ */*) func_dirname_result="${1%/*}${2}" ;;\
27561 \ * ) func_dirname_result="${3}" ;;\
27562 \ esac\
27563 \ func_basename_result="${1##*/}"\
27564 } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
27565 && mv -f "$cfgfile.tmp" "$cfgfile" \
27566 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
27567 test 0 -eq $? || _lt_function_replace_fail=:
27568
27569
27570 sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
27571 func_stripname ()\
27572 {\
27573 \ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
27574 \ # positional parameters, so assign one to ordinary parameter first.\
27575 \ func_stripname_result=${3}\
27576 \ func_stripname_result=${func_stripname_result#"${1}"}\
27577 \ func_stripname_result=${func_stripname_result%"${2}"}\
27578 } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
27579 && mv -f "$cfgfile.tmp" "$cfgfile" \
27580 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
27581 test 0 -eq $? || _lt_function_replace_fail=:
27582
27583
27584 sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
27585 func_split_long_opt ()\
27586 {\
27587 \ func_split_long_opt_name=${1%%=*}\
27588 \ func_split_long_opt_arg=${1#*=}\
27589 } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
27590 && mv -f "$cfgfile.tmp" "$cfgfile" \
27591 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
27592 test 0 -eq $? || _lt_function_replace_fail=:
27593
27594
27595 sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
27596 func_split_short_opt ()\
27597 {\
27598 \ func_split_short_opt_arg=${1#??}\
27599 \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
27600 } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
27601 && mv -f "$cfgfile.tmp" "$cfgfile" \
27602 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
27603 test 0 -eq $? || _lt_function_replace_fail=:
27604
27605
27606 sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
27607 func_lo2o ()\
27608 {\
27609 \ case ${1} in\
27610 \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
27611 \ *) func_lo2o_result=${1} ;;\
27612 \ esac\
27613 } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
27614 && mv -f "$cfgfile.tmp" "$cfgfile" \
27615 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
27616 test 0 -eq $? || _lt_function_replace_fail=:
27617
27618
27619 sed -e '/^func_xform ()$/,/^} # func_xform /c\
27620 func_xform ()\
27621 {\
27622 func_xform_result=${1%.*}.lo\
27623 } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
27624 && mv -f "$cfgfile.tmp" "$cfgfile" \
27625 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
27626 test 0 -eq $? || _lt_function_replace_fail=:
27627
27628
27629 sed -e '/^func_arith ()$/,/^} # func_arith /c\
27630 func_arith ()\
27631 {\
27632 func_arith_result=$(( $* ))\
27633 } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
27634 && mv -f "$cfgfile.tmp" "$cfgfile" \
27635 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
27636 test 0 -eq $? || _lt_function_replace_fail=:
27637
27638
27639 sed -e '/^func_len ()$/,/^} # func_len /c\
27640 func_len ()\
27641 {\
27642 func_len_result=${#1}\
27643 } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
27644 && mv -f "$cfgfile.tmp" "$cfgfile" \
27645 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
27646 test 0 -eq $? || _lt_function_replace_fail=:
27647
27648 fi
27649
27650 if test x"$lt_shell_append" = xyes; then
27651 sed -e '/^func_append ()$/,/^} # func_append /c\
27652 func_append ()\
27653 {\
27654 eval "${1}+=\\${2}"\
27655 } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
27656 && mv -f "$cfgfile.tmp" "$cfgfile" \
27657 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
27658 test 0 -eq $? || _lt_function_replace_fail=:
27659
27660
27661 sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
27662 func_append_quoted ()\
27663 {\
27664 \ func_quote_for_eval "${2}"\
27665 \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
27666 } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
27667 && mv -f "$cfgfile.tmp" "$cfgfile" \
27668 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
27669 test 0 -eq $? || _lt_function_replace_fail=:
27670
27671
27672 # Save a `func_append' function call where possible by direct use of '+='
27673 sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
27674 && mv -f "$cfgfile.tmp" "$cfgfile" \
27675 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
27676 test 0 -eq $? || _lt_function_replace_fail=:
27677 else
27678 # Save a `func_append' function call even when '+=' is not available
27679 sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
27680 && mv -f "$cfgfile.tmp" "$cfgfile" \
27681 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
27682 test 0 -eq $? || _lt_function_replace_fail=:
27683 fi
27684
27685 if test x"$_lt_function_replace_fail" = x":"; then
27686 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
27687 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
27688 fi
27689
27690
27691 mv -f "$cfgfile" "$ofile" ||
27692 (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
27693 chmod +x "$ofile"
27694
27695
27696 cat <<_LT_EOF >> "$ofile"
27697
27698 # ### BEGIN LIBTOOL TAG CONFIG: CXX
27699
27700 # The linker used to build libraries.
27701 LD=$lt_LD_CXX
27702
27703 # How to create reloadable object files.
27704 reload_flag=$lt_reload_flag_CXX
27705 reload_cmds=$lt_reload_cmds_CXX
27706
27707 # Commands used to build an old-style archive.
27708 old_archive_cmds=$lt_old_archive_cmds_CXX
27709
27710 # A language specific compiler.
27711 CC=$lt_compiler_CXX
27712
27713 # Is the compiler the GNU compiler?
27714 with_gcc=$GCC_CXX
27715
27716 # Compiler flag to turn off builtin functions.
27717 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
27718
27719 # Additional compiler flags for building library objects.
27720 pic_flag=$lt_lt_prog_compiler_pic_CXX
27721
27722 # How to pass a linker flag through the compiler.
27723 wl=$lt_lt_prog_compiler_wl_CXX
27724
27725 # Compiler flag to prevent dynamic linking.
27726 link_static_flag=$lt_lt_prog_compiler_static_CXX
27727
27728 # Does compiler simultaneously support -c and -o options?
27729 compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
27730
27731 # Whether or not to add -lc for building shared libraries.
27732 build_libtool_need_lc=$archive_cmds_need_lc_CXX
27733
27734 # Whether or not to disallow shared libs when runtime libs are static.
27735 allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
27736
27737 # Compiler flag to allow reflexive dlopens.
27738 export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
27739
27740 # Compiler flag to generate shared objects directly from archives.
27741 whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
27742
27743 # Whether the compiler copes with passing no objects directly.
27744 compiler_needs_object=$lt_compiler_needs_object_CXX
27745
27746 # Create an old-style archive from a shared archive.
27747 old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
27748
27749 # Create a temporary old-style archive to link instead of a shared archive.
27750 old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
27751
27752 # Commands used to build a shared archive.
27753 archive_cmds=$lt_archive_cmds_CXX
27754 archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
27755
27756 # Commands used to build a loadable module if different from building
27757 # a shared archive.
27758 module_cmds=$lt_module_cmds_CXX
27759 module_expsym_cmds=$lt_module_expsym_cmds_CXX
27760
27761 # Whether we are building with GNU ld or not.
27762 with_gnu_ld=$lt_with_gnu_ld_CXX
27763
27764 # Flag that allows shared libraries with undefined symbols to be built.
27765 allow_undefined_flag=$lt_allow_undefined_flag_CXX
27766
27767 # Flag that enforces no undefined symbols.
27768 no_undefined_flag=$lt_no_undefined_flag_CXX
27769
27770 # Flag to hardcode \$libdir into a binary during linking.
27771 # This must work even if \$libdir does not exist
27772 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
27773
27774 # Whether we need a single "-rpath" flag with a separated argument.
27775 hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
27776
27777 # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
27778 # DIR into the resulting binary.
27779 hardcode_direct=$hardcode_direct_CXX
27780
27781 # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
27782 # DIR into the resulting binary and the resulting library dependency is
27783 # "absolute",i.e impossible to change by setting \${shlibpath_var} if the
27784 # library is relocated.
27785 hardcode_direct_absolute=$hardcode_direct_absolute_CXX
27786
27787 # Set to "yes" if using the -LDIR flag during linking hardcodes DIR
27788 # into the resulting binary.
27789 hardcode_minus_L=$hardcode_minus_L_CXX
27790
27791 # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
27792 # into the resulting binary.
27793 hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
27794
27795 # Set to "yes" if building a shared library automatically hardcodes DIR
27796 # into the library and all subsequent libraries and executables linked
27797 # against it.
27798 hardcode_automatic=$hardcode_automatic_CXX
27799
27800 # Set to yes if linker adds runtime paths of dependent libraries
27801 # to runtime path list.
27802 inherit_rpath=$inherit_rpath_CXX
27803
27804 # Whether libtool must link a program against all its dependency libraries.
27805 link_all_deplibs=$link_all_deplibs_CXX
27806
27807 # Set to "yes" if exported symbols are required.
27808 always_export_symbols=$always_export_symbols_CXX
27809
27810 # The commands to list exported symbols.
27811 export_symbols_cmds=$lt_export_symbols_cmds_CXX
27812
27813 # Symbols that should not be listed in the preloaded symbols.
27814 exclude_expsyms=$lt_exclude_expsyms_CXX
27815
27816 # Symbols that must always be exported.
27817 include_expsyms=$lt_include_expsyms_CXX
27818
27819 # Commands necessary for linking programs (against libraries) with templates.
27820 prelink_cmds=$lt_prelink_cmds_CXX
27821
27822 # Commands necessary for finishing linking programs.
27823 postlink_cmds=$lt_postlink_cmds_CXX
27824
27825 # Specify filename containing input files.
27826 file_list_spec=$lt_file_list_spec_CXX
27827
27828 # How to hardcode a shared library path into an executable.
27829 hardcode_action=$hardcode_action_CXX
27830
27831 # The directories searched by this compiler when creating a shared library.
27832 compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
27833
27834 # Dependencies to place before and after the objects being linked to
27835 # create a shared library.
27836 predep_objects=$lt_predep_objects_CXX
27837 postdep_objects=$lt_postdep_objects_CXX
27838 predeps=$lt_predeps_CXX
27839 postdeps=$lt_postdeps_CXX
27840
27841 # The library search path used internally by the compiler when linking
27842 # a shared library.
27843 compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
27844
27845 # ### END LIBTOOL TAG CONFIG: CXX
27846 _LT_EOF
27847
27848
27849 cat <<_LT_EOF >> "$ofile"
27850
27851 # ### BEGIN LIBTOOL TAG CONFIG: FC
27852
27853 # The linker used to build libraries.
27854 LD=$lt_LD_FC
27855
27856 # How to create reloadable object files.
27857 reload_flag=$lt_reload_flag_FC
27858 reload_cmds=$lt_reload_cmds_FC
27859
27860 # Commands used to build an old-style archive.
27861 old_archive_cmds=$lt_old_archive_cmds_FC
27862
27863 # A language specific compiler.
27864 CC=$lt_compiler_FC
27865
27866 # Is the compiler the GNU compiler?
27867 with_gcc=$GCC_FC
27868
27869 # Compiler flag to turn off builtin functions.
27870 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_FC
27871
27872 # Additional compiler flags for building library objects.
27873 pic_flag=$lt_lt_prog_compiler_pic_FC
27874
27875 # How to pass a linker flag through the compiler.
27876 wl=$lt_lt_prog_compiler_wl_FC
27877
27878 # Compiler flag to prevent dynamic linking.
27879 link_static_flag=$lt_lt_prog_compiler_static_FC
27880
27881 # Does compiler simultaneously support -c and -o options?
27882 compiler_c_o=$lt_lt_cv_prog_compiler_c_o_FC
27883
27884 # Whether or not to add -lc for building shared libraries.
27885 build_libtool_need_lc=$archive_cmds_need_lc_FC
27886
27887 # Whether or not to disallow shared libs when runtime libs are static.
27888 allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_FC
27889
27890 # Compiler flag to allow reflexive dlopens.
27891 export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_FC
27892
27893 # Compiler flag to generate shared objects directly from archives.
27894 whole_archive_flag_spec=$lt_whole_archive_flag_spec_FC
27895
27896 # Whether the compiler copes with passing no objects directly.
27897 compiler_needs_object=$lt_compiler_needs_object_FC
27898
27899 # Create an old-style archive from a shared archive.
27900 old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_FC
27901
27902 # Create a temporary old-style archive to link instead of a shared archive.
27903 old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_FC
27904
27905 # Commands used to build a shared archive.
27906 archive_cmds=$lt_archive_cmds_FC
27907 archive_expsym_cmds=$lt_archive_expsym_cmds_FC
27908
27909 # Commands used to build a loadable module if different from building
27910 # a shared archive.
27911 module_cmds=$lt_module_cmds_FC
27912 module_expsym_cmds=$lt_module_expsym_cmds_FC
27913
27914 # Whether we are building with GNU ld or not.
27915 with_gnu_ld=$lt_with_gnu_ld_FC
27916
27917 # Flag that allows shared libraries with undefined symbols to be built.
27918 allow_undefined_flag=$lt_allow_undefined_flag_FC
27919
27920 # Flag that enforces no undefined symbols.
27921 no_undefined_flag=$lt_no_undefined_flag_FC
27922
27923 # Flag to hardcode \$libdir into a binary during linking.
27924 # This must work even if \$libdir does not exist
27925 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_FC
27926
27927 # Whether we need a single "-rpath" flag with a separated argument.
27928 hardcode_libdir_separator=$lt_hardcode_libdir_separator_FC
27929
27930 # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
27931 # DIR into the resulting binary.
27932 hardcode_direct=$hardcode_direct_FC
27933
27934 # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
27935 # DIR into the resulting binary and the resulting library dependency is
27936 # "absolute",i.e impossible to change by setting \${shlibpath_var} if the
27937 # library is relocated.
27938 hardcode_direct_absolute=$hardcode_direct_absolute_FC
27939
27940 # Set to "yes" if using the -LDIR flag during linking hardcodes DIR
27941 # into the resulting binary.
27942 hardcode_minus_L=$hardcode_minus_L_FC
27943
27944 # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
27945 # into the resulting binary.
27946 hardcode_shlibpath_var=$hardcode_shlibpath_var_FC
27947
27948 # Set to "yes" if building a shared library automatically hardcodes DIR
27949 # into the library and all subsequent libraries and executables linked
27950 # against it.
27951 hardcode_automatic=$hardcode_automatic_FC
27952
27953 # Set to yes if linker adds runtime paths of dependent libraries
27954 # to runtime path list.
27955 inherit_rpath=$inherit_rpath_FC
27956
27957 # Whether libtool must link a program against all its dependency libraries.
27958 link_all_deplibs=$link_all_deplibs_FC
27959
27960 # Set to "yes" if exported symbols are required.
27961 always_export_symbols=$always_export_symbols_FC
27962
27963 # The commands to list exported symbols.
27964 export_symbols_cmds=$lt_export_symbols_cmds_FC
27965
27966 # Symbols that should not be listed in the preloaded symbols.
27967 exclude_expsyms=$lt_exclude_expsyms_FC
27968
27969 # Symbols that must always be exported.
27970 include_expsyms=$lt_include_expsyms_FC
27971
27972 # Commands necessary for linking programs (against libraries) with templates.
27973 prelink_cmds=$lt_prelink_cmds_FC
27974
27975 # Commands necessary for finishing linking programs.
27976 postlink_cmds=$lt_postlink_cmds_FC
27977
27978 # Specify filename containing input files.
27979 file_list_spec=$lt_file_list_spec_FC
27980
27981 # How to hardcode a shared library path into an executable.
27982 hardcode_action=$hardcode_action_FC
27983
27984 # The directories searched by this compiler when creating a shared library.
27985 compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_FC
27986
27987 # Dependencies to place before and after the objects being linked to
27988 # create a shared library.
27989 predep_objects=$lt_predep_objects_FC
27990 postdep_objects=$lt_postdep_objects_FC
27991 predeps=$lt_predeps_FC
27992 postdeps=$lt_postdeps_FC
27993
27994 # The library search path used internally by the compiler when linking
27995 # a shared library.
27996 compiler_lib_search_path=$lt_compiler_lib_search_path_FC
27997
27998 # ### END LIBTOOL TAG CONFIG: FC
27999 _LT_EOF
28000
28001 ;;
28002
28003 esac
28004 done # for ac_tag
28005
28006
28007 as_fn_exit 0
28008 _ACEOF
28009 ac_clean_files=$ac_clean_files_save
28010
28011 test $ac_write_fail = 0 ||
28012 as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
28013
28014
28015 # configure is writing to config.log, and then calls config.status.
28016 # config.status does its own redirection, appending to config.log.
28017 # Unfortunately, on DOS this fails, as config.log is still kept open
28018 # by configure, so config.status won't be able to write to it; its
28019 # output is simply discarded. So we exec the FD to /dev/null,
28020 # effectively closing config.log, so it can be properly (re)opened and
28021 # appended to by config.status. When coming back to configure, we
28022 # need to make the FD available again.
28023 if test "$no_create" != yes; then
28024 ac_cs_success=:
28025 ac_config_status_args=
28026 test "$silent" = yes &&
28027 ac_config_status_args="$ac_config_status_args --quiet"
28028 exec 5>/dev/null
28029 $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
28030 exec 5>>config.log
28031 # Use ||, not &&, to avoid exiting from the if with $? = 1, which
28032 # would make configure fail if this is the last instruction.
28033 $ac_cs_success || as_fn_exit 1
28034 fi
28035 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
28036 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
28037 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
28038 fi
28039
28040 chmod a+x getfem-config-notinstalled
28041 chmod a+x getfem-config
28042 chmod a+x gmm-config
28043
28044
28045 if test -z ""`echo $srcdir | grep "^/"`; then
28046 addpathm="../"
28047 else
28048 addpathm=""
28049 fi
28050
28051 if test ! -d tests/meshes; then
28052 ln -s $addpathm$srcdir/tests/meshes tests/meshes
28053 fi;
28054
28055
28056
28057 echo
28058 echo "------------------------------------------------------------------------------"
28059 echo
28060 echo "Libraries Used:"
28061 echo "---------------"
28062 echo
28063
28064
28065
28066 if test "x$useQDlib" = "xyes" ; then
28067 echo "- QD library found. High precision (${QD_PREC}-double precision) polynomials"
28068 echo " and integration methods are enabled.";
28069 else
28070 echo "- QD library not found (don't worry, this library is only recommended for very specific uses)."
28071 fi;
28072
28073 if test "x$useQHULL" = "xyes"; then
28074 echo "- Qhull found. Using the Qhull library for delaunay triangulations."
28075 else
28076 echo "- Qhull not found. Mesh generation will be disabled."
28077 fi;
28078
28079 if test "x$usemumps" = "xyes"; then
28080 echo "- Mumps found. A direct solver for large sparse linear systems."
28081 else
28082 echo "- Mumps not found. Not using the MUMPS library for large sparse linear systems."
28083 fi;
28084
28085 if test x"$acx_lapack_ok" = xyes; then
28086 echo "- Lapack library found: $LAPACK_LIBS"
28087 else
28088 echo "- Lapack library not found: generic (less effective) algorithms will be used"
28089 fi
28090
28091 if test "x$HAVE_VENDOR_BLAS" = "x0"; then
28092 echo "- *** No usable blas library was found ***"
28093 echo " A generic BLAS implementation will be used, however you should "
28094 echo " consider installing a faster BLAS, such as ATLAS"
28095 else
28096 echo "- BLAS library found. Link options: $BLAS_LIBS"
28097 fi;
28098 echo " You can give the location of your prefered blas library with either"
28099 echo " the --with-blas=<lib> option, or the BLAS_LIBS environment variable"
28100 echo ' for example: ./configure BLAS_LIBS="-L/usr/lib/sse2/atlas/ -lblas"'
28101 echo -e "\n\n"
28102
28103
28104 echo "-----------------------------------------------------------------------"
28105 echo "Ready to build getfem"
28106 echo " building MATLAB interface: $usematlab"
28107 echo " building PYTHON interface: $usepython (requires numpy, scipy and also mpi4py for the parallel version)"
28108 echo " building SCILAB interface: $usescilab"
28109 echo " If you want to build the shared library of getfem++, use --enable-shared"
28110 echo " (by default, only the static one will be built)"
28111 echo "-----------------------------------------------------------------------"
28112
28113 case $host in
28114 x86_64-*)
28115 if test $usematlab = "YES" -o $usepython = "YES"; then
28116 if test $pic_mode != "yes"; then
28117 echo "!!!!!"
28118 echo "!!!!! Your build will fail because you did not use the --with-pic option"
28119 echo "!!!!! This is required for the getfem interfaces on x86_64"
28120 echo ""
28121 fi
28122 fi
28123 ;;
28124 esac
28125
28126 if test "x$MSG" != "x"; then
28127 echo -e "\n\nWARNINGS during the configure:\n$MSG\n\n"
28128 fi
+0
-791
depcomp less more
0 #! /bin/sh
1 # depcomp - compile a program generating dependencies as side-effects
2
3 scriptversion=2013-05-30.07; # UTC
4
5 # Copyright (C) 1999-2013 Free Software Foundation, Inc.
6
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2, or (at your option)
10 # any later version.
11
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
16
17 # You should have received a copy of the GNU General Public License
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
19
20 # As a special exception to the GNU General Public License, if you
21 # distribute this file as part of a program that contains a
22 # configuration script generated by Autoconf, you may include it under
23 # the same distribution terms that you use for the rest of that program.
24
25 # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
26
27 case $1 in
28 '')
29 echo "$0: No command. Try '$0 --help' for more information." 1>&2
30 exit 1;
31 ;;
32 -h | --h*)
33 cat <<\EOF
34 Usage: depcomp [--help] [--version] PROGRAM [ARGS]
35
36 Run PROGRAMS ARGS to compile a file, generating dependencies
37 as side-effects.
38
39 Environment variables:
40 depmode Dependency tracking mode.
41 source Source file read by 'PROGRAMS ARGS'.
42 object Object file output by 'PROGRAMS ARGS'.
43 DEPDIR directory where to store dependencies.
44 depfile Dependency file to output.
45 tmpdepfile Temporary file to use when outputting dependencies.
46 libtool Whether libtool is used (yes/no).
47
48 Report bugs to <bug-automake@gnu.org>.
49 EOF
50 exit $?
51 ;;
52 -v | --v*)
53 echo "depcomp $scriptversion"
54 exit $?
55 ;;
56 esac
57
58 # Get the directory component of the given path, and save it in the
59 # global variables '$dir'. Note that this directory component will
60 # be either empty or ending with a '/' character. This is deliberate.
61 set_dir_from ()
62 {
63 case $1 in
64 */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
65 *) dir=;;
66 esac
67 }
68
69 # Get the suffix-stripped basename of the given path, and save it the
70 # global variable '$base'.
71 set_base_from ()
72 {
73 base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
74 }
75
76 # If no dependency file was actually created by the compiler invocation,
77 # we still have to create a dummy depfile, to avoid errors with the
78 # Makefile "include basename.Plo" scheme.
79 make_dummy_depfile ()
80 {
81 echo "#dummy" > "$depfile"
82 }
83
84 # Factor out some common post-processing of the generated depfile.
85 # Requires the auxiliary global variable '$tmpdepfile' to be set.
86 aix_post_process_depfile ()
87 {
88 # If the compiler actually managed to produce a dependency file,
89 # post-process it.
90 if test -f "$tmpdepfile"; then
91 # Each line is of the form 'foo.o: dependency.h'.
92 # Do two passes, one to just change these to
93 # $object: dependency.h
94 # and one to simply output
95 # dependency.h:
96 # which is needed to avoid the deleted-header problem.
97 { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
98 sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
99 } > "$depfile"
100 rm -f "$tmpdepfile"
101 else
102 make_dummy_depfile
103 fi
104 }
105
106 # A tabulation character.
107 tab=' '
108 # A newline character.
109 nl='
110 '
111 # Character ranges might be problematic outside the C locale.
112 # These definitions help.
113 upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
114 lower=abcdefghijklmnopqrstuvwxyz
115 digits=0123456789
116 alpha=${upper}${lower}
117
118 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
119 echo "depcomp: Variables source, object and depmode must be set" 1>&2
120 exit 1
121 fi
122
123 # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
124 depfile=${depfile-`echo "$object" |
125 sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
126 tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
127
128 rm -f "$tmpdepfile"
129
130 # Avoid interferences from the environment.
131 gccflag= dashmflag=
132
133 # Some modes work just like other modes, but use different flags. We
134 # parameterize here, but still list the modes in the big case below,
135 # to make depend.m4 easier to write. Note that we *cannot* use a case
136 # here, because this file can only contain one case statement.
137 if test "$depmode" = hp; then
138 # HP compiler uses -M and no extra arg.
139 gccflag=-M
140 depmode=gcc
141 fi
142
143 if test "$depmode" = dashXmstdout; then
144 # This is just like dashmstdout with a different argument.
145 dashmflag=-xM
146 depmode=dashmstdout
147 fi
148
149 cygpath_u="cygpath -u -f -"
150 if test "$depmode" = msvcmsys; then
151 # This is just like msvisualcpp but w/o cygpath translation.
152 # Just convert the backslash-escaped backslashes to single forward
153 # slashes to satisfy depend.m4
154 cygpath_u='sed s,\\\\,/,g'
155 depmode=msvisualcpp
156 fi
157
158 if test "$depmode" = msvc7msys; then
159 # This is just like msvc7 but w/o cygpath translation.
160 # Just convert the backslash-escaped backslashes to single forward
161 # slashes to satisfy depend.m4
162 cygpath_u='sed s,\\\\,/,g'
163 depmode=msvc7
164 fi
165
166 if test "$depmode" = xlc; then
167 # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
168 gccflag=-qmakedep=gcc,-MF
169 depmode=gcc
170 fi
171
172 case "$depmode" in
173 gcc3)
174 ## gcc 3 implements dependency tracking that does exactly what
175 ## we want. Yay! Note: for some reason libtool 1.4 doesn't like
176 ## it if -MD -MP comes after the -MF stuff. Hmm.
177 ## Unfortunately, FreeBSD c89 acceptance of flags depends upon
178 ## the command line argument order; so add the flags where they
179 ## appear in depend2.am. Note that the slowdown incurred here
180 ## affects only configure: in makefiles, %FASTDEP% shortcuts this.
181 for arg
182 do
183 case $arg in
184 -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
185 *) set fnord "$@" "$arg" ;;
186 esac
187 shift # fnord
188 shift # $arg
189 done
190 "$@"
191 stat=$?
192 if test $stat -ne 0; then
193 rm -f "$tmpdepfile"
194 exit $stat
195 fi
196 mv "$tmpdepfile" "$depfile"
197 ;;
198
199 gcc)
200 ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
201 ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
202 ## (see the conditional assignment to $gccflag above).
203 ## There are various ways to get dependency output from gcc. Here's
204 ## why we pick this rather obscure method:
205 ## - Don't want to use -MD because we'd like the dependencies to end
206 ## up in a subdir. Having to rename by hand is ugly.
207 ## (We might end up doing this anyway to support other compilers.)
208 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
209 ## -MM, not -M (despite what the docs say). Also, it might not be
210 ## supported by the other compilers which use the 'gcc' depmode.
211 ## - Using -M directly means running the compiler twice (even worse
212 ## than renaming).
213 if test -z "$gccflag"; then
214 gccflag=-MD,
215 fi
216 "$@" -Wp,"$gccflag$tmpdepfile"
217 stat=$?
218 if test $stat -ne 0; then
219 rm -f "$tmpdepfile"
220 exit $stat
221 fi
222 rm -f "$depfile"
223 echo "$object : \\" > "$depfile"
224 # The second -e expression handles DOS-style file names with drive
225 # letters.
226 sed -e 's/^[^:]*: / /' \
227 -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
228 ## This next piece of magic avoids the "deleted header file" problem.
229 ## The problem is that when a header file which appears in a .P file
230 ## is deleted, the dependency causes make to die (because there is
231 ## typically no way to rebuild the header). We avoid this by adding
232 ## dummy dependencies for each header file. Too bad gcc doesn't do
233 ## this for us directly.
234 ## Some versions of gcc put a space before the ':'. On the theory
235 ## that the space means something, we add a space to the output as
236 ## well. hp depmode also adds that space, but also prefixes the VPATH
237 ## to the object. Take care to not repeat it in the output.
238 ## Some versions of the HPUX 10.20 sed can't process this invocation
239 ## correctly. Breaking it into two sed invocations is a workaround.
240 tr ' ' "$nl" < "$tmpdepfile" \
241 | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
242 | sed -e 's/$/ :/' >> "$depfile"
243 rm -f "$tmpdepfile"
244 ;;
245
246 hp)
247 # This case exists only to let depend.m4 do its work. It works by
248 # looking at the text of this script. This case will never be run,
249 # since it is checked for above.
250 exit 1
251 ;;
252
253 sgi)
254 if test "$libtool" = yes; then
255 "$@" "-Wp,-MDupdate,$tmpdepfile"
256 else
257 "$@" -MDupdate "$tmpdepfile"
258 fi
259 stat=$?
260 if test $stat -ne 0; then
261 rm -f "$tmpdepfile"
262 exit $stat
263 fi
264 rm -f "$depfile"
265
266 if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
267 echo "$object : \\" > "$depfile"
268 # Clip off the initial element (the dependent). Don't try to be
269 # clever and replace this with sed code, as IRIX sed won't handle
270 # lines with more than a fixed number of characters (4096 in
271 # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
272 # the IRIX cc adds comments like '#:fec' to the end of the
273 # dependency line.
274 tr ' ' "$nl" < "$tmpdepfile" \
275 | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
276 | tr "$nl" ' ' >> "$depfile"
277 echo >> "$depfile"
278 # The second pass generates a dummy entry for each header file.
279 tr ' ' "$nl" < "$tmpdepfile" \
280 | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
281 >> "$depfile"
282 else
283 make_dummy_depfile
284 fi
285 rm -f "$tmpdepfile"
286 ;;
287
288 xlc)
289 # This case exists only to let depend.m4 do its work. It works by
290 # looking at the text of this script. This case will never be run,
291 # since it is checked for above.
292 exit 1
293 ;;
294
295 aix)
296 # The C for AIX Compiler uses -M and outputs the dependencies
297 # in a .u file. In older versions, this file always lives in the
298 # current directory. Also, the AIX compiler puts '$object:' at the
299 # start of each line; $object doesn't have directory information.
300 # Version 6 uses the directory in both cases.
301 set_dir_from "$object"
302 set_base_from "$object"
303 if test "$libtool" = yes; then
304 tmpdepfile1=$dir$base.u
305 tmpdepfile2=$base.u
306 tmpdepfile3=$dir.libs/$base.u
307 "$@" -Wc,-M
308 else
309 tmpdepfile1=$dir$base.u
310 tmpdepfile2=$dir$base.u
311 tmpdepfile3=$dir$base.u
312 "$@" -M
313 fi
314 stat=$?
315 if test $stat -ne 0; then
316 rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
317 exit $stat
318 fi
319
320 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
321 do
322 test -f "$tmpdepfile" && break
323 done
324 aix_post_process_depfile
325 ;;
326
327 tcc)
328 # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
329 # FIXME: That version still under development at the moment of writing.
330 # Make that this statement remains true also for stable, released
331 # versions.
332 # It will wrap lines (doesn't matter whether long or short) with a
333 # trailing '\', as in:
334 #
335 # foo.o : \
336 # foo.c \
337 # foo.h \
338 #
339 # It will put a trailing '\' even on the last line, and will use leading
340 # spaces rather than leading tabs (at least since its commit 0394caf7
341 # "Emit spaces for -MD").
342 "$@" -MD -MF "$tmpdepfile"
343 stat=$?
344 if test $stat -ne 0; then
345 rm -f "$tmpdepfile"
346 exit $stat
347 fi
348 rm -f "$depfile"
349 # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
350 # We have to change lines of the first kind to '$object: \'.
351 sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
352 # And for each line of the second kind, we have to emit a 'dep.h:'
353 # dummy dependency, to avoid the deleted-header problem.
354 sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
355 rm -f "$tmpdepfile"
356 ;;
357
358 ## The order of this option in the case statement is important, since the
359 ## shell code in configure will try each of these formats in the order
360 ## listed in this file. A plain '-MD' option would be understood by many
361 ## compilers, so we must ensure this comes after the gcc and icc options.
362 pgcc)
363 # Portland's C compiler understands '-MD'.
364 # Will always output deps to 'file.d' where file is the root name of the
365 # source file under compilation, even if file resides in a subdirectory.
366 # The object file name does not affect the name of the '.d' file.
367 # pgcc 10.2 will output
368 # foo.o: sub/foo.c sub/foo.h
369 # and will wrap long lines using '\' :
370 # foo.o: sub/foo.c ... \
371 # sub/foo.h ... \
372 # ...
373 set_dir_from "$object"
374 # Use the source, not the object, to determine the base name, since
375 # that's sadly what pgcc will do too.
376 set_base_from "$source"
377 tmpdepfile=$base.d
378
379 # For projects that build the same source file twice into different object
380 # files, the pgcc approach of using the *source* file root name can cause
381 # problems in parallel builds. Use a locking strategy to avoid stomping on
382 # the same $tmpdepfile.
383 lockdir=$base.d-lock
384 trap "
385 echo '$0: caught signal, cleaning up...' >&2
386 rmdir '$lockdir'
387 exit 1
388 " 1 2 13 15
389 numtries=100
390 i=$numtries
391 while test $i -gt 0; do
392 # mkdir is a portable test-and-set.
393 if mkdir "$lockdir" 2>/dev/null; then
394 # This process acquired the lock.
395 "$@" -MD
396 stat=$?
397 # Release the lock.
398 rmdir "$lockdir"
399 break
400 else
401 # If the lock is being held by a different process, wait
402 # until the winning process is done or we timeout.
403 while test -d "$lockdir" && test $i -gt 0; do
404 sleep 1
405 i=`expr $i - 1`
406 done
407 fi
408 i=`expr $i - 1`
409 done
410 trap - 1 2 13 15
411 if test $i -le 0; then
412 echo "$0: failed to acquire lock after $numtries attempts" >&2
413 echo "$0: check lockdir '$lockdir'" >&2
414 exit 1
415 fi
416
417 if test $stat -ne 0; then
418 rm -f "$tmpdepfile"
419 exit $stat
420 fi
421 rm -f "$depfile"
422 # Each line is of the form `foo.o: dependent.h',
423 # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
424 # Do two passes, one to just change these to
425 # `$object: dependent.h' and one to simply `dependent.h:'.
426 sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
427 # Some versions of the HPUX 10.20 sed can't process this invocation
428 # correctly. Breaking it into two sed invocations is a workaround.
429 sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
430 | sed -e 's/$/ :/' >> "$depfile"
431 rm -f "$tmpdepfile"
432 ;;
433
434 hp2)
435 # The "hp" stanza above does not work with aCC (C++) and HP's ia64
436 # compilers, which have integrated preprocessors. The correct option
437 # to use with these is +Maked; it writes dependencies to a file named
438 # 'foo.d', which lands next to the object file, wherever that
439 # happens to be.
440 # Much of this is similar to the tru64 case; see comments there.
441 set_dir_from "$object"
442 set_base_from "$object"
443 if test "$libtool" = yes; then
444 tmpdepfile1=$dir$base.d
445 tmpdepfile2=$dir.libs/$base.d
446 "$@" -Wc,+Maked
447 else
448 tmpdepfile1=$dir$base.d
449 tmpdepfile2=$dir$base.d
450 "$@" +Maked
451 fi
452 stat=$?
453 if test $stat -ne 0; then
454 rm -f "$tmpdepfile1" "$tmpdepfile2"
455 exit $stat
456 fi
457
458 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
459 do
460 test -f "$tmpdepfile" && break
461 done
462 if test -f "$tmpdepfile"; then
463 sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
464 # Add 'dependent.h:' lines.
465 sed -ne '2,${
466 s/^ *//
467 s/ \\*$//
468 s/$/:/
469 p
470 }' "$tmpdepfile" >> "$depfile"
471 else
472 make_dummy_depfile
473 fi
474 rm -f "$tmpdepfile" "$tmpdepfile2"
475 ;;
476
477 tru64)
478 # The Tru64 compiler uses -MD to generate dependencies as a side
479 # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
480 # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
481 # dependencies in 'foo.d' instead, so we check for that too.
482 # Subdirectories are respected.
483 set_dir_from "$object"
484 set_base_from "$object"
485
486 if test "$libtool" = yes; then
487 # Libtool generates 2 separate objects for the 2 libraries. These
488 # two compilations output dependencies in $dir.libs/$base.o.d and
489 # in $dir$base.o.d. We have to check for both files, because
490 # one of the two compilations can be disabled. We should prefer
491 # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
492 # automatically cleaned when .libs/ is deleted, while ignoring
493 # the former would cause a distcleancheck panic.
494 tmpdepfile1=$dir$base.o.d # libtool 1.5
495 tmpdepfile2=$dir.libs/$base.o.d # Likewise.
496 tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
497 "$@" -Wc,-MD
498 else
499 tmpdepfile1=$dir$base.d
500 tmpdepfile2=$dir$base.d
501 tmpdepfile3=$dir$base.d
502 "$@" -MD
503 fi
504
505 stat=$?
506 if test $stat -ne 0; then
507 rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
508 exit $stat
509 fi
510
511 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
512 do
513 test -f "$tmpdepfile" && break
514 done
515 # Same post-processing that is required for AIX mode.
516 aix_post_process_depfile
517 ;;
518
519 msvc7)
520 if test "$libtool" = yes; then
521 showIncludes=-Wc,-showIncludes
522 else
523 showIncludes=-showIncludes
524 fi
525 "$@" $showIncludes > "$tmpdepfile"
526 stat=$?
527 grep -v '^Note: including file: ' "$tmpdepfile"
528 if test $stat -ne 0; then
529 rm -f "$tmpdepfile"
530 exit $stat
531 fi
532 rm -f "$depfile"
533 echo "$object : \\" > "$depfile"
534 # The first sed program below extracts the file names and escapes
535 # backslashes for cygpath. The second sed program outputs the file
536 # name when reading, but also accumulates all include files in the
537 # hold buffer in order to output them again at the end. This only
538 # works with sed implementations that can handle large buffers.
539 sed < "$tmpdepfile" -n '
540 /^Note: including file: *\(.*\)/ {
541 s//\1/
542 s/\\/\\\\/g
543 p
544 }' | $cygpath_u | sort -u | sed -n '
545 s/ /\\ /g
546 s/\(.*\)/'"$tab"'\1 \\/p
547 s/.\(.*\) \\/\1:/
548 H
549 $ {
550 s/.*/'"$tab"'/
551 G
552 p
553 }' >> "$depfile"
554 echo >> "$depfile" # make sure the fragment doesn't end with a backslash
555 rm -f "$tmpdepfile"
556 ;;
557
558 msvc7msys)
559 # This case exists only to let depend.m4 do its work. It works by
560 # looking at the text of this script. This case will never be run,
561 # since it is checked for above.
562 exit 1
563 ;;
564
565 #nosideeffect)
566 # This comment above is used by automake to tell side-effect
567 # dependency tracking mechanisms from slower ones.
568
569 dashmstdout)
570 # Important note: in order to support this mode, a compiler *must*
571 # always write the preprocessed file to stdout, regardless of -o.
572 "$@" || exit $?
573
574 # Remove the call to Libtool.
575 if test "$libtool" = yes; then
576 while test "X$1" != 'X--mode=compile'; do
577 shift
578 done
579 shift
580 fi
581
582 # Remove '-o $object'.
583 IFS=" "
584 for arg
585 do
586 case $arg in
587 -o)
588 shift
589 ;;
590 $object)
591 shift
592 ;;
593 *)
594 set fnord "$@" "$arg"
595 shift # fnord
596 shift # $arg
597 ;;
598 esac
599 done
600
601 test -z "$dashmflag" && dashmflag=-M
602 # Require at least two characters before searching for ':'
603 # in the target name. This is to cope with DOS-style filenames:
604 # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
605 "$@" $dashmflag |
606 sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
607 rm -f "$depfile"
608 cat < "$tmpdepfile" > "$depfile"
609 # Some versions of the HPUX 10.20 sed can't process this sed invocation
610 # correctly. Breaking it into two sed invocations is a workaround.
611 tr ' ' "$nl" < "$tmpdepfile" \
612 | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
613 | sed -e 's/$/ :/' >> "$depfile"
614 rm -f "$tmpdepfile"
615 ;;
616
617 dashXmstdout)
618 # This case only exists to satisfy depend.m4. It is never actually
619 # run, as this mode is specially recognized in the preamble.
620 exit 1
621 ;;
622
623 makedepend)
624 "$@" || exit $?
625 # Remove any Libtool call
626 if test "$libtool" = yes; then
627 while test "X$1" != 'X--mode=compile'; do
628 shift
629 done
630 shift
631 fi
632 # X makedepend
633 shift
634 cleared=no eat=no
635 for arg
636 do
637 case $cleared in
638 no)
639 set ""; shift
640 cleared=yes ;;
641 esac
642 if test $eat = yes; then
643 eat=no
644 continue
645 fi
646 case "$arg" in
647 -D*|-I*)
648 set fnord "$@" "$arg"; shift ;;
649 # Strip any option that makedepend may not understand. Remove
650 # the object too, otherwise makedepend will parse it as a source file.
651 -arch)
652 eat=yes ;;
653 -*|$object)
654 ;;
655 *)
656 set fnord "$@" "$arg"; shift ;;
657 esac
658 done
659 obj_suffix=`echo "$object" | sed 's/^.*\././'`
660 touch "$tmpdepfile"
661 ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
662 rm -f "$depfile"
663 # makedepend may prepend the VPATH from the source file name to the object.
664 # No need to regex-escape $object, excess matching of '.' is harmless.
665 sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
666 # Some versions of the HPUX 10.20 sed can't process the last invocation
667 # correctly. Breaking it into two sed invocations is a workaround.
668 sed '1,2d' "$tmpdepfile" \
669 | tr ' ' "$nl" \
670 | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
671 | sed -e 's/$/ :/' >> "$depfile"
672 rm -f "$tmpdepfile" "$tmpdepfile".bak
673 ;;
674
675 cpp)
676 # Important note: in order to support this mode, a compiler *must*
677 # always write the preprocessed file to stdout.
678 "$@" || exit $?
679
680 # Remove the call to Libtool.
681 if test "$libtool" = yes; then
682 while test "X$1" != 'X--mode=compile'; do
683 shift
684 done
685 shift
686 fi
687
688 # Remove '-o $object'.
689 IFS=" "
690 for arg
691 do
692 case $arg in
693 -o)
694 shift
695 ;;
696 $object)
697 shift
698 ;;
699 *)
700 set fnord "$@" "$arg"
701 shift # fnord
702 shift # $arg
703 ;;
704 esac
705 done
706
707 "$@" -E \
708 | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
709 -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
710 | sed '$ s: \\$::' > "$tmpdepfile"
711 rm -f "$depfile"
712 echo "$object : \\" > "$depfile"
713 cat < "$tmpdepfile" >> "$depfile"
714 sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
715 rm -f "$tmpdepfile"
716 ;;
717
718 msvisualcpp)
719 # Important note: in order to support this mode, a compiler *must*
720 # always write the preprocessed file to stdout.
721 "$@" || exit $?
722
723 # Remove the call to Libtool.
724 if test "$libtool" = yes; then
725 while test "X$1" != 'X--mode=compile'; do
726 shift
727 done
728 shift
729 fi
730
731 IFS=" "
732 for arg
733 do
734 case "$arg" in
735 -o)
736 shift
737 ;;
738 $object)
739 shift
740 ;;
741 "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
742 set fnord "$@"
743 shift
744 shift
745 ;;
746 *)
747 set fnord "$@" "$arg"
748 shift
749 shift
750 ;;
751 esac
752 done
753 "$@" -E 2>/dev/null |
754 sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
755 rm -f "$depfile"
756 echo "$object : \\" > "$depfile"
757 sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
758 echo "$tab" >> "$depfile"
759 sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
760 rm -f "$tmpdepfile"
761 ;;
762
763 msvcmsys)
764 # This case exists only to let depend.m4 do its work. It works by
765 # looking at the text of this script. This case will never be run,
766 # since it is checked for above.
767 exit 1
768 ;;
769
770 none)
771 exec "$@"
772 ;;
773
774 *)
775 echo "Unknown depmode $depmode" 1>&2
776 exit 1
777 ;;
778 esac
779
780 exit 0
781
782 # Local Variables:
783 # mode: shell-script
784 # sh-indentation: 2
785 # eval: (add-hook 'write-file-hooks 'time-stamp)
786 # time-stamp-start: "scriptversion="
787 # time-stamp-format: "%:y-%02m-%02d.%02H"
788 # time-stamp-time-zone: "UTC"
789 # time-stamp-end: "; # UTC"
790 # End:
+0
-460
interface/src/scilab/Makefile.am less more
0 ## Scilab Getfem Interface
1 ## Copyright (C) 2009 Yann COLLETTE
2 ##
3 ## This program is free software; you can redistribute it and/or modify
4 ## it under the terms of the GNU General Public License as published by
5 ## the Free Software Foundation; either version 2 of the License, or
6 ## (at your option) any later version.
7 ##
8 ## This program is distributed in the hope that it will be useful,
9 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
10 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 ## GNU General Public License for more details.
12 ##
13 ## You should have received a copy of the GNU General Public License
14 ## along with this program; if not, write to the Free Software
15 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 ##
17
18 toolboxdir=@SCILAB_TOOLBOX_DIR@
19
20 scilabbuilddir=@GETFEM_BUILD_INTERFACE_PATH@/interface/src/scilab
21
22 scilabbasedir=builder.sce \
23 builddoc.sce \
24 loader.sce \
25 readme.txt \
26 changelog.txt \
27 cleaner.sce \
28 Makefile.am \
29 sci_getfem.iss \
30 license.txt \
31 makefile_builder.sce
32
33 scilabsrccdir=src/c/copyright \
34 src/c/makefile \
35 src/c/loader.sce \
36 src/c/makefile.in \
37 src/c/builder_c.sce \
38 src/c/ls.dat \
39 src/c/README \
40 src/c/rk4.dat \
41 src/c/cleaner.sce \
42 src/c/configure \
43 src/c/configure.in \
44 src/c/FILELIST \
45 src/c/machine.h.in
46
47 EXTRA_DIST=builddoc.sce \
48 builder.sce \
49 changelog.txt \
50 cleaner.sce \
51 license.txt \
52 loader.sce \
53 readme.txt \
54 sci_getfem.iss \
55 makefile_builder.sce \
56 demos/axrot_matrix.sci \
57 tests/unit_tests/check_all.sce \
58 tests/unit_tests/check_asm.sce \
59 tests/unit_tests/check_fem.sce \
60 tests/unit_tests/check_geotrans.sce \
61 tests/unit_tests/check_integ.sce \
62 tests/unit_tests/check_interpolated_fem.sce \
63 tests/unit_tests/check_levelset.sce \
64 tests/unit_tests/check_mesh_fem.sce \
65 tests/unit_tests/check_oo.sce \
66 tests/unit_tests/check_plot.sce \
67 tests/unit_tests/check_slices.sce \
68 tests/unit_tests/check_spmat.sce \
69 tests/unit_tests/check_workspace.sce \
70 demos/demo_bilaplacian.sce \
71 demos/demo_continuation_block.sce \
72 demos/demo_continuation.sce \
73 demos/demo_continuation_vee.sce \
74 demos/demo_convection_rotating_cavity.sce \
75 demos/demo_crack.sce \
76 demos/demo_fictitious_domains.sce \
77 demos/demo_laplacian.sce \
78 demos/demo_mesh_generation.sce \
79 demos/demo_mortar.sce \
80 demos/demo_thermo_elasticity_electrical_coupling.sce \
81 demos/demo_nonlinear_elasticity_anim.sce \
82 demos/demo_nonlinear_elasticity.sce \
83 demos/demo_plasticity.sce \
84 demos/demo_plate.sce \
85 demos/demo_refine.sce \
86 demos/demo_static_contact.sce \
87 demos/demo_step_by_step.sce \
88 demos/demo_stokes_3D_tank_draw.sce \
89 demos/demo_stokes_3D_tank.sce \
90 demos/demo_structural_optimization.sce \
91 demos/demo_topological_optimization.sce \
92 demos/demo_tripod_alt.sce \
93 demos/demo_tripod_anim.sce \
94 demos/demo_tripod.sce \
95 demos/demo_tripod_slice_anim.sce \
96 demos/demo_wave2D_alt.sce \
97 demos/demo_wave2D_animate.sce \
98 demos/demo_wave2D.sce \
99 demos/demo_wave_equation.sce \
100 demos/sci_getfem.dem.gateway.sce \
101 tests/unit_tests/test_argyris.sce \
102 tests/unit_tests/test_plasticity_new_brick.sce \
103 demos/tutorial1.sce \
104 demos/data/disc_P2_h0.5.mesh \
105 demos/data/disc_P2_h1.mesh \
106 demos/data/disc_P2_h2.mesh \
107 demos/data/donut_regulier.mesh \
108 demos/data/donut_with_quadratic_tetra_1100_elements.msh \
109 demos/data/holed_disc_with_quadratic_2D_triangles.msh \
110 demos/data/quad.geo \
111 demos/data/quad.msh \
112 demos/data/tank_quadratic_2500.GiD.msh \
113 demos/data/tripod.GiD.msh \
114 demos/data/tripod.mesh \
115 demos/data/tube_2D_spline.GiD.msh \
116 demos/data/vee_h_0.03.mesh \
117 etc/sci_getfem.quit \
118 etc/sci_getfem.start \
119 help/builder_help.sce \
120 help/en_US/build_help.sce \
121 help/en_US/gf_asm_pdetoolbc.xml \
122 help/en_US/gf_asm.xml \
123 help/en_US/gf_colormap.xml \
124 help/en_US/gf_compute_Q1grid_interp.xml \
125 help/en_US/gf_compute.xml \
126 help/en_US/gf_cvstruct_get.xml \
127 help/en_US/gf_delete.xml \
128 help/en_US/gf_eltm.xml \
129 help/en_US/gf_fem_get.xml \
130 help/en_US/gf_fem.xml \
131 help/en_US/gf_geotrans_get.xml \
132 help/en_US/gf_geotrans.xml \
133 help/en_US/gf_global_function_get.xml \
134 help/en_US/gf_global_function.xml \
135 help/en_US/gf_integ_get.xml \
136 help/en_US/gf_integ.xml \
137 help/en_US/gf_interpolate_on_grid.xml \
138 help/en_US/gf_levelset_get.xml \
139 help/en_US/gf_levelset_set.xml \
140 help/en_US/gf_levelset.xml \
141 help/en_US/gf_linsolve.xml \
142 help/en_US/gf_mesh_fem_get_eval.xml \
143 help/en_US/gf_mesh_fem_get.xml \
144 help/en_US/gf_mesh_fem_set.xml \
145 help/en_US/gf_mesh_fem.xml \
146 help/en_US/gf_mesh_get.xml \
147 help/en_US/gf_mesh_im_get.xml \
148 help/en_US/gf_mesh_im_set.xml \
149 help/en_US/gf_mesh_im.xml \
150 help/en_US/gf_mesh_levelset_get.xml \
151 help/en_US/gf_mesh_levelset_set.xml \
152 help/en_US/gf_mesh_levelset.xml \
153 help/en_US/gf_mesh_set.xml \
154 help/en_US/gf_mesh.xml \
155 help/en_US/gf_model_get.xml \
156 help/en_US/gf_model_set.xml \
157 help/en_US/gf_model.xml \
158 help/en_US/gf_plot_1D.xml \
159 help/en_US/gf_plot_mesh.xml \
160 help/en_US/gf_plot_slice.xml \
161 help/en_US/gf_plot.xml \
162 help/en_US/gf_poly.xml \
163 help/en_US/gf_precond_get.xml \
164 help/en_US/gf_precond.xml \
165 help/en_US/gf_slice_get.xml \
166 help/en_US/gf_slice_set.xml \
167 help/en_US/gf_slice.xml \
168 help/en_US/gf_solve.xml \
169 help/en_US/gf_spmat_get.xml \
170 help/en_US/gf_spmat_set.xml \
171 help/en_US/gf_spmat.xml \
172 help/en_US/gf_typeof.xml \
173 help/en_US/gf_util.xml \
174 help/en_US/gf_workspace.xml \
175 help/en_US/objects.xml \
176 help/en_US/preliminary.xml \
177 help/en_US/examples/another_laplacian.xml \
178 help/en_US/examples/avoiding_bricks.xml \
179 help/en_US/examples/CHAPTER \
180 help/en_US/examples/linear_nonlinear_elast.xml \
181 help/en_US/examples/step_by_step_example.xml \
182 help/en_US/sparses/CHAPTER \
183 help/en_US/sparses/sp_cgne.xml \
184 help/en_US/sparses/sp_cgs.xml \
185 help/en_US/sparses/sp_cholinc.xml \
186 help/en_US/sparses/sp_chol.xml \
187 help/en_US/sparses/sp_chsolve.xml \
188 help/en_US/sparses/sp_gmres.xml \
189 help/en_US/sparses/sp_luinc.xml \
190 help/en_US/sparses/sp_lusolve.xml \
191 help/en_US/sparses/sp_lu.xml \
192 help/en_US/sparses/sp_mgcr.xml \
193 help/fig/gf_fem_get_fig_1.png \
194 help/fig/gf_plot_mesh_fig_1.png \
195 help/fig/hierarchy.png \
196 help/fig/tripodvonmiseswithmesh_small.png \
197 help/fr_FR/build_help.sce \
198 help/mml/avoiding_eq1.mml \
199 help/mml/gf_asm_eq1.mml \
200 help/mml/gf_asm_eq2.mml \
201 help/mml/gf_asm_eq3.mml \
202 help/mml/gf_asm_eq4.mml \
203 help/mml/gf_asm_eq5.mml \
204 help/mml/gf_asm_eq6.mml \
205 help/mml/gf_model_set_eq1.mml \
206 help/mml/gf_model_set_eq2.mml \
207 help/mml/gf_model_set_eq3.mml \
208 help/mml/gf_model_set_eq4.mml \
209 help/mml/preliminary_eq1.mml \
210 help/mml/step_by_step_eq1.mml \
211 help/mml/step_by_step_eq2.mml \
212 help/mml/step_by_step_eq3.mml \
213 help/mml/step_by_step_eq4.mml \
214 help/mml/step_by_step_eq5.mml \
215 jar/scilab_en_US_help.jar \
216 macros/add_empty_bound.sci \
217 macros/asserterr.sci \
218 macros/assert_field.sci \
219 macros/assert.sci \
220 macros/buildmacros.sce \
221 macros/build_options_list.sci \
222 macros/cart2pol.sci \
223 macros/champ3.sci \
224 macros/cross.sci \
225 macros/dot.sci \
226 macros/gf_asm_pdetoolbc.sci \
227 macros/gfassert.sci \
228 macros/gf_colormap.sci \
229 macros/gf_compute_Q1grid_interp.sci \
230 macros/gf_interpolate_on_grid.sci \
231 macros/gf_mesh_fem_get_eval.sci \
232 macros/gf_plot_1D.sci \
233 macros/gf_plot_mesh.sci \
234 macros/gf_plot.sci \
235 macros/gf_plot_slice.sci \
236 macros/gf_solve.sci \
237 macros/has_field.sci \
238 macros/init_pde.sci \
239 macros/isauto.sci \
240 macros/isnumeric.sci \
241 macros/ison.sci \
242 macros/isscalar.sci \
243 macros/lib \
244 macros/names \
245 macros/null_space.sci \
246 macros/repmat.sci \
247 macros/_setdiff.sci \
248 macros/spdiags.sci \
249 macros/surfnorm.sci \
250 macros/test_champ3.sce \
251 macros/test_spdiags.sce \
252 macros/overload/gf_typeof.sci \
253 macros/overload/init_gf_types.sce \
254 macros/overload/lib \
255 macros/overload/names \
256 macros/overload/%objid_e.sci \
257 macros/overload/%objid_get.sci \
258 macros/overload/%objid_set.sci \
259 sci_gateway/builder_gateway.sce \
260 sci_gateway/cleaner_gateway.sce \
261 sci_gateway/loader_gateway.sce \
262 sci_gateway/c/builder_gateway_c.sce \
263 sci_gateway/c/cleaner.sce \
264 sci_gateway/c/gfm_common.c \
265 sci_gateway/c/gfm_common.h \
266 sci_gateway/c/gfm_scilab.cpp \
267 sci_gateway/c/libscigetfem_c.c \
268 sci_gateway/c/libscigetfem_c.so \
269 sci_gateway/c/loader.sce \
270 sci_gateway/c/sci_cgne.c \
271 sci_gateway/c/sci_cgs.c \
272 sci_gateway/c/sci_gmres.c \
273 sci_gateway/c/sci_mgcr.c \
274 sci_gateway/c/sci_spchol.c \
275 sci_gateway/c/sci_spcholinc.c \
276 sci_gateway/c/sci_spchsolve.c \
277 sci_gateway/c/sci_splu.c \
278 sci_gateway/c/sci_spluinc.c \
279 sci_gateway/c/sci_splusolve.c \
280 src/builder_src.sce \
281 src/c/bdfactor.c \
282 src/c/bkpfacto.c \
283 src/c/builder_c.sce \
284 src/c/chfactor.c \
285 src/c/cleaner.sce \
286 src/c/configure \
287 src/c/configure.in \
288 src/c/copy.c \
289 src/c/copyright \
290 src/c/err.c \
291 src/c/err.h \
292 src/c/extras.c \
293 src/c/fft.c \
294 src/c/FILELIST \
295 src/c/givens.c \
296 src/c/hessen.c \
297 src/c/hsehldr.c \
298 src/c/init.c \
299 src/c/iter0.c \
300 src/c/iter.h \
301 src/c/iternsym.c \
302 src/c/itersym.c \
303 src/c/ivecop.c \
304 src/c/libsp_get.so \
305 src/c/loader.sce \
306 src/c/ls.dat \
307 src/c/lufactor.c \
308 src/c/machine.c \
309 src/c/machine.h \
310 src/c/machine.h.in \
311 src/c/makefile \
312 src/c/makefile.in \
313 src/c/matlab.c \
314 src/c/matlab.h \
315 src/c/matop.c \
316 src/c/matrix2.h \
317 src/c/matrix.h \
318 src/c/matrixio.c \
319 src/c/meminfo.c \
320 src/c/meminfo.h \
321 src/c/memory.c \
322 src/c/memstat.c \
323 src/c/mfunc.c \
324 src/c/norm.c \
325 src/c/oldnames.h \
326 src/c/otherio.c \
327 src/c/pxop.c \
328 src/c/qrfactor.c \
329 src/c/README \
330 src/c/rk4.dat \
331 src/c/schur.c \
332 src/c/solve.c \
333 src/c/sparse2.h \
334 src/c/sparse.c \
335 src/c/sparse.h \
336 src/c/sparseio.c \
337 src/c/spbkp.c \
338 src/c/spchfctr.c \
339 src/c/splufctr.c \
340 src/c/sprow.c \
341 src/c/spswap.c \
342 src/c/submat.c \
343 src/c/svd.c \
344 src/c/symmeig.c \
345 src/c/update.c \
346 src/c/vecop.c \
347 src/c/version.c \
348 src/c/zcopy.c \
349 src/c/zfunc.c \
350 src/c/zgivens.c \
351 src/c/zhessen.c \
352 src/c/zhsehldr.c \
353 src/c/zlufctr.c \
354 src/c/zmachine.c \
355 src/c/zmatio.c \
356 src/c/zmatlab.c \
357 src/c/zmatop.c \
358 src/c/zmatrix2.h \
359 src/c/zmatrix.h \
360 src/c/zmemory.c \
361 src/c/znorm.c \
362 src/c/zqrfctr.c \
363 src/c/zschur.c \
364 src/c/zsolve.c \
365 src/c/zvecop.c \
366 src/c/DOC/fnindex.txt \
367 src/c/DOC/tutorial.txt \
368 src/c/MACHINES/Cray/machine.h \
369 src/c/MACHINES/Cray/makefile \
370 src/c/MACHINES/Cray/patch.1 \
371 src/c/MACHINES/Cray/patch.2 \
372 src/c/MACHINES/Cray/patch.3 \
373 src/c/MACHINES/GCC/machine.h \
374 src/c/MACHINES/GCC/makefile \
375 src/c/MACHINES/Linux/machine.h \
376 src/c/MACHINES/Linux/makefile \
377 src/c/MACHINES/RS6000/machine.c \
378 src/c/MACHINES/RS6000/machine.h \
379 src/c/MACHINES/RS6000/makefile \
380 src/c/MACHINES/SGI/machine.h \
381 src/c/MACHINES/SGI/makefile \
382 src/c/MACHINES/SPARC/machine.h \
383 src/c/MACHINES/SPARC/makefile
384
385 .NOTPARALLEL: *
386
387 all:
388 @SCILAB_EXE@ -nw -nb -f $(scilabbuilddir)/makefile_builder.sce
389
390 install:
391 $(mkinstalldirs) $(toolboxdir)/demos
392 $(mkinstalldirs) $(toolboxdir)/demos/data
393 $(mkinstalldirs) $(toolboxdir)/etc
394 $(mkinstalldirs) $(toolboxdir)/help
395 $(mkinstalldirs) $(toolboxdir)/help/en_US
396 $(mkinstalldirs) $(toolboxdir)/help/en_US/examples
397 $(mkinstalldirs) $(toolboxdir)/help/en_US/sparses
398 $(mkinstalldirs) $(toolboxdir)/help/fr_FR
399 $(mkinstalldirs) $(toolboxdir)/help/fig
400 $(mkinstalldirs) $(toolboxdir)/help/mml
401 $(mkinstalldirs) $(toolboxdir)/jar
402 $(mkinstalldirs) $(toolboxdir)/macros
403 $(mkinstalldirs) $(toolboxdir)/macros/overload
404 $(mkinstalldirs) $(toolboxdir)/sci_gateway
405 $(mkinstalldirs) $(toolboxdir)/sci_gateway/c
406 $(mkinstalldirs) $(toolboxdir)/src
407 $(mkinstalldirs) $(toolboxdir)/src/c
408 $(mkinstalldirs) $(toolboxdir)/src/c/MACHINES
409 $(mkinstalldirs) $(toolboxdir)/src/c/MACHINES/Cray
410 $(mkinstalldirs) $(toolboxdir)/src/c/MACHINES/GCC
411 $(mkinstalldirs) $(toolboxdir)/src/c/MACHINES/Linux
412 $(mkinstalldirs) $(toolboxdir)/src/c/MACHINES/RS6000
413 $(mkinstalldirs) $(toolboxdir)/src/c/MACHINES/SGI
414 $(mkinstalldirs) $(toolboxdir)/src/c/MACHINES/SPARC
415 $(mkinstalldirs) $(toolboxdir)/src/c/DOC
416 $(mkinstalldirs) $(toolboxdir)/tests
417 $(mkinstalldirs) $(toolboxdir)/tests/unit_tests
418 $(mkinstalldirs) $(toolboxdir)/tests/nonreg_tests
419 @INSTALL@ -D -m 644 -t $(toolboxdir)/demos demos/*.sc[ie]
420 @INSTALL@ -D -m 644 -t $(toolboxdir)/demos/data demos/data/*
421 @INSTALL@ -D -m 644 -t $(toolboxdir)/etc etc/*
422 @INSTALL@ -D -m 644 -t $(toolboxdir)/help help/*.sce
423 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/en_US help/en_US/*.sce
424 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/en_US help/en_US/*.xml
425 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/en_US/examples help/en_US/examples/CHAPTER
426 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/en_US/examples help/en_US/examples/*.xml
427 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/en_US/sparses help/en_US/sparses/CHAPTER
428 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/en_US/sparses help/en_US/sparses/*.xml
429 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/fr_FR help/fr_FR/*.sce
430 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/fig help/fig/*
431 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/mml help/mml/*.mml
432 @INSTALL@ -D -m 644 -t $(toolboxdir)/jar jar/*.jar
433 @INSTALL@ -D -m 644 -t $(toolboxdir)/macros macros/*.bin
434 @INSTALL@ -D -m 644 -t $(toolboxdir)/macros macros/*.sc[ie]
435 @INSTALL@ -D -m 644 -t $(toolboxdir)/macros macros/names
436 @INSTALL@ -D -m 644 -t $(toolboxdir)/macros macros/lib
437 @INSTALL@ -D -m 644 -t $(toolboxdir)/macros/overload macros/overload/*.bin
438 @INSTALL@ -D -m 644 -t $(toolboxdir)/macros/overload macros/overload/*.sc[ie]
439 @INSTALL@ -D -m 644 -t $(toolboxdir)/macros/overload macros/overload/names
440 @INSTALL@ -D -m 644 -t $(toolboxdir)/macros/overload macros/overload/lib
441 @INSTALL@ -D -m 644 -t $(toolboxdir)/sci_gateway sci_gateway/*.sce
442 @INSTALL@ -D -m 644 -t $(toolboxdir)/sci_gateway/c sci_gateway/c/*.[ch]
443 @INSTALL@ -D -m 644 -t $(toolboxdir)/sci_gateway/c sci_gateway/c/*.sce
444 @INSTALL@ -D -m 744 -t $(toolboxdir)/sci_gateway/c sci_gateway/c/*.so
445 @INSTALL@ -D -m 644 -t $(toolboxdir)/src src/*.sce
446 @INSTALL@ -D -m 644 -t $(toolboxdir)/src/c src/c/*.[ch]
447 @INSTALL@ -D -m 744 -t $(toolboxdir)/src/c src/c/*.so
448 @INSTALL@ -D -m 744 -t $(toolboxdir)/src/c $(scilabsrccdir)
449 @INSTALL@ -D -m 644 -t $(toolboxdir)/src/c/MACHINES/Cray src/c/MACHINES/Cray/*
450 @INSTALL@ -D -m 644 -t $(toolboxdir)/src/c/MACHINES/GCC src/c/MACHINES/GCC/*
451 @INSTALL@ -D -m 644 -t $(toolboxdir)/src/c/MACHINES/Linux src/c/MACHINES/Linux/*
452 @INSTALL@ -D -m 644 -t $(toolboxdir)/src/c/MACHINES/RS6000 src/c/MACHINES/RS6000/*
453 @INSTALL@ -D -m 644 -t $(toolboxdir)/src/c/MACHINES/SGI src/c/MACHINES/SGI/*
454 @INSTALL@ -D -m 644 -t $(toolboxdir)/src/c/MACHINES/SPARC src/c/MACHINES/SPARC/*
455 @INSTALL@ -D -m 644 -t $(toolboxdir)/src/c/DOC src/c/DOC/*
456 @INSTALL@ -D -m 644 -t $(toolboxdir)/ $(scilabbasedir)
457
458 clean:
459 @SCILAB_EXE@ -nw -nb -f $(scilabbuilddir)/makefile_cleaner.sce
+0
-942
interface/src/scilab/Makefile.in less more
0 # Makefile.in generated by automake 1.14.1 from Makefile.am.
1 # @configure_input@
2
3 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
4
5 # This Makefile.in is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
13
14 @SET_MAKE@
15 VPATH = @srcdir@
16 am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
17 am__make_running_with_option = \
18 case $${target_option-} in \
19 ?) ;; \
20 *) echo "am__make_running_with_option: internal error: invalid" \
21 "target option '$${target_option-}' specified" >&2; \
22 exit 1;; \
23 esac; \
24 has_opt=no; \
25 sane_makeflags=$$MAKEFLAGS; \
26 if $(am__is_gnu_make); then \
27 sane_makeflags=$$MFLAGS; \
28 else \
29 case $$MAKEFLAGS in \
30 *\\[\ \ ]*) \
31 bs=\\; \
32 sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
33 | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
34 esac; \
35 fi; \
36 skip_next=no; \
37 strip_trailopt () \
38 { \
39 flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
40 }; \
41 for flg in $$sane_makeflags; do \
42 test $$skip_next = yes && { skip_next=no; continue; }; \
43 case $$flg in \
44 *=*|--*) continue;; \
45 -*I) strip_trailopt 'I'; skip_next=yes;; \
46 -*I?*) strip_trailopt 'I';; \
47 -*O) strip_trailopt 'O'; skip_next=yes;; \
48 -*O?*) strip_trailopt 'O';; \
49 -*l) strip_trailopt 'l'; skip_next=yes;; \
50 -*l?*) strip_trailopt 'l';; \
51 -[dEDm]) skip_next=yes;; \
52 -[JT]) skip_next=yes;; \
53 esac; \
54 case $$flg in \
55 *$$target_option*) has_opt=yes; break;; \
56 esac; \
57 done; \
58 test $$has_opt = yes
59 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
60 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
61 pkgdatadir = $(datadir)/@PACKAGE@
62 pkgincludedir = $(includedir)/@PACKAGE@
63 pkglibdir = $(libdir)/@PACKAGE@
64 pkglibexecdir = $(libexecdir)/@PACKAGE@
65 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
66 install_sh_DATA = $(install_sh) -c -m 644
67 install_sh_PROGRAM = $(install_sh) -c
68 install_sh_SCRIPT = $(install_sh) -c
69 INSTALL_HEADER = $(INSTALL_DATA)
70 transform = $(program_transform_name)
71 NORMAL_INSTALL = :
72 PRE_INSTALL = :
73 POST_INSTALL = :
74 NORMAL_UNINSTALL = :
75 PRE_UNINSTALL = :
76 POST_UNINSTALL = :
77 build_triplet = @build@
78 host_triplet = @host@
79 subdir = interface/src/scilab
80 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
81 $(top_srcdir)/mkinstalldirs
82 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
83 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_python_devel.m4 \
84 $(top_srcdir)/m4/ax_boost_base.m4 \
85 $(top_srcdir)/m4/ax_boost_system.m4 \
86 $(top_srcdir)/m4/ax_boost_thread.m4 \
87 $(top_srcdir)/m4/ax_check_cxx_flag.m4 \
88 $(top_srcdir)/m4/ax_prefix_config_h.m4 \
89 $(top_srcdir)/m4/ax_prog_cc_mpi.m4 \
90 $(top_srcdir)/m4/ax_prog_cxx_mpi.m4 \
91 $(top_srcdir)/m4/ax_prog_fc_mpi.m4 $(top_srcdir)/m4/libtool.m4 \
92 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
93 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
94 $(top_srcdir)/m4/scilab.m4 $(top_srcdir)/configure.ac
95 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
96 $(ACLOCAL_M4)
97 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
98 CONFIG_HEADER = $(top_builddir)/config.h
99 CONFIG_CLEAN_FILES =
100 CONFIG_CLEAN_VPATH_FILES =
101 AM_V_P = $(am__v_P_@AM_V@)
102 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
103 am__v_P_0 = false
104 am__v_P_1 = :
105 AM_V_GEN = $(am__v_GEN_@AM_V@)
106 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
107 am__v_GEN_0 = @echo " GEN " $@;
108 am__v_GEN_1 =
109 AM_V_at = $(am__v_at_@AM_V@)
110 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
111 am__v_at_0 = @
112 am__v_at_1 =
113 SOURCES =
114 DIST_SOURCES =
115 am__can_run_installinfo = \
116 case $$AM_UPDATE_INFO_DIR in \
117 n|no|NO) false;; \
118 *) (install-info --version) >/dev/null 2>&1;; \
119 esac
120 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
121 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
122 ACLOCAL = @ACLOCAL@
123 AMTAR = @AMTAR@
124 AM_CXXFLAGS = @AM_CXXFLAGS@
125 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
126 AR = @AR@
127 AUTOCONF = @AUTOCONF@
128 AUTOHEADER = @AUTOHEADER@
129 AUTOMAKE = @AUTOMAKE@
130 AWK = @AWK@
131 BLAS_LIBS = @BLAS_LIBS@
132 BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
133 BOOST_LDFLAGS = @BOOST_LDFLAGS@
134 BOOST_LIBS = @BOOST_LIBS@
135 BOOST_SYSTEM_LIB = @BOOST_SYSTEM_LIB@
136 BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
137 BUILDDATE = @BUILDDATE@
138 BUILDER = @BUILDER@
139 CC = @CC@
140 CCDEPMODE = @CCDEPMODE@
141 CFLAGS = @CFLAGS@
142 CONFIGURE_ARGS = @CONFIGURE_ARGS@
143 CPP = @CPP@
144 CPPFLAGS = @CPPFLAGS@
145 CXX = @CXX@
146 CXXCPP = @CXXCPP@
147 CXXDEPMODE = @CXXDEPMODE@
148 CXXFLAGS = @CXXFLAGS@
149 CYGPATH_W = @CYGPATH_W@
150 DEFS = @DEFS@
151 DEPDIR = @DEPDIR@
152 DISTCLEANMESH = @DISTCLEANMESH@
153 DLLTOOL = @DLLTOOL@
154 DSYMUTIL = @DSYMUTIL@
155 DUMPBIN = @DUMPBIN@
156 ECHO_C = @ECHO_C@
157 ECHO_N = @ECHO_N@
158 ECHO_T = @ECHO_T@
159 EGREP = @EGREP@
160 EXEEXT = @EXEEXT@
161 FC = @FC@
162 FCFLAGS = @FCFLAGS@
163 FCLIBS = @FCLIBS@
164 FGREP = @FGREP@
165 GETFEM_BUILD_INTERFACE_PATH = @GETFEM_BUILD_INTERFACE_PATH@
166 GETFEM_INTERFACE_PATH = @GETFEM_INTERFACE_PATH@
167 GETFEM_SERVER = @GETFEM_SERVER@
168 GFSERVERFLAGS = @GFSERVERFLAGS@
169 GREP = @GREP@
170 HAVE_SCILAB = @HAVE_SCILAB@
171 IM_METHODS = @IM_METHODS@
172 IM_METHODS_LOC = @IM_METHODS_LOC@
173 INSTALL = @INSTALL@
174 INSTALL_DATA = @INSTALL_DATA@
175 INSTALL_PROGRAM = @INSTALL_PROGRAM@
176 INSTALL_SCRIPT = @INSTALL_SCRIPT@
177 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
178 LD = @LD@
179 LDFLAGS = @LDFLAGS@
180 LIBOBJS = @LIBOBJS@
181 LIBS = @LIBS@
182 LIBTOOL = @LIBTOOL@
183 LIBTOOL_DEPS = @LIBTOOL_DEPS@
184 LIBTOOL_VERSION_INFO = @LIBTOOL_VERSION_INFO@
185 LIPO = @LIPO@
186 LN_S = @LN_S@
187 LTLIBOBJS = @LTLIBOBJS@
188 MAKEINFO = @MAKEINFO@
189 MANIFEST_TOOL = @MANIFEST_TOOL@
190 MATLAB_COM_EXT = @MATLAB_COM_EXT@
191 MATLAB_INC_DIR = @MATLAB_INC_DIR@
192 MATLAB_OBJ_DIRS = @MATLAB_OBJ_DIRS@
193 MATLAB_RELEASE = @MATLAB_RELEASE@
194 MATLAB_ROOT = @MATLAB_ROOT@
195 METIS_LIBS = @METIS_LIBS@
196 MEX = @MEX@
197 MKDIR_P = @MKDIR_P@
198 MPICC = @MPICC@
199 MPICXX = @MPICXX@
200 MPIFC = @MPIFC@
201 MUMPS_LIBS = @MUMPS_LIBS@
202 NM = @NM@
203 NMEDIT = @NMEDIT@
204 OBJDUMP = @OBJDUMP@
205 OBJEXT = @OBJEXT@
206 OPENMP_CXXFLAGS = @OPENMP_CXXFLAGS@
207 OTOOL = @OTOOL@
208 OTOOL64 = @OTOOL64@
209 PACKAGE = @PACKAGE@
210 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
211 PACKAGE_NAME = @PACKAGE_NAME@
212 PACKAGE_STRING = @PACKAGE_STRING@
213 PACKAGE_TARNAME = @PACKAGE_TARNAME@
214 PACKAGE_URL = @PACKAGE_URL@
215 PACKAGE_VERSION = @PACKAGE_VERSION@
216 PATH_SEPARATOR = @PATH_SEPARATOR@
217 PSEUDO_FUNCTIONS = @PSEUDO_FUNCTIONS@
218 PSEUDO_FUNCTIONS_LOC = @PSEUDO_FUNCTIONS_LOC@
219 PYTHON = @PYTHON@
220 PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
221 PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
222 PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@
223 PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@
224 PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
225 PYTHON_PLATFORM = @PYTHON_PLATFORM@
226 PYTHON_PREFIX = @PYTHON_PREFIX@
227 PYTHON_SITE_PKG = @PYTHON_SITE_PKG@
228 PYTHON_VERSION = @PYTHON_VERSION@
229 QHULL_LIBS = @QHULL_LIBS@
230 RANLIB = @RANLIB@
231 RPC_INC_DIR = @RPC_INC_DIR@
232 RPC_LIB = @RPC_LIB@
233 SCILAB_DIR = @SCILAB_DIR@
234 SCILAB_EXE = @SCILAB_EXE@
235 SCILAB_TOOLBOX_DIR = @SCILAB_TOOLBOX_DIR@
236 SCILAB_VERSION = @SCILAB_VERSION@
237 SCILAB_VERSION_MAJOR = @SCILAB_VERSION_MAJOR@
238 SCILAB_VERSION_MICRO = @SCILAB_VERSION_MICRO@
239 SCILAB_VERSION_MINOR = @SCILAB_VERSION_MINOR@
240 SED = @SED@
241 SET_MAKE = @SET_MAKE@
242 SHELL = @SHELL@
243 STDCPP_STATICLIBS = @STDCPP_STATICLIBS@
244 STRIP = @STRIP@
245 SUPERLU_CPPFLAGS = @SUPERLU_CPPFLAGS@
246 SUPERLU_LIBS = @SUPERLU_LIBS@
247 SUPERLU_SRC = @SUPERLU_SRC@
248 SUPLDFLAGS = @SUPLDFLAGS@
249 TOOLBOXDIR = @TOOLBOXDIR@
250 VERSION = @VERSION@
251 abs_builddir = @abs_builddir@
252 abs_srcdir = @abs_srcdir@
253 abs_top_builddir = @abs_top_builddir@
254 abs_top_srcdir = @abs_top_srcdir@
255 ac_ct_AR = @ac_ct_AR@
256 ac_ct_CC = @ac_ct_CC@
257 ac_ct_CXX = @ac_ct_CXX@
258 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
259 ac_ct_FC = @ac_ct_FC@
260 am__include = @am__include@
261 am__leading_dot = @am__leading_dot@
262 am__quote = @am__quote@
263 am__tar = @am__tar@
264 am__untar = @am__untar@
265 bindir = @bindir@
266 build = @build@
267 build_alias = @build_alias@
268 build_cpu = @build_cpu@
269 build_os = @build_os@
270 build_vendor = @build_vendor@
271 builddir = @builddir@
272 datadir = @datadir@
273 datarootdir = @datarootdir@
274 docdir = @docdir@
275 dvidir = @dvidir@
276 exec_prefix = @exec_prefix@
277 has_scilab = @has_scilab@
278 host = @host@
279 host_alias = @host_alias@
280 host_cpu = @host_cpu@
281 host_os = @host_os@
282 host_vendor = @host_vendor@
283 htmldir = @htmldir@
284 includedir = @includedir@
285 infodir = @infodir@
286 install_sh = @install_sh@
287 libdir = @libdir@
288 libexecdir = @libexecdir@
289 localedir = @localedir@
290 localstatedir = @localstatedir@
291 mandir = @mandir@
292 mkdir_p = @mkdir_p@
293 oldincludedir = @oldincludedir@
294 pdfdir = @pdfdir@
295 pkgpyexecdir = @pkgpyexecdir@
296 pkgpythondir = @pkgpythondir@
297 prefix = @prefix@
298 program_transform_name = @program_transform_name@
299 psdir = @psdir@
300 pyexecdir = @pyexecdir@
301 pythondir = @pythondir@
302 sbindir = @sbindir@
303 sharedstatedir = @sharedstatedir@
304 srcdir = @srcdir@
305 sysconfdir = @sysconfdir@
306 target_alias = @target_alias@
307 top_build_prefix = @top_build_prefix@
308 top_builddir = @top_builddir@
309 top_srcdir = @top_srcdir@
310 toolboxdir = @SCILAB_TOOLBOX_DIR@
311 scilabbuilddir = @GETFEM_BUILD_INTERFACE_PATH@/interface/src/scilab
312 scilabbasedir = builder.sce \
313 builddoc.sce \
314 loader.sce \
315 readme.txt \
316 changelog.txt \
317 cleaner.sce \
318 Makefile.am \
319 sci_getfem.iss \
320 license.txt \
321 makefile_builder.sce
322
323 scilabsrccdir = src/c/copyright \
324 src/c/makefile \
325 src/c/loader.sce \
326 src/c/makefile.in \
327 src/c/builder_c.sce \
328 src/c/ls.dat \
329 src/c/README \
330 src/c/rk4.dat \
331 src/c/cleaner.sce \
332 src/c/configure \
333 src/c/configure.in \
334 src/c/FILELIST \
335 src/c/machine.h.in
336
337 EXTRA_DIST = builddoc.sce \
338 builder.sce \
339 changelog.txt \
340 cleaner.sce \
341 license.txt \
342 loader.sce \
343 readme.txt \
344 sci_getfem.iss \
345 makefile_builder.sce \
346 demos/axrot_matrix.sci \
347 tests/unit_tests/check_all.sce \
348 tests/unit_tests/check_asm.sce \
349 tests/unit_tests/check_fem.sce \
350 tests/unit_tests/check_geotrans.sce \
351 tests/unit_tests/check_integ.sce \
352 tests/unit_tests/check_interpolated_fem.sce \
353 tests/unit_tests/check_levelset.sce \
354 tests/unit_tests/check_mesh_fem.sce \
355 tests/unit_tests/check_oo.sce \
356 tests/unit_tests/check_plot.sce \
357 tests/unit_tests/check_slices.sce \
358 tests/unit_tests/check_spmat.sce \
359 tests/unit_tests/check_workspace.sce \
360 demos/demo_bilaplacian.sce \
361 demos/demo_continuation_block.sce \
362 demos/demo_continuation.sce \
363 demos/demo_continuation_vee.sce \
364 demos/demo_convection_rotating_cavity.sce \
365 demos/demo_crack.sce \
366 demos/demo_fictitious_domains.sce \
367 demos/demo_laplacian.sce \
368 demos/demo_mesh_generation.sce \
369 demos/demo_mortar.sce \
370 demos/demo_thermo_elasticity_electrical_coupling.sce \
371 demos/demo_nonlinear_elasticity_anim.sce \
372 demos/demo_nonlinear_elasticity.sce \
373 demos/demo_plasticity.sce \
374 demos/demo_plate.sce \
375 demos/demo_refine.sce \
376 demos/demo_static_contact.sce \
377 demos/demo_step_by_step.sce \
378 demos/demo_stokes_3D_tank_draw.sce \
379 demos/demo_stokes_3D_tank.sce \
380 demos/demo_structural_optimization.sce \
381 demos/demo_topological_optimization.sce \
382 demos/demo_tripod_alt.sce \
383 demos/demo_tripod_anim.sce \
384 demos/demo_tripod.sce \
385 demos/demo_tripod_slice_anim.sce \
386 demos/demo_wave2D_alt.sce \
387 demos/demo_wave2D_animate.sce \
388 demos/demo_wave2D.sce \
389 demos/demo_wave_equation.sce \
390 demos/sci_getfem.dem.gateway.sce \
391 tests/unit_tests/test_argyris.sce \
392 tests/unit_tests/test_plasticity_new_brick.sce \
393 demos/tutorial1.sce \
394 demos/data/disc_P2_h0.5.mesh \
395 demos/data/disc_P2_h1.mesh \
396 demos/data/disc_P2_h2.mesh \
397 demos/data/donut_regulier.mesh \
398 demos/data/donut_with_quadratic_tetra_1100_elements.msh \
399 demos/data/holed_disc_with_quadratic_2D_triangles.msh \
400 demos/data/quad.geo \
401 demos/data/quad.msh \
402 demos/data/tank_quadratic_2500.GiD.msh \
403 demos/data/tripod.GiD.msh \
404 demos/data/tripod.mesh \
405 demos/data/tube_2D_spline.GiD.msh \
406 demos/data/vee_h_0.03.mesh \
407 etc/sci_getfem.quit \
408 etc/sci_getfem.start \
409 help/builder_help.sce \
410 help/en_US/build_help.sce \
411 help/en_US/gf_asm_pdetoolbc.xml \
412 help/en_US/gf_asm.xml \
413 help/en_US/gf_colormap.xml \
414 help/en_US/gf_compute_Q1grid_interp.xml \
415 help/en_US/gf_compute.xml \
416 help/en_US/gf_cvstruct_get.xml \
417 help/en_US/gf_delete.xml \
418 help/en_US/gf_eltm.xml \
419 help/en_US/gf_fem_get.xml \
420 help/en_US/gf_fem.xml \
421 help/en_US/gf_geotrans_get.xml \
422 help/en_US/gf_geotrans.xml \
423 help/en_US/gf_global_function_get.xml \
424 help/en_US/gf_global_function.xml \
425 help/en_US/gf_integ_get.xml \
426 help/en_US/gf_integ.xml \
427 help/en_US/gf_interpolate_on_grid.xml \
428 help/en_US/gf_levelset_get.xml \
429 help/en_US/gf_levelset_set.xml \
430 help/en_US/gf_levelset.xml \
431 help/en_US/gf_linsolve.xml \
432 help/en_US/gf_mesh_fem_get_eval.xml \
433 help/en_US/gf_mesh_fem_get.xml \
434 help/en_US/gf_mesh_fem_set.xml \
435 help/en_US/gf_mesh_fem.xml \
436 help/en_US/gf_mesh_get.xml \
437 help/en_US/gf_mesh_im_get.xml \
438 help/en_US/gf_mesh_im_set.xml \
439 help/en_US/gf_mesh_im.xml \
440 help/en_US/gf_mesh_levelset_get.xml \
441 help/en_US/gf_mesh_levelset_set.xml \
442 help/en_US/gf_mesh_levelset.xml \
443 help/en_US/gf_mesh_set.xml \
444 help/en_US/gf_mesh.xml \
445 help/en_US/gf_model_get.xml \
446 help/en_US/gf_model_set.xml \
447 help/en_US/gf_model.xml \
448 help/en_US/gf_plot_1D.xml \
449 help/en_US/gf_plot_mesh.xml \
450 help/en_US/gf_plot_slice.xml \
451 help/en_US/gf_plot.xml \
452 help/en_US/gf_poly.xml \
453 help/en_US/gf_precond_get.xml \
454 help/en_US/gf_precond.xml \
455 help/en_US/gf_slice_get.xml \
456 help/en_US/gf_slice_set.xml \
457 help/en_US/gf_slice.xml \
458 help/en_US/gf_solve.xml \
459 help/en_US/gf_spmat_get.xml \
460 help/en_US/gf_spmat_set.xml \
461 help/en_US/gf_spmat.xml \
462 help/en_US/gf_typeof.xml \
463 help/en_US/gf_util.xml \
464 help/en_US/gf_workspace.xml \
465 help/en_US/objects.xml \
466 help/en_US/preliminary.xml \
467 help/en_US/examples/another_laplacian.xml \
468 help/en_US/examples/avoiding_bricks.xml \
469 help/en_US/examples/CHAPTER \
470 help/en_US/examples/linear_nonlinear_elast.xml \
471 help/en_US/examples/step_by_step_example.xml \
472 help/en_US/sparses/CHAPTER \
473 help/en_US/sparses/sp_cgne.xml \
474 help/en_US/sparses/sp_cgs.xml \
475 help/en_US/sparses/sp_cholinc.xml \
476 help/en_US/sparses/sp_chol.xml \
477 help/en_US/sparses/sp_chsolve.xml \
478 help/en_US/sparses/sp_gmres.xml \
479 help/en_US/sparses/sp_luinc.xml \
480 help/en_US/sparses/sp_lusolve.xml \
481 help/en_US/sparses/sp_lu.xml \
482 help/en_US/sparses/sp_mgcr.xml \
483 help/fig/gf_fem_get_fig_1.png \
484 help/fig/gf_plot_mesh_fig_1.png \
485 help/fig/hierarchy.png \
486 help/fig/tripodvonmiseswithmesh_small.png \
487 help/fr_FR/build_help.sce \
488 help/mml/avoiding_eq1.mml \
489 help/mml/gf_asm_eq1.mml \
490 help/mml/gf_asm_eq2.mml \
491 help/mml/gf_asm_eq3.mml \
492 help/mml/gf_asm_eq4.mml \
493 help/mml/gf_asm_eq5.mml \
494 help/mml/gf_asm_eq6.mml \
495 help/mml/gf_model_set_eq1.mml \
496 help/mml/gf_model_set_eq2.mml \
497 help/mml/gf_model_set_eq3.mml \
498 help/mml/gf_model_set_eq4.mml \
499 help/mml/preliminary_eq1.mml \
500 help/mml/step_by_step_eq1.mml \
501 help/mml/step_by_step_eq2.mml \
502 help/mml/step_by_step_eq3.mml \
503 help/mml/step_by_step_eq4.mml \
504 help/mml/step_by_step_eq5.mml \
505 jar/scilab_en_US_help.jar \
506 macros/add_empty_bound.sci \
507 macros/asserterr.sci \
508 macros/assert_field.sci \
509 macros/assert.sci \
510 macros/buildmacros.sce \
511 macros/build_options_list.sci \
512 macros/cart2pol.sci \
513 macros/champ3.sci \
514 macros/cross.sci \
515 macros/dot.sci \
516 macros/gf_asm_pdetoolbc.sci \
517 macros/gfassert.sci \
518 macros/gf_colormap.sci \
519 macros/gf_compute_Q1grid_interp.sci \
520 macros/gf_interpolate_on_grid.sci \
521 macros/gf_mesh_fem_get_eval.sci \
522 macros/gf_plot_1D.sci \
523 macros/gf_plot_mesh.sci \
524 macros/gf_plot.sci \
525 macros/gf_plot_slice.sci \
526 macros/gf_solve.sci \
527 macros/has_field.sci \
528 macros/init_pde.sci \
529 macros/isauto.sci \
530 macros/isnumeric.sci \
531 macros/ison.sci \
532 macros/isscalar.sci \
533 macros/lib \
534 macros/names \
535 macros/null_space.sci \
536 macros/repmat.sci \
537 macros/_setdiff.sci \
538 macros/spdiags.sci \
539 macros/surfnorm.sci \
540 macros/test_champ3.sce \
541 macros/test_spdiags.sce \
542 macros/overload/gf_typeof.sci \
543 macros/overload/init_gf_types.sce \
544 macros/overload/lib \
545 macros/overload/names \
546 macros/overload/%objid_e.sci \
547 macros/overload/%objid_get.sci \
548 macros/overload/%objid_set.sci \
549 sci_gateway/builder_gateway.sce \
550 sci_gateway/cleaner_gateway.sce \
551 sci_gateway/loader_gateway.sce \
552 sci_gateway/c/builder_gateway_c.sce \
553 sci_gateway/c/cleaner.sce \
554 sci_gateway/c/gfm_common.c \
555 sci_gateway/c/gfm_common.h \
556 sci_gateway/c/gfm_scilab.cpp \
557 sci_gateway/c/libscigetfem_c.c \
558 sci_gateway/c/libscigetfem_c.so \
559 sci_gateway/c/loader.sce \
560 sci_gateway/c/sci_cgne.c \
561 sci_gateway/c/sci_cgs.c \
562 sci_gateway/c/sci_gmres.c \
563 sci_gateway/c/sci_mgcr.c \
564 sci_gateway/c/sci_spchol.c \
565 sci_gateway/c/sci_spcholinc.c \
566 sci_gateway/c/sci_spchsolve.c \
567 sci_gateway/c/sci_splu.c \
568 sci_gateway/c/sci_spluinc.c \
569 sci_gateway/c/sci_splusolve.c \
570 src/builder_src.sce \
571 src/c/bdfactor.c \
572 src/c/bkpfacto.c \
573 src/c/builder_c.sce \
574 src/c/chfactor.c \
575 src/c/cleaner.sce \
576 src/c/configure \
577 src/c/configure.in \
578 src/c/copy.c \
579 src/c/copyright \
580 src/c/err.c \
581 src/c/err.h \
582 src/c/extras.c \
583 src/c/fft.c \
584 src/c/FILELIST \
585 src/c/givens.c \
586 src/c/hessen.c \
587 src/c/hsehldr.c \
588 src/c/init.c \
589 src/c/iter0.c \
590 src/c/iter.h \
591 src/c/iternsym.c \
592 src/c/itersym.c \
593 src/c/ivecop.c \
594 src/c/libsp_get.so \
595 src/c/loader.sce \
596 src/c/ls.dat \
597 src/c/lufactor.c \
598 src/c/machine.c \
599 src/c/machine.h \
600 src/c/machine.h.in \
601 src/c/makefile \
602 src/c/makefile.in \
603 src/c/matlab.c \
604 src/c/matlab.h \
605 src/c/matop.c \
606 src/c/matrix2.h \
607 src/c/matrix.h \
608 src/c/matrixio.c \
609 src/c/meminfo.c \
610 src/c/meminfo.h \
611 src/c/memory.c \
612 src/c/memstat.c \
613 src/c/mfunc.c \
614 src/c/norm.c \
615 src/c/oldnames.h \
616 src/c/otherio.c \
617 src/c/pxop.c \
618 src/c/qrfactor.c \
619 src/c/README \
620 src/c/rk4.dat \
621 src/c/schur.c \
622 src/c/solve.c \
623 src/c/sparse2.h \
624 src/c/sparse.c \
625 src/c/sparse.h \
626 src/c/sparseio.c \
627 src/c/spbkp.c \
628 src/c/spchfctr.c \
629 src/c/splufctr.c \
630 src/c/sprow.c \
631 src/c/spswap.c \
632 src/c/submat.c \
633 src/c/svd.c \
634 src/c/symmeig.c \
635 src/c/update.c \
636 src/c/vecop.c \
637 src/c/version.c \
638 src/c/zcopy.c \
639 src/c/zfunc.c \
640 src/c/zgivens.c \
641 src/c/zhessen.c \
642 src/c/zhsehldr.c \
643 src/c/zlufctr.c \
644 src/c/zmachine.c \
645 src/c/zmatio.c \
646 src/c/zmatlab.c \
647 src/c/zmatop.c \
648 src/c/zmatrix2.h \
649 src/c/zmatrix.h \
650 src/c/zmemory.c \
651 src/c/znorm.c \
652 src/c/zqrfctr.c \
653 src/c/zschur.c \
654 src/c/zsolve.c \
655 src/c/zvecop.c \
656 src/c/DOC/fnindex.txt \
657 src/c/DOC/tutorial.txt \
658 src/c/MACHINES/Cray/machine.h \
659 src/c/MACHINES/Cray/makefile \
660 src/c/MACHINES/Cray/patch.1 \
661 src/c/MACHINES/Cray/patch.2 \
662 src/c/MACHINES/Cray/patch.3 \
663 src/c/MACHINES/GCC/machine.h \
664 src/c/MACHINES/GCC/makefile \
665 src/c/MACHINES/Linux/machine.h \
666 src/c/MACHINES/Linux/makefile \
667 src/c/MACHINES/RS6000/machine.c \
668 src/c/MACHINES/RS6000/machine.h \
669 src/c/MACHINES/RS6000/makefile \
670 src/c/MACHINES/SGI/machine.h \
671 src/c/MACHINES/SGI/makefile \
672 src/c/MACHINES/SPARC/machine.h \
673 src/c/MACHINES/SPARC/makefile
674
675 all: all-am
676
677 .SUFFIXES:
678 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
679 @for dep in $?; do \
680 case '$(am__configure_deps)' in \
681 *$$dep*) \
682 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
683 && { if test -f $@; then exit 0; else break; fi; }; \
684 exit 1;; \
685 esac; \
686 done; \
687 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu interface/src/scilab/Makefile'; \
688 $(am__cd) $(top_srcdir) && \
689 $(AUTOMAKE) --gnu interface/src/scilab/Makefile
690 .PRECIOUS: Makefile
691 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
692 @case '$?' in \
693 *config.status*) \
694 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
695 *) \
696 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
697 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
698 esac;
699
700 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
701 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
702
703 $(top_srcdir)/configure: $(am__configure_deps)
704 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
705 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
706 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
707 $(am__aclocal_m4_deps):
708
709 mostlyclean-libtool:
710 -rm -f *.lo
711
712 clean-libtool:
713 -rm -rf .libs _libs
714 tags TAGS:
715
716 ctags CTAGS:
717
718 cscope cscopelist:
719
720
721 distdir: $(DISTFILES)
722 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
723 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
724 list='$(DISTFILES)'; \
725 dist_files=`for file in $$list; do echo $$file; done | \
726 sed -e "s|^$$srcdirstrip/||;t" \
727 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
728 case $$dist_files in \
729 */*) $(MKDIR_P) `echo "$$dist_files" | \
730 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
731 sort -u` ;; \
732 esac; \
733 for file in $$dist_files; do \
734 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
735 if test -d $$d/$$file; then \
736 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
737 if test -d "$(distdir)/$$file"; then \
738 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
739 fi; \
740 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
741 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
742 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
743 fi; \
744 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
745 else \
746 test -f "$(distdir)/$$file" \
747 || cp -p $$d/$$file "$(distdir)/$$file" \
748 || exit 1; \
749 fi; \
750 done
751 check-am: all-am
752 check: check-am
753 all-am: Makefile
754 installdirs:
755 install-exec: install-exec-am
756 install-data: install-data-am
757 uninstall: uninstall-am
758
759 install-am: all-am
760 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
761
762 installcheck: installcheck-am
763 install-strip:
764 if test -z '$(STRIP)'; then \
765 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
766 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
767 install; \
768 else \
769 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
770 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
771 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
772 fi
773 mostlyclean-generic:
774
775 clean-generic:
776
777 distclean-generic:
778 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
779 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
780
781 maintainer-clean-generic:
782 @echo "This command is intended for maintainers to use"
783 @echo "it deletes files that may require special tools to rebuild."
784 clean-am: clean-generic clean-libtool mostlyclean-am
785
786 distclean: distclean-am
787 -rm -f Makefile
788 distclean-am: clean-am distclean-generic
789
790 dvi: dvi-am
791
792 dvi-am:
793
794 html: html-am
795
796 html-am:
797
798 info: info-am
799
800 info-am:
801
802 install-data-am:
803
804 install-dvi: install-dvi-am
805
806 install-dvi-am:
807
808 install-exec-am:
809
810 install-html: install-html-am
811
812 install-html-am:
813
814 install-info: install-info-am
815
816 install-info-am:
817
818 install-man:
819
820 install-pdf: install-pdf-am
821
822 install-pdf-am:
823
824 install-ps: install-ps-am
825
826 install-ps-am:
827
828 installcheck-am:
829
830 maintainer-clean: maintainer-clean-am
831 -rm -f Makefile
832 maintainer-clean-am: distclean-am maintainer-clean-generic
833
834 mostlyclean: mostlyclean-am
835
836 mostlyclean-am: mostlyclean-generic mostlyclean-libtool
837
838 pdf: pdf-am
839
840 pdf-am:
841
842 ps: ps-am
843
844 ps-am:
845
846 uninstall-am:
847
848 .MAKE: install-am install-strip
849
850 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
851 cscopelist-am ctags-am distclean distclean-generic \
852 distclean-libtool distdir dvi dvi-am html html-am info info-am \
853 install install-am install-data install-data-am install-dvi \
854 install-dvi-am install-exec install-exec-am install-html \
855 install-html-am install-info install-info-am install-man \
856 install-pdf install-pdf-am install-ps install-ps-am \
857 install-strip installcheck installcheck-am installdirs \
858 maintainer-clean maintainer-clean-generic mostlyclean \
859 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
860 tags-am uninstall uninstall-am
861
862
863 .NOTPARALLEL: *
864
865 all:
866 @SCILAB_EXE@ -nw -nb -f $(scilabbuilddir)/makefile_builder.sce
867
868 install:
869 $(mkinstalldirs) $(toolboxdir)/demos
870 $(mkinstalldirs) $(toolboxdir)/demos/data
871 $(mkinstalldirs) $(toolboxdir)/etc
872 $(mkinstalldirs) $(toolboxdir)/help
873 $(mkinstalldirs) $(toolboxdir)/help/en_US
874 $(mkinstalldirs) $(toolboxdir)/help/en_US/examples
875 $(mkinstalldirs) $(toolboxdir)/help/en_US/sparses
876 $(mkinstalldirs) $(toolboxdir)/help/fr_FR
877 $(mkinstalldirs) $(toolboxdir)/help/fig
878 $(mkinstalldirs) $(toolboxdir)/help/mml
879 $(mkinstalldirs) $(toolboxdir)/jar
880 $(mkinstalldirs) $(toolboxdir)/macros
881 $(mkinstalldirs) $(toolboxdir)/macros/overload
882 $(mkinstalldirs) $(toolboxdir)/sci_gateway
883 $(mkinstalldirs) $(toolboxdir)/sci_gateway/c
884 $(mkinstalldirs) $(toolboxdir)/src
885 $(mkinstalldirs) $(toolboxdir)/src/c
886 $(mkinstalldirs) $(toolboxdir)/src/c/MACHINES
887 $(mkinstalldirs) $(toolboxdir)/src/c/MACHINES/Cray
888 $(mkinstalldirs) $(toolboxdir)/src/c/MACHINES/GCC
889 $(mkinstalldirs) $(toolboxdir)/src/c/MACHINES/Linux
890 $(mkinstalldirs) $(toolboxdir)/src/c/MACHINES/RS6000
891 $(mkinstalldirs) $(toolboxdir)/src/c/MACHINES/SGI
892 $(mkinstalldirs) $(toolboxdir)/src/c/MACHINES/SPARC
893 $(mkinstalldirs) $(toolboxdir)/src/c/DOC
894 $(mkinstalldirs) $(toolboxdir)/tests
895 $(mkinstalldirs) $(toolboxdir)/tests/unit_tests
896 $(mkinstalldirs) $(toolboxdir)/tests/nonreg_tests
897 @INSTALL@ -D -m 644 -t $(toolboxdir)/demos demos/*.sc[ie]
898 @INSTALL@ -D -m 644 -t $(toolboxdir)/demos/data demos/data/*
899 @INSTALL@ -D -m 644 -t $(toolboxdir)/etc etc/*
900 @INSTALL@ -D -m 644 -t $(toolboxdir)/help help/*.sce
901 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/en_US help/en_US/*.sce
902 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/en_US help/en_US/*.xml
903 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/en_US/examples help/en_US/examples/CHAPTER
904 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/en_US/examples help/en_US/examples/*.xml
905 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/en_US/sparses help/en_US/sparses/CHAPTER
906 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/en_US/sparses help/en_US/sparses/*.xml
907 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/fr_FR help/fr_FR/*.sce
908 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/fig help/fig/*
909 @INSTALL@ -D -m 644 -t $(toolboxdir)/help/mml help/mml/*.mml
910 @INSTALL@ -D -m 644 -t $(toolboxdir)/jar jar/*.jar
911 @INSTALL@ -D -m 644 -t $(toolboxdir)/macros macros/*.bin
912 @INSTALL@ -D -m 644 -t $(toolboxdir)/macros macros/*.sc[ie]
913 @INSTALL@ -D -m 644 -t $(toolboxdir)/macros macros/names
914 @INSTALL@ -D -m 644 -t $(toolboxdir)/macros macros/lib
915 @INSTALL@ -D -m 644 -t $(toolboxdir)/macros/overload macros/overload/*.bin
916 @INSTALL@ -D -m 644 -t $(toolboxdir)/macros/overload macros/overload/*.sc[ie]
917 @INSTALL@ -D -m 644 -t $(toolboxdir)/macros/overload macros/overload/names
918 @INSTALL@ -D -m 644 -t $(toolboxdir)/macros/overload macros/overload/lib
919 @INSTALL@ -D -m 644 -t $(toolboxdir)/sci_gateway sci_gateway/*.sce
920 @INSTALL@ -D -m 644 -t $(toolboxdir)/sci_gateway/c sci_gateway/c/*.[ch]
921 @INSTALL@ -D -m 644 -t $(toolboxdir)/sci_gateway/c sci_gateway/c/*.sce
922 @INSTALL@ -D -m 744 -t $(toolboxdir)/sci_gateway/c sci_gateway/c/*.so
923 @INSTALL@ -D -m 644 -t $(toolboxdir)/src src/*.sce
924 @INSTALL@ -D -m 644 -t $(toolboxdir)/src/c src/c/*.[ch]
925 @INSTALL@ -D -m 744 -t $(toolboxdir)/src/c src/c/*.so
926 @INSTALL@ -D -m 744 -t $(toolboxdir)/src/c $(scilabsrccdir)
927 @INSTALL@ -D -m 644 -t $(toolboxdir)/src/c/MACHINES/Cray src/c/MACHINES/Cray/*
928 @INSTALL@ -D -m 644 -t $(toolboxdir)/src/c/MACHINES/GCC src/c/MACHINES/GCC/*
929 @INSTALL@ -D -m 644 -t $(toolboxdir)/src/c/MACHINES/Linux src/c/MACHINES/Linux/*
930 @INSTALL@ -D -m 644 -t $(toolboxdir)/src/c/MACHINES/RS6000 src/c/MACHINES/RS6000/*
931 @INSTALL@ -D -m 644 -t $(toolboxdir)/src/c/MACHINES/SGI src/c/MACHINES/SGI/*
932 @INSTALL@ -D -m 644 -t $(toolboxdir)/src/c/MACHINES/SPARC src/c/MACHINES/SPARC/*
933 @INSTALL@ -D -m 644 -t $(toolboxdir)/src/c/DOC src/c/DOC/*
934 @INSTALL@ -D -m 644 -t $(toolboxdir)/ $(scilabbasedir)
935
936 clean:
937 @SCILAB_EXE@ -nw -nb -f $(scilabbuilddir)/makefile_cleaner.sce
938
939 # Tell versions [3.59,3.63) of GNU make to not export all variables.
940 # Otherwise a system limit (for SysV at least) may be exceeded.
941 .NOEXPORT:
+0
-208
interface/src/scilab/builddoc.sce less more
0 Files = ['gf_asm', 'gf_global_function', ...
1 'gf_mesh_get', 'gf_model_get', 'gf_spmat_get', ...
2 'gf_compute', 'gf_global_function_get', ...
3 'gf_mesh_im', 'gf_model_set', 'gf_spmat_set', ...
4 'gf_cvstruct_get', 'gf_integ', ...
5 'gf_mesh_im_get', 'gf_poly', 'gf_undelete', ...
6 'gf_delete', 'gf_integ_get', ...
7 'gf_mesh_im_set', 'gf_precond', 'gf_util', ...
8 'gf_eltm', 'gf_levelset', ...
9 'gf_mesh_levelset', 'gf_precond_get', 'gf_workspace', ...
10 'gf_fem', 'gf_levelset_get', 'gf_mesh', ...
11 'gf_mesh_levelset_get', 'gf_slice', 'gf_fem_get', ...
12 'gf_levelset_set', 'gf_mesh_fem', 'gf_mesh_levelset_set', ...
13 'gf_slice_get', 'gf_geotrans', 'gf_linsolve', ...
14 'gf_mesh_fem_get', 'gf_mesh_set', 'gf_slice_set', ...
15 'gf_geotrans_get', 'gf_mesh_fem_set', ...
16 'gf_model', 'gf_spmat'];
17
18 Files = ['gf_asm'];
19
20 Path = '../';
21
22 DocTokens = ['GFDOC','FUNC','MATLABEXT','MATLABFUNC','INIT',...
23 'RDATTR','GET','SET','ARGS'];
24
25 TypesTable = ['@imat', 'imat'; ...
26 '@ivec', 'ivec'; ...
27 '@cvec', 'vec'; ...
28 '@dcvec', 'vec'; ...
29 '@dvec', 'vec'; ...
30 '@vec', 'vec'; ...
31 '@dmat', 'mat'; ...
32 '@mat', 'mat'; ...
33 '@str', 'string'; ...
34 '@int', 'int'; ...
35 '@bool', 'bool'; ...
36 '@real', 'real'; ...
37 '@scalar', 'scalar'; ...
38 '@list', 'list'; ...
39 '@tpoly', 'poly'; ...
40 '@tmf', 'mesh_fem'; ...
41 '@tgt', 'geotrans'; ...
42 '@tgf', 'global_function'; ...
43 '@tmls', 'mesh_levelset'; ...
44 '@tmim', 'mesh_im'; ...
45 '@tls', 'levelset'; ...
46 '@tsl', 'slice'; ...
47 '@tsp', 'spmat'; ...
48 '@tpre', 'precond'; ...
49 '@CELL', ''];
50
51 for i=1:size(Files,'*')
52 printf('Processing %s\n', Files(i));
53
54 DocPage = mlist(['gf','gfdoc','func','matlabext','matlabfunc','init','set', 'get', 'args','rdattr'], ...
55 list([]), list([]),list([]), list([]), list([]),list([]),list([]),list([]),list([]));
56
57 fid = mopen(Path + Files(i) + '.cc', 'r');
58 Lines = mgetl(fid, -1);
59 mclose(fid);
60
61 // Put block of comments with title DocTokens(j) in a mlist
62 for j=1:size(DocTokens,'*')
63 Index = grep(Lines,'/*@'+DocTokens(j));
64 if ~isempty(Index) then
65 for k=1:size(Index,'*')
66 IndPos = Index(k);
67 Result = isempty(strindex(Lines(IndPos),'@*/'));
68 DocPage(convstr(DocTokens(j),'l'))(k) = [];
69 while Result
70 DocPage(convstr(DocTokens(j),'l'))(k) = [DocPage(convstr(DocTokens(j),'l'))(k); Lines(IndPos)];
71 Result = isempty(strindex(Lines(IndPos),'@*/'));
72 IndPos = IndPos + 1;
73 end
74 end
75 end
76 end
77
78 // Now, remove parsed tokens and types substitution
79 for j=1:size(DocTokens,'*')
80 // Tokens removal
81 for k=1:length(DocPage(convstr(DocTokens(j),'l')))
82 // Starting token removal
83 Index = grep(DocPage(convstr(DocTokens(j),'l'))(k), '/*@'+DocTokens(j));
84 if ~isempty(Index) then
85 for l=1:size(Index,'*')
86 DocPage(convstr(DocTokens(j),'l'))(k)(Index(l)) = strsubst(DocPage(convstr(DocTokens(j),'l'))(k)(Index(l)),'/*@'+DocTokens(j),'');
87 end
88 end
89
90 // Ending token removal
91 Index = grep(DocPage(convstr(DocTokens(j),'l'))(k), '@*/');
92 if ~isempty(Index) then
93 for l=1:size(Index,'*')
94 DocPage(convstr(DocTokens(j),'l'))(k)(Index(l)) = strsubst(DocPage(convstr(DocTokens(j),'l'))(k)(Index(l)),'@*/','');
95 end
96 end
97 end
98
99 // Types substitution
100 for k=1:length(DocPage(convstr(DocTokens(j),'l')))
101 for l=1:size(TypesTable,1)
102 for m=1:size(DocPage(convstr(DocTokens(j),'l'))(k),'*')
103 DocPage(convstr(DocTokens(j),'l'))(k)(m) = strsubst(DocPage(convstr(DocTokens(j),'l'))(k)(m),TypesTable(l,1),TypesTable(l,2));
104 end
105 end
106 end
107
108 // Strip blanks
109 for k=1:length(DocPage(convstr(DocTokens(j),'l')))
110 for l=1:size(DocPage(convstr(DocTokens(j),'l'))(k),'*')
111 DocPage(convstr(DocTokens(j),'l'))(k)(l) = stripblanks(DocPage(convstr(DocTokens(j),'l'))(k)(l));
112 end
113 end
114
115 // Remove empty lines
116 for k=1:length(DocPage(convstr(DocTokens(j),'l')))
117 tmp_str = [];
118 for l=1:size(DocPage(convstr(DocTokens(j),'l'))(k),'*')
119 if ~isempty(DocPage(convstr(DocTokens(j),'l'))(k)(l)) then
120 tmp_str = [tmp_str; DocPage(convstr(DocTokens(j),'l'))(k)(l)];
121 end
122 end
123 DocPage(convstr(DocTokens(j),'l'))(k) = tmp_str;
124 end
125
126 // Process math expressions
127 for k=1:length(DocPage(convstr(DocTokens(j),'l')))
128 for l=1:size(TypesTable,1)
129 for m=1:size(DocPage(convstr(DocTokens(j),'l'))(k),'*')
130 DocPage(convstr(DocTokens(j),'l'))(k)(m) = strsubst(DocPage(convstr(DocTokens(j),'l'))(k)(m),':math:`','<latex style=""text"">');
131 DocPage(convstr(DocTokens(j),'l'))(k)(m) = strsubst(DocPage(convstr(DocTokens(j),'l'))(k)(m),'`','</latex>');
132 end
133 end
134 end
135 end
136
137 // XML Processing
138 fid = mopen('help/tmp/'+Files(i)+'.xml','w');
139
140 // Header
141 mfprintf(fid,"<?xml version=""1.0"" encoding=""UTF-8""?>\n");
142 mfprintf(fid,"<refentry version=""5.0-subset Scilab"" xml:id=""%s"" xml:lang=""en""\n", Files(i));
143 mfprintf(fid," xmlns=""http://docbook.org/ns/docbook""\n");
144 mfprintf(fid," xmlns:xlink=""http://www.w3.org/1999/xlink""\n");
145 mfprintf(fid," xmlns:xi=""http://www.w3.org/2001/XInclude""\n");
146 mfprintf(fid," xmlns:svg=""http://www.w3.org/2000/svg""\n");
147 mfprintf(fid," xmlns:mml=""http://www.w3.org/1998/Math/MathML""\n");
148 mfprintf(fid," xmlns:html=""http://www.w3.org/1999/xhtml""\n");
149 mfprintf(fid," xmlns:db=""http://docbook.org/ns/docbook"">\n");
150
151 // Refnamediv
152 mfprintf(fid,"<refnamediv>\n");
153 mfprintf(fid," <refname>%s</refname>\n", Files(i));
154 mfprintf(fid," <refpurpose>%s</refpurpose>\n",DocPage('gfdoc')(1)(1));
155 mfprintf(fid,"</refnamediv>\n");
156
157 // Synopsis
158 mfprintf(fid,"<refsynopsisdiv>\n");
159 mfprintf(fid," <title>Calling Sequence</title>\n");
160 mfprintf(fid," <synopsis>\n");
161 for j=1:length(DocPage('func'))
162 mfprintf(fid, "%s\n", DocPage('func')(j)(1));
163 end
164 mfprintf(fid," </synopsis>\n");
165 mfprintf(fid,"</refsynopsisdiv>\n");
166
167 // Description
168 mfprintf(fid,"<refsection>\n");
169 mfprintf(fid," <title>Description</title>\n");
170 mfprintf(fid," <para>\n");
171 for j=1:size(DocPage('gfdoc')(1),'*')
172 mfprintf(fid," %s\n", DocPage('gfdoc')(1)(j));
173 end
174 mfprintf(fid," </para>\n");
175
176 mfprintf(fid," <itemizedlist>\n");
177 for j=1:length(DocPage('func'))
178 mfprintf(fid," <listitem>\n");
179 mfprintf(fid," <para>\n");
180 for k=1:size(DocPage('func')(j),"*")
181 mfprintf(fid," %s\n", DocPage('func')(j)(k));
182 end
183 mfprintf(fid," </para>\n");
184 mfprintf(fid," </listitem>\n");
185 end
186 mfprintf(fid," </itemizedlist>\n");
187 mfprintf(fid, "</refsection>\n");
188
189 // See also section
190 mfprintf(fid, "<refsection>\n");
191 mfprintf(fid, " <title>See Also</title>\n");
192 mfprintf(fid, " <simplelist type=""inline"">\n");
193 mfprintf(fid, " <member><link linkend=""gf_solve"">gf_solve</link></member>\n");
194 mfprintf(fid, " </simplelist>\n");
195 mfprintf(fid, "</refsection>\n");
196
197 // Author section
198 mfprintf(fid, "<refsection>\n");
199 mfprintf(fid, " <title>Authors</title>\n");
200 mfprintf(fid, " <para>Y. Collette</para>\n");
201 mfprintf(fid, "</refsection>\n");
202
203 // Close the xml document
204 mfprintf(fid, "</refentry>\n");
205
206 mclose(fid);
207 end // End for
+0
-39
interface/src/scilab/builder.sce less more
0 // ====================================================================
1 // Yann COLLETTE
2 // Copyright 2009
3 // This file is released into the public domain
4 // ====================================================================
5 mode(-1);
6 lines(0);
7 try
8 v = getversion('scilab');
9 catch
10 error(gettext('Scilab 5.3.x or more is required.'));
11 end;
12 if v(2) < 3 then
13 error(gettext('Scilab 5.3.x or more is required.'));
14 end
15 // ====================================================================
16 if ~with_module('development_tools') then
17 error(msprintf(gettext('%s module not installed."),'development_tools'));
18 end
19 // ====================================================================
20 TOOLBOX_NAME = 'sci_getfem';
21 TOOLBOX_TITLE = 'SciGetFem';
22 // ====================================================================
23 toolbox_dir = get_absolute_file_path('builder.sce');
24
25 // Under Windows, configure is not launched.
26 if getos()=='Windows' then
27 copyfile(pwd() + '/sci_gateway/c/builder_gateway_c.sce.in',pwd() + '/sci_gateway/c/builder_gateway_c.sce');
28 end
29
30 tbx_builder_macros(toolbox_dir);
31 tbx_builder_src(toolbox_dir);
32 tbx_builder_gateway(toolbox_dir);
33 tbx_builder_help(toolbox_dir);
34 tbx_build_loader(TOOLBOX_NAME, toolbox_dir);
35 tbx_build_cleaner(TOOLBOX_NAME, toolbox_dir);
36
37 clear toolbox_dir TOOLBOX_NAME TOOLBOX_TITLE;
38 // ====================================================================
+0
-3
interface/src/scilab/changelog.txt less more
0 changelog of the getfem++ scilab toolbox
1
2 12/17/2009 - initial release
+0
-38
interface/src/scilab/cleaner.sce less more
0 // This file is released under the 3-clause BSD license. See COPYING-BSD.
1 // Generated by builder.sce: Please, do not edit this file
2
3 try
4 getversion("scilab");
5 catch
6 error("Scilab 5.0 or more is required.");
7 end
8 function perform_clean()
9 root_tlbx = get_absolute_file_path('cleaner.sce');
10
11 if isfile(root_tlbx + '/macros/cleanmacros.sce') then
12 exec(root_tlbx+'/macros/cleanmacros.sce');
13 end
14
15 if isfile(root_tlbx + '/src/cleaner_src.sce') then
16 exec(root_tlbx+'/src/cleaner_src.sce');
17 end
18
19 if isfile(root_tlbx + "/sci_gateway/cleaner_gateway.sce") then
20 exec(root_tlbx + "/sci_gateway/cleaner_gateway.sce");
21 mdelete(root_tlbx + "/sci_gateway/cleaner_gateway.sce");
22 end
23
24 if isfile(root_tlbx + "/help/cleaner_help.sce") then
25 exec(root_tlbx + "/help/cleaner_help.sce");
26 end
27
28 if isfile(root_tlbx + "/loader.sce") then
29 mdelete(root_tlbx + "/loader.sce");
30 end
31
32 if isfile(root_tlbx + "/unloader.sce") then
33 mdelete(root_tlbx + "/unloader.sce");
34 end
35 endfunction
36 perform_clean();
37 clear perform_clean;
+0
-18
interface/src/scilab/demos/axrot_matrix.sci less more
0 function R=axrot_matrix(A, B, theta)
1 n = (B-A);
2 n = n / norm(n);
3 a = n(1);
4 b = n(2);
5 c = n(3);
6 d = sqrt(b^2+c^2);
7 T = eye(4,4);
8 T(1:3,4) = -A(:);
9 Rx = eye(4,4);
10 if (norm(n(2:3))>1e-6) then
11 Rx(2:3,2:3)=[c -b; b c]/d;
12 end
13 Ry = eye(4,4); Ry([1 3],[1 3])=[d -a; a d];
14 Rz = eye(4,4); Rz(1:2,1:2)=[cos(theta) sin(theta); -sin(theta) cos(theta)];
15 R = inv(T)*inv(Rx)*inv(Ry)*Rz*Ry*Rx*T;
16 endfunction
17
+0
-8429
interface/src/scilab/demos/data/disc_P2_h0.5.mesh less more
0 % GETFEM MESH FILE
1 % GETFEM VERSION 1.7-20040316
2
3
4
5 BEGIN POINTS LIST
6
7 POINT 0 0 0
8 POINT 1 0 20
9 POINT 2 -20 20
10 POINT 3 20 20
11 POINT 4 0 40
12 POINT 5 -5.494590158705203 0.769568933904214
13 POINT 6 -4.555054354703293 0.5256199116454576
14 POINT 7 -3.62510614201392 0.3312784996295808
15 POINT 8 -2.686413338358856 0.1812416288131739
16 POINT 9 -1.753728402849995 0.077037451999329
17 POINT 10 -0.851420720971519 0.01813114404021269
18 POINT 11 0.8514160122311216 0.01813095400480157
19 POINT 12 1.753719324465416 0.07703666291032139
20 POINT 13 2.686401050802698 0.181239963250821
21 POINT 14 3.625091324513498 0.3312757686489166
22 POINT 15 4.555037637659274 0.5256160015391538
23 POINT 16 5.494572548479121 0.7695639022537971
24 POINT 17 -8.14748720023632 1.73477478041978
25 POINT 18 -7.204326158760607 1.342623855477397
26 POINT 19 -6.323306730319925 1.025917887963812
27 POINT 20 -5.012043637681486 1.487026562234344
28 POINT 21 -4.001504680231534 1.348769869720156
29 POINT 22 -3.020446348008669 1.193123454693629
30 POINT 23 -2.033096162687354 1.074468404199018
31 POINT 24 -1.029250259109854 0.9952937048620419
32 POINT 25 -4.743693576426955e-06 0.9550846747893821
33 POINT 26 1.029241591782402 0.9952938914888843
34 POINT 27 2.033087778001799 1.074468514560464
35 POINT 28 3.020437785114206 1.193122951441658
36 POINT 29 4.001495610537607 1.348768371554737
37 POINT 30 5.012033480242295 1.487023534523747
38 POINT 31 6.323291483458299 1.025912806798219
39 POINT 32 7.20431240676467 1.342618545311957
40 POINT 33 8.147472348609107 1.734768155628285
41 POINT 34 -9.874839229995656 2.607830779866931
42 POINT 35 -8.967401898964656 2.123039878590955
43 POINT 36 -7.43893966884391 2.316523461127632
44 POINT 37 -6.505937339794322 2.123067897852342
45 POINT 38 -5.617471023440036 2.128732087831175
46 POINT 39 -4.504938941140685 2.292372023343256
47 POINT 40 -3.474895393652287 2.188889537474249
48 POINT 41 -2.477789827740728 2.069417744488129
49 POINT 42 -1.486533939627704 1.978390111577929
50 POINT 43 -0.4945351927920381 1.920788208193323
51 POINT 44 0.494530028654747 1.920788180673721
52 POINT 45 1.48652903784696 1.978390363793194
53 POINT 46 2.477785286357576 2.069417875067633
54 POINT 47 3.474891314117997 2.188889007881329
55 POINT 48 4.504935616060729 2.292369967247126
56 POINT 49 5.617468616717059 2.128722558769742
57 POINT 50 6.505934206344425 2.123064219351945
58 POINT 51 7.438934955645484 2.316522386860346
59 POINT 52 8.967386714216421 2.123032261658711
60 POINT 53 9.874824441340188 2.607822383246229
61 POINT 54 -11.51772618471706 3.649404184131703
62 POINT 55 -10.65697220336667 3.075788247109521
63 POINT 56 -9.073837487095867 3.098945367911463
64 POINT 57 -8.146481814508759 2.93463496665957
65 POINT 58 -7.049600453276345 3.146247627644996
66 POINT 59 -6.068284496299216 3.100104651100007
67 POINT 60 -5.072988891537222 3.091827459666651
68 POINT 61 -3.993877927928949 3.131132225510109
69 POINT 62 -2.967955349130637 3.051608081751008
70 POINT 63 -1.969358890547338 2.964205195218535
71 POINT 64 -0.9811566490131486 2.90071553814206
72 POINT 65 -1.32163243384692e-06 2.877135624667564
73 POINT 66 0.9811540073798326 2.900715668778548
74 POINT 67 1.969356448130425 2.964205359405151
75 POINT 68 2.967953292680015 3.051607771536507
76 POINT 69 3.993876536191101 3.131130560601491
77 POINT 70 5.07298836313739 3.09182201424316
78 POINT 71 6.06828189330052 3.10009883043144
79 POINT 72 7.049596028910742 3.146246238867447
80 POINT 73 8.146475803362755 2.934633378296194
81 POINT 74 9.073829870567886 3.098941319319342
82 POINT 75 10.65695825761416 3.075779465645408
83 POINT 76 11.51771371828971 3.649395402508161
84 POINT 77 -12.25874124373426 4.197365310835768
85 POINT 78 -10.64940593588828 4.039054822049597
86 POINT 79 -9.738991551137142 3.788828249782045
87 POINT 80 -8.645496432574655 3.944646023442154
88 POINT 81 -7.660083249538626 3.927642758322452
89 POINT 82 -6.59386271210862 4.037468940686985
90 POINT 83 -5.568600019856155 4.018665115993096
91 POINT 84 -4.542276038525629 3.999836078704063
92 POINT 85 -3.491369657240189 3.994992924822852
93 POINT 86 -2.474009349355216 3.935011777572696
94 POINT 87 -1.477288819485819 3.874958764735967
95 POINT 88 -0.4912058119350093 3.84024391890156
96 POINT 89 0.4912045861343114 3.840244004832297
97 POINT 90 1.477287661196852 3.874958892229309
98 POINT 91 2.474008420090503 3.935011605232642
99 POINT 92 3.491369140152303 3.994991746916046
100 POINT 93 4.542275958327673 3.999832734657181
101 POINT 94 5.568598961382722 4.018661009084565
102 POINT 95 6.593859756639968 4.037466906689763
103 POINT 96 7.660079741658018 3.927642484330992
104 POINT 97 8.64549214777098 3.944645135772696
105 POINT 98 9.738984400934594 3.788824210856252
106 POINT 99 10.64939834126311 4.039049114973768
107 POINT 100 12.25873013918693 4.197356696596919
108 POINT 101 -13.06808399305144 4.859815696281542
109 POINT 102 -12.14172415206427 5.120456490850303
110 POINT 103 -11.26850058845588 4.78253504757261
111 POINT 104 -10.17404214944296 4.845047406793981
112 POINT 105 -9.208059651222554 4.766866668801151
113 POINT 106 -8.164339019401956 4.857476344060355
114 POINT 107 -7.149967162775942 4.875867152053067
115 POINT 108 -6.093958019589567 4.926093683238227
116 POINT 109 -5.058077545048842 4.913790131101954
117 POINT 110 -4.028039828119854 4.894648028971938
118 POINT 111 -2.995365612046738 4.876648223313875
119 POINT 112 -1.984673486096534 4.833837916766388
120 POINT 113 -0.9889438049108867 4.797769562520688
121 POINT 114 -2.362747113168751e-07 4.784386125986646
122 POINT 115 0.9889433725237518 4.797769655939185
123 POINT 116 1.984673180431574 4.833837841092998
124 POINT 117 2.995365534870316 4.876647488912344
125 POINT 118 4.028039920473764 4.894645987409467
126 POINT 119 5.05807704187145 4.913787423329794
127 POINT 120 6.09395626231969 4.926092028666856
128 POINT 121 7.149964792987238 4.875866809291987
129 POINT 122 8.164336682555421 4.857476643496101
130 POINT 123 9.208056699547432 4.766865857979807
131 POINT 124 10.17403815454237 4.845044126893953
132 POINT 125 11.26849448251217 4.782529900161253
133 POINT 126 12.14171794981946 5.120450644819872
134 POINT 127 13.06807455950774 4.859807553827244
135 POINT 128 -13.79621135610305 5.520201927590952
136 POINT 129 -12.80117439670994 5.856589459482491
137 POINT 130 -11.67938537881067 5.871675730352508
138 POINT 131 -10.7214199084595 5.705740655756915
139 POINT 132 -9.682832193302595 5.735754340027762
140 POINT 133 -8.688206795148123 5.723107658281122
141 POINT 134 -7.655630079002389 5.775975918064022
142 POINT 135 -6.627659763072258 5.792669306732381
143 POINT 136 -5.582314228446745 5.814411012773447
144 POINT 137 -4.548885425945512 5.805126115268295
145 POINT 138 -3.522722077771634 5.788884500830754
146 POINT 139 -2.501187311366817 5.770380462326169
147 POINT 140 -1.494394371192296 5.742942846788264
148 POINT 141 -0.4971264884626344 5.724801584483487
149 POINT 142 0.4971264114179549 5.724801616093884
150 POINT 143 1.494394375253193 5.742942820679326
151 POINT 144 2.501187449167741 5.770380046330405
152 POINT 145 3.522722282985142 5.788883304381674
153 POINT 146 4.548885254065114 5.80512440450948
154 POINT 147 5.582313237121974 5.814409778421799
155 POINT 148 6.627658274246912 5.792668907910858
156 POINT 149 7.655628672903336 5.775976131426517
157 POINT 150 8.688205683983837 5.723107897941759
158 POINT 151 9.682831053695072 5.735753339275631
159 POINT 152 10.72141774219851 5.705737949417665
160 POINT 153 11.67938249802985 5.871671763668828
161 POINT 154 12.80116985277255 5.856584114327579
162 POINT 155 13.79620361018442 5.52019455095268
163 POINT 156 -15.07551414433484 6.857364294633759
164 POINT 157 -14.47383155813855 6.197529205731446
165 POINT 158 -13.45485475009742 6.553837837714978
166 POINT 159 -12.31042185688016 6.683440243020864
167 POINT 160 -11.21350161895065 6.69819718995942
168 POINT 161 -10.20833342071787 6.628047644175917
169 POINT 162 -9.180105769142591 6.64834742192738
170 POINT 163 -8.167115514052471 6.65576641169878
171 POINT 164 -7.135706515094646 6.685162961807312
172 POINT 165 -6.105345078296335 6.696209760357505
173 POINT 166 -5.069576645378604 6.705314119570696
174 POINT 167 -4.041800732917723 6.698207423904568
175 POINT 168 -3.020761532842517 6.685782557740071
176 POINT 169 -2.005808074374162 6.671737301319939
177 POINT 170 -1.000288933333046 6.656398725132026
178 POINT 171 4.397573777348285e-08 6.650034053590167
179 POINT 172 1.000289057350326 6.656398701633271
180 POINT 173 2.005808282761941 6.671737074424545
181 POINT 174 3.020761779503171 6.685781881995771
182 POINT 175 4.041800760087482 6.698206389869481
183 POINT 176 5.069576162857779 6.705313264812579
184 POINT 177 6.10534421344702 6.69620937563182
185 POINT 178 7.135705654446768 6.685162970448084
186 POINT 179 8.167114943754402 6.655766632853415
187 POINT 180 9.180105544149159 6.648347310133159
188 POINT 181 10.20833306114628 6.628046599517105
189 POINT 182 11.21350079915651 6.698194920239427
190 POINT 183 12.31041989729133 6.683437342390677
191 POINT 184 13.45485102688512 6.553833543240082
192 POINT 185 14.47382501191121 6.197522339217816
193 POINT 186 15.07550853647004 6.85735785101832
194 POINT 187 -15.74070185460795 7.661835423193954
195 POINT 188 -14.74687538651157 7.702960989661571
196 POINT 189 -13.93188920478376 7.345232089754496
197 POINT 190 -12.86506131544698 7.471088086950771
198 POINT 191 -11.77211701495691 7.547677194388092
199 POINT 192 -10.70587046671523 7.565284924165475
200 POINT 193 -9.687660424643854 7.54461386330666
201 POINT 194 -8.662563218479574 7.560951116274378
202 POINT 195 -7.642034647994548 7.571360794157137
203 POINT 196 -6.613518858753616 7.588082984279957
204 POINT 197 -5.586073186048593 7.595112879441636
205 POINT 198 -4.558140690092682 7.598809924577656
206 POINT 199 -3.535939593111036 7.59366155618144
207 POINT 200 -2.519295513626756 7.585207729094968
208 POINT 201 -1.507828110570193 7.576464832977407
209 POINT 202 -0.5019148548267611 7.569504441473947
210 POINT 203 0.5019150140751154 7.569504419051911
211 POINT 204 1.507828313373964 7.576464701318211
212 POINT 205 2.51929574421762 7.58520735259712
213 POINT 206 3.535939709005314 7.593660949468794
214 POINT 207 4.558140510818687 7.598809363042038
215 POINT 208 5.58607274341326 7.595112562629756
216 POINT 209 6.613518369190103 7.588082887213245
217 POINT 210 7.642034309561478 7.571360854887308
218 POINT 211 8.662563167404116 7.560951138691602
219 POINT 212 9.687660573872202 7.54461354186692
220 POINT 213 10.70587058429081 7.565283863779716
221 POINT 214 11.77211666522259 7.547675581264719
222 POINT 215 12.8650605916635 7.471085619230291
223 POINT 216 13.93188849368163 7.345227696048455
224 POINT 217 14.74687398655421 7.702958601368711
225 POINT 218 15.74069772046266 7.661830148963676
226 POINT 219 -16.34008243157374 8.467363435476578
227 POINT 220 -15.28567534644808 8.552905620836993
228 POINT 221 -14.22089501094071 8.468579625245626
229 POINT 222 -13.29774920244363 8.333212052076258
230 POINT 223 -12.27300453476784 8.396001904827241
231 POINT 224 -11.224449672806 8.44025834990769
232 POINT 225 -10.1842020715159 8.457472361197105
233 POINT 226 -9.163914101356678 8.456332255719779
234 POINT 227 -8.14059852678059 8.468750713098206
235 POINT 228 -7.118690004259524 8.477698841262107
236 POINT 229 -6.093911741800466 8.487745637900247
237 POINT 230 -5.070537359203934 8.492297494254309
238 POINT 231 -4.048497389531928 8.493845716618845
239 POINT 232 -3.030710235690668 8.490541970764172
240 POINT 233 -2.017113078017005 8.485534154569866
241 POINT 234 -1.007152862458606 8.481122761690685
242 POINT 235 8.070285670638833e-08 8.479054147646179
243 POINT 236 1.007153037203349 8.481122683637645
244 POINT 237 2.017113267583667 8.485533940823723
245 POINT 238 3.030710370157321 8.490541618084078
246 POINT 239 4.048497363984429 8.493845358028667
247 POINT 240 5.070537168629906 8.49229725406053
248 POINT 241 6.093911495339211 8.487745514844656
249 POINT 242 7.11868981343622 8.477698810261961
250 POINT 243 8.140598491031323 8.468750699179775
251 POINT 244 9.163914246108916 8.456332131143173
252 POINT 245 10.18420232498191 8.457471896486332
253 POINT 246 11.22444978036375 8.440257512134613
254 POINT 247 12.27300442131762 8.396000443618357
255 POINT 248 13.29774885774807 8.333209357606099
256 POINT 249 14.22089386884885 8.468576880391957
257 POINT 250 15.28567398016187 8.552903295969026
258 POINT 251 16.34007933974851 8.46735905480778
259 POINT 252 -16.89879506132182 9.30277019619324
260 POINT 253 -15.84083890009481 9.368103783320413
261 POINT 254 -14.75936630448394 9.376434710940254
262 POINT 255 -13.72667446491556 9.338668036765469
263 POINT 256 -12.7458829592818 9.286293637722791
264 POINT 257 -11.72514144039831 9.317880286978371
265 POINT 258 -10.69307226518711 9.344364735918155
266 POINT 259 -9.663652464211705 9.358107425253532
267 POINT 260 -8.642457994516798 9.362656816289235
268 POINT 261 -7.620361904257799 9.371754129812164
269 POINT 262 -6.599324604837983 9.378698501517102
270 POINT 263 -5.577936443480438 9.385133261260403
271 POINT 264 -4.558210845970175 9.388247898190615
272 POINT 265 -3.540361900824579 9.389121481751587
273 POINT 266 -2.52566238019628 9.387374370414491
274 POINT 267 -1.513887157671833 9.384925984750414
275 POINT 268 -0.504297186178584 9.383298051709803
276 POINT 269 0.5042973320602566 9.383298015668299
277 POINT 270 1.51388730668141 9.384925862954564
278 POINT 271 2.525662501619651 9.387374163645836
279 POINT 272 3.540361939509808 9.389121254735599
280 POINT 273 4.558210789027288 9.388247723190803
281 POINT 274 5.577936342341931 9.385133146588913
282 POINT 275 6.599324518449944 9.378698438465905
283 POINT 276 7.62036189183867 9.371754085979447
284 POINT 277 8.642458092973191 9.362656736309578
285 POINT 278 9.663652671231812 9.358107201585797
286 POINT 279 10.6930724783395 9.344364317591429
287 POINT 280 11.72514158518201 9.31787949717938
288 POINT 281 12.74588295478644 9.286292109076781
289 POINT 282 13.72667400654556 9.338666111495892
290 POINT 283 14.75936532452434 9.376432764986804
291 POINT 284 15.84083766707554 9.368101537096484
292 POINT 285 16.8987927411374 9.302766530916411
293 POINT 286 -17.41541814741128 10.16622093237684
294 POINT 287 -16.36597467943507 10.20674001010058
295 POINT 288 -15.30570510771474 10.23673169382489
296 POINT 289 -14.25334124093768 10.24705991000825
297 POINT 290 -13.22518371810642 10.23169262743967
298 POINT 291 -12.21928286812764 10.21375315134102
299 POINT 292 -11.19741423399891 10.23174369517853
300 POINT 293 -10.17050417537597 10.2482576748095
301 POINT 294 -9.145044199699443 10.25842856407609
302 POINT 295 -8.123750354518931 10.26388718261748
303 POINT 296 -7.10298550942124 10.2706284602633
304 POINT 297 -6.083575083515306 10.2759394046698
305 POINT 298 -5.065015567249327 10.28034882788564
306 POINT 299 -4.048200146803218 10.28265723277545
307 POINT 300 -3.033238075903394 10.28342728339184
308 POINT 301 -2.02054894726801 10.28280355683485
309 POINT 302 -1.009738819288446 10.28194446006377
310 POINT 303 5.919699467074602e-08 10.28162989140187
311 POINT 304 1.009738935910972 10.2819443965436
312 POINT 305 2.020549047902884 10.28280343604998
313 POINT 306 3.033238133655776 10.28342713958931
314 POINT 307 4.048200151873941 10.2826571076832
315 POINT 308 5.065015543299326 10.28034873191634
316 POINT 309 6.083575061485952 10.27593933706552
317 POINT 310 7.102985523625926 10.27062840654225
318 POINT 311 8.123750433256964 10.26388711645833
319 POINT 312 9.14504435731642 10.25842843597803
320 POINT 313 10.17050438210141 10.24825745265531
321 POINT 314 11.19741445812459 10.23174327923734
322 POINT 315 12.21928304966143 10.21375232985006
323 POINT 316 13.22518366386299 10.23169143671009
324 POINT 317 14.25334082737309 10.24705856617686
325 POINT 318 15.30570438725816 10.2367300912412
326 POINT 319 16.36597364727631 10.20673788845324
327 POINT 320 17.41541641117195 10.16621785753401
328 POINT 321 -17.88625803484845 11.05115797933476
329 POINT 322 -16.85120422054986 11.06936232054822
330 POINT 323 -15.81832377296524 11.10623835603135
331 POINT 324 -14.77936586062894 11.12671433185663
332 POINT 325 -13.74209116444094 11.13500853711859
333 POINT 326 -12.71605470869173 11.13080637203836
334 POINT 327 -11.69940028612606 11.12659743667363
335 POINT 328 -10.67625961071982 11.13773567839252
336 POINT 329 -9.651329983156939 11.14840741093704
337 POINT 330 -8.627923790323184 11.15586543586765
338 POINT 331 -7.607383209356573 11.16085887302131
339 POINT 332 -6.588183874293925 11.16597912139563
340 POINT 333 -5.570592864708988 11.17006260278196
341 POINT 334 -4.55434815440509 11.17325037576849
342 POINT 335 -3.539757168979546 11.17505634294026
343 POINT 336 -2.526758778403693 11.17584237662288
344 POINT 337 -1.515331628371982 11.17586700307951
345 POINT 338 -0.5049906539082446 11.17574820189833
346 POINT 339 0.5049907444555864 11.17574817768458
347 POINT 340 1.5153317094028 11.17586693621212
348 POINT 341 2.526758836407911 11.17584228689916
349 POINT 342 3.539757198178682 11.17505625511356
350 POINT 343 4.554348166128215 11.17325029975345
351 POINT 344 5.570592875755479 11.17006254133163
352 POINT 345 6.588183905050538 11.16597906858908
353 POINT 346 7.6073832793965 11.16085881572795
354 POINT 347 8.62792391457109 11.15586535027681
355 POINT 348 9.651330158548348 11.14840727911036
356 POINT 349 10.67625983071012 11.13773544977034
357 POINT 350 11.69940052274761 11.12659700092283
358 POINT 351 12.71605485286965 11.13080569362486
359 POINT 352 13.74209110304109 11.13500768317192
360 POINT 353 14.7793655795263 11.12671327386668
361 POINT 354 15.81832324916032 11.10623695423282
362 POINT 355 16.85120337097398 11.06936033777372
363 POINT 356 17.88625674904034 11.05115540936097
364 POINT 357 -18.30877322305379 11.9508495437846
365 POINT 358 -17.29354589755249 11.94920666314173
366 POINT 359 -16.29455300391288 11.99583596159888
367 POINT 360 -15.27946629704285 12.01498717612042
368 POINT 361 -14.25474205301729 12.02594878618006
369 POINT 362 -13.22681809875847 12.03063506970706
370 POINT 363 -12.20220308495755 12.03009391767082
371 POINT 364 -11.18106431040382 12.03032682581759
372 POINT 365 -10.15753313450907 12.03745704775757
373 POINT 366 -9.134027318052762 12.04457505277963
374 POINT 367 -8.11232875700758 12.05009863957686
375 POINT 368 -7.093073740706956 12.05428798841279
376 POINT 369 -6.075537130934441 12.0582085939917
377 POINT 370 -5.05970021646697 12.06132294542906
378 POINT 371 -4.045326070247903 12.06366127251691
379 POINT 372 -3.032406410591747 12.06506238376489
380 POINT 373 -2.020741740391878 12.06579002116175
381 POINT 374 -1.010099115438543 12.06604601638048
382 POINT 375 3.404314703400746e-08 12.06609631184198
383 POINT 376 1.010099179329847 12.06604598427999
384 POINT 377 2.02074179197248 12.06578996792154
385 POINT 378 3.032406446294575 12.06506232425981
386 POINT 379 4.045326095644757 12.06366121500955
387 POINT 380 5.059700241198946 12.06132289396818
388 POINT 381 6.075537167668678 12.05820854699794
389 POINT 382 7.093073802862654 12.05428793944949
390 POINT 383 8.112328856771683 12.05009857666489
391 POINT 384 9.134027460561303 12.04457496575233
392 POINT 385 10.15753332314846 12.03745691162176
393 POINT 386 11.18106453668301 12.03032658694119
394 POINT 387 12.20220329614919 12.03009354250335
395 POINT 388 13.22681822001311 12.03063456472911
396 POINT 389 14.25474204169832 12.02594812574046
397 POINT 390 15.27946612080948 12.01498628420012
398 POINT 391 16.29455261172639 11.99583469575495
399 POINT 392 17.29354519100736 11.94920477604054
400 POINT 393 18.30877230037898 11.95084744504889
401 POINT 394 -18.68349051939805 12.86367167154098
402 POINT 395 -17.69955044194535 12.83783554399056
403 POINT 396 -16.74680072099509 12.90757935532751
404 POINT 397 -15.76140667037218 12.9221400730053
405 POINT 398 -14.75567094155959 12.92630257350449
406 POINT 399 -13.73682065989795 12.92743559025777
407 POINT 400 -12.71214391446095 12.92742694362712
408 POINT 401 -11.68737838806575 12.92678450620815
409 POINT 402 -10.66414648577376 12.92775785019992
410 POINT 403 -9.640754341022918 12.93234383939904
411 POINT 404 -8.618552582613498 12.93719911566106
412 POINT 405 -7.598448596921033 12.94129728244754
413 POINT 406 -6.580657830892998 12.94461961735053
414 POINT 407 -5.564721623493883 12.94754856845896
415 POINT 408 -4.550449594156615 12.94982267896038
416 POINT 409 -3.537564068386769 12.95146460765515
417 POINT 410 -2.525883376596742 12.95246017188719
418 POINT 411 -1.515118380882561 12.95300971020892
419 POINT 412 -0.5049676356087293 12.95322346487957
420 POINT 413 0.5049676844956841 12.95322345397402
421 POINT 414 1.515118423968893 12.95300968152577
422 POINT 415 2.525883411194239 12.95246013386642
423 POINT 416 3.537564097060069 12.95146456643065
424 POINT 417 4.550449622545449 12.94982263848316
425 POINT 418 5.56472165978088 12.9475485292704
426 POINT 419 6.580657884493699 12.94461957666239
427 POINT 420 7.598448677339204 12.9412972341219
428 POINT 421 8.618552696870632 12.93719905370227
429 POINT 422 9.640754495709061 12.93234375105686
430 POINT 423 10.66414668192525 12.927757709954
431 POINT 424 11.6873786049825 12.9267842939533
432 POINT 425 12.7121441131643 12.92742665289655
433 POINT 426 13.73682080368874 12.92743519895239
434 POINT 427 14.75567099253752 12.92630202967495
435 POINT 428 15.76140658474425 12.92213928078801
436 POINT 429 16.74680044196923 12.90757816273018
437 POINT 430 17.69954984610879 12.8378336756992
438 POINT 431 18.6834899076131 12.8636700698384
439 POINT 432 -19.02238328735229 13.82351766220752
440 POINT 433 -18.13955550450578 13.72808332961303
441 POINT 434 -17.24747413019177 13.83334150399983
442 POINT 435 -16.27671854460964 13.8444824687452
443 POINT 436 -15.27456079944098 13.83853174040222
444 POINT 437 -14.25616310884793 13.83020331307981
445 POINT 438 -13.22989658164751 13.82408308329856
446 POINT 439 -12.20135161049109 13.82071634572721
447 POINT 440 -11.17413867021331 13.81944883534201
448 POINT 441 -10.14926702413137 13.8202526514499
449 POINT 442 -9.126057836010542 13.82327629540207
450 POINT 443 -8.104996732868651 13.82665424545745
451 POINT 444 -7.086340525468896 13.82965017200467
452 POINT 445 -6.069982091125469 13.83211598100588
453 POINT 446 -5.055493375580907 13.83414727908586
454 POINT 447 -4.042551432867163 13.8356365177082
455 POINT 448 -3.030821469833524 13.83664074843842
456 POINT 449 -2.020032225634883 13.83720573920392
457 POINT 450 -1.009850751894021 13.83750425714042
458 POINT 451 1.810922449496655e-08 13.83759275454394
459 POINT 452 1.009850786298219 13.83750424406298
460 POINT 453 2.020032256013255 13.83720571680718
461 POINT 454 3.030821497136831 13.83664072069242
462 POINT 455 4.042551460337563 13.83563648775698
463 POINT 456 5.055493408535647 13.83414724818297
464 POINT 457 6.069982136283464 13.83211594828056
465 POINT 458 7.086340590263971 13.82965013439014
466 POINT 459 8.10499682427386 13.82665419928439
467 POINT 460 9.126057961450252 13.82327623361172
468 POINT 461 10.14926718918715 13.82025256130822
469 POINT 462 11.17413887129433 13.81944870576308
470 POINT 463 12.20135183449013 13.82071617071633
471 POINT 464 13.2298968126255 13.82408284872117
472 POINT 465 14.25616332583766 13.83020298488662
473 POINT 466 15.27456097333428 13.83853124901386
474 POINT 467 16.27671863417596 13.84448169655714
475 POINT 468 17.24747406497697 13.8333402848443
476 POINT 469 18.13955510497579 13.72808140596411
477 POINT 470 19.02238297028846 13.82351668571184
478 POINT 471 -19.27564676568709 14.66619818849089
479 POINT 472 -18.09766041208614 14.63187219093411
480 POINT 473 -16.95614347083327 14.72460549592841
481 POINT 474 -15.86921119998628 14.73780837074977
482 POINT 475 -14.81075412562909 14.72985007775523
483 POINT 476 -13.76486885106658 14.71947853532306
484 POINT 477 -12.72555276796724 14.71230313005461
485 POINT 478 -11.69126114605113 14.70886227379599
486 POINT 479 -10.66153612521807 14.70791746350395
487 POINT 480 -9.635755859587105 14.70873065251559
488 POINT 481 -8.613020109485847 14.71088365791704
489 POINT 482 -7.593121578733488 14.71326619553437
490 POINT 483 -6.575848554049146 14.71535684285003
491 POINT 484 -5.560852653819958 14.71698338764731
492 POINT 485 -4.547650629124863 14.71814844465915
493 POINT 486 -3.535804015609155 14.71887158153257
494 POINT 487 -2.524929077240439 14.71927025322356
495 POINT 488 -1.51473317861481 14.71940316393901
496 POINT 489 -0.5048698269273962 14.71947361417091
497 POINT 490 0.5048698535429671 14.71947360989954
498 POINT 491 1.514733203827875 14.71940315211682
499 POINT 492 2.524929101236818 14.7192702358374
500 POINT 493 3.535804040216305 14.718871560705
501 POINT 494 4.547650657766261 14.71814842161689
502 POINT 495 5.560852691237506 14.71698336234047
503 POINT 496 6.575848605965658 14.71535681381056
504 POINT 497 7.593121651312162 14.71326616047178
505 POINT 498 8.613020209763325 14.71088361248173
506 POINT 499 9.635755994552092 14.70873058948735
507 POINT 500 10.66153629879202 14.70791737591909
508 POINT 501 11.6912613588511 14.70886215652677
509 POINT 502 12.72555302053373 14.71230297372473
510 POINT 503 13.76486914422805 14.71947831783373
511 POINT 504 14.81075446037261 14.72984974915426
512 POINT 505 15.86921157538354 14.73780783221082
513 POINT 506 16.95614383875429 14.72460459306813
514 POINT 507 18.09766051890814 14.63187085031223
515 POINT 508 19.27564662677329 14.66619768647507
516 POINT 509 -19.50127447943532 15.56149871265921
517 POINT 510 -18.49586950943177 15.47325546362292
518 POINT 511 -17.47213216627488 15.54874531288023
519 POINT 512 -16.40580641559685 15.60593665709938
520 POINT 513 -15.34601737544395 15.61677435076866
521 POINT 514 -14.2947172695349 15.61000643038673
522 POINT 515 -13.24977965914606 15.60136804308813
523 POINT 516 -12.21061092357855 15.59603464741921
524 POINT 517 -11.1766690651603 15.59374881308825
525 POINT 518 -10.14751831522785 15.59340802755161
526 POINT 519 -9.122560414444946 15.59426088206107
527 POINT 520 -8.101062346441838 15.595824538575
528 POINT 521 -7.082603470679119 15.59741857217645
529 POINT 522 -6.066776863361147 15.59867868119486
530 POINT 523 -5.053111971733885 15.59945020989904
531 POINT 524 -4.041063833280758 15.59972861882586
532 POINT 525 -3.030084669706362 15.599680671072
533 POINT 526 -2.019763038193452 15.59951607389083
534 POINT 527 -1.009857003554932 15.59925577449675
535 POINT 528 1.024755921091858e-08 15.599193476494
536 POINT 529 1.009857023845601 15.59925576915614
537 POINT 530 2.019763058357887 15.59951606388146
538 POINT 531 3.030084690801801 15.59968065751039
539 POINT 532 4.041063857507812 15.59972860263055
540 POINT 533 5.053112002382292 15.59945019127528
541 POINT 534 6.066776904670986 15.59867865945828
542 POINT 535 7.082603527619012 15.59741854590029
543 POINT 536 8.101062424891389 15.59582450492322
544 POINT 537 9.122560520746296 15.59426083642217
545 POINT 538 10.14751845483047 15.59340796487829
546 POINT 539 11.17666924233262 15.59374872859052
547 POINT 540 12.21061114276325 15.59603453344294
548 POINT 541 13.24977992549936 15.60136788386504
549 POINT 542 14.29471758842084 15.61000619229367
550 POINT 543 15.34601774658832 15.61677396966515
551 POINT 544 16.40580680537335 15.60593604543914
552 POINT 545 17.47213241791181 15.54874447015032
553 POINT 546 18.4958693388047 15.47325456203676
554 POINT 547 19.50127443887344 15.56149853444409
555 POINT 548 -19.69120777770086 16.49909493767488
556 POINT 549 -18.82453814407551 16.39668162048823
557 POINT 550 -17.91856863118067 16.45118061991079
558 POINT 551 -16.92410838554749 16.48124398607248
559 POINT 552 -15.88164018773895 16.50096422915104
560 POINT 553 -14.82887068531301 16.49821045669536
561 POINT 554 -13.77807911254733 16.48886297653494
562 POINT 555 -12.7333784111039 16.48193539493605
563 POINT 556 -11.69485118291488 16.47821714148055
564 POINT 557 -10.66193355150254 16.47685701531462
565 POINT 558 -9.634017284309458 16.47687882871921
566 POINT 559 -8.610421523166179 16.47761153274202
567 POINT 560 -7.59043875501705 16.47862741976457
568 POINT 561 -6.573526910504127 16.47948404375377
569 POINT 562 -5.55916420169899 16.47991242318579
570 POINT 563 -4.546789160014427 16.4797742368711
571 POINT 564 -3.535766395032657 16.47908711802946
572 POINT 565 -2.525390013898583 16.4782315399178
573 POINT 566 -1.515222446789751 16.47755978237018
574 POINT 567 -0.505160915759866 16.47693907152057
575 POINT 568 0.5051609320854129 16.4769390697559
576 POINT 569 1.515222463409069 16.47755977720512
577 POINT 570 2.525390031591372 16.47823153173884
578 POINT 571 3.535766415254718 16.47908710738646
579 POINT 572 4.546789185065328 16.47977422398127
580 POINT 573 5.559164234676066 16.47991240775378
581 POINT 574 6.573526955235264 16.47948402492305
582 POINT 575 7.590438816148497 16.47862739571796
583 POINT 576 8.610421605901228 16.47761150046795
584 POINT 577 9.634017393679581 16.47687878455547
585 POINT 578 10.66193369197147 16.47685695525197
586 POINT 579 11.6948513586376 16.47821705943312
587 POINT 580 12.73337862581002 16.48193527915152
588 POINT 581 13.77807936895742 16.48886280392126
589 POINT 582 14.82887098061904 16.49821018706623
590 POINT 583 15.88164049446434 16.50096381647671
591 POINT 584 16.92410861282034 16.48124342897973
592 POINT 585 17.91856863399398 16.45118006156937
593 POINT 586 18.82453798513463 16.39668072056363
594 POINT 587 19.69120781864528 16.4990951679711
595 POINT 588 -19.82328465846074 17.34719293018973
596 POINT 589 -18.68356651268673 17.31043580953861
597 POINT 590 -17.56673240514328 17.36123106358058
598 POINT 591 -16.47414590791442 17.37598986974012
599 POINT 592 -15.39064716739153 17.37819173206542
600 POINT 593 -14.32006602394481 17.37102412556857
601 POINT 594 -13.2634493215721 17.36491520744474
602 POINT 595 -12.21741851257929 17.36094404730209
603 POINT 596 -11.17940525689727 17.35901220028596
604 POINT 597 -10.14779283686373 17.35850451428117
605 POINT 598 -9.121467989502685 17.35873940174785
606 POINT 599 -8.09954906046551 17.35924582268215
607 POINT 600 -7.081277449497645 17.35971278396684
608 POINT 601 -6.066028455702323 17.35983944191427
609 POINT 602 -5.053197717776997 17.35940141983762
610 POINT 603 -4.042124698542789 17.35824695931711
611 POINT 604 -3.032009115389205 17.3564023422576
612 POINT 605 -2.021821824817601 17.35459015065573
613 POINT 606 -1.011040264187739 17.35340280443575
614 POINT 607 6.814640345076395e-09 17.35243938843107
615 POINT 608 1.011040278028748 17.35340280223508
616 POINT 609 2.021821839659843 17.35459014619961
617 POINT 610 3.032009132287029 17.35640233585637
618 POINT 611 4.042124719169761 17.35824695109229
619 POINT 612 5.053197744437713 17.35940140968951
620 POINT 613 6.066028491348846 17.35983942938084
621 POINT 614 7.081277497793296 17.35971276796347
622 POINT 615 8.099549125655424 17.35924580133723
623 POINT 616 9.121468076013995 17.3587393726077
624 POINT 617 10.14779294895601 17.35850447445268
625 POINT 618 11.17940539853177 17.3590121455207
626 POINT 619 12.21741868699975 17.36094396965026
627 POINT 620 13.26344953055692 17.36491509096027
628 POINT 621 14.32006626614396 17.37102394370543
629 POINT 622 15.39064742969177 17.37819145776436
630 POINT 623 16.47414614962407 17.37598951033426
631 POINT 624 17.56673257253595 17.36123068035427
632 POINT 625 18.68356665984462 17.31043516903573
633 POINT 626 19.82328469438627 17.3471931986458
634 POINT 627 -19.92361530225037 18.25370297831815
635 POINT 628 -19.07203628626812 18.19876552320404
636 POINT 629 -18.09128424245282 18.22378292531755
637 POINT 630 -17.02794564635327 18.24352791034031
638 POINT 631 -15.94398258752478 18.24421394845224
639 POINT 632 -14.86112859360125 18.24245684590457
640 POINT 633 -13.79465161119509 18.24206223663435
641 POINT 634 -12.74159853322912 18.24073858102732
642 POINT 635 -11.698529613906 18.23959715961889
643 POINT 636 -10.66316644369302 18.23915626546558
644 POINT 637 -9.633977641977911 18.2392237253931
645 POINT 638 -8.609886644138397 18.23947670834334
646 POINT 639 -7.590062391072585 18.23966317253559
647 POINT 640 -6.573799873479021 18.2395756905061
648 POINT 641 -5.560467629070432 18.23897213290731
649 POINT 642 -4.549395686991836 18.2375962202419
650 POINT 643 -3.53974763298982 18.23518325778423
651 POINT 644 -2.530321009293305 18.23165172954483
652 POINT 645 -1.519299961772805 18.22830303022641
653 POINT 646 -0.5061568241133134 18.22651105869159
654 POINT 647 0.5061568361746052 18.22651105818931
655 POINT 648 1.519299974627625 18.2283030281956
656 POINT 649 2.530321023719614 18.23165172623696
657 POINT 650 3.539747650302188 18.23518325320082
658 POINT 651 4.549395708977971 18.23759621436859
659 POINT 652 5.560467658068336 18.23897212554887
660 POINT 653 6.573799912439206 18.23957568110988
661 POINT 654 7.590062443504756 18.23966316006795
662 POINT 655 8.609886713904036 18.23947669135741
663 POINT 656 9.633977733038876 18.23922370211182
664 POINT 657 10.66316655986387 18.23915623336316
665 POINT 658 11.69852975826159 18.23959711417069
666 POINT 659 12.74159870680618 18.24073851295247
667 POINT 660 13.79465181041776 18.24206212883075
668 POINT 661 14.86112880502805 18.24245668253721
669 POINT 662 15.94398277539668 18.24421374106404
670 POINT 663 17.02794575643996 18.24352769585881
671 POINT 664 18.09128426867969 18.22378260511285
672 POINT 665 19.07203607838779 18.19876510589028
673 POINT 666 19.92361533574309 18.25370336043873
674 POINT 667 -19.9802449810712 19.11128711446231
675 POINT 668 -18.80619197016033 19.09425379941037
676 POINT 669 -17.66225403113433 19.09510203515607
677 POINT 670 -16.52583190669753 19.09866237624121
678 POINT 671 -15.41432354959155 19.0986301021614
679 POINT 672 -14.33063667844831 19.1105065301146
680 POINT 673 -13.26794614671815 19.11638402180332
681 POINT 674 -12.21904679432654 19.11829199267038
682 POINT 675 -11.17975304147024 19.11894075428319
683 POINT 676 -10.14765766280284 19.11928688527702
684 POINT 677 -9.121321606407902 19.1195239082655
685 POINT 678 -8.099811768765214 19.11961774535636
686 POINT 679 -7.082440474765014 19.11946501955149
687 POINT 680 -6.068617555176951 19.11889174400767
688 POINT 681 -5.057733760576324 19.11759686938207
689 POINT 682 -4.048951495282913 19.11510440717879
690 POINT 683 -3.040860967573059 19.11069978972926
691 POINT 684 -2.031062116367802 19.10382972217813
692 POINT 685 -1.01638199358576 19.09746934675944
693 POINT 686 5.469910147222479e-09 19.09799582548251
694 POINT 687 1.016382005544462 19.09746934612121
695 POINT 688 2.031062129425211 19.10382972109414
696 POINT 689 3.040860982727736 19.11069978795467
697 POINT 690 4.048951514001514 19.1151044047146
698 POINT 691 5.057733784810108 19.11759686619456
699 POINT 692 6.06861758741177 19.11889173991558
700 POINT 693 7.082440518000469 19.11946501414825
701 POINT 694 8.099811826393989 19.11961773801307
702 POINT 695 9.121321682045322 19.11952389818466
703 POINT 696 10.14765776004377 19.11928687136565
704 POINT 697 11.1797531633058 19.11894073468605
705 POINT 698 12.21904694182174 19.11829196363125
706 POINT 699 13.26794631623689 19.11638397571452
707 POINT 700 14.33063685706478 19.11050645765263
708 POINT 701 15.41432371433398 19.09863001492938
709 POINT 702 16.52583203632977 19.09866230844884
710 POINT 703 17.6622541458637 19.09510191838969
711 POINT 704 18.80619204599507 19.09425361367645
712 POINT 705 19.9802449892912 19.11128730390016
713 POINT 706 -19.18788556876717 20.00005139493198
714 POINT 707 -18.23752403849579 19.99984302247159
715 POINT 708 -17.29064226017514 19.99925376166535
716 POINT 709 -16.47440002277868 20.00254940092639
717 POINT 710 -15.69589026095225 19.99922347246529
718 POINT 711 -14.75829776969549 19.99999149402495
719 POINT 712 -13.75224907606844 20.00002238976034
720 POINT 713 -12.72358628344629 20.00001314522074
721 POINT 714 -11.69063170189132 20.00000296247429
722 POINT 715 -10.65968425579931 19.99999907815186
723 POINT 716 -9.632679418332129 19.99999847573628
724 POINT 717 -8.610092788959356 19.9999987802438
725 POINT 718 -7.592007815489902 19.99999919201484
726 POINT 719 -6.578584325048967 19.99999952078446
727 POINT 720 -5.570430449173512 19.99999973968279
728 POINT 721 -4.569141973011657 19.99999986982209
729 POINT 722 -3.578262228261103 19.99999994088966
730 POINT 723 -2.605187956284842 19.99999997690123
731 POINT 724 -1.66466516281073 19.99999999380757
732 POINT 725 -0.7826655107941599 20.0000000016338
733 POINT 726 0.7826655154907771 20.00000000163381
734 POINT 727 1.664665170888243 19.99999999380764
735 POINT 728 2.605187967544461 19.99999997690146
736 POINT 729 3.578262243238 19.99999994089031
737 POINT 730 4.569141992985899 19.9999998698238
738 POINT 731 5.570430476094784 19.99999973968696
739 POINT 732 6.578584361468833 19.999999520794
740 POINT 733 7.592007864442903 19.99999919203552
741 POINT 734 8.610092853801689 19.99999878028637
742 POINT 735 9.632679502529101 19.99999847581969
743 POINT 736 10.6596843624034 19.99999907830713
744 POINT 737 11.69063183223476 20.00000296274612
745 POINT 738 12.72358643409481 20.00001314569264
746 POINT 739 13.75224923254777 20.00002239071156
747 POINT 740 14.75829790050601 19.99999149614534
748 POINT 741 15.69589033419841 19.99922348070548
749 POINT 742 16.47440003681302 20.0025493901109
750 POINT 743 17.29064231060998 19.99925377353345
751 POINT 744 18.23752405131307 19.99984302941273
752 POINT 745 19.18788543351031 20.00005138833587
753 POINT 746 -19.98023779283576 20.88887437456774
754 POINT 747 -18.80580843557483 20.90547874653299
755 POINT 748 -17.66161201461446 20.90415650737443
756 POINT 749 -16.52591330812703 20.90273438014319
757 POINT 750 -15.41490978144221 20.90067949213849
758 POINT 751 -14.33087263381866 20.8894508385836
759 POINT 752 -13.26804240623713 20.88362475434566
760 POINT 753 -12.21908307283113 20.88171102490173
761 POINT 754 -11.1797653194024 20.88105596204579
762 POINT 755 -10.14766089752007 20.88070896143329
763 POINT 756 -9.121321787680523 20.8804729634606
764 POINT 757 -8.099811171529218 20.88038023214702
765 POINT 758 -7.082439863957721 20.88053378104001
766 POINT 759 -6.068617118328885 20.88110759648338
767 POINT 760 -5.057733492537352 20.88240279408681
768 POINT 761 -4.048951345696993 20.88489543523155
769 POINT 762 -3.040860889905527 20.88930014517067
770 POINT 763 -2.031062079165233 20.89617025723036
771 POINT 764 -1.016381979500983 20.90253065295888
772 POINT 765 5.469943456515303e-09 20.90200417751546
773 POINT 766 1.016381991459812 20.90253065359715
774 POINT 767 2.03106209222298 20.89617025831457
775 POINT 768 3.040860905061069 20.88930014694594
776 POINT 769 4.048951364417659 20.88489543769765
777 POINT 770 5.057733516775839 20.8824027972792
778 POINT 771 6.06861715057387 20.88110760058708
779 POINT 772 7.082439907213993 20.88053378646916
780 POINT 773 8.099811229198181 20.8803802395451
781 POINT 774 9.121321863390992 20.88047297365156
782 POINT 775 10.14766099488602 20.88070897555551
783 POINT 776 11.17976544143952 20.88105598202432
784 POINT 777 12.21908322063199 20.88171105459812
785 POINT 778 13.26804257619063 20.88362480166985
786 POINT 779 14.33087281298531 20.88945091392941
787 POINT 780 15.41490994607966 20.90067958866326
788 POINT 781 16.52591344201236 20.90273444864004
789 POINT 782 17.66161214257477 20.90415664260873
790 POINT 783 18.80580852434392 20.90547893935344
791 POINT 784 19.98023780197282 20.88887416458981
792 POINT 785 -19.92358828250518 21.74660526428339
793 POINT 786 -19.07217434439901 21.80073889981208
794 POINT 787 -18.09112945874565 21.77562907330344
795 POINT 788 -17.02812405581322 21.75701137151901
796 POINT 789 -15.94366066593676 21.75622850710521
797 POINT 790 -14.86126409690214 21.75722234436677
798 POINT 791 -13.79471434661022 21.75787709872358
799 POINT 792 -12.74162038561464 21.75924454538805
800 POINT 793 -11.69853414597164 21.7603937981996
801 POINT 794 -10.66316512661045 21.76083746123114
802 POINT 795 -9.633974994254842 21.76077236820268
803 POINT 796 -8.609884257109169 21.76052103489894
804 POINT 797 -7.590060667734138 21.76033556874065
805 POINT 798 -6.573798770236956 21.76042363684251
806 POINT 799 -5.560466980079595 21.76102752854904
807 POINT 800 -4.549395330869891 21.76240362299502
808 POINT 801 -3.53974744971968 21.76481667916055
809 POINT 802 -2.5303209212877 21.76834825283947
810 POINT 803 -1.519299924135361 21.77169697292803
811 POINT 804 -0.5061568134041036 21.7734889506532
812 POINT 805 0.5061568254655004 21.77348895115548
813 POINT 806 1.519299936990494 21.77169697495886
814 POINT 807 2.530320935714927 21.76834825614754
815 POINT 808 3.539747467034398 21.76481668374473
816 POINT 809 4.549395352861634 21.76240362887052
817 POINT 810 5.560467009090089 21.76102753591302
818 POINT 811 6.573798809223865 21.76042364625162
819 POINT 812 7.590060720219843 21.76033558123638
820 POINT 813 8.609884326976061 21.76052105194263
821 POINT 814 9.633975085497147 21.76077239159665
822 POINT 815 10.66316524309085 21.76083749354136
823 POINT 816 11.69853429083621 21.7603938440048
824 POINT 817 12.74162056001178 21.75924461407503
825 POINT 818 13.79471454718983 21.75787720786278
826 POINT 819 14.86126431068448 21.75722251199929
827 POINT 820 15.94366086082416 21.756228717586
828 POINT 821 17.02812417119083 21.75701159238045
829 POINT 822 18.09112949141926 21.77562941392504
830 POINT 823 19.07217412140869 21.80073933755012
831 POINT 824 19.92358831980405 21.74660483881377
832 POINT 825 -19.823263456196 22.65296550038718
833 POINT 826 -18.68347167777789 22.6889724670474
834 POINT 827 -17.5669100312704 22.63883478838346
835 POINT 828 -16.47409263224828 22.6242054542872
836 POINT 829 -15.3904367336017 22.62202395225419
837 POINT 830 -14.32006894483515 22.62885094013076
838 POINT 831 -13.26345062953686 22.63505078113978
839 POINT 832 -12.21741436155782 22.63904422561734
840 POINT 833 -11.17939965412427 22.64098178723362
841 POINT 834 -10.14778782482358 22.64149205572087
842 POINT 835 -9.121464141616515 22.64125877788618
843 POINT 836 -8.099546383139796 22.64075324216461
844 POINT 837 -7.081275727631735 22.64028674537108
845 POINT 838 -6.066027421514116 22.64016033445862
846 POINT 839 -5.053197134698077 22.64059848599732
847 POINT 840 -4.042124389521369 22.64175301143073
848 POINT 841 -3.032008961880832 22.64359765889142
849 POINT 842 -2.021821754586955 22.64540986356159
850 POINT 843 -1.011040237264479 22.64659721372332
851 POINT 844 6.814665224480487e-09 22.6475606308115
852 POINT 845 1.011040251105664 22.64659721592393
853 POINT 846 2.021821769429846 22.64540986801763
854 POINT 847 3.032008978780493 22.6435976652927
855 POINT 848 4.042124410152931 22.64175301965603
856 POINT 849 5.053197161369463 22.64059849614706
857 POINT 850 6.066027457183961 22.64016034699624
858 POINT 851 7.081275775975558 22.6402867613839
859 POINT 852 8.099546448423908 22.64075326352899
860 POINT 853 9.121464228302864 22.64125880706316
861 POINT 854 10.14778793722731 22.64149209561295
862 POINT 855 11.17939979629603 22.64098184209338
863 POINT 856 12.21741453689023 22.6390443033786
864 POINT 857 13.26345084008729 22.63505089777322
865 POINT 858 14.32006918987354 22.62885112279828
866 POINT 859 15.39043700219516 22.62202422695843
867 POINT 860 16.47409288234377 22.62420581860266
868 POINT 861 17.56691020844972 22.63883518337205
869 POINT 862 18.68347184009588 22.68897314250563
870 POINT 863 19.82326349779923 22.652965189523
871 POINT 864 -19.69117813060965 23.501071811403
872 POINT 865 -18.8246775584696 23.60270488921595
873 POINT 866 -17.91872317447207 23.54877686754418
874 POINT 867 -16.92421077812897 23.51878118738913
875 POINT 868 -15.88162933414794 23.49913833184728
876 POINT 869 -14.82876942700178 23.5019021870122
877 POINT 870 -13.77806312245109 23.51109818218014
878 POINT 871 -12.7333690497193 23.51805365247506
879 POINT 872 -11.69484326979592 23.5217794620292
880 POINT 873 -10.661927166753 23.52314139532949
881 POINT 874 -9.634012473512842 23.52312044026287
882 POINT 875 -8.610418120559023 23.52238820743955
883 POINT 876 -7.590436502923668 23.52137251796749
884 POINT 877 -6.573525514872875 23.52051596810155
885 POINT 878 -5.559163390593181 23.52008761426355
886 POINT 879 -4.54678871790041 23.52022580633416
887 POINT 880 -3.535766169521851 23.52091292302367
888 POINT 881 -2.525389907129223 23.5217684966976
889 POINT 882 -1.515222401501546 23.52244024975234
890 POINT 883 -0.505160903546754 23.52306095823609
891 POINT 884 0.5051609198722887 23.52306096000069
892 POINT 885 1.515222418121158 23.52244025491717
893 POINT 886 2.525389924823131 23.52176850487623
894 POINT 887 3.535766189747005 23.52091293366626
895 POINT 888 4.546788742958842 23.52022581922355
896 POINT 889 5.559163423587246 23.52008762969507
897 POINT 890 6.573525559639977 23.52051598693144
898 POINT 891 7.590436564126859 23.52137254201168
899 POINT 892 8.610418203429177 23.52238823970576
900 POINT 893 9.634012583123939 23.5231204844028
901 POINT 894 10.66192730763136 23.52314145532485
902 POINT 895 11.69484344618557 23.52177954389795
903 POINT 896 12.73336926547453 23.51805376783202
904 POINT 897 13.77806338049386 23.51109835404176
905 POINT 898 14.82876972514016 23.50190245509659
906 POINT 899 15.88162964366185 23.49913874577929
907 POINT 900 16.92421100623148 23.5187817528495
908 POINT 901 17.9187231720003 23.54877744101314
909 POINT 902 18.82467738720799 23.60270583207815
910 POINT 903 19.69117818073977 23.50107152945477
911 POINT 904 -19.50128258193048 24.4384656875654
912 POINT 905 -18.49603377721733 24.52645328847083
913 POINT 906 -17.47222047478762 24.45122954140129
914 POINT 907 -16.40586225838657 24.39407159976292
915 POINT 908 -15.34601775579845 24.38327897298187
916 POINT 909 -14.29467265709022 24.390055636783
917 POINT 910 -13.24976676348197 24.39862650284665
918 POINT 911 -12.21060209619167 24.40396573526314
919 POINT 912 -11.17666203331493 24.40625240812431
920 POINT 913 -10.14751294202745 24.40659288968487
921 POINT 914 -9.122556531432314 24.40573982553234
922 POINT 915 -8.101059706484772 24.40417598818402
923 POINT 916 -7.082601789515715 24.40258179050725
924 POINT 917 -6.066775861079858 24.401321559102
925 POINT 918 -5.053111412995462 24.40054994850132
926 POINT 919 -4.041063542992159 24.40027148711376
927 POINT 920 -3.030084530115851 24.40031940219774
928 POINT 921 -2.019762977092939 24.40048397969316
929 POINT 922 -1.009856981565384 24.40074426873068
930 POINT 923 1.024744895883334e-08 24.40080656348254
931 POINT 924 1.009857001855979 24.40074427407103
932 POINT 925 2.019762997257817 24.40048398970201
933 POINT 926 3.030084551212998 24.40031941575852
934 POINT 927 4.041063567223794 24.40027150330772
935 POINT 928 5.053111443654583 24.40054996712262
936 POINT 929 6.066775902412783 24.40132158083352
937 POINT 930 7.082601846501917 24.40258181677218
938 POINT 931 8.101059785020986 24.40417602181029
939 POINT 932 9.122556637884827 24.40573987111417
940 POINT 933 10.14751308187546 24.40659295223369
941 POINT 934 11.17666221085666 24.40625249235723
942 POINT 935 12.21060231588698 24.40396584869259
943 POINT 936 13.24976703047505 24.39862666102139
944 POINT 937 14.29467297678669 24.39005587293844
945 POINT 938 15.34601812724821 24.38327935339093
946 POINT 939 16.40586264749961 24.39407221667886
947 POINT 940 17.47222072302032 24.45123039885839
948 POINT 941 18.49603359613996 24.52645421647772
949 POINT 942 19.50128254843763 24.438465834723
950 POINT 943 -19.27566297736843 25.33374322431333
951 POINT 944 -18.09775178956348 25.36799483110871
952 POINT 945 -16.95620348221256 25.27537035025225
953 POINT 946 -15.86925210584145 25.2621959819831
954 POINT 947 -14.81076315314948 25.27017923896646
955 POINT 948 -13.76485149074431 25.28055642554051
956 POINT 949 -12.72554494747265 25.2877018915422
957 POINT 950 -11.69125466472678 25.29114191583416
958 POINT 951 -10.66153084238642 25.29208544028669
959 POINT 952 -9.635751893753024 25.29127123899427
960 POINT 953 -8.613017330938026 25.28911759029576
961 POINT 954 -7.593119760102007 25.28673460993404
962 POINT 955 -6.575847443318799 25.28464366208886
963 POINT 956 -5.56085202263591 25.28301692601594
964 POINT 957 -4.547650297377339 25.28185175153692
965 POINT 958 -3.535803856092467 25.28112854408795
966 POINT 959 -2.524929008354851 25.28072983104776
967 POINT 960 -1.514733152989468 25.28059689769103
968 POINT 961 -0.5048698207562641 25.28052643741724
969 POINT 962 0.5048698473713688 25.28052644168841
970 POINT 963 1.51473317820234 25.28059690951267
971 POINT 964 2.524929032351727 25.28072984843296
972 POINT 965 3.535803880701605 25.28112856491395
973 POINT 966 4.54765032602379 25.28185177457648
974 POINT 967 5.560852060064414 25.28301695131759
975 POINT 968 6.575847495256659 25.28464369111745
976 POINT 969 7.593119832718212 25.28673464497304
977 POINT 970 8.613017431274047 25.28911763568033
978 POINT 971 9.635752028795475 25.29127130191628
979 POINT 972 10.66153101603581 25.29208552765603
980 POINT 973 11.6912548775394 25.29114203268002
981 POINT 974 12.72554519985952 25.28770204706892
982 POINT 975 13.76485178333624 25.28055664153414
983 POINT 976 14.81076348639632 25.27017956625211
984 POINT 977 15.86925247881834 25.26219652228766
985 POINT 978 16.95620384751598 25.27537126258778
986 POINT 979 18.09775189289379 25.36799618984021
987 POINT 980 19.27566284513804 25.33374370218195
988 POINT 981 -19.02239954985974 26.17643225215792
989 POINT 982 -18.13957375669325 26.27182967555013
990 POINT 983 -17.24752991244937 26.16660408857279
991 POINT 984 -16.27676195998304 26.15550609242113
992 POINT 985 -15.27459027941854 26.16147153179269
993 POINT 986 -14.25617297779009 26.16981316221108
994 POINT 987 -13.2298905244963 26.17593671197166
995 POINT 988 -12.20134707994185 26.17929019701242
996 POINT 989 -11.17413433418612 26.18055581832264
997 POINT 990 -10.14926347567323 26.17975046130899
998 POINT 991 -9.126055233191323 26.1767257214049
999 POINT 992 -8.104994973232515 26.17334704655403
1000 POINT 993 -7.086339423772932 26.17035063568784
1001 POINT 994 -6.069981455507479 26.16788451762503
1002 POINT 995 -5.055493041319419 26.16585302924196
1003 POINT 996 -4.042551276201685 26.16436367569299
1004 POINT 997 -3.030821407389114 26.16335937686056
1005 POINT 998 -2.020032206493706 26.16279434727297
1006 POINT 999 -1.009850748200918 26.16249580956691
1007 POINT 1000 1.810878547461869e-08 26.16240730616165
1008 POINT 1001 1.009850782604362 26.16249582264381
1009 POINT 1002 2.020032236871754 26.1627943696687
1010 POINT 1003 3.030821434692971 26.163359404605
1011 POINT 1004 4.04255130367432 26.16436370564181
1012 POINT 1005 5.055493074279512 26.16585306014084
1013 POINT 1006 6.069981500676009 26.16788455034281
1014 POINT 1007 7.086339488585687 26.17035067328725
1015 POINT 1008 8.104995064661678 26.17334709269614
1016 POINT 1009 9.126055358650662 26.17672578313303
1017 POINT 1010 10.14926364070988 26.17975055132968
1018 POINT 1011 11.17413453512518 26.18055594767594
1019 POINT 1012 12.20134730349981 26.17929037161421
1020 POINT 1013 13.22989075441856 26.17593694579172
1021 POINT 1014 14.25617319248297 26.1698134895775
1022 POINT 1015 15.27459044923737 26.16147202351487
1023 POINT 1016 16.27676204411003 26.15550686826468
1024 POINT 1017 17.24752984252422 26.16660531696369
1025 POINT 1018 18.13957335417382 26.27183161770785
1026 POINT 1019 19.02239923981158 26.17643320705552
1027 POINT 1020 -18.68351052659932 27.13627594775126
1028 POINT 1021 -17.69958032840385 27.16211878258065
1029 POINT 1022 -16.74683156791625 27.09239213947461
1030 POINT 1023 -15.76142860035137 27.07785332363176
1031 POINT 1024 -14.75568523901815 27.07369952580982
1032 POINT 1025 -13.73682530497883 27.07257389333525
1033 POINT 1026 -12.71214081282853 27.07258462878146
1034 POINT 1027 -11.68737540619582 27.07322119480453
1035 POINT 1028 -10.66414374485063 27.07224624332165
1036 POINT 1029 -9.640752201106791 27.06765889268107
1037 POINT 1030 -8.618551085348614 27.06280265021007
1038 POINT 1031 -7.598447638413528 27.0587038340893
1039 POINT 1032 -6.580657275128921 27.05538108021106
1040 POINT 1033 -5.564721338620957 27.05245186732603
1041 POINT 1034 -4.55044947250108 27.05017759593697
1042 POINT 1035 -3.537564033075582 27.04853556963036
1043 POINT 1036 -2.525883378397752 27.04753994742007
1044 POINT 1037 -1.515118391171542 27.04699037668727
1045 POINT 1038 -0.5049676403738673 27.04677660797433
1046 POINT 1039 0.5049676892594587 27.04677661887949
1047 POINT 1040 1.515118434256783 27.04699040536934
1048 POINT 1041 2.525883412994776 27.04753998543922
1049 POINT 1042 3.537564061749419 27.04853561085263
1050 POINT 1043 4.550449500892171 27.05017763641098
1051 POINT 1044 5.564721374913006 27.05245190650947
1052 POINT 1045 6.580657328738541 27.0553811208901
1053 POINT 1046 7.598447718844161 27.05870388239782
1054 POINT 1047 8.618551199616206 27.0628027121368
1055 POINT 1048 9.640752355782366 27.06765898096566
1056 POINT 1049 10.66414394092225 27.07224638347101
1057 POINT 1050 11.6873756228595 27.07322140691138
1058 POINT 1051 12.71214101090778 27.07258491927569
1059 POINT 1052 13.7368254473805 27.07257428445428
1060 POINT 1053 14.75568528734847 27.07370007007758
1061 POINT 1054 15.76142851055736 27.07785411803665
1062 POINT 1055 16.74683128376763 27.09239333698052
1063 POINT 1056 17.6995797272013 27.16212066124442
1064 POINT 1057 18.68350991969133 27.13627753669932
1065 POINT 1058 -18.3087899994487 28.0491122961534
1066 POINT 1059 -17.29356305303868 28.05076474633064
1067 POINT 1060 -16.29456855134103 28.00414807613013
1068 POINT 1061 -15.27947676947299 27.98500923824287
1069 POINT 1062 -14.25474850756761 27.97405313016844
1070 POINT 1063 -13.22681991964508 27.96937104967781
1071 POINT 1064 -12.20220140205727 27.96991345424442
1072 POINT 1065 -11.18106269960114 27.96967783441059
1073 POINT 1066 -10.1575317295533 27.96254624095482
1074 POINT 1067 -9.134026282902123 27.9554271272794
1075 POINT 1068 -8.11232808124951 27.94990275991905
1076 POINT 1069 -7.093073357937705 27.94571290375888
1077 POINT 1070 -6.075536956332379 27.94179197610055
1078 POINT 1071 -5.059700169738454 27.9386774220445
1079 POINT 1072 -4.045326088931555 27.93633896816423
1080 POINT 1073 -3.03240645241726 27.93493777823327
1081 POINT 1074 -2.020741779449279 27.93421009321045
1082 POINT 1075 -1.010099138076054 27.93395407311486
1083 POINT 1076 3.404211895013942e-08 27.93390377024507
1084 POINT 1077 1.010099201965424 27.93395410521433
1085 POINT 1078 2.020741831028424 27.93421014644879
1086 POINT 1079 3.032406488119535 27.93493783773603
1087 POINT 1080 4.045326114328983 27.93633902566877
1088 POINT 1081 5.059700194472554 27.93867747350166
1089 POINT 1082 6.075536993070713 27.94179202308874
1090 POINT 1083 7.09307342009923 27.94571295271277
1091 POINT 1084 8.112328181018478 27.94990282281439
1092 POINT 1085 9.134026425405688 27.95542721427844
1093 POINT 1086 10.15753191815605 27.96254637704741
1094 POINT 1087 11.18106292576653 27.96967807323303
1095 POINT 1088 12.2022016129779 27.96991382936287
1096 POINT 1089 13.22682004031123 27.9693715547119
1097 POINT 1090 14.25474849512003 27.97405379109089
1098 POINT 1091 15.27947659137026 27.98501013174536
1099 POINT 1092 16.29456815670813 28.00414934511754
1100 POINT 1093 17.29356234408891 28.05076663883557
1101 POINT 1094 18.30878908050798 28.04911438640772
1102 POINT 1095 -17.88627195115217 28.94881420577205
1103 POINT 1096 -16.85121623860757 28.93061933343462
1104 POINT 1097 -15.81833314037684 28.89375235827191
1105 POINT 1098 -14.77937167335351 28.87328385036637
1106 POINT 1099 -13.74209446540223 28.86499338776666
1107 POINT 1100 -12.71605582999688 28.86919825138711
1108 POINT 1101 -11.69940001494518 28.87340789918018
1109 POINT 1102 -10.67625922348492 28.86226791658786
1110 POINT 1103 -9.65132961605895 28.851595071435
1111 POINT 1104 -8.627923539340028 28.8441361901345
1112 POINT 1105 -7.607383097319782 28.83914218931285
1113 POINT 1106 -6.588183876610444 28.834021579554
1114 POINT 1107 -5.570592938796751 28.82993786493235
1115 POINT 1108 -4.554348259497055 28.82674994031302
1116 POINT 1109 -3.539757274765657 28.82494387416716
1117 POINT 1110 -2.526758864903647 28.82415777580468
1118 POINT 1111 -1.515331685041841 28.82413311065559
1119 POINT 1112 -0.5049906739901562 28.82425189305842
1120 POINT 1113 0.5049907645346323 28.82425191727151
1121 POINT 1114 1.515331766070061 28.82413317752096
1122 POINT 1115 2.526758922906133 28.82415786552549
1123 POINT 1116 3.539757303964481 28.82494396199095
1124 POINT 1117 4.554348271221096 28.82675001632507
1125 POINT 1118 5.5705929498453 28.82993792637928
1126 POINT 1119 6.588183907369825 28.83402163235582
1127 POINT 1120 7.607383167361471 28.83914224659848
1128 POINT 1121 8.627923663583609 28.84413627571221
1129 POINT 1122 9.651329791428106 28.85159520324159
1130 POINT 1123 10.67625944341114 28.86226814518679
1131 POINT 1124 11.69940025142002 28.87340833491707
1132 POINT 1125 12.71605597388189 28.86919892986707
1133 POINT 1126 13.74209440347107 28.86499424204478
1134 POINT 1127 14.77937139138959 28.87328490937882
1135 POINT 1128 15.81833261547568 28.89375376208559
1136 POINT 1129 16.85121538818617 28.93062131895283
1137 POINT 1130 17.88627066804774 28.94881677035237
1138 POINT 1131 -17.41542967730917 29.83375864838565
1139 POINT 1132 -16.36598381746591 29.79324716653365
1140 POINT 1133 -15.30571123700743 29.76326236085124
1141 POINT 1134 -14.25334486558897 29.75293926663301
1142 POINT 1135 -13.22518619984562 29.7683098214614
1143 POINT 1136 -12.21928477595643 29.78625116079143
1144 POINT 1137 -11.19741514236947 29.76826012438021
1145 POINT 1138 -10.17050471136325 29.75174492628818
1146 POINT 1139 -9.145044524339205 29.74157318849883
1147 POINT 1140 -8.1237506134133 29.73611400010283
1148 POINT 1141 -7.102985757155311 29.72937235399485
1149 POINT 1142 -6.083575327030116 29.72406116587013
1150 POINT 1143 -5.065015794708289 29.71965157618854
1151 POINT 1144 -4.048200344643696 29.7173430556003
1152 POINT 1145 -3.033238232867113 29.71657292251867
1153 POINT 1146 -2.020549058249011 29.71719659405831
1154 POINT 1147 -1.009738878373672 29.71805565528834
1155 POINT 1148 5.919503985596375e-08 29.71837020929849
1156 POINT 1149 1.009738994992378 29.71805571880686
1157 POINT 1150 2.020549158880593 29.71719671483972
1158 POINT 1151 3.033238290617864 29.71657306631699
1159 POINT 1152 4.048200349715117 29.71734318068954
1160 POINT 1153 5.065015770760248 29.7196516721558
1161 POINT 1154 6.083575305003133 29.72406123347293
1162 POINT 1155 7.102985771361372 29.72937240771407
1163 POINT 1156 8.123750692148713 29.73611406625849
1164 POINT 1157 9.145044681942796 29.74157331659041
1165 POINT 1158 10.17050491805136 29.75174514843446
1166 POINT 1159 11.19741536641047 29.76826054031946
1167 POINT 1160 12.2192849573198 29.78625198231071
1168 POINT 1161 13.22518614531627 29.76831101236639
1169 POINT 1162 14.25334445158184 29.75294061103708
1170 POINT 1163 15.30571051603222 29.76326396462168
1171 POINT 1164 16.36598278510637 29.79324928955189
1172 POINT 1165 17.41542794295087 29.83376171990615
1173 POINT 1166 -16.89880493119268 30.69721421200391
1174 POINT 1167 -15.84084671744584 30.63188582080215
1175 POINT 1168 -14.75937079783184 30.62356117741139
1176 POINT 1169 -13.72667803874304 30.6613328279952
1177 POINT 1170 -12.74588714172752 30.71371027983801
1178 POINT 1171 -11.72514438910883 30.68212290710705
1179 POINT 1172 -10.69307402425253 30.65563776551792
1180 POINT 1173 -9.663653547397562 30.64189426397848
1181 POINT 1174 -8.642458727492786 30.63734439158867
1182 POINT 1175 -7.620362459906692 30.62824675701598
1183 POINT 1176 -6.599325061244341 30.62130216573695
1184 POINT 1177 -5.577936826951563 30.6148672434393
1185 POINT 1178 -4.558211164728247 30.61175248302345
1186 POINT 1179 -3.540362154667188 30.61087880095583
1187 POINT 1180 -2.525662571249494 30.61262583895858
1188 POINT 1181 -1.513887280056144 30.61507416610434
1189 POINT 1182 -0.5042972278699956 30.61670205839328
1190 POINT 1183 0.5042973737465498 30.61670209443389
1191 POINT 1184 1.513887429060817 30.61507428789713
1192 POINT 1185 2.525662692669032 30.61262604572162
1193 POINT 1186 3.54036219335181 30.61087902796626
1194 POINT 1187 4.558211107788653 30.61175265802142
1195 POINT 1188 5.577936725817437 30.61486735811178
1196 POINT 1189 6.599324974859706 30.62130222879121
1197 POINT 1190 7.620362447487361 30.62824680085264
1198 POINT 1191 8.642458825941324 30.63734447157217
1199 POINT 1192 9.663653754394943 30.64189448764897
1200 POINT 1193 10.69307423735651 30.65563818384975
1201 POINT 1194 11.72514453379872 30.68212369692436
1202 POINT 1195 12.74588713706405 30.71371180853617
1203 POINT 1196 13.72667758015037 30.66133475353996
1204 POINT 1197 14.75936981763983 30.62356312399664
1205 POINT 1198 15.84084548444188 30.63188806768807
1206 POINT 1199 16.89880261226452 30.69721787530422
1207 POINT 1200 -16.34009128149359 31.53262402545307
1208 POINT 1201 -15.28568336821521 31.44708435232277
1209 POINT 1202 -14.2209000727431 31.53141889752363
1210 POINT 1203 -13.2977569951397 31.66679256172576
1211 POINT 1204 -12.27301009857187 31.6040005347632
1212 POINT 1205 -11.22445310392184 31.55974332082998
1213 POINT 1206 -10.18420406298538 31.54252893027452
1214 POINT 1207 -9.163915367393241 31.5436687933713
1215 POINT 1208 -8.140599406135669 31.53125016600776
1216 POINT 1209 -7.118690682844557 31.52230190448825
1217 POINT 1210 -6.093912293860901 31.51225498074955
1218 POINT 1211 -5.07053781765046 31.50770300997673
1219 POINT 1212 -4.04849776527412 31.50615467955022
1220 POINT 1213 -3.030710538587649 31.50945833368958
1221 POINT 1214 -2.017113296966526 31.51446605862232
1222 POINT 1215 -1.007152972521004 31.5188773687048
1223 POINT 1216 8.069955546863294e-08 31.52094595365134
1224 POINT 1217 1.007153147259242 31.51887744675579
1225 POINT 1218 2.017113486527146 31.51446627236329
1226 POINT 1219 3.030710673050414 31.50945868636081
1227 POINT 1220 4.048497739728965 31.5061550381337
1228 POINT 1221 5.070537627085144 31.50770325017226
1229 POINT 1222 6.093912047408612 31.51225510381275
1230 POINT 1223 7.118690492026126 31.52230193550043
1231 POINT 1224 8.140599370382356 31.53125017994062
1232 POINT 1225 9.163915512128149 31.54366891796288
1233 POINT 1226 10.18420431641738 31.5425293949968
1234 POINT 1227 11.22445321142737 31.55974415861684
1235 POINT 1228 12.27300998503818 31.60400199599792
1236 POINT 1229 13.29775665030186 31.66679525624402
1237 POINT 1230 14.22089893057988 31.53142164267454
1238 POINT 1231 15.28568200198485 31.44708667752904
1239 POINT 1232 16.34008819047632 31.53262840498486
1240 POINT 1233 -15.74070991046201 32.33815429935463
1241 POINT 1234 -14.74688528329741 32.29702825850423
1242 POINT 1235 -13.93190385661229 32.65477363083443
1243 POINT 1236 -12.86506936822592 32.52891304941449
1244 POINT 1237 -11.77212159391218 32.45232300476276
1245 POINT 1238 -10.70587315849742 32.4347153350411
1246 POINT 1239 -9.687662057866612 32.45538673008075
1247 POINT 1240 -8.662564266803992 32.43904962117873
1248 POINT 1241 -7.6420354397583 32.42864000943801
1249 POINT 1242 -6.613519518949163 32.41191777411576
1250 POINT 1243 -5.586073763699214 32.40488779735104
1251 POINT 1244 -4.558141198059786 32.40119064612167
1252 POINT 1245 -3.535940044697491 32.40633890872039
1253 POINT 1246 -2.519295876494282 32.41479259504359
1254 POINT 1247 -1.507828324987365 32.42353533511525
1255 POINT 1248 -0.5019149230875003 32.43049565557803
1256 POINT 1249 0.5019150823275319 32.43049567799903
1257 POINT 1250 1.507828527783088 32.42353546677084
1258 POINT 1251 2.519296107078045 32.41479297153293
1259 POINT 1252 3.535940160588894 32.40633951541907
1260 POINT 1253 4.558141018794441 32.40119120765029
1261 POINT 1254 5.58607332108212 32.40488811417254
1262 POINT 1255 6.613519029401044 32.41191787120312
1263 POINT 1256 7.642035101328529 32.4286399487375
1264 POINT 1257 8.662564215711519 32.43904959879422
1265 POINT 1258 9.687662207059672 32.45538705154674
1266 POINT 1259 10.70587327603016 32.43471639543523
1267 POINT 1260 11.77212124413756 32.45232461789568
1268 POINT 1261 12.86506864437663 32.5289155171651
1269 POINT 1262 13.9319031453721 32.65477802453022
1270 POINT 1263 14.74688388336436 32.29703064706029
1271 POINT 1264 15.74070577682765 32.33815957294095
1272 POINT 1265 -15.07552072766293 33.14262814282181
1273 POINT 1266 -14.47383699079426 33.80246509548604
1274 POINT 1267 -13.45485613851754 33.44616152809291
1275 POINT 1268 -12.31042376721847 33.31655850201416
1276 POINT 1269 -11.2135033566313 33.30180198841559
1277 POINT 1270 -10.20833474124087 33.37195219581763
1278 POINT 1271 -9.180106558323141 33.35165297473918
1279 POINT 1272 -8.167116093012913 33.3442344487901
1280 POINT 1273 -7.135707070230799 33.31483801144155
1281 POINT 1274 -6.105345665605076 33.30379118897195
1282 POINT 1275 -5.06957725725357 33.29468673625933
1283 POINT 1276 -4.041801375578952 33.30179332186751
1284 POINT 1277 -3.020762110140957 33.31421796476505
1285 POINT 1278 -2.005808444215231 33.32826293060971
1286 POINT 1279 -1.000289102538041 33.34360137140605
1287 POINT 1280 4.397051474314129e-08 33.34996601347633
1288 POINT 1281 1.000289226544982 33.34360139490249
1289 POINT 1282 2.005808652593252 33.32826315749907
1290 POINT 1283 3.020762356793561 33.31421864049496
1291 POINT 1284 4.04180140274841 33.30179435588055
1292 POINT 1285 5.069576774752012 33.29468759101248
1293 POINT 1286 6.105344800786285 33.30379157372327
1294 POINT 1287 7.135706209600581 33.31483800284786
1295 POINT 1288 8.167115522703435 33.3442342276991
1296 POINT 1289 9.180106333286005 33.35165308658632
1297 POINT 1290 10.20833438162417 33.37195324049043
1298 POINT 1291 11.21350253681438 33.30180425811116
1299 POINT 1292 12.31042180764285 33.31656140263814
1300 POINT 1293 13.4548524153751 33.44616582254692
1301 POINT 1294 14.47383044482127 33.80247196173818
1302 POINT 1295 15.07551512015369 33.14263458603429
1303 POINT 1296 -13.79621587368983 34.47979377169069
1304 POINT 1297 -12.80117612552641 34.14340935306568
1305 POINT 1298 -11.67938708456585 34.12832297638581
1306 POINT 1299 -10.72142132443546 34.29425844362311
1307 POINT 1300 -9.682832980733666 34.26424534470635
1308 POINT 1301 -8.688207103612132 34.27689307018375
1309 POINT 1302 -7.65563025945943 34.22402537362621
1310 POINT 1303 -6.627660152089107 34.20733211365729
1311 POINT 1304 -5.582314868145199 34.18559033550888
1312 POINT 1305 -4.548886327711884 34.19487513879358
1313 POINT 1306 -3.522722983675548 34.21111636664738
1314 POINT 1307 -2.501187911497048 34.22961986771382
1315 POINT 1308 -1.494394684397123 34.25705724567609
1316 POINT 1309 -0.4971265849464807 34.27519845138761
1317 POINT 1310 0.4971265078887681 34.27519841977612
1318 POINT 1311 1.494394688445157 34.25705727178087
1319 POINT 1312 2.501188049285862 34.22962028369921
1320 POINT 1313 3.522723188878942 34.21111756307139
1321 POINT 1314 4.548886155833521 34.19487684951891
1322 POINT 1315 5.582313876849914 34.18559156986573
1323 POINT 1316 6.627658663296168 34.20733251253952
1324 POINT 1317 7.655628853358176 34.22402516036131
1325 POINT 1318 8.68820599240011 34.27689283063138
1326 POINT 1319 9.682831841060921 34.26424634549341
1327 POINT 1320 10.72141915815556 34.29426114991747
1328 POINT 1321 11.67938420379727 34.12832694300539
1329 POINT 1322 12.80117158164824 34.14341469815486
1330 POINT 1323 13.79620812794538 34.47980114816573
1331 POINT 1324 -13.06808813704192 35.14018072687722
1332 POINT 1325 -12.14172620096994 34.87954210817981
1333 POINT 1326 -11.26850255798744 35.2174633859475
1334 POINT 1327 -10.17404344203454 35.15495143560162
1335 POINT 1328 -9.208060341626505 35.23313312650344
1336 POINT 1329 -8.164338718552617 35.1425249690552
1337 POINT 1330 -7.149966973739355 35.12413503072115
1338 POINT 1331 -6.093958485983832 35.07390856861841
1339 POINT 1332 -5.058078832983085 35.0862120839201
1340 POINT 1333 -4.028041239492521 35.10535340409478
1341 POINT 1334 -2.995366542760057 35.12335223032324
1342 POINT 1335 -1.984673994347679 35.16616214935111
1343 POINT 1336 -0.9889440302704526 35.202230425387
1344 POINT 1337 -2.362829220701329e-07 35.21561385455021
1345 POINT 1338 0.9889435978667032 35.20223033196604
1346 POINT 1339 1.984673688665513 35.16616222501731
1347 POINT 1340 2.995366465565271 35.12335296470669
1348 POINT 1341 4.028041331825868 35.10535544561446
1349 POINT 1342 5.05807832979828 35.08621479165007
1350 POINT 1343 6.093956728733247 35.07391022323044
1351 POINT 1344 7.149964603949941 35.12413537360996
1352 POINT 1345 8.16433638165371 35.14252466978046
1353 POINT 1346 9.208057389898194 35.23313393742545
1354 POINT 1347 10.17403944712447 35.15495471543825
1355 POINT 1348 11.26849645211291 35.21746853325359
1356 POINT 1349 12.14171999880287 34.87954795411678
1357 POINT 1350 13.0680787036588 35.14018886919808
1358 POINT 1351 -12.25874524554923 35.80263158479386
1359 POINT 1352 -10.64940816662681 35.9609434482652
1360 POINT 1353 -9.738993523076187 36.21117036120386
1361 POINT 1354 -8.645496887251596 36.05535363229623
1362 POINT 1355 -7.660082219217359 36.07236004253533
1363 POINT 1356 -6.59386247522779 35.96253496561209
1364 POINT 1357 -5.568601871711349 35.98133911135642
1365 POINT 1358 -4.542278169739824 36.00016620825533
1366 POINT 1359 -3.491371001354527 36.00500762088945
1367 POINT 1360 -2.474010083407105 36.06498819452312
1368 POINT 1361 -1.477289195045545 36.12504113606641
1369 POINT 1362 -0.4912059285544867 36.15975599214231
1370 POINT 1363 0.4912047027322386 36.15975590621064
1371 POINT 1364 1.477288036732875 36.12504100856928
1372 POINT 1365 2.474009154113311 36.06498836685221
1373 POINT 1366 3.491370484225889 36.005008798768
1374 POINT 1367 4.542278089478654 36.00016955223765
1375 POINT 1368 5.568600813180165 35.98134321823733
1376 POINT 1369 6.593859519726857 35.96253699972355
1377 POINT 1370 7.660078711252875 36.07236031674334
1378 POINT 1371 8.64549260236045 36.05535452011431
1379 POINT 1372 9.738986372954258 36.21117440008044
1380 POINT 1373 10.64940057210636 35.96094915519707
1381 POINT 1374 12.25873414120749 35.80264019887823
1382 POINT 1375 -11.51773025350177 36.35059294972418
1383 POINT 1376 -10.65697659081121 36.92420899016856
1384 POINT 1377 -9.073839610332337 36.90105300548846
1385 POINT 1378 -8.146483166419303 37.06536476868484
1386 POINT 1379 -7.049598100139526 36.85375720886346
1387 POINT 1380 -6.068285778904927 36.89990321056391
1388 POINT 1381 -5.072991493907814 36.90817616854977
1389 POINT 1382 -3.99387954502805 36.86886824762014
1390 POINT 1383 -2.967956221366422 36.948391661155
1391 POINT 1384 -1.969359381657599 37.03579454421214
1392 POINT 1385 -0.9811568690244843 37.09928427270614
1393 POINT 1386 -1.321646322029191e-06 37.12286421524274
1394 POINT 1387 0.9811542273605319 37.09928414206929
1395 POINT 1388 1.969356939200988 37.03579438002285
1396 POINT 1389 2.967954164856175 36.94839197135881
1397 POINT 1390 3.993878153189894 36.86886991249742
1398 POINT 1391 5.072990965328807 36.90818161389328
1399 POINT 1392 6.068283175739424 36.89990903124271
1400 POINT 1393 7.049593675630685 36.85375859784719
1401 POINT 1394 8.146477155142176 37.06536635726837
1402 POINT 1395 9.073831993817508 36.90105705402716
1403 POINT 1396 10.65696264541113 36.92421777141614
1404 POINT 1397 11.51771778734179 36.35060173116444
1405 POINT 1398 -9.874844025420192 37.39216649740979
1406 POINT 1399 -8.96740748095799 37.87695732138048
1407 POINT 1400 -7.438938982686154 37.68347468260948
1408 POINT 1401 -6.50593626267252 37.87694008295671
1409 POINT 1402 -5.61747021210558 37.87127533952164
1410 POINT 1403 -4.50493919684402 37.70762847888211
1411 POINT 1404 -3.474895680182776 37.81110994000395
1412 POINT 1405 -2.47779011320007 37.9305818016129
1413 POINT 1406 -1.486534122834006 38.0216095618874
1414 POINT 1407 -0.4945352453330601 38.07921156797903
1415 POINT 1408 0.4945300811634933 38.07921159550066
1416 POINT 1409 1.486529221010789 38.02160930967654
1417 POINT 1410 2.477785571750189 37.9305816710405
1418 POINT 1411 3.474891600531238 37.81111046960394
1419 POINT 1412 4.504935871545127 37.70763053498042
1420 POINT 1413 5.617467804911568 37.87128486851104
1421 POINT 1414 6.505933128734337 37.87694376153858
1422 POINT 1415 7.438934268999978 37.68347575716164
1423 POINT 1416 8.967392296606542 37.87696493811983
1424 POINT 1417 9.874829237160435 37.39217489381149
1425 POINT 1418 -8.147493943469181 38.26522221165496
1426 POINT 1419 -7.204335412055579 38.65737257146897
1427 POINT 1420 -6.323312496190199 38.97408019050001
1428 POINT 1421 -5.01203726983948 38.51297624845616
1429 POINT 1422 -4.001501092985738 38.651230540567
1430 POINT 1423 -3.020444675311309 38.806876475282
1431 POINT 1424 -2.033095442850132 38.92553139969691
1432 POINT 1425 -1.029249995848707 39.00470609623093
1433 POINT 1426 -4.74370389105111e-06 39.04491520100409
1434 POINT 1427 1.029241328499785 39.00470590960975
1435 POINT 1428 2.033087058128695 38.92553128934863
1436 POINT 1429 3.020436112344315 38.80687697855863
1437 POINT 1430 4.001492023142893 38.65123203877156
1438 POINT 1431 5.01202711215084 38.51297927624825
1439 POINT 1432 6.323297249481397 38.97408527161986
1440 POINT 1433 7.204321660158831 38.6573778816041
1441 POINT 1434 8.147479092148298 38.26522883631657
1442 POINT 1435 -5.49459488339432 39.2304297161394
1443 POINT 1436 -4.555054134591538 39.47438013983862
1444 POINT 1437 -3.625104797446435 39.66872174818514
1445 POINT 1438 -2.68641217378018 39.8187585290443
1446 POINT 1439 -1.753727660812683 39.92296262335634
1447 POINT 1440 -0.8514203504713909 39.98186887129251
1448 POINT 1441 0.8514156417348741 39.98186906132761
1449 POINT 1442 1.753718582443226 39.92296341244428
1450 POINT 1443 2.686399886263002 39.81876019460063
1451 POINT 1444 3.625089980059974 39.66872447914377
1452 POINT 1445 4.555037417817725 39.47438404988157
1453 POINT 1446 5.494577273669186 39.23043474765144
1454 POINT 1447 -10.17836236469941 9.351236080585844
1455 POINT 1448 -10.43178822028154 9.796311205363828
1456 POINT 1449 -9.917078319793836 9.803182550031517
1457 POINT 1450 -0.4257127323325477 0.4866079094147974
1458 POINT 1451 -2.371846788213477e-06 0.477542337394691
1459 POINT 1452 -0.4258068646365975 0.004533301166143754
1460 POINT 1453 -7.678410559861725 1.532677211575885
1461 POINT 1454 -7.321632913802258 1.829573658302515
1462 POINT 1455 -7.793213434540115 2.025649120773706
1463 POINT 1456 -0.4257125470876409 39.5133920361483
1464 POINT 1457 -2.371851945525555e-06 39.52245760050205
1465 POINT 1458 -0.4258066792652949 39.99546670279175
1466 POINT 1459 19.49788122060637 21.77367208818195
1467 POINT 1460 19.87859224467908 22.20035688754039
1468 POINT 1461 19.44771880960396 22.22685226353656
1469 POINT 1462 19.95652174895268 21.31804389755909
1470 POINT 1463 19.52620596169076 21.34480675106996
1471 POINT 1464 -18.50178077972164 27.59500547042333
1472 POINT 1465 -18.00418516392628 27.60561553936703
1473 POINT 1466 -18.19154542750159 27.14919736516595
1474 POINT 1467 2.318125029883721 20.44808511760801
1475 POINT 1468 2.823024436302765 20.4446500619237
1476 POINT 1469 2.535961498642024 20.89273520263026
1477 POINT 1470 -18.1915204806717 12.85075360776577
1478 POINT 1471 -18.00416183249957 12.39434254388758
1479 POINT 1472 -18.50176221811813 12.40494933886966
1480 POINT 1473 -10.43863716835151 8.90091854855763
1481 POINT 1474 -9.923927267863803 8.907789893225319
1482 POINT 1475 -10.95968604283294 7.131741057062447
1483 POINT 1476 -11.49280931695378 7.122937192173756
1484 POINT 1477 -11.23899374083607 7.556481059276784
1485 POINT 1478 -10.96516006976062 8.002771637036583
1486 POINT 1479 -11.49828334388146 7.993967772147892
1487 POINT 1480 -10.70432587216095 8.448865355552398
1488 POINT 1481 -10.95876096899656 8.892311542912923
1489 POINT 1482 -10.44503626911557 8.01137864268129
1490 POINT 1483 14.20285675279642 6.771375017633135
1491 POINT 1484 14.50369851507584 7.101292773533388
1492 POINT 1485 14.77834984324904 6.524081630761735
1493 POINT 1486 12.23551226998423 9.30208580312808
1494 POINT 1487 11.99907300324982 8.856939970398869
1495 POINT 1488 12.50944368805203 8.841146276347569
1496 POINT 1489 11.97221231742172 9.765815913514722
1497 POINT 1490 12.48258300222394 9.750022219463421
1498 POINT 1491 -0.4905789853227912 2.888925581404812
1499 POINT 1492 -0.7361812304740789 3.37047972852181
1500 POINT 1493 -0.2456035667837216 3.358689771784562
1501 POINT 1494 -4.783548996192389 1.006323236939901
1502 POINT 1495 -5.026302453506227 0.6418935979999102
1503 POINT 1496 -5.253316898193344 1.128297748069279
1504 POINT 1497 -4.278279517467413 0.9371948906828067
1505 POINT 1498 -4.50677415895651 1.41789821597725
1506 POINT 1499 -3.813305411122727 0.8400241846748683
1507 POINT 1500 -4.09123434595309 0.4229266387245523
1508 POINT 1501 1.893402820285961 39.42424735089645
1509 POINT 1502 2.359743472195849 39.37214574197463
1510 POINT 1503 2.220670538841968 39.87633322383852
1511 POINT 1504 0.2472626687298011 38.56206339825238
1512 POINT 1505 -2.582084783431249e-06 38.07921158173984
1513 POINT 1506 -0.2472699945184756 38.56206338449157
1514 POINT 1507 10.65318160875874 36.4425834633066
1515 POINT 1508 11.08355917972408 36.15577544318076
1516 POINT 1509 11.09104919162302 36.64297534268243
1517 POINT 1510 4.506759567646867 38.5821056575099
1518 POINT 1511 4.758481491847984 38.11030490561433
1519 POINT 1512 4.25321394734401 38.179431286876
1520 POINT 1513 4.783532264984283 38.9936816630649
1521 POINT 1514 5.253302192910013 38.87170701194984
1522 POINT 1515 5.026287577931008 39.35811027344018
1523 POINT 1516 4.278264720480308 39.06280804432657
1524 POINT 1517 2.271388089598089 31.06354615904246
1525 POINT 1518 1.765500457793982 31.06477028013021
1526 POINT 1519 2.019775060864925 30.61385016680937
1527 POINT 1520 2.52391207978878 31.51196247936205
1528 POINT 1521 2.778186682859723 31.06104236604121
1529 POINT 1522 19.58406521140076 19.55566934611801
1530 POINT 1523 19.59394271675515 20.00002569416793
1531 POINT 1524 19.99506063684425 19.5555338953416
1532 POINT 1525 19.58406161774156 20.44446277646284
1533 POINT 1526 19.99505884072375 20.44454692352635
1534 POINT 1527 17.47612722659238 20.45170520807109
1535 POINT 1528 17.94956809694392 20.45199983601073
1536 POINT 1529 17.76408318096152 19.99954840147309
1537 POINT 1530 17.09376279229357 20.90344554562439
1538 POINT 1531 16.90827787631117 20.45099411108675
1539 POINT 1532 17.65639440029453 29.39423957186695
1540 POINT 1533 17.13332166556852 29.38219151942949
1541 POINT 1534 17.36874302811696 28.9397190446526
1542 POINT 1535 13.61482989783698 32.16078664038712
1543 POINT 1536 14.07640103797599 32.09309983360238
1544 POINT 1537 13.75932779044087 31.59910844945928
1545 POINT 1538 16.10341413477412 30.21256867861998
1546 POINT 1539 16.63239269868544 30.24523358242805
1547 POINT 1540 16.3698240483532 30.66455297149614
1548 POINT 1541 16.89070536402862 29.81350550472902
1549 POINT 1542 16.60859908664627 29.36193530425236
1550 POINT 1543 17.1625462541375 30.26873928275396
1551 POINT 1544 16.0904668374591 31.08225823633646
1552 POINT 1545 16.6246937806281 31.11843321269683
1553 POINT 1546 15.81288509623059 31.48985754125695
1554 POINT 1547 16.04545280411266 31.9391559472781
1555 POINT 1548 15.51319388940625 31.89262312523499
1556 POINT 1549 15.56326374321337 31.03948737260855
1557 POINT 1550 13.77222000363087 24.39434126697991
1558 POINT 1551 13.50730940690564 24.83959165127776
1559 POINT 1552 14.02976238006146 24.83530625723629
1560 POINT 1553 12.98553330932471 9.758991772893435
1561 POINT 1554 12.72223335676221 10.22272188328008
1562 POINT 1555 16.25410351335674 12.9148587217591
1563 POINT 1556 16.01906260946011 13.38331048867258
1564 POINT 1557 16.5117595380726 13.37602992964366
1565 POINT 1558 16.89069502922413 10.18647787299363
1566 POINT 1559 16.60858850912514 10.63804911311348
1567 POINT 1560 17.13330989107297 10.61778909765387
1568 POINT 1561 16.09214844821832 10.65648742134303
1569 POINT 1562 16.33476331006715 11.08779864600327
1570 POINT 1563 -17.80117652624369 28.04993852124202
1571 POINT 1564 -17.49657169072127 27.60644176445565
1572 POINT 1565 -19.58406168080147 20.44446288474986
1573 POINT 1566 -19.59394278438359 20.00002569746599
1574 POINT 1567 -19.99505883837563 20.44454702859078
1575 POINT 1568 -18.996847002171 20.45276507073249
1576 POINT 1569 -19.3930231142053 20.89717656055036
1577 POINT 1570 -19.58406527491918 19.55566925469715
1578 POINT 1571 -19.99506063472496 19.55553380055498
1579 POINT 1572 -18.99703876946375 19.54715259717118
1580 POINT 1573 -19.39321847561576 19.10277045693634
1581 POINT 1574 -1.233845495929245 37.56044691729677
1582 POINT 1575 -0.9905346840835332 38.05041056493322
1583 POINT 1576 -0.7378460571787722 37.58924792034259
1584 POINT 1577 -1.759814782842069 38.47357048079215
1585 POINT 1578 -1.982162118017038 37.97609568175015
1586 POINT 1579 -2.255442778025101 38.42805660065491
1587 POINT 1580 -1.503048773376636 33.33593215100788
1588 POINT 1581 -1.756818384601298 32.87589913286249
1589 POINT 1582 -1.254058713762703 32.88356835326066
1590 POINT 1583 13.51221711522611 31.16406500489199
1591 POINT 1584 13.97378825536513 31.09637819810725
1592 POINT 1585 1.775181014606737 21.33393361663671
1593 POINT 1586 1.267840964225153 21.33711381427801
1594 POINT 1587 1.523722041841396 20.89935045595586
1595 POINT 1588 1.265170094048079 22.20914709544139
1596 POINT 1589 1.77056085321017 22.20855342148825
1597 POINT 1590 1.516431010267755 22.64600354197079
1598 POINT 1591 1.012728381227997 21.77259296305717
1599 POINT 1592 0.7612694084626562 21.33800980237632
1600 POINT 1593 0.758598538285582 22.21004308353971
1601 POINT 1594 1.847863631555612 20.4480851260611
1602 POINT 1595 1.340523581174028 20.45126532370239
1603 POINT 1596 2.134926569216352 19.99999998535455
1604 POINT 1597 2.280691513968954 21.33225925723105
1605 POINT 1598 2.785590920387998 21.32882420154674
1606 POINT 1599 2.02481043635271 21.7700226155532
1607 POINT 1600 2.78116495724771 22.20597296072012
1608 POINT 1601 2.276071352572386 22.20687906208259
1609 POINT 1602 2.52691537410517 22.64450376665516
1610 POINT 1603 -9.899143737765993 12.4849004435783
1611 POINT 1604 -9.387390829537839 12.48845944608934
1612 POINT 1605 -9.645780226280916 12.0410160502686
1613 POINT 1606 -11.94630637827111 14.2647893097616
1614 POINT 1607 -12.46345218922917 14.26650973789091
1615 POINT 1608 -12.20840695700918 14.7105827019253
1616 POINT 1609 -13.22907293656634 11.13290745457848
1617 POINT 1610 -13.48445463159971 11.58282180341283
1618 POINT 1611 -12.9714364037251 11.58072072087271
1619 POINT 1612 -12.45912889682464 11.58045014485459
1620 POINT 1613 -11.9508016855418 11.57834567717223
1621 POINT 1614 -12.20772749740889 11.128701904356
1622 POINT 1615 -12.71451059185801 12.03036449368894
1623 POINT 1616 -13.62553305310023 6.037019882652965
1624 POINT 1617 -14.1390779208095 5.854807348663457
1625 POINT 1618 -13.96434315411798 6.375683521723212
1626 POINT 1619 -13.39847526011537 7.408160088352634
1627 POINT 1620 -13.61481920361369 7.839222070915377
1628 POINT 1621 -13.0814052589453 7.902150069513514
1629 POINT 1622 -13.69337197744059 6.949534963734737
1630 POINT 1623 -13.1599580327722 7.012462962332874
1631 POINT 1624 -14.5037016745593 7.101298192194127
1632 POINT 1625 -14.20286038146115 6.771380647742971
1633 POINT 1626 -14.7783559058492 6.524088291719242
1634 POINT 1627 -13.23627871209868 9.312480837244131
1635 POINT 1628 -13.51221183367959 8.835940044420862
1636 POINT 1629 -13.02181608086271 8.809752844899524
1637 POINT 1630 -16.36981698070831 9.335436989756825
1638 POINT 1631 -16.09046066583428 8.917733609398496
1639 POINT 1632 -16.62468707069794 8.881556790786455
1640 POINT 1633 -15.56325712327145 8.960504702078703
1641 POINT 1634 -15.81287888901091 8.510134528156787
1642 POINT 1635 -15.51318860052802 8.107370522015474
1643 POINT 1636 -16.04544791423854 8.060837516432803
1644 POINT 1637 -12.46766878840969 10.67227976168969
1645 POINT 1638 -11.95934157712685 10.67017529400733
1646 POINT 1639 -10.71091751983426 6.663122417067669
1647 POINT 1640 -10.45710194371655 7.096666284170696
1648 POINT 1641 -10.46487666458869 6.166894149966415
1649 POINT 1642 -10.96746076370507 6.201968922858168
1650 POINT 1643 -10.44773102895123 5.275394031275448
1651 POINT 1644 -10.20212605088105 5.720747497892338
1652 POINT 1645 -9.928437171372778 5.290400873410871
1653 POINT 1646 -9.945582807010235 6.18190099210184
1654 POINT 1647 -13.2986928764065 5.688395693536721
1655 POINT 1648 -13.12801457340368 6.205213648598734
1656 POINT 1649 -11.74872710378692 8.418130127367466
1657 POINT 1650 -12.02256077486237 7.971839549607667
1658 POINT 1651 -12.50944374702482 8.841147771275015
1659 POINT 1652 -12.78537686860573 8.36460697845175
1660 POINT 1653 -12.56903292510741 7.933544995889006
1661 POINT 1654 -12.31858916520195 7.509382640669432
1662 POINT 1655 13.43619694655841 5.185526953886848
1663 POINT 1656 12.93462220614015 5.358195834077412
1664 POINT 1657 13.29868673147849 5.68838933264013
1665 POINT 1658 12.6048962546636 4.990129099323558
1666 POINT 1659 12.47144390129601 5.488517379573725
1667 POINT 1660 12.66773340441992 4.523290710179079
1668 POINT 1661 12.20022404450319 4.658903670708396
1669 POINT 1662 10.71091693015139 6.663120759878266
1670 POINT 1663 10.46487540167239 6.166892274467385
1671 POINT 1664 10.96745927067751 6.201966434828546
1672 POINT 1665 11.47479568277288 8.879068504656995
1673 POINT 1666 11.74872710084068 8.418128977876485
1674 POINT 1667 10.41171824790274 4.44204662093386
1675 POINT 1668 9.95651127773848 4.316934168875102
1676 POINT 1669 10.19419137109885 3.91393666291501
1677 POINT 1670 10.72126631852727 4.813787013527604
1678 POINT 1671 10.99495611235534 5.244133924789459
1679 POINT 1672 10.44772794837044 5.275391038155809
1680 POINT 1673 10.95894641188764 4.410789507567511
1681 POINT 1674 11.39310410040094 4.215962651334707
1682 POINT 1675 11.08355602977641 3.844222258740964
1683 POINT 1676 11.76361231084955 4.489943298379086
1684 POINT 1677 11.89137865119184 3.919107181901866
1685 POINT 1678 11.70510621616581 4.951490272490563
1686 POINT 1679 10.26855741345323 2.837344939506088
1687 POINT 1680 10.19797132927438 3.43230183825083
1688 POINT 1681 9.806904421137391 3.198323297051241
1689 POINT 1682 10.65317829943864 3.557414290309588
1690 POINT 1683 11.09104496327604 3.357021849792107
1691 POINT 1684 15.24378585350844 7.682394375166194
1692 POINT 1685 14.91119126151212 7.280158226193516
1693 POINT 1686 15.41335252508149 7.2552534786716
1694 POINT 1687 14.33938124011792 7.524093148708583
1695 POINT 1688 14.48388392770153 8.085767740880334
1696 POINT 1689 14.07639118126524 7.906902288220206
1697 POINT 1690 13.61481867571485 7.839218526827278
1698 POINT 1691 13.75932136329846 8.400893118999029
1699 POINT 1692 13.02181590626726 8.80975073334144
1700 POINT 1693 12.78537663953285 8.364604900612228
1701 POINT 1694 13.47592883520427 9.785178774102992
1702 POINT 1695 13.99000741695932 9.792862338836377
1703 POINT 1696 13.73926224561804 10.23937500144348
1704 POINT 1697 13.236278480666 9.312479110286336
1705 POINT 1698 13.51221143214682 8.835937734550996
1706 POINT 1699 13.97378393769721 8.903621495943923
1707 POINT 1700 11.4612780216533 9.774811388208361
1708 POINT 1701 11.70834875389301 10.2227478045437
1709 POINT 1702 1.893403551233607 0.5757525887353929
1710 POINT 1703 2.220671493500129 0.1236668831597823
1711 POINT 1704 2.359744414402249 0.6278542389056427
1712 POINT 1705 -9.020619693030262 2.610992623251209
1713 POINT 1706 -9.424238324783893 2.359599448271815
1714 POINT 1707 -9.474338358545761 2.853388073889197
1715 POINT 1708 -9.406414519116504 3.443886808846754
1716 POINT 1709 -9.192243991855898 3.8667371366121
1717 POINT 1710 -8.859666959835261 3.521795695676809
1718 POINT 1711 -9.806915390566399 3.198329514824488
1719 POINT 1712 -10.19798187725191 3.432308248445783
1720 POINT 1713 -10.26857176218753 2.83735353592188
1721 POINT 1714 -0.2472699682428073 1.437936441491353
1722 POINT 1715 -2.582068645534674e-06 1.920788194433522
1723 POINT 1716 0.2472626424805853 1.437936427731552
1724 POINT 1717 -0.247268257212236 2.398961916430443
1725 POINT 1718 0.2472643535111566 2.398961902670643
1726 POINT 1719 -0.7378459209025934 2.410751873167692
1727 POINT 1720 -3.510975514120101 1.270946662206892
1728 POINT 1721 -3.322776245011294 0.762200977161605
1729 POINT 1722 -2.853429843183762 0.6871825417534015
1730 POINT 1723 -3.156651266211425 0.2506822223484442
1731 POINT 1724 -2.526771255348011 1.133795929446323
1732 POINT 1725 -2.359754750523105 0.6278550165060958
1733 POINT 1726 -2.749118087874698 1.631270599590879
1734 POINT 1727 -2.255442995214041 1.571943074343573
1735 POINT 1728 1.53116419331424 38.96511859947919
1736 POINT 1729 1.391479955471506 39.46383466102701
1737 POINT 1730 0.7618857048316392 38.5419587525552
1738 POINT 1731 0.5146182923979471 39.02481055530693
1739 POINT 1732 1.257885274755287 38.51315760964314
1740 POINT 1733 1.759808139569742 38.47357029951259
1741 POINT 1734 0.9905296510871409 38.0504104525886
1742 POINT 1735 -0.4905790953354032 37.11107424397444
1743 POINT 1736 -0.2472682834896911 37.60103789161089
1744 POINT 1737 0.2472643797585856 37.6010379053717
1745 POINT 1738 1.263131334613411 23.08451873542055
1746 POINT 1739 1.768522093775502 23.0839250614674
1747 POINT 1740 10.17836399587573 30.64876633574936
1748 POINT 1741 10.43178957770394 30.2036916661421
1749 POINT 1742 9.917079336223154 30.19681981804171
1750 POINT 1743 2.526761585236505 38.86620413395363
1751 POINT 1744 2.853417999303659 39.31281858657962
1752 POINT 1745 4.533434559259351 36.88852576319535
1753 POINT 1746 4.788963418436968 37.30790607443685
1754 POINT 1747 4.24940701236751 37.28825022373893
1755 POINT 1748 -0.7511020128127708 32.88704851349204
1756 POINT 1749 -1.004871624037433 32.42701549534664
1757 POINT 1750 0.7570181843694639 30.16737890662038
1758 POINT 1751 0.2521487164707948 30.16753615186619
1759 POINT 1752 0.5048695270937089 29.71821296405268
1760 POINT 1753 1.009092401403684 30.61588819116551
1761 POINT 1754 1.261813212026598 30.16656500335199
1762 POINT 1755 5.068073916803044 30.6133100080666
1763 POINT 1756 4.814374367436898 31.05972795409684
1764 POINT 1757 5.32423717645129 31.06128530414202
1765 POINT 1758 16.9971372534731 13.37045922378724
1766 POINT 1759 16.76209634957647 13.83891099070072
1767 POINT 1760 18.58096903763212 13.77579904583797
1768 POINT 1761 18.85904395297749 13.34143701271937
1769 POINT 1762 18.41152250629444 13.29587573790125
1770 POINT 1763 18.68665357284071 14.64903426839365
1771 POINT 1764 18.29676492885642 15.05256270617449
1772 POINT 1765 18.88575798278899 15.06972612425592
1773 POINT 1766 17.78489646840998 15.09030766023127
1774 POINT 1767 17.98400087835825 15.51099951609354
1775 POINT 1768 18.5600217445983 14.22769376801203
1776 POINT 1769 18.11860781194196 14.17997612813817
1777 POINT 1770 19.15364966814478 14.24346421008305
1778 POINT 1771 17.67256729194256 14.23260556757826
1779 POINT 1772 17.69351458497638 13.7807108454042
1780 POINT 1773 18.99703873975269 19.54715250100616
1781 POINT 1774 19.39321851764313 19.1027704587883
1782 POINT 1775 18.52185804865407 19.54704832154459
1783 POINT 1776 18.71270474241169 19.9999472088743
1784 POINT 1777 17.69535052595289 15.99996226585984
1785 POINT 1778 18.20721898639934 15.96221731180307
1786 POINT 1779 14.56172135096343 23.94597916401752
1787 POINT 1780 15.08739392619418 23.94259090424376
1788 POINT 1781 14.82034555201745 24.38666761316468
1789 POINT 1782 19.39302316315837 20.89717655197163
1790 POINT 1783 18.9389913228763 21.35310913845178
1791 POINT 1784 18.99684697892711 20.45276516384465
1792 POINT 1785 18.5216662878285 20.45266098438309
1793 POINT 1786 18.23371033345935 20.90481779098108
1794 POINT 1787 18.44846900788159 21.34055417663924
1795 POINT 1788 18.58165180641398 21.78818437573758
1796 POINT 1789 17.87637081699702 21.33989302826688
1797 POINT 1790 14.33939351436823 32.47590433579525
1798 POINT 1791 14.48389140697212 31.91422614486741
1799 POINT 1792 15.01628294267461 31.87205866229466
1800 POINT 1793 14.75329046628237 31.48925416010179
1801 POINT 1794 15.24379483009601 32.31759511000062
1802 POINT 1795 13.51391520548446 23.95486250753157
1803 POINT 1796 13.2557163229842 23.51457606093689
1804 POINT 1797 12.99156814797479 23.95834021442671
1805 POINT 1798 14.03636817864028 23.9505771134901
1806 POINT 1799 14.30341655281701 23.50650040456918
1807 POINT 1800 14.0490662851837 23.06997473842002
1808 POINT 1801 14.57441945750685 23.06537678894744
1809 POINT 1802 14.06279368008757 21.3236640608961
1810 POINT 1803 13.53137856169023 21.32075100476631
1811 POINT 1804 13.79945769458797 20.88653785779963
1812 POINT 1805 16.48589251600749 21.75662015498322
1813 POINT 1806 16.7770188066016 21.32987302051025
1814 POINT 1807 16.23478715141826 21.32948158311302
1815 POINT 1808 17.3448681568828 21.33058411749459
1816 POINT 1809 17.55962683130505 21.76632050315274
1817 POINT 1810 16.93904168525997 24.42265130776862
1818 POINT 1811 17.21421228526815 24.86330083072308
1819 POINT 1812 16.6810332475078 24.83472173963332
1820 POINT 1813 17.1982158646259 23.98500607585395
1821 POINT 1814 16.66503682686555 23.95642698476418
1822 POINT 1815 19.16297996782281 24.02058583340057
1823 POINT 1816 19.25792778397388 23.55188868076646
1824 POINT 1817 19.6018346474257 23.97090400112769
1825 POINT 1818 18.66035549167398 24.06458002427793
1826 POINT 1819 18.99865807228879 24.48246002560036
1827 POINT 1820 14.55271823159151 24.83011771959528
1828 POINT 1821 15.07839080682226 24.82672945982152
1829 POINT 1822 14.28780763486628 25.27536810389313
1830 POINT 1823 13.48363738345204 10.68334955994101
1831 POINT 1824 13.99771596520709 10.69103312467439
1832 POINT 1825 17.49654751855807 12.39351922586987
1833 POINT 1826 17.22317514403901 12.87270591921469
1834 POINT 1827 17.0201728164883 12.42839146938536
1835 POINT 1828 17.91955247554229 13.28295754083165
1836 POINT 1829 18.19151987686094 12.8507518727688
1837 POINT 1830 17.47351195554288 13.33558698027175
1838 POINT 1831 18.00416107324389 12.39434056037404
1839 POINT 1832 18.50176146164216 12.40494748537886
1840 POINT 1833 17.80115874569317 11.95002611054472
1841 POINT 1834 16.79404890136688 11.97251973589774
1842 POINT 1835 16.52067652684781 12.45170642924257
1843 POINT 1836 16.02797959823532 12.45898698827148
1844 POINT 1837 15.78700936626793 12.00541048997754
1845 POINT 1838 15.52043635277687 12.46856278249407
1846 POINT 1839 16.05643793044336 11.55103582499389
1847 POINT 1840 15.5488946849849 11.56061161921647
1848 POINT 1841 16.57287799135018 11.53259751676433
1849 POINT 1842 17.07237428099067 11.50928255690713
1850 POINT 1843 15.83583901726724 10.22173398984722
1851 POINT 1844 15.57327102716685 9.802415814168842
1852 POINT 1845 16.10340565717593 9.787419712774863
1853 POINT 1846 15.56201381820924 10.67148352273701
1854 POINT 1847 16.63238319420686 9.754752209684828
1855 POINT 1848 17.16253549533622 9.731242758971581
1856 POINT 1849 16.36981520410647 9.335434034006447
1857 POINT 1850 16.62468438429443 8.881552759389605
1858 POINT 1851 16.09045850341202 8.917730295952133
1859 POINT 1852 -18.71270480363148 19.99994720870178
1860 POINT 1853 -18.52166623703531 20.45266088450229
1861 POINT 1854 -18.52185800432806 19.54704841094098
1862 POINT 1855 -19.52620606861738 21.34480663718991
1863 POINT 1856 -19.49788131345209 21.77367208204773
1864 POINT 1857 -19.95652172785348 21.31804421550326
1865 POINT 1858 -18.93899138998692 21.35310882317254
1866 POINT 1859 -15.41336472355292 32.74473177212385
1867 POINT 1860 -14.91120300548017 32.71982820066302
1868 POINT 1861 -15.24379759687971 32.31759127892943
1869 POINT 1862 -15.51319663933861 31.8926193258387
1870 POINT 1863 -15.01628432575631 31.8720563054135
1871 POINT 1864 -15.8128873248544 31.48985418888792
1872 POINT 1865 -16.04545639284706 31.93915110915433
1873 POINT 1866 -13.73926553271729 29.7606245440472
1874 POINT 1867 -13.9977196654956 29.30896632719983
1875 POINT 1868 -13.48364033262393 29.31665160461403
1876 POINT 1869 -16.63239437432929 30.24523068926878
1877 POINT 1870 -16.89070674738754 29.81350290745965
1878 POINT 1871 -17.16254826435143 30.26873590905672
1879 POINT 1872 -17.58991750209542 28.49978947605134
1880 POINT 1873 -18.10312108953776 28.50158849460802
1881 POINT 1874 -14.02976207391727 24.83530603116176
1882 POINT 1875 -13.50730912711314 24.83959146419358
1883 POINT 1876 -13.7722197102861 24.39434106981482
1884 POINT 1877 -9.910917163711101 29.30166999886159
1885 POINT 1878 -10.16379441977193 28.85693149401143
1886 POINT 1879 -10.42338196742408 29.30700642143803
1887 POINT 1880 -8.865707288319939 20.4402358718522
1888 POINT 1881 -8.354951980244287 20.44018950619541
1889 POINT 1882 -8.61056647960487 20.88042659780381
1890 POINT 1883 -8.86570719768363 19.55976134425465
1891 POINT 1884 -8.354952278862285 19.55980826280008
1892 POINT 1885 -8.610566687586559 19.11957082681093
1893 POINT 1886 -9.121386103645744 19.99999862799004
1894 POINT 1887 -9.377000603006326 20.44023571959844
1895 POINT 1888 -9.377000512370016 19.55976119200088
1896 POINT 1889 -8.865603022394847 21.32049699917977
1897 POINT 1890 -8.354847714319193 21.32045063352298
1898 POINT 1891 -8.099972462421654 21.76042830181979
1899 POINT 1892 -7.844935919631678 21.32035790044383
1900 POINT 1893 -8.354715320124482 22.20063713853177
1901 POINT 1894 -7.844803525436967 22.20054440545263
1902 POINT 1895 -8.865674199362843 22.20088990639256
1903 POINT 1896 -8.610505262378155 22.6410060100254
1904 POINT 1897 -8.354985291815844 16.91842867771209
1905 POINT 1898 -8.610508524984098 17.358992612215
1906 POINT 1899 -8.865944756334432 16.91817546724494
1907 POINT 1900 -5.563175305433118 20.88175519528509
1908 POINT 1901 -5.819523783751198 20.44055366808308
1909 POINT 1902 -5.314081970855431 20.4412012668848
1910 POINT 1903 -6.323600721688926 20.44055355863392
1911 POINT 1904 -6.07450738711124 19.99999963023362
1912 POINT 1905 -7.845909792127558 19.5598084686856
1913 POINT 1906 -7.337224145127458 19.55973210578316
1914 POINT 1907 -7.591126121765114 19.11954138245392
1915 POINT 1908 -7.085296070269434 19.99999935639965
1916 POINT 1909 -6.83051239990699 19.55973227016798
1917 POINT 1910 -8.101050302224628 19.99999898612932
1918 POINT 1911 -7.84590949350956 20.44018971208093
1919 POINT 1912 -4.813437732774505 20.44120133195445
1920 POINT 1913 -5.069786211092584 19.99999980475244
1921 POINT 1914 -4.81343786679399 19.55879836960208
1922 POINT 1915 -5.314082104874918 19.55879830453243
1923 POINT 1916 -4.309046734147286 19.55755213850044
1924 POINT 1917 -4.553342627929618 19.11635063828043
1925 POINT 1918 -4.309046659354325 20.44244765252682
1926 POINT 1919 -4.553342419117173 20.88364911465918
1927 POINT 1920 -6.321208714327986 18.67923371725688
1928 POINT 1921 -5.814542592123692 18.67893193845749
1929 POINT 1922 -6.067133751274726 18.23927391170671
1930 POINT 1923 -5.563175657876638 19.11824430669487
1931 POINT 1924 -5.309100694823378 18.67828450114469
1932 POINT 1925 -6.575529014970982 19.11917838177958
1933 POINT 1926 -6.828120174122017 18.6795203550288
1934 POINT 1927 -5.819524002175232 19.55944574184523
1935 POINT 1928 -6.323600940112959 19.55944563239606
1936 POINT 1929 -0.5146273697762991 39.02481064861751
1937 POINT 1930 -0.7618926205908836 38.54195883210498
1938 POINT 1931 -1.257892059341357 38.51315782905916
1939 POINT 1932 -1.53117271934942 38.96511874796391
1940 POINT 1933 -0.940335173160049 39.49328748376172
1941 POINT 1934 -1.391488828330695 39.46383435979364
1942 POINT 1935 -1.302906939267033 39.95751571405174
1943 POINT 1936 -1.893411551831407 39.42424701152662
1944 POINT 1937 -1.723324288351572 36.58041784013928
1945 POINT 1938 -1.475258125341042 37.06753940845914
1946 POINT 1939 -1.229223032035015 36.61216270438628
1947 POINT 1940 -2.223574747428835 37.48318817291252
1948 POINT 1941 -2.46865780151201 36.99209310268357
1949 POINT 1942 -2.722873167283246 37.43948673138395
1950 POINT 1943 -1.727946752245803 37.52870205304977
1951 POINT 1944 9.124384730034761 25.2901944687983
1952 POINT 1945 9.380903693723068 25.73399854252466
1953 POINT 1946 8.869536394962354 25.73292170940668
1954 POINT 1947 8.867787034579436 24.84742875339725
1955 POINT 1948 8.611808211452907 24.40495794646223
1956 POINT 1949 8.357038608147516 24.84664682874531
1957 POINT 1950 9.37915433334015 24.84850558651523
1958 POINT 1951 9.635034859880143 24.40616641167393
1959 POINT 1952 9.891632555335468 24.84893212707499
1960 POINT 1953 8.10306863199613 25.28792614032669
1961 POINT 1954 7.847089808869599 24.84545533339167
1962 POINT 1955 7.337860839610064 24.84465823087261
1963 POINT 1956 7.591830815761451 24.40337891929124
1964 POINT 1957 7.084483663987436 25.28568916804524
1965 POINT 1958 6.829224670879288 24.84361275394481
1966 POINT 1959 11.17838537690847 23.52246049961141
1967 POINT 1960 11.4371216212408 23.08138069299567
1968 POINT 1961 10.9206635519637 23.08206164870911
1969 POINT 1962 15.02252590981234 31.03532490076284
1970 POINT 1963 14.49013437410986 31.07749238333559
1971 POINT 1964 14.2430236988951 30.6424489387683
1972 POINT 1965 15.30010765104086 30.62772559584235
1973 POINT 1966 2.526915485973436 17.35549624102799
1974 POINT 1967 2.276071431689728 17.79312093621829
1975 POINT 1968 2.781165078003321 17.79402703104667
1976 POINT 1969 6.346618006894577 8.933221976655281
1977 POINT 1970 6.606300654387716 8.482722162553308
1978 POINT 1971 6.859007165943082 8.928198624363933
1979 POINT 1972 5.835923918840571 8.936439330716784
1980 POINT 1973 6.088630430395938 9.381915792527408
1981 POINT 1974 3.813293467525553 0.8400220701018267
1982 POINT 1975 4.278266624098441 0.9371921865469454
1983 POINT 1976 4.091218596162663 0.4229233416757498
1984 POINT 1977 0.7378420180172898 2.410751924726134
1985 POINT 1978 1.233841522613396 2.439553016285871
1986 POINT 1979 0.9905295332508535 1.949589272233458
1987 POINT 1980 0.4905763428736994 2.888925646723056
1988 POINT 1981 8.615527392862056 13.82496521644805
1989 POINT 1982 8.869539085606789 14.26707992304672
1990 POINT 1983 8.359008517018593 14.26876890588306
1991 POINT 1984 7.109843205144307 9.375226262222675
1992 POINT 1985 7.369525852637445 8.924726448120705
1993 POINT 1986 3.536686478737197 13.8361386042247
1994 POINT 1987 3.790057778698816 13.39355052709382
1995 POINT 1988 3.284192797098449 13.39405264356153
1996 POINT 1989 3.789177750276934 14.27725402423099
1997 POINT 1990 3.283312768676568 14.27775614069871
1998 POINT 1991 3.540719142764858 10.28304212363626
1999 POINT 1992 3.793978675026311 10.72885668139838
2000 POINT 1993 3.286497665917229 10.72924169735144
2001 POINT 1994 6.845584714338232 10.71830373756566
2002 POINT 1995 7.355184401511213 10.7157436111351
2003 POINT 1996 7.09778359222352 11.16341894215851
2004 POINT 1997 7.361673707732298 9.821191246260845
2005 POINT 1998 6.851155021037934 9.824663422504075
2006 POINT 1999 4.296500541441507 13.39272956312007
2007 POINT 2000 4.044006859802759 12.95064360245691
2008 POINT 2001 4.802971515540548 13.39198494333306
2009 POINT 2002 4.549022434436605 13.83489186796998
2010 POINT 2003 4.297887859095104 12.50674192674635
2011 POINT 2004 3.791445096352413 12.5075628907201
2012 POINT 2005 4.805074931872197 12.50557276622567
2013 POINT 2006 4.552513168421852 12.06249205448886
2014 POINT 2007 4.301274159001078 10.72795370371833
2015 POINT 2008 4.809681854713771 10.7267995158349
2016 POINT 2009 4.556607847586633 10.28150291979977
2017 POINT 2010 4.047052682153449 11.17415327743351
2018 POINT 2011 4.299837130886486 11.6184557573815
2019 POINT 2012 3.79254164691172 11.61935873506155
2020 POINT 2013 4.80702420366358 11.61728659686082
2021 POINT 2014 0.7573648401832791 10.72884628711409
2022 POINT 2015 0.2524954018262905 10.72868903454322
2023 POINT 2016 0.5048694975539831 10.28178714397273
2024 POINT 2017 2.779998485031843 10.72963471324423
2025 POINT 2018 3.033258017293297 11.17544927100636
2026 POINT 2019 1.22366534318951 19.99999999772072
2027 POINT 2020 0.8995237534752946 20.45126532761548
2028 POINT 2021 1.847863650156727 19.55191485745089
2029 POINT 2022 2.318125048484836 19.5519148489978
2030 POINT 2023 -18.93911412821423 18.64650966130721
2031 POINT 2024 -18.58166026436047 18.21127422426079
2032 POINT 2025 -18.44873810630657 18.65901836236396
2033 POINT 2026 -19.52614063366966 18.65502631883318
2034 POINT 2027 -18.87780139947743 17.75460066637132
2035 POINT 2028 -18.38742537756978 17.76710936742808
2036 POINT 2029 -19.25342558557374 17.32881436986417
2037 POINT 2030 -19.44766047236443 17.77297922669689
2038 POINT 2031 -11.69163369768068 12.03021037174421
2039 POINT 2032 -11.44023229826493 11.57846213124561
2040 POINT 2033 -11.43422134923478 12.47855566601287
2041 POINT 2034 -11.94479073651165 12.47843921193948
2042 POINT 2035 -10.92866196056182 11.58403125210506
2043 POINT 2036 -10.41689637261445 11.58759636307505
2044 POINT 2037 -10.66929872245644 12.03389193678758
2045 POINT 2038 -11.18782994842294 11.13216655753308
2046 POINT 2039 -9.904431558833004 11.59293222934731
2047 POINT 2040 -9.39267865060485 11.59649123185834
2048 POINT 2041 -9.139626886740061 11.15213642340234
2049 POINT 2042 -8.880975554187973 11.60022024432364
2050 POINT 2043 -10.16379479693838 11.14307154466478
2051 POINT 2044 -9.910917079266454 10.69833254287327
2052 POINT 2045 -10.4233818930479 10.69299667660101
2053 POINT 2046 -8.370126273665381 11.60298203772225
2054 POINT 2047 -8.62317803753017 12.04733684617825
2055 POINT 2048 -6.319914164590672 17.79970756621019
2056 POINT 2049 -5.813248042386378 17.79940578741079
2057 POINT 2050 -5.812970532530068 16.03929555219032
2058 POINT 2051 -6.066345556101558 16.47969823346978
2059 POINT 2052 -6.320151886932637 16.03908136247431
2060 POINT 2053 -5.812596328700657 16.91987593255003
2061 POINT 2054 -6.319777683103225 16.91966174283402
2062 POINT 2055 -5.306138086716437 16.03968131654242
2063 POINT 2056 -5.559944417547516 15.59906444554695
2064 POINT 2057 -4.799950565874155 16.03961222338507
2065 POINT 2058 -5.052976680856709 16.47984333002844
2066 POINT 2059 -6.574690167020133 15.59804862668566
2067 POINT 2060 -6.828065190591623 16.03845130796511
2068 POINT 2061 -15.25853880596588 12.9242213232549
2069 POINT 2062 -15.52043648370752 12.46856362456286
2070 POINT 2063 -15.01756861930122 12.47064487481246
2071 POINT 2064 -14.50591702520376 13.37825294329215
2072 POINT 2065 -13.99649188437294 13.37881945166879
2073 POINT 2066 -14.24624580072877 12.92686908188113
2074 POINT 2067 -14.50520649728844 12.47612567984228
2075 POINT 2068 -14.76710417503007 12.02046798115024
2076 POINT 2069 -13.99841660872912 11.58047866164933
2077 POINT 2070 -13.74078007588788 12.02829192794356
2078 POINT 2071 -13.99578135645762 12.47669218821891
2079 POINT 2072 -13.48181937932821 12.47903532998241
2080 POINT 2073 -17.13331118398057 10.61779162646253
2081 POINT 2074 -17.656383083496 10.60573919584698
2082 POINT 2075 -17.36873112769916 11.06026014994149
2083 POINT 2076 -16.02797983714253 12.45898801730209
2084 POINT 2077 -16.52067686245398 12.45170765846319
2085 POINT 2078 -16.25410369568363 12.9148597141664
2086 POINT 2079 -15.78700965047787 12.00541156885965
2087 POINT 2080 -17.58990196620047 11.50018232123824
2088 POINT 2081 -17.80115956030314 11.95002810346316
2089 POINT 2082 -18.10310561939233 11.49837858894322
2090 POINT 2083 -17.07237505905118 11.50928449184498
2091 POINT 2084 -17.49654816974892 12.39352110356614
2092 POINT 2085 -16.79404945073268 11.9725213123703
2093 POINT 2086 -16.57287861223137 11.53259914107355
2094 POINT 2087 -17.02017330927379 12.42839300923462
2095 POINT 2088 -17.22317558147022 12.87270744965903
2096 POINT 2089 -10.15245041339834 12.93005084479948
2097 POINT 2090 -10.41083981014142 12.48260744897875
2098 POINT 2091 -10.92260539808879 12.47904233800876
2099 POINT 2092 -11.17576243691975 12.92727117820404
2100 POINT 2093 -12.45674776247602 13.37407164467716
2101 POINT 2094 -12.19976115126335 12.92710572491763
2102 POINT 2095 -11.94436499927842 13.37375042596768
2103 POINT 2096 -12.45717349970925 12.47876043064897
2104 POINT 2097 -12.96948100660971 12.47903100666709
2105 POINT 2098 -13.22448228717945 12.92743126694244
2106 POINT 2099 -12.7156240960693 13.82239971451288
2107 POINT 2100 -12.97772467480737 14.26819310667658
2108 POINT 2101 -13.74302984524772 13.82714319818918
2109 POINT 2102 -13.48335862077273 13.37575933677816
2110 POINT 2103 -12.97102024805423 13.37575501346284
2111 POINT 2104 -12.66774364330618 4.523299107507239
2112 POINT 2105 -12.60490407255786 4.990136093565923
2113 POINT 2106 -12.20023269789926 4.658910900843035
2114 POINT 2107 -12.93462919488069 5.358202577882016
2115 POINT 2108 -12.47144927438711 5.488522975166397
2116 POINT 2109 -13.43620550685972 5.185534732811357
2117 POINT 2110 -14.33938229564766 7.524096539708034
2118 POINT 2111 -14.9111947654232 7.280162642147666
2119 POINT 2112 -15.24378862055976 7.682398206427763
2120 POINT 2113 -15.41335736818264 7.255259352596772
2121 POINT 2114 -15.01627536647982 8.127933305249282
2122 POINT 2115 -15.30010260228938 9.372269247130333
2123 POINT 2116 -15.02252082546601 8.964670165888624
2124 POINT 2117 -14.24302038469975 9.357551373852861
2125 POINT 2118 -14.50635377271081 9.811747310474253
2126 POINT 2119 -13.99000785292662 9.792863973386861
2127 POINT 2120 -16.10340678976494 9.787421896710498
2128 POINT 2121 -16.63238487037844 9.754755103146911
2129 POINT 2122 -16.89069641342317 10.18648047123871
2130 POINT 2123 -17.16253750713551 9.731246135309691
2131 POINT 2124 -16.60858944999246 10.6380511653244
2132 POINT 2125 -11.70834855106328 10.22274842325977
2133 POINT 2126 -11.44840726006248 10.67917056592608
2134 POINT 2127 -10.94524324959301 9.788054215548343
2135 POINT 2128 -10.68395920468744 10.24000068499402
2136 POINT 2129 -10.93683692235937 10.68473968678553
2137 POINT 2130 -11.47479555660216 8.87906931844303
2138 POINT 2131 -11.20910685279271 9.331122511448264
2139 POINT 2132 -11.46127783719861 9.774811991078451
2140 POINT 2133 -11.97221215426297 9.765816719159695
2141 POINT 2134 -12.23551219984005 9.302086962350581
2142 POINT 2135 -12.48258291370472 9.750023394531905
2143 POINT 2136 -11.99907298758307 8.856941095902805
2144 POINT 2137 -13.48363744127368 10.68335058227913
2145 POINT 2138 -12.97061921339908 10.68124949973901
2146 POINT 2139 -12.72223329311703 10.22272288939034
2147 POINT 2140 -13.73926247952205 10.23937626872396
2148 POINT 2141 -13.99771620268931 10.69103422356342
2149 POINT 2142 -13.47592909151099 9.785180332102566
2150 POINT 2143 -12.98553333869411 9.758993132581228
2151 POINT 2144 -10.99496024845769 5.244137851664762
2152 POINT 2145 -10.72127136894942 4.813791227183295
2153 POINT 2146 -11.76362091609507 4.48995017920419
2154 POINT 2147 -11.70511237026007 4.951495769211457
2155 POINT 2148 -11.39311338658647 4.215969615852156
2156 POINT 2149 -11.89139041445578 3.919115893213245
2157 POINT 2150 -12.24027988776031 5.8641325949175
2158 POINT 2151 -11.91055476543747 5.496066110601405
2159 POINT 2152 -11.20040264363509 5.788708193054712
2160 POINT 2153 -11.44644349888066 6.284936460155964
2161 POINT 2154 -11.47394298363328 5.327105388962559
2162 POINT 2155 -12.58774158616357 7.077264164985817
2163 POINT 2156 -12.04126943591853 7.115558718704478
2164 POINT 2157 -11.99490361784541 6.277557986686686
2165 POINT 2158 -12.55579812679505 6.270014851251677
2166 POINT 2159 -12.88263830348879 6.618639040367921
2167 POINT 2160 -11.7619617379154 6.690818716490142
2168 POINT 2161 12.04126828125696 7.115556461827698
2169 POINT 2162 11.49280873218955 7.122935250752073
2170 POINT 2163 11.76196034822392 6.690816131315052
2171 POINT 2164 11.49828322279317 7.993966546699665
2172 POINT 2165 12.0225605432701 7.971838012441538
2173 POINT 2166 12.88263546208822 6.61863544281538
2174 POINT 2167 13.12801043982883 6.205208828783831
2175 POINT 2168 12.55579487503194 6.270010728359129
2176 POINT 2169 13.69336976028337 6.949530619644269
2177 POINT 2170 13.96433801939816 6.375677941228949
2178 POINT 2171 13.62552731853477 6.037014047096381
2179 POINT 2172 14.13907079774611 5.854800214333848
2180 POINT 2173 11.99490119766059 6.277554553029752
2181 POINT 2174 11.44644164859318 6.284933341954128
2182 POINT 2175 11.20040012011418 5.788704856543246
2183 POINT 2176 11.91055022392465 5.49606120424435
2184 POINT 2177 12.2402761754012 5.864127938998204
2185 POINT 2178 11.47393849027101 5.327100831915041
2186 POINT 2179 9.945582057420673 6.181899969396367
2187 POINT 2180 10.20212439794679 5.720745644346648
2188 POINT 2181 9.928434604118719 5.290398733084792
2189 POINT 2182 8.556931258789588 2.528832819977453
2190 POINT 2183 8.146974075985931 2.334700766962239
2191 POINT 2184 8.559631278214885 1.92425070776564
2192 POINT 2185 15.01627398335804 8.127930948668869
2193 POINT 2186 15.51318585031227 8.107366722466351
2194 POINT 2187 15.56325582361871 8.960502416532755
2195 POINT 2188 15.81287665995519 8.510131175388402
2196 POINT 2189 16.04544432483895 8.060832677422217
2197 POINT 2190 14.75328392450536 8.510740088180491
2198 POINT 2191 13.08140472470578 7.902147488418196
2199 POINT 2192 13.39847454267256 7.408156657639373
2200 POINT 2193 13.15995580927431 7.012459581235187
2201 POINT 2194 12.58774024447741 7.077261480810485
2202 POINT 2195 12.31858862844304 7.509380600247505
2203 POINT 2196 12.56903250649056 7.933543031424325
2204 POINT 2197 10.94524346823205 9.788053798414385
2205 POINT 2198 11.20910703176076 9.331121907385405
2206 POINT 2199 10.95876112935163 8.892310914863021
2207 POINT 2200 10.43863740166071 8.90091810703888
2208 POINT 2201 10.70432605267283 8.448864704310473
2209 POINT 2202 10.17836257478566 9.351235759588613
2210 POINT 2203 9.923927498106863 8.907789549036064
2211 POINT 2204 10.43178843022046 9.796310885123368
2212 POINT 2205 9.917078526666614 9.803182327120552
2213 POINT 2206 10.683959420113 10.24000036594633
2214 POINT 2207 0.4257056342687726 0.4866078143970918
2215 POINT 2208 0.4258045314381747 0.00453325099778762
2216 POINT 2209 -8.556941856736707 2.528837422625263
2217 POINT 2210 -8.610159650802313 3.016790167285516
2218 POINT 2211 -8.395989123541707 3.439640495050862
2219 POINT 2212 -8.14698450737254 2.334704873539675
2220 POINT 2213 -7.792710741676334 2.625579213893601
2221 POINT 2214 -8.55964628277413 1.924257823018384
2222 POINT 2215 -9.473525601179848 4.277847459291598
2223 POINT 2216 -8.926778041898604 4.355756346121653
2224 POINT 2217 -9.691050900332758 4.805957037797565
2225 POINT 2218 -9.956516850290052 4.316937828288013
2226 POINT 2219 -8.686199335312255 4.812171506430753
2227 POINT 2220 -8.404917725988305 4.401061183751255
2228 POINT 2221 -9.445445922262575 5.251310504414456
2229 POINT 2222 -10.19419874351271 3.913941535915821
2230 POINT 2223 -10.41172404266562 4.442051114421789
2231 POINT 2224 -10.95895326217208 4.410794934811104
2232 POINT 2225 -11.08356606030267 3.84422950309065
2233 POINT 2226 -10.65318906962747 3.557421534579559
2234 POINT 2227 -11.09105814178689 3.357030647526714
2235 POINT 2228 -9.694219594930232 6.638197533051649
2236 POINT 2229 -9.431468981222594 6.192050880977571
2237 POINT 2230 -0.7570180027335149 9.832621255886785
2238 POINT 2231 -0.5048693800457256 10.28178717573282
2239 POINT 2232 -0.2521485634907947 9.832463971555836
2240 POINT 2233 -6.855131749277465 1.732845876664869
2241 POINT 2234 -6.972438504319116 2.219795679489987
2242 POINT 2235 -6.414622035057123 1.574492892908077
2243 POINT 2236 -6.765669841096464 1.179115021389632
2244 POINT 2237 -1.004871482698477 7.572984637225677
2245 POINT 2238 -1.257490486514399 8.028793797334046
2246 POINT 2239 -0.7545338586426834 8.025313601582315
2247 POINT 2240 -1.762470594293599 8.030999493773637
2248 POINT 2241 -1.512132970237805 8.483328458130275
2249 POINT 2242 -1.229222734249484 3.387837151439014
2250 POINT 2243 -0.9842473157104142 3.857601341818763
2251 POINT 2244 -2.760974422104667 6.228081510033119
2252 POINT 2245 -2.253497692870489 6.221058881823054
2253 POINT 2246 -2.513284803608339 6.678759929530004
2254 POINT 2247 -2.22068215594449 0.1236680774559861
2255 POINT 2248 -1.893412282768675 0.5757529280991733
2256 POINT 2249 -0.7618927259509458 1.458040956527683
2257 POINT 2250 -0.514627501401715 0.975189189825712
2258 POINT 2251 -0.9403354900406863 0.5067124244511273
2259 POINT 2252 -1.391489330979924 0.5361655784306855
2260 POINT 2253 -1.302907496264832 0.04248432242006185
2261 POINT 2254 -1.531173210898604 1.03488105453053
2262 POINT 2255 -1.759815051157529 1.526429257888473
2263 POINT 2256 -1.982161883684216 2.023903928033029
2264 POINT 2257 -0.9905345662098708 1.949589159885626
2265 POINT 2258 -1.233845294320426 2.439552824859994
2266 POINT 2259 -1.257892099368779 1.486841908219986
2267 POINT 2260 -4.253221810686109 1.820570946531706
2268 POINT 2261 -4.758491289411085 1.8896992927888
2269 POINT 2262 0.9403284851173297 39.49328748546868
2270 POINT 2263 1.302900066834092 39.9575161643721
2271 POINT 2264 0.4257054490154915 39.51339213116585
2272 POINT 2265 0.4258043460689575 39.99546675296004
2273 POINT 2266 0.7378421542620126 37.58924786878497
2274 POINT 2267 1.23384172418566 37.56044672587291
2275 POINT 2268 0.4905764528571049 37.11107417865601
2276 POINT 2269 -0.2485634106147014 34.74540615296891
2277 POINT 2270 -0.4944721332766874 35.20892213996861
2278 POINT 2271 -0.7430353076084667 34.7387144383873
2279 POINT 2272 0.248563135802923 34.74540613716317
2280 POINT 2273 -3.852885629984648e-08 34.27519843558186
2281 POINT 2274 -0.984247561800016 36.14239856410436
2282 POINT 2275 -0.7361813987894855 36.62952013242423
2283 POINT 2276 -0.2456036251004044 36.64131010369253
2284 POINT 2277 -0.7400749794124697 35.68099320876465
2285 POINT 2278 -1.233116612657999 35.66363578072671
2286 POINT 2279 -0.2456030824187044 35.68768492334626
2287 POINT 2280 -0.5050495520169673 27.93392892167996
2288 POINT 2281 -0.2524953199740186 28.37907783165175
2289 POINT 2282 -0.7575449060331049 28.37910298308664
2290 POINT 2283 0.5049254003565739 26.16245156440273
2291 POINT 2284 0.2524838536841221 26.60459196252057
2292 POINT 2285 0.7574092359319105 26.60463622076165
2293 POINT 2286 1.262484608430572 26.60474311400658
2294 POINT 2287 1.010043061758121 27.04688351212442
2295 POINT 2288 1.767930132642603 27.49060027590907
2296 POINT 2289 2.02050092362578 27.04726519540428
2297 POINT 2290 2.2733126220116 27.490875065944
2298 POINT 2291 4.294356946623791 24.8410616389421
2299 POINT 2292 4.547087505439189 24.40041073521517
2300 POINT 2293 4.800380884839186 24.84120087084955
2301 POINT 2294 4.293926155091318 23.96024866126563
2302 POINT 2295 4.799950093306713 23.96038789317308
2303 POINT 2296 3.788414878485399 23.96059221848699
2304 POINT 2297 4.041277466352923 23.5205693764449
2305 POINT 2298 1.514809999556898 24.40061413188652
2306 POINT 2299 1.767492707689488 23.96146212230959
2307 POINT 2300 1.262539709988568 23.9615922644941
2308 POINT 2301 7.321627964579404 38.17042681938287
2309 POINT 2302 7.793206680574138 37.97435229673911
2310 POINT 2303 7.678404262385088 38.46732542318286
2311 POINT 2304 6.972433698867157 37.78020975935011
2312 POINT 2305 6.855127394446583 38.26716082157134
2313 POINT 2306 6.414615189107867 38.42551451657923
2314 POINT 2307 6.765662894204413 38.82088748771397
2315 POINT 2308 5.835924386613025 31.06356123096226
2316 POINT 2309 6.346618511134158 31.06677866630198
2317 POINT 2310 6.088630850338571 30.61808479345149
2318 POINT 2311 5.582224837246878 31.5099791769925
2319 POINT 2312 10.95894851210964 35.58920884422533
2320 POINT 2313 11.39310711972735 35.78403513220901
2321 POINT 2314 10.72126794961869 35.18621162434592
2322 POINT 2315 10.41172000961541 35.55795193531766
2323 POINT 2316 10.44772930264001 34.72460793267786
2324 POINT 2317 10.99495780513424 34.75586484158553
2325 POINT 2318 9.020612145212025 37.38901099607349
2326 POINT 2319 9.424228545153195 37.64040579751443
2327 POINT 2320 9.474330615488972 37.14661597391932
2328 POINT 2321 8.40491449200708 35.59893959494738
2329 POINT 2322 8.926774996129321 35.64424422876988
2330 POINT 2323 8.686196885775953 35.18782930360295
2331 POINT 2324 8.152785656806662 36.06385741842882
2332 POINT 2325 7.912207546453292 35.6074424932619
2333 POINT 2326 9.956512910039363 35.68306455775935
2334 POINT 2327 9.473521881426226 35.72215416875295
2335 POINT 2328 9.691048418511331 35.19404432643185
2336 POINT 2329 10.19419347253031 36.08606177763876
2337 POINT 2330 9.192239487657353 36.13326446009738
2338 POINT 2331 9.406409183385882 36.55611572705381
2339 POINT 2332 8.859662298088979 36.47820578707073
2340 POINT 2333 10.19797450918269 36.5676960857483
2341 POINT 2334 9.806907805057346 36.80167464694597
2342 POINT 2335 10.26856200452538 37.16265232046304
2343 POINT 2336 6.871912061838399 35.54333618666676
2344 POINT 2337 7.405021657601408 35.59824784517664
2345 POINT 2338 7.126969115489866 36.01744865823345
2346 POINT 2339 7.657150492801826 35.13333002169522
2347 POINT 2340 6.621960666341595 35.0990227984202
2348 POINT 2341 6.888811633623055 34.66573394307474
2349 POINT 2342 6.360807696014708 34.64062136788498
2350 POINT 2343 6.343908124230053 35.518223611477
2351 POINT 2344 7.402796728654058 34.67408026698564
2352 POINT 2345 7.141643758327172 34.21567883645042
2353 POINT 2346 7.909982617505943 34.68327491507089
2354 POINT 2347 3.322763046202144 39.2378007288512
2355 POINT 2348 3.15663647718721 39.74932014657087
2356 POINT 2349 3.813291001601433 39.15997825895766
2357 POINT 2350 4.091217816567636 39.57707682242515
2358 POINT 2351 3.510964067743604 38.72905450866509
2359 POINT 2352 2.255436314939442 38.42805648019456
2360 POINT 2353 1.982157396380489 37.97609549035852
2361 POINT 2354 2.749110842047252 38.36872932479956
2362 POINT 2355 6.081230166453511 35.97194010898045
2363 POINT 2356 5.818441994459794 36.44062612474002
2364 POINT 2357 6.331071347733141 36.43122301548313
2365 POINT 2358 5.320795889254486 36.4447624160653
2366 POINT 2359 5.570637070534115 36.904045322568
2367 POINT 2360 5.831278770956706 35.52762672073389
2368 POINT 2361 5.970382527196483 38.42268507006546
2369 POINT 2362 6.061700466822952 37.87411431502481
2370 POINT 2363 5.314747458531205 38.19213207237964
2371 POINT 2364 5.061201838228348 37.78945770174573
2372 POINT 2365 5.345229385120188 37.38973324120216
2373 POINT 2366 5.842875490325496 37.38559694987687
2374 POINT 2367 6.287108152236881 37.38842639639064
2375 POINT 2368 5.556022539290377 38.55085980808124
2376 POINT 2369 5.910327271106762 39.10675356293056
2377 POINT 2370 4.527223806949365e-08 28.82425190516497
2378 POINT 2371 0.2524954118648361 29.271311063285
2379 POINT 2372 -0.2524953073975582 29.27131105117846
2380 POINT 2373 0.7573648797635052 29.27115381803919
2381 POINT 2374 0.2524953992883756 28.37907784375829
2382 POINT 2375 2.273105925774813 30.16491138028067
2383 POINT 2376 1.767218293970705 30.16613550136842
2384 POINT 2377 1.515144076936485 29.71762621682329
2385 POINT 2378 2.526574159573979 27.93457399209241
2386 POINT 2379 2.779582705512834 28.37954785163075
2387 POINT 2380 2.273750376967278 28.37918400598714
2388 POINT 2381 3.286081896042008 28.37994089986349
2389 POINT 2382 3.033258113435307 28.82455091375822
2390 POINT 2383 3.538866301224259 27.9356384317024
2391 POINT 2384 3.792541709146731 28.38064149382986
2392 POINT 2385 2.779144950557156 27.49123891158762
2393 POINT 2386 -0.2509574395584928 32.89023083452718
2394 POINT 2387 -0.5001445292837633 33.34678369244119
2395 POINT 2388 -0.248563270487983 33.81258223243197
2396 POINT 2389 -0.7487078437422611 33.80939991139683
2397 POINT 2390 0.2485632759296414 33.81258221662623
2398 POINT 2391 0.7557252605028959 31.06778977059484
2399 POINT 2392 0.5035766139793988 31.51991170020357
2400 POINT 2393 0.2521487272230526 31.06882402404262
2401 POINT 2394 1.512133316893194 31.51667185955954
2402 POINT 2395 1.257490837521165 31.97120645676332
2403 POINT 2396 1.762471007155117 31.96900086956706
2404 POINT 2397 1.26052028816003 31.06697586732646
2405 POINT 2398 4.299971210771425 32.85149278176542
2406 POINT 2399 4.813858896773226 32.84793939933139
2407 POINT 2400 4.555689088750212 33.29824097344651
2408 POINT 2401 4.047040589691667 32.40376536153468
2409 POINT 2402 3.788870781668652 32.85406693564981
2410 POINT 2403 1.99779136886551 34.24333877774004
2411 POINT 2404 1.739534188555335 34.71160974839909
2412 POINT 2405 2.242930868975687 34.69789125435826
2413 POINT 2406 1.750101670519205 33.79266021463997
2414 POINT 2407 2.253498350939557 33.77894172059914
2415 POINT 2408 4.811613439274451 30.16570216508861
2416 POINT 2409 4.556608060237682 29.71849742642267
2417 POINT 2410 4.303205728751885 30.16454791935548
2418 POINT 2411 5.321476248288842 30.16725951513379
2419 POINT 2412 5.830756015410285 30.16946429579235
2420 POINT 2413 6.341450139931419 30.17268173113207
2421 POINT 2414 5.574295537881691 29.72185645281436
2422 POINT 2415 4.303354423758809 31.05895384807756
2423 POINT 2416 4.559517683407055 31.50692914415298
2424 POINT 2417 4.303319379261703 31.953673122892
2425 POINT 2418 4.814339322939793 31.95444722891127
2426 POINT 2419 3.792218950158929 31.95624727677639
2427 POINT 2420 3.53960420638969 31.50780686224725
2428 POINT 2421 3.283325416819654 31.95789910088994
2429 POINT 2422 18.93911406219143 18.64650935978337
2430 POINT 2423 19.5261405338395 18.65502620489522
2431 POINT 2424 19.39362763295739 15.11254594470878
2432 POINT 2425 18.99857188883907 15.51737654824043
2433 POINT 2426 19.25787290188996 16.44788794426737
2434 POINT 2427 18.75405232248962 16.85355794479968
2435 POINT 2428 19.18738723924495 16.90476516850342
2436 POINT 2429 18.37155330956431 16.4239303910665
2437 POINT 2430 18.3010676469193 16.88080761530255
2438 POINT 2431 18.66020366196966 15.9349676413002
2439 POINT 2432 19.16290621200404 15.97908962750386
2440 POINT 2433 19.60184782770187 16.0291610895696
2441 POINT 2434 17.74265060326497 16.90620537096182
2442 POINT 2435 18.12514961619028 17.335832924695
2443 POINT 2436 15.35519968440101 23.50052060043794
2444 POINT 2437 15.61382388545503 23.94120904958511
2445 POINT 2438 16.14374614558074 23.94660548122907
2446 POINT 2439 15.87594038737391 24.38867578503489
2447 POINT 2440 16.40292032494667 23.50896024931439
2448 POINT 2441 14.04156102276654 20.44473665232049
2449 POINT 2442 13.5101459043692 20.44182359619071
2450 POINT 2443 13.23791783332129 20.0000177682021
2451 POINT 2444 12.99581450514272 20.44181897368124
2452 POINT 2445 14.32798942893715 21.75754985993104
2453 POINT 2446 14.59066675027901 22.19303681739878
2454 POINT 2447 14.05739186853169 22.19336416533053
2455 POINT 2448 14.59606856183489 21.32333671296435
2456 POINT 2449 17.02043936108002 17.36861009534426
2457 POINT 2450 16.75104595303201 17.80975860309653
2458 POINT 2451 17.29733916448795 17.80237918810654
2459 POINT 2452 16.8825211737115 20.00090158182218
2460 POINT 2453 16.50015673941269 20.45264191937547
2461 POINT 2454 16.08514518550571 20.00088643540819
2462 POINT 2455 16.11090188810538 20.45097896467276
2463 POINT 2456 15.67928540345191 21.32845415312463
2464 POINT 2457 15.97041169404601 20.90170701865165
2465 POINT 2458 15.55540014013904 20.44995153468437
2466 POINT 2459 15.13808712838207 21.32895105033127
2467 POINT 2460 15.40246258575432 21.75672561479265
2468 POINT 2461 14.87289137953249 20.89506525129633
2469 POINT 2462 16.20906446251038 17.81010162569915
2470 POINT 2463 16.48596426591832 18.24387071846142
2471 POINT 2464 17.67264086770901 25.76730075340195
2472 POINT 2465 17.52697787020489 25.32168372621399
2473 POINT 2466 17.1018668450201 25.72098828977573
2474 POINT 2467 17.78498630795706 24.9096132943493
2475 POINT 2468 18.29689274451687 24.94722520315896
2476 POINT 2469 17.98412715958014 24.48884230766805
2477 POINT 2470 18.19154482344632 27.14919909897187
2478 POINT 2471 18.00418440385464 27.60561752382607
2479 POINT 2472 18.50178002760287 27.59500731331329
2480 POINT 2473 17.22320550548447 27.12725699911247
2481 POINT 2474 16.99718056314592 26.6294993269721
2482 POINT 2475 17.47355478486276 26.66436298910405
2483 POINT 2476 14.77835587396051 33.47591176927389
2484 POINT 2477 14.5037091327629 32.89870630528225
2485 POINT 2478 14.20286679509669 33.2286249931342
2486 POINT 2479 14.91119950175903 32.71983261654729
2487 POINT 2480 15.41335988088872 32.74473764552774
2488 POINT 2481 13.26816755360081 21.75856091096891
2489 POINT 2482 13.0048315681012 21.32143470787244
2490 POINT 2483 16.7511085267673 22.19060870549156
2491 POINT 2484 16.20887687158396 22.19021726809433
2492 POINT 2485 16.17786126300281 23.06167228219098
2493 POINT 2486 16.69915194428762 23.07149378572608
2494 POINT 2487 16.13755756315898 24.82813436948326
2495 POINT 2488 16.41272816316716 25.26878389243772
2496 POINT 2489 15.60763530303328 24.82273793783929
2497 POINT 2490 15.34000798260733 25.26618804426989
2498 POINT 2491 15.57192146402785 25.71183427290126
2499 POINT 2492 15.04267696781684 25.71582579488349
2500 POINT 2493 19.39363952846237 24.88740687823191
2501 POINT 2494 18.885848220639 24.93009895932983
2502 POINT 2495 18.68670736901592 25.35086994601108
2503 POINT 2496 19.15366600169464 25.75648146541981
2504 POINT 2497 18.56007556635269 25.77221469844787
2505 POINT 2498 17.29751718982028 22.19792338787625
2506 POINT 2499 17.82901984993449 22.20723229864854
2507 POINT 2500 17.02050154539675 22.63152050098736
2508 POINT 2501 17.2455606073406 23.07880846811078
2509 POINT 2502 17.69547194751031 24.00000391993576
2510 POINT 2503 18.20737838407013 24.03761582874543
2511 POINT 2504 18.37170027960414 23.57574163654564
2512 POINT 2505 17.42146708911589 23.53377959693132
2513 POINT 2506 17.74281669022501 23.0938063121926
2514 POINT 2507 15.25853878864088 12.92422065523148
2515 POINT 2508 15.0175685566735 12.47064415693754
2516 POINT 2509 17.58990097002385 11.50018009270076
2517 POINT 2510 17.36873006000716 11.06025787356734
2518 POINT 2511 18.10310452692819 11.49837625079764
2519 POINT 2512 17.65638158620408 10.60573636868109
2520 POINT 2513 15.04253498339223 10.68172168255394
2521 POINT 2514 14.51635320344969 10.68688592002177
2522 POINT 2515 14.77952260731562 10.24189432870903
2523 POINT 2516 14.26072834128369 11.1308604785193
2524 POINT 2517 15.29884441434331 11.11647511404975
2525 POINT 2518 15.02941585016789 11.5708497790334
2526 POINT 2519 -5.559612278106096 22.64037941022797
2527 POINT 2520 -5.812595406053648 23.08012397436108
2528 POINT 2521 -5.306180262645629 23.08034305013044
2529 POINT 2522 -11.43576012403759 16.0359829772844
2530 POINT 2523 -10.91930130833142 16.03530291420144
2531 POINT 2524 -11.17839236720871 16.47753707839758
2532 POINT 2525 -11.95093603481484 15.1524484606076
2533 POINT 2526 -12.46808184577289 15.15416888873691
2534 POINT 2527 -11.69363999436943 15.59489173025373
2535 POINT 2528 -11.43396510560572 15.15130554344212
2536 POINT 2529 -11.95273105324672 16.03712589444988
2537 POINT 2530 -11.43712821990608 16.91861467088325
2538 POINT 2531 -10.92066940419991 16.91793460780029
2539 POINT 2532 -10.6635990468805 17.35875835728356
2540 POINT 2533 -10.40486319418314 16.91768076479789
2541 POINT 2534 -10.92128585029515 17.79908423287577
2542 POINT 2535 -10.40547964027838 17.79883038987337
2543 POINT 2536 -11.17515797884532 20.00000102031307
2544 POINT 2537 -11.43519237168078 19.55947185837874
2545 POINT 2538 -10.91971864863478 19.55946991621752
2546 POINT 2539 -17.69355183457131 26.21921688206146
2547 POINT 2540 -17.91957704254855 26.71697422906539
2548 POINT 2541 -17.47355512042661 26.66436143557672
2549 POINT 2542 -18.41154214164629 26.7040528116507
2550 POINT 2543 -18.5809866532765 26.22413096385403
2551 POINT 2544 -18.85906250548473 26.65851045942693
2552 POINT 2545 -18.58165190157233 21.78818398655776
2553 POINT 2546 -18.38730056826177 22.23230077017542
2554 POINT 2547 -18.87782301108845 22.24485568342974
2555 POINT 2548 -18.44846894716024 21.34055390991821
2556 POINT 2549 -12.97062101492125 29.31875403642425
2557 POINT 2550 -12.46767030297665 29.32772470608927
2558 POINT 2551 -12.72223548790102 29.77728049112642
2559 POINT 2552 -13.22907514769955 28.86709581957689
2560 POINT 2553 -14.51635826947124 29.31311155849969
2561 POINT 2554 -14.26073306937787 28.86913861906651
2562 POINT 2555 -14.51706009046056 28.4236684902674
2563 POINT 2556 -13.99842148648492 28.41952325896755
2564 POINT 2557 -14.7795280512982 29.75810081374213
2565 POINT 2558 -15.03254101741964 30.19341176913132
2566 POINT 2559 -14.50635783171041 30.1882502220222
2567 POINT 2560 -15.04254145518047 29.31827310560881
2568 POINT 2561 -15.56202218869213 29.32850735956158
2569 POINT 2562 -16.09215847892137 29.34349976240278
2570 POINT 2563 -15.83584752723667 29.77825476369244
2571 POINT 2564 -15.29885240686518 28.88351810431914
2572 POINT 2565 -15.56326504283053 31.03948508656246
2573 POINT 2566 -16.09046899946972 31.08225492312761
2574 POINT 2567 -16.36982582431926 30.66455001640303
2575 POINT 2568 -16.62469646598935 31.11842918285091
2576 POINT 2569 -16.10341526745587 30.2125664936679
2577 POINT 2570 -15.57327897722664 30.1975740908267
2578 POINT 2571 -15.30010875763884 30.62772349910677
2579 POINT 2572 -15.02252708302353 31.03532276486708
2580 POINT 2573 -17.36874409487987 28.93971676960333
2581 POINT 2574 -17.07238964582313 28.49069203988263
2582 POINT 2575 -16.33477468949221 28.91218584585327
2583 POINT 2576 -16.60860002803674 29.36193324998413
2584 POINT 2577 -17.13332295795837 29.38218899091014
2585 POINT 2578 -17.65639589526919 29.39423674904752
2586 POINT 2579 -16.5728923949743 28.46738370478237
2587 POINT 2580 -16.79406580218986 28.02745641123038
2588 POINT 2581 -16.05645084585894 28.44895021720102
2589 POINT 2582 -11.43421905289848 27.52144951460756
2590 POINT 2583 -11.6916320508292 27.96979564432751
2591 POINT 2584 -11.94478840412654 27.52156732452448
2592 POINT 2585 -10.92260322222589 27.52096203886612
2593 POINT 2586 -11.17575957552322 27.07273371906309
2594 POINT 2587 -14.54458520175707 20.44472116630428
2595 POINT 2588 -14.04156085494355 20.44473661417197
2596 POINT 2589 -14.25527342288196 20.00000694189264
2597 POINT 2590 -13.74078421360634 27.97171208992312
2598 POINT 2591 -13.48445719252365 28.41718221872224
2599 POINT 2592 -12.97143787482097 28.41928465053246
2600 POINT 2593 -12.71451066085117 27.96964225196112
2601 POINT 2594 -12.45912861602707 28.41955585281577
2602 POINT 2595 -16.25413008413381 27.08512273155318
2603 POINT 2596 -16.52070005962864 27.54827010780237
2604 POINT 2597 -16.0279985758462 27.54100069988094
2605 POINT 2598 -17.02019731047746 27.57157844290263
2606 POINT 2599 -17.22320594816005 27.12725546102763
2607 POINT 2600 -16.99718074018281 26.6294981140237
2608 POINT 2601 -15.51800943988496 26.61966242771222
2609 POINT 2602 -15.01513775921834 26.61758552880125
2610 POINT 2603 -15.25855691968476 27.07577642472079
2611 POINT 2604 -12.20839980609971 25.28942190368818
2612 POINT 2605 -12.46344601370725 25.73349604427731
2613 POINT 2606 -11.94630087233431 25.73521605642329
2614 POINT 2607 -12.46807352183216 24.84583381340267
2615 POINT 2608 -11.95092838045923 24.84755382554865
2616 POINT 2609 -12.98765585547731 24.84316419719443
2617 POINT 2610 -12.73018442983683 24.40129611905489
2618 POINT 2611 -13.24519821910848 25.28412915854135
2619 POINT 2612 -9.129651643227703 27.06523077144557
2620 POINT 2613 -8.876288684125369 27.50911488874473
2621 POINT 2614 -9.387389242004456 27.51154300998024
2622 POINT 2615 -11.43269449945645 25.7358488670784
2623 POINT 2616 -11.68774070706399 26.17992300766753
2624 POINT 2617 -11.43075487019097 26.62688850656359
2625 POINT 2618 -11.94436124306884 26.62625569590848
2626 POINT 2619 -10.91913903951838 26.62640103082215
2627 POINT 2620 -11.43575265155543 23.96401593507675
2628 POINT 2621 -10.91929460003396 23.9646969017269
2629 POINT 2622 -11.17838521827446 23.52246042867934
2630 POINT 2623 -11.43395834902085 24.84869716197923
2631 POINT 2624 -11.6936320647533 24.40510907169372
2632 POINT 2625 -11.9527226829938 23.96287259864617
2633 POINT 2626 -9.674059715189312 31.54309886182291
2634 POINT 2627 -9.923928805191473 31.0922115971265
2635 POINT 2628 -9.413784457395401 31.09278152867489
2636 POINT 2629 -7.33625026584593 21.32043467489033
2637 POINT 2630 -7.591125517743469 20.88045700659352
2638 POINT 2631 -7.337223839723812 20.44026648652743
2639 POINT 2632 -6.830512094503344 20.44026665091224
2640 POINT 2633 -6.575528491143303 20.88082068876169
2641 POINT 2634 -6.828119317097339 21.32047870894126
2642 POINT 2635 -7.081929718985547 21.76037960279158
2643 POINT 2636 -6.321207944282921 21.32076561666295
2644 POINT 2637 -8.865941131087769 23.08182349266286
2645 POINT 2638 -8.35498225184941 23.08157072480208
2646 POINT 2639 -8.866487325995669 23.96406401648594
2647 POINT 2640 -8.355738913521897 23.96328209781178
2648 POINT 2641 -8.611808118958542 24.40495790685818
2649 POINT 2642 -9.122215297035932 23.52275432385121
2650 POINT 2643 -9.377738307564679 23.08218960907453
2651 POINT 2644 -9.378284502472578 23.9644301328976
2652 POINT 2645 -11.43519851064686 20.44052946226004
2653 POINT 2646 -10.91972478760085 20.44052752009882
2654 POINT 2647 -10.92146522300643 21.32094671163846
2655 POINT 2648 -11.18084963629104 21.76061562971537
2656 POINT 2649 -11.43914973268702 21.32072488012269
2657 POINT 2650 -8.354717852301953 17.79936126551275
2658 POINT 2651 -8.865677316820541 17.7991080550456
2659 POINT 2652 -8.865604125273149 18.67950030830442
2660 POINT 2653 -8.354849206451807 18.67954722684985
2661 POINT 2654 -7.8449370799189 18.67964045894598
2662 POINT 2655 -7.336251432918799 18.67956409604354
2663 POINT 2656 -7.081931132275803 18.23961943152085
2664 POINT 2657 -8.09997451760549 18.23956994043947
2665 POINT 2658 -7.844805725769048 17.79945449760887
2666 POINT 2659 -8.100430139091614 16.47811947625329
2667 POINT 2660 -7.845750550729444 16.03722597916978
2668 POINT 2661 -8.355741934804009 16.03671803565851
2669 POINT 2662 -7.84499390774128 16.91893662122336
2670 POINT 2663 -7.336521112848085 16.03802299597051
2671 POINT 2664 -7.591832908560479 15.59662155537573
2672 POINT 2665 -7.081982832760588 16.47905573175917
2673 POINT 2666 -3.54490611780126 20.88709779020111
2674 POINT 2667 -3.290304169812604 21.32705841216561
2675 POINT 2668 -3.794349397708337 21.32485605719605
2676 POINT 2669 -4.07370210063638 19.99999990535588
2677 POINT 2670 -3.813606861772008 19.55755217403422
2678 POINT 2671 -3.813606786979048 20.4424476880606
2679 POINT 2672 -3.309561597917081 19.55534986530946
2680 POINT 2673 -3.544906231427986 19.11290209845403
2681 POINT 2674 -3.309561559083315 20.44465004303017
2682 POINT 2675 -2.976342896691423 37.87084587080842
2683 POINT 2676 -3.221425950774599 37.37975080057947
2684 POINT 2677 -2.526770059080721 38.86620393748946
2685 POINT 2678 -2.74911739425569 38.36872913844745
2686 POINT 2679 -3.247670177747043 38.30899320764298
2687 POINT 2680 -3.510972884148524 38.7290535079245
2688 POINT 2681 -3.738198386584258 38.23117024028548
2689 POINT 2682 -2.221684732532352 36.55039136936763
2690 POINT 2683 -2.720983152386764 36.50668992783906
2691 POINT 2684 -1.975649639226325 36.09501466529477
2692 POINT 2685 -2.229342038877392 35.61557517193711
2693 POINT 2686 -2.490020268553868 35.14475718983718
2694 POINT 2687 -2.734688313083581 35.59417021242318
2695 POINT 2688 -1.730981594696612 35.64560164270876
2696 POINT 2689 -1.486809012309066 35.18419628736905
2697 POINT 2690 -4.303354465001183 31.05895358128684
2698 POINT 2691 -4.55951779146229 31.50692884476348
2699 POINT 2692 -4.814374491189353 31.05972774650009
2700 POINT 2693 -4.303319481666954 31.95367266283595
2701 POINT 2694 -4.814339507855124 31.9544468280492
2702 POINT 2695 -3.794429959970654 31.05851674025303
2703 POINT 2696 -3.285536346627419 31.06016856732271
2704 POINT 2697 -3.539604151930885 31.5078065066199
2705 POINT 2698 -4.049286659697717 30.61131564198964
2706 POINT 2699 -3.792218904985805 31.95624679413531
2707 POINT 2700 -3.28332529164257 31.95789862120499
2708 POINT 2701 -4.047040621378638 32.40376477742103
2709 POINT 2702 7.293827708476641e-08 30.61670207641359
2710 POINT 2703 -0.2521485735852201 31.06882400602231
2711 POINT 2704 -0.2521485843374779 30.16753613384589
2712 POINT 2705 -0.7573647761819143 29.27115377417338
2713 POINT 2706 -0.5048694095893164 29.71821293229341
2714 POINT 2707 -0.757018053121834 30.16737885684081
2715 POINT 2708 -1.261813079214908 30.16656491069634
2716 POINT 2709 -1.00909225396307 30.61588811224881
2717 POINT 2710 -1.750101564306177 33.7926600881429
2718 POINT 2711 -1.247341893467582 33.80032930854107
2719 POINT 2712 -0.9957606346718019 34.26612784853185
2720 POINT 2713 -1.241669357333788 34.72964383553155
2721 POINT 2714 -1.739534339372401 34.71160969751359
2722 POINT 2715 -11.99490542589216 33.72244073919998
2723 POINT 2716 -12.55579994637244 33.72998392753992
2724 POINT 2717 -12.24028160504613 34.13586616472574
2725 POINT 2718 -12.58774656772219 32.92273577571433
2726 POINT 2719 -12.04127268056533 32.88444075338846
2727 POINT 2720 -12.31859548106905 32.49061802708863
2728 POINT 2721 -11.76196356192489 33.30918024521488
2729 POINT 2722 -11.49281247527174 32.87706249658918
2730 POINT 2723 -11.44644522059858 33.7150624824007
2731 POINT 2724 -10.96746234053338 33.79803021601935
2732 POINT 2725 -10.46487803283816 33.83310531972037
2733 POINT 2726 -10.71091904893609 33.33687709211661
2734 POINT 2727 -11.20040420450066 34.21129071000446
2735 POINT 2728 -11.46127976573915 30.22519151574363
2736 POINT 2729 -11.70834995916295 29.77725564258582
2737 POINT 2730 -11.97221458253263 30.23418703394924
2738 POINT 2731 -10.68395992686636 29.76000252533419
2739 POINT 2732 -10.93683718292719 29.31526402048404
2740 POINT 2733 -13.99001145216601 30.2071360473141
2741 POINT 2734 -14.24302441828744 30.64244700270329
2742 POINT 2735 -13.47593211929433 30.2148213247283
2743 POINT 2736 -12.882639952868 33.38136001505353
2744 POINT 2737 -13.12801613202197 33.79478544057929
2745 POINT 2738 -13.15996275337173 32.9875372887537
2746 POINT 2739 -12.56903973339889 32.06645679208884
2747 POINT 2740 -12.02256584624203 32.02816176976298
2748 POINT 2741 -8.913239817098617 31.99135920727501
2749 POINT 2742 -8.40158183646983 31.98514989359324
2750 POINT 2743 -8.652257386764454 31.53745947968953
2751 POINT 2744 -8.921335412563566 32.89535129795895
2752 POINT 2745 -8.673611325668027 33.34794371176464
2753 POINT 2746 -8.414840179908452 32.89164203498441
2754 POINT 2747 -5.072107480879501 32.40303922173636
2755 POINT 2748 -5.328305790674837 31.95629540366389
2756 POINT 2749 10.14864152241564 25.29167841478616
2757 POINT 2750 10.40452204895563 24.84933923994486
2758 POINT 2751 7.345760569471696 27.50220841755529
2759 POINT 2752 6.836865374418886 27.50054703680143
2760 POINT 2753 7.089552523791351 27.05704250164396
2761 POINT 2754 2.525426835782363 26.16307688713685
2762 POINT 2755 2.272480634611741 25.72176210905083
2763 POINT 2756 2.777875233522349 25.72204462651898
2764 POINT 2757 1.767575335564268 26.60489238751902
2765 POINT 2758 1.514941509738058 26.16264509615625
2766 POINT 2759 2.272957824933265 26.60516717755396
2767 POINT 2760 2.778352423843874 26.60544969502211
2768 POINT 2761 4.805074847682363 27.49442755495632
2769 POINT 2762 4.552513154400769 27.93750824958521
2770 POINT 2763 4.297887807610577 27.49325833103988
2771 POINT 2764 6.57468887445735 24.40195169880285
2772 POINT 2765 6.321311698834721 24.84298263597548
2773 POINT 2766 7.849057448689945 25.73004086883459
2774 POINT 2767 8.359006247967862 25.73123236418823
2775 POINT 2768 8.61552521165617 26.17503643791459
2776 POINT 2769 9.404349218168869 30.19173390211969
2777 POINT 2770 9.65777479999708 29.74665923251244
2778 POINT 2771 10.40670379081607 26.62599846740034
2779 POINT 2772 10.66169908791753 26.18015324950281
2780 POINT 2773 10.91913923802371 26.62640116557348
2781 POINT 2774 10.40539732837285 25.73591803949286
2782 POINT 2775 10.91783277558049 25.73632073766599
2783 POINT 2776 9.89250783475268 25.73551092662298
2784 POINT 2777 9.637659499680273 26.17823816723135
2785 POINT 2778 12.98765611516729 24.84316435404515
2786 POINT 2779 13.24519849159788 25.28412934430153
2787 POINT 2780 12.97771797713904 25.73181949643032
2788 POINT 2781 13.4973712688774 25.72824679366293
2789 POINT 2782 13.74303197345077 26.17287521768461
2790 POINT 2783 13.99649931993174 26.62119388701589
2791 POINT 2784 13.48335810089953 26.624255615123
2792 POINT 2785 14.0105124879096 25.72518506555582
2793 POINT 2786 14.53346833943965 25.71999652791481
2794 POINT 2787 14.76538182086017 26.16564275654618
2795 POINT 2788 12.97101588266317 26.6242609325337
2796 POINT 2789 13.22448322914414 27.07257960186498
2797 POINT 2790 11.18782984741558 28.86783824005193
2798 POINT 2791 11.44023158859328 28.42154320407505
2799 POINT 2792 10.92866118458883 28.41597310920991
2800 POINT 2793 15.8358466505693 29.77825662708678
2801 POINT 2794 15.57327800023705 30.19757601615488
2802 POINT 2795 15.03254016683603 30.19341354430916
2803 POINT 2796 -0.8995237521899599 19.54873467419662
2804 POINT 2797 -1.223665336802445 19.99999999772069
2805 POINT 2798 -1.340523578198245 19.5487346702835
2806 POINT 2799 -0.8995237451475713 20.45126532729634
2807 POINT 2800 -1.340523571155856 20.45126532338323
2808 POINT 2801 -1.523722054976781 19.10064953446878
2809 POINT 2802 -1.775181039070304 18.66606637620227
2810 POINT 2803 -1.267840977679282 18.66288618849292
2811 POINT 2804 -1.847863639589266 19.55191485799285
2812 POINT 2805 3.030578223423045 16.47865931956265
2813 POINT 2806 2.7786995819392 16.9173169337976
2814 POINT 2807 3.283887773770873 16.91774472162141
2815 POINT 2808 2.273605935625607 16.91641083896922
2816 POINT 2809 2.777737361196587 16.03895609462461
2817 POINT 2810 2.272576544974629 16.03887379781015
2818 POINT 2811 2.524923874579844 15.59959836069592
2819 POINT 2812 3.282925553028259 16.03938388244843
2820 POINT 2813 -0.7612694088495366 18.66199020272551
2821 POINT 2814 -1.012728392943059 18.227407044459
2822 POINT 2815 -0.758598544150526 17.78995693156367
2823 POINT 2816 -1.265170112980272 17.79085291733108
2824 POINT 2817 4.506764545389951 1.417895953039242
2825 POINT 2818 4.783535558950785 1.00631976803145
2826 POINT 2819 4.758484548151512 1.889696750885436
2827 POINT 2820 4.253215613299169 1.820569169400931
2828 POINT 2821 3.510966697825907 1.270945661498197
2829 POINT 2822 3.322764554813852 0.7621993600452871
2830 POINT 2823 2.853419417958452 0.6871814573462394
2831 POINT 2824 3.15663773239814 0.2506800547597778
2832 POINT 2825 2.526762781558002 1.133795733001061
2833 POINT 2826 0.7361792967570719 3.370479836805422
2834 POINT 2827 0.984246123665582 3.857601448530803
2835 POINT 2828 1.229220834288343 3.387837280503928
2836 POINT 2829 0.2456021749298 4.312315065409472
2837 POINT 2830 -6.12900348972989e-07 3.840243961866928
2838 POINT 2831 -0.2456030241048603 4.312315022444103
2839 POINT 2832 0.2456016322509388 3.358689814749931
2840 POINT 2833 0.5049285170465799 15.59922462282507
2841 POINT 2834 0.2524349318952632 15.15933354319677
2842 POINT 2835 0.7573634386942838 15.15936468952784
2843 POINT 2836 -0.2524349044090859 14.27853318435742
2844 POINT 2837 1.330778542918409e-08 14.71947361203522
2845 POINT 2838 0.2524349358260958 14.27853318222174
2846 POINT 2839 -0.2524349083399185 15.15933354533245
2847 POINT 2840 -0.7573634152411641 15.15936469433383
2848 POINT 2841 -0.5049284966536864 15.59922462549537
2849 POINT 2842 0.5049254022037216 13.83754849930346
2850 POINT 2843 0.7574092353969514 13.3953638490185
2851 POINT 2844 0.2524838513024543 13.39540810425898
2852 POINT 2845 0.7573603199205929 14.27848892698126
2853 POINT 2846 1.262484605133556 13.39525696279437
2854 POINT 2847 1.010043054232288 12.95311656774989
2855 POINT 2848 1.767575339991074 13.39510769916648
2856 POINT 2849 1.514941521155737 13.83735498043508
2857 POINT 2850 1.262295113836738 15.15932946063648
2858 POINT 2851 1.767248131092881 15.15945960799914
2859 POINT 2852 1.514810041101744 15.5993859165188
2860 POINT 2853 1.009801528685421 14.71943838100818
2861 POINT 2854 1.262291995063047 14.2784536980899
2862 POINT 2855 1.767382729920565 14.278304434462
2863 POINT 2856 10.41084000253686 12.48260731078788
2864 POINT 2857 9.899143909428762 12.48490033133931
2865 POINT 2858 10.15245058881716 12.93005073050543
2866 POINT 2859 7.613367978441445 10.26725776150029
2867 POINT 2860 7.865566856326732 10.71237296609314
2868 POINT 2861 7.872056162547818 9.817820601218891
2869 POINT 2862 6.840628853956597 11.61013350401928
2870 POINT 2863 7.350228541129577 11.60757337758872
2871 POINT 2864 7.602701329817169 12.05219325805719
2872 POINT 2865 7.859856068084092 11.60547869619642
2873 POINT 2866 6.584305485265666 12.05624824322372
2874 POINT 2867 6.331860536359608 11.61209380779351
2875 POINT 2868 7.345761240100929 12.4977925867857
2876 POINT 2869 7.855388767055443 12.4956979053934
2877 POINT 2870 6.836865843678177 12.49945375805594
2878 POINT 2871 6.328097526081189 12.50141406183017
2879 POINT 2872 7.089553280916451 12.94295840539215
2880 POINT 2873 8.370126385671387 11.60298196347085
2881 POINT 2874 8.117653596983795 11.15836208300238
2882 POINT 2875 8.375837173914027 10.70987623336757
2883 POINT 2876 4.295101059051913 14.27689245468694
2884 POINT 2877 4.801572033150954 14.27614783489993
2885 POINT 2878 5.054251674501884 14.71756589197868
2886 POINT 2879 5.308173049886577 14.27556530526172
2887 POINT 2880 4.041727348991283 14.71850999116095
2888 POINT 2881 4.800381330074277 15.15879930644609
2889 POINT 2882 5.3069823468099 15.15821677680788
2890 POINT 2883 7.849059237793011 14.26996017987809
2891 POINT 2884 8.103070930537744 14.71207488647675
2892 POINT 2885 5.815417413760485 14.27454965531052
2893 POINT 2886 5.562737772409555 13.83313159823176
2894 POINT 2887 -0.2521485527378636 8.931176099677991
2895 POINT 2888 -0.5035763908778745 8.480088454668433
2896 POINT 2889 -0.7557250243185949 8.932210406700243
2897 POINT 2890 -0.2509573870619522 8.024279294560063
2898 POINT 2891 0.2509575473889861 8.024279283349045
2899 POINT 2892 7.962417714058034e-08 7.56950443026293
2900 POINT 2893 6.593280292555939 10.27328387180388
2901 POINT 2894 6.335879483268245 10.7209592028273
2902 POINT 2895 5.830755701913942 9.830536241827216
2903 POINT 2896 5.574295302392639 10.27814403449093
2904 POINT 2897 5.321475942820628 9.832740939252627
2905 POINT 2898 6.341449789967948 9.827318887765713
2906 POINT 2899 5.062470520941847 11.17165642054254
2907 POINT 2900 5.317804209527402 10.72520563662399
2908 POINT 2901 5.827083968620716 10.72300093919858
2909 POINT 2902 6.079388390403009 11.16802080496036
2910 POINT 2903 5.823065021712079 11.61413554416479
2911 POINT 2904 5.315146558477212 11.61569271764991
2912 POINT 2905 5.567618704433812 12.05976572048306
2913 POINT 2906 1.26260880164937 12.50952783290288
2914 POINT 2907 0.7575334319127655 12.509634719127
2915 POINT 2908 1.515420485651163 12.06591797610076
2916 POINT 2909 1.767930107970686 12.50939982472365
2917 POINT 2910 2.779582641351243 11.62045230557948
2918 POINT 2911 2.526574119133528 12.06542614609067
2919 POINT 2912 2.273750314190195 11.62081612741035
2920 POINT 2913 3.538866270969666 12.06436176963468
2921 POINT 2914 3.284985271677322 12.50826344534523
2922 POINT 2915 3.286081822236629 11.62005928968668
2923 POINT 2916 2.273653942155398 10.72932286147457
2924 POINT 2917 2.52689359077933 10.28311528781965
2925 POINT 2918 2.021045272905355 11.17585461155564
2926 POINT 2919 1.76803675068764 11.62082845206683
2927 POINT 2920 1.262715444366323 11.62095646024605
2928 POINT 2921 1.010161226929193 11.17580755694835
2929 POINT 2922 0.7575449618927166 11.62089708098228
2930 POINT 2923 1.767940378652842 10.72933518613105
2931 POINT 2924 1.262535322656886 10.72890566637786
2932 POINT 2925 1.515143991906928 10.28237391629679
2933 POINT 2926 0.253078415467722 21.33774656433547
2934 POINT 2927 0.5081909984648777 20.90226741555631
2935 POINT 2928 -0.3913327526621082 20.45100208957463
2936 POINT 2929 2.734971728257651e-09 20.45100208875773
2937 POINT 2930 -0.39133275539708 20.0000000008169
2938 POINT 2931 -0.5081909870155196 20.90226741523717
2939 POINT 2932 0.3913327604803603 20.45100208957464
2940 POINT 2933 0.3913327577453886 20.0000000008169
2941 POINT 2934 0.2530784161400829 22.21052479098349
2942 POINT 2935 0.5055201289601644 22.64707892336772
2943 POINT 2936 -2.785590905596614 21.32882419900507
2944 POINT 2937 -3.03503418550369 21.76658246600001
2945 POINT 2938 1.770560907143734 17.79144658719761
2946 POINT 2939 2.024810499173619 18.22997737721628
2947 POINT 2940 1.775181052026418 18.66606637464487
2948 POINT 2941 2.280691576572412 18.66774072366555
2949 POINT 2942 1.265170126328186 17.79085291521534
2950 POINT 2943 1.012728405401115 18.22740704319246
2951 POINT 2944 0.7585985571016766 17.7899569302122
2952 POINT 2945 1.516431058844295 17.35399647421735
2953 POINT 2946 0.8995237605176197 19.54873467387751
2954 POINT 2947 1.340523588216353 19.54873466996442
2955 POINT 2948 1.523722067484837 19.10064953360767
2956 POINT 2949 1.267840990086043 18.66288618715841
2957 POINT 2950 0.7612694208595338 18.66199020215526
2958 POINT 2951 5.813248074708591 17.79940577746486
2959 POINT 2952 6.319914201894026 17.79970755524536
2960 POINT 2953 6.067133785253771 18.23927390332938
2961 POINT 2954 3.535574274154806 15.59970463007047
2962 POINT 2955 3.788415136381265 16.0394078550085
2963 POINT 2956 4.29392652128657 16.03975141330591
2964 POINT 2957 4.547087929945052 15.59958939695291
2965 POINT 2958 4.79995059372381 16.03961220762827
2966 POINT 2959 4.041277800160023 16.47943066568386
2967 POINT 2960 3.788433948862058 15.15930008166777
2968 POINT 2961 3.282944365509053 15.1592761091077
2969 POINT 2962 4.294357257637037 15.15893851212372
2970 POINT 2963 3.794349415726029 21.32485606072119
2971 POINT 2964 3.290304186047734 21.32705841534533
2972 POINT 2965 3.544906134739364 20.8870977923218
2973 POINT 2966 3.035034201374663 21.76658246994613
2974 POINT 2967 3.285878222907446 22.20420717451871
2975 POINT 2968 3.81360680382783 20.44244768929398
2976 POINT 2969 4.073702118111949 19.99999990535705
2977 POINT 2970 4.30904667870178 20.44244765376073
2978 POINT 2971 3.813606878619757 19.55755217280245
2979 POINT 2972 4.309046753493707 19.5575521372692
2980 POINT 2973 3.091725105391231 19.99999995889588
2981 POINT 2974 3.309561574149535 20.44465004391812
2982 POINT 2975 2.535961556076473 19.1072647545244
2983 POINT 2976 2.785591003223675 18.67117575709582
2984 POINT 2977 2.823024475136099 19.55534988242807
2985 POINT 2978 3.309561612982868 19.55534986442249
2986 POINT 2979 3.544906248364625 19.11290209633464
2987 POINT 2980 4.553342649405812 19.11635063545458
2988 POINT 2981 4.813437888898004 19.55879836800918
2989 POINT 2982 3.78894556721224 16.91866702923937
2990 POINT 2983 3.537066925728395 17.35732464347433
2991 POINT 2984 4.294456952117544 16.91901058753678
2992 POINT 2985 10.40485762242933 23.0823167754689
2993 POINT 2986 10.66359386676167 22.64123696885316
2994 POINT 2987 7.336519205314388 23.96197717939193
2995 POINT 2988 7.845748174573922 23.96277428191098
2996 POINT 2989 7.847092038101775 15.1545453326975
2997 POINT 2990 8.357041317327358 15.15335405870247
2998 POINT 2991 7.335858156970897 16.91917008184071
2999 POINT 2992 6.82740222651428 16.91959839644326
3000 POINT 2993 7.081982885691881 16.4790557103205
3001 POINT 2994 6.573652994571071 17.35977609867216
3002 POINT 2995 6.82753870511625 17.79964422453667
3003 POINT 2996 6.319777723292055 16.91966172715194
3004 POINT 2997 8.865603095183527 21.32049701279709
3005 POINT 2998 8.610566546294587 20.88042660659833
3006 POINT 2999 8.354847778087121 21.32045064574386
3007 POINT 3000 -19.49782579425925 18.2262342507611
3008 POINT 3001 -19.95653724886555 18.68219083235013
3009 POINT 3002 -19.87861801615688 17.79987597964446
3010 POINT 3003 -18.66020382675364 15.93496854205557
3011 POINT 3004 -19.16290631175541 15.97909016657372
3012 POINT 3005 -18.99857199443355 15.51737708814106
3013 POINT 3006 -17.91955297322556 13.2829594368018
3014 POINT 3007 -18.41152301195191 13.295877500577
3015 POINT 3008 -9.129653461818208 12.93477147753005
3016 POINT 3009 -8.876289950333131 12.49088708422035
3017 POINT 3010 -8.365440669810539 12.49364887761896
3018 POINT 3011 -8.108500589767266 12.9392481990543
3019 POINT 3012 -7.855388676964306 12.4956979610122
3020 POINT 3013 -8.361774657741075 13.38192668055925
3021 POINT 3014 -7.851722664894842 13.38397576395249
3022 POINT 3015 -4.80356472378408 18.67759654481199
3023 POINT 3016 -4.299173591137375 18.67635031371034
3024 POINT 3017 -5.054931658031134 18.23828417657461
3025 POINT 3018 -2.280691562830554 18.66774072586148
3026 POINT 3019 -2.024810485533055 18.22997737988562
3027 POINT 3020 -2.785590988433182 18.67117575963704
3028 POINT 3021 -2.535961541970431 19.1072647559537
3029 POINT 3022 -5.306982312776921 15.15821679877318
3030 POINT 3023 -5.813814758590553 15.15783103442108
3031 POINT 3024 -4.547087902507322 15.59958941436245
3032 POINT 3025 -4.293926496647592 16.03975142784848
3033 POINT 3026 -7.337862524706304 15.15534238385541
3034 POINT 3027 -7.847091962587663 15.15454536705468
3035 POINT 3028 -9.890905060586594 16.91769167150019
3036 POINT 3029 -10.147975417906 16.47686792201691
3037 POINT 3030 -9.122219403737819 16.47724518073061
3038 POINT 3031 -9.377742636906071 16.91780911523353
3039 POINT 3032 -9.634630413183206 17.35862195801451
3040 POINT 3033 -15.51798373490658 13.38033590670376
3041 POINT 3034 -15.01511587050028 13.38241715695336
3042 POINT 3035 -14.76536195414445 13.83436752674101
3043 POINT 3036 -11.6877451403522 13.82008259053461
3044 POINT 3037 -11.43269990813222 14.264155554569
3045 POINT 3038 -11.43075852913953 13.37311667077508
3046 POINT 3039 -10.91914257799354 13.37360334277097
3047 POINT 3040 -14.49013065771233 8.92250716809294
3048 POINT 3041 -13.97378473792814 8.903623831005547
3049 POINT 3042 -13.75932210669217 8.400895838660942
3050 POINT 3043 -14.48388519872614 8.085770307453599
3051 POINT 3044 -14.7532851786944 8.51074262304131
3052 POINT 3045 -14.07639210786223 7.906905857500061
3053 POINT 3046 -16.05643838843906 11.55103715881512
3054 POINT 3047 -16.33476399675755 11.08780033828979
3055 POINT 3048 -16.09214922620015 10.65648918306597
3056 POINT 3049 -15.54889503500405 11.56061276607589
3057 POINT 3050 11.2389936247567 7.556479722522218
3058 POINT 3051 10.95968569172366 7.131739392009571
3059 POINT 3052 10.96516018232728 8.002770687957165
3060 POINT 3053 10.45710182271854 7.09666523164841
3061 POINT 3054 10.19676557908151 7.554948702823318
3062 POINT 3055 9.947996817509239 7.086330070692012
3063 POINT 3056 10.44503645463636 8.011377880133024
3064 POINT 3057 9.935931449427057 8.001042719176626
3065 POINT 3058 9.433883059010681 7.09648042600004
3066 POINT 3059 9.694219302647717 6.638196954825132
3067 POINT 3060 9.431468298922116 6.192050324704395
3068 POINT 3061 8.921334355776636 7.10464922441238
3069 POINT 3062 9.175111870638158 7.552782340279261
3070 POINT 3063 9.020608292392154 2.610986790489027
3071 POINT 3064 9.474327155954036 2.853381851282785
3072 POINT 3065 9.424223358758637 2.359591439050014
3073 POINT 3066 8.61015283696532 3.016787348807768
3074 POINT 3067 9.406407135751241 3.443882765087797
3075 POINT 3068 14.24301966553495 9.357549438241348
3076 POINT 3069 14.4901295966866 8.92250482268938
3077 POINT 3070 15.02251965234311 8.964668030477915
3078 POINT 3071 14.50635307594872 9.811745665581833
3079 POINT 3072 15.03253485589125 9.806581428114002
3080 POINT 3073 15.30010149579994 9.372267151041644
3081 POINT 3074 1.391480458123909 0.5361652771996028
3082 POINT 3075 1.5311646848921 1.034881203024674
3083 POINT 3076 0.9403288020067619 0.5067124227468429
3084 POINT 3077 1.30290062382262 0.04248387209852996
3085 POINT 3078 0.5146184240444129 0.9751892831391331
3086 POINT 3079 0.7618858102185746 1.458041036081303
3087 POINT 3080 1.257885314814681 1.486842127641039
3088 POINT 3081 1.759808407924379 1.526429439176829
3089 POINT 3082 -7.903282532023693 3.431138862491011
3090 POINT 3083 -8.152789841056642 3.936144390882303
3091 POINT 3084 -7.405025206157284 4.401754955187759
3092 POINT 3085 -7.126972980823624 3.982555849504718
3093 POINT 3086 -6.871914937442281 4.456668046370027
3094 POINT 3087 -7.912211134470291 4.392559551191403
3095 POINT 3088 -7.657153091088949 4.866671748056711
3096 POINT 3089 -9.947996922680865 7.086330753741288
3097 POINT 3090 -10.19676544567954 7.554949393736067
3098 POINT 3091 -9.433883096893222 7.096480642617021
3099 POINT 3092 -9.935931248079878 8.001043112251882
3100 POINT 3093 4.527367092332923e-08 11.17574818979146
3101 POINT 3094 -0.252495297355625 10.7286890466501
3102 POINT 3095 -0.7573647365983451 10.72884633098105
3103 POINT 3096 -6.777768896535333 2.634657762748669
3104 POINT 3097 -7.244270061060128 2.731385544386314
3105 POINT 3098 -7.354841851407485 3.536945192983723
3106 POINT 3099 -6.821731582692482 3.591858284165991
3107 POINT 3100 -7.598041133892552 3.040441297152283
3108 POINT 3101 -2.770028523234636 7.135495143417519
3109 POINT 3102 -2.262551794000459 7.128472515207454
3110 POINT 3103 -2.013561812098475 7.580836281036188
3111 POINT 3104 -1.756818092472177 7.124101067148673
3112 POINT 3105 -2.268204295821881 8.035370941832417
3113 POINT 3106 -1.975649084420517 3.904985271154332
3114 POINT 3107 -2.229341417725875 4.384424847169543
3115 POINT 3108 -1.730981152791177 4.354398340751177
3116 POINT 3109 -1.233116312198353 4.336364163628327
3117 POINT 3110 -1.48680864550371 4.815803739643538
3118 POINT 3111 -0.7430351466867606 5.261285573502088
3119 POINT 3112 -0.494472020592799 4.791077844253667
3120 POINT 3113 -0.2485633623686729 5.254593855235067
3121 POINT 3114 -0.740074808422948 4.319006740711124
3122 POINT 3115 -3.989917167396486 2.240630780408752
3123 POINT 3116 -3.738200036941911 1.768829703597202
3124 POINT 3117 -3.247670870830478 1.691006496083939
3125 POINT 3118 -2.976342610696507 2.129153640981189
3126 POINT 3119 -3.734386660790618 2.660010881492179
3127 POINT 3120 -4.249408434534817 2.711752124426682
3128 POINT 3121 -6.558942474787781 3.123176139372501
3129 POINT 3122 -6.331073604203918 3.568786795893496
3130 POINT 3123 -6.287110918046769 2.611586274476174
3131 POINT 3124 -6.621962591182754 4.900980417645647
3132 POINT 3125 -6.343910365849093 4.481781311962606
3133 POINT 3126 1.975648595423093 36.09501468771074
3134 POINT 3127 1.730980862699194 35.6456016167933
3135 POINT 3128 2.229341421389412 35.61557529593476
3136 POINT 3129 1.767382707537047 25.72169563959068
3137 POINT 3130 2.019831105277033 25.28066337897281
3138 POINT 3131 1.262291980403351 25.72154636607824
3139 POINT 3132 1.767248087730079 24.84054044960734
3140 POINT 3133 2.272346014804772 24.84060691906749
3141 POINT 3134 1.262295090029159 24.84067059179185
3142 POINT 3135 -0.2524838111325409 26.60459195706799
3143 POINT 3136 2.444279567637153e-08 27.04677661342691
3144 POINT 3137 -0.2524838031658742 27.4903401891097
3145 POINT 3138 0.2524838616507888 27.49034019456228
3146 POINT 3139 -0.7575333892249605 27.4903653405446
3147 POINT 3140 3.788433723962699 24.84070003411083
3148 POINT 3141 4.041727103362698 25.28149016974522
3149 POINT 3142 3.283312657697288 25.72224398475948
3150 POINT 3143 3.030366456526666 25.28092920667346
3151 POINT 3144 3.789177592187962 25.72274613527788
3152 POINT 3145 4.295100814849055 25.72310774010915
3153 POINT 3146 3.536686369183645 26.16386155512341
3154 POINT 3147 2.272576461040474 23.96112624728912
3155 POINT 3148 2.020306171472144 23.5221043798967
3156 POINT 3149 2.273605847126488 23.08358918644693
3157 POINT 3150 2.778699451801812 23.08268308508446
3158 POINT 3151 3.030578057285068 23.52134071927124
3159 POINT 3152 3.283887584263749 23.08225529947948
3160 POINT 3153 6.82172659767877 36.40814779878537
3161 POINT 3154 7.35483619344178 36.46305945729526
3162 POINT 3155 6.558938425685055 36.87683381454495
3163 POINT 3156 6.777763402182511 37.36535117969289
3164 POINT 3157 7.244263972315331 37.26861717750442
3165 POINT 3158 5.845709060934203 32.8543398439479
3166 POINT 3159 5.327825047917067 32.84978785259251
3167 POINT 3160 5.587460787769149 33.29923958236787
3168 POINT 3161 5.07210716993828 32.40303966091142
3169 POINT 3162 5.839992684245366 31.95857160899264
3170 POINT 3163 5.328305474083631 31.9562956821724
3171 POINT 3164 11.7636152966602 35.51005436606592
3172 POINT 3165 11.89138268840086 36.08088984207926
3173 POINT 3166 13.96434143009819 33.62431889214255
3174 POINT 3167 13.62553027166024 33.96298348535633
3175 POINT 3168 14.13907578790397 34.14519481201172
3176 POINT 3169 13.6933777803736 33.05047192353857
3177 POINT 3170 11.47394032795509 34.67289773812949
3178 POINT 3171 11.20040168097641 34.21129404646143
3179 POINT 3172 11.44644337030582 33.71506560055828
3180 POINT 3173 10.96746084748497 33.79803270401432
3181 POINT 3174 9.928435644092694 34.70960053046583
3182 POINT 3175 9.445444615479557 34.74869014145943
3183 POINT 3176 10.20212549960824 34.27925374770544
3184 POINT 3177 8.55693472587436 37.47116564769411
3185 POINT 3178 8.610154574479843 36.98321170564777
3186 POINT 3179 7.792705712071077 37.37442105721501
3187 POINT 3180 8.146978123645237 37.66529759679247
3188 POINT 3181 8.559637437237384 38.07574638038857
3189 POINT 3182 8.395984878751314 36.56036043869134
3190 POINT 3183 7.903277933197526 36.56886333700585
3191 POINT 3184 7.59803541538643 36.95956247755778
3192 POINT 3185 13.23628235860721 30.68752328103807
3193 POINT 3186 13.02182189368296 31.19025353239009
3194 POINT 3187 13.39848589487437 32.59184677084766
3195 POINT 3188 13.08141264733925 32.09785538670456
3196 POINT 3189 13.15996052987587 32.98754066985602
3197 POINT 3190 3.734384876860566 37.33999019105068
3198 POINT 3191 3.989913736038182 37.75937050229219
3199 POINT 3192 3.738191811837065 38.23117125418775
3200 POINT 3193 3.247663856437776 38.30899372408128
3201 POINT 3194 2.976338586140713 37.87084607032222
3202 POINT 3195 0.7575449832500279 28.37910301124292
3203 POINT 3196 0.5050496180037712 27.9339289377297
3204 POINT 3197 1.262608818111103 27.49047225529183
3205 POINT 3198 1.515420516496924 27.93408212583156
3206 POINT 3199 0.7575334456124412 27.49036536204691
3207 POINT 3200 2.526893724749228 29.71688489057836
3208 POINT 3201 2.779450491643448 30.16459955601931
3209 POINT 3202 3.286497797291172 29.27075851415398
3210 POINT 3203 3.54071932016649 29.71695812350327
3211 POINT 3204 3.793978826839798 29.27114357134025
3212 POINT 3205 2.779998606761999 29.27036546592124
3213 POINT 3206 2.273654040893363 29.2706772901826
3214 POINT 3207 0.2509575631490233 32.89023084573768
3215 POINT 3208 7.962001580263944e-08 32.43049566678853
3216 POINT 3209 0.2509575815135437 31.97572081582519
3217 POINT 3210 -0.2509574211939724 31.97572080461469
3218 POINT 3211 0.7545341147933871 31.97468656237741
3219 POINT 3212 1.00487180505531 32.42701557238493
3220 POINT 3213 2.262552379835649 32.871528064516
3221 POINT 3214 2.013562317430567 32.41916421915188
3222 POINT 3215 1.75681859018817 32.87589931213495
3223 POINT 3216 2.268204796802595 31.96462962194811
3224 POINT 3217 2.77500339006423 31.96212582894687
3225 POINT 3218 3.027618133833469 32.410566243476
3226 POINT 3219 1.247341957495069 33.80032933334168
3227 POINT 3220 1.503048939569117 33.33593227620078
3228 POINT 3221 0.7511021544362571 32.88704853645076
3229 POINT 3222 0.5001446352577484 33.34678370418941
3230 POINT 3223 0.7487078672168751 33.80939990733931
3231 POINT 3224 0.9957605981669626 34.2661278457785
3232 POINT 3225 1.254058877164035 32.88356843083666
3233 POINT 3226 4.807634527403731 36.45417558306546
3234 POINT 3227 4.268078121334274 36.43451973236753
3235 POINT 3228 5.055439451329409 35.99075638523749
3236 POINT 3229 4.016824286852271 36.00258917550283
3237 POINT 3230 3.742624318707891 36.43693935563272
3238 POINT 3231 4.285159710652261 35.55276249892606
3239 POINT 3232 3.759705908025878 35.55518212219123
3240 POINT 3233 5.313339571489223 35.5337790049437
3241 POINT 3234 5.576017529265764 35.08006250744026
3242 POINT 3235 4.800178209638467 35.54319217194386
3243 POINT 3236 4.543059830812075 35.09578511863226
3244 POINT 3237 6.593280538182253 29.7267168205935
3245 POINT 3238 6.845584839365598 29.28169702003494
3246 POINT 3239 6.335879606186479 29.27904143291438
3247 POINT 3240 6.851155373110538 30.17533731825264
3248 POINT 3241 7.361674109424366 30.17880960428335
3249 POINT 3242 7.109843711173534 30.62477451482192
3250 POINT 3243 7.613368231755042 29.73274323698628
3251 POINT 3244 7.872056569818037 30.18218043355557
3252 POINT 3245 3.794429966540387 31.05851703304998
3253 POINT 3246 4.049286650570231 30.61131584299384
3254 POINT 3247 3.794281271533463 30.1641111043279
3255 POINT 3248 3.033012443010421 30.61175253684394
3256 POINT 3249 3.285536433201112 31.06016885716353
3257 POINT 3250 3.286800241984837 30.16372604714163
3258 POINT 3251 19.49782570706544 18.22623423316451
3259 POINT 3252 19.95653726784996 18.68219111832597
3260 POINT 3253 18.58166017353374 18.21127385550157
3261 POINT 3254 18.44873815733738 18.65901810939465
3262 POINT 3255 17.82900842060782 17.79250664273356
3263 POINT 3256 17.55961501255982 18.23365515048583
3264 POINT 3257 18.38742546426215 17.76710888707429
3265 POINT 3258 18.87780136911621 17.75460013746301
3266 POINT 3259 17.52690217883121 14.67823772169018
3267 POINT 3260 17.21413812833305 15.13667453160922
3268 POINT 3261 17.10180895186563 14.27897243895621
3269 POINT 3262 16.61643123646513 14.28454314481263
3270 POINT 3263 16.41267770706892 14.73120621263948
3271 POINT 3264 16.07296510477975 14.29114476438398
3272 POINT 3265 14.25527356652689 20.00000694342845
3273 POINT 3266 14.54458535674566 20.44472120503738
3274 POINT 3267 15.08660392329284 20.4503355424043
3275 POINT 3268 15.22709411735221 19.99960748842541
3276 POINT 3269 14.54446737878539 19.55524897689899
3277 POINT 3270 14.04144304480628 19.5552644241821
3278 POINT 3271 15.12585065643982 22.18962336947886
3279 POINT 3272 15.66704893150966 22.18912647227221
3280 POINT 3273 15.93226494226947 22.62311502278055
3281 POINT 3274 15.63603332292851 23.06058148636886
3282 POINT 3275 15.10960336366766 23.06196334102751
3283 POINT 3276 14.85525309603435 22.62543767487836
3284 POINT 3277 15.07838610348047 15.1733118594097
3285 POINT 3278 15.60761466098593 15.17729090093799
3286 POINT 3279 15.33998301787808 14.73382879068254
3287 POINT 3280 14.82036766750458 15.61339008097941
3288 POINT 3281 15.08744436360368 16.05749207836569
3289 POINT 3282 14.56179428451994 16.05410818967995
3290 POINT 3283 14.55273602439673 15.16992797072396
3291 POINT 3284 15.87591227598083 15.61135500755215
3292 POINT 3285 16.13750919037845 15.17187193882498
3293 POINT 3286 16.68097532206382 15.16527031925363
3294 POINT 3287 16.93896961164258 15.57734025779473
3295 POINT 3288 17.24542059267814 16.921237054667
3296 POINT 3289 17.42133862340716 16.46621174527455
3297 POINT 3290 16.6991273812222 16.92861646965699
3298 POINT 3291 17.19812051536607 16.01499394956502
3299 POINT 3292 16.66495770909684 16.04358973720944
3300 POINT 3293 16.50011603657139 19.55060584927988
3301 POINT 3294 16.11086118526408 19.54894289457717
3302 POINT 3295 16.23490740586323 18.67143802475644
3303 POINT 3296 16.77688889638486 18.67109500215383
3304 POINT 3297 16.90823717346987 19.54895804099115
3305 POINT 3298 15.66731510254423 17.81120259941419
3306 POINT 3299 15.93239678965792 17.3770904840493
3307 POINT 3300 15.12588811735991 17.81032407015078
3308 POINT 3301 15.40255579021237 18.24333521180063
3309 POINT 3302 14.85535684791786 17.37460770073489
3310 POINT 3303 15.10975920515541 16.93820082241529
3311 POINT 3304 14.5744686233815 16.93461706538583
3312 POINT 3305 14.59059753558601 17.80674031312132
3313 POINT 3306 16.79406525039852 28.02745799197655
3314 POINT 3307 17.07238886613754 28.4906939788942
3315 POINT 3308 16.57289177244715 28.46738533203519
3316 POINT 3309 17.4965710356451 27.60644365003999
3317 POINT 3310 17.80117571229844 28.04994051262165
3318 POINT 3311 17.02019681392827 27.57157998790804
3319 POINT 3312 16.52069972023788 27.54827134104903
3320 POINT 3313 17.58991650606833 28.49979170459397
3321 POINT 3314 18.10312000032976 28.50159082583126
3322 POINT 3315 18.41154163693258 26.70405457720359
3323 POINT 3316 18.5809862969927 26.22413241238169
3324 POINT 3317 18.8590620588132 26.65851173471512
3325 POINT 3318 17.91957654068757 26.71697613947613
3326 POINT 3319 17.69355159834902 26.21921846733577
3327 POINT 3320 18.11866262353381 25.81991390377403
3328 POINT 3321 16.25412989716249 27.08512372750859
3329 POINT 3322 16.02799833363274 27.5410017315771
3330 POINT 3323 12.4713348273634 20.44086210014538
3331 POINT 3324 12.74356289841131 20.88266792813398
3332 POINT 3325 12.48035189032188 21.32047783433658
3333 POINT 3326 11.9561289915379 23.08041192363828
3334 POINT 3327 12.47539190118238 23.07854903560531
3335 POINT 3328 12.21410635583005 23.51991665586499
3336 POINT 3329 11.69840716659313 22.64001307273599
3337 POINT 3330 13.00253570004953 22.19714775592412
3338 POINT 3331 13.52908269363856 22.196464052818
3339 POINT 3332 13.52075711029057 23.07307462590749
3340 POINT 3333 13.79176001498042 22.63195101028575
3341 POINT 3334 12.99841005278091 23.07655233280262
3342 POINT 3335 12.74043268848876 22.63704760057591
3343 POINT 3336 12.47951754845101 22.19914445872682
3344 POINT 3337 16.76214594331712 26.16105609261419
3345 POINT 3338 16.616482945813 25.71543906542623
3346 POINT 3339 16.07300726146418 25.70885169527617
3347 POINT 3340 15.7756762466737 26.15848944588978
3348 POINT 3341 16.01909527733369 26.61668049315067
3349 POINT 3342 15.51800947989736 26.61966307077576
3350 POINT 3343 16.51179666393882 26.6239501026226
3351 POINT 3344 18.1251910242728 22.66390416293884
3352 POINT 3345 18.38730066575757 22.23230127821533
3353 POINT 3346 18.87782298075228 22.24485624002787
3354 POINT 3347 18.30109750604809 23.11887529175939
3355 POINT 3348 18.75407461365194 23.14583948729189
3356 POINT 3349 19.25336766894756 22.67096916601431
3357 POINT 3350 19.18732501041783 23.0950223359802
3358 POINT 3351 19.76177108442964 23.07772703249995
3359 POINT 3352 13.22907297795537 11.13290668839839
3360 POINT 3353 12.97061925836632 10.68124856516747
3361 POINT 3354 12.46766895126554 10.67227901173746
3362 POINT 3355 12.97143653644138 11.58072012917699
3363 POINT 3356 13.4844546615271 11.58282112395052
3364 POINT 3357 12.45912907450942 11.5804496180641
3365 POINT 3358 12.71451075808115 12.03036405361623
3366 POINT 3359 -7.335668197682937 22.20031115705586
3367 POINT 3360 -7.590411055385765 22.64051999376785
3368 POINT 3361 -6.827537248934346 22.20035519110679
3369 POINT 3362 -6.573651574572926 22.64022353991485
3370 POINT 3363 -6.319913095875537 22.20029198565057
3371 POINT 3364 -5.813247200796855 22.20059393150383
3372 POINT 3365 -5.306832057388836 22.20081300727318
3373 POINT 3366 -6.067132875158276 21.76072558269578
3374 POINT 3367 -5.81454204920424 21.32106756251621
3375 POINT 3368 -5.309100236308474 21.32171516131793
3376 POINT 3369 -9.89088523942082 17.79886411983713
3377 POINT 3370 -10.14857204283547 18.23918999542934
3378 POINT 3371 -9.377722815740299 17.79898156357048
3379 POINT 3372 -9.121932143058153 18.23935021686822
3380 POINT 3373 -9.377649624192905 18.6793738168293
3381 POINT 3374 -10.66209369019408 15.59357842031993
3382 POINT 3375 -10.4047259333652 16.03513252143312
3383 POINT 3376 -9.890767799768657 16.03514342813541
3384 POINT 3377 -15.5551069052719 19.54892678731335
3385 POINT 3378 -15.97007772814454 19.09864623920131
3386 POINT 3379 -16.11086108382489 19.54894292435325
3387 POINT 3380 -15.08631065964352 19.54931079809318
3388 POINT 3381 -15.22709401532387 19.99960748324512
3389 POINT 3382 -11.95485738736122 20.44085699368801
3390 POINT 3383 -12.47133467813871 20.44086208506123
3391 POINT 3384 -12.2071089926688 20.00000805384752
3392 POINT 3385 -12.48035172922288 21.32047778514489
3393 POINT 3386 -11.95880860940138 21.32105241155066
3394 POINT 3387 -12.22007726579314 21.75981917179383
3395 POINT 3388 -11.69942419611676 20.88138349347376
3396 POINT 3389 -17.47644814565474 19.54717789841071
3397 POINT 3390 -17.94988903481506 19.54747252881383
3398 POINT 3391 -17.76408314933547 19.99954839206847
3399 POINT 3392 -18.23422300064733 19.09467791728322
3400 POINT 3393 -17.87676913679358 18.65944248023681
3401 POINT 3394 -17.09404296891593 19.09688220569864
3402 POINT 3395 -16.90823708343633 19.54895806895328
3403 POINT 3396 -19.76177103771798 23.07772732892936
3404 POINT 3397 -19.25336756698695 22.67096898371729
3405 POINT 3398 -19.18732490419377 23.0950221392252
3406 POINT 3399 -19.4477189002975 22.22685220009963
3407 POINT 3400 -19.87859220361732 22.20035725566065
3408 POINT 3401 -19.25792784453962 23.55188835030948
3409 POINT 3402 -18.75407461812375 23.14583867813167
3410 POINT 3403 -19.16298007020004 24.02058528839067
3411 POINT 3404 -19.60183463285162 23.97090406750409
3412 POINT 3405 -17.87637073668006 21.33989279033893
3413 POINT 3406 -17.34486803521384 21.33058393944672
3414 POINT 3407 -17.55962675727944 21.76632022241122
3415 POINT 3408 -17.09376266137075 20.90344544375881
3416 POINT 3409 -16.77701868197013 21.3298728758311
3417 POINT 3410 -17.4761271373948 20.45170513451989
3418 POINT 3411 -16.90827778415109 20.45099407090427
3419 POINT 3412 -17.94956802655513 20.45199976492301
3420 POINT 3413 -18.23371022509465 20.90481762695371
3421 POINT 3414 -15.02942422141325 28.42914654430462
3422 POINT 3415 -14.7671126385203 27.97953118420565
3423 POINT 3416 -15.52045268491218 27.53143128093732
3424 POINT 3417 -15.78702266040701 27.9945786571865
3425 POINT 3418 -15.54890495492492 28.43938079825739
3426 POINT 3419 -15.01758100424557 27.52935438202635
3427 POINT 3420 -14.50521687329288 27.52387632798913
3428 POINT 3421 -9.904430672806125 28.40707065619491
3429 POINT 3422 -10.41689547651911 28.41240707877134
3430 POINT 3423 -10.66929721457722 27.96611203768271
3431 POINT 3424 -10.92866096154303 28.41597287549923
3432 POINT 3425 -9.645779006227713 27.95898668411711
3433 POINT 3426 -9.392677949480536 28.4035110993572
3434 POINT 3427 -10.41083773720197 27.51739624213824
3435 POINT 3428 -9.899141965330045 27.51510256681794
3436 POINT 3429 -10.15244797297871 27.06995256800136
3437 POINT 3430 -12.99581434484171 20.4418189497832
3438 POINT 3431 -13.51014574115279 20.441823572053
3439 POINT 3432 -13.23791767975737 20.00001776749054
3440 POINT 3433 -13.00483139592588 21.32143464986686
3441 POINT 3434 -13.53137837642367 21.32075092653462
3442 POINT 3435 -13.26816736611243 21.75856082205582
3443 POINT 3436 -12.74356273953413 20.88266788962369
3444 POINT 3437 -13.79945752002789 20.88653779646463
3445 POINT 3438 -14.06279349021444 21.32366396865359
3446 POINT 3439 -13.00253550757575 22.19714766326392
3447 POINT 3440 -13.52908248807354 22.19646393993168
3448 POINT 3441 -16.2347869870319 21.3294814436242
3449 POINT 3442 -16.48589236087499 21.75661993931211
3450 POINT 3443 -12.19975810951217 27.07290291179299
3451 POINT 3444 -12.4571711074429 27.52124904151294
3452 POINT 3445 -12.9694803662368 27.52097783922964
3453 POINT 3446 -12.45674394638519 26.62593741289694
3454 POINT 3447 -13.99578690627322 27.52331351175184
3455 POINT 3448 -14.24625527199849 27.07313670957253
3456 POINT 3449 -13.48182261231196 27.52097247150653
3457 POINT 3450 -13.22448305890368 27.07257926105835
3458 POINT 3451 -16.51179676394965 26.62394911594787
3459 POINT 3452 -16.76214593621621 26.16105509049696
3460 POINT 3453 -16.01909528016721 26.61667970802645
3461 POINT 3454 -15.77567611970079 26.15848881210691
3462 POINT 3455 -16.6164827210978 25.71543822133669
3463 POINT 3456 -17.10186669733096 25.72098721941252
3464 POINT 3457 -14.2878073219469 25.27536783225349
3465 POINT 3458 -14.55271790511985 24.83011743787473
3466 POINT 3459 -8.872303159269968 26.61976418580748
3467 POINT 3460 -9.383403717149058 26.62219230704299
3468 POINT 3461 -8.615525103211919 26.17503638397946
3469 POINT 3462 -8.361773029290564 26.61807484838205
3470 POINT 3463 -6.072689306874938 27.05391647376855
3471 POINT 3464 -5.820129147476668 27.49712192171329
3472 POINT 3465 -6.32809711573065 27.4985865281558
3473 POINT 3466 -8.108499361881071 27.06075324214968
3474 POINT 3467 -7.851721305823022 26.61602544032166
3475 POINT 3468 -7.342393531093229 26.61452723488857
3476 POINT 3469 -7.595667198502723 26.17184884112093
3477 POINT 3470 -7.089552456771225 27.05704245715018
3478 POINT 3471 -6.833498349450926 26.61286585794945
3479 POINT 3472 -8.86778693118517 24.84742870791405
3480 POINT 3473 -9.124384612345526 25.29019441464502
3481 POINT 3474 -9.37915421259267 24.8485055322633
3482 POINT 3475 -8.869536282064676 25.73292165585033
3483 POINT 3476 -9.380903563472174 25.73399848019958
3484 POINT 3477 -8.359006152085271 25.7312323184249
3485 POINT 3478 -8.357038518711398 24.84664678923989
3486 POINT 3479 -10.66208748767119 24.40642264890459
3487 POINT 3480 -10.40472005439022 23.96486714250717
3488 POINT 3481 -9.890762707770147 23.96485666497387
3489 POINT 3482 -10.14796982013292 23.52313091779618
3490 POINT 3483 -9.635034736729882 24.4061663576086
3491 POINT 3484 -9.891632417890238 24.84893206433957
3492 POINT 3485 -10.91783258828627 25.73632062930466
3493 POINT 3486 -11.1763927535566 25.29161367806042
3494 POINT 3487 -10.91909643785067 24.8491689242055
3495 POINT 3488 -10.40452189220693 24.84933916498578
3496 POINT 3489 -10.14864136806972 25.29167833964048
3497 POINT 3490 -11.74873160124686 31.58187192779659
3498 POINT 3491 -11.49828734891701 32.00603316279637
3499 POINT 3492 -11.47479874651534 31.12093311396852
3500 POINT 3493 -11.99907724384035 31.14306172093513
3501 POINT 3494 -8.903187047443012 31.09050659247998
3502 POINT 3495 -8.391529066814227 31.08429727879821
3503 POINT 3496 -9.153056137445173 30.63961932778357
3504 POINT 3497 -9.398187070199079 29.29658412996691
3505 POINT 3498 -9.657774617851228 29.74665905739351
3506 POINT 3499 -8.893751625915996 30.18945879004375
3507 POINT 3500 -8.634397568876253 29.73884359430083
3508 POINT 3501 -8.383104670453044 30.18672919584575
3509 POINT 3502 -9.404349035868384 30.19173372623865
3510 POINT 3503 -9.917079129380406 30.19681959513333
3511 POINT 3504 -11.43712146196009 23.08138062463141
3512 POINT 3505 -10.92066341043863 23.08206159128155
3513 POINT 3506 -10.92128239036736 22.20090962423238
3514 POINT 3507 -11.43896690004795 22.20068779271661
3515 POINT 3508 -10.40485749578829 23.08231672552517
3516 POINT 3509 -9.890900149168209 23.08230624799187
3517 POINT 3510 -9.634625983220046 22.64137541680352
3518 POINT 3511 -10.66359373947392 22.64123692147724
3519 POINT 3512 -10.40547647571701 22.201164758476
3520 POINT 3513 -10.66371310846123 20.88088246173954
3521 POINT 3514 -10.40367257665969 20.44035401979257
3522 POINT 3515 -10.40541301206526 21.32077321133221
3523 POINT 3516 -9.8901701579261 20.44035371858478
3524 POINT 3517 -10.14618183706572 19.99999877694407
3525 POINT 3518 -9.634491342600295 20.88059096244695
3526 POINT 3519 -6.573652952599984 17.35977611294056
3527 POINT 3520 -6.827538661488333 17.79964423723647
3528 POINT 3521 -7.335669920285115 17.79968797825121
3529 POINT 3522 -6.827402180000886 16.91959841386031
3530 POINT 3523 -7.335858102257347 16.9191701018657
3531 POINT 3524 -7.590413254981577 17.35947930332449
3532 POINT 3525 -3.091725092272973 19.99999995889544
3533 POINT 3526 -2.823024423095185 20.44465006103595
3534 POINT 3527 -2.82302446192895 19.55534988331524
3535 POINT 3528 -2.318125036326323 19.55191484953968
3536 POINT 3529 -2.134926559547786 19.9999999853544
3537 POINT 3530 -2.359753808315156 39.37214496437061
3538 POINT 3531 -2.220681201259319 39.87633202954547
3539 POINT 3532 -2.853428424545745 39.31281750216315
3540 POINT 3533 -3.322774736378872 39.23779911173357
3541 POINT 3534 -3.813302945216087 39.15997614437607
3542 POINT 3535 -4.091233566165744 39.57707352541702
3543 POINT 3536 -4.278277613788639 39.06280534020281
3544 POINT 3537 -3.156650010923889 39.74931797899575
3545 POINT 3538 -3.033012362958341 30.6117523199572
3546 POINT 3539 -2.778186554918571 31.06104208632408
3547 POINT 3540 -2.27138793410801 31.06354594879045
3548 POINT 3541 -2.523911917777087 31.51196219615595
3549 POINT 3542 -2.019774925652819 30.61385000253146
3550 POINT 3543 -1.765500288511335 31.06477011236333
3551 POINT 3544 -2.779450402058304 30.16459938073862
3552 POINT 3545 -3.286800193767151 30.16372586173725
3553 POINT 3546 -3.794281249655442 30.16411092827807
3554 POINT 3547 -3.540719288755405 29.71695798905948
3555 POINT 3548 -4.303205754685972 30.16454776931187
3556 POINT 3549 -3.027617960595887 32.41056575188199
3557 POINT 3550 -2.775003207540966 31.96212546436659
3558 POINT 3551 -2.268204586730404 31.96462932683296
3559 POINT 3552 -2.013562100740824 32.41916396507942
3560 POINT 3553 -1.762470810976946 31.96900069686879
3561 POINT 3554 -2.77002899331762 32.86450527990432
3562 POINT 3555 -3.278351077419224 32.86027843674272
3563 POINT 3556 -2.262552160354756 32.87152776282665
3564 POINT 3557 -2.513285277178094 33.32124044768738
3565 POINT 3558 -1.512133134743765 31.51667171366356
3566 POINT 3559 -1.257490648754185 31.97120635191003
3567 POINT 3560 -0.7545339478042523 31.97468651214141
3568 POINT 3561 -0.5035764459107245 31.51991166117807
3569 POINT 3562 -0.7557251001955001 31.06778971354904
3570 POINT 3563 -1.260520126288574 31.06697576740457
3571 POINT 3564 -1.997791297947086 34.24333855669495
3572 POINT 3565 -2.25349817785614 33.77894139916177
3573 POINT 3566 -2.760975010819003 33.77191891623943
3574 POINT 3567 -3.011955447586298 34.2203681171806
3575 POINT 3568 -3.271742546908253 33.76266716570622
3576 POINT 3569 -2.748277227128552 34.67648604901853
3577 POINT 3570 -3.259044763217802 34.66723429848531
3578 POINT 3571 -2.242930952922364 34.69789100853247
3579 POINT 3572 -10.99496194121145 34.7558609147853
3580 POINT 3573 -11.47394482127665 34.67289318116666
3581 POINT 3574 -10.72127300001099 35.18620741077456
3582 POINT 3575 -10.447732383235 34.72460493961236
3583 POINT 3576 -11.39311640574461 35.78402816783584
3584 POINT 3577 -11.76362390176834 35.51004748537068
3585 POINT 3578 -11.89139445142899 36.08088113093766
3586 POINT 3579 -10.945244583311 30.21194894494906
3587 POINT 3580 -11.20910920668068 30.66888033631249
3588 POINT 3581 -10.95876356408719 31.10769054317395
3589 POINT 3582 -10.43863904361896 31.09908334789622
3590 POINT 3583 -10.70432858345361 31.55113612555225
3591 POINT 3584 -10.17836378582505 30.6487660147482
3592 POINT 3585 -10.43178936780789 30.20369134590305
3593 POINT 3586 -12.20772792247103 28.87130307528364
3594 POINT 3587 -11.95934239545081 29.3298295299858
3595 POINT 3588 -11.44840757865733 29.32083401178019
3596 POINT 3589 -11.18782961921505 28.86783790788402
3597 POINT 3590 -11.95080070850122 28.4216606767123
3598 POINT 3591 -11.44023135727316 28.42154286679538
3599 POINT 3592 -12.78538354685579 31.63539654824448
3600 POINT 3593 -13.08141318168281 32.09785280557013
3601 POINT 3594 -13.69337999756491 33.05046757946367
3602 POINT 3595 -14.20287042370327 33.22861936316023
3603 POINT 3596 -13.9643465646559 33.62431331178948
3604 POINT 3597 -14.50371229213761 32.89870088682812
3605 POINT 3598 -14.7783619362536 33.47590510864688
3606 POINT 3599 -14.33939456995485 32.47590094466933
3607 POINT 3600 -13.3984866124191 32.59184334012446
3608 POINT 3601 -13.61483042587599 32.16078309628009
3609 POINT 3602 -12.5094486201497 31.15885540730061
3610 POINT 3603 -12.23551576541817 30.69791659347253
3611 POINT 3604 -12.48258595884198 30.24998072031472
3612 POINT 3605 -13.02182206843361 31.19025142078188
3613 POINT 3606 -13.23628259023528 30.6875215539166
3614 POINT 3607 -13.51221751694137 31.16406269486048
3615 POINT 3608 -12.98553667078657 30.24101005064971
3616 POINT 3609 -9.935933060425999 31.99895783017763
3617 POINT 3610 -9.425788712629927 31.99952776172602
3618 POINT 3611 -9.175113162335302 32.44721817562974
3619 POINT 3612 -9.433884308094877 32.90351985240996
3620 POINT 3613 -9.947998399553743 32.91366946294919
3621 POINT 3614 -9.694220649782007 33.36180258527841
3622 POINT 3615 -5.845709714652145 32.8543394931615
3623 POINT 3616 -6.35943259227712 32.85785448154385
3624 POINT 3617 -6.099796641324188 32.4084027857334
3625 POINT 3618 -6.620526367917938 33.30931460020675
3626 POINT 3619 -6.874613294589981 32.86337789277866
3627 POINT 3620 -5.843830266875138 33.74469076224041
3628 POINT 3621 -6.366502908847091 33.75556165131462
3629 POINT 3622 -6.104987510117153 34.19646122458308
3630 POINT 3623 -6.881683611159954 33.76108506254942
3631 POINT 3624 -8.152299853281146 32.43384481530836
3632 POINT 3625 -7.904575766385607 32.88643722911405
3633 POINT 3626 -7.38887125499455 32.87173901043978
3634 POINT 3627 -7.651411581621856 33.32953623011583
3635 POINT 3628 -7.891317422946985 31.97994508772288
3636 POINT 3629 -7.127777479353732 32.42027889177689
3637 POINT 3630 5.815416780370211 25.7254507508302
3638 POINT 3631 6.068349777660536 25.28383032121751
3639 POINT 3632 6.322914497966334 25.72626412073013
3640 POINT 3633 5.813813981238598 24.84216926607556
3641 POINT 3634 5.054251193044102 25.28243436294704
3642 POINT 3635 5.306981751859498 24.8417834592201
3643 POINT 3636 5.559943673033683 24.40093577397807
3644 POINT 3637 6.584305206584972 27.94375248790075
3645 POINT 3638 6.331860450220269 28.38790682772228
3646 POINT 3639 6.840628663734527 28.38986729253429
3647 POINT 3640 6.328097160904627 27.49858657198942
3648 POINT 3641 5.31221078469278 27.49556469000557
3649 POINT 3642 5.057585437902588 27.05131477146023
3650 POINT 3643 5.817351437794507 26.61016822842614
3651 POINT 3644 6.072689351825773 27.05391651369978
3652 POINT 3645 6.325319414707275 26.61163283561645
3653 POINT 3646 5.82012918399186 27.49712196479911
3654 POINT 3647 5.567618593771634 27.9402347482952
3655 POINT 3648 4.047052787592788 28.82584698915801
3656 POINT 3649 4.29983719277504 28.38154452099692
3657 POINT 3650 4.807024232846825 28.38271374491336
3658 POINT 3651 4.301274310468107 29.2720465985073
3659 POINT 3652 4.809682020990673 29.27320084424044
3660 POINT 3653 4.549022188976916 26.16510838289133
3661 POINT 3654 4.802971287585841 26.60801534827591
3662 POINT 3655 4.296500402283245 26.6072706710264
3663 POINT 3656 5.310107224596258 26.60915248332515
3664 POINT 3657 5.56273728747776 26.16686880524183
3665 POINT 3658 5.308172567171963 25.72443500572921
3666 POINT 3659 4.801571700151651 25.72385241735866
3667 POINT 3660 3.790057682711869 26.60644965824722
3668 POINT 3661 4.044006781320794 27.04935662363181
3669 POINT 3662 3.284985274934477 27.49173672429433
3670 POINT 3663 3.031723737372097 27.04803779814592
3671 POINT 3664 3.284192748221195 26.60594750772882
3672 POINT 3665 3.791445088039201 27.4924373182607
3673 POINT 3666 7.595667276623683 26.1718488829917
3674 POINT 3667 7.339729660651949 25.72854265913015
3675 POINT 3668 6.831093491921173 25.72749718220235
3676 POINT 3669 6.578160494630848 26.16911761181503
3677 POINT 3670 6.833498408662114 26.61286589708867
3678 POINT 3671 7.342393603714925 26.61452727784253
3679 POINT 3672 7.851721391752919 26.61602548754698
3680 POINT 3673 10.16379461741962 28.8569316742142
3681 POINT 3674 9.910917354739734 29.30167017583803
3682 POINT 3675 10.42338218073125 29.30700664681063
3683 POINT 3676 9.398187236685452 29.296584259916
3684 POINT 3677 11.1763929467876 25.29161378016803
3685 POINT 3678 11.43269470633229 25.73584899017798
3686 POINT 3679 11.17575978189087 27.0727338951912
3687 POINT 3680 11.43421927431302 27.52144974007221
3688 POINT 3681 10.92260343334439 27.52096222835202
3689 POINT 3682 11.43075507899234 26.62688867729366
3690 POINT 3683 11.95934260436991 29.32983015861389
3691 POINT 3684 12.46767046560084 29.32772545608889
3692 POINT 3685 12.20772811265096 28.87130363239207
3693 POINT 3686 12.48258604719192 30.24998189542344
3694 POINT 3687 11.97221474555926 30.23418783961753
3695 POINT 3688 12.23551583543139 30.69791775273026
3696 POINT 3689 12.9694805256095 27.52097823699379
3697 POINT 3690 13.48182274384587 27.52097291958309
3698 POINT 3691 13.74078426771563 27.97171267290139
3699 POINT 3692 13.99578697125026 27.52331403777258
3700 POINT 3693 -0.2530784093217016 18.66225344208705
3701 POINT 3694 0.2530784208222577 18.66225344183592
3702 POINT 3695 6.030645871568652e-09 18.22651105844045
3703 POINT 3696 0.5081910055071862 19.09773258580186
3704 POINT 3697 -0.5081909940579249 19.09773258612098
3705 POINT 3698 0.3913327604803437 19.54899791355816
3706 POINT 3699 2.734955073611239e-09 19.54899791274126
3707 POINT 3700 -0.3913327526621249 19.54899791355815
3708 POINT 3701 3.794281045691874 9.835889181209401
3709 POINT 3702 3.286800036582792 9.836274197162457
3710 POINT 3703 2.229340800261039 4.38442472316282
3711 POINT 3704 1.730980420814213 4.354398366661153
3712 POINT 3705 1.975648040643678 3.904985248730975
3713 POINT 3706 5.253303014360708 1.128293718388772
3714 POINT 3707 5.02628530891481 0.6418891392761246
3715 POINT 3708 2.255436532179687 1.571943194814049
3716 POINT 3709 1.982157162102268 2.023904119430414
3717 POINT 3710 2.749111535735891 1.631270413254645
3718 POINT 3711 -1.254058521951619 7.116431779054716
3719 POINT 3712 -0.7511018940799036 7.112951583302987
3720 POINT 3713 -1.503048503853604 6.664068013225982
3721 POINT 3714 -1.997790841279557 5.756661654557217
3722 POINT 3715 -1.739533928644415 5.288390381777326
3723 POINT 3716 -2.242930398731676 5.302109189546279
3724 POINT 3717 -1.241669088051592 5.270356204654476
3725 POINT 3718 -0.9957604298274654 5.733872215635875
3726 POINT 3719 -1.247341652262671 6.199670785960144
3727 POINT 3720 -0.7487077108978402 6.190600154807756
3728 POINT 3721 -1.750101222783229 6.207340074054102
3729 POINT 3722 0.2525804711664861 16.03806627312495
3730 POINT 3723 0.7575089779655068 16.03809741945602
3731 POINT 3724 2.02030624750022 16.47789565447198
3732 POINT 3725 1.768522151534456 16.91607496170236
3733 POINT 3726 1.263131370718908 16.9154812897201
3734 POINT 3727 1.010191697747241 16.47724942348051
3735 POINT 3728 0.7581006050570804 16.91517093599549
3736 POINT 3729 1.767492760883478 16.03853792054329
3737 POINT 3730 1.262539743627335 16.03840777318063
3738 POINT 3731 2.020500917581566 12.9527349076961
3739 POINT 3732 2.27331260158336 12.50912505089398
3740 POINT 3733 2.779144928744407 12.50876122906312
3741 POINT 3734 3.031723754127154 12.95196235014854
3742 POINT 3735 2.778352454165535 13.39455042727942
3743 POINT 3736 2.272957833603747 13.3948329253368
3744 POINT 3737 2.525426876575043 13.8369232187498
3745 POINT 3738 2.777506896019309 15.1594754466739
3746 POINT 3739 2.272346079797352 15.15939314985943
3747 POINT 3740 2.019831152532347 14.71933669397711
3748 POINT 3741 3.030366570726561 14.7190708982712
3749 POINT 3742 2.272480678625036 14.27823797632229
3750 POINT 3743 2.777875299186825 14.27795547826491
3751 POINT 3744 10.93683714441736 10.68473936450384
3752 POINT 3745 10.42338210640577 10.69299645121282
3753 POINT 3746 10.16379499462924 11.14307136444035
3754 POINT 3747 9.91091727032488 10.69833236588283
3755 POINT 3748 10.41689657692929 11.58759618069605
3756 POINT 3749 9.904431740848405 11.59293209536606
3757 POINT 3750 8.383104263115078 9.813271926383957
3758 POINT 3751 8.131409992405931 9.367205411144512
3759 POINT 3752 9.398187257932385 10.70341785754419
3760 POINT 3753 9.657774369708918 10.25334294431667
3761 POINT 3754 8.893751225144806 9.810542586143804
3762 POINT 3755 8.634397395286692 10.26115777621818
3763 POINT 3756 8.886484135943755 10.70714689312742
3764 POINT 3757 9.13962703655972 11.15213631469359
3765 POINT 3758 9.404348514274115 9.808267818781912
3766 POINT 3759 9.153055382102501 9.360381968947689
3767 POINT 3760 8.872305329160442 13.38023764365699
3768 POINT 3761 8.361774760572246 13.38192662649333
3769 POINT 3762 8.108500687104918 12.93924814391208
3770 POINT 3763 7.851722750806532 13.38397571670315
3771 POINT 3764 9.129653596289845 12.93477140237956
3772 POINT 3765 9.383406228579656 13.37780999233429
3773 POINT 3766 8.365440776821156 12.49364881518358
3774 POINT 3767 8.880975687566195 11.60022015801457
3775 POINT 3768 8.623178158666493 12.04733677120861
3776 POINT 3769 8.876290078715968 12.4908870097273
3777 POINT 3770 9.387390978135182 12.48845935840459
3778 POINT 3771 9.645780391854883 12.04101593868705
3779 POINT 3772 9.392678809554825 11.59649112243135
3780 POINT 3773 7.336521171883755 16.03802297080912
3781 POINT 3774 6.828065241427138 16.03845128541167
3782 POINT 3775 7.5918329762552 15.59662152541176
3783 POINT 3776 7.845750620519943 16.03722595032059
3784 POINT 3777 7.337862589465587 15.15534235318604
3785 POINT 3778 5.057585641163165 12.94868558387678
3786 POINT 3779 5.310107534158264 13.39084788872668
3787 POINT 3780 5.817351898032172 13.38983223877548
3788 POINT 3781 6.07268977213729 12.94608405296639
3789 POINT 3782 6.325320010388582 13.38836776247147
3790 POINT 3783 5.312210950489913 12.50443571161929
3791 POINT 3784 5.820129413724779 12.50287853813417
3792 POINT 3785 7.339731120788066 14.27145814743096
3793 POINT 3786 7.595668707268915 13.82815216683726
3794 POINT 3787 6.578161363273717 13.83088304133535
3795 POINT 3788 6.833499237378835 13.38713485552626
3796 POINT 3789 7.342394633801588 13.38547368425602
3797 POINT 3790 0.252580463343477 23.08531079540609
3798 POINT 3791 8.162767350938793e-09 23.52306095911839
3799 POINT 3792 -0.2525804483660444 23.08531079452379
3800 POINT 3793 0.7575089608641339 23.96190261703586
3801 POINT 3794 1.010191668996723 23.52275060745893
3802 POINT 3795 0.7581005854889762 23.08482908796231
3803 POINT 3796 0.2525804650598689 23.96193376174162
3804 POINT 3797 -0.2525804466496525 23.96193376085932
3805 POINT 3798 0.5049285060517139 24.40077541877679
3806 POINT 3799 -0.5055201152249069 22.64707892226741
3807 POINT 3800 -0.7581005704056165 23.08482908597971
3808 POINT 3801 -2.280691500226466 21.33225925503491
3809 POINT 3802 -2.53596148453538 20.89273520120051
3810 POINT 3803 -2.318125017725038 20.44808511706579
3811 POINT 3804 -1.847863620987981 20.44808512551896
3812 POINT 3805 -1.523722029333108 20.89935045509462
3813 POINT 3806 5.812596363012457 16.91987591856731
3814 POINT 3807 6.066345594955665 16.47969821633841
3815 POINT 3808 5.052976709870697 16.47984331586753
3816 POINT 3809 5.306138118529179 16.03968129951453
3817 POINT 3810 3.790935938593665 22.20328485170038
3818 POINT 3811 3.537066694466712 22.64267534247436
3819 POINT 3812 3.788945299949968 23.08133297666114
3820 POINT 3813 4.294456576555887 23.08098941943979
3821 POINT 3814 5.814542622740053 18.67893193273223
3822 POINT 3815 6.321208749925488 18.67923371051273
3823 POINT 3816 5.56317568611094 19.11824430305507
3824 POINT 3817 5.309100721439222 18.67828449587171
3825 POINT 3818 5.55961311789328 17.35962041953518
3826 POINT 3819 5.306832701253025 17.79918676761919
3827 POINT 3820 5.306180989556889 16.91965690872165
3828 POINT 3821 4.547661231803737 17.3588241803909
3829 POINT 3822 4.799993464751521 16.91958781683539
3830 POINT 3823 4.801296726707842 17.79849881202905
3831 POINT 3824 4.295760214073866 17.79792158273044
3832 POINT 3825 5.054931683523153 18.23828416995873
3833 POINT 3826 4.80356474689404 18.67759654028158
3834 POINT 3827 4.299173611489742 18.6763503095416
3835 POINT 3828 3.290304316514962 18.67294152057774
3836 POINT 3829 3.035034337010901 18.23341748971889
3837 POINT 3830 3.285878391294609 17.79579279452859
3838 POINT 3831 3.790936184735975 17.79671510214655
3839 POINT 3832 4.04457167964008 18.2363897337847
3840 POINT 3833 3.794349582151851 18.67514382895771
3841 POINT 3834 10.40547659015908 22.20116479457716
3842 POINT 3835 10.92128251969344 22.20090966781737
3843 POINT 3836 10.14796994537765 23.52313096986383
3844 POINT 3837 9.8907628324997 23.96485671831825
3845 POINT 3838 10.40472019475341 23.96486720377927
3846 POINT 3839 9.890900260175624 23.08230629000788
3847 POINT 3840 9.378284610504384 23.96443017775849
3848 POINT 3841 9.377738405713401 23.08218964573298
3849 POINT 3842 9.634626082765084 22.64137545133806
3850 POINT 3843 8.099972523597952 21.7604283165895
3851 POINT 3844 7.844935974709012 21.32035791039074
3852 POINT 3845 5.052976083273045 23.52015672445931
3853 POINT 3846 5.306137433620915 23.96031879840885
3854 POINT 3847 5.812969663000015 23.9607046052643
3855 POINT 3848 8.610566754219654 19.11957081809886
3856 POINT 3849 8.86560419797468 18.67950029477104
3857 POINT 3850 8.354849270149012 18.67954721468524
3858 POINT 3851 4.553342440596749 20.88364911748843
3859 POINT 3852 4.813437754880869 20.4412013335515
3860 POINT 3853 7.59041331172436 17.35947928465035
3861 POINT 3854 7.84499397090196 16.91893659852759
3862 POINT 3855 -19.25787296088819 16.44788827908155
3863 POINT 3856 -19.60184782149814 16.02916106451099
3864 POINT 3857 -19.1873871451938 16.90476537360675
3865 POINT 3858 -19.76179636729207 16.92243533655163
3866 POINT 3859 -18.75405232838112 16.85355871501342
3867 POINT 3860 -17.47351228606856 13.33558852399519
3868 POINT 3861 -16.99713742559343 13.37046042966367
3869 POINT 3862 -17.69351481734877 13.78071241680643
3870 POINT 3863 -17.67256727113895 14.23260684746697
3871 POINT 3864 -17.10180880051252 14.27897349996412
3872 POINT 3865 -17.52690194145971 14.67823884343126
3873 POINT 3866 -18.11860795829596 14.17997776027357
3874 POINT 3867 -8.872305209312021 13.38023770553157
3875 POINT 3868 -8.615527284439597 13.82496527042976
3876 POINT 3869 -9.383406088516729 13.37781006740056
3877 POINT 3870 -3.29030430028144 18.67294152375674
3878 POINT 3871 -3.794349564136366 18.67514383248151
3879 POINT 3872 -4.044571659990828 18.23638973901306
3880 POINT 3873 -3.790936165766305 17.79671510855067
3881 POINT 3874 -4.295760192767313 17.79792158977951
3882 POINT 3875 -3.035034321141562 18.23341749366453
3883 POINT 3876 -4.801296702384416 17.79849882003976
3884 POINT 3877 -4.547661208159893 17.35882418957737
3885 POINT 3878 -5.306180959737993 16.91965692151171
3886 POINT 3879 -5.55961308673966 17.35962043087595
3887 POINT 3880 -5.306832673423715 17.79918677637247
3888 POINT 3881 -4.799993438895712 16.91958782835436
3889 POINT 3882 -4.294456929278608 16.9190105980941
3890 POINT 3883 -2.272576526046017 16.03887380690432
3891 POINT 3884 -2.777737341802472 16.0389561054949
3892 POINT 3885 -2.524923853949907 15.59959837248141
3893 POINT 3886 -1.009801502771103 14.71943838905496
3894 POINT 3887 -1.262295091084871 15.15932946921788
3895 POINT 3888 -1.767248108404131 15.15945961891492
3896 POINT 3889 -1.514810020874192 15.59938592419379
3897 POINT 3890 -3.788433924444957 15.15930010017922
3898 POINT 3891 -3.282944342657759 15.15927612630229
3899 POINT 3892 -3.53557425149356 15.59970464494893
3900 POINT 3893 -7.339731052101191 14.27145818376952
3901 POINT 3894 -7.595668629168774 13.82815220873106
3902 POINT 3895 -7.849059155801069 14.26996022049591
3903 POINT 3896 -7.342394561194965 13.3854737272261
3904 POINT 3897 -7.084485066391316 14.7143115191922
3905 POINT 3898 -6.829226012364133 15.15638770751324
3906 POINT 3899 -6.321312708705147 15.15701776202244
3907 POINT 3900 -6.068350603934552 14.71617011524867
3908 POINT 3901 -6.322915322587308 14.27373641192795
3909 POINT 3902 -5.815417372472714 14.27454968432659
3910 POINT 3903 -6.831094539759021 14.27250350742734
3911 POINT 3904 -6.578161308297183 13.83088307650527
3912 POINT 3905 -8.866490968805563 16.03593620740154
3913 POINT 3906 -8.611811380443392 15.59504271031803
3914 POINT 3907 -9.378288849377203 16.03556985539014
3915 POINT 3908 -9.6350393648364 15.59383445480634
3916 POINT 3909 -9.379158137016026 15.15149576728833
3917 POINT 3910 -9.89163708740748 15.1510693400336
3918 POINT 3911 -15.8358398935749 10.22173585196274
3919 POINT 3912 -15.57327200390477 9.802417738572654
3920 POINT 3913 -15.56201444033999 10.67148502492812
3921 POINT 3914 -15.03253570609934 9.806583202382573
3922 POINT 3915 -14.77952317432621 10.24189580191657
3923 POINT 3916 9.425787409990559 8.000472836505047
3924 POINT 3917 9.674058285545414 8.456902013814751
3925 POINT 3918 8.913238706756516 8.008641634917387
3926 POINT 3919 9.413783458670364 8.907219666364485
3927 POINT 3920 8.903186169541055 8.909494433726376
3928 POINT 3921 8.934155614066498 6.185727604037459
3929 POINT 3922 9.185518368839453 5.729430618608695
3930 POINT 3923 8.426271183269629 5.29029227071893
3931 POINT 3924 8.171917178443586 5.749542014684138
3932 POINT 3925 7.909982677729378 5.316726387461308
3933 POINT 3926 7.65715073777133 4.866671726394044
3934 POINT 3927 7.405022267322629 4.401754646811489
3935 POINT 3928 7.912208212106719 4.392559563913546
3936 POINT 3929 7.402796732945287 5.325921470359251
3937 POINT 3930 8.404914415163201 4.401060889634398
3938 POINT 3931 8.152785944714498 3.936143810051844
3939 POINT 3932 8.395983975566867 3.439639257034445
3940 POINT 3933 7.903277772510386 3.431137931313593
3941 POINT 3934 8.859661009169432 3.521793227546019
3942 POINT 3935 9.192238274352787 3.866734673314474
3943 POINT 3936 4.268076247259387 3.565481647629336
3944 POINT 3937 4.016822549239988 3.997412240786614
3945 POINT 3938 3.742622838171702 3.563061153758769
3946 POINT 3939 7.792705379504119 2.62557788257827
3947 POINT 3940 7.793203652127295 2.025645271244315
3948 POINT 3941 7.321623681205077 1.829570466086152
3949 POINT 3942 7.678396273741249 1.532671260083118
3950 POINT 3943 -9.67405808643629 8.456902308458442
3951 POINT 3944 -9.413783282784191 8.907219840486656
3952 POINT 3945 -9.425787263000267 8.000473059513219
3953 POINT 3946 -9.404348331955575 9.808267994664813
3954 POINT 3947 -9.657774187537704 10.2533431194428
3955 POINT 3948 -9.398187091428191 10.70341798750657
3956 POINT 3949 -8.886483995011314 10.70714699997187
3957 POINT 3950 -8.634397277109187 10.26115787334679
3958 POINT 3951 -8.375837072421056 10.70987630924256
3959 POINT 3952 -7.859855983182076 11.60547875629908
3960 POINT 3953 -8.117653499839879 11.15836215444448
3961 POINT 3954 -7.865566781937751 10.71237302781939
3962 POINT 3955 -7.402798620889166 5.325921535058544
3963 POINT 3956 -7.909984549202172 5.316726131062188
3964 POINT 3957 -7.91137279652743 6.215871164881401
3965 POINT 3958 -7.395668297048518 6.230569439935667
3966 POINT 3959 -7.651411014573558 6.670464686753046
3967 POINT 3960 -7.127776753374082 7.579721889218547
3968 POINT 3961 -7.388870581544597 7.128261877982224
3969 POINT 3962 -6.874612686924131 7.136622973043634
3970 POINT 3963 -7.904575081023509 7.113563602927958
3971 POINT 3964 -2.775002874658712 8.037874849929569
3972 POINT 3965 -2.523911656853837 8.48803806266702
3973 POINT 3966 -2.748276461706778 5.323514342820022
3974 POINT 3967 -2.490019549071636 4.855243070040132
3975 POINT 3968 -2.734687480700977 4.405830000443286
3976 POINT 3969 -2.221684119951277 3.449608486395616
3977 POINT 3970 -1.723323855016578 3.419581979977251
3978 POINT 3971 -1.475257769780243 2.932460366680298
3979 POINT 3972 -1.727946415087521 2.471297653398232
3980 POINT 3973 -2.223574359144033 2.516811469853332
3981 POINT 3974 -3.221425371391462 2.620248809612628
3982 POINT 3975 -3.480916638529793 3.091370153630558
3983 POINT 3976 -2.468657119838987 3.007906638484771
3984 POINT 3977 -2.720982349242926 3.493309929661852
3985 POINT 3978 -2.722872588435682 2.560512913119568
3986 POINT 3979 -5.842877759869626 2.614418369465591
3987 POINT 3980 -6.061704181617179 2.125899992841759
3988 POINT 3981 -5.97038887687998 1.577324987897494
3989 POINT 3982 -5.06120498229036 2.210552055587216
3990 POINT 3983 -5.314757330560761 1.807879325032759
3991 POINT 3984 -5.55603059107262 1.449150510867695
3992 POINT 3985 -5.910338424284915 0.8932498958018659
3993 POINT 3986 -5.818442258077686 3.559384883546551
3994 POINT 3987 -6.081231365982387 4.02806702834004
3995 POINT 3988 -5.831279019722861 4.472379399615662
3996 POINT 3989 -5.313338782452499 4.466227623547525
3997 POINT 3990 -5.576017782319205 4.91994190717009
3998 POINT 3991 -6.359431968524975 7.142146372318731
3999 POINT 3992 -6.620525796695491 6.690686361082408
4000 POINT 3993 1.233115817299789 35.66363567026767
4001 POINT 3994 1.486808643266108 35.18419627849168
4002 POINT 3995 0.4944716807918905 35.20892209325812
4003 POINT 3996 0.7430350528777356 34.73871437587108
4004 POINT 3997 1.24166914315593 34.72964380187346
4005 POINT 3998 1.723322487966932 36.58041769429607
4006 POINT 3999 1.47525558328076 37.06753926104606
4007 POINT 4000 1.229221132046703 36.61216257531929
4008 POINT 4001 1.727943080105888 37.52870184484969
4009 POINT 4002 2.223571255475589 37.48318802553167
4010 POINT 4003 2.221683046657149 36.55039137343753
4011 POINT 4004 -6.12911124076021e-07 36.15975594917647
4012 POINT 4005 0.2456022332246583 35.68768488038043
4013 POINT 4006 0.7400741502994709 35.68099311908834
4014 POINT 4007 0.9842463697325569 36.14239845738996
4015 POINT 4008 0.7361794650463853 36.62952002413996
4016 POINT 4009 0.2456016905429583 36.6413100607267
4017 POINT 4010 -3.793978809704677 29.27114346488373
4018 POINT 4011 -3.286497753816385 29.27075839834291
4019 POINT 4012 -4.047052767131356 28.82584690724009
4020 POINT 4013 -4.301274302070375 29.27204649795666
4021 POINT 4014 -1.010043015772705 27.0468834923308
4022 POINT 4015 -1.262608764623798 27.49047222490107
4023 POINT 4016 -1.767930085310411 27.49060023494886
4024 POINT 4017 -1.515420458762666 27.93408208316265
4025 POINT 4018 0.2524349327400771 25.72146687392503
4026 POINT 4019 0.7573603149878654 25.72151113216611
4027 POINT 4020 1.009801512786854 25.28056167560054
4028 POINT 4021 0.7573634246136738 24.84063535787972
4029 POINT 4022 0.2524349288094089 24.84066650258547
4030 POINT 4023 2.777737238018064 23.96104396031738
4031 POINT 4024 2.524923774235408 24.40040170273027
4032 POINT 4025 2.777506791782362 24.84052463209574
4033 POINT 4026 3.535574059218396 24.40029545953312
4034 POINT 4027 3.282925370480001 23.96061617471239
4035 POINT 4028 3.282944215957301 24.84072399033624
4036 POINT 4029 12.20022707000518 35.34109407649751
4037 POINT 4030 11.70510822545789 35.04850824368519
4038 POINT 4031 11.91055210130007 34.50393744856109
4039 POINT 4032 12.60489935123083 35.00986841165744
4040 POINT 4033 12.66773748228985 35.47670596579247
4041 POINT 4034 8.893751753942059 30.18945889408129
4042 POINT 4035 9.153056290168134 30.63961947961057
4043 POINT 4036 8.131410636714342 30.63279563621241
4044 POINT 4037 8.383104759045018 30.18672926891533
4045 POINT 4038 8.634397687045755 29.73884369142445
4046 POINT 4039 12.58774522600974 32.92273845990162
4047 POINT 4040 12.88263711150898 33.38136361259253
4048 POINT 4041 11.99490300572006 33.72244417282177
4049 POINT 4042 11.76196217222862 33.30918283037465
4050 POINT 4043 10.44503879622377 31.98862289521601
4051 POINT 4044 9.935933261738526 31.99895822327177
4052 POINT 4045 10.19676774154491 32.44505172349099
4053 POINT 4046 10.43863927688695 31.09908378942327
4054 POINT 4047 9.923929035406161 31.09221194132288
4055 POINT 4048 12.04127152589021 32.88444301026691
4056 POINT 4049 12.3185949442571 32.49062006753039
4057 POINT 4050 11.23899726008386 32.44352050666546
4058 POINT 4051 11.49281189047597 32.87706443800342
4059 POINT 4052 10.95968790642227 32.8682603267732
4060 POINT 4053 1.262715484017742 28.37904364136764
4061 POINT 4054 1.768036798549242 28.37917166198487
4062 POINT 4055 1.010161265302347 28.82419254739624
4063 POINT 4056 2.021045344488098 28.82414552152322
4064 POINT 4057 1.767940462475327 29.27066494618034
4065 POINT 4058 1.26253538053122 29.27109444816391
4066 POINT 4059 2.770029231935803 32.86450580601395
4067 POINT 4060 2.513285504693407 33.32124089899702
4068 POINT 4061 3.271742772836252 33.76266810178318
4069 POINT 4062 3.531281879770986 33.30800649818775
4070 POINT 4063 3.782262295813676 33.75645595947597
4071 POINT 4064 3.278351258691227 32.86027907795702
4072 POINT 4065 2.760975203039712 33.77191946209709
4073 POINT 4066 3.011955619082402 34.2203689233853
4074 POINT 4067 3.24336847489558 35.56418088173734
4075 POINT 4068 3.51170389869557 35.11435420516057
4076 POINT 4069 3.259044827222107 34.66723526388904
4077 POINT 4070 2.748277257425567 34.67648662420295
4078 POINT 4071 3.775382260352405 34.65823650434292
4079 POINT 4072 2.490020077115392 35.144757594862
4080 POINT 4073 2.734687809839291 35.59417066577944
4081 POINT 4074 2.982689819169599 36.0349985828101
4082 POINT 4075 5.320196103324097 34.6359031807579
4083 POINT 4076 5.838135302791581 34.62975089654809
4084 POINT 4077 5.843829338818099 33.7446915717945
4085 POINT 4078 5.325945325800963 33.74013958043911
4086 POINT 4079 6.104986270073042 34.19646204120262
4087 POINT 4080 6.366501732041227 33.75556204313139
4088 POINT 4081 7.355184469361421 29.28425732715628
4089 POINT 4082 7.097783537365648 28.83658193947715
4090 POINT 4083 7.865566929755092 29.28762815642849
4091 POINT 4084 7.350228293730351 28.39242759965563
4092 POINT 4085 19.44766038638703 17.77297915226804
4093 POINT 4086 19.25342567711544 17.32881418384076
4094 POINT 4087 19.87861805246748 17.79987630487601
4095 POINT 4088 19.7617964066728 16.92243558592404
4096 POINT 4089 18.23422309592939 19.09467776603307
4097 POINT 4090 17.94988909858838 19.54747247390121
4098 POINT 4091 17.87676920727169 18.65944226175127
4099 POINT 4092 17.47644822823684 19.54717784596157
4100 POINT 4093 17.34509995115183 18.66931480712425
4101 POINT 4094 17.09404309109673 19.09688211341927
4102 POINT 4095 14.28781180230033 14.72466403349399
4103 POINT 4096 14.01051623503285 14.27484065136018
4104 POINT 4097 14.53345889310514 14.28002636702044
4105 POINT 4098 14.02979336632444 15.1647422550637
4106 POINT 4099 9.380906978001171 14.26600341154953
4107 POINT 4100 9.12438810215771 14.70980710098454
4108 POINT 4101 15.04265771685345 14.28419049908406
4109 POINT 4102 14.76536214958597 13.83436711695024
4110 POINT 4103 15.51798377903927 13.38033526490094
4111 POINT 4104 15.77563980375512 13.8415064727855
4112 POINT 4105 15.57188627435891 14.28816954061234
4113 POINT 4106 15.0151159829359 13.3824166393444
4114 POINT 4107 14.50591715918759 13.37825250728078
4115 POINT 4108 14.32789030772291 18.24225940568398
4116 POINT 4109 14.06264433374127 18.67628429324169
4117 POINT 4110 14.59588283104642 18.67648157009492
4118 POINT 4111 14.05735903828086 17.80654303626809
4119 POINT 4112 15.97007787533187 19.09864616168911
4120 POINT 4113 15.55510702426619 19.54892674781743
4121 POINT 4114 15.67915324486533 18.67142187799671
4122 POINT 4115 15.13772625968102 18.6705433487333
4123 POINT 4116 14.87248028569938 19.104568236291
4124 POINT 4117 15.08631080741999 19.54931075553736
4125 POINT 4118 16.40287455364234 16.49110362272822
4126 POINT 4119 16.17789332204421 16.93847666340548
4127 POINT 4120 15.63614396207806 16.93957763712053
4128 POINT 4121 16.14372364991884 16.05344993095792
4129 POINT 4122 15.61382912052633 16.05886889307093
4130 POINT 4123 15.35525573754169 16.49958700177147
4131 POINT 4124 15.52045255096381 27.53143212489101
4132 POINT 4125 15.7870223740392 27.99457973843145
4133 POINT 4126 15.02942399137993 28.42914752056209
4134 POINT 4127 14.76711254324515 27.97953196141813
4135 POINT 4128 14.51705994325481 28.42366935023485
4136 POINT 4129 14.50592923991572 26.62175677982754
4137 POINT 4130 14.24625536736449 27.07313717726593
4138 POINT 4131 14.50521689123425 27.52387693058424
4139 POINT 4132 15.01513786829292 26.61758604679623
4140 POINT 4133 15.25855689895291 27.07577709405712
4141 POINT 4134 15.01758093935937 27.52935510091147
4142 POINT 4135 12.9694811665887 12.47903060881283
4143 POINT 4136 12.45717370465674 12.47876009769995
4144 POINT 4137 14.50520651711792 12.4761250777077
4145 POINT 4138 14.7671040812539 12.02046720497029
4146 POINT 4139 13.74078013085571 12.02829134523479
4147 POINT 4140 13.9984165723697 11.58047790445619
4148 POINT 4141 14.51705381061231 11.57633069980357
4149 POINT 4142 11.4484074904361 10.67917014008009
4150 POINT 4143 11.95934178620452 10.67017466538644
4151 POINT 4144 12.20772768780863 11.12870134727384
4152 POINT 4145 11.18783017672887 11.13216622534658
4153 POINT 4146 11.9508019094484 11.57834527171309
4154 POINT 4147 -6.319776468193496 23.08033815128008
4155 POINT 4148 -6.066344452733028 23.52030179118255
4156 POINT 4149 -6.827400621252306 23.08040135673631
4157 POINT 4150 -5.054931155474743 21.76171557577203
4158 POINT 4151 -4.801296232783984 22.20150105449617
4159 POINT 4152 -4.299173338283442 21.32364952911328
4160 POINT 4153 -4.044571390294786 21.76361015107778
4161 POINT 4154 -4.803564411703622 21.32240320854091
4162 POINT 4155 -9.890817652390373 18.67925530533506
4163 POINT 4156 -10.40541205324793 18.6792215753713
4164 POINT 4157 -10.66370535213654 19.1191138197801
4165 POINT 4158 -10.92145974258163 18.67904850987438
4166 POINT 4159 -10.40367095930107 19.55964298171444
4167 POINT 4160 -9.890168540567483 19.55964268050665
4168 POINT 4161 -9.634489634605369 19.11940539677126
4169 POINT 4162 -10.40452722022296 15.15066274552778
4170 POINT 4163 -10.91910259518919 15.1508331382961
4171 POINT 4164 -11.1763986356346 14.70838986864997
4172 POINT 4165 -10.91783739771569 14.26368314942298
4173 POINT 4166 -10.14864599240259 14.70832405800977
4174 POINT 4167 -12.73019529136231 15.59870134525367
4175 POINT 4168 -12.98766621355665 15.15683558657137
4176 POINT 4169 -15.04265746253503 14.28419090907873
4177 POINT 4170 -14.53345861723851 14.28002669541752
4178 POINT 4171 -17.78489628918051 15.09030875190717
4179 POINT 4172 -17.98400083785333 15.51100038825157
4180 POINT 4173 -18.29676496075896 15.05256382727852
4181 POINT 4174 -17.21413781855408 15.13667540440432
4182 POINT 4175 -18.37155338762809 16.42393112019951
4183 POINT 4176 -18.3010675719337 16.8808082147247
4184 POINT 4177 -18.20721907030622 15.96221804176685
4185 POINT 4178 -17.69535039872778 15.99996296639551
4186 POINT 4179 -11.18084802879951 18.23937671254223
4187 POINT 4180 -11.43914132768812 18.67926895695104
4188 POINT 4181 -11.43896743540164 17.79930467995242
4189 POINT 4182 -12.99576621508222 19.55819858351203
4190 POINT 4183 -13.5100976113933 19.55820320578183
4191 POINT 4184 -14.85535659566817 17.374607928817
4192 POINT 4185 -14.59059730877303 17.80674048573657
4193 POINT 4186 -15.12588788049639 17.81032428898499
4194 POINT 4187 -14.57446835462891 16.93461729113196
4195 POINT 4188 -15.10975892635227 16.93820109438039
4196 POINT 4189 -16.50015666545286 20.45264189053479
4197 POINT 4190 -16.08514514186547 20.00088643669584
4198 POINT 4191 -16.11090178453964 20.45097892630424
4199 POINT 4192 -16.88252114147691 20.00090158129587
4200 POINT 4193 -16.50011596473811 19.5506058885838
4201 POINT 4194 -18.66035566784347 24.06457908884339
4202 POINT 4195 -18.99865817957391 24.48245948801812
4203 POINT 4196 -18.88584837729288 24.93009825639208
4204 POINT 4197 -19.39363960589392 24.88740656466259
4205 POINT 4198 -17.82901974500803 22.20723193084345
4206 POINT 4199 -17.29751704354181 22.19792307995124
4207 POINT 4200 -18.12519085452415 22.66390362771543
4208 POINT 4201 -17.42146697630052 23.53377902746666
4209 POINT 4202 -17.69547182462984 24.00000320447274
4210 POINT 4203 -17.19821562645829 23.98500536439521
4211 POINT 4204 -18.2073784758447 24.03761507800751
4212 POINT 4205 -17.98412712600248 24.48884141493606
4213 POINT 4206 -18.37170036647084 23.57574087838007
4214 POINT 4207 -17.74281660287124 23.09380582796382
4215 POINT 4208 -17.24556040469969 23.0788079878863
4216 POINT 4209 -18.30109742612498 23.11887466729579
4217 POINT 4210 -12.74043249554734 22.63704750337856
4218 POINT 4211 -12.47951737358623 22.1991443855027
4219 POINT 4212 -11.95797425376473 22.19971901190847
4220 POINT 4213 -11.69840700784104 22.64001300642548
4221 POINT 4214 -11.95612881567687 23.08041184382327
4222 POINT 4215 -13.79175978718601 22.63195086063527
4223 POINT 4216 -14.05739164572269 22.19336401942717
4224 POINT 4217 -16.69915170518863 23.07149332083817
4225 POINT 4218 -16.17786098319811 23.06167189306724
4226 POINT 4219 -16.40292005613846 23.50895975961821
4227 POINT 4220 -16.20887664909252 22.19021698069621
4228 POINT 4221 -16.75110834403075 22.1906084129031
4229 POINT 4222 -17.02050133175934 22.63152012133533
4230 POINT 4223 -13.99649914138446 26.62119352777317
4231 POINT 4224 -14.50592910840412 26.62175634401045
4232 POINT 4225 -14.76538162860431 26.16564234700188
4233 POINT 4226 -14.53346806546978 25.71999620058877
4234 POINT 4227 -14.0105122342672 25.72518479387579
4235 POINT 4228 -15.04267671628401 25.71582538537957
4236 POINT 4229 -16.66503651825777 23.95642639357603
4237 POINT 4230 -16.14374579626725 23.9466049658051
4238 POINT 4231 -16.93904136658709 24.42265057058211
4239 POINT 4232 -16.68103287029956 24.83472097500758
4240 POINT 4233 -17.21421197850009 24.86329994582677
4241 POINT 4234 -9.637659354432278 26.17823809135695
4242 POINT 4235 -9.895007838390011 26.62370467699503
4243 POINT 4236 -10.40670361026193 26.62599835231532
4244 POINT 4237 -10.66169890492968 26.18015313981581
4245 POINT 4238 -10.40539715902982 25.73591795079784
4246 POINT 4239 -9.892507684713129 25.73551085015163
4247 POINT 4240 -3.538866270674407 27.93563837319875
4248 POINT 4241 -3.791445061003568 27.4924372688973
4249 POINT 4242 -3.284985242746421 27.49173667393181
4250 POINT 4243 -3.792541681848606 28.3806414211657
4251 POINT 4244 -4.299837174214305 28.38154445423863
4252 POINT 4245 -3.286081863591458 28.37994082620021
4253 POINT 4246 -6.578160439640206 26.16911757665643
4254 POINT 4247 -6.3253193653182 26.61163279891804
4255 POINT 4248 -5.817351397064218 26.61016819247553
4256 POINT 4249 -6.322914449413139 25.72626408985695
4257 POINT 4250 -6.831093433545865 25.72749714888835
4258 POINT 4251 -5.815416739071694 25.72545072182048
4259 POINT 4252 -6.068349732977355 25.2838302940524
4260 POINT 4253 -8.103068545520017 25.2879261001149
4261 POINT 4254 -7.847089733293389 24.84545529905903
4262 POINT 4255 -7.33972959193747 25.72854262281094
4263 POINT 4256 -7.084483601710403 25.28568913601146
4264 POINT 4257 -7.84905736666726 25.73004082824404
4265 POINT 4258 -7.337860774808862 24.84465820022065
4266 POINT 4259 -6.829224616417257 24.84361272629806
4267 POINT 4260 -7.591830748000244 24.40337888934564
4268 POINT 4261 -10.95968825756436 32.86825866172835
4269 POINT 4262 -11.2389973762048 32.44351916990193
4270 POINT 4263 -10.96516313120963 31.99722932793554
4271 POINT 4264 -10.45710394986915 32.90333376542937
4272 POINT 4265 -10.19676760818201 32.44505103256093
4273 POINT 4266 -10.4450386107414 31.98862213265781
4274 POINT 4267 -5.839993028780057 31.9585713890503
4275 POINT 4268 -5.58222505575568 31.50997899536313
4276 POINT 4269 -6.353715906405032 31.96208637743266
4277 POINT 4270 -9.890881409539208 22.20113221196177
4278 POINT 4271 -9.377719567935678 22.20101557304443
4279 POINT 4272 -9.890817945887456 21.32074066481798
4280 POINT 4273 -9.377648390967682 21.32062266583164
4281 POINT 4274 -10.14857006043265 21.76080491471691
4282 POINT 4275 -9.121929625682005 21.76064670155081
4283 POINT 4276 -3.989917438513398 37.75936920944303
4284 POINT 4277 -4.253220144914879 38.17942950972456
4285 POINT 4278 -5.0612047044748 37.78945190920187
4286 POINT 4279 -4.788965345375917 37.30790232371594
4287 POINT 4280 -5.345230853006697 37.3897257540357
4288 POINT 4281 -3.511703891126289 35.11435281720901
4289 POINT 4282 -3.775382111584034 34.65823488537108
4290 POINT 4283 -4.288463783602202 34.65011427144418
4291 POINT 4284 -4.035804655693716 34.20299575272048
4292 POINT 4285 -13.43620984438418 34.81446134683805
4293 POINT 4286 -13.29869599960812 34.31160156237819
4294 POINT 4287 -12.93463213128416 34.64179503997145
4295 POINT 4288 -13.62553600610368 33.9629776498918
4296 POINT 4289 -14.13908291075123 34.14518767789303
4297 POINT 4290 -12.60490716900593 35.00986141752851
4298 POINT 4291 -12.20023572325958 35.34108684648683
4299 POINT 4292 -12.66774772099321 35.47669756860905
4300 POINT 4293 -11.70511437947869 35.04850274706365
4301 POINT 4294 -11.9105566427679 34.50393254228281
4302 POINT 4295 -12.47145116324818 34.51147573062274
4303 POINT 4296 -9.806918774248189 36.80166842930682
4304 POINT 4297 -10.26857635288579 37.16264372426561
4305 POINT 4298 -10.1979850569437 36.56768967568621
4306 POINT 4299 -1.515143968311342 29.71762612467332
4307 POINT 4300 -1.767218169152578 30.16613538008133
4308 POINT 4301 -2.273105814749252 30.16491121650845
4309 POINT 4302 -2.526893645558062 29.71688475828849
4310 POINT 4303 -4.295343851645418 33.74833423033055
4311 POINT 4304 -3.78226217962725 33.75645484425745
4312 POINT 4305 -3.531281742859955 33.30800564331628
4313 POINT 4306 -3.788870710138221 32.85406611529395
4314 POINT 4307 -4.299971286819369 32.85149198399459
4315 POINT 4308 -10.95895536230713 35.58920341710635
4316 POINT 4309 -10.41172580433067 35.55794744193341
4317 POINT 4310 -11.08356921006429 36.15576819899469
4318 POINT 4311 -10.1942008448515 36.08605690473453
4319 POINT 4312 -9.956518482555364 35.68306089840274
4320 POINT 4313 -10.65319237871901 36.44257621921687
4321 POINT 4314 -11.0910623698248 36.64296654514917
4322 POINT 4315 -13.7593285339414 31.59910572962469
4323 POINT 4316 -13.97378905574307 31.09637586275941
4324 POINT 4317 -14.49013543528747 31.07749003746751
4325 POINT 4318 -14.0764019646777 32.09309626417902
4326 POINT 4319 -14.48389267802026 31.91422357801393
4327 POINT 4320 -14.75329172047915 31.4892516249232
4328 POINT 4321 -5.587461461429323 33.29923896261564
4329 POINT 4322 -5.325946062699384 33.7401385358841
4330 POINT 4323 -5.327825510476393 32.84978726680519
4331 POINT 4324 -4.809231792482727 33.74478093752646
4332 POINT 4325 -5.065600597928541 34.19023273715123
4333 POINT 4326 -4.555689316416261 33.29824002906342
4334 POINT 4327 -4.813859227656678 32.8479386911905
4335 POINT 4328 5.823064971458006 28.38586497473401
4336 POINT 4329 5.315146572158927 28.38430769994047
4337 POINT 4330 5.062470610533198 28.82834397135218
4338 POINT 4331 6.079388428607562 28.83197977936755
4339 POINT 4332 5.317804360302774 29.27479479926754
4340 POINT 4333 5.827084127424216 29.27699957992611
4341 POINT 4334 10.41689568078359 28.4124072611171
4342 POINT 4335 10.66929742196129 27.96611222514022
4343 POINT 4336 9.904430854792075 28.4070707901445
4344 POINT 4337 10.41083792953915 27.51739638025921
4345 POINT 4338 8.886484172763202 29.29285479615131
4346 POINT 4339 8.37583717786616 29.29012517098535
4347 POINT 4340 9.139626727505856 28.8478657394769
4348 POINT 4341 8.117653415472539 28.84163926115534
4349 POINT 4342 11.95092859671319 24.8475539406863
4350 POINT 4343 12.46807375787325 24.84583394788076
4351 POINT 4344 12.20840003869946 25.28942203987447
4352 POINT 4345 11.95272288103627 23.96287269629527
4353 POINT 4346 12.47198579068075 23.9610098082623
4354 POINT 4347 12.73018467318101 24.40129625485699
4355 POINT 4348 11.43575282852112 23.96401601812759
4356 POINT 4349 10.91929475924401 23.96469697384104
4357 POINT 4350 11.43395854419803 24.84869726251862
4358 POINT 4351 10.91909661344623 24.84916901000663
4359 POINT 4352 11.69363226337182 24.40510917052491
4360 POINT 4353 10.66208764636606 24.40642272229546
4361 POINT 4354 12.45674415720379 26.62593764544495
4362 POINT 4355 12.71561902895919 26.17761365870297
4363 POINT 4356 12.46344625167966 25.73349620934157
4364 POINT 4357 11.9463010905196 25.73521620214711
4365 POINT 4358 11.68774091931249 26.17992315964508
4366 POINT 4359 11.94436146317965 26.6262558892628
4367 POINT 4360 12.19975831688364 27.07290316309354
4368 POINT 4361 11.70835016186513 29.77725626131508
4369 POINT 4362 11.44840780891525 29.32083443761827
4370 POINT 4363 10.94524480188349 30.2119493620846
4371 POINT 4364 10.68396014223092 29.76000284437696
4372 POINT 4365 11.4612799501046 30.22519211862191
4373 POINT 4366 11.20910938557762 30.66888094038705
4374 POINT 4367 10.9368374049108 29.31526434275312
4375 POINT 4368 11.95080093219896 28.42166108213997
4376 POINT 4369 12.4591287934299 28.41955637961497
4377 POINT 4370 12.71451082664457 27.96964269203738
4378 POINT 4371 12.97143800709656 28.41928524228948
4379 POINT 4372 11.69163226937222 27.96979595129795
4380 POINT 4373 12.45717131194284 27.52124937431928
4381 POINT 4374 11.9447886179187 27.52156761813713
4382 POINT 4375 15.29885200343264 28.8835193357322
4383 POINT 4376 15.56202156575395 29.32850886335364
4384 POINT 4377 15.04254095371091 29.31827443700025
4385 POINT 4378 16.0564503860919 28.44895155360157
4386 POINT 4379 16.33477400183093 28.91218754051921
4387 POINT 4380 15.54890460342297 28.43938194691547
4388 POINT 4381 16.09215770029102 29.34350152581874
4389 POINT 4382 12.72223555131803 29.77728149733855
4390 POINT 4383 12.97062105959908 29.31875497111673
4391 POINT 4384 12.98553664119016 30.24101141045128
4392 POINT 4385 13.47593186273332 30.21482288295318
4393 POINT 4386 14.77952748380703 29.75810228782938
4394 POINT 4387 14.50635713461083 30.18825186751686
4395 POINT 4388 14.51635792148571 29.31311276020795
4396 POINT 4389 13.9900110158661 30.20713768228853
4397 POINT 4390 13.73926529844905 29.76062581170174
4398 POINT 4391 2.273105774761268 9.83508879984791
4399 POINT 4392 2.779450317637714 9.835400651617574
4400 POINT 4393 3.033012220564729 9.388247709190718
4401 POINT 4394 5.582224331984559 8.490021384452593
4402 POINT 4395 5.324236755485918 8.938715200324722
4403 POINT 4396 4.303205470450614 9.835452415437004
4404 POINT 4397 4.811613166163307 9.834298227553571
4405 POINT 4398 4.049286364268548 9.3886844889632
4406 POINT 4399 5.068073565684609 9.386690434889857
4407 POINT 4400 4.814373978828597 8.940272488625666
4408 POINT 4401 2.221682434110464 3.449608482318896
4409 POINT 4402 1.723322054663639 3.41958212581723
4410 POINT 4403 1.475255227755129 2.932460514091849
4411 POINT 4404 1.727942742988692 2.471297861599172
4412 POINT 4405 2.223570867244001 2.516811617236392
4413 POINT 4406 3.247664549616101 1.691005979661493
4414 POINT 4407 3.738193462327802 1.768828689718033
4415 POINT 4408 2.976338300237787 2.129153441474481
4416 POINT 4409 3.989913465089363 2.240629487564227
4417 POINT 4410 3.734383925154549 2.66000978424141
4418 POINT 4411 4.249406076125915 2.711750263924309
4419 POINT 4412 -0.2525804527561534 16.03806627400728
4420 POINT 4413 -0.7575089596573991 16.03809742300865
4421 POINT 4414 8.162773457165429e-09 16.47693907063823
4422 POINT 4415 0.5055201424216942 17.35292109533307
4423 POINT 4416 0.2530784214946227 17.78947522331019
4424 POINT 4417 0.2525804694500266 16.91468922909349
4425 POINT 4418 -0.2525804544726128 16.91468922997582
4426 POINT 4419 -0.2530784086493366 17.78947522356133
4427 POINT 4420 -0.5055201286865491 17.35292109643341
4428 POINT 4421 -0.7581005899738023 16.91517093797816
4429 POINT 4422 10.92866218369657 11.58403101835576
4430 POINT 4423 10.66929892991574 12.03389174928147
4431 POINT 4424 10.92260560930413 12.47904214844759
4432 POINT 4425 11.44023252971531 11.57846179393201
4433 POINT 4426 11.6916339164161 12.03021006472227
4434 POINT 4427 6.829226066792335 15.15638767985543
4435 POINT 4428 7.08448512863891 14.71431148714117
4436 POINT 4429 6.32291537112456 14.27373638104556
4437 POINT 4430 6.068350648601582 14.71617008807552
4438 POINT 4431 6.831094598114815 14.27250347410035
4439 POINT 4432 6.574690216144999 15.59804860267928
4440 POINT 4433 6.320151929953125 16.03908134219066
4441 POINT 4434 5.812970569673526 16.03929553360603
4442 POINT 4435 5.559944453526639 15.59906442536678
4443 POINT 4436 5.813814797954246 15.15783101089938
4444 POINT 4437 6.321312755318322 15.15701773663442
4445 POINT 4438 -1.775181001650297 21.33393361507919
4446 POINT 4439 -1.267840951818172 21.33711381294345
4447 POINT 4440 -2.024810422711531 21.77002261288375
4448 POINT 4441 -0.7585985253342913 22.21004308218826
4449 POINT 4442 -0.2530784032947191 22.21052479073235
4450 POINT 4443 -0.25307840396708 21.33774656408433
4451 POINT 4444 6.030698440628868e-09 21.77348895090434
4452 POINT 4445 -0.761269396452543 21.33800980180604
4453 POINT 4446 -1.012728368769732 21.77259296179061
4454 POINT 4447 -1.26517008069992 22.20914709332568
4455 POINT 4448 6.57552905270612 19.11917837703191
4456 POINT 4449 6.830512439734651 19.55973226747113
4457 POINT 4450 6.323600974440302 19.55944563035479
4458 POINT 4451 7.337224191221686 19.55973210309189
4459 POINT 4452 7.085296112955868 19.99999935641476
4460 POINT 4453 7.591126172197229 19.11954137608066
4461 POINT 4454 7.845909845418445 19.55980846502429
4462 POINT 4455 6.828120215219838 18.67952034762907
4463 POINT 4456 5.819524031753277 19.55944573980127
4464 POINT 4457 6.074507418781808 19.99999963024048
4465 POINT 4458 5.819523813334327 20.44055367013701
4466 POINT 4459 6.323600756021351 20.44055356069054
4467 POINT 4460 5.314082130452446 19.55879830294076
4468 POINT 4461 5.069786234540341 19.99999980475538
4469 POINT 4462 5.314081996435311 20.44120126848308
4470 POINT 4463 5.563175333674854 20.88175519893314
4471 POINT 4464 8.866487420657002 23.96406405540996
4472 POINT 4465 8.355738994225081 23.96328213075802
4473 POINT 4466 8.100427383778017 23.52188039085872
4474 POINT 4467 9.122215393276559 23.52275436205428
4475 POINT 4468 8.86594121586602 23.08182352338446
4476 POINT 4469 11.18084976696353 21.76061566877308
4477 POINT 4470 11.43896704356612 22.20068784304909
4478 POINT 4471 11.95797441386322 22.1997190736917
4479 POINT 4472 11.9588087557341 21.32105244930146
4480 POINT 4473 12.22007742542399 21.75981922903992
4481 POINT 4474 10.148570164294 21.76080494256901
4482 POINT 4475 9.890881511362227 22.2011322436048
4483 POINT 4476 9.377719656900005 22.20101559932991
4484 POINT 4477 9.377648474444069 21.3206226826241
4485 POINT 4478 9.121929706236603 21.76064672176964
4486 POINT 4479 8.865674277639464 22.2008899295029
4487 POINT 4480 7.336250313716918 21.32043468385277
4488 POINT 4481 7.591125568206087 20.88045701300713
4489 POINT 4482 7.337223885828448 20.44026648925234
4490 POINT 4483 7.845909546820542 20.44018971579031
4491 POINT 4484 6.830512134341413 20.44026665363158
4492 POINT 4485 6.575528528893932 20.88082069352811
4493 POINT 4486 4.547660785761197 22.64117575790155
4494 POINT 4487 4.799992952164152 23.08041215768531
4495 POINT 4488 5.306180292478354 23.08034306292107
4496 POINT 4489 8.865707267923504 19.55976133923551
4497 POINT 4490 8.354952340097839 19.55980825914972
4498 POINT 4491 8.865707358596341 20.44023587696896
4499 POINT 4492 8.354952041499935 20.44018950991573
4500 POINT 4493 9.121386178165395 19.99999862805303
4501 POINT 4494 9.377000682960047 20.44023572473563
4502 POINT 4495 9.37700059228721 19.55976118700218
4503 POINT 4496 8.101050359122295 19.99999898616094
4504 POINT 4497 -18.88575813755943 15.0697268260569
4505 POINT 4498 -19.39362771734272 15.11254628586869
4506 POINT 4499 -18.68665358888661 14.6490351897125
4507 POINT 4500 -15.77563967202531 13.84150710457371
4508 POINT 4501 -16.01906260749091 13.38331127087525
4509 POINT 4502 -16.51175963280237 13.37603091203635
4510 POINT 4503 -16.76209633740071 13.83891198637251
4511 POINT 4504 -16.61643100772146 14.28454398233681
4512 POINT 4505 -3.285878374189513 17.79579280002091
4513 POINT 4506 -3.537066906965997 17.35732465078735
4514 POINT 4507 -2.781165062341254 17.79402703590121
4515 POINT 4508 -2.272346057716946 15.15939316355719
4516 POINT 4509 -2.777506873473401 15.15947546214778
4517 POINT 4510 -2.019831127927625 14.71933670858128
4518 POINT 4511 -3.030366546424797 14.71907091737807
4519 POINT 4512 -4.29435723120281 15.1589385317425
4520 POINT 4513 -4.800381300429374 15.1587993272791
4521 POINT 4514 -4.041727322367009 14.71851001309586
4522 POINT 4515 -5.05425164147241 14.71756591615323
4523 POINT 4516 -4.295101030996014 14.27689248118367
4524 POINT 4517 -3.789177724238159 14.27725404962039
4525 POINT 4518 -8.103070844109666 14.7120749267257
4526 POINT 4519 -8.357041227963842 15.15335409824602
4527 POINT 4520 -8.867790261965396 15.15257226998905
4528 POINT 4521 -8.359008421177249 14.26876895168724
4529 POINT 4522 -9.124387984536476 14.70980715521631
4530 POINT 4523 -8.869538972748195 14.26707997665955
4531 POINT 4524 -9.380906847798823 14.26600347395883
4532 POINT 4525 -15.04253548417184 10.68172301284076
4533 POINT 4526 -14.51635355078331 10.68688712093244
4534 POINT 4527 -14.26072851253494 11.13086143448761
4535 POINT 4528 -15.29884481679709 11.11647634394399
4536 POINT 4529 -15.0294160788359 11.57085075398853
4537 POINT 4530 -14.51705395682312 11.57633155901834
4538 POINT 4531 8.673610243951781 6.652056971493288
4539 POINT 4532 8.414839055579259 7.108358885772509
4540 POINT 4533 7.90457462665794 7.113563743870362
4541 POINT 4534 8.152298738482797 7.566155996789455
4542 POINT 4535 7.651410299100585 6.670464801650749
4543 POINT 4536 7.388869982004122 7.128261912667696
4544 POINT 4537 7.91137180832887 6.215871382139966
4545 POINT 4538 7.395667163675052 6.2305695509373
4546 POINT 4539 8.427660313869119 6.189437265397586
4547 POINT 4540 8.401580829217719 8.014850918935689
4548 POINT 4541 7.8913164002964 8.020055777033541
4549 POINT 4542 8.65225636857012 8.462541415161475
4550 POINT 4543 7.629644152233771 8.473224754720867
4551 POINT 4544 7.380362061498849 8.024529832574634
4552 POINT 4545 8.391528292002256 8.915703717744677
4553 POINT 4546 7.880480191434996 8.920252392579611
4554 POINT 4547 8.948131191765635 5.244986877960783
4555 POINT 4548 8.686196691051427 4.812171250737954
4556 POINT 4549 8.926774423659207 4.355755496876252
4557 POINT 4550 9.445443876621251 5.251309598627719
4558 POINT 4551 9.6910474270449 4.80595499243688
4559 POINT 4552 9.473520550241012 4.27784503441803
4560 POINT 4553 6.871912274813603 4.456666857990875
4561 POINT 4554 6.343908009479829 4.48177946767831
4562 POINT 4555 6.621960527653464 4.900979418979421
4563 POINT 4556 7.126969749148993 3.982554695510378
4564 POINT 4557 4.533432449664246 3.111476287422326
4565 POINT 4558 4.788961989599059 2.692095990745143
4566 POINT 4559 4.807632160732531 3.545827374450171
4567 POINT 4560 6.855123306554548 1.732841382331951
4568 POINT 4561 6.414612844901361 1.574488513075082
4569 POINT 4562 6.765655367225731 1.179109809653417
4570 POINT 4563 6.972434580994955 2.219793303106146
4571 POINT 4564 -7.602701248857268 12.05219331399483
4572 POINT 4565 -7.345761168813994 12.49779263543017
4573 POINT 4566 -7.350228475031765 11.60757343071705
4574 POINT 4567 -5.308173014700433 14.27556533336659
4575 POINT 4568 -5.562737733353188 13.83313163004587
4576 POINT 4569 -4.801572002352885 14.27614786187251
4577 POINT 4570 -4.549022404224035 13.83489189839703
4578 POINT 4571 -1.261812988480139 9.83343522240709
4579 POINT 4572 -1.009092171925209 9.384112018230109
4580 POINT 4573 -1.260520010065219 8.933024373220549
4581 POINT 4574 -1.765500117844419 8.93523006966014
4582 POINT 4575 -5.068073644725306 9.38669057972551
4583 POINT 4576 -4.811613206609751 9.83429836303813
4584 POINT 4577 -5.321476005364882 9.832741044573023
4585 POINT 4578 -8.171918437075256 5.749541788172571
4586 POINT 4579 -8.426272907275038 5.290292001170738
4587 POINT 4580 -8.948133223185337 5.244987163541136
4588 POINT 4581 -9.185519494225359 5.729430999154442
4589 POINT 4582 -8.934156282145356 6.185727540104251
4590 POINT 4583 -8.427661154600298 6.18943703498995
4591 POINT 4584 -8.673610641597531 6.652056916813081
4592 POINT 4585 -6.360808891330913 5.359381494985303
4593 POINT 4586 -6.8888134629241 5.334268229392724
4594 POINT 4587 -7.141644921037324 5.784322612398201
4595 POINT 4588 -6.881683139083452 6.238916134269846
4596 POINT 4589 -6.366502420684297 6.244439533544943
4597 POINT 4590 -8.913238659918125 8.008641685997079
4598 POINT 4591 -9.175111821561714 7.552782489790519
4599 POINT 4592 -8.152298933237061 7.566155955215757
4600 POINT 4593 -8.414839366266023 7.108358763986579
4601 POINT 4594 -8.401580872630081 8.014850914686292
4602 POINT 4595 -8.652256314068634 8.462541484408993
4603 POINT 4596 -7.891316587387569 8.020055753627672
4604 POINT 4597 -8.921334493811083 7.104649269100879
4605 POINT 4598 0.5050496066864969 12.06607114806098
4606 POINT 4599 0.2524838592694156 12.509659882908
4607 POINT 4600 -0.5050495406976978 12.06607116411123
4608 POINT 4601 -0.2524953099325488 11.62092225687016
4609 POINT 4602 -0.7575448846733936 11.62089710913941
4610 POINT 4603 0.2524953892493668 11.62092224476328
4611 POINT 4604 -3.283324914400852 8.042101763472806
4612 POINT 4605 -3.027617553368896 7.589434642638204
4613 POINT 4606 -3.78887016301438 7.145934490043004
4614 POINT 4607 -4.047040141601858 7.596235740379548
4615 POINT 4608 -4.299970711505202 7.148508674241112
4616 POINT 4609 -3.792218491321482 8.043753636400142
4617 POINT 4610 -4.303319039812305 8.04632782059825
4618 POINT 4611 -3.539603812611298 8.492193843691508
4619 POINT 4612 -3.278350562976776 7.139722056960755
4620 POINT 4613 -3.53128113288012 6.69199499082232
4621 POINT 4614 -3.259043844909186 5.332766362072315
4622 POINT 4615 -3.011954694569225 5.779632481578462
4623 POINT 4616 -3.271741805307075 6.237333529285412
4624 POINT 4617 -3.782261405344679 6.243545962367661
4625 POINT 4618 -4.035803751858573 5.797005308049524
4626 POINT 4619 -4.295343079431618 6.251666769586432
4627 POINT 4620 -3.775380952945744 5.341766264901346
4628 POINT 4621 -3.511702720083296 4.885648126142907
4629 POINT 4622 -4.543058686584349 4.904219080036945
4630 POINT 4623 -4.288462627032683 5.349887072120117
4631 POINT 4624 -4.803481485497177 5.359458123185124
4632 POINT 4625 -3.243367634643463 4.435820574068364
4633 POINT 4626 -2.982689503297702 3.965002351197774
4634 POINT 4627 -3.229662503185413 3.52330050328693
4635 POINT 4628 -3.742623792584569 3.563062575166481
4636 POINT 4629 -3.759704742680022 4.444820476897395
4637 POINT 4630 -5.320794455696689 3.555246287829873
4638 POINT 4631 -5.570636693918219 3.095966055383329
4639 POINT 4632 -5.345229957488629 2.610279773748913
4640 POINT 4633 -4.788963916338954 2.692099741504953
4641 POINT 4634 -4.533433409733085 3.11147984258838
4642 POINT 4635 -5.320195886747793 5.3641005719377
4643 POINT 4636 -5.065599827196129 5.809768564020871
4644 POINT 4637 -5.838136124018156 5.370252348005836
4645 POINT 4638 -6.104986995759502 5.803540159752914
4646 POINT 4639 -5.843829653371539 6.255310386565476
4647 POINT 4640 -5.845709132172464 7.14566131989957
4648 POINT 4641 -6.099796022401105 7.591597931860797
4649 POINT 4642 2.468655552028582 36.99209317569083
4650 POINT 4643 2.720981659484743 36.50669016910551
4651 POINT 4644 3.221422882693706 37.37975122048137
4652 POINT 4645 3.480916159023034 36.90863094192812
4653 POINT 4646 2.722869868303182 37.43948682119965
4654 POINT 4647 3.229662324541032 36.47670038506341
4655 POINT 4648 -2.273750322176463 28.37918393450756
4656 POINT 4649 -2.779582658660454 28.37954777701897
4657 POINT 4650 -2.526574115933269 27.93457393572186
4658 POINT 4651 -3.033258069834652 28.82455082498592
4659 POINT 4652 -2.77999854888538 29.27036534916167
4660 POINT 4653 -2.273653961576329 29.27067718493149
4661 POINT 4654 -4.295759860195631 22.20207831721287
4662 POINT 4655 -3.790935919620525 22.20328484529564
4663 POINT 4656 -4.547660762109723 22.64117574871403
4664 POINT 4657 -1.770560839361158 22.20855341824481
4665 POINT 4658 -2.276071337937328 22.20687905820053
4666 POINT 4659 -1.516430995925717 22.64600353864246
4667 POINT 4660 -0.7574091942873926 26.60463620877062
4668 POINT 4661 -0.5049253650460661 26.16245155786428
4669 POINT 4662 -1.26248456968623 26.60474309312709
4670 POINT 4663 -2.020500884784648 27.04726516205367
4671 POINT 4664 -2.273312578923515 27.49087502031526
4672 POINT 4665 -2.779144915407506 27.49123886282667
4673 POINT 4666 -3.031723705736667 27.04803775852522
4674 POINT 4667 9.674059914272764 31.54309915647984
4675 POINT 4668 9.425788859593911 31.99952798475481
4676 POINT 4669 8.903187169034737 31.09050669476753
4677 POINT 4670 9.413784633261546 31.09278170280593
4678 POINT 4671 7.395667531479379 33.76943158160459
4679 POINT 4672 6.881682436448375 33.76108525769369
4680 POINT 4673 6.620525505193433 33.30931478828556
4681 POINT 4674 6.099796175241582 32.40840299268783
4682 POINT 4675 6.359431915093664 32.8578547224632
4683 POINT 4676 6.874612619500812 32.86337793702549
4684 POINT 4677 7.127777065364786 32.42027890997031
4685 POINT 4678 7.388870655464554 32.87173897579268
4686 POINT 4679 6.353715538404828 31.96208648750794
4687 POINT 4680 8.934156162843058 33.81427295860885
4688 POINT 4681 9.185518916730516 34.2705695880624
4689 POINT 4682 9.431469087173463 33.80794971603986
4690 POINT 4683 8.171917422879144 34.25045899549634
4691 POINT 4684 8.426271187026909 34.70970875020592
4692 POINT 4685 8.948131691149152 34.75501338402842
4693 POINT 4686 7.651410866152008 33.32953611527348
4694 POINT 4687 7.904575312015982 32.8864370882183
4695 POINT 4688 7.911372188030805 33.78412969403021
4696 POINT 4689 8.427660757551774 33.81056352916524
4697 POINT 4690 8.673610927994719 33.34794365714271
4698 POINT 4691 9.694220357455089 33.36180316353837
4699 POINT 4692 9.945583111342547 33.81809979299192
4700 POINT 4693 10.71091845921928 33.33687874930079
4701 POINT 4694 10.46487676988987 33.83310719520395
4702 POINT 4695 9.947998294341922 32.91367014601859
4703 POINT 4696 9.43388427017284 32.90352006906653
4704 POINT 4697 10.45710382882717 32.90333481796283
4705 POINT 4698 12.55579669464555 33.7299880503965
4706 POINT 4699 13.12801199851167 33.79479026035089
4707 POINT 4700 12.47144579022556 34.51148132613582
4708 POINT 4701 12.93462514265352 34.64180178367647
4709 POINT 4702 12.24027789272276 34.13587082058012
4710 POINT 4703 13.29868985479681 34.3116079231603
4711 POINT 4704 13.43620128425083 34.8144691256151
4712 POINT 4705 12.50944856105111 31.15885690226704
4713 POINT 4706 11.99907725941845 31.14306284646113
4714 POINT 4707 12.78538331767002 31.63539862612097
4715 POINT 4708 12.5690393147074 32.06645875658151
4716 POINT 4709 12.02256561458787 32.0281633069468
4717 POINT 4710 5.065600016341717 34.19023420969232
4718 POINT 4711 4.803482242815901 34.64054582058449
4719 POINT 4712 4.035804672356232 34.20299720629515
4720 POINT 4713 4.295343779290965 33.74833560269973
4721 POINT 4714 4.809231465292767 33.74478222026569
4722 POINT 4715 4.288463743829695 34.65011614756668
4723 POINT 4716 9.637662575318704 13.82176439745997
4724 POINT 4717 9.895010842448107 13.37629815618254
4725 POINT 4718 9.892511591869622 14.26449157539778
4726 POINT 4719 10.4067069355562 13.37400513563111
4727 POINT 4720 13.52905067048734 17.80348860989551
4728 POINT 4721 13.79175789835044 17.36796951733285
4729 POINT 4722 13.00252411868155 17.80282680195637
4730 POINT 4723 13.26812525861197 18.24140032089161
4731 POINT 4724 12.74043410877834 17.36292953030527
4732 POINT 4725 12.47950869690297 17.80084124130137
4733 POINT 4726 13.51009777439233 19.55820318321305
4734 POINT 4727 13.79929158665083 19.11344521668358
4735 POINT 4728 13.53129906332733 18.67922305227264
4736 POINT 4729 13.00477251152154 18.6785612443335
4737 POINT 4730 12.99576637516585 19.55819856070358
4738 POINT 4731 12.74349662902931 19.11733796967289
4739 POINT 4732 12.47131668795828 19.55915255466194
4740 POINT 4733 12.48032282431396 18.67951523829186
4741 POINT 4734 11.43914986613786 21.32072491301456
4742 POINT 4735 11.69942433103575 20.88138351831122
4743 POINT 4736 10.92146534226518 21.32094673778284
4744 POINT 4737 12.71562432355781 13.82239950971875
4745 POINT 4738 12.9710204628949 13.37575475080886
4746 POINT 4739 12.45674797382721 13.37407141180644
4747 POINT 4740 12.97772491657961 14.26819291122295
4748 POINT 4741 12.46345242751193 14.26650957222053
4749 POINT 4742 13.49738297842677 14.27178058327745
4750 POINT 4743 13.74303006923158 13.8271429168039
4751 POINT 4744 13.24521108238089 14.71589064577923
4752 POINT 4745 13.22448245842652 12.92743092592447
4753 POINT 4746 13.48181951185093 12.47903488184075
4754 POINT 4747 13.99578142269353 12.47669166234643
4755 POINT 4748 14.24624589811313 12.92686861431367
4756 POINT 4749 13.48335880815712 13.37575902383678
4757 POINT 4750 13.9964920647632 13.37881909191951
4758 POINT 4751 -6.320150687976366 23.96091876360178
4759 POINT 4752 -5.812969625836519 23.96070458668278
4760 POINT 4753 -6.574688825297787 24.40195167480463
4761 POINT 4754 -6.828063652194295 23.9615488793044
4762 POINT 4755 -5.813813941857884 24.84216924255897
4763 POINT 4756 -6.321311652199329 24.84298261059543
4764 POINT 4757 -7.081981008898271 23.52094424303451
4765 POINT 4758 -7.336519146219691 23.96197715423737
4766 POINT 4759 -7.845748104704221 23.96277425307575
4767 POINT 4760 -7.335856115277702 23.08082963166928
4768 POINT 4761 -7.844991443031732 23.08106288006605
4769 POINT 4762 -8.100427311741345 23.52188036270352
4770 POINT 4763 -10.40540157467472 14.26408505747693
4771 POINT 4764 -10.66170284717234 13.81985074339596
4772 POINT 4765 -9.637662430070954 13.82176447342599
4773 POINT 4766 -9.895010682577141 13.37629824542447
4774 POINT 4767 -9.892511441859234 14.26449165198275
4775 POINT 4768 -10.40670675495256 13.37400525082491
4776 POINT 4769 -12.47199466734123 16.03898502117763
4777 POINT 4770 -12.21411479700939 16.4800762682083
4778 POINT 4771 -12.99157903512498 16.04165171901209
4779 POINT 4772 -14.28781148834783 14.72466430653915
4780 POINT 4773 -14.01051597995725 14.27484092420143
4781 POINT 4774 -13.50732425510632 15.16042328920559
4782 POINT 4775 -13.24521080951691 14.71589083268884
4783 POINT 4776 -13.49738271635704 14.27178080931081
4784 POINT 4777 -16.93896929093587 15.5773409849898
4785 POINT 4778 -16.68097494321506 15.16527107651389
4786 POINT 4779 -15.67915306855816 18.67142202530682
4787 POINT 4780 -15.40255559056302 18.2433353971784
4788 POINT 4781 -15.1377260715964 18.67054347403299
4789 POINT 4782 -15.66731487745816 17.81120284025883
4790 POINT 4783 -16.23490724711116 18.67143816234672
4791 POINT 4784 -11.95483924810893 19.55914747757233
4792 POINT 4785 -11.69939991789839 19.11861637347679
4793 POINT 4786 -11.95878820411627 18.67894457614464
4794 POINT 4787 -12.47131653888641 19.55915256894556
4795 POINT 4788 -12.48032266377783 18.67951528684885
4796 POINT 4789 -12.22006407356756 18.2401678703231
4797 POINT 4790 -12.74349647052235 19.11733800723685
4798 POINT 4791 -13.00477233997363 18.67856130141531
4799 POINT 4792 -14.87248011401993 19.104568316138
4800 POINT 4793 -14.5444672240719 19.55524901206978
4801 POINT 4794 -14.59588263602478 18.67648168800958
4802 POINT 4795 -14.04144287725837 19.55526445993747
4803 POINT 4796 -13.79929141258323 19.11344527595896
4804 POINT 4797 -13.53129887895662 18.67922312921883
4805 POINT 4798 -13.2681250722121 18.24140040883083
4806 POINT 4799 -14.0626441448217 18.67628438337447
4807 POINT 4800 -14.05735881756995 17.80654318110146
4808 POINT 4801 -14.32789010239817 18.24225954126945
4809 POINT 4802 -18.2968927833904 24.94722405978977
4810 POINT 4803 -18.68670738346595 25.35086902771102
4811 POINT 4804 -18.11866277312836 25.81991225332942
4812 POINT 4805 -18.56007566971161 25.77221354163332
4813 POINT 4806 -19.15366621552857 25.75648074725418
4814 POINT 4807 -17.67264085100642 25.76729945984075
4815 POINT 4808 -17.52697763588802 25.32168259068048
4816 POINT 4809 -17.78498613217555 24.909612186255
4817 POINT 4810 -12.47539170563856 23.0785489390462
4818 POINT 4811 -12.99840983962808 23.07655221680742
4819 POINT 4812 -12.47198557295549 23.9610096938691
4820 POINT 4813 -12.99156790660064 23.95834007766085
4821 POINT 4814 -12.21410615975761 23.51991655725213
4822 POINT 4815 -14.04906603364312 23.06997456115545
4823 POINT 4816 -13.52075687599397 23.07307448165996
4824 POINT 4817 -14.03636788977065 23.95057690948157
4825 POINT 4818 -13.51391494296653 23.95486234251339
4826 POINT 4819 -14.30341627472643 23.50650018459617
4827 POINT 4820 -14.561721042046 23.9459789118976
4828 POINT 4821 -14.57441918591847 23.06537656357148
4829 POINT 4822 -13.25571608608519 23.5145759173276
4830 POINT 4823 -14.5960683653604 21.32333659147519
4831 POINT 4824 -14.32798922175618 21.75754972154517
4832 POINT 4825 -14.59066652086865 22.19303664224877
4833 POINT 4826 -13.74303175114319 26.17287493709136
4834 POINT 4827 -13.48335791473757 26.62425530265345
4835 POINT 4828 -12.97771773598447 25.73181930175693
4836 POINT 4829 -12.71561880221907 26.17761345449204
4837 POINT 4830 -13.49737100762031 25.72824656875608
4838 POINT 4831 -12.97101566866241 26.62426067037656
4839 POINT 4832 -15.87594000709251 24.3886752863724
4840 POINT 4833 -15.61382354497319 23.94120865241457
4841 POINT 4834 -15.08739359140011 23.94259057999703
4842 POINT 4835 -15.35519938057486 23.50052025942974
4843 POINT 4836 -15.07839045447396 24.82672910597416
4844 POINT 4837 -14.82034520644433 24.38666730488244
4845 POINT 4838 -4.297887780716318 27.4932582820506
4846 POINT 4839 -4.044006752788331 27.04935658278367
4847 POINT 4840 -5.312210754179706 27.49556464468527
4848 POINT 4841 -5.567618563035417 27.94023469907253
4849 POINT 4842 -4.552513129335004 27.93750819510436
4850 POINT 4843 -4.807024214617755 28.38271368117876
4851 POINT 4844 -4.805074821119767 27.49442750899073
4852 POINT 4845 -5.057585405561018 27.0513147316315
4853 POINT 4846 -6.33587960182028 29.27904137271206
4854 POINT 4847 -6.593280542092714 29.72671675993249
4855 POINT 4848 -6.845584816882877 29.28169696677443
4856 POINT 4849 -9.139626577699488 28.84786563078475
4857 POINT 4850 -8.880974911121076 28.39978165870695
4858 POINT 4851 -8.886484031839617 29.29285468931666
4859 POINT 4852 -8.375837076376664 29.29012509511866
4860 POINT 4853 -6.606301488352729 31.5172784426189
4861 POINT 4854 -6.86610510089686 31.96710983930201
4862 POINT 4855 -7.380363061301429 31.97547095696313
4863 POINT 4856 -7.629645044490113 31.52677603524801
4864 POINT 4857 -3.734387612605413 37.33998909381205
4865 POINT 4858 -3.480917883197236 36.90862995438757
4866 POINT 4859 -4.249409370936035 37.28824836325113
4867 POINT 4860 -4.533435519467933 36.88852220808495
4868 POINT 4861 -4.758488233341749 38.11030236366913
4869 POINT 4862 -4.50676918141261 38.58210339451158
4870 POINT 4863 -4.783545702215509 38.99367819414739
4871 POINT 4864 -5.253316076616899 38.87170298229778
4872 POINT 4865 -5.026304722136116 39.35810581481412
4873 POINT 4866 -5.31475374097253 38.1921257939889
4874 POINT 4867 -5.55603254774995 38.55085252783052
4875 POINT 4868 -4.803482580347485 34.64054361135685
4876 POINT 4869 -5.320196850564142 34.63590120971449
4877 POINT 4870 -4.543060036237803 35.09578274400744
4878 POINT 4871 -9.474341817876265 37.14660975144912
4879 POINT 4872 -9.406416566704262 36.55611168334616
4880 POINT 4873 -9.473526932351346 35.72215174385364
4881 POINT 4874 -9.691051891830522 35.19404228105253
4882 POINT 4875 -7.395668664845115 33.76943169253389
4883 POINT 4876 -7.141645205774269 34.21567874364175
4884 POINT 4877 -7.911373176236172 33.78412991120815
4885 POINT 4878 -5.970391354147889 38.42267776501082
4886 POINT 4879 -5.910343674528779 39.10674848218104
4887 POINT 4880 9.899142136969207 27.51510267900654
4888 POINT 4881 10.15244814835231 27.06995268221834
4889 POINT 4882 9.895007998246125 26.62370476614767
4890 POINT 4883 9.383403857216514 26.62219238204935
4891 POINT 4884 9.645779171780866 27.95898679566293
4892 POINT 4885 9.392678108416897 28.40351120876002
4893 POINT 4886 8.880975044494647 28.39978174499532
4894 POINT 4887 9.387389390594027 27.51154309762205
4895 POINT 4888 14.26073289743033 28.8691395757118
4896 POINT 4889 13.99842144929555 28.41952401656783
4897 POINT 4890 13.99771942752645 29.30896742654093
4898 POINT 4891 13.48445722189115 28.41718289837834
4899 POINT 4892 13.22907518867648 28.86709658595593
4900 POINT 4893 13.48364027439367 29.31665262720558
4901 POINT 4894 2.778186435888486 8.938957890864957
4902 POINT 4895 3.285536154833564 8.93983143640984
4903 POINT 4896 0.503576558953103 8.480088415641912
4904 POINT 4897 0.7545340256392324 8.025313551344778
4905 POINT 4898 1.257490675288657 8.028793692477928
4906 POINT 4899 1.00487166372454 7.572984560185061
4907 POINT 4900 1.767218177292147 9.833864649502274
4908 POINT 4901 1.261813121296191 9.833435129749081
4909 POINT 4902 2.01977490415053 9.386150013300199
4910 POINT 4903 1.254058685362145 7.116431701475741
4911 POINT 4904 0.7511020357127205 7.112951560342591
4912 POINT 4905 1.503048670056133 6.664067888028908
4913 POINT 4906 1.756818298067953 7.124100887871379
4914 POINT 4907 3.221422303399006 2.620248389708918
4915 POINT 4908 3.480914914435558 3.091369166068999
4916 POINT 4909 2.72098085638526 3.493309688384574
4917 POINT 4910 3.229661216416159 3.523299759226276
4918 POINT 4911 2.982688780121403 3.965001676074344
4919 POINT 4912 2.46865487040522 3.007906565470829
4920 POINT 4913 2.722869289518796 2.56051282330207
4921 POINT 4914 -1.010191681274808 16.47724942694537
4922 POINT 4915 -1.263131355488745 16.91548129340297
4923 POINT 4916 -2.020306230344167 16.47789566114399
4924 POINT 4917 -1.767492742491601 16.03853792813051
4925 POINT 4918 -1.262539725172341 16.03840777843346
4926 POINT 4919 12.1997613590734 12.92710547342492
4927 POINT 4920 11.94479095056584 12.47843891822832
4928 POINT 4921 11.43422157083276 12.47855544044724
4929 POINT 4922 11.17576264345388 12.92727100195365
4930 POINT 4923 11.94436521973632 13.37375023233481
4931 POINT 4924 7.336251480752613 18.6795640871081
4932 POINT 4925 7.844937134949372 18.67964044904051
4933 POINT 4926 8.099974578704396 18.23956992571268
4934 POINT 4927 7.84480578458009 17.79945448070259
4935 POINT 4928 8.354717919779731 17.79936124634732
4936 POINT 4929 7.335669970649025 17.79968796401571
4937 POINT 4930 7.081931177971981 18.23961942058892
4938 POINT 4931 8.354982325926542 23.08157075161737
4939 POINT 4932 7.844991506275383 23.08106290277033
4940 POINT 4933 7.844803584321875 22.20054442238268
4941 POINT 4934 8.354715387699985 22.20063715773581
4942 POINT 4935 8.610505338363385 22.64100603529607
4943 POINT 4936 7.590411112199734 22.64052001245645
4944 POINT 4937 7.335856170051208 23.08082965169779
4945 POINT 4938 7.335668248097701 22.20031117131014
4946 POINT 4939 9.890818040191585 21.32074068357608
4947 POINT 4940 10.40541311898843 21.32077323454844
4948 POINT 4941 10.66371321816277 20.88088247878991
4949 POINT 4942 10.40367267864471 20.44035402693132
4950 POINT 4943 10.91972490192146 20.44052753016572
4951 POINT 4944 9.890170248707562 20.4403537256876
4952 POINT 4945 10.14618193246625 19.99999877706341
4953 POINT 4946 9.634491429138507 20.88059097460354
4954 POINT 4947 6.827400667807767 23.08040137415767
4955 POINT 4948 7.081981061883418 23.52094426447156
4956 POINT 4949 6.066344491613611 23.52030180831326
4957 POINT 4950 6.320150731026381 23.96091878388248
4958 POINT 4951 6.828063703070947 23.96154890185181
4959 POINT 4952 4.803564434818736 21.32240321307486
4960 POINT 4953 4.299173358639647 21.32364953328408
4961 POINT 4954 4.044571409948016 21.76361015630762
4962 POINT 4955 4.295759881507283 22.20207832426327
4963 POINT 4956 4.801296257115548 22.20150106250879
4964 POINT 4957 5.054931180975862 21.76171558239177
4965 POINT 4958 5.306832085229775 22.20081301603004
4966 POINT 4959 5.309100262932963 21.32171516659611
4967 POINT 4960 5.81454207983198 21.32106756825005
4968 POINT 4961 -18.56002184971921 14.22769492657082
4969 POINT 4962 -18.58096939592903 13.77580049591028
4970 POINT 4963 -19.15364988885438 14.24346495111939
4971 POINT 4964 -18.85904440570564 13.34143830515129
4972 POINT 4965 -15.33998266280768 14.7338292242525
4973 POINT 4966 -15.57188599971363 14.288170055576
4974 POINT 4967 -16.07296487229796 14.29114541974748
4975 POINT 4968 -16.41267733540978 14.73120693333909
4976 POINT 4969 -16.13750880779156 15.17187251392457
4977 POINT 4970 -3.788945546787723 16.91866703867328
4978 POINT 4971 -4.041277777523542 16.47943067745028
4979 POINT 4972 -3.283887755210931 16.91774473014353
4980 POINT 4973 -3.03057820446562 16.47865932897363
4981 POINT 4974 -2.778699564643894 16.9173169410877
4982 POINT 4975 -3.788415114156707 16.03940786842766
4983 POINT 4976 -3.282925532369509 16.03938389455073
4984 POINT 4977 -2.526915470103403 17.35549624645666
4985 POINT 4978 -2.273605919358092 16.91641084528677
4986 POINT 4979 -1.516431044502669 17.35399647754574
4987 POINT 4980 -1.770560893295203 17.79144659044107
4988 POINT 4981 -2.276071417055452 17.79312094010028
4989 POINT 4982 -1.768522135803676 16.91607496651296
4990 POINT 4983 6.366501243846965 6.244439141771339
4991 POINT 4984 6.881681964346839 6.238915939179471
4992 POINT 4985 6.620524933946894 6.690686173039952
4993 POINT 4986 7.141643473575124 5.784322519668687
4994 POINT 4987 6.888811533617075 5.334267858601422
4995 POINT 4988 6.360807268283301 5.359380468288856
4996 POINT 4989 5.328304956021583 8.043704908345143
4997 POINT 4990 5.839992119376236 8.041429038737206
4998 POINT 4991 5.072106627115973 7.596960962835897
4999 POINT 4992 4.814338839724297 8.045553308551284
5000 POINT 4993 6.874612011818435 7.136622928830665
5001 POINT 4994 7.12777633937579 7.579721871050277
5002 POINT 4995 6.359431291318561 7.142146131422533
5003 POINT 4996 6.866104091313161 8.032890848737603
5004 POINT 4997 6.099795556301682 7.591597724921501
5005 POINT 4998 5.84570847843014 7.145660969130788
5006 POINT 4999 6.353714932264657 8.037914201028951
5007 POINT 5000 6.081229359011346 4.028063957887165
5008 POINT 5001 5.831277611851206 4.472376518875711
5009 POINT 5002 5.818440427341621 3.559379919758002
5010 POINT 5003 6.331070824970244 3.568782868560602
5011 POINT 5004 5.320793662260057 3.555241511663863
5012 POINT 5005 5.570635128218955 3.0959604223373
5013 POINT 5006 5.055437459855198 4.009246871870873
5014 POINT 5007 6.821727892775355 3.591856572778605
5015 POINT 5008 6.558938961105631 3.123172534649443
5016 POINT 5009 6.777765117627584 2.634655229109696
5017 POINT 5010 6.287108049822472 2.611581524891692
5018 POINT 5011 7.244265492278114 2.731384312863897
5019 POINT 5012 7.354837885284381 3.536944361599219
5020 POINT 5013 7.598035916136748 3.04043980858182
5021 POINT 5014 4.299970635453084 7.14850787645576
5022 POINT 5015 3.788870234546398 7.145933669669137
5023 POINT 5016 4.047040109912 7.596235156255416
5024 POINT 5017 5.345228489927225 2.610272286506451
5025 POINT 5018 5.842875255008789 2.614410694600591
5026 POINT 5019 6.061701411530742 2.125893389060844
5027 POINT 5020 5.314751048479676 1.807873046646745
5028 POINT 5021 5.061202116388895 2.210546263008434
5029 POINT 5022 5.970380050087678 1.57731768278398
5030 POINT 5023 5.556020582598091 1.44914323051177
5031 POINT 5024 5.91032202053712 0.893244814956379
5032 POINT 5025 -6.836865785799978 12.49945380288166
5033 POINT 5026 -7.089553213907015 12.94295844989903
5034 POINT 5027 -6.833499178180947 13.3871348946776
5035 POINT 5028 -6.325319961009233 13.38836779917821
5036 POINT 5029 -1.767218052469922 9.83386477079263
5037 POINT 5030 -1.515143883278228 10.28237400844931
5038 POINT 5031 -4.303205496386696 9.835452565483031
5039 POINT 5032 -4.556607857026273 10.28150303033054
5040 POINT 5033 -3.794281023813899 9.835889357263516
5041 POINT 5034 -3.286799988363986 9.836274382571714
5042 POINT 5035 -3.540719111353306 10.28304225808364
5043 POINT 5036 -4.049286373397377 9.3886846899711
5044 POINT 5037 -3.285536068257624 8.939831726257879
5045 POINT 5038 -3.794429645178254 8.941483599185215
5046 POINT 5039 -4.303354117751051 8.94104680740473
5047 POINT 5040 -8.903186047936739 8.909494536004507
5048 POINT 5041 -9.153055229364252 9.360382120771384
5049 POINT 5042 -8.391528260648695 8.915703764693721
5050 POINT 5043 -8.131409949387299 9.367205473050699
5051 POINT 5044 -7.880480215519194 8.920252421455185
5052 POINT 5045 -8.893751097108121 9.810542690182665
5053 POINT 5046 -8.383104174517864 9.813271999453356
5054 POINT 5047 -7.872056129388366 9.81782065621482
5055 POINT 5048 -0.2524838087497524 13.39540810971175
5056 POINT 5049 2.44434774088198e-08 12.95322345942679
5057 POINT 5050 -0.2524838007827911 12.50965988836077
5058 POINT 5051 -0.757533375523636 12.50963474063003
5059 POINT 5052 -1.010043008245645 12.95311658754424
5060 POINT 5053 -1.262608748160552 12.5095278632947
5061 POINT 5054 -5.055438029190892 4.009250597348579
5062 POINT 5055 -4.800176791787235 4.456813104903008
5063 POINT 5056 -4.285157933322742 4.447242053838
5064 POINT 5057 -4.807632465031426 3.545831769185357
5065 POINT 5058 -4.268076983227289 3.565484152107086
5066 POINT 5059 -4.016822847882909 3.997414501763457
5067 POINT 5060 -4.555688689148163 6.701760771737632
5068 POINT 5061 -4.809231035662058 6.255220117419496
5069 POINT 5062 -5.325945436912674 6.259862566172071
5070 POINT 5063 -4.813858667735643 7.152062022074176
5071 POINT 5064 -5.327824915713599 7.150213499506166
5072 POINT 5065 -5.072106938070638 7.596961402009646
5073 POINT 5066 -5.587460861837469 6.7007619399641
5074 POINT 5067 -4.814374102587054 8.940272696222461
5075 POINT 5068 -4.559517374367931 8.493071605436576
5076 POINT 5069 -5.324236901342186 8.938715377757356
5077 POINT 5070 -4.814339024648308 8.045553709415984
5078 POINT 5071 -5.328305272626263 8.043705186847973
5079 POINT 5072 -2.021045274972744 28.82414544323013
5080 POINT 5073 -1.76803673224556 28.37917160193302
5081 POINT 5074 -1.262715411558947 28.37904359188522
5082 POINT 5075 -1.010161179515999 28.82419250185701
5083 POINT 5076 -1.767940371645426 29.27066485235695
5084 POINT 5077 -1.262535281707757 29.27109438297196
5085 POINT 5078 -3.537066675701101 22.64267533516108
5086 POINT 5079 -3.283887565701342 23.08225529095755
5087 POINT 5080 -3.78894527952161 23.0813329672272
5088 POINT 5081 -2.526915358233893 22.64450376122651
5089 POINT 5082 -2.781164941584266 22.20597295586544
5090 POINT 5083 -3.285878205800256 22.20420716902598
5091 POINT 5084 -2.777737218622537 23.96104394944767
5092 POINT 5085 -3.030578038325537 23.52134070986063
5093 POINT 5086 -3.282925349818851 23.96061616261071
5094 POINT 5087 -2.778699434505028 23.08268307779451
5095 POINT 5088 -2.273605830858089 23.08358918012959
5096 POINT 5089 -4.294456553710889 23.08098940888245
5097 POINT 5090 -4.04127744371113 23.52056936467892
5098 POINT 5091 -4.799992926299243 23.08041214616574
5099 POINT 5092 -5.052976054246795 23.52015671029886
5100 POINT 5093 -2.777506769235351 24.84052461662275
5101 POINT 5094 -3.030366432223659 25.28092918756785
5102 POINT 5095 -3.282944193104159 24.84072397314284
5103 POINT 5096 1.330755233786007e-08 25.28052643955282
5104 POINT 5097 -0.2524349013237393 25.72146687178944
5105 POINT 5098 -0.7573602844785909 25.72151112349207
5106 POINT 5099 -0.2524349052544075 24.84066650044989
5107 POINT 5100 -1.514941477347312 26.16264507841994
5108 POINT 5101 -1.767575298832624 26.60489236198012
5109 POINT 5102 -2.272957792445729 26.60516714734652
5110 POINT 5103 8.652257441255252 31.53745954895175
5111 POINT 5104 8.39152909816184 31.0842973257564
5112 POINT 5105 7.880480908934858 31.07974849039663
5113 POINT 5106 8.414839869207476 32.89164191324666
5114 POINT 5107 8.152299658520024 32.43384477376586
5115 POINT 5108 8.913239863919834 31.99135925837855
5116 POINT 5109 9.175113211385597 32.44721832517048
5117 POINT 5110 8.921335274498762 32.89535134269027
5118 POINT 5111 8.401581793046937 31.98514988936742
5119 POINT 5112 7.891317235855443 31.97994506433906
5120 POINT 5113 11.74873159823277 31.58187307730738
5121 POINT 5114 11.47479887261305 31.1209339277706
5122 POINT 5115 11.49828722778247 32.00603438825626
5123 POINT 5116 10.96516324372876 31.99723027702603
5124 POINT 5117 10.70432876392238 31.55113677680682
5125 POINT 5118 10.95876372439194 31.10769117123329
5126 POINT 5119 13.5073245348637 15.16042310084938
5127 POINT 5120 13.7722487569601 15.60568703807935
5128 POINT 5121 12.98766647301654 15.15683542879488
5129 POINT 5122 11.95878835004167 18.67894453890096
5130 POINT 5123 11.43914146078369 18.67926892442837
5131 POINT 5124 11.69940005256377 19.11861634915865
5132 POINT 5125 11.95797422263067 17.80027054191047
5133 POINT 5126 12.22006423253389 18.24016781356158
5134 POINT 5127 11.95483938702825 19.55914746318869
5135 POINT 5128 11.43519249777028 19.55947184871609
5136 POINT 5129 11.17515809731908 20.00000102052662
5137 POINT 5130 10.9197187628546 19.55946990649659
5138 POINT 5131 11.43519863683714 20.44052947238522
5139 POINT 5132 11.95485752643337 20.44085700867212
5140 POINT 5133 12.20710913316478 20.00000805421938
5141 POINT 5134 8.610508600834709 17.35899258697246
5142 POINT 5135 8.865677394959015 17.79910803198256
5143 POINT 5136 10.66370546167478 19.11911380302585
5144 POINT 5137 10.40367106122358 19.55964297483639
5145 POINT 5138 9.890168631286432 19.55964267359267
5146 POINT 5139 9.634489721044543 19.11940538477516
5147 POINT 5140 -4.8003808551864 24.84120085001912
5148 POINT 5141 -5.306981717815686 24.84178343725863
5149 POINT 5142 -5.054251160006624 25.28243433877643
5150 POINT 5143 -5.55994363703766 24.40093575380166
5151 POINT 5144 -5.306137401794322 23.96031878138243
5152 POINT 5145 -4.799950065447936 23.96038787741774
5153 POINT 5146 -11.95797406324265 17.80027060346049
5154 POINT 5147 -12.47950852290421 17.80084131416471
5155 POINT 5148 -12.4753984618416 16.92143972111907
5156 POINT 5149 -11.95613484774709 16.91958059439132
5157 POINT 5150 -11.69841188473828 17.35997812379403
5158 POINT 5151 -13.25572876182561 16.4853991857355
5159 POINT 5152 -13.51392938584669 16.04511550981153
5160 POINT 5153 -14.04907256824607 16.92994355105175
5161 POINT 5154 -14.30347489893017 16.49353671661515
5162 POINT 5155 -17.42133850836408 16.46621230299164
5163 POINT 5156 -17.19812027591119 16.01499464947636
5164 POINT 5157 -16.66495740057217 16.04359032158593
5165 POINT 5158 -16.48596411693903 18.24387092939627
5166 POINT 5159 -16.7768887765254 18.67109514329076
5167 POINT 5160 -17.3450998387438 18.66931497274819
5168 POINT 5161 -17.55961494440304 18.23365541782893
5169 POINT 5162 -15.13808693917218 21.32895091825263
5170 POINT 5163 -14.87289120763043 20.89506516536105
5171 POINT 5164 -15.08660377556885 20.45033549308172
5172 POINT 5165 -15.55540002119723 20.44995148230189
5173 POINT 5166 -15.67928522368949 21.32845399962185
5174 POINT 5167 -15.40246238141945 21.75672542573599
5175 POINT 5168 -15.97041154478462 20.90170693614084
5176 POINT 5169 -15.10960308030174 23.06196306963319
5177 POINT 5170 -14.85525283921842 22.62543744619248
5178 POINT 5171 -15.12585041525192 22.18962314831048
5179 POINT 5172 -15.63603303387482 23.06058114205074
5180 POINT 5173 -15.66704869976923 22.1891262296797
5181 POINT 5174 -15.93226468292499 22.62311470327069
5182 POINT 5175 -15.60763493081995 24.82273747748248
5183 POINT 5176 -16.13755718211401 24.82813379087301
5184 POINT 5177 -16.07300703291225 25.70885103720212
5185 POINT 5178 -16.41272779402701 25.26878316611768
5186 POINT 5179 -15.34000762949547 25.26618761047478
5187 POINT 5180 -15.57192119263 25.71183375688789
5188 POINT 5181 -4.801571669348379 25.72385239038944
5189 POINT 5182 -5.308172531977664 25.72443497762895
5190 POINT 5183 -5.562737248413449 26.16686877343349
5191 POINT 5184 -5.310107189970187 26.609152448284
5192 POINT 5185 -4.802971256910249 26.60801531258947
5193 POINT 5186 -6.341450194137229 30.17268166580354
5194 POINT 5187 -6.851155409199826 30.1753372598659
5195 POINT 5188 -6.859007872044449 31.0718020351126
5196 POINT 5189 -6.346618677552621 31.06677857324325
5197 POINT 5190 -5.827084132913434 29.27699951540124
5198 POINT 5191 -6.079388407703597 28.83197972224318
5199 POINT 5192 -5.823064947564565 28.38586492051645
5200 POINT 5193 -6.331860416471411 28.38790677782728
5201 POINT 5194 -5.315146554267603 28.38430764348843
5202 POINT 5195 -5.062470599146903 28.82834390262268
5203 POINT 5196 -4.556608069675993 29.71849731589442
5204 POINT 5197 -4.811613479718268 30.165702029606
5205 POINT 5198 -5.317804366752521 29.27479472056045
5206 POINT 5199 -5.574295560869203 29.72185637102933
5207 POINT 5200 -4.809682027102673 29.27320075825078
5208 POINT 5201 -8.37012581029477 28.39701947502677
5209 POINT 5202 -8.623177182075818 27.95266494359922
5210 POINT 5203 -8.365439583299061 27.50635270506456
5211 POINT 5204 -7.855387859831518 27.50430329700417
5212 POINT 5205 -5.055440020725587 35.99075265980588
5213 POINT 5206 -4.807634831823819 36.45417118840255
5214 POINT 5207 -5.320796682809582 36.4447576399531
5215 POINT 5208 -4.268078857383937 36.43451722793773
5216 POINT 5209 -4.800178501361454 35.54318914608771
5217 POINT 5210 -5.313340352347217 35.53377559763826
5218 POINT 5211 -4.285159704616173 35.55275980617505
5219 POINT 5212 -3.759706120423524 35.55518051249211
5220 POINT 5213 -3.243368772057292 35.56417992560635
5221 POINT 5214 -2.982690542380816 36.03499790770628
5222 POINT 5215 -4.016824585547176 36.00258691457239
5223 POINT 5216 -3.742625273191289 36.4369379342548
5224 POINT 5217 -3.229663611360475 36.47669964102222
5225 POINT 5218 -7.354840159678442 36.4630586256994
5226 POINT 5219 -7.903282692818332 36.56886240561009
5227 POINT 5220 -7.598040633279414 36.95956098877416
5228 POINT 5221 -7.126972347222575 36.01744750407371
5229 POINT 5222 -6.821730287683658 36.40814608723778
5230 POINT 5223 -9.020623545645163 37.38900516343447
5231 POINT 5224 -9.424243510782267 37.64039778849911
5232 POINT 5225 -8.55965244144466 38.07573926529626
5233 POINT 5226 -8.556945323688646 37.47116104503266
5234 POINT 5227 -8.146988554944242 37.6652934901699
5235 POINT 5228 -8.61016138837582 36.98320888708665
5236 POINT 5229 -8.948133722619318 34.7550130983436
5237 POINT 5230 -8.426272911082375 34.70970901961947
5238 POINT 5231 -8.68619953008956 35.18782904777932
5239 POINT 5232 -8.171918681535782 34.25045922190498
5240 POINT 5233 -7.909984489006024 34.68327517134071
5241 POINT 5234 -8.934156830967638 33.81427302246146
5242 POINT 5235 -8.427661598312522 33.81056375948693
5243 POINT 5236 -7.402798616599393 34.67408020217368
5244 POINT 5237 -7.657152846145986 35.13332999988818
5245 POINT 5238 -7.405024596478357 35.59824753662824
5246 POINT 5239 -7.912210468884988 35.60744250579526
5247 POINT 5240 -6.871914724483572 35.54333499816662
5248 POINT 5241 -6.888813562914232 34.66573357218922
5249 POINT 5242 -5.838136677064515 34.62974945206364
5250 POINT 5243 -6.36080931903647 34.64062034113785
5251 POINT 5244 -6.621962729861593 35.09902179966978
5252 POINT 5245 -6.34391048060581 35.51822176711525
5253 POINT 5246 -5.576018659483458 35.08006032626925
5254 POINT 5247 -5.831280178847591 35.52762383998741
5255 POINT 5248 -6.081232173469569 35.97193703848426
5256 POINT 5249 -6.414624379431359 38.42551013672836
5257 POINT 5250 -6.06170323738905 37.87410771123918
5258 POINT 5251 -6.85513583736405 38.26715632721284
5259 POINT 5252 -6.765677367949003 38.82088227601641
5260 POINT 5253 -5.842877995505253 37.38558927504278
5261 POINT 5254 -5.57063863640637 36.90403968955684
5262 POINT 5255 -5.818443825308139 36.44062116096016
5263 POINT 5256 -6.287111020788723 37.38842164676031
5264 POINT 5257 -6.558941939522226 36.87683020971369
5265 POINT 5258 -6.777767181406023 37.36534864591009
5266 POINT 5259 -6.331074127066358 36.431219088088
5267 POINT 5260 8.876288812510946 27.50911496320762
5268 POINT 5261 9.129651777699287 27.06523084655123
5269 POINT 5262 8.872303279133433 26.61976424763491
5270 POINT 5263 8.361773132138943 26.61807490241647
5271 POINT 5264 8.108499459230185 27.06075329726731
5272 POINT 5265 8.370125922301042 28.3970195492633
5273 POINT 5266 7.859855674189975 28.39452253470644
5274 POINT 5267 8.623177303212083 27.95266501854642
5275 POINT 5268 7.602700800558854 27.94780788776358
5276 POINT 5269 8.365439690317341 27.5063527674756
5277 POINT 5270 7.85538794993132 27.50430335260611
5278 POINT 5271 2.013562028795792 7.580836026957666
5279 POINT 5272 2.26255201348978 7.128472213510832
5280 POINT 5273 2.77500305718747 8.037874485340598
5281 POINT 5274 3.027617726611467 7.589434151032957
5282 POINT 5275 3.283325039581317 8.042101283776436
5283 POINT 5276 4.303354076505858 8.941046540609735
5284 POINT 5277 4.559517266307168 8.493071306044598
5285 POINT 5278 4.303318937401558 8.046327360535352
5286 POINT 5279 3.794429651747119 8.941483306382132
5287 POINT 5280 3.539603867070875 8.492193488056373
5288 POINT 5281 3.792218536494872 8.04375315374873
5289 POINT 5282 1.765500287132538 8.935229901889144
5290 POINT 5283 1.512133152393508 8.483328312230684
5291 POINT 5284 1.26052017194238 8.933024273296105
5292 POINT 5285 2.268204505900643 8.035370646710422
5293 POINT 5286 2.523911818870494 8.488037779453901
5294 POINT 5287 2.271387884601659 8.93645405223478
5295 POINT 5288 1.762470790478816 8.030999321070967
5296 POINT 5289 0.7570181339856141 9.832621206105948
5297 POINT 5290 0.2521486956286256 9.832463953535083
5298 POINT 5291 1.009092319370833 9.384111939311431
5299 POINT 5292 7.294083631537163e-08 9.383298033689051
5300 POINT 5293 0.755725184631803 8.932210349652973
5301 POINT 5294 0.2521487063815567 8.931176081657238
5302 POINT 5295 0.5001445506630317 6.653216377611718
5303 POINT 5296 0.2509575290254266 7.109769236321039
5304 POINT 5297 -0.2509574054255117 7.109769247532057
5305 POINT 5298 -0.5001444446786542 6.653216389361097
5306 POINT 5299 -0.2485632222434483 6.187417819036827
5307 POINT 5300 1.486808276477663 4.815803748516092
5308 POINT 5301 1.233115516860302 4.336364274084247
5309 POINT 5302 0.7400739793290316 4.319006830385741
5310 POINT 5303 0.4944715681245202 4.791077890962915
5311 POINT 5304 1.247341716301759 6.199670761156298
5312 POINT 5305 1.750101329007567 6.207339947551936
5313 POINT 5306 1.241668873888472 5.270356238309256
5314 POINT 5307 1.739533777842383 5.288390330886163
5315 POINT 5308 6.319776508411969 23.08033816696384
5316 POINT 5309 6.57365161657976 22.64022355419007
5317 POINT 5310 5.813247233137025 22.20059394145463
5318 POINT 5311 5.559612309276712 22.64037942157165
5319 POINT 5312 5.812595440385603 23.08012398834565
5320 POINT 5313 6.827537292599711 22.20035520381776
5321 POINT 5314 7.081929764721854 21.760379613744
5322 POINT 5315 6.067132909156976 21.76072559108232
5323 POINT 5316 6.321207979898867 21.32076562341935
5324 POINT 5317 6.319913133203913 22.20029199662393
5325 POINT 5318 6.828119358218929 21.32047871636039
5326 POINT 5319 -15.60761428771511 15.17729136075921
5327 POINT 5320 -15.8759118955204 15.61135550393402
5328 POINT 5321 -15.07838575053652 15.17331221426195
5329 POINT 5322 5.313338001627086 4.46622421620718
5330 POINT 5323 4.800176500099562 4.456810078993488
5331 POINT 5324 5.57601665209557 4.919939725998326
5332 POINT 5325 3.782261521536312 6.243544847125578
5333 POINT 5326 4.035803768525128 5.797003854445578
5334 POINT 5327 4.295343007076298 6.25166539718948
5335 POINT 5328 5.32782445313552 7.150212913721168
5336 POINT 5329 5.5874601881524 6.7007613202222
5337 POINT 5330 4.555688461472631 6.70175982734103
5338 POINT 5331 4.809230708461447 6.255218834661029
5339 POINT 5332 4.813858336838233 7.152061313927309
5340 POINT 5333 -5.310107499537395 13.39084792377241
5341 POINT 5334 -5.817351857309676 13.38983227473242
5342 POINT 5335 -6.07268972719344 12.94608409290475
5343 POINT 5336 -5.830755763497873 9.830536332965101
5344 POINT 5337 -5.574295325382317 10.27814411627772
5345 POINT 5338 -5.827083974112147 10.72300100372588
5346 POINT 5339 -5.317804215979157 10.7252057153338
5347 POINT 5340 -6.328097480913719 12.50141410567111
5348 POINT 5341 -6.584305435820698 12.05624829120225
5349 POINT 5342 -5.820129377214162 12.50287858122533
5350 POINT 5343 -2.273653862835852 10.72932296672886
5351 POINT 5344 -2.779998427153544 10.72963483000736
5352 POINT 5345 -2.526893511585702 10.28311542011334
5353 POINT 5346 -3.03325797369162 11.17544935978157
5354 POINT 5347 -3.286081789785646 11.62005936335257
5355 POINT 5348 -2.77958259449772 11.62045238019389
5356 POINT 5349 -3.793978657891382 10.72885678785785
5357 POINT 5350 -3.28649762244147 10.72924181316605
5358 POINT 5351 -3.033012140510429 9.388247926083039
5359 POINT 5352 -2.778186307943474 8.938958170589331
5360 POINT 5353 -2.271387729106642 8.936454262492179
5361 POINT 5354 -2.019774768934057 9.386150177582453
5362 POINT 5355 -2.273105663732145 9.835088963624671
5363 POINT 5356 -2.779450228049837 9.835400826903166
5364 POINT 5357 -5.5822245505022 8.490021566077278
5365 POINT 5358 -5.835924092640452 8.936439449580325
5366 POINT 5359 -5.83999246392453 8.041429258670941
5367 POINT 5360 -6.353715300277041 8.037914311090102
5368 POINT 5361 -0.7574091937513752 13.39536386100999
5369 POINT 5362 -0.5049253668923982 13.83754850584218
5370 POINT 5363 -1.262484566388291 13.39525698367467
5371 POINT 5364 -0.7573602894107085 14.27848893565566
5372 POINT 5365 -1.262291965254416 14.27845371053971
5373 POINT 5366 -3.28331274272134 14.2777561649855
5374 POINT 5367 -3.536686451350343 13.83613863307331
5375 POINT 5368 -2.777875273536981 14.27795550083099
5376 POINT 5369 -2.272576442111081 23.96112623819538
5377 POINT 5370 -2.524923753604395 24.40040169094545
5378 POINT 5371 -2.272345992723895 24.84060690537046
5379 POINT 5372 -1.009801486872866 25.28056166755413
5380 POINT 5373 -1.262291950595193 25.72154635362897
5381 POINT 5374 -1.767382679741587 25.721695622482
5382 POINT 5375 -2.01983108067216 25.2806633643694
5383 POINT 5376 -2.272480607424279 25.72176208916036
5384 POINT 5377 -1.767248065041203 24.84054043869209
5385 POINT 5378 -2.778352392893433 26.60544966214032
5386 POINT 5379 -3.284192720232348 26.60594747324546
5387 POINT 5380 -2.52542680694141 26.16307686206677
5388 POINT 5381 -2.777875207871983 25.72204460395416
5389 POINT 5382 -3.28331263174079 25.72224396047425
5390 POINT 5383 6.866104760713585 31.96710990335178
5391 POINT 5384 7.380362796677328 31.97547094211897
5392 POINT 5385 7.629644931204242 31.52677605772053
5393 POINT 5386 6.606301269717369 31.51727851965659
5394 POINT 5387 7.369526469756744 31.07527436817653
5395 POINT 5388 6.859007733442916 31.07180208214582
5396 POINT 5389 13.51392964722839 16.04511534389315
5397 POINT 5390 14.03639847868913 16.04943449810747
5398 POINT 5391 13.52076444975717 16.92688894744077
5399 POINT 5392 14.04907281755069 16.92994337381335
5400 POINT 5393 14.30347517478823 16.49353649549375
5401 POINT 5394 11.18084815906273 18.23937667376692
5402 POINT 5395 10.92145986158483 18.67904848402461
5403 POINT 5396 10.40541215995382 18.6792215523644
5404 POINT 5397 11.43896757839668 17.79930462984569
5405 POINT 5398 11.69841204276576 17.35997805758548
5406 POINT 5399 10.92128597919782 17.79908418944193
5407 POINT 5400 10.66359917374389 17.35875830998669
5408 POINT 5401 10.40547975440994 17.79883035390792
5409 POINT 5402 8.865944840957612 16.91817543653783
5410 POINT 5403 8.354985365778326 16.91842865090259
5411 POINT 5404 8.355742015396309 16.03671800269559
5412 POINT 5405 8.100430211024863 16.47811944809296
5413 POINT 5406 9.377722904526436 17.79898153735976
5414 POINT 5407 9.890885340997441 17.79886408828225
5415 POINT 5408 9.634630512485 17.35862192353019
5416 POINT 5409 10.14857214645137 18.23918996773749
5417 POINT 5410 9.89081774654132 18.67925528673874
5418 POINT 5411 9.377649707542098 18.67937380014824
5419 POINT 5412 9.121932223471456 18.23935019673461
5420 POINT 5413 12.7301955341313 15.59870120865399
5421 POINT 5414 12.46808208164849 15.15416875358384
5422 POINT 5415 10.66170303024074 13.81985063353565
5423 POINT 5416 10.91914277660979 13.37360320785854
5424 POINT 5417 11.43075873813842 13.37311649985818
5425 POINT 5418 11.68774535289223 13.8200824382397
5426 POINT 5419 -4.294356920184748 24.84106161932534
5427 POINT 5420 -3.788433699542313 24.84070001560085
5428 POINT 5421 -4.041727076734903 25.28149014781243
5429 POINT 5422 -4.547087477993811 24.40041071780754
5430 POINT 5423 -3.535574036554005 24.40029544465575
5431 POINT 5424 -3.788414856257005 23.96059220506871
5432 POINT 5425 -4.293926130446284 23.96024864672396
5433 POINT 5426 -13.52905046638359 17.80348872203954
5434 POINT 5427 -13.79175767275845 17.36796966650665
5435 POINT 5428 -13.52076421705971 16.92688909198984
5436 POINT 5429 -13.00252392740061 17.80282689423603
5437 POINT 5430 -12.998413866338 16.9234253011904
5438 POINT 5431 -12.7404339170757 17.36292962737342
5439 POINT 5432 -14.02979306030074 15.16474248285489
5440 POINT 5433 -14.55273569758199 15.16992825407098
5441 POINT 5434 -14.03639819104111 16.04943470346083
5442 POINT 5435 -14.56179397742396 16.05410844354104
5443 POINT 5436 -13.77224846434048 15.60568723673743
5444 POINT 5437 -14.82036732248942 15.61339039057769
5445 POINT 5438 -15.08744403037848 16.05749240373201
5446 POINT 5439 -16.2090642477196 17.81010190909618
5447 POINT 5440 -15.93239653765298 17.37709080090277
5448 POINT 5441 -16.75104577713385 17.80975889004021
5449 POINT 5442 -17.29733902574828 17.80237948696045
5450 POINT 5443 -17.82900832379805 17.79250699444906
5451 POINT 5444 -18.125149458915 17.3358334365596
5452 POINT 5445 -17.74265051816197 16.90620584174569
5453 POINT 5446 -17.02043915652885 17.36861046666035
5454 POINT 5447 -17.24542039534538 16.92123752482653
5455 POINT 5448 -16.69912714673096 16.9286169279063
5456 POINT 5449 -6.088630944097952 30.61808470458812
5457 POINT 5450 -5.83075607699084 30.16946420465471
5458 POINT 5451 -5.321476310829926 30.16725940981392
5459 POINT 5452 -5.068073995839905 30.61330986323137
5460 POINT 5453 -5.324237322301012 31.06128512670801
5461 POINT 5454 -5.835924560406232 31.06356111209442
5462 POINT 5455 -7.109843760575517 30.62477446137646
5463 POINT 5456 -7.369526571375625 31.07527433075212
5464 POINT 5457 -8.131410593699739 30.63279557430232
5465 POINT 5458 -7.880480933021181 31.07974846151187
5466 POINT 5459 -7.872056536659996 30.1821803785594
5467 POINT 5460 -7.361674108531002 30.17880955550542
5468 POINT 5461 -7.613368185284306 29.73274317704884
5469 POINT 5462 -7.859855589284646 28.39452247461595
5470 POINT 5463 -8.117653318329905 28.84163918972367
5471 POINT 5464 -7.097783486965113 28.83658188443342
5472 POINT 5465 -7.355184427237546 29.28425727165385
5473 POINT 5466 -7.865566855366541 29.28762809470784
5474 POINT 5467 -6.840628617274074 28.38986724165644
5475 POINT 5468 -6.584305157135041 27.94375243992971
5476 POINT 5469 -7.602700719593607 27.94780783183896
5477 POINT 5470 -7.345760498175617 27.50220836892409
5478 POINT 5471 -7.350228227628744 28.39242754653586
5479 POINT 5472 -6.836865316533313 27.50054699198497
5480 POINT 5473 -8.859668248791966 36.47820331889234
5481 POINT 5474 -9.192245205163893 36.13326199675004
5482 POINT 5475 -8.926778614439051 35.64424337939984
5483 POINT 5476 -8.395990026835449 36.56035920049054
5484 POINT 5477 -8.152789553234477 36.06385683741578
5485 POINT 5478 -8.404917802902107 35.59893930067572
5486 POINT 5479 -9.445446661180085 34.74868923560489
5487 POINT 5480 -9.928438211384101 34.70959839015399
5488 POINT 5481 -9.1855200421729 34.27056920744505
5489 POINT 5482 -10.20212715258456 34.27925189416473
5490 POINT 5483 -9.94558386098727 33.81809877026199
5491 POINT 5484 -9.431469769528404 33.80794915972277
5492 POINT 5485 -6.972437622679337 37.78020738278309
5493 POINT 5486 -7.24426854141284 37.26861594573647
5494 POINT 5487 -7.793216463077668 37.97434844713221
5495 POINT 5488 -7.792711074552729 37.37441972564716
5496 POINT 5489 -7.321637197370867 38.17042362703923
5497 POINT 5490 -7.678418548302079 38.46731947176784
5498 POINT 5491 2.770028761860395 7.135494617296446
5499 POINT 5492 2.513285031132556 6.678759478210158
5500 POINT 5493 3.271742031244156 6.237332593188722
5501 POINT 5494 3.531281269795326 6.691994135932626
5502 POINT 5495 3.278350744254242 7.139721415732282
5503 POINT 5496 0.2485632276968463 6.187417834842025
5504 POINT 5497 0.7487077343841402 6.190600158863577
5505 POINT 5498 0.9957603933355736 5.733872218386605
5506 POINT 5499 -3.852233976253672e-08 5.724801600288686
5507 POINT 5500 0.7430348919708534 5.261285636016535
5508 POINT 5501 0.2485630875716218 5.254593871040265
5509 POINT 5502 -15.61382878159145 16.05886928995985
5510 POINT 5503 -16.1437233016679 16.05345044312521
5511 POINT 5504 -16.40287428664322 16.49110410761176
5512 POINT 5505 -15.63614367756524 16.93957798060823
5513 POINT 5506 -15.35525543652598 16.4995873429232
5514 POINT 5507 -16.17789304782668 16.93847704944558
5515 POINT 5508 1.997790912210466 5.756661433504865
5516 POINT 5509 2.253497865964841 6.221058560377475
5517 POINT 5510 2.760974614335455 6.228080964163087
5518 POINT 5511 3.011954866076441 5.77963167535604
5519 POINT 5512 2.242930314799657 5.302108943711701
5520 POINT 5513 4.543058481172607 4.904216705369631
5521 POINT 5514 4.288462587269439 5.349885195959473
5522 POINT 5515 4.803481147968283 5.359455913919637
5523 POINT 5516 3.775381101729453 5.34176464589557
5524 POINT 5517 4.285157939400719 4.447239361033324
5525 POINT 5518 3.759704530313033 4.444818867162756
5526 POINT 5519 5.325944699989877 6.259861521617189
5527 POINT 5520 5.843828725284497 6.255309577026809
5528 POINT 5521 6.104985755684442 5.803539343166328
5529 POINT 5522 5.838134749720831 5.370250903544328
5530 POINT 5523 5.065599245593544 5.809767091465639
5531 POINT 5524 5.320195139496712 5.364098600875796
5532 POINT 5525 -4.802971484868761 13.39198497902312
5533 POINT 5526 -4.296500513511889 13.39272959833429
5534 POINT 5527 -5.057585608825249 12.94868562370967
5535 POINT 5528 -6.335879478904616 10.72095926303271
5536 POINT 5529 -6.079388369501457 11.1680208620888
5537 POINT 5530 -6.84062880750044 11.61013355490421
5538 POINT 5531 -7.097783541825249 11.16341899720847
5539 POINT 5532 -6.331860502614183 11.61209385769366
5540 POINT 5533 -5.823064997821714 11.61413559838683
5541 POINT 5534 -6.341449844176644 9.827318953093449
5542 POINT 5535 -6.08863052415921 9.381915881388753
5543 POINT 5536 -6.346618173319224 8.933222069708673
5544 POINT 5537 -2.273750259397786 11.62081619889232
5545 POINT 5538 -2.526574075491812 12.06542620246332
5546 POINT 5539 -2.27331255849431 12.50912509652447
5547 POINT 5540 -2.779144893594244 12.50876127782604
5548 POINT 5541 -1.767930060637219 12.50939986568534
5549 POINT 5542 -1.51542042791521 12.06591801877112
5550 POINT 5543 -2.020500878739651 12.95273494104806
5551 POINT 5544 -7.369525954258662 8.924726485537136
5552 POINT 5545 -7.629644265520056 8.473224777180157
5553 POINT 5546 -6.606300873029995 8.482722239581177
5554 POINT 5547 -6.86610443150657 8.032890912771032
5555 POINT 5548 -6.859007304548753 8.928198671389605
5556 POINT 5549 -7.109843254547891 9.375226315664634
5557 POINT 5550 -7.380362326127036 8.024529817709622
5558 POINT 5551 -2.525426847734203 13.83692324382117
5559 POINT 5552 -2.272480651437661 14.27823799621374
5560 POINT 5553 -1.767382702124846 14.27830445157146
5561 POINT 5554 -1.514941488764452 13.83735499817217
5562 POINT 5555 -1.767575303258722 13.39510772470642
5563 POINT 5556 -2.272957801115813 13.39483295554556
5564 POINT 5557 -2.778352423215133 13.39455046016281
5565 POINT 5558 -1.767492689297242 23.96146211472275
5566 POINT 5559 -2.020306154315385 23.52210437322497
5567 POINT 5560 -1.263131319383013 23.08451873173783
5568 POINT 5561 -1.01019165252415 23.52275060399421
5569 POINT 5562 -1.768522078044251 23.08392505665697
5570 POINT 5563 -1.262295067277426 24.84067058321086
5571 POINT 5564 -1.514809979329161 24.40061412421192
5572 POINT 5565 -0.7575089425560693 23.96190261348339
5573 POINT 5566 -0.5049284856589678 24.40077541610661
5574 POINT 5567 -0.7573634011608242 24.84063535307396
5575 POINT 5568 -1.262539691533465 23.96159225924151
5576 POINT 5569 -4.549022158760552 26.16510835246748
5577 POINT 5570 -4.295100786789511 25.72310771361495
5578 POINT 5571 -3.789177566147076 25.72274610989047
5579 POINT 5572 -3.5366863417954 26.16386152627678
5580 POINT 5573 -3.790057654638633 26.60644962266168
5581 POINT 5574 -4.296500374351382 26.60727063581498
5582 POINT 5575 10.92066954525162 16.91793455038633
5583 POINT 5576 10.40486332046374 16.91768071485232
5584 POINT 5577 10.40472607340097 16.03513246006513
5585 POINT 5578 10.91930146715205 16.03530284192124
5586 POINT 5579 10.66209384858155 15.5935783467344
5587 POINT 5580 12.47199488428663 16.03898490629723
5588 POINT 5581 12.99157927565469 16.04165158150828
5589 POINT 5582 12.99841407818347 16.92342518505589
5590 POINT 5583 12.47539865640488 16.92143962440089
5591 POINT 5584 13.25572899738372 16.48539904153639
5592 POINT 5585 11.95273125070042 16.03712579643803
5593 POINT 5586 11.43576030048511 16.03598289401182
5594 POINT 5587 11.69364019254794 15.59489163101673
5595 POINT 5588 11.17839252530453 16.47753700734255
5596 POINT 5589 11.43712837858468 16.91861460247691
5597 POINT 5590 11.95613502281867 16.91958051454169
5598 POINT 5591 12.21411499222381 16.48007616929232
5599 POINT 5592 11.95093625080717 15.15244834498486
5600 POINT 5593 11.43396530059186 15.15130544255865
5601 POINT 5594 11.43270011507272 14.26415543114492
5602 POINT 5595 11.94630659667062 14.26478916362155
5603 POINT 5596 12.20840718969241 14.71058256512575
5604 POINT 5597 9.122219499790404 16.47724514251171
5605 POINT 5598 9.377742734846787 16.91780907858158
5606 POINT 5599 9.890905171317794 16.91769162950407
5607 POINT 5600 10.14797554282553 16.47686786990372
5608 POINT 5601 9.890767924255025 16.03514337471688
5609 POINT 5602 10.91783758504318 14.26368304084108
5610 POINT 5603 10.40540174398959 14.26408496861366
5611 POINT 5604 10.40452737681125 15.15066267039869
5612 POINT 5605 10.91910277056232 15.15083305225481
5613 POINT 5606 11.17639882882156 14.70838976622293
5614 POINT 5607 10.14864614667206 14.70832398270322
5615 POINT 5608 9.89163722469128 15.15106927718282
5616 POINT 5609 3.51170272767204 4.885646738160905
5617 POINT 5610 3.243367337511309 4.435819617914195
5618 POINT 5611 2.748276492019028 5.323513767621375
5619 POINT 5612 2.490019357650945 4.85524266500267
5620 POINT 5613 3.259043908927729 5.332765396647009
5621 POINT 5614 2.734686977480409 4.405829547072493
5622 POINT 5615 -3.031723722491756 12.95196238977117
5623 POINT 5616 -3.284985239489258 12.50826349571002
5624 POINT 5617 -4.044006831271692 12.95064364330777
5625 POINT 5618 -3.790057750626966 13.39355056268168
5626 POINT 5619 -3.284192769110147 13.39405267804679
5627 POINT 5620 -3.792541619613724 11.61935880772859
5628 POINT 5621 -3.538866240419825 12.0643618281409
5629 POINT 5622 -3.791445069317336 12.50756294008603
5630 POINT 5623 -4.297887832202258 12.50674197573865
5631 POINT 5624 -6.851155057129612 9.824663480890202
5632 POINT 5625 -6.593280296468273 10.27328393246655
5633 POINT 5626 -7.355184359388906 10.7157436666423
5634 POINT 5627 -7.613367931970085 10.26725782144039
5635 POINT 5628 -7.36167370683952 9.821191295037732
5636 POINT 5629 -6.845584691857582 10.71830379082946
5637 POINT 5630 -1.76803668438193 11.62082851212063
5638 POINT 5631 -2.021045203387837 11.17585468985119
5639 POINT 5632 -1.767940287819996 10.72933527995718
5640 POINT 5633 -1.262715371905262 11.62095650973
5641 POINT 5634 -1.010161141140113 11.17580760248892
5642 POINT 5635 -1.262535223830214 10.72890573157164
5643 POINT 5636 9.378288957212938 16.03556981048882
5644 POINT 5637 8.866491063323762 16.03593616844507
5645 POINT 5638 8.611811472818843 15.5950426706727
5646 POINT 5639 8.867790365254811 15.15257222445195
5647 POINT 5640 9.379158257649195 15.15149571295476
5648 POINT 5641 9.635039487788383 15.59383440065023
5649 POINT 5642 -4.299837112326497 11.6184558241427
5650 POINT 5643 -4.047052661692318 11.17415335935438
5651 POINT 5644 -4.301274150604154 10.72795380427197
5652 POINT 5645 -5.062470509557039 11.17165648927523
5653 POINT 5646 -4.809681860827208 10.72679960182707
5654 POINT 5647 -4.805074905311793 12.50557281219472
5655 POINT 5648 -5.312210919980426 12.50443575694401
5656 POINT 5649 -4.552513143357436 12.06249210897299
5657 POINT 5650 -5.567618673700705 12.05976576971038
5658 POINT 5651 -4.807024185436029 11.61728666059878
5659 POINT 5652 -5.315146540587978 11.61569277410551
5660
5661 END POINTS LIST
5662
5663
5664
5665 BEGIN MESH STRUCTURE DESCRIPTION
5666
5667 CONVEX 0 GT_PK(2,2) 258 1447 259 1448 1449 293
5668 CONVEX 1 GT_PK(2,2) 25 1450 10 1451 1452 0
5669 CONVEX 2 GT_PK(2,2) 18 1453 17 1454 1455 36
5670 CONVEX 3 GT_PK(2,2) 1426 1456 1440 1457 1458 4
5671 CONVEX 4 GT_PK(2,2) 824 1459 823 1460 1461 863
5672 CONVEX 5 GT_PK(2,2) 824 1462 784 1459 1463 823
5673 CONVEX 6 GT_PK(2,2) 1058 1464 1020 1465 1466 1021
5674 CONVEX 7 GT_PK(2,2) 728 1467 767 1468 1469 768
5675 CONVEX 8 GT_PK(2,2) 395 1470 394 1471 1472 357
5676 CONVEX 9 GT_PK(2,2) 225 1473 258 1474 1447 259
5677 CONVEX 10 GT_PK(2,2) 160 1475 192 1476 1477 191
5678 CONVEX 11 GT_PK(2,2) 224 1478 192 1479 1477 191
5679 CONVEX 12 GT_PK(2,2) 224 1480 225 1481 1473 258
5680 CONVEX 13 GT_PK(2,2) 224 1480 225 1478 1482 192
5681 CONVEX 14 GT_PK(2,2) 216 1483 185 1484 1485 186
5682 CONVEX 15 GT_PK(2,2) 280 1486 281 1487 1488 247
5683 CONVEX 16 GT_PK(2,2) 280 1486 281 1489 1490 315
5684 CONVEX 17 GT_PK(2,2) 64 1491 65 1492 1493 88
5685 CONVEX 18 GT_PK(2,2) 6 1494 20 1495 1496 5
5686 CONVEX 19 GT_PK(2,2) 21 1497 6 1498 1494 20
5687 CONVEX 20 GT_PK(2,2) 21 1497 6 1499 1500 7
5688 CONVEX 21 GT_PK(2,2) 1428 1501 1442 1502 1503 1443
5689 CONVEX 22 GT_PK(2,2) 1408 1504 1426 1505 1506 1407
5690 CONVEX 23 GT_PK(2,2) 1373 1507 1396 1508 1509 1397
5691 CONVEX 24 GT_PK(2,2) 1431 1510 1430 1511 1512 1412
5692 CONVEX 25 GT_PK(2,2) 1431 1513 1445 1514 1515 1446
5693 CONVEX 26 GT_PK(2,2) 1431 1510 1430 1513 1516 1445
5694 CONVEX 27 GT_PK(2,2) 1218 1517 1185 1518 1519 1184
5695 CONVEX 28 GT_PK(2,2) 1218 1517 1185 1520 1521 1219
5696 CONVEX 29 GT_PK(2,2) 745 1522 705 1523 1524 3
5697 CONVEX 30 GT_PK(2,2) 745 1525 784 1523 1526 3
5698 CONVEX 31 GT_PK(2,2) 782 1527 743 1528 1529 744
5699 CONVEX 32 GT_PK(2,2) 782 1527 743 1530 1531 781
5700 CONVEX 33 GT_PK(2,2) 1165 1532 1130 1533 1534 1129
5701 CONVEX 34 GT_PK(2,2) 1262 1535 1229 1536 1537 1230
5702 CONVEX 35 GT_PK(2,2) 1164 1538 1198 1539 1540 1199
5703 CONVEX 36 GT_PK(2,2) 1164 1541 1165 1542 1533 1129
5704 CONVEX 37 GT_PK(2,2) 1164 1541 1165 1539 1543 1199
5705 CONVEX 38 GT_PK(2,2) 1232 1544 1198 1545 1540 1199
5706 CONVEX 39 GT_PK(2,2) 1232 1546 1231 1547 1548 1264
5707 CONVEX 40 GT_PK(2,2) 1232 1546 1231 1544 1549 1198
5708 CONVEX 41 GT_PK(2,2) 936 1550 937 1551 1552 975
5709 CONVEX 42 GT_PK(2,2) 316 1553 281 1554 1490 315
5710 CONVEX 43 GT_PK(2,2) 428 1555 429 1556 1557 467
5711 CONVEX 44 GT_PK(2,2) 319 1558 320 1559 1560 355
5712 CONVEX 45 GT_PK(2,2) 319 1561 354 1559 1562 355
5713 CONVEX 46 GT_PK(2,2) 1059 1563 1058 1564 1465 1021
5714 CONVEX 47 GT_PK(2,2) 706 1565 746 1566 1567 2
5715 CONVEX 48 GT_PK(2,2) 706 1565 746 1568 1569 747
5716 CONVEX 49 GT_PK(2,2) 706 1570 667 1566 1571 2
5717 CONVEX 50 GT_PK(2,2) 706 1572 668 1570 1573 667
5718 CONVEX 51 GT_PK(2,2) 1406 1574 1385 1575 1576 1407
5719 CONVEX 52 GT_PK(2,2) 1406 1577 1424 1578 1579 1405
5720 CONVEX 53 GT_PK(2,2) 1278 1580 1279 1581 1582 1247
5721 CONVEX 54 GT_PK(2,2) 1196 1583 1229 1584 1537 1230
5722 CONVEX 55 GT_PK(2,2) 806 1585 767 1586 1587 766
5723 CONVEX 56 GT_PK(2,2) 806 1588 845 1589 1590 846
5724 CONVEX 57 GT_PK(2,2) 806 1591 805 1586 1592 766
5725 CONVEX 58 GT_PK(2,2) 806 1591 805 1588 1593 845
5726 CONVEX 59 GT_PK(2,2) 727 1594 767 1595 1587 766
5727 CONVEX 60 GT_PK(2,2) 727 1596 728 1594 1467 767
5728 CONVEX 61 GT_PK(2,2) 807 1597 767 1598 1469 768
5729 CONVEX 62 GT_PK(2,2) 807 1599 806 1597 1585 767
5730 CONVEX 63 GT_PK(2,2) 807 1600 847 1601 1602 846
5731 CONVEX 64 GT_PK(2,2) 807 1599 806 1601 1589 846
5732 CONVEX 65 GT_PK(2,2) 403 1603 365 1604 1605 366
5733 CONVEX 66 GT_PK(2,2) 439 1606 478 1607 1608 477
5734 CONVEX 67 GT_PK(2,2) 325 1609 326 1610 1611 362
5735 CONVEX 68 GT_PK(2,2) 363 1612 326 1613 1614 327
5736 CONVEX 69 GT_PK(2,2) 363 1612 326 1615 1611 362
5737 CONVEX 70 GT_PK(2,2) 128 1616 158 1617 1618 157
5738 CONVEX 71 GT_PK(2,2) 189 1619 190 1620 1621 222
5739 CONVEX 72 GT_PK(2,2) 189 1619 190 1622 1623 158
5740 CONVEX 73 GT_PK(2,2) 189 1624 156 1625 1626 157
5741 CONVEX 74 GT_PK(2,2) 189 1622 158 1625 1618 157
5742 CONVEX 75 GT_PK(2,2) 255 1627 256 1628 1629 222
5743 CONVEX 76 GT_PK(2,2) 253 1630 252 1631 1632 219
5744 CONVEX 77 GT_PK(2,2) 253 1633 220 1631 1634 219
5745 CONVEX 78 GT_PK(2,2) 187 1635 220 1636 1634 219
5746 CONVEX 79 GT_PK(2,2) 291 1637 326 1638 1614 327
5747 CONVEX 80 GT_PK(2,2) 161 1639 160 1640 1475 192
5748 CONVEX 81 GT_PK(2,2) 131 1641 161 1642 1639 160
5749 CONVEX 82 GT_PK(2,2) 131 1643 104 1644 1645 132
5750 CONVEX 83 GT_PK(2,2) 131 1641 161 1644 1646 132
5751 CONVEX 84 GT_PK(2,2) 129 1647 128 1648 1616 158
5752 CONVEX 85 GT_PK(2,2) 223 1649 224 1650 1479 191
5753 CONVEX 86 GT_PK(2,2) 223 1651 256 1652 1629 222
5754 CONVEX 87 GT_PK(2,2) 223 1653 190 1650 1654 191
5755 CONVEX 88 GT_PK(2,2) 223 1653 190 1652 1621 222
5756 CONVEX 89 GT_PK(2,2) 127 1655 155 1656 1657 154
5757 CONVEX 90 GT_PK(2,2) 127 1658 126 1656 1659 154
5758 CONVEX 91 GT_PK(2,2) 127 1660 100 1658 1661 126
5759 CONVEX 92 GT_PK(2,2) 181 1662 182 1663 1664 152
5760 CONVEX 93 GT_PK(2,2) 246 1665 280 1666 1487 247
5761 CONVEX 94 GT_PK(2,2) 124 1667 99 1668 1669 98
5762 CONVEX 95 GT_PK(2,2) 125 1670 124 1671 1672 152
5763 CONVEX 96 GT_PK(2,2) 125 1670 124 1673 1667 99
5764 CONVEX 97 GT_PK(2,2) 125 1673 99 1674 1675 76
5765 CONVEX 98 GT_PK(2,2) 125 1676 100 1674 1677 76
5766 CONVEX 99 GT_PK(2,2) 125 1676 100 1678 1661 126
5767 CONVEX 100 GT_PK(2,2) 75 1679 53 1680 1681 98
5768 CONVEX 101 GT_PK(2,2) 75 1682 99 1680 1669 98
5769 CONVEX 102 GT_PK(2,2) 75 1682 99 1683 1675 76
5770 CONVEX 103 GT_PK(2,2) 217 1684 218 1685 1686 186
5771 CONVEX 104 GT_PK(2,2) 217 1687 216 1685 1484 186
5772 CONVEX 105 GT_PK(2,2) 217 1687 216 1688 1689 249
5773 CONVEX 106 GT_PK(2,2) 248 1690 216 1691 1689 249
5774 CONVEX 107 GT_PK(2,2) 248 1692 281 1693 1488 247
5775 CONVEX 108 GT_PK(2,2) 282 1694 316 1695 1696 317
5776 CONVEX 109 GT_PK(2,2) 282 1694 316 1697 1553 281
5777 CONVEX 110 GT_PK(2,2) 282 1698 248 1699 1691 249
5778 CONVEX 111 GT_PK(2,2) 282 1698 248 1697 1692 281
5779 CONVEX 112 GT_PK(2,2) 314 1700 280 1701 1489 315
5780 CONVEX 113 GT_PK(2,2) 12 1702 27 1703 1704 13
5781 CONVEX 114 GT_PK(2,2) 35 1705 56 1706 1707 34
5782 CONVEX 115 GT_PK(2,2) 79 1708 56 1709 1710 80
5783 CONVEX 116 GT_PK(2,2) 79 1711 34 1712 1713 55
5784 CONVEX 117 GT_PK(2,2) 79 1708 56 1711 1707 34
5785 CONVEX 118 GT_PK(2,2) 43 1714 25 1715 1716 44
5786 CONVEX 119 GT_PK(2,2) 43 1717 65 1715 1718 44
5787 CONVEX 120 GT_PK(2,2) 43 1719 64 1717 1491 65
5788 CONVEX 121 GT_PK(2,2) 22 1720 21 1721 1499 7
5789 CONVEX 122 GT_PK(2,2) 22 1722 8 1721 1723 7
5790 CONVEX 123 GT_PK(2,2) 22 1722 8 1724 1725 23
5791 CONVEX 124 GT_PK(2,2) 22 1724 23 1726 1727 41
5792 CONVEX 125 GT_PK(2,2) 1427 1728 1428 1729 1501 1442
5793 CONVEX 126 GT_PK(2,2) 1427 1730 1408 1731 1504 1426
5794 CONVEX 127 GT_PK(2,2) 1427 1728 1428 1732 1733 1409
5795 CONVEX 128 GT_PK(2,2) 1427 1730 1408 1732 1734 1409
5796 CONVEX 129 GT_PK(2,2) 1386 1735 1385 1736 1576 1407
5797 CONVEX 130 GT_PK(2,2) 1386 1737 1408 1736 1505 1407
5798 CONVEX 131 GT_PK(2,2) 885 1738 845 1739 1590 846
5799 CONVEX 132 GT_PK(2,2) 1193 1740 1192 1741 1742 1158
5800 CONVEX 133 GT_PK(2,2) 1429 1743 1428 1744 1502 1443
5801 CONVEX 134 GT_PK(2,2) 1391 1745 1390 1746 1747 1412
5802 CONVEX 135 GT_PK(2,2) 1248 1748 1279 1749 1582 1247
5803 CONVEX 136 GT_PK(2,2) 1183 1750 1149 1751 1752 1148
5804 CONVEX 137 GT_PK(2,2) 1183 1750 1149 1753 1754 1184
5805 CONVEX 138 GT_PK(2,2) 1187 1755 1188 1756 1757 1221
5806 CONVEX 139 GT_PK(2,2) 468 1758 429 1759 1557 467
5807 CONVEX 140 GT_PK(2,2) 470 1760 469 1761 1762 431
5808 CONVEX 141 GT_PK(2,2) 507 1763 508 1764 1765 546
5809 CONVEX 142 GT_PK(2,2) 507 1766 545 1764 1767 546
5810 CONVEX 143 GT_PK(2,2) 507 1768 470 1769 1760 469
5811 CONVEX 144 GT_PK(2,2) 507 1768 470 1763 1770 508
5812 CONVEX 145 GT_PK(2,2) 507 1771 468 1769 1772 469
5813 CONVEX 146 GT_PK(2,2) 704 1773 745 1774 1522 705
5814 CONVEX 147 GT_PK(2,2) 704 1773 745 1775 1776 744
5815 CONVEX 148 GT_PK(2,2) 585 1777 545 1778 1767 546
5816 CONVEX 149 GT_PK(2,2) 898 1779 937 1780 1781 938
5817 CONVEX 150 GT_PK(2,2) 783 1782 784 1783 1463 823
5818 CONVEX 151 GT_PK(2,2) 783 1784 745 1782 1525 784
5819 CONVEX 152 GT_PK(2,2) 783 1784 745 1785 1776 744
5820 CONVEX 153 GT_PK(2,2) 783 1786 782 1785 1528 744
5821 CONVEX 154 GT_PK(2,2) 783 1783 823 1787 1788 822
5822 CONVEX 155 GT_PK(2,2) 783 1786 782 1787 1789 822
5823 CONVEX 156 GT_PK(2,2) 1263 1790 1262 1791 1536 1230
5824 CONVEX 157 GT_PK(2,2) 1263 1792 1231 1791 1793 1230
5825 CONVEX 158 GT_PK(2,2) 1263 1792 1231 1794 1548 1264
5826 CONVEX 159 GT_PK(2,2) 897 1795 936 1796 1797 896
5827 CONVEX 160 GT_PK(2,2) 897 1795 936 1798 1550 937
5828 CONVEX 161 GT_PK(2,2) 897 1799 898 1800 1801 858
5829 CONVEX 162 GT_PK(2,2) 897 1799 898 1798 1779 937
5830 CONVEX 163 GT_PK(2,2) 818 1802 779 1803 1804 778
5831 CONVEX 164 GT_PK(2,2) 821 1805 820 1806 1807 781
5832 CONVEX 165 GT_PK(2,2) 821 1808 782 1809 1789 822
5833 CONVEX 166 GT_PK(2,2) 821 1808 782 1806 1530 781
5834 CONVEX 167 GT_PK(2,2) 940 1810 939 1811 1812 978
5835 CONVEX 168 GT_PK(2,2) 940 1810 939 1813 1814 900
5836 CONVEX 169 GT_PK(2,2) 902 1815 942 1816 1817 903
5837 CONVEX 170 GT_PK(2,2) 902 1815 942 1818 1819 941
5838 CONVEX 171 GT_PK(2,2) 976 1820 937 1821 1781 938
5839 CONVEX 172 GT_PK(2,2) 976 1820 937 1822 1552 975
5840 CONVEX 173 GT_PK(2,2) 352 1823 316 1824 1696 317
5841 CONVEX 174 GT_PK(2,2) 430 1825 392 1826 1827 429
5842 CONVEX 175 GT_PK(2,2) 430 1828 469 1829 1762 431
5843 CONVEX 176 GT_PK(2,2) 430 1830 468 1826 1758 429
5844 CONVEX 177 GT_PK(2,2) 430 1830 468 1828 1772 469
5845 CONVEX 178 GT_PK(2,2) 393 1831 430 1832 1829 431
5846 CONVEX 179 GT_PK(2,2) 393 1831 430 1833 1825 392
5847 CONVEX 180 GT_PK(2,2) 391 1834 392 1835 1827 429
5848 CONVEX 181 GT_PK(2,2) 391 1836 428 1837 1838 390
5849 CONVEX 182 GT_PK(2,2) 391 1836 428 1835 1555 429
5850 CONVEX 183 GT_PK(2,2) 391 1839 354 1837 1840 390
5851 CONVEX 184 GT_PK(2,2) 391 1834 392 1841 1842 355
5852 CONVEX 185 GT_PK(2,2) 391 1839 354 1841 1562 355
5853 CONVEX 186 GT_PK(2,2) 318 1843 319 1844 1845 284
5854 CONVEX 187 GT_PK(2,2) 318 1843 319 1846 1561 354
5855 CONVEX 188 GT_PK(2,2) 285 1847 319 1848 1558 320
5856 CONVEX 189 GT_PK(2,2) 285 1849 284 1850 1851 251
5857 CONVEX 190 GT_PK(2,2) 285 1847 319 1849 1845 284
5858 CONVEX 191 GT_PK(2,2) 707 1852 706 1853 1568 747
5859 CONVEX 192 GT_PK(2,2) 707 1852 706 1854 1572 668
5860 CONVEX 193 GT_PK(2,2) 786 1855 746 1856 1857 785
5861 CONVEX 194 GT_PK(2,2) 786 1855 746 1858 1569 747
5862 CONVEX 195 GT_PK(2,2) 1265 1859 1233 1860 1861 1234
5863 CONVEX 196 GT_PK(2,2) 1201 1862 1233 1863 1861 1234
5864 CONVEX 197 GT_PK(2,2) 1201 1862 1233 1864 1865 1200
5865 CONVEX 198 GT_PK(2,2) 1134 1866 1135 1867 1868 1099
5866 CONVEX 199 GT_PK(2,2) 1132 1869 1166 1870 1871 1131
5867 CONVEX 200 GT_PK(2,2) 1095 1872 1059 1873 1563 1058
5868 CONVEX 201 GT_PK(2,2) 948 1874 909 1875 1876 910
5869 CONVEX 202 GT_PK(2,2) 1103 1877 1138 1878 1879 1102
5870 CONVEX 203 GT_PK(2,2) 717 1880 756 1881 1882 757
5871 CONVEX 204 GT_PK(2,2) 717 1883 677 1884 1885 678
5872 CONVEX 205 GT_PK(2,2) 717 1880 756 1886 1887 716
5873 CONVEX 206 GT_PK(2,2) 717 1883 677 1886 1888 716
5874 CONVEX 207 GT_PK(2,2) 796 1889 756 1890 1882 757
5875 CONVEX 208 GT_PK(2,2) 796 1891 797 1890 1892 757
5876 CONVEX 209 GT_PK(2,2) 796 1891 797 1893 1894 836
5877 CONVEX 210 GT_PK(2,2) 796 1895 835 1893 1896 836
5878 CONVEX 211 GT_PK(2,2) 599 1897 559 1898 1899 598
5879 CONVEX 212 GT_PK(2,2) 759 1900 760 1901 1902 720
5880 CONVEX 213 GT_PK(2,2) 759 1903 719 1901 1904 720
5881 CONVEX 214 GT_PK(2,2) 718 1905 678 1906 1907 679
5882 CONVEX 215 GT_PK(2,2) 718 1908 719 1906 1909 679
5883 CONVEX 216 GT_PK(2,2) 718 1910 717 1911 1881 757
5884 CONVEX 217 GT_PK(2,2) 718 1910 717 1905 1884 678
5885 CONVEX 218 GT_PK(2,2) 721 1912 760 1913 1902 720
5886 CONVEX 219 GT_PK(2,2) 721 1914 681 1913 1915 720
5887 CONVEX 220 GT_PK(2,2) 721 1914 681 1916 1917 682
5888 CONVEX 221 GT_PK(2,2) 721 1918 761 1912 1919 760
5889 CONVEX 222 GT_PK(2,2) 680 1920 640 1921 1922 641
5890 CONVEX 223 GT_PK(2,2) 680 1923 681 1921 1924 641
5891 CONVEX 224 GT_PK(2,2) 680 1920 640 1925 1926 679
5892 CONVEX 225 GT_PK(2,2) 680 1923 681 1927 1915 720
5893 CONVEX 226 GT_PK(2,2) 680 1928 719 1925 1909 679
5894 CONVEX 227 GT_PK(2,2) 680 1928 719 1927 1904 720
5895 CONVEX 228 GT_PK(2,2) 1425 1929 1426 1930 1506 1407
5896 CONVEX 229 GT_PK(2,2) 1425 1931 1406 1930 1575 1407
5897 CONVEX 230 GT_PK(2,2) 1425 1931 1406 1932 1577 1424
5898 CONVEX 231 GT_PK(2,2) 1425 1929 1426 1933 1456 1440
5899 CONVEX 232 GT_PK(2,2) 1425 1933 1440 1934 1935 1439
5900 CONVEX 233 GT_PK(2,2) 1425 1932 1424 1934 1936 1439
5901 CONVEX 234 GT_PK(2,2) 1384 1937 1361 1938 1939 1385
5902 CONVEX 235 GT_PK(2,2) 1384 1940 1405 1941 1942 1383
5903 CONVEX 236 GT_PK(2,2) 1384 1943 1406 1940 1578 1405
5904 CONVEX 237 GT_PK(2,2) 1384 1943 1406 1938 1574 1385
5905 CONVEX 238 GT_PK(2,2) 971 1944 970 1945 1946 1009
5906 CONVEX 239 GT_PK(2,2) 932 1947 970 1948 1949 931
5907 CONVEX 240 GT_PK(2,2) 932 1950 971 1951 1952 933
5908 CONVEX 241 GT_PK(2,2) 932 1950 971 1947 1944 970
5909 CONVEX 242 GT_PK(2,2) 969 1953 970 1954 1949 931
5910 CONVEX 243 GT_PK(2,2) 969 1955 930 1954 1956 931
5911 CONVEX 244 GT_PK(2,2) 969 1955 930 1957 1958 968
5912 CONVEX 245 GT_PK(2,2) 895 1959 894 1960 1961 855
5913 CONVEX 246 GT_PK(2,2) 1197 1962 1231 1963 1793 1230
5914 CONVEX 247 GT_PK(2,2) 1197 1964 1196 1963 1584 1230
5915 CONVEX 248 GT_PK(2,2) 1197 1962 1231 1965 1549 1198
5916 CONVEX 249 GT_PK(2,2) 609 1966 610 1967 1968 649
5917 CONVEX 250 GT_PK(2,2) 241 1969 275 1970 1971 242
5918 CONVEX 251 GT_PK(2,2) 241 1972 274 1969 1973 275
5919 CONVEX 252 GT_PK(2,2) 29 1974 14 1975 1976 15
5920 CONVEX 253 GT_PK(2,2) 66 1977 44 1978 1979 45
5921 CONVEX 254 GT_PK(2,2) 66 1980 65 1977 1718 44
5922 CONVEX 255 GT_PK(2,2) 460 1981 459 1982 1983 498
5923 CONVEX 256 GT_PK(2,2) 276 1984 275 1985 1971 242
5924 CONVEX 257 GT_PK(2,2) 455 1986 454 1987 1988 416
5925 CONVEX 258 GT_PK(2,2) 455 1986 454 1989 1990 493
5926 CONVEX 259 GT_PK(2,2) 307 1991 306 1992 1993 342
5927 CONVEX 260 GT_PK(2,2) 310 1994 345 1995 1996 346
5928 CONVEX 261 GT_PK(2,2) 310 1997 276 1998 1984 275
5929 CONVEX 262 GT_PK(2,2) 417 1999 455 2000 1987 416
5930 CONVEX 263 GT_PK(2,2) 417 1999 455 2001 2002 456
5931 CONVEX 264 GT_PK(2,2) 417 2003 379 2000 2004 416
5932 CONVEX 265 GT_PK(2,2) 417 2003 379 2005 2006 380
5933 CONVEX 266 GT_PK(2,2) 343 2007 307 2008 2009 308
5934 CONVEX 267 GT_PK(2,2) 343 2007 307 2010 1992 342
5935 CONVEX 268 GT_PK(2,2) 343 2011 379 2010 2012 342
5936 CONVEX 269 GT_PK(2,2) 343 2011 379 2013 2006 380
5937 CONVEX 270 GT_PK(2,2) 339 2014 304 2015 2016 303
5938 CONVEX 271 GT_PK(2,2) 341 2017 306 2018 1993 342
5939 CONVEX 272 GT_PK(2,2) 726 2019 727 2020 1595 766
5940 CONVEX 273 GT_PK(2,2) 688 2021 727 2022 1596 728
5941 CONVEX 274 GT_PK(2,2) 628 2023 668 2024 2025 629
5942 CONVEX 275 GT_PK(2,2) 628 2023 668 2026 1573 667
5943 CONVEX 276 GT_PK(2,2) 589 2027 628 2028 2024 629
5944 CONVEX 277 GT_PK(2,2) 589 2027 628 2029 2030 588
5945 CONVEX 278 GT_PK(2,2) 364 2031 363 2032 1613 327
5946 CONVEX 279 GT_PK(2,2) 364 2031 363 2033 2034 401
5947 CONVEX 280 GT_PK(2,2) 328 2035 364 2036 2037 365
5948 CONVEX 281 GT_PK(2,2) 328 2035 364 2038 2032 327
5949 CONVEX 282 GT_PK(2,2) 329 2039 365 2040 1605 366
5950 CONVEX 283 GT_PK(2,2) 329 2041 330 2040 2042 366
5951 CONVEX 284 GT_PK(2,2) 329 2043 328 2039 2036 365
5952 CONVEX 285 GT_PK(2,2) 329 2043 328 2044 2045 293
5953 CONVEX 286 GT_PK(2,2) 367 2046 330 2047 2042 366
5954 CONVEX 287 GT_PK(2,2) 601 2048 640 2049 1922 641
5955 CONVEX 288 GT_PK(2,2) 562 2050 522 2051 2052 561
5956 CONVEX 289 GT_PK(2,2) 562 2053 601 2051 2054 561
5957 CONVEX 290 GT_PK(2,2) 523 2055 562 2056 2050 522
5958 CONVEX 291 GT_PK(2,2) 523 2055 562 2057 2058 563
5959 CONVEX 292 GT_PK(2,2) 521 2059 522 2060 2052 561
5960 CONVEX 293 GT_PK(2,2) 397 2061 398 2062 2063 360
5961 CONVEX 294 GT_PK(2,2) 437 2064 398 2065 2066 399
5962 CONVEX 295 GT_PK(2,2) 361 2067 398 2068 2063 360
5963 CONVEX 296 GT_PK(2,2) 361 2069 325 2070 1610 362
5964 CONVEX 297 GT_PK(2,2) 361 2070 362 2071 2072 399
5965 CONVEX 298 GT_PK(2,2) 361 2067 398 2071 2066 399
5966 CONVEX 299 GT_PK(2,2) 286 2073 322 2074 2075 321
5967 CONVEX 300 GT_PK(2,2) 359 2076 397 2077 2078 396
5968 CONVEX 301 GT_PK(2,2) 359 2076 397 2079 2062 360
5969 CONVEX 302 GT_PK(2,2) 358 2080 321 2081 2082 357
5970 CONVEX 303 GT_PK(2,2) 358 2083 322 2080 2075 321
5971 CONVEX 304 GT_PK(2,2) 358 2084 395 2081 1471 357
5972 CONVEX 305 GT_PK(2,2) 358 2085 359 2083 2086 322
5973 CONVEX 306 GT_PK(2,2) 358 2084 395 2087 2088 396
5974 CONVEX 307 GT_PK(2,2) 358 2085 359 2087 2077 396
5975 CONVEX 308 GT_PK(2,2) 402 2089 403 2090 1603 365
5976 CONVEX 309 GT_PK(2,2) 402 2091 364 2092 2033 401
5977 CONVEX 310 GT_PK(2,2) 402 2091 364 2090 2037 365
5978 CONVEX 311 GT_PK(2,2) 400 2093 439 2094 2095 401
5979 CONVEX 312 GT_PK(2,2) 400 2096 363 2094 2034 401
5980 CONVEX 313 GT_PK(2,2) 400 2097 362 2098 2072 399
5981 CONVEX 314 GT_PK(2,2) 400 2096 363 2097 1615 362
5982 CONVEX 315 GT_PK(2,2) 438 2099 439 2100 1607 477
5983 CONVEX 316 GT_PK(2,2) 438 2101 437 2102 2065 399
5984 CONVEX 317 GT_PK(2,2) 438 2103 400 2102 2098 399
5985 CONVEX 318 GT_PK(2,2) 438 2103 400 2099 2093 439
5986 CONVEX 319 GT_PK(2,2) 101 2104 77 2105 2106 102
5987 CONVEX 320 GT_PK(2,2) 101 2107 129 2105 2108 102
5988 CONVEX 321 GT_PK(2,2) 101 2107 129 2109 1647 128
5989 CONVEX 322 GT_PK(2,2) 188 2110 189 2111 1624 156
5990 CONVEX 323 GT_PK(2,2) 188 2112 187 2111 2113 156
5991 CONVEX 324 GT_PK(2,2) 188 2112 187 2114 1635 220
5992 CONVEX 325 GT_PK(2,2) 254 2115 253 2116 1633 220
5993 CONVEX 326 GT_PK(2,2) 254 2117 255 2118 2119 289
5994 CONVEX 327 GT_PK(2,2) 287 2120 253 2121 1630 252
5995 CONVEX 328 GT_PK(2,2) 287 2122 286 2121 2123 252
5996 CONVEX 329 GT_PK(2,2) 287 2122 286 2124 2073 322
5997 CONVEX 330 GT_PK(2,2) 292 2125 291 2126 1638 327
5998 CONVEX 331 GT_PK(2,2) 292 2127 258 2128 1448 293
5999 CONVEX 332 GT_PK(2,2) 292 2129 328 2128 2045 293
6000 CONVEX 333 GT_PK(2,2) 292 2129 328 2126 2038 327
6001 CONVEX 334 GT_PK(2,2) 257 2130 224 2131 1481 258
6002 CONVEX 335 GT_PK(2,2) 257 2132 292 2131 2127 258
6003 CONVEX 336 GT_PK(2,2) 257 2132 292 2133 2125 291
6004 CONVEX 337 GT_PK(2,2) 257 2133 291 2134 2135 256
6005 CONVEX 338 GT_PK(2,2) 257 2136 223 2134 1651 256
6006 CONVEX 339 GT_PK(2,2) 257 2136 223 2130 1649 224
6007 CONVEX 340 GT_PK(2,2) 290 2137 325 2138 1609 326
6008 CONVEX 341 GT_PK(2,2) 290 2139 291 2138 1637 326
6009 CONVEX 342 GT_PK(2,2) 290 2137 325 2140 2141 289
6010 CONVEX 343 GT_PK(2,2) 290 2142 255 2140 2119 289
6011 CONVEX 344 GT_PK(2,2) 290 2142 255 2143 1627 256
6012 CONVEX 345 GT_PK(2,2) 290 2139 291 2143 2135 256
6013 CONVEX 346 GT_PK(2,2) 103 2144 131 2145 1643 104
6014 CONVEX 347 GT_PK(2,2) 103 2146 77 2147 2106 102
6015 CONVEX 348 GT_PK(2,2) 103 2148 54 2146 2149 77
6016 CONVEX 349 GT_PK(2,2) 130 2150 129 2151 2108 102
6017 CONVEX 350 GT_PK(2,2) 130 2152 131 2153 1642 160
6018 CONVEX 351 GT_PK(2,2) 130 2154 103 2151 2147 102
6019 CONVEX 352 GT_PK(2,2) 130 2154 103 2152 2144 131
6020 CONVEX 353 GT_PK(2,2) 159 2155 190 2156 1654 191
6021 CONVEX 354 GT_PK(2,2) 159 2157 130 2158 2150 129
6022 CONVEX 355 GT_PK(2,2) 159 2155 190 2159 1623 158
6023 CONVEX 356 GT_PK(2,2) 159 2158 129 2159 1648 158
6024 CONVEX 357 GT_PK(2,2) 159 2160 160 2156 1476 191
6025 CONVEX 358 GT_PK(2,2) 159 2157 130 2160 2153 160
6026 CONVEX 359 GT_PK(2,2) 214 2161 183 2162 2163 182
6027 CONVEX 360 GT_PK(2,2) 214 2164 246 2165 1666 247
6028 CONVEX 361 GT_PK(2,2) 184 2166 183 2167 2168 154
6029 CONVEX 362 GT_PK(2,2) 184 2169 216 2170 1483 185
6030 CONVEX 363 GT_PK(2,2) 184 2171 155 2167 1657 154
6031 CONVEX 364 GT_PK(2,2) 184 2170 185 2171 2172 155
6032 CONVEX 365 GT_PK(2,2) 153 2173 183 2174 2163 182
6033 CONVEX 366 GT_PK(2,2) 153 2174 182 2175 1664 152
6034 CONVEX 367 GT_PK(2,2) 153 2176 126 2177 1659 154
6035 CONVEX 368 GT_PK(2,2) 153 2173 183 2177 2168 154
6036 CONVEX 369 GT_PK(2,2) 153 2178 125 2175 1671 152
6037 CONVEX 370 GT_PK(2,2) 153 2178 125 2176 1678 126
6038 CONVEX 371 GT_PK(2,2) 151 2179 181 2180 1663 152
6039 CONVEX 372 GT_PK(2,2) 151 2181 124 2180 1672 152
6040 CONVEX 373 GT_PK(2,2) 73 2182 52 2183 2184 33
6041 CONVEX 374 GT_PK(2,2) 250 2185 217 2186 1684 218
6042 CONVEX 375 GT_PK(2,2) 250 2187 284 2188 1851 251
6043 CONVEX 376 GT_PK(2,2) 250 2186 218 2188 2189 251
6044 CONVEX 377 GT_PK(2,2) 250 2185 217 2190 1688 249
6045 CONVEX 378 GT_PK(2,2) 215 2191 248 2192 1690 216
6046 CONVEX 379 GT_PK(2,2) 215 2193 184 2192 2169 216
6047 CONVEX 380 GT_PK(2,2) 215 2193 184 2194 2166 183
6048 CONVEX 381 GT_PK(2,2) 215 2195 214 2194 2161 183
6049 CONVEX 382 GT_PK(2,2) 215 2191 248 2196 1693 247
6050 CONVEX 383 GT_PK(2,2) 215 2195 214 2196 2165 247
6051 CONVEX 384 GT_PK(2,2) 279 2197 314 2198 1700 280
6052 CONVEX 385 GT_PK(2,2) 279 2199 246 2200 2201 245
6053 CONVEX 386 GT_PK(2,2) 279 2199 246 2198 1665 280
6054 CONVEX 387 GT_PK(2,2) 279 2202 278 2200 2203 245
6055 CONVEX 388 GT_PK(2,2) 279 2202 278 2204 2205 313
6056 CONVEX 389 GT_PK(2,2) 279 2197 314 2204 2206 313
6057 CONVEX 390 GT_PK(2,2) 11 2207 25 2208 1451 0
6058 CONVEX 391 GT_PK(2,2) 57 2209 35 2210 1705 56
6059 CONVEX 392 GT_PK(2,2) 57 2210 56 2211 1710 80
6060 CONVEX 393 GT_PK(2,2) 57 2212 17 2213 1455 36
6061 CONVEX 394 GT_PK(2,2) 57 2209 35 2212 2214 17
6062 CONVEX 395 GT_PK(2,2) 105 2215 79 2216 1709 80
6063 CONVEX 396 GT_PK(2,2) 105 2215 79 2217 2218 104
6064 CONVEX 397 GT_PK(2,2) 105 2219 106 2216 2220 80
6065 CONVEX 398 GT_PK(2,2) 105 2217 104 2221 1645 132
6066 CONVEX 399 GT_PK(2,2) 78 2222 79 2223 2218 104
6067 CONVEX 400 GT_PK(2,2) 78 2224 103 2223 2145 104
6068 CONVEX 401 GT_PK(2,2) 78 2224 103 2225 2148 54
6069 CONVEX 402 GT_PK(2,2) 78 2225 54 2226 2227 55
6070 CONVEX 403 GT_PK(2,2) 78 2222 79 2226 1712 55
6071 CONVEX 404 GT_PK(2,2) 162 2228 161 2229 1646 132
6072 CONVEX 405 GT_PK(2,2) 302 2230 268 2231 2232 303
6073 CONVEX 406 GT_PK(2,2) 37 2233 18 2234 1454 36
6074 CONVEX 407 GT_PK(2,2) 37 2235 19 2233 2236 18
6075 CONVEX 408 GT_PK(2,2) 201 2237 202 2238 2239 234
6076 CONVEX 409 GT_PK(2,2) 201 2240 233 2238 2241 234
6077 CONVEX 410 GT_PK(2,2) 87 2242 64 2243 1492 88
6078 CONVEX 411 GT_PK(2,2) 139 2244 168 2245 2246 169
6079 CONVEX 412 GT_PK(2,2) 9 2247 8 2248 1725 23
6080 CONVEX 413 GT_PK(2,2) 24 2249 43 2250 1714 25
6081 CONVEX 414 GT_PK(2,2) 24 2250 25 2251 1450 10
6082 CONVEX 415 GT_PK(2,2) 24 2252 9 2251 2253 10
6083 CONVEX 416 GT_PK(2,2) 24 2252 9 2254 2248 23
6084 CONVEX 417 GT_PK(2,2) 42 2255 23 2256 1727 41
6085 CONVEX 418 GT_PK(2,2) 42 2257 43 2258 1719 64
6086 CONVEX 419 GT_PK(2,2) 42 2259 24 2255 2254 23
6087 CONVEX 420 GT_PK(2,2) 42 2259 24 2257 2249 43
6088 CONVEX 421 GT_PK(2,2) 39 2260 21 2261 1498 20
6089 CONVEX 422 GT_PK(2,2) 1441 2262 1427 2263 1729 1442
6090 CONVEX 423 GT_PK(2,2) 1441 2264 1426 2265 1457 4
6091 CONVEX 424 GT_PK(2,2) 1441 2262 1427 2264 1731 1426
6092 CONVEX 425 GT_PK(2,2) 1387 2266 1408 2267 1734 1409
6093 CONVEX 426 GT_PK(2,2) 1387 2268 1386 2266 1737 1408
6094 CONVEX 427 GT_PK(2,2) 1337 2269 1309 2270 2271 1336
6095 CONVEX 428 GT_PK(2,2) 1337 2269 1309 2272 2273 1310
6096 CONVEX 429 GT_PK(2,2) 1362 2274 1361 2275 1939 1385
6097 CONVEX 430 GT_PK(2,2) 1362 2276 1386 2275 1735 1385
6098 CONVEX 431 GT_PK(2,2) 1362 2274 1361 2277 2278 1336
6099 CONVEX 432 GT_PK(2,2) 1362 2279 1337 2277 2270 1336
6100 CONVEX 433 GT_PK(2,2) 1076 2280 1075 2281 2282 1112
6101 CONVEX 434 GT_PK(2,2) 1000 2283 1001 2284 2285 1039
6102 CONVEX 435 GT_PK(2,2) 1040 2286 1001 2287 2285 1039
6103 CONVEX 436 GT_PK(2,2) 1040 2288 1078 2289 2290 1041
6104 CONVEX 437 GT_PK(2,2) 927 2291 966 2292 2293 928
6105 CONVEX 438 GT_PK(2,2) 927 2294 888 2292 2295 928
6106 CONVEX 439 GT_PK(2,2) 927 2296 887 2294 2297 888
6107 CONVEX 440 GT_PK(2,2) 925 2298 924 2299 2300 885
6108 CONVEX 441 GT_PK(2,2) 1415 2301 1433 2302 2303 1434
6109 CONVEX 442 GT_PK(2,2) 1415 2304 1414 2301 2305 1433
6110 CONVEX 443 GT_PK(2,2) 1432 2306 1414 2307 2305 1433
6111 CONVEX 444 GT_PK(2,2) 1222 2308 1188 2309 2310 1189
6112 CONVEX 445 GT_PK(2,2) 1222 2308 1188 2311 1757 1221
6113 CONVEX 446 GT_PK(2,2) 1348 2312 1373 2313 1508 1397
6114 CONVEX 447 GT_PK(2,2) 1347 2314 1348 2315 2312 1373
6115 CONVEX 448 GT_PK(2,2) 1347 2314 1348 2316 2317 1320
6116 CONVEX 449 GT_PK(2,2) 1416 2318 1395 2319 2320 1417
6117 CONVEX 450 GT_PK(2,2) 1371 2321 1345 2322 2323 1346
6118 CONVEX 451 GT_PK(2,2) 1371 2321 1345 2324 2325 1370
6119 CONVEX 452 GT_PK(2,2) 1372 2326 1347 2327 2328 1346
6120 CONVEX 453 GT_PK(2,2) 1372 2326 1347 2329 2315 1373
6121 CONVEX 454 GT_PK(2,2) 1372 2330 1371 2327 2322 1346
6122 CONVEX 455 GT_PK(2,2) 1372 2330 1371 2331 2332 1395
6123 CONVEX 456 GT_PK(2,2) 1372 2329 1373 2333 1507 1396
6124 CONVEX 457 GT_PK(2,2) 1372 2333 1396 2334 2335 1417
6125 CONVEX 458 GT_PK(2,2) 1372 2331 1395 2334 2320 1417
6126 CONVEX 459 GT_PK(2,2) 1344 2336 1369 2337 2338 1370
6127 CONVEX 460 GT_PK(2,2) 1344 2339 1345 2337 2325 1370
6128 CONVEX 461 GT_PK(2,2) 1344 2340 1343 2341 2342 1316
6129 CONVEX 462 GT_PK(2,2) 1344 2340 1343 2336 2343 1369
6130 CONVEX 463 GT_PK(2,2) 1317 2344 1344 2345 2341 1316
6131 CONVEX 464 GT_PK(2,2) 1317 2344 1344 2346 2339 1345
6132 CONVEX 465 GT_PK(2,2) 1444 2347 1429 2348 1744 1443
6133 CONVEX 466 GT_PK(2,2) 1444 2349 1430 2350 1516 1445
6134 CONVEX 467 GT_PK(2,2) 1444 2347 1429 2349 2351 1430
6135 CONVEX 468 GT_PK(2,2) 1410 2352 1428 2353 1733 1409
6136 CONVEX 469 GT_PK(2,2) 1410 2354 1429 2352 1743 1428
6137 CONVEX 470 GT_PK(2,2) 1368 2355 1369 2356 2357 1392
6138 CONVEX 471 GT_PK(2,2) 1368 2358 1391 2356 2359 1392
6139 CONVEX 472 GT_PK(2,2) 1368 2360 1343 2355 2343 1369
6140 CONVEX 473 GT_PK(2,2) 1413 2361 1432 2362 2306 1414
6141 CONVEX 474 GT_PK(2,2) 1413 2363 1431 2364 1511 1412
6142 CONVEX 475 GT_PK(2,2) 1413 2365 1391 2364 1746 1412
6143 CONVEX 476 GT_PK(2,2) 1413 2362 1414 2366 2367 1392
6144 CONVEX 477 GT_PK(2,2) 1413 2365 1391 2366 2359 1392
6145 CONVEX 478 GT_PK(2,2) 1413 2363 1431 2368 1514 1446
6146 CONVEX 479 GT_PK(2,2) 1413 2361 1432 2368 2369 1446
6147 CONVEX 480 GT_PK(2,2) 1113 2370 1112 2371 2372 1148
6148 CONVEX 481 GT_PK(2,2) 1113 2373 1149 2371 1752 1148
6149 CONVEX 482 GT_PK(2,2) 1113 2374 1076 2370 2281 1112
6150 CONVEX 483 GT_PK(2,2) 1150 2375 1185 2376 1519 1184
6151 CONVEX 484 GT_PK(2,2) 1150 2377 1149 2376 1754 1184
6152 CONVEX 485 GT_PK(2,2) 1079 2378 1078 2379 2380 1115
6153 CONVEX 486 GT_PK(2,2) 1079 2381 1116 2379 2382 1115
6154 CONVEX 487 GT_PK(2,2) 1079 2381 1116 2383 2384 1080
6155 CONVEX 488 GT_PK(2,2) 1079 2378 1078 2385 2290 1041
6156 CONVEX 489 GT_PK(2,2) 1280 2386 1248 2387 1748 1279
6157 CONVEX 490 GT_PK(2,2) 1280 2388 1309 2387 2389 1279
6158 CONVEX 491 GT_PK(2,2) 1280 2388 1309 2390 2273 1310
6159 CONVEX 492 GT_PK(2,2) 1217 2391 1183 2392 2393 1216
6160 CONVEX 493 GT_PK(2,2) 1217 2394 1218 2395 2396 1250
6161 CONVEX 494 GT_PK(2,2) 1217 2394 1218 2397 1518 1184
6162 CONVEX 495 GT_PK(2,2) 1217 2391 1183 2397 1753 1184
6163 CONVEX 496 GT_PK(2,2) 1253 2398 1284 2399 2400 1285
6164 CONVEX 497 GT_PK(2,2) 1253 2401 1252 2398 2402 1284
6165 CONVEX 498 GT_PK(2,2) 1311 2403 1312 2404 2405 1339
6166 CONVEX 499 GT_PK(2,2) 1311 2406 1282 2403 2407 1312
6167 CONVEX 500 GT_PK(2,2) 1153 2408 1187 2409 2410 1152
6168 CONVEX 501 GT_PK(2,2) 1153 2408 1187 2411 1755 1188
6169 CONVEX 502 GT_PK(2,2) 1154 2412 1188 2413 2310 1189
6170 CONVEX 503 GT_PK(2,2) 1154 2414 1153 2412 2411 1188
6171 CONVEX 504 GT_PK(2,2) 1220 2415 1187 2416 1756 1221
6172 CONVEX 505 GT_PK(2,2) 1220 2417 1253 2416 2418 1221
6173 CONVEX 506 GT_PK(2,2) 1220 2419 1252 2420 2421 1219
6174 CONVEX 507 GT_PK(2,2) 1220 2417 1253 2419 2401 1252
6175 CONVEX 508 GT_PK(2,2) 665 2422 704 2423 1774 705
6176 CONVEX 509 GT_PK(2,2) 547 2424 508 2425 1765 546
6177 CONVEX 510 GT_PK(2,2) 586 2426 587 2427 2428 625
6178 CONVEX 511 GT_PK(2,2) 586 2429 585 2427 2430 625
6179 CONVEX 512 GT_PK(2,2) 586 2429 585 2431 1778 546
6180 CONVEX 513 GT_PK(2,2) 586 2432 547 2431 2425 546
6181 CONVEX 514 GT_PK(2,2) 586 2432 547 2426 2433 587
6182 CONVEX 515 GT_PK(2,2) 624 2434 585 2435 2430 625
6183 CONVEX 516 GT_PK(2,2) 899 2436 898 2437 1780 938
6184 CONVEX 517 GT_PK(2,2) 899 2438 939 2437 2439 938
6185 CONVEX 518 GT_PK(2,2) 899 2438 939 2440 1814 900
6186 CONVEX 519 GT_PK(2,2) 739 2441 779 2442 1804 778
6187 CONVEX 520 GT_PK(2,2) 739 2443 738 2442 2444 778
6188 CONVEX 521 GT_PK(2,2) 819 2445 818 2446 2447 858
6189 CONVEX 522 GT_PK(2,2) 819 2445 818 2448 1802 779
6190 CONVEX 523 GT_PK(2,2) 623 2449 624 2450 2451 663
6191 CONVEX 524 GT_PK(2,2) 742 2452 743 2453 1531 781
6192 CONVEX 525 GT_PK(2,2) 742 2454 741 2453 2455 781
6193 CONVEX 526 GT_PK(2,2) 780 2456 820 2457 1807 781
6194 CONVEX 527 GT_PK(2,2) 780 2458 741 2457 2455 781
6195 CONVEX 528 GT_PK(2,2) 780 2459 819 2456 2460 820
6196 CONVEX 529 GT_PK(2,2) 780 2459 819 2461 2448 779
6197 CONVEX 530 GT_PK(2,2) 662 2462 623 2463 2450 663
6198 CONVEX 531 GT_PK(2,2) 979 2464 1017 2465 2466 978
6199 CONVEX 532 GT_PK(2,2) 979 2467 940 2465 1811 978
6200 CONVEX 533 GT_PK(2,2) 979 2467 940 2468 2469 941
6201 CONVEX 534 GT_PK(2,2) 1056 2470 1057 2471 2472 1094
6202 CONVEX 535 GT_PK(2,2) 1055 2473 1056 2474 2475 1017
6203 CONVEX 536 GT_PK(2,2) 1295 2476 1294 2477 2478 1262
6204 CONVEX 537 GT_PK(2,2) 1295 2479 1263 2477 1790 1262
6205 CONVEX 538 GT_PK(2,2) 1295 2479 1263 2480 1794 1264
6206 CONVEX 539 GT_PK(2,2) 817 2481 818 2482 1803 778
6207 CONVEX 540 GT_PK(2,2) 860 2483 821 2484 1805 820
6208 CONVEX 541 GT_PK(2,2) 860 2485 899 2486 2440 900
6209 CONVEX 542 GT_PK(2,2) 977 2487 939 2488 1812 978
6210 CONVEX 543 GT_PK(2,2) 977 2487 939 2489 2439 938
6211 CONVEX 544 GT_PK(2,2) 977 2490 976 2489 1821 938
6212 CONVEX 545 GT_PK(2,2) 977 2490 976 2491 2492 1015
6213 CONVEX 546 GT_PK(2,2) 980 2493 942 2494 1819 941
6214 CONVEX 547 GT_PK(2,2) 980 2495 979 2496 2497 1019
6215 CONVEX 548 GT_PK(2,2) 980 2495 979 2494 2468 941
6216 CONVEX 549 GT_PK(2,2) 861 2498 821 2499 1809 822
6217 CONVEX 550 GT_PK(2,2) 861 2500 860 2501 2486 900
6218 CONVEX 551 GT_PK(2,2) 861 2500 860 2498 2483 821
6219 CONVEX 552 GT_PK(2,2) 901 2502 940 2503 2469 941
6220 CONVEX 553 GT_PK(2,2) 901 2504 902 2503 1818 941
6221 CONVEX 554 GT_PK(2,2) 901 2502 940 2505 1813 900
6222 CONVEX 555 GT_PK(2,2) 901 2506 861 2505 2501 900
6223 CONVEX 556 GT_PK(2,2) 427 2507 428 2508 1838 390
6224 CONVEX 557 GT_PK(2,2) 356 2509 392 2510 1842 355
6225 CONVEX 558 GT_PK(2,2) 356 2511 393 2509 1833 392
6226 CONVEX 559 GT_PK(2,2) 356 2512 320 2510 1560 355
6227 CONVEX 560 GT_PK(2,2) 353 2513 318 2514 2515 317
6228 CONVEX 561 GT_PK(2,2) 353 2516 352 2514 1824 317
6229 CONVEX 562 GT_PK(2,2) 353 2517 354 2518 1840 390
6230 CONVEX 563 GT_PK(2,2) 353 2513 318 2517 1846 354
6231 CONVEX 564 GT_PK(2,2) 838 2519 839 2520 2521 878
6232 CONVEX 565 GT_PK(2,2) 517 2522 556 2523 2524 557
6233 CONVEX 566 GT_PK(2,2) 516 2525 478 2526 1608 477
6234 CONVEX 567 GT_PK(2,2) 516 2527 517 2525 2528 478
6235 CONVEX 568 GT_PK(2,2) 516 2527 517 2529 2522 556
6236 CONVEX 569 GT_PK(2,2) 596 2530 556 2531 2524 557
6237 CONVEX 570 GT_PK(2,2) 596 2532 597 2531 2533 557
6238 CONVEX 571 GT_PK(2,2) 596 2532 597 2534 2535 636
6239 CONVEX 572 GT_PK(2,2) 714 2536 715 2537 2538 675
6240 CONVEX 573 GT_PK(2,2) 982 2539 983 2540 2541 1021
6241 CONVEX 574 GT_PK(2,2) 982 2542 1020 2540 1466 1021
6242 CONVEX 575 GT_PK(2,2) 982 2543 981 2542 2544 1020
6243 CONVEX 576 GT_PK(2,2) 787 2545 786 2546 2547 826
6244 CONVEX 577 GT_PK(2,2) 787 2545 786 2548 1858 747
6245 CONVEX 578 GT_PK(2,2) 1100 2549 1135 2550 2551 1136
6246 CONVEX 579 GT_PK(2,2) 1100 2549 1135 2552 1868 1099
6247 CONVEX 580 GT_PK(2,2) 1098 2553 1134 2554 1867 1099
6248 CONVEX 581 GT_PK(2,2) 1098 2555 1062 2554 2556 1099
6249 CONVEX 582 GT_PK(2,2) 1133 2557 1134 2558 2559 1168
6250 CONVEX 583 GT_PK(2,2) 1133 2560 1098 2557 2553 1134
6251 CONVEX 584 GT_PK(2,2) 1097 2561 1133 2562 2563 1132
6252 CONVEX 585 GT_PK(2,2) 1097 2561 1133 2564 2560 1098
6253 CONVEX 586 GT_PK(2,2) 1167 2565 1201 2566 1864 1200
6254 CONVEX 587 GT_PK(2,2) 1167 2567 1166 2566 2568 1200
6255 CONVEX 588 GT_PK(2,2) 1167 2569 1132 2567 1869 1166
6256 CONVEX 589 GT_PK(2,2) 1167 2570 1133 2569 2563 1132
6257 CONVEX 590 GT_PK(2,2) 1167 2565 1201 2571 2572 1168
6258 CONVEX 591 GT_PK(2,2) 1167 2570 1133 2571 2558 1168
6259 CONVEX 592 GT_PK(2,2) 1096 2573 1095 2574 1872 1059
6260 CONVEX 593 GT_PK(2,2) 1096 2575 1097 2576 2562 1132
6261 CONVEX 594 GT_PK(2,2) 1096 2576 1132 2577 1870 1131
6262 CONVEX 595 GT_PK(2,2) 1096 2573 1095 2577 2578 1131
6263 CONVEX 596 GT_PK(2,2) 1096 2574 1059 2579 2580 1060
6264 CONVEX 597 GT_PK(2,2) 1096 2575 1097 2579 2581 1060
6265 CONVEX 598 GT_PK(2,2) 1065 2582 1027 2583 2584 1064
6266 CONVEX 599 GT_PK(2,2) 1065 2582 1027 2585 2586 1028
6267 CONVEX 600 GT_PK(2,2) 751 2587 711 2588 2589 712
6268 CONVEX 601 GT_PK(2,2) 1063 2590 1062 2591 2556 1099
6269 CONVEX 602 GT_PK(2,2) 1063 2592 1100 2591 2552 1099
6270 CONVEX 603 GT_PK(2,2) 1063 2592 1100 2593 2594 1064
6271 CONVEX 604 GT_PK(2,2) 1022 2595 1023 2596 2597 1060
6272 CONVEX 605 GT_PK(2,2) 1022 2598 1059 2599 1564 1021
6273 CONVEX 606 GT_PK(2,2) 1022 2598 1059 2596 2580 1060
6274 CONVEX 607 GT_PK(2,2) 1022 2600 983 2599 2541 1021
6275 CONVEX 608 GT_PK(2,2) 985 2601 1023 2602 2603 1024
6276 CONVEX 609 GT_PK(2,2) 949 2604 950 2605 2606 988
6277 CONVEX 610 GT_PK(2,2) 949 2604 950 2607 2608 911
6278 CONVEX 611 GT_PK(2,2) 949 2607 911 2609 2610 910
6279 CONVEX 612 GT_PK(2,2) 949 2611 948 2609 1875 910
6280 CONVEX 613 GT_PK(2,2) 1030 2612 1029 2613 2614 1067
6281 CONVEX 614 GT_PK(2,2) 989 2615 950 2616 2606 988
6282 CONVEX 615 GT_PK(2,2) 989 2617 1027 2616 2618 988
6283 CONVEX 616 GT_PK(2,2) 989 2617 1027 2619 2586 1028
6284 CONVEX 617 GT_PK(2,2) 912 2620 872 2621 2622 873
6285 CONVEX 618 GT_PK(2,2) 912 2623 950 2624 2608 911
6286 CONVEX 619 GT_PK(2,2) 912 2620 872 2624 2625 911
6287 CONVEX 620 GT_PK(2,2) 1206 2626 1207 2627 2628 1173
6288 CONVEX 621 GT_PK(2,2) 758 2629 797 2630 1892 757
6289 CONVEX 622 GT_PK(2,2) 758 2631 718 2630 1911 757
6290 CONVEX 623 GT_PK(2,2) 758 2631 718 2632 1908 719
6291 CONVEX 624 GT_PK(2,2) 758 2633 759 2632 1903 719
6292 CONVEX 625 GT_PK(2,2) 758 2629 797 2634 2635 798
6293 CONVEX 626 GT_PK(2,2) 758 2633 759 2634 2636 798
6294 CONVEX 627 GT_PK(2,2) 875 2637 835 2638 1896 836
6295 CONVEX 628 GT_PK(2,2) 875 2639 914 2640 2641 915
6296 CONVEX 629 GT_PK(2,2) 875 2637 835 2642 2643 874
6297 CONVEX 630 GT_PK(2,2) 875 2639 914 2642 2644 874
6298 CONVEX 631 GT_PK(2,2) 754 2645 714 2646 2536 715
6299 CONVEX 632 GT_PK(2,2) 794 2647 754 2648 2649 793
6300 CONVEX 633 GT_PK(2,2) 638 2650 599 2651 1898 598
6301 CONVEX 634 GT_PK(2,2) 638 2652 677 2653 1885 678
6302 CONVEX 635 GT_PK(2,2) 639 2654 678 2655 1907 679
6303 CONVEX 636 GT_PK(2,2) 639 2656 640 2655 1926 679
6304 CONVEX 637 GT_PK(2,2) 639 2657 638 2654 2653 678
6305 CONVEX 638 GT_PK(2,2) 639 2657 638 2658 2650 599
6306 CONVEX 639 GT_PK(2,2) 560 2659 559 2660 2661 520
6307 CONVEX 640 GT_PK(2,2) 560 2662 599 2659 1897 559
6308 CONVEX 641 GT_PK(2,2) 560 2663 521 2660 2664 520
6309 CONVEX 642 GT_PK(2,2) 560 2663 521 2665 2060 561
6310 CONVEX 643 GT_PK(2,2) 762 2666 761 2667 2668 801
6311 CONVEX 644 GT_PK(2,2) 722 2669 721 2670 1916 682
6312 CONVEX 645 GT_PK(2,2) 722 2669 721 2671 1918 761
6313 CONVEX 646 GT_PK(2,2) 722 2672 683 2670 2673 682
6314 CONVEX 647 GT_PK(2,2) 722 2674 762 2671 2666 761
6315 CONVEX 648 GT_PK(2,2) 1404 2675 1405 2676 1942 1383
6316 CONVEX 649 GT_PK(2,2) 1423 2677 1424 2678 1579 1405
6317 CONVEX 650 GT_PK(2,2) 1423 2679 1404 2678 2675 1405
6318 CONVEX 651 GT_PK(2,2) 1423 2679 1404 2680 2681 1422
6319 CONVEX 652 GT_PK(2,2) 1360 2682 1384 2683 1941 1383
6320 CONVEX 653 GT_PK(2,2) 1360 2682 1384 2684 1937 1361
6321 CONVEX 654 GT_PK(2,2) 1335 2685 1360 2686 2687 1334
6322 CONVEX 655 GT_PK(2,2) 1335 2688 1361 2689 2278 1336
6323 CONVEX 656 GT_PK(2,2) 1335 2685 1360 2688 2684 1361
6324 CONVEX 657 GT_PK(2,2) 1212 2690 1178 2691 2692 1211
6325 CONVEX 658 GT_PK(2,2) 1212 2693 1244 2691 2694 1211
6326 CONVEX 659 GT_PK(2,2) 1179 2695 1212 2696 2697 1213
6327 CONVEX 660 GT_PK(2,2) 1179 2695 1212 2698 2690 1178
6328 CONVEX 661 GT_PK(2,2) 1245 2699 1212 2700 2697 1213
6329 CONVEX 662 GT_PK(2,2) 1245 2699 1212 2701 2693 1244
6330 CONVEX 663 GT_PK(2,2) 1182 2702 1183 2703 2393 1216
6331 CONVEX 664 GT_PK(2,2) 1182 2702 1183 2704 1751 1148
6332 CONVEX 665 GT_PK(2,2) 1147 2705 1112 2706 2372 1148
6333 CONVEX 666 GT_PK(2,2) 1147 2707 1182 2706 2704 1148
6334 CONVEX 667 GT_PK(2,2) 1147 2707 1182 2708 2709 1181
6335 CONVEX 668 GT_PK(2,2) 1308 2710 1278 2711 1580 1279
6336 CONVEX 669 GT_PK(2,2) 1308 2712 1309 2711 2389 1279
6337 CONVEX 670 GT_PK(2,2) 1308 2712 1309 2713 2271 1336
6338 CONVEX 671 GT_PK(2,2) 1308 2714 1335 2713 2689 1336
6339 CONVEX 672 GT_PK(2,2) 1268 2715 1298 2716 2717 1297
6340 CONVEX 673 GT_PK(2,2) 1268 2718 1236 2719 2720 1237
6341 CONVEX 674 GT_PK(2,2) 1268 2721 1269 2719 2722 1237
6342 CONVEX 675 GT_PK(2,2) 1268 2721 1269 2715 2723 1298
6343 CONVEX 676 GT_PK(2,2) 1299 2724 1269 2725 2726 1270
6344 CONVEX 677 GT_PK(2,2) 1299 2724 1269 2727 2723 1298
6345 CONVEX 678 GT_PK(2,2) 1137 2728 1171 2729 2730 1136
6346 CONVEX 679 GT_PK(2,2) 1137 2731 1138 2732 1879 1102
6347 CONVEX 680 GT_PK(2,2) 1169 2733 1134 2734 2559 1168
6348 CONVEX 681 GT_PK(2,2) 1169 2733 1134 2735 1866 1135
6349 CONVEX 682 GT_PK(2,2) 1267 2736 1268 2737 2716 1297
6350 CONVEX 683 GT_PK(2,2) 1267 2736 1268 2738 2718 1236
6351 CONVEX 684 GT_PK(2,2) 1204 2739 1236 2740 2720 1237
6352 CONVEX 685 GT_PK(2,2) 1240 2741 1207 2742 2743 1208
6353 CONVEX 686 GT_PK(2,2) 1271 2744 1240 2745 2746 1272
6354 CONVEX 687 GT_PK(2,2) 1243 2747 1244 2748 2694 1211
6355 CONVEX 688 GT_PK(2,2) 972 2749 971 2750 1952 933
6356 CONVEX 689 GT_PK(2,2) 1083 2751 1046 2752 2753 1045
6357 CONVEX 690 GT_PK(2,2) 1002 2754 1003 2755 2756 964
6358 CONVEX 691 GT_PK(2,2) 1002 2757 1040 2758 2286 1001
6359 CONVEX 692 GT_PK(2,2) 1002 2754 1003 2759 2760 1041
6360 CONVEX 693 GT_PK(2,2) 1002 2757 1040 2759 2289 1041
6361 CONVEX 694 GT_PK(2,2) 1081 2761 1043 2762 2763 1080
6362 CONVEX 695 GT_PK(2,2) 929 2764 930 2765 1958 968
6363 CONVEX 696 GT_PK(2,2) 1008 2766 969 2767 1953 970
6364 CONVEX 697 GT_PK(2,2) 1008 2767 970 2768 1946 1009
6365 CONVEX 698 GT_PK(2,2) 1157 2769 1192 2770 1742 1158
6366 CONVEX 699 GT_PK(2,2) 1010 2771 1049 2772 2773 1011
6367 CONVEX 700 GT_PK(2,2) 1010 2774 972 2772 2775 1011
6368 CONVEX 701 GT_PK(2,2) 1010 2776 971 2777 1945 1009
6369 CONVEX 702 GT_PK(2,2) 1010 2774 972 2776 2749 971
6370 CONVEX 703 GT_PK(2,2) 974 2778 936 2779 1551 975
6371 CONVEX 704 GT_PK(2,2) 974 2780 1013 2779 2781 975
6372 CONVEX 705 GT_PK(2,2) 1014 2782 1013 2783 2784 1052
6373 CONVEX 706 GT_PK(2,2) 1014 2782 1013 2785 2781 975
6374 CONVEX 707 GT_PK(2,2) 1014 2786 976 2785 1822 975
6375 CONVEX 708 GT_PK(2,2) 1014 2786 976 2787 2492 1015
6376 CONVEX 709 GT_PK(2,2) 1051 2788 1013 2789 2784 1052
6377 CONVEX 710 GT_PK(2,2) 1124 2790 1123 2791 2792 1087
6378 CONVEX 711 GT_PK(2,2) 1163 2793 1164 2794 1538 1198
6379 CONVEX 712 GT_PK(2,2) 1163 2795 1197 2794 1965 1198
6380 CONVEX 713 GT_PK(2,2) 725 2796 685 2797 2798 724
6381 CONVEX 714 GT_PK(2,2) 725 2799 764 2797 2800 724
6382 CONVEX 715 GT_PK(2,2) 684 2801 685 2802 2803 645
6383 CONVEX 716 GT_PK(2,2) 684 2801 685 2804 2798 724
6384 CONVEX 717 GT_PK(2,2) 570 2805 571 2806 2807 610
6385 CONVEX 718 GT_PK(2,2) 570 2808 609 2806 1966 610
6386 CONVEX 719 GT_PK(2,2) 570 2809 531 2810 2811 530
6387 CONVEX 720 GT_PK(2,2) 570 2809 531 2805 2812 571
6388 CONVEX 721 GT_PK(2,2) 646 2813 685 2814 2803 645
6389 CONVEX 722 GT_PK(2,2) 646 2815 606 2814 2816 645
6390 CONVEX 723 GT_PK(2,2) 30 2817 29 2818 1975 15
6391 CONVEX 724 GT_PK(2,2) 30 2817 29 2819 2820 48
6392 CONVEX 725 GT_PK(2,2) 28 2821 29 2822 1974 14
6393 CONVEX 726 GT_PK(2,2) 28 2822 14 2823 2824 13
6394 CONVEX 727 GT_PK(2,2) 28 2825 27 2823 1704 13
6395 CONVEX 728 GT_PK(2,2) 89 2826 66 2827 2828 90
6396 CONVEX 729 GT_PK(2,2) 89 2829 114 2830 2831 88
6397 CONVEX 730 GT_PK(2,2) 89 2832 65 2830 1493 88
6398 CONVEX 731 GT_PK(2,2) 89 2826 66 2832 1980 65
6399 CONVEX 732 GT_PK(2,2) 528 2833 529 2834 2835 490
6400 CONVEX 733 GT_PK(2,2) 489 2836 451 2837 2838 490
6401 CONVEX 734 GT_PK(2,2) 489 2839 528 2840 2841 527
6402 CONVEX 735 GT_PK(2,2) 489 2839 528 2837 2834 490
6403 CONVEX 736 GT_PK(2,2) 452 2842 451 2843 2844 413
6404 CONVEX 737 GT_PK(2,2) 452 2842 451 2845 2838 490
6405 CONVEX 738 GT_PK(2,2) 414 2846 452 2847 2843 413
6406 CONVEX 739 GT_PK(2,2) 414 2846 452 2848 2849 453
6407 CONVEX 740 GT_PK(2,2) 491 2850 529 2851 2852 530
6408 CONVEX 741 GT_PK(2,2) 491 2850 529 2853 2835 490
6409 CONVEX 742 GT_PK(2,2) 491 2854 452 2853 2845 490
6410 CONVEX 743 GT_PK(2,2) 491 2854 452 2855 2849 453
6411 CONVEX 744 GT_PK(2,2) 385 2856 423 2857 2858 422
6412 CONVEX 745 GT_PK(2,2) 311 2859 310 2860 1995 346
6413 CONVEX 746 GT_PK(2,2) 311 2859 310 2861 1997 276
6414 CONVEX 747 GT_PK(2,2) 382 2862 345 2863 1996 346
6415 CONVEX 748 GT_PK(2,2) 382 2864 383 2863 2865 346
6416 CONVEX 749 GT_PK(2,2) 382 2866 381 2862 2867 345
6417 CONVEX 750 GT_PK(2,2) 382 2868 420 2864 2869 383
6418 CONVEX 751 GT_PK(2,2) 382 2866 381 2870 2871 419
6419 CONVEX 752 GT_PK(2,2) 382 2868 420 2870 2872 419
6420 CONVEX 753 GT_PK(2,2) 347 2873 383 2874 2865 346
6421 CONVEX 754 GT_PK(2,2) 347 2875 311 2874 2860 346
6422 CONVEX 755 GT_PK(2,2) 494 2876 455 2877 2002 456
6423 CONVEX 756 GT_PK(2,2) 494 2878 495 2877 2879 456
6424 CONVEX 757 GT_PK(2,2) 494 2876 455 2880 1989 493
6425 CONVEX 758 GT_PK(2,2) 494 2878 495 2881 2882 533
6426 CONVEX 759 GT_PK(2,2) 497 2883 459 2884 1983 498
6427 CONVEX 760 GT_PK(2,2) 457 2885 495 2886 2879 456
6428 CONVEX 761 GT_PK(2,2) 235 2887 268 2888 2889 234
6429 CONVEX 762 GT_PK(2,2) 235 2890 202 2888 2239 234
6430 CONVEX 763 GT_PK(2,2) 235 2891 203 2890 2892 202
6431 CONVEX 764 GT_PK(2,2) 309 2893 310 2894 1994 345
6432 CONVEX 765 GT_PK(2,2) 309 2895 274 2896 2897 308
6433 CONVEX 766 GT_PK(2,2) 309 2895 274 2898 1973 275
6434 CONVEX 767 GT_PK(2,2) 309 2893 310 2898 1998 275
6435 CONVEX 768 GT_PK(2,2) 344 2899 343 2900 2008 308
6436 CONVEX 769 GT_PK(2,2) 344 2901 309 2900 2896 308
6437 CONVEX 770 GT_PK(2,2) 344 2901 309 2902 2894 345
6438 CONVEX 771 GT_PK(2,2) 344 2903 381 2902 2867 345
6439 CONVEX 772 GT_PK(2,2) 344 2903 381 2904 2905 380
6440 CONVEX 773 GT_PK(2,2) 344 2899 343 2904 2013 380
6441 CONVEX 774 GT_PK(2,2) 376 2906 414 2907 2847 413
6442 CONVEX 775 GT_PK(2,2) 376 2906 414 2908 2909 377
6443 CONVEX 776 GT_PK(2,2) 378 2910 341 2911 2912 377
6444 CONVEX 777 GT_PK(2,2) 378 2913 379 2914 2004 416
6445 CONVEX 778 GT_PK(2,2) 378 2913 379 2915 2012 342
6446 CONVEX 779 GT_PK(2,2) 378 2910 341 2915 2018 342
6447 CONVEX 780 GT_PK(2,2) 305 2916 341 2917 2017 306
6448 CONVEX 781 GT_PK(2,2) 340 2918 341 2919 2912 377
6449 CONVEX 782 GT_PK(2,2) 340 2920 376 2919 2908 377
6450 CONVEX 783 GT_PK(2,2) 340 2920 376 2921 2922 339
6451 CONVEX 784 GT_PK(2,2) 340 2923 305 2918 2916 341
6452 CONVEX 785 GT_PK(2,2) 340 2921 339 2924 2014 304
6453 CONVEX 786 GT_PK(2,2) 340 2923 305 2924 2925 304
6454 CONVEX 787 GT_PK(2,2) 765 2926 805 2927 1592 766
6455 CONVEX 788 GT_PK(2,2) 765 2928 725 2929 2930 1
6456 CONVEX 789 GT_PK(2,2) 765 2928 725 2931 2799 764
6457 CONVEX 790 GT_PK(2,2) 765 2932 726 2929 2933 1
6458 CONVEX 791 GT_PK(2,2) 765 2932 726 2927 2020 766
6459 CONVEX 792 GT_PK(2,2) 844 2934 805 2935 1593 845
6460 CONVEX 793 GT_PK(2,2) 802 2936 762 2937 2667 801
6461 CONVEX 794 GT_PK(2,2) 648 2938 609 2939 1967 649
6462 CONVEX 795 GT_PK(2,2) 648 2940 688 2939 2941 649
6463 CONVEX 796 GT_PK(2,2) 648 2942 608 2943 2944 647
6464 CONVEX 797 GT_PK(2,2) 648 2942 608 2938 2945 609
6465 CONVEX 798 GT_PK(2,2) 687 2946 726 2947 2019 727
6466 CONVEX 799 GT_PK(2,2) 687 2948 688 2947 2021 727
6467 CONVEX 800 GT_PK(2,2) 687 2949 648 2948 2940 688
6468 CONVEX 801 GT_PK(2,2) 687 2949 648 2950 2943 647
6469 CONVEX 802 GT_PK(2,2) 613 2951 652 2952 2953 653
6470 CONVEX 803 GT_PK(2,2) 532 2954 531 2955 2812 571
6471 CONVEX 804 GT_PK(2,2) 532 2956 572 2957 2958 533
6472 CONVEX 805 GT_PK(2,2) 532 2956 572 2955 2959 571
6473 CONVEX 806 GT_PK(2,2) 532 2954 531 2960 2961 493
6474 CONVEX 807 GT_PK(2,2) 532 2962 494 2957 2881 533
6475 CONVEX 808 GT_PK(2,2) 532 2962 494 2960 2880 493
6476 CONVEX 809 GT_PK(2,2) 808 2963 769 2964 2965 768
6477 CONVEX 810 GT_PK(2,2) 808 2966 807 2964 1598 768
6478 CONVEX 811 GT_PK(2,2) 808 2966 807 2967 1600 847
6479 CONVEX 812 GT_PK(2,2) 729 2968 769 2969 2970 730
6480 CONVEX 813 GT_PK(2,2) 729 2971 690 2969 2972 730
6481 CONVEX 814 GT_PK(2,2) 729 2973 728 2974 1468 768
6482 CONVEX 815 GT_PK(2,2) 729 2968 769 2974 2965 768
6483 CONVEX 816 GT_PK(2,2) 689 2975 688 2976 2941 649
6484 CONVEX 817 GT_PK(2,2) 689 2975 688 2977 2022 728
6485 CONVEX 818 GT_PK(2,2) 689 2978 729 2977 2973 728
6486 CONVEX 819 GT_PK(2,2) 689 2978 729 2979 2971 690
6487 CONVEX 820 GT_PK(2,2) 691 2980 690 2981 2972 730
6488 CONVEX 821 GT_PK(2,2) 611 2982 571 2983 2807 610
6489 CONVEX 822 GT_PK(2,2) 611 2984 572 2982 2959 571
6490 CONVEX 823 GT_PK(2,2) 854 2985 894 2986 1961 855
6491 CONVEX 824 GT_PK(2,2) 891 2987 930 2988 1956 931
6492 CONVEX 825 GT_PK(2,2) 536 2989 497 2990 2884 498
6493 CONVEX 826 GT_PK(2,2) 614 2991 575 2992 2993 574
6494 CONVEX 827 GT_PK(2,2) 614 2994 613 2995 2952 653
6495 CONVEX 828 GT_PK(2,2) 614 2994 613 2992 2996 574
6496 CONVEX 829 GT_PK(2,2) 774 2997 813 2998 2999 773
6497 CONVEX 830 GT_PK(2,2) 627 3000 628 3001 2026 667
6498 CONVEX 831 GT_PK(2,2) 627 3000 628 3002 2030 588
6499 CONVEX 832 GT_PK(2,2) 549 3003 510 3004 3005 509
6500 CONVEX 833 GT_PK(2,2) 433 3006 395 3007 1470 394
6501 CONVEX 834 GT_PK(2,2) 404 3008 403 3009 1604 366
6502 CONVEX 835 GT_PK(2,2) 404 3010 367 3009 2047 366
6503 CONVEX 836 GT_PK(2,2) 404 3010 367 3011 3012 405
6504 CONVEX 837 GT_PK(2,2) 404 3013 443 3011 3014 405
6505 CONVEX 838 GT_PK(2,2) 642 3015 681 3016 1917 682
6506 CONVEX 839 GT_PK(2,2) 642 3015 681 3017 1924 641
6507 CONVEX 840 GT_PK(2,2) 644 3018 684 3019 2802 645
6508 CONVEX 841 GT_PK(2,2) 644 3018 684 3020 3021 683
6509 CONVEX 842 GT_PK(2,2) 484 3022 523 3023 2056 522
6510 CONVEX 843 GT_PK(2,2) 524 3024 523 3025 2057 563
6511 CONVEX 844 GT_PK(2,2) 482 3026 521 3027 2664 520
6512 CONVEX 845 GT_PK(2,2) 558 3028 597 3029 2533 557
6513 CONVEX 846 GT_PK(2,2) 558 3030 559 3031 1899 598
6514 CONVEX 847 GT_PK(2,2) 558 3028 597 3031 3032 598
6515 CONVEX 848 GT_PK(2,2) 436 3033 397 3034 2061 398
6516 CONVEX 849 GT_PK(2,2) 436 3035 437 3034 2064 398
6517 CONVEX 850 GT_PK(2,2) 440 3036 439 3037 1606 478
6518 CONVEX 851 GT_PK(2,2) 440 3036 439 3038 2095 401
6519 CONVEX 852 GT_PK(2,2) 440 3039 402 3038 2092 401
6520 CONVEX 853 GT_PK(2,2) 221 3040 254 3041 2117 255
6521 CONVEX 854 GT_PK(2,2) 221 3041 255 3042 1628 222
6522 CONVEX 855 GT_PK(2,2) 221 3043 188 3044 2114 220
6523 CONVEX 856 GT_PK(2,2) 221 3040 254 3044 2116 220
6524 CONVEX 857 GT_PK(2,2) 221 3045 189 3042 1620 222
6525 CONVEX 858 GT_PK(2,2) 221 3043 188 3045 2110 189
6526 CONVEX 859 GT_PK(2,2) 323 3046 359 3047 2086 322
6527 CONVEX 860 GT_PK(2,2) 323 3048 287 3047 2124 322
6528 CONVEX 861 GT_PK(2,2) 323 3046 359 3049 2079 360
6529 CONVEX 862 GT_PK(2,2) 213 3050 214 3051 2162 182
6530 CONVEX 863 GT_PK(2,2) 213 3050 214 3052 2164 246
6531 CONVEX 864 GT_PK(2,2) 213 3053 181 3051 1662 182
6532 CONVEX 865 GT_PK(2,2) 213 3054 212 3053 3055 181
6533 CONVEX 866 GT_PK(2,2) 213 3052 246 3056 2201 245
6534 CONVEX 867 GT_PK(2,2) 213 3054 212 3056 3057 245
6535 CONVEX 868 GT_PK(2,2) 180 3058 212 3059 3055 181
6536 CONVEX 869 GT_PK(2,2) 180 3060 151 3059 2179 181
6537 CONVEX 870 GT_PK(2,2) 180 3061 211 3058 3062 212
6538 CONVEX 871 GT_PK(2,2) 74 3063 52 3064 3065 53
6539 CONVEX 872 GT_PK(2,2) 74 3066 73 3063 2182 52
6540 CONVEX 873 GT_PK(2,2) 74 3064 53 3067 1681 98
6541 CONVEX 874 GT_PK(2,2) 283 3068 282 3069 1699 249
6542 CONVEX 875 GT_PK(2,2) 283 3070 250 3069 2190 249
6543 CONVEX 876 GT_PK(2,2) 283 3068 282 3071 1695 317
6544 CONVEX 877 GT_PK(2,2) 283 3072 318 3071 2515 317
6545 CONVEX 878 GT_PK(2,2) 283 3072 318 3073 1844 284
6546 CONVEX 879 GT_PK(2,2) 283 3070 250 3073 2187 284
6547 CONVEX 880 GT_PK(2,2) 26 3074 12 3075 1702 27
6548 CONVEX 881 GT_PK(2,2) 26 3076 11 3074 3077 12
6549 CONVEX 882 GT_PK(2,2) 26 3076 11 3078 2207 25
6550 CONVEX 883 GT_PK(2,2) 26 3078 25 3079 1716 44
6551 CONVEX 884 GT_PK(2,2) 26 3079 44 3080 1979 45
6552 CONVEX 885 GT_PK(2,2) 26 3075 27 3080 3081 45
6553 CONVEX 886 GT_PK(2,2) 81 3082 57 3083 2211 80
6554 CONVEX 887 GT_PK(2,2) 81 3084 107 3085 3086 82
6555 CONVEX 888 GT_PK(2,2) 81 3087 106 3083 2220 80
6556 CONVEX 889 GT_PK(2,2) 81 3084 107 3087 3088 106
6557 CONVEX 890 GT_PK(2,2) 193 3089 161 3090 1640 192
6558 CONVEX 891 GT_PK(2,2) 193 3091 162 3089 2228 161
6559 CONVEX 892 GT_PK(2,2) 193 3092 225 3090 1482 192
6560 CONVEX 893 GT_PK(2,2) 338 3093 339 3094 2015 303
6561 CONVEX 894 GT_PK(2,2) 338 3095 302 3094 2231 303
6562 CONVEX 895 GT_PK(2,2) 58 3096 37 3097 2234 36
6563 CONVEX 896 GT_PK(2,2) 58 3098 81 3099 3085 82
6564 CONVEX 897 GT_PK(2,2) 58 3100 57 3097 2213 36
6565 CONVEX 898 GT_PK(2,2) 58 3098 81 3100 3082 57
6566 CONVEX 899 GT_PK(2,2) 200 3101 168 3102 2246 169
6567 CONVEX 900 GT_PK(2,2) 200 3103 201 3102 3104 169
6568 CONVEX 901 GT_PK(2,2) 200 3103 201 3105 2240 233
6569 CONVEX 902 GT_PK(2,2) 86 3106 87 3107 3108 112
6570 CONVEX 903 GT_PK(2,2) 113 3109 87 3110 3108 112
6571 CONVEX 904 GT_PK(2,2) 113 3111 141 3112 3113 114
6572 CONVEX 905 GT_PK(2,2) 113 3112 114 3114 2831 88
6573 CONVEX 906 GT_PK(2,2) 113 3109 87 3114 2243 88
6574 CONVEX 907 GT_PK(2,2) 40 3115 39 3116 2260 21
6575 CONVEX 908 GT_PK(2,2) 40 3117 22 3118 1726 41
6576 CONVEX 909 GT_PK(2,2) 40 3117 22 3116 1720 21
6577 CONVEX 910 GT_PK(2,2) 40 3115 39 3119 3120 61
6578 CONVEX 911 GT_PK(2,2) 59 3121 58 3122 3099 82
6579 CONVEX 912 GT_PK(2,2) 59 3121 58 3123 3096 37
6580 CONVEX 913 GT_PK(2,2) 108 3124 107 3125 3086 82
6581 CONVEX 914 GT_PK(2,2) 1364 3126 1365 3127 3128 1339
6582 CONVEX 915 GT_PK(2,2) 963 3129 1002 3130 2755 964
6583 CONVEX 916 GT_PK(2,2) 963 3129 1002 3131 2758 1001
6584 CONVEX 917 GT_PK(2,2) 963 3132 925 3130 3133 964
6585 CONVEX 918 GT_PK(2,2) 963 3132 925 3134 2298 924
6586 CONVEX 919 GT_PK(2,2) 1038 3135 1000 3136 2284 1039
6587 CONVEX 920 GT_PK(2,2) 1038 3137 1076 3136 3138 1039
6588 CONVEX 921 GT_PK(2,2) 1038 3137 1076 3139 2280 1075
6589 CONVEX 922 GT_PK(2,2) 965 3140 927 3141 2291 966
6590 CONVEX 923 GT_PK(2,2) 965 3142 1003 3143 2756 964
6591 CONVEX 924 GT_PK(2,2) 965 3144 1004 3141 3145 966
6592 CONVEX 925 GT_PK(2,2) 965 3144 1004 3142 3146 1003
6593 CONVEX 926 GT_PK(2,2) 886 3147 925 3148 2299 885
6594 CONVEX 927 GT_PK(2,2) 886 3148 885 3149 1739 846
6595 CONVEX 928 GT_PK(2,2) 886 3150 847 3149 1602 846
6596 CONVEX 929 GT_PK(2,2) 886 3151 887 3150 3152 847
6597 CONVEX 930 GT_PK(2,2) 1393 3153 1369 3154 2338 1370
6598 CONVEX 931 GT_PK(2,2) 1393 3153 1369 3155 2357 1392
6599 CONVEX 932 GT_PK(2,2) 1393 3156 1414 3155 2367 1392
6600 CONVEX 933 GT_PK(2,2) 1393 3157 1415 3156 2304 1414
6601 CONVEX 934 GT_PK(2,2) 1254 3158 1286 3159 3160 1285
6602 CONVEX 935 GT_PK(2,2) 1254 3161 1253 3159 2399 1285
6603 CONVEX 936 GT_PK(2,2) 1254 3162 1222 3163 2311 1221
6604 CONVEX 937 GT_PK(2,2) 1254 3161 1253 3163 2418 1221
6605 CONVEX 938 GT_PK(2,2) 1374 3164 1348 3165 2313 1397
6606 CONVEX 939 GT_PK(2,2) 1293 3166 1294 3167 3168 1323
6607 CONVEX 940 GT_PK(2,2) 1293 3166 1294 3169 2478 1262
6608 CONVEX 941 GT_PK(2,2) 1321 3170 1348 3171 2317 1320
6609 CONVEX 942 GT_PK(2,2) 1321 3172 1291 3171 3173 1320
6610 CONVEX 943 GT_PK(2,2) 1319 3174 1347 3175 2328 1346
6611 CONVEX 944 GT_PK(2,2) 1319 3174 1347 3176 2316 1320
6612 CONVEX 945 GT_PK(2,2) 1394 3177 1416 3178 2318 1395
6613 CONVEX 946 GT_PK(2,2) 1394 3179 1415 3180 2302 1434
6614 CONVEX 947 GT_PK(2,2) 1394 3177 1416 3180 3181 1434
6615 CONVEX 948 GT_PK(2,2) 1394 3182 1371 3183 2324 1370
6616 CONVEX 949 GT_PK(2,2) 1394 3182 1371 3178 2332 1395
6617 CONVEX 950 GT_PK(2,2) 1394 3184 1393 3183 3154 1370
6618 CONVEX 951 GT_PK(2,2) 1394 3184 1393 3179 3157 1415
6619 CONVEX 952 GT_PK(2,2) 1195 3185 1196 3186 1583 1229
6620 CONVEX 953 GT_PK(2,2) 1261 3187 1262 3188 1535 1229
6621 CONVEX 954 GT_PK(2,2) 1261 3189 1293 3187 3169 1262
6622 CONVEX 955 GT_PK(2,2) 1411 3190 1390 3191 1747 1412
6623 CONVEX 956 GT_PK(2,2) 1411 3192 1430 3191 1512 1412
6624 CONVEX 957 GT_PK(2,2) 1411 3193 1429 3192 2351 1430
6625 CONVEX 958 GT_PK(2,2) 1411 3194 1410 3193 2354 1429
6626 CONVEX 959 GT_PK(2,2) 1077 3195 1113 3196 2374 1076
6627 CONVEX 960 GT_PK(2,2) 1077 3197 1040 3198 2288 1078
6628 CONVEX 961 GT_PK(2,2) 1077 3196 1076 3199 3138 1039
6629 CONVEX 962 GT_PK(2,2) 1077 3197 1040 3199 2287 1039
6630 CONVEX 963 GT_PK(2,2) 1151 3200 1150 3201 2375 1185
6631 CONVEX 964 GT_PK(2,2) 1151 3202 1116 3203 3204 1152
6632 CONVEX 965 GT_PK(2,2) 1151 3202 1116 3205 2382 1115
6633 CONVEX 966 GT_PK(2,2) 1151 3200 1150 3205 3206 1115
6634 CONVEX 967 GT_PK(2,2) 1249 3207 1280 3208 2386 1248
6635 CONVEX 968 GT_PK(2,2) 1249 3208 1248 3209 3210 1216
6636 CONVEX 969 GT_PK(2,2) 1249 3211 1217 3212 2395 1250
6637 CONVEX 970 GT_PK(2,2) 1249 3211 1217 3209 2392 1216
6638 CONVEX 971 GT_PK(2,2) 1251 3213 1282 3214 3215 1250
6639 CONVEX 972 GT_PK(2,2) 1251 3216 1218 3214 2396 1250
6640 CONVEX 973 GT_PK(2,2) 1251 3216 1218 3217 1520 1219
6641 CONVEX 974 GT_PK(2,2) 1251 3218 1252 3217 2421 1219
6642 CONVEX 975 GT_PK(2,2) 1281 3219 1311 3220 2406 1282
6643 CONVEX 976 GT_PK(2,2) 1281 3221 1249 3222 3207 1280
6644 CONVEX 977 GT_PK(2,2) 1281 3222 1280 3223 2390 1310
6645 CONVEX 978 GT_PK(2,2) 1281 3219 1311 3223 3224 1310
6646 CONVEX 979 GT_PK(2,2) 1281 3220 1282 3225 3215 1250
6647 CONVEX 980 GT_PK(2,2) 1281 3221 1249 3225 3212 1250
6648 CONVEX 981 GT_PK(2,2) 1367 3226 1391 3227 1745 1390
6649 CONVEX 982 GT_PK(2,2) 1367 3228 1368 3226 2358 1391
6650 CONVEX 983 GT_PK(2,2) 1367 3229 1366 3227 3230 1390
6651 CONVEX 984 GT_PK(2,2) 1367 3229 1366 3231 3232 1341
6652 CONVEX 985 GT_PK(2,2) 1342 3233 1368 3234 2360 1343
6653 CONVEX 986 GT_PK(2,2) 1342 3235 1367 3233 3228 1368
6654 CONVEX 987 GT_PK(2,2) 1342 3235 1367 3236 3231 1341
6655 CONVEX 988 GT_PK(2,2) 1155 3237 1154 3238 3239 1119
6656 CONVEX 989 GT_PK(2,2) 1155 3237 1154 3240 2413 1189
6657 CONVEX 990 GT_PK(2,2) 1155 3241 1190 3240 3242 1189
6658 CONVEX 991 GT_PK(2,2) 1155 3241 1190 3243 3244 1156
6659 CONVEX 992 GT_PK(2,2) 1186 3245 1220 3246 2415 1187
6660 CONVEX 993 GT_PK(2,2) 1186 3246 1187 3247 2410 1152
6661 CONVEX 994 GT_PK(2,2) 1186 3248 1185 3249 1521 1219
6662 CONVEX 995 GT_PK(2,2) 1186 3245 1220 3249 2420 1219
6663 CONVEX 996 GT_PK(2,2) 1186 3250 1151 3247 3203 1152
6664 CONVEX 997 GT_PK(2,2) 1186 3250 1151 3248 3201 1185
6665 CONVEX 998 GT_PK(2,2) 666 3251 665 3252 2423 705
6666 CONVEX 999 GT_PK(2,2) 664 3253 665 3254 2422 704
6667 CONVEX 1000 GT_PK(2,2) 664 3255 624 3256 2451 663
6668 CONVEX 1001 GT_PK(2,2) 664 3253 665 3257 3258 625
6669 CONVEX 1002 GT_PK(2,2) 664 3255 624 3257 2435 625
6670 CONVEX 1003 GT_PK(2,2) 506 3259 507 3260 1766 545
6671 CONVEX 1004 GT_PK(2,2) 506 3259 507 3261 1771 468
6672 CONVEX 1005 GT_PK(2,2) 506 3261 468 3262 1759 467
6673 CONVEX 1006 GT_PK(2,2) 506 3263 505 3262 3264 467
6674 CONVEX 1007 GT_PK(2,2) 740 3265 739 3266 2441 779
6675 CONVEX 1008 GT_PK(2,2) 740 3267 780 3266 2461 779
6676 CONVEX 1009 GT_PK(2,2) 740 3267 780 3268 2458 741
6677 CONVEX 1010 GT_PK(2,2) 740 3265 739 3269 3270 700
6678 CONVEX 1011 GT_PK(2,2) 859 3271 819 3272 2460 820
6679 CONVEX 1012 GT_PK(2,2) 859 3273 860 3272 2484 820
6680 CONVEX 1013 GT_PK(2,2) 859 3273 860 3274 2485 899
6681 CONVEX 1014 GT_PK(2,2) 859 3274 899 3275 2436 898
6682 CONVEX 1015 GT_PK(2,2) 859 3275 898 3276 1801 858
6683 CONVEX 1016 GT_PK(2,2) 859 3271 819 3276 2446 858
6684 CONVEX 1017 GT_PK(2,2) 543 3277 504 3278 3279 505
6685 CONVEX 1018 GT_PK(2,2) 543 3280 542 3281 3282 582
6686 CONVEX 1019 GT_PK(2,2) 543 3277 504 3280 3283 542
6687 CONVEX 1020 GT_PK(2,2) 544 3284 543 3285 3278 505
6688 CONVEX 1021 GT_PK(2,2) 544 3286 506 3287 3260 545
6689 CONVEX 1022 GT_PK(2,2) 544 3286 506 3285 3263 505
6690 CONVEX 1023 GT_PK(2,2) 584 3288 624 3289 2434 585
6691 CONVEX 1024 GT_PK(2,2) 584 3290 623 3288 2449 624
6692 CONVEX 1025 GT_PK(2,2) 584 3289 585 3291 1777 545
6693 CONVEX 1026 GT_PK(2,2) 584 3292 544 3291 3287 545
6694 CONVEX 1027 GT_PK(2,2) 702 3293 742 3294 2454 741
6695 CONVEX 1028 GT_PK(2,2) 702 3295 662 3296 2463 663
6696 CONVEX 1029 GT_PK(2,2) 702 3293 742 3297 2452 743
6697 CONVEX 1030 GT_PK(2,2) 622 3298 662 3299 2462 623
6698 CONVEX 1031 GT_PK(2,2) 622 3298 662 3300 3301 661
6699 CONVEX 1032 GT_PK(2,2) 622 3302 621 3303 3304 582
6700 CONVEX 1033 GT_PK(2,2) 622 3302 621 3300 3305 661
6701 CONVEX 1034 GT_PK(2,2) 1093 3306 1092 3307 3308 1129
6702 CONVEX 1035 GT_PK(2,2) 1093 3309 1056 3310 2471 1094
6703 CONVEX 1036 GT_PK(2,2) 1093 3311 1055 3306 3312 1092
6704 CONVEX 1037 GT_PK(2,2) 1093 3311 1055 3309 2473 1056
6705 CONVEX 1038 GT_PK(2,2) 1093 3313 1130 3307 1534 1129
6706 CONVEX 1039 GT_PK(2,2) 1093 3310 1094 3313 3314 1130
6707 CONVEX 1040 GT_PK(2,2) 1018 3315 1057 3316 3317 1019
6708 CONVEX 1041 GT_PK(2,2) 1018 3318 1056 3315 2470 1057
6709 CONVEX 1042 GT_PK(2,2) 1018 3318 1056 3319 2475 1017
6710 CONVEX 1043 GT_PK(2,2) 1018 3320 979 3316 2497 1019
6711 CONVEX 1044 GT_PK(2,2) 1018 3320 979 3319 2464 1017
6712 CONVEX 1045 GT_PK(2,2) 1054 3321 1055 3322 3312 1092
6713 CONVEX 1046 GT_PK(2,2) 777 3323 738 3324 2444 778
6714 CONVEX 1047 GT_PK(2,2) 777 3325 817 3324 2482 778
6715 CONVEX 1048 GT_PK(2,2) 856 3326 895 3327 3328 896
6716 CONVEX 1049 GT_PK(2,2) 856 3326 895 3329 1960 855
6717 CONVEX 1050 GT_PK(2,2) 857 3330 817 3331 2481 818
6718 CONVEX 1051 GT_PK(2,2) 857 3332 897 3333 1800 858
6719 CONVEX 1052 GT_PK(2,2) 857 3331 818 3333 2447 858
6720 CONVEX 1053 GT_PK(2,2) 857 3332 897 3334 1796 896
6721 CONVEX 1054 GT_PK(2,2) 857 3335 856 3334 3327 896
6722 CONVEX 1055 GT_PK(2,2) 857 3335 856 3330 3336 817
6723 CONVEX 1056 GT_PK(2,2) 1016 3337 1017 3338 2466 978
6724 CONVEX 1057 GT_PK(2,2) 1016 3339 977 3338 2488 978
6725 CONVEX 1058 GT_PK(2,2) 1016 3339 977 3340 2491 1015
6726 CONVEX 1059 GT_PK(2,2) 1016 3341 1054 3340 3342 1015
6727 CONVEX 1060 GT_PK(2,2) 1016 3343 1055 3337 2474 1017
6728 CONVEX 1061 GT_PK(2,2) 1016 3341 1054 3343 3321 1055
6729 CONVEX 1062 GT_PK(2,2) 862 3344 861 3345 2499 822
6730 CONVEX 1063 GT_PK(2,2) 862 3346 823 3345 1788 822
6731 CONVEX 1064 GT_PK(2,2) 862 3347 901 3348 2504 902
6732 CONVEX 1065 GT_PK(2,2) 862 3347 901 3344 2506 861
6733 CONVEX 1066 GT_PK(2,2) 862 3346 823 3349 1461 863
6734 CONVEX 1067 GT_PK(2,2) 862 3350 903 3349 3351 863
6735 CONVEX 1068 GT_PK(2,2) 862 3348 902 3350 1816 903
6736 CONVEX 1069 GT_PK(2,2) 351 3352 352 3353 1823 316
6737 CONVEX 1070 GT_PK(2,2) 351 3353 316 3354 1554 315
6738 CONVEX 1071 GT_PK(2,2) 351 3355 388 3352 3356 352
6739 CONVEX 1072 GT_PK(2,2) 351 3355 388 3357 3358 387
6740 CONVEX 1073 GT_PK(2,2) 837 3359 797 3360 1894 836
6741 CONVEX 1074 GT_PK(2,2) 837 3359 797 3361 2635 798
6742 CONVEX 1075 GT_PK(2,2) 837 3362 838 3361 3363 798
6743 CONVEX 1076 GT_PK(2,2) 799 3364 838 3365 2519 839
6744 CONVEX 1077 GT_PK(2,2) 799 3364 838 3366 3363 798
6745 CONVEX 1078 GT_PK(2,2) 799 3367 759 3366 2636 798
6746 CONVEX 1079 GT_PK(2,2) 799 3367 759 3368 1900 760
6747 CONVEX 1080 GT_PK(2,2) 637 3369 597 3370 2535 636
6748 CONVEX 1081 GT_PK(2,2) 637 3369 597 3371 3032 598
6749 CONVEX 1082 GT_PK(2,2) 637 3372 638 3371 2651 598
6750 CONVEX 1083 GT_PK(2,2) 637 3372 638 3373 2652 677
6751 CONVEX 1084 GT_PK(2,2) 518 3374 517 3375 2523 557
6752 CONVEX 1085 GT_PK(2,2) 518 3376 558 3375 3029 557
6753 CONVEX 1086 GT_PK(2,2) 671 3377 710 3378 3379 670
6754 CONVEX 1087 GT_PK(2,2) 671 3380 711 3377 3381 710
6755 CONVEX 1088 GT_PK(2,2) 753 3382 714 3383 3384 713
6756 CONVEX 1089 GT_PK(2,2) 753 3385 792 3386 3387 793
6757 CONVEX 1090 GT_PK(2,2) 753 3388 754 3386 2649 793
6758 CONVEX 1091 GT_PK(2,2) 753 3388 754 3382 2645 714
6759 CONVEX 1092 GT_PK(2,2) 669 3389 708 3390 3391 707
6760 CONVEX 1093 GT_PK(2,2) 669 3392 668 3393 2025 629
6761 CONVEX 1094 GT_PK(2,2) 669 3390 707 3392 1854 668
6762 CONVEX 1095 GT_PK(2,2) 669 3389 708 3394 3395 670
6763 CONVEX 1096 GT_PK(2,2) 825 3396 864 3397 3398 826
6764 CONVEX 1097 GT_PK(2,2) 825 3399 786 3400 1856 785
6765 CONVEX 1098 GT_PK(2,2) 825 3399 786 3397 2547 826
6766 CONVEX 1099 GT_PK(2,2) 865 3401 864 3402 3398 826
6767 CONVEX 1100 GT_PK(2,2) 865 3401 864 3403 3404 904
6768 CONVEX 1101 GT_PK(2,2) 748 3405 787 3406 3407 788
6769 CONVEX 1102 GT_PK(2,2) 748 3408 749 3406 3409 788
6770 CONVEX 1103 GT_PK(2,2) 748 3408 749 3410 3411 708
6771 CONVEX 1104 GT_PK(2,2) 748 3410 708 3412 3391 707
6772 CONVEX 1105 GT_PK(2,2) 748 3412 707 3413 1853 747
6773 CONVEX 1106 GT_PK(2,2) 748 3405 787 3413 2548 747
6774 CONVEX 1107 GT_PK(2,2) 1061 3414 1098 3415 2555 1062
6775 CONVEX 1108 GT_PK(2,2) 1061 3416 1023 3417 2597 1060
6776 CONVEX 1109 GT_PK(2,2) 1061 3418 1097 3417 2581 1060
6777 CONVEX 1110 GT_PK(2,2) 1061 3418 1097 3414 2564 1098
6778 CONVEX 1111 GT_PK(2,2) 1061 3415 1062 3419 3420 1024
6779 CONVEX 1112 GT_PK(2,2) 1061 3416 1023 3419 2603 1024
6780 CONVEX 1113 GT_PK(2,2) 1066 3421 1103 3422 1878 1102
6781 CONVEX 1114 GT_PK(2,2) 1066 3423 1065 3422 3424 1102
6782 CONVEX 1115 GT_PK(2,2) 1066 3421 1103 3425 3426 1067
6783 CONVEX 1116 GT_PK(2,2) 1066 3423 1065 3427 2585 1028
6784 CONVEX 1117 GT_PK(2,2) 1066 3428 1029 3425 2614 1067
6785 CONVEX 1118 GT_PK(2,2) 1066 3428 1029 3427 3429 1028
6786 CONVEX 1119 GT_PK(2,2) 752 3430 713 3431 3432 712
6787 CONVEX 1120 GT_PK(2,2) 752 3433 792 3434 3435 791
6788 CONVEX 1121 GT_PK(2,2) 752 3436 753 3430 3383 713
6789 CONVEX 1122 GT_PK(2,2) 752 3436 753 3433 3385 792
6790 CONVEX 1123 GT_PK(2,2) 752 3437 751 3431 2588 712
6791 CONVEX 1124 GT_PK(2,2) 752 3437 751 3434 3438 791
6792 CONVEX 1125 GT_PK(2,2) 831 3439 792 3440 3435 791
6793 CONVEX 1126 GT_PK(2,2) 789 3441 749 3442 3409 788
6794 CONVEX 1127 GT_PK(2,2) 1026 3443 1027 3444 2584 1064
6795 CONVEX 1128 GT_PK(2,2) 1026 3445 1063 3444 2593 1064
6796 CONVEX 1129 GT_PK(2,2) 1026 3443 1027 3446 2618 988
6797 CONVEX 1130 GT_PK(2,2) 1025 3447 1062 3448 3420 1024
6798 CONVEX 1131 GT_PK(2,2) 1025 3449 1063 3447 2590 1062
6799 CONVEX 1132 GT_PK(2,2) 1025 3450 1026 3449 3445 1063
6800 CONVEX 1133 GT_PK(2,2) 984 3451 1022 3452 2600 983
6801 CONVEX 1134 GT_PK(2,2) 984 3451 1022 3453 2595 1023
6802 CONVEX 1135 GT_PK(2,2) 984 3454 985 3453 2601 1023
6803 CONVEX 1136 GT_PK(2,2) 984 3455 945 3452 3456 983
6804 CONVEX 1137 GT_PK(2,2) 947 3457 948 3458 1874 909
6805 CONVEX 1138 GT_PK(2,2) 991 3459 1030 3460 2612 1029
6806 CONVEX 1139 GT_PK(2,2) 991 3459 1030 3461 3462 992
6807 CONVEX 1140 GT_PK(2,2) 1033 3463 1032 3464 3465 1070
6808 CONVEX 1141 GT_PK(2,2) 1031 3466 1030 3467 3462 992
6809 CONVEX 1142 GT_PK(2,2) 1031 3468 993 3467 3469 992
6810 CONVEX 1143 GT_PK(2,2) 1031 3468 993 3470 3471 1032
6811 CONVEX 1144 GT_PK(2,2) 953 3472 914 3473 3474 952
6812 CONVEX 1145 GT_PK(2,2) 953 3475 991 3473 3476 952
6813 CONVEX 1146 GT_PK(2,2) 953 3475 991 3477 3461 992
6814 CONVEX 1147 GT_PK(2,2) 953 3472 914 3478 2641 915
6815 CONVEX 1148 GT_PK(2,2) 913 3479 912 3480 2621 873
6816 CONVEX 1149 GT_PK(2,2) 913 3480 873 3481 3482 874
6817 CONVEX 1150 GT_PK(2,2) 913 3483 914 3481 2644 874
6818 CONVEX 1151 GT_PK(2,2) 913 3483 914 3484 3474 952
6819 CONVEX 1152 GT_PK(2,2) 951 3485 989 3486 2615 950
6820 CONVEX 1153 GT_PK(2,2) 951 3487 912 3486 2623 950
6821 CONVEX 1154 GT_PK(2,2) 951 3488 913 3487 3479 912
6822 CONVEX 1155 GT_PK(2,2) 951 3488 913 3489 3484 952
6823 CONVEX 1156 GT_PK(2,2) 1205 3490 1204 3491 2740 1237
6824 CONVEX 1157 GT_PK(2,2) 1205 3490 1204 3492 3493 1171
6825 CONVEX 1158 GT_PK(2,2) 1174 3494 1207 3495 2743 1208
6826 CONVEX 1159 GT_PK(2,2) 1174 3494 1207 3496 2628 1173
6827 CONVEX 1160 GT_PK(2,2) 1139 3497 1103 3498 1877 1138
6828 CONVEX 1161 GT_PK(2,2) 1139 3499 1174 3500 3501 1140
6829 CONVEX 1162 GT_PK(2,2) 1139 3498 1138 3502 3503 1173
6830 CONVEX 1163 GT_PK(2,2) 1139 3499 1174 3502 3496 1173
6831 CONVEX 1164 GT_PK(2,2) 833 3504 872 3505 2622 873
6832 CONVEX 1165 GT_PK(2,2) 833 3506 794 3507 2648 793
6833 CONVEX 1166 GT_PK(2,2) 834 3508 873 3509 3482 874
6834 CONVEX 1167 GT_PK(2,2) 834 3510 835 3509 2643 874
6835 CONVEX 1168 GT_PK(2,2) 834 3511 833 3508 3505 873
6836 CONVEX 1169 GT_PK(2,2) 834 3511 833 3512 3506 794
6837 CONVEX 1170 GT_PK(2,2) 755 3513 754 3514 2646 715
6838 CONVEX 1171 GT_PK(2,2) 755 3515 794 3513 2647 754
6839 CONVEX 1172 GT_PK(2,2) 755 3514 715 3516 3517 716
6840 CONVEX 1173 GT_PK(2,2) 755 3518 756 3516 1887 716
6841 CONVEX 1174 GT_PK(2,2) 600 3519 601 3520 2048 640
6842 CONVEX 1175 GT_PK(2,2) 600 3521 639 3520 2656 640
6843 CONVEX 1176 GT_PK(2,2) 600 3519 601 3522 2054 561
6844 CONVEX 1177 GT_PK(2,2) 600 3523 560 3522 2665 561
6845 CONVEX 1178 GT_PK(2,2) 600 3521 639 3524 2658 599
6846 CONVEX 1179 GT_PK(2,2) 600 3523 560 3524 2662 599
6847 CONVEX 1180 GT_PK(2,2) 723 3525 722 3526 2674 762
6848 CONVEX 1181 GT_PK(2,2) 723 3525 722 3527 2672 683
6849 CONVEX 1182 GT_PK(2,2) 723 3528 684 3529 2804 724
6850 CONVEX 1183 GT_PK(2,2) 723 3528 684 3527 3021 683
6851 CONVEX 1184 GT_PK(2,2) 1438 3530 1424 3531 1936 1439
6852 CONVEX 1185 GT_PK(2,2) 1438 3532 1423 3530 2677 1424
6853 CONVEX 1186 GT_PK(2,2) 1437 3533 1423 3534 2680 1422
6854 CONVEX 1187 GT_PK(2,2) 1437 3535 1436 3534 3536 1422
6855 CONVEX 1188 GT_PK(2,2) 1437 3537 1438 3533 3532 1423
6856 CONVEX 1189 GT_PK(2,2) 1180 3538 1179 3539 2696 1213
6857 CONVEX 1190 GT_PK(2,2) 1180 3540 1214 3539 3541 1213
6858 CONVEX 1191 GT_PK(2,2) 1180 3540 1214 3542 3543 1181
6859 CONVEX 1192 GT_PK(2,2) 1180 3538 1179 3544 3545 1145
6860 CONVEX 1193 GT_PK(2,2) 1144 3546 1179 3547 3545 1145
6861 CONVEX 1194 GT_PK(2,2) 1144 3546 1179 3548 2698 1178
6862 CONVEX 1195 GT_PK(2,2) 1246 3549 1245 3550 2700 1213
6863 CONVEX 1196 GT_PK(2,2) 1246 3551 1214 3550 3541 1213
6864 CONVEX 1197 GT_PK(2,2) 1246 3551 1214 3552 3553 1247
6865 CONVEX 1198 GT_PK(2,2) 1246 3554 1277 3549 3555 1245
6866 CONVEX 1199 GT_PK(2,2) 1246 3556 1278 3552 1581 1247
6867 CONVEX 1200 GT_PK(2,2) 1246 3554 1277 3556 3557 1278
6868 CONVEX 1201 GT_PK(2,2) 1215 3558 1214 3559 3553 1247
6869 CONVEX 1202 GT_PK(2,2) 1215 3560 1248 3559 1749 1247
6870 CONVEX 1203 GT_PK(2,2) 1215 3560 1248 3561 3210 1216
6871 CONVEX 1204 GT_PK(2,2) 1215 3562 1182 3561 2703 1216
6872 CONVEX 1205 GT_PK(2,2) 1215 3558 1214 3563 3543 1181
6873 CONVEX 1206 GT_PK(2,2) 1215 3562 1182 3563 2709 1181
6874 CONVEX 1207 GT_PK(2,2) 1307 3564 1308 3565 2710 1278
6875 CONVEX 1208 GT_PK(2,2) 1307 3566 1277 3567 3568 1306
6876 CONVEX 1209 GT_PK(2,2) 1307 3566 1277 3565 3557 1278
6877 CONVEX 1210 GT_PK(2,2) 1307 3569 1334 3567 3570 1306
6878 CONVEX 1211 GT_PK(2,2) 1307 3571 1335 3569 2686 1334
6879 CONVEX 1212 GT_PK(2,2) 1307 3564 1308 3571 2714 1335
6880 CONVEX 1213 GT_PK(2,2) 1326 3572 1299 3573 2727 1298
6881 CONVEX 1214 GT_PK(2,2) 1326 3572 1299 3574 3575 1327
6882 CONVEX 1215 GT_PK(2,2) 1326 3576 1375 3577 3578 1351
6883 CONVEX 1216 GT_PK(2,2) 1172 3579 1137 3580 2728 1171
6884 CONVEX 1217 GT_PK(2,2) 1172 3581 1205 3580 3492 1171
6885 CONVEX 1218 GT_PK(2,2) 1172 3581 1205 3582 3583 1206
6886 CONVEX 1219 GT_PK(2,2) 1172 3582 1206 3584 2627 1173
6887 CONVEX 1220 GT_PK(2,2) 1172 3585 1138 3584 3503 1173
6888 CONVEX 1221 GT_PK(2,2) 1172 3579 1137 3585 2731 1138
6889 CONVEX 1222 GT_PK(2,2) 1101 3586 1100 3587 2550 1136
6890 CONVEX 1223 GT_PK(2,2) 1101 3588 1137 3587 2729 1136
6891 CONVEX 1224 GT_PK(2,2) 1101 3588 1137 3589 2732 1102
6892 CONVEX 1225 GT_PK(2,2) 1101 3586 1100 3590 2594 1064
6893 CONVEX 1226 GT_PK(2,2) 1101 3591 1065 3589 3424 1102
6894 CONVEX 1227 GT_PK(2,2) 1101 3591 1065 3590 2583 1064
6895 CONVEX 1228 GT_PK(2,2) 1203 3592 1204 3593 2739 1236
6896 CONVEX 1229 GT_PK(2,2) 1235 3594 1267 3595 3596 1266
6897 CONVEX 1230 GT_PK(2,2) 1235 3597 1265 3595 3598 1266
6898 CONVEX 1231 GT_PK(2,2) 1235 3597 1265 3599 1860 1234
6899 CONVEX 1232 GT_PK(2,2) 1235 3594 1267 3600 2738 1236
6900 CONVEX 1233 GT_PK(2,2) 1235 3601 1203 3600 3593 1236
6901 CONVEX 1234 GT_PK(2,2) 1170 3602 1204 3603 3493 1171
6902 CONVEX 1235 GT_PK(2,2) 1170 3603 1171 3604 2730 1136
6903 CONVEX 1236 GT_PK(2,2) 1170 3605 1203 3606 3607 1169
6904 CONVEX 1237 GT_PK(2,2) 1170 3605 1203 3602 3592 1204
6905 CONVEX 1238 GT_PK(2,2) 1170 3608 1135 3604 2551 1136
6906 CONVEX 1239 GT_PK(2,2) 1170 3606 1169 3608 2735 1135
6907 CONVEX 1240 GT_PK(2,2) 1239 3609 1206 3610 2626 1207
6908 CONVEX 1241 GT_PK(2,2) 1239 3611 1240 3610 2741 1207
6909 CONVEX 1242 GT_PK(2,2) 1239 3612 1271 3611 2744 1240
6910 CONVEX 1243 GT_PK(2,2) 1239 3612 1271 3613 3614 1270
6911 CONVEX 1244 GT_PK(2,2) 1274 3615 1243 3616 3617 1242
6912 CONVEX 1245 GT_PK(2,2) 1274 3618 1273 3616 3619 1242
6913 CONVEX 1246 GT_PK(2,2) 1274 3620 1304 3621 3622 1303
6914 CONVEX 1247 GT_PK(2,2) 1274 3618 1273 3621 3623 1303
6915 CONVEX 1248 GT_PK(2,2) 1241 3624 1240 3625 2746 1272
6916 CONVEX 1249 GT_PK(2,2) 1241 3626 1273 3625 3627 1272
6917 CONVEX 1250 GT_PK(2,2) 1241 3624 1240 3628 2742 1208
6918 CONVEX 1251 GT_PK(2,2) 1241 3626 1273 3629 3619 1242
6919 CONVEX 1252 GT_PK(2,2) 967 3630 1006 3631 3632 968
6920 CONVEX 1253 GT_PK(2,2) 967 3633 929 3631 2765 968
6921 CONVEX 1254 GT_PK(2,2) 967 3634 966 3635 2293 928
6922 CONVEX 1255 GT_PK(2,2) 967 3633 929 3635 3636 928
6923 CONVEX 1256 GT_PK(2,2) 1082 3637 1083 3638 3639 1119
6924 CONVEX 1257 GT_PK(2,2) 1082 3637 1083 3640 2752 1045
6925 CONVEX 1258 GT_PK(2,2) 1044 3641 1081 3642 2761 1043
6926 CONVEX 1259 GT_PK(2,2) 1044 3643 1006 3644 3645 1045
6927 CONVEX 1260 GT_PK(2,2) 1044 3646 1082 3644 3640 1045
6928 CONVEX 1261 GT_PK(2,2) 1044 3646 1082 3641 3647 1081
6929 CONVEX 1262 GT_PK(2,2) 1117 3648 1116 3649 2384 1080
6930 CONVEX 1263 GT_PK(2,2) 1117 3650 1081 3649 2762 1080
6931 CONVEX 1264 GT_PK(2,2) 1117 3648 1116 3651 3204 1152
6932 CONVEX 1265 GT_PK(2,2) 1117 3652 1153 3651 2409 1152
6933 CONVEX 1266 GT_PK(2,2) 1005 3653 1004 3654 3655 1043
6934 CONVEX 1267 GT_PK(2,2) 1005 3656 1044 3654 3642 1043
6935 CONVEX 1268 GT_PK(2,2) 1005 3656 1044 3657 3643 1006
6936 CONVEX 1269 GT_PK(2,2) 1005 3658 967 3657 3630 1006
6937 CONVEX 1270 GT_PK(2,2) 1005 3653 1004 3659 3145 966
6938 CONVEX 1271 GT_PK(2,2) 1005 3658 967 3659 3634 966
6939 CONVEX 1272 GT_PK(2,2) 1042 3660 1004 3661 3655 1043
6940 CONVEX 1273 GT_PK(2,2) 1042 3662 1079 3663 2385 1041
6941 CONVEX 1274 GT_PK(2,2) 1042 3664 1003 3663 2760 1041
6942 CONVEX 1275 GT_PK(2,2) 1042 3660 1004 3664 3146 1003
6943 CONVEX 1276 GT_PK(2,2) 1042 3661 1043 3665 2763 1080
6944 CONVEX 1277 GT_PK(2,2) 1042 3662 1079 3665 2383 1080
6945 CONVEX 1278 GT_PK(2,2) 1007 3666 1008 3667 2766 969
6946 CONVEX 1279 GT_PK(2,2) 1007 3667 969 3668 1957 968
6947 CONVEX 1280 GT_PK(2,2) 1007 3669 1006 3668 3632 968
6948 CONVEX 1281 GT_PK(2,2) 1007 3669 1006 3670 3645 1045
6949 CONVEX 1282 GT_PK(2,2) 1007 3671 1046 3670 2753 1045
6950 CONVEX 1283 GT_PK(2,2) 1007 3666 1008 3671 3672 1046
6951 CONVEX 1284 GT_PK(2,2) 1122 3673 1123 3674 3675 1158
6952 CONVEX 1285 GT_PK(2,2) 1122 3676 1157 3674 2770 1158
6953 CONVEX 1286 GT_PK(2,2) 973 3677 972 3678 2775 1011
6954 CONVEX 1287 GT_PK(2,2) 1050 3679 1049 3680 3681 1087
6955 CONVEX 1288 GT_PK(2,2) 1050 3679 1049 3682 2773 1011
6956 CONVEX 1289 GT_PK(2,2) 1160 3683 1124 3684 3685 1125
6957 CONVEX 1290 GT_PK(2,2) 1160 3686 1195 3687 3688 1194
6958 CONVEX 1291 GT_PK(2,2) 1089 3689 1051 3690 2789 1052
6959 CONVEX 1292 GT_PK(2,2) 1089 3691 1090 3690 3692 1052
6960 CONVEX 1293 GT_PK(2,2) 686 3693 646 3694 3695 647
6961 CONVEX 1294 GT_PK(2,2) 686 3696 687 3694 2950 647
6962 CONVEX 1295 GT_PK(2,2) 686 3693 646 3697 2813 685
6963 CONVEX 1296 GT_PK(2,2) 686 3698 726 3699 2933 1
6964 CONVEX 1297 GT_PK(2,2) 686 3696 687 3698 2946 726
6965 CONVEX 1298 GT_PK(2,2) 686 3700 725 3699 2930 1
6966 CONVEX 1299 GT_PK(2,2) 686 3700 725 3697 2796 685
6967 CONVEX 1300 GT_PK(2,2) 272 3701 307 3702 1991 306
6968 CONVEX 1301 GT_PK(2,2) 116 3703 91 3704 3705 90
6969 CONVEX 1302 GT_PK(2,2) 16 3706 30 3707 2818 15
6970 CONVEX 1303 GT_PK(2,2) 46 3708 27 3709 3081 45
6971 CONVEX 1304 GT_PK(2,2) 46 3710 28 3708 2825 27
6972 CONVEX 1305 GT_PK(2,2) 170 3711 201 3712 2237 202
6973 CONVEX 1306 GT_PK(2,2) 170 3711 201 3713 3104 169
6974 CONVEX 1307 GT_PK(2,2) 140 3714 139 3715 3716 112
6975 CONVEX 1308 GT_PK(2,2) 140 3717 113 3715 3110 112
6976 CONVEX 1309 GT_PK(2,2) 140 3717 113 3718 3111 141
6977 CONVEX 1310 GT_PK(2,2) 140 3719 170 3718 3720 141
6978 CONVEX 1311 GT_PK(2,2) 140 3714 139 3721 2245 169
6979 CONVEX 1312 GT_PK(2,2) 140 3719 170 3721 3713 169
6980 CONVEX 1313 GT_PK(2,2) 568 3722 528 3723 2833 529
6981 CONVEX 1314 GT_PK(2,2) 569 3724 570 3725 2808 609
6982 CONVEX 1315 GT_PK(2,2) 569 3726 608 3725 2945 609
6983 CONVEX 1316 GT_PK(2,2) 569 3727 568 3726 3728 608
6984 CONVEX 1317 GT_PK(2,2) 569 3724 570 3729 2810 530
6985 CONVEX 1318 GT_PK(2,2) 569 3730 529 3729 2852 530
6986 CONVEX 1319 GT_PK(2,2) 569 3727 568 3730 3723 529
6987 CONVEX 1320 GT_PK(2,2) 415 3731 414 3732 2909 377
6988 CONVEX 1321 GT_PK(2,2) 415 3733 378 3734 2914 416
6989 CONVEX 1322 GT_PK(2,2) 415 3733 378 3732 2911 377
6990 CONVEX 1323 GT_PK(2,2) 415 3735 454 3734 1988 416
6991 CONVEX 1324 GT_PK(2,2) 415 3736 453 3735 3737 454
6992 CONVEX 1325 GT_PK(2,2) 415 3731 414 3736 2848 453
6993 CONVEX 1326 GT_PK(2,2) 492 3738 531 3739 2811 530
6994 CONVEX 1327 GT_PK(2,2) 492 3740 491 3739 2851 530
6995 CONVEX 1328 GT_PK(2,2) 492 3738 531 3741 2961 493
6996 CONVEX 1329 GT_PK(2,2) 492 3740 491 3742 2855 453
6997 CONVEX 1330 GT_PK(2,2) 492 3743 454 3741 1990 493
6998 CONVEX 1331 GT_PK(2,2) 492 3742 453 3743 3737 454
6999 CONVEX 1332 GT_PK(2,2) 349 3744 314 3745 2206 313
7000 CONVEX 1333 GT_PK(2,2) 349 3746 348 3745 3747 313
7001 CONVEX 1334 GT_PK(2,2) 349 3748 385 3746 3749 348
7002 CONVEX 1335 GT_PK(2,2) 277 3750 311 3751 2861 276
7003 CONVEX 1336 GT_PK(2,2) 312 3752 348 3753 3747 313
7004 CONVEX 1337 GT_PK(2,2) 312 3754 277 3755 3750 311
7005 CONVEX 1338 GT_PK(2,2) 312 3756 347 3752 3757 348
7006 CONVEX 1339 GT_PK(2,2) 312 3756 347 3755 2875 311
7007 CONVEX 1340 GT_PK(2,2) 312 3758 278 3753 2205 313
7008 CONVEX 1341 GT_PK(2,2) 312 3754 277 3758 3759 278
7009 CONVEX 1342 GT_PK(2,2) 421 3760 460 3761 1981 459
7010 CONVEX 1343 GT_PK(2,2) 421 3762 420 3761 3763 459
7011 CONVEX 1344 GT_PK(2,2) 421 3760 460 3764 3765 422
7012 CONVEX 1345 GT_PK(2,2) 421 3762 420 3766 2869 383
7013 CONVEX 1346 GT_PK(2,2) 384 3767 347 3768 2873 383
7014 CONVEX 1347 GT_PK(2,2) 384 3769 421 3770 3764 422
7015 CONVEX 1348 GT_PK(2,2) 384 3769 421 3768 3766 383
7016 CONVEX 1349 GT_PK(2,2) 384 3771 385 3770 2857 422
7017 CONVEX 1350 GT_PK(2,2) 384 3771 385 3772 3749 348
7018 CONVEX 1351 GT_PK(2,2) 384 3767 347 3772 3757 348
7019 CONVEX 1352 GT_PK(2,2) 535 3773 575 3774 2993 574
7020 CONVEX 1353 GT_PK(2,2) 535 3775 536 3773 3776 575
7021 CONVEX 1354 GT_PK(2,2) 535 3775 536 3777 2989 497
7022 CONVEX 1355 GT_PK(2,2) 418 3778 417 3779 2001 456
7023 CONVEX 1356 GT_PK(2,2) 418 3780 457 3779 2886 456
7024 CONVEX 1357 GT_PK(2,2) 418 3780 457 3781 3782 419
7025 CONVEX 1358 GT_PK(2,2) 418 3778 417 3783 2005 380
7026 CONVEX 1359 GT_PK(2,2) 418 3784 381 3781 2871 419
7027 CONVEX 1360 GT_PK(2,2) 418 3784 381 3783 2905 380
7028 CONVEX 1361 GT_PK(2,2) 458 3785 497 3786 2883 459
7029 CONVEX 1362 GT_PK(2,2) 458 3787 457 3788 3782 419
7030 CONVEX 1363 GT_PK(2,2) 458 3789 420 3788 2872 419
7031 CONVEX 1364 GT_PK(2,2) 458 3789 420 3786 3763 459
7032 CONVEX 1365 GT_PK(2,2) 884 3790 844 3791 3792 883
7033 CONVEX 1366 GT_PK(2,2) 884 3793 924 3794 2300 885
7034 CONVEX 1367 GT_PK(2,2) 884 3794 885 3795 1738 845
7035 CONVEX 1368 GT_PK(2,2) 884 3790 844 3795 2935 845
7036 CONVEX 1369 GT_PK(2,2) 884 3791 883 3796 3797 923
7037 CONVEX 1370 GT_PK(2,2) 884 3793 924 3796 3798 923
7038 CONVEX 1371 GT_PK(2,2) 843 3799 844 3800 3792 883
7039 CONVEX 1372 GT_PK(2,2) 763 3801 802 3802 2936 762
7040 CONVEX 1373 GT_PK(2,2) 763 3803 723 3804 3529 724
7041 CONVEX 1374 GT_PK(2,2) 763 3803 723 3802 3526 762
7042 CONVEX 1375 GT_PK(2,2) 763 3805 764 3804 2800 724
7043 CONVEX 1376 GT_PK(2,2) 573 3806 613 3807 2996 574
7044 CONVEX 1377 GT_PK(2,2) 573 3808 572 3809 2958 533
7045 CONVEX 1378 GT_PK(2,2) 848 3810 808 3811 2967 847
7046 CONVEX 1379 GT_PK(2,2) 848 3812 887 3813 2297 888
7047 CONVEX 1380 GT_PK(2,2) 848 3812 887 3811 3152 847
7048 CONVEX 1381 GT_PK(2,2) 692 3814 652 3815 2953 653
7049 CONVEX 1382 GT_PK(2,2) 692 3816 691 3814 3817 652
7050 CONVEX 1383 GT_PK(2,2) 612 3818 613 3819 2951 652
7051 CONVEX 1384 GT_PK(2,2) 612 3820 573 3818 3806 613
7052 CONVEX 1385 GT_PK(2,2) 612 3821 611 3822 2984 572
7053 CONVEX 1386 GT_PK(2,2) 612 3820 573 3822 3808 572
7054 CONVEX 1387 GT_PK(2,2) 651 3823 612 3824 3821 611
7055 CONVEX 1388 GT_PK(2,2) 651 3823 612 3825 3819 652
7056 CONVEX 1389 GT_PK(2,2) 651 3826 691 3825 3817 652
7057 CONVEX 1390 GT_PK(2,2) 651 3826 691 3827 2980 690
7058 CONVEX 1391 GT_PK(2,2) 650 3828 689 3829 2976 649
7059 CONVEX 1392 GT_PK(2,2) 650 3830 610 3829 1968 649
7060 CONVEX 1393 GT_PK(2,2) 650 3831 611 3830 2983 610
7061 CONVEX 1394 GT_PK(2,2) 650 3832 651 3831 3824 611
7062 CONVEX 1395 GT_PK(2,2) 650 3828 689 3833 2979 690
7063 CONVEX 1396 GT_PK(2,2) 650 3832 651 3833 3827 690
7064 CONVEX 1397 GT_PK(2,2) 815 3834 854 3835 2986 855
7065 CONVEX 1398 GT_PK(2,2) 893 3836 894 3837 3838 933
7066 CONVEX 1399 GT_PK(2,2) 893 3839 854 3836 2985 894
7067 CONVEX 1400 GT_PK(2,2) 893 3840 932 3837 1951 933
7068 CONVEX 1401 GT_PK(2,2) 893 3841 853 3839 3842 854
7069 CONVEX 1402 GT_PK(2,2) 812 3843 813 3844 2999 773
7070 CONVEX 1403 GT_PK(2,2) 889 3845 888 3846 2295 928
7071 CONVEX 1404 GT_PK(2,2) 889 3847 929 3846 3636 928
7072 CONVEX 1405 GT_PK(2,2) 695 3848 694 3849 3850 655
7073 CONVEX 1406 GT_PK(2,2) 770 3851 769 3852 2970 730
7074 CONVEX 1407 GT_PK(2,2) 615 3853 614 3854 2991 575
7075 CONVEX 1408 GT_PK(2,2) 548 3855 549 3856 3004 509
7076 CONVEX 1409 GT_PK(2,2) 548 3857 589 3858 2029 588
7077 CONVEX 1410 GT_PK(2,2) 548 3855 549 3857 3859 589
7078 CONVEX 1411 GT_PK(2,2) 434 3860 395 3861 2088 396
7079 CONVEX 1412 GT_PK(2,2) 434 3862 433 3860 3006 395
7080 CONVEX 1413 GT_PK(2,2) 434 3863 472 3864 3865 473
7081 CONVEX 1414 GT_PK(2,2) 434 3863 472 3862 3866 433
7082 CONVEX 1415 GT_PK(2,2) 442 3867 404 3868 3013 443
7083 CONVEX 1416 GT_PK(2,2) 442 3867 404 3869 3008 403
7084 CONVEX 1417 GT_PK(2,2) 643 3870 683 3871 2673 682
7085 CONVEX 1418 GT_PK(2,2) 643 3872 642 3871 3016 682
7086 CONVEX 1419 GT_PK(2,2) 643 3872 642 3873 3874 603
7087 CONVEX 1420 GT_PK(2,2) 643 3875 644 3870 3020 683
7088 CONVEX 1421 GT_PK(2,2) 602 3876 642 3877 3874 603
7089 CONVEX 1422 GT_PK(2,2) 602 3878 562 3879 2053 601
7090 CONVEX 1423 GT_PK(2,2) 602 3879 601 3880 2049 641
7091 CONVEX 1424 GT_PK(2,2) 602 3876 642 3880 3017 641
7092 CONVEX 1425 GT_PK(2,2) 602 3878 562 3881 2058 563
7093 CONVEX 1426 GT_PK(2,2) 602 3877 603 3881 3882 563
7094 CONVEX 1427 GT_PK(2,2) 565 3883 526 3884 3885 525
7095 CONVEX 1428 GT_PK(2,2) 488 3886 489 3887 2840 527
7096 CONVEX 1429 GT_PK(2,2) 488 3888 526 3887 3889 527
7097 CONVEX 1430 GT_PK(2,2) 486 3890 524 3891 3892 525
7098 CONVEX 1431 GT_PK(2,2) 444 3893 482 3894 3895 443
7099 CONVEX 1432 GT_PK(2,2) 444 3894 443 3896 3014 405
7100 CONVEX 1433 GT_PK(2,2) 483 3897 482 3898 3026 521
7101 CONVEX 1434 GT_PK(2,2) 483 3898 521 3899 2059 522
7102 CONVEX 1435 GT_PK(2,2) 483 3900 484 3899 3023 522
7103 CONVEX 1436 GT_PK(2,2) 483 3900 484 3901 3902 445
7104 CONVEX 1437 GT_PK(2,2) 483 3903 444 3901 3904 445
7105 CONVEX 1438 GT_PK(2,2) 483 3903 444 3897 3893 482
7106 CONVEX 1439 GT_PK(2,2) 519 3905 559 3906 2661 520
7107 CONVEX 1440 GT_PK(2,2) 519 3907 558 3905 3030 559
7108 CONVEX 1441 GT_PK(2,2) 519 3908 518 3909 3910 480
7109 CONVEX 1442 GT_PK(2,2) 519 3908 518 3907 3376 558
7110 CONVEX 1443 GT_PK(2,2) 288 3911 287 3912 2120 253
7111 CONVEX 1444 GT_PK(2,2) 288 3913 323 3911 3048 287
7112 CONVEX 1445 GT_PK(2,2) 288 3914 254 3912 2115 253
7113 CONVEX 1446 GT_PK(2,2) 288 3914 254 3915 2118 289
7114 CONVEX 1447 GT_PK(2,2) 244 3916 212 3917 3057 245
7115 CONVEX 1448 GT_PK(2,2) 244 3918 211 3916 3062 212
7116 CONVEX 1449 GT_PK(2,2) 244 3919 278 3917 2203 245
7117 CONVEX 1450 GT_PK(2,2) 244 3920 277 3919 3759 278
7118 CONVEX 1451 GT_PK(2,2) 150 3921 180 3922 3060 151
7119 CONVEX 1452 GT_PK(2,2) 150 3923 122 3924 3925 149
7120 CONVEX 1453 GT_PK(2,2) 121 3926 122 3927 3928 96
7121 CONVEX 1454 GT_PK(2,2) 121 3926 122 3929 3925 149
7122 CONVEX 1455 GT_PK(2,2) 97 3930 122 3931 3928 96
7123 CONVEX 1456 GT_PK(2,2) 97 3932 73 3931 3933 96
7124 CONVEX 1457 GT_PK(2,2) 97 3934 74 3932 3066 73
7125 CONVEX 1458 GT_PK(2,2) 97 3934 74 3935 3067 98
7126 CONVEX 1459 GT_PK(2,2) 93 3936 69 3937 3938 92
7127 CONVEX 1460 GT_PK(2,2) 51 3939 73 3940 2183 33
7128 CONVEX 1461 GT_PK(2,2) 51 3941 32 3940 3942 33
7129 CONVEX 1462 GT_PK(2,2) 226 3943 225 3944 1474 259
7130 CONVEX 1463 GT_PK(2,2) 226 3945 193 3943 3092 225
7131 CONVEX 1464 GT_PK(2,2) 294 3946 259 3947 1449 293
7132 CONVEX 1465 GT_PK(2,2) 294 3948 329 3947 2044 293
7133 CONVEX 1466 GT_PK(2,2) 294 3948 329 3949 2041 330
7134 CONVEX 1467 GT_PK(2,2) 294 3950 295 3949 3951 330
7135 CONVEX 1468 GT_PK(2,2) 331 3952 367 3953 2046 330
7136 CONVEX 1469 GT_PK(2,2) 331 3954 295 3953 3951 330
7137 CONVEX 1470 GT_PK(2,2) 134 3955 107 3956 3088 106
7138 CONVEX 1471 GT_PK(2,2) 134 3957 163 3958 3959 164
7139 CONVEX 1472 GT_PK(2,2) 195 3960 196 3961 3962 164
7140 CONVEX 1473 GT_PK(2,2) 195 3963 163 3961 3959 164
7141 CONVEX 1474 GT_PK(2,2) 232 3964 200 3965 3105 233
7142 CONVEX 1475 GT_PK(2,2) 111 3966 139 3967 3716 112
7143 CONVEX 1476 GT_PK(2,2) 111 3968 86 3967 3107 112
7144 CONVEX 1477 GT_PK(2,2) 63 3969 86 3970 3106 87
7145 CONVEX 1478 GT_PK(2,2) 63 3970 87 3971 2242 64
7146 CONVEX 1479 GT_PK(2,2) 63 3972 42 3973 2256 41
7147 CONVEX 1480 GT_PK(2,2) 63 3972 42 3971 2258 64
7148 CONVEX 1481 GT_PK(2,2) 62 3974 40 3975 3119 61
7149 CONVEX 1482 GT_PK(2,2) 62 3976 63 3977 3969 86
7150 CONVEX 1483 GT_PK(2,2) 62 3974 40 3978 3118 41
7151 CONVEX 1484 GT_PK(2,2) 62 3976 63 3978 3973 41
7152 CONVEX 1485 GT_PK(2,2) 38 3979 59 3980 3123 37
7153 CONVEX 1486 GT_PK(2,2) 38 3980 37 3981 2235 19
7154 CONVEX 1487 GT_PK(2,2) 38 3982 39 3983 2261 20
7155 CONVEX 1488 GT_PK(2,2) 38 3983 20 3984 1496 5
7156 CONVEX 1489 GT_PK(2,2) 38 3981 19 3984 3985 5
7157 CONVEX 1490 GT_PK(2,2) 83 3986 59 3987 3122 82
7158 CONVEX 1491 GT_PK(2,2) 83 3988 108 3987 3125 82
7159 CONVEX 1492 GT_PK(2,2) 83 3988 108 3989 3990 109
7160 CONVEX 1493 GT_PK(2,2) 165 3991 196 3992 3962 164
7161 CONVEX 1494 GT_PK(2,2) 1338 3993 1364 3994 3127 1339
7162 CONVEX 1495 GT_PK(2,2) 1338 3995 1337 3996 2272 1310
7163 CONVEX 1496 GT_PK(2,2) 1338 3997 1311 3994 2404 1339
7164 CONVEX 1497 GT_PK(2,2) 1338 3997 1311 3996 3224 1310
7165 CONVEX 1498 GT_PK(2,2) 1388 3998 1364 3999 4000 1387
7166 CONVEX 1499 GT_PK(2,2) 1388 3999 1387 4001 2267 1409
7167 CONVEX 1500 GT_PK(2,2) 1388 4002 1410 4001 2353 1409
7168 CONVEX 1501 GT_PK(2,2) 1388 3998 1364 4003 3126 1365
7169 CONVEX 1502 GT_PK(2,2) 1363 4004 1362 4005 2279 1337
7170 CONVEX 1503 GT_PK(2,2) 1363 4006 1338 4005 3995 1337
7171 CONVEX 1504 GT_PK(2,2) 1363 4006 1338 4007 3993 1364
7172 CONVEX 1505 GT_PK(2,2) 1363 4007 1364 4008 4000 1387
7173 CONVEX 1506 GT_PK(2,2) 1363 4008 1387 4009 2268 1386
7174 CONVEX 1507 GT_PK(2,2) 1363 4004 1362 4009 2276 1386
7175 CONVEX 1508 GT_PK(2,2) 1109 4010 1144 4011 3547 1145
7176 CONVEX 1509 GT_PK(2,2) 1109 4010 1144 4012 4013 1108
7177 CONVEX 1510 GT_PK(2,2) 1037 4014 1038 4015 3139 1075
7178 CONVEX 1511 GT_PK(2,2) 1037 4016 1074 4015 4017 1075
7179 CONVEX 1512 GT_PK(2,2) 962 4018 1000 4019 2283 1001
7180 CONVEX 1513 GT_PK(2,2) 962 4020 963 4019 3131 1001
7181 CONVEX 1514 GT_PK(2,2) 962 4021 924 4022 3798 923
7182 CONVEX 1515 GT_PK(2,2) 962 4020 963 4021 3134 924
7183 CONVEX 1516 GT_PK(2,2) 926 4023 886 4024 3147 925
7184 CONVEX 1517 GT_PK(2,2) 926 4024 925 4025 3133 964
7185 CONVEX 1518 GT_PK(2,2) 926 4026 927 4027 2296 887
7186 CONVEX 1519 GT_PK(2,2) 926 4023 886 4027 3151 887
7187 CONVEX 1520 GT_PK(2,2) 926 4028 965 4025 3143 964
7188 CONVEX 1521 GT_PK(2,2) 926 4028 965 4026 3140 927
7189 CONVEX 1522 GT_PK(2,2) 1349 4029 1374 4030 3164 1348
7190 CONVEX 1523 GT_PK(2,2) 1349 4031 1321 4030 3170 1348
7191 CONVEX 1524 GT_PK(2,2) 1349 4029 1374 4032 4033 1350
7192 CONVEX 1525 GT_PK(2,2) 1191 4034 1157 4035 2769 1192
7193 CONVEX 1526 GT_PK(2,2) 1191 4036 1190 4037 3244 1156
7194 CONVEX 1527 GT_PK(2,2) 1191 4034 1157 4037 4038 1156
7195 CONVEX 1528 GT_PK(2,2) 1292 4039 1261 4040 3189 1293
7196 CONVEX 1529 GT_PK(2,2) 1292 4041 1321 4042 3172 1291
7197 CONVEX 1530 GT_PK(2,2) 1226 4043 1259 4044 4045 1258
7198 CONVEX 1531 GT_PK(2,2) 1226 4046 1193 4047 1740 1192
7199 CONVEX 1532 GT_PK(2,2) 1260 4048 1292 4049 4039 1261
7200 CONVEX 1533 GT_PK(2,2) 1260 4050 1259 4051 4052 1291
7201 CONVEX 1534 GT_PK(2,2) 1260 4048 1292 4051 4042 1291
7202 CONVEX 1535 GT_PK(2,2) 1114 4053 1077 4054 3198 1078
7203 CONVEX 1536 GT_PK(2,2) 1114 4053 1077 4055 3195 1113
7204 CONVEX 1537 GT_PK(2,2) 1114 4054 1078 4056 2380 1115
7205 CONVEX 1538 GT_PK(2,2) 1114 4057 1150 4056 3206 1115
7206 CONVEX 1539 GT_PK(2,2) 1114 4055 1113 4058 2373 1149
7207 CONVEX 1540 GT_PK(2,2) 1114 4057 1150 4058 2377 1149
7208 CONVEX 1541 GT_PK(2,2) 1283 4059 1251 4060 3213 1282
7209 CONVEX 1542 GT_PK(2,2) 1283 4061 1313 4062 4063 1284
7210 CONVEX 1543 GT_PK(2,2) 1283 4064 1252 4062 2402 1284
7211 CONVEX 1544 GT_PK(2,2) 1283 4059 1251 4064 3218 1252
7212 CONVEX 1545 GT_PK(2,2) 1283 4060 1282 4065 2407 1312
7213 CONVEX 1546 GT_PK(2,2) 1283 4061 1313 4065 4066 1312
7214 CONVEX 1547 GT_PK(2,2) 1340 4067 1366 4068 3232 1341
7215 CONVEX 1548 GT_PK(2,2) 1340 4069 1313 4070 4066 1312
7216 CONVEX 1549 GT_PK(2,2) 1340 4069 1313 4068 4071 1341
7217 CONVEX 1550 GT_PK(2,2) 1340 4070 1312 4072 2405 1339
7218 CONVEX 1551 GT_PK(2,2) 1340 4073 1365 4072 3128 1339
7219 CONVEX 1552 GT_PK(2,2) 1340 4067 1366 4073 4074 1365
7220 CONVEX 1553 GT_PK(2,2) 1315 4075 1342 4076 3234 1343
7221 CONVEX 1554 GT_PK(2,2) 1315 4077 1286 4078 3160 1285
7222 CONVEX 1555 GT_PK(2,2) 1315 4077 1286 4079 4080 1316
7223 CONVEX 1556 GT_PK(2,2) 1315 4076 1343 4079 2342 1316
7224 CONVEX 1557 GT_PK(2,2) 1120 4081 1155 4082 3238 1119
7225 CONVEX 1558 GT_PK(2,2) 1120 4081 1155 4083 3243 1156
7226 CONVEX 1559 GT_PK(2,2) 1120 4084 1083 4082 3639 1119
7227 CONVEX 1560 GT_PK(2,2) 626 4085 665 4086 3258 625
7228 CONVEX 1561 GT_PK(2,2) 626 4087 666 4085 3251 665
7229 CONVEX 1562 GT_PK(2,2) 626 4088 587 4086 2428 625
7230 CONVEX 1563 GT_PK(2,2) 703 4089 704 4090 1775 744
7231 CONVEX 1564 GT_PK(2,2) 703 4091 664 4089 3254 704
7232 CONVEX 1565 GT_PK(2,2) 703 4092 743 4090 1529 744
7233 CONVEX 1566 GT_PK(2,2) 703 4091 664 4093 3256 663
7234 CONVEX 1567 GT_PK(2,2) 703 4094 702 4093 3296 663
7235 CONVEX 1568 GT_PK(2,2) 703 4094 702 4092 3297 743
7236 CONVEX 1569 GT_PK(2,2) 503 4095 504 4096 4097 465
7237 CONVEX 1570 GT_PK(2,2) 503 4095 504 4098 3283 542
7238 CONVEX 1571 GT_PK(2,2) 499 4099 460 4100 1982 498
7239 CONVEX 1572 GT_PK(2,2) 466 4101 504 4102 4097 465
7240 CONVEX 1573 GT_PK(2,2) 466 4103 428 4104 1556 467
7241 CONVEX 1574 GT_PK(2,2) 466 4105 505 4104 3264 467
7242 CONVEX 1575 GT_PK(2,2) 466 4101 504 4105 3279 505
7243 CONVEX 1576 GT_PK(2,2) 466 4106 427 4102 4107 465
7244 CONVEX 1577 GT_PK(2,2) 466 4106 427 4103 2507 428
7245 CONVEX 1578 GT_PK(2,2) 660 4108 661 4109 4110 700
7246 CONVEX 1579 GT_PK(2,2) 660 4111 621 4108 3305 661
7247 CONVEX 1580 GT_PK(2,2) 701 4112 702 4113 3294 741
7248 CONVEX 1581 GT_PK(2,2) 701 4112 702 4114 3295 662
7249 CONVEX 1582 GT_PK(2,2) 701 4114 662 4115 3301 661
7250 CONVEX 1583 GT_PK(2,2) 701 4115 661 4116 4110 700
7251 CONVEX 1584 GT_PK(2,2) 701 4117 740 4116 3269 700
7252 CONVEX 1585 GT_PK(2,2) 701 4117 740 4113 3268 741
7253 CONVEX 1586 GT_PK(2,2) 583 4118 584 4119 3290 623
7254 CONVEX 1587 GT_PK(2,2) 583 4120 622 4119 3299 623
7255 CONVEX 1588 GT_PK(2,2) 583 4118 584 4121 3292 544
7256 CONVEX 1589 GT_PK(2,2) 583 4121 544 4122 3284 543
7257 CONVEX 1590 GT_PK(2,2) 583 4122 543 4123 3281 582
7258 CONVEX 1591 GT_PK(2,2) 583 4120 622 4123 3303 582
7259 CONVEX 1592 GT_PK(2,2) 1091 4124 1054 4125 3322 1092
7260 CONVEX 1593 GT_PK(2,2) 1091 4126 1127 4127 4128 1090
7261 CONVEX 1594 GT_PK(2,2) 1053 4129 1014 4130 2783 1052
7262 CONVEX 1595 GT_PK(2,2) 1053 4131 1090 4130 3692 1052
7263 CONVEX 1596 GT_PK(2,2) 1053 4129 1014 4132 2787 1015
7264 CONVEX 1597 GT_PK(2,2) 1053 4133 1054 4132 3342 1015
7265 CONVEX 1598 GT_PK(2,2) 1053 4134 1091 4131 4127 1090
7266 CONVEX 1599 GT_PK(2,2) 1053 4134 1091 4133 4124 1054
7267 CONVEX 1600 GT_PK(2,2) 425 4135 388 4136 3358 387
7268 CONVEX 1601 GT_PK(2,2) 389 4137 427 4138 2508 390
7269 CONVEX 1602 GT_PK(2,2) 389 4139 388 4140 3356 352
7270 CONVEX 1603 GT_PK(2,2) 389 4141 353 4138 2518 390
7271 CONVEX 1604 GT_PK(2,2) 389 4141 353 4140 2516 352
7272 CONVEX 1605 GT_PK(2,2) 350 4142 314 4143 1701 315
7273 CONVEX 1606 GT_PK(2,2) 350 4144 351 4143 3354 315
7274 CONVEX 1607 GT_PK(2,2) 350 4145 349 4142 3744 314
7275 CONVEX 1608 GT_PK(2,2) 350 4144 351 4146 3357 387
7276 CONVEX 1609 GT_PK(2,2) 877 4147 838 4148 2520 878
7277 CONVEX 1610 GT_PK(2,2) 877 4149 837 4147 3362 838
7278 CONVEX 1611 GT_PK(2,2) 800 4150 799 4151 3365 839
7279 CONVEX 1612 GT_PK(2,2) 800 4152 761 4153 2668 801
7280 CONVEX 1613 GT_PK(2,2) 800 4152 761 4154 1919 760
7281 CONVEX 1614 GT_PK(2,2) 800 4150 799 4154 3368 760
7282 CONVEX 1615 GT_PK(2,2) 676 4155 637 4156 3370 636
7283 CONVEX 1616 GT_PK(2,2) 676 4156 636 4157 4158 675
7284 CONVEX 1617 GT_PK(2,2) 676 4159 715 4157 2538 675
7285 CONVEX 1618 GT_PK(2,2) 676 4159 715 4160 3517 716
7286 CONVEX 1619 GT_PK(2,2) 676 4161 677 4160 1888 716
7287 CONVEX 1620 GT_PK(2,2) 676 4155 637 4161 3373 677
7288 CONVEX 1621 GT_PK(2,2) 479 4162 518 4163 3374 517
7289 CONVEX 1622 GT_PK(2,2) 479 4163 517 4164 2528 478
7290 CONVEX 1623 GT_PK(2,2) 479 4165 440 4164 3037 478
7291 CONVEX 1624 GT_PK(2,2) 479 4162 518 4166 3910 480
7292 CONVEX 1625 GT_PK(2,2) 515 4167 516 4168 2526 477
7293 CONVEX 1626 GT_PK(2,2) 475 4169 436 4170 3035 437
7294 CONVEX 1627 GT_PK(2,2) 511 4171 472 4172 4173 510
7295 CONVEX 1628 GT_PK(2,2) 511 4171 472 4174 3865 473
7296 CONVEX 1629 GT_PK(2,2) 550 4175 549 4176 3859 589
7297 CONVEX 1630 GT_PK(2,2) 550 4175 549 4177 3003 510
7298 CONVEX 1631 GT_PK(2,2) 550 4178 511 4177 4172 510
7299 CONVEX 1632 GT_PK(2,2) 635 4179 636 4180 4158 675
7300 CONVEX 1633 GT_PK(2,2) 635 4181 596 4179 2534 636
7301 CONVEX 1634 GT_PK(2,2) 673 4182 713 4183 3432 712
7302 CONVEX 1635 GT_PK(2,2) 593 4184 592 4185 4186 632
7303 CONVEX 1636 GT_PK(2,2) 593 4184 592 4187 4188 553
7304 CONVEX 1637 GT_PK(2,2) 709 4189 749 4190 4191 710
7305 CONVEX 1638 GT_PK(2,2) 709 4189 749 4192 3411 708
7306 CONVEX 1639 GT_PK(2,2) 709 4190 710 4193 3379 670
7307 CONVEX 1640 GT_PK(2,2) 709 4192 708 4193 3395 670
7308 CONVEX 1641 GT_PK(2,2) 905 4194 865 4195 3403 904
7309 CONVEX 1642 GT_PK(2,2) 905 4196 943 4195 4197 904
7310 CONVEX 1643 GT_PK(2,2) 827 4198 787 4199 3407 788
7311 CONVEX 1644 GT_PK(2,2) 827 4198 787 4200 2546 826
7312 CONVEX 1645 GT_PK(2,2) 866 4201 867 4202 4203 906
7313 CONVEX 1646 GT_PK(2,2) 866 4204 905 4202 4205 906
7314 CONVEX 1647 GT_PK(2,2) 866 4204 905 4206 4194 865
7315 CONVEX 1648 GT_PK(2,2) 866 4207 827 4201 4208 867
7316 CONVEX 1649 GT_PK(2,2) 866 4206 865 4209 3402 826
7317 CONVEX 1650 GT_PK(2,2) 866 4207 827 4209 4200 826
7318 CONVEX 1651 GT_PK(2,2) 832 4210 831 4211 3439 792
7319 CONVEX 1652 GT_PK(2,2) 832 4211 792 4212 3387 793
7320 CONVEX 1653 GT_PK(2,2) 832 4213 833 4212 3507 793
7321 CONVEX 1654 GT_PK(2,2) 832 4213 833 4214 3504 872
7322 CONVEX 1655 GT_PK(2,2) 830 4215 831 4216 3440 791
7323 CONVEX 1656 GT_PK(2,2) 828 4217 867 4218 4219 868
7324 CONVEX 1657 GT_PK(2,2) 828 4220 789 4221 3442 788
7325 CONVEX 1658 GT_PK(2,2) 828 4222 827 4221 4199 788
7326 CONVEX 1659 GT_PK(2,2) 828 4222 827 4217 4208 867
7327 CONVEX 1660 GT_PK(2,2) 986 4223 1025 4224 3448 1024
7328 CONVEX 1661 GT_PK(2,2) 986 4225 985 4224 2602 1024
7329 CONVEX 1662 GT_PK(2,2) 986 4226 947 4227 3457 948
7330 CONVEX 1663 GT_PK(2,2) 986 4226 947 4225 4228 985
7331 CONVEX 1664 GT_PK(2,2) 907 4229 867 4230 4219 868
7332 CONVEX 1665 GT_PK(2,2) 907 4229 867 4231 4203 906
7333 CONVEX 1666 GT_PK(2,2) 907 4232 945 4231 4233 906
7334 CONVEX 1667 GT_PK(2,2) 990 4234 991 4235 3460 1029
7335 CONVEX 1668 GT_PK(2,2) 990 4235 1029 4236 3429 1028
7336 CONVEX 1669 GT_PK(2,2) 990 4237 989 4236 2619 1028
7337 CONVEX 1670 GT_PK(2,2) 990 4238 951 4237 3485 989
7338 CONVEX 1671 GT_PK(2,2) 990 4234 991 4239 3476 952
7339 CONVEX 1672 GT_PK(2,2) 990 4238 951 4239 3489 952
7340 CONVEX 1673 GT_PK(2,2) 1072 4240 1073 4241 4242 1035
7341 CONVEX 1674 GT_PK(2,2) 1072 4243 1109 4244 4012 1108
7342 CONVEX 1675 GT_PK(2,2) 1072 4243 1109 4240 4245 1073
7343 CONVEX 1676 GT_PK(2,2) 994 4246 993 4247 3471 1032
7344 CONVEX 1677 GT_PK(2,2) 994 4248 1033 4247 3463 1032
7345 CONVEX 1678 GT_PK(2,2) 994 4246 993 4249 4250 955
7346 CONVEX 1679 GT_PK(2,2) 994 4251 956 4249 4252 955
7347 CONVEX 1680 GT_PK(2,2) 954 4253 953 4254 3478 915
7348 CONVEX 1681 GT_PK(2,2) 954 4255 993 4256 4250 955
7349 CONVEX 1682 GT_PK(2,2) 954 4255 993 4257 3469 992
7350 CONVEX 1683 GT_PK(2,2) 954 4253 953 4257 3477 992
7351 CONVEX 1684 GT_PK(2,2) 954 4258 916 4256 4259 955
7352 CONVEX 1685 GT_PK(2,2) 954 4258 916 4254 4260 915
7353 CONVEX 1686 GT_PK(2,2) 1238 4261 1269 4262 2722 1237
7354 CONVEX 1687 GT_PK(2,2) 1238 4263 1205 4262 3491 1237
7355 CONVEX 1688 GT_PK(2,2) 1238 4261 1269 4264 2726 1270
7356 CONVEX 1689 GT_PK(2,2) 1238 4265 1239 4264 3613 1270
7357 CONVEX 1690 GT_PK(2,2) 1238 4263 1205 4266 3583 1206
7358 CONVEX 1691 GT_PK(2,2) 1238 4265 1239 4266 3609 1206
7359 CONVEX 1692 GT_PK(2,2) 1210 4267 1243 4268 2748 1211
7360 CONVEX 1693 GT_PK(2,2) 1210 4267 1243 4269 3617 1242
7361 CONVEX 1694 GT_PK(2,2) 795 4270 834 4271 3510 835
7362 CONVEX 1695 GT_PK(2,2) 795 4272 755 4273 3518 756
7363 CONVEX 1696 GT_PK(2,2) 795 4270 834 4274 3512 794
7364 CONVEX 1697 GT_PK(2,2) 795 4272 755 4274 3515 794
7365 CONVEX 1698 GT_PK(2,2) 795 4275 796 4273 1889 756
7366 CONVEX 1699 GT_PK(2,2) 795 4275 796 4271 1895 835
7367 CONVEX 1700 GT_PK(2,2) 1403 4276 1404 4277 2681 1422
7368 CONVEX 1701 GT_PK(2,2) 1403 4278 1402 4279 4280 1381
7369 CONVEX 1702 GT_PK(2,2) 1333 4281 1334 4282 3570 1306
7370 CONVEX 1703 GT_PK(2,2) 1333 4283 1305 4282 4284 1306
7371 CONVEX 1704 GT_PK(2,2) 1296 4285 1324 4286 4287 1297
7372 CONVEX 1705 GT_PK(2,2) 1296 4288 1267 4289 3596 1266
7373 CONVEX 1706 GT_PK(2,2) 1296 4288 1267 4286 2737 1297
7374 CONVEX 1707 GT_PK(2,2) 1325 4290 1324 4291 4292 1351
7375 CONVEX 1708 GT_PK(2,2) 1325 4293 1326 4294 3573 1298
7376 CONVEX 1709 GT_PK(2,2) 1325 4293 1326 4291 3577 1351
7377 CONVEX 1710 GT_PK(2,2) 1325 4294 1298 4295 2717 1297
7378 CONVEX 1711 GT_PK(2,2) 1325 4290 1324 4295 4287 1297
7379 CONVEX 1712 GT_PK(2,2) 1398 4296 1353 4297 4298 1376
7380 CONVEX 1713 GT_PK(2,2) 1146 4299 1147 4300 2708 1181
7381 CONVEX 1714 GT_PK(2,2) 1146 4301 1180 4300 3542 1181
7382 CONVEX 1715 GT_PK(2,2) 1146 4301 1180 4302 3544 1145
7383 CONVEX 1716 GT_PK(2,2) 1276 4303 1305 4304 4284 1306
7384 CONVEX 1717 GT_PK(2,2) 1276 4305 1277 4304 3568 1306
7385 CONVEX 1718 GT_PK(2,2) 1276 4305 1277 4306 3555 1245
7386 CONVEX 1719 GT_PK(2,2) 1276 4306 1245 4307 2701 1244
7387 CONVEX 1720 GT_PK(2,2) 1352 4308 1326 4309 3574 1327
7388 CONVEX 1721 GT_PK(2,2) 1352 4308 1326 4310 3576 1375
7389 CONVEX 1722 GT_PK(2,2) 1352 4311 1353 4309 4312 1327
7390 CONVEX 1723 GT_PK(2,2) 1352 4310 1375 4313 4314 1376
7391 CONVEX 1724 GT_PK(2,2) 1352 4311 1353 4313 4298 1376
7392 CONVEX 1725 GT_PK(2,2) 1202 4315 1203 4316 3607 1169
7393 CONVEX 1726 GT_PK(2,2) 1202 4316 1169 4317 2734 1168
7394 CONVEX 1727 GT_PK(2,2) 1202 4318 1235 4319 3599 1234
7395 CONVEX 1728 GT_PK(2,2) 1202 4318 1235 4315 3601 1203
7396 CONVEX 1729 GT_PK(2,2) 1202 4320 1201 4319 1863 1234
7397 CONVEX 1730 GT_PK(2,2) 1202 4320 1201 4317 2572 1168
7398 CONVEX 1731 GT_PK(2,2) 1275 4321 1274 4322 3620 1304
7399 CONVEX 1732 GT_PK(2,2) 1275 4321 1274 4323 3615 1243
7400 CONVEX 1733 GT_PK(2,2) 1275 4324 1305 4322 4325 1304
7401 CONVEX 1734 GT_PK(2,2) 1275 4326 1276 4324 4303 1305
7402 CONVEX 1735 GT_PK(2,2) 1275 4323 1243 4327 2747 1244
7403 CONVEX 1736 GT_PK(2,2) 1275 4326 1276 4327 4307 1244
7404 CONVEX 1737 GT_PK(2,2) 1118 4328 1082 4329 3647 1081
7405 CONVEX 1738 GT_PK(2,2) 1118 4330 1117 4329 3650 1081
7406 CONVEX 1739 GT_PK(2,2) 1118 4328 1082 4331 3638 1119
7407 CONVEX 1740 GT_PK(2,2) 1118 4330 1117 4332 3652 1153
7408 CONVEX 1741 GT_PK(2,2) 1118 4333 1154 4331 3239 1119
7409 CONVEX 1742 GT_PK(2,2) 1118 4333 1154 4332 2414 1153
7410 CONVEX 1743 GT_PK(2,2) 1086 4334 1123 4335 2792 1087
7411 CONVEX 1744 GT_PK(2,2) 1086 4336 1122 4334 3673 1123
7412 CONVEX 1745 GT_PK(2,2) 1086 4337 1049 4335 3681 1087
7413 CONVEX 1746 GT_PK(2,2) 1121 4338 1157 4339 4038 1156
7414 CONVEX 1747 GT_PK(2,2) 1121 4340 1122 4338 3676 1157
7415 CONVEX 1748 GT_PK(2,2) 1121 4341 1120 4339 4083 1156
7416 CONVEX 1749 GT_PK(2,2) 935 4342 973 4343 4344 974
7417 CONVEX 1750 GT_PK(2,2) 935 4345 895 4346 3328 896
7418 CONVEX 1751 GT_PK(2,2) 935 4347 936 4346 1797 896
7419 CONVEX 1752 GT_PK(2,2) 935 4343 974 4347 2778 936
7420 CONVEX 1753 GT_PK(2,2) 934 4348 895 4349 1959 894
7421 CONVEX 1754 GT_PK(2,2) 934 4350 973 4351 3677 972
7422 CONVEX 1755 GT_PK(2,2) 934 4352 935 4348 4345 895
7423 CONVEX 1756 GT_PK(2,2) 934 4352 935 4350 4342 973
7424 CONVEX 1757 GT_PK(2,2) 934 4349 894 4353 3838 933
7425 CONVEX 1758 GT_PK(2,2) 934 4351 972 4353 2750 933
7426 CONVEX 1759 GT_PK(2,2) 1012 4354 1051 4355 2788 1013
7427 CONVEX 1760 GT_PK(2,2) 1012 4356 974 4355 2780 1013
7428 CONVEX 1761 GT_PK(2,2) 1012 4357 973 4356 4344 974
7429 CONVEX 1762 GT_PK(2,2) 1012 4357 973 4358 3678 1011
7430 CONVEX 1763 GT_PK(2,2) 1012 4359 1050 4358 3682 1011
7431 CONVEX 1764 GT_PK(2,2) 1012 4359 1050 4354 4360 1051
7432 CONVEX 1765 GT_PK(2,2) 1159 4361 1160 4362 3683 1124
7433 CONVEX 1766 GT_PK(2,2) 1159 4363 1193 4364 1741 1158
7434 CONVEX 1767 GT_PK(2,2) 1159 4365 1194 4363 4366 1193
7435 CONVEX 1768 GT_PK(2,2) 1159 4361 1160 4365 3687 1194
7436 CONVEX 1769 GT_PK(2,2) 1159 4367 1123 4364 3675 1158
7437 CONVEX 1770 GT_PK(2,2) 1159 4362 1124 4367 2790 1123
7438 CONVEX 1771 GT_PK(2,2) 1088 4368 1124 4369 3685 1125
7439 CONVEX 1772 GT_PK(2,2) 1088 4370 1089 4369 4371 1125
7440 CONVEX 1773 GT_PK(2,2) 1088 4368 1124 4372 2791 1087
7441 CONVEX 1774 GT_PK(2,2) 1088 4370 1089 4373 3689 1051
7442 CONVEX 1775 GT_PK(2,2) 1088 4374 1050 4372 3680 1087
7443 CONVEX 1776 GT_PK(2,2) 1088 4374 1050 4373 4360 1051
7444 CONVEX 1777 GT_PK(2,2) 1128 4375 1127 4376 4377 1163
7445 CONVEX 1778 GT_PK(2,2) 1128 4378 1092 4379 3308 1129
7446 CONVEX 1779 GT_PK(2,2) 1128 4380 1091 4378 4125 1092
7447 CONVEX 1780 GT_PK(2,2) 1128 4380 1091 4375 4126 1127
7448 CONVEX 1781 GT_PK(2,2) 1128 4381 1164 4379 1542 1129
7449 CONVEX 1782 GT_PK(2,2) 1128 4376 1163 4381 2793 1164
7450 CONVEX 1783 GT_PK(2,2) 1161 4382 1160 4383 3684 1125
7451 CONVEX 1784 GT_PK(2,2) 1161 4384 1195 4385 3185 1196
7452 CONVEX 1785 GT_PK(2,2) 1161 4382 1160 4384 3686 1195
7453 CONVEX 1786 GT_PK(2,2) 1162 4386 1163 4387 2795 1197
7454 CONVEX 1787 GT_PK(2,2) 1162 4388 1127 4386 4377 1163
7455 CONVEX 1788 GT_PK(2,2) 1162 4387 1197 4389 1964 1196
7456 CONVEX 1789 GT_PK(2,2) 1162 4390 1161 4389 4385 1196
7457 CONVEX 1790 GT_PK(2,2) 271 4391 305 4392 2917 306
7458 CONVEX 1791 GT_PK(2,2) 271 4393 272 4392 3702 306
7459 CONVEX 1792 GT_PK(2,2) 240 4394 241 4395 1972 274
7460 CONVEX 1793 GT_PK(2,2) 273 4396 307 4397 2009 308
7461 CONVEX 1794 GT_PK(2,2) 273 4398 272 4396 3701 307
7462 CONVEX 1795 GT_PK(2,2) 273 4399 274 4397 2897 308
7463 CONVEX 1796 GT_PK(2,2) 273 4400 240 4399 4395 274
7464 CONVEX 1797 GT_PK(2,2) 67 4401 91 4402 3705 90
7465 CONVEX 1798 GT_PK(2,2) 67 4403 66 4402 2828 90
7466 CONVEX 1799 GT_PK(2,2) 67 4403 66 4404 1978 45
7467 CONVEX 1800 GT_PK(2,2) 67 4405 46 4404 3709 45
7468 CONVEX 1801 GT_PK(2,2) 47 4406 28 4407 2821 29
7469 CONVEX 1802 GT_PK(2,2) 47 4408 46 4406 3710 28
7470 CONVEX 1803 GT_PK(2,2) 47 4407 29 4409 2820 48
7471 CONVEX 1804 GT_PK(2,2) 47 4410 69 4409 4411 48
7472 CONVEX 1805 GT_PK(2,2) 567 4412 528 4413 2841 527
7473 CONVEX 1806 GT_PK(2,2) 567 4414 568 4412 3722 528
7474 CONVEX 1807 GT_PK(2,2) 607 4415 608 4416 2944 647
7475 CONVEX 1808 GT_PK(2,2) 607 4417 568 4415 3728 608
7476 CONVEX 1809 GT_PK(2,2) 607 4418 567 4417 4414 568
7477 CONVEX 1810 GT_PK(2,2) 607 4419 646 4416 3695 647
7478 CONVEX 1811 GT_PK(2,2) 607 4419 646 4420 2815 606
7479 CONVEX 1812 GT_PK(2,2) 607 4418 567 4420 4421 606
7480 CONVEX 1813 GT_PK(2,2) 386 4422 349 4423 3748 385
7481 CONVEX 1814 GT_PK(2,2) 386 4423 385 4424 2856 423
7482 CONVEX 1815 GT_PK(2,2) 386 4425 350 4426 4146 387
7483 CONVEX 1816 GT_PK(2,2) 386 4425 350 4422 4145 349
7484 CONVEX 1817 GT_PK(2,2) 496 4427 535 4428 3777 497
7485 CONVEX 1818 GT_PK(2,2) 496 4429 457 4430 2885 495
7486 CONVEX 1819 GT_PK(2,2) 496 4431 458 4428 3785 497
7487 CONVEX 1820 GT_PK(2,2) 496 4431 458 4429 3787 457
7488 CONVEX 1821 GT_PK(2,2) 534 4432 535 4433 3774 574
7489 CONVEX 1822 GT_PK(2,2) 534 4434 573 4435 3809 533
7490 CONVEX 1823 GT_PK(2,2) 534 4434 573 4433 3807 574
7491 CONVEX 1824 GT_PK(2,2) 534 4436 495 4435 2882 533
7492 CONVEX 1825 GT_PK(2,2) 534 4437 496 4436 4430 495
7493 CONVEX 1826 GT_PK(2,2) 534 4437 496 4432 4427 535
7494 CONVEX 1827 GT_PK(2,2) 803 4438 763 4439 3805 764
7495 CONVEX 1828 GT_PK(2,2) 803 4438 763 4440 3801 802
7496 CONVEX 1829 GT_PK(2,2) 804 4441 843 4442 3799 844
7497 CONVEX 1830 GT_PK(2,2) 804 4443 765 4444 2926 805
7498 CONVEX 1831 GT_PK(2,2) 804 4442 844 4444 2934 805
7499 CONVEX 1832 GT_PK(2,2) 804 4443 765 4445 2931 764
7500 CONVEX 1833 GT_PK(2,2) 804 4446 803 4445 4439 764
7501 CONVEX 1834 GT_PK(2,2) 804 4446 803 4441 4447 843
7502 CONVEX 1835 GT_PK(2,2) 693 4448 692 4449 4450 732
7503 CONVEX 1836 GT_PK(2,2) 693 4451 733 4449 4452 732
7504 CONVEX 1837 GT_PK(2,2) 693 4451 733 4453 4454 694
7505 CONVEX 1838 GT_PK(2,2) 693 4448 692 4455 3815 653
7506 CONVEX 1839 GT_PK(2,2) 731 4456 692 4457 4450 732
7507 CONVEX 1840 GT_PK(2,2) 731 4458 771 4457 4459 732
7508 CONVEX 1841 GT_PK(2,2) 731 4460 691 4461 2981 730
7509 CONVEX 1842 GT_PK(2,2) 731 4456 692 4460 3816 691
7510 CONVEX 1843 GT_PK(2,2) 731 4462 770 4461 3852 730
7511 CONVEX 1844 GT_PK(2,2) 731 4462 770 4458 4463 771
7512 CONVEX 1845 GT_PK(2,2) 892 4464 932 4465 1948 931
7513 CONVEX 1846 GT_PK(2,2) 892 4466 891 4465 2988 931
7514 CONVEX 1847 GT_PK(2,2) 892 4467 893 4464 3840 932
7515 CONVEX 1848 GT_PK(2,2) 892 4467 893 4468 3841 853
7516 CONVEX 1849 GT_PK(2,2) 816 4469 815 4470 3835 855
7517 CONVEX 1850 GT_PK(2,2) 816 4471 856 4470 3329 855
7518 CONVEX 1851 GT_PK(2,2) 816 4472 777 4473 3325 817
7519 CONVEX 1852 GT_PK(2,2) 816 4471 856 4473 3336 817
7520 CONVEX 1853 GT_PK(2,2) 814 4474 815 4475 3834 854
7521 CONVEX 1854 GT_PK(2,2) 814 4476 853 4475 3842 854
7522 CONVEX 1855 GT_PK(2,2) 814 4477 774 4478 2997 813
7523 CONVEX 1856 GT_PK(2,2) 814 4476 853 4478 4479 813
7524 CONVEX 1857 GT_PK(2,2) 772 4480 812 4481 3844 773
7525 CONVEX 1858 GT_PK(2,2) 772 4482 733 4481 4483 773
7526 CONVEX 1859 GT_PK(2,2) 772 4482 733 4484 4452 732
7527 CONVEX 1860 GT_PK(2,2) 772 4485 771 4484 4459 732
7528 CONVEX 1861 GT_PK(2,2) 849 4486 848 4487 3813 888
7529 CONVEX 1862 GT_PK(2,2) 849 4488 889 4487 3845 888
7530 CONVEX 1863 GT_PK(2,2) 734 4489 695 4490 3848 694
7531 CONVEX 1864 GT_PK(2,2) 734 4491 774 4492 2998 773
7532 CONVEX 1865 GT_PK(2,2) 734 4491 774 4493 4494 735
7533 CONVEX 1866 GT_PK(2,2) 734 4489 695 4493 4495 735
7534 CONVEX 1867 GT_PK(2,2) 734 4496 733 4492 4483 773
7535 CONVEX 1868 GT_PK(2,2) 734 4496 733 4490 4454 694
7536 CONVEX 1869 GT_PK(2,2) 471 4497 510 4498 3005 509
7537 CONVEX 1870 GT_PK(2,2) 471 4499 472 4497 4173 510
7538 CONVEX 1871 GT_PK(2,2) 435 4500 436 4501 3033 397
7539 CONVEX 1872 GT_PK(2,2) 435 4501 397 4502 2078 396
7540 CONVEX 1873 GT_PK(2,2) 435 4503 434 4502 3861 396
7541 CONVEX 1874 GT_PK(2,2) 435 4503 434 4504 3864 473
7542 CONVEX 1875 GT_PK(2,2) 604 4505 643 4506 3873 603
7543 CONVEX 1876 GT_PK(2,2) 604 4505 643 4507 3875 644
7544 CONVEX 1877 GT_PK(2,2) 487 4508 526 4509 3885 525
7545 CONVEX 1878 GT_PK(2,2) 487 4510 488 4508 3888 526
7546 CONVEX 1879 GT_PK(2,2) 487 4511 486 4509 3891 525
7547 CONVEX 1880 GT_PK(2,2) 485 4512 524 4513 3024 523
7548 CONVEX 1881 GT_PK(2,2) 485 4514 486 4512 3890 524
7549 CONVEX 1882 GT_PK(2,2) 485 4515 484 4513 3022 523
7550 CONVEX 1883 GT_PK(2,2) 485 4514 486 4516 4517 447
7551 CONVEX 1884 GT_PK(2,2) 481 4518 482 4519 3027 520
7552 CONVEX 1885 GT_PK(2,2) 481 4520 519 4519 3906 520
7553 CONVEX 1886 GT_PK(2,2) 481 4518 482 4521 3895 443
7554 CONVEX 1887 GT_PK(2,2) 481 4520 519 4522 3909 480
7555 CONVEX 1888 GT_PK(2,2) 481 4523 442 4521 3868 443
7556 CONVEX 1889 GT_PK(2,2) 481 4523 442 4522 4524 480
7557 CONVEX 1890 GT_PK(2,2) 324 4525 288 4526 3915 289
7558 CONVEX 1891 GT_PK(2,2) 324 4527 325 4526 2141 289
7559 CONVEX 1892 GT_PK(2,2) 324 4528 323 4529 3049 360
7560 CONVEX 1893 GT_PK(2,2) 324 4525 288 4528 3913 323
7561 CONVEX 1894 GT_PK(2,2) 324 4530 361 4529 2068 360
7562 CONVEX 1895 GT_PK(2,2) 324 4530 361 4527 2069 325
7563 CONVEX 1896 GT_PK(2,2) 179 4531 180 4532 3061 211
7564 CONVEX 1897 GT_PK(2,2) 179 4532 211 4533 4534 210
7565 CONVEX 1898 GT_PK(2,2) 179 4535 178 4533 4536 210
7566 CONVEX 1899 GT_PK(2,2) 179 4535 178 4537 4538 149
7567 CONVEX 1900 GT_PK(2,2) 179 4539 150 4537 3924 149
7568 CONVEX 1901 GT_PK(2,2) 179 4539 150 4531 3921 180
7569 CONVEX 1902 GT_PK(2,2) 243 4540 211 4541 4534 210
7570 CONVEX 1903 GT_PK(2,2) 243 4542 244 4540 3918 211
7571 CONVEX 1904 GT_PK(2,2) 243 4541 210 4543 4544 242
7572 CONVEX 1905 GT_PK(2,2) 243 4542 244 4545 3920 277
7573 CONVEX 1906 GT_PK(2,2) 243 4546 276 4543 1985 242
7574 CONVEX 1907 GT_PK(2,2) 243 4545 277 4546 3751 276
7575 CONVEX 1908 GT_PK(2,2) 123 4547 150 4548 3923 122
7576 CONVEX 1909 GT_PK(2,2) 123 4549 97 4548 3930 122
7577 CONVEX 1910 GT_PK(2,2) 123 4550 151 4551 2181 124
7578 CONVEX 1911 GT_PK(2,2) 123 4547 150 4550 3922 151
7579 CONVEX 1912 GT_PK(2,2) 123 4551 124 4552 1668 98
7580 CONVEX 1913 GT_PK(2,2) 123 4549 97 4552 3935 98
7581 CONVEX 1914 GT_PK(2,2) 95 4553 121 4554 4555 120
7582 CONVEX 1915 GT_PK(2,2) 95 4553 121 4556 3927 96
7583 CONVEX 1916 GT_PK(2,2) 70 4557 69 4558 4411 48
7584 CONVEX 1917 GT_PK(2,2) 70 4559 93 4557 3936 69
7585 CONVEX 1918 GT_PK(2,2) 50 4560 32 4561 4562 31
7586 CONVEX 1919 GT_PK(2,2) 50 4563 51 4560 3941 32
7587 CONVEX 1920 GT_PK(2,2) 368 4564 367 4565 3012 405
7588 CONVEX 1921 GT_PK(2,2) 368 4566 331 4564 3952 367
7589 CONVEX 1922 GT_PK(2,2) 446 4567 484 4568 3902 445
7590 CONVEX 1923 GT_PK(2,2) 446 4569 485 4570 4516 447
7591 CONVEX 1924 GT_PK(2,2) 446 4569 485 4567 4515 484
7592 CONVEX 1925 GT_PK(2,2) 267 4571 302 4572 2230 268
7593 CONVEX 1926 GT_PK(2,2) 267 4572 268 4573 2889 234
7594 CONVEX 1927 GT_PK(2,2) 267 4574 233 4573 2241 234
7595 CONVEX 1928 GT_PK(2,2) 264 4575 263 4576 4577 298
7596 CONVEX 1929 GT_PK(2,2) 133 4578 134 4579 3956 106
7597 CONVEX 1930 GT_PK(2,2) 133 4580 105 4581 2221 132
7598 CONVEX 1931 GT_PK(2,2) 133 4580 105 4579 2219 106
7599 CONVEX 1932 GT_PK(2,2) 133 4582 162 4581 2229 132
7600 CONVEX 1933 GT_PK(2,2) 133 4583 163 4582 4584 162
7601 CONVEX 1934 GT_PK(2,2) 133 4578 134 4583 3957 163
7602 CONVEX 1935 GT_PK(2,2) 135 4585 108 4586 3124 107
7603 CONVEX 1936 GT_PK(2,2) 135 4587 134 4586 3955 107
7604 CONVEX 1937 GT_PK(2,2) 135 4587 134 4588 3958 164
7605 CONVEX 1938 GT_PK(2,2) 135 4589 165 4588 3992 164
7606 CONVEX 1939 GT_PK(2,2) 194 4590 226 4591 3945 193
7607 CONVEX 1940 GT_PK(2,2) 194 4592 195 4593 3963 163
7608 CONVEX 1941 GT_PK(2,2) 194 4594 227 4590 4595 226
7609 CONVEX 1942 GT_PK(2,2) 194 4594 227 4592 4596 195
7610 CONVEX 1943 GT_PK(2,2) 194 4593 163 4597 4584 162
7611 CONVEX 1944 GT_PK(2,2) 194 4591 193 4597 3091 162
7612 CONVEX 1945 GT_PK(2,2) 375 4598 376 4599 2907 413
7613 CONVEX 1946 GT_PK(2,2) 375 4600 374 4601 4602 338
7614 CONVEX 1947 GT_PK(2,2) 375 4598 376 4603 2922 339
7615 CONVEX 1948 GT_PK(2,2) 375 4601 338 4603 3093 339
7616 CONVEX 1949 GT_PK(2,2) 199 4604 232 4605 3964 200
7617 CONVEX 1950 GT_PK(2,2) 199 4606 167 4607 4608 198
7618 CONVEX 1951 GT_PK(2,2) 199 4607 198 4609 4610 231
7619 CONVEX 1952 GT_PK(2,2) 199 4604 232 4609 4611 231
7620 CONVEX 1953 GT_PK(2,2) 199 4605 200 4612 3101 168
7621 CONVEX 1954 GT_PK(2,2) 199 4606 167 4612 4613 168
7622 CONVEX 1955 GT_PK(2,2) 138 4614 111 4615 3966 139
7623 CONVEX 1956 GT_PK(2,2) 138 4615 139 4616 2244 168
7624 CONVEX 1957 GT_PK(2,2) 138 4617 167 4618 4619 137
7625 CONVEX 1958 GT_PK(2,2) 138 4617 167 4616 4613 168
7626 CONVEX 1959 GT_PK(2,2) 110 4620 138 4621 4614 111
7627 CONVEX 1960 GT_PK(2,2) 110 4622 109 4623 4624 137
7628 CONVEX 1961 GT_PK(2,2) 110 4620 138 4623 4618 137
7629 CONVEX 1962 GT_PK(2,2) 85 4625 111 4626 3968 86
7630 CONVEX 1963 GT_PK(2,2) 85 4627 62 4628 3975 61
7631 CONVEX 1964 GT_PK(2,2) 85 4627 62 4626 3977 86
7632 CONVEX 1965 GT_PK(2,2) 85 4629 110 4625 4621 111
7633 CONVEX 1966 GT_PK(2,2) 60 4630 83 4631 3986 59
7634 CONVEX 1967 GT_PK(2,2) 60 4632 38 4633 3982 39
7635 CONVEX 1968 GT_PK(2,2) 60 4632 38 4631 3979 59
7636 CONVEX 1969 GT_PK(2,2) 60 4633 39 4634 3120 61
7637 CONVEX 1970 GT_PK(2,2) 136 4635 109 4636 4624 137
7638 CONVEX 1971 GT_PK(2,2) 136 4637 108 4635 3990 109
7639 CONVEX 1972 GT_PK(2,2) 136 4638 135 4637 4585 108
7640 CONVEX 1973 GT_PK(2,2) 136 4638 135 4639 4589 165
7641 CONVEX 1974 GT_PK(2,2) 197 4640 165 4641 3991 196
7642 CONVEX 1975 GT_PK(2,2) 1389 4642 1388 4643 4003 1365
7643 CONVEX 1976 GT_PK(2,2) 1389 4644 1411 4645 3190 1390
7644 CONVEX 1977 GT_PK(2,2) 1389 4644 1411 4646 3194 1410
7645 CONVEX 1978 GT_PK(2,2) 1389 4642 1388 4646 4002 1410
7646 CONVEX 1979 GT_PK(2,2) 1389 4647 1366 4645 3230 1390
7647 CONVEX 1980 GT_PK(2,2) 1389 4647 1366 4643 4074 1365
7648 CONVEX 1981 GT_PK(2,2) 1110 4648 1074 4649 4650 1073
7649 CONVEX 1982 GT_PK(2,2) 1110 4651 1109 4649 4245 1073
7650 CONVEX 1983 GT_PK(2,2) 1110 4651 1109 4652 4011 1145
7651 CONVEX 1984 GT_PK(2,2) 1110 4653 1146 4652 4302 1145
7652 CONVEX 1985 GT_PK(2,2) 840 4654 800 4655 4153 801
7653 CONVEX 1986 GT_PK(2,2) 840 4654 800 4656 4151 839
7654 CONVEX 1987 GT_PK(2,2) 842 4657 803 4658 4440 802
7655 CONVEX 1988 GT_PK(2,2) 842 4657 803 4659 4447 843
7656 CONVEX 1989 GT_PK(2,2) 999 4660 1038 4661 3135 1000
7657 CONVEX 1990 GT_PK(2,2) 999 4662 1037 4660 4014 1038
7658 CONVEX 1991 GT_PK(2,2) 1036 4663 1037 4664 4016 1074
7659 CONVEX 1992 GT_PK(2,2) 1036 4665 1073 4666 4242 1035
7660 CONVEX 1993 GT_PK(2,2) 1036 4664 1074 4665 4650 1073
7661 CONVEX 1994 GT_PK(2,2) 1225 4667 1226 4668 4044 1258
7662 CONVEX 1995 GT_PK(2,2) 1225 4669 1191 4670 4035 1192
7663 CONVEX 1996 GT_PK(2,2) 1225 4667 1226 4670 4047 1192
7664 CONVEX 1997 GT_PK(2,2) 1287 4671 1317 4672 2345 1316
7665 CONVEX 1998 GT_PK(2,2) 1287 4673 1286 4672 4080 1316
7666 CONVEX 1999 GT_PK(2,2) 1255 4674 1254 4675 3158 1286
7667 CONVEX 2000 GT_PK(2,2) 1255 4676 1287 4675 4673 1286
7668 CONVEX 2001 GT_PK(2,2) 1255 4676 1287 4677 4678 1256
7669 CONVEX 2002 GT_PK(2,2) 1255 4674 1254 4679 3162 1222
7670 CONVEX 2003 GT_PK(2,2) 1318 4680 1289 4681 4682 1319
7671 CONVEX 2004 GT_PK(2,2) 1318 4683 1317 4684 2346 1345
7672 CONVEX 2005 GT_PK(2,2) 1318 4684 1345 4685 2323 1346
7673 CONVEX 2006 GT_PK(2,2) 1318 4681 1319 4685 3175 1346
7674 CONVEX 2007 GT_PK(2,2) 1288 4686 1287 4687 4678 1256
7675 CONVEX 2008 GT_PK(2,2) 1288 4686 1287 4688 4671 1317
7676 CONVEX 2009 GT_PK(2,2) 1288 4689 1318 4688 4683 1317
7677 CONVEX 2010 GT_PK(2,2) 1288 4689 1318 4690 4680 1289
7678 CONVEX 2011 GT_PK(2,2) 1290 4691 1289 4692 4682 1319
7679 CONVEX 2012 GT_PK(2,2) 1290 4693 1291 4694 3173 1320
7680 CONVEX 2013 GT_PK(2,2) 1290 4692 1319 4694 3176 1320
7681 CONVEX 2014 GT_PK(2,2) 1290 4691 1289 4695 4696 1258
7682 CONVEX 2015 GT_PK(2,2) 1290 4697 1259 4693 4052 1291
7683 CONVEX 2016 GT_PK(2,2) 1290 4697 1259 4695 4045 1258
7684 CONVEX 2017 GT_PK(2,2) 1322 4698 1292 4699 4040 1293
7685 CONVEX 2018 GT_PK(2,2) 1322 4700 1349 4701 4032 1350
7686 CONVEX 2019 GT_PK(2,2) 1322 4700 1349 4702 4031 1321
7687 CONVEX 2020 GT_PK(2,2) 1322 4698 1292 4702 4041 1321
7688 CONVEX 2021 GT_PK(2,2) 1322 4701 1350 4703 4704 1323
7689 CONVEX 2022 GT_PK(2,2) 1322 4699 1293 4703 3167 1323
7690 CONVEX 2023 GT_PK(2,2) 1228 4705 1195 4706 3688 1194
7691 CONVEX 2024 GT_PK(2,2) 1228 4705 1195 4707 3186 1229
7692 CONVEX 2025 GT_PK(2,2) 1228 4708 1261 4707 3188 1229
7693 CONVEX 2026 GT_PK(2,2) 1228 4709 1260 4708 4049 1261
7694 CONVEX 2027 GT_PK(2,2) 1314 4710 1315 4711 4075 1342
7695 CONVEX 2028 GT_PK(2,2) 1314 4712 1313 4713 4063 1284
7696 CONVEX 2029 GT_PK(2,2) 1314 4713 1284 4714 2400 1285
7697 CONVEX 2030 GT_PK(2,2) 1314 4710 1315 4714 4078 1285
7698 CONVEX 2031 GT_PK(2,2) 1314 4712 1313 4715 4071 1341
7699 CONVEX 2032 GT_PK(2,2) 1314 4711 1342 4715 3236 1341
7700 CONVEX 2033 GT_PK(2,2) 461 4716 460 4717 3765 422
7701 CONVEX 2034 GT_PK(2,2) 461 4718 499 4716 4099 460
7702 CONVEX 2035 GT_PK(2,2) 461 4719 423 4717 2858 422
7703 CONVEX 2036 GT_PK(2,2) 620 4720 660 4721 4111 621
7704 CONVEX 2037 GT_PK(2,2) 620 4720 660 4722 4723 659
7705 CONVEX 2038 GT_PK(2,2) 620 4724 619 4722 4725 659
7706 CONVEX 2039 GT_PK(2,2) 699 4726 739 4727 3270 700
7707 CONVEX 2040 GT_PK(2,2) 699 4728 660 4727 4109 700
7708 CONVEX 2041 GT_PK(2,2) 699 4728 660 4729 4723 659
7709 CONVEX 2042 GT_PK(2,2) 699 4726 739 4730 2443 738
7710 CONVEX 2043 GT_PK(2,2) 698 4731 699 4732 4730 738
7711 CONVEX 2044 GT_PK(2,2) 698 4731 699 4733 4729 659
7712 CONVEX 2045 GT_PK(2,2) 776 4734 816 4735 4472 777
7713 CONVEX 2046 GT_PK(2,2) 776 4734 816 4736 4469 815
7714 CONVEX 2047 GT_PK(2,2) 464 4737 463 4738 4739 425
7715 CONVEX 2048 GT_PK(2,2) 464 4737 463 4740 4741 502
7716 CONVEX 2049 GT_PK(2,2) 464 4742 503 4743 4096 465
7717 CONVEX 2050 GT_PK(2,2) 464 4742 503 4740 4744 502
7718 CONVEX 2051 GT_PK(2,2) 426 4745 425 4746 4135 388
7719 CONVEX 2052 GT_PK(2,2) 426 4747 389 4748 4137 427
7720 CONVEX 2053 GT_PK(2,2) 426 4747 389 4746 4139 388
7721 CONVEX 2054 GT_PK(2,2) 426 4749 464 4745 4738 425
7722 CONVEX 2055 GT_PK(2,2) 426 4748 427 4750 4107 465
7723 CONVEX 2056 GT_PK(2,2) 426 4749 464 4750 4743 465
7724 CONVEX 2057 GT_PK(2,2) 917 4751 877 4752 4148 878
7725 CONVEX 2058 GT_PK(2,2) 917 4751 877 4753 4754 916
7726 CONVEX 2059 GT_PK(2,2) 917 4755 956 4756 4252 955
7727 CONVEX 2060 GT_PK(2,2) 917 4753 916 4756 4259 955
7728 CONVEX 2061 GT_PK(2,2) 876 4757 877 4758 4754 916
7729 CONVEX 2062 GT_PK(2,2) 876 4758 916 4759 4260 915
7730 CONVEX 2063 GT_PK(2,2) 876 4760 837 4761 3360 836
7731 CONVEX 2064 GT_PK(2,2) 876 4757 877 4760 4149 837
7732 CONVEX 2065 GT_PK(2,2) 876 4762 875 4761 2638 836
7733 CONVEX 2066 GT_PK(2,2) 876 4762 875 4759 2640 915
7734 CONVEX 2067 GT_PK(2,2) 441 4763 479 4764 4165 440
7735 CONVEX 2068 GT_PK(2,2) 441 4765 442 4766 3869 403
7736 CONVEX 2069 GT_PK(2,2) 441 4765 442 4767 4524 480
7737 CONVEX 2070 GT_PK(2,2) 441 4763 479 4767 4166 480
7738 CONVEX 2071 GT_PK(2,2) 441 4768 402 4766 2089 403
7739 CONVEX 2072 GT_PK(2,2) 441 4764 440 4768 3039 402
7740 CONVEX 2073 GT_PK(2,2) 555 4769 516 4770 2529 556
7741 CONVEX 2074 GT_PK(2,2) 555 4771 515 4769 4167 516
7742 CONVEX 2075 GT_PK(2,2) 476 4772 475 4773 4170 437
7743 CONVEX 2076 GT_PK(2,2) 476 4774 515 4775 4168 477
7744 CONVEX 2077 GT_PK(2,2) 476 4776 438 4775 2100 477
7745 CONVEX 2078 GT_PK(2,2) 476 4776 438 4773 2101 437
7746 CONVEX 2079 GT_PK(2,2) 512 4777 511 4778 4174 473
7747 CONVEX 2080 GT_PK(2,2) 631 4779 671 4780 4781 632
7748 CONVEX 2081 GT_PK(2,2) 631 4782 592 4780 4186 632
7749 CONVEX 2082 GT_PK(2,2) 631 4779 671 4783 3378 670
7750 CONVEX 2083 GT_PK(2,2) 674 4784 714 4785 2537 675
7751 CONVEX 2084 GT_PK(2,2) 674 4786 635 4785 4180 675
7752 CONVEX 2085 GT_PK(2,2) 674 4784 714 4787 3384 713
7753 CONVEX 2086 GT_PK(2,2) 674 4786 635 4788 4789 634
7754 CONVEX 2087 GT_PK(2,2) 674 4790 673 4787 4182 713
7755 CONVEX 2088 GT_PK(2,2) 674 4790 673 4788 4791 634
7756 CONVEX 2089 GT_PK(2,2) 672 4792 671 4793 3380 711
7757 CONVEX 2090 GT_PK(2,2) 672 4792 671 4794 4781 632
7758 CONVEX 2091 GT_PK(2,2) 672 4793 711 4795 2589 712
7759 CONVEX 2092 GT_PK(2,2) 672 4796 673 4795 4183 712
7760 CONVEX 2093 GT_PK(2,2) 633 4797 673 4798 4791 634
7761 CONVEX 2094 GT_PK(2,2) 633 4799 672 4797 4796 673
7762 CONVEX 2095 GT_PK(2,2) 633 4800 593 4801 4185 632
7763 CONVEX 2096 GT_PK(2,2) 633 4799 672 4801 4794 632
7764 CONVEX 2097 GT_PK(2,2) 944 4802 905 4803 4196 943
7765 CONVEX 2098 GT_PK(2,2) 944 4804 982 4805 2543 981
7766 CONVEX 2099 GT_PK(2,2) 944 4803 943 4805 4806 981
7767 CONVEX 2100 GT_PK(2,2) 944 4804 982 4807 2539 983
7768 CONVEX 2101 GT_PK(2,2) 944 4808 945 4807 3456 983
7769 CONVEX 2102 GT_PK(2,2) 944 4808 945 4809 4233 906
7770 CONVEX 2103 GT_PK(2,2) 944 4802 905 4809 4205 906
7771 CONVEX 2104 GT_PK(2,2) 871 4810 832 4811 4210 831
7772 CONVEX 2105 GT_PK(2,2) 871 4812 911 4813 2610 910
7773 CONVEX 2106 GT_PK(2,2) 871 4814 872 4812 2625 911
7774 CONVEX 2107 GT_PK(2,2) 871 4810 832 4814 4214 872
7775 CONVEX 2108 GT_PK(2,2) 870 4815 830 4816 4215 831
7776 CONVEX 2109 GT_PK(2,2) 870 4817 909 4818 1876 910
7777 CONVEX 2110 GT_PK(2,2) 870 4819 869 4817 4820 909
7778 CONVEX 2111 GT_PK(2,2) 870 4819 869 4815 4821 830
7779 CONVEX 2112 GT_PK(2,2) 870 4822 871 4818 4813 910
7780 CONVEX 2113 GT_PK(2,2) 870 4822 871 4816 4811 831
7781 CONVEX 2114 GT_PK(2,2) 790 4823 751 4824 3438 791
7782 CONVEX 2115 GT_PK(2,2) 790 4825 830 4824 4216 791
7783 CONVEX 2116 GT_PK(2,2) 987 4826 986 4827 4223 1025
7784 CONVEX 2117 GT_PK(2,2) 987 4828 949 4829 2605 988
7785 CONVEX 2118 GT_PK(2,2) 987 4828 949 4830 2611 948
7786 CONVEX 2119 GT_PK(2,2) 987 4826 986 4830 4227 948
7787 CONVEX 2120 GT_PK(2,2) 987 4831 1026 4829 3446 988
7788 CONVEX 2121 GT_PK(2,2) 987 4827 1025 4831 3450 1026
7789 CONVEX 2122 GT_PK(2,2) 908 4832 907 4833 4230 868
7790 CONVEX 2123 GT_PK(2,2) 908 4834 869 4833 4835 868
7791 CONVEX 2124 GT_PK(2,2) 908 4836 947 4837 3458 909
7792 CONVEX 2125 GT_PK(2,2) 908 4834 869 4837 4820 909
7793 CONVEX 2126 GT_PK(2,2) 1034 4838 1072 4839 4241 1035
7794 CONVEX 2127 GT_PK(2,2) 1071 4840 1033 4841 3464 1070
7795 CONVEX 2128 GT_PK(2,2) 1071 4842 1072 4843 4244 1108
7796 CONVEX 2129 GT_PK(2,2) 1071 4844 1034 4840 4845 1033
7797 CONVEX 2130 GT_PK(2,2) 1071 4844 1034 4842 4838 1072
7798 CONVEX 2131 GT_PK(2,2) 1142 4846 1106 4847 4848 1141
7799 CONVEX 2132 GT_PK(2,2) 1104 4849 1103 4850 3426 1067
7800 CONVEX 2133 GT_PK(2,2) 1104 4851 1139 4849 3497 1103
7801 CONVEX 2134 GT_PK(2,2) 1104 4851 1139 4852 3500 1140
7802 CONVEX 2135 GT_PK(2,2) 1209 4853 1210 4854 4269 1242
7803 CONVEX 2136 GT_PK(2,2) 1209 4855 1241 4856 3628 1208
7804 CONVEX 2137 GT_PK(2,2) 1209 4855 1241 4854 3629 1242
7805 CONVEX 2138 GT_PK(2,2) 1382 4857 1404 4858 2676 1383
7806 CONVEX 2139 GT_PK(2,2) 1382 4859 1403 4857 4276 1404
7807 CONVEX 2140 GT_PK(2,2) 1382 4859 1403 4860 4279 1381
7808 CONVEX 2141 GT_PK(2,2) 1421 4861 1403 4862 4277 1422
7809 CONVEX 2142 GT_PK(2,2) 1421 4863 1436 4864 4865 1435
7810 CONVEX 2143 GT_PK(2,2) 1421 4863 1436 4862 3536 1422
7811 CONVEX 2144 GT_PK(2,2) 1421 4866 1402 4864 4867 1435
7812 CONVEX 2145 GT_PK(2,2) 1421 4861 1403 4866 4278 1402
7813 CONVEX 2146 GT_PK(2,2) 1332 4868 1305 4869 4325 1304
7814 CONVEX 2147 GT_PK(2,2) 1332 4870 1333 4868 4283 1305
7815 CONVEX 2148 GT_PK(2,2) 1377 4871 1398 4872 4296 1353
7816 CONVEX 2149 GT_PK(2,2) 1328 4873 1353 4874 4312 1327
7817 CONVEX 2150 GT_PK(2,2) 1302 4875 1273 4876 3623 1303
7818 CONVEX 2151 GT_PK(2,2) 1302 4875 1273 4877 3627 1272
7819 CONVEX 2152 GT_PK(2,2) 1420 4878 1402 4879 4867 1435
7820 CONVEX 2153 GT_PK(2,2) 1048 4880 1086 4881 4337 1049
7821 CONVEX 2154 GT_PK(2,2) 1048 4882 1010 4883 2777 1009
7822 CONVEX 2155 GT_PK(2,2) 1048 4882 1010 4881 2771 1049
7823 CONVEX 2156 GT_PK(2,2) 1085 4884 1086 4885 4336 1122
7824 CONVEX 2157 GT_PK(2,2) 1085 4886 1121 4885 4340 1122
7825 CONVEX 2158 GT_PK(2,2) 1085 4887 1048 4884 4880 1086
7826 CONVEX 2159 GT_PK(2,2) 1126 4888 1127 4889 4128 1090
7827 CONVEX 2160 GT_PK(2,2) 1126 4890 1162 4888 4388 1127
7828 CONVEX 2161 GT_PK(2,2) 1126 4891 1089 4892 4371 1125
7829 CONVEX 2162 GT_PK(2,2) 1126 4891 1089 4889 3691 1090
7830 CONVEX 2163 GT_PK(2,2) 1126 4893 1161 4892 4383 1125
7831 CONVEX 2164 GT_PK(2,2) 1126 4890 1162 4893 4390 1161
7832 CONVEX 2165 GT_PK(2,2) 238 4894 271 4895 4393 272
7833 CONVEX 2166 GT_PK(2,2) 236 4896 235 4897 2891 203
7834 CONVEX 2167 GT_PK(2,2) 236 4898 204 4897 4899 203
7835 CONVEX 2168 GT_PK(2,2) 270 4900 305 4901 2925 304
7836 CONVEX 2169 GT_PK(2,2) 270 4902 271 4900 4391 305
7837 CONVEX 2170 GT_PK(2,2) 172 4903 204 4904 4899 203
7838 CONVEX 2171 GT_PK(2,2) 172 4903 204 4905 4906 173
7839 CONVEX 2172 GT_PK(2,2) 68 4907 47 4908 4410 69
7840 CONVEX 2173 GT_PK(2,2) 68 4909 91 4910 4911 92
7841 CONVEX 2174 GT_PK(2,2) 68 4908 69 4910 3938 92
7842 CONVEX 2175 GT_PK(2,2) 68 4912 67 4909 4401 91
7843 CONVEX 2176 GT_PK(2,2) 68 4912 67 4913 4405 46
7844 CONVEX 2177 GT_PK(2,2) 68 4907 47 4913 4408 46
7845 CONVEX 2178 GT_PK(2,2) 566 4914 567 4915 4421 606
7846 CONVEX 2179 GT_PK(2,2) 566 4916 565 4917 3883 526
7847 CONVEX 2180 GT_PK(2,2) 566 4917 526 4918 3889 527
7848 CONVEX 2181 GT_PK(2,2) 566 4914 567 4918 4413 527
7849 CONVEX 2182 GT_PK(2,2) 424 4919 425 4920 4136 387
7850 CONVEX 2183 GT_PK(2,2) 424 4921 386 4920 4426 387
7851 CONVEX 2184 GT_PK(2,2) 424 4921 386 4922 4424 423
7852 CONVEX 2185 GT_PK(2,2) 424 4923 463 4919 4739 425
7853 CONVEX 2186 GT_PK(2,2) 654 4924 693 4925 4453 694
7854 CONVEX 2187 GT_PK(2,2) 654 4925 694 4926 3850 655
7855 CONVEX 2188 GT_PK(2,2) 654 4927 615 4926 4928 655
7856 CONVEX 2189 GT_PK(2,2) 654 4927 615 4929 3853 614
7857 CONVEX 2190 GT_PK(2,2) 654 4929 614 4930 2995 653
7858 CONVEX 2191 GT_PK(2,2) 654 4924 693 4930 4455 653
7859 CONVEX 2192 GT_PK(2,2) 852 4931 892 4932 4466 891
7860 CONVEX 2193 GT_PK(2,2) 852 4933 812 4934 3843 813
7861 CONVEX 2194 GT_PK(2,2) 852 4935 853 4934 4479 813
7862 CONVEX 2195 GT_PK(2,2) 852 4931 892 4935 4468 853
7863 CONVEX 2196 GT_PK(2,2) 852 4936 851 4932 4937 891
7864 CONVEX 2197 GT_PK(2,2) 852 4936 851 4933 4938 812
7865 CONVEX 2198 GT_PK(2,2) 775 4939 814 4940 4474 815
7866 CONVEX 2199 GT_PK(2,2) 775 4941 776 4942 4943 736
7867 CONVEX 2200 GT_PK(2,2) 775 4941 776 4940 4736 815
7868 CONVEX 2201 GT_PK(2,2) 775 4944 735 4942 4945 736
7869 CONVEX 2202 GT_PK(2,2) 775 4946 774 4944 4494 735
7870 CONVEX 2203 GT_PK(2,2) 775 4939 814 4946 4477 774
7871 CONVEX 2204 GT_PK(2,2) 890 4947 851 4948 4937 891
7872 CONVEX 2205 GT_PK(2,2) 890 4949 889 4950 3847 929
7873 CONVEX 2206 GT_PK(2,2) 890 4950 929 4951 2764 930
7874 CONVEX 2207 GT_PK(2,2) 890 4948 891 4951 2987 930
7875 CONVEX 2208 GT_PK(2,2) 809 4952 770 4953 3851 769
7876 CONVEX 2209 GT_PK(2,2) 809 4954 808 4953 2963 769
7877 CONVEX 2210 GT_PK(2,2) 809 4955 848 4954 3810 808
7878 CONVEX 2211 GT_PK(2,2) 809 4956 849 4955 4486 848
7879 CONVEX 2212 GT_PK(2,2) 810 4957 809 4958 4956 849
7880 CONVEX 2213 GT_PK(2,2) 810 4959 770 4960 4463 771
7881 CONVEX 2214 GT_PK(2,2) 810 4957 809 4959 4952 770
7882 CONVEX 2215 GT_PK(2,2) 432 4961 472 4962 3866 433
7883 CONVEX 2216 GT_PK(2,2) 432 4963 471 4961 4499 472
7884 CONVEX 2217 GT_PK(2,2) 432 4962 433 4964 3007 394
7885 CONVEX 2218 GT_PK(2,2) 474 4965 475 4966 4169 436
7886 CONVEX 2219 GT_PK(2,2) 474 4967 435 4966 4500 436
7887 CONVEX 2220 GT_PK(2,2) 474 4967 435 4968 4504 473
7888 CONVEX 2221 GT_PK(2,2) 474 4969 512 4968 4778 473
7889 CONVEX 2222 GT_PK(2,2) 564 4970 603 4971 3882 563
7890 CONVEX 2223 GT_PK(2,2) 564 4972 604 4970 4506 603
7891 CONVEX 2224 GT_PK(2,2) 564 4972 604 4973 4974 565
7892 CONVEX 2225 GT_PK(2,2) 564 4975 524 4971 3025 563
7893 CONVEX 2226 GT_PK(2,2) 564 4975 524 4976 3892 525
7894 CONVEX 2227 GT_PK(2,2) 564 4973 565 4976 3884 525
7895 CONVEX 2228 GT_PK(2,2) 605 4977 604 4978 4974 565
7896 CONVEX 2229 GT_PK(2,2) 605 4979 606 4980 2816 645
7897 CONVEX 2230 GT_PK(2,2) 605 4981 644 4980 3019 645
7898 CONVEX 2231 GT_PK(2,2) 605 4977 604 4981 4507 644
7899 CONVEX 2232 GT_PK(2,2) 605 4982 566 4979 4915 606
7900 CONVEX 2233 GT_PK(2,2) 605 4982 566 4978 4916 565
7901 CONVEX 2234 GT_PK(2,2) 148 4983 177 4984 4985 178
7902 CONVEX 2235 GT_PK(2,2) 148 4984 178 4986 4538 149
7903 CONVEX 2236 GT_PK(2,2) 148 4987 121 4986 3929 149
7904 CONVEX 2237 GT_PK(2,2) 148 4987 121 4988 4555 120
7905 CONVEX 2238 GT_PK(2,2) 208 4989 240 4990 4394 241
7906 CONVEX 2239 GT_PK(2,2) 208 4989 240 4991 4992 207
7907 CONVEX 2240 GT_PK(2,2) 209 4993 178 4994 4536 210
7908 CONVEX 2241 GT_PK(2,2) 209 4995 177 4993 4985 178
7909 CONVEX 2242 GT_PK(2,2) 209 4994 210 4996 4544 242
7910 CONVEX 2243 GT_PK(2,2) 209 4997 208 4995 4998 177
7911 CONVEX 2244 GT_PK(2,2) 209 4999 241 4996 1970 242
7912 CONVEX 2245 GT_PK(2,2) 209 4997 208 4999 4990 241
7913 CONVEX 2246 GT_PK(2,2) 94 5000 95 5001 4554 120
7914 CONVEX 2247 GT_PK(2,2) 94 5000 95 5002 5003 71
7915 CONVEX 2248 GT_PK(2,2) 94 5004 70 5002 5005 71
7916 CONVEX 2249 GT_PK(2,2) 94 5004 70 5006 4559 93
7917 CONVEX 2250 GT_PK(2,2) 72 5007 95 5008 5003 71
7918 CONVEX 2251 GT_PK(2,2) 72 5009 50 5008 5010 71
7919 CONVEX 2252 GT_PK(2,2) 72 5009 50 5011 4563 51
7920 CONVEX 2253 GT_PK(2,2) 72 5007 95 5012 4556 96
7921 CONVEX 2254 GT_PK(2,2) 72 5013 73 5012 3933 96
7922 CONVEX 2255 GT_PK(2,2) 72 5011 51 5013 3939 73
7923 CONVEX 2256 GT_PK(2,2) 175 5014 207 5015 5016 206
7924 CONVEX 2257 GT_PK(2,2) 49 5017 70 5018 5005 71
7925 CONVEX 2258 GT_PK(2,2) 49 5019 50 5018 5010 71
7926 CONVEX 2259 GT_PK(2,2) 49 5020 30 5021 2819 48
7927 CONVEX 2260 GT_PK(2,2) 49 5017 70 5021 4558 48
7928 CONVEX 2261 GT_PK(2,2) 49 5019 50 5022 4561 31
7929 CONVEX 2262 GT_PK(2,2) 49 5023 16 5022 5024 31
7930 CONVEX 2263 GT_PK(2,2) 49 5023 16 5020 3706 30
7931 CONVEX 2264 GT_PK(2,2) 406 5025 368 5026 4565 405
7932 CONVEX 2265 GT_PK(2,2) 406 5027 444 5026 3896 405
7933 CONVEX 2266 GT_PK(2,2) 406 5027 444 5028 3904 445
7934 CONVEX 2267 GT_PK(2,2) 301 5029 267 5030 4571 302
7935 CONVEX 2268 GT_PK(2,2) 299 5031 264 5032 4576 298
7936 CONVEX 2269 GT_PK(2,2) 265 5033 299 5034 5035 300
7937 CONVEX 2270 GT_PK(2,2) 265 5033 299 5036 5031 264
7938 CONVEX 2271 GT_PK(2,2) 265 5037 232 5038 4611 231
7939 CONVEX 2272 GT_PK(2,2) 265 5036 264 5038 5039 231
7940 CONVEX 2273 GT_PK(2,2) 260 5040 226 5041 3944 259
7941 CONVEX 2274 GT_PK(2,2) 260 5042 227 5040 4595 226
7942 CONVEX 2275 GT_PK(2,2) 260 5043 261 5042 5044 227
7943 CONVEX 2276 GT_PK(2,2) 260 5045 294 5041 3946 259
7944 CONVEX 2277 GT_PK(2,2) 260 5045 294 5046 3950 295
7945 CONVEX 2278 GT_PK(2,2) 260 5043 261 5046 5047 295
7946 CONVEX 2279 GT_PK(2,2) 412 5048 451 5049 2844 413
7947 CONVEX 2280 GT_PK(2,2) 412 5050 375 5049 4599 413
7948 CONVEX 2281 GT_PK(2,2) 412 5050 375 5051 4600 374
7949 CONVEX 2282 GT_PK(2,2) 412 5052 411 5051 5053 374
7950 CONVEX 2283 GT_PK(2,2) 84 5054 83 5055 3989 109
7951 CONVEX 2284 GT_PK(2,2) 84 5056 110 5055 4622 109
7952 CONVEX 2285 GT_PK(2,2) 84 5057 60 5058 4634 61
7953 CONVEX 2286 GT_PK(2,2) 84 5057 60 5054 4630 83
7954 CONVEX 2287 GT_PK(2,2) 84 5059 85 5058 4628 61
7955 CONVEX 2288 GT_PK(2,2) 84 5059 85 5056 4629 110
7956 CONVEX 2289 GT_PK(2,2) 166 5060 167 5061 4619 137
7957 CONVEX 2290 GT_PK(2,2) 166 5062 136 5061 4636 137
7958 CONVEX 2291 GT_PK(2,2) 166 5060 167 5063 4608 198
7959 CONVEX 2292 GT_PK(2,2) 166 5064 197 5063 5065 198
7960 CONVEX 2293 GT_PK(2,2) 166 5062 136 5066 4639 165
7961 CONVEX 2294 GT_PK(2,2) 166 5064 197 5066 4640 165
7962 CONVEX 2295 GT_PK(2,2) 230 5067 264 5068 5039 231
7963 CONVEX 2296 GT_PK(2,2) 230 5067 264 5069 4575 263
7964 CONVEX 2297 GT_PK(2,2) 230 5070 198 5068 4610 231
7965 CONVEX 2298 GT_PK(2,2) 230 5071 197 5070 5065 198
7966 CONVEX 2299 GT_PK(2,2) 1111 5072 1110 5073 4648 1074
7967 CONVEX 2300 GT_PK(2,2) 1111 5074 1075 5075 2282 1112
7968 CONVEX 2301 GT_PK(2,2) 1111 5073 1074 5074 4017 1075
7969 CONVEX 2302 GT_PK(2,2) 1111 5072 1110 5076 4653 1146
7970 CONVEX 2303 GT_PK(2,2) 1111 5077 1147 5075 2705 1112
7971 CONVEX 2304 GT_PK(2,2) 1111 5076 1146 5077 4299 1147
7972 CONVEX 2305 GT_PK(2,2) 841 5078 840 5079 5080 880
7973 CONVEX 2306 GT_PK(2,2) 841 5081 842 5082 4658 802
7974 CONVEX 2307 GT_PK(2,2) 841 5082 802 5083 2937 801
7975 CONVEX 2308 GT_PK(2,2) 841 5078 840 5083 4655 801
7976 CONVEX 2309 GT_PK(2,2) 881 5084 920 5085 5086 880
7977 CONVEX 2310 GT_PK(2,2) 881 5087 841 5085 5079 880
7978 CONVEX 2311 GT_PK(2,2) 881 5087 841 5088 5081 842
7979 CONVEX 2312 GT_PK(2,2) 879 5089 840 5090 5080 880
7980 CONVEX 2313 GT_PK(2,2) 879 5091 839 5092 2521 878
7981 CONVEX 2314 GT_PK(2,2) 879 5089 840 5091 4656 839
7982 CONVEX 2315 GT_PK(2,2) 959 5093 920 5094 5095 958
7983 CONVEX 2316 GT_PK(2,2) 961 5096 962 5097 4018 1000
7984 CONVEX 2317 GT_PK(2,2) 961 5098 999 5097 4661 1000
7985 CONVEX 2318 GT_PK(2,2) 961 5096 962 5099 4022 923
7986 CONVEX 2319 GT_PK(2,2) 998 5100 999 5101 4662 1037
7987 CONVEX 2320 GT_PK(2,2) 998 5102 1036 5101 4663 1037
7988 CONVEX 2321 GT_PK(2,2) 1224 5103 1225 5104 4669 1191
7989 CONVEX 2322 GT_PK(2,2) 1224 5104 1191 5105 4036 1190
7990 CONVEX 2323 GT_PK(2,2) 1257 5106 1288 5107 4687 1256
7991 CONVEX 2324 GT_PK(2,2) 1257 5108 1225 5109 4668 1258
7992 CONVEX 2325 GT_PK(2,2) 1257 5110 1289 5109 4696 1258
7993 CONVEX 2326 GT_PK(2,2) 1257 5106 1288 5110 4690 1289
7994 CONVEX 2327 GT_PK(2,2) 1257 5111 1224 5107 5112 1256
7995 CONVEX 2328 GT_PK(2,2) 1257 5111 1224 5108 5103 1225
7996 CONVEX 2329 GT_PK(2,2) 1227 5113 1228 5114 4706 1194
7997 CONVEX 2330 GT_PK(2,2) 1227 5113 1228 5115 4709 1260
7998 CONVEX 2331 GT_PK(2,2) 1227 5115 1260 5116 4050 1259
7999 CONVEX 2332 GT_PK(2,2) 1227 5117 1226 5116 4043 1259
8000 CONVEX 2333 GT_PK(2,2) 1227 5114 1194 5118 4366 1193
8001 CONVEX 2334 GT_PK(2,2) 1227 5117 1226 5118 4046 1193
8002 CONVEX 2335 GT_PK(2,2) 541 5119 503 5120 4098 542
8003 CONVEX 2336 GT_PK(2,2) 541 5119 503 5121 4744 502
8004 CONVEX 2337 GT_PK(2,2) 658 5122 698 5123 5124 697
8005 CONVEX 2338 GT_PK(2,2) 658 5125 619 5126 4725 659
8006 CONVEX 2339 GT_PK(2,2) 658 5122 698 5126 4733 659
8007 CONVEX 2340 GT_PK(2,2) 737 5127 698 5128 5124 697
8008 CONVEX 2341 GT_PK(2,2) 737 5128 697 5129 5130 736
8009 CONVEX 2342 GT_PK(2,2) 737 5131 776 5129 4943 736
8010 CONVEX 2343 GT_PK(2,2) 737 5131 776 5132 4735 777
8011 CONVEX 2344 GT_PK(2,2) 737 5132 777 5133 3323 738
8012 CONVEX 2345 GT_PK(2,2) 737 5127 698 5133 4732 738
8013 CONVEX 2346 GT_PK(2,2) 616 5134 615 5135 4928 655
8014 CONVEX 2347 GT_PK(2,2) 696 5136 697 5137 5130 736
8015 CONVEX 2348 GT_PK(2,2) 696 5138 735 5137 4945 736
8016 CONVEX 2349 GT_PK(2,2) 696 5139 695 5138 4495 735
8017 CONVEX 2350 GT_PK(2,2) 918 5140 957 5141 5142 956
8018 CONVEX 2351 GT_PK(2,2) 918 5143 917 5141 4755 956
8019 CONVEX 2352 GT_PK(2,2) 918 5143 917 5144 4752 878
8020 CONVEX 2353 GT_PK(2,2) 918 5145 879 5144 5092 878
8021 CONVEX 2354 GT_PK(2,2) 595 5146 635 5147 4789 634
8022 CONVEX 2355 GT_PK(2,2) 595 5148 555 5149 4770 556
8023 CONVEX 2356 GT_PK(2,2) 595 5150 596 5149 2530 556
8024 CONVEX 2357 GT_PK(2,2) 595 5146 635 5150 4181 596
8025 CONVEX 2358 GT_PK(2,2) 554 5151 555 5152 4771 515
8026 CONVEX 2359 GT_PK(2,2) 554 5153 593 5154 4187 553
8027 CONVEX 2360 GT_PK(2,2) 551 5155 550 5156 4178 511
8028 CONVEX 2361 GT_PK(2,2) 551 5157 512 5156 4777 511
8029 CONVEX 2362 GT_PK(2,2) 630 5158 631 5159 4783 670
8030 CONVEX 2363 GT_PK(2,2) 630 5160 669 5161 3393 629
8031 CONVEX 2364 GT_PK(2,2) 630 5160 669 5159 3394 670
8032 CONVEX 2365 GT_PK(2,2) 750 5162 790 5163 4823 751
8033 CONVEX 2366 GT_PK(2,2) 750 5164 711 5165 3381 710
8034 CONVEX 2367 GT_PK(2,2) 750 5163 751 5164 2587 711
8035 CONVEX 2368 GT_PK(2,2) 750 5162 790 5166 5167 789
8036 CONVEX 2369 GT_PK(2,2) 750 5168 749 5165 4191 710
8037 CONVEX 2370 GT_PK(2,2) 750 5166 789 5168 3441 749
8038 CONVEX 2371 GT_PK(2,2) 829 5169 869 5170 4821 830
8039 CONVEX 2372 GT_PK(2,2) 829 5171 790 5170 4825 830
8040 CONVEX 2373 GT_PK(2,2) 829 5169 869 5172 4835 868
8041 CONVEX 2374 GT_PK(2,2) 829 5171 790 5173 5167 789
8042 CONVEX 2375 GT_PK(2,2) 829 5174 828 5172 4218 868
8043 CONVEX 2376 GT_PK(2,2) 829 5174 828 5173 4220 789
8044 CONVEX 2377 GT_PK(2,2) 946 5175 908 5176 4832 907
8045 CONVEX 2378 GT_PK(2,2) 946 5177 984 5178 3455 945
8046 CONVEX 2379 GT_PK(2,2) 946 5176 907 5178 4232 945
8047 CONVEX 2380 GT_PK(2,2) 946 5175 908 5179 4836 947
8048 CONVEX 2381 GT_PK(2,2) 946 5177 984 5180 3454 985
8049 CONVEX 2382 GT_PK(2,2) 946 5179 947 5180 4228 985
8050 CONVEX 2383 GT_PK(2,2) 995 5181 957 5182 5142 956
8051 CONVEX 2384 GT_PK(2,2) 995 5183 994 5182 4251 956
8052 CONVEX 2385 GT_PK(2,2) 995 5183 994 5184 4248 1033
8053 CONVEX 2386 GT_PK(2,2) 995 5185 1034 5184 4845 1033
8054 CONVEX 2387 GT_PK(2,2) 1176 5186 1142 5187 4847 1141
8055 CONVEX 2388 GT_PK(2,2) 1176 5188 1209 5189 4853 1210
8056 CONVEX 2389 GT_PK(2,2) 1107 5190 1142 5191 4846 1106
8057 CONVEX 2390 GT_PK(2,2) 1107 5191 1106 5192 5193 1070
8058 CONVEX 2391 GT_PK(2,2) 1107 5194 1071 5192 4841 1070
8059 CONVEX 2392 GT_PK(2,2) 1107 5194 1071 5195 4843 1108
8060 CONVEX 2393 GT_PK(2,2) 1143 5196 1144 5197 3548 1178
8061 CONVEX 2394 GT_PK(2,2) 1143 5198 1107 5199 5190 1142
8062 CONVEX 2395 GT_PK(2,2) 1143 5196 1144 5200 4013 1108
8063 CONVEX 2396 GT_PK(2,2) 1143 5198 1107 5200 5195 1108
8064 CONVEX 2397 GT_PK(2,2) 1068 5201 1104 5202 4850 1067
8065 CONVEX 2398 GT_PK(2,2) 1068 5203 1030 5202 2613 1067
8066 CONVEX 2399 GT_PK(2,2) 1068 5204 1031 5203 3466 1030
8067 CONVEX 2400 GT_PK(2,2) 1358 5205 1357 5206 5207 1381
8068 CONVEX 2401 GT_PK(2,2) 1358 5208 1382 5206 4860 1381
8069 CONVEX 2402 GT_PK(2,2) 1358 5209 1332 5205 5210 1357
8070 CONVEX 2403 GT_PK(2,2) 1358 5209 1332 5211 4870 1333
8071 CONVEX 2404 GT_PK(2,2) 1359 5212 1333 5213 4281 1334
8072 CONVEX 2405 GT_PK(2,2) 1359 5214 1360 5213 2687 1334
8073 CONVEX 2406 GT_PK(2,2) 1359 5215 1358 5212 5211 1333
8074 CONVEX 2407 GT_PK(2,2) 1359 5215 1358 5216 5208 1382
8075 CONVEX 2408 GT_PK(2,2) 1359 5214 1360 5217 2683 1383
8076 CONVEX 2409 GT_PK(2,2) 1359 5216 1382 5217 4858 1383
8077 CONVEX 2410 GT_PK(2,2) 1355 5218 1379 5219 5220 1378
8078 CONVEX 2411 GT_PK(2,2) 1355 5218 1379 5221 5222 1356
8079 CONVEX 2412 GT_PK(2,2) 1399 5223 1377 5224 4871 1398
8080 CONVEX 2413 GT_PK(2,2) 1399 5225 1418 5226 5227 1378
8081 CONVEX 2414 GT_PK(2,2) 1399 5223 1377 5226 5228 1378
8082 CONVEX 2415 GT_PK(2,2) 1301 5229 1328 5230 5231 1329
8083 CONVEX 2416 GT_PK(2,2) 1301 5232 1302 5230 5233 1329
8084 CONVEX 2417 GT_PK(2,2) 1301 5234 1271 5235 2745 1272
8085 CONVEX 2418 GT_PK(2,2) 1301 5232 1302 5235 4877 1272
8086 CONVEX 2419 GT_PK(2,2) 1330 5236 1302 5237 5233 1329
8087 CONVEX 2420 GT_PK(2,2) 1330 5238 1355 5237 5239 1329
8088 CONVEX 2421 GT_PK(2,2) 1330 5238 1355 5240 5221 1356
8089 CONVEX 2422 GT_PK(2,2) 1330 5236 1302 5241 4876 1303
8090 CONVEX 2423 GT_PK(2,2) 1331 5242 1304 5243 3622 1303
8091 CONVEX 2424 GT_PK(2,2) 1331 5244 1330 5243 5241 1303
8092 CONVEX 2425 GT_PK(2,2) 1331 5244 1330 5245 5240 1356
8093 CONVEX 2426 GT_PK(2,2) 1331 5246 1332 5242 4869 1304
8094 CONVEX 2427 GT_PK(2,2) 1331 5246 1332 5247 5210 1357
8095 CONVEX 2428 GT_PK(2,2) 1331 5245 1356 5247 5248 1357
8096 CONVEX 2429 GT_PK(2,2) 1401 5249 1420 5250 4878 1402
8097 CONVEX 2430 GT_PK(2,2) 1401 5249 1420 5251 5252 1419
8098 CONVEX 2431 GT_PK(2,2) 1380 5253 1402 5254 4280 1381
8099 CONVEX 2432 GT_PK(2,2) 1380 5255 1357 5254 5207 1381
8100 CONVEX 2433 GT_PK(2,2) 1380 5256 1401 5253 5250 1402
8101 CONVEX 2434 GT_PK(2,2) 1380 5256 1401 5257 5258 1379
8102 CONVEX 2435 GT_PK(2,2) 1380 5259 1356 5255 5248 1357
8103 CONVEX 2436 GT_PK(2,2) 1380 5257 1379 5259 5222 1356
8104 CONVEX 2437 GT_PK(2,2) 1047 5260 1085 5261 4887 1048
8105 CONVEX 2438 GT_PK(2,2) 1047 5261 1048 5262 4883 1009
8106 CONVEX 2439 GT_PK(2,2) 1047 5263 1008 5262 2768 1009
8107 CONVEX 2440 GT_PK(2,2) 1047 5263 1008 5264 3672 1046
8108 CONVEX 2441 GT_PK(2,2) 1084 5265 1121 5266 4341 1120
8109 CONVEX 2442 GT_PK(2,2) 1084 5267 1085 5265 4886 1121
8110 CONVEX 2443 GT_PK(2,2) 1084 5266 1120 5268 4084 1083
8111 CONVEX 2444 GT_PK(2,2) 1084 5269 1047 5267 5260 1085
8112 CONVEX 2445 GT_PK(2,2) 1084 5268 1083 5270 2751 1046
8113 CONVEX 2446 GT_PK(2,2) 1084 5269 1047 5270 5264 1046
8114 CONVEX 2447 GT_PK(2,2) 205 5271 204 5272 4906 173
8115 CONVEX 2448 GT_PK(2,2) 205 5273 238 5274 5275 206
8116 CONVEX 2449 GT_PK(2,2) 239 5276 273 5277 4400 240
8117 CONVEX 2450 GT_PK(2,2) 239 5277 240 5278 4992 207
8118 CONVEX 2451 GT_PK(2,2) 239 5276 273 5279 4398 272
8119 CONVEX 2452 GT_PK(2,2) 239 5280 238 5279 4895 272
8120 CONVEX 2453 GT_PK(2,2) 239 5278 207 5281 5016 206
8121 CONVEX 2454 GT_PK(2,2) 239 5280 238 5281 5275 206
8122 CONVEX 2455 GT_PK(2,2) 237 5282 270 5283 5284 236
8123 CONVEX 2456 GT_PK(2,2) 237 5285 205 5286 5273 238
8124 CONVEX 2457 GT_PK(2,2) 237 5286 238 5287 4894 271
8125 CONVEX 2458 GT_PK(2,2) 237 5282 270 5287 4902 271
8126 CONVEX 2459 GT_PK(2,2) 237 5283 236 5288 4898 204
8127 CONVEX 2460 GT_PK(2,2) 237 5285 205 5288 5271 204
8128 CONVEX 2461 GT_PK(2,2) 269 5289 304 5290 2016 303
8129 CONVEX 2462 GT_PK(2,2) 269 5291 270 5289 4901 304
8130 CONVEX 2463 GT_PK(2,2) 269 5292 268 5290 2232 303
8131 CONVEX 2464 GT_PK(2,2) 269 5291 270 5293 5284 236
8132 CONVEX 2465 GT_PK(2,2) 269 5294 235 5292 2887 268
8133 CONVEX 2466 GT_PK(2,2) 269 5293 236 5294 4896 235
8134 CONVEX 2467 GT_PK(2,2) 171 5295 172 5296 4904 203
8135 CONVEX 2468 GT_PK(2,2) 171 5296 203 5297 2892 202
8136 CONVEX 2469 GT_PK(2,2) 171 5298 170 5297 3712 202
8137 CONVEX 2470 GT_PK(2,2) 171 5298 170 5299 3720 141
8138 CONVEX 2471 GT_PK(2,2) 115 5300 116 5301 3704 90
8139 CONVEX 2472 GT_PK(2,2) 115 5302 89 5301 2827 90
8140 CONVEX 2473 GT_PK(2,2) 115 5302 89 5303 2829 114
8141 CONVEX 2474 GT_PK(2,2) 143 5304 172 5305 4905 173
8142 CONVEX 2475 GT_PK(2,2) 143 5306 115 5307 5300 116
8143 CONVEX 2476 GT_PK(2,2) 850 5308 890 5309 4947 851
8144 CONVEX 2477 GT_PK(2,2) 850 5310 810 5311 4958 849
8145 CONVEX 2478 GT_PK(2,2) 850 5311 849 5312 4488 889
8146 CONVEX 2479 GT_PK(2,2) 850 5308 890 5312 4949 889
8147 CONVEX 2480 GT_PK(2,2) 811 5313 851 5314 4938 812
8148 CONVEX 2481 GT_PK(2,2) 811 5315 810 5316 4960 771
8149 CONVEX 2482 GT_PK(2,2) 811 5317 850 5313 5309 851
8150 CONVEX 2483 GT_PK(2,2) 811 5317 850 5315 5310 810
8151 CONVEX 2484 GT_PK(2,2) 811 5318 772 5316 4485 771
8152 CONVEX 2485 GT_PK(2,2) 811 5318 772 5314 4480 812
8153 CONVEX 2486 GT_PK(2,2) 513 5319 474 5320 4969 512
8154 CONVEX 2487 GT_PK(2,2) 513 5319 474 5321 4965 475
8155 CONVEX 2488 GT_PK(2,2) 119 5322 94 5323 5006 93
8156 CONVEX 2489 GT_PK(2,2) 119 5322 94 5324 5001 120
8157 CONVEX 2490 GT_PK(2,2) 145 5325 175 5326 5327 146
8158 CONVEX 2491 GT_PK(2,2) 176 5328 208 5329 4998 177
8159 CONVEX 2492 GT_PK(2,2) 176 5330 175 5331 5327 146
8160 CONVEX 2493 GT_PK(2,2) 176 5328 208 5332 4991 207
8161 CONVEX 2494 GT_PK(2,2) 176 5330 175 5332 5014 207
8162 CONVEX 2495 GT_PK(2,2) 407 5333 446 5334 4568 445
8163 CONVEX 2496 GT_PK(2,2) 407 5335 406 5334 5028 445
8164 CONVEX 2497 GT_PK(2,2) 297 5336 263 5337 4577 298
8165 CONVEX 2498 GT_PK(2,2) 297 5338 333 5337 5339 298
8166 CONVEX 2499 GT_PK(2,2) 369 5340 406 5341 5025 368
8167 CONVEX 2500 GT_PK(2,2) 369 5342 407 5340 5335 406
8168 CONVEX 2501 GT_PK(2,2) 336 5343 301 5344 5345 300
8169 CONVEX 2502 GT_PK(2,2) 335 5346 336 5347 5348 372
8170 CONVEX 2503 GT_PK(2,2) 335 5349 299 5350 5035 300
8171 CONVEX 2504 GT_PK(2,2) 335 5346 336 5350 5344 300
8172 CONVEX 2505 GT_PK(2,2) 266 5351 265 5352 5037 232
8173 CONVEX 2506 GT_PK(2,2) 266 5352 232 5353 3965 233
8174 CONVEX 2507 GT_PK(2,2) 266 5354 267 5353 4574 233
8175 CONVEX 2508 GT_PK(2,2) 266 5355 301 5354 5029 267
8176 CONVEX 2509 GT_PK(2,2) 266 5355 301 5356 5345 300
8177 CONVEX 2510 GT_PK(2,2) 266 5351 265 5356 5034 300
8178 CONVEX 2511 GT_PK(2,2) 229 5357 230 5358 5069 263
8179 CONVEX 2512 GT_PK(2,2) 229 5359 197 5360 4641 196
8180 CONVEX 2513 GT_PK(2,2) 229 5357 230 5359 5071 197
8181 CONVEX 2514 GT_PK(2,2) 450 5361 412 5362 5048 451
8182 CONVEX 2515 GT_PK(2,2) 450 5361 412 5363 5052 411
8183 CONVEX 2516 GT_PK(2,2) 450 5364 489 5362 2836 451
8184 CONVEX 2517 GT_PK(2,2) 450 5365 488 5364 3886 489
8185 CONVEX 2518 GT_PK(2,2) 448 5366 486 5367 4517 447
8186 CONVEX 2519 GT_PK(2,2) 448 5368 487 5366 4511 486
8187 CONVEX 2520 GT_PK(2,2) 921 5369 881 5370 5084 920
8188 CONVEX 2521 GT_PK(2,2) 921 5371 959 5370 5093 920
8189 CONVEX 2522 GT_PK(2,2) 960 5372 961 5373 5098 999
8190 CONVEX 2523 GT_PK(2,2) 960 5374 998 5373 5100 999
8191 CONVEX 2524 GT_PK(2,2) 960 5374 998 5375 5376 959
8192 CONVEX 2525 GT_PK(2,2) 960 5377 921 5375 5371 959
8193 CONVEX 2526 GT_PK(2,2) 997 5378 1036 5379 4666 1035
8194 CONVEX 2527 GT_PK(2,2) 997 5380 998 5378 5102 1036
8195 CONVEX 2528 GT_PK(2,2) 997 5381 959 5382 5094 958
8196 CONVEX 2529 GT_PK(2,2) 997 5380 998 5381 5376 959
8197 CONVEX 2530 GT_PK(2,2) 1223 5383 1255 5384 4677 1256
8198 CONVEX 2531 GT_PK(2,2) 1223 5385 1224 5384 5112 1256
8199 CONVEX 2532 GT_PK(2,2) 1223 5383 1255 5386 4679 1222
8200 CONVEX 2533 GT_PK(2,2) 1223 5385 1224 5387 5105 1190
8201 CONVEX 2534 GT_PK(2,2) 1223 5386 1222 5388 2309 1189
8202 CONVEX 2535 GT_PK(2,2) 1223 5387 1190 5388 3242 1189
8203 CONVEX 2536 GT_PK(2,2) 581 5389 541 5390 5120 542
8204 CONVEX 2537 GT_PK(2,2) 581 5391 620 5392 4721 621
8205 CONVEX 2538 GT_PK(2,2) 581 5390 542 5393 3282 582
8206 CONVEX 2539 GT_PK(2,2) 581 5392 621 5393 3304 582
8207 CONVEX 2540 GT_PK(2,2) 657 5394 658 5395 5123 697
8208 CONVEX 2541 GT_PK(2,2) 657 5396 696 5395 5136 697
8209 CONVEX 2542 GT_PK(2,2) 618 5397 658 5398 5125 619
8210 CONVEX 2543 GT_PK(2,2) 618 5399 657 5400 5401 617
8211 CONVEX 2544 GT_PK(2,2) 618 5399 657 5397 5394 658
8212 CONVEX 2545 GT_PK(2,2) 576 5402 616 5403 5134 615
8213 CONVEX 2546 GT_PK(2,2) 576 5404 536 5405 3776 575
8214 CONVEX 2547 GT_PK(2,2) 576 5403 615 5405 3854 575
8215 CONVEX 2548 GT_PK(2,2) 656 5406 616 5407 5408 617
8216 CONVEX 2549 GT_PK(2,2) 656 5409 657 5407 5401 617
8217 CONVEX 2550 GT_PK(2,2) 656 5409 657 5410 5396 696
8218 CONVEX 2551 GT_PK(2,2) 656 5410 696 5411 5139 695
8219 CONVEX 2552 GT_PK(2,2) 656 5411 695 5412 3849 655
8220 CONVEX 2553 GT_PK(2,2) 656 5406 616 5412 5135 655
8221 CONVEX 2554 GT_PK(2,2) 540 5413 541 5414 5121 502
8222 CONVEX 2555 GT_PK(2,2) 462 5415 461 5416 4719 423
8223 CONVEX 2556 GT_PK(2,2) 462 5417 424 5416 4922 423
8224 CONVEX 2557 GT_PK(2,2) 462 5417 424 5418 4923 463
8225 CONVEX 2558 GT_PK(2,2) 919 5419 957 5420 5421 958
8226 CONVEX 2559 GT_PK(2,2) 919 5422 918 5419 5140 957
8227 CONVEX 2560 GT_PK(2,2) 919 5423 920 5420 5095 958
8228 CONVEX 2561 GT_PK(2,2) 919 5423 920 5424 5086 880
8229 CONVEX 2562 GT_PK(2,2) 919 5425 879 5424 5090 880
8230 CONVEX 2563 GT_PK(2,2) 919 5422 918 5425 5145 879
8231 CONVEX 2564 GT_PK(2,2) 594 5426 633 5427 4800 593
8232 CONVEX 2565 GT_PK(2,2) 594 5428 554 5427 5153 593
8233 CONVEX 2566 GT_PK(2,2) 594 5426 633 5429 4798 634
8234 CONVEX 2567 GT_PK(2,2) 594 5428 554 5430 5151 555
8235 CONVEX 2568 GT_PK(2,2) 594 5431 595 5429 5147 634
8236 CONVEX 2569 GT_PK(2,2) 594 5431 595 5430 5148 555
8237 CONVEX 2570 GT_PK(2,2) 514 5432 476 5433 4772 475
8238 CONVEX 2571 GT_PK(2,2) 514 5434 554 5435 5154 553
8239 CONVEX 2572 GT_PK(2,2) 514 5432 476 5436 4774 515
8240 CONVEX 2573 GT_PK(2,2) 514 5434 554 5436 5152 515
8241 CONVEX 2574 GT_PK(2,2) 514 5437 513 5435 5438 553
8242 CONVEX 2575 GT_PK(2,2) 514 5437 513 5433 5321 475
8243 CONVEX 2576 GT_PK(2,2) 591 5439 631 5440 4782 592
8244 CONVEX 2577 GT_PK(2,2) 591 5441 630 5439 5158 631
8245 CONVEX 2578 GT_PK(2,2) 590 5442 630 5443 5161 629
8246 CONVEX 2579 GT_PK(2,2) 590 5444 589 5443 2028 629
8247 CONVEX 2580 GT_PK(2,2) 590 5445 550 5444 4176 589
8248 CONVEX 2581 GT_PK(2,2) 590 5446 591 5442 5441 630
8249 CONVEX 2582 GT_PK(2,2) 590 5447 551 5445 5155 550
8250 CONVEX 2583 GT_PK(2,2) 590 5446 591 5447 5448 551
8251 CONVEX 2584 GT_PK(2,2) 1177 5449 1176 5450 5186 1142
8252 CONVEX 2585 GT_PK(2,2) 1177 5451 1143 5452 5197 1178
8253 CONVEX 2586 GT_PK(2,2) 1177 5451 1143 5450 5199 1142
8254 CONVEX 2587 GT_PK(2,2) 1177 5452 1178 5453 2692 1211
8255 CONVEX 2588 GT_PK(2,2) 1177 5454 1210 5453 4268 1211
8256 CONVEX 2589 GT_PK(2,2) 1177 5449 1176 5454 5189 1210
8257 CONVEX 2590 GT_PK(2,2) 1175 5455 1176 5456 5188 1209
8258 CONVEX 2591 GT_PK(2,2) 1175 5457 1174 5458 3495 1208
8259 CONVEX 2592 GT_PK(2,2) 1175 5456 1209 5458 4856 1208
8260 CONVEX 2593 GT_PK(2,2) 1175 5457 1174 5459 3501 1140
8261 CONVEX 2594 GT_PK(2,2) 1175 5460 1141 5459 5461 1140
8262 CONVEX 2595 GT_PK(2,2) 1175 5455 1176 5460 5187 1141
8263 CONVEX 2596 GT_PK(2,2) 1105 5462 1068 5463 5201 1104
8264 CONVEX 2597 GT_PK(2,2) 1105 5464 1106 5465 4848 1141
8265 CONVEX 2598 GT_PK(2,2) 1105 5465 1141 5466 5461 1140
8266 CONVEX 2599 GT_PK(2,2) 1105 5463 1104 5466 4852 1140
8267 CONVEX 2600 GT_PK(2,2) 1069 5467 1106 5468 5193 1070
8268 CONVEX 2601 GT_PK(2,2) 1069 5469 1068 5470 5204 1031
8269 CONVEX 2602 GT_PK(2,2) 1069 5471 1105 5467 5464 1106
8270 CONVEX 2603 GT_PK(2,2) 1069 5471 1105 5469 5462 1068
8271 CONVEX 2604 GT_PK(2,2) 1069 5472 1032 5468 3465 1070
8272 CONVEX 2605 GT_PK(2,2) 1069 5470 1031 5472 3470 1032
8273 CONVEX 2606 GT_PK(2,2) 1354 5473 1377 5474 4872 1353
8274 CONVEX 2607 GT_PK(2,2) 1354 5475 1328 5474 4873 1353
8275 CONVEX 2608 GT_PK(2,2) 1354 5473 1377 5476 5228 1378
8276 CONVEX 2609 GT_PK(2,2) 1354 5477 1355 5476 5219 1378
8277 CONVEX 2610 GT_PK(2,2) 1354 5475 1328 5478 5231 1329
8278 CONVEX 2611 GT_PK(2,2) 1354 5477 1355 5478 5239 1329
8279 CONVEX 2612 GT_PK(2,2) 1300 5479 1328 5480 4874 1327
8280 CONVEX 2613 GT_PK(2,2) 1300 5481 1301 5479 5229 1328
8281 CONVEX 2614 GT_PK(2,2) 1300 5482 1299 5483 2725 1270
8282 CONVEX 2615 GT_PK(2,2) 1300 5482 1299 5480 3575 1327
8283 CONVEX 2616 GT_PK(2,2) 1300 5484 1271 5483 3614 1270
8284 CONVEX 2617 GT_PK(2,2) 1300 5481 1301 5484 5234 1271
8285 CONVEX 2618 GT_PK(2,2) 1400 5485 1401 5486 5258 1379
8286 CONVEX 2619 GT_PK(2,2) 1400 5487 1418 5488 5227 1378
8287 CONVEX 2620 GT_PK(2,2) 1400 5486 1379 5488 5220 1378
8288 CONVEX 2621 GT_PK(2,2) 1400 5489 1419 5487 5490 1418
8289 CONVEX 2622 GT_PK(2,2) 1400 5485 1401 5489 5251 1419
8290 CONVEX 2623 GT_PK(2,2) 174 5491 205 5492 5272 173
8291 CONVEX 2624 GT_PK(2,2) 174 5493 145 5494 5325 175
8292 CONVEX 2625 GT_PK(2,2) 174 5494 175 5495 5015 206
8293 CONVEX 2626 GT_PK(2,2) 174 5491 205 5495 5274 206
8294 CONVEX 2627 GT_PK(2,2) 142 5496 171 5497 5295 172
8295 CONVEX 2628 GT_PK(2,2) 142 5498 143 5497 5304 172
8296 CONVEX 2629 GT_PK(2,2) 142 5496 171 5499 5299 141
8297 CONVEX 2630 GT_PK(2,2) 142 5498 143 5500 5306 115
8298 CONVEX 2631 GT_PK(2,2) 142 5499 141 5501 3113 114
8299 CONVEX 2632 GT_PK(2,2) 142 5500 115 5501 5303 114
8300 CONVEX 2633 GT_PK(2,2) 552 5502 513 5503 5320 512
8301 CONVEX 2634 GT_PK(2,2) 552 5504 551 5503 5157 512
8302 CONVEX 2635 GT_PK(2,2) 552 5505 592 5506 4188 553
8303 CONVEX 2636 GT_PK(2,2) 552 5502 513 5506 5438 553
8304 CONVEX 2637 GT_PK(2,2) 552 5507 591 5505 5440 592
8305 CONVEX 2638 GT_PK(2,2) 552 5507 591 5504 5448 551
8306 CONVEX 2639 GT_PK(2,2) 144 5508 143 5509 5305 173
8307 CONVEX 2640 GT_PK(2,2) 144 5510 174 5509 5492 173
8308 CONVEX 2641 GT_PK(2,2) 144 5510 174 5511 5493 145
8309 CONVEX 2642 GT_PK(2,2) 144 5508 143 5512 5307 116
8310 CONVEX 2643 GT_PK(2,2) 118 5513 119 5514 5515 146
8311 CONVEX 2644 GT_PK(2,2) 118 5516 145 5514 5326 146
8312 CONVEX 2645 GT_PK(2,2) 118 5513 119 5517 5323 93
8313 CONVEX 2646 GT_PK(2,2) 118 5517 93 5518 3937 92
8314 CONVEX 2647 GT_PK(2,2) 147 5519 176 5520 5329 177
8315 CONVEX 2648 GT_PK(2,2) 147 5521 148 5522 4988 120
8316 CONVEX 2649 GT_PK(2,2) 147 5521 148 5520 4983 177
8317 CONVEX 2650 GT_PK(2,2) 147 5519 176 5523 5331 146
8318 CONVEX 2651 GT_PK(2,2) 147 5524 119 5522 5324 120
8319 CONVEX 2652 GT_PK(2,2) 147 5524 119 5523 5515 146
8320 CONVEX 2653 GT_PK(2,2) 408 5525 446 5526 4570 447
8321 CONVEX 2654 GT_PK(2,2) 408 5527 407 5525 5333 446
8322 CONVEX 2655 GT_PK(2,2) 332 5528 297 5529 5338 333
8323 CONVEX 2656 GT_PK(2,2) 332 5530 368 5531 4566 331
8324 CONVEX 2657 GT_PK(2,2) 332 5532 369 5530 5341 368
8325 CONVEX 2658 GT_PK(2,2) 332 5532 369 5529 5533 333
8326 CONVEX 2659 GT_PK(2,2) 262 5534 297 5535 5336 263
8327 CONVEX 2660 GT_PK(2,2) 262 5536 229 5535 5358 263
8328 CONVEX 2661 GT_PK(2,2) 373 5537 336 5538 5348 372
8329 CONVEX 2662 GT_PK(2,2) 373 5539 410 5538 5540 372
8330 CONVEX 2663 GT_PK(2,2) 373 5541 411 5542 5053 374
8331 CONVEX 2664 GT_PK(2,2) 373 5539 410 5541 5543 411
8332 CONVEX 2665 GT_PK(2,2) 228 5544 261 5545 5044 227
8333 CONVEX 2666 GT_PK(2,2) 228 5546 229 5547 5360 196
8334 CONVEX 2667 GT_PK(2,2) 228 5548 262 5544 5549 261
8335 CONVEX 2668 GT_PK(2,2) 228 5548 262 5546 5536 229
8336 CONVEX 2669 GT_PK(2,2) 228 5550 195 5547 3960 196
8337 CONVEX 2670 GT_PK(2,2) 228 5545 227 5550 4596 195
8338 CONVEX 2671 GT_PK(2,2) 449 5551 448 5552 5368 487
8339 CONVEX 2672 GT_PK(2,2) 449 5552 487 5553 4510 488
8340 CONVEX 2673 GT_PK(2,2) 449 5554 450 5553 5365 488
8341 CONVEX 2674 GT_PK(2,2) 449 5554 450 5555 5363 411
8342 CONVEX 2675 GT_PK(2,2) 449 5556 410 5555 5543 411
8343 CONVEX 2676 GT_PK(2,2) 449 5551 448 5556 5557 410
8344 CONVEX 2677 GT_PK(2,2) 882 5558 921 5559 5369 881
8345 CONVEX 2678 GT_PK(2,2) 882 5560 843 5561 3800 883
8346 CONVEX 2679 GT_PK(2,2) 882 5562 842 5560 4659 843
8347 CONVEX 2680 GT_PK(2,2) 882 5559 881 5562 5088 842
8348 CONVEX 2681 GT_PK(2,2) 922 5563 960 5564 5377 921
8349 CONVEX 2682 GT_PK(2,2) 922 5565 883 5566 3797 923
8350 CONVEX 2683 GT_PK(2,2) 922 5567 961 5566 5099 923
8351 CONVEX 2684 GT_PK(2,2) 922 5563 960 5567 5372 961
8352 CONVEX 2685 GT_PK(2,2) 922 5568 882 5565 5561 883
8353 CONVEX 2686 GT_PK(2,2) 922 5568 882 5564 5558 921
8354 CONVEX 2687 GT_PK(2,2) 996 5569 995 5570 5181 957
8355 CONVEX 2688 GT_PK(2,2) 996 5570 957 5571 5421 958
8356 CONVEX 2689 GT_PK(2,2) 996 5572 997 5571 5382 958
8357 CONVEX 2690 GT_PK(2,2) 996 5572 997 5573 5379 1035
8358 CONVEX 2691 GT_PK(2,2) 996 5574 1034 5573 4839 1035
8359 CONVEX 2692 GT_PK(2,2) 996 5569 995 5574 5185 1034
8360 CONVEX 2693 GT_PK(2,2) 578 5575 618 5576 5400 617
8361 CONVEX 2694 GT_PK(2,2) 578 5577 538 5578 5579 539
8362 CONVEX 2695 GT_PK(2,2) 580 5580 540 5581 5413 541
8363 CONVEX 2696 GT_PK(2,2) 580 5582 620 5583 4724 619
8364 CONVEX 2697 GT_PK(2,2) 580 5584 581 5582 5391 620
8365 CONVEX 2698 GT_PK(2,2) 580 5584 581 5581 5389 541
8366 CONVEX 2699 GT_PK(2,2) 579 5585 540 5586 5587 539
8367 CONVEX 2700 GT_PK(2,2) 579 5588 578 5586 5578 539
8368 CONVEX 2701 GT_PK(2,2) 579 5588 578 5589 5575 618
8369 CONVEX 2702 GT_PK(2,2) 579 5589 618 5590 5398 619
8370 CONVEX 2703 GT_PK(2,2) 579 5591 580 5590 5583 619
8371 CONVEX 2704 GT_PK(2,2) 579 5591 580 5585 5580 540
8372 CONVEX 2705 GT_PK(2,2) 501 5592 540 5593 5587 539
8373 CONVEX 2706 GT_PK(2,2) 501 5594 462 5595 5418 463
8374 CONVEX 2707 GT_PK(2,2) 501 5595 463 5596 4741 502
8375 CONVEX 2708 GT_PK(2,2) 501 5592 540 5596 5414 502
8376 CONVEX 2709 GT_PK(2,2) 577 5597 576 5598 5402 616
8377 CONVEX 2710 GT_PK(2,2) 577 5598 616 5599 5408 617
8378 CONVEX 2711 GT_PK(2,2) 577 5600 578 5599 5576 617
8379 CONVEX 2712 GT_PK(2,2) 577 5600 578 5601 5577 538
8380 CONVEX 2713 GT_PK(2,2) 500 5602 462 5603 5415 461
8381 CONVEX 2714 GT_PK(2,2) 500 5604 538 5605 5579 539
8382 CONVEX 2715 GT_PK(2,2) 500 5606 501 5605 5593 539
8383 CONVEX 2716 GT_PK(2,2) 500 5606 501 5602 5594 462
8384 CONVEX 2717 GT_PK(2,2) 500 5603 461 5607 4718 499
8385 CONVEX 2718 GT_PK(2,2) 500 5604 538 5607 5608 499
8386 CONVEX 2719 GT_PK(2,2) 117 5609 118 5610 5518 92
8387 CONVEX 2720 GT_PK(2,2) 117 5611 144 5612 5512 116
8388 CONVEX 2721 GT_PK(2,2) 117 5611 144 5613 5511 145
8389 CONVEX 2722 GT_PK(2,2) 117 5609 118 5613 5516 145
8390 CONVEX 2723 GT_PK(2,2) 117 5614 91 5610 4911 92
8391 CONVEX 2724 GT_PK(2,2) 117 5612 116 5614 3703 91
8392 CONVEX 2725 GT_PK(2,2) 409 5615 410 5616 5540 372
8393 CONVEX 2726 GT_PK(2,2) 409 5617 408 5618 5526 447
8394 CONVEX 2727 GT_PK(2,2) 409 5619 448 5618 5367 447
8395 CONVEX 2728 GT_PK(2,2) 409 5619 448 5615 5557 410
8396 CONVEX 2729 GT_PK(2,2) 371 5620 335 5621 5347 372
8397 CONVEX 2730 GT_PK(2,2) 371 5622 409 5621 5616 372
8398 CONVEX 2731 GT_PK(2,2) 371 5622 409 5623 5617 408
8399 CONVEX 2732 GT_PK(2,2) 296 5624 262 5625 5534 297
8400 CONVEX 2733 GT_PK(2,2) 296 5626 331 5627 3954 295
8401 CONVEX 2734 GT_PK(2,2) 296 5628 261 5627 5047 295
8402 CONVEX 2735 GT_PK(2,2) 296 5624 262 5628 5549 261
8403 CONVEX 2736 GT_PK(2,2) 296 5629 332 5626 5531 331
8404 CONVEX 2737 GT_PK(2,2) 296 5629 332 5625 5528 297
8405 CONVEX 2738 GT_PK(2,2) 337 5630 373 5631 5537 336
8406 CONVEX 2739 GT_PK(2,2) 337 5631 336 5632 5343 301
8407 CONVEX 2740 GT_PK(2,2) 337 5633 374 5634 4602 338
8408 CONVEX 2741 GT_PK(2,2) 337 5630 373 5633 5542 374
8409 CONVEX 2742 GT_PK(2,2) 337 5634 338 5635 3095 302
8410 CONVEX 2743 GT_PK(2,2) 337 5632 301 5635 5030 302
8411 CONVEX 2744 GT_PK(2,2) 537 5636 577 5637 5597 576
8412 CONVEX 2745 GT_PK(2,2) 537 5638 536 5639 2990 498
8413 CONVEX 2746 GT_PK(2,2) 537 5637 576 5638 5404 536
8414 CONVEX 2747 GT_PK(2,2) 537 5640 499 5639 4100 498
8415 CONVEX 2748 GT_PK(2,2) 537 5641 538 5640 5608 499
8416 CONVEX 2749 GT_PK(2,2) 537 5636 577 5641 5601 538
8417 CONVEX 2750 GT_PK(2,2) 334 5642 371 5643 5620 335
8418 CONVEX 2751 GT_PK(2,2) 334 5643 335 5644 5349 299
8419 CONVEX 2752 GT_PK(2,2) 334 5645 333 5646 5339 298
8420 CONVEX 2753 GT_PK(2,2) 334 5644 299 5646 5032 298
8421 CONVEX 2754 GT_PK(2,2) 370 5647 408 5648 5527 407
8422 CONVEX 2755 GT_PK(2,2) 370 5649 371 5647 5623 408
8423 CONVEX 2756 GT_PK(2,2) 370 5650 369 5648 5342 407
8424 CONVEX 2757 GT_PK(2,2) 370 5651 334 5649 5642 371
8425 CONVEX 2758 GT_PK(2,2) 370 5650 369 5652 5533 333
8426 CONVEX 2759 GT_PK(2,2) 370 5651 334 5652 5645 333
8427
8428 END MESH STRUCTURE DESCRIPTION
+0
-8429
interface/src/scilab/demos/data/disc_P2_h1.mesh less more
0 % GETFEM MESH FILE
1 % GETFEM VERSION 1.7-20040316
2
3
4
5 BEGIN POINTS LIST
6
7 POINT 0 0 0
8 POINT 1 0 20
9 POINT 2 -20 20
10 POINT 3 20 20
11 POINT 4 0 40
12 POINT 5 -5.494590158705203 0.769568933904214
13 POINT 6 -4.555054354703293 0.5256199116454576
14 POINT 7 -3.62510614201392 0.3312784996295808
15 POINT 8 -2.686413338358856 0.1812416288131739
16 POINT 9 -1.753728402849995 0.077037451999329
17 POINT 10 -0.851420720971519 0.01813114404021269
18 POINT 11 0.8514160122311216 0.01813095400480157
19 POINT 12 1.753719324465416 0.07703666291032139
20 POINT 13 2.686401050802698 0.181239963250821
21 POINT 14 3.625091324513498 0.3312757686489166
22 POINT 15 4.555037637659274 0.5256160015391538
23 POINT 16 5.494572548479121 0.7695639022537971
24 POINT 17 -8.14748720023632 1.73477478041978
25 POINT 18 -7.204326158760607 1.342623855477397
26 POINT 19 -6.323306730319925 1.025917887963812
27 POINT 20 -5.012043637681486 1.487026562234344
28 POINT 21 -4.001504680231534 1.348769869720156
29 POINT 22 -3.020446348008669 1.193123454693629
30 POINT 23 -2.033096162687354 1.074468404199018
31 POINT 24 -1.029250259109854 0.9952937048620419
32 POINT 25 -4.743693576426955e-06 0.9550846747893821
33 POINT 26 1.029241591782402 0.9952938914888843
34 POINT 27 2.033087778001799 1.074468514560464
35 POINT 28 3.020437785114206 1.193122951441658
36 POINT 29 4.001495610537607 1.348768371554737
37 POINT 30 5.012033480242295 1.487023534523747
38 POINT 31 6.323291483458299 1.025912806798219
39 POINT 32 7.20431240676467 1.342618545311957
40 POINT 33 8.147472348609107 1.734768155628285
41 POINT 34 -9.874839229995656 2.607830779866931
42 POINT 35 -8.967401898964656 2.123039878590955
43 POINT 36 -7.43893966884391 2.316523461127632
44 POINT 37 -6.505937339794322 2.123067897852342
45 POINT 38 -5.617471023440036 2.128732087831175
46 POINT 39 -4.504938941140685 2.292372023343256
47 POINT 40 -3.474895393652287 2.188889537474249
48 POINT 41 -2.477789827740728 2.069417744488129
49 POINT 42 -1.486533939627704 1.978390111577929
50 POINT 43 -0.4945351927920381 1.920788208193323
51 POINT 44 0.494530028654747 1.920788180673721
52 POINT 45 1.48652903784696 1.978390363793194
53 POINT 46 2.477785286357576 2.069417875067633
54 POINT 47 3.474891314117997 2.188889007881329
55 POINT 48 4.504935616060729 2.292369967247126
56 POINT 49 5.617468616717059 2.128722558769742
57 POINT 50 6.505934206344425 2.123064219351945
58 POINT 51 7.438934955645484 2.316522386860346
59 POINT 52 8.967386714216421 2.123032261658711
60 POINT 53 9.874824441340188 2.607822383246229
61 POINT 54 -11.51772618471706 3.649404184131703
62 POINT 55 -10.65697220336667 3.075788247109521
63 POINT 56 -9.073837487095867 3.098945367911463
64 POINT 57 -8.146481814508759 2.93463496665957
65 POINT 58 -7.049600453276345 3.146247627644996
66 POINT 59 -6.068284496299216 3.100104651100007
67 POINT 60 -5.072988891537222 3.091827459666651
68 POINT 61 -3.993877927928949 3.131132225510109
69 POINT 62 -2.967955349130637 3.051608081751008
70 POINT 63 -1.969358890547338 2.964205195218535
71 POINT 64 -0.9811566490131486 2.90071553814206
72 POINT 65 -1.32163243384692e-06 2.877135624667564
73 POINT 66 0.9811540073798326 2.900715668778548
74 POINT 67 1.969356448130425 2.964205359405151
75 POINT 68 2.967953292680015 3.051607771536507
76 POINT 69 3.993876536191101 3.131130560601491
77 POINT 70 5.07298836313739 3.09182201424316
78 POINT 71 6.06828189330052 3.10009883043144
79 POINT 72 7.049596028910742 3.146246238867447
80 POINT 73 8.146475803362755 2.934633378296194
81 POINT 74 9.073829870567886 3.098941319319342
82 POINT 75 10.65695825761416 3.075779465645408
83 POINT 76 11.51771371828971 3.649395402508161
84 POINT 77 -12.25874124373426 4.197365310835768
85 POINT 78 -10.64940593588828 4.039054822049597
86 POINT 79 -9.738991551137142 3.788828249782045
87 POINT 80 -8.645496432574655 3.944646023442154
88 POINT 81 -7.660083249538626 3.927642758322452
89 POINT 82 -6.59386271210862 4.037468940686985
90 POINT 83 -5.568600019856155 4.018665115993096
91 POINT 84 -4.542276038525629 3.999836078704063
92 POINT 85 -3.491369657240189 3.994992924822852
93 POINT 86 -2.474009349355216 3.935011777572696
94 POINT 87 -1.477288819485819 3.874958764735967
95 POINT 88 -0.4912058119350093 3.84024391890156
96 POINT 89 0.4912045861343114 3.840244004832297
97 POINT 90 1.477287661196852 3.874958892229309
98 POINT 91 2.474008420090503 3.935011605232642
99 POINT 92 3.491369140152303 3.994991746916046
100 POINT 93 4.542275958327673 3.999832734657181
101 POINT 94 5.568598961382722 4.018661009084565
102 POINT 95 6.593859756639968 4.037466906689763
103 POINT 96 7.660079741658018 3.927642484330992
104 POINT 97 8.64549214777098 3.944645135772696
105 POINT 98 9.738984400934594 3.788824210856252
106 POINT 99 10.64939834126311 4.039049114973768
107 POINT 100 12.25873013918693 4.197356696596919
108 POINT 101 -13.06808399305144 4.859815696281542
109 POINT 102 -12.14172415206427 5.120456490850303
110 POINT 103 -11.26850058845588 4.78253504757261
111 POINT 104 -10.17404214944296 4.845047406793981
112 POINT 105 -9.208059651222554 4.766866668801151
113 POINT 106 -8.164339019401956 4.857476344060355
114 POINT 107 -7.149967162775942 4.875867152053067
115 POINT 108 -6.093958019589567 4.926093683238227
116 POINT 109 -5.058077545048842 4.913790131101954
117 POINT 110 -4.028039828119854 4.894648028971938
118 POINT 111 -2.995365612046738 4.876648223313875
119 POINT 112 -1.984673486096534 4.833837916766388
120 POINT 113 -0.9889438049108867 4.797769562520688
121 POINT 114 -2.362747113168751e-07 4.784386125986646
122 POINT 115 0.9889433725237518 4.797769655939185
123 POINT 116 1.984673180431574 4.833837841092998
124 POINT 117 2.995365534870316 4.876647488912344
125 POINT 118 4.028039920473764 4.894645987409467
126 POINT 119 5.05807704187145 4.913787423329794
127 POINT 120 6.09395626231969 4.926092028666856
128 POINT 121 7.149964792987238 4.875866809291987
129 POINT 122 8.164336682555421 4.857476643496101
130 POINT 123 9.208056699547432 4.766865857979807
131 POINT 124 10.17403815454237 4.845044126893953
132 POINT 125 11.26849448251217 4.782529900161253
133 POINT 126 12.14171794981946 5.120450644819872
134 POINT 127 13.06807455950774 4.859807553827244
135 POINT 128 -13.79621135610305 5.520201927590952
136 POINT 129 -12.80117439670994 5.856589459482491
137 POINT 130 -11.67938537881067 5.871675730352508
138 POINT 131 -10.7214199084595 5.705740655756915
139 POINT 132 -9.682832193302595 5.735754340027762
140 POINT 133 -8.688206795148123 5.723107658281122
141 POINT 134 -7.655630079002389 5.775975918064022
142 POINT 135 -6.627659763072258 5.792669306732381
143 POINT 136 -5.582314228446745 5.814411012773447
144 POINT 137 -4.548885425945512 5.805126115268295
145 POINT 138 -3.522722077771634 5.788884500830754
146 POINT 139 -2.501187311366817 5.770380462326169
147 POINT 140 -1.494394371192296 5.742942846788264
148 POINT 141 -0.4971264884626344 5.724801584483487
149 POINT 142 0.4971264114179549 5.724801616093884
150 POINT 143 1.494394375253193 5.742942820679326
151 POINT 144 2.501187449167741 5.770380046330405
152 POINT 145 3.522722282985142 5.788883304381674
153 POINT 146 4.548885254065114 5.80512440450948
154 POINT 147 5.582313237121974 5.814409778421799
155 POINT 148 6.627658274246912 5.792668907910858
156 POINT 149 7.655628672903336 5.775976131426517
157 POINT 150 8.688205683983837 5.723107897941759
158 POINT 151 9.682831053695072 5.735753339275631
159 POINT 152 10.72141774219851 5.705737949417665
160 POINT 153 11.67938249802985 5.871671763668828
161 POINT 154 12.80116985277255 5.856584114327579
162 POINT 155 13.79620361018442 5.52019455095268
163 POINT 156 -15.07551414433484 6.857364294633759
164 POINT 157 -14.47383155813855 6.197529205731446
165 POINT 158 -13.45485475009742 6.553837837714978
166 POINT 159 -12.31042185688016 6.683440243020864
167 POINT 160 -11.21350161895065 6.69819718995942
168 POINT 161 -10.20833342071787 6.628047644175917
169 POINT 162 -9.180105769142591 6.64834742192738
170 POINT 163 -8.167115514052471 6.65576641169878
171 POINT 164 -7.135706515094646 6.685162961807312
172 POINT 165 -6.105345078296335 6.696209760357505
173 POINT 166 -5.069576645378604 6.705314119570696
174 POINT 167 -4.041800732917723 6.698207423904568
175 POINT 168 -3.020761532842517 6.685782557740071
176 POINT 169 -2.005808074374162 6.671737301319939
177 POINT 170 -1.000288933333046 6.656398725132026
178 POINT 171 4.397573777348285e-08 6.650034053590167
179 POINT 172 1.000289057350326 6.656398701633271
180 POINT 173 2.005808282761941 6.671737074424545
181 POINT 174 3.020761779503171 6.685781881995771
182 POINT 175 4.041800760087482 6.698206389869481
183 POINT 176 5.069576162857779 6.705313264812579
184 POINT 177 6.10534421344702 6.69620937563182
185 POINT 178 7.135705654446768 6.685162970448084
186 POINT 179 8.167114943754402 6.655766632853415
187 POINT 180 9.180105544149159 6.648347310133159
188 POINT 181 10.20833306114628 6.628046599517105
189 POINT 182 11.21350079915651 6.698194920239427
190 POINT 183 12.31041989729133 6.683437342390677
191 POINT 184 13.45485102688512 6.553833543240082
192 POINT 185 14.47382501191121 6.197522339217816
193 POINT 186 15.07550853647004 6.85735785101832
194 POINT 187 -15.74070185460795 7.661835423193954
195 POINT 188 -14.74687538651157 7.702960989661571
196 POINT 189 -13.93188920478376 7.345232089754496
197 POINT 190 -12.86506131544698 7.471088086950771
198 POINT 191 -11.77211701495691 7.547677194388092
199 POINT 192 -10.70587046671523 7.565284924165475
200 POINT 193 -9.687660424643854 7.54461386330666
201 POINT 194 -8.662563218479574 7.560951116274378
202 POINT 195 -7.642034647994548 7.571360794157137
203 POINT 196 -6.613518858753616 7.588082984279957
204 POINT 197 -5.586073186048593 7.595112879441636
205 POINT 198 -4.558140690092682 7.598809924577656
206 POINT 199 -3.535939593111036 7.59366155618144
207 POINT 200 -2.519295513626756 7.585207729094968
208 POINT 201 -1.507828110570193 7.576464832977407
209 POINT 202 -0.5019148548267611 7.569504441473947
210 POINT 203 0.5019150140751154 7.569504419051911
211 POINT 204 1.507828313373964 7.576464701318211
212 POINT 205 2.51929574421762 7.58520735259712
213 POINT 206 3.535939709005314 7.593660949468794
214 POINT 207 4.558140510818687 7.598809363042038
215 POINT 208 5.58607274341326 7.595112562629756
216 POINT 209 6.613518369190103 7.588082887213245
217 POINT 210 7.642034309561478 7.571360854887308
218 POINT 211 8.662563167404116 7.560951138691602
219 POINT 212 9.687660573872202 7.54461354186692
220 POINT 213 10.70587058429081 7.565283863779716
221 POINT 214 11.77211666522259 7.547675581264719
222 POINT 215 12.8650605916635 7.471085619230291
223 POINT 216 13.93188849368163 7.345227696048455
224 POINT 217 14.74687398655421 7.702958601368711
225 POINT 218 15.74069772046266 7.661830148963676
226 POINT 219 -16.34008243157374 8.467363435476578
227 POINT 220 -15.28567534644808 8.552905620836993
228 POINT 221 -14.22089501094071 8.468579625245626
229 POINT 222 -13.29774920244363 8.333212052076258
230 POINT 223 -12.27300453476784 8.396001904827241
231 POINT 224 -11.224449672806 8.44025834990769
232 POINT 225 -10.1842020715159 8.457472361197105
233 POINT 226 -9.163914101356678 8.456332255719779
234 POINT 227 -8.14059852678059 8.468750713098206
235 POINT 228 -7.118690004259524 8.477698841262107
236 POINT 229 -6.093911741800466 8.487745637900247
237 POINT 230 -5.070537359203934 8.492297494254309
238 POINT 231 -4.048497389531928 8.493845716618845
239 POINT 232 -3.030710235690668 8.490541970764172
240 POINT 233 -2.017113078017005 8.485534154569866
241 POINT 234 -1.007152862458606 8.481122761690685
242 POINT 235 8.070285670638833e-08 8.479054147646179
243 POINT 236 1.007153037203349 8.481122683637645
244 POINT 237 2.017113267583667 8.485533940823723
245 POINT 238 3.030710370157321 8.490541618084078
246 POINT 239 4.048497363984429 8.493845358028667
247 POINT 240 5.070537168629906 8.49229725406053
248 POINT 241 6.093911495339211 8.487745514844656
249 POINT 242 7.11868981343622 8.477698810261961
250 POINT 243 8.140598491031323 8.468750699179775
251 POINT 244 9.163914246108916 8.456332131143173
252 POINT 245 10.18420232498191 8.457471896486332
253 POINT 246 11.22444978036375 8.440257512134613
254 POINT 247 12.27300442131762 8.396000443618357
255 POINT 248 13.29774885774807 8.333209357606099
256 POINT 249 14.22089386884885 8.468576880391957
257 POINT 250 15.28567398016187 8.552903295969026
258 POINT 251 16.34007933974851 8.46735905480778
259 POINT 252 -16.89879506132182 9.30277019619324
260 POINT 253 -15.84083890009481 9.368103783320413
261 POINT 254 -14.75936630448394 9.376434710940254
262 POINT 255 -13.72667446491556 9.338668036765469
263 POINT 256 -12.7458829592818 9.286293637722791
264 POINT 257 -11.72514144039831 9.317880286978371
265 POINT 258 -10.69307226518711 9.344364735918155
266 POINT 259 -9.663652464211705 9.358107425253532
267 POINT 260 -8.642457994516798 9.362656816289235
268 POINT 261 -7.620361904257799 9.371754129812164
269 POINT 262 -6.599324604837983 9.378698501517102
270 POINT 263 -5.577936443480438 9.385133261260403
271 POINT 264 -4.558210845970175 9.388247898190615
272 POINT 265 -3.540361900824579 9.389121481751587
273 POINT 266 -2.52566238019628 9.387374370414491
274 POINT 267 -1.513887157671833 9.384925984750414
275 POINT 268 -0.504297186178584 9.383298051709803
276 POINT 269 0.5042973320602566 9.383298015668299
277 POINT 270 1.51388730668141 9.384925862954564
278 POINT 271 2.525662501619651 9.387374163645836
279 POINT 272 3.540361939509808 9.389121254735599
280 POINT 273 4.558210789027288 9.388247723190803
281 POINT 274 5.577936342341931 9.385133146588913
282 POINT 275 6.599324518449944 9.378698438465905
283 POINT 276 7.62036189183867 9.371754085979447
284 POINT 277 8.642458092973191 9.362656736309578
285 POINT 278 9.663652671231812 9.358107201585797
286 POINT 279 10.6930724783395 9.344364317591429
287 POINT 280 11.72514158518201 9.31787949717938
288 POINT 281 12.74588295478644 9.286292109076781
289 POINT 282 13.72667400654556 9.338666111495892
290 POINT 283 14.75936532452434 9.376432764986804
291 POINT 284 15.84083766707554 9.368101537096484
292 POINT 285 16.8987927411374 9.302766530916411
293 POINT 286 -17.41541814741128 10.16622093237684
294 POINT 287 -16.36597467943507 10.20674001010058
295 POINT 288 -15.30570510771474 10.23673169382489
296 POINT 289 -14.25334124093768 10.24705991000825
297 POINT 290 -13.22518371810642 10.23169262743967
298 POINT 291 -12.21928286812764 10.21375315134102
299 POINT 292 -11.19741423399891 10.23174369517853
300 POINT 293 -10.17050417537597 10.2482576748095
301 POINT 294 -9.145044199699443 10.25842856407609
302 POINT 295 -8.123750354518931 10.26388718261748
303 POINT 296 -7.10298550942124 10.2706284602633
304 POINT 297 -6.083575083515306 10.2759394046698
305 POINT 298 -5.065015567249327 10.28034882788564
306 POINT 299 -4.048200146803218 10.28265723277545
307 POINT 300 -3.033238075903394 10.28342728339184
308 POINT 301 -2.02054894726801 10.28280355683485
309 POINT 302 -1.009738819288446 10.28194446006377
310 POINT 303 5.919699467074602e-08 10.28162989140187
311 POINT 304 1.009738935910972 10.2819443965436
312 POINT 305 2.020549047902884 10.28280343604998
313 POINT 306 3.033238133655776 10.28342713958931
314 POINT 307 4.048200151873941 10.2826571076832
315 POINT 308 5.065015543299326 10.28034873191634
316 POINT 309 6.083575061485952 10.27593933706552
317 POINT 310 7.102985523625926 10.27062840654225
318 POINT 311 8.123750433256964 10.26388711645833
319 POINT 312 9.14504435731642 10.25842843597803
320 POINT 313 10.17050438210141 10.24825745265531
321 POINT 314 11.19741445812459 10.23174327923734
322 POINT 315 12.21928304966143 10.21375232985006
323 POINT 316 13.22518366386299 10.23169143671009
324 POINT 317 14.25334082737309 10.24705856617686
325 POINT 318 15.30570438725816 10.2367300912412
326 POINT 319 16.36597364727631 10.20673788845324
327 POINT 320 17.41541641117195 10.16621785753401
328 POINT 321 -17.88625803484845 11.05115797933476
329 POINT 322 -16.85120422054986 11.06936232054822
330 POINT 323 -15.81832377296524 11.10623835603135
331 POINT 324 -14.77936586062894 11.12671433185663
332 POINT 325 -13.74209116444094 11.13500853711859
333 POINT 326 -12.71605470869173 11.13080637203836
334 POINT 327 -11.69940028612606 11.12659743667363
335 POINT 328 -10.67625961071982 11.13773567839252
336 POINT 329 -9.651329983156939 11.14840741093704
337 POINT 330 -8.627923790323184 11.15586543586765
338 POINT 331 -7.607383209356573 11.16085887302131
339 POINT 332 -6.588183874293925 11.16597912139563
340 POINT 333 -5.570592864708988 11.17006260278196
341 POINT 334 -4.55434815440509 11.17325037576849
342 POINT 335 -3.539757168979546 11.17505634294026
343 POINT 336 -2.526758778403693 11.17584237662288
344 POINT 337 -1.515331628371982 11.17586700307951
345 POINT 338 -0.5049906539082446 11.17574820189833
346 POINT 339 0.5049907444555864 11.17574817768458
347 POINT 340 1.5153317094028 11.17586693621212
348 POINT 341 2.526758836407911 11.17584228689916
349 POINT 342 3.539757198178682 11.17505625511356
350 POINT 343 4.554348166128215 11.17325029975345
351 POINT 344 5.570592875755479 11.17006254133163
352 POINT 345 6.588183905050538 11.16597906858908
353 POINT 346 7.6073832793965 11.16085881572795
354 POINT 347 8.62792391457109 11.15586535027681
355 POINT 348 9.651330158548348 11.14840727911036
356 POINT 349 10.67625983071012 11.13773544977034
357 POINT 350 11.69940052274761 11.12659700092283
358 POINT 351 12.71605485286965 11.13080569362486
359 POINT 352 13.74209110304109 11.13500768317192
360 POINT 353 14.7793655795263 11.12671327386668
361 POINT 354 15.81832324916032 11.10623695423282
362 POINT 355 16.85120337097398 11.06936033777372
363 POINT 356 17.88625674904034 11.05115540936097
364 POINT 357 -18.30877322305379 11.9508495437846
365 POINT 358 -17.29354589755249 11.94920666314173
366 POINT 359 -16.29455300391288 11.99583596159888
367 POINT 360 -15.27946629704285 12.01498717612042
368 POINT 361 -14.25474205301729 12.02594878618006
369 POINT 362 -13.22681809875847 12.03063506970706
370 POINT 363 -12.20220308495755 12.03009391767082
371 POINT 364 -11.18106431040382 12.03032682581759
372 POINT 365 -10.15753313450907 12.03745704775757
373 POINT 366 -9.134027318052762 12.04457505277963
374 POINT 367 -8.11232875700758 12.05009863957686
375 POINT 368 -7.093073740706956 12.05428798841279
376 POINT 369 -6.075537130934441 12.0582085939917
377 POINT 370 -5.05970021646697 12.06132294542906
378 POINT 371 -4.045326070247903 12.06366127251691
379 POINT 372 -3.032406410591747 12.06506238376489
380 POINT 373 -2.020741740391878 12.06579002116175
381 POINT 374 -1.010099115438543 12.06604601638048
382 POINT 375 3.404314703400746e-08 12.06609631184198
383 POINT 376 1.010099179329847 12.06604598427999
384 POINT 377 2.02074179197248 12.06578996792154
385 POINT 378 3.032406446294575 12.06506232425981
386 POINT 379 4.045326095644757 12.06366121500955
387 POINT 380 5.059700241198946 12.06132289396818
388 POINT 381 6.075537167668678 12.05820854699794
389 POINT 382 7.093073802862654 12.05428793944949
390 POINT 383 8.112328856771683 12.05009857666489
391 POINT 384 9.134027460561303 12.04457496575233
392 POINT 385 10.15753332314846 12.03745691162176
393 POINT 386 11.18106453668301 12.03032658694119
394 POINT 387 12.20220329614919 12.03009354250335
395 POINT 388 13.22681822001311 12.03063456472911
396 POINT 389 14.25474204169832 12.02594812574046
397 POINT 390 15.27946612080948 12.01498628420012
398 POINT 391 16.29455261172639 11.99583469575495
399 POINT 392 17.29354519100736 11.94920477604054
400 POINT 393 18.30877230037898 11.95084744504889
401 POINT 394 -18.68349051939805 12.86367167154098
402 POINT 395 -17.69955044194535 12.83783554399056
403 POINT 396 -16.74680072099509 12.90757935532751
404 POINT 397 -15.76140667037218 12.9221400730053
405 POINT 398 -14.75567094155959 12.92630257350449
406 POINT 399 -13.73682065989795 12.92743559025777
407 POINT 400 -12.71214391446095 12.92742694362712
408 POINT 401 -11.68737838806575 12.92678450620815
409 POINT 402 -10.66414648577376 12.92775785019992
410 POINT 403 -9.640754341022918 12.93234383939904
411 POINT 404 -8.618552582613498 12.93719911566106
412 POINT 405 -7.598448596921033 12.94129728244754
413 POINT 406 -6.580657830892998 12.94461961735053
414 POINT 407 -5.564721623493883 12.94754856845896
415 POINT 408 -4.550449594156615 12.94982267896038
416 POINT 409 -3.537564068386769 12.95146460765515
417 POINT 410 -2.525883376596742 12.95246017188719
418 POINT 411 -1.515118380882561 12.95300971020892
419 POINT 412 -0.5049676356087293 12.95322346487957
420 POINT 413 0.5049676844956841 12.95322345397402
421 POINT 414 1.515118423968893 12.95300968152577
422 POINT 415 2.525883411194239 12.95246013386642
423 POINT 416 3.537564097060069 12.95146456643065
424 POINT 417 4.550449622545449 12.94982263848316
425 POINT 418 5.56472165978088 12.9475485292704
426 POINT 419 6.580657884493699 12.94461957666239
427 POINT 420 7.598448677339204 12.9412972341219
428 POINT 421 8.618552696870632 12.93719905370227
429 POINT 422 9.640754495709061 12.93234375105686
430 POINT 423 10.66414668192525 12.927757709954
431 POINT 424 11.6873786049825 12.9267842939533
432 POINT 425 12.7121441131643 12.92742665289655
433 POINT 426 13.73682080368874 12.92743519895239
434 POINT 427 14.75567099253752 12.92630202967495
435 POINT 428 15.76140658474425 12.92213928078801
436 POINT 429 16.74680044196923 12.90757816273018
437 POINT 430 17.69954984610879 12.8378336756992
438 POINT 431 18.6834899076131 12.8636700698384
439 POINT 432 -19.02238328735229 13.82351766220752
440 POINT 433 -18.13955550450578 13.72808332961303
441 POINT 434 -17.24747413019177 13.83334150399983
442 POINT 435 -16.27671854460964 13.8444824687452
443 POINT 436 -15.27456079944098 13.83853174040222
444 POINT 437 -14.25616310884793 13.83020331307981
445 POINT 438 -13.22989658164751 13.82408308329856
446 POINT 439 -12.20135161049109 13.82071634572721
447 POINT 440 -11.17413867021331 13.81944883534201
448 POINT 441 -10.14926702413137 13.8202526514499
449 POINT 442 -9.126057836010542 13.82327629540207
450 POINT 443 -8.104996732868651 13.82665424545745
451 POINT 444 -7.086340525468896 13.82965017200467
452 POINT 445 -6.069982091125469 13.83211598100588
453 POINT 446 -5.055493375580907 13.83414727908586
454 POINT 447 -4.042551432867163 13.8356365177082
455 POINT 448 -3.030821469833524 13.83664074843842
456 POINT 449 -2.020032225634883 13.83720573920392
457 POINT 450 -1.009850751894021 13.83750425714042
458 POINT 451 1.810922449496655e-08 13.83759275454394
459 POINT 452 1.009850786298219 13.83750424406298
460 POINT 453 2.020032256013255 13.83720571680718
461 POINT 454 3.030821497136831 13.83664072069242
462 POINT 455 4.042551460337563 13.83563648775698
463 POINT 456 5.055493408535647 13.83414724818297
464 POINT 457 6.069982136283464 13.83211594828056
465 POINT 458 7.086340590263971 13.82965013439014
466 POINT 459 8.10499682427386 13.82665419928439
467 POINT 460 9.126057961450252 13.82327623361172
468 POINT 461 10.14926718918715 13.82025256130822
469 POINT 462 11.17413887129433 13.81944870576308
470 POINT 463 12.20135183449013 13.82071617071633
471 POINT 464 13.2298968126255 13.82408284872117
472 POINT 465 14.25616332583766 13.83020298488662
473 POINT 466 15.27456097333428 13.83853124901386
474 POINT 467 16.27671863417596 13.84448169655714
475 POINT 468 17.24747406497697 13.8333402848443
476 POINT 469 18.13955510497579 13.72808140596411
477 POINT 470 19.02238297028846 13.82351668571184
478 POINT 471 -19.27564676568709 14.66619818849089
479 POINT 472 -18.09766041208614 14.63187219093411
480 POINT 473 -16.95614347083327 14.72460549592841
481 POINT 474 -15.86921119998628 14.73780837074977
482 POINT 475 -14.81075412562909 14.72985007775523
483 POINT 476 -13.76486885106658 14.71947853532306
484 POINT 477 -12.72555276796724 14.71230313005461
485 POINT 478 -11.69126114605113 14.70886227379599
486 POINT 479 -10.66153612521807 14.70791746350395
487 POINT 480 -9.635755859587105 14.70873065251559
488 POINT 481 -8.613020109485847 14.71088365791704
489 POINT 482 -7.593121578733488 14.71326619553437
490 POINT 483 -6.575848554049146 14.71535684285003
491 POINT 484 -5.560852653819958 14.71698338764731
492 POINT 485 -4.547650629124863 14.71814844465915
493 POINT 486 -3.535804015609155 14.71887158153257
494 POINT 487 -2.524929077240439 14.71927025322356
495 POINT 488 -1.51473317861481 14.71940316393901
496 POINT 489 -0.5048698269273962 14.71947361417091
497 POINT 490 0.5048698535429671 14.71947360989954
498 POINT 491 1.514733203827875 14.71940315211682
499 POINT 492 2.524929101236818 14.7192702358374
500 POINT 493 3.535804040216305 14.718871560705
501 POINT 494 4.547650657766261 14.71814842161689
502 POINT 495 5.560852691237506 14.71698336234047
503 POINT 496 6.575848605965658 14.71535681381056
504 POINT 497 7.593121651312162 14.71326616047178
505 POINT 498 8.613020209763325 14.71088361248173
506 POINT 499 9.635755994552092 14.70873058948735
507 POINT 500 10.66153629879202 14.70791737591909
508 POINT 501 11.6912613588511 14.70886215652677
509 POINT 502 12.72555302053373 14.71230297372473
510 POINT 503 13.76486914422805 14.71947831783373
511 POINT 504 14.81075446037261 14.72984974915426
512 POINT 505 15.86921157538354 14.73780783221082
513 POINT 506 16.95614383875429 14.72460459306813
514 POINT 507 18.09766051890814 14.63187085031223
515 POINT 508 19.27564662677329 14.66619768647507
516 POINT 509 -19.50127447943532 15.56149871265921
517 POINT 510 -18.49586950943177 15.47325546362292
518 POINT 511 -17.47213216627488 15.54874531288023
519 POINT 512 -16.40580641559685 15.60593665709938
520 POINT 513 -15.34601737544395 15.61677435076866
521 POINT 514 -14.2947172695349 15.61000643038673
522 POINT 515 -13.24977965914606 15.60136804308813
523 POINT 516 -12.21061092357855 15.59603464741921
524 POINT 517 -11.1766690651603 15.59374881308825
525 POINT 518 -10.14751831522785 15.59340802755161
526 POINT 519 -9.122560414444946 15.59426088206107
527 POINT 520 -8.101062346441838 15.595824538575
528 POINT 521 -7.082603470679119 15.59741857217645
529 POINT 522 -6.066776863361147 15.59867868119486
530 POINT 523 -5.053111971733885 15.59945020989904
531 POINT 524 -4.041063833280758 15.59972861882586
532 POINT 525 -3.030084669706362 15.599680671072
533 POINT 526 -2.019763038193452 15.59951607389083
534 POINT 527 -1.009857003554932 15.59925577449675
535 POINT 528 1.024755921091858e-08 15.599193476494
536 POINT 529 1.009857023845601 15.59925576915614
537 POINT 530 2.019763058357887 15.59951606388146
538 POINT 531 3.030084690801801 15.59968065751039
539 POINT 532 4.041063857507812 15.59972860263055
540 POINT 533 5.053112002382292 15.59945019127528
541 POINT 534 6.066776904670986 15.59867865945828
542 POINT 535 7.082603527619012 15.59741854590029
543 POINT 536 8.101062424891389 15.59582450492322
544 POINT 537 9.122560520746296 15.59426083642217
545 POINT 538 10.14751845483047 15.59340796487829
546 POINT 539 11.17666924233262 15.59374872859052
547 POINT 540 12.21061114276325 15.59603453344294
548 POINT 541 13.24977992549936 15.60136788386504
549 POINT 542 14.29471758842084 15.61000619229367
550 POINT 543 15.34601774658832 15.61677396966515
551 POINT 544 16.40580680537335 15.60593604543914
552 POINT 545 17.47213241791181 15.54874447015032
553 POINT 546 18.4958693388047 15.47325456203676
554 POINT 547 19.50127443887344 15.56149853444409
555 POINT 548 -19.69120777770086 16.49909493767488
556 POINT 549 -18.82453814407551 16.39668162048823
557 POINT 550 -17.91856863118067 16.45118061991079
558 POINT 551 -16.92410838554749 16.48124398607248
559 POINT 552 -15.88164018773895 16.50096422915104
560 POINT 553 -14.82887068531301 16.49821045669536
561 POINT 554 -13.77807911254733 16.48886297653494
562 POINT 555 -12.7333784111039 16.48193539493605
563 POINT 556 -11.69485118291488 16.47821714148055
564 POINT 557 -10.66193355150254 16.47685701531462
565 POINT 558 -9.634017284309458 16.47687882871921
566 POINT 559 -8.610421523166179 16.47761153274202
567 POINT 560 -7.59043875501705 16.47862741976457
568 POINT 561 -6.573526910504127 16.47948404375377
569 POINT 562 -5.55916420169899 16.47991242318579
570 POINT 563 -4.546789160014427 16.4797742368711
571 POINT 564 -3.535766395032657 16.47908711802946
572 POINT 565 -2.525390013898583 16.4782315399178
573 POINT 566 -1.515222446789751 16.47755978237018
574 POINT 567 -0.505160915759866 16.47693907152057
575 POINT 568 0.5051609320854129 16.4769390697559
576 POINT 569 1.515222463409069 16.47755977720512
577 POINT 570 2.525390031591372 16.47823153173884
578 POINT 571 3.535766415254718 16.47908710738646
579 POINT 572 4.546789185065328 16.47977422398127
580 POINT 573 5.559164234676066 16.47991240775378
581 POINT 574 6.573526955235264 16.47948402492305
582 POINT 575 7.590438816148497 16.47862739571796
583 POINT 576 8.610421605901228 16.47761150046795
584 POINT 577 9.634017393679581 16.47687878455547
585 POINT 578 10.66193369197147 16.47685695525197
586 POINT 579 11.6948513586376 16.47821705943312
587 POINT 580 12.73337862581002 16.48193527915152
588 POINT 581 13.77807936895742 16.48886280392126
589 POINT 582 14.82887098061904 16.49821018706623
590 POINT 583 15.88164049446434 16.50096381647671
591 POINT 584 16.92410861282034 16.48124342897973
592 POINT 585 17.91856863399398 16.45118006156937
593 POINT 586 18.82453798513463 16.39668072056363
594 POINT 587 19.69120781864528 16.4990951679711
595 POINT 588 -19.82328465846074 17.34719293018973
596 POINT 589 -18.68356651268673 17.31043580953861
597 POINT 590 -17.56673240514328 17.36123106358058
598 POINT 591 -16.47414590791442 17.37598986974012
599 POINT 592 -15.39064716739153 17.37819173206542
600 POINT 593 -14.32006602394481 17.37102412556857
601 POINT 594 -13.2634493215721 17.36491520744474
602 POINT 595 -12.21741851257929 17.36094404730209
603 POINT 596 -11.17940525689727 17.35901220028596
604 POINT 597 -10.14779283686373 17.35850451428117
605 POINT 598 -9.121467989502685 17.35873940174785
606 POINT 599 -8.09954906046551 17.35924582268215
607 POINT 600 -7.081277449497645 17.35971278396684
608 POINT 601 -6.066028455702323 17.35983944191427
609 POINT 602 -5.053197717776997 17.35940141983762
610 POINT 603 -4.042124698542789 17.35824695931711
611 POINT 604 -3.032009115389205 17.3564023422576
612 POINT 605 -2.021821824817601 17.35459015065573
613 POINT 606 -1.011040264187739 17.35340280443575
614 POINT 607 6.814640345076395e-09 17.35243938843107
615 POINT 608 1.011040278028748 17.35340280223508
616 POINT 609 2.021821839659843 17.35459014619961
617 POINT 610 3.032009132287029 17.35640233585637
618 POINT 611 4.042124719169761 17.35824695109229
619 POINT 612 5.053197744437713 17.35940140968951
620 POINT 613 6.066028491348846 17.35983942938084
621 POINT 614 7.081277497793296 17.35971276796347
622 POINT 615 8.099549125655424 17.35924580133723
623 POINT 616 9.121468076013995 17.3587393726077
624 POINT 617 10.14779294895601 17.35850447445268
625 POINT 618 11.17940539853177 17.3590121455207
626 POINT 619 12.21741868699975 17.36094396965026
627 POINT 620 13.26344953055692 17.36491509096027
628 POINT 621 14.32006626614396 17.37102394370543
629 POINT 622 15.39064742969177 17.37819145776436
630 POINT 623 16.47414614962407 17.37598951033426
631 POINT 624 17.56673257253595 17.36123068035427
632 POINT 625 18.68356665984462 17.31043516903573
633 POINT 626 19.82328469438627 17.3471931986458
634 POINT 627 -19.92361530225037 18.25370297831815
635 POINT 628 -19.07203628626812 18.19876552320404
636 POINT 629 -18.09128424245282 18.22378292531755
637 POINT 630 -17.02794564635327 18.24352791034031
638 POINT 631 -15.94398258752478 18.24421394845224
639 POINT 632 -14.86112859360125 18.24245684590457
640 POINT 633 -13.79465161119509 18.24206223663435
641 POINT 634 -12.74159853322912 18.24073858102732
642 POINT 635 -11.698529613906 18.23959715961889
643 POINT 636 -10.66316644369302 18.23915626546558
644 POINT 637 -9.633977641977911 18.2392237253931
645 POINT 638 -8.609886644138397 18.23947670834334
646 POINT 639 -7.590062391072585 18.23966317253559
647 POINT 640 -6.573799873479021 18.2395756905061
648 POINT 641 -5.560467629070432 18.23897213290731
649 POINT 642 -4.549395686991836 18.2375962202419
650 POINT 643 -3.53974763298982 18.23518325778423
651 POINT 644 -2.530321009293305 18.23165172954483
652 POINT 645 -1.519299961772805 18.22830303022641
653 POINT 646 -0.5061568241133134 18.22651105869159
654 POINT 647 0.5061568361746052 18.22651105818931
655 POINT 648 1.519299974627625 18.2283030281956
656 POINT 649 2.530321023719614 18.23165172623696
657 POINT 650 3.539747650302188 18.23518325320082
658 POINT 651 4.549395708977971 18.23759621436859
659 POINT 652 5.560467658068336 18.23897212554887
660 POINT 653 6.573799912439206 18.23957568110988
661 POINT 654 7.590062443504756 18.23966316006795
662 POINT 655 8.609886713904036 18.23947669135741
663 POINT 656 9.633977733038876 18.23922370211182
664 POINT 657 10.66316655986387 18.23915623336316
665 POINT 658 11.69852975826159 18.23959711417069
666 POINT 659 12.74159870680618 18.24073851295247
667 POINT 660 13.79465181041776 18.24206212883075
668 POINT 661 14.86112880502805 18.24245668253721
669 POINT 662 15.94398277539668 18.24421374106404
670 POINT 663 17.02794575643996 18.24352769585881
671 POINT 664 18.09128426867969 18.22378260511285
672 POINT 665 19.07203607838779 18.19876510589028
673 POINT 666 19.92361533574309 18.25370336043873
674 POINT 667 -19.9802449810712 19.11128711446231
675 POINT 668 -18.80619197016033 19.09425379941037
676 POINT 669 -17.66225403113433 19.09510203515607
677 POINT 670 -16.52583190669753 19.09866237624121
678 POINT 671 -15.41432354959155 19.0986301021614
679 POINT 672 -14.33063667844831 19.1105065301146
680 POINT 673 -13.26794614671815 19.11638402180332
681 POINT 674 -12.21904679432654 19.11829199267038
682 POINT 675 -11.17975304147024 19.11894075428319
683 POINT 676 -10.14765766280284 19.11928688527702
684 POINT 677 -9.121321606407902 19.1195239082655
685 POINT 678 -8.099811768765214 19.11961774535636
686 POINT 679 -7.082440474765014 19.11946501955149
687 POINT 680 -6.068617555176951 19.11889174400767
688 POINT 681 -5.057733760576324 19.11759686938207
689 POINT 682 -4.048951495282913 19.11510440717879
690 POINT 683 -3.040860967573059 19.11069978972926
691 POINT 684 -2.031062116367802 19.10382972217813
692 POINT 685 -1.01638199358576 19.09746934675944
693 POINT 686 5.469910147222479e-09 19.09799582548251
694 POINT 687 1.016382005544462 19.09746934612121
695 POINT 688 2.031062129425211 19.10382972109414
696 POINT 689 3.040860982727736 19.11069978795467
697 POINT 690 4.048951514001514 19.1151044047146
698 POINT 691 5.057733784810108 19.11759686619456
699 POINT 692 6.06861758741177 19.11889173991558
700 POINT 693 7.082440518000469 19.11946501414825
701 POINT 694 8.099811826393989 19.11961773801307
702 POINT 695 9.121321682045322 19.11952389818466
703 POINT 696 10.14765776004377 19.11928687136565
704 POINT 697 11.1797531633058 19.11894073468605
705 POINT 698 12.21904694182174 19.11829196363125
706 POINT 699 13.26794631623689 19.11638397571452
707 POINT 700 14.33063685706478 19.11050645765263
708 POINT 701 15.41432371433398 19.09863001492938
709 POINT 702 16.52583203632977 19.09866230844884
710 POINT 703 17.6622541458637 19.09510191838969
711 POINT 704 18.80619204599507 19.09425361367645
712 POINT 705 19.9802449892912 19.11128730390016
713 POINT 706 -19.18788556876717 20.00005139493198
714 POINT 707 -18.23752403849579 19.99984302247159
715 POINT 708 -17.29064226017514 19.99925376166535
716 POINT 709 -16.47440002277868 20.00254940092639
717 POINT 710 -15.69589026095225 19.99922347246529
718 POINT 711 -14.75829776969549 19.99999149402495
719 POINT 712 -13.75224907606844 20.00002238976034
720 POINT 713 -12.72358628344629 20.00001314522074
721 POINT 714 -11.69063170189132 20.00000296247429
722 POINT 715 -10.65968425579931 19.99999907815186
723 POINT 716 -9.632679418332129 19.99999847573628
724 POINT 717 -8.610092788959356 19.9999987802438
725 POINT 718 -7.592007815489902 19.99999919201484
726 POINT 719 -6.578584325048967 19.99999952078446
727 POINT 720 -5.570430449173512 19.99999973968279
728 POINT 721 -4.569141973011657 19.99999986982209
729 POINT 722 -3.578262228261103 19.99999994088966
730 POINT 723 -2.605187956284842 19.99999997690123
731 POINT 724 -1.66466516281073 19.99999999380757
732 POINT 725 -0.7826655107941599 20.0000000016338
733 POINT 726 0.7826655154907771 20.00000000163381
734 POINT 727 1.664665170888243 19.99999999380764
735 POINT 728 2.605187967544461 19.99999997690146
736 POINT 729 3.578262243238 19.99999994089031
737 POINT 730 4.569141992985899 19.9999998698238
738 POINT 731 5.570430476094784 19.99999973968696
739 POINT 732 6.578584361468833 19.999999520794
740 POINT 733 7.592007864442903 19.99999919203552
741 POINT 734 8.610092853801689 19.99999878028637
742 POINT 735 9.632679502529101 19.99999847581969
743 POINT 736 10.6596843624034 19.99999907830713
744 POINT 737 11.69063183223476 20.00000296274612
745 POINT 738 12.72358643409481 20.00001314569264
746 POINT 739 13.75224923254777 20.00002239071156
747 POINT 740 14.75829790050601 19.99999149614534
748 POINT 741 15.69589033419841 19.99922348070548
749 POINT 742 16.47440003681302 20.0025493901109
750 POINT 743 17.29064231060998 19.99925377353345
751 POINT 744 18.23752405131307 19.99984302941273
752 POINT 745 19.18788543351031 20.00005138833587
753 POINT 746 -19.98023779283576 20.88887437456774
754 POINT 747 -18.80580843557483 20.90547874653299
755 POINT 748 -17.66161201461446 20.90415650737443
756 POINT 749 -16.52591330812703 20.90273438014319
757 POINT 750 -15.41490978144221 20.90067949213849
758 POINT 751 -14.33087263381866 20.8894508385836
759 POINT 752 -13.26804240623713 20.88362475434566
760 POINT 753 -12.21908307283113 20.88171102490173
761 POINT 754 -11.1797653194024 20.88105596204579
762 POINT 755 -10.14766089752007 20.88070896143329
763 POINT 756 -9.121321787680523 20.8804729634606
764 POINT 757 -8.099811171529218 20.88038023214702
765 POINT 758 -7.082439863957721 20.88053378104001
766 POINT 759 -6.068617118328885 20.88110759648338
767 POINT 760 -5.057733492537352 20.88240279408681
768 POINT 761 -4.048951345696993 20.88489543523155
769 POINT 762 -3.040860889905527 20.88930014517067
770 POINT 763 -2.031062079165233 20.89617025723036
771 POINT 764 -1.016381979500983 20.90253065295888
772 POINT 765 5.469943456515303e-09 20.90200417751546
773 POINT 766 1.016381991459812 20.90253065359715
774 POINT 767 2.03106209222298 20.89617025831457
775 POINT 768 3.040860905061069 20.88930014694594
776 POINT 769 4.048951364417659 20.88489543769765
777 POINT 770 5.057733516775839 20.8824027972792
778 POINT 771 6.06861715057387 20.88110760058708
779 POINT 772 7.082439907213993 20.88053378646916
780 POINT 773 8.099811229198181 20.8803802395451
781 POINT 774 9.121321863390992 20.88047297365156
782 POINT 775 10.14766099488602 20.88070897555551
783 POINT 776 11.17976544143952 20.88105598202432
784 POINT 777 12.21908322063199 20.88171105459812
785 POINT 778 13.26804257619063 20.88362480166985
786 POINT 779 14.33087281298531 20.88945091392941
787 POINT 780 15.41490994607966 20.90067958866326
788 POINT 781 16.52591344201236 20.90273444864004
789 POINT 782 17.66161214257477 20.90415664260873
790 POINT 783 18.80580852434392 20.90547893935344
791 POINT 784 19.98023780197282 20.88887416458981
792 POINT 785 -19.92358828250518 21.74660526428339
793 POINT 786 -19.07217434439901 21.80073889981208
794 POINT 787 -18.09112945874565 21.77562907330344
795 POINT 788 -17.02812405581322 21.75701137151901
796 POINT 789 -15.94366066593676 21.75622850710521
797 POINT 790 -14.86126409690214 21.75722234436677
798 POINT 791 -13.79471434661022 21.75787709872358
799 POINT 792 -12.74162038561464 21.75924454538805
800 POINT 793 -11.69853414597164 21.7603937981996
801 POINT 794 -10.66316512661045 21.76083746123114
802 POINT 795 -9.633974994254842 21.76077236820268
803 POINT 796 -8.609884257109169 21.76052103489894
804 POINT 797 -7.590060667734138 21.76033556874065
805 POINT 798 -6.573798770236956 21.76042363684251
806 POINT 799 -5.560466980079595 21.76102752854904
807 POINT 800 -4.549395330869891 21.76240362299502
808 POINT 801 -3.53974744971968 21.76481667916055
809 POINT 802 -2.5303209212877 21.76834825283947
810 POINT 803 -1.519299924135361 21.77169697292803
811 POINT 804 -0.5061568134041036 21.7734889506532
812 POINT 805 0.5061568254655004 21.77348895115548
813 POINT 806 1.519299936990494 21.77169697495886
814 POINT 807 2.530320935714927 21.76834825614754
815 POINT 808 3.539747467034398 21.76481668374473
816 POINT 809 4.549395352861634 21.76240362887052
817 POINT 810 5.560467009090089 21.76102753591302
818 POINT 811 6.573798809223865 21.76042364625162
819 POINT 812 7.590060720219843 21.76033558123638
820 POINT 813 8.609884326976061 21.76052105194263
821 POINT 814 9.633975085497147 21.76077239159665
822 POINT 815 10.66316524309085 21.76083749354136
823 POINT 816 11.69853429083621 21.7603938440048
824 POINT 817 12.74162056001178 21.75924461407503
825 POINT 818 13.79471454718983 21.75787720786278
826 POINT 819 14.86126431068448 21.75722251199929
827 POINT 820 15.94366086082416 21.756228717586
828 POINT 821 17.02812417119083 21.75701159238045
829 POINT 822 18.09112949141926 21.77562941392504
830 POINT 823 19.07217412140869 21.80073933755012
831 POINT 824 19.92358831980405 21.74660483881377
832 POINT 825 -19.823263456196 22.65296550038718
833 POINT 826 -18.68347167777789 22.6889724670474
834 POINT 827 -17.5669100312704 22.63883478838346
835 POINT 828 -16.47409263224828 22.6242054542872
836 POINT 829 -15.3904367336017 22.62202395225419
837 POINT 830 -14.32006894483515 22.62885094013076
838 POINT 831 -13.26345062953686 22.63505078113978
839 POINT 832 -12.21741436155782 22.63904422561734
840 POINT 833 -11.17939965412427 22.64098178723362
841 POINT 834 -10.14778782482358 22.64149205572087
842 POINT 835 -9.121464141616515 22.64125877788618
843 POINT 836 -8.099546383139796 22.64075324216461
844 POINT 837 -7.081275727631735 22.64028674537108
845 POINT 838 -6.066027421514116 22.64016033445862
846 POINT 839 -5.053197134698077 22.64059848599732
847 POINT 840 -4.042124389521369 22.64175301143073
848 POINT 841 -3.032008961880832 22.64359765889142
849 POINT 842 -2.021821754586955 22.64540986356159
850 POINT 843 -1.011040237264479 22.64659721372332
851 POINT 844 6.814665224480487e-09 22.6475606308115
852 POINT 845 1.011040251105664 22.64659721592393
853 POINT 846 2.021821769429846 22.64540986801763
854 POINT 847 3.032008978780493 22.6435976652927
855 POINT 848 4.042124410152931 22.64175301965603
856 POINT 849 5.053197161369463 22.64059849614706
857 POINT 850 6.066027457183961 22.64016034699624
858 POINT 851 7.081275775975558 22.6402867613839
859 POINT 852 8.099546448423908 22.64075326352899
860 POINT 853 9.121464228302864 22.64125880706316
861 POINT 854 10.14778793722731 22.64149209561295
862 POINT 855 11.17939979629603 22.64098184209338
863 POINT 856 12.21741453689023 22.6390443033786
864 POINT 857 13.26345084008729 22.63505089777322
865 POINT 858 14.32006918987354 22.62885112279828
866 POINT 859 15.39043700219516 22.62202422695843
867 POINT 860 16.47409288234377 22.62420581860266
868 POINT 861 17.56691020844972 22.63883518337205
869 POINT 862 18.68347184009588 22.68897314250563
870 POINT 863 19.82326349779923 22.652965189523
871 POINT 864 -19.69117813060965 23.501071811403
872 POINT 865 -18.8246775584696 23.60270488921595
873 POINT 866 -17.91872317447207 23.54877686754418
874 POINT 867 -16.92421077812897 23.51878118738913
875 POINT 868 -15.88162933414794 23.49913833184728
876 POINT 869 -14.82876942700178 23.5019021870122
877 POINT 870 -13.77806312245109 23.51109818218014
878 POINT 871 -12.7333690497193 23.51805365247506
879 POINT 872 -11.69484326979592 23.5217794620292
880 POINT 873 -10.661927166753 23.52314139532949
881 POINT 874 -9.634012473512842 23.52312044026287
882 POINT 875 -8.610418120559023 23.52238820743955
883 POINT 876 -7.590436502923668 23.52137251796749
884 POINT 877 -6.573525514872875 23.52051596810155
885 POINT 878 -5.559163390593181 23.52008761426355
886 POINT 879 -4.54678871790041 23.52022580633416
887 POINT 880 -3.535766169521851 23.52091292302367
888 POINT 881 -2.525389907129223 23.5217684966976
889 POINT 882 -1.515222401501546 23.52244024975234
890 POINT 883 -0.505160903546754 23.52306095823609
891 POINT 884 0.5051609198722887 23.52306096000069
892 POINT 885 1.515222418121158 23.52244025491717
893 POINT 886 2.525389924823131 23.52176850487623
894 POINT 887 3.535766189747005 23.52091293366626
895 POINT 888 4.546788742958842 23.52022581922355
896 POINT 889 5.559163423587246 23.52008762969507
897 POINT 890 6.573525559639977 23.52051598693144
898 POINT 891 7.590436564126859 23.52137254201168
899 POINT 892 8.610418203429177 23.52238823970576
900 POINT 893 9.634012583123939 23.5231204844028
901 POINT 894 10.66192730763136 23.52314145532485
902 POINT 895 11.69484344618557 23.52177954389795
903 POINT 896 12.73336926547453 23.51805376783202
904 POINT 897 13.77806338049386 23.51109835404176
905 POINT 898 14.82876972514016 23.50190245509659
906 POINT 899 15.88162964366185 23.49913874577929
907 POINT 900 16.92421100623148 23.5187817528495
908 POINT 901 17.9187231720003 23.54877744101314
909 POINT 902 18.82467738720799 23.60270583207815
910 POINT 903 19.69117818073977 23.50107152945477
911 POINT 904 -19.50128258193048 24.4384656875654
912 POINT 905 -18.49603377721733 24.52645328847083
913 POINT 906 -17.47222047478762 24.45122954140129
914 POINT 907 -16.40586225838657 24.39407159976292
915 POINT 908 -15.34601775579845 24.38327897298187
916 POINT 909 -14.29467265709022 24.390055636783
917 POINT 910 -13.24976676348197 24.39862650284665
918 POINT 911 -12.21060209619167 24.40396573526314
919 POINT 912 -11.17666203331493 24.40625240812431
920 POINT 913 -10.14751294202745 24.40659288968487
921 POINT 914 -9.122556531432314 24.40573982553234
922 POINT 915 -8.101059706484772 24.40417598818402
923 POINT 916 -7.082601789515715 24.40258179050725
924 POINT 917 -6.066775861079858 24.401321559102
925 POINT 918 -5.053111412995462 24.40054994850132
926 POINT 919 -4.041063542992159 24.40027148711376
927 POINT 920 -3.030084530115851 24.40031940219774
928 POINT 921 -2.019762977092939 24.40048397969316
929 POINT 922 -1.009856981565384 24.40074426873068
930 POINT 923 1.024744895883334e-08 24.40080656348254
931 POINT 924 1.009857001855979 24.40074427407103
932 POINT 925 2.019762997257817 24.40048398970201
933 POINT 926 3.030084551212998 24.40031941575852
934 POINT 927 4.041063567223794 24.40027150330772
935 POINT 928 5.053111443654583 24.40054996712262
936 POINT 929 6.066775902412783 24.40132158083352
937 POINT 930 7.082601846501917 24.40258181677218
938 POINT 931 8.101059785020986 24.40417602181029
939 POINT 932 9.122556637884827 24.40573987111417
940 POINT 933 10.14751308187546 24.40659295223369
941 POINT 934 11.17666221085666 24.40625249235723
942 POINT 935 12.21060231588698 24.40396584869259
943 POINT 936 13.24976703047505 24.39862666102139
944 POINT 937 14.29467297678669 24.39005587293844
945 POINT 938 15.34601812724821 24.38327935339093
946 POINT 939 16.40586264749961 24.39407221667886
947 POINT 940 17.47222072302032 24.45123039885839
948 POINT 941 18.49603359613996 24.52645421647772
949 POINT 942 19.50128254843763 24.438465834723
950 POINT 943 -19.27566297736843 25.33374322431333
951 POINT 944 -18.09775178956348 25.36799483110871
952 POINT 945 -16.95620348221256 25.27537035025225
953 POINT 946 -15.86925210584145 25.2621959819831
954 POINT 947 -14.81076315314948 25.27017923896646
955 POINT 948 -13.76485149074431 25.28055642554051
956 POINT 949 -12.72554494747265 25.2877018915422
957 POINT 950 -11.69125466472678 25.29114191583416
958 POINT 951 -10.66153084238642 25.29208544028669
959 POINT 952 -9.635751893753024 25.29127123899427
960 POINT 953 -8.613017330938026 25.28911759029576
961 POINT 954 -7.593119760102007 25.28673460993404
962 POINT 955 -6.575847443318799 25.28464366208886
963 POINT 956 -5.56085202263591 25.28301692601594
964 POINT 957 -4.547650297377339 25.28185175153692
965 POINT 958 -3.535803856092467 25.28112854408795
966 POINT 959 -2.524929008354851 25.28072983104776
967 POINT 960 -1.514733152989468 25.28059689769103
968 POINT 961 -0.5048698207562641 25.28052643741724
969 POINT 962 0.5048698473713688 25.28052644168841
970 POINT 963 1.51473317820234 25.28059690951267
971 POINT 964 2.524929032351727 25.28072984843296
972 POINT 965 3.535803880701605 25.28112856491395
973 POINT 966 4.54765032602379 25.28185177457648
974 POINT 967 5.560852060064414 25.28301695131759
975 POINT 968 6.575847495256659 25.28464369111745
976 POINT 969 7.593119832718212 25.28673464497304
977 POINT 970 8.613017431274047 25.28911763568033
978 POINT 971 9.635752028795475 25.29127130191628
979 POINT 972 10.66153101603581 25.29208552765603
980 POINT 973 11.6912548775394 25.29114203268002
981 POINT 974 12.72554519985952 25.28770204706892
982 POINT 975 13.76485178333624 25.28055664153414
983 POINT 976 14.81076348639632 25.27017956625211
984 POINT 977 15.86925247881834 25.26219652228766
985 POINT 978 16.95620384751598 25.27537126258778
986 POINT 979 18.09775189289379 25.36799618984021
987 POINT 980 19.27566284513804 25.33374370218195
988 POINT 981 -19.02239954985974 26.17643225215792
989 POINT 982 -18.13957375669325 26.27182967555013
990 POINT 983 -17.24752991244937 26.16660408857279
991 POINT 984 -16.27676195998304 26.15550609242113
992 POINT 985 -15.27459027941854 26.16147153179269
993 POINT 986 -14.25617297779009 26.16981316221108
994 POINT 987 -13.2298905244963 26.17593671197166
995 POINT 988 -12.20134707994185 26.17929019701242
996 POINT 989 -11.17413433418612 26.18055581832264
997 POINT 990 -10.14926347567323 26.17975046130899
998 POINT 991 -9.126055233191323 26.1767257214049
999 POINT 992 -8.104994973232515 26.17334704655403
1000 POINT 993 -7.086339423772932 26.17035063568784
1001 POINT 994 -6.069981455507479 26.16788451762503
1002 POINT 995 -5.055493041319419 26.16585302924196
1003 POINT 996 -4.042551276201685 26.16436367569299
1004 POINT 997 -3.030821407389114 26.16335937686056
1005 POINT 998 -2.020032206493706 26.16279434727297
1006 POINT 999 -1.009850748200918 26.16249580956691
1007 POINT 1000 1.810878547461869e-08 26.16240730616165
1008 POINT 1001 1.009850782604362 26.16249582264381
1009 POINT 1002 2.020032236871754 26.1627943696687
1010 POINT 1003 3.030821434692971 26.163359404605
1011 POINT 1004 4.04255130367432 26.16436370564181
1012 POINT 1005 5.055493074279512 26.16585306014084
1013 POINT 1006 6.069981500676009 26.16788455034281
1014 POINT 1007 7.086339488585687 26.17035067328725
1015 POINT 1008 8.104995064661678 26.17334709269614
1016 POINT 1009 9.126055358650662 26.17672578313303
1017 POINT 1010 10.14926364070988 26.17975055132968
1018 POINT 1011 11.17413453512518 26.18055594767594
1019 POINT 1012 12.20134730349981 26.17929037161421
1020 POINT 1013 13.22989075441856 26.17593694579172
1021 POINT 1014 14.25617319248297 26.1698134895775
1022 POINT 1015 15.27459044923737 26.16147202351487
1023 POINT 1016 16.27676204411003 26.15550686826468
1024 POINT 1017 17.24752984252422 26.16660531696369
1025 POINT 1018 18.13957335417382 26.27183161770785
1026 POINT 1019 19.02239923981158 26.17643320705552
1027 POINT 1020 -18.68351052659932 27.13627594775126
1028 POINT 1021 -17.69958032840385 27.16211878258065
1029 POINT 1022 -16.74683156791625 27.09239213947461
1030 POINT 1023 -15.76142860035137 27.07785332363176
1031 POINT 1024 -14.75568523901815 27.07369952580982
1032 POINT 1025 -13.73682530497883 27.07257389333525
1033 POINT 1026 -12.71214081282853 27.07258462878146
1034 POINT 1027 -11.68737540619582 27.07322119480453
1035 POINT 1028 -10.66414374485063 27.07224624332165
1036 POINT 1029 -9.640752201106791 27.06765889268107
1037 POINT 1030 -8.618551085348614 27.06280265021007
1038 POINT 1031 -7.598447638413528 27.0587038340893
1039 POINT 1032 -6.580657275128921 27.05538108021106
1040 POINT 1033 -5.564721338620957 27.05245186732603
1041 POINT 1034 -4.55044947250108 27.05017759593697
1042 POINT 1035 -3.537564033075582 27.04853556963036
1043 POINT 1036 -2.525883378397752 27.04753994742007
1044 POINT 1037 -1.515118391171542 27.04699037668727
1045 POINT 1038 -0.5049676403738673 27.04677660797433
1046 POINT 1039 0.5049676892594587 27.04677661887949
1047 POINT 1040 1.515118434256783 27.04699040536934
1048 POINT 1041 2.525883412994776 27.04753998543922
1049 POINT 1042 3.537564061749419 27.04853561085263
1050 POINT 1043 4.550449500892171 27.05017763641098
1051 POINT 1044 5.564721374913006 27.05245190650947
1052 POINT 1045 6.580657328738541 27.0553811208901
1053 POINT 1046 7.598447718844161 27.05870388239782
1054 POINT 1047 8.618551199616206 27.0628027121368
1055 POINT 1048 9.640752355782366 27.06765898096566
1056 POINT 1049 10.66414394092225 27.07224638347101
1057 POINT 1050 11.6873756228595 27.07322140691138
1058 POINT 1051 12.71214101090778 27.07258491927569
1059 POINT 1052 13.7368254473805 27.07257428445428
1060 POINT 1053 14.75568528734847 27.07370007007758
1061 POINT 1054 15.76142851055736 27.07785411803665
1062 POINT 1055 16.74683128376763 27.09239333698052
1063 POINT 1056 17.6995797272013 27.16212066124442
1064 POINT 1057 18.68350991969133 27.13627753669932
1065 POINT 1058 -18.3087899994487 28.0491122961534
1066 POINT 1059 -17.29356305303868 28.05076474633064
1067 POINT 1060 -16.29456855134103 28.00414807613013
1068 POINT 1061 -15.27947676947299 27.98500923824287
1069 POINT 1062 -14.25474850756761 27.97405313016844
1070 POINT 1063 -13.22681991964508 27.96937104967781
1071 POINT 1064 -12.20220140205727 27.96991345424442
1072 POINT 1065 -11.18106269960114 27.96967783441059
1073 POINT 1066 -10.1575317295533 27.96254624095482
1074 POINT 1067 -9.134026282902123 27.9554271272794
1075 POINT 1068 -8.11232808124951 27.94990275991905
1076 POINT 1069 -7.093073357937705 27.94571290375888
1077 POINT 1070 -6.075536956332379 27.94179197610055
1078 POINT 1071 -5.059700169738454 27.9386774220445
1079 POINT 1072 -4.045326088931555 27.93633896816423
1080 POINT 1073 -3.03240645241726 27.93493777823327
1081 POINT 1074 -2.020741779449279 27.93421009321045
1082 POINT 1075 -1.010099138076054 27.93395407311486
1083 POINT 1076 3.404211895013942e-08 27.93390377024507
1084 POINT 1077 1.010099201965424 27.93395410521433
1085 POINT 1078 2.020741831028424 27.93421014644879
1086 POINT 1079 3.032406488119535 27.93493783773603
1087 POINT 1080 4.045326114328983 27.93633902566877
1088 POINT 1081 5.059700194472554 27.93867747350166
1089 POINT 1082 6.075536993070713 27.94179202308874
1090 POINT 1083 7.09307342009923 27.94571295271277
1091 POINT 1084 8.112328181018478 27.94990282281439
1092 POINT 1085 9.134026425405688 27.95542721427844
1093 POINT 1086 10.15753191815605 27.96254637704741
1094 POINT 1087 11.18106292576653 27.96967807323303
1095 POINT 1088 12.2022016129779 27.96991382936287
1096 POINT 1089 13.22682004031123 27.9693715547119
1097 POINT 1090 14.25474849512003 27.97405379109089
1098 POINT 1091 15.27947659137026 27.98501013174536
1099 POINT 1092 16.29456815670813 28.00414934511754
1100 POINT 1093 17.29356234408891 28.05076663883557
1101 POINT 1094 18.30878908050798 28.04911438640772
1102 POINT 1095 -17.88627195115217 28.94881420577205
1103 POINT 1096 -16.85121623860757 28.93061933343462
1104 POINT 1097 -15.81833314037684 28.89375235827191
1105 POINT 1098 -14.77937167335351 28.87328385036637
1106 POINT 1099 -13.74209446540223 28.86499338776666
1107 POINT 1100 -12.71605582999688 28.86919825138711
1108 POINT 1101 -11.69940001494518 28.87340789918018
1109 POINT 1102 -10.67625922348492 28.86226791658786
1110 POINT 1103 -9.65132961605895 28.851595071435
1111 POINT 1104 -8.627923539340028 28.8441361901345
1112 POINT 1105 -7.607383097319782 28.83914218931285
1113 POINT 1106 -6.588183876610444 28.834021579554
1114 POINT 1107 -5.570592938796751 28.82993786493235
1115 POINT 1108 -4.554348259497055 28.82674994031302
1116 POINT 1109 -3.539757274765657 28.82494387416716
1117 POINT 1110 -2.526758864903647 28.82415777580468
1118 POINT 1111 -1.515331685041841 28.82413311065559
1119 POINT 1112 -0.5049906739901562 28.82425189305842
1120 POINT 1113 0.5049907645346323 28.82425191727151
1121 POINT 1114 1.515331766070061 28.82413317752096
1122 POINT 1115 2.526758922906133 28.82415786552549
1123 POINT 1116 3.539757303964481 28.82494396199095
1124 POINT 1117 4.554348271221096 28.82675001632507
1125 POINT 1118 5.5705929498453 28.82993792637928
1126 POINT 1119 6.588183907369825 28.83402163235582
1127 POINT 1120 7.607383167361471 28.83914224659848
1128 POINT 1121 8.627923663583609 28.84413627571221
1129 POINT 1122 9.651329791428106 28.85159520324159
1130 POINT 1123 10.67625944341114 28.86226814518679
1131 POINT 1124 11.69940025142002 28.87340833491707
1132 POINT 1125 12.71605597388189 28.86919892986707
1133 POINT 1126 13.74209440347107 28.86499424204478
1134 POINT 1127 14.77937139138959 28.87328490937882
1135 POINT 1128 15.81833261547568 28.89375376208559
1136 POINT 1129 16.85121538818617 28.93062131895283
1137 POINT 1130 17.88627066804774 28.94881677035237
1138 POINT 1131 -17.41542967730917 29.83375864838565
1139 POINT 1132 -16.36598381746591 29.79324716653365
1140 POINT 1133 -15.30571123700743 29.76326236085124
1141 POINT 1134 -14.25334486558897 29.75293926663301
1142 POINT 1135 -13.22518619984562 29.7683098214614
1143 POINT 1136 -12.21928477595643 29.78625116079143
1144 POINT 1137 -11.19741514236947 29.76826012438021
1145 POINT 1138 -10.17050471136325 29.75174492628818
1146 POINT 1139 -9.145044524339205 29.74157318849883
1147 POINT 1140 -8.1237506134133 29.73611400010283
1148 POINT 1141 -7.102985757155311 29.72937235399485
1149 POINT 1142 -6.083575327030116 29.72406116587013
1150 POINT 1143 -5.065015794708289 29.71965157618854
1151 POINT 1144 -4.048200344643696 29.7173430556003
1152 POINT 1145 -3.033238232867113 29.71657292251867
1153 POINT 1146 -2.020549058249011 29.71719659405831
1154 POINT 1147 -1.009738878373672 29.71805565528834
1155 POINT 1148 5.919503985596375e-08 29.71837020929849
1156 POINT 1149 1.009738994992378 29.71805571880686
1157 POINT 1150 2.020549158880593 29.71719671483972
1158 POINT 1151 3.033238290617864 29.71657306631699
1159 POINT 1152 4.048200349715117 29.71734318068954
1160 POINT 1153 5.065015770760248 29.7196516721558
1161 POINT 1154 6.083575305003133 29.72406123347293
1162 POINT 1155 7.102985771361372 29.72937240771407
1163 POINT 1156 8.123750692148713 29.73611406625849
1164 POINT 1157 9.145044681942796 29.74157331659041
1165 POINT 1158 10.17050491805136 29.75174514843446
1166 POINT 1159 11.19741536641047 29.76826054031946
1167 POINT 1160 12.2192849573198 29.78625198231071
1168 POINT 1161 13.22518614531627 29.76831101236639
1169 POINT 1162 14.25334445158184 29.75294061103708
1170 POINT 1163 15.30571051603222 29.76326396462168
1171 POINT 1164 16.36598278510637 29.79324928955189
1172 POINT 1165 17.41542794295087 29.83376171990615
1173 POINT 1166 -16.89880493119268 30.69721421200391
1174 POINT 1167 -15.84084671744584 30.63188582080215
1175 POINT 1168 -14.75937079783184 30.62356117741139
1176 POINT 1169 -13.72667803874304 30.6613328279952
1177 POINT 1170 -12.74588714172752 30.71371027983801
1178 POINT 1171 -11.72514438910883 30.68212290710705
1179 POINT 1172 -10.69307402425253 30.65563776551792
1180 POINT 1173 -9.663653547397562 30.64189426397848
1181 POINT 1174 -8.642458727492786 30.63734439158867
1182 POINT 1175 -7.620362459906692 30.62824675701598
1183 POINT 1176 -6.599325061244341 30.62130216573695
1184 POINT 1177 -5.577936826951563 30.6148672434393
1185 POINT 1178 -4.558211164728247 30.61175248302345
1186 POINT 1179 -3.540362154667188 30.61087880095583
1187 POINT 1180 -2.525662571249494 30.61262583895858
1188 POINT 1181 -1.513887280056144 30.61507416610434
1189 POINT 1182 -0.5042972278699956 30.61670205839328
1190 POINT 1183 0.5042973737465498 30.61670209443389
1191 POINT 1184 1.513887429060817 30.61507428789713
1192 POINT 1185 2.525662692669032 30.61262604572162
1193 POINT 1186 3.54036219335181 30.61087902796626
1194 POINT 1187 4.558211107788653 30.61175265802142
1195 POINT 1188 5.577936725817437 30.61486735811178
1196 POINT 1189 6.599324974859706 30.62130222879121
1197 POINT 1190 7.620362447487361 30.62824680085264
1198 POINT 1191 8.642458825941324 30.63734447157217
1199 POINT 1192 9.663653754394943 30.64189448764897
1200 POINT 1193 10.69307423735651 30.65563818384975
1201 POINT 1194 11.72514453379872 30.68212369692436
1202 POINT 1195 12.74588713706405 30.71371180853617
1203 POINT 1196 13.72667758015037 30.66133475353996
1204 POINT 1197 14.75936981763983 30.62356312399664
1205 POINT 1198 15.84084548444188 30.63188806768807
1206 POINT 1199 16.89880261226452 30.69721787530422
1207 POINT 1200 -16.34009128149359 31.53262402545307
1208 POINT 1201 -15.28568336821521 31.44708435232277
1209 POINT 1202 -14.2209000727431 31.53141889752363
1210 POINT 1203 -13.2977569951397 31.66679256172576
1211 POINT 1204 -12.27301009857187 31.6040005347632
1212 POINT 1205 -11.22445310392184 31.55974332082998
1213 POINT 1206 -10.18420406298538 31.54252893027452
1214 POINT 1207 -9.163915367393241 31.5436687933713
1215 POINT 1208 -8.140599406135669 31.53125016600776
1216 POINT 1209 -7.118690682844557 31.52230190448825
1217 POINT 1210 -6.093912293860901 31.51225498074955
1218 POINT 1211 -5.07053781765046 31.50770300997673
1219 POINT 1212 -4.04849776527412 31.50615467955022
1220 POINT 1213 -3.030710538587649 31.50945833368958
1221 POINT 1214 -2.017113296966526 31.51446605862232
1222 POINT 1215 -1.007152972521004 31.5188773687048
1223 POINT 1216 8.069955546863294e-08 31.52094595365134
1224 POINT 1217 1.007153147259242 31.51887744675579
1225 POINT 1218 2.017113486527146 31.51446627236329
1226 POINT 1219 3.030710673050414 31.50945868636081
1227 POINT 1220 4.048497739728965 31.5061550381337
1228 POINT 1221 5.070537627085144 31.50770325017226
1229 POINT 1222 6.093912047408612 31.51225510381275
1230 POINT 1223 7.118690492026126 31.52230193550043
1231 POINT 1224 8.140599370382356 31.53125017994062
1232 POINT 1225 9.163915512128149 31.54366891796288
1233 POINT 1226 10.18420431641738 31.5425293949968
1234 POINT 1227 11.22445321142737 31.55974415861684
1235 POINT 1228 12.27300998503818 31.60400199599792
1236 POINT 1229 13.29775665030186 31.66679525624402
1237 POINT 1230 14.22089893057988 31.53142164267454
1238 POINT 1231 15.28568200198485 31.44708667752904
1239 POINT 1232 16.34008819047632 31.53262840498486
1240 POINT 1233 -15.74070991046201 32.33815429935463
1241 POINT 1234 -14.74688528329741 32.29702825850423
1242 POINT 1235 -13.93190385661229 32.65477363083443
1243 POINT 1236 -12.86506936822592 32.52891304941449
1244 POINT 1237 -11.77212159391218 32.45232300476276
1245 POINT 1238 -10.70587315849742 32.4347153350411
1246 POINT 1239 -9.687662057866612 32.45538673008075
1247 POINT 1240 -8.662564266803992 32.43904962117873
1248 POINT 1241 -7.6420354397583 32.42864000943801
1249 POINT 1242 -6.613519518949163 32.41191777411576
1250 POINT 1243 -5.586073763699214 32.40488779735104
1251 POINT 1244 -4.558141198059786 32.40119064612167
1252 POINT 1245 -3.535940044697491 32.40633890872039
1253 POINT 1246 -2.519295876494282 32.41479259504359
1254 POINT 1247 -1.507828324987365 32.42353533511525
1255 POINT 1248 -0.5019149230875003 32.43049565557803
1256 POINT 1249 0.5019150823275319 32.43049567799903
1257 POINT 1250 1.507828527783088 32.42353546677084
1258 POINT 1251 2.519296107078045 32.41479297153293
1259 POINT 1252 3.535940160588894 32.40633951541907
1260 POINT 1253 4.558141018794441 32.40119120765029
1261 POINT 1254 5.58607332108212 32.40488811417254
1262 POINT 1255 6.613519029401044 32.41191787120312
1263 POINT 1256 7.642035101328529 32.4286399487375
1264 POINT 1257 8.662564215711519 32.43904959879422
1265 POINT 1258 9.687662207059672 32.45538705154674
1266 POINT 1259 10.70587327603016 32.43471639543523
1267 POINT 1260 11.77212124413756 32.45232461789568
1268 POINT 1261 12.86506864437663 32.5289155171651
1269 POINT 1262 13.9319031453721 32.65477802453022
1270 POINT 1263 14.74688388336436 32.29703064706029
1271 POINT 1264 15.74070577682765 32.33815957294095
1272 POINT 1265 -15.07552072766293 33.14262814282181
1273 POINT 1266 -14.47383699079426 33.80246509548604
1274 POINT 1267 -13.45485613851754 33.44616152809291
1275 POINT 1268 -12.31042376721847 33.31655850201416
1276 POINT 1269 -11.2135033566313 33.30180198841559
1277 POINT 1270 -10.20833474124087 33.37195219581763
1278 POINT 1271 -9.180106558323141 33.35165297473918
1279 POINT 1272 -8.167116093012913 33.3442344487901
1280 POINT 1273 -7.135707070230799 33.31483801144155
1281 POINT 1274 -6.105345665605076 33.30379118897195
1282 POINT 1275 -5.06957725725357 33.29468673625933
1283 POINT 1276 -4.041801375578952 33.30179332186751
1284 POINT 1277 -3.020762110140957 33.31421796476505
1285 POINT 1278 -2.005808444215231 33.32826293060971
1286 POINT 1279 -1.000289102538041 33.34360137140605
1287 POINT 1280 4.397051474314129e-08 33.34996601347633
1288 POINT 1281 1.000289226544982 33.34360139490249
1289 POINT 1282 2.005808652593252 33.32826315749907
1290 POINT 1283 3.020762356793561 33.31421864049496
1291 POINT 1284 4.04180140274841 33.30179435588055
1292 POINT 1285 5.069576774752012 33.29468759101248
1293 POINT 1286 6.105344800786285 33.30379157372327
1294 POINT 1287 7.135706209600581 33.31483800284786
1295 POINT 1288 8.167115522703435 33.3442342276991
1296 POINT 1289 9.180106333286005 33.35165308658632
1297 POINT 1290 10.20833438162417 33.37195324049043
1298 POINT 1291 11.21350253681438 33.30180425811116
1299 POINT 1292 12.31042180764285 33.31656140263814
1300 POINT 1293 13.4548524153751 33.44616582254692
1301 POINT 1294 14.47383044482127 33.80247196173818
1302 POINT 1295 15.07551512015369 33.14263458603429
1303 POINT 1296 -13.79621587368983 34.47979377169069
1304 POINT 1297 -12.80117612552641 34.14340935306568
1305 POINT 1298 -11.67938708456585 34.12832297638581
1306 POINT 1299 -10.72142132443546 34.29425844362311
1307 POINT 1300 -9.682832980733666 34.26424534470635
1308 POINT 1301 -8.688207103612132 34.27689307018375
1309 POINT 1302 -7.65563025945943 34.22402537362621
1310 POINT 1303 -6.627660152089107 34.20733211365729
1311 POINT 1304 -5.582314868145199 34.18559033550888
1312 POINT 1305 -4.548886327711884 34.19487513879358
1313 POINT 1306 -3.522722983675548 34.21111636664738
1314 POINT 1307 -2.501187911497048 34.22961986771382
1315 POINT 1308 -1.494394684397123 34.25705724567609
1316 POINT 1309 -0.4971265849464807 34.27519845138761
1317 POINT 1310 0.4971265078887681 34.27519841977612
1318 POINT 1311 1.494394688445157 34.25705727178087
1319 POINT 1312 2.501188049285862 34.22962028369921
1320 POINT 1313 3.522723188878942 34.21111756307139
1321 POINT 1314 4.548886155833521 34.19487684951891
1322 POINT 1315 5.582313876849914 34.18559156986573
1323 POINT 1316 6.627658663296168 34.20733251253952
1324 POINT 1317 7.655628853358176 34.22402516036131
1325 POINT 1318 8.68820599240011 34.27689283063138
1326 POINT 1319 9.682831841060921 34.26424634549341
1327 POINT 1320 10.72141915815556 34.29426114991747
1328 POINT 1321 11.67938420379727 34.12832694300539
1329 POINT 1322 12.80117158164824 34.14341469815486
1330 POINT 1323 13.79620812794538 34.47980114816573
1331 POINT 1324 -13.06808813704192 35.14018072687722
1332 POINT 1325 -12.14172620096994 34.87954210817981
1333 POINT 1326 -11.26850255798744 35.2174633859475
1334 POINT 1327 -10.17404344203454 35.15495143560162
1335 POINT 1328 -9.208060341626505 35.23313312650344
1336 POINT 1329 -8.164338718552617 35.1425249690552
1337 POINT 1330 -7.149966973739355 35.12413503072115
1338 POINT 1331 -6.093958485983832 35.07390856861841
1339 POINT 1332 -5.058078832983085 35.0862120839201
1340 POINT 1333 -4.028041239492521 35.10535340409478
1341 POINT 1334 -2.995366542760057 35.12335223032324
1342 POINT 1335 -1.984673994347679 35.16616214935111
1343 POINT 1336 -0.9889440302704526 35.202230425387
1344 POINT 1337 -2.362829220701329e-07 35.21561385455021
1345 POINT 1338 0.9889435978667032 35.20223033196604
1346 POINT 1339 1.984673688665513 35.16616222501731
1347 POINT 1340 2.995366465565271 35.12335296470669
1348 POINT 1341 4.028041331825868 35.10535544561446
1349 POINT 1342 5.05807832979828 35.08621479165007
1350 POINT 1343 6.093956728733247 35.07391022323044
1351 POINT 1344 7.149964603949941 35.12413537360996
1352 POINT 1345 8.16433638165371 35.14252466978046
1353 POINT 1346 9.208057389898194 35.23313393742545
1354 POINT 1347 10.17403944712447 35.15495471543825
1355 POINT 1348 11.26849645211291 35.21746853325359
1356 POINT 1349 12.14171999880287 34.87954795411678
1357 POINT 1350 13.0680787036588 35.14018886919808
1358 POINT 1351 -12.25874524554923 35.80263158479386
1359 POINT 1352 -10.64940816662681 35.9609434482652
1360 POINT 1353 -9.738993523076187 36.21117036120386
1361 POINT 1354 -8.645496887251596 36.05535363229623
1362 POINT 1355 -7.660082219217359 36.07236004253533
1363 POINT 1356 -6.59386247522779 35.96253496561209
1364 POINT 1357 -5.568601871711349 35.98133911135642
1365 POINT 1358 -4.542278169739824 36.00016620825533
1366 POINT 1359 -3.491371001354527 36.00500762088945
1367 POINT 1360 -2.474010083407105 36.06498819452312
1368 POINT 1361 -1.477289195045545 36.12504113606641
1369 POINT 1362 -0.4912059285544867 36.15975599214231
1370 POINT 1363 0.4912047027322386 36.15975590621064
1371 POINT 1364 1.477288036732875 36.12504100856928
1372 POINT 1365 2.474009154113311 36.06498836685221
1373 POINT 1366 3.491370484225889 36.005008798768
1374 POINT 1367 4.542278089478654 36.00016955223765
1375 POINT 1368 5.568600813180165 35.98134321823733
1376 POINT 1369 6.593859519726857 35.96253699972355
1377 POINT 1370 7.660078711252875 36.07236031674334
1378 POINT 1371 8.64549260236045 36.05535452011431
1379 POINT 1372 9.738986372954258 36.21117440008044
1380 POINT 1373 10.64940057210636 35.96094915519707
1381 POINT 1374 12.25873414120749 35.80264019887823
1382 POINT 1375 -11.51773025350177 36.35059294972418
1383 POINT 1376 -10.65697659081121 36.92420899016856
1384 POINT 1377 -9.073839610332337 36.90105300548846
1385 POINT 1378 -8.146483166419303 37.06536476868484
1386 POINT 1379 -7.049598100139526 36.85375720886346
1387 POINT 1380 -6.068285778904927 36.89990321056391
1388 POINT 1381 -5.072991493907814 36.90817616854977
1389 POINT 1382 -3.99387954502805 36.86886824762014
1390 POINT 1383 -2.967956221366422 36.948391661155
1391 POINT 1384 -1.969359381657599 37.03579454421214
1392 POINT 1385 -0.9811568690244843 37.09928427270614
1393 POINT 1386 -1.321646322029191e-06 37.12286421524274
1394 POINT 1387 0.9811542273605319 37.09928414206929
1395 POINT 1388 1.969356939200988 37.03579438002285
1396 POINT 1389 2.967954164856175 36.94839197135881
1397 POINT 1390 3.993878153189894 36.86886991249742
1398 POINT 1391 5.072990965328807 36.90818161389328
1399 POINT 1392 6.068283175739424 36.89990903124271
1400 POINT 1393 7.049593675630685 36.85375859784719
1401 POINT 1394 8.146477155142176 37.06536635726837
1402 POINT 1395 9.073831993817508 36.90105705402716
1403 POINT 1396 10.65696264541113 36.92421777141614
1404 POINT 1397 11.51771778734179 36.35060173116444
1405 POINT 1398 -9.874844025420192 37.39216649740979
1406 POINT 1399 -8.96740748095799 37.87695732138048
1407 POINT 1400 -7.438938982686154 37.68347468260948
1408 POINT 1401 -6.50593626267252 37.87694008295671
1409 POINT 1402 -5.61747021210558 37.87127533952164
1410 POINT 1403 -4.50493919684402 37.70762847888211
1411 POINT 1404 -3.474895680182776 37.81110994000395
1412 POINT 1405 -2.47779011320007 37.9305818016129
1413 POINT 1406 -1.486534122834006 38.0216095618874
1414 POINT 1407 -0.4945352453330601 38.07921156797903
1415 POINT 1408 0.4945300811634933 38.07921159550066
1416 POINT 1409 1.486529221010789 38.02160930967654
1417 POINT 1410 2.477785571750189 37.9305816710405
1418 POINT 1411 3.474891600531238 37.81111046960394
1419 POINT 1412 4.504935871545127 37.70763053498042
1420 POINT 1413 5.617467804911568 37.87128486851104
1421 POINT 1414 6.505933128734337 37.87694376153858
1422 POINT 1415 7.438934268999978 37.68347575716164
1423 POINT 1416 8.967392296606542 37.87696493811983
1424 POINT 1417 9.874829237160435 37.39217489381149
1425 POINT 1418 -8.147493943469181 38.26522221165496
1426 POINT 1419 -7.204335412055579 38.65737257146897
1427 POINT 1420 -6.323312496190199 38.97408019050001
1428 POINT 1421 -5.01203726983948 38.51297624845616
1429 POINT 1422 -4.001501092985738 38.651230540567
1430 POINT 1423 -3.020444675311309 38.806876475282
1431 POINT 1424 -2.033095442850132 38.92553139969691
1432 POINT 1425 -1.029249995848707 39.00470609623093
1433 POINT 1426 -4.74370389105111e-06 39.04491520100409
1434 POINT 1427 1.029241328499785 39.00470590960975
1435 POINT 1428 2.033087058128695 38.92553128934863
1436 POINT 1429 3.020436112344315 38.80687697855863
1437 POINT 1430 4.001492023142893 38.65123203877156
1438 POINT 1431 5.01202711215084 38.51297927624825
1439 POINT 1432 6.323297249481397 38.97408527161986
1440 POINT 1433 7.204321660158831 38.6573778816041
1441 POINT 1434 8.147479092148298 38.26522883631657
1442 POINT 1435 -5.49459488339432 39.2304297161394
1443 POINT 1436 -4.555054134591538 39.47438013983862
1444 POINT 1437 -3.625104797446435 39.66872174818514
1445 POINT 1438 -2.68641217378018 39.8187585290443
1446 POINT 1439 -1.753727660812683 39.92296262335634
1447 POINT 1440 -0.8514203504713909 39.98186887129251
1448 POINT 1441 0.8514156417348741 39.98186906132761
1449 POINT 1442 1.753718582443226 39.92296341244428
1450 POINT 1443 2.686399886263002 39.81876019460063
1451 POINT 1444 3.625089980059974 39.66872447914377
1452 POINT 1445 4.555037417817725 39.47438404988157
1453 POINT 1446 5.494577273669186 39.23043474765144
1454 POINT 1447 -10.17836236469941 9.351236080585844
1455 POINT 1448 -10.43178822028154 9.796311205363828
1456 POINT 1449 -9.917078319793836 9.803182550031517
1457 POINT 1450 -0.4257127323325477 0.4866079094147974
1458 POINT 1451 -2.371846788213477e-06 0.477542337394691
1459 POINT 1452 -0.4258068646365975 0.004533301166143754
1460 POINT 1453 -7.678410559861725 1.532677211575885
1461 POINT 1454 -7.321632913802258 1.829573658302515
1462 POINT 1455 -7.793213434540115 2.025649120773706
1463 POINT 1456 -0.4257125470876409 39.5133920361483
1464 POINT 1457 -2.371851945525555e-06 39.52245760050205
1465 POINT 1458 -0.4258066792652949 39.99546670279175
1466 POINT 1459 19.49788122060637 21.77367208818195
1467 POINT 1460 19.87859224467908 22.20035688754039
1468 POINT 1461 19.44771880960396 22.22685226353656
1469 POINT 1462 19.95652174895268 21.31804389755909
1470 POINT 1463 19.52620596169076 21.34480675106996
1471 POINT 1464 -18.50178077972164 27.59500547042333
1472 POINT 1465 -18.00418516392628 27.60561553936703
1473 POINT 1466 -18.19154542750159 27.14919736516595
1474 POINT 1467 2.318125029883721 20.44808511760801
1475 POINT 1468 2.823024436302765 20.4446500619237
1476 POINT 1469 2.535961498642024 20.89273520263026
1477 POINT 1470 -18.1915204806717 12.85075360776577
1478 POINT 1471 -18.00416183249957 12.39434254388758
1479 POINT 1472 -18.50176221811813 12.40494933886966
1480 POINT 1473 -10.43863716835151 8.90091854855763
1481 POINT 1474 -9.923927267863803 8.907789893225319
1482 POINT 1475 -10.95968604283294 7.131741057062447
1483 POINT 1476 -11.49280931695378 7.122937192173756
1484 POINT 1477 -11.23899374083607 7.556481059276784
1485 POINT 1478 -10.96516006976062 8.002771637036583
1486 POINT 1479 -11.49828334388146 7.993967772147892
1487 POINT 1480 -10.70432587216095 8.448865355552398
1488 POINT 1481 -10.95876096899656 8.892311542912923
1489 POINT 1482 -10.44503626911557 8.01137864268129
1490 POINT 1483 14.20285675279642 6.771375017633135
1491 POINT 1484 14.50369851507584 7.101292773533388
1492 POINT 1485 14.77834984324904 6.524081630761735
1493 POINT 1486 12.23551226998423 9.30208580312808
1494 POINT 1487 11.99907300324982 8.856939970398869
1495 POINT 1488 12.50944368805203 8.841146276347569
1496 POINT 1489 11.97221231742172 9.765815913514722
1497 POINT 1490 12.48258300222394 9.750022219463421
1498 POINT 1491 -0.4905789853227912 2.888925581404812
1499 POINT 1492 -0.7361812304740789 3.37047972852181
1500 POINT 1493 -0.2456035667837216 3.358689771784562
1501 POINT 1494 -4.783548996192389 1.006323236939901
1502 POINT 1495 -5.026302453506227 0.6418935979999102
1503 POINT 1496 -5.253316898193344 1.128297748069279
1504 POINT 1497 -4.278279517467413 0.9371948906828067
1505 POINT 1498 -4.50677415895651 1.41789821597725
1506 POINT 1499 -3.813305411122727 0.8400241846748683
1507 POINT 1500 -4.09123434595309 0.4229266387245523
1508 POINT 1501 1.893402820285961 39.42424735089645
1509 POINT 1502 2.359743472195849 39.37214574197463
1510 POINT 1503 2.220670538841968 39.87633322383852
1511 POINT 1504 0.2472626687298011 38.56206339825238
1512 POINT 1505 -2.582084783431249e-06 38.07921158173984
1513 POINT 1506 -0.2472699945184756 38.56206338449157
1514 POINT 1507 10.65318160875874 36.4425834633066
1515 POINT 1508 11.08355917972408 36.15577544318076
1516 POINT 1509 11.09104919162302 36.64297534268243
1517 POINT 1510 4.506759567646867 38.5821056575099
1518 POINT 1511 4.758481491847984 38.11030490561433
1519 POINT 1512 4.25321394734401 38.179431286876
1520 POINT 1513 4.783532264984283 38.9936816630649
1521 POINT 1514 5.253302192910013 38.87170701194984
1522 POINT 1515 5.026287577931008 39.35811027344018
1523 POINT 1516 4.278264720480308 39.06280804432657
1524 POINT 1517 2.271388089598089 31.06354615904246
1525 POINT 1518 1.765500457793982 31.06477028013021
1526 POINT 1519 2.019775060864925 30.61385016680937
1527 POINT 1520 2.52391207978878 31.51196247936205
1528 POINT 1521 2.778186682859723 31.06104236604121
1529 POINT 1522 19.58406521140076 19.55566934611801
1530 POINT 1523 19.59394271675515 20.00002569416793
1531 POINT 1524 19.99506063684425 19.5555338953416
1532 POINT 1525 19.58406161774156 20.44446277646284
1533 POINT 1526 19.99505884072375 20.44454692352635
1534 POINT 1527 17.47612722659238 20.45170520807109
1535 POINT 1528 17.94956809694392 20.45199983601073
1536 POINT 1529 17.76408318096152 19.99954840147309
1537 POINT 1530 17.09376279229357 20.90344554562439
1538 POINT 1531 16.90827787631117 20.45099411108675
1539 POINT 1532 17.65639440029453 29.39423957186695
1540 POINT 1533 17.13332166556852 29.38219151942949
1541 POINT 1534 17.36874302811696 28.9397190446526
1542 POINT 1535 13.61482989783698 32.16078664038712
1543 POINT 1536 14.07640103797599 32.09309983360238
1544 POINT 1537 13.75932779044087 31.59910844945928
1545 POINT 1538 16.10341413477412 30.21256867861998
1546 POINT 1539 16.63239269868544 30.24523358242805
1547 POINT 1540 16.3698240483532 30.66455297149614
1548 POINT 1541 16.89070536402862 29.81350550472902
1549 POINT 1542 16.60859908664627 29.36193530425236
1550 POINT 1543 17.1625462541375 30.26873928275396
1551 POINT 1544 16.0904668374591 31.08225823633646
1552 POINT 1545 16.6246937806281 31.11843321269683
1553 POINT 1546 15.81288509623059 31.48985754125695
1554 POINT 1547 16.04545280411266 31.9391559472781
1555 POINT 1548 15.51319388940625 31.89262312523499
1556 POINT 1549 15.56326374321337 31.03948737260855
1557 POINT 1550 13.77222000363087 24.39434126697991
1558 POINT 1551 13.50730940690564 24.83959165127776
1559 POINT 1552 14.02976238006146 24.83530625723629
1560 POINT 1553 12.98553330932471 9.758991772893435
1561 POINT 1554 12.72223335676221 10.22272188328008
1562 POINT 1555 16.25410351335674 12.9148587217591
1563 POINT 1556 16.01906260946011 13.38331048867258
1564 POINT 1557 16.5117595380726 13.37602992964366
1565 POINT 1558 16.89069502922413 10.18647787299363
1566 POINT 1559 16.60858850912514 10.63804911311348
1567 POINT 1560 17.13330989107297 10.61778909765387
1568 POINT 1561 16.09214844821832 10.65648742134303
1569 POINT 1562 16.33476331006715 11.08779864600327
1570 POINT 1563 -17.80117652624369 28.04993852124202
1571 POINT 1564 -17.49657169072127 27.60644176445565
1572 POINT 1565 -19.58406168080147 20.44446288474986
1573 POINT 1566 -19.59394278438359 20.00002569746599
1574 POINT 1567 -19.99505883837563 20.44454702859078
1575 POINT 1568 -18.996847002171 20.45276507073249
1576 POINT 1569 -19.3930231142053 20.89717656055036
1577 POINT 1570 -19.58406527491918 19.55566925469715
1578 POINT 1571 -19.99506063472496 19.55553380055498
1579 POINT 1572 -18.99703876946375 19.54715259717118
1580 POINT 1573 -19.39321847561576 19.10277045693634
1581 POINT 1574 -1.233845495929245 37.56044691729677
1582 POINT 1575 -0.9905346840835332 38.05041056493322
1583 POINT 1576 -0.7378460571787722 37.58924792034259
1584 POINT 1577 -1.759814782842069 38.47357048079215
1585 POINT 1578 -1.982162118017038 37.97609568175015
1586 POINT 1579 -2.255442778025101 38.42805660065491
1587 POINT 1580 -1.503048773376636 33.33593215100788
1588 POINT 1581 -1.756818384601298 32.87589913286249
1589 POINT 1582 -1.254058713762703 32.88356835326066
1590 POINT 1583 13.51221711522611 31.16406500489199
1591 POINT 1584 13.97378825536513 31.09637819810725
1592 POINT 1585 1.775181014606737 21.33393361663671
1593 POINT 1586 1.267840964225153 21.33711381427801
1594 POINT 1587 1.523722041841396 20.89935045595586
1595 POINT 1588 1.265170094048079 22.20914709544139
1596 POINT 1589 1.77056085321017 22.20855342148825
1597 POINT 1590 1.516431010267755 22.64600354197079
1598 POINT 1591 1.012728381227997 21.77259296305717
1599 POINT 1592 0.7612694084626562 21.33800980237632
1600 POINT 1593 0.758598538285582 22.21004308353971
1601 POINT 1594 1.847863631555612 20.4480851260611
1602 POINT 1595 1.340523581174028 20.45126532370239
1603 POINT 1596 2.134926569216352 19.99999998535455
1604 POINT 1597 2.280691513968954 21.33225925723105
1605 POINT 1598 2.785590920387998 21.32882420154674
1606 POINT 1599 2.02481043635271 21.7700226155532
1607 POINT 1600 2.78116495724771 22.20597296072012
1608 POINT 1601 2.276071352572386 22.20687906208259
1609 POINT 1602 2.52691537410517 22.64450376665516
1610 POINT 1603 -9.899143737765993 12.4849004435783
1611 POINT 1604 -9.387390829537839 12.48845944608934
1612 POINT 1605 -9.645780226280916 12.0410160502686
1613 POINT 1606 -11.94630637827111 14.2647893097616
1614 POINT 1607 -12.46345218922917 14.26650973789091
1615 POINT 1608 -12.20840695700918 14.7105827019253
1616 POINT 1609 -13.22907293656634 11.13290745457848
1617 POINT 1610 -13.48445463159971 11.58282180341283
1618 POINT 1611 -12.9714364037251 11.58072072087271
1619 POINT 1612 -12.45912889682464 11.58045014485459
1620 POINT 1613 -11.9508016855418 11.57834567717223
1621 POINT 1614 -12.20772749740889 11.128701904356
1622 POINT 1615 -12.71451059185801 12.03036449368894
1623 POINT 1616 -13.62553305310023 6.037019882652965
1624 POINT 1617 -14.1390779208095 5.854807348663457
1625 POINT 1618 -13.96434315411798 6.375683521723212
1626 POINT 1619 -13.39847526011537 7.408160088352634
1627 POINT 1620 -13.61481920361369 7.839222070915377
1628 POINT 1621 -13.0814052589453 7.902150069513514
1629 POINT 1622 -13.69337197744059 6.949534963734737
1630 POINT 1623 -13.1599580327722 7.012462962332874
1631 POINT 1624 -14.5037016745593 7.101298192194127
1632 POINT 1625 -14.20286038146115 6.771380647742971
1633 POINT 1626 -14.7783559058492 6.524088291719242
1634 POINT 1627 -13.23627871209868 9.312480837244131
1635 POINT 1628 -13.51221183367959 8.835940044420862
1636 POINT 1629 -13.02181608086271 8.809752844899524
1637 POINT 1630 -16.36981698070831 9.335436989756825
1638 POINT 1631 -16.09046066583428 8.917733609398496
1639 POINT 1632 -16.62468707069794 8.881556790786455
1640 POINT 1633 -15.56325712327145 8.960504702078703
1641 POINT 1634 -15.81287888901091 8.510134528156787
1642 POINT 1635 -15.51318860052802 8.107370522015474
1643 POINT 1636 -16.04544791423854 8.060837516432803
1644 POINT 1637 -12.46766878840969 10.67227976168969
1645 POINT 1638 -11.95934157712685 10.67017529400733
1646 POINT 1639 -10.71091751983426 6.663122417067669
1647 POINT 1640 -10.45710194371655 7.096666284170696
1648 POINT 1641 -10.46487666458869 6.166894149966415
1649 POINT 1642 -10.96746076370507 6.201968922858168
1650 POINT 1643 -10.44773102895123 5.275394031275448
1651 POINT 1644 -10.20212605088105 5.720747497892338
1652 POINT 1645 -9.928437171372778 5.290400873410871
1653 POINT 1646 -9.945582807010235 6.18190099210184
1654 POINT 1647 -13.2986928764065 5.688395693536721
1655 POINT 1648 -13.12801457340368 6.205213648598734
1656 POINT 1649 -11.74872710378692 8.418130127367466
1657 POINT 1650 -12.02256077486237 7.971839549607667
1658 POINT 1651 -12.50944374702482 8.841147771275015
1659 POINT 1652 -12.78537686860573 8.36460697845175
1660 POINT 1653 -12.56903292510741 7.933544995889006
1661 POINT 1654 -12.31858916520195 7.509382640669432
1662 POINT 1655 13.43619694655841 5.185526953886848
1663 POINT 1656 12.93462220614015 5.358195834077412
1664 POINT 1657 13.29868673147849 5.68838933264013
1665 POINT 1658 12.6048962546636 4.990129099323558
1666 POINT 1659 12.47144390129601 5.488517379573725
1667 POINT 1660 12.66773340441992 4.523290710179079
1668 POINT 1661 12.20022404450319 4.658903670708396
1669 POINT 1662 10.71091693015139 6.663120759878266
1670 POINT 1663 10.46487540167239 6.166892274467385
1671 POINT 1664 10.96745927067751 6.201966434828546
1672 POINT 1665 11.47479568277288 8.879068504656995
1673 POINT 1666 11.74872710084068 8.418128977876485
1674 POINT 1667 10.41171824790274 4.44204662093386
1675 POINT 1668 9.95651127773848 4.316934168875102
1676 POINT 1669 10.19419137109885 3.91393666291501
1677 POINT 1670 10.72126631852727 4.813787013527604
1678 POINT 1671 10.99495611235534 5.244133924789459
1679 POINT 1672 10.44772794837044 5.275391038155809
1680 POINT 1673 10.95894641188764 4.410789507567511
1681 POINT 1674 11.39310410040094 4.215962651334707
1682 POINT 1675 11.08355602977641 3.844222258740964
1683 POINT 1676 11.76361231084955 4.489943298379086
1684 POINT 1677 11.89137865119184 3.919107181901866
1685 POINT 1678 11.70510621616581 4.951490272490563
1686 POINT 1679 10.26855741345323 2.837344939506088
1687 POINT 1680 10.19797132927438 3.43230183825083
1688 POINT 1681 9.806904421137391 3.198323297051241
1689 POINT 1682 10.65317829943864 3.557414290309588
1690 POINT 1683 11.09104496327604 3.357021849792107
1691 POINT 1684 15.24378585350844 7.682394375166194
1692 POINT 1685 14.91119126151212 7.280158226193516
1693 POINT 1686 15.41335252508149 7.2552534786716
1694 POINT 1687 14.33938124011792 7.524093148708583
1695 POINT 1688 14.48388392770153 8.085767740880334
1696 POINT 1689 14.07639118126524 7.906902288220206
1697 POINT 1690 13.61481867571485 7.839218526827278
1698 POINT 1691 13.75932136329846 8.400893118999029
1699 POINT 1692 13.02181590626726 8.80975073334144
1700 POINT 1693 12.78537663953285 8.364604900612228
1701 POINT 1694 13.47592883520427 9.785178774102992
1702 POINT 1695 13.99000741695932 9.792862338836377
1703 POINT 1696 13.73926224561804 10.23937500144348
1704 POINT 1697 13.236278480666 9.312479110286336
1705 POINT 1698 13.51221143214682 8.835937734550996
1706 POINT 1699 13.97378393769721 8.903621495943923
1707 POINT 1700 11.4612780216533 9.774811388208361
1708 POINT 1701 11.70834875389301 10.2227478045437
1709 POINT 1702 1.893403551233607 0.5757525887353929
1710 POINT 1703 2.220671493500129 0.1236668831597823
1711 POINT 1704 2.359744414402249 0.6278542389056427
1712 POINT 1705 -9.020619693030262 2.610992623251209
1713 POINT 1706 -9.424238324783893 2.359599448271815
1714 POINT 1707 -9.474338358545761 2.853388073889197
1715 POINT 1708 -9.406414519116504 3.443886808846754
1716 POINT 1709 -9.192243991855898 3.8667371366121
1717 POINT 1710 -8.859666959835261 3.521795695676809
1718 POINT 1711 -9.806915390566399 3.198329514824488
1719 POINT 1712 -10.19798187725191 3.432308248445783
1720 POINT 1713 -10.26857176218753 2.83735353592188
1721 POINT 1714 -0.2472699682428073 1.437936441491353
1722 POINT 1715 -2.582068645534674e-06 1.920788194433522
1723 POINT 1716 0.2472626424805853 1.437936427731552
1724 POINT 1717 -0.247268257212236 2.398961916430443
1725 POINT 1718 0.2472643535111566 2.398961902670643
1726 POINT 1719 -0.7378459209025934 2.410751873167692
1727 POINT 1720 -3.510975514120101 1.270946662206892
1728 POINT 1721 -3.322776245011294 0.762200977161605
1729 POINT 1722 -2.853429843183762 0.6871825417534015
1730 POINT 1723 -3.156651266211425 0.2506822223484442
1731 POINT 1724 -2.526771255348011 1.133795929446323
1732 POINT 1725 -2.359754750523105 0.6278550165060958
1733 POINT 1726 -2.749118087874698 1.631270599590879
1734 POINT 1727 -2.255442995214041 1.571943074343573
1735 POINT 1728 1.53116419331424 38.96511859947919
1736 POINT 1729 1.391479955471506 39.46383466102701
1737 POINT 1730 0.7618857048316392 38.5419587525552
1738 POINT 1731 0.5146182923979471 39.02481055530693
1739 POINT 1732 1.257885274755287 38.51315760964314
1740 POINT 1733 1.759808139569742 38.47357029951259
1741 POINT 1734 0.9905296510871409 38.0504104525886
1742 POINT 1735 -0.4905790953354032 37.11107424397444
1743 POINT 1736 -0.2472682834896911 37.60103789161089
1744 POINT 1737 0.2472643797585856 37.6010379053717
1745 POINT 1738 1.263131334613411 23.08451873542055
1746 POINT 1739 1.768522093775502 23.0839250614674
1747 POINT 1740 10.17836399587573 30.64876633574936
1748 POINT 1741 10.43178957770394 30.2036916661421
1749 POINT 1742 9.917079336223154 30.19681981804171
1750 POINT 1743 2.526761585236505 38.86620413395363
1751 POINT 1744 2.853417999303659 39.31281858657962
1752 POINT 1745 4.533434559259351 36.88852576319535
1753 POINT 1746 4.788963418436968 37.30790607443685
1754 POINT 1747 4.24940701236751 37.28825022373893
1755 POINT 1748 -0.7511020128127708 32.88704851349204
1756 POINT 1749 -1.004871624037433 32.42701549534664
1757 POINT 1750 0.7570181843694639 30.16737890662038
1758 POINT 1751 0.2521487164707948 30.16753615186619
1759 POINT 1752 0.5048695270937089 29.71821296405268
1760 POINT 1753 1.009092401403684 30.61588819116551
1761 POINT 1754 1.261813212026598 30.16656500335199
1762 POINT 1755 5.068073916803044 30.6133100080666
1763 POINT 1756 4.814374367436898 31.05972795409684
1764 POINT 1757 5.32423717645129 31.06128530414202
1765 POINT 1758 16.9971372534731 13.37045922378724
1766 POINT 1759 16.76209634957647 13.83891099070072
1767 POINT 1760 18.58096903763212 13.77579904583797
1768 POINT 1761 18.85904395297749 13.34143701271937
1769 POINT 1762 18.41152250629444 13.29587573790125
1770 POINT 1763 18.68665357284071 14.64903426839365
1771 POINT 1764 18.29676492885642 15.05256270617449
1772 POINT 1765 18.88575798278899 15.06972612425592
1773 POINT 1766 17.78489646840998 15.09030766023127
1774 POINT 1767 17.98400087835825 15.51099951609354
1775 POINT 1768 18.5600217445983 14.22769376801203
1776 POINT 1769 18.11860781194196 14.17997612813817
1777 POINT 1770 19.15364966814478 14.24346421008305
1778 POINT 1771 17.67256729194256 14.23260556757826
1779 POINT 1772 17.69351458497638 13.7807108454042
1780 POINT 1773 18.99703873975269 19.54715250100616
1781 POINT 1774 19.39321851764313 19.1027704587883
1782 POINT 1775 18.52185804865407 19.54704832154459
1783 POINT 1776 18.71270474241169 19.9999472088743
1784 POINT 1777 17.69535052595289 15.99996226585984
1785 POINT 1778 18.20721898639934 15.96221731180307
1786 POINT 1779 14.56172135096343 23.94597916401752
1787 POINT 1780 15.08739392619418 23.94259090424376
1788 POINT 1781 14.82034555201745 24.38666761316468
1789 POINT 1782 19.39302316315837 20.89717655197163
1790 POINT 1783 18.9389913228763 21.35310913845178
1791 POINT 1784 18.99684697892711 20.45276516384465
1792 POINT 1785 18.5216662878285 20.45266098438309
1793 POINT 1786 18.23371033345935 20.90481779098108
1794 POINT 1787 18.44846900788159 21.34055417663924
1795 POINT 1788 18.58165180641398 21.78818437573758
1796 POINT 1789 17.87637081699702 21.33989302826688
1797 POINT 1790 14.33939351436823 32.47590433579525
1798 POINT 1791 14.48389140697212 31.91422614486741
1799 POINT 1792 15.01628294267461 31.87205866229466
1800 POINT 1793 14.75329046628237 31.48925416010179
1801 POINT 1794 15.24379483009601 32.31759511000062
1802 POINT 1795 13.51391520548446 23.95486250753157
1803 POINT 1796 13.2557163229842 23.51457606093689
1804 POINT 1797 12.99156814797479 23.95834021442671
1805 POINT 1798 14.03636817864028 23.9505771134901
1806 POINT 1799 14.30341655281701 23.50650040456918
1807 POINT 1800 14.0490662851837 23.06997473842002
1808 POINT 1801 14.57441945750685 23.06537678894744
1809 POINT 1802 14.06279368008757 21.3236640608961
1810 POINT 1803 13.53137856169023 21.32075100476631
1811 POINT 1804 13.79945769458797 20.88653785779963
1812 POINT 1805 16.48589251600749 21.75662015498322
1813 POINT 1806 16.7770188066016 21.32987302051025
1814 POINT 1807 16.23478715141826 21.32948158311302
1815 POINT 1808 17.3448681568828 21.33058411749459
1816 POINT 1809 17.55962683130505 21.76632050315274
1817 POINT 1810 16.93904168525997 24.42265130776862
1818 POINT 1811 17.21421228526815 24.86330083072308
1819 POINT 1812 16.6810332475078 24.83472173963332
1820 POINT 1813 17.1982158646259 23.98500607585395
1821 POINT 1814 16.66503682686555 23.95642698476418
1822 POINT 1815 19.16297996782281 24.02058583340057
1823 POINT 1816 19.25792778397388 23.55188868076646
1824 POINT 1817 19.6018346474257 23.97090400112769
1825 POINT 1818 18.66035549167398 24.06458002427793
1826 POINT 1819 18.99865807228879 24.48246002560036
1827 POINT 1820 14.55271823159151 24.83011771959528
1828 POINT 1821 15.07839080682226 24.82672945982152
1829 POINT 1822 14.28780763486628 25.27536810389313
1830 POINT 1823 13.48363738345204 10.68334955994101
1831 POINT 1824 13.99771596520709 10.69103312467439
1832 POINT 1825 17.49654751855807 12.39351922586987
1833 POINT 1826 17.22317514403901 12.87270591921469
1834 POINT 1827 17.0201728164883 12.42839146938536
1835 POINT 1828 17.91955247554229 13.28295754083165
1836 POINT 1829 18.19151987686094 12.8507518727688
1837 POINT 1830 17.47351195554288 13.33558698027175
1838 POINT 1831 18.00416107324389 12.39434056037404
1839 POINT 1832 18.50176146164216 12.40494748537886
1840 POINT 1833 17.80115874569317 11.95002611054472
1841 POINT 1834 16.79404890136688 11.97251973589774
1842 POINT 1835 16.52067652684781 12.45170642924257
1843 POINT 1836 16.02797959823532 12.45898698827148
1844 POINT 1837 15.78700936626793 12.00541048997754
1845 POINT 1838 15.52043635277687 12.46856278249407
1846 POINT 1839 16.05643793044336 11.55103582499389
1847 POINT 1840 15.5488946849849 11.56061161921647
1848 POINT 1841 16.57287799135018 11.53259751676433
1849 POINT 1842 17.07237428099067 11.50928255690713
1850 POINT 1843 15.83583901726724 10.22173398984722
1851 POINT 1844 15.57327102716685 9.802415814168842
1852 POINT 1845 16.10340565717593 9.787419712774863
1853 POINT 1846 15.56201381820924 10.67148352273701
1854 POINT 1847 16.63238319420686 9.754752209684828
1855 POINT 1848 17.16253549533622 9.731242758971581
1856 POINT 1849 16.36981520410647 9.335434034006447
1857 POINT 1850 16.62468438429443 8.881552759389605
1858 POINT 1851 16.09045850341202 8.917730295952133
1859 POINT 1852 -18.71270480363148 19.99994720870178
1860 POINT 1853 -18.52166623703531 20.45266088450229
1861 POINT 1854 -18.52185800432806 19.54704841094098
1862 POINT 1855 -19.52620606861738 21.34480663718991
1863 POINT 1856 -19.49788131345209 21.77367208204773
1864 POINT 1857 -19.95652172785348 21.31804421550326
1865 POINT 1858 -18.93899138998692 21.35310882317254
1866 POINT 1859 -15.41336472355292 32.74473177212385
1867 POINT 1860 -14.91120300548017 32.71982820066302
1868 POINT 1861 -15.24379759687971 32.31759127892943
1869 POINT 1862 -15.51319663933861 31.8926193258387
1870 POINT 1863 -15.01628432575631 31.8720563054135
1871 POINT 1864 -15.8128873248544 31.48985418888792
1872 POINT 1865 -16.04545639284706 31.93915110915433
1873 POINT 1866 -13.73926553271729 29.7606245440472
1874 POINT 1867 -13.9977196654956 29.30896632719983
1875 POINT 1868 -13.48364033262393 29.31665160461403
1876 POINT 1869 -16.63239437432929 30.24523068926878
1877 POINT 1870 -16.89070674738754 29.81350290745965
1878 POINT 1871 -17.16254826435143 30.26873590905672
1879 POINT 1872 -17.58991750209542 28.49978947605134
1880 POINT 1873 -18.10312108953776 28.50158849460802
1881 POINT 1874 -14.02976207391727 24.83530603116176
1882 POINT 1875 -13.50730912711314 24.83959146419358
1883 POINT 1876 -13.7722197102861 24.39434106981482
1884 POINT 1877 -9.910917163711101 29.30166999886159
1885 POINT 1878 -10.16379441977193 28.85693149401143
1886 POINT 1879 -10.42338196742408 29.30700642143803
1887 POINT 1880 -8.865707288319939 20.4402358718522
1888 POINT 1881 -8.354951980244287 20.44018950619541
1889 POINT 1882 -8.61056647960487 20.88042659780381
1890 POINT 1883 -8.86570719768363 19.55976134425465
1891 POINT 1884 -8.354952278862285 19.55980826280008
1892 POINT 1885 -8.610566687586559 19.11957082681093
1893 POINT 1886 -9.121386103645744 19.99999862799004
1894 POINT 1887 -9.377000603006326 20.44023571959844
1895 POINT 1888 -9.377000512370016 19.55976119200088
1896 POINT 1889 -8.865603022394847 21.32049699917977
1897 POINT 1890 -8.354847714319193 21.32045063352298
1898 POINT 1891 -8.099972462421654 21.76042830181979
1899 POINT 1892 -7.844935919631678 21.32035790044383
1900 POINT 1893 -8.354715320124482 22.20063713853177
1901 POINT 1894 -7.844803525436967 22.20054440545263
1902 POINT 1895 -8.865674199362843 22.20088990639256
1903 POINT 1896 -8.610505262378155 22.6410060100254
1904 POINT 1897 -8.354985291815844 16.91842867771209
1905 POINT 1898 -8.610508524984098 17.358992612215
1906 POINT 1899 -8.865944756334432 16.91817546724494
1907 POINT 1900 -5.563175305433118 20.88175519528509
1908 POINT 1901 -5.819523783751198 20.44055366808308
1909 POINT 1902 -5.314081970855431 20.4412012668848
1910 POINT 1903 -6.323600721688926 20.44055355863392
1911 POINT 1904 -6.07450738711124 19.99999963023362
1912 POINT 1905 -7.845909792127558 19.5598084686856
1913 POINT 1906 -7.337224145127458 19.55973210578316
1914 POINT 1907 -7.591126121765114 19.11954138245392
1915 POINT 1908 -7.085296070269434 19.99999935639965
1916 POINT 1909 -6.83051239990699 19.55973227016798
1917 POINT 1910 -8.101050302224628 19.99999898612932
1918 POINT 1911 -7.84590949350956 20.44018971208093
1919 POINT 1912 -4.813437732774505 20.44120133195445
1920 POINT 1913 -5.069786211092584 19.99999980475244
1921 POINT 1914 -4.81343786679399 19.55879836960208
1922 POINT 1915 -5.314082104874918 19.55879830453243
1923 POINT 1916 -4.309046734147286 19.55755213850044
1924 POINT 1917 -4.553342627929618 19.11635063828043
1925 POINT 1918 -4.309046659354325 20.44244765252682
1926 POINT 1919 -4.553342419117173 20.88364911465918
1927 POINT 1920 -6.321208714327986 18.67923371725688
1928 POINT 1921 -5.814542592123692 18.67893193845749
1929 POINT 1922 -6.067133751274726 18.23927391170671
1930 POINT 1923 -5.563175657876638 19.11824430669487
1931 POINT 1924 -5.309100694823378 18.67828450114469
1932 POINT 1925 -6.575529014970982 19.11917838177958
1933 POINT 1926 -6.828120174122017 18.6795203550288
1934 POINT 1927 -5.819524002175232 19.55944574184523
1935 POINT 1928 -6.323600940112959 19.55944563239606
1936 POINT 1929 -0.5146273697762991 39.02481064861751
1937 POINT 1930 -0.7618926205908836 38.54195883210498
1938 POINT 1931 -1.257892059341357 38.51315782905916
1939 POINT 1932 -1.53117271934942 38.96511874796391
1940 POINT 1933 -0.940335173160049 39.49328748376172
1941 POINT 1934 -1.391488828330695 39.46383435979364
1942 POINT 1935 -1.302906939267033 39.95751571405174
1943 POINT 1936 -1.893411551831407 39.42424701152662
1944 POINT 1937 -1.723324288351572 36.58041784013928
1945 POINT 1938 -1.475258125341042 37.06753940845914
1946 POINT 1939 -1.229223032035015 36.61216270438628
1947 POINT 1940 -2.223574747428835 37.48318817291252
1948 POINT 1941 -2.46865780151201 36.99209310268357
1949 POINT 1942 -2.722873167283246 37.43948673138395
1950 POINT 1943 -1.727946752245803 37.52870205304977
1951 POINT 1944 9.124384730034761 25.2901944687983
1952 POINT 1945 9.380903693723068 25.73399854252466
1953 POINT 1946 8.869536394962354 25.73292170940668
1954 POINT 1947 8.867787034579436 24.84742875339725
1955 POINT 1948 8.611808211452907 24.40495794646223
1956 POINT 1949 8.357038608147516 24.84664682874531
1957 POINT 1950 9.37915433334015 24.84850558651523
1958 POINT 1951 9.635034859880143 24.40616641167393
1959 POINT 1952 9.891632555335468 24.84893212707499
1960 POINT 1953 8.10306863199613 25.28792614032669
1961 POINT 1954 7.847089808869599 24.84545533339167
1962 POINT 1955 7.337860839610064 24.84465823087261
1963 POINT 1956 7.591830815761451 24.40337891929124
1964 POINT 1957 7.084483663987436 25.28568916804524
1965 POINT 1958 6.829224670879288 24.84361275394481
1966 POINT 1959 11.17838537690847 23.52246049961141
1967 POINT 1960 11.4371216212408 23.08138069299567
1968 POINT 1961 10.9206635519637 23.08206164870911
1969 POINT 1962 15.02252590981234 31.03532490076284
1970 POINT 1963 14.49013437410986 31.07749238333559
1971 POINT 1964 14.2430236988951 30.6424489387683
1972 POINT 1965 15.30010765104086 30.62772559584235
1973 POINT 1966 2.526915485973436 17.35549624102799
1974 POINT 1967 2.276071431689728 17.79312093621829
1975 POINT 1968 2.781165078003321 17.79402703104667
1976 POINT 1969 6.346618006894577 8.933221976655281
1977 POINT 1970 6.606300654387716 8.482722162553308
1978 POINT 1971 6.859007165943082 8.928198624363933
1979 POINT 1972 5.835923918840571 8.936439330716784
1980 POINT 1973 6.088630430395938 9.381915792527408
1981 POINT 1974 3.813293467525553 0.8400220701018267
1982 POINT 1975 4.278266624098441 0.9371921865469454
1983 POINT 1976 4.091218596162663 0.4229233416757498
1984 POINT 1977 0.7378420180172898 2.410751924726134
1985 POINT 1978 1.233841522613396 2.439553016285871
1986 POINT 1979 0.9905295332508535 1.949589272233458
1987 POINT 1980 0.4905763428736994 2.888925646723056
1988 POINT 1981 8.615527392862056 13.82496521644805
1989 POINT 1982 8.869539085606789 14.26707992304672
1990 POINT 1983 8.359008517018593 14.26876890588306
1991 POINT 1984 7.109843205144307 9.375226262222675
1992 POINT 1985 7.369525852637445 8.924726448120705
1993 POINT 1986 3.536686478737197 13.8361386042247
1994 POINT 1987 3.790057778698816 13.39355052709382
1995 POINT 1988 3.284192797098449 13.39405264356153
1996 POINT 1989 3.789177750276934 14.27725402423099
1997 POINT 1990 3.283312768676568 14.27775614069871
1998 POINT 1991 3.540719142764858 10.28304212363626
1999 POINT 1992 3.793978675026311 10.72885668139838
2000 POINT 1993 3.286497665917229 10.72924169735144
2001 POINT 1994 6.845584714338232 10.71830373756566
2002 POINT 1995 7.355184401511213 10.7157436111351
2003 POINT 1996 7.09778359222352 11.16341894215851
2004 POINT 1997 7.361673707732298 9.821191246260845
2005 POINT 1998 6.851155021037934 9.824663422504075
2006 POINT 1999 4.296500541441507 13.39272956312007
2007 POINT 2000 4.044006859802759 12.95064360245691
2008 POINT 2001 4.802971515540548 13.39198494333306
2009 POINT 2002 4.549022434436605 13.83489186796998
2010 POINT 2003 4.297887859095104 12.50674192674635
2011 POINT 2004 3.791445096352413 12.5075628907201
2012 POINT 2005 4.805074931872197 12.50557276622567
2013 POINT 2006 4.552513168421852 12.06249205448886
2014 POINT 2007 4.301274159001078 10.72795370371833
2015 POINT 2008 4.809681854713771 10.7267995158349
2016 POINT 2009 4.556607847586633 10.28150291979977
2017 POINT 2010 4.047052682153449 11.17415327743351
2018 POINT 2011 4.299837130886486 11.6184557573815
2019 POINT 2012 3.79254164691172 11.61935873506155
2020 POINT 2013 4.80702420366358 11.61728659686082
2021 POINT 2014 0.7573648401832791 10.72884628711409
2022 POINT 2015 0.2524954018262905 10.72868903454322
2023 POINT 2016 0.5048694975539831 10.28178714397273
2024 POINT 2017 2.779998485031843 10.72963471324423
2025 POINT 2018 3.033258017293297 11.17544927100636
2026 POINT 2019 1.22366534318951 19.99999999772072
2027 POINT 2020 0.8995237534752946 20.45126532761548
2028 POINT 2021 1.847863650156727 19.55191485745089
2029 POINT 2022 2.318125048484836 19.5519148489978
2030 POINT 2023 -18.93911412821423 18.64650966130721
2031 POINT 2024 -18.58166026436047 18.21127422426079
2032 POINT 2025 -18.44873810630657 18.65901836236396
2033 POINT 2026 -19.52614063366966 18.65502631883318
2034 POINT 2027 -18.87780139947743 17.75460066637132
2035 POINT 2028 -18.38742537756978 17.76710936742808
2036 POINT 2029 -19.25342558557374 17.32881436986417
2037 POINT 2030 -19.44766047236443 17.77297922669689
2038 POINT 2031 -11.69163369768068 12.03021037174421
2039 POINT 2032 -11.44023229826493 11.57846213124561
2040 POINT 2033 -11.43422134923478 12.47855566601287
2041 POINT 2034 -11.94479073651165 12.47843921193948
2042 POINT 2035 -10.92866196056182 11.58403125210506
2043 POINT 2036 -10.41689637261445 11.58759636307505
2044 POINT 2037 -10.66929872245644 12.03389193678758
2045 POINT 2038 -11.18782994842294 11.13216655753308
2046 POINT 2039 -9.904431558833004 11.59293222934731
2047 POINT 2040 -9.39267865060485 11.59649123185834
2048 POINT 2041 -9.139626886740061 11.15213642340234
2049 POINT 2042 -8.880975554187973 11.60022024432364
2050 POINT 2043 -10.16379479693838 11.14307154466478
2051 POINT 2044 -9.910917079266454 10.69833254287327
2052 POINT 2045 -10.4233818930479 10.69299667660101
2053 POINT 2046 -8.370126273665381 11.60298203772225
2054 POINT 2047 -8.62317803753017 12.04733684617825
2055 POINT 2048 -6.319914164590672 17.79970756621019
2056 POINT 2049 -5.813248042386378 17.79940578741079
2057 POINT 2050 -5.812970532530068 16.03929555219032
2058 POINT 2051 -6.066345556101558 16.47969823346978
2059 POINT 2052 -6.320151886932637 16.03908136247431
2060 POINT 2053 -5.812596328700657 16.91987593255003
2061 POINT 2054 -6.319777683103225 16.91966174283402
2062 POINT 2055 -5.306138086716437 16.03968131654242
2063 POINT 2056 -5.559944417547516 15.59906444554695
2064 POINT 2057 -4.799950565874155 16.03961222338507
2065 POINT 2058 -5.052976680856709 16.47984333002844
2066 POINT 2059 -6.574690167020133 15.59804862668566
2067 POINT 2060 -6.828065190591623 16.03845130796511
2068 POINT 2061 -15.25853880596588 12.9242213232549
2069 POINT 2062 -15.52043648370752 12.46856362456286
2070 POINT 2063 -15.01756861930122 12.47064487481246
2071 POINT 2064 -14.50591702520376 13.37825294329215
2072 POINT 2065 -13.99649188437294 13.37881945166879
2073 POINT 2066 -14.24624580072877 12.92686908188113
2074 POINT 2067 -14.50520649728844 12.47612567984228
2075 POINT 2068 -14.76710417503007 12.02046798115024
2076 POINT 2069 -13.99841660872912 11.58047866164933
2077 POINT 2070 -13.74078007588788 12.02829192794356
2078 POINT 2071 -13.99578135645762 12.47669218821891
2079 POINT 2072 -13.48181937932821 12.47903532998241
2080 POINT 2073 -17.13331118398057 10.61779162646253
2081 POINT 2074 -17.656383083496 10.60573919584698
2082 POINT 2075 -17.36873112769916 11.06026014994149
2083 POINT 2076 -16.02797983714253 12.45898801730209
2084 POINT 2077 -16.52067686245398 12.45170765846319
2085 POINT 2078 -16.25410369568363 12.9148597141664
2086 POINT 2079 -15.78700965047787 12.00541156885965
2087 POINT 2080 -17.58990196620047 11.50018232123824
2088 POINT 2081 -17.80115956030314 11.95002810346316
2089 POINT 2082 -18.10310561939233 11.49837858894322
2090 POINT 2083 -17.07237505905118 11.50928449184498
2091 POINT 2084 -17.49654816974892 12.39352110356614
2092 POINT 2085 -16.79404945073268 11.9725213123703
2093 POINT 2086 -16.57287861223137 11.53259914107355
2094 POINT 2087 -17.02017330927379 12.42839300923462
2095 POINT 2088 -17.22317558147022 12.87270744965903
2096 POINT 2089 -10.15245041339834 12.93005084479948
2097 POINT 2090 -10.41083981014142 12.48260744897875
2098 POINT 2091 -10.92260539808879 12.47904233800876
2099 POINT 2092 -11.17576243691975 12.92727117820404
2100 POINT 2093 -12.45674776247602 13.37407164467716
2101 POINT 2094 -12.19976115126335 12.92710572491763
2102 POINT 2095 -11.94436499927842 13.37375042596768
2103 POINT 2096 -12.45717349970925 12.47876043064897
2104 POINT 2097 -12.96948100660971 12.47903100666709
2105 POINT 2098 -13.22448228717945 12.92743126694244
2106 POINT 2099 -12.7156240960693 13.82239971451288
2107 POINT 2100 -12.97772467480737 14.26819310667658
2108 POINT 2101 -13.74302984524772 13.82714319818918
2109 POINT 2102 -13.48335862077273 13.37575933677816
2110 POINT 2103 -12.97102024805423 13.37575501346284
2111 POINT 2104 -12.66774364330618 4.523299107507239
2112 POINT 2105 -12.60490407255786 4.990136093565923
2113 POINT 2106 -12.20023269789926 4.658910900843035
2114 POINT 2107 -12.93462919488069 5.358202577882016
2115 POINT 2108 -12.47144927438711 5.488522975166397
2116 POINT 2109 -13.43620550685972 5.185534732811357
2117 POINT 2110 -14.33938229564766 7.524096539708034
2118 POINT 2111 -14.9111947654232 7.280162642147666
2119 POINT 2112 -15.24378862055976 7.682398206427763
2120 POINT 2113 -15.41335736818264 7.255259352596772
2121 POINT 2114 -15.01627536647982 8.127933305249282
2122 POINT 2115 -15.30010260228938 9.372269247130333
2123 POINT 2116 -15.02252082546601 8.964670165888624
2124 POINT 2117 -14.24302038469975 9.357551373852861
2125 POINT 2118 -14.50635377271081 9.811747310474253
2126 POINT 2119 -13.99000785292662 9.792863973386861
2127 POINT 2120 -16.10340678976494 9.787421896710498
2128 POINT 2121 -16.63238487037844 9.754755103146911
2129 POINT 2122 -16.89069641342317 10.18648047123871
2130 POINT 2123 -17.16253750713551 9.731246135309691
2131 POINT 2124 -16.60858944999246 10.6380511653244
2132 POINT 2125 -11.70834855106328 10.22274842325977
2133 POINT 2126 -11.44840726006248 10.67917056592608
2134 POINT 2127 -10.94524324959301 9.788054215548343
2135 POINT 2128 -10.68395920468744 10.24000068499402
2136 POINT 2129 -10.93683692235937 10.68473968678553
2137 POINT 2130 -11.47479555660216 8.87906931844303
2138 POINT 2131 -11.20910685279271 9.331122511448264
2139 POINT 2132 -11.46127783719861 9.774811991078451
2140 POINT 2133 -11.97221215426297 9.765816719159695
2141 POINT 2134 -12.23551219984005 9.302086962350581
2142 POINT 2135 -12.48258291370472 9.750023394531905
2143 POINT 2136 -11.99907298758307 8.856941095902805
2144 POINT 2137 -13.48363744127368 10.68335058227913
2145 POINT 2138 -12.97061921339908 10.68124949973901
2146 POINT 2139 -12.72223329311703 10.22272288939034
2147 POINT 2140 -13.73926247952205 10.23937626872396
2148 POINT 2141 -13.99771620268931 10.69103422356342
2149 POINT 2142 -13.47592909151099 9.785180332102566
2150 POINT 2143 -12.98553333869411 9.758993132581228
2151 POINT 2144 -10.99496024845769 5.244137851664762
2152 POINT 2145 -10.72127136894942 4.813791227183295
2153 POINT 2146 -11.76362091609507 4.48995017920419
2154 POINT 2147 -11.70511237026007 4.951495769211457
2155 POINT 2148 -11.39311338658647 4.215969615852156
2156 POINT 2149 -11.89139041445578 3.919115893213245
2157 POINT 2150 -12.24027988776031 5.8641325949175
2158 POINT 2151 -11.91055476543747 5.496066110601405
2159 POINT 2152 -11.20040264363509 5.788708193054712
2160 POINT 2153 -11.44644349888066 6.284936460155964
2161 POINT 2154 -11.47394298363328 5.327105388962559
2162 POINT 2155 -12.58774158616357 7.077264164985817
2163 POINT 2156 -12.04126943591853 7.115558718704478
2164 POINT 2157 -11.99490361784541 6.277557986686686
2165 POINT 2158 -12.55579812679505 6.270014851251677
2166 POINT 2159 -12.88263830348879 6.618639040367921
2167 POINT 2160 -11.7619617379154 6.690818716490142
2168 POINT 2161 12.04126828125696 7.115556461827698
2169 POINT 2162 11.49280873218955 7.122935250752073
2170 POINT 2163 11.76196034822392 6.690816131315052
2171 POINT 2164 11.49828322279317 7.993966546699665
2172 POINT 2165 12.0225605432701 7.971838012441538
2173 POINT 2166 12.88263546208822 6.61863544281538
2174 POINT 2167 13.12801043982883 6.205208828783831
2175 POINT 2168 12.55579487503194 6.270010728359129
2176 POINT 2169 13.69336976028337 6.949530619644269
2177 POINT 2170 13.96433801939816 6.375677941228949
2178 POINT 2171 13.62552731853477 6.037014047096381
2179 POINT 2172 14.13907079774611 5.854800214333848
2180 POINT 2173 11.99490119766059 6.277554553029752
2181 POINT 2174 11.44644164859318 6.284933341954128
2182 POINT 2175 11.20040012011418 5.788704856543246
2183 POINT 2176 11.91055022392465 5.49606120424435
2184 POINT 2177 12.2402761754012 5.864127938998204
2185 POINT 2178 11.47393849027101 5.327100831915041
2186 POINT 2179 9.945582057420673 6.181899969396367
2187 POINT 2180 10.20212439794679 5.720745644346648
2188 POINT 2181 9.928434604118719 5.290398733084792
2189 POINT 2182 8.556931258789588 2.528832819977453
2190 POINT 2183 8.146974075985931 2.334700766962239
2191 POINT 2184 8.559631278214885 1.92425070776564
2192 POINT 2185 15.01627398335804 8.127930948668869
2193 POINT 2186 15.51318585031227 8.107366722466351
2194 POINT 2187 15.56325582361871 8.960502416532755
2195 POINT 2188 15.81287665995519 8.510131175388402
2196 POINT 2189 16.04544432483895 8.060832677422217
2197 POINT 2190 14.75328392450536 8.510740088180491
2198 POINT 2191 13.08140472470578 7.902147488418196
2199 POINT 2192 13.39847454267256 7.408156657639373
2200 POINT 2193 13.15995580927431 7.012459581235187
2201 POINT 2194 12.58774024447741 7.077261480810485
2202 POINT 2195 12.31858862844304 7.509380600247505
2203 POINT 2196 12.56903250649056 7.933543031424325
2204 POINT 2197 10.94524346823205 9.788053798414385
2205 POINT 2198 11.20910703176076 9.331121907385405
2206 POINT 2199 10.95876112935163 8.892310914863021
2207 POINT 2200 10.43863740166071 8.90091810703888
2208 POINT 2201 10.70432605267283 8.448864704310473
2209 POINT 2202 10.17836257478566 9.351235759588613
2210 POINT 2203 9.923927498106863 8.907789549036064
2211 POINT 2204 10.43178843022046 9.796310885123368
2212 POINT 2205 9.917078526666614 9.803182327120552
2213 POINT 2206 10.683959420113 10.24000036594633
2214 POINT 2207 0.4257056342687726 0.4866078143970918
2215 POINT 2208 0.4258045314381747 0.00453325099778762
2216 POINT 2209 -8.556941856736707 2.528837422625263
2217 POINT 2210 -8.610159650802313 3.016790167285516
2218 POINT 2211 -8.395989123541707 3.439640495050862
2219 POINT 2212 -8.14698450737254 2.334704873539675
2220 POINT 2213 -7.792710741676334 2.625579213893601
2221 POINT 2214 -8.55964628277413 1.924257823018384
2222 POINT 2215 -9.473525601179848 4.277847459291598
2223 POINT 2216 -8.926778041898604 4.355756346121653
2224 POINT 2217 -9.691050900332758 4.805957037797565
2225 POINT 2218 -9.956516850290052 4.316937828288013
2226 POINT 2219 -8.686199335312255 4.812171506430753
2227 POINT 2220 -8.404917725988305 4.401061183751255
2228 POINT 2221 -9.445445922262575 5.251310504414456
2229 POINT 2222 -10.19419874351271 3.913941535915821
2230 POINT 2223 -10.41172404266562 4.442051114421789
2231 POINT 2224 -10.95895326217208 4.410794934811104
2232 POINT 2225 -11.08356606030267 3.84422950309065
2233 POINT 2226 -10.65318906962747 3.557421534579559
2234 POINT 2227 -11.09105814178689 3.357030647526714
2235 POINT 2228 -9.694219594930232 6.638197533051649
2236 POINT 2229 -9.431468981222594 6.192050880977571
2237 POINT 2230 -0.7570180027335149 9.832621255886785
2238 POINT 2231 -0.5048693800457256 10.28178717573282
2239 POINT 2232 -0.2521485634907947 9.832463971555836
2240 POINT 2233 -6.855131749277465 1.732845876664869
2241 POINT 2234 -6.972438504319116 2.219795679489987
2242 POINT 2235 -6.414622035057123 1.574492892908077
2243 POINT 2236 -6.765669841096464 1.179115021389632
2244 POINT 2237 -1.004871482698477 7.572984637225677
2245 POINT 2238 -1.257490486514399 8.028793797334046
2246 POINT 2239 -0.7545338586426834 8.025313601582315
2247 POINT 2240 -1.762470594293599 8.030999493773637
2248 POINT 2241 -1.512132970237805 8.483328458130275
2249 POINT 2242 -1.229222734249484 3.387837151439014
2250 POINT 2243 -0.9842473157104142 3.857601341818763
2251 POINT 2244 -2.760974422104667 6.228081510033119
2252 POINT 2245 -2.253497692870489 6.221058881823054
2253 POINT 2246 -2.513284803608339 6.678759929530004
2254 POINT 2247 -2.22068215594449 0.1236680774559861
2255 POINT 2248 -1.893412282768675 0.5757529280991733
2256 POINT 2249 -0.7618927259509458 1.458040956527683
2257 POINT 2250 -0.514627501401715 0.975189189825712
2258 POINT 2251 -0.9403354900406863 0.5067124244511273
2259 POINT 2252 -1.391489330979924 0.5361655784306855
2260 POINT 2253 -1.302907496264832 0.04248432242006185
2261 POINT 2254 -1.531173210898604 1.03488105453053
2262 POINT 2255 -1.759815051157529 1.526429257888473
2263 POINT 2256 -1.982161883684216 2.023903928033029
2264 POINT 2257 -0.9905345662098708 1.949589159885626
2265 POINT 2258 -1.233845294320426 2.439552824859994
2266 POINT 2259 -1.257892099368779 1.486841908219986
2267 POINT 2260 -4.253221810686109 1.820570946531706
2268 POINT 2261 -4.758491289411085 1.8896992927888
2269 POINT 2262 0.9403284851173297 39.49328748546868
2270 POINT 2263 1.302900066834092 39.9575161643721
2271 POINT 2264 0.4257054490154915 39.51339213116585
2272 POINT 2265 0.4258043460689575 39.99546675296004
2273 POINT 2266 0.7378421542620126 37.58924786878497
2274 POINT 2267 1.23384172418566 37.56044672587291
2275 POINT 2268 0.4905764528571049 37.11107417865601
2276 POINT 2269 -0.2485634106147014 34.74540615296891
2277 POINT 2270 -0.4944721332766874 35.20892213996861
2278 POINT 2271 -0.7430353076084667 34.7387144383873
2279 POINT 2272 0.248563135802923 34.74540613716317
2280 POINT 2273 -3.852885629984648e-08 34.27519843558186
2281 POINT 2274 -0.984247561800016 36.14239856410436
2282 POINT 2275 -0.7361813987894855 36.62952013242423
2283 POINT 2276 -0.2456036251004044 36.64131010369253
2284 POINT 2277 -0.7400749794124697 35.68099320876465
2285 POINT 2278 -1.233116612657999 35.66363578072671
2286 POINT 2279 -0.2456030824187044 35.68768492334626
2287 POINT 2280 -0.5050495520169673 27.93392892167996
2288 POINT 2281 -0.2524953199740186 28.37907783165175
2289 POINT 2282 -0.7575449060331049 28.37910298308664
2290 POINT 2283 0.5049254003565739 26.16245156440273
2291 POINT 2284 0.2524838536841221 26.60459196252057
2292 POINT 2285 0.7574092359319105 26.60463622076165
2293 POINT 2286 1.262484608430572 26.60474311400658
2294 POINT 2287 1.010043061758121 27.04688351212442
2295 POINT 2288 1.767930132642603 27.49060027590907
2296 POINT 2289 2.02050092362578 27.04726519540428
2297 POINT 2290 2.2733126220116 27.490875065944
2298 POINT 2291 4.294356946623791 24.8410616389421
2299 POINT 2292 4.547087505439189 24.40041073521517
2300 POINT 2293 4.800380884839186 24.84120087084955
2301 POINT 2294 4.293926155091318 23.96024866126563
2302 POINT 2295 4.799950093306713 23.96038789317308
2303 POINT 2296 3.788414878485399 23.96059221848699
2304 POINT 2297 4.041277466352923 23.5205693764449
2305 POINT 2298 1.514809999556898 24.40061413188652
2306 POINT 2299 1.767492707689488 23.96146212230959
2307 POINT 2300 1.262539709988568 23.9615922644941
2308 POINT 2301 7.321627964579404 38.17042681938287
2309 POINT 2302 7.793206680574138 37.97435229673911
2310 POINT 2303 7.678404262385088 38.46732542318286
2311 POINT 2304 6.972433698867157 37.78020975935011
2312 POINT 2305 6.855127394446583 38.26716082157134
2313 POINT 2306 6.414615189107867 38.42551451657923
2314 POINT 2307 6.765662894204413 38.82088748771397
2315 POINT 2308 5.835924386613025 31.06356123096226
2316 POINT 2309 6.346618511134158 31.06677866630198
2317 POINT 2310 6.088630850338571 30.61808479345149
2318 POINT 2311 5.582224837246878 31.5099791769925
2319 POINT 2312 10.95894851210964 35.58920884422533
2320 POINT 2313 11.39310711972735 35.78403513220901
2321 POINT 2314 10.72126794961869 35.18621162434592
2322 POINT 2315 10.41172000961541 35.55795193531766
2323 POINT 2316 10.44772930264001 34.72460793267786
2324 POINT 2317 10.99495780513424 34.75586484158553
2325 POINT 2318 9.020612145212025 37.38901099607349
2326 POINT 2319 9.424228545153195 37.64040579751443
2327 POINT 2320 9.474330615488972 37.14661597391932
2328 POINT 2321 8.40491449200708 35.59893959494738
2329 POINT 2322 8.926774996129321 35.64424422876988
2330 POINT 2323 8.686196885775953 35.18782930360295
2331 POINT 2324 8.152785656806662 36.06385741842882
2332 POINT 2325 7.912207546453292 35.6074424932619
2333 POINT 2326 9.956512910039363 35.68306455775935
2334 POINT 2327 9.473521881426226 35.72215416875295
2335 POINT 2328 9.691048418511331 35.19404432643185
2336 POINT 2329 10.19419347253031 36.08606177763876
2337 POINT 2330 9.192239487657353 36.13326446009738
2338 POINT 2331 9.406409183385882 36.55611572705381
2339 POINT 2332 8.859662298088979 36.47820578707073
2340 POINT 2333 10.19797450918269 36.5676960857483
2341 POINT 2334 9.806907805057346 36.80167464694597
2342 POINT 2335 10.26856200452538 37.16265232046304
2343 POINT 2336 6.871912061838399 35.54333618666676
2344 POINT 2337 7.405021657601408 35.59824784517664
2345 POINT 2338 7.126969115489866 36.01744865823345
2346 POINT 2339 7.657150492801826 35.13333002169522
2347 POINT 2340 6.621960666341595 35.0990227984202
2348 POINT 2341 6.888811633623055 34.66573394307474
2349 POINT 2342 6.360807696014708 34.64062136788498
2350 POINT 2343 6.343908124230053 35.518223611477
2351 POINT 2344 7.402796728654058 34.67408026698564
2352 POINT 2345 7.141643758327172 34.21567883645042
2353 POINT 2346 7.909982617505943 34.68327491507089
2354 POINT 2347 3.322763046202144 39.2378007288512
2355 POINT 2348 3.15663647718721 39.74932014657087
2356 POINT 2349 3.813291001601433 39.15997825895766
2357 POINT 2350 4.091217816567636 39.57707682242515
2358 POINT 2351 3.510964067743604 38.72905450866509
2359 POINT 2352 2.255436314939442 38.42805648019456
2360 POINT 2353 1.982157396380489 37.97609549035852
2361 POINT 2354 2.749110842047252 38.36872932479956
2362 POINT 2355 6.081230166453511 35.97194010898045
2363 POINT 2356 5.818441994459794 36.44062612474002
2364 POINT 2357 6.331071347733141 36.43122301548313
2365 POINT 2358 5.320795889254486 36.4447624160653
2366 POINT 2359 5.570637070534115 36.904045322568
2367 POINT 2360 5.831278770956706 35.52762672073389
2368 POINT 2361 5.970382527196483 38.42268507006546
2369 POINT 2362 6.061700466822952 37.87411431502481
2370 POINT 2363 5.314747458531205 38.19213207237964
2371 POINT 2364 5.061201838228348 37.78945770174573
2372 POINT 2365 5.345229385120188 37.38973324120216
2373 POINT 2366 5.842875490325496 37.38559694987687
2374 POINT 2367 6.287108152236881 37.38842639639064
2375 POINT 2368 5.556022539290377 38.55085980808124
2376 POINT 2369 5.910327271106762 39.10675356293056
2377 POINT 2370 4.527223806949365e-08 28.82425190516497
2378 POINT 2371 0.2524954118648361 29.271311063285
2379 POINT 2372 -0.2524953073975582 29.27131105117846
2380 POINT 2373 0.7573648797635052 29.27115381803919
2381 POINT 2374 0.2524953992883756 28.37907784375829
2382 POINT 2375 2.273105925774813 30.16491138028067
2383 POINT 2376 1.767218293970705 30.16613550136842
2384 POINT 2377 1.515144076936485 29.71762621682329
2385 POINT 2378 2.526574159573979 27.93457399209241
2386 POINT 2379 2.779582705512834 28.37954785163075
2387 POINT 2380 2.273750376967278 28.37918400598714
2388 POINT 2381 3.286081896042008 28.37994089986349
2389 POINT 2382 3.033258113435307 28.82455091375822
2390 POINT 2383 3.538866301224259 27.9356384317024
2391 POINT 2384 3.792541709146731 28.38064149382986
2392 POINT 2385 2.779144950557156 27.49123891158762
2393 POINT 2386 -0.2509574395584928 32.89023083452718
2394 POINT 2387 -0.5001445292837633 33.34678369244119
2395 POINT 2388 -0.248563270487983 33.81258223243197
2396 POINT 2389 -0.7487078437422611 33.80939991139683
2397 POINT 2390 0.2485632759296414 33.81258221662623
2398 POINT 2391 0.7557252605028959 31.06778977059484
2399 POINT 2392 0.5035766139793988 31.51991170020357
2400 POINT 2393 0.2521487272230526 31.06882402404262
2401 POINT 2394 1.512133316893194 31.51667185955954
2402 POINT 2395 1.257490837521165 31.97120645676332
2403 POINT 2396 1.762471007155117 31.96900086956706
2404 POINT 2397 1.26052028816003 31.06697586732646
2405 POINT 2398 4.299971210771425 32.85149278176542
2406 POINT 2399 4.813858896773226 32.84793939933139
2407 POINT 2400 4.555689088750212 33.29824097344651
2408 POINT 2401 4.047040589691667 32.40376536153468
2409 POINT 2402 3.788870781668652 32.85406693564981
2410 POINT 2403 1.99779136886551 34.24333877774004
2411 POINT 2404 1.739534188555335 34.71160974839909
2412 POINT 2405 2.242930868975687 34.69789125435826
2413 POINT 2406 1.750101670519205 33.79266021463997
2414 POINT 2407 2.253498350939557 33.77894172059914
2415 POINT 2408 4.811613439274451 30.16570216508861
2416 POINT 2409 4.556608060237682 29.71849742642267
2417 POINT 2410 4.303205728751885 30.16454791935548
2418 POINT 2411 5.321476248288842 30.16725951513379
2419 POINT 2412 5.830756015410285 30.16946429579235
2420 POINT 2413 6.341450139931419 30.17268173113207
2421 POINT 2414 5.574295537881691 29.72185645281436
2422 POINT 2415 4.303354423758809 31.05895384807756
2423 POINT 2416 4.559517683407055 31.50692914415298
2424 POINT 2417 4.303319379261703 31.953673122892
2425 POINT 2418 4.814339322939793 31.95444722891127
2426 POINT 2419 3.792218950158929 31.95624727677639
2427 POINT 2420 3.53960420638969 31.50780686224725
2428 POINT 2421 3.283325416819654 31.95789910088994
2429 POINT 2422 18.93911406219143 18.64650935978337
2430 POINT 2423 19.5261405338395 18.65502620489522
2431 POINT 2424 19.39362763295739 15.11254594470878
2432 POINT 2425 18.99857188883907 15.51737654824043
2433 POINT 2426 19.25787290188996 16.44788794426737
2434 POINT 2427 18.75405232248962 16.85355794479968
2435 POINT 2428 19.18738723924495 16.90476516850342
2436 POINT 2429 18.37155330956431 16.4239303910665
2437 POINT 2430 18.3010676469193 16.88080761530255
2438 POINT 2431 18.66020366196966 15.9349676413002
2439 POINT 2432 19.16290621200404 15.97908962750386
2440 POINT 2433 19.60184782770187 16.0291610895696
2441 POINT 2434 17.74265060326497 16.90620537096182
2442 POINT 2435 18.12514961619028 17.335832924695
2443 POINT 2436 15.35519968440101 23.50052060043794
2444 POINT 2437 15.61382388545503 23.94120904958511
2445 POINT 2438 16.14374614558074 23.94660548122907
2446 POINT 2439 15.87594038737391 24.38867578503489
2447 POINT 2440 16.40292032494667 23.50896024931439
2448 POINT 2441 14.04156102276654 20.44473665232049
2449 POINT 2442 13.5101459043692 20.44182359619071
2450 POINT 2443 13.23791783332129 20.0000177682021
2451 POINT 2444 12.99581450514272 20.44181897368124
2452 POINT 2445 14.32798942893715 21.75754985993104
2453 POINT 2446 14.59066675027901 22.19303681739878
2454 POINT 2447 14.05739186853169 22.19336416533053
2455 POINT 2448 14.59606856183489 21.32333671296435
2456 POINT 2449 17.02043936108002 17.36861009534426
2457 POINT 2450 16.75104595303201 17.80975860309653
2458 POINT 2451 17.29733916448795 17.80237918810654
2459 POINT 2452 16.8825211737115 20.00090158182218
2460 POINT 2453 16.50015673941269 20.45264191937547
2461 POINT 2454 16.08514518550571 20.00088643540819
2462 POINT 2455 16.11090188810538 20.45097896467276
2463 POINT 2456 15.67928540345191 21.32845415312463
2464 POINT 2457 15.97041169404601 20.90170701865165
2465 POINT 2458 15.55540014013904 20.44995153468437
2466 POINT 2459 15.13808712838207 21.32895105033127
2467 POINT 2460 15.40246258575432 21.75672561479265
2468 POINT 2461 14.87289137953249 20.89506525129633
2469 POINT 2462 16.20906446251038 17.81010162569915
2470 POINT 2463 16.48596426591832 18.24387071846142
2471 POINT 2464 17.67264086770901 25.76730075340195
2472 POINT 2465 17.52697787020489 25.32168372621399
2473 POINT 2466 17.1018668450201 25.72098828977573
2474 POINT 2467 17.78498630795706 24.9096132943493
2475 POINT 2468 18.29689274451687 24.94722520315896
2476 POINT 2469 17.98412715958014 24.48884230766805
2477 POINT 2470 18.19154482344632 27.14919909897187
2478 POINT 2471 18.00418440385464 27.60561752382607
2479 POINT 2472 18.50178002760287 27.59500731331329
2480 POINT 2473 17.22320550548447 27.12725699911247
2481 POINT 2474 16.99718056314592 26.6294993269721
2482 POINT 2475 17.47355478486276 26.66436298910405
2483 POINT 2476 14.77835587396051 33.47591176927389
2484 POINT 2477 14.5037091327629 32.89870630528225
2485 POINT 2478 14.20286679509669 33.2286249931342
2486 POINT 2479 14.91119950175903 32.71983261654729
2487 POINT 2480 15.41335988088872 32.74473764552774
2488 POINT 2481 13.26816755360081 21.75856091096891
2489 POINT 2482 13.0048315681012 21.32143470787244
2490 POINT 2483 16.7511085267673 22.19060870549156
2491 POINT 2484 16.20887687158396 22.19021726809433
2492 POINT 2485 16.17786126300281 23.06167228219098
2493 POINT 2486 16.69915194428762 23.07149378572608
2494 POINT 2487 16.13755756315898 24.82813436948326
2495 POINT 2488 16.41272816316716 25.26878389243772
2496 POINT 2489 15.60763530303328 24.82273793783929
2497 POINT 2490 15.34000798260733 25.26618804426989
2498 POINT 2491 15.57192146402785 25.71183427290126
2499 POINT 2492 15.04267696781684 25.71582579488349
2500 POINT 2493 19.39363952846237 24.88740687823191
2501 POINT 2494 18.885848220639 24.93009895932983
2502 POINT 2495 18.68670736901592 25.35086994601108
2503 POINT 2496 19.15366600169464 25.75648146541981
2504 POINT 2497 18.56007556635269 25.77221469844787
2505 POINT 2498 17.29751718982028 22.19792338787625
2506 POINT 2499 17.82901984993449 22.20723229864854
2507 POINT 2500 17.02050154539675 22.63152050098736
2508 POINT 2501 17.2455606073406 23.07880846811078
2509 POINT 2502 17.69547194751031 24.00000391993576
2510 POINT 2503 18.20737838407013 24.03761582874543
2511 POINT 2504 18.37170027960414 23.57574163654564
2512 POINT 2505 17.42146708911589 23.53377959693132
2513 POINT 2506 17.74281669022501 23.0938063121926
2514 POINT 2507 15.25853878864088 12.92422065523148
2515 POINT 2508 15.0175685566735 12.47064415693754
2516 POINT 2509 17.58990097002385 11.50018009270076
2517 POINT 2510 17.36873006000716 11.06025787356734
2518 POINT 2511 18.10310452692819 11.49837625079764
2519 POINT 2512 17.65638158620408 10.60573636868109
2520 POINT 2513 15.04253498339223 10.68172168255394
2521 POINT 2514 14.51635320344969 10.68688592002177
2522 POINT 2515 14.77952260731562 10.24189432870903
2523 POINT 2516 14.26072834128369 11.1308604785193
2524 POINT 2517 15.29884441434331 11.11647511404975
2525 POINT 2518 15.02941585016789 11.5708497790334
2526 POINT 2519 -5.559612278106096 22.64037941022797
2527 POINT 2520 -5.812595406053648 23.08012397436108
2528 POINT 2521 -5.306180262645629 23.08034305013044
2529 POINT 2522 -11.43576012403759 16.0359829772844
2530 POINT 2523 -10.91930130833142 16.03530291420144
2531 POINT 2524 -11.17839236720871 16.47753707839758
2532 POINT 2525 -11.95093603481484 15.1524484606076
2533 POINT 2526 -12.46808184577289 15.15416888873691
2534 POINT 2527 -11.69363999436943 15.59489173025373
2535 POINT 2528 -11.43396510560572 15.15130554344212
2536 POINT 2529 -11.95273105324672 16.03712589444988
2537 POINT 2530 -11.43712821990608 16.91861467088325
2538 POINT 2531 -10.92066940419991 16.91793460780029
2539 POINT 2532 -10.6635990468805 17.35875835728356
2540 POINT 2533 -10.40486319418314 16.91768076479789
2541 POINT 2534 -10.92128585029515 17.79908423287577
2542 POINT 2535 -10.40547964027838 17.79883038987337
2543 POINT 2536 -11.17515797884532 20.00000102031307
2544 POINT 2537 -11.43519237168078 19.55947185837874
2545 POINT 2538 -10.91971864863478 19.55946991621752
2546 POINT 2539 -17.69355183457131 26.21921688206146
2547 POINT 2540 -17.91957704254855 26.71697422906539
2548 POINT 2541 -17.47355512042661 26.66436143557672
2549 POINT 2542 -18.41154214164629 26.7040528116507
2550 POINT 2543 -18.5809866532765 26.22413096385403
2551 POINT 2544 -18.85906250548473 26.65851045942693
2552 POINT 2545 -18.58165190157233 21.78818398655776
2553 POINT 2546 -18.38730056826177 22.23230077017542
2554 POINT 2547 -18.87782301108845 22.24485568342974
2555 POINT 2548 -18.44846894716024 21.34055390991821
2556 POINT 2549 -12.97062101492125 29.31875403642425
2557 POINT 2550 -12.46767030297665 29.32772470608927
2558 POINT 2551 -12.72223548790102 29.77728049112642
2559 POINT 2552 -13.22907514769955 28.86709581957689
2560 POINT 2553 -14.51635826947124 29.31311155849969
2561 POINT 2554 -14.26073306937787 28.86913861906651
2562 POINT 2555 -14.51706009046056 28.4236684902674
2563 POINT 2556 -13.99842148648492 28.41952325896755
2564 POINT 2557 -14.7795280512982 29.75810081374213
2565 POINT 2558 -15.03254101741964 30.19341176913132
2566 POINT 2559 -14.50635783171041 30.1882502220222
2567 POINT 2560 -15.04254145518047 29.31827310560881
2568 POINT 2561 -15.56202218869213 29.32850735956158
2569 POINT 2562 -16.09215847892137 29.34349976240278
2570 POINT 2563 -15.83584752723667 29.77825476369244
2571 POINT 2564 -15.29885240686518 28.88351810431914
2572 POINT 2565 -15.56326504283053 31.03948508656246
2573 POINT 2566 -16.09046899946972 31.08225492312761
2574 POINT 2567 -16.36982582431926 30.66455001640303
2575 POINT 2568 -16.62469646598935 31.11842918285091
2576 POINT 2569 -16.10341526745587 30.2125664936679
2577 POINT 2570 -15.57327897722664 30.1975740908267
2578 POINT 2571 -15.30010875763884 30.62772349910677
2579 POINT 2572 -15.02252708302353 31.03532276486708
2580 POINT 2573 -17.36874409487987 28.93971676960333
2581 POINT 2574 -17.07238964582313 28.49069203988263
2582 POINT 2575 -16.33477468949221 28.91218584585327
2583 POINT 2576 -16.60860002803674 29.36193324998413
2584 POINT 2577 -17.13332295795837 29.38218899091014
2585 POINT 2578 -17.65639589526919 29.39423674904752
2586 POINT 2579 -16.5728923949743 28.46738370478237
2587 POINT 2580 -16.79406580218986 28.02745641123038
2588 POINT 2581 -16.05645084585894 28.44895021720102
2589 POINT 2582 -11.43421905289848 27.52144951460756
2590 POINT 2583 -11.6916320508292 27.96979564432751
2591 POINT 2584 -11.94478840412654 27.52156732452448
2592 POINT 2585 -10.92260322222589 27.52096203886612
2593 POINT 2586 -11.17575957552322 27.07273371906309
2594 POINT 2587 -14.54458520175707 20.44472116630428
2595 POINT 2588 -14.04156085494355 20.44473661417197
2596 POINT 2589 -14.25527342288196 20.00000694189264
2597 POINT 2590 -13.74078421360634 27.97171208992312
2598 POINT 2591 -13.48445719252365 28.41718221872224
2599 POINT 2592 -12.97143787482097 28.41928465053246
2600 POINT 2593 -12.71451066085117 27.96964225196112
2601 POINT 2594 -12.45912861602707 28.41955585281577
2602 POINT 2595 -16.25413008413381 27.08512273155318
2603 POINT 2596 -16.52070005962864 27.54827010780237
2604 POINT 2597 -16.0279985758462 27.54100069988094
2605 POINT 2598 -17.02019731047746 27.57157844290263
2606 POINT 2599 -17.22320594816005 27.12725546102763
2607 POINT 2600 -16.99718074018281 26.6294981140237
2608 POINT 2601 -15.51800943988496 26.61966242771222
2609 POINT 2602 -15.01513775921834 26.61758552880125
2610 POINT 2603 -15.25855691968476 27.07577642472079
2611 POINT 2604 -12.20839980609971 25.28942190368818
2612 POINT 2605 -12.46344601370725 25.73349604427731
2613 POINT 2606 -11.94630087233431 25.73521605642329
2614 POINT 2607 -12.46807352183216 24.84583381340267
2615 POINT 2608 -11.95092838045923 24.84755382554865
2616 POINT 2609 -12.98765585547731 24.84316419719443
2617 POINT 2610 -12.73018442983683 24.40129611905489
2618 POINT 2611 -13.24519821910848 25.28412915854135
2619 POINT 2612 -9.129651643227703 27.06523077144557
2620 POINT 2613 -8.876288684125369 27.50911488874473
2621 POINT 2614 -9.387389242004456 27.51154300998024
2622 POINT 2615 -11.43269449945645 25.7358488670784
2623 POINT 2616 -11.68774070706399 26.17992300766753
2624 POINT 2617 -11.43075487019097 26.62688850656359
2625 POINT 2618 -11.94436124306884 26.62625569590848
2626 POINT 2619 -10.91913903951838 26.62640103082215
2627 POINT 2620 -11.43575265155543 23.96401593507675
2628 POINT 2621 -10.91929460003396 23.9646969017269
2629 POINT 2622 -11.17838521827446 23.52246042867934
2630 POINT 2623 -11.43395834902085 24.84869716197923
2631 POINT 2624 -11.6936320647533 24.40510907169372
2632 POINT 2625 -11.9527226829938 23.96287259864617
2633 POINT 2626 -9.674059715189312 31.54309886182291
2634 POINT 2627 -9.923928805191473 31.0922115971265
2635 POINT 2628 -9.413784457395401 31.09278152867489
2636 POINT 2629 -7.33625026584593 21.32043467489033
2637 POINT 2630 -7.591125517743469 20.88045700659352
2638 POINT 2631 -7.337223839723812 20.44026648652743
2639 POINT 2632 -6.830512094503344 20.44026665091224
2640 POINT 2633 -6.575528491143303 20.88082068876169
2641 POINT 2634 -6.828119317097339 21.32047870894126
2642 POINT 2635 -7.081929718985547 21.76037960279158
2643 POINT 2636 -6.321207944282921 21.32076561666295
2644 POINT 2637 -8.865941131087769 23.08182349266286
2645 POINT 2638 -8.35498225184941 23.08157072480208
2646 POINT 2639 -8.866487325995669 23.96406401648594
2647 POINT 2640 -8.355738913521897 23.96328209781178
2648 POINT 2641 -8.611808118958542 24.40495790685818
2649 POINT 2642 -9.122215297035932 23.52275432385121
2650 POINT 2643 -9.377738307564679 23.08218960907453
2651 POINT 2644 -9.378284502472578 23.9644301328976
2652 POINT 2645 -11.43519851064686 20.44052946226004
2653 POINT 2646 -10.91972478760085 20.44052752009882
2654 POINT 2647 -10.92146522300643 21.32094671163846
2655 POINT 2648 -11.18084963629104 21.76061562971537
2656 POINT 2649 -11.43914973268702 21.32072488012269
2657 POINT 2650 -8.354717852301953 17.79936126551275
2658 POINT 2651 -8.865677316820541 17.7991080550456
2659 POINT 2652 -8.865604125273149 18.67950030830442
2660 POINT 2653 -8.354849206451807 18.67954722684985
2661 POINT 2654 -7.8449370799189 18.67964045894598
2662 POINT 2655 -7.336251432918799 18.67956409604354
2663 POINT 2656 -7.081931132275803 18.23961943152085
2664 POINT 2657 -8.09997451760549 18.23956994043947
2665 POINT 2658 -7.844805725769048 17.79945449760887
2666 POINT 2659 -8.100430139091614 16.47811947625329
2667 POINT 2660 -7.845750550729444 16.03722597916978
2668 POINT 2661 -8.355741934804009 16.03671803565851
2669 POINT 2662 -7.84499390774128 16.91893662122336
2670 POINT 2663 -7.336521112848085 16.03802299597051
2671 POINT 2664 -7.591832908560479 15.59662155537573
2672 POINT 2665 -7.081982832760588 16.47905573175917
2673 POINT 2666 -3.54490611780126 20.88709779020111
2674 POINT 2667 -3.290304169812604 21.32705841216561
2675 POINT 2668 -3.794349397708337 21.32485605719605
2676 POINT 2669 -4.07370210063638 19.99999990535588
2677 POINT 2670 -3.813606861772008 19.55755217403422
2678 POINT 2671 -3.813606786979048 20.4424476880606
2679 POINT 2672 -3.309561597917081 19.55534986530946
2680 POINT 2673 -3.544906231427986 19.11290209845403
2681 POINT 2674 -3.309561559083315 20.44465004303017
2682 POINT 2675 -2.976342896691423 37.87084587080842
2683 POINT 2676 -3.221425950774599 37.37975080057947
2684 POINT 2677 -2.526770059080721 38.86620393748946
2685 POINT 2678 -2.74911739425569 38.36872913844745
2686 POINT 2679 -3.247670177747043 38.30899320764298
2687 POINT 2680 -3.510972884148524 38.7290535079245
2688 POINT 2681 -3.738198386584258 38.23117024028548
2689 POINT 2682 -2.221684732532352 36.55039136936763
2690 POINT 2683 -2.720983152386764 36.50668992783906
2691 POINT 2684 -1.975649639226325 36.09501466529477
2692 POINT 2685 -2.229342038877392 35.61557517193711
2693 POINT 2686 -2.490020268553868 35.14475718983718
2694 POINT 2687 -2.734688313083581 35.59417021242318
2695 POINT 2688 -1.730981594696612 35.64560164270876
2696 POINT 2689 -1.486809012309066 35.18419628736905
2697 POINT 2690 -4.303354465001183 31.05895358128684
2698 POINT 2691 -4.55951779146229 31.50692884476348
2699 POINT 2692 -4.814374491189353 31.05972774650009
2700 POINT 2693 -4.303319481666954 31.95367266283595
2701 POINT 2694 -4.814339507855124 31.9544468280492
2702 POINT 2695 -3.794429959970654 31.05851674025303
2703 POINT 2696 -3.285536346627419 31.06016856732271
2704 POINT 2697 -3.539604151930885 31.5078065066199
2705 POINT 2698 -4.049286659697717 30.61131564198964
2706 POINT 2699 -3.792218904985805 31.95624679413531
2707 POINT 2700 -3.28332529164257 31.95789862120499
2708 POINT 2701 -4.047040621378638 32.40376477742103
2709 POINT 2702 7.293827708476641e-08 30.61670207641359
2710 POINT 2703 -0.2521485735852201 31.06882400602231
2711 POINT 2704 -0.2521485843374779 30.16753613384589
2712 POINT 2705 -0.7573647761819143 29.27115377417338
2713 POINT 2706 -0.5048694095893164 29.71821293229341
2714 POINT 2707 -0.757018053121834 30.16737885684081
2715 POINT 2708 -1.261813079214908 30.16656491069634
2716 POINT 2709 -1.00909225396307 30.61588811224881
2717 POINT 2710 -1.750101564306177 33.7926600881429
2718 POINT 2711 -1.247341893467582 33.80032930854107
2719 POINT 2712 -0.9957606346718019 34.26612784853185
2720 POINT 2713 -1.241669357333788 34.72964383553155
2721 POINT 2714 -1.739534339372401 34.71160969751359
2722 POINT 2715 -11.99490542589216 33.72244073919998
2723 POINT 2716 -12.55579994637244 33.72998392753992
2724 POINT 2717 -12.24028160504613 34.13586616472574
2725 POINT 2718 -12.58774656772219 32.92273577571433
2726 POINT 2719 -12.04127268056533 32.88444075338846
2727 POINT 2720 -12.31859548106905 32.49061802708863
2728 POINT 2721 -11.76196356192489 33.30918024521488
2729 POINT 2722 -11.49281247527174 32.87706249658918
2730 POINT 2723 -11.44644522059858 33.7150624824007
2731 POINT 2724 -10.96746234053338 33.79803021601935
2732 POINT 2725 -10.46487803283816 33.83310531972037
2733 POINT 2726 -10.71091904893609 33.33687709211661
2734 POINT 2727 -11.20040420450066 34.21129071000446
2735 POINT 2728 -11.46127976573915 30.22519151574363
2736 POINT 2729 -11.70834995916295 29.77725564258582
2737 POINT 2730 -11.97221458253263 30.23418703394924
2738 POINT 2731 -10.68395992686636 29.76000252533419
2739 POINT 2732 -10.93683718292719 29.31526402048404
2740 POINT 2733 -13.99001145216601 30.2071360473141
2741 POINT 2734 -14.24302441828744 30.64244700270329
2742 POINT 2735 -13.47593211929433 30.2148213247283
2743 POINT 2736 -12.882639952868 33.38136001505353
2744 POINT 2737 -13.12801613202197 33.79478544057929
2745 POINT 2738 -13.15996275337173 32.9875372887537
2746 POINT 2739 -12.56903973339889 32.06645679208884
2747 POINT 2740 -12.02256584624203 32.02816176976298
2748 POINT 2741 -8.913239817098617 31.99135920727501
2749 POINT 2742 -8.40158183646983 31.98514989359324
2750 POINT 2743 -8.652257386764454 31.53745947968953
2751 POINT 2744 -8.921335412563566 32.89535129795895
2752 POINT 2745 -8.673611325668027 33.34794371176464
2753 POINT 2746 -8.414840179908452 32.89164203498441
2754 POINT 2747 -5.072107480879501 32.40303922173636
2755 POINT 2748 -5.328305790674837 31.95629540366389
2756 POINT 2749 10.14864152241564 25.29167841478616
2757 POINT 2750 10.40452204895563 24.84933923994486
2758 POINT 2751 7.345760569471696 27.50220841755529
2759 POINT 2752 6.836865374418886 27.50054703680143
2760 POINT 2753 7.089552523791351 27.05704250164396
2761 POINT 2754 2.525426835782363 26.16307688713685
2762 POINT 2755 2.272480634611741 25.72176210905083
2763 POINT 2756 2.777875233522349 25.72204462651898
2764 POINT 2757 1.767575335564268 26.60489238751902
2765 POINT 2758 1.514941509738058 26.16264509615625
2766 POINT 2759 2.272957824933265 26.60516717755396
2767 POINT 2760 2.778352423843874 26.60544969502211
2768 POINT 2761 4.805074847682363 27.49442755495632
2769 POINT 2762 4.552513154400769 27.93750824958521
2770 POINT 2763 4.297887807610577 27.49325833103988
2771 POINT 2764 6.57468887445735 24.40195169880285
2772 POINT 2765 6.321311698834721 24.84298263597548
2773 POINT 2766 7.849057448689945 25.73004086883459
2774 POINT 2767 8.359006247967862 25.73123236418823
2775 POINT 2768 8.61552521165617 26.17503643791459
2776 POINT 2769 9.404349218168869 30.19173390211969
2777 POINT 2770 9.65777479999708 29.74665923251244
2778 POINT 2771 10.40670379081607 26.62599846740034
2779 POINT 2772 10.66169908791753 26.18015324950281
2780 POINT 2773 10.91913923802371 26.62640116557348
2781 POINT 2774 10.40539732837285 25.73591803949286
2782 POINT 2775 10.91783277558049 25.73632073766599
2783 POINT 2776 9.89250783475268 25.73551092662298
2784 POINT 2777 9.637659499680273 26.17823816723135
2785 POINT 2778 12.98765611516729 24.84316435404515
2786 POINT 2779 13.24519849159788 25.28412934430153
2787 POINT 2780 12.97771797713904 25.73181949643032
2788 POINT 2781 13.4973712688774 25.72824679366293
2789 POINT 2782 13.74303197345077 26.17287521768461
2790 POINT 2783 13.99649931993174 26.62119388701589
2791 POINT 2784 13.48335810089953 26.624255615123
2792 POINT 2785 14.0105124879096 25.72518506555582
2793 POINT 2786 14.53346833943965 25.71999652791481
2794 POINT 2787 14.76538182086017 26.16564275654618
2795 POINT 2788 12.97101588266317 26.6242609325337
2796 POINT 2789 13.22448322914414 27.07257960186498
2797 POINT 2790 11.18782984741558 28.86783824005193
2798 POINT 2791 11.44023158859328 28.42154320407505
2799 POINT 2792 10.92866118458883 28.41597310920991
2800 POINT 2793 15.8358466505693 29.77825662708678
2801 POINT 2794 15.57327800023705 30.19757601615488
2802 POINT 2795 15.03254016683603 30.19341354430916
2803 POINT 2796 -0.8995237521899599 19.54873467419662
2804 POINT 2797 -1.223665336802445 19.99999999772069
2805 POINT 2798 -1.340523578198245 19.5487346702835
2806 POINT 2799 -0.8995237451475713 20.45126532729634
2807 POINT 2800 -1.340523571155856 20.45126532338323
2808 POINT 2801 -1.523722054976781 19.10064953446878
2809 POINT 2802 -1.775181039070304 18.66606637620227
2810 POINT 2803 -1.267840977679282 18.66288618849292
2811 POINT 2804 -1.847863639589266 19.55191485799285
2812 POINT 2805 3.030578223423045 16.47865931956265
2813 POINT 2806 2.7786995819392 16.9173169337976
2814 POINT 2807 3.283887773770873 16.91774472162141
2815 POINT 2808 2.273605935625607 16.91641083896922
2816 POINT 2809 2.777737361196587 16.03895609462461
2817 POINT 2810 2.272576544974629 16.03887379781015
2818 POINT 2811 2.524923874579844 15.59959836069592
2819 POINT 2812 3.282925553028259 16.03938388244843
2820 POINT 2813 -0.7612694088495366 18.66199020272551
2821 POINT 2814 -1.012728392943059 18.227407044459
2822 POINT 2815 -0.758598544150526 17.78995693156367
2823 POINT 2816 -1.265170112980272 17.79085291733108
2824 POINT 2817 4.506764545389951 1.417895953039242
2825 POINT 2818 4.783535558950785 1.00631976803145
2826 POINT 2819 4.758484548151512 1.889696750885436
2827 POINT 2820 4.253215613299169 1.820569169400931
2828 POINT 2821 3.510966697825907 1.270945661498197
2829 POINT 2822 3.322764554813852 0.7621993600452871
2830 POINT 2823 2.853419417958452 0.6871814573462394
2831 POINT 2824 3.15663773239814 0.2506800547597778
2832 POINT 2825 2.526762781558002 1.133795733001061
2833 POINT 2826 0.7361792967570719 3.370479836805422
2834 POINT 2827 0.984246123665582 3.857601448530803
2835 POINT 2828 1.229220834288343 3.387837280503928
2836 POINT 2829 0.2456021749298 4.312315065409472
2837 POINT 2830 -6.12900348972989e-07 3.840243961866928
2838 POINT 2831 -0.2456030241048603 4.312315022444103
2839 POINT 2832 0.2456016322509388 3.358689814749931
2840 POINT 2833 0.5049285170465799 15.59922462282507
2841 POINT 2834 0.2524349318952632 15.15933354319677
2842 POINT 2835 0.7573634386942838 15.15936468952784
2843 POINT 2836 -0.2524349044090859 14.27853318435742
2844 POINT 2837 1.330778542918409e-08 14.71947361203522
2845 POINT 2838 0.2524349358260958 14.27853318222174
2846 POINT 2839 -0.2524349083399185 15.15933354533245
2847 POINT 2840 -0.7573634152411641 15.15936469433383
2848 POINT 2841 -0.5049284966536864 15.59922462549537
2849 POINT 2842 0.5049254022037216 13.83754849930346
2850 POINT 2843 0.7574092353969514 13.3953638490185
2851 POINT 2844 0.2524838513024543 13.39540810425898
2852 POINT 2845 0.7573603199205929 14.27848892698126
2853 POINT 2846 1.262484605133556 13.39525696279437
2854 POINT 2847 1.010043054232288 12.95311656774989
2855 POINT 2848 1.767575339991074 13.39510769916648
2856 POINT 2849 1.514941521155737 13.83735498043508
2857 POINT 2850 1.262295113836738 15.15932946063648
2858 POINT 2851 1.767248131092881 15.15945960799914
2859 POINT 2852 1.514810041101744 15.5993859165188
2860 POINT 2853 1.009801528685421 14.71943838100818
2861 POINT 2854 1.262291995063047 14.2784536980899
2862 POINT 2855 1.767382729920565 14.278304434462
2863 POINT 2856 10.41084000253686 12.48260731078788
2864 POINT 2857 9.899143909428762 12.48490033133931
2865 POINT 2858 10.15245058881716 12.93005073050543
2866 POINT 2859 7.613367978441445 10.26725776150029
2867 POINT 2860 7.865566856326732 10.71237296609314
2868 POINT 2861 7.872056162547818 9.817820601218891
2869 POINT 2862 6.840628853956597 11.61013350401928
2870 POINT 2863 7.350228541129577 11.60757337758872
2871 POINT 2864 7.602701329817169 12.05219325805719
2872 POINT 2865 7.859856068084092 11.60547869619642
2873 POINT 2866 6.584305485265666 12.05624824322372
2874 POINT 2867 6.331860536359608 11.61209380779351
2875 POINT 2868 7.345761240100929 12.4977925867857
2876 POINT 2869 7.855388767055443 12.4956979053934
2877 POINT 2870 6.836865843678177 12.49945375805594
2878 POINT 2871 6.328097526081189 12.50141406183017
2879 POINT 2872 7.089553280916451 12.94295840539215
2880 POINT 2873 8.370126385671387 11.60298196347085
2881 POINT 2874 8.117653596983795 11.15836208300238
2882 POINT 2875 8.375837173914027 10.70987623336757
2883 POINT 2876 4.295101059051913 14.27689245468694
2884 POINT 2877 4.801572033150954 14.27614783489993
2885 POINT 2878 5.054251674501884 14.71756589197868
2886 POINT 2879 5.308173049886577 14.27556530526172
2887 POINT 2880 4.041727348991283 14.71850999116095
2888 POINT 2881 4.800381330074277 15.15879930644609
2889 POINT 2882 5.3069823468099 15.15821677680788
2890 POINT 2883 7.849059237793011 14.26996017987809
2891 POINT 2884 8.103070930537744 14.71207488647675
2892 POINT 2885 5.815417413760485 14.27454965531052
2893 POINT 2886 5.562737772409555 13.83313159823176
2894 POINT 2887 -0.2521485527378636 8.931176099677991
2895 POINT 2888 -0.5035763908778745 8.480088454668433
2896 POINT 2889 -0.7557250243185949 8.932210406700243
2897 POINT 2890 -0.2509573870619522 8.024279294560063
2898 POINT 2891 0.2509575473889861 8.024279283349045
2899 POINT 2892 7.962417714058034e-08 7.56950443026293
2900 POINT 2893 6.593280292555939 10.27328387180388
2901 POINT 2894 6.335879483268245 10.7209592028273
2902 POINT 2895 5.830755701913942 9.830536241827216
2903 POINT 2896 5.574295302392639 10.27814403449093
2904 POINT 2897 5.321475942820628 9.832740939252627
2905 POINT 2898 6.341449789967948 9.827318887765713
2906 POINT 2899 5.062470520941847 11.17165642054254
2907 POINT 2900 5.317804209527402 10.72520563662399
2908 POINT 2901 5.827083968620716 10.72300093919858
2909 POINT 2902 6.079388390403009 11.16802080496036
2910 POINT 2903 5.823065021712079 11.61413554416479
2911 POINT 2904 5.315146558477212 11.61569271764991
2912 POINT 2905 5.567618704433812 12.05976572048306
2913 POINT 2906 1.26260880164937 12.50952783290288
2914 POINT 2907 0.7575334319127655 12.509634719127
2915 POINT 2908 1.515420485651163 12.06591797610076
2916 POINT 2909 1.767930107970686 12.50939982472365
2917 POINT 2910 2.779582641351243 11.62045230557948
2918 POINT 2911 2.526574119133528 12.06542614609067
2919 POINT 2912 2.273750314190195 11.62081612741035
2920 POINT 2913 3.538866270969666 12.06436176963468
2921 POINT 2914 3.284985271677322 12.50826344534523
2922 POINT 2915 3.286081822236629 11.62005928968668
2923 POINT 2916 2.273653942155398 10.72932286147457
2924 POINT 2917 2.52689359077933 10.28311528781965
2925 POINT 2918 2.021045272905355 11.17585461155564
2926 POINT 2919 1.76803675068764 11.62082845206683
2927 POINT 2920 1.262715444366323 11.62095646024605
2928 POINT 2921 1.010161226929193 11.17580755694835
2929 POINT 2922 0.7575449618927166 11.62089708098228
2930 POINT 2923 1.767940378652842 10.72933518613105
2931 POINT 2924 1.262535322656886 10.72890566637786
2932 POINT 2925 1.515143991906928 10.28237391629679
2933 POINT 2926 0.253078415467722 21.33774656433547
2934 POINT 2927 0.5081909984648777 20.90226741555631
2935 POINT 2928 -0.3913327526621082 20.45100208957463
2936 POINT 2929 2.734971728257651e-09 20.45100208875773
2937 POINT 2930 -0.39133275539708 20.0000000008169
2938 POINT 2931 -0.5081909870155196 20.90226741523717
2939 POINT 2932 0.3913327604803603 20.45100208957464
2940 POINT 2933 0.3913327577453886 20.0000000008169
2941 POINT 2934 0.2530784161400829 22.21052479098349
2942 POINT 2935 0.5055201289601644 22.64707892336772
2943 POINT 2936 -2.785590905596614 21.32882419900507
2944 POINT 2937 -3.03503418550369 21.76658246600001
2945 POINT 2938 1.770560907143734 17.79144658719761
2946 POINT 2939 2.024810499173619 18.22997737721628
2947 POINT 2940 1.775181052026418 18.66606637464487
2948 POINT 2941 2.280691576572412 18.66774072366555
2949 POINT 2942 1.265170126328186 17.79085291521534
2950 POINT 2943 1.012728405401115 18.22740704319246
2951 POINT 2944 0.7585985571016766 17.7899569302122
2952 POINT 2945 1.516431058844295 17.35399647421735
2953 POINT 2946 0.8995237605176197 19.54873467387751
2954 POINT 2947 1.340523588216353 19.54873466996442
2955 POINT 2948 1.523722067484837 19.10064953360767
2956 POINT 2949 1.267840990086043 18.66288618715841
2957 POINT 2950 0.7612694208595338 18.66199020215526
2958 POINT 2951 5.813248074708591 17.79940577746486
2959 POINT 2952 6.319914201894026 17.79970755524536
2960 POINT 2953 6.067133785253771 18.23927390332938
2961 POINT 2954 3.535574274154806 15.59970463007047
2962 POINT 2955 3.788415136381265 16.0394078550085
2963 POINT 2956 4.29392652128657 16.03975141330591
2964 POINT 2957 4.547087929945052 15.59958939695291
2965 POINT 2958 4.79995059372381 16.03961220762827
2966 POINT 2959 4.041277800160023 16.47943066568386
2967 POINT 2960 3.788433948862058 15.15930008166777
2968 POINT 2961 3.282944365509053 15.1592761091077
2969 POINT 2962 4.294357257637037 15.15893851212372
2970 POINT 2963 3.794349415726029 21.32485606072119
2971 POINT 2964 3.290304186047734 21.32705841534533
2972 POINT 2965 3.544906134739364 20.8870977923218
2973 POINT 2966 3.035034201374663 21.76658246994613
2974 POINT 2967 3.285878222907446 22.20420717451871
2975 POINT 2968 3.81360680382783 20.44244768929398
2976 POINT 2969 4.073702118111949 19.99999990535705
2977 POINT 2970 4.30904667870178 20.44244765376073
2978 POINT 2971 3.813606878619757 19.55755217280245
2979 POINT 2972 4.309046753493707 19.5575521372692
2980 POINT 2973 3.091725105391231 19.99999995889588
2981 POINT 2974 3.309561574149535 20.44465004391812
2982 POINT 2975 2.535961556076473 19.1072647545244
2983 POINT 2976 2.785591003223675 18.67117575709582
2984 POINT 2977 2.823024475136099 19.55534988242807
2985 POINT 2978 3.309561612982868 19.55534986442249
2986 POINT 2979 3.544906248364625 19.11290209633464
2987 POINT 2980 4.553342649405812 19.11635063545458
2988 POINT 2981 4.813437888898004 19.55879836800918
2989 POINT 2982 3.78894556721224 16.91866702923937
2990 POINT 2983 3.537066925728395 17.35732464347433
2991 POINT 2984 4.294456952117544 16.91901058753678
2992 POINT 2985 10.40485762242933 23.0823167754689
2993 POINT 2986 10.66359386676167 22.64123696885316
2994 POINT 2987 7.336519205314388 23.96197717939193
2995 POINT 2988 7.845748174573922 23.96277428191098
2996 POINT 2989 7.847092038101775 15.1545453326975
2997 POINT 2990 8.357041317327358 15.15335405870247
2998 POINT 2991 7.335858156970897 16.91917008184071
2999 POINT 2992 6.82740222651428 16.91959839644326
3000 POINT 2993 7.081982885691881 16.4790557103205
3001 POINT 2994 6.573652994571071 17.35977609867216
3002 POINT 2995 6.82753870511625 17.79964422453667
3003 POINT 2996 6.319777723292055 16.91966172715194
3004 POINT 2997 8.865603095183527 21.32049701279709
3005 POINT 2998 8.610566546294587 20.88042660659833
3006 POINT 2999 8.354847778087121 21.32045064574386
3007 POINT 3000 -19.49782579425925 18.2262342507611
3008 POINT 3001 -19.95653724886555 18.68219083235013
3009 POINT 3002 -19.87861801615688 17.79987597964446
3010 POINT 3003 -18.66020382675364 15.93496854205557
3011 POINT 3004 -19.16290631175541 15.97909016657372
3012 POINT 3005 -18.99857199443355 15.51737708814106
3013 POINT 3006 -17.91955297322556 13.2829594368018
3014 POINT 3007 -18.41152301195191 13.295877500577
3015 POINT 3008 -9.129653461818208 12.93477147753005
3016 POINT 3009 -8.876289950333131 12.49088708422035
3017 POINT 3010 -8.365440669810539 12.49364887761896
3018 POINT 3011 -8.108500589767266 12.9392481990543
3019 POINT 3012 -7.855388676964306 12.4956979610122
3020 POINT 3013 -8.361774657741075 13.38192668055925
3021 POINT 3014 -7.851722664894842 13.38397576395249
3022 POINT 3015 -4.80356472378408 18.67759654481199
3023 POINT 3016 -4.299173591137375 18.67635031371034
3024 POINT 3017 -5.054931658031134 18.23828417657461
3025 POINT 3018 -2.280691562830554 18.66774072586148
3026 POINT 3019 -2.024810485533055 18.22997737988562
3027 POINT 3020 -2.785590988433182 18.67117575963704
3028 POINT 3021 -2.535961541970431 19.1072647559537
3029 POINT 3022 -5.306982312776921 15.15821679877318
3030 POINT 3023 -5.813814758590553 15.15783103442108
3031 POINT 3024 -4.547087902507322 15.59958941436245
3032 POINT 3025 -4.293926496647592 16.03975142784848
3033 POINT 3026 -7.337862524706304 15.15534238385541
3034 POINT 3027 -7.847091962587663 15.15454536705468
3035 POINT 3028 -9.890905060586594 16.91769167150019
3036 POINT 3029 -10.147975417906 16.47686792201691
3037 POINT 3030 -9.122219403737819 16.47724518073061
3038 POINT 3031 -9.377742636906071 16.91780911523353
3039 POINT 3032 -9.634630413183206 17.35862195801451
3040 POINT 3033 -15.51798373490658 13.38033590670376
3041 POINT 3034 -15.01511587050028 13.38241715695336
3042 POINT 3035 -14.76536195414445 13.83436752674101
3043 POINT 3036 -11.6877451403522 13.82008259053461
3044 POINT 3037 -11.43269990813222 14.264155554569
3045 POINT 3038 -11.43075852913953 13.37311667077508
3046 POINT 3039 -10.91914257799354 13.37360334277097
3047 POINT 3040 -14.49013065771233 8.92250716809294
3048 POINT 3041 -13.97378473792814 8.903623831005547
3049 POINT 3042 -13.75932210669217 8.400895838660942
3050 POINT 3043 -14.48388519872614 8.085770307453599
3051 POINT 3044 -14.7532851786944 8.51074262304131
3052 POINT 3045 -14.07639210786223 7.906905857500061
3053 POINT 3046 -16.05643838843906 11.55103715881512
3054 POINT 3047 -16.33476399675755 11.08780033828979
3055 POINT 3048 -16.09214922620015 10.65648918306597
3056 POINT 3049 -15.54889503500405 11.56061276607589
3057 POINT 3050 11.2389936247567 7.556479722522218
3058 POINT 3051 10.95968569172366 7.131739392009571
3059 POINT 3052 10.96516018232728 8.002770687957165
3060 POINT 3053 10.45710182271854 7.09666523164841
3061 POINT 3054 10.19676557908151 7.554948702823318
3062 POINT 3055 9.947996817509239 7.086330070692012
3063 POINT 3056 10.44503645463636 8.011377880133024
3064 POINT 3057 9.935931449427057 8.001042719176626
3065 POINT 3058 9.433883059010681 7.09648042600004
3066 POINT 3059 9.694219302647717 6.638196954825132
3067 POINT 3060 9.431468298922116 6.192050324704395
3068 POINT 3061 8.921334355776636 7.10464922441238
3069 POINT 3062 9.175111870638158 7.552782340279261
3070 POINT 3063 9.020608292392154 2.610986790489027
3071 POINT 3064 9.474327155954036 2.853381851282785
3072 POINT 3065 9.424223358758637 2.359591439050014
3073 POINT 3066 8.61015283696532 3.016787348807768
3074 POINT 3067 9.406407135751241 3.443882765087797
3075 POINT 3068 14.24301966553495 9.357549438241348
3076 POINT 3069 14.4901295966866 8.92250482268938
3077 POINT 3070 15.02251965234311 8.964668030477915
3078 POINT 3071 14.50635307594872 9.811745665581833
3079 POINT 3072 15.03253485589125 9.806581428114002
3080 POINT 3073 15.30010149579994 9.372267151041644
3081 POINT 3074 1.391480458123909 0.5361652771996028
3082 POINT 3075 1.5311646848921 1.034881203024674
3083 POINT 3076 0.9403288020067619 0.5067124227468429
3084 POINT 3077 1.30290062382262 0.04248387209852996
3085 POINT 3078 0.5146184240444129 0.9751892831391331
3086 POINT 3079 0.7618858102185746 1.458041036081303
3087 POINT 3080 1.257885314814681 1.486842127641039
3088 POINT 3081 1.759808407924379 1.526429439176829
3089 POINT 3082 -7.903282532023693 3.431138862491011
3090 POINT 3083 -8.152789841056642 3.936144390882303
3091 POINT 3084 -7.405025206157284 4.401754955187759
3092 POINT 3085 -7.126972980823624 3.982555849504718
3093 POINT 3086 -6.871914937442281 4.456668046370027
3094 POINT 3087 -7.912211134470291 4.392559551191403
3095 POINT 3088 -7.657153091088949 4.866671748056711
3096 POINT 3089 -9.947996922680865 7.086330753741288
3097 POINT 3090 -10.19676544567954 7.554949393736067
3098 POINT 3091 -9.433883096893222 7.096480642617021
3099 POINT 3092 -9.935931248079878 8.001043112251882
3100 POINT 3093 4.527367092332923e-08 11.17574818979146
3101 POINT 3094 -0.252495297355625 10.7286890466501
3102 POINT 3095 -0.7573647365983451 10.72884633098105
3103 POINT 3096 -6.777768896535333 2.634657762748669
3104 POINT 3097 -7.244270061060128 2.731385544386314
3105 POINT 3098 -7.354841851407485 3.536945192983723
3106 POINT 3099 -6.821731582692482 3.591858284165991
3107 POINT 3100 -7.598041133892552 3.040441297152283
3108 POINT 3101 -2.770028523234636 7.135495143417519
3109 POINT 3102 -2.262551794000459 7.128472515207454
3110 POINT 3103 -2.013561812098475 7.580836281036188
3111 POINT 3104 -1.756818092472177 7.124101067148673
3112 POINT 3105 -2.268204295821881 8.035370941832417
3113 POINT 3106 -1.975649084420517 3.904985271154332
3114 POINT 3107 -2.229341417725875 4.384424847169543
3115 POINT 3108 -1.730981152791177 4.354398340751177
3116 POINT 3109 -1.233116312198353 4.336364163628327
3117 POINT 3110 -1.48680864550371 4.815803739643538
3118 POINT 3111 -0.7430351466867606 5.261285573502088
3119 POINT 3112 -0.494472020592799 4.791077844253667
3120 POINT 3113 -0.2485633623686729 5.254593855235067
3121 POINT 3114 -0.740074808422948 4.319006740711124
3122 POINT 3115 -3.989917167396486 2.240630780408752
3123 POINT 3116 -3.738200036941911 1.768829703597202
3124 POINT 3117 -3.247670870830478 1.691006496083939
3125 POINT 3118 -2.976342610696507 2.129153640981189
3126 POINT 3119 -3.734386660790618 2.660010881492179
3127 POINT 3120 -4.249408434534817 2.711752124426682
3128 POINT 3121 -6.558942474787781 3.123176139372501
3129 POINT 3122 -6.331073604203918 3.568786795893496
3130 POINT 3123 -6.287110918046769 2.611586274476174
3131 POINT 3124 -6.621962591182754 4.900980417645647
3132 POINT 3125 -6.343910365849093 4.481781311962606
3133 POINT 3126 1.975648595423093 36.09501468771074
3134 POINT 3127 1.730980862699194 35.6456016167933
3135 POINT 3128 2.229341421389412 35.61557529593476
3136 POINT 3129 1.767382707537047 25.72169563959068
3137 POINT 3130 2.019831105277033 25.28066337897281
3138 POINT 3131 1.262291980403351 25.72154636607824
3139 POINT 3132 1.767248087730079 24.84054044960734
3140 POINT 3133 2.272346014804772 24.84060691906749
3141 POINT 3134 1.262295090029159 24.84067059179185
3142 POINT 3135 -0.2524838111325409 26.60459195706799
3143 POINT 3136 2.444279567637153e-08 27.04677661342691
3144 POINT 3137 -0.2524838031658742 27.4903401891097
3145 POINT 3138 0.2524838616507888 27.49034019456228
3146 POINT 3139 -0.7575333892249605 27.4903653405446
3147 POINT 3140 3.788433723962699 24.84070003411083
3148 POINT 3141 4.041727103362698 25.28149016974522
3149 POINT 3142 3.283312657697288 25.72224398475948
3150 POINT 3143 3.030366456526666 25.28092920667346
3151 POINT 3144 3.789177592187962 25.72274613527788
3152 POINT 3145 4.295100814849055 25.72310774010915
3153 POINT 3146 3.536686369183645 26.16386155512341
3154 POINT 3147 2.272576461040474 23.96112624728912
3155 POINT 3148 2.020306171472144 23.5221043798967
3156 POINT 3149 2.273605847126488 23.08358918644693
3157 POINT 3150 2.778699451801812 23.08268308508446
3158 POINT 3151 3.030578057285068 23.52134071927124
3159 POINT 3152 3.283887584263749 23.08225529947948
3160 POINT 3153 6.82172659767877 36.40814779878537
3161 POINT 3154 7.35483619344178 36.46305945729526
3162 POINT 3155 6.558938425685055 36.87683381454495
3163 POINT 3156 6.777763402182511 37.36535117969289
3164 POINT 3157 7.244263972315331 37.26861717750442
3165 POINT 3158 5.845709060934203 32.8543398439479
3166 POINT 3159 5.327825047917067 32.84978785259251
3167 POINT 3160 5.587460787769149 33.29923958236787
3168 POINT 3161 5.07210716993828 32.40303966091142
3169 POINT 3162 5.839992684245366 31.95857160899264
3170 POINT 3163 5.328305474083631 31.9562956821724
3171 POINT 3164 11.7636152966602 35.51005436606592
3172 POINT 3165 11.89138268840086 36.08088984207926
3173 POINT 3166 13.96434143009819 33.62431889214255
3174 POINT 3167 13.62553027166024 33.96298348535633
3175 POINT 3168 14.13907578790397 34.14519481201172
3176 POINT 3169 13.6933777803736 33.05047192353857
3177 POINT 3170 11.47394032795509 34.67289773812949
3178 POINT 3171 11.20040168097641 34.21129404646143
3179 POINT 3172 11.44644337030582 33.71506560055828
3180 POINT 3173 10.96746084748497 33.79803270401432
3181 POINT 3174 9.928435644092694 34.70960053046583
3182 POINT 3175 9.445444615479557 34.74869014145943
3183 POINT 3176 10.20212549960824 34.27925374770544
3184 POINT 3177 8.55693472587436 37.47116564769411
3185 POINT 3178 8.610154574479843 36.98321170564777
3186 POINT 3179 7.792705712071077 37.37442105721501
3187 POINT 3180 8.146978123645237 37.66529759679247
3188 POINT 3181 8.559637437237384 38.07574638038857
3189 POINT 3182 8.395984878751314 36.56036043869134
3190 POINT 3183 7.903277933197526 36.56886333700585
3191 POINT 3184 7.59803541538643 36.95956247755778
3192 POINT 3185 13.23628235860721 30.68752328103807
3193 POINT 3186 13.02182189368296 31.19025353239009
3194 POINT 3187 13.39848589487437 32.59184677084766
3195 POINT 3188 13.08141264733925 32.09785538670456
3196 POINT 3189 13.15996052987587 32.98754066985602
3197 POINT 3190 3.734384876860566 37.33999019105068
3198 POINT 3191 3.989913736038182 37.75937050229219
3199 POINT 3192 3.738191811837065 38.23117125418775
3200 POINT 3193 3.247663856437776 38.30899372408128
3201 POINT 3194 2.976338586140713 37.87084607032222
3202 POINT 3195 0.7575449832500279 28.37910301124292
3203 POINT 3196 0.5050496180037712 27.9339289377297
3204 POINT 3197 1.262608818111103 27.49047225529183
3205 POINT 3198 1.515420516496924 27.93408212583156
3206 POINT 3199 0.7575334456124412 27.49036536204691
3207 POINT 3200 2.526893724749228 29.71688489057836
3208 POINT 3201 2.779450491643448 30.16459955601931
3209 POINT 3202 3.286497797291172 29.27075851415398
3210 POINT 3203 3.54071932016649 29.71695812350327
3211 POINT 3204 3.793978826839798 29.27114357134025
3212 POINT 3205 2.779998606761999 29.27036546592124
3213 POINT 3206 2.273654040893363 29.2706772901826
3214 POINT 3207 0.2509575631490233 32.89023084573768
3215 POINT 3208 7.962001580263944e-08 32.43049566678853
3216 POINT 3209 0.2509575815135437 31.97572081582519
3217 POINT 3210 -0.2509574211939724 31.97572080461469
3218 POINT 3211 0.7545341147933871 31.97468656237741
3219 POINT 3212 1.00487180505531 32.42701557238493
3220 POINT 3213 2.262552379835649 32.871528064516
3221 POINT 3214 2.013562317430567 32.41916421915188
3222 POINT 3215 1.75681859018817 32.87589931213495
3223 POINT 3216 2.268204796802595 31.96462962194811
3224 POINT 3217 2.77500339006423 31.96212582894687
3225 POINT 3218 3.027618133833469 32.410566243476
3226 POINT 3219 1.247341957495069 33.80032933334168
3227 POINT 3220 1.503048939569117 33.33593227620078
3228 POINT 3221 0.7511021544362571 32.88704853645076
3229 POINT 3222 0.5001446352577484 33.34678370418941
3230 POINT 3223 0.7487078672168751 33.80939990733931
3231 POINT 3224 0.9957605981669626 34.2661278457785
3232 POINT 3225 1.254058877164035 32.88356843083666
3233 POINT 3226 4.807634527403731 36.45417558306546
3234 POINT 3227 4.268078121334274 36.43451973236753
3235 POINT 3228 5.055439451329409 35.99075638523749
3236 POINT 3229 4.016824286852271 36.00258917550283
3237 POINT 3230 3.742624318707891 36.43693935563272
3238 POINT 3231 4.285159710652261 35.55276249892606
3239 POINT 3232 3.759705908025878 35.55518212219123
3240 POINT 3233 5.313339571489223 35.5337790049437
3241 POINT 3234 5.576017529265764 35.08006250744026
3242 POINT 3235 4.800178209638467 35.54319217194386
3243 POINT 3236 4.543059830812075 35.09578511863226
3244 POINT 3237 6.593280538182253 29.7267168205935
3245 POINT 3238 6.845584839365598 29.28169702003494
3246 POINT 3239 6.335879606186479 29.27904143291438
3247 POINT 3240 6.851155373110538 30.17533731825264
3248 POINT 3241 7.361674109424366 30.17880960428335
3249 POINT 3242 7.109843711173534 30.62477451482192
3250 POINT 3243 7.613368231755042 29.73274323698628
3251 POINT 3244 7.872056569818037 30.18218043355557
3252 POINT 3245 3.794429966540387 31.05851703304998
3253 POINT 3246 4.049286650570231 30.61131584299384
3254 POINT 3247 3.794281271533463 30.1641111043279
3255 POINT 3248 3.033012443010421 30.61175253684394
3256 POINT 3249 3.285536433201112 31.06016885716353
3257 POINT 3250 3.286800241984837 30.16372604714163
3258 POINT 3251 19.49782570706544 18.22623423316451
3259 POINT 3252 19.95653726784996 18.68219111832597
3260 POINT 3253 18.58166017353374 18.21127385550157
3261 POINT 3254 18.44873815733738 18.65901810939465
3262 POINT 3255 17.82900842060782 17.79250664273356
3263 POINT 3256 17.55961501255982 18.23365515048583
3264 POINT 3257 18.38742546426215 17.76710888707429
3265 POINT 3258 18.87780136911621 17.75460013746301
3266 POINT 3259 17.52690217883121 14.67823772169018
3267 POINT 3260 17.21413812833305 15.13667453160922
3268 POINT 3261 17.10180895186563 14.27897243895621
3269 POINT 3262 16.61643123646513 14.28454314481263
3270 POINT 3263 16.41267770706892 14.73120621263948
3271 POINT 3264 16.07296510477975 14.29114476438398
3272 POINT 3265 14.25527356652689 20.00000694342845
3273 POINT 3266 14.54458535674566 20.44472120503738
3274 POINT 3267 15.08660392329284 20.4503355424043
3275 POINT 3268 15.22709411735221 19.99960748842541
3276 POINT 3269 14.54446737878539 19.55524897689899
3277 POINT 3270 14.04144304480628 19.5552644241821
3278 POINT 3271 15.12585065643982 22.18962336947886
3279 POINT 3272 15.66704893150966 22.18912647227221
3280 POINT 3273 15.93226494226947 22.62311502278055
3281 POINT 3274 15.63603332292851 23.06058148636886
3282 POINT 3275 15.10960336366766 23.06196334102751
3283 POINT 3276 14.85525309603435 22.62543767487836
3284 POINT 3277 15.07838610348047 15.1733118594097
3285 POINT 3278 15.60761466098593 15.17729090093799
3286 POINT 3279 15.33998301787808 14.73382879068254
3287 POINT 3280 14.82036766750458 15.61339008097941
3288 POINT 3281 15.08744436360368 16.05749207836569
3289 POINT 3282 14.56179428451994 16.05410818967995
3290 POINT 3283 14.55273602439673 15.16992797072396
3291 POINT 3284 15.87591227598083 15.61135500755215
3292 POINT 3285 16.13750919037845 15.17187193882498
3293 POINT 3286 16.68097532206382 15.16527031925363
3294 POINT 3287 16.93896961164258 15.57734025779473
3295 POINT 3288 17.24542059267814 16.921237054667
3296 POINT 3289 17.42133862340716 16.46621174527455
3297 POINT 3290 16.6991273812222 16.92861646965699
3298 POINT 3291 17.19812051536607 16.01499394956502
3299 POINT 3292 16.66495770909684 16.04358973720944
3300 POINT 3293 16.50011603657139 19.55060584927988
3301 POINT 3294 16.11086118526408 19.54894289457717
3302 POINT 3295 16.23490740586323 18.67143802475644
3303 POINT 3296 16.77688889638486 18.67109500215383
3304 POINT 3297 16.90823717346987 19.54895804099115
3305 POINT 3298 15.66731510254423 17.81120259941419
3306 POINT 3299 15.93239678965792 17.3770904840493
3307 POINT 3300 15.12588811735991 17.81032407015078
3308 POINT 3301 15.40255579021237 18.24333521180063
3309 POINT 3302 14.85535684791786 17.37460770073489
3310 POINT 3303 15.10975920515541 16.93820082241529
3311 POINT 3304 14.5744686233815 16.93461706538583
3312 POINT 3305 14.59059753558601 17.80674031312132
3313 POINT 3306 16.79406525039852 28.02745799197655
3314 POINT 3307 17.07238886613754 28.4906939788942
3315 POINT 3308 16.57289177244715 28.46738533203519
3316 POINT 3309 17.4965710356451 27.60644365003999
3317 POINT 3310 17.80117571229844 28.04994051262165
3318 POINT 3311 17.02019681392827 27.57157998790804
3319 POINT 3312 16.52069972023788 27.54827134104903
3320 POINT 3313 17.58991650606833 28.49979170459397
3321 POINT 3314 18.10312000032976 28.50159082583126
3322 POINT 3315 18.41154163693258 26.70405457720359
3323 POINT 3316 18.5809862969927 26.22413241238169
3324 POINT 3317 18.8590620588132 26.65851173471512
3325 POINT 3318 17.91957654068757 26.71697613947613
3326 POINT 3319 17.69355159834902 26.21921846733577
3327 POINT 3320 18.11866262353381 25.81991390377403
3328 POINT 3321 16.25412989716249 27.08512372750859
3329 POINT 3322 16.02799833363274 27.5410017315771
3330 POINT 3323 12.4713348273634 20.44086210014538
3331 POINT 3324 12.74356289841131 20.88266792813398
3332 POINT 3325 12.48035189032188 21.32047783433658
3333 POINT 3326 11.9561289915379 23.08041192363828
3334 POINT 3327 12.47539190118238 23.07854903560531
3335 POINT 3328 12.21410635583005 23.51991665586499
3336 POINT 3329 11.69840716659313 22.64001307273599
3337 POINT 3330 13.00253570004953 22.19714775592412
3338 POINT 3331 13.52908269363856 22.196464052818
3339 POINT 3332 13.52075711029057 23.07307462590749
3340 POINT 3333 13.79176001498042 22.63195101028575
3341 POINT 3334 12.99841005278091 23.07655233280262
3342 POINT 3335 12.74043268848876 22.63704760057591
3343 POINT 3336 12.47951754845101 22.19914445872682
3344 POINT 3337 16.76214594331712 26.16105609261419
3345 POINT 3338 16.616482945813 25.71543906542623
3346 POINT 3339 16.07300726146418 25.70885169527617
3347 POINT 3340 15.7756762466737 26.15848944588978
3348 POINT 3341 16.01909527733369 26.61668049315067
3349 POINT 3342 15.51800947989736 26.61966307077576
3350 POINT 3343 16.51179666393882 26.6239501026226
3351 POINT 3344 18.1251910242728 22.66390416293884
3352 POINT 3345 18.38730066575757 22.23230127821533
3353 POINT 3346 18.87782298075228 22.24485624002787
3354 POINT 3347 18.30109750604809 23.11887529175939
3355 POINT 3348 18.75407461365194 23.14583948729189
3356 POINT 3349 19.25336766894756 22.67096916601431
3357 POINT 3350 19.18732501041783 23.0950223359802
3358 POINT 3351 19.76177108442964 23.07772703249995
3359 POINT 3352 13.22907297795537 11.13290668839839
3360 POINT 3353 12.97061925836632 10.68124856516747
3361 POINT 3354 12.46766895126554 10.67227901173746
3362 POINT 3355 12.97143653644138 11.58072012917699
3363 POINT 3356 13.4844546615271 11.58282112395052
3364 POINT 3357 12.45912907450942 11.5804496180641
3365 POINT 3358 12.71451075808115 12.03036405361623
3366 POINT 3359 -7.335668197682937 22.20031115705586
3367 POINT 3360 -7.590411055385765 22.64051999376785
3368 POINT 3361 -6.827537248934346 22.20035519110679
3369 POINT 3362 -6.573651574572926 22.64022353991485
3370 POINT 3363 -6.319913095875537 22.20029198565057
3371 POINT 3364 -5.813247200796855 22.20059393150383
3372 POINT 3365 -5.306832057388836 22.20081300727318
3373 POINT 3366 -6.067132875158276 21.76072558269578
3374 POINT 3367 -5.81454204920424 21.32106756251621
3375 POINT 3368 -5.309100236308474 21.32171516131793
3376 POINT 3369 -9.89088523942082 17.79886411983713
3377 POINT 3370 -10.14857204283547 18.23918999542934
3378 POINT 3371 -9.377722815740299 17.79898156357048
3379 POINT 3372 -9.121932143058153 18.23935021686822
3380 POINT 3373 -9.377649624192905 18.6793738168293
3381 POINT 3374 -10.66209369019408 15.59357842031993
3382 POINT 3375 -10.4047259333652 16.03513252143312
3383 POINT 3376 -9.890767799768657 16.03514342813541
3384 POINT 3377 -15.5551069052719 19.54892678731335
3385 POINT 3378 -15.97007772814454 19.09864623920131
3386 POINT 3379 -16.11086108382489 19.54894292435325
3387 POINT 3380 -15.08631065964352 19.54931079809318
3388 POINT 3381 -15.22709401532387 19.99960748324512
3389 POINT 3382 -11.95485738736122 20.44085699368801
3390 POINT 3383 -12.47133467813871 20.44086208506123
3391 POINT 3384 -12.2071089926688 20.00000805384752
3392 POINT 3385 -12.48035172922288 21.32047778514489
3393 POINT 3386 -11.95880860940138 21.32105241155066
3394 POINT 3387 -12.22007726579314 21.75981917179383
3395 POINT 3388 -11.69942419611676 20.88138349347376
3396 POINT 3389 -17.47644814565474 19.54717789841071
3397 POINT 3390 -17.94988903481506 19.54747252881383
3398 POINT 3391 -17.76408314933547 19.99954839206847
3399 POINT 3392 -18.23422300064733 19.09467791728322
3400 POINT 3393 -17.87676913679358 18.65944248023681
3401 POINT 3394 -17.09404296891593 19.09688220569864
3402 POINT 3395 -16.90823708343633 19.54895806895328
3403 POINT 3396 -19.76177103771798 23.07772732892936
3404 POINT 3397 -19.25336756698695 22.67096898371729
3405 POINT 3398 -19.18732490419377 23.0950221392252
3406 POINT 3399 -19.4477189002975 22.22685220009963
3407 POINT 3400 -19.87859220361732 22.20035725566065
3408 POINT 3401 -19.25792784453962 23.55188835030948
3409 POINT 3402 -18.75407461812375 23.14583867813167
3410 POINT 3403 -19.16298007020004 24.02058528839067
3411 POINT 3404 -19.60183463285162 23.97090406750409
3412 POINT 3405 -17.87637073668006 21.33989279033893
3413 POINT 3406 -17.34486803521384 21.33058393944672
3414 POINT 3407 -17.55962675727944 21.76632022241122
3415 POINT 3408 -17.09376266137075 20.90344544375881
3416 POINT 3409 -16.77701868197013 21.3298728758311
3417 POINT 3410 -17.4761271373948 20.45170513451989
3418 POINT 3411 -16.90827778415109 20.45099407090427
3419 POINT 3412 -17.94956802655513 20.45199976492301
3420 POINT 3413 -18.23371022509465 20.90481762695371
3421 POINT 3414 -15.02942422141325 28.42914654430462
3422 POINT 3415 -14.7671126385203 27.97953118420565
3423 POINT 3416 -15.52045268491218 27.53143128093732
3424 POINT 3417 -15.78702266040701 27.9945786571865
3425 POINT 3418 -15.54890495492492 28.43938079825739
3426 POINT 3419 -15.01758100424557 27.52935438202635
3427 POINT 3420 -14.50521687329288 27.52387632798913
3428 POINT 3421 -9.904430672806125 28.40707065619491
3429 POINT 3422 -10.41689547651911 28.41240707877134
3430 POINT 3423 -10.66929721457722 27.96611203768271
3431 POINT 3424 -10.92866096154303 28.41597287549923
3432 POINT 3425 -9.645779006227713 27.95898668411711
3433 POINT 3426 -9.392677949480536 28.4035110993572
3434 POINT 3427 -10.41083773720197 27.51739624213824
3435 POINT 3428 -9.899141965330045 27.51510256681794
3436 POINT 3429 -10.15244797297871 27.06995256800136
3437 POINT 3430 -12.99581434484171 20.4418189497832
3438 POINT 3431 -13.51014574115279 20.441823572053
3439 POINT 3432 -13.23791767975737 20.00001776749054
3440 POINT 3433 -13.00483139592588 21.32143464986686
3441 POINT 3434 -13.53137837642367 21.32075092653462
3442 POINT 3435 -13.26816736611243 21.75856082205582
3443 POINT 3436 -12.74356273953413 20.88266788962369
3444 POINT 3437 -13.79945752002789 20.88653779646463
3445 POINT 3438 -14.06279349021444 21.32366396865359
3446 POINT 3439 -13.00253550757575 22.19714766326392
3447 POINT 3440 -13.52908248807354 22.19646393993168
3448 POINT 3441 -16.2347869870319 21.3294814436242
3449 POINT 3442 -16.48589236087499 21.75661993931211
3450 POINT 3443 -12.19975810951217 27.07290291179299
3451 POINT 3444 -12.4571711074429 27.52124904151294
3452 POINT 3445 -12.9694803662368 27.52097783922964
3453 POINT 3446 -12.45674394638519 26.62593741289694
3454 POINT 3447 -13.99578690627322 27.52331351175184
3455 POINT 3448 -14.24625527199849 27.07313670957253
3456 POINT 3449 -13.48182261231196 27.52097247150653
3457 POINT 3450 -13.22448305890368 27.07257926105835
3458 POINT 3451 -16.51179676394965 26.62394911594787
3459 POINT 3452 -16.76214593621621 26.16105509049696
3460 POINT 3453 -16.01909528016721 26.61667970802645
3461 POINT 3454 -15.77567611970079 26.15848881210691
3462 POINT 3455 -16.6164827210978 25.71543822133669
3463 POINT 3456 -17.10186669733096 25.72098721941252
3464 POINT 3457 -14.2878073219469 25.27536783225349
3465 POINT 3458 -14.55271790511985 24.83011743787473
3466 POINT 3459 -8.872303159269968 26.61976418580748
3467 POINT 3460 -9.383403717149058 26.62219230704299
3468 POINT 3461 -8.615525103211919 26.17503638397946
3469 POINT 3462 -8.361773029290564 26.61807484838205
3470 POINT 3463 -6.072689306874938 27.05391647376855
3471 POINT 3464 -5.820129147476668 27.49712192171329
3472 POINT 3465 -6.32809711573065 27.4985865281558
3473 POINT 3466 -8.108499361881071 27.06075324214968
3474 POINT 3467 -7.851721305823022 26.61602544032166
3475 POINT 3468 -7.342393531093229 26.61452723488857
3476 POINT 3469 -7.595667198502723 26.17184884112093
3477 POINT 3470 -7.089552456771225 27.05704245715018
3478 POINT 3471 -6.833498349450926 26.61286585794945
3479 POINT 3472 -8.86778693118517 24.84742870791405
3480 POINT 3473 -9.124384612345526 25.29019441464502
3481 POINT 3474 -9.37915421259267 24.8485055322633
3482 POINT 3475 -8.869536282064676 25.73292165585033
3483 POINT 3476 -9.380903563472174 25.73399848019958
3484 POINT 3477 -8.359006152085271 25.7312323184249
3485 POINT 3478 -8.357038518711398 24.84664678923989
3486 POINT 3479 -10.66208748767119 24.40642264890459
3487 POINT 3480 -10.40472005439022 23.96486714250717
3488 POINT 3481 -9.890762707770147 23.96485666497387
3489 POINT 3482 -10.14796982013292 23.52313091779618
3490 POINT 3483 -9.635034736729882 24.4061663576086
3491 POINT 3484 -9.891632417890238 24.84893206433957
3492 POINT 3485 -10.91783258828627 25.73632062930466
3493 POINT 3486 -11.1763927535566 25.29161367806042
3494 POINT 3487 -10.91909643785067 24.8491689242055
3495 POINT 3488 -10.40452189220693 24.84933916498578
3496 POINT 3489 -10.14864136806972 25.29167833964048
3497 POINT 3490 -11.74873160124686 31.58187192779659
3498 POINT 3491 -11.49828734891701 32.00603316279637
3499 POINT 3492 -11.47479874651534 31.12093311396852
3500 POINT 3493 -11.99907724384035 31.14306172093513
3501 POINT 3494 -8.903187047443012 31.09050659247998
3502 POINT 3495 -8.391529066814227 31.08429727879821
3503 POINT 3496 -9.153056137445173 30.63961932778357
3504 POINT 3497 -9.398187070199079 29.29658412996691
3505 POINT 3498 -9.657774617851228 29.74665905739351
3506 POINT 3499 -8.893751625915996 30.18945879004375
3507 POINT 3500 -8.634397568876253 29.73884359430083
3508 POINT 3501 -8.383104670453044 30.18672919584575
3509 POINT 3502 -9.404349035868384 30.19173372623865
3510 POINT 3503 -9.917079129380406 30.19681959513333
3511 POINT 3504 -11.43712146196009 23.08138062463141
3512 POINT 3505 -10.92066341043863 23.08206159128155
3513 POINT 3506 -10.92128239036736 22.20090962423238
3514 POINT 3507 -11.43896690004795 22.20068779271661
3515 POINT 3508 -10.40485749578829 23.08231672552517
3516 POINT 3509 -9.890900149168209 23.08230624799187
3517 POINT 3510 -9.634625983220046 22.64137541680352
3518 POINT 3511 -10.66359373947392 22.64123692147724
3519 POINT 3512 -10.40547647571701 22.201164758476
3520 POINT 3513 -10.66371310846123 20.88088246173954
3521 POINT 3514 -10.40367257665969 20.44035401979257
3522 POINT 3515 -10.40541301206526 21.32077321133221
3523 POINT 3516 -9.8901701579261 20.44035371858478
3524 POINT 3517 -10.14618183706572 19.99999877694407
3525 POINT 3518 -9.634491342600295 20.88059096244695
3526 POINT 3519 -6.573652952599984 17.35977611294056
3527 POINT 3520 -6.827538661488333 17.79964423723647
3528 POINT 3521 -7.335669920285115 17.79968797825121
3529 POINT 3522 -6.827402180000886 16.91959841386031
3530 POINT 3523 -7.335858102257347 16.9191701018657
3531 POINT 3524 -7.590413254981577 17.35947930332449
3532 POINT 3525 -3.091725092272973 19.99999995889544
3533 POINT 3526 -2.823024423095185 20.44465006103595
3534 POINT 3527 -2.82302446192895 19.55534988331524
3535 POINT 3528 -2.318125036326323 19.55191484953968
3536 POINT 3529 -2.134926559547786 19.9999999853544
3537 POINT 3530 -2.359753808315156 39.37214496437061
3538 POINT 3531 -2.220681201259319 39.87633202954547
3539 POINT 3532 -2.853428424545745 39.31281750216315
3540 POINT 3533 -3.322774736378872 39.23779911173357
3541 POINT 3534 -3.813302945216087 39.15997614437607
3542 POINT 3535 -4.091233566165744 39.57707352541702
3543 POINT 3536 -4.278277613788639 39.06280534020281
3544 POINT 3537 -3.156650010923889 39.74931797899575
3545 POINT 3538 -3.033012362958341 30.6117523199572
3546 POINT 3539 -2.778186554918571 31.06104208632408
3547 POINT 3540 -2.27138793410801 31.06354594879045
3548 POINT 3541 -2.523911917777087 31.51196219615595
3549 POINT 3542 -2.019774925652819 30.61385000253146
3550 POINT 3543 -1.765500288511335 31.06477011236333
3551 POINT 3544 -2.779450402058304 30.16459938073862
3552 POINT 3545 -3.286800193767151 30.16372586173725
3553 POINT 3546 -3.794281249655442 30.16411092827807
3554 POINT 3547 -3.540719288755405 29.71695798905948
3555 POINT 3548 -4.303205754685972 30.16454776931187
3556 POINT 3549 -3.027617960595887 32.41056575188199
3557 POINT 3550 -2.775003207540966 31.96212546436659
3558 POINT 3551 -2.268204586730404 31.96462932683296
3559 POINT 3552 -2.013562100740824 32.41916396507942
3560 POINT 3553 -1.762470810976946 31.96900069686879
3561 POINT 3554 -2.77002899331762 32.86450527990432
3562 POINT 3555 -3.278351077419224 32.86027843674272
3563 POINT 3556 -2.262552160354756 32.87152776282665
3564 POINT 3557 -2.513285277178094 33.32124044768738
3565 POINT 3558 -1.512133134743765 31.51667171366356
3566 POINT 3559 -1.257490648754185 31.97120635191003
3567 POINT 3560 -0.7545339478042523 31.97468651214141
3568 POINT 3561 -0.5035764459107245 31.51991166117807
3569 POINT 3562 -0.7557251001955001 31.06778971354904
3570 POINT 3563 -1.260520126288574 31.06697576740457
3571 POINT 3564 -1.997791297947086 34.24333855669495
3572 POINT 3565 -2.25349817785614 33.77894139916177
3573 POINT 3566 -2.760975010819003 33.77191891623943
3574 POINT 3567 -3.011955447586298 34.2203681171806
3575 POINT 3568 -3.271742546908253 33.76266716570622
3576 POINT 3569 -2.748277227128552 34.67648604901853
3577 POINT 3570 -3.259044763217802 34.66723429848531
3578 POINT 3571 -2.242930952922364 34.69789100853247
3579 POINT 3572 -10.99496194121145 34.7558609147853
3580 POINT 3573 -11.47394482127665 34.67289318116666
3581 POINT 3574 -10.72127300001099 35.18620741077456
3582 POINT 3575 -10.447732383235 34.72460493961236
3583 POINT 3576 -11.39311640574461 35.78402816783584
3584 POINT 3577 -11.76362390176834 35.51004748537068
3585 POINT 3578 -11.89139445142899 36.08088113093766
3586 POINT 3579 -10.945244583311 30.21194894494906
3587 POINT 3580 -11.20910920668068 30.66888033631249
3588 POINT 3581 -10.95876356408719 31.10769054317395
3589 POINT 3582 -10.43863904361896 31.09908334789622
3590 POINT 3583 -10.70432858345361 31.55113612555225
3591 POINT 3584 -10.17836378582505 30.6487660147482
3592 POINT 3585 -10.43178936780789 30.20369134590305
3593 POINT 3586 -12.20772792247103 28.87130307528364
3594 POINT 3587 -11.95934239545081 29.3298295299858
3595 POINT 3588 -11.44840757865733 29.32083401178019
3596 POINT 3589 -11.18782961921505 28.86783790788402
3597 POINT 3590 -11.95080070850122 28.4216606767123
3598 POINT 3591 -11.44023135727316 28.42154286679538
3599 POINT 3592 -12.78538354685579 31.63539654824448
3600 POINT 3593 -13.08141318168281 32.09785280557013
3601 POINT 3594 -13.69337999756491 33.05046757946367
3602 POINT 3595 -14.20287042370327 33.22861936316023
3603 POINT 3596 -13.9643465646559 33.62431331178948
3604 POINT 3597 -14.50371229213761 32.89870088682812
3605 POINT 3598 -14.7783619362536 33.47590510864688
3606 POINT 3599 -14.33939456995485 32.47590094466933
3607 POINT 3600 -13.3984866124191 32.59184334012446
3608 POINT 3601 -13.61483042587599 32.16078309628009
3609 POINT 3602 -12.5094486201497 31.15885540730061
3610 POINT 3603 -12.23551576541817 30.69791659347253
3611 POINT 3604 -12.48258595884198 30.24998072031472
3612 POINT 3605 -13.02182206843361 31.19025142078188
3613 POINT 3606 -13.23628259023528 30.6875215539166
3614 POINT 3607 -13.51221751694137 31.16406269486048
3615 POINT 3608 -12.98553667078657 30.24101005064971
3616 POINT 3609 -9.935933060425999 31.99895783017763
3617 POINT 3610 -9.425788712629927 31.99952776172602
3618 POINT 3611 -9.175113162335302 32.44721817562974
3619 POINT 3612 -9.433884308094877 32.90351985240996
3620 POINT 3613 -9.947998399553743 32.91366946294919
3621 POINT 3614 -9.694220649782007 33.36180258527841
3622 POINT 3615 -5.845709714652145 32.8543394931615
3623 POINT 3616 -6.35943259227712 32.85785448154385
3624 POINT 3617 -6.099796641324188 32.4084027857334
3625 POINT 3618 -6.620526367917938 33.30931460020675
3626 POINT 3619 -6.874613294589981 32.86337789277866
3627 POINT 3620 -5.843830266875138 33.74469076224041
3628 POINT 3621 -6.366502908847091 33.75556165131462
3629 POINT 3622 -6.104987510117153 34.19646122458308
3630 POINT 3623 -6.881683611159954 33.76108506254942
3631 POINT 3624 -8.152299853281146 32.43384481530836
3632 POINT 3625 -7.904575766385607 32.88643722911405
3633 POINT 3626 -7.38887125499455 32.87173901043978
3634 POINT 3627 -7.651411581621856 33.32953623011583
3635 POINT 3628 -7.891317422946985 31.97994508772288
3636 POINT 3629 -7.127777479353732 32.42027889177689
3637 POINT 3630 5.815416780370211 25.7254507508302
3638 POINT 3631 6.068349777660536 25.28383032121751
3639 POINT 3632 6.322914497966334 25.72626412073013
3640 POINT 3633 5.813813981238598 24.84216926607556
3641 POINT 3634 5.054251193044102 25.28243436294704
3642 POINT 3635 5.306981751859498 24.8417834592201
3643 POINT 3636 5.559943673033683 24.40093577397807
3644 POINT 3637 6.584305206584972 27.94375248790075
3645 POINT 3638 6.331860450220269 28.38790682772228
3646 POINT 3639 6.840628663734527 28.38986729253429
3647 POINT 3640 6.328097160904627 27.49858657198942
3648 POINT 3641 5.31221078469278 27.49556469000557
3649 POINT 3642 5.057585437902588 27.05131477146023
3650 POINT 3643 5.817351437794507 26.61016822842614
3651 POINT 3644 6.072689351825773 27.05391651369978
3652 POINT 3645 6.325319414707275 26.61163283561645
3653 POINT 3646 5.82012918399186 27.49712196479911
3654 POINT 3647 5.567618593771634 27.9402347482952
3655 POINT 3648 4.047052787592788 28.82584698915801
3656 POINT 3649 4.29983719277504 28.38154452099692
3657 POINT 3650 4.807024232846825 28.38271374491336
3658 POINT 3651 4.301274310468107 29.2720465985073
3659 POINT 3652 4.809682020990673 29.27320084424044
3660 POINT 3653 4.549022188976916 26.16510838289133
3661 POINT 3654 4.802971287585841 26.60801534827591
3662 POINT 3655 4.296500402283245 26.6072706710264
3663 POINT 3656 5.310107224596258 26.60915248332515
3664 POINT 3657 5.56273728747776 26.16686880524183
3665 POINT 3658 5.308172567171963 25.72443500572921
3666 POINT 3659 4.801571700151651 25.72385241735866
3667 POINT 3660 3.790057682711869 26.60644965824722
3668 POINT 3661 4.044006781320794 27.04935662363181
3669 POINT 3662 3.284985274934477 27.49173672429433
3670 POINT 3663 3.031723737372097 27.04803779814592
3671 POINT 3664 3.284192748221195 26.60594750772882
3672 POINT 3665 3.791445088039201 27.4924373182607
3673 POINT 3666 7.595667276623683 26.1718488829917
3674 POINT 3667 7.339729660651949 25.72854265913015
3675 POINT 3668 6.831093491921173 25.72749718220235
3676 POINT 3669 6.578160494630848 26.16911761181503
3677 POINT 3670 6.833498408662114 26.61286589708867
3678 POINT 3671 7.342393603714925 26.61452727784253
3679 POINT 3672 7.851721391752919 26.61602548754698
3680 POINT 3673 10.16379461741962 28.8569316742142
3681 POINT 3674 9.910917354739734 29.30167017583803
3682 POINT 3675 10.42338218073125 29.30700664681063
3683 POINT 3676 9.398187236685452 29.296584259916
3684 POINT 3677 11.1763929467876 25.29161378016803
3685 POINT 3678 11.43269470633229 25.73584899017798
3686 POINT 3679 11.17575978189087 27.0727338951912
3687 POINT 3680 11.43421927431302 27.52144974007221
3688 POINT 3681 10.92260343334439 27.52096222835202
3689 POINT 3682 11.43075507899234 26.62688867729366
3690 POINT 3683 11.95934260436991 29.32983015861389
3691 POINT 3684 12.46767046560084 29.32772545608889
3692 POINT 3685 12.20772811265096 28.87130363239207
3693 POINT 3686 12.48258604719192 30.24998189542344
3694 POINT 3687 11.97221474555926 30.23418783961753
3695 POINT 3688 12.23551583543139 30.69791775273026
3696 POINT 3689 12.9694805256095 27.52097823699379
3697 POINT 3690 13.48182274384587 27.52097291958309
3698 POINT 3691 13.74078426771563 27.97171267290139
3699 POINT 3692 13.99578697125026 27.52331403777258
3700 POINT 3693 -0.2530784093217016 18.66225344208705
3701 POINT 3694 0.2530784208222577 18.66225344183592
3702 POINT 3695 6.030645871568652e-09 18.22651105844045
3703 POINT 3696 0.5081910055071862 19.09773258580186
3704 POINT 3697 -0.5081909940579249 19.09773258612098
3705 POINT 3698 0.3913327604803437 19.54899791355816
3706 POINT 3699 2.734955073611239e-09 19.54899791274126
3707 POINT 3700 -0.3913327526621249 19.54899791355815
3708 POINT 3701 3.794281045691874 9.835889181209401
3709 POINT 3702 3.286800036582792 9.836274197162457
3710 POINT 3703 2.229340800261039 4.38442472316282
3711 POINT 3704 1.730980420814213 4.354398366661153
3712 POINT 3705 1.975648040643678 3.904985248730975
3713 POINT 3706 5.253303014360708 1.128293718388772
3714 POINT 3707 5.02628530891481 0.6418891392761246
3715 POINT 3708 2.255436532179687 1.571943194814049
3716 POINT 3709 1.982157162102268 2.023904119430414
3717 POINT 3710 2.749111535735891 1.631270413254645
3718 POINT 3711 -1.254058521951619 7.116431779054716
3719 POINT 3712 -0.7511018940799036 7.112951583302987
3720 POINT 3713 -1.503048503853604 6.664068013225982
3721 POINT 3714 -1.997790841279557 5.756661654557217
3722 POINT 3715 -1.739533928644415 5.288390381777326
3723 POINT 3716 -2.242930398731676 5.302109189546279
3724 POINT 3717 -1.241669088051592 5.270356204654476
3725 POINT 3718 -0.9957604298274654 5.733872215635875
3726 POINT 3719 -1.247341652262671 6.199670785960144
3727 POINT 3720 -0.7487077108978402 6.190600154807756
3728 POINT 3721 -1.750101222783229 6.207340074054102
3729 POINT 3722 0.2525804711664861 16.03806627312495
3730 POINT 3723 0.7575089779655068 16.03809741945602
3731 POINT 3724 2.02030624750022 16.47789565447198
3732 POINT 3725 1.768522151534456 16.91607496170236
3733 POINT 3726 1.263131370718908 16.9154812897201
3734 POINT 3727 1.010191697747241 16.47724942348051
3735 POINT 3728 0.7581006050570804 16.91517093599549
3736 POINT 3729 1.767492760883478 16.03853792054329
3737 POINT 3730 1.262539743627335 16.03840777318063
3738 POINT 3731 2.020500917581566 12.9527349076961
3739 POINT 3732 2.27331260158336 12.50912505089398
3740 POINT 3733 2.779144928744407 12.50876122906312
3741 POINT 3734 3.031723754127154 12.95196235014854
3742 POINT 3735 2.778352454165535 13.39455042727942
3743 POINT 3736 2.272957833603747 13.3948329253368
3744 POINT 3737 2.525426876575043 13.8369232187498
3745 POINT 3738 2.777506896019309 15.1594754466739
3746 POINT 3739 2.272346079797352 15.15939314985943
3747 POINT 3740 2.019831152532347 14.71933669397711
3748 POINT 3741 3.030366570726561 14.7190708982712
3749 POINT 3742 2.272480678625036 14.27823797632229
3750 POINT 3743 2.777875299186825 14.27795547826491
3751 POINT 3744 10.93683714441736 10.68473936450384
3752 POINT 3745 10.42338210640577 10.69299645121282
3753 POINT 3746 10.16379499462924 11.14307136444035
3754 POINT 3747 9.91091727032488 10.69833236588283
3755 POINT 3748 10.41689657692929 11.58759618069605
3756 POINT 3749 9.904431740848405 11.59293209536606
3757 POINT 3750 8.383104263115078 9.813271926383957
3758 POINT 3751 8.131409992405931 9.367205411144512
3759 POINT 3752 9.398187257932385 10.70341785754419
3760 POINT 3753 9.657774369708918 10.25334294431667
3761 POINT 3754 8.893751225144806 9.810542586143804
3762 POINT 3755 8.634397395286692 10.26115777621818
3763 POINT 3756 8.886484135943755 10.70714689312742
3764 POINT 3757 9.13962703655972 11.15213631469359
3765 POINT 3758 9.404348514274115 9.808267818781912
3766 POINT 3759 9.153055382102501 9.360381968947689
3767 POINT 3760 8.872305329160442 13.38023764365699
3768 POINT 3761 8.361774760572246 13.38192662649333
3769 POINT 3762 8.108500687104918 12.93924814391208
3770 POINT 3763 7.851722750806532 13.38397571670315
3771 POINT 3764 9.129653596289845 12.93477140237956
3772 POINT 3765 9.383406228579656 13.37780999233429
3773 POINT 3766 8.365440776821156 12.49364881518358
3774 POINT 3767 8.880975687566195 11.60022015801457
3775 POINT 3768 8.623178158666493 12.04733677120861
3776 POINT 3769 8.876290078715968 12.4908870097273
3777 POINT 3770 9.387390978135182 12.48845935840459
3778 POINT 3771 9.645780391854883 12.04101593868705
3779 POINT 3772 9.392678809554825 11.59649112243135
3780 POINT 3773 7.336521171883755 16.03802297080912
3781 POINT 3774 6.828065241427138 16.03845128541167
3782 POINT 3775 7.5918329762552 15.59662152541176
3783 POINT 3776 7.845750620519943 16.03722595032059
3784 POINT 3777 7.337862589465587 15.15534235318604
3785 POINT 3778 5.057585641163165 12.94868558387678
3786 POINT 3779 5.310107534158264 13.39084788872668
3787 POINT 3780 5.817351898032172 13.38983223877548
3788 POINT 3781 6.07268977213729 12.94608405296639
3789 POINT 3782 6.325320010388582 13.38836776247147
3790 POINT 3783 5.312210950489913 12.50443571161929
3791 POINT 3784 5.820129413724779 12.50287853813417
3792 POINT 3785 7.339731120788066 14.27145814743096
3793 POINT 3786 7.595668707268915 13.82815216683726
3794 POINT 3787 6.578161363273717 13.83088304133535
3795 POINT 3788 6.833499237378835 13.38713485552626
3796 POINT 3789 7.342394633801588 13.38547368425602
3797 POINT 3790 0.252580463343477 23.08531079540609
3798 POINT 3791 8.162767350938793e-09 23.52306095911839
3799 POINT 3792 -0.2525804483660444 23.08531079452379
3800 POINT 3793 0.7575089608641339 23.96190261703586
3801 POINT 3794 1.010191668996723 23.52275060745893
3802 POINT 3795 0.7581005854889762 23.08482908796231
3803 POINT 3796 0.2525804650598689 23.96193376174162
3804 POINT 3797 -0.2525804466496525 23.96193376085932
3805 POINT 3798 0.5049285060517139 24.40077541877679
3806 POINT 3799 -0.5055201152249069 22.64707892226741
3807 POINT 3800 -0.7581005704056165 23.08482908597971
3808 POINT 3801 -2.280691500226466 21.33225925503491
3809 POINT 3802 -2.53596148453538 20.89273520120051
3810 POINT 3803 -2.318125017725038 20.44808511706579
3811 POINT 3804 -1.847863620987981 20.44808512551896
3812 POINT 3805 -1.523722029333108 20.89935045509462
3813 POINT 3806 5.812596363012457 16.91987591856731
3814 POINT 3807 6.066345594955665 16.47969821633841
3815 POINT 3808 5.052976709870697 16.47984331586753
3816 POINT 3809 5.306138118529179 16.03968129951453
3817 POINT 3810 3.790935938593665 22.20328485170038
3818 POINT 3811 3.537066694466712 22.64267534247436
3819 POINT 3812 3.788945299949968 23.08133297666114
3820 POINT 3813 4.294456576555887 23.08098941943979
3821 POINT 3814 5.814542622740053 18.67893193273223
3822 POINT 3815 6.321208749925488 18.67923371051273
3823 POINT 3816 5.56317568611094 19.11824430305507
3824 POINT 3817 5.309100721439222 18.67828449587171
3825 POINT 3818 5.55961311789328 17.35962041953518
3826 POINT 3819 5.306832701253025 17.79918676761919
3827 POINT 3820 5.306180989556889 16.91965690872165
3828 POINT 3821 4.547661231803737 17.3588241803909
3829 POINT 3822 4.799993464751521 16.91958781683539
3830 POINT 3823 4.801296726707842 17.79849881202905
3831 POINT 3824 4.295760214073866 17.79792158273044
3832 POINT 3825 5.054931683523153 18.23828416995873
3833 POINT 3826 4.80356474689404 18.67759654028158
3834 POINT 3827 4.299173611489742 18.6763503095416
3835 POINT 3828 3.290304316514962 18.67294152057774
3836 POINT 3829 3.035034337010901 18.23341748971889
3837 POINT 3830 3.285878391294609 17.79579279452859
3838 POINT 3831 3.790936184735975 17.79671510214655
3839 POINT 3832 4.04457167964008 18.2363897337847
3840 POINT 3833 3.794349582151851 18.67514382895771
3841 POINT 3834 10.40547659015908 22.20116479457716
3842 POINT 3835 10.92128251969344 22.20090966781737
3843 POINT 3836 10.14796994537765 23.52313096986383
3844 POINT 3837 9.8907628324997 23.96485671831825
3845 POINT 3838 10.40472019475341 23.96486720377927
3846 POINT 3839 9.890900260175624 23.08230629000788
3847 POINT 3840 9.378284610504384 23.96443017775849
3848 POINT 3841 9.377738405713401 23.08218964573298
3849 POINT 3842 9.634626082765084 22.64137545133806
3850 POINT 3843 8.099972523597952 21.7604283165895
3851 POINT 3844 7.844935974709012 21.32035791039074
3852 POINT 3845 5.052976083273045 23.52015672445931
3853 POINT 3846 5.306137433620915 23.96031879840885
3854 POINT 3847 5.812969663000015 23.9607046052643
3855 POINT 3848 8.610566754219654 19.11957081809886
3856 POINT 3849 8.86560419797468 18.67950029477104
3857 POINT 3850 8.354849270149012 18.67954721468524
3858 POINT 3851 4.553342440596749 20.88364911748843
3859 POINT 3852 4.813437754880869 20.4412013335515
3860 POINT 3853 7.59041331172436 17.35947928465035
3861 POINT 3854 7.84499397090196 16.91893659852759
3862 POINT 3855 -19.25787296088819 16.44788827908155
3863 POINT 3856 -19.60184782149814 16.02916106451099
3864 POINT 3857 -19.1873871451938 16.90476537360675
3865 POINT 3858 -19.76179636729207 16.92243533655163
3866 POINT 3859 -18.75405232838112 16.85355871501342
3867 POINT 3860 -17.47351228606856 13.33558852399519
3868 POINT 3861 -16.99713742559343 13.37046042966367
3869 POINT 3862 -17.69351481734877 13.78071241680643
3870 POINT 3863 -17.67256727113895 14.23260684746697
3871 POINT 3864 -17.10180880051252 14.27897349996412
3872 POINT 3865 -17.52690194145971 14.67823884343126
3873 POINT 3866 -18.11860795829596 14.17997776027357
3874 POINT 3867 -8.872305209312021 13.38023770553157
3875 POINT 3868 -8.615527284439597 13.82496527042976
3876 POINT 3869 -9.383406088516729 13.37781006740056
3877 POINT 3870 -3.29030430028144 18.67294152375674
3878 POINT 3871 -3.794349564136366 18.67514383248151
3879 POINT 3872 -4.044571659990828 18.23638973901306
3880 POINT 3873 -3.790936165766305 17.79671510855067
3881 POINT 3874 -4.295760192767313 17.79792158977951
3882 POINT 3875 -3.035034321141562 18.23341749366453
3883 POINT 3876 -4.801296702384416 17.79849882003976
3884 POINT 3877 -4.547661208159893 17.35882418957737
3885 POINT 3878 -5.306180959737993 16.91965692151171
3886 POINT 3879 -5.55961308673966 17.35962043087595
3887 POINT 3880 -5.306832673423715 17.79918677637247
3888 POINT 3881 -4.799993438895712 16.91958782835436
3889 POINT 3882 -4.294456929278608 16.9190105980941
3890 POINT 3883 -2.272576526046017 16.03887380690432
3891 POINT 3884 -2.777737341802472 16.0389561054949
3892 POINT 3885 -2.524923853949907 15.59959837248141
3893 POINT 3886 -1.009801502771103 14.71943838905496
3894 POINT 3887 -1.262295091084871 15.15932946921788
3895 POINT 3888 -1.767248108404131 15.15945961891492
3896 POINT 3889 -1.514810020874192 15.59938592419379
3897 POINT 3890 -3.788433924444957 15.15930010017922
3898 POINT 3891 -3.282944342657759 15.15927612630229
3899 POINT 3892 -3.53557425149356 15.59970464494893
3900 POINT 3893 -7.339731052101191 14.27145818376952
3901 POINT 3894 -7.595668629168774 13.82815220873106
3902 POINT 3895 -7.849059155801069 14.26996022049591
3903 POINT 3896 -7.342394561194965 13.3854737272261
3904 POINT 3897 -7.084485066391316 14.7143115191922
3905 POINT 3898 -6.829226012364133 15.15638770751324
3906 POINT 3899 -6.321312708705147 15.15701776202244
3907 POINT 3900 -6.068350603934552 14.71617011524867
3908 POINT 3901 -6.322915322587308 14.27373641192795
3909 POINT 3902 -5.815417372472714 14.27454968432659
3910 POINT 3903 -6.831094539759021 14.27250350742734
3911 POINT 3904 -6.578161308297183 13.83088307650527
3912 POINT 3905 -8.866490968805563 16.03593620740154
3913 POINT 3906 -8.611811380443392 15.59504271031803
3914 POINT 3907 -9.378288849377203 16.03556985539014
3915 POINT 3908 -9.6350393648364 15.59383445480634
3916 POINT 3909 -9.379158137016026 15.15149576728833
3917 POINT 3910 -9.89163708740748 15.1510693400336
3918 POINT 3911 -15.8358398935749 10.22173585196274
3919 POINT 3912 -15.57327200390477 9.802417738572654
3920 POINT 3913 -15.56201444033999 10.67148502492812
3921 POINT 3914 -15.03253570609934 9.806583202382573
3922 POINT 3915 -14.77952317432621 10.24189580191657
3923 POINT 3916 9.425787409990559 8.000472836505047
3924 POINT 3917 9.674058285545414 8.456902013814751
3925 POINT 3918 8.913238706756516 8.008641634917387
3926 POINT 3919 9.413783458670364 8.907219666364485
3927 POINT 3920 8.903186169541055 8.909494433726376
3928 POINT 3921 8.934155614066498 6.185727604037459
3929 POINT 3922 9.185518368839453 5.729430618608695
3930 POINT 3923 8.426271183269629 5.29029227071893
3931 POINT 3924 8.171917178443586 5.749542014684138
3932 POINT 3925 7.909982677729378 5.316726387461308
3933 POINT 3926 7.65715073777133 4.866671726394044
3934 POINT 3927 7.405022267322629 4.401754646811489
3935 POINT 3928 7.912208212106719 4.392559563913546
3936 POINT 3929 7.402796732945287 5.325921470359251
3937 POINT 3930 8.404914415163201 4.401060889634398
3938 POINT 3931 8.152785944714498 3.936143810051844
3939 POINT 3932 8.395983975566867 3.439639257034445
3940 POINT 3933 7.903277772510386 3.431137931313593
3941 POINT 3934 8.859661009169432 3.521793227546019
3942 POINT 3935 9.192238274352787 3.866734673314474
3943 POINT 3936 4.268076247259387 3.565481647629336
3944 POINT 3937 4.016822549239988 3.997412240786614
3945 POINT 3938 3.742622838171702 3.563061153758769
3946 POINT 3939 7.792705379504119 2.62557788257827
3947 POINT 3940 7.793203652127295 2.025645271244315
3948 POINT 3941 7.321623681205077 1.829570466086152
3949 POINT 3942 7.678396273741249 1.532671260083118
3950 POINT 3943 -9.67405808643629 8.456902308458442
3951 POINT 3944 -9.413783282784191 8.907219840486656
3952 POINT 3945 -9.425787263000267 8.000473059513219
3953 POINT 3946 -9.404348331955575 9.808267994664813
3954 POINT 3947 -9.657774187537704 10.2533431194428
3955 POINT 3948 -9.398187091428191 10.70341798750657
3956 POINT 3949 -8.886483995011314 10.70714699997187
3957 POINT 3950 -8.634397277109187 10.26115787334679
3958 POINT 3951 -8.375837072421056 10.70987630924256
3959 POINT 3952 -7.859855983182076 11.60547875629908
3960 POINT 3953 -8.117653499839879 11.15836215444448
3961 POINT 3954 -7.865566781937751 10.71237302781939
3962 POINT 3955 -7.402798620889166 5.325921535058544
3963 POINT 3956 -7.909984549202172 5.316726131062188
3964 POINT 3957 -7.91137279652743 6.215871164881401
3965 POINT 3958 -7.395668297048518 6.230569439935667
3966 POINT 3959 -7.651411014573558 6.670464686753046
3967 POINT 3960 -7.127776753374082 7.579721889218547
3968 POINT 3961 -7.388870581544597 7.128261877982224
3969 POINT 3962 -6.874612686924131 7.136622973043634
3970 POINT 3963 -7.904575081023509 7.113563602927958
3971 POINT 3964 -2.775002874658712 8.037874849929569
3972 POINT 3965 -2.523911656853837 8.48803806266702
3973 POINT 3966 -2.748276461706778 5.323514342820022
3974 POINT 3967 -2.490019549071636 4.855243070040132
3975 POINT 3968 -2.734687480700977 4.405830000443286
3976 POINT 3969 -2.221684119951277 3.449608486395616
3977 POINT 3970 -1.723323855016578 3.419581979977251
3978 POINT 3971 -1.475257769780243 2.932460366680298
3979 POINT 3972 -1.727946415087521 2.471297653398232
3980 POINT 3973 -2.223574359144033 2.516811469853332
3981 POINT 3974 -3.221425371391462 2.620248809612628
3982 POINT 3975 -3.480916638529793 3.091370153630558
3983 POINT 3976 -2.468657119838987 3.007906638484771
3984 POINT 3977 -2.720982349242926 3.493309929661852
3985 POINT 3978 -2.722872588435682 2.560512913119568
3986 POINT 3979 -5.842877759869626 2.614418369465591
3987 POINT 3980 -6.061704181617179 2.125899992841759
3988 POINT 3981 -5.97038887687998 1.577324987897494
3989 POINT 3982 -5.06120498229036 2.210552055587216
3990 POINT 3983 -5.314757330560761 1.807879325032759
3991 POINT 3984 -5.55603059107262 1.449150510867695
3992 POINT 3985 -5.910338424284915 0.8932498958018659
3993 POINT 3986 -5.818442258077686 3.559384883546551
3994 POINT 3987 -6.081231365982387 4.02806702834004
3995 POINT 3988 -5.831279019722861 4.472379399615662
3996 POINT 3989 -5.313338782452499 4.466227623547525
3997 POINT 3990 -5.576017782319205 4.91994190717009
3998 POINT 3991 -6.359431968524975 7.142146372318731
3999 POINT 3992 -6.620525796695491 6.690686361082408
4000 POINT 3993 1.233115817299789 35.66363567026767
4001 POINT 3994 1.486808643266108 35.18419627849168
4002 POINT 3995 0.4944716807918905 35.20892209325812
4003 POINT 3996 0.7430350528777356 34.73871437587108
4004 POINT 3997 1.24166914315593 34.72964380187346
4005 POINT 3998 1.723322487966932 36.58041769429607
4006 POINT 3999 1.47525558328076 37.06753926104606
4007 POINT 4000 1.229221132046703 36.61216257531929
4008 POINT 4001 1.727943080105888 37.52870184484969
4009 POINT 4002 2.223571255475589 37.48318802553167
4010 POINT 4003 2.221683046657149 36.55039137343753
4011 POINT 4004 -6.12911124076021e-07 36.15975594917647
4012 POINT 4005 0.2456022332246583 35.68768488038043
4013 POINT 4006 0.7400741502994709 35.68099311908834
4014 POINT 4007 0.9842463697325569 36.14239845738996
4015 POINT 4008 0.7361794650463853 36.62952002413996
4016 POINT 4009 0.2456016905429583 36.6413100607267
4017 POINT 4010 -3.793978809704677 29.27114346488373
4018 POINT 4011 -3.286497753816385 29.27075839834291
4019 POINT 4012 -4.047052767131356 28.82584690724009
4020 POINT 4013 -4.301274302070375 29.27204649795666
4021 POINT 4014 -1.010043015772705 27.0468834923308
4022 POINT 4015 -1.262608764623798 27.49047222490107
4023 POINT 4016 -1.767930085310411 27.49060023494886
4024 POINT 4017 -1.515420458762666 27.93408208316265
4025 POINT 4018 0.2524349327400771 25.72146687392503
4026 POINT 4019 0.7573603149878654 25.72151113216611
4027 POINT 4020 1.009801512786854 25.28056167560054
4028 POINT 4021 0.7573634246136738 24.84063535787972
4029 POINT 4022 0.2524349288094089 24.84066650258547
4030 POINT 4023 2.777737238018064 23.96104396031738
4031 POINT 4024 2.524923774235408 24.40040170273027
4032 POINT 4025 2.777506791782362 24.84052463209574
4033 POINT 4026 3.535574059218396 24.40029545953312
4034 POINT 4027 3.282925370480001 23.96061617471239
4035 POINT 4028 3.282944215957301 24.84072399033624
4036 POINT 4029 12.20022707000518 35.34109407649751
4037 POINT 4030 11.70510822545789 35.04850824368519
4038 POINT 4031 11.91055210130007 34.50393744856109
4039 POINT 4032 12.60489935123083 35.00986841165744
4040 POINT 4033 12.66773748228985 35.47670596579247
4041 POINT 4034 8.893751753942059 30.18945889408129
4042 POINT 4035 9.153056290168134 30.63961947961057
4043 POINT 4036 8.131410636714342 30.63279563621241
4044 POINT 4037 8.383104759045018 30.18672926891533
4045 POINT 4038 8.634397687045755 29.73884369142445
4046 POINT 4039 12.58774522600974 32.92273845990162
4047 POINT 4040 12.88263711150898 33.38136361259253
4048 POINT 4041 11.99490300572006 33.72244417282177
4049 POINT 4042 11.76196217222862 33.30918283037465
4050 POINT 4043 10.44503879622377 31.98862289521601
4051 POINT 4044 9.935933261738526 31.99895822327177
4052 POINT 4045 10.19676774154491 32.44505172349099
4053 POINT 4046 10.43863927688695 31.09908378942327
4054 POINT 4047 9.923929035406161 31.09221194132288
4055 POINT 4048 12.04127152589021 32.88444301026691
4056 POINT 4049 12.3185949442571 32.49062006753039
4057 POINT 4050 11.23899726008386 32.44352050666546
4058 POINT 4051 11.49281189047597 32.87706443800342
4059 POINT 4052 10.95968790642227 32.8682603267732
4060 POINT 4053 1.262715484017742 28.37904364136764
4061 POINT 4054 1.768036798549242 28.37917166198487
4062 POINT 4055 1.010161265302347 28.82419254739624
4063 POINT 4056 2.021045344488098 28.82414552152322
4064 POINT 4057 1.767940462475327 29.27066494618034
4065 POINT 4058 1.26253538053122 29.27109444816391
4066 POINT 4059 2.770029231935803 32.86450580601395
4067 POINT 4060 2.513285504693407 33.32124089899702
4068 POINT 4061 3.271742772836252 33.76266810178318
4069 POINT 4062 3.531281879770986 33.30800649818775
4070 POINT 4063 3.782262295813676 33.75645595947597
4071 POINT 4064 3.278351258691227 32.86027907795702
4072 POINT 4065 2.760975203039712 33.77191946209709
4073 POINT 4066 3.011955619082402 34.2203689233853
4074 POINT 4067 3.24336847489558 35.56418088173734
4075 POINT 4068 3.51170389869557 35.11435420516057
4076 POINT 4069 3.259044827222107 34.66723526388904
4077 POINT 4070 2.748277257425567 34.67648662420295
4078 POINT 4071 3.775382260352405 34.65823650434292
4079 POINT 4072 2.490020077115392 35.144757594862
4080 POINT 4073 2.734687809839291 35.59417066577944
4081 POINT 4074 2.982689819169599 36.0349985828101
4082 POINT 4075 5.320196103324097 34.6359031807579
4083 POINT 4076 5.838135302791581 34.62975089654809
4084 POINT 4077 5.843829338818099 33.7446915717945
4085 POINT 4078 5.325945325800963 33.74013958043911
4086 POINT 4079 6.104986270073042 34.19646204120262
4087 POINT 4080 6.366501732041227 33.75556204313139
4088 POINT 4081 7.355184469361421 29.28425732715628
4089 POINT 4082 7.097783537365648 28.83658193947715
4090 POINT 4083 7.865566929755092 29.28762815642849
4091 POINT 4084 7.350228293730351 28.39242759965563
4092 POINT 4085 19.44766038638703 17.77297915226804
4093 POINT 4086 19.25342567711544 17.32881418384076
4094 POINT 4087 19.87861805246748 17.79987630487601
4095 POINT 4088 19.7617964066728 16.92243558592404
4096 POINT 4089 18.23422309592939 19.09467776603307
4097 POINT 4090 17.94988909858838 19.54747247390121
4098 POINT 4091 17.87676920727169 18.65944226175127
4099 POINT 4092 17.47644822823684 19.54717784596157
4100 POINT 4093 17.34509995115183 18.66931480712425
4101 POINT 4094 17.09404309109673 19.09688211341927
4102 POINT 4095 14.28781180230033 14.72466403349399
4103 POINT 4096 14.01051623503285 14.27484065136018
4104 POINT 4097 14.53345889310514 14.28002636702044
4105 POINT 4098 14.02979336632444 15.1647422550637
4106 POINT 4099 9.380906978001171 14.26600341154953
4107 POINT 4100 9.12438810215771 14.70980710098454
4108 POINT 4101 15.04265771685345 14.28419049908406
4109 POINT 4102 14.76536214958597 13.83436711695024
4110 POINT 4103 15.51798377903927 13.38033526490094
4111 POINT 4104 15.77563980375512 13.8415064727855
4112 POINT 4105 15.57188627435891 14.28816954061234
4113 POINT 4106 15.0151159829359 13.3824166393444
4114 POINT 4107 14.50591715918759 13.37825250728078
4115 POINT 4108 14.32789030772291 18.24225940568398
4116 POINT 4109 14.06264433374127 18.67628429324169
4117 POINT 4110 14.59588283104642 18.67648157009492
4118 POINT 4111 14.05735903828086 17.80654303626809
4119 POINT 4112 15.97007787533187 19.09864616168911
4120 POINT 4113 15.55510702426619 19.54892674781743
4121 POINT 4114 15.67915324486533 18.67142187799671
4122 POINT 4115 15.13772625968102 18.6705433487333
4123 POINT 4116 14.87248028569938 19.104568236291
4124 POINT 4117 15.08631080741999 19.54931075553736
4125 POINT 4118 16.40287455364234 16.49110362272822
4126 POINT 4119 16.17789332204421 16.93847666340548
4127 POINT 4120 15.63614396207806 16.93957763712053
4128 POINT 4121 16.14372364991884 16.05344993095792
4129 POINT 4122 15.61382912052633 16.05886889307093
4130 POINT 4123 15.35525573754169 16.49958700177147
4131 POINT 4124 15.52045255096381 27.53143212489101
4132 POINT 4125 15.7870223740392 27.99457973843145
4133 POINT 4126 15.02942399137993 28.42914752056209
4134 POINT 4127 14.76711254324515 27.97953196141813
4135 POINT 4128 14.51705994325481 28.42366935023485
4136 POINT 4129 14.50592923991572 26.62175677982754
4137 POINT 4130 14.24625536736449 27.07313717726593
4138 POINT 4131 14.50521689123425 27.52387693058424
4139 POINT 4132 15.01513786829292 26.61758604679623
4140 POINT 4133 15.25855689895291 27.07577709405712
4141 POINT 4134 15.01758093935937 27.52935510091147
4142 POINT 4135 12.9694811665887 12.47903060881283
4143 POINT 4136 12.45717370465674 12.47876009769995
4144 POINT 4137 14.50520651711792 12.4761250777077
4145 POINT 4138 14.7671040812539 12.02046720497029
4146 POINT 4139 13.74078013085571 12.02829134523479
4147 POINT 4140 13.9984165723697 11.58047790445619
4148 POINT 4141 14.51705381061231 11.57633069980357
4149 POINT 4142 11.4484074904361 10.67917014008009
4150 POINT 4143 11.95934178620452 10.67017466538644
4151 POINT 4144 12.20772768780863 11.12870134727384
4152 POINT 4145 11.18783017672887 11.13216622534658
4153 POINT 4146 11.9508019094484 11.57834527171309
4154 POINT 4147 -6.319776468193496 23.08033815128008
4155 POINT 4148 -6.066344452733028 23.52030179118255
4156 POINT 4149 -6.827400621252306 23.08040135673631
4157 POINT 4150 -5.054931155474743 21.76171557577203
4158 POINT 4151 -4.801296232783984 22.20150105449617
4159 POINT 4152 -4.299173338283442 21.32364952911328
4160 POINT 4153 -4.044571390294786 21.76361015107778
4161 POINT 4154 -4.803564411703622 21.32240320854091
4162 POINT 4155 -9.890817652390373 18.67925530533506
4163 POINT 4156 -10.40541205324793 18.6792215753713
4164 POINT 4157 -10.66370535213654 19.1191138197801
4165 POINT 4158 -10.92145974258163 18.67904850987438
4166 POINT 4159 -10.40367095930107 19.55964298171444
4167 POINT 4160 -9.890168540567483 19.55964268050665
4168 POINT 4161 -9.634489634605369 19.11940539677126
4169 POINT 4162 -10.40452722022296 15.15066274552778
4170 POINT 4163 -10.91910259518919 15.1508331382961
4171 POINT 4164 -11.1763986356346 14.70838986864997
4172 POINT 4165 -10.91783739771569 14.26368314942298
4173 POINT 4166 -10.14864599240259 14.70832405800977
4174 POINT 4167 -12.73019529136231 15.59870134525367
4175 POINT 4168 -12.98766621355665 15.15683558657137
4176 POINT 4169 -15.04265746253503 14.28419090907873
4177 POINT 4170 -14.53345861723851 14.28002669541752
4178 POINT 4171 -17.78489628918051 15.09030875190717
4179 POINT 4172 -17.98400083785333 15.51100038825157
4180 POINT 4173 -18.29676496075896 15.05256382727852
4181 POINT 4174 -17.21413781855408 15.13667540440432
4182 POINT 4175 -18.37155338762809 16.42393112019951
4183 POINT 4176 -18.3010675719337 16.8808082147247
4184 POINT 4177 -18.20721907030622 15.96221804176685
4185 POINT 4178 -17.69535039872778 15.99996296639551
4186 POINT 4179 -11.18084802879951 18.23937671254223
4187 POINT 4180 -11.43914132768812 18.67926895695104
4188 POINT 4181 -11.43896743540164 17.79930467995242
4189 POINT 4182 -12.99576621508222 19.55819858351203
4190 POINT 4183 -13.5100976113933 19.55820320578183
4191 POINT 4184 -14.85535659566817 17.374607928817
4192 POINT 4185 -14.59059730877303 17.80674048573657
4193 POINT 4186 -15.12588788049639 17.81032428898499
4194 POINT 4187 -14.57446835462891 16.93461729113196
4195 POINT 4188 -15.10975892635227 16.93820109438039
4196 POINT 4189 -16.50015666545286 20.45264189053479
4197 POINT 4190 -16.08514514186547 20.00088643669584
4198 POINT 4191 -16.11090178453964 20.45097892630424
4199 POINT 4192 -16.88252114147691 20.00090158129587
4200 POINT 4193 -16.50011596473811 19.5506058885838
4201 POINT 4194 -18.66035566784347 24.06457908884339
4202 POINT 4195 -18.99865817957391 24.48245948801812
4203 POINT 4196 -18.88584837729288 24.93009825639208
4204 POINT 4197 -19.39363960589392 24.88740656466259
4205 POINT 4198 -17.82901974500803 22.20723193084345
4206 POINT 4199 -17.29751704354181 22.19792307995124
4207 POINT 4200 -18.12519085452415 22.66390362771543
4208 POINT 4201 -17.42146697630052 23.53377902746666
4209 POINT 4202 -17.69547182462984 24.00000320447274
4210 POINT 4203 -17.19821562645829 23.98500536439521
4211 POINT 4204 -18.2073784758447 24.03761507800751
4212 POINT 4205 -17.98412712600248 24.48884141493606
4213 POINT 4206 -18.37170036647084 23.57574087838007
4214 POINT 4207 -17.74281660287124 23.09380582796382
4215 POINT 4208 -17.24556040469969 23.0788079878863
4216 POINT 4209 -18.30109742612498 23.11887466729579
4217 POINT 4210 -12.74043249554734 22.63704750337856
4218 POINT 4211 -12.47951737358623 22.1991443855027
4219 POINT 4212 -11.95797425376473 22.19971901190847
4220 POINT 4213 -11.69840700784104 22.64001300642548
4221 POINT 4214 -11.95612881567687 23.08041184382327
4222 POINT 4215 -13.79175978718601 22.63195086063527
4223 POINT 4216 -14.05739164572269 22.19336401942717
4224 POINT 4217 -16.69915170518863 23.07149332083817
4225 POINT 4218 -16.17786098319811 23.06167189306724
4226 POINT 4219 -16.40292005613846 23.50895975961821
4227 POINT 4220 -16.20887664909252 22.19021698069621
4228 POINT 4221 -16.75110834403075 22.1906084129031
4229 POINT 4222 -17.02050133175934 22.63152012133533
4230 POINT 4223 -13.99649914138446 26.62119352777317
4231 POINT 4224 -14.50592910840412 26.62175634401045
4232 POINT 4225 -14.76538162860431 26.16564234700188
4233 POINT 4226 -14.53346806546978 25.71999620058877
4234 POINT 4227 -14.0105122342672 25.72518479387579
4235 POINT 4228 -15.04267671628401 25.71582538537957
4236 POINT 4229 -16.66503651825777 23.95642639357603
4237 POINT 4230 -16.14374579626725 23.9466049658051
4238 POINT 4231 -16.93904136658709 24.42265057058211
4239 POINT 4232 -16.68103287029956 24.83472097500758
4240 POINT 4233 -17.21421197850009 24.86329994582677
4241 POINT 4234 -9.637659354432278 26.17823809135695
4242 POINT 4235 -9.895007838390011 26.62370467699503
4243 POINT 4236 -10.40670361026193 26.62599835231532
4244 POINT 4237 -10.66169890492968 26.18015313981581
4245 POINT 4238 -10.40539715902982 25.73591795079784
4246 POINT 4239 -9.892507684713129 25.73551085015163
4247 POINT 4240 -3.538866270674407 27.93563837319875
4248 POINT 4241 -3.791445061003568 27.4924372688973
4249 POINT 4242 -3.284985242746421 27.49173667393181
4250 POINT 4243 -3.792541681848606 28.3806414211657
4251 POINT 4244 -4.299837174214305 28.38154445423863
4252 POINT 4245 -3.286081863591458 28.37994082620021
4253 POINT 4246 -6.578160439640206 26.16911757665643
4254 POINT 4247 -6.3253193653182 26.61163279891804
4255 POINT 4248 -5.817351397064218 26.61016819247553
4256 POINT 4249 -6.322914449413139 25.72626408985695
4257 POINT 4250 -6.831093433545865 25.72749714888835
4258 POINT 4251 -5.815416739071694 25.72545072182048
4259 POINT 4252 -6.068349732977355 25.2838302940524
4260 POINT 4253 -8.103068545520017 25.2879261001149
4261 POINT 4254 -7.847089733293389 24.84545529905903
4262 POINT 4255 -7.33972959193747 25.72854262281094
4263 POINT 4256 -7.084483601710403 25.28568913601146
4264 POINT 4257 -7.84905736666726 25.73004082824404
4265 POINT 4258 -7.337860774808862 24.84465820022065
4266 POINT 4259 -6.829224616417257 24.84361272629806
4267 POINT 4260 -7.591830748000244 24.40337888934564
4268 POINT 4261 -10.95968825756436 32.86825866172835
4269 POINT 4262 -11.2389973762048 32.44351916990193
4270 POINT 4263 -10.96516313120963 31.99722932793554
4271 POINT 4264 -10.45710394986915 32.90333376542937
4272 POINT 4265 -10.19676760818201 32.44505103256093
4273 POINT 4266 -10.4450386107414 31.98862213265781
4274 POINT 4267 -5.839993028780057 31.9585713890503
4275 POINT 4268 -5.58222505575568 31.50997899536313
4276 POINT 4269 -6.353715906405032 31.96208637743266
4277 POINT 4270 -9.890881409539208 22.20113221196177
4278 POINT 4271 -9.377719567935678 22.20101557304443
4279 POINT 4272 -9.890817945887456 21.32074066481798
4280 POINT 4273 -9.377648390967682 21.32062266583164
4281 POINT 4274 -10.14857006043265 21.76080491471691
4282 POINT 4275 -9.121929625682005 21.76064670155081
4283 POINT 4276 -3.989917438513398 37.75936920944303
4284 POINT 4277 -4.253220144914879 38.17942950972456
4285 POINT 4278 -5.0612047044748 37.78945190920187
4286 POINT 4279 -4.788965345375917 37.30790232371594
4287 POINT 4280 -5.345230853006697 37.3897257540357
4288 POINT 4281 -3.511703891126289 35.11435281720901
4289 POINT 4282 -3.775382111584034 34.65823488537108
4290 POINT 4283 -4.288463783602202 34.65011427144418
4291 POINT 4284 -4.035804655693716 34.20299575272048
4292 POINT 4285 -13.43620984438418 34.81446134683805
4293 POINT 4286 -13.29869599960812 34.31160156237819
4294 POINT 4287 -12.93463213128416 34.64179503997145
4295 POINT 4288 -13.62553600610368 33.9629776498918
4296 POINT 4289 -14.13908291075123 34.14518767789303
4297 POINT 4290 -12.60490716900593 35.00986141752851
4298 POINT 4291 -12.20023572325958 35.34108684648683
4299 POINT 4292 -12.66774772099321 35.47669756860905
4300 POINT 4293 -11.70511437947869 35.04850274706365
4301 POINT 4294 -11.9105566427679 34.50393254228281
4302 POINT 4295 -12.47145116324818 34.51147573062274
4303 POINT 4296 -9.806918774248189 36.80166842930682
4304 POINT 4297 -10.26857635288579 37.16264372426561
4305 POINT 4298 -10.1979850569437 36.56768967568621
4306 POINT 4299 -1.515143968311342 29.71762612467332
4307 POINT 4300 -1.767218169152578 30.16613538008133
4308 POINT 4301 -2.273105814749252 30.16491121650845
4309 POINT 4302 -2.526893645558062 29.71688475828849
4310 POINT 4303 -4.295343851645418 33.74833423033055
4311 POINT 4304 -3.78226217962725 33.75645484425745
4312 POINT 4305 -3.531281742859955 33.30800564331628
4313 POINT 4306 -3.788870710138221 32.85406611529395
4314 POINT 4307 -4.299971286819369 32.85149198399459
4315 POINT 4308 -10.95895536230713 35.58920341710635
4316 POINT 4309 -10.41172580433067 35.55794744193341
4317 POINT 4310 -11.08356921006429 36.15576819899469
4318 POINT 4311 -10.1942008448515 36.08605690473453
4319 POINT 4312 -9.956518482555364 35.68306089840274
4320 POINT 4313 -10.65319237871901 36.44257621921687
4321 POINT 4314 -11.0910623698248 36.64296654514917
4322 POINT 4315 -13.7593285339414 31.59910572962469
4323 POINT 4316 -13.97378905574307 31.09637586275941
4324 POINT 4317 -14.49013543528747 31.07749003746751
4325 POINT 4318 -14.0764019646777 32.09309626417902
4326 POINT 4319 -14.48389267802026 31.91422357801393
4327 POINT 4320 -14.75329172047915 31.4892516249232
4328 POINT 4321 -5.587461461429323 33.29923896261564
4329 POINT 4322 -5.325946062699384 33.7401385358841
4330 POINT 4323 -5.327825510476393 32.84978726680519
4331 POINT 4324 -4.809231792482727 33.74478093752646
4332 POINT 4325 -5.065600597928541 34.19023273715123
4333 POINT 4326 -4.555689316416261 33.29824002906342
4334 POINT 4327 -4.813859227656678 32.8479386911905
4335 POINT 4328 5.823064971458006 28.38586497473401
4336 POINT 4329 5.315146572158927 28.38430769994047
4337 POINT 4330 5.062470610533198 28.82834397135218
4338 POINT 4331 6.079388428607562 28.83197977936755
4339 POINT 4332 5.317804360302774 29.27479479926754
4340 POINT 4333 5.827084127424216 29.27699957992611
4341 POINT 4334 10.41689568078359 28.4124072611171
4342 POINT 4335 10.66929742196129 27.96611222514022
4343 POINT 4336 9.904430854792075 28.4070707901445
4344 POINT 4337 10.41083792953915 27.51739638025921
4345 POINT 4338 8.886484172763202 29.29285479615131
4346 POINT 4339 8.37583717786616 29.29012517098535
4347 POINT 4340 9.139626727505856 28.8478657394769
4348 POINT 4341 8.117653415472539 28.84163926115534
4349 POINT 4342 11.95092859671319 24.8475539406863
4350 POINT 4343 12.46807375787325 24.84583394788076
4351 POINT 4344 12.20840003869946 25.28942203987447
4352 POINT 4345 11.95272288103627 23.96287269629527
4353 POINT 4346 12.47198579068075 23.9610098082623
4354 POINT 4347 12.73018467318101 24.40129625485699
4355 POINT 4348 11.43575282852112 23.96401601812759
4356 POINT 4349 10.91929475924401 23.96469697384104
4357 POINT 4350 11.43395854419803 24.84869726251862
4358 POINT 4351 10.91909661344623 24.84916901000663
4359 POINT 4352 11.69363226337182 24.40510917052491
4360 POINT 4353 10.66208764636606 24.40642272229546
4361 POINT 4354 12.45674415720379 26.62593764544495
4362 POINT 4355 12.71561902895919 26.17761365870297
4363 POINT 4356 12.46344625167966 25.73349620934157
4364 POINT 4357 11.9463010905196 25.73521620214711
4365 POINT 4358 11.68774091931249 26.17992315964508
4366 POINT 4359 11.94436146317965 26.6262558892628
4367 POINT 4360 12.19975831688364 27.07290316309354
4368 POINT 4361 11.70835016186513 29.77725626131508
4369 POINT 4362 11.44840780891525 29.32083443761827
4370 POINT 4363 10.94524480188349 30.2119493620846
4371 POINT 4364 10.68396014223092 29.76000284437696
4372 POINT 4365 11.4612799501046 30.22519211862191
4373 POINT 4366 11.20910938557762 30.66888094038705
4374 POINT 4367 10.9368374049108 29.31526434275312
4375 POINT 4368 11.95080093219896 28.42166108213997
4376 POINT 4369 12.4591287934299 28.41955637961497
4377 POINT 4370 12.71451082664457 27.96964269203738
4378 POINT 4371 12.97143800709656 28.41928524228948
4379 POINT 4372 11.69163226937222 27.96979595129795
4380 POINT 4373 12.45717131194284 27.52124937431928
4381 POINT 4374 11.9447886179187 27.52156761813713
4382 POINT 4375 15.29885200343264 28.8835193357322
4383 POINT 4376 15.56202156575395 29.32850886335364
4384 POINT 4377 15.04254095371091 29.31827443700025
4385 POINT 4378 16.0564503860919 28.44895155360157
4386 POINT 4379 16.33477400183093 28.91218754051921
4387 POINT 4380 15.54890460342297 28.43938194691547
4388 POINT 4381 16.09215770029102 29.34350152581874
4389 POINT 4382 12.72223555131803 29.77728149733855
4390 POINT 4383 12.97062105959908 29.31875497111673
4391 POINT 4384 12.98553664119016 30.24101141045128
4392 POINT 4385 13.47593186273332 30.21482288295318
4393 POINT 4386 14.77952748380703 29.75810228782938
4394 POINT 4387 14.50635713461083 30.18825186751686
4395 POINT 4388 14.51635792148571 29.31311276020795
4396 POINT 4389 13.9900110158661 30.20713768228853
4397 POINT 4390 13.73926529844905 29.76062581170174
4398 POINT 4391 2.273105774761268 9.83508879984791
4399 POINT 4392 2.779450317637714 9.835400651617574
4400 POINT 4393 3.033012220564729 9.388247709190718
4401 POINT 4394 5.582224331984559 8.490021384452593
4402 POINT 4395 5.324236755485918 8.938715200324722
4403 POINT 4396 4.303205470450614 9.835452415437004
4404 POINT 4397 4.811613166163307 9.834298227553571
4405 POINT 4398 4.049286364268548 9.3886844889632
4406 POINT 4399 5.068073565684609 9.386690434889857
4407 POINT 4400 4.814373978828597 8.940272488625666
4408 POINT 4401 2.221682434110464 3.449608482318896
4409 POINT 4402 1.723322054663639 3.41958212581723
4410 POINT 4403 1.475255227755129 2.932460514091849
4411 POINT 4404 1.727942742988692 2.471297861599172
4412 POINT 4405 2.223570867244001 2.516811617236392
4413 POINT 4406 3.247664549616101 1.691005979661493
4414 POINT 4407 3.738193462327802 1.768828689718033
4415 POINT 4408 2.976338300237787 2.129153441474481
4416 POINT 4409 3.989913465089363 2.240629487564227
4417 POINT 4410 3.734383925154549 2.66000978424141
4418 POINT 4411 4.249406076125915 2.711750263924309
4419 POINT 4412 -0.2525804527561534 16.03806627400728
4420 POINT 4413 -0.7575089596573991 16.03809742300865
4421 POINT 4414 8.162773457165429e-09 16.47693907063823
4422 POINT 4415 0.5055201424216942 17.35292109533307
4423 POINT 4416 0.2530784214946227 17.78947522331019
4424 POINT 4417 0.2525804694500266 16.91468922909349
4425 POINT 4418 -0.2525804544726128 16.91468922997582
4426 POINT 4419 -0.2530784086493366 17.78947522356133
4427 POINT 4420 -0.5055201286865491 17.35292109643341
4428 POINT 4421 -0.7581005899738023 16.91517093797816
4429 POINT 4422 10.92866218369657 11.58403101835576
4430 POINT 4423 10.66929892991574 12.03389174928147
4431 POINT 4424 10.92260560930413 12.47904214844759
4432 POINT 4425 11.44023252971531 11.57846179393201
4433 POINT 4426 11.6916339164161 12.03021006472227
4434 POINT 4427 6.829226066792335 15.15638767985543
4435 POINT 4428 7.08448512863891 14.71431148714117
4436 POINT 4429 6.32291537112456 14.27373638104556
4437 POINT 4430 6.068350648601582 14.71617008807552
4438 POINT 4431 6.831094598114815 14.27250347410035
4439 POINT 4432 6.574690216144999 15.59804860267928
4440 POINT 4433 6.320151929953125 16.03908134219066
4441 POINT 4434 5.812970569673526 16.03929553360603
4442 POINT 4435 5.559944453526639 15.59906442536678
4443 POINT 4436 5.813814797954246 15.15783101089938
4444 POINT 4437 6.321312755318322 15.15701773663442
4445 POINT 4438 -1.775181001650297 21.33393361507919
4446 POINT 4439 -1.267840951818172 21.33711381294345
4447 POINT 4440 -2.024810422711531 21.77002261288375
4448 POINT 4441 -0.7585985253342913 22.21004308218826
4449 POINT 4442 -0.2530784032947191 22.21052479073235
4450 POINT 4443 -0.25307840396708 21.33774656408433
4451 POINT 4444 6.030698440628868e-09 21.77348895090434
4452 POINT 4445 -0.761269396452543 21.33800980180604
4453 POINT 4446 -1.012728368769732 21.77259296179061
4454 POINT 4447 -1.26517008069992 22.20914709332568
4455 POINT 4448 6.57552905270612 19.11917837703191
4456 POINT 4449 6.830512439734651 19.55973226747113
4457 POINT 4450 6.323600974440302 19.55944563035479
4458 POINT 4451 7.337224191221686 19.55973210309189
4459 POINT 4452 7.085296112955868 19.99999935641476
4460 POINT 4453 7.591126172197229 19.11954137608066
4461 POINT 4454 7.845909845418445 19.55980846502429
4462 POINT 4455 6.828120215219838 18.67952034762907
4463 POINT 4456 5.819524031753277 19.55944573980127
4464 POINT 4457 6.074507418781808 19.99999963024048
4465 POINT 4458 5.819523813334327 20.44055367013701
4466 POINT 4459 6.323600756021351 20.44055356069054
4467 POINT 4460 5.314082130452446 19.55879830294076
4468 POINT 4461 5.069786234540341 19.99999980475538
4469 POINT 4462 5.314081996435311 20.44120126848308
4470 POINT 4463 5.563175333674854 20.88175519893314
4471 POINT 4464 8.866487420657002 23.96406405540996
4472 POINT 4465 8.355738994225081 23.96328213075802
4473 POINT 4466 8.100427383778017 23.52188039085872
4474 POINT 4467 9.122215393276559 23.52275436205428
4475 POINT 4468 8.86594121586602 23.08182352338446
4476 POINT 4469 11.18084976696353 21.76061566877308
4477 POINT 4470 11.43896704356612 22.20068784304909
4478 POINT 4471 11.95797441386322 22.1997190736917
4479 POINT 4472 11.9588087557341 21.32105244930146
4480 POINT 4473 12.22007742542399 21.75981922903992
4481 POINT 4474 10.148570164294 21.76080494256901
4482 POINT 4475 9.890881511362227 22.2011322436048
4483 POINT 4476 9.377719656900005 22.20101559932991
4484 POINT 4477 9.377648474444069 21.3206226826241
4485 POINT 4478 9.121929706236603 21.76064672176964
4486 POINT 4479 8.865674277639464 22.2008899295029
4487 POINT 4480 7.336250313716918 21.32043468385277
4488 POINT 4481 7.591125568206087 20.88045701300713
4489 POINT 4482 7.337223885828448 20.44026648925234
4490 POINT 4483 7.845909546820542 20.44018971579031
4491 POINT 4484 6.830512134341413 20.44026665363158
4492 POINT 4485 6.575528528893932 20.88082069352811
4493 POINT 4486 4.547660785761197 22.64117575790155
4494 POINT 4487 4.799992952164152 23.08041215768531
4495 POINT 4488 5.306180292478354 23.08034306292107
4496 POINT 4489 8.865707267923504 19.55976133923551
4497 POINT 4490 8.354952340097839 19.55980825914972
4498 POINT 4491 8.865707358596341 20.44023587696896
4499 POINT 4492 8.354952041499935 20.44018950991573
4500 POINT 4493 9.121386178165395 19.99999862805303
4501 POINT 4494 9.377000682960047 20.44023572473563
4502 POINT 4495 9.37700059228721 19.55976118700218
4503 POINT 4496 8.101050359122295 19.99999898616094
4504 POINT 4497 -18.88575813755943 15.0697268260569
4505 POINT 4498 -19.39362771734272 15.11254628586869
4506 POINT 4499 -18.68665358888661 14.6490351897125
4507 POINT 4500 -15.77563967202531 13.84150710457371
4508 POINT 4501 -16.01906260749091 13.38331127087525
4509 POINT 4502 -16.51175963280237 13.37603091203635
4510 POINT 4503 -16.76209633740071 13.83891198637251
4511 POINT 4504 -16.61643100772146 14.28454398233681
4512 POINT 4505 -3.285878374189513 17.79579280002091
4513 POINT 4506 -3.537066906965997 17.35732465078735
4514 POINT 4507 -2.781165062341254 17.79402703590121
4515 POINT 4508 -2.272346057716946 15.15939316355719
4516 POINT 4509 -2.777506873473401 15.15947546214778
4517 POINT 4510 -2.019831127927625 14.71933670858128
4518 POINT 4511 -3.030366546424797 14.71907091737807
4519 POINT 4512 -4.29435723120281 15.1589385317425
4520 POINT 4513 -4.800381300429374 15.1587993272791
4521 POINT 4514 -4.041727322367009 14.71851001309586
4522 POINT 4515 -5.05425164147241 14.71756591615323
4523 POINT 4516 -4.295101030996014 14.27689248118367
4524 POINT 4517 -3.789177724238159 14.27725404962039
4525 POINT 4518 -8.103070844109666 14.7120749267257
4526 POINT 4519 -8.357041227963842 15.15335409824602
4527 POINT 4520 -8.867790261965396 15.15257226998905
4528 POINT 4521 -8.359008421177249 14.26876895168724
4529 POINT 4522 -9.124387984536476 14.70980715521631
4530 POINT 4523 -8.869538972748195 14.26707997665955
4531 POINT 4524 -9.380906847798823 14.26600347395883
4532 POINT 4525 -15.04253548417184 10.68172301284076
4533 POINT 4526 -14.51635355078331 10.68688712093244
4534 POINT 4527 -14.26072851253494 11.13086143448761
4535 POINT 4528 -15.29884481679709 11.11647634394399
4536 POINT 4529 -15.0294160788359 11.57085075398853
4537 POINT 4530 -14.51705395682312 11.57633155901834
4538 POINT 4531 8.673610243951781 6.652056971493288
4539 POINT 4532 8.414839055579259 7.108358885772509
4540 POINT 4533 7.90457462665794 7.113563743870362
4541 POINT 4534 8.152298738482797 7.566155996789455
4542 POINT 4535 7.651410299100585 6.670464801650749
4543 POINT 4536 7.388869982004122 7.128261912667696
4544 POINT 4537 7.91137180832887 6.215871382139966
4545 POINT 4538 7.395667163675052 6.2305695509373
4546 POINT 4539 8.427660313869119 6.189437265397586
4547 POINT 4540 8.401580829217719 8.014850918935689
4548 POINT 4541 7.8913164002964 8.020055777033541
4549 POINT 4542 8.65225636857012 8.462541415161475
4550 POINT 4543 7.629644152233771 8.473224754720867
4551 POINT 4544 7.380362061498849 8.024529832574634
4552 POINT 4545 8.391528292002256 8.915703717744677
4553 POINT 4546 7.880480191434996 8.920252392579611
4554 POINT 4547 8.948131191765635 5.244986877960783
4555 POINT 4548 8.686196691051427 4.812171250737954
4556 POINT 4549 8.926774423659207 4.355755496876252
4557 POINT 4550 9.445443876621251 5.251309598627719
4558 POINT 4551 9.6910474270449 4.80595499243688
4559 POINT 4552 9.473520550241012 4.27784503441803
4560 POINT 4553 6.871912274813603 4.456666857990875
4561 POINT 4554 6.343908009479829 4.48177946767831
4562 POINT 4555 6.621960527653464 4.900979418979421
4563 POINT 4556 7.126969749148993 3.982554695510378
4564 POINT 4557 4.533432449664246 3.111476287422326
4565 POINT 4558 4.788961989599059 2.692095990745143
4566 POINT 4559 4.807632160732531 3.545827374450171
4567 POINT 4560 6.855123306554548 1.732841382331951
4568 POINT 4561 6.414612844901361 1.574488513075082
4569 POINT 4562 6.765655367225731 1.179109809653417
4570 POINT 4563 6.972434580994955 2.219793303106146
4571 POINT 4564 -7.602701248857268 12.05219331399483
4572 POINT 4565 -7.345761168813994 12.49779263543017
4573 POINT 4566 -7.350228475031765 11.60757343071705
4574 POINT 4567 -5.308173014700433 14.27556533336659
4575 POINT 4568 -5.562737733353188 13.83313163004587
4576 POINT 4569 -4.801572002352885 14.27614786187251
4577 POINT 4570 -4.549022404224035 13.83489189839703
4578 POINT 4571 -1.261812988480139 9.83343522240709
4579 POINT 4572 -1.009092171925209 9.384112018230109
4580 POINT 4573 -1.260520010065219 8.933024373220549
4581 POINT 4574 -1.765500117844419 8.93523006966014
4582 POINT 4575 -5.068073644725306 9.38669057972551
4583 POINT 4576 -4.811613206609751 9.83429836303813
4584 POINT 4577 -5.321476005364882 9.832741044573023
4585 POINT 4578 -8.171918437075256 5.749541788172571
4586 POINT 4579 -8.426272907275038 5.290292001170738
4587 POINT 4580 -8.948133223185337 5.244987163541136
4588 POINT 4581 -9.185519494225359 5.729430999154442
4589 POINT 4582 -8.934156282145356 6.185727540104251
4590 POINT 4583 -8.427661154600298 6.18943703498995
4591 POINT 4584 -8.673610641597531 6.652056916813081
4592 POINT 4585 -6.360808891330913 5.359381494985303
4593 POINT 4586 -6.8888134629241 5.334268229392724
4594 POINT 4587 -7.141644921037324 5.784322612398201
4595 POINT 4588 -6.881683139083452 6.238916134269846
4596 POINT 4589 -6.366502420684297 6.244439533544943
4597 POINT 4590 -8.913238659918125 8.008641685997079
4598 POINT 4591 -9.175111821561714 7.552782489790519
4599 POINT 4592 -8.152298933237061 7.566155955215757
4600 POINT 4593 -8.414839366266023 7.108358763986579
4601 POINT 4594 -8.401580872630081 8.014850914686292
4602 POINT 4595 -8.652256314068634 8.462541484408993
4603 POINT 4596 -7.891316587387569 8.020055753627672
4604 POINT 4597 -8.921334493811083 7.104649269100879
4605 POINT 4598 0.5050496066864969 12.06607114806098
4606 POINT 4599 0.2524838592694156 12.509659882908
4607 POINT 4600 -0.5050495406976978 12.06607116411123
4608 POINT 4601 -0.2524953099325488 11.62092225687016
4609 POINT 4602 -0.7575448846733936 11.62089710913941
4610 POINT 4603 0.2524953892493668 11.62092224476328
4611 POINT 4604 -3.283324914400852 8.042101763472806
4612 POINT 4605 -3.027617553368896 7.589434642638204
4613 POINT 4606 -3.78887016301438 7.145934490043004
4614 POINT 4607 -4.047040141601858 7.596235740379548
4615 POINT 4608 -4.299970711505202 7.148508674241112
4616 POINT 4609 -3.792218491321482 8.043753636400142
4617 POINT 4610 -4.303319039812305 8.04632782059825
4618 POINT 4611 -3.539603812611298 8.492193843691508
4619 POINT 4612 -3.278350562976776 7.139722056960755
4620 POINT 4613 -3.53128113288012 6.69199499082232
4621 POINT 4614 -3.259043844909186 5.332766362072315
4622 POINT 4615 -3.011954694569225 5.779632481578462
4623 POINT 4616 -3.271741805307075 6.237333529285412
4624 POINT 4617 -3.782261405344679 6.243545962367661
4625 POINT 4618 -4.035803751858573 5.797005308049524
4626 POINT 4619 -4.295343079431618 6.251666769586432
4627 POINT 4620 -3.775380952945744 5.341766264901346
4628 POINT 4621 -3.511702720083296 4.885648126142907
4629 POINT 4622 -4.543058686584349 4.904219080036945
4630 POINT 4623 -4.288462627032683 5.349887072120117
4631 POINT 4624 -4.803481485497177 5.359458123185124
4632 POINT 4625 -3.243367634643463 4.435820574068364
4633 POINT 4626 -2.982689503297702 3.965002351197774
4634 POINT 4627 -3.229662503185413 3.52330050328693
4635 POINT 4628 -3.742623792584569 3.563062575166481
4636 POINT 4629 -3.759704742680022 4.444820476897395
4637 POINT 4630 -5.320794455696689 3.555246287829873
4638 POINT 4631 -5.570636693918219 3.095966055383329
4639 POINT 4632 -5.345229957488629 2.610279773748913
4640 POINT 4633 -4.788963916338954 2.692099741504953
4641 POINT 4634 -4.533433409733085 3.11147984258838
4642 POINT 4635 -5.320195886747793 5.3641005719377
4643 POINT 4636 -5.065599827196129 5.809768564020871
4644 POINT 4637 -5.838136124018156 5.370252348005836
4645 POINT 4638 -6.104986995759502 5.803540159752914
4646 POINT 4639 -5.843829653371539 6.255310386565476
4647 POINT 4640 -5.845709132172464 7.14566131989957
4648 POINT 4641 -6.099796022401105 7.591597931860797
4649 POINT 4642 2.468655552028582 36.99209317569083
4650 POINT 4643 2.720981659484743 36.50669016910551
4651 POINT 4644 3.221422882693706 37.37975122048137
4652 POINT 4645 3.480916159023034 36.90863094192812
4653 POINT 4646 2.722869868303182 37.43948682119965
4654 POINT 4647 3.229662324541032 36.47670038506341
4655 POINT 4648 -2.273750322176463 28.37918393450756
4656 POINT 4649 -2.779582658660454 28.37954777701897
4657 POINT 4650 -2.526574115933269 27.93457393572186
4658 POINT 4651 -3.033258069834652 28.82455082498592
4659 POINT 4652 -2.77999854888538 29.27036534916167
4660 POINT 4653 -2.273653961576329 29.27067718493149
4661 POINT 4654 -4.295759860195631 22.20207831721287
4662 POINT 4655 -3.790935919620525 22.20328484529564
4663 POINT 4656 -4.547660762109723 22.64117574871403
4664 POINT 4657 -1.770560839361158 22.20855341824481
4665 POINT 4658 -2.276071337937328 22.20687905820053
4666 POINT 4659 -1.516430995925717 22.64600353864246
4667 POINT 4660 -0.7574091942873926 26.60463620877062
4668 POINT 4661 -0.5049253650460661 26.16245155786428
4669 POINT 4662 -1.26248456968623 26.60474309312709
4670 POINT 4663 -2.020500884784648 27.04726516205367
4671 POINT 4664 -2.273312578923515 27.49087502031526
4672 POINT 4665 -2.779144915407506 27.49123886282667
4673 POINT 4666 -3.031723705736667 27.04803775852522
4674 POINT 4667 9.674059914272764 31.54309915647984
4675 POINT 4668 9.425788859593911 31.99952798475481
4676 POINT 4669 8.903187169034737 31.09050669476753
4677 POINT 4670 9.413784633261546 31.09278170280593
4678 POINT 4671 7.395667531479379 33.76943158160459
4679 POINT 4672 6.881682436448375 33.76108525769369
4680 POINT 4673 6.620525505193433 33.30931478828556
4681 POINT 4674 6.099796175241582 32.40840299268783
4682 POINT 4675 6.359431915093664 32.8578547224632
4683 POINT 4676 6.874612619500812 32.86337793702549
4684 POINT 4677 7.127777065364786 32.42027890997031
4685 POINT 4678 7.388870655464554 32.87173897579268
4686 POINT 4679 6.353715538404828 31.96208648750794
4687 POINT 4680 8.934156162843058 33.81427295860885
4688 POINT 4681 9.185518916730516 34.2705695880624
4689 POINT 4682 9.431469087173463 33.80794971603986
4690 POINT 4683 8.171917422879144 34.25045899549634
4691 POINT 4684 8.426271187026909 34.70970875020592
4692 POINT 4685 8.948131691149152 34.75501338402842
4693 POINT 4686 7.651410866152008 33.32953611527348
4694 POINT 4687 7.904575312015982 32.8864370882183
4695 POINT 4688 7.911372188030805 33.78412969403021
4696 POINT 4689 8.427660757551774 33.81056352916524
4697 POINT 4690 8.673610927994719 33.34794365714271
4698 POINT 4691 9.694220357455089 33.36180316353837
4699 POINT 4692 9.945583111342547 33.81809979299192
4700 POINT 4693 10.71091845921928 33.33687874930079
4701 POINT 4694 10.46487676988987 33.83310719520395
4702 POINT 4695 9.947998294341922 32.91367014601859
4703 POINT 4696 9.43388427017284 32.90352006906653
4704 POINT 4697 10.45710382882717 32.90333481796283
4705 POINT 4698 12.55579669464555 33.7299880503965
4706 POINT 4699 13.12801199851167 33.79479026035089
4707 POINT 4700 12.47144579022556 34.51148132613582
4708 POINT 4701 12.93462514265352 34.64180178367647
4709 POINT 4702 12.24027789272276 34.13587082058012
4710 POINT 4703 13.29868985479681 34.3116079231603
4711 POINT 4704 13.43620128425083 34.8144691256151
4712 POINT 4705 12.50944856105111 31.15885690226704
4713 POINT 4706 11.99907725941845 31.14306284646113
4714 POINT 4707 12.78538331767002 31.63539862612097
4715 POINT 4708 12.5690393147074 32.06645875658151
4716 POINT 4709 12.02256561458787 32.0281633069468
4717 POINT 4710 5.065600016341717 34.19023420969232
4718 POINT 4711 4.803482242815901 34.64054582058449
4719 POINT 4712 4.035804672356232 34.20299720629515
4720 POINT 4713 4.295343779290965 33.74833560269973
4721 POINT 4714 4.809231465292767 33.74478222026569
4722 POINT 4715 4.288463743829695 34.65011614756668
4723 POINT 4716 9.637662575318704 13.82176439745997
4724 POINT 4717 9.895010842448107 13.37629815618254
4725 POINT 4718 9.892511591869622 14.26449157539778
4726 POINT 4719 10.4067069355562 13.37400513563111
4727 POINT 4720 13.52905067048734 17.80348860989551
4728 POINT 4721 13.79175789835044 17.36796951733285
4729 POINT 4722 13.00252411868155 17.80282680195637
4730 POINT 4723 13.26812525861197 18.24140032089161
4731 POINT 4724 12.74043410877834 17.36292953030527
4732 POINT 4725 12.47950869690297 17.80084124130137
4733 POINT 4726 13.51009777439233 19.55820318321305
4734 POINT 4727 13.79929158665083 19.11344521668358
4735 POINT 4728 13.53129906332733 18.67922305227264
4736 POINT 4729 13.00477251152154 18.6785612443335
4737 POINT 4730 12.99576637516585 19.55819856070358
4738 POINT 4731 12.74349662902931 19.11733796967289
4739 POINT 4732 12.47131668795828 19.55915255466194
4740 POINT 4733 12.48032282431396 18.67951523829186
4741 POINT 4734 11.43914986613786 21.32072491301456
4742 POINT 4735 11.69942433103575 20.88138351831122
4743 POINT 4736 10.92146534226518 21.32094673778284
4744 POINT 4737 12.71562432355781 13.82239950971875
4745 POINT 4738 12.9710204628949 13.37575475080886
4746 POINT 4739 12.45674797382721 13.37407141180644
4747 POINT 4740 12.97772491657961 14.26819291122295
4748 POINT 4741 12.46345242751193 14.26650957222053
4749 POINT 4742 13.49738297842677 14.27178058327745
4750 POINT 4743 13.74303006923158 13.8271429168039
4751 POINT 4744 13.24521108238089 14.71589064577923
4752 POINT 4745 13.22448245842652 12.92743092592447
4753 POINT 4746 13.48181951185093 12.47903488184075
4754 POINT 4747 13.99578142269353 12.47669166234643
4755 POINT 4748 14.24624589811313 12.92686861431367
4756 POINT 4749 13.48335880815712 13.37575902383678
4757 POINT 4750 13.9964920647632 13.37881909191951
4758 POINT 4751 -6.320150687976366 23.96091876360178
4759 POINT 4752 -5.812969625836519 23.96070458668278
4760 POINT 4753 -6.574688825297787 24.40195167480463
4761 POINT 4754 -6.828063652194295 23.9615488793044
4762 POINT 4755 -5.813813941857884 24.84216924255897
4763 POINT 4756 -6.321311652199329 24.84298261059543
4764 POINT 4757 -7.081981008898271 23.52094424303451
4765 POINT 4758 -7.336519146219691 23.96197715423737
4766 POINT 4759 -7.845748104704221 23.96277425307575
4767 POINT 4760 -7.335856115277702 23.08082963166928
4768 POINT 4761 -7.844991443031732 23.08106288006605
4769 POINT 4762 -8.100427311741345 23.52188036270352
4770 POINT 4763 -10.40540157467472 14.26408505747693
4771 POINT 4764 -10.66170284717234 13.81985074339596
4772 POINT 4765 -9.637662430070954 13.82176447342599
4773 POINT 4766 -9.895010682577141 13.37629824542447
4774 POINT 4767 -9.892511441859234 14.26449165198275
4775 POINT 4768 -10.40670675495256 13.37400525082491
4776 POINT 4769 -12.47199466734123 16.03898502117763
4777 POINT 4770 -12.21411479700939 16.4800762682083
4778 POINT 4771 -12.99157903512498 16.04165171901209
4779 POINT 4772 -14.28781148834783 14.72466430653915
4780 POINT 4773 -14.01051597995725 14.27484092420143
4781 POINT 4774 -13.50732425510632 15.16042328920559
4782 POINT 4775 -13.24521080951691 14.71589083268884
4783 POINT 4776 -13.49738271635704 14.27178080931081
4784 POINT 4777 -16.93896929093587 15.5773409849898
4785 POINT 4778 -16.68097494321506 15.16527107651389
4786 POINT 4779 -15.67915306855816 18.67142202530682
4787 POINT 4780 -15.40255559056302 18.2433353971784
4788 POINT 4781 -15.1377260715964 18.67054347403299
4789 POINT 4782 -15.66731487745816 17.81120284025883
4790 POINT 4783 -16.23490724711116 18.67143816234672
4791 POINT 4784 -11.95483924810893 19.55914747757233
4792 POINT 4785 -11.69939991789839 19.11861637347679
4793 POINT 4786 -11.95878820411627 18.67894457614464
4794 POINT 4787 -12.47131653888641 19.55915256894556
4795 POINT 4788 -12.48032266377783 18.67951528684885
4796 POINT 4789 -12.22006407356756 18.2401678703231
4797 POINT 4790 -12.74349647052235 19.11733800723685
4798 POINT 4791 -13.00477233997363 18.67856130141531
4799 POINT 4792 -14.87248011401993 19.104568316138
4800 POINT 4793 -14.5444672240719 19.55524901206978
4801 POINT 4794 -14.59588263602478 18.67648168800958
4802 POINT 4795 -14.04144287725837 19.55526445993747
4803 POINT 4796 -13.79929141258323 19.11344527595896
4804 POINT 4797 -13.53129887895662 18.67922312921883
4805 POINT 4798 -13.2681250722121 18.24140040883083
4806 POINT 4799 -14.0626441448217 18.67628438337447
4807 POINT 4800 -14.05735881756995 17.80654318110146
4808 POINT 4801 -14.32789010239817 18.24225954126945
4809 POINT 4802 -18.2968927833904 24.94722405978977
4810 POINT 4803 -18.68670738346595 25.35086902771102
4811 POINT 4804 -18.11866277312836 25.81991225332942
4812 POINT 4805 -18.56007566971161 25.77221354163332
4813 POINT 4806 -19.15366621552857 25.75648074725418
4814 POINT 4807 -17.67264085100642 25.76729945984075
4815 POINT 4808 -17.52697763588802 25.32168259068048
4816 POINT 4809 -17.78498613217555 24.909612186255
4817 POINT 4810 -12.47539170563856 23.0785489390462
4818 POINT 4811 -12.99840983962808 23.07655221680742
4819 POINT 4812 -12.47198557295549 23.9610096938691
4820 POINT 4813 -12.99156790660064 23.95834007766085
4821 POINT 4814 -12.21410615975761 23.51991655725213
4822 POINT 4815 -14.04906603364312 23.06997456115545
4823 POINT 4816 -13.52075687599397 23.07307448165996
4824 POINT 4817 -14.03636788977065 23.95057690948157
4825 POINT 4818 -13.51391494296653 23.95486234251339
4826 POINT 4819 -14.30341627472643 23.50650018459617
4827 POINT 4820 -14.561721042046 23.9459789118976
4828 POINT 4821 -14.57441918591847 23.06537656357148
4829 POINT 4822 -13.25571608608519 23.5145759173276
4830 POINT 4823 -14.5960683653604 21.32333659147519
4831 POINT 4824 -14.32798922175618 21.75754972154517
4832 POINT 4825 -14.59066652086865 22.19303664224877
4833 POINT 4826 -13.74303175114319 26.17287493709136
4834 POINT 4827 -13.48335791473757 26.62425530265345
4835 POINT 4828 -12.97771773598447 25.73181930175693
4836 POINT 4829 -12.71561880221907 26.17761345449204
4837 POINT 4830 -13.49737100762031 25.72824656875608
4838 POINT 4831 -12.97101566866241 26.62426067037656
4839 POINT 4832 -15.87594000709251 24.3886752863724
4840 POINT 4833 -15.61382354497319 23.94120865241457
4841 POINT 4834 -15.08739359140011 23.94259057999703
4842 POINT 4835 -15.35519938057486 23.50052025942974
4843 POINT 4836 -15.07839045447396 24.82672910597416
4844 POINT 4837 -14.82034520644433 24.38666730488244
4845 POINT 4838 -4.297887780716318 27.4932582820506
4846 POINT 4839 -4.044006752788331 27.04935658278367
4847 POINT 4840 -5.312210754179706 27.49556464468527
4848 POINT 4841 -5.567618563035417 27.94023469907253
4849 POINT 4842 -4.552513129335004 27.93750819510436
4850 POINT 4843 -4.807024214617755 28.38271368117876
4851 POINT 4844 -4.805074821119767 27.49442750899073
4852 POINT 4845 -5.057585405561018 27.0513147316315
4853 POINT 4846 -6.33587960182028 29.27904137271206
4854 POINT 4847 -6.593280542092714 29.72671675993249
4855 POINT 4848 -6.845584816882877 29.28169696677443
4856 POINT 4849 -9.139626577699488 28.84786563078475
4857 POINT 4850 -8.880974911121076 28.39978165870695
4858 POINT 4851 -8.886484031839617 29.29285468931666
4859 POINT 4852 -8.375837076376664 29.29012509511866
4860 POINT 4853 -6.606301488352729 31.5172784426189
4861 POINT 4854 -6.86610510089686 31.96710983930201
4862 POINT 4855 -7.380363061301429 31.97547095696313
4863 POINT 4856 -7.629645044490113 31.52677603524801
4864 POINT 4857 -3.734387612605413 37.33998909381205
4865 POINT 4858 -3.480917883197236 36.90862995438757
4866 POINT 4859 -4.249409370936035 37.28824836325113
4867 POINT 4860 -4.533435519467933 36.88852220808495
4868 POINT 4861 -4.758488233341749 38.11030236366913
4869 POINT 4862 -4.50676918141261 38.58210339451158
4870 POINT 4863 -4.783545702215509 38.99367819414739
4871 POINT 4864 -5.253316076616899 38.87170298229778
4872 POINT 4865 -5.026304722136116 39.35810581481412
4873 POINT 4866 -5.31475374097253 38.1921257939889
4874 POINT 4867 -5.55603254774995 38.55085252783052
4875 POINT 4868 -4.803482580347485 34.64054361135685
4876 POINT 4869 -5.320196850564142 34.63590120971449
4877 POINT 4870 -4.543060036237803 35.09578274400744
4878 POINT 4871 -9.474341817876265 37.14660975144912
4879 POINT 4872 -9.406416566704262 36.55611168334616
4880 POINT 4873 -9.473526932351346 35.72215174385364
4881 POINT 4874 -9.691051891830522 35.19404228105253
4882 POINT 4875 -7.395668664845115 33.76943169253389
4883 POINT 4876 -7.141645205774269 34.21567874364175
4884 POINT 4877 -7.911373176236172 33.78412991120815
4885 POINT 4878 -5.970391354147889 38.42267776501082
4886 POINT 4879 -5.910343674528779 39.10674848218104
4887 POINT 4880 9.899142136969207 27.51510267900654
4888 POINT 4881 10.15244814835231 27.06995268221834
4889 POINT 4882 9.895007998246125 26.62370476614767
4890 POINT 4883 9.383403857216514 26.62219238204935
4891 POINT 4884 9.645779171780866 27.95898679566293
4892 POINT 4885 9.392678108416897 28.40351120876002
4893 POINT 4886 8.880975044494647 28.39978174499532
4894 POINT 4887 9.387389390594027 27.51154309762205
4895 POINT 4888 14.26073289743033 28.8691395757118
4896 POINT 4889 13.99842144929555 28.41952401656783
4897 POINT 4890 13.99771942752645 29.30896742654093
4898 POINT 4891 13.48445722189115 28.41718289837834
4899 POINT 4892 13.22907518867648 28.86709658595593
4900 POINT 4893 13.48364027439367 29.31665262720558
4901 POINT 4894 2.778186435888486 8.938957890864957
4902 POINT 4895 3.285536154833564 8.93983143640984
4903 POINT 4896 0.503576558953103 8.480088415641912
4904 POINT 4897 0.7545340256392324 8.025313551344778
4905 POINT 4898 1.257490675288657 8.028793692477928
4906 POINT 4899 1.00487166372454 7.572984560185061
4907 POINT 4900 1.767218177292147 9.833864649502274
4908 POINT 4901 1.261813121296191 9.833435129749081
4909 POINT 4902 2.01977490415053 9.386150013300199
4910 POINT 4903 1.254058685362145 7.116431701475741
4911 POINT 4904 0.7511020357127205 7.112951560342591
4912 POINT 4905 1.503048670056133 6.664067888028908
4913 POINT 4906 1.756818298067953 7.124100887871379
4914 POINT 4907 3.221422303399006 2.620248389708918
4915 POINT 4908 3.480914914435558 3.091369166068999
4916 POINT 4909 2.72098085638526 3.493309688384574
4917 POINT 4910 3.229661216416159 3.523299759226276
4918 POINT 4911 2.982688780121403 3.965001676074344
4919 POINT 4912 2.46865487040522 3.007906565470829
4920 POINT 4913 2.722869289518796 2.56051282330207
4921 POINT 4914 -1.010191681274808 16.47724942694537
4922 POINT 4915 -1.263131355488745 16.91548129340297
4923 POINT 4916 -2.020306230344167 16.47789566114399
4924 POINT 4917 -1.767492742491601 16.03853792813051
4925 POINT 4918 -1.262539725172341 16.03840777843346
4926 POINT 4919 12.1997613590734 12.92710547342492
4927 POINT 4920 11.94479095056584 12.47843891822832
4928 POINT 4921 11.43422157083276 12.47855544044724
4929 POINT 4922 11.17576264345388 12.92727100195365
4930 POINT 4923 11.94436521973632 13.37375023233481
4931 POINT 4924 7.336251480752613 18.6795640871081
4932 POINT 4925 7.844937134949372 18.67964044904051
4933 POINT 4926 8.099974578704396 18.23956992571268
4934 POINT 4927 7.84480578458009 17.79945448070259
4935 POINT 4928 8.354717919779731 17.79936124634732
4936 POINT 4929 7.335669970649025 17.79968796401571
4937 POINT 4930 7.081931177971981 18.23961942058892
4938 POINT 4931 8.354982325926542 23.08157075161737
4939 POINT 4932 7.844991506275383 23.08106290277033
4940 POINT 4933 7.844803584321875 22.20054442238268
4941 POINT 4934 8.354715387699985 22.20063715773581
4942 POINT 4935 8.610505338363385 22.64100603529607
4943 POINT 4936 7.590411112199734 22.64052001245645
4944 POINT 4937 7.335856170051208 23.08082965169779
4945 POINT 4938 7.335668248097701 22.20031117131014
4946 POINT 4939 9.890818040191585 21.32074068357608
4947 POINT 4940 10.40541311898843 21.32077323454844
4948 POINT 4941 10.66371321816277 20.88088247878991
4949 POINT 4942 10.40367267864471 20.44035402693132
4950 POINT 4943 10.91972490192146 20.44052753016572
4951 POINT 4944 9.890170248707562 20.4403537256876
4952 POINT 4945 10.14618193246625 19.99999877706341
4953 POINT 4946 9.634491429138507 20.88059097460354
4954 POINT 4947 6.827400667807767 23.08040137415767
4955 POINT 4948 7.081981061883418 23.52094426447156
4956 POINT 4949 6.066344491613611 23.52030180831326
4957 POINT 4950 6.320150731026381 23.96091878388248
4958 POINT 4951 6.828063703070947 23.96154890185181
4959 POINT 4952 4.803564434818736 21.32240321307486
4960 POINT 4953 4.299173358639647 21.32364953328408
4961 POINT 4954 4.044571409948016 21.76361015630762
4962 POINT 4955 4.295759881507283 22.20207832426327
4963 POINT 4956 4.801296257115548 22.20150106250879
4964 POINT 4957 5.054931180975862 21.76171558239177
4965 POINT 4958 5.306832085229775 22.20081301603004
4966 POINT 4959 5.309100262932963 21.32171516659611
4967 POINT 4960 5.81454207983198 21.32106756825005
4968 POINT 4961 -18.56002184971921 14.22769492657082
4969 POINT 4962 -18.58096939592903 13.77580049591028
4970 POINT 4963 -19.15364988885438 14.24346495111939
4971 POINT 4964 -18.85904440570564 13.34143830515129
4972 POINT 4965 -15.33998266280768 14.7338292242525
4973 POINT 4966 -15.57188599971363 14.288170055576
4974 POINT 4967 -16.07296487229796 14.29114541974748
4975 POINT 4968 -16.41267733540978 14.73120693333909
4976 POINT 4969 -16.13750880779156 15.17187251392457
4977 POINT 4970 -3.788945546787723 16.91866703867328
4978 POINT 4971 -4.041277777523542 16.47943067745028
4979 POINT 4972 -3.283887755210931 16.91774473014353
4980 POINT 4973 -3.03057820446562 16.47865932897363
4981 POINT 4974 -2.778699564643894 16.9173169410877
4982 POINT 4975 -3.788415114156707 16.03940786842766
4983 POINT 4976 -3.282925532369509 16.03938389455073
4984 POINT 4977 -2.526915470103403 17.35549624645666
4985 POINT 4978 -2.273605919358092 16.91641084528677
4986 POINT 4979 -1.516431044502669 17.35399647754574
4987 POINT 4980 -1.770560893295203 17.79144659044107
4988 POINT 4981 -2.276071417055452 17.79312094010028
4989 POINT 4982 -1.768522135803676 16.91607496651296
4990 POINT 4983 6.366501243846965 6.244439141771339
4991 POINT 4984 6.881681964346839 6.238915939179471
4992 POINT 4985 6.620524933946894 6.690686173039952
4993 POINT 4986 7.141643473575124 5.784322519668687
4994 POINT 4987 6.888811533617075 5.334267858601422
4995 POINT 4988 6.360807268283301 5.359380468288856
4996 POINT 4989 5.328304956021583 8.043704908345143
4997 POINT 4990 5.839992119376236 8.041429038737206
4998 POINT 4991 5.072106627115973 7.596960962835897
4999 POINT 4992 4.814338839724297 8.045553308551284
5000 POINT 4993 6.874612011818435 7.136622928830665
5001 POINT 4994 7.12777633937579 7.579721871050277
5002 POINT 4995 6.359431291318561 7.142146131422533
5003 POINT 4996 6.866104091313161 8.032890848737603
5004 POINT 4997 6.099795556301682 7.591597724921501
5005 POINT 4998 5.84570847843014 7.145660969130788
5006 POINT 4999 6.353714932264657 8.037914201028951
5007 POINT 5000 6.081229359011346 4.028063957887165
5008 POINT 5001 5.831277611851206 4.472376518875711
5009 POINT 5002 5.818440427341621 3.559379919758002
5010 POINT 5003 6.331070824970244 3.568782868560602
5011 POINT 5004 5.320793662260057 3.555241511663863
5012 POINT 5005 5.570635128218955 3.0959604223373
5013 POINT 5006 5.055437459855198 4.009246871870873
5014 POINT 5007 6.821727892775355 3.591856572778605
5015 POINT 5008 6.558938961105631 3.123172534649443
5016 POINT 5009 6.777765117627584 2.634655229109696
5017 POINT 5010 6.287108049822472 2.611581524891692
5018 POINT 5011 7.244265492278114 2.731384312863897
5019 POINT 5012 7.354837885284381 3.536944361599219
5020 POINT 5013 7.598035916136748 3.04043980858182
5021 POINT 5014 4.299970635453084 7.14850787645576
5022 POINT 5015 3.788870234546398 7.145933669669137
5023 POINT 5016 4.047040109912 7.596235156255416
5024 POINT 5017 5.345228489927225 2.610272286506451
5025 POINT 5018 5.842875255008789 2.614410694600591
5026 POINT 5019 6.061701411530742 2.125893389060844
5027 POINT 5020 5.314751048479676 1.807873046646745
5028 POINT 5021 5.061202116388895 2.210546263008434
5029 POINT 5022 5.970380050087678 1.57731768278398
5030 POINT 5023 5.556020582598091 1.44914323051177
5031 POINT 5024 5.91032202053712 0.893244814956379
5032 POINT 5025 -6.836865785799978 12.49945380288166
5033 POINT 5026 -7.089553213907015 12.94295844989903
5034 POINT 5027 -6.833499178180947 13.3871348946776
5035 POINT 5028 -6.325319961009233 13.38836779917821
5036 POINT 5029 -1.767218052469922 9.83386477079263
5037 POINT 5030 -1.515143883278228 10.28237400844931
5038 POINT 5031 -4.303205496386696 9.835452565483031
5039 POINT 5032 -4.556607857026273 10.28150303033054
5040 POINT 5033 -3.794281023813899 9.835889357263516
5041 POINT 5034 -3.286799988363986 9.836274382571714
5042 POINT 5035 -3.540719111353306 10.28304225808364
5043 POINT 5036 -4.049286373397377 9.3886846899711
5044 POINT 5037 -3.285536068257624 8.939831726257879
5045 POINT 5038 -3.794429645178254 8.941483599185215
5046 POINT 5039 -4.303354117751051 8.94104680740473
5047 POINT 5040 -8.903186047936739 8.909494536004507
5048 POINT 5041 -9.153055229364252 9.360382120771384
5049 POINT 5042 -8.391528260648695 8.915703764693721
5050 POINT 5043 -8.131409949387299 9.367205473050699
5051 POINT 5044 -7.880480215519194 8.920252421455185
5052 POINT 5045 -8.893751097108121 9.810542690182665
5053 POINT 5046 -8.383104174517864 9.813271999453356
5054 POINT 5047 -7.872056129388366 9.81782065621482
5055 POINT 5048 -0.2524838087497524 13.39540810971175
5056 POINT 5049 2.44434774088198e-08 12.95322345942679
5057 POINT 5050 -0.2524838007827911 12.50965988836077
5058 POINT 5051 -0.757533375523636 12.50963474063003
5059 POINT 5052 -1.010043008245645 12.95311658754424
5060 POINT 5053 -1.262608748160552 12.5095278632947
5061 POINT 5054 -5.055438029190892 4.009250597348579
5062 POINT 5055 -4.800176791787235 4.456813104903008
5063 POINT 5056 -4.285157933322742 4.447242053838
5064 POINT 5057 -4.807632465031426 3.545831769185357
5065 POINT 5058 -4.268076983227289 3.565484152107086
5066 POINT 5059 -4.016822847882909 3.997414501763457
5067 POINT 5060 -4.555688689148163 6.701760771737632
5068 POINT 5061 -4.809231035662058 6.255220117419496
5069 POINT 5062 -5.325945436912674 6.259862566172071
5070 POINT 5063 -4.813858667735643 7.152062022074176
5071 POINT 5064 -5.327824915713599 7.150213499506166
5072 POINT 5065 -5.072106938070638 7.596961402009646
5073 POINT 5066 -5.587460861837469 6.7007619399641
5074 POINT 5067 -4.814374102587054 8.940272696222461
5075 POINT 5068 -4.559517374367931 8.493071605436576
5076 POINT 5069 -5.324236901342186 8.938715377757356
5077 POINT 5070 -4.814339024648308 8.045553709415984
5078 POINT 5071 -5.328305272626263 8.043705186847973
5079 POINT 5072 -2.021045274972744 28.82414544323013
5080 POINT 5073 -1.76803673224556 28.37917160193302
5081 POINT 5074 -1.262715411558947 28.37904359188522
5082 POINT 5075 -1.010161179515999 28.82419250185701
5083 POINT 5076 -1.767940371645426 29.27066485235695
5084 POINT 5077 -1.262535281707757 29.27109438297196
5085 POINT 5078 -3.537066675701101 22.64267533516108
5086 POINT 5079 -3.283887565701342 23.08225529095755
5087 POINT 5080 -3.78894527952161 23.0813329672272
5088 POINT 5081 -2.526915358233893 22.64450376122651
5089 POINT 5082 -2.781164941584266 22.20597295586544
5090 POINT 5083 -3.285878205800256 22.20420716902598
5091 POINT 5084 -2.777737218622537 23.96104394944767
5092 POINT 5085 -3.030578038325537 23.52134070986063
5093 POINT 5086 -3.282925349818851 23.96061616261071
5094 POINT 5087 -2.778699434505028 23.08268307779451
5095 POINT 5088 -2.273605830858089 23.08358918012959
5096 POINT 5089 -4.294456553710889 23.08098940888245
5097 POINT 5090 -4.04127744371113 23.52056936467892
5098 POINT 5091 -4.799992926299243 23.08041214616574
5099 POINT 5092 -5.052976054246795 23.52015671029886
5100 POINT 5093 -2.777506769235351 24.84052461662275
5101 POINT 5094 -3.030366432223659 25.28092918756785
5102 POINT 5095 -3.282944193104159 24.84072397314284
5103 POINT 5096 1.330755233786007e-08 25.28052643955282
5104 POINT 5097 -0.2524349013237393 25.72146687178944
5105 POINT 5098 -0.7573602844785909 25.72151112349207
5106 POINT 5099 -0.2524349052544075 24.84066650044989
5107 POINT 5100 -1.514941477347312 26.16264507841994
5108 POINT 5101 -1.767575298832624 26.60489236198012
5109 POINT 5102 -2.272957792445729 26.60516714734652
5110 POINT 5103 8.652257441255252 31.53745954895175
5111 POINT 5104 8.39152909816184 31.0842973257564
5112 POINT 5105 7.880480908934858 31.07974849039663
5113 POINT 5106 8.414839869207476 32.89164191324666
5114 POINT 5107 8.152299658520024 32.43384477376586
5115 POINT 5108 8.913239863919834 31.99135925837855
5116 POINT 5109 9.175113211385597 32.44721832517048
5117 POINT 5110 8.921335274498762 32.89535134269027
5118 POINT 5111 8.401581793046937 31.98514988936742
5119 POINT 5112 7.891317235855443 31.97994506433906
5120 POINT 5113 11.74873159823277 31.58187307730738
5121 POINT 5114 11.47479887261305 31.1209339277706
5122 POINT 5115 11.49828722778247 32.00603438825626
5123 POINT 5116 10.96516324372876 31.99723027702603
5124 POINT 5117 10.70432876392238 31.55113677680682
5125 POINT 5118 10.95876372439194 31.10769117123329
5126 POINT 5119 13.5073245348637 15.16042310084938
5127 POINT 5120 13.7722487569601 15.60568703807935
5128 POINT 5121 12.98766647301654 15.15683542879488
5129 POINT 5122 11.95878835004167 18.67894453890096
5130 POINT 5123 11.43914146078369 18.67926892442837
5131 POINT 5124 11.69940005256377 19.11861634915865
5132 POINT 5125 11.95797422263067 17.80027054191047
5133 POINT 5126 12.22006423253389 18.24016781356158
5134 POINT 5127 11.95483938702825 19.55914746318869
5135 POINT 5128 11.43519249777028 19.55947184871609
5136 POINT 5129 11.17515809731908 20.00000102052662
5137 POINT 5130 10.9197187628546 19.55946990649659
5138 POINT 5131 11.43519863683714 20.44052947238522
5139 POINT 5132 11.95485752643337 20.44085700867212
5140 POINT 5133 12.20710913316478 20.00000805421938
5141 POINT 5134 8.610508600834709 17.35899258697246
5142 POINT 5135 8.865677394959015 17.79910803198256
5143 POINT 5136 10.66370546167478 19.11911380302585
5144 POINT 5137 10.40367106122358 19.55964297483639
5145 POINT 5138 9.890168631286432 19.55964267359267
5146 POINT 5139 9.634489721044543 19.11940538477516
5147 POINT 5140 -4.8003808551864 24.84120085001912
5148 POINT 5141 -5.306981717815686 24.84178343725863
5149 POINT 5142 -5.054251160006624 25.28243433877643
5150 POINT 5143 -5.55994363703766 24.40093575380166
5151 POINT 5144 -5.306137401794322 23.96031878138243
5152 POINT 5145 -4.799950065447936 23.96038787741774
5153 POINT 5146 -11.95797406324265 17.80027060346049
5154 POINT 5147 -12.47950852290421 17.80084131416471
5155 POINT 5148 -12.4753984618416 16.92143972111907
5156 POINT 5149 -11.95613484774709 16.91958059439132
5157 POINT 5150 -11.69841188473828 17.35997812379403
5158 POINT 5151 -13.25572876182561 16.4853991857355
5159 POINT 5152 -13.51392938584669 16.04511550981153
5160 POINT 5153 -14.04907256824607 16.92994355105175
5161 POINT 5154 -14.30347489893017 16.49353671661515
5162 POINT 5155 -17.42133850836408 16.46621230299164
5163 POINT 5156 -17.19812027591119 16.01499464947636
5164 POINT 5157 -16.66495740057217 16.04359032158593
5165 POINT 5158 -16.48596411693903 18.24387092939627
5166 POINT 5159 -16.7768887765254 18.67109514329076
5167 POINT 5160 -17.3450998387438 18.66931497274819
5168 POINT 5161 -17.55961494440304 18.23365541782893
5169 POINT 5162 -15.13808693917218 21.32895091825263
5170 POINT 5163 -14.87289120763043 20.89506516536105
5171 POINT 5164 -15.08660377556885 20.45033549308172
5172 POINT 5165 -15.55540002119723 20.44995148230189
5173 POINT 5166 -15.67928522368949 21.32845399962185
5174 POINT 5167 -15.40246238141945 21.75672542573599
5175 POINT 5168 -15.97041154478462 20.90170693614084
5176 POINT 5169 -15.10960308030174 23.06196306963319
5177 POINT 5170 -14.85525283921842 22.62543744619248
5178 POINT 5171 -15.12585041525192 22.18962314831048
5179 POINT 5172 -15.63603303387482 23.06058114205074
5180 POINT 5173 -15.66704869976923 22.1891262296797
5181 POINT 5174 -15.93226468292499 22.62311470327069
5182 POINT 5175 -15.60763493081995 24.82273747748248
5183 POINT 5176 -16.13755718211401 24.82813379087301
5184 POINT 5177 -16.07300703291225 25.70885103720212
5185 POINT 5178 -16.41272779402701 25.26878316611768
5186 POINT 5179 -15.34000762949547 25.26618761047478
5187 POINT 5180 -15.57192119263 25.71183375688789
5188 POINT 5181 -4.801571669348379 25.72385239038944
5189 POINT 5182 -5.308172531977664 25.72443497762895
5190 POINT 5183 -5.562737248413449 26.16686877343349
5191 POINT 5184 -5.310107189970187 26.609152448284
5192 POINT 5185 -4.802971256910249 26.60801531258947
5193 POINT 5186 -6.341450194137229 30.17268166580354
5194 POINT 5187 -6.851155409199826 30.1753372598659
5195 POINT 5188 -6.859007872044449 31.0718020351126
5196 POINT 5189 -6.346618677552621 31.06677857324325
5197 POINT 5190 -5.827084132913434 29.27699951540124
5198 POINT 5191 -6.079388407703597 28.83197972224318
5199 POINT 5192 -5.823064947564565 28.38586492051645
5200 POINT 5193 -6.331860416471411 28.38790677782728
5201 POINT 5194 -5.315146554267603 28.38430764348843
5202 POINT 5195 -5.062470599146903 28.82834390262268
5203 POINT 5196 -4.556608069675993 29.71849731589442
5204 POINT 5197 -4.811613479718268 30.165702029606
5205 POINT 5198 -5.317804366752521 29.27479472056045
5206 POINT 5199 -5.574295560869203 29.72185637102933
5207 POINT 5200 -4.809682027102673 29.27320075825078
5208 POINT 5201 -8.37012581029477 28.39701947502677
5209 POINT 5202 -8.623177182075818 27.95266494359922
5210 POINT 5203 -8.365439583299061 27.50635270506456
5211 POINT 5204 -7.855387859831518 27.50430329700417
5212 POINT 5205 -5.055440020725587 35.99075265980588
5213 POINT 5206 -4.807634831823819 36.45417118840255
5214 POINT 5207 -5.320796682809582 36.4447576399531
5215 POINT 5208 -4.268078857383937 36.43451722793773
5216 POINT 5209 -4.800178501361454 35.54318914608771
5217 POINT 5210 -5.313340352347217 35.53377559763826
5218 POINT 5211 -4.285159704616173 35.55275980617505
5219 POINT 5212 -3.759706120423524 35.55518051249211
5220 POINT 5213 -3.243368772057292 35.56417992560635
5221 POINT 5214 -2.982690542380816 36.03499790770628
5222 POINT 5215 -4.016824585547176 36.00258691457239
5223 POINT 5216 -3.742625273191289 36.4369379342548
5224 POINT 5217 -3.229663611360475 36.47669964102222
5225 POINT 5218 -7.354840159678442 36.4630586256994
5226 POINT 5219 -7.903282692818332 36.56886240561009
5227 POINT 5220 -7.598040633279414 36.95956098877416
5228 POINT 5221 -7.126972347222575 36.01744750407371
5229 POINT 5222 -6.821730287683658 36.40814608723778
5230 POINT 5223 -9.020623545645163 37.38900516343447
5231 POINT 5224 -9.424243510782267 37.64039778849911
5232 POINT 5225 -8.55965244144466 38.07573926529626
5233 POINT 5226 -8.556945323688646 37.47116104503266
5234 POINT 5227 -8.146988554944242 37.6652934901699
5235 POINT 5228 -8.61016138837582 36.98320888708665
5236 POINT 5229 -8.948133722619318 34.7550130983436
5237 POINT 5230 -8.426272911082375 34.70970901961947
5238 POINT 5231 -8.68619953008956 35.18782904777932
5239 POINT 5232 -8.171918681535782 34.25045922190498
5240 POINT 5233 -7.909984489006024 34.68327517134071
5241 POINT 5234 -8.934156830967638 33.81427302246146
5242 POINT 5235 -8.427661598312522 33.81056375948693
5243 POINT 5236 -7.402798616599393 34.67408020217368
5244 POINT 5237 -7.657152846145986 35.13332999988818
5245 POINT 5238 -7.405024596478357 35.59824753662824
5246 POINT 5239 -7.912210468884988 35.60744250579526
5247 POINT 5240 -6.871914724483572 35.54333499816662
5248 POINT 5241 -6.888813562914232 34.66573357218922
5249 POINT 5242 -5.838136677064515 34.62974945206364
5250 POINT 5243 -6.36080931903647 34.64062034113785
5251 POINT 5244 -6.621962729861593 35.09902179966978
5252 POINT 5245 -6.34391048060581 35.51822176711525
5253 POINT 5246 -5.576018659483458 35.08006032626925
5254 POINT 5247 -5.831280178847591 35.52762383998741
5255 POINT 5248 -6.081232173469569 35.97193703848426
5256 POINT 5249 -6.414624379431359 38.42551013672836
5257 POINT 5250 -6.06170323738905 37.87410771123918
5258 POINT 5251 -6.85513583736405 38.26715632721284
5259 POINT 5252 -6.765677367949003 38.82088227601641
5260 POINT 5253 -5.842877995505253 37.38558927504278
5261 POINT 5254 -5.57063863640637 36.90403968955684
5262 POINT 5255 -5.818443825308139 36.44062116096016
5263 POINT 5256 -6.287111020788723 37.38842164676031
5264 POINT 5257 -6.558941939522226 36.87683020971369
5265 POINT 5258 -6.777767181406023 37.36534864591009
5266 POINT 5259 -6.331074127066358 36.431219088088
5267 POINT 5260 8.876288812510946 27.50911496320762
5268 POINT 5261 9.129651777699287 27.06523084655123
5269 POINT 5262 8.872303279133433 26.61976424763491
5270 POINT 5263 8.361773132138943 26.61807490241647
5271 POINT 5264 8.108499459230185 27.06075329726731
5272 POINT 5265 8.370125922301042 28.3970195492633
5273 POINT 5266 7.859855674189975 28.39452253470644
5274 POINT 5267 8.623177303212083 27.95266501854642
5275 POINT 5268 7.602700800558854 27.94780788776358
5276 POINT 5269 8.365439690317341 27.5063527674756
5277 POINT 5270 7.85538794993132 27.50430335260611
5278 POINT 5271 2.013562028795792 7.580836026957666
5279 POINT 5272 2.26255201348978 7.128472213510832
5280 POINT 5273 2.77500305718747 8.037874485340598
5281 POINT 5274 3.027617726611467 7.589434151032957
5282 POINT 5275 3.283325039581317 8.042101283776436
5283 POINT 5276 4.303354076505858 8.941046540609735
5284 POINT 5277 4.559517266307168 8.493071306044598
5285 POINT 5278 4.303318937401558 8.046327360535352
5286 POINT 5279 3.794429651747119 8.941483306382132
5287 POINT 5280 3.539603867070875 8.492193488056373
5288 POINT 5281 3.792218536494872 8.04375315374873
5289 POINT 5282 1.765500287132538 8.935229901889144
5290 POINT 5283 1.512133152393508 8.483328312230684
5291 POINT 5284 1.26052017194238 8.933024273296105
5292 POINT 5285 2.268204505900643 8.035370646710422
5293 POINT 5286 2.523911818870494 8.488037779453901
5294 POINT 5287 2.271387884601659 8.93645405223478
5295 POINT 5288 1.762470790478816 8.030999321070967
5296 POINT 5289 0.7570181339856141 9.832621206105948
5297 POINT 5290 0.2521486956286256 9.832463953535083
5298 POINT 5291 1.009092319370833 9.384111939311431
5299 POINT 5292 7.294083631537163e-08 9.383298033689051
5300 POINT 5293 0.755725184631803 8.932210349652973
5301 POINT 5294 0.2521487063815567 8.931176081657238
5302 POINT 5295 0.5001445506630317 6.653216377611718
5303 POINT 5296 0.2509575290254266 7.109769236321039
5304 POINT 5297 -0.2509574054255117 7.109769247532057
5305 POINT 5298 -0.5001444446786542 6.653216389361097
5306 POINT 5299 -0.2485632222434483 6.187417819036827
5307 POINT 5300 1.486808276477663 4.815803748516092
5308 POINT 5301 1.233115516860302 4.336364274084247
5309 POINT 5302 0.7400739793290316 4.319006830385741
5310 POINT 5303 0.4944715681245202 4.791077890962915
5311 POINT 5304 1.247341716301759 6.199670761156298
5312 POINT 5305 1.750101329007567 6.207339947551936
5313 POINT 5306 1.241668873888472 5.270356238309256
5314 POINT 5307 1.739533777842383 5.288390330886163
5315 POINT 5308 6.319776508411969 23.08033816696384
5316 POINT 5309 6.57365161657976 22.64022355419007
5317 POINT 5310 5.813247233137025 22.20059394145463
5318 POINT 5311 5.559612309276712 22.64037942157165
5319 POINT 5312 5.812595440385603 23.08012398834565
5320 POINT 5313 6.827537292599711 22.20035520381776
5321 POINT 5314 7.081929764721854 21.760379613744
5322 POINT 5315 6.067132909156976 21.76072559108232
5323 POINT 5316 6.321207979898867 21.32076562341935
5324 POINT 5317 6.319913133203913 22.20029199662393
5325 POINT 5318 6.828119358218929 21.32047871636039
5326 POINT 5319 -15.60761428771511 15.17729136075921
5327 POINT 5320 -15.8759118955204 15.61135550393402
5328 POINT 5321 -15.07838575053652 15.17331221426195
5329 POINT 5322 5.313338001627086 4.46622421620718
5330 POINT 5323 4.800176500099562 4.456810078993488
5331 POINT 5324 5.57601665209557 4.919939725998326
5332 POINT 5325 3.782261521536312 6.243544847125578
5333 POINT 5326 4.035803768525128 5.797003854445578
5334 POINT 5327 4.295343007076298 6.25166539718948
5335 POINT 5328 5.32782445313552 7.150212913721168
5336 POINT 5329 5.5874601881524 6.7007613202222
5337 POINT 5330 4.555688461472631 6.70175982734103
5338 POINT 5331 4.809230708461447 6.255218834661029
5339 POINT 5332 4.813858336838233 7.152061313927309
5340 POINT 5333 -5.310107499537395 13.39084792377241
5341 POINT 5334 -5.817351857309676 13.38983227473242
5342 POINT 5335 -6.07268972719344 12.94608409290475
5343 POINT 5336 -5.830755763497873 9.830536332965101
5344 POINT 5337 -5.574295325382317 10.27814411627772
5345 POINT 5338 -5.827083974112147 10.72300100372588
5346 POINT 5339 -5.317804215979157 10.7252057153338
5347 POINT 5340 -6.328097480913719 12.50141410567111
5348 POINT 5341 -6.584305435820698 12.05624829120225
5349 POINT 5342 -5.820129377214162 12.50287858122533
5350 POINT 5343 -2.273653862835852 10.72932296672886
5351 POINT 5344 -2.779998427153544 10.72963483000736
5352 POINT 5345 -2.526893511585702 10.28311542011334
5353 POINT 5346 -3.03325797369162 11.17544935978157
5354 POINT 5347 -3.286081789785646 11.62005936335257
5355 POINT 5348 -2.77958259449772 11.62045238019389
5356 POINT 5349 -3.793978657891382 10.72885678785785
5357 POINT 5350 -3.28649762244147 10.72924181316605
5358 POINT 5351 -3.033012140510429 9.388247926083039
5359 POINT 5352 -2.778186307943474 8.938958170589331
5360 POINT 5353 -2.271387729106642 8.936454262492179
5361 POINT 5354 -2.019774768934057 9.386150177582453
5362 POINT 5355 -2.273105663732145 9.835088963624671
5363 POINT 5356 -2.779450228049837 9.835400826903166
5364 POINT 5357 -5.5822245505022 8.490021566077278
5365 POINT 5358 -5.835924092640452 8.936439449580325
5366 POINT 5359 -5.83999246392453 8.041429258670941
5367 POINT 5360 -6.353715300277041 8.037914311090102
5368 POINT 5361 -0.7574091937513752 13.39536386100999
5369 POINT 5362 -0.5049253668923982 13.83754850584218
5370 POINT 5363 -1.262484566388291 13.39525698367467
5371 POINT 5364 -0.7573602894107085 14.27848893565566
5372 POINT 5365 -1.262291965254416 14.27845371053971
5373 POINT 5366 -3.28331274272134 14.2777561649855
5374 POINT 5367 -3.536686451350343 13.83613863307331
5375 POINT 5368 -2.777875273536981 14.27795550083099
5376 POINT 5369 -2.272576442111081 23.96112623819538
5377 POINT 5370 -2.524923753604395 24.40040169094545
5378 POINT 5371 -2.272345992723895 24.84060690537046
5379 POINT 5372 -1.009801486872866 25.28056166755413
5380 POINT 5373 -1.262291950595193 25.72154635362897
5381 POINT 5374 -1.767382679741587 25.721695622482
5382 POINT 5375 -2.01983108067216 25.2806633643694
5383 POINT 5376 -2.272480607424279 25.72176208916036
5384 POINT 5377 -1.767248065041203 24.84054043869209
5385 POINT 5378 -2.778352392893433 26.60544966214032
5386 POINT 5379 -3.284192720232348 26.60594747324546
5387 POINT 5380 -2.52542680694141 26.16307686206677
5388 POINT 5381 -2.777875207871983 25.72204460395416
5389 POINT 5382 -3.28331263174079 25.72224396047425
5390 POINT 5383 6.866104760713585 31.96710990335178
5391 POINT 5384 7.380362796677328 31.97547094211897
5392 POINT 5385 7.629644931204242 31.52677605772053
5393 POINT 5386 6.606301269717369 31.51727851965659
5394 POINT 5387 7.369526469756744 31.07527436817653
5395 POINT 5388 6.859007733442916 31.07180208214582
5396 POINT 5389 13.51392964722839 16.04511534389315
5397 POINT 5390 14.03639847868913 16.04943449810747
5398 POINT 5391 13.52076444975717 16.92688894744077
5399 POINT 5392 14.04907281755069 16.92994337381335
5400 POINT 5393 14.30347517478823 16.49353649549375
5401 POINT 5394 11.18084815906273 18.23937667376692
5402 POINT 5395 10.92145986158483 18.67904848402461
5403 POINT 5396 10.40541215995382 18.6792215523644
5404 POINT 5397 11.43896757839668 17.79930462984569
5405 POINT 5398 11.69841204276576 17.35997805758548
5406 POINT 5399 10.92128597919782 17.79908418944193
5407 POINT 5400 10.66359917374389 17.35875830998669
5408 POINT 5401 10.40547975440994 17.79883035390792
5409 POINT 5402 8.865944840957612 16.91817543653783
5410 POINT 5403 8.354985365778326 16.91842865090259
5411 POINT 5404 8.355742015396309 16.03671800269559
5412 POINT 5405 8.100430211024863 16.47811944809296
5413 POINT 5406 9.377722904526436 17.79898153735976
5414 POINT 5407 9.890885340997441 17.79886408828225
5415 POINT 5408 9.634630512485 17.35862192353019
5416 POINT 5409 10.14857214645137 18.23918996773749
5417 POINT 5410 9.89081774654132 18.67925528673874
5418 POINT 5411 9.377649707542098 18.67937380014824
5419 POINT 5412 9.121932223471456 18.23935019673461
5420 POINT 5413 12.7301955341313 15.59870120865399
5421 POINT 5414 12.46808208164849 15.15416875358384
5422 POINT 5415 10.66170303024074 13.81985063353565
5423 POINT 5416 10.91914277660979 13.37360320785854
5424 POINT 5417 11.43075873813842 13.37311649985818
5425 POINT 5418 11.68774535289223 13.8200824382397
5426 POINT 5419 -4.294356920184748 24.84106161932534
5427 POINT 5420 -3.788433699542313 24.84070001560085
5428 POINT 5421 -4.041727076734903 25.28149014781243
5429 POINT 5422 -4.547087477993811 24.40041071780754
5430 POINT 5423 -3.535574036554005 24.40029544465575
5431 POINT 5424 -3.788414856257005 23.96059220506871
5432 POINT 5425 -4.293926130446284 23.96024864672396
5433 POINT 5426 -13.52905046638359 17.80348872203954
5434 POINT 5427 -13.79175767275845 17.36796966650665
5435 POINT 5428 -13.52076421705971 16.92688909198984
5436 POINT 5429 -13.00252392740061 17.80282689423603
5437 POINT 5430 -12.998413866338 16.9234253011904
5438 POINT 5431 -12.7404339170757 17.36292962737342
5439 POINT 5432 -14.02979306030074 15.16474248285489
5440 POINT 5433 -14.55273569758199 15.16992825407098
5441 POINT 5434 -14.03639819104111 16.04943470346083
5442 POINT 5435 -14.56179397742396 16.05410844354104
5443 POINT 5436 -13.77224846434048 15.60568723673743
5444 POINT 5437 -14.82036732248942 15.61339039057769
5445 POINT 5438 -15.08744403037848 16.05749240373201
5446 POINT 5439 -16.2090642477196 17.81010190909618
5447 POINT 5440 -15.93239653765298 17.37709080090277
5448 POINT 5441 -16.75104577713385 17.80975889004021
5449 POINT 5442 -17.29733902574828 17.80237948696045
5450 POINT 5443 -17.82900832379805 17.79250699444906
5451 POINT 5444 -18.125149458915 17.3358334365596
5452 POINT 5445 -17.74265051816197 16.90620584174569
5453 POINT 5446 -17.02043915652885 17.36861046666035
5454 POINT 5447 -17.24542039534538 16.92123752482653
5455 POINT 5448 -16.69912714673096 16.9286169279063
5456 POINT 5449 -6.088630944097952 30.61808470458812
5457 POINT 5450 -5.83075607699084 30.16946420465471
5458 POINT 5451 -5.321476310829926 30.16725940981392
5459 POINT 5452 -5.068073995839905 30.61330986323137
5460 POINT 5453 -5.324237322301012 31.06128512670801
5461 POINT 5454 -5.835924560406232 31.06356111209442
5462 POINT 5455 -7.109843760575517 30.62477446137646
5463 POINT 5456 -7.369526571375625 31.07527433075212
5464 POINT 5457 -8.131410593699739 30.63279557430232
5465 POINT 5458 -7.880480933021181 31.07974846151187
5466 POINT 5459 -7.872056536659996 30.1821803785594
5467 POINT 5460 -7.361674108531002 30.17880955550542
5468 POINT 5461 -7.613368185284306 29.73274317704884
5469 POINT 5462 -7.859855589284646 28.39452247461595
5470 POINT 5463 -8.117653318329905 28.84163918972367
5471 POINT 5464 -7.097783486965113 28.83658188443342
5472 POINT 5465 -7.355184427237546 29.28425727165385
5473 POINT 5466 -7.865566855366541 29.28762809470784
5474 POINT 5467 -6.840628617274074 28.38986724165644
5475 POINT 5468 -6.584305157135041 27.94375243992971
5476 POINT 5469 -7.602700719593607 27.94780783183896
5477 POINT 5470 -7.345760498175617 27.50220836892409
5478 POINT 5471 -7.350228227628744 28.39242754653586
5479 POINT 5472 -6.836865316533313 27.50054699198497
5480 POINT 5473 -8.859668248791966 36.47820331889234
5481 POINT 5474 -9.192245205163893 36.13326199675004
5482 POINT 5475 -8.926778614439051 35.64424337939984
5483 POINT 5476 -8.395990026835449 36.56035920049054
5484 POINT 5477 -8.152789553234477 36.06385683741578
5485 POINT 5478 -8.404917802902107 35.59893930067572
5486 POINT 5479 -9.445446661180085 34.74868923560489
5487 POINT 5480 -9.928438211384101 34.70959839015399
5488 POINT 5481 -9.1855200421729 34.27056920744505
5489 POINT 5482 -10.20212715258456 34.27925189416473
5490 POINT 5483 -9.94558386098727 33.81809877026199
5491 POINT 5484 -9.431469769528404 33.80794915972277
5492 POINT 5485 -6.972437622679337 37.78020738278309
5493 POINT 5486 -7.24426854141284 37.26861594573647
5494 POINT 5487 -7.793216463077668 37.97434844713221
5495 POINT 5488 -7.792711074552729 37.37441972564716
5496 POINT 5489 -7.321637197370867 38.17042362703923
5497 POINT 5490 -7.678418548302079 38.46731947176784
5498 POINT 5491 2.770028761860395 7.135494617296446
5499 POINT 5492 2.513285031132556 6.678759478210158
5500 POINT 5493 3.271742031244156 6.237332593188722
5501 POINT 5494 3.531281269795326 6.691994135932626
5502 POINT 5495 3.278350744254242 7.139721415732282
5503 POINT 5496 0.2485632276968463 6.187417834842025
5504 POINT 5497 0.7487077343841402 6.190600158863577
5505 POINT 5498 0.9957603933355736 5.733872218386605
5506 POINT 5499 -3.852233976253672e-08 5.724801600288686
5507 POINT 5500 0.7430348919708534 5.261285636016535
5508 POINT 5501 0.2485630875716218 5.254593871040265
5509 POINT 5502 -15.61382878159145 16.05886928995985
5510 POINT 5503 -16.1437233016679 16.05345044312521
5511 POINT 5504 -16.40287428664322 16.49110410761176
5512 POINT 5505 -15.63614367756524 16.93957798060823
5513 POINT 5506 -15.35525543652598 16.4995873429232
5514 POINT 5507 -16.17789304782668 16.93847704944558
5515 POINT 5508 1.997790912210466 5.756661433504865
5516 POINT 5509 2.253497865964841 6.221058560377475
5517 POINT 5510 2.760974614335455 6.228080964163087
5518 POINT 5511 3.011954866076441 5.77963167535604
5519 POINT 5512 2.242930314799657 5.302108943711701
5520 POINT 5513 4.543058481172607 4.904216705369631
5521 POINT 5514 4.288462587269439 5.349885195959473
5522 POINT 5515 4.803481147968283 5.359455913919637
5523 POINT 5516 3.775381101729453 5.34176464589557
5524 POINT 5517 4.285157939400719 4.447239361033324
5525 POINT 5518 3.759704530313033 4.444818867162756
5526 POINT 5519 5.325944699989877 6.259861521617189
5527 POINT 5520 5.843828725284497 6.255309577026809
5528 POINT 5521 6.104985755684442 5.803539343166328
5529 POINT 5522 5.838134749720831 5.370250903544328
5530 POINT 5523 5.065599245593544 5.809767091465639
5531 POINT 5524 5.320195139496712 5.364098600875796
5532 POINT 5525 -4.802971484868761 13.39198497902312
5533 POINT 5526 -4.296500513511889 13.39272959833429
5534 POINT 5527 -5.057585608825249 12.94868562370967
5535 POINT 5528 -6.335879478904616 10.72095926303271
5536 POINT 5529 -6.079388369501457 11.1680208620888
5537 POINT 5530 -6.84062880750044 11.61013355490421
5538 POINT 5531 -7.097783541825249 11.16341899720847
5539 POINT 5532 -6.331860502614183 11.61209385769366
5540 POINT 5533 -5.823064997821714 11.61413559838683
5541 POINT 5534 -6.341449844176644 9.827318953093449
5542 POINT 5535 -6.08863052415921 9.381915881388753
5543 POINT 5536 -6.346618173319224 8.933222069708673
5544 POINT 5537 -2.273750259397786 11.62081619889232
5545 POINT 5538 -2.526574075491812 12.06542620246332
5546 POINT 5539 -2.27331255849431 12.50912509652447
5547 POINT 5540 -2.779144893594244 12.50876127782604
5548 POINT 5541 -1.767930060637219 12.50939986568534
5549 POINT 5542 -1.51542042791521 12.06591801877112
5550 POINT 5543 -2.020500878739651 12.95273494104806
5551 POINT 5544 -7.369525954258662 8.924726485537136
5552 POINT 5545 -7.629644265520056 8.473224777180157
5553 POINT 5546 -6.606300873029995 8.482722239581177
5554 POINT 5547 -6.86610443150657 8.032890912771032
5555 POINT 5548 -6.859007304548753 8.928198671389605
5556 POINT 5549 -7.109843254547891 9.375226315664634
5557 POINT 5550 -7.380362326127036 8.024529817709622
5558 POINT 5551 -2.525426847734203 13.83692324382117
5559 POINT 5552 -2.272480651437661 14.27823799621374
5560 POINT 5553 -1.767382702124846 14.27830445157146
5561 POINT 5554 -1.514941488764452 13.83735499817217
5562 POINT 5555 -1.767575303258722 13.39510772470642
5563 POINT 5556 -2.272957801115813 13.39483295554556
5564 POINT 5557 -2.778352423215133 13.39455046016281
5565 POINT 5558 -1.767492689297242 23.96146211472275
5566 POINT 5559 -2.020306154315385 23.52210437322497
5567 POINT 5560 -1.263131319383013 23.08451873173783
5568 POINT 5561 -1.01019165252415 23.52275060399421
5569 POINT 5562 -1.768522078044251 23.08392505665697
5570 POINT 5563 -1.262295067277426 24.84067058321086
5571 POINT 5564 -1.514809979329161 24.40061412421192
5572 POINT 5565 -0.7575089425560693 23.96190261348339
5573 POINT 5566 -0.5049284856589678 24.40077541610661
5574 POINT 5567 -0.7573634011608242 24.84063535307396
5575 POINT 5568 -1.262539691533465 23.96159225924151
5576 POINT 5569 -4.549022158760552 26.16510835246748
5577 POINT 5570 -4.295100786789511 25.72310771361495
5578 POINT 5571 -3.789177566147076 25.72274610989047
5579 POINT 5572 -3.5366863417954 26.16386152627678
5580 POINT 5573 -3.790057654638633 26.60644962266168
5581 POINT 5574 -4.296500374351382 26.60727063581498
5582 POINT 5575 10.92066954525162 16.91793455038633
5583 POINT 5576 10.40486332046374 16.91768071485232
5584 POINT 5577 10.40472607340097 16.03513246006513
5585 POINT 5578 10.91930146715205 16.03530284192124
5586 POINT 5579 10.66209384858155 15.5935783467344
5587 POINT 5580 12.47199488428663 16.03898490629723
5588 POINT 5581 12.99157927565469 16.04165158150828
5589 POINT 5582 12.99841407818347 16.92342518505589
5590 POINT 5583 12.47539865640488 16.92143962440089
5591 POINT 5584 13.25572899738372 16.48539904153639
5592 POINT 5585 11.95273125070042 16.03712579643803
5593 POINT 5586 11.43576030048511 16.03598289401182
5594 POINT 5587 11.69364019254794 15.59489163101673
5595 POINT 5588 11.17839252530453 16.47753700734255
5596 POINT 5589 11.43712837858468 16.91861460247691
5597 POINT 5590 11.95613502281867 16.91958051454169
5598 POINT 5591 12.21411499222381 16.48007616929232
5599 POINT 5592 11.95093625080717 15.15244834498486
5600 POINT 5593 11.43396530059186 15.15130544255865
5601 POINT 5594 11.43270011507272 14.26415543114492
5602 POINT 5595 11.94630659667062 14.26478916362155
5603 POINT 5596 12.20840718969241 14.71058256512575
5604 POINT 5597 9.122219499790404 16.47724514251171
5605 POINT 5598 9.377742734846787 16.91780907858158
5606 POINT 5599 9.890905171317794 16.91769162950407
5607 POINT 5600 10.14797554282553 16.47686786990372
5608 POINT 5601 9.890767924255025 16.03514337471688
5609 POINT 5602 10.91783758504318 14.26368304084108
5610 POINT 5603 10.40540174398959 14.26408496861366
5611 POINT 5604 10.40452737681125 15.15066267039869
5612 POINT 5605 10.91910277056232 15.15083305225481
5613 POINT 5606 11.17639882882156 14.70838976622293
5614 POINT 5607 10.14864614667206 14.70832398270322
5615 POINT 5608 9.89163722469128 15.15106927718282
5616 POINT 5609 3.51170272767204 4.885646738160905
5617 POINT 5610 3.243367337511309 4.435819617914195
5618 POINT 5611 2.748276492019028 5.323513767621375
5619 POINT 5612 2.490019357650945 4.85524266500267
5620 POINT 5613 3.259043908927729 5.332765396647009
5621 POINT 5614 2.734686977480409 4.405829547072493
5622 POINT 5615 -3.031723722491756 12.95196238977117
5623 POINT 5616 -3.284985239489258 12.50826349571002
5624 POINT 5617 -4.044006831271692 12.95064364330777
5625 POINT 5618 -3.790057750626966 13.39355056268168
5626 POINT 5619 -3.284192769110147 13.39405267804679
5627 POINT 5620 -3.792541619613724 11.61935880772859
5628 POINT 5621 -3.538866240419825 12.0643618281409
5629 POINT 5622 -3.791445069317336 12.50756294008603
5630 POINT 5623 -4.297887832202258 12.50674197573865
5631 POINT 5624 -6.851155057129612 9.824663480890202
5632 POINT 5625 -6.593280296468273 10.27328393246655
5633 POINT 5626 -7.355184359388906 10.7157436666423
5634 POINT 5627 -7.613367931970085 10.26725782144039
5635 POINT 5628 -7.36167370683952 9.821191295037732
5636 POINT 5629 -6.845584691857582 10.71830379082946
5637 POINT 5630 -1.76803668438193 11.62082851212063
5638 POINT 5631 -2.021045203387837 11.17585468985119
5639 POINT 5632 -1.767940287819996 10.72933527995718
5640 POINT 5633 -1.262715371905262 11.62095650973
5641 POINT 5634 -1.010161141140113 11.17580760248892
5642 POINT 5635 -1.262535223830214 10.72890573157164
5643 POINT 5636 9.378288957212938 16.03556981048882
5644 POINT 5637 8.866491063323762 16.03593616844507
5645 POINT 5638 8.611811472818843 15.5950426706727
5646 POINT 5639 8.867790365254811 15.15257222445195
5647 POINT 5640 9.379158257649195 15.15149571295476
5648 POINT 5641 9.635039487788383 15.59383440065023
5649 POINT 5642 -4.299837112326497 11.6184558241427
5650 POINT 5643 -4.047052661692318 11.17415335935438
5651 POINT 5644 -4.301274150604154 10.72795380427197
5652 POINT 5645 -5.062470509557039 11.17165648927523
5653 POINT 5646 -4.809681860827208 10.72679960182707
5654 POINT 5647 -4.805074905311793 12.50557281219472
5655 POINT 5648 -5.312210919980426 12.50443575694401
5656 POINT 5649 -4.552513143357436 12.06249210897299
5657 POINT 5650 -5.567618673700705 12.05976576971038
5658 POINT 5651 -4.807024185436029 11.61728666059878
5659 POINT 5652 -5.315146540587978 11.61569277410551
5660
5661 END POINTS LIST
5662
5663
5664
5665 BEGIN MESH STRUCTURE DESCRIPTION
5666
5667 CONVEX 0 GT_PK(2,2) 258 1447 259 1448 1449 293
5668 CONVEX 1 GT_PK(2,2) 25 1450 10 1451 1452 0
5669 CONVEX 2 GT_PK(2,2) 18 1453 17 1454 1455 36
5670 CONVEX 3 GT_PK(2,2) 1426 1456 1440 1457 1458 4
5671 CONVEX 4 GT_PK(2,2) 824 1459 823 1460 1461 863
5672 CONVEX 5 GT_PK(2,2) 824 1462 784 1459 1463 823
5673 CONVEX 6 GT_PK(2,2) 1058 1464 1020 1465 1466 1021
5674 CONVEX 7 GT_PK(2,2) 728 1467 767 1468 1469 768
5675 CONVEX 8 GT_PK(2,2) 395 1470 394 1471 1472 357
5676 CONVEX 9 GT_PK(2,2) 225 1473 258 1474 1447 259
5677 CONVEX 10 GT_PK(2,2) 160 1475 192 1476 1477 191
5678 CONVEX 11 GT_PK(2,2) 224 1478 192 1479 1477 191
5679 CONVEX 12 GT_PK(2,2) 224 1480 225 1481 1473 258
5680 CONVEX 13 GT_PK(2,2) 224 1480 225 1478 1482 192
5681 CONVEX 14 GT_PK(2,2) 216 1483 185 1484 1485 186
5682 CONVEX 15 GT_PK(2,2) 280 1486 281 1487 1488 247
5683 CONVEX 16 GT_PK(2,2) 280 1486 281 1489 1490 315
5684 CONVEX 17 GT_PK(2,2) 64 1491 65 1492 1493 88
5685 CONVEX 18 GT_PK(2,2) 6 1494 20 1495 1496 5
5686 CONVEX 19 GT_PK(2,2) 21 1497 6 1498 1494 20
5687 CONVEX 20 GT_PK(2,2) 21 1497 6 1499 1500 7
5688 CONVEX 21 GT_PK(2,2) 1428 1501 1442 1502 1503 1443
5689 CONVEX 22 GT_PK(2,2) 1408 1504 1426 1505 1506 1407
5690 CONVEX 23 GT_PK(2,2) 1373 1507 1396 1508 1509 1397
5691 CONVEX 24 GT_PK(2,2) 1431 1510 1430 1511 1512 1412
5692 CONVEX 25 GT_PK(2,2) 1431 1513 1445 1514 1515 1446
5693 CONVEX 26 GT_PK(2,2) 1431 1510 1430 1513 1516 1445
5694 CONVEX 27 GT_PK(2,2) 1218 1517 1185 1518 1519 1184
5695 CONVEX 28 GT_PK(2,2) 1218 1517 1185 1520 1521 1219
5696 CONVEX 29 GT_PK(2,2) 745 1522 705 1523 1524 3
5697 CONVEX 30 GT_PK(2,2) 745 1525 784 1523 1526 3
5698 CONVEX 31 GT_PK(2,2) 782 1527 743 1528 1529 744
5699 CONVEX 32 GT_PK(2,2) 782 1527 743 1530 1531 781
5700 CONVEX 33 GT_PK(2,2) 1165 1532 1130 1533 1534 1129
5701 CONVEX 34 GT_PK(2,2) 1262 1535 1229 1536 1537 1230
5702 CONVEX 35 GT_PK(2,2) 1164 1538 1198 1539 1540 1199
5703 CONVEX 36 GT_PK(2,2) 1164 1541 1165 1542 1533 1129
5704 CONVEX 37 GT_PK(2,2) 1164 1541 1165 1539 1543 1199
5705 CONVEX 38 GT_PK(2,2) 1232 1544 1198 1545 1540 1199
5706 CONVEX 39 GT_PK(2,2) 1232 1546 1231 1547 1548 1264
5707 CONVEX 40 GT_PK(2,2) 1232 1546 1231 1544 1549 1198
5708 CONVEX 41 GT_PK(2,2) 936 1550 937 1551 1552 975
5709 CONVEX 42 GT_PK(2,2) 316 1553 281 1554 1490 315
5710 CONVEX 43 GT_PK(2,2) 428 1555 429 1556 1557 467
5711 CONVEX 44 GT_PK(2,2) 319 1558 320 1559 1560 355
5712 CONVEX 45 GT_PK(2,2) 319 1561 354 1559 1562 355
5713 CONVEX 46 GT_PK(2,2) 1059 1563 1058 1564 1465 1021
5714 CONVEX 47 GT_PK(2,2) 706 1565 746 1566 1567 2
5715 CONVEX 48 GT_PK(2,2) 706 1565 746 1568 1569 747
5716 CONVEX 49 GT_PK(2,2) 706 1570 667 1566 1571 2
5717 CONVEX 50 GT_PK(2,2) 706 1572 668 1570 1573 667
5718 CONVEX 51 GT_PK(2,2) 1406 1574 1385 1575 1576 1407
5719 CONVEX 52 GT_PK(2,2) 1406 1577 1424 1578 1579 1405
5720 CONVEX 53 GT_PK(2,2) 1278 1580 1279 1581 1582 1247
5721 CONVEX 54 GT_PK(2,2) 1196 1583 1229 1584 1537 1230
5722 CONVEX 55 GT_PK(2,2) 806 1585 767 1586 1587 766
5723 CONVEX 56 GT_PK(2,2) 806 1588 845 1589 1590 846
5724 CONVEX 57 GT_PK(2,2) 806 1591 805 1586 1592 766
5725 CONVEX 58 GT_PK(2,2) 806 1591 805 1588 1593 845
5726 CONVEX 59 GT_PK(2,2) 727 1594 767 1595 1587 766
5727 CONVEX 60 GT_PK(2,2) 727 1596 728 1594 1467 767
5728 CONVEX 61 GT_PK(2,2) 807 1597 767 1598 1469 768
5729 CONVEX 62 GT_PK(2,2) 807 1599 806 1597 1585 767
5730 CONVEX 63 GT_PK(2,2) 807 1600 847 1601 1602 846
5731 CONVEX 64 GT_PK(2,2) 807 1599 806 1601 1589 846
5732 CONVEX 65 GT_PK(2,2) 403 1603 365 1604 1605 366
5733 CONVEX 66 GT_PK(2,2) 439 1606 478 1607 1608 477
5734 CONVEX 67 GT_PK(2,2) 325 1609 326 1610 1611 362
5735 CONVEX 68 GT_PK(2,2) 363 1612 326 1613 1614 327
5736 CONVEX 69 GT_PK(2,2) 363 1612 326 1615 1611 362
5737 CONVEX 70 GT_PK(2,2) 128 1616 158 1617 1618 157
5738 CONVEX 71 GT_PK(2,2) 189 1619 190 1620 1621 222
5739 CONVEX 72 GT_PK(2,2) 189 1619 190 1622 1623 158
5740 CONVEX 73 GT_PK(2,2) 189 1624 156 1625 1626 157
5741 CONVEX 74 GT_PK(2,2) 189 1622 158 1625 1618 157
5742 CONVEX 75 GT_PK(2,2) 255 1627 256 1628 1629 222
5743 CONVEX 76 GT_PK(2,2) 253 1630 252 1631 1632 219
5744 CONVEX 77 GT_PK(2,2) 253 1633 220 1631 1634 219
5745 CONVEX 78 GT_PK(2,2) 187 1635 220 1636 1634 219
5746 CONVEX 79 GT_PK(2,2) 291 1637 326 1638 1614 327
5747 CONVEX 80 GT_PK(2,2) 161 1639 160 1640 1475 192
5748 CONVEX 81 GT_PK(2,2) 131 1641 161 1642 1639 160
5749 CONVEX 82 GT_PK(2,2) 131 1643 104 1644 1645 132
5750 CONVEX 83 GT_PK(2,2) 131 1641 161 1644 1646 132
5751 CONVEX 84 GT_PK(2,2) 129 1647 128 1648 1616 158
5752 CONVEX 85 GT_PK(2,2) 223 1649 224 1650 1479 191
5753 CONVEX 86 GT_PK(2,2) 223 1651 256 1652 1629 222
5754 CONVEX 87 GT_PK(2,2) 223 1653 190 1650 1654 191
5755 CONVEX 88 GT_PK(2,2) 223 1653 190 1652 1621 222
5756 CONVEX 89 GT_PK(2,2) 127 1655 155 1656 1657 154
5757 CONVEX 90 GT_PK(2,2) 127 1658 126 1656 1659 154
5758 CONVEX 91 GT_PK(2,2) 127 1660 100 1658 1661 126
5759 CONVEX 92 GT_PK(2,2) 181 1662 182 1663 1664 152
5760 CONVEX 93 GT_PK(2,2) 246 1665 280 1666 1487 247
5761 CONVEX 94 GT_PK(2,2) 124 1667 99 1668 1669 98
5762 CONVEX 95 GT_PK(2,2) 125 1670 124 1671 1672 152
5763 CONVEX 96 GT_PK(2,2) 125 1670 124 1673 1667 99
5764 CONVEX 97 GT_PK(2,2) 125 1673 99 1674 1675 76
5765 CONVEX 98 GT_PK(2,2) 125 1676 100 1674 1677 76
5766 CONVEX 99 GT_PK(2,2) 125 1676 100 1678 1661 126
5767 CONVEX 100 GT_PK(2,2) 75 1679 53 1680 1681 98
5768 CONVEX 101 GT_PK(2,2) 75 1682 99 1680 1669 98
5769 CONVEX 102 GT_PK(2,2) 75 1682 99 1683 1675 76
5770 CONVEX 103 GT_PK(2,2) 217 1684 218 1685 1686 186
5771 CONVEX 104 GT_PK(2,2) 217 1687 216 1685 1484 186
5772 CONVEX 105 GT_PK(2,2) 217 1687 216 1688 1689 249
5773 CONVEX 106 GT_PK(2,2) 248 1690 216 1691 1689 249
5774 CONVEX 107 GT_PK(2,2) 248 1692 281 1693 1488 247
5775 CONVEX 108 GT_PK(2,2) 282 1694 316 1695 1696 317
5776 CONVEX 109 GT_PK(2,2) 282 1694 316 1697 1553 281
5777 CONVEX 110 GT_PK(2,2) 282 1698 248 1699 1691 249
5778 CONVEX 111 GT_PK(2,2) 282 1698 248 1697 1692 281
5779 CONVEX 112 GT_PK(2,2) 314 1700 280 1701 1489 315
5780 CONVEX 113 GT_PK(2,2) 12 1702 27 1703 1704 13
5781 CONVEX 114 GT_PK(2,2) 35 1705 56 1706 1707 34
5782 CONVEX 115 GT_PK(2,2) 79 1708 56 1709 1710 80
5783 CONVEX 116 GT_PK(2,2) 79 1711 34 1712 1713 55
5784 CONVEX 117 GT_PK(2,2) 79 1708 56 1711 1707 34
5785 CONVEX 118 GT_PK(2,2) 43 1714 25 1715 1716 44
5786 CONVEX 119 GT_PK(2,2) 43 1717 65 1715 1718 44
5787 CONVEX 120 GT_PK(2,2) 43 1719 64 1717 1491 65
5788 CONVEX 121 GT_PK(2,2) 22 1720 21 1721 1499 7
5789 CONVEX 122 GT_PK(2,2) 22 1722 8 1721 1723 7
5790 CONVEX 123 GT_PK(2,2) 22 1722 8 1724 1725 23
5791 CONVEX 124 GT_PK(2,2) 22 1724 23 1726 1727 41
5792 CONVEX 125 GT_PK(2,2) 1427 1728 1428 1729 1501 1442
5793 CONVEX 126 GT_PK(2,2) 1427 1730 1408 1731 1504 1426
5794 CONVEX 127 GT_PK(2,2) 1427 1728 1428 1732 1733 1409
5795 CONVEX 128 GT_PK(2,2) 1427 1730 1408 1732 1734 1409
5796 CONVEX 129 GT_PK(2,2) 1386 1735 1385 1736 1576 1407
5797 CONVEX 130 GT_PK(2,2) 1386 1737 1408 1736 1505 1407
5798 CONVEX 131 GT_PK(2,2) 885 1738 845 1739 1590 846
5799 CONVEX 132 GT_PK(2,2) 1193 1740 1192 1741 1742 1158
5800 CONVEX 133 GT_PK(2,2) 1429 1743 1428 1744 1502 1443
5801 CONVEX 134 GT_PK(2,2) 1391 1745 1390 1746 1747 1412
5802 CONVEX 135 GT_PK(2,2) 1248 1748 1279 1749 1582 1247
5803 CONVEX 136 GT_PK(2,2) 1183 1750 1149 1751 1752 1148
5804 CONVEX 137 GT_PK(2,2) 1183 1750 1149 1753 1754 1184
5805 CONVEX 138 GT_PK(2,2) 1187 1755 1188 1756 1757 1221
5806 CONVEX 139 GT_PK(2,2) 468 1758 429 1759 1557 467
5807 CONVEX 140 GT_PK(2,2) 470 1760 469 1761 1762 431
5808 CONVEX 141 GT_PK(2,2) 507 1763 508 1764 1765 546
5809 CONVEX 142 GT_PK(2,2) 507 1766 545 1764 1767 546
5810 CONVEX 143 GT_PK(2,2) 507 1768 470 1769 1760 469
5811 CONVEX 144 GT_PK(2,2) 507 1768 470 1763 1770 508
5812 CONVEX 145 GT_PK(2,2) 507 1771 468 1769 1772 469
5813 CONVEX 146 GT_PK(2,2) 704 1773 745 1774 1522 705
5814 CONVEX 147 GT_PK(2,2) 704 1773 745 1775 1776 744
5815 CONVEX 148 GT_PK(2,2) 585 1777 545 1778 1767 546
5816 CONVEX 149 GT_PK(2,2) 898 1779 937 1780 1781 938
5817 CONVEX 150 GT_PK(2,2) 783 1782 784 1783 1463 823
5818 CONVEX 151 GT_PK(2,2) 783 1784 745 1782 1525 784
5819 CONVEX 152 GT_PK(2,2) 783 1784 745 1785 1776 744
5820 CONVEX 153 GT_PK(2,2) 783 1786 782 1785 1528 744
5821 CONVEX 154 GT_PK(2,2) 783 1783 823 1787 1788 822
5822 CONVEX 155 GT_PK(2,2) 783 1786 782 1787 1789 822
5823 CONVEX 156 GT_PK(2,2) 1263 1790 1262 1791 1536 1230
5824 CONVEX 157 GT_PK(2,2) 1263 1792 1231 1791 1793 1230
5825 CONVEX 158 GT_PK(2,2) 1263 1792 1231 1794 1548 1264
5826 CONVEX 159 GT_PK(2,2) 897 1795 936 1796 1797 896
5827 CONVEX 160 GT_PK(2,2) 897 1795 936 1798 1550 937
5828 CONVEX 161 GT_PK(2,2) 897 1799 898 1800 1801 858
5829 CONVEX 162 GT_PK(2,2) 897 1799 898 1798 1779 937
5830 CONVEX 163 GT_PK(2,2) 818 1802 779 1803 1804 778
5831 CONVEX 164 GT_PK(2,2) 821 1805 820 1806 1807 781
5832 CONVEX 165 GT_PK(2,2) 821 1808 782 1809 1789 822
5833 CONVEX 166 GT_PK(2,2) 821 1808 782 1806 1530 781
5834 CONVEX 167 GT_PK(2,2) 940 1810 939 1811 1812 978
5835 CONVEX 168 GT_PK(2,2) 940 1810 939 1813 1814 900
5836 CONVEX 169 GT_PK(2,2) 902 1815 942 1816 1817 903
5837 CONVEX 170 GT_PK(2,2) 902 1815 942 1818 1819 941
5838 CONVEX 171 GT_PK(2,2) 976 1820 937 1821 1781 938
5839 CONVEX 172 GT_PK(2,2) 976 1820 937 1822 1552 975
5840 CONVEX 173 GT_PK(2,2) 352 1823 316 1824 1696 317
5841 CONVEX 174 GT_PK(2,2) 430 1825 392 1826 1827 429
5842 CONVEX 175 GT_PK(2,2) 430 1828 469 1829 1762 431
5843 CONVEX 176 GT_PK(2,2) 430 1830 468 1826 1758 429
5844 CONVEX 177 GT_PK(2,2) 430 1830 468 1828 1772 469
5845 CONVEX 178 GT_PK(2,2) 393 1831 430 1832 1829 431
5846 CONVEX 179 GT_PK(2,2) 393 1831 430 1833 1825 392
5847 CONVEX 180 GT_PK(2,2) 391 1834 392 1835 1827 429
5848 CONVEX 181 GT_PK(2,2) 391 1836 428 1837 1838 390
5849 CONVEX 182 GT_PK(2,2) 391 1836 428 1835 1555 429
5850 CONVEX 183 GT_PK(2,2) 391 1839 354 1837 1840 390
5851 CONVEX 184 GT_PK(2,2) 391 1834 392 1841 1842 355
5852 CONVEX 185 GT_PK(2,2) 391 1839 354 1841 1562 355
5853 CONVEX 186 GT_PK(2,2) 318 1843 319 1844 1845 284
5854 CONVEX 187 GT_PK(2,2) 318 1843 319 1846 1561 354
5855 CONVEX 188 GT_PK(2,2) 285 1847 319 1848 1558 320
5856 CONVEX 189 GT_PK(2,2) 285 1849 284 1850 1851 251
5857 CONVEX 190 GT_PK(2,2) 285 1847 319 1849 1845 284
5858 CONVEX 191 GT_PK(2,2) 707 1852 706 1853 1568 747
5859 CONVEX 192 GT_PK(2,2) 707 1852 706 1854 1572 668
5860 CONVEX 193 GT_PK(2,2) 786 1855 746 1856 1857 785
5861 CONVEX 194 GT_PK(2,2) 786 1855 746 1858 1569 747
5862 CONVEX 195 GT_PK(2,2) 1265 1859 1233 1860 1861 1234
5863 CONVEX 196 GT_PK(2,2) 1201 1862 1233 1863 1861 1234
5864 CONVEX 197 GT_PK(2,2) 1201 1862 1233 1864 1865 1200
5865 CONVEX 198 GT_PK(2,2) 1134 1866 1135 1867 1868 1099
5866 CONVEX 199 GT_PK(2,2) 1132 1869 1166 1870 1871 1131
5867 CONVEX 200 GT_PK(2,2) 1095 1872 1059 1873 1563 1058
5868 CONVEX 201 GT_PK(2,2) 948 1874 909 1875 1876 910
5869 CONVEX 202 GT_PK(2,2) 1103 1877 1138 1878 1879 1102
5870 CONVEX 203 GT_PK(2,2) 717 1880 756 1881 1882 757
5871 CONVEX 204 GT_PK(2,2) 717 1883 677 1884 1885 678
5872 CONVEX 205 GT_PK(2,2) 717 1880 756 1886 1887 716
5873 CONVEX 206 GT_PK(2,2) 717 1883 677 1886 1888 716
5874 CONVEX 207 GT_PK(2,2) 796 1889 756 1890 1882 757
5875 CONVEX 208 GT_PK(2,2) 796 1891 797 1890 1892 757
5876 CONVEX 209 GT_PK(2,2) 796 1891 797 1893 1894 836
5877 CONVEX 210 GT_PK(2,2) 796 1895 835 1893 1896 836
5878 CONVEX 211 GT_PK(2,2) 599 1897 559 1898 1899 598
5879 CONVEX 212 GT_PK(2,2) 759 1900 760 1901 1902 720
5880 CONVEX 213 GT_PK(2,2) 759 1903 719 1901 1904 720
5881 CONVEX 214 GT_PK(2,2) 718 1905 678 1906 1907 679
5882 CONVEX 215 GT_PK(2,2) 718 1908 719 1906 1909 679
5883 CONVEX 216 GT_PK(2,2) 718 1910 717 1911 1881 757
5884 CONVEX 217 GT_PK(2,2) 718 1910 717 1905 1884 678
5885 CONVEX 218 GT_PK(2,2) 721 1912 760 1913 1902 720
5886 CONVEX 219 GT_PK(2,2) 721 1914 681 1913 1915 720
5887 CONVEX 220 GT_PK(2,2) 721 1914 681 1916 1917 682
5888 CONVEX 221 GT_PK(2,2) 721 1918 761 1912 1919 760
5889 CONVEX 222 GT_PK(2,2) 680 1920 640 1921 1922 641
5890 CONVEX 223 GT_PK(2,2) 680 1923 681 1921 1924 641
5891 CONVEX 224 GT_PK(2,2) 680 1920 640 1925 1926 679
5892 CONVEX 225 GT_PK(2,2) 680 1923 681 1927 1915 720
5893 CONVEX 226 GT_PK(2,2) 680 1928 719 1925 1909 679
5894 CONVEX 227 GT_PK(2,2) 680 1928 719 1927 1904 720
5895 CONVEX 228 GT_PK(2,2) 1425 1929 1426 1930 1506 1407
5896 CONVEX 229 GT_PK(2,2) 1425 1931 1406 1930 1575 1407
5897 CONVEX 230 GT_PK(2,2) 1425 1931 1406 1932 1577 1424
5898 CONVEX 231 GT_PK(2,2) 1425 1929 1426 1933 1456 1440
5899 CONVEX 232 GT_PK(2,2) 1425 1933 1440 1934 1935 1439
5900 CONVEX 233 GT_PK(2,2) 1425 1932 1424 1934 1936 1439
5901 CONVEX 234 GT_PK(2,2) 1384 1937 1361 1938 1939 1385
5902 CONVEX 235 GT_PK(2,2) 1384 1940 1405 1941 1942 1383
5903 CONVEX 236 GT_PK(2,2) 1384 1943 1406 1940 1578 1405
5904 CONVEX 237 GT_PK(2,2) 1384 1943 1406 1938 1574 1385
5905 CONVEX 238 GT_PK(2,2) 971 1944 970 1945 1946 1009
5906 CONVEX 239 GT_PK(2,2) 932 1947 970 1948 1949 931
5907 CONVEX 240 GT_PK(2,2) 932 1950 971 1951 1952 933
5908 CONVEX 241 GT_PK(2,2) 932 1950 971 1947 1944 970
5909 CONVEX 242 GT_PK(2,2) 969 1953 970 1954 1949 931
5910 CONVEX 243 GT_PK(2,2) 969 1955 930 1954 1956 931
5911 CONVEX 244 GT_PK(2,2) 969 1955 930 1957 1958 968
5912 CONVEX 245 GT_PK(2,2) 895 1959 894 1960 1961 855
5913 CONVEX 246 GT_PK(2,2) 1197 1962 1231 1963 1793 1230
5914 CONVEX 247 GT_PK(2,2) 1197 1964 1196 1963 1584 1230
5915 CONVEX 248 GT_PK(2,2) 1197 1962 1231 1965 1549 1198
5916 CONVEX 249 GT_PK(2,2) 609 1966 610 1967 1968 649
5917 CONVEX 250 GT_PK(2,2) 241 1969 275 1970 1971 242
5918 CONVEX 251 GT_PK(2,2) 241 1972 274 1969 1973 275
5919 CONVEX 252 GT_PK(2,2) 29 1974 14 1975 1976 15
5920 CONVEX 253 GT_PK(2,2) 66 1977 44 1978 1979 45
5921 CONVEX 254 GT_PK(2,2) 66 1980 65 1977 1718 44
5922 CONVEX 255 GT_PK(2,2) 460 1981 459 1982 1983 498
5923 CONVEX 256 GT_PK(2,2) 276 1984 275 1985 1971 242
5924 CONVEX 257 GT_PK(2,2) 455 1986 454 1987 1988 416
5925 CONVEX 258 GT_PK(2,2) 455 1986 454 1989 1990 493
5926 CONVEX 259 GT_PK(2,2) 307 1991 306 1992 1993 342
5927 CONVEX 260 GT_PK(2,2) 310 1994 345 1995 1996 346
5928 CONVEX 261 GT_PK(2,2) 310 1997 276 1998 1984 275
5929 CONVEX 262 GT_PK(2,2) 417 1999 455 2000 1987 416
5930 CONVEX 263 GT_PK(2,2) 417 1999 455 2001 2002 456
5931 CONVEX 264 GT_PK(2,2) 417 2003 379 2000 2004 416
5932 CONVEX 265 GT_PK(2,2) 417 2003 379 2005 2006 380
5933 CONVEX 266 GT_PK(2,2) 343 2007 307 2008 2009 308
5934 CONVEX 267 GT_PK(2,2) 343 2007 307 2010 1992 342
5935 CONVEX 268 GT_PK(2,2) 343 2011 379 2010 2012 342
5936 CONVEX 269 GT_PK(2,2) 343 2011 379 2013 2006 380
5937 CONVEX 270 GT_PK(2,2) 339 2014 304 2015 2016 303
5938 CONVEX 271 GT_PK(2,2) 341 2017 306 2018 1993 342
5939 CONVEX 272 GT_PK(2,2) 726 2019 727 2020 1595 766
5940 CONVEX 273 GT_PK(2,2) 688 2021 727 2022 1596 728
5941 CONVEX 274 GT_PK(2,2) 628 2023 668 2024 2025 629
5942 CONVEX 275 GT_PK(2,2) 628 2023 668 2026 1573 667
5943 CONVEX 276 GT_PK(2,2) 589 2027 628 2028 2024 629
5944 CONVEX 277 GT_PK(2,2) 589 2027 628 2029 2030 588
5945 CONVEX 278 GT_PK(2,2) 364 2031 363 2032 1613 327
5946 CONVEX 279 GT_PK(2,2) 364 2031 363 2033 2034 401
5947 CONVEX 280 GT_PK(2,2) 328 2035 364 2036 2037 365
5948 CONVEX 281 GT_PK(2,2) 328 2035 364 2038 2032 327
5949 CONVEX 282 GT_PK(2,2) 329 2039 365 2040 1605 366
5950 CONVEX 283 GT_PK(2,2) 329 2041 330 2040 2042 366
5951 CONVEX 284 GT_PK(2,2) 329 2043 328 2039 2036 365
5952 CONVEX 285 GT_PK(2,2) 329 2043 328 2044 2045 293
5953 CONVEX 286 GT_PK(2,2) 367 2046 330 2047 2042 366
5954 CONVEX 287 GT_PK(2,2) 601 2048 640 2049 1922 641
5955 CONVEX 288 GT_PK(2,2) 562 2050 522 2051 2052 561
5956 CONVEX 289 GT_PK(2,2) 562 2053 601 2051 2054 561
5957 CONVEX 290 GT_PK(2,2) 523 2055 562 2056 2050 522
5958 CONVEX 291 GT_PK(2,2) 523 2055 562 2057 2058 563
5959 CONVEX 292 GT_PK(2,2) 521 2059 522 2060 2052 561
5960 CONVEX 293 GT_PK(2,2) 397 2061 398 2062 2063 360
5961 CONVEX 294 GT_PK(2,2) 437 2064 398 2065 2066 399
5962 CONVEX 295 GT_PK(2,2) 361 2067 398 2068 2063 360
5963 CONVEX 296 GT_PK(2,2) 361 2069 325 2070 1610 362
5964 CONVEX 297 GT_PK(2,2) 361 2070 362 2071 2072 399
5965 CONVEX 298 GT_PK(2,2) 361 2067 398 2071 2066 399
5966 CONVEX 299 GT_PK(2,2) 286 2073 322 2074 2075 321
5967 CONVEX 300 GT_PK(2,2) 359 2076 397 2077 2078 396
5968 CONVEX 301 GT_PK(2,2) 359 2076 397 2079 2062 360
5969 CONVEX 302 GT_PK(2,2) 358 2080 321 2081 2082 357
5970 CONVEX 303 GT_PK(2,2) 358 2083 322 2080 2075 321
5971 CONVEX 304 GT_PK(2,2) 358 2084 395 2081 1471 357
5972 CONVEX 305 GT_PK(2,2) 358 2085 359 2083 2086 322
5973 CONVEX 306 GT_PK(2,2) 358 2084 395 2087 2088 396
5974 CONVEX 307 GT_PK(2,2) 358 2085 359 2087 2077 396
5975 CONVEX 308 GT_PK(2,2) 402 2089 403 2090 1603 365
5976 CONVEX 309 GT_PK(2,2) 402 2091 364 2092 2033 401
5977 CONVEX 310 GT_PK(2,2) 402 2091 364 2090 2037 365
5978 CONVEX 311 GT_PK(2,2) 400 2093 439 2094 2095 401
5979 CONVEX 312 GT_PK(2,2) 400 2096 363 2094 2034 401
5980 CONVEX 313 GT_PK(2,2) 400 2097 362 2098 2072 399
5981 CONVEX 314 GT_PK(2,2) 400 2096 363 2097 1615 362
5982 CONVEX 315 GT_PK(2,2) 438 2099 439 2100 1607 477
5983 CONVEX 316 GT_PK(2,2) 438 2101 437 2102 2065 399
5984 CONVEX 317 GT_PK(2,2) 438 2103 400 2102 2098 399
5985 CONVEX 318 GT_PK(2,2) 438 2103 400 2099 2093 439
5986 CONVEX 319 GT_PK(2,2) 101 2104 77 2105 2106 102
5987 CONVEX 320 GT_PK(2,2) 101 2107 129 2105 2108 102
5988 CONVEX 321 GT_PK(2,2) 101 2107 129 2109 1647 128
5989 CONVEX 322 GT_PK(2,2) 188 2110 189 2111 1624 156
5990 CONVEX 323 GT_PK(2,2) 188 2112 187 2111 2113 156
5991 CONVEX 324 GT_PK(2,2) 188 2112 187 2114 1635 220
5992 CONVEX 325 GT_PK(2,2) 254 2115 253 2116 1633 220
5993 CONVEX 326 GT_PK(2,2) 254 2117 255 2118 2119 289
5994 CONVEX 327 GT_PK(2,2) 287 2120 253 2121 1630 252
5995 CONVEX 328 GT_PK(2,2) 287 2122 286 2121 2123 252
5996 CONVEX 329 GT_PK(2,2) 287 2122 286 2124 2073 322
5997 CONVEX 330 GT_PK(2,2) 292 2125 291 2126 1638 327
5998 CONVEX 331 GT_PK(2,2) 292 2127 258 2128 1448 293
5999 CONVEX 332 GT_PK(2,2) 292 2129 328 2128 2045 293
6000 CONVEX 333 GT_PK(2,2) 292 2129 328 2126 2038 327
6001 CONVEX 334 GT_PK(2,2) 257 2130 224 2131 1481 258
6002 CONVEX 335 GT_PK(2,2) 257 2132 292 2131 2127 258
6003 CONVEX 336 GT_PK(2,2) 257 2132 292 2133 2125 291
6004 CONVEX 337 GT_PK(2,2) 257 2133 291 2134 2135 256
6005 CONVEX 338 GT_PK(2,2) 257 2136 223 2134 1651 256
6006 CONVEX 339 GT_PK(2,2) 257 2136 223 2130 1649 224
6007 CONVEX 340 GT_PK(2,2) 290 2137 325 2138 1609 326
6008 CONVEX 341 GT_PK(2,2) 290 2139 291 2138 1637 326
6009 CONVEX 342 GT_PK(2,2) 290 2137 325 2140 2141 289
6010 CONVEX 343 GT_PK(2,2) 290 2142 255 2140 2119 289
6011 CONVEX 344 GT_PK(2,2) 290 2142 255 2143 1627 256
6012 CONVEX 345 GT_PK(2,2) 290 2139 291 2143 2135 256
6013 CONVEX 346 GT_PK(2,2) 103 2144 131 2145 1643 104
6014 CONVEX 347 GT_PK(2,2) 103 2146 77 2147 2106 102
6015 CONVEX 348 GT_PK(2,2) 103 2148 54 2146 2149 77
6016 CONVEX 349 GT_PK(2,2) 130 2150 129 2151 2108 102
6017 CONVEX 350 GT_PK(2,2) 130 2152 131 2153 1642 160
6018 CONVEX 351 GT_PK(2,2) 130 2154 103 2151 2147 102
6019 CONVEX 352 GT_PK(2,2) 130 2154 103 2152 2144 131
6020 CONVEX 353 GT_PK(2,2) 159 2155 190 2156 1654 191
6021 CONVEX 354 GT_PK(2,2) 159 2157 130 2158 2150 129
6022 CONVEX 355 GT_PK(2,2) 159 2155 190 2159 1623 158
6023 CONVEX 356 GT_PK(2,2) 159 2158 129 2159 1648 158
6024 CONVEX 357 GT_PK(2,2) 159 2160 160 2156 1476 191
6025 CONVEX 358 GT_PK(2,2) 159 2157 130 2160 2153 160
6026 CONVEX 359 GT_PK(2,2) 214 2161 183 2162 2163 182
6027 CONVEX 360 GT_PK(2,2) 214 2164 246 2165 1666 247
6028 CONVEX 361 GT_PK(2,2) 184 2166 183 2167 2168 154
6029 CONVEX 362 GT_PK(2,2) 184 2169 216 2170 1483 185
6030 CONVEX 363 GT_PK(2,2) 184 2171 155 2167 1657 154
6031 CONVEX 364 GT_PK(2,2) 184 2170 185 2171 2172 155
6032 CONVEX 365 GT_PK(2,2) 153 2173 183 2174 2163 182
6033 CONVEX 366 GT_PK(2,2) 153 2174 182 2175 1664 152
6034 CONVEX 367 GT_PK(2,2) 153 2176 126 2177 1659 154
6035 CONVEX 368 GT_PK(2,2) 153 2173 183 2177 2168 154
6036 CONVEX 369 GT_PK(2,2) 153 2178 125 2175 1671 152
6037 CONVEX 370 GT_PK(2,2) 153 2178 125 2176 1678 126
6038 CONVEX 371 GT_PK(2,2) 151 2179 181 2180 1663 152
6039 CONVEX 372 GT_PK(2,2) 151 2181 124 2180 1672 152
6040 CONVEX 373 GT_PK(2,2) 73 2182 52 2183 2184 33
6041 CONVEX 374 GT_PK(2,2) 250 2185 217 2186 1684 218
6042 CONVEX 375 GT_PK(2,2) 250 2187 284 2188 1851 251
6043 CONVEX 376 GT_PK(2,2) 250 2186 218 2188 2189 251
6044 CONVEX 377 GT_PK(2,2) 250 2185 217 2190 1688 249
6045 CONVEX 378 GT_PK(2,2) 215 2191 248 2192 1690 216
6046 CONVEX 379 GT_PK(2,2) 215 2193 184 2192 2169 216
6047 CONVEX 380 GT_PK(2,2) 215 2193 184 2194 2166 183
6048 CONVEX 381 GT_PK(2,2) 215 2195 214 2194 2161 183
6049 CONVEX 382 GT_PK(2,2) 215 2191 248 2196 1693 247
6050 CONVEX 383 GT_PK(2,2) 215 2195 214 2196 2165 247
6051 CONVEX 384 GT_PK(2,2) 279 2197 314 2198 1700 280
6052 CONVEX 385 GT_PK(2,2) 279 2199 246 2200 2201 245
6053 CONVEX 386 GT_PK(2,2) 279 2199 246 2198 1665 280
6054 CONVEX 387 GT_PK(2,2) 279 2202 278 2200 2203 245
6055 CONVEX 388 GT_PK(2,2) 279 2202 278 2204 2205 313
6056 CONVEX 389 GT_PK(2,2) 279 2197 314 2204 2206 313
6057 CONVEX 390 GT_PK(2,2) 11 2207 25 2208 1451 0
6058 CONVEX 391 GT_PK(2,2) 57 2209 35 2210 1705 56
6059 CONVEX 392 GT_PK(2,2) 57 2210 56 2211 1710 80
6060 CONVEX 393 GT_PK(2,2) 57 2212 17 2213 1455 36
6061 CONVEX 394 GT_PK(2,2) 57 2209 35 2212 2214 17
6062 CONVEX 395 GT_PK(2,2) 105 2215 79 2216 1709 80
6063 CONVEX 396 GT_PK(2,2) 105 2215 79 2217 2218 104
6064 CONVEX 397 GT_PK(2,2) 105 2219 106 2216 2220 80
6065 CONVEX 398 GT_PK(2,2) 105 2217 104 2221 1645 132
6066 CONVEX 399 GT_PK(2,2) 78 2222 79 2223 2218 104
6067 CONVEX 400 GT_PK(2,2) 78 2224 103 2223 2145 104
6068 CONVEX 401 GT_PK(2,2) 78 2224 103 2225 2148 54
6069 CONVEX 402 GT_PK(2,2) 78 2225 54 2226 2227 55
6070 CONVEX 403 GT_PK(2,2) 78 2222 79 2226 1712 55
6071 CONVEX 404 GT_PK(2,2) 162 2228 161 2229 1646 132
6072 CONVEX 405 GT_PK(2,2) 302 2230 268 2231 2232 303
6073 CONVEX 406 GT_PK(2,2) 37 2233 18 2234 1454 36
6074 CONVEX 407 GT_PK(2,2) 37 2235 19 2233 2236 18
6075 CONVEX 408 GT_PK(2,2) 201 2237 202 2238 2239 234
6076 CONVEX 409 GT_PK(2,2) 201 2240 233 2238 2241 234
6077 CONVEX 410 GT_PK(2,2) 87 2242 64 2243 1492 88
6078 CONVEX 411 GT_PK(2,2) 139 2244 168 2245 2246 169
6079 CONVEX 412 GT_PK(2,2) 9 2247 8 2248 1725 23
6080 CONVEX 413 GT_PK(2,2) 24 2249 43 2250 1714 25
6081 CONVEX 414 GT_PK(2,2) 24 2250 25 2251 1450 10
6082 CONVEX 415 GT_PK(2,2) 24 2252 9 2251 2253 10
6083 CONVEX 416 GT_PK(2,2) 24 2252 9 2254 2248 23
6084 CONVEX 417 GT_PK(2,2) 42 2255 23 2256 1727 41
6085 CONVEX 418 GT_PK(2,2) 42 2257 43 2258 1719 64
6086 CONVEX 419 GT_PK(2,2) 42 2259 24 2255 2254 23
6087 CONVEX 420 GT_PK(2,2) 42 2259 24 2257 2249 43
6088 CONVEX 421 GT_PK(2,2) 39 2260 21 2261 1498 20
6089 CONVEX 422 GT_PK(2,2) 1441 2262 1427 2263 1729 1442
6090 CONVEX 423 GT_PK(2,2) 1441 2264 1426 2265 1457 4
6091 CONVEX 424 GT_PK(2,2) 1441 2262 1427 2264 1731 1426
6092 CONVEX 425 GT_PK(2,2) 1387 2266 1408 2267 1734 1409
6093 CONVEX 426 GT_PK(2,2) 1387 2268 1386 2266 1737 1408
6094 CONVEX 427 GT_PK(2,2) 1337 2269 1309 2270 2271 1336
6095 CONVEX 428 GT_PK(2,2) 1337 2269 1309 2272 2273 1310
6096 CONVEX 429 GT_PK(2,2) 1362 2274 1361 2275 1939 1385
6097 CONVEX 430 GT_PK(2,2) 1362 2276 1386 2275 1735 1385
6098 CONVEX 431 GT_PK(2,2) 1362 2274 1361 2277 2278 1336
6099 CONVEX 432 GT_PK(2,2) 1362 2279 1337 2277 2270 1336
6100 CONVEX 433 GT_PK(2,2) 1076 2280 1075 2281 2282 1112
6101 CONVEX 434 GT_PK(2,2) 1000 2283 1001 2284 2285 1039
6102 CONVEX 435 GT_PK(2,2) 1040 2286 1001 2287 2285 1039
6103 CONVEX 436 GT_PK(2,2) 1040 2288 1078 2289 2290 1041
6104 CONVEX 437 GT_PK(2,2) 927 2291 966 2292 2293 928
6105 CONVEX 438 GT_PK(2,2) 927 2294 888 2292 2295 928
6106 CONVEX 439 GT_PK(2,2) 927 2296 887 2294 2297 888
6107 CONVEX 440 GT_PK(2,2) 925 2298 924 2299 2300 885
6108 CONVEX 441 GT_PK(2,2) 1415 2301 1433 2302 2303 1434
6109 CONVEX 442 GT_PK(2,2) 1415 2304 1414 2301 2305 1433
6110 CONVEX 443 GT_PK(2,2) 1432 2306 1414 2307 2305 1433
6111 CONVEX 444 GT_PK(2,2) 1222 2308 1188 2309 2310 1189
6112 CONVEX 445 GT_PK(2,2) 1222 2308 1188 2311 1757 1221
6113 CONVEX 446 GT_PK(2,2) 1348 2312 1373 2313 1508 1397
6114 CONVEX 447 GT_PK(2,2) 1347 2314 1348 2315 2312 1373
6115 CONVEX 448 GT_PK(2,2) 1347 2314 1348 2316 2317 1320
6116 CONVEX 449 GT_PK(2,2) 1416 2318 1395 2319 2320 1417
6117 CONVEX 450 GT_PK(2,2) 1371 2321 1345 2322 2323 1346
6118 CONVEX 451 GT_PK(2,2) 1371 2321 1345 2324 2325 1370
6119 CONVEX 452 GT_PK(2,2) 1372 2326 1347 2327 2328 1346
6120 CONVEX 453 GT_PK(2,2) 1372 2326 1347 2329 2315 1373
6121 CONVEX 454 GT_PK(2,2) 1372 2330 1371 2327 2322 1346
6122 CONVEX 455 GT_PK(2,2) 1372 2330 1371 2331 2332 1395
6123 CONVEX 456 GT_PK(2,2) 1372 2329 1373 2333 1507 1396
6124 CONVEX 457 GT_PK(2,2) 1372 2333 1396 2334 2335 1417
6125 CONVEX 458 GT_PK(2,2) 1372 2331 1395 2334 2320 1417
6126 CONVEX 459 GT_PK(2,2) 1344 2336 1369 2337 2338 1370
6127 CONVEX 460 GT_PK(2,2) 1344 2339 1345 2337 2325 1370
6128 CONVEX 461 GT_PK(2,2) 1344 2340 1343 2341 2342 1316
6129 CONVEX 462 GT_PK(2,2) 1344 2340 1343 2336 2343 1369
6130 CONVEX 463 GT_PK(2,2) 1317 2344 1344 2345 2341 1316
6131 CONVEX 464 GT_PK(2,2) 1317 2344 1344 2346 2339 1345
6132 CONVEX 465 GT_PK(2,2) 1444 2347 1429 2348 1744 1443
6133 CONVEX 466 GT_PK(2,2) 1444 2349 1430 2350 1516 1445
6134 CONVEX 467 GT_PK(2,2) 1444 2347 1429 2349 2351 1430
6135 CONVEX 468 GT_PK(2,2) 1410 2352 1428 2353 1733 1409
6136 CONVEX 469 GT_PK(2,2) 1410 2354 1429 2352 1743 1428
6137 CONVEX 470 GT_PK(2,2) 1368 2355 1369 2356 2357 1392
6138 CONVEX 471 GT_PK(2,2) 1368 2358 1391 2356 2359 1392
6139 CONVEX 472 GT_PK(2,2) 1368 2360 1343 2355 2343 1369
6140 CONVEX 473 GT_PK(2,2) 1413 2361 1432 2362 2306 1414
6141 CONVEX 474 GT_PK(2,2) 1413 2363 1431 2364 1511 1412
6142 CONVEX 475 GT_PK(2,2) 1413 2365 1391 2364 1746 1412
6143 CONVEX 476 GT_PK(2,2) 1413 2362 1414 2366 2367 1392
6144 CONVEX 477 GT_PK(2,2) 1413 2365 1391 2366 2359 1392
6145 CONVEX 478 GT_PK(2,2) 1413 2363 1431 2368 1514 1446
6146 CONVEX 479 GT_PK(2,2) 1413 2361 1432 2368 2369 1446
6147 CONVEX 480 GT_PK(2,2) 1113 2370 1112 2371 2372 1148
6148 CONVEX 481 GT_PK(2,2) 1113 2373 1149 2371 1752 1148
6149 CONVEX 482 GT_PK(2,2) 1113 2374 1076 2370 2281 1112
6150 CONVEX 483 GT_PK(2,2) 1150 2375 1185 2376 1519 1184
6151 CONVEX 484 GT_PK(2,2) 1150 2377 1149 2376 1754 1184
6152 CONVEX 485 GT_PK(2,2) 1079 2378 1078 2379 2380 1115
6153 CONVEX 486 GT_PK(2,2) 1079 2381 1116 2379 2382 1115
6154 CONVEX 487 GT_PK(2,2) 1079 2381 1116 2383 2384 1080
6155 CONVEX 488 GT_PK(2,2) 1079 2378 1078 2385 2290 1041
6156 CONVEX 489 GT_PK(2,2) 1280 2386 1248 2387 1748 1279
6157 CONVEX 490 GT_PK(2,2) 1280 2388 1309 2387 2389 1279
6158 CONVEX 491 GT_PK(2,2) 1280 2388 1309 2390 2273 1310
6159 CONVEX 492 GT_PK(2,2) 1217 2391 1183 2392 2393 1216
6160 CONVEX 493 GT_PK(2,2) 1217 2394 1218 2395 2396 1250
6161 CONVEX 494 GT_PK(2,2) 1217 2394 1218 2397 1518 1184
6162 CONVEX 495 GT_PK(2,2) 1217 2391 1183 2397 1753 1184
6163 CONVEX 496 GT_PK(2,2) 1253 2398 1284 2399 2400 1285
6164 CONVEX 497 GT_PK(2,2) 1253 2401 1252 2398 2402 1284
6165 CONVEX 498 GT_PK(2,2) 1311 2403 1312 2404 2405 1339
6166 CONVEX 499 GT_PK(2,2) 1311 2406 1282 2403 2407 1312
6167 CONVEX 500 GT_PK(2,2) 1153 2408 1187 2409 2410 1152
6168 CONVEX 501 GT_PK(2,2) 1153 2408 1187 2411 1755 1188
6169 CONVEX 502 GT_PK(2,2) 1154 2412 1188 2413 2310 1189
6170 CONVEX 503 GT_PK(2,2) 1154 2414 1153 2412 2411 1188
6171 CONVEX 504 GT_PK(2,2) 1220 2415 1187 2416 1756 1221
6172 CONVEX 505 GT_PK(2,2) 1220 2417 1253 2416 2418 1221
6173 CONVEX 506 GT_PK(2,2) 1220 2419 1252 2420 2421 1219
6174 CONVEX 507 GT_PK(2,2) 1220 2417 1253 2419 2401 1252
6175 CONVEX 508 GT_PK(2,2) 665 2422 704 2423 1774 705
6176 CONVEX 509 GT_PK(2,2) 547 2424 508 2425 1765 546
6177 CONVEX 510 GT_PK(2,2) 586 2426 587 2427 2428 625
6178 CONVEX 511 GT_PK(2,2) 586 2429 585 2427 2430 625
6179 CONVEX 512 GT_PK(2,2) 586 2429 585 2431 1778 546
6180 CONVEX 513 GT_PK(2,2) 586 2432 547 2431 2425 546
6181 CONVEX 514 GT_PK(2,2) 586 2432 547 2426 2433 587
6182 CONVEX 515 GT_PK(2,2) 624 2434 585 2435 2430 625
6183 CONVEX 516 GT_PK(2,2) 899 2436 898 2437 1780 938
6184 CONVEX 517 GT_PK(2,2) 899 2438 939 2437 2439 938
6185 CONVEX 518 GT_PK(2,2) 899 2438 939 2440 1814 900
6186 CONVEX 519 GT_PK(2,2) 739 2441 779 2442 1804 778
6187 CONVEX 520 GT_PK(2,2) 739 2443 738 2442 2444 778
6188 CONVEX 521 GT_PK(2,2) 819 2445 818 2446 2447 858
6189 CONVEX 522 GT_PK(2,2) 819 2445 818 2448 1802 779
6190 CONVEX 523 GT_PK(2,2) 623 2449 624 2450 2451 663
6191 CONVEX 524 GT_PK(2,2) 742 2452 743 2453 1531 781
6192 CONVEX 525 GT_PK(2,2) 742 2454 741 2453 2455 781
6193 CONVEX 526 GT_PK(2,2) 780 2456 820 2457 1807 781
6194 CONVEX 527 GT_PK(2,2) 780 2458 741 2457 2455 781
6195 CONVEX 528 GT_PK(2,2) 780 2459 819 2456 2460 820
6196 CONVEX 529 GT_PK(2,2) 780 2459 819 2461 2448 779
6197 CONVEX 530 GT_PK(2,2) 662 2462 623 2463 2450 663
6198 CONVEX 531 GT_PK(2,2) 979 2464 1017 2465 2466 978
6199 CONVEX 532 GT_PK(2,2) 979 2467 940 2465 1811 978
6200 CONVEX 533 GT_PK(2,2) 979 2467 940 2468 2469 941
6201 CONVEX 534 GT_PK(2,2) 1056 2470 1057 2471 2472 1094
6202 CONVEX 535 GT_PK(2,2) 1055 2473 1056 2474 2475 1017
6203 CONVEX 536 GT_PK(2,2) 1295 2476 1294 2477 2478 1262
6204 CONVEX 537 GT_PK(2,2) 1295 2479 1263 2477 1790 1262
6205 CONVEX 538 GT_PK(2,2) 1295 2479 1263 2480 1794 1264
6206 CONVEX 539 GT_PK(2,2) 817 2481 818 2482 1803 778
6207 CONVEX 540 GT_PK(2,2) 860 2483 821 2484 1805 820
6208 CONVEX 541 GT_PK(2,2) 860 2485 899 2486 2440 900
6209 CONVEX 542 GT_PK(2,2) 977 2487 939 2488 1812 978
6210 CONVEX 543 GT_PK(2,2) 977 2487 939 2489 2439 938
6211 CONVEX 544 GT_PK(2,2) 977 2490 976 2489 1821 938
6212 CONVEX 545 GT_PK(2,2) 977 2490 976 2491 2492 1015
6213 CONVEX 546 GT_PK(2,2) 980 2493 942 2494 1819 941
6214 CONVEX 547 GT_PK(2,2) 980 2495 979 2496 2497 1019
6215 CONVEX 548 GT_PK(2,2) 980 2495 979 2494 2468 941
6216 CONVEX 549 GT_PK(2,2) 861 2498 821 2499 1809 822
6217 CONVEX 550 GT_PK(2,2) 861 2500 860 2501 2486 900
6218 CONVEX 551 GT_PK(2,2) 861 2500 860 2498 2483 821
6219 CONVEX 552 GT_PK(2,2) 901 2502 940 2503 2469 941
6220 CONVEX 553 GT_PK(2,2) 901 2504 902 2503 1818 941
6221 CONVEX 554 GT_PK(2,2) 901 2502 940 2505 1813 900
6222 CONVEX 555 GT_PK(2,2) 901 2506 861 2505 2501 900
6223 CONVEX 556 GT_PK(2,2) 427 2507 428 2508 1838 390
6224 CONVEX 557 GT_PK(2,2) 356 2509 392 2510 1842 355
6225 CONVEX 558 GT_PK(2,2) 356 2511 393 2509 1833 392
6226 CONVEX 559 GT_PK(2,2) 356 2512 320 2510 1560 355
6227 CONVEX 560 GT_PK(2,2) 353 2513 318 2514 2515 317
6228 CONVEX 561 GT_PK(2,2) 353 2516 352 2514 1824 317
6229 CONVEX 562 GT_PK(2,2) 353 2517 354 2518 1840 390
6230 CONVEX 563 GT_PK(2,2) 353 2513 318 2517 1846 354
6231 CONVEX 564 GT_PK(2,2) 838 2519 839 2520 2521 878
6232 CONVEX 565 GT_PK(2,2) 517 2522 556 2523 2524 557
6233 CONVEX 566 GT_PK(2,2) 516 2525 478 2526 1608 477
6234 CONVEX 567 GT_PK(2,2) 516 2527 517 2525 2528 478
6235 CONVEX 568 GT_PK(2,2) 516 2527 517 2529 2522 556
6236 CONVEX 569 GT_PK(2,2) 596 2530 556 2531 2524 557
6237 CONVEX 570 GT_PK(2,2) 596 2532 597 2531 2533 557
6238 CONVEX 571 GT_PK(2,2) 596 2532 597 2534 2535 636
6239 CONVEX 572 GT_PK(2,2) 714 2536 715 2537 2538 675
6240 CONVEX 573 GT_PK(2,2) 982 2539 983 2540 2541 1021
6241 CONVEX 574 GT_PK(2,2) 982 2542 1020 2540 1466 1021
6242 CONVEX 575 GT_PK(2,2) 982 2543 981 2542 2544 1020
6243 CONVEX 576 GT_PK(2,2) 787 2545 786 2546 2547 826
6244 CONVEX 577 GT_PK(2,2) 787 2545 786 2548 1858 747
6245 CONVEX 578 GT_PK(2,2) 1100 2549 1135 2550 2551 1136
6246 CONVEX 579 GT_PK(2,2) 1100 2549 1135 2552 1868 1099
6247 CONVEX 580 GT_PK(2,2) 1098 2553 1134 2554 1867 1099
6248 CONVEX 581 GT_PK(2,2) 1098 2555 1062 2554 2556 1099
6249 CONVEX 582 GT_PK(2,2) 1133 2557 1134 2558 2559 1168
6250 CONVEX 583 GT_PK(2,2) 1133 2560 1098 2557 2553 1134
6251 CONVEX 584 GT_PK(2,2) 1097 2561 1133 2562 2563 1132
6252 CONVEX 585 GT_PK(2,2) 1097 2561 1133 2564 2560 1098
6253 CONVEX 586 GT_PK(2,2) 1167 2565 1201 2566 1864 1200
6254 CONVEX 587 GT_PK(2,2) 1167 2567 1166 2566 2568 1200
6255 CONVEX 588 GT_PK(2,2) 1167 2569 1132 2567 1869 1166
6256 CONVEX 589 GT_PK(2,2) 1167 2570 1133 2569 2563 1132
6257 CONVEX 590 GT_PK(2,2) 1167 2565 1201 2571 2572 1168
6258 CONVEX 591 GT_PK(2,2) 1167 2570 1133 2571 2558 1168
6259 CONVEX 592 GT_PK(2,2) 1096 2573 1095 2574 1872 1059
6260 CONVEX 593 GT_PK(2,2) 1096 2575 1097 2576 2562 1132
6261 CONVEX 594 GT_PK(2,2) 1096 2576 1132 2577 1870 1131
6262 CONVEX 595 GT_PK(2,2) 1096 2573 1095 2577 2578 1131
6263 CONVEX 596 GT_PK(2,2) 1096 2574 1059 2579 2580 1060
6264 CONVEX 597 GT_PK(2,2) 1096 2575 1097 2579 2581 1060
6265 CONVEX 598 GT_PK(2,2) 1065 2582 1027 2583 2584 1064
6266 CONVEX 599 GT_PK(2,2) 1065 2582 1027 2585 2586 1028
6267 CONVEX 600 GT_PK(2,2) 751 2587 711 2588 2589 712
6268 CONVEX 601 GT_PK(2,2) 1063 2590 1062 2591 2556 1099
6269 CONVEX 602 GT_PK(2,2) 1063 2592 1100 2591 2552 1099
6270 CONVEX 603 GT_PK(2,2) 1063 2592 1100 2593 2594 1064
6271 CONVEX 604 GT_PK(2,2) 1022 2595 1023 2596 2597 1060
6272 CONVEX 605 GT_PK(2,2) 1022 2598 1059 2599 1564 1021
6273 CONVEX 606 GT_PK(2,2) 1022 2598 1059 2596 2580 1060
6274 CONVEX 607 GT_PK(2,2) 1022 2600 983 2599 2541 1021
6275 CONVEX 608 GT_PK(2,2) 985 2601 1023 2602 2603 1024
6276 CONVEX 609 GT_PK(2,2) 949 2604 950 2605 2606 988
6277 CONVEX 610 GT_PK(2,2) 949 2604 950 2607 2608 911
6278 CONVEX 611 GT_PK(2,2) 949 2607 911 2609 2610 910
6279 CONVEX 612 GT_PK(2,2) 949 2611 948 2609 1875 910
6280 CONVEX 613 GT_PK(2,2) 1030 2612 1029 2613 2614 1067
6281 CONVEX 614 GT_PK(2,2) 989 2615 950 2616 2606 988
6282 CONVEX 615 GT_PK(2,2) 989 2617 1027 2616 2618 988
6283 CONVEX 616 GT_PK(2,2) 989 2617 1027 2619 2586 1028
6284 CONVEX 617 GT_PK(2,2) 912 2620 872 2621 2622 873
6285 CONVEX 618 GT_PK(2,2) 912 2623 950 2624 2608 911
6286 CONVEX 619 GT_PK(2,2) 912 2620 872 2624 2625 911
6287 CONVEX 620 GT_PK(2,2) 1206 2626 1207 2627 2628 1173
6288 CONVEX 621 GT_PK(2,2) 758 2629 797 2630 1892 757
6289 CONVEX 622 GT_PK(2,2) 758 2631 718 2630 1911 757
6290 CONVEX 623 GT_PK(2,2) 758 2631 718 2632 1908 719
6291 CONVEX 624 GT_PK(2,2) 758 2633 759 2632 1903 719
6292 CONVEX 625 GT_PK(2,2) 758 2629 797 2634 2635 798
6293 CONVEX 626 GT_PK(2,2) 758 2633 759 2634 2636 798
6294 CONVEX 627 GT_PK(2,2) 875 2637 835 2638 1896 836
6295 CONVEX 628 GT_PK(2,2) 875 2639 914 2640 2641 915
6296 CONVEX 629 GT_PK(2,2) 875 2637 835 2642 2643 874
6297 CONVEX 630 GT_PK(2,2) 875 2639 914 2642 2644 874
6298 CONVEX 631 GT_PK(2,2) 754 2645 714 2646 2536 715
6299 CONVEX 632 GT_PK(2,2) 794 2647 754 2648 2649 793
6300 CONVEX 633 GT_PK(2,2) 638 2650 599 2651 1898 598
6301 CONVEX 634 GT_PK(2,2) 638 2652 677 2653 1885 678
6302 CONVEX 635 GT_PK(2,2) 639 2654 678 2655 1907 679
6303 CONVEX 636 GT_PK(2,2) 639 2656 640 2655 1926 679
6304 CONVEX 637 GT_PK(2,2) 639 2657 638 2654 2653 678
6305 CONVEX 638 GT_PK(2,2) 639 2657 638 2658 2650 599
6306 CONVEX 639 GT_PK(2,2) 560 2659 559 2660 2661 520
6307 CONVEX 640 GT_PK(2,2) 560 2662 599 2659 1897 559
6308 CONVEX 641 GT_PK(2,2) 560 2663 521 2660 2664 520
6309 CONVEX 642 GT_PK(2,2) 560 2663 521 2665 2060 561
6310 CONVEX 643 GT_PK(2,2) 762 2666 761 2667 2668 801
6311 CONVEX 644 GT_PK(2,2) 722 2669 721 2670 1916 682
6312 CONVEX 645 GT_PK(2,2) 722 2669 721 2671 1918 761
6313 CONVEX 646 GT_PK(2,2) 722 2672 683 2670 2673 682
6314 CONVEX 647 GT_PK(2,2) 722 2674 762 2671 2666 761
6315 CONVEX 648 GT_PK(2,2) 1404 2675 1405 2676 1942 1383
6316 CONVEX 649 GT_PK(2,2) 1423 2677 1424 2678 1579 1405
6317 CONVEX 650 GT_PK(2,2) 1423 2679 1404 2678 2675 1405
6318 CONVEX 651 GT_PK(2,2) 1423 2679 1404 2680 2681 1422
6319 CONVEX 652 GT_PK(2,2) 1360 2682 1384 2683 1941 1383
6320 CONVEX 653 GT_PK(2,2) 1360 2682 1384 2684 1937 1361
6321 CONVEX 654 GT_PK(2,2) 1335 2685 1360 2686 2687 1334
6322 CONVEX 655 GT_PK(2,2) 1335 2688 1361 2689 2278 1336
6323 CONVEX 656 GT_PK(2,2) 1335 2685 1360 2688 2684 1361
6324 CONVEX 657 GT_PK(2,2) 1212 2690 1178 2691 2692 1211
6325 CONVEX 658 GT_PK(2,2) 1212 2693 1244 2691 2694 1211
6326 CONVEX 659 GT_PK(2,2) 1179 2695 1212 2696 2697 1213
6327 CONVEX 660 GT_PK(2,2) 1179 2695 1212 2698 2690 1178
6328 CONVEX 661 GT_PK(2,2) 1245 2699 1212 2700 2697 1213
6329 CONVEX 662 GT_PK(2,2) 1245 2699 1212 2701 2693 1244
6330 CONVEX 663 GT_PK(2,2) 1182 2702 1183 2703 2393 1216
6331 CONVEX 664 GT_PK(2,2) 1182 2702 1183 2704 1751 1148
6332 CONVEX 665 GT_PK(2,2) 1147 2705 1112 2706 2372 1148
6333 CONVEX 666 GT_PK(2,2) 1147 2707 1182 2706 2704 1148
6334 CONVEX 667 GT_PK(2,2) 1147 2707 1182 2708 2709 1181
6335 CONVEX 668 GT_PK(2,2) 1308 2710 1278 2711 1580 1279
6336 CONVEX 669 GT_PK(2,2) 1308 2712 1309 2711 2389 1279
6337 CONVEX 670 GT_PK(2,2) 1308 2712 1309 2713 2271 1336
6338 CONVEX 671 GT_PK(2,2) 1308 2714 1335 2713 2689 1336
6339 CONVEX 672 GT_PK(2,2) 1268 2715 1298 2716 2717 1297
6340 CONVEX 673 GT_PK(2,2) 1268 2718 1236 2719 2720 1237
6341 CONVEX 674 GT_PK(2,2) 1268 2721 1269 2719 2722 1237
6342 CONVEX 675 GT_PK(2,2) 1268 2721 1269 2715 2723 1298
6343 CONVEX 676 GT_PK(2,2) 1299 2724 1269 2725 2726 1270
6344 CONVEX 677 GT_PK(2,2) 1299 2724 1269 2727 2723 1298
6345 CONVEX 678 GT_PK(2,2) 1137 2728 1171 2729 2730 1136
6346 CONVEX 679 GT_PK(2,2) 1137 2731 1138 2732 1879 1102
6347 CONVEX 680 GT_PK(2,2) 1169 2733 1134 2734 2559 1168
6348 CONVEX 681 GT_PK(2,2) 1169 2733 1134 2735 1866 1135
6349 CONVEX 682 GT_PK(2,2) 1267 2736 1268 2737 2716 1297
6350 CONVEX 683 GT_PK(2,2) 1267 2736 1268 2738 2718 1236
6351 CONVEX 684 GT_PK(2,2) 1204 2739 1236 2740 2720 1237
6352 CONVEX 685 GT_PK(2,2) 1240 2741 1207 2742 2743 1208
6353 CONVEX 686 GT_PK(2,2) 1271 2744 1240 2745 2746 1272
6354 CONVEX 687 GT_PK(2,2) 1243 2747 1244 2748 2694 1211
6355 CONVEX 688 GT_PK(2,2) 972 2749 971 2750 1952 933
6356 CONVEX 689 GT_PK(2,2) 1083 2751 1046 2752 2753 1045
6357 CONVEX 690 GT_PK(2,2) 1002 2754 1003 2755 2756 964
6358 CONVEX 691 GT_PK(2,2) 1002 2757 1040 2758 2286 1001
6359 CONVEX 692 GT_PK(2,2) 1002 2754 1003 2759 2760 1041
6360 CONVEX 693 GT_PK(2,2) 1002 2757 1040 2759 2289 1041
6361 CONVEX 694 GT_PK(2,2) 1081 2761 1043 2762 2763 1080
6362 CONVEX 695 GT_PK(2,2) 929 2764 930 2765 1958 968
6363 CONVEX 696 GT_PK(2,2) 1008 2766 969 2767 1953 970
6364 CONVEX 697 GT_PK(2,2) 1008 2767 970 2768 1946 1009
6365 CONVEX 698 GT_PK(2,2) 1157 2769 1192 2770 1742 1158
6366 CONVEX 699 GT_PK(2,2) 1010 2771 1049 2772 2773 1011
6367 CONVEX 700 GT_PK(2,2) 1010 2774 972 2772 2775 1011
6368 CONVEX 701 GT_PK(2,2) 1010 2776 971 2777 1945 1009
6369 CONVEX 702 GT_PK(2,2) 1010 2774 972 2776 2749 971
6370 CONVEX 703 GT_PK(2,2) 974 2778 936 2779 1551 975
6371 CONVEX 704 GT_PK(2,2) 974 2780 1013 2779 2781 975
6372 CONVEX 705 GT_PK(2,2) 1014 2782 1013 2783 2784 1052
6373 CONVEX 706 GT_PK(2,2) 1014 2782 1013 2785 2781 975
6374 CONVEX 707 GT_PK(2,2) 1014 2786 976 2785 1822 975
6375 CONVEX 708 GT_PK(2,2) 1014 2786 976 2787 2492 1015
6376 CONVEX 709 GT_PK(2,2) 1051 2788 1013 2789 2784 1052
6377 CONVEX 710 GT_PK(2,2) 1124 2790 1123 2791 2792 1087
6378 CONVEX 711 GT_PK(2,2) 1163 2793 1164 2794 1538 1198
6379 CONVEX 712 GT_PK(2,2) 1163 2795 1197 2794 1965 1198
6380 CONVEX 713 GT_PK(2,2) 725 2796 685 2797 2798 724
6381 CONVEX 714 GT_PK(2,2) 725 2799 764 2797 2800 724
6382 CONVEX 715 GT_PK(2,2) 684 2801 685 2802 2803 645
6383 CONVEX 716 GT_PK(2,2) 684 2801 685 2804 2798 724
6384 CONVEX 717 GT_PK(2,2) 570 2805 571 2806 2807 610
6385 CONVEX 718 GT_PK(2,2) 570 2808 609 2806 1966 610
6386 CONVEX 719 GT_PK(2,2) 570 2809 531 2810 2811 530
6387 CONVEX 720 GT_PK(2,2) 570 2809 531 2805 2812 571
6388 CONVEX 721 GT_PK(2,2) 646 2813 685 2814 2803 645
6389 CONVEX 722 GT_PK(2,2) 646 2815 606 2814 2816 645
6390 CONVEX 723 GT_PK(2,2) 30 2817 29 2818 1975 15
6391 CONVEX 724 GT_PK(2,2) 30 2817 29 2819 2820 48
6392 CONVEX 725 GT_PK(2,2) 28 2821 29 2822 1974 14
6393 CONVEX 726 GT_PK(2,2) 28 2822 14 2823 2824 13
6394 CONVEX 727 GT_PK(2,2) 28 2825 27 2823 1704 13
6395 CONVEX 728 GT_PK(2,2) 89 2826 66 2827 2828 90
6396 CONVEX 729 GT_PK(2,2) 89 2829 114 2830 2831 88
6397 CONVEX 730 GT_PK(2,2) 89 2832 65 2830 1493 88
6398 CONVEX 731 GT_PK(2,2) 89 2826 66 2832 1980 65
6399 CONVEX 732 GT_PK(2,2) 528 2833 529 2834 2835 490
6400 CONVEX 733 GT_PK(2,2) 489 2836 451 2837 2838 490
6401 CONVEX 734 GT_PK(2,2) 489 2839 528 2840 2841 527
6402 CONVEX 735 GT_PK(2,2) 489 2839 528 2837 2834 490
6403 CONVEX 736 GT_PK(2,2) 452 2842 451 2843 2844 413
6404 CONVEX 737 GT_PK(2,2) 452 2842 451 2845 2838 490
6405 CONVEX 738 GT_PK(2,2) 414 2846 452 2847 2843 413
6406 CONVEX 739 GT_PK(2,2) 414 2846 452 2848 2849 453
6407 CONVEX 740 GT_PK(2,2) 491 2850 529 2851 2852 530
6408 CONVEX 741 GT_PK(2,2) 491 2850 529 2853 2835 490
6409 CONVEX 742 GT_PK(2,2) 491 2854 452 2853 2845 490
6410 CONVEX 743 GT_PK(2,2) 491 2854 452 2855 2849 453
6411 CONVEX 744 GT_PK(2,2) 385 2856 423 2857 2858 422
6412 CONVEX 745 GT_PK(2,2) 311 2859 310 2860 1995 346
6413 CONVEX 746 GT_PK(2,2) 311 2859 310 2861 1997 276
6414 CONVEX 747 GT_PK(2,2) 382 2862 345 2863 1996 346
6415 CONVEX 748 GT_PK(2,2) 382 2864 383 2863 2865 346
6416 CONVEX 749 GT_PK(2,2) 382 2866 381 2862 2867 345
6417 CONVEX 750 GT_PK(2,2) 382 2868 420 2864 2869 383
6418 CONVEX 751 GT_PK(2,2) 382 2866 381 2870 2871 419
6419 CONVEX 752 GT_PK(2,2) 382 2868 420 2870 2872 419
6420 CONVEX 753 GT_PK(2,2) 347 2873 383 2874 2865 346
6421 CONVEX 754 GT_PK(2,2) 347 2875 311 2874 2860 346
6422 CONVEX 755 GT_PK(2,2) 494 2876 455 2877 2002 456
6423 CONVEX 756 GT_PK(2,2) 494 2878 495 2877 2879 456
6424 CONVEX 757 GT_PK(2,2) 494 2876 455 2880 1989 493
6425 CONVEX 758 GT_PK(2,2) 494 2878 495 2881 2882 533
6426 CONVEX 759 GT_PK(2,2) 497 2883 459 2884 1983 498
6427 CONVEX 760 GT_PK(2,2) 457 2885 495 2886 2879 456
6428 CONVEX 761 GT_PK(2,2) 235 2887 268 2888 2889 234
6429 CONVEX 762 GT_PK(2,2) 235 2890 202 2888 2239 234
6430 CONVEX 763 GT_PK(2,2) 235 2891 203 2890 2892 202
6431 CONVEX 764 GT_PK(2,2) 309 2893 310 2894 1994 345
6432 CONVEX 765 GT_PK(2,2) 309 2895 274 2896 2897 308
6433 CONVEX 766 GT_PK(2,2) 309 2895 274 2898 1973 275
6434 CONVEX 767 GT_PK(2,2) 309 2893 310 2898 1998 275
6435 CONVEX 768 GT_PK(2,2) 344 2899 343 2900 2008 308
6436 CONVEX 769 GT_PK(2,2) 344 2901 309 2900 2896 308
6437 CONVEX 770 GT_PK(2,2) 344 2901 309 2902 2894 345
6438 CONVEX 771 GT_PK(2,2) 344 2903 381 2902 2867 345
6439 CONVEX 772 GT_PK(2,2) 344 2903 381 2904 2905 380
6440 CONVEX 773 GT_PK(2,2) 344 2899 343 2904 2013 380
6441 CONVEX 774 GT_PK(2,2) 376 2906 414 2907 2847 413
6442 CONVEX 775 GT_PK(2,2) 376 2906 414 2908 2909 377
6443 CONVEX 776 GT_PK(2,2) 378 2910 341 2911 2912 377
6444 CONVEX 777 GT_PK(2,2) 378 2913 379 2914 2004 416
6445 CONVEX 778 GT_PK(2,2) 378 2913 379 2915 2012 342
6446 CONVEX 779 GT_PK(2,2) 378 2910 341 2915 2018 342
6447 CONVEX 780 GT_PK(2,2) 305 2916 341 2917 2017 306
6448 CONVEX 781 GT_PK(2,2) 340 2918 341 2919 2912 377
6449 CONVEX 782 GT_PK(2,2) 340 2920 376 2919 2908 377
6450 CONVEX 783 GT_PK(2,2) 340 2920 376 2921 2922 339
6451 CONVEX 784 GT_PK(2,2) 340 2923 305 2918 2916 341
6452 CONVEX 785 GT_PK(2,2) 340 2921 339 2924 2014 304
6453 CONVEX 786 GT_PK(2,2) 340 2923 305 2924 2925 304
6454 CONVEX 787 GT_PK(2,2) 765 2926 805 2927 1592 766
6455 CONVEX 788 GT_PK(2,2) 765 2928 725 2929 2930 1
6456 CONVEX 789 GT_PK(2,2) 765 2928 725 2931 2799 764
6457 CONVEX 790 GT_PK(2,2) 765 2932 726 2929 2933 1
6458 CONVEX 791 GT_PK(2,2) 765 2932 726 2927 2020 766
6459 CONVEX 792 GT_PK(2,2) 844 2934 805 2935 1593 845
6460 CONVEX 793 GT_PK(2,2) 802 2936 762 2937 2667 801
6461 CONVEX 794 GT_PK(2,2) 648 2938 609 2939 1967 649
6462 CONVEX 795 GT_PK(2,2) 648 2940 688 2939 2941 649
6463 CONVEX 796 GT_PK(2,2) 648 2942 608 2943 2944 647
6464 CONVEX 797 GT_PK(2,2) 648 2942 608 2938 2945 609
6465 CONVEX 798 GT_PK(2,2) 687 2946 726 2947 2019 727
6466 CONVEX 799 GT_PK(2,2) 687 2948 688 2947 2021 727
6467 CONVEX 800 GT_PK(2,2) 687 2949 648 2948 2940 688
6468 CONVEX 801 GT_PK(2,2) 687 2949 648 2950 2943 647
6469 CONVEX 802 GT_PK(2,2) 613 2951 652 2952 2953 653
6470 CONVEX 803 GT_PK(2,2) 532 2954 531 2955 2812 571
6471 CONVEX 804 GT_PK(2,2) 532 2956 572 2957 2958 533
6472 CONVEX 805 GT_PK(2,2) 532 2956 572 2955 2959 571
6473 CONVEX 806 GT_PK(2,2) 532 2954 531 2960 2961 493
6474 CONVEX 807 GT_PK(2,2) 532 2962 494 2957 2881 533
6475 CONVEX 808 GT_PK(2,2) 532 2962 494 2960 2880 493
6476 CONVEX 809 GT_PK(2,2) 808 2963 769 2964 2965 768
6477 CONVEX 810 GT_PK(2,2) 808 2966 807 2964 1598 768
6478 CONVEX 811 GT_PK(2,2) 808 2966 807 2967 1600 847
6479 CONVEX 812 GT_PK(2,2) 729 2968 769 2969 2970 730
6480 CONVEX 813 GT_PK(2,2) 729 2971 690 2969 2972 730
6481 CONVEX 814 GT_PK(2,2) 729 2973 728 2974 1468 768
6482 CONVEX 815 GT_PK(2,2) 729 2968 769 2974 2965 768
6483 CONVEX 816 GT_PK(2,2) 689 2975 688 2976 2941 649
6484 CONVEX 817 GT_PK(2,2) 689 2975 688 2977 2022 728
6485 CONVEX 818 GT_PK(2,2) 689 2978 729 2977 2973 728
6486 CONVEX 819 GT_PK(2,2) 689 2978 729 2979 2971 690
6487 CONVEX 820 GT_PK(2,2) 691 2980 690 2981 2972 730
6488 CONVEX 821 GT_PK(2,2) 611 2982 571 2983 2807 610
6489 CONVEX 822 GT_PK(2,2) 611 2984 572 2982 2959 571
6490 CONVEX 823 GT_PK(2,2) 854 2985 894 2986 1961 855
6491 CONVEX 824 GT_PK(2,2) 891 2987 930 2988 1956 931
6492 CONVEX 825 GT_PK(2,2) 536 2989 497 2990 2884 498
6493 CONVEX 826 GT_PK(2,2) 614 2991 575 2992 2993 574
6494 CONVEX 827 GT_PK(2,2) 614 2994 613 2995 2952 653
6495 CONVEX 828 GT_PK(2,2) 614 2994 613 2992 2996 574
6496 CONVEX 829 GT_PK(2,2) 774 2997 813 2998 2999 773
6497 CONVEX 830 GT_PK(2,2) 627 3000 628 3001 2026 667
6498 CONVEX 831 GT_PK(2,2) 627 3000 628 3002 2030 588
6499 CONVEX 832 GT_PK(2,2) 549 3003 510 3004 3005 509
6500 CONVEX 833 GT_PK(2,2) 433 3006 395 3007 1470 394
6501 CONVEX 834 GT_PK(2,2) 404 3008 403 3009 1604 366
6502 CONVEX 835 GT_PK(2,2) 404 3010 367 3009 2047 366
6503 CONVEX 836 GT_PK(2,2) 404 3010 367 3011 3012 405
6504 CONVEX 837 GT_PK(2,2) 404 3013 443 3011 3014 405
6505 CONVEX 838 GT_PK(2,2) 642 3015 681 3016 1917 682
6506 CONVEX 839 GT_PK(2,2) 642 3015 681 3017 1924 641
6507 CONVEX 840 GT_PK(2,2) 644 3018 684 3019 2802 645
6508 CONVEX 841 GT_PK(2,2) 644 3018 684 3020 3021 683
6509 CONVEX 842 GT_PK(2,2) 484 3022 523 3023 2056 522
6510 CONVEX 843 GT_PK(2,2) 524 3024 523 3025 2057 563
6511 CONVEX 844 GT_PK(2,2) 482 3026 521 3027 2664 520
6512 CONVEX 845 GT_PK(2,2) 558 3028 597 3029 2533 557
6513 CONVEX 846 GT_PK(2,2) 558 3030 559 3031 1899 598
6514 CONVEX 847 GT_PK(2,2) 558 3028 597 3031 3032 598
6515 CONVEX 848 GT_PK(2,2) 436 3033 397 3034 2061 398
6516 CONVEX 849 GT_PK(2,2) 436 3035 437 3034 2064 398
6517 CONVEX 850 GT_PK(2,2) 440 3036 439 3037 1606 478
6518 CONVEX 851 GT_PK(2,2) 440 3036 439 3038 2095 401
6519 CONVEX 852 GT_PK(2,2) 440 3039 402 3038 2092 401
6520 CONVEX 853 GT_PK(2,2) 221 3040 254 3041 2117 255
6521 CONVEX 854 GT_PK(2,2) 221 3041 255 3042 1628 222
6522 CONVEX 855 GT_PK(2,2) 221 3043 188 3044 2114 220
6523 CONVEX 856 GT_PK(2,2) 221 3040 254 3044 2116 220
6524 CONVEX 857 GT_PK(2,2) 221 3045 189 3042 1620 222
6525 CONVEX 858 GT_PK(2,2) 221 3043 188 3045 2110 189
6526 CONVEX 859 GT_PK(2,2) 323 3046 359 3047 2086 322
6527 CONVEX 860 GT_PK(2,2) 323 3048 287 3047 2124 322
6528 CONVEX 861 GT_PK(2,2) 323 3046 359 3049 2079 360
6529 CONVEX 862 GT_PK(2,2) 213 3050 214 3051 2162 182
6530 CONVEX 863 GT_PK(2,2) 213 3050 214 3052 2164 246
6531 CONVEX 864 GT_PK(2,2) 213 3053 181 3051 1662 182
6532 CONVEX 865 GT_PK(2,2) 213 3054 212 3053 3055 181
6533 CONVEX 866 GT_PK(2,2) 213 3052 246 3056 2201 245
6534 CONVEX 867 GT_PK(2,2) 213 3054 212 3056 3057 245
6535 CONVEX 868 GT_PK(2,2) 180 3058 212 3059 3055 181
6536 CONVEX 869 GT_PK(2,2) 180 3060 151 3059 2179 181
6537 CONVEX 870 GT_PK(2,2) 180 3061 211 3058 3062 212
6538 CONVEX 871 GT_PK(2,2) 74 3063 52 3064 3065 53
6539 CONVEX 872 GT_PK(2,2) 74 3066 73 3063 2182 52
6540 CONVEX 873 GT_PK(2,2) 74 3064 53 3067 1681 98
6541 CONVEX 874 GT_PK(2,2) 283 3068 282 3069 1699 249
6542 CONVEX 875 GT_PK(2,2) 283 3070 250 3069 2190 249
6543 CONVEX 876 GT_PK(2,2) 283 3068 282 3071 1695 317
6544 CONVEX 877 GT_PK(2,2) 283 3072 318 3071 2515 317
6545 CONVEX 878 GT_PK(2,2) 283 3072 318 3073 1844 284
6546 CONVEX 879 GT_PK(2,2) 283 3070 250 3073 2187 284
6547 CONVEX 880 GT_PK(2,2) 26 3074 12 3075 1702 27
6548 CONVEX 881 GT_PK(2,2) 26 3076 11 3074 3077 12
6549 CONVEX 882 GT_PK(2,2) 26 3076 11 3078 2207 25
6550 CONVEX 883 GT_PK(2,2) 26 3078 25 3079 1716 44
6551 CONVEX 884 GT_PK(2,2) 26 3079 44 3080 1979 45
6552 CONVEX 885 GT_PK(2,2) 26 3075 27 3080 3081 45
6553 CONVEX 886 GT_PK(2,2) 81 3082 57 3083 2211 80
6554 CONVEX 887 GT_PK(2,2) 81 3084 107 3085 3086 82
6555 CONVEX 888 GT_PK(2,2) 81 3087 106 3083 2220 80
6556 CONVEX 889 GT_PK(2,2) 81 3084 107 3087 3088 106
6557 CONVEX 890 GT_PK(2,2) 193 3089 161 3090 1640 192
6558 CONVEX 891 GT_PK(2,2) 193 3091 162 3089 2228 161
6559 CONVEX 892 GT_PK(2,2) 193 3092 225 3090 1482 192
6560 CONVEX 893 GT_PK(2,2) 338 3093 339 3094 2015 303
6561 CONVEX 894 GT_PK(2,2) 338 3095 302 3094 2231 303
6562 CONVEX 895 GT_PK(2,2) 58 3096 37 3097 2234 36
6563 CONVEX 896 GT_PK(2,2) 58 3098 81 3099 3085 82
6564 CONVEX 897 GT_PK(2,2) 58 3100 57 3097 2213 36
6565 CONVEX 898 GT_PK(2,2) 58 3098 81 3100 3082 57
6566 CONVEX 899 GT_PK(2,2) 200 3101 168 3102 2246 169
6567 CONVEX 900 GT_PK(2,2) 200 3103 201 3102 3104 169
6568 CONVEX 901 GT_PK(2,2) 200 3103 201 3105 2240 233
6569 CONVEX 902 GT_PK(2,2) 86 3106 87 3107 3108 112
6570 CONVEX 903 GT_PK(2,2) 113 3109 87 3110 3108 112
6571 CONVEX 904 GT_PK(2,2) 113 3111 141 3112 3113 114
6572 CONVEX 905 GT_PK(2,2) 113 3112 114 3114 2831 88
6573 CONVEX 906 GT_PK(2,2) 113 3109 87 3114 2243 88
6574 CONVEX 907 GT_PK(2,2) 40 3115 39 3116 2260 21
6575 CONVEX 908 GT_PK(2,2) 40 3117 22 3118 1726 41
6576 CONVEX 909 GT_PK(2,2) 40 3117 22 3116 1720 21
6577 CONVEX 910 GT_PK(2,2) 40 3115 39 3119 3120 61
6578 CONVEX 911 GT_PK(2,2) 59 3121 58 3122 3099 82
6579 CONVEX 912 GT_PK(2,2) 59 3121 58 3123 3096 37
6580 CONVEX 913 GT_PK(2,2) 108 3124 107 3125 3086 82
6581 CONVEX 914 GT_PK(2,2) 1364 3126 1365 3127 3128 1339
6582 CONVEX 915 GT_PK(2,2) 963 3129 1002 3130 2755 964
6583 CONVEX 916 GT_PK(2,2) 963 3129 1002 3131 2758 1001
6584 CONVEX 917 GT_PK(2,2) 963 3132 925 3130 3133 964
6585 CONVEX 918 GT_PK(2,2) 963 3132 925 3134 2298 924
6586 CONVEX 919 GT_PK(2,2) 1038 3135 1000 3136 2284 1039
6587 CONVEX 920 GT_PK(2,2) 1038 3137 1076 3136 3138 1039
6588 CONVEX 921 GT_PK(2,2) 1038 3137 1076 3139 2280 1075
6589 CONVEX 922 GT_PK(2,2) 965 3140 927 3141 2291 966
6590 CONVEX 923 GT_PK(2,2) 965 3142 1003 3143 2756 964
6591 CONVEX 924 GT_PK(2,2) 965 3144 1004 3141 3145 966
6592 CONVEX 925 GT_PK(2,2) 965 3144 1004 3142 3146 1003
6593 CONVEX 926 GT_PK(2,2) 886 3147 925 3148 2299 885
6594 CONVEX 927 GT_PK(2,2) 886 3148 885 3149 1739 846
6595 CONVEX 928 GT_PK(2,2) 886 3150 847 3149 1602 846
6596 CONVEX 929 GT_PK(2,2) 886 3151 887 3150 3152 847
6597 CONVEX 930 GT_PK(2,2) 1393 3153 1369 3154 2338 1370
6598 CONVEX 931 GT_PK(2,2) 1393 3153 1369 3155 2357 1392
6599 CONVEX 932 GT_PK(2,2) 1393 3156 1414 3155 2367 1392
6600 CONVEX 933 GT_PK(2,2) 1393 3157 1415 3156 2304 1414
6601 CONVEX 934 GT_PK(2,2) 1254 3158 1286 3159 3160 1285
6602 CONVEX 935 GT_PK(2,2) 1254 3161 1253 3159 2399 1285
6603 CONVEX 936 GT_PK(2,2) 1254 3162 1222 3163 2311 1221
6604 CONVEX 937 GT_PK(2,2) 1254 3161 1253 3163 2418 1221
6605 CONVEX 938 GT_PK(2,2) 1374 3164 1348 3165 2313 1397
6606 CONVEX 939 GT_PK(2,2) 1293 3166 1294 3167 3168 1323
6607 CONVEX 940 GT_PK(2,2) 1293 3166 1294 3169 2478 1262
6608 CONVEX 941 GT_PK(2,2) 1321 3170 1348 3171 2317 1320
6609 CONVEX 942 GT_PK(2,2) 1321 3172 1291 3171 3173 1320
6610 CONVEX 943 GT_PK(2,2) 1319 3174 1347 3175 2328 1346
6611 CONVEX 944 GT_PK(2,2) 1319 3174 1347 3176 2316 1320
6612 CONVEX 945 GT_PK(2,2) 1394 3177 1416 3178 2318 1395
6613 CONVEX 946 GT_PK(2,2) 1394 3179 1415 3180 2302 1434
6614 CONVEX 947 GT_PK(2,2) 1394 3177 1416 3180 3181 1434
6615 CONVEX 948 GT_PK(2,2) 1394 3182 1371 3183 2324 1370
6616 CONVEX 949 GT_PK(2,2) 1394 3182 1371 3178 2332 1395
6617 CONVEX 950 GT_PK(2,2) 1394 3184 1393 3183 3154 1370
6618 CONVEX 951 GT_PK(2,2) 1394 3184 1393 3179 3157 1415
6619 CONVEX 952 GT_PK(2,2) 1195 3185 1196 3186 1583 1229
6620 CONVEX 953 GT_PK(2,2) 1261 3187 1262 3188 1535 1229
6621 CONVEX 954 GT_PK(2,2) 1261 3189 1293 3187 3169 1262
6622 CONVEX 955 GT_PK(2,2) 1411 3190 1390 3191 1747 1412
6623 CONVEX 956 GT_PK(2,2) 1411 3192 1430 3191 1512 1412
6624 CONVEX 957 GT_PK(2,2) 1411 3193 1429 3192 2351 1430
6625 CONVEX 958 GT_PK(2,2) 1411 3194 1410 3193 2354 1429
6626 CONVEX 959 GT_PK(2,2) 1077 3195 1113 3196 2374 1076
6627 CONVEX 960 GT_PK(2,2) 1077 3197 1040 3198 2288 1078
6628 CONVEX 961 GT_PK(2,2) 1077 3196 1076 3199 3138 1039
6629 CONVEX 962 GT_PK(2,2) 1077 3197 1040 3199 2287 1039
6630 CONVEX 963 GT_PK(2,2) 1151 3200 1150 3201 2375 1185
6631 CONVEX 964 GT_PK(2,2) 1151 3202 1116 3203 3204 1152
6632 CONVEX 965 GT_PK(2,2) 1151 3202 1116 3205 2382 1115
6633 CONVEX 966 GT_PK(2,2) 1151 3200 1150 3205 3206 1115
6634 CONVEX 967 GT_PK(2,2) 1249 3207 1280 3208 2386 1248
6635 CONVEX 968 GT_PK(2,2) 1249 3208 1248 3209 3210 1216
6636 CONVEX 969 GT_PK(2,2) 1249 3211 1217 3212 2395 1250
6637 CONVEX 970 GT_PK(2,2) 1249 3211 1217 3209 2392 1216
6638 CONVEX 971 GT_PK(2,2) 1251 3213 1282 3214 3215 1250
6639 CONVEX 972 GT_PK(2,2) 1251 3216 1218 3214 2396 1250
6640 CONVEX 973 GT_PK(2,2) 1251 3216 1218 3217 1520 1219
6641 CONVEX 974 GT_PK(2,2) 1251 3218 1252 3217 2421 1219
6642 CONVEX 975 GT_PK(2,2) 1281 3219 1311 3220 2406 1282
6643 CONVEX 976 GT_PK(2,2) 1281 3221 1249 3222 3207 1280
6644 CONVEX 977 GT_PK(2,2) 1281 3222 1280 3223 2390 1310
6645 CONVEX 978 GT_PK(2,2) 1281 3219 1311 3223 3224 1310
6646 CONVEX 979 GT_PK(2,2) 1281 3220 1282 3225 3215 1250
6647 CONVEX 980 GT_PK(2,2) 1281 3221 1249 3225 3212 1250
6648 CONVEX 981 GT_PK(2,2) 1367 3226 1391 3227 1745 1390
6649 CONVEX 982 GT_PK(2,2) 1367 3228 1368 3226 2358 1391
6650 CONVEX 983 GT_PK(2,2) 1367 3229 1366 3227 3230 1390
6651 CONVEX 984 GT_PK(2,2) 1367 3229 1366 3231 3232 1341
6652 CONVEX 985 GT_PK(2,2) 1342 3233 1368 3234 2360 1343
6653 CONVEX 986 GT_PK(2,2) 1342 3235 1367 3233 3228 1368
6654 CONVEX 987 GT_PK(2,2) 1342 3235 1367 3236 3231 1341
6655 CONVEX 988 GT_PK(2,2) 1155 3237 1154 3238 3239 1119
6656 CONVEX 989 GT_PK(2,2) 1155 3237 1154 3240 2413 1189
6657 CONVEX 990 GT_PK(2,2) 1155 3241 1190 3240 3242 1189
6658 CONVEX 991 GT_PK(2,2) 1155 3241 1190 3243 3244 1156
6659 CONVEX 992 GT_PK(2,2) 1186 3245 1220 3246 2415 1187
6660 CONVEX 993 GT_PK(2,2) 1186 3246 1187 3247 2410 1152
6661 CONVEX 994 GT_PK(2,2) 1186 3248 1185 3249 1521 1219
6662 CONVEX 995 GT_PK(2,2) 1186 3245 1220 3249 2420 1219
6663 CONVEX 996 GT_PK(2,2) 1186 3250 1151 3247 3203 1152
6664 CONVEX 997 GT_PK(2,2) 1186 3250 1151 3248 3201 1185
6665 CONVEX 998 GT_PK(2,2) 666 3251 665 3252 2423 705
6666 CONVEX 999 GT_PK(2,2) 664 3253 665 3254 2422 704
6667 CONVEX 1000 GT_PK(2,2) 664 3255 624 3256 2451 663
6668 CONVEX 1001 GT_PK(2,2) 664 3253 665 3257 3258 625
6669 CONVEX 1002 GT_PK(2,2) 664 3255 624 3257 2435 625
6670 CONVEX 1003 GT_PK(2,2) 506 3259 507 3260 1766 545
6671 CONVEX 1004 GT_PK(2,2) 506 3259 507 3261 1771 468
6672 CONVEX 1005 GT_PK(2,2) 506 3261 468 3262 1759 467
6673 CONVEX 1006 GT_PK(2,2) 506 3263 505 3262 3264 467
6674 CONVEX 1007 GT_PK(2,2) 740 3265 739 3266 2441 779
6675 CONVEX 1008 GT_PK(2,2) 740 3267 780 3266 2461 779
6676 CONVEX 1009 GT_PK(2,2) 740 3267 780 3268 2458 741
6677 CONVEX 1010 GT_PK(2,2) 740 3265 739 3269 3270 700
6678 CONVEX 1011 GT_PK(2,2) 859 3271 819 3272 2460 820
6679 CONVEX 1012 GT_PK(2,2) 859 3273 860 3272 2484 820
6680 CONVEX 1013 GT_PK(2,2) 859 3273 860 3274 2485 899
6681 CONVEX 1014 GT_PK(2,2) 859 3274 899 3275 2436 898
6682 CONVEX 1015 GT_PK(2,2) 859 3275 898 3276 1801 858
6683 CONVEX 1016 GT_PK(2,2) 859 3271 819 3276 2446 858
6684 CONVEX 1017 GT_PK(2,2) 543 3277 504 3278 3279 505
6685 CONVEX 1018 GT_PK(2,2) 543 3280 542 3281 3282 582
6686 CONVEX 1019 GT_PK(2,2) 543 3277 504 3280 3283 542
6687 CONVEX 1020 GT_PK(2,2) 544 3284 543 3285 3278 505
6688 CONVEX 1021 GT_PK(2,2) 544 3286 506 3287 3260 545
6689 CONVEX 1022 GT_PK(2,2) 544 3286 506 3285 3263 505
6690 CONVEX 1023 GT_PK(2,2) 584 3288 624 3289 2434 585
6691 CONVEX 1024 GT_PK(2,2) 584 3290 623 3288 2449 624
6692 CONVEX 1025 GT_PK(2,2) 584 3289 585 3291 1777 545
6693 CONVEX 1026 GT_PK(2,2) 584 3292 544 3291 3287 545
6694 CONVEX 1027 GT_PK(2,2) 702 3293 742 3294 2454 741
6695 CONVEX 1028 GT_PK(2,2) 702 3295 662 3296 2463 663
6696 CONVEX 1029 GT_PK(2,2) 702 3293 742 3297 2452 743
6697 CONVEX 1030 GT_PK(2,2) 622 3298 662 3299 2462 623
6698 CONVEX 1031 GT_PK(2,2) 622 3298 662 3300 3301 661
6699 CONVEX 1032 GT_PK(2,2) 622 3302 621 3303 3304 582
6700 CONVEX 1033 GT_PK(2,2) 622 3302 621 3300 3305 661
6701 CONVEX 1034 GT_PK(2,2) 1093 3306 1092 3307 3308 1129
6702 CONVEX 1035 GT_PK(2,2) 1093 3309 1056 3310 2471 1094
6703 CONVEX 1036 GT_PK(2,2) 1093 3311 1055 3306 3312 1092
6704 CONVEX 1037 GT_PK(2,2) 1093 3311 1055 3309 2473 1056
6705 CONVEX 1038 GT_PK(2,2) 1093 3313 1130 3307 1534 1129
6706 CONVEX 1039 GT_PK(2,2) 1093 3310 1094 3313 3314 1130
6707 CONVEX 1040 GT_PK(2,2) 1018 3315 1057 3316 3317 1019
6708 CONVEX 1041 GT_PK(2,2) 1018 3318 1056 3315 2470 1057
6709 CONVEX 1042 GT_PK(2,2) 1018 3318 1056 3319 2475 1017
6710 CONVEX 1043 GT_PK(2,2) 1018 3320 979 3316 2497 1019
6711 CONVEX 1044 GT_PK(2,2) 1018 3320 979 3319 2464 1017
6712 CONVEX 1045 GT_PK(2,2) 1054 3321 1055 3322 3312 1092
6713 CONVEX 1046 GT_PK(2,2) 777 3323 738 3324 2444 778
6714 CONVEX 1047 GT_PK(2,2) 777 3325 817 3324 2482 778
6715 CONVEX 1048 GT_PK(2,2) 856 3326 895 3327 3328 896
6716 CONVEX 1049 GT_PK(2,2) 856 3326 895 3329 1960 855
6717 CONVEX 1050 GT_PK(2,2) 857 3330 817 3331 2481 818
6718 CONVEX 1051 GT_PK(2,2) 857 3332 897 3333 1800 858
6719 CONVEX 1052 GT_PK(2,2) 857 3331 818 3333 2447 858
6720 CONVEX 1053 GT_PK(2,2) 857 3332 897 3334 1796 896
6721 CONVEX 1054 GT_PK(2,2) 857 3335 856 3334 3327 896
6722 CONVEX 1055 GT_PK(2,2) 857 3335 856 3330 3336 817
6723 CONVEX 1056 GT_PK(2,2) 1016 3337 1017 3338 2466 978
6724 CONVEX 1057 GT_PK(2,2) 1016 3339 977 3338 2488 978
6725 CONVEX 1058 GT_PK(2,2) 1016 3339 977 3340 2491 1015
6726 CONVEX 1059 GT_PK(2,2) 1016 3341 1054 3340 3342 1015
6727 CONVEX 1060 GT_PK(2,2) 1016 3343 1055 3337 2474 1017
6728 CONVEX 1061 GT_PK(2,2) 1016 3341 1054 3343 3321 1055
6729 CONVEX 1062 GT_PK(2,2) 862 3344 861 3345 2499 822
6730 CONVEX 1063 GT_PK(2,2) 862 3346 823 3345 1788 822
6731 CONVEX 1064 GT_PK(2,2) 862 3347 901 3348 2504 902
6732 CONVEX 1065 GT_PK(2,2) 862 3347 901 3344 2506 861
6733 CONVEX 1066 GT_PK(2,2) 862 3346 823 3349 1461 863
6734 CONVEX 1067 GT_PK(2,2) 862 3350 903 3349 3351 863
6735 CONVEX 1068 GT_PK(2,2) 862 3348 902 3350 1816 903
6736 CONVEX 1069 GT_PK(2,2) 351 3352 352 3353 1823 316
6737 CONVEX 1070 GT_PK(2,2) 351 3353 316 3354 1554 315
6738 CONVEX 1071 GT_PK(2,2) 351 3355 388 3352 3356 352
6739 CONVEX 1072 GT_PK(2,2) 351 3355 388 3357 3358 387
6740 CONVEX 1073 GT_PK(2,2) 837 3359 797 3360 1894 836
6741 CONVEX 1074 GT_PK(2,2) 837 3359 797 3361 2635 798
6742 CONVEX 1075 GT_PK(2,2) 837 3362 838 3361 3363 798
6743 CONVEX 1076 GT_PK(2,2) 799 3364 838 3365 2519 839
6744 CONVEX 1077 GT_PK(2,2) 799 3364 838 3366 3363 798
6745 CONVEX 1078 GT_PK(2,2) 799 3367 759 3366 2636 798
6746 CONVEX 1079 GT_PK(2,2) 799 3367 759 3368 1900 760
6747 CONVEX 1080 GT_PK(2,2) 637 3369 597 3370 2535 636
6748 CONVEX 1081 GT_PK(2,2) 637 3369 597 3371 3032 598
6749 CONVEX 1082 GT_PK(2,2) 637 3372 638 3371 2651 598
6750 CONVEX 1083 GT_PK(2,2) 637 3372 638 3373 2652 677
6751 CONVEX 1084 GT_PK(2,2) 518 3374 517 3375 2523 557
6752 CONVEX 1085 GT_PK(2,2) 518 3376 558 3375 3029 557
6753 CONVEX 1086 GT_PK(2,2) 671 3377 710 3378 3379 670
6754 CONVEX 1087 GT_PK(2,2) 671 3380 711 3377 3381 710
6755 CONVEX 1088 GT_PK(2,2) 753 3382 714 3383 3384 713
6756 CONVEX 1089 GT_PK(2,2) 753 3385 792 3386 3387 793
6757 CONVEX 1090 GT_PK(2,2) 753 3388 754 3386 2649 793
6758 CONVEX 1091 GT_PK(2,2) 753 3388 754 3382 2645 714
6759 CONVEX 1092 GT_PK(2,2) 669 3389 708 3390 3391 707
6760 CONVEX 1093 GT_PK(2,2) 669 3392 668 3393 2025 629
6761 CONVEX 1094 GT_PK(2,2) 669 3390 707 3392 1854 668
6762 CONVEX 1095 GT_PK(2,2) 669 3389 708 3394 3395 670
6763 CONVEX 1096 GT_PK(2,2) 825 3396 864 3397 3398 826
6764 CONVEX 1097 GT_PK(2,2) 825 3399 786 3400 1856 785
6765 CONVEX 1098 GT_PK(2,2) 825 3399 786 3397 2547 826
6766 CONVEX 1099 GT_PK(2,2) 865 3401 864 3402 3398 826
6767 CONVEX 1100 GT_PK(2,2) 865 3401 864 3403 3404 904
6768 CONVEX 1101 GT_PK(2,2) 748 3405 787 3406 3407 788
6769 CONVEX 1102 GT_PK(2,2) 748 3408 749 3406 3409 788
6770 CONVEX 1103 GT_PK(2,2) 748 3408 749 3410 3411 708
6771 CONVEX 1104 GT_PK(2,2) 748 3410 708 3412 3391 707
6772 CONVEX 1105 GT_PK(2,2) 748 3412 707 3413 1853 747
6773 CONVEX 1106 GT_PK(2,2) 748 3405 787 3413 2548 747
6774 CONVEX 1107 GT_PK(2,2) 1061 3414 1098 3415 2555 1062
6775 CONVEX 1108 GT_PK(2,2) 1061 3416 1023 3417 2597 1060
6776 CONVEX 1109 GT_PK(2,2) 1061 3418 1097 3417 2581 1060
6777 CONVEX 1110 GT_PK(2,2) 1061 3418 1097 3414 2564 1098
6778 CONVEX 1111 GT_PK(2,2) 1061 3415 1062 3419 3420 1024
6779 CONVEX 1112 GT_PK(2,2) 1061 3416 1023 3419 2603 1024
6780 CONVEX 1113 GT_PK(2,2) 1066 3421 1103 3422 1878 1102
6781 CONVEX 1114 GT_PK(2,2) 1066 3423 1065 3422 3424 1102
6782 CONVEX 1115 GT_PK(2,2) 1066 3421 1103 3425 3426 1067
6783 CONVEX 1116 GT_PK(2,2) 1066 3423 1065 3427 2585 1028
6784 CONVEX 1117 GT_PK(2,2) 1066 3428 1029 3425 2614 1067
6785 CONVEX 1118 GT_PK(2,2) 1066 3428 1029 3427 3429 1028
6786 CONVEX 1119 GT_PK(2,2) 752 3430 713 3431 3432 712
6787 CONVEX 1120 GT_PK(2,2) 752 3433 792 3434 3435 791
6788 CONVEX 1121 GT_PK(2,2) 752 3436 753 3430 3383 713
6789 CONVEX 1122 GT_PK(2,2) 752 3436 753 3433 3385 792
6790 CONVEX 1123 GT_PK(2,2) 752 3437 751 3431 2588 712
6791 CONVEX 1124 GT_PK(2,2) 752 3437 751 3434 3438 791
6792 CONVEX 1125 GT_PK(2,2) 831 3439 792 3440 3435 791
6793 CONVEX 1126 GT_PK(2,2) 789 3441 749 3442 3409 788
6794 CONVEX 1127 GT_PK(2,2) 1026 3443 1027 3444 2584 1064
6795 CONVEX 1128 GT_PK(2,2) 1026 3445 1063 3444 2593 1064
6796 CONVEX 1129 GT_PK(2,2) 1026 3443 1027 3446 2618 988
6797 CONVEX 1130 GT_PK(2,2) 1025 3447 1062 3448 3420 1024
6798 CONVEX 1131 GT_PK(2,2) 1025 3449 1063 3447 2590 1062
6799 CONVEX 1132 GT_PK(2,2) 1025 3450 1026 3449 3445 1063
6800 CONVEX 1133 GT_PK(2,2) 984 3451 1022 3452 2600 983
6801 CONVEX 1134 GT_PK(2,2) 984 3451 1022 3453 2595 1023
6802 CONVEX 1135 GT_PK(2,2) 984 3454 985 3453 2601 1023
6803 CONVEX 1136 GT_PK(2,2) 984 3455 945 3452 3456 983
6804 CONVEX 1137 GT_PK(2,2) 947 3457 948 3458 1874 909
6805 CONVEX 1138 GT_PK(2,2) 991 3459 1030 3460 2612 1029
6806 CONVEX 1139 GT_PK(2,2) 991 3459 1030 3461 3462 992
6807 CONVEX 1140 GT_PK(2,2) 1033 3463 1032 3464 3465 1070
6808 CONVEX 1141 GT_PK(2,2) 1031 3466 1030 3467 3462 992
6809 CONVEX 1142 GT_PK(2,2) 1031 3468 993 3467 3469 992
6810 CONVEX 1143 GT_PK(2,2) 1031 3468 993 3470 3471 1032
6811 CONVEX 1144 GT_PK(2,2) 953 3472 914 3473 3474 952
6812 CONVEX 1145 GT_PK(2,2) 953 3475 991 3473 3476 952
6813 CONVEX 1146 GT_PK(2,2) 953 3475 991 3477 3461 992
6814 CONVEX 1147 GT_PK(2,2) 953 3472 914 3478 2641 915
6815 CONVEX 1148 GT_PK(2,2) 913 3479 912 3480 2621 873
6816 CONVEX 1149 GT_PK(2,2) 913 3480 873 3481 3482 874
6817 CONVEX 1150 GT_PK(2,2) 913 3483 914 3481 2644 874
6818 CONVEX 1151 GT_PK(2,2) 913 3483 914 3484 3474 952
6819 CONVEX 1152 GT_PK(2,2) 951 3485 989 3486 2615 950
6820 CONVEX 1153 GT_PK(2,2) 951 3487 912 3486 2623 950
6821 CONVEX 1154 GT_PK(2,2) 951 3488 913 3487 3479 912
6822 CONVEX 1155 GT_PK(2,2) 951 3488 913 3489 3484 952
6823 CONVEX 1156 GT_PK(2,2) 1205 3490 1204 3491 2740 1237
6824 CONVEX 1157 GT_PK(2,2) 1205 3490 1204 3492 3493 1171
6825 CONVEX 1158 GT_PK(2,2) 1174 3494 1207 3495 2743 1208
6826 CONVEX 1159 GT_PK(2,2) 1174 3494 1207 3496 2628 1173
6827 CONVEX 1160 GT_PK(2,2) 1139 3497 1103 3498 1877 1138
6828 CONVEX 1161 GT_PK(2,2) 1139 3499 1174 3500 3501 1140
6829 CONVEX 1162 GT_PK(2,2) 1139 3498 1138 3502 3503 1173
6830 CONVEX 1163 GT_PK(2,2) 1139 3499 1174 3502 3496 1173
6831 CONVEX 1164 GT_PK(2,2) 833 3504 872 3505 2622 873
6832 CONVEX 1165 GT_PK(2,2) 833 3506 794 3507 2648 793
6833 CONVEX 1166 GT_PK(2,2) 834 3508 873 3509 3482 874
6834 CONVEX 1167 GT_PK(2,2) 834 3510 835 3509 2643 874
6835 CONVEX 1168 GT_PK(2,2) 834 3511 833 3508 3505 873
6836 CONVEX 1169 GT_PK(2,2) 834 3511 833 3512 3506 794
6837 CONVEX 1170 GT_PK(2,2) 755 3513 754 3514 2646 715
6838 CONVEX 1171 GT_PK(2,2) 755 3515 794 3513 2647 754
6839 CONVEX 1172 GT_PK(2,2) 755 3514 715 3516 3517 716
6840 CONVEX 1173 GT_PK(2,2) 755 3518 756 3516 1887 716
6841 CONVEX 1174 GT_PK(2,2) 600 3519 601 3520 2048 640
6842 CONVEX 1175 GT_PK(2,2) 600 3521 639 3520 2656 640
6843 CONVEX 1176 GT_PK(2,2) 600 3519 601 3522 2054 561
6844 CONVEX 1177 GT_PK(2,2) 600 3523 560 3522 2665 561
6845 CONVEX 1178 GT_PK(2,2) 600 3521 639 3524 2658 599
6846 CONVEX 1179 GT_PK(2,2) 600 3523 560 3524 2662 599
6847 CONVEX 1180 GT_PK(2,2) 723 3525 722 3526 2674 762
6848 CONVEX 1181 GT_PK(2,2) 723 3525 722 3527 2672 683
6849 CONVEX 1182 GT_PK(2,2) 723 3528 684 3529 2804 724
6850 CONVEX 1183 GT_PK(2,2) 723 3528 684 3527 3021 683
6851 CONVEX 1184 GT_PK(2,2) 1438 3530 1424 3531 1936 1439
6852 CONVEX 1185 GT_PK(2,2) 1438 3532 1423 3530 2677 1424
6853 CONVEX 1186 GT_PK(2,2) 1437 3533 1423 3534 2680 1422
6854 CONVEX 1187 GT_PK(2,2) 1437 3535 1436 3534 3536 1422
6855 CONVEX 1188 GT_PK(2,2) 1437 3537 1438 3533 3532 1423
6856 CONVEX 1189 GT_PK(2,2) 1180 3538 1179 3539 2696 1213
6857 CONVEX 1190 GT_PK(2,2) 1180 3540 1214 3539 3541 1213
6858 CONVEX 1191 GT_PK(2,2) 1180 3540 1214 3542 3543 1181
6859 CONVEX 1192 GT_PK(2,2) 1180 3538 1179 3544 3545 1145
6860 CONVEX 1193 GT_PK(2,2) 1144 3546 1179 3547 3545 1145
6861 CONVEX 1194 GT_PK(2,2) 1144 3546 1179 3548 2698 1178
6862 CONVEX 1195 GT_PK(2,2) 1246 3549 1245 3550 2700 1213
6863 CONVEX 1196 GT_PK(2,2) 1246 3551 1214 3550 3541 1213
6864 CONVEX 1197 GT_PK(2,2) 1246 3551 1214 3552 3553 1247
6865 CONVEX 1198 GT_PK(2,2) 1246 3554 1277 3549 3555 1245
6866 CONVEX 1199 GT_PK(2,2) 1246 3556 1278 3552 1581 1247
6867 CONVEX 1200 GT_PK(2,2) 1246 3554 1277 3556 3557 1278
6868 CONVEX 1201 GT_PK(2,2) 1215 3558 1214 3559 3553 1247
6869 CONVEX 1202 GT_PK(2,2) 1215 3560 1248 3559 1749 1247
6870 CONVEX 1203 GT_PK(2,2) 1215 3560 1248 3561 3210 1216
6871 CONVEX 1204 GT_PK(2,2) 1215 3562 1182 3561 2703 1216
6872 CONVEX 1205 GT_PK(2,2) 1215 3558 1214 3563 3543 1181
6873 CONVEX 1206 GT_PK(2,2) 1215 3562 1182 3563 2709 1181
6874 CONVEX 1207 GT_PK(2,2) 1307 3564 1308 3565 2710 1278
6875 CONVEX 1208 GT_PK(2,2) 1307 3566 1277 3567 3568 1306
6876 CONVEX 1209 GT_PK(2,2) 1307 3566 1277 3565 3557 1278
6877 CONVEX 1210 GT_PK(2,2) 1307 3569 1334 3567 3570 1306
6878 CONVEX 1211 GT_PK(2,2) 1307 3571 1335 3569 2686 1334
6879 CONVEX 1212 GT_PK(2,2) 1307 3564 1308 3571 2714 1335
6880 CONVEX 1213 GT_PK(2,2) 1326 3572 1299 3573 2727 1298
6881 CONVEX 1214 GT_PK(2,2) 1326 3572 1299 3574 3575 1327
6882 CONVEX 1215 GT_PK(2,2) 1326 3576 1375 3577 3578 1351
6883 CONVEX 1216 GT_PK(2,2) 1172 3579 1137 3580 2728 1171
6884 CONVEX 1217 GT_PK(2,2) 1172 3581 1205 3580 3492 1171
6885 CONVEX 1218 GT_PK(2,2) 1172 3581 1205 3582 3583 1206
6886 CONVEX 1219 GT_PK(2,2) 1172 3582 1206 3584 2627 1173
6887 CONVEX 1220 GT_PK(2,2) 1172 3585 1138 3584 3503 1173
6888 CONVEX 1221 GT_PK(2,2) 1172 3579 1137 3585 2731 1138
6889 CONVEX 1222 GT_PK(2,2) 1101 3586 1100 3587 2550 1136
6890 CONVEX 1223 GT_PK(2,2) 1101 3588 1137 3587 2729 1136
6891 CONVEX 1224 GT_PK(2,2) 1101 3588 1137 3589 2732 1102
6892 CONVEX 1225 GT_PK(2,2) 1101 3586 1100 3590 2594 1064
6893 CONVEX 1226 GT_PK(2,2) 1101 3591 1065 3589 3424 1102
6894 CONVEX 1227 GT_PK(2,2) 1101 3591 1065 3590 2583 1064
6895 CONVEX 1228 GT_PK(2,2) 1203 3592 1204 3593 2739 1236
6896 CONVEX 1229 GT_PK(2,2) 1235 3594 1267 3595 3596 1266
6897 CONVEX 1230 GT_PK(2,2) 1235 3597 1265 3595 3598 1266
6898 CONVEX 1231 GT_PK(2,2) 1235 3597 1265 3599 1860 1234
6899 CONVEX 1232 GT_PK(2,2) 1235 3594 1267 3600 2738 1236
6900 CONVEX 1233 GT_PK(2,2) 1235 3601 1203 3600 3593 1236
6901 CONVEX 1234 GT_PK(2,2) 1170 3602 1204 3603 3493 1171
6902 CONVEX 1235 GT_PK(2,2) 1170 3603 1171 3604 2730 1136
6903 CONVEX 1236 GT_PK(2,2) 1170 3605 1203 3606 3607 1169
6904 CONVEX 1237 GT_PK(2,2) 1170 3605 1203 3602 3592 1204
6905 CONVEX 1238 GT_PK(2,2) 1170 3608 1135 3604 2551 1136
6906 CONVEX 1239 GT_PK(2,2) 1170 3606 1169 3608 2735 1135
6907 CONVEX 1240 GT_PK(2,2) 1239 3609 1206 3610 2626 1207
6908 CONVEX 1241 GT_PK(2,2) 1239 3611 1240 3610 2741 1207
6909 CONVEX 1242 GT_PK(2,2) 1239 3612 1271 3611 2744 1240
6910 CONVEX 1243 GT_PK(2,2) 1239 3612 1271 3613 3614 1270
6911 CONVEX 1244 GT_PK(2,2) 1274 3615 1243 3616 3617 1242
6912 CONVEX 1245 GT_PK(2,2) 1274 3618 1273 3616 3619 1242
6913 CONVEX 1246 GT_PK(2,2) 1274 3620 1304 3621 3622 1303
6914 CONVEX 1247 GT_PK(2,2) 1274 3618 1273 3621 3623 1303
6915 CONVEX 1248 GT_PK(2,2) 1241 3624 1240 3625 2746 1272
6916 CONVEX 1249 GT_PK(2,2) 1241 3626 1273 3625 3627 1272
6917 CONVEX 1250 GT_PK(2,2) 1241 3624 1240 3628 2742 1208
6918 CONVEX 1251 GT_PK(2,2) 1241 3626 1273 3629 3619 1242
6919 CONVEX 1252 GT_PK(2,2) 967 3630 1006 3631 3632 968
6920 CONVEX 1253 GT_PK(2,2) 967 3633 929 3631 2765 968
6921 CONVEX 1254 GT_PK(2,2) 967 3634 966 3635 2293 928
6922 CONVEX 1255 GT_PK(2,2) 967 3633 929 3635 3636 928
6923 CONVEX 1256 GT_PK(2,2) 1082 3637 1083 3638 3639 1119
6924 CONVEX 1257 GT_PK(2,2) 1082 3637 1083 3640 2752 1045
6925 CONVEX 1258 GT_PK(2,2) 1044 3641 1081 3642 2761 1043
6926 CONVEX 1259 GT_PK(2,2) 1044 3643 1006 3644 3645 1045
6927 CONVEX 1260 GT_PK(2,2) 1044 3646 1082 3644 3640 1045
6928 CONVEX 1261 GT_PK(2,2) 1044 3646 1082 3641 3647 1081
6929 CONVEX 1262 GT_PK(2,2) 1117 3648 1116 3649 2384 1080
6930 CONVEX 1263 GT_PK(2,2) 1117 3650 1081 3649 2762 1080
6931 CONVEX 1264 GT_PK(2,2) 1117 3648 1116 3651 3204 1152
6932 CONVEX 1265 GT_PK(2,2) 1117 3652 1153 3651 2409 1152
6933 CONVEX 1266 GT_PK(2,2) 1005 3653 1004 3654 3655 1043
6934 CONVEX 1267 GT_PK(2,2) 1005 3656 1044 3654 3642 1043
6935 CONVEX 1268 GT_PK(2,2) 1005 3656 1044 3657 3643 1006
6936 CONVEX 1269 GT_PK(2,2) 1005 3658 967 3657 3630 1006
6937 CONVEX 1270 GT_PK(2,2) 1005 3653 1004 3659 3145 966
6938 CONVEX 1271 GT_PK(2,2) 1005 3658 967 3659 3634 966
6939 CONVEX 1272 GT_PK(2,2) 1042 3660 1004 3661 3655 1043
6940 CONVEX 1273 GT_PK(2,2) 1042 3662 1079 3663 2385 1041
6941 CONVEX 1274 GT_PK(2,2) 1042 3664 1003 3663 2760 1041
6942 CONVEX 1275 GT_PK(2,2) 1042 3660 1004 3664 3146 1003
6943 CONVEX 1276 GT_PK(2,2) 1042 3661 1043 3665 2763 1080
6944 CONVEX 1277 GT_PK(2,2) 1042 3662 1079 3665 2383 1080
6945 CONVEX 1278 GT_PK(2,2) 1007 3666 1008 3667 2766 969
6946 CONVEX 1279 GT_PK(2,2) 1007 3667 969 3668 1957 968
6947 CONVEX 1280 GT_PK(2,2) 1007 3669 1006 3668 3632 968
6948 CONVEX 1281 GT_PK(2,2) 1007 3669 1006 3670 3645 1045
6949 CONVEX 1282 GT_PK(2,2) 1007 3671 1046 3670 2753 1045
6950 CONVEX 1283 GT_PK(2,2) 1007 3666 1008 3671 3672 1046
6951 CONVEX 1284 GT_PK(2,2) 1122 3673 1123 3674 3675 1158
6952 CONVEX 1285 GT_PK(2,2) 1122 3676 1157 3674 2770 1158
6953 CONVEX 1286 GT_PK(2,2) 973 3677 972 3678 2775 1011
6954 CONVEX 1287 GT_PK(2,2) 1050 3679 1049 3680 3681 1087
6955 CONVEX 1288 GT_PK(2,2) 1050 3679 1049 3682 2773 1011
6956 CONVEX 1289 GT_PK(2,2) 1160 3683 1124 3684 3685 1125
6957 CONVEX 1290 GT_PK(2,2) 1160 3686 1195 3687 3688 1194
6958 CONVEX 1291 GT_PK(2,2) 1089 3689 1051 3690 2789 1052
6959 CONVEX 1292 GT_PK(2,2) 1089 3691 1090 3690 3692 1052
6960 CONVEX 1293 GT_PK(2,2) 686 3693 646 3694 3695 647
6961 CONVEX 1294 GT_PK(2,2) 686 3696 687 3694 2950 647
6962 CONVEX 1295 GT_PK(2,2) 686 3693 646 3697 2813 685
6963 CONVEX 1296 GT_PK(2,2) 686 3698 726 3699 2933 1
6964 CONVEX 1297 GT_PK(2,2) 686 3696 687 3698 2946 726
6965 CONVEX 1298 GT_PK(2,2) 686 3700 725 3699 2930 1
6966 CONVEX 1299 GT_PK(2,2) 686 3700 725 3697 2796 685
6967 CONVEX 1300 GT_PK(2,2) 272 3701 307 3702 1991 306
6968 CONVEX 1301 GT_PK(2,2) 116 3703 91 3704 3705 90
6969 CONVEX 1302 GT_PK(2,2) 16 3706 30 3707 2818 15
6970 CONVEX 1303 GT_PK(2,2) 46 3708 27 3709 3081 45
6971 CONVEX 1304 GT_PK(2,2) 46 3710 28 3708 2825 27
6972 CONVEX 1305 GT_PK(2,2) 170 3711 201 3712 2237 202
6973 CONVEX 1306 GT_PK(2,2) 170 3711 201 3713 3104 169
6974 CONVEX 1307 GT_PK(2,2) 140 3714 139 3715 3716 112
6975 CONVEX 1308 GT_PK(2,2) 140 3717 113 3715 3110 112
6976 CONVEX 1309 GT_PK(2,2) 140 3717 113 3718 3111 141
6977 CONVEX 1310 GT_PK(2,2) 140 3719 170 3718 3720 141
6978 CONVEX 1311 GT_PK(2,2) 140 3714 139 3721 2245 169
6979 CONVEX 1312 GT_PK(2,2) 140 3719 170 3721 3713 169
6980 CONVEX 1313 GT_PK(2,2) 568 3722 528 3723 2833 529
6981 CONVEX 1314 GT_PK(2,2) 569 3724 570 3725 2808 609
6982 CONVEX 1315 GT_PK(2,2) 569 3726 608 3725 2945 609
6983 CONVEX 1316 GT_PK(2,2) 569 3727 568 3726 3728 608
6984 CONVEX 1317 GT_PK(2,2) 569 3724 570 3729 2810 530
6985 CONVEX 1318 GT_PK(2,2) 569 3730 529 3729 2852 530
6986 CONVEX 1319 GT_PK(2,2) 569 3727 568 3730 3723 529
6987 CONVEX 1320 GT_PK(2,2) 415 3731 414 3732 2909 377
6988 CONVEX 1321 GT_PK(2,2) 415 3733 378 3734 2914 416
6989 CONVEX 1322 GT_PK(2,2) 415 3733 378 3732 2911 377
6990 CONVEX 1323 GT_PK(2,2) 415 3735 454 3734 1988 416
6991 CONVEX 1324 GT_PK(2,2) 415 3736 453 3735 3737 454
6992 CONVEX 1325 GT_PK(2,2) 415 3731 414 3736 2848 453
6993 CONVEX 1326 GT_PK(2,2) 492 3738 531 3739 2811 530
6994 CONVEX 1327 GT_PK(2,2) 492 3740 491 3739 2851 530
6995 CONVEX 1328 GT_PK(2,2) 492 3738 531 3741 2961 493
6996 CONVEX 1329 GT_PK(2,2) 492 3740 491 3742 2855 453
6997 CONVEX 1330 GT_PK(2,2) 492 3743 454 3741 1990 493
6998 CONVEX 1331 GT_PK(2,2) 492 3742 453 3743 3737 454
6999 CONVEX 1332 GT_PK(2,2) 349 3744 314 3745 2206 313
7000 CONVEX 1333 GT_PK(2,2) 349 3746 348 3745 3747 313
7001 CONVEX 1334 GT_PK(2,2) 349 3748 385 3746 3749 348
7002 CONVEX 1335 GT_PK(2,2) 277 3750 311 3751 2861 276
7003 CONVEX 1336 GT_PK(2,2) 312 3752 348 3753 3747 313
7004 CONVEX 1337 GT_PK(2,2) 312 3754 277 3755 3750 311
7005 CONVEX 1338 GT_PK(2,2) 312 3756 347 3752 3757 348
7006 CONVEX 1339 GT_PK(2,2) 312 3756 347 3755 2875 311
7007 CONVEX 1340 GT_PK(2,2) 312 3758 278 3753 2205 313
7008 CONVEX 1341 GT_PK(2,2) 312 3754 277 3758 3759 278
7009 CONVEX 1342 GT_PK(2,2) 421 3760 460 3761 1981 459
7010 CONVEX 1343 GT_PK(2,2) 421 3762 420 3761 3763 459
7011 CONVEX 1344 GT_PK(2,2) 421 3760 460 3764 3765 422
7012 CONVEX 1345 GT_PK(2,2) 421 3762 420 3766 2869 383
7013 CONVEX 1346 GT_PK(2,2) 384 3767 347 3768 2873 383
7014 CONVEX 1347 GT_PK(2,2) 384 3769 421 3770 3764 422
7015 CONVEX 1348 GT_PK(2,2) 384 3769 421 3768 3766 383
7016 CONVEX 1349 GT_PK(2,2) 384 3771 385 3770 2857 422
7017 CONVEX 1350 GT_PK(2,2) 384 3771 385 3772 3749 348
7018 CONVEX 1351 GT_PK(2,2) 384 3767 347 3772 3757 348
7019 CONVEX 1352 GT_PK(2,2) 535 3773 575 3774 2993 574
7020 CONVEX 1353 GT_PK(2,2) 535 3775 536 3773 3776 575
7021 CONVEX 1354 GT_PK(2,2) 535 3775 536 3777 2989 497
7022 CONVEX 1355 GT_PK(2,2) 418 3778 417 3779 2001 456
7023 CONVEX 1356 GT_PK(2,2) 418 3780 457 3779 2886 456
7024 CONVEX 1357 GT_PK(2,2) 418 3780 457 3781 3782 419
7025 CONVEX 1358 GT_PK(2,2) 418 3778 417 3783 2005 380
7026 CONVEX 1359 GT_PK(2,2) 418 3784 381 3781 2871 419
7027 CONVEX 1360 GT_PK(2,2) 418 3784 381 3783 2905 380
7028 CONVEX 1361 GT_PK(2,2) 458 3785 497 3786 2883 459
7029 CONVEX 1362 GT_PK(2,2) 458 3787 457 3788 3782 419
7030 CONVEX 1363 GT_PK(2,2) 458 3789 420 3788 2872 419
7031 CONVEX 1364 GT_PK(2,2) 458 3789 420 3786 3763 459
7032 CONVEX 1365 GT_PK(2,2) 884 3790 844 3791 3792 883
7033 CONVEX 1366 GT_PK(2,2) 884 3793 924 3794 2300 885
7034 CONVEX 1367 GT_PK(2,2) 884 3794 885 3795 1738 845
7035 CONVEX 1368 GT_PK(2,2) 884 3790 844 3795 2935 845
7036 CONVEX 1369 GT_PK(2,2) 884 3791 883 3796 3797 923
7037 CONVEX 1370 GT_PK(2,2) 884 3793 924 3796 3798 923
7038 CONVEX 1371 GT_PK(2,2) 843 3799 844 3800 3792 883
7039 CONVEX 1372 GT_PK(2,2) 763 3801 802 3802 2936 762
7040 CONVEX 1373 GT_PK(2,2) 763 3803 723 3804 3529 724
7041 CONVEX 1374 GT_PK(2,2) 763 3803 723 3802 3526 762
7042 CONVEX 1375 GT_PK(2,2) 763 3805 764 3804 2800 724
7043 CONVEX 1376 GT_PK(2,2) 573 3806 613 3807 2996 574
7044 CONVEX 1377 GT_PK(2,2) 573 3808 572 3809 2958 533
7045 CONVEX 1378 GT_PK(2,2) 848 3810 808 3811 2967 847
7046 CONVEX 1379 GT_PK(2,2) 848 3812 887 3813 2297 888
7047 CONVEX 1380 GT_PK(2,2) 848 3812 887 3811 3152 847
7048 CONVEX 1381 GT_PK(2,2) 692 3814 652 3815 2953 653
7049 CONVEX 1382 GT_PK(2,2) 692 3816 691 3814 3817 652
7050 CONVEX 1383 GT_PK(2,2) 612 3818 613 3819 2951 652
7051 CONVEX 1384 GT_PK(2,2) 612 3820 573 3818 3806 613
7052 CONVEX 1385 GT_PK(2,2) 612 3821 611 3822 2984 572
7053 CONVEX 1386 GT_PK(2,2) 612 3820 573 3822 3808 572
7054 CONVEX 1387 GT_PK(2,2) 651 3823 612 3824 3821 611
7055 CONVEX 1388 GT_PK(2,2) 651 3823 612 3825 3819 652
7056 CONVEX 1389 GT_PK(2,2) 651 3826 691 3825 3817 652
7057 CONVEX 1390 GT_PK(2,2) 651 3826 691 3827 2980 690
7058 CONVEX 1391 GT_PK(2,2) 650 3828 689 3829 2976 649
7059 CONVEX 1392 GT_PK(2,2) 650 3830 610 3829 1968 649
7060 CONVEX 1393 GT_PK(2,2) 650 3831 611 3830 2983 610
7061 CONVEX 1394 GT_PK(2,2) 650 3832 651 3831 3824 611
7062 CONVEX 1395 GT_PK(2,2) 650 3828 689 3833 2979 690
7063 CONVEX 1396 GT_PK(2,2) 650 3832 651 3833 3827 690
7064 CONVEX 1397 GT_PK(2,2) 815 3834 854 3835 2986 855
7065 CONVEX 1398 GT_PK(2,2) 893 3836 894 3837 3838 933
7066 CONVEX 1399 GT_PK(2,2) 893 3839 854 3836 2985 894
7067 CONVEX 1400 GT_PK(2,2) 893 3840 932 3837 1951 933
7068 CONVEX 1401 GT_PK(2,2) 893 3841 853 3839 3842 854
7069 CONVEX 1402 GT_PK(2,2) 812 3843 813 3844 2999 773
7070 CONVEX 1403 GT_PK(2,2) 889 3845 888 3846 2295 928
7071 CONVEX 1404 GT_PK(2,2) 889 3847 929 3846 3636 928
7072 CONVEX 1405 GT_PK(2,2) 695 3848 694 3849 3850 655
7073 CONVEX 1406 GT_PK(2,2) 770 3851 769 3852 2970 730
7074 CONVEX 1407 GT_PK(2,2) 615 3853 614 3854 2991 575
7075 CONVEX 1408 GT_PK(2,2) 548 3855 549 3856 3004 509
7076 CONVEX 1409 GT_PK(2,2) 548 3857 589 3858 2029 588
7077 CONVEX 1410 GT_PK(2,2) 548 3855 549 3857 3859 589
7078 CONVEX 1411 GT_PK(2,2) 434 3860 395 3861 2088 396
7079 CONVEX 1412 GT_PK(2,2) 434 3862 433 3860 3006 395
7080 CONVEX 1413 GT_PK(2,2) 434 3863 472 3864 3865 473
7081 CONVEX 1414 GT_PK(2,2) 434 3863 472 3862 3866 433
7082 CONVEX 1415 GT_PK(2,2) 442 3867 404 3868 3013 443
7083 CONVEX 1416 GT_PK(2,2) 442 3867 404 3869 3008 403
7084 CONVEX 1417 GT_PK(2,2) 643 3870 683 3871 2673 682
7085 CONVEX 1418 GT_PK(2,2) 643 3872 642 3871 3016 682
7086 CONVEX 1419 GT_PK(2,2) 643 3872 642 3873 3874 603
7087 CONVEX 1420 GT_PK(2,2) 643 3875 644 3870 3020 683
7088 CONVEX 1421 GT_PK(2,2) 602 3876 642 3877 3874 603
7089 CONVEX 1422 GT_PK(2,2) 602 3878 562 3879 2053 601
7090 CONVEX 1423 GT_PK(2,2) 602 3879 601 3880 2049 641
7091 CONVEX 1424 GT_PK(2,2) 602 3876 642 3880 3017 641
7092 CONVEX 1425 GT_PK(2,2) 602 3878 562 3881 2058 563
7093 CONVEX 1426 GT_PK(2,2) 602 3877 603 3881 3882 563
7094 CONVEX 1427 GT_PK(2,2) 565 3883 526 3884 3885 525
7095 CONVEX 1428 GT_PK(2,2) 488 3886 489 3887 2840 527
7096 CONVEX 1429 GT_PK(2,2) 488 3888 526 3887 3889 527
7097 CONVEX 1430 GT_PK(2,2) 486 3890 524 3891 3892 525
7098 CONVEX 1431 GT_PK(2,2) 444 3893 482 3894 3895 443
7099 CONVEX 1432 GT_PK(2,2) 444 3894 443 3896 3014 405
7100 CONVEX 1433 GT_PK(2,2) 483 3897 482 3898 3026 521
7101 CONVEX 1434 GT_PK(2,2) 483 3898 521 3899 2059 522
7102 CONVEX 1435 GT_PK(2,2) 483 3900 484 3899 3023 522
7103 CONVEX 1436 GT_PK(2,2) 483 3900 484 3901 3902 445
7104 CONVEX 1437 GT_PK(2,2) 483 3903 444 3901 3904 445
7105 CONVEX 1438 GT_PK(2,2) 483 3903 444 3897 3893 482
7106 CONVEX 1439 GT_PK(2,2) 519 3905 559 3906 2661 520
7107 CONVEX 1440 GT_PK(2,2) 519 3907 558 3905 3030 559
7108 CONVEX 1441 GT_PK(2,2) 519 3908 518 3909 3910 480
7109 CONVEX 1442 GT_PK(2,2) 519 3908 518 3907 3376 558
7110 CONVEX 1443 GT_PK(2,2) 288 3911 287 3912 2120 253
7111 CONVEX 1444 GT_PK(2,2) 288 3913 323 3911 3048 287
7112 CONVEX 1445 GT_PK(2,2) 288 3914 254 3912 2115 253
7113 CONVEX 1446 GT_PK(2,2) 288 3914 254 3915 2118 289
7114 CONVEX 1447 GT_PK(2,2) 244 3916 212 3917 3057 245
7115 CONVEX 1448 GT_PK(2,2) 244 3918 211 3916 3062 212
7116 CONVEX 1449 GT_PK(2,2) 244 3919 278 3917 2203 245
7117 CONVEX 1450 GT_PK(2,2) 244 3920 277 3919 3759 278
7118 CONVEX 1451 GT_PK(2,2) 150 3921 180 3922 3060 151
7119 CONVEX 1452 GT_PK(2,2) 150 3923 122 3924 3925 149
7120 CONVEX 1453 GT_PK(2,2) 121 3926 122 3927 3928 96
7121 CONVEX 1454 GT_PK(2,2) 121 3926 122 3929 3925 149
7122 CONVEX 1455 GT_PK(2,2) 97 3930 122 3931 3928 96
7123 CONVEX 1456 GT_PK(2,2) 97 3932 73 3931 3933 96
7124 CONVEX 1457 GT_PK(2,2) 97 3934 74 3932 3066 73
7125 CONVEX 1458 GT_PK(2,2) 97 3934 74 3935 3067 98
7126 CONVEX 1459 GT_PK(2,2) 93 3936 69 3937 3938 92
7127 CONVEX 1460 GT_PK(2,2) 51 3939 73 3940 2183 33
7128 CONVEX 1461 GT_PK(2,2) 51 3941 32 3940 3942 33
7129 CONVEX 1462 GT_PK(2,2) 226 3943 225 3944 1474 259
7130 CONVEX 1463 GT_PK(2,2) 226 3945 193 3943 3092 225
7131 CONVEX 1464 GT_PK(2,2) 294 3946 259 3947 1449 293
7132 CONVEX 1465 GT_PK(2,2) 294 3948 329 3947 2044 293
7133 CONVEX 1466 GT_PK(2,2) 294 3948 329 3949 2041 330
7134 CONVEX 1467 GT_PK(2,2) 294 3950 295 3949 3951 330
7135 CONVEX 1468 GT_PK(2,2) 331 3952 367 3953 2046 330
7136 CONVEX 1469 GT_PK(2,2) 331 3954 295 3953 3951 330
7137 CONVEX 1470 GT_PK(2,2) 134 3955 107 3956 3088 106
7138 CONVEX 1471 GT_PK(2,2) 134 3957 163 3958 3959 164
7139 CONVEX 1472 GT_PK(2,2) 195 3960 196 3961 3962 164
7140 CONVEX 1473 GT_PK(2,2) 195 3963 163 3961 3959 164
7141 CONVEX 1474 GT_PK(2,2) 232 3964 200 3965 3105 233
7142 CONVEX 1475 GT_PK(2,2) 111 3966 139 3967 3716 112
7143 CONVEX 1476 GT_PK(2,2) 111 3968 86 3967 3107 112
7144 CONVEX 1477 GT_PK(2,2) 63 3969 86 3970 3106 87
7145 CONVEX 1478 GT_PK(2,2) 63 3970 87 3971 2242 64
7146 CONVEX 1479 GT_PK(2,2) 63 3972 42 3973 2256 41
7147 CONVEX 1480 GT_PK(2,2) 63 3972 42 3971 2258 64
7148 CONVEX 1481 GT_PK(2,2) 62 3974 40 3975 3119 61
7149 CONVEX 1482 GT_PK(2,2) 62 3976 63 3977 3969 86
7150 CONVEX 1483 GT_PK(2,2) 62 3974 40 3978 3118 41
7151 CONVEX 1484 GT_PK(2,2) 62 3976 63 3978 3973 41
7152 CONVEX 1485 GT_PK(2,2) 38 3979 59 3980 3123 37
7153 CONVEX 1486 GT_PK(2,2) 38 3980 37 3981 2235 19
7154 CONVEX 1487 GT_PK(2,2) 38 3982 39 3983 2261 20
7155 CONVEX 1488 GT_PK(2,2) 38 3983 20 3984 1496 5
7156 CONVEX 1489 GT_PK(2,2) 38 3981 19 3984 3985 5
7157 CONVEX 1490 GT_PK(2,2) 83 3986 59 3987 3122 82
7158 CONVEX 1491 GT_PK(2,2) 83 3988 108 3987 3125 82
7159 CONVEX 1492 GT_PK(2,2) 83 3988 108 3989 3990 109
7160 CONVEX 1493 GT_PK(2,2) 165 3991 196 3992 3962 164
7161 CONVEX 1494 GT_PK(2,2) 1338 3993 1364 3994 3127 1339
7162 CONVEX 1495 GT_PK(2,2) 1338 3995 1337 3996 2272 1310
7163 CONVEX 1496 GT_PK(2,2) 1338 3997 1311 3994 2404 1339
7164 CONVEX 1497 GT_PK(2,2) 1338 3997 1311 3996 3224 1310
7165 CONVEX 1498 GT_PK(2,2) 1388 3998 1364 3999 4000 1387
7166 CONVEX 1499 GT_PK(2,2) 1388 3999 1387 4001 2267 1409
7167 CONVEX 1500 GT_PK(2,2) 1388 4002 1410 4001 2353 1409
7168 CONVEX 1501 GT_PK(2,2) 1388 3998 1364 4003 3126 1365
7169 CONVEX 1502 GT_PK(2,2) 1363 4004 1362 4005 2279 1337
7170 CONVEX 1503 GT_PK(2,2) 1363 4006 1338 4005 3995 1337
7171 CONVEX 1504 GT_PK(2,2) 1363 4006 1338 4007 3993 1364
7172 CONVEX 1505 GT_PK(2,2) 1363 4007 1364 4008 4000 1387
7173 CONVEX 1506 GT_PK(2,2) 1363 4008 1387 4009 2268 1386
7174 CONVEX 1507 GT_PK(2,2) 1363 4004 1362 4009 2276 1386
7175 CONVEX 1508 GT_PK(2,2) 1109 4010 1144 4011 3547 1145
7176 CONVEX 1509 GT_PK(2,2) 1109 4010 1144 4012 4013 1108
7177 CONVEX 1510 GT_PK(2,2) 1037 4014 1038 4015 3139 1075
7178 CONVEX 1511 GT_PK(2,2) 1037 4016 1074 4015 4017 1075
7179 CONVEX 1512 GT_PK(2,2) 962 4018 1000 4019 2283 1001
7180 CONVEX 1513 GT_PK(2,2) 962 4020 963 4019 3131 1001
7181 CONVEX 1514 GT_PK(2,2) 962 4021 924 4022 3798 923
7182 CONVEX 1515 GT_PK(2,2) 962 4020 963 4021 3134 924
7183 CONVEX 1516 GT_PK(2,2) 926 4023 886 4024 3147 925
7184 CONVEX 1517 GT_PK(2,2) 926 4024 925 4025 3133 964
7185 CONVEX 1518 GT_PK(2,2) 926 4026 927 4027 2296 887
7186 CONVEX 1519 GT_PK(2,2) 926 4023 886 4027 3151 887
7187 CONVEX 1520 GT_PK(2,2) 926 4028 965 4025 3143 964
7188 CONVEX 1521 GT_PK(2,2) 926 4028 965 4026 3140 927
7189 CONVEX 1522 GT_PK(2,2) 1349 4029 1374 4030 3164 1348
7190 CONVEX 1523 GT_PK(2,2) 1349 4031 1321 4030 3170 1348
7191 CONVEX 1524 GT_PK(2,2) 1349 4029 1374 4032 4033 1350
7192 CONVEX 1525 GT_PK(2,2) 1191 4034 1157 4035 2769 1192
7193 CONVEX 1526 GT_PK(2,2) 1191 4036 1190 4037 3244 1156
7194 CONVEX 1527 GT_PK(2,2) 1191 4034 1157 4037 4038 1156
7195 CONVEX 1528 GT_PK(2,2) 1292 4039 1261 4040 3189 1293
7196 CONVEX 1529 GT_PK(2,2) 1292 4041 1321 4042 3172 1291
7197 CONVEX 1530 GT_PK(2,2) 1226 4043 1259 4044 4045 1258
7198 CONVEX 1531 GT_PK(2,2) 1226 4046 1193 4047 1740 1192
7199 CONVEX 1532 GT_PK(2,2) 1260 4048 1292 4049 4039 1261
7200 CONVEX 1533 GT_PK(2,2) 1260 4050 1259 4051 4052 1291
7201 CONVEX 1534 GT_PK(2,2) 1260 4048 1292 4051 4042 1291
7202 CONVEX 1535 GT_PK(2,2) 1114 4053 1077 4054 3198 1078
7203 CONVEX 1536 GT_PK(2,2) 1114 4053 1077 4055 3195 1113
7204 CONVEX 1537 GT_PK(2,2) 1114 4054 1078 4056 2380 1115
7205 CONVEX 1538 GT_PK(2,2) 1114 4057 1150 4056 3206 1115
7206 CONVEX 1539 GT_PK(2,2) 1114 4055 1113 4058 2373 1149
7207 CONVEX 1540 GT_PK(2,2) 1114 4057 1150 4058 2377 1149
7208 CONVEX 1541 GT_PK(2,2) 1283 4059 1251 4060 3213 1282
7209 CONVEX 1542 GT_PK(2,2) 1283 4061 1313 4062 4063 1284
7210 CONVEX 1543 GT_PK(2,2) 1283 4064 1252 4062 2402 1284
7211 CONVEX 1544 GT_PK(2,2) 1283 4059 1251 4064 3218 1252
7212 CONVEX 1545 GT_PK(2,2) 1283 4060 1282 4065 2407 1312
7213 CONVEX 1546 GT_PK(2,2) 1283 4061 1313 4065 4066 1312
7214 CONVEX 1547 GT_PK(2,2) 1340 4067 1366 4068 3232 1341
7215 CONVEX 1548 GT_PK(2,2) 1340 4069 1313 4070 4066 1312
7216 CONVEX 1549 GT_PK(2,2) 1340 4069 1313 4068 4071 1341
7217 CONVEX 1550 GT_PK(2,2) 1340 4070 1312 4072 2405 1339
7218 CONVEX 1551 GT_PK(2,2) 1340 4073 1365 4072 3128 1339
7219 CONVEX 1552 GT_PK(2,2) 1340 4067 1366 4073 4074 1365
7220 CONVEX 1553 GT_PK(2,2) 1315 4075 1342 4076 3234 1343
7221 CONVEX 1554 GT_PK(2,2) 1315 4077 1286 4078 3160 1285
7222 CONVEX 1555 GT_PK(2,2) 1315 4077 1286 4079 4080 1316
7223 CONVEX 1556 GT_PK(2,2) 1315 4076 1343 4079 2342 1316
7224 CONVEX 1557 GT_PK(2,2) 1120 4081 1155 4082 3238 1119
7225 CONVEX 1558 GT_PK(2,2) 1120 4081 1155 4083 3243 1156
7226 CONVEX 1559 GT_PK(2,2) 1120 4084 1083 4082 3639 1119
7227 CONVEX 1560 GT_PK(2,2) 626 4085 665 4086 3258 625
7228 CONVEX 1561 GT_PK(2,2) 626 4087 666 4085 3251 665
7229 CONVEX 1562 GT_PK(2,2) 626 4088 587 4086 2428 625
7230 CONVEX 1563 GT_PK(2,2) 703 4089 704 4090 1775 744
7231 CONVEX 1564 GT_PK(2,2) 703 4091 664 4089 3254 704
7232 CONVEX 1565 GT_PK(2,2) 703 4092 743 4090 1529 744
7233 CONVEX 1566 GT_PK(2,2) 703 4091 664 4093 3256 663
7234 CONVEX 1567 GT_PK(2,2) 703 4094 702 4093 3296 663
7235 CONVEX 1568 GT_PK(2,2) 703 4094 702 4092 3297 743
7236 CONVEX 1569 GT_PK(2,2) 503 4095 504 4096 4097 465
7237 CONVEX 1570 GT_PK(2,2) 503 4095 504 4098 3283 542
7238 CONVEX 1571 GT_PK(2,2) 499 4099 460 4100 1982 498
7239 CONVEX 1572 GT_PK(2,2) 466 4101 504 4102 4097 465
7240 CONVEX 1573 GT_PK(2,2) 466 4103 428 4104 1556 467
7241 CONVEX 1574 GT_PK(2,2) 466 4105 505 4104 3264 467
7242 CONVEX 1575 GT_PK(2,2) 466 4101 504 4105 3279 505
7243 CONVEX 1576 GT_PK(2,2) 466 4106 427 4102 4107 465
7244 CONVEX 1577 GT_PK(2,2) 466 4106 427 4103 2507 428
7245 CONVEX 1578 GT_PK(2,2) 660 4108 661 4109 4110 700
7246 CONVEX 1579 GT_PK(2,2) 660 4111 621 4108 3305 661
7247 CONVEX 1580 GT_PK(2,2) 701 4112 702 4113 3294 741
7248 CONVEX 1581 GT_PK(2,2) 701 4112 702 4114 3295 662
7249 CONVEX 1582 GT_PK(2,2) 701 4114 662 4115 3301 661
7250 CONVEX 1583 GT_PK(2,2) 701 4115 661 4116 4110 700
7251 CONVEX 1584 GT_PK(2,2) 701 4117 740 4116 3269 700
7252 CONVEX 1585 GT_PK(2,2) 701 4117 740 4113 3268 741
7253 CONVEX 1586 GT_PK(2,2) 583 4118 584 4119 3290 623
7254 CONVEX 1587 GT_PK(2,2) 583 4120 622 4119 3299 623
7255 CONVEX 1588 GT_PK(2,2) 583 4118 584 4121 3292 544
7256 CONVEX 1589 GT_PK(2,2) 583 4121 544 4122 3284 543
7257 CONVEX 1590 GT_PK(2,2) 583 4122 543 4123 3281 582
7258 CONVEX 1591 GT_PK(2,2) 583 4120 622 4123 3303 582
7259 CONVEX 1592 GT_PK(2,2) 1091 4124 1054 4125 3322 1092
7260 CONVEX 1593 GT_PK(2,2) 1091 4126 1127 4127 4128 1090
7261 CONVEX 1594 GT_PK(2,2) 1053 4129 1014 4130 2783 1052
7262 CONVEX 1595 GT_PK(2,2) 1053 4131 1090 4130 3692 1052
7263 CONVEX 1596 GT_PK(2,2) 1053 4129 1014 4132 2787 1015
7264 CONVEX 1597 GT_PK(2,2) 1053 4133 1054 4132 3342 1015
7265 CONVEX 1598 GT_PK(2,2) 1053 4134 1091 4131 4127 1090
7266 CONVEX 1599 GT_PK(2,2) 1053 4134 1091 4133 4124 1054
7267 CONVEX 1600 GT_PK(2,2) 425 4135 388 4136 3358 387
7268 CONVEX 1601 GT_PK(2,2) 389 4137 427 4138 2508 390
7269 CONVEX 1602 GT_PK(2,2) 389 4139 388 4140 3356 352
7270 CONVEX 1603 GT_PK(2,2) 389 4141 353 4138 2518 390
7271 CONVEX 1604 GT_PK(2,2) 389 4141 353 4140 2516 352
7272 CONVEX 1605 GT_PK(2,2) 350 4142 314 4143 1701 315
7273 CONVEX 1606 GT_PK(2,2) 350 4144 351 4143 3354 315
7274 CONVEX 1607 GT_PK(2,2) 350 4145 349 4142 3744 314
7275 CONVEX 1608 GT_PK(2,2) 350 4144 351 4146 3357 387
7276 CONVEX 1609 GT_PK(2,2) 877 4147 838 4148 2520 878
7277 CONVEX 1610 GT_PK(2,2) 877 4149 837 4147 3362 838
7278 CONVEX 1611 GT_PK(2,2) 800 4150 799 4151 3365 839
7279 CONVEX 1612 GT_PK(2,2) 800 4152 761 4153 2668 801
7280 CONVEX 1613 GT_PK(2,2) 800 4152 761 4154 1919 760
7281 CONVEX 1614 GT_PK(2,2) 800 4150 799 4154 3368 760
7282 CONVEX 1615 GT_PK(2,2) 676 4155 637 4156 3370 636
7283 CONVEX 1616 GT_PK(2,2) 676 4156 636 4157 4158 675
7284 CONVEX 1617 GT_PK(2,2) 676 4159 715 4157 2538 675
7285 CONVEX 1618 GT_PK(2,2) 676 4159 715 4160 3517 716
7286 CONVEX 1619 GT_PK(2,2) 676 4161 677 4160 1888 716
7287 CONVEX 1620 GT_PK(2,2) 676 4155 637 4161 3373 677
7288 CONVEX 1621 GT_PK(2,2) 479 4162 518 4163 3374 517
7289 CONVEX 1622 GT_PK(2,2) 479 4163 517 4164 2528 478
7290 CONVEX 1623 GT_PK(2,2) 479 4165 440 4164 3037 478
7291 CONVEX 1624 GT_PK(2,2) 479 4162 518 4166 3910 480
7292 CONVEX 1625 GT_PK(2,2) 515 4167 516 4168 2526 477
7293 CONVEX 1626 GT_PK(2,2) 475 4169 436 4170 3035 437
7294 CONVEX 1627 GT_PK(2,2) 511 4171 472 4172 4173 510
7295 CONVEX 1628 GT_PK(2,2) 511 4171 472 4174 3865 473
7296 CONVEX 1629 GT_PK(2,2) 550 4175 549 4176 3859 589
7297 CONVEX 1630 GT_PK(2,2) 550 4175 549 4177 3003 510
7298 CONVEX 1631 GT_PK(2,2) 550 4178 511 4177 4172 510
7299 CONVEX 1632 GT_PK(2,2) 635 4179 636 4180 4158 675
7300 CONVEX 1633 GT_PK(2,2) 635 4181 596 4179 2534 636
7301 CONVEX 1634 GT_PK(2,2) 673 4182 713 4183 3432 712
7302 CONVEX 1635 GT_PK(2,2) 593 4184 592 4185 4186 632
7303 CONVEX 1636 GT_PK(2,2) 593 4184 592 4187 4188 553
7304 CONVEX 1637 GT_PK(2,2) 709 4189 749 4190 4191 710
7305 CONVEX 1638 GT_PK(2,2) 709 4189 749 4192 3411 708
7306 CONVEX 1639 GT_PK(2,2) 709 4190 710 4193 3379 670
7307 CONVEX 1640 GT_PK(2,2) 709 4192 708 4193 3395 670
7308 CONVEX 1641 GT_PK(2,2) 905 4194 865 4195 3403 904
7309 CONVEX 1642 GT_PK(2,2) 905 4196 943 4195 4197 904
7310 CONVEX 1643 GT_PK(2,2) 827 4198 787 4199 3407 788
7311 CONVEX 1644 GT_PK(2,2) 827 4198 787 4200 2546 826
7312 CONVEX 1645 GT_PK(2,2) 866 4201 867 4202 4203 906
7313 CONVEX 1646 GT_PK(2,2) 866 4204 905 4202 4205 906
7314 CONVEX 1647 GT_PK(2,2) 866 4204 905 4206 4194 865
7315 CONVEX 1648 GT_PK(2,2) 866 4207 827 4201 4208 867
7316 CONVEX 1649 GT_PK(2,2) 866 4206 865 4209 3402 826
7317 CONVEX 1650 GT_PK(2,2) 866 4207 827 4209 4200 826
7318 CONVEX 1651 GT_PK(2,2) 832 4210 831 4211 3439 792
7319 CONVEX 1652 GT_PK(2,2) 832 4211 792 4212 3387 793
7320 CONVEX 1653 GT_PK(2,2) 832 4213 833 4212 3507 793
7321 CONVEX 1654 GT_PK(2,2) 832 4213 833 4214 3504 872
7322 CONVEX 1655 GT_PK(2,2) 830 4215 831 4216 3440 791
7323 CONVEX 1656 GT_PK(2,2) 828 4217 867 4218 4219 868
7324 CONVEX 1657 GT_PK(2,2) 828 4220 789 4221 3442 788
7325 CONVEX 1658 GT_PK(2,2) 828 4222 827 4221 4199 788
7326 CONVEX 1659 GT_PK(2,2) 828 4222 827 4217 4208 867
7327 CONVEX 1660 GT_PK(2,2) 986 4223 1025 4224 3448 1024
7328 CONVEX 1661 GT_PK(2,2) 986 4225 985 4224 2602 1024
7329 CONVEX 1662 GT_PK(2,2) 986 4226 947 4227 3457 948
7330 CONVEX 1663 GT_PK(2,2) 986 4226 947 4225 4228 985
7331 CONVEX 1664 GT_PK(2,2) 907 4229 867 4230 4219 868
7332 CONVEX 1665 GT_PK(2,2) 907 4229 867 4231 4203 906
7333 CONVEX 1666 GT_PK(2,2) 907 4232 945 4231 4233 906
7334 CONVEX 1667 GT_PK(2,2) 990 4234 991 4235 3460 1029
7335 CONVEX 1668 GT_PK(2,2) 990 4235 1029 4236 3429 1028
7336 CONVEX 1669 GT_PK(2,2) 990 4237 989 4236 2619 1028
7337 CONVEX 1670 GT_PK(2,2) 990 4238 951 4237 3485 989
7338 CONVEX 1671 GT_PK(2,2) 990 4234 991 4239 3476 952
7339 CONVEX 1672 GT_PK(2,2) 990 4238 951 4239 3489 952
7340 CONVEX 1673 GT_PK(2,2) 1072 4240 1073 4241 4242 1035
7341 CONVEX 1674 GT_PK(2,2) 1072 4243 1109 4244 4012 1108
7342 CONVEX 1675 GT_PK(2,2) 1072 4243 1109 4240 4245 1073
7343 CONVEX 1676 GT_PK(2,2) 994 4246 993 4247 3471 1032
7344 CONVEX 1677 GT_PK(2,2) 994 4248 1033 4247 3463 1032
7345 CONVEX 1678 GT_PK(2,2) 994 4246 993 4249 4250 955
7346 CONVEX 1679 GT_PK(2,2) 994 4251 956 4249 4252 955
7347 CONVEX 1680 GT_PK(2,2) 954 4253 953 4254 3478 915
7348 CONVEX 1681 GT_PK(2,2) 954 4255 993 4256 4250 955
7349 CONVEX 1682 GT_PK(2,2) 954 4255 993 4257 3469 992
7350 CONVEX 1683 GT_PK(2,2) 954 4253 953 4257 3477 992
7351 CONVEX 1684 GT_PK(2,2) 954 4258 916 4256 4259 955
7352 CONVEX 1685 GT_PK(2,2) 954 4258 916 4254 4260 915
7353 CONVEX 1686 GT_PK(2,2) 1238 4261 1269 4262 2722 1237
7354 CONVEX 1687 GT_PK(2,2) 1238 4263 1205 4262 3491 1237
7355 CONVEX 1688 GT_PK(2,2) 1238 4261 1269 4264 2726 1270
7356 CONVEX 1689 GT_PK(2,2) 1238 4265 1239 4264 3613 1270
7357 CONVEX 1690 GT_PK(2,2) 1238 4263 1205 4266 3583 1206
7358 CONVEX 1691 GT_PK(2,2) 1238 4265 1239 4266 3609 1206
7359 CONVEX 1692 GT_PK(2,2) 1210 4267 1243 4268 2748 1211
7360 CONVEX 1693 GT_PK(2,2) 1210 4267 1243 4269 3617 1242
7361 CONVEX 1694 GT_PK(2,2) 795 4270 834 4271 3510 835
7362 CONVEX 1695 GT_PK(2,2) 795 4272 755 4273 3518 756
7363 CONVEX 1696 GT_PK(2,2) 795 4270 834 4274 3512 794
7364 CONVEX 1697 GT_PK(2,2) 795 4272 755 4274 3515 794
7365 CONVEX 1698 GT_PK(2,2) 795 4275 796 4273 1889 756
7366 CONVEX 1699 GT_PK(2,2) 795 4275 796 4271 1895 835
7367 CONVEX 1700 GT_PK(2,2) 1403 4276 1404 4277 2681 1422
7368 CONVEX 1701 GT_PK(2,2) 1403 4278 1402 4279 4280 1381
7369 CONVEX 1702 GT_PK(2,2) 1333 4281 1334 4282 3570 1306
7370 CONVEX 1703 GT_PK(2,2) 1333 4283 1305 4282 4284 1306
7371 CONVEX 1704 GT_PK(2,2) 1296 4285 1324 4286 4287 1297
7372 CONVEX 1705 GT_PK(2,2) 1296 4288 1267 4289 3596 1266
7373 CONVEX 1706 GT_PK(2,2) 1296 4288 1267 4286 2737 1297
7374 CONVEX 1707 GT_PK(2,2) 1325 4290 1324 4291 4292 1351
7375 CONVEX 1708 GT_PK(2,2) 1325 4293 1326 4294 3573 1298
7376 CONVEX 1709 GT_PK(2,2) 1325 4293 1326 4291 3577 1351
7377 CONVEX 1710 GT_PK(2,2) 1325 4294 1298 4295 2717 1297
7378 CONVEX 1711 GT_PK(2,2) 1325 4290 1324 4295 4287 1297
7379 CONVEX 1712 GT_PK(2,2) 1398 4296 1353 4297 4298 1376
7380 CONVEX 1713 GT_PK(2,2) 1146 4299 1147 4300 2708 1181
7381 CONVEX 1714 GT_PK(2,2) 1146 4301 1180 4300 3542 1181
7382 CONVEX 1715 GT_PK(2,2) 1146 4301 1180 4302 3544 1145
7383 CONVEX 1716 GT_PK(2,2) 1276 4303 1305 4304 4284 1306
7384 CONVEX 1717 GT_PK(2,2) 1276 4305 1277 4304 3568 1306
7385 CONVEX 1718 GT_PK(2,2) 1276 4305 1277 4306 3555 1245
7386 CONVEX 1719 GT_PK(2,2) 1276 4306 1245 4307 2701 1244
7387 CONVEX 1720 GT_PK(2,2) 1352 4308 1326 4309 3574 1327
7388 CONVEX 1721 GT_PK(2,2) 1352 4308 1326 4310 3576 1375
7389 CONVEX 1722 GT_PK(2,2) 1352 4311 1353 4309 4312 1327
7390 CONVEX 1723 GT_PK(2,2) 1352 4310 1375 4313 4314 1376
7391 CONVEX 1724 GT_PK(2,2) 1352 4311 1353 4313 4298 1376
7392 CONVEX 1725 GT_PK(2,2) 1202 4315 1203 4316 3607 1169
7393 CONVEX 1726 GT_PK(2,2) 1202 4316 1169 4317 2734 1168
7394 CONVEX 1727 GT_PK(2,2) 1202 4318 1235 4319 3599 1234
7395 CONVEX 1728 GT_PK(2,2) 1202 4318 1235 4315 3601 1203
7396 CONVEX 1729 GT_PK(2,2) 1202 4320 1201 4319 1863 1234
7397 CONVEX 1730 GT_PK(2,2) 1202 4320 1201 4317 2572 1168
7398 CONVEX 1731 GT_PK(2,2) 1275 4321 1274 4322 3620 1304
7399 CONVEX 1732 GT_PK(2,2) 1275 4321 1274 4323 3615 1243
7400 CONVEX 1733 GT_PK(2,2) 1275 4324 1305 4322 4325 1304
7401 CONVEX 1734 GT_PK(2,2) 1275 4326 1276 4324 4303 1305
7402 CONVEX 1735 GT_PK(2,2) 1275 4323 1243 4327 2747 1244
7403 CONVEX 1736 GT_PK(2,2) 1275 4326 1276 4327 4307 1244
7404 CONVEX 1737 GT_PK(2,2) 1118 4328 1082 4329 3647 1081
7405 CONVEX 1738 GT_PK(2,2) 1118 4330 1117 4329 3650 1081
7406 CONVEX 1739 GT_PK(2,2) 1118 4328 1082 4331 3638 1119
7407 CONVEX 1740 GT_PK(2,2) 1118 4330 1117 4332 3652 1153
7408 CONVEX 1741 GT_PK(2,2) 1118 4333 1154 4331 3239 1119
7409 CONVEX 1742 GT_PK(2,2) 1118 4333 1154 4332 2414 1153
7410 CONVEX 1743 GT_PK(2,2) 1086 4334 1123 4335 2792 1087
7411 CONVEX 1744 GT_PK(2,2) 1086 4336 1122 4334 3673 1123
7412 CONVEX 1745 GT_PK(2,2) 1086 4337 1049 4335 3681 1087
7413 CONVEX 1746 GT_PK(2,2) 1121 4338 1157 4339 4038 1156
7414 CONVEX 1747 GT_PK(2,2) 1121 4340 1122 4338 3676 1157
7415 CONVEX 1748 GT_PK(2,2) 1121 4341 1120 4339 4083 1156
7416 CONVEX 1749 GT_PK(2,2) 935 4342 973 4343 4344 974
7417 CONVEX 1750 GT_PK(2,2) 935 4345 895 4346 3328 896
7418 CONVEX 1751 GT_PK(2,2) 935 4347 936 4346 1797 896
7419 CONVEX 1752 GT_PK(2,2) 935 4343 974 4347 2778 936
7420 CONVEX 1753 GT_PK(2,2) 934 4348 895 4349 1959 894
7421 CONVEX 1754 GT_PK(2,2) 934 4350 973 4351 3677 972
7422 CONVEX 1755 GT_PK(2,2) 934 4352 935 4348 4345 895
7423 CONVEX 1756 GT_PK(2,2) 934 4352 935 4350 4342 973
7424 CONVEX 1757 GT_PK(2,2) 934 4349 894 4353 3838 933
7425 CONVEX 1758 GT_PK(2,2) 934 4351 972 4353 2750 933
7426 CONVEX 1759 GT_PK(2,2) 1012 4354 1051 4355 2788 1013
7427 CONVEX 1760 GT_PK(2,2) 1012 4356 974 4355 2780 1013
7428 CONVEX 1761 GT_PK(2,2) 1012 4357 973 4356 4344 974
7429 CONVEX 1762 GT_PK(2,2) 1012 4357 973 4358 3678 1011
7430 CONVEX 1763 GT_PK(2,2) 1012 4359 1050 4358 3682 1011
7431 CONVEX 1764 GT_PK(2,2) 1012 4359 1050 4354 4360 1051
7432 CONVEX 1765 GT_PK(2,2) 1159 4361 1160 4362 3683 1124
7433 CONVEX 1766 GT_PK(2,2) 1159 4363 1193 4364 1741 1158
7434 CONVEX 1767 GT_PK(2,2) 1159 4365 1194 4363 4366 1193
7435 CONVEX 1768 GT_PK(2,2) 1159 4361 1160 4365 3687 1194
7436 CONVEX 1769 GT_PK(2,2) 1159 4367 1123 4364 3675 1158
7437 CONVEX 1770 GT_PK(2,2) 1159 4362 1124 4367 2790 1123
7438 CONVEX 1771 GT_PK(2,2) 1088 4368 1124 4369 3685 1125
7439 CONVEX 1772 GT_PK(2,2) 1088 4370 1089 4369 4371 1125
7440 CONVEX 1773 GT_PK(2,2) 1088 4368 1124 4372 2791 1087
7441 CONVEX 1774 GT_PK(2,2) 1088 4370 1089 4373 3689 1051
7442 CONVEX 1775 GT_PK(2,2) 1088 4374 1050 4372 3680 1087
7443 CONVEX 1776 GT_PK(2,2) 1088 4374 1050 4373 4360 1051
7444 CONVEX 1777 GT_PK(2,2) 1128 4375 1127 4376 4377 1163
7445 CONVEX 1778 GT_PK(2,2) 1128 4378 1092 4379 3308 1129
7446 CONVEX 1779 GT_PK(2,2) 1128 4380 1091 4378 4125 1092
7447 CONVEX 1780 GT_PK(2,2) 1128 4380 1091 4375 4126 1127
7448 CONVEX 1781 GT_PK(2,2) 1128 4381 1164 4379 1542 1129
7449 CONVEX 1782 GT_PK(2,2) 1128 4376 1163 4381 2793 1164
7450 CONVEX 1783 GT_PK(2,2) 1161 4382 1160 4383 3684 1125
7451 CONVEX 1784 GT_PK(2,2) 1161 4384 1195 4385 3185 1196
7452 CONVEX 1785 GT_PK(2,2) 1161 4382 1160 4384 3686 1195
7453 CONVEX 1786 GT_PK(2,2) 1162 4386 1163 4387 2795 1197
7454 CONVEX 1787 GT_PK(2,2) 1162 4388 1127 4386 4377 1163
7455 CONVEX 1788 GT_PK(2,2) 1162 4387 1197 4389 1964 1196
7456 CONVEX 1789 GT_PK(2,2) 1162 4390 1161 4389 4385 1196
7457 CONVEX 1790 GT_PK(2,2) 271 4391 305 4392 2917 306
7458 CONVEX 1791 GT_PK(2,2) 271 4393 272 4392 3702 306
7459 CONVEX 1792 GT_PK(2,2) 240 4394 241 4395 1972 274
7460 CONVEX 1793 GT_PK(2,2) 273 4396 307 4397 2009 308
7461 CONVEX 1794 GT_PK(2,2) 273 4398 272 4396 3701 307
7462 CONVEX 1795 GT_PK(2,2) 273 4399 274 4397 2897 308
7463 CONVEX 1796 GT_PK(2,2) 273 4400 240 4399 4395 274
7464 CONVEX 1797 GT_PK(2,2) 67 4401 91 4402 3705 90
7465 CONVEX 1798 GT_PK(2,2) 67 4403 66 4402 2828 90
7466 CONVEX 1799 GT_PK(2,2) 67 4403 66 4404 1978 45
7467 CONVEX 1800 GT_PK(2,2) 67 4405 46 4404 3709 45
7468 CONVEX 1801 GT_PK(2,2) 47 4406 28 4407 2821 29
7469 CONVEX 1802 GT_PK(2,2) 47 4408 46 4406 3710 28
7470 CONVEX 1803 GT_PK(2,2) 47 4407 29 4409 2820 48
7471 CONVEX 1804 GT_PK(2,2) 47 4410 69 4409 4411 48
7472 CONVEX 1805 GT_PK(2,2) 567 4412 528 4413 2841 527
7473 CONVEX 1806 GT_PK(2,2) 567 4414 568 4412 3722 528
7474 CONVEX 1807 GT_PK(2,2) 607 4415 608 4416 2944 647
7475 CONVEX 1808 GT_PK(2,2) 607 4417 568 4415 3728 608
7476 CONVEX 1809 GT_PK(2,2) 607 4418 567 4417 4414 568
7477 CONVEX 1810 GT_PK(2,2) 607 4419 646 4416 3695 647
7478 CONVEX 1811 GT_PK(2,2) 607 4419 646 4420 2815 606
7479 CONVEX 1812 GT_PK(2,2) 607 4418 567 4420 4421 606
7480 CONVEX 1813 GT_PK(2,2) 386 4422 349 4423 3748 385
7481 CONVEX 1814 GT_PK(2,2) 386 4423 385 4424 2856 423
7482 CONVEX 1815 GT_PK(2,2) 386 4425 350 4426 4146 387
7483 CONVEX 1816 GT_PK(2,2) 386 4425 350 4422 4145 349
7484 CONVEX 1817 GT_PK(2,2) 496 4427 535 4428 3777 497
7485 CONVEX 1818 GT_PK(2,2) 496 4429 457 4430 2885 495
7486 CONVEX 1819 GT_PK(2,2) 496 4431 458 4428 3785 497
7487 CONVEX 1820 GT_PK(2,2) 496 4431 458 4429 3787 457
7488 CONVEX 1821 GT_PK(2,2) 534 4432 535 4433 3774 574
7489 CONVEX 1822 GT_PK(2,2) 534 4434 573 4435 3809 533
7490 CONVEX 1823 GT_PK(2,2) 534 4434 573 4433 3807 574
7491 CONVEX 1824 GT_PK(2,2) 534 4436 495 4435 2882 533
7492 CONVEX 1825 GT_PK(2,2) 534 4437 496 4436 4430 495
7493 CONVEX 1826 GT_PK(2,2) 534 4437 496 4432 4427 535
7494 CONVEX 1827 GT_PK(2,2) 803 4438 763 4439 3805 764
7495 CONVEX 1828 GT_PK(2,2) 803 4438 763 4440 3801 802
7496 CONVEX 1829 GT_PK(2,2) 804 4441 843 4442 3799 844
7497 CONVEX 1830 GT_PK(2,2) 804 4443 765 4444 2926 805
7498 CONVEX 1831 GT_PK(2,2) 804 4442 844 4444 2934 805
7499 CONVEX 1832 GT_PK(2,2) 804 4443 765 4445 2931 764
7500 CONVEX 1833 GT_PK(2,2) 804 4446 803 4445 4439 764
7501 CONVEX 1834 GT_PK(2,2) 804 4446 803 4441 4447 843
7502 CONVEX 1835 GT_PK(2,2) 693 4448 692 4449 4450 732
7503 CONVEX 1836 GT_PK(2,2) 693 4451 733 4449 4452 732
7504 CONVEX 1837 GT_PK(2,2) 693 4451 733 4453 4454 694
7505 CONVEX 1838 GT_PK(2,2) 693 4448 692 4455 3815 653
7506 CONVEX 1839 GT_PK(2,2) 731 4456 692 4457 4450 732
7507 CONVEX 1840 GT_PK(2,2) 731 4458 771 4457 4459 732
7508 CONVEX 1841 GT_PK(2,2) 731 4460 691 4461 2981 730
7509 CONVEX 1842 GT_PK(2,2) 731 4456 692 4460 3816 691
7510 CONVEX 1843 GT_PK(2,2) 731 4462 770 4461 3852 730
7511 CONVEX 1844 GT_PK(2,2) 731 4462 770 4458 4463 771
7512 CONVEX 1845 GT_PK(2,2) 892 4464 932 4465 1948 931
7513 CONVEX 1846 GT_PK(2,2) 892 4466 891 4465 2988 931
7514 CONVEX 1847 GT_PK(2,2) 892 4467 893 4464 3840 932
7515 CONVEX 1848 GT_PK(2,2) 892 4467 893 4468 3841 853
7516 CONVEX 1849 GT_PK(2,2) 816 4469 815 4470 3835 855
7517 CONVEX 1850 GT_PK(2,2) 816 4471 856 4470 3329 855
7518 CONVEX 1851 GT_PK(2,2) 816 4472 777 4473 3325 817
7519 CONVEX 1852 GT_PK(2,2) 816 4471 856 4473 3336 817
7520 CONVEX 1853 GT_PK(2,2) 814 4474 815 4475 3834 854
7521 CONVEX 1854 GT_PK(2,2) 814 4476 853 4475 3842 854
7522 CONVEX 1855 GT_PK(2,2) 814 4477 774 4478 2997 813
7523 CONVEX 1856 GT_PK(2,2) 814 4476 853 4478 4479 813
7524 CONVEX 1857 GT_PK(2,2) 772 4480 812 4481 3844 773
7525 CONVEX 1858 GT_PK(2,2) 772 4482 733 4481 4483 773
7526 CONVEX 1859 GT_PK(2,2) 772 4482 733 4484 4452 732
7527 CONVEX 1860 GT_PK(2,2) 772 4485 771 4484 4459 732
7528 CONVEX 1861 GT_PK(2,2) 849 4486 848 4487 3813 888
7529 CONVEX 1862 GT_PK(2,2) 849 4488 889 4487 3845 888
7530 CONVEX 1863 GT_PK(2,2) 734 4489 695 4490 3848 694
7531 CONVEX 1864 GT_PK(2,2) 734 4491 774 4492 2998 773
7532 CONVEX 1865 GT_PK(2,2) 734 4491 774 4493 4494 735
7533 CONVEX 1866 GT_PK(2,2) 734 4489 695 4493 4495 735
7534 CONVEX 1867 GT_PK(2,2) 734 4496 733 4492 4483 773
7535 CONVEX 1868 GT_PK(2,2) 734 4496 733 4490 4454 694
7536 CONVEX 1869 GT_PK(2,2) 471 4497 510 4498 3005 509
7537 CONVEX 1870 GT_PK(2,2) 471 4499 472 4497 4173 510
7538 CONVEX 1871 GT_PK(2,2) 435 4500 436 4501 3033 397
7539 CONVEX 1872 GT_PK(2,2) 435 4501 397 4502 2078 396
7540 CONVEX 1873 GT_PK(2,2) 435 4503 434 4502 3861 396
7541 CONVEX 1874 GT_PK(2,2) 435 4503 434 4504 3864 473
7542 CONVEX 1875 GT_PK(2,2) 604 4505 643 4506 3873 603
7543 CONVEX 1876 GT_PK(2,2) 604 4505 643 4507 3875 644
7544 CONVEX 1877 GT_PK(2,2) 487 4508 526 4509 3885 525
7545 CONVEX 1878 GT_PK(2,2) 487 4510 488 4508 3888 526
7546 CONVEX 1879 GT_PK(2,2) 487 4511 486 4509 3891 525
7547 CONVEX 1880 GT_PK(2,2) 485 4512 524 4513 3024 523
7548 CONVEX 1881 GT_PK(2,2) 485 4514 486 4512 3890 524
7549 CONVEX 1882 GT_PK(2,2) 485 4515 484 4513 3022 523
7550 CONVEX 1883 GT_PK(2,2) 485 4514 486 4516 4517 447
7551 CONVEX 1884 GT_PK(2,2) 481 4518 482 4519 3027 520
7552 CONVEX 1885 GT_PK(2,2) 481 4520 519 4519 3906 520
7553 CONVEX 1886 GT_PK(2,2) 481 4518 482 4521 3895 443
7554 CONVEX 1887 GT_PK(2,2) 481 4520 519 4522 3909 480
7555 CONVEX 1888 GT_PK(2,2) 481 4523 442 4521 3868 443
7556 CONVEX 1889 GT_PK(2,2) 481 4523 442 4522 4524 480
7557 CONVEX 1890 GT_PK(2,2) 324 4525 288 4526 3915 289
7558 CONVEX 1891 GT_PK(2,2) 324 4527 325 4526 2141 289
7559 CONVEX 1892 GT_PK(2,2) 324 4528 323 4529 3049 360
7560 CONVEX 1893 GT_PK(2,2) 324 4525 288 4528 3913 323
7561 CONVEX 1894 GT_PK(2,2) 324 4530 361 4529 2068 360
7562 CONVEX 1895 GT_PK(2,2) 324 4530 361 4527 2069 325
7563 CONVEX 1896 GT_PK(2,2) 179 4531 180 4532 3061 211
7564 CONVEX 1897 GT_PK(2,2) 179 4532 211 4533 4534 210
7565 CONVEX 1898 GT_PK(2,2) 179 4535 178 4533 4536 210
7566 CONVEX 1899 GT_PK(2,2) 179 4535 178 4537 4538 149
7567 CONVEX 1900 GT_PK(2,2) 179 4539 150 4537 3924 149
7568 CONVEX 1901 GT_PK(2,2) 179 4539 150 4531 3921 180
7569 CONVEX 1902 GT_PK(2,2) 243 4540 211 4541 4534 210
7570 CONVEX 1903 GT_PK(2,2) 243 4542 244 4540 3918 211
7571 CONVEX 1904 GT_PK(2,2) 243 4541 210 4543 4544 242
7572 CONVEX 1905 GT_PK(2,2) 243 4542 244 4545 3920 277
7573 CONVEX 1906 GT_PK(2,2) 243 4546 276 4543 1985 242
7574 CONVEX 1907 GT_PK(2,2) 243 4545 277 4546 3751 276
7575 CONVEX 1908 GT_PK(2,2) 123 4547 150 4548 3923 122
7576 CONVEX 1909 GT_PK(2,2) 123 4549 97 4548 3930 122
7577 CONVEX 1910 GT_PK(2,2) 123 4550 151 4551 2181 124
7578 CONVEX 1911 GT_PK(2,2) 123 4547 150 4550 3922 151
7579 CONVEX 1912 GT_PK(2,2) 123 4551 124 4552 1668 98
7580 CONVEX 1913 GT_PK(2,2) 123 4549 97 4552 3935 98
7581 CONVEX 1914 GT_PK(2,2) 95 4553 121 4554 4555 120
7582 CONVEX 1915 GT_PK(2,2) 95 4553 121 4556 3927 96
7583 CONVEX 1916 GT_PK(2,2) 70 4557 69 4558 4411 48
7584 CONVEX 1917 GT_PK(2,2) 70 4559 93 4557 3936 69
7585 CONVEX 1918 GT_PK(2,2) 50 4560 32 4561 4562 31
7586 CONVEX 1919 GT_PK(2,2) 50 4563 51 4560 3941 32
7587 CONVEX 1920 GT_PK(2,2) 368 4564 367 4565 3012 405
7588 CONVEX 1921 GT_PK(2,2) 368 4566 331 4564 3952 367
7589 CONVEX 1922 GT_PK(2,2) 446 4567 484 4568 3902 445
7590 CONVEX 1923 GT_PK(2,2) 446 4569 485 4570 4516 447
7591 CONVEX 1924 GT_PK(2,2) 446 4569 485 4567 4515 484
7592 CONVEX 1925 GT_PK(2,2) 267 4571 302 4572 2230 268
7593 CONVEX 1926 GT_PK(2,2) 267 4572 268 4573 2889 234
7594 CONVEX 1927 GT_PK(2,2) 267 4574 233 4573 2241 234
7595 CONVEX 1928 GT_PK(2,2) 264 4575 263 4576 4577 298
7596 CONVEX 1929 GT_PK(2,2) 133 4578 134 4579 3956 106
7597 CONVEX 1930 GT_PK(2,2) 133 4580 105 4581 2221 132
7598 CONVEX 1931 GT_PK(2,2) 133 4580 105 4579 2219 106
7599 CONVEX 1932 GT_PK(2,2) 133 4582 162 4581 2229 132
7600 CONVEX 1933 GT_PK(2,2) 133 4583 163 4582 4584 162
7601 CONVEX 1934 GT_PK(2,2) 133 4578 134 4583 3957 163
7602 CONVEX 1935 GT_PK(2,2) 135 4585 108 4586 3124 107
7603 CONVEX 1936 GT_PK(2,2) 135 4587 134 4586 3955 107
7604 CONVEX 1937 GT_PK(2,2) 135 4587 134 4588 3958 164
7605 CONVEX 1938 GT_PK(2,2) 135 4589 165 4588 3992 164
7606 CONVEX 1939 GT_PK(2,2) 194 4590 226 4591 3945 193
7607 CONVEX 1940 GT_PK(2,2) 194 4592 195 4593 3963 163
7608 CONVEX 1941 GT_PK(2,2) 194 4594 227 4590 4595 226
7609 CONVEX 1942 GT_PK(2,2) 194 4594 227 4592 4596 195
7610 CONVEX 1943 GT_PK(2,2) 194 4593 163 4597 4584 162
7611 CONVEX 1944 GT_PK(2,2) 194 4591 193 4597 3091 162
7612 CONVEX 1945 GT_PK(2,2) 375 4598 376 4599 2907 413
7613 CONVEX 1946 GT_PK(2,2) 375 4600 374 4601 4602 338
7614 CONVEX 1947 GT_PK(2,2) 375 4598 376 4603 2922 339
7615 CONVEX 1948 GT_PK(2,2) 375 4601 338 4603 3093 339
7616 CONVEX 1949 GT_PK(2,2) 199 4604 232 4605 3964 200
7617 CONVEX 1950 GT_PK(2,2) 199 4606 167 4607 4608 198
7618 CONVEX 1951 GT_PK(2,2) 199 4607 198 4609 4610 231
7619 CONVEX 1952 GT_PK(2,2) 199 4604 232 4609 4611 231
7620 CONVEX 1953 GT_PK(2,2) 199 4605 200 4612 3101 168
7621 CONVEX 1954 GT_PK(2,2) 199 4606 167 4612 4613 168
7622 CONVEX 1955 GT_PK(2,2) 138 4614 111 4615 3966 139
7623 CONVEX 1956 GT_PK(2,2) 138 4615 139 4616 2244 168
7624 CONVEX 1957 GT_PK(2,2) 138 4617 167 4618 4619 137
7625 CONVEX 1958 GT_PK(2,2) 138 4617 167 4616 4613 168
7626 CONVEX 1959 GT_PK(2,2) 110 4620 138 4621 4614 111
7627 CONVEX 1960 GT_PK(2,2) 110 4622 109 4623 4624 137
7628 CONVEX 1961 GT_PK(2,2) 110 4620 138 4623 4618 137
7629 CONVEX 1962 GT_PK(2,2) 85 4625 111 4626 3968 86
7630 CONVEX 1963 GT_PK(2,2) 85 4627 62 4628 3975 61
7631 CONVEX 1964 GT_PK(2,2) 85 4627 62 4626 3977 86
7632 CONVEX 1965 GT_PK(2,2) 85 4629 110 4625 4621 111
7633 CONVEX 1966 GT_PK(2,2) 60 4630 83 4631 3986 59
7634 CONVEX 1967 GT_PK(2,2) 60 4632 38 4633 3982 39
7635 CONVEX 1968 GT_PK(2,2) 60 4632 38 4631 3979 59
7636 CONVEX 1969 GT_PK(2,2) 60 4633 39 4634 3120 61
7637 CONVEX 1970 GT_PK(2,2) 136 4635 109 4636 4624 137
7638 CONVEX 1971 GT_PK(2,2) 136 4637 108 4635 3990 109
7639 CONVEX 1972 GT_PK(2,2) 136 4638 135 4637 4585 108
7640 CONVEX 1973 GT_PK(2,2) 136 4638 135 4639 4589 165
7641 CONVEX 1974 GT_PK(2,2) 197 4640 165 4641 3991 196
7642 CONVEX 1975 GT_PK(2,2) 1389 4642 1388 4643 4003 1365
7643 CONVEX 1976 GT_PK(2,2) 1389 4644 1411 4645 3190 1390
7644 CONVEX 1977 GT_PK(2,2) 1389 4644 1411 4646 3194 1410
7645 CONVEX 1978 GT_PK(2,2) 1389 4642 1388 4646 4002 1410
7646 CONVEX 1979 GT_PK(2,2) 1389 4647 1366 4645 3230 1390
7647 CONVEX 1980 GT_PK(2,2) 1389 4647 1366 4643 4074 1365
7648 CONVEX 1981 GT_PK(2,2) 1110 4648 1074 4649 4650 1073
7649 CONVEX 1982 GT_PK(2,2) 1110 4651 1109 4649 4245 1073
7650 CONVEX 1983 GT_PK(2,2) 1110 4651 1109 4652 4011 1145
7651 CONVEX 1984 GT_PK(2,2) 1110 4653 1146 4652 4302 1145
7652 CONVEX 1985 GT_PK(2,2) 840 4654 800 4655 4153 801
7653 CONVEX 1986 GT_PK(2,2) 840 4654 800 4656 4151 839
7654 CONVEX 1987 GT_PK(2,2) 842 4657 803 4658 4440 802
7655 CONVEX 1988 GT_PK(2,2) 842 4657 803 4659 4447 843
7656 CONVEX 1989 GT_PK(2,2) 999 4660 1038 4661 3135 1000
7657 CONVEX 1990 GT_PK(2,2) 999 4662 1037 4660 4014 1038
7658 CONVEX 1991 GT_PK(2,2) 1036 4663 1037 4664 4016 1074
7659 CONVEX 1992 GT_PK(2,2) 1036 4665 1073 4666 4242 1035
7660 CONVEX 1993 GT_PK(2,2) 1036 4664 1074 4665 4650 1073
7661 CONVEX 1994 GT_PK(2,2) 1225 4667 1226 4668 4044 1258
7662 CONVEX 1995 GT_PK(2,2) 1225 4669 1191 4670 4035 1192
7663 CONVEX 1996 GT_PK(2,2) 1225 4667 1226 4670 4047 1192
7664 CONVEX 1997 GT_PK(2,2) 1287 4671 1317 4672 2345 1316
7665 CONVEX 1998 GT_PK(2,2) 1287 4673 1286 4672 4080 1316
7666 CONVEX 1999 GT_PK(2,2) 1255 4674 1254 4675 3158 1286
7667 CONVEX 2000 GT_PK(2,2) 1255 4676 1287 4675 4673 1286
7668 CONVEX 2001 GT_PK(2,2) 1255 4676 1287 4677 4678 1256
7669 CONVEX 2002 GT_PK(2,2) 1255 4674 1254 4679 3162 1222
7670 CONVEX 2003 GT_PK(2,2) 1318 4680 1289 4681 4682 1319
7671 CONVEX 2004 GT_PK(2,2) 1318 4683 1317 4684 2346 1345
7672 CONVEX 2005 GT_PK(2,2) 1318 4684 1345 4685 2323 1346
7673 CONVEX 2006 GT_PK(2,2) 1318 4681 1319 4685 3175 1346
7674 CONVEX 2007 GT_PK(2,2) 1288 4686 1287 4687 4678 1256
7675 CONVEX 2008 GT_PK(2,2) 1288 4686 1287 4688 4671 1317
7676 CONVEX 2009 GT_PK(2,2) 1288 4689 1318 4688 4683 1317
7677 CONVEX 2010 GT_PK(2,2) 1288 4689 1318 4690 4680 1289
7678 CONVEX 2011 GT_PK(2,2) 1290 4691 1289 4692 4682 1319
7679 CONVEX 2012 GT_PK(2,2) 1290 4693 1291 4694 3173 1320
7680 CONVEX 2013 GT_PK(2,2) 1290 4692 1319 4694 3176 1320
7681 CONVEX 2014 GT_PK(2,2) 1290 4691 1289 4695 4696 1258
7682 CONVEX 2015 GT_PK(2,2) 1290 4697 1259 4693 4052 1291
7683 CONVEX 2016 GT_PK(2,2) 1290 4697 1259 4695 4045 1258
7684 CONVEX 2017 GT_PK(2,2) 1322 4698 1292 4699 4040 1293
7685 CONVEX 2018 GT_PK(2,2) 1322 4700 1349 4701 4032 1350
7686 CONVEX 2019 GT_PK(2,2) 1322 4700 1349 4702 4031 1321
7687 CONVEX 2020 GT_PK(2,2) 1322 4698 1292 4702 4041 1321
7688 CONVEX 2021 GT_PK(2,2) 1322 4701 1350 4703 4704 1323
7689 CONVEX 2022 GT_PK(2,2) 1322 4699 1293 4703 3167 1323
7690 CONVEX 2023 GT_PK(2,2) 1228 4705 1195 4706 3688 1194
7691 CONVEX 2024 GT_PK(2,2) 1228 4705 1195 4707 3186 1229
7692 CONVEX 2025 GT_PK(2,2) 1228 4708 1261 4707 3188 1229
7693 CONVEX 2026 GT_PK(2,2) 1228 4709 1260 4708 4049 1261
7694 CONVEX 2027 GT_PK(2,2) 1314 4710 1315 4711 4075 1342
7695 CONVEX 2028 GT_PK(2,2) 1314 4712 1313 4713 4063 1284
7696 CONVEX 2029 GT_PK(2,2) 1314 4713 1284 4714 2400 1285
7697 CONVEX 2030 GT_PK(2,2) 1314 4710 1315 4714 4078 1285
7698 CONVEX 2031 GT_PK(2,2) 1314 4712 1313 4715 4071 1341
7699 CONVEX 2032 GT_PK(2,2) 1314 4711 1342 4715 3236 1341
7700 CONVEX 2033 GT_PK(2,2) 461 4716 460 4717 3765 422
7701 CONVEX 2034 GT_PK(2,2) 461 4718 499 4716 4099 460
7702 CONVEX 2035 GT_PK(2,2) 461 4719 423 4717 2858 422
7703 CONVEX 2036 GT_PK(2,2) 620 4720 660 4721 4111 621
7704 CONVEX 2037 GT_PK(2,2) 620 4720 660 4722 4723 659
7705 CONVEX 2038 GT_PK(2,2) 620 4724 619 4722 4725 659
7706 CONVEX 2039 GT_PK(2,2) 699 4726 739 4727 3270 700
7707 CONVEX 2040 GT_PK(2,2) 699 4728 660 4727 4109 700
7708 CONVEX 2041 GT_PK(2,2) 699 4728 660 4729 4723 659
7709 CONVEX 2042 GT_PK(2,2) 699 4726 739 4730 2443 738
7710 CONVEX 2043 GT_PK(2,2) 698 4731 699 4732 4730 738
7711 CONVEX 2044 GT_PK(2,2) 698 4731 699 4733 4729 659
7712 CONVEX 2045 GT_PK(2,2) 776 4734 816 4735 4472 777
7713 CONVEX 2046 GT_PK(2,2) 776 4734 816 4736 4469 815
7714 CONVEX 2047 GT_PK(2,2) 464 4737 463 4738 4739 425
7715 CONVEX 2048 GT_PK(2,2) 464 4737 463 4740 4741 502
7716 CONVEX 2049 GT_PK(2,2) 464 4742 503 4743 4096 465
7717 CONVEX 2050 GT_PK(2,2) 464 4742 503 4740 4744 502
7718 CONVEX 2051 GT_PK(2,2) 426 4745 425 4746 4135 388
7719 CONVEX 2052 GT_PK(2,2) 426 4747 389 4748 4137 427
7720 CONVEX 2053 GT_PK(2,2) 426 4747 389 4746 4139 388
7721 CONVEX 2054 GT_PK(2,2) 426 4749 464 4745 4738 425
7722 CONVEX 2055 GT_PK(2,2) 426 4748 427 4750 4107 465
7723 CONVEX 2056 GT_PK(2,2) 426 4749 464 4750 4743 465
7724 CONVEX 2057 GT_PK(2,2) 917 4751 877 4752 4148 878
7725 CONVEX 2058 GT_PK(2,2) 917 4751 877 4753 4754 916
7726 CONVEX 2059 GT_PK(2,2) 917 4755 956 4756 4252 955
7727 CONVEX 2060 GT_PK(2,2) 917 4753 916 4756 4259 955
7728 CONVEX 2061 GT_PK(2,2) 876 4757 877 4758 4754 916
7729 CONVEX 2062 GT_PK(2,2) 876 4758 916 4759 4260 915
7730 CONVEX 2063 GT_PK(2,2) 876 4760 837 4761 3360 836
7731 CONVEX 2064 GT_PK(2,2) 876 4757 877 4760 4149 837
7732 CONVEX 2065 GT_PK(2,2) 876 4762 875 4761 2638 836
7733 CONVEX 2066 GT_PK(2,2) 876 4762 875 4759 2640 915
7734 CONVEX 2067 GT_PK(2,2) 441 4763 479 4764 4165 440
7735 CONVEX 2068 GT_PK(2,2) 441 4765 442 4766 3869 403
7736 CONVEX 2069 GT_PK(2,2) 441 4765 442 4767 4524 480
7737 CONVEX 2070 GT_PK(2,2) 441 4763 479 4767 4166 480
7738 CONVEX 2071 GT_PK(2,2) 441 4768 402 4766 2089 403
7739 CONVEX 2072 GT_PK(2,2) 441 4764 440 4768 3039 402
7740 CONVEX 2073 GT_PK(2,2) 555 4769 516 4770 2529 556
7741 CONVEX 2074 GT_PK(2,2) 555 4771 515 4769 4167 516
7742 CONVEX 2075 GT_PK(2,2) 476 4772 475 4773 4170 437
7743 CONVEX 2076 GT_PK(2,2) 476 4774 515 4775 4168 477
7744 CONVEX 2077 GT_PK(2,2) 476 4776 438 4775 2100 477
7745 CONVEX 2078 GT_PK(2,2) 476 4776 438 4773 2101 437
7746 CONVEX 2079 GT_PK(2,2) 512 4777 511 4778 4174 473
7747 CONVEX 2080 GT_PK(2,2) 631 4779 671 4780 4781 632
7748 CONVEX 2081 GT_PK(2,2) 631 4782 592 4780 4186 632
7749 CONVEX 2082 GT_PK(2,2) 631 4779 671 4783 3378 670
7750 CONVEX 2083 GT_PK(2,2) 674 4784 714 4785 2537 675
7751 CONVEX 2084 GT_PK(2,2) 674 4786 635 4785 4180 675
7752 CONVEX 2085 GT_PK(2,2) 674 4784 714 4787 3384 713
7753 CONVEX 2086 GT_PK(2,2) 674 4786 635 4788 4789 634
7754 CONVEX 2087 GT_PK(2,2) 674 4790 673 4787 4182 713
7755 CONVEX 2088 GT_PK(2,2) 674 4790 673 4788 4791 634
7756 CONVEX 2089 GT_PK(2,2) 672 4792 671 4793 3380 711
7757 CONVEX 2090 GT_PK(2,2) 672 4792 671 4794 4781 632
7758 CONVEX 2091 GT_PK(2,2) 672 4793 711 4795 2589 712
7759 CONVEX 2092 GT_PK(2,2) 672 4796 673 4795 4183 712
7760 CONVEX 2093 GT_PK(2,2) 633 4797 673 4798 4791 634
7761 CONVEX 2094 GT_PK(2,2) 633 4799 672 4797 4796 673
7762 CONVEX 2095 GT_PK(2,2) 633 4800 593 4801 4185 632
7763 CONVEX 2096 GT_PK(2,2) 633 4799 672 4801 4794 632
7764 CONVEX 2097 GT_PK(2,2) 944 4802 905 4803 4196 943
7765 CONVEX 2098 GT_PK(2,2) 944 4804 982 4805 2543 981
7766 CONVEX 2099 GT_PK(2,2) 944 4803 943 4805 4806 981
7767 CONVEX 2100 GT_PK(2,2) 944 4804 982 4807 2539 983
7768 CONVEX 2101 GT_PK(2,2) 944 4808 945 4807 3456 983
7769 CONVEX 2102 GT_PK(2,2) 944 4808 945 4809 4233 906
7770 CONVEX 2103 GT_PK(2,2) 944 4802 905 4809 4205 906
7771 CONVEX 2104 GT_PK(2,2) 871 4810 832 4811 4210 831
7772 CONVEX 2105 GT_PK(2,2) 871 4812 911 4813 2610 910
7773 CONVEX 2106 GT_PK(2,2) 871 4814 872 4812 2625 911
7774 CONVEX 2107 GT_PK(2,2) 871 4810 832 4814 4214 872
7775 CONVEX 2108 GT_PK(2,2) 870 4815 830 4816 4215 831
7776 CONVEX 2109 GT_PK(2,2) 870 4817 909 4818 1876 910
7777 CONVEX 2110 GT_PK(2,2) 870 4819 869 4817 4820 909
7778 CONVEX 2111 GT_PK(2,2) 870 4819 869 4815 4821 830
7779 CONVEX 2112 GT_PK(2,2) 870 4822 871 4818 4813 910
7780 CONVEX 2113 GT_PK(2,2) 870 4822 871 4816 4811 831
7781 CONVEX 2114 GT_PK(2,2) 790 4823 751 4824 3438 791
7782 CONVEX 2115 GT_PK(2,2) 790 4825 830 4824 4216 791
7783 CONVEX 2116 GT_PK(2,2) 987 4826 986 4827 4223 1025
7784 CONVEX 2117 GT_PK(2,2) 987 4828 949 4829 2605 988
7785 CONVEX 2118 GT_PK(2,2) 987 4828 949 4830 2611 948
7786 CONVEX 2119 GT_PK(2,2) 987 4826 986 4830 4227 948
7787 CONVEX 2120 GT_PK(2,2) 987 4831 1026 4829 3446 988
7788 CONVEX 2121 GT_PK(2,2) 987 4827 1025 4831 3450 1026
7789 CONVEX 2122 GT_PK(2,2) 908 4832 907 4833 4230 868
7790 CONVEX 2123 GT_PK(2,2) 908 4834 869 4833 4835 868
7791 CONVEX 2124 GT_PK(2,2) 908 4836 947 4837 3458 909
7792 CONVEX 2125 GT_PK(2,2) 908 4834 869 4837 4820 909
7793 CONVEX 2126 GT_PK(2,2) 1034 4838 1072 4839 4241 1035
7794 CONVEX 2127 GT_PK(2,2) 1071 4840 1033 4841 3464 1070
7795 CONVEX 2128 GT_PK(2,2) 1071 4842 1072 4843 4244 1108
7796 CONVEX 2129 GT_PK(2,2) 1071 4844 1034 4840 4845 1033
7797 CONVEX 2130 GT_PK(2,2) 1071 4844 1034 4842 4838 1072
7798 CONVEX 2131 GT_PK(2,2) 1142 4846 1106 4847 4848 1141
7799 CONVEX 2132 GT_PK(2,2) 1104 4849 1103 4850 3426 1067
7800 CONVEX 2133 GT_PK(2,2) 1104 4851 1139 4849 3497 1103
7801 CONVEX 2134 GT_PK(2,2) 1104 4851 1139 4852 3500 1140
7802 CONVEX 2135 GT_PK(2,2) 1209 4853 1210 4854 4269 1242
7803 CONVEX 2136 GT_PK(2,2) 1209 4855 1241 4856 3628 1208
7804 CONVEX 2137 GT_PK(2,2) 1209 4855 1241 4854 3629 1242
7805 CONVEX 2138 GT_PK(2,2) 1382 4857 1404 4858 2676 1383
7806 CONVEX 2139 GT_PK(2,2) 1382 4859 1403 4857 4276 1404
7807 CONVEX 2140 GT_PK(2,2) 1382 4859 1403 4860 4279 1381
7808 CONVEX 2141 GT_PK(2,2) 1421 4861 1403 4862 4277 1422
7809 CONVEX 2142 GT_PK(2,2) 1421 4863 1436 4864 4865 1435
7810 CONVEX 2143 GT_PK(2,2) 1421 4863 1436 4862 3536 1422
7811 CONVEX 2144 GT_PK(2,2) 1421 4866 1402 4864 4867 1435
7812 CONVEX 2145 GT_PK(2,2) 1421 4861 1403 4866 4278 1402
7813 CONVEX 2146 GT_PK(2,2) 1332 4868 1305 4869 4325 1304
7814 CONVEX 2147 GT_PK(2,2) 1332 4870 1333 4868 4283 1305
7815 CONVEX 2148 GT_PK(2,2) 1377 4871 1398 4872 4296 1353
7816 CONVEX 2149 GT_PK(2,2) 1328 4873 1353 4874 4312 1327
7817 CONVEX 2150 GT_PK(2,2) 1302 4875 1273 4876 3623 1303
7818 CONVEX 2151 GT_PK(2,2) 1302 4875 1273 4877 3627 1272
7819 CONVEX 2152 GT_PK(2,2) 1420 4878 1402 4879 4867 1435
7820 CONVEX 2153 GT_PK(2,2) 1048 4880 1086 4881 4337 1049
7821 CONVEX 2154 GT_PK(2,2) 1048 4882 1010 4883 2777 1009
7822 CONVEX 2155 GT_PK(2,2) 1048 4882 1010 4881 2771 1049
7823 CONVEX 2156 GT_PK(2,2) 1085 4884 1086 4885 4336 1122
7824 CONVEX 2157 GT_PK(2,2) 1085 4886 1121 4885 4340 1122
7825 CONVEX 2158 GT_PK(2,2) 1085 4887 1048 4884 4880 1086
7826 CONVEX 2159 GT_PK(2,2) 1126 4888 1127 4889 4128 1090
7827 CONVEX 2160 GT_PK(2,2) 1126 4890 1162 4888 4388 1127
7828 CONVEX 2161 GT_PK(2,2) 1126 4891 1089 4892 4371 1125
7829 CONVEX 2162 GT_PK(2,2) 1126 4891 1089 4889 3691 1090
7830 CONVEX 2163 GT_PK(2,2) 1126 4893 1161 4892 4383 1125
7831 CONVEX 2164 GT_PK(2,2) 1126 4890 1162 4893 4390 1161
7832 CONVEX 2165 GT_PK(2,2) 238 4894 271 4895 4393 272
7833 CONVEX 2166 GT_PK(2,2) 236 4896 235 4897 2891 203
7834 CONVEX 2167 GT_PK(2,2) 236 4898 204 4897 4899 203
7835 CONVEX 2168 GT_PK(2,2) 270 4900 305 4901 2925 304
7836 CONVEX 2169 GT_PK(2,2) 270 4902 271 4900 4391 305
7837 CONVEX 2170 GT_PK(2,2) 172 4903 204 4904 4899 203
7838 CONVEX 2171 GT_PK(2,2) 172 4903 204 4905 4906 173
7839 CONVEX 2172 GT_PK(2,2) 68 4907 47 4908 4410 69
7840 CONVEX 2173 GT_PK(2,2) 68 4909 91 4910 4911 92
7841 CONVEX 2174 GT_PK(2,2) 68 4908 69 4910 3938 92
7842 CONVEX 2175 GT_PK(2,2) 68 4912 67 4909 4401 91
7843 CONVEX 2176 GT_PK(2,2) 68 4912 67 4913 4405 46
7844 CONVEX 2177 GT_PK(2,2) 68 4907 47 4913 4408 46
7845 CONVEX 2178 GT_PK(2,2) 566 4914 567 4915 4421 606
7846 CONVEX 2179 GT_PK(2,2) 566 4916 565 4917 3883 526
7847 CONVEX 2180 GT_PK(2,2) 566 4917 526 4918 3889 527
7848 CONVEX 2181 GT_PK(2,2) 566 4914 567 4918 4413 527
7849 CONVEX 2182 GT_PK(2,2) 424 4919 425 4920 4136 387
7850 CONVEX 2183 GT_PK(2,2) 424 4921 386 4920 4426 387
7851 CONVEX 2184 GT_PK(2,2) 424 4921 386 4922 4424 423
7852 CONVEX 2185 GT_PK(2,2) 424 4923 463 4919 4739 425
7853 CONVEX 2186 GT_PK(2,2) 654 4924 693 4925 4453 694
7854 CONVEX 2187 GT_PK(2,2) 654 4925 694 4926 3850 655
7855 CONVEX 2188 GT_PK(2,2) 654 4927 615 4926 4928 655
7856 CONVEX 2189 GT_PK(2,2) 654 4927 615 4929 3853 614
7857 CONVEX 2190 GT_PK(2,2) 654 4929 614 4930 2995 653
7858 CONVEX 2191 GT_PK(2,2) 654 4924 693 4930 4455 653
7859 CONVEX 2192 GT_PK(2,2) 852 4931 892 4932 4466 891
7860 CONVEX 2193 GT_PK(2,2) 852 4933 812 4934 3843 813
7861 CONVEX 2194 GT_PK(2,2) 852 4935 853 4934 4479 813
7862 CONVEX 2195 GT_PK(2,2) 852 4931 892 4935 4468 853
7863 CONVEX 2196 GT_PK(2,2) 852 4936 851 4932 4937 891
7864 CONVEX 2197 GT_PK(2,2) 852 4936 851 4933 4938 812
7865 CONVEX 2198 GT_PK(2,2) 775 4939 814 4940 4474 815
7866 CONVEX 2199 GT_PK(2,2) 775 4941 776 4942 4943 736
7867 CONVEX 2200 GT_PK(2,2) 775 4941 776 4940 4736 815
7868 CONVEX 2201 GT_PK(2,2) 775 4944 735 4942 4945 736
7869 CONVEX 2202 GT_PK(2,2) 775 4946 774 4944 4494 735
7870 CONVEX 2203 GT_PK(2,2) 775 4939 814 4946 4477 774
7871 CONVEX 2204 GT_PK(2,2) 890 4947 851 4948 4937 891
7872 CONVEX 2205 GT_PK(2,2) 890 4949 889 4950 3847 929
7873 CONVEX 2206 GT_PK(2,2) 890 4950 929 4951 2764 930
7874 CONVEX 2207 GT_PK(2,2) 890 4948 891 4951 2987 930
7875 CONVEX 2208 GT_PK(2,2) 809 4952 770 4953 3851 769
7876 CONVEX 2209 GT_PK(2,2) 809 4954 808 4953 2963 769
7877 CONVEX 2210 GT_PK(2,2) 809 4955 848 4954 3810 808
7878 CONVEX 2211 GT_PK(2,2) 809 4956 849 4955 4486 848
7879 CONVEX 2212 GT_PK(2,2) 810 4957 809 4958 4956 849
7880 CONVEX 2213 GT_PK(2,2) 810 4959 770 4960 4463 771
7881 CONVEX 2214 GT_PK(2,2) 810 4957 809 4959 4952 770
7882 CONVEX 2215 GT_PK(2,2) 432 4961 472 4962 3866 433
7883 CONVEX 2216 GT_PK(2,2) 432 4963 471 4961 4499 472
7884 CONVEX 2217 GT_PK(2,2) 432 4962 433 4964 3007 394
7885 CONVEX 2218 GT_PK(2,2) 474 4965 475 4966 4169 436
7886 CONVEX 2219 GT_PK(2,2) 474 4967 435 4966 4500 436
7887 CONVEX 2220 GT_PK(2,2) 474 4967 435 4968 4504 473
7888 CONVEX 2221 GT_PK(2,2) 474 4969 512 4968 4778 473
7889 CONVEX 2222 GT_PK(2,2) 564 4970 603 4971 3882 563
7890 CONVEX 2223 GT_PK(2,2) 564 4972 604 4970 4506 603
7891 CONVEX 2224 GT_PK(2,2) 564 4972 604 4973 4974 565
7892 CONVEX 2225 GT_PK(2,2) 564 4975 524 4971 3025 563
7893 CONVEX 2226 GT_PK(2,2) 564 4975 524 4976 3892 525
7894 CONVEX 2227 GT_PK(2,2) 564 4973 565 4976 3884 525
7895 CONVEX 2228 GT_PK(2,2) 605 4977 604 4978 4974 565
7896 CONVEX 2229 GT_PK(2,2) 605 4979 606 4980 2816 645
7897 CONVEX 2230 GT_PK(2,2) 605 4981 644 4980 3019 645
7898 CONVEX 2231 GT_PK(2,2) 605 4977 604 4981 4507 644
7899 CONVEX 2232 GT_PK(2,2) 605 4982 566 4979 4915 606
7900 CONVEX 2233 GT_PK(2,2) 605 4982 566 4978 4916 565
7901 CONVEX 2234 GT_PK(2,2) 148 4983 177 4984 4985 178
7902 CONVEX 2235 GT_PK(2,2) 148 4984 178 4986 4538 149
7903 CONVEX 2236 GT_PK(2,2) 148 4987 121 4986 3929 149
7904 CONVEX 2237 GT_PK(2,2) 148 4987 121 4988 4555 120
7905 CONVEX 2238 GT_PK(2,2) 208 4989 240 4990 4394 241
7906 CONVEX 2239 GT_PK(2,2) 208 4989 240 4991 4992 207
7907 CONVEX 2240 GT_PK(2,2) 209 4993 178 4994 4536 210
7908 CONVEX 2241 GT_PK(2,2) 209 4995 177 4993 4985 178
7909 CONVEX 2242 GT_PK(2,2) 209 4994 210 4996 4544 242
7910 CONVEX 2243 GT_PK(2,2) 209 4997 208 4995 4998 177
7911 CONVEX 2244 GT_PK(2,2) 209 4999 241 4996 1970 242
7912 CONVEX 2245 GT_PK(2,2) 209 4997 208 4999 4990 241
7913 CONVEX 2246 GT_PK(2,2) 94 5000 95 5001 4554 120
7914 CONVEX 2247 GT_PK(2,2) 94 5000 95 5002 5003 71
7915 CONVEX 2248 GT_PK(2,2) 94 5004 70 5002 5005 71
7916 CONVEX 2249 GT_PK(2,2) 94 5004 70 5006 4559 93
7917 CONVEX 2250 GT_PK(2,2) 72 5007 95 5008 5003 71
7918 CONVEX 2251 GT_PK(2,2) 72 5009 50 5008 5010 71
7919 CONVEX 2252 GT_PK(2,2) 72 5009 50 5011 4563 51
7920 CONVEX 2253 GT_PK(2,2) 72 5007 95 5012 4556 96
7921 CONVEX 2254 GT_PK(2,2) 72 5013 73 5012 3933 96
7922 CONVEX 2255 GT_PK(2,2) 72 5011 51 5013 3939 73
7923 CONVEX 2256 GT_PK(2,2) 175 5014 207 5015 5016 206
7924 CONVEX 2257 GT_PK(2,2) 49 5017 70 5018 5005 71
7925 CONVEX 2258 GT_PK(2,2) 49 5019 50 5018 5010 71
7926 CONVEX 2259 GT_PK(2,2) 49 5020 30 5021 2819 48
7927 CONVEX 2260 GT_PK(2,2) 49 5017 70 5021 4558 48
7928 CONVEX 2261 GT_PK(2,2) 49 5019 50 5022 4561 31
7929 CONVEX 2262 GT_PK(2,2) 49 5023 16 5022 5024 31
7930 CONVEX 2263 GT_PK(2,2) 49 5023 16 5020 3706 30
7931 CONVEX 2264 GT_PK(2,2) 406 5025 368 5026 4565 405
7932 CONVEX 2265 GT_PK(2,2) 406 5027 444 5026 3896 405
7933 CONVEX 2266 GT_PK(2,2) 406 5027 444 5028 3904 445
7934 CONVEX 2267 GT_PK(2,2) 301 5029 267 5030 4571 302
7935 CONVEX 2268 GT_PK(2,2) 299 5031 264 5032 4576 298
7936 CONVEX 2269 GT_PK(2,2) 265 5033 299 5034 5035 300
7937 CONVEX 2270 GT_PK(2,2) 265 5033 299 5036 5031 264
7938 CONVEX 2271 GT_PK(2,2) 265 5037 232 5038 4611 231
7939 CONVEX 2272 GT_PK(2,2) 265 5036 264 5038 5039 231
7940 CONVEX 2273 GT_PK(2,2) 260 5040 226 5041 3944 259
7941 CONVEX 2274 GT_PK(2,2) 260 5042 227 5040 4595 226
7942 CONVEX 2275 GT_PK(2,2) 260 5043 261 5042 5044 227
7943 CONVEX 2276 GT_PK(2,2) 260 5045 294 5041 3946 259
7944 CONVEX 2277 GT_PK(2,2) 260 5045 294 5046 3950 295
7945 CONVEX 2278 GT_PK(2,2) 260 5043 261 5046 5047 295
7946 CONVEX 2279 GT_PK(2,2) 412 5048 451 5049 2844 413
7947 CONVEX 2280 GT_PK(2,2) 412 5050 375 5049 4599 413
7948 CONVEX 2281 GT_PK(2,2) 412 5050 375 5051 4600 374
7949 CONVEX 2282 GT_PK(2,2) 412 5052 411 5051 5053 374
7950 CONVEX 2283 GT_PK(2,2) 84 5054 83 5055 3989 109
7951 CONVEX 2284 GT_PK(2,2) 84 5056 110 5055 4622 109
7952 CONVEX 2285 GT_PK(2,2) 84 5057 60 5058 4634 61
7953 CONVEX 2286 GT_PK(2,2) 84 5057 60 5054 4630 83
7954 CONVEX 2287 GT_PK(2,2) 84 5059 85 5058 4628 61
7955 CONVEX 2288 GT_PK(2,2) 84 5059 85 5056 4629 110
7956 CONVEX 2289 GT_PK(2,2) 166 5060 167 5061 4619 137
7957 CONVEX 2290 GT_PK(2,2) 166 5062 136 5061 4636 137
7958 CONVEX 2291 GT_PK(2,2) 166 5060 167 5063 4608 198
7959 CONVEX 2292 GT_PK(2,2) 166 5064 197 5063 5065 198
7960 CONVEX 2293 GT_PK(2,2) 166 5062 136 5066 4639 165
7961 CONVEX 2294 GT_PK(2,2) 166 5064 197 5066 4640 165
7962 CONVEX 2295 GT_PK(2,2) 230 5067 264 5068 5039 231
7963 CONVEX 2296 GT_PK(2,2) 230 5067 264 5069 4575 263
7964 CONVEX 2297 GT_PK(2,2) 230 5070 198 5068 4610 231
7965 CONVEX 2298 GT_PK(2,2) 230 5071 197 5070 5065 198
7966 CONVEX 2299 GT_PK(2,2) 1111 5072 1110 5073 4648 1074
7967 CONVEX 2300 GT_PK(2,2) 1111 5074 1075 5075 2282 1112
7968 CONVEX 2301 GT_PK(2,2) 1111 5073 1074 5074 4017 1075
7969 CONVEX 2302 GT_PK(2,2) 1111 5072 1110 5076 4653 1146
7970 CONVEX 2303 GT_PK(2,2) 1111 5077 1147 5075 2705 1112
7971 CONVEX 2304 GT_PK(2,2) 1111 5076 1146 5077 4299 1147
7972 CONVEX 2305 GT_PK(2,2) 841 5078 840 5079 5080 880
7973 CONVEX 2306 GT_PK(2,2) 841 5081 842 5082 4658 802
7974 CONVEX 2307 GT_PK(2,2) 841 5082 802 5083 2937 801
7975 CONVEX 2308 GT_PK(2,2) 841 5078 840 5083 4655 801
7976 CONVEX 2309 GT_PK(2,2) 881 5084 920 5085 5086 880
7977 CONVEX 2310 GT_PK(2,2) 881 5087 841 5085 5079 880
7978 CONVEX 2311 GT_PK(2,2) 881 5087 841 5088 5081 842
7979 CONVEX 2312 GT_PK(2,2) 879 5089 840 5090 5080 880
7980 CONVEX 2313 GT_PK(2,2) 879 5091 839 5092 2521 878
7981 CONVEX 2314 GT_PK(2,2) 879 5089 840 5091 4656 839
7982 CONVEX 2315 GT_PK(2,2) 959 5093 920 5094 5095 958
7983 CONVEX 2316 GT_PK(2,2) 961 5096 962 5097 4018 1000
7984 CONVEX 2317 GT_PK(2,2) 961 5098 999 5097 4661 1000
7985 CONVEX 2318 GT_PK(2,2) 961 5096 962 5099 4022 923
7986 CONVEX 2319 GT_PK(2,2) 998 5100 999 5101 4662 1037
7987 CONVEX 2320 GT_PK(2,2) 998 5102 1036 5101 4663 1037
7988 CONVEX 2321 GT_PK(2,2) 1224 5103 1225 5104 4669 1191
7989 CONVEX 2322 GT_PK(2,2) 1224 5104 1191 5105 4036 1190
7990 CONVEX 2323 GT_PK(2,2) 1257 5106 1288 5107 4687 1256
7991 CONVEX 2324 GT_PK(2,2) 1257 5108 1225 5109 4668 1258
7992 CONVEX 2325 GT_PK(2,2) 1257 5110 1289 5109 4696 1258
7993 CONVEX 2326 GT_PK(2,2) 1257 5106 1288 5110 4690 1289
7994 CONVEX 2327 GT_PK(2,2) 1257 5111 1224 5107 5112 1256
7995 CONVEX 2328 GT_PK(2,2) 1257 5111 1224 5108 5103 1225
7996 CONVEX 2329 GT_PK(2,2) 1227 5113 1228 5114 4706 1194
7997 CONVEX 2330 GT_PK(2,2) 1227 5113 1228 5115 4709 1260
7998 CONVEX 2331 GT_PK(2,2) 1227 5115 1260 5116 4050 1259
7999 CONVEX 2332 GT_PK(2,2) 1227 5117 1226 5116 4043 1259
8000 CONVEX 2333 GT_PK(2,2) 1227 5114 1194 5118 4366 1193
8001 CONVEX 2334 GT_PK(2,2) 1227 5117 1226 5118 4046 1193
8002 CONVEX 2335 GT_PK(2,2) 541 5119 503 5120 4098 542
8003 CONVEX 2336 GT_PK(2,2) 541 5119 503 5121 4744 502
8004 CONVEX 2337 GT_PK(2,2) 658 5122 698 5123 5124 697
8005 CONVEX 2338 GT_PK(2,2) 658 5125 619 5126 4725 659
8006 CONVEX 2339 GT_PK(2,2) 658 5122 698 5126 4733 659
8007 CONVEX 2340 GT_PK(2,2) 737 5127 698 5128 5124 697
8008 CONVEX 2341 GT_PK(2,2) 737 5128 697 5129 5130 736
8009 CONVEX 2342 GT_PK(2,2) 737 5131 776 5129 4943 736
8010 CONVEX 2343 GT_PK(2,2) 737 5131 776 5132 4735 777
8011 CONVEX 2344 GT_PK(2,2) 737 5132 777 5133 3323 738
8012 CONVEX 2345 GT_PK(2,2) 737 5127 698 5133 4732 738
8013 CONVEX 2346 GT_PK(2,2) 616 5134 615 5135 4928 655
8014 CONVEX 2347 GT_PK(2,2) 696 5136 697 5137 5130 736
8015 CONVEX 2348 GT_PK(2,2) 696 5138 735 5137 4945 736
8016 CONVEX 2349 GT_PK(2,2) 696 5139 695 5138 4495 735
8017 CONVEX 2350 GT_PK(2,2) 918 5140 957 5141 5142 956
8018 CONVEX 2351 GT_PK(2,2) 918 5143 917 5141 4755 956
8019 CONVEX 2352 GT_PK(2,2) 918 5143 917 5144 4752 878
8020 CONVEX 2353 GT_PK(2,2) 918 5145 879 5144 5092 878
8021 CONVEX 2354 GT_PK(2,2) 595 5146 635 5147 4789 634
8022 CONVEX 2355 GT_PK(2,2) 595 5148 555 5149 4770 556
8023 CONVEX 2356 GT_PK(2,2) 595 5150 596 5149 2530 556
8024 CONVEX 2357 GT_PK(2,2) 595 5146 635 5150 4181 596
8025 CONVEX 2358 GT_PK(2,2) 554 5151 555 5152 4771 515
8026 CONVEX 2359 GT_PK(2,2) 554 5153 593 5154 4187 553
8027 CONVEX 2360 GT_PK(2,2) 551 5155 550 5156 4178 511
8028 CONVEX 2361 GT_PK(2,2) 551 5157 512 5156 4777 511
8029 CONVEX 2362 GT_PK(2,2) 630 5158 631 5159 4783 670
8030 CONVEX 2363 GT_PK(2,2) 630 5160 669 5161 3393 629
8031 CONVEX 2364 GT_PK(2,2) 630 5160 669 5159 3394 670
8032 CONVEX 2365 GT_PK(2,2) 750 5162 790 5163 4823 751
8033 CONVEX 2366 GT_PK(2,2) 750 5164 711 5165 3381 710
8034 CONVEX 2367 GT_PK(2,2) 750 5163 751 5164 2587 711
8035 CONVEX 2368 GT_PK(2,2) 750 5162 790 5166 5167 789
8036 CONVEX 2369 GT_PK(2,2) 750 5168 749 5165 4191 710
8037 CONVEX 2370 GT_PK(2,2) 750 5166 789 5168 3441 749
8038 CONVEX 2371 GT_PK(2,2) 829 5169 869 5170 4821 830
8039 CONVEX 2372 GT_PK(2,2) 829 5171 790 5170 4825 830
8040 CONVEX 2373 GT_PK(2,2) 829 5169 869 5172 4835 868
8041 CONVEX 2374 GT_PK(2,2) 829 5171 790 5173 5167 789
8042 CONVEX 2375 GT_PK(2,2) 829 5174 828 5172 4218 868
8043 CONVEX 2376 GT_PK(2,2) 829 5174 828 5173 4220 789
8044 CONVEX 2377 GT_PK(2,2) 946 5175 908 5176 4832 907
8045 CONVEX 2378 GT_PK(2,2) 946 5177 984 5178 3455 945
8046 CONVEX 2379 GT_PK(2,2) 946 5176 907 5178 4232 945
8047 CONVEX 2380 GT_PK(2,2) 946 5175 908 5179 4836 947
8048 CONVEX 2381 GT_PK(2,2) 946 5177 984 5180 3454 985
8049 CONVEX 2382 GT_PK(2,2) 946 5179 947 5180 4228 985
8050 CONVEX 2383 GT_PK(2,2) 995 5181 957 5182 5142 956
8051 CONVEX 2384 GT_PK(2,2) 995 5183 994 5182 4251 956
8052 CONVEX 2385 GT_PK(2,2) 995 5183 994 5184 4248 1033
8053 CONVEX 2386 GT_PK(2,2) 995 5185 1034 5184 4845 1033
8054 CONVEX 2387 GT_PK(2,2) 1176 5186 1142 5187 4847 1141
8055 CONVEX 2388 GT_PK(2,2) 1176 5188 1209 5189 4853 1210
8056 CONVEX 2389 GT_PK(2,2) 1107 5190 1142 5191 4846 1106
8057 CONVEX 2390 GT_PK(2,2) 1107 5191 1106 5192 5193 1070
8058 CONVEX 2391 GT_PK(2,2) 1107 5194 1071 5192 4841 1070
8059 CONVEX 2392 GT_PK(2,2) 1107 5194 1071 5195 4843 1108
8060 CONVEX 2393 GT_PK(2,2) 1143 5196 1144 5197 3548 1178
8061 CONVEX 2394 GT_PK(2,2) 1143 5198 1107 5199 5190 1142
8062 CONVEX 2395 GT_PK(2,2) 1143 5196 1144 5200 4013 1108
8063 CONVEX 2396 GT_PK(2,2) 1143 5198 1107 5200 5195 1108
8064 CONVEX 2397 GT_PK(2,2) 1068 5201 1104 5202 4850 1067
8065 CONVEX 2398 GT_PK(2,2) 1068 5203 1030 5202 2613 1067
8066 CONVEX 2399 GT_PK(2,2) 1068 5204 1031 5203 3466 1030
8067 CONVEX 2400 GT_PK(2,2) 1358 5205 1357 5206 5207 1381
8068 CONVEX 2401 GT_PK(2,2) 1358 5208 1382 5206 4860 1381
8069 CONVEX 2402 GT_PK(2,2) 1358 5209 1332 5205 5210 1357
8070 CONVEX 2403 GT_PK(2,2) 1358 5209 1332 5211 4870 1333
8071 CONVEX 2404 GT_PK(2,2) 1359 5212 1333 5213 4281 1334
8072 CONVEX 2405 GT_PK(2,2) 1359 5214 1360 5213 2687 1334
8073 CONVEX 2406 GT_PK(2,2) 1359 5215 1358 5212 5211 1333
8074 CONVEX 2407 GT_PK(2,2) 1359 5215 1358 5216 5208 1382
8075 CONVEX 2408 GT_PK(2,2) 1359 5214 1360 5217 2683 1383
8076 CONVEX 2409 GT_PK(2,2) 1359 5216 1382 5217 4858 1383
8077 CONVEX 2410 GT_PK(2,2) 1355 5218 1379 5219 5220 1378
8078 CONVEX 2411 GT_PK(2,2) 1355 5218 1379 5221 5222 1356
8079 CONVEX 2412 GT_PK(2,2) 1399 5223 1377 5224 4871 1398
8080 CONVEX 2413 GT_PK(2,2) 1399 5225 1418 5226 5227 1378
8081 CONVEX 2414 GT_PK(2,2) 1399 5223 1377 5226 5228 1378
8082 CONVEX 2415 GT_PK(2,2) 1301 5229 1328 5230 5231 1329
8083 CONVEX 2416 GT_PK(2,2) 1301 5232 1302 5230 5233 1329
8084 CONVEX 2417 GT_PK(2,2) 1301 5234 1271 5235 2745 1272
8085 CONVEX 2418 GT_PK(2,2) 1301 5232 1302 5235 4877 1272
8086 CONVEX 2419 GT_PK(2,2) 1330 5236 1302 5237 5233 1329
8087 CONVEX 2420 GT_PK(2,2) 1330 5238 1355 5237 5239 1329
8088 CONVEX 2421 GT_PK(2,2) 1330 5238 1355 5240 5221 1356
8089 CONVEX 2422 GT_PK(2,2) 1330 5236 1302 5241 4876 1303
8090 CONVEX 2423 GT_PK(2,2) 1331 5242 1304 5243 3622 1303
8091 CONVEX 2424 GT_PK(2,2) 1331 5244 1330 5243 5241 1303
8092 CONVEX 2425 GT_PK(2,2) 1331 5244 1330 5245 5240 1356
8093 CONVEX 2426 GT_PK(2,2) 1331 5246 1332 5242 4869 1304
8094 CONVEX 2427 GT_PK(2,2) 1331 5246 1332 5247 5210 1357
8095 CONVEX 2428 GT_PK(2,2) 1331 5245 1356 5247 5248 1357
8096 CONVEX 2429 GT_PK(2,2) 1401 5249 1420 5250 4878 1402
8097 CONVEX 2430 GT_PK(2,2) 1401 5249 1420 5251 5252 1419
8098 CONVEX 2431 GT_PK(2,2) 1380 5253 1402 5254 4280 1381
8099 CONVEX 2432 GT_PK(2,2) 1380 5255 1357 5254 5207 1381
8100 CONVEX 2433 GT_PK(2,2) 1380 5256 1401 5253 5250 1402
8101 CONVEX 2434 GT_PK(2,2) 1380 5256 1401 5257 5258 1379
8102 CONVEX 2435 GT_PK(2,2) 1380 5259 1356 5255 5248 1357
8103 CONVEX 2436 GT_PK(2,2) 1380 5257 1379 5259 5222 1356
8104 CONVEX 2437 GT_PK(2,2) 1047 5260 1085 5261 4887 1048
8105 CONVEX 2438 GT_PK(2,2) 1047 5261 1048 5262 4883 1009
8106 CONVEX 2439 GT_PK(2,2) 1047 5263 1008 5262 2768 1009
8107 CONVEX 2440 GT_PK(2,2) 1047 5263 1008 5264 3672 1046
8108 CONVEX 2441 GT_PK(2,2) 1084 5265 1121 5266 4341 1120
8109 CONVEX 2442 GT_PK(2,2) 1084 5267 1085 5265 4886 1121
8110 CONVEX 2443 GT_PK(2,2) 1084 5266 1120 5268 4084 1083
8111 CONVEX 2444 GT_PK(2,2) 1084 5269 1047 5267 5260 1085
8112 CONVEX 2445 GT_PK(2,2) 1084 5268 1083 5270 2751 1046
8113 CONVEX 2446 GT_PK(2,2) 1084 5269 1047 5270 5264 1046
8114 CONVEX 2447 GT_PK(2,2) 205 5271 204 5272 4906 173
8115 CONVEX 2448 GT_PK(2,2) 205 5273 238 5274 5275 206
8116 CONVEX 2449 GT_PK(2,2) 239 5276 273 5277 4400 240
8117 CONVEX 2450 GT_PK(2,2) 239 5277 240 5278 4992 207
8118 CONVEX 2451 GT_PK(2,2) 239 5276 273 5279 4398 272
8119 CONVEX 2452 GT_PK(2,2) 239 5280 238 5279 4895 272
8120 CONVEX 2453 GT_PK(2,2) 239 5278 207 5281 5016 206
8121 CONVEX 2454 GT_PK(2,2) 239 5280 238 5281 5275 206
8122 CONVEX 2455 GT_PK(2,2) 237 5282 270 5283 5284 236
8123 CONVEX 2456 GT_PK(2,2) 237 5285 205 5286 5273 238
8124 CONVEX 2457 GT_PK(2,2) 237 5286 238 5287 4894 271
8125 CONVEX 2458 GT_PK(2,2) 237 5282 270 5287 4902 271
8126 CONVEX 2459 GT_PK(2,2) 237 5283 236 5288 4898 204
8127 CONVEX 2460 GT_PK(2,2) 237 5285 205 5288 5271 204
8128 CONVEX 2461 GT_PK(2,2) 269 5289 304 5290 2016 303
8129 CONVEX 2462 GT_PK(2,2) 269 5291 270 5289 4901 304
8130 CONVEX 2463 GT_PK(2,2) 269 5292 268 5290 2232 303
8131 CONVEX 2464 GT_PK(2,2) 269 5291 270 5293 5284 236
8132 CONVEX 2465 GT_PK(2,2) 269 5294 235 5292 2887 268
8133 CONVEX 2466 GT_PK(2,2) 269 5293 236 5294 4896 235
8134 CONVEX 2467 GT_PK(2,2) 171 5295 172 5296 4904 203
8135 CONVEX 2468 GT_PK(2,2) 171 5296 203 5297 2892 202
8136 CONVEX 2469 GT_PK(2,2) 171 5298 170 5297 3712 202
8137 CONVEX 2470 GT_PK(2,2) 171 5298 170 5299 3720 141
8138 CONVEX 2471 GT_PK(2,2) 115 5300 116 5301 3704 90
8139 CONVEX 2472 GT_PK(2,2) 115 5302 89 5301 2827 90
8140 CONVEX 2473 GT_PK(2,2) 115 5302 89 5303 2829 114
8141 CONVEX 2474 GT_PK(2,2) 143 5304 172 5305 4905 173
8142 CONVEX 2475 GT_PK(2,2) 143 5306 115 5307 5300 116
8143 CONVEX 2476 GT_PK(2,2) 850 5308 890 5309 4947 851
8144 CONVEX 2477 GT_PK(2,2) 850 5310 810 5311 4958 849
8145 CONVEX 2478 GT_PK(2,2) 850 5311 849 5312 4488 889
8146 CONVEX 2479 GT_PK(2,2) 850 5308 890 5312 4949 889
8147 CONVEX 2480 GT_PK(2,2) 811 5313 851 5314 4938 812
8148 CONVEX 2481 GT_PK(2,2) 811 5315 810 5316 4960 771
8149 CONVEX 2482 GT_PK(2,2) 811 5317 850 5313 5309 851
8150 CONVEX 2483 GT_PK(2,2) 811 5317 850 5315 5310 810
8151 CONVEX 2484 GT_PK(2,2) 811 5318 772 5316 4485 771
8152 CONVEX 2485 GT_PK(2,2) 811 5318 772 5314 4480 812
8153 CONVEX 2486 GT_PK(2,2) 513 5319 474 5320 4969 512
8154 CONVEX 2487 GT_PK(2,2) 513 5319 474 5321 4965 475
8155 CONVEX 2488 GT_PK(2,2) 119 5322 94 5323 5006 93
8156 CONVEX 2489 GT_PK(2,2) 119 5322 94 5324 5001 120
8157 CONVEX 2490 GT_PK(2,2) 145 5325 175 5326 5327 146
8158 CONVEX 2491 GT_PK(2,2) 176 5328 208 5329 4998 177
8159 CONVEX 2492 GT_PK(2,2) 176 5330 175 5331 5327 146
8160 CONVEX 2493 GT_PK(2,2) 176 5328 208 5332 4991 207
8161 CONVEX 2494 GT_PK(2,2) 176 5330 175 5332 5014 207
8162 CONVEX 2495 GT_PK(2,2) 407 5333 446 5334 4568 445
8163 CONVEX 2496 GT_PK(2,2) 407 5335 406 5334 5028 445
8164 CONVEX 2497 GT_PK(2,2) 297 5336 263 5337 4577 298
8165 CONVEX 2498 GT_PK(2,2) 297 5338 333 5337 5339 298
8166 CONVEX 2499 GT_PK(2,2) 369 5340 406 5341 5025 368
8167 CONVEX 2500 GT_PK(2,2) 369 5342 407 5340 5335 406
8168 CONVEX 2501 GT_PK(2,2) 336 5343 301 5344 5345 300
8169 CONVEX 2502 GT_PK(2,2) 335 5346 336 5347 5348 372
8170 CONVEX 2503 GT_PK(2,2) 335 5349 299 5350 5035 300
8171 CONVEX 2504 GT_PK(2,2) 335 5346 336 5350 5344 300
8172 CONVEX 2505 GT_PK(2,2) 266 5351 265 5352 5037 232
8173 CONVEX 2506 GT_PK(2,2) 266 5352 232 5353 3965 233
8174 CONVEX 2507 GT_PK(2,2) 266 5354 267 5353 4574 233
8175 CONVEX 2508 GT_PK(2,2) 266 5355 301 5354 5029 267
8176 CONVEX 2509 GT_PK(2,2) 266 5355 301 5356 5345 300
8177 CONVEX 2510 GT_PK(2,2) 266 5351 265 5356 5034 300
8178 CONVEX 2511 GT_PK(2,2) 229 5357 230 5358 5069 263
8179 CONVEX 2512 GT_PK(2,2) 229 5359 197 5360 4641 196
8180 CONVEX 2513 GT_PK(2,2) 229 5357 230 5359 5071 197
8181 CONVEX 2514 GT_PK(2,2) 450 5361 412 5362 5048 451
8182 CONVEX 2515 GT_PK(2,2) 450 5361 412 5363 5052 411
8183 CONVEX 2516 GT_PK(2,2) 450 5364 489 5362 2836 451
8184 CONVEX 2517 GT_PK(2,2) 450 5365 488 5364 3886 489
8185 CONVEX 2518 GT_PK(2,2) 448 5366 486 5367 4517 447
8186 CONVEX 2519 GT_PK(2,2) 448 5368 487 5366 4511 486
8187 CONVEX 2520 GT_PK(2,2) 921 5369 881 5370 5084 920
8188 CONVEX 2521 GT_PK(2,2) 921 5371 959 5370 5093 920
8189 CONVEX 2522 GT_PK(2,2) 960 5372 961 5373 5098 999
8190 CONVEX 2523 GT_PK(2,2) 960 5374 998 5373 5100 999
8191 CONVEX 2524 GT_PK(2,2) 960 5374 998 5375 5376 959
8192 CONVEX 2525 GT_PK(2,2) 960 5377 921 5375 5371 959
8193 CONVEX 2526 GT_PK(2,2) 997 5378 1036 5379 4666 1035
8194 CONVEX 2527 GT_PK(2,2) 997 5380 998 5378 5102 1036
8195 CONVEX 2528 GT_PK(2,2) 997 5381 959 5382 5094 958
8196 CONVEX 2529 GT_PK(2,2) 997 5380 998 5381 5376 959
8197 CONVEX 2530 GT_PK(2,2) 1223 5383 1255 5384 4677 1256
8198 CONVEX 2531 GT_PK(2,2) 1223 5385 1224 5384 5112 1256
8199 CONVEX 2532 GT_PK(2,2) 1223 5383 1255 5386 4679 1222
8200 CONVEX 2533 GT_PK(2,2) 1223 5385 1224 5387 5105 1190
8201 CONVEX 2534 GT_PK(2,2) 1223 5386 1222 5388 2309 1189
8202 CONVEX 2535 GT_PK(2,2) 1223 5387 1190 5388 3242 1189
8203 CONVEX 2536 GT_PK(2,2) 581 5389 541 5390 5120 542
8204 CONVEX 2537 GT_PK(2,2) 581 5391 620 5392 4721 621
8205 CONVEX 2538 GT_PK(2,2) 581 5390 542 5393 3282 582
8206 CONVEX 2539 GT_PK(2,2) 581 5392 621 5393 3304 582
8207 CONVEX 2540 GT_PK(2,2) 657 5394 658 5395 5123 697
8208 CONVEX 2541 GT_PK(2,2) 657 5396 696 5395 5136 697
8209 CONVEX 2542 GT_PK(2,2) 618 5397 658 5398 5125 619
8210 CONVEX 2543 GT_PK(2,2) 618 5399 657 5400 5401 617
8211 CONVEX 2544 GT_PK(2,2) 618 5399 657 5397 5394 658
8212 CONVEX 2545 GT_PK(2,2) 576 5402 616 5403 5134 615
8213 CONVEX 2546 GT_PK(2,2) 576 5404 536 5405 3776 575
8214 CONVEX 2547 GT_PK(2,2) 576 5403 615 5405 3854 575
8215 CONVEX 2548 GT_PK(2,2) 656 5406 616 5407 5408 617
8216 CONVEX 2549 GT_PK(2,2) 656 5409 657 5407 5401 617
8217 CONVEX 2550 GT_PK(2,2) 656 5409 657 5410 5396 696
8218 CONVEX 2551 GT_PK(2,2) 656 5410 696 5411 5139 695
8219 CONVEX 2552 GT_PK(2,2) 656 5411 695 5412 3849 655
8220 CONVEX 2553 GT_PK(2,2) 656 5406 616 5412 5135 655
8221 CONVEX 2554 GT_PK(2,2) 540 5413 541 5414 5121 502
8222 CONVEX 2555 GT_PK(2,2) 462 5415 461 5416 4719 423
8223 CONVEX 2556 GT_PK(2,2) 462 5417 424 5416 4922 423
8224 CONVEX 2557 GT_PK(2,2) 462 5417 424 5418 4923 463
8225 CONVEX 2558 GT_PK(2,2) 919 5419 957 5420 5421 958
8226 CONVEX 2559 GT_PK(2,2) 919 5422 918 5419 5140 957
8227 CONVEX 2560 GT_PK(2,2) 919 5423 920 5420 5095 958
8228 CONVEX 2561 GT_PK(2,2) 919 5423 920 5424 5086 880
8229 CONVEX 2562 GT_PK(2,2) 919 5425 879 5424 5090 880
8230 CONVEX 2563 GT_PK(2,2) 919 5422 918 5425 5145 879
8231 CONVEX 2564 GT_PK(2,2) 594 5426 633 5427 4800 593
8232 CONVEX 2565 GT_PK(2,2) 594 5428 554 5427 5153 593
8233 CONVEX 2566 GT_PK(2,2) 594 5426 633 5429 4798 634
8234 CONVEX 2567 GT_PK(2,2) 594 5428 554 5430 5151 555
8235 CONVEX 2568 GT_PK(2,2) 594 5431 595 5429 5147 634
8236 CONVEX 2569 GT_PK(2,2) 594 5431 595 5430 5148 555
8237 CONVEX 2570 GT_PK(2,2) 514 5432 476 5433 4772 475
8238 CONVEX 2571 GT_PK(2,2) 514 5434 554 5435 5154 553
8239 CONVEX 2572 GT_PK(2,2) 514 5432 476 5436 4774 515
8240 CONVEX 2573 GT_PK(2,2) 514 5434 554 5436 5152 515
8241 CONVEX 2574 GT_PK(2,2) 514 5437 513 5435 5438 553
8242 CONVEX 2575 GT_PK(2,2) 514 5437 513 5433 5321 475
8243 CONVEX 2576 GT_PK(2,2) 591 5439 631 5440 4782 592
8244 CONVEX 2577 GT_PK(2,2) 591 5441 630 5439 5158 631
8245 CONVEX 2578 GT_PK(2,2) 590 5442 630 5443 5161 629
8246 CONVEX 2579 GT_PK(2,2) 590 5444 589 5443 2028 629
8247 CONVEX 2580 GT_PK(2,2) 590 5445 550 5444 4176 589
8248 CONVEX 2581 GT_PK(2,2) 590 5446 591 5442 5441 630
8249 CONVEX 2582 GT_PK(2,2) 590 5447 551 5445 5155 550
8250 CONVEX 2583 GT_PK(2,2) 590 5446 591 5447 5448 551
8251 CONVEX 2584 GT_PK(2,2) 1177 5449 1176 5450 5186 1142
8252 CONVEX 2585 GT_PK(2,2) 1177 5451 1143 5452 5197 1178
8253 CONVEX 2586 GT_PK(2,2) 1177 5451 1143 5450 5199 1142
8254 CONVEX 2587 GT_PK(2,2) 1177 5452 1178 5453 2692 1211
8255 CONVEX 2588 GT_PK(2,2) 1177 5454 1210 5453 4268 1211
8256 CONVEX 2589 GT_PK(2,2) 1177 5449 1176 5454 5189 1210
8257 CONVEX 2590 GT_PK(2,2) 1175 5455 1176 5456 5188 1209
8258 CONVEX 2591 GT_PK(2,2) 1175 5457 1174 5458 3495 1208
8259 CONVEX 2592 GT_PK(2,2) 1175 5456 1209 5458 4856 1208
8260 CONVEX 2593 GT_PK(2,2) 1175 5457 1174 5459 3501 1140
8261 CONVEX 2594 GT_PK(2,2) 1175 5460 1141 5459 5461 1140
8262 CONVEX 2595 GT_PK(2,2) 1175 5455 1176 5460 5187 1141
8263 CONVEX 2596 GT_PK(2,2) 1105 5462 1068 5463 5201 1104
8264 CONVEX 2597 GT_PK(2,2) 1105 5464 1106 5465 4848 1141
8265 CONVEX 2598 GT_PK(2,2) 1105 5465 1141 5466 5461 1140
8266 CONVEX 2599 GT_PK(2,2) 1105 5463 1104 5466 4852 1140
8267 CONVEX 2600 GT_PK(2,2) 1069 5467 1106 5468 5193 1070
8268 CONVEX 2601 GT_PK(2,2) 1069 5469 1068 5470 5204 1031
8269 CONVEX 2602 GT_PK(2,2) 1069 5471 1105 5467 5464 1106
8270 CONVEX 2603 GT_PK(2,2) 1069 5471 1105 5469 5462 1068
8271 CONVEX 2604 GT_PK(2,2) 1069 5472 1032 5468 3465 1070
8272 CONVEX 2605 GT_PK(2,2) 1069 5470 1031 5472 3470 1032
8273 CONVEX 2606 GT_PK(2,2) 1354 5473 1377 5474 4872 1353
8274 CONVEX 2607 GT_PK(2,2) 1354 5475 1328 5474 4873 1353
8275 CONVEX 2608 GT_PK(2,2) 1354 5473 1377 5476 5228 1378
8276 CONVEX 2609 GT_PK(2,2) 1354 5477 1355 5476 5219 1378
8277 CONVEX 2610 GT_PK(2,2) 1354 5475 1328 5478 5231 1329
8278 CONVEX 2611 GT_PK(2,2) 1354 5477 1355 5478 5239 1329
8279 CONVEX 2612 GT_PK(2,2) 1300 5479 1328 5480 4874 1327
8280 CONVEX 2613 GT_PK(2,2) 1300 5481 1301 5479 5229 1328
8281 CONVEX 2614 GT_PK(2,2) 1300 5482 1299 5483 2725 1270
8282 CONVEX 2615 GT_PK(2,2) 1300 5482 1299 5480 3575 1327
8283 CONVEX 2616 GT_PK(2,2) 1300 5484 1271 5483 3614 1270
8284 CONVEX 2617 GT_PK(2,2) 1300 5481 1301 5484 5234 1271
8285 CONVEX 2618 GT_PK(2,2) 1400 5485 1401 5486 5258 1379
8286 CONVEX 2619 GT_PK(2,2) 1400 5487 1418 5488 5227 1378
8287 CONVEX 2620 GT_PK(2,2) 1400 5486 1379 5488 5220 1378
8288 CONVEX 2621 GT_PK(2,2) 1400 5489 1419 5487 5490 1418
8289 CONVEX 2622 GT_PK(2,2) 1400 5485 1401 5489 5251 1419
8290 CONVEX 2623 GT_PK(2,2) 174 5491 205 5492 5272 173
8291 CONVEX 2624 GT_PK(2,2) 174 5493 145 5494 5325 175
8292 CONVEX 2625 GT_PK(2,2) 174 5494 175 5495 5015 206
8293 CONVEX 2626 GT_PK(2,2) 174 5491 205 5495 5274 206
8294 CONVEX 2627 GT_PK(2,2) 142 5496 171 5497 5295 172
8295 CONVEX 2628 GT_PK(2,2) 142 5498 143 5497 5304 172
8296 CONVEX 2629 GT_PK(2,2) 142 5496 171 5499 5299 141
8297 CONVEX 2630 GT_PK(2,2) 142 5498 143 5500 5306 115
8298 CONVEX 2631 GT_PK(2,2) 142 5499 141 5501 3113 114
8299 CONVEX 2632 GT_PK(2,2) 142 5500 115 5501 5303 114
8300 CONVEX 2633 GT_PK(2,2) 552 5502 513 5503 5320 512
8301 CONVEX 2634 GT_PK(2,2) 552 5504 551 5503 5157 512
8302 CONVEX 2635 GT_PK(2,2) 552 5505 592 5506 4188 553
8303 CONVEX 2636 GT_PK(2,2) 552 5502 513 5506 5438 553
8304 CONVEX 2637 GT_PK(2,2) 552 5507 591 5505 5440 592
8305 CONVEX 2638 GT_PK(2,2) 552 5507 591 5504 5448 551
8306 CONVEX 2639 GT_PK(2,2) 144 5508 143 5509 5305 173
8307 CONVEX 2640 GT_PK(2,2) 144 5510 174 5509 5492 173
8308 CONVEX 2641 GT_PK(2,2) 144 5510 174 5511 5493 145
8309 CONVEX 2642 GT_PK(2,2) 144 5508 143 5512 5307 116
8310 CONVEX 2643 GT_PK(2,2) 118 5513 119 5514 5515 146
8311 CONVEX 2644 GT_PK(2,2) 118 5516 145 5514 5326 146
8312 CONVEX 2645 GT_PK(2,2) 118 5513 119 5517 5323 93
8313 CONVEX 2646 GT_PK(2,2) 118 5517 93 5518 3937 92
8314 CONVEX 2647 GT_PK(2,2) 147 5519 176 5520 5329 177
8315 CONVEX 2648 GT_PK(2,2) 147 5521 148 5522 4988 120
8316 CONVEX 2649 GT_PK(2,2) 147 5521 148 5520 4983 177
8317 CONVEX 2650 GT_PK(2,2) 147 5519 176 5523 5331 146
8318 CONVEX 2651 GT_PK(2,2) 147 5524 119 5522 5324 120
8319 CONVEX 2652 GT_PK(2,2) 147 5524 119 5523 5515 146
8320 CONVEX 2653 GT_PK(2,2) 408 5525 446 5526 4570 447
8321 CONVEX 2654 GT_PK(2,2) 408 5527 407 5525 5333 446
8322 CONVEX 2655 GT_PK(2,2) 332 5528 297 5529 5338 333
8323 CONVEX 2656 GT_PK(2,2) 332 5530 368 5531 4566 331
8324 CONVEX 2657 GT_PK(2,2) 332 5532 369 5530 5341 368
8325 CONVEX 2658 GT_PK(2,2) 332 5532 369 5529 5533 333
8326 CONVEX 2659 GT_PK(2,2) 262 5534 297 5535 5336 263
8327 CONVEX 2660 GT_PK(2,2) 262 5536 229 5535 5358 263
8328 CONVEX 2661 GT_PK(2,2) 373 5537 336 5538 5348 372
8329 CONVEX 2662 GT_PK(2,2) 373 5539 410 5538 5540 372
8330 CONVEX 2663 GT_PK(2,2) 373 5541 411 5542 5053 374
8331 CONVEX 2664 GT_PK(2,2) 373 5539 410 5541 5543 411
8332 CONVEX 2665 GT_PK(2,2) 228 5544 261 5545 5044 227
8333 CONVEX 2666 GT_PK(2,2) 228 5546 229 5547 5360 196
8334 CONVEX 2667 GT_PK(2,2) 228 5548 262 5544 5549 261
8335 CONVEX 2668 GT_PK(2,2) 228 5548 262 5546 5536 229
8336 CONVEX 2669 GT_PK(2,2) 228 5550 195 5547 3960 196
8337 CONVEX 2670 GT_PK(2,2) 228 5545 227 5550 4596 195
8338 CONVEX 2671 GT_PK(2,2) 449 5551 448 5552 5368 487
8339 CONVEX 2672 GT_PK(2,2) 449 5552 487 5553 4510 488
8340 CONVEX 2673 GT_PK(2,2) 449 5554 450 5553 5365 488
8341 CONVEX 2674 GT_PK(2,2) 449 5554 450 5555 5363 411
8342 CONVEX 2675 GT_PK(2,2) 449 5556 410 5555 5543 411
8343 CONVEX 2676 GT_PK(2,2) 449 5551 448 5556 5557 410
8344 CONVEX 2677 GT_PK(2,2) 882 5558 921 5559 5369 881
8345 CONVEX 2678 GT_PK(2,2) 882 5560 843 5561 3800 883
8346 CONVEX 2679 GT_PK(2,2) 882 5562 842 5560 4659 843
8347 CONVEX 2680 GT_PK(2,2) 882 5559 881 5562 5088 842
8348 CONVEX 2681 GT_PK(2,2) 922 5563 960 5564 5377 921
8349 CONVEX 2682 GT_PK(2,2) 922 5565 883 5566 3797 923
8350 CONVEX 2683 GT_PK(2,2) 922 5567 961 5566 5099 923
8351 CONVEX 2684 GT_PK(2,2) 922 5563 960 5567 5372 961
8352 CONVEX 2685 GT_PK(2,2) 922 5568 882 5565 5561 883
8353 CONVEX 2686 GT_PK(2,2) 922 5568 882 5564 5558 921
8354 CONVEX 2687 GT_PK(2,2) 996 5569 995 5570 5181 957
8355 CONVEX 2688 GT_PK(2,2) 996 5570 957 5571 5421 958
8356 CONVEX 2689 GT_PK(2,2) 996 5572 997 5571 5382 958
8357 CONVEX 2690 GT_PK(2,2) 996 5572 997 5573 5379 1035
8358 CONVEX 2691 GT_PK(2,2) 996 5574 1034 5573 4839 1035
8359 CONVEX 2692 GT_PK(2,2) 996 5569 995 5574 5185 1034
8360 CONVEX 2693 GT_PK(2,2) 578 5575 618 5576 5400 617
8361 CONVEX 2694 GT_PK(2,2) 578 5577 538 5578 5579 539
8362 CONVEX 2695 GT_PK(2,2) 580 5580 540 5581 5413 541
8363 CONVEX 2696 GT_PK(2,2) 580 5582 620 5583 4724 619
8364 CONVEX 2697 GT_PK(2,2) 580 5584 581 5582 5391 620
8365 CONVEX 2698 GT_PK(2,2) 580 5584 581 5581 5389 541
8366 CONVEX 2699 GT_PK(2,2) 579 5585 540 5586 5587 539
8367 CONVEX 2700 GT_PK(2,2) 579 5588 578 5586 5578 539
8368 CONVEX 2701 GT_PK(2,2) 579 5588 578 5589 5575 618
8369 CONVEX 2702 GT_PK(2,2) 579 5589 618 5590 5398 619
8370 CONVEX 2703 GT_PK(2,2) 579 5591 580 5590 5583 619
8371 CONVEX 2704 GT_PK(2,2) 579 5591 580 5585 5580 540
8372 CONVEX 2705 GT_PK(2,2) 501 5592 540 5593 5587 539
8373 CONVEX 2706 GT_PK(2,2) 501 5594 462 5595 5418 463
8374 CONVEX 2707 GT_PK(2,2) 501 5595 463 5596 4741 502
8375 CONVEX 2708 GT_PK(2,2) 501 5592 540 5596 5414 502
8376 CONVEX 2709 GT_PK(2,2) 577 5597 576 5598 5402 616
8377 CONVEX 2710 GT_PK(2,2) 577 5598 616 5599 5408 617
8378 CONVEX 2711 GT_PK(2,2) 577 5600 578 5599 5576 617
8379 CONVEX 2712 GT_PK(2,2) 577 5600 578 5601 5577 538
8380 CONVEX 2713 GT_PK(2,2) 500 5602 462 5603 5415 461
8381 CONVEX 2714 GT_PK(2,2) 500 5604 538 5605 5579 539
8382 CONVEX 2715 GT_PK(2,2) 500 5606 501 5605 5593 539
8383 CONVEX 2716 GT_PK(2,2) 500 5606 501 5602 5594 462
8384 CONVEX 2717 GT_PK(2,2) 500 5603 461 5607 4718 499
8385 CONVEX 2718 GT_PK(2,2) 500 5604 538 5607 5608 499
8386 CONVEX 2719 GT_PK(2,2) 117 5609 118 5610 5518 92
8387 CONVEX 2720 GT_PK(2,2) 117 5611 144 5612 5512 116
8388 CONVEX 2721 GT_PK(2,2) 117 5611 144 5613 5511 145
8389 CONVEX 2722 GT_PK(2,2) 117 5609 118 5613 5516 145
8390 CONVEX 2723 GT_PK(2,2) 117 5614 91 5610 4911 92
8391 CONVEX 2724 GT_PK(2,2) 117 5612 116 5614 3703 91
8392 CONVEX 2725 GT_PK(2,2) 409 5615 410 5616 5540 372
8393 CONVEX 2726 GT_PK(2,2) 409 5617 408 5618 5526 447
8394 CONVEX 2727 GT_PK(2,2) 409 5619 448 5618 5367 447
8395 CONVEX 2728 GT_PK(2,2) 409 5619 448 5615 5557 410
8396 CONVEX 2729 GT_PK(2,2) 371 5620 335 5621 5347 372
8397 CONVEX 2730 GT_PK(2,2) 371 5622 409 5621 5616 372
8398 CONVEX 2731 GT_PK(2,2) 371 5622 409 5623 5617 408
8399 CONVEX 2732 GT_PK(2,2) 296 5624 262 5625 5534 297
8400 CONVEX 2733 GT_PK(2,2) 296 5626 331 5627 3954 295
8401 CONVEX 2734 GT_PK(2,2) 296 5628 261 5627 5047 295
8402 CONVEX 2735 GT_PK(2,2) 296 5624 262 5628 5549 261
8403 CONVEX 2736 GT_PK(2,2) 296 5629 332 5626 5531 331
8404 CONVEX 2737 GT_PK(2,2) 296 5629 332 5625 5528 297
8405 CONVEX 2738 GT_PK(2,2) 337 5630 373 5631 5537 336
8406 CONVEX 2739 GT_PK(2,2) 337 5631 336 5632 5343 301
8407 CONVEX 2740 GT_PK(2,2) 337 5633 374 5634 4602 338
8408 CONVEX 2741 GT_PK(2,2) 337 5630 373 5633 5542 374
8409 CONVEX 2742 GT_PK(2,2) 337 5634 338 5635 3095 302
8410 CONVEX 2743 GT_PK(2,2) 337 5632 301 5635 5030 302
8411 CONVEX 2744 GT_PK(2,2) 537 5636 577 5637 5597 576
8412 CONVEX 2745 GT_PK(2,2) 537 5638 536 5639 2990 498
8413 CONVEX 2746 GT_PK(2,2) 537 5637 576 5638 5404 536
8414 CONVEX 2747 GT_PK(2,2) 537 5640 499 5639 4100 498
8415 CONVEX 2748 GT_PK(2,2) 537 5641 538 5640 5608 499
8416 CONVEX 2749 GT_PK(2,2) 537 5636 577 5641 5601 538
8417 CONVEX 2750 GT_PK(2,2) 334 5642 371 5643 5620 335
8418 CONVEX 2751 GT_PK(2,2) 334 5643 335 5644 5349 299
8419 CONVEX 2752 GT_PK(2,2) 334 5645 333 5646 5339 298
8420 CONVEX 2753 GT_PK(2,2) 334 5644 299 5646 5032 298
8421 CONVEX 2754 GT_PK(2,2) 370 5647 408 5648 5527 407
8422 CONVEX 2755 GT_PK(2,2) 370 5649 371 5647 5623 408
8423 CONVEX 2756 GT_PK(2,2) 370 5650 369 5648 5342 407
8424 CONVEX 2757 GT_PK(2,2) 370 5651 334 5649 5642 371
8425 CONVEX 2758 GT_PK(2,2) 370 5650 369 5652 5533 333
8426 CONVEX 2759 GT_PK(2,2) 370 5651 334 5652 5645 333
8427
8428 END MESH STRUCTURE DESCRIPTION
+0
-2071
interface/src/scilab/demos/data/disc_P2_h2.mesh less more
0 % GETFEM MESH FILE
1 % GETFEM VERSION 1.7-20040316
2
3
4
5 BEGIN POINTS LIST
6
7 POINT 0 0 0
8 POINT 1 0 20
9 POINT 2 -20 20
10 POINT 3 20 20
11 POINT 4 0 40
12 POINT 5 -7.08999439411224 1.298877587388341
13 POINT 6 -5.282004223598042 0.7100950914239894
14 POINT 7 -3.47031521720064 0.3033781502190239
15 POINT 8 -1.689974063564663 0.07152821552843025
16 POINT 9 1.689960162663852 0.07152703670926773
17 POINT 10 3.470291113247503 0.3033739033986539
18 POINT 11 5.281972434142698 0.7100863867937268
19 POINT 12 7.089956578995546 1.298863250915369
20 POINT 13 -10.33788236531681 2.879013223504487
21 POINT 14 -8.728323343402396 2.005101511455367
22 POINT 15 -6.155723063676203 2.801434963065342
23 POINT 16 -4.091201195594828 2.459658715166061
24 POINT 17 -2.066659832781266 2.187655143712953
25 POINT 18 -4.444059962388502e-06 2.064287137447093
26 POINT 19 2.066650046418929 2.187657831466219
27 POINT 20 4.091191239691891 2.459658150301677
28 POINT 21 6.155715570419536 2.801429443148412
29 POINT 22 8.728292838334855 2.005086715177716
30 POINT 23 10.3378510065 2.878994288669519
31 POINT 24 -13.31700959313135 5.078295824654251
32 POINT 25 -11.8842697780299 3.913852796799773
33 POINT 26 -9.460448082417175 4.366488604800259
34 POINT 27 -7.512025315084293 4.126002865730436
35 POINT 28 -5.172892121816004 4.455275571417475
36 POINT 29 -3.057534701397881 4.267955770521298
37 POINT 30 -1.012355277947994 4.110780430542055
38 POINT 31 1.012349419089582 4.110782567666035
39 POINT 32 3.057529483199409 4.267957853121388
40 POINT 33 5.172886691584971 4.455272913530382
41 POINT 34 7.512016782430195 4.125998677146069
42 POINT 35 9.460436885249777 4.366480067235193
43 POINT 36 11.88424594459136 3.913835188943747
44 POINT 37 13.31698679929866 5.078275482126558
45 POINT 38 -14.7498830675396 6.492929647996144
46 POINT 39 -12.45509720824102 6.556537137387828
47 POINT 40 -10.6482491458674 5.948211070168938
48 POINT 41 -8.422109451390526 6.167912606077227
49 POINT 42 -6.353060403793894 6.112985632708121
50 POINT 43 -4.1407681774423 6.228053553808773
51 POINT 44 -2.044474263097546 6.130734213928414
52 POINT 45 -1.590000917432027e-06 6.079527809516725
53 POINT 46 2.044472146376001 6.130736081211611
54 POINT 47 4.140767470322072 6.22805374467435
55 POINT 48 6.353058937427791 6.112982734736828
56 POINT 49 8.422108492096564 6.167907314850485
57 POINT 50 10.64824854146091 5.948202934940974
58 POINT 51 12.45509688415863 6.556538659055924
59 POINT 52 14.74986960384593 6.492914945498344
60 POINT 53 -16.04355519086491 8.058294224118221
61 POINT 54 -13.74135223644284 8.192183278283656
62 POINT 55 -11.47752803375488 8.160729976898475
63 POINT 56 -9.493527168153337 7.92578225082361
64 POINT 57 -7.348476128284648 8.030483731407866
65 POINT 58 -5.251990097092846 8.021830105465815
66 POINT 59 -3.111403417400961 8.061569553457121
67 POINT 60 -1.03035566619991 8.025902010406856
68 POINT 61 1.030354767138576 8.025902400729668
69 POINT 62 3.111403710309801 8.061569941428463
70 POINT 63 5.251991017315566 8.021829123575905
71 POINT 64 7.348476568276788 8.030480163525478
72 POINT 65 9.49352663676625 7.92577656119784
73 POINT 66 11.47752506667806 8.160726192772536
74 POINT 67 13.74135116972482 8.192181839463158
75 POINT 68 16.04354708966182 8.058283340247721
76 POINT 69 -17.19580986241097 9.787060992258192
77 POINT 70 -14.93702314944201 9.823933424582281
78 POINT 71 -12.67351421081692 9.907845730886832
79 POINT 72 -10.48194789872941 9.921029402134767
80 POINT 73 -8.415247672061369 9.840575684874789
81 POINT 74 -6.293821461179366 9.890161035967978
82 POINT 75 -4.18979493172746 9.895564239362063
83 POINT 76 -2.081243704999238 9.916613908721169
84 POINT 77 5.730172508017217e-08 9.910960593168005
85 POINT 78 2.081244132593595 9.916613808527552
86 POINT 79 4.189795976700378 9.895563750716825
87 POINT 80 6.293822706796825 9.890159478467984
88 POINT 81 8.415248200245212 9.840572417227369
89 POINT 82 10.48194698614503 9.921026346494969
90 POINT 83 12.67351249301398 9.90784290415405
91 POINT 84 14.93702196401547 9.823930709655935
92 POINT 85 17.19580506925672 9.787052921897237
93 POINT 86 -18.1760415240729 11.65545001122227
94 POINT 87 -15.97553246064111 11.5448525408589
95 POINT 88 -13.78571642443011 11.61751913076442
96 POINT 89 -11.59628723826348 11.69602393958708
97 POINT 90 -9.442169657304916 11.7276271718398
98 POINT 91 -7.349624558628578 11.71151253389753
99 POINT 92 -5.24282073613147 11.73166174921223
100 POINT 93 -3.137905182843987 11.749161104766
101 POINT 94 -1.042556134226208 11.76547185321201
102 POINT 95 1.042556695466196 11.76547172930404
103 POINT 96 3.13790593838561 11.74916068398455
104 POINT 97 5.242821722657395 11.73166093775092
105 POINT 98 7.349625501825332 11.7115109952139
106 POINT 99 9.442169874348188 11.72762525690472
107 POINT 100 11.59628683371615 11.69602200942614
108 POINT 101 13.78571564810794 11.61751684765504
109 POINT 102 15.97553159279355 11.54484971825705
110 POINT 103 18.17603883633879 11.65544415682245
111 POINT 104 -18.9605397782243 13.63620150237337
112 POINT 105 -16.8378114819632 13.34701391345798
113 POINT 106 -14.74755920142683 13.39190264700377
114 POINT 107 -12.63015409928628 13.45515225576576
115 POINT 108 -10.4974158537763 13.51638952902862
116 POINT 109 -8.377087236386718 13.55137598391785
117 POINT 110 -6.285880485474346 13.5571522438029
118 POINT 111 -4.197964629953373 13.554499339371
119 POINT 112 -2.088214950681028 13.58585648886253
120 POINT 113 2.731150748891409e-07 13.59731244193799
121 POINT 114 2.088215540160786 13.58585624443037
122 POINT 115 4.197965288358211 13.55449885456938
123 POINT 116 6.285881219549023 13.55715142631005
124 POINT 117 8.377087797482492 13.5513749885778
125 POINT 118 10.49741609890272 13.51638838986579
126 POINT 119 12.63015411255437 13.45515089704564
127 POINT 120 14.74755900190871 13.3919008647022
128 POINT 121 16.83781104922592 13.34701152878708
129 POINT 122 18.96053842326367 13.63619746535554
130 POINT 123 -19.5357573624754 15.71582163367355
131 POINT 124 -17.53374306722162 15.20882267305824
132 POINT 125 -15.57069741754931 15.24451363995668
133 POINT 126 -13.55098734811856 15.27194090964616
134 POINT 127 -11.4874826074671 15.31182390849893
135 POINT 128 -9.398270307101383 15.3521915525082
136 POINT 129 -7.307964300837752 15.3807112166889
137 POINT 130 -5.231490199222396 15.39200882295255
138 POINT 131 -3.169152633696715 15.35291249391119
139 POINT 132 -1.041499472772248 15.40847695692984
140 POINT 133 1.041499922227459 15.40847686112553
141 POINT 134 3.169153095957357 15.35291225824823
142 POINT 135 5.231490717147384 15.39200836588829
143 POINT 136 7.307964797170775 15.38071066913708
144 POINT 137 9.398270745362067 15.35219096658757
145 POINT 138 11.48748296447435 15.31182320391143
146 POINT 139 13.55098760797554 15.27193995853761
147 POINT 140 15.57069756108526 15.24451232768288
148 POINT 141 17.5337430129703 15.20882089303506
149 POINT 142 19.53575681130713 15.71581912036011
150 POINT 143 -18.2269232082509 17.13021291903821
151 POINT 144 -16.40696619670878 17.17145148168169
152 POINT 145 -14.46503683750223 17.15281425943443
153 POINT 146 -12.45424174106675 17.15199836204197
154 POINT 147 -10.39981013664358 17.16515504075176
155 POINT 148 -8.328026293006795 17.18988295252257
156 POINT 149 -6.256758829896484 17.21190086556036
157 POINT 150 -4.196112455235621 17.22388615617422
158 POINT 151 -2.171217513306863 17.11254059462183
159 POINT 152 1.665915350806957e-07 17.22074676082319
160 POINT 153 2.171217828945217 17.1125405142267
161 POINT 154 4.19611284158213 17.22388591748381
162 POINT 155 6.256759233014987 17.21190057227975
163 POINT 156 8.32802671761999 17.18988265372117
164 POINT 157 10.39981059340922 17.16515474428726
165 POINT 158 12.45424219159261 17.15199799003971
166 POINT 159 14.46503723679426 17.15281363556374
167 POINT 160 16.40696659288819 17.17145057879611
168 POINT 161 18.22692352993353 17.13021164782587
169 POINT 162 -19.89780896458842 17.98079262859248
170 POINT 163 -17.84230000449807 19.0216744028301
171 POINT 164 -15.67627065513821 19.02313060013363
172 POINT 165 -13.55906626932976 19.0036025225671
173 POINT 166 -11.45548002657009 18.98870888881037
174 POINT 167 -9.365348057261556 18.99918972787285
175 POINT 168 -7.287998267664897 19.0218085635537
176 POINT 169 -5.225476971032742 19.04419029905378
177 POINT 170 -3.181207515747626 19.06061320124515
178 POINT 171 -1.234450813224698 18.81027364364246
179 POINT 172 1.234451001429794 18.8102736784703
180 POINT 173 3.181207777678578 19.06061305006857
181 POINT 174 5.225477302694968 19.04419014960234
182 POINT 175 7.287998656796332 19.02180842950959
183 POINT 176 9.365348511226138 18.99918964629332
184 POINT 177 11.45548052731511 18.98870888549819
185 POINT 178 13.55906673221513 19.00360248933783
186 POINT 179 15.6762709640833 19.02313030096059
187 POINT 180 17.84230024444024 19.02167396477342
188 POINT 181 19.89780885181004 17.98079151724459
189 POINT 182 -18.34809671121251 20.89054860233434
190 POINT 183 -16.5148528869666 20.87800710044906
191 POINT 184 -14.52694695679922 20.85426661015416
192 POINT 185 -12.45599638977427 20.8108810324845
193 POINT 186 -10.37011211347385 20.80605366101868
194 POINT 187 -8.288100923056527 20.82387931457176
195 POINT 188 -6.210897946834899 20.84807602452601
196 POINT 189 -4.130583790032196 20.86687448767059
197 POINT 190 -2.030932593701857 20.87063865748742
198 POINT 191 9.744431586633517e-08 21.64935021861394
199 POINT 192 2.030932751362846 20.87063857502341
200 POINT 193 4.130584013659444 20.86687431844705
201 POINT 194 6.210898346296974 20.84807594605767
202 POINT 195 8.288101445193462 20.82387932992417
203 POINT 196 10.37011274159265 20.80605382218947
204 POINT 197 12.45599711658471 20.8108813744629
205 POINT 198 14.52694762208812 20.85426702370534
206 POINT 199 16.51485331119099 20.87800725634424
207 POINT 200 18.348097009919 20.89054895986076
208 POINT 201 -19.88382274553589 22.15257822717576
209 POINT 202 -17.85872906553023 22.79187608979278
210 POINT 203 -15.75836820209814 22.71857538973881
211 POINT 204 -13.57945048306569 22.62787433244293
212 POINT 205 -11.43502337227142 22.60571660119635
213 POINT 206 -9.32896785495339 22.62172230713452
214 POINT 207 -7.252191943285577 22.65010775210676
215 POINT 208 -5.19352107545026 22.67271964550248
216 POINT 209 -3.145718127729072 22.67904520073677
217 POINT 210 -1.19802941618547 22.93488185752093
218 POINT 211 1.198029575535804 22.93488182516196
219 POINT 212 3.145718298303114 22.67904507452085
220 POINT 213 5.193521324838902 22.67271937177574
221 POINT 214 7.252192530636423 22.65010772431655
222 POINT 215 9.328968618053137 22.62172251326393
223 POINT 216 11.43502432491394 22.60571702295378
224 POINT 217 13.57945157268804 22.62787513308746
225 POINT 218 15.75836910518877 22.71857642015902
226 POINT 219 17.85872913941462 22.7918771500154
227 POINT 220 19.88382260621709 22.15257951409296
228 POINT 221 -19.56496589012501 24.14874796995999
229 POINT 222 -17.12378015908613 24.49263729810405
230 POINT 223 -14.75261366404331 24.36653106466741
231 POINT 224 -12.51545015644557 24.36405857012063
232 POINT 225 -10.36487612468117 24.40059700241373
233 POINT 226 -8.270782662155399 24.44922254990688
234 POINT 227 -6.207288303035652 24.48752518657241
235 POINT 228 -4.152672439085122 24.50430982838724
236 POINT 229 -2.144764510838116 24.6392641397031
237 POINT 230 6.736184551131563e-08 24.56637229685156
238 POINT 231 2.144764639428793 24.6392640566236
239 POINT 232 4.152672593221236 24.5043096033403
240 POINT 233 6.207288592802848 24.48752465778632
241 POINT 234 8.270783499471428 24.44922265688236
242 POINT 235 10.36487726829784 24.4005974184117
243 POINT 236 12.51545141239867 24.36405943508291
244 POINT 237 14.75261493047371 24.36653271363972
245 POINT 238 17.12378075459493 24.4926401834798
246 POINT 239 19.56496529523762 24.14875077537231
247 POINT 240 -19.08648829040304 25.9754468234863
248 POINT 241 -17.2845615037453 26.31014844212238
249 POINT 242 -15.41261905344529 26.10941999036963
250 POINT 243 -13.37179093546351 26.11632995430249
251 POINT 244 -11.29591265365937 26.16877399507631
252 POINT 245 -9.236109783161917 26.24563353410026
253 POINT 246 -7.197506282144635 26.30683884552605
254 POINT 247 -5.148124747507762 26.32635712487787
255 POINT 248 -3.122954853611116 26.40463970225008
256 POINT 249 -1.028840474391874 26.37582534616704
257 POINT 250 1.028840597301122 26.37582532979795
258 POINT 251 3.122954923639289 26.40463955141999
259 POINT 252 5.148124848876652 26.32635667877105
260 POINT 253 7.197506356103443 26.30683804371632
261 POINT 254 9.236111124219747 26.24563372506302
262 POINT 255 11.29591412227338 26.16877501716782
263 POINT 256 13.3717921011747 26.11633170886203
264 POINT 257 15.41261961645513 26.1094231779272
265 POINT 258 17.28456075910474 26.31015378144565
266 POINT 259 19.08648669351269 25.97545192419629
267 POINT 260 -18.31673994912508 28.03100477126815
268 POINT 261 -16.29279631468638 28.07734896422777
269 POINT 262 -14.29108105178232 27.93826211324394
270 POINT 263 -12.23205698562959 27.95454691920996
271 POINT 264 -10.1921242779246 28.04641052160824
272 POINT 265 -8.184908522052318 28.14581978804722
273 POINT 266 -6.142892720399755 28.15468429908139
274 POINT 267 -4.115765842832939 28.20978375998045
275 POINT 268 -2.044953225702631 28.19763670818671
276 POINT 269 1.215817429928157e-07 28.20528019734085
277 POINT 270 2.044953387448034 28.19763672758267
278 POINT 271 4.115765884875199 28.20978350344839
279 POINT 272 6.142892053295159 28.15468405294527
280 POINT 273 8.184908802060571 28.1458177672969
281 POINT 274 10.1921266003412 28.04641156253142
282 POINT 275 12.23205881411247 27.95454935528251
283 POINT 276 14.2910815778731 27.93826589300298
284 POINT 277 16.29279479603289 28.07735539177588
285 POINT 278 18.31673641698378 28.0310128272082
286 POINT 279 -17.36678064292307 29.91942186322351
287 POINT 280 -15.30701199611502 29.80163024565981
288 POINT 281 -13.1975126296105 29.73273604910611
289 POINT 282 -11.14232609374812 29.83834011557202
290 POINT 283 -9.18383040196667 30.00598319236085
291 POINT 284 -7.135586668146636 29.99761305864382
292 POINT 285 -5.123286168201119 30.04271988926355
293 POINT 286 -3.053121112865554 30.02630175178171
294 POINT 287 -1.015876570824747 30.05156154994286
295 POINT 288 1.015877381461083 30.05156170293002
296 POINT 289 3.053121697974701 30.02630185030043
297 POINT 290 5.123284228587577 30.0427213293883
298 POINT 291 7.135586245905698 29.99761060242232
299 POINT 292 9.183831168146963 30.00598031130402
300 POINT 293 11.14232972160493 29.83834373724195
301 POINT 294 13.19751369866922 29.73274161644041
302 POINT 295 15.30700948964564 29.80163858123015
303 POINT 296 17.36677404971316 29.91943340651388
304 POINT 297 -16.21450019303935 31.70854318392894
305 POINT 298 -14.18134842576247 31.46072633556853
306 POINT 299 -12.05433474215738 31.57807989769072
307 POINT 300 -10.18803390533311 31.90895778516169
308 POINT 301 -8.127827538982091 31.83562093362241
309 POINT 302 -6.132870312528693 31.91947084481104
310 POINT 303 -4.060514707104238 31.84886116654844
311 POINT 304 -2.023054298900899 31.90620457141977
312 POINT 305 1.779731685490338e-06 31.92616315841029
313 POINT 306 2.023057639192921 31.90620515692421
314 POINT 307 4.060510421402324 31.84886697474238
315 POINT 308 6.132869669181516 31.91946778705557
316 POINT 309 8.127827628663475 31.83561745950141
317 POINT 310 10.18803390203203 31.90895591912609
318 POINT 311 12.05433729770214 31.5780897141657
319 POINT 312 14.18134461110469 31.46073802168817
320 POINT 313 16.21448882325949 31.70855892928177
321 POINT 314 -14.85855987098478 33.38742688347396
322 POINT 315 -12.97622115412793 33.15231979037343
323 POINT 316 -11.24542238667929 33.84152597332419
324 POINT 317 -9.096796145803623 33.67355592311518
325 POINT 318 -7.169110863793735 33.81460869617811
326 POINT 319 -5.025802643706024 33.69074033624606
327 POINT 320 -3.036012504986613 33.74897677262599
328 POINT 321 -1.006001725651425 33.81394161048243
329 POINT 322 1.006017505359627 33.81394238106373
330 POINT 323 3.03600454008222 33.7489957057666
331 POINT 324 5.025801824829388 33.69073476359576
332 POINT 325 7.169110502599582 33.81460511144136
333 POINT 326 9.09679356939724 33.67355436459209
334 POINT 327 11.24541326548703 33.84153193558982
335 POINT 328 12.97621626240949 33.15233833055714
336 POINT 329 14.85854134665239 33.38744744340443
337 POINT 330 -13.24234864752243 34.98800194480442
338 POINT 331 -10.03539086910046 35.3828070140792
339 POINT 332 -8.191323309688949 35.8082238544771
340 POINT 333 -5.969442595277822 35.42728838548917
341 POINT 334 -3.964572821971675 35.68073227615353
342 POINT 335 -2.062446042804255 35.66361537576937
343 POINT 336 3.401394552337428e-05 35.7433135846511
344 POINT 337 2.062435708551036 35.66367717807774
345 POINT 338 3.96457676799794 35.68072163899399
346 POINT 339 5.969444351238414 35.42728363799607
347 POINT 340 8.19131937738778 35.80822453891639
348 POINT 341 10.03538306356879 35.38281277249126
349 POINT 342 13.2423188856883 34.98802824022632
350 POINT 343 -11.71964489363993 36.20647782730662
351 POINT 344 -9.885418518050601 37.38615830834937
352 POINT 345 -6.769213566269587 37.09871131951007
353 POINT 346 -4.834310082657146 37.45809613171494
354 POINT 347 -2.966207997229898 37.80957975457357
355 POINT 348 -1.228951401026502 37.50853541118494
356 POINT 349 1.228967413584314 37.50873516084056
357 POINT 350 2.966244431714553 37.80956888117363
358 POINT 351 4.834322604660215 37.45809313826081
359 POINT 352 6.769215951806145 37.09871058669637
360 POINT 353 9.885380262406448 37.38618005968161
361 POINT 354 11.71961051109886 36.20650269083999
362 POINT 355 -8.160801736293346 38.25928024378061
363 POINT 356 -6.108721403629119 39.04425169999729
364 POINT 357 -4.094025391529261 39.57648988183318
365 POINT 358 -2.032918826278168 39.89641276827972
366 POINT 359 -0.000114943787747096 38.55954134616952
367 POINT 360 2.032857647557499 39.89641901912924
368 POINT 361 4.093978133093873 39.57649976491602
369 POINT 362 6.108678764431183 39.04426537708952
370 POINT 363 8.16076002653128 38.25929888548312
371 POINT 364 19.74927974328947 16.84311090331085
372 POINT 365 19.06236619087178 17.55550158253523
373 POINT 366 18.88134017062033 16.42301538409299
374 POINT 367 18.87005454812514 18.50123274100901
375 POINT 368 18.92115012222012 19.51083698238671
376 POINT 369 19.97443587516672 18.98910375220634
377 POINT 370 18.03461188718688 18.07594280629964
378 POINT 371 -1.016516885032958 39.22797705722462
379 POINT 372 -1.017777998289471 39.97408640454459
380 POINT 373 -5.747189387354801e-05 39.27977067308476
381 POINT 374 1.016371351884876 39.22798018264938
382 POINT 375 1.017747548306818 39.9740879692846
383 POINT 376 2.499551039636026 38.85299395015144
384 POINT 377 3.530111282404213 38.69303432304483
385 POINT 378 3.067591411714378 39.76334698055007
386 POINT 379 -10.9924492306217 14.41410671876377
387 POINT 380 -10.44287645728424 15.33200773050357
388 POINT 381 -9.947843080438842 14.43429054076841
389 POINT 382 -12.05881835337669 14.38348808213234
390 POINT 383 -11.56378497653129 13.48577089239719
391 POINT 384 -19.1159597283742 21.52156341475505
392 POINT 385 -19.17404835560626 20.44527430116717
393 POINT 386 -19.97093456597552 21.07785567562136
394 POINT 387 18.53474991213871 15.46232000669758
395 POINT 388 18.24714071811698 14.4225091791953
396 POINT 389 19.27621315646036 14.66824556999596
397 POINT 390 17.88033327145191 16.16951627043046
398 POINT 391 -1.878316948172965 1.129591679620692
399 POINT 392 -2.768487524990953 1.245516646965989
400 POINT 393 -2.582747461702293 0.167465745146943
401 POINT 394 7.648469065631529 32.82511128547139
402 POINT 395 8.132952035998411 33.74407973801672
403 POINT 396 8.612310599030359 32.75458591204675
404 POINT 397 10.87749678733383 35.79465773166562
405 POINT 398 10.81858671612841 36.82136097977488
406 POINT 399 9.960381662987619 36.38449641608644
407 POINT 400 -11.96631262099795 7.358633557143151
408 POINT 401 -11.55167317705421 6.252374103778383
409 POINT 402 -11.06288858981114 7.054470523533706
410 POINT 403 -12.16968349313546 5.2351949670938
411 POINT 404 -11.26625946194865 4.931031933484356
412 POINT 405 -12.0755211222859 9.034287853892653
413 POINT 406 -11.57773105477317 9.914437566510799
414 POINT 407 -10.97973796624214 9.040879689516622
415 POINT 408 -10.17110926624146 33.75754094821968
416 POINT 409 -10.64040662788987 34.61216649370169
417 POINT 410 -9.566093507452038 34.52818146859719
418 POINT 411 -5.471515743143133 38.25117391585611
419 POINT 412 -5.108309760920813 39.33662769024022
420 POINT 413 -4.464167737093204 38.51729300677406
421 POINT 414 -17.075786992357 11.60015127604059
422 POINT 415 -16.58567116152604 10.66595676655855
423 POINT 416 -17.71058118590639 10.70832033698396
424 POINT 417 -11.04685154601989 12.60620673430785
425 POINT 418 -12.11322066877488 12.57558809767642
426 POINT 419 -12.1349007245402 10.80193483523696
427 POINT 420 -11.03911756849645 10.80852667086092
428 POINT 421 -9.437251545081509 13.53388275647323
429 POINT 422 -8.887678771744049 14.45178376821303
430 POINT 423 -12.51923497779283 15.29188240907255
431 POINT 424 -13.09057072370242 14.36354658270596
432 POINT 425 -18.87005448454325 18.50123351571129
433 POINT 426 -18.03461160637449 18.07594366093415
434 POINT 427 -19.06236608641966 17.55550277381534
435 POINT 428 -18.92115000224904 19.51083720141505
436 POINT 429 -19.97443590274372 18.98910431002001
437 POINT 430 -18.09519835785529 19.95611150258222
438 POINT 431 0.5990148364900598 22.29211602188795
439 POINT 432 -0.599014659370577 22.29211603806743
440 POINT 433 7.967516690854382e-08 22.93488184134145
441 POINT 434 -1.01546624812877 21.25999443805068
442 POINT 435 4.872215793316759e-08 20.82467510930697
443 POINT 436 -1.015466296850928 20.43531932874371
444 POINT 437 -1.614481004943663 21.90276025750417
445 POINT 438 6.782362015092881 16.29630562070841
446 POINT 439 6.26972775715908 15.38635951751268
447 POINT 440 5.744124975081186 16.30195446908402
448 POINT 441 -5.74412451455944 16.30195484425646
449 POINT 442 -5.226435642566052 17.21789351086729
450 POINT 443 -4.713801327229008 16.30794748956339
451 POINT 444 -4.200321416459555 15.37246065843187
452 POINT 445 -3.682632544466168 16.2883993250427
453 POINT 446 -5.718863643637123 1.755765027244666
454 POINT 447 -6.622858728894221 2.050156275226842
455 POINT 448 -6.1930002735872 0.9829879862466689
456 POINT 449 -1.033332138420614 2.125971140580023
457 POINT 450 -0.5061798610039783 3.087533783994574
458 POINT 451 -1.53950755536463 3.149217787127504
459 POINT 452 0.8449778593019447 1.06790708707818
460 POINT 453 -2.222029981194251e-06 1.032143568723546
461 POINT 454 0.8457366719362006 0.01788976042541284
462 POINT 455 -0.8449892538123129 1.067907676487761
463 POINT 456 -0.8457434623547605 0.01789005539397318
464 POINT 457 7.14550668849857 38.67998224759658
465 POINT 458 7.464987989168712 37.67900473608974
466 POINT 459 6.438947358118664 38.07148798189294
467 POINT 460 5.471500684545699 38.25117925767516
468 POINT 461 5.801769278233181 37.27840186247859
469 POINT 462 4.399449686329078 36.5694073886274
470 POINT 463 3.900283518187385 37.63383100971722
471 POINT 464 3.465410599856247 36.74514526008381
472 POINT 465 4.464150368877045 38.51729645158841
473 POINT 466 5.108265028519643 39.33663957465164
474 POINT 467 6.569277426918998 34.62094437471872
475 POINT 468 5.497623088033901 34.55900920079591
476 POINT 469 6.097456163714485 33.75266993751856
477 POINT 470 4.967010559618177 35.55400263849503
478 POINT 471 4.495189296413664 34.68572820129488
479 POINT 472 5.401883477949315 36.44268838812844
480 POINT 473 6.369330151522279 36.26299711234622
481 POINT 474 9.113351220478284 35.59551865570383
482 POINT 475 9.038349819897114 36.597202299299
483 POINT 476 7.080381864313097 35.61775408845623
484 POINT 477 7.480267664596962 36.45346756280638
485 POINT 478 7.680214939993681 34.81141482517887
486 POINT 479 8.64405647339251 34.74088945175424
487 POINT 480 9.566088316483015 34.52818356854168
488 POINT 481 8.17603970195953 37.03376171219976
489 POINT 482 9.033624999701651 37.84358769694784
490 POINT 483 18.72983203648753 27.01380028490616
491 POINT 484 17.80064858804426 27.17058330432692
492 POINT 485 18.18552372630872 26.14280285282097
493 POINT 486 14.85185059716412 27.02384453546509
494 POINT 487 13.8314368395239 27.02729880093251
495 POINT 488 14.39220585881491 26.11287744339462
496 POINT 489 -2.499563411754033 38.85299626142665
497 POINT 490 -3.530116694379579 38.69303481820337
498 POINT 491 -3.067645385176077 39.76333856162318
499 POINT 492 -3.900259039943522 37.63383794314426
500 POINT 493 3.013506238274488 35.67219940853586
501 POINT 494 2.514340070132794 36.73662302962569
502 POINT 495 6.650990085890549 32.86703644924846
503 POINT 496 5.579335747005452 32.80510127532567
504 POINT 497 7.130348648922496 31.87754262327849
505 POINT 498 7.631706937284587 30.91661403096186
506 POINT 499 8.159708707026331 30.00179545686317
507 POINT 500 8.655829398405219 30.92079888540271
508 POINT 501 6.634227957543607 30.95853919473894
509 POINT 502 6.129435237246637 30.02016596590531
510 POINT 503 5.628076948884546 30.98109455822193
511 POINT 504 11.94551072074933 21.70829919870834
512 POINT 505 11.41305492908868 20.80846759832619
513 POINT 506 10.9025685332533 21.70588542257163
514 POINT 507 13.00753192439992 19.90724193190037
515 POINT 508 13.49147236933642 20.83257419908412
516 POINT 509 14.04300717715163 19.92893475652158
517 POINT 510 -1.632691703463277 19.84045615056494
518 POINT 511 -0.617225406612349 19.40513682182123
519 POINT 512 7.881862384261 8.935526290376423
520 POINT 513 6.821149637536807 8.96031982099673
521 POINT 514 7.354535453521018 9.865365947847677
522 POINT 515 1.878305104541391 1.129592434087743
523 POINT 516 2.768470579833216 1.245515867432436
524 POINT 517 2.582728607973412 0.1674632640394325
525 POINT 518 1.033322801179483 2.125972484456656
526 POINT 519 -12.88605340068618 5.81741648102104
527 POINT 520 -14.05126013257847 5.767569248488341
528 POINT 521 -13.60249013789031 6.524733392691986
529 POINT 522 -12.61408342909388 4.479532986874619
530 POINT 523 -13.09822472234193 7.374360207835742
531 POINT 524 -12.60944013509886 8.176456627591065
532 POINT 525 -13.20743322362988 9.050014504585244
533 POINT 526 -14.24561765199122 7.3425564631399
534 POINT 527 -14.89245371365388 8.125238751200939
535 POINT 528 -15.41659981616689 7.259181873308678
536 POINT 529 -12.11082177040361 33.4969228818488
537 POINT 530 -12.51527794814265 32.36519984403208
538 POINT 531 -11.64987856441833 32.70980293550745
539 POINT 532 -10.81862285529724 36.82133760142749
540 POINT 533 -10.87751788137019 35.79464242069291
541 POINT 534 -9.960404693575528 36.38448266121428
542 POINT 535 -11.48253364015961 35.0240019003154
543 POINT 536 -10.7167281460062 32.87524187924294
544 POINT 537 -11.12118432374524 31.74351884142621
545 POINT 538 -9.642415025568365 32.79125685413843
546 POINT 539 -18.53475021484851 15.4623221533659
547 POINT 540 -19.27621404631537 14.6682488620726
548 POINT 541 -18.24714142272296 14.42251208771581
549 POINT 542 -18.88134028536315 16.42301727635588
550 POINT 543 -17.88033313773626 16.16951779604823
551 POINT 544 -19.74928002630716 16.84311272522837
552 POINT 545 -15.49028917015346 8.94111382435025
553 POINT 546 -16.06641650592649 9.805497208420237
554 POINT 547 -16.64214543071471 8.907705737630335
555 POINT 548 -15.45627780504156 10.68439298272059
556 POINT 549 -14.33918769294243 9.008058351432968
557 POINT 550 -13.80526868012947 9.865889577734556
558 POINT 551 -14.1492732747727 14.33192177832496
559 POINT 552 -15.15912830948807 14.31820814348022
560 POINT 553 -14.56084238283394 15.25822727480142
561 POINT 554 -13.68885665035655 13.42352745138476
562 POINT 555 -17.50692650301805 12.50123196234012
563 POINT 556 -17.89917563009375 13.49160770791567
564 POINT 557 -18.59468367857226 12.63537262535845
565 POINT 558 -16.40667197130215 12.44593322715844
566 POINT 559 -17.18577727459241 14.27791829325811
567 POINT 560 -15.79268534169501 13.36945828023087
568 POINT 561 -15.36154583103397 12.46837759393134
569 POINT 562 -16.20425444975626 14.29576377670733
570 POINT 563 -16.55222024238547 15.22666815650746
571 POINT 564 14.61766884814922 19.01336639514921
572 POINT 565 15.10160929308571 19.93869866233297
573 POINT 566 -8.954387420107352 8.883178967849199
574 POINT 567 -8.421001648218994 7.978132991115737
575 POINT 568 -7.881861900173009 8.935529708141328
576 POINT 569 -10.48552760095411 8.043256113861043
577 POINT 570 -10.07088815701037 6.936996660496273
578 POINT 571 -9.987737533441372 8.923405826479188
579 POINT 572 -9.448597785395389 9.880802543504778
580 POINT 573 -8.909628446845817 12.63950157787882
581 POINT 574 -9.96979275554061 12.62200835043421
582 POINT 575 -10.5192284477842 11.71182555571344
583 POINT 576 -9.962058778017163 10.82432828698728
584 POINT 577 -8.928708664683143 10.78410142835729
585 POINT 578 -8.826724490159041 19.9115345212223
586 POINT 579 -7.788049595360713 19.92284393906273
587 POINT 580 -8.326673162463226 19.01049914571327
588 POINT 581 6.796923008359899 14.46893104772356
589 POINT 582 5.758685968348203 14.47457989609917
590 POINT 583 7.331484508515757 13.55426320744392
591 POINT 584 7.842526297326634 14.46604282885744
592 POINT 585 3.183665335263674 17.16821321585526
593 POINT 586 3.688660309630354 18.14224948377619
594 POINT 587 2.676212803311897 18.08657678214764
595 POINT 588 5.226436037298559 17.21789324488178
596 POINT 589 4.713801779364758 16.30794714168605
597 POINT 590 1.702834415187505 17.9614070963485
598 POINT 591 2.207829389554186 18.93544336426943
599 POINT 592 9.410254775410465e-08 18.81027366105638
600 POINT 593 0.6172255007148968 19.40513683923515
601 POINT 594 -9.714117030543257 27.14602202785425
602 POINT 595 -10.74401846579198 27.10759225834228
603 POINT 596 -10.26601121841064 26.20720376458829
604 POINT 597 -15.19792430940091 31.58463475974873
605 POINT 598 -14.51995414837362 32.42407660952124
606 POINT 599 -15.55919105425835 32.56628720680114
607 POINT 600 -13.5787847899452 32.30652306297098
608 POINT 601 -13.91739051255635 33.26987333692369
609 POINT 602 -13.68943052768649 30.59673119233732
610 POINT 603 -13.11784158395992 31.51940311662963
611 POINT 604 -12.62592368588394 30.65540797339841
612 POINT 605 -18.10341288837137 21.84121234606356
613 POINT 606 -18.87127590553306 22.47222715848427
614 POINT 607 -17.12463310060343 18.09656294225589
615 POINT 608 -17.31694470247984 17.15083220035995
616 POINT 609 -16.9703546319652 16.19013707736997
617 POINT 610 -15.98883180712904 16.20798256081918
618 POINT 611 10.38199647148354 22.61371976810885
619 POINT 612 9.849540679822894 21.7138881677267
620 POINT 613 8.8085350316233 21.72280092159405
621 POINT 614 9.329107093393057 20.81496657605682
622 POINT 615 8.9287090372967 10.78409883706605
623 POINT 616 9.962058430246611 10.82432580169985
624 POINT 617 9.448597593195121 9.88079938186117
625 POINT 618 9.969792986625455 12.62200682338526
626 POINT 619 8.90962883591534 12.63950012274126
627 POINT 620 9.437251948192607 13.5338816892218
628 POINT 621 10.67234141492057 4.14015762808947
629 POINT 622 9.899143945874886 3.622737177952356
630 POINT 623 11.12308967028839 3.378421352424517
631 POINT 624 10.05434271335534 5.157341501088084
632 POINT 625 11.26624724302613 4.931019061942361
633 POINT 626 11.04685146630943 12.60620519964597
634 POINT 627 12.11322047313526 12.57558645323589
635 POINT 628 11.56378510572855 13.48576964345572
636 POINT 629 10.51922835403217 11.71182363316543
637 POINT 630 11.03911690993059 10.80852417796056
638 POINT 631 8.353117771266421 15.36645081786232
639 POINT 632 8.887679271422279 14.45178297758268
640 POINT 633 9.947843422132394 14.43428967822668
641 POINT 634 -7.354534566620368 9.865368360421384
642 POINT 635 -6.821148794732007 8.960322383687922
643 POINT 636 -5.241808196453412 9.89286263766502
644 POINT 637 -5.768321098655418 10.8109113925901
645 POINT 638 -4.716307833929465 10.81361299428714
646 POINT 639 -8.846687175134175 18.09453634019771
647 POINT 640 -7.808012280335847 18.10584575803814
648 POINT 641 -7.292392561451639 17.20089190904147
649 POINT 642 -6.77237854878069 18.11685471455703
650 POINT 643 -3.663850057285723 10.82236267206403
651 POINT 644 -2.609574443921612 10.83288750674358
652 POINT 645 -3.135519318363349 9.906089074041617
653 POINT 646 -4.190362959487728 11.74041142698911
654 POINT 647 1.022235278187542 6.105131945364167
655 POINT 648 1.537413456757289 7.078319240970639
656 POINT 649 0.5151765885688294 7.052715105123196
657 POINT 650 2.577937928342901 7.096153011320037
658 POINT 651 2.070879238724189 8.043736171079065
659 POINT 652 3.092619808349037 6.17939491294298
660 POINT 653 3.626085590315936 7.144811843051406
661 POINT 654 11.48251188829295 35.02401731321491
662 POINT 655 10.64039816452791 34.61217235404054
663 POINT 656 10.17110341744214 33.75754315009095
664 POINT 657 14.6689103389384 22.67322577662324
665 POINT 658 14.05319959738808 21.7410710783964
666 POINT 659 15.14265836363845 21.78642172193218
667 POINT 660 13.01772434463638 21.71937825377518
668 POINT 661 12.50723794880099 22.61679607802062
669 POINT 662 18.09519862717962 19.95611146231709
670 POINT 663 19.1740485049595 20.44527447993038
671 POINT 664 19.11595980806804 21.52156423697686
672 POINT 665 19.97093453194041 21.0778563218991
673 POINT 666 16.26820018552503 25.3010316807035
674 POINT 667 17.20417075684983 25.40139698246272
675 POINT 668 16.34859018777993 26.20978847968642
676 POINT 669 18.10513372405381 25.23404605383805
677 POINT 670 18.34437302491627 24.32069547942606
678 POINT 671 19.34729683337535 25.06775162939346
679 POINT 672 15.85270720624401 27.09338928485154
680 POINT 673 16.78867777756881 27.19375458661076
681 POINT 674 15.291938186953 28.00781064238943
682 POINT 675 17.30476560650833 28.05418410949204
683 POINT 676 16.82978442287303 28.99839439914488
684 POINT 677 17.8667222480114 28.98778277049785
685 POINT 678 11.90568276733603 25.26641722612537
686 POINT 679 12.94362175678668 25.24019557197247
687 POINT 680 12.33385311172404 26.14255336301493
688 POINT 681 13.04745149254336 23.49596728408519
689 POINT 682 11.97523786865631 23.48488822901835
690 POINT 683 13.26157019599279 27.94640762414275
691 POINT 684 12.80192545764358 27.03544053207227
692 POINT 685 11.76398646819293 27.06166218622517
693 POINT 686 12.71478625639084 28.84364548586147
694 POINT 687 13.74429763827116 28.8355037547217
695 POINT 688 11.6871942678587 28.89644654626223
696 POINT 689 12.16992171013707 29.78554267684118
697 POINT 690 -2.645241319283594 23.65915467021994
698 POINT 691 -2.171873771957271 22.80696352912885
699 POINT 692 -1.671396963511793 23.78707299861202
700 POINT 693 -3.638150958880634 21.77295984420368
701 POINT 694 -4.169619601589666 22.67588242311962
702 POINT 695 -4.662052432741228 21.76979706658653
703 POINT 696 -2.588325360715464 21.77484192911209
704 POINT 697 -3.080758191867026 20.868756572579
705 POINT 698 -3.465390409600786 36.74515601536355
706 POINT 699 -4.39944145231441 36.56941420393424
707 POINT 700 -6.438967484949353 38.07148150975368
708 POINT 701 -5.801761824463367 37.27840372561251
709 POINT 702 -7.465007651281466 37.67899578164534
710 POINT 703 -7.145548671869747 38.67996608706892
711 POINT 704 1.645701561067675 36.58620616945915
712 POINT 705 2.097605922649433 37.6591520210071
713 POINT 706 1.630912530570906 38.7025770899849
714 POINT 707 0.6144262348982835 38.03413825350503
715 POINT 708 0.6145007137649187 36.62602437274583
716 POINT 709 1.03123486124828 35.70349538136442
717 POINT 710 3.50029065404008 34.71485867238029
718 POINT 711 4.030903182455804 33.71986523468118
719 POINT 712 2.549220124316628 34.70633644192217
720 POINT 713 5.09669004529192 31.88416738089897
721 POINT 714 4.59189732499495 30.94579415206534
722 POINT 715 4.543156123115856 32.76980086916907
723 POINT 716 3.548257480742272 32.79893134025448
724 POINT 717 3.041784030297622 31.8775360658333
725 POINT 718 2.529531089637571 32.8276004313454
726 POINT 719 6.639239149600429 29.07614732768379
727 POINT 720 5.633088140941368 29.09870269116678
728 POINT 721 -5.741117900464612 18.12804558230707
729 POINT 722 -4.710794713134181 18.134038227614
730 POINT 723 -6.25673761934882 19.03299943130374
731 POINT 724 9.094364861792316 3.185783391206454
732 POINT 725 8.120154810382525 3.065542696161892
733 POINT 726 8.486226833839986 4.246239372190631
734 POINT 727 9.543080762382589 2.423606448705923
735 POINT 728 4.181697363812684 8.041699532502184
736 POINT 729 4.69637924381882 7.124941434125128
737 POINT 730 4.720893497007972 8.958696437146365
738 POINT 731 3.650599843505089 8.978566846072644
739 POINT 732 5.772906862056196 8.955994301021946
740 POINT 733 5.241809341748601 9.892861614592405
741 POINT 734 6.300233792796178 8.026154643550692
742 POINT 735 6.622836074707541 2.05014634703189
743 POINT 736 5.718844002281117 1.755757914971069
744 POINT 737 6.192965581434661 0.9829766219365916
745 POINT 738 5.664301131002254 3.628351178339397
746 POINT 739 6.833866176424866 3.46371406014724
747 POINT 740 6.342451737007583 4.290635795338225
748 POINT 741 7.442004204377196 2.403258079163064
749 POINT 742 7.917003402974732 1.633697762640239
750 POINT 743 8.94127268867317 5.267193691042839
751 POINT 744 7.96706263726338 5.146952995998276
752 POINT 745 9.535178516778736 6.058055124895729
753 POINT 746 -13.10928490082518 34.07016086758892
754 POINT 747 -12.24388551710086 34.4147639590643
755 POINT 748 -12.49585729120814 35.61581090418589
756 POINT 749 -14.07322716081642 34.21070994911054
757 POINT 750 -14.36136978693606 10.72072627767335
758 POINT 751 -14.88062444253561 11.58118583581166
759 POINT 752 -14.26663781292847 12.50471088888409
760 POINT 753 -13.22961531762352 10.76268243082563
761 POINT 754 -13.2079352618582 12.53633569326509
762 POINT 755 -12.6910018313468 11.65677153517575
763 POINT 756 15.07065410043878 18.08797196826217
764 POINT 757 14.01205198450469 18.07820806245078
765 POINT 758 -6.796922393156049 14.4689317302459
766 POINT 759 -6.269727250030074 15.38636001982073
767 POINT 760 -5.758685342348371 14.47458053337772
768 POINT 761 -7.817995296922273 16.28529708460574
769 POINT 762 -8.353117303969567 15.36645138459855
770 POINT 763 -8.863148300054089 16.27103725251539
771 POINT 764 -7.842525768612235 14.46604360030338
772 POINT 765 -7.331483860930532 13.55426411386037
773 POINT 766 -6.782361565367118 16.29630604112463
774 POINT 767 -3.683558631825044 14.45370591664109
775 POINT 768 -4.714727414587884 14.47325408116177
776 POINT 769 -5.24192255771386 13.55582579158695
777 POINT 770 -4.720392683042421 12.64308054429161
778 POINT 771 -5.764350610802907 12.64440699650756
779 POINT 772 -3.667934906398679 12.6518302220685
780 POINT 773 -8.395897107966746 11.71956985286866
781 POINT 774 -7.863355897507648 12.63144425890769
782 POINT 775 -6.817752522051462 12.63433238885021
783 POINT 776 -6.296222647380024 11.72158714155488
784 POINT 777 -6.821723009903972 10.80083678493275
785 POINT 778 -7.882436115344974 10.77604410938616
786 POINT 779 4.716308849678887 10.81361234423387
787 POINT 780 5.76832221472711 10.81091020810945
788 POINT 781 4.190363830521503 11.74041081086773
789 POINT 782 3.663850957542993 10.82236221735069
790 POINT 783 1.564857731194123 14.49716655277795
791 POINT 784 1.04410790663793 13.59158434318418
792 POINT 785 0.5207500976712671 14.50289465153176
793 POINT 786 1.565386117813491 12.67566398686721
794 POINT 787 0.5212784842906355 12.68139208562102
795 POINT 788 2.613060739273198 12.66750846420746
796 POINT 789 2.090231316925903 11.7573162066443
797 POINT 790 2.247276054134772e-07 15.40847690902769
798 POINT 791 -0.5207495998285867 14.50289469943392
799 POINT 792 -11.21209063177709 28.0004787204091
800 POINT 793 -11.76398481964448 27.06166045714313
801 POINT 794 -13.26156901870596 27.94640451622695
802 POINT 795 -12.71478480762005 28.84364148415803
803 POINT 796 -13.74429684069641 28.83549908117502
804 POINT 797 -12.16991936167931 29.78553808233906
805 POINT 798 -11.59833041795275 30.70821000663137
806 POINT 799 -10.66722518583636 28.94237531859013
807 POINT 800 -10.16307824785739 29.92216165396643
808 POINT 801 -9.687977339945633 29.02619685698455
809 POINT 802 -11.68719153968886 28.89644351739098
810 POINT 803 -10.66517999954061 30.87364895036685
811 POINT 804 -9.685932153649887 30.95747048876127
812 POINT 805 -16.82978847880473 28.99838541372564
813 POINT 806 -17.30476813190573 28.05417686774796
814 POINT 807 -17.86672715494531 28.98777290369169
815 POINT 808 -12.80192396054655 27.03543843675622
816 POINT 809 -12.33385179456144 26.1425519746894
817 POINT 810 -13.83143599362291 27.02729603377322
818 POINT 811 -18.71184747782762 23.47031202987638
819 POINT 812 -19.74963048996175 23.15469430712368
820 POINT 813 -19.34729785953139 25.06774765708812
821 POINT 814 -18.34437302460557 24.32069263403202
822 POINT 815 -18.10513422474459 25.23404206079518
823 POINT 816 -17.49125461230818 23.64225669394841
824 POINT 817 7.817995757395382 16.28529666142913
825 POINT 818 7.292392975317489 17.20089161300046
826 POINT 819 7.80801268720816 18.10584554161538
827 POINT 820 6.772378944905659 18.11685450089467
828 POINT 821 8.863148731491028 16.27103681015437
829 POINT 822 1.015466424403581 21.25999439681868
830 POINT 823 1.614481163449325 21.90276020009269
831 POINT 824 1.015466375681423 20.43531928751171
832 POINT 825 1.63269187639632 19.84045612674685
833 POINT 826 2.606070264520712 19.96562581254599
834 POINT 827 4.710795072138549 18.13403803354307
835 POINT 828 4.203342540186773 19.05240159983545
836 POINT 829 5.741118267854977 18.12804536094104
837 POINT 830 6.25673797974565 19.03299928955596
838 POINT 831 8.29058057434478 22.63591511879024
839 POINT 832 7.770146987914942 21.73699352712036
840 POINT 833 7.761488015053925 23.54966519059946
841 POINT 834 8.799876058762283 23.53547258507314
842 POINT 835 7.882436851035273 10.77604170622064
843 POINT 836 6.821724104311079 10.80083523684094
844 POINT 837 8.395897688086761 11.71956812605931
845 POINT 838 6.296223612241364 11.72158596648241
846 POINT 839 7.863356649653912 12.63144299189585
847 POINT 840 6.817753360687178 12.63433121076197
848 POINT 841 5.764351471103209 12.64440618203048
849 POINT 842 15.41658924936081 7.259168960497591
850 POINT 843 14.24561038678537 7.342548392480751
851 POINT 844 14.89244912969332 8.12523258985544
852 POINT 845 12.07551877984602 9.034284548463294
853 POINT 846 13.2074318313694 9.050012371808604
854 POINT 847 12.60943811820144 8.176454016117848
855 POINT 848 12.13489966336506 10.8019324567901
856 POINT 849 11.57772973957951 9.91443462532451
857 POINT 850 10.97973602641154 9.040876269633753
858 POINT 851 11.96631097541835 7.35863242591423
859 POINT 852 11.55167271280977 6.252370796998449
860 POINT 853 11.06288680406948 7.054464563856754
861 POINT 854 12.169671414375 5.235186923999835
862 POINT 855 12.88604184172865 5.817407070591241
863 POINT 856 12.61406020569684 4.479514007912766
864 POINT 857 13.09822402694172 7.374360249259541
865 POINT 858 13.60248324400228 6.524726802277135
866 POINT 859 14.05124229732068 5.767551513356759
867 POINT 860 17.07578521456617 11.60014693753975
868 POINT 861 17.71057756929273 10.70831332876806
869 POINT 862 16.58566833102513 10.66595132007714
870 POINT 863 16.40667132100974 12.44593062352206
871 POINT 864 15.79268502556732 13.36945619674464
872 POINT 865 15.36154529735113 12.46837529147962
873 POINT 866 17.18577703109811 14.27791621091107
874 POINT 867 17.8991747362448 13.49160449707131
875 POINT 868 17.50692494278236 12.50122784280477
876 POINT 869 18.59468174703889 12.63536765117651
877 POINT 870 -5.772905779136106 8.955995570716897
878 POINT 871 -6.300233112688748 8.02615691843684
879 POINT 872 -4.720892514410153 8.958697172413938
880 POINT 873 -2.562097267089574 3.227805457117126
881 POINT 874 -2.034944989672938 4.189368100531676
882 POINT 875 -0.5151786281004135 7.052714909961791
883 POINT 876 -4.495306666907339e-07 8.025902205568261
884 POINT 877 -0.5151778044490922 8.96843130178743
885 POINT 878 -1.555799685599574 8.971257959564014
886 POINT 879 -1.040621823848756 9.913787250944587
887 POINT 880 0.5151774122201507 8.968431496948837
888 POINT 881 2.806199940197374e-07 11.76547179125803
889 POINT 882 -0.5212779305555666 12.681392147575
890 POINT 883 -2.090230658535098 11.75731647898901
891 POINT 884 -1.561899919612723 10.84104288096659
892 POINT 885 -0.5212780384622415 10.83821622319001
893 POINT 886 0.5212783763839607 10.83821616123602
894 POINT 887 -8.95781830977193 7.046847428450418
895 POINT 888 -9.535179298628961 6.058061838123082
896 POINT 889 -7.885292789837587 7.099198168742546
897 POINT 890 -6.342458718450149 4.290639218573956
898 POINT 891 -5.664307592746104 3.628355267241409
899 POINT 892 -6.833874189380248 3.463718914397889
900 POINT 893 -4.115213411606943 4.361615670969387
901 POINT 894 -4.656830149629152 5.341664562613124
902 POINT 895 -3.599151439420091 5.248004662165036
903 POINT 896 -7.4420232035393 2.403268237260354
904 POINT 897 -7.917037371317474 1.633712477540171
905 POINT 898 -8.120174329243344 3.065552188592901
906 POINT 899 0.5061739145443324 5.095155188591381
907 POINT 900 -2.929429205988932e-06 4.110781499104045
908 POINT 901 -0.5061784339744557 5.09515412002939
909 POINT 902 1.528410782732792 5.120759324438823
910 POINT 903 0.5061724875148098 3.087534852556564
911 POINT 904 1.539499732754256 3.149220199566127
912 POINT 905 11.64987528159459 32.70981082487776
913 POINT 906 12.51527678005581 32.36521402236142
914 POINT 907 12.11081476394826 33.49693513307348
915 POINT 908 12.62592549818568 30.65541566530306
916 POINT 909 11.59833350965353 30.70821672570382
917 POINT 910 14.07320338353421 34.21073365839178
918 POINT 911 13.10926757404889 34.07018328539174
919 POINT 912 13.91737880453094 33.26989288698078
920 POINT 913 12.24386607558766 34.41478008790807
921 POINT 914 12.49582536742833 35.61583656588377
922 POINT 915 14.16603325158087 23.49720392336359
923 POINT 916 15.25549201783124 23.54255456689937
924 POINT 917 15.93819784253432 24.42958644855976
925 POINT 918 15.08261727346442 25.23797794578346
926 POINT 919 16.44107492989185 23.60560830181941
927 POINT 920 13.63403317143619 24.36529607436132
928 POINT 921 14.0622035158242 25.24143221125088
929 POINT 922 16.13661120818988 21.79829183825163
930 POINT 923 15.52090046663956 20.86613714002479
931 POINT 924 16.09556213763715 19.95056877865242
932 POINT 925 17.17857677781561 19.94984061055883
933 POINT 926 16.75928560426177 19.02240213286701
934 POINT 927 17.431475160555 20.8842781081025
935 POINT 928 18.71184721732612 23.47031396269385
936 POINT 929 18.87127587281586 22.47222833205418
937 POINT 930 19.74963016806416 23.15469636218577
938 POINT 931 17.49125494700478 23.6422586667476
939 POINT 932 18.10341307466681 21.84121305493807
940 POINT 933 16.8085491223017 22.75522678508721
941 POINT 934 17.18679122530281 21.83494220317982
942 POINT 935 14.51994297887854 32.4240927325463
943 POINT 936 13.57878043675709 32.30653817612266
944 POINT 937 13.11784095440342 31.51941386792693
945 POINT 938 13.68942915488696 30.59673981906429
946 POINT 939 11.44016434034826 24.38232842674731
947 POINT 940 10.89995079660589 23.50315722068274
948 POINT 941 10.83039569528561 25.28468621778976
949 POINT 942 9.846922943175489 23.51115996583782
950 POINT 943 9.317830383884633 24.42491003764703
951 POINT 944 9.800494196258793 25.32311557173736
952 POINT 945 8.753447311845587 25.34742819097269
953 POINT 946 10.26601262324656 26.20720437111542
954 POINT 947 -9.188516399988456 28.09611515482773
955 POINT 948 -8.684369462009494 29.07590149020404
956 POINT 949 -8.710509152607116 27.19572666107374
957 POINT 950 -4.967007708624748 35.55401033082136
958 POINT 951 -5.401876338967484 36.44269225860205
959 POINT 952 -6.369328080773704 36.26299985249962
960 POINT 953 -8.644059727746285 34.74088988879614
961 POINT 954 -9.113357089394702 35.59551543427815
962 POINT 955 -7.680217086741342 34.8114162753276
963 POINT 956 -8.132953504798678 33.74408230964664
964 POINT 957 -9.038370913869775 36.59719108141323
965 POINT 958 -7.080382952483385 35.61775611998313
966 POINT 959 -6.569276729535778 34.62094854083364
967 POINT 960 -7.480268437979268 36.45346758699358
968 POINT 961 -8.176062522991147 37.03375204912885
969 POINT 962 -9.033664824607252 37.8435674405669
970 POINT 963 -3.013509432387965 35.67217382596145
971 POINT 964 -2.514327020017076 36.73659756517147
972 POINT 965 -1.031206014429366 35.70346448021024
973 POINT 966 -1.53422388422784 34.73877849312591
974 POINT 967 -0.5029838558529507 34.77862759756677
975 POINT 968 2.021011022720923 33.78146904341516
976 POINT 969 1.514537572276274 32.86007376899397
977 POINT 970 1.534226606955332 34.73880977957074
978 POINT 971 0.5030257596525753 34.77862798285742
979 POINT 972 7.889854101383875e-06 33.81394199577308
980 POINT 973 1.536896992374578 27.28673102869031
981 POINT 974 2.075897760470205 26.39023244060897
982 POINT 975 2.583954155543661 27.30113813950133
983 POINT 976 3.556816059688512 30.9375844125214
984 POINT 977 4.088202963281139 30.03451158984436
985 POINT 978 2.538089668583811 30.96625350361232
986 POINT 979 0.5030096425456565 32.87005276973701
987 POINT 980 -0.5029999729598695 32.87005238444636
988 POINT 981 1.011529709462303 31.91618415766725
989 POINT 982 11.21209270722683 28.00048045890696
990 POINT 983 10.74402036130729 27.10759328984962
991 POINT 984 9.714118862280475 27.14602264379722
992 POINT 985 10.66722816097306 28.94237764988668
993 POINT 986 9.687978884244082 29.02619593691772
994 POINT 987 10.16308044487594 29.92216202427299
995 POINT 988 7.660247523983134 29.07171418485961
996 POINT 989 8.684369985103768 29.07589903930046
997 POINT 990 7.163900427677865 28.15025091012108
998 POINT 991 9.188517701200887 28.09611466491416
999 POINT 992 8.710509963140158 27.19572574617996
1000 POINT 993 -4.203342243390184 19.05240175014947
1001 POINT 994 -3.688659985491623 18.14224967870969
1002 POINT 995 -3.655895652889911 19.96374384445787
1003 POINT 996 -4.678030380532469 19.95553239336218
1004 POINT 997 -2.207829164486162 18.93544342244381
1005 POINT 998 -2.606070054724741 19.96562592936628
1006 POINT 999 -5.170740868433548 20.8574752560983
1007 POINT 1000 -5.702209511142579 21.76039783501424
1008 POINT 1001 -5.71818745893382 19.94613316178989
1009 POINT 1002 -6.731544945060238 21.74909188831638
1010 POINT 1003 -6.222856509367919 22.66141369880462
1011 POINT 1004 -7.249499434945713 20.83597766954888
1012 POINT 1005 -7.770146433171051 21.73699353333926
1013 POINT 1006 -6.749448107249898 19.93494229403985
1014 POINT 1007 5.802524977371679 7.067405929156367
1015 POINT 1008 6.85076775285229 7.071731449131153
1016 POINT 1009 7.387583714762178 6.140445024793657
1017 POINT 1010 7.885292530186677 7.099193739187982
1018 POINT 1011 5.762972814506381 5.284127824133605
1019 POINT 1012 5.246913203874932 6.170518239705588
1020 POINT 1013 4.656827080953521 5.341663329102365
1021 POINT 1014 6.932537859928994 5.119490705941448
1022 POINT 1015 5.123453405055713 2.630543796725044
1023 POINT 1016 4.686581836917295 1.584872268547702
1024 POINT 1017 3.780741176469697 1.381516026850165
1025 POINT 1018 4.380854250247183 0.4856945617800922
1026 POINT 1019 3.07892064305541 2.323657990883948
1027 POINT 1020 4.632038965638431 3.457465531916029
1028 POINT 1021 8.957817564431407 7.046841938024162
1029 POINT 1022 8.421001602521519 7.978128362361659
1030 POINT 1023 8.954387418505732 8.883174489212605
1031 POINT 1024 10.48552585172216 8.043251376985188
1032 POINT 1025 10.07088758911358 6.936989748069407
1033 POINT 1026 9.98773681145564 8.923401453846404
1034 POINT 1027 14.14927330494213 14.3319204116199
1035 POINT 1028 13.09057086026495 14.36354542779163
1036 POINT 1029 13.68885655723154 13.42352588087392
1037 POINT 1030 14.5608425845304 15.25822614311025
1038 POINT 1031 15.01786739893976 16.19866298162331
1039 POINT 1032 14.0080124223849 16.21237679705068
1040 POINT 1033 15.15912828149698 14.31820659619254
1041 POINT 1034 16.20425430515559 14.29576192823498
1042 POINT 1035 16.55222028702778 15.22666661035897
1043 POINT 1036 15.43600191484122 17.16213210717993
1044 POINT 1037 16.04161877848574 18.09729043987835
1045 POINT 1038 17.12463341866421 18.09656227178477
1046 POINT 1039 17.31694506141086 17.15083111331099
1047 POINT 1040 15.98883207698672 16.2079814532395
1048 POINT 1041 16.97035480292924 16.19013573591558
1049 POINT 1042 -9.329106518265187 20.81496648779522
1050 POINT 1043 -9.8677300853677 19.90262169444576
1051 POINT 1044 -16.0416184259235 18.09729104090766
1052 POINT 1045 -16.75928532981814 19.02240250148187
1053 POINT 1046 -10.94364637205534 16.23848947462534
1054 POINT 1047 -9.899040221872481 16.25867329662998
1055 POINT 1048 -9.363918214825187 17.17751899663717
1056 POINT 1049 -9.882579096952568 18.0821723843123
1057 POINT 1050 1.561900414029895 10.8410427689158
1058 POINT 1051 2.609575035489602 10.83288724625605
1059 POINT 1052 1.04062209494766 9.913787200847779
1060 POINT 1053 3.135520054646986 9.906088779622188
1061 POINT 1054 2.596323921451698 8.989091874978008
1062 POINT 1055 1.555799449866085 8.97125810462861
1063 POINT 1056 5.241923253953617 13.55582514043971
1064 POINT 1057 4.714728002752798 14.47325361022883
1065 POINT 1058 3.143090414259499 13.57017754949987
1066 POINT 1059 3.667935613371911 12.65182976927697
1067 POINT 1060 4.720393505507803 12.64307989616015
1068 POINT 1061 2.105326509092408 15.38069455968688
1069 POINT 1062 2.670185462451287 16.23272638623747
1070 POINT 1063 1.606358875586338 16.26050868767612
1071 POINT 1064 2.628684318059071 14.4693842513393
1072 POINT 1065 3.683559192157784 14.45370555640881
1073 POINT 1066 4.200321906552371 15.37246031206826
1074 POINT 1067 3.682632968769743 16.28839908786602
1075 POINT 1068 -1.606358493039556 16.26050877577584
1076 POINT 1069 -2.670185073501789 16.23272654426651
1077 POINT 1070 -2.105326053234482 15.38069472542052
1078 POINT 1071 -3.183664984271242 17.16821337539803
1079 POINT 1072 -2.676212514527244 18.08657689793349
1080 POINT 1073 -1.70283416326578 17.96140711913215
1081 POINT 1074 0.6172255840106643 18.01551021964674
1082 POINT 1075 -0.6172253233165815 18.01551020223283
1083 POINT 1076 -1.085608673357664 17.16664367772251
1084 POINT 1077 -0.5207496530903567 16.31461185887652
1085 POINT 1078 0.5207500444094971 16.31461181097436
1086 POINT 1079 1.085608997768376 17.16664363752495
1087 POINT 1080 -16.26819960626571 25.30102864423684
1088 POINT 1081 -15.0826163587443 25.23797552751852
1089 POINT 1082 -15.93819691156472 24.42958418138574
1090 POINT 1083 -15.85270768406584 27.0933844772987
1091 POINT 1084 -14.85185005261381 27.02384105180678
1092 POINT 1085 -15.29193868323435 28.00780553873586
1093 POINT 1086 -14.3922049944544 26.11287497233606
1094 POINT 1087 -14.06220229975341 25.24143050948495
1095 POINT 1088 -15.7999041554007 28.93948960494379
1096 POINT 1089 -16.33689631951905 29.86052605444166
1097 POINT 1090 -14.74418021093874 30.63117829061417
1098 POINT 1091 -15.76075609457718 30.75508671479437
1099 POINT 1092 -16.81445339648837 30.82931935765637
1100 POINT 1093 -14.25226231286276 29.76718314738296
1101 POINT 1094 -14.79904652394867 28.86994617945188
1102 POINT 1095 8.846687614423065 18.09453615000725
1103 POINT 1096 8.326673584011235 19.01049903790145
1104 POINT 1097 8.8267249782098 19.91153448810875
1105 POINT 1098 9.867730626409395 19.90262173424139
1106 POINT 1099 7.788050050994897 19.92284387971688
1107 POINT 1100 4.650398721048944 25.41533314105567
1108 POINT 1101 4.13553988625797 26.36549811509552
1109 POINT 1102 3.637813758430262 25.45447457738014
1110 POINT 1103 3.148718616325014 24.57178682998195
1111 POINT 1104 2.633859781534041 25.52195180402179
1112 POINT 1105 1.586802618364957 25.50754469321078
1113 POINT 1106 3.649195445762174 23.59167733893057
1114 POINT 1107 4.169619811571008 22.67588222314829
1115 POINT 1108 4.673096959030069 23.58851448755802
1116 POINT 1109 2.58832552483298 21.77484182477213
1117 POINT 1110 2.171873936919459 22.8069634498414
1118 POINT 1111 2.645241468865954 23.65915456557222
1119 POINT 1112 1.671397107482298 23.78707294089278
1120 POINT 1113 4.678030658177207 19.95553223402469
1121 POINT 1114 3.655895895669011 19.96374368425781
1122 POINT 1115 3.638151155981279 21.77295969648394
1123 POINT 1116 4.662052669249173 21.76979684511139
1124 POINT 1117 3.080758382511145 20.86875644673523
1125 POINT 1118 6.731545438466698 21.74909183518711
1126 POINT 1119 7.249499895745219 20.83597763799092
1127 POINT 1120 6.749448501546653 19.93494218778363
1128 POINT 1121 5.718187824495971 19.94613304783
1129 POINT 1122 5.702209835567938 21.7603976589167
1130 POINT 1123 6.222856927737663 22.66141354804614
1131 POINT 1124 5.17074117997821 20.85747513225235
1132 POINT 1125 14.88062362045075 11.58118328295605
1133 POINT 1126 14.26663732500833 12.50470885617862
1134 POINT 1127 13.20793488033116 12.53633387235034
1135 POINT 1128 12.69100124091205 11.65676942854059
1136 POINT 1129 13.22961407056096 10.76267987590455
1137 POINT 1130 -4.181696757246904 8.041699829461468
1138 POINT 1131 -3.650599174564211 8.978566896409593
1139 POINT 1132 -3.626085797421631 7.144811553632946
1140 POINT 1133 -4.696379137267573 7.124941829637294
1141 POINT 1134 -2.5963235612001 8.989091731089145
1142 POINT 1135 -2.070879541800435 8.043735781931989
1143 POINT 1136 -3.574367948496355 3.363807242843679
1144 POINT 1137 -3.078930514188047 2.323656929439507
1145 POINT 1138 -5.123462129635516 2.630546839115701
1146 POINT 1139 -4.686602709596436 1.584876903295025
1147 POINT 1140 -4.632046658705416 3.457467143291768
1148 POINT 1141 -3.780758206397734 1.381518432692542
1149 POINT 1142 -4.380882064820396 0.4857008521467929
1150 POINT 1143 -1.537414964648728 7.078318112167635
1151 POINT 1144 -1.022237926549232 6.10513101172257
1152 POINT 1145 -2.551004482247714 5.199344992224856
1153 POINT 1146 -3.092621220269923 6.179393883868594
1154 POINT 1147 -2.577938840249254 7.096151883692768
1155 POINT 1148 -1.52841477052277 5.120757322235234
1156 POINT 1149 -1.565385542453618 12.67566417103727
1157 POINT 1150 -1.044107338782977 13.59158446540026
1158 POINT 1151 -1.564857211726638 14.49716672289619
1159 POINT 1152 -2.628683792188871 14.46938449138686
1160 POINT 1153 -2.613060066762507 12.66750879681426
1161 POINT 1154 -3.143089790317201 13.57017791411676
1162 POINT 1155 -8.941278766903849 5.267200605438743
1163 POINT 1156 -8.486236698750734 4.246245735265347
1164 POINT 1157 -7.96706738323741 5.146957735903831
1165 POINT 1158 -9.094385712909785 3.185795058127813
1166 POINT 1159 -9.899165223866994 3.622750914152373
1167 POINT 1160 -9.543111594457244 2.423623277029117
1168 POINT 1161 -10.05434861414229 5.157349837484599
1169 POINT 1162 -10.67235893022354 4.140170700800017
1170 POINT 1163 -11.12311705597741 3.378439779022869
1171 POINT 1164 -7.38758492759221 6.140449119392674
1172 POINT 1165 -6.932542859439094 5.119494249219278
1173 POINT 1166 -5.762976262804949 5.284130602062798
1174 POINT 1167 -6.850768266039271 7.071734682057993
1175 POINT 1168 -5.80252525044337 7.067407869086968
1176 POINT 1169 -5.246914290618097 6.170519593258447
1177 POINT 1170 10.71672358375953 32.87524392735796
1178 POINT 1171 9.642413735714634 32.79125514185909
1179 POINT 1172 11.12118559986708 31.74352281664589
1180 POINT 1173 9.15793076534775 31.87228668931375
1181 POINT 1174 9.685932535089496 30.95746811521505
1182 POINT 1175 10.66518181181848 30.87364982818402
1183 POINT 1176 15.19791671718209 31.58464847548497
1184 POINT 1177 15.55917637400988 32.56630552600364
1185 POINT 1178 15.79990214283926 28.93949698650302
1186 POINT 1179 16.3368917696794 29.86053599387202
1187 POINT 1180 15.76074915645257 30.75509875525596
1188 POINT 1181 16.81444462265249 30.82933310971594
1189 POINT 1182 14.74417705037517 30.63118830145916
1190 POINT 1183 14.25226159415743 29.76719009883528
1191 POINT 1184 14.79904553375937 28.86995223711657
1192 POINT 1185 -7.660247595099477 29.07171642334552
1193 POINT 1186 -8.159708535056653 30.00179812550234
1194 POINT 1187 -6.639239694273195 29.0761486788626
1195 POINT 1188 -7.163900621226036 28.1502520435643
1196 POINT 1189 -5.497622619491922 34.55901436086761
1197 POINT 1190 -4.49518773283885 34.6857363061998
1198 POINT 1191 -5.579336478117359 32.80510559052856
1199 POINT 1192 -6.09745675374988 33.75267451621208
1200 POINT 1193 -6.650990588161214 32.86703977049458
1201 POINT 1194 -5.700404689242956 23.58012241603744
1202 POINT 1195 -6.729740123160614 23.56881646933958
1203 POINT 1196 -7.239035482595526 24.46837386823964
1204 POINT 1197 -7.761487302720488 23.54966515100682
1205 POINT 1198 -7.691207402098477 27.22632931678663
1206 POINT 1199 -6.670199501272196 27.23076157230372
1207 POINT 1200 -6.172815514826199 26.31659798520196
1208 POINT 1201 -5.645508733953759 27.24052071197963
1209 POINT 1202 -8.216808032653276 26.27623618981316
1210 POINT 1203 -6.702397292590144 25.39718201604923
1211 POINT 1204 -5.677706525271708 25.40694115572514
1212 POINT 1205 -7.734144472150017 25.37803069771646
1213 POINT 1206 -8.753446222658658 25.34742804200357
1214 POINT 1207 -1.645698721915378 36.58607539347716
1215 POINT 1208 -2.0975796991282 37.65905758287926
1216 POINT 1209 -1.630935113652335 38.70247408973233
1217 POINT 1210 -0.6145331724071246 38.03403837867723
1218 POINT 1211 -0.6144586935404894 36.62592449791802
1219 POINT 1212 8.00627890595873e-06 37.50863528601275
1220 POINT 1213 0.5990148214488246 23.75062706100676
1221 POINT 1214 -0.5990146744118122 23.75062707718625
1222 POINT 1215 -1.072382221738135 24.60281821827733
1223 POINT 1216 1.072382353395319 24.60281817673758
1224 POINT 1217 0.5144203323314835 25.47109881332476
1225 POINT 1218 3.58444379142495 29.11804267687441
1226 POINT 1219 3.080359636161616 28.20371011551553
1227 POINT 1220 2.549037542711368 29.11196928894155
1228 POINT 1221 3.619360404257244 27.30721152743419
1229 POINT 1222 5.129328969085179 28.18223377819683
1230 POINT 1223 4.619525056731388 29.12625241641835
1231 POINT 1224 4.631945366875925 27.26807009110972
1232 POINT 1225 5.645508451085906 27.24052036585816
1233 POINT 1226 2.034499539717892 30.03893177661523
1234 POINT 1227 1.530415384454558 29.12459921525634
1235 POINT 1228 1.519467510327002 30.97888342992712
1236 POINT 1229 0.5079395805963843 30.98886243067015
1237 POINT 1230 3.57436036144565 3.363808001711532
1238 POINT 1231 4.115208087392189 4.361615383325885
1239 POINT 1232 2.034939451144496 4.189370210393712
1240 POINT 1233 2.551000814787705 5.199346967166499
1241 POINT 1234 2.562089764809169 3.227807842293803
1242 POINT 1235 3.599148476760741 5.248005798897869
1243 POINT 1236 -8.808534389004958 21.72280081085314
1244 POINT 1237 -8.290579899119484 22.63591502962064
1245 POINT 1238 -9.849539984213617 21.7138879840766
1246 POINT 1239 -8.799875258554394 23.5354724285207
1247 POINT 1240 -14.05319871993245 21.74107047129854
1248 POINT 1241 -13.49147167328674 20.83257382131933
1249 POINT 1242 -13.01772343641998 21.71937768246372
1250 POINT 1243 -15.07065374632022 18.08797242978403
1251 POINT 1244 -15.4360015171055 17.16213287055806
1252 POINT 1245 -14.0080120928104 16.21237758454029
1253 POINT 1246 -15.01786712752577 16.19866394969555
1254 POINT 1247 -17.17857644573234 19.94984075163958
1255 POINT 1248 -17.43147479908956 20.8842778513917
1256 POINT 1249 -16.09556177105241 19.95056885029135
1257 POINT 1250 -15.52089992188291 20.86613685530161
1258 POINT 1251 -15.10160880596872 19.93869860514389
1259 POINT 1252 -17.18679097624842 21.83494159512092
1260 POINT 1253 -18.18552489707417 26.14279763280435
1261 POINT 1254 -17.20417083141572 25.40139287011322
1262 POINT 1255 -16.3485902785953 26.20978421624601
1263 POINT 1256 -16.78867890921584 27.19374870317508
1264 POINT 1257 -17.80065072643519 27.17057660669527
1265 POINT 1258 -18.72983447894121 27.01379366339507
1266 POINT 1259 11.95573882194991 19.89979512998055
1267 POINT 1260 10.91279663445388 19.89738135384383
1268 POINT 1261 10.41041451927062 18.99394926589576
1269 POINT 1262 12.50727362976512 18.99615568741801
1270 POINT 1263 5.677706720839749 25.40694066827868
1271 POINT 1264 5.179980593012042 24.49591713056331
1272 POINT 1265 5.700404958820875 23.58012201478103
1273 POINT 1266 6.729740561719636 23.56881619105143
1274 POINT 1267 7.239036046137137 24.46837365733434
1275 POINT 1268 7.691207579082008 27.22632790550661
1276 POINT 1269 6.670199204699301 27.23076104833079
1277 POINT 1270 6.172815602490047 26.31659736124369
1278 POINT 1271 8.216808740161595 26.27623588438967
1279 POINT 1272 6.702397474453146 25.39718135075132
1280 POINT 1273 7.734144927787435 25.37803035029934
1281 POINT 1274 14.36136880606171 10.72072377865549
1282 POINT 1275 15.45627677840451 10.68439021395649
1283 POINT 1276 15.49028452683864 8.941107024951828
1284 POINT 1277 14.33918656687014 9.008056274559546
1285 POINT 1278 13.80526722851472 9.865886806904992
1286 POINT 1279 16.06641351663609 9.805491815776586
1287 POINT 1280 16.64213914845493 8.907696187396814
1288 POINT 1281 -7.631707103564363 30.91661699613311
1289 POINT 1282 -8.655828970474381 30.92080206299163
1290 POINT 1283 -7.130348925755392 31.87754588921673
1291 POINT 1284 -6.634228490337664 30.95854195172743
1292 POINT 1285 -9.157930722157598 31.87228935939205
1293 POINT 1286 -8.612311842392856 32.75458842836879
1294 POINT 1287 -7.648469201387913 32.82511481490026
1295 POINT 1288 -2.549229273895434 34.70629607419768
1296 POINT 1289 -2.021007115319019 33.78145919155421
1297 POINT 1290 -3.500292663479144 34.71485452438976
1298 POINT 1291 -4.030907574346319 33.71985855443602
1299 POINT 1292 -5.179980371060386 24.49591750747982
1300 POINT 1293 -4.650398593296442 25.41533347663255
1301 POINT 1294 -3.649195283407097 23.591677514562
1302 POINT 1295 -3.148718474961619 24.57178698404517
1303 POINT 1296 -4.673096757267691 23.58851473694486
1304 POINT 1297 0.5144203594414323 27.2905527635694
1305 POINT 1298 1.022476754514889 28.20145846246176
1306 POINT 1299 0.507938751521413 29.12842095013544
1307 POINT 1300 -9.846921989817281 23.51115965477413
1308 POINT 1301 -9.317829393418286 24.42490977616031
1309 POINT 1302 -9.800492953921545 25.323115268257
1310 POINT 1303 -10.83039438917027 25.28468549874502
1311 POINT 1304 -10.92764508160684 18.07693196478106
1312 POINT 1305 -10.41041404191582 18.99394930834161
1313 POINT 1306 -10.91279607002197 19.89738127491452
1314 POINT 1307 -11.95573820817218 19.89979496064743
1315 POINT 1308 -11.41305425162406 20.80846734675159
1316 POINT 1309 -15.14265757944868 21.78642099994649
1317 POINT 1310 -14.66890934258192 22.67322486109087
1318 POINT 1311 -16.13661054453237 21.79829124509394
1319 POINT 1312 -15.25549093307073 23.54255322720311
1320 POINT 1313 -14.1660320735545 23.49720269855517
1321 POINT 1314 -16.80854863381419 22.75522573976579
1322 POINT 1315 -16.44107418059214 23.60560634392143
1323 POINT 1316 10.44287685491821 15.3320070852495
1324 POINT 1317 10.99244953168854 14.41410579688861
1325 POINT 1318 12.05881853851436 14.38348705047854
1326 POINT 1319 12.51923528622494 15.29188158122452
1327 POINT 1320 9.882579552317679 18.08217219529029
1328 POINT 1321 9.363918655514606 17.17751869900422
1329 POINT 1322 10.92764556036217 18.07693181489272
1330 POINT 1323 9.899040669385645 16.25867285543741
1331 POINT 1324 10.94364677894179 16.23848897409934
1332 POINT 1325 -0.5144201764050657 27.29055277175395
1333 POINT 1326 6.145462372320054e-08 26.3758253379825
1334 POINT 1327 -0.5144202035150144 25.4710988215093
1335 POINT 1328 -1.586802492614995 25.50754474293507
1336 POINT 1329 4.053181679175566e-07 30.05156162643644
1337 POINT 1330 -0.5079373955465308 30.98886235417658
1338 POINT 1331 -0.5079382246215022 29.12842087364186
1339 POINT 1332 -12.94362054595454 25.24019426221156
1340 POINT 1333 -13.63403191024444 24.36529481739402
1341 POINT 1334 -13.04745031975563 23.49596645128178
1342 POINT 1335 -11.90568140505247 25.26641628259847
1343 POINT 1336 -11.44016314056337 24.38232778626718
1344 POINT 1337 -10.38199561361241 22.61371945416543
1345 POINT 1338 -10.90256774287263 21.70588513110751
1346 POINT 1339 -10.8999497484763 23.50315680180504
1347 POINT 1340 -11.94550988102284 21.70829881684042
1348 POINT 1341 -11.9752367643585 23.48488758565849
1349 POINT 1342 -12.50723692766855 22.61679546681964
1350 POINT 1343 -11.95486088381842 18.07035362542616
1351 POINT 1344 -11.42702593885517 17.15857670139686
1352 POINT 1345 -11.97086217426693 16.23191113527045
1353 POINT 1346 -13.00261454459266 16.21196963584406
1354 POINT 1347 -13.45963928928449 17.15240631073819
1355 POINT 1348 -14.04300661306449 19.92893456636063
1356 POINT 1349 -14.61766846223399 19.01336656135037
1357 POINT 1350 -14.012051553416 18.07820839100076
1358 POINT 1351 -13.00753132955202 19.9072417775258
1359 POINT 1352 -12.50727314794993 18.99615570568874
1360 POINT 1353 -13.00665400519826 18.07780044230454
1361 POINT 1354 11.42702639250091 17.15857636716348
1362 POINT 1355 11.95486135945386 18.07035343776895
1363 POINT 1356 13.45963971419343 17.15240581280172
1364 POINT 1357 13.00665446190387 18.07780023968877
1365 POINT 1358 11.97086257803348 16.23191059697557
1366 POINT 1359 13.00261489978407 16.21196897428866
1367 POINT 1360 -4.63194529517035 27.26807044242916
1368 POINT 1361 -5.129329281616346 28.18223402953092
1369 POINT 1362 -2.075897664001495 26.39023252420856
1370 POINT 1363 -2.633859682224616 25.52195192097659
1371 POINT 1364 -3.619360348222028 27.30721173111527
1372 POINT 1365 -4.135539800559439 26.36549841356398
1373 POINT 1366 -3.637813646348119 25.45447476531866
1374 POINT 1367 -1.530414898263689 29.12459912906478
1375 POINT 1368 -1.022476552060444 28.20145845276378
1376 POINT 1369 -2.583954039656873 27.30113820521839
1377 POINT 1370 -3.080359534267785 28.20371023408358
1378 POINT 1371 -1.536896850047253 27.28673102717688
1379 POINT 1372 -4.543158675405131 32.76980075139725
1380 POINT 1373 -5.096692509816465 31.88416600567974
1381 POINT 1374 -3.548263606045425 32.79891896958721
1382 POINT 1375 -2.549037169284093 29.11196922998421
1383 POINT 1376 -2.034498841845151 30.03893165086228
1384 POINT 1377 -3.584443477849247 29.11804275588108
1385 POINT 1378 -1.519465434862823 30.97888306068132
1386 POINT 1379 -1.011526259584607 31.91618386491503
1387 POINT 1380 -3.041784503002568 31.8775328689841
1388 POINT 1381 -2.529533401943756 32.82759067202288
1389 POINT 1382 -2.538087705883227 30.96625316160074
1390 POINT 1383 -3.556817909984896 30.93758145916507
1391 POINT 1384 -1.514528012276162 32.8600730909511
1392 POINT 1385 -4.088203640533337 30.03451082052263
1393 POINT 1386 -4.591900437652678 30.94579052790599
1394 POINT 1387 -6.129436418173878 30.02016647395368
1395 POINT 1388 -5.628078240364906 30.9810953670373
1396 POINT 1389 -4.619526005517029 29.126251824622
1397 POINT 1390 -5.633089444300436 29.09870209417247
1398
1399 END POINTS LIST
1400
1401
1402
1403 BEGIN MESH STRUCTURE DESCRIPTION
1404
1405 CONVEX 0 'GT_PK(2,2)' 181 364 142 365 366 161
1406 CONVEX 1 'GT_PK(2,2)' 180 367 181 368 369 3
1407 CONVEX 2 'GT_PK(2,2)' 180 367 181 370 365 161
1408 CONVEX 3 'GT_PK(2,2)' 358 371 359 372 373 4
1409 CONVEX 4 'GT_PK(2,2)' 360 374 359 375 373 4
1410 CONVEX 5 'GT_PK(2,2)' 350 376 360 377 378 361
1411 CONVEX 6 'GT_PK(2,2)' 127 379 108 380 381 128
1412 CONVEX 7 'GT_PK(2,2)' 127 379 108 382 383 107
1413 CONVEX 8 'GT_PK(2,2)' 182 384 201 385 386 2
1414 CONVEX 9 'GT_PK(2,2)' 141 387 142 388 389 122
1415 CONVEX 10 'GT_PK(2,2)' 141 387 142 390 366 161
1416 CONVEX 11 'GT_PK(2,2)' 17 391 8 392 393 7
1417 CONVEX 12 'GT_PK(2,2)' 325 394 309 395 396 326
1418 CONVEX 13 'GT_PK(2,2)' 354 397 341 398 399 353
1419 CONVEX 14 'GT_PK(2,2)' 39 400 55 401 402 40
1420 CONVEX 15 'GT_PK(2,2)' 39 403 25 401 404 40
1421 CONVEX 16 'GT_PK(2,2)' 71 405 55 406 407 72
1422 CONVEX 17 'GT_PK(2,2)' 316 408 317 409 410 331
1423 CONVEX 18 'GT_PK(2,2)' 356 411 346 412 413 357
1424 CONVEX 19 'GT_PK(2,2)' 87 414 86 415 416 69
1425 CONVEX 20 'GT_PK(2,2)' 89 417 108 418 383 107
1426 CONVEX 21 'GT_PK(2,2)' 89 419 71 420 406 72
1427 CONVEX 22 'GT_PK(2,2)' 109 421 108 422 381 128
1428 CONVEX 23 'GT_PK(2,2)' 126 423 127 424 382 107
1429 CONVEX 24 'GT_PK(2,2)' 163 425 162 426 427 143
1430 CONVEX 25 'GT_PK(2,2)' 163 425 162 428 429 2
1431 CONVEX 26 'GT_PK(2,2)' 163 430 182 428 385 2
1432 CONVEX 27 'GT_PK(2,2)' 191 431 211 432 433 210
1433 CONVEX 28 'GT_PK(2,2)' 191 434 190 435 436 1
1434 CONVEX 29 'GT_PK(2,2)' 191 434 190 432 437 210
1435 CONVEX 30 'GT_PK(2,2)' 136 438 155 439 440 135
1436 CONVEX 31 'GT_PK(2,2)' 149 441 130 442 443 150
1437 CONVEX 32 'GT_PK(2,2)' 131 444 130 445 443 150
1438 CONVEX 33 'GT_PK(2,2)' 15 446 6 447 448 5
1439 CONVEX 34 'GT_PK(2,2)' 18 449 17 450 451 30
1440 CONVEX 35 'GT_PK(2,2)' 18 452 9 453 454 0
1441 CONVEX 36 'GT_PK(2,2)' 18 455 8 453 456 0
1442 CONVEX 37 'GT_PK(2,2)' 18 449 17 455 391 8
1443 CONVEX 38 'GT_PK(2,2)' 363 457 362 458 459 352
1444 CONVEX 39 'GT_PK(2,2)' 351 460 362 461 459 352
1445 CONVEX 40 'GT_PK(2,2)' 351 462 338 463 464 350
1446 CONVEX 41 'GT_PK(2,2)' 351 463 350 465 377 361
1447 CONVEX 42 'GT_PK(2,2)' 351 460 362 465 466 361
1448 CONVEX 43 'GT_PK(2,2)' 339 467 325 468 469 324
1449 CONVEX 44 'GT_PK(2,2)' 339 470 338 468 471 324
1450 CONVEX 45 'GT_PK(2,2)' 339 472 351 473 461 352
1451 CONVEX 46 'GT_PK(2,2)' 339 472 351 470 462 338
1452 CONVEX 47 'GT_PK(2,2)' 340 474 341 475 399 353
1453 CONVEX 48 'GT_PK(2,2)' 340 476 339 477 473 352
1454 CONVEX 49 'GT_PK(2,2)' 340 476 339 478 467 325
1455 CONVEX 50 'GT_PK(2,2)' 340 474 341 479 480 326
1456 CONVEX 51 'GT_PK(2,2)' 340 478 325 479 395 326
1457 CONVEX 52 'GT_PK(2,2)' 340 481 363 475 482 353
1458 CONVEX 53 'GT_PK(2,2)' 340 481 363 477 458 352
1459 CONVEX 54 'GT_PK(2,2)' 278 483 259 484 485 258
1460 CONVEX 55 'GT_PK(2,2)' 276 486 257 487 488 256
1461 CONVEX 56 'GT_PK(2,2)' 347 489 358 490 491 357
1462 CONVEX 57 'GT_PK(2,2)' 347 492 346 490 413 357
1463 CONVEX 58 'GT_PK(2,2)' 337 493 338 494 464 350
1464 CONVEX 59 'GT_PK(2,2)' 308 495 325 496 469 324
1465 CONVEX 60 'GT_PK(2,2)' 308 495 325 497 394 309
1466 CONVEX 61 'GT_PK(2,2)' 291 498 309 499 500 292
1467 CONVEX 62 'GT_PK(2,2)' 291 501 308 498 497 309
1468 CONVEX 63 'GT_PK(2,2)' 291 501 308 502 503 290
1469 CONVEX 64 'GT_PK(2,2)' 197 504 216 505 506 196
1470 CONVEX 65 'GT_PK(2,2)' 197 507 178 508 509 198
1471 CONVEX 66 'GT_PK(2,2)' 171 510 190 511 436 1
1472 CONVEX 67 'GT_PK(2,2)' 64 512 81 513 514 80
1473 CONVEX 68 'GT_PK(2,2)' 19 515 9 516 517 10
1474 CONVEX 69 'GT_PK(2,2)' 19 518 18 515 452 9
1475 CONVEX 70 'GT_PK(2,2)' 24 519 39 520 521 38
1476 CONVEX 71 'GT_PK(2,2)' 24 519 39 522 403 25
1477 CONVEX 72 'GT_PK(2,2)' 54 523 39 524 400 55
1478 CONVEX 73 'GT_PK(2,2)' 54 525 71 524 405 55
1479 CONVEX 74 'GT_PK(2,2)' 54 523 39 526 521 38
1480 CONVEX 75 'GT_PK(2,2)' 54 527 53 526 528 38
1481 CONVEX 76 'GT_PK(2,2)' 315 529 316 530 531 299
1482 CONVEX 77 'GT_PK(2,2)' 343 532 344 533 534 331
1483 CONVEX 78 'GT_PK(2,2)' 343 535 316 533 409 331
1484 CONVEX 79 'GT_PK(2,2)' 300 536 316 537 531 299
1485 CONVEX 80 'GT_PK(2,2)' 300 536 316 538 408 317
1486 CONVEX 81 'GT_PK(2,2)' 123 539 124 540 541 104
1487 CONVEX 82 'GT_PK(2,2)' 123 539 124 542 543 143
1488 CONVEX 83 'GT_PK(2,2)' 123 544 162 542 427 143
1489 CONVEX 84 'GT_PK(2,2)' 70 545 53 546 547 69
1490 CONVEX 85 'GT_PK(2,2)' 70 548 87 546 415 69
1491 CONVEX 86 'GT_PK(2,2)' 70 549 54 545 527 53
1492 CONVEX 87 'GT_PK(2,2)' 70 549 54 550 525 71
1493 CONVEX 88 'GT_PK(2,2)' 106 551 126 552 553 125
1494 CONVEX 89 'GT_PK(2,2)' 106 551 126 554 424 107
1495 CONVEX 90 'GT_PK(2,2)' 105 555 86 556 557 104
1496 CONVEX 91 'GT_PK(2,2)' 105 558 87 555 414 86
1497 CONVEX 92 'GT_PK(2,2)' 105 559 124 556 541 104
1498 CONVEX 93 'GT_PK(2,2)' 105 560 106 558 561 87
1499 CONVEX 94 'GT_PK(2,2)' 105 559 124 562 563 125
1500 CONVEX 95 'GT_PK(2,2)' 105 560 106 562 552 125
1501 CONVEX 96 'GT_PK(2,2)' 179 564 178 565 509 198
1502 CONVEX 97 'GT_PK(2,2)' 56 566 73 567 568 57
1503 CONVEX 98 'GT_PK(2,2)' 56 569 55 570 402 40
1504 CONVEX 99 'GT_PK(2,2)' 56 569 55 571 407 72
1505 CONVEX 100 'GT_PK(2,2)' 56 566 73 571 572 72
1506 CONVEX 101 'GT_PK(2,2)' 90 573 109 574 421 108
1507 CONVEX 102 'GT_PK(2,2)' 90 575 89 576 420 72
1508 CONVEX 103 'GT_PK(2,2)' 90 575 89 574 417 108
1509 CONVEX 104 'GT_PK(2,2)' 90 577 73 576 572 72
1510 CONVEX 105 'GT_PK(2,2)' 187 578 167 579 580 168
1511 CONVEX 106 'GT_PK(2,2)' 116 581 136 582 439 135
1512 CONVEX 107 'GT_PK(2,2)' 116 581 136 583 584 117
1513 CONVEX 108 'GT_PK(2,2)' 154 585 153 586 587 173
1514 CONVEX 109 'GT_PK(2,2)' 154 588 155 589 440 135
1515 CONVEX 110 'GT_PK(2,2)' 172 590 153 591 587 173
1516 CONVEX 111 'GT_PK(2,2)' 172 592 171 593 511 1
1517 CONVEX 112 'GT_PK(2,2)' 264 594 245 595 596 244
1518 CONVEX 113 'GT_PK(2,2)' 298 597 297 598 599 314
1519 CONVEX 114 'GT_PK(2,2)' 298 600 315 598 601 314
1520 CONVEX 115 'GT_PK(2,2)' 298 602 281 603 604 299
1521 CONVEX 116 'GT_PK(2,2)' 298 600 315 603 530 299
1522 CONVEX 117 'GT_PK(2,2)' 202 605 182 606 384 201
1523 CONVEX 118 'GT_PK(2,2)' 144 607 163 608 426 143
1524 CONVEX 119 'GT_PK(2,2)' 144 609 124 610 563 125
1525 CONVEX 120 'GT_PK(2,2)' 144 609 124 608 543 143
1526 CONVEX 121 'GT_PK(2,2)' 215 611 216 612 506 196
1527 CONVEX 122 'GT_PK(2,2)' 215 613 195 612 614 196
1528 CONVEX 123 'GT_PK(2,2)' 99 615 81 616 617 82
1529 CONVEX 124 'GT_PK(2,2)' 99 618 118 619 620 117
1530 CONVEX 125 'GT_PK(2,2)' 35 621 36 622 623 23
1531 CONVEX 126 'GT_PK(2,2)' 35 621 36 624 625 50
1532 CONVEX 127 'GT_PK(2,2)' 100 626 118 627 628 119
1533 CONVEX 128 'GT_PK(2,2)' 100 629 99 630 616 82
1534 CONVEX 129 'GT_PK(2,2)' 100 629 99 626 618 118
1535 CONVEX 130 'GT_PK(2,2)' 137 631 136 632 584 117
1536 CONVEX 131 'GT_PK(2,2)' 137 633 118 632 620 117
1537 CONVEX 132 'GT_PK(2,2)' 74 634 73 635 568 57
1538 CONVEX 133 'GT_PK(2,2)' 74 636 75 637 638 92
1539 CONVEX 134 'GT_PK(2,2)' 148 639 167 640 580 168
1540 CONVEX 135 'GT_PK(2,2)' 148 641 149 640 642 168
1541 CONVEX 136 'GT_PK(2,2)' 93 643 75 644 645 76
1542 CONVEX 137 'GT_PK(2,2)' 93 643 75 646 638 92
1543 CONVEX 138 'GT_PK(2,2)' 46 647 45 648 649 61
1544 CONVEX 139 'GT_PK(2,2)' 46 650 62 648 651 61
1545 CONVEX 140 'GT_PK(2,2)' 46 650 62 652 653 47
1546 CONVEX 141 'GT_PK(2,2)' 327 654 354 655 397 341
1547 CONVEX 142 'GT_PK(2,2)' 327 655 341 656 480 326
1548 CONVEX 143 'GT_PK(2,2)' 217 657 218 658 659 198
1549 CONVEX 144 'GT_PK(2,2)' 217 660 197 658 508 198
1550 CONVEX 145 'GT_PK(2,2)' 217 660 197 661 504 216
1551 CONVEX 146 'GT_PK(2,2)' 200 662 180 663 368 3
1552 CONVEX 147 'GT_PK(2,2)' 200 664 220 663 665 3
1553 CONVEX 148 'GT_PK(2,2)' 238 666 257 667 668 258
1554 CONVEX 149 'GT_PK(2,2)' 238 669 259 667 485 258
1555 CONVEX 150 'GT_PK(2,2)' 238 670 239 669 671 259
1556 CONVEX 151 'GT_PK(2,2)' 277 672 257 673 668 258
1557 CONVEX 152 'GT_PK(2,2)' 277 674 276 672 486 257
1558 CONVEX 153 'GT_PK(2,2)' 277 675 278 673 484 258
1559 CONVEX 154 'GT_PK(2,2)' 277 675 278 676 677 296
1560 CONVEX 155 'GT_PK(2,2)' 236 678 255 679 680 256
1561 CONVEX 156 'GT_PK(2,2)' 236 681 217 682 661 216
1562 CONVEX 157 'GT_PK(2,2)' 275 683 276 684 487 256
1563 CONVEX 158 'GT_PK(2,2)' 275 685 255 684 680 256
1564 CONVEX 159 'GT_PK(2,2)' 275 686 294 683 687 276
1565 CONVEX 160 'GT_PK(2,2)' 275 686 294 688 689 293
1566 CONVEX 161 'GT_PK(2,2)' 209 690 229 691 692 210
1567 CONVEX 162 'GT_PK(2,2)' 209 693 189 694 695 208
1568 CONVEX 163 'GT_PK(2,2)' 209 696 190 691 437 210
1569 CONVEX 164 'GT_PK(2,2)' 209 693 189 696 697 190
1570 CONVEX 165 'GT_PK(2,2)' 334 698 347 699 492 346
1571 CONVEX 166 'GT_PK(2,2)' 345 700 356 701 411 346
1572 CONVEX 167 'GT_PK(2,2)' 345 702 355 700 703 356
1573 CONVEX 168 'GT_PK(2,2)' 349 704 337 705 494 350
1574 CONVEX 169 'GT_PK(2,2)' 349 706 360 707 374 359
1575 CONVEX 170 'GT_PK(2,2)' 349 705 350 706 376 360
1576 CONVEX 171 'GT_PK(2,2)' 349 708 336 704 709 337
1577 CONVEX 172 'GT_PK(2,2)' 323 710 338 711 471 324
1578 CONVEX 173 'GT_PK(2,2)' 323 712 337 710 493 338
1579 CONVEX 174 'GT_PK(2,2)' 307 713 308 714 503 290
1580 CONVEX 175 'GT_PK(2,2)' 307 713 308 715 496 324
1581 CONVEX 176 'GT_PK(2,2)' 307 716 323 715 711 324
1582 CONVEX 177 'GT_PK(2,2)' 307 716 323 717 718 306
1583 CONVEX 178 'GT_PK(2,2)' 272 719 291 720 502 290
1584 CONVEX 179 'GT_PK(2,2)' 169 721 149 722 442 150
1585 CONVEX 180 'GT_PK(2,2)' 169 721 149 723 642 168
1586 CONVEX 181 'GT_PK(2,2)' 22 724 35 725 726 34
1587 CONVEX 182 'GT_PK(2,2)' 22 724 35 727 622 23
1588 CONVEX 183 'GT_PK(2,2)' 63 728 62 729 653 47
1589 CONVEX 184 'GT_PK(2,2)' 63 728 62 730 731 79
1590 CONVEX 185 'GT_PK(2,2)' 63 730 79 732 733 80
1591 CONVEX 186 'GT_PK(2,2)' 63 734 64 732 513 80
1592 CONVEX 187 'GT_PK(2,2)' 21 735 12 736 737 11
1593 CONVEX 188 'GT_PK(2,2)' 21 738 33 739 740 34
1594 CONVEX 189 'GT_PK(2,2)' 21 741 22 739 725 34
1595 CONVEX 190 'GT_PK(2,2)' 21 741 22 735 742 12
1596 CONVEX 191 'GT_PK(2,2)' 49 743 35 744 726 34
1597 CONVEX 192 'GT_PK(2,2)' 49 743 35 745 624 50
1598 CONVEX 193 'GT_PK(2,2)' 330 746 315 747 529 316
1599 CONVEX 194 'GT_PK(2,2)' 330 748 343 747 535 316
1600 CONVEX 195 'GT_PK(2,2)' 330 746 315 749 601 314
1601 CONVEX 196 'GT_PK(2,2)' 88 750 70 751 548 87
1602 CONVEX 197 'GT_PK(2,2)' 88 752 106 751 561 87
1603 CONVEX 198 'GT_PK(2,2)' 88 750 70 753 550 71
1604 CONVEX 199 'GT_PK(2,2)' 88 752 106 754 554 107
1605 CONVEX 200 'GT_PK(2,2)' 88 755 89 754 418 107
1606 CONVEX 201 'GT_PK(2,2)' 88 755 89 753 419 71
1607 CONVEX 202 'GT_PK(2,2)' 159 756 179 757 564 178
1608 CONVEX 203 'GT_PK(2,2)' 129 758 110 759 760 130
1609 CONVEX 204 'GT_PK(2,2)' 129 761 148 762 763 128
1610 CONVEX 205 'GT_PK(2,2)' 129 764 109 762 422 128
1611 CONVEX 206 'GT_PK(2,2)' 129 758 110 764 765 109
1612 CONVEX 207 'GT_PK(2,2)' 129 766 149 759 441 130
1613 CONVEX 208 'GT_PK(2,2)' 129 761 148 766 641 149
1614 CONVEX 209 'GT_PK(2,2)' 111 767 131 768 444 130
1615 CONVEX 210 'GT_PK(2,2)' 111 769 110 768 760 130
1616 CONVEX 211 'GT_PK(2,2)' 111 769 110 770 771 92
1617 CONVEX 212 'GT_PK(2,2)' 111 772 93 770 646 92
1618 CONVEX 213 'GT_PK(2,2)' 91 773 90 774 573 109
1619 CONVEX 214 'GT_PK(2,2)' 91 775 110 776 771 92
1620 CONVEX 215 'GT_PK(2,2)' 91 775 110 774 765 109
1621 CONVEX 216 'GT_PK(2,2)' 91 777 74 776 637 92
1622 CONVEX 217 'GT_PK(2,2)' 91 773 90 778 577 73
1623 CONVEX 218 'GT_PK(2,2)' 91 777 74 778 634 73
1624 CONVEX 219 'GT_PK(2,2)' 97 779 79 780 733 80
1625 CONVEX 220 'GT_PK(2,2)' 97 781 96 779 782 79
1626 CONVEX 221 'GT_PK(2,2)' 114 783 133 784 785 113
1627 CONVEX 222 'GT_PK(2,2)' 114 786 95 784 787 113
1628 CONVEX 223 'GT_PK(2,2)' 114 786 95 788 789 96
1629 CONVEX 224 'GT_PK(2,2)' 132 790 133 791 785 113
1630 CONVEX 225 'GT_PK(2,2)' 263 792 264 793 595 244
1631 CONVEX 226 'GT_PK(2,2)' 263 794 262 795 796 281
1632 CONVEX 227 'GT_PK(2,2)' 282 797 281 798 604 299
1633 CONVEX 228 'GT_PK(2,2)' 282 799 264 800 801 283
1634 CONVEX 229 'GT_PK(2,2)' 282 802 263 797 795 281
1635 CONVEX 230 'GT_PK(2,2)' 282 802 263 799 792 264
1636 CONVEX 231 'GT_PK(2,2)' 282 803 300 800 804 283
1637 CONVEX 232 'GT_PK(2,2)' 282 803 300 798 537 299
1638 CONVEX 233 'GT_PK(2,2)' 261 805 279 806 807 260
1639 CONVEX 234 'GT_PK(2,2)' 243 808 263 809 793 244
1640 CONVEX 235 'GT_PK(2,2)' 243 808 263 810 794 262
1641 CONVEX 236 'GT_PK(2,2)' 221 811 202 812 606 201
1642 CONVEX 237 'GT_PK(2,2)' 221 813 240 814 815 222
1643 CONVEX 238 'GT_PK(2,2)' 221 811 202 814 816 222
1644 CONVEX 239 'GT_PK(2,2)' 156 817 136 818 438 155
1645 CONVEX 240 'GT_PK(2,2)' 156 819 175 818 820 155
1646 CONVEX 241 'GT_PK(2,2)' 156 821 137 817 631 136
1647 CONVEX 242 'GT_PK(2,2)' 192 822 191 823 431 211
1648 CONVEX 243 'GT_PK(2,2)' 192 822 191 824 435 1
1649 CONVEX 244 'GT_PK(2,2)' 192 825 172 824 593 1
1650 CONVEX 245 'GT_PK(2,2)' 192 825 172 826 591 173
1651 CONVEX 246 'GT_PK(2,2)' 174 827 154 828 586 173
1652 CONVEX 247 'GT_PK(2,2)' 174 827 154 829 588 155
1653 CONVEX 248 'GT_PK(2,2)' 174 830 175 829 820 155
1654 CONVEX 249 'GT_PK(2,2)' 214 831 215 832 613 195
1655 CONVEX 250 'GT_PK(2,2)' 214 831 215 833 834 234
1656 CONVEX 251 'GT_PK(2,2)' 98 835 81 836 514 80
1657 CONVEX 252 'GT_PK(2,2)' 98 837 99 835 615 81
1658 CONVEX 253 'GT_PK(2,2)' 98 838 97 836 780 80
1659 CONVEX 254 'GT_PK(2,2)' 98 837 99 839 619 117
1660 CONVEX 255 'GT_PK(2,2)' 98 840 116 839 583 117
1661 CONVEX 256 'GT_PK(2,2)' 98 838 97 840 841 116
1662 CONVEX 257 'GT_PK(2,2)' 52 842 68 843 844 67
1663 CONVEX 258 'GT_PK(2,2)' 83 845 66 846 847 67
1664 CONVEX 259 'GT_PK(2,2)' 83 848 100 849 630 82
1665 CONVEX 260 'GT_PK(2,2)' 83 845 66 849 850 82
1666 CONVEX 261 'GT_PK(2,2)' 51 851 66 852 853 50
1667 CONVEX 262 'GT_PK(2,2)' 51 854 36 855 856 37
1668 CONVEX 263 'GT_PK(2,2)' 51 854 36 852 625 50
1669 CONVEX 264 'GT_PK(2,2)' 51 851 66 857 847 67
1670 CONVEX 265 'GT_PK(2,2)' 51 858 52 855 859 37
1671 CONVEX 266 'GT_PK(2,2)' 51 858 52 857 843 67
1672 CONVEX 267 'GT_PK(2,2)' 103 860 102 861 862 85
1673 CONVEX 268 'GT_PK(2,2)' 121 863 102 864 865 120
1674 CONVEX 269 'GT_PK(2,2)' 121 866 141 867 388 122
1675 CONVEX 270 'GT_PK(2,2)' 121 868 103 867 869 122
1676 CONVEX 271 'GT_PK(2,2)' 121 868 103 863 860 102
1677 CONVEX 272 'GT_PK(2,2)' 58 870 74 871 635 57
1678 CONVEX 273 'GT_PK(2,2)' 58 870 74 872 636 75
1679 CONVEX 274 'GT_PK(2,2)' 29 873 17 874 451 30
1680 CONVEX 275 'GT_PK(2,2)' 60 875 45 876 649 61
1681 CONVEX 276 'GT_PK(2,2)' 60 877 77 878 879 76
1682 CONVEX 277 'GT_PK(2,2)' 60 877 77 876 880 61
1683 CONVEX 278 'GT_PK(2,2)' 94 881 95 882 787 113
1684 CONVEX 279 'GT_PK(2,2)' 94 883 93 884 644 76
1685 CONVEX 280 'GT_PK(2,2)' 94 885 77 884 879 76
1686 CONVEX 281 'GT_PK(2,2)' 94 885 77 881 886 95
1687 CONVEX 282 'GT_PK(2,2)' 41 887 56 888 570 40
1688 CONVEX 283 'GT_PK(2,2)' 41 887 56 889 567 57
1689 CONVEX 284 'GT_PK(2,2)' 28 890 27 891 892 15
1690 CONVEX 285 'GT_PK(2,2)' 28 893 29 894 895 43
1691 CONVEX 286 'GT_PK(2,2)' 14 896 15 897 447 5
1692 CONVEX 287 'GT_PK(2,2)' 14 898 27 896 892 15
1693 CONVEX 288 'GT_PK(2,2)' 31 899 45 900 901 30
1694 CONVEX 289 'GT_PK(2,2)' 31 902 46 899 647 45
1695 CONVEX 290 'GT_PK(2,2)' 31 903 18 900 450 30
1696 CONVEX 291 'GT_PK(2,2)' 31 904 19 903 518 18
1697 CONVEX 292 'GT_PK(2,2)' 311 905 327 906 907 328
1698 CONVEX 293 'GT_PK(2,2)' 311 908 294 909 689 293
1699 CONVEX 294 'GT_PK(2,2)' 342 910 329 911 912 328
1700 CONVEX 295 'GT_PK(2,2)' 342 913 327 914 654 354
1701 CONVEX 296 'GT_PK(2,2)' 342 913 327 911 907 328
1702 CONVEX 297 'GT_PK(2,2)' 237 915 217 916 657 218
1703 CONVEX 298 'GT_PK(2,2)' 237 917 238 918 666 257
1704 CONVEX 299 'GT_PK(2,2)' 237 917 238 916 919 218
1705 CONVEX 300 'GT_PK(2,2)' 237 920 236 915 681 217
1706 CONVEX 301 'GT_PK(2,2)' 237 918 257 921 488 256
1707 CONVEX 302 'GT_PK(2,2)' 237 920 236 921 679 256
1708 CONVEX 303 'GT_PK(2,2)' 199 922 218 923 659 198
1709 CONVEX 304 'GT_PK(2,2)' 199 924 179 923 565 198
1710 CONVEX 305 'GT_PK(2,2)' 199 924 179 925 926 180
1711 CONVEX 306 'GT_PK(2,2)' 199 927 200 925 662 180
1712 CONVEX 307 'GT_PK(2,2)' 219 928 239 929 930 220
1713 CONVEX 308 'GT_PK(2,2)' 219 931 238 928 670 239
1714 CONVEX 309 'GT_PK(2,2)' 219 932 200 929 664 220
1715 CONVEX 310 'GT_PK(2,2)' 219 931 238 933 919 218
1716 CONVEX 311 'GT_PK(2,2)' 219 934 199 933 922 218
1717 CONVEX 312 'GT_PK(2,2)' 219 934 199 932 927 200
1718 CONVEX 313 'GT_PK(2,2)' 312 935 329 936 912 328
1719 CONVEX 314 'GT_PK(2,2)' 312 937 311 936 906 328
1720 CONVEX 315 'GT_PK(2,2)' 312 937 311 938 908 294
1721 CONVEX 316 'GT_PK(2,2)' 235 939 236 940 682 216
1722 CONVEX 317 'GT_PK(2,2)' 235 939 236 941 678 255
1723 CONVEX 318 'GT_PK(2,2)' 235 942 215 940 611 216
1724 CONVEX 319 'GT_PK(2,2)' 235 942 215 943 834 234
1725 CONVEX 320 'GT_PK(2,2)' 235 944 254 943 945 234
1726 CONVEX 321 'GT_PK(2,2)' 235 944 254 941 946 255
1727 CONVEX 322 'GT_PK(2,2)' 265 947 264 948 801 283
1728 CONVEX 323 'GT_PK(2,2)' 265 947 264 949 594 245
1729 CONVEX 324 'GT_PK(2,2)' 333 950 334 951 699 346
1730 CONVEX 325 'GT_PK(2,2)' 333 952 345 951 701 346
1731 CONVEX 326 'GT_PK(2,2)' 332 953 317 954 410 331
1732 CONVEX 327 'GT_PK(2,2)' 332 955 318 953 956 317
1733 CONVEX 328 'GT_PK(2,2)' 332 957 344 954 534 331
1734 CONVEX 329 'GT_PK(2,2)' 332 958 333 955 959 318
1735 CONVEX 330 'GT_PK(2,2)' 332 958 333 960 952 345
1736 CONVEX 331 'GT_PK(2,2)' 332 961 355 957 962 344
1737 CONVEX 332 'GT_PK(2,2)' 332 960 345 961 702 355
1738 CONVEX 333 'GT_PK(2,2)' 335 963 334 964 698 347
1739 CONVEX 334 'GT_PK(2,2)' 335 965 336 966 967 321
1740 CONVEX 335 'GT_PK(2,2)' 322 968 323 969 718 306
1741 CONVEX 336 'GT_PK(2,2)' 322 968 323 970 712 337
1742 CONVEX 337 'GT_PK(2,2)' 322 971 336 972 967 321
1743 CONVEX 338 'GT_PK(2,2)' 322 971 336 970 709 337
1744 CONVEX 339 'GT_PK(2,2)' 250 973 270 974 975 251
1745 CONVEX 340 'GT_PK(2,2)' 289 976 307 977 714 290
1746 CONVEX 341 'GT_PK(2,2)' 289 976 307 978 717 306
1747 CONVEX 342 'GT_PK(2,2)' 305 979 322 980 972 321
1748 CONVEX 343 'GT_PK(2,2)' 305 979 322 981 969 306
1749 CONVEX 344 'GT_PK(2,2)' 274 982 275 983 685 255
1750 CONVEX 345 'GT_PK(2,2)' 274 984 254 983 946 255
1751 CONVEX 346 'GT_PK(2,2)' 274 982 275 985 688 293
1752 CONVEX 347 'GT_PK(2,2)' 274 985 293 986 987 292
1753 CONVEX 348 'GT_PK(2,2)' 273 988 291 989 499 292
1754 CONVEX 349 'GT_PK(2,2)' 273 990 272 988 719 291
1755 CONVEX 350 'GT_PK(2,2)' 273 991 274 989 986 292
1756 CONVEX 351 'GT_PK(2,2)' 273 991 274 992 984 254
1757 CONVEX 352 'GT_PK(2,2)' 170 993 169 994 722 150
1758 CONVEX 353 'GT_PK(2,2)' 170 993 169 995 996 189
1759 CONVEX 354 'GT_PK(2,2)' 170 997 171 998 510 190
1760 CONVEX 355 'GT_PK(2,2)' 170 995 189 998 697 190
1761 CONVEX 356 'GT_PK(2,2)' 188 999 189 1000 695 208
1762 CONVEX 357 'GT_PK(2,2)' 188 1001 169 999 996 189
1763 CONVEX 358 'GT_PK(2,2)' 188 1000 208 1002 1003 207
1764 CONVEX 359 'GT_PK(2,2)' 188 1004 187 1002 1005 207
1765 CONVEX 360 'GT_PK(2,2)' 188 1004 187 1006 579 168
1766 CONVEX 361 'GT_PK(2,2)' 188 1001 169 1006 723 168
1767 CONVEX 362 'GT_PK(2,2)' 48 1007 63 1008 734 64
1768 CONVEX 363 'GT_PK(2,2)' 48 1009 49 1008 1010 64
1769 CONVEX 364 'GT_PK(2,2)' 48 1011 33 1012 1013 47
1770 CONVEX 365 'GT_PK(2,2)' 48 1007 63 1012 729 47
1771 CONVEX 366 'GT_PK(2,2)' 48 1011 33 1014 740 34
1772 CONVEX 367 'GT_PK(2,2)' 48 1009 49 1014 744 34
1773 CONVEX 368 'GT_PK(2,2)' 20 1015 21 1016 736 11
1774 CONVEX 369 'GT_PK(2,2)' 20 1017 10 1016 1018 11
1775 CONVEX 370 'GT_PK(2,2)' 20 1019 19 1017 516 10
1776 CONVEX 371 'GT_PK(2,2)' 20 1015 21 1020 738 33
1777 CONVEX 372 'GT_PK(2,2)' 65 1021 49 1022 1010 64
1778 CONVEX 373 'GT_PK(2,2)' 65 1022 64 1023 512 81
1779 CONVEX 374 'GT_PK(2,2)' 65 1024 66 1025 853 50
1780 CONVEX 375 'GT_PK(2,2)' 65 1021 49 1025 745 50
1781 CONVEX 376 'GT_PK(2,2)' 65 1023 81 1026 617 82
1782 CONVEX 377 'GT_PK(2,2)' 65 1024 66 1026 850 82
1783 CONVEX 378 'GT_PK(2,2)' 139 1027 120 1028 1029 119
1784 CONVEX 379 'GT_PK(2,2)' 140 1030 139 1031 1032 159
1785 CONVEX 380 'GT_PK(2,2)' 140 1030 139 1033 1027 120
1786 CONVEX 381 'GT_PK(2,2)' 140 1034 121 1035 866 141
1787 CONVEX 382 'GT_PK(2,2)' 140 1034 121 1033 864 120
1788 CONVEX 383 'GT_PK(2,2)' 160 1036 159 1037 756 179
1789 CONVEX 384 'GT_PK(2,2)' 160 1038 180 1039 370 161
1790 CONVEX 385 'GT_PK(2,2)' 160 1037 179 1038 926 180
1791 CONVEX 386 'GT_PK(2,2)' 160 1040 140 1036 1031 159
1792 CONVEX 387 'GT_PK(2,2)' 160 1041 141 1039 390 161
1793 CONVEX 388 'GT_PK(2,2)' 160 1040 140 1041 1035 141
1794 CONVEX 389 'GT_PK(2,2)' 186 1042 187 1043 578 167
1795 CONVEX 390 'GT_PK(2,2)' 164 1044 144 1045 607 163
1796 CONVEX 391 'GT_PK(2,2)' 147 1046 127 1047 380 128
1797 CONVEX 392 'GT_PK(2,2)' 147 1048 148 1047 763 128
1798 CONVEX 393 'GT_PK(2,2)' 147 1048 148 1049 639 167
1799 CONVEX 394 'GT_PK(2,2)' 78 1050 95 1051 789 96
1800 CONVEX 395 'GT_PK(2,2)' 78 1052 77 1050 886 95
1801 CONVEX 396 'GT_PK(2,2)' 78 1051 96 1053 782 79
1802 CONVEX 397 'GT_PK(2,2)' 78 1054 62 1053 731 79
1803 CONVEX 398 'GT_PK(2,2)' 78 1054 62 1055 651 61
1804 CONVEX 399 'GT_PK(2,2)' 78 1052 77 1055 880 61
1805 CONVEX 400 'GT_PK(2,2)' 115 1056 116 1057 582 135
1806 CONVEX 401 'GT_PK(2,2)' 115 1058 114 1059 788 96
1807 CONVEX 402 'GT_PK(2,2)' 115 1060 97 1059 781 96
1808 CONVEX 403 'GT_PK(2,2)' 115 1060 97 1056 841 116
1809 CONVEX 404 'GT_PK(2,2)' 134 1061 133 1062 1063 153
1810 CONVEX 405 'GT_PK(2,2)' 134 1064 114 1061 783 133
1811 CONVEX 406 'GT_PK(2,2)' 134 1065 115 1064 1058 114
1812 CONVEX 407 'GT_PK(2,2)' 134 1065 115 1066 1057 135
1813 CONVEX 408 'GT_PK(2,2)' 134 1067 154 1066 589 135
1814 CONVEX 409 'GT_PK(2,2)' 134 1067 154 1062 585 153
1815 CONVEX 410 'GT_PK(2,2)' 151 1068 132 1069 1070 131
1816 CONVEX 411 'GT_PK(2,2)' 151 1069 131 1071 445 150
1817 CONVEX 412 'GT_PK(2,2)' 151 1072 170 1071 994 150
1818 CONVEX 413 'GT_PK(2,2)' 151 1072 170 1073 997 171
1819 CONVEX 414 'GT_PK(2,2)' 152 1074 172 1075 592 171
1820 CONVEX 415 'GT_PK(2,2)' 152 1076 151 1075 1073 171
1821 CONVEX 416 'GT_PK(2,2)' 152 1076 151 1077 1068 132
1822 CONVEX 417 'GT_PK(2,2)' 152 1077 132 1078 790 133
1823 CONVEX 418 'GT_PK(2,2)' 152 1078 133 1079 1063 153
1824 CONVEX 419 'GT_PK(2,2)' 152 1074 172 1079 590 153
1825 CONVEX 420 'GT_PK(2,2)' 242 1080 222 1081 1082 223
1826 CONVEX 421 'GT_PK(2,2)' 242 1083 261 1084 1085 262
1827 CONVEX 422 'GT_PK(2,2)' 242 1086 243 1081 1087 223
1828 CONVEX 423 'GT_PK(2,2)' 242 1086 243 1084 810 262
1829 CONVEX 424 'GT_PK(2,2)' 280 1088 261 1089 805 279
1830 CONVEX 425 'GT_PK(2,2)' 280 1090 298 1091 597 297
1831 CONVEX 426 'GT_PK(2,2)' 280 1089 279 1091 1092 297
1832 CONVEX 427 'GT_PK(2,2)' 280 1090 298 1093 602 281
1833 CONVEX 428 'GT_PK(2,2)' 280 1094 262 1093 796 281
1834 CONVEX 429 'GT_PK(2,2)' 280 1088 261 1094 1085 262
1835 CONVEX 430 'GT_PK(2,2)' 176 1095 156 1096 819 175
1836 CONVEX 431 'GT_PK(2,2)' 176 1097 195 1098 614 196
1837 CONVEX 432 'GT_PK(2,2)' 176 1096 175 1097 1099 195
1838 CONVEX 433 'GT_PK(2,2)' 252 1100 232 1101 1102 251
1839 CONVEX 434 'GT_PK(2,2)' 231 1103 232 1104 1102 251
1840 CONVEX 435 'GT_PK(2,2)' 231 1105 250 1104 974 251
1841 CONVEX 436 'GT_PK(2,2)' 212 1106 232 1107 1108 213
1842 CONVEX 437 'GT_PK(2,2)' 212 1109 192 1110 823 211
1843 CONVEX 438 'GT_PK(2,2)' 212 1111 231 1110 1112 211
1844 CONVEX 439 'GT_PK(2,2)' 212 1111 231 1106 1103 232
1845 CONVEX 440 'GT_PK(2,2)' 193 1113 174 1114 828 173
1846 CONVEX 441 'GT_PK(2,2)' 193 1115 212 1116 1107 213
1847 CONVEX 442 'GT_PK(2,2)' 193 1117 192 1114 826 173
1848 CONVEX 443 'GT_PK(2,2)' 193 1115 212 1117 1109 192
1849 CONVEX 444 'GT_PK(2,2)' 194 1118 214 1119 832 195
1850 CONVEX 445 'GT_PK(2,2)' 194 1120 175 1119 1099 195
1851 CONVEX 446 'GT_PK(2,2)' 194 1121 174 1120 830 175
1852 CONVEX 447 'GT_PK(2,2)' 194 1118 214 1122 1123 213
1853 CONVEX 448 'GT_PK(2,2)' 194 1124 193 1122 1116 213
1854 CONVEX 449 'GT_PK(2,2)' 194 1124 193 1121 1113 174
1855 CONVEX 450 'GT_PK(2,2)' 101 1125 102 1126 865 120
1856 CONVEX 451 'GT_PK(2,2)' 101 1126 120 1127 1029 119
1857 CONVEX 452 'GT_PK(2,2)' 101 1128 100 1127 627 119
1858 CONVEX 453 'GT_PK(2,2)' 101 1129 83 1128 848 100
1859 CONVEX 454 'GT_PK(2,2)' 59 1130 58 1131 872 75
1860 CONVEX 455 'GT_PK(2,2)' 59 1130 58 1132 1133 43
1861 CONVEX 456 'GT_PK(2,2)' 59 1131 75 1134 645 76
1862 CONVEX 457 'GT_PK(2,2)' 59 1135 60 1134 878 76
1863 CONVEX 458 'GT_PK(2,2)' 16 1136 29 1137 873 17
1864 CONVEX 459 'GT_PK(2,2)' 16 1138 15 1139 446 6
1865 CONVEX 460 'GT_PK(2,2)' 16 1140 28 1138 891 15
1866 CONVEX 461 'GT_PK(2,2)' 16 1140 28 1136 893 29
1867 CONVEX 462 'GT_PK(2,2)' 16 1137 17 1141 392 7
1868 CONVEX 463 'GT_PK(2,2)' 16 1139 6 1141 1142 7
1869 CONVEX 464 'GT_PK(2,2)' 44 1143 60 1144 875 45
1870 CONVEX 465 'GT_PK(2,2)' 44 1145 29 1146 895 43
1871 CONVEX 466 'GT_PK(2,2)' 44 1147 59 1146 1132 43
1872 CONVEX 467 'GT_PK(2,2)' 44 1147 59 1143 1135 60
1873 CONVEX 468 'GT_PK(2,2)' 44 1144 45 1148 901 30
1874 CONVEX 469 'GT_PK(2,2)' 44 1145 29 1148 874 30
1875 CONVEX 470 'GT_PK(2,2)' 112 1149 94 1150 882 113
1876 CONVEX 471 'GT_PK(2,2)' 112 1151 132 1150 791 113
1877 CONVEX 472 'GT_PK(2,2)' 112 1151 132 1152 1070 131
1878 CONVEX 473 'GT_PK(2,2)' 112 1149 94 1153 883 93
1879 CONVEX 474 'GT_PK(2,2)' 112 1154 111 1152 767 131
1880 CONVEX 475 'GT_PK(2,2)' 112 1154 111 1153 772 93
1881 CONVEX 476 'GT_PK(2,2)' 26 1155 41 1156 1157 27
1882 CONVEX 477 'GT_PK(2,2)' 26 1158 14 1159 1160 13
1883 CONVEX 478 'GT_PK(2,2)' 26 1158 14 1156 898 27
1884 CONVEX 479 'GT_PK(2,2)' 26 1155 41 1161 888 40
1885 CONVEX 480 'GT_PK(2,2)' 26 1162 25 1161 404 40
1886 CONVEX 481 'GT_PK(2,2)' 26 1159 13 1162 1163 25
1887 CONVEX 482 'GT_PK(2,2)' 42 1164 41 1165 1157 27
1888 CONVEX 483 'GT_PK(2,2)' 42 1166 28 1165 890 27
1889 CONVEX 484 'GT_PK(2,2)' 42 1164 41 1167 889 57
1890 CONVEX 485 'GT_PK(2,2)' 42 1168 58 1167 871 57
1891 CONVEX 486 'GT_PK(2,2)' 42 1168 58 1169 1133 43
1892 CONVEX 487 'GT_PK(2,2)' 42 1166 28 1169 894 43
1893 CONVEX 488 'GT_PK(2,2)' 310 1170 327 1171 656 326
1894 CONVEX 489 'GT_PK(2,2)' 310 1172 311 1170 905 327
1895 CONVEX 490 'GT_PK(2,2)' 310 1173 309 1171 396 326
1896 CONVEX 491 'GT_PK(2,2)' 310 1173 309 1174 500 292
1897 CONVEX 492 'GT_PK(2,2)' 310 1175 293 1174 987 292
1898 CONVEX 493 'GT_PK(2,2)' 310 1172 311 1175 909 293
1899 CONVEX 494 'GT_PK(2,2)' 313 1176 312 1177 935 329
1900 CONVEX 495 'GT_PK(2,2)' 295 1178 277 1179 676 296
1901 CONVEX 496 'GT_PK(2,2)' 295 1180 313 1179 1181 296
1902 CONVEX 497 'GT_PK(2,2)' 295 1180 313 1182 1176 312
1903 CONVEX 498 'GT_PK(2,2)' 295 1182 312 1183 938 294
1904 CONVEX 499 'GT_PK(2,2)' 295 1183 294 1184 687 276
1905 CONVEX 500 'GT_PK(2,2)' 295 1178 277 1184 674 276
1906 CONVEX 501 'GT_PK(2,2)' 284 1185 265 1186 948 283
1907 CONVEX 502 'GT_PK(2,2)' 284 1185 265 1187 1188 266
1908 CONVEX 503 'GT_PK(2,2)' 319 1189 333 1190 950 334
1909 CONVEX 504 'GT_PK(2,2)' 319 1191 302 1192 1193 318
1910 CONVEX 505 'GT_PK(2,2)' 319 1189 333 1192 959 318
1911 CONVEX 506 'GT_PK(2,2)' 227 1194 208 1195 1003 207
1912 CONVEX 507 'GT_PK(2,2)' 227 1196 226 1195 1197 207
1913 CONVEX 508 'GT_PK(2,2)' 246 1198 265 1199 1188 266
1914 CONVEX 509 'GT_PK(2,2)' 246 1200 247 1199 1201 266
1915 CONVEX 510 'GT_PK(2,2)' 246 1198 265 1202 949 245
1916 CONVEX 511 'GT_PK(2,2)' 246 1203 227 1200 1204 247
1917 CONVEX 512 'GT_PK(2,2)' 246 1205 226 1202 1206 245
1918 CONVEX 513 'GT_PK(2,2)' 246 1203 227 1205 1196 226
1919 CONVEX 514 'GT_PK(2,2)' 348 1207 335 1208 964 347
1920 CONVEX 515 'GT_PK(2,2)' 348 1209 358 1210 371 359
1921 CONVEX 516 'GT_PK(2,2)' 348 1208 347 1209 489 358
1922 CONVEX 517 'GT_PK(2,2)' 348 1207 335 1211 965 336
1923 CONVEX 518 'GT_PK(2,2)' 348 1212 349 1210 707 359
1924 CONVEX 519 'GT_PK(2,2)' 348 1212 349 1211 708 336
1925 CONVEX 520 'GT_PK(2,2)' 230 1213 211 1214 433 210
1926 CONVEX 521 'GT_PK(2,2)' 230 1215 229 1214 692 210
1927 CONVEX 522 'GT_PK(2,2)' 230 1216 231 1213 1112 211
1928 CONVEX 523 'GT_PK(2,2)' 230 1216 231 1217 1105 250
1929 CONVEX 524 'GT_PK(2,2)' 271 1218 289 1219 1220 270
1930 CONVEX 525 'GT_PK(2,2)' 271 1219 270 1221 975 251
1931 CONVEX 526 'GT_PK(2,2)' 271 1222 272 1223 720 290
1932 CONVEX 527 'GT_PK(2,2)' 271 1218 289 1223 977 290
1933 CONVEX 528 'GT_PK(2,2)' 271 1224 252 1221 1101 251
1934 CONVEX 529 'GT_PK(2,2)' 271 1224 252 1222 1225 272
1935 CONVEX 530 'GT_PK(2,2)' 288 1226 289 1227 1220 270
1936 CONVEX 531 'GT_PK(2,2)' 288 1226 289 1228 978 306
1937 CONVEX 532 'GT_PK(2,2)' 288 1229 305 1228 981 306
1938 CONVEX 533 'GT_PK(2,2)' 32 1230 20 1231 1020 33
1939 CONVEX 534 'GT_PK(2,2)' 32 1232 31 1233 902 46
1940 CONVEX 535 'GT_PK(2,2)' 32 1232 31 1234 904 19
1941 CONVEX 536 'GT_PK(2,2)' 32 1230 20 1234 1019 19
1942 CONVEX 537 'GT_PK(2,2)' 32 1231 33 1235 1013 47
1943 CONVEX 538 'GT_PK(2,2)' 32 1233 46 1235 652 47
1944 CONVEX 539 'GT_PK(2,2)' 206 1236 187 1237 1005 207
1945 CONVEX 540 'GT_PK(2,2)' 206 1238 186 1236 1042 187
1946 CONVEX 541 'GT_PK(2,2)' 206 1239 226 1237 1197 207
1947 CONVEX 542 'GT_PK(2,2)' 184 1240 204 1241 1242 185
1948 CONVEX 543 'GT_PK(2,2)' 145 1243 164 1244 1044 144
1949 CONVEX 544 'GT_PK(2,2)' 145 1245 126 1246 553 125
1950 CONVEX 545 'GT_PK(2,2)' 145 1244 144 1246 610 125
1951 CONVEX 546 'GT_PK(2,2)' 183 1247 163 1248 430 182
1952 CONVEX 547 'GT_PK(2,2)' 183 1249 164 1247 1045 163
1953 CONVEX 548 'GT_PK(2,2)' 183 1250 184 1249 1251 164
1954 CONVEX 549 'GT_PK(2,2)' 183 1252 202 1248 605 182
1955 CONVEX 550 'GT_PK(2,2)' 241 1253 240 1254 815 222
1956 CONVEX 551 'GT_PK(2,2)' 241 1255 242 1254 1080 222
1957 CONVEX 552 'GT_PK(2,2)' 241 1255 242 1256 1083 261
1958 CONVEX 553 'GT_PK(2,2)' 241 1253 240 1257 1258 260
1959 CONVEX 554 'GT_PK(2,2)' 241 1256 261 1257 806 260
1960 CONVEX 555 'GT_PK(2,2)' 177 1259 197 1260 505 196
1961 CONVEX 556 'GT_PK(2,2)' 177 1261 176 1260 1098 196
1962 CONVEX 557 'GT_PK(2,2)' 177 1259 197 1262 507 178
1963 CONVEX 558 'GT_PK(2,2)' 233 1263 252 1264 1100 232
1964 CONVEX 559 'GT_PK(2,2)' 233 1264 232 1265 1108 213
1965 CONVEX 560 'GT_PK(2,2)' 233 1266 214 1267 833 234
1966 CONVEX 561 'GT_PK(2,2)' 233 1266 214 1265 1123 213
1967 CONVEX 562 'GT_PK(2,2)' 253 1268 273 1269 990 272
1968 CONVEX 563 'GT_PK(2,2)' 253 1270 252 1269 1225 272
1969 CONVEX 564 'GT_PK(2,2)' 253 1268 273 1271 992 254
1970 CONVEX 565 'GT_PK(2,2)' 253 1272 233 1270 1263 252
1971 CONVEX 566 'GT_PK(2,2)' 253 1271 254 1273 945 234
1972 CONVEX 567 'GT_PK(2,2)' 253 1272 233 1273 1267 234
1973 CONVEX 568 'GT_PK(2,2)' 84 1274 101 1275 1125 102
1974 CONVEX 569 'GT_PK(2,2)' 84 1276 68 1277 844 67
1975 CONVEX 570 'GT_PK(2,2)' 84 1278 83 1277 846 67
1976 CONVEX 571 'GT_PK(2,2)' 84 1274 101 1278 1129 83
1977 CONVEX 572 'GT_PK(2,2)' 84 1276 68 1279 1280 85
1978 CONVEX 573 'GT_PK(2,2)' 84 1275 102 1279 862 85
1979 CONVEX 574 'GT_PK(2,2)' 301 1281 284 1282 1186 283
1980 CONVEX 575 'GT_PK(2,2)' 301 1281 284 1283 1284 302
1981 CONVEX 576 'GT_PK(2,2)' 301 1285 300 1282 804 283
1982 CONVEX 577 'GT_PK(2,2)' 301 1285 300 1286 538 317
1983 CONVEX 578 'GT_PK(2,2)' 301 1287 318 1286 956 317
1984 CONVEX 579 'GT_PK(2,2)' 301 1283 302 1287 1193 318
1985 CONVEX 580 'GT_PK(2,2)' 320 1288 335 1289 966 321
1986 CONVEX 581 'GT_PK(2,2)' 320 1288 335 1290 963 334
1987 CONVEX 582 'GT_PK(2,2)' 320 1291 319 1290 1190 334
1988 CONVEX 583 'GT_PK(2,2)' 228 1292 227 1293 1204 247
1989 CONVEX 584 'GT_PK(2,2)' 228 1294 209 1295 690 229
1990 CONVEX 585 'GT_PK(2,2)' 228 1294 209 1296 694 208
1991 CONVEX 586 'GT_PK(2,2)' 228 1292 227 1296 1194 208
1992 CONVEX 587 'GT_PK(2,2)' 269 1297 250 1298 973 270
1993 CONVEX 588 'GT_PK(2,2)' 269 1299 288 1298 1227 270
1994 CONVEX 589 'GT_PK(2,2)' 225 1300 206 1301 1239 226
1995 CONVEX 590 'GT_PK(2,2)' 225 1302 245 1303 596 244
1996 CONVEX 591 'GT_PK(2,2)' 225 1301 226 1302 1206 245
1997 CONVEX 592 'GT_PK(2,2)' 166 1304 147 1305 1049 167
1998 CONVEX 593 'GT_PK(2,2)' 166 1306 186 1305 1043 167
1999 CONVEX 594 'GT_PK(2,2)' 166 1306 186 1307 1308 185
2000 CONVEX 595 'GT_PK(2,2)' 203 1309 184 1310 1240 204
2001 CONVEX 596 'GT_PK(2,2)' 203 1311 183 1309 1250 184
2002 CONVEX 597 'GT_PK(2,2)' 203 1310 204 1312 1313 223
2003 CONVEX 598 'GT_PK(2,2)' 203 1311 183 1314 1252 202
2004 CONVEX 599 'GT_PK(2,2)' 203 1315 222 1312 1082 223
2005 CONVEX 600 'GT_PK(2,2)' 203 1314 202 1315 816 222
2006 CONVEX 601 'GT_PK(2,2)' 138 1316 137 1317 633 118
2007 CONVEX 602 'GT_PK(2,2)' 138 1317 118 1318 628 119
2008 CONVEX 603 'GT_PK(2,2)' 138 1319 139 1318 1028 119
2009 CONVEX 604 'GT_PK(2,2)' 157 1320 176 1321 1095 156
2010 CONVEX 605 'GT_PK(2,2)' 157 1322 177 1320 1261 176
2011 CONVEX 606 'GT_PK(2,2)' 157 1321 156 1323 821 137
2012 CONVEX 607 'GT_PK(2,2)' 157 1324 138 1323 1316 137
2013 CONVEX 608 'GT_PK(2,2)' 249 1325 269 1326 1297 250
2014 CONVEX 609 'GT_PK(2,2)' 249 1327 230 1328 1215 229
2015 CONVEX 610 'GT_PK(2,2)' 249 1327 230 1326 1217 250
2016 CONVEX 611 'GT_PK(2,2)' 287 1329 288 1330 1229 305
2017 CONVEX 612 'GT_PK(2,2)' 287 1331 269 1329 1299 288
2018 CONVEX 613 'GT_PK(2,2)' 224 1332 243 1333 1087 223
2019 CONVEX 614 'GT_PK(2,2)' 224 1334 204 1333 1313 223
2020 CONVEX 615 'GT_PK(2,2)' 224 1332 243 1335 809 244
2021 CONVEX 616 'GT_PK(2,2)' 224 1336 225 1335 1303 244
2022 CONVEX 617 'GT_PK(2,2)' 205 1337 206 1338 1238 186
2023 CONVEX 618 'GT_PK(2,2)' 205 1339 225 1337 1300 206
2024 CONVEX 619 'GT_PK(2,2)' 205 1338 186 1340 1308 185
2025 CONVEX 620 'GT_PK(2,2)' 205 1341 224 1339 1336 225
2026 CONVEX 621 'GT_PK(2,2)' 205 1342 204 1340 1242 185
2027 CONVEX 622 'GT_PK(2,2)' 205 1341 224 1342 1334 204
2028 CONVEX 623 'GT_PK(2,2)' 146 1343 166 1344 1304 147
2029 CONVEX 624 'GT_PK(2,2)' 146 1344 147 1345 1046 127
2030 CONVEX 625 'GT_PK(2,2)' 146 1346 126 1345 423 127
2031 CONVEX 626 'GT_PK(2,2)' 146 1347 145 1346 1245 126
2032 CONVEX 627 'GT_PK(2,2)' 165 1348 184 1349 1251 164
2033 CONVEX 628 'GT_PK(2,2)' 165 1350 145 1349 1243 164
2034 CONVEX 629 'GT_PK(2,2)' 165 1348 184 1351 1241 185
2035 CONVEX 630 'GT_PK(2,2)' 165 1352 166 1351 1307 185
2036 CONVEX 631 'GT_PK(2,2)' 165 1353 146 1350 1347 145
2037 CONVEX 632 'GT_PK(2,2)' 165 1353 146 1352 1343 166
2038 CONVEX 633 'GT_PK(2,2)' 158 1354 157 1355 1322 177
2039 CONVEX 634 'GT_PK(2,2)' 158 1356 159 1357 757 178
2040 CONVEX 635 'GT_PK(2,2)' 158 1355 177 1357 1262 178
2041 CONVEX 636 'GT_PK(2,2)' 158 1354 157 1358 1324 138
2042 CONVEX 637 'GT_PK(2,2)' 158 1359 139 1356 1032 159
2043 CONVEX 638 'GT_PK(2,2)' 158 1358 138 1359 1319 139
2044 CONVEX 639 'GT_PK(2,2)' 267 1360 247 1361 1201 266
2045 CONVEX 640 'GT_PK(2,2)' 248 1362 249 1363 1328 229
2046 CONVEX 641 'GT_PK(2,2)' 248 1364 267 1365 1360 247
2047 CONVEX 642 'GT_PK(2,2)' 248 1366 228 1363 1295 229
2048 CONVEX 643 'GT_PK(2,2)' 248 1366 228 1365 1293 247
2049 CONVEX 644 'GT_PK(2,2)' 268 1367 287 1368 1331 269
2050 CONVEX 645 'GT_PK(2,2)' 268 1369 248 1370 1364 267
2051 CONVEX 646 'GT_PK(2,2)' 268 1371 249 1368 1325 269
2052 CONVEX 647 'GT_PK(2,2)' 268 1369 248 1371 1362 249
2053 CONVEX 648 'GT_PK(2,2)' 303 1372 319 1373 1191 302
2054 CONVEX 649 'GT_PK(2,2)' 303 1374 320 1372 1291 319
2055 CONVEX 650 'GT_PK(2,2)' 286 1375 268 1376 1367 287
2056 CONVEX 651 'GT_PK(2,2)' 286 1375 268 1377 1370 267
2057 CONVEX 652 'GT_PK(2,2)' 304 1378 287 1379 1330 305
2058 CONVEX 653 'GT_PK(2,2)' 304 1380 303 1381 1374 320
2059 CONVEX 654 'GT_PK(2,2)' 304 1382 286 1378 1376 287
2060 CONVEX 655 'GT_PK(2,2)' 304 1382 286 1380 1383 303
2061 CONVEX 656 'GT_PK(2,2)' 304 1379 305 1384 980 321
2062 CONVEX 657 'GT_PK(2,2)' 304 1381 320 1384 1289 321
2063 CONVEX 658 'GT_PK(2,2)' 285 1385 286 1386 1383 303
2064 CONVEX 659 'GT_PK(2,2)' 285 1387 284 1388 1284 302
2065 CONVEX 660 'GT_PK(2,2)' 285 1386 303 1388 1373 302
2066 CONVEX 661 'GT_PK(2,2)' 285 1385 286 1389 1377 267
2067 CONVEX 662 'GT_PK(2,2)' 285 1387 284 1390 1187 266
2068 CONVEX 663 'GT_PK(2,2)' 285 1389 267 1390 1361 266
2069
2070 END MESH STRUCTURE DESCRIPTION
+0
-3116
interface/src/scilab/demos/data/donut_regulier.mesh less more
0 % GETFEM MESH FILE
1 % GETFEM VERSION 1.5
2
3
4
5 BEGIN POINTS LIST
6
7 POINT 0 0 19 20
8 POINT 1 0 19.142857142857142 20
9 POINT 2 0 19.285714285714285 20
10 POINT 3 1.2360679774997896 18.804226065180615 20
11 POINT 4 1.2802132624104965 18.94009128179421 20
12 POINT 5 1.3243585473212032 19.075956498407802 20
13 POINT 6 2.3511410091698925 18.23606797749979 20
14 POINT 7 2.4351103309259603 18.351641833839068 20
15 POINT 8 2.5190796526820276 18.467215690178346 20
16 POINT 9 0 18.070073809607919 25.871322893124002
17 POINT 10 0 18.205939026221511 25.915468178034708
18 POINT 11 0 18.341804242835106 25.959613462945413
19 POINT 12 1.2360679774997896 17.883881733177201 25.810825420209156
20 POINT 13 1.2802132624104965 18.013097232775412 25.852810081087192
21 POINT 14 1.3243585473212032 18.142312732373622 25.894794741965224
22 POINT 15 2.3511410091698925 17.343531281602559 25.635254915624209
23 POINT 16 2.4351103309259603 17.453448550787389 25.670969201338497
24 POINT 17 2.5190796526820276 17.563365819972219 25.706683487052782
25 POINT 18 0 15.371322893124002 31.16791979355699
26 POINT 19 0 15.486896749463279 31.251889115313055
27 POINT 20 0 15.602470605802557 31.335858437069124
28 POINT 21 1.2360679774997896 15.212938452799465 31.052846761886887
29 POINT 22 1.2802132624104965 15.322855721984297 31.13270633251188
30 POINT 23 1.3243585473212032 15.432772991169127 31.21256590313687
31 POINT 24 2.3511410091698925 14.753288904374108 30.718891816977404
32 POINT 25 2.4351103309259603 14.846790118258031 30.786824425284202
33 POINT 26 2.5190796526820276 14.940291332141957 30.854757033591
34 POINT 27 0 19.428571428571431 20
35 POINT 28 0 19.571428571428569 20
36 POINT 29 1.3685038322319101 19.211821715021394 20
37 POINT 30 1.4126491171426165 19.347686931634989 20
38 POINT 31 2.6030489744380954 18.582789546517624 20
39 POINT 32 2.6870182961941627 18.698363402856902 20
40 POINT 33 0 18.477669459448702 26.003758747856121
41 POINT 34 0 18.61353467606229 26.047904032766827
42 POINT 35 1.3685038322319101 18.271528231971832 25.936779402843257
43 POINT 36 1.4126491171426165 18.400743731570042 25.978764063721293
44 POINT 37 2.6030489744380954 17.673283089157049 25.742397772767067
45 POINT 38 2.6870182961941627 17.78320035834188 25.778112058481355
46 POINT 39 0 15.718044462141838 31.419827758825193
47 POINT 40 0 15.833618318481113 31.503797080581258
48 POINT 41 1.3685038322319101 15.542690260353956 31.292425473761863
49 POINT 42 1.4126491171426165 15.652607529538788 31.372285044386857
50 POINT 43 2.6030489744380954 15.033792546025881 30.922689641897794
51 POINT 44 2.6870182961941627 15.127293759909806 30.990622250204591
52 POINT 45 0 19.714285714285715 20
53 POINT 46 0 19.857142857142858 20
54 POINT 47 1.4567944020533234 19.483552148248581 20
55 POINT 48 1.5009396869640301 19.619417364862173 20
56 POINT 49 2.7709876179502304 18.81393725919618 20
57 POINT 50 2.8549569397062977 18.929511115535458 20
58 POINT 51 0 18.749399892675886 26.092049317677535
59 POINT 52 0 18.885265109289481 26.13619460258824
60 POINT 53 1.4567944020533234 18.529959231168252 26.020748724599326
61 POINT 54 1.5009396869640301 18.659174730766463 26.062733385477358
62 POINT 55 2.7709876179502304 17.89311762752671 25.81382634419564
63 POINT 56 2.8549569397062977 18.00303489671154 25.849540629909924
64 POINT 57 0 15.949192174820393 31.58776640233733
65 POINT 58 0 16.064766031159671 31.671735724093395
66 POINT 59 1.4567944020533234 15.762524798723618 31.45214461501185
67 POINT 60 1.5009396869640301 15.872442067908446 31.532004185636843
68 POINT 61 2.7709876179502304 15.22079497379373 31.058554858511386
69 POINT 62 2.8549569397062977 15.314296187677655 31.126487466818183
70 POINT 63 3.2360679774997894 17.351141009169893 20
71 POINT 64 3.3516418338390679 17.435110330925962 20
72 POINT 65 3.4672156901783455 17.519079652682027 20
73 POINT 66 3.8042260651806146 16.23606797749979 20
74 POINT 67 3.9400912817942082 16.280213262410498 20
75 POINT 68 4.0759564984078009 16.324358547321204 20
76 POINT 69 3.2360679774997894 16.501915721927094 25.361797443629573
77 POINT 70 3.3516418338390679 16.581775292552088 25.387745391058335
78 POINT 71 3.4672156901783455 16.661634863177078 25.413693338487096
79 POINT 72 3.8042260651806146 15.441418249012251 25.017220926874316
80 POINT 73 3.9400912817942082 15.483402909890287 25.030862570133248
81 POINT 74 4.0759564984078009 15.525387570768318 25.04450421339218
82 POINT 75 3.2360679774997894 14.03736794821452 30.198744795637204
83 POINT 76 3.3516418338390679 14.105300556521318 30.248100724610421
84 POINT 77 3.4672156901783455 14.173233164828112 30.297456653583637
85 POINT 78 3.8042260651806146 13.135254915624213 29.543321312392457
86 POINT 79 3.9400912817942082 13.170969201338499 29.569269259821223
87 POINT 80 4.0759564984078009 13.206683487052784 29.595217207249984
88 POINT 81 3.582789546517624 17.603048974438096 20
89 POINT 82 3.6983634028569021 17.687018296194164 20
90 POINT 83 4.2118217150213946 16.368503832231909 20
91 POINT 84 4.3476869316349882 16.412649117142617 20
92 POINT 85 3.582789546517624 16.741494433802071 25.439641285915862
93 POINT 86 3.6983634028569021 16.821354004427064 25.465589233344623
94 POINT 87 4.2118217150213946 15.567372231646351 25.058145856651112
95 POINT 88 4.3476869316349882 15.609356892524387 25.071787499910045
96 POINT 89 3.582789546517624 14.24116577313491 30.346812582556858
97 POINT 90 3.6983634028569021 14.309098381441707 30.396168511530075
98 POINT 91 4.2118217150213946 13.242397772767069 29.621165154678746
99 POINT 92 4.3476869316349882 13.278112058481355 29.647113102107511
100 POINT 93 3.8139372591961802 17.770987617950233 20
101 POINT 94 3.9295111155354583 17.854956939706298 20
102 POINT 95 4.4835521482485818 16.456794402053323 20
103 POINT 96 4.6194173648621746 16.500939686964031 20
104 POINT 97 3.8139372591961802 16.901213575052058 25.491537180773385
105 POINT 98 3.9295111155354583 16.981073145677051 25.51748512820215
106 POINT 99 4.4835521482485818 15.651341553402419 25.085429143168977
107 POINT 100 4.6194173648621746 15.693326214280455 25.099070786427909
108 POINT 101 3.8139372591961802 14.377030989748505 30.445524440503291
109 POINT 102 3.9295111155354583 14.444963598055299 30.494880369476512
110 POINT 103 4.4835521482485818 13.31382634419564 29.673061049536273
111 POINT 104 4.6194173648621746 13.349540629909926 29.699008996965034
112 POINT 105 4 15 20
113 POINT 106 4.1428571428571432 15 20
114 POINT 107 4.2857142857142856 15 20
115 POINT 108 3.8042260651806146 13.76393202250021 20
116 POINT 109 3.9400912817942082 13.719786737589503 20
117 POINT 110 4.0759564984078009 13.675641452678796 20
118 POINT 111 4 14.265847744427305 24.635254915624209
119 POINT 112 4.1428571428571432 14.265847744427305 24.635254915624209
120 POINT 113 4.2857142857142856 14.265847744427305 24.635254915624209
121 POINT 114 3.8042260651806146 13.090277239842358 24.253288904374106
122 POINT 115 3.9400912817942082 13.048292578964324 24.239647261115174
123 POINT 116 4.0759564984078009 13.006307918086291 24.226005617856242
124 POINT 117 4 12.135254915624213 28.816778784387097
125 POINT 118 4.1428571428571432 12.135254915624213 28.816778784387097
126 POINT 119 4.2857142857142856 12.135254915624213 28.816778784387097
127 POINT 120 3.8042260651806146 11.135254915624211 28.090236256381736
128 POINT 121 3.9400912817942082 11.099540629909926 28.064288308952975
129 POINT 122 4.0759564984078009 11.06382634419564 28.038340361524209
130 POINT 123 4.4285714285714288 15 20
131 POINT 124 4.5714285714285712 15 20
132 POINT 125 4.2118217150213946 13.631496167768091 20
133 POINT 126 4.3476869316349882 13.587350882857384 20
134 POINT 127 4.4285714285714288 14.265847744427305 24.635254915624209
135 POINT 128 4.5714285714285712 14.265847744427305 24.635254915624209
136 POINT 129 4.2118217150213946 12.964323257208259 24.212363974597309
137 POINT 130 4.3476869316349882 12.922338596330224 24.198722331338377
138 POINT 131 4.4285714285714288 12.135254915624213 28.816778784387097
139 POINT 132 4.5714285714285712 12.135254915624213 28.816778784387097
140 POINT 133 4.2118217150213946 11.028112058481355 28.012392414095448
141 POINT 134 4.3476869316349882 10.99239777276707 27.986444466666686
142 POINT 135 4.7142857142857144 15 20
143 POINT 136 4.8571428571428568 15 20
144 POINT 137 4.4835521482485818 13.543205597946677 20
145 POINT 138 4.6194173648621746 13.499060313035971 20
146 POINT 139 4.7142857142857144 14.265847744427305 24.635254915624209
147 POINT 140 4.8571428571428568 14.265847744427305 24.635254915624209
148 POINT 141 4.4835521482485818 12.88035393545219 24.185080688079445
149 POINT 142 4.6194173648621746 12.838369274574156 24.171439044820513
150 POINT 143 4.7142857142857144 12.135254915624213 28.816778784387097
151 POINT 144 4.8571428571428568 12.135254915624213 28.816778784387097
152 POINT 145 4.4835521482485818 10.956683487052784 27.960496519237921
153 POINT 146 4.6194173648621746 10.920969201338497 27.93454857180916
154 POINT 147 3.2360679774997898 12.648858990830107 20
155 POINT 148 3.3516418338390683 12.56488966907404 20
156 POINT 149 3.467215690178346 12.480920347317973 20
157 POINT 150 2.351141009169893 11.76393202250021 20
158 POINT 151 2.4351103309259607 11.648358166160932 20
159 POINT 152 2.519079652682028 11.532784309821654 20
160 POINT 153 3.2360679774997898 12.029779766927513 23.908712387618849
161 POINT 154 3.3516418338390683 11.949920196302521 23.882764440190087
162 POINT 155 3.467215690178346 11.87006062567753 23.856816492761325
163 POINT 156 2.351141009169893 11.188164207252051 23.635254915624209
164 POINT 157 2.4351103309259607 11.07824693806722 23.599540629909924
165 POINT 158 2.519079652682028 10.96832966888239 23.56382634419564
166 POINT 159 3.2360679774997898 10.233141883033904 27.43481277313699
167 POINT 160 3.3516418338390683 10.165209274727108 27.385456844163773
168 POINT 161 3.467215690178346 10.097276666420312 27.336100915190556
169 POINT 162 2.351141009169893 9.517220926874316 26.91466575179679
170 POINT 163 2.4351103309259607 9.4237197129903922 26.846733143489992
171 POINT 164 2.519079652682028 9.3302184991064667 26.778800535183198
172 POINT 165 3.5827895465176245 12.396951025561904 20
173 POINT 166 3.6983634028569026 12.312981703805837 20
174 POINT 167 2.6030489744380958 11.417210453482376 20
175 POINT 168 2.6870182961941631 11.301636597143098 20
176 POINT 169 3.5827895465176245 11.790201055052536 23.83086854533256
177 POINT 170 3.6983634028569026 11.710341484427545 23.804920597903799
178 POINT 171 2.6030489744380958 10.85841239969756 23.528112058481355
179 POINT 172 2.6870182961941631 10.74849513051273 23.492397772767067
180 POINT 173 3.5827895465176245 10.029344058113514 27.286744986217336
181 POINT 174 3.6983634028569026 9.9614114498067181 27.237389057244119
182 POINT 175 2.6030489744380958 9.236717285222543 26.7108679268764
183 POINT 176 2.6870182961941631 9.1432160713386175 26.642935318569602
184 POINT 177 3.8139372591961811 12.22901238204977 20
185 POINT 178 3.9295111155354587 12.145043060293702 20
186 POINT 179 2.7709876179502313 11.18606274080382 20
187 POINT 180 2.8549569397062986 11.070488884464542 20
188 POINT 181 3.8139372591961811 11.630481913802553 23.778972650475037
189 POINT 182 3.9295111155354587 11.55062234317756 23.753024703046272
190 POINT 183 2.7709876179502313 10.638577861327899 23.456683487052782
191 POINT 184 2.8549569397062986 10.528660592143069 23.420969201338497
192 POINT 185 3.8139372591961811 9.8934788414999222 27.188033128270902
193 POINT 186 3.9295111155354587 9.8255462331931245 27.138677199297682
194 POINT 187 2.7709876179502313 9.0497148574546937 26.575002710262808
195 POINT 188 2.8549569397062986 8.9562136435707682 26.50707010195601
196 POINT 189 1.23606797749979 11.195773934819385 20
197 POINT 190 1.2802132624104969 11.059908718205792 20
198 POINT 191 1.3243585473212036 10.924043501592198 20
199 POINT 192 4.8985871965894128e-16 11 20
200 POINT 193 5.0735367393247495e-16 10.857142857142858 20
201 POINT 194 5.2484862820600851e-16 10.714285714285715 20
202 POINT 195 1.23606797749979 10.64781375567741 23.459684411039266
203 POINT 196 1.2802132624104969 10.518598256079198 23.41769975016123
204 POINT 197 1.3243585473212036 10.389382756480988 23.375715089283197
205 POINT 198 4.8985871965894128e-16 10.46162167924669 23.399186938124423
206 POINT 199 5.0735367393247495e-16 10.325756462633096 23.355041653213714
207 POINT 200 5.2484862820600851e-16 10.189891246019505 23.310896368303009
208 POINT 201 1.23606797749979 9.0575713784489587 26.580710806887307
209 POINT 202 1.2802132624104969 8.9476541092641266 26.500851236262314
210 POINT 203 1.3243585473212036 8.8377368400792964 26.420991665637324
211 POINT 204 4.8985871965894128e-16 8.8991869381244229 26.465637775217203
212 POINT 205 5.0735367393247495e-16 8.7836130817851448 26.381668453461138
213 POINT 206 5.2484862820600851e-16 8.6680392254458667 26.29769913170507
214 POINT 207 1.3685038322319105 10.788178284978606 20
215 POINT 208 1.4126491171426172 10.652313068365011 20
216 POINT 209 5.4234358247954217e-16 10.571428571428571 20
217 POINT 210 5.5983853675307574e-16 10.428571428571429 20
218 POINT 211 1.3685038322319105 10.260167256882779 23.333730428405165
219 POINT 212 1.4126491171426172 10.130951757284565 23.291745767527129
220 POINT 213 5.4234358247954217e-16 10.054026029405909 23.2667510833923
221 POINT 214 5.5983853675307574e-16 9.9181608127923173 23.222605798481595
222 POINT 215 1.3685038322319105 8.7278195708944679 26.34113209501233
223 POINT 216 1.4126491171426172 8.6179023017096359 26.261272524387337
224 POINT 217 5.4234358247954217e-16 8.5524653691065868 26.213729809949001
225 POINT 218 5.5983853675307574e-16 8.4368915127673088 26.129760488192936
226 POINT 219 1.4567944020533239 10.516447851751419 20
227 POINT 220 1.5009396869640306 10.380582635137825 20
228 POINT 221 5.773334910266094e-16 10.285714285714285 20
229 POINT 222 5.9482844530014297e-16 10.142857142857142 20
230 POINT 223 1.4567944020533239 10.001736257686357 23.249761106649096
231 POINT 224 1.5009396869640306 9.8725207580881467 23.20777644577106
232 POINT 225 5.773334910266094e-16 9.7822955961787219 23.178460513570887
233 POINT 226 5.9482844530014297e-16 9.6464303795651301 23.134315228660181
234 POINT 227 1.4567944020533239 8.5079850325248056 26.181412953762344
235 POINT 228 1.5009396869640306 8.3980677633399754 26.10155338313735
236 POINT 229 5.773334910266094e-16 8.3213176564280307 26.045791166436864
237 POINT 230 5.9482844530014297e-16 8.2057438000887526 25.961821844680799
238 POINT 231 -1.2360679774997874 11.195773934819385 20
239 POINT 232 -1.2802132624104943 11.059908718205792 20
240 POINT 233 -1.3243585473212007 10.924043501592198 20
241 POINT 234 -2.3511410091698921 11.76393202250021 20
242 POINT 235 -2.4351103309259599 11.648358166160932 20
243 POINT 236 -2.5190796526820272 11.532784309821654 20
244 POINT 237 -1.2360679774997874 10.64781375567741 23.459684411039266
245 POINT 238 -1.2802132624104943 10.518598256079198 23.41769975016123
246 POINT 239 -1.3243585473212007 10.389382756480988 23.375715089283197
247 POINT 240 -2.3511410091698921 11.188164207252051 23.635254915624209
248 POINT 241 -2.4351103309259599 11.07824693806722 23.599540629909924
249 POINT 242 -2.5190796526820272 10.96832966888239 23.56382634419564
250 POINT 243 -1.2360679774997874 9.0575713784489587 26.580710806887307
251 POINT 244 -1.2802132624104943 8.9476541092641266 26.500851236262314
252 POINT 245 -1.3243585473212007 8.8377368400792964 26.420991665637324
253 POINT 246 -2.3511410091698921 9.517220926874316 26.91466575179679
254 POINT 247 -2.4351103309259599 9.4237197129903922 26.846733143489992
255 POINT 248 -2.5190796526820272 9.3302184991064667 26.778800535183198
256 POINT 249 -1.3685038322319074 10.788178284978605 20
257 POINT 250 -1.4126491171426141 10.652313068365011 20
258 POINT 251 -2.6030489744380949 11.417210453482376 20
259 POINT 252 -2.6870182961941622 11.301636597143098 20
260 POINT 253 -1.3685038322319074 10.260167256882777 23.333730428405161
261 POINT 254 -1.4126491171426141 10.130951757284565 23.291745767527129
262 POINT 255 -2.6030489744380949 10.85841239969756 23.528112058481355
263 POINT 256 -2.6870182961941622 10.74849513051273 23.492397772767067
264 POINT 257 -1.3685038322319074 8.7278195708944661 26.34113209501233
265 POINT 258 -1.4126491171426141 8.6179023017096359 26.261272524387337
266 POINT 259 -2.6030489744380949 9.236717285222543 26.7108679268764
267 POINT 260 -2.6870182961941622 9.1432160713386175 26.642935318569602
268 POINT 261 -1.4567944020533208 10.516447851751419 20
269 POINT 262 -1.5009396869640275 10.380582635137825 20
270 POINT 263 -2.77098761795023 11.18606274080382 20
271 POINT 264 -2.8549569397062973 11.070488884464542 20
272 POINT 265 -1.4567944020533208 10.001736257686357 23.249761106649096
273 POINT 266 -1.5009396869640275 9.8725207580881467 23.20777644577106
274 POINT 267 -2.77098761795023 10.638577861327899 23.456683487052782
275 POINT 268 -2.8549569397062973 10.528660592143069 23.420969201338497
276 POINT 269 -1.4567944020533208 8.5079850325248056 26.181412953762344
277 POINT 270 -1.5009396869640275 8.3980677633399754 26.10155338313735
278 POINT 271 -2.77098761795023 9.0497148574546937 26.575002710262808
279 POINT 272 -2.8549569397062973 8.9562136435707682 26.50707010195601
280 POINT 273 -3.2360679774997894 12.648858990830107 20
281 POINT 274 -3.3516418338390679 12.56488966907404 20
282 POINT 275 -3.4672156901783455 12.480920347317973 20
283 POINT 276 -3.8042260651806141 13.76393202250021 20
284 POINT 277 -3.9400912817942078 13.719786737589503 20
285 POINT 278 -4.0759564984078009 13.675641452678796 20
286 POINT 279 -3.2360679774997894 12.029779766927513 23.908712387618849
287 POINT 280 -3.3516418338390679 11.949920196302521 23.882764440190087
288 POINT 281 -3.4672156901783455 11.87006062567753 23.856816492761325
289 POINT 282 -3.8042260651806141 13.090277239842358 24.253288904374106
290 POINT 283 -3.9400912817942078 13.048292578964324 24.239647261115174
291 POINT 284 -4.0759564984078009 13.006307918086291 24.226005617856242
292 POINT 285 -3.2360679774997894 10.233141883033904 27.43481277313699
293 POINT 286 -3.3516418338390679 10.165209274727108 27.385456844163773
294 POINT 287 -3.4672156901783455 10.097276666420312 27.336100915190556
295 POINT 288 -3.8042260651806141 11.135254915624211 28.090236256381736
296 POINT 289 -3.9400912817942078 11.099540629909926 28.064288308952975
297 POINT 290 -4.0759564984078009 11.06382634419564 28.038340361524209
298 POINT 291 -3.582789546517624 12.396951025561904 20
299 POINT 292 -3.6983634028569021 12.312981703805837 20
300 POINT 293 -4.2118217150213946 13.631496167768089 20
301 POINT 294 -4.3476869316349873 13.587350882857383 20
302 POINT 295 -3.582789546517624 11.790201055052536 23.83086854533256
303 POINT 296 -3.6983634028569021 11.710341484427545 23.804920597903799
304 POINT 297 -4.2118217150213946 12.964323257208257 24.212363974597309
305 POINT 298 -4.3476869316349873 12.922338596330222 24.198722331338377
306 POINT 299 -3.582789546517624 10.029344058113514 27.286744986217336
307 POINT 300 -3.6983634028569021 9.9614114498067181 27.237389057244119
308 POINT 301 -4.2118217150213946 11.028112058481355 28.012392414095448
309 POINT 302 -4.3476869316349873 10.992397772767069 27.986444466666683
310 POINT 303 -3.8139372591961802 12.229012382049769 20
311 POINT 304 -3.9295111155354583 12.145043060293702 20
312 POINT 305 -4.4835521482485809 13.543205597946676 20
313 POINT 306 -4.6194173648621737 13.499060313035969 20
314 POINT 307 -3.8139372591961802 11.630481913802551 23.778972650475037
315 POINT 308 -3.9295111155354583 11.55062234317756 23.753024703046272
316 POINT 309 -4.4835521482485809 12.880353935452188 24.185080688079445
317 POINT 310 -4.6194173648621737 12.838369274574154 24.171439044820509
318 POINT 311 -3.8139372591961802 9.8934788414999204 27.188033128270902
319 POINT 312 -3.9295111155354583 9.8255462331931245 27.138677199297682
320 POINT 313 -4.4835521482485809 10.956683487052782 27.960496519237921
321 POINT 314 -4.6194173648621737 10.920969201338497 27.93454857180916
322 POINT 315 -4 15 20
323 POINT 316 -4.1428571428571432 15 20
324 POINT 317 -4.2857142857142856 15 20
325 POINT 318 -3.8042260651806146 16.23606797749979 20
326 POINT 319 -3.9400912817942082 16.280213262410495 20
327 POINT 320 -4.0759564984078009 16.324358547321204 20
328 POINT 321 -4 14.265847744427305 24.635254915624209
329 POINT 322 -4.1428571428571432 14.265847744427305 24.635254915624209
330 POINT 323 -4.2857142857142856 14.265847744427305 24.635254915624209
331 POINT 324 -3.8042260651806146 15.441418249012251 25.017220926874316
332 POINT 325 -3.9400912817942082 15.483402909890284 25.030862570133248
333 POINT 326 -4.0759564984078009 15.525387570768318 25.04450421339218
334 POINT 327 -4 12.135254915624213 28.816778784387097
335 POINT 328 -4.1428571428571432 12.135254915624213 28.816778784387097
336 POINT 329 -4.2857142857142856 12.135254915624213 28.816778784387097
337 POINT 330 -3.8042260651806146 13.135254915624213 29.543321312392457
338 POINT 331 -3.9400912817942082 13.170969201338496 29.569269259821219
339 POINT 332 -4.0759564984078009 13.206683487052784 29.595217207249984
340 POINT 333 -4.4285714285714288 15 20
341 POINT 334 -4.5714285714285712 15 20
342 POINT 335 -4.2118217150213946 16.368503832231909 20
343 POINT 336 -4.3476869316349882 16.412649117142617 20
344 POINT 337 -4.4285714285714288 14.265847744427305 24.635254915624209
345 POINT 338 -4.5714285714285712 14.265847744427305 24.635254915624209
346 POINT 339 -4.2118217150213946 15.567372231646351 25.058145856651112
347 POINT 340 -4.3476869316349882 15.609356892524387 25.071787499910045
348 POINT 341 -4.4285714285714288 12.135254915624213 28.816778784387097
349 POINT 342 -4.5714285714285712 12.135254915624213 28.816778784387097
350 POINT 343 -4.2118217150213946 13.242397772767069 29.621165154678746
351 POINT 344 -4.3476869316349882 13.278112058481355 29.647113102107511
352 POINT 345 -4.7142857142857144 15 20
353 POINT 346 -4.8571428571428568 14.999999999999998 20
354 POINT 347 -4.4835521482485818 16.456794402053323 20
355 POINT 348 -4.6194173648621746 16.500939686964028 20
356 POINT 349 -4.7142857142857144 14.265847744427305 24.635254915624209
357 POINT 350 -4.8571428571428568 14.265847744427303 24.635254915624209
358 POINT 351 -4.4835521482485818 15.651341553402419 25.085429143168977
359 POINT 352 -4.6194173648621746 15.693326214280452 25.099070786427909
360 POINT 353 -4.7142857142857144 12.135254915624213 28.816778784387097
361 POINT 354 -4.8571428571428568 12.135254915624211 28.816778784387097
362 POINT 355 -4.4835521482485818 13.31382634419564 29.673061049536273
363 POINT 356 -4.6194173648621746 13.349540629909924 29.699008996965034
364 POINT 357 -3.2360679774997898 17.351141009169893 20
365 POINT 358 -3.3516418338390683 17.435110330925959 20
366 POINT 359 -3.467215690178346 17.519079652682027 20
367 POINT 360 -2.3511410091698934 18.23606797749979 20
368 POINT 361 -2.4351103309259612 18.351641833839068 20
369 POINT 362 -2.5190796526820285 18.467215690178346 20
370 POINT 363 -3.2360679774997898 16.501915721927094 25.361797443629573
371 POINT 364 -3.3516418338390683 16.581775292552084 25.387745391058335
372 POINT 365 -3.467215690178346 16.661634863177078 25.413693338487096
373 POINT 366 -2.3511410091698934 17.343531281602559 25.635254915624209
374 POINT 367 -2.4351103309259612 17.453448550787389 25.670969201338497
375 POINT 368 -2.5190796526820285 17.563365819972219 25.706683487052782
376 POINT 369 -3.2360679774997898 14.03736794821452 30.198744795637204
377 POINT 370 -3.3516418338390683 14.105300556521314 30.248100724610417
378 POINT 371 -3.467215690178346 14.173233164828112 30.297456653583637
379 POINT 372 -2.3511410091698934 14.753288904374108 30.718891816977404
380 POINT 373 -2.4351103309259612 14.846790118258031 30.786824425284202
381 POINT 374 -2.5190796526820285 14.940291332141957 30.854757033591
382 POINT 375 -3.5827895465176245 17.603048974438096 20
383 POINT 376 -3.6983634028569026 17.687018296194161 20
384 POINT 377 -2.6030489744380962 18.582789546517624 20
385 POINT 378 -2.687018296194164 18.698363402856902 20
386 POINT 379 -3.5827895465176245 16.741494433802071 25.439641285915862
387 POINT 380 -3.6983634028569026 16.821354004427061 25.465589233344623
388 POINT 381 -2.6030489744380962 17.673283089157049 25.742397772767067
389 POINT 382 -2.687018296194164 17.78320035834188 25.778112058481355
390 POINT 383 -3.5827895465176245 14.24116577313491 30.346812582556858
391 POINT 384 -3.6983634028569026 14.309098381441704 30.396168511530071
392 POINT 385 -2.6030489744380962 15.033792546025881 30.922689641897794
393 POINT 386 -2.687018296194164 15.127293759909806 30.990622250204591
394 POINT 387 -3.8139372591961811 17.77098761795023 20
395 POINT 388 -3.9295111155354587 17.854956939706298 20
396 POINT 389 -2.7709876179502317 18.81393725919618 20
397 POINT 390 -2.854956939706299 18.929511115535458 20
398 POINT 391 -3.8139372591961811 16.901213575052058 25.491537180773385
399 POINT 392 -3.9295111155354587 16.981073145677051 25.51748512820215
400 POINT 393 -2.7709876179502317 17.89311762752671 25.81382634419564
401 POINT 394 -2.854956939706299 18.00303489671154 25.849540629909924
402 POINT 395 -3.8139372591961811 14.377030989748501 30.445524440503291
403 POINT 396 -3.9295111155354587 14.444963598055299 30.494880369476512
404 POINT 397 -2.7709876179502317 15.22079497379373 31.058554858511386
405 POINT 398 -2.854956939706299 15.314296187677655 31.126487466818183
406 POINT 399 -1.2360679774997905 18.804226065180615 20
407 POINT 400 -1.2802132624104974 18.940091281794206 20
408 POINT 401 -1.3243585473212041 19.075956498407802 20
409 POINT 402 -1.2360679774997905 17.883881733177201 25.810825420209156
410 POINT 403 -1.2802132624104974 18.013097232775408 25.852810081087192
411 POINT 404 -1.3243585473212041 18.142312732373622 25.894794741965224
412 POINT 405 -1.2360679774997905 15.212938452799465 31.052846761886887
413 POINT 406 -1.2802132624104974 15.322855721984295 31.13270633251188
414 POINT 407 -1.3243585473212041 15.432772991169127 31.21256590313687
415 POINT 408 -1.368503832231911 19.211821715021394 20
416 POINT 409 -1.4126491171426176 19.347686931634989 20
417 POINT 410 -1.368503832231911 18.271528231971832 25.936779402843257
418 POINT 411 -1.4126491171426176 18.400743731570042 25.978764063721293
419 POINT 412 -1.368503832231911 15.542690260353956 31.292425473761863
420 POINT 413 -1.4126491171426176 15.652607529538788 31.372285044386857
421 POINT 414 -1.4567944020533246 19.483552148248581 20
422 POINT 415 -1.5009396869640312 19.619417364862173 20
423 POINT 416 -1.4567944020533246 18.529959231168252 26.020748724599326
424 POINT 417 -1.5009396869640312 18.659174730766463 26.062733385477358
425 POINT 418 -1.4567944020533246 15.762524798723618 31.45214461501185
426 POINT 419 -1.5009396869640312 15.872442067908446 31.532004185636843
427 POINT 420 0 11.167919793556992 35.371322893124002
428 POINT 421 0 11.251889115313059 35.486896749463277
429 POINT 422 0 11.335858437069126 35.602470605802552
430 POINT 423 1.2360679774997896 11.052846761886888 35.212938452799463
431 POINT 424 1.2802132624104965 11.132706332511884 35.322855721984297
432 POINT 425 1.3243585473212032 11.212565903136875 35.432772991169124
433 POINT 426 2.3511410091698925 10.718891816977406 34.753288904374102
434 POINT 427 2.4351103309259603 10.786824425284204 34.846790118258028
435 POINT 428 2.5190796526820276 10.854757033591 34.940291332141953
436 POINT 429 0 5.8713228931240016 38.070073809607919
437 POINT 430 0 5.9154681780347085 38.205939026221515
438 POINT 431 0 5.9596134629454145 38.34180424283511
439 POINT 432 1.2360679774997896 5.8108254202091585 37.883881733177205
440 POINT 433 1.2802132624104965 5.8528100810871928 38.013097232775408
441 POINT 434 1.3243585473212032 5.8947947419652262 38.142312732373625
442 POINT 435 2.3511410091698925 5.6352549156242118 37.343531281602559
443 POINT 436 2.4351103309259603 5.6709692013384974 37.453448550787385
444 POINT 437 2.5190796526820276 5.7066834870527829 37.563365819972219
445 POINT 438 0 11.419827758825196 35.718044462141833
446 POINT 439 0 11.503797080581261 35.833618318481115
447 POINT 440 1.3685038322319101 11.292425473761867 35.54269026035395
448 POINT 441 1.4126491171426165 11.37228504438686 35.652607529538784
449 POINT 442 2.6030489744380954 10.922689641897795 35.033792546025879
450 POINT 443 2.6870182961941627 10.990622250204593 35.127293759909804
451 POINT 444 0 6.0037587478561223 38.477669459448705
452 POINT 445 0 6.0479040327668283 38.613534676062287
453 POINT 446 1.3685038322319101 5.9367794028432597 38.271528231971828
454 POINT 447 1.4126491171426165 5.978764063721294 38.400743731570046
455 POINT 448 2.6030489744380954 5.7423977727670685 37.673283089157053
456 POINT 449 2.6870182961941627 5.778112058481355 37.78320035834188
457 POINT 450 0 11.58776640233733 35.949192174820389
458 POINT 451 0 11.671735724093397 36.064766031159664
459 POINT 452 1.4567944020533234 11.452144615011852 35.762524798723618
460 POINT 453 1.5009396869640301 11.532004185636843 35.872442067908445
461 POINT 454 2.7709876179502304 11.058554858511389 35.22079497379373
462 POINT 455 2.8549569397062977 11.126487466818187 35.314296187677655
463 POINT 456 0 6.0920493176775361 38.749399892675882
464 POINT 457 0 6.1361946025882421 38.885265109289477
465 POINT 458 1.4567944020533234 6.0207487245993274 38.529959231168249
466 POINT 459 1.5009396869640301 6.06273338547736 38.659174730766466
467 POINT 460 2.7709876179502304 5.8138263441956406 37.893117627526706
468 POINT 461 2.8549569397062977 5.8495406299099262 38.00303489671154
469 POINT 462 3.2360679774997894 10.198744795637205 34.037367948214516
470 POINT 463 3.3516418338390679 10.248100724610424 34.105300556521314
471 POINT 464 3.4672156901783455 10.297456653583639 34.173233164828112
472 POINT 465 3.8042260651806146 9.5433213123924592 33.135254915624209
473 POINT 466 3.9400912817942082 9.5692692598212243 33.170969201338494
474 POINT 467 4.0759564984078009 9.5952172072499859 33.206683487052786
475 POINT 468 3.2360679774997894 5.3617974436295732 36.501915721927091
476 POINT 469 3.3516418338390679 5.3877453910583366 36.581775292552088
477 POINT 470 3.4672156901783455 5.4136933384870982 36.661634863177078
478 POINT 471 3.8042260651806146 5.0172209268743169 35.441418249012251
479 POINT 472 3.9400912817942082 5.0308625701332499 35.483402909890287
480 POINT 473 4.0759564984078009 5.044504213392182 35.525387570768316
481 POINT 474 3.582789546517624 10.346812582556858 34.24116577313491
482 POINT 475 3.6983634028569021 10.396168511530078 34.309098381441707
483 POINT 476 4.2118217150213946 9.6211651546787476 33.242397772767063
484 POINT 477 4.3476869316349882 9.6471131021075109 33.278112058481355
485 POINT 478 3.582789546517624 5.4396412859158616 36.741494433802075
486 POINT 479 3.6983634028569021 5.465589233344625 36.821354004427064
487 POINT 480 4.2118217150213946 5.0581458566511133 35.567372231646353
488 POINT 481 4.3476869316349882 5.0717874999100463 35.609356892524389
489 POINT 482 3.8139372591961802 10.445524440503297 34.377030989748505
490 POINT 483 3.9295111155354583 10.494880369476512 34.444963598055296
491 POINT 484 4.4835521482485818 9.6730610495362743 33.31382634419564
492 POINT 485 4.6194173648621746 9.6990089969650377 33.349540629909924
493 POINT 486 3.8139372591961802 5.4915371807733884 36.901213575052054
494 POINT 487 3.9295111155354583 5.51748512820215 36.981073145677051
495 POINT 488 4.4835521482485818 5.0854291431689784 35.651341553402418
496 POINT 489 4.6194173648621746 5.0990707864279115 35.693326214280454
497 POINT 490 4 8.8167787843870986 32.135254915624209
498 POINT 491 4.1428571428571432 8.8167787843870986 32.135254915624209
499 POINT 492 4.2857142857142856 8.8167787843870986 32.135254915624209
500 POINT 493 3.8042260651806146 8.090236256381738 31.135254915624209
501 POINT 494 3.9400912817942082 8.0642883089529747 31.099540629909924
502 POINT 495 4.0759564984078009 8.0383403615242113 31.06382634419564
503 POINT 496 4 4.6352549156242118 34.265847744427305
504 POINT 497 4.1428571428571432 4.6352549156242118 34.265847744427305
505 POINT 498 4.2857142857142856 4.6352549156242118 34.265847744427305
506 POINT 499 3.8042260651806146 4.2532889043741067 33.090277239842358
507 POINT 500 3.9400912817942082 4.2396472611151745 33.048292578964322
508 POINT 501 4.0759564984078009 4.2260056178562415 33.006307918086293
509 POINT 502 4.4285714285714288 8.8167787843870986 32.135254915624209
510 POINT 503 4.5714285714285712 8.8167787843870986 32.135254915624209
511 POINT 504 4.2118217150213946 8.0123924140954497 31.028112058481355
512 POINT 505 4.3476869316349882 7.9864444666666872 30.99239777276707
513 POINT 506 4.4285714285714288 4.6352549156242118 34.265847744427305
514 POINT 507 4.5714285714285712 4.6352549156242118 34.265847744427305
515 POINT 508 4.2118217150213946 4.2123639745973103 32.964323257208257
516 POINT 509 4.3476869316349882 4.1987223313383772 32.922338596330221
517 POINT 510 4.7142857142857144 8.8167787843870986 32.135254915624209
518 POINT 511 4.8571428571428568 8.8167787843870986 32.135254915624209
519 POINT 512 4.4835521482485818 7.9604965192379238 30.956683487052782
520 POINT 513 4.6194173648621746 7.9345485718091604 30.920969201338497
521 POINT 514 4.7142857142857144 4.6352549156242118 34.265847744427305
522 POINT 515 4.8571428571428568 4.6352549156242118 34.265847744427305
523 POINT 516 4.4835521482485818 4.1850806880794451 32.880353935452192
524 POINT 517 4.6194173648621746 4.171439044820513 32.838369274574156
525 POINT 518 3.2360679774997898 7.4348127731369926 30.233141883033902
526 POINT 519 3.3516418338390683 7.3854568441637749 30.165209274727104
527 POINT 520 3.467215690178346 7.3361009151905572 30.09727666642031
528 POINT 521 2.351141009169893 6.9146657517967913 29.517220926874316
529 POINT 522 2.4351103309259607 6.8467331434899945 29.42371971299039
530 POINT 523 2.519079652682028 6.7788005351831977 29.330218499106465
531 POINT 524 3.2360679774997898 3.9087123876188503 32.029779766927511
532 POINT 525 3.3516418338390683 3.8827644401900878 31.949920196302521
533 POINT 526 3.467215690178346 3.8568164927613253 31.870060625677532
534 POINT 527 2.351141009169893 3.6352549156242118 31.188164207252051
535 POINT 528 2.4351103309259607 3.5995406299099262 31.07824693806722
536 POINT 529 2.519079652682028 3.5638263441956402 30.96832966888239
537 POINT 530 3.5827895465176245 7.2867449862173386 30.029344058113512
538 POINT 531 3.6983634028569026 7.2373890572441208 29.961411449806718
539 POINT 532 2.6030489744380958 6.7108679268764009 29.236717285222539
540 POINT 533 2.6870182961941631 6.642935318569605 29.143216071338617
541 POINT 534 3.5827895465176245 3.8308685453325619 31.790201055052535
542 POINT 535 3.6983634028569026 3.8049205979037994 31.710341484427545
543 POINT 536 2.6030489744380958 3.5281120584813546 30.85841239969756
544 POINT 537 2.6870182961941631 3.492397772767069 30.74849513051273
545 POINT 538 3.8139372591961811 7.188033128270904 29.89347884149992
546 POINT 539 3.9295111155354587 7.1386771992976845 29.825546233193123
547 POINT 540 2.7709876179502313 6.5750027102628081 29.049714857454692
548 POINT 541 2.8549569397062986 6.5070701019560113 28.956213643570766
549 POINT 542 3.8139372591961811 3.7789726504750365 31.630481913802555
550 POINT 543 3.9295111155354587 3.7530247030462736 31.550622343177558
551 POINT 544 2.7709876179502313 3.4566834870527834 30.638577861327899
552 POINT 545 2.8549569397062986 3.4209692013384974 30.528660592143069
553 POINT 546 1.23606797749979 6.5807108068873088 29.057571378448955
554 POINT 547 1.2802132624104969 6.5008512362623154 28.947654109264128
555 POINT 548 1.3243585473212036 6.4209916656373229 28.837736840079295
556 POINT 549 4.8985871965894128e-16 6.4656377752172061 28.899186938124423
557 POINT 550 5.0735367393247495e-16 6.3816684534611383 28.783613081785141
558 POINT 551 5.2484862820600851e-16 6.2976991317050715 28.668039225445867
559 POINT 552 1.23606797749979 3.4596844110392655 30.647813755677412
560 POINT 553 1.2802132624104969 3.4176997501612316 30.518598256079198
561 POINT 554 1.3243585473212036 3.3757150892831977 30.389382756480988
562 POINT 555 4.8985871965894128e-16 3.399186938124422 30.46162167924669
563 POINT 556 5.0735367393247495e-16 3.3550416532137155 30.325756462633095
564 POINT 557 5.2484862820600851e-16 3.3108963683030086 30.189891246019506
565 POINT 558 1.3685038322319105 6.3411320950123313 28.727819570894468
566 POINT 559 1.4126491171426172 6.2612725243873379 28.617902301709634
567 POINT 560 5.4234358247954217e-16 6.2137298099490028 28.552465369106585
568 POINT 561 5.5983853675307574e-16 6.1297604881929351 28.436891512767311
569 POINT 562 1.3685038322319105 3.3337304284051643 30.260167256882781
570 POINT 563 1.4126491171426172 3.29174576752713 30.130951757284564
571 POINT 564 5.4234358247954217e-16 3.2667510833923017 30.054026029405911
572 POINT 565 5.5983853675307574e-16 3.2226057984815948 29.918160812792316
573 POINT 566 1.4567944020533239 6.1814129537623463 28.507985032524807
574 POINT 567 1.5009396869640306 6.1015533831373538 28.398067763339974
575 POINT 568 5.773334910266094e-16 6.0457911664368673 28.321317656428029
576 POINT 569 5.9482844530014297e-16 5.9618218446807996 28.205743800088751
577 POINT 570 1.4567944020533239 3.2497611066490966 30.001736257686357
578 POINT 571 1.5009396869640306 3.2077764457710627 29.872520758088147
579 POINT 572 5.773334910266094e-16 3.1784605135708879 29.78229559617872
580 POINT 573 5.9482844530014297e-16 3.134315228660181 29.646430379565132
581 POINT 574 -1.2360679774997874 6.5807108068873088 29.057571378448955
582 POINT 575 -1.2802132624104943 6.5008512362623154 28.947654109264128
583 POINT 576 -1.3243585473212007 6.4209916656373229 28.837736840079295
584 POINT 577 -2.3511410091698921 6.9146657517967913 29.517220926874316
585 POINT 578 -2.4351103309259599 6.8467331434899945 29.42371971299039
586 POINT 579 -2.5190796526820272 6.7788005351831977 29.330218499106465
587 POINT 580 -1.2360679774997874 3.4596844110392655 30.647813755677412
588 POINT 581 -1.2802132624104943 3.4176997501612316 30.518598256079198
589 POINT 582 -1.3243585473212007 3.3757150892831977 30.389382756480988
590 POINT 583 -2.3511410091698921 3.6352549156242118 31.188164207252051
591 POINT 584 -2.4351103309259599 3.5995406299099262 31.07824693806722
592 POINT 585 -2.5190796526820272 3.5638263441956402 30.96832966888239
593 POINT 586 -1.3685038322319074 6.3411320950123304 28.727819570894464
594 POINT 587 -1.4126491171426141 6.2612725243873379 28.617902301709634
595 POINT 588 -2.6030489744380949 6.7108679268764009 29.236717285222539
596 POINT 589 -2.6870182961941622 6.642935318569605 29.143216071338617
597 POINT 590 -1.3685038322319074 3.3337304284051639 30.260167256882777
598 POINT 591 -1.4126491171426141 3.29174576752713 30.130951757284564
599 POINT 592 -2.6030489744380949 3.5281120584813546 30.85841239969756
600 POINT 593 -2.6870182961941622 3.492397772767069 30.74849513051273
601 POINT 594 -1.4567944020533208 6.1814129537623463 28.507985032524807
602 POINT 595 -1.5009396869640275 6.1015533831373538 28.398067763339974
603 POINT 596 -2.77098761795023 6.5750027102628081 29.049714857454692
604 POINT 597 -2.8549569397062973 6.5070701019560113 28.956213643570766
605 POINT 598 -1.4567944020533208 3.2497611066490966 30.001736257686357
606 POINT 599 -1.5009396869640275 3.2077764457710627 29.872520758088147
607 POINT 600 -2.77098761795023 3.4566834870527834 30.638577861327899
608 POINT 601 -2.8549569397062973 3.4209692013384974 30.528660592143069
609 POINT 602 -3.2360679774997894 7.4348127731369926 30.233141883033902
610 POINT 603 -3.3516418338390679 7.3854568441637749 30.165209274727104
611 POINT 604 -3.4672156901783455 7.3361009151905572 30.09727666642031
612 POINT 605 -3.8042260651806141 8.090236256381738 31.135254915624209
613 POINT 606 -3.9400912817942078 8.0642883089529747 31.099540629909924
614 POINT 607 -4.0759564984078009 8.0383403615242113 31.06382634419564
615 POINT 608 -3.2360679774997894 3.9087123876188503 32.029779766927511
616 POINT 609 -3.3516418338390679 3.8827644401900878 31.949920196302521
617 POINT 610 -3.4672156901783455 3.8568164927613253 31.870060625677532
618 POINT 611 -3.8042260651806141 4.2532889043741067 33.090277239842358
619 POINT 612 -3.9400912817942078 4.2396472611151745 33.048292578964322
620 POINT 613 -4.0759564984078009 4.2260056178562415 33.006307918086293
621 POINT 614 -3.582789546517624 7.2867449862173386 30.029344058113512
622 POINT 615 -3.6983634028569021 7.2373890572441208 29.961411449806718
623 POINT 616 -4.2118217150213946 8.0123924140954479 31.028112058481355
624 POINT 617 -4.3476869316349873 7.9864444666666854 30.992397772767067
625 POINT 618 -3.582789546517624 3.8308685453325619 31.790201055052535
626 POINT 619 -3.6983634028569021 3.8049205979037994 31.710341484427545
627 POINT 620 -4.2118217150213946 4.2123639745973094 32.964323257208257
628 POINT 621 -4.3476869316349873 4.1987223313383772 32.922338596330221
629 POINT 622 -3.8139372591961802 7.1880331282709022 29.89347884149992
630 POINT 623 -3.9295111155354583 7.1386771992976845 29.825546233193123
631 POINT 624 -4.4835521482485809 7.9604965192379229 30.956683487052779
632 POINT 625 -4.6194173648621737 7.9345485718091595 30.920969201338494
633 POINT 626 -3.8139372591961802 3.7789726504750361 31.630481913802551
634 POINT 627 -3.9295111155354583 3.7530247030462736 31.550622343177558
635 POINT 628 -4.4835521482485809 4.1850806880794451 32.880353935452192
636 POINT 629 -4.6194173648621737 4.1714390448205121 32.838369274574156
637 POINT 630 -4 8.8167787843870986 32.135254915624209
638 POINT 631 -4.1428571428571432 8.8167787843870986 32.135254915624209
639 POINT 632 -4.2857142857142856 8.8167787843870986 32.135254915624209
640 POINT 633 -3.8042260651806146 9.5433213123924592 33.135254915624209
641 POINT 634 -3.9400912817942082 9.5692692598212226 33.170969201338494
642 POINT 635 -4.0759564984078009 9.5952172072499859 33.206683487052786
643 POINT 636 -4 4.6352549156242118 34.265847744427305
644 POINT 637 -4.1428571428571432 4.6352549156242118 34.265847744427305
645 POINT 638 -4.2857142857142856 4.6352549156242118 34.265847744427305
646 POINT 639 -3.8042260651806146 5.0172209268743169 35.441418249012251
647 POINT 640 -3.9400912817942082 5.030862570133249 35.483402909890287
648 POINT 641 -4.0759564984078009 5.044504213392182 35.525387570768316
649 POINT 642 -4.4285714285714288 8.8167787843870986 32.135254915624209
650 POINT 643 -4.5714285714285712 8.8167787843870986 32.135254915624209
651 POINT 644 -4.2118217150213946 9.6211651546787476 33.242397772767063
652 POINT 645 -4.3476869316349882 9.6471131021075109 33.278112058481355
653 POINT 646 -4.4285714285714288 4.6352549156242118 34.265847744427305
654 POINT 647 -4.5714285714285712 4.6352549156242118 34.265847744427305
655 POINT 648 -4.2118217150213946 5.0581458566511133 35.567372231646353
656 POINT 649 -4.3476869316349882 5.0717874999100463 35.609356892524389
657 POINT 650 -4.7142857142857144 8.8167787843870986 32.135254915624209
658 POINT 651 -4.8571428571428568 8.8167787843870968 32.135254915624209
659 POINT 652 -4.4835521482485818 9.6730610495362743 33.31382634419564
660 POINT 653 -4.6194173648621746 9.6990089969650359 33.349540629909924
661 POINT 654 -4.7142857142857144 4.6352549156242118 34.265847744427305
662 POINT 655 -4.8571428571428568 4.6352549156242109 34.265847744427305
663 POINT 656 -4.4835521482485818 5.0854291431689784 35.651341553402418
664 POINT 657 -4.6194173648621746 5.0990707864279097 35.693326214280454
665 POINT 658 -3.2360679774997898 10.198744795637205 34.037367948214516
666 POINT 659 -3.3516418338390683 10.248100724610421 34.105300556521314
667 POINT 660 -3.467215690178346 10.297456653583639 34.173233164828112
668 POINT 661 -2.3511410091698934 10.718891816977406 34.753288904374102
669 POINT 662 -2.4351103309259612 10.786824425284204 34.846790118258028
670 POINT 663 -2.5190796526820285 10.854757033591 34.940291332141953
671 POINT 664 -3.2360679774997898 5.3617974436295732 36.501915721927091
672 POINT 665 -3.3516418338390683 5.3877453910583348 36.581775292552081
673 POINT 666 -3.467215690178346 5.4136933384870982 36.661634863177078
674 POINT 667 -2.3511410091698934 5.6352549156242118 37.343531281602559
675 POINT 668 -2.4351103309259612 5.6709692013384974 37.453448550787385
676 POINT 669 -2.5190796526820285 5.7066834870527829 37.563365819972219
677 POINT 670 -3.5827895465176245 10.346812582556858 34.24116577313491
678 POINT 671 -3.6983634028569026 10.396168511530075 34.3090983814417
679 POINT 672 -2.6030489744380962 10.922689641897795 35.033792546025879
680 POINT 673 -2.687018296194164 10.990622250204593 35.127293759909804
681 POINT 674 -3.5827895465176245 5.4396412859158616 36.741494433802075
682 POINT 675 -3.6983634028569026 5.4655892333446241 36.821354004427064
683 POINT 676 -2.6030489744380962 5.7423977727670685 37.673283089157053
684 POINT 677 -2.687018296194164 5.778112058481355 37.78320035834188
685 POINT 678 -3.8139372591961811 10.445524440503293 34.377030989748498
686 POINT 679 -3.9295111155354587 10.494880369476512 34.444963598055296
687 POINT 680 -2.7709876179502317 11.058554858511389 35.22079497379373
688 POINT 681 -2.854956939706299 11.126487466818187 35.314296187677655
689 POINT 682 -3.8139372591961811 5.4915371807733866 36.901213575052054
690 POINT 683 -3.9295111155354587 5.51748512820215 36.981073145677051
691 POINT 684 -2.7709876179502317 5.8138263441956406 37.893117627526706
692 POINT 685 -2.854956939706299 5.8495406299099262 38.00303489671154
693 POINT 686 -1.2360679774997905 11.052846761886888 35.212938452799463
694 POINT 687 -1.2802132624104974 11.13270633251188 35.322855721984297
695 POINT 688 -1.3243585473212041 11.212565903136875 35.432772991169124
696 POINT 689 -1.2360679774997905 5.8108254202091585 37.883881733177205
697 POINT 690 -1.2802132624104974 5.8528100810871919 38.013097232775408
698 POINT 691 -1.3243585473212041 5.8947947419652262 38.142312732373625
699 POINT 692 -1.368503832231911 11.292425473761867 35.54269026035395
700 POINT 693 -1.4126491171426176 11.37228504438686 35.652607529538784
701 POINT 694 -1.368503832231911 5.9367794028432597 38.271528231971828
702 POINT 695 -1.4126491171426176 5.978764063721294 38.400743731570046
703 POINT 696 -1.4567944020533246 11.452144615011852 35.762524798723618
704 POINT 697 -1.5009396869640312 11.532004185636843 35.872442067908445
705 POINT 698 -1.4567944020533246 6.0207487245993274 38.529959231168249
706 POINT 699 -1.5009396869640312 6.06273338547736 38.659174730766466
707 POINT 700 0 1.1634144591899855e-15 39
708 POINT 701 0 1.1721619363267524e-15 39.142857142857139
709 POINT 702 0 1.180909413463519e-15 39.285714285714285
710 POINT 703 1.2360679774997896 1.1514267630583333e-15 38.804226065180615
711 POINT 704 1.2802132624104965 1.1597461081903985e-15 38.94009128179421
712 POINT 705 1.3243585473212032 1.1680654533224633e-15 39.075956498407805
713 POINT 706 2.3511410091698925 1.1166371138839333e-15 38.236067977499786
714 POINT 707 2.4351103309259603 1.123713971545484e-15 38.351641833839068
715 POINT 708 2.5190796526820276 1.1307908292070345e-15 38.46721569017835
716 POINT 709 0 -5.8713228931239998 38.070073809607919
717 POINT 710 0 -5.9154681780347058 38.205939026221515
718 POINT 711 0 -5.9596134629454127 38.34180424283511
719 POINT 712 1.2360679774997896 -5.8108254202091558 37.883881733177205
720 POINT 713 1.2802132624104965 -5.8528100810871901 38.013097232775408
721 POINT 714 1.3243585473212032 -5.8947947419652236 38.142312732373625
722 POINT 715 2.3511410091698925 -5.63525491562421 37.343531281602559
723 POINT 716 2.4351103309259603 -5.6709692013384956 37.453448550787385
724 POINT 717 2.5190796526820276 -5.7066834870527812 37.563365819972219
725 POINT 718 0 1.1896568906002861e-15 39.428571428571431
726 POINT 719 0 1.1984043677370526e-15 39.571428571428569
727 POINT 720 1.3685038322319101 1.1763847984545281e-15 39.211821715021394
728 POINT 721 1.4126491171426165 1.1847041435865933e-15 39.347686931634989
729 POINT 722 2.6030489744380954 1.1378676868685852e-15 38.582789546517624
730 POINT 723 2.6870182961941627 1.1449445445301359e-15 38.698363402856899
731 POINT 724 0 -6.0037587478561205 38.477669459448705
732 POINT 725 0 -6.0479040327668256 38.613534676062287
733 POINT 726 1.3685038322319101 -5.936779402843257 38.271528231971828
734 POINT 727 1.4126491171426165 -5.9787640637212913 38.400743731570046
735 POINT 728 2.6030489744380954 -5.7423977727670668 37.673283089157053
736 POINT 729 2.6870182961941627 -5.7781120584813523 37.78320035834188
737 POINT 730 0 1.2071518448738197e-15 39.714285714285715
738 POINT 731 0 1.2158993220105864e-15 39.857142857142861
739 POINT 732 1.4567944020533234 1.1930234887186581e-15 39.483552148248577
740 POINT 733 1.5009396869640301 1.2013428338507229e-15 39.619417364862173
741 POINT 734 2.7709876179502304 1.1520214021916864e-15 38.81393725919618
742 POINT 735 2.8549569397062977 1.1590982598532371e-15 38.929511115535462
743 POINT 736 0 -6.0920493176775334 38.749399892675882
744 POINT 737 0 -6.1361946025882403 38.885265109289477
745 POINT 738 1.4567944020533234 -6.0207487245993248 38.529959231168249
746 POINT 739 1.5009396869640301 -6.0627333854773582 38.659174730766466
747 POINT 740 2.7709876179502304 -5.8138263441956379 37.893117627526706
748 POINT 741 2.8549569397062977 -5.8495406299099235 38.00303489671154
749 POINT 742 3.2360679774997894 1.0624509649217144e-15 37.351141009169893
750 POINT 743 3.3516418338390679 1.0675926029774715e-15 37.435110330925966
751 POINT 744 3.4672156901783455 1.0727342410332285e-15 37.519079652682024
752 POINT 745 3.8042260651806146 9.9417243396919792e-16 36.236067977499786
753 POINT 746 3.9400912817942082 9.9687555306236528e-16 36.280213262410498
754 POINT 747 4.0759564984078009 9.9957867215553245e-16 36.324358547321204
755 POINT 748 3.2360679774997894 -5.3617974436295714 36.501915721927091
756 POINT 749 3.3516418338390679 -5.3877453910583339 36.581775292552088
757 POINT 750 3.4672156901783455 -5.4136933384870964 36.661634863177078
758 POINT 751 3.8042260651806146 -5.0172209268743151 35.441418249012251
759 POINT 752 3.9400912817942082 -5.0308625701332481 35.483402909890287
760 POINT 753 4.0759564984078009 -5.0445042133921802 35.525387570768316
761 POINT 754 3.582789546517624 1.0778758790889856e-15 37.603048974438096
762 POINT 755 3.6983634028569021 1.0830175171447428e-15 37.687018296194168
763 POINT 756 4.2118217150213946 1.0022817912486996e-15 36.368503832231909
764 POINT 757 4.3476869316349882 1.004984910341867e-15 36.412649117142621
765 POINT 758 3.582789546517624 -5.4396412859158598 36.741494433802075
766 POINT 759 3.6983634028569021 -5.4655892333446232 36.821354004427064
767 POINT 760 4.2118217150213946 -5.0581458566511115 35.567372231646353
768 POINT 761 4.3476869316349882 -5.0717874999100445 35.609356892524389
769 POINT 762 3.8139372591961802 1.0881591552004999e-15 37.770987617950233
770 POINT 763 3.9295111155354583 1.093300793256257e-15 37.854956939706298
771 POINT 764 4.4835521482485818 1.0076880294350342e-15 36.456794402053319
772 POINT 765 4.6194173648621746 1.0103911485282015e-15 36.500939686964031
773 POINT 766 3.8139372591961802 -5.4915371807733857 36.901213575052054
774 POINT 767 3.9295111155354583 -5.5174851282021482 36.981073145677051
775 POINT 768 4.4835521482485818 -5.0854291431689767 35.651341553402418
776 POINT 769 4.6194173648621746 -5.0990707864279097 35.693326214280454
777 POINT 770 4 9.1848509936051499e-16 35
778 POINT 771 4.1428571428571432 9.1848509936051499e-16 35
779 POINT 772 4.2857142857142856 9.1848509936051499e-16 35
780 POINT 773 3.8042260651806146 8.4279776475183187e-16 33.763932022500214
781 POINT 774 3.9400912817942082 8.400946456586646e-16 33.719786737589502
782 POINT 775 4.0759564984078009 8.3739152656549733e-16 33.675641452678796
783 POINT 776 4 -4.63525491562421 34.265847744427305
784 POINT 777 4.1428571428571432 -4.63525491562421 34.265847744427305
785 POINT 778 4.2857142857142856 -4.63525491562421 34.265847744427305
786 POINT 779 3.8042260651806146 -4.2532889043741049 33.090277239842358
787 POINT 780 3.9400912817942082 -4.2396472611151728 33.048292578964322
788 POINT 781 4.0759564984078009 -4.2260056178562406 33.006307918086293
789 POINT 782 4.4285714285714288 9.1848509936051499e-16 35
790 POINT 783 4.5714285714285712 9.1848509936051499e-16 35
791 POINT 784 4.2118217150213946 8.3468840747233026e-16 33.631496167768091
792 POINT 785 4.3476869316349882 8.3198528837916299e-16 33.587350882857386
793 POINT 786 4.4285714285714288 -4.63525491562421 34.265847744427305
794 POINT 787 4.5714285714285712 -4.63525491562421 34.265847744427305
795 POINT 788 4.2118217150213946 -4.2123639745973085 32.964323257208257
796 POINT 789 4.3476869316349882 -4.1987223313383764 32.922338596330221
797 POINT 790 4.7142857142857144 9.1848509936051499e-16 35
798 POINT 791 4.8571428571428568 9.1848509936051499e-16 35
799 POINT 792 4.4835521482485818 8.2928216928599572e-16 33.543205597946681
800 POINT 793 4.6194173648621746 8.2657905019282846e-16 33.499060313035969
801 POINT 794 4.7142857142857144 -4.63525491562421 34.265847744427305
802 POINT 795 4.8571428571428568 -4.63525491562421 34.265847744427305
803 POINT 796 4.4835521482485818 -4.1850806880794433 32.880353935452192
804 POINT 797 4.6194173648621746 -4.1714390448205112 32.838369274574156
805 POINT 798 3.2360679774997898 7.7451923379931549e-16 32.648858990830107
806 POINT 799 3.3516418338390683 7.6937759574355843e-16 32.564889669074041
807 POINT 800 3.467215690178346 7.6423595768780136e-16 32.480920347317976
808 POINT 801 2.351141009169893 7.2033308483709662e-16 31.76393202250021
809 POINT 802 2.4351103309259607 7.1325622717554591e-16 31.648358166160932
810 POINT 803 2.519079652682028 7.061793695139953e-16 31.532784309821654
811 POINT 804 3.2360679774997898 -3.908712387618849 32.029779766927511
812 POINT 805 3.3516418338390683 -3.8827644401900865 31.949920196302521
813 POINT 806 3.467215690178346 -3.856816492761324 31.870060625677532
814 POINT 807 2.351141009169893 -3.6352549156242104 31.188164207252051
815 POINT 808 2.4351103309259607 -3.5995406299099248 31.07824693806722
816 POINT 809 2.519079652682028 -3.5638263441956388 30.96832966888239
817 POINT 810 3.5827895465176245 7.590943196320442e-16 32.396951025561904
818 POINT 811 3.6983634028569026 7.5395268157628713e-16 32.312981703805839
819 POINT 812 2.6030489744380958 6.9910251185244459e-16 31.417210453482376
820 POINT 813 2.6870182961941631 6.9202565419089398e-16 31.301636597143098
821 POINT 814 3.5827895465176245 -3.8308685453325606 31.790201055052535
822 POINT 815 3.6983634028569026 -3.8049205979037981 31.710341484427545
823 POINT 816 2.6030489744380958 -3.5281120584813532 30.85841239969756
824 POINT 817 2.6870182961941631 -3.4923977727670676 30.74849513051273
825 POINT 818 3.8139372591961811 7.4881104352053007e-16 32.229012382049774
826 POINT 819 3.9295111155354587 7.4366940546477281e-16 32.145043060293702
827 POINT 820 2.7709876179502313 6.8494879652934337e-16 31.18606274080382
828 POINT 821 2.8549569397062986 6.7787193886779267e-16 31.070488884464542
829 POINT 822 3.8139372591961811 -3.7789726504750352 31.630481913802555
830 POINT 823 3.9295111155354587 -3.7530247030462722 31.550622343177558
831 POINT 824 2.7709876179502313 -3.4566834870527821 30.638577861327899
832 POINT 825 2.8549569397062986 -3.4209692013384965 30.528660592143069
833 POINT 826 1.23606797749979 6.8554343566269637e-16 31.195773934819385
834 POINT 827 1.2802132624104969 6.7722409053063147e-16 31.05990871820579
835 POINT 828 1.3243585473212036 6.6890474539856647e-16 30.924043501592198
836 POINT 829 4.8985871965894128e-16 6.735557395310443e-16 31
837 POINT 830 5.0735367393247495e-16 6.6480826239427752e-16 30.857142857142858
838 POINT 831 5.2484862820600851e-16 6.5606078525751074e-16 30.714285714285715
839 POINT 832 1.23606797749979 -3.4596844110392642 30.647813755677412
840 POINT 833 1.2802132624104969 -3.4176997501612303 30.518598256079198
841 POINT 834 1.3243585473212036 -3.3757150892831964 30.389382756480988
842 POINT 835 4.8985871965894128e-16 -3.3991869381244206 30.46162167924669
843 POINT 836 5.0735367393247495e-16 -3.3550416532137142 30.325756462633095
844 POINT 837 5.2484862820600851e-16 -3.3108963683030077 30.189891246019506
845 POINT 838 1.3685038322319105 6.6058540026650166e-16 30.788178284978606
846 POINT 839 1.4126491171426172 6.5226605513443656e-16 30.652313068365011
847 POINT 840 5.4234358247954217e-16 6.4731330812074386e-16 30.571428571428569
848 POINT 841 5.5983853675307574e-16 6.3856583098397707e-16 30.428571428571431
849 POINT 842 1.3685038322319105 -3.333730428405163 30.260167256882781
850 POINT 843 1.4126491171426172 -3.2917457675271287 30.130951757284564
851 POINT 844 5.4234358247954217e-16 -3.2667510833923004 30.054026029405911
852 POINT 845 5.5983853675307574e-16 -3.2226057984815939 29.918160812792316
853 POINT 846 1.4567944020533239 6.4394671000237175e-16 30.516447851751419
854 POINT 847 1.5009396869640306 6.3562736487030675e-16 30.380582635137827
855 POINT 848 5.773334910266094e-16 6.2981835384721019e-16 30.285714285714285
856 POINT 849 5.9482844530014297e-16 6.2107087671044341e-16 30.142857142857142
857 POINT 850 1.4567944020533239 -3.2497611066490952 30.001736257686357
858 POINT 851 1.5009396869640306 -3.2077764457710614 29.872520758088147
859 POINT 852 5.773334910266094e-16 -3.1784605135708865 29.78229559617872
860 POINT 853 5.9482844530014297e-16 -3.1343152286601801 29.646430379565132
861 POINT 854 -1.2360679774997874 6.8554343566269637e-16 31.195773934819385
862 POINT 855 -1.2802132624104943 6.7722409053063147e-16 31.05990871820579
863 POINT 856 -1.3243585473212007 6.6890474539856647e-16 30.924043501592198
864 POINT 857 -2.3511410091698921 7.2033308483709662e-16 31.76393202250021
865 POINT 858 -2.4351103309259599 7.1325622717554591e-16 31.648358166160932
866 POINT 859 -2.5190796526820272 7.061793695139953e-16 31.532784309821654
867 POINT 860 -1.2360679774997874 -3.4596844110392642 30.647813755677412
868 POINT 861 -1.2802132624104943 -3.4176997501612303 30.518598256079198
869 POINT 862 -1.3243585473212007 -3.3757150892831964 30.389382756480988
870 POINT 863 -2.3511410091698921 -3.6352549156242104 31.188164207252051
871 POINT 864 -2.4351103309259599 -3.5995406299099248 31.07824693806722
872 POINT 865 -2.5190796526820272 -3.5638263441956388 30.96832966888239
873 POINT 866 -1.3685038322319074 6.6058540026650156e-16 30.788178284978606
874 POINT 867 -1.4126491171426141 6.5226605513443656e-16 30.652313068365011
875 POINT 868 -2.6030489744380949 6.9910251185244459e-16 31.417210453482376
876 POINT 869 -2.6870182961941622 6.9202565419089398e-16 31.301636597143098
877 POINT 870 -1.3685038322319074 -3.3337304284051625 30.260167256882777
878 POINT 871 -1.4126491171426141 -3.2917457675271287 30.130951757284564
879 POINT 872 -2.6030489744380949 -3.5281120584813532 30.85841239969756
880 POINT 873 -2.6870182961941622 -3.4923977727670676 30.74849513051273
881 POINT 874 -1.4567944020533208 6.4394671000237175e-16 30.516447851751419
882 POINT 875 -1.5009396869640275 6.3562736487030675e-16 30.380582635137827
883 POINT 876 -2.77098761795023 6.8494879652934337e-16 31.18606274080382
884 POINT 877 -2.8549569397062973 6.7787193886779267e-16 31.070488884464542
885 POINT 878 -1.4567944020533208 -3.2497611066490952 30.001736257686357
886 POINT 879 -1.5009396869640275 -3.2077764457710614 29.872520758088147
887 POINT 880 -2.77098761795023 -3.4566834870527821 30.638577861327899
888 POINT 881 -2.8549569397062973 -3.4209692013384965 30.528660592143069
889 POINT 882 -3.2360679774997894 7.7451923379931549e-16 32.648858990830107
890 POINT 883 -3.3516418338390679 7.6937759574355843e-16 32.564889669074041
891 POINT 884 -3.4672156901783455 7.6423595768780136e-16 32.480920347317976
892 POINT 885 -3.8042260651806141 8.4279776475183187e-16 33.763932022500214
893 POINT 886 -3.9400912817942078 8.400946456586646e-16 33.719786737589502
894 POINT 887 -4.0759564984078009 8.3739152656549733e-16 33.675641452678796
895 POINT 888 -3.2360679774997894 -3.908712387618849 32.029779766927511
896 POINT 889 -3.3516418338390679 -3.8827644401900865 31.949920196302521
897 POINT 890 -3.4672156901783455 -3.856816492761324 31.870060625677532
898 POINT 891 -3.8042260651806141 -4.2532889043741049 33.090277239842358
899 POINT 892 -3.9400912817942078 -4.2396472611151728 33.048292578964322
900 POINT 893 -4.0759564984078009 -4.2260056178562406 33.006307918086293
901 POINT 894 -3.582789546517624 7.590943196320442e-16 32.396951025561904
902 POINT 895 -3.6983634028569021 7.5395268157628713e-16 32.312981703805839
903 POINT 896 -4.2118217150213946 8.3468840747233016e-16 33.631496167768091
904 POINT 897 -4.3476869316349873 8.3198528837916289e-16 33.587350882857379
905 POINT 898 -3.582789546517624 -3.8308685453325606 31.790201055052535
906 POINT 899 -3.6983634028569021 -3.8049205979037981 31.710341484427545
907 POINT 900 -4.2118217150213946 -4.2123639745973076 32.964323257208257
908 POINT 901 -4.3476869316349873 -4.1987223313383755 32.922338596330221
909 POINT 902 -3.8139372591961802 7.4881104352052997e-16 32.229012382049767
910 POINT 903 -3.9295111155354583 7.4366940546477281e-16 32.145043060293702
911 POINT 904 -4.4835521482485809 8.2928216928599563e-16 33.543205597946674
912 POINT 905 -4.6194173648621737 8.2657905019282836e-16 33.499060313035969
913 POINT 906 -3.8139372591961802 -3.7789726504750347 31.630481913802551
914 POINT 907 -3.9295111155354583 -3.7530247030462722 31.550622343177558
915 POINT 908 -4.4835521482485809 -4.1850806880794433 32.880353935452192
916 POINT 909 -4.6194173648621737 -4.1714390448205112 32.838369274574156
917 POINT 910 -4 9.1848509936051499e-16 35
918 POINT 911 -4.1428571428571432 9.1848509936051499e-16 35
919 POINT 912 -4.2857142857142856 9.1848509936051499e-16 35
920 POINT 913 -3.8042260651806146 9.9417243396919792e-16 36.236067977499786
921 POINT 914 -3.9400912817942082 9.9687555306236509e-16 36.280213262410498
922 POINT 915 -4.0759564984078009 9.9957867215553245e-16 36.324358547321204
923 POINT 916 -4 -4.63525491562421 34.265847744427305
924 POINT 917 -4.1428571428571432 -4.63525491562421 34.265847744427305
925 POINT 918 -4.2857142857142856 -4.63525491562421 34.265847744427305
926 POINT 919 -3.8042260651806146 -5.0172209268743151 35.441418249012251
927 POINT 920 -3.9400912817942082 -5.0308625701332472 35.483402909890287
928 POINT 921 -4.0759564984078009 -5.0445042133921802 35.525387570768316
929 POINT 922 -4.4285714285714288 9.1848509936051499e-16 35
930 POINT 923 -4.5714285714285712 9.1848509936051499e-16 35
931 POINT 924 -4.2118217150213946 1.0022817912486996e-15 36.368503832231909
932 POINT 925 -4.3476869316349882 1.004984910341867e-15 36.412649117142621
933 POINT 926 -4.4285714285714288 -4.63525491562421 34.265847744427305
934 POINT 927 -4.5714285714285712 -4.63525491562421 34.265847744427305
935 POINT 928 -4.2118217150213946 -5.0581458566511115 35.567372231646353
936 POINT 929 -4.3476869316349882 -5.0717874999100445 35.609356892524389
937 POINT 930 -4.7142857142857144 9.1848509936051499e-16 35
938 POINT 931 -4.8571428571428568 9.1848509936051479e-16 35
939 POINT 932 -4.4835521482485818 1.0076880294350342e-15 36.456794402053319
940 POINT 933 -4.6194173648621746 1.0103911485282013e-15 36.500939686964031
941 POINT 934 -4.7142857142857144 -4.63525491562421 34.265847744427305
942 POINT 935 -4.8571428571428568 -4.63525491562421 34.265847744427305
943 POINT 936 -4.4835521482485818 -5.0854291431689767 35.651341553402418
944 POINT 937 -4.6194173648621746 -5.0990707864279079 35.693326214280454
945 POINT 938 -3.2360679774997898 1.0624509649217144e-15 37.351141009169893
946 POINT 939 -3.3516418338390683 1.0675926029774713e-15 37.435110330925959
947 POINT 940 -3.467215690178346 1.0727342410332285e-15 37.519079652682024
948 POINT 941 -2.3511410091698934 1.1166371138839333e-15 38.236067977499786
949 POINT 942 -2.4351103309259612 1.123713971545484e-15 38.351641833839068
950 POINT 943 -2.5190796526820285 1.1307908292070345e-15 38.46721569017835
951 POINT 944 -3.2360679774997898 -5.3617974436295714 36.501915721927091
952 POINT 945 -3.3516418338390683 -5.3877453910583331 36.581775292552081
953 POINT 946 -3.467215690178346 -5.4136933384870964 36.661634863177078
954 POINT 947 -2.3511410091698934 -5.63525491562421 37.343531281602559
955 POINT 948 -2.4351103309259612 -5.6709692013384956 37.453448550787385
956 POINT 949 -2.5190796526820285 -5.7066834870527812 37.563365819972219
957 POINT 950 -3.5827895465176245 1.0778758790889856e-15 37.603048974438096
958 POINT 951 -3.6983634028569026 1.0830175171447427e-15 37.687018296194161
959 POINT 952 -2.6030489744380962 1.1378676868685852e-15 38.582789546517624
960 POINT 953 -2.687018296194164 1.1449445445301359e-15 38.698363402856899
961 POINT 954 -3.5827895465176245 -5.4396412859158598 36.741494433802075
962 POINT 955 -3.6983634028569026 -5.4655892333446214 36.821354004427064
963 POINT 956 -2.6030489744380962 -5.7423977727670668 37.673283089157053
964 POINT 957 -2.687018296194164 -5.7781120584813523 37.78320035834188
965 POINT 958 -3.8139372591961811 1.0881591552004997e-15 37.770987617950226
966 POINT 959 -3.9295111155354587 1.093300793256257e-15 37.854956939706298
967 POINT 960 -2.7709876179502317 1.1520214021916864e-15 38.81393725919618
968 POINT 961 -2.854956939706299 1.1590982598532371e-15 38.929511115535462
969 POINT 962 -3.8139372591961811 -5.4915371807733848 36.901213575052054
970 POINT 963 -3.9295111155354587 -5.5174851282021482 36.981073145677051
971 POINT 964 -2.7709876179502317 -5.8138263441956379 37.893117627526706
972 POINT 965 -2.854956939706299 -5.8495406299099235 38.00303489671154
973 POINT 966 -1.2360679774997905 1.1514267630583333e-15 38.804226065180615
974 POINT 967 -1.2802132624104974 1.1597461081903983e-15 38.94009128179421
975 POINT 968 -1.3243585473212041 1.1680654533224633e-15 39.075956498407805
976 POINT 969 -1.2360679774997905 -5.8108254202091558 37.883881733177205
977 POINT 970 -1.2802132624104974 -5.8528100810871893 38.013097232775408
978 POINT 971 -1.3243585473212041 -5.8947947419652236 38.142312732373625
979 POINT 972 -1.368503832231911 1.1763847984545281e-15 39.211821715021394
980 POINT 973 -1.4126491171426176 1.1847041435865933e-15 39.347686931634989
981 POINT 974 -1.368503832231911 -5.936779402843257 38.271528231971828
982 POINT 975 -1.4126491171426176 -5.9787640637212913 38.400743731570046
983 POINT 976 -1.4567944020533246 1.1930234887186581e-15 39.483552148248577
984 POINT 977 -1.5009396869640312 1.2013428338507229e-15 39.619417364862173
985 POINT 978 -1.4567944020533246 -6.0207487245993248 38.529959231168249
986 POINT 979 -1.5009396869640312 -6.0627333854773582 38.659174730766466
987 POINT 980 0 -11.16791979355699 35.371322893124002
988 POINT 981 0 -11.251889115313057 35.486896749463277
989 POINT 982 0 -11.335858437069124 35.602470605802559
990 POINT 983 1.2360679774997896 -11.052846761886887 35.212938452799463
991 POINT 984 1.2802132624104965 -11.13270633251188 35.322855721984297
992 POINT 985 1.3243585473212032 -11.212565903136872 35.432772991169131
993 POINT 986 2.3511410091698925 -10.718891816977404 34.753288904374109
994 POINT 987 2.4351103309259603 -10.7868244252842 34.846790118258028
995 POINT 988 2.5190796526820276 -10.854757033590998 34.940291332141953
996 POINT 989 0 -15.371322893123999 31.16791979355699
997 POINT 990 0 -15.486896749463277 31.251889115313059
998 POINT 991 0 -15.602470605802555 31.335858437069128
999 POINT 992 1.2360679774997896 -15.212938452799463 31.05284676188689
1000 POINT 993 1.2802132624104965 -15.322855721984295 31.132706332511884
1001 POINT 994 1.3243585473212032 -15.432772991169125 31.212565903136877
1002 POINT 995 2.3511410091698925 -14.753288904374104 30.718891816977404
1003 POINT 996 2.4351103309259603 -14.84679011825803 30.786824425284202
1004 POINT 997 2.5190796526820276 -14.940291332141955 30.854757033591
1005 POINT 998 0 -11.419827758825194 35.71804446214184
1006 POINT 999 0 -11.503797080581259 35.833618318481115
1007 POINT 1000 1.3685038322319101 -11.292425473761863 35.542690260353957
1008 POINT 1001 1.4126491171426165 -11.372285044386858 35.652607529538784
1009 POINT 1002 2.6030489744380954 -10.922689641897794 35.033792546025879
1010 POINT 1003 2.6870182961941627 -10.990622250204591 35.127293759909804
1011 POINT 1004 0 -15.718044462141835 31.419827758825196
1012 POINT 1005 0 -15.833618318481111 31.503797080581261
1013 POINT 1006 1.3685038322319101 -15.542690260353954 31.292425473761867
1014 POINT 1007 1.4126491171426165 -15.652607529538786 31.37228504438686
1015 POINT 1008 2.6030489744380954 -15.033792546025879 30.922689641897797
1016 POINT 1009 2.6870182961941627 -15.127293759909804 30.990622250204595
1017 POINT 1010 0 -11.587766402337328 35.949192174820396
1018 POINT 1011 0 -11.671735724093395 36.064766031159671
1019 POINT 1012 1.4567944020533234 -11.45214461501185 35.762524798723618
1020 POINT 1013 1.5009396869640301 -11.532004185636842 35.872442067908445
1021 POINT 1014 2.7709876179502304 -11.058554858511387 35.22079497379373
1022 POINT 1015 2.8549569397062977 -11.126487466818183 35.314296187677655
1023 POINT 1016 0 -15.949192174820391 31.58776640233733
1024 POINT 1017 0 -16.064766031159667 31.671735724093395
1025 POINT 1018 1.4567944020533234 -15.762524798723616 31.452144615011854
1026 POINT 1019 1.5009396869640301 -15.872442067908445 31.532004185636843
1027 POINT 1020 2.7709876179502304 -15.220794973793728 31.058554858511389
1028 POINT 1021 2.8549569397062977 -15.314296187677654 31.126487466818187
1029 POINT 1022 3.2360679774997894 -10.198744795637202 34.037367948214523
1030 POINT 1023 3.3516418338390679 -10.248100724610421 34.105300556521314
1031 POINT 1024 3.4672156901783455 -10.297456653583637 34.173233164828112
1032 POINT 1025 3.8042260651806146 -9.5433213123924574 33.135254915624216
1033 POINT 1026 3.9400912817942082 -9.5692692598212226 33.170969201338501
1034 POINT 1027 4.0759564984078009 -9.5952172072499842 33.206683487052786
1035 POINT 1028 3.2360679774997894 -14.037367948214518 30.198744795637204
1036 POINT 1029 3.3516418338390679 -14.105300556521316 30.248100724610424
1037 POINT 1030 3.4672156901783455 -14.17323316482811 30.297456653583637
1038 POINT 1031 3.8042260651806146 -13.135254915624211 29.543321312392457
1039 POINT 1032 3.9400912817942082 -13.170969201338497 29.569269259821226
1040 POINT 1033 4.0759564984078009 -13.206683487052782 29.595217207249988
1041 POINT 1034 3.582789546517624 -10.346812582556856 34.24116577313491
1042 POINT 1035 3.6983634028569021 -10.396168511530075 34.309098381441707
1043 POINT 1036 4.2118217150213946 -9.6211651546787458 33.24239777276707
1044 POINT 1037 4.3476869316349882 -9.6471131021075092 33.278112058481355
1045 POINT 1038 3.582789546517624 -14.241165773134908 30.346812582556858
1046 POINT 1039 3.6983634028569021 -14.309098381441705 30.396168511530078
1047 POINT 1040 4.2118217150213946 -13.242397772767067 29.621165154678749
1048 POINT 1041 4.3476869316349882 -13.278112058481353 29.647113102107511
1049 POINT 1042 3.8139372591961802 -10.445524440503293 34.377030989748505
1050 POINT 1043 3.9295111155354583 -10.49488036947651 34.444963598055296
1051 POINT 1044 4.4835521482485818 -9.6730610495362725 33.31382634419564
1052 POINT 1045 4.6194173648621746 -9.6990089969650359 33.349540629909924
1053 POINT 1046 3.8139372591961802 -14.377030989748503 30.445524440503299
1054 POINT 1047 3.9295111155354583 -14.444963598055297 30.494880369476512
1055 POINT 1048 4.4835521482485818 -13.313826344195638 29.673061049536273
1056 POINT 1049 4.6194173648621746 -13.349540629909924 29.699008996965038
1057 POINT 1050 4 -8.8167787843870968 32.135254915624216
1058 POINT 1051 4.1428571428571432 -8.8167787843870968 32.135254915624216
1059 POINT 1052 4.2857142857142856 -8.8167787843870968 32.135254915624216
1060 POINT 1053 3.8042260651806146 -8.0902362563817363 31.135254915624209
1061 POINT 1054 3.9400912817942082 -8.0642883089529729 31.099540629909924
1062 POINT 1055 4.0759564984078009 -8.0383403615242095 31.06382634419564
1063 POINT 1056 4 -12.135254915624211 28.816778784387097
1064 POINT 1057 4.1428571428571432 -12.135254915624211 28.816778784387097
1065 POINT 1058 4.2857142857142856 -12.135254915624211 28.816778784387097
1066 POINT 1059 3.8042260651806146 -11.135254915624211 28.090236256381736
1067 POINT 1060 3.9400912817942082 -11.099540629909924 28.064288308952975
1068 POINT 1061 4.0759564984078009 -11.063826344195638 28.038340361524213
1069 POINT 1062 4.4285714285714288 -8.8167787843870968 32.135254915624216
1070 POINT 1063 4.5714285714285712 -8.8167787843870968 32.135254915624216
1071 POINT 1064 4.2118217150213946 -8.0123924140954479 31.028112058481355
1072 POINT 1065 4.3476869316349882 -7.9864444666666854 30.99239777276707
1073 POINT 1066 4.4285714285714288 -12.135254915624211 28.816778784387097
1074 POINT 1067 4.5714285714285712 -12.135254915624211 28.816778784387097
1075 POINT 1068 4.2118217150213946 -11.028112058481353 28.012392414095451
1076 POINT 1069 4.3476869316349882 -10.992397772767069 27.986444466666686
1077 POINT 1070 4.7142857142857144 -8.8167787843870968 32.135254915624216
1078 POINT 1071 4.8571428571428568 -8.8167787843870968 32.135254915624216
1079 POINT 1072 4.4835521482485818 -7.960496519237922 30.956683487052786
1080 POINT 1073 4.6194173648621746 -7.9345485718091595 30.920969201338497
1081 POINT 1074 4.7142857142857144 -12.135254915624211 28.816778784387097
1082 POINT 1075 4.8571428571428568 -12.135254915624211 28.816778784387097
1083 POINT 1076 4.4835521482485818 -10.956683487052782 27.960496519237925
1084 POINT 1077 4.6194173648621746 -10.920969201338497 27.93454857180916
1085 POINT 1078 3.2360679774997898 -7.4348127731369917 30.233141883033902
1086 POINT 1079 3.3516418338390683 -7.385456844163774 30.165209274727108
1087 POINT 1080 3.467215690178346 -7.3361009151905563 30.097276666420314
1088 POINT 1081 2.351141009169893 -6.9146657517967896 29.517220926874316
1089 POINT 1082 2.4351103309259607 -6.8467331434899936 29.42371971299039
1090 POINT 1083 2.519079652682028 -6.7788005351831968 29.330218499106465
1091 POINT 1084 3.2360679774997898 -10.233141883033902 27.434812773136994
1092 POINT 1085 3.3516418338390683 -10.165209274727106 27.385456844163777
1093 POINT 1086 3.467215690178346 -10.09727666642031 27.336100915190556
1094 POINT 1087 2.351141009169893 -9.517220926874316 26.91466575179679
1095 POINT 1088 2.4351103309259607 -9.4237197129903905 26.846733143489995
1096 POINT 1089 2.519079652682028 -9.3302184991064667 26.778800535183198
1097 POINT 1090 3.5827895465176245 -7.2867449862173377 30.029344058113516
1098 POINT 1091 3.6983634028569026 -7.23738905724412 29.961411449806718
1099 POINT 1092 2.6030489744380958 -6.7108679268764 29.236717285222543
1100 POINT 1093 2.6870182961941631 -6.6429353185696032 29.143216071338617
1101 POINT 1094 3.5827895465176245 -10.029344058113512 27.286744986217339
1102 POINT 1095 3.6983634028569026 -9.9614114498067163 27.237389057244123
1103 POINT 1096 2.6030489744380958 -9.2367172852225412 26.7108679268764
1104 POINT 1097 2.6870182961941631 -9.1432160713386175 26.642935318569606
1105 POINT 1098 3.8139372591961811 -7.1880331282709022 29.89347884149992
1106 POINT 1099 3.9295111155354587 -7.1386771992976836 29.825546233193123
1107 POINT 1100 2.7709876179502313 -6.5750027102628064 29.049714857454696
1108 POINT 1101 2.8549569397062986 -6.5070701019560104 28.95621364357077
1109 POINT 1102 3.8139372591961811 -9.8934788414999204 27.188033128270902
1110 POINT 1103 3.9295111155354587 -9.8255462331931227 27.138677199297685
1111 POINT 1104 2.7709876179502313 -9.049714857454692 26.575002710262808
1112 POINT 1105 2.8549569397062986 -8.9562136435707664 26.50707010195601
1113 POINT 1106 1.23606797749979 -6.580710806887307 29.057571378448959
1114 POINT 1107 1.2802132624104969 -6.5008512362623145 28.947654109264128
1115 POINT 1108 1.3243585473212036 -6.420991665637322 28.837736840079295
1116 POINT 1109 4.8985871965894128e-16 -6.4656377752172043 28.899186938124423
1117 POINT 1110 5.0735367393247495e-16 -6.3816684534611374 28.783613081785145
1118 POINT 1111 5.2484862820600851e-16 -6.2976991317050697 28.668039225445867
1119 POINT 1112 1.23606797749979 -9.0575713784489569 26.580710806887311
1120 POINT 1113 1.2802132624104969 -8.9476541092641266 26.500851236262314
1121 POINT 1114 1.3243585473212036 -8.8377368400792946 26.420991665637324
1122 POINT 1115 4.8985871965894128e-16 -8.8991869381244211 26.465637775217207
1123 POINT 1116 5.0735367393247495e-16 -8.783613081785143 26.381668453461138
1124 POINT 1117 5.2484862820600851e-16 -8.6680392254458649 26.297699131705073
1125 POINT 1118 1.3685038322319105 -6.3411320950123304 28.727819570894468
1126 POINT 1119 1.4126491171426172 -6.2612725243873362 28.617902301709634
1127 POINT 1120 5.4234358247954217e-16 -6.2137298099490019 28.552465369106585
1128 POINT 1121 5.5983853675307574e-16 -6.1297604881929342 28.436891512767311
1129 POINT 1122 1.3685038322319105 -8.7278195708944661 26.34113209501233
1130 POINT 1123 1.4126491171426172 -8.6179023017096341 26.261272524387337
1131 POINT 1124 5.4234358247954217e-16 -8.5524653691065868 26.213729809949001
1132 POINT 1125 5.5983853675307574e-16 -8.4368915127673088 26.129760488192936
1133 POINT 1126 1.4567944020533239 -6.1814129537623446 28.507985032524807
1134 POINT 1127 1.5009396869640306 -6.1015533831373521 28.398067763339974
1135 POINT 1128 5.773334910266094e-16 -6.0457911664368655 28.321317656428029
1136 POINT 1129 5.9482844530014297e-16 -5.9618218446807987 28.205743800088754
1137 POINT 1130 1.4567944020533239 -8.5079850325248056 26.181412953762347
1138 POINT 1131 1.5009396869640306 -8.3980677633399736 26.101553383137354
1139 POINT 1132 5.773334910266094e-16 -8.3213176564280289 26.045791166436867
1140 POINT 1133 5.9482844530014297e-16 -8.2057438000887508 25.961821844680799
1141 POINT 1134 -1.2360679774997874 -6.580710806887307 29.057571378448959
1142 POINT 1135 -1.2802132624104943 -6.5008512362623145 28.947654109264128
1143 POINT 1136 -1.3243585473212007 -6.420991665637322 28.837736840079295
1144 POINT 1137 -2.3511410091698921 -6.9146657517967896 29.517220926874316
1145 POINT 1138 -2.4351103309259599 -6.8467331434899936 29.42371971299039
1146 POINT 1139 -2.5190796526820272 -6.7788005351831968 29.330218499106465
1147 POINT 1140 -1.2360679774997874 -9.0575713784489569 26.580710806887311
1148 POINT 1141 -1.2802132624104943 -8.9476541092641266 26.500851236262314
1149 POINT 1142 -1.3243585473212007 -8.8377368400792946 26.420991665637324
1150 POINT 1143 -2.3511410091698921 -9.517220926874316 26.91466575179679
1151 POINT 1144 -2.4351103309259599 -9.4237197129903905 26.846733143489995
1152 POINT 1145 -2.5190796526820272 -9.3302184991064667 26.778800535183198
1153 POINT 1146 -1.3685038322319074 -6.3411320950123296 28.727819570894468
1154 POINT 1147 -1.4126491171426141 -6.2612725243873362 28.617902301709634
1155 POINT 1148 -2.6030489744380949 -6.7108679268764 29.236717285222543
1156 POINT 1149 -2.6870182961941622 -6.6429353185696032 29.143216071338617
1157 POINT 1150 -1.3685038322319074 -8.7278195708944644 26.34113209501233
1158 POINT 1151 -1.4126491171426141 -8.6179023017096341 26.261272524387337
1159 POINT 1152 -2.6030489744380949 -9.2367172852225412 26.7108679268764
1160 POINT 1153 -2.6870182961941622 -9.1432160713386175 26.642935318569606
1161 POINT 1154 -1.4567944020533208 -6.1814129537623446 28.507985032524807
1162 POINT 1155 -1.5009396869640275 -6.1015533831373521 28.398067763339974
1163 POINT 1156 -2.77098761795023 -6.5750027102628064 29.049714857454696
1164 POINT 1157 -2.8549569397062973 -6.5070701019560104 28.95621364357077
1165 POINT 1158 -1.4567944020533208 -8.5079850325248056 26.181412953762347
1166 POINT 1159 -1.5009396869640275 -8.3980677633399736 26.101553383137354
1167 POINT 1160 -2.77098761795023 -9.049714857454692 26.575002710262808
1168 POINT 1161 -2.8549569397062973 -8.9562136435707664 26.50707010195601
1169 POINT 1162 -3.2360679774997894 -7.4348127731369917 30.233141883033902
1170 POINT 1163 -3.3516418338390679 -7.385456844163774 30.165209274727108
1171 POINT 1164 -3.4672156901783455 -7.3361009151905563 30.097276666420314
1172 POINT 1165 -3.8042260651806141 -8.0902362563817363 31.135254915624209
1173 POINT 1166 -3.9400912817942078 -8.0642883089529729 31.099540629909924
1174 POINT 1167 -4.0759564984078009 -8.0383403615242095 31.06382634419564
1175 POINT 1168 -3.2360679774997894 -10.233141883033902 27.434812773136994
1176 POINT 1169 -3.3516418338390679 -10.165209274727106 27.385456844163777
1177 POINT 1170 -3.4672156901783455 -10.09727666642031 27.336100915190556
1178 POINT 1171 -3.8042260651806141 -11.135254915624211 28.090236256381736
1179 POINT 1172 -3.9400912817942078 -11.099540629909924 28.064288308952975
1180 POINT 1173 -4.0759564984078009 -11.063826344195638 28.038340361524213
1181 POINT 1174 -3.582789546517624 -7.2867449862173377 30.029344058113516
1182 POINT 1175 -3.6983634028569021 -7.23738905724412 29.961411449806718
1183 POINT 1176 -4.2118217150213946 -8.0123924140954479 31.028112058481355
1184 POINT 1177 -4.3476869316349873 -7.9864444666666845 30.99239777276707
1185 POINT 1178 -3.582789546517624 -10.029344058113512 27.286744986217339
1186 POINT 1179 -3.6983634028569021 -9.9614114498067163 27.237389057244123
1187 POINT 1180 -4.2118217150213946 -11.028112058481353 28.012392414095448
1188 POINT 1181 -4.3476869316349873 -10.992397772767067 27.986444466666686
1189 POINT 1182 -3.8139372591961802 -7.1880331282709014 29.89347884149992
1190 POINT 1183 -3.9295111155354583 -7.1386771992976836 29.825546233193123
1191 POINT 1184 -4.4835521482485809 -7.9604965192379211 30.956683487052782
1192 POINT 1185 -4.6194173648621737 -7.9345485718091586 30.920969201338497
1193 POINT 1186 -3.8139372591961802 -9.8934788414999186 27.188033128270902
1194 POINT 1187 -3.9295111155354583 -9.8255462331931227 27.138677199297685
1195 POINT 1188 -4.4835521482485809 -10.95668348705278 27.960496519237921
1196 POINT 1189 -4.6194173648621737 -10.920969201338496 27.93454857180916
1197 POINT 1190 -4 -8.8167787843870968 32.135254915624216
1198 POINT 1191 -4.1428571428571432 -8.8167787843870968 32.135254915624216
1199 POINT 1192 -4.2857142857142856 -8.8167787843870968 32.135254915624216
1200 POINT 1193 -3.8042260651806146 -9.5433213123924574 33.135254915624216
1201 POINT 1194 -3.9400912817942082 -9.5692692598212208 33.170969201338494
1202 POINT 1195 -4.0759564984078009 -9.5952172072499842 33.206683487052786
1203 POINT 1196 -4 -12.135254915624211 28.816778784387097
1204 POINT 1197 -4.1428571428571432 -12.135254915624211 28.816778784387097
1205 POINT 1198 -4.2857142857142856 -12.135254915624211 28.816778784387097
1206 POINT 1199 -3.8042260651806146 -13.135254915624211 29.543321312392457
1207 POINT 1200 -3.9400912817942082 -13.170969201338494 29.569269259821223
1208 POINT 1201 -4.0759564984078009 -13.206683487052782 29.595217207249988
1209 POINT 1202 -4.4285714285714288 -8.8167787843870968 32.135254915624216
1210 POINT 1203 -4.5714285714285712 -8.8167787843870968 32.135254915624216
1211 POINT 1204 -4.2118217150213946 -9.6211651546787458 33.24239777276707
1212 POINT 1205 -4.3476869316349882 -9.6471131021075092 33.278112058481355
1213 POINT 1206 -4.4285714285714288 -12.135254915624211 28.816778784387097
1214 POINT 1207 -4.5714285714285712 -12.135254915624211 28.816778784387097
1215 POINT 1208 -4.2118217150213946 -13.242397772767067 29.621165154678749
1216 POINT 1209 -4.3476869316349882 -13.278112058481353 29.647113102107511
1217 POINT 1210 -4.7142857142857144 -8.8167787843870968 32.135254915624216
1218 POINT 1211 -4.8571428571428568 -8.8167787843870968 32.135254915624209
1219 POINT 1212 -4.4835521482485818 -9.6730610495362725 33.31382634419564
1220 POINT 1213 -4.6194173648621746 -9.6990089969650342 33.349540629909924
1221 POINT 1214 -4.7142857142857144 -12.135254915624211 28.816778784387097
1222 POINT 1215 -4.8571428571428568 -12.135254915624209 28.816778784387097
1223 POINT 1216 -4.4835521482485818 -13.313826344195638 29.673061049536273
1224 POINT 1217 -4.6194173648621746 -13.349540629909923 29.699008996965034
1225 POINT 1218 -3.2360679774997898 -10.198744795637202 34.037367948214523
1226 POINT 1219 -3.3516418338390683 -10.248100724610419 34.105300556521314
1227 POINT 1220 -3.467215690178346 -10.297456653583637 34.173233164828112
1228 POINT 1221 -2.3511410091698934 -10.718891816977404 34.753288904374109
1229 POINT 1222 -2.4351103309259612 -10.7868244252842 34.846790118258028
1230 POINT 1223 -2.5190796526820285 -10.854757033590998 34.940291332141953
1231 POINT 1224 -3.2360679774997898 -14.037367948214518 30.198744795637204
1232 POINT 1225 -3.3516418338390683 -14.105300556521312 30.248100724610421
1233 POINT 1226 -3.467215690178346 -14.17323316482811 30.297456653583637
1234 POINT 1227 -2.3511410091698934 -14.753288904374104 30.718891816977404
1235 POINT 1228 -2.4351103309259612 -14.84679011825803 30.786824425284202
1236 POINT 1229 -2.5190796526820285 -14.940291332141955 30.854757033591
1237 POINT 1230 -3.5827895465176245 -10.346812582556856 34.24116577313491
1238 POINT 1231 -3.6983634028569026 -10.396168511530073 34.3090983814417
1239 POINT 1232 -2.6030489744380962 -10.922689641897794 35.033792546025879
1240 POINT 1233 -2.687018296194164 -10.990622250204591 35.127293759909804
1241 POINT 1234 -3.5827895465176245 -14.241165773134908 30.346812582556858
1242 POINT 1235 -3.6983634028569026 -14.309098381441702 30.396168511530075
1243 POINT 1236 -2.6030489744380962 -15.033792546025879 30.922689641897797
1244 POINT 1237 -2.687018296194164 -15.127293759909804 30.990622250204595
1245 POINT 1238 -3.8139372591961811 -10.445524440503291 34.377030989748505
1246 POINT 1239 -3.9295111155354587 -10.49488036947651 34.444963598055296
1247 POINT 1240 -2.7709876179502317 -11.058554858511387 35.22079497379373
1248 POINT 1241 -2.854956939706299 -11.126487466818183 35.314296187677655
1249 POINT 1242 -3.8139372591961811 -14.3770309897485 30.445524440503291
1250 POINT 1243 -3.9295111155354587 -14.444963598055297 30.494880369476512
1251 POINT 1244 -2.7709876179502317 -15.220794973793728 31.058554858511389
1252 POINT 1245 -2.854956939706299 -15.314296187677654 31.126487466818187
1253 POINT 1246 -1.2360679774997905 -11.052846761886887 35.212938452799463
1254 POINT 1247 -1.2802132624104974 -11.132706332511878 35.322855721984297
1255 POINT 1248 -1.3243585473212041 -11.212565903136872 35.432772991169131
1256 POINT 1249 -1.2360679774997905 -15.212938452799463 31.05284676188689
1257 POINT 1250 -1.2802132624104974 -15.322855721984293 31.13270633251188
1258 POINT 1251 -1.3243585473212041 -15.432772991169125 31.212565903136877
1259 POINT 1252 -1.368503832231911 -11.292425473761863 35.542690260353957
1260 POINT 1253 -1.4126491171426176 -11.372285044386858 35.652607529538784
1261 POINT 1254 -1.368503832231911 -15.542690260353954 31.292425473761867
1262 POINT 1255 -1.4126491171426176 -15.652607529538786 31.37228504438686
1263 POINT 1256 -1.4567944020533246 -11.45214461501185 35.762524798723618
1264 POINT 1257 -1.5009396869640312 -11.532004185636842 35.872442067908445
1265 POINT 1258 -1.4567944020533246 -15.762524798723616 31.452144615011854
1266 POINT 1259 -1.5009396869640312 -15.872442067908445 31.532004185636843
1267 POINT 1260 0 -18.070073809607919 25.871322893124002
1268 POINT 1261 0 -18.205939026221511 25.915468178034708
1269 POINT 1262 0 -18.341804242835106 25.959613462945416
1270 POINT 1263 1.2360679774997896 -17.883881733177201 25.810825420209159
1271 POINT 1264 1.2802132624104965 -18.013097232775412 25.852810081087192
1272 POINT 1265 1.3243585473212032 -18.142312732373622 25.894794741965228
1273 POINT 1266 2.3511410091698925 -17.343531281602559 25.635254915624213
1274 POINT 1267 2.4351103309259603 -17.453448550787389 25.670969201338497
1275 POINT 1268 2.5190796526820276 -17.563365819972219 25.706683487052786
1276 POINT 1269 0 -19 20.000000000000004
1277 POINT 1270 0 -19.142857142857142 20.000000000000004
1278 POINT 1271 0 -19.285714285714285 20.000000000000004
1279 POINT 1272 1.2360679774997896 -18.804226065180615 20.000000000000004
1280 POINT 1273 1.2802132624104965 -18.94009128179421 20.000000000000004
1281 POINT 1274 1.3243585473212032 -19.075956498407802 20.000000000000004
1282 POINT 1275 2.3511410091698925 -18.23606797749979 20.000000000000004
1283 POINT 1276 2.4351103309259603 -18.351641833839068 20.000000000000004
1284 POINT 1277 2.5190796526820276 -18.467215690178346 20.000000000000004
1285 POINT 1278 0 -18.477669459448702 26.003758747856125
1286 POINT 1279 0 -18.61353467606229 26.04790403276683
1287 POINT 1280 1.3685038322319101 -18.271528231971832 25.936779402843261
1288 POINT 1281 1.4126491171426165 -18.400743731570042 25.978764063721293
1289 POINT 1282 2.6030489744380954 -17.673283089157049 25.74239777276707
1290 POINT 1283 2.6870182961941627 -17.78320035834188 25.778112058481355
1291 POINT 1284 0 -19.428571428571431 20.000000000000004
1292 POINT 1285 0 -19.571428571428569 20.000000000000004
1293 POINT 1286 1.3685038322319101 -19.211821715021394 20.000000000000004
1294 POINT 1287 1.4126491171426165 -19.347686931634989 20.000000000000004
1295 POINT 1288 2.6030489744380954 -18.582789546517624 20.000000000000004
1296 POINT 1289 2.6870182961941627 -18.698363402856902 20.000000000000004
1297 POINT 1290 0 -18.749399892675886 26.092049317677535
1298 POINT 1291 0 -18.885265109289481 26.136194602588244
1299 POINT 1292 1.4567944020533234 -18.529959231168252 26.020748724599329
1300 POINT 1293 1.5009396869640301 -18.659174730766463 26.062733385477362
1301 POINT 1294 2.7709876179502304 -17.89311762752671 25.81382634419564
1302 POINT 1295 2.8549569397062977 -18.00303489671154 25.849540629909928
1303 POINT 1296 0 -19.714285714285715 20.000000000000004
1304 POINT 1297 0 -19.857142857142858 20.000000000000004
1305 POINT 1298 1.4567944020533234 -19.483552148248581 20.000000000000004
1306 POINT 1299 1.5009396869640301 -19.619417364862173 20.000000000000004
1307 POINT 1300 2.7709876179502304 -18.81393725919618 20.000000000000004
1308 POINT 1301 2.8549569397062977 -18.929511115535458 20.000000000000004
1309 POINT 1302 3.2360679774997894 -16.501915721927094 25.361797443629573
1310 POINT 1303 3.3516418338390679 -16.581775292552088 25.387745391058338
1311 POINT 1304 3.4672156901783455 -16.661634863177078 25.4136933384871
1312 POINT 1305 3.8042260651806146 -15.441418249012251 25.017220926874316
1313 POINT 1306 3.9400912817942082 -15.483402909890287 25.030862570133252
1314 POINT 1307 4.0759564984078009 -15.525387570768318 25.044504213392184
1315 POINT 1308 3.2360679774997894 -17.351141009169893 20.000000000000004
1316 POINT 1309 3.3516418338390679 -17.435110330925962 20.000000000000004
1317 POINT 1310 3.4672156901783455 -17.519079652682027 20.000000000000004
1318 POINT 1311 3.8042260651806146 -16.23606797749979 20.000000000000004
1319 POINT 1312 3.9400912817942082 -16.280213262410498 20.000000000000004
1320 POINT 1313 4.0759564984078009 -16.324358547321204 20.000000000000004
1321 POINT 1314 3.582789546517624 -16.741494433802071 25.439641285915862
1322 POINT 1315 3.6983634028569021 -16.821354004427064 25.465589233344627
1323 POINT 1316 4.2118217150213946 -15.567372231646351 25.058145856651116
1324 POINT 1317 4.3476869316349882 -15.609356892524387 25.071787499910048
1325 POINT 1318 3.582789546517624 -17.603048974438096 20.000000000000004
1326 POINT 1319 3.6983634028569021 -17.687018296194164 20.000000000000004
1327 POINT 1320 4.2118217150213946 -16.368503832231909 20.000000000000004
1328 POINT 1321 4.3476869316349882 -16.412649117142617 20.000000000000004
1329 POINT 1322 3.8139372591961802 -16.901213575052058 25.491537180773388
1330 POINT 1323 3.9295111155354583 -16.981073145677051 25.51748512820215
1331 POINT 1324 4.4835521482485818 -15.651341553402419 25.08542914316898
1332 POINT 1325 4.6194173648621746 -15.693326214280455 25.099070786427912
1333 POINT 1326 3.8139372591961802 -17.770987617950233 20.000000000000004
1334 POINT 1327 3.9295111155354583 -17.854956939706298 20.000000000000004
1335 POINT 1328 4.4835521482485818 -16.456794402053323 20.000000000000004
1336 POINT 1329 4.6194173648621746 -16.500939686964031 20.000000000000004
1337 POINT 1330 4 -14.265847744427305 24.635254915624213
1338 POINT 1331 4.1428571428571432 -14.265847744427305 24.635254915624213
1339 POINT 1332 4.2857142857142856 -14.265847744427305 24.635254915624213
1340 POINT 1333 3.8042260651806146 -13.090277239842358 24.253288904374109
1341 POINT 1334 3.9400912817942082 -13.048292578964324 24.239647261115174
1342 POINT 1335 4.0759564984078009 -13.006307918086291 24.226005617856242
1343 POINT 1336 4 -15 20.000000000000004
1344 POINT 1337 4.1428571428571432 -15 20.000000000000004
1345 POINT 1338 4.2857142857142856 -15 20.000000000000004
1346 POINT 1339 3.8042260651806146 -13.76393202250021 20
1347 POINT 1340 3.9400912817942082 -13.719786737589503 20
1348 POINT 1341 4.0759564984078009 -13.675641452678796 20
1349 POINT 1342 4.4285714285714288 -14.265847744427305 24.635254915624213
1350 POINT 1343 4.5714285714285712 -14.265847744427305 24.635254915624213
1351 POINT 1344 4.2118217150213946 -12.964323257208259 24.212363974597309
1352 POINT 1345 4.3476869316349882 -12.922338596330224 24.198722331338377
1353 POINT 1346 4.4285714285714288 -15 20.000000000000004
1354 POINT 1347 4.5714285714285712 -15 20.000000000000004
1355 POINT 1348 4.2118217150213946 -13.631496167768091 20
1356 POINT 1349 4.3476869316349882 -13.587350882857384 20
1357 POINT 1350 4.7142857142857144 -14.265847744427305 24.635254915624213
1358 POINT 1351 4.8571428571428568 -14.265847744427305 24.635254915624213
1359 POINT 1352 4.4835521482485818 -12.88035393545219 24.185080688079445
1360 POINT 1353 4.6194173648621746 -12.838369274574156 24.171439044820513
1361 POINT 1354 4.7142857142857144 -15 20.000000000000004
1362 POINT 1355 4.8571428571428568 -15 20.000000000000004
1363 POINT 1356 4.4835521482485818 -13.543205597946677 20
1364 POINT 1357 4.6194173648621746 -13.499060313035971 20
1365 POINT 1358 3.2360679774997898 -12.029779766927513 23.908712387618852
1366 POINT 1359 3.3516418338390683 -11.949920196302521 23.882764440190087
1367 POINT 1360 3.467215690178346 -11.87006062567753 23.856816492761325
1368 POINT 1361 2.351141009169893 -11.188164207252051 23.635254915624213
1369 POINT 1362 2.4351103309259607 -11.07824693806722 23.599540629909928
1370 POINT 1363 2.519079652682028 -10.96832966888239 23.56382634419564
1371 POINT 1364 3.2360679774997898 -12.648858990830107 20
1372 POINT 1365 3.3516418338390683 -12.56488966907404 20
1373 POINT 1366 3.467215690178346 -12.480920347317973 20
1374 POINT 1367 2.351141009169893 -11.76393202250021 20
1375 POINT 1368 2.4351103309259607 -11.648358166160932 20
1376 POINT 1369 2.519079652682028 -11.532784309821654 20
1377 POINT 1370 3.5827895465176245 -11.790201055052536 23.830868545332564
1378 POINT 1371 3.6983634028569026 -11.710341484427545 23.804920597903799
1379 POINT 1372 2.6030489744380958 -10.85841239969756 23.528112058481355
1380 POINT 1373 2.6870182961941631 -10.74849513051273 23.49239777276707
1381 POINT 1374 3.5827895465176245 -12.396951025561904 20
1382 POINT 1375 3.6983634028569026 -12.312981703805837 20
1383 POINT 1376 2.6030489744380958 -11.417210453482376 20
1384 POINT 1377 2.6870182961941631 -11.301636597143098 20
1385 POINT 1378 3.8139372591961811 -11.630481913802553 23.778972650475037
1386 POINT 1379 3.9295111155354587 -11.55062234317756 23.753024703046275
1387 POINT 1380 2.7709876179502313 -10.638577861327899 23.456683487052786
1388 POINT 1381 2.8549569397062986 -10.528660592143069 23.420969201338497
1389 POINT 1382 3.8139372591961811 -12.22901238204977 20
1390 POINT 1383 3.9295111155354587 -12.145043060293702 20
1391 POINT 1384 2.7709876179502313 -11.18606274080382 20
1392 POINT 1385 2.8549569397062986 -11.070488884464542 20
1393 POINT 1386 1.23606797749979 -10.64781375567741 23.459684411039266
1394 POINT 1387 1.2802132624104969 -10.518598256079198 23.417699750161233
1395 POINT 1388 1.3243585473212036 -10.389382756480988 23.375715089283197
1396 POINT 1389 4.8985871965894128e-16 -10.46162167924669 23.399186938124423
1397 POINT 1390 5.0735367393247495e-16 -10.325756462633096 23.355041653213718
1398 POINT 1391 5.2484862820600851e-16 -10.189891246019505 23.310896368303009
1399 POINT 1392 1.23606797749979 -11.195773934819385 20
1400 POINT 1393 1.2802132624104969 -11.059908718205792 20
1401 POINT 1394 1.3243585473212036 -10.924043501592198 20
1402 POINT 1395 4.8985871965894128e-16 -11 20
1403 POINT 1396 5.0735367393247495e-16 -10.857142857142858 20
1404 POINT 1397 5.2484862820600851e-16 -10.714285714285715 20
1405 POINT 1398 1.3685038322319105 -10.260167256882779 23.333730428405165
1406 POINT 1399 1.4126491171426172 -10.130951757284565 23.291745767527132
1407 POINT 1400 5.4234358247954217e-16 -10.054026029405909 23.2667510833923
1408 POINT 1401 5.5983853675307574e-16 -9.9181608127923173 23.222605798481595
1409 POINT 1402 1.3685038322319105 -10.788178284978606 20
1410 POINT 1403 1.4126491171426172 -10.652313068365011 20
1411 POINT 1404 5.4234358247954217e-16 -10.571428571428571 20
1412 POINT 1405 5.5983853675307574e-16 -10.428571428571429 20
1413 POINT 1406 1.4567944020533239 -10.001736257686357 23.249761106649096
1414 POINT 1407 1.5009396869640306 -9.8725207580881467 23.207776445771064
1415 POINT 1408 5.773334910266094e-16 -9.7822955961787219 23.17846051357089
1416 POINT 1409 5.9482844530014297e-16 -9.6464303795651301 23.134315228660181
1417 POINT 1410 1.4567944020533239 -10.516447851751419 20
1418 POINT 1411 1.5009396869640306 -10.380582635137825 20
1419 POINT 1412 5.773334910266094e-16 -10.285714285714285 20
1420 POINT 1413 5.9482844530014297e-16 -10.142857142857142 20
1421 POINT 1414 -1.2360679774997874 -10.64781375567741 23.459684411039266
1422 POINT 1415 -1.2802132624104943 -10.518598256079198 23.417699750161233
1423 POINT 1416 -1.3243585473212007 -10.389382756480988 23.375715089283197
1424 POINT 1417 -2.3511410091698921 -11.188164207252051 23.635254915624213
1425 POINT 1418 -2.4351103309259599 -11.07824693806722 23.599540629909928
1426 POINT 1419 -2.5190796526820272 -10.96832966888239 23.56382634419564
1427 POINT 1420 -1.2360679774997874 -11.195773934819385 20
1428 POINT 1421 -1.2802132624104943 -11.059908718205792 20
1429 POINT 1422 -1.3243585473212007 -10.924043501592198 20
1430 POINT 1423 -2.3511410091698921 -11.76393202250021 20
1431 POINT 1424 -2.4351103309259599 -11.648358166160932 20
1432 POINT 1425 -2.5190796526820272 -11.532784309821654 20
1433 POINT 1426 -1.3685038322319074 -10.260167256882777 23.333730428405165
1434 POINT 1427 -1.4126491171426141 -10.130951757284565 23.291745767527132
1435 POINT 1428 -2.6030489744380949 -10.85841239969756 23.528112058481355
1436 POINT 1429 -2.6870182961941622 -10.74849513051273 23.49239777276707
1437 POINT 1430 -1.3685038322319074 -10.788178284978605 20
1438 POINT 1431 -1.4126491171426141 -10.652313068365011 20
1439 POINT 1432 -2.6030489744380949 -11.417210453482376 20
1440 POINT 1433 -2.6870182961941622 -11.301636597143098 20
1441 POINT 1434 -1.4567944020533208 -10.001736257686357 23.249761106649096
1442 POINT 1435 -1.5009396869640275 -9.8725207580881467 23.207776445771064
1443 POINT 1436 -2.77098761795023 -10.638577861327899 23.456683487052786
1444 POINT 1437 -2.8549569397062973 -10.528660592143069 23.420969201338497
1445 POINT 1438 -1.4567944020533208 -10.516447851751419 20
1446 POINT 1439 -1.5009396869640275 -10.380582635137825 20
1447 POINT 1440 -2.77098761795023 -11.18606274080382 20
1448 POINT 1441 -2.8549569397062973 -11.070488884464542 20
1449 POINT 1442 -3.2360679774997894 -12.029779766927513 23.908712387618852
1450 POINT 1443 -3.3516418338390679 -11.949920196302521 23.882764440190087
1451 POINT 1444 -3.4672156901783455 -11.87006062567753 23.856816492761325
1452 POINT 1445 -3.8042260651806141 -13.090277239842358 24.253288904374109
1453 POINT 1446 -3.9400912817942078 -13.048292578964324 24.239647261115174
1454 POINT 1447 -4.0759564984078009 -13.006307918086291 24.226005617856242
1455 POINT 1448 -3.2360679774997894 -12.648858990830107 20
1456 POINT 1449 -3.3516418338390679 -12.56488966907404 20
1457 POINT 1450 -3.4672156901783455 -12.480920347317973 20
1458 POINT 1451 -3.8042260651806141 -13.76393202250021 20
1459 POINT 1452 -3.9400912817942078 -13.719786737589503 20
1460 POINT 1453 -4.0759564984078009 -13.675641452678796 20
1461 POINT 1454 -3.582789546517624 -11.790201055052536 23.830868545332564
1462 POINT 1455 -3.6983634028569021 -11.710341484427545 23.804920597903799
1463 POINT 1456 -4.2118217150213946 -12.964323257208257 24.212363974597309
1464 POINT 1457 -4.3476869316349873 -12.922338596330222 24.198722331338377
1465 POINT 1458 -3.582789546517624 -12.396951025561904 20
1466 POINT 1459 -3.6983634028569021 -12.312981703805837 20
1467 POINT 1460 -4.2118217150213946 -13.631496167768089 20
1468 POINT 1461 -4.3476869316349873 -13.587350882857383 20
1469 POINT 1462 -3.8139372591961802 -11.630481913802551 23.778972650475037
1470 POINT 1463 -3.9295111155354583 -11.55062234317756 23.753024703046275
1471 POINT 1464 -4.4835521482485809 -12.880353935452188 24.185080688079445
1472 POINT 1465 -4.6194173648621737 -12.838369274574154 24.171439044820513
1473 POINT 1466 -3.8139372591961802 -12.229012382049769 20
1474 POINT 1467 -3.9295111155354583 -12.145043060293702 20
1475 POINT 1468 -4.4835521482485809 -13.543205597946676 20
1476 POINT 1469 -4.6194173648621737 -13.499060313035969 20
1477 POINT 1470 -4 -14.265847744427305 24.635254915624213
1478 POINT 1471 -4.1428571428571432 -14.265847744427305 24.635254915624213
1479 POINT 1472 -4.2857142857142856 -14.265847744427305 24.635254915624213
1480 POINT 1473 -3.8042260651806146 -15.441418249012251 25.017220926874316
1481 POINT 1474 -3.9400912817942082 -15.483402909890284 25.030862570133252
1482 POINT 1475 -4.0759564984078009 -15.525387570768318 25.044504213392184
1483 POINT 1476 -4 -15 20.000000000000004
1484 POINT 1477 -4.1428571428571432 -15 20.000000000000004
1485 POINT 1478 -4.2857142857142856 -15 20.000000000000004
1486 POINT 1479 -3.8042260651806146 -16.23606797749979 20.000000000000004
1487 POINT 1480 -3.9400912817942082 -16.280213262410495 20.000000000000004
1488 POINT 1481 -4.0759564984078009 -16.324358547321204 20.000000000000004
1489 POINT 1482 -4.4285714285714288 -14.265847744427305 24.635254915624213
1490 POINT 1483 -4.5714285714285712 -14.265847744427305 24.635254915624213
1491 POINT 1484 -4.2118217150213946 -15.567372231646351 25.058145856651116
1492 POINT 1485 -4.3476869316349882 -15.609356892524387 25.071787499910048
1493 POINT 1486 -4.4285714285714288 -15 20.000000000000004
1494 POINT 1487 -4.5714285714285712 -15 20.000000000000004
1495 POINT 1488 -4.2118217150213946 -16.368503832231909 20.000000000000004
1496 POINT 1489 -4.3476869316349882 -16.412649117142617 20.000000000000004
1497 POINT 1490 -4.7142857142857144 -14.265847744427305 24.635254915624213
1498 POINT 1491 -4.8571428571428568 -14.265847744427303 24.635254915624213
1499 POINT 1492 -4.4835521482485818 -15.651341553402419 25.08542914316898
1500 POINT 1493 -4.6194173648621746 -15.693326214280452 25.099070786427912
1501 POINT 1494 -4.7142857142857144 -15 20.000000000000004
1502 POINT 1495 -4.8571428571428568 -14.999999999999998 20.000000000000004
1503 POINT 1496 -4.4835521482485818 -16.456794402053323 20.000000000000004
1504 POINT 1497 -4.6194173648621746 -16.500939686964028 20.000000000000004
1505 POINT 1498 -3.2360679774997898 -16.501915721927094 25.361797443629573
1506 POINT 1499 -3.3516418338390683 -16.581775292552084 25.387745391058335
1507 POINT 1500 -3.467215690178346 -16.661634863177078 25.4136933384871
1508 POINT 1501 -2.3511410091698934 -17.343531281602559 25.635254915624213
1509 POINT 1502 -2.4351103309259612 -17.453448550787389 25.670969201338497
1510 POINT 1503 -2.5190796526820285 -17.563365819972219 25.706683487052786
1511 POINT 1504 -3.2360679774997898 -17.351141009169893 20.000000000000004
1512 POINT 1505 -3.3516418338390683 -17.435110330925959 20.000000000000004
1513 POINT 1506 -3.467215690178346 -17.519079652682027 20.000000000000004
1514 POINT 1507 -2.3511410091698934 -18.23606797749979 20.000000000000004
1515 POINT 1508 -2.4351103309259612 -18.351641833839068 20.000000000000004
1516 POINT 1509 -2.5190796526820285 -18.467215690178346 20.000000000000004
1517 POINT 1510 -3.5827895465176245 -16.741494433802071 25.439641285915862
1518 POINT 1511 -3.6983634028569026 -16.821354004427061 25.465589233344623
1519 POINT 1512 -2.6030489744380962 -17.673283089157049 25.74239777276707
1520 POINT 1513 -2.687018296194164 -17.78320035834188 25.778112058481355
1521 POINT 1514 -3.5827895465176245 -17.603048974438096 20.000000000000004
1522 POINT 1515 -3.6983634028569026 -17.687018296194161 20.000000000000004
1523 POINT 1516 -2.6030489744380962 -18.582789546517624 20.000000000000004
1524 POINT 1517 -2.687018296194164 -18.698363402856902 20.000000000000004
1525 POINT 1518 -3.8139372591961811 -16.901213575052058 25.491537180773388
1526 POINT 1519 -3.9295111155354587 -16.981073145677051 25.51748512820215
1527 POINT 1520 -2.7709876179502317 -17.89311762752671 25.81382634419564
1528 POINT 1521 -2.854956939706299 -18.00303489671154 25.849540629909928
1529 POINT 1522 -3.8139372591961811 -17.77098761795023 20.000000000000004
1530 POINT 1523 -3.9295111155354587 -17.854956939706298 20.000000000000004
1531 POINT 1524 -2.7709876179502317 -18.81393725919618 20.000000000000004
1532 POINT 1525 -2.854956939706299 -18.929511115535458 20.000000000000004
1533 POINT 1526 -1.2360679774997905 -17.883881733177201 25.810825420209159
1534 POINT 1527 -1.2802132624104974 -18.013097232775408 25.852810081087192
1535 POINT 1528 -1.3243585473212041 -18.142312732373622 25.894794741965228
1536 POINT 1529 -1.2360679774997905 -18.804226065180615 20.000000000000004
1537 POINT 1530 -1.2802132624104974 -18.940091281794206 20.000000000000004
1538 POINT 1531 -1.3243585473212041 -19.075956498407802 20.000000000000004
1539 POINT 1532 -1.368503832231911 -18.271528231971832 25.936779402843261
1540 POINT 1533 -1.4126491171426176 -18.400743731570042 25.978764063721293
1541 POINT 1534 -1.368503832231911 -19.211821715021394 20.000000000000004
1542 POINT 1535 -1.4126491171426176 -19.347686931634989 20.000000000000004
1543 POINT 1536 -1.4567944020533246 -18.529959231168252 26.020748724599329
1544 POINT 1537 -1.5009396869640312 -18.659174730766463 26.062733385477362
1545 POINT 1538 -1.4567944020533246 -19.483552148248581 20.000000000000004
1546 POINT 1539 -1.5009396869640312 -19.619417364862173 20.000000000000004
1547 POINT 1540 0 -18.070073809607923 14.12867710687601
1548 POINT 1541 0 -18.205939026221515 14.084531821965303
1549 POINT 1542 0 -18.341804242835106 14.040386537054598
1550 POINT 1543 1.2360679774997896 -17.883881733177201 14.189174579790853
1551 POINT 1544 1.2802132624104965 -18.013097232775415 14.147189918912819
1552 POINT 1545 1.3243585473212032 -18.142312732373625 14.105205258034786
1553 POINT 1546 2.3511410091698925 -17.343531281602559 14.364745084375798
1554 POINT 1547 2.4351103309259603 -17.453448550787392 14.329030798661513
1555 POINT 1548 2.5190796526820276 -17.563365819972223 14.293316512947229
1556 POINT 1549 0 -15.371322893124002 8.8320802064430133
1557 POINT 1550 0 -15.486896749463279 8.7481108846869446
1558 POINT 1551 0 -15.602470605802557 8.6641415629308778
1559 POINT 1552 1.2360679774997896 -15.212938452799465 8.9471532381131151
1560 POINT 1553 1.2802132624104965 -15.322855721984297 8.8672936674881218
1561 POINT 1554 1.3243585473212032 -15.432772991169127 8.7874340968631302
1562 POINT 1555 2.3511410091698925 -14.753288904374108 9.2811081830225977
1563 POINT 1556 2.4351103309259603 -14.846790118258031 9.2131755747158017
1564 POINT 1557 2.5190796526820276 -14.940291332141957 9.145242966409004
1565 POINT 1558 0 -18.477669459448702 13.996241252143889
1566 POINT 1559 0 -18.613534676062294 13.952095967233184
1567 POINT 1560 1.3685038322319101 -18.271528231971832 14.063220597156754
1568 POINT 1561 1.4126491171426165 -18.400743731570046 14.021235936278718
1569 POINT 1562 2.6030489744380954 -17.673283089157053 14.257602227232942
1570 POINT 1563 2.6870182961941627 -17.783200358341883 14.221887941518656
1571 POINT 1564 0 -15.718044462141838 8.5801722411748091
1572 POINT 1565 0 -15.833618318481113 8.4962029194187441
1573 POINT 1566 1.3685038322319101 -15.542690260353956 8.7075745262381385
1574 POINT 1567 1.4126491171426165 -15.652607529538788 8.6277149556131452
1575 POINT 1568 2.6030489744380954 -15.033792546025881 9.0773103581022081
1576 POINT 1569 2.6870182961941627 -15.127293759909806 9.0093777497954122
1577 POINT 1570 0 -18.749399892675889 13.907950682322475
1578 POINT 1571 0 -18.885265109289481 13.86380539741177
1579 POINT 1572 1.4567944020533234 -18.529959231168256 13.979251275400685
1580 POINT 1573 1.5009396869640301 -18.659174730766463 13.937266614522652
1581 POINT 1574 2.7709876179502304 -17.893117627526713 14.186173655804371
1582 POINT 1575 2.8549569397062977 -18.003034896711544 14.150459370090086
1583 POINT 1576 0 -15.949192174820393 8.4122335976626736
1584 POINT 1577 0 -16.064766031159671 8.3282642759066068
1585 POINT 1578 1.4567944020533234 -15.762524798723618 8.5478553849881536
1586 POINT 1579 1.5009396869640301 -15.872442067908446 8.467995814363162
1587 POINT 1580 2.7709876179502304 -15.22079497379373 8.9414451414886145
1588 POINT 1581 2.8549569397062977 -15.314296187677655 8.8735125331818185
1589 POINT 1582 3.2360679774997894 -16.501915721927098 14.638202556370437
1590 POINT 1583 3.3516418338390679 -16.581775292552091 14.612254608941674
1591 POINT 1584 3.4672156901783455 -16.661634863177081 14.586306661512912
1592 POINT 1585 3.8042260651806146 -15.441418249012253 14.982779073125693
1593 POINT 1586 3.9400912817942082 -15.483402909890289 14.969137429866759
1594 POINT 1587 4.0759564984078009 -15.52538757076832 14.955495786607829
1595 POINT 1588 3.2360679774997894 -14.03736794821452 9.8012552043627998
1596 POINT 1589 3.3516418338390679 -14.105300556521318 9.7518992753895812
1597 POINT 1590 3.4672156901783455 -14.173233164828112 9.7025433464163644
1598 POINT 1591 3.8042260651806146 -13.135254915624213 10.456678687607544
1599 POINT 1592 3.9400912817942082 -13.170969201338499 10.430730740178779
1600 POINT 1593 4.0759564984078009 -13.206683487052784 10.404782792750018
1601 POINT 1594 3.582789546517624 -16.741494433802075 14.560358714084149
1602 POINT 1595 3.6983634028569021 -16.821354004427068 14.534410766655386
1603 POINT 1596 4.2118217150213946 -15.567372231646353 14.941854143348896
1604 POINT 1597 4.3476869316349882 -15.609356892524389 14.928212500089963
1605 POINT 1598 3.582789546517624 -14.24116577313491 9.6531874174431458
1606 POINT 1599 3.6983634028569021 -14.309098381441707 9.6038314884699272
1607 POINT 1600 4.2118217150213946 -13.242397772767069 10.378834845321256
1608 POINT 1601 4.3476869316349882 -13.278112058481355 10.352886897892493
1609 POINT 1602 3.8139372591961802 -16.901213575052061 14.508462819226622
1610 POINT 1603 3.9295111155354583 -16.981073145677051 14.482514871797861
1611 POINT 1604 4.4835521482485818 -15.651341553402421 14.91457085683103
1612 POINT 1605 4.6194173648621746 -15.693326214280457 14.900929213572098
1613 POINT 1606 3.8139372591961802 -14.377030989748505 9.5544755594967086
1614 POINT 1607 3.9295111155354583 -14.444963598055299 9.5051196305234917
1615 POINT 1608 4.4835521482485818 -13.31382634419564 10.326938950463729
1616 POINT 1609 4.6194173648621746 -13.349540629909926 10.300991003034966
1617 POINT 1610 4 -14.265847744427306 15.364745084375798
1618 POINT 1611 4.1428571428571432 -14.265847744427306 15.364745084375798
1619 POINT 1612 4.2857142857142856 -14.265847744427306 15.364745084375798
1620 POINT 1613 3.8042260651806146 -13.09027723984236 15.746711095625901
1621 POINT 1614 3.9400912817942082 -13.048292578964325 15.760352738884833
1622 POINT 1615 4.0759564984078009 -13.006307918086291 15.773994382143766
1623 POINT 1616 4 -12.135254915624213 11.183221215612905
1624 POINT 1617 4.1428571428571432 -12.135254915624213 11.183221215612905
1625 POINT 1618 4.2857142857142856 -12.135254915624213 11.183221215612905
1626 POINT 1619 3.8042260651806146 -11.135254915624211 11.909763743618266
1627 POINT 1620 3.9400912817942082 -11.099540629909926 11.935711691047029
1628 POINT 1621 4.0759564984078009 -11.06382634419564 11.961659638475791
1629 POINT 1622 4.4285714285714288 -14.265847744427306 15.364745084375798
1630 POINT 1623 4.5714285714285712 -14.265847744427306 15.364745084375798
1631 POINT 1624 4.2118217150213946 -12.96432325720826 15.787636025402698
1632 POINT 1625 4.3476869316349882 -12.922338596330226 15.80127766866163
1633 POINT 1626 4.4285714285714288 -12.135254915624213 11.183221215612905
1634 POINT 1627 4.5714285714285712 -12.135254915624213 11.183221215612905
1635 POINT 1628 4.2118217150213946 -11.028112058481355 11.987607585904554
1636 POINT 1629 4.3476869316349882 -10.99239777276707 12.013555533333317
1637 POINT 1630 4.7142857142857144 -14.265847744427306 15.364745084375798
1638 POINT 1631 4.8571428571428568 -14.265847744427306 15.364745084375798
1639 POINT 1632 4.4835521482485818 -12.880353935452192 15.814919311920562
1640 POINT 1633 4.6194173648621746 -12.838369274574157 15.828560955179494
1641 POINT 1634 4.7142857142857144 -12.135254915624213 11.183221215612905
1642 POINT 1635 4.8571428571428568 -12.135254915624213 11.183221215612905
1643 POINT 1636 4.4835521482485818 -10.956683487052784 12.039503480762079
1644 POINT 1637 4.6194173648621746 -10.920969201338497 12.065451428190842
1645 POINT 1638 3.2360679774997898 -12.029779766927515 16.091287612381159
1646 POINT 1639 3.3516418338390683 -11.949920196302523 16.11723555980992
1647 POINT 1640 3.467215690178346 -11.870060625677532 16.143183507238682
1648 POINT 1641 2.351141009169893 -11.188164207252052 16.364745084375794
1649 POINT 1642 2.4351103309259607 -11.078246938067222 16.400459370090083
1650 POINT 1643 2.519079652682028 -10.968329668882392 16.436173655804367
1651 POINT 1644 3.2360679774997898 -10.233141883033904 12.56518722686301
1652 POINT 1645 3.3516418338390683 -10.165209274727108 12.614543155836227
1653 POINT 1646 3.467215690178346 -10.097276666420312 12.663899084809445
1654 POINT 1647 2.351141009169893 -9.517220926874316 13.08533424820321
1655 POINT 1648 2.4351103309259607 -9.4237197129903922 13.153266856510008
1656 POINT 1649 2.519079652682028 -9.3302184991064667 13.221199464816806
1657 POINT 1650 3.5827895465176245 -11.790201055052538 16.169131454667447
1658 POINT 1651 3.6983634028569026 -11.710341484427547 16.195079402096209
1659 POINT 1652 2.6030489744380958 -10.858412399697562 16.471887941518652
1660 POINT 1653 2.6870182961941631 -10.748495130512731 16.507602227232937
1661 POINT 1654 3.5827895465176245 -10.029344058113514 12.713255013782664
1662 POINT 1655 3.6983634028569026 -9.9614114498067181 12.762610942755881
1663 POINT 1656 2.6030489744380958 -9.236717285222543 13.2891320731236
1664 POINT 1657 2.6870182961941631 -9.1432160713386175 13.357064681430398
1665 POINT 1658 3.8139372591961811 -11.630481913802555 16.22102734952497
1666 POINT 1659 3.9295111155354587 -11.550622343177562 16.246975296953735
1667 POINT 1660 2.7709876179502313 -10.638577861327901 16.543316512947225
1668 POINT 1661 2.8549569397062986 -10.528660592143069 16.57903079866151
1669 POINT 1662 3.8139372591961811 -9.8934788414999222 12.8119668717291
1670 POINT 1663 3.9295111155354587 -9.8255462331931245 12.861322800702318
1671 POINT 1664 2.7709876179502313 -9.0497148574546937 13.424997289737195
1672 POINT 1665 2.8549569397062986 -8.9562136435707682 13.492929898043991
1673 POINT 1666 1.23606797749979 -10.64781375567741 16.540315588960741
1674 POINT 1667 1.2802132624104969 -10.5185982560792 16.582300249838774
1675 POINT 1668 1.3243585473212036 -10.389382756480989 16.62428491071681
1676 POINT 1669 4.8985871965894128e-16 -10.461621679246692 16.600813061875584
1677 POINT 1670 5.0735367393247495e-16 -10.325756462633098 16.644958346786289
1678 POINT 1671 5.2484862820600851e-16 -10.189891246019505 16.689103631696998
1679 POINT 1672 1.23606797749979 -9.0575713784489587 13.419289193112693
1680 POINT 1673 1.2802132624104969 -8.9476541092641266 13.499148763737686
1681 POINT 1674 1.3243585473212036 -8.8377368400792964 13.57900833436268
1682 POINT 1675 4.8985871965894128e-16 -8.8991869381244229 13.534362224782797
1683 POINT 1676 5.0735367393247495e-16 -8.7836130817851448 13.618331546538865
1684 POINT 1677 5.2484862820600851e-16 -8.6680392254458667 13.70230086829493
1685 POINT 1678 1.3685038322319105 -10.260167256882779 16.666269571594842
1686 POINT 1679 1.4126491171426172 -10.130951757284567 16.708254232472875
1687 POINT 1680 5.4234358247954217e-16 -10.054026029405911 16.733248916607707
1688 POINT 1681 5.5983853675307574e-16 -9.9181608127923173 16.777394201518412
1689 POINT 1682 1.3685038322319105 -8.7278195708944679 13.658867904987671
1690 POINT 1683 1.4126491171426172 -8.6179023017096359 13.738727475612665
1691 POINT 1684 5.4234358247954217e-16 -8.5524653691065868 13.786270190050999
1692 POINT 1685 5.5983853675307574e-16 -8.4368915127673088 13.870239511807068
1693 POINT 1686 1.4567944020533239 -10.001736257686359 16.750238893350911
1694 POINT 1687 1.5009396869640306 -9.8725207580881467 16.792223554228944
1695 POINT 1688 5.773334910266094e-16 -9.7822955961787237 16.821539486429117
1696 POINT 1689 5.9482844530014297e-16 -9.6464303795651301 16.865684771339826
1697 POINT 1690 1.4567944020533239 -8.5079850325248056 13.818587046237656
1698 POINT 1691 1.5009396869640306 -8.3980677633399754 13.89844661686265
1699 POINT 1692 5.773334910266094e-16 -8.3213176564280307 13.954208833563136
1700 POINT 1693 5.9482844530014297e-16 -8.2057438000887526 14.038178155319201
1701 POINT 1694 -1.2360679774997874 -10.64781375567741 16.540315588960741
1702 POINT 1695 -1.2802132624104943 -10.5185982560792 16.582300249838774
1703 POINT 1696 -1.3243585473212007 -10.389382756480989 16.62428491071681
1704 POINT 1697 -2.3511410091698921 -11.188164207252052 16.364745084375794
1705 POINT 1698 -2.4351103309259599 -11.078246938067222 16.400459370090083
1706 POINT 1699 -2.5190796526820272 -10.968329668882392 16.436173655804367
1707 POINT 1700 -1.2360679774997874 -9.0575713784489587 13.419289193112693
1708 POINT 1701 -1.2802132624104943 -8.9476541092641266 13.499148763737686
1709 POINT 1702 -1.3243585473212007 -8.8377368400792964 13.57900833436268
1710 POINT 1703 -2.3511410091698921 -9.517220926874316 13.08533424820321
1711 POINT 1704 -2.4351103309259599 -9.4237197129903922 13.153266856510008
1712 POINT 1705 -2.5190796526820272 -9.3302184991064667 13.221199464816806
1713 POINT 1706 -1.3685038322319074 -10.260167256882777 16.666269571594842
1714 POINT 1707 -1.4126491171426141 -10.130951757284567 16.708254232472875
1715 POINT 1708 -2.6030489744380949 -10.858412399697562 16.471887941518652
1716 POINT 1709 -2.6870182961941622 -10.748495130512731 16.507602227232937
1717 POINT 1710 -1.3685038322319074 -8.7278195708944661 13.658867904987673
1718 POINT 1711 -1.4126491171426141 -8.6179023017096359 13.738727475612665
1719 POINT 1712 -2.6030489744380949 -9.236717285222543 13.2891320731236
1720 POINT 1713 -2.6870182961941622 -9.1432160713386175 13.357064681430398
1721 POINT 1714 -1.4567944020533208 -10.001736257686359 16.750238893350911
1722 POINT 1715 -1.5009396869640275 -9.8725207580881467 16.792223554228944
1723 POINT 1716 -2.77098761795023 -10.638577861327901 16.543316512947225
1724 POINT 1717 -2.8549569397062973 -10.528660592143069 16.57903079866151
1725 POINT 1718 -1.4567944020533208 -8.5079850325248056 13.818587046237656
1726 POINT 1719 -1.5009396869640275 -8.3980677633399754 13.89844661686265
1727 POINT 1720 -2.77098761795023 -9.0497148574546937 13.424997289737195
1728 POINT 1721 -2.8549569397062973 -8.9562136435707682 13.492929898043991
1729 POINT 1722 -3.2360679774997894 -12.029779766927515 16.091287612381159
1730 POINT 1723 -3.3516418338390679 -11.949920196302523 16.11723555980992
1731 POINT 1724 -3.4672156901783455 -11.870060625677532 16.143183507238682
1732 POINT 1725 -3.8042260651806141 -13.09027723984236 15.746711095625901
1733 POINT 1726 -3.9400912817942078 -13.048292578964325 15.760352738884833
1734 POINT 1727 -4.0759564984078009 -13.006307918086291 15.773994382143766
1735 POINT 1728 -3.2360679774997894 -10.233141883033904 12.56518722686301
1736 POINT 1729 -3.3516418338390679 -10.165209274727108 12.614543155836227
1737 POINT 1730 -3.4672156901783455 -10.097276666420312 12.663899084809445
1738 POINT 1731 -3.8042260651806141 -11.135254915624211 11.909763743618266
1739 POINT 1732 -3.9400912817942078 -11.099540629909926 11.935711691047029
1740 POINT 1733 -4.0759564984078009 -11.06382634419564 11.961659638475791
1741 POINT 1734 -3.582789546517624 -11.790201055052538 16.169131454667447
1742 POINT 1735 -3.6983634028569021 -11.710341484427547 16.195079402096209
1743 POINT 1736 -4.2118217150213946 -12.964323257208259 15.787636025402698
1744 POINT 1737 -4.3476869316349873 -12.922338596330224 15.801277668661632
1745 POINT 1738 -3.582789546517624 -10.029344058113514 12.713255013782664
1746 POINT 1739 -3.6983634028569021 -9.9614114498067181 12.762610942755881
1747 POINT 1740 -4.2118217150213946 -11.028112058481355 11.987607585904554
1748 POINT 1741 -4.3476869316349873 -10.992397772767069 12.013555533333317
1749 POINT 1742 -3.8139372591961802 -11.630481913802553 16.22102734952497
1750 POINT 1743 -3.9295111155354583 -11.550622343177562 16.246975296953735
1751 POINT 1744 -4.4835521482485809 -12.88035393545219 15.814919311920564
1752 POINT 1745 -4.6194173648621737 -12.838369274574156 15.828560955179496
1753 POINT 1746 -3.8139372591961802 -9.8934788414999204 12.811966871729101
1754 POINT 1747 -3.9295111155354583 -9.8255462331931245 12.861322800702318
1755 POINT 1748 -4.4835521482485809 -10.956683487052782 12.039503480762081
1756 POINT 1749 -4.6194173648621737 -10.920969201338497 12.065451428190844
1757 POINT 1750 -4 -14.265847744427306 15.364745084375798
1758 POINT 1751 -4.1428571428571432 -14.265847744427306 15.364745084375798
1759 POINT 1752 -4.2857142857142856 -14.265847744427306 15.364745084375798
1760 POINT 1753 -3.8042260651806146 -15.441418249012253 14.982779073125693
1761 POINT 1754 -3.9400912817942082 -15.483402909890286 14.969137429866761
1762 POINT 1755 -4.0759564984078009 -15.52538757076832 14.955495786607829
1763 POINT 1756 -4 -12.135254915624213 11.183221215612905
1764 POINT 1757 -4.1428571428571432 -12.135254915624213 11.183221215612905
1765 POINT 1758 -4.2857142857142856 -12.135254915624213 11.183221215612905
1766 POINT 1759 -3.8042260651806146 -13.135254915624213 10.456678687607544
1767 POINT 1760 -3.9400912817942082 -13.170969201338496 10.430730740178781
1768 POINT 1761 -4.0759564984078009 -13.206683487052784 10.404782792750018
1769 POINT 1762 -4.4285714285714288 -14.265847744427306 15.364745084375798
1770 POINT 1763 -4.5714285714285712 -14.265847744427306 15.364745084375798
1771 POINT 1764 -4.2118217150213946 -15.567372231646353 14.941854143348896
1772 POINT 1765 -4.3476869316349882 -15.609356892524389 14.928212500089963
1773 POINT 1766 -4.4285714285714288 -12.135254915624213 11.183221215612905
1774 POINT 1767 -4.5714285714285712 -12.135254915624213 11.183221215612905
1775 POINT 1768 -4.2118217150213946 -13.242397772767069 10.378834845321256
1776 POINT 1769 -4.3476869316349882 -13.278112058481355 10.352886897892493
1777 POINT 1770 -4.7142857142857144 -14.265847744427306 15.364745084375798
1778 POINT 1771 -4.8571428571428568 -14.265847744427305 15.364745084375798
1779 POINT 1772 -4.4835521482485818 -15.651341553402421 14.91457085683103
1780 POINT 1773 -4.6194173648621746 -15.693326214280454 14.9009292135721
1781 POINT 1774 -4.7142857142857144 -12.135254915624213 11.183221215612905
1782 POINT 1775 -4.8571428571428568 -12.135254915624211 11.183221215612905
1783 POINT 1776 -4.4835521482485818 -13.31382634419564 10.326938950463729
1784 POINT 1777 -4.6194173648621746 -13.349540629909924 10.300991003034968
1785 POINT 1778 -3.2360679774997898 -16.501915721927098 14.638202556370437
1786 POINT 1779 -3.3516418338390683 -16.581775292552088 14.612254608941676
1787 POINT 1780 -3.467215690178346 -16.661634863177081 14.586306661512912
1788 POINT 1781 -2.3511410091698934 -17.343531281602559 14.364745084375798
1789 POINT 1782 -2.4351103309259612 -17.453448550787392 14.329030798661513
1790 POINT 1783 -2.5190796526820285 -17.563365819972223 14.293316512947229
1791 POINT 1784 -3.2360679774997898 -14.03736794821452 9.8012552043627998
1792 POINT 1785 -3.3516418338390683 -14.105300556521314 9.751899275389583
1793 POINT 1786 -3.467215690178346 -14.173233164828112 9.7025433464163644
1794 POINT 1787 -2.3511410091698934 -14.753288904374108 9.2811081830225977
1795 POINT 1788 -2.4351103309259612 -14.846790118258031 9.2131755747158017
1796 POINT 1789 -2.5190796526820285 -14.940291332141957 9.145242966409004
1797 POINT 1790 -3.5827895465176245 -16.741494433802075 14.560358714084149
1798 POINT 1791 -3.6983634028569026 -16.821354004427064 14.534410766655387
1799 POINT 1792 -2.6030489744380962 -17.673283089157053 14.257602227232942
1800 POINT 1793 -2.687018296194164 -17.783200358341883 14.221887941518656
1801 POINT 1794 -3.5827895465176245 -14.24116577313491 9.6531874174431458
1802 POINT 1795 -3.6983634028569026 -14.309098381441704 9.603831488469929
1803 POINT 1796 -2.6030489744380962 -15.033792546025881 9.0773103581022081
1804 POINT 1797 -2.687018296194164 -15.127293759909806 9.0093777497954122
1805 POINT 1798 -3.8139372591961811 -16.901213575052058 14.508462819226624
1806 POINT 1799 -3.9295111155354587 -16.981073145677051 14.482514871797861
1807 POINT 1800 -2.7709876179502317 -17.893117627526713 14.186173655804371
1808 POINT 1801 -2.854956939706299 -18.003034896711544 14.150459370090086
1809 POINT 1802 -3.8139372591961811 -14.377030989748501 9.5544755594967103
1810 POINT 1803 -3.9295111155354587 -14.444963598055299 9.5051196305234917
1811 POINT 1804 -2.7709876179502317 -15.22079497379373 8.9414451414886145
1812 POINT 1805 -2.854956939706299 -15.314296187677655 8.8735125331818185
1813 POINT 1806 -1.2360679774997905 -17.883881733177201 14.189174579790853
1814 POINT 1807 -1.2802132624104974 -18.013097232775412 14.147189918912819
1815 POINT 1808 -1.3243585473212041 -18.142312732373625 14.105205258034786
1816 POINT 1809 -1.2360679774997905 -15.212938452799465 8.9471532381131151
1817 POINT 1810 -1.2802132624104974 -15.322855721984295 8.8672936674881235
1818 POINT 1811 -1.3243585473212041 -15.432772991169127 8.7874340968631302
1819 POINT 1812 -1.368503832231911 -18.271528231971832 14.063220597156754
1820 POINT 1813 -1.4126491171426176 -18.400743731570046 14.021235936278718
1821 POINT 1814 -1.368503832231911 -15.542690260353956 8.7075745262381385
1822 POINT 1815 -1.4126491171426176 -15.652607529538788 8.6277149556131452
1823 POINT 1816 -1.4567944020533246 -18.529959231168256 13.979251275400685
1824 POINT 1817 -1.5009396869640312 -18.659174730766463 13.937266614522652
1825 POINT 1818 -1.4567944020533246 -15.762524798723618 8.5478553849881536
1826 POINT 1819 -1.5009396869640312 -15.872442067908446 8.467995814363162
1827 POINT 1820 0 -11.167919793556992 4.6286771068760011
1828 POINT 1821 0 -11.251889115313059 4.513103250536723
1829 POINT 1822 0 -11.335858437069126 4.3975293941974449
1830 POINT 1823 1.2360679774997896 -11.052846761886888 4.7870615472005369
1831 POINT 1824 1.2802132624104965 -11.132706332511884 4.6771442780157049
1832 POINT 1825 1.3243585473212032 -11.212565903136875 4.5672270088308746
1833 POINT 1826 2.3511410091698925 -10.718891816977406 5.246711095625896
1834 POINT 1827 2.4351103309259603 -10.786824425284204 5.1532098817419705
1835 POINT 1828 2.5190796526820276 -10.854757033591 5.059708667858045
1836 POINT 1829 0 -5.8713228931240034 1.9299261903920844
1837 POINT 1830 0 -5.9154681780347103 1.7940609737784889
1838 POINT 1831 0 -5.9596134629454172 1.6581957571648971
1839 POINT 1832 1.2360679774997896 -5.8108254202091603 2.1161182668228022
1840 POINT 1833 1.2802132624104965 -5.8528100810871946 1.9869027672245885
1841 POINT 1834 1.3243585473212032 -5.894794741965228 1.8576872676263818
1842 POINT 1835 2.3511410091698925 -5.6352549156242135 2.6564687183974449
1843 POINT 1836 2.4351103309259603 -5.6709692013385 2.5465514492126147
1844 POINT 1837 2.5190796526820276 -5.7066834870527856 2.4366341800277844
1845 POINT 1838 0 -11.419827758825196 4.2819555378581651
1846 POINT 1839 0 -11.503797080581261 4.1663816815188888
1847 POINT 1840 1.3685038322319101 -11.292425473761867 4.4573097396460462
1848 POINT 1841 1.4126491171426165 -11.37228504438686 4.3473924704612141
1849 POINT 1842 2.6030489744380954 -10.922689641897795 4.9662074539741212
1850 POINT 1843 2.6870182961941627 -10.990622250204593 4.8727062400901957
1851 POINT 1844 0 -6.003758747856125 1.5223305405513017
1852 POINT 1845 0 -6.0479040327668301 1.3864653239377098
1853 POINT 1846 1.3685038322319101 -5.9367794028432614 1.7284717680281716
1854 POINT 1847 1.4126491171426165 -5.9787640637212958 1.5992562684299578
1855 POINT 1848 2.6030489744380954 -5.7423977727670712 2.3267169108429542
1856 POINT 1849 2.6870182961941627 -5.7781120584813568 2.2167996416581239
1857 POINT 1850 0 -11.58776640233733 4.0508078251796089
1858 POINT 1851 0 -11.671735724093397 3.9352339688403326
1859 POINT 1852 1.4567944020533234 -11.452144615011852 4.2374752012763839
1860 POINT 1853 1.5009396869640301 -11.532004185636843 4.1275579320915554
1861 POINT 1854 2.7709876179502304 -11.058554858511389 4.779205026206272
1862 POINT 1855 2.8549569397062977 -11.126487466818187 4.6857038123223465
1863 POINT 1856 0 -6.0920493176775379 1.2506001073241144
1864 POINT 1857 0 -6.1361946025882448 1.1147348907105226
1865 POINT 1858 1.4567944020533234 -6.0207487245993292 1.4700407688317512
1866 POINT 1859 1.5009396869640301 -6.0627333854773626 1.340825269233541
1867 POINT 1860 2.7709876179502304 -5.8138263441956424 2.1068823724732901
1868 POINT 1861 2.8549569397062977 -5.849540629909928 1.9969651032884599
1869 POINT 1862 3.2360679774997894 -10.198744795637205 5.9626320517854818
1870 POINT 1863 3.3516418338390679 -10.248100724610424 5.8946994434786841
1871 POINT 1864 3.4672156901783455 -10.297456653583639 5.82676683517189
1872 POINT 1865 3.8042260651806146 -9.5433213123924592 6.8647450843757891
1873 POINT 1866 3.9400912817942082 -9.5692692598212243 6.8290307986615026
1874 POINT 1867 4.0759564984078009 -9.5952172072499859 6.7933165129472179
1875 POINT 1868 3.2360679774997894 -5.361797443629575 3.4980842780729056
1876 POINT 1869 3.3516418338390679 -5.3877453910583384 3.4182247074479122
1877 POINT 1870 3.4672156901783455 -5.4136933384871 3.3383651368229224
1878 POINT 1871 3.8042260651806146 -5.0172209268743186 4.5585817509877504
1879 POINT 1872 3.9400912817942082 -5.0308625701332517 4.5165970901097143
1880 POINT 1873 4.0759564984078009 -5.0445042133921838 4.4746124292316836
1881 POINT 1874 3.582789546517624 -10.346812582556858 5.7588342268650923
1882 POINT 1875 3.6983634028569021 -10.396168511530078 5.6909016185582946
1883 POINT 1876 4.2118217150213946 -9.6211651546787476 6.7576022272329332
1884 POINT 1877 4.3476869316349882 -9.6471131021075109 6.7218879415186468
1885 POINT 1878 3.582789546517624 -5.4396412859158634 3.258505566197929
1886 POINT 1879 3.6983634028569021 -5.4655892333446268 3.1786459955729356
1887 POINT 1880 4.2118217150213946 -5.058145856651115 4.432627768353651
1888 POINT 1881 4.3476869316349882 -5.0717874999100481 4.3906431074756149
1889 POINT 1882 3.8139372591961802 -10.445524440503297 5.6229690102514969
1890 POINT 1883 3.9295111155354583 -10.494880369476512 5.5550364019447027
1891 POINT 1884 4.4835521482485818 -9.6730610495362743 6.6861736558043621
1892 POINT 1885 4.6194173648621746 -9.6990089969650377 6.6504593700900756
1893 POINT 1886 3.8139372591961802 -5.4915371807733901 3.0987864249479422
1894 POINT 1887 3.9295111155354583 -5.5174851282021518 3.0189268543229524
1895 POINT 1888 4.4835521482485818 -5.0854291431689802 4.3486584465975824
1896 POINT 1889 4.6194173648621746 -5.0990707864279132 4.3066737857195481
1897 POINT 1890 4 -8.8167787843870986 7.8647450843757891
1898 POINT 1891 4.1428571428571432 -8.8167787843870986 7.8647450843757891
1899 POINT 1892 4.2857142857142856 -8.8167787843870986 7.8647450843757891
1900 POINT 1893 3.8042260651806146 -8.090236256381738 8.8647450843757891
1901 POINT 1894 3.9400912817942082 -8.0642883089529747 8.9004593700900756
1902 POINT 1895 4.0759564984078009 -8.0383403615242113 8.9361736558043621
1903 POINT 1896 4 -4.6352549156242135 5.7341522555726971
1904 POINT 1897 4.1428571428571432 -4.6352549156242135 5.7341522555726971
1905 POINT 1898 4.2857142857142856 -4.6352549156242135 5.7341522555726971
1906 POINT 1899 3.8042260651806146 -4.2532889043741084 6.9097227601576439
1907 POINT 1900 3.9400912817942082 -4.2396472611151754 6.9517074210356764
1908 POINT 1901 4.0759564984078009 -4.2260056178562433 6.9936920819137107
1909 POINT 1902 4.4285714285714288 -8.8167787843870986 7.8647450843757891
1910 POINT 1903 4.5714285714285712 -8.8167787843870986 7.8647450843757891
1911 POINT 1904 4.2118217150213946 -8.0123924140954497 8.9718879415186468
1912 POINT 1905 4.3476869316349882 -7.9864444666666872 9.0076022272329315
1913 POINT 1906 4.4285714285714288 -4.6352549156242135 5.7341522555726971
1914 POINT 1907 4.5714285714285712 -4.6352549156242135 5.7341522555726971
1915 POINT 1908 4.2118217150213946 -4.2123639745973112 7.0356767427917433
1916 POINT 1909 4.3476869316349882 -4.198722331338379 7.0776614036697776
1917 POINT 1910 4.7142857142857144 -8.8167787843870986 7.8647450843757891
1918 POINT 1911 4.8571428571428568 -8.8167787843870986 7.8647450843757891
1919 POINT 1912 4.4835521482485818 -7.9604965192379238 9.0433165129472179
1920 POINT 1913 4.6194173648621746 -7.9345485718091604 9.0790307986615026
1921 POINT 1914 4.7142857142857144 -4.6352549156242135 5.7341522555726971
1922 POINT 1915 4.8571428571428568 -4.6352549156242135 5.7341522555726971
1923 POINT 1916 4.4835521482485818 -4.1850806880794469 7.1196460645478119
1924 POINT 1917 4.6194173648621746 -4.1714390448205148 7.1616307254258444
1925 POINT 1918 3.2360679774997898 -7.4348127731369926 9.7668581169660982
1926 POINT 1919 3.3516418338390683 -7.3854568441637749 9.8347907252728941
1927 POINT 1920 3.467215690178346 -7.3361009151905572 9.90272333357969
1928 POINT 1921 2.351141009169893 -6.9146657517967913 10.482779073125684
1929 POINT 1922 2.4351103309259607 -6.8467331434899945 10.57628028700961
1930 POINT 1923 2.519079652682028 -6.7788005351831977 10.669781500893533
1931 POINT 1924 3.2360679774997898 -3.9087123876188521 7.9702202330724869
1932 POINT 1925 3.3516418338390683 -3.8827644401900892 8.0500798036974786
1933 POINT 1926 3.467215690178346 -3.8568164927613267 8.1299393743224719
1934 POINT 1927 2.351141009169893 -3.6352549156242131 8.8118357927479511
1935 POINT 1928 2.4351103309259607 -3.5995406299099271 8.9217530619327814
1936 POINT 1929 2.519079652682028 -3.5638263441956415 9.0316703311176116
1937 POINT 1930 3.5827895465176245 -7.2867449862173386 9.9706559418864877
1938 POINT 1931 3.6983634028569026 -7.2373890572441208 10.038588550193284
1939 POINT 1932 2.6030489744380958 -6.7108679268764009 10.763282714777459
1940 POINT 1933 2.6870182961941631 -6.642935318569605 10.856783928661383
1941 POINT 1934 3.5827895465176245 -3.8308685453325633 8.2097989449474653
1942 POINT 1935 3.6983634028569026 -3.8049205979038008 8.2896585155724569
1943 POINT 1936 2.6030489744380958 -3.5281120584813559 9.1415876003024419
1944 POINT 1937 2.6870182961941631 -3.4923977727670703 9.2515048694872721
1945 POINT 1938 3.8139372591961811 -7.188033128270904 10.10652115850008
1946 POINT 1939 3.9295111155354587 -7.1386771992976845 10.174453766806877
1947 POINT 1940 2.7709876179502313 -6.5750027102628081 10.950285142545308
1948 POINT 1941 2.8549569397062986 -6.5070701019560113 11.043786356429234
1949 POINT 1942 3.8139372591961811 -3.7789726504750378 8.3695180861974485
1950 POINT 1943 3.9295111155354587 -3.7530247030462749 8.4493776568224419
1951 POINT 1944 2.7709876179502313 -3.4566834870527843 9.3614221386721024
1952 POINT 1945 2.8549569397062986 -3.4209692013384987 9.4713394078569326
1953 POINT 1946 1.23606797749979 -6.5807108068873088 10.942428621551043
1954 POINT 1947 1.2802132624104969 -6.5008512362623154 11.052345890735873
1955 POINT 1948 1.3243585473212036 -6.4209916656373229 11.162263159920705
1956 POINT 1949 4.8985871965894128e-16 -6.4656377752172061 11.100813061875579
1957 POINT 1950 5.0735367393247495e-16 -6.3816684534611383 11.216386918214857
1958 POINT 1951 5.2484862820600851e-16 -6.2976991317050715 11.331960774554135
1959 POINT 1952 1.23606797749979 -3.4596844110392664 9.352186244322592
1960 POINT 1953 1.2802132624104969 -3.4176997501612325 9.4814017439208023
1961 POINT 1954 1.3243585473212036 -3.3757150892831986 9.6106172435190143
1962 POINT 1955 4.8985871965894128e-16 -3.3991869381244233 9.5383783207533117
1963 POINT 1956 5.0735367393247495e-16 -3.3550416532137164 9.6742435373669036
1964 POINT 1957 5.2484862820600851e-16 -3.3108963683030099 9.8101087539804972
1965 POINT 1958 1.3685038322319105 -6.3411320950123313 11.272180429105534
1966 POINT 1959 1.4126491171426172 -6.2612725243873379 11.382097698290366
1967 POINT 1960 5.4234358247954217e-16 -6.2137298099490028 11.447534630893413
1968 POINT 1961 5.5983853675307574e-16 -6.1297604881929351 11.563108487232691
1969 POINT 1962 1.3685038322319105 -3.3337304284051656 9.7398327431172227
1970 POINT 1963 1.4126491171426172 -3.2917457675271309 9.8690482427154347
1971 POINT 1964 5.4234358247954217e-16 -3.2667510833923026 9.9459739705940908
1972 POINT 1965 5.5983853675307574e-16 -3.2226057984815961 10.081839187207684
1973 POINT 1966 1.4567944020533239 -6.1814129537623463 11.492014967475194
1974 POINT 1967 1.5009396869640306 -6.1015533831373538 11.601932236660026
1975 POINT 1968 5.773334910266094e-16 -6.0457911664368673 11.678682343571971
1976 POINT 1969 5.9482844530014297e-16 -5.9618218446807996 11.794256199911249
1977 POINT 1970 1.4567944020533239 -3.2497611066490975 9.9982637423136449
1978 POINT 1971 1.5009396869640306 -3.2077764457710636 10.127479241911855
1979 POINT 1972 5.773334910266094e-16 -3.1784605135708888 10.217704403821278
1980 POINT 1973 5.9482844530014297e-16 -3.1343152286601823 10.353569620434872
1981 POINT 1974 -1.2360679774997874 -6.5807108068873088 10.942428621551043
1982 POINT 1975 -1.2802132624104943 -6.5008512362623154 11.052345890735873
1983 POINT 1976 -1.3243585473212007 -6.4209916656373229 11.162263159920705
1984 POINT 1977 -2.3511410091698921 -6.9146657517967913 10.482779073125684
1985 POINT 1978 -2.4351103309259599 -6.8467331434899945 10.57628028700961
1986 POINT 1979 -2.5190796526820272 -6.7788005351831977 10.669781500893533
1987 POINT 1980 -1.2360679774997874 -3.4596844110392664 9.352186244322592
1988 POINT 1981 -1.2802132624104943 -3.4176997501612325 9.4814017439208023
1989 POINT 1982 -1.3243585473212007 -3.3757150892831986 9.6106172435190143
1990 POINT 1983 -2.3511410091698921 -3.6352549156242131 8.8118357927479511
1991 POINT 1984 -2.4351103309259599 -3.5995406299099271 8.9217530619327814
1992 POINT 1985 -2.5190796526820272 -3.5638263441956415 9.0316703311176116
1993 POINT 1986 -1.3685038322319074 -6.3411320950123304 11.272180429105536
1994 POINT 1987 -1.4126491171426141 -6.2612725243873379 11.382097698290366
1995 POINT 1988 -2.6030489744380949 -6.7108679268764009 10.763282714777459
1996 POINT 1989 -2.6870182961941622 -6.642935318569605 10.856783928661383
1997 POINT 1990 -1.3685038322319074 -3.3337304284051648 9.7398327431172245
1998 POINT 1991 -1.4126491171426141 -3.2917457675271309 9.8690482427154347
1999 POINT 1992 -2.6030489744380949 -3.5281120584813559 9.1415876003024419
2000 POINT 1993 -2.6870182961941622 -3.4923977727670703 9.2515048694872721
2001 POINT 1994 -1.4567944020533208 -6.1814129537623463 11.492014967475194
2002 POINT 1995 -1.5009396869640275 -6.1015533831373538 11.601932236660026
2003 POINT 1996 -2.77098761795023 -6.5750027102628081 10.950285142545308
2004 POINT 1997 -2.8549569397062973 -6.5070701019560113 11.043786356429234
2005 POINT 1998 -1.4567944020533208 -3.2497611066490975 9.9982637423136449
2006 POINT 1999 -1.5009396869640275 -3.2077764457710636 10.127479241911855
2007 POINT 2000 -2.77098761795023 -3.4566834870527843 9.3614221386721024
2008 POINT 2001 -2.8549569397062973 -3.4209692013384987 9.4713394078569326
2009 POINT 2002 -3.2360679774997894 -7.4348127731369926 9.7668581169660982
2010 POINT 2003 -3.3516418338390679 -7.3854568441637749 9.8347907252728941
2011 POINT 2004 -3.4672156901783455 -7.3361009151905572 9.90272333357969
2012 POINT 2005 -3.8042260651806141 -8.090236256381738 8.8647450843757891
2013 POINT 2006 -3.9400912817942078 -8.0642883089529747 8.9004593700900756
2014 POINT 2007 -4.0759564984078009 -8.0383403615242113 8.9361736558043621
2015 POINT 2008 -3.2360679774997894 -3.9087123876188521 7.9702202330724869
2016 POINT 2009 -3.3516418338390679 -3.8827644401900892 8.0500798036974786
2017 POINT 2010 -3.4672156901783455 -3.8568164927613267 8.1299393743224719
2018 POINT 2011 -3.8042260651806141 -4.2532889043741084 6.9097227601576439
2019 POINT 2012 -3.9400912817942078 -4.2396472611151754 6.9517074210356764
2020 POINT 2013 -4.0759564984078009 -4.2260056178562433 6.9936920819137107
2021 POINT 2014 -3.582789546517624 -7.2867449862173386 9.9706559418864877
2022 POINT 2015 -3.6983634028569021 -7.2373890572441208 10.038588550193284
2023 POINT 2016 -4.2118217150213946 -8.0123924140954479 8.9718879415186468
2024 POINT 2017 -4.3476869316349873 -7.9864444666666854 9.0076022272329332
2025 POINT 2018 -3.582789546517624 -3.8308685453325633 8.2097989449474653
2026 POINT 2019 -3.6983634028569021 -3.8049205979038008 8.2896585155724569
2027 POINT 2020 -4.2118217150213946 -4.2123639745973112 7.035676742791745
2028 POINT 2021 -4.3476869316349873 -4.198722331338379 7.0776614036697794
2029 POINT 2022 -3.8139372591961802 -7.1880331282709022 10.106521158500081
2030 POINT 2023 -3.9295111155354583 -7.1386771992976845 10.174453766806877
2031 POINT 2024 -4.4835521482485809 -7.9604965192379229 9.0433165129472197
2032 POINT 2025 -4.6194173648621737 -7.9345485718091595 9.0790307986615044
2033 POINT 2026 -3.8139372591961802 -3.7789726504750374 8.3695180861974503
2034 POINT 2027 -3.9295111155354583 -3.7530247030462749 8.4493776568224419
2035 POINT 2028 -4.4835521482485809 -4.185080688079446 7.1196460645478137
2036 POINT 2029 -4.6194173648621737 -4.1714390448205139 7.1616307254258462
2037 POINT 2030 -4 -8.8167787843870986 7.8647450843757891
2038 POINT 2031 -4.1428571428571432 -8.8167787843870986 7.8647450843757891
2039 POINT 2032 -4.2857142857142856 -8.8167787843870986 7.8647450843757891
2040 POINT 2033 -3.8042260651806146 -9.5433213123924592 6.8647450843757891
2041 POINT 2034 -3.9400912817942082 -9.5692692598212226 6.8290307986615062
2042 POINT 2035 -4.0759564984078009 -9.5952172072499859 6.7933165129472179
2043 POINT 2036 -4 -4.6352549156242135 5.7341522555726971
2044 POINT 2037 -4.1428571428571432 -4.6352549156242135 5.7341522555726971
2045 POINT 2038 -4.2857142857142856 -4.6352549156242135 5.7341522555726971
2046 POINT 2039 -3.8042260651806146 -5.0172209268743186 4.5585817509877504
2047 POINT 2040 -3.9400912817942082 -5.0308625701332508 4.5165970901097179
2048 POINT 2041 -4.0759564984078009 -5.0445042133921838 4.4746124292316836
2049 POINT 2042 -4.4285714285714288 -8.8167787843870986 7.8647450843757891
2050 POINT 2043 -4.5714285714285712 -8.8167787843870986 7.8647450843757891
2051 POINT 2044 -4.2118217150213946 -9.6211651546787476 6.7576022272329332
2052 POINT 2045 -4.3476869316349882 -9.6471131021075109 6.7218879415186468
2053 POINT 2046 -4.4285714285714288 -4.6352549156242135 5.7341522555726971
2054 POINT 2047 -4.5714285714285712 -4.6352549156242135 5.7341522555726971
2055 POINT 2048 -4.2118217150213946 -5.058145856651115 4.432627768353651
2056 POINT 2049 -4.3476869316349882 -5.0717874999100481 4.3906431074756149
2057 POINT 2050 -4.7142857142857144 -8.8167787843870986 7.8647450843757891
2058 POINT 2051 -4.8571428571428568 -8.8167787843870968 7.8647450843757909
2059 POINT 2052 -4.4835521482485818 -9.6730610495362743 6.6861736558043621
2060 POINT 2053 -4.6194173648621746 -9.6990089969650359 6.6504593700900774
2061 POINT 2054 -4.7142857142857144 -4.6352549156242135 5.7341522555726971
2062 POINT 2055 -4.8571428571428568 -4.6352549156242127 5.7341522555726989
2063 POINT 2056 -4.4835521482485818 -5.0854291431689802 4.3486584465975824
2064 POINT 2057 -4.6194173648621746 -5.0990707864279123 4.3066737857195498
2065 POINT 2058 -3.2360679774997898 -10.198744795637205 5.9626320517854818
2066 POINT 2059 -3.3516418338390683 -10.248100724610421 5.8946994434786877
2067 POINT 2060 -3.467215690178346 -10.297456653583639 5.82676683517189
2068 POINT 2061 -2.3511410091698934 -10.718891816977406 5.246711095625896
2069 POINT 2062 -2.4351103309259612 -10.786824425284204 5.1532098817419705
2070 POINT 2063 -2.5190796526820285 -10.854757033591 5.059708667858045
2071 POINT 2064 -3.2360679774997898 -5.361797443629575 3.4980842780729056
2072 POINT 2065 -3.3516418338390683 -5.3877453910583375 3.4182247074479157
2073 POINT 2066 -3.467215690178346 -5.4136933384871 3.3383651368229224
2074 POINT 2067 -2.3511410091698934 -5.6352549156242135 2.6564687183974449
2075 POINT 2068 -2.4351103309259612 -5.6709692013385 2.5465514492126147
2076 POINT 2069 -2.5190796526820285 -5.7066834870527856 2.4366341800277844
2077 POINT 2070 -3.5827895465176245 -10.346812582556858 5.7588342268650923
2078 POINT 2071 -3.6983634028569026 -10.396168511530075 5.6909016185582981
2079 POINT 2072 -2.6030489744380962 -10.922689641897795 4.9662074539741212
2080 POINT 2073 -2.687018296194164 -10.990622250204593 4.8727062400901957
2081 POINT 2074 -3.5827895465176245 -5.4396412859158634 3.258505566197929
2082 POINT 2075 -3.6983634028569026 -5.4655892333446259 3.1786459955729391
2083 POINT 2076 -2.6030489744380962 -5.7423977727670712 2.3267169108429542
2084 POINT 2077 -2.687018296194164 -5.7781120584813568 2.2167996416581239
2085 POINT 2078 -3.8139372591961811 -10.445524440503293 5.6229690102515004
2086 POINT 2079 -3.9295111155354587 -10.494880369476512 5.5550364019447027
2087 POINT 2080 -2.7709876179502317 -11.058554858511389 4.779205026206272
2088 POINT 2081 -2.854956939706299 -11.126487466818187 4.6857038123223465
2089 POINT 2082 -3.8139372591961811 -5.4915371807733893 3.0987864249479458
2090 POINT 2083 -3.9295111155354587 -5.5174851282021518 3.0189268543229524
2091 POINT 2084 -2.7709876179502317 -5.8138263441956424 2.1068823724732901
2092 POINT 2085 -2.854956939706299 -5.849540629909928 1.9969651032884599
2093 POINT 2086 -1.2360679774997905 -11.052846761886888 4.7870615472005369
2094 POINT 2087 -1.2802132624104974 -11.13270633251188 4.6771442780157066
2095 POINT 2088 -1.3243585473212041 -11.212565903136875 4.5672270088308746
2096 POINT 2089 -1.2360679774997905 -5.8108254202091603 2.1161182668228022
2097 POINT 2090 -1.2802132624104974 -5.8528100810871937 1.986902767224592
2098 POINT 2091 -1.3243585473212041 -5.894794741965228 1.8576872676263818
2099 POINT 2092 -1.368503832231911 -11.292425473761867 4.4573097396460462
2100 POINT 2093 -1.4126491171426176 -11.37228504438686 4.3473924704612141
2101 POINT 2094 -1.368503832231911 -5.9367794028432614 1.7284717680281716
2102 POINT 2095 -1.4126491171426176 -5.9787640637212958 1.5992562684299578
2103 POINT 2096 -1.4567944020533246 -11.452144615011852 4.2374752012763839
2104 POINT 2097 -1.5009396869640312 -11.532004185636843 4.1275579320915554
2105 POINT 2098 -1.4567944020533246 -6.0207487245993292 1.4700407688317512
2106 POINT 2099 -1.5009396869640312 -6.0627333854773626 1.340825269233541
2107 POINT 2100 0 -3.4902433775699565e-15 1
2108 POINT 2101 0 -3.5164858089802569e-15 0.85714285714285765
2109 POINT 2102 0 -3.542728240390557e-15 0.7142857142857153
2110 POINT 2103 1.2360679774997896 -3.4542802891749999e-15 1.1957739348193854
2111 POINT 2104 1.2802132624104965 -3.4792383245711953e-15 1.05990871820579
2112 POINT 2105 1.3243585473212032 -3.5041963599673896e-15 0.92404350159219817
2113 POINT 2106 2.3511410091698925 -3.3499113416517996e-15 1.7639320225002102
2114 POINT 2107 2.4351103309259603 -3.3711419146364513e-15 1.6483581661609321
2115 POINT 2108 2.5190796526820276 -3.3923724876211034e-15 1.532784309821654
2116 POINT 2109 0 5.8713228931239971 1.9299261903920808
2117 POINT 2110 0 5.915468178034704 1.7940609737784889
2118 POINT 2111 0 5.9596134629454109 1.6581957571648935
2119 POINT 2112 1.2360679774997896 5.810825420209154 2.1161182668227987
2120 POINT 2113 1.2802132624104965 5.8528100810871884 1.9869027672245885
2121 POINT 2114 1.3243585473212032 5.8947947419652218 1.8576872676263783
2122 POINT 2115 2.3511410091698925 5.6352549156242082 2.6564687183974414
2123 POINT 2116 2.4351103309259603 5.6709692013384938 2.5465514492126111
2124 POINT 2117 2.5190796526820276 5.7066834870527794 2.4366341800277809
2125 POINT 2118 0 -3.5689706718008582e-15 0.5714285714285694
2126 POINT 2119 0 -3.5952131032111574e-15 0.4285714285714306
2127 POINT 2120 1.3685038322319101 -3.5291543953635842e-15 0.78817828497860631
2128 POINT 2121 1.4126491171426165 -3.5541124307597796e-15 0.65231306836501091
2129 POINT 2122 2.6030489744380954 -3.4136030606057552e-15 1.417210453482376
2130 POINT 2123 2.6870182961941627 -3.4348336335904073e-15 1.3016365971430979
2131 POINT 2124 0 6.0037587478561179 1.5223305405512981
2132 POINT 2125 0 6.0479040327668239 1.3864653239377098
2133 POINT 2126 1.3685038322319101 5.9367794028432552 1.728471768028168
2134 POINT 2127 1.4126491171426165 5.9787640637212895 1.5992562684299578
2135 POINT 2128 2.6030489744380954 5.742397772767065 2.3267169108429506
2136 POINT 2129 2.6870182961941627 5.7781120584813506 2.2167996416581204
2137 POINT 2130 0 -3.6214555346214591e-15 0.2857142857142847
2138 POINT 2131 0 -3.6476979660317591e-15 0.14285714285714235
2139 POINT 2132 1.4567944020533234 -3.5790704661559738e-15 0.51644785175141905
2140 POINT 2133 1.5009396869640301 -3.6040285015521688e-15 0.3805826351378272
2141 POINT 2134 2.7709876179502304 -3.456064206575059e-15 1.1860627408038198
2142 POINT 2135 2.8549569397062977 -3.4772947795597112e-15 1.0704888844645417
2143 POINT 2136 0 6.0920493176775317 1.2506001073241144
2144 POINT 2137 0 6.1361946025882377 1.114734890710519
2145 POINT 2138 1.4567944020533234 6.020748724599323 1.4700407688317476
2146 POINT 2139 1.5009396869640301 6.0627333854773564 1.3408252692335374
2147 POINT 2140 2.7709876179502304 5.8138263441956362 2.1068823724732901
2148 POINT 2141 2.8549569397062977 5.8495406299099217 1.9969651032884599
2149 POINT 2142 3.2360679774997894 -3.1873528947651426e-15 2.6488589908301066
2150 POINT 2143 3.3516418338390679 -3.2027778089324144e-15 2.5648896690740379
2151 POINT 2144 3.4672156901783455 -3.218202723099685e-15 2.4809203473179728
2152 POINT 2145 3.8042260651806146 -2.9825173019075934e-15 3.7639320225002102
2153 POINT 2146 3.9400912817942082 -2.9906266591870955e-15 3.7197867375895015
2154 POINT 2147 4.0759564984078009 -2.9987360164665972e-15 3.6756414526787964
2155 POINT 2148 3.2360679774997894 5.3617974436295688 3.4980842780729056
2156 POINT 2149 3.3516418338390679 5.3877453910583322 3.4182247074479122
2157 POINT 2150 3.4672156901783455 5.4136933384870947 3.3383651368229224
2158 POINT 2151 3.8042260651806146 5.0172209268743133 4.5585817509877486
2159 POINT 2152 3.9400912817942082 5.0308625701332463 4.5165970901097126
2160 POINT 2153 4.0759564984078009 5.0445042133921785 4.4746124292316818
2161 POINT 2154 3.582789546517624 -3.2336276372669568e-15 2.3969510255619042
2162 POINT 2155 3.6983634028569021 -3.2490525514342282e-15 2.3129817038058356
2163 POINT 2156 4.2118217150213946 -3.0068453737460985e-15 3.6314961677680913
2164 POINT 2157 4.3476869316349882 -3.0149547310256006e-15 3.5873508828573826
2165 POINT 2158 3.582789546517624 5.439641285915858 3.258505566197929
2166 POINT 2159 3.6983634028569021 5.4655892333446205 3.1786459955729356
2167 POINT 2160 4.2118217150213946 5.0581458566511097 4.4326277683536492
2168 POINT 2161 4.3476869316349882 5.0717874999100427 4.3906431074756131
2169 POINT 2162 3.8139372591961802 -3.2644774656014999e-15 2.2290123820497669
2170 POINT 2163 3.9295111155354583 -3.2799023797687705e-15 2.1450430602937018
2171 POINT 2164 4.4835521482485818 -3.0230640883051023e-15 3.5432055979466774
2172 POINT 2165 4.6194173648621746 -3.031173445584604e-15 3.4990603130359688
2173 POINT 2166 3.8139372591961802 5.4915371807733839 3.0987864249479422
2174 POINT 2167 3.9295111155354583 5.5174851282021464 3.0189268543229488
2175 POINT 2168 4.4835521482485818 5.0854291431689749 4.3486584465975806
2176 POINT 2169 4.6194173648621746 5.0990707864279079 4.3066737857195445
2177 POINT 2170 4 -2.7554552980815444e-15 5
2178 POINT 2171 4.1428571428571432 -2.7554552980815444e-15 5
2179 POINT 2172 4.2857142857142856 -2.7554552980815444e-15 5
2180 POINT 2173 3.8042260651806146 -2.5283932942554954e-15 6.2360679774997898
2181 POINT 2174 3.9400912817942082 -2.5202839369759937e-15 6.2802132624104967
2182 POINT 2175 4.0759564984078009 -2.512174579696492e-15 6.3243585473212036
2183 POINT 2176 4 4.6352549156242082 5.7341522555726954
2184 POINT 2177 4.1428571428571432 4.6352549156242082 5.7341522555726954
2185 POINT 2178 4.2857142857142856 4.6352549156242082 5.7341522555726954
2186 POINT 2179 3.8042260651806146 4.2532889043741031 6.9097227601576421
2187 POINT 2180 3.9400912817942082 4.239647261115171 6.9517074210356764
2188 POINT 2181 4.0759564984078009 4.2260056178562388 6.9936920819137089
2189 POINT 2182 4.4285714285714288 -2.7554552980815444e-15 5
2190 POINT 2183 4.5714285714285712 -2.7554552980815444e-15 5
2191 POINT 2184 4.2118217150213946 -2.5040652224169907e-15 6.3685038322319087
2192 POINT 2185 4.3476869316349882 -2.4959558651374886e-15 6.4126491171426157
2193 POINT 2186 4.4285714285714288 4.6352549156242082 5.7341522555726954
2194 POINT 2187 4.5714285714285712 4.6352549156242082 5.7341522555726954
2195 POINT 2188 4.2118217150213946 4.2123639745973067 7.0356767427917415
2196 POINT 2189 4.3476869316349882 4.1987223313383746 7.0776614036697758
2197 POINT 2190 4.7142857142857144 -2.7554552980815444e-15 5
2198 POINT 2191 4.8571428571428568 -2.7554552980815444e-15 5
2199 POINT 2192 4.4835521482485818 -2.4878465078579869e-15 6.4567944020533226
2200 POINT 2193 4.6194173648621746 -2.4797371505784852e-15 6.5009396869640295
2201 POINT 2194 4.7142857142857144 4.6352549156242082 5.7341522555726954
2202 POINT 2195 4.8571428571428568 4.6352549156242082 5.7341522555726954
2203 POINT 2196 4.4835521482485818 4.1850806880794424 7.1196460645478101
2204 POINT 2197 4.6194173648621746 4.1714390448205103 7.1616307254258444
2205 POINT 2198 3.2360679774997898 -2.3235577013979466e-15 7.3511410091698934
2206 POINT 2199 3.3516418338390683 -2.3081327872306752e-15 7.4351103309259603
2207 POINT 2200 3.467215690178346 -2.2927078730634038e-15 7.5190796526820272
2208 POINT 2201 2.351141009169893 -2.1609992545112896e-15 8.2360679774997898
2209 POINT 2202 2.4351103309259607 -2.1397686815266374e-15 8.3516418338390679
2210 POINT 2203 2.519079652682028 -2.1185381085419857e-15 8.467215690178346
2211 POINT 2204 3.2360679774997898 3.9087123876188477 7.9702202330724869
2212 POINT 2205 3.3516418338390683 3.8827644401900852 8.0500798036974786
2213 POINT 2206 3.467215690178346 3.8568164927613222 8.1299393743224702
2214 POINT 2207 2.351141009169893 3.6352549156242091 8.8118357927479494
2215 POINT 2208 2.4351103309259607 3.5995406299099235 8.9217530619327796
2216 POINT 2209 2.519079652682028 3.5638263441956379 9.0316703311176099
2217 POINT 2210 3.5827895465176245 -2.2772829588961324e-15 7.6030489744380958
2218 POINT 2211 3.6983634028569026 -2.261858044728861e-15 7.6870182961941627
2219 POINT 2212 2.6030489744380958 -2.0973075355573336e-15 8.582789546517624
2220 POINT 2213 2.6870182961941631 -2.0760769625726819e-15 8.6983634028569021
2221 POINT 2214 3.5827895465176245 3.8308685453325593 8.2097989449474635
2222 POINT 2215 3.6983634028569026 3.8049205979037968 8.2896585155724551
2223 POINT 2216 2.6030489744380958 3.5281120584813519 9.1415876003024401
2224 POINT 2217 2.6870182961941631 3.4923977727670663 9.2515048694872704
2225 POINT 2218 3.8139372591961811 -2.24643313056159e-15 7.7709876179502295
2226 POINT 2219 3.9295111155354587 -2.2310082163943182e-15 7.8549569397062982
2227 POINT 2220 2.7709876179502313 -2.0548463895880297e-15 8.8139372591961802
2228 POINT 2221 2.8549569397062986 -2.033615816603378e-15 8.9295111155354583
2229 POINT 2222 3.8139372591961811 3.7789726504750338 8.3695180861974467
2230 POINT 2223 3.9295111155354587 3.7530247030462709 8.4493776568224401
2231 POINT 2224 2.7709876179502313 3.4566834870527807 9.3614221386721006
2232 POINT 2225 2.8549569397062986 3.4209692013384951 9.4713394078569308
2233 POINT 2226 1.23606797749979 -2.0566303069880892e-15 8.8042260651806146
2234 POINT 2227 1.2802132624104969 -2.0316722715918942e-15 8.9400912817942082
2235 POINT 2228 1.3243585473212036 -2.0067142361956992e-15 9.0759564984078018
2236 POINT 2229 4.8985871965894128e-16 -2.0206672185931327e-15 9
2237 POINT 2230 5.0735367393247495e-16 -1.9944247871828323e-15 9.1428571428571423
2238 POINT 2231 5.2484862820600851e-16 -1.9681823557725318e-15 9.2857142857142847
2239 POINT 2232 1.23606797749979 3.4596844110392628 9.3521862443225903
2240 POINT 2233 1.2802132624104969 3.417699750161229 9.4814017439208023
2241 POINT 2234 1.3243585473212036 3.3757150892831951 9.6106172435190125
2242 POINT 2235 4.8985871965894128e-16 3.3991869381244193 9.5383783207533099
2243 POINT 2236 5.0735367393247495e-16 3.3550416532137128 9.6742435373669036
2244 POINT 2237 5.2484862820600851e-16 3.3108963683030064 9.8101087539804954
2245 POINT 2238 1.3685038322319105 -1.9817562007995046e-15 9.2118217150213937
2246 POINT 2239 1.4126491171426172 -1.9567981654033096e-15 9.3476869316349891
2247 POINT 2240 5.4234358247954217e-16 -1.9419399243622314e-15 9.4285714285714288
2248 POINT 2241 5.5983853675307574e-16 -1.9156974929519309e-15 9.5714285714285712
2249 POINT 2242 1.3685038322319105 3.3337304284051616 9.7398327431172209
2250 POINT 2243 1.4126491171426172 3.2917457675271273 9.8690482427154347
2251 POINT 2244 5.4234358247954217e-16 3.266751083392299 9.9459739705940908
2252 POINT 2245 5.5983853675307574e-16 3.2226057984815926 10.081839187207683
2253 POINT 2246 1.4567944020533239 -1.931840130007115e-15 9.4835521482485809
2254 POINT 2247 1.5009396869640306 -1.9068820946109199e-15 9.6194173648621746
2255 POINT 2248 5.773334910266094e-16 -1.8894550615416305e-15 9.7142857142857153
2256 POINT 2249 5.9482844530014297e-16 -1.86321263013133e-15 9.8571428571428577
2257 POINT 2250 1.4567944020533239 3.2497611066490943 9.9982637423136431
2258 POINT 2251 1.5009396869640306 3.2077764457710605 10.127479241911853
2259 POINT 2252 5.773334910266094e-16 3.1784605135708857 10.217704403821278
2260 POINT 2253 5.9482844530014297e-16 3.1343152286601788 10.35356962043487
2261 POINT 2254 -1.2360679774997874 -2.0566303069880892e-15 8.8042260651806146
2262 POINT 2255 -1.2802132624104943 -2.0316722715918942e-15 8.9400912817942082
2263 POINT 2256 -1.3243585473212007 -2.0067142361956992e-15 9.0759564984078018
2264 POINT 2257 -2.3511410091698921 -2.1609992545112896e-15 8.2360679774997898
2265 POINT 2258 -2.4351103309259599 -2.1397686815266374e-15 8.3516418338390679
2266 POINT 2259 -2.5190796526820272 -2.1185381085419857e-15 8.467215690178346
2267 POINT 2260 -1.2360679774997874 3.4596844110392628 9.3521862443225903
2268 POINT 2261 -1.2802132624104943 3.417699750161229 9.4814017439208023
2269 POINT 2262 -1.3243585473212007 3.3757150892831951 9.6106172435190125
2270 POINT 2263 -2.3511410091698921 3.6352549156242091 8.8118357927479494
2271 POINT 2264 -2.4351103309259599 3.5995406299099235 8.9217530619327796
2272 POINT 2265 -2.5190796526820272 3.5638263441956379 9.0316703311176099
2273 POINT 2266 -1.3685038322319074 -1.9817562007995046e-15 9.2118217150213955
2274 POINT 2267 -1.4126491171426141 -1.9567981654033096e-15 9.3476869316349891
2275 POINT 2268 -2.6030489744380949 -2.0973075355573336e-15 8.582789546517624
2276 POINT 2269 -2.6870182961941622 -2.0760769625726819e-15 8.6983634028569021
2277 POINT 2270 -1.3685038322319074 3.3337304284051612 9.7398327431172227
2278 POINT 2271 -1.4126491171426141 3.2917457675271273 9.8690482427154347
2279 POINT 2272 -2.6030489744380949 3.5281120584813519 9.1415876003024401
2280 POINT 2273 -2.6870182961941622 3.4923977727670663 9.2515048694872704
2281 POINT 2274 -1.4567944020533208 -1.931840130007115e-15 9.4835521482485809
2282 POINT 2275 -1.5009396869640275 -1.9068820946109199e-15 9.6194173648621746
2283 POINT 2276 -2.77098761795023 -2.0548463895880297e-15 8.8139372591961802
2284 POINT 2277 -2.8549569397062973 -2.033615816603378e-15 8.9295111155354583
2285 POINT 2278 -1.4567944020533208 3.2497611066490943 9.9982637423136431
2286 POINT 2279 -1.5009396869640275 3.2077764457710605 10.127479241911853
2287 POINT 2280 -2.77098761795023 3.4566834870527807 9.3614221386721006
2288 POINT 2281 -2.8549569397062973 3.4209692013384951 9.4713394078569308
2289 POINT 2282 -3.2360679774997894 -2.3235577013979466e-15 7.3511410091698934
2290 POINT 2283 -3.3516418338390679 -2.3081327872306752e-15 7.4351103309259603
2291 POINT 2284 -3.4672156901783455 -2.2927078730634038e-15 7.5190796526820272
2292 POINT 2285 -3.8042260651806141 -2.5283932942554954e-15 6.2360679774997898
2293 POINT 2286 -3.9400912817942078 -2.5202839369759937e-15 6.2802132624104967
2294 POINT 2287 -4.0759564984078009 -2.512174579696492e-15 6.3243585473212036
2295 POINT 2288 -3.2360679774997894 3.9087123876188477 7.9702202330724869
2296 POINT 2289 -3.3516418338390679 3.8827644401900852 8.0500798036974786
2297 POINT 2290 -3.4672156901783455 3.8568164927613222 8.1299393743224702
2298 POINT 2291 -3.8042260651806141 4.2532889043741031 6.9097227601576421
2299 POINT 2292 -3.9400912817942078 4.239647261115171 6.9517074210356764
2300 POINT 2293 -4.0759564984078009 4.2260056178562388 6.9936920819137089
2301 POINT 2294 -3.582789546517624 -2.2772829588961324e-15 7.6030489744380958
2302 POINT 2295 -3.6983634028569021 -2.261858044728861e-15 7.6870182961941627
2303 POINT 2296 -4.2118217150213946 -2.5040652224169903e-15 6.3685038322319105
2304 POINT 2297 -4.3476869316349873 -2.4959558651374886e-15 6.4126491171426174
2305 POINT 2298 -3.582789546517624 3.8308685453325593 8.2097989449474635
2306 POINT 2299 -3.6983634028569021 3.8049205979037968 8.2896585155724551
2307 POINT 2300 -4.2118217150213946 4.2123639745973067 7.0356767427917433
2308 POINT 2301 -4.3476869316349873 4.1987223313383737 7.0776614036697776
2309 POINT 2302 -3.8139372591961802 -2.2464331305615896e-15 7.7709876179502313
2310 POINT 2303 -3.9295111155354583 -2.2310082163943182e-15 7.8549569397062982
2311 POINT 2304 -4.4835521482485809 -2.4878465078579865e-15 6.4567944020533243
2312 POINT 2305 -4.6194173648621737 -2.4797371505784848e-15 6.5009396869640312
2313 POINT 2306 -3.8139372591961802 3.7789726504750334 8.3695180861974485
2314 POINT 2307 -3.9295111155354583 3.7530247030462709 8.4493776568224401
2315 POINT 2308 -4.4835521482485809 4.1850806880794416 7.1196460645478119
2316 POINT 2309 -4.6194173648621737 4.1714390448205094 7.1616307254258462
2317 POINT 2310 -4 -2.7554552980815444e-15 5
2318 POINT 2311 -4.1428571428571432 -2.7554552980815444e-15 5
2319 POINT 2312 -4.2857142857142856 -2.7554552980815444e-15 5
2320 POINT 2313 -3.8042260651806146 -2.9825173019075934e-15 3.7639320225002102
2321 POINT 2314 -3.9400912817942082 -2.9906266591870951e-15 3.7197867375895051
2322 POINT 2315 -4.0759564984078009 -2.9987360164665972e-15 3.6756414526787964
2323 POINT 2316 -4 4.6352549156242082 5.7341522555726954
2324 POINT 2317 -4.1428571428571432 4.6352549156242082 5.7341522555726954
2325 POINT 2318 -4.2857142857142856 4.6352549156242082 5.7341522555726954
2326 POINT 2319 -3.8042260651806146 5.0172209268743133 4.5585817509877486
2327 POINT 2320 -3.9400912817942082 5.0308625701332454 4.5165970901097161
2328 POINT 2321 -4.0759564984078009 5.0445042133921785 4.4746124292316818
2329 POINT 2322 -4.4285714285714288 -2.7554552980815444e-15 5
2330 POINT 2323 -4.5714285714285712 -2.7554552980815444e-15 5
2331 POINT 2324 -4.2118217150213946 -3.0068453737460985e-15 3.6314961677680913
2332 POINT 2325 -4.3476869316349882 -3.0149547310256006e-15 3.5873508828573826
2333 POINT 2326 -4.4285714285714288 4.6352549156242082 5.7341522555726954
2334 POINT 2327 -4.5714285714285712 4.6352549156242082 5.7341522555726954
2335 POINT 2328 -4.2118217150213946 5.0581458566511097 4.4326277683536492
2336 POINT 2329 -4.3476869316349882 5.0717874999100427 4.3906431074756131
2337 POINT 2330 -4.7142857142857144 -2.7554552980815444e-15 5
2338 POINT 2331 -4.8571428571428568 -2.7554552980815444e-15 5.0000000000000018
2339 POINT 2332 -4.4835521482485818 -3.0230640883051023e-15 3.5432055979466774
2340 POINT 2333 -4.6194173648621746 -3.0311734455846036e-15 3.4990603130359723
2341 POINT 2334 -4.7142857142857144 4.6352549156242082 5.7341522555726954
2342 POINT 2335 -4.8571428571428568 4.6352549156242082 5.7341522555726971
2343 POINT 2336 -4.4835521482485818 5.0854291431689749 4.3486584465975806
2344 POINT 2337 -4.6194173648621746 5.0990707864279061 4.3066737857195481
2345 POINT 2338 -3.2360679774997898 -3.1873528947651426e-15 2.6488589908301066
2346 POINT 2339 -3.3516418338390683 -3.2027778089324136e-15 2.5648896690740415
2347 POINT 2340 -3.467215690178346 -3.218202723099685e-15 2.4809203473179728
2348 POINT 2341 -2.3511410091698934 -3.3499113416517996e-15 1.7639320225002102
2349 POINT 2342 -2.4351103309259612 -3.3711419146364513e-15 1.6483581661609321
2350 POINT 2343 -2.5190796526820285 -3.3923724876211034e-15 1.532784309821654
2351 POINT 2344 -3.2360679774997898 5.3617974436295688 3.4980842780729056
2352 POINT 2345 -3.3516418338390683 5.3877453910583313 3.4182247074479157
2353 POINT 2346 -3.467215690178346 5.4136933384870947 3.3383651368229224
2354 POINT 2347 -2.3511410091698934 5.6352549156242082 2.6564687183974414
2355 POINT 2348 -2.4351103309259612 5.6709692013384938 2.5465514492126111
2356 POINT 2349 -2.5190796526820285 5.7066834870527794 2.4366341800277809
2357 POINT 2350 -3.5827895465176245 -3.2336276372669568e-15 2.3969510255619042
2358 POINT 2351 -3.6983634028569026 -3.2490525514342278e-15 2.3129817038058391
2359 POINT 2352 -2.6030489744380962 -3.4136030606057552e-15 1.417210453482376
2360 POINT 2353 -2.687018296194164 -3.4348336335904073e-15 1.3016365971430979
2361 POINT 2354 -3.5827895465176245 5.439641285915858 3.258505566197929
2362 POINT 2355 -3.6983634028569026 5.4655892333446197 3.1786459955729391
2363 POINT 2356 -2.6030489744380962 5.742397772767065 2.3267169108429506
2364 POINT 2357 -2.687018296194164 5.7781120584813506 2.2167996416581204
2365 POINT 2358 -3.8139372591961811 -3.2644774656014992e-15 2.2290123820497705
2366 POINT 2359 -3.9295111155354587 -3.2799023797687705e-15 2.1450430602937018
2367 POINT 2360 -2.7709876179502317 -3.456064206575059e-15 1.1860627408038198
2368 POINT 2361 -2.854956939706299 -3.4772947795597112e-15 1.0704888844645417
2369 POINT 2362 -3.8139372591961811 5.491537180773383 3.0987864249479422
2370 POINT 2363 -3.9295111155354587 5.5174851282021464 3.0189268543229488
2371 POINT 2364 -2.7709876179502317 5.8138263441956362 2.1068823724732901
2372 POINT 2365 -2.854956939706299 5.8495406299099217 1.9969651032884599
2373 POINT 2366 -1.2360679774997905 -3.4542802891749999e-15 1.1957739348193854
2374 POINT 2367 -1.2802132624104974 -3.4792383245711946e-15 1.0599087182057936
2375 POINT 2368 -1.3243585473212041 -3.5041963599673896e-15 0.92404350159219817
2376 POINT 2369 -1.2360679774997905 5.810825420209154 2.1161182668227987
2377 POINT 2370 -1.2802132624104974 5.8528100810871875 1.986902767224592
2378 POINT 2371 -1.3243585473212041 5.8947947419652218 1.8576872676263783
2379 POINT 2372 -1.368503832231911 -3.5291543953635842e-15 0.78817828497860631
2380 POINT 2373 -1.4126491171426176 -3.5541124307597796e-15 0.65231306836501091
2381 POINT 2374 -1.368503832231911 5.9367794028432552 1.728471768028168
2382 POINT 2375 -1.4126491171426176 5.9787640637212895 1.5992562684299578
2383 POINT 2376 -1.4567944020533246 -3.5790704661559738e-15 0.51644785175141905
2384 POINT 2377 -1.5009396869640312 -3.6040285015521688e-15 0.3805826351378272
2385 POINT 2378 -1.4567944020533246 6.020748724599323 1.4700407688317476
2386 POINT 2379 -1.5009396869640312 6.0627333854773564 1.3408252692335374
2387 POINT 2380 0 11.167919793556987 4.6286771068759975
2388 POINT 2381 0 11.251889115313055 4.5131032505367212
2389 POINT 2382 0 11.335858437069122 4.3975293941974432
2390 POINT 2383 1.2360679774997896 11.052846761886885 4.7870615472005351
2391 POINT 2384 1.2802132624104965 11.132706332511878 4.6771442780157031
2392 POINT 2385 1.3243585473212032 11.21256590313687 4.5672270088308728
2393 POINT 2386 2.3511410091698925 10.718891816977402 5.2467110956258924
2394 POINT 2387 2.4351103309259603 10.786824425284198 5.1532098817419687
2395 POINT 2388 2.5190796526820276 10.854757033590996 5.0597086678580432
2396 POINT 2389 0 15.371322893123997 8.8320802064430062
2397 POINT 2390 0 15.486896749463275 8.7481108846869393
2398 POINT 2391 0 15.602470605802553 8.6641415629308707
2399 POINT 2392 1.2360679774997896 15.212938452799461 8.947153238113108
2400 POINT 2393 1.2802132624104965 15.322855721984293 8.8672936674881147
2401 POINT 2394 1.3243585473212032 15.432772991169122 8.787434096863123
2402 POINT 2395 2.3511410091698925 14.753288904374102 9.2811081830225923
2403 POINT 2396 2.4351103309259603 14.846790118258028 9.2131755747157946
2404 POINT 2397 2.5190796526820276 14.940291332141951 9.1452429664089987
2405 POINT 2398 0 11.419827758825191 4.2819555378581615
2406 POINT 2399 0 11.503797080581256 4.166381681518887
2407 POINT 2400 1.3685038322319101 11.292425473761861 4.4573097396460444
2408 POINT 2401 1.4126491171426165 11.372285044386855 4.3473924704612124
2409 POINT 2402 2.6030489744380954 10.922689641897792 4.9662074539741194
2410 POINT 2403 2.6870182961941627 10.990622250204588 4.8727062400901939
2411 POINT 2404 0 15.718044462141833 8.580172241174802
2412 POINT 2405 0 15.833618318481108 8.496202919418737
2413 POINT 2406 1.3685038322319101 15.542690260353952 8.7075745262381314
2414 POINT 2407 1.4126491171426165 15.652607529538784 8.6277149556131381
2415 POINT 2408 2.6030489744380954 15.033792546025877 9.077310358102201
2416 POINT 2409 2.6870182961941627 15.127293759909801 9.0093777497954051
2417 POINT 2410 0 11.587766402337326 4.0508078251796071
2418 POINT 2411 0 11.671735724093393 3.9352339688403291
2419 POINT 2412 1.4567944020533234 11.452144615011846 4.2374752012763821
2420 POINT 2413 1.5009396869640301 11.532004185636838 4.1275579320915536
2421 POINT 2414 2.7709876179502304 11.058554858511386 4.7792050262062702
2422 POINT 2415 2.8549569397062977 11.126487466818181 4.6857038123223447
2423 POINT 2416 0 15.949192174820389 8.4122335976626683
2424 POINT 2417 0 16.064766031159667 8.3282642759065997
2425 POINT 2418 1.4567944020533234 15.762524798723613 8.5478553849881465
2426 POINT 2419 1.5009396869640301 15.872442067908443 8.4679958143631548
2427 POINT 2420 2.7709876179502304 15.220794973793726 8.9414451414886091
2428 POINT 2421 2.8549569397062977 15.314296187677652 8.8735125331818114
2429 POINT 2422 3.2360679774997894 10.1987447956372 5.9626320517854801
2430 POINT 2423 3.3516418338390679 10.248100724610419 5.8946994434786824
2431 POINT 2424 3.4672156901783455 10.297456653583636 5.8267668351718882
2432 POINT 2425 3.8042260651806146 9.5433213123924556 6.8647450843757873
2433 POINT 2426 3.9400912817942082 9.5692692598212208 6.8290307986615009
2434 POINT 2427 4.0759564984078009 9.5952172072499824 6.7933165129472162
2435 POINT 2428 3.2360679774997894 14.037367948214516 9.8012552043627927
2436 POINT 2429 3.3516418338390679 14.105300556521314 9.7518992753895741
2437 POINT 2430 3.4672156901783455 14.173233164828108 9.7025433464163573
2438 POINT 2431 3.8042260651806146 13.135254915624209 10.456678687607539
2439 POINT 2432 3.9400912817942082 13.170969201338496 10.430730740178774
2440 POINT 2433 4.0759564984078009 13.20668348705278 10.404782792750012
2441 POINT 2434 3.582789546517624 10.346812582556854 5.7588342268650905
2442 POINT 2435 3.6983634028569021 10.396168511530073 5.6909016185582928
2443 POINT 2436 4.2118217150213946 9.621165154678744 6.7576022272329315
2444 POINT 2437 4.3476869316349882 9.6471131021075074 6.721887941518645
2445 POINT 2438 3.582789546517624 14.241165773134906 9.6531874174431387
2446 POINT 2439 3.6983634028569021 14.309098381441704 9.6038314884699201
2447 POINT 2440 4.2118217150213946 13.242397772767065 10.378834845321251
2448 POINT 2441 4.3476869316349882 13.278112058481351 10.352886897892487
2449 POINT 2442 3.8139372591961802 10.445524440503291 5.6229690102514951
2450 POINT 2443 3.9295111155354583 10.494880369476508 5.5550364019447009
2451 POINT 2444 4.4835521482485818 9.6730610495362708 6.6861736558043603
2452 POINT 2445 4.6194173648621746 9.6990089969650342 6.6504593700900738
2453 POINT 2446 3.8139372591961802 14.377030989748501 9.5544755594967015
2454 POINT 2447 3.9295111155354583 14.444963598055296 9.5051196305234846
2455 POINT 2448 4.4835521482485818 13.313826344195636 10.326938950463724
2456 POINT 2449 4.6194173648621746 13.349540629909923 10.300991003034961
2457 POINT 2450 4 8.8167787843870951 7.8647450843757873
2458 POINT 2451 4.1428571428571432 8.8167787843870951 7.8647450843757873
2459 POINT 2452 4.2857142857142856 8.8167787843870951 7.8647450843757873
2460 POINT 2453 3.8042260651806146 8.0902362563817345 8.8647450843757891
2461 POINT 2454 3.9400912817942082 8.0642883089529711 8.9004593700900738
2462 POINT 2455 4.0759564984078009 8.0383403615242095 8.9361736558043603
2463 POINT 2456 4 12.135254915624209 11.1832212156129
2464 POINT 2457 4.1428571428571432 12.135254915624209 11.1832212156129
2465 POINT 2458 4.2857142857142856 12.135254915624209 11.1832212156129
2466 POINT 2459 3.8042260651806146 11.135254915624209 11.90976374361826
2467 POINT 2460 3.9400912817942082 11.099540629909923 11.935711691047024
2468 POINT 2461 4.0759564984078009 11.063826344195636 11.961659638475787
2469 POINT 2462 4.4285714285714288 8.8167787843870951 7.8647450843757873
2470 POINT 2463 4.5714285714285712 8.8167787843870951 7.8647450843757873
2471 POINT 2464 4.2118217150213946 8.0123924140954461 8.971887941518645
2472 POINT 2465 4.3476869316349882 7.9864444666666836 9.0076022272329297
2473 POINT 2466 4.4285714285714288 12.135254915624209 11.1832212156129
2474 POINT 2467 4.5714285714285712 12.135254915624209 11.1832212156129
2475 POINT 2468 4.2118217150213946 11.028112058481353 11.987607585904549
2476 POINT 2469 4.3476869316349882 10.992397772767067 12.013555533333312
2477 POINT 2470 4.7142857142857144 8.8167787843870951 7.8647450843757873
2478 POINT 2471 4.8571428571428568 8.8167787843870951 7.8647450843757873
2479 POINT 2472 4.4835521482485818 7.9604965192379211 9.0433165129472162
2480 POINT 2473 4.6194173648621746 7.9345485718091577 9.0790307986615026
2481 POINT 2474 4.7142857142857144 12.135254915624209 11.1832212156129
2482 POINT 2475 4.8571428571428568 12.135254915624209 11.1832212156129
2483 POINT 2476 4.4835521482485818 10.95668348705278 12.039503480762075
2484 POINT 2477 4.6194173648621746 10.920969201338496 12.065451428190837
2485 POINT 2478 3.2360679774997898 7.43481277313699 9.7668581169660964
2486 POINT 2479 3.3516418338390683 7.3854568441637722 9.8347907252728923
2487 POINT 2480 3.467215690178346 7.3361009151905545 9.9027233335796883
2488 POINT 2481 2.351141009169893 6.9146657517967887 10.482779073125684
2489 POINT 2482 2.4351103309259607 6.8467331434899918 10.576280287009608
2490 POINT 2483 2.519079652682028 6.778800535183195 10.669781500893533
2491 POINT 2484 3.2360679774997898 10.233141883033902 12.565187226863006
2492 POINT 2485 3.3516418338390683 10.165209274727104 12.614543155836223
2493 POINT 2486 3.467215690178346 10.097276666420308 12.66389908480944
2494 POINT 2487 2.351141009169893 9.5172209268743142 13.085334248203207
2495 POINT 2488 2.4351103309259607 9.4237197129903887 13.153266856510005
2496 POINT 2489 2.519079652682028 9.3302184991064649 13.221199464816801
2497 POINT 2490 3.5827895465176245 7.2867449862173359 9.970655941886486
2498 POINT 2491 3.6983634028569026 7.2373890572441182 10.038588550193282
2499 POINT 2492 2.6030489744380958 6.7108679268763991 10.763282714777457
2500 POINT 2493 2.6870182961941631 6.6429353185696023 10.856783928661383
2501 POINT 2494 3.5827895465176245 10.02934405811351 12.713255013782661
2502 POINT 2495 3.6983634028569026 9.9614114498067146 12.762610942755877
2503 POINT 2496 2.6030489744380958 9.2367172852225394 13.289132073123596
2504 POINT 2497 2.6870182961941631 9.1432160713386157 13.357064681430394
2505 POINT 2498 3.8139372591961811 7.1880331282709005 10.106521158500078
2506 POINT 2499 3.9295111155354587 7.1386771992976819 10.174453766806876
2507 POINT 2500 2.7709876179502313 6.5750027102628055 10.950285142545306
2508 POINT 2501 2.8549569397062986 6.5070701019560087 11.043786356429232
2509 POINT 2502 3.8139372591961811 9.8934788414999186 12.811966871729094
2510 POINT 2503 3.9295111155354587 9.8255462331931209 12.861322800702315
2511 POINT 2504 2.7709876179502313 9.0497148574546902 13.424997289737192
2512 POINT 2505 2.8549569397062986 8.9562136435707664 13.492929898043988
2513 POINT 2506 1.23606797749979 6.5807108068873061 10.942428621551041
2514 POINT 2507 1.2802132624104969 6.5008512362623136 11.052345890735873
2515 POINT 2508 1.3243585473212036 6.4209916656373203 11.162263159920704
2516 POINT 2509 4.8985871965894128e-16 6.4656377752172034 11.100813061875577
2517 POINT 2510 5.0735367393247495e-16 6.3816684534611356 11.216386918214855
2518 POINT 2511 5.2484862820600851e-16 6.2976991317050688 11.331960774554133
2519 POINT 2512 1.23606797749979 9.0575713784489551 13.419289193112689
2520 POINT 2513 1.2802132624104969 8.9476541092641249 13.499148763737683
2521 POINT 2514 1.3243585473212036 8.8377368400792946 13.579008334362676
2522 POINT 2515 4.8985871965894128e-16 8.8991869381244193 13.534362224782793
2523 POINT 2516 5.0735367393247495e-16 8.7836130817851412 13.618331546538862
2524 POINT 2517 5.2484862820600851e-16 8.6680392254458631 13.702300868294927
2525 POINT 2518 1.3685038322319105 6.3411320950123287 11.272180429105532
2526 POINT 2519 1.4126491171426172 6.2612725243873353 11.382097698290364
2527 POINT 2520 5.4234358247954217e-16 6.2137298099490001 11.447534630893413
2528 POINT 2521 5.5983853675307574e-16 6.1297604881929333 11.563108487232691
2529 POINT 2522 1.3685038322319105 8.7278195708944644 13.658867904987666
2530 POINT 2523 1.4126491171426172 8.6179023017096323 13.738727475612661
2531 POINT 2524 5.4234358247954217e-16 8.5524653691065851 13.786270190050995
2532 POINT 2525 5.5983853675307574e-16 8.436891512767307 13.870239511807064
2533 POINT 2526 1.4567944020533239 6.1814129537623437 11.492014967475194
2534 POINT 2527 1.5009396869640306 6.1015533831373512 11.601932236660025
2535 POINT 2528 5.773334910266094e-16 6.0457911664368646 11.678682343571969
2536 POINT 2529 5.9482844530014297e-16 5.9618218446807978 11.794256199911247
2537 POINT 2530 1.4567944020533239 8.5079850325248039 13.818587046237653
2538 POINT 2531 1.5009396869640306 8.3980677633399736 13.898446616862646
2539 POINT 2532 5.773334910266094e-16 8.3213176564280271 13.954208833563133
2540 POINT 2533 5.9482844530014297e-16 8.2057438000887508 14.038178155319198
2541 POINT 2534 -1.2360679774997874 6.5807108068873061 10.942428621551041
2542 POINT 2535 -1.2802132624104943 6.5008512362623136 11.052345890735873
2543 POINT 2536 -1.3243585473212007 6.4209916656373203 11.162263159920704
2544 POINT 2537 -2.3511410091698921 6.9146657517967887 10.482779073125684
2545 POINT 2538 -2.4351103309259599 6.8467331434899918 10.576280287009608
2546 POINT 2539 -2.5190796526820272 6.778800535183195 10.669781500893533
2547 POINT 2540 -1.2360679774997874 9.0575713784489551 13.419289193112689
2548 POINT 2541 -1.2802132624104943 8.9476541092641249 13.499148763737683
2549 POINT 2542 -1.3243585473212007 8.8377368400792946 13.579008334362676
2550 POINT 2543 -2.3511410091698921 9.5172209268743142 13.085334248203207
2551 POINT 2544 -2.4351103309259599 9.4237197129903887 13.153266856510005
2552 POINT 2545 -2.5190796526820272 9.3302184991064649 13.221199464816801
2553 POINT 2546 -1.3685038322319074 6.3411320950123278 11.272180429105534
2554 POINT 2547 -1.4126491171426141 6.2612725243873353 11.382097698290364
2555 POINT 2548 -2.6030489744380949 6.7108679268763991 10.763282714777457
2556 POINT 2549 -2.6870182961941622 6.6429353185696023 10.856783928661383
2557 POINT 2550 -1.3685038322319074 8.7278195708944644 13.65886790498767
2558 POINT 2551 -1.4126491171426141 8.6179023017096323 13.738727475612661
2559 POINT 2552 -2.6030489744380949 9.2367172852225394 13.289132073123596
2560 POINT 2553 -2.6870182961941622 9.1432160713386157 13.357064681430394
2561 POINT 2554 -1.4567944020533208 6.1814129537623437 11.492014967475194
2562 POINT 2555 -1.5009396869640275 6.1015533831373512 11.601932236660025
2563 POINT 2556 -2.77098761795023 6.5750027102628055 10.950285142545306
2564 POINT 2557 -2.8549569397062973 6.5070701019560087 11.043786356429232
2565 POINT 2558 -1.4567944020533208 8.5079850325248039 13.818587046237653
2566 POINT 2559 -1.5009396869640275 8.3980677633399736 13.898446616862646
2567 POINT 2560 -2.77098761795023 9.0497148574546902 13.424997289737192
2568 POINT 2561 -2.8549569397062973 8.9562136435707664 13.492929898043988
2569 POINT 2562 -3.2360679774997894 7.43481277313699 9.7668581169660964
2570 POINT 2563 -3.3516418338390679 7.3854568441637722 9.8347907252728923
2571 POINT 2564 -3.4672156901783455 7.3361009151905545 9.9027233335796883
2572 POINT 2565 -3.8042260651806141 8.0902362563817345 8.8647450843757891
2573 POINT 2566 -3.9400912817942078 8.0642883089529711 8.9004593700900738
2574 POINT 2567 -4.0759564984078009 8.0383403615242095 8.9361736558043603
2575 POINT 2568 -3.2360679774997894 10.233141883033902 12.565187226863006
2576 POINT 2569 -3.3516418338390679 10.165209274727104 12.614543155836223
2577 POINT 2570 -3.4672156901783455 10.097276666420308 12.66389908480944
2578 POINT 2571 -3.8042260651806141 11.135254915624209 11.90976374361826
2579 POINT 2572 -3.9400912817942078 11.099540629909923 11.935711691047024
2580 POINT 2573 -4.0759564984078009 11.063826344195636 11.961659638475787
2581 POINT 2574 -3.582789546517624 7.2867449862173359 9.970655941886486
2582 POINT 2575 -3.6983634028569021 7.2373890572441182 10.038588550193282
2583 POINT 2576 -4.2118217150213946 8.0123924140954461 8.971887941518645
2584 POINT 2577 -4.3476869316349873 7.9864444666666827 9.0076022272329315
2585 POINT 2578 -3.582789546517624 10.02934405811351 12.713255013782661
2586 POINT 2579 -3.6983634028569021 9.9614114498067146 12.762610942755877
2587 POINT 2580 -4.2118217150213946 11.028112058481351 11.98760758590455
2588 POINT 2581 -4.3476869316349873 10.992397772767065 12.013555533333314
2589 POINT 2582 -3.8139372591961802 7.1880331282708996 10.10652115850008
2590 POINT 2583 -3.9295111155354583 7.1386771992976819 10.174453766806876
2591 POINT 2584 -4.4835521482485809 7.9604965192379193 9.0433165129472179
2592 POINT 2585 -4.6194173648621737 7.9345485718091568 9.0790307986615026
2593 POINT 2586 -3.8139372591961802 9.8934788414999186 12.811966871729096
2594 POINT 2587 -3.9295111155354583 9.8255462331931209 12.861322800702315
2595 POINT 2588 -4.4835521482485809 10.95668348705278 12.039503480762075
2596 POINT 2589 -4.6194173648621737 10.920969201338494 12.065451428190839
2597 POINT 2590 -4 8.8167787843870951 7.8647450843757873
2598 POINT 2591 -4.1428571428571432 8.8167787843870951 7.8647450843757873
2599 POINT 2592 -4.2857142857142856 8.8167787843870951 7.8647450843757873
2600 POINT 2593 -3.8042260651806146 9.5433213123924556 6.8647450843757873
2601 POINT 2594 -3.9400912817942082 9.569269259821219 6.8290307986615044
2602 POINT 2595 -4.0759564984078009 9.5952172072499824 6.7933165129472162
2603 POINT 2596 -4 12.135254915624209 11.1832212156129
2604 POINT 2597 -4.1428571428571432 12.135254915624209 11.1832212156129
2605 POINT 2598 -4.2857142857142856 12.135254915624209 11.1832212156129
2606 POINT 2599 -3.8042260651806146 13.135254915624209 10.456678687607539
2607 POINT 2600 -3.9400912817942082 13.170969201338492 10.430730740178776
2608 POINT 2601 -4.0759564984078009 13.20668348705278 10.404782792750012
2609 POINT 2602 -4.4285714285714288 8.8167787843870951 7.8647450843757873
2610 POINT 2603 -4.5714285714285712 8.8167787843870951 7.8647450843757873
2611 POINT 2604 -4.2118217150213946 9.621165154678744 6.7576022272329315
2612 POINT 2605 -4.3476869316349882 9.6471131021075074 6.721887941518645
2613 POINT 2606 -4.4285714285714288 12.135254915624209 11.1832212156129
2614 POINT 2607 -4.5714285714285712 12.135254915624209 11.1832212156129
2615 POINT 2608 -4.2118217150213946 13.242397772767065 10.378834845321251
2616 POINT 2609 -4.3476869316349882 13.278112058481351 10.352886897892487
2617 POINT 2610 -4.7142857142857144 8.8167787843870951 7.8647450843757873
2618 POINT 2611 -4.8571428571428568 8.8167787843870951 7.8647450843757891
2619 POINT 2612 -4.4835521482485818 9.6730610495362708 6.6861736558043603
2620 POINT 2613 -4.6194173648621746 9.6990089969650324 6.6504593700900756
2621 POINT 2614 -4.7142857142857144 12.135254915624209 11.1832212156129
2622 POINT 2615 -4.8571428571428568 12.135254915624207 11.183221215612901
2623 POINT 2616 -4.4835521482485818 13.313826344195636 10.326938950463724
2624 POINT 2617 -4.6194173648621746 13.349540629909921 10.300991003034962
2625 POINT 2618 -3.2360679774997898 10.1987447956372 5.9626320517854801
2626 POINT 2619 -3.3516418338390683 10.248100724610417 5.8946994434786859
2627 POINT 2620 -3.467215690178346 10.297456653583636 5.8267668351718882
2628 POINT 2621 -2.3511410091698934 10.718891816977402 5.2467110956258924
2629 POINT 2622 -2.4351103309259612 10.786824425284198 5.1532098817419687
2630 POINT 2623 -2.5190796526820285 10.854757033590996 5.0597086678580432
2631 POINT 2624 -3.2360679774997898 14.037367948214516 9.8012552043627927
2632 POINT 2625 -3.3516418338390683 14.105300556521311 9.7518992753895759
2633 POINT 2626 -3.467215690178346 14.173233164828108 9.7025433464163573
2634 POINT 2627 -2.3511410091698934 14.753288904374102 9.2811081830225923
2635 POINT 2628 -2.4351103309259612 14.846790118258028 9.2131755747157946
2636 POINT 2629 -2.5190796526820285 14.940291332141951 9.1452429664089987
2637 POINT 2630 -3.5827895465176245 10.346812582556854 5.7588342268650905
2638 POINT 2631 -3.6983634028569026 10.396168511530071 5.6909016185582963
2639 POINT 2632 -2.6030489744380962 10.922689641897792 4.9662074539741194
2640 POINT 2633 -2.687018296194164 10.990622250204588 4.8727062400901939
2641 POINT 2634 -3.5827895465176245 14.241165773134906 9.6531874174431387
2642 POINT 2635 -3.6983634028569026 14.3090983814417 9.6038314884699236
2643 POINT 2636 -2.6030489744380962 15.033792546025877 9.077310358102201
2644 POINT 2637 -2.687018296194164 15.127293759909801 9.0093777497954051
2645 POINT 2638 -3.8139372591961811 10.44552444050329 5.6229690102514986
2646 POINT 2639 -3.9295111155354587 10.494880369476508 5.5550364019447009
2647 POINT 2640 -2.7709876179502317 11.058554858511386 4.7792050262062702
2648 POINT 2641 -2.854956939706299 11.126487466818181 4.6857038123223447
2649 POINT 2642 -3.8139372591961811 14.377030989748498 9.554475559496705
2650 POINT 2643 -3.9295111155354587 14.444963598055296 9.5051196305234846
2651 POINT 2644 -2.7709876179502317 15.220794973793726 8.9414451414886091
2652 POINT 2645 -2.854956939706299 15.314296187677652 8.8735125331818114
2653 POINT 2646 -1.2360679774997905 11.052846761886885 4.7870615472005351
2654 POINT 2647 -1.2802132624104974 11.132706332511876 4.6771442780157049
2655 POINT 2648 -1.3243585473212041 11.21256590313687 4.5672270088308728
2656 POINT 2649 -1.2360679774997905 15.212938452799461 8.947153238113108
2657 POINT 2650 -1.2802132624104974 15.32285572198429 8.8672936674881164
2658 POINT 2651 -1.3243585473212041 15.432772991169122 8.787434096863123
2659 POINT 2652 -1.368503832231911 11.292425473761861 4.4573097396460444
2660 POINT 2653 -1.4126491171426176 11.372285044386855 4.3473924704612124
2661 POINT 2654 -1.368503832231911 15.542690260353952 8.7075745262381314
2662 POINT 2655 -1.4126491171426176 15.652607529538784 8.6277149556131381
2663 POINT 2656 -1.4567944020533246 11.452144615011846 4.2374752012763821
2664 POINT 2657 -1.5009396869640312 11.532004185636838 4.1275579320915536
2665 POINT 2658 -1.4567944020533246 15.762524798723613 8.5478553849881465
2666 POINT 2659 -1.5009396869640312 15.872442067908443 8.4679958143631548
2667 POINT 2660 0 18.070073809607916 14.128677106875994
2668 POINT 2661 0 18.205939026221511 14.084531821965289
2669 POINT 2662 0 18.341804242835103 14.040386537054582
2670 POINT 2663 1.2360679774997896 17.883881733177198 14.189174579790839
2671 POINT 2664 1.2802132624104965 18.013097232775412 14.147189918912805
2672 POINT 2665 1.3243585473212032 18.142312732373618 14.105205258034772
2673 POINT 2666 2.3511410091698925 17.343531281602555 14.364745084375784
2674 POINT 2667 2.4351103309259603 17.453448550787385 14.329030798661499
2675 POINT 2668 2.5190796526820276 17.563365819972216 14.293316512947214
2676 POINT 2669 0 18.477669459448698 13.996241252143875
2677 POINT 2670 0 18.61353467606229 13.95209596723317
2678 POINT 2671 1.3685038322319101 18.271528231971828 14.063220597156738
2679 POINT 2672 1.4126491171426165 18.400743731570042 14.021235936278703
2680 POINT 2673 2.6030489744380954 17.673283089157046 14.257602227232928
2681 POINT 2674 2.6870182961941627 17.783200358341876 14.221887941518641
2682 POINT 2675 0 18.749399892675886 13.907950682322461
2683 POINT 2676 0 18.885265109289477 13.863805397411754
2684 POINT 2677 1.4567944020533234 18.529959231168249 13.979251275400671
2685 POINT 2678 1.5009396869640301 18.659174730766459 13.937266614522636
2686 POINT 2679 2.7709876179502304 17.89311762752671 14.186173655804357
2687 POINT 2680 2.8549569397062977 18.00303489671154 14.150459370090072
2688 POINT 2681 3.2360679774997894 16.501915721927094 14.638202556370423
2689 POINT 2682 3.3516418338390679 16.581775292552088 14.612254608941662
2690 POINT 2683 3.4672156901783455 16.661634863177078 14.5863066615129
2691 POINT 2684 3.8042260651806146 15.44141824901225 14.98277907312568
2692 POINT 2685 3.9400912817942082 15.483402909890286 14.969137429866748
2693 POINT 2686 4.0759564984078009 15.525387570768316 14.955495786607816
2694 POINT 2687 3.582789546517624 16.741494433802071 14.560358714084135
2695 POINT 2688 3.6983634028569021 16.821354004427064 14.534410766655373
2696 POINT 2689 4.2118217150213946 15.567372231646349 14.941854143348884
2697 POINT 2690 4.3476869316349882 15.609356892524385 14.928212500089952
2698 POINT 2691 3.8139372591961802 16.901213575052058 14.508462819226608
2699 POINT 2692 3.9295111155354583 16.981073145677048 14.482514871797846
2700 POINT 2693 4.4835521482485818 15.651341553402418 14.91457085683102
2701 POINT 2694 4.6194173648621746 15.693326214280452 14.900929213572086
2702 POINT 2695 4 14.265847744427303 15.364745084375786
2703 POINT 2696 4.1428571428571432 14.265847744427303 15.364745084375786
2704 POINT 2697 4.2857142857142856 14.265847744427303 15.364745084375786
2705 POINT 2698 3.8042260651806146 13.090277239842356 15.746711095625891
2706 POINT 2699 3.9400912817942082 13.048292578964324 15.760352738884823
2707 POINT 2700 4.0759564984078009 13.006307918086289 15.773994382143755
2708 POINT 2701 4.4285714285714288 14.265847744427303 15.364745084375786
2709 POINT 2702 4.5714285714285712 14.265847744427303 15.364745084375786
2710 POINT 2703 4.2118217150213946 12.964323257208257 15.787636025402687
2711 POINT 2704 4.3476869316349882 12.922338596330222 15.801277668661619
2712 POINT 2705 4.7142857142857144 14.265847744427303 15.364745084375786
2713 POINT 2706 4.8571428571428568 14.265847744427303 15.364745084375786
2714 POINT 2707 4.4835521482485818 12.880353935452188 15.814919311920551
2715 POINT 2708 4.6194173648621746 12.838369274574156 15.828560955179485
2716 POINT 2709 3.2360679774997898 12.029779766927513 16.091287612381148
2717 POINT 2710 3.3516418338390683 11.949920196302521 16.11723555980991
2718 POINT 2711 3.467215690178346 11.870060625677528 16.143183507238675
2719 POINT 2712 2.351141009169893 11.188164207252049 16.364745084375787
2720 POINT 2713 2.4351103309259607 11.078246938067219 16.400459370090072
2721 POINT 2714 2.519079652682028 10.968329668882388 16.436173655804357
2722 POINT 2715 3.5827895465176245 11.790201055052535 16.169131454667436
2723 POINT 2716 3.6983634028569026 11.710341484427543 16.195079402096198
2724 POINT 2717 2.6030489744380958 10.858412399697558 16.471887941518645
2725 POINT 2718 2.6870182961941631 10.748495130512728 16.50760222723293
2726 POINT 2719 3.8139372591961811 11.630481913802551 16.22102734952496
2727 POINT 2720 3.9295111155354587 11.550622343177558 16.246975296953725
2728 POINT 2721 2.7709876179502313 10.638577861327898 16.543316512947214
2729 POINT 2722 2.8549569397062986 10.528660592143067 16.579030798661499
2730 POINT 2723 1.23606797749979 10.647813755677408 16.540315588960734
2731 POINT 2724 1.2802132624104969 10.518598256079198 16.582300249838767
2732 POINT 2725 1.3243585473212036 10.389382756480986 16.624284910716799
2733 POINT 2726 4.8985871965894128e-16 10.461621679246688 16.600813061875577
2734 POINT 2727 5.0735367393247495e-16 10.325756462633096 16.644958346786282
2735 POINT 2728 5.2484862820600851e-16 10.189891246019503 16.689103631696991
2736 POINT 2729 1.3685038322319105 10.260167256882777 16.666269571594835
2737 POINT 2730 1.4126491171426172 10.130951757284565 16.708254232472868
2738 POINT 2731 5.4234358247954217e-16 10.054026029405909 16.733248916607696
2739 POINT 2732 5.5983853675307574e-16 9.9181608127923155 16.777394201518405
2740 POINT 2733 1.4567944020533239 10.001736257686355 16.7502388933509
2741 POINT 2734 1.5009396869640306 9.8725207580881449 16.792223554228936
2742 POINT 2735 5.773334910266094e-16 9.7822955961787219 16.82153948642911
2743 POINT 2736 5.9482844530014297e-16 9.6464303795651283 16.865684771339819
2744 POINT 2737 -1.2360679774997874 10.647813755677408 16.540315588960734
2745 POINT 2738 -1.2802132624104943 10.518598256079198 16.582300249838767
2746 POINT 2739 -1.3243585473212007 10.389382756480986 16.624284910716799
2747 POINT 2740 -2.3511410091698921 11.188164207252049 16.364745084375787
2748 POINT 2741 -2.4351103309259599 11.078246938067219 16.400459370090072
2749 POINT 2742 -2.5190796526820272 10.968329668882388 16.436173655804357
2750 POINT 2743 -1.3685038322319074 10.260167256882776 16.666269571594835
2751 POINT 2744 -1.4126491171426141 10.130951757284565 16.708254232472868
2752 POINT 2745 -2.6030489744380949 10.858412399697558 16.471887941518645
2753 POINT 2746 -2.6870182961941622 10.748495130512728 16.50760222723293
2754 POINT 2747 -1.4567944020533208 10.001736257686355 16.7502388933509
2755 POINT 2748 -1.5009396869640275 9.8725207580881449 16.792223554228936
2756 POINT 2749 -2.77098761795023 10.638577861327898 16.543316512947214
2757 POINT 2750 -2.8549569397062973 10.528660592143067 16.579030798661499
2758 POINT 2751 -3.2360679774997894 12.029779766927513 16.091287612381148
2759 POINT 2752 -3.3516418338390679 11.949920196302521 16.11723555980991
2760 POINT 2753 -3.4672156901783455 11.870060625677528 16.143183507238675
2761 POINT 2754 -3.8042260651806141 13.090277239842356 15.746711095625891
2762 POINT 2755 -3.9400912817942078 13.048292578964324 15.760352738884823
2763 POINT 2756 -4.0759564984078009 13.006307918086289 15.773994382143755
2764 POINT 2757 -3.582789546517624 11.790201055052535 16.169131454667436
2765 POINT 2758 -3.6983634028569021 11.710341484427543 16.195079402096198
2766 POINT 2759 -4.2118217150213946 12.964323257208255 15.787636025402687
2767 POINT 2760 -4.3476869316349873 12.922338596330221 15.801277668661621
2768 POINT 2761 -3.8139372591961802 11.63048191380255 16.221027349524963
2769 POINT 2762 -3.9295111155354583 11.550622343177558 16.246975296953725
2770 POINT 2763 -4.4835521482485809 12.880353935452186 15.814919311920553
2771 POINT 2764 -4.6194173648621737 12.838369274574154 15.828560955179485
2772 POINT 2765 -4 14.265847744427303 15.364745084375786
2773 POINT 2766 -4.1428571428571432 14.265847744427303 15.364745084375786
2774 POINT 2767 -4.2857142857142856 14.265847744427303 15.364745084375786
2775 POINT 2768 -3.8042260651806146 15.44141824901225 14.98277907312568
2776 POINT 2769 -3.9400912817942082 15.483402909890282 14.969137429866748
2777 POINT 2770 -4.0759564984078009 15.525387570768316 14.955495786607816
2778 POINT 2771 -4.4285714285714288 14.265847744427303 15.364745084375786
2779 POINT 2772 -4.5714285714285712 14.265847744427303 15.364745084375786
2780 POINT 2773 -4.2118217150213946 15.567372231646349 14.941854143348884
2781 POINT 2774 -4.3476869316349882 15.609356892524385 14.928212500089952
2782 POINT 2775 -4.7142857142857144 14.265847744427303 15.364745084375786
2783 POINT 2776 -4.8571428571428568 14.265847744427301 15.364745084375787
2784 POINT 2777 -4.4835521482485818 15.651341553402418 14.91457085683102
2785 POINT 2778 -4.6194173648621746 15.69332621428045 14.900929213572088
2786 POINT 2779 -3.2360679774997898 16.501915721927094 14.638202556370423
2787 POINT 2780 -3.3516418338390683 16.581775292552084 14.612254608941662
2788 POINT 2781 -3.467215690178346 16.661634863177078 14.5863066615129
2789 POINT 2782 -2.3511410091698934 17.343531281602555 14.364745084375784
2790 POINT 2783 -2.4351103309259612 17.453448550787385 14.329030798661499
2791 POINT 2784 -2.5190796526820285 17.563365819972216 14.293316512947214
2792 POINT 2785 -3.5827895465176245 16.741494433802071 14.560358714084135
2793 POINT 2786 -3.6983634028569026 16.821354004427061 14.534410766655373
2794 POINT 2787 -2.6030489744380962 17.673283089157046 14.257602227232928
2795 POINT 2788 -2.687018296194164 17.783200358341876 14.221887941518641
2796 POINT 2789 -3.8139372591961811 16.901213575052054 14.50846281922661
2797 POINT 2790 -3.9295111155354587 16.981073145677048 14.482514871797846
2798 POINT 2791 -2.7709876179502317 17.89311762752671 14.186173655804357
2799 POINT 2792 -2.854956939706299 18.00303489671154 14.150459370090072
2800 POINT 2793 -1.2360679774997905 17.883881733177198 14.189174579790839
2801 POINT 2794 -1.2802132624104974 18.013097232775408 14.147189918912805
2802 POINT 2795 -1.3243585473212041 18.142312732373618 14.105205258034772
2803 POINT 2796 -1.368503832231911 18.271528231971828 14.063220597156738
2804 POINT 2797 -1.4126491171426176 18.400743731570042 14.021235936278703
2805 POINT 2798 -1.4567944020533246 18.529959231168249 13.979251275400671
2806 POINT 2799 -1.5009396869640312 18.659174730766459 13.937266614522636
2807
2808 END POINTS LIST
2809
2810
2811
2812 BEGIN MESH STRUCTURE DESCRIPTION
2813
2814 CONVEX 0 GT_QK(3,2) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
2815 CONVEX 1 GT_QK(3,2) 2 27 28 5 29 30 8 31 32 11 33 34 14 35 36 17 37 38 20 39 40 23 41 42 26 43 44
2816 CONVEX 2 GT_QK(3,2) 28 45 46 30 47 48 32 49 50 34 51 52 36 53 54 38 55 56 40 57 58 42 59 60 44 61 62
2817 CONVEX 3 GT_QK(3,2) 6 7 8 63 64 65 66 67 68 15 16 17 69 70 71 72 73 74 24 25 26 75 76 77 78 79 80
2818 CONVEX 4 GT_QK(3,2) 8 31 32 65 81 82 68 83 84 17 37 38 71 85 86 74 87 88 26 43 44 77 89 90 80 91 92
2819 CONVEX 5 GT_QK(3,2) 32 49 50 82 93 94 84 95 96 38 55 56 86 97 98 88 99 100 44 61 62 90 101 102 92 103 104
2820 CONVEX 6 GT_QK(3,2) 66 67 68 105 106 107 108 109 110 72 73 74 111 112 113 114 115 116 78 79 80 117 118 119 120 121 122
2821 CONVEX 7 GT_QK(3,2) 68 83 84 107 123 124 110 125 126 74 87 88 113 127 128 116 129 130 80 91 92 119 131 132 122 133 134
2822 CONVEX 8 GT_QK(3,2) 84 95 96 124 135 136 126 137 138 88 99 100 128 139 140 130 141 142 92 103 104 132 143 144 134 145 146
2823 CONVEX 9 GT_QK(3,2) 108 109 110 147 148 149 150 151 152 114 115 116 153 154 155 156 157 158 120 121 122 159 160 161 162 163 164
2824 CONVEX 10 GT_QK(3,2) 110 125 126 149 165 166 152 167 168 116 129 130 155 169 170 158 171 172 122 133 134 161 173 174 164 175 176
2825 CONVEX 11 GT_QK(3,2) 126 137 138 166 177 178 168 179 180 130 141 142 170 181 182 172 183 184 134 145 146 174 185 186 176 187 188
2826 CONVEX 12 GT_QK(3,2) 150 151 152 189 190 191 192 193 194 156 157 158 195 196 197 198 199 200 162 163 164 201 202 203 204 205 206
2827 CONVEX 13 GT_QK(3,2) 152 167 168 191 207 208 194 209 210 158 171 172 197 211 212 200 213 214 164 175 176 203 215 216 206 217 218
2828 CONVEX 14 GT_QK(3,2) 168 179 180 208 219 220 210 221 222 172 183 184 212 223 224 214 225 226 176 187 188 216 227 228 218 229 230
2829 CONVEX 15 GT_QK(3,2) 192 193 194 231 232 233 234 235 236 198 199 200 237 238 239 240 241 242 204 205 206 243 244 245 246 247 248
2830 CONVEX 16 GT_QK(3,2) 194 209 210 233 249 250 236 251 252 200 213 214 239 253 254 242 255 256 206 217 218 245 257 258 248 259 260
2831 CONVEX 17 GT_QK(3,2) 210 221 222 250 261 262 252 263 264 214 225 226 254 265 266 256 267 268 218 229 230 258 269 270 260 271 272
2832 CONVEX 18 GT_QK(3,2) 234 235 236 273 274 275 276 277 278 240 241 242 279 280 281 282 283 284 246 247 248 285 286 287 288 289 290
2833 CONVEX 19 GT_QK(3,2) 236 251 252 275 291 292 278 293 294 242 255 256 281 295 296 284 297 298 248 259 260 287 299 300 290 301 302
2834 CONVEX 20 GT_QK(3,2) 252 263 264 292 303 304 294 305 306 256 267 268 296 307 308 298 309 310 260 271 272 300 311 312 302 313 314
2835 CONVEX 21 GT_QK(3,2) 276 277 278 315 316 317 318 319 320 282 283 284 321 322 323 324 325 326 288 289 290 327 328 329 330 331 332
2836 CONVEX 22 GT_QK(3,2) 278 293 294 317 333 334 320 335 336 284 297 298 323 337 338 326 339 340 290 301 302 329 341 342 332 343 344
2837 CONVEX 23 GT_QK(3,2) 294 305 306 334 345 346 336 347 348 298 309 310 338 349 350 340 351 352 302 313 314 342 353 354 344 355 356
2838 CONVEX 24 GT_QK(3,2) 318 319 320 357 358 359 360 361 362 324 325 326 363 364 365 366 367 368 330 331 332 369 370 371 372 373 374
2839 CONVEX 25 GT_QK(3,2) 320 335 336 359 375 376 362 377 378 326 339 340 365 379 380 368 381 382 332 343 344 371 383 384 374 385 386
2840 CONVEX 26 GT_QK(3,2) 336 347 348 376 387 388 378 389 390 340 351 352 380 391 392 382 393 394 344 355 356 384 395 396 386 397 398
2841 CONVEX 27 GT_QK(3,2) 360 361 362 399 400 401 0 1 2 366 367 368 402 403 404 9 10 11 372 373 374 405 406 407 18 19 20
2842 CONVEX 28 GT_QK(3,2) 362 377 378 401 408 409 2 27 28 368 381 382 404 410 411 11 33 34 374 385 386 407 412 413 20 39 40
2843 CONVEX 29 GT_QK(3,2) 378 389 390 409 414 415 28 45 46 382 393 394 411 416 417 34 51 52 386 397 398 413 418 419 40 57 58
2844 CONVEX 30 GT_QK(3,2) 18 19 20 21 22 23 24 25 26 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437
2845 CONVEX 31 GT_QK(3,2) 20 39 40 23 41 42 26 43 44 422 438 439 425 440 441 428 442 443 431 444 445 434 446 447 437 448 449
2846 CONVEX 32 GT_QK(3,2) 40 57 58 42 59 60 44 61 62 439 450 451 441 452 453 443 454 455 445 456 457 447 458 459 449 460 461
2847 CONVEX 33 GT_QK(3,2) 24 25 26 75 76 77 78 79 80 426 427 428 462 463 464 465 466 467 435 436 437 468 469 470 471 472 473
2848 CONVEX 34 GT_QK(3,2) 26 43 44 77 89 90 80 91 92 428 442 443 464 474 475 467 476 477 437 448 449 470 478 479 473 480 481
2849 CONVEX 35 GT_QK(3,2) 44 61 62 90 101 102 92 103 104 443 454 455 475 482 483 477 484 485 449 460 461 479 486 487 481 488 489
2850 CONVEX 36 GT_QK(3,2) 78 79 80 117 118 119 120 121 122 465 466 467 490 491 492 493 494 495 471 472 473 496 497 498 499 500 501
2851 CONVEX 37 GT_QK(3,2) 80 91 92 119 131 132 122 133 134 467 476 477 492 502 503 495 504 505 473 480 481 498 506 507 501 508 509
2852 CONVEX 38 GT_QK(3,2) 92 103 104 132 143 144 134 145 146 477 484 485 503 510 511 505 512 513 481 488 489 507 514 515 509 516 517
2853 CONVEX 39 GT_QK(3,2) 120 121 122 159 160 161 162 163 164 493 494 495 518 519 520 521 522 523 499 500 501 524 525 526 527 528 529
2854 CONVEX 40 GT_QK(3,2) 122 133 134 161 173 174 164 175 176 495 504 505 520 530 531 523 532 533 501 508 509 526 534 535 529 536 537
2855 CONVEX 41 GT_QK(3,2) 134 145 146 174 185 186 176 187 188 505 512 513 531 538 539 533 540 541 509 516 517 535 542 543 537 544 545
2856 CONVEX 42 GT_QK(3,2) 162 163 164 201 202 203 204 205 206 521 522 523 546 547 548 549 550 551 527 528 529 552 553 554 555 556 557
2857 CONVEX 43 GT_QK(3,2) 164 175 176 203 215 216 206 217 218 523 532 533 548 558 559 551 560 561 529 536 537 554 562 563 557 564 565
2858 CONVEX 44 GT_QK(3,2) 176 187 188 216 227 228 218 229 230 533 540 541 559 566 567 561 568 569 537 544 545 563 570 571 565 572 573
2859 CONVEX 45 GT_QK(3,2) 204 205 206 243 244 245 246 247 248 549 550 551 574 575 576 577 578 579 555 556 557 580 581 582 583 584 585
2860 CONVEX 46 GT_QK(3,2) 206 217 218 245 257 258 248 259 260 551 560 561 576 586 587 579 588 589 557 564 565 582 590 591 585 592 593
2861 CONVEX 47 GT_QK(3,2) 218 229 230 258 269 270 260 271 272 561 568 569 587 594 595 589 596 597 565 572 573 591 598 599 593 600 601
2862 CONVEX 48 GT_QK(3,2) 246 247 248 285 286 287 288 289 290 577 578 579 602 603 604 605 606 607 583 584 585 608 609 610 611 612 613
2863 CONVEX 49 GT_QK(3,2) 248 259 260 287 299 300 290 301 302 579 588 589 604 614 615 607 616 617 585 592 593 610 618 619 613 620 621
2864 CONVEX 50 GT_QK(3,2) 260 271 272 300 311 312 302 313 314 589 596 597 615 622 623 617 624 625 593 600 601 619 626 627 621 628 629
2865 CONVEX 51 GT_QK(3,2) 288 289 290 327 328 329 330 331 332 605 606 607 630 631 632 633 634 635 611 612 613 636 637 638 639 640 641
2866 CONVEX 52 GT_QK(3,2) 290 301 302 329 341 342 332 343 344 607 616 617 632 642 643 635 644 645 613 620 621 638 646 647 641 648 649
2867 CONVEX 53 GT_QK(3,2) 302 313 314 342 353 354 344 355 356 617 624 625 643 650 651 645 652 653 621 628 629 647 654 655 649 656 657
2868 CONVEX 54 GT_QK(3,2) 330 331 332 369 370 371 372 373 374 633 634 635 658 659 660 661 662 663 639 640 641 664 665 666 667 668 669
2869 CONVEX 55 GT_QK(3,2) 332 343 344 371 383 384 374 385 386 635 644 645 660 670 671 663 672 673 641 648 649 666 674 675 669 676 677
2870 CONVEX 56 GT_QK(3,2) 344 355 356 384 395 396 386 397 398 645 652 653 671 678 679 673 680 681 649 656 657 675 682 683 677 684 685
2871 CONVEX 57 GT_QK(3,2) 372 373 374 405 406 407 18 19 20 661 662 663 686 687 688 420 421 422 667 668 669 689 690 691 429 430 431
2872 CONVEX 58 GT_QK(3,2) 374 385 386 407 412 413 20 39 40 663 672 673 688 692 693 422 438 439 669 676 677 691 694 695 431 444 445
2873 CONVEX 59 GT_QK(3,2) 386 397 398 413 418 419 40 57 58 673 680 681 693 696 697 439 450 451 677 684 685 695 698 699 445 456 457
2874 CONVEX 60 GT_QK(3,2) 429 430 431 432 433 434 435 436 437 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717
2875 CONVEX 61 GT_QK(3,2) 431 444 445 434 446 447 437 448 449 702 718 719 705 720 721 708 722 723 711 724 725 714 726 727 717 728 729
2876 CONVEX 62 GT_QK(3,2) 445 456 457 447 458 459 449 460 461 719 730 731 721 732 733 723 734 735 725 736 737 727 738 739 729 740 741
2877 CONVEX 63 GT_QK(3,2) 435 436 437 468 469 470 471 472 473 706 707 708 742 743 744 745 746 747 715 716 717 748 749 750 751 752 753
2878 CONVEX 64 GT_QK(3,2) 437 448 449 470 478 479 473 480 481 708 722 723 744 754 755 747 756 757 717 728 729 750 758 759 753 760 761
2879 CONVEX 65 GT_QK(3,2) 449 460 461 479 486 487 481 488 489 723 734 735 755 762 763 757 764 765 729 740 741 759 766 767 761 768 769
2880 CONVEX 66 GT_QK(3,2) 471 472 473 496 497 498 499 500 501 745 746 747 770 771 772 773 774 775 751 752 753 776 777 778 779 780 781
2881 CONVEX 67 GT_QK(3,2) 473 480 481 498 506 507 501 508 509 747 756 757 772 782 783 775 784 785 753 760 761 778 786 787 781 788 789
2882 CONVEX 68 GT_QK(3,2) 481 488 489 507 514 515 509 516 517 757 764 765 783 790 791 785 792 793 761 768 769 787 794 795 789 796 797
2883 CONVEX 69 GT_QK(3,2) 499 500 501 524 525 526 527 528 529 773 774 775 798 799 800 801 802 803 779 780 781 804 805 806 807 808 809
2884 CONVEX 70 GT_QK(3,2) 501 508 509 526 534 535 529 536 537 775 784 785 800 810 811 803 812 813 781 788 789 806 814 815 809 816 817
2885 CONVEX 71 GT_QK(3,2) 509 516 517 535 542 543 537 544 545 785 792 793 811 818 819 813 820 821 789 796 797 815 822 823 817 824 825
2886 CONVEX 72 GT_QK(3,2) 527 528 529 552 553 554 555 556 557 801 802 803 826 827 828 829 830 831 807 808 809 832 833 834 835 836 837
2887 CONVEX 73 GT_QK(3,2) 529 536 537 554 562 563 557 564 565 803 812 813 828 838 839 831 840 841 809 816 817 834 842 843 837 844 845
2888 CONVEX 74 GT_QK(3,2) 537 544 545 563 570 571 565 572 573 813 820 821 839 846 847 841 848 849 817 824 825 843 850 851 845 852 853
2889 CONVEX 75 GT_QK(3,2) 555 556 557 580 581 582 583 584 585 829 830 831 854 855 856 857 858 859 835 836 837 860 861 862 863 864 865
2890 CONVEX 76 GT_QK(3,2) 557 564 565 582 590 591 585 592 593 831 840 841 856 866 867 859 868 869 837 844 845 862 870 871 865 872 873
2891 CONVEX 77 GT_QK(3,2) 565 572 573 591 598 599 593 600 601 841 848 849 867 874 875 869 876 877 845 852 853 871 878 879 873 880 881
2892 CONVEX 78 GT_QK(3,2) 583 584 585 608 609 610 611 612 613 857 858 859 882 883 884 885 886 887 863 864 865 888 889 890 891 892 893
2893 CONVEX 79 GT_QK(3,2) 585 592 593 610 618 619 613 620 621 859 868 869 884 894 895 887 896 897 865 872 873 890 898 899 893 900 901
2894 CONVEX 80 GT_QK(3,2) 593 600 601 619 626 627 621 628 629 869 876 877 895 902 903 897 904 905 873 880 881 899 906 907 901 908 909
2895 CONVEX 81 GT_QK(3,2) 611 612 613 636 637 638 639 640 641 885 886 887 910 911 912 913 914 915 891 892 893 916 917 918 919 920 921
2896 CONVEX 82 GT_QK(3,2) 613 620 621 638 646 647 641 648 649 887 896 897 912 922 923 915 924 925 893 900 901 918 926 927 921 928 929
2897 CONVEX 83 GT_QK(3,2) 621 628 629 647 654 655 649 656 657 897 904 905 923 930 931 925 932 933 901 908 909 927 934 935 929 936 937
2898 CONVEX 84 GT_QK(3,2) 639 640 641 664 665 666 667 668 669 913 914 915 938 939 940 941 942 943 919 920 921 944 945 946 947 948 949
2899 CONVEX 85 GT_QK(3,2) 641 648 649 666 674 675 669 676 677 915 924 925 940 950 951 943 952 953 921 928 929 946 954 955 949 956 957
2900 CONVEX 86 GT_QK(3,2) 649 656 657 675 682 683 677 684 685 925 932 933 951 958 959 953 960 961 929 936 937 955 962 963 957 964 965
2901 CONVEX 87 GT_QK(3,2) 667 668 669 689 690 691 429 430 431 941 942 943 966 967 968 700 701 702 947 948 949 969 970 971 709 710 711
2902 CONVEX 88 GT_QK(3,2) 669 676 677 691 694 695 431 444 445 943 952 953 968 972 973 702 718 719 949 956 957 971 974 975 711 724 725
2903 CONVEX 89 GT_QK(3,2) 677 684 685 695 698 699 445 456 457 953 960 961 973 976 977 719 730 731 957 964 965 975 978 979 725 736 737
2904 CONVEX 90 GT_QK(3,2) 709 710 711 712 713 714 715 716 717 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997
2905 CONVEX 91 GT_QK(3,2) 711 724 725 714 726 727 717 728 729 982 998 999 985 1000 1001 988 1002 1003 991 1004 1005 994 1006 1007 997 1008 1009
2906 CONVEX 92 GT_QK(3,2) 725 736 737 727 738 739 729 740 741 999 1010 1011 1001 1012 1013 1003 1014 1015 1005 1016 1017 1007 1018 1019 1009 1020 1021
2907 CONVEX 93 GT_QK(3,2) 715 716 717 748 749 750 751 752 753 986 987 988 1022 1023 1024 1025 1026 1027 995 996 997 1028 1029 1030 1031 1032 1033
2908 CONVEX 94 GT_QK(3,2) 717 728 729 750 758 759 753 760 761 988 1002 1003 1024 1034 1035 1027 1036 1037 997 1008 1009 1030 1038 1039 1033 1040 1041
2909 CONVEX 95 GT_QK(3,2) 729 740 741 759 766 767 761 768 769 1003 1014 1015 1035 1042 1043 1037 1044 1045 1009 1020 1021 1039 1046 1047 1041 1048 1049
2910 CONVEX 96 GT_QK(3,2) 751 752 753 776 777 778 779 780 781 1025 1026 1027 1050 1051 1052 1053 1054 1055 1031 1032 1033 1056 1057 1058 1059 1060 1061
2911 CONVEX 97 GT_QK(3,2) 753 760 761 778 786 787 781 788 789 1027 1036 1037 1052 1062 1063 1055 1064 1065 1033 1040 1041 1058 1066 1067 1061 1068 1069
2912 CONVEX 98 GT_QK(3,2) 761 768 769 787 794 795 789 796 797 1037 1044 1045 1063 1070 1071 1065 1072 1073 1041 1048 1049 1067 1074 1075 1069 1076 1077
2913 CONVEX 99 GT_QK(3,2) 779 780 781 804 805 806 807 808 809 1053 1054 1055 1078 1079 1080 1081 1082 1083 1059 1060 1061 1084 1085 1086 1087 1088 1089
2914 CONVEX 100 GT_QK(3,2) 781 788 789 806 814 815 809 816 817 1055 1064 1065 1080 1090 1091 1083 1092 1093 1061 1068 1069 1086 1094 1095 1089 1096 1097
2915 CONVEX 101 GT_QK(3,2) 789 796 797 815 822 823 817 824 825 1065 1072 1073 1091 1098 1099 1093 1100 1101 1069 1076 1077 1095 1102 1103 1097 1104 1105
2916 CONVEX 102 GT_QK(3,2) 807 808 809 832 833 834 835 836 837 1081 1082 1083 1106 1107 1108 1109 1110 1111 1087 1088 1089 1112 1113 1114 1115 1116 1117
2917 CONVEX 103 GT_QK(3,2) 809 816 817 834 842 843 837 844 845 1083 1092 1093 1108 1118 1119 1111 1120 1121 1089 1096 1097 1114 1122 1123 1117 1124 1125
2918 CONVEX 104 GT_QK(3,2) 817 824 825 843 850 851 845 852 853 1093 1100 1101 1119 1126 1127 1121 1128 1129 1097 1104 1105 1123 1130 1131 1125 1132 1133
2919 CONVEX 105 GT_QK(3,2) 835 836 837 860 861 862 863 864 865 1109 1110 1111 1134 1135 1136 1137 1138 1139 1115 1116 1117 1140 1141 1142 1143 1144 1145
2920 CONVEX 106 GT_QK(3,2) 837 844 845 862 870 871 865 872 873 1111 1120 1121 1136 1146 1147 1139 1148 1149 1117 1124 1125 1142 1150 1151 1145 1152 1153
2921 CONVEX 107 GT_QK(3,2) 845 852 853 871 878 879 873 880 881 1121 1128 1129 1147 1154 1155 1149 1156 1157 1125 1132 1133 1151 1158 1159 1153 1160 1161
2922 CONVEX 108 GT_QK(3,2) 863 864 865 888 889 890 891 892 893 1137 1138 1139 1162 1163 1164 1165 1166 1167 1143 1144 1145 1168 1169 1170 1171 1172 1173
2923 CONVEX 109 GT_QK(3,2) 865 872 873 890 898 899 893 900 901 1139 1148 1149 1164 1174 1175 1167 1176 1177 1145 1152 1153 1170 1178 1179 1173 1180 1181
2924 CONVEX 110 GT_QK(3,2) 873 880 881 899 906 907 901 908 909 1149 1156 1157 1175 1182 1183 1177 1184 1185 1153 1160 1161 1179 1186 1187 1181 1188 1189
2925 CONVEX 111 GT_QK(3,2) 891 892 893 916 917 918 919 920 921 1165 1166 1167 1190 1191 1192 1193 1194 1195 1171 1172 1173 1196 1197 1198 1199 1200 1201
2926 CONVEX 112 GT_QK(3,2) 893 900 901 918 926 927 921 928 929 1167 1176 1177 1192 1202 1203 1195 1204 1205 1173 1180 1181 1198 1206 1207 1201 1208 1209
2927 CONVEX 113 GT_QK(3,2) 901 908 909 927 934 935 929 936 937 1177 1184 1185 1203 1210 1211 1205 1212 1213 1181 1188 1189 1207 1214 1215 1209 1216 1217
2928 CONVEX 114 GT_QK(3,2) 919 920 921 944 945 946 947 948 949 1193 1194 1195 1218 1219 1220 1221 1222 1223 1199 1200 1201 1224 1225 1226 1227 1228 1229
2929 CONVEX 115 GT_QK(3,2) 921 928 929 946 954 955 949 956 957 1195 1204 1205 1220 1230 1231 1223 1232 1233 1201 1208 1209 1226 1234 1235 1229 1236 1237
2930 CONVEX 116 GT_QK(3,2) 929 936 937 955 962 963 957 964 965 1205 1212 1213 1231 1238 1239 1233 1240 1241 1209 1216 1217 1235 1242 1243 1237 1244 1245
2931 CONVEX 117 GT_QK(3,2) 947 948 949 969 970 971 709 710 711 1221 1222 1223 1246 1247 1248 980 981 982 1227 1228 1229 1249 1250 1251 989 990 991
2932 CONVEX 118 GT_QK(3,2) 949 956 957 971 974 975 711 724 725 1223 1232 1233 1248 1252 1253 982 998 999 1229 1236 1237 1251 1254 1255 991 1004 1005
2933 CONVEX 119 GT_QK(3,2) 957 964 965 975 978 979 725 736 737 1233 1240 1241 1253 1256 1257 999 1010 1011 1237 1244 1245 1255 1258 1259 1005 1016 1017
2934 CONVEX 120 GT_QK(3,2) 989 990 991 992 993 994 995 996 997 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277
2935 CONVEX 121 GT_QK(3,2) 991 1004 1005 994 1006 1007 997 1008 1009 1262 1278 1279 1265 1280 1281 1268 1282 1283 1271 1284 1285 1274 1286 1287 1277 1288 1289
2936 CONVEX 122 GT_QK(3,2) 1005 1016 1017 1007 1018 1019 1009 1020 1021 1279 1290 1291 1281 1292 1293 1283 1294 1295 1285 1296 1297 1287 1298 1299 1289 1300 1301
2937 CONVEX 123 GT_QK(3,2) 995 996 997 1028 1029 1030 1031 1032 1033 1266 1267 1268 1302 1303 1304 1305 1306 1307 1275 1276 1277 1308 1309 1310 1311 1312 1313
2938 CONVEX 124 GT_QK(3,2) 997 1008 1009 1030 1038 1039 1033 1040 1041 1268 1282 1283 1304 1314 1315 1307 1316 1317 1277 1288 1289 1310 1318 1319 1313 1320 1321
2939 CONVEX 125 GT_QK(3,2) 1009 1020 1021 1039 1046 1047 1041 1048 1049 1283 1294 1295 1315 1322 1323 1317 1324 1325 1289 1300 1301 1319 1326 1327 1321 1328 1329
2940 CONVEX 126 GT_QK(3,2) 1031 1032 1033 1056 1057 1058 1059 1060 1061 1305 1306 1307 1330 1331 1332 1333 1334 1335 1311 1312 1313 1336 1337 1338 1339 1340 1341
2941 CONVEX 127 GT_QK(3,2) 1033 1040 1041 1058 1066 1067 1061 1068 1069 1307 1316 1317 1332 1342 1343 1335 1344 1345 1313 1320 1321 1338 1346 1347 1341 1348 1349
2942 CONVEX 128 GT_QK(3,2) 1041 1048 1049 1067 1074 1075 1069 1076 1077 1317 1324 1325 1343 1350 1351 1345 1352 1353 1321 1328 1329 1347 1354 1355 1349 1356 1357
2943 CONVEX 129 GT_QK(3,2) 1059 1060 1061 1084 1085 1086 1087 1088 1089 1333 1334 1335 1358 1359 1360 1361 1362 1363 1339 1340 1341 1364 1365 1366 1367 1368 1369
2944 CONVEX 130 GT_QK(3,2) 1061 1068 1069 1086 1094 1095 1089 1096 1097 1335 1344 1345 1360 1370 1371 1363 1372 1373 1341 1348 1349 1366 1374 1375 1369 1376 1377
2945 CONVEX 131 GT_QK(3,2) 1069 1076 1077 1095 1102 1103 1097 1104 1105 1345 1352 1353 1371 1378 1379 1373 1380 1381 1349 1356 1357 1375 1382 1383 1377 1384 1385
2946 CONVEX 132 GT_QK(3,2) 1087 1088 1089 1112 1113 1114 1115 1116 1117 1361 1362 1363 1386 1387 1388 1389 1390 1391 1367 1368 1369 1392 1393 1394 1395 1396 1397
2947 CONVEX 133 GT_QK(3,2) 1089 1096 1097 1114 1122 1123 1117 1124 1125 1363 1372 1373 1388 1398 1399 1391 1400 1401 1369 1376 1377 1394 1402 1403 1397 1404 1405
2948 CONVEX 134 GT_QK(3,2) 1097 1104 1105 1123 1130 1131 1125 1132 1133 1373 1380 1381 1399 1406 1407 1401 1408 1409 1377 1384 1385 1403 1410 1411 1405 1412 1413
2949 CONVEX 135 GT_QK(3,2) 1115 1116 1117 1140 1141 1142 1143 1144 1145 1389 1390 1391 1414 1415 1416 1417 1418 1419 1395 1396 1397 1420 1421 1422 1423 1424 1425
2950 CONVEX 136 GT_QK(3,2) 1117 1124 1125 1142 1150 1151 1145 1152 1153 1391 1400 1401 1416 1426 1427 1419 1428 1429 1397 1404 1405 1422 1430 1431 1425 1432 1433
2951 CONVEX 137 GT_QK(3,2) 1125 1132 1133 1151 1158 1159 1153 1160 1161 1401 1408 1409 1427 1434 1435 1429 1436 1437 1405 1412 1413 1431 1438 1439 1433 1440 1441
2952 CONVEX 138 GT_QK(3,2) 1143 1144 1145 1168 1169 1170 1171 1172 1173 1417 1418 1419 1442 1443 1444 1445 1446 1447 1423 1424 1425 1448 1449 1450 1451 1452 1453
2953 CONVEX 139 GT_QK(3,2) 1145 1152 1153 1170 1178 1179 1173 1180 1181 1419 1428 1429 1444 1454 1455 1447 1456 1457 1425 1432 1433 1450 1458 1459 1453 1460 1461
2954 CONVEX 140 GT_QK(3,2) 1153 1160 1161 1179 1186 1187 1181 1188 1189 1429 1436 1437 1455 1462 1463 1457 1464 1465 1433 1440 1441 1459 1466 1467 1461 1468 1469
2955 CONVEX 141 GT_QK(3,2) 1171 1172 1173 1196 1197 1198 1199 1200 1201 1445 1446 1447 1470 1471 1472 1473 1474 1475 1451 1452 1453 1476 1477 1478 1479 1480 1481
2956 CONVEX 142 GT_QK(3,2) 1173 1180 1181 1198 1206 1207 1201 1208 1209 1447 1456 1457 1472 1482 1483 1475 1484 1485 1453 1460 1461 1478 1486 1487 1481 1488 1489
2957 CONVEX 143 GT_QK(3,2) 1181 1188 1189 1207 1214 1215 1209 1216 1217 1457 1464 1465 1483 1490 1491 1485 1492 1493 1461 1468 1469 1487 1494 1495 1489 1496 1497
2958 CONVEX 144 GT_QK(3,2) 1199 1200 1201 1224 1225 1226 1227 1228 1229 1473 1474 1475 1498 1499 1500 1501 1502 1503 1479 1480 1481 1504 1505 1506 1507 1508 1509
2959 CONVEX 145 GT_QK(3,2) 1201 1208 1209 1226 1234 1235 1229 1236 1237 1475 1484 1485 1500 1510 1511 1503 1512 1513 1481 1488 1489 1506 1514 1515 1509 1516 1517
2960 CONVEX 146 GT_QK(3,2) 1209 1216 1217 1235 1242 1243 1237 1244 1245 1485 1492 1493 1511 1518 1519 1513 1520 1521 1489 1496 1497 1515 1522 1523 1517 1524 1525
2961 CONVEX 147 GT_QK(3,2) 1227 1228 1229 1249 1250 1251 989 990 991 1501 1502 1503 1526 1527 1528 1260 1261 1262 1507 1508 1509 1529 1530 1531 1269 1270 1271
2962 CONVEX 148 GT_QK(3,2) 1229 1236 1237 1251 1254 1255 991 1004 1005 1503 1512 1513 1528 1532 1533 1262 1278 1279 1509 1516 1517 1531 1534 1535 1271 1284 1285
2963 CONVEX 149 GT_QK(3,2) 1237 1244 1245 1255 1258 1259 1005 1016 1017 1513 1520 1521 1533 1536 1537 1279 1290 1291 1517 1524 1525 1535 1538 1539 1285 1296 1297
2964 CONVEX 150 GT_QK(3,2) 1269 1270 1271 1272 1273 1274 1275 1276 1277 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557
2965 CONVEX 151 GT_QK(3,2) 1271 1284 1285 1274 1286 1287 1277 1288 1289 1542 1558 1559 1545 1560 1561 1548 1562 1563 1551 1564 1565 1554 1566 1567 1557 1568 1569
2966 CONVEX 152 GT_QK(3,2) 1285 1296 1297 1287 1298 1299 1289 1300 1301 1559 1570 1571 1561 1572 1573 1563 1574 1575 1565 1576 1577 1567 1578 1579 1569 1580 1581
2967 CONVEX 153 GT_QK(3,2) 1275 1276 1277 1308 1309 1310 1311 1312 1313 1546 1547 1548 1582 1583 1584 1585 1586 1587 1555 1556 1557 1588 1589 1590 1591 1592 1593
2968 CONVEX 154 GT_QK(3,2) 1277 1288 1289 1310 1318 1319 1313 1320 1321 1548 1562 1563 1584 1594 1595 1587 1596 1597 1557 1568 1569 1590 1598 1599 1593 1600 1601
2969 CONVEX 155 GT_QK(3,2) 1289 1300 1301 1319 1326 1327 1321 1328 1329 1563 1574 1575 1595 1602 1603 1597 1604 1605 1569 1580 1581 1599 1606 1607 1601 1608 1609
2970 CONVEX 156 GT_QK(3,2) 1311 1312 1313 1336 1337 1338 1339 1340 1341 1585 1586 1587 1610 1611 1612 1613 1614 1615 1591 1592 1593 1616 1617 1618 1619 1620 1621
2971 CONVEX 157 GT_QK(3,2) 1313 1320 1321 1338 1346 1347 1341 1348 1349 1587 1596 1597 1612 1622 1623 1615 1624 1625 1593 1600 1601 1618 1626 1627 1621 1628 1629
2972 CONVEX 158 GT_QK(3,2) 1321 1328 1329 1347 1354 1355 1349 1356 1357 1597 1604 1605 1623 1630 1631 1625 1632 1633 1601 1608 1609 1627 1634 1635 1629 1636 1637
2973 CONVEX 159 GT_QK(3,2) 1339 1340 1341 1364 1365 1366 1367 1368 1369 1613 1614 1615 1638 1639 1640 1641 1642 1643 1619 1620 1621 1644 1645 1646 1647 1648 1649
2974 CONVEX 160 GT_QK(3,2) 1341 1348 1349 1366 1374 1375 1369 1376 1377 1615 1624 1625 1640 1650 1651 1643 1652 1653 1621 1628 1629 1646 1654 1655 1649 1656 1657
2975 CONVEX 161 GT_QK(3,2) 1349 1356 1357 1375 1382 1383 1377 1384 1385 1625 1632 1633 1651 1658 1659 1653 1660 1661 1629 1636 1637 1655 1662 1663 1657 1664 1665
2976 CONVEX 162 GT_QK(3,2) 1367 1368 1369 1392 1393 1394 1395 1396 1397 1641 1642 1643 1666 1667 1668 1669 1670 1671 1647 1648 1649 1672 1673 1674 1675 1676 1677
2977 CONVEX 163 GT_QK(3,2) 1369 1376 1377 1394 1402 1403 1397 1404 1405 1643 1652 1653 1668 1678 1679 1671 1680 1681 1649 1656 1657 1674 1682 1683 1677 1684 1685
2978 CONVEX 164 GT_QK(3,2) 1377 1384 1385 1403 1410 1411 1405 1412 1413 1653 1660 1661 1679 1686 1687 1681 1688 1689 1657 1664 1665 1683 1690 1691 1685 1692 1693
2979 CONVEX 165 GT_QK(3,2) 1395 1396 1397 1420 1421 1422 1423 1424 1425 1669 1670 1671 1694 1695 1696 1697 1698 1699 1675 1676 1677 1700 1701 1702 1703 1704 1705
2980 CONVEX 166 GT_QK(3,2) 1397 1404 1405 1422 1430 1431 1425 1432 1433 1671 1680 1681 1696 1706 1707 1699 1708 1709 1677 1684 1685 1702 1710 1711 1705 1712 1713
2981 CONVEX 167 GT_QK(3,2) 1405 1412 1413 1431 1438 1439 1433 1440 1441 1681 1688 1689 1707 1714 1715 1709 1716 1717 1685 1692 1693 1711 1718 1719 1713 1720 1721
2982 CONVEX 168 GT_QK(3,2) 1423 1424 1425 1448 1449 1450 1451 1452 1453 1697 1698 1699 1722 1723 1724 1725 1726 1727 1703 1704 1705 1728 1729 1730 1731 1732 1733
2983 CONVEX 169 GT_QK(3,2) 1425 1432 1433 1450 1458 1459 1453 1460 1461 1699 1708 1709 1724 1734 1735 1727 1736 1737 1705 1712 1713 1730 1738 1739 1733 1740 1741
2984 CONVEX 170 GT_QK(3,2) 1433 1440 1441 1459 1466 1467 1461 1468 1469 1709 1716 1717 1735 1742 1743 1737 1744 1745 1713 1720 1721 1739 1746 1747 1741 1748 1749
2985 CONVEX 171 GT_QK(3,2) 1451 1452 1453 1476 1477 1478 1479 1480 1481 1725 1726 1727 1750 1751 1752 1753 1754 1755 1731 1732 1733 1756 1757 1758 1759 1760 1761
2986 CONVEX 172 GT_QK(3,2) 1453 1460 1461 1478 1486 1487 1481 1488 1489 1727 1736 1737 1752 1762 1763 1755 1764 1765 1733 1740 1741 1758 1766 1767 1761 1768 1769
2987 CONVEX 173 GT_QK(3,2) 1461 1468 1469 1487 1494 1495 1489 1496 1497 1737 1744 1745 1763 1770 1771 1765 1772 1773 1741 1748 1749 1767 1774 1775 1769 1776 1777
2988 CONVEX 174 GT_QK(3,2) 1479 1480 1481 1504 1505 1506 1507 1508 1509 1753 1754 1755 1778 1779 1780 1781 1782 1783 1759 1760 1761 1784 1785 1786 1787 1788 1789
2989 CONVEX 175 GT_QK(3,2) 1481 1488 1489 1506 1514 1515 1509 1516 1517 1755 1764 1765 1780 1790 1791 1783 1792 1793 1761 1768 1769 1786 1794 1795 1789 1796 1797
2990 CONVEX 176 GT_QK(3,2) 1489 1496 1497 1515 1522 1523 1517 1524 1525 1765 1772 1773 1791 1798 1799 1793 1800 1801 1769 1776 1777 1795 1802 1803 1797 1804 1805
2991 CONVEX 177 GT_QK(3,2) 1507 1508 1509 1529 1530 1531 1269 1270 1271 1781 1782 1783 1806 1807 1808 1540 1541 1542 1787 1788 1789 1809 1810 1811 1549 1550 1551
2992 CONVEX 178 GT_QK(3,2) 1509 1516 1517 1531 1534 1535 1271 1284 1285 1783 1792 1793 1808 1812 1813 1542 1558 1559 1789 1796 1797 1811 1814 1815 1551 1564 1565
2993 CONVEX 179 GT_QK(3,2) 1517 1524 1525 1535 1538 1539 1285 1296 1297 1793 1800 1801 1813 1816 1817 1559 1570 1571 1797 1804 1805 1815 1818 1819 1565 1576 1577
2994 CONVEX 180 GT_QK(3,2) 1549 1550 1551 1552 1553 1554 1555 1556 1557 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837
2995 CONVEX 181 GT_QK(3,2) 1551 1564 1565 1554 1566 1567 1557 1568 1569 1822 1838 1839 1825 1840 1841 1828 1842 1843 1831 1844 1845 1834 1846 1847 1837 1848 1849
2996 CONVEX 182 GT_QK(3,2) 1565 1576 1577 1567 1578 1579 1569 1580 1581 1839 1850 1851 1841 1852 1853 1843 1854 1855 1845 1856 1857 1847 1858 1859 1849 1860 1861
2997 CONVEX 183 GT_QK(3,2) 1555 1556 1557 1588 1589 1590 1591 1592 1593 1826 1827 1828 1862 1863 1864 1865 1866 1867 1835 1836 1837 1868 1869 1870 1871 1872 1873
2998 CONVEX 184 GT_QK(3,2) 1557 1568 1569 1590 1598 1599 1593 1600 1601 1828 1842 1843 1864 1874 1875 1867 1876 1877 1837 1848 1849 1870 1878 1879 1873 1880 1881
2999 CONVEX 185 GT_QK(3,2) 1569 1580 1581 1599 1606 1607 1601 1608 1609 1843 1854 1855 1875 1882 1883 1877 1884 1885 1849 1860 1861 1879 1886 1887 1881 1888 1889
3000 CONVEX 186 GT_QK(3,2) 1591 1592 1593 1616 1617 1618 1619 1620 1621 1865 1866 1867 1890 1891 1892 1893 1894 1895 1871 1872 1873 1896 1897 1898 1899 1900 1901
3001 CONVEX 187 GT_QK(3,2) 1593 1600 1601 1618 1626 1627 1621 1628 1629 1867 1876 1877 1892 1902 1903 1895 1904 1905 1873 1880 1881 1898 1906 1907 1901 1908 1909
3002 CONVEX 188 GT_QK(3,2) 1601 1608 1609 1627 1634 1635 1629 1636 1637 1877 1884 1885 1903 1910 1911 1905 1912 1913 1881 1888 1889 1907 1914 1915 1909 1916 1917
3003 CONVEX 189 GT_QK(3,2) 1619 1620 1621 1644 1645 1646 1647 1648 1649 1893 1894 1895 1918 1919 1920 1921 1922 1923 1899 1900 1901 1924 1925 1926 1927 1928 1929
3004 CONVEX 190 GT_QK(3,2) 1621 1628 1629 1646 1654 1655 1649 1656 1657 1895 1904 1905 1920 1930 1931 1923 1932 1933 1901 1908 1909 1926 1934 1935 1929 1936 1937
3005 CONVEX 191 GT_QK(3,2) 1629 1636 1637 1655 1662 1663 1657 1664 1665 1905 1912 1913 1931 1938 1939 1933 1940 1941 1909 1916 1917 1935 1942 1943 1937 1944 1945
3006 CONVEX 192 GT_QK(3,2) 1647 1648 1649 1672 1673 1674 1675 1676 1677 1921 1922 1923 1946 1947 1948 1949 1950 1951 1927 1928 1929 1952 1953 1954 1955 1956 1957
3007 CONVEX 193 GT_QK(3,2) 1649 1656 1657 1674 1682 1683 1677 1684 1685 1923 1932 1933 1948 1958 1959 1951 1960 1961 1929 1936 1937 1954 1962 1963 1957 1964 1965
3008 CONVEX 194 GT_QK(3,2) 1657 1664 1665 1683 1690 1691 1685 1692 1693 1933 1940 1941 1959 1966 1967 1961 1968 1969 1937 1944 1945 1963 1970 1971 1965 1972 1973
3009 CONVEX 195 GT_QK(3,2) 1675 1676 1677 1700 1701 1702 1703 1704 1705 1949 1950 1951 1974 1975 1976 1977 1978 1979 1955 1956 1957 1980 1981 1982 1983 1984 1985
3010 CONVEX 196 GT_QK(3,2) 1677 1684 1685 1702 1710 1711 1705 1712 1713 1951 1960 1961 1976 1986 1987 1979 1988 1989 1957 1964 1965 1982 1990 1991 1985 1992 1993
3011 CONVEX 197 GT_QK(3,2) 1685 1692 1693 1711 1718 1719 1713 1720 1721 1961 1968 1969 1987 1994 1995 1989 1996 1997 1965 1972 1973 1991 1998 1999 1993 2000 2001
3012 CONVEX 198 GT_QK(3,2) 1703 1704 1705 1728 1729 1730 1731 1732 1733 1977 1978 1979 2002 2003 2004 2005 2006 2007 1983 1984 1985 2008 2009 2010 2011 2012 2013
3013 CONVEX 199 GT_QK(3,2) 1705 1712 1713 1730 1738 1739 1733 1740 1741 1979 1988 1989 2004 2014 2015 2007 2016 2017 1985 1992 1993 2010 2018 2019 2013 2020 2021
3014 CONVEX 200 GT_QK(3,2) 1713 1720 1721 1739 1746 1747 1741 1748 1749 1989 1996 1997 2015 2022 2023 2017 2024 2025 1993 2000 2001 2019 2026 2027 2021 2028 2029
3015 CONVEX 201 GT_QK(3,2) 1731 1732 1733 1756 1757 1758 1759 1760 1761 2005 2006 2007 2030 2031 2032 2033 2034 2035 2011 2012 2013 2036 2037 2038 2039 2040 2041
3016 CONVEX 202 GT_QK(3,2) 1733 1740 1741 1758 1766 1767 1761 1768 1769 2007 2016 2017 2032 2042 2043 2035 2044 2045 2013 2020 2021 2038 2046 2047 2041 2048 2049
3017 CONVEX 203 GT_QK(3,2) 1741 1748 1749 1767 1774 1775 1769 1776 1777 2017 2024 2025 2043 2050 2051 2045 2052 2053 2021 2028 2029 2047 2054 2055 2049 2056 2057
3018 CONVEX 204 GT_QK(3,2) 1759 1760 1761 1784 1785 1786 1787 1788 1789 2033 2034 2035 2058 2059 2060 2061 2062 2063 2039 2040 2041 2064 2065 2066 2067 2068 2069
3019 CONVEX 205 GT_QK(3,2) 1761 1768 1769 1786 1794 1795 1789 1796 1797 2035 2044 2045 2060 2070 2071 2063 2072 2073 2041 2048 2049 2066 2074 2075 2069 2076 2077
3020 CONVEX 206 GT_QK(3,2) 1769 1776 1777 1795 1802 1803 1797 1804 1805 2045 2052 2053 2071 2078 2079 2073 2080 2081 2049 2056 2057 2075 2082 2083 2077 2084 2085
3021 CONVEX 207 GT_QK(3,2) 1787 1788 1789 1809 1810 1811 1549 1550 1551 2061 2062 2063 2086 2087 2088 1820 1821 1822 2067 2068 2069 2089 2090 2091 1829 1830 1831
3022 CONVEX 208 GT_QK(3,2) 1789 1796 1797 1811 1814 1815 1551 1564 1565 2063 2072 2073 2088 2092 2093 1822 1838 1839 2069 2076 2077 2091 2094 2095 1831 1844 1845
3023 CONVEX 209 GT_QK(3,2) 1797 1804 1805 1815 1818 1819 1565 1576 1577 2073 2080 2081 2093 2096 2097 1839 1850 1851 2077 2084 2085 2095 2098 2099 1845 1856 1857
3024 CONVEX 210 GT_QK(3,2) 1829 1830 1831 1832 1833 1834 1835 1836 1837 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117
3025 CONVEX 211 GT_QK(3,2) 1831 1844 1845 1834 1846 1847 1837 1848 1849 2102 2118 2119 2105 2120 2121 2108 2122 2123 2111 2124 2125 2114 2126 2127 2117 2128 2129
3026 CONVEX 212 GT_QK(3,2) 1845 1856 1857 1847 1858 1859 1849 1860 1861 2119 2130 2131 2121 2132 2133 2123 2134 2135 2125 2136 2137 2127 2138 2139 2129 2140 2141
3027 CONVEX 213 GT_QK(3,2) 1835 1836 1837 1868 1869 1870 1871 1872 1873 2106 2107 2108 2142 2143 2144 2145 2146 2147 2115 2116 2117 2148 2149 2150 2151 2152 2153
3028 CONVEX 214 GT_QK(3,2) 1837 1848 1849 1870 1878 1879 1873 1880 1881 2108 2122 2123 2144 2154 2155 2147 2156 2157 2117 2128 2129 2150 2158 2159 2153 2160 2161
3029 CONVEX 215 GT_QK(3,2) 1849 1860 1861 1879 1886 1887 1881 1888 1889 2123 2134 2135 2155 2162 2163 2157 2164 2165 2129 2140 2141 2159 2166 2167 2161 2168 2169
3030 CONVEX 216 GT_QK(3,2) 1871 1872 1873 1896 1897 1898 1899 1900 1901 2145 2146 2147 2170 2171 2172 2173 2174 2175 2151 2152 2153 2176 2177 2178 2179 2180 2181
3031 CONVEX 217 GT_QK(3,2) 1873 1880 1881 1898 1906 1907 1901 1908 1909 2147 2156 2157 2172 2182 2183 2175 2184 2185 2153 2160 2161 2178 2186 2187 2181 2188 2189
3032 CONVEX 218 GT_QK(3,2) 1881 1888 1889 1907 1914 1915 1909 1916 1917 2157 2164 2165 2183 2190 2191 2185 2192 2193 2161 2168 2169 2187 2194 2195 2189 2196 2197
3033 CONVEX 219 GT_QK(3,2) 1899 1900 1901 1924 1925 1926 1927 1928 1929 2173 2174 2175 2198 2199 2200 2201 2202 2203 2179 2180 2181 2204 2205 2206 2207 2208 2209
3034 CONVEX 220 GT_QK(3,2) 1901 1908 1909 1926 1934 1935 1929 1936 1937 2175 2184 2185 2200 2210 2211 2203 2212 2213 2181 2188 2189 2206 2214 2215 2209 2216 2217
3035 CONVEX 221 GT_QK(3,2) 1909 1916 1917 1935 1942 1943 1937 1944 1945 2185 2192 2193 2211 2218 2219 2213 2220 2221 2189 2196 2197 2215 2222 2223 2217 2224 2225
3036 CONVEX 222 GT_QK(3,2) 1927 1928 1929 1952 1953 1954 1955 1956 1957 2201 2202 2203 2226 2227 2228 2229 2230 2231 2207 2208 2209 2232 2233 2234 2235 2236 2237
3037 CONVEX 223 GT_QK(3,2) 1929 1936 1937 1954 1962 1963 1957 1964 1965 2203 2212 2213 2228 2238 2239 2231 2240 2241 2209 2216 2217 2234 2242 2243 2237 2244 2245
3038 CONVEX 224 GT_QK(3,2) 1937 1944 1945 1963 1970 1971 1965 1972 1973 2213 2220 2221 2239 2246 2247 2241 2248 2249 2217 2224 2225 2243 2250 2251 2245 2252 2253
3039 CONVEX 225 GT_QK(3,2) 1955 1956 1957 1980 1981 1982 1983 1984 1985 2229 2230 2231 2254 2255 2256 2257 2258 2259 2235 2236 2237 2260 2261 2262 2263 2264 2265
3040 CONVEX 226 GT_QK(3,2) 1957 1964 1965 1982 1990 1991 1985 1992 1993 2231 2240 2241 2256 2266 2267 2259 2268 2269 2237 2244 2245 2262 2270 2271 2265 2272 2273
3041 CONVEX 227 GT_QK(3,2) 1965 1972 1973 1991 1998 1999 1993 2000 2001 2241 2248 2249 2267 2274 2275 2269 2276 2277 2245 2252 2253 2271 2278 2279 2273 2280 2281
3042 CONVEX 228 GT_QK(3,2) 1983 1984 1985 2008 2009 2010 2011 2012 2013 2257 2258 2259 2282 2283 2284 2285 2286 2287 2263 2264 2265 2288 2289 2290 2291 2292 2293
3043 CONVEX 229 GT_QK(3,2) 1985 1992 1993 2010 2018 2019 2013 2020 2021 2259 2268 2269 2284 2294 2295 2287 2296 2297 2265 2272 2273 2290 2298 2299 2293 2300 2301
3044 CONVEX 230 GT_QK(3,2) 1993 2000 2001 2019 2026 2027 2021 2028 2029 2269 2276 2277 2295 2302 2303 2297 2304 2305 2273 2280 2281 2299 2306 2307 2301 2308 2309
3045 CONVEX 231 GT_QK(3,2) 2011 2012 2013 2036 2037 2038 2039 2040 2041 2285 2286 2287 2310 2311 2312 2313 2314 2315 2291 2292 2293 2316 2317 2318 2319 2320 2321
3046 CONVEX 232 GT_QK(3,2) 2013 2020 2021 2038 2046 2047 2041 2048 2049 2287 2296 2297 2312 2322 2323 2315 2324 2325 2293 2300 2301 2318 2326 2327 2321 2328 2329
3047 CONVEX 233 GT_QK(3,2) 2021 2028 2029 2047 2054 2055 2049 2056 2057 2297 2304 2305 2323 2330 2331 2325 2332 2333 2301 2308 2309 2327 2334 2335 2329 2336 2337
3048 CONVEX 234 GT_QK(3,2) 2039 2040 2041 2064 2065 2066 2067 2068 2069 2313 2314 2315 2338 2339 2340 2341 2342 2343 2319 2320 2321 2344 2345 2346 2347 2348 2349
3049 CONVEX 235 GT_QK(3,2) 2041 2048 2049 2066 2074 2075 2069 2076 2077 2315 2324 2325 2340 2350 2351 2343 2352 2353 2321 2328 2329 2346 2354 2355 2349 2356 2357
3050 CONVEX 236 GT_QK(3,2) 2049 2056 2057 2075 2082 2083 2077 2084 2085 2325 2332 2333 2351 2358 2359 2353 2360 2361 2329 2336 2337 2355 2362 2363 2357 2364 2365
3051 CONVEX 237 GT_QK(3,2) 2067 2068 2069 2089 2090 2091 1829 1830 1831 2341 2342 2343 2366 2367 2368 2100 2101 2102 2347 2348 2349 2369 2370 2371 2109 2110 2111
3052 CONVEX 238 GT_QK(3,2) 2069 2076 2077 2091 2094 2095 1831 1844 1845 2343 2352 2353 2368 2372 2373 2102 2118 2119 2349 2356 2357 2371 2374 2375 2111 2124 2125
3053 CONVEX 239 GT_QK(3,2) 2077 2084 2085 2095 2098 2099 1845 1856 1857 2353 2360 2361 2373 2376 2377 2119 2130 2131 2357 2364 2365 2375 2378 2379 2125 2136 2137
3054 CONVEX 240 GT_QK(3,2) 2109 2110 2111 2112 2113 2114 2115 2116 2117 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397
3055 CONVEX 241 GT_QK(3,2) 2111 2124 2125 2114 2126 2127 2117 2128 2129 2382 2398 2399 2385 2400 2401 2388 2402 2403 2391 2404 2405 2394 2406 2407 2397 2408 2409
3056 CONVEX 242 GT_QK(3,2) 2125 2136 2137 2127 2138 2139 2129 2140 2141 2399 2410 2411 2401 2412 2413 2403 2414 2415 2405 2416 2417 2407 2418 2419 2409 2420 2421
3057 CONVEX 243 GT_QK(3,2) 2115 2116 2117 2148 2149 2150 2151 2152 2153 2386 2387 2388 2422 2423 2424 2425 2426 2427 2395 2396 2397 2428 2429 2430 2431 2432 2433
3058 CONVEX 244 GT_QK(3,2) 2117 2128 2129 2150 2158 2159 2153 2160 2161 2388 2402 2403 2424 2434 2435 2427 2436 2437 2397 2408 2409 2430 2438 2439 2433 2440 2441
3059 CONVEX 245 GT_QK(3,2) 2129 2140 2141 2159 2166 2167 2161 2168 2169 2403 2414 2415 2435 2442 2443 2437 2444 2445 2409 2420 2421 2439 2446 2447 2441 2448 2449
3060 CONVEX 246 GT_QK(3,2) 2151 2152 2153 2176 2177 2178 2179 2180 2181 2425 2426 2427 2450 2451 2452 2453 2454 2455 2431 2432 2433 2456 2457 2458 2459 2460 2461
3061 CONVEX 247 GT_QK(3,2) 2153 2160 2161 2178 2186 2187 2181 2188 2189 2427 2436 2437 2452 2462 2463 2455 2464 2465 2433 2440 2441 2458 2466 2467 2461 2468 2469
3062 CONVEX 248 GT_QK(3,2) 2161 2168 2169 2187 2194 2195 2189 2196 2197 2437 2444 2445 2463 2470 2471 2465 2472 2473 2441 2448 2449 2467 2474 2475 2469 2476 2477
3063 CONVEX 249 GT_QK(3,2) 2179 2180 2181 2204 2205 2206 2207 2208 2209 2453 2454 2455 2478 2479 2480 2481 2482 2483 2459 2460 2461 2484 2485 2486 2487 2488 2489
3064 CONVEX 250 GT_QK(3,2) 2181 2188 2189 2206 2214 2215 2209 2216 2217 2455 2464 2465 2480 2490 2491 2483 2492 2493 2461 2468 2469 2486 2494 2495 2489 2496 2497
3065 CONVEX 251 GT_QK(3,2) 2189 2196 2197 2215 2222 2223 2217 2224 2225 2465 2472 2473 2491 2498 2499 2493 2500 2501 2469 2476 2477 2495 2502 2503 2497 2504 2505
3066 CONVEX 252 GT_QK(3,2) 2207 2208 2209 2232 2233 2234 2235 2236 2237 2481 2482 2483 2506 2507 2508 2509 2510 2511 2487 2488 2489 2512 2513 2514 2515 2516 2517
3067 CONVEX 253 GT_QK(3,2) 2209 2216 2217 2234 2242 2243 2237 2244 2245 2483 2492 2493 2508 2518 2519 2511 2520 2521 2489 2496 2497 2514 2522 2523 2517 2524 2525
3068 CONVEX 254 GT_QK(3,2) 2217 2224 2225 2243 2250 2251 2245 2252 2253 2493 2500 2501 2519 2526 2527 2521 2528 2529 2497 2504 2505 2523 2530 2531 2525 2532 2533
3069 CONVEX 255 GT_QK(3,2) 2235 2236 2237 2260 2261 2262 2263 2264 2265 2509 2510 2511 2534 2535 2536 2537 2538 2539 2515 2516 2517 2540 2541 2542 2543 2544 2545
3070 CONVEX 256 GT_QK(3,2) 2237 2244 2245 2262 2270 2271 2265 2272 2273 2511 2520 2521 2536 2546 2547 2539 2548 2549 2517 2524 2525 2542 2550 2551 2545 2552 2553
3071 CONVEX 257 GT_QK(3,2) 2245 2252 2253 2271 2278 2279 2273 2280 2281 2521 2528 2529 2547 2554 2555 2549 2556 2557 2525 2532 2533 2551 2558 2559 2553 2560 2561
3072 CONVEX 258 GT_QK(3,2) 2263 2264 2265 2288 2289 2290 2291 2292 2293 2537 2538 2539 2562 2563 2564 2565 2566 2567 2543 2544 2545 2568 2569 2570 2571 2572 2573
3073 CONVEX 259 GT_QK(3,2) 2265 2272 2273 2290 2298 2299 2293 2300 2301 2539 2548 2549 2564 2574 2575 2567 2576 2577 2545 2552 2553 2570 2578 2579 2573 2580 2581
3074 CONVEX 260 GT_QK(3,2) 2273 2280 2281 2299 2306 2307 2301 2308 2309 2549 2556 2557 2575 2582 2583 2577 2584 2585 2553 2560 2561 2579 2586 2587 2581 2588 2589
3075 CONVEX 261 GT_QK(3,2) 2291 2292 2293 2316 2317 2318 2319 2320 2321 2565 2566 2567 2590 2591 2592 2593 2594 2595 2571 2572 2573 2596 2597 2598 2599 2600 2601
3076 CONVEX 262 GT_QK(3,2) 2293 2300 2301 2318 2326 2327 2321 2328 2329 2567 2576 2577 2592 2602 2603 2595 2604 2605 2573 2580 2581 2598 2606 2607 2601 2608 2609
3077 CONVEX 263 GT_QK(3,2) 2301 2308 2309 2327 2334 2335 2329 2336 2337 2577 2584 2585 2603 2610 2611 2605 2612 2613 2581 2588 2589 2607 2614 2615 2609 2616 2617
3078 CONVEX 264 GT_QK(3,2) 2319 2320 2321 2344 2345 2346 2347 2348 2349 2593 2594 2595 2618 2619 2620 2621 2622 2623 2599 2600 2601 2624 2625 2626 2627 2628 2629
3079 CONVEX 265 GT_QK(3,2) 2321 2328 2329 2346 2354 2355 2349 2356 2357 2595 2604 2605 2620 2630 2631 2623 2632 2633 2601 2608 2609 2626 2634 2635 2629 2636 2637
3080 CONVEX 266 GT_QK(3,2) 2329 2336 2337 2355 2362 2363 2357 2364 2365 2605 2612 2613 2631 2638 2639 2633 2640 2641 2609 2616 2617 2635 2642 2643 2637 2644 2645
3081 CONVEX 267 GT_QK(3,2) 2347 2348 2349 2369 2370 2371 2109 2110 2111 2621 2622 2623 2646 2647 2648 2380 2381 2382 2627 2628 2629 2649 2650 2651 2389 2390 2391
3082 CONVEX 268 GT_QK(3,2) 2349 2356 2357 2371 2374 2375 2111 2124 2125 2623 2632 2633 2648 2652 2653 2382 2398 2399 2629 2636 2637 2651 2654 2655 2391 2404 2405
3083 CONVEX 269 GT_QK(3,2) 2357 2364 2365 2375 2378 2379 2125 2136 2137 2633 2640 2641 2653 2656 2657 2399 2410 2411 2637 2644 2645 2655 2658 2659 2405 2416 2417
3084 CONVEX 270 GT_QK(3,2) 2389 2390 2391 2392 2393 2394 2395 2396 2397 2660 2661 2662 2663 2664 2665 2666 2667 2668 0 1 2 3 4 5 6 7 8
3085 CONVEX 271 GT_QK(3,2) 2391 2404 2405 2394 2406 2407 2397 2408 2409 2662 2669 2670 2665 2671 2672 2668 2673 2674 2 27 28 5 29 30 8 31 32
3086 CONVEX 272 GT_QK(3,2) 2405 2416 2417 2407 2418 2419 2409 2420 2421 2670 2675 2676 2672 2677 2678 2674 2679 2680 28 45 46 30 47 48 32 49 50
3087 CONVEX 273 GT_QK(3,2) 2395 2396 2397 2428 2429 2430 2431 2432 2433 2666 2667 2668 2681 2682 2683 2684 2685 2686 6 7 8 63 64 65 66 67 68
3088 CONVEX 274 GT_QK(3,2) 2397 2408 2409 2430 2438 2439 2433 2440 2441 2668 2673 2674 2683 2687 2688 2686 2689 2690 8 31 32 65 81 82 68 83 84
3089 CONVEX 275 GT_QK(3,2) 2409 2420 2421 2439 2446 2447 2441 2448 2449 2674 2679 2680 2688 2691 2692 2690 2693 2694 32 49 50 82 93 94 84 95 96
3090 CONVEX 276 GT_QK(3,2) 2431 2432 2433 2456 2457 2458 2459 2460 2461 2684 2685 2686 2695 2696 2697 2698 2699 2700 66 67 68 105 106 107 108 109 110
3091 CONVEX 277 GT_QK(3,2) 2433 2440 2441 2458 2466 2467 2461 2468 2469 2686 2689 2690 2697 2701 2702 2700 2703 2704 68 83 84 107 123 124 110 125 126
3092 CONVEX 278 GT_QK(3,2) 2441 2448 2449 2467 2474 2475 2469 2476 2477 2690 2693 2694 2702 2705 2706 2704 2707 2708 84 95 96 124 135 136 126 137 138
3093 CONVEX 279 GT_QK(3,2) 2459 2460 2461 2484 2485 2486 2487 2488 2489 2698 2699 2700 2709 2710 2711 2712 2713 2714 108 109 110 147 148 149 150 151 152
3094 CONVEX 280 GT_QK(3,2) 2461 2468 2469 2486 2494 2495 2489 2496 2497 2700 2703 2704 2711 2715 2716 2714 2717 2718 110 125 126 149 165 166 152 167 168
3095 CONVEX 281 GT_QK(3,2) 2469 2476 2477 2495 2502 2503 2497 2504 2505 2704 2707 2708 2716 2719 2720 2718 2721 2722 126 137 138 166 177 178 168 179 180
3096 CONVEX 282 GT_QK(3,2) 2487 2488 2489 2512 2513 2514 2515 2516 2517 2712 2713 2714 2723 2724 2725 2726 2727 2728 150 151 152 189 190 191 192 193 194
3097 CONVEX 283 GT_QK(3,2) 2489 2496 2497 2514 2522 2523 2517 2524 2525 2714 2717 2718 2725 2729 2730 2728 2731 2732 152 167 168 191 207 208 194 209 210
3098 CONVEX 284 GT_QK(3,2) 2497 2504 2505 2523 2530 2531 2525 2532 2533 2718 2721 2722 2730 2733 2734 2732 2735 2736 168 179 180 208 219 220 210 221 222
3099 CONVEX 285 GT_QK(3,2) 2515 2516 2517 2540 2541 2542 2543 2544 2545 2726 2727 2728 2737 2738 2739 2740 2741 2742 192 193 194 231 232 233 234 235 236
3100 CONVEX 286 GT_QK(3,2) 2517 2524 2525 2542 2550 2551 2545 2552 2553 2728 2731 2732 2739 2743 2744 2742 2745 2746 194 209 210 233 249 250 236 251 252
3101 CONVEX 287 GT_QK(3,2) 2525 2532 2533 2551 2558 2559 2553 2560 2561 2732 2735 2736 2744 2747 2748 2746 2749 2750 210 221 222 250 261 262 252 263 264
3102 CONVEX 288 GT_QK(3,2) 2543 2544 2545 2568 2569 2570 2571 2572 2573 2740 2741 2742 2751 2752 2753 2754 2755 2756 234 235 236 273 274 275 276 277 278
3103 CONVEX 289 GT_QK(3,2) 2545 2552 2553 2570 2578 2579 2573 2580 2581 2742 2745 2746 2753 2757 2758 2756 2759 2760 236 251 252 275 291 292 278 293 294
3104 CONVEX 290 GT_QK(3,2) 2553 2560 2561 2579 2586 2587 2581 2588 2589 2746 2749 2750 2758 2761 2762 2760 2763 2764 252 263 264 292 303 304 294 305 306
3105 CONVEX 291 GT_QK(3,2) 2571 2572 2573 2596 2597 2598 2599 2600 2601 2754 2755 2756 2765 2766 2767 2768 2769 2770 276 277 278 315 316 317 318 319 320
3106 CONVEX 292 GT_QK(3,2) 2573 2580 2581 2598 2606 2607 2601 2608 2609 2756 2759 2760 2767 2771 2772 2770 2773 2774 278 293 294 317 333 334 320 335 336
3107 CONVEX 293 GT_QK(3,2) 2581 2588 2589 2607 2614 2615 2609 2616 2617 2760 2763 2764 2772 2775 2776 2774 2777 2778 294 305 306 334 345 346 336 347 348
3108 CONVEX 294 GT_QK(3,2) 2599 2600 2601 2624 2625 2626 2627 2628 2629 2768 2769 2770 2779 2780 2781 2782 2783 2784 318 319 320 357 358 359 360 361 362
3109 CONVEX 295 GT_QK(3,2) 2601 2608 2609 2626 2634 2635 2629 2636 2637 2770 2773 2774 2781 2785 2786 2784 2787 2788 320 335 336 359 375 376 362 377 378
3110 CONVEX 296 GT_QK(3,2) 2609 2616 2617 2635 2642 2643 2637 2644 2645 2774 2777 2778 2786 2789 2790 2788 2791 2792 336 347 348 376 387 388 378 389 390
3111 CONVEX 297 GT_QK(3,2) 2627 2628 2629 2649 2650 2651 2389 2390 2391 2782 2783 2784 2793 2794 2795 2660 2661 2662 360 361 362 399 400 401 0 1 2
3112 CONVEX 298 GT_QK(3,2) 2629 2636 2637 2651 2654 2655 2391 2404 2405 2784 2787 2788 2795 2796 2797 2662 2669 2670 362 377 378 401 408 409 2 27 28
3113 CONVEX 299 GT_QK(3,2) 2637 2644 2645 2655 2658 2659 2405 2416 2417 2788 2791 2792 2797 2798 2799 2670 2675 2676 378 389 390 409 414 415 28 45 46
3114
3115 END MESH STRUCTURE DESCRIPTION
+0
-3366
interface/src/scilab/demos/data/donut_with_quadratic_tetra_1100_elements.msh less more
0 MESH dimension 3 ElemType Tetrahedra Nnode 10
1 Coordinates
2 1 0 -15.8671 32.1752
3 2 0.846023 -15.6028 32.3966
4 3 -1.21281 -15.5423 32.3485
5 4 0 -15.0377 33.1859
6 5 0.853473 -16.3936 31.3279
7 6 0 -16.6317 31.1079
8 7 -1.22348 -16.3289 31.2832
9 8 0.345446 -14.3458 31.5743
10 9 1.71322 -15.2056 32.521
11 10 0.846023 -14.7439 33.4067
12 11 1.72067 -16.0186 31.4578
13 12 0.345446 -15.0725 30.4867
14 13 -1.21281 -14.6867 33.3547
15 14 -0.880216 -14.6471 30.573
16 15 1.20951 -14.7891 30.6607
17 16 -0.870076 -13.8884 31.6429
18 17 1.20206 -14.0151 31.7472
19 18 0.345446 -13.4834 32.5577
20 19 0.853473 -17.1098 30.2139
21 20 -2.43104 -14.9523 32.3124
22 21 -2.44119 -15.7493 31.2652
23 22 0 -17.3205 30
24 23 0 -14.1421 34.1421
25 24 -1.22348 -17.0423 30.1736
26 25 1.72812 -16.7537 30.3481
27 26 1.71322 -14.3231 33.5216
28 27 2.57884 -15.4735 31.5078
29 28 2.73603 -14.6309 32.4097
30 29 2.02874 -14.1885 30.6754
31 30 -0.870076 -12.9879 32.5968
32 31 1.20206 -13.0993 32.7172
33 32 0.846023 -13.8182 34.3589
34 33 2.58586 -16.2259 30.4123
35 34 -2.43104 -14.0845 33.2964
36 35 -2.45132 -16.4695 30.1726
37 36 -1.21281 -13.7647 34.3033
38 37 0.690891 -12.8246 30.9734
39 38 2.16281 -13.3496 31.5548
40 39 0.938503 -16.1633 28.866
41 40 0.419888 -14.1988 29.1786
42 41 0.0744418 -16.4467 28.6919
43 42 -1.79372 -12.9233 31.3975
44 43 -1.15122 -16.0212 28.7782
45 44 2.73603 -13.7372 33.3923
46 45 -1.96731 -13.445 30.1698
47 46 1.75774 -15.5627 28.8807
48 47 0.868637 -17.7514 29.0472
49 48 3.50313 -14.7457 31.2837
50 49 1.71322 -13.3739 34.4611
51 50 1.74328 -17.4144 29.1808
52 51 3.36659 -15.5524 30.3775
53 52 -1.2452 -17.6788 29.0102
54 53 -3.46984 -14.0742 32.1605
55 54 0 -13.1859 35.0377
56 55 0 -17.9406 28.8394
57 56 0.0678451 -12.2494 34.0858
58 57 -3.74395 -14.6984 30.9253
59 58 3.63474 -13.8746 32.1362
60 59 -1.82813 -12.1471 32.0757
61 60 -2.43104 -13.1511 34.2202
62 61 -2.47192 -17.1136 29.0222
63 62 2.82121 -16.8176 29.1133
64 63 1.88521 -12.1156 33.0828
65 64 0.413291 -11.5906 32.5014
66 65 0.846023 -12.8318 35.2468
67 66 -3.75178 -15.4111 29.8781
68 67 -3.46984 -13.2033 33.1009
69 68 -1.21281 -12.7821 35.1877
70 69 2.77052 -13.3644 29.658
71 70 -2.23832 -14.8192 28.3751
72 71 0.924455 -11.8653 34.2453
73 72 3.40896 -12.9787 33.4039
74 73 0.679702 -12.2728 29.2954
75 74 2.46816 -12.7196 34.5798
76 75 0.953653 -16.7808 27.6835
77 76 -1.14768 -11.7539 34.1248
78 77 3.57037 -16.1184 29.0808
79 78 -1.17179 -16.6226 27.6133
80 79 0.0744418 -17.0253 27.5187
81 80 0.148884 -15.573 27.3838
82 81 -3.60968 -16.2022 28.8461
83 82 1.95577 -16.0707 27.5685
84 83 1.75842 -17.9887 27.9833
85 84 1.72067 -12.3601 35.3331
86 85 0.868637 -18.3125 27.8496
87 86 1.70749 -11.4622 30.2966
88 87 2.49952 -14.7385 27.8632
89 88 -1.2452 -18.2376 27.8175
90 89 -1.9785 -12.8932 28.4919
91 90 4.39639 -14.0295 30.2612
92 91 -4.27834 -13.0221 31.8216
93 92 3.17942 -11.9872 30.878
94 93 0.408699 -13.647 27.5006
95 94 -3.51929 -12.3929 33.8052
96 95 0 -18.4776 27.6537
97 96 0 -12.1752 35.8671
98 97 4.30551 -14.8152 29.3935
99 98 -2.15345 -15.5815 27.4051
100 99 -2.08118 -11.5033 30.1423
101 100 -4.46632 -13.5989 30.6091
102 101 -2.44119 -12.1524 35.0754
103 102 -2.49247 -17.6723 27.8429
104 103 2.83505 -17.3984 27.9255
105 104 0.0678451 -11.2659 34.9483
106 105 1.65267 -11.1646 34.3055
107 106 3.16965 -11.9726 34.5815
108 107 -2.10573 -10.9131 33.6037
109 108 -4.31318 -12.2652 32.5234
110 109 0.853473 -11.7878 36.0661
111 110 -4.62551 -14.0654 29.3663
112 111 4.24086 -12.1064 32.8417
113 112 -1.22348 -11.7413 36.0027
114 113 0.13569 -10.3566 34.0294
115 114 -3.62631 -16.7569 27.7023
116 115 1.42989 -10.2282 31.8246
117 116 2.47527 -11.6833 35.4176
118 117 3.76265 -16.5685 27.7532
119 118 2.75933 -12.8126 27.98
120 119 0.931906 -10.825 35.0806
121 120 -1.15782 -10.7292 34.9438
122 121 -4.54473 -14.8646 28.4218
123 122 0.977014 -17.2296 26.4274
124 123 -1.20339 -17.0542 26.3766
125 124 4.43993 -15.2829 28.1056
126 125 4.7703 -12.3138 30.9799
127 126 -2.35879 -10.2693 31.6704
128 127 0.0744418 -17.4457 26.2801
129 128 1.93834 -16.5474 26.3872
130 129 -3.52769 -11.4054 34.621
131 130 0.668514 -11.7211 27.6175
132 131 2.40405 -10.2967 33.6626
133 132 -4.34716 -11.4696 33.178
134 133 0.339101 -9.63468 31.6253
135 134 3.78713 -12.002 28.9812
136 135 1.72812 -11.2933 36.1317
137 136 1.78179 -18.4835 26.7333
138 137 1.69631 -10.9105 28.6186
139 138 0.892063 -18.7928 26.605
140 139 -1.27873 -18.7117 26.5765
141 140 -2.2639 -15.8002 26.1573
142 141 1.69648 -10.2718 34.9112
143 142 2.81351 -17.9134 26.7227
144 143 4.85016 -13.9041 28.3426
145 144 4.06555 -11.1528 34.0144
146 145 -2.45132 -11.1017 35.8581
147 146 -2.09237 -10.9515 28.4644
148 147 3.21366 -11.0954 35.2144
149 148 -4.45579 -15.59 27.4264
150 149 0 -11.1079 36.6317
151 150 -2.52412 -18.1494 26.6116
152 151 0 -18.9418 26.4193
153 152 0.0678451 -10.1783 35.675
154 153 -4.95285 -11.5947 30.5634
155 154 -2.24962 -9.74021 34.1129
156 155 -4.98876 -12.0946 29.428
157 156 3.69825 -10.1683 31.4578
158 157 3.74527 -17.0896 26.5798
159 158 2.52404 -10.7808 36.0277
160 159 -2.21265 -13.8529 25.9993
161 160 2.7241 -10.0999 29.6198
162 161 0.13478 -16.2122 25.2003
163 162 0.853473 -10.6914 36.8156
164 163 2.65115 -10.9939 27.8945
165 164 -3.81503 -17.0695 26.406
166 165 -1.22348 -10.6492 36.7492
167 166 -4.96096 -10.893 31.1999
168 167 2.536 -15.501 25.5568
169 168 0.327912 -9.08294 29.9473
170 169 0.947056 -9.67964 35.7651
171 170 0.15661 -9.05237 34.7447
172 171 -4.50169 -10.3103 33.7373
173 172 4.0984 -10.2839 34.6071
174 173 4.98981 -12.0852 28.3352
175 174 4.6724 -10.2368 33.2958
176 175 -1.1369 -9.42491 35.6591
177 176 -3.76035 -10.2003 35.1881
178 177 3.25727 -10.187 35.793
179 178 -1.95283 -11.927 26.1161
180 179 3.67894 -10.1833 28.8956
181 180 4.99978 -10.4331 30.7117
182 181 0.0615007 -8.40071 33.1533
183 182 -4.57363 -15.8611 26.1741
184 183 1.80514 -18.8863 25.471
185 184 1.74328 -10.1666 36.8579
186 185 0.892063 -19.1891 25.3456
187 186 2.8349 -18.3202 25.4674
188 187 -1.27873 -19.1062 25.3225
189 188 -4.99966 -13.2681 26.8714
190 189 -2.47192 -9.99104 36.5667
191 190 -2.55566 -18.5355 25.3694
192 191 2.18876 -13.8078 25.0196
193 192 -2.26671 -8.46022 32.7474
194 193 1.93174 -9.00392 35.3443
195 194 0 -19.3185 25.1764
196 195 0 -10 37.3205
197 196 1.3557 -8.27231 30.9485
198 197 -4.98951 -9.83923 31.7477
199 198 3.68714 -11.7181 26.5839
200 199 4.8898 -14.8571 26.056
201 200 2.32986 -8.34077 32.7865
202 201 4.52189 -16.1584 25.6981
203 202 3.72779 -17.5218 25.3905
204 203 1.38087 -9.92079 27.1047
205 204 -4.85326 -10.1819 29.3113
206 205 -2.43297 -8.31335 30.7943
207 206 0.334257 -9.39609 27.3443
208 207 1.59631 -10.6266 26.2214
209 208 -0.598641 -14.2181 24.2688
210 209 -3.83893 -17.4433 25.2057
211 210 2.53841 -9.64449 36.7264
212 211 0.0887647 -8.87405 36.3903
213 212 0.334257 -10.1907 26.3087
214 213 1.55485 -8.90797 28.1673
215 214 -2.2287 -8.43593 34.8282
216 215 -4.99851 -13.8976 25.9608
217 216 0.96291 -17.8689 24.2439
218 217 -1.21749 -17.6935 24.1931
219 218 4.63379 -10.2668 28.1714
220 219 0.868637 -9.54747 37.4874
221 220 -4.73278 -11.4045 27.0113
222 221 1.92423 -17.1866 24.2037
223 222 -1.2452 -9.50841 37.4159
224 223 0.0603379 -18.085 24.0966
225 224 -4.63494 -9.12377 34.1964
226 225 2.44858 -11.8819 25.1365
227 226 -2.278 -16.4395 23.9738
228 227 4.27642 -9.05231 35.0828
229 228 3.5568 -8.16579 31.0064
230 229 -3.77617 -9.11277 35.8435
231 230 -0.338826 -12.2922 24.3856
232 231 -4.67668 -16.0275 24.9308
233 232 0.967975 -8.37536 36.4804
234 233 -1.15747 -8.2962 36.3265
235 234 1.49243 -10.9829 25.1076
236 235 2.58264 -8.09734 29.1684
237 236 0.177529 -7.7481 35.46
238 237 0.334257 -10.6902 25.1028
239 238 3.5001 -8.93235 36.2813
240 239 4.94766 -13.2418 25.3412
241 240 1.75842 -9.00263 37.5008
242 241 1.83754 -19.2044 24.1616
243 242 4.51092 -16.5418 24.5522
244 243 0.0824204 -7.09644 33.8686
245 244 3.03974 -18.5025 24.1851
246 245 0.924628 -19.4987 24.0447
247 246 -4.77089 -8.43877 30.5423
248 247 -2.49247 -8.8443 37.193
249 248 -4.99854 -14.077 24.82
250 249 -2.24579 -7.15595 33.4627
251 250 0 -8.83943 37.9406
252 251 0 -19.6182 23.8891
253 252 3.8924 -17.6638 24.122
254 253 4.63379 -8.21875 30.229
255 254 2.52189 -16.1403 23.3733
256 255 3.78729 -9.8574 26.3683
257 256 4.45019 -11.496 25.4455
258 257 -1.33897 -19.4454 23.8218
259 258 3.62031 -9.00479 27.2351
260 259 -2.61205 -18.869 23.8783
261 260 0.120676 -16.8515 23.0168
262 261 -2.13971 -7.52549 35.5529
263 262 1.95266 -7.69964 36.0596
264 263 1.85755 -7.04798 34.4682
265 264 -4.55048 -8.23628 34.9538
266 265 -3.63292 -18.0258 23.8645
267 266 4.99978 -7.94983 32.6645
268 267 3.7554 -8.05661 28.4827
269 268 -0.0126886 -6.44478 32.2772
270 269 -0.00634432 -6.75792 29.6741
271 270 2.81351 -8.3789 37.2011
272 271 0.0887647 -7.70088 36.9688
273 272 -3.024 -8.8559 26.5553
274 273 -4.99983 -7.81401 32.8526
275 274 4.69646 -7.97537 34.6903
276 275 0.99529 -18.1397 22.9379
277 276 2.08361 -17.2786 22.9438
278 277 0.868637 -8.36059 38.0849
279 278 -4.57418 -12.1329 24.6148
280 279 -3.62721 -8.12484 36.5551
281 280 -3.024 -7.97147 27.6062
282 281 -1.2452 -8.32639 38.011
283 282 -2.34089 -6.50429 31.8713
284 283 -4.56278 -16.6426 23.6808
285 284 0.0603379 -18.3402 22.8137
286 285 2.17466 -14.4471 22.8361
287 286 -3.01142 -14.4454 23.0423
288 287 -2.1552 -17 22.7111
289 288 2.09324 -8.12048 26.592
290 289 -1.2737 -17.9648 22.7088
291 290 2.3106 -8.8724 25.7375
292 291 4.92311 -15.4291 23.7297
293 292 1.21425 -6.2698 30.4971
294 293 1.03789 -8.3165 25.7468
295 294 0 -7.93696 26.0831
296 295 4.61169 -16.6016 23.3284
297 296 1.03789 -7.51837 26.7575
298 297 -1.18906 -7.08575 36.8286
299 298 0.991336 -7.14654 37.0008
300 299 2.31055 -6.12208 32.0239
301 300 -4.93907 -15.3911 23.4733
302 301 2.2684 -7.17752 27.7242
303 302 2.52411 -9.53214 24.8253
304 303 3.72779 -7.65119 36.6592
305 304 -2.65229 -9.73899 24.5783
306 305 1.8699 -19.4279 22.859
307 306 -0.612745 -14.8574 22.0853
308 307 1.78179 -7.78383 38.0663
309 308 0 -8.66025 25
310 309 0 -7.07107 27.0711
311 310 1.26196 -8.94155 24.8283
312 311 3.06837 -18.7258 22.8919
313 312 0.924628 -19.7235 22.7463
314 313 -2.52412 -7.64311 37.7396
315 314 -4.45695 -7.30289 35.6457
316 315 -4.99457 -6.99239 33.5333
317 316 -4.87834 -13.4681 23.4531
318 317 -0.00634432 -5.72239 30.4687
319 318 2.35344 -6.01262 33.9826
320 319 4.04653 -17.7057 22.8708
321 320 -2.96017 -12.4981 22.8843
322 321 0 -7.65367 38.4776
323 322 0 -19.8289 22.6105
324 323 -2.76003 -6.51999 28.6485
325 324 0.582964 -6.20745 35.9113
326 325 1.21815 -6.49847 27.7978
327 326 3.4746 -10.7606 23.7782
328 327 -4.6691 -6.5638 31.4654
329 328 -1.33897 -19.655 22.5315
330 329 4.91991 -13.7451 23.1823
331 330 -2.27834 -6.24555 35.6884
332 331 0.487855 -5.55579 34.3199
333 332 2.42074 -9.95345 23.7177
334 333 -2.66807 -19.0782 22.4007
335 334 2.44119 -6.09483 28.7171
336 335 0 -6.08315 27.937
337 336 0 -9.24532 23.811
338 337 -3.67851 -18.2262 22.4225
339 338 2.8349 -7.15755 37.7283
340 339 -2.37345 -5.59389 34.097
341 340 1.26196 -9.48316 23.6515
342 341 0.0887647 -6.46224 37.3893
343 342 -4.34856 -12.1539 23.0559
344 343 -3.65272 -6.94794 37.0533
345 344 -4.43108 -17.1485 22.4055
346 345 -2.65229 -10.2334 23.3296
347 346 -2.88863 -15.0059 21.7796
348 347 3.7554 -5.92176 30.0895
349 348 1.25571 -5.12497 31.1302
350 349 0.892063 -7.13681 38.5974
351 350 2.35809 -6.159 36.5109
352 351 -1.27873 -7.10598 38.5171
353 352 1.44124 -12.453 21.9046
354 353 -3.6535 -11.1933 22.9928
355 354 -2.10473 -17.1757 21.5084
356 355 -1.18966 -18.0908 21.5084
357 356 2.2254 -14.6757 21.5084
358 357 0.0603379 -18.4257 21.5084
359 358 2.56034 -15.9257 21.5084
360 359 1.31034 -18.0908 21.5084
361 360 2.2254 -17.1757 21.5084
362 361 4.31276 -6.6128 36.2347
363 362 -4.88708 -15.8949 22.2735
364 363 1.21815 -5.46221 28.5557
365 364 4.63379 -5.79938 31.7706
366 365 4.22864 -12.0426 22.6555
367 366 0.485094 -11.554 21.8757
368 367 -2.76003 -5.39747 29.3901
369 368 -3.17139 -13.7621 21.6464
370 369 0.45261 -14.8733 20.9791
371 370 3.38653 -11.0177 22.6051
372 371 3.5631 -6.51659 37.3226
373 372 -4.99662 -14.6609 22.1391
374 373 -2.22213 -4.78366 32.2857
375 374 -0.673083 -11.2613 21.871
376 375 -4.99926 -5.8145 33.7337
377 376 2.31635 -10.2447 22.5977
378 377 4.99881 -5.75897 33.7323
379 378 -0.973708 -15.3769 20.8352
380 379 -0.00634432 -4.51648 30.9682
381 380 0 -9.65926 22.5882
382 381 0 -5 28.6603
383 382 1.15285 -9.80738 22.555
384 383 1.80514 -6.54499 38.5415
385 384 -4.6083 -6.0141 35.8365
386 385 -2.55566 -6.4234 38.1971
387 386 2.48274 -4.97815 29.4262
388 387 -1.34617 -12.8633 21.1537
389 388 4.98135 -15.3253 21.8066
390 389 -0.783629 -5.54511 37.2799
391 390 2.18848 -19.4443 21.413
392 391 1.24918 -19.7979 21.3144
393 392 0 -6.41932 38.9418
394 393 1.39677 -5.6059 37.4521
395 394 3.27158 -18.7292 21.395
396 395 0 -19.9582 21.292
397 396 -1.24918 -19.7985 21.3045
398 397 -4.75021 -13.3113 21.8513
399 398 -2.71061 -12.431 21.3687
400 399 4.19441 -17.6655 21.4089
401 400 4.93524 -14.0943 21.7117
402 401 -1.83126 -11.6512 21.4025
403 402 -0.115907 -4.16232 32.669
404 403 2.85398 -5.12364 36.0253
405 404 -1.15285 -9.91649 22.0919
406 405 -2.58444 -19.2435 21.1902
407 406 4.7739 -16.4314 21.3476
408 407 4.71956 -5.58047 35.688
409 408 -3.60528 -18.428 21.1594
410 409 3.78729 -4.70455 30.7513
411 410 -4.38164 -17.3675 21.1946
412 411 2.63552 -5.97116 38.2994
413 412 -4.55858 -4.83831 32.0078
414 413 1.26196 -4.33421 29.1912
415 414 -4.07506 -11.9987 21.5836
416 415 -1.8729 -4.70491 36.1398
417 416 0.988399 -4.66681 36.3627
418 417 -3.28285 -11.1128 21.6091
419 418 -2.31635 -10.4391 21.6512
420 419 -4.86528 -16.1133 21.1296
421 420 -3.89547 -5.61797 37.2424
422 421 -3.24959 -15.5254 20.5295
423 422 1.34346 -3.86225 31.4962
424 423 4.18773 -5.50343 36.8562
425 424 2.18926 -5.01043 37.127
426 425 2.50659 -12.4688 20.7984
427 426 0.892063 -5.88069 39.0319
428 427 -1.27873 -5.85529 38.9497
429 428 -3.17308 -13.9317 20.5769
430 429 4.28027 -12.3456 21.3161
431 430 0.120676 -16.8515 20
432 431 -4.99916 -14.8705 21.0629
433 432 2.20733 -3.83962 32.4157
434 433 2.4891 -3.92975 33.7567
435 434 0.576917 -11.7666 20.5769
436 435 3.46439 -11.3266 21.2439
437 436 0.494199 -4.9216 37.8406
438 437 -2.83815 -12.6817 20.5769
439 438 2.40857 -10.5405 21.2839
440 439 -4.81555 -13.6183 20.9929
441 440 -2.50952 -3.94493 29.9197
442 441 0 -3.81104 29.2453
443 442 1.15285 -10.0552 21.2672
444 443 0 -9.91821 21.2763
445 444 -0.673083 -11.4317 20.5769
446 445 3.39013 -5.35405 37.8913
447 446 -1.92308 -11.7666 20.5769
448 447 -0.280811 -12.8792 20.0476
449 448 2.52411 -3.80517 29.9833
450 449 -1.70713 -13.3829 19.9036
451 450 -4.73421 -4.74301 35.9169
452 451 -4.20761 -12.2732 20.7937
453 452 1.83754 -5.25657 38.934
454 453 -2.59929 -5.15522 38.5689
455 454 -2.40857 -10.5867 20.8187
456 455 -3.36267 -11.2752 20.7433
457 456 -1.15285 -10.1032 20.7982
458 457 -0.827153 -4.27712 37.6052
459 458 0.384637 -3.27334 34.7118
460 459 0 -5.17638 39.3185
461 460 0 -20 20
462 461 -1.24918 -19.8414 20
463 462 1.24918 -19.8414 20
464 463 -2.5 -19.3301 20
465 464 2.5 -19.3301 20
466 465 1.42915 -4.31678 37.7975
467 466 -3.53553 -18.5355 20
468 467 3.53553 -18.5355 20
469 468 -2.47667 -3.31144 34.4889
470 469 -4.33013 -17.5 20
471 470 4.33013 -17.5 20
472 471 1.26196 -3.14241 29.6638
473 472 -2.28405 -16.6162 19.3268
474 473 3.85447 -3.38391 31.3202
475 474 -4.98806 -3.90503 34.1248
476 475 -4.84144 -16.2492 20
477 476 4.84144 -16.2492 20
478 477 2.89227 -13.9475 19.4707
479 478 4.93997 -3.74215 33.7266
480 479 5 -15 20
481 480 -5 -15 20
482 481 2.66591 -4.68464 38.6507
483 482 -3.19911 -15.7012 19.3268
484 483 -3.92756 -4.3937 37.5527
485 484 -4.84144 -13.7508 20
486 485 4.84144 -13.7508 20
487 486 2.55734 -12.6975 19.4707
488 487 4.38485 -4.17295 36.895
489 488 -4.33013 -12.5 20
490 489 4.33013 -12.5 20
491 490 2.45374 -3.67108 37.1344
492 491 -3.53405 -14.4512 19.3268
493 492 0.924628 -4.59851 39.3755
494 493 -1.32531 -4.57712 39.2854
495 494 -3.53553 -11.4645 20
496 495 3.53553 -11.4645 20
497 496 1.64227 -11.7825 19.4707
498 497 0.392272 -11.4475 19.4707
499 498 -1.03405 -11.9512 19.3268
500 499 -2.5 -10.6699 20
501 500 2.5 -10.6699 20
502 501 -4.43158 -3.12253 32.2943
503 502 -1.24918 -10.1586 20
504 503 1.24918 -10.1586 20
505 504 -3.19911 -13.2012 19.3268
506 505 0 -2.58819 29.6593
507 506 0 -10 20
508 507 -2.28405 -12.2861 19.3268
509 508 -2.50952 -2.69264 30.3302
510 509 -2.32535 -2.5012 32.6776
511 510 0.784544 -12.8951 18.9414
512 511 0.494199 -3.63867 38.0958
513 512 -1.43091 -2.88365 35.9543
514 513 -0.641774 -13.3987 18.7975
515 514 -0.109562 -2.23403 31.3601
516 515 2.98965 -3.04076 35.7994
517 516 2.6123 -2.54291 30.4312
518 517 3.66591 -4.00338 37.9594
519 518 -4.77018 -3.57386 36.1067
520 519 4.90471 -3.43516 35.5977
521 520 -2.06809 -13.9024 18.6535
522 521 -4.44015 -17.2739 19.0706
523 522 -1.18966 -18.0908 18.4916
524 523 0.0603379 -18.4257 18.4916
525 524 2.56034 -15.9257 18.4916
526 525 1.31034 -18.0908 18.4916
527 526 2.2254 -17.1757 18.4916
528 527 -4.89096 -16.0145 19.1219
529 528 1.8699 -3.96675 39.2324
530 529 -2.6427 -3.88743 38.8478
531 530 -0.219125 -1.87987 33.0609
532 531 -2.58444 -19.2435 18.8098
533 532 -3.60528 -18.428 18.8406
534 533 -0.883845 -2.97758 37.7456
535 534 0 -19.9582 18.708
536 535 -4.35943 -12.5257 19.1959
537 536 -1.24918 -19.7985 18.6955
538 537 -4.97946 -2.84301 34.2667
539 538 0 -3.88905 39.6182
540 539 1.24918 -19.7979 18.6856
541 540 -3.57791 -11.4828 19.2487
542 541 -2.51127 -2.15077 34.6346
543 542 -3.30413 -15.4477 18.3972
544 543 -4.99916 -14.8705 18.9371
545 544 1.4717 -2.99203 37.9601
546 545 -4.81555 -13.6183 19.0071
547 546 1.35601 -1.89365 30.0098
548 547 2.18848 -19.4443 18.587
549 548 3.27158 -18.7292 18.605
550 549 0.45261 -14.8733 17.9623
551 550 -2.36808 -16.4903 18.1264
552 551 -3.22808 -13.1998 18.5118
553 552 4.19539 -17.6633 18.5828
554 553 1.24024 -1.57979 31.8881
555 554 4.7744 -16.4291 18.6444
556 555 2.22503 -10.4787 19.0426
557 556 0.962187 -10.0487 19.0502
558 557 -0.973708 -15.3769 17.8184
559 558 1.36443 -11.5539 18.5058
560 559 -2.87337 -10.8592 18.9679
561 560 -1.65274 -10.2329 19.0064
562 561 -4.0018 -3.15841 37.7183
563 562 -3.53236 -14.2816 18.2572
564 563 2.98443 -3.33636 38.7166
565 564 2.38588 -1.64729 34.1485
566 565 -2.64746 -12.4392 18.2624
567 566 3.46439 -11.3266 18.7561
568 567 4.28027 -12.3456 18.6839
569 568 -1.32531 -3.28039 39.5478
570 569 0.924628 -3.29572 39.6391
571 570 2.50659 -12.4688 18.143
572 571 0 -9.91821 18.7237
573 572 0.392272 -11.2772 18.1766
574 573 -1.03405 -11.7808 18.0327
575 574 0 -1.27634 29.9182
576 575 -4.54017 -16.9931 18.1409
577 576 -2.50952 -1.35104 30.5895
578 577 0.577174 -1.76618 36.7455
579 578 -4.80341 -2.42167 36.2084
580 579 -4.38808 -12.4973 18.3701
581 580 -1.48761 -1.58411 36.0947
582 581 4.93364 -14.0791 18.245
583 582 4.98217 -15.3102 18.1476
584 583 2.6996 -1.27971 30.7153
585 584 3.91909 -2.67534 37.9062
586 585 -0.109562 -0.939933 31.5304
587 586 -3.7633 -18.1665 17.8608
588 587 2.85554 -14.1406 17.5591
589 588 -4.91037 -15.815 17.9877
590 589 -4.8304 -13.5796 18.1223
591 590 -1.2737 -17.9648 17.2912
592 591 -4.86441 -1.6498 33.7448
593 592 -2.66807 -19.0782 17.5993
594 593 -3.87605 -11.6901 18.1127
595 594 0.0603379 -18.3402 17.1863
596 595 -2.6996 -2.57775 39.0348
597 596 -4.99662 -14.6609 17.8609
598 597 4.50778 -1.34427 32.7661
599 598 1.9125 -2.63293 39.4423
600 599 0.120676 -16.8515 16.9832
601 600 -1.33897 -19.655 17.4685
602 601 -2.60956 -0.939933 34.0265
603 602 4.68801 -2.02361 36.6158
604 603 0 -2.61052 39.8289
605 604 0 -19.8289 17.3895
606 605 0.99529 -18.1397 17.0621
607 606 1.94431 -10.2128 18.0703
608 607 2.08467 -17.2757 17.0477
609 608 1.35601 -0.620118 30.1685
610 609 0.924628 -19.7235 17.2537
611 610 -3.22683 -10.9761 17.8713
612 611 1.8699 -19.4279 17.141
613 612 3.22773 -10.9532 17.7526
614 613 4.99089 -1.41472 35.2361
615 614 1.57449 -0.35277 32.1522
616 615 -4.04206 -1.90815 37.8413
617 616 -2.872 -15.8033 16.8405
618 617 -3.52591 -13.8928 17.0725
619 618 0.962187 -9.84331 17.7668
620 619 3.0698 -18.7233 17.0993
621 620 3.02251 -2.01874 38.8754
622 621 -1.65274 -10.0207 17.7009
623 622 4.04865 -17.7 17.1123
624 623 -0.026588 -0.372712 35.0946
625 624 0.286335 -12.752 16.7131
626 625 2.5236 -16.1188 16.58
627 626 -0.261779 -0.0865259 33.4
628 627 -1.13998 -13.2557 16.5692
629 628 -1.38671 -1.96754 39.7059
630 629 0.967602 -1.97764 39.807
631 630 4.22864 -12.0426 17.3445
632 631 -4.95347 -1.15807 35.6377
633 632 1.65433 -11.2136 17.058
634 633 0 4.71028e-15 30
635 634 0 -9.65926 17.4118
636 635 -4.7987 -13.2618 17.0058
637 636 3.04376 -0.0668177 31.033
638 637 2.04252 -0.77045 37.5172
639 638 3.97025 -1.32022 37.9909
640 639 -4.16211 -17.4469 16.6229
641 640 4.61641 -16.5785 16.6146
642 641 -3.53228 -7.81772e-09 31.4612
643 642 4.91813 -13.725 16.7746
644 643 -1.77762 -17.2779 16.0053
645 644 2.34323 0.146048 34.4876
646 645 -4.71845 -16.2865 16.52
647 646 -4.9914 -14.3254 16.6718
648 647 -2.75609 -1.28835 39.1285
649 648 0.0829744 -0.738041 38.4786
650 649 -4.47468 -12.3592 16.7909
651 650 -3.19812 -18.4752 16.2927
652 651 0.0603379 -18.085 15.9034
653 652 1.95501 -1.31726 39.5576
654 653 2.57842 -0.140138 36.1822
655 654 -1.33897 -19.4454 16.1782
656 655 4.71511 -0.741228 36.6472
657 656 -0.0455989 -14.7302 15.734
658 657 0 -19.6182 16.1109
659 658 0 -1.29196 39.9582
660 659 1.92423 -17.1866 15.7963
661 660 0.96291 -17.8689 15.7561
662 661 4.66942 0.00883208 33.2121
663 662 -1.71935 -11.7925 16.1781
664 663 1.73706 0.555417 30.2965
665 664 0.924628 -19.4987 15.9553
666 665 -4.44889 -0.596869 37.2717
667 666 -0.152217 0.853407 31.8695
668 667 4.92653 -15.3861 16.1769
669 668 2.00838 -12.3258 15.9147
670 669 1.83754 -19.2044 15.8384
671 670 2.2374 -9.97251 16.6238
672 671 3.04117 -18.4993 15.8061
673 672 3.89354 -17.6603 15.8695
674 673 -4.99999 -2.04523e-08 34.9921
675 674 -0.105937 -11.1341 15.9483
676 675 -1.29507 -0.0769543 38.1284
677 676 3.0884 -0.64812 38.921
678 677 1.06048 -0.0914072 38.343
679 678 -2.41702 0.567221 36.0602
680 679 -2.65221 0.853407 34.3656
681 680 -1.38671 -0.648381 39.7932
682 681 0.967602 -0.651709 39.8948
683 682 -4.10171 -11.5177 16.1609
684 683 3.4746 -10.7606 16.2218
685 684 2.35733 -13.9975 15.3309
686 685 1.26196 -9.48316 16.3485
687 686 -2.78532 -10.1529 16.1802
688 687 0 1.27634 29.9182
689 688 0 -9.24532 16.189
690 689 4.02026 4.77935e-08 37.9728
691 690 1.53184 1.44057 32.4913
692 691 0.13478 -16.2122 14.7997
693 692 4.51548 -16.5183 15.3987
694 693 3.36811 1.17433 31.2435
695 694 2.0931 0.567221 37.5505
696 695 -2.50952 1.35104 30.5895
697 696 -4.98373 -13.8832 15.4914
698 697 -1.94389 -15.1566 14.7562
699 698 -2.91607 0.00336912 39.0616
700 699 -2.5978 -13.2461 14.9881
701 700 -0.0692424 1.42063 35.4337
702 701 -4.75651 -15.835 15.2182
703 702 1.95501 -1.49961e-08 39.602
704 703 0.0829744 0.567221 38.5642
705 704 -3.67591 -17.7043 15.0275
706 705 -0.304434 1.70681 33.7391
707 706 0 -9.00803e-15 40
708 707 0 -19.3185 14.8236
709 708 0.165949 1.13444 37.1283
710 709 -1.93067 -18.914 14.8135
711 710 -4.53263 0.595461 37.1004
712 711 0.892063 -19.1891 14.6544
713 712 1.73706 1.82949 30.1478
714 713 2.53771 -15.4795 14.3965
715 714 -0.211874 -12.609 14.4849
716 715 1.80514 -18.8863 14.529
717 716 -0.152217 2.1475 31.6992
718 717 4.98198 1.15531 35.3808
719 718 3.72779 -17.5218 14.6095
720 719 1.15612 -11.0706 14.8298
721 720 2.8349 -18.3202 14.5326
722 721 -4.95347 1.15807 35.6377
723 722 3.0884 0.64812 38.921
724 723 -1.4531 1.21022 38.0147
725 724 -0.105937 -10.6346 14.7424
726 725 1.06048 1.22585 38.343
727 726 -1.56305 0.651439 39.7387
728 727 -4.86441 1.6498 33.7448
729 728 0.967602 0.651709 39.8948
730 729 -4.88523 -12.9338 14.8137
731 730 2.52411 -9.53214 15.1747
732 731 -2.55392 2.06424 34.9737
733 732 -2.45082 -12.2741 14.3508
734 733 -2.31873 1.77806 36.6683
735 734 1.26196 -8.94155 15.1717
736 735 -2.36801 2.41467 33.0167
737 736 -1.76352 -16.6386 13.8218
738 737 4.4978 -16.1842 14.2241
739 738 0.0744418 -17.4457 13.7199
740 739 -2.78532 -9.59382 14.9374
741 740 0 -8.66025 15
742 741 0 2.58819 29.6593
743 742 -4.91611 -14.8174 14.2001
744 743 2.96073 2.50281 30.6815
745 744 1.93834 -16.5474 13.6128
746 745 0.977014 -17.2296 13.5726
747 746 -3.07215 1.28599 38.9012
748 747 -0.031495 -14.091 13.5505
749 748 4.92958 -12.9874 14.3484
750 749 3.82247 1.46643 38.1641
751 750 -2.33723 -14.1447 13.6416
752 751 -4.11104 -16.7592 13.8675
753 752 1.95501 1.31726 39.5576
754 753 -2.50952 2.69264 30.3302
755 754 0.0829744 1.87248 38.4786
756 755 0 1.29196 39.9582
757 756 1.88723 2.06114 37.673
758 757 0 -18.9418 13.5807
759 758 4.71544 2.37992 33.1232
760 759 -1.93067 -18.5254 13.5619
761 760 2.33275 2.76704 34.404
762 761 2.56794 2.48086 36.0987
763 762 -3.11765 -17.7892 13.5895
764 763 -4.68976 -11.9393 14.2168
765 764 4.66906 1.98211 36.6714
766 765 0.892063 -18.7928 13.395
767 766 -4.15341 1.89924 37.682
768 767 1.56085 3.17274 31.9967
769 768 1.78179 -18.4835 13.2667
770 769 3.69968 -17.1336 13.3928
771 770 2.81351 -17.9134 13.2773
772 771 1.26196 3.14241 29.6638
773 772 4.91483 -14.5587 13.5613
774 773 -1.23838 2.51094 37.9881
775 774 -4.80341 2.42167 36.2084
776 775 -0.275426 3.43898 33.2445
777 776 1.01793 2.55059 38.1803
778 777 -1.56305 1.97033 39.6509
779 778 0.967602 1.97764 39.807
780 779 -4.99354 -13.798 13.496
781 780 -4.97946 2.84301 34.2667
782 781 2.83194 2.16764 38.9974
783 782 -4.43158 3.12253 32.2943
784 783 0.148884 -15.573 12.6162
785 784 2.48274 -8.85397 14.0635
786 785 -2.15685 -15.6267 12.7073
787 786 1.21815 -8.25108 14.0877
788 787 0.0744418 -17.0253 12.4813
789 788 -0.0637787 3.66595 35.0318
790 789 2.34518 -12.9254 12.7663
791 790 -0.123209 3.87967 31.2046
792 791 0.171413 3.37977 36.7264
793 792 -1.17179 -16.6226 12.3867
794 793 -2.86085 2.57308 38.9266
795 794 1.9101 -16.1132 12.4025
796 795 -4.46258 -15.6804 12.7984
797 796 0 3.81104 29.2453
798 797 -2.2861 -13.6494 12.5358
799 798 0.953653 -16.7808 12.3165
800 799 0 -7.93696 13.9169
801 800 4.61827 -11.2511 13.3217
802 801 2.52411 3.80517 29.9833
803 802 1.9125 2.63293 39.4423
804 803 0 2.61052 39.8289
805 804 0 -18.4776 12.3463
806 805 -2.50952 3.94493 29.9197
807 806 -3.6316 -16.8043 12.4152
808 807 3.60852 2.98783 38.2176
809 808 -2.339 4.14684 32.5221
810 809 -1.2452 -18.2376 12.1825
811 810 0.868637 -18.3125 12.1504
812 811 4.52257 3.83088 32.2843
813 812 -4.0018 3.15841 37.7183
814 813 -2.49247 -17.6723 12.1571
815 814 -2.45142 -11.0451 12.6007
816 815 -2.78683 -8.60669 13.3956
817 816 3.67131 -16.6534 12.1888
818 817 1.75842 -17.9887 12.0167
819 818 0.345139 -10.7403 12.4727
820 819 4.54998 3.45779 36.7193
821 820 2.779 -17.4295 12.0509
822 821 -4.77018 3.57386 36.1067
823 822 1.13885 4.48816 31.3666
824 823 -2.31327 4.02338 36.2664
825 824 1.26196 4.33421 29.1912
826 825 -2.12735 4.37381 34.3094
827 826 -4.98766 -13.3816 12.4774
828 827 -4.98806 3.90503 34.1248
829 828 4.96994 3.82728 35.069
830 829 1.71313 -9.20188 12.8176
831 830 2.52555 -14.4074 11.832
832 831 -1.32531 3.28039 39.5478
833 832 2.36176 4.49921 33.9094
834 833 0.924628 3.29572 39.6391
835 834 2.7927 3.49046 38.8266
836 835 -2.10572 -15.1313 11.6015
837 836 0.451075 -8.76593 12.7302
838 837 -0.088174 -12.9561 11.6448
839 838 2.44119 -8.03551 13.0312
840 839 0.0884381 4.11781 38.0767
841 840 0.0744418 -16.4467 11.3081
842 841 1.8927 4.30646 37.2711
843 842 1.21815 -7.43581 13.0903
844 843 -4.69037 -10.861 12.3794
845 844 -4.41258 -15.2276 11.6818
846 845 -1.15122 -16.0212 11.2218
847 846 -0.123209 5.08557 30.7051
848 847 -2.6427 3.88743 38.8478
849 848 -2.32712 -12.6212 11.5108
850 849 -0.246418 5.17115 32.7499
851 850 2.57341 4.72619 35.6968
852 851 0.938503 -16.1633 11.134
853 852 3.772 -9.05669 12.5645
854 853 0 3.88905 39.6182
855 854 0 -17.9406 11.1606
856 855 1.8699 3.96675 39.2324
857 856 4.46653 -15.0188 11.5204
858 857 -4.54228 4.79524 31.9865
859 858 0 -7.07107 12.9289
860 859 0 5 28.6603
861 860 2.48274 4.97815 29.4262
862 861 1.76658 -15.5019 11.0438
863 862 -3.615 -16.2582 11.269
864 863 3.65651 4.29588 37.9021
865 864 -1.2452 -17.6788 10.9898
866 865 0.868637 -17.7514 10.9528
867 866 -3.92756 4.3937 37.5527
868 867 -1.23291 4.75626 37.5862
869 868 -2.47192 -17.1136 10.9778
870 869 -0.0347711 5.39812 34.5372
871 870 -4.99899 -12.5668 11.627
872 871 1.02339 4.79592 37.7784
873 872 -4.73421 4.74301 35.9169
874 873 1.74328 -17.4144 10.8192
875 874 4.57757 4.70634 36.3475
876 875 0.0922046 -14.4381 10.7105
877 876 2.76505 -16.8474 10.8625
878 877 -2.27867 5.18405 36.1207
879 878 -2.72641 5.36248 29.3847
880 879 -2.78683 -7.71335 12.3713
881 880 -4.44785 5.20248 33.967
882 881 3.53069 -16.1031 10.8112
883 882 1.21815 5.46221 28.5557
884 883 -1.32531 4.57712 39.2854
885 884 0.924628 4.59851 39.3755
886 885 1.67167 -8.45356 11.7458
887 886 2.84987 4.82531 38.489
888 887 -2.44355 5.82152 32.0921
889 888 2.26434 -7.17576 12.277
890 889 4.90223 -13.2418 11.0478
891 890 0.176876 5.62509 36.3245
892 891 1.03368 -6.59391 12.3389
893 892 0.451075 -7.97134 11.6947
894 893 0.0884381 5.40074 37.8215
895 894 -4.36032 -14.6897 10.5868
896 895 1.94032 5.61452 36.9036
897 896 -2.59929 5.15522 38.5689
898 897 2.90219 -11.0567 10.7542
899 898 3.772 5.872 30.1405
900 899 0 -17.3205 10
901 900 0 5.17638 39.3185
902 901 1.83754 5.25657 38.934
903 902 -4.99853 5.76794 33.7154
904 903 -2.35527 6.22679 34.1948
905 904 -3.53734 -15.6886 10.1325
906 905 3.73993 -8.07812 11.562
907 906 0 6.08315 27.937
908 907 0 -6.08315 12.063
909 908 2.44119 6.09483 28.7171
910 909 -1.22348 -17.0423 9.8264
911 910 -3.89547 5.61797 37.2424
912 911 3.70377 5.60394 37.4827
913 912 0.853473 -17.1098 9.7861
914 913 4.87455 5.85267 35.0125
915 914 4.37395 -14.412 10.2103
916 915 -2.45132 -16.4695 9.82742
917 916 -1.18939 6.02425 37.2608
918 917 2.46888 -13.2725 9.92627
919 918 2.23102 6.54663 33.7156
920 919 0.99101 6.08504 37.433
921 920 1.72812 -16.7537 9.65191
922 921 1.59162 6.59444 29.7437
923 922 -4.61133 6.00415 35.8325
924 923 -2.1624 -13.9965 9.69577
925 924 2.18515 6.68556 31.4703
926 925 -1.89441 -9.17646 10.5885
927 926 4.95509 6.27471 32.8847
928 927 -2.14362 6.45377 35.9821
929 928 1.49358 -7.5586 11.0377
930 929 0.0177628 -15.3118 9.40236
931 930 -1.27873 5.85529 38.9497
932 931 -2.72641 6.48497 28.6472
933 932 2.085 -6.24559 11.6149
934 933 2.59597 -16.1678 9.50904
935 934 0.892063 5.88069 39.0319
936 935 1.21815 6.49847 27.7978
937 936 -4.64068 6.47189 31.4343
938 937 0.902151 -8.87161 10.4605
939 938 -4.69097 -9.48131 10.7165
940 939 -1.2079 -14.8864 9.31607
941 940 2.82021 6.10901 38.127
942 941 3.38428 -15.4309 9.47142
943 942 -2.32772 -11.3922 9.76061
944 943 0.881824 -15.0284 9.22831
945 944 -2.72641 -6.48497 11.3528
946 945 2.44266 6.7736 35.5029
947 946 -4.49127 -13.7549 9.67756
948 947 0.468838 -11.0874 9.6326
949 948 1.03368 -5.56773 11.5636
950 949 0.451075 -6.93581 10.9001
951 950 -1.36944 7.00772 34.9714
952 951 4.97951 -10.7571 10.2059
953 952 0.0884381 6.63938 37.4011
954 953 -0.396531 7.20743 33.3141
955 954 1.75271 6.7358 36.6665
956 955 1.7099 -14.367 9.13807
957 956 0.206353 7.27743 31.127
958 957 -2.44068 7.14746 33.4731
959 958 -2.55566 6.4234 38.1971
960 959 0.329563 7.19186 29.0822
961 960 4.45473 -13.6629 9.43608
962 961 0 6.41932 38.9418
963 962 0 -16.6317 8.89211
964 963 3.6009 -7.06675 10.8881
965 964 3.73994 7.02368 29.334
966 965 1.80514 6.54499 38.5415
967 966 -4.99636 6.9344 33.5155
968 967 -3.52896 -14.9792 9.07148
969 968 2.75943 -8.5358 10.1349
970 969 3.52107 6.72744 37.287
971 970 4.29499 6.83663 36.1744
972 971 -4.99895 -11.0916 9.75043
973 972 -0.184884 7.4344 35.1014
974 973 -1.22348 -16.3289 8.71682
975 974 0 -5 11.3397
976 975 0 7.07107 27.0711
977 976 2.44119 7.11747 27.9042
978 977 0.0355256 -13.3032 8.80472
979 978 0.853473 -16.3936 8.67213
980 979 2.26844 -11.3731 9.16215
981 980 -2.44119 -15.7493 8.73475
982 981 -1.1578 7.2347 36.7588
983 982 -3.65826 6.93794 37.0509
984 983 -2.2857 -13.0281 8.82483
985 984 0.967649 7.31386 36.9127
986 985 1.72067 -16.0186 8.54216
987 986 3.51167 -14.6799 8.64458
988 987 -4.46411 7.28244 35.6397
989 988 1.55016 7.73927 29.1106
990 989 -1.27873 7.10598 38.5171
991 990 -2.59366 7.8578 32.6563
992 991 0.0177628 -14.5851 8.31474
993 992 0.892063 7.13681 38.5974
994 993 2.58895 -15.4097 8.41701
995 994 -2.77033 -9.52732 9.29364
996 995 1.21815 7.43581 26.9097
997 996 2.60056 7.23347 37.8614
998 997 -1.99078 7.9278 30.4692
999 998 0.0262342 -9.22247 9.16564
1000 999 1.71313 -6.33839 10.2386
1001 1000 -4.60693 -12.753 8.84494
1002 1001 1.83513 -13.5889 8.33426
1003 1002 -1.19776 -14.1277 8.24615
1004 1003 4.61671 -8.19998 9.80933
1005 1004 0.874373 -14.2544 8.14187
1006 1005 2.30655 -5.06462 10.7294
1007 1006 -2.72641 -5.36248 10.6153
1008 1007 -5 7.76633 32.8409
1009 1008 -1.86926 -7.67175 9.51311
1010 1009 -2.78683 7.71335 27.6287
1011 1010 -0.407078 -11.4382 8.33775
1012 1011 -2.52412 7.64311 37.7396
1013 1012 4.76738 -12.0007 8.66529
1014 1013 1.26196 -4.33421 10.8088
1015 1014 0 -15.8671 7.82477
1016 1015 0 7.65367 38.4776
1017 1016 4.70845 7.92211 34.6814
1018 1017 -3.72726 -13.981 8.14151
1019 1018 0.329563 8.22739 28.2876
1020 1019 -4.66632 -8.04332 9.52852
1021 1020 -4.66632 8.04332 30.4715
1022 1021 3.32855 7.84651 37.0084
1023 1022 1.78179 7.78383 38.0663
1024 1023 4.15547 7.9366 35.9111
1025 1024 -4.98995 -10.484 8.83351
1026 1025 3.73993 8.07812 28.438
1027 1026 -1.21281 -15.5423 7.65147
1028 1027 4.9987 8.18277 32.4352
1029 1028 0 7.93696 26.0831
1030 1029 0 -3.81104 10.7547
1031 1030 2.44119 8.03551 26.9688
1032 1031 4.61671 8.19998 30.1907
1033 1032 0.846023 -15.6028 7.60343
1034 1033 -2.43104 -14.9523 7.68758
1035 1034 2.0809 8.58291 34.2798
1036 1035 -0.273322 8.44869 36.178
1037 1036 -3.6328 8.11473 36.5535
1038 1037 2.73653 -9.62055 8.47792
1039 1038 3.63474 -13.8746 7.86381
1040 1039 2.68379 8.65292 32.0928
1041 1040 1.39095 8.54511 35.4433
1042 1041 -4.55374 8.22592 34.9513
1043 1042 -2.18178 -12.3439 7.83856
1044 1043 3.772 -5.872 9.85952
1045 1044 1.71322 -15.2056 7.47901
1046 1045 2.73603 -14.6309 7.59027
1047 1046 2.63792 8.79185 29.8474
1048 1047 -1.2452 8.32639 38.011
1049 1048 0.0177628 -13.7227 7.33129
1050 1049 1.55016 8.70961 28.2365
1051 1050 0.327866 -7.02138 8.85532
1052 1051 1.21815 8.25108 25.9123
1053 1052 0.868637 8.36059 38.0849
1054 1053 2.57852 8.45728 37.3303
1055 1054 1.09568 -9.44545 8.00173
1056 1055 -4.50864 -12.1065 7.83648
1057 1056 -1.19776 -13.2272 7.29226
1058 1057 -0.849682 -9.57332 7.87079
1059 1058 0.874373 -13.3385 7.17182
1060 1059 -0.546643 9.24371 33.8783
1061 1060 -1.51956 9.044 35.5357
1062 1061 0.0562409 9.31371 31.6912
1063 1062 -2.50952 -3.94493 10.0803
1064 1063 -4.99952 -9.47735 8.28382
1065 1064 0.605889 9.12317 35.6896
1066 1065 -2.59079 9.18374 34.0374
1067 1066 -2.78683 8.60669 26.6044
1068 1067 -0.123209 -5.08557 9.29495
1069 1068 1.26196 -3.14241 10.3362
1070 1069 -2.49247 8.8443 37.193
1071 1070 4.28281 8.94313 35.1355
1072 1071 2.52411 -3.80517 10.0167
1073 1072 -2.74518 -8.0226 8.21826
1074 1073 0.662368 -11.6612 7.17384
1075 1074 3.50396 8.91879 36.2844
1076 1075 0 8.83943 37.9406
1077 1076 -2.61881 9.36251 31.5809
1078 1077 0.329563 9.02199 27.2521
1079 1078 0 -15.0377 6.81414
1080 1079 4.99974 -9.29572 8.1621
1081 1080 -3.72726 -13.127 7.20259
1082 1081 0.659125 9.38372 29.5041
1083 1082 2.18515 -6.68556 8.52974
1084 1083 1.75842 9.00263 37.5008
1085 1084 -4.63494 9.12377 34.1964
1086 1085 -2.62438 -10.479 7.37159
1087 1086 -3.77617 9.11277 35.8435
1088 1087 -2.01592 9.43251 29.3938
1089 1088 0 -2.58819 10.3407
1090 1089 0 8.66025 25
1091 1090 -1.21281 -14.6867 6.64526
1092 1091 2.48274 8.85397 25.9365
1093 1092 0.846023 -14.7439 6.59331
1094 1093 1.56233 9.59433 34.6762
1095 1094 3.772 9.05669 27.4355
1096 1095 -2.43104 -14.0845 6.70363
1097 1096 -0.273322 9.62185 35.5994
1098 1097 4.16669 -12.1737 7.06342
1099 1098 1.71322 -14.3231 6.47839
1100 1099 2.73603 -13.7372 6.60771
1101 1100 -4.64068 -6.47189 8.56573
1102 1101 -4.99952 9.47735 31.7162
1103 1102 1.59162 9.45793 27.1647
1104 1103 2.46197 -11.947 6.70339
1105 1104 1.26196 8.94155 24.8283
1106 1105 -4.69097 9.48131 29.2835
1107 1106 -1.2452 9.50841 37.4159
1108 1107 2.779 9.55118 36.6057
1109 1108 4.60691 -6.20197 8.51029
1110 1109 0.868637 9.54747 37.4874
1111 1110 3.37816 -12.9924 6.56972
1112 1111 -0.54805 -7.37223 7.56047
1113 1112 -4.39909 -11.3847 6.87239
1114 1113 4.75044 9.81283 33.3394
1115 1114 1.13885 -4.48816 8.63343
1116 1115 0.219764 -9.7963 6.70688
1117 1116 -2.50952 -2.69264 9.66978
1118 1117 4.99461 9.83288 31.0184
1119 1118 -1.49898 10.1727 34.8682
1120 1119 1.35601 -1.89365 9.99016
1121 1120 -0.123209 -3.87967 8.79545
1122 1121 3.67131 9.94495 35.4742
1123 1122 0.590739 10.2685 35.005
1124 1123 -2.74231 -9.34855 6.83719
1125 1124 -2.47287 10.3142 33.503
1126 1125 -1.86998 10.3842 31.3159
1127 1126 2.12118 10.3778 32.8055
1128 1127 -2.47192 9.99104 36.5667
1129 1128 2.6123 -2.54291 9.5688
1130 1129 0 -14.1421 5.85786
1131 1130 0 10 37.3205
1132 1131 -2.44355 -5.82152 7.90794
1133 1132 3.75467 -3.89705 8.97009
1134 1133 4.56921 9.86091 28.4246
1135 1134 -3.55788 -12.3551 6.21292
1136 1135 0 9.24532 23.811
1137 1136 0 -1.27634 10.0818
1138 1137 2.72407 10.4478 30.6184
1139 1138 1.74328 10.1666 36.8579
1140 1139 -3.76035 10.2003 35.1881
1141 1140 -1.55494 -10.702 6.20768
1142 1141 2.52411 9.53214 24.8253
1143 1142 -4.52452 10.2686 33.7086
1144 1143 -2.78532 9.59382 25.0626
1145 1144 -1.21281 -13.7647 5.69672
1146 1145 2.58898 10.2681 27.9535
1147 1146 0.846023 -13.8182 5.64108
1148 1147 -2.43104 -13.1511 5.7798
1149 1148 2.16225 -7.77032 6.87276
1150 1149 4.57092 -10.3695 6.49536
1151 1150 1.40154 10.7328 34.0237
1152 1151 -0.273322 10.7095 34.8727
1153 1152 0.644605 -12.0807 5.70042
1154 1153 -5 -7.76633 7.15908
1155 1154 1.26196 9.48316 23.6515
1156 1155 1.71322 -13.3739 5.53891
1157 1156 -4.98995 10.484 31.1665
1158 1157 -0.570917 -11.5852 5.66138
1159 1158 -4.52452 -10.2686 6.29136
1160 1159 2.93006 -10.1944 6.01916
1161 1160 4.98913 -7.14508 7.18702
1162 1161 -1.22348 10.6492 36.7492
1163 1162 -0.336076 -8.66071 6.20538
1164 1163 2.76505 10.6856 35.9107
1165 1164 -4.54228 -4.79524 8.0135
1166 1165 0.853473 10.6914 36.8156
1167 1166 -2.01532 10.6615 27.6437
1168 1167 1.50122 -11.6966 5.54094
1169 1168 3.95841 -11.2275 5.8609
1170 1169 -0.190115 11.1901 32.5637
1171 1170 2.43226 -12.7269 5.3998
1172 1171 1.22659 -3.22543 8.26744
1173 1172 0.521396 -7.59522 6.39656
1174 1173 1.35601 -0.620118 9.8315
1175 1174 -2.50952 -1.35104 9.41045
1176 1175 4.35052 10.8584 33.6784
1177 1176 -0.246418 -5.17115 7.25015
1178 1177 -2.23157 -7.10999 6.55285
1179 1178 -1.48884 11.1974 34.0493
1180 1179 3.68906 10.2257 25.5296
1181 1180 0.412769 11.2601 30.3766
1182 1181 2.19685 -11.0069 5.4558
1183 1182 0.583289 11.3088 34.1697
1184 1183 3.10449 -11.9945 5.36863
1185 1184 2.17528 -4.61632 7.43289
1186 1185 0 9.65926 22.5882
1187 1186 0 -3.14018e-15 10
1188 1187 2.6996 -1.27971 9.28473
1189 1188 -1.67286 -9.57153 5.67328
1190 1189 1.28921 -10.0193 5.54297
1191 1190 -2.45132 11.1017 35.8581
1192 1191 3.5141 11.1059 34.8666
1193 1192 -2.26228 11.3089 30.2663
1194 1193 0 11.1079 36.6317
1195 1194 0 -13.1859 4.96228
1196 1195 -3.56619 -11.3683 5.39925
1197 1196 2.2374 9.97251 23.3762
1198 1197 3.82267 -2.56703 8.50609
1199 1198 -2.339 -4.14684 7.47795
1200 1199 -2.78532 10.1529 23.8198
1201 1200 -4.99895 11.0916 30.2496
1202 1201 1.72812 11.2933 36.1317
1203 1202 -4.69037 10.861 27.6206
1204 1203 -1.21281 -12.7821 4.81225
1205 1204 -3.56619 11.3683 34.6008
1206 1205 0.962187 9.84331 22.2332
1207 1206 0.846023 -12.8318 4.75317
1208 1207 -2.44119 -12.1524 4.92461
1209 1208 -4.63494 -9.12377 5.80358
1210 1209 -4.39909 11.3847 33.1276
1211 1210 -0.273322 11.6929 34.0102
1212 1211 4.59699 -4.0615 7.61563
1213 1212 -0.0361772 11.3785 27.4689
1214 1213 -4.99636 -6.9344 6.48446
1215 1214 -1.65274 10.0207 22.2991
1216 1215 0.644605 -11.0973 4.83795
1217 1216 3.98671 -10.353 5.25377
1218 1217 -0.36574 11.0168 25.2169
1219 1218 1.72067 -12.3601 4.66687
1220 1219 4.78901 11.5119 31.7327
1221 1220 1.35601 0.620118 9.8315
1222 1221 -0.581057 -10.5605 4.84244
1223 1222 -1.22348 11.7413 36.0027
1224 1223 -0.0344445 -6.45962 5.89506
1225 1224 0.853473 11.7878 36.0661
1226 1225 -4.43158 -3.12253 7.70575
1227 1226 0 1.27634 10.0818
1228 1227 2.57624 11.8284 35.2318
1229 1228 0 9.91821 21.2763
1230 1229 4.51884 11.1526 26.4029
1231 1230 1.50867 -10.6563 4.70563
1232 1231 2.23318 -10.1098 4.83925
1233 1232 0.733369 -8.88369 5.04147
1234 1233 2.43939 -11.6901 4.56216
1235 1234 3.14095 -11.1134 4.7247
1236 1235 2.6996 -2.94817e-11 9.20858
1237 1236 4.98837 11.5528 29.0237
1238 1237 1.94431 10.2128 21.9297
1239 1238 -2.2287 -8.43593 5.17178
1240 1239 0.419647 -1.2941 8.11949
1241 1240 3.4746 10.7606 23.7782
1242 1241 4.23648 11.9435 33.0028
1243 1242 -2.35527 -6.22679 5.80524
1244 1243 -3.76035 -10.2003 4.81194
1245 1244 -2.11634 12.2606 32.1884
1246 1245 0.896317 11.4527 25.1295
1247 1246 -4.99853 -5.76794 6.28461
1248 1247 4.7258 -8.04258 5.44064
1249 1248 0.962187 10.0487 20.9498
1250 1249 2.29924 -5.40821 6.01374
1251 1250 -2.44119 12.1524 35.0754
1252 1251 0 12.1752 35.8671
1253 1252 0 -12.1752 4.13293
1254 1253 2.47771 12.3242 31.4909
1255 1254 2.34262 12.1445 28.826
1256 1255 -4.50864 12.1065 32.1635
1257 1256 3.06705 -7.83228 5.16015
1258 1257 3.34973 12.222 34.1691
1259 1258 -1.65274 10.2329 20.9936
1260 1259 1.35601 1.89365 9.99016
1261 1260 1.72067 12.3601 35.3331
1262 1261 -3.55788 12.3551 33.7871
1263 1262 4.20392 -9.10701 4.81465
1264 1263 -1.22348 -11.7413 3.99734
1265 1264 -2.45132 -11.1017 4.14191
1266 1265 0.853473 -11.7878 3.93395
1267 1266 -4.55374 -8.22592 5.04867
1268 1267 -0.36574 11.5163 24.011
1269 1268 0 10 20
1270 1269 0 2.58819 10.3407
1271 1270 -1.1369 -9.42491 4.34095
1272 1271 1.75807 12.6792 32.7091
1273 1272 -2.50952 1.35104 9.41045
1274 1273 1.65433 11.2136 22.942
1275 1274 0.644605 -10.0096 4.11123
1276 1275 4.98756 -4.83886 6.17487
1277 1276 -3.53228 7.81771e-09 8.53879
1278 1277 2.5085 -8.83524 4.44188
1279 1278 2.22503 10.4787 20.9574
1280 1279 1.72812 -11.2933 3.8683
1281 1280 2.6996 1.27971 9.28473
1282 1281 -2.26168 12.5379 28.5161
1283 1282 1.24918 10.1586 20
1284 1283 -1.24918 10.1586 20
1285 1284 -2.49031 -4.95708 5.66665
1286 1285 3.22773 10.9532 22.2474
1287 1286 3.17715 -10.2004 4.13554
1288 1287 2.47942 -10.7833 3.9429
1289 1288 0.177529 -7.7481 4.53998
1290 1289 -1.21281 12.7821 35.1877
1291 1290 0.296438 -2.58557 6.57419
1292 1291 -3.22683 10.9761 22.1287
1293 1292 0.846023 12.8318 35.2468
1294 1293 1.89368 12.2629 25.9183
1295 1294 1.52382 -9.51096 4.02108
1296 1295 -2.22026 12.9447 31.2021
1297 1296 -4.68976 11.9393 25.7832
1298 1297 -4.10171 11.5177 23.8391
1299 1298 4.33749 12.7247 31.9952
1300 1299 2.56922 12.8544 34.3822
1301 1300 0.419647 1.76094e-11 7.94912
1302 1301 1.76945 -0.639856 7.59148
1303 1302 1.26196 3.14241 10.3362
1304 1303 4.38232 11.7511 24.5262
1305 1304 -4.60693 12.753 31.1551
1306 1305 0.166412 13.1365 31.2491
1307 1306 -2.14329 -7.51527 4.45016
1308 1307 -1.13232 13.1438 32.7347
1309 1308 -1.15285 10.1032 19.2018
1310 1309 0.392272 11.2772 21.8234
1311 1310 0.962187 10.0487 19.0502
1312 1311 2.71814 -2.03075 6.75693
1313 1312 -3.77617 -9.11277 4.15651
1314 1313 0 9.91821 18.7237
1315 1314 0 3.81104 10.7547
1316 1315 -2.87337 10.8592 21.0321
1317 1316 2.51121 -6.69669 4.65865
1318 1317 -4.99899 12.5668 28.373
1319 1318 0.939817 13.2552 32.8551
1320 1319 3.18626 13.0694 30.2146
1321 1320 3.49499 13.086 33.1837
1322 1321 -1.79614 -1.56127 6.80199
1323 1322 -2.43104 13.1511 34.2202
1324 1323 0 13.1859 35.0377
1325 1324 0 -11.1079 3.36826
1326 1325 4.50778 -1.34427 7.2339
1327 1326 -3.72726 13.127 32.7974
1328 1327 2.6123 2.54291 9.5688
1329 1328 -2.50952 2.69264 9.66978
1330 1329 3.05118 12.8898 27.5497
1331 1330 2.5 10.6699 20
1332 1331 -2.5 10.6699 20
1333 1332 -4.98806 -3.90503 5.87523
1334 1333 -1.97915 12.1747 23.7812
1335 1334 -0.0365487 -4.28841 5.18262
1336 1335 -0.282534 13.2549 28.3414
1337 1336 1.71322 13.3739 34.4611
1338 1337 -2.71062 12.6563 25.6085
1339 1338 0.0887647 -8.87405 3.60974
1340 1339 -1.22348 -10.6492 3.25075
1341 1340 1.26196 4.33421 10.8088
1342 1341 1.90057 13.5056 31.6926
1343 1342 -2.47192 -9.99104 3.4333
1344 1343 -4.46411 -7.28244 4.36033
1345 1344 1.95266 -7.69964 3.94039
1346 1345 -1.40104 -5.79728 4.52653
1347 1346 1.36443 11.5539 21.4942
1348 1347 0.853473 -10.6914 3.18441
1349 1348 0.962187 9.84331 17.7668
1350 1349 0 5 11.3397
1351 1350 0 9.65926 17.4118
1352 1351 -1.15285 9.91649 17.9081
1353 1352 0.0832062 13.6393 32.6956
1354 1353 3.46439 11.3266 21.2439
1355 1354 -1.15747 -8.2962 3.67348
1356 1355 2.22503 10.4787 19.0426
1357 1356 2.38515 -3.73359 5.36536
1358 1357 3.46246 -8.93916 3.6808
1359 1358 0.419647 1.2941 8.11949
1360 1359 -2.40857 10.5867 19.1813
1361 1360 4.93281 -2.81609 6.0993
1362 1361 4.78088 13.2767 29.7361
1363 1362 0.967975 -8.37536 3.51958
1364 1363 1.74328 -10.1666 3.14212
1365 1364 4.84489 -5.64528 4.77733
1366 1365 -2.12913 -3.26411 5.41042
1367 1366 1.76945 0.639856 7.59148
1368 1367 -3.87605 11.6901 21.8873
1369 1368 4.99009 12.9163 26.9877
1370 1369 0.392272 11.4475 20.5293
1371 1370 2.49385 -9.64629 3.2447
1372 1371 1.94431 10.2128 18.0703
1373 1372 -1.21281 13.7647 34.3033
1374 1373 2.52411 3.80517 10.0167
1375 1374 2.73603 13.7372 33.3923
1376 1375 1.74858 12.7079 24.0446
1377 1376 0 9.24532 16.189
1378 1377 1.21815 5.46221 11.4443
1379 1378 0 6.08315 12.063
1380 1379 0.846023 13.8182 34.3589
1381 1380 -1.51297 12.023 21.8439
1382 1381 -2.50952 3.94493 10.0803
1383 1382 4.22864 12.0426 22.6555
1384 1383 -2.31635 10.4391 18.3488
1385 1384 0.874963 13.8818 29.9728
1386 1385 -3.57791 11.4828 20.7513
1387 1386 -4.97946 -2.84301 5.73331
1388 1387 -2.09696 13.9131 30.3311
1389 1388 1.26196 9.48316 16.3485
1390 1389 -1.13232 14.0444 31.7808
1391 1390 0 7.07107 12.9289
1392 1391 0 8.66025 15
1393 1392 -4.47468 12.3592 23.2091
1394 1393 -4.86441 -1.6498 6.25517
1395 1394 3.63474 13.8746 32.1362
1396 1395 -3.6328 -8.11473 3.44647
1397 1396 4.42279 -6.64697 3.99308
1398 1397 0 7.93696 13.9169
1399 1398 4.50778 0.0828562 7.16359
1400 1399 1.21815 6.49847 12.2022
1401 1400 -0.73148 13.3733 25.4337
1402 1401 -4.49127 13.7549 30.3224
1403 1402 -4.98766 13.3816 27.5226
1404 1403 -4.88523 12.9338 25.1863
1405 1404 1.64227 11.7825 20.5293
1406 1405 -4.61133 -6.00415 4.16747
1407 1406 0.939817 14.1711 31.885
1408 1407 -2.43104 14.0845 33.2964
1409 1408 0 -10 2.67949
1410 1409 0 14.1421 34.1421
1411 1410 -3.72726 13.981 31.8585
1412 1411 1.26196 8.94155 15.1717
1413 1412 1.03789 7.51837 13.2425
1414 1413 1.03789 8.3165 14.2532
1415 1414 2.48274 4.97815 10.5738
1416 1415 3.53553 11.4645 20
1417 1416 -3.53553 11.4645 20
1418 1417 0.175425 -5.57689 3.82753
1419 1418 1.36443 11.5539 19.5644
1420 1419 3.72779 -7.65119 3.34079
1421 1420 2.2374 9.97251 16.6238
1422 1421 -3.36267 11.2752 19.2567
1423 1422 2.50659 12.4688 21.857
1424 1423 0.0887647 -7.70088 3.03119
1425 1424 1.71322 14.3231 33.5216
1426 1425 2.60912 14.2508 30.4163
1427 1426 -1.2452 -9.50841 2.5841
1428 1427 -2.49247 -8.8443 2.80698
1429 1428 0.426017 14.0001 27.0651
1430 1429 -1.18906 -7.08575 3.17145
1431 1430 1.81744 -6.56349 3.36108
1432 1431 0.868637 -9.54747 2.51256
1433 1432 0.026532 13.1342 23.2462
1434 1433 0.0832062 14.5018 31.7122
1435 1434 -2.5459 14.0315 27.4235
1436 1435 2.44119 6.09483 11.2829
1437 1436 -1.51297 12.1934 20.5498
1438 1437 -2.76003 5.39747 10.6099
1439 1438 2.81351 -8.3789 2.79892
1440 1439 0.991336 -7.14654 2.99923
1441 1440 -2.65229 10.2334 16.6704
1442 1441 -3.28285 11.1128 18.3909
1443 1442 -2.85761 13.6283 24.9712
1444 1443 2.02055 14.0276 26.4714
1445 1444 1.75842 -9.00263 2.49919
1446 1445 3.46439 11.3266 18.7561
1447 1446 2.50911 -4.52548 3.94621
1448 1447 2.09324 8.12048 13.408
1449 1448 2.2684 7.17752 12.2758
1450 1449 4.28027 12.3456 21.3161
1451 1450 -0.663364 12.0666 19.855
1452 1451 -4.38808 12.4973 21.6299
1453 1452 -4.73421 -4.74301 4.08315
1454 1453 -3.12638 12.6814 21.6142
1455 1454 -1.21281 14.6867 33.3547
1456 1455 4.94114 -3.48253 4.62454
1457 1456 -4.99354 13.798 26.504
1458 1457 3.85447 3.38391 8.67976
1459 1458 2.73603 14.6309 32.4097
1460 1459 3.22773 10.9532 17.7526
1461 1460 2.3106 8.8724 14.2625
1462 1461 0.846023 14.7439 33.4067
1463 1462 2.52411 9.53214 15.1747
1464 1463 4.9656 13.5442 24.9329
1465 1464 -2.76003 6.51999 11.3515
1466 1465 0.839294 3.52219e-11 5.89823
1467 1466 -2.65229 9.73899 15.4217
1468 1467 -1.14246 14.803 30.7108
1469 1468 1.58351 14.627 28.6965
1470 1469 4.32285 14.4761 29.8556
1471 1470 4.46231 1.8033 7.38384
1472 1471 -3.65826 -6.93794 2.94908
1473 1472 -2.76297 12.5283 20.5498
1474 1473 -1.79614 1.56127 6.80199
1475 1474 0.784544 12.8951 21.0586
1476 1475 4.33058 -5.55765 3.40677
1477 1476 1.64837 14.9163 30.6087
1478 1477 -4.35943 12.5257 20.8041
1479 1478 -1.91336 12.4015 19.855
1480 1479 -2.43104 14.9523 32.3124
1481 1480 -4.7987 13.2618 22.9942
1482 1481 3.44356 14.847 31.2456
1483 1482 0 15.0377 33.1859
1484 1483 0 -8.83943 2.05942
1485 1484 -0.663364 11.8962 18.5609
1486 1485 0.399366 4.64895 9.0063
1487 1486 2.55734 12.6975 20.5293
1488 1487 3.17805 14.6545 28.1027
1489 1488 2.91509 -0.707359 5.33105
1490 1489 1.74917 3.99471 8.47829
1491 1490 -4.36032 14.6897 29.4132
1492 1491 -2.28044 -4.07435 3.59912
1493 1492 0.0887647 -6.46224 2.61073
1494 1493 0.30879 12.173 18.8902
1495 1494 3.78729 4.70455 9.24868
1496 1495 -2.59703 14.5268 26.3177
1497 1496 -3.52896 14.9792 30.9285
1498 1497 0.506307 -1.70284 4.50666
1499 1498 -1.87871 13.88 23.2667
1500 1499 3.59532 -6.52725 2.71676
1501 1500 1.71322 15.2056 32.521
1502 1501 -4.98373 13.8832 24.5086
1503 1502 -3.024 7.97147 12.3938
1504 1503 -1.82154 12.2862 19.0294
1505 1504 -2.52412 -7.64311 2.26035
1506 1505 -1.5914 14.9214 27.8032
1507 1506 -1.2452 -8.32639 1.98904
1508 1507 -2.08035 1.02438e-08 5.45305
1509 1508 -3.024 8.8559 13.4447
1510 1509 4.33013 12.5 20
1511 1510 -4.33013 12.5 20
1512 1511 0.791757 15.247 30.4359
1513 1512 0.868637 -8.36059 1.91506
1514 1513 -4.77018 -3.57386 3.89326
1515 1514 3.4746 10.7606 16.2218
1516 1515 -3.6535 11.1933 17.0072
1517 1516 2.12583 14.2572 24.1504
1518 1517 2.41297 15.1846 29.4924
1519 1518 2.50659 12.4688 19.2016
1520 1519 -4.20761 12.2732 19.2063
1521 1520 4.77259 14.682 27.509
1522 1521 2.8349 -7.15755 2.2717
1523 1522 -4.43158 3.12253 7.70575
1524 1523 4.87163 13.5936 22.7769
1525 1524 -4.07506 11.9987 18.4164
1526 1525 1.78179 -7.78383 1.93374
1527 1526 3.7554 5.92176 9.9105
1528 1527 2.58211 -2.4102 3.93948
1529 1528 4.99089 -1.41472 4.76388
1530 1529 -3.89547 -5.61797 2.75762
1531 1530 0.399366 5.85486 9.5058
1532 1531 -1.21281 15.5423 32.3485
1533 1532 4.48863 -4.22409 3.32389
1534 1533 -3.707 13.442 21.3648
1535 1534 0.403183 11.5086 16.6623
1536 1535 0.846023 15.6028 32.3966
1537 1536 1.66142 5.25744 8.84428
1538 1537 2.50866 15.5619 31.4581
1539 1538 -0.433905 15.5483 29.4345
1540 1539 -1.12069 13.6409 21.0791
1541 1540 4.28027 12.3456 18.6839
1542 1541 -4.8304 13.5796 21.8777
1543 1542 0.399366 6.89039 10.3004
1544 1543 -2.41334 -1.70284 4.06148
1545 1544 1.37534 11.7854 16.9915
1546 1545 -2.31504 -2.91368 3.45337
1547 1546 0.173321 -3.40568 3.11509
1548 1547 -4.41258 15.2276 28.3182
1549 1548 4.1825 15.3322 28.9234
1550 1549 0.403183 11.0091 15.4564
1551 1550 -4.86441 1.6498 6.25517
1552 1551 -0.271092 13.5141 20.3843
1553 1552 -4.00483 14.135 22.8041
1554 1553 -1.19117 -4.91454 2.459
1555 1554 1.65582 15.6903 29.5223
1556 1555 2.88384 14.0181 21.9628
1557 1556 -4.91611 14.8174 25.7999
1558 1557 -2.44119 15.7493 31.2652
1559 1558 1.81534 -4.39229 2.64863
1560 1559 0 -7.65367 1.52241
1561 1560 0 15.8671 32.1752
1562 1561 -3.67803 13.4434 20.5498
1563 1562 3.62031 9.00479 12.7649
1564 1563 -4.80341 -2.42167 3.79164
1565 1564 -2.82843 13.3166 19.855
1566 1565 2.91895 1.22461 5.4898
1567 1566 0.989232 -4.97533 2.28679
1568 1567 3.7554 8.05661 11.5173
1569 1568 3.24243 15.7423 30.2884
1570 1569 -3.53734 15.6886 29.8675
1571 1570 1.61996 6.40227 9.4774
1572 1571 -4.95347 -1.15807 4.36228
1573 1572 -4.9914 14.3254 23.3282
1574 1573 0.819013 3.35486 6.78504
1575 1574 -4.99999 2.04523e-08 5.00786
1576 1575 1.31796 13.7962 20.6246
1577 1576 2.47016 15.7009 28.4867
1578 1577 -2.70089 13.066 19.0632
1579 1578 4.22864 12.0426 17.3445
1580 1579 -4.81555 13.6183 20.9929
1581 1580 -2.55566 -6.4234 1.80292
1582 1581 -1.61197 15.5228 26.6383
1583 1582 0.334257 9.39609 12.6557
1584 1583 3.78729 9.8574 13.6317
1585 1584 1.72067 16.0186 31.4578
1586 1585 -1.27873 -7.10598 1.48294
1587 1586 0.334257 10.1907 13.6913
1588 1587 -0.249998 15.2911 25.0638
1589 1588 3.45735 -5.37889 2.18217
1590 1589 0.769214 -4.13686e-10 4.43171
1591 1590 0.791757 15.9738 29.3482
1592 1591 3.09075 13.5986 20.0953
1593 1592 0.892063 -7.13681 1.40259
1594 1593 1.66524 11.4451 15.5437
1595 1594 4.89148 13.9007 21.3275
1596 1595 0.795455 13.1265 18.4857
1597 1596 1.55485 8.90797 11.8327
1598 1597 -3.92756 -4.3937 2.44732
1599 1598 2.67412 -5.98578 1.73079
1600 1599 4.90947 15.0903 25.157
1601 1600 1.80514 -6.54499 1.45848
1602 1601 -4.55858 4.83831 7.99221
1603 1602 -1.81642 4.91612 7.6888
1604 1603 -4.34856 12.1539 16.9441
1605 1604 2.57721 8.105 10.8364
1606 1605 4.22331 15.7967 27.9324
1607 1606 1.38087 9.92079 12.8953
1608 1607 -1.22348 16.3289 31.2832
1609 1608 2.84501 -0.707359 3.86453
1610 1609 -2.2037 15.5388 25.2031
1611 1610 -4.46258 15.6804 27.2016
1612 1611 -0.454477 16.1497 28.2697
1613 1612 0.9075 15.918 26.6952
1614 1613 0.853473 16.3936 31.3279
1615 1614 -1.98206 1.21083 4.84494
1616 1615 4.68801 -2.02361 3.38423
1617 1616 4.9956 0.507638 4.79877
1618 1617 0.508014 15.052 22.8762
1619 1618 1.59631 10.6266 13.7786
1620 1619 2.0462 -3.04051 2.60444
1621 1620 3.04001 13.37 18.7676
1622 1621 2.51573 16.3093 30.3589
1623 1622 -3.02593 14.3867 21.0996
1624 1623 4.84144 13.7508 20
1625 1624 -4.84144 13.7508 20
1626 1625 0.436227 -1.70284 3.04014
1627 1626 0.0866605 -4.29103 1.89829
1628 1627 -2.17633 14.26 20.4048
1629 1628 -2.15043 9.79487e-09 3.98653
1630 1629 -4.01128 14.5238 21.6193
1631 1630 1.67097 16.3078 28.3399
1632 1631 3.29998 16.2915 29.2945
1633 1632 -1.23469 -3.64656 2.13364
1634 1633 2.50204 15.9455 26.1014
1635 1634 -2.45132 16.4695 30.1726
1636 1635 -3.615 16.2582 28.731
1637 1636 -1.32673 14.1332 19.7101
1638 1637 0 16.6317 31.1079
1639 1638 0 -6.41932 1.05819
1640 1639 -4.99662 14.6609 22.1391
1641 1640 -0.459102 8.37511 10.4954
1642 1641 -0.587275 14.542 20.6451
1643 1642 3.69711 -4.0162 2.07829
1644 1643 1.02161 -3.68621 1.94136
1645 1644 -2.95046 13.1331 17.5476
1646 1645 2.5175 12.7003 16.6286
1647 1646 4.63379 5.79938 8.22943
1648 1647 -4.81555 13.6183 19.0071
1649 1648 0.262327 14.4153 19.9503
1650 1649 -2.59929 -5.15522 1.43107
1651 1650 0.791757 16.5523 28.1751
1652 1651 1.72812 16.7537 30.3481
1653 1652 -1.27873 -5.85529 1.05027
1654 1653 -4.75021 13.3113 18.1487
1655 1654 -4.0018 -3.15841 2.28171
1656 1655 3.41726 14.9192 21.5289
1657 1656 4.98314 15.1412 22.8671
1658 1657 -4.97946 2.84301 5.73331
1659 1658 0.892063 -5.88069 0.968052
1660 1659 0.506307 1.70284 4.50666
1661 1660 4.35641 16.1893 26.5227
1662 1661 4.45019 11.496 14.5545
1663 1662 2.70437 -4.69975 1.37839
1664 1663 1.85138 14.6973 20.1906
1665 1664 4.71511 -0.741228 3.35284
1666 1665 -4.75651 15.835 24.7818
1667 1666 -0.260181 13.7456 17.8114
1668 1667 2.71626 6.25455 7.95064
1669 1668 1.83754 -5.25657 1.06604
1670 1669 -4.6691 6.5638 8.53464
1671 1670 -4.01297 14.6934 20.5498
1672 1671 2.58027 16.8616 29.3549
1673 1672 4.92426 4.23272 6.51573
1674 1673 -4.57418 12.1329 15.3852
1675 1674 -2.12913 3.26411 5.41042
1676 1675 -2.11555 16.4447 25.9477
1677 1676 -4.95347 1.15807 4.36228
1678 1677 -3.16336 14.5666 19.855
1679 1678 -1.22348 17.0423 30.1736
1680 1679 -1.44941 -2.34584 2.10696
1681 1680 -1.93518 6.63676 8.10325
1682 1681 -1.39722 15.7978 22.8967
1683 1682 3.3568 16.7748 28.2769
1684 1683 2.89867 4.57947 6.37662
1685 1684 0.853473 17.1098 30.2139
1686 1685 2.84887 1.22461 4.02328
1687 1686 -4.99916 14.8705 21.0629
1688 1687 3.91909 -2.67534 2.0938
1689 1688 4.9986 2.44923 5.08138
1690 1689 1.32887 14.0277 18.0517
1691 1690 2.30911 -1.33767 2.52949
1692 1691 -1.88391 12.7454 15.649
1693 1692 0.0866605 -3.0081 1.6431
1694 1693 3.42569 14.8486 20.0953
1695 1694 -3.6316 16.8043 27.5848
1696 1695 4.99585 15.1387 21.4034
1697 1696 4.63379 8.21875 9.77105
1698 1697 -2.47192 17.1136 29.0222
1699 1698 -4.15341 -1.89924 2.31797
1700 1699 2.60731 16.1751 23.7805
1701 1700 -3.16167 14.3971 18.7855
1702 1701 0.699134 -8.62594e-10 2.96519
1703 1702 0 -5.17638 0.681483
1704 1703 0 17.3205 30
1705 1704 1.06416 -2.36147 1.77872
1706 1705 -4.98806 3.90503 5.87523
1707 1706 1.04143 15.9531 22.4422
1708 1707 0.798731 6.70972 7.67186
1709 1708 -4.53263 -0.595461 2.89962
1710 1709 -1.95283 11.927 13.8839
1711 1710 -2.6427 -3.88743 1.15218
1712 1711 -3.35092 16.0455 23.0361
1713 1712 4.93524 14.0943 18.2883
1714 1713 1.79414 16.9919 26.4854
1715 1714 -4.11104 16.7592 26.1325
1716 1715 4.63379 10.2668 11.8286
1717 1716 -1.32531 -4.57712 0.714559
1718 1717 0.806367 13.358 15.9128
1719 1718 1.74328 17.4144 29.1808
1720 1719 0.733622 9.21541 10.0272
1721 1720 2.98443 -3.33636 1.28341
1722 1721 0.924628 -4.59851 0.624457
1723 1722 -3.78305 15.6899 21.4794
1724 1723 -2.05214 1.21083 3.37842
1725 1724 2.61574 16.1045 22.3469
1726 1725 -5 15 20
1727 1726 5 15 20
1728 1727 3.68721 11.7189 13.4178
1729 1728 3.28133 14.4377 18.0914
1730 1729 3.55758 8.17574 9.00381
1731 1730 1.75598 8.41245 9.03081
1732 1731 -4.87834 13.4681 16.5469
1733 1732 4.61394 16.4243 24.0926
1734 1733 -4.77089 8.43877 9.45771
1735 1734 -4.91037 15.815 22.0123
1736 1735 2.65115 10.9939 12.1055
1737 1736 1.8699 -3.96675 0.767635
1738 1737 -4.71845 16.2865 23.48
1739 1738 0.73744 12.5396 14.1476
1740 1739 2.59455 17.4577 28.1682
1741 1740 -4.73278 11.4045 12.9887
1742 1741 3.54722 17.2151 26.839
1743 1742 3.67351 10.191 11.1092
1744 1743 -1.2452 17.6788 29.0102
1745 1744 4.91991 13.7451 16.8177
1746 1745 3.97025 -1.32022 2.00911
1747 1746 0.0866605 -1.70284 1.55754
1748 1747 2.3597 -2.4328e-08 2.49619
1749 1748 4.74753 1.28346 3.48103
1750 1749 0.868637 17.7514 29.0472
1751 1750 -1.18651 -0.642997 2.03201
1752 1751 -4.99916 14.8705 18.9371
1753 1752 -1.13049 17.4406 26.2684
1754 1753 2.58596 2.92746 4.09823
1755 1754 -2.09237 10.9515 11.5356
1756 1755 -2.49247 17.6723 27.8429
1757 1756 0.231484 17.2089 24.6939
1758 1757 -2.86085 -2.57308 1.07343
1759 1758 1.69087 10.9181 11.3862
1760 1759 4.71632 16.4215 22.8101
1761 1760 3.23058 14.209 16.7636
1762 1761 0.668514 11.7211 12.3825
1763 1762 -2.79365 8.12148 8.2983
1764 1763 0 17.9406 28.8394
1765 1764 0 -3.88905 0.381762
1766 1765 0.994953 17.5988 26.3386
1767 1766 0.486026 5.0577 5.39347
1768 1767 2.71324 10.1152 10.3898
1769 1768 0.436227 1.70284 3.04014
1770 1769 -4.44889 0.596869 2.72835
1771 1770 1.97964 17.3653 25.0422
1772 1771 -3.67803 15.9434 20.5498
1773 1772 1.32707 -0.658628 1.70377
1774 1773 -1.96774 5.72636 5.8775
1775 1774 -4.99662 14.6609 17.8609
1776 1775 -4.80341 2.42167 3.79164
1777 1776 -2.82843 15.8166 19.855
1778 1777 -4.85326 10.1819 10.6887
1779 1778 4.99846 5.84129 6.31901
1780 1779 3.02251 -2.01874 1.12463
1781 1780 -4.99926 5.8145 6.2663
1782 1781 -1.32531 -3.28039 0.452178
1783 1782 1.75842 17.9887 27.9833
1784 1783 -1.72222 17.4566 24.8332
1785 1784 -4.89096 16.0145 20.8781
1786 1785 -0.0597367 8.19443 7.86691
1787 1786 0.924628 -3.29572 0.360851
1788 1787 0.4529 15.2543 17.9464
1789 1788 0.115742 17.8433 26.1738
1790 1789 3.72779 17.5218 25.3905
1791 1790 -3.11765 17.7892 26.4105
1792 1791 4.02026 -4.77935e-08 2.0272
1793 1792 4.92532 4.05784 4.66693
1794 1793 1.9125 -2.63293 0.557691
1795 1794 4.94762 13.2422 14.6605
1796 1795 2.81351 17.9134 26.7227
1797 1796 2.76462 6.23513 6.0414
1798 1797 -3.72851 15.7676 19.3471
1799 1798 -2.847 16.7325 21.7502
1800 1799 2.86474 14.3936 16.0915
1801 1800 4.78591 16.3977 21.2784
1802 1801 -2.31504 2.91368 3.45337
1803 1802 -1.2452 18.2376 27.8175
1804 1803 -2.87891 15.6408 18.6523
1805 1804 2.16406 17.4336 23.7071
1806 1805 -3.00171 15.0803 17.3896
1807 1806 2.04195 15.5363 18.1867
1808 1807 0.868637 18.3125 27.8496
1809 1808 -0.124846 10.7001 10.2223
1810 1809 -3.07215 -1.28599 1.09884
1811 1810 2.27916 1.59722 2.53448
1812 1811 -1.02848 0.644175 1.91836
1813 1812 4.70692 2.82164 3.55362
1814 1813 -2.24579 7.15595 6.53731
1815 1814 -3.67591 17.7043 24.9725
1816 1815 4.98135 15.3253 18.1934
1817 1816 -2.88573 9.93054 9.37531
1818 1817 0.349567 -4.31291e-10 1.48259
1819 1818 -1.51297 17.1078 21.8551
1820 1819 0 18.4776 27.6537
1821 1820 0 -2.61052 0.171103
1822 1821 -4.77018 3.57386 3.89326
1823 1822 1.01831 18.0476 25.0824
1824 1823 4.84144 16.2492 20
1825 1824 -4.84144 16.2492 20
1826 1825 1.32707 0.658628 1.70377
1827 1826 -4.16211 17.4469 23.3771
1828 1827 3.91945 17.6469 24.0446
1829 1828 -4.54017 16.9931 21.8591
1830 1829 1.51945 14.8667 16.0477
1831 1830 3.61626 15.6877 18.0914
1832 1831 3.0884 -0.64812 1.07895
1833 1832 -4.99457 6.99239 6.46675
1834 1833 -1.56305 -1.97033 0.349125
1835 1834 4.99976 7.95975 7.34405
1836 1835 -4.99854 14.077 15.18
1837 1836 -4.99983 7.81401 7.14735
1838 1837 1.78179 18.4835 26.7333
1839 1838 0.48813 7.22891 6.10592
1840 1839 -2.76297 16.8584 20.5498
1841 1840 0.925691 17.2631 21.4006
1842 1841 0.173321 3.40568 3.11509
1843 1842 -1.93516 14.6927 15.491
1844 1843 2.82833 13.6318 13.7869
1845 1844 0.967602 -1.97764 0.193003
1846 1845 0.115742 18.2637 24.9351
1847 1846 -1.91336 16.7317 19.855
1848 1847 -2.21265 13.8529 14.0007
1849 1848 -2.28044 4.07435 3.59912
1850 1849 -1.93067 18.5254 26.4381
1851 1850 1.14182 8.26939 6.93479
1852 1851 3.43495 17.214 21.4295
1853 1852 2.8349 18.3202 25.4674
1854 1853 1.95501 -1.31726 0.44236
1855 1854 -4.86528 16.1133 18.8704
1856 1855 2.73635 8.48318 7.19827
1857 1856 4.98979 12.086 11.6664
1858 1857 -0.324309 17.0137 20.0953
1859 1858 4.09664 17.6583 22.7203
1860 1859 3.94114 1.57287 1.99164
1861 1860 2.45191 4.58311 3.76301
1862 1861 2.17569 17.0137 20.0953
1863 1862 -1.2183 18.1436 23.5473
1864 1863 0.892063 18.7928 26.605
1865 1864 -4.04206 1.90815 2.15866
1866 1865 -0.918205 9.67915 8.06197
1867 1866 -2.91607 -0.00336912 0.938411
1868 1867 2.75941 12.8134 12.0218
1869 1868 -4.73421 4.74301 4.08315
1870 1869 -4.99966 13.2681 13.1286
1871 1870 3.78177 12.0104 11.0254
1872 1871 -4.99851 13.8976 14.0392
1873 1872 1.05069 18.3184 23.7764
1874 1873 4.99976 10.4412 9.299
1875 1874 0.477625 14.4655 14.2645
1876 1875 -4.88708 15.8949 17.7265
1877 1876 2.09907 9.97213 8.29375
1878 1877 -1.29138 2.34702 1.99331
1879 1878 -4.44015 17.2739 20.9294
1880 1879 0 18.9418 26.4193
1881 1880 0 -1.29196 0.0417728
1882 1881 2.01626 3.30006 2.60943
1883 1882 0.0866605 1.70284 1.55754
1884 1883 -4.93907 15.3911 16.5267
1885 1884 4.7739 16.4314 18.6524
1886 1885 3.0884 0.64812 1.07895
1887 1886 0.925691 17.3486 20.0953
1888 1887 3.6936 10.1859 8.55722
1889 1888 0.684939 9.74054 7.80276
1890 1889 -1.56305 -0.651439 0.26134
1891 1890 3.75 17.1651 20
1892 1891 0.115742 18.5189 23.6522
1893 1892 3.074 18.4926 24.1079
1894 1893 1.80514 18.8863 25.471
1895 1894 4.92311 15.4291 16.2703
1896 1895 1.06416 2.36147 1.77872
1897 1896 4.21765 17.6348 21.3369
1898 1897 -4.98951 9.83923 8.25232
1899 1898 -1.9785 12.8932 11.5081
1900 1899 0.408699 13.647 12.4994
1901 1900 0.967602 -0.651709 0.10519
1902 1901 4.73051 5.76055 4.41094
1903 1902 -3.19812 18.4752 23.7073
1904 1903 -1.93067 18.914 25.1865
1905 1904 0.175425 5.57689 3.82753
1906 1905 1.36574 18.2695 22.3469
1907 1906 1.95501 1.49961e-08 0.39805
1908 1907 -2.27834 6.24555 4.31156
1909 1908 2.26708 15.4399 15.2611
1910 1909 -4.0018 3.15841 2.28171
1911 1910 -3.7633 18.1665 22.1392
1912 1911 -4.98876 12.0946 10.572
1913 1912 -0.370338 8.71363 6.30097
1914 1913 -2.14106 11.4766 9.31117
1915 1914 0.61983 12.2462 10.1581
1916 1915 -1.0488 16.9377 18.0914
1917 1916 4.37056 4.52575 3.16925
1918 1917 0.892063 19.1891 25.3456
1919 1918 3.57782 15.9022 16.2265
1920 1919 0.925691 17.2631 18.7901
1921 1920 1.64219 11.4433 9.16172
1922 1921 4.33013 17.5 20
1923 1922 -4.33013 17.5 20
1924 1923 -2.75609 1.28835 0.871531
1925 1924 3.85919 3.19444 2.10377
1926 1925 2.28451 14.9632 14.0798
1927 1926 -2.77657 9.40146 6.93277
1928 1927 0.28335 9.75411 7.12984
1929 1928 -4.6083 6.0141 4.16352
1930 1929 -1.23469 3.64656 2.13364
1931 1930 2.45402 6.75432 4.47546
1932 1931 3.28133 16.9377 18.0914
1933 1932 0 19.3185 25.1764
1934 1933 0 1.25607e-14 3.9443e-30
1935 1934 -4.96096 10.893 8.80008
1936 1935 1.78431 4.39965 2.62036
1937 1936 0.0866605 3.0081 1.6431
1938 1937 3.10771 7.79481 5.30433
1939 1938 3.10246 18.7103 22.8161
1940 1939 -4.95285 11.5947 9.43664
1941 1940 -1.38671 0.648381 0.20676
1942 1941 1.02161 3.68621 1.94136
1943 1942 1.83754 19.2044 24.1616
1944 1943 -1.09928 16.7619 16.8886
1945 1944 4.88986 14.8575 13.9458
1946 1945 2.23253 16.3754 16.1827
1947 1946 2.9845 2.27973 1.1256
1948 1947 0.967602 0.651709 0.10519
1949 1948 -4.38164 17.3675 18.8054
1950 1949 -1.22208 16.2014 15.626
1951 1950 1.95501 1.31726 0.44236
1952 1951 -3.92756 4.3937 2.44732
1953 1952 -3.60528 18.428 21.1594
1954 1953 4.70294 8.07147 5.38268
1955 1954 4.61169 16.6016 16.6716
1956 1955 -1.19117 4.91454 2.459
1957 1956 3.17399 11.9949 9.12679
1958 1957 0.924628 19.4987 24.0447
1959 1958 -2.63268 10.5744 7.44199
1960 1959 -1.33897 19.4454 23.8218
1961 1960 -0.173529 11.2253 7.99782
1962 1961 4.19912 5.61722 3.19991
1963 1962 -2.13971 7.52549 4.44712
1964 1963 0.177529 7.7481 4.53998
1965 1964 -2.6996 2.57775 0.965168
1966 1965 -4.43108 17.1485 17.5945
1967 1966 0.0866605 4.29103 1.89829
1968 1967 3.27158 18.7292 21.395
1969 1968 -2.66807 19.0782 22.4007
1970 1969 -2.2287 8.43593 5.17178
1971 1970 3.63567 4.28724 2.07304
1972 1971 4.19441 17.6655 18.5911
1973 1972 0 1.29196 0.0417728
1974 1973 0.831217 8.78858 5.36885
1975 1974 0 19.6182 23.8891
1976 1975 0.989232 4.97533 2.28679
1977 1976 -4.56278 16.6426 16.3192
1978 1977 -1.57502 9.47642 6.00065
1979 1978 -4.45695 7.30289 4.35427
1980 1979 4.8503 13.9056 11.661
1981 1980 1.19071 15.9742 14.3995
1982 1981 -4.67668 16.0275 15.0692
1983 1982 4.3215 6.7052 3.81942
1984 1983 3.13953 17.0405 16.656
1985 1984 -0.133736 17.8527 18.0914
1986 1985 1.8699 19.4279 22.859
1987 1986 -1.38671 1.96754 0.294124
1988 1987 1.4849 9.82907 6.19772
1989 1988 -4.55048 8.23628 5.0462
1990 1989 1.78642 6.57085 3.3328
1991 1990 2.94617 3.60152 1.30391
1992 1991 2.36626 17.8527 18.0914
1993 1992 -4.63494 9.12377 5.80358
1994 1993 3.07944 10.0429 6.4612
1995 1994 -3.89547 5.61797 2.75762
1996 1995 0.967602 1.97764 0.193003
1997 1996 -2.2639 15.8002 13.8427
1998 1997 3.53553 18.5355 20
1999 1998 -3.53553 18.5355 20
2000 1999 2.49959 14.7393 12.1386
2001 2000 1.9125 2.63293 0.557691
2002 2001 4.51092 16.5418 15.4478
2003 2002 4.67397 10.2567 6.72468
2004 2003 4.77104 12.3227 9.03374
2005 2004 1.95266 7.69964 3.94039
2006 2005 0.924628 19.7235 22.7463
2007 2006 -1.33897 19.655 22.5315
2008 2007 -2.6427 3.88743 1.15218
2009 2008 -2.58444 19.2435 21.1902
2010 2009 2.71072 13.3385 9.79734
2011 2010 -0.217774 17.7268 16.891
2012 2011 2.60635 8.74013 4.76926
2013 2012 -1.43113 10.6493 6.50986
2014 2013 -4.57363 15.8611 13.8259
2015 2014 4.52189 16.1584 14.3019
2016 2015 0 19.8289 22.6105
2017 2016 0 2.61052 0.171103
2018 2017 3.3953 5.39361 2.12563
2019 2018 -3.60528 18.428 18.8406
2020 2019 2.98016 16.9486 15.3961
2021 2020 2.18848 19.4443 21.413
2022 2021 -2.23832 14.8192 11.6249
2023 2022 -1.18906 7.08575 3.17145
2024 2023 1.02803 11.3002 7.0657
2025 2024 4.04653 17.7057 17.1292
2026 2025 0.148884 15.573 12.6162
2027 2026 0.0887647 6.46224 2.61073
2028 2027 -1.32531 3.28039 0.452178
2029 2028 -4.50169 10.3103 6.26274
2030 2029 -2.15345 15.5815 12.5949
2031 2030 2.66886 4.70486 1.35635
2032 2031 0.924628 3.29572 0.360851
2033 2032 -4.62551 14.0654 10.6337
2034 2033 0.991336 7.14654 2.99923
2035 2034 0.360015 14.1722 10.2749
2036 2035 4.27759 9.06358 4.92619
2037 2036 1.8699 3.96675 0.767635
2038 2037 3.56557 6.53601 2.68745
2039 2038 2.05122 17.9017 16.6619
2040 2039 -2.02718 13.4184 9.28368
2041 2040 -3.65272 6.94794 2.94674
2042 2041 -3.67851 18.2262 17.5775
2043 2042 -4.54473 14.8646 11.5782
2044 2043 1.24918 19.7979 21.3144
2045 2044 -0.161565 17.4554 15.4067
2046 2045 3.27158 18.7292 18.605
2047 2046 -1.24918 19.7985 21.3045
2048 2047 1.11626 18.1021 16.7861
2049 2048 2.5 19.3301 20
2050 2049 -2.5 19.3301 20
2051 2050 -4.45579 15.59 12.5736
2052 2051 -2.59929 5.15522 1.43107
2053 2052 -1.15747 8.2962 3.67348
2054 2053 3.72779 7.65119 3.34079
2055 2054 1.93834 16.5474 13.6128
2056 2055 0 3.88905 0.381762
2057 2056 4.44007 15.2836 11.8963
2058 2057 -1.88801 12.1205 7.37784
2059 2058 0 19.9582 21.292
2060 2059 2.37109 10.0081 5.20238
2061 2060 0.0887647 7.70088 3.03119
2062 2061 3.8924 17.6638 15.878
2063 2062 2.55982 11.8519 7.03077
2064 2063 -4.46632 13.5989 9.39092
2065 2064 0.571146 12.7714 7.93367
2066 2065 -4.34716 11.4696 6.822
2067 2066 2.01884 17.6308 15.3558
2068 2067 -1.32531 4.57712 0.714559
2069 2068 0.967975 8.37536 3.51958
2070 2069 -1.8536 12.8967 8.05604
2071 2070 2.63847 5.99132 1.70908
2072 2071 1.95577 16.0707 12.4315
2073 2072 -3.62721 8.12484 3.44486
2074 2073 0.924628 4.59851 0.624457
2075 2074 -1.1369 9.42491 4.34095
2076 2075 1.11626 17.8469 15.5032
2077 2076 1.62166 9.41585 4.34846
2078 2077 4.39653 14.0305 9.74061
2079 2078 2.32762 10.9029 5.81018
2080 2079 1.83754 5.25657 1.06604
2081 2080 4.09971 10.2948 5.40285
2082 2081 -2.58444 19.2435 18.8098
2083 2082 -3.63292 18.0258 16.1355
2084 2083 -4.31318 12.2652 7.4766
2085 2084 -0.48321 10.4654 5.16982
2086 2085 -3.77617 9.11277 4.15651
2087 2086 1.24918 19.8414 20
2088 2087 -1.24918 19.8414 20
2089 2088 4.3057 14.8162 10.6087
2090 2089 -2.55566 6.4234 1.80292
2091 2090 4.24206 12.1158 7.16983
2092 2091 -3.83893 17.4433 14.7943
2093 2092 0.0887647 8.87405 3.60974
2094 2093 -4.27834 13.0221 8.1784
2095 2094 -1.20339 17.0542 13.6234
2096 2095 2.8349 7.15755 2.2717
2097 2096 4.06714 11.1652 5.99831
2098 2097 3.06837 18.7258 17.1081
2099 2098 1.75778 15.5629 11.1197
2100 2099 -0.473069 11.4901 5.98876
2101 2100 0.742452 9.91453 4.43861
2102 2101 0 20 20
2103 2102 0 5.17638 0.681483
2104 2103 2.18848 19.4443 18.587
2105 2104 3.5001 8.93235 3.71869
2106 2105 3.72779 17.5218 14.6095
2107 2106 1.60651 10.5612 5.03301
2108 2107 -2.66807 19.0782 17.5993
2109 2108 -1.27873 5.85529 1.05027
2110 2109 -3.76035 10.2003 4.81194
2111 2110 0.977014 17.2296 13.5726
2112 2111 -3.81503 17.0695 13.594
2113 2112 2.10294 13.323 7.89874
2114 2113 0.892063 5.88069 0.968052
2115 2114 -1.17179 16.6226 12.3867
2116 2115 1.80514 6.54499 1.45848
2117 2116 1.59906 11.6015 5.86832
2118 2117 0.0744418 17.4457 13.7199
2119 2118 3.74527 17.0896 13.4202
2120 2119 0.742452 11.0021 5.16533
2121 2120 1.96892 14.1621 8.77844
2122 2121 -2.52412 7.64311 2.26035
2123 2122 -1.24918 19.7985 18.6955
2124 2123 1.24918 19.7979 18.6856
2125 2124 -1.15122 16.0212 11.2218
2126 2125 3.03974 18.5025 15.8149
2127 2126 2.81351 8.3789 2.79892
2128 2127 0.742452 11.9856 6.02779
2129 2128 0.953653 16.7808 12.3165
2130 2129 3.76265 16.5685 12.2468
2131 2130 0 19.9582 18.708
2132 2131 0 6.41932 1.05819
2133 2132 0.938503 16.1633 11.134
2134 2133 0.0744418 17.0253 12.4813
2135 2134 -2.61205 18.869 16.1217
2136 2135 -1.27873 7.10598 1.48294
2137 2136 3.25727 10.187 4.20704
2138 2137 -3.62631 16.7569 12.2977
2139 2138 -0.929948 12.9613 6.85674
2140 2139 -0.940089 14.6205 8.88055
2141 2140 -3.52769 11.4054 5.37904
2142 2141 1.8699 19.4279 17.141
2143 2142 0.892063 7.13681 1.40259
2144 2143 1.78179 7.78383 1.93374
2145 2144 -0.929948 13.8618 7.81063
2146 2145 -3.75178 15.4111 10.1219
2147 2146 -2.49247 8.8443 2.80698
2148 2147 0.0744418 16.4467 11.3081
2149 2148 -1.33897 19.655 17.4685
2150 2149 -3.74395 14.6984 9.07471
2151 2150 -3.60968 16.2022 11.1539
2152 2151 1.14218 13.0726 6.73629
2153 2152 -3.51929 12.3929 6.19483
2154 2153 1.14963 14.7625 8.79279
2155 2154 3.214 11.0976 4.78756
2156 2155 3.57041 16.1185 10.9196
2157 2156 2.8349 18.3202 14.5326
2158 2157 3.63474 13.8746 7.86381
2159 2158 0.924628 19.7235 17.2537
2160 2159 1.14218 13.9885 7.70634
2161 2160 2.53841 9.64449 3.27361
2162 2161 0 19.8289 17.3895
2163 2162 0 7.65367 1.52241
2164 2163 0.285573 15.0459 8.96684
2165 2164 -3.46984 13.2033 6.89907
2166 2165 -2.55566 18.5355 14.6306
2167 2166 3.40928 12.9806 6.59834
2168 2167 -1.2452 8.32639 1.98904
2169 2168 0.285573 13.4568 6.89577
2170 2169 3.50317 14.7459 8.71668
2171 2170 1.83754 19.2044 15.8384
2172 2171 -3.46984 14.0742 7.83953
2173 2172 -2.47192 9.99104 3.4333
2174 2173 3.17033 11.9767 5.42264
2175 2174 0.285573 14.3192 7.87922
2176 2175 1.75842 9.00263 2.49919
2177 2176 0.868637 8.36059 1.91506
2178 2177 -1.33897 19.4454 16.1782
2179 2178 2.81351 17.9134 13.2773
2180 2179 3.36669 15.5528 9.62322
2181 2180 2.52404 10.7808 3.97226
2182 2181 0.924628 19.4987 15.9553
2183 2182 -2.52412 18.1494 13.3884
2184 2183 0 19.6182 16.1109
2185 2184 0 8.83943 2.05942
2186 2185 2.83505 17.3984 12.0745
2187 2186 -2.45132 11.1017 4.14191
2188 2187 -1.2452 9.50841 2.5841
2189 2188 1.80514 18.8863 14.529
2190 2189 1.74328 10.1666 3.14212
2191 2190 0.868637 9.54747 2.51256
2192 2191 2.47564 11.6855 4.58434
2193 2192 2.82121 16.8176 10.8867
2194 2193 -1.27873 19.1062 14.6775
2195 2194 -2.49247 17.6723 12.1571
2196 2195 -2.44119 12.1524 4.92461
2197 2196 0.892063 19.1891 14.6544
2198 2197 2.73603 13.7372 6.60771
2199 2198 0 10 2.67949
2200 2199 0 19.3185 14.8236
2201 2200 2.46854 12.7216 5.42226
2202 2201 1.78179 18.4835 13.2667
2203 2202 -1.22348 10.6492 3.25075
2204 2203 1.72812 11.2933 3.8683
2205 2204 2.73603 14.6309 7.59027
2206 2205 -2.47192 17.1136 10.9778
2207 2206 -2.43104 13.1511 5.7798
2208 2207 0.853473 10.6914 3.18441
2209 2208 2.58591 16.2261 9.58803
2210 2209 -1.27873 18.7117 13.4235
2211 2210 2.57889 15.4737 8.49253
2212 2211 -2.45132 16.4695 9.82742
2213 2212 -2.43104 14.0845 6.70363
2214 2213 0.892063 18.7928 13.395
2215 2214 -2.44119 15.7493 8.73475
2216 2215 -2.43104 14.9523 7.68758
2217 2216 1.75842 17.9887 12.0167
2218 2217 1.72067 12.3601 4.66687
2219 2218 0 18.9418 13.5807
2220 2219 0 11.1079 3.36826
2221 2220 -1.22348 11.7413 3.99734
2222 2221 0.853473 11.7878 3.93395
2223 2222 -1.2452 18.2376 12.1825
2224 2223 1.74328 17.4144 10.8192
2225 2224 1.71322 13.3739 5.53891
2226 2225 0.868637 18.3125 12.1504
2227 2226 -1.21281 12.7821 4.81225
2228 2227 0 12.1752 4.13293
2229 2228 0 18.4776 12.3463
2230 2229 1.72812 16.7537 9.65191
2231 2230 1.71322 14.3231 6.47839
2232 2231 -1.2452 17.6788 10.9898
2233 2232 0.846023 12.8318 4.75317
2234 2233 1.72067 16.0186 8.54216
2235 2234 1.71322 15.2056 7.47901
2236 2235 -1.21281 13.7647 5.69672
2237 2236 0.868637 17.7514 10.9528
2238 2237 -1.22348 17.0423 9.8264
2239 2238 0 17.9406 11.1606
2240 2239 0 13.1859 4.96228
2241 2240 0.846023 13.8182 5.64108
2242 2241 -1.21281 14.6867 6.64526
2243 2242 -1.22348 16.3289 8.71682
2244 2243 -1.21281 15.5423 7.65147
2245 2244 0.853473 17.1098 9.7861
2246 2245 0.846023 14.7439 6.59331
2247 2246 0 14.1421 5.85786
2248 2247 0 17.3205 10
2249 2248 0.853473 16.3936 8.67213
2250 2249 0.846023 15.6028 7.60343
2251 2250 0 16.6317 8.89211
2252 2251 0 15.0377 6.81414
2253 2252 0 15.8671 7.82477
2254 end coordinates
2255
2256 Elements
2257 1 1279 1183 1286 1189 1233 1234 1287 1230 1181 1231
2258 2 106 135 177 113 116 158 147 105 119 141
2259 3 2173 2203 2136 1987 2191 2180 2154 2078 2106 2059
2260 4 414 499 418 387 455 454 417 398 446 401
2261 5 1524 1331 1383 1636 1421 1359 1441 1577 1478 1503
2262 6 1568 1651 1682 1468 1621 1671 1631 1517 1554 1576
2263 7 1279 1155 1183 1189 1218 1170 1233 1230 1167 1181
2264 8 488 499 414 387 494 455 451 437 446 398
2265 9 1510 1331 1524 1636 1416 1421 1519 1564 1478 1577
2266 10 1286 1279 1189 1444 1287 1230 1231 1370 1363 1294
2267 11 49 135 106 113 84 116 74 71 119 105
2268 12 2224 2203 2173 1987 2217 2191 2200 2116 2106 2078
2269 13 1408 1252 1279 1189 1324 1265 1347 1274 1215 1230
2270 14 1130 1251 1201 1059 1193 1224 1165 1096 1151 1122
2271 15 96 195 135 113 149 162 109 104 152 119
2272 16 2227 2198 2203 1987 2219 2207 2221 2119 2100 2106
2273 17 1251 1409 1336 1059 1323 1379 1292 1151 1210 1182
2274 18 1252 1129 1155 1189 1194 1146 1206 1215 1152 1167
2275 19 2246 2227 2224 1987 2239 2232 2240 2127 2119 2116
2276 20 23 96 49 113 54 65 32 56 104 71
2277 21 1451 1510 1639 1622 1477 1579 1541 1533 1561 1629
2278 22 579 488 596 520 535 545 589 551 504 562
2279 23 1559 1408 1444 1288 1483 1431 1512 1423 1338 1362
2280 24 1015 1130 1083 1059 1075 1109 1052 1035 1096 1064
2281 25 2198 2162 2175 1963 2184 2176 2190 2092 2060 2068
2282 26 195 321 240 236 250 277 219 211 271 232
2283 27 499 418 387 506 454 401 446 502 456 444
2284 28 1331 1383 1636 1268 1359 1503 1478 1283 1308 1450
2285 29 2252 2246 2234 2064 2251 2245 2249 2174 2168 2159
2286 30 1 23 9 37 4 10 2 8 18 17
2287 31 1409 1560 1500 1305 1482 1535 1461 1352 1433 1406
2288 32 1129 1014 1044 977 1078 1032 1092 1048 991 1004
2289 33 135 177 113 240 158 141 119 184 210 169
2290 34 2203 2136 1987 2175 2180 2059 2106 2189 2160 2076
2291 35 321 459 383 236 392 426 349 271 341 298
2292 36 2162 2102 2115 1963 2131 2113 2142 2060 2026 2033
2293 37 900 1015 965 890 961 992 934 893 952 919
2294 38 1702 1559 1600 1288 1638 1592 1658 1492 1423 1439
2295 39 2247 2252 2229 2064 2250 2248 2244 2163 2174 2153
2296 40 22 1 25 37 6 5 19 12 8 15
2297 41 1014 899 920 977 962 912 978 991 929 943
2298 42 1560 1703 1651 1468 1637 1684 1613 1511 1590 1554
2299 43 1252 1155 1279 1189 1206 1218 1265 1215 1167 1230
2300 44 1251 1336 1201 1059 1292 1260 1224 1151 1182 1122
2301 45 49 96 135 113 65 109 84 71 104 119
2302 46 2224 2227 2203 1987 2232 2221 2217 2116 2119 2106
2303 47 2234 2246 2224 2064 2245 2240 2230 2159 2168 2151
2304 48 9 23 49 37 10 32 26 17 18 31
2305 49 1336 1409 1500 1305 1379 1461 1424 1318 1352 1406
2306 50 1155 1129 1044 977 1146 1092 1098 1058 1048 1004
2307 51 1408 1279 1444 1189 1347 1363 1431 1274 1230 1294
2308 52 1130 1201 1083 1059 1165 1138 1109 1096 1122 1064
2309 53 2203 2198 2175 1987 2207 2190 2189 2106 2100 2076
2310 54 135 195 240 113 162 219 184 119 152 169
2311 55 965 1083 1021 890 1022 1053 996 919 984 954
2312 56 1 9 25 37 2 11 5 8 17 15
2313 57 2252 2234 2229 2064 2249 2233 2248 2174 2159 2153
2314 58 1044 1014 920 977 1032 978 985 1004 991 943
2315 59 1500 1560 1651 1468 1535 1613 1584 1476 1511 1554
2316 60 1015 1083 965 890 1052 1022 992 952 984 919
2317 61 1559 1444 1600 1288 1512 1525 1592 1423 1362 1439
2318 62 2175 2162 2115 1963 2176 2142 2143 2068 2060 2033
2319 63 240 321 383 236 277 349 307 232 271 298
2320 64 383 528 445 416 452 481 411 393 465 424
2321 65 965 1021 911 890 996 969 940 919 954 895
2322 66 95 22 83 80 55 47 85 79 41 75
2323 67 2228 2247 2216 2025 2238 2236 2225 2133 2147 2128
2324 68 899 804 817 783 854 810 865 840 787 798
2325 69 1703 1819 1782 1468 1763 1807 1749 1590 1650 1630
2326 70 1038 1044 941 977 1045 993 986 1001 1004 955
2327 71 2102 2016 2036 1841 2055 2031 2073 1966 1936 1941
2328 72 803 900 855 890 853 884 833 839 893 871
2329 73 459 603 528 416 538 569 492 436 511 465
2330 74 1820 1702 1736 1546 1764 1721 1786 1692 1626 1643
2331 75 2115 2036 2017 1841 2079 2030 2070 1975 1941 1935
2332 76 1500 1651 1568 1468 1584 1621 1537 1476 1554 1517
2333 77 2017 2036 1924 1841 2030 1990 1970 1935 1941 1881
2334 78 2247 2229 2216 2025 2244 2223 2236 2147 2132 2128
2335 79 22 25 83 80 19 50 47 41 39 75
2336 80 920 899 817 783 912 865 873 851 840 798
2337 81 1651 1703 1782 1468 1684 1749 1718 1554 1590 1630
2338 82 1725 1922 1828 1622 1824 1878 1784 1670 1771 1722
2339 83 480 469 575 520 475 521 527 491 482 542
2340 84 383 459 528 416 426 492 452 393 436 465
2341 85 2115 2102 2036 1841 2113 2073 2079 1975 1966 1941
2342 86 900 965 855 890 934 901 884 893 919 871
2343 87 1702 1600 1736 1546 1658 1668 1721 1626 1566 1643
2344 88 499 488 579 520 494 535 540 507 504 551
2345 89 1331 1510 1451 1622 1416 1477 1385 1472 1561 1533
2346 90 1639 1725 1828 1622 1686 1784 1734 1629 1670 1722
2347 91 596 480 575 520 543 527 588 562 491 542
2348 92 1651 1782 1682 1468 1718 1739 1671 1554 1630 1576
2349 93 1183 1286 1189 1149 1234 1231 1181 1168 1216 1159
2350 94 1331 1451 1291 1622 1385 1367 1315 1472 1533 1453
2351 95 499 579 610 520 540 593 559 507 551 565
2352 96 194 95 183 80 151 138 185 127 79 122
2353 97 2199 2228 2188 2025 2218 2213 2196 2117 2133 2110
2354 98 1819 1932 1893 1756 1879 1917 1863 1788 1845 1822
2355 99 804 707 715 783 757 711 765 787 738 745
2356 100 1736 1600 1588 1546 1668 1598 1662 1643 1566 1558
2357 101 706 803 752 708 755 778 728 703 754 725
2358 102 1933 1820 1853 1546 1880 1844 1900 1746 1692 1704
2359 103 2016 1933 1950 1841 1972 1947 1995 1936 1882 1895
2360 104 603 706 652 708 658 681 629 648 703 677
2361 105 95 83 183 80 85 136 138 79 75 122
2362 106 2228 2216 2188 2025 2225 2201 2213 2133 2128 2110
2363 107 1782 1819 1893 1756 1807 1863 1837 1765 1788 1822
2364 108 817 804 715 783 810 765 768 798 787 745
2365 109 1330 1268 1237 1474 1282 1248 1278 1404 1369 1346
2366 110 500 506 606 510 503 556 555 496 497 558
2367 111 1268 1330 1371 1474 1282 1355 1310 1369 1404 1418
2368 112 1201 1336 1257 1059 1260 1299 1227 1122 1182 1150
2369 113 1044 920 941 977 985 933 993 1004 943 955
2370 114 177 106 113 174 147 105 141 172 144 131
2371 115 1820 1736 1853 1546 1786 1793 1844 1692 1643 1704
2372 116 803 855 752 708 833 802 778 754 776 725
2373 117 2036 2016 1950 1841 2031 1995 2000 1941 1936 1895
2374 118 528 603 652 416 569 629 598 465 511 544
2375 119 2136 2173 1987 2002 2154 2078 2059 2080 2096 1993
2376 120 25 9 51 37 11 27 33 15 17 29
2377 121 2229 2234 2179 2064 2233 2210 2208 2153 2159 2120
2378 122 706 752 652 708 728 702 681 703 725 677
2379 123 1933 1853 1950 1701 1900 1906 1947 1817 1772 1825
2380 124 1185 1237 1268 1474 1205 1248 1228 1309 1346 1369
2381 125 634 606 506 510 618 556 571 572 558 497
2382 126 1350 1268 1371 1636 1313 1310 1348 1484 1450 1493
2383 127 707 604 611 599 657 609 664 651 594 605
2384 128 1932 2015 1985 1756 1974 2005 1957 1845 1891 1872
2385 129 322 194 305 260 251 245 312 284 223 275
2386 130 2161 2199 2141 1945 2183 2181 2158 2047 2075 2038
2387 131 715 707 611 599 711 664 669 660 651 605
2388 132 1893 1932 1985 1756 1917 1957 1942 1822 1845 1872
2389 133 194 183 305 260 185 241 245 223 216 275
2390 134 2199 2188 2141 1945 2196 2170 2181 2075 2066 2038
2391 135 838 858 932 937 842 891 888 885 892 928
2392 136 9 58 51 37 28 48 27 17 38 29
2393 137 2234 2157 2179 2064 2204 2169 2210 2159 2112 2120
2394 138 2053 2115 2017 1963 2095 2070 2037 2004 2033 1989
2395 139 1083 1121 1021 1059 1107 1074 1053 1064 1093 1040
2396 140 752 855 807 708 802 834 781 725 776 756
2397 141 1600 1419 1588 1288 1521 1499 1598 1439 1344 1430
2398 142 303 383 445 416 338 411 371 350 393 424
2399 143 1560 1500 1305 1468 1535 1406 1433 1511 1476 1384
2400 144 2053 2017 1901 1963 2037 1961 1982 2004 1989 1930
2401 145 858 974 932 937 907 948 891 892 949 928
2402 146 1447 1391 1462 1761 1413 1411 1460 1606 1586 1618
2403 147 288 308 302 130 293 310 290 203 212 207
2404 148 488 414 372 387 451 397 439 437 398 368
2405 149 1510 1524 1774 1636 1519 1653 1647 1564 1577 1700
2406 150 1390 1391 1447 1761 1397 1413 1412 1582 1586 1606
2407 151 309 308 288 130 294 293 296 206 212 203
2408 152 303 445 407 416 371 423 361 350 424 403
2409 153 1336 1394 1257 1305 1374 1320 1299 1318 1341 1271
2410 154 1444 1286 1419 1189 1370 1357 1438 1294 1231 1277
2411 155 1021 1121 1016 1059 1074 1070 1023 1040 1093 1034
2412 156 1394 1500 1568 1468 1458 1537 1481 1425 1476 1517
2413 157 1201 1257 1121 1059 1227 1191 1163 1122 1150 1093
2414 158 2136 2175 2053 1987 2160 2126 2104 2059 2076 2011
2415 159 177 240 303 113 210 270 238 141 169 193
2416 160 1408 1444 1288 1189 1431 1362 1338 1274 1294 1232
2417 161 2175 2198 1963 1987 2190 2092 2068 2076 2100 1973
2418 162 240 195 236 113 219 211 232 169 152 170
2419 163 2206 2093 2065 2064 2164 2083 2152 2138 2069 2057
2420 164 60 91 132 37 67 108 94 30 42 59
2421 165 1682 1568 1468 1520 1631 1517 1576 1605 1548 1487
2422 166 1510 1725 1639 1622 1624 1686 1579 1561 1670 1629
2423 167 480 488 372 387 484 439 431 428 437 368
2424 168 1725 1510 1774 1636 1624 1647 1751 1677 1564 1700
2425 169 488 480 596 520 484 543 545 504 491 562
2426 170 418 414 387 278 417 398 401 353 342 320
2427 171 1383 1524 1636 1673 1441 1577 1503 1515 1603 1644
2428 172 1451 1291 1622 1501 1367 1453 1533 1480 1392 1552
2429 173 579 610 520 696 593 565 551 635 649 617
2430 174 445 528 584 416 481 563 517 424 465 490
2431 175 855 911 807 890 886 863 834 871 895 841
2432 176 1155 1183 1189 1038 1170 1181 1167 1099 1110 1103
2433 177 1965 1725 1774 1636 1854 1751 1875 1803 1677 1700
2434 178 344 480 372 387 419 431 362 346 428 368
2435 179 579 596 696 520 589 646 635 551 562 617
2436 180 1451 1639 1501 1622 1541 1572 1480 1533 1629 1552
2437 181 604 611 599 464 609 605 594 539 547 525
2438 182 305 322 260 464 312 284 275 390 391 359
2439 183 2141 2161 1945 2048 2158 2047 2038 2103 2123 1991
2440 184 855 965 911 890 901 940 886 871 919 895
2441 185 1736 1588 1687 1546 1662 1642 1720 1643 1558 1619
2442 186 2024 2105 1894 1945 2061 2001 1954 1983 2019 1918
2443 187 319 202 291 260 252 242 295 276 221 254
2444 188 1083 1201 1121 1059 1138 1163 1107 1064 1122 1093
2445 189 718 622 667 599 672 640 692 659 607 625
2446 190 1336 1500 1394 1305 1424 1458 1374 1318 1406 1341
2447 191 1155 1044 1038 977 1098 1045 1099 1058 1004 1001
2448 192 2234 2224 2157 2064 2230 2197 2204 2159 2151 2112
2449 193 9 49 58 37 26 44 28 17 31 38
2450 194 418 506 380 387 456 443 404 401 444 374
2451 195 1383 1268 1350 1636 1308 1313 1351 1503 1450 1484
2452 196 1600 1444 1419 1288 1525 1438 1521 1439 1362 1344
2453 197 2175 2115 2053 1963 2143 2095 2126 2068 2033 2004
2454 198 240 383 303 236 307 338 270 232 298 262
2455 199 1237 1330 1474 1382 1278 1404 1346 1285 1353 1422
2456 200 606 500 510 630 555 496 558 612 566 570
2457 201 1922 1968 1828 1622 1952 1910 1878 1771 1798 1722
2458 202 469 592 575 520 532 586 521 482 550 542
2459 203 380 376 302 130 382 332 340 237 234 207
2460 204 106 49 113 58 74 71 105 72 44 63
2461 205 2173 2224 1987 2157 2200 2116 2078 2166 2197 2062
2462 206 2229 2179 2129 2025 2208 2155 2192 2132 2098 2071
2463 207 25 51 117 80 33 77 62 39 46 82
2464 208 1189 1183 1149 1038 1181 1168 1159 1103 1110 1097
2465 209 816 817 718 783 820 770 769 794 798 744
2466 210 920 817 816 783 873 820 876 851 798 794
2467 211 1257 1394 1219 1305 1320 1298 1241 1271 1341 1253
2468 212 1588 1419 1364 1288 1499 1396 1475 1430 1344 1316
2469 213 1922 1725 1965 1622 1824 1854 1948 1771 1670 1797
2470 214 469 480 344 520 475 419 410 482 491 421
2471 215 83 117 202 80 103 157 142 75 82 128
2472 216 2216 2129 2105 2025 2185 2118 2178 2128 2071 2054
2473 217 1782 1893 1789 1756 1837 1852 1795 1765 1822 1770
2474 218 817 715 718 783 768 720 770 798 745 744
2475 219 183 83 202 80 136 142 186 122 75 128
2476 220 2188 2216 2105 2025 2201 2178 2156 2110 2128 2054
2477 221 941 920 816 783 933 876 881 861 851 794
2478 222 1682 1782 1789 1756 1739 1795 1741 1713 1765 1770
2479 223 2049 1922 2107 1945 1998 2018 2081 1984 1915 2010
2480 224 463 469 333 260 466 408 405 355 354 289
2481 225 469 463 592 520 466 531 532 482 472 550
2482 226 1922 2049 1968 1622 1998 2008 1952 1771 1839 1798
2483 227 528 652 584 416 598 620 563 465 544 490
2484 228 1853 1736 1687 1546 1793 1720 1779 1704 1643 1619
2485 229 2036 1950 1924 1841 2000 1946 1990 1941 1895 1881
2486 230 1409 1251 1322 1059 1323 1289 1372 1210 1151 1178
2487 231 1129 1252 1147 1189 1194 1203 1144 1152 1215 1157
2488 232 96 23 60 113 54 36 68 104 56 76
2489 233 2227 2246 2206 1987 2239 2235 2226 2119 2127 2099
2490 234 1030 975 908 1081 995 935 976 1049 1018 988
2491 235 1252 1408 1264 1189 1324 1339 1263 1215 1274 1221
2492 236 1251 1130 1190 1059 1193 1161 1222 1151 1096 1118
2493 237 195 96 145 113 149 112 165 152 104 120
2494 238 2198 2227 2186 1987 2219 2220 2202 2100 2119 2084
2495 239 2246 2252 2215 2064 2251 2243 2241 2168 2174 2144
2496 240 1560 1409 1479 1305 1482 1454 1531 1433 1352 1389
2497 241 2107 1922 1965 1945 2018 1948 2041 2010 1915 1943
2498 242 23 1 20 37 4 3 13 18 8 16
2499 243 1014 1129 1033 977 1078 1090 1026 991 1048 1002
2500 244 333 469 344 260 408 410 337 289 354 287
2501 245 60 20 91 37 34 53 67 30 16 42
2502 246 2206 2215 2093 2064 2212 2171 2164 2138 2144 2069
2503 247 908 859 801 1081 882 824 860 988 959 921
2504 248 381 334 448 268 363 386 413 317 292 348
2505 249 1349 1435 1373 1707 1377 1414 1340 1530 1570 1536
2506 250 975 859 908 1081 906 882 935 1018 959 988
2507 251 1349 1390 1435 1707 1378 1399 1377 1530 1542 1570
2508 252 381 309 334 268 335 325 363 317 269 292
2509 253 1286 1189 1149 1419 1231 1159 1216 1357 1277 1262
2510 254 1322 1251 1190 1059 1289 1222 1250 1178 1151 1118
2511 255 1147 1252 1264 1189 1203 1263 1207 1157 1215 1221
2512 256 2227 2206 2186 1987 2226 2195 2220 2119 2099 2084
2513 257 96 60 145 113 68 101 112 104 76 120
2514 258 60 23 20 37 36 13 34 30 18 16
2515 259 2206 2246 2215 2064 2235 2241 2212 2138 2168 2144
2516 260 1479 1409 1322 1305 1454 1372 1407 1389 1352 1307
2517 261 1033 1129 1147 977 1090 1144 1095 1002 1048 1056
2518 262 1408 1559 1427 1288 1483 1506 1426 1338 1423 1354
2519 263 1130 1015 1069 1059 1075 1047 1106 1096 1035 1060
2520 264 2162 2198 2146 1963 2184 2187 2167 2060 2092 2052
2521 265 321 195 247 236 250 222 281 271 211 233
2522 266 1782 1682 1468 1756 1739 1576 1630 1765 1713 1612
2523 267 1264 1408 1427 1288 1339 1426 1342 1270 1338 1354
2524 268 1190 1130 1069 1059 1161 1106 1127 1118 1096 1060
2525 269 2198 2186 2146 1963 2202 2172 2187 2092 2074 2052
2526 270 195 145 247 236 165 189 222 211 175 233
2527 271 740 858 838 937 799 842 786 836 892 885
2528 272 1089 975 1030 1081 1028 995 1051 1077 1018 1049
2529 273 2216 2229 2129 2025 2223 2192 2185 2128 2132 2071
2530 274 83 25 117 80 50 62 103 75 39 82
2531 275 2252 2247 2211 2064 2250 2237 2242 2174 2163 2139
2532 276 1 22 35 37 6 24 7 8 12 14
2533 277 899 1014 915 977 962 973 909 929 991 939
2534 278 1703 1560 1634 1468 1637 1607 1678 1590 1511 1538
2535 279 2215 2252 2211 2064 2243 2242 2214 2144 2174 2139
2536 280 20 1 35 37 3 7 21 16 8 14
2537 281 1560 1479 1634 1305 1531 1557 1607 1433 1389 1467
2538 282 1014 1033 915 977 1026 980 973 991 1002 939
2539 283 1435 1390 1447 1761 1399 1412 1448 1596 1582 1606
2540 284 334 309 288 130 325 296 301 213 206 203
2541 285 1965 1774 1981 1636 1875 1883 1976 1803 1700 1805
2542 286 344 372 231 387 362 300 283 346 368 286
2543 287 652 752 689 708 702 722 676 677 725 694
2544 288 1950 1853 1791 1701 1906 1831 1885 1825 1772 1747
2545 289 2017 1924 1901 1841 1970 1916 1961 1935 1881 1860
2546 290 932 974 1071 937 948 1013 1005 928 949 999
2547 291 380 506 376 387 443 442 382 374 444 366
2548 292 1089 1030 1141 1081 1051 1091 1104 1077 1049 1102
2549 293 740 838 730 937 786 784 734 836 885 829
2550 294 1853 1687 1791 1701 1779 1745 1831 1772 1690 1747
2551 295 584 652 689 708 620 676 638 637 677 694
2552 296 1985 2015 2048 1756 2005 2043 2020 1872 1891 1905
2553 297 718 715 622 599 720 671 672 659 660 607
2554 298 106 113 174 58 105 131 144 72 63 111
2555 299 1069 1015 958 890 1047 989 1011 981 952 916
2556 300 1427 1559 1580 1288 1506 1585 1504 1354 1423 1429
2557 301 2162 2146 2089 1963 2167 2121 2135 2060 2052 2022
2558 302 321 247 385 236 281 313 351 271 233 297
2559 303 974 1088 1071 1176 1029 1068 1013 1067 1120 1114
2560 304 859 741 801 849 796 771 824 846 790 822
2561 305 505 381 448 268 441 413 471 379 317 348
2562 306 1269 1349 1373 1707 1314 1340 1302 1485 1530 1536
2563 307 2173 1987 2002 2157 2078 1993 2096 2166 2062 2090
2564 308 1015 900 958 890 961 930 989 952 893 916
2565 309 1559 1702 1580 1288 1638 1652 1585 1423 1492 1429
2566 310 459 321 385 236 392 351 427 341 271 297
2567 311 2102 2162 2089 1963 2131 2135 2108 2026 2060 2022
2568 312 932 838 937 1003 888 885 928 963 905 968
2569 313 1330 1578 1371 1474 1445 1459 1355 1404 1518 1418
2570 314 730 606 634 510 670 618 685 632 558 572
2571 315 1141 1237 1185 1474 1196 1205 1154 1273 1346 1309
2572 316 1350 1371 1462 1717 1348 1420 1388 1534 1544 1593
2573 317 2188 2105 2024 1945 2156 2061 2125 2066 2019 1983
2574 318 183 202 319 260 186 252 244 216 221 276
2575 319 35 22 102 80 24 52 61 43 41 78
2576 320 2211 2247 2194 2025 2237 2231 2205 2124 2147 2114
2577 321 899 915 813 783 909 868 864 840 845 792
2578 322 1703 1634 1755 1468 1678 1697 1743 1590 1538 1611
2579 323 488 499 387 520 494 446 437 504 507 449
2580 324 1510 1331 1636 1622 1416 1478 1564 1561 1472 1627
2581 325 383 459 416 236 426 436 393 298 341 324
2582 326 2246 2224 2064 1987 2240 2151 2168 2127 2116 2023
2583 327 23 49 37 113 32 31 18 56 71 64
2584 328 1336 1409 1305 1059 1379 1352 1318 1182 1210 1169
2585 329 1155 1129 977 1189 1146 1048 1058 1167 1152 1073
2586 330 1933 1853 1701 1546 1900 1772 1817 1746 1704 1625
2587 331 1950 1933 1701 1841 1947 1817 1825 1895 1882 1768
2588 332 22 95 102 80 55 88 52 41 79 78
2589 333 2247 2228 2194 2025 2238 2222 2231 2147 2133 2114
2590 334 804 899 813 783 854 864 809 787 840 792
2591 335 1819 1703 1755 1468 1763 1743 1802 1650 1590 1611
2592 336 22 25 80 37 19 39 41 12 15 40
2593 337 2247 2229 2025 2064 2244 2132 2147 2163 2153 2034
2594 338 920 899 783 977 912 840 851 943 929 875
2595 339 505 448 583 268 471 516 546 379 348 422
2596 340 1269 1373 1280 1707 1302 1327 1259 1485 1536 1489
2597 341 1071 1088 1187 1176 1068 1119 1128 1114 1120 1171
2598 342 1782 1819 1756 1468 1807 1788 1765 1630 1650 1612
2599 343 752 807 689 708 781 749 722 725 756 694
2600 344 459 385 529 416 427 453 493 436 389 457
2601 345 2102 2089 2007 1841 2108 2051 2067 1966 1955 1929
2602 346 958 900 847 890 930 883 896 916 893 867
2603 347 1580 1702 1710 1546 1652 1716 1649 1553 1626 1632
2604 348 1391 1350 1462 1717 1376 1388 1411 1549 1534 1593
2605 349 308 380 302 130 336 340 310 212 237 207
2606 350 1185 1089 1141 1400 1135 1104 1154 1267 1217 1245
2607 351 634 740 730 714 688 734 685 674 724 719
2608 352 113 177 174 303 141 172 131 193 238 227
2609 353 102 95 190 80 88 139 150 78 79 123
2610 354 2194 2228 2165 2025 2222 2209 2182 2114 2133 2094
2611 355 2186 2206 2065 1987 2195 2152 2140 2084 2099 2012
2612 356 145 60 132 113 101 94 129 120 76 107
2613 357 2102 2016 1841 2007 2055 1936 1966 2067 2027 1929
2614 358 1820 1702 1546 1710 1764 1626 1692 1781 1716 1632
2615 359 603 459 529 416 538 493 568 511 436 457
2616 360 900 803 847 890 853 831 883 893 839 867
2617 361 387 499 506 520 446 502 444 449 507 498
2618 362 1636 1331 1268 1622 1478 1283 1450 1627 1472 1436
2619 363 1987 2136 2002 2053 2059 2080 1993 2011 2104 2035
2620 364 1186 1280 1187 1465 1220 1235 1173 1300 1366 1301
2621 365 376 365 302 130 370 326 332 234 225 207
2622 366 506 500 376 387 503 438 442 444 434 366
2623 367 500 365 376 387 435 370 438 434 352 366
2624 368 95 194 190 80 151 187 139 79 127 123
2625 369 2228 2199 2165 2025 2218 2193 2209 2133 2117 2094
2626 370 1509 1330 1382 1474 1415 1353 1449 1486 1404 1422
2627 371 489 500 630 510 495 566 567 486 496 570
2628 372 500 489 365 510 495 429 435 496 486 425
2629 373 1330 1509 1578 1474 1415 1540 1445 1404 1486 1518
2630 374 715 707 599 783 711 651 660 745 738 691
2631 375 194 183 260 80 185 216 223 127 122 161
2632 376 2199 2188 1945 2025 2196 2066 2075 2117 2110 1980
2633 377 500 506 510 387 503 497 496 434 444 447
2634 378 1819 1932 1756 1814 1879 1845 1788 1849 1903 1783
2635 379 2129 2179 1979 2025 2155 2088 2056 2071 2098 1999
2636 380 117 51 143 80 77 97 124 82 46 87
2637 381 706 803 708 746 755 754 703 726 777 723
2638 382 911 1021 1016 890 969 1023 970 895 954 945
2639 383 915 894 795 783 904 844 862 845 835 785
2640 384 1634 1490 1610 1400 1569 1547 1635 1505 1434 1495
2641 385 1038 941 889 977 986 914 960 1001 955 917
2642 386 915 1033 894 977 980 967 904 939 1002 923
2643 387 1634 1479 1490 1305 1557 1496 1569 1467 1389 1387
2644 388 1789 1893 1858 1756 1852 1892 1827 1770 1822 1804
2645 389 506 499 610 520 502 559 560 498 507 565
2646 390 1268 1331 1291 1622 1283 1315 1258 1436 1472 1453
2647 391 2016 2007 1923 1841 2027 1964 1986 1936 1929 1877
2648 392 603 529 647 416 568 595 628 511 457 533
2649 393 592 463 604 599 531 536 600 590 522 594
2650 394 1968 2049 2015 1622 2008 2046 2006 1798 1839 1818
2651 395 2049 2107 2161 1945 2081 2148 2122 1984 2010 2047
2652 396 463 333 322 260 405 328 396 355 289 284
2653 397 1322 1190 1209 1059 1250 1204 1261 1178 1118 1124
2654 398 1147 1264 1112 1189 1207 1195 1134 1157 1221 1140
2655 399 2015 2101 2048 1663 2058 2086 2043 1840 1886 1861
2656 400 604 460 464 599 534 462 539 594 523 525
2657 401 2101 2049 2161 1663 2087 2122 2130 1886 1857 1919
2658 402 460 463 322 260 461 396 395 357 355 284
2659 403 2049 2101 2015 1663 2087 2058 2046 1857 1886 1840
2660 404 463 460 604 599 461 534 536 522 523 594
2661 405 2101 2161 2048 1663 2130 2123 2086 1886 1919 1861
2662 406 460 322 464 260 395 391 462 357 284 359
2663 407 385 247 314 236 313 279 343 297 233 261
2664 408 2089 2146 1978 1963 2121 2072 2040 2022 2052 1962
2665 409 1186 1269 1280 1465 1226 1259 1220 1300 1358 1366
2666 410 633 505 583 530 574 546 608 585 514 553
2667 411 1088 1186 1187 1465 1136 1173 1119 1239 1300 1301
2668 412 1069 958 987 890 1011 982 1036 981 916 927
2669 413 1427 1580 1343 1288 1504 1471 1395 1354 1429 1306
2670 414 1500 1394 1305 1468 1458 1341 1406 1476 1425 1384
2671 415 707 604 599 592 657 594 651 654 600 590
2672 416 322 194 260 333 251 223 284 328 257 289
2673 417 2161 2199 1945 2107 2183 2075 2047 2148 2177 2010
2674 418 1933 2016 1923 1841 1972 1986 1940 1882 1936 1877
2675 419 706 603 647 708 658 628 680 703 648 675
2676 420 813 804 783 704 809 787 792 762 759 736
2677 421 2146 1992 1978 1963 2085 1988 2072 2052 1969 1962
2678 422 247 224 314 236 229 264 279 233 214 261
2679 423 1510 1725 1622 1636 1624 1670 1561 1564 1677 1627
2680 424 488 480 520 387 484 491 504 437 428 449
2681 425 1208 1427 1343 1288 1312 1395 1266 1238 1354 1306
2682 426 1084 1069 987 849 1086 1036 1041 957 950 903
2683 427 1468 1682 1520 1756 1576 1605 1487 1612 1713 1633
2684 428 35 102 148 80 61 114 81 43 78 98
2685 429 2211 2194 2050 2025 2205 2137 2150 2124 2114 2029
2686 430 380 418 387 278 404 401 374 345 353 320
2687 431 1350 1383 1636 1673 1351 1503 1484 1440 1515 1644
2688 432 1791 1687 1528 1701 1745 1615 1664 1747 1690 1608
2689 433 584 689 613 708 638 655 602 637 694 653
2690 434 1000 1147 1112 977 1080 1134 1055 983 1056 1042
2691 435 1304 1322 1209 1305 1326 1261 1255 1295 1307 1244
2692 436 445 584 407 416 517 487 423 424 490 403
2693 437 1789 1858 1656 1756 1827 1759 1732 1770 1804 1699
2694 438 715 611 622 599 669 619 671 660 605 607
2695 439 305 183 319 260 241 244 311 275 216 276
2696 440 2141 2188 2024 1945 2170 2125 2097 2038 2066 1983
2697 441 1755 1610 1814 1756 1694 1714 1790 1752 1675 1783
2698 442 813 795 704 783 806 751 762 792 785 736
2699 443 1444 1419 1288 1189 1438 1344 1362 1294 1277 1232
2700 444 2053 2175 1963 1987 2126 2068 2004 2011 2076 1973
2701 445 303 240 236 113 270 232 262 193 169 170
2702 446 813 915 795 783 868 862 806 792 845 785
2703 447 1755 1634 1610 1400 1697 1635 1694 1581 1505 1495
2704 448 2093 2215 2032 2064 2171 2149 2063 2069 2144 2039
2705 449 91 20 110 37 53 57 100 42 16 45
2706 450 1710 1820 1809 1546 1781 1833 1757 1632 1692 1679
2707 451 847 803 746 708 831 777 793 773 754 723
2708 452 1828 1968 1814 1622 1910 1902 1826 1722 1798 1711
2709 453 575 592 704 520 586 650 639 542 550 616
2710 454 2015 1932 1968 1756 1974 1959 2006 1891 1845 1862
2711 455 145 132 224 113 129 171 176 120 107 154
2712 456 2186 2065 1992 1987 2140 2028 2109 2084 2012 1977
2713 457 1209 1190 1084 1059 1204 1139 1142 1124 1118 1065
2714 458 1112 1264 1208 1189 1195 1243 1158 1140 1221 1188
2715 459 1924 1950 1791 1701 1946 1885 1859 1810 1825 1747
2716 460 746 706 647 708 726 680 698 723 703 675
2717 461 1809 1933 1923 1701 1889 1940 1866 1750 1817 1811
2718 462 1015 1083 890 1059 1052 984 952 1035 1064 972
2719 463 1893 1985 1858 1756 1942 1938 1892 1822 1872 1804
2720 464 2115 2102 1841 1963 2113 1966 1975 2033 2026 1904
2721 465 1702 1600 1546 1288 1658 1566 1626 1492 1439 1417
2722 466 110 35 148 80 66 81 121 70 43 98
2723 467 2032 2211 2050 2025 2145 2150 2042 2021 2124 2029
2724 468 1682 1789 1520 1756 1741 1660 1605 1713 1770 1633
2725 469 803 855 708 890 833 776 754 839 871 791
2726 470 2107 1965 2165 1945 2041 2082 2134 2010 1943 2044
2727 471 333 344 190 260 337 265 259 289 287 217
2728 472 1726 1509 1656 1663 1623 1594 1695 1693 1591 1655
2729 473 1033 1000 894 977 1017 946 967 1002 983 923
2730 474 1479 1304 1490 1305 1410 1401 1496 1389 1295 1387
2731 475 148 102 231 80 114 164 182 98 78 140
2732 476 2050 2194 1981 2025 2137 2111 2013 2029 2114 1996
2733 477 51 58 143 37 48 90 97 29 38 69
2734 478 2179 2157 1979 2064 2169 2077 2088 2120 2112 2009
2735 479 987 958 872 890 982 910 922 927 916 877
2736 480 1343 1580 1452 1176 1471 1529 1405 1242 1345 1284
2737 481 633 583 693 530 608 636 663 585 553 614
2738 482 1268 1185 1474 1622 1228 1309 1369 1436 1380 1539
2739 483 506 634 510 520 571 572 497 498 573 513
2740 484 2089 1978 1868 1963 2040 1928 1994 2022 1962 1907
2741 485 385 314 450 236 343 384 420 297 261 330
2742 486 1568 1468 1520 1394 1517 1487 1548 1481 1425 1469
2743 487 807 911 828 890 863 874 819 841 895 850
2744 488 1774 1524 1673 1636 1653 1603 1731 1700 1577 1644
2745 489 372 414 278 387 397 342 316 368 398 320
2746 490 1828 1639 1622 1814 1734 1629 1722 1826 1737 1711
2747 491 575 596 520 704 588 562 542 639 645 616
2748 492 470 319 479 260 399 406 476 360 276 358
2749 493 2165 2199 2107 1945 2193 2177 2134 2044 2075 2010
2750 494 190 194 333 260 187 257 259 217 223 289
2751 495 622 470 479 599 552 476 554 607 526 524
2752 496 1071 1187 1211 1176 1128 1197 1132 1114 1171 1184
2753 497 1820 1933 1809 1546 1880 1889 1833 1692 1746 1679
2754 498 506 510 387 520 497 447 444 498 513 449
2755 499 510 387 520 260 447 449 513 369 306 378
2756 500 1501 1610 1296 1400 1556 1456 1403 1442 1495 1337
2757 501 696 795 763 714 742 779 729 699 750 732
2758 502 60 23 37 113 36 18 30 76 56 64
2759 503 2206 2246 2064 1987 2235 2168 2138 2099 2127 2023
2760 504 1409 1322 1305 1059 1372 1307 1352 1210 1178 1169
2761 505 1129 1147 977 1189 1144 1056 1048 1152 1157 1073
2762 506 1288 1408 1189 1264 1338 1274 1232 1270 1339 1221
2763 507 2211 2247 2025 2064 2237 2147 2124 2139 2163 2034
2764 508 35 22 80 37 24 41 43 14 12 40
2765 509 899 915 783 977 909 845 840 929 939 875
2766 510 1264 1427 1208 1288 1342 1312 1243 1270 1354 1238
2767 511 1190 1069 1084 1059 1127 1086 1139 1118 1060 1065
2768 512 2146 2186 1992 1963 2172 2109 2085 2052 2074 1969
2769 513 247 145 224 236 189 176 229 233 175 214
2770 514 1033 1147 1000 977 1095 1080 1017 1002 1056 983
2771 515 1479 1322 1304 1305 1407 1326 1410 1389 1307 1295
2772 516 195 236 113 145 211 170 152 165 175 120
2773 517 2215 2211 2032 2064 2214 2145 2149 2144 2139 2039
2774 518 20 35 110 37 21 66 57 16 14 45
2775 519 2198 1963 1987 2186 2092 1973 2100 2202 2074 2084
2776 520 1710 1809 1563 1546 1757 1698 1654 1632 1679 1545
2777 521 847 746 774 708 793 766 812 773 723 733
2778 522 1985 2048 1921 1726 2020 1997 1967 1851 1890 1823
2779 523 1858 1921 1726 1985 1896 1823 1800 1938 1967 1851
2780 524 1921 2024 1726 1945 1971 1884 1823 1931 1983 1830
2781 525 611 464 470 599 547 467 548 605 525 526
2782 526 2048 2141 1921 1945 2103 2045 1997 1991 2038 1931
2783 527 464 305 470 260 390 394 467 359 275 360
2784 528 529 450 578 530 483 518 561 512 468 541
2785 529 2007 1868 1775 1841 1951 1821 1909 1929 1848 1801
2786 530 1452 1710 1563 1546 1597 1654 1513 1491 1632 1545
2787 531 872 847 774 890 866 812 821 877 867 823
2788 532 1121 1257 1219 1059 1191 1241 1175 1093 1150 1126
2789 533 630 606 730 510 612 670 683 570 558 632
2790 534 1382 1237 1141 1474 1285 1196 1240 1422 1346 1273
2791 535 1371 1578 1462 1717 1459 1514 1420 1544 1645 1593
2792 536 448 334 364 268 386 347 409 348 292 299
2793 537 1373 1435 1646 1707 1414 1526 1494 1536 1570 1667
2794 538 1687 1588 1364 1546 1642 1475 1532 1619 1558 1446
2795 539 202 117 291 80 157 201 242 128 82 167
2796 540 2105 2129 1894 1717 2118 2014 2001 1908 1925 1799
2797 541 1083 1021 890 1059 1053 954 984 1064 1040 972
2798 542 801 741 693 849 771 712 743 822 790 767
2799 543 1509 1382 1656 1474 1449 1523 1594 1486 1422 1555
2800 544 816 718 667 783 769 692 737 794 744 713
2801 545 2165 1965 1981 1945 2082 1976 2091 2044 1943 1949
2802 546 190 344 231 260 265 283 209 217 287 226
2803 547 858 974 937 1100 907 949 892 944 1006 1008
2804 548 1030 908 1031 1081 976 964 1025 1049 988 1046
2805 549 804 707 783 704 757 738 787 759 709 736
2806 550 941 816 889 783 881 856 914 861 794 830
2807 551 2017 2115 1841 1963 2070 1975 1935 1989 2033 1904
2808 552 529 385 450 416 453 420 483 457 389 415
2809 553 2007 2089 1868 1841 2051 1994 1951 1929 1955 1848
2810 554 958 847 872 890 896 866 910 916 867 877
2811 555 1580 1710 1452 1546 1649 1597 1529 1553 1632 1491
2812 556 190 194 260 80 187 223 217 123 127 161
2813 557 2165 2199 1945 2025 2193 2075 2044 2094 2117 1980
2814 558 2141 2024 1921 1945 2097 1971 2045 2038 1983 1931
2815 559 305 319 470 260 311 399 394 275 276 360
2816 560 611 622 599 470 619 607 605 548 552 526
2817 561 596 696 520 704 646 617 562 645 701 616
2818 562 1639 1501 1622 1814 1572 1552 1629 1737 1665 1711
2819 563 102 190 231 80 150 209 164 78 123 140
2820 564 2194 2165 1981 2025 2182 2091 2111 2114 2094 1996
2821 565 303 383 416 236 338 393 350 262 298 324
2822 566 2229 2179 2025 2064 2208 2098 2132 2153 2120 2034
2823 567 25 51 80 37 33 46 39 15 29 40
2824 568 1600 1588 1546 1288 1598 1558 1566 1439 1430 1417
2825 569 132 91 204 37 108 153 166 59 42 99
2826 570 2065 2093 1777 2064 2083 1939 1934 2057 2069 1913
2827 571 1447 1462 1715 1761 1460 1583 1562 1606 1618 1735
2828 572 288 302 218 130 290 255 258 203 207 163
2829 573 1257 1336 1305 1059 1299 1318 1271 1150 1182 1169
2830 574 647 529 578 530 595 561 615 580 512 541
2831 575 1923 2007 1775 1841 1964 1909 1864 1877 1929 1801
2832 576 1371 1268 1474 1636 1310 1369 1418 1493 1450 1551
2833 577 1268 1474 1636 1622 1369 1551 1450 1436 1539 1627
2834 578 1474 1636 1622 1663 1551 1627 1539 1575 1648 1641
2835 579 1622 1474 1663 1756 1539 1575 1641 1681 1617 1706
2836 580 1636 1622 1663 2049 1627 1641 1648 1846 1839 1857
2837 581 1268 1291 1185 1622 1258 1214 1228 1436 1453 1380
2838 582 506 610 634 520 560 621 571 498 565 573
2839 583 2048 1921 1726 1945 1997 1823 1890 1991 1931 1830
2840 584 1350 1371 1717 1636 1348 1544 1534 1484 1493 1666
2841 585 920 941 977 783 933 955 943 851 861 875
2842 586 855 807 708 890 834 756 776 871 841 791
2843 587 1924 1688 1901 1841 1812 1792 1916 1881 1753 1860
2844 588 1305 1560 1468 1634 1433 1511 1384 1467 1607 1538
2845 589 1069 1015 890 1059 1047 952 981 1060 1035 972
2846 590 2224 2157 2064 1987 2197 2112 2151 2116 2062 2023
2847 591 49 58 37 113 44 38 31 71 63 64
2848 592 1038 1155 977 1189 1099 1058 1001 1103 1167 1073
2849 593 1853 1687 1701 1546 1779 1690 1772 1704 1619 1625
2850 594 630 489 510 667 567 486 570 642 581 587
2851 595 578 450 501 530 518 474 537 541 468 509
2852 596 1775 1868 1522 1841 1821 1705 1657 1801 1848 1674
2853 597 872 774 782 890 821 780 827 877 823 825
2854 598 1452 1563 1225 1546 1513 1386 1332 1491 1545 1365
2855 599 1978 1992 1669 1963 1988 1836 1832 1962 1969 1813
2856 600 314 224 327 236 264 273 315 261 214 249
2857 601 1474 1636 1663 1717 1551 1648 1575 1595 1666 1689
2858 602 718 715 599 783 720 660 659 744 745 691
2859 603 183 202 260 80 186 221 216 122 128 161
2860 604 2188 2105 1945 2025 2156 2019 2066 2110 2054 1980
2861 605 1819 1755 1814 1756 1802 1790 1849 1788 1752 1783
2862 606 1819 1755 1756 1468 1802 1752 1788 1650 1611 1612
2863 607 2102 2089 1841 1963 2108 1955 1966 2026 2022 1904
2864 608 1580 1702 1546 1288 1652 1626 1553 1429 1492 1417
2865 609 741 633 693 705 687 663 712 716 666 690
2866 610 1701 1950 1841 1924 1825 1895 1768 1810 1946 1881
2867 611 1726 2024 1894 1945 1884 1954 1815 1830 1983 1918
2868 612 479 319 291 260 406 295 388 358 276 254
2869 613 91 110 204 37 100 155 153 42 45 99
2870 614 2093 2032 1777 2064 2063 1911 1939 2069 2039 1913
2871 615 740 858 937 938 799 892 836 815 879 925
2872 616 1933 1923 1701 1841 1940 1811 1817 1882 1877 1768
2873 617 407 303 416 268 361 350 403 318 263 331
2874 618 1814 1610 1501 1400 1714 1556 1665 1609 1495 1442
2875 619 704 795 696 714 751 742 701 697 750 699
2876 620 1084 987 936 849 1041 966 1007 957 903 887
2877 621 1208 1343 1100 1288 1266 1213 1153 1238 1306 1177
2878 622 847 803 708 890 831 754 773 867 839 791
2879 623 1304 1209 1105 1305 1255 1156 1200 1295 1244 1192
2880 624 1000 1112 938 977 1055 1024 971 983 1042 942
2881 625 1924 1791 1688 1701 1859 1748 1812 1810 1747 1685
2882 626 1501 1296 1291 1400 1403 1297 1392 1442 1337 1333
2883 627 696 763 610 714 729 682 649 699 732 662
2884 628 622 479 667 599 554 582 640 607 524 625
2885 629 459 385 416 236 427 389 436 341 297 324
2886 630 647 746 708 673 698 723 675 665 710 678
2887 631 1981 1774 1673 1636 1883 1731 1835 1805 1700 1644
2888 632 231 372 278 387 300 316 248 286 368 320
2889 633 480 520 387 344 491 449 428 419 421 346
2890 634 1725 1622 1636 1965 1670 1627 1677 1854 1797 1803
2891 635 937 932 1003 1071 928 963 968 999 1005 1043
2892 636 1229 1382 1141 1400 1303 1240 1179 1293 1375 1245
2893 637 510 500 387 365 496 434 447 425 435 352
2894 638 1563 1809 1574 1546 1698 1708 1571 1545 1679 1543
2895 639 774 746 673 708 766 710 721 733 723 678
2896 640 1280 1187 1465 1528 1235 1301 1366 1398 1325 1488
2897 641 592 463 599 520 531 522 590 550 472 557
2898 642 974 1088 1176 1225 1029 1120 1067 1062 1116 1198
2899 643 859 741 849 782 796 790 846 805 753 808
2900 644 838 730 937 1003 784 829 885 905 852 968
2901 645 1185 1089 1400 1296 1135 1217 1267 1199 1143 1337
2902 646 634 740 714 763 688 724 674 686 739 732
2903 647 599 707 592 704 651 654 590 643 709 650
2904 648 1391 1462 1761 1717 1411 1618 1586 1549 1593 1738
2905 649 633 505 530 501 574 514 585 576 508 509
2906 650 1089 1141 1400 1081 1104 1245 1217 1077 1102 1212
2907 651 740 730 714 937 734 719 724 836 829 818
2908 652 2129 2105 2025 1717 2118 2054 2071 1925 1908 1874
2909 653 908 801 1031 1081 860 898 964 988 921 1046
2910 654 652 603 708 416 629 648 677 544 511 577
2911 655 1563 1574 1225 1546 1571 1393 1386 1545 1543 1365
2912 656 774 673 782 705 721 727 780 731 679 735
2913 657 673 578 501 530 631 537 591 601 541 509
2914 658 1574 1775 1522 1465 1676 1657 1550 1507 1614 1473
2915 659 376 380 387 130 382 374 366 234 237 230
2916 660 148 231 278 80 182 248 215 98 140 159
2917 661 2050 1981 1673 2025 2013 1835 1871 2029 1996 1847
2918 662 741 633 705 782 687 666 716 753 695 735
2919 663 1371 1578 1717 1474 1459 1645 1544 1418 1518 1595
2920 664 1809 1933 1701 1546 1889 1817 1750 1679 1746 1625
2921 665 1932 1814 1968 1756 1903 1902 1959 1845 1783 1862
2922 666 1121 1016 1059 1219 1070 1034 1093 1175 1113 1126
2923 667 795 894 763 714 844 826 779 750 797 732
2924 668 1610 1490 1296 1400 1547 1402 1456 1495 1434 1337
2925 669 1419 1288 1189 1364 1344 1232 1277 1396 1316 1256
2926 670 236 303 113 268 262 193 170 243 263 181
2927 671 113 236 268 327 170 243 181 192 249 282
2928 672 1963 2053 1987 1901 2004 2011 1973 1930 1982 1937
2929 673 592 599 704 520 590 643 650 550 557 616
2930 674 583 448 364 268 516 409 473 422 348 299
2931 675 1280 1373 1646 1707 1327 1494 1457 1489 1536 1667
2932 676 584 613 407 416 602 519 487 490 515 403
2933 677 1578 1509 1894 1945 1540 1712 1744 1760 1728 1918
2934 678 365 489 291 260 429 400 329 285 356 254
2935 679 1394 1305 1468 1219 1341 1384 1425 1298 1253 1319
2936 680 416 303 236 268 350 262 324 331 263 243
2937 681 489 479 291 260 485 388 400 356 358 254
2938 682 1509 1726 1894 1945 1623 1815 1712 1728 1830 1918
2939 683 1688 1791 1528 1701 1748 1664 1616 1685 1747 1608
2940 684 828 911 1016 890 874 970 913 850 895 945
2941 685 807 689 708 828 749 694 756 819 764 761
2942 686 236 416 268 450 324 331 243 330 415 339
2943 687 2161 1945 2048 1663 2047 1991 2123 1919 1806 1861
2944 688 1923 1809 1701 1574 1866 1750 1811 1769 1708 1628
2945 689 479 489 667 510 485 581 582 477 486 587
2946 690 479 489 510 260 485 486 477 358 356 369
2947 691 1071 974 1176 937 1013 1067 1114 999 949 1050
2948 692 801 859 849 1081 824 846 822 921 959 956
2949 693 647 578 673 530 615 631 665 580 541 601
2950 694 1923 1775 1574 1701 1864 1676 1769 1811 1723 1628
2951 695 2161 2049 1945 1663 2122 1984 2047 1919 1857 1806
2952 696 334 288 218 130 301 258 267 213 203 163
2953 697 1435 1447 1715 1761 1448 1562 1567 1596 1606 1735
2954 698 1211 1528 1364 1546 1360 1455 1275 1356 1527 1446
2955 699 1390 1391 1761 1777 1397 1586 1582 1502 1508 1754
2956 700 309 308 130 204 294 212 206 280 272 146
2957 701 505 583 530 268 546 553 514 379 422 402
2958 702 1528 1687 1364 1546 1615 1532 1455 1527 1619 1446
2959 703 652 584 416 708 620 490 544 677 637 577
2960 704 1717 1350 1636 1673 1534 1484 1666 1691 1440 1644
2961 705 460 464 599 260 462 525 523 357 359 430
2962 706 1391 1350 1717 1673 1376 1534 1549 1466 1440 1691
2963 707 1474 1371 1636 1717 1418 1493 1551 1595 1544 1666
2964 708 1509 1578 1474 1663 1540 1518 1486 1591 1620 1575
2965 709 489 365 510 260 429 425 486 356 285 369
2966 710 1189 1149 1419 1364 1159 1262 1277 1256 1247 1396
2967 711 1185 1474 1622 1400 1309 1539 1380 1267 1432 1498
2968 712 634 510 520 714 572 513 573 674 624 627
2969 713 975 859 1081 936 906 959 1018 931 878 997
2970 714 610 634 520 714 621 573 565 662 674 627
2971 715 1291 1185 1622 1400 1214 1380 1453 1333 1267 1498
2972 716 1868 1978 1669 1963 1928 1832 1780 1907 1962 1813
2973 717 450 314 327 236 384 315 375 330 261 249
2974 718 463 460 599 260 461 523 522 355 357 430
2975 719 599 707 704 783 651 709 643 691 738 736
2976 720 915 894 783 977 904 835 845 939 923 875
2977 721 987 872 936 782 922 902 966 880 827 857
2978 722 1343 1452 1100 1176 1405 1246 1213 1242 1284 1131
2979 723 1687 1701 1546 1528 1690 1625 1619 1615 1608 1527
2980 724 224 132 204 113 171 166 197 154 107 126
2981 725 1992 2065 1777 1865 2028 1934 1897 1926 1958 1816
2982 726 1992 2065 1865 1987 2028 1958 1926 1977 2012 1927
2983 727 610 520 696 714 565 617 649 662 627 699
2984 728 1291 1622 1501 1400 1453 1552 1392 1333 1498 1442
2985 729 505 381 268 501 441 317 379 508 440 373
2986 730 1269 1349 1707 1522 1314 1530 1485 1328 1381 1602
2987 731 1141 1185 1400 1474 1154 1267 1245 1273 1309 1432
2988 732 730 634 714 510 685 674 719 632 572 624
2989 733 1209 1084 1105 1059 1142 1101 1156 1124 1065 1076
2990 734 1112 1208 938 1057 1158 1063 1024 1085 1123 994
2991 735 1112 1208 1057 1189 1158 1123 1085 1140 1188 1115
2992 736 1149 1189 1038 937 1159 1103 1097 1037 1054 979
2993 737 385 416 236 450 389 324 297 420 415 330
2994 738 1435 1646 1707 2002 1526 1667 1570 1729 1834 1855
2995 739 334 364 268 174 347 299 292 228 266 200
2996 740 1979 2129 2025 1717 2056 2071 1999 1843 1925 1874
2997 741 143 117 80 291 124 82 87 199 201 167
2998 742 174 113 303 268 131 193 227 200 181 263
2999 743 1646 1901 1688 1707 1778 1792 1672 1667 1796 1683
3000 744 2053 1901 2002 1987 1982 1953 2035 2011 1937 1993
3001 745 1755 1610 1756 1400 1694 1675 1752 1581 1495 1587
3002 746 1189 1288 1264 1208 1232 1270 1221 1188 1238 1243
3003 747 1841 1701 1924 1688 1768 1810 1881 1753 1685 1812
3004 748 1901 2017 1841 1963 1961 1935 1860 1930 1989 1904
3005 749 132 60 37 113 94 30 59 107 76 64
3006 750 2065 2206 2064 1987 2152 2138 2057 2012 2099 2023
3007 751 987 872 782 890 922 827 880 927 877 825
3008 752 1987 2002 2157 1767 1993 2090 2062 1876 1887 1956
3009 753 1987 2002 1767 1707 1993 1887 1876 1850 1855 1730
3010 754 236 113 145 224 170 120 175 214 154 176
3011 755 1963 1987 2186 1992 1973 2084 2074 1969 1977 2109
3012 756 2015 2049 1663 1622 2046 1857 1840 1818 1839 1641
3013 757 113 174 58 160 131 111 63 115 156 92
3014 758 113 174 160 268 131 156 115 181 200 196
3015 759 1578 1462 1717 1979 1514 1593 1645 1794 1727 1843
3016 760 1923 1701 1841 1775 1811 1768 1877 1864 1723 1801
3017 761 1031 1030 1081 1141 1025 1049 1046 1094 1091 1102
3018 762 1968 2015 1756 1622 2006 1891 1862 1798 1818 1681
3019 763 1814 1968 1756 1622 1902 1862 1783 1711 1798 1681
3020 764 1021 1016 890 1059 1023 945 954 1040 1034 972
3021 765 1186 1269 1465 1522 1226 1358 1300 1272 1328 1473
3022 766 1088 1186 1465 1225 1136 1300 1239 1116 1174 1321
3023 767 1147 1112 977 1189 1134 1042 1056 1157 1140 1073
3024 768 1322 1209 1305 1059 1261 1244 1307 1178 1124 1169
3025 769 603 647 708 416 628 675 648 511 533 577
3026 770 583 693 530 613 636 614 553 597 661 564
3027 771 1656 1520 1789 1756 1599 1660 1732 1699 1633 1770
3028 772 110 148 278 80 121 215 188 70 98 159
3029 773 2032 2050 1673 2025 2042 1871 1869 2021 2029 1847
3030 774 1580 1343 1288 1176 1471 1306 1429 1345 1242 1223
3031 775 894 795 783 714 844 785 835 797 750 747
3032 776 1349 1390 1707 1669 1378 1542 1530 1437 1464 1680
3033 777 381 309 268 327 335 269 317 367 323 282
3034 778 303 407 174 268 361 274 227 263 318 200
3035 779 2048 2015 1663 1756 2043 1840 1861 1905 1891 1706
3036 780 1894 2129 1979 1717 2014 2056 1944 1799 1925 1843
3037 781 1089 975 1081 1105 1028 1018 1077 1066 1009 1087
3038 782 1462 1761 1717 1979 1618 1738 1593 1727 1867 1843
3039 783 308 380 130 278 336 237 212 304 345 178
3040 784 1382 1656 1474 1400 1523 1555 1422 1375 1516 1432
3041 785 987 1069 890 849 1036 981 927 903 950 869
3042 786 1610 1814 1756 1400 1714 1783 1675 1495 1609 1587
3043 787 1490 1634 1305 1400 1569 1467 1387 1434 1505 1335
3044 788 1701 1809 1546 1574 1750 1679 1625 1628 1708 1543
3045 789 1141 1229 1400 1081 1179 1293 1245 1102 1145 1212
3046 790 1452 1225 1100 1176 1332 1164 1246 1284 1198 1131
3047 791 1219 1257 1305 1059 1241 1271 1253 1126 1150 1169
3048 792 1987 2002 1707 1901 1993 1855 1850 1937 1953 1796
3049 793 584 613 416 708 602 515 490 637 653 577
3050 794 1462 1715 1761 1979 1583 1735 1618 1727 1856 1867
3051 795 302 218 130 143 255 163 207 198 173 118
3052 796 1468 1305 1634 1400 1384 1467 1538 1428 1335 1505
3053 797 1468 1394 1219 1520 1425 1298 1319 1487 1469 1361
3054 798 1211 1071 1176 1003 1132 1114 1184 1108 1043 1082
3055 799 501 450 327 268 474 375 412 373 339 282
3056 800 1522 1868 1669 1707 1705 1780 1601 1602 1773 1680
3057 801 1588 1364 1546 1288 1475 1446 1558 1430 1316 1417
3058 802 202 291 260 80 242 254 221 128 167 161
3059 803 2105 1894 1945 1717 2001 1918 2019 1908 1799 1829
3060 804 510 520 714 599 513 627 624 549 557 656
3061 805 510 520 599 260 513 557 549 369 378 430
3062 806 1474 1622 1400 1756 1539 1498 1432 1617 1681 1587
3063 807 667 718 599 783 692 659 625 713 744 691
3064 808 633 693 705 530 663 690 666 585 614 626
3065 809 705 633 530 673 666 585 626 679 641 601
3066 810 941 889 977 783 914 917 955 861 830 875
3067 811 464 470 599 260 467 526 525 359 360 430
3068 812 1634 1755 1468 1400 1697 1611 1538 1505 1581 1428
3069 813 1965 1922 1622 1636 1948 1771 1797 1803 1776 1627
3070 814 344 469 520 260 410 482 421 287 354 378
3071 815 889 1038 977 937 960 1001 917 897 979 947
3072 816 1390 1435 1707 1761 1399 1570 1542 1582 1596 1719
3073 817 309 334 268 130 325 292 269 206 213 168
3074 818 1922 1965 1945 1636 1948 1943 1915 1776 1803 1787
3075 819 1084 936 1105 1059 1007 1020 1101 1065 990 1076
3076 820 1208 1100 938 1057 1153 1019 1063 1123 1072 994
3077 821 1269 1280 1465 1707 1259 1366 1358 1485 1489 1573
3078 822 1187 1088 1465 1176 1119 1239 1301 1171 1120 1290
3079 823 2179 1979 2025 2064 2088 1999 2098 2120 2009 2034
3080 824 51 143 80 37 97 87 46 29 69 40
3081 825 231 190 260 80 209 217 226 140 123 161
3082 826 1981 2165 1945 2025 2091 2044 1949 1996 2094 1980
3083 827 2049 1945 1663 1636 1984 1806 1857 1846 1787 1648
3084 828 1945 1663 1636 1717 1806 1648 1787 1829 1689 1666
3085 829 1636 1945 1717 1981 1787 1829 1666 1805 1949 1842
3086 830 610 634 714 763 621 674 662 682 686 732
3087 831 1291 1185 1400 1296 1214 1267 1333 1297 1199 1337
3088 832 1945 2048 1663 1726 1991 1861 1806 1830 1890 1693
3089 833 1000 894 977 763 946 923 983 870 826 848
3090 834 1304 1490 1305 1296 1401 1387 1295 1317 1402 1281
3091 835 1069 1084 1059 849 1086 1065 1060 950 957 953
3092 836 1965 1981 1945 1636 1976 1949 1943 1803 1805 1787
3093 837 344 231 260 387 283 226 287 346 286 306
3094 838 693 741 705 849 712 716 690 767 790 775
3095 839 741 705 849 782 716 775 790 753 735 808
3096 840 110 35 80 37 66 43 70 45 14 40
3097 841 2032 2211 2025 2064 2145 2124 2021 2039 2139 2034
3098 842 1922 2049 1622 1636 1998 1839 1771 1776 1846 1627
3099 843 469 463 520 260 466 472 482 354 355 378
3100 844 218 130 143 160 163 118 173 179 137 134
3101 845 218 130 160 334 163 137 179 267 213 235
3102 846 143 218 160 174 173 179 134 125 180 156
3103 847 160 218 334 174 179 267 235 156 180 228
3104 848 130 143 160 37 118 134 137 73 69 86
3105 849 160 130 37 268 137 73 86 196 168 133
3106 850 1715 1761 1979 1767 1735 1867 1856 1742 1758 1870
3107 851 1715 1761 1767 1435 1735 1758 1742 1567 1596 1604
3108 852 1979 1715 1767 2002 1856 1742 1870 2003 1873 1887
3109 853 1767 1715 1435 2002 1742 1567 1604 1887 1873 1729
3110 854 1761 1979 1767 2064 1867 1870 1758 1914 2009 1920
3111 855 1767 1761 2064 1707 1758 1914 1920 1730 1719 1888
3112 856 2049 1922 1945 1636 1998 1915 1984 1846 1776 1787
3113 857 2002 2157 1767 1979 2090 1956 1887 2003 2077 1870
3114 858 2157 2064 1987 1767 2112 2023 2062 1956 1920 1876
3115 859 2157 2064 1767 1979 2112 1920 1956 2077 2009 1870
3116 860 58 37 113 160 38 64 63 92 86 115
3117 861 58 37 160 143 38 86 92 90 69 134
3118 862 795 704 783 714 751 736 785 750 697 747
3119 863 1211 1187 1528 1465 1197 1325 1360 1311 1301 1488
3120 864 174 58 160 143 111 92 156 125 90 134
3121 865 1663 1622 1756 2015 1641 1681 1706 1840 1818 1891
3122 866 977 1038 1189 937 1001 1103 1073 947 979 1054
3123 867 1149 1038 889 937 1097 960 1012 1037 979 897
3124 868 1656 1509 1474 1663 1594 1486 1555 1655 1591 1575
3125 869 693 801 849 828 743 822 767 758 811 832
3126 870 1016 1219 1031 1081 1113 1117 1027 1039 1137 1046
3127 871 1219 1031 1081 1229 1117 1046 1137 1236 1133 1145
3128 872 1761 1391 1717 1673 1586 1549 1738 1709 1466 1691
3129 873 529 647 416 530 595 533 457 512 580 458
3130 874 890 1069 1059 849 981 1060 972 869 950 953
3131 875 705 849 782 890 775 808 735 788 869 825
3132 876 705 849 890 828 775 869 788 760 832 850
3133 877 160 113 268 37 115 181 196 86 64 133
3134 878 1726 1858 1985 1756 1800 1938 1851 1724 1804 1872
3135 879 1726 1656 1858 1756 1695 1759 1800 1724 1699 1804
3136 880 1767 1987 1707 2064 1876 1850 1730 1920 2023 1888
3137 881 1225 1100 1176 974 1164 1131 1198 1062 1006 1067
3138 882 2065 1777 1865 2064 1934 1816 1958 2057 1913 1960
3139 883 2089 1841 1963 1868 1955 1904 2022 1994 1848 1907
3140 884 1546 1580 1288 1176 1553 1429 1417 1334 1345 1223
3141 885 1288 1546 1176 1364 1417 1334 1223 1316 1446 1249
3142 886 1865 2065 2064 1987 1958 2057 1960 1927 2012 2023
3143 887 2064 1865 1987 1707 1960 1927 2023 1888 1785 1850
3144 888 1865 1987 1707 1963 1927 1850 1785 1912 1973 1838
3145 889 1987 1707 1963 1901 1850 1838 1973 1937 1796 1930
3146 890 1865 1987 1963 1992 1927 1973 1912 1926 1977 1969
3147 891 1707 1865 1963 1669 1785 1912 1838 1680 1762 1813
3148 892 1520 1468 1756 1400 1487 1612 1633 1443 1428 1587
3149 893 1468 1756 1400 1755 1612 1587 1428 1611 1752 1581
3150 894 327 224 204 113 273 197 246 192 154 126
3151 895 1669 1992 1777 1865 1836 1897 1733 1762 1926 1816
3152 896 730 630 510 714 683 570 632 719 668 624
3153 897 1141 1382 1474 1400 1240 1422 1273 1245 1375 1432
3154 898 1945 1663 1717 1578 1806 1689 1829 1760 1620 1645
3155 899 1646 1901 1707 2002 1778 1796 1667 1834 1953 1855
3156 900 708 847 890 774 773 867 791 733 812 823
3157 901 1452 1580 1546 1176 1529 1553 1491 1284 1345 1334
3158 902 1669 1992 1865 1963 1836 1926 1762 1813 1969 1912
3159 903 816 889 783 667 856 830 794 737 772 713
3160 904 1059 890 849 1016 972 869 953 1034 945 918
3161 905 774 673 705 708 721 679 731 733 678 700
3162 906 510 630 667 714 570 642 587 624 668 684
3163 907 936 987 782 849 966 880 857 887 903 808
3164 908 782 936 849 859 857 887 808 805 878 846
3165 909 1468 1305 1400 1229 1384 1335 1428 1329 1254 1293
3166 910 689 613 708 828 655 653 694 764 717 761
3167 911 1208 1100 1057 1288 1153 1072 1123 1238 1177 1162
3168 912 1229 1520 1382 1400 1368 1463 1303 1293 1443 1375
3169 913 387 520 260 344 449 378 306 346 421 287
3170 914 365 376 387 130 370 366 352 225 234 230
3171 915 693 705 530 613 690 626 614 661 644 564
3172 916 938 1112 1057 977 1024 1085 994 942 1042 1010
3173 917 1112 1057 977 1189 1085 1010 1042 1140 1115 1073
3174 918 1057 977 1189 937 1010 1073 1115 998 947 1054
3175 919 1189 1057 937 1176 1115 998 1054 1172 1111 1050
3176 920 1057 977 937 938 1010 947 998 994 942 925
3177 921 1057 937 1176 1100 998 1050 1111 1072 1008 1131
3178 922 1189 1057 1176 1288 1115 1111 1172 1232 1162 1223
3179 923 1189 1057 1288 1208 1115 1162 1232 1188 1123 1238
3180 924 1176 1189 1288 1364 1172 1232 1223 1249 1256 1316
3181 925 1057 1176 1288 1100 1111 1223 1162 1072 1131 1177
3182 926 974 1176 937 1100 1067 1050 949 1006 1131 1008
3183 927 730 630 714 889 683 668 719 800 748 789
3184 928 1520 1468 1400 1229 1487 1428 1443 1368 1329 1293
3185 929 1520 1468 1229 1219 1487 1329 1368 1361 1319 1236
3186 930 1149 1189 937 1176 1159 1054 1037 1148 1172 1050
3187 931 1945 2105 1717 2025 2019 1908 1829 1980 2054 1874
3188 932 1717 1945 2025 1981 1829 1980 1874 1842 1949 1996
3189 933 807 708 890 828 756 791 841 819 761 850
3190 934 613 407 416 268 519 403 515 433 318 331
3191 935 1894 1945 1717 1578 1918 1829 1799 1744 1760 1645
3192 936 1717 1894 1578 1979 1799 1744 1645 1843 1944 1794
3193 937 1761 1767 1435 1707 1758 1604 1596 1719 1730 1570
3194 938 1767 1435 1707 2002 1604 1570 1730 1887 1729 1855
3195 939 130 160 334 268 137 235 213 168 196 292
3196 940 160 334 268 174 235 292 196 156 228 200
3197 941 1656 1382 1520 1400 1523 1463 1599 1516 1375 1443
3198 942 1100 938 1057 937 1019 994 1072 1008 925 998
3199 943 510 387 260 365 447 306 369 425 352 285
3200 944 1474 1663 1756 1656 1575 1706 1617 1555 1655 1699
3201 945 763 1000 938 977 870 971 843 848 983 942
3202 946 1296 1304 1105 1305 1317 1200 1202 1281 1295 1192
3203 947 1707 1963 1901 1841 1838 1930 1796 1766 1904 1860
3204 948 1462 1578 1715 1979 1514 1661 1583 1727 1794 1856
3205 949 302 365 218 143 326 256 255 198 239 173
3206 950 1707 1963 1841 1868 1838 1904 1766 1773 1907 1848
3207 951 1211 1364 1003 1176 1275 1160 1108 1184 1249 1082
3208 952 1211 1187 1465 1176 1197 1301 1311 1184 1171 1290
3209 953 1622 1400 1756 1814 1498 1587 1681 1711 1609 1783
3210 954 2048 1985 1756 1726 2020 1872 1905 1890 1851 1724
3211 955 1726 1509 1663 1945 1623 1591 1693 1830 1728 1806
3212 956 705 693 849 828 690 767 775 760 758 832
3213 957 1305 1468 1219 1229 1384 1319 1253 1254 1329 1236
3214 958 2064 1865 1707 1761 1960 1785 1888 1914 1808 1719
3215 959 2064 1865 1761 1777 1960 1808 1914 1913 1816 1754
3216 960 520 714 599 704 627 656 557 616 697 643
3217 961 364 407 613 268 377 519 478 299 318 433
3218 962 364 407 268 174 377 318 299 266 274 200
3219 963 1229 1141 1031 1081 1179 1094 1133 1145 1102 1046
3220 964 782 774 705 890 780 731 735 825 823 788
3221 965 1701 1546 1528 1465 1625 1527 1608 1589 1497 1488
3222 966 1701 1546 1465 1574 1625 1497 1589 1628 1543 1507
3223 967 1528 1701 1465 1688 1608 1589 1488 1616 1685 1565
3224 968 1701 1465 1688 1841 1589 1565 1685 1768 1659 1753
3225 969 1701 1465 1841 1775 1589 1659 1768 1723 1614 1801
3226 970 1465 1528 1688 1280 1488 1616 1565 1366 1398 1470
3227 971 1189 1149 1364 1176 1159 1247 1256 1172 1148 1249
3228 972 1656 1726 1663 1756 1695 1693 1655 1699 1724 1706
3229 973 1400 1474 1756 1656 1432 1617 1587 1516 1555 1699
3230 974 470 479 599 260 476 524 526 360 358 430
3231 975 530 705 673 708 626 679 601 623 700 678
3232 976 530 705 708 613 626 700 623 564 644 653
3233 977 365 302 130 143 326 207 225 239 198 118
3234 978 1501 1622 1814 1400 1552 1711 1665 1442 1498 1609
3235 979 696 520 704 714 617 616 701 699 627 697
3236 980 705 774 708 890 731 733 700 788 823 791
3237 981 708 705 890 828 700 788 791 761 760 850
3238 982 1777 1669 1865 1390 1733 1762 1816 1502 1464 1640
3239 983 505 530 501 268 514 509 508 379 402 373
3240 984 1707 1865 1669 1390 1785 1762 1680 1542 1640 1464
3241 985 1688 1465 1280 1707 1565 1366 1470 1683 1573 1489
3242 986 1088 1176 1225 1465 1120 1198 1116 1239 1290 1321
3243 987 704 599 783 714 643 691 736 697 656 747
3244 988 599 783 714 667 691 747 656 625 713 684
3245 989 450 529 416 530 483 457 415 468 512 458
3246 990 673 782 705 633 727 735 679 641 695 666
3247 991 1211 1364 1176 1546 1275 1249 1184 1356 1446 1334
3248 992 1343 1288 1176 1100 1306 1223 1242 1213 1177 1131
3249 993 714 510 599 667 624 549 656 684 587 625
3250 994 1688 1901 1841 1707 1792 1860 1753 1683 1796 1766
3251 995 501 673 530 633 591 601 509 576 641 585
3252 996 1636 1717 1673 1981 1666 1691 1644 1805 1842 1835
3253 997 1003 937 1071 1176 968 999 1043 1082 1050 1114
3254 998 859 849 1081 936 846 956 959 878 887 997
3255 999 1663 1474 1717 1578 1575 1595 1689 1620 1518 1645
3256 1000 1777 2032 1673 1761 1911 1869 1740 1754 1898 1709
3257 1001 204 110 278 130 155 188 220 146 89 178
3258 1002 387 380 278 130 374 345 320 230 237 178
3259 1003 890 987 849 782 927 903 869 825 880 808
3260 1004 1452 1225 1176 1546 1332 1198 1284 1491 1365 1334
3261 1005 714 740 937 938 724 836 818 814 815 925
3262 1006 1528 1211 1465 1546 1360 1311 1488 1527 1356 1497
3263 1007 667 479 510 599 582 477 587 625 524 549
3264 1008 1646 1435 1715 2002 1526 1567 1696 1834 1729 1873
3265 1009 364 334 218 174 347 267 253 266 228 180
3266 1010 130 143 37 80 118 69 73 93 87 40
3267 1011 37 130 80 110 73 93 40 45 89 70
3268 1012 130 143 80 365 118 87 93 225 239 191
3269 1013 1761 1979 2064 2025 1867 2009 1914 1899 1999 2034
3270 1014 2064 1761 2025 2032 1914 1899 2034 2039 1898 2021
3271 1015 1761 1979 2025 1717 1867 1999 1899 1738 1843 1874
3272 1016 2025 1761 1717 1673 1899 1738 1874 1847 1709 1691
3273 1017 1089 1400 1296 1081 1217 1337 1143 1077 1212 1166
3274 1018 740 714 763 938 724 732 739 815 814 843
3275 1019 463 599 520 260 522 557 472 355 430 378
3276 1020 1707 1865 1390 1761 1785 1640 1542 1719 1808 1582
3277 1021 450 501 530 268 474 509 468 339 373 402
3278 1022 236 113 224 327 170 154 214 249 192 273
3279 1023 291 143 365 80 199 239 329 167 87 191
3280 1024 2048 1663 1726 1756 1861 1693 1890 1905 1706 1724
3281 1025 858 937 938 1100 892 925 879 944 1008 1019
3282 1026 1149 889 1003 937 1012 951 1079 1037 897 968
3283 1027 1003 1149 937 1176 1079 1037 968 1082 1148 1050
3284 1028 1646 1688 1280 1707 1672 1470 1457 1667 1683 1489
3285 1029 113 268 37 204 181 133 64 126 205 99
3286 1030 783 894 714 977 835 797 747 875 923 837
3287 1031 714 783 977 889 747 875 837 789 830 917
3288 1032 1465 1688 1841 1707 1565 1753 1659 1573 1683 1766
3289 1033 1149 1003 1364 1176 1079 1160 1247 1148 1082 1249
3290 1034 278 231 387 80 248 286 320 159 140 208
3291 1035 1031 1016 1081 849 1027 1039 1046 924 918 956
3292 1036 936 1084 849 1059 1007 957 887 990 1065 953
3293 1037 1016 828 890 849 913 850 945 918 832 869
3294 1038 530 583 613 364 553 597 564 432 473 478
3295 1039 730 937 1003 889 829 968 852 800 897 951
3296 1040 730 714 937 889 719 818 829 800 789 897
3297 1041 1209 1305 1059 1081 1244 1169 1124 1125 1180 1061
3298 1042 1305 1059 1081 1219 1169 1061 1180 1253 1126 1137
3299 1043 1081 1305 1219 1229 1180 1253 1137 1145 1254 1236
3300 1044 1059 1081 1219 1016 1061 1137 1126 1034 1039 1113
3301 1045 1775 1574 1701 1465 1676 1628 1723 1614 1507 1589
3302 1046 708 647 673 530 675 665 678 623 580 601
3303 1047 708 647 530 416 675 580 623 577 533 458
3304 1048 530 708 416 613 623 577 458 564 653 515
3305 1049 801 1031 1081 849 898 1046 921 822 924 956
3306 1050 416 530 613 268 458 564 515 331 402 433
3307 1051 416 530 268 450 458 402 331 415 468 339
3308 1052 1756 1520 1400 1656 1633 1443 1587 1699 1599 1516
3309 1053 364 583 268 530 473 422 299 432 553 402
3310 1054 630 667 714 889 642 684 668 748 772 789
3311 1055 291 365 260 80 329 285 254 167 191 161
3312 1056 1059 1081 1016 849 1061 1039 1034 953 956 918
3313 1057 1059 1081 849 936 1061 956 953 990 997 887
3314 1058 1490 1296 1400 1305 1402 1337 1434 1387 1281 1335
3315 1059 894 763 714 977 826 732 797 923 848 837
3316 1060 1016 1031 828 849 1027 926 913 918 924 832
3317 1061 708 705 828 613 700 760 761 653 644 717
3318 1062 613 828 693 705 717 758 661 644 760 690
3319 1063 37 130 110 204 73 89 45 99 146 155
3320 1064 2064 1761 2032 1777 1914 1898 2039 1913 1754 1911
3321 1065 260 231 80 387 226 140 161 306 286 208
3322 1066 1209 1305 1081 1105 1244 1180 1125 1156 1192 1087
3323 1067 714 783 889 667 747 830 789 684 713 772
3324 1068 1522 1669 1349 1707 1601 1437 1381 1602 1680 1530
3325 1069 501 327 381 268 412 367 440 373 282 317
3326 1070 1059 1209 1081 1105 1124 1125 1061 1076 1156 1087
3327 1071 1509 1578 1663 1945 1540 1620 1591 1728 1760 1806
3328 1072 236 268 327 450 243 282 249 330 339 375
3329 1073 1963 1707 1669 1868 1838 1680 1813 1907 1773 1780
3330 1074 801 1031 849 828 898 924 822 811 926 832
3331 1075 479 510 599 260 477 549 524 358 369 430
3332 1076 1761 2025 2032 1673 1899 2021 1898 1709 1847 1869
3333 1077 130 80 110 278 93 70 89 178 159 188
3334 1078 1865 1390 1761 1777 1640 1582 1808 1816 1502 1754
3335 1079 975 1081 1105 936 1018 1087 1009 931 997 1020
3336 1080 204 132 37 113 166 59 99 126 107 64
3337 1081 714 763 938 977 732 843 814 837 848 942
3338 1082 1081 1105 936 1059 1087 1020 997 1061 1076 990
3339 1083 1717 1673 1981 2025 1691 1835 1842 1874 1847 1996
3340 1084 1522 1775 1841 1465 1657 1801 1674 1473 1614 1659
3341 1085 1868 1522 1841 1707 1705 1674 1848 1773 1602 1766
3342 1086 1225 1176 1546 1465 1198 1334 1365 1321 1290 1497
3343 1087 1176 1546 1465 1211 1334 1497 1290 1184 1356 1311
3344 1088 1305 1081 1105 1296 1180 1087 1192 1281 1166 1202
3345 1089 268 364 530 613 299 432 402 433 478 564
3346 1090 977 889 937 714 917 897 947 837 789 818
3347 1091 1761 1391 1673 1777 1586 1466 1709 1754 1508 1740
3348 1092 130 308 278 204 212 304 178 146 272 220
3349 1093 937 977 714 938 947 837 818 925 942 814
3350 1094 37 130 204 268 73 146 99 133 168 205
3351 1095 80 260 387 365 161 306 208 191 285 352
3352 1096 1081 1305 1229 1400 1180 1254 1145 1212 1335 1293
3353 1097 1081 1305 1400 1296 1180 1335 1212 1166 1281 1337
3354 1098 130 80 278 387 93 159 178 230 208 320
3355 1099 1296 1105 1089 1081 1202 1066 1143 1166 1087 1077
3356 1100 1522 1574 1465 1186 1550 1507 1473 1272 1276 1300
3357 1101 1186 1465 1225 1574 1300 1321 1174 1276 1507 1393
3358 1102 1465 1225 1574 1546 1321 1393 1507 1497 1365 1543
3359 1103 1707 1269 1522 1465 1485 1328 1602 1573 1358 1473
3360 1104 268 113 327 204 181 192 282 205 126 246
3361 1105 327 204 309 268 246 280 323 282 205 269
3362 1106 130 309 204 268 206 280 146 168 269 205
3363 1107 1841 1465 1707 1522 1659 1573 1766 1674 1473 1602
3364 1108 80 130 365 387 93 225 191 208 230 352
3365 end elements
+0
-772
interface/src/scilab/demos/data/holed_disc_with_quadratic_2D_triangles.msh less more
0 MESH dimension 2 ElemType Triangle Nnode 6
1 Coordinates
2 1 5.87785 -8.09017
3 2 5.70841 -7.36755
4 3 6.49356 -7.60485
5 4 5.22187 -8.52831
6 5 5.15099 -7.65485
7 6 6.30502 -6.858
8 7 4.48202 -8.0648
9 8 4.98155 -6.93223
10 9 5.53898 -6.64494
11 10 4.5399 -8.91007
12 11 7.07107 -7.07107
13 12 4.42413 -7.21953
14 13 6.59582 -6.26051
15 14 3.89009 -8.3664
16 15 5.82978 -6.04744
17 16 3.83221 -7.52113
18 17 7.60485 -6.49356
19 18 3.82116 -9.24114
20 19 4.71113 -5.9949
21 20 4.1537 -6.2822
22 21 3.24028 -7.82273
23 22 6.12058 -5.44995
24 23 7.10537 -5.6639
25 24 3.16523 -8.66665
26 25 5.00193 -5.39741
27 26 3.23284 -6.7514
28 27 3.09017 -9.51057
29 28 8.09017 -5.87785
30 29 6.67005 -4.93704
31 30 2.60846 -8.02802
32 31 3.88327 -5.34487
33 32 2.64092 -7.053
34 33 2.53341 -8.87194
35 34 7.65485 -5.15099
36 35 2.96242 -5.81407
37 36 5.52052 -4.39341
38 37 1.97664 -8.23331
39 38 7.21953 -4.42413
40 39 8.52831 -5.22187
41 40 2.32599 -9.72573
42 41 2.0091 -7.25829
43 42 4.40187 -4.34086
44 43 6.06999 -3.8805
45 44 1.77049 -9.0551
46 45 8.0648 -4.48202
47 46 2.04156 -6.28327
48 47 3.49278 -4.38634
49 48 1.32049 -8.33723
50 49 1.35295 -7.36221
51 50 2.69681 -4.77236
52 51 7.6408 -3.83366
53 52 1.56434 -9.87688
54 53 8.91007 -4.5399
55 54 4.92046 -3.33686
56 55 1.11434 -9.15902
57 56 6.7514 -3.23284
58 57 8.48607 -3.89154
59 58 1.77595 -5.24156
60 59 4.01137 -3.38234
61 60 0.664334 -8.44116
62 61 1.02587 -6.118
63 62 8.06207 -3.24318
64 63 5.60187 -2.68921
65 64 3.10229 -3.42782
66 65 9.24114 -3.82116
67 66 0.773235 -9.97006
68 67 2.30632 -3.81383
69 68 7.17267 -2.64237
70 69 0.337254 -7.19694
71 70 0.332167 -9.22058
72 71 8.78632 -3.16668
73 72 4.02222 -2.58276
74 73 1.51035 -4.19985
75 74 8.2245 -2.68166
76 75 0.76026 -5.07629
77 76 -0.0887942 -8.29899
78 77 6.28327 -2.04156
79 78 3.11313 -2.62824
80 79 4.65641 -2.06439
81 80 9.51057 -3.09017
82 81 -9.42055e-15 -10
83 82 7.3351 -2.08085
84 83 2.2904 -3.00141
85 84 0.0101749 -5.95272
86 85 8.94874 -2.60515
87 86 -0.420961 -9.07841
88 87 -0.415874 -7.05477
89 88 1.49443 -3.38743
90 89 8.38692 -2.12014
91 90 0.744329 -3.90981
92 91 5.33781 -1.41674
93 92 -0.841922 -8.15683
94 93 -0.0057564 -4.78625
95 94 3.12397 -1.82867
96 95 2.30124 -2.20184
97 96 7.36221 -1.35295
98 97 -0.773235 -9.97006
99 98 9.72573 -2.32599
100 99 9.1319 -1.84224
101 100 1.47851 -2.575
102 101 6.44495 -1.02078
103 102 3.75816 -1.3103
104 103 -1.20313 -9.01685
105 104 8.41404 -1.39224
106 105 0.728412 -3.09739
107 106 -0.703629 -5.17664
108 107 -1.22034 -6.14467
109 108 -1.48103 -8.27187
110 109 -0.0216877 -3.61977
111 110 2.47918 -1.50813
112 111 4.39235 -0.791927
113 112 1.65645 -1.8813
114 113 -1.64638 -7.24672
115 114 1.19505 -2.07695
116 115 9.87688 -1.56434
117 116 -1.56434 -9.87688
118 117 5.49949 -0.395964
119 118 9.15902 -1.11434
120 119 3.04662 -0.917871
121 120 0.683608 -2.37871
122 121 -0.719561 -4.01017
123 122 -1.84224 -9.1319
124 123 8.44116 -0.664334
125 124 -0.0664916 -2.9011
126 125 7.52389 -0.332167
127 126 3.68081 -0.3995
128 127 1.83439 -1.1876
129 128 -2.12014 -8.38692
130 129 1.37298 -1.38325
131 130 6.60662 1.591e-10
132 131 -1.41743 -4.40057
133 132 0.911578 -1.5789
134 133 -2.28549 -7.36177
135 134 2.40183 -0.597335
136 135 -1.93414 -5.36859
137 136 0.400141 -1.88066
138 137 4.45603 0.0904115
139 138 -0.756225 -3.09385
140 139 -2.32599 -9.72573
141 140 9.97006 -0.773235
142 141 -0.111296 -2.18242
143 142 9.22058 -0.332167
144 143 8.44116 -2.20606e-11
145 144 -2.45085 -6.33662
146 145 1.82877 -0.593798
147 146 -2.60515 -8.94874
148 147 1.35021 -0.843798
149 148 7.52389 0.332167
150 149 5.56317 0.486375
151 150 2.96927 -0.00707296
152 151 -2.72259 -8.22983
153 152 0.888802 -1.03945
154 153 -1.4541 -3.48425
155 154 0.455789 -1.28945
156 155 -0.801029 -2.37518
157 156 -0.0556478 -1.59121
158 157 2.39622 -0.00353648
159 158 -2.88794 -7.20468
160 159 3.7445 0.482839
161 160 -0.511437 -1.88066
162 161 0.48354 -0.875322
163 162 1.82316 -1.33287e-11
164 163 -2.14972 -3.90425
165 164 1.34459 -0.25
166 165 9.22058 0.332167
167 166 10 -6.28037e-15
168 167 -3.09017 -9.51057
169 168 0.866025 -0.5
170 169 -3.2076 -8.79165
171 170 8.44116 0.664334
172 171 6.44495 1.02078
173 172 -2.66643 -4.87227
174 173 4.51972 0.97275
175 174 -3.32504 -8.07274
176 175 -1.49076 -2.56793
177 176 7.41997 0.988321
178 177 -3.14018e-16 -1
179 178 2.45748 0.493877
180 179 -1.20117 -2.07342
181 180 -0.455789 -1.28945
182 181 -0.911578 -1.5789
183 182 -3.43749 -6.77807
184 183 3.05747 0.892016
185 184 1 -6.34694e-12
186 185 1.88442 0.497413
187 186 1.34459 0.25
188 187 -2.18638 -2.98793
189 188 5.4015 1.50715
190 189 -0.48354 -0.875322
191 190 3.83269 1.38193
192 191 8.33723 1.32049
193 192 -3.56949 -5.72151
194 193 9.97006 0.773235
195 194 -3.87458 -7.64613
196 195 -3.82116 -9.24114
197 196 9.15902 1.11434
198 197 -0.888802 -1.03945
199 198 -3.93247 -8.4914
200 199 -1.71822 -1.78138
201 200 1.94568 0.994827
202 201 1.40585 0.747413
203 202 -2.882 -3.40792
204 203 0.866025 0.5
205 204 -1.42863 -1.28686
206 205 4.58 1.85533
207 206 2.54567 1.39297
208 207 -2.31821 -2.17952
209 208 6.28327 2.04156
210 209 -0.866025 -0.5
211 210 7.25829 2.0091
212 211 3.14566 1.7911
213 212 -4.42413 -7.21953
214 213 8.23331 1.97664
215 214 -1.40585 -0.747413
216 215 -4.48202 -8.0648
217 216 9.0551 1.77049
218 217 1.42863 1.28686
219 218 -3.78507 -4.25716
220 219 0.888802 1.03945
221 220 -4.5399 -8.91007
222 221 9.87688 1.56434
223 222 -3.01383 -2.59951
224 223 0.48354 0.875322
225 224 5.46177 2.38973
226 225 3.89297 2.26451
227 226 -1.94568 -0.994827
228 227 -4.55613 -6.16297
229 228 -1 6.34788e-12
230 229 -1.34459 -0.25
231 230 1.71822 1.78138
232 231 -2.54567 -1.39297
233 232 7.053 2.64092
234 233 0 1
235 234 0.455789 1.28945
236 235 -1.88442 -0.497413
237 236 -3.76114 -3.07291
238 237 2.31821 2.17952
239 238 0.911578 1.5789
240 239 4.64027 2.73791
241 240 8.02802 2.60846
242 241 -0.866025 0.5
243 242 -4.68814 -5.1064
244 243 -0.48354 0.875322
245 244 -3.14566 -1.7911
246 245 -5.06039 -6.8649
247 246 -1.34459 0.25
248 247 -5.15099 -7.65485
249 248 8.87194 2.53341
250 249 3.01383 2.59951
251 250 9.72573 2.32599
252 251 -5.22187 -8.52831
253 252 -1.82316 1.33275e-11
254 253 6.48854 3.06422
255 254 1.20117 2.07342
256 255 -2.45748 -0.493877
257 256 0.0556478 1.59121
258 257 -5.19239 -5.80834
259 258 -0.455789 1.28945
260 259 0.511437 1.88066
261 260 -4.66421 -3.92216
262 261 3.76114 3.07291
263 262 -0.888802 1.03945
264 263 -3.89297 -2.26451
265 264 -3.05747 -0.892016
266 265 -1.35021 0.843798
267 266 7.82273 3.24028
268 267 5.66704 3.41239
269 268 1.49076 2.56793
270 269 -2.39622 0.00353648
271 270 8.66665 3.16523
272 271 -1.82877 0.593798
273 272 0.801029 2.37518
274 273 2.18638 2.98793
275 274 -5.69664 -6.51028
276 275 -5.78725 -7.30022
277 276 -5.87785 -8.09017
278 277 9.51057 3.09017
279 278 -5.56335 -5.30272
280 279 0.111296 2.18242
281 280 -0.400141 1.88066
282 281 -4.64027 -2.73791
283 282 -3.83269 -1.38193
284 283 -0.911578 1.5789
285 284 7.25827 3.66358
286 285 4.65593 3.70475
287 286 2.882 3.40792
288 287 -1.37298 1.38325
289 288 -2.96927 0.00707296
290 289 -2.40183 0.597335
291 290 -1.83439 1.1876
292 291 -5.69097 -4.59664
293 292 -6.0676 -6.00466
294 293 -4.58 -1.85533
295 294 6.69381 4.08688
296 295 8.3664 3.89009
297 296 -3.7445 -0.482839
298 297 0.756225 3.09385
299 298 3.7768 4.03975
300 299 -6.38385 -6.79067
301 300 -0.683608 2.37871
302 301 9.24114 3.82116
303 302 -6.49356 -7.60485
304 303 -1.19505 2.07695
305 304 0.0664916 2.9011
306 305 -5.66704 -3.41239
307 306 5.6827 4.37923
308 307 -1.65645 1.8813
309 308 1.39197 3.60966
310 309 7.80194 4.31339
311 310 -6.43856 -5.49905
312 311 -4.51972 -0.97275
313 312 -3.04662 0.917871
314 313 2.08759 4.02966
315 314 -5.52984 -2.45349
316 315 -2.47918 1.50813
317 316 -6.75481 -6.28506
318 317 -3.68081 0.3995
319 318 4.67159 4.67159
320 319 -6.56618 -4.79296
321 320 6.56618 4.79296
322 321 -1.47851 2.575
323 322 -7.07107 -7.07107
324 323 8.91007 4.5399
325 324 -0.728412 3.09739
326 325 -4.45603 -0.0904115
327 326 2.94067 4.64723
328 327 -5.46957 -1.57091
329 328 0.0216877 3.61977
330 329 -2.30124 2.20184
331 330 7.39199 4.98236
332 331 5.55507 5.08532
333 332 -6.69381 -4.08688
334 333 0.657428 4.13558
335 334 -7.26436 -5.68845
336 335 -6.55661 -3.12798
337 336 -3.12397 1.82867
338 337 -3.75816 1.3103
339 338 3.83546 5.27906
340 339 1.29317 4.6514
341 340 8.52831 5.22187
342 341 -7.60485 -6.49356
343 342 -4.39235 0.791927
344 343 6.43856 5.49905
345 344 -7.39199 -4.98236
346 345 -1.49443 3.38743
347 346 -6.41941 -2.16908
348 347 5.08532 5.55507
349 348 -5.62739 -0.658709
350 349 -0.744329 3.90981
351 350 -2.2904 3.00141
352 351 7.26436 5.68845
353 352 2.14626 5.26897
354 353 -7.32362 -3.62971
355 354 -3.11313 2.62824
356 355 5.9688 5.9688
357 356 4.54786 5.94556
358 357 8.09017 5.87785
359 358 -8.09017 -5.87785
360 359 -5.56371 0.22363
361 360 -7.18642 -2.67081
362 361 -7.80194 -4.31339
363 362 -6.57724 -1.25687
364 363 -0.323302 4.76035
365 364 2.99934 5.88654
366 365 -3.95279 2.30668
367 366 -1.51035 4.19985
368 367 -4.58698 1.78831
369 368 6.75481 6.28506
370 369 -2.30632 3.81383
371 370 1.16334 5.58834
372 371 0.312438 5.27616
373 372 -7.32636 -2.07286
374 373 5.49905 6.43856
375 374 -3.10229 3.42782
376 375 -7.95343 -3.17253
377 376 7.60485 6.49356
378 377 -8.52831 -5.22187
379 378 -6.73507 -0.344667
380 379 3.71174 6.55303
381 380 2.01642 6.20591
382 381 -5.54535 1.3529
383 382 6.28506 6.75481
384 383 -1.08932 5.05039
385 384 -3.94195 3.10625
386 385 -8.43175 -3.85622
387 386 4.96159 6.82904
388 387 -8.09337 -2.57459
389 388 -7.48419 -1.16066
390 389 3.11981 6.85464
391 390 -8.91007 -4.5399
392 391 7.07107 7.07107
393 392 -4.78161 2.78469
394 393 5.68845 7.26436
395 394 -8.23331 -1.97664
396 395 4.42413 7.21953
397 396 0.182606 6.2131
398 397 1.0335 6.52528
399 398 -6.71671 0.784601
400 399 -8.732 -3.13135
401 400 -0.668291 5.90093
402 401 -2.25484 5.0432
403 402 -7.69617 -0.494466
404 403 -3.05081 4.65718
405 404 -5.73998 2.34928
406 405 -4.0113 4.05649
407 406 6.49356 7.60485
408 407 -9.24114 -3.82116
409 408 2.13689 7.17401
410 409 3.83221 7.52113
411 410 -8.87194 -2.53341
412 411 5.15099 7.65485
413 412 -7.58811 0.159833
414 413 -8.4453 -1.31045
415 414 -4.85096 3.73492
416 415 -1.83382 5.89373
417 416 -6.69836 1.91387
418 417 3.24028 7.82273
419 418 -9.51057 -3.09017
420 419 5.87785 8.09017
421 420 1.47601 7.4803
422 421 -9.0551 -1.77049
423 422 4.48202 8.0648
424 423 -8.65728 -0.644264
425 424 -5.74135 3.42948
426 425 -7.56976 1.2891
427 426 0.901956 7.59051
428 427 -8.54922 0.0100347
429 428 2.5794 8.12903
430 429 -2.99934 5.88654
431 430 3.89009 8.3664
432 431 0.184585 7.48322
433 432 -3.95983 5.28585
434 433 -0.666313 7.17104
435 434 5.22187 8.52831
436 435 -9.72573 -2.32599
437 436 -1.35304 6.9037
438 437 -9.26708 -1.1043
439 438 -4.92032 4.68515
440 439 -6.69972 2.99407
441 440 -8.44116 0.664334
442 441 -7.58415 2.00424
443 442 -7.26054 2.57708
444 443 3.16523 8.66665
445 444 1.91853 8.43532
446 445 -9.87688 -1.56434
447 446 4.5399 8.91007
448 447 -9.32864 -0.322132
449 448 -5.8107 4.37971
450 449 -2.51857 6.8965
451 450 -8.45555 1.37947
452 451 1.34447 8.54553
453 452 -9.22058 0.332167
454 453 2.50435 8.97294
455 454 -3.11981 6.85464
456 455 3.82116 9.24114
457 456 -9.97006 -0.773235
458 457 -4.24919 6.16255
459 458 -6.70109 4.07427
460 459 0.770408 8.65573
461 460 -5.68833 5.15727
462 461 -5.20968 5.56185
463 462 -3.71531 6.65808
464 463 -8.46994 2.0946
465 464 -7.26191 3.65727
466 465 0.0530373 8.54844
467 466 -9.15902 1.11434
468 467 -8.14633 2.66744
469 468 1.74144 9.1561
470 469 -0.664334 8.44116
471 470 -7.82273 3.24028
472 471 -1.35106 8.17381
473 472 3.09017 9.51057
474 473 -10 9.42055e-15
475 474 -2.03779 7.90647
476 475 -6.57871 4.85182
477 476 1.16738 9.26631
478 477 -9.17341 1.82947
479 478 -2.63904 7.8646
480 479 -9.97006 0.773235
481 480 2.32599 9.72573
482 481 0.385204 9.32786
483 482 -8.99025 2.59238
484 483 -3.24028 7.82273
485 484 -0.332167 9.22058
486 485 -8.66665 3.16523
487 486 -5.97769 6.03397
488 487 -6.45634 5.62938
489 488 -5.49905 6.43856
490 489 -7.80558 4.30709
491 490 -3.83578 7.62617
492 491 1.56434 9.87688
493 492 -9.87688 1.56434
494 493 -4.96517 6.93408
495 494 -1.11434 9.15902
496 495 -8.3664 3.89009
497 496 -7.39563 4.97606
498 497 -4.43129 7.42961
499 498 -1.80107 8.89168
500 499 -9.72573 2.32599
501 500 0.773235 9.97006
502 501 -2.56398 8.70852
503 502 0 10
504 503 -9.51057 3.09017
505 504 -3.16523 8.66665
506 505 -7.27325 5.75362
507 506 -3.89009 8.3664
508 507 -6.28506 6.75481
509 508 -6.7637 6.35022
510 509 -5.68845 7.26436
511 510 -0.773235 9.97006
512 511 -9.24114 3.82116
513 512 -4.4856 8.16984
514 513 -5.15457 7.75989
515 514 -8.91007 4.5399
516 515 -1.56434 9.87688
517 516 -2.32599 9.72573
518 517 -8.52831 5.22187
519 518 -8.09017 5.87785
520 519 -3.09017 9.51057
521 520 -3.82116 9.24114
522 521 -7.60485 6.49356
523 522 -7.07107 7.07107
524 523 -4.5399 8.91007
525 524 -5.22187 8.52831
526 525 -6.49356 7.60485
527 526 -5.87785 8.09017
528 end coordinates
529
530 Elements
531 1 168 177 132 161 154 152
532 2 233 203 238 223 219 234
533 3 209 241 252 228 246 229
534 4 241 233 283 243 258 262
535 5 177 209 181 189 197 180
536 6 203 168 162 184 164 186
537 7 132 177 141 154 156 136
538 8 181 209 226 197 214 204
539 9 252 241 290 246 265 271
540 10 283 233 279 258 256 280
541 11 238 203 200 219 201 217
542 12 162 168 127 164 147 145
543 13 168 132 127 152 129 147
544 14 127 132 100 129 114 112
545 15 177 181 141 180 160 156
546 16 141 181 175 160 179 155
547 17 209 252 226 229 235 214
548 18 226 252 288 235 269 255
549 19 241 283 290 262 287 265
550 20 290 283 321 287 303 307
551 21 233 238 279 234 259 256
552 22 279 238 268 259 254 272
553 23 203 162 200 186 185 201
554 24 200 162 150 185 157 178
555 25 132 141 100 136 120 114
556 26 238 200 268 217 230 254
557 27 252 290 288 271 289 269
558 28 283 279 321 280 300 303
559 29 181 226 175 204 199 179
560 30 162 127 150 145 134 157
561 31 127 100 94 112 95 110
562 32 279 268 328 272 297 304
563 33 226 288 244 255 264 231
564 34 290 321 336 307 329 315
565 35 141 175 109 155 138 124
566 36 200 150 211 178 183 206
567 37 94 100 64 95 83 78
568 38 109 175 131 138 153 121
569 39 244 288 311 264 296 282
570 40 336 321 374 329 350 354
571 41 328 268 339 297 308 333
572 42 211 150 173 183 159 190
573 43 127 94 150 110 119 134
574 44 141 109 100 124 105 120
575 45 226 244 175 231 207 199
576 46 290 336 288 315 312 289
577 47 279 328 321 304 324 300
578 48 200 211 268 206 237 230
579 49 277 323 266 301 295 270
580 50 276 220 212 251 215 247
581 51 502 515 469 510 494 484
582 52 1 11 9 3 6 2
583 53 503 492 463 499 477 482
584 54 419 446 395 434 422 411
585 55 526 522 488 525 507 509
586 56 81 52 60 66 55 70
587 57 418 390 375 407 385 399
588 58 80 115 89 98 99 85
589 59 519 523 483 520 506 504
590 60 357 391 343 376 368 351
591 61 167 116 128 139 122 146
592 62 28 53 38 39 45 34
593 63 473 445 423 456 437 447
594 64 27 10 21 18 14 24
595 65 518 514 458 517 489 496
596 66 472 491 444 480 468 453
597 67 358 322 310 341 316 334
598 68 166 221 170 193 196 165
599 69 220 167 174 195 169 198
600 70 323 357 294 340 330 309
601 71 515 519 474 516 501 498
602 72 11 28 22 17 23 13
603 73 492 473 440 479 452 466
604 74 446 472 417 455 443 430
605 75 522 518 487 521 505 508
606 76 52 27 37 40 33 44
607 77 390 358 332 377 344 361
608 78 115 166 123 140 142 118
609 79 523 526 497 524 513 512
610 80 391 419 373 406 393 382
611 81 116 81 92 97 86 103
612 82 53 80 62 65 71 57
613 83 445 418 394 435 410 421
614 84 514 503 470 511 485 495
615 85 10 1 12 4 5 7
616 86 491 502 459 500 481 476
617 87 322 276 274 302 275 299
618 88 221 277 213 250 248 216
619 89 64 100 73 83 88 67
620 90 339 268 286 308 273 313
621 91 311 288 342 296 317 325
622 92 374 321 366 350 345 369
623 93 131 175 202 153 187 163
624 94 173 150 111 159 126 137
625 95 94 64 54 78 59 72
626 96 328 339 400 333 371 363
627 97 244 311 281 282 293 263
628 98 336 374 392 354 384 365
629 99 109 131 84 121 106 93
630 100 211 173 239 190 205 225
631 101 266 323 294 295 309 284
632 102 266 294 208 284 253 232
633 103 458 514 470 489 495 464
634 104 458 416 392 439 404 424
635 105 92 81 60 86 70 76
636 106 92 60 84 76 69 87
637 107 375 390 332 385 361 353
638 108 375 332 346 353 335 360
639 109 440 473 423 452 447 427
640 110 440 423 378 427 402 412
641 111 174 167 128 169 146 151
642 112 174 128 144 151 133 158
643 113 12 1 9 5 2 8
644 114 12 9 31 8 19 20
645 115 463 492 440 477 466 450
646 116 463 440 416 450 425 441
647 117 332 358 310 344 334 319
648 118 332 242 281 291 260 305
649 119 128 116 92 122 103 108
650 120 128 92 144 108 113 133
651 121 310 322 274 316 299 292
652 122 310 274 242 292 257 278
653 123 394 418 375 410 399 387
654 124 394 375 346 387 360 372
655 125 469 515 474 494 498 471
656 126 469 474 400 471 436 433
657 127 483 523 497 506 512 490
658 128 483 497 429 490 462 454
659 129 487 518 458 505 496 475
660 130 487 458 438 475 448 460
661 131 274 276 212 275 247 245
662 132 274 212 242 245 227 257
663 133 488 522 487 507 508 486
664 134 488 487 438 486 460 461
665 135 474 519 483 501 504 478
666 136 474 483 429 478 454 449
667 137 497 526 488 513 509 493
668 138 497 488 429 493 457 462
669 139 423 445 394 437 421 413
670 140 423 394 378 413 388 402
671 141 62 80 89 71 85 74
672 142 62 89 77 74 82 68
673 143 212 220 174 215 198 194
674 144 212 174 144 194 158 182
675 145 444 491 459 468 476 451
676 146 444 459 397 451 426 420
677 147 417 472 444 443 453 428
678 148 417 444 397 428 420 408
679 149 89 115 123 99 118 104
680 150 89 123 77 104 96 82
681 151 395 446 417 422 430 409
682 152 395 417 364 409 389 379
683 153 294 357 343 330 351 320
684 154 294 318 239 306 285 267
685 155 459 502 469 481 484 465
686 156 459 469 397 465 431 426
687 157 38 53 62 45 57 51
688 158 38 62 77 51 68 56
689 159 123 166 170 142 165 143
690 160 123 170 130 143 148 125
691 161 470 503 463 485 482 467
692 162 470 463 416 467 441 442
693 163 9 11 22 6 13 15
694 164 9 22 31 15 25 19
695 165 170 221 213 196 216 191
696 166 170 213 130 191 176 148
697 167 343 391 373 368 382 355
698 168 343 373 318 355 347 331
699 169 37 27 21 33 24 30
700 170 37 21 46 30 32 41
701 171 22 28 38 23 34 29
702 172 22 38 54 29 43 36
703 173 213 277 266 248 270 240
704 174 213 266 208 240 232 210
705 175 60 52 37 55 44 48
706 176 60 37 46 48 41 49
707 177 21 10 12 14 7 16
708 178 21 12 46 16 26 32
709 179 373 419 395 393 411 386
710 180 373 395 318 386 356 347
711 181 73 100 109 88 105 90
712 182 73 109 84 90 93 75
713 183 202 175 244 187 207 222
714 184 202 244 281 222 263 236
715 185 281 311 346 293 327 314
716 186 54 64 31 59 47 42
717 187 84 131 144 106 135 107
718 188 342 288 336 317 312 337
719 189 342 336 392 337 365 367
720 190 392 374 438 384 405 414
721 191 286 268 211 273 237 249
722 192 286 211 239 249 225 261
723 193 111 150 94 126 119 102
724 194 111 94 54 102 72 79
725 195 366 321 328 345 324 349
726 196 366 328 400 349 363 383
727 197 400 339 397 371 370 396
728 198 400 397 469 396 431 433
729 199 239 173 208 205 188 224
730 200 64 73 31 67 50 47
731 201 131 202 144 163 172 135
732 202 311 342 378 325 359 348
733 203 339 286 364 313 326 352
734 204 173 111 130 137 117 149
735 205 374 366 429 369 401 403
736 206 281 346 332 314 335 305
737 207 239 208 294 224 253 267
738 208 73 84 46 75 61 58
739 209 342 392 416 367 404 381
740 210 416 458 470 439 464 442
741 211 111 54 77 79 63 91
742 212 77 54 38 63 43 56
743 213 366 400 429 383 415 401
744 214 286 239 318 261 285 298
745 215 202 281 242 236 260 218
746 216 318 294 343 306 320 331
747 217 242 332 310 291 319 278
748 218 395 364 318 379 338 356
749 219 438 458 392 448 424 414
750 220 213 208 130 210 171 176
751 221 364 417 397 389 408 380
752 222 488 438 429 461 432 457
753 223 123 130 77 125 101 96
754 224 416 440 378 425 412 398
755 225 12 31 46 20 35 26
756 226 394 346 378 372 362 388
757 227 438 374 429 405 403 432
758 228 208 173 130 188 149 171
759 229 346 311 378 327 348 362
760 230 46 31 73 35 50 58
761 231 364 397 339 380 370 352
762 232 318 364 286 338 326 298
763 233 77 130 111 101 117 91
764 234 416 378 342 398 359 381
765 235 46 84 60 61 69 49
766 236 202 242 144 218 192 172
767 237 84 144 92 107 113 87
768 238 212 144 242 182 192 227
769 239 474 429 400 449 415 436
770 240 31 22 54 25 36 42
771 end elements
+0
-23
interface/src/scilab/demos/data/quad.geo less more
0 lc = 0.025 ;
1
2 a = .5;
3
4 Point(1) = {-a,-a,0,lc};
5 Point(2) = { a,-a,0,lc};
6 Point(3) = { a, a,0,lc};
7 Point(4) = {-a, a,0,lc};
8
9 Line(5) = {1,2};
10 Line(6) = {2,3};
11 Line(7) = {3,4};
12 Line(8) = {4,1};
13
14 Line Loop(9) = {5,6,7,8};
15 Plane Surface(10) = {9};
16
17 Physical Line(101) = {7};
18 Physical Line(102) = {5};
19 Physical Line(103) = {8};
20 Physical Line(104) = {6};
21
22 Physical Surface(201) = {10};
+0
-5452
interface/src/scilab/demos/data/quad.msh less more
0 $MeshFormat
1 2 0 8
2 $EndMeshFormat
3 $Nodes
4 1815
5 1 -0.5 -0.5 0
6 2 0.5 -0.5 0
7 3 0.5 0.5 0
8 4 -0.5 0.5 0
9 5 -0.4743589743590455 -0.5 0
10 6 -0.4487179487180911 -0.5 0
11 7 -0.4230769230771366 -0.5 0
12 8 -0.3974358974361821 -0.5 0
13 9 -0.3717948717952276 -0.5 0
14 10 -0.3461538461542731 -0.5 0
15 11 -0.3205128205133187 -0.5 0
16 12 -0.2948717948723643 -0.5 0
17 13 -0.2692307692314098 -0.5 0
18 14 -0.2435897435904464 -0.5 0
19 15 -0.2179487179494564 -0.5 0
20 16 -0.1923076923084663 -0.5 0
21 17 -0.1666666666674762 -0.5 0
22 18 -0.1410256410264861 -0.5 0
23 19 -0.1153846153854961 -0.5 0
24 20 -0.08974358974450602 -0.5 0
25 21 -0.06410256410351595 -0.5 0
26 22 -0.03846153846252592 -0.5 0
27 23 -0.01282051282153585 -0.5 0
28 24 0.01282051281948982 -0.5 0
29 25 0.038461538460551 -0.5 0
30 26 0.0641025641016123 -0.5 0
31 27 0.08974358974267349 -0.5 0
32 28 0.1153846153837347 -0.5 0
33 29 0.141025641024796 -0.5 0
34 30 0.1666666666658572 -0.5 0
35 31 0.1923076923069184 -0.5 0
36 32 0.2179487179479797 -0.5 0
37 33 0.2435897435890408 -0.5 0
38 34 0.2692307692301288 -0.5 0
39 35 0.2948717948712256 -0.5 0
40 36 0.3205128205123223 -0.5 0
41 37 0.3461538461534192 -0.5 0
42 38 0.371794871794516 -0.5 0
43 39 0.3974358974356128 -0.5 0
44 40 0.4230769230767096 -0.5 0
45 41 0.4487179487178065 -0.5 0
46 42 0.4743589743589033 -0.5 0
47 43 0.5 -0.4743589743590455 0
48 44 0.5 -0.4487179487180911 0
49 45 0.5 -0.4230769230771366 0
50 46 0.5 -0.3974358974361821 0
51 47 0.5 -0.3717948717952276 0
52 48 0.5 -0.3461538461542731 0
53 49 0.5 -0.3205128205133187 0
54 50 0.5 -0.2948717948723643 0
55 51 0.5 -0.2692307692314098 0
56 52 0.5 -0.2435897435904464 0
57 53 0.5 -0.2179487179494564 0
58 54 0.5 -0.1923076923084663 0
59 55 0.5 -0.1666666666674762 0
60 56 0.5 -0.1410256410264861 0
61 57 0.5 -0.1153846153854961 0
62 58 0.5 -0.08974358974450602 0
63 59 0.5 -0.06410256410351595 0
64 60 0.5 -0.03846153846252592 0
65 61 0.5 -0.01282051282153585 0
66 62 0.5 0.01282051281948982 0
67 63 0.5 0.038461538460551 0
68 64 0.5 0.0641025641016123 0
69 65 0.5 0.08974358974267349 0
70 66 0.5 0.1153846153837347 0
71 67 0.5 0.141025641024796 0
72 68 0.5 0.1666666666658572 0
73 69 0.5 0.1923076923069184 0
74 70 0.5 0.2179487179479797 0
75 71 0.5 0.2435897435890408 0
76 72 0.5 0.2692307692301288 0
77 73 0.5 0.2948717948712256 0
78 74 0.5 0.3205128205123223 0
79 75 0.5 0.3461538461534192 0
80 76 0.5 0.371794871794516 0
81 77 0.5 0.3974358974356128 0
82 78 0.5 0.4230769230767096 0
83 79 0.5 0.4487179487178065 0
84 80 0.5 0.4743589743589033 0
85 81 0.4743589743590455 0.5 0
86 82 0.4487179487180911 0.5 0
87 83 0.4230769230771366 0.5 0
88 84 0.3974358974361821 0.5 0
89 85 0.3717948717952276 0.5 0
90 86 0.3461538461542731 0.5 0
91 87 0.3205128205133187 0.5 0
92 88 0.2948717948723643 0.5 0
93 89 0.2692307692314098 0.5 0
94 90 0.2435897435904464 0.5 0
95 91 0.2179487179494564 0.5 0
96 92 0.1923076923084663 0.5 0
97 93 0.1666666666674762 0.5 0
98 94 0.1410256410264861 0.5 0
99 95 0.1153846153854961 0.5 0
100 96 0.08974358974450602 0.5 0
101 97 0.06410256410351595 0.5 0
102 98 0.03846153846252592 0.5 0
103 99 0.01282051282153585 0.5 0
104 100 -0.01282051281948982 0.5 0
105 101 -0.038461538460551 0.5 0
106 102 -0.0641025641016123 0.5 0
107 103 -0.08974358974267349 0.5 0
108 104 -0.1153846153837347 0.5 0
109 105 -0.141025641024796 0.5 0
110 106 -0.1666666666658572 0.5 0
111 107 -0.1923076923069184 0.5 0
112 108 -0.2179487179479797 0.5 0
113 109 -0.2435897435890408 0.5 0
114 110 -0.2692307692301288 0.5 0
115 111 -0.2948717948712256 0.5 0
116 112 -0.3205128205123223 0.5 0
117 113 -0.3461538461534192 0.5 0
118 114 -0.371794871794516 0.5 0
119 115 -0.3974358974356128 0.5 0
120 116 -0.4230769230767096 0.5 0
121 117 -0.4487179487178065 0.5 0
122 118 -0.4743589743589033 0.5 0
123 119 -0.5 0.4743589743590455 0
124 120 -0.5 0.4487179487180911 0
125 121 -0.5 0.4230769230771366 0
126 122 -0.5 0.3974358974361821 0
127 123 -0.5 0.3717948717952276 0
128 124 -0.5 0.3461538461542731 0
129 125 -0.5 0.3205128205133187 0
130 126 -0.5 0.2948717948723643 0
131 127 -0.5 0.2692307692314098 0
132 128 -0.5 0.2435897435904464 0
133 129 -0.5 0.2179487179494564 0
134 130 -0.5 0.1923076923084663 0
135 131 -0.5 0.1666666666674762 0
136 132 -0.5 0.1410256410264861 0
137 133 -0.5 0.1153846153854961 0
138 134 -0.5 0.08974358974450602 0
139 135 -0.5 0.06410256410351595 0
140 136 -0.5 0.03846153846252592 0
141 137 -0.5 0.01282051282153585 0
142 138 -0.5 -0.01282051281948982 0
143 139 -0.5 -0.038461538460551 0
144 140 -0.5 -0.0641025641016123 0
145 141 -0.5 -0.08974358974267349 0
146 142 -0.5 -0.1153846153837347 0
147 143 -0.5 -0.141025641024796 0
148 144 -0.5 -0.1666666666658572 0
149 145 -0.5 -0.1923076923069184 0
150 146 -0.5 -0.2179487179479797 0
151 147 -0.5 -0.2435897435890408 0
152 148 -0.5 -0.2692307692301288 0
153 149 -0.5 -0.2948717948712256 0
154 150 -0.5 -0.3205128205123223 0
155 151 -0.5 -0.3461538461534192 0
156 152 -0.5 -0.371794871794516 0
157 153 -0.5 -0.3974358974356128 0
158 154 -0.5 -0.4230769230767096 0
159 155 -0.5 -0.4487179487178065 0
160 156 -0.5 -0.4743589743589033 0
161 157 -0.2246381585434973 -0.1237159691182985 0
162 158 0.06414346773493755 0.08191861270675561 0
163 159 0.240218308333751 -0.2503595579491587 0
164 160 -0.3801158221202792 -0.1354279129924548 0
165 161 -0.2696550491643642 0.2209064134258062 0
166 162 0.3480906643148007 0.1319068489572337 0
167 163 -0.233430007347746 -0.226041666842 0
168 164 0.2804068689734228 -0.28728269910902 0
169 165 -0.2711540160396167 -0.2663370515455922 0
170 166 0.2590077502129211 0.2629919031282368 0
171 167 -0.2863307800379311 0.2898530701358558 0
172 168 0.3070225214953282 -0.2916137453819735 0
173 169 -0.2689385877672628 -0.3132945702484866 0
174 170 0.2836867701245824 0.2786113203583631 0
175 171 0.2931548939818068 -0.3374935581243342 0
176 172 -0.3350495717505528 -0.2789797491843717 0
177 173 0.3483240723413036 0.3023918465631197 0
178 174 -0.3260680835856691 -0.3044684289710712 0
179 175 0.3314411901840627 -0.3071928106858156 0
180 176 0.310783549937918 0.3218705979873919 0
181 177 -0.3228730597579141 0.3127487382756397 0
182 178 0.3321467920151465 -0.3305180044978621 0
183 179 -0.337160677326226 -0.3296595134693135 0
184 180 0.3334959704854685 0.3383659792587062 0
185 181 -0.3305606390673863 0.3402423168245035 0
186 182 0.3565917946811328 -0.3356016576519744 0
187 183 -0.3422807628560473 -0.3534465290227297 0
188 184 -0.3561700997736277 0.3442328369697045 0
189 185 0.3655486281172514 -0.359034086491082 0
190 186 -0.3618429649672557 -0.36544923249193 0
191 187 0.3728207120375247 -0.3774399115241973 0
192 188 -0.3775253456447621 -0.372751311281909 0
193 189 0.3720753353444644 0.3704246027549744 0
194 190 -0.3684793904398109 0.3709166083742402 0
195 191 0.3899378940642143 -0.3888692217112883 0
196 192 -0.388095878823578 -0.3942095436047262 0
197 193 -0.3899402112148575 0.3888807163061661 0
198 194 0.3889376075270255 0.3898763619329688 0
199 195 0.4068778100284322 -0.3986081436516363 0
200 196 0.3985484821631162 0.4073145900941516 0
201 197 -0.4068751957653449 0.398617584294367 0
202 198 -0.4212670732030939 -0.4199476667890679 0
203 199 0.4179814505003966 -0.4174383458906437 0
204 200 -0.4179992586327899 0.4174346663499834 0
205 201 0.4174194002123204 0.4181803085107444 0
206 202 -0.4411493225160708 -0.4323168549260541 0
207 203 0.4321521869258784 -0.4406500911571865 0
208 204 0.440649022841912 0.4322110412839695 0
209 205 -0.4321547603311095 0.4406498614346148 0
210 206 -0.4601044090397227 -0.4508324653494233 0
211 207 0.4508326490407663 -0.4601042472839809 0
212 208 0.4601044463484896 0.4508323894067026 0
213 209 -0.4508326431014811 0.460104258074032 0
214 210 0.07151821596921322 -0.2729480392083865 0
215 211 -0.2290548017989142 -0.3243281753528331 0
216 212 0.2121485618570398 0.2889485741504089 0
217 213 0.05885833049379886 0.2904610069533174 0
218 214 -0.1121465465093402 -0.2836605839999703 0
219 215 0.3089985987252353 0.02012680849698424 0
220 216 -0.1013865160722998 0.168780522000382 0
221 217 -0.2629910914968696 0.05643144477286705 0
222 218 0.2120518138354384 0.1405773896907306 0
223 219 -0.09000755562805858 0.394697769233617 0
224 220 0.1879557783855454 -0.07559295592107131 0
225 221 0.395374696806197 -0.1402090190964029 0
226 222 0.09756428978814574 -0.4198076891294044 0
227 223 -0.2060478359646989 0.3767222335187956 0
228 224 -0.1181301063651554 -0.4325797744729064 0
229 225 0.1045069786466381 0.4309581626076868 0
230 226 -0.0501617665257422 -0.06970093771124213 0
231 227 0.3941425378796411 -0.1832373305617832 0
232 228 -0.3903900945379237 0.1386164465808252 0
233 229 -0.2604372348373231 0.326651071538568 0
234 230 0.2030743177635037 -0.4096269276452206 0
235 231 0.3904721003714222 -0.2371462928004302 0
236 232 -0.1871671327468562 -0.4227575864530657 0
237 233 0.1857507268028277 0.4066846125653555 0
238 234 -0.401343538203322 0.2010476501623432 0
239 235 -0.3587775348831652 0.2448505177322442 0
240 236 -0.2149403983226092 -0.4262963715293218 0
241 237 0.2145577541580648 0.4099361201103413 0
242 238 0.2546220428966975 -0.3664818795509857 0
243 239 -0.3850224227818661 -0.2134477937245889 0
244 240 -0.2201259091022559 0.3962843252176891 0
245 241 -0.4426274607625044 -0.2146069079468539 0
246 242 -0.4011935288947092 0.2653122878469342 0
247 243 -0.2636676267650596 -0.3887999008211717 0
248 244 0.2523605457823343 0.3665906661788367 0
249 245 0.2772357943491172 -0.3992254014542009 0
250 246 -0.3938207397833322 -0.2681922735755341 0
251 247 0.3881539262520375 0.2724135437216801 0
252 248 -0.4498056014199898 0.2750372248099194 0
253 249 0.4447881390637934 -0.2750339462033797 0
254 250 -0.3133102882379871 -0.1486000109053875 0
255 251 0.2790537082752048 -0.4208434999773327 0
256 252 -0.436205952109593 -0.285849081589033 0
257 253 -0.2822648425069288 0.4318945553427952 0
258 254 0.4386177005204189 0.2977158023535322 0
259 255 0.4100861886441963 -0.3181235338442939 0
260 256 -0.3179646307441417 -0.4092818060161317 0
261 257 0.3222103631204671 0.4113171488211831 0
262 258 -0.408891907252328 0.3186591693349262 0
263 259 -0.3083011890916674 -0.2326645922647371 0
264 260 0.2913852041255077 0.2008729298719141 0
265 261 0.4157522174365657 -0.3460287153894815 0
266 262 -0.3473665886975881 -0.4169917025266841 0
267 263 0.347199250325971 0.4174172632652985 0
268 264 -0.4157522174365657 0.3460287153894815 0
269 265 0.3505068028888512 -0.4070677707796028 0
270 266 -0.408497481410884 -0.3479757350118425 0
271 267 -0.3509751921782516 0.410476214367935 0
272 268 0.4083474003712879 0.3461416099078045 0
273 269 0.4321949540010341 0.06080039460765285 0
274 270 -0.4516758028709625 -0.07540997997617326 0
275 271 0.3576662450028771 0.4432808994755541 0
276 272 -0.4422390292058333 0.3569327706742109 0
277 273 0.4422390292058333 -0.3569327706742109 0
278 274 -0.3565545662649404 -0.4463208692070771 0
279 275 0.4494367858698163 0.1561947918323631 0
280 276 -0.4464470534928807 -0.380843924084404 0
281 277 0.383423908254954 -0.44234169334198 0
282 278 -0.3820476235085743 0.4454918033880256 0
283 279 0.4464283877341174 0.3837279433823157 0
284 280 -0.3864820899909498 -0.446782455437566 0
285 281 0.3870983215807531 0.4500967512481976 0
286 282 -0.4496957917720699 0.3870044354919019 0
287 283 0.4496098088748622 -0.3870337904637665 0
288 284 -0.4572991958361048 -0.1542050131485794 0
289 285 -0.4104264097432028 -0.4650320420007266 0
290 286 0.466810398042704 -0.411427862532545 0
291 287 0.4114490034282882 0.4669763248718291 0
292 288 -0.4668246894712085 0.4114233065523641 0
293 289 -0.4519802572628135 -0.4124035280637573 0
294 290 0.4053594201247939 -0.4555472992101479 0
295 291 -0.412404453902852 0.4519798739640512 0
296 292 0.4519800052201666 0.4124037500647161 0
297 293 -0.4769600415208343 -0.4395695507741852 0
298 294 0.4369032341752732 -0.482398052377113 0
299 295 0.476960037723064 0.4395695482729057 0
300 296 -0.4395696068667911 0.4769600078475666 0
301 297 -0.481383452382826 -0.4630141943844079 0
302 298 0.4630142358466147 -0.4813834195373261 0
303 299 -0.4630142333585185 0.4813834216096662 0
304 300 0.4813834579679921 0.4630141813104078 0
305 301 0.0655864913204935 -0.07777928804828461 0
306 302 -0.1111253775619446 0.2935253381850647 0
307 303 -0.1763783747375568 0.3297848542857909 0
308 304 -0.1595304954704717 0.003859162867807549 0
309 305 0.03903911333688232 -0.3814067450365863 0
310 306 0.122648110933195 -0.1750476658443307 0
311 307 -0.08150296069028823 -0.1845429801294607 0
312 308 -0.08386694172397491 0.05681501921731685 0
313 309 0.01651950621325184 -0.1757459889259862 0
314 310 0.05483325539895873 0.1698441302196988 0
315 311 -0.05759629082035639 -0.3980012725979954 0
316 312 0.1749724140391191 -0.3634598654346436 0
317 313 0.1350414421120036 0.2039680296133582 0
318 314 0.3280332084552449 -0.04754159980851078 0
319 315 0.03279677815035703 0.4156394233454533 0
320 316 -0.1693018898227303 -0.1906678607878766 0
321 317 0.2115068135409078 0.0334220583256807 0
322 318 0.3101260519726858 -0.1151387127828217 0
323 319 0.1095953683235189 0.01184009956346101 0
324 320 -0.0257049551751265 0.2301483523589767 0
325 321 -0.03579335048493034 0.3464876879588024 0
326 322 0.2394732593393201 -0.1922475352843346 0
327 323 -0.2343486330852892 -0.040026041463933 0
328 324 0.3350602170640797 -0.1964885190280001 0
329 325 0.1534824251997974 0.3673657403342114 0
330 326 -0.01599733270968665 0.1179149828610953 0
331 327 0.1298319354096203 0.1053518473213666 0
332 328 -0.3616438525971765 0.05799558232673448 0
333 329 0.1235363382058345 -0.3526142151266562 0
334 330 -0.1769997023836843 0.1083270881447257 0
335 331 0.1745390172109938 -0.2760765323759873 0
336 332 -0.1532749180415016 -0.09940168084255574 0
337 333 -0.02114366652138859 -0.2843780403520366 0
338 334 -0.1961437395313716 0.2234548203332188 0
339 335 -0.295547723184929 -0.09503445447028742 0
340 336 0.08870699119468242 0.3714883217769288 0
341 337 -0.3404489779947348 0.1175242689663537 0
342 338 -0.320475617722005 -0.01545795380142376 0
343 339 0.2223973660849738 -0.3382625417602638 0
344 340 -0.3501088119395395 0.1797070195688298 0
345 341 -0.2669189799628383 0.1532393807688831 0
346 342 0.1562689472920334 0.2984068791144301 0
347 343 0.01237017037287984 0.01870835170188793 0
348 344 -0.1163747060117901 -0.3830790253745969 0
349 345 0.2058269679178308 0.2300350039799763 0
350 346 0.2685126658407412 0.07827891991923143 0
351 347 -0.3560143513283464 0.2243550883836921 0
352 348 -0.2438040165927744 0.3064371344931049 0
353 349 -0.1759367686915068 -0.257786114608932 0
354 350 0.3766294266864414 0.03709011277887159 0
355 351 0.2374308080024708 -0.4315472360533988 0
356 352 -0.1839146428223041 0.4296238416402929 0
357 353 0.2898898356293007 0.1285447254149605 0
358 354 0.3753887265334435 -0.02099464996570708 0
359 355 -0.4271987699255694 0.21265513668565 0
360 356 0.3897502632683829 0.09250449892307565 0
361 357 -0.4511919086987299 -0.03058127592610862 0
362 358 -0.352560453663275 -0.109047443442576 0
363 359 0.4489356783461623 -0.1750623155483693 0
364 360 0.3295847736214636 0.08021728837229326 0
365 361 -0.3122251798676373 -0.327677646310469 0
366 362 0.2022247884568935 0.3557513699785018 0
367 363 -0.173829127568764 -0.3363461872582291 0
368 364 -0.2224480984790413 0.4576489643358251 0
369 365 -0.3163381906331493 0.2128353322869423 0
370 366 -0.2559471648143826 -0.4322672629875977 0
371 367 0.4036119028524198 0.1937440445785954 0
372 368 0.4239630069921412 0.002801519797387471 0
373 369 0.4002236733096349 0.1429182259998392 0
374 370 -0.1513385027857927 0.3771106728954877 0
375 371 0.2611109670243449 -0.4430027763439669 0
376 372 -0.2271396258706113 -0.1702854125402687 0
377 373 0.4419634193937046 0.1053125452298864 0
378 374 -0.2656378104813977 0.3498472837900604 0
379 375 0.3030056109162233 -0.2512524201048013 0
380 376 0.4508589448557923 -0.1272785575025556 0
381 377 0.2381005403208721 -0.2940750178896643 0
382 378 -0.2664544219486886 0.4493186234902822 0
383 379 -0.05819588073147629 0.4412649951326141 0
384 380 0.4340219456254206 0.2655879477729979 0
385 381 -0.2281999956789253 -0.2852008228016019 0
386 382 0.2696093980369596 0.1804247150641926 0
387 383 -0.3471469734535635 -0.1775187145684156 0
388 384 -0.2722072425692297 -0.1839219518963381 0
389 385 -0.4411397042746482 0.2297098357031689 0
390 386 0.4504656244839111 -0.2516169986613594 0
391 387 -0.4377086749577532 -0.2619458811775119 0
392 388 -0.390395736060709 -0.2926414136755323 0
393 389 0.394180759697094 0.2970971373169298 0
394 390 -0.3666471492703192 0.2932325089822679 0
395 391 -0.3191226303608615 0.2686516334027125 0
396 392 -0.3935474941253913 -0.09653181979551806 0
397 393 -0.3569422064262646 -0.304058531327865 0
398 394 -0.323362852964241 0.4500732626625082 0
399 395 0.4511307181730274 0.3192025650742656 0
400 396 -0.4526312539043165 -0.3207184112922193 0
401 397 0.3330813587837625 0.2571893863761296 0
402 398 0.359693706622481 0.1792015155046588 0
403 399 0.3023391364377226 0.4548495753288053 0
404 400 -0.4260986671838084 -0.1949582135881782 0
405 401 0.2407731862055602 0.1864410466895014 0
406 402 -0.44543224888437 0.1374058948242953 0
407 403 -0.4537414681567242 0.3051927909846061 0
408 404 0.4530737111224714 -0.305500869204243 0
409 405 -0.2664039188899282 -0.1348230133870363 0
410 406 -0.4239653122618642 -0.07118515998505454 0
411 407 0.1817584259898141 0.4505310793004654 0
412 408 -0.3113490458137827 0.3577324079834219 0
413 409 0.4492107345035101 0.3441051133407083 0
414 410 -0.4497861545579065 -0.3455900099384405 0
415 411 -0.359995711578819 -0.2471387405619534 0
416 412 -0.271105349615792 -0.3401792381689802 0
417 413 -0.4200924936391929 -0.1508245668057278 0
418 414 -0.2867223095999852 -0.368010712234843 0
419 415 -0.248319006031115 0.2618041776058289 0
420 416 -0.1221824336696338 0.4408220229129656 0
421 417 0.238884806770855 0.253834391826482 0
422 418 -0.4564730830047768 -0.1262734877011369 0
423 419 0.2714219222047924 -0.3290581826544163 0
424 420 0.1942429035460486 -0.4585509449957836 0
425 421 -0.2462476622462868 -0.3026075658014397 0
426 422 -0.4026631513964538 0.09402187844146677 0
427 423 -0.290191088166573 -0.2730578371515981 0
428 424 0.3607120920219084 0.2640496081813277 0
429 425 0.1461878597425766 0.4168996850346958 0
430 426 -0.1790809874255454 -0.4600955862107829 0
431 427 0.4567246007919757 -0.05525621155116862 0
432 428 0.1477222497261805 -0.4143644879760671 0
433 429 0.2262621257405442 0.4689668027347998 0
434 430 0.2181948099661064 -0.3885605082743439 0
435 431 0.4026129234896533 0.2244619752477623 0
436 432 0.3354164403071029 0.4601006016952629 0
437 433 -0.3637367654496437 0.3151957741042619 0
438 434 0.3678382868254901 -0.312607416316683 0
439 435 0.07058004448946084 -0.4553878506338042 0
440 436 -0.4598398364255016 0.335443420660243 0
441 437 0.4597210930558408 -0.3355342623006356 0
442 438 -0.3113058000863768 -0.2024196423960656 0
443 439 0.2511689912662532 -0.3906300879013925 0
444 440 -0.3162011064444564 -0.3625859421663142 0
445 441 -0.1620337674696594 -0.4238797824937947 0
446 442 0.4806011071767964 0.2801334335320016 0
447 443 -0.2781209507397481 0.4719655617019862 0
448 444 0.2989893586297379 -0.4593255976602033 0
449 445 -0.475401707624011 -0.2775454357525098 0
450 446 -0.3663773785427258 -0.2717648769757903 0
451 447 0.3178397006164626 0.2108045304872605 0
452 448 -0.2453217525557046 -0.3516107667259795 0
453 449 0.3674021049041685 0.2874650170514259 0
454 450 -0.3334575677725233 -0.4701330690623559 0
455 451 -0.3658394057763371 0.422114421598012 0
456 452 0.3631613481879233 -0.4272609685998121 0
457 453 0.4748510867319227 0.2042074114313661 0
458 454 -0.3359097618557443 -0.2261015730995278 0
459 455 -0.2338744727778087 -0.4745993856224264 0
460 456 -0.2794082934715849 -0.2264252217130485 0
461 457 0.2940385792591854 -0.3613506051301145 0
462 458 0.3852545826356911 -0.3352129218298948 0
463 459 -0.3846664363763533 0.3397064593379991 0
464 460 0.1417326446881837 0.4687717409146379 0
465 461 -0.3376958631334321 -0.3757133423904364 0
466 462 0.341048515962634 0.371480077127176 0
467 463 -0.3559446498994648 -0.1561464487217685 0
468 464 0.2700150782913629 0.4111679368669262 0
469 465 0.4094040339733309 0.255713131497078 0
470 466 -0.3662333627476299 -0.3359824272410173 0
471 467 -0.4101170575811395 -0.2482788269488689 0
472 468 0.3737608984042356 0.3336178620620217 0
473 469 -0.3389259815977432 0.3687953802011916 0
474 470 0.3296205248824993 -0.3782564636643162 0
475 471 -0.4134115181111896 -0.2186671192301388 0
476 472 -0.2377509470727666 -0.4086632109920356 0
477 473 0.2411586839846636 0.3938454617928752 0
478 474 0.2643414108567193 0.289586155763807 0
479 475 0.4724924862812164 0.1484079749498032 0
480 476 -0.4785141387913881 -0.1999544707475841 0
481 477 -0.2320476037123159 0.4194819510284138 0
482 478 -0.269625527412256 -0.4143391298070381 0
483 479 -0.2510569909247246 -0.3258242207931694 0
484 480 0.3916612863679426 -0.3657598308014646 0
485 481 -0.3950914649386559 0.3646163167608473 0
486 482 -0.4305708207203928 0.2937242365568079 0
487 483 0.4285865928209873 -0.2973121795737447 0
488 484 -0.1546487333612749 -0.4739566883738796 0
489 485 -0.3117566564089489 -0.260610298407769 0
490 486 -0.3617784958424957 -0.3912525108184818 0
491 487 0.3612358874971804 0.3949766106703319 0
492 488 0.2743377262789037 -0.3538046137888388 0
493 489 -0.2588343155241018 0.4258137116318826 0
494 490 -0.2998846864021729 -0.4276887800353188 0
495 491 0.2986656234605352 0.4217649701106565 0
496 492 0.1217374550810704 -0.4716093433911609 0
497 493 -0.3914088979392386 0.2196565435078701 0
498 494 0.359924973128304 0.4722332072146392 0
499 495 -0.3852032539055369 -0.475698016307364 0
500 496 -0.4720011952749769 0.3597872305257072 0
501 497 0.4719827380421047 -0.3598105384290184 0
502 498 -0.2821801481514065 0.3120844810527149 0
503 499 -0.2934952555308226 0.2655586721973213 0
504 500 0.4749888662109934 0.2309776948048782 0
505 501 0.4560103372524731 0.1962779248135161 0
506 502 0.2463773846925365 -0.4661644931348571 0
507 503 -0.4224245030355324 0.2754800576569927 0
508 504 -0.3861739976241021 -0.3550521254940793 0
509 505 0.3869159002170499 0.3504661205874577 0
510 506 -0.3524808375467835 0.3899654707762003 0
511 507 0.3501935024141698 -0.3817234819099118 0
512 508 -0.2865834181038439 -0.2471827311617758 0
513 509 0.4170941192444971 -0.3763040198531802 0
514 510 -0.4175819862143486 0.3761468309089979 0
515 511 -0.3736607934024434 -0.4196913528711899 0
516 512 0.3759230289585304 0.4182015642840601 0
517 513 0.2578265195193447 -0.4160268456596115 0
518 514 -0.4169571484178534 -0.3926697482000949 0
519 515 0.4166773462213672 0.3893297522484228 0
520 516 -0.3895686394942663 0.4154489642226989 0
521 517 0.3895555018694479 -0.4154562048714115 0
522 518 0.2841857872246858 0.2298002898281954 0
523 519 -0.404990993380389 0.2929839190678235 0
524 520 0.4028673894076824 -0.289047144232376 0
525 521 -0.4534770662596668 -0.1876116690097613 0
526 522 -0.2293160428763529 0.4741985980111784 0
527 523 -0.4732878309924806 -0.2253143494770787 0
528 524 0.381477334797596 0.2471619045610993 0
529 525 -0.4042802633044176 0.1773798533917264 0
530 526 -0.2641701494194753 0.3003429983002093 0
531 527 -0.4014545810942714 -0.3695558766743174 0
532 528 0.4007144526088306 0.3668203058719534 0
533 529 -0.3701111510266332 0.3999387810394832 0
534 530 0.3698574879503956 -0.4000442328992244 0
535 531 0.2788470405265768 0.4704641369928499 0
536 532 -0.4610624756028232 -0.4773644406169216 0
537 533 0.4773530206314182 -0.4610549151852209 0
538 534 -0.4773529413688896 0.461055049568634 0
539 535 0.4610558474968677 0.4773610754121078 0
540 536 -0.3818348581058671 -0.2430096489789747 0
541 537 0.2974438543757557 0.3957024097400593 0
542 538 -0.3930930970559099 0.4738386654457047 0
543 539 0.4742115464749734 0.3913283742154683 0
544 540 -0.4742611996842382 -0.3908735981921055 0
545 541 -0.2704164066868858 -0.469529329115841 0
546 542 0.4760496593488734 0.05198786095508845 0
547 543 -0.2899567368053643 -0.3971881118625815 0
548 544 0.08272434329720502 0.4787043128083663 0
549 545 -0.4734402230743419 0.2651339799468587 0
550 546 -0.4583921580590958 -0.4308461786355786 0
551 547 0.458392158122785 0.4308461226895082 0
552 548 -0.4308466066810197 0.4583918787597726 0
553 549 0.427263734440366 -0.4645999811684438 0
554 550 -0.2580421768111331 -0.2464243113396672 0
555 551 -0.09613130045519402 -0.4762286975152661 0
556 552 0.4716282614047961 0.1771851636969164 0
557 553 0.4354669316583903 -0.3245053214777966 0
558 554 -0.4354669316583903 0.3245053214777966 0
559 555 -0.3291296340156365 -0.4383129384735922 0
560 556 0.3261116756566746 0.4356478865698237 0
561 557 0.3192963055727085 0.2979089593565886 0
562 558 -0.2515486235095702 0.3976900837706894 0
563 559 -0.4339100945076798 -0.4046536824569787 0
564 560 -0.4046589288214646 0.433903464707683 0
565 561 0.404656603710384 -0.4339048118070321 0
566 562 0.4339103186712877 0.4046535451222038 0
567 563 0.3151569882106202 0.4781833297601666 0
568 564 -0.3110149505651738 -0.4804293185960544 0
569 565 0.4759878210547601 -0.3140398311182805 0
570 566 -0.4761387725370623 0.3138680237537341 0
571 567 0.2751876793299275 -0.3764634302987738 0
572 568 0.4155814198855063 0.2830185824123433 0
573 569 -0.4154450806859029 -0.2773094896706256 0
574 570 -0.4751315645165488 -0.09376334688535683 0
575 571 -0.2693361662063576 -0.2901128858076799 0
576 572 0.4278971173548434 0.3602018965299764 0
577 573 -0.3505291421206553 0.4377558451578887 0
578 574 -0.4250983503918286 -0.3609453350263352 0
579 575 0.4769239579234982 0.4157767692924867 0
580 576 -0.4769322760878303 -0.4157009460296581 0
581 577 -0.4160710975031492 0.4768617376695159 0
582 578 -0.4818942455457925 -0.1669554828159885 0
583 579 -0.4843561340514771 -0.4831893874693503 0
584 580 0.4831894055794927 -0.4843561185990302 0
585 581 -0.4831894048009607 0.4843561194422445 0
586 582 0.4843561369743457 0.4831893805961475 0
587 583 -0.4593424723086395 0.4388171825810907 0
588 584 0.459343020358941 -0.4388161645912876 0
589 585 -0.4386823006998104 -0.4591322062278638 0
590 586 0.4388192878002843 0.4594072600848397 0
591 587 0.0476224643779867 0.3558750352502829 0
592 588 0.2521998844340372 -0.09211858041591156 0
593 589 -0.08812345439463311 -0.3442639654419175 0
594 590 -0.01480803785777872 -0.1248078666321516 0
595 591 -0.1074018544641041 0.2290248304062836 0
596 592 -0.1109316335835184 -0.0277423642071271 0
597 593 0.2141010350045925 -0.1352855503636831 0
598 594 0.1498897794544588 -0.2270073668652553 0
599 595 -0.03939085156861367 -0.3410430848320023 0
600 596 -0.07092568885511569 0.0009519658964105646 0
601 597 -0.186266137388182 0.1640405371841422 0
602 598 0.1227528166089749 -0.07785680915471088 0
603 599 -0.06747441054734778 -0.1297288448207531 0
604 600 0.1805265478164363 -0.1805818507083341 0
605 601 0.009372338508366706 -0.07448232530145077 0
606 602 0.0551335529542197 0.2254210218209401 0
607 603 0.1534986930443611 -0.1278899061705335 0
608 604 0.05234000486055119 -0.3252487977262926 0
609 605 0.09829747676894696 0.2421963372067489 0
610 606 0.02651907933288212 -0.4389399922002759 0
611 607 -0.1474065616217209 0.1969706281906363 0
612 608 -0.02891339333247051 0.289328682296695 0
613 609 0.007752201791062418 -0.3347190200032177 0
614 610 -0.05029811399174759 -0.2337018715747131 0
615 611 -0.003329358503166005 -0.2290278825889684 0
616 612 -0.2081827015707628 0.03152017685385432 0
617 613 -0.02184343601708143 0.1720457711305092 0
618 614 0.1444580140438415 -0.02900152178631023 0
619 615 -0.1422116948490528 -0.2372070768288271 0
620 616 0.03636042135939846 -0.02975821693585691 0
621 617 0.09574879175460482 -0.2238852960895027 0
622 618 -0.1156885491814331 -0.1389242150054288 0
623 619 -0.09382494978480634 0.1116231854661089 0
624 620 -0.1510551395724486 0.25496460458103 0
625 621 0.1212537008008556 -0.2728009700031144 0
626 622 0.1675634020672008 0.07104768356748403 0
627 623 -0.09719975795658424 -0.2371483013292277 0
628 624 0.2041766478908847 -0.2340526085252005 0
629 625 0.2091389035473276 0.08864666073642553 0
630 626 0.03970353044596928 -0.1252463912119326 0
631 627 0.1955328385306798 -0.01840748011534228 0
632 628 0.04508633494209194 -0.2251281145644719 0
633 629 -0.01733125338298102 -0.01941650428519131 0
634 630 0.2711094440651984 -0.146055724054953 0
635 631 0.00968284628171779 0.3212302157877756 0
636 632 -0.04122009802070359 0.3922212540403642 0
637 633 0.1585256736867542 0.0207876850633194 0
638 634 -0.03596607805348735 0.03489472088522284 0
639 635 -0.1090303037658568 -0.0848934789175974 0
640 636 -0.1535789023517828 -0.04867341105755227 0
641 637 -0.06779650566719995 0.2598921823838867 0
642 638 -0.02538871535002095 -0.4539870613379901 0
643 639 0.09507062923493503 -0.1258861195395054 0
644 640 0.2940207304469617 -0.188027800476966 0
645 641 -0.005534364699745227 0.06726502570433185 0
646 642 0.06870348554424004 -0.1746579727856678 0
647 643 0.1727122199088097 0.170496793606266 0
648 644 -0.2312903155680897 0.1797503033348881 0
649 645 0.0009158830021421214 0.3788277622294502 0
650 646 -0.1303565653284935 0.08271530018647169 0
651 647 -0.2237077601687941 0.1322270001940454 0
652 648 -0.1926611026747651 -0.066088458092685 0
653 649 -0.1687482641114318 0.05620256212942399 0
654 650 0.09293213555626294 0.1381787051763756 0
655 651 0.01354455294919344 0.2596740871327971 0
656 652 0.01548583379250647 0.200230616601567 0
657 653 -0.2451585294363291 0.005435870835308561 0
658 654 0.1408076298171086 0.2531241633505592 0
659 655 0.1100516546766406 0.292423596318868 0
660 656 -0.06381853865411673 0.2000330803518033 0
661 657 -0.1056641088109038 0.3450333949492064 0
662 658 0.08991783854706574 -0.03209590628865908 0
663 659 0.1229910631781477 0.05752004537785915 0
664 660 -0.21701430078293 0.08177500612554169 0
665 661 -0.008905647401158382 -0.3938819249044649 0
666 662 0.09630119126413861 -0.3181849636980555 0
667 663 -0.3145557226416774 0.04763093136673844 0
668 664 0.08827851660547456 0.3297933633281788 0
669 665 0.1403615997304523 -0.3150500603705118 0
670 666 -0.03339190200662859 -0.1794046857476978 0
671 667 0.06077408333427167 0.0106415392668816 0
672 668 0.1328288435401894 0.1544500453392805 0
673 669 -0.1391587769890778 0.1382816454015954 0
674 670 -0.05794231626483708 0.1423738938581488 0
675 671 -0.1592890365547393 -0.1476708843024484 0
676 672 -0.3003955855105579 0.09198382649051726 0
677 673 0.472938991560158 0.001509834299380248 0
678 674 0.0557605162722799 0.1199619587977798 0
679 675 -0.2775391888962286 -0.02093600066472247 0
680 676 -0.1322632126142603 0.3362429168298953 0
681 677 0.1714496758972028 0.1217928595141668 0
682 678 -0.06431254905239608 0.3136098692864666 0
683 679 -0.2625064989543411 0.1071897837558816 0
684 680 0.2641912705767737 0.0276164626365989 0
685 681 -0.04916138971621261 0.08795404416794715 0
686 682 -0.1335043138814637 -0.3285841968037335 0
687 683 -0.06819986721221159 -0.2885997026803042 0
688 684 -0.2932405921749701 0.01930017968434221 0
689 685 -0.1279047551650529 -0.1898226566184476 0
690 686 -0.2068891633670404 -0.1605208167529086 0
691 687 0.02500188509270175 -0.2783374538792802 0
692 688 0.01813675781800199 0.1457943782654063 0
693 689 -0.01507231454699612 0.4282316798132637 0
694 690 0.29397144612408 -0.0767374982307469 0
695 691 -0.3024826911401814 0.175543678465454 0
696 692 0.1287167779556443 0.3357331162499684 0
697 693 0.3537226646401139 -0.09144918907983235 0
698 694 0.0778507556962459 0.3960361270770238 0
699 695 0.05556040365934407 -0.4283229968378159 0
700 696 -0.1207112591993268 0.02865964724223852 0
701 697 -0.1985725437298591 -0.01857381774666629 0
702 698 0.0946594954235141 0.1889313816648072 0
703 699 0.2147947894183432 0.1909110885810348 0
704 700 0.08379899559682377 0.04956625115264259 0
705 701 0.3449477244684381 -0.006048543233477623 0
706 702 -0.3269348237725493 -0.0651584400296482 0
707 703 0.02250980613054678 0.1010231750316337 0
708 704 0.1760853697272079 -0.341272130140209 0
709 705 0.1829155619351544 0.3322981483461724 0
710 706 0.3161156546417984 -0.1567520159958445 0
711 707 -0.163081648158972 0.3051565100684624 0
712 708 -0.4060159467203729 -0.04931471524901325 0
713 709 -0.1332206063620495 0.4161761196157763 0
714 710 -0.2599654366256155 -0.1098782550799481 0
715 711 0.251906191664971 0.1035819203654273 0
716 712 0.347140434303119 -0.2349289828829077 0
717 713 -0.2988075566241249 0.1308119859481948 0
718 714 -0.2304466455972099 0.2656633831780778 0
719 715 0.009780069242988623 0.465310685843016 0
720 716 0.08028484079072752 -0.3588562219091336 0
721 717 -0.07868260501934589 -0.4539786088227997 0
722 718 0.4283399973576587 -0.07024286939620548 0
723 719 0.0882016773735838 0.09087462002968422 0
724 720 0.3566371785430342 -0.1427219833365623 0
725 721 -0.3066906631017378 -0.0487537885139815 0
726 722 -0.09605897178591205 -0.3912309308284656 0
727 723 0.3510833562259192 0.02406788206021286 0
728 724 -0.2667589040017542 -0.06279968632306726 0
729 725 0.449668409020762 -0.08361815625078473 0
730 726 -0.1575591415788901 -0.3086660913266969 0
731 727 -0.1767378668520372 0.4599151870429092 0
732 728 0.1808608769494414 0.2204173806564542 0
733 729 -0.1538500891969682 -0.2774213424874307 0
734 730 0.2633182539070413 0.1304287311622443 0
735 731 0.2059702991807887 -0.3164729885970026 0
736 732 -0.07780369993892021 0.4182246689927172 0
737 733 -0.3379310997011569 0.02997682461721814 0
738 734 0.3490766420125436 -0.06470151559827238 0
739 735 -0.2006136133683065 -0.1143968822376125 0
740 736 -0.2409749530578871 0.2221864305379867 0
741 737 -0.102576035758014 0.4179250662704354 0
742 738 0.08363014066317 0.4244341914184313 0
743 739 0.454573463842435 0.07581531397524234 0
744 740 -0.08840427597229635 0.4461973237133147 0
745 741 0.04368769273276624 0.06031060477782385 0
746 742 0.2125720731238046 0.3218494329651604 0
747 743 0.2170651724406203 -0.2599071804401472 0
748 744 -0.2078873891452742 -0.3031456646903474 0
749 745 0.2794343693480164 0.0517230898593263 0
750 746 0.1550787915461931 0.3404066540921579 0
751 747 -0.06126108784846038 0.3557208910662218 0
752 748 -0.3775815652413396 -0.01003679413950826 0
753 749 -0.1549034559489077 -0.3498408511830349 0
754 750 0.3224929521866574 0.05808704605946739 0
755 751 0.445932574343007 -0.016456309773123 0
756 752 0.2182307777841077 -0.2901727719690109 0
757 753 -0.1624747776947617 0.3511504427524194 0
758 754 -0.1005145876203447 -0.4192826362483915 0
759 755 -0.2071546588114363 -0.2133896043451458 0
760 756 -0.3735008668353006 0.1014678858218758 0
761 757 -0.3463643247827437 0.1467156626057335 0
762 758 -0.1826184750265278 -0.2273872787441178 0
763 759 0.3205502161639883 -0.06892622586411559 0
764 760 0.08151908253815637 -0.4078961441099611 0
765 761 0.1078031425910676 -0.396694519261278 0
766 762 0.1346885912829912 -0.3906982227983726 0
767 763 0.1137588859018918 0.4781969222451933 0
768 764 0.3243891119813339 -0.2263468280598348 0
769 765 -0.4281137870672153 0.08352446883390718 0
770 766 -0.4785103205912489 0.09815571107869993 0
771 767 -0.3436420784362721 -0.02634329170339815 0
772 768 -0.1797704906058748 -0.2881326558310652 0
773 769 -0.1235041169907581 -0.47659636525092 0
774 770 -0.2350652606543343 0.2421724400217598 0
775 771 0.3211959433434665 -0.02797142083527633 0
776 772 -0.3058284776601243 -0.1192431777969475 0
777 773 -0.2073963956316136 -0.185944676831464 0
778 774 -0.424205988975371 0.1136073309518913 0
779 775 -0.4173723541155888 -0.006353359193149041 0
780 776 -0.2742274546810514 0.1748917161133633 0
781 777 -0.4153569481231424 0.1338071150614843 0
782 778 0.4593347345176856 0.02850741098231681 0
783 779 0.3497710009408767 0.05529783378920573 0
784 780 0.1658692259050589 -0.440663685204774 0
785 781 -0.2828986587077283 -0.1153764969848001 0
786 782 -0.3543233748164176 -0.08178289504313006 0
787 783 0.2160382593194041 0.2577910325430584 0
788 784 0.2402421290422563 -0.2226159915024424 0
789 785 0.2818822405432957 -0.2505958147660752 0
790 786 0.1712965270148564 -0.4662354985030005 0
791 787 0.4225756349178492 -0.1399449878052032 0
792 788 -0.1984159790003787 -0.3593265502313985 0
793 789 -0.1625901650423465 0.4057174539472851 0
794 790 0.4177103565770937 -0.2205622445527245 0
795 791 0.3093159796338651 0.1045033648596563 0
796 792 0.3608725403521656 0.08537021528431536 0
797 793 -0.468951012133658 0.2249219669255077 0
798 794 -0.3497392731049294 0.08804672630190322 0
799 795 0.09273243678445905 -0.4667933911851526 0
800 796 0.2975769884180931 0.07440534369072029 0
801 797 0.2473523398475974 0.1563599925087233 0
802 798 -0.2533199751562112 -0.2023600258180856 0
803 799 0.1244154305649367 0.4000522323318749 0
804 800 -0.369238471708287 0.1557959530455169 0
805 801 0.1367495012845197 -0.4400366226442108 0
806 802 -0.1914528530517698 0.3537523637300052 0
807 803 0.3197385676002624 0.1286603515340416 0
808 804 0.3923848229294574 -0.1007762256596277 0
809 805 -0.2051408617363801 -0.2412369171555213 0
810 806 0.3691005660542683 -0.2234331336892075 0
811 807 -0.3776756479945746 0.07793425996500926 0
812 808 0.1840929919094438 0.3018284102058912 0
813 809 0.3737467457611168 0.008400905878824546 0
814 810 -0.4349968212647194 -0.04904911302791583 0
815 811 0.2721326015853295 -0.4627439227628897 0
816 812 -0.17418495671568 -0.3610852882359588 0
817 813 0.1439962192199827 -0.3645932051648331 0
818 814 -0.3237663929979905 -0.09467272659047599 0
819 815 0.1215467141158395 0.4497011838357336 0
820 816 0.3052204578641254 -0.05202093508538767 0
821 817 0.4794170879112375 -0.141328369800954 0
822 818 0.3801347418421552 -0.05276648333770346 0
823 819 0.1102151805823416 -0.4437166104716087 0
824 820 0.4163278294428437 0.1002739347486958 0
825 821 0.3500360359401051 -0.03454993678823321 0
826 822 -0.3661028021785224 0.128363964980369 0
827 823 0.3680785999694235 0.1116680988132677 0
828 824 0.3823302651688618 0.06590104797630915 0
829 825 0.1016490527647601 0.4097446648420628 0
830 826 0.4047601160330959 0.0485263252164655 0
831 827 -0.4563157865422379 -0.05157576650150777 0
832 828 0.08329143996802378 -0.4367885020869555 0
833 829 0.4570233272650481 -0.2153145767341763 0
834 830 0.1759096119943593 0.3608526556576815 0
835 831 0.221135440183154 -0.4644055455826171 0
836 832 0.1980753826035985 -0.3458387829384347 0
837 833 0.4203269582344907 0.1249893153136215 0
838 834 0.2654724947144105 0.3413946459746553 0
839 835 -0.2957331159408141 0.2257022855189332 0
840 836 -0.1257399589423456 0.3790741588725915 0
841 837 -0.3818308943305197 0.0321547685902829 0
842 838 0.1594718923750483 -0.3875301514836769 0
843 839 -0.1213435790677042 -0.4065049231787521 0
844 840 0.4010009449128736 0.02008878812961166 0
845 841 -0.4261147168238108 0.1593393517168651 0
846 842 -0.1047444373667711 -0.4496986577680099 0
847 843 0.3857592538050467 0.2065471791920877 0
848 844 -0.4494803206937326 0.172104723426184 0
849 845 0.3392801875819968 0.107054361303468 0
850 846 0.3795725222837148 0.1610870099712557 0
851 847 0.09686693809564362 0.453414788591266 0
852 848 -0.2915249675644269 -0.1671429942607132 0
853 849 0.3124627823933179 -0.4340559136216877 0
854 850 0.4313185505836779 0.03082436866446384 0
855 851 0.2144423629667529 -0.4434834332050978 0
856 852 0.3323129809470883 0.1482634528817064 0
857 853 0.3672385883039802 -0.1958791232189518 0
858 854 0.4074524215628051 -0.1616060154983868 0
859 855 0.3309343679730891 -0.2531130233444376 0
860 856 -0.2295264239527612 -0.1957443728992872 0
861 857 0.1870041421874385 -0.3896787131834089 0
862 858 0.2781576300989056 0.1034983765607865 0
863 859 -0.2043924361978271 -0.272137490104264 0
864 860 0.4134149589350545 -0.1973743164445722 0
865 861 0.3986357955363137 -0.00693530796707014 0
866 862 -0.227593107995063 -0.1463951422380303 0
867 863 -0.1473385385487051 -0.4043233531335029 0
868 864 0.4324098877113983 0.08441802849782186 0
869 865 0.3743710788285113 0.1367423947391658 0
870 866 -0.3919446880524438 0.05678058128211946 0
871 867 0.1998291968647004 -0.3708087305228335 0
872 868 -0.2031477620696472 0.4738885416803745 0
873 869 0.1926596649426126 -0.4303330990293604 0
874 870 -0.257393922294589 0.2396213094520625 0
875 871 0.2478759050019718 -0.329680916468533 0
876 872 -0.229929495059748 -0.2588933184085764 0
877 873 0.1832433072820623 0.4762536790605613 0
878 874 0.3948464005088811 0.1181827447562776 0
879 875 -0.1782798688633711 0.3767769801381267 0
880 876 0.4096288859376028 0.07540403832833679 0
881 877 -0.3107040986530745 -0.1776169989248468 0
882 878 -0.3328456069900637 -0.1234929253610347 0
883 879 -0.4183995764443524 0.06002761458176226 0
884 880 0.3370386587862533 0.19460167235378 0
885 881 0.4248993978763556 0.1743551717766451 0
886 882 -0.1318735270205313 -0.4518500235540624 0
887 883 -0.4783702889233413 0.005068500980186353 0
888 884 0.4730107461965566 -0.02993894280824971 0
889 885 -0.4717867653955002 -0.3037728221289328 0
890 886 0.2782122507814301 0.1527419901226111 0
891 887 0.1215052794887625 -0.4164255692505883 0
892 888 0.1446773841086433 0.4416167372182674 0
893 889 0.4718875264668279 0.3022483212434126 0
894 890 0.2230081974993499 0.4405887514494186 0
895 891 0.2270977695438242 0.3688082551237413 0
896 892 0.232092428901645 -0.31112950473091 0
897 893 -0.4001656562632448 -0.1449209633028724 0
898 894 -0.04712689585262152 0.4701103519085125 0
899 895 0.4302862363640972 -0.04099629178398376 0
900 896 0.1995667398047613 0.3826641434735888 0
901 897 0.3075195686460978 0.1540646183670903 0
902 898 0.1648738280960677 0.4345537365905072 0
903 899 -0.2166187422837916 0.320702298570116 0
904 900 0.3544790958798384 0.1560995898626148 0
905 901 -0.4523301783231207 0.2033440316612411 0
906 902 0.4214548981312796 -0.1779636734562626 0
907 903 0.451835897953685 0.04885769696127153 0
908 904 0.4518830896507513 -0.1521245305482876 0
909 905 -0.4568560004539093 0.2487364742482772 0
910 906 -0.4771869961055786 -0.2539404293332915 0
911 907 0.4206839628659888 -0.02025794743474329 0
912 908 -0.1932946797908539 0.4008901019583987 0
913 909 0.1713393125369331 0.3872569478069605 0
914 910 -0.4371867203695792 -0.1426411251252165 0
915 911 0.3821262109267881 0.1851316631396936 0
916 912 -0.2447706992020154 -0.1302308541838217 0
917 913 0.4769694679468282 0.2584621018563739 0
918 914 0.4022452839840067 0.1678110096772366 0
919 915 -0.3314731512181338 -0.1666281641074012 0
920 916 0.1759318637657733 -0.4116982887374097 0
921 917 0.332903697597257 0.1687233832149702 0
922 918 -0.3314937510602168 0.4756233304548256 0
923 919 -0.2040270786814724 -0.4042463171481872 0
924 920 -0.259869636928909 -0.2207019149173743 0
925 921 0.2278659014198681 0.3438304277337803 0
926 922 0.2290975191157578 0.2133713519984062 0
927 923 -0.4274988109155098 0.1873072938713163 0
928 924 0.4443352454539348 0.1334255009409679 0
929 925 0.2476429809854295 0.4822985794954049 0
930 926 -0.4815959608475081 0.3351530683214552 0
931 927 0.3325745815242218 -0.4532076258327942 0
932 928 0.3354330136627238 0.4821034277340138 0
933 929 0.2567975706599268 -0.346386417779417 0
934 930 0.4815383304305412 -0.3352102597031053 0
935 931 -0.2553462929256586 -0.4795135494314361 0
936 932 0.2450921947673727 0.3495549812677606 0
937 933 0.3531086003865102 -0.1712446561328968 0
938 934 0.4235778907880398 0.1499490025901122 0
939 935 0.1478915419633098 0.3917263240927818 0
940 936 0.4738215055596792 0.3321965720505938 0
941 937 -0.4190187380374799 -0.1278712353252451 0
942 938 -0.4727238130041584 -0.3331742452456114 0
943 939 0.2330088589299726 0.3045108910651489 0
944 940 -0.2486389842325581 -0.1541090316798446 0
945 941 0.297803740011821 0.4758742605204554 0
946 942 0.1291007825723658 0.375572092627 0
947 943 0.2011917397500954 0.4568099950119819 0
948 944 -0.2276881418803597 -0.3040118336613665 0
949 945 -0.3952927005586956 0.1177780463500795 0
950 946 0.3265949344323189 0.2338354662949786 0
951 947 -0.187518330872509 -0.3824677500860412 0
952 948 0.2041907166061249 0.4804060953614686 0
953 949 -0.2884149356175165 -0.1416088073616832 0
954 950 0.3461926020829483 -0.3166210465864737 0
955 951 0.4665604567196323 -0.2590897806521028 0
956 952 -0.4018665613991366 -0.1678133605833279 0
957 953 0.4216338969059915 -0.2498619221846394 0
958 954 0.2180064671766861 -0.3623902409389497 0
959 955 -0.1549644809008126 -0.4467186135469439 0
960 956 0.3123117083398944 -0.3445513705155493 0
961 957 -0.3403447329878704 0.2576729517492586 0
962 958 -0.4732295849140609 0.1823233261475402 0
963 959 0.4008348705861001 -0.03235810227260844 0
964 960 0.3646952913172286 0.201886482686868 0
965 961 0.3467717653972566 0.2179542415034501 0
966 962 -0.4078440055145853 0.0351438203923159 0
967 963 0.2718843450619547 0.3605810235159717 0
968 964 0.3038726900121668 0.2258377392780075 0
969 965 -0.3986099607401849 -0.1189219840866689 0
970 966 -0.4619766242015099 -0.2068718492953195 0
971 967 0.4747070642117086 -0.1136636599528229 0
972 968 0.2353796945276206 -0.4497238110231935 0
973 969 -0.2012926877555715 -0.3315643621235926 0
974 970 0.2875334297663525 0.3381186183846735 0
975 971 -0.2245600469514616 -0.4505403093881732 0
976 972 -0.2043818027464817 -0.4732198783896513 0
977 973 -0.2017302804875539 0.4468511468686603 0
978 974 0.2499794888741432 0.4543605372447801 0
979 975 -0.2385637259005925 -0.4342412374632084 0
980 976 0.4091126377214113 -0.05527989839217802 0
981 977 -0.4367083507223625 -0.09157346965013333 0
982 978 -0.340244701888078 0.2903923888087688 0
983 979 -0.2862012734395554 0.2421842214231159 0
984 980 0.2382316076047576 -0.2765693829948128 0
985 981 0.2250281388145305 0.2380826391793519 0
986 982 -0.3610233414462393 -0.1984660413613689 0
987 983 0.1902297411751157 0.4305067625015663 0
988 984 -0.365108067053822 -0.1765593722778512 0
989 985 -0.3058505677786117 0.4701167645593646 0
990 986 0.2878055128313851 -0.3103480110583058 0
991 987 -0.3805247663866667 -0.1619197055793078 0
992 988 -0.1765005915640966 -0.439580257805453 0
993 989 0.3074355675627558 0.2471658216332576 0
994 990 0.2513279004820321 0.3038338313160772 0
995 991 -0.436477566325161 -0.1136977968289257 0
996 992 -0.2700056380625873 -0.15994305345279 0
997 993 -0.3846158145942551 0.3079213162977715 0
998 994 -0.3397019790001617 -0.1431831583918265 0
999 995 -0.286827628438823 0.4531333419741513 0
1000 996 0.1237496753351307 0.423772443286519 0
1001 997 -0.2217243266074486 -0.3560786242519085 0
1002 998 -0.2416508749504136 -0.3769039824116375 0
1003 999 -0.3438130659981858 0.3205861524984356 0
1004 1000 -0.2925469877351994 -0.1905556373923299 0
1005 1001 -0.3129215387737331 0.3318191694663484 0
1006 1002 -0.3011875544616721 0.4162750006917386 0
1007 1003 -0.3823969309312679 -0.3150987232620275 0
1008 1004 -0.3207200100632912 -0.3441297135371904 0
1009 1005 -0.2169624664381664 0.3505684296268285 0
1010 1006 -0.3057641758637056 0.4400218551220805 0
1011 1007 0.457941764410569 0.2740519604675404 0
1012 1008 -0.2508942675982079 -0.4551984039544563 0
1013 1009 0.289674379397332 -0.2682835959571973 0
1014 1010 0.3550513248984594 -0.2950400122062265 0
1015 1011 -0.4534463968050692 -0.2830273140178144 0
1016 1012 -0.2478353892963049 0.283538636195724 0
1017 1013 0.1677121683861384 0.4112713447653112 0
1018 1014 -0.2785387953699064 0.4087115140279052 0
1019 1015 -0.3824946257444221 -0.1848383169403379 0
1020 1016 -0.4707435385743614 -0.04079866250067614 0
1021 1017 0.2457245131268395 0.4247974846657623 0
1022 1018 -0.3569722384680473 -0.1303782529262069 0
1023 1019 -0.2090359725824313 0.4213460761705266 0
1024 1020 0.4550423965458387 0.2486246414166059 0
1025 1021 -0.378069471745013 0.2562590185269026 0
1026 1022 0.3396920637237543 0.3975717216603452 0
1027 1023 -0.3020721051283948 0.3882235920061761 0
1028 1024 0.3132771608944265 0.1828591607847729 0
1029 1025 -0.2309258697174675 0.3748075396117676 0
1030 1026 -0.3735555312039704 0.2308277263846573 0
1031 1027 0.06765191815782962 -0.4775585493402055 0
1032 1028 -0.2409528577717736 0.4476188054511691 0
1033 1029 -0.4528070366427723 -0.242309802968589 0
1034 1030 -0.4593101624270369 -0.2637537726499434 0
1035 1031 -0.4735832047105011 -0.1131020019196517 0
1036 1032 -0.3338105070268123 -0.3945564682391048 0
1037 1033 -0.2501396483073264 -0.177727308047769 0
1038 1034 -0.3109275700012655 0.2893509258937554 0
1039 1035 -0.1974749883153191 -0.4448676374517289 0
1040 1036 0.4725974285762407 0.1197094152445098 0
1041 1037 0.2330606222370414 -0.4827142280401226 0
1042 1038 -0.3735798180242761 -0.1085951830859288 0
1043 1039 -0.4186165623108598 -0.3001924666282199 0
1044 1040 -0.2930750382471023 -0.2098549310316267 0
1045 1041 -0.2604092950922904 -0.365492779337473 0
1046 1042 0.2889538736174879 -0.436384527216086 0
1047 1043 0.217622103389617 -0.4255222376562789 0
1048 1044 -0.2689590102565496 0.2768737915792169 0
1049 1045 -0.2903173861855379 -0.4759136482930372 0
1050 1046 0.3595666033738888 0.3490724117989951 0
1051 1047 -0.3057131906415748 -0.3062431478690623 0
1052 1048 -0.158659533316417 -0.3781515641193768 0
1053 1049 0.3095434619000509 0.2716755778270509 0
1054 1050 -0.1744573969392698 -0.4026377255723281 0
1055 1051 -0.4809942503573785 0.431187281059194 0
1056 1052 0.4809920798070759 -0.4311876782758879 0
1057 1053 -0.2708736935105264 0.257208434451509 0
1058 1054 0.4311935943729044 0.4810436515395052 0
1059 1055 0.4143290226675669 0.3067224783015897 0
1060 1056 -0.4309204001392184 -0.4805316345195352 0
1061 1057 -0.279414867389453 -0.447823148938158 0
1062 1058 -0.3824931635465715 0.2802897057518277 0
1063 1059 -0.3614711926858606 0.2704394179214486 0
1064 1060 -0.341989120096691 0.2080850118189552 0
1065 1061 0.2682045089036262 0.3178057002872772 0
1066 1062 0.2433634189058695 0.3261114158014086 0
1067 1063 -0.2750711956847061 -0.2056366137948005 0
1068 1064 0.3230332196349371 0.3917936399836388 0
1069 1065 -0.2890952479931926 0.3345541684774339 0
1070 1066 0.4313670720773307 0.203620205917717 0
1071 1067 0.4418486769340155 -0.4153661596304349 0
1072 1068 -0.4418846224046398 0.4153556130597116 0
1073 1069 0.3141274410763105 0.3770719853563183 0
1074 1070 -0.309495154308915 -0.2872503828878912 0
1075 1071 0.3541475440751996 0.2421547261375423 0
1076 1072 0.3306968274803599 -0.3968252189209454 0
1077 1073 0.4153641927984721 0.4420993154225712 0
1078 1074 0.2308862583178826 -0.410318973865041 0
1079 1075 -0.4061645079740266 -0.1915616921007754 0
1080 1076 0.340010283318686 0.2779130712400887 0
1081 1077 -0.4164938675604187 -0.4410277242322857 0
1082 1078 0.1636061488965573 0.4587942511912195 0
1083 1079 -0.3950834960081872 -0.3326160829150297 0
1084 1080 -0.2546107976926221 0.4738502647757694 0
1085 1081 0.3149058805182215 -0.2691714706112615 0
1086 1082 0.2821681462437391 0.2546008349871055 0
1087 1083 -0.2504849186736779 -0.2749293259507595 0
1088 1084 0.2546589997609572 0.2373713313447753 0
1089 1085 0.2756278759534528 0.4388861005302322 0
1090 1086 0.2635512179612247 -0.2667794505430613 0
1091 1087 -0.2212429626066232 0.438589388770919 0
1092 1088 -0.4758388050619866 0.287250604029238 0
1093 1089 -0.2576368500170284 0.3712607742828904 0
1094 1090 0.2580133617176765 -0.4821057255790687 0
1095 1091 -0.3252727722129552 0.4219962335217263 0
1096 1092 0.4390752592420384 -0.2024166589344116 0
1097 1093 0.3326593335870628 0.3182167834666749 0
1098 1094 -0.3362317115380764 -0.2528766384156915 0
1099 1095 -0.4159036711657888 -0.09854911169296762 0
1100 1096 0.3047098150737098 -0.4104451397424005 0
1101 1097 -0.1385716170785056 -0.427722119740717 0
1102 1098 -0.4280932526237373 -0.1696453485380811 0
1103 1099 0.4311935709484754 0.2366560479051935 0
1104 1100 0.2907102538365756 0.3046058575679892 0
1105 1101 0.4428872635435382 -0.2290152296060033 0
1106 1102 -0.337132706682798 -0.1977088319258071 0
1107 1103 0.2384204613434161 0.2801154981363628 0
1108 1104 0.3920764052538435 -0.208808489088871 0
1109 1105 0.3641790296370823 -0.2758742609963819 0
1110 1106 0.3967491436657485 0.3244848818391528 0
1111 1107 0.3343288218009173 -0.4242666344522553 0
1112 1108 0.4747389809426084 -0.2813692320513199 0
1113 1109 -0.2753040895002975 0.3831304309267726 0
1114 1110 -0.4155729403708719 0.2260942142641488 0
1115 1111 -0.3072031820550829 -0.4567168172330862 0
1116 1112 -0.2890297632851719 -0.2987527019915259 0
1117 1113 0.2574357504750089 -0.3006153956810904 0
1118 1114 0.3092283699349774 -0.3200769124088702 0
1119 1115 -0.341544297651522 0.235032547349304 0
1120 1116 -0.3602173394366873 -0.4755004986671034 0
1121 1117 0.3535819805237027 0.3252418421106871 0
1122 1118 -0.2838108031255164 0.3628626535028999 0
1123 1119 0.4266823731164407 -0.3989500918979323 0
1124 1120 -0.4268073709578387 0.3989118260209923 0
1125 1121 -0.2991099988619394 -0.3439843442366635 0
1126 1122 -0.3992010328190339 0.2416226331732125 0
1127 1123 0.4461621992184815 0.1807638627060794 0
1128 1124 -0.4309661807848167 -0.2375796243211434 0
1129 1125 -0.3007213907859072 0.311735092216958 0
1130 1126 -0.3958993189617233 0.1577044554947244 0
1131 1127 0.3615349059906842 -0.4525182636611072 0
1132 1128 -0.4239897775269701 -0.3280445174246629 0
1133 1129 -0.3137251922923653 -0.3845560638182353 0
1134 1130 -0.3292203035039688 0.3946908842417882 0
1135 1131 -0.4741954662710994 -0.3621747524230794 0
1136 1132 0.426128761645395 0.3283672106817128 0
1137 1133 0.3988706851426384 0.427178505911945 0
1138 1134 0.4707000542147099 0.3609567659794345 0
1139 1135 0.3726503404269927 0.2242031967407167 0
1140 1136 -0.4049361537661753 0.07312436256941855 0
1141 1137 -0.3598844541877966 -0.2212701911003316 0
1142 1138 -0.4020965005675988 -0.3137186407810945 0
1143 1139 0.3132824780675079 0.3536653399508674 0
1144 1140 -0.4784945125856314 0.3885798362765383 0
1145 1141 0.4784748307948437 -0.3885892027012977 0
1146 1142 -0.2905043926203481 -0.3225573879844372 0
1147 1143 0.3793715088110636 -0.157768712013054 0
1148 1144 0.2907190963541374 0.3689284057492077 0
1149 1145 -0.401104898633441 -0.4188088723014598 0
1150 1146 0.3886242705142522 0.4786372553671535 0
1151 1147 0.3730314957939815 0.3109248952854091 0
1152 1148 0.2355445136446022 -0.3721938426199966 0
1153 1149 0.2392073109108097 -0.3525659731863576 0
1154 1150 0.2616183490782381 0.2080469441328308 0
1155 1151 -0.3153290410094216 0.2450828047446663 0
1156 1152 -0.4272805588575743 0.2517021563528175 0
1157 1153 -0.4791238132148729 -0.06483649259550725 0
1158 1154 0.4788746625288764 -0.07266568347995715 0
1159 1155 -0.4424534016737149 -0.3037673283529166 0
1160 1156 -0.3543257394380857 0.4776239182929441 0
1161 1157 0.4539088882945057 0.2200606543815461 0
1162 1158 0.3378508792349822 -0.2779214084755752 0
1163 1159 -0.03063951751706764 -0.1006561466774812 0
1164 1160 -0.09345873034873736 0.4745088007298402 0
1165 1161 -0.06388193224333918 -0.02610139535050994 0
1166 1162 -0.04192335322395859 -0.4261813661930132 0
1167 1163 -0.01720110980711724 -0.4234292403532929 0
1168 1164 -0.08615376996874889 -0.04139959220976976 0
1169 1165 0.05244525198311532 0.3248664261737682 0
1170 1166 0.2206366111404297 -0.08669310614293224 0
1171 1167 0.1533318763833864 -0.07731503341957002 0
1172 1168 0.05623223180906906 0.2556840486813638 0
1173 1169 -0.05778894728578534 -0.09870733105533816 0
1174 1170 0.2017591199093998 -0.1074370206770399 0
1175 1171 -0.1912828828932525 0.1933154147931264 0
1176 1172 -0.0224985011763683 -0.07336296638887717 0
1177 1173 0.07950676805932864 0.2635007783256533 0
1178 1174 -0.1094172510823835 0.2598568793403634 0
1179 1175 0.1636214794697699 -0.05100875062277058 0
1180 1176 0.1696950899301658 -0.1037410328183881 0
1181 1177 -0.01767246229070166 0.4738738216807001 0
1182 1178 0.01236005416480957 0.290450393524691 0
1183 1179 -0.005258186123731206 -0.04752687320061751 0
1184 1180 -0.1082174366462386 -0.311485921569736 0
1185 1181 -0.08702577616459567 -0.1060585714864171 0
1186 1182 -0.1048151237993244 0.1986907951058026 0
1187 1183 -0.04880102082272075 -0.3697885189955936 0
1188 1184 0.04490655781240579 -0.3524338998682881 0
1189 1185 -0.0003292751662314526 -0.3639397695649969 0
1190 1186 0.1838884271522124 -0.1310368106170949 0
1191 1187 -0.02457464617934696 -0.3671616623089172 0
1192 1188 -0.08143795586953731 -0.3166574686352815 0
1193 1189 0.1366052505902919 -0.2011445557660126 0
1194 1190 -0.07469517908161268 -0.3723758183565692 0
1195 1191 0.2263458938995703 -0.1632045651654693 0
1196 1192 -0.06617038064057092 0.2298790646237857 0
1197 1193 0.007874008156302995 -0.4186288014360535 0
1198 1194 0.02271223151146484 -0.3586850312410997 0
1199 1195 -0.05397861993541598 -0.3145985731496496 0
1200 1196 -0.04954990851234228 -0.1545494055886209 0
1201 1197 0.1629852797789499 -0.2522619225576305 0
1202 1198 0.01449478911398308 0.2292345934628369 0
1203 1199 -0.23385299177998 0.04403246993231631 0
1204 1200 -0.1706812463058342 0.2101875920736267 0
1205 1201 0.001515308973590816 -0.1507873959808521 0
1206 1202 -0.1433351236840168 0.1670643984856141 0
1207 1203 0.1515315103640781 -0.1775551419089335 0
1208 1204 0.03370803379245734 -0.4086639539878165 0
1209 1205 -0.1308538876841351 -0.2630871049940029 0
1210 1206 0.04528640554201663 0.3875654671121165 0
1211 1207 -0.03743064815918946 -0.04204494555384305 0
1212 1208 -0.02738186386242341 0.259783795708681 0
1213 1209 0.1673667669517241 -0.1542493454319878 0
1214 1210 -0.03023970485090343 -0.3123509319645967 0
1215 1211 0.2846763784428427 -0.1014084954819706 0
1216 1212 -0.08244304198555129 -0.2624354400073854 0
1217 1213 0.01600402242079475 -0.3059762730871955 0
1218 1214 -0.0286464714820075 0.4489672233720319 0
1219 1215 0.2098243412727751 -0.184970173222828 0
1220 1216 -0.02391669211931056 0.2006346317907322 0
1221 1217 0.138692351980048 -0.1025357118795581 0
1222 1218 -0.03567978351954691 -0.2589366066946094 0
1223 1219 -0.01236351796446293 -0.2564172486227088 0
1224 1220 0.006265764203320479 0.3510456938116899 0
1225 1221 -0.06553531780721739 -0.2087624780755748 0
1226 1222 -0.07965408838490216 -0.07210852013488814 0
1227 1223 0.1236156386706568 -0.1263749307941246 0
1228 1224 0.02035313577704729 -0.4674857449140437 0
1229 1225 0.2435874629940414 -0.1409836568905658 0
1230 1226 -0.1356990173160697 -0.01128384721472895 0
1231 1227 -0.06112266297557294 0.1706524539579314 0
1232 1228 0.02483863072103881 -0.1003883363072374 0
1233 1229 -0.02428378065679043 -0.1523493565622679 0
1234 1230 -0.05909086993380561 -0.2609227559809328 0
1235 1231 0.1896565562890931 -0.04410865225943349 0
1236 1232 0.1875603178621582 0.0530781232186839 0
1237 1233 0.05459435672119769 -0.1500830970973363 0
1238 1234 -0.006884669554708167 -0.3094554884991707 0
1239 1235 -0.0979326069693333 0.1399283538035846 0
1240 1236 -0.06794158321010556 0.2888851609286118 0
1241 1237 -0.01790388967379099 -0.2042511918924956 0
1242 1238 -0.0442739753157592 -0.01049381681233268 0
1243 1239 -0.1157111655213849 0.001208850358833497 0
1244 1240 0.1888271957061511 -0.2539402795182833 0
1245 1241 -0.150203070204448 0.2263219752428362 0
1246 1242 0.01113822833989035 -0.2539272843449684 0
1247 1243 -0.03084752977272093 0.3184848268852993 0
1248 1244 0.232347010561441 -0.1136417233386646 0
1249 1245 0.02212277637850053 0.4425517215635358 0
1250 1246 0.03127955934712335 -0.2007260897712851 0
1251 1247 0.03454703276139229 -0.2512948494669315 0
1252 1248 -0.0981018303933045 -0.1610127833054526 0
1253 1249 -0.02759217826216167 0.008130244190939597 0
1254 1250 -0.1314736339353643 -0.06569988944116049 0
1255 1251 0.006425646845280338 -0.2023109545380627 0
1256 1252 -0.1088091326371811 -0.05628760443572183 0
1257 1253 -0.181415284479745 0.1356618394686423 0
1258 1254 0.0935981508304789 -0.07812501057542263 0
1259 1255 -0.1038096129208699 0.3231868524366974 0
1260 1256 -0.04187144782805251 -0.2065320308094979 0
1261 1257 -0.07782841248555809 0.02967513024262102 0
1262 1258 0.03304904831266475 0.3070717192606999 0
1263 1259 -0.006673317173762005 -0.4759478951738927 0
1264 1260 -0.09643659014710076 0.0148931809467856 0
1265 1261 0.1091099097550404 -0.1997982861932841 0
1266 1262 -0.134890025789482 0.1100193319132296 0
1267 1263 0.05052373408567418 -0.05376515759409561 0
1268 1264 0.0612764403680525 -0.2987580896468291 0
1269 1265 -0.1124836833345364 -0.2127189279783535 0
1270 1266 0.1058661082171568 -0.05452856918343022 0
1271 1267 -0.07418040330135391 -0.1576549634596376 0
1272 1268 0.2622496532756681 -0.120607748517317 0
1273 1269 -0.1836991179224566 0.018208093017747 0
1274 1270 0.1970088353495518 -0.1582213825848995 0
1275 1271 0.03760542907075216 -0.07675533066474782 0
1276 1272 0.17734248223555 -0.2294344705805659 0
1277 1273 0.1468560513389341 -0.2742121012575199 0
1278 1274 0.1931793387187699 -0.2072175278723863 0
1279 1275 0.1648458181965975 -0.2038234856169146 0
1280 1276 -0.2191701514447739 0.2028719797477246 0
1281 1277 0.2686050473988162 -0.1879602273038195 0
1282 1278 0.08045395856877453 -0.1017072194466015 0
1283 1279 0.2088674262490099 0.06302892435795983 0
1284 1280 0.08259103506621197 -0.1994002825149225 0
1285 1281 -0.1312739748035472 0.2717370591244223 0
1286 1282 -0.1057015830484685 -0.2621768432498646 0
1287 1283 0.1378171854687405 -0.1517859634994158 0
1288 1284 0.0673666596288334 -0.1257596732899189 0
1289 1285 -0.1447105945438226 0.04273540057139179 0
1290 1286 -0.0891955446786105 0.08428259438618181 0
1291 1287 0.05488393349645874 0.196630025801474 0
1292 1288 0.08151792127922547 -0.1500129697803915 0
1293 1289 0.05670238429178912 -0.1998577377852097 0
1294 1290 0.02784509814541331 -0.1502624628164299 0
1295 1291 0.1090305909823113 -0.1020809668983205 0
1296 1292 -0.1710934896520443 0.2394086967436867 0
1297 1293 0.0006996658549017607 -0.4468565278878177 0
1298 1294 0.1089779046016847 -0.2486450493148313 0
1299 1295 -0.1916055801807444 0.2477782172766325 0
1300 1296 -0.003453449509948874 -0.09889894610288923 0
1301 1297 0.2553275818135041 -0.166173219922999 0
1302 1298 0.116845936887691 -0.03145276656719063 0
1303 1299 -0.05412004531506832 0.1147804523331008 0
1304 1300 0.1835246719354867 0.02701838118783139 0
1305 1301 -0.1241073145212618 0.1829790607312808 0
1306 1302 -0.04346700326500677 0.0613543904040397 0
1307 1303 0.1092999148807453 -0.150533302430184 0
1308 1304 -0.06513947822321543 -0.4275945322024051 0
1309 1305 -0.08911392707474546 -0.2109244468871048 0
1310 1306 -0.2847710337987223 0.07657851674908661 0
1311 1307 -0.1258183593823637 0.05585876741958395 0
1312 1308 -0.1341487186426834 -0.1181148659528882 0
1313 1309 0.02960911306593424 0.3385343627581295 0
1314 1310 0.1559130331421388 -0.2973752307012303 0
1315 1311 0.009679173872197808 -0.02595969129712128 0
1316 1312 0.0833326507954319 -0.2483825373427953 0
1317 1313 0.2263908613434585 0.005911937724276114 0
1318 1314 -0.1927035057129854 0.06924604984959991 0
1319 1315 -0.01940293334105418 0.1444816771730504 0
1320 1316 -0.175881191363128 -0.03264599449624634 0
1321 1317 0.3338759275330108 -0.1271181146500085 0
1322 1318 0.01657561476791954 0.172220342736896 0
1323 1319 0.1226287161424794 -0.2250326141904046 0
1324 1320 0.0753348390694779 0.2066081155650308 0
1325 1321 -0.08888003488906031 0.2753386192624474 0
1326 1322 -0.1113541753210455 -0.1123719011469562 0
1327 1323 0.01260684681971411 -0.1250652331752488 0
1328 1324 0.0630412660652195 -0.03197527125037192 0
1329 1325 0.1771502207806555 0.001475481360876178 0
1330 1326 -0.1281516670397864 0.3157605850913887 0
1331 1327 0.05259244995931028 -0.1012727064947871 0
1332 1328 0.02344225387629914 -0.005637518887778841 0
1333 1329 0.05872914740096724 -0.2495325872142755 0
1334 1330 0.03866806246796393 -0.3022424012660482 0
1335 1331 0.03468502997802352 0.2743298577190716 0
1336 1332 0.2021810921098044 0.006014612935126934 0
1337 1333 -0.2925297510033427 0.05487386435814703 0
1338 1334 -0.2525361098482402 0.02921127559668839 0
1339 1335 0.1260322944119723 -0.007886548451266332 0
1340 1336 0.03486762813386349 0.2428548197276453 0
1341 1337 0.08469795559960024 -0.296587015732794 0
1342 1338 -0.1641664308382782 0.03025942671220547 0
1343 1339 -0.200685710233107 0.1208996330610593 0
1344 1340 -0.1613593393976011 -0.2138565584763396 0
1345 1341 0.1354319053528937 -0.2499933373647927 0
1346 1342 0.09598656132692336 0.2150965003512452 0
1347 1343 -0.2279224259034203 0.1582428187740229 0
1348 1344 0.1167590227649065 0.2222448837473664 0
1349 1345 -0.1624408504953557 0.1514049751648432 0
1350 1346 -0.1559143726979888 -0.02237846056161658 0
1351 1347 0.1344793719351367 -0.05352724178899709 0
1352 1348 0.2111755877477586 0.1161148788379837 0
1353 1349 -0.2095555736772 0.175868787502058 0
1354 1350 -0.1072921723560735 0.06977552726058876 0
1355 1351 -0.1163286145096497 0.1249329446236391 0
1356 1352 0.09564506290977635 -0.1749084132581301 0
1357 1353 0.02525043127282315 0.3686376487968794 0
1358 1354 -0.121052517738567 -0.1647983594178564 0
1359 1355 -0.06024040382559984 0.04542139289717567 0
1360 1356 -0.08542901911024181 0.2143612140186358 0
1361 1357 -0.1537249445608838 0.09589696964482687 0
1362 1358 0.1074973450811643 -0.2955583346680099 0
1363 1359 0.04260739837716922 -0.1752222248636525 0
1364 1360 -0.0415654629908121 -0.1266114180655782 0
1365 1361 0.08738272802002038 0.2891509281206925 0
1366 1362 -0.03972148175060431 0.3713251251158338 0
1367 1363 -0.1542128000169495 0.2807024252065021 0
1368 1364 0.1917480031358807 0.1552850720093479 0
1369 1365 -0.2215292868179891 -0.005516625118571432 0
1370 1366 0.2185920925725016 -0.2134154768509693 0
1371 1367 -0.2408352905140649 0.09444302340848372 0
1372 1368 0.02304715179544302 -0.05137459916564831 0
1373 1369 0.07808893151101477 -0.05471153382337735 0
1374 1370 0.1517209272734895 -0.003741420501112201 0
1375 1371 0.1703566727312549 -0.0241320573206821 0
1376 1372 -0.1433533503631139 -0.1678924155195694 0
1377 1373 -0.007727932951771738 0.2749583088408977 0
1378 1374 -0.01164201751060428 0.09221770267098199 0
1379 1375 -0.1730829267425604 0.08227429842189583 0
1380 1376 0.1031827076620778 0.267930144696862 0
1381 1377 0.002422212192683692 0.04314011352716089 0
1382 1378 -0.04675467592736093 0.2449017099654572 0
1383 1379 -0.172852806185909 -0.08175923323318565 0
1384 1380 0.1138085285465784 0.1713950567909334 0
1385 1381 -0.2382512616581326 0.06925847387767999 0
1386 1382 -0.2028510727963572 0.006228548948237622 0
1387 1383 -0.1272216330718736 0.2126390771023936 0
1388 1384 -0.004829828710733692 0.2151601721537268 0
1389 1385 0.04535102587214979 0.4448286880188223 0
1390 1386 0.1639500656478295 0.04578584789217396 0
1391 1387 0.1483620549627227 0.08852668355645216 0
1392 1388 -0.03316701137577639 -0.3964073308922129 0
1393 1389 0.008509565075122117 0.4226198809343666 0
1394 1390 0.1693752792573326 0.09669848051561651 0
1395 1391 -0.1356893398362539 -0.2137749532685964 0
1396 1392 -0.01208146474088659 0.02583642125165124 0
1397 1393 -0.2203546201247382 0.1072696603337084 0
1398 1394 0.09376578614208497 0.1630398438429797 0
1399 1395 0.09621296214132498 -0.2724869910449886 0
1400 1396 0.153542278348784 0.1866401945566567 0
1401 1397 -0.1669021337313936 0.1804972576486648 0
1402 1398 -0.2621403159729967 0.08388396245868823 0
1403 1399 -0.04258738231517387 0.1858758101465278 0
1404 1400 -0.1525112967706523 -0.07410635558800184 0
1405 1401 0.07451410125789938 -0.01060981633645412 0
1406 1402 0.07036505737518284 -0.2243644259185296 0
1407 1403 0.2410471571551652 0.03064222849496294 0
1408 1404 -0.006354465134328381 0.4048319449497557 0
1409 1405 0.01773409965135544 0.3963536878946703 0
1410 1406 -0.009576202360520572 0.3047571077834572 0
1411 1407 -0.2691910947749274 0.01400416877102042 0
1412 1408 0.1518952189186368 0.1379048090827363 0
1413 1409 0.05524529183574445 0.1438947734771604 0
1414 1410 -0.213073364557983 0.05667018624291581 0
1415 1411 -0.07151156303839777 0.09951783561506046 0
1416 1412 -0.0837290696218196 0.3055309202273744 0
1417 1413 -0.1294288205331342 0.2424240709662215 0
1418 1414 0.1402911537141801 0.03966657034968388 0
1419 1415 0.07427686409523231 0.1538848515721295 0
1420 1416 -0.07948780240684201 0.1553533533010633 0
1421 1417 0.02023073113455618 0.1209817584364751 0
1422 1418 -0.08751584097559344 0.2447254650059004 0
1423 1419 0.07587838582333821 0.3148882612998763 0
1424 1420 -0.02197077235533263 0.3871764490213392 0
1425 1421 -0.01273689643942155 0.3341739342054275 0
1426 1422 0.2375244919590402 -0.07079039609850263 0
1427 1423 -0.008519851717514503 -0.1774749289412271 0
1428 1424 0.1370035657090893 0.2287827601268516 0
1429 1425 -0.1800218111392516 -0.1297623786540428 0
1430 1426 0.1251874179583072 0.2724380104524446 0
1431 1427 -0.2049568375488802 0.1482027970754311 0
1432 1428 0.1113750947952509 0.122093939195638 0
1433 1429 -0.2132067511547383 -0.05207503072770369 0
1434 1430 0.1468739012441745 0.2766718739300585 0
1435 1431 0.1905652921668697 0.1058052238065624 0
1436 1432 0.2893993401123869 -0.1285786812965916 0
1437 1433 0.05069508571890822 0.03580102644479487 0
1438 1434 0.1337965811434187 0.01578023541791902 0
1439 1435 0.1338052627886913 0.1791477575928847 0
1440 1436 0.1315914036123671 0.1299091422290305 0
1441 1437 -0.06349824314587493 -0.3426640245076856 0
1442 1438 0.1911958478335498 0.1309051431592011 0
1443 1439 0.2965650974552239 -0.1511512640677889 0
1444 1440 0.0367657517458635 0.0141743170309187 0
1445 1441 0.01568307737161961 -0.3875343710285029 0
1446 1442 0.03550021796698363 0.1849353726583196 0
1447 1443 0.08491530515869977 0.01020149580389748 0
1448 1444 -0.05280445613294697 0.01809660621667283 0
1449 1445 -0.09230419081818009 -0.1342918798707742 0
1450 1446 -0.08267661050306628 0.1846452364559364 0
1451 1447 -0.1859510383415873 -0.1767678836387057 0
1452 1448 -0.006267539772813135 0.2448265516096527 0
1453 1449 -0.2792010667027781 0.03518251757426753 0
1454 1450 -0.04782766347605585 0.274374601241016 0
1455 1451 0.2578185400452891 -0.2100820687516334 0
1456 1452 -0.04482543747194325 0.2152454415395472 0
1457 1453 0.1315158130110484 -0.2955747833657835 0
1458 1454 -0.1560669657974994 -0.1239266951608312 0
1459 1455 0.09442718617130108 0.03136184967065913 0
1460 1456 -0.03670262664892656 0.1298495621323558 0
1461 1457 0.1272145668609288 0.08130894346706161 0
1462 1458 0.02085790728876871 -0.2270691958791147 0
1463 1459 -0.09036185287572009 -0.01415670675088408 0
1464 1460 0.1607713144979098 0.2359764440170267 0
1465 1461 -0.06857422777664875 -0.4777070845753945 0
1466 1462 0.06926308127949234 0.3416983731905539 0
1467 1463 -0.1581049307830381 0.1232653082896438 0
1468 1464 0.1057280724111063 0.07525425811245402 0
1469 1465 0.1193406403718855 0.3148355749483292 0
1470 1466 -0.1203748254576066 0.1536611541743493 0
1471 1467 0.1719762596552341 0.1464212763491356 0
1472 1468 -0.1968067943300009 0.09496528932275512 0
1473 1469 -0.05767199002431381 -0.1819077573017483 0
1474 1470 -0.01717347563747104 0.3615061087237572 0
1475 1471 0.2156857056158227 -0.06032719415052887 0
1476 1472 -0.001918883044108748 0.000276883779064558 0
1477 1473 0.1171028769428433 0.03487851422141369 0
1478 1474 -0.02728048088678841 0.07702343371367751 0
1479 1475 0.2574501037207605 -0.06916446927675643 0
1480 1476 -0.07580321396321414 0.1272628457295111 0
1481 1477 -0.1327344487536508 -0.03867759615298454 0
1482 1478 0.2820370174262434 -0.1687349436492133 0
1483 1479 0.1758844309834859 0.1957595293854993 0
1484 1480 -0.04472208532887869 -0.2866311018036883 0
1485 1481 0.3340700873631581 -0.1047674706789008 0
1486 1482 -0.06624047437463372 0.07255754611462027 0
1487 1483 0.1686454273192554 0.2819319686263468 0
1488 1484 -0.1645102775205286 -0.1708203004721025 0
1489 1485 -0.1949148295174752 -0.04256867312217144 0
1490 1486 -0.001495888178143113 0.1586541223014123 0
1491 1487 0.1003034740978079 -0.01000057371270194 0
1492 1488 -0.04836690444184411 0.3027804434593637 0
1493 1489 -0.01561115758812354 -0.3381116595288169 0
1494 1490 0.08652586234422066 -0.3398227431907109 0
1495 1491 0.2183326535675897 0.165276426399817 0
1496 1492 -0.2558153150760837 -0.02958075403323191 0
1497 1493 0.3139972719229854 -0.1376902959960982 0
1498 1494 -0.07394683812494193 -0.2356492156424898 0
1499 1495 -0.003337399410807132 0.1864909427858072 0
1500 1496 -0.1206899911181718 -0.2376855346081454 0
1501 1497 -0.1050266123994157 -0.1873033590561126 0
1502 1498 0.04914964627315861 -0.00886082785211025 0
1503 1499 0.2307412382073118 0.07353111539811155 0
1504 1500 0.03506099257633585 0.2132177416787972 0
1505 1501 -0.149406942444926 0.06928054972893236 0
1506 1502 0.09155800678459831 0.1139877112624441 0
1507 1503 -0.03993355959377434 0.1575465280664206 0
1508 1504 0.06626692812833294 -0.3453962746890509 0
1509 1505 0.1450620510718349 0.06397596236845247 0
1510 1506 -0.1405093250597393 0.2991437510569753 0
1511 1507 -0.02690768524679449 -0.2314778053638322 0
1512 1508 -0.2390434364195393 -0.01763930942126589 0
1513 1509 0.03141888870268902 0.4624885057328619 0
1514 1510 0.07674857166466094 0.234751133658497 0
1515 1511 0.001958713635471194 -0.2814152981308934 0
1516 1512 -0.05208684448527281 -0.4532346812739854 0
1517 1513 -0.131965507746184 -0.09243136198152664 0
1518 1514 -0.1957694681473456 -0.09064757201844631 0
1519 1515 -0.09208460140819123 -0.2873820494020431 0
1520 1516 0.1429017637602913 0.3169045193014988 0
1521 1517 -0.003496472937182336 0.4469258355344856 0
1522 1518 -0.2827322765347968 0.1194724572133218 0
1523 1519 -0.1443644747362911 0.4620669107792373 0
1524 1520 0.01903532246078369 0.06265874922251326 0
1525 1521 0.315606937480671 -0.3882934974447256 0
1526 1522 0.03751651488085428 0.1327392223187194 0
1527 1523 0.04829013067671515 -0.2755189034469586 0
1528 1524 -0.1884288974523163 0.04368441580095776 0
1529 1525 0.2149502968973528 -0.01404349649926402 0
1530 1526 0.0633020439739902 -0.3682979501091044 0
1531 1527 -0.1119813120745192 0.09722481397270331 0
1532 1528 -0.2426191697178653 0.1185643202741828 0
1533 1529 -0.101992289215733 0.04261287872152245 0
1534 1530 0.07456806376081603 -0.3206663141139555 0
1535 1531 -0.1794081323300435 -0.007550411328456172 0
1536 1532 -0.140088160481559 0.01590644008962465 0
1537 1533 -0.2457006725066011 0.1439706776883156 0
1538 1534 0.1828485537886903 -0.3011850979609393 0
1539 1535 0.2163732669392467 -0.0361196096885435 0
1540 1536 0.2307207260249485 0.05174394191228012 0
1541 1537 0.004067616636808301 0.1075198351141713 0
1542 1538 -0.2827145138925075 0.09825572644473853 0
1543 1539 -0.2993703353848705 -0.0149823245815464 0
1544 1540 -0.2273517820416097 0.01848528617463896 0
1545 1541 0.03039718014404048 -0.3298842371986903 0
1546 1542 -0.3136852981650749 0.02513374479125031 0
1547 1543 0.3333882034295093 -0.1518907591619255 0
1548 1544 0.1504175946763137 0.1133639703698948 0
1549 1545 0.2855814134020878 0.0256667451837618 0
1550 1546 0.1014462812559185 0.05316470839749621 0
1551 1547 0.3067934312515934 -0.2076440306309868 0
1552 1548 0.07462569560428779 0.17982305811102 0
1553 1549 0.1334373875505554 0.2952800756776048 0
1554 1550 0.1888451035249831 0.0797175160337887 0
1555 1551 -0.05226387072483216 0.3298119828716354 0
1556 1552 -0.2450381982787008 -0.07147067378480142 0
1557 1553 -0.07350532279156956 0.4720135785807136 0
1558 1554 0.0009231585600804233 0.1325577923586018 0
1559 1555 -0.03248398213121447 0.1032900296465264 0
1560 1556 -0.1382665230463394 -0.1435545725598371 0
1561 1557 -0.2317508183053769 -0.05809240422047137 0
1562 1558 0.07168800972636717 0.1059113436827755 0
1563 1559 -0.4484710239042276 -0.002169163354803783 0
1564 1560 -0.1503531586842134 -0.1911391241904887 0
1565 1561 -0.287334928919702 -0.05445741744463645 0
1566 1562 -0.1030646824670256 -0.3653773541196257 0
1567 1563 0.07378018851963336 0.03370632888618622 0
1568 1564 0.03630127544474377 0.1582380366127001 0
1569 1565 -0.02954507002524348 0.4090043746075752 0
1570 1566 -0.271675606866556 -0.04189136274620581 0
1571 1567 0.08523149491836092 0.06924071022954573 0
1572 1568 0.1202063034467394 0.2477860499301388 0
1573 1569 -0.02031786324220511 0.05158568424768067 0
1574 1570 0.02749603920398086 0.03913219378418326 0
1575 1571 -0.2645396634190141 0.13123506373441 0
1576 1572 -0.283883845119154 0.1404516601146315 0
1577 1573 0.2344823916392103 0.1275737039415449 0
1578 1574 0.1127169653654556 0.1465111220957063 0
1579 1575 -0.05788677956324762 0.3839672121239081 0
1580 1576 0.1527933471933909 0.1625101460878266 0
1581 1577 0.02607631718859338 0.4821664828007076 0
1582 1578 -0.2986424861375687 0.03642424755494911 0
1583 1579 0.1121359659310087 0.3579139279808762 0
1584 1580 -0.1742553816111717 0.2630458283798339 0
1585 1581 0.1150100521604362 0.1967972682934326 0
1586 1582 0.4829928823698516 -0.05193297258487457 0
1587 1583 -0.4782082881828626 -0.1361577069989812 0
1588 1584 -0.2772804365576566 -0.09495203333420019 0
1589 1585 0.3143746032174197 -0.1882852013502987 0
1590 1586 0.09802503057914792 0.3124806747291669 0
1591 1587 -0.3256144559161948 -0.038077151682277 0
1592 1588 -0.2845569240014027 -0.0006751493877105887 0
1593 1589 0.1089848922725147 0.09814521989810808 0
1594 1590 0.1969266812703935 -0.279626802123068 0
1595 1591 -0.288361937801188 0.159878436134201 0
1596 1592 -0.07946950990771771 0.3323063931806282 0
1597 1593 0.2800696239307265 -0.2100629557314536 0
1598 1594 -0.1737333548106187 -0.05764035426497375 0
1599 1595 0.01141768625220638 0.08646232046592568 0
1600 1596 -0.3037044344930935 -0.07239314768558626 0
1601 1597 0.06985832992284689 0.3670247851083336 0
1602 1598 -0.2626402522790727 -0.08456074991552003 0
1603 1599 -0.1848378835753081 -0.1537646621988862 0
1604 1600 0.1657141007754908 0.2617209542463201 0
1605 1601 0.2705043289463823 0.009457881541503338 0
1606 1602 -0.2618840814340851 -0.00823186231676698 0
1607 1603 0.2240588700560028 -0.2360701630535836 0
1608 1604 0.3134093245629328 -0.09203196636026928 0
1609 1605 0.4467458047160794 0.009086224072473018 0
1610 1606 -0.2881680075654787 0.1998061267171079 0
1611 1607 -0.03830110288189746 -0.4801252460516089 0
1612 1608 0.07357680404508085 0.1293032239947775 0
1613 1609 0.04717823091883416 -0.4581253031111506 0
1614 1610 0.05945847949113028 0.4197053795967434 0
1615 1611 0.0607488242771663 -0.3952122477517406 0
1616 1612 -0.176433263779969 -0.1066490736911124 0
1617 1613 0.0890659589580791 0.3502154075496901 0
1618 1614 -0.2169359134541484 -0.02939991626671862 0
1619 1615 -0.1529689507668712 -0.2538273158884629 0
1620 1616 0.1207596704427022 -0.3165489094407809 0
1621 1617 0.1112235206901809 -0.3373349251866276 0
1622 1618 0.1368825136689376 -0.3360800111842979 0
1623 1619 0.3698801936525125 -0.1014512191382571 0
1624 1620 0.2505617731773558 0.005719108491710308 0
1625 1621 0.19908071094666 0.2051253926693173 0
1626 1622 0.1867323513487172 0.2465892076880014 0
1627 1623 0.1571839847667857 0.2119240563926411 0
1628 1624 -0.2040989563314111 -0.1380926418666298 0
1629 1625 0.003636784828585274 0.4842701980648847 0
1630 1626 0.2674454848844596 -0.01165595499928224 0
1631 1627 0.3751944012556379 -0.08186339633068031 0
1632 1628 -0.1509306575485238 0.3227161008443019 0
1633 1629 -0.4623712173221339 0.0258726833379413 0
1634 1630 -0.1323039730513896 -0.295608025114781 0
1635 1631 -0.2511787377602093 -0.05135227097891454 0
1636 1632 0.37700485916961 -0.1254698892357577 0
1637 1633 0.2729608412627755 -0.07958768978307415 0
1638 1634 0.2085433885493379 -0.4810085826204427 0
1639 1635 0.03870329696370697 0.1104402073425329 0
1640 1636 -0.3210422692580365 0.09899472073569451 0
1641 1637 0.05407300903854811 0.1012643115163532 0
1642 1638 -0.3094383734340272 -0.03033523664733656 0
1643 1639 0.1642516112886232 0.3179689222120301 0
1644 1640 -0.1549490097445064 -0.3308593316429236 0
1645 1641 -0.2124593753363997 0.2451788088064635 0
1646 1642 -0.2205213277180137 -0.07570764364692743 0
1647 1643 0.3341657869485474 -0.08437527351627809 0
1648 1644 0.3538400240728015 -0.1158284089972723 0
1649 1645 0.3148797254429274 -0.004917793910406613 0
1650 1646 -0.3363776273905131 0.05863430890220356 0
1651 1647 -0.03834332056117583 0.4272701856749148 0
1652 1648 -0.4531019095522608 0.104578756367351 0
1653 1649 -0.1099205767452763 -0.3399309662004122 0
1654 1650 -0.47519759127684 0.1254445413204909 0
1655 1651 0.2409969708120943 -0.01876683587419072 0
1656 1652 0.401169893314874 -0.07635730184361818 0
1657 1653 -0.408170758800064 -0.4842617933089324 0
1658 1654 -0.3692050957119809 0.2064238647140395 0
1659 1655 -0.1024241367285664 0.3707196582266893 0
1660 1656 0.2205952368728284 0.3888134951251366 0
1661 1657 0.248421966078378 0.08247745446277545 0
1662 1658 -0.07972988760458498 -0.4076432814575916 0
1663 1659 -0.3361701536991665 0.002213474201213131 0
1664 1660 0.2654011835414168 -0.2341968987255524 0
1665 1661 0.4218527587829235 -0.09721493794531412 0
1666 1662 0.46935008078622 -0.09408783494290969 0
1667 1663 0.066889487536905 0.05509058903295814 0
1668 1664 0.289791191345371 0.002008973025692803 0
1669 1665 -0.292497105669379 -0.03554473529028285 0
1670 1666 0.4822142337383726 0.02485017052713258 0
1671 1667 -0.325335691721675 0.1895408968265667 0
1672 1668 -0.1293435402082533 0.3601066245710542 0
1673 1669 0.195544627765161 0.1803073139400969 0
1674 1670 -0.3011131832596727 0.1128034323283473 0
1675 1671 0.1061528688149697 0.3333736739132693 0
1676 1672 -0.2144728818069626 0.290916101538059 0
1677 1673 -0.2206480783371132 -0.1014231035557955 0
1678 1674 -0.4564289861445994 0.07512665148951984 0
1679 1675 -0.4738899576281673 0.1541617989020788 0
1680 1676 -0.3072282960462064 0.002610436952320902 0
1681 1677 0.1888952820882252 0.2731350245766712 0
1682 1678 0.05086874544853826 0.4741567288542722 0
1683 1679 0.251867056175905 0.05657331609761239 0
1684 1680 -0.0535055977787402 0.4103076803434516 0
1685 1681 -0.08576219916685242 -0.4316395432998396 0
1686 1682 -0.3112299631910053 0.07266906610421169 0
1687 1683 -0.163019045746312 -0.2380128689093358 0
1688 1684 -0.2387439206059059 -0.111202906801023 0
1689 1685 0.2926415451236357 -0.02585012922862429 0
1690 1686 0.2295087397065183 0.09889993364642136 0
1691 1687 -0.2819520749816525 -0.07628205906448796 0
1692 1688 -0.4852626904828437 0.410340648880283 0
1693 1689 0.4852554617289247 -0.4103435128046098 0
1694 1690 -0.4265521328715516 0.01705415779634759 0
1695 1691 0.06981661214463948 0.4492073482146503 0
1696 1692 -0.3205154726675923 0.1319254117103933 0
1697 1693 0.1357029486410019 0.3553983062568428 0
1698 1694 0.4103559377657527 0.4853314463556975 0
1699 1695 -0.3637364830320326 0.01146885343791267 0
1700 1696 -0.241259535640737 -0.09237388879733592 0
1701 1697 0.326490751572082 -0.1732726295959591 0
1702 1698 0.3049339757932882 -0.1710373091893451 0
1703 1699 -0.199640172240683 0.266815576025543 0
1704 1700 -0.4786794813144466 0.2043779145754536 0
1705 1701 0.1052906327775801 0.3840330979447628 0
1706 1702 -0.4728171855692922 -0.01959744468473669 0
1707 1703 -0.2151812561974981 -0.3812810725202014 0
1708 1704 -0.2345079203221208 0.3329701014093757 0
1709 1705 0.08773085280525558 -0.3796414643823606 0
1710 1706 0.3370996469267816 -0.3569053908085074 0
1711 1707 0.3485857835413562 -0.2154153173757804 0
1712 1708 -0.1856302995052494 -0.2013356438039416 0
1713 1709 -0.3583182064504132 -0.01106135421139072 0
1714 1710 0.03622432590192796 0.08629685443764831 0
1715 1711 -0.4550082620250521 -0.1023033471602296 0
1716 1712 0.264350356660122 -0.03178525023362008 0
1717 1713 0.2763113151880727 -0.05512811539190969 0
1718 1714 0.4845787503050659 -0.2575538729465698 0
1719 1715 0.244098887270737 -0.04886883867343599 0
1720 1716 0.2966772305883313 -0.3840717908331785 0
1721 1717 -0.3499971348537282 -0.05039321372026198 0
1722 1718 0.3047217399101263 0.04441996738134366 0
1723 1719 0.1163967219728984 -0.3735879725986613 0
1724 1720 0.389533877152067 -0.3082197805301344 0
1725 1721 -0.3700582335212365 -0.03146584462505863 0
1726 1722 -0.1306501047381013 -0.3622663155718261 0
1727 1723 0.1009496894681863 -0.3569762570656916 0
1728 1724 0.3142257712462271 -0.3689048530660652 0
1729 1725 0.42742758448174 -0.1584220100679918 0
1730 1726 0.3275458186994978 0.03658128333749228 0
1731 1727 0.2935902003607649 -0.2300164913364507 0
1732 1728 -0.3975964641450156 -0.2308508472206428 0
1733 1729 -0.3563039914102798 0.03804606757487035 0
1734 1730 0.2705969339750348 0.3828026506406461 0
1735 1731 -0.1356282426773658 0.3932035027017546 0
1736 1732 -0.1348732923365436 -0.386865036275611 0
1737 1733 -0.3046719792937597 0.1511227887300567 0
1738 1734 0.1630803309724891 -0.3240679506837614 0
1739 1735 0.4503133605587673 -0.1057527234495815 0
1740 1736 -0.3578315812150863 0.1094899309539693 0
1741 1737 -0.1840677673308749 -0.3135709922459862 0
1742 1738 0.3008091978584794 0.288200428777498 0
1743 1739 0.3521085470146555 -0.4767680076153371 0
1744 1740 -0.4751970352565358 0.05107718438454954 0
1745 1741 -0.1986547488742043 0.3331314009573227 0
1746 1742 0.3468297814783459 -0.4399624662607675 0
1747 1743 -0.3295972832361211 0.07958620551100325 0
1748 1744 0.3615973796369145 -0.2525389137976385 0
1749 1745 0.1819856802173598 -0.4815309728750004 0
1750 1746 -0.3212960648538226 0.3777052722667379 0
1751 1747 -0.3738467011344458 0.4706060981970958 0
1752 1748 0.4705193941684658 -0.1999671959187326 0
1753 1749 -0.3985526595722711 -0.07572457353818855 0
1754 1750 -0.378880704588285 -0.08438625232806081 0
1755 1751 -0.04027218312624087 -0.08560684545823466 0
1756 1752 0.4164206687228996 -0.2729715277411709 0
1757 1753 -0.4828817174527106 0.07596688396000316 0
1758 1754 0.383983921547856 -0.4736916368337405 0
1759 1755 -0.4237281842768528 -0.02681790159108257 0
1760 1756 0.4069656824418502 -0.1200078421954712 0
1761 1757 -0.3968067165345214 -0.02229401717705653 0
1762 1758 -0.1794171765018489 -0.4814544305948628 0
1763 1759 -0.11451769077899 0.3949413185239162 0
1764 1760 -0.3777916065063635 -0.05906576138174945 0
1765 1761 -0.4413703220881906 0.04388111486306778 0
1766 1762 -0.06345644105638439 -0.0502710781920506 0
1767 1763 -0.07806169429224825 0.3764262406515499 0
1768 1764 0.1590033695255473 -0.345894632521549 0
1769 1765 0.228054799722459 0.147446878135204 0
1770 1766 0.1492558755885736 -0.4669893268123202 0
1771 1767 -0.2500687205684329 0.1679866168909384 0
1772 1768 0.200994078005995 -0.2968644151625052 0
1773 1769 0.4714151167871464 -0.2343189765687088 0
1774 1770 -0.3721143123995286 -0.4610754599047776 0
1775 1771 -0.3816792499715451 0.1796764660628634 0
1776 1772 -0.09692485591392133 -0.3280845804618368 0
1777 1773 -0.3961775403940267 0.00832332972694886 0
1778 1774 -0.360111105167115 0.458156918589149 0
1779 1775 -0.244351358635584 0.3510175333765818 0
1780 1776 -0.08537610751757932 0.3560413156148591 0
1781 1777 0.3784956979675365 -0.2910239847793886 0
1782 1778 -0.3428538871961114 0.4602708638764286 0
1783 1779 -0.1919429796852562 0.3108862509933445 0
1784 1780 0.4751258750127694 -0.1712427951320477 0
1785 1781 -0.1824514822500501 0.2856263405403162 0
1786 1782 -0.2207626960049534 0.2271728958894307 0
1787 1783 0.3734653088452988 -0.1770324554816714 0
1788 1784 -0.2533649502928682 0.195485655252545 0
1789 1785 0.2920007164968844 0.1741926828421162 0
1790 1786 0.3294910447124035 0.01396192735016103 0
1791 1787 -0.07145306544024296 0.3967247142690488 0
1792 1788 0.4661895403693871 0.09515267758119539 0
1793 1789 0.4485590734517952 0.3622479298081088 0
1794 1790 0.391504279884438 -0.2653552943945298 0
1795 1791 0.1852119872545549 -0.3257673900640694 0
1796 1792 0.4305132763114365 -0.1180398097796251 0
1797 1793 0.2839283282444257 -0.4812888520041592 0
1798 1794 0.4802623773490703 0.08005378976040295 0
1799 1795 -0.1577897662044455 0.4805896859742667 0
1800 1796 -0.1166988070867896 0.4677575301091273 0
1801 1797 0.4514885394239092 -0.03566193897913127 0
1802 1798 -0.1350526608872114 0.4820828253725263 0
1803 1799 -0.3071149641101712 0.1929487788117535 0
1804 1800 -0.153835031580777 0.4357202559897444 0
1805 1801 0.1050076707312184 -0.4839371571756038 0
1806 1802 -0.3144381838267477 0.4052964276153573 0
1807 1803 -0.3249131619242486 0.1624259096511723 0
1808 1804 0.4123371884667686 -0.4793728282649075 0
1809 1805 0.3184484681357155 -0.4815128690160706 0
1810 1806 0.1592548817121531 0.4807639342332838 0
1811 1807 -0.4360735332684274 0.06643741572995236 0
1812 1808 0.1620460781022886 -0.4829511596380642 0
1813 1809 -0.1793299508197811 0.4828786829395101 0
1814 1810 -0.3876681258206236 -0.04053508460821946 0
1815 1811 -0.4446911740465259 0.02115969816063822 0
1816 1812 -0.4831877083004022 0.0266600839973478 0
1817 1813 0.4832013085354417 0.09925695160118496 0
1818 1814 -0.4832078726103182 0.2449269419819927 0
1819 1815 0.04176131670589403 -0.4838615995609 0
1820 $EndNodes
1821 $Elements
1822 3628
1823 1 1 3 102 5 0 1 5
1824 2 1 3 102 5 0 5 6
1825 3 1 3 102 5 0 6 7
1826 4 1 3 102 5 0 7 8
1827 5 1 3 102 5 0 8 9
1828 6 1 3 102 5 0 9 10
1829 7 1 3 102 5 0 10 11
1830 8 1 3 102 5 0 11 12
1831 9 1 3 102 5 0 12 13
1832 10 1 3 102 5 0 13 14
1833 11 1 3 102 5 0 14 15
1834 12 1 3 102 5 0 15 16
1835 13 1 3 102 5 0 16 17
1836 14 1 3 102 5 0 17 18
1837 15 1 3 102 5 0 18 19
1838 16 1 3 102 5 0 19 20
1839 17 1 3 102 5 0 20 21
1840 18 1 3 102 5 0 21 22
1841 19 1 3 102 5 0 22 23
1842 20 1 3 102 5 0 23 24
1843 21 1 3 102 5 0 24 25
1844 22 1 3 102 5 0 25 26
1845 23 1 3 102 5 0 26 27
1846 24 1 3 102 5 0 27 28
1847 25 1 3 102 5 0 28 29
1848 26 1 3 102 5 0 29 30
1849 27 1 3 102 5 0 30 31
1850 28 1 3 102 5 0 31 32
1851 29 1 3 102 5 0 32 33
1852 30 1 3 102 5 0 33 34
1853 31 1 3 102 5 0 34 35
1854 32 1 3 102 5 0 35 36
1855 33 1 3 102 5 0 36 37
1856 34 1 3 102 5 0 37 38
1857 35 1 3 102 5 0 38 39
1858 36 1 3 102 5 0 39 40
1859 37 1 3 102 5 0 40 41
1860 38 1 3 102 5 0 41 42
1861 39 1 3 102 5 0 42 2
1862 40 1 3 104 6 0 2 43
1863 41 1 3 104 6 0 43 44
1864 42 1 3 104 6 0 44 45
1865 43 1 3 104 6 0 45 46
1866 44 1 3 104 6 0 46 47
1867 45 1 3 104 6 0 47 48
1868 46 1 3 104 6 0 48 49
1869 47 1 3 104 6 0 49 50
1870 48 1 3 104 6 0 50 51
1871 49 1 3 104 6 0 51 52
1872 50 1 3 104 6 0 52 53
1873 51 1 3 104 6 0 53 54
1874 52 1 3 104 6 0 54 55
1875 53 1 3 104 6 0 55 56
1876 54 1 3 104 6 0 56 57
1877 55 1 3 104 6 0 57 58
1878 56 1 3 104 6 0 58 59
1879 57 1 3 104 6 0 59 60
1880 58 1 3 104 6 0 60 61
1881 59 1 3 104 6 0 61 62
1882 60 1 3 104 6 0 62 63
1883 61 1 3 104 6 0 63 64
1884 62 1 3 104 6 0 64 65
1885 63 1 3 104 6 0 65 66
1886 64 1 3 104 6 0 66 67
1887 65 1 3 104 6 0 67 68
1888 66 1 3 104 6 0 68 69
1889 67 1 3 104 6 0 69 70
1890 68 1 3 104 6 0 70 71
1891 69 1 3 104 6 0 71 72
1892 70 1 3 104 6 0 72 73
1893 71 1 3 104 6 0 73 74
1894 72 1 3 104 6 0 74 75
1895 73 1 3 104 6 0 75 76
1896 74 1 3 104 6 0 76 77
1897 75 1 3 104 6 0 77 78
1898 76 1 3 104 6 0 78 79
1899 77 1 3 104 6 0 79 80
1900 78 1 3 104 6 0 80 3
1901 79 1 3 101 7 0 3 81
1902 80 1 3 101 7 0 81 82
1903 81 1 3 101 7 0 82 83
1904 82 1 3 101 7 0 83 84
1905 83 1 3 101 7 0 84 85
1906 84 1 3 101 7 0 85 86
1907 85 1 3 101 7 0 86 87
1908 86 1 3 101 7 0 87 88
1909 87 1 3 101 7 0 88 89
1910 88 1 3 101 7 0 89 90
1911 89 1 3 101 7 0 90 91
1912 90 1 3 101 7 0 91 92
1913 91 1 3 101 7 0 92 93
1914 92 1 3 101 7 0 93 94
1915 93 1 3 101 7 0 94 95
1916 94 1 3 101 7 0 95 96
1917 95 1 3 101 7 0 96 97
1918 96 1 3 101 7 0 97 98
1919 97 1 3 101 7 0 98 99
1920 98 1 3 101 7 0 99 100
1921 99 1 3 101 7 0 100 101
1922 100 1 3 101 7 0 101 102
1923 101 1 3 101 7 0 102 103
1924 102 1 3 101 7 0 103 104
1925 103 1 3 101 7 0 104 105
1926 104 1 3 101 7 0 105 106
1927 105 1 3 101 7 0 106 107
1928 106 1 3 101 7 0 107 108
1929 107 1 3 101 7 0 108 109
1930 108 1 3 101 7 0 109 110
1931 109 1 3 101 7 0 110 111
1932 110 1 3 101 7 0 111 112
1933 111 1 3 101 7 0 112 113
1934 112 1 3 101 7 0 113 114
1935 113 1 3 101 7 0 114 115
1936 114 1 3 101 7 0 115 116
1937 115 1 3 101 7 0 116 117
1938 116 1 3 101 7 0 117 118
1939 117 1 3 101 7 0 118 4
1940 118 1 3 103 8 0 4 119
1941 119 1 3 103 8 0 119 120
1942 120 1 3 103 8 0 120 121
1943 121 1 3 103 8 0 121 122
1944 122 1 3 103 8 0 122 123
1945 123 1 3 103 8 0 123 124
1946 124 1 3 103 8 0 124 125
1947 125 1 3 103 8 0 125 126
1948 126 1 3 103 8 0 126 127
1949 127 1 3 103 8 0 127 128
1950 128 1 3 103 8 0 128 129
1951 129 1 3 103 8 0 129 130
1952 130 1 3 103 8 0 130 131
1953 131 1 3 103 8 0 131 132
1954 132 1 3 103 8 0 132 133
1955 133 1 3 103 8 0 133 134
1956 134 1 3 103 8 0 134 135
1957 135 1 3 103 8 0 135 136
1958 136 1 3 103 8 0 136 137
1959 137 1 3 103 8 0 137 138
1960 138 1 3 103 8 0 138 139
1961 139 1 3 103 8 0 139 140
1962 140 1 3 103 8 0 140 141
1963 141 1 3 103 8 0 141 142
1964 142 1 3 103 8 0 142 143
1965 143 1 3 103 8 0 143 144
1966 144 1 3 103 8 0 144 145
1967 145 1 3 103 8 0 145 146
1968 146 1 3 103 8 0 146 147
1969 147 1 3 103 8 0 147 148
1970 148 1 3 103 8 0 148 149
1971 149 1 3 103 8 0 149 150
1972 150 1 3 103 8 0 150 151
1973 151 1 3 103 8 0 151 152
1974 152 1 3 103 8 0 152 153
1975 153 1 3 103 8 0 153 154
1976 154 1 3 103 8 0 154 155
1977 155 1 3 103 8 0 155 156
1978 156 1 3 103 8 0 156 1
1979 157 2 3 201 10 0 298 41 42
1980 158 2 3 201 10 0 297 155 156
1981 159 2 3 201 10 0 300 79 80
1982 160 2 3 201 10 0 299 117 118
1983 161 2 3 201 10 0 293 154 155
1984 162 2 3 201 10 0 294 40 41
1985 163 2 3 201 10 0 295 78 79
1986 164 2 3 201 10 0 296 116 117
1987 165 2 3 201 10 0 297 293 155
1988 166 2 3 201 10 0 293 297 206
1989 167 2 3 201 10 0 298 294 41
1990 168 2 3 201 10 0 294 298 207
1991 169 2 3 201 10 0 299 296 117
1992 170 2 3 201 10 0 296 299 209
1993 171 2 3 201 10 0 300 295 79
1994 172 2 3 201 10 0 295 300 208
1995 173 2 3 201 10 0 174 172 393
1996 174 2 3 201 10 0 446 393 172
1997 175 2 3 201 10 0 453 69 70
1998 176 2 3 201 10 0 458 261 255
1999 177 2 3 201 10 0 459 264 258
2000 178 2 3 201 10 0 471 400 241
2001 179 2 3 201 10 0 476 145 146
2002 180 2 3 201 10 0 169 412 479
2003 181 2 3 201 10 0 211 421 479
2004 182 2 3 201 10 0 479 421 169
2005 183 2 3 201 10 0 171 419 488
2006 184 2 3 201 10 0 500 453 70
2007 185 2 3 201 10 0 503 482 248
2008 186 2 3 201 10 0 508 423 165
2009 187 2 3 201 10 0 508 456 259
2010 188 2 3 201 10 0 509 283 273
2011 189 2 3 201 10 0 510 282 272
2012 190 2 3 201 10 0 511 280 274
2013 191 2 3 201 10 0 512 281 271
2014 192 2 3 201 10 0 245 439 513
2015 193 2 3 201 10 0 258 482 519
2016 194 2 3 201 10 0 255 483 520
2017 195 2 3 201 10 0 241 400 521
2018 196 2 3 201 10 0 523 476 146
2019 197 2 3 201 10 0 267 451 529
2020 198 2 3 201 10 0 265 452 530
2021 199 2 3 201 10 0 206 297 532
2022 200 2 3 201 10 0 207 298 533
2023 201 2 3 201 10 0 209 299 534
2024 202 2 3 201 10 0 208 300 535
2025 203 2 3 201 10 0 536 467 246
2026 204 2 3 201 10 0 243 414 543
2027 205 2 3 201 10 0 543 478 243
2028 206 2 3 201 10 0 206 202 546
2029 207 2 3 201 10 0 546 202 289
2030 208 2 3 201 10 0 546 293 206
2031 209 2 3 201 10 0 208 204 547
2032 210 2 3 201 10 0 547 204 292
2033 211 2 3 201 10 0 547 295 208
2034 212 2 3 201 10 0 209 205 548
2035 213 2 3 201 10 0 548 205 291
2036 214 2 3 201 10 0 548 296 209
2037 215 2 3 201 10 0 207 203 549
2038 216 2 3 201 10 0 549 203 290
2039 217 2 3 201 10 0 549 294 207
2040 218 2 3 201 10 0 240 477 558
2041 219 2 3 201 10 0 559 202 198
2042 220 2 3 201 10 0 289 202 559
2043 221 2 3 201 10 0 560 205 200
2044 222 2 3 201 10 0 291 205 560
2045 223 2 3 201 10 0 561 203 199
2046 224 2 3 201 10 0 290 203 561
2047 225 2 3 201 10 0 562 204 201
2048 226 2 3 201 10 0 292 204 562
2049 227 2 3 201 10 0 238 439 567
2050 228 2 3 201 10 0 567 439 245
2051 229 2 3 201 10 0 568 380 254
2052 230 2 3 201 10 0 569 387 252
2053 231 2 3 201 10 0 169 421 571
2054 232 2 3 201 10 0 165 423 571
2055 233 2 3 201 10 0 573 451 267
2056 234 2 3 201 10 0 292 539 575
2057 235 2 3 201 10 0 295 547 575
2058 236 2 3 201 10 0 575 547 292
2059 237 2 3 201 10 0 289 540 576
2060 238 2 3 201 10 0 293 546 576
2061 239 2 3 201 10 0 576 546 289
2062 240 2 3 201 10 0 291 538 577
2063 241 2 3 201 10 0 296 548 577
2064 242 2 3 201 10 0 577 548 291
2065 243 2 3 201 10 0 579 1 5
2066 244 2 3 201 10 0 156 1 579
2067 245 2 3 201 10 0 580 2 43
2068 246 2 3 201 10 0 42 2 580
2069 247 2 3 201 10 0 581 4 119
2070 248 2 3 201 10 0 118 4 581
2071 249 2 3 201 10 0 582 3 81
2072 250 2 3 201 10 0 80 3 582
2073 251 2 3 201 10 0 209 534 583
2074 252 2 3 201 10 0 207 533 584
2075 253 2 3 201 10 0 206 532 585
2076 254 2 3 201 10 0 208 535 586
2077 255 2 3 201 10 0 14 15 455
2078 256 2 3 201 10 0 472 243 478
2079 257 2 3 201 10 0 366 472 478
2080 258 2 3 201 10 0 179 174 393
2081 259 2 3 201 10 0 251 245 513
2082 260 2 3 201 10 0 251 513 371
2083 261 2 3 201 10 0 253 489 378
2084 262 2 3 201 10 0 568 247 465
2085 263 2 3 201 10 0 380 568 465
2086 264 2 3 201 10 0 454 259 438
2087 265 2 3 201 10 0 88 89 531
2088 266 2 3 201 10 0 569 246 467
2089 267 2 3 201 10 0 387 569 467
2090 268 2 3 201 10 0 536 246 446
2091 269 2 3 201 10 0 411 536 446
2092 270 2 3 201 10 0 448 211 479
2093 271 2 3 201 10 0 448 479 412
2094 272 2 3 201 10 0 361 174 179
2095 273 2 3 201 10 0 508 259 485
2096 274 2 3 201 10 0 423 508 485
2097 275 2 3 201 10 0 465 247 524
2098 276 2 3 201 10 0 465 524 431
2099 277 2 3 201 10 0 556 263 271
2100 278 2 3 201 10 0 432 556 271
2101 279 2 3 201 10 0 555 262 274
2102 280 2 3 201 10 0 554 264 272
2103 281 2 3 201 10 0 436 554 272
2104 282 2 3 201 10 0 553 261 273
2105 283 2 3 201 10 0 437 553 273
2106 284 2 3 201 10 0 451 573 278
2107 285 2 3 201 10 0 481 190 193
2108 286 2 3 201 10 0 480 187 191
2109 287 2 3 201 10 0 486 188 192
2110 288 2 3 201 10 0 487 189 194
2111 289 2 3 201 10 0 508 165 550
2112 290 2 3 201 10 0 508 550 456
2113 291 2 3 201 10 0 488 238 567
2114 292 2 3 201 10 0 488 567 457
2115 293 2 3 201 10 0 186 183 466
2116 294 2 3 201 10 0 537 257 491
2117 295 2 3 201 10 0 464 537 491
2118 296 2 3 201 10 0 451 278 516
2119 297 2 3 201 10 0 452 277 517
2120 298 2 3 201 10 0 489 558 477
2121 299 2 3 201 10 0 543 256 490
2122 300 2 3 201 10 0 478 543 490
2123 301 2 3 201 10 0 503 242 519
2124 302 2 3 201 10 0 503 519 482
2125 303 2 3 201 10 0 276 289 559
2126 304 2 3 201 10 0 199 195 517
2127 305 2 3 201 10 0 277 290 561
2128 306 2 3 201 10 0 200 197 516
2129 307 2 3 201 10 0 278 291 560
2130 308 2 3 201 10 0 201 196 515
2131 309 2 3 201 10 0 279 292 562
2132 310 2 3 201 10 0 516 197 193
2133 311 2 3 201 10 0 516 193 529
2134 312 2 3 201 10 0 516 529 451
2135 313 2 3 201 10 0 514 192 527
2136 314 2 3 201 10 0 515 196 194
2137 315 2 3 201 10 0 515 194 528
2138 316 2 3 201 10 0 517 195 191
2139 317 2 3 201 10 0 517 191 530
2140 318 2 3 201 10 0 517 530 452
2141 319 2 3 201 10 0 569 388 246
2142 320 2 3 201 10 0 446 246 388
2143 321 2 3 201 10 0 393 446 388
2144 322 2 3 201 10 0 568 389 247
2145 323 2 3 201 10 0 449 247 389
2146 324 2 3 201 10 0 528 194 189
2147 325 2 3 201 10 0 189 505 528
2148 326 2 3 201 10 0 528 505 268
2149 327 2 3 201 10 0 527 192 188
2150 328 2 3 201 10 0 188 504 527
2151 329 2 3 201 10 0 527 504 266
2152 330 2 3 201 10 0 529 193 190
2153 331 2 3 201 10 0 190 506 529
2154 332 2 3 201 10 0 529 506 267
2155 333 2 3 201 10 0 530 191 187
2156 334 2 3 201 10 0 187 507 530
2157 335 2 3 201 10 0 530 507 265
2158 336 2 3 201 10 0 466 183 179
2159 337 2 3 201 10 0 466 179 393
2160 338 2 3 201 10 0 469 184 181
2161 339 2 3 201 10 0 469 181 408
2162 340 2 3 201 10 0 186 466 504
2163 341 2 3 201 10 0 188 186 504
2164 342 2 3 201 10 0 187 185 507
2165 343 2 3 201 10 0 276 559 514
2166 344 2 3 201 10 0 198 514 559
2167 345 2 3 201 10 0 278 560 516
2168 346 2 3 201 10 0 200 516 560
2169 347 2 3 201 10 0 277 561 517
2170 348 2 3 201 10 0 199 517 561
2171 349 2 3 201 10 0 279 562 515
2172 350 2 3 201 10 0 201 515 562
2173 351 2 3 201 10 0 186 188 486
2174 352 2 3 201 10 0 186 486 461
2175 353 2 3 201 10 0 185 187 480
2176 354 2 3 201 10 0 480 458 185
2177 355 2 3 201 10 0 261 458 480
2178 356 2 3 201 10 0 264 459 481
2179 357 2 3 201 10 0 183 186 461
2180 358 2 3 201 10 0 461 440 183
2181 359 2 3 201 10 0 459 433 184
2182 360 2 3 201 10 0 182 185 458
2183 361 2 3 201 10 0 458 434 182
2184 362 2 3 201 10 0 194 196 512
2185 363 2 3 201 10 0 512 487 194
2186 364 2 3 201 10 0 512 271 263
2187 365 2 3 201 10 0 487 512 263
2188 366 2 3 201 10 0 511 486 192
2189 367 2 3 201 10 0 511 274 262
2190 368 2 3 201 10 0 486 511 262
2191 369 2 3 201 10 0 191 195 509
2192 370 2 3 201 10 0 509 480 191
2193 371 2 3 201 10 0 509 273 261
2194 372 2 3 201 10 0 480 509 261
2195 373 2 3 201 10 0 193 197 510
2196 374 2 3 201 10 0 510 481 193
2197 375 2 3 201 10 0 510 272 264
2198 376 2 3 201 10 0 481 510 264
2199 377 2 3 201 10 0 120 534 119
2200 378 2 3 201 10 0 44 533 43
2201 379 2 3 201 10 0 6 532 5
2202 380 2 3 201 10 0 82 535 81
2203 381 2 3 201 10 0 43 533 580
2204 382 2 3 201 10 0 580 533 298
2205 383 2 3 201 10 0 298 42 580
2206 384 2 3 201 10 0 119 534 581
2207 385 2 3 201 10 0 581 534 299
2208 386 2 3 201 10 0 299 118 581
2209 387 2 3 201 10 0 5 532 579
2210 388 2 3 201 10 0 579 532 297
2211 389 2 3 201 10 0 297 156 579
2212 390 2 3 201 10 0 81 535 582
2213 391 2 3 201 10 0 582 535 300
2214 392 2 3 201 10 0 300 80 582
2215 393 2 3 201 10 0 526 498 167
2216 394 2 3 201 10 0 229 498 526
2217 395 2 3 201 10 0 457 171 488
2218 396 2 3 201 10 0 116 296 577
2219 397 2 3 201 10 0 154 293 576
2220 398 2 3 201 10 0 78 295 575
2221 399 2 3 201 10 0 482 403 248
2222 400 2 3 201 10 0 483 404 249
2223 401 2 3 201 10 0 494 85 86
2224 402 2 3 201 10 0 494 432 271
2225 403 2 3 201 10 0 496 123 124
2226 404 2 3 201 10 0 496 436 272
2227 405 2 3 201 10 0 497 47 48
2228 406 2 3 201 10 0 497 437 273
2229 407 2 3 201 10 0 563 87 88
2230 408 2 3 201 10 0 564 11 12
2231 409 2 3 201 10 0 565 49 50
2232 410 2 3 201 10 0 566 125 126
2233 411 2 3 201 10 0 96 97 544
2234 412 2 3 201 10 0 484 17 18
2235 413 2 3 201 10 0 523 146 147
2236 414 2 3 201 10 0 500 70 71
2237 415 2 3 201 10 0 578 144 145
2238 416 2 3 201 10 0 145 476 578
2239 417 2 3 201 10 0 521 284 578
2240 418 2 3 201 10 0 521 578 476
2241 419 2 3 201 10 0 143 144 578
2242 420 2 3 201 10 0 570 141 142
2243 421 2 3 201 10 0 552 68 69
2244 422 2 3 201 10 0 69 453 552
2245 423 2 3 201 10 0 501 552 453
2246 424 2 3 201 10 0 275 475 552
2247 425 2 3 201 10 0 148 149 445
2248 426 2 3 201 10 0 72 73 442
2249 427 2 3 201 10 0 110 111 443
2250 428 2 3 201 10 0 114 115 538
2251 429 2 3 201 10 0 291 278 538
2252 430 2 3 201 10 0 76 77 539
2253 431 2 3 201 10 0 292 279 539
2254 432 2 3 201 10 0 152 153 540
2255 433 2 3 201 10 0 289 276 540
2256 434 2 3 201 10 0 494 271 281
2257 435 2 3 201 10 0 280 285 495
2258 436 2 3 201 10 0 496 272 282
2259 437 2 3 201 10 0 497 273 283
2260 438 2 3 201 10 0 351 371 513
2261 439 2 3 201 10 0 556 432 399
2262 440 2 3 201 10 0 399 432 563
2263 441 2 3 201 10 0 553 437 404
2264 442 2 3 201 10 0 404 437 565
2265 443 2 3 201 10 0 554 436 403
2266 444 2 3 201 10 0 403 436 566
2267 445 2 3 201 10 0 526 348 229
2268 446 2 3 201 10 0 450 555 274
2269 447 2 3 201 10 0 583 205 209
2270 448 2 3 201 10 0 584 203 207
2271 449 2 3 201 10 0 585 202 206
2272 450 2 3 201 10 0 586 204 208
2273 451 2 3 201 10 0 474 166 170
2274 452 2 3 201 10 0 256 262 555
2275 453 2 3 201 10 0 490 256 555
2276 454 2 3 201 10 0 257 263 556
2277 455 2 3 201 10 0 491 257 556
2278 456 2 3 201 10 0 399 491 556
2279 457 2 3 201 10 0 255 261 553
2280 458 2 3 201 10 0 483 255 553
2281 459 2 3 201 10 0 404 483 553
2282 460 2 3 201 10 0 258 264 554
2283 461 2 3 201 10 0 482 258 554
2284 462 2 3 201 10 0 403 482 554
2285 463 2 3 201 10 0 416 709 737
2286 464 2 3 201 10 0 219 732 737
2287 465 2 3 201 10 0 740 732 379
2288 466 2 3 201 10 0 362 705 742
2289 467 2 3 201 10 0 460 94 763
2290 468 2 3 201 10 0 133 134 766
2291 469 2 3 201 10 0 484 18 769
2292 470 2 3 201 10 0 770 714 415
2293 471 2 3 201 10 0 773 686 372
2294 472 2 3 201 10 0 402 774 777
2295 473 2 3 201 10 0 779 723 350
2296 474 2 3 201 10 0 405 710 781
2297 475 2 3 201 10 0 335 772 781
2298 476 2 3 201 10 0 420 780 786
2299 477 2 3 201 10 0 360 779 792
2300 478 2 3 201 10 0 346 745 796
2301 479 2 3 201 10 0 360 791 796
2302 480 2 3 201 10 0 382 401 797
2303 481 2 3 201 10 0 800 757 340
2304 482 2 3 201 10 0 801 780 428
2305 483 2 3 201 10 0 303 753 802
2306 484 2 3 201 10 0 353 791 803
2307 485 2 3 201 10 0 805 755 163
2308 486 2 3 201 10 0 807 756 422
2309 487 2 3 201 10 0 809 701 354
2310 488 2 3 201 10 0 406 708 810
2311 489 2 3 201 10 0 810 270 406
2312 490 2 3 201 10 0 811 371 502
2313 491 2 3 201 10 0 363 788 812
2314 492 2 3 201 10 0 812 749 363
2315 493 2 3 201 10 0 814 772 335
2316 494 2 3 201 10 0 460 763 815
2317 495 2 3 201 10 0 314 771 816
2318 496 2 3 201 10 0 55 56 817
2319 497 2 3 201 10 0 492 801 819
2320 498 2 3 201 10 0 819 795 492
2321 499 2 3 201 10 0 354 701 821
2322 500 2 3 201 10 0 314 734 821
2323 501 2 3 201 10 0 337 757 822
2324 502 2 3 201 10 0 823 792 356
2325 503 2 3 201 10 0 824 779 350
2326 504 2 3 201 10 0 826 824 350
2327 505 2 3 201 10 0 827 810 357
2328 506 2 3 201 10 0 270 810 827
2329 507 2 3 201 10 0 435 795 828
2330 508 2 3 201 10 0 828 695 435
2331 509 2 3 201 10 0 830 705 362
2332 510 2 3 201 10 0 832 704 312
2333 511 2 3 201 10 0 833 820 373
2334 512 2 3 201 10 0 838 762 428
2335 513 2 3 201 10 0 839 722 344
2336 514 2 3 201 10 0 350 809 840
2337 515 2 3 201 10 0 840 826 350
2338 516 2 3 201 10 0 402 777 841
2339 517 2 3 201 10 0 842 769 551
2340 518 2 3 201 10 0 551 717 842
2341 519 2 3 201 10 0 367 431 843
2342 520 2 3 201 10 0 402 841 844
2343 521 2 3 201 10 0 360 792 845
2344 522 2 3 201 10 0 845 791 360
2345 523 2 3 201 10 0 847 763 544
2346 524 2 3 201 10 0 269 826 850
2347 525 2 3 201 10 0 420 831 851
2348 526 2 3 201 10 0 852 803 162
2349 527 2 3 201 10 0 854 787 221
2350 528 2 3 201 10 0 163 755 856
2351 529 2 3 201 10 0 856 798 163
2352 530 2 3 201 10 0 230 430 857
2353 531 2 3 201 10 0 312 838 857
2354 532 2 3 201 10 0 858 711 346
2355 533 2 3 201 10 0 858 791 353
2356 534 2 3 201 10 0 381 744 859
2357 535 2 3 201 10 0 349 805 859
2358 536 2 3 201 10 0 861 809 354
2359 537 2 3 201 10 0 372 686 862
2360 538 2 3 201 10 0 269 739 864
2361 539 2 3 201 10 0 373 820 864
2362 540 2 3 201 10 0 864 739 373
2363 541 2 3 201 10 0 162 823 865
2364 542 2 3 201 10 0 369 846 865
2365 543 2 3 201 10 0 866 837 328
2366 544 2 3 201 10 0 328 807 866
2367 545 2 3 201 10 0 867 832 312
2368 546 2 3 201 10 0 867 857 430
2369 547 2 3 201 10 0 312 857 867
2370 548 2 3 201 10 0 868 522 364
2371 549 2 3 201 10 0 420 851 869
2372 550 2 3 201 10 0 869 780 420
2373 551 2 3 201 10 0 161 736 870
2374 552 2 3 201 10 0 163 550 872
2375 553 2 3 201 10 0 872 805 163
2376 554 2 3 201 10 0 356 820 874
2377 555 2 3 201 10 0 874 823 356
2378 556 2 3 201 10 0 370 789 875
2379 557 2 3 201 10 0 875 753 370
2380 558 2 3 201 10 0 356 824 876
2381 559 2 3 201 10 0 876 820 356
2382 560 2 3 201 10 0 877 848 250
2383 561 2 3 201 10 0 250 772 878
2384 562 2 3 201 10 0 484 769 882
2385 563 2 3 201 10 0 884 60 61
2386 564 2 3 201 10 0 61 673 884
2387 565 2 3 201 10 0 886 730 353
2388 566 2 3 201 10 0 887 761 222
2389 567 2 3 201 10 0 887 801 428
2390 568 2 3 201 10 0 460 815 888
2391 569 2 3 201 10 0 395 254 889
2392 570 2 3 201 10 0 892 731 339
2393 571 2 3 201 10 0 339 871 892
2394 572 2 3 201 10 0 895 718 427
2395 573 2 3 201 10 0 896 830 362
2396 574 2 3 201 10 0 353 803 897
2397 575 2 3 201 10 0 897 886 353
2398 576 2 3 201 10 0 898 888 425
2399 577 2 3 201 10 0 900 846 398
2400 578 2 3 201 10 0 900 852 162
2401 579 2 3 201 10 0 901 355 385
2402 580 2 3 201 10 0 385 793 901
2403 581 2 3 201 10 0 227 860 902
2404 582 2 3 201 10 0 903 739 269
2405 583 2 3 201 10 0 903 778 542
2406 584 2 3 201 10 0 542 739 903
2407 585 2 3 201 10 0 376 787 904
2408 586 2 3 201 10 0 905 248 545
2409 587 2 3 201 10 0 905 793 385
2410 588 2 3 201 10 0 523 147 906
2411 589 2 3 201 10 0 368 861 907
2412 590 2 3 201 10 0 907 751 368
2413 591 2 3 201 10 0 908 240 223
2414 592 2 3 201 10 0 908 789 352
2415 593 2 3 201 10 0 325 830 909
2416 594 2 3 201 10 0 418 284 910
2417 595 2 3 201 10 0 367 843 911
2418 596 2 3 201 10 0 398 846 911
2419 597 2 3 201 10 0 912 710 405
2420 598 2 3 201 10 0 912 862 157
2421 599 2 3 201 10 0 500 71 913
2422 600 2 3 201 10 0 914 846 369
2423 601 2 3 201 10 0 914 881 367
2424 602 2 3 201 10 0 915 463 383
2425 603 2 3 201 10 0 915 877 250
2426 604 2 3 201 10 0 916 838 428
2427 605 2 3 201 10 0 428 780 916
2428 606 2 3 201 10 0 398 880 917
2429 607 2 3 201 10 0 920 550 163
2430 608 2 3 201 10 0 456 550 920
2431 609 2 3 201 10 0 163 798 920
2432 610 2 3 201 10 0 362 742 921
2433 611 2 3 201 10 0 922 699 401
2434 612 2 3 201 10 0 234 355 923
2435 613 2 3 201 10 0 924 475 275
2436 614 2 3 201 10 0 924 833 373
2437 615 2 3 201 10 0 496 124 926
2438 616 2 3 201 10 0 566 436 926
2439 617 2 3 201 10 0 926 436 496
2440 618 2 3 201 10 0 927 849 444
2441 619 2 3 201 10 0 494 86 928
2442 620 2 3 201 10 0 563 432 928
2443 621 2 3 201 10 0 928 432 494
2444 622 2 3 201 10 0 238 488 929
2445 623 2 3 201 10 0 419 871 929
2446 624 2 3 201 10 0 929 488 419
2447 625 2 3 201 10 0 497 48 930
2448 626 2 3 201 10 0 565 437 930
2449 627 2 3 201 10 0 930 437 497
2450 628 2 3 201 10 0 931 14 455
2451 629 2 3 201 10 0 932 834 244
2452 630 2 3 201 10 0 324 853 933
2453 631 2 3 201 10 0 369 833 934
2454 632 2 3 201 10 0 275 881 934
2455 633 2 3 201 10 0 425 799 935
2456 634 2 3 201 10 0 325 909 935
2457 635 2 3 201 10 0 937 910 413
2458 636 2 3 201 10 0 413 893 937
2459 637 2 3 201 10 0 396 885 938
2460 638 2 3 201 10 0 939 742 212
2461 639 2 3 201 10 0 372 862 940
2462 640 2 3 201 10 0 941 88 531
2463 641 2 3 201 10 0 941 399 563
2464 642 2 3 201 10 0 563 88 941
2465 643 2 3 201 10 0 531 399 941
2466 644 2 3 201 10 0 943 873 407
2467 645 2 3 201 10 0 943 890 429
2468 646 2 3 201 10 0 944 421 211
2469 647 2 3 201 10 0 944 744 381
2470 648 2 3 201 10 0 381 421 944
2471 649 2 3 201 10 0 211 744 944
2472 650 2 3 201 10 0 945 774 422
2473 651 2 3 201 10 0 422 756 945
2474 652 2 3 201 10 0 948 91 92
2475 653 2 3 201 10 0 92 873 948
2476 654 2 3 201 10 0 949 772 250
2477 655 2 3 201 10 0 250 848 949
2478 656 2 3 201 10 0 178 182 950
2479 657 2 3 201 10 0 950 182 434
2480 658 2 3 201 10 0 386 249 951
2481 659 2 3 201 10 0 952 893 413
2482 660 2 3 201 10 0 339 832 954
2483 661 2 3 201 10 0 484 882 955
2484 662 2 3 201 10 0 955 426 484
2485 663 2 3 201 10 0 956 171 457
2486 664 2 3 201 10 0 959 861 354
2487 665 2 3 201 10 0 354 818 959
2488 666 2 3 201 10 0 960 880 398
2489 667 2 3 201 10 0 447 880 961
2490 668 2 3 201 10 0 244 834 963
2491 669 2 3 201 10 0 964 260 447
2492 670 2 3 201 10 0 518 260 964
2493 671 2 3 201 10 0 447 946 964
2494 672 2 3 201 10 0 965 893 160
2495 673 2 3 201 10 0 966 241 521
2496 674 2 3 201 10 0 966 476 523
2497 675 2 3 201 10 0 523 241 966
2498 676 2 3 201 10 0 521 476 966
2499 677 2 3 201 10 0 968 371 351
2500 678 2 3 201 10 0 968 831 502
2501 679 2 3 201 10 0 502 371 968
2502 680 2 3 201 10 0 969 744 211
2503 681 2 3 201 10 0 969 788 363
2504 682 2 3 201 10 0 972 971 455
2505 683 2 3 201 10 0 352 727 973
2506 684 2 3 201 10 0 531 925 974
2507 685 2 3 201 10 0 236 472 975
2508 686 2 3 201 10 0 975 472 366
2509 687 2 3 201 10 0 977 406 270
2510 688 2 3 201 10 0 978 957 391
2511 689 2 3 201 10 0 979 835 161
2512 690 2 3 201 10 0 161 870 979
2513 691 2 3 201 10 0 159 743 980
2514 692 2 3 201 10 0 981 783 345
2515 693 2 3 201 10 0 417 783 981
2516 694 2 3 201 10 0 407 898 983
2517 695 2 3 201 10 0 383 463 984
2518 696 2 3 201 10 0 984 982 383
2519 697 2 3 201 10 0 985 918 394
2520 698 2 3 201 10 0 168 164 986
2521 699 2 3 201 10 0 987 984 463
2522 700 2 3 201 10 0 988 955 441
2523 701 2 3 201 10 0 441 232 988
2524 702 2 3 201 10 0 426 955 988
2525 703 2 3 201 10 0 989 946 397
2526 704 2 3 201 10 0 418 910 991
2527 705 2 3 201 10 0 992 848 384
2528 706 2 3 201 10 0 992 940 405
2529 707 2 3 201 10 0 993 459 258
2530 708 2 3 201 10 0 433 459 993
2531 709 2 3 201 10 0 250 878 994
2532 710 2 3 201 10 0 463 915 994
2533 711 2 3 201 10 0 994 915 250
2534 712 2 3 201 10 0 253 378 995
2535 713 2 3 201 10 0 443 985 995
2536 714 2 3 201 10 0 995 378 443
2537 715 2 3 201 10 0 996 799 425
2538 716 2 3 201 10 0 996 815 225
2539 717 2 3 201 10 0 384 848 1000
2540 718 2 3 201 10 0 1001 181 177
2541 719 2 3 201 10 0 408 181 1001
2542 720 2 3 201 10 0 1003 393 388
2543 721 2 3 201 10 0 466 393 1003
2544 722 2 3 201 10 0 1004 361 179
2545 723 2 3 201 10 0 1004 183 440
2546 724 2 3 201 10 0 179 183 1004
2547 725 2 3 201 10 0 1005 802 223
2548 726 2 3 201 10 0 1006 985 394
2549 727 2 3 201 10 0 1007 889 254
2550 728 2 3 201 10 0 442 889 1007
2551 729 2 3 201 10 0 541 931 1008
2552 730 2 3 201 10 0 375 785 1009
2553 731 2 3 201 10 0 252 387 1011
2554 732 2 3 201 10 0 445 885 1011
2555 733 2 3 201 10 0 348 526 1012
2556 734 2 3 201 10 0 415 714 1012
2557 735 2 3 201 10 0 1013 898 425
2558 736 2 3 201 10 0 1013 909 233
2559 737 2 3 201 10 0 253 1002 1014
2560 738 2 3 201 10 0 239 982 1015
2561 739 2 3 201 10 0 1016 827 357
2562 740 2 3 201 10 0 473 464 1017
2563 741 2 3 201 10 0 352 973 1019
2564 742 2 3 201 10 0 500 913 1020
2565 743 2 3 201 10 0 1022 263 257
2566 744 2 3 201 10 0 1022 462 487
2567 745 2 3 201 10 0 487 263 1022
2568 746 2 3 201 10 0 1026 347 235
2569 747 2 3 201 10 0 235 1021 1026
2570 748 2 3 201 10 0 1027 26 27
2571 749 2 3 201 10 0 1027 795 435
2572 750 2 3 201 10 0 364 522 1028
2573 751 2 3 201 10 0 523 906 1029
2574 752 2 3 201 10 0 1029 241 523
2575 753 2 3 201 10 0 445 1011 1030
2576 754 2 3 201 10 0 1030 906 445
2577 755 2 3 201 10 0 1030 1011 387
2578 756 2 3 201 10 0 1032 262 256
2579 757 2 3 201 10 0 1032 461 486
2580 758 2 3 201 10 0 486 262 1032
2581 759 2 3 201 10 0 384 798 1033
2582 760 2 3 201 10 0 372 940 1033
2583 761 2 3 201 10 0 1034 499 167
2584 762 2 3 201 10 0 391 499 1034
2585 763 2 3 201 10 0 1035 232 236
2586 764 2 3 201 10 0 236 971 1035
2587 765 2 3 201 10 0 475 924 1036
2588 766 2 3 201 10 0 1036 924 373
2589 767 2 3 201 10 0 32 33 1037
2590 768 2 3 201 10 0 502 831 1037
2591 769 2 3 201 10 0 1038 965 160
2592 770 2 3 201 10 0 392 965 1038
2593 771 2 3 201 10 0 438 259 1040
2594 772 2 3 201 10 0 1040 259 456
2595 773 2 3 201 10 0 1040 1000 438
2596 774 2 3 201 10 0 412 414 1041
2597 775 2 3 201 10 0 1041 448 412
2598 776 2 3 201 10 0 1041 414 243
2599 777 2 3 201 10 0 444 849 1042
2600 778 2 3 201 10 0 1043 851 351
2601 779 2 3 201 10 0 167 499 1044
2602 780 2 3 201 10 0 1044 526 167
2603 781 2 3 201 10 0 564 12 1045
2604 782 2 3 201 10 0 468 505 1046
2605 783 2 3 201 10 0 1047 174 361
2606 784 2 3 201 10 0 1050 919 232
2607 785 2 3 201 10 0 583 534 1051
2608 786 2 3 201 10 0 1051 534 120
2609 787 2 3 201 10 0 584 533 1052
2610 788 2 3 201 10 0 1052 533 44
2611 789 2 3 201 10 0 1053 870 415
2612 790 2 3 201 10 0 1053 1044 499
2613 791 2 3 201 10 0 415 1044 1053
2614 792 2 3 201 10 0 586 535 1054
2615 793 2 3 201 10 0 1054 535 82
2616 794 2 3 201 10 0 585 532 1056
2617 795 2 3 201 10 0 1056 532 6
2618 796 2 3 201 10 0 366 478 1057
2619 797 2 3 201 10 0 1057 478 490
2620 798 2 3 201 10 0 235 957 1059
2621 799 2 3 201 10 0 1061 990 474
2622 800 2 3 201 10 0 1063 798 384
2623 801 2 3 201 10 0 384 1000 1063
2624 802 2 3 201 10 0 257 537 1064
2625 803 2 3 201 10 0 462 1022 1064
2626 804 2 3 201 10 0 1064 1022 257
2627 805 2 3 201 10 0 408 1001 1065
2628 806 2 3 201 10 0 1066 431 367
2629 807 2 3 201 10 0 1067 203 584
2630 808 2 3 201 10 0 584 286 1067
2631 809 2 3 201 10 0 1068 205 583
2632 810 2 3 201 10 0 583 288 1068
2633 811 2 3 201 10 0 1069 1064 537
2634 812 2 3 201 10 0 462 1064 1069
2635 813 2 3 201 10 0 485 172 1070
2636 814 2 3 201 10 0 1070 423 485
2637 815 2 3 201 10 0 1071 524 424
2638 816 2 3 201 10 0 1072 265 507
2639 817 2 3 201 10 0 1073 204 586
2640 818 2 3 201 10 0 586 287 1073
2641 819 2 3 201 10 0 351 513 1074
2642 820 2 3 201 10 0 1074 513 439
2643 821 2 3 201 10 0 1076 449 173
2644 822 2 3 201 10 0 424 449 1076
2645 823 2 3 201 10 0 1077 202 585
2646 824 2 3 201 10 0 585 285 1077
2647 825 2 3 201 10 0 460 888 1078
2648 826 2 3 201 10 0 1079 266 504
2649 827 2 3 201 10 0 1080 1028 522
2650 828 2 3 201 10 0 378 1028 1080
2651 829 2 3 201 10 0 1081 855 375
2652 830 2 3 201 10 0 170 166 1082
2653 831 2 3 201 10 0 1083 421 381
2654 832 2 3 201 10 0 571 421 1083
2655 833 2 3 201 10 0 1085 464 491
2656 834 2 3 201 10 0 159 980 1086
2657 835 2 3 201 10 0 1087 973 364
2658 836 2 3 201 10 0 1088 248 403
2659 837 2 3 201 10 0 545 248 1088
2660 838 2 3 201 10 0 1089 1025 558
2661 839 2 3 201 10 0 1090 33 34
2662 840 2 3 201 10 0 1090 811 502
2663 841 2 3 201 10 0 573 267 1091
2664 842 2 3 201 10 0 1093 557 173
2665 843 2 3 201 10 0 176 557 1093
2666 844 2 3 201 10 0 1094 446 172
2667 845 2 3 201 10 0 411 446 1094
2668 846 2 3 201 10 0 406 977 1095
2669 847 2 3 201 10 0 224 839 1097
2670 848 2 3 201 10 0 1097 882 224
2671 849 2 3 201 10 0 1098 952 413
2672 850 2 3 201 10 0 1099 1020 380
2673 851 2 3 201 10 0 557 176 1100
2674 852 2 3 201 10 0 438 877 1102
2675 853 2 3 201 10 0 417 166 1103
2676 854 2 3 201 10 0 1103 166 474
2677 855 2 3 201 10 0 1104 806 231
2678 856 2 3 201 10 0 231 790 1104
2679 857 2 3 201 10 0 1106 268 505
2680 858 2 3 201 10 0 1108 249 404
2681 859 2 3 201 10 0 1109 1089 558
2682 860 2 3 201 10 0 355 234 1110
2683 861 2 3 201 10 0 1110 234 493
2684 862 2 3 201 10 0 450 564 1111
2685 863 2 3 201 10 0 1111 555 450
2686 864 2 3 201 10 0 169 571 1112
2687 865 2 3 201 10 0 1114 178 175
2688 866 2 3 201 10 0 235 347 1115
2689 867 2 3 201 10 0 1115 957 235
2690 868 2 3 201 10 0 450 274 1116
2691 869 2 3 201 10 0 509 195 1119
2692 870 2 3 201 10 0 1119 283 509
2693 871 2 3 201 10 0 510 197 1120
2694 872 2 3 201 10 0 1120 282 510
2695 873 2 3 201 10 0 414 412 1121
2696 874 2 3 201 10 0 1122 1021 242
2697 875 2 3 201 10 0 275 552 1123
2698 876 2 3 201 10 0 1123 552 501
2699 877 2 3 201 10 0 1123 881 275
2700 878 2 3 201 10 0 1124 471 241
2701 879 2 3 201 10 0 467 471 1124
2702 880 2 3 201 10 0 1125 167 498
2703 881 2 3 201 10 0 1126 777 228
2704 882 2 3 201 10 0 277 452 1127
2705 883 2 3 201 10 0 574 266 1128
2706 884 2 3 201 10 0 1129 414 440
2707 885 2 3 201 10 0 543 414 1129
2708 886 2 3 201 10 0 1130 267 506
2709 887 2 3 201 10 0 572 268 1132
2710 888 2 3 201 10 0 512 196 1133
2711 889 2 3 201 10 0 1133 281 512
2712 890 2 3 201 10 0 1135 843 431
2713 891 2 3 201 10 0 431 524 1135
2714 892 2 3 201 10 0 1136 807 422
2715 893 2 3 201 10 0 422 765 1136
2716 894 2 3 201 10 0 239 536 1137
2717 895 2 3 201 10 0 1137 536 411
2718 896 2 3 201 10 0 1139 176 180
2719 897 2 3 201 10 0 180 462 1139
2720 898 2 3 201 10 0 1140 123 496
2721 899 2 3 201 10 0 1141 47 497
2722 900 2 3 201 10 0 1142 412 169
2723 901 2 3 201 10 0 1142 1047 361
2724 902 2 3 201 10 0 1144 1069 537
2725 903 2 3 201 10 0 1145 280 511
2726 904 2 3 201 10 0 1146 85 494
2727 905 2 3 201 10 0 1148 439 238
2728 906 2 3 201 10 0 1148 954 430
2729 907 2 3 201 10 0 430 439 1148
2730 908 2 3 201 10 0 339 954 1149
2731 909 2 3 201 10 0 1149 871 339
2732 910 2 3 201 10 0 391 957 1151
2733 911 2 3 201 10 0 1155 885 396
2734 912 2 3 201 10 0 500 1020 1157
2735 913 2 3 201 10 0 1052 44 45
2736 914 2 3 201 10 0 1056 6 7
2737 915 2 3 201 10 0 1054 82 83
2738 916 2 3 201 10 0 1051 120 121
2739 917 2 3 201 10 0 267 1130 1091
2740 918 2 3 201 10 0 1106 1132 268
2741 919 2 3 201 10 0 1072 1107 265
2742 920 2 3 201 10 0 1079 1128 266
2743 921 2 3 201 10 0 377 1113 980
2744 922 2 3 201 10 0 1142 361 1121
2745 923 2 3 201 10 0 412 1142 1121
2746 924 2 3 201 10 0 923 355 901
2747 925 2 3 201 10 0 988 232 1035
2748 926 2 3 201 10 0 988 1035 426
2749 927 2 3 201 10 0 464 1085 1017
2750 928 2 3 201 10 0 1046 1117 468
2751 929 2 3 201 10 0 1037 33 1090
2752 930 2 3 201 10 0 1037 1090 502
2753 931 2 3 201 10 0 1071 1135 524
2754 932 2 3 201 10 0 1044 415 1012
2755 933 2 3 201 10 0 526 1044 1012
2756 934 2 3 201 10 0 951 249 1108
2757 935 2 3 201 10 0 986 419 171
2758 936 2 3 201 10 0 1114 175 168
2759 937 2 3 201 10 0 1045 12 13
2760 938 2 3 201 10 0 541 1045 13
2761 939 2 3 201 10 0 1114 171 956
2762 940 2 3 201 10 0 178 1114 956
2763 941 2 3 201 10 0 423 1112 571
2764 942 2 3 201 10 0 928 86 87
2765 943 2 3 201 10 0 563 928 87
2766 944 2 3 201 10 0 930 48 49
2767 945 2 3 201 10 0 565 930 49
2768 946 2 3 201 10 0 926 124 125
2769 947 2 3 201 10 0 566 926 125
2770 948 2 3 201 10 0 1100 176 970
2771 949 2 3 201 10 0 1034 167 1125
2772 950 2 3 201 10 0 1069 1139 462
2773 951 2 3 201 10 0 1133 196 201
2774 952 2 3 201 10 0 1119 195 199
2775 953 2 3 201 10 0 1120 197 200
2776 954 2 3 201 10 0 970 176 1139
2777 955 2 3 201 10 0 84 85 1146
2778 956 2 3 201 10 0 46 47 1141
2779 957 2 3 201 10 0 122 123 1140
2780 958 2 3 201 10 0 1153 140 141
2781 959 2 3 201 10 0 570 1153 141
2782 960 2 3 201 10 0 409 395 936
2783 961 2 3 201 10 0 410 396 938
2784 962 2 3 201 10 0 751 884 673
2785 963 2 3 201 10 0 759 314 816
2786 964 2 3 201 10 0 759 816 690
2787 965 2 3 201 10 0 734 314 759
2788 966 2 3 201 10 0 825 225 738
2789 967 2 3 201 10 0 694 825 738
2790 968 2 3 201 10 0 828 222 760
2791 969 2 3 201 10 0 695 828 760
2792 970 2 3 201 10 0 771 314 821
2793 971 2 3 201 10 0 771 821 701
2794 972 2 3 201 10 0 809 350 723
2795 973 2 3 201 10 0 701 809 723
2796 974 2 3 201 10 0 782 358 814
2797 975 2 3 201 10 0 782 814 702
2798 976 2 3 201 10 0 832 339 731
2799 977 2 3 201 10 0 808 212 742
2800 978 2 3 201 10 0 705 808 742
2801 979 2 3 201 10 0 830 325 746
2802 980 2 3 201 10 0 705 830 746
2803 981 2 3 201 10 0 858 353 730
2804 982 2 3 201 10 0 711 858 730
2805 983 2 3 201 10 0 764 375 855
2806 984 2 3 201 10 0 764 855 712
2807 985 2 3 201 10 0 725 427 718
2808 986 2 3 201 10 0 760 222 761
2809 987 2 3 201 10 0 754 224 842
2810 988 2 3 201 10 0 839 224 754
2811 989 2 3 201 10 0 722 839 754
2812 990 2 3 201 10 0 779 360 750
2813 991 2 3 201 10 0 729 349 768
2814 992 2 3 201 10 0 729 768 726
2815 993 2 3 201 10 0 738 225 847
2816 994 2 3 201 10 0 765 422 774
2817 995 2 3 201 10 0 886 382 797
2818 996 2 3 201 10 0 730 886 797
2819 997 2 3 201 10 0 892 377 752
2820 998 2 3 201 10 0 731 892 752
2821 999 2 3 201 10 0 740 416 737
2822 1000 2 3 201 10 0 732 740 737
2823 1001 2 3 201 10 0 818 354 821
2824 1002 2 3 201 10 0 818 821 734
2825 1003 2 3 201 10 0 770 415 870
2826 1004 2 3 201 10 0 770 870 736
2827 1005 2 3 201 10 0 752 377 980
2828 1006 2 3 201 10 0 752 980 743
2829 1007 2 3 201 10 0 768 349 859
2830 1008 2 3 201 10 0 768 859 744
2831 1009 2 3 201 10 0 750 360 796
2832 1010 2 3 201 10 0 875 223 802
2833 1011 2 3 201 10 0 753 875 802
2834 1012 2 3 201 10 0 868 364 973
2835 1013 2 3 201 10 0 805 349 758
2836 1014 2 3 201 10 0 755 805 758
2837 1015 2 3 201 10 0 773 372 856
2838 1016 2 3 201 10 0 773 856 755
2839 1017 2 3 201 10 0 822 228 945
2840 1018 2 3 201 10 0 822 945 756
2841 1019 2 3 201 10 0 807 328 794
2842 1020 2 3 201 10 0 756 807 794
2843 1021 2 3 201 10 0 800 228 822
2844 1022 2 3 201 10 0 800 822 757
2845 1023 2 3 201 10 0 887 428 762
2846 1024 2 3 201 10 0 761 887 762
2847 1025 2 3 201 10 0 838 312 813
2848 1026 2 3 201 10 0 762 838 813
2849 1027 2 3 201 10 0 847 225 815
2850 1028 2 3 201 10 0 763 847 815
2851 1029 2 3 201 10 0 842 224 882
2852 1030 2 3 201 10 0 842 882 769
2853 1031 2 3 201 10 0 814 358 878
2854 1032 2 3 201 10 0 814 878 772
2855 1033 2 3 201 10 0 949 405 781
2856 1034 2 3 201 10 0 772 949 781
2857 1035 2 3 201 10 0 945 228 777
2858 1036 2 3 201 10 0 774 945 777
2859 1037 2 3 201 10 0 1126 525 841
2860 1038 2 3 201 10 0 777 1126 841
2861 1039 2 3 201 10 0 903 269 850
2862 1040 2 3 201 10 0 778 903 850
2863 1041 2 3 201 10 0 824 356 792
2864 1042 2 3 201 10 0 779 824 792
2865 1043 2 3 201 10 0 869 230 916
2866 1044 2 3 201 10 0 869 916 780
2867 1045 2 3 201 10 0 1126 228 800
2868 1046 2 3 201 10 0 817 376 904
2869 1047 2 3 201 10 0 788 947 812
2870 1048 2 3 201 10 0 908 223 875
2871 1049 2 3 201 10 0 789 908 875
2872 1050 2 3 201 10 0 860 227 1104
2873 1051 2 3 201 10 0 860 1104 790
2874 1052 2 3 201 10 0 845 162 803
2875 1053 2 3 201 10 0 791 845 803
2876 1054 2 3 201 10 0 858 346 796
2877 1055 2 3 201 10 0 791 858 796
2878 1056 2 3 201 10 0 823 162 845
2879 1057 2 3 201 10 0 823 845 792
2880 1058 2 3 201 10 0 819 222 828
2881 1059 2 3 201 10 0 819 828 795
2882 1060 2 3 201 10 0 856 372 1033
2883 1061 2 3 201 10 0 856 1033 798
2884 1062 2 3 201 10 0 1063 456 920
2885 1063 2 3 201 10 0 798 1063 920
2886 1064 2 3 201 10 0 996 225 825
2887 1065 2 3 201 10 0 799 996 825
2888 1066 2 3 201 10 0 942 325 935
2889 1067 2 3 201 10 0 799 942 935
2890 1068 2 3 201 10 0 887 222 819
2891 1069 2 3 201 10 0 801 887 819
2892 1070 2 3 201 10 0 852 897 803
2893 1071 2 3 201 10 0 872 381 859
2894 1072 2 3 201 10 0 805 872 859
2895 1073 2 3 201 10 0 1104 227 853
2896 1074 2 3 201 10 0 806 1104 853
2897 1075 2 3 201 10 0 807 1136 866
2898 1076 2 3 201 10 0 861 368 840
2899 1077 2 3 201 10 0 809 861 840
2900 1078 2 3 201 10 0 996 425 888
2901 1079 2 3 201 10 0 815 996 888
2902 1080 2 3 201 10 0 818 976 959
2903 1081 2 3 201 10 0 876 269 864
2904 1082 2 3 201 10 0 820 876 864
2905 1083 2 3 201 10 0 833 369 874
2906 1084 2 3 201 10 0 833 874 820
2907 1085 2 3 201 10 0 874 369 865
2908 1086 2 3 201 10 0 823 874 865
2909 1087 2 3 201 10 0 826 269 876
2910 1088 2 3 201 10 0 826 876 824
2911 1089 2 3 201 10 0 840 368 850
2912 1090 2 3 201 10 0 840 850 826
2913 1091 2 3 201 10 0 896 233 909
2914 1092 2 3 201 10 0 896 909 830
2915 1093 2 3 201 10 0 968 351 851
2916 1094 2 3 201 10 0 831 968 851
2917 1095 2 3 201 10 0 867 430 954
2918 1096 2 3 201 10 0 867 954 832
2919 1097 2 3 201 10 0 924 275 934
2920 1098 2 3 201 10 0 924 934 833
2921 1099 2 3 201 10 0 932 1062 834
2922 1100 2 3 201 10 0 834 970 963
2923 1101 2 3 201 10 0 866 962 837
2924 1102 2 3 201 10 0 916 230 857
2925 1103 2 3 201 10 0 838 916 857
2926 1104 2 3 201 10 0 863 441 1097
2927 1105 2 3 201 10 0 863 1097 839
2928 1106 2 3 201 10 0 960 398 911
2929 1107 2 3 201 10 0 843 960 911
2930 1108 2 3 201 10 0 900 162 865
2931 1109 2 3 201 10 0 846 900 865
2932 1110 2 3 201 10 0 914 367 911
2933 1111 2 3 201 10 0 846 914 911
2934 1112 2 3 201 10 0 877 438 1000
2935 1113 2 3 201 10 0 877 1000 848
2936 1114 2 3 201 10 0 992 405 949
2937 1115 2 3 201 10 0 848 992 949
2938 1116 2 3 201 10 0 927 1107 849
2939 1117 2 3 201 10 0 1043 230 869
2940 1118 2 3 201 10 0 851 1043 869
2941 1119 2 3 201 10 0 946 447 961
2942 1120 2 3 201 10 0 900 398 917
2943 1121 2 3 201 10 0 900 917 852
2944 1122 2 3 201 10 0 1092 359 902
2945 1123 2 3 201 10 0 860 1092 902
2946 1124 2 3 201 10 0 861 959 907
2947 1125 2 3 201 10 0 1078 407 873
2948 1126 2 3 201 10 0 912 405 940
2949 1127 2 3 201 10 0 912 940 862
2950 1128 2 3 201 10 0 1053 499 979
2951 1129 2 3 201 10 0 870 1053 979
2952 1130 2 3 201 10 0 1110 493 1122
2953 1131 2 3 201 10 0 1149 238 929
2954 1132 2 3 201 10 0 871 1149 929
2955 1133 2 3 201 10 0 943 429 948
2956 1134 2 3 201 10 0 943 948 873
2957 1135 2 3 201 10 0 915 383 1102
2958 1136 2 3 201 10 0 915 1102 877
2959 1137 2 3 201 10 0 960 961 880
2960 1138 2 3 201 10 0 914 369 934
2961 1139 2 3 201 10 0 914 934 881
2962 1140 2 3 201 10 0 1097 441 955
2963 1141 2 3 201 10 0 882 1097 955
2964 1142 2 3 201 10 0 1155 252 1011
2965 1143 2 3 201 10 0 885 1155 1011
2966 1144 2 3 201 10 0 936 395 889
2967 1145 2 3 201 10 0 898 407 1078
2968 1146 2 3 201 10 0 898 1078 888
2969 1147 2 3 201 10 0 893 965 937
2970 1148 2 3 201 10 0 1013 233 983
2971 1149 2 3 201 10 0 898 1013 983
2972 1150 2 3 201 10 0 1030 387 1029
2973 1151 2 3 201 10 0 906 1030 1029
2974 1152 2 3 201 10 0 1013 425 935
2975 1153 2 3 201 10 0 909 1013 935
2976 1154 2 3 201 10 0 1084 417 981
2977 1155 2 3 201 10 0 937 991 910
2978 1156 2 3 201 10 0 1087 364 1028
2979 1157 2 3 201 10 0 1021 235 1059
2980 1158 2 3 201 10 0 919 1050 947
2981 1159 2 3 201 10 0 992 384 1033
2982 1160 2 3 201 10 0 992 1033 940
2983 1161 2 3 201 10 0 989 518 964
2984 1162 2 3 201 10 0 946 989 964
2985 1163 2 3 201 10 0 1098 400 1075
2986 1164 2 3 201 10 0 952 1098 1075
2987 1165 2 3 201 10 0 1148 238 1149
2988 1166 2 3 201 10 0 1148 1149 954
2989 1167 2 3 201 10 0 978 390 1059
2990 1168 2 3 201 10 0 978 1059 957
2991 1169 2 3 201 10 0 1115 365 1151
2992 1170 2 3 201 10 0 1115 1151 957
2993 1171 2 3 201 10 0 971 236 975
2994 1172 2 3 201 10 0 1002 253 1006
2995 1173 2 3 201 10 0 1038 160 1018
2996 1174 2 3 201 10 0 972 426 1035
2997 1175 2 3 201 10 0 972 1035 971
2998 1176 2 3 201 10 0 1003 388 1138
2999 1177 2 3 201 10 0 1087 477 1019
3000 1178 2 3 201 10 0 973 1087 1019
3001 1179 2 3 201 10 0 1082 518 989
3002 1180 2 3 201 10 0 984 1015 982
3003 1181 2 3 201 10 0 1039 252 1155
3004 1182 2 3 201 10 0 1006 253 995
3005 1183 2 3 201 10 0 985 1006 995
3006 1184 2 3 201 10 0 1061 1062 990
3007 1185 2 3 201 10 0 1040 456 1063
3008 1186 2 3 201 10 0 1040 1063 1000
3009 1187 2 3 201 10 0 1118 408 1065
3010 1188 2 3 201 10 0 1002 1023 1014
3011 1189 2 3 201 10 0 1099 1157 1020
3012 1190 2 3 201 10 0 1122 493 1026
3013 1191 2 3 201 10 0 1021 1122 1026
3014 1192 2 3 201 10 0 1142 169 1112
3015 1193 2 3 201 10 0 1047 1142 1112
3016 1194 2 3 201 10 0 574 410 276
3017 1195 2 3 201 10 0 276 410 1131
3018 1196 2 3 201 10 0 108 868 107
3019 1197 2 3 201 10 0 522 868 108
3020 1198 2 3 201 10 0 522 108 109
3021 1199 2 3 201 10 0 164 168 1009
3022 1200 2 3 201 10 0 95 763 94
3023 1201 2 3 201 10 0 19 769 18
3024 1202 2 3 201 10 0 551 769 19
3025 1203 2 3 201 10 0 551 19 20
3026 1204 2 3 201 10 0 165 571 1083
3027 1205 2 3 201 10 0 550 165 1083
3028 1206 2 3 201 10 0 381 872 1083
3029 1207 2 3 201 10 0 1083 872 550
3030 1208 2 3 201 10 0 1019 477 240
3031 1209 2 3 201 10 0 240 908 1019
3032 1210 2 3 201 10 0 1019 908 352
3033 1211 2 3 201 10 0 1147 173 449
3034 1212 2 3 201 10 0 449 389 1147
3035 1213 2 3 201 10 0 986 1114 168
3036 1214 2 3 201 10 0 1114 986 171
3037 1215 2 3 201 10 0 1125 1001 177
3038 1216 2 3 201 10 0 1125 498 1065
3039 1217 2 3 201 10 0 1001 1125 1065
3040 1218 2 3 201 10 0 1152 503 248
3041 1219 2 3 201 10 0 248 905 1152
3042 1220 2 3 201 10 0 1152 905 385
3043 1221 2 3 201 10 0 564 450 11
3044 1222 2 3 201 10 0 63 64 542
3045 1223 2 3 201 10 0 62 673 61
3046 1224 2 3 201 10 0 1146 281 287
3047 1225 2 3 201 10 0 494 281 1146
3048 1226 2 3 201 10 0 1140 282 288
3049 1227 2 3 201 10 0 496 282 1140
3050 1228 2 3 201 10 0 1141 283 286
3051 1229 2 3 201 10 0 497 283 1141
3052 1230 2 3 201 10 0 1130 506 469
3053 1231 2 3 201 10 0 1039 388 569
3054 1232 2 3 201 10 0 569 252 1039
3055 1233 2 3 201 10 0 388 1039 1138
3056 1234 2 3 201 10 0 149 885 445
3057 1235 2 3 201 10 0 1055 389 568
3058 1236 2 3 201 10 0 568 254 1055
3059 1237 2 3 201 10 0 1072 507 470
3060 1238 2 3 201 10 0 137 138 883
3061 1239 2 3 201 10 0 1154 427 725
3062 1240 2 3 201 10 0 1154 58 59
3063 1241 2 3 201 10 0 376 817 967
3064 1242 2 3 201 10 0 958 130 131
3065 1243 2 3 201 10 0 868 973 727
3066 1244 2 3 201 10 0 894 101 102
3067 1245 2 3 201 10 0 1042 251 371
3068 1246 2 3 201 10 0 371 811 1042
3069 1247 2 3 201 10 0 1042 811 444
3070 1248 2 3 201 10 0 999 177 181
3071 1249 2 3 201 10 0 181 184 999
3072 1250 2 3 201 10 0 999 184 433
3073 1251 2 3 201 10 0 240 558 1025
3074 1252 2 3 201 10 0 1025 223 240
3075 1253 2 3 201 10 0 223 1025 1005
3076 1254 2 3 201 10 0 923 841 525
3077 1255 2 3 201 10 0 525 234 923
3078 1256 2 3 201 10 0 841 923 844
3079 1257 2 3 201 10 0 1079 504 466
3080 1258 2 3 201 10 0 1003 1079 466
3081 1259 2 3 201 10 0 1003 1138 1079
3082 1260 2 3 201 10 0 489 477 1028
3083 1261 2 3 201 10 0 1028 378 489
3084 1262 2 3 201 10 0 1087 1028 477
3085 1263 2 3 201 10 0 993 390 433
3086 1264 2 3 201 10 0 993 258 519
3087 1265 2 3 201 10 0 1058 993 519
3088 1266 2 3 201 10 0 390 993 1058
3089 1267 2 3 201 10 0 95 96 763
3090 1268 2 3 201 10 0 96 544 763
3091 1269 2 3 201 10 0 241 1029 1124
3092 1270 2 3 201 10 0 1124 1029 387
3093 1271 2 3 201 10 0 387 467 1124
3094 1272 2 3 201 10 0 242 503 1152
3095 1273 2 3 201 10 0 1122 242 1152
3096 1274 2 3 201 10 0 180 176 1093
3097 1275 2 3 201 10 0 180 1093 1117
3098 1276 2 3 201 10 0 9 495 8
3099 1277 2 3 201 10 0 385 355 1110
3100 1278 2 3 201 10 0 385 1110 1152
3101 1279 2 3 201 10 0 1110 1122 1152
3102 1280 2 3 201 10 0 1075 400 471
3103 1281 2 3 201 10 0 471 239 1075
3104 1282 2 3 201 10 0 1015 1075 239
3105 1283 2 3 201 10 0 434 1010 950
3106 1284 2 3 201 10 0 1082 1049 170
3107 1285 2 3 201 10 0 397 1049 989
3108 1286 2 3 201 10 0 1049 1082 989
3109 1287 2 3 201 10 0 1100 474 170
3110 1288 2 3 201 10 0 474 1100 1061
3111 1289 2 3 201 10 0 361 1004 1121
3112 1290 2 3 201 10 0 1121 1004 440
3113 1291 2 3 201 10 0 440 414 1121
3114 1292 2 3 201 10 0 978 433 390
3115 1293 2 3 201 10 0 999 978 177
3116 1294 2 3 201 10 0 433 978 999
3117 1295 2 3 201 10 0 236 232 919
3118 1296 2 3 201 10 0 919 472 236
3119 1297 2 3 201 10 0 1096 245 251
3120 1298 2 3 201 10 0 1096 251 1042
3121 1299 2 3 201 10 0 1096 1042 849
3122 1300 2 3 201 10 0 545 1088 127
3123 1301 2 3 201 10 0 1088 403 566
3124 1302 2 3 201 10 0 566 126 1088
3125 1303 2 3 201 10 0 1088 126 127
3126 1304 2 3 201 10 0 1108 404 565
3127 1305 2 3 201 10 0 565 50 1108
3128 1306 2 3 201 10 0 1108 50 51
3129 1307 2 3 201 10 0 1081 1009 168
3130 1308 2 3 201 10 0 1081 375 1009
3131 1309 2 3 201 10 0 399 531 1085
3132 1310 2 3 201 10 0 1085 491 399
3133 1311 2 3 201 10 0 974 1085 531
3134 1312 2 3 201 10 0 148 906 147
3135 1313 2 3 201 10 0 445 906 148
3136 1314 2 3 201 10 0 166 417 1084
3137 1315 2 3 201 10 0 1082 166 1084
3138 1316 2 3 201 10 0 518 1082 1084
3139 1317 2 3 201 10 0 1132 254 395
3140 1318 2 3 201 10 0 1132 395 409
3141 1319 2 3 201 10 0 254 1132 1055
3142 1320 2 3 201 10 0 572 1132 409
3143 1321 2 3 201 10 0 465 431 1099
3144 1322 2 3 201 10 0 1099 380 465
3145 1323 2 3 201 10 0 1066 1099 431
3146 1324 2 3 201 10 0 72 913 71
3147 1325 2 3 201 10 0 442 913 72
3148 1326 2 3 201 10 0 902 854 227
3149 1327 2 3 201 10 0 227 854 1143
3150 1328 2 3 201 10 0 1106 505 468
3151 1329 2 3 201 10 0 1147 1106 468
3152 1330 2 3 201 10 0 389 1106 1147
3153 1331 2 3 201 10 0 394 573 1091
3154 1332 2 3 201 10 0 394 1091 1006
3155 1333 2 3 201 10 0 1002 1006 1091
3156 1334 2 3 201 10 0 14 931 13
3157 1335 2 3 201 10 0 13 931 541
3158 1336 2 3 201 10 0 396 1128 1155
3159 1337 2 3 201 10 0 1128 396 410
3160 1338 2 3 201 10 0 574 1128 410
3161 1339 2 3 201 10 0 1039 1155 1128
3162 1340 2 3 201 10 0 1153 570 270
3163 1341 2 3 201 10 0 270 827 1153
3164 1342 2 3 201 10 0 827 1016 1153
3165 1343 2 3 201 10 0 1113 377 892
3166 1344 2 3 201 10 0 1113 871 419
3167 1345 2 3 201 10 0 986 1113 419
3168 1346 2 3 201 10 0 986 164 1113
3169 1347 2 3 201 10 0 871 1113 892
3170 1348 2 3 201 10 0 366 1057 1008
3171 1349 2 3 201 10 0 1008 1057 541
3172 1350 2 3 201 10 0 1057 1045 541
3173 1351 2 3 201 10 0 211 448 997
3174 1352 2 3 201 10 0 969 211 997
3175 1353 2 3 201 10 0 788 969 997
3176 1354 2 3 201 10 0 985 443 111
3177 1355 2 3 201 10 0 1071 424 397
3178 1356 2 3 201 10 0 946 1071 397
3179 1357 2 3 201 10 0 946 961 1071
3180 1358 2 3 201 10 0 173 557 1076
3181 1359 2 3 201 10 0 397 424 1076
3182 1360 2 3 201 10 0 397 1076 1049
3183 1361 2 3 201 10 0 1049 1076 557
3184 1362 2 3 201 10 0 89 925 531
3185 1363 2 3 201 10 0 365 835 1151
3186 1364 2 3 201 10 0 499 391 1151
3187 1365 2 3 201 10 0 979 499 1151
3188 1366 2 3 201 10 0 979 1151 835
3189 1367 2 3 201 10 0 441 863 1050
3190 1368 2 3 201 10 0 1050 232 441
3191 1369 2 3 201 10 0 863 1048 1050
3192 1370 2 3 201 10 0 987 463 160
3193 1371 2 3 201 10 0 160 893 987
3194 1372 2 3 201 10 0 893 952 987
3195 1373 2 3 201 10 0 1018 878 358
3196 1374 2 3 201 10 0 1018 160 463
3197 1375 2 3 201 10 0 1018 463 994
3198 1376 2 3 201 10 0 878 1018 994
3199 1377 2 3 201 10 0 1058 519 242
3200 1378 2 3 201 10 0 1021 1058 242
3201 1379 2 3 201 10 0 390 1058 1059
3202 1380 2 3 201 10 0 1021 1059 1058
3203 1381 2 3 201 10 0 237 233 896
3204 1382 2 3 201 10 0 891 896 362
3205 1383 2 3 201 10 0 983 233 237
3206 1384 2 3 201 10 0 237 890 983
3207 1385 2 3 201 10 0 943 407 983
3208 1386 2 3 201 10 0 943 983 890
3209 1387 2 3 201 10 0 1094 454 411
3210 1388 2 3 201 10 0 1094 172 485
3211 1389 2 3 201 10 0 345 922 981
3212 1390 2 3 201 10 0 922 1084 981
3213 1391 2 3 201 10 0 1137 982 239
3214 1392 2 3 201 10 0 1137 411 454
3215 1393 2 3 201 10 0 462 180 1046
3216 1394 2 3 201 10 0 1117 1046 180
3217 1395 2 3 201 10 0 1157 453 500
3218 1396 2 3 201 10 0 501 453 1157
3219 1397 2 3 201 10 0 367 881 1066
3220 1398 2 3 201 10 0 1123 501 1066
3221 1399 2 3 201 10 0 881 1123 1066
3222 1400 2 3 201 10 0 351 1074 1043
3223 1401 2 3 201 10 0 1074 439 430
3224 1402 2 3 201 10 0 430 230 1074
3225 1403 2 3 201 10 0 1043 1074 230
3226 1404 2 3 201 10 0 1014 558 489
3227 1405 2 3 201 10 0 489 253 1014
3228 1406 2 3 201 10 0 558 1014 1109
3229 1407 2 3 201 10 0 243 472 998
3230 1408 2 3 201 10 0 1041 243 998
3231 1409 2 3 201 10 0 448 998 997
3232 1410 2 3 201 10 0 448 1041 998
3233 1411 2 3 201 10 0 586 1054 287
3234 1412 2 3 201 10 0 585 1056 285
3235 1413 2 3 201 10 0 584 1052 286
3236 1414 2 3 201 10 0 583 1051 288
3237 1415 2 3 201 10 0 972 455 15
3238 1416 2 3 201 10 0 237 473 1017
3239 1417 2 3 201 10 0 1017 890 237
3240 1418 2 3 201 10 0 189 487 462
3241 1419 2 3 201 10 0 1046 189 462
3242 1420 2 3 201 10 0 1046 505 189
3243 1421 2 3 201 10 0 910 1098 413
3244 1422 2 3 201 10 0 521 400 1098
3245 1423 2 3 201 10 0 1098 284 521
3246 1424 2 3 201 10 0 910 284 1098
3247 1425 2 3 201 10 0 244 473 891
3248 1426 2 3 201 10 0 244 891 932
3249 1427 2 3 201 10 0 921 891 362
3250 1428 2 3 201 10 0 921 932 891
3251 1429 2 3 201 10 0 1031 570 142
3252 1430 2 3 201 10 0 365 1115 1060
3253 1431 2 3 201 10 0 1115 347 1060
3254 1432 2 3 201 10 0 1007 254 380
3255 1433 2 3 201 10 0 1007 380 1020
3256 1434 2 3 201 10 0 1007 913 442
3257 1435 2 3 201 10 0 1007 1020 913
3258 1436 2 3 201 10 0 151 938 150
3259 1437 2 3 201 10 0 75 936 74
3260 1438 2 3 201 10 0 383 982 1102
3261 1439 2 3 201 10 0 454 438 1102
3262 1440 2 3 201 10 0 1137 454 1102
3263 1441 2 3 201 10 0 982 1137 1102
3264 1442 2 3 201 10 0 256 543 1129
3265 1443 2 3 201 10 0 1032 256 1129
3266 1444 2 3 201 10 0 440 461 1129
3267 1445 2 3 201 10 0 1032 1129 461
3268 1446 2 3 201 10 0 190 184 469
3269 1447 2 3 201 10 0 184 190 459
3270 1448 2 3 201 10 0 481 459 190
3271 1449 2 3 201 10 0 190 469 506
3272 1450 2 3 201 10 0 113 918 112
3273 1451 2 3 201 10 0 113 1156 918
3274 1452 2 3 201 10 0 1163 1162 638
3275 1453 2 3 201 10 0 1170 1166 220
3276 1454 2 3 201 10 0 213 1168 1173
3277 1455 2 3 201 10 0 1175 1167 220
3278 1456 2 3 201 10 0 220 1167 1176
3279 1457 2 3 201 10 0 1176 1170 220
3280 1458 2 3 201 10 0 1179 1172 601
3281 1459 2 3 201 10 0 599 1169 1181
3282 1460 2 3 201 10 0 593 1170 1186
3283 1461 2 3 201 10 0 595 1183 1187
3284 1462 2 3 201 10 0 661 1185 1187
3285 1463 2 3 201 10 0 311 1183 1190
3286 1464 2 3 201 10 0 661 1163 1193
3287 1465 2 3 201 10 0 305 1184 1194
3288 1466 2 3 201 10 0 609 1185 1194
3289 1467 2 3 201 10 0 683 1188 1195
3290 1468 2 3 201 10 0 334 1171 1200
3291 1469 2 3 201 10 0 306 1189 1203
3292 1470 2 3 201 10 0 1204 1193 606
3293 1471 2 3 201 10 0 606 695 1204
3294 1472 2 3 201 10 0 226 1172 1207
3295 1473 2 3 201 10 0 1209 1186 603
3296 1474 2 3 201 10 0 1209 1203 600
3297 1475 2 3 201 10 0 1210 1195 595
3298 1476 2 3 201 10 0 1214 1177 894
3299 1477 2 3 201 10 0 894 379 1214
3300 1478 2 3 201 10 0 322 1191 1215
3301 1479 2 3 201 10 0 1217 1167 598
3302 1480 2 3 201 10 0 1219 1218 333
3303 1481 2 3 201 10 0 1222 1169 226
3304 1482 2 3 201 10 0 603 1217 1223
3305 1483 2 3 201 10 0 593 1191 1225
3306 1484 2 3 201 10 0 1229 1196 666
3307 1485 2 3 201 10 0 1229 1201 590
3308 1486 2 3 201 10 0 1230 1212 683
3309 1487 2 3 201 10 0 1230 1218 610
3310 1488 2 3 201 10 0 1231 1175 220
3311 1489 2 3 201 10 0 333 1210 1234
3312 1490 2 3 201 10 0 609 1213 1234
3313 1491 2 3 201 10 0 596 1161 1238
3314 1492 2 3 201 10 0 1239 1226 592
3315 1493 2 3 201 10 0 1240 743 624
3316 1494 2 3 201 10 0 1240 1197 331
3317 1495 2 3 201 10 0 1241 1200 607
3318 1496 2 3 201 10 0 611 1219 1242
3319 1497 2 3 201 10 0 588 1166 1244
3320 1498 2 3 201 10 0 593 1225 1244
3321 1499 2 3 201 10 0 1247 1242 687
3322 1500 2 3 201 10 0 1249 1238 629
3323 1501 2 3 201 10 0 1251 1237 611
3324 1502 2 3 201 10 0 1251 1246 309
3325 1503 2 3 201 10 0 1252 1164 592
3326 1504 2 3 201 10 0 1252 1250 635
3327 1505 2 3 201 10 0 657 676 1255
3328 1506 2 3 201 10 0 1256 1221 610
3329 1507 2 3 201 10 0 1256 1237 666
3330 1508 2 3 201 10 0 213 1165 1258
3331 1509 2 3 201 10 0 631 1178 1258
3332 1510 2 3 201 10 0 1259 23 24
3333 1511 2 3 201 10 0 24 1224 1259
3334 1512 2 3 201 10 0 696 1239 1260
3335 1513 2 3 201 10 0 596 1257 1260
3336 1514 2 3 201 10 0 1261 1189 306
3337 1515 2 3 201 10 0 1266 1254 598
3338 1516 2 3 201 10 0 1267 1196 599
3339 1517 2 3 201 10 0 1267 1248 307
3340 1518 2 3 201 10 0 1268 1211 588
3341 1519 2 3 201 10 0 1268 1225 630
3342 1520 2 3 201 10 0 593 1186 1270
3343 1521 2 3 201 10 0 1270 1191 593
3344 1522 2 3 201 10 0 601 1228 1271
3345 1523 2 3 201 10 0 301 1263 1271
3346 1524 2 3 201 10 0 594 1197 1272
3347 1525 2 3 201 10 0 331 1197 1273
3348 1526 2 3 201 10 0 1274 1215 600
3349 1527 2 3 201 10 0 1274 1272 624
3350 1528 2 3 201 10 0 1275 1189 594
3351 1529 2 3 201 10 0 594 1272 1275
3352 1530 2 3 201 10 0 1276 1171 334
3353 1531 2 3 201 10 0 1278 1254 301
3354 1532 2 3 201 10 0 1279 1232 317
3355 1533 2 3 201 10 0 617 1261 1280
3356 1534 2 3 201 10 0 1281 1174 302
3357 1535 2 3 201 10 0 1282 1205 214
3358 1536 2 3 201 10 0 1282 1212 623
3359 1537 2 3 201 10 0 306 1203 1283
3360 1538 2 3 201 10 0 603 1223 1283
3361 1539 2 3 201 10 0 626 1233 1284
3362 1540 2 3 201 10 0 639 1278 1284
3363 1541 2 3 201 10 0 1288 1233 642
3364 1542 2 3 201 10 0 1289 1246 628
3365 1543 2 3 201 10 0 1289 1280 642
3366 1544 2 3 201 10 0 1290 1201 309
3367 1545 2 3 201 10 0 1290 1233 626
3368 1546 2 3 201 10 0 1291 1217 598
3369 1547 2 3 201 10 0 598 1254 1291
3370 1548 2 3 201 10 0 334 1200 1292
3371 1549 2 3 201 10 0 1293 1163 638
3372 1550 2 3 201 10 0 1293 1224 606
3373 1551 2 3 201 10 0 334 1292 1295
3374 1552 2 3 201 10 0 1296 1159 590
3375 1553 2 3 201 10 0 1296 1228 601
3376 1554 2 3 201 10 0 1297 1191 322
3377 1555 2 3 201 10 0 322 1277 1297
3378 1556 2 3 201 10 0 658 1266 1298
3379 1557 2 3 201 10 0 317 1232 1300
3380 1558 2 3 201 10 0 216 1182 1301
3381 1559 2 3 201 10 0 607 1202 1301
3382 1560 2 3 201 10 0 639 1288 1303
3383 1561 2 3 201 10 0 1303 1223 639
3384 1562 2 3 201 10 0 1304 1162 311
3385 1563 2 3 201 10 0 1305 1221 307
3386 1564 2 3 201 10 0 1305 1265 623
3387 1565 2 3 201 10 0 1307 1285 696
3388 1566 2 3 201 10 0 1309 1165 587
3389 1567 2 3 201 10 0 1309 1220 631
3390 1568 2 3 201 10 0 331 1273 1310
3391 1569 2 3 201 10 0 629 1179 1311
3392 1570 2 3 201 10 0 1312 1294 617
3393 1571 2 3 201 10 0 594 1189 1319
3394 1572 2 3 201 10 0 617 1294 1319
3395 1573 2 3 201 10 0 602 1287 1320
3396 1574 2 3 201 10 0 302 1174 1321
3397 1575 2 3 201 10 0 637 1236 1321
3398 1576 2 3 201 10 0 1322 1181 635
3399 1577 2 3 201 10 0 1322 1308 618
3400 1578 2 3 201 10 0 590 1201 1323
3401 1579 2 3 201 10 0 626 1228 1323
3402 1580 2 3 201 10 0 616 1263 1324
3403 1581 2 3 201 10 0 1325 1300 633
3404 1582 2 3 201 10 0 1326 1255 676
3405 1583 2 3 201 10 0 302 1255 1326
3406 1584 2 3 201 10 0 1327 1228 626
3407 1585 2 3 201 10 0 1327 1278 301
3408 1586 2 3 201 10 0 1328 1311 616
3409 1587 2 3 201 10 0 628 1247 1329
3410 1588 2 3 201 10 0 210 1312 1329
3411 1589 2 3 201 10 0 687 1213 1330
3412 1590 2 3 201 10 0 604 1264 1330
3413 1591 2 3 201 10 0 1331 1168 213
3414 1592 2 3 201 10 0 1331 1178 651
3415 1593 2 3 201 10 0 317 1300 1332
3416 1594 2 3 201 10 0 1332 1313 317
3417 1595 2 3 201 10 0 217 1306 1333
3418 1596 2 3 201 10 0 1334 1199 217
3419 1597 2 3 201 10 0 1335 1298 614
3420 1598 2 3 201 10 0 602 1168 1336
3421 1599 2 3 201 10 0 651 1198 1336
3422 1600 2 3 201 10 0 210 1264 1337
3423 1601 2 3 201 10 0 1338 1269 304
3424 1602 2 3 201 10 0 1338 1285 649
3425 1603 2 3 201 10 0 330 1253 1339
3426 1604 2 3 201 10 0 1341 1197 594
3427 1605 2 3 201 10 0 1341 1294 621
3428 1606 2 3 201 10 0 1342 1320 698
3429 1607 2 3 201 10 0 605 1342 1344
3430 1608 2 3 201 10 0 669 1202 1345
3431 1609 2 3 201 10 0 597 1253 1345
3432 1610 2 3 201 10 0 1346 1226 304
3433 1611 2 3 201 10 0 1346 1316 636
3434 1612 2 3 201 10 0 598 1167 1347
3435 1613 2 3 201 10 0 1347 1266 598
3436 1614 2 3 201 10 0 597 1171 1349
3437 1615 2 3 201 10 0 644 1343 1349
3438 1616 2 3 201 10 0 308 1286 1350
3439 1617 2 3 201 10 0 646 1307 1350
3440 1618 2 3 201 10 0 619 1235 1351
3441 1619 2 3 201 10 0 669 1262 1351
3442 1620 2 3 201 10 0 1352 1261 306
3443 1621 2 3 201 10 0 1352 1288 642
3444 1622 2 3 201 10 0 587 1206 1353
3445 1623 2 3 201 10 0 645 1220 1353
3446 1624 2 3 201 10 0 1354 1248 618
3447 1625 2 3 201 10 0 308 1257 1355
3448 1626 2 3 201 10 0 634 1302 1355
3449 1627 2 3 201 10 0 591 1182 1356
3450 1628 2 3 201 10 0 656 1192 1356
3451 1629 2 3 201 10 0 646 1262 1357
3452 1630 2 3 201 10 0 1358 1337 662
3453 1631 2 3 201 10 0 642 1233 1359
3454 1632 2 3 201 10 0 309 1246 1359
3455 1633 2 3 201 10 0 590 1159 1360
3456 1634 2 3 201 10 0 599 1196 1360
3457 1635 2 3 201 10 0 213 1173 1361
3458 1636 2 3 201 10 0 1362 747 321
3459 1637 2 3 201 10 0 620 1281 1363
3460 1638 2 3 201 10 0 1366 784 322
3461 1639 2 3 201 10 0 322 1215 1366
3462 1640 2 3 201 10 0 1368 1179 601
3463 1641 2 3 201 10 0 1368 1263 616
3464 1642 2 3 201 10 0 301 1254 1369
3465 1643 2 3 201 10 0 1369 1263 301
3466 1644 2 3 201 10 0 1370 1325 633
3467 1645 2 3 201 10 0 1370 1335 614
3468 1646 2 3 201 10 0 614 1175 1371
3469 1647 2 3 201 10 0 627 1325 1371
3470 1648 2 3 201 10 0 685 1354 1372
3471 1649 2 3 201 10 0 651 1178 1373
3472 1650 2 3 201 10 0 608 1208 1373
3473 1651 2 3 201 10 0 1375 1314 649
3474 1652 2 3 201 10 0 1375 1357 330
3475 1653 2 3 201 10 0 1376 1173 605
3476 1654 2 3 201 10 0 637 1192 1378
3477 1655 2 3 201 10 0 320 1208 1378
3478 1656 2 3 201 10 0 217 1199 1381
3479 1657 2 3 201 10 0 660 1367 1381
3480 1658 2 3 201 10 0 1382 1269 612
3481 1659 2 3 201 10 0 1382 1365 697
3482 1660 2 3 201 10 0 1383 1182 591
3483 1661 2 3 201 10 0 1383 1241 607
3484 1662 2 3 201 10 0 652 1198 1384
3485 1663 2 3 201 10 0 320 1216 1384
3486 1664 2 3 201 10 0 1385 1245 315
3487 1665 2 3 201 10 0 1386 1232 622
3488 1666 2 3 201 10 0 311 1162 1388
3489 1667 2 3 201 10 0 1388 1183 311
3490 1668 2 3 201 10 0 315 1245 1389
3491 1669 2 3 201 10 0 1390 1387 622
3492 1670 2 3 201 10 0 1391 1265 685
3493 1671 2 3 201 10 0 1391 1340 615
3494 1672 2 3 201 10 0 634 1249 1392
3495 1673 2 3 201 10 0 343 1377 1392
3496 1674 2 3 201 10 0 1393 1339 647
3497 1675 2 3 201 10 0 1393 1367 660
3498 1676 2 3 201 10 0 1394 1380 698
3499 1677 2 3 201 10 0 621 1294 1395
3500 1678 2 3 201 10 0 210 1337 1395
3501 1679 2 3 201 10 0 1397 1171 597
3502 1680 2 3 201 10 0 1397 1202 607
3503 1681 2 3 201 10 0 1398 1306 217
3504 1682 2 3 201 10 0 1398 1367 679
3505 1683 2 3 201 10 0 613 1216 1399
3506 1684 2 3 201 10 0 656 1227 1399
3507 1685 2 3 201 10 0 1400 1250 636
3508 1686 2 3 201 10 0 1400 1379 332
3509 1687 2 3 201 10 0 1401 1324 658
3510 1688 2 3 201 10 0 617 1280 1402
3511 1689 2 3 201 10 0 1402 1312 617
3512 1690 2 3 201 10 0 317 1313 1403
3513 1691 2 3 201 10 0 1404 1389 689
3514 1692 2 3 201 10 0 1405 1206 315
3515 1693 2 3 201 10 0 315 1389 1405
3516 1694 2 3 201 10 0 1406 1178 631
3517 1695 2 3 201 10 0 1406 1243 608
3518 1696 2 3 201 10 0 653 1334 1407
3519 1697 2 3 201 10 0 1410 1199 612
3520 1698 2 3 201 10 0 1410 1314 660
3521 1699 2 3 201 10 0 619 1286 1411
3522 1700 2 3 201 10 0 681 1299 1411
3523 1701 2 3 201 10 0 1412 1236 678
3524 1702 2 3 201 10 0 1412 1255 302
3525 1703 2 3 201 10 0 591 1174 1413
3526 1704 2 3 201 10 0 620 1241 1413
3527 1705 2 3 201 10 0 633 1386 1414
3528 1706 2 3 201 10 0 650 1394 1415
3529 1707 2 3 201 10 0 310 1409 1415
3530 1708 2 3 201 10 0 670 1227 1416
3531 1709 2 3 201 10 0 216 1235 1416
3532 1710 2 3 201 10 0 1418 1174 591
3533 1711 2 3 201 10 0 1418 1192 637
3534 1712 2 3 201 10 0 1419 1165 213
3535 1713 2 3 201 10 0 213 1361 1419
3536 1714 2 3 201 10 0 632 1362 1420
3537 1715 2 3 201 10 0 645 1404 1420
3538 1716 2 3 201 10 0 631 1220 1421
3539 1717 2 3 201 10 0 321 1243 1421
3540 1718 2 3 201 10 0 1422 1166 588
3541 1719 2 3 201 10 0 309 1201 1423
3542 1720 2 3 201 10 0 666 1237 1423
3543 1721 2 3 201 10 0 1424 1344 313
3544 1722 2 3 201 10 0 655 1376 1426
3545 1723 2 3 201 10 0 1427 1253 597
3546 1724 2 3 201 10 0 1427 1343 647
3547 1725 2 3 201 10 0 1430 1426 654
3548 1726 2 3 201 10 0 625 1348 1431
3549 1727 2 3 201 10 0 677 1390 1431
3550 1728 2 3 201 10 0 318 1211 1432
3551 1729 2 3 201 10 0 319 1335 1434
3552 1730 2 3 201 10 0 633 1414 1434
3553 1731 2 3 201 10 0 1435 1380 668
3554 1732 2 3 201 10 0 1435 1396 313
3555 1733 2 3 201 10 0 1436 1408 668
3556 1734 2 3 201 10 0 1436 1428 327
3557 1735 2 3 201 10 0 1437 1183 595
3558 1736 2 3 201 10 0 1437 1188 589
3559 1737 2 3 201 10 0 1438 1348 218
3560 1738 2 3 201 10 0 218 1364 1438
3561 1739 2 3 201 10 0 1439 1432 630
3562 1740 2 3 201 10 0 343 1328 1440
3563 1741 2 3 201 10 0 667 1433 1440
3564 1742 2 3 201 10 0 661 1193 1441
3565 1743 2 3 201 10 0 1441 1185 661
3566 1744 2 3 201 10 0 310 1287 1442
3567 1745 2 3 201 10 0 652 1318 1442
3568 1746 2 3 201 10 0 667 1401 1443
3569 1747 2 3 201 10 0 596 1238 1444
3570 1748 2 3 201 10 0 1444 1257 596
3571 1749 2 3 201 10 0 599 1181 1445
3572 1750 2 3 201 10 0 618 1248 1445
3573 1751 2 3 201 10 0 1446 1182 216
3574 1752 2 3 201 10 0 1446 1227 656
3575 1753 2 3 201 10 0 686 773 1447
3576 1754 2 3 201 10 0 1448 1198 651
3577 1755 2 3 201 10 0 1448 1208 320
3578 1756 2 3 201 10 0 217 1333 1449
3579 1757 2 3 201 10 0 1449 1334 217
3580 1758 2 3 201 10 0 1450 1208 608
3581 1759 2 3 201 10 0 1450 1236 637
3582 1760 2 3 201 10 0 322 784 1451
3583 1761 2 3 201 10 0 1451 1277 322
3584 1762 2 3 201 10 0 1452 1192 656
3585 1763 2 3 201 10 0 1452 1216 320
3586 1764 2 3 201 10 0 1453 1273 621
3587 1765 2 3 201 10 0 621 1358 1453
3588 1766 2 3 201 10 0 1454 1308 332
3589 1767 2 3 201 10 0 1454 1425 671
3590 1768 2 3 201 10 0 1455 1443 319
3591 1769 2 3 201 10 0 670 1299 1456
3592 1770 2 3 201 10 0 326 1315 1456
3593 1771 2 3 201 10 0 1457 1387 327
3594 1772 2 3 201 10 0 611 1242 1458
3595 1773 2 3 201 10 0 628 1246 1458
3596 1774 2 3 201 10 0 1459 1161 596
3597 1775 2 3 201 10 0 1459 1239 592
3598 1776 2 3 201 10 0 654 1424 1460
3599 1777 2 3 201 10 0 717 551 1461
3600 1778 2 3 201 10 0 587 1165 1462
3601 1779 2 3 201 10 0 1463 1253 330
3602 1780 2 3 201 10 0 1463 1262 669
3603 1781 2 3 201 10 0 659 1457 1464
3604 1782 2 3 201 10 0 1466 1202 669
3605 1783 2 3 201 10 0 1466 1235 216
3606 1784 2 3 201 10 0 1467 1364 643
3607 1785 2 3 201 10 0 1467 1408 677
3608 1786 2 3 201 10 0 660 1314 1468
3609 1787 2 3 201 10 0 330 1339 1468
3610 1788 2 3 201 10 0 666 1196 1469
3611 1789 2 3 201 10 0 307 1221 1469
3612 1790 2 3 201 10 0 1470 1220 645
3613 1791 2 3 201 10 0 1470 1362 321
3614 1792 2 3 201 10 0 220 1166 1471
3615 1793 2 3 201 10 0 1471 1231 220
3616 1794 2 3 201 10 0 629 1311 1472
3617 1795 2 3 201 10 0 1472 1249 629
3618 1796 2 3 201 10 0 1473 1414 659
3619 1797 2 3 201 10 0 1473 1455 319
3620 1798 2 3 201 10 0 681 1302 1474
3621 1799 2 3 201 10 0 641 1374 1474
3622 1800 2 3 201 10 0 1475 1422 588
3623 1801 2 3 201 10 0 1476 1235 619
3624 1802 2 3 201 10 0 1476 1299 670
3625 1803 2 3 201 10 0 592 1226 1477
3626 1804 2 3 201 10 0 636 1250 1477
3627 1805 2 3 201 10 0 1478 1277 640
3628 1806 2 3 201 10 0 1478 1439 630
3629 1807 2 3 201 10 0 1479 1396 643
3630 1808 2 3 201 10 0 683 1195 1480
3631 1809 2 3 201 10 0 333 1218 1480
3632 1810 2 3 201 10 0 318 1317 1481
3633 1811 2 3 201 10 0 1482 1286 308
3634 1812 2 3 201 10 0 1482 1302 681
3635 1813 2 3 201 10 0 1483 808 342
3636 1814 2 3 201 10 0 342 1430 1483
3637 1815 2 3 201 10 0 1484 1372 671
3638 1816 2 3 201 10 0 1484 1447 316
3639 1817 2 3 201 10 0 1485 1316 697
3640 1818 2 3 201 10 0 1485 1429 648
3641 1819 2 3 201 10 0 613 1315 1486
3642 1820 2 3 201 10 0 688 1318 1486
3643 1821 2 3 201 10 0 1487 1401 658
3644 1822 2 3 201 10 0 658 1298 1487
3645 1823 2 3 201 10 0 678 1236 1488
3646 1824 2 3 201 10 0 608 1243 1488
3647 1825 2 3 201 10 0 1489 1185 609
3648 1826 2 3 201 10 0 1489 1210 595
3649 1827 2 3 201 10 0 1491 1364 218
3650 1828 2 3 201 10 0 1493 1317 318
3651 1829 2 3 201 10 0 318 1432 1493
3652 1830 2 3 201 10 0 623 1212 1494
3653 1831 2 3 201 10 0 610 1221 1494
3654 1832 2 3 201 10 0 1495 1216 613
3655 1833 2 3 201 10 0 1495 1318 652
3656 1834 2 3 201 10 0 615 1205 1496
3657 1835 2 3 201 10 0 623 1265 1496
3658 1836 2 3 201 10 0 307 1248 1497
3659 1837 2 3 201 10 0 685 1265 1497
3660 1838 2 3 201 10 0 616 1324 1498
3661 1839 2 3 201 10 0 1498 1328 616
3662 1840 2 3 201 10 0 625 1279 1499
3663 1841 2 3 201 10 0 1500 1198 652
3664 1842 2 3 201 10 0 1500 1287 602
3665 1843 2 3 201 10 0 649 1285 1501
3666 1844 2 3 201 10 0 646 1357 1501
3667 1845 2 3 201 10 0 1502 1428 650
3668 1846 2 3 201 10 0 1503 1227 670
3669 1847 2 3 201 10 0 1503 1315 613
3670 1848 2 3 201 10 0 604 1184 1504
3671 1849 2 3 201 10 0 716 1490 1504
3672 1850 2 3 201 10 0 1505 1386 622
3673 1851 2 3 201 10 0 622 1387 1505
3674 1852 2 3 201 10 0 1506 1281 302
3675 1853 2 3 201 10 0 302 1326 1506
3676 1854 2 3 201 10 0 610 1218 1507
3677 1855 2 3 201 10 0 611 1237 1507
3678 1856 2 3 201 10 0 1508 1365 653
3679 1857 2 3 201 10 0 1508 1492 323
3680 1858 2 3 201 10 0 715 1245 1509
3681 1859 2 3 201 10 0 1510 1168 602
3682 1860 2 3 201 10 0 602 1320 1510
3683 1861 2 3 201 10 0 1511 1213 687
3684 1862 2 3 201 10 0 1511 1219 333
3685 1863 2 3 201 10 0 638 1162 1512
3686 1864 2 3 201 10 0 635 1250 1513
3687 1865 2 3 201 10 0 332 1308 1513
3688 1866 2 3 201 10 0 1514 1379 648
3689 1867 2 3 201 10 0 214 1180 1515
3690 1868 2 3 201 10 0 683 1212 1515
3691 1869 2 3 201 10 0 692 1465 1516
3692 1870 2 3 201 10 0 1516 746 692
3693 1871 2 3 201 10 0 1517 1245 715
3694 1872 2 3 201 10 0 715 1177 1517
3695 1873 2 3 201 10 0 641 1377 1520
3696 1874 2 3 201 10 0 1096 1072 1521
3697 1875 2 3 201 10 0 1521 1072 470
3698 1876 2 3 201 10 0 674 1409 1522
3699 1877 2 3 201 10 0 688 1417 1522
3700 1878 2 3 201 10 0 1523 1247 687
3701 1879 2 3 201 10 0 1523 1264 210
3702 1880 2 3 201 10 0 612 1269 1524
3703 1881 2 3 201 10 0 649 1314 1524
3704 1882 2 3 201 10 0 1526 1184 305
3705 1883 2 3 201 10 0 1527 1262 646
3706 1884 2 3 201 10 0 1527 1286 619
3707 1885 2 3 201 10 0 679 1367 1528
3708 1886 2 3 201 10 0 1529 1257 308
3709 1887 2 3 201 10 0 1529 1307 696
3710 1888 2 3 201 10 0 1530 1264 604
3711 1889 2 3 201 10 0 1530 1490 662
3712 1890 2 3 201 10 0 304 1269 1531
3713 1891 2 3 201 10 0 697 1316 1531
3714 1892 2 3 201 10 0 304 1226 1532
3715 1893 2 3 201 10 0 696 1285 1532
3716 1894 2 3 201 10 0 1533 1528 647
3717 1895 2 3 201 10 0 647 1343 1533
3718 1896 2 3 201 10 0 627 1231 1535
3719 1897 2 3 201 10 0 1535 1525 627
3720 1898 2 3 201 10 0 1536 1279 317
3721 1899 2 3 201 10 0 317 1403 1536
3722 1900 2 3 201 10 0 326 1374 1537
3723 1901 2 3 201 10 0 703 1417 1537
3724 1902 2 3 201 10 0 672 1306 1538
3725 1903 2 3 201 10 0 679 1518 1538
3726 1904 2 3 201 10 0 612 1199 1540
3727 1905 2 3 201 10 0 653 1365 1540
3728 1906 2 3 201 10 0 1541 1184 604
3729 1907 2 3 201 10 0 1541 1213 609
3730 1908 2 3 201 10 0 1542 663 733
3731 1909 2 3 201 10 0 720 1317 1543
3732 1910 2 3 201 10 0 1543 933 720
3733 1911 2 3 201 10 0 327 1387 1544
3734 1912 2 3 201 10 0 677 1408 1544
3735 1913 2 3 201 10 0 1545 745 680
3736 1914 2 3 201 10 0 700 1455 1546
3737 1915 2 3 201 10 0 659 1464 1546
3738 1916 2 3 201 10 0 764 324 1547
3739 1917 2 3 201 10 0 1548 1287 310
3740 1918 2 3 201 10 0 1548 1394 698
3741 1919 2 3 201 10 0 1549 1465 655
3742 1920 2 3 201 10 0 655 1426 1549
3743 1921 2 3 201 10 0 622 1232 1550
3744 1922 2 3 201 10 0 1550 1390 622
3745 1923 2 3 201 10 0 321 747 1551
3746 1924 2 3 201 10 0 1551 1243 321
3747 1925 2 3 201 10 0 740 379 1553
3748 1926 2 3 201 10 0 1553 379 894
3749 1927 2 3 201 10 0 1553 1160 740
3750 1928 2 3 201 10 0 1554 1315 326
3751 1929 2 3 201 10 0 1554 1417 688
3752 1930 2 3 201 10 0 1555 1299 681
3753 1931 2 3 201 10 0 1555 1374 326
3754 1932 2 3 201 10 0 618 1308 1556
3755 1933 2 3 201 10 0 1556 1354 618
3756 1934 2 3 201 10 0 1557 1429 323
3757 1935 2 3 201 10 0 719 1502 1558
3758 1936 2 3 201 10 0 1558 158 719
3759 1937 2 3 201 10 0 316 1340 1560
3760 1938 2 3 201 10 0 685 1372 1560
3761 1939 2 3 201 10 0 1562 1190 589
3762 1940 2 3 201 10 0 722 1190 1562
3763 1941 2 3 201 10 0 1563 1433 667
3764 1942 2 3 201 10 0 667 1443 1563
3765 1943 2 3 201 10 0 1564 1318 688
3766 1944 2 3 201 10 0 1564 1409 310
3767 1945 2 3 201 10 0 1565 1404 689
3768 1946 2 3 201 10 0 1566 1492 675
3769 1947 2 3 201 10 0 1566 1561 724
3770 1948 2 3 201 10 0 1567 1464 719
3771 1949 2 3 201 10 0 719 158 1567
3772 1950 2 3 201 10 0 605 1344 1568
3773 1951 2 3 201 10 0 1568 1376 605
3774 1952 2 3 201 10 0 1569 1302 634
3775 1953 2 3 201 10 0 1569 1377 641
3776 1954 2 3 201 10 0 1570 1377 343
3777 1955 2 3 201 10 0 1570 1433 741
3778 1956 2 3 201 10 0 679 1528 1571
3779 1957 2 3 201 10 0 1571 1518 679
3780 1958 2 3 201 10 0 713 1518 1572
3781 1959 2 3 201 10 0 730 797 1573
3782 1960 2 3 201 10 0 668 1380 1574
3783 1961 2 3 201 10 0 650 1428 1574
3784 1962 2 3 201 10 0 747 1362 1575
3785 1963 2 3 201 10 0 1575 1362 632
3786 1964 2 3 201 10 0 643 1396 1576
3787 1965 2 3 201 10 0 668 1408 1576
3788 1966 2 3 201 10 0 98 99 1577
3789 1967 2 3 201 10 0 715 1509 1577
3790 1968 2 3 201 10 0 1578 1333 663
3791 1969 2 3 201 10 0 1578 1542 684
3792 1970 2 3 201 10 0 663 1542 1578
3793 1971 2 3 201 10 0 1580 1292 620
3794 1972 2 3 201 10 0 620 1363 1580
3795 1973 2 3 201 10 0 698 1380 1581
3796 1974 2 3 201 10 0 1581 1342 698
3797 1975 2 3 201 10 0 1582 60 884
3798 1976 2 3 201 10 0 1582 427 1154
3799 1977 2 3 201 10 0 884 427 1582
3800 1978 2 3 201 10 0 1583 142 143
3801 1979 2 3 201 10 0 1031 142 1583
3802 1980 2 3 201 10 0 335 781 1584
3803 1981 2 3 201 10 0 1584 781 710
3804 1982 2 3 201 10 0 640 1547 1585
3805 1983 2 3 201 10 0 1585 1547 324
3806 1984 2 3 201 10 0 1586 1361 655
3807 1985 2 3 201 10 0 655 1465 1586
3808 1986 2 3 201 10 0 1587 338 767
3809 1987 2 3 201 10 0 1587 702 721
3810 1988 2 3 201 10 0 1588 1407 684
3811 1989 2 3 201 10 0 1588 1539 675
3812 1990 2 3 201 10 0 327 1428 1589
3813 1991 2 3 201 10 0 1589 1457 327
3814 1992 2 3 201 10 0 1590 1240 331
3815 1993 2 3 201 10 0 743 1240 1590
3816 1994 2 3 201 10 0 341 776 1591
3817 1995 2 3 201 10 0 1591 776 691
3818 1996 2 3 201 10 0 1591 1572 341
3819 1997 2 3 201 10 0 678 1551 1592
3820 1998 2 3 201 10 0 1592 1551 747
3821 1999 2 3 201 10 0 640 1277 1593
3822 2000 2 3 201 10 0 636 1316 1594
3823 2001 2 3 201 10 0 648 1379 1594
3824 2002 2 3 201 10 0 1595 1374 641
3825 2003 2 3 201 10 0 641 1520 1595
3826 2004 2 3 201 10 0 1596 1561 721
3827 2005 2 3 201 10 0 1597 1206 587
3828 2006 2 3 201 10 0 694 1206 1597
3829 2007 2 3 201 10 0 1598 1552 724
3830 2008 2 3 201 10 0 1598 1584 710
3831 2009 2 3 201 10 0 671 1425 1599
3832 2010 2 3 201 10 0 686 1447 1599
3833 2011 2 3 201 10 0 1600 1430 654
3834 2012 2 3 201 10 0 654 1460 1600
3835 2013 2 3 201 10 0 1601 1545 680
3836 2014 2 3 201 10 0 653 1407 1602
3837 2015 2 3 201 10 0 675 1492 1602
3838 2016 2 3 201 10 0 1603 743 159
3839 2017 2 3 201 10 0 624 743 1603
3840 2018 2 3 201 10 0 159 784 1603
3841 2019 2 3 201 10 0 318 1481 1604
3842 2020 2 3 201 10 0 1605 850 368
3843 2021 2 3 201 10 0 778 850 1605
3844 2022 2 3 201 10 0 161 835 1606
3845 2023 2 3 201 10 0 1608 1409 674
3846 2024 2 3 201 10 0 1608 1502 650
3847 2025 2 3 201 10 0 435 695 1609
3848 2026 2 3 201 10 0 1609 695 606
3849 2027 2 3 201 10 0 315 1206 1610
3850 2028 2 3 201 10 0 1610 1206 694
3851 2029 2 3 201 10 0 1611 1526 305
3852 2030 2 3 201 10 0 332 1379 1612
3853 2031 2 3 201 10 0 735 1425 1612
3854 2032 2 3 201 10 0 1613 1579 336
3855 2033 2 3 201 10 0 697 1365 1614
3856 2034 2 3 201 10 0 323 1429 1614
3857 2035 2 3 201 10 0 729 1205 1615
3858 2036 2 3 201 10 0 1615 349 729
3859 2037 2 3 201 10 0 1615 1205 615
3860 2038 2 3 201 10 0 1616 1358 662
3861 2039 2 3 201 10 0 662 1490 1617
3862 2040 2 3 201 10 0 1620 1601 680
3863 2041 2 3 201 10 0 1621 922 345
3864 2042 2 3 201 10 0 699 922 1621
3865 2043 2 3 201 10 0 345 783 1622
3866 2044 2 3 201 10 0 313 1396 1623
3867 2045 2 3 201 10 0 1623 1424 313
3868 2046 2 3 201 10 0 157 862 1624
3869 2047 2 3 201 10 0 1624 862 686
3870 2048 2 3 201 10 0 1625 99 100
3871 2049 2 3 201 10 0 1625 1177 715
3872 2050 2 3 201 10 0 100 1177 1625
3873 2051 2 3 201 10 0 1627 818 734
3874 2052 2 3 201 10 0 1628 303 707
3875 2053 2 3 201 10 0 753 303 1628
3876 2054 2 3 201 10 0 214 1205 1630
3877 2055 2 3 201 10 0 1630 1205 729
3878 2056 2 3 201 10 0 323 1492 1631
3879 2057 2 3 201 10 0 724 1552 1631
3880 2058 2 3 201 10 0 804 1619 1632
3881 2059 2 3 201 10 0 588 1211 1633
3882 2060 2 3 201 10 0 1633 1211 690
3883 2061 2 3 201 10 0 1633 1475 588
3884 2062 2 3 201 10 0 1634 32 1037
3885 2063 2 3 201 10 0 1037 831 1634
3886 2064 2 3 201 10 0 1635 1417 703
3887 2065 2 3 201 10 0 158 1558 1637
3888 2066 2 3 201 10 0 674 1635 1637
3889 2067 2 3 201 10 0 1637 1558 674
3890 2068 2 3 201 10 0 1638 1539 338
3891 2069 2 3 201 10 0 1638 1587 721
3892 2070 2 3 201 10 0 338 1587 1638
3893 2071 2 3 201 10 0 342 808 1639
3894 2072 2 3 201 10 0 1639 808 705
3895 2073 2 3 201 10 0 726 363 1640
3896 2074 2 3 201 10 0 749 682 1640
3897 2075 2 3 201 10 0 1640 363 749
3898 2076 2 3 201 10 0 1640 682 726
3899 2077 2 3 201 10 0 648 1429 1642
3900 2078 2 3 201 10 0 1642 1514 648
3901 2079 2 3 201 10 0 693 734 1643
3902 2080 2 3 201 10 0 1643 734 759
3903 2081 2 3 201 10 0 1643 1481 693
3904 2082 2 3 201 10 0 1644 1317 720
3905 2083 2 3 201 10 0 1644 1619 693
3906 2084 2 3 201 10 0 1647 1214 379
3907 2085 2 3 201 10 0 1647 1565 689
3908 2086 2 3 201 10 0 689 1214 1647
3909 2087 2 3 201 10 0 1648 774 402
3910 2088 2 3 201 10 0 1649 1180 682
3911 2089 2 3 201 10 0 1650 133 766
3912 2090 2 3 201 10 0 718 976 1652
3913 2091 2 3 201 10 0 8 495 1653
3914 2092 2 3 201 10 0 285 1056 1653
3915 2093 2 3 201 10 0 1653 495 285
3916 2094 2 3 201 10 0 1060 347 1654
3917 2095 2 3 201 10 0 473 237 1656
3918 2096 2 3 201 10 0 896 891 1656
3919 2097 2 3 201 10 0 1656 237 896
3920 2098 2 3 201 10 0 1656 891 473
3921 2099 2 3 201 10 0 1657 346 711
3922 2100 2 3 201 10 0 311 1190 1658
3923 2101 2 3 201 10 0 1658 1190 722
3924 2102 2 3 201 10 0 1659 1542 733
3925 2103 2 3 201 10 0 1660 784 159
3926 2104 2 3 201 10 0 1154 725 1662
3927 2105 2 3 201 10 0 1663 1567 158
3928 2106 2 3 201 10 0 700 1567 1663
3929 2107 2 3 201 10 0 215 1545 1664
3930 2108 2 3 201 10 0 1664 1645 215
3931 2109 2 3 201 10 0 675 1539 1665
3932 2110 2 3 201 10 0 721 1561 1665
3933 2111 2 3 201 10 0 1666 673 62
3934 2112 2 3 201 10 0 778 673 1666
3935 2113 2 3 201 10 0 1667 1060 340
3936 2114 2 3 201 10 0 370 753 1668
3937 2115 2 3 201 10 0 1668 753 676
3938 2116 2 3 201 10 0 643 1364 1669
3939 2117 2 3 201 10 0 1669 1479 643
3940 2118 2 3 201 10 0 1670 1518 713
3941 2119 2 3 201 10 0 1670 1636 672
3942 2120 2 3 201 10 0 692 1579 1671
3943 2121 2 3 201 10 0 1671 1465 692
3944 2122 2 3 201 10 0 348 1012 1672
3945 2123 2 3 201 10 0 1672 1012 714
3946 2124 2 3 201 10 0 1675 402 844
3947 2125 2 3 201 10 0 338 1539 1676
3948 2126 2 3 201 10 0 684 1542 1676
3949 2127 2 3 201 10 0 1677 783 212
3950 2128 2 3 201 10 0 1678 544 97
3951 2129 2 3 201 10 0 745 346 1679
3952 2130 2 3 201 10 0 1681 842 717
3953 2131 2 3 201 10 0 754 842 1681
3954 2132 2 3 201 10 0 717 1304 1681
3955 2133 2 3 201 10 0 1682 1306 672
3956 2134 2 3 201 10 0 615 1340 1683
3957 2135 2 3 201 10 0 1683 1340 758
3958 2136 2 3 201 10 0 1684 912 157
3959 2137 2 3 201 10 0 710 912 1684
3960 2138 2 3 201 10 0 157 1673 1684
3961 2139 2 3 201 10 0 1686 1348 625
3962 2140 2 3 201 10 0 625 1499 1686
3963 2141 2 3 201 10 0 724 1561 1687
3964 2142 2 3 201 10 0 335 1584 1687
3965 2143 2 3 201 10 0 122 1140 1688
3966 2144 2 3 201 10 0 288 1051 1688
3967 2145 2 3 201 10 0 1688 1140 288
3968 2146 2 3 201 10 0 46 1141 1689
3969 2147 2 3 201 10 0 286 1052 1689
3970 2148 2 3 201 10 0 1689 1141 286
3971 2149 2 3 201 10 0 847 544 1691
3972 2150 2 3 201 10 0 1693 746 325
3973 2151 2 3 201 10 0 692 746 1693
3974 2152 2 3 201 10 0 325 942 1693
3975 2153 2 3 201 10 0 84 1146 1694
3976 2154 2 3 201 10 0 287 1054 1694
3977 2155 2 3 201 10 0 1694 1146 287
3978 2156 2 3 201 10 0 1697 1585 324
3979 2157 2 3 201 10 0 706 1439 1698
3980 2158 2 3 201 10 0 640 1585 1698
3981 2159 2 3 201 10 0 1700 901 793
3982 2160 2 3 201 10 0 1701 694 336
3983 2161 2 3 201 10 0 825 694 1701
3984 2162 2 3 201 10 0 998 472 1703
3985 2163 2 3 201 10 0 1703 472 919
3986 2164 2 3 201 10 0 1704 229 348
3987 2165 2 3 201 10 0 178 956 1706
3988 2166 2 3 201 10 0 1707 853 324
3989 2167 2 3 201 10 0 806 853 1707
3990 2168 2 3 201 10 0 1708 773 755
3991 2169 2 3 201 10 0 1710 1635 703
3992 2170 2 3 201 10 0 1711 991 977
3993 2171 2 3 201 10 0 690 816 1713
3994 2172 2 3 201 10 0 1096 1521 1716
3995 2173 2 3 201 10 0 1716 245 1096
3996 2174 2 3 201 10 0 702 1587 1717
3997 2175 2 3 201 10 0 1717 1587 767
3998 2176 2 3 201 10 0 1718 796 745
3999 2177 2 3 201 10 0 750 796 1718
4000 2178 2 3 201 10 0 1719 813 329
4001 2179 2 3 201 10 0 762 813 1719
4002 2180 2 3 201 10 0 1720 458 255
4003 2181 2 3 201 10 0 434 458 1720
4004 2182 2 3 201 10 0 255 520 1720
4005 2183 2 3 201 10 0 749 1048 1722
4006 2184 2 3 201 10 0 1723 1490 716
4007 2185 2 3 201 10 0 1724 956 457
4008 2186 2 3 201 10 0 1724 1521 470
4009 2187 2 3 201 10 0 904 787 1725
4010 2188 2 3 201 10 0 1725 359 904
4011 2189 2 3 201 10 0 1725 787 854
4012 2190 2 3 201 10 0 723 779 1726
4013 2191 2 3 201 10 0 1726 779 750
4014 2192 2 3 201 10 0 1727 785 375
4015 2193 2 3 201 10 0 1728 239 471
4016 2194 2 3 201 10 0 1728 467 536
4017 2195 2 3 201 10 0 536 239 1728
4018 2196 2 3 201 10 0 471 467 1728
4019 2197 2 3 201 10 0 1729 328 837
4020 2198 2 3 201 10 0 473 244 1730
4021 2199 2 3 201 10 0 1730 464 473
4022 2200 2 3 201 10 0 1731 789 370
4023 2201 2 3 201 10 0 709 789 1731
4024 2202 2 3 201 10 0 1732 839 344
4025 2203 2 3 201 10 0 1732 1048 863
4026 2204 2 3 201 10 0 863 839 1732
4027 2205 2 3 201 10 0 1733 1692 713
4028 2206 2 3 201 10 0 713 1572 1733
4029 2207 2 3 201 10 0 1734 1310 665
4030 2208 2 3 201 10 0 665 1618 1734
4031 2209 2 3 201 10 0 1736 794 337
4032 2210 2 3 201 10 0 1736 822 756
4033 2211 2 3 201 10 0 756 794 1736
4034 2212 2 3 201 10 0 337 822 1736
4035 2213 2 3 201 10 0 363 726 1737
4036 2214 2 3 201 10 0 1737 726 768
4037 2215 2 3 201 10 0 170 1049 1738
4038 2216 2 3 201 10 0 557 1100 1738
4039 2217 2 3 201 10 0 1738 1049 557
4040 2218 2 3 201 10 0 1738 1100 170
4041 2219 2 3 201 10 0 567 245 1716
4042 2220 2 3 201 10 0 567 1716 457
4043 2221 2 3 201 10 0 1577 99 1625
4044 2222 2 3 201 10 0 1577 1625 715
4045 2223 2 3 201 10 0 1691 544 1678
4046 2224 2 3 201 10 0 1708 316 1447
4047 2225 2 3 201 10 0 773 1708 1447
4048 2226 2 3 201 10 0 783 1677 1622
4049 2227 2 3 201 10 0 1366 624 1603
4050 2228 2 3 201 10 0 1366 1603 784
4051 2229 2 3 201 10 0 784 1660 1451
4052 2230 2 3 201 10 0 1660 159 1086
4053 2231 2 3 201 10 0 785 1660 1086
4054 2232 2 3 201 10 0 1654 347 1026
4055 2233 2 3 201 10 0 1685 1713 816
4056 2234 2 3 201 10 0 1695 1729 837
4057 2235 2 3 201 10 0 902 359 1725
4058 2236 2 3 201 10 0 902 1725 854
4059 2237 2 3 201 10 0 1579 692 1693
4060 2238 2 3 201 10 0 1579 1693 942
4061 2239 2 3 201 10 0 1724 470 1706
4062 2240 2 3 201 10 0 956 1724 1706
4063 2241 2 3 201 10 0 1732 344 1722
4064 2242 2 3 201 10 0 1048 1732 1722
4065 2243 2 3 201 10 0 493 1654 1026
4066 2244 2 3 201 10 0 51 52 1714
4067 2245 2 3 201 10 0 132 133 1650
4068 2246 2 3 201 10 0 31 32 1634
4069 2247 2 3 201 10 0 1634 831 420
4070 2248 2 3 201 10 0 175 178 950
4071 2249 2 3 201 10 0 175 950 1010
4072 2250 2 3 201 10 0 418 991 1711
4073 2251 2 3 201 10 0 418 1711 1031
4074 2252 2 3 201 10 0 1031 1583 418
4075 2253 2 3 201 10 0 1060 1667 365
4076 2254 2 3 201 10 0 1169 599 1360
4077 2255 2 3 201 10 0 1169 1360 1159
4078 2256 2 3 201 10 0 1296 601 1172
4079 2257 2 3 201 10 0 1159 1296 1172
4080 2258 2 3 201 10 0 1459 592 1164
4081 2259 2 3 201 10 0 1161 1459 1164
4082 2260 2 3 201 10 0 1207 629 1238
4083 2261 2 3 201 10 0 1207 1238 1161
4084 2262 2 3 201 10 0 1304 717 1512
4085 2263 2 3 201 10 0 1304 1512 1162
4086 2264 2 3 201 10 0 1163 661 1388
4087 2265 2 3 201 10 0 1163 1388 1162
4088 2266 2 3 201 10 0 1293 606 1193
4089 2267 2 3 201 10 0 1163 1293 1193
4090 2268 2 3 201 10 0 1252 635 1222
4091 2269 2 3 201 10 0 1164 1252 1222
4092 2270 2 3 201 10 0 1309 631 1258
4093 2271 2 3 201 10 0 1165 1309 1258
4094 2272 2 3 201 10 0 1419 664 1462
4095 2273 2 3 201 10 0 1419 1462 1165
4096 2274 2 3 201 10 0 1170 593 1244
4097 2275 2 3 201 10 0 1170 1244 1166
4098 2276 2 3 201 10 0 1422 1471 1166
4099 2277 2 3 201 10 0 1217 603 1176
4100 2278 2 3 201 10 0 1167 1217 1176
4101 2279 2 3 201 10 0 1175 614 1347
4102 2280 2 3 201 10 0 1175 1347 1167
4103 2281 2 3 201 10 0 1510 605 1173
4104 2282 2 3 201 10 0 1168 1510 1173
4105 2283 2 3 201 10 0 1331 651 1336
4106 2284 2 3 201 10 0 1331 1336 1168
4107 2285 2 3 201 10 0 1222 635 1181
4108 2286 2 3 201 10 0 1169 1222 1181
4109 2287 2 3 201 10 0 1176 603 1186
4110 2288 2 3 201 10 0 1176 1186 1170
4111 2289 2 3 201 10 0 1397 607 1200
4112 2290 2 3 201 10 0 1171 1397 1200
4113 2291 2 3 201 10 0 1276 644 1349
4114 2292 2 3 201 10 0 1276 1349 1171
4115 2293 2 3 201 10 0 1179 629 1207
4116 2294 2 3 201 10 0 1179 1207 1172
4117 2295 2 3 201 10 0 1376 655 1361
4118 2296 2 3 201 10 0 1173 1376 1361
4119 2297 2 3 201 10 0 1281 620 1413
4120 2298 2 3 201 10 0 1281 1413 1174
4121 2299 2 3 201 10 0 1418 637 1321
4122 2300 2 3 201 10 0 1174 1418 1321
4123 2301 2 3 201 10 0 1231 627 1371
4124 2302 2 3 201 10 0 1231 1371 1175
4125 2303 2 3 201 10 0 1214 689 1517
4126 2304 2 3 201 10 0 1214 1517 1177
4127 2305 2 3 201 10 0 1331 213 1258
4128 2306 2 3 201 10 0 1178 1331 1258
4129 2307 2 3 201 10 0 1406 608 1373
4130 2308 2 3 201 10 0 1178 1406 1373
4131 2309 2 3 201 10 0 1368 616 1311
4132 2310 2 3 201 10 0 1179 1368 1311
4133 2311 2 3 201 10 0 1188 683 1515
4134 2312 2 3 201 10 0 1188 1515 1180
4135 2313 2 3 201 10 0 1322 618 1445
4136 2314 2 3 201 10 0 1322 1445 1181
4137 2315 2 3 201 10 0 1383 607 1301
4138 2316 2 3 201 10 0 1182 1383 1301
4139 2317 2 3 201 10 0 1446 656 1356
4140 2318 2 3 201 10 0 1182 1446 1356
4141 2319 2 3 201 10 0 1437 589 1190
4142 2320 2 3 201 10 0 1183 1437 1190
4143 2321 2 3 201 10 0 1388 661 1187
4144 2322 2 3 201 10 0 1183 1388 1187
4145 2323 2 3 201 10 0 1541 609 1194
4146 2324 2 3 201 10 0 1184 1541 1194
4147 2325 2 3 201 10 0 1526 716 1504
4148 2326 2 3 201 10 0 1184 1526 1504
4149 2327 2 3 201 10 0 1441 305 1194
4150 2328 2 3 201 10 0 1185 1441 1194
4151 2329 2 3 201 10 0 1489 595 1187
4152 2330 2 3 201 10 0 1185 1489 1187
4153 2331 2 3 201 10 0 1209 600 1270
4154 2332 2 3 201 10 0 1209 1270 1186
4155 2333 2 3 201 10 0 1437 595 1195
4156 2334 2 3 201 10 0 1188 1437 1195
4157 2335 2 3 201 10 0 1275 600 1203
4158 2336 2 3 201 10 0 1189 1275 1203
4159 2337 2 3 201 10 0 1261 617 1319
4160 2338 2 3 201 10 0 1261 1319 1189
4161 2339 2 3 201 10 0 1270 600 1215
4162 2340 2 3 201 10 0 1191 1270 1215
4163 2341 2 3 201 10 0 1297 630 1225
4164 2342 2 3 201 10 0 1191 1297 1225
4165 2343 2 3 201 10 0 1452 320 1378
4166 2344 2 3 201 10 0 1192 1452 1378
4167 2345 2 3 201 10 0 1418 591 1356
4168 2346 2 3 201 10 0 1192 1418 1356
4169 2347 2 3 201 10 0 1204 305 1441
4170 2348 2 3 201 10 0 1204 1441 1193
4171 2349 2 3 201 10 0 1210 333 1480
4172 2350 2 3 201 10 0 1210 1480 1195
4173 2351 2 3 201 10 0 1267 307 1469
4174 2352 2 3 201 10 0 1267 1469 1196
4175 2353 2 3 201 10 0 1229 590 1360
4176 2354 2 3 201 10 0 1229 1360 1196
4177 2355 2 3 201 10 0 1341 621 1273
4178 2356 2 3 201 10 0 1197 1341 1273
4179 2357 2 3 201 10 0 1240 624 1272
4180 2358 2 3 201 10 0 1240 1272 1197
4181 2359 2 3 201 10 0 1448 320 1384
4182 2360 2 3 201 10 0 1198 1448 1384
4183 2361 2 3 201 10 0 1500 602 1336
4184 2362 2 3 201 10 0 1198 1500 1336
4185 2363 2 3 201 10 0 1334 653 1540
4186 2364 2 3 201 10 0 1334 1540 1199
4187 2365 2 3 201 10 0 1410 660 1381
4188 2366 2 3 201 10 0 1199 1410 1381
4189 2367 2 3 201 10 0 1241 620 1292
4190 2368 2 3 201 10 0 1241 1292 1200
4191 2369 2 3 201 10 0 1290 626 1323
4192 2370 2 3 201 10 0 1290 1323 1201
4193 2371 2 3 201 10 0 1229 666 1423
4194 2372 2 3 201 10 0 1229 1423 1201
4195 2373 2 3 201 10 0 1466 216 1301
4196 2374 2 3 201 10 0 1202 1466 1301
4197 2375 2 3 201 10 0 1397 597 1345
4198 2376 2 3 201 10 0 1202 1397 1345
4199 2377 2 3 201 10 0 1209 603 1283
4200 2378 2 3 201 10 0 1209 1283 1203
4201 2379 2 3 201 10 0 1282 623 1496
4202 2380 2 3 201 10 0 1282 1496 1205
4203 2381 2 3 201 10 0 1405 645 1353
4204 2382 2 3 201 10 0 1206 1405 1353
4205 2383 2 3 201 10 0 1450 637 1378
4206 2384 2 3 201 10 0 1208 1450 1378
4207 2385 2 3 201 10 0 1448 651 1373
4208 2386 2 3 201 10 0 1208 1448 1373
4209 2387 2 3 201 10 0 1489 609 1234
4210 2388 2 3 201 10 0 1210 1489 1234
4211 2389 2 3 201 10 0 1268 630 1432
4212 2390 2 3 201 10 0 1268 1432 1211
4213 2391 2 3 201 10 0 1282 214 1515
4214 2392 2 3 201 10 0 1282 1515 1212
4215 2393 2 3 201 10 0 1230 610 1494
4216 2394 2 3 201 10 0 1230 1494 1212
4217 2395 2 3 201 10 0 1511 333 1234
4218 2396 2 3 201 10 0 1213 1511 1234
4219 2397 2 3 201 10 0 1541 604 1330
4220 2398 2 3 201 10 0 1213 1541 1330
4221 2399 2 3 201 10 0 1274 624 1366
4222 2400 2 3 201 10 0 1274 1366 1215
4223 2401 2 3 201 10 0 1495 652 1384
4224 2402 2 3 201 10 0 1216 1495 1384
4225 2403 2 3 201 10 0 1452 656 1399
4226 2404 2 3 201 10 0 1216 1452 1399
4227 2405 2 3 201 10 0 1291 639 1223
4228 2406 2 3 201 10 0 1217 1291 1223
4229 2407 2 3 201 10 0 1219 611 1507
4230 2408 2 3 201 10 0 1219 1507 1218
4231 2409 2 3 201 10 0 1230 683 1480
4232 2410 2 3 201 10 0 1230 1480 1218
4233 2411 2 3 201 10 0 1511 687 1242
4234 2412 2 3 201 10 0 1219 1511 1242
4235 2413 2 3 201 10 0 1470 321 1421
4236 2414 2 3 201 10 0 1220 1470 1421
4237 2415 2 3 201 10 0 1309 587 1353
4238 2416 2 3 201 10 0 1309 1353 1220
4239 2417 2 3 201 10 0 1305 623 1494
4240 2418 2 3 201 10 0 1305 1494 1221
4241 2419 2 3 201 10 0 1256 666 1469
4242 2420 2 3 201 10 0 1256 1469 1221
4243 2421 2 3 201 10 0 1303 306 1283
4244 2422 2 3 201 10 0 1223 1303 1283
4245 2423 2 3 201 10 0 1293 638 1259
4246 2424 2 3 201 10 0 1224 1293 1259
4247 2425 2 3 201 10 0 1268 588 1244
4248 2426 2 3 201 10 0 1225 1268 1244
4249 2427 2 3 201 10 0 1346 636 1477
4250 2428 2 3 201 10 0 1346 1477 1226
4251 2429 2 3 201 10 0 1239 696 1532
4252 2430 2 3 201 10 0 1239 1532 1226
4253 2431 2 3 201 10 0 1446 216 1416
4254 2432 2 3 201 10 0 1227 1446 1416
4255 2433 2 3 201 10 0 1503 613 1399
4256 2434 2 3 201 10 0 1227 1503 1399
4257 2435 2 3 201 10 0 1327 301 1271
4258 2436 2 3 201 10 0 1228 1327 1271
4259 2437 2 3 201 10 0 1296 590 1323
4260 2438 2 3 201 10 0 1296 1323 1228
4261 2439 2 3 201 10 0 1471 1535 1231
4262 2440 2 3 201 10 0 1279 625 1550
4263 2441 2 3 201 10 0 1279 1550 1232
4264 2442 2 3 201 10 0 1386 633 1300
4265 2443 2 3 201 10 0 1232 1386 1300
4266 2444 2 3 201 10 0 1290 309 1359
4267 2445 2 3 201 10 0 1290 1359 1233
4268 2446 2 3 201 10 0 1288 639 1284
4269 2447 2 3 201 10 0 1233 1288 1284
4270 2448 2 3 201 10 0 1466 669 1351
4271 2449 2 3 201 10 0 1235 1466 1351
4272 2450 2 3 201 10 0 1476 670 1416
4273 2451 2 3 201 10 0 1235 1476 1416
4274 2452 2 3 201 10 0 1412 302 1321
4275 2453 2 3 201 10 0 1236 1412 1321
4276 2454 2 3 201 10 0 1450 608 1488
4277 2455 2 3 201 10 0 1450 1488 1236
4278 2456 2 3 201 10 0 1251 309 1423
4279 2457 2 3 201 10 0 1251 1423 1237
4280 2458 2 3 201 10 0 1256 610 1507
4281 2459 2 3 201 10 0 1256 1507 1237
4282 2460 2 3 201 10 0 1249 634 1444
4283 2461 2 3 201 10 0 1249 1444 1238
4284 2462 2 3 201 10 0 1459 596 1260
4285 2463 2 3 201 10 0 1239 1459 1260
4286 2464 2 3 201 10 0 1383 591 1413
4287 2465 2 3 201 10 0 1383 1413 1241
4288 2466 2 3 201 10 0 1247 628 1458
4289 2467 2 3 201 10 0 1247 1458 1242
4290 2468 2 3 201 10 0 1406 631 1421
4291 2469 2 3 201 10 0 1406 1421 1243
4292 2470 2 3 201 10 0 1551 678 1488
4293 2471 2 3 201 10 0 1243 1551 1488
4294 2472 2 3 201 10 0 1385 1509 1245
4295 2473 2 3 201 10 0 1517 689 1389
4296 2474 2 3 201 10 0 1245 1517 1389
4297 2475 2 3 201 10 0 1251 611 1458
4298 2476 2 3 201 10 0 1251 1458 1246
4299 2477 2 3 201 10 0 1289 642 1359
4300 2478 2 3 201 10 0 1289 1359 1246
4301 2479 2 3 201 10 0 1523 210 1329
4302 2480 2 3 201 10 0 1247 1523 1329
4303 2481 2 3 201 10 0 1267 599 1445
4304 2482 2 3 201 10 0 1267 1445 1248
4305 2483 2 3 201 10 0 1354 685 1497
4306 2484 2 3 201 10 0 1354 1497 1248
4307 2485 2 3 201 10 0 1472 343 1392
4308 2486 2 3 201 10 0 1249 1472 1392
4309 2487 2 3 201 10 0 1400 332 1513
4310 2488 2 3 201 10 0 1400 1513 1250
4311 2489 2 3 201 10 0 1252 592 1477
4312 2490 2 3 201 10 0 1252 1477 1250
4313 2491 2 3 201 10 0 1427 647 1339
4314 2492 2 3 201 10 0 1253 1427 1339
4315 2493 2 3 201 10 0 1463 669 1345
4316 2494 2 3 201 10 0 1253 1463 1345
4317 2495 2 3 201 10 0 1278 639 1291
4318 2496 2 3 201 10 0 1278 1291 1254
4319 2497 2 3 201 10 0 1266 658 1369
4320 2498 2 3 201 10 0 1266 1369 1254
4321 2499 2 3 201 10 0 1444 634 1355
4322 2500 2 3 201 10 0 1257 1444 1355
4323 2501 2 3 201 10 0 1529 696 1260
4324 2502 2 3 201 10 0 1257 1529 1260
4325 2503 2 3 201 10 0 1352 642 1280
4326 2504 2 3 201 10 0 1261 1352 1280
4327 2505 2 3 201 10 0 1463 330 1357
4328 2506 2 3 201 10 0 1262 1463 1357
4329 2507 2 3 201 10 0 1527 619 1351
4330 2508 2 3 201 10 0 1262 1527 1351
4331 2509 2 3 201 10 0 1368 601 1271
4332 2510 2 3 201 10 0 1263 1368 1271
4333 2511 2 3 201 10 0 1369 658 1324
4334 2512 2 3 201 10 0 1263 1369 1324
4335 2513 2 3 201 10 0 1530 662 1337
4336 2514 2 3 201 10 0 1264 1530 1337
4337 2515 2 3 201 10 0 1523 687 1330
4338 2516 2 3 201 10 0 1264 1523 1330
4339 2517 2 3 201 10 0 1305 307 1497
4340 2518 2 3 201 10 0 1305 1497 1265
4341 2519 2 3 201 10 0 1391 615 1496
4342 2520 2 3 201 10 0 1391 1496 1265
4343 2521 2 3 201 10 0 1347 614 1298
4344 2522 2 3 201 10 0 1266 1347 1298
4345 2523 2 3 201 10 0 1338 649 1524
4346 2524 2 3 201 10 0 1338 1524 1269
4347 2525 2 3 201 10 0 1382 697 1531
4348 2526 2 3 201 10 0 1382 1531 1269
4349 2527 2 3 201 10 0 1274 600 1275
4350 2528 2 3 201 10 0 1274 1275 1272
4351 2529 2 3 201 10 0 1453 665 1310
4352 2530 2 3 201 10 0 1273 1453 1310
4353 2531 2 3 201 10 0 1478 630 1297
4354 2532 2 3 201 10 0 1277 1478 1297
4355 2533 2 3 201 10 0 1451 1593 1277
4356 2534 2 3 201 10 0 1327 626 1284
4357 2535 2 3 201 10 0 1278 1327 1284
4358 2536 2 3 201 10 0 1279 1536 1499
4359 2537 2 3 201 10 0 1289 628 1402
4360 2538 2 3 201 10 0 1289 1402 1280
4361 2539 2 3 201 10 0 1506 707 1363
4362 2540 2 3 201 10 0 1281 1506 1363
4363 2541 2 3 201 10 0 1338 304 1532
4364 2542 2 3 201 10 0 1338 1532 1285
4365 2543 2 3 201 10 0 1307 646 1501
4366 2544 2 3 201 10 0 1307 1501 1285
4367 2545 2 3 201 10 0 1527 646 1350
4368 2546 2 3 201 10 0 1286 1527 1350
4369 2547 2 3 201 10 0 1482 681 1411
4370 2548 2 3 201 10 0 1286 1482 1411
4371 2549 2 3 201 10 0 1500 652 1442
4372 2550 2 3 201 10 0 1287 1500 1442
4373 2551 2 3 201 10 0 1548 698 1320
4374 2552 2 3 201 10 0 1287 1548 1320
4375 2553 2 3 201 10 0 1352 306 1303
4376 2554 2 3 201 10 0 1288 1352 1303
4377 2555 2 3 201 10 0 1292 1580 1295
4378 2556 2 3 201 10 0 1312 210 1395
4379 2557 2 3 201 10 0 1312 1395 1294
4380 2558 2 3 201 10 0 1341 594 1319
4381 2559 2 3 201 10 0 1294 1341 1319
4382 2560 2 3 201 10 0 1335 319 1487
4383 2561 2 3 201 10 0 1335 1487 1298
4384 2562 2 3 201 10 0 1555 326 1456
4385 2563 2 3 201 10 0 1299 1555 1456
4386 2564 2 3 201 10 0 1476 619 1411
4387 2565 2 3 201 10 0 1299 1476 1411
4388 2566 2 3 201 10 0 1325 627 1332
4389 2567 2 3 201 10 0 1325 1332 1300
4390 2568 2 3 201 10 0 1482 308 1355
4391 2569 2 3 201 10 0 1302 1482 1355
4392 2570 2 3 201 10 0 1569 641 1474
4393 2571 2 3 201 10 0 1302 1569 1474
4394 2572 2 3 201 10 0 1682 663 1333
4395 2573 2 3 201 10 0 1306 1682 1333
4396 2574 2 3 201 10 0 1398 679 1538
4397 2575 2 3 201 10 0 1398 1538 1306
4398 2576 2 3 201 10 0 1529 308 1350
4399 2577 2 3 201 10 0 1307 1529 1350
4400 2578 2 3 201 10 0 1512 717 1461
4401 2579 2 3 201 10 0 1454 671 1556
4402 2580 2 3 201 10 0 1454 1556 1308
4403 2581 2 3 201 10 0 1322 635 1513
4404 2582 2 3 201 10 0 1322 1513 1308
4405 2583 2 3 201 10 0 1328 343 1472
4406 2584 2 3 201 10 0 1328 1472 1311
4407 2585 2 3 201 10 0 1402 628 1329
4408 2586 2 3 201 10 0 1312 1402 1329
4409 2587 2 3 201 10 0 1332 627 1525
4410 2588 2 3 201 10 0 1332 1525 1313
4411 2589 2 3 201 10 0 1620 680 1403
4412 2590 2 3 201 10 0 1313 1620 1403
4413 2591 2 3 201 10 0 1375 330 1468
4414 2592 2 3 201 10 0 1375 1468 1314
4415 2593 2 3 201 10 0 1410 612 1524
4416 2594 2 3 201 10 0 1410 1524 1314
4417 2595 2 3 201 10 0 1503 670 1456
4418 2596 2 3 201 10 0 1315 1503 1456
4419 2597 2 3 201 10 0 1554 688 1486
4420 2598 2 3 201 10 0 1315 1554 1486
4421 2599 2 3 201 10 0 1346 304 1531
4422 2600 2 3 201 10 0 1346 1531 1316
4423 2601 2 3 201 10 0 1485 648 1594
4424 2602 2 3 201 10 0 1485 1594 1316
4425 2603 2 3 201 10 0 1493 706 1543
4426 2604 2 3 201 10 0 1493 1543 1317
4427 2605 2 3 201 10 0 1644 693 1481
4428 2606 2 3 201 10 0 1317 1644 1481
4429 2607 2 3 201 10 0 1564 310 1442
4430 2608 2 3 201 10 0 1318 1564 1442
4431 2609 2 3 201 10 0 1495 613 1486
4432 2610 2 3 201 10 0 1318 1495 1486
4433 2611 2 3 201 10 0 1342 605 1510
4434 2612 2 3 201 10 0 1342 1510 1320
4435 2613 2 3 201 10 0 1401 667 1498
4436 2614 2 3 201 10 0 1401 1498 1324
4437 2615 2 3 201 10 0 1370 614 1371
4438 2616 2 3 201 10 0 1370 1371 1325
4439 2617 2 3 201 10 0 1498 667 1440
4440 2618 2 3 201 10 0 1328 1498 1440
4441 2619 2 3 201 10 0 1578 684 1449
4442 2620 2 3 201 10 0 1333 1578 1449
4443 2621 2 3 201 10 0 1449 684 1407
4444 2622 2 3 201 10 0 1334 1449 1407
4445 2623 2 3 201 10 0 1370 633 1434
4446 2624 2 3 201 10 0 1370 1434 1335
4447 2625 2 3 201 10 0 1358 621 1395
4448 2626 2 3 201 10 0 1358 1395 1337
4449 2627 2 3 201 10 0 1393 660 1468
4450 2628 2 3 201 10 0 1393 1468 1339
4451 2629 2 3 201 10 0 1391 685 1560
4452 2630 2 3 201 10 0 1391 1560 1340
4453 2631 2 3 201 10 0 1581 313 1344
4454 2632 2 3 201 10 0 1342 1581 1344
4455 2633 2 3 201 10 0 1427 597 1349
4456 2634 2 3 201 10 0 1343 1427 1349
4457 2635 2 3 201 10 0 1424 654 1568
4458 2636 2 3 201 10 0 1424 1568 1344
4459 2637 2 3 201 10 0 1438 677 1431
4460 2638 2 3 201 10 0 1348 1438 1431
4461 2639 2 3 201 10 0 1556 671 1372
4462 2640 2 3 201 10 0 1354 1556 1372
4463 2641 2 3 201 10 0 1375 649 1501
4464 2642 2 3 201 10 0 1375 1501 1357
4465 2643 2 3 201 10 0 1616 665 1453
4466 2644 2 3 201 10 0 1358 1616 1453
4467 2645 2 3 201 10 0 1586 664 1419
4468 2646 2 3 201 10 0 1361 1586 1419
4469 2647 2 3 201 10 0 1470 645 1420
4470 2648 2 3 201 10 0 1362 1470 1420
4471 2649 2 3 201 10 0 1467 677 1438
4472 2650 2 3 201 10 0 1364 1467 1438
4473 2651 2 3 201 10 0 1491 699 1669
4474 2652 2 3 201 10 0 1491 1669 1364
4475 2653 2 3 201 10 0 1508 323 1614
4476 2654 2 3 201 10 0 1508 1614 1365
4477 2655 2 3 201 10 0 1382 612 1540
4478 2656 2 3 201 10 0 1382 1540 1365
4479 2657 2 3 201 10 0 1398 217 1381
4480 2658 2 3 201 10 0 1367 1398 1381
4481 2659 2 3 201 10 0 1393 647 1528
4482 2660 2 3 201 10 0 1393 1528 1367
4483 2661 2 3 201 10 0 1484 316 1560
4484 2662 2 3 201 10 0 1484 1560 1372
4485 2663 2 3 201 10 0 1595 703 1537
4486 2664 2 3 201 10 0 1374 1595 1537
4487 2665 2 3 201 10 0 1555 681 1474
4488 2666 2 3 201 10 0 1374 1555 1474
4489 2667 2 3 201 10 0 1568 654 1426
4490 2668 2 3 201 10 0 1376 1568 1426
4491 2669 2 3 201 10 0 1569 634 1392
4492 2670 2 3 201 10 0 1377 1569 1392
4493 2671 2 3 201 10 0 1570 741 1520
4494 2672 2 3 201 10 0 1377 1570 1520
4495 2673 2 3 201 10 0 1400 636 1594
4496 2674 2 3 201 10 0 1400 1594 1379
4497 2675 2 3 201 10 0 1514 735 1612
4498 2676 2 3 201 10 0 1514 1612 1379
4499 2677 2 3 201 10 0 1435 313 1581
4500 2678 2 3 201 10 0 1435 1581 1380
4501 2679 2 3 201 10 0 1394 650 1574
4502 2680 2 3 201 10 0 1394 1574 1380
4503 2681 2 3 201 10 0 1505 659 1414
4504 2682 2 3 201 10 0 1386 1505 1414
4505 2683 2 3 201 10 0 1457 659 1505
4506 2684 2 3 201 10 0 1457 1505 1387
4507 2685 2 3 201 10 0 1390 677 1544
4508 2686 2 3 201 10 0 1390 1544 1387
4509 2687 2 3 201 10 0 1404 645 1405
4510 2688 2 3 201 10 0 1404 1405 1389
4511 2689 2 3 201 10 0 1550 625 1431
4512 2690 2 3 201 10 0 1390 1550 1431
4513 2691 2 3 201 10 0 1548 310 1415
4514 2692 2 3 201 10 0 1394 1548 1415
4515 2693 2 3 201 10 0 1435 668 1576
4516 2694 2 3 201 10 0 1435 1576 1396
4517 2695 2 3 201 10 0 1479 728 1623
4518 2696 2 3 201 10 0 1479 1623 1396
4519 2697 2 3 201 10 0 1487 319 1443
4520 2698 2 3 201 10 0 1401 1487 1443
4521 2699 2 3 201 10 0 1565 632 1420
4522 2700 2 3 201 10 0 1404 1565 1420
4523 2701 2 3 201 10 0 1588 675 1602
4524 2702 2 3 201 10 0 1588 1602 1407
4525 2703 2 3 201 10 0 1436 327 1544
4526 2704 2 3 201 10 0 1436 1544 1408
4527 2705 2 3 201 10 0 1467 643 1576
4528 2706 2 3 201 10 0 1467 1576 1408
4529 2707 2 3 201 10 0 1608 650 1415
4530 2708 2 3 201 10 0 1409 1608 1415
4531 2709 2 3 201 10 0 1564 688 1522
4532 2710 2 3 201 10 0 1409 1564 1522
4533 2711 2 3 201 10 0 1473 319 1434
4534 2712 2 3 201 10 0 1414 1473 1434
4535 2713 2 3 201 10 0 1554 326 1537
4536 2714 2 3 201 10 0 1417 1554 1537
4537 2715 2 3 201 10 0 1635 674 1522
4538 2716 2 3 201 10 0 1417 1635 1522
4539 2717 2 3 201 10 0 1475 1715 1422
4540 2718 2 3 201 10 0 1623 728 1460
4541 2719 2 3 201 10 0 1424 1623 1460
4542 2720 2 3 201 10 0 1454 332 1612
4543 2721 2 3 201 10 0 1454 1612 1425
4544 2722 2 3 201 10 0 1430 342 1549
4545 2723 2 3 201 10 0 1430 1549 1426
4546 2724 2 3 201 10 0 1436 668 1574
4547 2725 2 3 201 10 0 1436 1574 1428
4548 2726 2 3 201 10 0 1502 719 1589
4549 2727 2 3 201 10 0 1502 1589 1428
4550 2728 2 3 201 10 0 1557 1642 1429
4551 2729 2 3 201 10 0 1485 697 1614
4552 2730 2 3 201 10 0 1485 1614 1429
4553 2731 2 3 201 10 0 1430 1600 1483
4554 2732 2 3 201 10 0 1439 706 1493
4555 2733 2 3 201 10 0 1439 1493 1432
4556 2734 2 3 201 10 0 1570 343 1440
4557 2735 2 3 201 10 0 1433 1570 1440
4558 2736 2 3 201 10 0 1478 640 1698
4559 2737 2 3 201 10 0 1478 1698 1439
4560 2738 2 3 201 10 0 1455 700 1563
4561 2739 2 3 201 10 0 1455 1563 1443
4562 2740 2 3 201 10 0 1484 671 1599
4563 2741 2 3 201 10 0 1484 1599 1447
4564 2742 2 3 201 10 0 1462 664 1613
4565 2743 2 3 201 10 0 1473 659 1546
4566 2744 2 3 201 10 0 1473 1546 1455
4567 2745 2 3 201 10 0 1589 719 1464
4568 2746 2 3 201 10 0 1457 1589 1464
4569 2747 2 3 201 10 0 1567 700 1546
4570 2748 2 3 201 10 0 1464 1567 1546
4571 2749 2 3 201 10 0 1549 342 1516
4572 2750 2 3 201 10 0 1465 1549 1516
4573 2751 2 3 201 10 0 1671 664 1586
4574 2752 2 3 201 10 0 1465 1671 1586
4575 2753 2 3 201 10 0 1547 640 1593
4576 2754 2 3 201 10 0 1633 690 1713
4577 2755 2 3 201 10 0 1633 1713 1475
4578 2756 2 3 201 10 0 1643 759 1604
4579 2757 2 3 201 10 0 1481 1643 1604
4580 2758 2 3 201 10 0 1723 329 1617
4581 2759 2 3 201 10 0 1490 1723 1617
4582 2760 2 3 201 10 0 1530 604 1504
4583 2761 2 3 201 10 0 1490 1530 1504
4584 2762 2 3 201 10 0 1508 653 1602
4585 2763 2 3 201 10 0 1508 1602 1492
4586 2764 2 3 201 10 0 1566 724 1631
4587 2765 2 3 201 10 0 1566 1631 1492
4588 2766 2 3 201 10 0 1657 711 1686
4589 2767 2 3 201 10 0 1657 1686 1499
4590 2768 2 3 201 10 0 1608 674 1558
4591 2769 2 3 201 10 0 1502 1608 1558
4592 2770 2 3 201 10 0 1571 341 1572
4593 2771 2 3 201 10 0 1571 1572 1518
4594 2772 2 3 201 10 0 1670 672 1538
4595 2773 2 3 201 10 0 1518 1670 1538
4596 2774 2 3 201 10 0 1724 457 1716
4597 2775 2 3 201 10 0 1521 1724 1716
4598 2776 2 3 201 10 0 1535 1651 1525
4599 2777 2 3 201 10 0 1533 341 1571
4600 2778 2 3 201 10 0 1533 1571 1528
4601 2779 2 3 201 10 0 1638 721 1665
4602 2780 2 3 201 10 0 1638 1665 1539
4603 2781 2 3 201 10 0 1588 684 1676
4604 2782 2 3 201 10 0 1588 1676 1539
4605 2783 2 3 201 10 0 1659 338 1676
4606 2784 2 3 201 10 0 1659 1676 1542
4607 2785 2 3 201 10 0 1601 1664 1545
4608 2786 2 3 201 10 0 1557 323 1631
4609 2787 2 3 201 10 0 1557 1631 1552
4610 2788 2 3 201 10 0 1598 710 1696
4611 2789 2 3 201 10 0 1598 1696 1552
4612 2790 2 3 201 10 0 1596 335 1687
4613 2791 2 3 201 10 0 1596 1687 1561
4614 2792 2 3 201 10 0 1566 675 1665
4615 2793 2 3 201 10 0 1566 1665 1561
4616 2794 2 3 201 10 0 1616 662 1617
4617 2795 2 3 201 10 0 1591 691 1733
4618 2796 2 3 201 10 0 1591 1733 1572
4619 2797 2 3 201 10 0 1613 664 1671
4620 2798 2 3 201 10 0 1613 1671 1579
4621 2799 2 3 201 10 0 1598 724 1687
4622 2800 2 3 201 10 0 1598 1687 1584
4623 2801 2 3 201 10 0 1697 706 1698
4624 2802 2 3 201 10 0 1697 1698 1585
4625 2803 2 3 201 10 0 1620 1626 1601
4626 2804 2 3 201 10 0 1646 663 1682
4627 2805 2 3 201 10 0 1644 720 1632
4628 2806 2 3 201 10 0 1619 1644 1632
4629 2807 2 3 201 10 0 1710 158 1637
4630 2808 2 3 201 10 0 1635 1710 1637
4631 2809 2 3 201 10 0 1696 710 1684
4632 2810 2 3 201 10 0 1673 1696 1684
4633 2811 2 3 201 10 0 1712 1713 1685
4634 2812 2 3 201 10 0 1723 716 1705
4635 2813 2 3 201 10 0 58 967 57
4636 2814 2 3 201 10 0 1662 58 1154
4637 2815 2 3 201 10 0 967 58 1662
4638 2816 2 3 201 10 0 27 795 1027
4639 2817 2 3 201 10 0 1150 401 382
4640 2818 2 3 201 10 0 382 260 1150
4641 2819 2 3 201 10 0 1150 260 518
4642 2820 2 3 201 10 0 518 1084 1150
4643 2821 2 3 201 10 0 60 1582 59
4644 2822 2 3 201 10 0 59 1582 1154
4645 2823 2 3 201 10 0 1639 1516 342
4646 2824 2 3 201 10 0 746 1516 1639
4647 2825 2 3 201 10 0 1639 705 746
4648 2826 2 3 201 10 0 84 1694 83
4649 2827 2 3 201 10 0 83 1694 1054
4650 2828 2 3 201 10 0 270 570 1711
4651 2829 2 3 201 10 0 1711 977 270
4652 2830 2 3 201 10 0 1711 570 1031
4653 2831 2 3 201 10 0 122 1688 121
4654 2832 2 3 201 10 0 121 1688 1051
4655 2833 2 3 201 10 0 46 1689 45
4656 2834 2 3 201 10 0 45 1689 1052
4657 2835 2 3 201 10 0 8 1653 7
4658 2836 2 3 201 10 0 7 1653 1056
4659 2837 2 3 201 10 0 1704 348 899
4660 2838 2 3 201 10 0 1672 714 1699
4661 2839 2 3 201 10 0 899 348 1672
4662 2840 2 3 201 10 0 1702 138 139
4663 2841 2 3 201 10 0 139 1016 1702
4664 2842 2 3 201 10 0 883 138 1702
4665 2843 2 3 201 10 0 1607 22 23
4666 2844 2 3 201 10 0 23 1259 1607
4667 2845 2 3 201 10 0 1607 1259 638
4668 2846 2 3 201 10 0 21 22 1607
4669 2847 2 3 201 10 0 21 1607 1461
4670 2848 2 3 201 10 0 1512 1607 638
4671 2849 2 3 201 10 0 1607 1512 1461
4672 2850 2 3 201 10 0 1678 97 98
4673 2851 2 3 201 10 0 1678 98 1577
4674 2852 2 3 201 10 0 1509 1678 1577
4675 2853 2 3 201 10 0 1666 62 63
4676 2854 2 3 201 10 0 63 542 1666
4677 2855 2 3 201 10 0 1666 542 778
4678 2856 2 3 201 10 0 1714 1108 51
4679 2857 2 3 201 10 0 951 1108 1714
4680 2858 2 3 201 10 0 1015 952 1075
4681 2859 2 3 201 10 0 952 1015 987
4682 2860 2 3 201 10 0 1015 984 987
4683 2861 2 3 201 10 0 808 1483 1677
4684 2862 2 3 201 10 0 1677 212 808
4685 2863 2 3 201 10 0 1706 185 182
4686 2864 2 3 201 10 0 182 178 1706
4687 2865 2 3 201 10 0 507 1706 470
4688 2866 2 3 201 10 0 507 185 1706
4689 2867 2 3 201 10 0 402 1650 1648
4690 2868 2 3 201 10 0 1085 974 1017
4691 2869 2 3 201 10 0 1701 336 1579
4692 2870 2 3 201 10 0 1701 942 799
4693 2871 2 3 201 10 0 799 825 1701
4694 2872 2 3 201 10 0 942 1701 1579
4695 2873 2 3 201 10 0 331 1534 1590
4696 2874 2 3 201 10 0 752 743 1590
4697 2875 2 3 201 10 0 1106 389 1055
4698 2876 2 3 201 10 0 1106 1055 1132
4699 2877 2 3 201 10 0 1136 765 879
4700 2878 2 3 201 10 0 1136 879 866
4701 2879 2 3 201 10 0 866 879 962
4702 2880 2 3 201 10 0 152 540 1131
4703 2881 2 3 201 10 0 1131 540 276
4704 2882 2 3 201 10 0 76 539 1134
4705 2883 2 3 201 10 0 1134 539 279
4706 2884 2 3 201 10 0 606 1224 1609
4707 2885 2 3 201 10 0 1723 1719 329
4708 2886 2 3 201 10 0 761 762 1719
4709 2887 2 3 201 10 0 761 1719 1705
4710 2888 2 3 201 10 0 1719 1723 1705
4711 2889 2 3 201 10 0 1039 1128 1138
4712 2890 2 3 201 10 0 1079 1138 1128
4713 2891 2 3 201 10 0 173 1147 1117
4714 2892 2 3 201 10 0 1117 1093 173
4715 2893 2 3 201 10 0 1117 1147 468
4716 2894 2 3 201 10 0 268 572 528
4717 2895 2 3 201 10 0 572 279 515
4718 2896 2 3 201 10 0 515 528 572
4719 2897 2 3 201 10 0 1708 1340 316
4720 2898 2 3 201 10 0 758 1340 1708
4721 2899 2 3 201 10 0 1708 755 758
4722 2900 2 3 201 10 0 266 574 527
4723 2901 2 3 201 10 0 574 276 514
4724 2902 2 3 201 10 0 514 527 574
4725 2903 2 3 201 10 0 1646 794 328
4726 2904 2 3 201 10 0 1646 328 1729
4727 2905 2 3 201 10 0 1646 733 663
4728 2906 2 3 201 10 0 1646 1729 733
4729 2907 2 3 201 10 0 1096 849 1107
4730 2908 2 3 201 10 0 1072 1096 1107
4731 2909 2 3 201 10 0 150 885 149
4732 2910 2 3 201 10 0 938 885 150
4733 2911 2 3 201 10 0 1683 758 349
4734 2912 2 3 201 10 0 349 1615 1683
4735 2913 2 3 201 10 0 1683 1615 615
4736 2914 2 3 201 10 0 379 732 1680
4737 2915 2 3 201 10 0 1647 379 1680
4738 2916 2 3 201 10 0 632 1565 1680
4739 2917 2 3 201 10 0 1565 1647 1680
4740 2918 2 3 201 10 0 16 972 15
4741 2919 2 3 201 10 0 129 130 1700
4742 2920 2 3 201 10 0 1700 793 129
4743 2921 2 3 201 10 0 1700 130 958
4744 2922 2 3 201 10 0 101 1177 100
4745 2923 2 3 201 10 0 894 1177 101
4746 2924 2 3 201 10 0 21 1461 20
4747 2925 2 3 201 10 0 20 1461 551
4748 2926 2 3 201 10 0 960 843 1135
4749 2927 2 3 201 10 0 960 1135 961
4750 2928 2 3 201 10 0 1135 1071 961
4751 2929 2 3 201 10 0 1024 880 447
4752 2930 2 3 201 10 0 447 260 1024
4753 2931 2 3 201 10 0 880 1024 917
4754 2932 2 3 201 10 0 1553 894 102
4755 2933 2 3 201 10 0 1690 1559 775
4756 2934 2 3 201 10 0 1697 1543 706
4757 2935 2 3 201 10 0 933 1543 1697
4758 2936 2 3 201 10 0 1697 324 933
4759 2937 2 3 201 10 0 716 1526 1705
4760 2938 2 3 201 10 0 760 761 1705
4761 2939 2 3 201 10 0 1611 760 1705
4762 2940 2 3 201 10 0 1526 1611 1705
4763 2941 2 3 201 10 0 953 790 231
4764 2942 2 3 201 10 0 953 386 1101
4765 2943 2 3 201 10 0 953 1101 790
4766 2944 2 3 201 10 0 1645 771 701
4767 2945 2 3 201 10 0 340 1060 1654
4768 2946 2 3 201 10 0 305 1204 1611
4769 2947 2 3 201 10 0 1611 1204 695
4770 2948 2 3 201 10 0 695 760 1611
4771 2949 2 3 201 10 0 89 90 925
4772 2950 2 3 201 10 0 1023 1109 1014
4773 2951 2 3 201 10 0 177 1034 1125
4774 2952 2 3 201 10 0 978 1034 177
4775 2953 2 3 201 10 0 978 391 1034
4776 2954 2 3 201 10 0 970 834 1061
4777 2955 2 3 201 10 0 1061 834 1062
4778 2956 2 3 201 10 0 1061 1100 970
4779 2957 2 3 201 10 0 334 1295 1641
4780 2958 2 3 201 10 0 714 770 1641
4781 2959 2 3 201 10 0 1699 714 1641
4782 2960 2 3 201 10 0 1295 1699 1641
4783 2961 2 3 201 10 0 1737 969 363
4784 2962 2 3 201 10 0 744 969 1737
4785 2963 2 3 201 10 0 1737 768 744
4786 2964 2 3 201 10 0 1669 699 1621
4787 2965 2 3 201 10 0 728 1479 1621
4788 2966 2 3 201 10 0 1621 345 728
4789 2967 2 3 201 10 0 1479 1669 1621
4790 2968 2 3 201 10 0 1622 1460 728
4791 2969 2 3 201 10 0 728 345 1622
4792 2970 2 3 201 10 0 1622 1600 1460
4793 2971 2 3 201 10 0 249 386 953
4794 2972 2 3 201 10 0 344 722 1562
4795 2973 2 3 201 10 0 1649 1562 589
4796 2974 2 3 201 10 0 738 847 1691
4797 2975 2 3 201 10 0 376 967 1735
4798 2976 2 3 201 10 0 1662 725 1735
4799 2977 2 3 201 10 0 1662 1735 967
4800 2978 2 3 201 10 0 1685 816 771
4801 2979 2 3 201 10 0 771 1645 1685
4802 2980 2 3 201 10 0 1664 1685 1645
4803 2981 2 3 201 10 0 958 131 1675
4804 2982 2 3 201 10 0 1675 844 958
4805 2983 2 3 201 10 0 1070 172 174
4806 2984 2 3 201 10 0 423 1070 1112
4807 2985 2 3 201 10 0 1070 174 1047
4808 2986 2 3 201 10 0 1070 1047 1112
4809 2987 2 3 201 10 0 358 782 1038
4810 2988 2 3 201 10 0 358 1038 1018
4811 2989 2 3 201 10 0 57 817 56
4812 2990 2 3 201 10 0 967 817 57
4813 2991 2 3 201 10 0 1116 10 450
4814 2992 2 3 201 10 0 10 11 450
4815 2993 2 3 201 10 0 1727 375 764
4816 2994 2 3 201 10 0 1547 1727 764
4817 2995 2 3 201 10 0 1547 1593 1727
4818 2996 2 3 201 10 0 1731 370 836
4819 2997 2 3 201 10 0 676 657 1668
4820 2998 2 3 201 10 0 836 370 1668
4821 2999 2 3 201 10 0 836 1668 1655
4822 3000 2 3 201 10 0 1655 1668 657
4823 3001 2 3 201 10 0 1157 1066 501
4824 3002 2 3 201 10 0 1099 1066 1157
4825 3003 2 3 201 10 0 1692 757 337
4826 3004 2 3 201 10 0 337 1636 1692
4827 3005 2 3 201 10 0 1670 713 1692
4828 3006 2 3 201 10 0 1670 1692 1636
4829 3007 2 3 201 10 0 284 418 1583
4830 3008 2 3 201 10 0 284 1583 578
4831 3009 2 3 201 10 0 578 1583 143
4832 3010 2 3 201 10 0 164 1086 1113
4833 3011 2 3 201 10 0 1009 1086 164
4834 3012 2 3 201 10 0 1009 785 1086
4835 3013 2 3 201 10 0 1113 1086 980
4836 3014 2 3 201 10 0 1627 734 693
4837 3015 2 3 201 10 0 1619 1627 693
4838 3016 2 3 201 10 0 804 1627 1619
4839 3017 2 3 201 10 0 1153 139 140
4840 3018 2 3 201 10 0 139 1153 1016
4841 3019 2 3 201 10 0 366 1008 975
4842 3020 2 3 201 10 0 1008 931 455
4843 3021 2 3 201 10 0 971 1008 455
4844 3022 2 3 201 10 0 971 975 1008
4845 3023 2 3 201 10 0 1680 1575 632
4846 3024 2 3 201 10 0 1721 1709 748
4847 3025 2 3 201 10 0 672 1636 1682
4848 3026 2 3 201 10 0 1636 337 794
4849 3027 2 3 201 10 0 1491 797 401
4850 3028 2 3 201 10 0 401 699 1491
4851 3029 2 3 201 10 0 1107 452 265
4852 3030 2 3 201 10 0 1080 110 443
4853 3031 2 3 201 10 0 443 378 1080
4854 3032 2 3 201 10 0 109 1080 522
4855 3033 2 3 201 10 0 109 110 1080
4856 3034 2 3 201 10 0 68 475 67
4857 3035 2 3 201 10 0 552 475 68
4858 3036 2 3 201 10 0 1702 1016 357
4859 3037 2 3 201 10 0 357 1559 1702
4860 3038 2 3 201 10 0 1702 1559 883
4861 3039 2 3 201 10 0 1065 229 374
4862 3040 2 3 201 10 0 1118 1065 374
4863 3041 2 3 201 10 0 498 229 1065
4864 3042 2 3 201 10 0 1661 1652 804
4865 3043 2 3 201 10 0 1563 700 1663
4866 3044 2 3 201 10 0 741 1433 1663
4867 3045 2 3 201 10 0 1663 158 741
4868 3046 2 3 201 10 0 1563 1663 1433
4869 3047 2 3 201 10 0 1710 703 1595
4870 3048 2 3 201 10 0 1710 1520 741
4871 3049 2 3 201 10 0 741 158 1710
4872 3050 2 3 201 10 0 1710 1595 1520
4873 3051 2 3 201 10 0 344 1562 1722
4874 3052 2 3 201 10 0 682 749 1722
4875 3053 2 3 201 10 0 1649 682 1722
4876 3054 2 3 201 10 0 1562 1649 1722
4877 3055 2 3 201 10 0 218 1348 1573
4878 3056 2 3 201 10 0 711 730 1573
4879 3057 2 3 201 10 0 1686 711 1573
4880 3058 2 3 201 10 0 1348 1686 1573
4881 3059 2 3 201 10 0 132 1675 131
4882 3060 2 3 201 10 0 676 753 1628
4883 3061 2 3 201 10 0 1628 1326 676
4884 3062 2 3 201 10 0 1628 707 1506
4885 3063 2 3 201 10 0 1326 1628 1506
4886 3064 2 3 201 10 0 198 202 1077
4887 3065 2 3 201 10 0 1077 1145 198
4888 3066 2 3 201 10 0 285 280 1077
4889 3067 2 3 201 10 0 1077 280 1145
4890 3068 2 3 201 10 0 1610 1385 315
4891 3069 2 3 201 10 0 1610 694 738
4892 3070 2 3 201 10 0 1610 738 1691
4893 3071 2 3 201 10 0 1610 1691 1385
4894 3072 2 3 201 10 0 1103 939 212
4895 3073 2 3 201 10 0 1103 474 990
4896 3074 2 3 201 10 0 939 1103 990
4897 3075 2 3 201 10 0 212 783 1103
4898 3076 2 3 201 10 0 1103 783 417
4899 3077 2 3 201 10 0 1048 749 812
4900 3078 2 3 201 10 0 947 1048 812
4901 3079 2 3 201 10 0 1050 1048 947
4902 3080 2 3 201 10 0 104 1160 103
4903 3081 2 3 201 10 0 331 1310 1534
4904 3082 2 3 201 10 0 1310 1734 1534
4905 3083 2 3 201 10 0 1604 1211 318
4906 3084 2 3 201 10 0 690 1211 1604
4907 3085 2 3 201 10 0 1604 759 690
4908 3086 2 3 201 10 0 976 718 895
4909 3087 2 3 201 10 0 895 751 907
4910 3088 2 3 201 10 0 959 895 907
4911 3089 2 3 201 10 0 976 895 959
4912 3090 2 3 201 10 0 735 1514 1673
4913 3091 2 3 201 10 0 1673 157 735
4914 3092 2 3 201 10 0 1514 1642 1673
4915 3093 2 3 201 10 0 1624 686 1599
4916 3094 2 3 201 10 0 1624 1425 735
4917 3095 2 3 201 10 0 735 157 1624
4918 3096 2 3 201 10 0 1624 1599 1425
4919 3097 2 3 201 10 0 1659 767 338
4920 3098 2 3 201 10 0 767 1659 1709
4921 3099 2 3 201 10 0 201 204 1073
4922 3100 2 3 201 10 0 1073 1133 201
4923 3101 2 3 201 10 0 287 281 1073
4924 3102 2 3 201 10 0 1073 281 1133
4925 3103 2 3 201 10 0 329 813 1618
4926 3104 2 3 201 10 0 329 1618 1617
4927 3105 2 3 201 10 0 1616 1618 665
4928 3106 2 3 201 10 0 1616 1617 1618
4929 3107 2 3 201 10 0 657 1255 1592
4930 3108 2 3 201 10 0 1412 678 1592
4931 3109 2 3 201 10 0 1412 1592 1255
4932 3110 2 3 201 10 0 970 1144 963
4933 3111 2 3 201 10 0 970 1139 1144
4934 3112 2 3 201 10 0 1069 1144 1139
4935 3113 2 3 201 10 0 1111 490 555
4936 3114 2 3 201 10 0 1057 490 1111
4937 3115 2 3 201 10 0 1045 1111 564
4938 3116 2 3 201 10 0 1057 1111 1045
4939 3117 2 3 201 10 0 200 205 1068
4940 3118 2 3 201 10 0 1068 1120 200
4941 3119 2 3 201 10 0 288 282 1068
4942 3120 2 3 201 10 0 1068 282 1120
4943 3121 2 3 201 10 0 199 203 1067
4944 3122 2 3 201 10 0 1067 1119 199
4945 3123 2 3 201 10 0 286 283 1067
4946 3124 2 3 201 10 0 1067 283 1119
4947 3125 2 3 201 10 0 1658 1304 311
4948 3126 2 3 201 10 0 1658 722 754
4949 3127 2 3 201 10 0 1658 754 1681
4950 3128 2 3 201 10 0 1658 1681 1304
4951 3129 2 3 201 10 0 965 392 1095
4952 3130 2 3 201 10 0 965 1095 937
4953 3131 2 3 201 10 0 937 1095 991
4954 3132 2 3 201 10 0 1095 977 991
4955 3133 2 3 201 10 0 899 1005 1704
4956 3134 2 3 201 10 0 854 221 1143
4957 3135 2 3 201 10 0 1143 221 1632
4958 3136 2 3 201 10 0 933 1143 720
4959 3137 2 3 201 10 0 1143 1632 720
4960 3138 2 3 201 10 0 1630 1180 214
4961 3139 2 3 201 10 0 1630 729 726
4962 3140 2 3 201 10 0 1630 726 682
4963 3141 2 3 201 10 0 682 1180 1630
4964 3142 2 3 201 10 0 1094 259 454
4965 3143 2 3 201 10 0 485 259 1094
4966 3144 2 3 201 10 0 947 788 1703
4967 3145 2 3 201 10 0 1703 788 997
4968 3146 2 3 201 10 0 1703 919 947
4969 3147 2 3 201 10 0 997 998 1703
4970 3148 2 3 201 10 0 958 844 901
4971 3149 2 3 201 10 0 923 901 844
4972 3150 2 3 201 10 0 901 1700 958
4973 3151 2 3 201 10 0 1158 168 175
4974 3152 2 3 201 10 0 168 1158 1081
4975 3153 2 3 201 10 0 1010 1158 175
4976 3154 2 3 201 10 0 1158 855 1081
4977 3155 2 3 201 10 0 113 114 1156
4978 3156 2 3 201 10 0 1717 782 702
4979 3157 2 3 201 10 0 514 1145 192
4980 3158 2 3 201 10 0 192 1145 511
4981 3159 2 3 201 10 0 198 1145 514
4982 3160 2 3 201 10 0 151 152 1131
4983 3161 2 3 201 10 0 1131 938 151
4984 3162 2 3 201 10 0 410 938 1131
4985 3163 2 3 201 10 0 75 76 1134
4986 3164 2 3 201 10 0 1134 936 75
4987 3165 2 3 201 10 0 409 936 1134
4988 3166 2 3 201 10 0 303 802 1741
4989 3167 2 3 201 10 0 1005 899 1741
4990 3168 2 3 201 10 0 1741 802 1005
4991 3169 2 3 201 10 0 1742 452 1107
4992 3170 2 3 201 10 0 1742 927 1127
4993 3171 2 3 201 10 0 1127 452 1742
4994 3172 2 3 201 10 0 1107 927 1742
4995 3173 2 3 201 10 0 1636 794 1743
4996 3174 2 3 201 10 0 1646 1682 1743
4997 3175 2 3 201 10 0 1743 794 1646
4998 3176 2 3 201 10 0 1743 1682 1636
4999 3177 2 3 201 10 0 31 1634 1745
5000 3178 2 3 201 10 0 1745 1634 420
5001 3179 2 3 201 10 0 469 408 1746
5002 3180 2 3 201 10 0 1023 1130 1746
5003 3181 2 3 201 10 0 1746 408 1023
5004 3182 2 3 201 10 0 1746 1130 469
5005 3183 2 3 201 10 0 1747 114 538
5006 3184 2 3 201 10 0 1156 114 1747
5007 3185 2 3 201 10 0 538 278 1747
5008 3186 2 3 201 10 0 1749 708 406
5009 3187 2 3 201 10 0 1038 782 1750
5010 3188 2 3 201 10 0 1750 392 1038
5011 3189 2 3 201 10 0 226 1169 1751
5012 3190 2 3 201 10 0 1159 1172 1751
5013 3191 2 3 201 10 0 1751 1169 1159
5014 3192 2 3 201 10 0 1751 1172 226
5015 3193 2 3 201 10 0 483 249 1752
5016 3194 2 3 201 10 0 1752 249 953
5017 3195 2 3 201 10 0 1752 520 483
5018 3196 2 3 201 10 0 1674 766 1753
5019 3197 2 3 201 10 0 1127 1739 1754
5020 3198 2 3 201 10 0 1754 277 1127
5021 3199 2 3 201 10 0 1756 1632 221
5022 3200 2 3 201 10 0 804 1632 1756
5023 3201 2 3 201 10 0 1757 1721 748
5024 3202 2 3 201 10 0 1758 972 16
5025 3203 2 3 201 10 0 426 972 1758
5026 3204 2 3 201 10 0 836 1655 1759
5027 3205 2 3 201 10 0 1759 1655 219
5028 3206 2 3 201 10 0 226 1207 1762
5029 3207 2 3 201 10 0 1762 1207 1161
5030 3208 2 3 201 10 0 747 1575 1763
5031 3209 2 3 201 10 0 219 1655 1763
5032 3210 2 3 201 10 0 1764 312 704
5033 3211 2 3 201 10 0 1764 1618 813
5034 3212 2 3 201 10 0 813 312 1764
5035 3213 2 3 201 10 0 1491 218 1765
5036 3214 2 3 201 10 0 1573 797 1765
5037 3215 2 3 201 10 0 1765 218 1573
5038 3216 2 3 201 10 0 1765 797 1491
5039 3217 2 3 201 10 0 1766 780 801
5040 3218 2 3 201 10 0 801 492 1766
5041 3219 2 3 201 10 0 786 780 1766
5042 3220 2 3 201 10 0 1767 341 1533
5043 3221 2 3 201 10 0 1533 1343 1767
5044 3222 2 3 201 10 0 1768 731 752
5045 3223 2 3 201 10 0 1768 1590 1534
5046 3224 2 3 201 10 0 1534 731 1768
5047 3225 2 3 201 10 0 752 1590 1768
5048 3226 2 3 201 10 0 1714 52 1769
5049 3227 2 3 201 10 0 274 280 1770
5050 3228 2 3 201 10 0 495 1116 1770
5051 3229 2 3 201 10 0 1770 280 495
5052 3230 2 3 201 10 0 1770 1116 274
5053 3231 2 3 201 10 0 800 340 1771
5054 3232 2 3 201 10 0 1771 340 1654
5055 3233 2 3 201 10 0 589 1188 1772
5056 3234 2 3 201 10 0 1180 1649 1772
5057 3235 2 3 201 10 0 1772 1188 1180
5058 3236 2 3 201 10 0 1772 1649 589
5059 3237 2 3 201 10 0 1773 748 1695
5060 3238 2 3 201 10 0 278 573 1774
5061 3239 2 3 201 10 0 1156 1747 1774
5062 3240 2 3 201 10 0 1774 1747 278
5063 3241 2 3 201 10 0 1005 1025 1775
5064 3242 2 3 201 10 0 1775 1025 1089
5065 3243 2 3 201 10 0 657 1592 1776
5066 3244 2 3 201 10 0 1776 1592 747
5067 3245 2 3 201 10 0 1720 520 1777
5068 3246 2 3 201 10 0 394 918 1778
5069 3247 2 3 201 10 0 1778 918 1156
5070 3248 2 3 201 10 0 1778 573 394
5071 3249 2 3 201 10 0 1779 707 303
5072 3250 2 3 201 10 0 1363 707 1781
5073 3251 2 3 201 10 0 1781 1580 1363
5074 3252 2 3 201 10 0 1276 334 1782
5075 3253 2 3 201 10 0 1782 334 1641
5076 3254 2 3 201 10 0 1782 736 1276
5077 3255 2 3 201 10 0 853 227 1783
5078 3256 2 3 201 10 0 1143 933 1783
5079 3257 2 3 201 10 0 1783 227 1143
5080 3258 2 3 201 10 0 1783 933 853
5081 3259 2 3 201 10 0 886 897 1785
5082 3260 2 3 201 10 0 1786 701 723
5083 3261 2 3 201 10 0 1645 701 1786
5084 3262 2 3 201 10 0 1787 732 219
5085 3263 2 3 201 10 0 1787 1575 1680
5086 3264 2 3 201 10 0 1680 732 1787
5087 3265 2 3 201 10 0 1788 373 739
5088 3266 2 3 201 10 0 1036 373 1788
5089 3267 2 3 201 10 0 279 572 1789
5090 3268 2 3 201 10 0 409 1134 1789
5091 3269 2 3 201 10 0 1789 572 409
5092 3270 2 3 201 10 0 1789 1134 279
5093 3271 2 3 201 10 0 704 832 1791
5094 3272 2 3 201 10 0 731 1534 1791
5095 3273 2 3 201 10 0 1791 832 731
5096 3274 2 3 201 10 0 787 376 1792
5097 3275 2 3 201 10 0 1792 376 1735
5098 3276 2 3 201 10 0 37 38 1739
5099 3277 2 3 201 10 0 1559 357 1755
5100 3278 2 3 201 10 0 1559 1755 775
5101 3279 2 3 201 10 0 1774 573 1778
5102 3280 2 3 201 10 0 1774 1778 1156
5103 3281 2 3 201 10 0 135 136 1740
5104 3282 2 3 201 10 0 829 1748 1092
5105 3283 2 3 201 10 0 1787 219 1763
5106 3284 2 3 201 10 0 1575 1787 1763
5107 3285 2 3 201 10 0 1764 704 1734
5108 3286 2 3 201 10 0 1618 1764 1734
5109 3287 2 3 201 10 0 1781 707 1779
5110 3288 2 3 201 10 0 1759 219 737
5111 3289 2 3 201 10 0 1757 748 1773
5112 3290 2 3 201 10 0 54 55 1780
5113 3291 2 3 201 10 0 1769 52 53
5114 3292 2 3 201 10 0 770 736 1782
5115 3293 2 3 201 10 0 770 1782 1641
5116 3294 2 3 201 10 0 134 135 1753
5117 3295 2 3 201 10 0 134 1753 766
5118 3296 2 3 201 10 0 1734 704 1791
5119 3297 2 3 201 10 0 1734 1791 1534
5120 3298 2 3 201 10 0 1767 1343 644
5121 3299 2 3 201 10 0 1760 782 1717
5122 3300 2 3 201 10 0 1750 782 1760
5123 3301 2 3 201 10 0 747 1763 1776
5124 3302 2 3 201 10 0 1776 1763 1655
5125 3303 2 3 201 10 0 1655 657 1776
5126 3304 2 3 201 10 0 434 1720 1777
5127 3305 2 3 201 10 0 434 1777 1010
5128 3306 2 3 201 10 0 644 1276 1784
5129 3307 2 3 201 10 0 1784 1276 736
5130 3308 2 3 201 10 0 357 810 1755
5131 3309 2 3 201 10 0 1755 810 708
5132 3310 2 3 201 10 0 1744 231 806
5133 3311 2 3 201 10 0 806 712 1744
5134 3312 2 3 201 10 0 1790 1744 1105
5135 3313 2 3 201 10 0 231 1744 1790
5136 3314 2 3 201 10 0 17 484 1758
5137 3315 2 3 201 10 0 16 17 1758
5138 3316 2 3 201 10 0 1758 484 426
5139 3317 2 3 201 10 0 1762 1222 226
5140 3318 2 3 201 10 0 1164 1222 1762
5141 3319 2 3 201 10 0 1762 1161 1164
5142 3320 2 3 201 10 0 1744 712 855
5143 3321 2 3 201 10 0 1744 855 1158
5144 3322 2 3 201 10 0 1756 221 787
5145 3323 2 3 201 10 0 1756 787 1792
5146 3324 2 3 201 10 0 1756 1661 804
5147 3325 2 3 201 10 0 1756 1792 1661
5148 3326 2 3 201 10 0 1785 260 382
5149 3327 2 3 201 10 0 382 886 1785
5150 3328 2 3 201 10 0 1024 260 1785
5151 3329 2 3 201 10 0 1707 324 764
5152 3330 2 3 201 10 0 764 712 1707
5153 3331 2 3 201 10 0 1707 712 806
5154 3332 2 3 201 10 0 1679 346 1657
5155 3333 2 3 201 10 0 1657 1499 1679
5156 3334 2 3 201 10 0 1536 1679 1499
5157 3335 2 3 201 10 0 1095 392 1749
5158 3336 2 3 201 10 0 1749 406 1095
5159 3337 2 3 201 10 0 1749 392 1750
5160 3338 2 3 201 10 0 1605 368 751
5161 3339 2 3 201 10 0 751 673 1605
5162 3340 2 3 201 10 0 1605 673 778
5163 3341 2 3 201 10 0 1677 1483 1600
5164 3342 2 3 201 10 0 1677 1600 1622
5165 3343 2 3 201 10 0 680 745 1679
5166 3344 2 3 201 10 0 1679 1403 680
5167 3345 2 3 201 10 0 1403 1679 1536
5168 3346 2 3 201 10 0 10 1116 9
5169 3347 2 3 201 10 0 9 1116 495
5170 3348 2 3 201 10 0 365 1606 835
5171 3349 2 3 201 10 0 691 776 1606
5172 3350 2 3 201 10 0 215 1645 1786
5173 3351 2 3 201 10 0 1726 1786 723
5174 3352 2 3 201 10 0 1654 493 234
5175 3353 2 3 201 10 0 244 963 1730
5176 3354 2 3 201 10 0 537 464 1730
5177 3355 2 3 201 10 0 963 1144 1730
5178 3356 2 3 201 10 0 1144 537 1730
5179 3357 2 3 201 10 0 1699 1295 1580
5180 3358 2 3 201 10 0 1784 736 161
5181 3359 2 3 201 10 0 1784 161 1606
5182 3360 2 3 201 10 0 776 1784 1606
5183 3361 2 3 201 10 0 1790 520 1752
5184 3362 2 3 201 10 0 1777 520 1790
5185 3363 2 3 201 10 0 231 1790 953
5186 3364 2 3 201 10 0 1790 1752 953
5187 3365 2 3 201 10 0 1105 1777 1790
5188 3366 2 3 201 10 0 1596 814 335
5189 3367 2 3 201 10 0 702 814 1596
5190 3368 2 3 201 10 0 1596 721 702
5191 3369 2 3 201 10 0 336 694 1597
5192 3370 2 3 201 10 0 336 1597 1613
5193 3371 2 3 201 10 0 1462 1597 587
5194 3372 2 3 201 10 0 1462 1613 1597
5195 3373 2 3 201 10 0 116 577 115
5196 3374 2 3 201 10 0 115 577 538
5197 3375 2 3 201 10 0 1661 725 718
5198 3376 2 3 201 10 0 1661 718 1652
5199 3377 2 3 201 10 0 725 1661 1735
5200 3378 2 3 201 10 0 1735 1661 1792
5201 3379 2 3 201 10 0 1027 435 1609
5202 3380 2 3 201 10 0 1660 785 1727
5203 3381 2 3 201 10 0 1451 1660 1593
5204 3382 2 3 201 10 0 1660 1727 1593
5205 3383 2 3 201 10 0 1745 30 31
5206 3384 2 3 201 10 0 1745 420 786
5207 3385 2 3 201 10 0 1718 1545 215
5208 3386 2 3 201 10 0 745 1545 1718
5209 3387 2 3 201 10 0 1385 1678 1509
5210 3388 2 3 201 10 0 1678 1385 1691
5211 3389 2 3 201 10 0 879 1761 962
5212 3390 2 3 201 10 0 1761 1690 962
5213 3391 2 3 201 10 0 1422 1715 1471
5214 3392 2 3 201 10 0 1471 1715 1535
5215 3393 2 3 201 10 0 1535 1715 1651
5216 3394 2 3 201 10 0 374 1089 1118
5217 3395 2 3 201 10 0 1109 1118 1089
5218 3396 2 3 201 10 0 1109 1023 1118
5219 3397 2 3 201 10 0 1118 1023 408
5220 3398 2 3 201 10 0 817 904 1780
5221 3399 2 3 201 10 0 1780 55 817
5222 3400 2 3 201 10 0 359 1780 904
5223 3401 2 3 201 10 0 1715 1475 1713
5224 3402 2 3 201 10 0 1712 1715 1713
5225 3403 2 3 201 10 0 1601 1626 1664
5226 3404 2 3 201 10 0 1664 1626 1685
5227 3405 2 3 201 10 0 1712 1685 1626
5228 3406 2 3 201 10 0 154 576 153
5229 3407 2 3 201 10 0 153 576 540
5230 3408 2 3 201 10 0 775 1773 1690
5231 3409 2 3 201 10 0 1773 837 962
5232 3410 2 3 201 10 0 1695 837 1773
5233 3411 2 3 201 10 0 1690 1773 962
5234 3412 2 3 201 10 0 78 575 77
5235 3413 2 3 201 10 0 77 575 539
5236 3414 2 3 201 10 0 974 925 429
5237 3415 2 3 201 10 0 429 890 974
5238 3416 2 3 201 10 0 1017 974 890
5239 3417 2 3 201 10 0 899 1672 1779
5240 3418 2 3 201 10 0 765 774 1648
5241 3419 2 3 201 10 0 1674 765 1648
5242 3420 2 3 201 10 0 1650 766 1648
5243 3421 2 3 201 10 0 1648 766 1674
5244 3422 2 3 201 10 0 897 852 917
5245 3423 2 3 201 10 0 1024 897 917
5246 3424 2 3 201 10 0 1024 1785 897
5247 3425 2 3 201 10 0 921 742 1062
5248 3426 2 3 201 10 0 1062 742 939
5249 3427 2 3 201 10 0 921 1062 932
5250 3428 2 3 201 10 0 1062 939 990
5251 3429 2 3 201 10 0 1557 1552 1642
5252 3430 2 3 201 10 0 1642 1552 1696
5253 3431 2 3 201 10 0 1696 1673 1642
5254 3432 2 3 201 10 0 951 1769 386
5255 3433 2 3 201 10 0 386 1769 1101
5256 3434 2 3 201 10 0 829 1101 1769
5257 3435 2 3 201 10 0 1714 1769 951
5258 3436 2 3 201 10 0 1709 1721 767
5259 3437 2 3 201 10 0 1717 767 1721
5260 3438 2 3 201 10 0 1717 1721 1760
5261 3439 2 3 201 10 0 922 401 1150
5262 3440 2 3 201 10 0 1084 922 1150
5263 3441 2 3 201 10 0 444 811 1793
5264 3442 2 3 201 10 0 1794 1788 739
5265 3443 2 3 201 10 0 1795 105 106
5266 3444 2 3 201 10 0 1796 416 740
5267 3445 2 3 201 10 0 740 1160 1796
5268 3446 2 3 201 10 0 1797 895 427
5269 3447 2 3 201 10 0 1797 884 751
5270 3448 2 3 201 10 0 751 895 1797
5271 3449 2 3 201 10 0 427 884 1797
5272 3450 2 3 201 10 0 1798 104 105
5273 3451 2 3 201 10 0 1606 365 1799
5274 3452 2 3 201 10 0 1667 691 1799
5275 3453 2 3 201 10 0 1799 365 1667
5276 3454 2 3 201 10 0 1799 691 1606
5277 3455 2 3 201 10 0 727 352 1800
5278 3456 2 3 201 10 0 1800 1519 727
5279 3457 2 3 201 10 0 28 492 1801
5280 3458 2 3 201 10 0 795 27 1801
5281 3459 2 3 201 10 0 1801 492 795
5282 3460 2 3 201 10 0 1801 27 28
5283 3461 2 3 201 10 0 1023 1002 1802
5284 3462 2 3 201 10 0 1091 1130 1802
5285 3463 2 3 201 10 0 1802 1002 1091
5286 3464 2 3 201 10 0 1802 1130 1023
5287 3465 2 3 201 10 0 1803 340 757
5288 3466 2 3 201 10 0 1667 340 1803
5289 3467 2 3 201 10 0 1798 105 1795
5290 3468 2 3 201 10 0 1519 1798 1795
5291 3469 2 3 201 10 0 1090 34 1793
5292 3470 2 3 201 10 0 1090 1793 811
5293 3471 2 3 201 10 0 34 35 1793
5294 3472 2 3 201 10 0 1794 739 542
5295 3473 2 3 201 10 0 542 64 1794
5296 3474 2 3 201 10 0 1794 64 65
5297 3475 2 3 201 10 0 737 709 1759
5298 3476 2 3 201 10 0 836 1759 1731
5299 3477 2 3 201 10 0 1731 1759 709
5300 3478 2 3 201 10 0 1092 1748 359
5301 3479 2 3 201 10 0 359 1748 1780
5302 3480 2 3 201 10 0 1748 54 1780
5303 3481 2 3 201 10 0 112 985 111
5304 3482 2 3 201 10 0 918 985 112
5305 3483 2 3 201 10 0 1010 1105 1158
5306 3484 2 3 201 10 0 1777 1105 1010
5307 3485 2 3 201 10 0 1158 1105 1744
5308 3486 2 3 201 10 0 132 1650 1675
5309 3487 2 3 201 10 0 1650 402 1675
5310 3488 2 3 201 10 0 1089 374 1775
5311 3489 2 3 201 10 0 1775 374 229
5312 3490 2 3 201 10 0 1775 229 1704
5313 3491 2 3 201 10 0 1704 1005 1775
5314 3492 2 3 201 10 0 1760 708 1749
5315 3493 2 3 201 10 0 1749 1750 1760
5316 3494 2 3 201 10 0 1784 1767 644
5317 3495 2 3 201 10 0 1767 776 341
5318 3496 2 3 201 10 0 1784 776 1767
5319 3497 2 3 201 10 0 1126 800 1771
5320 3498 2 3 201 10 0 234 525 1771
5321 3499 2 3 201 10 0 234 1771 1654
5322 3500 2 3 201 10 0 1771 525 1126
5323 3501 2 3 201 10 0 1651 1712 1626
5324 3502 2 3 201 10 0 1712 1651 1715
5325 3503 2 3 201 10 0 1627 804 1652
5326 3504 2 3 201 10 0 976 818 1652
5327 3505 2 3 201 10 0 1652 818 1627
5328 3506 2 3 201 10 0 215 1786 1726
5329 3507 2 3 201 10 0 1726 1718 215
5330 3508 2 3 201 10 0 1726 750 1718
5331 3509 2 3 201 10 0 1748 1769 53
5332 3510 2 3 201 10 0 53 54 1748
5333 3511 2 3 201 10 0 829 1769 1748
5334 3512 2 3 201 10 0 92 93 873
5335 3513 2 3 201 10 0 1651 1313 1525
5336 3514 2 3 201 10 0 1620 1313 1651
5337 3515 2 3 201 10 0 1620 1651 1626
5338 3516 2 3 201 10 0 727 1519 1795
5339 3517 2 3 201 10 0 1672 1699 1781
5340 3518 2 3 201 10 0 1580 1781 1699
5341 3519 2 3 201 10 0 1779 1672 1781
5342 3520 2 3 201 10 0 1757 775 1755
5343 3521 2 3 201 10 0 1757 1773 775
5344 3522 2 3 201 10 0 708 1757 1755
5345 3523 2 3 201 10 0 135 1740 1753
5346 3524 2 3 201 10 0 1629 1761 1740
5347 3525 2 3 201 10 0 1753 1740 1674
5348 3526 2 3 201 10 0 1740 1761 1674
5349 3527 2 3 201 10 0 1729 1695 733
5350 3528 2 3 201 10 0 1659 733 1695
5351 3529 2 3 201 10 0 1709 1695 748
5352 3530 2 3 201 10 0 1709 1659 1695
5353 3531 2 3 201 10 0 1805 35 36
5354 3532 2 3 201 10 0 1806 873 93
5355 3533 2 3 201 10 0 1078 873 1806
5356 3534 2 3 201 10 0 1807 879 765
5357 3535 2 3 201 10 0 1807 1674 1761
5358 3536 2 3 201 10 0 1761 879 1807
5359 3537 2 3 201 10 0 765 1674 1807
5360 3538 2 3 201 10 0 1808 786 1766
5361 3539 2 3 201 10 0 868 727 1809
5362 3540 2 3 201 10 0 1809 727 1795
5363 3541 2 3 201 10 0 1809 107 868
5364 3542 2 3 201 10 0 1810 1757 708
5365 3543 2 3 201 10 0 1810 1760 1721
5366 3544 2 3 201 10 0 1721 1757 1810
5367 3545 2 3 201 10 0 708 1760 1810
5368 3546 2 3 201 10 0 1793 35 1805
5369 3547 2 3 201 10 0 1793 1805 444
5370 3548 2 3 201 10 0 29 30 1808
5371 3549 2 3 201 10 0 1808 30 1745
5372 3550 2 3 201 10 0 786 1808 1745
5373 3551 2 3 201 10 0 106 107 1809
5374 3552 2 3 201 10 0 106 1809 1795
5375 3553 2 3 201 10 0 39 40 1804
5376 3554 2 3 201 10 0 294 549 1804
5377 3555 2 3 201 10 0 1804 40 294
5378 3556 2 3 201 10 0 1804 549 290
5379 3557 2 3 201 10 0 73 889 442
5380 3558 2 3 201 10 0 93 94 1806
5381 3559 2 3 201 10 0 460 1078 1806
5382 3560 2 3 201 10 0 1806 94 460
5383 3561 2 3 201 10 0 925 90 91
5384 3562 2 3 201 10 0 948 429 91
5385 3563 2 3 201 10 0 925 91 429
5386 3564 2 3 201 10 0 1766 492 29
5387 3565 2 3 201 10 0 1766 29 1808
5388 3566 2 3 201 10 0 28 29 492
5389 3567 2 3 201 10 0 38 39 1754
5390 3568 2 3 201 10 0 1804 1754 39
5391 3569 2 3 201 10 0 290 277 1754
5392 3570 2 3 201 10 0 290 1754 1804
5393 3571 2 3 201 10 0 38 1754 1739
5394 3572 2 3 201 10 0 860 790 1092
5395 3573 2 3 201 10 0 1092 790 1101
5396 3574 2 3 201 10 0 829 1092 1101
5397 3575 2 3 201 10 0 103 1553 102
5398 3576 2 3 201 10 0 1160 1553 103
5399 3577 2 3 201 10 0 1805 36 37
5400 3578 2 3 201 10 0 927 444 1805
5401 3579 2 3 201 10 0 1733 691 1803
5402 3580 2 3 201 10 0 691 1667 1803
5403 3581 2 3 201 10 0 757 1692 1803
5404 3582 2 3 201 10 0 1692 1733 1803
5405 3583 2 3 201 10 0 1800 352 789
5406 3584 2 3 201 10 0 1800 709 416
5407 3585 2 3 201 10 0 1800 416 1519
5408 3586 2 3 201 10 0 1800 789 709
5409 3587 2 3 201 10 0 1629 883 1559
5410 3588 2 3 201 10 0 1519 416 1796
5411 3589 2 3 201 10 0 1160 104 1796
5412 3590 2 3 201 10 0 1796 104 1798
5413 3591 2 3 201 10 0 1798 1519 1796
5414 3592 2 3 201 10 0 1629 1559 1811
5415 3593 2 3 201 10 0 1690 1761 1811
5416 3594 2 3 201 10 0 1811 1559 1690
5417 3595 2 3 201 10 0 1811 1761 1629
5418 3596 2 3 201 10 0 136 137 1812
5419 3597 2 3 201 10 0 1629 1740 1812
5420 3598 2 3 201 10 0 1812 1740 136
5421 3599 2 3 201 10 0 1812 137 883
5422 3600 2 3 201 10 0 1629 1812 883
5423 3601 2 3 201 10 0 74 936 889
5424 3602 2 3 201 10 0 889 73 74
5425 3603 2 3 201 10 0 1739 1805 37
5426 3604 2 3 201 10 0 1739 1127 927
5427 3605 2 3 201 10 0 1805 1739 927
5428 3606 2 3 201 10 0 1036 1788 1813
5429 3607 2 3 201 10 0 1813 65 66
5430 3608 2 3 201 10 0 1794 65 1813
5431 3609 2 3 201 10 0 1794 1813 1788
5432 3610 2 3 201 10 0 1813 66 1036
5433 3611 2 3 201 10 0 905 545 1814
5434 3612 2 3 201 10 0 1814 793 905
5435 3613 2 3 201 10 0 1814 128 129
5436 3614 2 3 201 10 0 793 1814 129
5437 3615 2 3 201 10 0 127 128 1814
5438 3616 2 3 201 10 0 127 1814 545
5439 3617 2 3 201 10 0 67 1036 66
5440 3618 2 3 201 10 0 475 1036 67
5441 3619 2 3 201 10 0 247 449 424
5442 3620 2 3 201 10 0 247 424 524
5443 3621 2 3 201 10 0 1779 303 1741
5444 3622 2 3 201 10 0 899 1779 1741
5445 3623 2 3 201 10 0 1609 1224 1815
5446 3624 2 3 201 10 0 1815 1027 1609
5447 3625 2 3 201 10 0 1815 25 26
5448 3626 2 3 201 10 0 1027 1815 26
5449 3627 2 3 201 10 0 24 25 1815
5450 3628 2 3 201 10 0 24 1815 1224
5451 $EndElements
+0
-7010
interface/src/scilab/demos/data/tank_quadratic_2500.GiD.msh less more
0 MESH dimension 3 ElemType Tetrahedra Nnode 10
1 Coordinates
2 1 25 -4.71028e-16 3
3 2 24.3009 -0.276213 3.01274
4 3 25 0.749509 3.09514
5 4 25 -0.749509 3.09514
6 5 24.2923 0.348285 3.02029
7 6 25 0.228059 3.79698
8 7 25 -0.674676 3.82532
9 8 24.3009 -0.0516591 3.82329
10 9 24.2923 0.581134 3.83912
11 10 24.3009 -1.03571 3.18445
12 11 24.2923 1.10858 3.21234
13 12 25 0.978059 3.99794
14 13 23.5931 0.0699502 3.00082
15 14 24.3009 -0.954394 3.85164
16 15 23.6017 -0.559436 3.05262
17 16 25 1.5 3.40192
18 17 25 -1.5 3.40192
19 18 23.5845 0.706149 3.08429
20 19 25 0.456118 4.59395
21 20 25 -0.446617 4.6223
22 21 25 -1.42468 4.02629
23 22 24.2423 1.20219 4.15633
24 23 23.5665 -1.24763 3.27173
25 24 24.2657 -1.69909 3.52753
26 25 24.2423 1.73051 3.54942
27 26 23.8942 0.399522 4.58473
28 27 23.195 -0.108255 3.81406
29 28 23.8942 -0.503213 4.61307
30 29 23.5346 1.35285 3.32235
31 30 22.9558 -0.235538 3.00926
32 31 23.1864 0.524538 3.82989
33 32 22.9472 0.389346 3.02537
34 33 24.2657 -1.6192 4.16005
35 34 25 -1.34935 4.65065
36 35 25 1.5271 4.54698
37 36 22.9486 -0.874394 3.13026
38 37 23.1599 -0.773061 4.12247
39 38 25 2.12132 3.87868
40 39 25 -2.12132 3.87868
41 40 22.9237 0.977666 3.16378
42 41 25 -0.273337 5.31251
43 42 25 0.723445 5.28701
44 43 23.1365 1.14559 4.1471
45 44 24.2423 1.46951 4.84939
46 45 23.5313 -1.88905 3.66944
47 46 25 -1.97371 4.57532
48 47 23.4846 1.94825 3.7187
49 48 23.8942 -0.329933 5.30328
50 49 22.5492 0.211161 3.78827
51 50 23.8942 0.666849 5.27778
52 51 24.2657 -2.28296 4.0537
53 52 25 -1.17607 5.34086
54 53 22.9134 -1.54986 3.43136
55 54 22.5419 -0.422239 3.91024
56 55 24.2423 2.30777 4.08318
57 56 22.31 0.0793966 3.00105
58 57 22.8737 1.61015 3.46871
59 58 22.7884 0.342926 4.5755
60 59 22.3027 -0.546334 3.05017
61 60 22.5256 0.79457 3.92329
62 61 22.2864 0.659387 3.07336
63 62 25 1.79442 5.24004
64 63 24.277 -2.09063 4.83027
65 64 24.0252 -1.40876 5.36435
66 65 22.2955 -1.1874 3.24499
67 66 25 2.59808 4.5
68 67 25 -2.59808 4.5
69 68 25 -0.00600917 6.00557
70 69 22.6202 -1.33825 4.2858
71 70 22.2628 1.24621 3.27109
72 71 23.2675 1.70821 4.82033
73 72 23.2909 -1.67861 4.87375
74 73 23.5427 -2.45955 4.28226
75 74 22.855 -2.11276 3.87015
76 75 25 0.990773 5.98007
77 76 22.9194 -0.562619 5.32678
78 77 22.4555 1.34024 4.34755
79 78 25 -2.17468 5.32532
80 79 23.5108 2.48647 4.32147
81 80 25 -1.00279 6.03107
82 81 22.9194 0.905545 5.24872
83 82 22.8036 2.15232 3.91014
84 83 24.2685 1.91425 5.50339
85 84 22.2487 -0.222259 4.73883
86 85 24.277 -2.72792 4.75161
87 86 24.2685 2.73168 4.75988
88 87 22.0023 -0.987424 4.07357
89 88 21.6702 -0.195899 3.0064
90 89 24.0252 1.22947 5.95101
91 90 22.2371 -1.79704 3.59778
92 91 21.6514 0.318475 3.01695
93 92 22.1927 1.83739 3.6285
94 93 24.0252 -1.23548 6.05456
95 94 21.6629 -0.833628 3.11815
96 95 21.8272 0.276583 4.34016
97 96 21.588 0.144818 3.55293
98 97 21.8627 1.06846 4.0855
99 98 21.6279 0.905817 3.14002
100 99 21.5808 -0.488583 3.6749
101 100 21.5644 0.728227 3.68795
102 101 25 1.99539 5.99004
103 102 25 -2.0014 6.01554
104 103 22.808 -0.0843928 5.89902
105 104 25 2.90486 5.25049
106 105 25 -2.90486 5.25049
107 106 22.5865 1.90286 5.02078
108 107 22.6145 -1.89173 5.08517
109 108 23.2937 2.15295 5.47433
110 109 21.6305 -1.47558 3.38798
111 110 25 0.265325 6.69492
112 111 22.8663 -2.61733 4.53385
113 112 23.3023 -2.15003 5.54397
114 113 21.9439 -1.55137 4.49722
115 114 22.8298 2.63019 4.55704
116 115 21.5999 1.52689 3.41764
117 116 23.5541 -2.8319 5.00988
118 117 23.9138 0.239531 6.6013
119 118 23.5369 2.83773 5.02671
120 119 22.3798 -1.1278 5.4901
121 120 25 -0.731457 6.72042
122 121 23.0505 1.46816 5.92195
123 122 22.1786 -2.3153 4.09228
124 123 24.0252 2.23408 5.96097
125 124 25 1.17006 6.66471
126 125 23.9138 -0.757251 6.6268
127 126 21.7481 0.863055 4.90151
128 127 22.1226 2.33755 4.11961
129 128 21.7091 -0.787443 4.90216
130 129 24.0252 -2.23408 6.03903
131 130 23.0505 -1.46816 6.07805
132 131 24.277 -2.95992 5.51126
133 132 24.2685 2.96129 5.51964
134 133 21.0116 0.0401301 3.00027
135 134 22.2487 0.565185 5.83667
136 135 21.0304 -0.478363 3.03838
137 136 21.2876 -0.288602 4.50348
138 137 24.0252 1.40876 6.63565
139 138 20.9929 0.562356 3.05318
140 139 24.2685 -1.92026 6.50218
141 140 21.3373 -1.26906 4.23297
142 141 21.572 -2.04978 3.80948
143 142 23.2685 2.23408 5.96097
144 143 20.9482 -0.134061 3.5716
145 144 20.9295 0.386298 3.579
146 145 21.5298 2.08217 3.84024
147 146 23.2685 -2.23408 6.03903
148 147 22.9391 0.478226 6.57224
149 148 23.5203 -2.95992 5.51126
150 149 22.2684 -0.649577 6.06235
151 150 23.5117 2.96129 5.51964
152 151 20.9979 -1.13009 3.22099
153 152 25 -1.80043 6.76554
154 153 20.9649 1.19568 3.24857
155 154 20.9157 -0.770215 3.8343
156 155 25 -3 6
157 156 25 3 6
158 157 25 2.17468 6.67468
159 158 20.866 0.21024 4.10481
160 159 21.8791 1.42567 5.57473
161 160 20.9015 1.00212 3.85016
162 161 22.9391 -0.989938 6.65029
163 162 24.2432 -3 6
164 163 24.2432 3 6
165 164 21.2085 0.297871 5.06484
166 165 21.9185 -1.89372 5.45108
167 166 21.4152 1.86037 4.67356
168 167 25 0.444614 7.37956
169 168 23.3023 2.15003 6.45603
170 169 22.5892 2.23408 5.96097
171 170 25 -0.460124 7.40976
172 171 20.9655 -1.75067 3.56378
173 172 23.9138 0.41882 7.28594
174 173 22.841 -2.95992 5.51126
175 174 21.3412 -1.75343 4.81767
176 175 22.8325 2.96129 5.51964
177 176 21.7091 7.32747e-15 6
178 177 23.2937 -2.15295 6.52567
179 178 24.2423 -1.47552 7.15618
180 179 22.5892 -2.23408 6.03903
181 180 23.9138 -0.485918 7.31615
182 181 20.937 1.79399 3.59551
183 182 21.576 -2.53911 4.40221
184 183 20.5151 -0.207636 3.00719
185 184 22.1533 -2.83713 5.02497
186 185 23.4865 -3 6
187 186 23.4865 3 6
188 187 21.157 -1.23296 5.0074
189 188 20.4964 0.306616 3.01571
190 189 22.3798 1.1278 6.5099
191 190 22.1253 2.84253 5.04083
192 191 21.5406 2.5544 4.42677
193 192 25 1.34935 7.34935
194 193 20.4942 -0.888504 3.13459
195 194 20.7869 0.796712 4.66616
196 195 20.433 0.13326 3.55267
197 196 20.7354 -0.734123 4.60873
198 197 24.2685 -2.96129 6.48036
199 198 20.4733 0.963597 3.15896
200 199 24.277 2.95992 6.48874
201 200 20.412 -0.542283 3.69931
202 201 20.8224 1.58859 4.41151
203 202 25 -1.5291 7.45488
204 203 20.4099 0.784496 3.71508
205 204 24.277 2.09063 7.16973
206 205 20.7852 -1.71458 4.33821
207 206 25 2.90486 6.74951
208 207 25 -2.90486 6.74951
209 208 23.2909 1.67861 7.12625
210 209 20.9694 -2.31322 4.08976
211 210 22.8072 -3 6
212 211 22.8072 3 6
213 212 22.8277 -0.511712 7.22253
214 213 23.5117 -2.96129 6.48036
215 214 20.4618 -1.52744 3.41796
216 215 23.5203 2.95992 6.48874
217 216 20.9478 2.33758 4.11965
218 217 23.2675 -1.70821 7.17967
219 218 20.4454 1.58107 3.45045
220 219 25 1.97371 7.42468
221 220 21.8791 -1.42567 6.42527
222 221 21.2085 -1.08531 5.83732
223 222 20.3682 -1.03107 4.07309
224 223 20.3668 1.25372 4.08766
225 224 21.4179 2.19159 5.61376
226 225 22.6145 1.89173 6.91483
227 226 20.6535 -0.449287 5.36167
228 227 22.2684 0.137866 7.16019
229 228 19.9999 0.0562798 3.00053
230 229 21.3664 -2.33924 5.55632
231 230 22.5865 -1.90286 6.97922
232 231 20.7078 1.38318 5.22751
233 232 24.2423 -1.20419 7.84553
234 233 19.9899 -0.6367 3.06834
235 234 20.8332 2.05603 4.9906
236 235 21.2085 1.08531 6.16268
237 236 22.8325 -2.96129 6.48036
238 237 22.841 2.95992 6.48874
239 238 19.9868 0.726239 3.08923
240 239 21.9185 1.89372 6.54892
241 240 20.418 -2.02531 3.78683
242 241 19.9999 -0.0525 2.10491
243 242 19.9905 -0.615008 2.38024
244 243 24.2685 -2.73168 7.24012
245 244 19.9872 0.715973 2.41754
246 245 23.5369 -2.83773 6.97329
247 246 25 -0.980062 8.00392
248 247 24.277 2.72792 7.24839
249 248 23.5541 2.8319 6.99012
250 249 20.4023 2.05912 3.81826
251 250 21.5507 -2.93347 5.37171
252 251 21.5433 2.93569 5.38219
253 252 22.128 -3 6
254 253 22.128 3 6
255 254 20.7891 -2.19895 4.92291
256 255 24.2657 1.6192 7.83995
257 256 20.2319 0.049554 4.963
258 257 20.6048 -1.67849 5.11264
259 258 23.1795 0.688668 7.77655
260 259 20.9733 -2.71941 4.73318
261 260 25 1.42468 7.97371
262 261 20.9587 2.72887 4.75369
263 262 25 2.59808 7.5
264 263 25 -2.59808 7.5
265 264 25 -0.230062 8.20488
266 265 19.958 -1.29481 3.29381
267 266 25 0.674676 8.17468
268 267 24.3009 0.0496561 8.17857
269 268 19.9581 -1.29469 2.52688
270 269 21.7677 -0.947448 6.99751
271 270 19.9538 1.35875 3.32534
272 271 23.1562 -1.22998 7.75192
273 272 24.2923 -0.583137 8.16273
274 273 19.9529 1.37115 2.57995
275 274 19.8887 0.00199697 4.21321
276 275 19.9908 0.605851 1.52192
277 276 24.3009 0.954394 8.14836
278 277 19.9868 -0.725148 1.48462
279 278 19.9993 -0.161457 1.20929
280 279 21.7091 0.787443 7.09784
281 280 20.2877 1.84019 4.64902
282 281 19.9581 -1.29457 1.75995
283 282 19.9521 1.38354 1.83455
284 283 23.2147 0.0238621 8.08496
285 284 20.2377 -1.97543 4.577
286 285 21.4179 -2.19159 6.38624
287 286 22.4751 -1.42463 7.55146
288 287 20.4219 -2.5214 4.3744
289 288 20.8032 2.19159 5.61376
290 289 23.2061 -0.608931 8.06912
291 290 20.4132 2.53777 4.40009
292 291 19.9168 -1.82248 3.61702
293 292 22.6202 1.33825 7.7142
294 293 19.9128 1.86567 3.65069
295 294 20.6563 -1.53084 5.94256
296 295 21.2085 -0.297871 6.93516
297 296 20.7517 -2.33924 5.55632
298 297 24.2423 -2.30777 7.91682
299 298 21.5133 -3 6
300 299 21.5133 3 6
301 300 24.2657 2.28296 7.9463
302 301 20.6569 1.60349 5.96973
303 302 20.1528 0.636027 5.52435
304 303 21.367 2.4119 6.35597
305 304 23.5108 -2.48647 7.67853
306 305 23.5427 2.45955 7.71774
307 306 19.8096 0.588469 4.77456
308 307 19.8893 -2.10178 2.92007
309 308 19.887 2.1234 2.93229
310 309 25 2.12132 8.12132
311 310 25 -2.12132 8.12132
312 311 20.936 -2.93347 5.37171
313 312 20.9287 2.93569 5.38219
314 313 20.1013 -0.894809 5.46692
315 314 19.9959 0.406368 0.604645
316 315 22.5616 0.337846 7.98877
317 316 21.8504 -0.273464 7.57911
318 317 20.6535 0.338156 6.45952
319 318 19.9651 1.18138 0.917275
320 319 19.9666 -1.15617 0.879973
321 320 19.9914 -0.58808 0.604645
322 321 19.4557 -0.074983 3.66106
323 322 19.8893 -2.10166 2.15314
324 323 19.7582 -0.942366 4.71712
325 324 22.8663 2.61733 7.46615
326 325 22.8298 -2.63019 7.44296
327 326 19.8856 2.13592 2.18689
328 327 22.5453 -0.878963 7.97572
329 328 21.1576 1.30562 6.9049
330 329 22.1533 2.83713 6.97503
331 330 19.4326 0.576254 3.82347
332 331 22.1253 -2.84253 6.95917
333 332 21.9439 1.55137 7.50278
334 333 22.5688 -0.295554 8.11074
335 334 19.4348 -0.750526 3.8077
336 335 20.2019 -2.25377 5.05722
337 336 20.3861 -2.77775 4.86682
338 337 19.8705 -2.27238 4.04136
339 338 20.3785 2.78413 4.88259
340 339 20.1192 1.55596 5.53807
341 340 19.8676 2.29719 4.07052
342 341 20.2447 2.2288 5.30116
343 342 24.2423 -1.73051 8.45058
344 343 24.2657 1.69909 8.47247
345 344 19.831 -2.59412 3.29385
346 345 19.8308 2.5958 3.30487
347 346 25 1.5 8.59808
348 347 25 -1.5 8.59808
349 348 21.5433 -2.93569 6.61781
350 349 21.5507 2.93347 6.62829
351 350 20.8032 -2.19159 6.38624
352 351 21.3412 1.75343 7.18233
353 352 23.4846 -1.94825 8.2813
354 353 20 -0.018753 0
355 354 19.3896 1.04547 4.19606
356 355 23.5313 1.88905 8.33056
357 356 21.8823 -1.15285 7.81351
358 357 22.0023 0.987424 7.92643
359 358 21.2911 0.376113 7.51677
360 359 19.391 -1.23931 4.18148
361 360 20.7078 -1.38318 6.77249
362 361 20.8986 -3 6
363 362 20.8986 3 6
364 363 20.1528 -0.747158 6.29684
365 364 21.4152 -1.86037 7.32644
366 365 19.0916 0.00738787 2.59285
367 366 19.1366 -0.827748 3.22619
368 367 20.7523 2.4119 6.35597
369 368 19.976 0.97987 0
370 369 19.9896 -1.73102 5.6661
371 370 24.2923 -1.10858 8.78766
372 371 19.9741 -1.01808 0
373 372 22.8036 -2.15232 8.08986
374 373 22.855 2.11276 8.12985
375 374 24.3009 1.03571 8.81555
376 375 20.1019 0.856333 6.26657
377 376 25 0.749509 8.90486
378 377 25 -0.749509 8.90486
379 378 19.8745 2.2371 0.917275
380 379 19.8776 -2.20954 0.879973
381 380 19.8309 -2.59541 4.49539
382 381 19.7893 2.89535 2.53923
383 382 19.8293 2.60782 4.517
384 383 19.7861 -2.91696 2.54634
385 384 19.0956 1.03517 3.16591
386 385 19.6992 2.01296 4.95957
387 386 25 4.71028e-16 9
388 387 23.5346 -1.35285 8.67765
389 388 24.2923 -0.348285 8.97971
390 389 20.606 1.8238 6.71195
391 390 24.3009 0.276213 8.98726
392 391 23.5665 1.24763 8.72827
393 392 19.0913 -0.101481 1.69723
394 393 19.0677 0.671019 2.00986
395 394 19.0707 -0.668036 1.97256
396 395 20.3488 -2.95925 5.50723
397 396 20.3485 2.96015 5.51265
398 397 19.1157 -1.50329 3.37283
399 398 19.1157 -1.50317 2.6059
400 399 20.2147 2.36437 5.92432
401 400 19.7819 -2.94546 4.09039
402 401 19.5978 -0.111132 5.82119
403 402 20.7904 -0.709201 7.35409
404 403 19.7803 2.95622 4.11613
405 404 19.2547 -0.158689 5.0714
406 405 22.1786 2.3153 7.90772
407 406 23.5845 -0.706149 8.91571
408 407 22.1226 -2.33755 7.88039
409 408 19.6225 -2.02797 5.13046
410 409 23.6017 0.559436 8.94738
411 410 20.7395 0.89429 7.32382
412 411 20.8332 -2.05603 7.0094
413 412 22.8737 -1.61015 8.53129
414 413 20.2355 -0.0731743 6.87844
415 414 21.3373 1.26906 7.76703
416 415 22.9134 1.54986 8.56864
417 416 23.5931 -0.0699502 8.99918
418 417 19.0725 1.68641 3.32831
419 418 19.0717 1.6988 2.58292
420 419 20.0684 1.77626 6.28029
421 420 19.5643 0.8088 5.83491
422 421 20.9287 -2.93569 6.61781
423 422 20.936 2.93347 6.62829
424 423 19.2211 0.761243 5.08512
425 424 19.7331 3.25677 3.35048
426 425 19.2024 -0.607642 0.879973
427 426 19.1994 0.731413 0.917275
428 427 19.731 -3.26935 3.34288
429 428 20.7897 2.2716 6.98938
430 429 18.9115 -0.206246 4.3216
431 430 20.1365 -2.39177 6.10978
432 431 19.7989 -2.82906 5.00179
433 432 19.223 -0.0410862 0.604645
434 433 19.7984 2.83288 5.01268
435 434 19.8965 2.03251 0
436 435 19.7741 2.99735 1.26962
437 436 21.576 2.53911 7.59779
438 437 20.0411 -1.58337 6.49602
439 438 22.9237 -0.977666 8.83622
440 439 19.8927 -2.06934 0
441 440 21.5406 -2.5544 7.57323
442 441 22.9486 0.874394 8.86974
443 442 19.7698 -3.02578 1.27317
444 443 19.6645 2.2808 5.43066
445 444 19.0719 -1.99208 3.7466
446 445 20.3362 -3 6
447 446 20.3362 3 6
448 447 22.2371 1.79704 8.40222
449 448 22.9472 -0.389346 8.97463
450 449 22.1927 -1.83739 8.3715
451 450 22.9558 0.235538 8.99074
452 451 19.4861 -0.947341 6.02037
453 452 19.143 -0.994898 5.27058
454 453 19.7382 -3.22526 4.57061
455 454 21.5843 0.576094 8.34535
456 455 19.7382 3.22543 4.58721
457 456 21.568 -0.640716 8.3323
458 457 19.0294 2.15563 3.7009
459 458 19.1612 1.54401 0.917275
460 459 19.0298 -2.31437 2.99909
461 460 19.5307 1.72873 5.84863
462 461 20.8224 -1.58859 7.58849
463 462 20.8731 -0.035217 7.93569
464 463 19.5867 -2.3063 5.61067
465 464 21.5915 -0.0573068 8.46732
466 465 18.5474 -0.123875 3.25339
467 466 20.9587 -2.72887 7.24631
468 467 20.9733 2.71941 7.26682
469 468 22.2955 1.1874 8.75501
470 469 22.2628 -1.24621 8.72891
471 470 20.7857 1.78723 7.57408
472 471 18.9903 2.45471 2.93526
473 472 19.7802 -2.95693 5.49349
474 473 19.7801 2.9579 5.49917
475 474 19.3142 -2.69221 4.64624
476 475 20.1666 -2.25621 6.73293
477 476 19.6715 3.61023 2.02001
478 477 20.3485 -2.96015 6.48735
479 478 20.3488 2.95925 6.49277
480 479 19.6674 -3.63205 2.00833
481 480 19.6481 3.7353 2.8292
482 481 19.6462 -3.74498 2.77971
483 482 19.2104 -0.469396 0
484 483 19.6522 2.36437 5.92432
485 484 18.5924 -0.959011 3.88672
486 485 19.2113 0.529577 0
487 486 19.6692 -3.62272 4.13943
488 487 19.6698 3.61923 4.16173
489 488 19.9213 -1.13606 6.97434
490 489 21.572 2.04978 8.19052
491 490 22.2864 -0.659387 8.92664
492 491 22.3027 0.546334 8.94983
493 492 21.5298 -2.08217 8.15976
494 493 18.5514 0.90391 3.82644
495 494 22.31 -0.0793966 8.99895
496 495 20.2025 2.32643 6.85508
497 496 19.259 2.70472 4.73966
498 497 19.0798 2.29991 1.26962
499 498 19.7222 -3.32178 5.16437
500 499 19.7226 3.31974 5.17447
501 500 18.861 1.8714 4.58996
502 501 19.8419 1.31686 6.94177
503 502 18.9713 -2.66725 3.79564
504 503 18.8978 -1.57959 0.879973
505 504 19.3664 -0.500029 6.49869
506 505 20.9193 0.857726 8.18596
507 506 20.905 -0.914605 8.17009
508 507 19.3378 0.3494 6.4964
509 508 20.2877 -1.84019 7.35098
510 509 18.8239 -1.74766 4.8357
511 510 19.1731 1.34218 0
512 511 19.5741 -2.39177 6.10978
513 512 21.6305 1.47558 8.61202
514 513 21.5999 -1.52689 8.58236
515 514 19.3744 -1.78355 6.21955
516 515 19.7737 -3 6
517 516 19.7737 3 6
518 517 18.9305 2.81665 3.74651
519 518 19.6648 2.2789 6.42342
520 519 19.6511 -3.71952 4.73318
521 520 19.6522 3.7138 4.749
522 521 20.2382 2.04809 7.33529
523 522 20.9478 -2.33758 7.88035
524 523 20.9694 2.31322 7.91024
525 524 20.004 -0.462072 7.55594
526 525 20.3785 -2.78413 7.11741
527 526 19.7584 3.09945 0
528 527 19.2784 -2.97055 5.12645
529 528 20.3861 2.77775 7.13318
530 529 20.9517 0.221573 8.44865
531 530 19.9754 0.387357 7.55365
532 531 20.933 -0.298786 8.44126
533 532 19.7528 -3.13471 0
534 533 19.3042 1.26933 6.51012
535 534 21.6629 0.833628 8.88185
536 535 21.6279 -0.905817 8.85998
537 536 19.5754 -4.0994 3.57626
538 537 19.5755 4.09885 3.64045
539 538 18.2283 -0.87664 2.81851
540 539 19.7083 3.40362 5.66813
541 540 19.7076 -3.40758 5.66347
542 541 18.8118 -2.39079 1.27317
543 542 21.6702 0.195899 8.9936
544 543 19.2244 2.97257 5.21074
545 544 21.6514 -0.318475 8.98305
546 545 20.3704 -1.1662 7.93259
547 546 18.1833 -0.041504 2.18518
548 547 20.3718 1.11858 7.94717
549 548 19.7006 2.00056 6.90364
550 549 19.6524 3.71281 0.750396
551 550 18.1873 0.986281 2.75823
552 551 19.5864 -2.30821 6.60344
553 552 19.0905 2.42049 5.62872
554 553 19.2135 -3.36738 4.69527
555 554 19.6469 -3.74146 0.735163
556 555 18.9058 -1.44135 0
557 556 19.7801 -2.9579 6.50083
558 557 19.7802 2.95693 6.50651
559 558 18.315 0.0188903 1.09259
560 559 18.2734 -1.71178 3.45185
561 560 19.2547 -1.33624 6.69787
562 561 19.0034 3.53232 3.39204
563 562 19.1601 3.36574 4.78527
564 563 20.4132 -2.53777 7.59991
565 564 19.0662 -2.44779 5.73533
566 565 20.4219 2.5214 7.6256
567 566 19.634 3.80843 5.33627
568 567 19.6325 -3.81637 5.32694
569 568 20.9655 1.75067 8.43622
570 569 20.937 -1.79399 8.40449
571 570 19.2658 -3.05602 5.62556
572 571 19.551 4.21425 4.35696
573 572 19.5487 -4.22492 4.33559
574 573 18.2768 0.831488 1.09259
575 574 18.872 -3.46257 3.21705
576 575 20.4134 -0.696985 8.30518
577 576 18.5156 -2.41191 4.35148
578 577 19.621 -2.04037 7.07452
579 578 20.4156 0.629795 8.32094
580 579 19.0643 2.40197 0
581 580 19.212 3.05613 5.7044
582 581 18.5606 -0.11749 5.95631
583 582 18.2807 1.85927 1.66564
584 583 18.1913 2.01407 3.33128
585 584 19.4978 4.45396 2.30998
586 585 19.7083 -3.40362 6.33187
587 586 20.9979 1.13009 8.77901
588 587 20.4365 -0.0457484 8.46758
589 588 19.7076 3.40758 6.33653
590 589 20.9649 -1.19568 8.75143
591 590 19.4955 -4.46375 2.24171
592 591 18.2174 -0.165047 5.20651
593 592 19.1952 -3.46421 5.28903
594 593 19.526 4.32846 1.50079
595 594 19.7984 -2.83288 6.98732
596 595 19.7989 2.82906 6.99821
597 596 19.5211 -4.35043 1.47033
598 597 18.527 0.802441 5.97003
599 598 21.0304 0.478363 8.96162
600 599 19.4692 -4.5771 3.01308
601 600 19.4686 4.57951 3.11917
602 601 18.4208 2.56316 4.37005
603 602 20.9929 -0.562356 8.94682
604 603 21.0116 -0.0401301 8.99973
605 604 19.1422 3.46034 5.37254
606 605 18.4467 0.0792846 0
607 606 18.1441 0.82992 5.10362
608 607 19.1063 -0.0394975 7.1739
609 608 18.4872 -0.988608 5.96777
610 609 20.4023 -2.05912 8.18174
611 610 19.5303 4.30911 4.94423
612 611 20.418 2.02531 8.21317
613 612 19.6333 -3.8124 5.99533
614 613 19.5274 -4.32202 4.92934
615 614 19.6333 3.8124 6.00467
616 615 18.805 -3.34489 1.27317
617 616 19.1251 2.48374 6.45369
618 617 19.1349 -0.888927 7.17619
619 618 18.1441 -1.03617 5.21798
620 619 18.0555 -1.7882 1.72592
621 620 19.0777 0.809932 7.1716
622 621 18.4085 0.891883 0
623 622 19.0718 -2.44793 6.47974
624 623 18.9437 3.89426 4.2033
625 624 18.0104 -0.953061 1.09259
626 625 19.5013 -1.59306 7.55284
627 626 19.7226 -3.31974 6.82553
628 627 19.2714 -3.05616 6.36997
629 628 19.7222 3.32178 6.83563
630 629 19.8293 -2.60782 7.483
631 630 19.4392 -4.70282 3.77241
632 631 19.4411 4.69509 3.83568
633 632 18.7579 -3.11204 5.25112
634 633 19.8309 2.59541 7.50461
635 634 18.7952 -2.49966 0
636 635 19.4741 1.54116 7.56512
637 636 18.8135 -3.81545 4.01359
638 637 20.4454 -1.58107 8.54955
639 638 20.4618 1.52744 8.58204
640 639 18.4537 1.79741 5.86714
641 640 19.0831 -3.97031 4.89143
642 641 18.5698 -3.55699 2.16587
643 642 19.2008 -3.46435 6.03344
644 643 18.5884 3.32399 1.26962
645 644 19.0316 3.96148 4.9805
646 645 19.5443 -1.12384 7.92542
647 646 19.2466 3.11938 6.52937
648 647 20.4942 0.888504 8.86541
649 648 20.4733 -0.963597 8.84104
650 649 19.5179 1.05237 7.9389
651 650 19.1414 3.46431 6.04093
652 651 19.5674 -0.472603 8.08783
653 652 18.6504 3.11225 5.40881
654 653 19.5388 0.376826 8.08554
655 654 18.3702 1.70448 0
656 655 19.8676 -2.29719 7.92948
657 656 18.1156 -2.85998 3.6698
658 657 19.8705 2.27238 7.95864
659 658 20.5151 0.207636 8.99281
660 659 20.4964 -0.306616 8.98429
661 660 18.2044 3.09168 3.78807
662 661 19.5519 4.20996 0
663 662 19.2838 -2.9726 6.86363
664 663 18.5839 3.83494 2.22672
665 664 19.634 -3.80843 6.66373
666 665 19.5446 -4.24352 0
667 666 19.4128 4.8107 4.55219
668 667 18.1421 -0.892667 0
669 668 19.5043 4.42516 5.66064
670 669 19.6325 3.81637 6.67306
671 670 19.4084 -4.82858 4.53174
672 671 19.5034 -4.42914 5.67096
673 672 18.3755 -1.82482 6.16695
674 673 19.7549 3.12137 7.48854
675 674 18.8431 4.3744 3.68202
676 675 18.7635 -3.11218 5.99552
677 676 19.7382 -3.22543 7.41279
678 677 17.825 -1.78893 4.7831
679 678 18.3291 -0.506388 6.63381
680 679 19.9128 -1.86567 8.34931
681 680 19.9168 1.82248 8.38298
682 681 18.7135 -4.29264 3.45042
683 682 18.3005 0.343042 6.63151
684 683 18.8986 2.02435 7.11517
685 684 19.3184 -2.70476 7.33471
686 685 19.2592 3.03391 7.02848
687 686 17.7839 1.94008 4.60847
688 687 19.0558 -4.07756 5.63305
689 688 19.3541 5.04156 1.67317
690 689 19.321 5.16722 2.48237
691 690 18.3579 -3.56011 4.56944
692 691 19.2016 -3.46037 6.70183
693 692 19.3182 -5.17769 2.40265
694 693 18.9392 -1.87658 7.38184
695 694 19.3482 -5.06423 1.63127
696 695 19.9538 -1.35875 8.67466
697 696 18.7883 -3.45376 0
698 697 19.4088 4.82678 0.750396
699 698 19.958 1.29481 8.70619
700 699 18.434 3.64078 4.82683
701 700 19.7971 2.84183 7.96876
702 701 19.7803 -2.95622 7.88387
703 702 19.002 4.07767 5.69691
704 703 17.3483 0.0784145 4.1565
705 704 19.4021 -4.85362 0.735163
706 705 18.2272 1.33801 6.52862
707 706 19.6705 3.61525 7.32597
708 707 18.8152 4.49 4.39852
709 708 18.6849 3.17551 6.23377
710 709 19.6522 -3.7138 7.251
711 710 19.295 2.75557 7.50869
712 711 17.8134 -2.9544 2.61862
713 712 19.9868 -0.726239 8.91077
714 713 18.2558 -1.37751 6.64527
715 714 19.9899 0.6367 8.93166
716 715 18.6831 -4.41838 4.20975
717 716 19.5034 4.42914 6.32904
718 717 19.5043 -4.42516 6.33936
719 718 19.3836 4.92689 5.2686
720 719 19.2826 5.30847 3.35752
721 720 19.9999 -0.0562798 8.99947
722 721 19.3814 -4.93583 5.27337
723 722 19.2788 -5.32226 3.28747
724 723 19.176 3.52757 6.8659
725 724 18.0673 -2.48906 5.68273
726 725 18.6725 -4.06162 0.735163
727 726 18.0135 2.48917 5.64723
728 727 18.573 3.42604 0
729 728 17.7894 2.88335 1.66564
730 729 18.7692 -3.11232 6.73993
731 730 19.8458 -2.47839 8.49632
732 731 18.4113 -4.38707 2.39924
733 732 19.2195 -3.36577 7.2891
734 733 18.4373 -4.27373 1.62786
735 734 19.0615 -4.0777 6.37746
736 735 19.2504 5.42412 4.07402
737 736 17.7848 3.3943 2.62275
738 737 17.2369 1.31261 1.66564
739 738 17.8376 -1.86462 0
740 739 18.8194 -1.42927 7.86016
741 740 19.8602 2.36067 8.64954
742 741 19.2437 -5.44805 4.0468
743 742 17.2329 0.284829 1.09259
744 743 18.4568 4.04054 0.750396
745 744 16.9842 0.160785 3.08829
746 745 18.7857 4.60619 5.11493
747 746 19.7064 3.4144 7.97888
748 747 19.8991 -2.00663 8.86891
749 748 17.0292 -0.674351 3.72162
750 749 18.6558 -4.52563 4.95137
751 750 19.6698 -3.61923 7.83827
752 751 18.2176 4.1693 4.24486
753 752 19.5303 -4.30911 7.05577
754 753 19.2129 3.32658 7.51881
755 754 19.0366 4.14092 6.52188
756 755 19.5274 4.32202 7.07066
757 756 17.7971 3.01769 5.06525
758 757 18.4522 4.55149 1.7075
759 758 18.4235 4.67702 2.5167
760 759 17.5233 -0.123849 6.09142
761 760 18.7402 1.18858 7.99745
762 761 19.9124 1.8697 9.02332
763 762 19.1858 -2.1334 8.23681
764 763 18.0729 -2.4892 6.42714
765 764 16.9881 1.18857 3.66134
766 765 19.3537 5.04309 5.98501
767 766 17.6672 -2.93713 5.00105
768 767 19.3537 -5.04309 6.01499
769 768 18.7195 3.23876 7.05874
770 769 17.9578 -4.00818 3.88776
771 770 17.45 0.871118 5.98853
772 771 18.0481 2.55242 6.4722
773 772 19.9591 -1.27793 9.31411
774 773 19.7522 -3.13862 8.45071
775 774 19.1365 1.91981 8.39097
776 775 17.8789 2.72856 0
777 776 18.6423 5.10321 3.92036
778 777 19.2174 5.53993 4.78991
779 778 19.091 -3.96151 7.09387
780 779 19.2519 -1.01295 8.7718
781 780 17.3646 0.345224 0
782 781 19.9903 -0.623775 9.47652
783 782 19.2289 -1.66418 8.6094
784 783 17.45 -0.994967 6.10289
785 784 19.2108 -5.56296 4.79358
786 785 19.7841 2.93065 8.65966
787 786 18.5077 -5.03762 3.7248
788 787 17.8307 -2.81872 0
789 788 19.2173 5.54025 0.922779
790 789 17.5955 -3.03082 0.892698
791 790 18.6366 -2.54097 7.64203
792 791 18.0136 -1.04673 7.31778
793 792 19.1541 5.75495 1.84556
794 793 19.9755 0.989869 9.51884
795 794 19.571 4.12038 7.72357
796 795 19.2094 -5.56775 0.896106
797 796 19.551 -4.21425 7.64304
798 797 17.9312 3.43178 5.70858
799 798 19.1471 -5.77827 1.79221
800 799 19.2013 0.755476 8.91139
801 800 19.1803 1.43102 8.76475
802 801 17.3264 1.15782 0
803 802 16.8327 -1.59236 2.80228
804 803 17.0657 2.49376 3.43985
805 804 18.0368 -3.67725 5.71927
806 805 19.1112 5.89607 2.72071
807 806 19.9975 0.313794 9.66548
808 807 19.0639 4.03367 7.2635
809 808 19.0869 -2.79442 8.1912
810 809 19.3836 -4.92689 6.7314
811 810 19.3814 4.93583 6.72663
812 811 17.963 0.721692 7.45736
813 812 17.3766 1.86609 5.88565
814 813 19.1029 -5.9227 2.67703
815 814 19.2779 5.32548 0
816 815 18.6509 -0.524081 8.45256
817 816 18.6223 0.325348 8.45027
818 817 19.2692 -5.35716 0
819 818 19.8223 -2.65995 9.06315
820 819 19.0545 2.49081 8.40109
821 820 17.6556 -4.1026 2.83658
822 821 18.6049 5.21881 4.63624
823 822 17.3766 -1.86609 6.11435
824 823 18.4704 -5.15231 4.47158
825 824 18.5465 -4.56499 0
826 825 18.561 2.403 7.94102
827 826 17.798 4.47191 3.07954
828 827 18.2502 -4.98765 1.7888
829 828 18.3113 -4.7771 0.892698
830 829 19.0671 6.03712 3.59586
831 830 19.9071 -1.92506 9.50836
832 831 16.8777 -2.42749 3.43561
833 832 19.1835 5.6561 5.50632
834 833 17.9403 -1.91785 7.32925
835 834 17.0601 -0.626728 0
836 835 19.0576 -6.06706 3.56185
837 836 19.1794 -5.67019 5.5352
838 837 17.8896 1.71666 7.35447
839 838 18.2055 -5.13204 2.67362
840 839 19.8495 2.44905 9.34044
841 840 19.1631 -2.31478 8.80365
842 841 17.7148 3.9603 5.12661
843 842 18.2829 4.3972 5.99669
844 843 16.6542 0.119613 5.04141
845 844 18.0424 -3.67739 6.46368
846 845 18.3328 4.53906 0
847 846 19.4128 -4.8107 7.44781
848 847 17.9658 3.49503 6.53355
849 848 18.3282 5.05 0.957108
850 849 18.2663 5.26474 1.87989
851 850 19.4084 4.82858 7.46826
852 851 17.8238 -3.77281 0
853 852 19.9389 1.56211 9.83596
854 853 19.234 -1.58341 9.24885
855 854 19.5755 -4.09885 8.35955
856 855 19.9641 -1.19721 9.95356
857 856 18.2227 5.40582 2.75504
858 857 19.0301 6.15275 4.31174
859 858 17.5886 -3.98492 0.892698
860 859 17.8451 -0.141542 7.91018
861 860 17.6367 -4.12532 5.03759
862 861 19.0834 -0.107758 9.3642
863 862 19.126 2.00814 9.08187
864 863 18.3347 -4.64277 6.10121
865 864 16.5808 -0.751505 5.05287
866 865 19.0207 -6.18178 4.30863
867 866 16.5808 1.11458 4.93852
868 867 17.2944 2.80869 5.947
869 868 19.9984 -0.251521 10.1425
870 869 17.0789 3.57137 3.89663
871 870 19.6236 3.86186 8.70678
872 871 18.5039 -1.96962 8.54414
873 872 18.3102 4.28994 6.73831
874 873 19.6703 -3.61675 8.97199
875 874 16.6598 -2.50391 1.70969
876 875 17.3534 -4.19703 1.7854
877 876 17.3462 -3.05427 6.15089
878 877 19.1835 -5.6561 6.49368
879 878 19.1794 5.67019 6.4648
880 879 19.1954 1.12686 9.57739
881 880 17.8074 2.65927 7.41583
882 881 16.6584 2.41977 4.71703
883 882 18.1022 5.00981 5.51799
884 883 18.2604 -3.6789 7.49365
885 884 19.9882 0.686487 10.3315
886 885 18.9923 6.26832 5.02763
887 886 19.4411 -4.69509 8.16432
888 887 18.4026 1.56723 8.8233
889 888 18.983 -6.29644 5.05541
890 889 19.7129 3.37652 9.38756
891 890 18.5527 -4.64429 7.13117
892 891 17.383 4.26358 0.957108
893 892 16.8351 2.1819 0
894 893 18.7107 -3.93236 8.04281
895 894 17.3876 3.75263 0
896 895 18.8917 6.56535 2.15521
897 896 19.471 4.56942 8.45147
898 897 18.1493 -5.26945 5.62142
899 898 16.0338 0.487119 1.9957
900 899 16.7199 -3.57569 3.65357
901 900 19.2174 -5.53993 7.21009
902 901 17.3784 4.77453 1.91422
903 902 17.5641 -3.05579 7.18086
904 903 19.2108 5.56296 7.20642
905 904 16.6639 3.36304 1.7742
906 905 19.0655 -0.678222 9.84125
907 906 18.7869 -3.45272 8.65526
908 907 18.9663 2.93883 9.12899
909 908 16.4293 -2.50465 4.76687
910 909 18.8423 6.70593 3.03036
911 910 19.8155 -2.71023 9.9767
912 911 16.7149 -2.31186 0
913 912 18.3354 -1.06443 9.13654
914 913 18.8524 -6.67724 2.08472
915 914 18.5835 3.70244 8.36913
916 915 16.1114 1.7923 1.7742
917 916 17.2121 3.7513 6.00836
918 917 18.1109 5.70683 0.922779
919 918 18.9877 6.28238 5.98611
920 919 19.0775 0.263625 10.0302
921 920 16.6593 3.87399 2.73131
922 921 18.9877 -6.28238 6.01389
923 922 19.8338 2.57288 10.1768
924 923 19.1563 -2.36508 9.71719
925 924 18.09 3.61463 7.90906
926 925 18.8009 -6.82102 2.96953
927 926 18.0976 5.02387 6.47647
928 927 19.9023 -1.97491 10.4219
929 928 18.2847 0.703998 9.27612
930 929 18.5822 -4.52809 7.84758
931 930 16.2826 0.611163 0
932 931 17.9326 -5.88389 2.08131
933 932 16.5761 3.36237 4.77838
934 933 17.5373 5.22095 4.61662
935 934 18.1728 5.4921 0
936 935 18.1278 -3.10755 8.39575
937 936 15.785 0.363075 3.9914
938 937 19.4686 -4.57951 8.88083
939 938 15.8823 -1.26602 1.70969
940 939 16.6579 0.97649 6.99548
941 940 19.2504 -5.42412 7.92598
942 941 17.9852 6.07309 2.18954
943 942 15.8626 1.66826 3.7699
944 943 18.8454 6.69698 0.922779
945 944 19.11 2.13205 9.91825
946 945 17.3157 -4.24246 6.18743
947 946 16.4177 -3.67012 2.60239
948 947 18.154 -5.25539 6.5799
949 948 19.2437 5.44805 7.9532
950 949 18.7668 6.91418 3.8341
951 950 19.9289 1.68456 10.6723
952 951 18.5696 4.49313 8.10034
953 952 18.8364 -6.72247 0.896106
954 953 17.9073 -5.76337 0.896106
955 954 18.7531 -6.95127 3.7938
956 955 18.9201 6.48313 0
957 956 19.967 -1.14913 10.8579
958 957 16.708 -3.26596 0
959 958 18.9099 -6.51281 0
960 959 18.0761 4.40531 7.64027
961 960 17.962 6.15486 4.29212
962 961 16.4728 -3.47807 0.892698
963 962 17.9683 -5.55282 0
964 963 19.6609 -3.66743 9.88554
965 964 19.999 -0.204249 11.0469
966 965 16.5846 1.97146 6.89259
967 966 19.53 4.31043 9.43468
968 967 15.6335 -1.39007 3.70539
969 968 16.3989 -3.69283 4.80341
970 969 17.282 -5.54531 3.78235
971 970 18.9923 -6.26832 6.97237
972 971 18.7241 7.02919 4.54998
973 972 15.9402 2.97345 3.54841
974 973 17.9316 2.77886 8.79133
975 974 18.6101 -4.4125 8.56409
976 975 18.983 6.29644 6.94459
977 976 17.5336 -4.24397 7.2174
978 977 17.2276 4.70567 0
979 978 18.9877 -1.45989 10.3096
980 979 17.2456 -4.76064 0
981 980 18.7104 -7.06535 4.54058
982 981 17.223 5.21662 0.957108
983 982 18.1668 -0.159236 9.72894
984 983 18.9921 1.26882 10.3711
985 984 15.9374 -1.07397 0
986 985 19.6911 3.5014 10.2239
987 986 19.2826 -5.30847 8.64248
988 987 18.3719 -5.2569 7.60986
989 988 17.1177 5.52356 3.4513
990 989 17.3364 3.8709 7.38386
991 990 17.0104 -4.97275 0.892698
992 991 17.9246 6.27046 5.00801
993 992 18.4206 5.20023 7.84502
994 993 16.314 -1.49986 7.01503
995 994 18.7801 -3.50301 9.5688
996 995 19.3152 5.18877 8.93642
997 996 17.0976 1.82203 8.36142
998 997 17.0345 5.01195 5.49837
999 998 17.8318 -6.57476 3.6194
1000 999 15.7888 1.21995 5.94547
1001 1000 19.0301 -6.15275 7.68826
1002 1001 19.0683 -0.63016 10.7456
1003 1002 18.5919 7.37165 2.46486
1004 1003 19.9841 0.797548 11.369
1005 1004 19.0207 6.18178 7.69137
1006 1005 16.9797 -5.63974 2.73117
1007 1006 16.5023 2.91407 6.95395
1008 1007 18.4953 4.15046 9.09703
1009 1008 19.8086 -2.76054 10.8902
1010 1009 16.3986 4.62302 4.2684
1011 1010 17.8298 6.51518 1.23243
1012 1011 18.6789 -7.14846 5.44803
1013 1012 15.8663 2.52514 5.72397
1014 1013 18.6842 7.13448 5.59349
1015 1014 17.3224 4.66159 7.11508
1016 1015 17.7516 -4.24549 8.24736
1017 1016 18.4093 -5.1413 8.32575
1018 1017 19.8173 2.69687 11.0132
1019 1018 17.92 6.28452 5.96649
1020 1019 17.7946 -6.68944 4.36618
1021 1020 16.2406 -2.37098 7.02649
1022 1021 19.907 -1.92628 11.3263
1023 1022 16.9797 0.958797 8.81424
1024 1023 18.639 3.34368 9.88628
1025 1024 18.5085 7.57865 3.2686
1026 1025 18.5117 -7.57075 2.37722
1027 1026 15.5371 -2.95116 1.70969
1028 1027 17.7244 6.82213 3.72662
1029 1028 19.0731 0.374796 11.0677
1030 1029 16.9609 -5.66245 4.93219
1031 1030 16.8043 -2.42274 8.24139
1032 1031 15.482 -3.14321 3.41938
1033 1032 19.0671 -6.03712 8.40414
1034 1033 18.4814 4.94115 8.82824
1035 1034 18.5395 7.50238 1.23243
1036 1035 15.4448 -1.2564 5.96502
1037 1036 19.0576 6.06706 8.43815
1038 1037 17.7992 -6.67538 5.32466
1039 1038 18.4583 -7.70006 3.20149
1040 1039 18.2079 5.93415 7.58319
1041 1040 19.2846 -5.30135 9.45047
1042 1041 18.6842 -7.13448 6.40651
1043 1042 17.5896 -6.65961 1.18861
1044 1043 19.9697 -1.10108 11.7623
1045 1044 18.4933 -7.61561 1.18861
1046 1045 18.6789 7.14846 6.55197
1047 1046 17.0676 5.65871 0
1048 1047 18.0431 -2.02911 10.1836
1049 1048 19.4457 -4.67592 10.2071
1050 1049 15.9534 4.32772 0.957108
1051 1050 19.9191 1.79739 11.7098
1052 1051 18.4226 7.78516 4.07233
1053 1052 15.5923 -2.7591 0
1054 1053 19.3258 5.14904 9.81677
1055 1054 15.958 3.81677 0
1056 1055 17.7769 6.64582 0
1057 1056 16.1298 -4.25379 0
1058 1057 18.4039 -7.82917 4.02575
1059 1058 17.6398 7.02888 4.53036
1060 1059 17.4606 3.99049 8.75937
1061 1060 15.4055 2.24604 0
1062 1061 16.6357 -1.51755 8.83379
1063 1062 16.2101 -3.55916 7.06303
1064 1063 16.0441 -5.11283 3.54817
1065 1064 18.4116 -5.13419 9.13374
1066 1065 19.9998 -0.094428 12.0844
1067 1066 16.6265 3.03366 8.32945
1068 1067 16.8773 -5.38877 6.56493
1069 1068 18.2452 5.81947 8.32997
1070 1069 19.4797 4.53224 10.5745
1071 1070 15.2343 3.42718 1.7742
1072 1071 18.7251 -7.02655 7.47713
1073 1072 18.5869 -4.50892 9.89032
1074 1073 17.5589 -7.3266 3.02709
1075 1074 17.5711 -6.70446 0
1076 1075 18.7104 7.06535 7.45942
1077 1076 16.857 6.2726 4.98838
1078 1077 18.4862 7.63292 0
1079 1078 15.7192 3.95236 5.81736
1080 1079 17.7156 -6.4017 6.9574
1081 1080 17.1449 5.92224 6.60509
1082 1081 15.9605 -4.83914 5.1809
1083 1082 16.3551 4.34129 7.04733
1084 1083 17.4467 4.78118 8.49058
1085 1084 19.0693 -6.03001 9.21213
1086 1085 18.4748 -7.66045 0
1087 1086 19.6427 -3.76347 11.2118
1088 1087 18.3686 -7.91159 4.9332
1089 1088 15.2933 -3.00954 5.67901
1090 1089 18.3781 7.88961 5.11584
1091 1090 19.0701 6.02739 9.31851
1092 1091 16.6674 -5.74847 0
1093 1092 18.0323 -6.07106 8.15191
1094 1093 16.4281 -3.56068 8.093
1095 1094 17.1421 2.68714 9.57685
1096 1095 17.595 7.13326 5.57387
1097 1096 19.6506 3.72233 11.3638
1098 1097 16.6368 -6.41546 1.83848
1099 1098 17.505 -7.45581 3.85135
1100 1099 17.8746 -1.12392 10.776
1101 1100 17.0953 -5.39028 7.59489
1102 1101 15.6927 5.07675 2.49419
1103 1102 15.7925 2.07683 7.89954
1104 1103 17.6669 -3.16705 10.0352
1105 1104 18.7678 -6.91154 8.19302
1106 1105 17.8828 6.7829 7.19057
1107 1106 18.7531 6.95127 8.2062
1108 1107 18.4437 4.37233 10.2369
1109 1108 18.2176 8.25342 2.39483
1110 1109 19.9793 0.908827 12.4064
1111 1110 19.7848 -2.92581 11.8799
1112 1111 16.5182 6.23807 0.957108
1113 1112 18.3928 5.47022 9.45747
1114 1113 18.6954 -2.42458 11.3566
1115 1114 17.4327 5.57187 8.22179
1116 1115 15.4485 -0.399518 7.91908
1117 1116 17.0242 1.82391 10.0297
1118 1117 18.333 -7.99393 5.84065
1119 1118 15.798 4.76981 0
1120 1119 17.4695 -7.53819 4.7588
1121 1120 17.4119 -5.05964 8.7894
1122 1121 19.796 2.84936 12.0344
1123 1122 19.8905 -2.09002 12.316
1124 1123 18.0696 -5.95546 8.86779
1125 1124 18.333 7.99393 6.15935
1126 1125 17.3273 7.69817 3.65659
1127 1126 18.776 -1.59485 11.7927
1128 1127 15.4946 -4.89508 0.892698
1129 1128 18.1235 8.45805 3.19857
1130 1129 14.195 1.10248 1.7742
1131 1130 14.1174 -0.202705 1.9957
1132 1131 18.8143 -6.78386 8.98817
1133 1132 18.1585 8.38267 1.1624
1134 1133 17.8495 3.25196 10.6718
1135 1134 19.0716 -6.0229 10.0201
1136 1135 17.9183 6.70052 8.09802
1137 1136 16.6061 -7.08245 3.67695
1138 1137 17.2948 -7.65257 1.18861
1139 1138 18.8009 6.82102 9.03047
1140 1139 18.3792 -7.88701 6.91127
1141 1140 16.1775 5.60194 6.53734
1142 1141 16.4794 4.46088 8.42284
1143 1142 17.125 7.53663 1.23243
1144 1143 14.3662 -0.0786612 0
1145 1144 18.7808 -0.589893 12.1147
1146 1145 17.386 -7.2645 6.39153
1147 1146 19.2578 -5.39781 10.7767
1148 1147 18.1566 6.34854 8.9592
1149 1148 19.0826 5.98772 10.1989
1150 1149 19.9718 -1.06149 12.8206
1151 1150 18.043 -8.62836 2.61098
1152 1151 18.3686 7.91159 7.0668
1153 1152 16.5225 -6.80876 5.30969
1154 1153 17.8591 0.666159 11.5177
1155 1154 17.3581 5.31025 9.11981
1156 1155 19.9049 1.94829 12.731
1157 1156 15.6453 3.50405 7.99292
1158 1157 19.2653 5.37111 10.9566
1159 1158 16.2575 6.98711 2.49419
1160 1159 17.9816 -8.75571 3.43525
1161 1160 19.4223 -4.77235 11.5333
1162 1161 16.4654 5.25157 8.15405
1163 1162 15.7718 -4.70547 7.44053
1164 1163 13.9659 -1.95585 1.70969
1165 1164 16.6711 3.89877 9.54489
1166 1165 19.9999 -0.055564 13.1427
1167 1166 17.2763 -7.69742 0
1168 1167 18.0719 -5.94835 9.67578
1169 1168 18.6844 2.09421 12.1598
1170 1169 16.3629 6.68016 0
1171 1170 17.4319 -7.15751 7.46216
1172 1171 16.3434 -2.48224 9.88084
1173 1172 18.4248 -7.77994 7.9819
1174 1173 16.3726 -6.74143 0
1175 1174 19.6101 -3.93 12.2014
1176 1175 18.2472 -5.32307 10.4324
1177 1176 18.5023 -3.43048 11.6782
1178 1177 18.4039 7.82917 7.97425
1179 1178 19.4267 4.75417 11.7144
1180 1179 17.9487 8.82296 4.46692
1181 1180 14.5589 -4.36817 1.70969
1182 1181 15.837 2.94194 9.11497
1183 1182 17.3442 6.10094 8.85102
1184 1183 16.0884 -4.37483 8.63504
1185 1184 17.959 -8.80204 1.18861
1186 1185 18.8169 -6.77677 9.79616
1187 1186 17.134 8.05707 4.92495
1188 1187 15.1046 -2.87587 7.93863
1189 1188 17.0721 7.66727 0
1190 1189 17.7485 -6.82687 8.65667
1191 1190 16.342 -7.40842 1.83848
1192 1191 16.3237 -0.0505603 10.4939
1193 1192 16.439 -6.53508 6.94242
1194 1193 17.9067 -8.90778 4.45295
1195 1194 18.8152 6.78152 9.91082
1196 1195 19.6208 3.87604 12.385
1197 1196 17.3273 -3.98121 10.5772
1198 1197 14.021 -1.7638 0
1199 1198 16.7556 -6.20444 8.13693
1200 1199 18.1691 6.30887 9.83956
1201 1200 17.0573 -8.37484 3.26085
1202 1201 14.5284 3.88091 0
1203 1202 18.671 -2.58997 12.3463
1204 1203 14.614 -4.17611 0
1205 1204 19.7596 -3.09133 12.8696
1206 1205 18.3412 5.69209 10.5973
1207 1206 18.4777 -7.65333 8.77705
1208 1207 19.9701 1.09256 13.4017
1209 1208 14.3043 3.12015 6.3366
1210 1209 17.7977 9.12374 2.3248
1211 1210 18.4583 7.70006 8.79851
1212 1211 17.8978 8.92575 5.51043
1213 1212 17.8298 7.22959 8.72725
1214 1213 17.9497 8.82085 0
1215 1214 17.6542 4.28061 11.0224
1216 1215 17.9373 -8.8461 0
1217 1216 17.5823 -2.08861 11.823
1218 1217 17.8662 -8.98881 5.3604
1219 1218 17.0722 -5.8738 9.33145
1220 1219 19.7734 3.00207 13.0556
1221 1220 18.7654 1.20019 12.8564
1222 1221 19.8947 -2.04985 13.3743
1223 1222 14.8751 -5.81578 4.25533
1224 1223 15.1516 -5.6708 0
1225 1224 18.7781 -1.55527 12.851
1226 1225 17.801 -6.70017 9.45182
1227 1226 16.9734 -8.52376 4.27855
1228 1227 13.3529 0.517281 4.70618
1229 1228 15.1209 -6.33779 1.83848
1230 1229 13.4305 1.82247 4.48469
1231 1230 15.4981 4.93128 8.08631
1232 1231 15.0933 5.79126 0
1233 1232 16.3769 5.78064 8.78328
1234 1233 18.5297 -7.52654 9.5722
1235 1234 15.1366 1.06747 9.57924
1236 1235 17.8978 -8.92575 6.48957
1237 1236 16.8898 -8.25007 5.91128
1238 1237 16.7279 8.41268 1.1624
1239 1238 18.4891 3.12286 12.5104
1240 1239 13.2014 -1.23586 4.42018
1241 1240 18.8778 -6.60512 10.8651
1242 1241 15.5001 7.18057 4.14008
1243 1242 18.5117 7.57075 9.62278
1244 1243 13.4891 1.55621 0
1245 1244 17.8837 7.10038 9.55151
1246 1245 15.6899 4.36916 9.20835
1247 1246 17.8857 8.94995 6.71759
1248 1247 19.9739 -1.02193 13.879
1249 1248 17.6083 9.48407 3.59316
1250 1249 18.8776 6.60583 10.9916
1251 1250 19.0846 -5.98137 11.6217
1252 1251 16.7931 -8.70081 1.42237
1253 1252 19.8857 2.13487 13.7263
1254 1253 17.2556 6.63001 9.48025
1255 1254 16.5686 5.21853 9.90533
1256 1255 17.5668 -0.29853 12.5648
1257 1256 15.9635 7.35087 6.37738
1258 1257 14.1184 4.84224 5.30008
1259 1258 19.0817 5.99059 11.7494
1260 1259 17.9499 -8.82039 7.56019
1261 1260 16.0778 -7.73438 0
1262 1261 16.925 -8.18831 7.04046
1263 1262 18.6624 2.24681 13.181
1264 1263 19.9996 0.124953 14.1379
1265 1264 17.5084 -9.66724 2.84475
1266 1265 14.7926 -1.40888 9.59879
1267 1266 17.5695 9.5558 1.1624
1268 1267 17.8685 -6.52949 10.5208
1269 1268 17.9261 8.86886 7.62504
1270 1269 19.3335 -5.12004 12.5871
1271 1270 16.2514 7.00051 7.99409
1272 1271 13.3567 1.37416 6.66025
1273 1272 15.805 -3.93197 10.1383
1274 1273 18.7626 0.234813 13.5927
1275 1274 15.8816 3.80705 10.3304
1276 1275 14.3359 5.98472 1.64589
1277 1276 18.073 8.56539 8.51061
1278 1277 16.7015 8.21153 6.96287
1279 1278 13.7425 -4.32356 5.63843
1280 1279 18.4102 -3.77819 12.7319
1281 1280 17.9639 -4.88021 11.9356
1282 1281 19.5374 -4.27689 13.2552
1283 1282 16.7165 2.6493 11.8184
1284 1283 18.5981 -7.356 10.6412
1285 1284 14.2304 2.67184 8.51216
1286 1285 19.3418 5.08867 12.7786
1287 1286 15.4371 -7.7854 4.38411
1288 1287 16.0315 -1.01525 11.541
1289 1288 17.4252 -9.81642 3.86245
1290 1289 16.9923 -8.06727 8.03883
1291 1290 18.5821 7.39627 10.7036
1292 1291 18.0101 -8.69692 8.55856
1293 1292 15.6581 7.70162 0
1294 1293 15.9705 8.60614 2.80829
1295 1294 17.9532 6.92575 10.6323
1296 1295 12.7246 2.2762 2.71048
1297 1296 14.8568 -6.66375 0
1298 1297 17.9287 4.85505 12.1026
1299 1298 19.5519 4.20967 13.4493
1300 1299 16.6973 -8.87045 0
1301 1300 17.4135 -9.83723 1.42237
1302 1301 19.9592 1.27686 14.3969
1303 1302 17.3089 -7.73663 9.23334
1304 1303 17.411 9.84153 4.86151
1305 1304 16.737 8.12916 7.87031
1306 1305 17.0439 -3.53834 12.0805
1307 1306 16.7888 -5.43094 10.8347
1308 1307 13.0127 -1.10219 6.6798
1309 1308 18.133 8.43762 9.33487
1310 1309 15.3535 -7.51172 6.01685
1311 1310 18.7553 1.38421 13.8517
1312 1311 17.4829 7.96135 9.26361
1313 1312 16.494 8.84264 0
1314 1313 18.6371 -2.79267 13.5551
1315 1314 14.5768 6.49182 6.02007
1316 1315 15.1811 1.93258 10.7947
1317 1316 19.7269 -3.29387 14.0784
1318 1317 17.3406 -9.96506 4.88015
1319 1318 18.0699 -8.57198 9.35372
1320 1319 13.0428 -3.18081 0
1321 1320 13.4125 5.29597 3.52588
1322 1321 15.4502 -8.3729 1.83848
1323 1322 15.2841 6.68021 7.92634
1324 1323 16.8432 5.79297 10.9855
1325 1324 17.5514 1.49155 13.3065
1326 1325 17.3976 9.86526 6.06867
1327 1326 17.376 -9.90335 6.00932
1328 1327 19.873 -2.25024 14.5831
1329 1328 19.7441 3.18892 14.303
1330 1329 14.9007 7.89507 1.64589
1331 1330 15.8883 -9.0778 3.96801
1332 1331 16.1629 7.52958 8.62332
1333 1332 15.7772 8.96503 4.07665
1334 1333 12.4498 -0.768485 0
1335 1334 18.401 3.45738 13.5747
1336 1335 14.0833 4.09907 8.60555
1337 1336 16.016 0.774834 12.2827
1338 1337 17.3299 9.98365 0
1339 1338 18.6648 -7.18517 11.7101
1340 1339 16.1562 4.38149 11.4106
1341 1340 17.3167 -10.0065 0
1342 1341 17.3621 -7.63818 10.1872
1343 1342 14.9888 -5.82313 8.90358
1344 1343 13.6358 -5.59312 0
1345 1344 18.6507 7.22148 11.7843
1346 1345 18.9724 -6.32837 12.6755
1347 1346 13.4986 5.40057 0
1348 1347 17.117 -2.27551 13.1581
1349 1348 16.2405 9.13534 6.31394
1350 1349 16.0504 9.38375 1.1624
1351 1350 17.411 -9.84153 7.13849
1352 1351 14.221 -6.0195 7.39995
1353 1352 13.9519 -7.04074 2.54564
1354 1353 16.9911 3.22374 12.8986
1355 1354 18.1172 -8.47165 10.3076
1356 1355 13.5538 -4.18989 7.89805
1357 1356 18.9737 6.32442 12.8136
1358 1357 14.275 3.53695 9.7276
1359 1358 18.3128 -1.74217 14.1861
1360 1359 18.1143 8.47781 10.3463
1361 1360 17.5851 -6.08662 12.024
1362 1361 14.8515 5.64595 9.22044
1363 1362 15.8044 -9.22671 4.98571
1364 1363 17.462 8.00089 10.275
1365 1364 12.2264 -3.1362 3.92873
1366 1365 15.4931 -2.46498 11.7985
1367 1366 17.3841 9.88897 7.27583
1368 1367 17.5498 9.59185 8.1614
1369 1368 15.656 -7.65274 8.40548
1370 1369 19.865 2.32007 14.9736
1371 1370 15.7303 6.49532 9.91741
1372 1371 17.7101 9.29268 9.04697
1373 1372 17.5408 6.08871 12.1376
1374 1373 16.9803 10.5673 2.46457
1375 1374 19.2381 -5.46776 13.6408
1376 1375 18.6322 2.4338 14.4284
1377 1376 11.6853 -0.0484988 2.71048
1378 1377 17.4788 -9.72067 8.13686
1379 1378 15.8396 -9.16495 6.11488
1380 1379 17.8718 -5.22792 12.9894
1381 1380 13.8974 5.82115 7.56903
1382 1381 19.9733 -1.03342 15.3355
1383 1382 15.9726 -7.3221 9.59999
1384 1383 15.9014 -9.6653 1.42237
1385 1384 14.4806 0.0581152 11.259
1386 1385 15.0433 5.08383 10.3425
1387 1386 12.4566 3.59087 0
1388 1387 12.7007 0.364801 8.33996
1389 1388 12.8194 -5.54852 3.92873
1390 1389 19.2507 5.4232 13.8429
1391 1390 15.186 -8.69887 0
1392 1391 16.2271 9.15906 7.5211
1393 1392 17.1016 -0.485427 13.8998
1394 1393 17.8407 5.18957 13.1669
1395 1394 19.4916 -4.48082 14.464
1396 1395 16.3901 8.86091 8.40667
1397 1396 14.0634 7.31092 0
1398 1397 18.0987 -4.2424 13.8126
1399 1398 14.6067 8.25884 5.52908
1400 1399 14.1433 8.08853 3.29178
1401 1400 19.9997 0.113652 15.5944
1402 1401 18.762 0.22332 15.0492
1403 1402 16.5055 -4.98807 12.338
1404 1403 14.9806 8.67268 0
1405 1404 13.5745 1.66249 10.1919
1406 1405 17.5457 -9.59946 9.13523
1407 1406 18.195 -8.3032 11.3765
1408 1407 19.5105 4.39792 14.6966
1409 1408 18.194 8.30541 11.427
1410 1409 16.7699 -10.8982 2.68177
1411 1410 16.7593 10.9144 3.73293
1412 1411 15.5662 -1.20215 12.8761
1413 1412 16.4308 4.95593 12.4908
1414 1413 13.2418 -2.7229 9.55821
1415 1414 13.965 -7.62824 0
1416 1415 15.8165 9.8137 0
1417 1416 17.0787 -7.19532 11.6904
1418 1417 15.8055 -9.83494 0
1419 1418 17.6892 9.33224 10.0584
1420 1419 19.9596 1.2708 15.7928
1421 1420 18.7557 1.37814 15.2476
1422 1421 19.6919 -3.49673 15.2872
1423 1422 11.6948 3.79586 2.71048
1424 1423 14.2681 -8.48836 5.09128
1425 1424 17.0495 7.16385 11.7803
1426 1425 16.6754 -11.0422 3.69947
1427 1426 16.7142 10.9834 1.30217
1428 1427 15.0701 8.42914 7.76638
1429 1428 16.5786 -3.72524 13.4156
1430 1429 14.2543 -5.24599 10.0977
1431 1430 13.3061 7.50438 1.64589
1432 1431 16.3692 8.90045 9.41807
1433 1432 16.6621 -11.0623 1.25939
1434 1433 11.4173 1.26617 0
1435 1434 14.4667 3.61149 11.4385
1436 1435 17.5991 -9.50112 10.0891
1437 1436 16.1421 -9.30596 8.50351
1438 1437 11.7946 1.96917 7.27288
1439 1438 16.6875 11.0239 5.4363
1440 1439 14.2232 8.86614 1.64589
1441 1440 15.3179 5.65828 11.4227
1442 1441 19.713 3.37606 15.5503
1443 1442 18.1719 -2.97957 14.8902
1444 1443 14.2812 -9.07586 2.54564
1445 1444 18.4241 -7.78152 12.6995
1446 1445 13.22 7.39978 5.17177
1447 1446 16.6479 -11.0836 5.43452
1448 1447 15.09 10.0198 2.94806
1449 1448 15.3016 2.45374 12.9266
1450 1449 14.6375 7.39488 9.06048
1451 1450 15.6893 -6.87923 11.1032
1452 1451 12.6684 3.26686 9.12479
1453 1452 18.4153 7.80226 12.8147
1454 1453 18.7613 -6.92914 13.6648
1455 1454 19.8717 -2.26194 16.0396
1456 1455 13.1356 -6.99614 6.47437
1457 1456 13.4367 4.81374 9.73968
1458 1457 11.4619 -2.41621 6.63922
1459 1458 14.5706 -8.62938 7.4799
1460 1459 16.6875 -11.0239 6.5637
1461 1460 11.6087 3.69126 6.23636
1462 1461 15.9367 7.86619 10.7122
1463 1462 17.3341 -6.6808 13.0134
1464 1463 16.2094 -9.18493 9.50188
1465 1464 16.8601 2.80633 14.3926
1466 1465 18.7685 6.90973 13.844
1467 1466 15.1033 -10.285 3.80503
1468 1467 10.9208 0.671488 5.42097
1469 1468 16.6724 11.0468 6.64346
1470 1469 16.5855 11.1769 0
1471 1470 13.6833 7.57009 7.40907
1472 1471 15.0106 10.1248 4.65144
1473 1472 16.5717 -11.1972 0
1474 1473 12.3827 6.81563 3.52588
1475 1474 17.6683 9.37176 11.0698
1476 1475 17.652 -9.40256 11.0429
1477 1476 17.2955 6.6674 13.1679
1478 1477 12.4825 4.98894 8.08827
1479 1478 18.3122 -1.75366 15.6426
1480 1479 16.6518 -2.46241 14.4932
1481 1480 13.7663 1.73703 11.9028
1482 1481 16.8754 -10.7342 8.31317
1483 1482 10.6528 1.98616 2.71048
1484 1483 19.8657 2.31392 16.3695
1485 1484 14.205 6.36062 10.3546
1486 1485 16.8362 10.7954 8.28402
1487 1486 15.073 -10.3247 5.54009
1488 1487 15.474 10.2951 6.88874
1489 1488 17.7098 4.77215 14.6608
1490 1489 17.0186 10.5056 9.16959
1491 1490 13.3859 8.28199 0
1492 1491 13.2508 6.53583 8.70317
1493 1492 14.7413 4.18593 12.5188
1494 1493 15.2793 -10.0455 7.28956
1495 1494 14.8518 0.476765 13.5199
1496 1495 12.4688 6.92022 0
1497 1496 10.8933 -2.47899 0
1498 1497 17.8129 -5.42709 14.547
1499 1498 16.2625 -9.08648 10.4557
1500 1499 19.1803 -5.66697 15.1984
1501 1500 11.4863 -4.89131 0
1502 1501 15.1699 10.7974 1.30217
1503 1502 14.3031 9.64375 0
1504 1503 19.9727 -1.04491 16.792
1505 1504 17.9153 -8.89049 12.3659
1506 1505 16.2998 4.53852 13.9848
1507 1506 14.2943 -9.66336 0
1508 1507 16.9498 -10.6162 9.31154
1509 1508 12.3348 -6.95682 0
1510 1509 17.9217 8.87759 12.4574
1511 1510 15.1164 -10.8725 1.25939
1512 1511 15.6538 10.0529 8.5293
1513 1512 13.4381 -7.13715 8.863
1514 1513 11.4268 5.11053 0
1515 1514 12.8601 3.3414 10.8357
1516 1515 17.9409 3.74858 15.5145
1517 1516 19.1986 5.60481 15.4753
1518 1517 19.9997 0.107715 16.9903
1519 1518 19.4447 -4.67995 16.0216
1520 1519 16.5179 -8.57195 11.7787
1521 1520 12.003 -5.50392 7.85747
1522 1521 12.2966 6.71103 7.05176
1523 1522 16.0366 11.951 2.60434
1524 1523 12.651 -8.40444 2.54564
1525 1524 15.2213 9.01859 9.8234
1526 1525 10.1288 -1.759 2.71048
1527 1526 13.6284 4.88828 11.4506
1528 1527 14.8731 -8.77039 9.86853
1529 1528 16.9949 10.5439 10.181
1530 1529 17.0094 -10.5205 10.2654
1531 1530 17.8861 -4.16426 15.6246
1532 1531 13.0418 -2.28108 11.9112
1533 1532 15.9385 -12.0816 2.51878
1534 1533 19.96 1.26473 17.1887
1535 1534 15.9576 12.0563 4.30772
1536 1535 15.0281 10.9831 0
1537 1536 19.4687 4.57939 16.329
1538 1537 10.6699 -4.84671 3.92873
1539 1538 15.0167 -11.0018 0
1540 1539 11.5184 -6.91221 3.92873
1541 1540 18.1627 -8.37352 13.6888
1542 1541 15.9082 -12.1214 4.25384
1543 1542 15.896 12.1374 1.30217
1544 1543 18.0644 2.69292 16.3337
1545 1544 10.3847 3.30083 0
1546 1545 18.1602 8.37887 13.845
1547 1546 15.8393 -12.2113 1.25939
1548 1547 15.2609 6.36422 13.0513
1549 1548 17.1646 6.24999 14.6619
1550 1549 9.92402 -0.753559 0
1551 1550 15.5818 -10.1865 9.67819
1552 1551 12.0294 0.24202 11.3717
1553 1552 18.6871 -7.12689 15.2224
1554 1553 15.8779 -12.1611 5.9889
1555 1554 15.8779 12.1611 6.0111
1556 1555 12.6641 -8.99194 0
1557 1556 13.115 -1.01824 12.9888
1558 1557 16.0867 -11.8835 7.73838
1559 1558 13.0065 9.88204 1.64589
1560 1559 14.6104 3.76852 14.0127
1561 1560 16.0596 11.9201 7.65166
1562 1561 15.8797 8.57213 12.3408
1563 1562 12.6325 9.49025 4.47208
1564 1563 13.0519 3.41594 12.5467
1565 1564 18.7011 7.09004 15.4764
1566 1565 15.7531 12.3224 0
1567 1566 15.1219 -6.65476 13.2557
1568 1567 15.7391 -12.3402 0
1569 1568 10.2495 0.548706 8.45271
1570 1569 14.148 7.06656 11.9832
1571 1570 13.0959 9.66056 6.70938
1572 1571 11.1233 1.84639 10.3046
1573 1572 17.0737 -10.4157 11.8923
1574 1573 16.1689 4.12111 15.4788
1575 1574 9.15956 -0.0335723 2.71048
1576 1575 17.0587 10.4404 11.9535
1577 1576 16.2905 -11.6026 9.48785
1578 1577 16.2375 11.6766 9.29222
1579 1578 10.7906 -2.539 9.67096
1580 1579 14.0064 9.93245 8.84074
1581 1580 11.7953 8.9061 2.82619
1582 1581 13.0109 -10.495 2.54564
1583 1582 10.3446 3.66115 8.13302
1584 1583 13.8453 11.4008 3.38389
1585 1584 9.35388 -1.71977 5.71048
1586 1585 17.6568 4.95374 16.2933
1587 1586 15.6529 -10.0853 11.3051
1588 1587 19.1204 -5.8661 16.756
1589 1588 16.1257 8.07568 13.7284
1590 1589 12.8706 -6.91268 11.0155
1591 1590 19.6014 -3.973 17.6436
1592 1591 9.3823 3.92256 2.71048
1593 1592 12.1692 9.29788 0
1594 1593 13.5739 8.89819 10.1348
1595 1594 16.4729 1.25183 16.6532
1596 1595 17.3689 -9.91576 13.2153
1597 1596 14.1389 -11.3809 6.67306
1598 1597 19.9932 -0.51991 18.396
1599 1598 19.6136 3.91248 17.7752
1600 1599 15.1643 9.72453 11.452
1601 1600 18.0752 -3.45641 17.2466
1602 1601 11.2184 4.95884 9.98493
1603 1602 13.5715 5.59422 13.0792
1604 1603 13.9531 11.8133 1.30217
1605 1604 13.0864 10.6596 0
1606 1605 17.3444 9.95852 13.3411
1607 1606 11.7092 8.80151 6.35206
1608 1607 12.6197 9.0734 8.48342
1609 1608 15.13 5.9468 14.5453
1610 1609 9.89498 -4.80748 6.92873
1611 1610 19.1447 5.78637 17.1078
1612 1611 10.1853 -6.255 0
1613 1612 19.9901 0.628723 18.5943
1614 1613 14.3057 -8.54591 12.021
1615 1614 11.9867 6.50572 10.5998
1616 1615 13.6718 -11.8111 4.50448
1617 1616 8.89151 1.2811 0
1618 1617 15.9505 -8.34748 13.9312
1619 1618 10.0702 6.94234 3.52588
1620 1619 19.8124 -2.73324 18.396
1621 1620 9.33683 -4.1895 0
1622 1621 11.315 1.92093 12.0156
1623 1622 16.3619 -11.5016 11.1148
1624 1623 13.4998 11.5265 5.83173
1625 1624 11.0338 -8.32051 0
1626 1625 16.3087 11.5769 11.0647
1627 1626 11.0325 6.68093 8.94841
1628 1627 13.024 -11.0825 0
1629 1628 14.4103 11.7984 7.96309
1630 1629 13.8114 11.9989 0
1631 1630 19.7965 2.84551 18.5943
1632 1631 13.8461 -12.2916 1.25939
1633 1632 10.1563 7.04693 0
1634 1633 14.4414 -11.5219 9.06168
1635 1634 14.9271 13.3109 1.30217
1636 1635 14.8577 13.3883 3.04017
1637 1636 16.0231 -0.725152 17.2466
1638 1637 14.8662 -13.3789 1.25939
1639 1638 14.5901 11.5562 9.60366
1640 1639 11.4101 5.03338 11.6959
1641 1640 17.8337 4.28577 17.7394
1642 1641 15.6092 -5.06818 16.169
1643 1642 8.56187 -4.15027 3
1644 1643 8.10726 1.70101 2.71048
1645 1644 9.31434 -6.45445 3.92873
1646 1645 9.11424 5.23724 0
1647 1646 17.5061 -9.67136 14.8101
1648 1647 14.7689 13.4863 4.74355
1649 1648 13.7464 -12.4209 0
1650 1649 11.6582 -3.94776 12.829
1651 1650 17.6835 -0.0164052 18.396
1652 1651 8.36755 -2.46406 0
1653 1652 14.0911 7.7725 13.6118
1654 1653 15.2352 9.62469 13.2245
1655 1654 14.9821 -13.2491 7.12187
1656 1655 17.4855 9.70861 14.9536
1657 1656 19.3234 -5.15824 18.378
1658 1657 14.77 13.485 0
1659 1658 14.5882 -13.6815 3.21824
1660 1659 14.7561 -13.5003 0
1661 1660 18.1271 -8.45032 16.3437
1662 1661 14.2231 2.21402 16.2733
1663 1662 17.6771 1.13842 18.5943
1664 1663 14.8121 13.4388 6.72244
1665 1664 16.4328 -11.4002 12.7417
1666 1665 12.3506 -9.96886 9.28616
1667 1666 15.2108 -12.9858 8.87135
1668 1667 19.334 5.11834 18.5539
1669 1668 13.5169 9.60413 11.7634
1670 1669 14.5538 -13.7181 4.9533
1671 1670 11.3937 -10.4111 0
1672 1671 8.68253 -1.84256 8.74223
1673 1672 16.3793 11.4769 12.8372
1674 1673 15.0141 13.2128 8.36301
1675 1674 18.1287 8.4469 16.585
1676 1675 14.4722 -11.4915 10.765
1677 1676 15.6824 -3.80534 17.2466
1678 1677 15.0855 -9.86082 13.4576
1679 1678 17.3428 -3.09659 18.396
1680 1679 11.9297 7.21166 12.2284
1681 1680 14.661 11.4563 11.3761
1682 1681 15.7816 2.56661 17.7394
1683 1682 7.59259 -2.42483 3
1684 1683 11.4957 11.2838 2.82619
1685 1684 9.57814 0.425924 11.4845
1686 1685 16.4378 -6.7609 16.8444
1687 1686 7.83921 3.01568 0
1688 1687 20 -2.44921e-15 20
1689 1688 9.67326 3.53837 11.1648
1690 1689 12.0323 11.1639 7.78373
1691 1690 8.80606 6.91223 5.42254
1692 1691 10.4451 8.7714 8.24872
1693 1692 11.8696 11.6755 0
1694 1693 11.1218 10.892 5.65237
1695 1694 12.6376 0.663821 15.8791
1696 1695 7.39827 -0.738632 0
1697 1696 15.1817 13.0198 10.3301
1698 1697 19.8791 2.19542 20
1699 1698 19.8791 -2.19542 20
1700 1699 15.398 9.38502 14.837
1701 1700 15.2388 -12.953 10.5747
1702 1701 11.2181 -8.47664 10.6693
1703 1702 13.7382 -8.32144 14.1735
1704 1703 10.613 -10.5476 4.66741
1705 1704 7.78692 -4.11104 6
1706 1705 9.48276 9.03281 2.82619
1707 1706 11.3556 9.04329 10.3801
1708 1707 16.5925 -11.1664 14.3365
1709 1708 12.9427 11.4358 9.91509
1710 1709 12.7084 13.1943 1.738
1711 1710 12.3345 12.8025 4.56418
1712 1711 9.85669 9.42459 0
1713 1712 9.45442 -6.05994 10.0928
1714 1713 16.5439 11.2382 14.4497
1715 1714 12.6531 -10.1099 11.6748
1716 1715 18.6274 -7.28157 18.378
1717 1716 12.7845 13.1235 0
1718 1717 16.9167 -5.50719 18.378
1719 1718 9.48044 -9.05542 6.0505
1720 1719 7.98124 -5.79724 0
1721 1720 8.82974 -7.86275 0
1722 1721 15.2435 -9.62607 15.0524
1723 1722 12.1455 -2.36118 15.7422
1724 1723 12.3815 12.7589 6.54308
1725 1724 18.6428 7.24206 18.5539
1726 1725 9.76837 6.65082 10.8451
1727 1726 9.77721 -9.90477 0
1728 1727 19.4986 4.45042 20
1729 1728 19.4986 -4.45042 20
1730 1729 13.292 13.0308 8.67444
1731 1730 11.7536 -12.5016 0
1732 1731 6.5403 -0.690256 3
1733 1732 15.511 7.62626 16.9225
1734 1733 17.6972 0.506051 20
1735 1734 12.7198 -13.5429 0
1736 1735 13.275 -1.78884 17.2466
1737 1736 15.319 -12.8579 12.2016
1738 1737 15.2615 12.9261 12.1026
1739 1738 13.6235 14.6424 1.738
1740 1739 12.9568 5.14479 16.2733
1741 1740 13.5472 14.713 3.476
1742 1741 13.9047 -11.2671 12.9175
1743 1742 13.6994 14.5714 0
1744 1743 7.01196 -4.07181 0
1745 1744 13.6859 -14.5841 0
1746 1745 7.20628 -5.75801 3
1747 1746 12.4145 -13.8177 1.95885
1748 1747 13.5943 14.6695 5.45489
1749 1748 14.0097 -14.2734 8.25484
1750 1749 17.4464 2.73126 20
1751 1750 17.3565 -2.57414 20
1752 1751 16.7487 -10.9307 15.9314
1753 1752 7.84375 7.17364 0
1754 1753 10.8377 3.60299 14.9058
1755 1754 7.01265 1.86088 8.33162
1756 1755 13.4769 12.8539 10.6415
1757 1756 13.3834 -14.8622 1.95885
1758 1757 6.27545 0.836766 5.39702
1759 1758 13.5492 -14.7112 6.08627
1760 1759 14.5153 5.49738 17.7394
1761 1760 6.34597 0.995946 0
1762 1761 14.2678 10.8028 14.3039
1763 1762 14.2256 -6.73486 17.0867
1764 1763 16.7049 10.9975 16.0622
1765 1764 13.6413 14.6258 7.43379
1766 1765 16.0032 6.33 18.5539
1767 1766 15.5276 -12.6053 13.806
1768 1767 8.99583 -10.4637 2.12177
1769 1768 6.80324 3.97498 7.477
1770 1769 12.1065 10.2419 12.9206
1771 1770 18.8872 6.5784 20
1772 1771 18.8872 -6.5784 20
1773 1772 8.24197 -3.09502 11.9063
1774 1773 15.4587 12.6897 13.9166
1775 1774 14.0405 -14.2431 9.95818
1776 1775 13.0754 -15.1338 3.91769
1777 1776 14.1342 -11.0323 14.5219
1778 1777 6.56871 4.95208 0
1779 1778 10.1371 -11.9953 0
1780 1779 17.1057 -4.79935 20
1781 1780 15.7308 -8.03949 17.9657
1782 1781 13.8273 14.4501 9.40085
1783 1782 10.322 -7.4687 13.2509
1784 1783 13.6937 12.6344 12.4556
1785 1784 13.4765 7.32307 16.8059
1786 1785 17.4233 -9.81976 17.9657
1787 1786 7.34635 -5.3635 9.16411
1788 1787 17.4038 9.85428 18.0311
1789 1788 12.0857 -9.8854 13.8273
1790 1789 15.3943 1.0121 20
1791 1790 7.37237 -8.35898 5.12177
1792 1791 9.10079 2.10799 14.3747
1793 1792 11.3151 6.76223 15.4225
1794 1793 12.2214 -12.8614 10.8679
1795 1794 11.4939 14.1502 0
1796 1795 15.0536 -2.06809 20
1797 1796 15.7055 -12.383 15.4009
1798 1797 11.8183 -4.71835 17.0867
1799 1798 14.011 14.272 11.3679
1800 1799 9.73821 -0.344672 15.7422
1801 1800 14.0712 -14.2127 11.6615
1802 1801 16.1802 5.66203 20
1803 1802 9.1959 5.22043 14.055
1804 1803 15.6421 12.463 15.5291
1805 1804 6.62564 -7.40498 0
1806 1805 10.4837 -13.4402 6.24919
1807 1806 7.57312 -9.44701 0
1808 1807 9.30634 12.4847 2.82619
1809 1808 9.35574 -12.5543 2.12177
1810 1809 5.29368 2.73052 0
1811 1810 11.4301 -14.5672 0
1812 1811 12.3668 15.7182 1.738
1813 1812 9.68027 12.8765 0
1814 1813 14.7834 8.93559 18.0311
1815 1814 16.3662 -6.91298 20
1816 1815 12.4482 15.6539 0
1817 1816 10.5687 14.1017 5.22956
1818 1817 12.4354 -15.664 0
1819 1818 8.52059 -11.489 0
1820 1819 18.0194 8.67767 20
1821 1820 18.0194 -8.67767 20
1822 1821 5.44568 -0.530378 8.62114
1823 1822 9.6555 12.0913 8.7581
1824 1823 14.3026 -13.9798 13.2659
1825 1824 10.8571 13.9283 7.76775
1826 1825 14.2295 14.0542 13.182
1827 1826 10.0166 -13.8704 4.08062
1828 1827 10.519 14.3952 1.738
1829 1828 12.2522 -12.831 12.5713
1830 1829 12.0089 2.40108 18.6325
1831 1830 12.1121 -15.9153 1.95885
1832 1831 6.3413 1.7381 11.3634
1833 1832 14.7129 -5.14828 20
1834 1833 4.70848 -1.5545 5.68653
1835 1834 4.68044 -3.00504 3
1836 1835 7.66732 10.6255 0
1837 1836 14.1281 3.94287 20
1838 1837 10.566 12.3632 10.8895
1839 1838 11.7676 14.2002 9.89911
1840 1839 8.9788 9.9707 11.3545
1841 1840 7.34452 -1.0194 13.8656
1842 1841 4.48611 -1.31884 0
1843 1842 6.79174 -10.006 2.12177
1844 1843 6.43641 4.85055 11.0437
1845 1844 11.8455 16.1147 4.14137
1846 1845 12.1732 -15.8686 7.33522
1847 1846 7.27672 9.84431 8.09537
1848 1847 16.212 -11.712 17.9657
1849 1848 14.5302 -13.7431 14.8703
1850 1849 11.8968 16.0769 6.12027
1851 1850 9.47893 -13.7852 0
1852 1851 7.95342 11.9649 5.49903
1853 1852 12.4816 -12.5962 14.1757
1854 1853 15.4406 7.77566 20
1855 1854 16.1885 11.7445 18.0311
1856 1855 12.6463 -0.051583 20
1857 1856 7.73921 -12.048 2.12177
1858 1857 5.26469 7.22605 4.76651
1859 1858 8.69547 -12.0281 8.8623
1860 1859 13.6532 10.3533 17.498
1861 1860 8.66945 -9.03266 12.9046
1862 1861 11.6657 -16.2453 5.16665
1863 1862 14.4446 13.833 14.9961
1864 1863 6.93181 -9.61144 8.28588
1865 1864 4.19906 2.8904 5.62114
1866 1865 12.1683 15.8724 8.65846
1867 1866 12.3802 -9.67179 17.0867
1868 1867 6.31441 10.1057 2.67284
1869 1868 12.2524 -15.8076 9.33735
1870 1869 6.22701 6.96464 10.189
1871 1870 10.4331 -11.4494 13.4811
1872 1871 12.0494 14.0176 12.4649
1873 1872 11.376 -16.4495 3.61993
1874 1873 6.90579 -6.61596 12.3282
1875 1874 12.3056 -3.13177 20
1876 1875 5.88717 -9.334 0
1877 1876 15.1748 -8.80904 20
1878 1877 8.40204 -3.86562 16.1641
1879 1878 12.3696 15.716 10.6255
1880 1879 16.942 10.6286 20
1881 1880 16.942 -10.6286 20
1882 1881 4.0998 -4.65201 0
1883 1882 3.46186 1.86628 2.68653
1884 1883 13.8854 -10.9764 17.9657
1885 1884 6.83464 -11.376 0
1886 1885 9.03215 -14.6198 2.12177
1887 1886 3.98966 5.0045 4.76651
1888 1887 3.43382 0.415742 0
1889 1888 12.2864 -15.7812 11.0407
1890 1889 10.7426 5.33184 18.6325
1891 1890 11.1181 16.6249 0
1892 1891 15.0972 -13.1177 17.4352
1893 1892 11.1065 -16.6327 0
1894 1893 7.8624 -13.2789 0
1895 1894 11.3169 13.5618 13.4299
1896 1895 5.00512 -1.78284 11.7852
1897 1896 15.0565 13.1644 17.498
1898 1897 11.3801 2.87919 20
1899 1898 12.8618 6.87364 20
1900 1899 6.95783 -12.6069 4.24354
1901 1900 8.62344 3.79005 17.265
1902 1901 12.7238 -15.4307 12.9136
1903 1902 9.3045 15.3511 0
1904 1903 11.1921 10.4855 16.8059
1905 1904 9.26086 1.33739 18.6325
1906 1905 10.5714 16.9778 2.40338
1907 1906 12.6339 15.5044 13.1914
1908 1907 10.388 -14.2836 11.9505
1909 1908 4.86672 9.13928 0
1910 1909 8.56552 -14.9131 5.32957
1911 1910 14.2492 9.67172 20
1912 1911 10.6179 12.3171 14.9575
1913 1912 12.8675 -8.08521 20
1914 1913 6.05326 -11.935 2.12177
1915 1914 5.86394 3.42016 14.2536
1916 1915 8.65041 -14.8624 7.3317
1917 1916 9.03075 9.92463 15.4225
1918 1917 9.51888 -8.37779 17.0867
1919 1918 8.26062 -15.0861 3.78286
1920 1919 6.00835 -4.54034 14.2875
1921 1920 12.9749 -15.2201 14.518
1922 1921 10.3433 -17.1177 1.66109
1923 1922 3.20692 -5.12876 5.92505
1924 1923 8.75329 15.6944 2.40338
1925 1924 12.7762 -12.3826 17.4352
1926 1925 3.82006 -7.31974 0
1927 1926 9.15534 -15.8507 0
1928 1927 10.8555 -13.9832 13.8234
1929 1928 7.08102 -13.8378 2.12177
1930 1929 7.4909 14.0774 0
1931 1930 3.59169 6.91772 0
1932 1931 3.39921 -3.61102 8.97399
1933 1932 9.89828 -1.11527 20
1934 1933 6.86717 0.662666 16.7559
1935 1934 10.7276 -11.2358 16.7405
1936 1935 12.871 15.3081 15.0054
1937 1936 10.0157 17.3114 4.80675
1938 1937 10.1732 -17.2193 6.4156
1939 1938 10.3052 17.1407 7.34494
1940 1939 5.14869 -11.263 0
1941 1940 15.6366 12.4698 20
1942 1941 15.6366 -12.4698 20
1943 1942 2.20494 -2.10088 5.98042
1944 1943 9.3908 15.1277 10.8735
1945 1944 9.86945 -17.3952 4.86889
1946 1945 7.62516 -12.2235 12.2073
1947 1946 6.17645 -13.1659 0
1948 1947 5.86151 -9.80684 11.6309
1949 1948 10.4602 -6.0687 20
1950 1949 8.18923 13.2906 11.8638
1951 1950 7.50459 -1.78999 18.1234
1952 1951 6.13798 13.5576 2.67284
1953 1952 3.98616 -9.92071 2.12177
1954 1953 10.2582 -17.1689 8.41773
1955 1954 10.5924 16.9647 9.88313
1956 1955 8.38381 -16.317 1.66109
1957 1956 7.40038 15.1746 5.07622
1958 1957 2.36725 2.02616 8.30767
1959 1958 7.68872 15.0013 7.6144
1960 1959 2.62628 -6.77573 2.92505
1961 1960 9.5634 -17.5653 3.32218
1962 1961 6.48715 13.1642 8.60476
1963 1962 5.43743 10.2845 10.6984
1964 1963 1.602 -0.448497 2.68653
1965 1964 2.0884 4.74708 2.17435
1966 1965 5.88753 -12.8023 7.58851
1967 1966 4.10768 0.292781 13.7445
1968 1967 7.20421 -15.0687 0
1969 1968 1.63005 1.00204 5.37306
1970 1969 9.57347 17.5599 0
1971 1970 9.5634 -17.5653 0
1972 1971 3.10445 3.05028 11.2423
1973 1972 13.5324 -14.7267 17.4352
1974 1973 6.52913 8.02638 15.4225
1975 1974 13.4866 14.7686 17.498
1976 1975 1.57396 -1.89904 0
1977 1976 10.343 -17.1179 10.4199
1978 1977 13.3294 -11.746 20
1979 1978 9.67263 14.945 13.4393
1980 1979 2.89504 5.16437 10.3876
1981 1980 7.73149 16.2099 0
1982 1981 10.8755 16.7846 12.449
1983 1982 10.8139 -16.8244 12.2928
1984 1983 2.76636 -6.38122 9.08916
1985 1984 3.08159 -9.24876 0
1986 1985 3.73535 10.1581 7.43935
1987 1986 9.00395 17.8586 2.40338
1988 1987 5.11091 -2.46472 16.2468
1989 1988 11.3689 13.5157 17.498
1990 1989 11.15 -13.7695 17.0828
1991 1990 4.6903 12.5911 0
1992 1991 7.86631 -9.94176 16.7405
1993 1992 4.78507 13.0378 5.34568
1994 1993 2.79238 -9.3767 5.04681
1995 1994 11.2779 -16.517 14.1657
1996 1995 6.65933 -15.7842 4.04685
1997 1996 6.10266 -7.52505 16.1641
1998 1997 8.76935 -17.9749 1.66109
1999 1998 7.5801 -15.0578 10.6767
2000 1999 7.58404 -16.7074 0
2001 2000 1.29422 -4.56677 0
2002 2001 2.95865 -4.86349 12.1381
2003 2002 2.68564 7.27847 9.53302
2004 2003 10.5775 10.036 20
2005 2004 2.28767 9.19169 4.76651
2006 2005 11.0221 -11.0221 20
2007 2006 6.80518 16.5591 1.88138
2008 2007 14.1421 14.1421 20
2009 2008 14.1421 -14.1421 20
2010 2009 11.156 16.5995 15.0148
2011 2010 7.5989 -4.77471 20
2012 2011 0.534425 2.68024 0
2013 2012 8.29467 -18.1989 5.13288
2014 2013 3.33738 12.0714 2.67284
2015 2014 6.21095 -15.923 6.23979
2016 2015 0.228539 2.4323 2.17435
2017 2016 8.09436 18.2888 4.28476
2018 2017 6.78252 -17.0151 1.92509
2019 2018 0.993786 4.90696 7.79549
2020 2019 8.24118 13.2445 15.9319
2021 2020 11.9649 12.8341 20
2022 2021 7.97936 -18.3393 3.58617
2023 2022 4.32264 -14.156 2.12177
2024 2023 11.8812 -16.0884 17.0828
2025 2024 0.256586 3.88284 4.86088
2026 2025 8.15995 -15.2817 13.7256
2027 2026 7.97209 18.3425 0
2028 2027 7.96387 -18.346 0
2029 2028 0.100441 -4.02276 2.92505
2030 2029 1.01448 -7.2345 0
2031 2030 4.81722 -12.9977 10.9335
2032 2031 8.07586 8.13779 20
2033 2032 5.45227 16.0393 4.55422
2034 2033 11.746 -13.3294 20
2035 2034 6.81305 16.2687 9.85315
2036 2035 11.8217 16.1322 17.5074
2037 2036 6.59408 4.14334 20
2038 2037 1.05797 -0.0303656 11.5951
2039 2038 7.75864 18.4338 6.32461
2040 2039 5.20522 -5.44943 18.1234
2041 2040 5.95666 6.596 18.6325
2042 2041 7.85431 -18.3932 7.32582
2043 2042 0.784379 7.02105 6.94086
2044 2043 7.79069 -13.0811 16.7405
2045 2044 8.06121 18.3035 8.8628
2046 2045 3.41807 -13.4841 0
2047 2046 2.0612 -2.78786 14.0974
2048 2047 5.8715 16.8101 0
2049 2048 1.72207 -9.5721 8.39178
2050 2049 -0.136291 1.47978 8.60155
2051 2050 9.72458 14.899 17.5074
2052 2051 1.8897 11.1049 0
2053 2052 5.73956 11.3463 15.9319
2054 2053 8.16083 -9.72814 20
2055 2054 7.94328 -18.355 9.32796
2056 2055 7.1653 -18.6724 1.92509
2057 2056 5.05837 -10.7159 15.4667
2058 2057 4.44583 -15.3869 0
2059 2058 5.11097 16.1423 6.59407
2060 2059 1.91436 -8.05437 11.4407
2061 2060 -0.901538 -0.994879 2.98042
2062 2061 3.19717 6.22611 15.6211
2063 2062 7.04947 18.7164 1.88138
2064 2063 -0.873491 0.455662 5.66695
2065 2064 -0.179295 -6.69049 2.92505
2066 2065 5.7265 -17.3061 0
2067 2066 7.02724 16.2056 12.8528
2068 2067 4.51859 16.2903 2.67284
2069 2068 0.38641 8.93428 2.17435
2070 2069 8.27114 18.2096 11.8624
2071 2070 12.4698 15.6366 20
2072 2071 12.4698 -15.6366 20
2073 2072 2.98776 8.3402 14.7665
2074 2073 5.14065 -16.1184 9.58476
2075 2074 4.67833 13.6606 12.9522
2076 2075 1.35097 -11.4698 0
2077 2076 8.1508 -18.2637 12.195
2078 2077 1.48609 5.64494 13.832
2079 2078 -1.32543 0.365461 0
2080 2079 6.36082 -18.9615 3.85017
2081 2080 10.3815 14.4175 20
2082 2081 3.39992 0.983223 18.6325
2083 2082 2.97625 13.5342 9.69313
2084 2083 8.64537 -18.0349 14.0679
2085 2084 6.11947 19.0408 3.76276
2086 2085 1.27669 7.75904 12.9774
2087 2086 1.92653 10.6546 11.7868
2088 2087 9.99957 -17.3208 17.0828
2089 2088 2.15551 -5.77258 15.974
2090 2089 0.56523 8.46863 10.4132
2091 2090 8.21307 -15.6149 17.0828
2092 2091 -0.157251 2.91164 12.088
2093 2092 3.0709 15.3238 0
2094 2093 8.56977 18.0709 14.4282
2095 2094 6.11947 19.0408 0
2096 2095 6.11363 -19.0427 0
2097 2096 -1.11688 6.76364 4.34871
2098 2097 4.03734 -1.46944 20
2099 2098 3.47892 -16.3035 4.52425
2100 2099 5.35202 -16.0559 12.4518
2101 2100 1.39743 -13.0477 5.82346
2102 2101 -0.366659 5.02573 11.2333
2103 2102 5.91277 -19.106 6.04311
2104 2103 9.93631 17.3571 17.5074
2105 2104 -1.94194 -2.23387 0
2106 2105 8.08521 -12.8675 20
2107 2106 -1.16756 6.86744 0
2108 2107 -1.37308 -6.14648 5.85009
2109 2108 4.02414 -17.3333 1.92509
2110 2109 -1.18079 -4.62875 8.89903
2111 2110 8.29313 13.1984 20
2112 2111 5.77832 19.1471 5.80262
2113 2112 4.98275 -13.8553 15.4667
2114 2113 5.29953 -8.43415 20
2115 2114 0.640424 0.613338 15.6211
2116 2115 1.54881 14.3714 2.67284
2117 2116 -2.24696 3.33646 5.15477
2118 2117 5.30513 -19.2836 1.92509
2119 2118 -0.988501 -3.11101 11.948
2120 2119 5.18581 19.316 1.88138
2121 2120 -2.37505 -3.1186 5.90546
2122 2121 -2.22167 -4.9016 0
2123 2122 7.07919 16.1595 16.9208
2124 2123 5.43686 19.2468 7.84247
2125 2124 -2.18277 -1.60086 8.9544
2126 2125 1.64365 -2.14416 18.1234
2127 2126 5.46407 -19.2391 8.23604
2128 2127 8.80904 -15.1748 20
2129 2128 10.6286 16.942 20
2130 2129 10.6286 -16.942 20
2131 2130 5.79151 11.3002 20
2132 2131 1.87597 -13.1181 11.9555
2133 2132 2.39254 16.5189 5.07532
2134 2133 -2.67085 4.6968 2.17435
2135 2134 4.73028 13.6146 17.0203
2136 2135 -2.26792 4.76832 8.64118
2137 2136 1.68745 -15.7051 0
2138 2137 0.00119618 13.0382 5.34502
2139 2138 -1.04852 10.1586 7.43869
2140 2139 5.65111 19.185 10.8421
2141 2140 2.96812 -17.6243 0
2142 2141 8.4854 15.6089 20
2143 2142 2.39254 16.5189 7.6506
2144 2143 5.67549 -19.1778 11.1031
2145 2144 0.101123 13.405 0
2146 2145 3.30215 16.6387 10.9415
2147 2146 -3.37703 -0.0907192 5.96083
2148 2147 5.2239 -11.5735 20
2149 2148 -1.57425 -10.3615 3.70169
2150 2149 -2.01117 -8.712 0
2151 2150 -0.983225 11.5904 0
2152 2151 4.2521 19.5428 0
2153 2152 4.24879 -19.5435 0
2154 2153 0.327121 -13.2431 9.16843
2155 2154 -1.21918 -9.69247 9.41383
2156 2155 2.11712 -10.8363 16.4888
2157 2156 -3.41545 -4.35759 2.92505
2158 2157 -2.20373 -0.169009 12.4408
2159 2158 -3.80093 1.26962 2.98042
2160 2159 -1.02689 -8.17473 12.4628
2161 2160 2.40861 -16.4989 10.4445
2162 2161 -2.36797 9.25495 0
2163 2162 -2.48651 9.41977 2.17435
2164 2163 -1.44649 12.0718 2.67218
2165 2164 -2.80497 -8.58375 1.9994
2166 2165 3.28988 9.40194 20
2167 2166 5.86525 19.1206 13.8417
2168 2167 -3.39799 1.34114 9.44724
2169 2168 5.88681 -19.114 13.9701
2170 2169 2.22866 11.7163 17.0203
2171 2170 7.28115 18.6275 16.9208
2172 2171 7.29183 -18.6234 16.9851
2173 2172 3.51634 16.5757 13.9411
2174 2173 1.73796 -5.12888 20
2175 2174 1.57881 8.82077 18.2108
2176 2175 5.51754 -16.9135 16.9851
2177 2176 -0.84372 8.9492 13.8575
2178 2177 -3.80056 -4.71898 6.79296
2179 2178 -4.41743 -1.32971 2.98042
2180 2179 -1.55518 9.6588 11.2933
2181 2180 -0.193871 11.8447 12.6669
2182 2181 3.13882 -19.7522 4.32756
2183 2182 -4.22483 2.62996 0
2184 2183 -1.40605 -2.46731 15.974
2185 2184 0.517584 11.1351 15.2311
2186 2185 -3.60827 -3.20124 9.8419
2187 2186 3.01894 19.7708 4.28386
2188 2187 -2.48706 6.2159 12.1135
2189 2188 -4.157 4.8151 5.04379
2190 2189 -0.132266 8.2396 16.4217
2191 2190 8.67767 18.0194 20
2192 2191 8.67767 -18.0194 20
2193 2192 -2.76803 -9.81752 6.62673
2194 2193 1.28233 17.6239 0
2195 2194 -2.94978 9.90117 4.84654
2196 2195 2.40861 -16.4989 13.0515
2197 2196 -1.77561 5.5063 14.6777
2198 2197 0.650545 -16.3638 7.81971
2199 2198 6.91298 -16.3662 20
2200 2199 -3.87126 7.08431 2.17435
2201 2200 1.16743 14.0307 14.0406
2202 2201 -1.67468 -12.9473 0
2203 2202 0.73314 3.78917 20
2204 2203 5.0192 14.344 20
2205 2204 -4.84133 0.030634 0
2206 2205 5.14828 -14.7129 20
2207 2206 -1.23776 -14.5968 3.70169
2208 2207 2.68117 19.8195 6.32371
2209 2208 0.843725 -17.8525 2.40248
2210 2209 2.6946 -19.8176 6.5205
2211 2210 6.37178 16.3485 20
2212 2211 2.0415 -13.9757 16.4888
2213 2212 -4.80254 -1.6911 6.84833
2214 2213 -3.99875 -8.03974 4.92445
2215 2214 0.843725 -17.8525 0
2216 2215 -3.41895 2.77299 12.9337
2217 2216 -0.977934 3.208 18.2108
2218 2217 2.09798 19.8897 2.40248
2219 2218 2.09635 -19.8898 2.40248
2220 2219 2.68117 19.8195 8.899
2221 2220 -5.28707 1.38792 5.84985
2222 2221 2.6946 -19.8176 9.09578
2223 2222 2.09798 19.8897 0
2224 2223 2.09635 -19.8898 0
2225 2224 3.80526 17.3051 16.9208
2226 2225 -5.45783 -2.56869 0
2227 2226 -4.8235 -0.259242 10.3347
2228 2227 -2.13919 -6.25648 15.974
2229 2228 1.00482 -8.91804 20
2230 2229 -2.62128 0.474695 16.4668
2231 2230 -2.81479 8.15593 13.2488
2232 2231 -1.80762 13.5347 9.69247
2233 2232 -4.10082 7.90584 9.13901
2234 2233 2.51757 12.4458 20
2235 2234 -3.16893 11.3487 8.31883
2236 2235 -5.71097 2.74826 2.86943
2237 2236 -1.06528 -13.2385 12.9776
2238 2237 -2.10334 7.44633 15.813
2239 2238 0.156796 10.7908 18.0286
2240 2239 2.89295 19.7897 11.8986
2241 2240 -5.42524 5.01747 0
2242 2241 2.90362 -19.7881 11.9628
2243 2242 -1.6379 -15.5436 0
2244 2243 -5.84294 -2.93008 3.86791
2245 2244 5.15782 19.3235 16.9208
2246 2245 5.16861 -19.3206 16.9851
2247 2246 -5.24733 -6.37909 0
2248 2247 0.583717 17.0153 11.9981
2249 2248 -5.30803 2.81977 9.33626
2250 2249 -1.68745 15.7051 0
2251 2250 1.45635 14.7602 17.0203
2252 2251 -3.74668 4.71303 14.0689
2253 2252 -2.7718 13.8905 0
2254 2253 -2.26573 10.9192 13.6752
2255 2254 -6.32747 0.148929 2.86943
2256 2255 -1.55428 10.2096 16.2394
2257 2256 6.5784 18.8872 20
2258 2257 6.5784 -18.8872 20
2259 2258 -5.38481 6.39669 7.68022
2260 2259 -0.843725 17.8525 2.40248
2261 2260 -3.85615 12.0759 0
2262 2261 -0.904428 13.1052 15.0489
2263 2262 -5.19425 -1.42983 11.6261
2264 2263 -5.20823 -7.31961 7.76246
2265 2264 4.79935 -17.1057 20
2266 2265 -2.61413 -13.3635 10.1905
2267 2266 -0.843725 17.8525 0
2268 2267 -5.01594 -5.80187 10.8114
2269 2268 -0.532642 -16.6192 11.4665
2270 2269 -2.94901 2.41473 17.6021
2271 2270 -6.04113 -6.25084 1.9994
2272 2271 -3.23507 14.3719 2.67218
2273 2272 -6.22804 -3.29148 7.73583
2274 2273 -1.8236 -1.8236 20
2275 2274 2.89295 19.7897 14.5056
2276 2275 2.90362 -19.7881 14.5698
2277 2276 0.929197 -12.0574 20
2278 2277 -5.03682 -10.1895 0
2279 2278 -4.5999 -11.839 3.70169
2280 2279 2.57414 -17.3565 17.5848
2281 2280 -6.38852 0.0803202 8.63253
2282 2281 -4.31941 12.5573 2.67218
2283 2282 -5.2409 9.74044 0
2284 2283 -6.71258 -0.212463 6.73735
2285 2284 0.583717 17.0153 14.6051
2286 2285 -3.26894 10.2169 13.9088
2287 2286 -2.08149 -16.7443 6.10417
2288 2287 0 20 2.40248
2289 2288 -2.44921e-15 -20 2.40248
2290 2289 -2.39134 16.5193 5.07466
2291 2290 0 20 4.80496
2292 2291 -2.44921e-15 -20 4.80496
2293 2292 -3.98039 10.9265 11.3446
2294 2293 -2.61909 13.1125 12.7183
2295 2294 -5.9899 7.95262 5.54162
2296 2295 -6.78083 3.40973 0
2297 2296 0 20 0
2298 2297 -2.44921e-15 -20 0
2299 2298 -4.91228 7.48364 12.1648
2300 2299 -4.07441 6.65306 15.2042
2301 2300 0 20 7.38024
2302 2301 -2.44921e-15 -20 7.38024
2303 2302 -6.91138 5.13577 2.86943
2304 2303 -2.39134 16.5193 7.64994
2305 2304 -2.08149 -16.7443 8.67945
2306 2305 -6.87352 -4.6177 0
2307 2306 -5.70416 10.2218 2.67218
2308 2307 -2.17758 -11.3202 16.4888
2309 2308 -0.532642 -16.6192 14.0736
2310 2309 -4.16298 -13.4886 7.40338
2311 2310 -7.19712 2.86655 5.73887
2312 2311 -5.83062 -10.0612 1.9994
2313 2312 -7.39733 0.810402 0
2314 2313 1.70151 -15.1013 20
2315 2314 -3.52535 9.41635 15.6307
2316 2315 -4.78268 13.0387 5.34437
2317 2316 -6.62564 7.40498 0
2318 2317 -5.3937 -11.7108 5.70109
2319 2318 -2.48162 -17.691 2.40248
2320 2319 1.74526 15.4896 20
2321 2320 -6.40948 1.51218 12.1189
2322 2321 -5.00003 -12.7858 0
2323 2322 0 20 9.95552
2324 2323 -2.44921e-15 -20 9.95552
2325 2324 -7.25061 -5.53071 4.83741
2326 2325 3.09784 17.4941 20
2327 2326 -2.48162 -17.691 0
2328 2327 -2.55674 -5.61277 20
2329 2328 -6.66301 -8.4281 0
2330 2329 -4.56311 -14.4353 3.70169
2331 2330 -1.40527 -14.3641 16.4888
2332 2331 -5.19522 -3.20045 15.974
2333 2332 -5.05433 -10.8656 11.3262
2334 2333 4.45042 19.4986 20
2335 2334 4.45042 -19.4986 20
2336 2335 2.57414 -17.3565 20
2337 2336 -6.53584 4.40137 11.9727
2338 2337 -5.6118 -0.786121 15.6521
2339 2338 -6.62442 -9.93299 3.9988
2340 2339 -7.92129 -2.93476 0
2341 2340 -2.97629 12.1796 16.0572
2342 2341 -5.95696 11.5867 0
2343 2342 -2.96812 17.6243 0
2344 2343 -2.57213 7.35073 20
2345 2344 -0.929197 12.0574 20
2346 2345 -4.35351 15.445 0
2347 2346 -5.24001 9.42368 13.3001
2348 2347 0.872632 17.7448 17.5848
2349 2348 -3.2028 16.0971 10.6758
2350 2349 0 20 12.5625
2351 2350 -2.44921e-15 -20 12.5625
2352 2351 -6.16063 -12.1211 2.2042
2353 2352 -8.26697 3.52802 2.86943
2354 2353 -3.26527 -16.2386 10.607
2355 2354 -5.43786 13.6304 0
2356 2355 -8.12577 -4.88276 2.51781
2357 2356 -7.81402 -1.52006 9.52003
2358 2357 -5.59414 12.6165 8.37018
2359 2358 -8.49034 -1.81417 2.55895
2360 2359 2.19542 19.8791 17.5848
2361 2360 2.19542 -19.8791 17.5848
2362 2361 -2.09635 19.8898 2.40248
2363 2362 -2.09798 -19.8897 2.40248
2364 2363 -7.98124 5.79724 0
2365 2364 -1.99042 14.3718 17.0203
2366 2365 -7.63571 -5.89211 8.70533
2367 2366 -4.28321 6.76957 18.2108
2368 2367 -5.86995 -13.0333 6.65023
2369 2368 -3.90054 17.3739 1.87884
2370 2369 -2.09635 19.8898 0
2371 2370 -2.09798 -19.8897 0
2372 2371 -7.34171 9.25128 0
2373 2372 -8.29856 1.55896 8.52155
2374 2373 -5.72371 -13.7706 5.90588
2375 2374 -2.34891 16.5757 13.9411
2376 2375 -4.98489 15.5593 1.87884
2377 2376 -4.96325 -15.3821 0
2378 2377 -4.69095 12.187 13.7266
2379 2378 -8.13919 6.71736 5.50586
2380 2379 -6.60318 -10.9907 8.5391
2381 2380 -8.81508 -1.13694 0
2382 2381 -5.92655 4.03626 16.4668
2383 2382 -5.90112 14.1118 2.67218
2384 2383 -7.21771 9.53421 8.17805
2385 2384 -7.91526 -8.69316 2.51781
2386 2385 -7.10068 -11.2555 4.94795
2387 2386 -8.2892 -6.66672 0
2388 2387 -8.51088 -5.24415 6.38573
2389 2388 -8.87545 -2.17556 6.42687
2390 2389 -6.85391 -11.893 0
2391 2390 -8.42493 4.44815 8.3753
2392 2391 -6.95444 -11.9929 4.2036
2393 2392 -2.68037 19.8196 6.32323
2394 2393 -2.69519 -19.8176 6.52069
2395 2394 0 20 15.1695
2396 2395 -2.44921e-15 -20 15.1695
2397 2396 -5.21345 -12.1904 13.7182
2398 2397 -3.01605 19.7713 4.28131
2399 2398 -7.8339 -9.21287 6.83682
2400 2399 -3.28988 -9.40194 20
2401 2400 -4.81412 -16.3637 7.8199
2402 2401 -5.10896 16.143 6.59293
2403 2402 -3.47611 -16.1762 13.4739
2404 2403 -3.14073 -19.7519 4.32799
2405 2404 -6.12385 -14.7174 2.2042
2406 2405 0.872632 17.7448 20
2407 2406 -5.26382 -16.2244 5.6272
2408 2407 -5.44816 16.0407 4.55102
2409 2408 -9.35998 0.903453 5.42839
2410 2409 -7.4872 11.4839 2.82654
2411 2410 -7.80761 -10.1812 0
2412 2411 -4.60767 -17.4624 0
2413 2412 -6.16663 -8.94734 14.8374
2414 2413 -2.68037 19.8196 8.89851
2415 2414 -2.69519 -19.8176 9.09597
2416 2415 -0.872632 -17.7448 17.5848
2417 2416 -5.12888 1.73796 20
2418 2417 -2.51757 -12.4458 20
2419 2418 2.19542 19.8791 20
2420 2419 2.19542 -19.8791 20
2421 2420 -6.40561 12.1943 11.396
2422 2421 -9.33683 4.1895 0
2423 2422 -7.87902 -11.1867 1.59464
2424 2423 -8.70907 -8.56491 4.51721
2425 2424 -9.33697 -4.98377 0
2426 2425 -8.82974 7.86275 0
2427 2426 -6.7623 -12.3154 10.9311
2428 2427 -8.05777 11.0976 0
2429 2428 -6.25428 5.97629 17.6021
2430 2429 -5.02496 -16.3013 10.6868
2431 2430 -7.57693 -12.5781 5.89709
2432 2431 -1.70151 15.1013 20
2433 2432 -8.87195 9.14841 2.82654
2434 2433 -6.81712 -14.4893 0
2435 2434 -5.61277 -2.55674 20
2436 2435 -7.43069 -13.3154 5.15274
2437 2436 -7.95047 11.9653 5.49873
2438 2437 -5.66396 -17.1712 1.92551
2439 2438 -4.67921 -13.2185 16.4888
2440 2439 -9.46114 7.05801 3.52588
2441 2440 0 20 17.5848
2442 2441 -2.44921e-15 -20 17.5848
2443 2442 -7.53867 13.1412 0
2444 2443 -8.02917 9.11202 11.2039
2445 2444 -9.54145 -6.93177 2.51781
2446 2445 -7.28445 -14.0527 4.40839
2447 2446 -9.74688 4.78879 6.39531
2448 2447 -8.31016 -10.5354 7.78596
2449 2448 -9.22169 -4.12069 10.4895
2450 2449 -1.74526 -15.4896 20
2451 2450 -5.70522 8.73958 18.0286
2452 2451 -4.24879 19.5435 0
2453 2452 -4.2521 -19.5428 0
2454 2453 -5.92043 15.7208 9.61874
2455 2454 -5.70441 -15.178 11.6989
2456 2455 -2.89295 19.7897 11.8986
2457 2456 -5.63418 17.3642 0
2458 2457 -9.93276 3.0667 7.43183
2459 2458 -2.90369 -19.7881 11.9629
2460 2459 -4.06228 13.4463 18.0286
2461 2460 -9.4 0.25136 11.3042
2462 2461 -4.42077 15.6501 14.9494
2463 2462 -8.67282 -11.0584 3.59404
2464 2463 -10.4298 1.56492 2.55895
2465 2464 -6.52109 -15.9084 7.06675
2466 2465 -7.01957 15.1848 0
2467 2466 -9.4338 -8.41978 0
2468 2467 -9.52637 3.14055 11.158
2469 2468 -10.0969 -3.47273 8.16993
2470 2469 -10.3847 -3.30083 0
2471 2470 -9.18532 -9.88745 5.46636
2472 2471 -6.37485 -16.6458 6.32241
2473 2472 -0.872632 -17.7448 20
2474 2473 -2.57414 17.3565 17.5848
2475 2474 -9.04338 -8.49274 9.67483
2476 2475 -7.97772 -13.8246 2.2042
2477 2476 -6.46767 -16.8623 0
2478 2477 -7.39736 15.1761 5.0752
2479 2478 -10.4614 -0.404143 8.21107
2480 2479 -5.18123 19.3172 1.87884
2481 2480 -10.1853 6.255 0
2482 2481 -6.82456 -16.5065 4.12971
2483 2482 -7.41988 8.74691 15.698
2484 2483 -6.32575 -10.2721 17.2294
2485 2484 -5.77694 13.4536 15.698
2486 2485 -6.5666 17.1138 1.87884
2487 2486 -5.30872 -19.2826 1.92551
2488 2487 -10.7546 2.24215 0
2489 2488 -10.5892 -5.24883 2.51781
2490 2489 -9.5458 9.70904 0
2491 2490 -10.9538 -2.18024 2.55895
2492 2491 -9.91855 -7.84478 7.35523
2493 2492 -9.65274 6.02974 11.0117
2494 2493 -2.89295 19.7897 14.5056
2495 2494 -8.76193 11.5431 8.52454
2496 2495 -2.90369 -19.7881 14.5699
2497 2496 -10.379 -6.79347 0
2498 2497 -6.13543 15.6575 12.6188
2499 2498 -7.25326 -15.3031 8.91178
2500 2499 -6.34591 -6.34591 20
2501 2500 -10.8167 5.45026 3.52588
2502 2501 0 20 20
2503 2502 -2.44921e-15 -20 20
2504 2503 -7.26836 -16.471 1.66329
2505 2504 -7.68753 15.0017 7.61375
2506 2505 -9.58801 10.9947 2.82654
2507 2506 -8.91707 2.77544 15.6521
2508 2507 -5.43525 19.2473 7.8415
2509 2508 -5.77459 19.1482 5.79959
2510 2509 -9.14907 -12.381 4.54318
2511 2510 -3.8161 -17.3018 16.9851
2512 2511 -5.46526 -19.2388 8.23642
2513 2512 -11.2785 -1.50301 0
2514 2513 -8.671 -13.5965 0
2515 2514 -11.1583 -4.12824 5.07677
2516 2515 -9.00283 -13.1183 3.79883
2517 2516 -5.91529 -19.1052 6.04372
2518 2517 -9.06891 13.0383 2.82654
2519 2518 -6.11363 19.0427 3.75767
2520 2519 -11.3691 3.00815 4.65954
2521 2520 -9.8823 -10.3383 6.43205
2522 2521 -10.7937 -7.19683 5.03563
2523 2522 -11.5229 -1.05965 5.11791
2524 2523 -6.11363 19.0427 0
2525 2524 -6.11947 -19.0408 0
2526 2525 -6.36467 -18.9602 3.85103
2527 2526 -7.49172 16.7654 0
2528 2527 -9.40097 -1.51926 15.6521
2529 2528 -9.22266 -5.89131 14.8374
2530 2529 -9.04344 5.66463 15.5059
2531 2530 -2.19542 19.8791 17.5848
2532 2531 -2.19542 -19.8791 17.5848
2533 2532 -9.2025 -9.81749 12.0669
2534 2533 -9.6247 -11.8847 0
2535 2534 -10.6861 -8.68483 2.51781
2536 2535 -2.57414 17.3565 20
2537 2536 -10.3855 8.46079 8.33241
2538 2537 -11.0342 1.75911 10.2145
2539 2538 -11.8476 -0.382418 2.55895
2540 2539 -11.4268 -5.11053 0
2541 2540 -11.4833 4.86291 0
2542 2541 -5.79151 -11.3002 20
2543 2542 -9.9057 11.7996 0
2544 2543 -8.42896 -15.8063 3.86748
2545 2544 -5.6503 19.1853 10.8416
2546 2545 -9.41437 11.3007 10.6166
2547 2546 -10.9747 6.37039 9.03174
2548 2547 -9.69611 -12.8902 1.59464
2549 2548 -10.7575 -9.69033 4.11245
2550 2549 -8.32154 -15.9695 0
2551 2550 -5.67615 -19.1776 11.1033
2552 2551 -11.0338 8.32051 0
2553 2552 -10.5784 -10.1728 0
2554 2553 -7.04242 18.7191 1.87884
2555 2554 -11.1606 4.6483 10.0683
2556 2555 -8.87626 -14.898 6.15684
2557 2556 -9.3866 13.8432 0
2558 2557 -3.09784 -17.4941 20
2559 2558 -7.17135 -18.6701 1.92551
2560 2559 -8.5158 16.2492 2.40301
2561 2560 -8.73002 -15.6353 5.41249
2562 2561 -12.1723 0.294809 0
2563 2562 -12.0719 -4.14196 2.62559
2564 2563 -11.6313 -7.05853 2.51781
2565 2564 -8.49899 14.5795 10.6396
2566 2565 -11.076 9.60618 2.82654
2567 2566 -12.0956 1.1036 7.12135
2568 2567 -11.2259 1.83365 11.9255
2569 2568 -5.0192 -14.344 20
2570 2569 -10.6498 -11.1783 1.59464
2571 2570 -6.79121 10.0062 20
2572 2571 -8.96023 -14.8478 8.15863
2573 2572 -11.6652 7.51577 3.52588
2574 2573 -9.12223 -15.5782 1.66329
2575 2574 -5.50677 16.9168 16.9208
2576 2575 -5.14828 14.7129 20
2577 2576 -11.5236 -8.54653 0
2578 2577 -12.439 3.66962 1.79011
2579 2578 -9.69346 -12.8052 10.0475
2580 2579 -7.62428 -15.1281 14.2146
2581 2580 -11.3523 4.72284 11.7792
2582 2581 -11.0379 8.21841 10.4245
2583 2582 -9.06302 15.9088 0
2584 2583 -12.264 -5.69468 1.64589
2585 2584 -11.0558 0.375646 14.1174
2586 2585 -2.19542 19.8791 20
2587 2586 -2.19542 -19.8791 20
2588 2587 -7.75595 18.4349 6.32376
2589 2588 -10.7212 -12.1838 3.18927
2590 2589 -7.98644 -18.3362 3.5888
2591 2590 -12.4535 -3.6207 0
2592 2591 -11.1183 10.8918 5.65309
2593 2592 -12.6409 -3.02137 5.18454
2594 2593 -8.08961 18.2909 4.28185
2595 2594 -12.2764 -6.08996 5.1434
2596 2595 -7.96387 18.346 0
2597 2596 -7.97209 -18.3425 0
2598 2597 -8.71387 11.6082 15.698
2599 2598 -11.9403 0.154737 11.2816
2600 2599 -12.2523 -1.31225 9.62143
2601 2600 -8.43415 5.29953 20
2602 2601 -12.7314 -3.05345 1.59865
2603 2602 -5.86525 19.1206 13.8417
2604 2603 -11.7074 8.80144 6.35242
2605 2604 -9.36162 -11.1423 14.4589
2606 2605 -7.85615 -18.3924 7.32651
2607 2606 -9.38178 -7.21607 17.2294
2608 2607 -5.88694 -19.114 13.9702
2609 2608 -8.91804 1.00482 20
2610 2609 -12.074 -5.6843 8.80673
2611 2610 -10.5376 -13 0
2612 2611 -11.3937 10.4111 0
2613 2612 -10.3287 -13.8537 4.90778
2614 2613 -8.2978 -18.1974 5.13381
2615 2614 -11.5691 -4.03504 12.7389
2616 2615 -12.3318 6.92842 0
2617 2616 -10.1825 -14.5911 4.16343
2618 2617 -12.2966 6.71103 7.05176
2619 2618 -8.78081 14.3969 13.2054
2620 2619 -12.901 2.91556 0
2621 2620 -9.89455 -15.1107 0
2622 2621 -12.4825 4.98894 8.08827
2623 2622 -10.1473 -14.8718 3.25792
2624 2623 -12.4688 -6.92022 0
2625 2624 -11.9289 6.19518 10.6832
2626 2625 -7.94416 -18.3546 9.3283
2627 2626 -8.06042 18.3038 8.86231
2628 2627 -12.4685 -7.64268 4.1637
2629 2628 -11.436 11.6967 2.82654
2630 2629 -8.77852 -17.9705 1.66329
2631 2630 -12.6684 3.26686 9.12479
2632 2631 -11.4913 -11.2882 0
2633 2632 -10.5652 14.1027 5.22956
2634 2633 -4.79935 17.1057 20
2635 2634 -10.2805 14.9516 1.73794
2636 2635 -13.0017 -0.500765 8.18843
2637 2636 -13.3004 -1.93286 4.15761
2638 2637 -8.24416 -8.84754 20
2639 2638 -10.743 4.35773 16.2733
2640 2639 -11.3908 -8.40709 11.9242
2641 2640 -8.99805 17.8616 2.40301
2642 2641 -5.15782 19.3235 16.9208
2643 2642 -12.9491 -5.03635 6.48713
2644 2643 -10.3374 8.52594 15.5059
2645 2644 -10.7933 -13.4257 7.07596
2646 2645 -12.9632 6.12368 3.52588
2647 2646 -5.16867 -19.3206 16.9851
2648 2647 -12.3609 -9.13068 1.64589
2649 2648 -13.3473 -1.82288 0
2650 2649 -9.40194 -3.28988 20
2651 2650 -13.3137 -1.96776 6.52827
2652 2651 -12.5867 -8.09806 5.51268
2653 2652 -12.5932 8.40433 1.66489
2654 2653 -11.9582 -8.63156 9.77168
2655 2654 -7.09003 -16.1562 16.9851
2656 2655 -13.532 1.04505 4.34906
2657 2656 -11.7707 10.6495 7.74514
2658 2657 -11.5627 -12.2937 1.59464
2659 2658 -11.9804 6.98043 11.7481
2660 2659 -8.82738 -12.1703 17.2294
2661 2660 -13.6251 -1.25564 1.59865
2662 2661 -12.3599 8.55906 8.44447
2663 2662 -11.5265 -11.3831 8.96483
2664 2663 -10.9197 -14.4044 1.59464
2665 2664 -10.8553 13.9283 7.76811
2666 2665 -9.85258 -14.1299 12.4395
2667 2666 -9.57347 -17.5599 3.32657
2668 2667 -12.4323 -10.1362 3.24053
2669 2668 -12.8601 3.3414 10.8357
2670 2669 -13.6577 0.508592 6.50872
2671 2670 -12.6641 8.99194 0
2672 2671 -12.4407 -9.90829 0
2673 2672 -13.8154 -0.552736 4.48848
2674 2673 -9.5634 17.5653 0
2675 2674 -12.6355 9.68999 4.49143
2676 2675 -9.57347 -17.5599 0
2677 2676 -10.5729 2.89973 18.4653
2678 2677 -13.8567 1.72228 1.79011
2679 2678 -12.8334 -7.98361 7.45208
2680 2679 -11.7536 12.5016 0
2681 2680 -8.27114 18.2096 11.8624
2682 2681 -8.15115 -18.2636 12.1952
2683 2682 -13.4955 -5.4304 0
2684 2683 -9.87566 -17.3917 4.87159
2685 2684 -13.8823 1.52696 0
2686 2685 -13.2246 7.59959 5.19077
2687 2686 -12.5505 -10.5916 4.58951
2688 2687 -13.3061 -7.50438 1.64589
2689 2688 -10.012 17.3135 4.80602
2690 2689 -13.6297 5.53632 0
2691 2690 -13.759 -4.9831 5.25118
2692 2691 -14.1401 0.124491 1.92952
2693 2692 -4.45042 19.4986 20
2694 2693 -4.45042 -19.4986 20
2695 2694 -13.2508 6.53583 8.70317
2696 2695 -6.37178 -16.3485 20
2697 2696 -11.0568 -1.39497 18.4653
2698 2697 -11.3711 6.61532 16.2422
2699 2698 -13.5745 1.66249 10.1919
2700 2699 -13.9189 4.93039 5.31598
2701 2700 -10.3542 -17.1111 1.66329
2702 2701 -10.1756 -17.2179 6.4166
2703 2702 -13.4367 4.81374 9.73968
2704 2703 -14.2274 -0.158177 0
2705 2704 -11.4301 14.5672 0
2706 2705 -11.9009 -13.6566 3.55387
2707 2706 -8.08521 12.8675 20
2708 2707 -14.1048 3.2083 6.3525
2709 2708 -13.0519 3.41594 12.5467
2710 2709 -12.7972 -10.4771 6.5289
2711 2710 -13.3859 -8.28199 0
2712 2711 -12.9531 10.4949 1.66489
2713 2712 -10.5637 16.9826 2.40301
2714 2713 -8.15215 15.6562 17.5074
2715 2714 -13.054 -0.620491 13.3126
2716 2715 -12.4231 10.4071 9.83719
2717 2716 -11.5499 -9.73184 14.3162
2718 2717 -10.3034 17.1418 7.34458
2719 2718 -12.3299 12.8051 4.56448
2720 2719 -12.1174 -9.95632 12.1637
2721 2720 -13.9512 -6.53581 4.27148
2722 2721 -9.72814 8.16083 20
2723 2722 -12.4041 -12.4035 0
2724 2723 -13.8912 7.01224 1.66489
2725 2724 -10.3197 -13.8296 14.3123
2726 2725 -11.5078 13.6859 9.86016
2727 2726 -10.2597 -17.168 8.41839
2728 2727 -13.8974 5.82115 7.56903
2729 2728 -11.5701 -5.80566 17.0867
2730 2729 -14.4185 -3.89459 4.22424
2731 2730 -11.7611 -14.5142 0
2732 2731 -8.29313 -13.1984 20
2733 2732 -13.2737 -10.246 1.64589
2734 2733 -12.3798 12.7588 6.54344
2735 2734 -13.3263 9.51561 6.83411
2736 2735 -6.91298 16.3662 20
2737 2736 -14.0833 4.09907 8.60555
2738 2737 -14.2304 2.67184 8.51216
2739 2738 -12.8817 1.95793 14.7386
2740 2739 -11.6856 -12.7078 11.3569
2741 2740 -13.024 11.0825 0
2742 2741 -12.3654 -13.2286 5.72206
2743 2742 -8.64543 -18.0349 14.068
2744 2743 -14.0694 -6.99119 5.62046
2745 2744 -7.28115 18.6275 16.9208
2746 2745 -14.4318 -3.92948 6.59491
2747 2746 -8.56977 18.0709 14.4282
2748 2747 -13.962 7.59984 0
2749 2748 -14.3328 -6.01455 1.64589
2750 2749 -13.7663 1.73703 11.9028
2751 2750 -7.29189 -18.6233 16.9851
2752 2751 -14.5223 -3.94057 0
2753 2752 -14.5854 4.34304 1.79011
2754 2753 -13.6284 4.88828 11.4506
2755 2754 -14.0634 -7.31092 0
2756 2755 -13.3141 8.38385 10.0959
2757 2756 -11.1065 16.6327 0
2758 2757 -11.1181 -16.6249 0
2759 2758 -13.9155 7.42521 7.53344
2760 2759 -11.3835 -16.4443 3.62252
2761 2760 -14.611 4.14771 0
2762 2761 -10.3435 -17.1176 10.4202
2763 2762 -14.8001 -3.37333 1.59865
2764 2763 -14.1433 -8.08853 3.29178
2765 2764 -14.6106 -5.4473 3.24454
2766 2765 -14.275 3.53695 9.7276
2767 2766 -13.3536 -11.0236 0
2768 2767 -10.5924 16.9647 9.88313
2769 2768 -12.6476 13.61 1.73794
2770 2769 -14.1526 8.48815 3.32978
2771 2770 -11.7226 10.7146 14.9186
2772 2771 -11.7164 -12.6775 13.0602
2773 2772 -13.2043 -12.2948 3.06399
2774 2773 -11.28 -9.71769 17.2294
2775 2774 -11.6696 -16.2426 5.16753
2776 2775 -14.3161 -6.87674 7.55985
2777 2776 -15.078 -2.80608 3.1973
2778 2777 -12.7423 -13.7664 1.95923
2779 2778 -12.7198 13.5429 0
2780 2779 -12.7116 0.499933 16.9305
2781 2780 -14.2615 -8.54391 4.64076
2782 2781 -13.2996 -12.1725 4.58909
2783 2782 -11.8407 16.1183 4.14095
2784 2783 -13.6799 5.67353 12.5156
2785 2784 -14.2232 -8.86614 1.64589
2786 2785 -14.6107 6.70029 5.66243
2787 2786 -15.0913 -2.84097 5.56797
2788 2787 -13.3656 9.1691 11.1608
2789 2788 -14.2235 9.07575 1.66489
2790 2789 -13.4981 11.5265 5.83209
2791 2790 -11.7896 13.5033 12.426
2792 2791 -14.4806 0.0581152 11.259
2793 2792 -14.7926 -1.40888 9.59879
2794 2793 -9.7855 -14.8577 17.0828
2795 2794 -11.8951 16.0781 6.11991
2796 2795 -12.3015 4.71032 17.7394
2797 2796 -14.205 6.36062 10.3546
2798 2797 -12.1204 -15.909 1.95923
2799 2798 -13.2249 -3.91075 15.552
2800 2799 -13.0322 12.5165 8.63549
2801 2800 -13.0518 -13.4874 0
2802 2801 -11.3002 -5.79151 20
2803 2802 -13.9788 9.27323 8.92615
2804 2803 -14.3797 -8.99928 5.98974
2805 2804 -14.1094 -4.13166 12.7162
2806 2805 -15.1046 -2.87587 7.93863
2807 2806 -14.8531 6.62939 0
2808 2807 -14.4667 3.61149 11.4385
2809 2808 -6.5784 18.8872 20
2810 2809 -6.5784 -18.8872 20
2811 2810 -13.8471 11.6032 3.40283
2812 2811 -12.3583 15.7249 1.73794
2813 2812 -14.2943 9.66336 0
2814 2813 -15.4024 -2.27587 0
2815 2814 -14.3031 -9.64375 0
2816 2815 -15.5929 -1.42595 3.52817
2817 2816 -15.0902 -5.82109 0
2818 2817 -14.4214 -5.59865 11.0561
2819 2818 -15.099 -5.75909 6.0968
2820 2819 -10.8142 -16.8242 12.2929
2821 2820 -12.1743 -15.8678 7.33572
2822 2821 -15.1486 5.6424 0
2823 2822 -15.5411 3.14975 3.58021
2824 2823 -8.4854 -15.6089 20
2825 2824 -11.5735 5.2239 20
2826 2825 -15.1366 1.06747 9.57924
2827 2826 -12.4354 15.664 0
2828 2827 -15.5667 2.95443 1.79011
2829 2828 -11.9459 -12.4427 14.6646
2830 2829 -14.9007 -7.89507 1.64589
2831 2830 -12.4482 -15.6539 0
2832 2831 -15.2933 -5.58455 4.78363
2833 2832 -10.8755 16.7846 12.449
2834 2833 -11.9619 1.77713 20
2835 2834 -14.8515 5.64595 9.22044
2836 2835 -15.6062 -1.46085 5.89884
2837 2836 -15.6803 -1.70862 1.59865
2838 2837 -15.2772 6.11293 2.13655
2839 2838 -15.4485 -0.399518 7.91908
2840 2839 -8.80904 15.1748 20
2841 2840 -14.2565 7.14587 11.4195
2842 2841 -14.8435 8.31377 5.67245
2843 2842 -15.5923 2.7591 0
2844 2843 -13.7464 12.4209 0
2845 2844 -13.8922 12.2302 1.30217
2846 2845 -12.1683 15.8724 8.65846
2847 2846 -15.5196 4.04051 5.83326
2848 2847 -15.4799 4.85985 0.919576
2849 2848 -14.9888 -5.82313 8.90358
2850 2849 -15.6668 2.61329 5.73987
2851 2850 -15.8245 1.55196 3.71963
2852 2851 -13.2171 12.3396 10.6026
2853 2852 -15.5367 -4.61489 5.57553
2854 2853 -15.8501 1.35664 1.92952
2855 2854 -14.6264 -8.88484 7.92913
2856 2855 -15.1146 8.1053 1.66489
2857 2856 -12.2526 -15.8074 9.33751
2858 2857 -15.1811 1.93258 10.7947
2859 2858 -13.0805 -15.1294 3.91846
2860 2859 -14.8697 7.25 9.18485
2861 2860 -14.0458 -12.4047 1.46936
2862 2861 -15.675 -5.06328 2.15804
2863 2862 -10.7458 -10.7458 20
2864 2863 -14.9806 -8.67268 0
2865 2864 -15.0433 5.08383 10.3425
2866 2865 -12.6651 9.47663 16.2422
2867 2866 -14.1505 11.2841 7.92414
2868 2867 -15.9374 1.07397 0
2869 2868 -15.9502 1.0155 5.87929
2870 2869 -14.7413 4.18593 12.5188
2871 2870 -14.1947 -11.6363 7.12229
2872 2871 -14.0786 -12.3629 0
2873 2872 -15.6453 3.50405 7.99292
2874 2873 -15.4981 4.93128 8.08631
2875 2874 -16.1079 -0.045827 3.85905
2876 2875 -15.4855 -7.13726 3.80394
2877 2876 -15.7925 2.07683 7.89954
2878 2877 -13.7382 -8.32144 14.1735
2879 2878 -13.3928 -14.8537 1.95923
2880 2879 -15.7944 -4.80561 0
2881 2880 -12.4458 -2.51757 20
2882 2881 -15.9528 -4.49604 3.7567
2883 2882 -14.308 7.93112 12.4845
2884 2883 -14.9154 -10.2472 3.11525
2885 2884 -16.1952 -0.328495 1.92952
2886 2885 -14.3057 -8.54591 12.021
2887 2886 -15.1854 8.6929 0
2888 2887 -15.9549 -3.8466 0
2889 2888 -15.5387 7.58885 3.80144
2890 2889 -12.3696 15.716 10.6255
2891 2890 -13.5415 14.7183 3.47588
2892 2891 -11.0891 13.8108 17.5074
2893 2892 -12.2866 -15.781 11.0408
2894 2893 -15.7718 -4.70547 7.44053
2895 2894 -14.6104 3.76852 14.0127
2896 2895 -16.0045 -4.38703 1.02785
2897 2896 -15.4093 -7.76718 6.46608
2898 2897 -13.6139 14.6514 1.73794
2899 2898 -16.2273 -2.33608 4.65583
2900 2899 -11.0221 11.0221 20
2901 2900 -15.5163 6.53533 8.05071
2902 2901 -13.5915 14.6722 5.45483
2903 2902 -15.0153 10.3246 4.67044
2904 2903 -14.8799 0.961797 13.9338
2905 2904 -15.6037 -7.59264 5.15291
2906 2905 -15.0917 10.2235 2.96706
2907 2906 -14.3303 11.0418 9.5647
2908 2907 -16.1961 -3.52638 4.5486
2909 2908 -13.5517 -14.7089 6.08665
2910 2909 -13.4339 12.1201 12.4166
2911 2910 -16.2328 -3.27936 1.59865
2912 2911 -15.6899 4.36916 9.20835
2913 2912 -11.2779 -16.517 14.1657
2914 2913 -16.2826 -0.611163 0
2915 2914 -15.837 2.94194 9.11497
2916 2915 -14.8731 -8.77039 9.86853
2917 2916 -11.4117 -13.4708 17.4352
2918 2917 -13.6859 14.5841 0
2919 2918 -16.1298 4.25379 0
2920 2919 -16.2824 -3.81978 2.6265
2921 2920 -13.6994 -14.5714 0
2922 2921 -15.0336 -10.7026 4.46422
2923 2922 -15.6581 -7.70162 0
2924 2923 -16.2406 -2.37098 7.02649
2925 2924 -15.4931 -2.46498 11.7985
2926 2925 -9.99957 -17.3208 17.0828
2927 2926 -14.9952 -11.0248 1.46936
2928 2927 -14.4414 -11.5219 9.06168
2929 2928 -16.2329 4.91965 3.92666
2930 2929 -16.3142 -1.49991 7.01481
2931 2930 -16.2094 -3.56127 6.91926
2932 2931 -13.6413 14.6258 7.43379
2933 2932 -11.156 16.5995 15.0148
2934 2933 -16.4589 2.50792 4.73293
2935 2934 -15.3179 5.65828 11.4227
2936 2935 -15.3016 2.45374 12.9266
2937 2936 -16.5069 -2.58378 3.15279
2938 2937 -16.4356 3.66657 2.70968
2939 2938 -15.1288 -10.5802 5.98932
2940 2939 -15.0167 11.0018 0
2941 2940 -15.805 -3.93197 10.1383
2942 2941 -15.0281 -10.9831 0
2943 2942 -9.93631 17.3571 17.5074
2944 2943 -15.1626 10.8111 1.30217
2945 2944 -15.5344 8.13939 8.01512
2946 2945 -14.4402 2.31052 16.2046
2947 2946 -16.5135 -3.40693 3.54053
2948 2947 -16.4611 3.47125 0.919576
2949 2948 -16.4773 3.59401 5.01181
2950 2949 -13.9047 -11.2671 12.9175
2951 2950 -16.0884 -4.37483 8.63504
2952 2951 -15.8816 3.80705 10.3304
2953 2952 -15.656 -7.65274 8.40548
2954 2953 -14.4012 10.942 11.3372
2955 2954 -16.2114 5.81041 6.1797
2956 2955 -14.8938 1.73264 15.2878
2957 2956 -15.8259 -8.87788 3.06827
2958 2957 -15.2213 9.01859 9.8234
2959 2958 -13.7122 2.8241 18.4653
2960 2959 -16.7627 -1.47108 2.57898
2961 2960 -16.7423 0.910129 4.87235
2962 2961 -13.4683 -8.30729 17.0867
2963 2962 -16.7423 -0.955956 4.9867
2964 2963 -14.449 -13.8285 3.42859
2965 2964 -8.67767 18.0194 20
2966 2965 -8.67767 -18.0194 20
2967 2966 -16.7241 -2.25528 1.59865
2968 2967 -16.5846 1.97146 6.89259
2969 2968 -15.7818 9.16484 4.09564
2970 2969 -10.3815 -14.4175 20
2971 2970 -15.7303 6.49532 9.91741
2972 2971 -14.7098 -0.496204 16.1257
2973 2972 -16.2428 -6.9438 2.15804
2974 2973 -14.4722 -11.4915 10.765
2975 2974 -16.6582 0.976435 6.99526
2976 2975 -16.8159 -0.0848932 4.97502
2977 2976 -14.0097 -14.2734 8.25484
2978 2977 -15.5943 -0.717113 13.2899
2979 2978 -16.7149 2.31186 0
2980 2979 -16.4281 -3.56068 8.093
2981 2980 -15.3351 -10.3009 7.73879
2982 2981 -16.0766 7.72245 0
2983 2982 -15.9662 8.82341 2.8242
2984 2983 -14.5562 -13.7156 4.95368
2985 2984 -16.4559 4.48477 7.26485
2986 2985 -13.8273 14.4501 9.40085
2987 2986 -16.0315 -1.01525 11.541
2988 2987 -16.603 3.05755 7.17147
2989 2988 -16.708 3.26596 0
2990 2989 -15.1219 -6.65476 13.2557
2991 2990 -12.7238 -15.4307 12.9136
2992 2991 -16.8649 2.58255 3.45586
2993 2992 -12.6339 15.5044 13.1914
2994 2993 -15.3694 6.44353 12.4877
2995 2994 -16.8905 2.38723 1.66575
2996 2995 -16.3434 -2.48224 9.88084
2997 2996 -16.9727 0.909396 1.92952
2998 2997 -16.3237 -0.0505603 10.4939
2999 2998 -16.8351 -2.1819 0
3000 2999 -14.7341 -13.5243 1.46936
3001 3000 -13.5955 7.57162 17.7394
3002 3001 -16.3623 -6.68613 0
3003 3002 -16.2295 7.41447 6.14411
3004 3003 -15.8602 -9.48217 5.43494
3005 3004 -15.9441 -9.33326 4.41724
3006 3005 -16.372 6.73546 0
3007 3006 -14.7663 13.4891 4.74349
3008 3007 -17.0218 -1.20366 3.48367
3009 3008 -14.8519 13.3948 3.04011
3010 3009 -16.4271 5.18133 7.9985
3011 3010 -16.8793 3.65952 3.91253
3012 3011 -14.1006 -0.622665 18.4653
3013 3012 -15.6893 -6.87923 11.1032
3014 3013 -15.9057 -9.65549 1.42237
3015 3014 -16.016 0.774834 12.2827
3016 3015 -16.6357 -1.51755 8.83379
3017 3016 -15.8055 9.83494 0
3018 3017 -15.8165 -9.8137 0
3019 3018 -16.5724 -6.26755 1.02785
3020 3019 -14.7561 13.5003 0
3021 3020 -14.77 -13.485 0
3022 3021 -14.9177 13.3215 1.30217
3023 3022 -15.8954 -9.42041 6.56411
3024 3023 -16.5616 4.38799 8.3109
3025 3024 -16.5006 7.206 2.13655
3026 3025 -16.439 -6.53508 6.94242
3027 3026 -14.0405 -14.2431 9.95818
3028 3027 -16.7087 2.96076 8.21751
3029 3028 -15.9726 -7.3221 9.59999
3030 3029 -16.037 9.41102 1.15931
3031 3030 -15.2384 6.02612 13.9816
3032 3031 -15.7061 10.1502 7.01311
3033 3032 -17.1483 0.984764 3.59527
3034 3033 -16.6674 5.74847 0
3035 3034 -17.0601 0.626728 0
3036 3035 -16.3769 5.78064 8.78328
3037 3036 -14.8121 13.4388 6.72244
3038 3037 -15.2231 -4.90689 14.7472
3039 3038 -15.2728 9.80384 10.8883
3040 3039 -16.6333 -6.36054 5.62926
3041 3040 -16.8043 -2.42274 8.24139
3042 3041 -16.1562 4.38149 11.4106
3043 3042 -14.3763 10.8821 13.7403
3044 3043 -14.1342 -11.0323 14.5219
3045 3044 -16.7961 6.21901 2.13655
3046 3045 -17.2776 -0.0909548 2.90986
3047 3046 -14.7236 0.274641 17.4797
3048 3047 -12.8675 8.08521 20
3049 3048 -16.4453 6.78539 7.96291
3050 3049 -12.7334 12.4276 17.498
3051 3050 -16.8276 -6.18599 4.31609
3052 3051 -14.9821 -13.2491 7.12187
3053 3052 -16.9987 4.96593 0.919576
3054 3053 -14.6139 -5.03335 17.0867
3055 3054 -16.8766 -5.39088 6.42116
3056 3055 -15.5818 -10.1865 9.67819
3057 3056 -14.011 14.272 11.3679
3058 3057 -16.9797 0.958797 8.81424
3059 3058 -15.9367 7.86619 10.7122
3060 3059 -17.365 -0.373623 0.980333
3061 3060 -16.7533 3.82588 9.43294
3062 3061 -16.395 7.3847 8.74769
3063 3062 -17.0709 -5.21633 5.10799
3064 3063 -15.886 9.90798 8.65367
3065 3064 -17.3264 -1.15782 0
3066 3065 -16.5686 5.21853 9.90533
3067 3066 -17.0902 2.02162 8.21863
3068 3067 -14.0712 -14.2127 11.6615
3069 3068 -17.3646 -0.345224 0
3070 3069 -16.9247 6.68955 4.2731
3071 3070 -17.1273 5.43647 3.05613
3072 3071 -15.0141 13.2128 8.36301
3073 3072 -12.9749 -15.2201 14.518
3074 3073 -16.5833 -8.68443 1.42237
3075 3074 -17.3766 1.86609 5.88565
3076 3075 -17.1572 -5.50974 3.1859
3077 3076 -16.7556 -6.20444 8.13693
3078 3077 -16.494 -8.84264 0
3079 3078 -17.5179 -0.0872957 4.07847
3080 3079 -17.3766 -1.86609 6.11435
3081 3080 -15.6874 -12.4059 2.93871
3082 3081 -16.1421 -9.30596 8.50351
3083 3082 -17.33 4.18339 1.83915
3084 3083 -17.0664 -5.67064 0
3085 3084 -17.3455 -3.05638 6.00712
3086 3085 -17.4503 0.871063 5.98832
3087 3086 -17.1691 5.36391 5.35825
3088 3087 -16.4727 8.99046 6.43832
3089 3088 -17.4503 -0.995022 6.10267
3090 3089 -12.871 15.3081 15.0054
3091 3090 -15.7203 -12.3641 1.46936
3092 3091 -15.0855 -9.86082 13.4576
3093 3092 -17.227 -4.71164 0
3094 3093 -15.3436 9.704 12.6608
3095 3094 -17.3951 2.95217 6.16452
3096 3095 -15.7832 -12.2838 4.46381
3097 3096 -17.2456 4.76064 0
3098 3097 -13.1984 -8.29313 20
3099 3098 -11.746 13.3294 20
3100 3099 -17.3143 -4.24668 5.89989
3101 3100 -11.8812 -16.0884 17.0828
3102 3101 -17.5239 -0.123959 6.09099
3103 3102 -17.0242 1.82391 10.0297
3104 3103 -17.2766 -5.25206 1.02785
3105 3104 -17.3876 -3.75263 0
3106 3105 -15.2108 -12.9858 8.87135
3107 3106 -11.9649 -12.8341 20
3108 3107 -15.7391 12.3402 0
3109 3108 -15.7531 -12.3224 0
3110 3109 -16.4593 9.01418 7.64548
3111 3110 -17.1404 6.06047 6.09189
3112 3111 -17.0953 -5.39028 7.59489
3113 3112 -15.8862 12.1503 1.30217
3114 3113 -17.4372 -4.29306 1.02785
3115 3114 -15.6529 -10.0853 11.3051
3116 3115 -17.3883 -5.09689 4.09993
3117 3116 -15.9547 12.0601 4.30772
3118 3117 -16.2094 -9.18493 9.50188
3119 3118 -16.7165 2.6493 11.8184
3120 3119 -17.1347 2.88673 9.43406
3121 3120 -16.6967 8.86449 0
3122 3121 -11.8217 16.1322 17.5074
3123 3122 -17.6562 -2.11379 4.61132
3124 3123 -16.0308 11.9588 2.60434
3125 3124 -17.5838 3.024 0.919576
3126 3125 -17.4136 4.03826 6.4434
3127 3126 -15.8779 -12.1611 5.9889
3128 3127 -15.8779 12.1611 6.0111
3129 3128 -17.4868 -4.83348 2.05571
3130 3129 -16.4308 4.95593 12.4908
3131 3130 -16.8898 -8.25007 5.91128
3132 3131 -17.6617 -3.05706 1.55414
3133 3132 -15.9882 8.65144 11.7771
3134 3133 -16.9281 8.44057 1.15931
3135 3134 -17.0849 -7.63618 1.18861
3136 3135 -17.6628 -2.93693 4.99906
3137 3136 -17.5769 3.9781 0.919576
3138 3137 -16.5055 -4.98807 12.338
3139 3138 -17.3849 4.73483 7.17704
3140 3139 -17.7827 1.94072 4.60857
3141 3140 -16.7888 -5.43094 10.8347
3142 3141 -17.7113 -3.59749 2.582
3143 3142 -15.1817 13.0198 10.3301
3144 3143 -17.0721 -7.66727 0
3145 3144 -17.6316 -4.12723 4.89183
3146 3145 -17.7593 3.09937 2.58533
3147 3146 -17.5641 -3.05579 7.18086
3148 3147 -17.0841 -8.07553 4.59812
3149 3148 -16.6222 8.71604 8.53104
3150 3149 -14.2295 14.0542 13.182
3151 3150 -13.8643 -11.0181 17.4352
3152 3151 -16.9337 8.06666 7.08724
3153 3152 -16.2625 -9.08648 10.4557
3154 3153 -16.925 -8.18831 7.04046
3155 3154 -17.168 -7.92662 3.58042
3156 3155 -17.5711 5.42942 4.25898
3157 3156 -17.5193 3.94148 7.48944
3158 3157 -17.5329 -4.24608 7.07362
3159 3158 -15.2388 -12.953 10.5747
3160 3159 -17.7179 -4.42063 2.96974
3161 3160 -17.0722 -5.8738 9.33145
3162 3161 -17.7971 3.01769 5.06525
3163 3162 -10.6286 16.942 20
3164 3163 -10.6286 -16.942 20
3165 3164 -14.3026 -13.9798 13.2659
3166 3165 -16.2998 4.53852 13.9848
3167 3166 -17.7738 4.17634 3.042
3168 3167 -17.8376 1.86462 0
3169 3168 -17.3561 5.43139 7.91069
3170 3169 -16.8432 5.79297 10.9855
3171 3170 -17.1679 8.26554 4.5673
3172 3171 -17.9358 -2.36149 3.10829
3173 3172 -16.0596 11.9201 7.65166
3174 3173 -16.9692 7.98428 7.99468
3175 3174 -16.6014 8.75558 9.54244
3176 3175 -17.3032 7.62449 1.2139
3177 3176 -17.8307 2.81872 0
3178 3177 -16.0867 -11.8835 7.73838
3179 3178 -16.9923 -8.06727 8.03883
3180 3179 -16.562 -11.2117 3.90943
3181 3180 -17.4906 4.63805 8.22309
3182 3181 -17.9424 -3.18463 3.49603
3183 3182 -17.8789 -2.72856 0
3184 3183 -17.2757 7.69145 0
3185 3184 -17.8156 4.10378 5.34413
3186 3185 -18.0131 1.93999 1.66575
3187 3186 -17.3522 7.92411 3.29586
3188 3187 -17.8238 3.77281 0
3189 3188 -15.5065 9.46433 14.2733
3190 3189 -15.2435 -9.62607 15.0524
3191 3190 -13.8635 11.0098 18.0311
3192 3191 -17.4119 -5.05964 8.7894
3193 3192 -16.658 -11.0684 2.89173
3194 3193 -17.3059 6.0307 8.69547
3195 3194 -16.6067 -3.24021 13.8294
3196 3195 -17.8454 -0.141598 7.90997
3197 3196 -17.8823 1.91624 7.21169
3198 3197 -17.386 -7.2645 6.39153
3199 3198 -17.9489 -4.00778 3.88376
3200 3199 -16.6872 -11.0244 1.42237
3201 3200 -17.5986 6.63751 1.2139
3202 3201 -14.344 -5.0192 20
3203 3202 -17.625 3.8447 8.53549
3204 3203 -16.5717 11.1972 0
3205 3204 -17.0439 -3.53834 12.0805
3206 3205 -16.7043 10.9985 1.30217
3207 3206 -16.5855 -11.1769 0
3208 3207 -16.6479 -11.0836 5.43452
3209 3208 -16.7567 10.9185 3.73293
3210 3209 -18.0199 2.45938 5.63747
3211 3210 -17.9559 0.921222 7.31436
3212 3211 -17.4403 5.23736 9.00787
3213 3212 -17.3273 -3.98121 10.5772
3214 3213 -16.6875 11.0239 5.4363
3215 3214 -18.1425 0.864268 0.980333
3216 3215 -15.9505 -8.34748 13.9312
3217 3216 -17.5711 6.70446 0
3218 3217 -17.9403 -1.91785 7.32925
3219 3218 -17.6158 -7.00758 4.17092
3220 3219 -18.1523 0.86866 5.09177
3221 3220 -18.1916 -1.24878 2.53448
3222 3221 -16.1689 4.12111 15.4788
3223 3222 -17.5803 -7.08996 5.07837
3224 3223 -18.1523 -0.997425 5.20612
3225 3224 -17.6697 -6.87837 3.34666
3226 3225 -18.0673 -2.48906 5.68273
3227 3226 -18.153 -2.03298 1.55414
3228 3227 -18.1887 2.01535 3.3315
3229 3228 -17.9007 3.00233 7.49056
3230 3229 -18.0139 -1.04679 7.31756
3231 3230 -16.2341 8.15499 13.1648
3232 3231 -15.2615 12.9261 12.1026
3233 3232 -18.1421 0.892667 0
3234 3233 -17.2556 6.63001 9.48025
3235 3234 -17.4319 -7.15751 7.46216
3236 3235 -16.9911 3.22374 12.8986
3237 3236 -16.6724 11.0468 6.64346
3238 3237 -16.6875 -11.0239 6.5637
3239 3238 -18.0361 -3.67936 5.5755
3240 3239 -18.0729 -2.4892 6.42714
3241 3240 -17.7516 -4.24549 8.24736
3242 3241 -18.2259 -0.126362 5.19444
3243 3242 -18.0384 3.54547 5.91634
3244 3243 -16.9673 10.5883 2.46148
3245 3244 -15.4409 4.63469 17.7394
3246 3245 -16.5179 -8.57195 11.7787
3247 3246 -18.0746 2.57131 6.52205
3248 3247 -17.6747 7.23474 4.1456
3249 3248 -15.319 -12.8579 12.2016
3250 3249 -17.6288 7.34174 5.21623
3251 3250 -17.7272 7.10804 3.35045
3252 3251 -16.2375 11.6766 9.29222
3253 3252 -18.2031 3.09233 3.78818
3254 3253 -18.0417 -3.6795 6.31991
3255 3254 -18.3181 0.939636 2.64608
3256 3255 -17.9299 5.85496 2.13347
3257 3256 -17.7891 -6.6207 1.18861
3258 3257 -17.9108 5.75171 0.922779
3259 3258 -17.6669 -3.16705 10.0352
3260 3259 -17.7156 -6.4017 6.9574
3261 3260 -16.2905 -11.6026 9.48785
3262 3261 -17.9426 -6.12653 3.93897
3263 3262 -17.9053 -6.24121 4.68575
3264 3263 -18.2272 1.33801 6.52862
3265 3264 -17.7763 -6.65178 0
3266 3265 -18.0931 3.6574 6.80092
3267 3266 -17.9683 5.55282 0
3268 3267 -18.2558 -1.37751 6.64527
3269 3268 -18.2176 4.1693 4.24486
3270 3269 -17.91 -6.22715 5.64423
3271 3270 -18.3468 -2.73676 4.1797
3272 3271 -17.9992 -6.20212 2.21646
3273 3272 -18.3008 0.342986 6.6313
3274 3273 -18.4319 -1.24513 3.70309
3275 3274 -18.0064 2.90555 8.53661
3276 3275 -17.3089 -7.73663 9.23334
3277 3276 -18.4474 -0.136083 1.96067
3278 3277 -18.4088 -0.920282 0.980333
3279 3278 -16.8601 2.80633 14.3926
3280 3279 -17.9959 6.36334 3.93448
3281 3280 -17.9585 6.47893 4.65036
3282 3281 -18.3294 -0.506443 6.63359
3283 3282 -14.4446 13.833 14.9961
3284 3283 -17.1451 -1.79048 13.572
3285 3284 -18.4471 -0.107684 0.980333
3286 3285 -18.1985 5.11026 2.7175
3287 3286 -14.5302 -13.7431 14.8703
3288 3287 -14.7129 5.14828 20
3289 3288 -18.3702 -1.70448 0
3290 3289 -16.708 -1.49234 15.3209
3291 3290 -17.9538 6.49299 5.60884
3292 3291 -18.0643 4.35397 7.53457
3293 3292 -18.4259 2.53402 4.36039
3294 3293 -18.4085 -0.891883 0
3295 3294 -18.3534 -3.55991 4.56744
3296 3295 -16.8362 10.7954 8.28403
3297 3296 -18.3754 -1.82482 6.16695
3298 3297 -18.1068 -5.72445 0.896106
3299 3298 -17.5823 -2.08861 11.823
3300 3299 -17.3406 -9.96506 4.88015
3301 3300 -18.1487 -5.27156 5.47765
3302 3301 -18.2421 4.96917 1.84235
3303 3302 -13.3294 11.746 20
3304 3303 -17.0495 7.16385 11.7803
3305 3304 -18.4467 -0.0792846 0
3306 3305 -17.8445 6.71266 7.03502
3307 3306 -16.8754 -10.7342 8.31317
3308 3307 -17.4252 -9.81642 3.86245
3309 3308 -17.0787 -7.19532 11.6904
3310 3309 -17.4199 -9.82575 1.42237
3311 3310 -18.1278 -3.10755 8.39575
3312 3311 -18.5584 0.943295 3.8147
3313 3312 -17.411 9.84153 4.86151
3314 3313 -18.4534 1.79747 5.86718
3315 3314 -17.3167 10.0065 0
3316 3315 -17.8746 -1.12392 10.776
3317 3316 -15.1013 1.70151 20
3318 3317 -17.5084 -9.66724 2.84475
3319 3318 -17.3299 -9.98365 0
3320 3319 -18.2029 5.15329 5.73551
3321 3320 -18.4875 -0.988793 5.96801
3322 3321 -18.1533 -5.2575 6.43613
3323 3322 -18.2996 4.77028 0.919576
3324 3323 -17.6542 4.28061 11.0224
3325 3324 -18.2722 -5.45027 2.80878
3326 3325 -18.1988 3.56062 7.84697
3327 3326 -17.376 -9.90335 6.00932
3328 3327 -17.1297 -0.000394005 14.3137
3329 3328 -18.3993 4.38145 2.47916
3330 3329 -18.1722 -5.49806 0
3331 3330 -18.4404 3.61099 4.81707
3332 3331 -17.5668 -0.29853 12.5648
3333 3332 -18.527 0.802447 5.96985
3334 3333 -17.3976 9.86526 6.06867
3335 3334 -17.3621 -7.63818 10.1872
3336 3335 -18.2604 -3.6789 7.49365
3337 3336 -17.599 9.50141 3.59007
3338 3337 -16.3087 11.5769 11.0647
3339 3338 -17.8495 3.25196 10.6718
3340 3339 -18.3169 -5.30588 1.92396
3341 3340 -18.4264 4.26314 1.66997
3342 3341 -17.7485 -6.82687 8.65667
3343 3342 -17.5538 9.58466 1.15931
3344 3343 -18.5611 -0.11773 5.95633
3345 3344 -18.1983 5.16735 6.69399
3346 3345 -16.0988 -1.6188 17.6605
3347 3346 -17.88 6.63028 7.94247
3348 3347 -18.3328 -4.53906 0
3349 3348 -17.4829 7.96135 9.26361
3350 3349 -18.334 -4.64488 5.95744
3351 3350 -18.0431 -2.02911 10.1836
3352 3351 -18.6877 -0.132423 3.12928
3353 3352 -18.1668 -0.159236 9.72894
3354 3353 -16.3619 -11.5016 11.1148
3355 3354 -13.4866 14.7686 17.498
3356 3355 -17.8591 0.666159 11.5177
3357 3356 -18.4565 -4.04176 0.737862
3358 3357 -13.5324 -14.7267 17.4352
3359 3358 -18.5593 3.54188 2.18919
3360 3359 -18.2774 0.903584 9.13333
3361 3360 -18.3824 -5.07948 1.02785
3362 3361 -16.4523 2.08523 16.7539
3363 3362 -16.9498 -10.6162 9.31154
3364 3363 -17.3841 9.88897 7.27583
3365 3364 -18.4775 -4.70753 2.52823
3366 3365 -17.411 -9.84153 7.13849
3367 3366 -18.655 -2.07252 4.66392
3368 3367 -18.3837 4.54068 6.2142
3369 3368 -17.0186 10.5056 9.16959
3370 3369 -18.5901 -3.31233 1.25176
3371 3370 -14.9736 -9.61192 17.9657
3372 3371 -17.7797 9.15868 2.31863
3373 3372 -18.0323 -6.07106 8.15191
3374 3373 -18.5061 -4.58219 1.76572
3375 3374 -18.3354 -1.06443 9.13654
3376 3375 -18.3879 1.9664 8.53773
3377 3376 -15.4587 12.6897 13.9166
3378 3377 -18.1696 5.86391 7.42764
3379 3378 -18.466 -5.15211 4.46959
3380 3379 -15.5276 -12.6053 13.806
3381 3380 -18.5032 -5.03742 3.72281
3382 3381 -17.801 -6.70017 9.45182
3383 3382 -17.5514 1.49155 13.3065
3384 3383 -18.573 -3.42604 0
3385 3384 -17.8298 7.22959 8.72725
3386 3385 -18.6397 -3.85276 2.27961
3387 3386 -18.411 4.43342 6.95583
3388 3387 -17.462 8.00089 10.275
3389 3388 -18.6632 3.05268 5.38928
3390 3389 -15.7243 2.59881 19.0145
3391 3390 -16.4293 -7.09377 15.4648
3392 3391 -17.9067 -8.90778 4.45295
3393 3392 -17.8662 -8.98881 5.3604
3394 3393 -17.9816 -8.75571 3.43525
3395 3394 -17.9499 8.82039 4.43981
3396 3395 -18.0696 -5.95546 8.86779
3397 3396 -17.4788 -9.72067 8.13686
3398 3397 -18.5465 4.56499 0
3399 3398 -17.8978 8.92575 5.51043
3400 3399 -16.9949 10.5439 10.181
3401 3400 -17.9647 -8.79031 1.18861
3402 3401 -18.2068 5.74923 8.17442
3403 3402 -18.5039 -1.96962 8.54414
3404 3403 -18.043 -8.62836 2.61098
3405 3404 -18.8025 -2.9921 3.62386
3406 3405 -16.7219 -0.721496 16.6749
3407 3406 -18.8131 2.3825 1.26962
3408 3407 -17.0094 -10.5205 10.2654
3409 3408 -18.6786 -4.41818 4.20775
3410 3409 -18.6733 4.05786 0.750396
3411 3410 -18.7085 -4.29468 3.44225
3412 3411 -17.5498 9.59185 8.1614
3413 3412 -18.7579 -3.11204 5.25112
3414 3413 -18.5802 2.62147 7.84809
3415 3414 -18.8595 1.8721 4.5901
3416 3415 -18.6513 -4.52544 4.94938
3417 3416 -18.3719 -5.2569 7.60986
3418 3417 -17.5408 6.08871 12.1376
3419 3418 -18.3822 5.12999 7.68947
3420 3419 -18.1165 8.47314 3.16837
3421 3420 -17.9373 8.8461 0
3422 3421 -18.8642 -2.61676 2.8059
3423 3422 -18.6049 5.21881 4.63624
3424 3423 -18.928 -0.128764 4.29789
3425 3424 -15.4896 -1.74526 20
3426 3425 -17.9497 -8.82085 0
3427 3426 -18.6423 5.10321 3.92036
3428 3427 -17.5851 -6.08662 12.024
3429 3428 -18.7179 3.16461 6.27387
3430 3429 -17.8978 -8.92575 6.48957
3431 3430 -18.6366 -2.54097 7.64203
3432 3431 -17.8837 7.10038 9.55151
3433 3432 -18.6223 0.325348 8.45027
3434 3433 -17.8857 8.94995 6.71759
3435 3434 -18.8062 3.33659 1.26962
3436 3435 -18.9031 -2.31693 3.57482
3437 3436 -18.7952 2.49966 0
3438 3437 -18.8948 1.62408 0.917275
3439 3438 -18.7635 -3.11218 5.99552
3440 3439 -18.1746 8.34775 2.37321
3441 3440 -18.9679 -1.1526 3.05441
3442 3441 -18.9469 -1.82815 3.20105
3443 3442 -18.809 -3.81525 4.0116
3444 3443 -18.9469 -1.82803 2.43412
3445 3444 -18.0719 -5.94835 9.67578
3446 3445 -18.6509 -0.524081 8.45256
3447 3446 -18.5527 -4.64429 7.13117
3448 3447 -18.144 8.414 1.15931
3449 3448 -18.8708 -3.43991 3.19364
3450 3449 -17.2955 6.6674 13.1679
3451 3450 -17.8685 -6.52949 10.5208
3452 3451 -17.3341 -6.6808 13.0134
3453 3452 -17.1436 0.770451 15.6677
3454 3453 -16.4369 7.55933 15.7705
3455 3454 -12.4698 15.6366 20
3456 3455 -12.4698 -15.6366 20
3457 3456 -18.7328 1.38817 7.85466
3458 3457 -18.9292 2.81729 3.74662
3459 3458 -18.1566 6.34854 8.9592
3460 3459 -18.7883 3.45376 0
3461 3460 -18.9058 1.44135 0
3462 3461 -18.5313 4.42289 7.94478
3463 3462 -18.4093 -5.1413 8.32575
3464 3463 -18.7692 -3.11232 6.73993
3465 3464 -17.5457 -9.59946 9.13523
3466 3465 -16.3793 11.4769 12.8372
3467 3466 -18.9886 2.45786 2.93537
3468 3467 -16.4328 -11.4002 12.7417
3469 3468 -18.8431 4.3744 3.68202
3470 3469 -18.8152 4.49 4.39852
3471 3470 -17.9261 8.86886 7.62504
3472 3471 -18.7857 4.60619 5.11493
3473 3472 -18.4431 4.87091 8.67268
3474 3473 -17.9499 -8.82039 7.56019
3475 3474 -18.5822 -4.52809 7.84758
3476 3475 -19.0282 2.15627 3.70101
3477 3476 -18.7725 3.27654 7.15845
3478 3477 -19.0712 1.68705 3.32842
3479 3478 -19.0704 1.69945 2.58303
3480 3479 -19.0943 1.03582 3.16601
3481 3480 -18.8194 -1.42927 7.86016
3482 3481 -18.4039 -7.82917 4.02575
3483 3482 -17.7101 9.29268 9.04697
3484 3483 -18.3686 -7.91159 4.9332
3485 3484 -18.4248 7.77994 4.0181
3486 3485 -16.1127 -0.847958 19.0145
3487 3486 -18.6657 3.62955 8.25718
3488 3487 -18.9437 3.89426 4.2033
3489 3488 -18.4583 -7.70006 3.20149
3490 3489 -15.7089 8.07291 18.0311
3491 3490 -18.3792 7.88701 5.08873
3492 3491 -18.4116 -5.13419 9.13374
3493 3492 -19.0031 3.53484 3.39204
3494 3493 -18.4777 7.65333 3.22295
3495 3494 -17.9287 4.85505 12.1026
3496 3495 -17.9639 -4.88021 11.9356
3497 3496 -18.333 -7.99393 5.84065
3498 3497 -18.1691 6.30887 9.83956
3499 3498 -14.4175 -10.3815 20
3500 3499 -18.9251 2.04324 7.16503
3501 3500 -18.5117 -7.57075 2.37722
3502 3501 -17.9532 6.92575 10.6323
3503 3502 -18.5775 4.07757 8.98508
3504 3503 -19.0815 -2.28825 1.25176
3505 3504 -18.7107 -3.93236 8.04281
3506 3505 -18.333 7.99393 6.15935
3507 3506 -18.5297 7.52654 2.4278
3508 3507 -18.6101 -4.4125 8.56409
3509 3508 -17.1646 6.24999 14.6619
3510 3509 -18.499 -7.60184 1.18861
3511 3510 -18.5024 7.59352 1.2139
3512 3511 -18.939 -1.87658 7.38184
3513 3512 -18.2472 -5.32307 10.4324
3514 3513 -18.3928 5.47022 9.45747
3515 3514 -17.5991 -9.50112 10.0891
3516 3515 -19.1998 0.62373 1.89761
3517 3516 -19.066 -2.44779 5.73533
3518 3517 -19.1511 -0.956157 5.25872
3519 3518 -19.2027 -0.715326 1.86031
3520 3519 -19.2237 -0.0399014 2.4806
3521 3520 -18.0101 -8.69692 8.55856
3522 3521 -19.0643 -2.40197 0
3523 3522 -19.0967 2.39077 5.61899
3524 3523 -19.1641 -1.49952 0.879973
3525 3524 -19.2234 -0.14877 1.58498
3526 3525 -18.4748 7.66045 0
3527 3526 -17.0737 -10.4157 11.8923
3528 3527 -17.0587 10.4404 11.9535
3529 3528 -18.4862 -7.63292 0
3530 3529 -19.1994 0.652128 0.917275
3531 3530 -19.038 3.93169 4.97074
3532 3531 -19.2024 -0.686927 0.879973
3533 3532 -18.073 8.56539 8.51061
3534 3533 -18.3792 -7.88701 6.91127
3535 3534 -17.6892 9.33224 10.0584
3536 3535 -18.3686 7.91159 7.0668
3537 3536 -19.0085 4.04788 5.68715
3538 3537 -19.0717 -2.44793 6.47974
3539 3538 -19.0777 0.809932 7.1716
3540 3539 -19.2291 0.800045 5.0733
3541 3540 -18.7869 -3.45272 8.65526
3542 3541 -19.223 -0.120371 0.604645
3543 3542 -19.1731 -1.34218 0
3544 3543 -19.0831 -3.97031 4.89143
3545 3544 -19.1063 -0.0394975 7.1739
3546 3545 -18.7104 -7.06535 4.54058
3547 3546 -18.7531 -6.95127 3.7938
3548 3547 -19.2631 -0.120132 5.05978
3549 3548 -18.7251 7.02655 4.52287
3550 3549 -18.5259 4.29944 10.1249
3551 3550 -19.2104 0.469396 0
3552 3551 -19.2113 -0.529577 0
3553 3552 -18.7678 6.91154 3.80698
3554 3553 -15.7055 -12.383 15.4009
3555 3554 -15.6421 12.463 15.5291
3556 3555 -19.0558 -4.07756 5.63305
3557 3556 -18.6789 -7.14846 5.44803
3558 3557 -19.1665 3.33596 4.77551
3559 3558 -18.8009 -6.82102 2.96953
3560 3559 -17.8718 -5.22792 12.9894
3561 3560 -17.8407 5.18957 13.1669
3562 3561 -18.8143 6.78386 3.01183
3563 3562 -18.6842 7.13448 5.59349
3564 3563 -19.1349 -0.888927 7.17619
3565 3564 -19.1486 3.43056 5.36278
3566 3565 -18.5869 -4.50892 9.89032
3567 3566 -16.7357 0.0493485 18.0289
3568 3567 -19.1514 2.5027 6.50358
3569 3568 -18.7212 3.27079 9.77434
3570 3569 -18.8524 -6.67724 2.08472
3571 3570 -18.3412 5.69209 10.5973
3572 3571 -18.0699 -8.57198 9.35372
3573 3572 -18.8644 6.64335 2.13668
3574 3573 -19.2135 -3.36738 4.69527
3575 3574 -19.0615 -4.0777 6.37746
3576 3575 -19.2654 2.67494 4.7299
3577 3576 -19.2308 2.94278 5.20098
3578 3577 -18.4039 7.82917 7.97425
3579 3578 -19.1479 3.43453 6.03117
3580 3579 -19.1952 -3.46421 5.28903
3581 3580 -18.6842 -7.13448 6.40651
3582 3581 -18.4248 -7.77994 7.9819
3583 3582 -18.8405 6.71086 0.922779
3584 3583 -18.8413 -6.70858 0.896106
3585 3584 -18.6789 7.14846 6.55197
3586 3585 -19.0631 4.15981 6.57173
3587 3586 -19.2185 3.02634 5.69464
3588 3587 -18.133 8.43762 9.33487
3589 3588 -18.7801 -3.50301 9.5688
3590 3589 -17.652 -9.40256 11.0429
3591 3590 -17.6683 9.37176 11.0698
3592 3591 -19.3142 -2.69221 4.64624
3593 3592 -19.3978 1.08421 4.1842
3594 3593 -19.2545 -1.33624 6.69787
3595 3594 -19.2784 -2.97055 5.12645
3596 3595 -19.3993 -1.20057 4.16962
3597 3596 -19.2008 -3.46435 6.03344
3598 3597 -19.0471 2.6904 8.2583
3599 3598 -19.2658 -3.05602 5.62556
3600 3599 -19.4409 0.614994 3.81162
3601 3600 -19.443 -0.711785 3.79585
3602 3601 -19.091 -3.96151 7.09387
3603 3602 -19.304 1.26939 6.51015
3604 3603 -19.464 -0.0362423 3.64921
3605 3604 -19.0207 -6.18178 4.30863
3606 3605 -18.9589 3.13842 8.9862
3607 3606 -19.0576 -6.06706 3.56185
3608 3607 -19.338 0.349216 6.49664
3609 3608 -19.0301 6.15275 4.31174
3610 3609 -18.983 -6.29644 5.05541
3611 3610 -19.0869 -2.79442 8.1912
3612 3611 -19.0671 6.03712 3.59586
3613 3612 -18.9923 6.26832 5.02763
3614 3613 -19.0905 4.05256 7.31335
3615 3614 -19.1292 2.11939 8.24818
3616 3615 -19.2016 -3.46037 6.70183
3617 3616 -18.9099 6.51281 0
3618 3617 -18.5023 -3.43048 11.6782
3619 3618 -18.9201 -6.48313 0
3620 3619 -19.1029 -5.9227 2.67703
3621 3620 -18.7104 7.06535 7.45942
3622 3621 -15.1748 8.80904 20
3623 3622 -19.1112 5.89607 2.72071
3624 3623 -19.2714 -3.05616 6.36997
3625 3624 -16.1594 -7.07962 18.378
3626 3625 -19.3666 -0.500214 6.49893
3627 3626 -18.7251 -7.02655 7.47713
3628 3627 -18.4583 7.70006 8.79851
3629 3628 -19.2025 3.54646 6.91576
3630 3629 -18.4777 -7.65333 8.77705
3631 3630 -19.3741 -1.78355 6.21955
3632 3631 -19.2731 3.13827 6.57923
3633 3632 -17.7098 4.77215 14.6608
3634 3633 -16.5925 -11.1664 14.3365
3635 3634 -16.5439 11.2382 14.4497
3636 3635 -18.9877 6.28238 5.98611
3637 3636 -18.9877 -6.28238 6.01389
3638 3637 -19.1471 -5.77827 1.79221
3639 3638 -19.0834 -0.107758 9.3642
3640 3639 -19.1541 5.75495 1.84556
3641 3640 -18.1172 -8.47165 10.3076
3642 3641 -19.1858 -2.1334 8.23681
3643 3642 -18.1143 8.47781 10.3463
3644 3643 -19.2838 -2.9726 6.86363
3645 3644 -18.6954 -2.42458 11.3566
3646 3645 -19.2195 -3.36577 7.2891
3647 3646 -19.173 1.63061 8.62196
3648 3647 -19.1187 2.20773 8.93908
3649 3648 -19.2857 3.0528 7.07833
3650 3649 -19.1939 0.955062 8.7686
3651 3650 -15.0565 13.1644 17.498
3652 3651 -15.0972 -13.1177 17.4352
3653 3652 -19.2437 -5.44805 4.0468
3654 3653 -19.2504 5.42412 4.07402
3655 3654 -19.2108 -5.56296 4.79358
3656 3655 -19.2782 -5.3245 3.2813
3657 3656 -19.0655 -0.678222 9.84125
3658 3657 -19.4862 -0.947525 6.02061
3659 3658 -19.2174 5.53993 4.78991
3660 3659 -19.2395 3.34547 7.56867
3661 3660 -19.2826 5.30847 3.35752
3662 3661 -19.1631 -2.31478 8.80365
3663 3662 -18.983 6.29644 6.94459
3664 3663 -18.7531 6.95127 8.2062
3665 3664 -19.2128 5.55609 0.922779
3666 3665 -19.214 -5.55192 0.896106
3667 3666 -19.3184 -2.70476 7.33471
3668 3667 -18.7678 -6.91154 8.19302
3669 3668 -18.9923 -6.26832 6.97237
3670 3669 -19.1794 -5.67019 5.5352
3671 3670 -19.2289 -1.66418 8.6094
3672 3671 -19.1835 5.6561 5.50632
3673 3672 -18.9877 -1.45989 10.3096
3674 3673 -19.3176 -5.17992 2.39648
3675 3674 -18.9921 1.26882 10.3711
3676 3675 -19.321 5.16722 2.48237
3677 3676 -18.4891 3.12286 12.5104
3678 3677 -19.0775 0.263625 10.0302
3679 3678 -18.0987 -4.2424 13.8126
3680 3679 -19.2519 -1.01295 8.7718
3681 3680 -19.3215 2.77446 7.55855
3682 3681 -18.4102 -3.77819 12.7319
3683 3682 -19.5302 1.72885 5.8487
3684 3683 -19.3523 5.04879 1.67317
3685 3684 -19.3508 -5.05444 1.63397
3686 3685 -18.5117 7.57075 9.62278
3687 3686 -19.5642 0.808677 5.83519
3688 3687 -18.5297 -7.52654 9.5722
3689 3688 -17.8129 -5.42709 14.547
3690 3689 -19.188 1.32645 9.43461
3691 3690 -19.1794 5.67019 6.4648
3692 3691 -18.776 -1.59485 11.7927
3693 3692 -19.1026 2.33164 9.77546
3694 3693 -19.1835 -5.6561 6.49368
3695 3694 -18.6844 2.09421 12.1598
3696 3695 -19.5983 -0.1115 5.82167
3697 3696 -19.2692 5.35716 0
3698 3697 -19.4387 -4.70506 3.76624
3699 3698 -19.4411 4.69509 3.83568
3700 3699 -19.4084 -4.82858 4.53174
3701 3700 -17.3689 -9.91576 13.2153
3702 3701 -19.2779 -5.32548 0
3703 3702 -19.0207 6.18178 7.69137
3704 3703 -19.4128 4.8107 4.55219
3705 3704 -19.234 -1.58341 9.24885
3706 3705 -19.4682 -4.58157 3.00075
3707 3706 -19.4686 4.57951 3.11917
3708 3707 -19.0301 -6.15275 7.68826
3709 3708 -17.3444 9.95852 13.3411
3710 3709 -19.3814 -4.93583 5.27337
3711 3710 -19.3836 4.92689 5.2686
3712 3711 -19.6223 -2.02797 5.13046
3713 3712 -19.5865 -2.3063 5.61067
3714 3713 -18.7808 -0.589893 12.1147
3715 3714 -19.4031 4.84985 0.750396
3716 3715 -19.4961 4.46118 2.30998
3717 3716 -19.4972 -4.45621 2.23824
3718 3717 -19.1563 -2.36508 9.71719
3719 3718 -19.4085 -4.828 0.737862
3720 3719 -19.4741 1.54116 7.56512
3721 3720 -18.671 -2.58997 12.3463
3722 3721 -18.8009 6.82102 9.03047
3723 3722 -18.8143 -6.78386 8.98817
3724 3723 -19.3537 5.04309 5.98501
3725 3724 -19.3537 -5.04309 6.01499
3726 3725 -19.5739 -2.39177 6.10978
3727 3726 -19.0683 -0.63016 10.7456
3728 3727 -19.2108 5.56296 7.20642
3729 3728 -19.5228 4.3429 1.50079
3730 3729 -19.2174 -5.53993 7.21009
3731 3730 -19.5255 -4.33089 1.47572
3732 3731 -19.5013 -1.59306 7.55284
3733 3732 -19.5749 -4.10163 3.57009
3734 3733 -19.5755 4.09885 3.64045
3735 3734 -19.5487 -4.22492 4.33559
3736 3735 -19.551 4.21425 4.35696
3737 3736 -18.195 -8.3032 11.3765
3738 3737 -19.5274 -4.32202 4.92934
3739 3738 -19.5303 4.30911 4.94423
3740 3739 -18.194 8.30541 11.427
3741 3740 -19.6989 2.01302 4.95961
3742 3741 -19.6643 2.28087 5.43069
3743 3742 -19.7446 -0.899789 4.79614
3744 3743 -19.5862 -2.30821 6.60344
3745 3744 -19.5043 4.42516 5.66064
3746 3745 -19.5034 -4.42914 5.67096
3747 3746 -19.5179 1.05237 7.9389
3748 3747 -19.6476 3.73783 2.8292
3749 3748 -18.401 3.45738 13.5747
3750 3749 -19.0576 6.06706 8.43815
3751 3750 -19.0671 -6.03712 8.40414
3752 3751 -19.6501 -3.7246 2.75213
3753 3752 -19.0731 0.374796 11.0677
3754 3753 -19.652 2.36443 5.92435
3755 3754 -19.3814 4.93583 6.72663
3756 3755 -19.3836 -4.92689 6.7314
3757 3756 -17.9153 -8.89049 12.3659
3758 3757 -19.8019 0.0166072 4.33012
3759 3758 -19.6697 3.61996 2.02001
3760 3759 -19.6734 -3.59972 1.98962
3761 3760 -19.5388 0.376826 8.08554
3762 3761 -19.5443 -1.12384 7.92542
3763 3762 -19.6692 -3.62272 4.13943
3764 3763 -19.6698 3.61923 4.16173
3765 3764 -15.6089 -8.4854 20
3766 3765 -17.9217 8.87759 12.4574
3767 3766 -19.6511 -3.71952 4.73318
3768 3767 -19.6522 3.7138 4.749
3769 3768 -19.5446 4.24352 0
3770 3769 -19.5034 4.42914 6.32904
3771 3770 -19.5043 -4.42516 6.33936
3772 3771 -19.5519 -4.20996 0
3773 3772 -19.2437 5.44805 7.9532
3774 3773 -19.7326 3.25929 3.35048
3775 3774 -19.2504 -5.42412 7.92598
3776 3775 -19.6209 -2.04037 7.07452
3777 3776 -19.6646 2.27896 6.42346
3778 3777 -19.7347 -3.24681 3.32147
3779 3778 -18.8169 -6.77677 9.79616
3780 3779 -19.6325 -3.81637 5.32694
3781 3780 -19.8173 0.627349 4.76251
3782 3781 -19.634 3.80843 5.33627
3783 3782 -19.5674 -0.472603 8.08783
3784 3783 -19.6476 3.73771 0.750396
3785 3784 -19.6521 -3.71402 0.737862
3786 3785 -18.5981 -7.356 10.6412
3787 3786 -18.5821 7.39627 10.7036
3788 3787 -18.8152 6.78152 9.91082
3789 3788 -18.7654 1.20019 12.8564
3790 3789 -19.7382 -3.22526 4.57061
3791 3790 -19.7382 3.22543 4.58721
3792 3791 -18.3409 -1.25713 14.6
3793 3792 -17.9409 3.74858 15.5145
3794 3793 -19.7886 2.90037 2.53923
3795 3794 -19.7927 -2.87203 2.50352
3796 3795 -18.6624 2.24681 13.181
3797 3796 -19.7803 2.95622 4.11613
3798 3797 -19.7819 -2.94546 4.09039
3799 3798 -19.4084 4.82858 7.46826
3800 3799 -19.4128 -4.8107 7.44781
3801 3800 -19.6333 -3.8124 5.99533
3802 3801 -19.6333 3.8124 6.00467
3803 3802 -19.7222 -3.32178 5.16437
3804 3803 -19.7226 3.31974 5.17447
3805 3804 -18.7781 -1.55527 12.851
3806 3805 -19.7711 3.01748 1.26962
3807 3806 -19.8305 2.5983 3.30487
3808 3807 -19.834 -2.57173 3.27244
3809 3808 -19.7759 -2.98568 1.25176
3810 3809 -19.0693 -6.03001 9.21213
3811 3810 -19.7004 2.00062 6.90367
3812 3811 -19.7076 -3.40758 5.66347
3813 3812 -19.7083 3.40362 5.66813
3814 3813 -19.5274 4.32202 7.07066
3815 3814 -19.5303 -4.30911 7.05577
3816 3815 -19.0701 6.02739 9.31851
3817 3816 -19.8293 2.60782 4.517
3818 3817 -19.8309 -2.59541 4.49539
3819 3818 -19.7989 -2.82906 5.00179
3820 3819 -19.7984 2.83288 5.01268
3821 3820 -19.8867 2.12589 2.93229
3822 3821 -19.8676 2.29719 4.07052
3823 3822 -19.8916 -2.07951 2.89866
3824 3823 -19.8705 -2.27238 4.04136
3825 3824 -19.8854 2.13841 2.18689
3826 3825 -19.6325 3.81637 6.67306
3827 3826 -19.634 -3.80843 6.66373
3828 3827 -19.7802 -2.95693 5.49349
3829 3828 -19.7801 2.9579 5.49917
3830 3829 -19.8916 -2.07939 2.13173
3831 3830 -17.6568 4.95374 16.2933
3832 3831 -19.2826 -5.30847 8.64248
3833 3832 -19.9128 1.86567 3.65069
3834 3833 -14.1421 14.1421 20
3835 3834 -14.1421 -14.1421 20
3836 3835 -19.9168 -1.82248 3.61702
3837 3836 -19.7076 3.40758 6.33653
3838 3837 -19.7083 -3.40362 6.33187
3839 3838 -19.7528 3.13471 0
3840 3839 -19.7584 -3.09945 0
3841 3840 -19.7737 3 6
3842 3841 -19.7737 -3 6
3843 3842 -19.9538 1.35875 3.32534
3844 3843 -19.9529 1.37115 2.57995
3845 3844 -19.8725 2.25458 0.917275
3846 3845 -19.958 -1.29481 3.29381
3847 3846 -19.9581 -1.29469 2.52688
3848 3847 -18.6371 -2.79267 13.5551
3849 3848 -19.8795 -2.19208 0.879973
3850 3849 -19.4411 -4.69509 8.16432
3851 3850 -18.2 -2.49454 15.3041
3852 3851 -19.9521 1.38354 1.83455
3853 3852 -19.551 -4.21425 7.64304
3854 3853 -19.9868 0.726239 3.08923
3855 3854 -19.9581 -1.29457 1.75995
3856 3855 -19.9899 -0.6367 3.06834
3857 3856 -19.9872 0.715973 2.41754
3858 3857 -19.9905 -0.615008 2.38024
3859 3858 -19.9999 0.0562798 3.00053
3860 3859 -17.9142 -3.67922 16.0385
3861 3860 -19.6522 -3.7138 7.251
3862 3861 -19.7226 -3.31974 6.82553
3863 3862 -19.9999 -0.0525 2.10491
3864 3863 -19.7222 3.32178 6.83563
3865 3864 -19.571 4.12038 7.72357
3866 3865 -19.3152 5.18877 8.93642
3867 3866 -19.7801 -2.9579 6.50083
3868 3867 -19.7802 2.95693 6.50651
3869 3868 -19.9868 -0.725148 1.48462
3870 3869 -19.9908 0.605851 1.52192
3871 3870 -19.6705 3.61525 7.32597
3872 3871 -18.7626 0.234813 13.5927
3873 3872 -19.9639 1.20054 0.917275
3874 3873 -19.0716 -6.0229 10.0201
3875 3874 -19.9677 -1.13702 0.879973
3876 3875 -19.8412 1.31723 6.94199
3877 3876 -19.9993 -0.161457 1.20929
3878 3877 -19.471 4.56942 8.45147
3879 3878 -19.8927 2.06934 0
3880 3879 -19.8965 -2.03251 0
3881 3880 -16.7487 -10.9307 15.9314
3882 3881 -16.9288 5.46732 18.5539
3883 3882 -19.9919 -0.569118 0.604645
3884 3883 -19.9955 0.425273 0.604645
3885 3884 -18.8778 -6.60512 10.8651
3886 3885 -19.7984 -2.83288 6.98732
3887 3886 -19.2846 -5.30135 9.45047
3888 3887 -16.7049 10.9975 16.0622
3889 3888 -19.7989 2.82906 6.99821
3890 3889 -19.0826 5.98772 10.1989
3891 3890 -19.7382 -3.22543 7.41279
3892 3891 -19.6698 -3.61923 7.83827
3893 3892 -19.5755 -4.09885 8.35955
3894 3893 -19.9677 -1.72718 5.75697
3895 3894 -19.9741 1.01808 0
3896 3895 -18.8776 6.60583 10.9916
3897 3896 -19.976 -0.97987 0
3898 3897 -19.7549 3.12137 7.48854
3899 3898 -19.4686 -4.57951 8.88083
3900 3899 -20 0.018753 0
3901 3900 -18.6648 -7.18517 11.7101
3902 3901 -18.7553 1.38421 13.8517
3903 3902 -18.6507 7.22148 11.7843
3904 3903 -19.9207 -1.13619 6.97454
3905 3904 -19.7064 3.4144 7.97888
3906 3905 -19.8293 -2.60782 7.483
3907 3906 -19.8309 2.59541 7.50461
3908 3907 -19.3258 5.14904 9.81677
3909 3908 -19.7803 -2.95622 7.88387
3910 3909 -19.6236 3.86186 8.70678
3911 3910 -16.3485 -6.37178 20
3912 3911 -20.0798 -0.891157 5.55803
3913 3912 -19.7971 2.84183 7.96876
3914 3913 -18.0644 2.69292 16.3337
3915 3914 -17.5061 -9.67136 14.8101
3916 3915 -18.4241 -7.78152 12.6995
3917 3916 -18.6322 2.4338 14.4284
3918 3917 -17.305 -3.80568 18.378
3919 3918 -20.1371 0.0252392 5.09201
3920 3919 -18.4153 7.80226 12.8147
3921 3920 -17.4855 9.70861 14.9536
3922 3921 -19.7522 -3.13862 8.45071
3923 3922 -19.8676 -2.29719 7.92948
3924 3923 -19.53 4.31043 9.43468
3925 3924 -19.8705 2.27238 7.95864
3926 3925 -20.0403 -1.58351 6.49622
3927 3926 -19.9754 0.387357 7.55365
3928 3927 -19.6703 -3.61675 8.97199
3929 3928 -20.1184 1.55616 5.53791
3930 3929 -20.0675 1.77669 6.28054
3931 3930 -20.1524 0.635981 5.5244
3932 3931 -20.1015 0.856515 6.26702
3933 3932 -17.3364 3.20651 18.5943
3934 3933 -19.7841 2.93065 8.65966
3935 3934 -20.004 -0.462072 7.55594
3936 3935 -18.1627 -8.37352 13.6888
3937 3936 -19.8458 -2.47839 8.49632
3938 3937 -16.3662 6.91298 20
3939 3938 -19.2578 -5.39781 10.7767
3940 3939 -19.4457 -4.67592 10.2071
3941 3940 -19.9128 -1.86567 8.34931
3942 3941 -19.9168 1.82248 8.38298
3943 3942 -19.8602 2.36067 8.64954
3944 3943 -20.1524 -0.747481 6.29728
3945 3944 -18.3403 -1.26863 16.0564
3946 3945 -18.1602 8.37887 13.845
3947 3946 -20.1801 -2.24994 5.14809
3948 3947 -20.2159 -1.9716 4.66787
3949 3948 -19.7129 3.37652 9.38756
3950 3949 -19.2653 5.37111 10.9566
3951 3950 -20.2732 -1.0552 4.20185
3952 3951 -20.1334 -2.39177 6.10978
3953 3952 -20.2717 1.22959 4.21643
3954 3953 -19.8223 -2.65995 9.06315
3955 3954 -19.0846 -5.98137 11.6217
3956 3955 -19.8991 -2.00663 8.86891
3957 3956 -20.3169 -0.566414 3.82807
3958 3957 -20.3148 0.760366 3.84384
3959 3958 -19.9538 -1.35875 8.67466
3960 3959 -19.6609 -3.66744 9.88554
3961 3960 -19.958 1.29481 8.70619
3962 3961 -19.0817 5.99059 11.7494
3963 3962 -20.3379 0.109129 3.68143
3964 3963 -19.4797 4.53224 10.5745
3965 3964 -19.9124 1.8697 9.02332
3966 3965 -20.2871 1.84033 4.64882
3967 3966 -20.2436 2.22886 5.3012
3968 3967 -19.8495 2.44905 9.34044
3969 3968 -20.2114 2.36443 5.92435
3970 3969 -20.1655 -2.25621 6.73293
3971 3970 -19.9868 -0.726239 8.91077
3972 3971 -16.212 -11.712 17.9657
3973 3972 -19.9899 0.6367 8.93166
3974 3973 -18.762 0.22332 15.0492
3975 3974 -16.1885 11.7445 18.0311
3976 3975 -19.9999 -0.0562798 8.99947
3977 3976 -20.2357 -0.0733587 6.87868
3978 3977 -19.6911 3.5014 10.2239
3979 3978 -19.9071 -1.92506 9.50836
3980 3979 -19.9591 -1.27793 9.31411
3981 3980 -20.2018 2.32679 6.85529
3982 3981 -19.8155 -2.71023 9.9767
3983 3982 -19.9755 0.989869 9.51884
3984 3983 -20.4023 2.05912 3.81826
3985 3984 -19.9903 -0.623775 9.47652
3986 3985 -18.7557 1.37814 15.2476
3987 3986 -18.9724 -6.32837 12.6755
3988 3987 -20.418 -2.02531 3.78683
3989 3988 -20.4454 1.58107 3.45045
3990 3989 -19.8338 2.57288 10.1768
3991 3990 -19.9389 1.56211 9.83596
3992 3991 -20.4733 0.963597 3.15896
3993 3992 -19.4223 -4.77235 11.5333
3994 3993 -20.4618 -1.52744 3.41796
3995 3994 -19.9975 0.313794 9.66548
3996 3995 -20.2376 2.04846 7.33551
3997 3996 -18.9737 6.32442 12.8136
3998 3997 -20.4964 0.306616 3.01571
3999 3998 -17.8337 4.28577 17.7394
4000 3999 -20.3776 2.78413 4.88259
4001 4000 -20.4942 -0.888504 3.13459
4002 4001 -20.4123 2.53777 4.40009
4003 4002 -20.3852 -2.77775 4.86682
4004 4003 -20.3458 -2.95925 5.50723
4005 4004 -20.3455 2.96015 5.51265
4006 4005 -20.421 -2.5214 4.3744
4007 4006 -19.9641 -1.19721 9.95356
4008 4007 -20.5151 -0.207636 3.00719
4009 4008 -19.4267 4.75417 11.7144
4010 4009 -20.3332 -3 6
4011 4010 -20.3332 3 6
4012 4011 -20.2871 -1.84033 7.35118
4013 4012 -19.6427 -3.76347 11.2118
4014 4013 -19.9023 -1.97491 10.4219
4015 4014 -19.9984 -0.251521 10.1425
4016 4015 -18.7613 -6.92914 13.6648
4017 4016 -20.3455 -2.96015 6.48735
4018 4017 -20.3458 2.95925 6.49277
4019 4018 -19.6506 3.72233 11.3638
4020 4019 -19.8086 -2.76054 10.8902
4021 4020 -19.9882 0.686487 10.3315
4022 4021 -19.8173 2.69687 11.0132
4023 4022 -19.9289 1.68456 10.6723
4024 4023 -18.7685 6.90973 13.844
4025 4024 -18.1033 -2.97138 17.6605
4026 4025 -19.3335 -5.12004 12.5871
4027 4026 -20.3776 -2.78413 7.11741
4028 4027 -20.5613 -1.67081 5.29439
4029 4028 -20.3704 -1.1662 7.93259
4030 4029 -20.3718 1.11858 7.94717
4031 4030 -20.3852 2.77775 7.13318
4032 4031 -17.1057 4.79935 20
4033 4032 -20.6186 -0.754417 4.82837
4034 4033 -19.967 -1.14913 10.8579
4035 4034 -18.3542 -0.497782 17.4104
4036 4035 -19.3418 5.08867 12.7786
4037 4036 -20.6758 0.161979 4.36234
4038 4037 -19.907 -1.92628 11.3263
4039 4038 -17.3565 2.57414 20
4040 4039 -19.999 -0.204249 11.0469
4041 4040 -20.4123 -2.53777 7.59991
4042 4041 -20.6537 -0.449472 5.36191
4043 4042 -19.6101 -3.93 12.2014
4044 4043 -20.421 2.5214 7.6256
4045 4044 -20.4134 -0.696985 8.30518
4046 4045 -20.4156 0.629795 8.32094
4047 4046 -20.6912 0.77272 4.79473
4048 4047 -20.4023 -2.05912 8.18174
4049 4048 -18.3478 0.657041 17.6088
4050 4049 -19.7848 -2.92581 11.8799
4051 4050 -20.6339 -1.52714 6.03363
4052 4051 -20.418 2.02531 8.21317
4053 4052 -19.6208 3.87604 12.385
4054 4053 -19.9841 0.797548 11.369
4055 4054 -20.4365 -0.0457484 8.46758
4056 4055 -20.6556 1.604 5.96975
4057 4056 -15.6366 12.4698 20
4058 4057 -15.6366 -12.4698 20
4059 4058 -20.7065 1.38346 5.22712
4060 4059 -20.6537 0.337972 6.45976
4061 4060 -19.796 2.84936 12.0344
4062 4061 -19.9191 1.79739 11.7098
4063 4062 -20.6047 1.82453 6.71237
4064 4063 -20.4454 -1.58107 8.54955
4065 4064 -20.7634 -1.71074 4.42909
4066 4065 -19.2381 -5.46776 13.6408
4067 4066 -20.8064 0.977986 3.97892
4068 4067 -19.9697 -1.10108 11.7623
4069 4068 -20.4618 1.52744 8.58204
4070 4069 -20.8207 -0.794345 3.96306
4071 4070 -20.8344 0.362167 3.70776
4072 4071 -20.4733 -0.963597 8.84104
4073 4072 -20.8531 -0.158192 3.70036
4074 4073 -20.7269 -2.33541 5.64719
4075 4074 -20.7664 -2.19511 5.01379
4076 4075 -20.8218 1.58873 4.41131
4077 4076 -17.4941 -3.09784 20
4078 4077 -20.4942 0.888504 8.86541
4079 4078 -19.2507 5.4232 13.8429
4080 4079 -20.7065 -1.38346 6.77288
4081 4080 -20.4964 -0.306616 8.98429
4082 4081 -19.8905 -2.09002 12.316
4083 4082 -19.5374 -4.27689 13.2552
4084 4083 -19.9998 -0.094428 12.0844
4085 4084 -20.5151 0.207636 8.99281
4086 4085 -20.8317 2.05616 4.99041
4087 4086 -18.6871 -7.12689 15.2224
4088 4087 -20.7996 2.19173 5.61356
4089 4088 -18.1271 -8.45032 16.3437
4090 4089 -20.7487 2.41226 6.35619
4091 4090 -19.7596 -3.09133 12.8696
4092 4091 -20.7389 0.894656 7.32403
4093 4092 -19.5519 4.20967 13.4493
4094 4093 -19.9793 0.908827 12.4064
4095 4094 -20.937 1.79399 3.59551
4096 4095 -20.7996 -2.19173 6.38644
4097 4096 -20.9649 1.19568 3.24857
4098 4097 -19.7734 3.00207 13.0556
4099 4098 -19.9049 1.94829 12.731
4100 4099 -20.9929 0.562356 3.05318
4101 4100 -18.7011 7.09004 15.4764
4102 4101 -18.1287 8.4469 16.585
4103 4102 -20.7898 -0.70934 7.35429
4104 4103 -20.9655 -1.75067 3.56378
4105 4104 -17.7448 -0.872632 20
4106 4105 -21.0116 0.0401301 3.00027
4107 4106 -20.9979 -1.13009 3.22099
4108 4107 -20.7881 2.27197 6.98959
4109 4108 -20.9469 2.33758 4.11965
4110 4109 -21.0304 -0.478363 3.03838
4111 4110 -20.9685 -2.31322 4.08976
4112 4111 -19.9718 -1.06149 12.8206
4113 4112 -17.4233 -9.81976 17.9657
4114 4113 -18.1171 -2.20054 19.0145
4115 4114 -20.7851 1.7876 7.57429
4116 4115 -20.8317 -2.05616 7.00959
4117 4116 -17.4038 9.85428 18.0311
4118 4117 -20.9569 2.72887 4.75369
4119 4118 -20.8218 -1.58873 7.58869
4120 4119 -20.9248 2.93569 5.38219
4121 4120 -20.9716 -2.71941 4.73318
4122 4121 -20.9321 -2.93347 5.37171
4123 4122 -20.8926 -3 6
4124 4123 -20.8926 3 6
4125 4124 -19.8947 -2.04985 13.3743
4126 4125 -19.9999 -0.055564 13.1427
4127 4126 -20.8731 -0.035217 7.93569
4128 4127 -20.9248 -2.93569 6.61781
4129 4128 -19.4916 -4.48082 14.464
4130 4129 -20.9321 2.93347 6.62829
4131 4130 -19.9701 1.09256 13.4017
4132 4131 -19.1803 -5.66697 15.1984
4133 4132 -19.7269 -3.29387 14.0784
4134 4133 -19.8857 2.13487 13.7263
4135 4134 -21.1352 -1.22913 5.09827
4136 4135 -20.905 -0.914605 8.17009
4137 4136 -20.9193 0.857726 8.18596
4138 4137 -21.1925 -0.312732 4.63225
4139 4138 -18.3679 0.0246743 19.0145
4140 4139 -19.5105 4.39792 14.6966
4141 4140 -20.9569 -2.72887 7.24631
4142 4141 -20.9716 2.71941 7.26682
4143 4142 -21.2078 0.298009 5.06464
4144 4143 -20.933 -0.298786 8.44126
4145 4144 -19.7441 3.18892 14.303
4146 4145 -20.9469 -2.33758 7.88035
4147 4146 -19.1986 5.60481 15.4753
4148 4147 -20.9517 0.221573 8.44865
4149 4148 -19.9739 -1.02193 13.879
4150 4149 -20.9685 2.31322 7.91024
4151 4150 -20.937 -1.79399 8.40449
4152 4151 -21.2078 -1.08545 5.83752
4153 4152 -20.9655 1.75067 8.43622
4154 4153 -21.2078 1.08545 6.16248
4155 4154 -20.9649 -1.19568 8.75143
4156 4155 -21.1569 1.30599 6.90511
4157 4156 -19.9996 0.124953 14.1379
4158 4157 -21.3373 -1.26906 4.23297
4159 4158 -20.9979 1.13009 8.77901
4160 4159 -21.2078 -0.298009 6.93536
4161 4160 -20.9929 -0.562356 8.94682
4162 4161 -19.873 -2.25024 14.5831
4163 4162 -19.9592 1.27686 14.3969
4164 4163 -21.0116 -0.0401301 8.99973
4165 4164 -21.3403 -1.75343 4.81767
4166 4165 -21.0304 0.478363 8.96162
4167 4166 -21.3423 -2.33541 5.64719
4168 4167 -21.4693 0.704096 3.81672
4169 4168 -21.4146 1.8605 4.67336
4170 4169 -19.6919 -3.49673 15.2872
4171 4170 -16.942 10.6286 20
4172 4171 -16.942 -10.6286 20
4173 4172 -19.865 2.32007 14.9736
4174 4173 -21.4857 -0.512713 3.80367
4175 4174 -21.4929 0.120688 3.6817
4176 4175 -21.2911 0.376113 7.51677
4177 4176 -21.4149 2.19173 5.61356
4178 4177 -21.364 2.41226 6.35619
4179 4178 -19.4447 -4.67995 16.0216
4180 4179 -21.3403 1.75343 7.18233
4181 4180 -19.713 3.37606 15.5503
4182 4181 -21.5298 2.08217 3.84024
4183 4182 -19.1204 -5.8661 16.756
4184 4183 -21.4149 -2.19173 6.38644
4185 4184 -21.3373 1.26906 7.76703
4186 4185 -21.572 -2.04978 3.80948
4187 4186 -21.5999 1.52689 3.41764
4188 4187 -21.5397 2.5544 4.42677
4189 4188 -21.6279 0.905817 3.14002
4190 4189 -19.9733 -1.03342 15.3355
4191 4190 -19.4687 4.57939 16.329
4192 4191 -21.6514 0.318475 3.01695
4193 4192 -21.4146 -1.8605 7.32664
4194 4193 -21.6305 -1.47558 3.38798
4195 4194 -21.5751 -2.53911 4.40221
4196 4195 -21.6629 -0.833629 3.11815
4197 4196 -21.6702 -0.195899 3.0064
4198 4197 -21.5401 2.93569 5.38219
4199 4198 -21.5474 -2.93347 5.37171
4200 4199 -21.5079 3 6
4201 4200 -21.5079 -3 6
4202 4201 -19.1447 5.78637 17.1078
4203 4202 -19.9997 0.113652 15.5944
4204 4203 -21.7091 -0.787443 4.90216
4205 4204 -19.9596 1.2708 15.7928
4206 4205 -21.5401 -2.93569 6.61781
4207 4206 -21.7517 0.336524 4.56996
4208 4207 -21.5474 2.93347 6.62829
4209 4208 -19.8717 -2.26194 16.0396
4210 4209 -21.7091 -1.94289e-15 6
4211 4210 -21.7671 0.947265 5.00235
4212 4211 -18.6274 -7.28157 18.378
4213 4212 -21.5397 -2.5544 7.57323
4214 4213 -21.6665 -0.778416 7.07419
4215 4214 -21.5298 -2.08217 8.15976
4216 4215 -21.5751 2.53911 7.59779
4217 4216 -19.8657 2.31392 16.3695
4218 4217 -21.568 -0.640716 8.3323
4219 4218 -21.5843 0.576094 8.34535
4220 4219 -18.6428 7.24206 18.5539
4221 4220 -21.7091 0.787443 7.09784
4222 4221 -21.572 2.04978 8.19052
4223 4222 -21.5915 -0.0573069 8.46732
4224 4223 -21.8823 1.15253 4.18654
4225 4224 -21.5999 -1.52689 8.58236
4226 4225 -21.8783 1.42367 5.57489
4227 4226 -21.7498 -0.104294 7.6556
4228 4227 -21.6305 1.47558 8.61202
4229 4228 -21.9439 -1.55137 4.49722
4230 4229 -21.6279 -0.905817 8.85998
4231 4230 -21.9162 -1.89372 5.45108
4232 4231 -21.8783 -1.42367 6.42511
4233 4232 -22.0023 -0.987424 4.07357
4234 4233 -21.6514 -0.318475 8.98305
4235 4234 -21.6629 0.833629 8.88185
4236 4235 -21.7817 -0.983682 7.89
4237 4236 -19.9727 -1.04491 16.792
4238 4237 -21.6702 0.195899 8.9936
4239 4238 -18.0194 8.67767 20
4240 4239 -18.0194 -8.67767 20
4241 4240 -21.9162 1.89372 6.54892
4242 4241 -19.6014 -3.973 17.6436
4243 4242 -19.9997 0.107715 16.9903
4244 4243 -19.6136 3.91248 17.7752
4245 4244 -19.96 1.26473 17.1887
4246 4245 -21.9439 1.55137 7.50278
4247 4246 -22.1226 2.33755 4.11961
4248 4247 -19.3234 -5.15824 18.378
4249 4248 -22.1927 1.83739 3.6285
4250 4249 -22.1786 -2.3153 4.09228
4251 4250 -22.1229 2.84253 5.04083
4252 4251 -19.334 5.11834 18.5539
4253 4252 -22.0023 0.987424 7.92643
4254 4253 -22.1678 -0.480407 6.13883
4255 4254 -22.2371 -1.79704 3.59778
4256 4255 -22.1509 -2.83713 5.02497
4257 4256 -22.2628 1.24621 3.27109
4258 4257 -22.2864 0.659387 3.07336
4259 4258 -22.2684 -0.138187 4.83986
4260 4259 -22.3027 -0.546334 3.05017
4261 4260 -22.31 0.0793968 3.00105
4262 4261 -22.2955 -1.1874 3.24499
4263 4262 -22.1233 3 6
4264 4263 -22.1233 -3 6
4265 4264 -22.1678 0.307036 7.23667
4266 4265 -22.2684 0.649256 5.93771
4267 4266 -22.1229 -2.84253 6.95917
4268 4267 -22.1509 2.83713 6.97503
4269 4268 -22.1226 -2.33755 7.88039
4270 4269 -22.3796 -1.12566 5.48975
4271 4270 -19.8124 -2.73324 18.396
4272 4271 -22.1786 2.3153 7.90772
4273 4272 -19.7965 2.84551 18.5943
4274 4273 -22.4751 1.42431 4.44859
4275 4274 -18.8872 6.5784 20
4276 4275 -18.8872 -6.5784 20
4277 4276 -22.3796 1.12566 6.51025
4278 4277 -22.1927 -1.83739 8.3715
4279 4278 -19.9932 -0.51991 18.396
4280 4279 -22.5452 0.878641 4.02433
4281 4280 -22.5616 -0.338168 4.01128
4282 4281 -22.5688 0.295233 3.88931
4283 4282 -22.2371 1.79704 8.40222
4284 4283 -22.3745 -1.25546 7.62795
4285 4284 -19.9901 0.628723 18.5943
4286 4285 -22.2628 -1.24621 8.72891
4287 4286 -22.6202 -1.33825 4.2858
4288 4287 -22.2955 1.1874 8.75501
4289 4288 -22.2864 -0.659387 8.92664
4290 4289 -22.5863 1.90071 5.02113
4291 4290 -22.3027 0.546334 8.94983
4292 4291 -22.31 -0.0793968 8.99895
4293 4292 -22.6143 -1.88959 5.08481
4294 4293 -22.4447 -0.709792 8.05221
4295 4294 -22.5866 2.23194 5.96133
4296 4295 -22.461 0.507017 8.06526
4297 4296 -22.5866 -2.23194 6.03867
4298 4297 -22.4682 -0.126384 8.18723
4299 4298 -22.5863 -1.90071 6.97887
4300 4299 -22.6143 1.88959 6.91519
4301 4300 -22.727 0.168849 6.07654
4302 4301 -22.6265 -0.173371 7.3755
4303 4302 -19.4986 4.45042 20
4304 4303 -19.4986 -4.45042 20
4305 4304 -22.8036 2.15232 3.91014
4306 4305 -22.8276 0.511069 4.77757
4307 4306 -22.6202 1.33825 7.7142
4308 4307 -22.8737 1.61015 3.46871
4309 4308 -22.855 -2.11276 3.87015
4310 4309 -22.8297 2.63019 4.55704
4311 4310 -22.9237 0.977666 3.16378
4312 4311 -22.9134 -1.54986 3.43136
4313 4312 -22.9472 0.389346 3.02537
4314 4313 -22.9558 -0.235538 3.00926
4315 4314 -22.9486 -0.874394 3.13026
4316 4315 -22.8662 -2.61733 4.53385
4317 4316 -22.8382 0.645253 6.64908
4318 4317 -22.83 2.96129 5.51964
4319 4318 -22.8382 -0.818623 6.72642
4320 4319 -22.8066 3 6
4321 4320 -22.8066 -3 6
4322 4321 -22.8386 -2.95992 5.51126
4323 4322 -22.9388 -0.476404 5.42746
4324 4323 -22.9388 0.987472 5.35012
4325 4324 -19.8791 2.19542 20
4326 4325 -19.8791 -2.19542 20
4327 4326 -22.83 -2.96129 6.48036
4328 4327 -22.8386 2.95992 6.48874
4329 4328 -20 0 20
4330 4329 -22.8297 -2.63019 7.44296
4331 4330 -22.8036 -2.15232 8.08986
4332 4331 -22.8662 2.61733 7.46615
4333 4332 -23.05 1.46388 5.92266
4334 4333 -23.05 -1.46388 6.07734
4335 4334 -22.855 2.11276 8.12985
4336 4335 -23.1561 1.22966 4.24814
4337 4336 -23.1795 -0.688989 4.22351
4338 4337 -23.2061 0.608609 3.93093
4339 4338 -22.8737 -1.61015 8.53129
4340 4339 -23.2147 -0.0241836 3.9151
4341 4340 -22.9134 1.54986 8.56864
4342 4341 -22.9237 -0.977666 8.83622
4343 4342 -23.0556 -1.06081 7.8284
4344 4343 -22.9486 0.874394 8.86974
4345 4344 -22.9472 -0.389346 8.97463
4346 4345 -22.9558 0.235538 8.99074
4347 4346 -23.0789 0.857838 7.85303
4348 4347 -23.2673 1.70606 4.82068
4349 4348 -23.2907 -1.67646 4.87339
4350 4349 -23.1055 -0.43976 8.14561
4351 4350 -23.1141 0.193033 8.16144
4352 4351 -23.2934 2.1508 5.47469
4353 4352 -23.27 2.23194 5.96133
4354 4353 -23.3019 -2.14789 5.54361
4355 4354 -23.27 -2.23194 6.03867
4356 4355 -23.2934 -2.1508 6.52531
4357 4356 -23.3019 2.14789 6.45639
4358 4357 -23.2673 -1.70606 7.17932
4359 4358 -23.2907 1.67646 7.12661
4360 4359 -23.4846 1.94825 3.7187
4361 4360 -23.5346 1.35285 3.32235
4362 4361 -23.5313 -1.88905 3.66944
4363 4362 -23.5665 -1.24763 3.27173
4364 4363 -23.5845 0.70615 3.08429
4365 4364 -23.5107 2.48647 4.32147
4366 4365 -23.5931 0.0699502 3.00082
4367 4366 -23.6017 -0.559436 3.05262
4368 4367 -23.5426 -2.45955 4.28226
4369 4368 -23.5367 2.83773 5.02671
4370 4369 -23.5134 2.96129 5.51964
4371 4370 -23.49 3 6
4372 4371 -23.49 -3 6
4373 4372 -23.522 -2.95992 5.51126
4374 4373 -23.5539 -2.8319 5.00988
4375 4374 -23.5134 -2.96129 6.48036
4376 4375 -23.522 2.95992 6.48874
4377 4376 -23.5367 -2.83773 6.97329
4378 4377 -23.5107 -2.48647 7.67853
4379 4378 -23.5539 2.8319 6.99012
4380 4379 -23.4846 -1.94825 8.2813
4381 4380 -23.5426 2.45955 7.71774
4382 4381 -23.5313 1.88905 8.33056
4383 4382 -23.5346 -1.35285 8.67765
4384 4383 -23.8132 -0.0966501 6.19237
4385 4384 -23.5665 1.24763 8.72827
4386 4385 -23.5845 -0.70615 8.91571
4387 4386 -23.9138 0.24557 4.8934
4388 4387 -23.9138 0.93021 4.71411
4389 4388 -23.5931 -0.0699502 8.99918
4390 4389 -23.6017 0.559436 8.94738
4391 4390 -23.8132 -0.07115 7.18915
4392 4391 -23.8132 -0.761361 7.36243
4393 4392 -24.025 0.721973 5.46594
4394 4393 -24.025 -0.741903 5.54328
4395 4394 -24.025 1.40661 5.28665
4396 4395 -24.025 -1.43496 5.81061
4397 4396 -24.025 1.43682 6.19139
4398 4397 -24.025 0.747473 6.46273
4399 4398 -24.025 -0.716403 6.54007
4400 4399 -24.025 2.23194 5.96133
4401 4400 -24.025 -2.23194 6.03867
4402 4401 -24.025 -1.40661 6.71335
4403 4402 -24.2423 1.73051 3.54942
4404 4403 -24.2423 1.6488 4.18468
4405 4404 -24.2657 -0.954489 4.33933
4406 4405 -24.2923 0.348285 3.02029
4407 4406 -24.2657 -1.69909 3.52753
4408 4407 -24.3009 -0.276213 3.01274
4409 4408 -24.2923 0.34311 4.04676
4410 4409 -24.2923 1.10858 3.21234
4411 4410 -24.2423 2.30777 4.08318
4412 4411 -24.2923 1.02775 3.86747
4413 4412 -24.3009 -1.03571 3.18445
4414 4413 -24.3009 -0.289683 4.03093
4415 4414 -24.2657 -1.64755 4.60666
4416 4415 -24.2657 -2.28296 4.0537
4417 4416 -24.2684 2.09354 4.83868
4418 4417 -24.2769 -2.11897 5.27688
4419 4418 -24.2684 2.73168 4.75988
4420 4419 -24.2769 -2.72792 4.75161
4421 4420 -24.2684 2.96129 5.51964
4422 4421 -24.245 3 6
4423 4422 -24.245 -3 6
4424 4423 -24.2769 -2.95992 5.51126
4425 4424 -24.2769 2.12083 6.72512
4426 4425 -24.2684 -2.96129 6.48036
4427 4426 -24.2684 -2.09354 7.16132
4428 4427 -24.2657 1.6494 7.39534
4429 4428 -24.2769 2.95992 6.48874
4430 4429 -24.2657 0.960059 7.66667
4431 4430 -24.2423 -1.6488 7.81532
4432 4431 -24.2684 -2.73168 7.24012
4433 4432 -24.2769 2.72792 7.24839
4434 4433 -24.2423 -2.30777 7.91682
4435 4434 -24.2923 -0.337539 7.95925
4436 4435 -24.3009 0.295253 7.97508
4437 4436 -24.2657 2.28296 7.9463
4438 4437 -24.2923 -1.02775 8.13253
4439 4438 -24.2423 -1.73051 8.45058
4440 4439 -24.2657 1.69909 8.47247
4441 4440 -24.2923 -1.10858 8.78766
4442 4441 -24.3009 1.03571 8.81555
4443 4442 -24.2923 -0.348285 8.97971
4444 4443 -24.3009 0.276213 8.98726
4445 4444 -25 -4.71028e-16 3
4446 4445 -25 0.749509 3.09514
4447 4446 -25 -0.749509 3.09514
4448 4447 -25 -0.00996478 4.00461
4449 4448 -25 0.674676 3.82532
4450 4449 -25 -0.759965 4.20558
4451 4450 -25 1.5 3.40192
4452 4451 -25 -1.5 3.40192
4453 4452 -25 1.42468 4.02629
4454 4453 -25 0.664711 4.82994
4455 4454 -25 -0.0199296 5.00923
4456 4455 -25 -1.45302 4.4729
4457 4456 -25 1.34935 4.65065
4458 4457 -25 2.12132 3.87868
4459 4458 -25 -2.12132 3.87868
4460 4459 -25 -0.712989 5.27655
4461 4460 -25 1.97371 4.57532
4462 4461 -25 0.694916 5.73468
4463 4462 -25 -2.00206 5.02194
4464 4463 -25 1.37956 5.55539
4465 4464 -25 -1.40605 5.54388
4466 4465 -25 2.59808 4.5
4467 4466 -25 -2.59808 4.5
4468 4467 -25 0.00557059 6.00601
4469 4468 -25 2.17468 5.32532
4470 4469 -25 -0.687489 6.27334
4471 4470 -25 -2.20302 5.77194
4472 4471 -25 2.90486 5.25049
4473 4472 -25 -2.90486 5.25049
4474 4473 -25 -1.3777 6.44662
4475 4474 -25 1.40976 6.46012
4476 4475 -25 0.720416 6.73146
4477 4476 -25 2.20488 6.23006
4478 4477 -25 0.0310707 7.00279
4479 4478 -25 -0.659141 7.17607
4480 4479 -25 -3 6
4481 4480 -25 3 6
4482 4481 -25 -2.17468 6.67468
4483 4482 -25 2.00392 6.98006
4484 4483 -25 -1.34935 7.34935
4485 4484 -25 2.90486 6.74951
4486 4485 -25 -2.90486 6.74951
4487 4486 -25 1.45488 7.5291
4488 4487 -25 -1.97371 7.42468
4489 4488 -25 0.765535 7.80043
4490 4489 -25 0.0155354 8.0014
4491 4490 -25 -1.42468 7.97371
4492 4491 -25 2.59808 7.5
4493 4492 -25 -2.59808 7.5
4494 4493 -25 -0.674676 8.17468
4495 4494 -25 2.12132 8.12132
4496 4495 -25 -2.12132 8.12132
4497 4496 -25 1.5 8.59808
4498 4497 -25 -1.5 8.59808
4499 4498 -25 0.749509 8.90486
4500 4499 -25 -0.749509 8.90486
4501 4500 -25 4.71028e-16 9
4502 end coordinates
4503
4504 Elements
4505 1 594 515 664 729 556 585 626 662 627 691
4506 2 3840 3819 3781 3388 3828 3803 3812 3586 3576 3564
4507 3 433 516 566 652 473 539 499 543 580 604
4508 4 3841 3885 3826 3463 3866 3861 3837 3623 3643 3615
4509 5 3888 3840 3825 3476 3867 3836 3863 3648 3631 3628
4510 6 515 431 567 632 472 498 540 570 527 592
4511 7 3818 3841 3779 3412 3827 3811 3802 3594 3598 3579
4512 8 516 595 669 768 557 628 588 646 685 723
4513 9 602 720 598 462 659 658 603 531 587 529
4514 10 138 228 135 158 188 183 133 144 195 143
4515 11 3858 4099 4109 4036 3997 4105 4007 3962 4070 4072
4516 12 3975 4160 4165 4126 4080 4163 4084 4054 4143 4147
4517 13 594 664 750 729 626 709 676 662 691 732
4518 14 433 566 487 652 499 520 455 543 604 562
4519 15 3781 3819 3763 3388 3803 3790 3767 3564 3576 3557
4520 16 3826 3885 3891 3463 3861 3890 3860 3615 3643 3645
4521 17 3924 3888 3904 3476 3906 3897 3912 3680 3648 3659
4522 18 595 657 746 768 633 700 673 685 710 753
4523 19 3818 3779 3762 3412 3802 3766 3789 3594 3579 3573
4524 20 567 431 486 632 498 453 519 592 527 553
4525 21 664 515 567 729 585 540 612 691 627 642
4526 22 3840 3781 3825 3388 3812 3801 3836 3586 3564 3578
4527 23 566 516 669 652 539 588 614 604 580 650
4528 24 3841 3826 3779 3463 3837 3800 3811 3623 3615 3596
4529 25 3888 3825 3904 3476 3863 3870 3897 3648 3628 3659
4530 26 669 595 746 768 628 673 706 723 685 753
4531 27 594 515 729 514 556 627 662 551 511 622
4532 28 3840 3819 3388 3682 3828 3576 3586 3753 3741 3522
4533 29 433 516 652 460 473 580 543 443 483 552
4534 30 3841 3885 3463 3630 3866 3643 3623 3725 3743 3537
4535 31 655 695 569 462 679 637 609 545 575 506
4536 32 340 270 181 158 293 218 249 223 203 160
4537 33 3958 3922 4150 4126 3940 4047 4063 4044 4028 4135
4538 34 3842 3821 4094 4036 3832 3983 3988 3957 3952 4066
4539 35 340 433 487 652 382 455 403 496 543 562
4540 36 655 594 750 729 629 676 701 684 662 732
4541 37 3885 3922 3891 3463 3905 3908 3890 3643 3666 3645
4542 38 3819 3821 3763 3388 3816 3796 3790 3576 3575 3557
4543 39 3819 3840 4123 3682 3828 4010 4004 3741 3753 3968
4544 40 3885 3841 4122 3630 3866 4009 4016 3743 3725 3951
4545 41 3888 3840 3476 3682 3867 3631 3648 3776 3753 3567
4546 42 515 431 632 514 472 527 570 511 463 564
4547 43 3818 3841 3412 3630 3827 3598 3594 3712 3725 3516
4548 44 516 595 768 460 557 685 646 483 518 616
4549 45 516 433 362 460 473 396 446 483 443 399
4550 46 515 594 361 514 556 477 445 511 551 430
4551 47 3841 3818 4122 3630 3827 4003 4009 3725 3712 3951
4552 48 3840 3888 4123 3682 3867 4017 4010 3753 3776 3968
4553 49 431 515 361 514 472 445 395 463 511 430
4554 50 595 516 362 460 557 446 478 518 483 399
4555 51 3922 3885 4140 3630 3905 4026 4040 3775 3743 3969
4556 52 3821 3819 4117 3682 3816 3999 4001 3740 3741 3966
4557 53 594 655 466 514 629 563 525 551 577 475
4558 54 433 340 261 460 382 290 338 443 385 341
4559 55 3823 3818 3762 3412 3817 3789 3797 3591 3594 3573
4560 56 431 337 486 632 380 400 453 527 474 553
4561 57 3823 3845 4103 4036 3835 3993 3987 3950 3956 4069
4562 58 3924 3960 4152 4126 3941 4068 4051 4029 4045 4136
4563 59 698 657 568 462 680 611 638 578 547 505
4564 60 265 337 171 158 291 240 214 200 222 154
4565 61 3840 3825 3476 3388 3836 3628 3631 3586 3578 3428
4566 62 567 515 632 729 540 570 592 642 627 675
4567 63 669 516 768 652 588 646 723 650 580 708
4568 64 3841 3779 3412 3463 3811 3579 3598 3623 3596 3438
4569 65 515 632 729 514 570 675 627 511 564 622
4570 66 3476 3840 3388 3682 3631 3586 3428 3567 3753 3522
4571 67 516 768 652 460 646 708 580 483 616 552
4572 68 3412 3841 3463 3630 3598 3623 3438 3516 3725 3537
4573 69 3818 3823 4120 4027 3817 4005 4002 3946 3947 4074
4574 70 3888 3924 4141 4062 3906 4043 4030 3980 3995 4107
4575 71 657 595 467 389 633 528 565 521 495 428
4576 72 337 431 259 257 380 336 287 284 335 254
4577 73 695 655 818 871 679 730 747 782 762 840
4578 74 3922 3958 3953 3402 3940 3955 3936 3641 3670 3661
4579 75 3781 3763 3703 3388 3767 3735 3738 3564 3557 3530
4580 76 750 664 846 729 709 752 796 732 691 778
4581 77 3826 3891 3799 3463 3860 3852 3814 3615 3645 3601
4582 78 487 566 666 652 520 610 571 562 604 644
4583 79 598 602 462 494 603 531 529 542 544 464
4584 80 135 138 158 56 133 144 143 88 91 96
4585 81 4099 4109 4036 4260 4105 4072 4070 4191 4196 4174
4586 82 4160 4165 4126 4291 4163 4147 4143 4233 4237 4222
4587 83 3958 4150 4160 4126 4063 4154 4071 4044 4135 4143
4588 84 3842 4094 4099 4036 3988 4096 3991 3957 4066 4070
4589 85 569 695 602 462 637 648 589 506 575 531
4590 86 181 270 138 158 218 198 153 160 203 144
4591 87 3842 4099 3858 4036 3991 3997 3853 3957 4070 3962
4592 88 3958 4160 3975 4126 4071 4080 3970 4044 4143 4054
4593 89 602 695 720 462 648 712 659 531 575 587
4594 90 138 270 228 158 198 238 188 144 203 195
4595 91 567 486 670 632 519 572 613 592 553 640
4596 92 3762 3779 3699 3412 3766 3737 3734 3573 3579 3543
4597 93 698 568 598 462 638 586 647 578 505 529
4598 94 265 171 135 158 214 151 193 200 154 143
4599 95 4103 3845 4109 4036 3993 4000 4106 4069 3956 4072
4600 96 4152 3960 4165 4126 4068 4077 4158 4136 4045 4147
4601 97 598 720 698 462 658 714 647 529 587 578
4602 98 135 228 265 158 183 233 193 143 195 200
4603 99 3858 4109 3845 4036 4007 4000 3855 3962 4072 3956
4604 100 3975 4165 3960 4126 4084 4077 3972 4054 4147 4045
4605 101 657 698 839 887 680 761 740 774 800 862
4606 102 3960 3924 3967 3375 3941 3942 3964 3646 3614 3647
4607 103 4117 3819 4123 3682 3999 4004 4119 3966 3741 3968
4608 104 4140 3885 4122 3630 4026 4016 4127 3969 3743 3951
4609 105 433 261 362 460 338 312 396 443 341 399
4610 106 594 466 361 514 525 421 477 551 475 430
4611 107 3888 4141 4123 4062 4030 4129 4017 3980 4107 4089
4612 108 3818 4120 4122 4027 4002 4121 4003 3946 4074 4073
4613 109 467 595 362 389 528 478 422 428 495 367
4614 110 259 431 361 257 336 395 311 254 335 296
4615 111 4260 4099 4256 4036 4191 4188 4257 4174 4070 4167
4616 112 4291 4160 4285 4126 4233 4229 4288 4222 4143 4217
4617 113 602 494 469 462 544 490 535 531 464 456
4618 114 138 56 70 158 91 61 98 144 96 100
4619 115 4260 4256 4363 4305 4257 4310 4312 4281 4279 4337
4620 116 4291 4285 4385 4301 4288 4341 4344 4297 4293 4349
4621 117 469 494 406 212 490 448 438 327 333 289
4622 118 70 56 18 58 61 32 40 60 49 31
4623 119 186 253 118 121 211 175 150 142 169 108
4624 120 185 252 245 130 210 236 213 146 179 177
4625 121 4450 4465 4456 4359 4457 4460 4452 4402 4410 4403
4626 122 17 67 34 45 39 46 21 24 51 33
4627 123 4497 4492 4483 4379 4495 4487 4490 4438 4433 4430
4628 124 346 262 192 355 309 219 260 343 300 255
4629 125 4368 4262 4370 4332 4317 4319 4369 4351 4294 4352
4630 126 4376 4263 4371 4333 4326 4320 4374 4355 4296 4354
4631 127 818 655 750 871 730 701 773 840 762 808
4632 128 3922 3953 3891 3402 3936 3921 3908 3641 3661 3610
4633 129 248 253 186 121 237 211 215 168 169 142
4634 130 116 252 185 130 173 210 148 112 179 146
4635 131 3922 4140 4150 4079 4040 4145 4047 4011 4115 4118
4636 132 3821 4117 4094 4058 4001 4108 3983 3965 4085 4075
4637 133 720 695 855 871 712 772 781 779 782 853
4638 134 3958 3975 4006 3402 3970 3984 3979 3670 3679 3704
4639 135 466 655 569 360 563 609 522 411 508 461
4640 136 261 340 181 231 290 249 216 234 280 201
4641 137 4370 4262 4378 4332 4319 4327 4375 4352 4294 4356
4642 138 4371 4263 4373 4333 4320 4321 4372 4354 4296 4353
4643 139 4291 4385 4389 4301 4344 4388 4345 4297 4349 4350
4644 140 4260 4363 4366 4305 4312 4365 4313 4281 4337 4339
4645 141 406 494 409 212 448 450 416 289 333 283
4646 142 18 56 15 58 32 30 13 31 49 27
4647 143 56 135 65 158 88 94 59 96 143 99
4648 144 494 598 468 462 542 534 491 464 529 454
4649 145 4165 4291 4287 4126 4237 4290 4234 4147 4222 4218
4650 146 4109 4260 4261 4036 4196 4259 4195 4072 4174 4173
4651 147 3818 3823 4027 3630 3817 3947 3946 3712 3711 3893
4652 148 3888 3924 4062 3682 3906 3995 3980 3776 3810 3929
4653 149 657 595 389 460 633 495 521 548 518 419
4654 150 337 431 257 514 380 335 284 408 463 369
4655 151 3703 3763 3706 3268 3735 3733 3698 3469 3487 3468
4656 152 750 846 937 1015 796 886 854 893 929 974
4657 153 3799 3891 3898 3240 3852 3892 3849 3474 3504 3507
4658 154 487 666 600 751 571 631 537 623 707 674
4659 155 3781 3703 3723 3388 3738 3710 3744 3564 3530 3536
4660 156 846 664 767 729 752 717 809 778 691 734
4661 157 3826 3799 3724 3463 3814 3755 3770 3615 3601 3574
4662 158 666 566 765 652 610 668 718 644 604 702
4663 159 632 567 729 767 592 642 675 687 671 734
4664 160 3825 3476 3388 3723 3628 3428 3578 3769 3585 3536
4665 161 768 669 652 765 723 650 708 754 716 702
4666 162 3779 3412 3463 3724 3579 3438 3596 3745 3555 3574
4667 163 3825 3781 3723 3388 3801 3744 3769 3578 3564 3536
4668 164 664 567 767 729 612 671 717 691 642 734
4669 165 3779 3826 3724 3463 3800 3770 3745 3596 3615 3574
4670 166 566 669 765 652 614 716 668 604 650 702
4671 167 56 65 15 58 59 36 30 49 54 27
4672 168 494 468 409 212 491 441 450 333 315 283
4673 169 4287 4291 4389 4301 4290 4345 4343 4295 4297 4350
4674 170 4261 4260 4366 4305 4259 4313 4314 4280 4281 4339
4675 171 4120 3823 4103 4027 4005 3987 4110 4074 3947 4064
4676 172 4141 3924 4152 4062 4043 4051 4149 4107 3995 4114
4677 173 337 259 171 257 287 209 240 284 254 205
4678 174 657 467 568 389 565 523 611 521 428 470
4679 175 3904 3825 3798 3476 3870 3813 3864 3659 3628 3613
4680 176 669 746 850 768 706 794 755 723 753 807
4681 177 3967 3924 3904 3375 3942 3912 3933 3647 3614 3597
4682 178 657 839 746 887 740 785 700 774 862 819
4683 179 4123 4262 4117 4058 4199 4197 4119 4087 4176 4085
4684 180 4122 4263 4140 4079 4200 4205 4127 4095 4183 4115
4685 181 253 362 261 231 299 312 251 224 288 234
4686 182 252 361 466 360 298 421 348 285 350 411
4687 183 567 670 767 632 613 721 671 592 640 687
4688 184 3798 3825 3723 3476 3813 3769 3754 3613 3628 3585
4689 185 669 850 765 768 755 810 716 723 807 754
4690 186 3699 3779 3724 3412 3737 3745 3709 3543 3579 3555
4691 187 4376 4371 4479 4333 4374 4422 4425 4355 4354 4400
4692 188 4368 4370 4480 4332 4369 4421 4420 4351 4352 4399
4693 189 4262 4123 4141 4062 4199 4129 4207 4177 4089 4107
4694 190 4263 4122 4120 4027 4200 4121 4198 4166 4073 4074
4695 191 362 253 467 389 299 349 422 367 303 428
4696 192 361 252 259 257 298 250 311 296 229 254
4697 193 4094 4246 4256 4305 4181 4248 4186 4223 4273 4279
4698 194 407 569 469 212 492 513 449 286 356 327
4699 195 127 181 70 58 145 115 92 77 97 60
4700 196 4150 4268 4285 4301 4214 4277 4224 4235 4283 4293
4701 197 186 118 156 121 150 132 163 142 108 123
4702 198 185 245 155 130 213 197 162 146 177 129
4703 199 729 594 514 655 662 551 622 684 629 577
4704 200 3819 3388 3682 3821 3576 3522 3741 3816 3575 3740
4705 201 652 433 460 340 543 443 552 496 382 385
4706 202 3885 3463 3630 3922 3643 3537 3743 3905 3666 3775
4707 203 466 569 407 360 522 492 440 411 461 364
4708 204 261 181 127 231 216 145 191 234 201 166
4709 205 4099 4094 4256 4036 4096 4186 4188 4070 4066 4167
4710 206 4160 4150 4285 4126 4154 4224 4229 4143 4135 4217
4711 207 569 602 469 462 589 535 513 506 531 456
4712 208 181 138 70 158 153 98 115 160 144 100
4713 209 4370 4378 4480 4332 4375 4428 4421 4352 4356 4399
4714 210 4371 4373 4479 4333 4372 4423 4422 4354 4353 4400
4715 211 4094 4117 4246 4058 4108 4187 4181 4075 4085 4168
4716 212 4150 4140 4268 4079 4145 4212 4214 4118 4115 4192
4717 213 248 186 156 121 215 163 199 168 142 123
4718 214 116 185 155 130 148 162 131 112 146 129
4719 215 695 655 871 617 679 762 782 645 625 739
4720 216 3922 3958 3402 3563 3940 3670 3641 3731 3761 3480
4721 217 4363 4256 4359 4305 4310 4307 4360 4337 4279 4335
4722 218 4385 4285 4379 4301 4341 4338 4382 4349 4293 4342
4723 219 469 406 352 212 438 387 412 327 289 271
4724 220 70 18 47 58 40 29 57 60 31 43
4725 221 598 568 468 462 586 512 534 529 505 454
4726 222 135 171 65 158 151 109 94 143 154 99
4727 223 4152 4165 4287 4126 4158 4234 4227 4136 4147 4218
4728 224 4103 4109 4261 4036 4106 4195 4193 4069 4072 4173
4729 225 670 486 599 769 572 536 630 715 636 681
4730 226 4249 4103 4261 4203 4185 4193 4254 4228 4157 4232
4731 227 4271 4152 4287 4220 4221 4227 4282 4245 4184 4252
4732 228 568 405 468 279 489 447 512 414 332 357
4733 229 171 122 65 128 141 90 109 140 113 87
4734 230 407 469 352 212 449 412 372 286 327 271
4735 231 127 70 47 58 92 57 82 77 60 43
4736 232 4285 4268 4379 4301 4277 4330 4338 4293 4283 4342
4737 233 4256 4246 4359 4305 4248 4304 4307 4279 4273 4335
4738 234 3762 3699 3705 3198 3734 3697 3732 3442 3408 3410
4739 235 18 15 1 19 13 2 5 9 8 6
4740 236 406 409 386 170 416 390 388 272 267 264
4741 237 4389 4385 4500 4477 4388 4442 4443 4435 4434 4489
4742 238 4366 4363 4444 4454 4365 4405 4407 4413 4408 4447
4743 239 632 729 514 822 675 622 564 724 763 672
4744 240 3388 3476 3682 3074 3428 3567 3522 3209 3246 3313
4745 241 768 652 460 812 708 552 616 771 726 639
4746 242 3463 3412 3630 3079 3438 3516 3537 3239 3225 3296
4747 243 695 818 855 871 747 830 772 782 840 853
4748 244 3953 3958 4006 3402 3955 3979 3978 3661 3670 3704
4749 245 4249 4261 4361 4203 4254 4311 4308 4228 4232 4286
4750 246 4271 4287 4381 4220 4282 4340 4334 4245 4252 4306
4751 247 468 405 355 279 447 373 415 357 332 292
4752 248 65 122 45 128 90 74 53 87 113 69
4753 249 171 259 122 128 209 182 141 140 174 113
4754 250 568 467 405 279 523 436 489 414 351 332
4755 251 4120 4103 4249 4203 4110 4185 4194 4164 4157 4228
4756 252 4141 4152 4271 4220 4149 4221 4215 4179 4184 4245
4757 253 15 65 45 58 36 53 23 27 54 37
4758 254 409 468 355 212 441 415 391 283 315 258
4759 255 4287 4389 4381 4301 4343 4384 4340 4295 4350 4346
4760 256 4261 4366 4361 4305 4314 4362 4311 4280 4339 4336
4761 257 3924 3888 3476 3682 3906 3648 3680 3810 3776 3567
4762 258 3823 3818 3412 3630 3817 3594 3591 3711 3712 3516
4763 259 431 337 632 514 380 474 527 463 408 564
4764 260 595 657 768 460 633 710 685 518 548 616
4765 261 695 720 462 617 712 587 575 645 651 524
4766 262 270 228 158 429 238 195 203 330 321 274
4767 263 3858 3842 4036 3423 3853 3957 3962 3603 3599 3757
4768 264 3975 3958 4126 3563 3970 4044 4054 3782 3761 3934
4769 265 657 698 887 620 680 800 774 635 649 760
4770 266 3960 3924 3375 3538 3941 3614 3646 3746 3719 3456
4771 267 3876 3854 3896 3304 3868 3874 3882 3541 3531 3551
4772 268 281 278 371 605 277 320 319 425 432 482
4773 269 4260 4256 4305 4036 4257 4279 4281 4174 4167 4206
4774 270 4291 4285 4301 4126 4288 4293 4297 4222 4217 4226
4775 271 469 494 212 462 490 333 327 456 464 316
4776 272 70 56 58 158 61 49 60 100 96 95
4777 273 3845 3858 4036 3423 3855 3962 3956 3600 3603 3757
4778 274 3960 3975 4126 3538 3972 4054 4045 3746 3760 3926
4779 275 720 698 462 620 714 578 587 653 649 530
4780 276 228 265 158 429 233 200 195 321 334 274
4781 277 270 340 381 583 293 345 308 417 457 471
4782 278 3821 3842 3793 3227 3832 3820 3806 3475 3477 3466
4783 279 228 270 282 583 238 273 244 384 417 418
4784 280 3842 3858 3851 3227 3853 3856 3843 3477 3479 3478
4785 281 698 839 887 884 761 862 800 793 852 879
4786 282 3967 3960 3375 4020 3964 3646 3647 3990 3982 3689
4787 283 3703 3706 3611 3268 3698 3660 3653 3469 3468 3426
4788 284 937 846 1032 1015 886 940 986 974 929 1016
4789 285 3799 3898 3750 3240 3849 3831 3774 3474 3507 3462
4790 286 600 666 829 751 631 735 719 674 707 776
4791 287 3612 3703 3611 3268 3658 3653 3608 3422 3469 3426
4792 288 1032 846 970 1015 940 900 1000 1016 929 987
4793 289 3668 3799 3750 3240 3729 3774 3707 3416 3474 3462
4794 290 829 666 885 751 735 777 857 776 707 821
4795 291 3723 3703 3612 3268 3710 3658 3671 3471 3469 3422
4796 292 846 767 970 1015 809 877 900 929 890 987
4797 293 3724 3799 3668 3240 3755 3729 3693 3446 3474 3416
4798 294 666 765 885 751 718 832 777 707 745 821
4799 295 698 720 884 887 714 806 793 800 799 879
4800 296 3975 3960 4020 3375 3972 3982 3994 3649 3646 3689
4801 297 34 17 45 15 21 24 33 14 10 23
4802 298 192 346 355 409 260 343 255 276 374 391
4803 299 632 729 822 945 675 763 724 804 844 876
4804 300 3388 3476 3074 3125 3428 3246 3209 3242 3265 3094
4805 301 768 652 812 916 708 726 771 847 797 867
4806 302 3463 3412 3079 3099 3438 3225 3239 3253 3238 3084
4807 303 3845 3823 3794 3171 3835 3807 3822 3441 3435 3421
4808 304 337 265 383 559 291 307 344 444 397 459
4809 305 4363 4359 4450 4456 4360 4402 4409 4411 4403 4452
4810 306 4385 4379 4497 4483 4382 4438 4440 4437 4430 4490
4811 307 47 18 16 19 29 11 25 22 9 12
4812 308 352 406 347 170 387 370 342 232 272 246
4813 309 4150 3922 4079 4126 4047 4011 4118 4135 4028 4102
4814 310 4094 3821 4058 4036 3983 3965 4075 4066 3952 4046
4815 311 655 569 360 462 609 461 508 545 506 402
4816 312 340 181 231 158 249 201 280 223 160 194
4817 313 3703 3763 3268 3388 3735 3487 3469 3530 3557 3330
4818 314 750 846 1015 729 796 929 893 732 778 883
4819 315 3799 3891 3240 3463 3852 3504 3474 3601 3645 3335
4820 316 487 666 751 652 571 707 623 562 644 699
4821 317 3823 4103 4027 4036 3987 4064 3947 3950 4069 4032
4822 318 3924 4152 4062 4126 4051 4114 3995 4029 4136 4091
4823 319 695 655 617 462 679 625 645 575 545 524
4824 320 3922 3958 3563 4126 3940 3761 3731 4028 4044 3934
4825 321 568 657 389 462 611 521 470 505 547 410
4826 322 171 337 257 158 240 284 205 154 222 196
4827 323 4381 4389 4496 4477 4384 4441 4439 4429 4435 4488
4828 324 4361 4366 4451 4454 4362 4412 4406 4404 4413 4449
4829 325 767 670 888 769 721 784 836 749 715 823
4830 326 3798 3723 3662 3125 3754 3690 3727 3386 3367 3344
4831 327 765 850 975 916 810 903 878 842 872 926
4832 328 3699 3724 3609 3198 3709 3669 3654 3408 3415 3378
4833 329 670 835 888 769 741 865 784 715 786 823
4834 330 3749 3798 3662 3168 3772 3727 3702 3401 3418 3377
4835 331 850 1036 975 1114 948 1004 903 992 1068 1039
4836 332 3606 3699 3609 3198 3652 3654 3604 3380 3408 3378
4837 333 337 383 486 559 344 427 400 444 459 502
4838 334 265 228 281 559 233 242 268 397 366 398
4839 335 3858 3845 3854 3171 3855 3846 3857 3440 3441 3443
4840 336 4062 3888 3682 4123 3980 3776 3929 4089 4017 3968
4841 337 4027 3818 3630 4122 3946 3712 3893 4073 4003 3951
4842 338 431 257 514 361 335 369 463 395 296 430
4843 339 595 389 460 362 495 419 518 478 367 399
4844 340 3821 3793 3763 3227 3806 3773 3796 3475 3466 3457
4845 341 381 340 487 583 345 403 424 471 457 517
4846 342 3922 4140 4079 3630 4040 4115 4011 3775 3969 3925
4847 343 3821 4117 4058 3682 4001 4085 3965 3740 3966 3928
4848 344 466 655 360 514 563 508 411 475 577 437
4849 345 261 340 231 460 290 280 234 341 385 339
4850 346 1 15 17 34 2 10 4 7 14 21
4851 347 386 409 346 192 390 374 376 266 276 260
4852 348 4389 4500 4496 4477 4443 4498 4441 4435 4489 4488
4853 349 4366 4444 4451 4454 4407 4446 4412 4413 4447 4449
4854 350 4480 4491 4474 4378 4484 4482 4476 4428 4432 4424
4855 351 347 386 170 406 377 264 246 370 388 272
4856 352 18 1 16 19 5 3 11 9 6 12
4857 353 4500 4385 4497 4483 4442 4440 4499 4493 4437 4490
4858 354 4444 4363 4450 4456 4405 4409 4445 4448 4411 4452
4859 355 670 599 835 769 630 722 741 715 681 786
4860 356 4479 4466 4464 4373 4472 4462 4470 4423 4419 4417
4861 357 3705 3699 3606 3198 3697 3652 3655 3410 3408 3380
4862 358 3705 3637 3730 3128 3673 3684 3716 3364 3339 3373
4863 359 4359 4246 4368 4332 4304 4309 4364 4347 4289 4351
4864 360 4379 4268 4376 4333 4330 4329 4377 4357 4298 4355
4865 361 407 352 245 130 372 304 325 230 217 177
4866 362 127 47 118 121 82 79 114 106 71 108
4867 363 798 599 596 875 692 590 694 827 731 733
4868 364 3794 3823 3762 3171 3807 3797 3777 3421 3435 3404
4869 365 4271 4381 4378 4332 4334 4380 4331 4299 4358 4356
4870 366 4249 4361 4373 4333 4308 4367 4315 4292 4348 4353
4871 367 45 122 116 130 74 111 73 72 107 112
4872 368 355 405 248 121 373 324 305 208 225 168
4873 369 670 486 769 632 572 636 715 640 553 690
4874 370 155 67 116 34 105 85 131 78 46 63
4875 371 156 262 248 192 206 247 199 157 219 204
4876 372 632 729 945 767 675 844 804 687 734 863
4877 373 3388 3476 3125 3723 3428 3265 3242 3536 3585 3367
4878 374 768 652 916 765 708 797 847 754 702 842
4879 375 3463 3412 3099 3724 3438 3238 3253 3574 3555 3349
4880 376 3762 3699 3198 3412 3734 3408 3442 3573 3543 3294
4881 377 66 156 118 75 104 132 86 62 101 83
4882 378 263 155 245 80 207 197 243 152 102 139
4883 379 4479 4492 4376 4483 4485 4431 4425 4481 4487 4426
4884 380 4480 4465 4368 4456 4471 4418 4420 4468 4460 4416
4885 381 3639 3706 3728 3082 3675 3715 3683 3301 3328 3340
4886 382 3876 3858 3854 3276 3862 3857 3868 3524 3519 3518
4887 383 228 278 281 546 241 277 242 365 392 394
4888 384 270 381 282 583 308 326 273 417 471 418
4889 385 3924 3904 3375 3476 3912 3597 3614 3680 3659 3413
4890 386 746 657 887 768 700 774 819 753 710 825
4891 387 3763 3706 3268 3793 3733 3468 3487 3773 3747 3492
4892 388 937 750 1015 818 854 893 974 873 773 906
4893 389 3891 3898 3240 3953 3892 3507 3504 3921 3927 3540
4894 390 600 487 751 381 537 623 674 480 424 561
4895 391 657 698 620 462 680 649 635 547 578 530
4896 392 3960 3924 3538 4126 3941 3719 3746 4045 4029 3926
4897 393 3793 3842 3851 3227 3820 3843 3824 3466 3477 3478
4898 394 67 116 34 45 85 63 46 51 73 33
4899 395 262 248 192 355 247 204 219 300 305 255
4900 396 600 792 593 901 689 688 584 758 849 757
4901 397 4496 4491 4381 4474 4494 4436 4439 4486 4482 4427
4902 398 4451 4466 4361 4464 4458 4415 4406 4455 4462 4414
4903 399 720 855 884 982 781 868 806 861 905 919
4904 400 4006 3975 4020 3352 3984 3994 4014 3656 3638 3677
4905 401 270 340 583 429 293 457 417 330 354 493
4906 402 3821 3842 3227 3423 3832 3477 3475 3592 3599 3311
4907 403 4363 4366 4305 4454 4365 4339 4337 4408 4413 4386
4908 404 4385 4389 4301 4477 4388 4350 4349 4434 4435 4390
4909 405 409 406 212 170 416 289 283 267 272 180
4910 406 15 18 58 19 13 31 27 8 9 26
4911 407 4465 4368 4456 4359 4418 4416 4460 4410 4364 4403
4912 408 4492 4376 4483 4379 4431 4426 4487 4433 4377 4430
4913 409 4103 4120 4027 4203 4110 4074 4064 4157 4164 4134
4914 410 4152 4141 4062 4220 4149 4107 4114 4184 4179 4155
4915 411 259 171 257 128 209 205 254 174 140 187
4916 412 467 568 389 279 523 470 428 351 414 328
4917 413 245 352 263 80 304 297 243 139 178 152
4918 414 118 47 66 75 79 55 86 83 44 62
4919 415 4058 3821 3682 3423 3965 3740 3928 3780 3592 3539
4920 416 4079 3922 3630 3563 4011 3775 3925 3903 3731 3593
4921 417 3630 4079 3563 3695 3925 3903 3593 3657 3943 3625
4922 418 3563 3630 3695 3079 3593 3657 3625 3267 3296 3320
4923 419 4079 3563 3695 4126 3903 3625 3943 4102 3934 3976
4924 420 4079 3563 4126 3922 3903 3934 4102 4011 3731 4028
4925 421 3922 3630 3563 3402 3775 3593 3731 3641 3511 3480
4926 422 3630 4079 3695 4027 3925 3943 3657 3893 4050 3911
4927 423 3630 4079 4027 4122 3925 4050 3893 3951 4095 4073
4928 424 3695 3630 4027 3423 3657 3893 3911 3547 3517 3742
4929 425 4079 3695 4027 4203 3943 3911 4050 4151 4041 4134
4930 426 655 360 514 617 508 437 577 625 488 560
4931 427 360 514 617 401 437 560 488 363 451 504
4932 428 514 617 401 822 560 504 451 672 713 608
4933 429 617 360 401 462 488 363 504 524 402 413
4934 430 617 360 462 655 488 402 524 625 508 545
4935 431 514 655 617 871 577 625 560 693 762 739
4936 432 360 514 401 257 437 451 363 294 369 313
4937 433 360 514 257 361 437 369 294 350 430 296
4938 434 514 401 257 429 451 313 369 452 404 323
4939 435 401 360 257 128 363 294 313 226 221 187
4940 436 340 231 460 429 280 339 385 354 306 423
4941 437 16 66 47 19 38 55 25 12 35 22
4942 438 347 263 352 170 310 297 342 246 202 232
4943 439 599 486 383 769 536 427 481 681 636 574
4944 440 4079 4150 4126 4301 4118 4135 4102 4213 4235 4226
4945 441 4058 4094 4036 4305 4075 4066 4046 4210 4223 4206
4946 442 569 360 462 212 461 402 506 356 269 316
4947 443 181 231 158 58 201 194 160 97 126 95
4948 444 655 750 871 729 701 808 762 684 732 790
4949 445 3891 3922 3402 3463 3908 3641 3610 3645 3666 3430
4950 446 4378 4381 4491 4474 4380 4436 4432 4424 4427 4482
4951 447 4373 4361 4466 4464 4367 4415 4419 4417 4414 4462
4952 448 3845 3823 3171 3423 3835 3435 3441 3600 3595 3273
4953 449 337 265 559 429 291 397 444 359 334 484
4954 450 270 228 429 583 238 321 330 417 384 493
4955 451 3858 3842 3423 3227 3853 3599 3603 3479 3477 3311
4956 452 494 468 212 462 491 315 333 464 454 316
4957 453 56 65 58 158 59 54 49 96 99 95
4958 454 4287 4291 4301 4126 4290 4297 4295 4218 4222 4226
4959 455 4261 4260 4305 4036 4259 4281 4280 4173 4174 4206
4960 456 3845 3794 3854 3171 3822 3829 3846 3441 3421 3443
4961 457 4359 4363 4305 4456 4360 4337 4335 4403 4411 4387
4962 458 4379 4385 4301 4483 4382 4349 4342 4430 4437 4391
4963 459 406 352 212 170 387 271 289 272 232 180
4964 460 18 47 58 19 29 43 31 9 22 26
4965 461 3750 3898 3873 3240 3831 3886 3809 3462 3507 3491
4966 462 937 1032 1134 1015 986 1084 1040 974 1016 1064
4967 463 4103 4261 4203 4036 4193 4232 4157 4069 4173 4137
4968 464 4152 4287 4220 4126 4227 4252 4184 4136 4218 4175
4969 465 468 568 279 462 512 414 357 454 505 358
4970 466 65 171 128 158 109 140 87 99 154 136
4971 467 4246 4117 4262 4058 4187 4197 4250 4168 4085 4176
4972 468 4268 4140 4263 4079 4212 4205 4266 4192 4115 4183
4973 469 261 127 253 231 191 190 251 234 166 224
4974 470 466 407 252 360 440 331 348 411 364 285
4975 471 3762 3705 3794 3198 3732 3751 3777 3442 3410 3448
4976 472 487 340 652 583 403 496 562 517 457 601
4977 473 3821 3763 3388 3227 3796 3557 3575 3475 3457 3292
4978 474 3611 3706 3639 3082 3660 3675 3622 3285 3328 3301
4979 475 600 829 792 901 719 805 689 758 856 849
4980 476 596 599 383 875 590 481 479 733 731 641
4981 477 3723 3612 3662 3125 3671 3635 3690 3367 3319 3344
4982 478 970 767 888 945 877 836 921 947 863 897
4983 479 885 765 975 916 832 878 918 882 842 926
4984 480 3724 3668 3609 3099 3693 3636 3669 3349 3321 3300
4985 481 383 265 281 559 307 268 322 459 397 398
4986 482 371 278 368 605 320 314 353 482 432 485
4987 483 3876 3896 3894 3304 3882 3899 3883 3541 3551 3550
4988 484 798 596 817 875 694 704 795 827 733 828
4989 485 3705 3730 3794 3128 3716 3759 3751 3364 3373 3385
4990 486 3304 3896 3288 3854 3551 3542 3293 3531 3874 3523
4991 487 605 368 654 282 485 510 621 426 318 458
4992 488 3705 3606 3637 3128 3655 3619 3673 3364 3324 3339
4993 489 4117 4123 4058 3682 4119 4087 4085 3966 3968 3928
4994 490 4140 4122 4079 3630 4127 4095 4115 3969 3951 3925
4995 491 362 261 231 460 312 234 288 399 341 339
4996 492 361 466 360 514 421 411 350 430 475 437
4997 493 835 599 798 875 722 692 813 838 731 827
4998 494 3730 3637 3701 3128 3684 3665 3718 3373 3339 3360
4999 495 4141 4271 4262 4220 4215 4267 4207 4179 4245 4240
5000 496 4120 4249 4263 4203 4194 4255 4198 4164 4228 4230
5001 497 122 259 252 128 182 250 184 113 174 165
5002 498 405 467 253 279 436 349 329 332 351 239
5003 499 729 514 822 871 622 672 763 790 693 833
5004 500 3682 3388 3074 3227 3522 3209 3313 3414 3292 3139
5005 501 652 460 812 583 552 639 726 601 500 686
5006 502 3630 3463 3079 3402 3537 3239 3296 3511 3430 3217
5007 503 3762 3823 3412 3171 3797 3591 3573 3404 3435 3270
5008 504 337 486 632 559 400 553 474 444 502 576
5009 505 871 695 617 720 782 645 739 779 712 651
5010 506 3958 3402 3563 3975 3670 3480 3761 3970 3679 3782
5011 507 368 278 282 605 314 275 318 485 432 426
5012 508 253 118 121 127 175 108 169 190 114 106
5013 509 252 245 130 407 236 177 179 331 325 230
5014 510 3639 3728 3696 3082 3683 3714 3664 3301 3340 3322
5015 511 3876 3894 3851 3304 3883 3872 3869 3541 3550 3529
5016 512 4368 4262 4332 4246 4317 4294 4351 4309 4250 4289
5017 513 4376 4263 4333 4268 4326 4296 4355 4329 4266 4298
5018 514 593 792 814 901 688 788 697 757 849 848
5019 515 600 593 381 901 584 476 480 758 757 663
5020 516 3728 3706 3793 3082 3715 3747 3758 3340 3328 3358
5021 517 3851 3858 3876 3276 3856 3862 3869 3515 3519 3524
5022 518 228 282 278 546 244 275 241 365 393 392
5023 519 1134 1032 1233 1218 1084 1131 1185 1167 1123 1225
5024 520 3750 3873 3687 3160 3809 3778 3722 3395 3444 3381
5025 521 3854 3876 3276 3304 3868 3524 3518 3531 3541 3284
5026 522 278 281 546 605 277 394 392 432 425 558
5027 523 3695 4079 4126 4220 3943 4102 3976 4059 4159 4175
5028 524 4079 4126 4220 4301 4102 4175 4159 4213 4226 4264
5029 525 360 401 462 279 363 413 402 295 317 358
5030 526 462 360 279 212 402 295 358 316 269 227
5031 527 4203 4103 4036 4027 4157 4069 4137 4134 4064 4032
5032 528 4036 4203 4027 3695 4137 4134 4032 3918 4041 3911
5033 529 4220 4152 4126 4062 4184 4136 4175 4155 4114 4091
5034 530 4126 4220 4062 3695 4175 4155 4091 3976 4059 3931
5035 531 568 279 462 389 414 358 505 470 328 410
5036 532 279 462 389 401 358 410 328 317 413 375
5037 533 171 128 158 257 140 136 154 205 187 196
5038 534 128 158 257 401 136 196 187 226 256 313
5039 535 829 885 1051 1076 857 971 949 960 991 1058
5040 536 3612 3611 3484 3069 3608 3552 3548 3280 3279 3247
5041 537 1032 970 1172 1218 1000 1071 1104 1123 1092 1189
5042 538 3668 3750 3581 3160 3707 3667 3626 3372 3395 3341
5043 539 192 75 170 212 124 110 167 172 117 180
5044 540 4456 4474 4454 4332 4463 4461 4453 4394 4396 4392
5045 541 158 257 401 429 196 313 256 274 323 404
5046 542 4027 4036 3695 3423 4032 3918 3911 3742 3757 3547
5047 543 4120 4027 4203 4263 4074 4134 4164 4198 4166 4230
5048 544 4141 4062 4220 4262 4107 4155 4179 4207 4177 4240
5049 545 257 259 128 252 254 174 187 229 250 165
5050 546 389 467 279 253 428 351 328 303 349 239
5051 547 4477 4483 4464 4333 4478 4473 4469 4398 4401 4395
5052 548 34 80 19 58 52 41 20 28 48 26
5053 549 750 818 871 1015 773 840 808 893 906 935
5054 550 3953 3891 3402 3240 3921 3610 3661 3540 3504 3310
5055 551 3904 3923 3967 3375 3909 3948 3933 3597 3605 3647
5056 552 966 746 839 887 870 785 889 907 819 862
5057 553 3904 3798 3923 3168 3864 3877 3909 3461 3418 3472
5058 554 850 746 966 1114 794 870 896 992 951 1033
5059 555 279 462 212 468 358 316 227 357 454 315
5060 556 4126 4220 4301 4287 4175 4264 4226 4218 4252 4295
5061 557 248 253 121 405 237 169 168 324 329 225
5062 558 116 252 130 122 173 179 112 111 184 107
5063 559 4262 4378 4332 4271 4327 4356 4294 4267 4331 4299
5064 560 4263 4373 4333 4249 4321 4353 4296 4255 4315 4292
5065 561 340 270 158 429 293 203 223 354 330 274
5066 562 3842 3821 4036 3423 3832 3952 3957 3599 3592 3757
5067 563 514 617 822 871 560 713 672 693 739 833
5068 564 3563 3630 3079 3402 3593 3296 3267 3480 3511 3217
5069 565 855 818 1008 871 830 910 927 853 840 923
5070 566 3953 4006 4019 3402 3978 4013 3981 3661 3704 3717
5071 567 228 265 429 559 233 334 321 366 397 484
5072 568 3845 3858 3423 3171 3855 3603 3600 3441 3440 3273
5073 569 888 835 1057 1136 865 954 980 1019 998 1098
5074 570 3749 3662 3577 3168 3702 3620 3663 3401 3377 3346
5075 571 975 1036 1177 1114 1004 1106 1075 1039 1068 1135
5076 572 3606 3609 3481 3050 3604 3545 3546 3261 3262 3218
5077 573 4126 3975 3563 3538 4054 3782 3934 3926 3760 3544
5078 574 3563 4126 3538 3695 3934 3926 3544 3625 3976 3607
5079 575 3538 3563 3695 3101 3544 3625 3607 3272 3281 3343
5080 576 720 462 617 620 587 524 651 653 530 607
5081 577 462 617 620 401 524 607 530 413 504 507
5082 578 617 620 401 759 607 507 504 678 682 581
5083 579 514 729 655 871 622 684 577 693 790 762
5084 580 460 652 340 583 552 496 385 500 601 457
5085 581 3388 3682 3821 3227 3522 3740 3575 3292 3414 3475
5086 582 3463 3630 3922 3402 3537 3775 3666 3430 3511 3641
5087 583 698 887 620 720 800 760 649 714 799 653
5088 584 3375 3960 3538 3975 3646 3746 3456 3649 3972 3760
5089 585 3763 3268 3388 3227 3487 3330 3557 3457 3252 3292
5090 586 1015 750 729 871 893 732 883 935 808 790
5091 587 3891 3240 3463 3402 3504 3335 3645 3610 3310 3430
5092 588 751 487 652 583 623 562 699 660 517 601
5093 589 3924 4062 3682 3538 3995 3929 3810 3719 3875 3602
5094 590 4062 3682 3538 3695 3929 3602 3875 3931 3686 3607
5095 591 3924 4062 3538 4126 3995 3875 3719 4029 4091 3926
5096 592 3538 4062 3695 4126 3875 3931 3607 3926 4091 3976
5097 593 4062 3682 3695 4058 3929 3686 3931 4055 3928 3930
5098 594 4062 3682 4058 4123 3929 3928 4055 4089 3968 4087
5099 595 3682 3695 4058 3423 3686 3930 3928 3539 3547 3780
5100 596 3682 3538 3695 3101 3602 3607 3686 3332 3272 3343
5101 597 3695 4062 4058 4220 3931 4055 3930 4059 4155 4153
5102 598 3823 4027 3630 3423 3947 3893 3711 3595 3742 3517
5103 599 257 337 514 429 284 408 369 323 359 452
5104 600 389 657 460 620 521 548 419 501 635 533
5105 601 460 389 620 401 419 501 533 420 375 507
5106 602 389 657 620 462 521 635 501 410 547 530
5107 603 389 620 401 462 501 507 375 410 530 413
5108 604 460 389 401 231 419 375 420 339 301 302
5109 605 460 389 231 362 419 301 339 399 367 288
5110 606 401 460 231 429 420 339 302 404 423 306
5111 607 620 460 401 759 533 420 507 682 597 581
5112 608 389 401 231 279 375 302 301 328 317 235
5113 609 829 1051 1002 1076 949 1024 909 960 1058 1027
5114 610 792 829 1002 901 805 909 895 849 856 941
5115 611 4246 4094 4058 4305 4181 4075 4168 4273 4223 4210
5116 612 4268 4150 4079 4301 4214 4118 4192 4283 4235 4213
5117 613 569 407 360 212 492 364 461 356 286 269
5118 614 181 127 231 58 145 166 201 97 77 126
5119 615 887 657 620 768 774 635 760 825 710 683
5120 616 3924 3375 3538 3476 3614 3456 3719 3680 3413 3499
5121 617 3823 3845 4036 3423 3835 3956 3950 3595 3600 3757
5122 618 265 337 158 429 291 222 200 334 359 274
5123 619 3821 4058 4036 3423 3965 4046 3952 3592 3780 3757
5124 620 4058 4036 3423 3695 4046 3757 3780 3930 3918 3547
5125 621 4058 4036 3695 4203 4046 3918 3930 4142 4137 4041
5126 622 4058 4036 4203 4305 4046 4137 4142 4210 4206 4258
5127 623 4036 4203 4305 4261 4137 4258 4206 4173 4232 4280
5128 624 231 340 158 429 280 223 194 306 354 274
5129 625 158 231 429 401 194 306 274 256 302 404
5130 626 158 231 401 128 194 302 256 136 164 226
5131 627 158 231 128 58 194 164 136 95 126 84
5132 628 128 158 58 65 136 95 84 87 99 54
5133 629 514 632 822 559 564 724 672 509 576 677
5134 630 3476 3682 3074 3538 3567 3313 3246 3499 3602 3263
5135 631 460 768 812 620 616 771 639 533 683 705
5136 632 3412 3630 3079 3171 3516 3296 3225 3270 3366 3122
5137 633 409 386 170 192 390 264 267 276 266 167
5138 634 15 1 19 34 2 6 8 14 7 20
5139 635 3484 3611 3506 3069 3552 3561 3493 3247 3279 3250
5140 636 1032 1172 1233 1218 1104 1206 1131 1123 1189 1225
5141 637 3581 3750 3687 3160 3667 3722 3629 3341 3395 3381
5142 638 4203 4305 4261 4361 4258 4280 4232 4286 4336 4311
5143 639 4220 4301 4287 4381 4264 4295 4252 4306 4346 4340
5144 640 212 279 468 355 227 357 315 258 292 415
5145 641 58 128 65 45 84 87 54 37 69 53
5146 642 4474 4480 4378 4332 4476 4428 4424 4396 4399 4356
5147 643 170 75 80 212 110 68 120 180 117 125
5148 644 4474 4477 4454 4332 4475 4467 4461 4396 4397 4392
5149 645 4464 4479 4373 4333 4470 4423 4417 4395 4400 4353
5150 646 486 769 632 559 636 690 553 502 656 576
5151 647 4019 4006 4067 3352 4013 4033 4037 3672 3656 3726
5152 648 855 1008 1043 982 927 1021 956 905 978 1001
5153 649 4464 4454 4477 4333 4459 4467 4469 4395 4393 4398
5154 650 19 80 75 58 41 68 42 26 48 50
5155 651 3889 3749 3685 3233 3815 3721 3787 3497 3458 3431
5156 652 1036 1148 1242 1253 1090 1194 1138 1147 1199 1244
5157 653 3198 3762 3412 3171 3442 3573 3294 3181 3404 3270
5158 654 720 855 982 871 781 905 861 779 853 912
5159 655 4006 3975 3352 3402 3984 3638 3656 3704 3679 3374
5160 656 34 155 80 130 78 102 52 64 129 93
5161 657 4500 4483 4477 4385 4493 4478 4489 4442 4437 4434
5162 658 4444 4456 4454 4363 4448 4453 4447 4405 4411 4408
5163 659 192 156 75 121 157 101 124 137 123 89
5164 660 3749 3798 3168 3923 3772 3418 3401 3865 3877 3472
5165 661 850 1036 1114 966 948 1068 992 896 995 1033
5166 662 3798 3904 3476 3168 3864 3659 3613 3418 3461 3291
5167 663 746 850 768 1114 794 807 753 951 992 959
5168 664 3798 3662 3168 3125 3727 3377 3418 3386 3344 3138
5169 665 975 850 1114 916 903 992 1039 926 872 1014
5170 666 4268 4379 4301 4333 4330 4342 4283 4298 4357 4318
5171 667 4246 4359 4305 4332 4304 4335 4273 4289 4347 4323
5172 668 352 407 212 130 372 286 271 217 230 161
5173 669 47 127 58 121 82 77 43 71 106 81
5174 670 45 34 15 58 33 14 23 37 28 27
5175 671 355 192 409 212 255 276 391 258 172 283
5176 672 4368 4456 4359 4332 4416 4403 4364 4351 4394 4347
5177 673 4376 4483 4379 4333 4426 4430 4377 4355 4401 4357
5178 674 352 245 130 80 304 177 217 178 139 93
5179 675 47 118 121 75 79 108 71 44 83 89
5180 676 116 34 45 130 63 33 73 112 64 72
5181 677 248 192 355 121 204 255 305 168 137 208
5182 678 4464 4483 4479 4333 4473 4481 4470 4395 4401 4400
5183 679 884 720 982 887 806 861 919 879 799 928
5184 680 3975 4020 3352 3375 3994 3677 3638 3649 3689 3359
5185 681 4456 4480 4474 4332 4468 4476 4463 4394 4399 4396
5186 682 1057 835 1025 1136 954 925 1038 1098 998 1073
5187 683 3749 3577 3685 3233 3663 3627 3721 3458 3384 3431
5188 684 1177 1036 1242 1253 1106 1138 1210 1212 1147 1244
5189 685 3606 3481 3500 3050 3546 3488 3558 3261 3218 3224
5190 686 3685 3577 3482 3233 3627 3532 3587 3431 3384 3348
5191 687 1177 1242 1371 1253 1210 1308 1276 1212 1244 1311
5192 688 4262 4123 4062 4058 4199 4089 4177 4176 4087 4055
5193 689 4263 4122 4027 4079 4200 4073 4166 4183 4095 4050
5194 690 362 253 389 231 299 303 367 288 224 301
5195 691 361 252 257 360 298 229 296 350 285 294
5196 692 3706 3611 3268 3082 3660 3426 3468 3328 3285 3166
5197 693 829 600 751 901 719 674 776 856 758 826
5198 694 4094 4256 4036 4305 4186 4167 4066 4223 4279 4206
5199 695 4150 4285 4126 4301 4224 4217 4135 4235 4293 4226
5200 696 469 569 462 212 513 506 456 327 356 316
5201 697 70 181 158 58 115 160 100 60 97 95
5202 698 729 822 945 1015 763 876 844 883 902 976
5203 699 3074 3388 3125 3268 3209 3242 3094 3161 3330 3184
5204 700 652 812 916 751 726 867 797 699 756 841
5205 701 3079 3463 3099 3240 3239 3253 3084 3146 3335 3157
5206 702 231 389 279 253 301 328 235 224 303 239
5207 703 360 257 128 252 294 187 221 285 229 165
5208 704 4062 4058 4220 4262 4055 4153 4155 4177 4176 4240
5209 705 4027 4079 4203 4263 4050 4151 4134 4166 4183 4230
5210 706 3268 3706 3082 3793 3468 3328 3166 3492 3747 3358
5211 707 3484 3506 3371 3069 3493 3439 3419 3247 3250 3186
5212 708 600 751 901 381 674 826 758 480 561 663
5213 709 3611 3639 3506 3082 3622 3572 3561 3285 3301 3255
5214 710 4361 4249 4203 4333 4308 4228 4286 4348 4292 4269
5215 711 4381 4271 4220 4332 4334 4245 4306 4358 4299 4276
5216 712 405 355 279 121 373 292 332 225 208 189
5217 713 122 45 128 130 74 69 113 107 72 119
5218 714 3923 3749 3889 3233 3865 3815 3907 3513 3458 3497
5219 715 1036 966 1148 1253 995 1053 1090 1147 1112 1199
5220 716 3577 3662 3505 3168 3620 3584 3535 3346 3377 3305
5221 717 888 1057 1117 1136 980 1087 1011 1019 1098 1119
5222 718 975 1177 1124 1114 1075 1151 1045 1039 1135 1105
5223 719 3481 3609 3496 3050 3545 3556 3483 3218 3262 3222
5224 720 401 460 429 759 420 423 404 581 597 591
5225 721 3682 3695 3423 3101 3686 3547 3539 3332 3343 3241
5226 722 829 885 1076 751 857 991 960 776 821 933
5227 723 3612 3611 3069 3268 3608 3279 3280 3422 3426 3155
5228 724 822 632 945 769 724 804 876 766 690 860
5229 725 3476 3074 3125 3375 3246 3094 3265 3413 3196 3228
5230 726 812 768 916 887 771 847 867 837 825 880
5231 727 3412 3079 3099 3198 3225 3084 3238 3294 3135 3144
5232 728 835 798 1025 875 813 913 925 838 827 931
5233 729 3637 3606 3500 3128 3619 3558 3569 3339 3324 3271
5234 730 3268 3703 3388 3723 3469 3530 3330 3471 3710 3536
5235 731 846 1015 729 767 929 883 778 809 890 734
5236 732 3240 3799 3463 3724 3474 3601 3335 3446 3755 3574
5237 733 666 751 652 765 707 699 644 718 745 702
5238 734 263 170 80 352 202 120 152 297 232 178
5239 735 4474 4496 4477 4381 4486 4488 4475 4427 4439 4429
5240 736 4027 3823 4036 3423 3947 3950 4032 3742 3595 3757
5241 737 337 257 158 429 284 196 222 359 323 274
5242 738 3476 3682 3538 3924 3567 3602 3499 3680 3810 3719
5243 739 460 768 620 657 616 683 533 548 710 635
5244 740 3563 3695 3101 3079 3625 3343 3281 3267 3320 3088
5245 741 401 617 759 822 504 678 581 608 713 783
5246 742 4464 4451 4454 4361 4455 4449 4459 4414 4406 4404
5247 743 66 19 75 47 35 42 62 55 22 44
5248 744 599 835 769 875 722 786 681 731 838 820
5249 745 769 599 875 383 681 731 820 574 481 641
5250 746 75 192 121 212 124 137 89 117 172 147
5251 747 80 34 130 58 52 64 93 48 28 76
5252 748 4020 3967 4021 3375 3990 3989 4022 3689 3647 3692
5253 749 839 884 1017 887 852 950 922 862 879 944
5254 750 3606 3705 3198 3128 3655 3410 3380 3324 3364 3159
5255 751 3705 3198 3128 3794 3410 3159 3364 3751 3448 3385
5256 752 4021 3967 3923 3375 3989 3948 3977 3692 3647 3605
5257 753 839 1017 966 887 922 985 889 862 944 907
5258 754 368 526 654 282 434 579 510 318 378 458
5259 755 3896 3839 3288 3854 3879 3521 3542 3874 3848 3523
5260 756 1002 1051 1209 1076 1024 1128 1108 1027 1058 1125
5261 757 3538 3563 3101 3352 3544 3281 3272 3432 3445 3195
5262 758 617 620 759 982 607 682 678 815 816 859
5263 759 3723 3798 3476 3125 3754 3613 3585 3367 3386 3265
5264 760 670 767 632 769 721 687 640 715 749 690
5265 761 850 765 768 916 810 754 807 872 842 847
5266 762 3724 3699 3412 3198 3709 3543 3555 3415 3408 3294
5267 763 1134 1233 1338 1218 1185 1283 1240 1167 1225 1267
5268 764 3687 3873 3900 3160 3778 3884 3785 3381 3444 3450
5269 765 888 835 1136 769 865 998 1019 823 786 969
5270 766 3606 3609 3050 3198 3604 3262 3261 3380 3378 3115
5271 767 4378 4474 4332 4381 4424 4396 4356 4380 4427 4358
5272 768 4373 4464 4333 4361 4417 4395 4353 4367 4414 4348
5273 769 4366 4361 4305 4454 4362 4336 4339 4413 4404 4386
5274 770 4389 4381 4301 4477 4384 4346 4350 4435 4429 4390
5275 771 1134 1032 1218 1015 1084 1123 1167 1064 1016 1120
5276 772 3750 3873 3160 3240 3809 3444 3395 3462 3491 3191
5277 773 118 156 121 75 132 123 108 83 101 89
5278 774 245 155 130 80 197 129 177 139 102 93
5279 775 4479 4376 4333 4483 4425 4355 4400 4481 4426 4401
5280 776 4480 4368 4332 4456 4420 4351 4399 4468 4416 4394
5281 777 3858 3854 3276 3171 3857 3518 3519 3440 3443 3220
5282 778 281 228 546 559 242 365 394 398 366 538
5283 779 3876 3276 3304 3851 3524 3284 3541 3869 3515 3529
5284 780 121 253 127 231 169 190 106 159 224 166
5285 781 130 252 407 360 179 331 230 220 285 364
5286 782 116 155 34 130 131 78 63 112 129 64
5287 783 248 156 192 121 199 157 204 168 123 137
5288 784 817 596 532 851 704 554 665 824 725 696
5289 785 4262 4332 4246 4058 4294 4289 4250 4176 4225 4168
5290 786 4263 4333 4268 4079 4296 4298 4266 4183 4231 4192
5291 787 3682 3074 3538 3101 3313 3263 3602 3332 3085 3272
5292 788 812 460 620 759 639 533 705 770 597 682
5293 789 3268 3763 3793 3227 3487 3773 3492 3252 3457 3466
5294 790 3730 3701 3839 3104 3718 3771 3784 3356 3347 3383
5295 791 487 751 381 583 623 561 424 517 660 471
5296 792 4359 4305 4332 4456 4335 4323 4347 4403 4387 4394
5297 793 4379 4301 4333 4483 4342 4318 4357 4430 4391 4401
5298 794 212 352 130 80 271 217 161 125 178 93
5299 795 58 47 121 75 43 71 81 50 44 89
5300 796 855 1043 884 982 956 964 868 905 1001 919
5301 797 4067 4006 4020 3352 4033 4014 4039 3726 3656 3677
5302 798 3889 3685 3902 3233 3787 3786 3895 3497 3431 3501
5303 799 1242 1148 1344 1253 1194 1249 1290 1244 1199 1294
5304 800 4271 4220 4332 4262 4245 4276 4299 4267 4240 4294
5305 801 4249 4203 4333 4263 4228 4269 4292 4255 4230 4296
5306 802 128 122 130 252 113 107 119 165 184 179
5307 803 279 405 121 253 332 225 189 239 329 169
5308 804 546 278 605 282 392 432 558 393 275 426
5309 805 3388 3125 3268 3723 3242 3184 3330 3536 3367 3471
5310 806 3463 3099 3240 3724 3253 3157 3335 3574 3349 3446
5311 807 945 729 1015 767 844 883 976 863 734 890
5312 808 916 652 751 765 797 699 841 842 702 745
5313 809 486 383 769 559 427 574 636 502 459 656
5314 810 3696 3728 3838 3187 3714 3783 3768 3397 3409 3459
5315 811 593 814 526 894 697 661 549 743 845 727
5316 812 381 282 583 654 326 418 471 497 458 582
5317 813 3662 3612 3505 3069 3635 3562 3584 3290 3280 3249
5318 814 970 888 1117 1136 921 1011 1041 1037 1019 1119
5319 815 3609 3668 3496 3050 3636 3580 3556 3262 3269 3222
5320 816 885 975 1124 1076 918 1045 1013 991 1018 1095
5321 817 3851 3793 3227 3167 3824 3466 3478 3437 3406 3185
5322 818 617 720 620 982 651 653 607 815 861 816
5323 819 3975 3563 3538 3352 3782 3544 3760 3638 3445 3432
5324 820 3101 3563 3079 3402 3281 3267 3088 3229 3480 3217
5325 821 617 759 822 871 678 783 713 739 791 833
5326 822 4456 4454 4363 4305 4453 4408 4411 4387 4386 4337
5327 823 4483 4477 4385 4301 4478 4434 4437 4391 4390 4349
5328 824 4456 4454 4305 4332 4453 4386 4387 4394 4392 4323
5329 825 4305 4246 4332 4058 4273 4289 4323 4210 4168 4225
5330 826 4301 4268 4333 4079 4283 4298 4318 4213 4192 4231
5331 827 127 58 121 231 77 81 106 166 126 159
5332 828 407 212 130 360 286 161 230 364 269 220
5333 829 4483 4477 4301 4333 4478 4390 4391 4401 4398 4318
5334 830 1051 885 1124 1076 971 1013 1089 1058 991 1095
5335 831 3794 3762 3198 3171 3777 3442 3448 3421 3404 3181
5336 832 4474 4477 4332 4381 4475 4397 4396 4427 4429 4358
5337 833 3695 3423 3101 3079 3547 3241 3343 3320 3223 3088
5338 834 429 401 759 822 404 581 591 618 608 783
5339 835 4464 4454 4333 4361 4459 4393 4395 4414 4404 4348
5340 836 1043 1008 1204 1216 1021 1110 1122 1126 1113 1202
5341 837 4019 4067 4090 3298 4037 4081 4049 3644 3691 3720
5342 838 1015 937 818 1008 974 873 906 994 963 910
5343 839 3898 3240 3953 4019 3507 3540 3927 3959 3588 3981
5344 840 337 632 514 559 474 564 408 444 576 509
5345 841 3412 3823 3630 3171 3591 3711 3516 3270 3435 3366
5346 842 818 871 1015 1008 840 935 906 910 923 994
5347 843 3402 3953 3240 4019 3661 3540 3310 3717 3981 3588
5348 844 130 128 252 360 119 165 179 220 221 285
5349 845 121 279 253 231 189 239 169 159 235 224
5350 846 3889 4008 3923 3233 3949 3963 3907 3497 3570 3513
5351 847 1148 966 1178 1253 1053 1069 1157 1199 1112 1205
5352 848 4220 4332 4262 4058 4276 4294 4240 4153 4225 4176
5353 849 4203 4333 4263 4079 4269 4296 4230 4151 4231 4183
5354 850 632 945 769 767 804 860 690 687 863 749
5355 851 605 654 930 546 621 801 780 558 573 742
5356 852 3304 3288 2913 3276 3293 3064 3068 3284 3277 3059
5357 853 3304 3288 3276 3854 3293 3277 3284 3531 3523 3518
5358 854 3099 3412 3198 3724 3238 3294 3144 3349 3555 3415
5359 855 371 605 738 281 482 667 555 319 425 503
5360 856 3894 3304 3167 3851 3550 3232 3460 3872 3529 3437
5361 857 3612 3484 3505 3069 3548 3490 3562 3280 3247 3249
5362 858 1172 970 1117 1192 1071 1041 1139 1170 1079 1145
5363 859 3668 3581 3496 3025 3626 3533 3580 3259 3234 3197
5364 860 3794 3854 3171 3288 3829 3443 3421 3503 3523 3226
5365 861 532 738 851 383 634 787 696 442 541 615
5366 862 3838 3167 3187 3793 3436 3176 3459 3805 3406 3434
5367 863 3482 3577 3363 2944 3532 3470 3411 3148 3173 3109
5368 864 1177 1371 1366 1427 1276 1367 1268 1304 1395 1391
5369 865 3730 3839 3794 3104 3784 3808 3759 3356 3383 3369
5370 866 817 596 851 875 704 725 824 828 733 858
5371 867 340 583 429 460 457 493 354 385 500 423
5372 868 3227 3821 3423 3682 3475 3592 3311 3414 3740 3539
5373 869 596 532 851 383 554 696 725 479 442 615
5374 870 1233 1172 1405 1218 1206 1291 1318 1225 1189 1302
5375 871 3581 3687 3464 3160 3629 3571 3520 3341 3381 3275
5376 872 3838 3728 3793 3187 3783 3758 3805 3459 3409 3434
5377 873 593 526 381 894 549 435 476 743 727 643
5378 874 281 383 559 738 322 459 398 503 541 619
5379 875 3696 3728 3187 3082 3714 3409 3397 3322 3340 3136
5380 876 231 401 128 279 302 226 164 235 317 176
5381 877 3695 4058 4203 4220 3930 4142 4041 4059 4153 4209
5382 878 729 1015 871 822 883 935 790 763 902 833
5383 879 3240 3463 3402 3079 3335 3430 3310 3146 3239 3217
5384 880 1204 1008 1160 1216 1110 1086 1174 1202 1113 1176
5385 881 4019 4090 3992 3298 4049 4042 4012 3644 3720 3617
5386 882 514 401 429 822 451 404 452 672 608 618
5387 883 3695 3630 3423 3079 3657 3517 3547 3320 3296 3223
5388 884 3904 3375 3476 3202 3597 3413 3659 3486 3274 3325
5389 885 887 746 768 1059 819 753 825 973 914 924
5390 886 360 279 212 128 295 227 269 221 176 149
5391 887 231 128 58 279 164 84 126 235 176 134
5392 888 4203 4058 4305 4220 4142 4210 4258 4209 4153 4265
5393 889 4220 4079 4301 4203 4159 4213 4264 4209 4151 4253
5394 890 19 15 34 58 8 14 20 26 27 28
5395 891 3268 3388 3227 3074 3330 3292 3252 3161 3209 3139
5396 892 170 409 192 212 267 276 167 180 283 172
5397 893 652 751 583 812 699 660 601 726 756 686
5398 894 80 170 212 352 120 180 125 178 232 271
5399 895 75 19 58 47 42 26 50 44 22 43
5400 896 1057 1025 1264 1136 1038 1150 1159 1098 1073 1200
5401 897 3500 3481 3317 3050 3488 3393 3403 3224 3218 3154
5402 898 4093 4097 4162 3382 4098 4133 4130 3788 3795 3901
5403 899 1219 1109 1301 1324 1155 1207 1252 1262 1220 1310
5404 900 3851 3858 3276 3227 3856 3519 3515 3478 3479 3254
5405 901 228 282 546 583 244 393 365 384 418 550
5406 902 383 596 875 851 479 733 641 615 725 858
5407 903 3682 3074 3101 3423 3313 3085 3332 3539 3219 3241
5408 904 812 460 759 429 639 597 770 606 423 591
5409 905 970 1032 1015 1218 1000 1016 987 1092 1123 1120
5410 906 3750 3668 3240 3160 3707 3416 3462 3395 3372 3191
5411 907 3730 3794 3128 3104 3759 3385 3373 3356 3369 3113
5412 908 855 982 871 1008 905 912 853 927 978 923
5413 909 3352 4006 3402 4019 3656 3704 3374 3672 4013 3717
5414 910 281 371 532 738 319 439 379 503 555 634
5415 911 769 632 559 822 690 576 656 766 724 677
5416 912 3793 3728 3082 3187 3758 3340 3358 3434 3409 3136
5417 913 3685 3482 3590 3233 3587 3534 3642 3431 3348 3387
5418 914 1371 1242 1474 1253 1308 1359 1418 1311 1244 1363
5419 915 593 381 901 894 476 663 757 743 643 891
5420 916 130 212 80 58 161 125 93 76 103 48
5421 917 121 58 75 212 81 50 89 147 103 117
5422 918 4079 3695 4203 4220 3943 4041 4151 4159 4059 4209
5423 919 401 360 128 279 363 221 226 317 295 176
5424 920 4020 4093 4067 3352 4053 4083 4039 3677 3752 3726
5425 921 1109 884 1043 982 1003 964 1065 1028 919 1001
5426 922 4020 4021 4093 3352 4022 4061 4053 3677 3674 3752
5427 923 1017 884 1109 982 950 1003 1050 983 919 1028
5428 924 3074 3538 3101 3375 3263 3272 3085 3196 3456 3210
5429 925 620 812 759 887 705 770 682 760 837 811
5430 926 1017 1219 1178 1324 1121 1195 1096 1168 1262 1238
5431 927 4097 4021 4008 3382 4060 4018 4052 3795 3694 3676
5432 928 617 871 720 982 739 779 651 815 912 861
5433 929 3402 3563 3975 3352 3480 3782 3679 3374 3445 3638
5434 930 3412 3198 3171 3079 3294 3181 3270 3225 3135 3122
5435 931 3854 3276 3171 3288 3518 3220 3443 3523 3277 3226
5436 932 3074 3476 3538 3375 3246 3499 3263 3196 3413 3456
5437 933 768 812 620 887 771 705 683 825 837 760
5438 934 3873 3898 3992 3240 3886 3939 3938 3491 3507 3565
5439 935 1134 1160 937 1015 1146 1048 1040 1064 1072 974
5440 936 4093 4021 4097 3382 4061 4060 4098 3788 3694 3795
5441 937 1017 1109 1219 1324 1050 1155 1121 1168 1220 1262
5442 938 228 429 583 546 321 493 384 365 465 550
5443 939 228 429 546 559 321 465 365 366 484 538
5444 940 3851 3894 3838 3167 3872 3878 3844 3437 3460 3436
5445 941 3423 3858 3227 3276 3603 3479 3311 3351 3519 3254
5446 942 3423 3858 3276 3171 3603 3519 3351 3273 3440 3220
5447 943 546 281 559 738 394 398 538 624 503 619
5448 944 3701 3730 3128 3104 3718 3373 3360 3347 3356 3113
5449 945 212 279 355 121 227 292 258 147 189 208
5450 946 212 279 121 58 227 189 147 103 134 81
5451 947 279 121 58 231 189 81 134 235 159 126
5452 948 58 128 45 130 84 69 37 76 119 72
5453 949 58 128 130 212 84 119 76 103 149 161
5454 950 128 130 212 360 119 161 149 221 220 269
5455 951 4203 4305 4361 4333 4258 4336 4286 4269 4322 4348
5456 952 4203 4305 4333 4301 4258 4322 4269 4253 4300 4318
5457 953 4333 4203 4301 4079 4269 4253 4318 4231 4151 4213
5458 954 4220 4301 4381 4332 4264 4346 4306 4276 4316 4358
5459 955 4220 4301 4332 4305 4264 4316 4276 4265 4300 4323
5460 956 4332 4220 4305 4058 4276 4265 4323 4225 4153 4210
5461 957 605 654 546 282 621 573 558 426 458 393
5462 958 3904 3923 3375 3202 3909 3605 3597 3486 3502 3274
5463 959 966 746 887 1059 870 819 907 1007 914 973
5464 960 3793 3268 3227 3082 3492 3252 3466 3358 3166 3145
5465 961 751 381 583 901 561 471 660 826 663 736
5466 962 1134 1338 1160 1218 1240 1250 1146 1167 1267 1175
5467 963 3900 3873 3992 3160 3884 3938 3954 3450 3444 3512
5468 964 3577 3505 3363 2944 3535 3433 3470 3173 3151 3109
5469 965 1124 1177 1366 1427 1151 1268 1246 1277 1304 1391
5470 966 3889 3902 4008 3233 3895 3961 3949 3497 3501 3570
5471 967 1344 1148 1178 1253 1249 1157 1258 1294 1199 1205
5472 968 894 814 1046 901 845 934 977 891 848 981
5473 969 3904 3923 3202 3168 3909 3502 3486 3461 3472 3180
5474 970 3923 3202 3168 3233 3502 3180 3472 3513 3211 3193
5475 971 3202 3168 3233 2873 3180 3193 3211 3023 3009 3035
5476 972 3202 3168 2873 3125 3180 3009 3023 3156 3138 2984
5477 973 3233 3202 2873 2951 3211 3023 3035 3065 3060 2911
5478 974 3202 3168 3125 3476 3180 3138 3156 3325 3291 3265
5479 975 3168 3233 2873 2944 3193 3035 3009 3048 3061 2900
5480 976 3202 3168 3476 3904 3180 3291 3325 3486 3461 3659
5481 977 966 746 1059 1114 870 914 1007 1033 951 1083
5482 978 1059 966 1114 1253 1007 1033 1083 1154 1112 1182
5483 979 1114 1059 1253 1230 1083 1154 1182 1161 1141 1232
5484 980 1114 1059 1230 916 1083 1141 1161 1014 989 1082
5485 981 1059 1253 1230 1274 1154 1232 1141 1164 1254 1245
5486 982 1114 1059 916 768 1083 989 1014 959 924 847
5487 983 1253 1114 1230 1427 1182 1161 1232 1331 1270 1322
5488 984 1114 1059 768 746 1083 924 959 951 914 753
5489 985 3104 3701 3083 3128 3347 3329 3092 3113 3360 3103
5490 986 383 769 559 875 574 656 459 641 820 711
5491 987 817 798 875 1091 795 827 828 962 953 990
5492 988 3637 3701 3128 3083 3665 3360 3339 3297 3329 3103
5493 989 4148 4067 4093 3298 4111 4083 4125 3804 3691 3713
5494 990 1043 1247 1109 1216 1149 1165 1065 1126 1224 1144
5495 991 887 620 720 982 760 653 799 928 816 861
5496 992 3538 3375 3975 3352 3456 3649 3760 3432 3359 3638
5497 993 3577 3749 3168 3233 3663 3401 3346 3384 3458 3193
5498 994 3749 3168 3233 3923 3401 3193 3458 3865 3472 3513
5499 995 1036 1177 1114 1253 1106 1135 1068 1147 1212 1182
5500 996 1114 1036 1253 966 1068 1147 1182 1033 995 1112
5501 997 4454 4305 4332 4301 4386 4323 4392 4383 4300 4316
5502 998 812 460 429 583 639 423 606 686 500 493
5503 999 3682 3074 3423 3227 3313 3219 3539 3414 3139 3311
5504 1000 3083 3104 3128 2751 3092 3113 3103 2879 2887 2895
5505 1001 4477 4301 4333 4454 4390 4318 4398 4467 4383 4393
5506 1002 814 593 901 894 697 757 848 845 743 891
5507 1003 654 526 894 381 579 727 775 497 435 643
5508 1004 3288 3839 3104 3794 3521 3383 3182 3503 3808 3369
5509 1005 583 751 901 972 660 826 736 803 869 920
5510 1006 3268 3227 3082 2822 3252 3145 3166 3010 2991 2937
5511 1007 1002 829 1076 901 909 960 1027 941 856 988
5512 1008 3198 3794 3171 3128 3448 3421 3181 3159 3385 3141
5513 1009 3233 3202 2951 4008 3211 3060 3065 3570 3549 3323
5514 1010 1059 1253 1274 1178 1154 1254 1164 1107 1205 1214
5515 1011 1043 1204 1247 1216 1122 1221 1149 1126 1202 1224
5516 1012 4090 4067 4148 3298 4081 4111 4124 3720 3691 3804
5517 1013 3611 3069 3268 3082 3279 3155 3426 3285 3070 3166
5518 1014 1076 829 751 901 960 776 933 988 856 826
5519 1015 282 381 526 654 326 435 378 458 497 579
5520 1016 281 546 605 738 394 558 425 503 624 667
5521 1017 546 605 738 930 558 667 624 742 780 834
5522 1018 34 45 130 58 33 72 64 28 37 76
5523 1019 192 355 121 212 255 208 137 172 258 147
5524 1020 769 559 875 1031 656 711 820 899 831 946
5525 1021 1117 1057 1317 1136 1087 1193 1217 1119 1098 1226
5526 1022 3481 3496 3299 3050 3483 3392 3391 3218 3222 3147
5527 1023 1046 894 901 1201 977 891 981 1118 1054 1049
5528 1024 3171 3198 3128 2776 3181 3159 3141 2936 2946 2919
5529 1025 3793 3851 3838 3167 3824 3844 3805 3406 3437 3436
5530 1026 851 738 1052 875 787 911 957 858 789 961
5531 1027 3187 3167 2842 3082 3176 2978 2988 3136 3124 2947
5532 1028 1405 1172 1350 1192 1291 1259 1377 1289 1170 1261
5533 1029 3581 3464 3365 3025 3520 3396 3473 3234 3178 3153
5534 1030 3696 3639 3082 3033 3664 3301 3322 3266 3257 3052
5535 1031 3854 3794 3839 3288 3829 3808 3848 3523 3503 3521
5536 1032 1233 1405 1475 1218 1318 1435 1354 1225 1302 1341
5537 1033 3464 3687 3589 3160 3571 3640 3514 3275 3381 3334
5538 1034 3069 3268 3082 2822 3155 3166 3070 2928 3010 2937
5539 1035 792 814 901 1046 788 848 849 917 934 981
5540 1036 3198 3606 3128 3050 3380 3324 3159 3115 3261 3075
5541 1037 835 769 875 1136 786 820 838 998 969 1005
5542 1038 3923 4008 4021 3202 3963 4018 3977 3502 3549 3568
5543 1039 1178 966 1017 1059 1069 985 1096 1107 1007 1023
5544 1040 4093 4162 4148 3382 4130 4156 4125 3788 3901 3871
5545 1041 1301 1109 1247 1324 1207 1165 1263 1310 1220 1273
5546 1042 3168 3125 3476 3798 3138 3265 3291 3418 3386 3613
5547 1043 916 1114 768 850 1014 959 847 872 992 807
5548 1044 751 1076 901 972 933 988 826 869 1009 920
5549 1045 3637 3701 3083 3528 3665 3329 3297 3583 3618 3264
5550 1046 617 871 982 759 739 912 815 678 791 859
5551 1047 3402 3563 3352 3101 3480 3445 3374 3229 3281 3195
5552 1048 3128 3198 3050 2776 3159 3115 3075 2919 2946 2881
5553 1049 3074 3101 3423 2874 3085 3241 3219 2960 2975 3078
5554 1050 759 812 429 936 770 606 591 843 866 703
5555 1051 769 875 1136 1031 820 1005 969 899 946 1063
5556 1052 3611 3506 3069 3082 3561 3250 3279 3285 3255 3070
5557 1053 792 814 1046 1077 788 934 917 943 955 1055
5558 1054 383 281 532 738 322 379 442 541 503 634
5559 1055 3612 3723 3268 3125 3671 3471 3422 3319 3367 3184
5560 1056 767 970 1015 945 877 987 890 863 947 976
5561 1057 3668 3724 3240 3099 3693 3446 3416 3321 3349 3157
5562 1058 765 885 751 916 832 821 745 842 882 841
5563 1059 1204 1160 1374 1216 1174 1269 1281 1202 1176 1279
5564 1060 3992 4090 4065 3298 4042 4082 4025 3617 3720 3681
5565 1061 3276 3423 3171 2874 3351 3273 3220 3045 3078 3007
5566 1062 1057 1264 1317 1136 1159 1288 1193 1098 1200 1226
5567 1063 3317 3481 3299 3050 3393 3391 3307 3154 3218 3147
5568 1064 1051 1124 1303 1076 1089 1211 1179 1058 1095 1186
5569 1065 798 817 1085 1091 795 958 952 953 962 1074
5570 1066 982 884 887 1017 919 879 928 983 950 944
5571 1067 4020 3352 3375 4021 3677 3359 3689 4022 3674 3692
5572 1068 1043 1008 1216 982 1021 1113 1126 1001 978 1099
5573 1069 4019 4067 3298 3352 4037 3691 3644 3672 3726 3315
5574 1070 1002 792 901 1046 895 849 941 1010 917 981
5575 1071 3202 2873 2951 2876 3023 2911 3060 3027 2872 2914
5576 1072 1230 1059 1274 1102 1141 1164 1245 1156 1066 1181
5577 1073 429 546 559 936 465 538 484 703 744 748
5578 1074 2913 3304 3276 3167 3068 3284 3059 3034 3232 3214
5579 1075 792 1002 1077 1046 895 1034 943 917 1010 1055
5580 1076 3637 3500 3528 3083 3569 3509 3583 3297 3256 3264
5581 1077 1172 970 1192 1218 1071 1079 1170 1189 1092 1198
5582 1078 3668 3581 3025 3160 3626 3234 3259 3372 3341 3076
5583 1079 3505 3484 3312 3069 3490 3394 3398 3249 3247 3170
5584 1080 1172 1117 1350 1192 1139 1235 1259 1170 1145 1261
5585 1081 3496 3581 3365 3025 3533 3473 3429 3197 3234 3153
5586 1082 3363 3482 2944 3251 3411 3148 3109 3295 3368 3063
5587 1083 1371 1366 1427 1577 1367 1391 1395 1489 1485 1511
5588 1084 1025 798 1085 1091 913 952 1044 1042 953 1074
5589 1085 835 1025 1136 875 925 1073 998 838 931 1005
5590 1086 3500 3606 3050 3128 3558 3261 3224 3271 3324 3075
5591 1087 817 851 1091 875 824 979 962 828 858 990
5592 1088 3696 3187 3033 3082 3397 3096 3266 3322 3136 3052
5593 1089 3639 3696 3525 3033 3664 3616 3582 3257 3266 3216
5594 1090 4305 4333 4301 4454 4322 4318 4300 4386 4393 4383
5595 1091 4097 4008 4078 3382 4052 4035 4092 3795 3676 3748
5596 1092 1178 1219 1389 1324 1195 1298 1285 1238 1262 1334
5597 1093 279 212 128 58 227 149 176 134 103 84
5598 1094 4301 4220 4203 4305 4264 4209 4253 4300 4265 4258
5599 1095 3506 3525 3371 2981 3510 3447 3439 3175 3183 3133
5600 1096 3168 2873 3125 3069 3009 2984 3138 3110 2954 3086
5601 1097 1230 1114 916 1076 1161 1014 1082 1140 1080 997
5602 1098 3525 3033 2981 3506 3216 3005 3183 3510 3200 3175
5603 1099 885 1076 751 916 991 933 821 882 997 841
5604 1100 3304 3276 3167 3851 3284 3214 3232 3529 3515 3437
5605 1101 3482 3577 2944 3233 3532 3173 3148 3348 3384 3061
5606 1102 1177 1371 1427 1253 1276 1395 1304 1212 1311 1331
5607 1103 3423 3101 3079 2874 3241 3088 3223 3078 2975 2962
5608 1104 759 429 822 936 591 618 783 843 703 864
5609 1105 1085 1091 1260 1025 1074 1173 1166 1044 1042 1137
5610 1106 3069 3612 3268 3125 3280 3422 3155 3086 3319 3184
5611 1107 1117 1317 1350 1192 1217 1326 1235 1145 1236 1261
5612 1108 3299 3496 3365 3025 3392 3429 3326 3130 3197 3153
5613 1109 1242 1344 1474 1253 1290 1408 1359 1244 1294 1363
5614 1110 3902 3685 3590 3233 3786 3642 3739 3501 3431 3387
5615 1111 1219 1301 1441 1324 1252 1369 1328 1262 1310 1375
5616 1112 4162 4097 4180 3382 4133 4144 4172 3901 3795 3916
5617 1113 887 620 982 759 760 816 928 811 682 859
5618 1114 3538 3375 3352 3101 3456 3359 3432 3272 3210 3195
5619 1115 888 767 769 945 836 749 823 897 863 860
5620 1116 3506 3639 3525 3033 3572 3582 3510 3200 3257 3216
5621 1117 3923 3202 3233 4008 3502 3211 3513 3963 3549 3570
5622 1118 1059 966 1253 1178 1007 1112 1154 1107 1069 1205
5623 1119 559 337 429 514 444 359 484 509 408 452
5624 1120 3823 3171 3423 3630 3435 3273 3595 3711 3366 3517
5625 1121 3724 3609 3198 3099 3669 3378 3415 3349 3300 3144
5626 1122 3125 3202 3476 3375 3156 3325 3265 3228 3274 3413
5627 1123 1059 916 768 887 989 847 924 973 880 825
5628 1124 851 1091 875 1052 979 990 858 957 1056 961
5629 1125 3662 3505 3168 3069 3584 3305 3377 3290 3249 3110
5630 1126 1124 975 1114 1076 1045 1039 1105 1095 1018 1080
5631 1127 2873 3233 2951 2796 3035 3065 2911 2834 2970 2864
5632 1128 1253 1230 1274 1484 1232 1245 1254 1370 1361 1385
5633 1129 3639 3506 3082 3033 3572 3255 3301 3257 3200 3052
5634 1130 1338 1233 1475 1218 1283 1354 1406 1267 1225 1341
5635 1131 3687 3900 3589 3160 3785 3736 3640 3381 3450 3334
5636 1132 429 583 546 936 493 550 465 703 764 744
5637 1133 798 1025 875 1091 913 931 827 953 1042 990
5638 1134 3363 3505 3312 2944 3433 3398 3333 3109 3151 3087
5639 1135 1124 1366 1303 1427 1246 1325 1211 1277 1391 1348
5640 1136 3227 3423 3276 2874 3311 3351 3254 3032 3078 3045
5641 1137 3500 3637 3128 3083 3569 3339 3271 3256 3297 3103
5642 1138 1076 751 916 972 933 841 997 1009 869 932
5643 1139 1002 1209 1077 1292 1108 1132 1034 1142 1237 1188
5644 1140 1136 888 769 945 1019 823 969 1029 897 860
5645 1141 4477 4454 4332 4301 4467 4392 4397 4390 4383 4316
5646 1142 3268 3069 3125 2822 3155 3086 3184 3010 2928 2948
5647 1143 3609 3050 3198 3099 3262 3115 3378 3300 3062 3144
5648 1144 3187 3033 3082 2842 3096 3052 3136 2988 2918 2947
5649 1145 822 945 1015 1187 876 976 902 1020 1062 1093
5650 1146 3125 3074 3268 2822 3094 3161 3184 2948 2933 3010
5651 1147 812 916 751 972 867 841 756 881 932 869
5652 1148 3099 3079 3240 2805 3084 3146 3157 2930 2923 2979
5653 1149 4332 4477 4301 4381 4397 4390 4316 4358 4429 4346
5654 1150 4305 4333 4454 4361 4322 4393 4386 4336 4348 4404
5655 1151 1475 1405 1576 1527 1435 1507 1529 1498 1463 1550
5656 1152 3464 3589 3260 2915 3514 3407 3362 3117 3152 3055
5657 1153 970 1117 1192 1136 1041 1145 1079 1037 1119 1152
5658 1154 3496 3668 3025 3050 3580 3259 3197 3222 3269 3039
5659 1155 1209 1051 1303 1076 1128 1179 1248 1125 1058 1186
5660 1156 3484 3371 3312 3069 3419 3336 3394 3247 3186 3170
5661 1157 381 583 901 894 471 736 663 643 728 891
5662 1158 3227 3793 3082 3167 3466 3358 3145 3185 3406 3124
5663 1159 429 812 583 936 606 686 493 703 866 764
5664 1160 1374 1160 1338 1402 1269 1250 1345 1379 1280 1360
5665 1161 3992 4065 3900 3137 4025 3986 3954 3495 3559 3427
5666 1162 3074 3423 3227 2874 3219 3311 3139 2960 3078 3032
5667 1163 885 975 1076 916 918 1018 991 882 926 997
5668 1164 3662 3168 3125 3069 3377 3138 3344 3290 3110 3086
5669 1165 1114 975 916 1076 1039 926 1014 1080 1018 997
5670 1166 2873 3202 3125 2876 3023 3156 2984 2872 3027 2987
5671 1167 1059 1230 916 1102 1141 1082 989 1066 1156 1006
5672 1168 3662 3612 3069 3125 3635 3280 3290 3344 3319 3086
5673 1169 851 738 875 383 787 789 858 615 541 641
5674 1170 3050 3198 3099 2776 3115 3144 3062 2881 2946 2907
5675 1171 559 383 875 738 459 641 711 619 541 789
5676 1172 769 1136 945 1031 969 1029 860 899 1063 968
5677 1173 3794 3171 3128 3104 3421 3141 3385 3369 3131 3113
5678 1174 3288 2913 3276 2776 3064 3059 3277 2966 2836 2959
5679 1175 1160 1134 1218 1015 1146 1167 1175 1072 1064 1120
5680 1176 3873 3992 3160 3240 3938 3512 3444 3491 3565 3191
5681 1177 937 1160 1008 1015 1048 1086 963 974 1072 994
5682 1178 3992 3898 4019 3240 3939 3959 4012 3565 3507 3588
5683 1179 3187 3167 3082 3793 3176 3124 3136 3434 3406 3358
5684 1180 970 888 1136 945 921 1019 1037 947 897 1029
5685 1181 3609 3668 3050 3099 3636 3269 3262 3300 3321 3062
5686 1182 3365 3464 3260 2915 3396 3362 3306 3081 3117 3055
5687 1183 1405 1350 1576 1527 1377 1481 1507 1463 1436 1550
5688 1184 945 822 769 1031 876 766 860 968 908 899
5689 1185 3079 3099 3198 2776 3084 3144 3135 2898 2907 2946
5690 1186 3168 3577 3233 2944 3346 3384 3193 3048 3173 3061
5691 1187 1177 1114 1253 1427 1135 1182 1212 1304 1270 1331
5692 1188 1340 1085 1260 1025 1215 1166 1299 1184 1044 1137
5693 1189 1421 1204 1374 1216 1316 1281 1394 1313 1202 1279
5694 1190 4090 4169 4065 3298 4132 4128 4082 3720 3847 3681
5695 1191 3314 3525 2981 3371 3420 3183 3120 3342 3447 3133
5696 1192 4078 4008 3902 3129 4035 3961 3996 3560 3494 3417
5697 1193 1178 1389 1344 1412 1285 1356 1258 1297 1393 1372
5698 1194 1247 1204 1421 1216 1221 1316 1327 1224 1202 1313
5699 1195 4090 4148 4169 3298 4124 4161 4132 3720 3804 3847
5700 1196 3268 3227 2822 3074 3252 2991 3010 3161 3139 2933
5701 1197 583 751 972 812 660 869 803 686 756 881
5702 1198 75 80 212 58 68 125 117 50 48 103
5703 1199 759 822 871 1187 783 833 791 993 1020 1030
5704 1200 3079 3101 3402 2805 3088 3229 3217 2923 2929 3040
5705 1201 3074 3101 2874 2876 3085 2975 2960 2967 2974 2868
5706 1202 759 812 936 1102 770 866 843 939 965 999
5707 1203 282 546 583 654 393 550 418 458 573 582
5708 1204 3276 3851 3227 3167 3515 3478 3254 3214 3437 3185
5709 1205 769 559 1031 822 656 831 899 766 677 908
5710 1206 3577 3505 2944 3168 3535 3151 3173 3346 3305 3048
5711 1207 1124 1177 1427 1114 1151 1304 1277 1105 1135 1270
5712 1208 3171 3198 2776 3079 3181 2946 2936 3122 3135 2898
5713 1209 3083 3528 2922 3500 3264 3143 3001 3256 3509 3134
5714 1210 1046 1077 1292 1002 1055 1188 1169 1010 1034 1142
5715 1211 3276 3171 3288 2776 3220 3226 3277 2959 2936 2966
5716 1212 1338 1475 1540 1402 1406 1504 1444 1360 1416 1462
5717 1213 3589 3900 3935 3137 3736 3915 3756 3308 3427 3451
5718 1214 1015 871 822 1187 935 833 902 1093 1030 1020
5719 1215 3402 3240 3079 2805 3310 3146 3217 3040 2979 2923
5720 1216 1192 1172 1218 1405 1170 1189 1198 1289 1291 1302
5721 1217 3581 3025 3160 3464 3234 3076 3341 3520 3178 3275
5722 1218 4180 4097 4078 3382 4144 4092 4139 3916 3795 3748
5723 1219 1389 1219 1441 1324 1298 1328 1407 1334 1262 1375
5724 1220 3923 3375 3202 4021 3605 3274 3502 3977 3692 3568
5725 1221 887 966 1059 1017 907 1007 973 944 985 1023
5726 1222 3902 3590 3945 3129 3739 3765 3919 3417 3303 3449
5727 1223 1474 1344 1545 1412 1408 1452 1509 1424 1372 1476
5728 1224 1441 1301 1533 1324 1369 1419 1483 1375 1310 1420
5729 1225 4162 4180 4244 3382 4172 4216 4204 3901 3916 3985
5730 1226 429 514 822 559 452 672 618 484 509 677
5731 1227 3630 3423 3079 3171 3517 3223 3296 3366 3273 3122
5732 1228 559 546 738 1031 538 624 619 831 802 874
5733 1229 1475 1405 1527 1218 1435 1463 1498 1341 1302 1382
5734 1230 3464 3589 2915 3160 3514 3152 3117 3275 3334 3028
5735 1231 759 812 1102 887 770 965 939 811 837 996
5736 1232 3074 3101 2876 3375 3085 2974 2967 3196 3210 3066
5737 1233 1008 1160 1216 1015 1086 1176 1113 994 1072 1103
5738 1234 3992 4019 3298 3240 4012 3644 3617 3565 3588 3258
5739 1235 3288 3104 2913 2776 3182 2998 3064 2966 2910 2836
5740 1236 654 894 930 583 775 892 801 582 728 737
5741 1237 3101 3079 2874 2805 3088 2962 2975 2929 2923 2835
5742 1238 822 759 936 1187 783 843 864 1020 993 1035
5743 1239 1077 1209 1337 1292 1132 1266 1213 1188 1237 1312
5744 1240 822 945 1187 1031 876 1062 1020 908 968 1088
5745 1241 3099 3079 2805 2776 3084 2923 2930 2907 2898 2786
5746 1242 3233 2873 2944 2796 3035 2900 3061 2970 2834 2859
5747 1243 1230 1253 1427 1484 1232 1331 1322 1361 1370 1449
5748 1244 3590 3482 3251 2944 3534 3368 3399 3174 3148 3063
5749 1245 1371 1474 1577 1427 1418 1528 1489 1395 1431 1511
5750 1246 3935 3900 4065 3137 3915 3986 4015 3451 3427 3559
5751 1247 1338 1540 1374 1402 1444 1453 1345 1360 1462 1379
5752 1248 1350 1317 1553 1423 1326 1446 1459 1378 1362 1486
5753 1249 3299 3365 3126 2803 3326 3237 3207 3003 3022 2938
5754 1250 812 916 972 1102 867 932 881 965 1006 1012
5755 1251 812 916 1102 887 867 1006 965 837 880 996
5756 1252 3125 3074 2822 2876 3094 2933 2948 2987 2967 2849
5757 1253 3125 3074 2876 3375 3094 2967 2987 3228 3196 3066
5758 1254 970 1015 945 1192 987 976 947 1079 1100 1067
5759 1255 3240 3668 3099 3025 3416 3321 3157 3111 3259 3054
5760 1256 654 930 546 583 801 742 573 582 737 550
5761 1257 970 1192 1218 1015 1079 1198 1092 987 1100 1120
5762 1258 1192 1218 1015 1187 1198 1120 1100 1162 1183 1093
5763 1259 3025 3668 3160 3240 3259 3372 3076 3111 3416 3191
5764 1260 3160 3025 3240 2805 3076 3111 3191 2950 2893 2979
5765 1261 2922 3318 2814 3317 3077 3017 2863 3073 3309 3013
5766 1262 1292 1337 1502 1209 1312 1415 1403 1237 1266 1349
5767 1263 945 1015 1187 1192 976 1093 1062 1067 1100 1162
5768 1264 3240 3099 2805 3025 3157 2930 2979 3111 3054 2893
5769 1265 1340 1260 1506 1264 1299 1390 1417 1300 1251 1383
5770 1266 2951 3202 2876 3375 3060 3027 2914 3119 3274 3066
5771 1267 1059 1274 1102 887 1164 1181 1066 973 1094 996
5772 1268 3314 2981 2812 3371 3120 2886 3016 3342 3133 3029
5773 1269 982 871 1008 1216 912 923 978 1099 1047 1113
5774 1270 3402 3352 4019 3298 3374 3672 3717 3350 3315 3644
5775 1271 3528 3318 2922 3500 3425 3077 3143 3509 3400 3134
5776 1272 3590 3482 2944 3233 3534 3148 3174 3387 3348 3061
5777 1273 1371 1474 1427 1253 1418 1431 1395 1311 1363 1331
5778 1274 1117 1192 1136 1317 1145 1152 1119 1217 1236 1226
5779 1275 3025 3496 3050 3299 3197 3222 3039 3130 3392 3147
5780 1276 1374 1160 1402 1216 1269 1280 1379 1279 1176 1305
5781 1277 3992 4065 3137 3298 4025 3559 3495 3617 3681 3204
5782 1278 3202 2876 3375 3125 3027 3066 3274 3156 2987 3228
5783 1279 1102 1059 887 916 1066 973 996 1006 989 880
5784 1280 738 546 930 1031 624 742 834 874 802 938
5785 1281 3506 3371 3069 2981 3439 3186 3250 3175 3133 3024
5786 1282 1260 1091 1343 1136 1173 1223 1296 1190 1097 1228
5787 1283 3902 3945 4078 3129 3919 4023 3996 3417 3449 3560
5788 1284 1545 1344 1389 1412 1452 1356 1465 1476 1372 1393
5789 1285 1216 1043 982 1109 1126 1001 1099 1144 1065 1028
5790 1286 4067 3298 3352 4093 3691 3315 3726 4083 3713 3752
5791 1287 4093 4021 3382 3352 4061 3694 3788 3752 3674 3355
5792 1288 1017 1109 1324 982 1050 1220 1168 983 1028 1153
5793 1289 2981 3033 2689 3069 3005 2821 2806 3024 3044 2837
5794 1290 1209 1002 1076 1292 1108 1027 1125 1237 1142 1158
5795 1291 2873 3168 2944 3069 3009 3048 2900 2954 3110 3002
5796 1292 1114 1230 1427 1076 1161 1322 1270 1080 1140 1256
5797 1293 2873 2951 2876 2630 2911 2914 2872 2736 2765 2737
5798 1294 1274 1230 1102 1451 1245 1156 1181 1357 1335 1284
5799 1295 3363 3312 3127 2944 3333 3213 3236 3109 3087 3031
5800 1296 1303 1366 1554 1427 1325 1468 1438 1348 1391 1487
5801 1297 1317 1264 1532 1423 1288 1409 1425 1362 1330 1466
5802 1298 3171 3794 3288 3104 3421 3503 3226 3131 3369 3182
5803 1299 901 583 972 894 736 803 920 891 728 904
5804 1300 3227 3082 2822 2842 3145 2937 2991 2994 2947 2827
5805 1301 4162 4244 4236 3382 4204 4242 4202 3901 3985 3973
5806 1302 1533 1301 1503 1324 1419 1400 1517 1420 1310 1401
5807 1303 583 381 654 894 471 497 582 728 643 775
5808 1304 4078 4008 3129 3382 4035 3494 3560 3748 3676 3235
5809 1305 1178 1389 1412 1324 1285 1393 1297 1238 1334 1353
5810 1306 3233 2951 2796 3129 3065 2864 2970 3169 3041 2934
5811 1307 3233 2951 3129 4008 3065 3041 3169 3570 3323 3494
5812 1308 1274 1253 1484 1412 1254 1370 1385 1339 1323 1440
5813 1309 1274 1253 1412 1178 1254 1323 1339 1214 1205 1297
5814 1310 982 871 1216 1187 912 1047 1099 1061 1030 1171
5815 1311 3402 3352 3298 2805 3374 3315 3350 3040 3015 2995
5816 1312 822 429 559 936 618 484 677 864 703 748
5817 1313 871 1015 1008 1216 935 994 923 1047 1103 1113
5818 1314 3240 3402 4019 3298 3310 3717 3588 3258 3350 3644
5819 1315 3423 3079 3171 2874 3223 3122 3273 3078 2962 3007
5820 1316 1076 1002 901 1292 1027 941 988 1158 1142 1111
5821 1317 4162 4148 3382 4236 4156 3871 3901 4202 4189 3973
5822 1318 1247 1301 1324 1503 1263 1310 1273 1381 1400 1401
5823 1319 3227 3074 2874 2822 3139 2960 3032 2991 2933 2850
5824 1320 2951 2873 2796 2630 2911 2834 2864 2765 2736 2702
5825 1321 1230 1274 1484 1451 1245 1385 1361 1335 1357 1456
5826 1322 812 583 936 972 686 764 866 881 803 942
5827 1323 559 875 1031 738 711 946 831 619 789 874
5828 1324 3128 3171 2776 3104 3141 2936 2919 3113 3131 2910
5829 1325 4065 4169 4182 3137 4128 4178 4131 3559 3678 3688
5830 1326 1421 1374 1587 1402 1394 1499 1518 1397 1379 1497
5831 1327 4148 4093 3382 3298 4125 3788 3871 3804 3713 3331
5832 1328 1109 1247 1324 1216 1165 1273 1220 1144 1224 1255
5833 1329 3125 2873 2876 2822 2984 2872 2987 2948 2846 2849
5834 1330 1230 916 1102 972 1082 1006 1156 1078 932 1012
5835 1331 945 970 1192 1136 947 1079 1067 1029 1037 1152
5836 1332 1192 945 1136 1031 1067 1029 1152 1081 968 1063
5837 1333 3668 3099 3025 3050 3321 3054 3259 3269 3062 3039
5838 1334 3099 3025 3050 2690 3054 3039 3062 2852 2818 2831
5839 1335 1247 1421 1503 1479 1327 1454 1381 1358 1442 1478
5840 1336 4169 4148 4236 3289 4161 4189 4208 3850 3791 3944
5841 1337 3171 3276 2874 2776 3220 3045 3007 2936 2959 2815
5842 1338 887 982 1017 1274 928 983 944 1094 1116 1133
5843 1339 3352 3375 4021 2951 3359 3692 3674 3102 3119 3338
5844 1340 583 936 972 930 764 942 803 737 898 915
5845 1341 3506 3069 3082 3033 3250 3070 3255 3200 3044 3052
5846 1342 546 559 936 1031 538 748 744 802 831 967
5847 1343 2874 3227 2822 2842 3032 2991 2850 2853 2994 2827
5848 1344 3276 2913 3167 2874 3059 3034 3214 3045 2884 2996
5849 1345 1160 1338 1402 1218 1250 1360 1280 1175 1267 1306
5850 1346 3900 3992 3137 3160 3954 3495 3427 3450 3512 3140
5851 1347 2951 3202 3375 4021 3060 3274 3119 3338 3568 3692
5852 1348 1059 1274 887 1017 1164 1094 973 1023 1133 944
5853 1349 1052 738 930 1031 911 834 984 1026 874 938
5854 1350 2842 3167 2913 2874 2978 3034 2867 2853 2996 2884
5855 1351 1405 1350 1527 1192 1377 1436 1463 1289 1261 1368
5856 1352 3365 3464 2915 3025 3396 3117 3081 3153 3178 2952
5857 1353 4236 4244 4328 3566 4242 4284 4278 4034 4048 4138
5858 1354 1533 1503 1687 1789 1517 1597 1612 1662 1650 1733
5859 1355 3082 3069 2822 2689 3070 2928 2937 2847 2837 2752
5860 1356 3500 3317 3318 2922 3403 3309 3400 3134 3073 3077
5861 1357 1076 901 972 1201 988 920 1009 1101 1049 1070
5862 1358 1264 1025 1340 1260 1150 1184 1300 1251 1137 1299
5863 1359 1025 1136 875 1091 1073 1005 931 1042 1097 990
5864 1360 1015 871 1187 1216 935 1030 1093 1103 1047 1171
5865 1361 3402 3240 2805 3298 3310 2979 3040 3350 3258 2995
5866 1362 3050 3500 3128 2922 3224 3271 3075 2972 3134 3018
5867 1363 3317 3299 3080 2803 3307 3179 3192 3004 3003 2921
5868 1364 2944 3233 2796 3590 3061 2970 2859 3174 3387 3058
5869 1365 1253 1427 1484 1474 1331 1449 1370 1363 1431 1461
5870 1366 1340 1567 1532 1506 1472 1546 1432 1417 1538 1510
5871 1367 3107 3314 2812 3123 3203 3016 2939 3112 3205 2943
5872 1368 3318 3108 2814 3317 3206 2941 3017 3309 3199 3013
5873 1369 1337 1565 1502 1522 1469 1535 1415 1426 1542 1501
5874 1370 3104 3128 2751 2776 3113 2895 2887 2910 2919 2762
5875 1371 4180 4078 4201 3221 4139 4146 4190 3792 3632 3830
5876 1372 1389 1441 1610 1573 1407 1536 1516 1488 1515 1585
5877 1373 1350 1317 1423 1192 1326 1362 1378 1261 1236 1309
5878 1374 3299 3365 2803 3025 3326 3022 3003 3130 3153 2896
5879 1375 936 812 972 1102 866 881 942 999 965 1012
5880 1376 916 1076 972 1230 997 1009 932 1082 1140 1078
5881 1377 3108 2920 2722 3080 3020 2800 2871 3090 2999 2860
5882 1378 3069 3125 2822 2873 3086 2948 2928 2954 2984 2846
5883 1379 1292 1502 1495 1399 1403 1490 1396 1329 1439 1430
5884 1380 2922 2814 2623 2763 2863 2710 2754 2829 2784 2687
5885 1381 3074 2874 2822 2876 2960 2850 2933 2967 2868 2849
5886 1382 4008 3902 3129 3233 3961 3417 3494 3570 3501 3169
5887 1383 1344 1178 1412 1253 1258 1297 1372 1294 1205 1323
5888 1384 1484 1274 1412 1563 1385 1339 1440 1526 1434 1492
5889 1385 2951 2796 3129 2708 2864 2934 3041 2807 2753 2869
5890 1386 875 1136 1031 1343 1005 1063 946 1127 1228 1180
5891 1387 894 901 1201 972 891 1049 1054 904 920 1070
5892 1388 3276 3227 2874 3167 3254 3032 3045 3214 3185 2996
5893 1389 583 546 936 930 550 744 764 737 742 898
5894 1390 3050 3128 2776 2751 3075 2919 2881 2861 2895 2762
5895 1391 1091 1260 1025 1136 1173 1137 1042 1097 1190 1073
5896 1392 901 1002 1046 1292 941 1010 981 1111 1142 1169
5897 1393 3033 2981 3506 3069 3005 3175 3200 3044 3024 3250
5898 1394 871 982 759 1187 912 859 791 1030 1061 993
5899 1395 3352 3402 3101 2805 3374 3229 3195 3015 3040 2929
5900 1396 3128 3500 3083 2922 3271 3256 3103 3018 3134 3001
5901 1397 738 1052 875 1031 911 961 789 874 1026 946
5902 1398 1025 1264 1136 1260 1150 1200 1073 1137 1251 1190
5903 1399 3317 3500 3050 2922 3403 3224 3154 3073 3134 2972
5904 1400 1475 1576 1664 1527 1529 1622 1572 1498 1550 1586
5905 1401 3260 3589 3467 2915 3407 3526 3353 3055 3152 3114
5906 1402 3167 2842 3082 3227 2978 2947 3124 3185 2994 3145
5907 1403 2873 2944 2796 2617 2900 2859 2834 2727 2758 2694
5908 1404 1427 1230 1484 1521 1322 1361 1449 1470 1380 1491
5909 1405 1091 875 1052 1343 990 961 1056 1223 1127 1203
5910 1406 3251 3363 3127 2944 3295 3236 3172 3063 3109 3031
5911 1407 1366 1577 1554 1427 1485 1560 1468 1391 1511 1487
5912 1408 3033 3082 2842 2689 3052 2947 2918 2821 2847 2760
5913 1409 1532 1264 1340 1506 1409 1300 1432 1510 1383 1417
5914 1410 3123 3371 3314 2812 3243 3342 3205 2943 3029 3016
5915 1411 3083 3128 2922 2751 3103 3018 3001 2879 2895 2816
5916 1412 3099 3050 2776 2690 3062 2881 2907 2852 2831 2729
5917 1413 3312 3371 3123 2769 3336 3243 3208 2968 2982 2905
5918 1414 559 1031 822 936 831 908 677 748 967 864
5919 1415 2876 2951 3375 3352 2914 3119 3066 3057 3102 3359
5920 1416 3375 2876 3352 3101 3066 3057 3359 3210 2974 3195
5921 1417 1274 1102 887 982 1181 996 1094 1116 1022 928
5922 1418 1102 887 982 759 996 928 1022 939 811 859
5923 1419 1124 1303 1076 1427 1211 1186 1095 1277 1348 1256
5924 1420 1209 1522 1337 1502 1373 1426 1266 1349 1501 1415
5925 1421 1209 1303 1522 1399 1248 1410 1373 1293 1332 1447
5926 1422 1540 1475 1664 1527 1504 1572 1595 1519 1498 1586
5927 1423 3589 3935 3467 2915 3756 3700 3526 3152 3245 3114
5928 1424 3312 3505 3069 2944 3398 3249 3170 3087 3151 3002
5929 1425 2776 3171 3079 2874 2936 3122 2898 2815 3007 2962
5930 1426 3288 3171 3104 2776 3226 3131 3182 2966 2936 2910
5931 1427 1218 1015 1187 1216 1120 1093 1183 1196 1103 1171
5932 1428 3240 3160 2805 3298 3191 2950 2979 3258 3212 2995
5933 1429 1046 901 1292 1201 981 1111 1169 1118 1049 1231
5934 1430 1160 1402 1216 1218 1280 1305 1176 1175 1306 1196
5935 1431 3137 3992 3298 3160 3495 3617 3204 3140 3512 3212
5936 1432 1567 1532 1506 1730 1546 1510 1538 1648 1631 1627
5937 1433 3080 3299 3126 2803 3179 3207 3095 2921 3003 2938
5938 1434 1338 1402 1218 1475 1360 1306 1267 1406 1416 1341
5939 1435 3137 3900 3160 3589 3427 3450 3140 3308 3736 3334
5940 1436 4236 4244 3566 3382 4242 4048 4034 3973 3985 3452
5941 1437 1412 1274 1178 1324 1339 1214 1297 1353 1282 1238
5942 1438 2951 3129 4008 3382 3041 3494 3323 3118 3235 3676
5943 1439 2812 3107 3123 2679 2939 3112 2943 2740 2843 2844
5944 1440 1565 1502 1522 1692 1535 1501 1542 1629 1604 1603
5945 1441 2796 3233 3129 3590 2970 3169 2934 3058 3387 3303
5946 1442 1253 1484 1412 1474 1370 1440 1323 1363 1461 1424
5947 1443 3590 3902 3233 3129 3739 3501 3387 3303 3417 3169
5948 1444 1344 1474 1253 1412 1408 1363 1294 1372 1424 1323
5949 1445 3069 3082 3033 2689 3070 3052 3044 2837 2847 2821
5950 1446 1292 1502 1399 1209 1403 1439 1329 1237 1349 1293
5951 1447 2922 2814 2763 3317 2863 2784 2829 3073 3013 2956
5952 1448 1136 875 1091 1343 1005 990 1097 1228 1127 1223
5953 1449 3992 3160 3240 3298 3512 3191 3565 3617 3212 3258
5954 1450 1218 1160 1015 1216 1175 1072 1120 1196 1176 1103
5955 1451 1317 1553 1423 1532 1446 1486 1362 1425 1541 1466
5956 1452 1052 875 1031 1343 961 946 1026 1203 1127 1180
5957 1453 1350 1553 1576 1423 1459 1557 1481 1378 1486 1493
5958 1454 3126 3365 3260 2803 3237 3306 3177 2938 3022 2980
5959 1455 4021 4008 3382 2951 4018 3676 3694 3338 3323 3118
5960 1456 1178 1017 1324 1274 1096 1168 1238 1214 1133 1282
5961 1457 3945 3590 3465 2882 3765 3527 3708 3230 3132 3093
5962 1458 1474 1545 1672 1652 1509 1605 1575 1561 1588 1653
5963 1459 3505 2944 3168 3069 3151 3048 3305 3249 3002 3110
5964 1460 1427 1124 1114 1076 1277 1105 1270 1256 1095 1080
5965 1461 2814 3108 2722 3080 2941 2871 2766 2926 3090 2860
5966 1462 1187 945 1192 1031 1062 1067 1162 1088 968 1081
5967 1463 3099 2805 3025 2690 2930 2893 3054 2852 2745 2818
5968 1464 1567 1744 1532 1730 1659 1637 1546 1648 1734 1631
5969 1465 1522 1303 1554 1399 1410 1438 1534 1447 1332 1471
5970 1466 3312 3123 3127 2769 3208 3116 3213 2968 2905 2902
5971 1467 2776 3099 2690 2805 2907 2852 2729 2786 2930 2745
5972 1468 3465 3590 3251 2882 3527 3399 3337 3093 3132 3038
5973 1469 1474 1672 1577 1652 1575 1625 1528 1561 1653 1599
5974 1470 1274 1412 1563 1324 1339 1492 1434 1282 1353 1448
5975 1471 3129 2951 2708 3382 3041 2807 2869 3235 3118 2935
5976 1472 3082 2822 2842 2689 2937 2827 2947 2847 2752 2760
5977 1473 3025 3050 2690 2803 3039 2831 2818 2896 2904 2743
5978 1474 1317 1264 1423 1136 1288 1330 1362 1226 1200 1286
5979 1475 3317 3299 2803 3050 3307 3003 3004 3154 3147 2904
5980 1476 2917 3107 2679 3123 3019 2843 2778 3021 3112 2844
5981 1477 2876 2873 2630 2822 2872 2736 2737 2849 2846 2707
5982 1478 1230 1102 1451 972 1156 1284 1335 1078 1012 1208
5983 1479 894 1201 930 972 1054 1060 892 904 1070 915
5984 1480 4008 4021 3202 2951 4018 3568 3549 3323 3338 3060
5985 1481 1017 1178 1059 1274 1096 1107 1023 1133 1214 1164
5986 1482 3104 2751 2913 2776 2887 2813 2998 2910 2762 2836
5987 1483 2814 2722 2552 2763 2766 2631 2671 2784 2732 2647
5988 1484 1506 1260 1343 1136 1390 1296 1414 1321 1190 1228
5989 1485 2951 2876 2630 2791 2914 2737 2765 2857 2825 2698
5990 1486 1102 1274 1451 1384 1181 1357 1284 1234 1315 1404
5991 1487 3050 2776 2690 2763 2881 2729 2831 2875 2764 2720
5992 1488 1109 1324 982 1216 1220 1153 1028 1144 1255 1099
5993 1489 3382 4093 3352 3298 3788 3752 3355 3331 3713 3315
5994 1490 4180 4078 3221 3382 4139 3632 3792 3916 3748 3278
5995 1491 1389 1441 1573 1324 1407 1515 1488 1334 1375 1464
5996 1492 1247 1421 1479 1216 1327 1442 1358 1224 1313 1347
5997 1493 4169 4148 3289 3298 4161 3791 3850 3847 3804 3283
5998 1494 3167 2842 3227 2874 2978 2994 3185 2996 2853 3032
5999 1495 1742 1565 1522 1692 1657 1542 1634 1716 1629 1603
6000 1496 2981 2812 3371 2769 2886 3029 3133 2855 2788 2982
6001 1497 2873 2796 2630 2617 2834 2702 2736 2727 2694 2621
6002 1498 1484 1230 1451 1521 1361 1335 1456 1491 1380 1477
6003 1499 2981 2812 2769 2689 2886 2788 2855 2806 2747 2723
6004 1500 1421 1503 1479 1728 1454 1478 1442 1590 1619 1600
6005 1501 4236 4169 3289 4303 4208 3850 3944 4270 4241 4024
6006 1502 3276 2913 2874 2776 3059 2884 3045 2959 2836 2815
6007 1503 1503 1247 1479 1324 1381 1358 1478 1401 1273 1392
6008 1504 4148 4236 3289 3382 4189 3944 3791 3871 3973 3327
6009 1505 1423 1350 1192 1527 1378 1261 1309 1458 1436 1368
6010 1506 3365 2803 3025 2915 3022 2896 3153 3081 2854 2952
6011 1507 1540 1374 1402 1587 1453 1379 1462 1552 1499 1497
6012 1508 4065 3935 3137 4182 4015 3451 3559 4131 4086 3688
6013 1509 546 936 930 1031 744 898 742 802 967 938
6014 1510 2796 2951 2630 2708 2864 2765 2702 2753 2807 2668
6015 1511 1274 1484 1451 1563 1385 1456 1357 1434 1526 1514
6016 1512 3260 3365 2915 2803 3306 3081 3055 2980 3022 2854
6017 1513 1350 1576 1527 1423 1481 1550 1436 1378 1493 1458
6018 1514 2722 2920 2757 2858 2800 2830 2730 2777 2878 2797
6019 1515 1218 1192 1405 1527 1198 1289 1302 1382 1368 1463
6020 1516 1218 1192 1527 1187 1198 1368 1382 1183 1162 1342
6021 1517 3025 3160 3464 2915 3076 3275 3178 2952 3028 3117
6022 1518 3025 3160 2915 2805 3076 3028 2952 2893 2950 2848
6023 1519 2814 3108 3080 3317 2941 3090 2926 3013 3199 3192
6024 1520 1421 1374 1402 1216 1394 1379 1397 1313 1279 1305
6025 1521 4065 4169 3137 3298 4128 3678 3559 3681 3847 3204
6026 1522 1303 1209 1076 1399 1248 1125 1186 1332 1293 1241
6027 1523 3371 3312 3069 2769 3336 3170 3186 2982 2968 2888
6028 1524 1744 1730 1892 1775 1734 1810 1817 1756 1746 1830
6029 1525 2917 2679 2756 2890 2778 2704 2826 2897 2768 2811
6030 1526 4201 4180 3221 4302 4190 3792 3830 4251 4243 3998
6031 1527 1441 1610 1573 1727 1536 1585 1515 1598 1667 1640
6032 1528 936 759 1102 1187 843 939 999 1035 993 1115
6033 1529 3101 2874 2876 2805 2975 2868 2974 2929 2835 2838
6034 1530 3945 4078 3129 3221 4023 3560 3449 3508 3632 3165
6035 1531 4078 3129 3221 3382 3560 3165 3632 3748 3235 3278
6036 1532 1389 1545 1412 1573 1465 1476 1393 1488 1548 1505
6037 1533 1412 1389 1573 1324 1393 1488 1505 1353 1334 1464
6038 1534 4244 4328 3566 3287 4284 4138 4048 3932 4038 3389
6039 1535 3025 3050 2803 3299 3039 2904 2896 3130 3147 3003
6040 1536 3129 3221 3382 2708 3165 3278 3235 2869 2894 2935
6041 1537 1573 1412 1324 1563 1505 1353 1464 1559 1492 1448
6042 1538 1540 1664 1751 1702 1595 1707 1646 1617 1677 1721
6043 1539 3467 3935 3880 2877 3700 3914 3633 3091 3215 3189
6044 1540 1451 1274 1563 1384 1357 1434 1514 1404 1315 1480
6045 1541 2951 2630 2708 2791 2765 2668 2807 2857 2698 2749
6046 1542 1031 822 936 1187 908 864 967 1088 1020 1035
6047 1543 3079 2776 2874 2805 2898 2815 2962 2923 2786 2835
6048 1544 1479 1247 1216 1324 1358 1224 1347 1392 1273 1255
6049 1545 4148 3289 3298 3382 3791 3283 3804 3871 3327 3331
6050 1546 1260 1506 1264 1136 1390 1383 1251 1190 1321 1200
6051 1547 1576 1664 1527 1800 1622 1586 1550 1700 1736 1675
6052 1548 3467 3260 2915 3067 3353 3055 3114 3248 3158 2973
6053 1549 1751 1664 1848 1702 1707 1766 1796 1721 1677 1776
6054 1550 3467 3880 3286 2877 3633 3553 3379 3091 3189 3043
6055 1551 3945 3465 3887 2882 3708 3634 3920 3230 3093 3188
6056 1552 1672 1545 1763 1652 1605 1655 1713 1653 1588 1699
6057 1553 4201 4078 3945 3221 4146 4023 4100 3830 3632 3508
6058 1554 1389 1610 1545 1573 1516 1564 1465 1488 1585 1548
6059 1555 2552 2722 2513 2588 2631 2610 2533 2569 2657 2547
6060 1556 1527 1475 1218 1402 1498 1341 1382 1450 1416 1306
6061 1557 3589 2915 3160 3137 3152 3028 3334 3308 3012 3140
6062 1558 2873 2944 2617 3069 2900 2758 2727 2954 3002 2785
6063 1559 1427 1230 1521 1076 1322 1380 1470 1256 1140 1314
6064 1560 1317 1423 1192 1136 1362 1309 1236 1226 1286 1152
6065 1561 1423 1192 1136 1031 1309 1152 1286 1222 1081 1063
6066 1562 982 1102 759 1187 1022 939 859 1061 1115 993
6067 1563 2876 3352 3101 2805 3057 3195 2974 2838 3015 2929
6068 1564 3352 3382 3298 2791 3355 3331 3315 2997 3014 2986
6069 1565 3298 3352 2791 2805 3315 2997 2986 2995 3015 2792
6070 1566 1324 982 1216 1384 1153 1099 1255 1336 1191 1287
6071 1567 982 1216 1384 1187 1099 1287 1191 1061 1171 1265
6072 1568 1672 1763 1862 1652 1713 1803 1773 1653 1699 1761
6073 1569 3887 3465 3282 2882 3634 3376 3554 3188 3093 3042
6074 1570 1664 1800 1848 1702 1736 1823 1766 1677 1741 1776
6075 1571 3067 3467 3286 2877 3248 3379 3164 2949 3091 3043
6076 1572 1495 1292 1399 1201 1396 1329 1430 1346 1231 1275
6077 1573 1502 1495 1399 1692 1490 1430 1439 1604 1592 1558
6078 1574 2814 2623 2763 2552 2710 2687 2784 2671 2576 2647
6079 1575 2623 2922 2763 2751 2754 2829 2687 2682 2816 2748
6080 1576 583 972 894 930 803 904 728 737 915 892
6081 1577 2690 3050 2763 2803 2831 2875 2720 2743 2904 2780
6082 1578 2763 2690 2803 2521 2720 2743 2780 2627 2594 2651
6083 1579 3050 2763 2803 3317 2875 2780 2904 3154 2956 3004
6084 1580 2917 2679 2890 3123 2778 2768 2897 3021 2844 3008
6085 1581 4328 4236 3566 4303 4278 4034 4138 4325 4270 4113
6086 1582 2944 2796 2617 2715 2859 2694 2758 2802 2755 2661
6087 1583 1484 1427 1521 1708 1449 1470 1491 1593 1579 1607
6088 1584 1402 1216 1218 1187 1305 1196 1306 1272 1171 1183
6089 1585 3298 3137 3160 2805 3204 3140 3212 2995 2940 2950
6090 1586 3251 3590 2944 2796 3399 3174 3063 2957 3058 2859
6091 1587 1474 1577 1427 1484 1528 1511 1431 1461 1524 1449
6092 1588 4180 4244 3382 3221 4216 3985 3916 3792 3913 3278
6093 1589 1533 1441 1324 1573 1483 1375 1420 1543 1515 1464
6094 1590 1553 1748 1576 1423 1654 1666 1557 1486 1596 1493
6095 1591 2976 3126 3260 2803 3051 3177 3105 2870 2938 2980
6096 1592 1412 1484 1563 1652 1440 1526 1492 1547 1569 1602
6097 1593 1412 1484 1652 1474 1440 1569 1547 1424 1461 1561
6098 1594 2796 3129 2708 2882 2934 2869 2753 2840 2993 2783
6099 1595 2796 3129 2882 3590 2934 2993 2840 3058 3303 3132
6100 1596 1484 1451 1563 1725 1456 1514 1526 1614 1601 1639
6101 1597 2630 2796 2708 2492 2702 2753 2668 2554 2624 2580
6102 1598 3371 2981 2769 3069 3133 2855 2982 3186 3024 2888
6103 1599 1324 1017 982 1274 1168 983 1153 1282 1133 1116
6104 1600 4021 3382 3352 2951 3694 3355 3674 3338 3118 3102
6105 1601 2690 3025 2803 2915 2818 2896 2743 2775 2952 2854
6106 1602 3945 3590 2882 3129 3765 3132 3230 3449 3303 2993
6107 1603 1474 1545 1652 1412 1509 1588 1561 1424 1476 1547
6108 1604 1540 1475 1527 1402 1504 1498 1519 1462 1416 1450
6109 1605 3589 3935 2915 3137 3756 3245 3152 3308 3451 3012
6110 1606 1399 1292 1209 1076 1329 1237 1293 1241 1158 1125
6111 1607 1532 1264 1506 1423 1409 1383 1510 1466 1330 1443
6112 1608 2763 2803 3317 3080 2780 3004 2956 2883 2921 3192
6113 1609 2920 2722 3080 2858 2800 2860 2999 2878 2777 2963
6114 1610 2822 2874 2842 2561 2850 2853 2827 2677 2691 2684
6115 1611 1892 2027 1960 1967 1970 1997 1921 1926 1999 1955
6116 1612 2596 2757 2666 2513 2675 2700 2629 2549 2620 2573
6117 1613 3371 3123 2769 2812 3243 2905 2982 3029 2943 2788
6118 1614 1573 1412 1563 1652 1505 1492 1559 1608 1547 1602
6119 1615 3129 3221 2708 2882 3165 2894 2869 2993 3030 2783
6120 1616 1484 1563 1652 1725 1526 1602 1569 1614 1639 1679
6121 1617 2708 2796 2882 2492 2753 2840 2783 2580 2624 2658
6122 1618 1800 1576 1748 1527 1700 1666 1774 1675 1550 1633
6123 1619 3260 3067 2976 2915 3158 3026 3105 3055 2973 2927
6124 1620 1484 1652 1474 1577 1569 1561 1461 1524 1599 1528
6125 1621 2882 2796 3590 3251 2840 3058 3132 3038 2957 3399
6126 1622 2595 2756 2465 2688 2673 2582 2526 2640 2712 2559
6127 1623 4182 4169 4303 3289 4178 4241 4247 3859 3850 4024
6128 1624 1421 1587 1728 1479 1518 1656 1590 1442 1530 1600
6129 1625 2805 3025 2690 2915 2893 2818 2745 2848 2952 2775
6130 1626 2951 2876 2791 3352 2914 2825 2857 3102 3057 2997
6131 1627 1102 1274 1384 982 1181 1315 1234 1022 1116 1191
6132 1628 3289 3298 3382 2791 3283 3331 3327 2977 2986 3014
6133 1629 1216 1479 1324 1384 1347 1392 1255 1287 1411 1336
6134 1630 1052 930 1333 1031 984 1143 1197 1026 938 1163
6135 1631 1192 1423 1527 1520 1309 1458 1368 1351 1455 1512
6136 1632 3050 2763 3317 2922 2875 2956 3154 2972 2829 3073
6137 1633 2630 2873 2617 2822 2736 2727 2621 2707 2846 2699
6138 1634 1230 1451 1521 972 1335 1477 1380 1078 1208 1257
6139 1635 936 972 930 1333 942 915 898 1130 1129 1143
6140 1636 3251 3127 2931 2715 3172 3036 3071 2906 2866 2799
6141 1637 1554 1577 1764 1708 1560 1673 1663 1628 1638 1729
6142 1638 3126 3080 2803 2588 3095 2921 2938 2781 2772 2686
6143 1639 4180 4244 3221 4302 4216 3913 3792 4243 4272 3998
6144 1640 1533 1441 1573 1727 1483 1515 1543 1630 1598 1640
6145 1641 3282 3465 3056 2715 3376 3231 3149 2909 2953 2851
6146 1642 1672 1862 1798 1708 1773 1825 1737 1680 1783 1755
6147 1643 2690 2776 2805 2522 2729 2786 2745 2592 2636 2650
6148 1644 1624 1506 1343 1423 1555 1414 1508 1523 1443 1352
6149 1645 3123 2769 2812 2679 2905 2788 2943 2844 2711 2740
6150 1646 1890 1742 1740 1692 1815 1738 1811 1794 1716 1709
6151 1647 1209 1522 1502 1399 1373 1501 1349 1293 1447 1439
6152 1648 1031 1052 1343 1333 1026 1203 1180 1163 1197 1319
6153 1649 3056 3465 3251 2715 3231 3337 3142 2851 2953 2906
6154 1650 1672 1798 1577 1708 1737 1696 1625 1680 1755 1638
6155 1651 2551 2812 2689 2769 2670 2747 2615 2652 2788 2723
6156 1652 1960 2027 2079 1967 1997 2055 2021 1955 1999 2017
6157 1653 1967 1818 1939 1899 1893 1884 1946 1928 1856 1913
6158 1654 1522 1554 1740 1399 1534 1647 1635 1447 1471 1583
6159 1655 3127 3123 2890 2769 3116 3008 3006 2902 2905 2810
6160 1656 2596 2666 2525 2376 2629 2589 2558 2476 2503 2437
6161 1657 2796 2630 2617 2492 2702 2621 2694 2624 2554 2546
6162 1658 1451 1484 1521 1725 1456 1491 1477 1601 1614 1626
6163 1659 3080 3126 2858 2588 3095 2983 2963 2772 2781 2705
6164 1660 972 936 1102 1467 942 999 1012 1229 1227 1271
6165 1661 1421 1479 1216 1402 1442 1347 1313 1397 1428 1305
6166 1662 1479 1216 1402 1384 1347 1305 1428 1411 1287 1365
6167 1663 3289 4169 3298 3137 3850 3847 3283 3194 3678 3204
6168 1664 3298 3289 3137 2791 3283 3194 3204 2986 2977 2924
6169 1665 2874 2822 2876 2522 2850 2849 2868 2672 2655 2669
6170 1666 2803 2763 2521 2588 2780 2627 2651 2686 2667 2548
6171 1667 1563 1451 1384 1684 1514 1404 1480 1621 1571 1551
6172 1668 2630 2708 2791 2460 2668 2749 2698 2537 2567 2598
6173 1669 1076 1303 1399 1427 1186 1332 1241 1256 1348 1398
6174 1670 2679 2812 2551 2769 2740 2670 2611 2711 2788 2652
6175 1671 1730 1506 1624 1423 1627 1555 1670 1581 1443 1523
6176 1672 2708 2951 2791 3382 2807 2857 2749 2935 3118 3014
6177 1673 1274 1563 1384 1324 1434 1480 1315 1282 1448 1336
6178 1674 3312 3069 2769 2944 3170 2888 2968 3087 3002 2841
6179 1675 1960 2079 1937 1899 2021 2012 1944 1918 1995 1909
6180 1676 2525 2666 2701 2445 2589 2683 2613 2481 2543 2560
6181 1677 3317 2763 3080 2814 2956 2883 3192 3013 2784 2926
6182 1678 2552 2722 2588 2763 2631 2657 2569 2647 2732 2667
6183 1679 1421 1587 1479 1402 1518 1530 1442 1397 1497 1428
6184 1680 4182 4169 3289 3137 4178 3850 3859 3688 3678 3194
6185 1681 1218 1527 1402 1187 1382 1450 1306 1183 1342 1272
6186 1682 2915 3160 3137 2805 3028 3140 3012 2848 2950 2940
6187 1683 1522 1740 1742 1692 1635 1738 1634 1603 1709 1716
6188 1684 1730 1624 1818 1899 1670 1726 1778 1808 1767 1856
6189 1685 2769 2981 2689 3069 2855 2806 2723 2888 3024 2837
6190 1686 2751 2913 2776 2561 2813 2836 2762 2648 2703 2660
6191 1687 2822 2842 2689 2561 2827 2760 2752 2677 2684 2619
6192 1688 3127 3312 2769 2944 3213 2968 2902 3031 3087 2841
6193 1689 1744 1730 1775 1532 1734 1746 1756 1637 1631 1658
6194 1690 1554 1303 1427 1399 1438 1348 1487 1471 1332 1398
6195 1691 2882 3945 3129 3221 3230 3449 2993 3030 3508 3165
6196 1692 1545 1652 1412 1573 1588 1547 1476 1548 1608 1505
6197 1693 1533 1687 1727 1789 1612 1697 1630 1662 1733 1749
6198 1694 4328 4244 4302 3287 4284 4272 4324 4038 3932 4031
6199 1695 2701 2666 2858 2445 2683 2759 2774 2560 2543 2616
6200 1696 3128 3050 2922 2751 3075 2972 3018 2895 2861 2816
6201 1697 1960 1937 1775 1899 1944 1861 1872 1918 1909 1826
6202 1698 901 1076 1292 1201 988 1158 1111 1049 1101 1231
6203 1699 1503 1533 1324 1789 1517 1420 1401 1650 1662 1594
6204 1700 2842 2913 2561 2874 2867 2703 2684 2853 2884 2691
6205 1701 1740 1554 1764 1693 1647 1663 1747 1710 1623 1723
6206 1702 1553 1423 1532 1775 1486 1466 1541 1669 1615 1658
6207 1703 1576 1527 1423 1748 1550 1458 1493 1666 1633 1596
6208 1704 2915 3260 2803 2976 3055 2980 2854 2927 3105 2870
6209 1705 2876 2791 3352 2805 2825 2997 3057 2838 2792 3015
6210 1706 1384 1102 982 1187 1234 1022 1191 1265 1115 1061
6211 1707 3127 2890 2931 2591 3006 2901 3036 2789 2718 2733
6212 1708 1522 1502 1399 1692 1501 1439 1447 1603 1604 1558
6213 1709 3127 3251 2944 2715 3172 3063 3031 2866 2906 2802
6214 1710 1577 1554 1427 1708 1560 1487 1511 1638 1628 1579
6215 1711 4302 4201 4238 3287 4251 4219 4274 4031 3881 3937
6216 1712 1610 1727 1819 1898 1667 1770 1724 1765 1801 1853
6217 1713 1324 982 1384 1274 1153 1191 1336 1282 1116 1315
6218 1714 3352 3382 2791 2951 3355 3014 2997 3102 3118 2857
6219 1715 2876 2630 2791 2522 2737 2698 2825 2669 2566 2635
6220 1716 1451 1102 1384 1467 1284 1234 1404 1437 1271 1387
6221 1717 1201 930 972 1333 1060 915 1070 1243 1143 1129
6222 1718 2776 2690 2763 2469 2729 2720 2764 2601 2562 2583
6223 1719 3050 2763 2922 2751 2875 2829 2972 2861 2748 2816
6224 1720 2751 2623 2469 2763 2682 2539 2590 2748 2687 2583
6225 1721 2913 2874 2776 2561 2884 2815 2836 2703 2691 2660
6226 1722 1848 1800 1994 1870 1823 1901 1920 1852 1828 1927
6227 1723 3067 3286 2912 2604 3164 3072 2990 2771 2828 2724
6228 1724 1818 1804 1939 1899 1806 1875 1884 1856 1842 1913
6229 1725 2722 2814 3080 2763 2766 2926 2860 2732 2784 2883
6230 1726 1201 1495 1544 1467 1346 1513 1386 1295 1422 1482
6231 1727 1399 1292 1076 1201 1329 1158 1241 1275 1231 1101
6232 1728 2944 2796 2715 3251 2859 2755 2802 3063 2957 2906
6233 1729 1484 1427 1708 1577 1449 1579 1593 1524 1511 1638
6234 1730 3050 2776 2763 2751 2881 2764 2875 2861 2762 2748
6235 1731 2623 2552 2386 2521 2576 2466 2496 2563 2534 2444
6236 1732 972 936 1467 1333 942 1227 1229 1129 1130 1376
6237 1733 2763 2803 3080 2588 2780 2921 2883 2667 2686 2772
6238 1734 2757 2513 2722 2588 2620 2610 2730 2663 2547 2657
6239 1735 4236 3289 3382 3566 3944 3327 3973 4034 3405 3452
6240 1736 4236 3289 3566 4303 3944 3405 4034 4270 4024 4113
6241 1737 3289 3382 3566 2708 3327 3452 3405 2903 2935 2955
6242 1738 1479 1503 1324 1789 1478 1401 1392 1636 1650 1594
6243 1739 2679 2551 2427 2591 2611 2489 2542 2628 2565 2505
6244 1740 1890 2026 1929 1936 1969 1980 1902 1905 1986 1923
6245 1741 3251 2931 3056 2715 3071 2985 3142 2906 2799 2851
6246 1742 1764 1577 1798 1708 1673 1696 1781 1729 1638 1755
6247 1743 2469 2623 2386 2521 2539 2496 2424 2488 2563 2444
6248 1744 2596 2452 2376 2525 2524 2411 2476 2558 2486 2437
6249 1745 2595 2465 2451 2518 2526 2456 2523 2553 2485 2479
6250 1746 2151 2026 2084 1929 2094 2062 2119 2047 1980 2006
6251 1747 1540 1664 1702 1527 1595 1677 1617 1519 1586 1613
6252 1748 3467 3935 2877 2915 3700 3215 3091 3114 3245 2885
6253 1749 1076 972 1230 1521 1009 1078 1140 1314 1257 1380
6254 1750 2822 3069 2873 2617 2928 2954 2846 2699 2785 2727
6255 1751 1730 1818 1967 1899 1778 1893 1850 1808 1856 1928
6256 1752 2690 2776 2522 2469 2729 2636 2592 2562 2601 2490
6257 1753 972 1076 1201 1521 1009 1101 1070 1257 1314 1320
6258 1754 4182 4303 4239 3097 4247 4275 4211 3624 3910 3764
6259 1755 1728 1587 1820 1832 1656 1715 1771 1779 1717 1814
6260 1756 1751 1540 1702 1832 1646 1617 1721 1780 1685 1762
6261 1757 3935 3880 2877 4182 3914 3189 3215 4086 4088 3390
6262 1758 1216 1402 1384 1187 1305 1365 1287 1171 1272 1265
6263 1759 3137 3298 2791 2805 3204 2986 2924 2940 2995 2792
6264 1760 1652 1484 1725 1708 1569 1614 1679 1668 1593 1706
6265 1761 1652 1484 1708 1577 1569 1593 1668 1599 1524 1638
6266 1762 2796 2882 2492 2715 2840 2658 2624 2755 2787 2581
6267 1763 2796 2882 2715 3251 2840 2787 2755 2957 3038 2906
6268 1764 1451 1563 1725 1684 1514 1639 1601 1571 1621 1688
6269 1765 2708 2630 2492 2460 2668 2554 2580 2567 2537 2467
6270 1766 2427 2551 2316 2591 2489 2425 2371 2505 2565 2432
6271 1767 1479 1324 1384 1563 1392 1336 1411 1494 1448 1480
6272 1768 3382 3289 2791 2708 3327 2977 3014 2935 2903 2749
6273 1769 2027 2152 2079 1967 2095 2117 2055 1999 2065 2017
6274 1770 1687 1503 1728 1832 1597 1619 1698 1750 1678 1779
6275 1771 1532 1506 1730 1423 1510 1627 1631 1466 1443 1581
6276 1772 3221 4201 4302 3287 3830 4251 3998 3244 3881 4031
6277 1773 1610 1573 1727 1898 1585 1640 1667 1765 1759 1801
6278 1774 2763 2690 2521 2469 2720 2594 2627 2583 2562 2488
6279 1775 1192 1423 1520 1031 1309 1455 1351 1081 1222 1278
6280 1776 3465 3251 2715 2882 3337 2906 2953 3093 3038 2787
6281 1777 1577 1672 1708 1652 1625 1680 1638 1599 1653 1668
6282 1778 2858 3126 2976 2588 2983 3051 2908 2705 2781 2741
6283 1779 1264 1423 1136 1506 1330 1286 1200 1383 1443 1321
6284 1780 1553 1775 1748 1423 1669 1758 1654 1486 1615 1596
6285 1781 2666 2757 2858 2588 2700 2797 2759 2622 2663 2705
6286 1782 1892 1960 1775 1899 1921 1872 1830 1885 1918 1826
6287 1783 936 930 1031 1333 898 938 967 1130 1143 1163
6288 1784 1624 1343 1620 1520 1508 1500 1611 1539 1388 1537
6289 1785 1960 1892 1967 1899 1921 1926 1955 1918 1885 1928
6290 1786 2551 2689 2421 2617 2615 2540 2480 2572 2645 2500
6291 1787 2689 2551 2769 2617 2615 2652 2723 2645 2572 2685
6292 1788 2976 3126 2803 2588 3051 2938 2870 2741 2781 2686
6293 1789 1399 1495 1201 1521 1430 1346 1275 1445 1473 1320
6294 1790 2796 2617 2715 2492 2694 2661 2755 2624 2546 2581
6295 1791 1521 1484 1708 1725 1491 1593 1607 1626 1614 1706
6296 1792 2623 2763 2552 2521 2687 2647 2576 2563 2627 2534
6297 1793 2757 2666 2513 2588 2700 2573 2620 2663 2622 2547
6298 1794 2513 2552 2588 2277 2533 2569 2547 2389 2410 2422
6299 1795 2617 2944 2715 2591 2758 2802 2661 2603 2734 2656
6300 1796 1427 1521 1708 1693 1470 1607 1579 1570 1606 1689
6301 1797 2465 2427 2260 2591 2442 2341 2354 2517 2505 2409
6302 1798 1324 1573 1563 1789 1464 1559 1448 1594 1681 1661
6303 1799 3221 3382 2708 3566 3278 2935 2894 3361 3452 2955
6304 1800 1451 1102 1467 972 1284 1271 1437 1208 1012 1229
6305 1801 1664 1702 1527 1800 1677 1613 1586 1736 1741 1675
6306 1802 2877 3467 2915 3067 3091 3114 2885 2949 3248 2973
6307 1803 2595 2465 2518 2688 2526 2485 2553 2640 2559 2593
6308 1804 3945 4201 3221 3887 4100 3830 3508 3920 4101 3453
6309 1805 1610 1545 1573 1898 1564 1548 1585 1765 1732 1759
6310 1806 2751 2469 2561 2776 2590 2512 2648 2762 2601 2660
6311 1807 1818 1624 1804 1899 1726 1720 1806 1856 1767 1842
6312 1808 1848 1800 1870 1702 1823 1828 1852 1776 1741 1788
6313 1809 3067 3286 2604 2877 3164 2828 2771 2949 3043 2716
6314 1810 2805 2690 2522 2521 2745 2592 2650 2642 2594 2514
6315 1811 2858 3080 2588 2722 2963 2772 2705 2777 2860 2657
6316 1812 2525 2666 2445 2376 2589 2543 2481 2437 2503 2404
6317 1813 3056 2931 2767 2715 2985 2845 2889 2851 2799 2725
6318 1814 1764 1798 1954 1708 1781 1878 1865 1729 1755 1838
6319 1815 3887 3945 2882 3221 3920 3230 3188 3453 3508 3030
6320 1816 1545 1763 1652 1898 1655 1699 1588 1732 1813 1784
6321 1817 4244 3566 3382 3221 4048 3452 3985 3913 3361 3278
6322 1818 2596 2376 2513 2666 2476 2433 2549 2629 2503 2573
6323 1819 3282 3056 2932 2715 3149 2992 3089 2909 2851 2790
6324 1820 1798 1862 2009 1708 1825 1935 1906 1755 1783 1871
6325 1821 2551 2421 2316 2617 2480 2363 2425 2572 2500 2439
6326 1822 1624 1620 1804 1520 1611 1719 1720 1539 1537 1644
6327 1823 2588 2858 2722 2757 2705 2777 2657 2663 2797 2730
6328 1824 2690 2803 2521 2915 2743 2651 2594 2775 2854 2678
6329 1825 3067 2912 2761 2604 2990 2819 2892 2771 2724 2665
6330 1826 1994 1800 1976 1870 1901 1888 1982 1927 1828 1907
6331 1827 936 1031 1187 1467 967 1088 1035 1227 1239 1307
6332 1828 2776 2874 2805 2522 2815 2835 2786 2636 2672 2650
6333 1829 2776 2874 2522 2561 2815 2672 2636 2660 2691 2538
6334 1830 2715 3465 2882 3282 2953 3093 2787 2909 3376 3042
6335 1831 1672 1708 1652 1862 1680 1668 1653 1773 1783 1761
6336 1832 3935 3137 4182 2877 3451 3688 4086 3215 2989 3390
6337 1833 3935 3137 2877 2915 3451 2989 3215 3245 3012 2885
6338 1834 1402 1540 1587 1832 1462 1552 1497 1641 1685 1717
6339 1835 1324 1533 1573 1789 1420 1543 1464 1594 1662 1681
6340 1836 1399 1076 1427 1521 1241 1256 1398 1445 1314 1470
6341 1837 1423 1527 1520 1870 1458 1512 1455 1665 1714 1701
6342 1838 2679 2756 2890 2465 2704 2811 2768 2556 2582 2634
6343 1839 1136 1031 1343 1423 1063 1180 1228 1286 1222 1352
6344 1840 2679 2890 3123 2769 2768 3008 2844 2711 2810 2905
6345 1841 1521 1451 1725 1467 1477 1601 1626 1460 1437 1582
6346 1842 2630 2617 2492 2310 2621 2546 2554 2457 2446 2390
6347 1843 1427 1399 1521 1693 1398 1445 1470 1570 1562 1606
6348 1844 1554 1764 1693 1708 1663 1723 1623 1628 1729 1689
6349 1845 2931 3127 2591 2715 3036 2789 2733 2799 2866 2656
6350 1846 1540 1751 1587 1832 1646 1660 1552 1685 1780 1717
6351 1847 2976 3067 2761 2604 3026 2892 2856 2739 2771 2665
6352 1848 1800 1748 1976 1870 1774 1868 1888 1828 1793 1907
6353 1849 4244 3566 3221 3287 4048 3361 3913 3932 3389 3244
6354 1850 3069 2822 2689 2617 2928 2752 2837 2785 2699 2645
6355 1851 1527 1192 1520 1187 1368 1351 1512 1342 1162 1355
6356 1852 1192 1520 1187 1031 1351 1355 1162 1081 1278 1088
6357 1853 3887 3282 4056 2899 3554 3650 3974 3190 3049 3302
6358 1854 1862 1763 1940 1898 1803 1854 1896 1859 1813 1910
6359 1855 1544 1495 1752 1467 1513 1632 1645 1482 1422 1591
6360 1856 2874 2822 2522 2561 2850 2655 2672 2691 2677 2538
6361 1857 1384 1563 1684 1479 1480 1621 1551 1411 1494 1556
6362 1858 2708 2791 2460 3289 2749 2598 2567 2903 2977 2714
6363 1859 2296 2451 2249 2290 2369 2342 2266 2287 2361 2259
6364 1860 2297 2152 2136 2291 2223 2140 2214 2288 2218 2208
6365 1861 3069 2769 2944 2617 2888 2841 3002 2785 2685 2758
6366 1862 2769 2944 2617 2591 2841 2758 2685 2674 2734 2603
6367 1863 3887 4056 4238 3287 3974 4170 4116 3489 3621 3937
6368 1864 1940 1763 1819 1898 1854 1787 1879 1910 1813 1853
6369 1865 1399 1076 1521 1201 1241 1314 1445 1275 1101 1320
6370 1866 2617 2769 2591 2551 2685 2674 2603 2572 2652 2565
6371 1867 1521 1708 1693 1725 1607 1689 1606 1626 1706 1691
6372 1868 2715 2617 2591 2492 2661 2603 2656 2581 2546 2536
6373 1869 2876 2791 2805 2522 2825 2792 2838 2669 2635 2650
6374 1870 1384 1102 1187 1467 1234 1115 1265 1387 1271 1307
6375 1871 1967 1892 1730 1899 1926 1810 1850 1928 1885 1808
6376 1872 2679 2427 2465 2591 2542 2442 2556 2628 2505 2517
6377 1873 1848 1751 1702 2005 1796 1721 1776 1924 1883 1866
6378 1874 3880 3286 2877 3097 3553 3043 3189 3370 3150 2961
6379 1875 3286 3880 4057 3097 3553 3971 3651 3150 3370 3498
6380 1876 1751 1848 1941 2005 1796 1891 1847 1883 1924 1977
6381 1877 1695 1620 1333 1467 1651 1496 1549 1574 1525 1376
6382 1878 1522 1740 1692 1399 1635 1709 1603 1447 1583 1558
6383 1879 2427 2316 2260 2591 2371 2282 2341 2505 2432 2409
6384 1880 1730 1892 1775 1899 1810 1830 1746 1808 1885 1826
6385 1881 1399 1521 1693 1495 1445 1606 1562 1430 1473 1580
6386 1882 2623 2763 2521 2469 2687 2627 2563 2539 2583 2488
6387 1883 1740 1764 1936 1693 1747 1849 1844 1710 1723 1816
6388 1884 2931 2890 2688 2591 2901 2782 2794 2733 2718 2632
6389 1885 4239 4057 3880 3097 4171 3971 4112 3764 3498 3370
6390 1886 1941 1820 1751 1832 1880 1785 1847 1876 1814 1780
6391 1887 2689 2769 3069 2617 2723 2888 2837 2645 2685 2785
6392 1888 1201 1544 1333 1467 1386 1433 1243 1295 1482 1376
6393 1889 2079 1960 1967 1899 2021 1955 2017 1995 1918 1928
6394 1890 1763 1545 1610 1898 1655 1564 1674 1813 1732 1765
6395 1891 1527 1540 1402 1702 1519 1462 1450 1613 1617 1566
6396 1892 1540 1402 1702 1832 1462 1566 1617 1685 1641 1762
6397 1893 2858 2666 2588 2445 2759 2622 2705 2616 2543 2515
6398 1894 1728 1587 1832 1479 1656 1717 1779 1600 1530 1676
6399 1895 2751 2469 2776 2763 2590 2601 2762 2748 2583 2764
6400 1896 2469 2386 2225 2521 2424 2305 2339 2488 2444 2355
6401 1897 3566 4328 4303 3424 4138 4325 4113 3485 4104 4076
6402 1898 3566 4328 3424 3287 4138 4104 3485 3389 4038 3316
6403 1899 4303 3566 3424 3289 4113 3485 4076 4024 3405 3345
6404 1900 3566 3424 3289 2779 3485 3345 3405 3046 3011 2971
6405 1901 3566 3424 2779 3287 3485 3011 3046 3389 3316 2958
6406 1902 3289 3566 2779 2708 3405 3046 2971 2903 2955 2738
6407 1903 1521 1451 1467 972 1477 1437 1460 1257 1208 1229
6408 1904 2763 2521 2588 2552 2627 2548 2667 2647 2534 2569
6409 1905 2084 2026 1936 1929 2062 1986 2016 2006 1980 1923
6410 1906 3221 4201 3287 3887 3830 3881 3244 3453 4101 3489
6411 1907 1402 1527 1702 1520 1450 1613 1566 1429 1512 1589
6412 1908 3137 2877 2915 2805 2989 2885 3012 2940 2817 2848
6413 1909 936 1102 1467 1187 999 1271 1227 1035 1115 1307
6414 1910 2791 2630 2460 2522 2698 2537 2598 2635 2566 2478
6415 1911 1451 1384 1684 1467 1404 1551 1571 1437 1387 1568
6416 1912 2521 2803 2588 2915 2651 2686 2548 2678 2854 2709
6417 1913 2465 2260 2249 2518 2354 2252 2345 2485 2375 2368
6418 1914 3080 2588 2722 2763 2772 2657 2860 2883 2667 2732
6419 1915 1031 936 1333 1467 967 1130 1163 1239 1227 1376
6420 1916 1495 1399 1692 1693 1430 1558 1592 1580 1562 1683
6421 1917 1939 1967 1899 2136 1946 1928 1913 2045 2057 2022
6422 1918 1503 1687 1789 1832 1597 1733 1650 1678 1750 1795
6423 1919 2858 2976 2701 2430 2908 2820 2774 2612 2644 2555
6424 1920 1748 1775 1937 1899 1758 1861 1845 1805 1826 1909
6425 1921 2452 2376 2525 2291 2411 2437 2486 2362 2318 2403
6426 1922 1620 1343 1333 1520 1500 1319 1496 1537 1388 1364
6427 1923 2521 2588 2552 2277 2548 2569 2534 2384 2422 2410
6428 1924 2191 2334 2205 2168 2257 2264 2198 2171 2245 2175
6429 1925 2964 2692 2575 2602 2808 2633 2735 2744 2641 2574
6430 1926 4056 3454 2899 3282 3833 3098 3302 3650 3354 3049
6431 1927 2965 3455 2731 2912 3163 2969 2823 2925 3100 2793
6432 1928 1941 2071 2005 1848 2008 2033 1977 1891 1972 1924
6433 1929 2190 2070 2110 2009 2128 2080 2141 2103 2035 2050
6434 1930 2502 2693 2449 2395 2586 2557 2472 2441 2531 2415
6435 1931 2501 2333 2319 2394 2418 2325 2405 2440 2359 2347
6436 1932 1695 1544 1809 1467 1616 1686 1760 1574 1482 1643
6437 1933 2688 2890 2756 2465 2782 2811 2712 2559 2634 2582
6438 1934 1740 1936 1890 1929 1844 1905 1811 1827 1923 1902
6439 1935 1563 1573 1652 1898 1559 1608 1602 1739 1759 1784
6440 1936 3221 2708 2882 2600 2894 2783 3030 2795 2638 2697
6441 1937 1730 1775 1532 1423 1746 1658 1631 1581 1615 1466
6442 1938 1740 1554 1693 1399 1647 1623 1710 1583 1471 1562
6443 1939 3127 2890 2591 2769 3006 2718 2789 2902 2810 2674
6444 1940 1764 1693 1708 1954 1723 1689 1729 1865 1824 1838
6445 1941 2666 2588 2445 2513 2622 2515 2543 2573 2547 2475
6446 1942 2588 2445 2513 2277 2515 2475 2547 2422 2351 2389
6447 1943 2591 2931 2715 2767 2733 2799 2656 2664 2845 2725
6448 1944 2630 2876 2822 2522 2737 2849 2707 2566 2669 2655
6449 1945 1545 1652 1573 1898 1588 1608 1548 1732 1784 1759
6450 1946 2513 2376 2277 2445 2433 2321 2389 2475 2404 2351
6451 1947 2513 2376 2445 2666 2433 2404 2475 2573 2503 2543
6452 1948 3424 3289 2779 2877 3345 2971 3011 3053 3037 2798
6453 1949 2588 2858 2445 2430 2705 2616 2515 2509 2612 2435
6454 1950 2445 2588 2430 2338 2515 2509 2435 2391 2462 2385
6455 1951 2430 2445 2338 2309 2435 2391 2385 2367 2373 2317
6456 1952 2430 2445 2309 2511 2435 2373 2367 2464 2471 2400
6457 1953 2588 2430 2338 2521 2509 2385 2462 2548 2470 2423
6458 1954 2445 2588 2338 2277 2515 2462 2391 2351 2422 2311
6459 1955 2338 2430 2309 2474 2385 2367 2317 2398 2447 2379
6460 1956 2445 2338 2309 2277 2391 2317 2373 2351 2311 2278
6461 1957 2338 2588 2521 2277 2462 2548 2423 2311 2422 2384
6462 1958 2588 2430 2521 2474 2509 2470 2548 2520 2447 2491
6463 1959 2588 2858 2430 2976 2705 2612 2509 2741 2908 2644
6464 1960 2430 2338 2521 2474 2385 2423 2470 2447 2398 2491
6465 1961 2701 2976 2761 2430 2820 2856 2726 2555 2644 2571
6466 1962 1748 1937 1976 1899 1845 1953 1868 1805 1909 1915
6467 1963 2591 3127 2769 2944 2789 2902 2674 2734 3031 2841
6468 1964 2084 1936 2123 1992 2016 2038 2111 2032 1956 2058
6469 1965 2688 2518 2507 2315 2593 2508 2587 2477 2407 2401
6470 1966 4201 4238 3287 3887 4219 3937 3881 4101 4116 3489
6471 1967 1994 1848 1870 2005 1920 1852 1927 1989 1924 1934
6472 1968 3286 2912 2604 2731 3072 2724 2828 2916 2793 2659
6473 1969 2874 2876 2805 2522 2868 2838 2835 2672 2669 2650
6474 1970 1890 1929 1692 1740 1902 1812 1794 1811 1827 1709
6475 1971 1563 1652 1725 1898 1602 1679 1639 1739 1784 1792
6476 1972 2882 2708 2492 2600 2783 2580 2658 2697 2638 2529
6477 1973 1503 1479 1728 1832 1478 1600 1619 1678 1676 1779
6478 1974 2386 2552 2277 2521 2466 2410 2328 2444 2534 2384
6479 1975 2551 2679 2769 2591 2611 2711 2652 2565 2628 2674
6480 1976 2858 2445 2430 2701 2616 2435 2612 2774 2560 2555
6481 1977 2445 2430 2701 2511 2435 2555 2560 2471 2464 2605
6482 1978 2944 3127 2715 2591 3031 2866 2802 2734 2789 2656
6483 1979 1554 1427 1708 1693 1487 1579 1628 1623 1570 1689
6484 1980 2882 2492 2715 2899 2658 2581 2787 2865 2643 2770
6485 1981 1725 1652 1708 1862 1679 1668 1706 1769 1761 1783
6486 1982 1333 1544 1695 1467 1433 1616 1549 1376 1482 1574
6487 1983 1343 1031 1333 1520 1180 1163 1319 1388 1278 1364
6488 1984 1520 1187 1031 1467 1355 1088 1278 1457 1307 1239
6489 1985 2421 2689 2561 2822 2540 2619 2487 2577 2752 2677
6490 1986 1587 1820 1832 1751 1715 1814 1717 1660 1785 1780
6491 1987 2079 2126 1937 1899 2102 2041 2012 1995 2014 1909
6492 1988 2511 2525 2701 2445 2516 2613 2605 2471 2481 2560
6493 1989 1610 1819 1763 1898 1724 1787 1674 1765 1853 1813
6494 1990 2465 2451 2518 2249 2456 2479 2485 2345 2342 2368
6495 1991 1804 1620 1695 1704 1719 1651 1743 1745 1642 1682
6496 1992 1544 1752 1809 1467 1645 1777 1686 1482 1591 1643
6497 1993 1554 1693 1399 1427 1623 1562 1471 1487 1570 1398
6498 1994 1563 1725 1684 1900 1639 1688 1621 1753 1802 1791
6499 1995 2492 2708 2460 2600 2580 2567 2467 2529 2638 2506
6500 1996 2316 2421 2182 2310 2363 2295 2240 2302 2352 2235
6501 1997 1936 1764 1954 1693 1849 1865 1938 1816 1723 1824
6502 1998 2931 2688 2767 2591 2794 2717 2845 2733 2632 2664
6503 1999 4182 4239 3880 3097 4211 4112 4088 3624 3764 3370
6504 2000 4244 3221 4302 3287 3913 3998 4272 3932 3244 4031
6505 2001 1573 1533 1727 1789 1543 1630 1640 1681 1662 1749
6506 2002 1725 1451 1684 1467 1601 1571 1688 1582 1437 1568
6507 2003 2630 2492 2460 2310 2554 2467 2537 2457 2390 2372
6508 2004 4303 4182 3289 3424 4247 3859 4024 4076 3917 3345
6509 2005 4303 4182 3424 3097 4247 3917 4076 3910 3624 3201
6510 2006 2932 3056 2767 2715 2992 2889 2832 2790 2851 2725
6511 2007 1798 2009 1954 1708 1906 1981 1878 1755 1871 1838
6512 2008 1748 1800 1527 1870 1774 1675 1633 1793 1828 1714
6513 2009 3067 2976 2915 2604 3026 2927 2973 2771 2739 2719
6514 2010 3289 4182 3137 2877 3859 3688 3194 3037 3390 2989
6515 2011 1587 1479 1402 1832 1530 1428 1497 1717 1676 1641
6516 2012 1870 1848 1702 2005 1852 1776 1788 1934 1924 1866
6517 2013 3286 2604 2877 3097 2828 2716 3043 3150 2773 2961
6518 2014 1402 1479 1384 1684 1428 1411 1365 1531 1556 1551
6519 2015 3289 3137 2791 2877 3194 2924 2977 3037 2989 2804
6520 2016 1479 1503 1789 1832 1478 1650 1636 1676 1678 1795
6521 2017 972 1201 1333 1467 1070 1243 1129 1229 1295 1376
6522 2018 1520 1527 1187 1402 1512 1342 1355 1429 1450 1272
6523 2019 972 1201 1467 1521 1070 1295 1229 1257 1320 1460
6524 2020 2791 3137 2805 2877 2924 2940 2792 2804 2989 2817
6525 2021 1402 1384 1187 1520 1365 1265 1272 1429 1413 1355
6526 2022 2701 2761 2511 2430 2726 2625 2605 2555 2571 2464
6527 2023 2126 1976 1937 1899 2054 1953 2041 2014 1915 1909
6528 2024 3282 2932 3454 2899 3089 3121 3354 3049 2891 3098
6529 2025 2009 1862 2070 2110 1935 1974 2035 2050 1988 2080
6530 2026 2376 2452 2297 2291 2411 2370 2326 2318 2362 2288
6531 2027 2152 2079 1967 2136 2117 2017 2065 2140 2108 2057
6532 2028 1479 1324 1563 1789 1392 1448 1494 1636 1594 1661
6533 2029 1495 1692 1752 1693 1592 1711 1632 1580 1683 1705
6534 2030 1527 1423 1748 1870 1458 1596 1633 1714 1665 1793
6535 2031 2803 2915 2976 2588 2854 2927 2870 2686 2709 2741
6536 2032 2964 3454 2932 2575 3162 3121 2942 2735 2839 2713
6537 2033 1940 2070 1862 2110 2007 1974 1896 2020 2080 1988
6538 2034 3282 3887 2882 2899 3554 3188 3042 3049 3190 2865
6539 2035 1763 1862 1652 1898 1803 1761 1699 1813 1859 1784
6540 2036 2296 2151 2290 2249 2222 2217 2287 2266 2193 2259
6541 2037 1384 1187 1520 1467 1265 1355 1413 1387 1307 1457
6542 2038 1939 1804 2029 1899 1875 1925 1984 1913 1842 1952
6543 2039 3566 3221 3287 2779 3361 3244 3389 3046 2945 2958
6544 2040 3566 3221 2779 2708 3361 2945 3046 2955 2894 2738
6545 2041 3221 2779 2708 2600 2945 2738 2894 2795 2676 2638
6546 2042 2912 2761 2604 2607 2819 2665 2724 2742 2681 2579
6547 2043 1976 1994 1870 2168 1982 1927 1907 2076 2083 2025
6548 2044 2451 2518 2249 2290 2479 2368 2342 2361 2397 2259
6549 2045 2445 2525 2376 2309 2481 2437 2404 2373 2406 2329
6550 2046 1343 1506 1136 1423 1414 1321 1228 1352 1443 1286
6551 2047 4057 3455 3286 2731 3834 3357 3651 3106 2969 2916
6552 2048 2890 2591 2769 2679 2718 2674 2810 2768 2628 2711
6553 2049 2890 2591 2679 2465 2718 2628 2768 2634 2517 2556
6554 2050 2338 2309 2277 2029 2317 2278 2311 2164 2148 2149
6555 2051 1399 1692 1693 1740 1558 1683 1562 1583 1709 1710
6556 2052 1692 1693 1740 1929 1683 1710 1709 1812 1807 1827
6557 2053 2249 2260 2051 2315 2252 2150 2144 2271 2281 2163
6558 2054 2501 2692 2394 2575 2585 2530 2440 2535 2633 2473
6559 2055 2502 2334 2395 2205 2419 2360 2441 2335 2264 2279
6560 2056 2465 2518 2688 2315 2485 2593 2559 2382 2407 2477
6561 2057 2152 2079 2136 2291 2117 2108 2140 2218 2181 2208
6562 2058 2805 2690 2521 2915 2745 2594 2642 2848 2775 2678
6563 2059 1800 1870 1702 1527 1828 1788 1741 1675 1714 1613
6564 2060 1870 1702 1527 1520 1788 1613 1714 1701 1589 1512
6565 2061 2604 3067 2877 2915 2771 2949 2716 2719 2973 2885
6566 2062 2877 2604 2915 2474 2716 2719 2885 2639 2532 2653
6567 2063 1695 1809 1975 1704 1760 1887 1841 1682 1731 1834
6568 2064 2522 2776 2561 2469 2636 2660 2538 2490 2601 2512
6569 2065 2561 2522 2469 2225 2538 2490 2512 2380 2358 2339
6570 2066 3221 3287 2779 2600 3244 2958 2945 2795 2824 2676
6571 2067 2521 2338 2277 2225 2423 2311 2384 2355 2270 2246
6572 2068 2136 2297 2291 2376 2214 2288 2208 2242 2326 2318
6573 2069 4056 3887 2899 3287 3974 3190 3302 3621 3489 3047
6574 2070 2690 2522 2521 2469 2592 2514 2594 2562 2490 2488
6575 2071 2511 2525 2445 2309 2516 2481 2471 2400 2406 2373
6576 2072 1936 1740 1693 1929 1844 1710 1816 1923 1827 1807
6577 2073 2890 2688 2591 2465 2782 2632 2718 2634 2559 2517
6578 2074 2912 3286 3455 2731 3072 3357 3100 2793 2916 2969
6579 2075 1848 1994 2071 2005 1920 2023 1972 1924 1989 2033
6580 2076 2877 3880 3097 4182 3189 3370 2961 3390 4088 3624
6581 2077 2617 2630 2822 2310 2621 2707 2699 2446 2457 2519
6582 2078 2791 2805 2522 2460 2792 2650 2635 2598 2599 2478
6583 2079 1941 1751 2005 1832 1847 1883 1977 1876 1780 1912
6584 2080 2430 2588 2976 2474 2509 2741 2644 2447 2520 2662
6585 2081 2376 2445 2309 2277 2404 2373 2329 2321 2351 2278
6586 2082 4182 3289 3424 2877 3859 3345 3917 3390 3037 3053
6587 2083 2421 2689 2822 2617 2540 2752 2577 2500 2645 2699
6588 2084 2249 2260 2315 2518 2252 2281 2271 2368 2375 2407
6589 2085 2319 2501 2394 2575 2405 2440 2347 2431 2535 2473
6590 2086 2449 2502 2395 2205 2472 2441 2415 2313 2335 2279
6591 2087 1727 1573 1789 1898 1640 1681 1749 1801 1759 1836
6592 2088 2507 2518 2290 2315 2508 2397 2392 2401 2407 2289
6593 2089 2333 2190 2110 2166 2256 2141 2210 2244 2170 2122
6594 2090 2693 2965 2731 2607 2809 2823 2695 2646 2750 2654
6595 2091 2071 2191 2205 1994 2129 2198 2127 2023 2087 2090
6596 2092 2084 2123 2290 1992 2111 2207 2186 2032 2058 2132
6597 2093 2779 3289 2708 2460 2971 2903 2738 2584 2714 2567
6598 2094 2708 2779 2460 2600 2738 2584 2567 2638 2676 2506
6599 2095 2791 2805 2460 2877 2792 2599 2598 2804 2817 2614
6600 2096 2617 2591 2492 2316 2603 2536 2546 2439 2432 2378
6601 2097 1693 1521 1725 1752 1606 1626 1691 1705 1618 1690
6602 2098 1967 2079 1899 2136 2017 1995 1928 2057 2108 2022
6603 2099 1775 1748 1423 1899 1758 1596 1615 1826 1805 1703
6604 2100 1936 1954 2123 1992 1938 2044 2038 1956 1958 2058
6605 2101 2767 2688 2507 2315 2717 2587 2626 2504 2477 2401
6606 2102 2151 2084 2290 1992 2119 2186 2217 2067 2032 2132
6607 2103 2084 2151 1929 1992 2119 2047 2006 2032 2067 1951
6608 2104 2882 2715 3282 2899 2787 2909 3042 2865 2770 3049
6609 2105 2338 2521 2474 2225 2423 2491 2398 2270 2355 2324
6610 2106 2822 2522 2561 2421 2655 2538 2677 2577 2463 2487
6611 2107 1620 1695 1704 1467 1651 1682 1642 1525 1574 1584
6612 2108 2430 2309 2474 2761 2367 2379 2447 2571 2498 2578
6613 2109 1936 2084 1929 1992 2016 2006 1923 1956 2032 1951
6614 2110 2591 2715 2492 2420 2656 2581 2536 2494 2545 2443
6615 2111 1708 1693 1725 1949 1689 1691 1706 1837 1822 1839
6616 2112 1423 1520 1031 1343 1455 1278 1222 1352 1388 1180
6617 2113 2110 2190 2009 2166 2141 2103 2050 2122 2170 2093
6618 2114 2290 2322 2507 2315 2300 2413 2392 2289 2303 2401
6619 2115 2322 2290 2123 1992 2300 2207 2219 2142 2132 2058
6620 2116 1804 1620 1704 1520 1719 1642 1745 1644 1537 1609
6621 2117 2882 3887 3221 2899 3188 3453 3030 2865 3190 3000
6622 2118 2386 2277 2225 2521 2328 2246 2305 2444 2384 2355
6623 2119 2291 2323 2126 2309 2301 2221 2209 2286 2304 2197
6624 2120 2323 2291 2511 2309 2301 2393 2414 2304 2286 2400
6625 2121 1333 1031 1467 1520 1163 1239 1376 1364 1278 1457
6626 2122 2291 2126 2079 1899 2209 2102 2181 2098 2014 1995
6627 2123 2511 2291 2525 2309 2393 2403 2516 2400 2286 2406
6628 2124 2607 2511 2761 2309 2550 2625 2681 2429 2400 2498
6629 2125 1976 2126 2168 2030 2054 2143 2076 1998 2073 2099
6630 2126 2932 3454 2899 2575 3121 3098 2891 2713 2839 2706
6631 2127 3424 2779 3287 2600 3011 2958 3316 2833 2676 2824
6632 2128 1343 1624 1423 1520 1508 1523 1352 1388 1539 1455
6633 2129 2309 2338 2474 2107 2317 2398 2379 2192 2213 2263
6634 2130 2630 2460 2522 2310 2537 2478 2566 2457 2372 2408
6635 2131 2932 2767 2602 2420 2832 2680 2746 2618 2564 2497
6636 2132 1954 2009 2166 1949 1981 2093 2069 1943 1978 2066
6637 2133 1563 1725 1900 1898 1639 1802 1753 1739 1792 1889
6638 2134 1708 1693 1949 1954 1689 1822 1837 1838 1824 1943
6639 2135 2591 2715 2420 2767 2656 2545 2494 2664 2725 2564
6640 2136 2522 2561 2421 2225 2538 2487 2463 2358 2380 2312
6641 2137 2316 2421 2310 2617 2363 2352 2302 2439 2500 2446
6642 2138 4057 3286 3097 2731 3651 3150 3498 3106 2916 2862
6643 2139 1725 1521 1467 1752 1626 1460 1582 1690 1618 1591
6644 2140 1899 1939 2136 2029 1913 2045 2022 1952 1984 2075
6645 2141 1201 1495 1467 1521 1346 1422 1295 1320 1473 1460
6646 2142 1730 1624 1899 1423 1670 1767 1808 1581 1523 1703
6647 2143 1789 1479 1832 1932 1636 1676 1795 1855 1735 1874
6648 2144 1775 1730 1899 1423 1746 1808 1826 1615 1581 1703
6649 2145 1684 1563 1900 1479 1621 1753 1791 1556 1494 1694
6650 2146 1692 1929 1752 1693 1812 1835 1711 1683 1807 1705
6651 2147 2617 2492 2310 2316 2546 2390 2446 2439 2378 2302
6652 2148 2465 2518 2315 2260 2485 2407 2382 2354 2375 2281
6653 2149 2315 2465 2260 2591 2382 2354 2281 2436 2517 2409
6654 2150 1573 1563 1789 1898 1559 1661 1681 1759 1739 1836
6655 2151 2309 2338 2107 2029 2317 2213 2192 2148 2164 2064
6656 2152 2421 2182 2310 2225 2295 2235 2352 2312 2204 2254
6657 2153 2591 2617 2551 2316 2603 2572 2565 2432 2439 2425
6658 2154 2791 2460 3289 2877 2598 2714 2977 2804 2614 3037
6659 2155 1702 1870 2005 2113 1788 1934 1866 1917 1991 2053
6660 2156 2604 2877 3097 2649 2716 2961 2773 2606 2728 2801
6661 2157 1702 1402 1520 1684 1566 1429 1589 1649 1531 1578
6662 2158 2976 2761 2430 2474 2856 2571 2644 2662 2578 2447
6663 2159 2693 2449 2395 2607 2557 2415 2531 2646 2510 2495
6664 2160 2333 2319 2394 2166 2325 2347 2359 2244 2224 2274
6665 2161 2309 2430 2511 2761 2367 2464 2400 2498 2571 2625
6666 2162 2822 2630 2522 2310 2707 2566 2655 2519 2457 2408
6667 2163 1384 1684 1467 1520 1551 1568 1387 1413 1578 1457
6668 2164 1751 1702 2005 1832 1721 1866 1883 1780 1762 1912
6669 2165 2394 2322 2166 2200 2349 2239 2274 2284 2247 2172
6670 2166 2322 2394 2602 2200 2349 2493 2455 2247 2284 2374
6671 2167 2029 1804 1975 2107 1925 1881 2000 2064 1959 2028
6672 2168 3282 2932 2899 2715 3089 2891 3049 2909 2790 2770
6673 2169 2323 2395 2168 2030 2350 2275 2241 2160 2195 2099
6674 2170 2395 2323 2607 2236 2350 2458 2495 2308 2268 2402
6675 2171 2877 2604 2474 2649 2716 2532 2639 2728 2606 2528
6676 2172 2761 2976 2604 2474 2856 2739 2665 2578 2662 2532
6677 2173 1748 1976 1870 1899 1868 1907 1793 1805 1915 1858
6678 2174 1624 1804 1899 1520 1720 1842 1767 1539 1644 1718
6679 2175 2123 1954 2166 1949 2044 2069 2139 2034 1943 2066
6680 2176 2767 2507 2602 2420 2626 2544 2680 2564 2453 2497
6681 2177 2334 2205 2168 2395 2264 2175 2245 2360 2279 2275
6682 2178 2932 2602 2964 2575 2746 2744 2942 2713 2574 2735
6683 2179 1620 1333 1467 1520 1496 1376 1525 1537 1364 1457
6684 2180 1521 1693 1495 1752 1606 1580 1473 1618 1705 1632
6685 2181 2126 2323 2168 2030 2221 2241 2143 2073 2160 2099
6686 2182 2323 2511 2607 2236 2414 2550 2458 2268 2353 2402
6687 2183 1479 1402 1832 1684 1428 1641 1676 1556 1531 1722
6688 2184 2731 2965 2912 2607 2823 2925 2793 2654 2750 2742
6689 2185 2522 2469 2225 2521 2490 2339 2358 2514 2488 2355
6690 2186 2692 2575 2602 2394 2633 2574 2641 2530 2473 2493
6691 2187 1994 2071 2005 2205 2023 2033 1989 2090 2127 2105
6692 2188 2932 2767 2420 2715 2832 2564 2618 2790 2725 2545
6693 2189 1402 1384 1520 1684 1365 1413 1429 1531 1551 1578
6694 2190 1954 2009 1949 1708 1981 1978 1943 1838 1871 1837
6695 2191 2521 2588 2474 2915 2548 2520 2491 2678 2709 2653
6696 2192 2715 2492 2420 2899 2581 2443 2545 2770 2643 2597
6697 2193 1725 1708 1949 2110 1706 1837 1839 1916 1911 2019
6698 2194 2395 2323 2236 2030 2350 2268 2308 2195 2160 2131
6699 2195 2492 2460 2310 2215 2467 2372 2390 2336 2320 2248
6700 2196 2009 1862 2110 1949 1935 1988 2050 1978 1894 2019
6701 2197 1862 2009 1708 1949 1935 1871 1783 1894 1978 1837
6702 2198 2602 2507 2322 2420 2544 2413 2455 2497 2453 2348
6703 2199 2123 2166 2322 2200 2139 2239 2219 2145 2172 2247
6704 2200 2688 2465 2315 2591 2559 2382 2477 2632 2517 2436
6705 2201 2976 2915 2604 2474 2927 2719 2739 2662 2653 2532
6706 2202 2877 2915 2805 2474 2885 2848 2817 2639 2653 2609
6707 2203 2205 2191 2168 1994 2198 2171 2175 2090 2087 2083
6708 2204 2805 2522 2460 2521 2650 2478 2599 2642 2514 2468
6709 2205 1725 1684 1900 1971 1688 1791 1802 1843 1831 1914
6710 2206 3287 3221 3887 2899 3244 3453 3489 3047 3000 3190
6711 2207 1954 1936 1693 1992 1938 1816 1824 1958 1956 1851
6712 2208 2688 2767 2591 2315 2717 2664 2632 2477 2504 2436
6713 2209 2182 2316 2310 2096 2240 2302 2235 2133 2199 2188
6714 2210 2182 2316 2096 2051 2240 2199 2133 2106 2161 2068
6715 2211 2319 2333 2110 2166 2325 2210 2203 2224 2244 2122
6716 2212 2449 2693 2731 2607 2557 2695 2568 2510 2646 2654
6717 2213 1929 1936 1992 1693 1923 1956 1951 1807 1816 1851
6718 2214 1402 1702 1832 1684 1566 1762 1641 1531 1649 1722
6719 2215 2309 2376 2277 2136 2329 2321 2278 2206 2242 2201
6720 2216 2779 3289 2460 2877 2971 2714 2584 2798 3037 2614
6721 2217 1809 1695 1467 1704 1760 1574 1643 1731 1682 1584
6722 2218 2460 2522 2310 2272 2478 2408 2372 2356 2388 2283
6723 2219 1620 1704 1520 1467 1642 1609 1537 1525 1584 1457
6724 2220 1704 1520 1467 1684 1609 1457 1584 1671 1578 1568
6725 2221 2492 2460 2215 2600 2467 2320 2336 2529 2506 2381
6726 2222 3097 2877 4182 3424 2961 3390 3624 3201 3053 3917
6727 2223 1725 1684 1971 1467 1688 1831 1843 1582 1568 1754
6728 2224 2123 1954 1949 1992 2044 1943 2034 2058 1958 1961
6729 2225 1976 2126 2030 1899 2054 2073 1998 1915 2014 1965
6730 2226 2767 2507 2420 2315 2626 2453 2564 2504 2401 2357
6731 2227 2005 2205 2113 1870 2105 2147 2053 1934 2043 1991
6732 2228 3097 3424 2649 2877 3201 2880 2801 2961 3053 2728
6733 2229 2449 2731 2399 2236 2568 2541 2417 2330 2438 2307
6734 2230 3287 2899 2600 3221 3047 2721 2824 3244 3000 2795
6735 2231 2319 2110 2165 2200 2203 2130 2233 2250 2134 2169
6736 2232 1704 1520 1684 1873 1609 1578 1671 1786 1712 1772
6737 2233 1704 1520 1873 1899 1609 1712 1786 1790 1718 1863
6738 2234 1975 2029 2107 2225 2000 2064 2028 2104 2121 2156
6739 2235 2912 2604 2731 2607 2724 2659 2793 2742 2579 2654
6740 2236 1789 1479 1932 1900 1636 1735 1855 1829 1694 1904
6741 2237 1932 1789 1900 1898 1855 1829 1904 1897 1836 1889
6742 2238 2518 2249 2290 2315 2368 2259 2397 2407 2271 2289
6743 2239 1949 2123 1992 2200 2034 2058 1961 2074 2145 2082
6744 2240 2507 2420 2315 2322 2453 2357 2401 2413 2348 2303
6745 2241 1870 1994 2005 2205 1927 1989 1934 2043 2090 2105
6746 2242 2182 2225 1975 2146 2204 2104 2078 2158 2178 2060
6747 2243 2182 2225 2146 2310 2204 2178 2158 2235 2254 2220
6748 2244 2146 2182 2310 2096 2158 2235 2220 2116 2133 2188
6749 2245 2915 2976 2588 2474 2927 2741 2709 2653 2662 2520
6750 2246 2522 2310 2272 2225 2408 2283 2388 2358 2254 2243
6751 2247 2168 1976 2030 1870 2076 1998 2099 2025 1907 1945
6752 2248 1976 2030 1870 1899 1998 1945 1907 1915 1965 1858
6753 2249 1624 1423 1520 1899 1523 1455 1539 1767 1703 1718
6754 2250 2166 2394 2200 2319 2274 2284 2172 2224 2347 2250
6755 2251 2607 2395 2236 2449 2495 2308 2402 2510 2415 2330
6756 2252 1495 1521 1752 1467 1473 1618 1632 1422 1460 1591
6757 2253 2079 2136 2291 1899 2108 2208 2181 1995 2022 2098
6758 2254 1870 1702 1520 1873 1788 1589 1701 1860 1782 1712
6759 2255 1870 1702 1873 2113 1788 1782 1860 1991 1917 1996
6760 2256 1954 1949 1992 1693 1943 1961 1958 1824 1822 1851
6761 2257 1949 1992 1693 1725 1961 1851 1822 1839 1846 1691
6762 2258 2604 3286 2731 3097 2828 2916 2659 2773 3150 2862
6763 2259 2420 2767 2315 2591 2564 2504 2357 2494 2664 2436
6764 2260 2315 2420 2591 2492 2357 2494 2436 2383 2443 2536
6765 2261 2277 2338 2029 2225 2311 2164 2149 2246 2270 2121
6766 2262 1994 1870 2168 2205 1927 2025 2083 2090 2043 2175
6767 2263 2260 2051 2315 2096 2150 2163 2281 2162 2068 2194
6768 2264 2260 2051 2096 2316 2150 2068 2162 2282 2161 2199
6769 2265 2096 2260 2316 2315 2162 2282 2199 2194 2281 2306
6770 2266 2260 2316 2315 2591 2282 2306 2281 2409 2432 2436
6771 2267 1789 1900 1898 1563 1829 1889 1836 1661 1753 1739
6772 2268 2525 2376 2309 2291 2437 2329 2406 2403 2318 2286
6773 2269 1695 1975 1804 1704 1841 1881 1743 1682 1834 1745
6774 2270 1992 1949 2200 2002 1961 2074 2082 1985 1962 2086
6775 2271 1992 1949 2002 1725 1961 1962 1985 1846 1839 1869
6776 2272 1949 2200 2002 2165 2074 2086 1962 2052 2169 2072
6777 2273 2151 2290 2249 1992 2217 2259 2193 2067 2132 2115
6778 2274 1900 1932 1898 2165 1904 1897 1889 2040 2036 2031
6779 2275 1992 1929 1693 1752 1951 1807 1851 1867 1835 1705
6780 2276 1940 1862 1898 2110 1896 1859 1910 2020 1988 2003
6781 2277 1563 1479 1789 1900 1494 1636 1661 1753 1694 1829
6782 2278 1929 2051 1752 1992 1990 1908 1835 1951 2013 1867
6783 2279 1929 2051 1992 2151 1990 2013 1951 2047 2092 2067
6784 2280 2338 2474 2107 2225 2398 2263 2213 2270 2324 2156
6785 2281 2522 2822 2310 2421 2655 2519 2408 2463 2577 2352
6786 2282 2310 2522 2421 2225 2408 2463 2352 2254 2358 2312
6787 2283 2474 2309 2107 2236 2379 2192 2263 2332 2265 2154
6788 2284 1702 2005 1832 1932 1866 1912 1762 1797 1948 1874
6789 2285 2521 2805 2915 2474 2642 2848 2678 2491 2609 2653
6790 2286 1467 1704 1684 1971 1584 1671 1568 1754 1821 1831
6791 2287 2225 2146 2310 2272 2178 2220 2254 2243 2212 2283
6792 2288 2146 2310 2272 2460 2220 2283 2212 2280 2372 2356
6793 2289 2225 2146 2272 2107 2178 2212 2243 2156 2120 2177
6794 2290 2146 2272 2107 2118 2212 2177 2120 2124 2185 2109
6795 2291 2146 2272 2118 2215 2212 2185 2124 2167 2226 2157
6796 2292 2272 2107 2118 2474 2177 2109 2185 2365 2263 2267
6797 2293 2272 2107 2474 2225 2177 2263 2365 2243 2156 2324
6798 2294 2107 2146 2118 1704 2120 2124 2109 1922 1942 1931
6799 2295 2118 2272 2474 2460 2185 2365 2267 2262 2356 2448
6800 2296 2146 2272 2215 2460 2212 2226 2167 2280 2356 2320
6801 2297 2225 2146 2107 1975 2178 2120 2156 2104 2060 2028
6802 2298 2118 2146 2215 1971 2124 2167 2157 2037 2049 2091
6803 2299 2395 2236 2449 2205 2308 2330 2415 2279 2211 2313
6804 2300 2166 2123 1949 2200 2139 2034 2066 2172 2145 2074
6805 2301 1949 2166 2200 2110 2066 2172 2074 2019 2122 2134
6806 2302 2310 2492 2215 2096 2390 2336 2248 2188 2258 2135
6807 2303 2310 2146 2096 2215 2220 2116 2188 2248 2167 2135
6808 2304 2310 2146 2215 2460 2220 2167 2248 2372 2280 2320
6809 2305 2394 2200 2319 2575 2284 2250 2347 2473 2364 2431
6810 2306 1479 1832 1932 1684 1676 1874 1735 1556 1722 1799
6811 2307 2421 2310 2617 2822 2352 2446 2500 2577 2519 2699
6812 2308 1900 1725 1971 2165 1802 1843 1914 2040 1973 2061
6813 2309 2602 2932 2420 2575 2746 2618 2497 2574 2713 2484
6814 2310 2009 2166 1949 2110 2093 2066 1978 2050 2122 2019
6815 2311 1684 1900 1971 1987 1791 1914 1831 1840 1933 1966
6816 2312 2146 2107 1975 1704 2120 2028 2060 1942 1922 1834
6817 2313 1949 2002 1725 2165 1962 1869 1839 2052 2072 1973
6818 2314 2460 2522 2272 2521 2478 2388 2356 2468 2514 2387
6819 2315 2522 2272 2521 2225 2388 2387 2514 2358 2243 2355
6820 2316 1684 1900 1987 1932 1791 1933 1840 1799 1904 1950
6821 2317 1900 1987 1932 2273 1933 1950 1904 2081 2125 2097
6822 2318 2126 2323 2030 2309 2221 2160 2073 2197 2304 2153
6823 2319 1684 1900 1932 1479 1791 1904 1799 1556 1694 1735
6824 2320 1702 1520 1873 1684 1589 1712 1782 1649 1578 1772
6825 2321 1520 1870 1873 1899 1701 1860 1712 1718 1858 1863
6826 2322 1809 1752 2051 2002 1777 1908 1930 1886 1857 2004
6827 2323 2323 2511 2236 2309 2414 2353 2268 2304 2400 2265
6828 2324 2051 2249 2315 1992 2144 2271 2163 2013 2115 2137
6829 2325 2051 2249 1992 2151 2144 2115 2013 2092 2193 2067
6830 2326 1971 1684 1987 1873 1831 1840 1966 1895 1772 1919
6831 2327 1684 1987 1873 1932 1840 1919 1772 1799 1950 1877
6832 2328 1804 2029 1899 2107 1925 1952 1842 1959 2064 1993
6833 2329 2761 2604 2607 2236 2665 2579 2681 2454 2396 2402
6834 2330 2215 2118 1971 2273 2157 2037 2091 2229 2183 2114
6835 2331 1704 1804 1520 1899 1745 1644 1609 1790 1842 1718
6836 2332 2146 2182 2096 1975 2158 2133 2116 2060 2078 2015
6837 2333 1423 1748 1870 1899 1596 1793 1665 1703 1805 1858
6838 2334 2511 2607 2236 2309 2550 2402 2353 2400 2429 2265
6839 2335 2394 2602 2200 2575 2493 2374 2284 2473 2574 2364
6840 2336 2322 2123 2200 1992 2219 2145 2247 2142 2058 2082
6841 2337 2291 2136 2376 2309 2208 2242 2318 2286 2206 2329
6842 2338 1725 1652 1862 2110 1679 1761 1769 1916 1903 1988
6843 2339 2316 2310 2096 2315 2302 2188 2199 2306 2294 2194
6844 2340 2126 2030 1899 2309 2073 1965 2014 2197 2153 2100
6845 2341 1520 1423 1870 1899 1455 1665 1701 1718 1703 1858
6846 2342 2731 2604 3097 2399 2659 2773 2862 2541 2483 2637
6847 2343 1684 1704 1873 1971 1671 1786 1772 1831 1821 1895
6848 2344 3424 2779 2600 2649 3011 2676 2833 2880 2696 2608
6849 2345 3424 2779 2649 2877 3011 2696 2880 3053 2798 2728
6850 2346 2779 2600 2649 2460 2676 2608 2696 2584 2506 2527
6851 2347 2649 2779 2460 2877 2696 2584 2527 2728 2798 2614
6852 2348 1900 1971 1987 2273 1914 1966 1933 2081 2114 2125
6853 2349 1708 1725 1862 2110 1706 1769 1783 1911 1916 1988
6854 2350 2249 2290 2315 1992 2259 2289 2271 2115 2132 2137
6855 2351 2323 2236 2030 2309 2268 2131 2160 2304 2265 2153
6856 2352 2107 2118 2474 2236 2109 2267 2263 2154 2159 2332
6857 2353 1752 1809 1467 2002 1777 1643 1591 1857 1886 1768
6858 2354 2272 2474 2460 2521 2365 2448 2356 2387 2491 2468
6859 2355 2272 2474 2521 2225 2365 2491 2387 2243 2324 2355
6860 2356 2604 2761 2474 2309 2665 2578 2532 2426 2498 2379
6861 2357 2399 2449 2236 2205 2417 2330 2307 2276 2313 2211
6862 2358 2051 1752 1992 2002 1908 1867 2013 2004 1857 1985
6863 2359 2272 2118 2215 2460 2185 2157 2226 2356 2262 2320
6864 2360 1708 1862 1949 2110 1783 1894 1837 1911 1988 2019
6865 2361 2165 2319 2200 2575 2233 2250 2169 2344 2431 2364
6866 2362 1987 1873 1932 2113 1919 1877 1950 2039 1996 2010
6867 2363 1987 1873 2113 2118 1919 1996 2039 2046 2001 2088
6868 2364 1932 1987 2113 2273 1950 2039 2010 2097 2125 2173
6869 2365 1987 1873 2118 1971 1919 2001 2046 1966 1895 2037
6870 2366 2420 2932 2715 2899 2618 2790 2545 2597 2891 2770
6871 2367 2338 2107 2029 2225 2213 2064 2164 2270 2156 2121
6872 2368 2030 2168 1870 2205 2099 2025 1945 2112 2175 2043
6873 2369 2474 2309 2236 2604 2379 2265 2332 2532 2426 2396
6874 2370 1725 1900 1898 2165 1802 1889 1792 1973 2040 2031
6875 2371 1704 1804 1899 2107 1745 1842 1790 1922 1959 1993
6876 2372 2205 2168 2395 2030 2175 2275 2279 2112 2099 2195
6877 2373 2899 2932 2575 2420 2891 2713 2706 2597 2618 2484
6878 2374 2236 2395 2030 2205 2308 2195 2131 2211 2279 2112
6879 2375 1652 1725 1898 2110 1679 1792 1784 1903 1916 2003
6880 2376 2236 2607 2449 2731 2402 2510 2330 2438 2654 2568
6881 2377 2118 1987 1971 2273 2046 1966 2037 2183 2125 2114
6882 2378 2107 2309 2029 1899 2192 2148 2064 1993 2100 1952
6883 2379 2316 2315 2591 2492 2306 2436 2432 2378 2383 2536
6884 2380 1693 1992 1752 1725 1851 1867 1705 1691 1846 1690
6885 2381 2200 2166 2319 2110 2172 2224 2250 2134 2122 2203
6886 2382 1975 1809 2182 2096 1887 2011 2078 2015 1964 2133
6887 2383 1862 1652 1898 2110 1761 1784 1859 1988 1903 2003
6888 2384 2602 2322 2200 2420 2455 2247 2374 2497 2348 2293
6889 2385 2051 2315 2096 2002 2163 2194 2068 2004 2138 2042
6890 2386 1873 1870 2113 2030 1860 1991 1996 1947 1945 2056
6891 2387 1873 1870 2030 1899 1860 1945 1947 1863 1858 1965
6892 2388 1832 1702 1932 1684 1762 1797 1874 1722 1649 1799
6893 2389 2315 2420 2492 2215 2357 2443 2383 2232 2298 2336
6894 2390 2236 2030 2309 2107 2131 2153 2265 2154 2048 2192
6895 2391 2118 2215 2460 2273 2157 2320 2262 2183 2229 2337
6896 2392 2600 2899 2575 2420 2721 2706 2570 2482 2597 2484
6897 2393 2309 2277 2029 2136 2278 2149 2148 2206 2201 2075
6898 2394 2290 2322 2315 1992 2300 2303 2289 2132 2142 2137
6899 2395 2731 2604 2399 2236 2659 2483 2541 2438 2396 2307
6900 2396 2146 2096 2215 1971 2116 2135 2167 2049 2018 2091
6901 2397 1975 1804 1704 2107 1881 1745 1834 2028 1959 1922
6902 2398 2200 1992 2002 2315 2082 1985 2086 2231 2137 2138
6903 2399 2607 2761 2236 2309 2681 2454 2402 2429 2498 2265
6904 2400 2005 1702 2113 1932 1866 1917 2053 1948 1797 2010
6905 2401 2096 2051 2002 1809 2068 2004 2042 1964 1930 1886
6906 2402 2118 1987 2273 2113 2046 2125 2183 2088 2039 2173
6907 2403 3221 2882 2899 2600 3030 2865 3000 2795 2697 2721
6908 2404 2420 2492 2215 2600 2443 2336 2298 2482 2529 2381
6909 2405 2030 1873 1899 2107 1947 1863 1965 2048 1983 1993
6910 2406 2165 2110 1898 1725 2130 2003 2031 1973 1916 1792
6911 2407 2236 2474 2604 2399 2332 2532 2396 2307 2412 2483
6912 2408 2096 2182 2051 1809 2133 2106 2068 1964 2011 1930
6913 2409 2521 2805 2474 2460 2642 2609 2491 2468 2599 2448
6914 2410 2399 2649 2273 2118 2499 2434 2327 2227 2331 2183
6915 2411 2315 2096 2002 2215 2194 2042 2138 2232 2135 2101
6916 2412 2096 2002 2215 1971 2042 2101 2135 2018 1979 2091
6917 2413 2002 2215 1971 2189 2101 2091 1979 2085 2196 2077
6918 2414 1971 2002 2189 2165 1979 2085 2077 2061 2072 2174
6919 2415 2215 1971 2189 2273 2091 2077 2196 2229 2114 2216
6920 2416 2096 2002 1971 1809 2042 1979 2018 1964 1886 1864
6921 2417 2189 1971 2165 2273 2077 2061 2174 2216 2114 2202
6922 2418 2002 2215 2189 2179 2101 2196 2085 2089 2187 2176
6923 2419 2189 2002 2179 2200 2085 2089 2176 2184 2086 2180
6924 2420 2179 2189 2200 2340 2176 2184 2180 2253 2255 2261
6925 2421 2200 2179 2340 2420 2180 2253 2261 2293 2292 2377
6926 2422 2179 2340 2420 2189 2253 2377 2292 2176 2255 2285
6927 2423 2200 2179 2420 2315 2180 2292 2293 2231 2234 2357
6928 2424 2179 2420 2315 2215 2292 2357 2234 2187 2298 2232
6929 2425 2189 2200 2340 2165 2184 2261 2255 2174 2169 2238
6930 2426 2340 2189 2165 2600 2255 2174 2238 2450 2366 2343
6931 2427 2189 2200 2165 2002 2184 2169 2174 2085 2086 2072
6932 2428 2340 2200 2420 2602 2261 2293 2377 2461 2374 2497
6933 2429 2179 2420 2215 2299 2292 2298 2187 2230 2346 2251
6934 2430 2215 2179 2299 2189 2187 2230 2251 2196 2176 2237
6935 2431 2299 2215 2189 2273 2251 2196 2237 2269 2229 2216
6936 2432 2179 2299 2189 2420 2230 2237 2176 2292 2346 2285
6937 2433 2002 2179 2200 2315 2089 2180 2086 2138 2234 2231
6938 2434 2420 2340 2602 2575 2377 2461 2497 2484 2459 2574
6939 2435 2340 2602 2575 2200 2461 2574 2459 2261 2374 2364
6940 2436 2575 2340 2200 2165 2459 2261 2364 2344 2238 2169
6941 2437 2420 2340 2575 2600 2377 2459 2484 2482 2450 2570
6942 2438 2002 2215 2179 2315 2101 2187 2089 2138 2232 2234
6943 2439 2575 2340 2165 2600 2459 2238 2344 2570 2450 2343
6944 2440 2299 2215 2273 2600 2251 2229 2269 2428 2381 2416
6945 2441 2299 2215 2600 2420 2251 2381 2428 2346 2298 2482
6946 2442 2340 2420 2189 2299 2377 2285 2255 2314 2346 2237
6947 2443 2189 2340 2299 2600 2255 2314 2237 2366 2450 2428
6948 2444 2299 2189 2600 2273 2237 2366 2428 2269 2216 2416
6949 2445 2420 2200 2315 2322 2293 2231 2357 2348 2247 2303
6950 2446 2340 2299 2600 2420 2314 2428 2450 2377 2346 2482
6951 2447 1992 2051 2002 2315 2013 2004 1985 2137 2163 2138
6952 2448 2205 2113 1870 2030 2147 1991 2043 2112 2056 1945
6953 2449 2118 2146 1971 1704 2124 2049 2037 1931 1942 1821
6954 2450 2291 2136 2309 1899 2208 2206 2286 2098 2022 2100
6955 2451 2492 2882 2600 2899 2658 2697 2529 2643 2865 2721
6956 2452 1809 1975 1704 1968 1887 1834 1731 1882 1963 1833
6957 2453 1809 1975 1968 2096 1887 1963 1882 1964 2015 2024
6958 2454 1968 1809 2096 1971 1882 1964 2024 1957 1864 2018
6959 2455 2096 1968 1971 2146 2024 1957 2018 2116 2063 2049
6960 2456 2096 1968 2146 1975 2024 2063 2116 2015 1963 2060
6961 2457 1968 2146 1975 1704 2063 2060 1963 1833 1942 1834
6962 2458 1968 1971 2146 1704 1957 2049 2063 1833 1821 1942
6963 2459 1467 1809 1704 1968 1643 1731 1584 1757 1882 1833
6964 2460 3097 2604 2649 2399 2773 2606 2801 2637 2483 2499
6965 2461 2291 2126 1899 2309 2209 2014 2098 2286 2197 2100
6966 2462 2604 2731 2607 2236 2659 2654 2579 2396 2438 2402
6967 2463 2310 2492 2096 2315 2390 2258 2188 2294 2383 2194
6968 2464 2113 2205 2399 2236 2147 2276 2228 2155 2211 2307
6969 2465 2002 1992 1725 1752 1985 1846 1869 1857 1867 1690
6970 2466 1873 1702 1684 1932 1782 1649 1772 1877 1797 1799
6971 2467 2030 2236 2205 2113 2131 2211 2112 2056 2155 2147
6972 2468 2110 2165 2200 1949 2130 2169 2134 2019 2052 2074
6973 2469 1704 1467 1968 1971 1584 1757 1833 1821 1754 1957
6974 2470 2136 1899 2029 2309 2022 1952 2075 2206 2100 2148
6975 2471 2113 1873 2030 2118 1996 1947 2056 2088 2001 2059
6976 2472 2200 2322 1992 2315 2247 2142 2082 2231 2303 2137
6977 2473 1971 1900 2165 2273 1914 2040 2061 2114 2081 2202
6978 2474 1971 2002 2165 1725 1979 2072 2061 1843 1869 1973
6979 2475 1971 2002 1725 1467 1979 1869 1843 1754 1768 1582
6980 2476 2604 2761 2309 2236 2665 2498 2426 2396 2454 2265
6981 2477 2492 2310 2316 2315 2390 2302 2378 2383 2294 2306
6982 2478 1467 1809 1968 1971 1643 1882 1757 1754 1864 1957
6983 2479 1702 1873 2113 1932 1782 1996 1917 1797 1877 2010
6984 2480 1873 1704 1899 2107 1786 1790 1863 1983 1922 1993
6985 2481 2600 2492 2899 2420 2529 2643 2721 2482 2443 2597
6986 2482 2805 2460 2877 2474 2599 2614 2817 2609 2448 2639
6987 2483 2002 1725 1467 1752 1869 1582 1768 1857 1690 1591
6988 2484 2273 2649 2600 2460 2434 2608 2416 2337 2527 2506
6989 2485 2399 2273 2113 2118 2327 2173 2228 2227 2183 2088
6990 2486 2110 2165 1949 1725 2130 2052 2019 1916 1973 1839
6991 2487 2474 2604 2399 2649 2532 2483 2412 2528 2606 2499
6992 2488 2492 2215 2096 2315 2336 2135 2258 2383 2232 2194
6993 2489 2474 2118 2460 2649 2267 2262 2448 2528 2331 2527
6994 2490 1900 1932 2165 2273 1904 2036 2040 2081 2097 2202
6995 2491 2460 2215 2600 2273 2320 2381 2506 2337 2229 2416
6996 2492 1873 1704 2107 2118 1786 1922 1983 2001 1931 2109
6997 2493 2107 1873 2118 2030 1983 2001 2109 2048 1947 2059
6998 2494 1873 1704 2118 1971 1786 1931 2001 1895 1821 2037
6999 2495 2030 2309 2107 1899 2153 2192 2048 1965 2100 1993
7000 2496 1971 2002 1467 1809 1979 1768 1754 1864 1886 1643
7001 2497 2118 2474 2236 2399 2267 2332 2159 2227 2412 2307
7002 2498 2460 2877 2474 2649 2614 2639 2448 2527 2728 2528
7003 2499 2030 2236 2113 2118 2131 2155 2056 2059 2159 2088
7004 2500 2236 2030 2107 2118 2131 2048 2154 2159 2059 2109
7005 2501 2189 2165 2600 2273 2174 2343 2366 2216 2202 2416
7006 2502 2649 2273 2118 2460 2434 2183 2331 2527 2337 2262
7007 2503 2399 2113 2236 2118 2228 2155 2307 2227 2088 2159
7008 2504 2118 2474 2399 2649 2267 2412 2227 2331 2528 2499
7009 end elements
+0
-8426
interface/src/scilab/demos/data/tripod.GiD.msh less more
0 MESH dimension 3 ElemType Tetrahedra Nnode 10
1 Coordinates
2 1 -27.3301 -10 37.3372
3 2 -26.7189 -10 36.2784
4 3 -26.2128 -9.99999 37.9822
5 4 -27.405 -8.6395 37.4669
6 5 -26.7672 -8.63574 36.3622
7 6 -25.5933 -10 36.9092
8 7 -26.2962 -8.56003 38.1266
9 8 -25.5007 -8.67946 36.6293
10 9 -26.1076 -10 35.2197
11 10 -25.199 -9.99999 38.5676
12 11 -27.4268 -7.27148 37.5047
13 12 -24.3081 -10 37.2356
14 13 -26.6146 -7.3152 36.0979
15 14 -25.955 -8.67946 34.9554
16 15 -24.6971 -10 35.5868
17 16 -24.8519 -8.11564 38.9933
18 17 -25.833 -6.85903 38.4382
19 18 -24.6055 -8.67946 35.2892
20 19 -25.4788 -10 34.1305
21 20 -24.0531 -9.99999 39.2292
22 21 -25.1086 -6.90577 36.9623
23 22 -23.9118 -8.22631 37.5605
24 23 -25.8024 -7.35893 34.691
25 24 -27.3954 -5.9042 37.4502
26 25 -23.4087 -10 35.8874
27 26 -23.1683 -10 37.8936
28 27 -25.3261 -8.67946 33.8662
29 28 -24.0695 -10 34.4998
30 29 -26.5566 -5.95245 35.9974
31 30 -23.7331 -8.11564 39.6392
32 31 -25.7782 -5.51017 38.3434
33 32 -24.8499 -10 33.0413
34 33 -24.4148 -6.45261 39.2335
35 34 -22.9611 -9.99999 39.8596
36 35 -23.8084 -8.77128 33.9085
37 36 -22.4273 -8.22631 37.3786
38 37 -24.6634 -5.6254 36.1912
39 38 -25.0052 -7.45075 33.3103
40 39 -27.3109 -4.54596 37.3038
41 40 -25.3572 -6.07856 33.9199
42 41 -21.7035 -10 37.6971
43 42 -21.9034 -10 35.7186
44 43 -22.4883 -10 34.3223
45 44 -24.529 -8.77128 32.4854
46 45 -26.1114 -4.67207 35.2263
47 46 -24.6569 -5.01627 38.9128
48 47 -23.1471 -10 32.934
49 48 -22.9152 -5.99678 35.9781
50 49 -26.016 -4.0403 37.9308
51 50 -22.9287 -6.73241 40.1091
52 51 -22.2403 -8.42037 40.4801
53 52 -22.4121 -7.77047 34.3051
54 53 -24.208 -10 31.9296
55 54 -22.5708 -6.01264 38.0304
56 55 -21.8967 -9.99999 40.4742
57 56 -23.6089 -6.44993 33.7069
58 57 -21.1511 -10 39.0676
59 58 -24.8779 -4.16408 35.8152
60 59 -20.9315 -8.50711 38.2566
61 60 -24.208 -7.54257 31.9296
62 61 -24.56 -6.17037 32.5392
63 62 -22.8879 -8.77128 32.3432
64 63 -27.1738 -3.20498 37.0665
65 64 -23.1921 -5.04987 39.7643
66 65 -26.4599 -3.27796 35.8299
67 66 -23.8871 -8.77128 31.3737
68 67 -24.8438 -3.52997 38.4815
69 68 -20.9829 -10 34.1517
70 69 -24.912 -4.79818 33.1488
71 70 -23.1296 -4.53546 35.6021
72 71 -20.4397 -10 35.5237
73 72 -20.5832 -7.78633 36.1755
74 73 -22.5062 -10 31.824
75 74 -21.5677 -10 32.7569
76 75 -21.1398 -8.42037 41.1155
77 76 -21.0751 -6.29344 38.9084
78 77 -25.8591 -2.70988 37.6589
79 78 -19.8862 -10 36.8929
80 79 -20.3546 -8.50711 39.6383
81 80 -20.9276 -7.77047 34.1232
82 81 -23.5662 -10 30.8178
83 82 -21.4234 -7.01421 40.9895
84 83 -20.7789 -9.99999 41.1195
85 84 -22.8118 -6.54175 32.3262
86 85 -25.2264 -2.76997 36.4187
87 86 -20.0369 -10 39.7109
88 87 -23.1637 -5.16956 32.9358
89 88 -21.4916 -7.77047 32.7398
90 89 -20.3459 -6.88441 38.6756
91 90 -19.8541 -8.3773 35.9427
92 91 -25.2604 -3.40407 33.7524
93 92 -23.3602 -3.56451 39.3471
94 93 -21.6678 -4.56999 36.4551
95 94 -20.7268 -5.57266 36.8272
96 95 -23.7597 -6.38988 31.1529
97 96 -21.7184 -5.33391 40.6612
98 97 -21.0711 -5.5568 34.775
99 98 -19.2858 -10 38.2872
100 99 -24.1116 -5.01769 31.7626
101 100 -26.985 -1.88936 36.7395
102 101 -21.3235 -4.58585 38.5073
103 102 -19.2771 -8.3773 37.3244
104 103 -24.4302 -2.3001 38.3493
105 104 -19.9976 -6.16363 36.5945
106 105 -26.297 -1.94966 35.5477
107 106 -20.342 -6.14777 34.5422
108 107 -23.2707 -7.40275 30.306
109 108 -18.9753 -10 35.3108
110 109 -21.9505 -8.63147 30.7197
111 110 -25.6089 -2.00996 34.3559
112 111 -19.7751 -9.99999 41.6991
113 112 -21.4155 -5.54094 32.7228
114 113 -25.3939 -1.48807 37.4917
115 114 -19.2685 -6.7546 36.3617
116 115 -22.9481 -10 29.7474
117 116 -19.1556 -10 40.626
118 117 -20.8786 -10 31.3258
119 118 -21.8381 -10 30.406
120 119 -19.8585 -8.56003 41.8434
121 120 -21.9202 -3.59903 40.1874
122 121 -20.1772 -7.14205 41.712
123 122 -22.9497 -8.63147 29.7501
124 123 -19.4405 -7.77047 33.924
125 124 -24.7937 -1.54839 36.2488
126 125 -22.5784 -3.04523 34.4754
127 126 -22.3634 -5.38907 31.5495
128 127 -22.5444 -2.41113 37.1418
129 128 -18.3758 -10 36.7063
130 129 -18.9573 -8.66561 40.3997
131 130 -22.9639 -2.33455 39.2076
132 131 -19.2795 -7.17272 40.3347
133 132 -19.197 -10 33.356
134 133 -18.4213 -10 39.2199
135 134 -20.4817 -8.29275 31.4858
136 135 -24.0712 -3.44634 31.6926
137 136 -18.367 -8.3773 35.7435
138 137 -19.74 -10 31.9832
139 138 -21.8744 -6.40194 30.7026
140 139 -23.3113 -5.23719 30.3763
141 140 -18.2108 -8.66561 38.9835
142 141 -20.135 -5.79031 41.6388
143 142 -26.7457 -0.607097 36.3249
144 143 -19.7629 -4.2674 36.57
145 144 -20.4858 -3.43247 36.3146
146 145 -23.9785 -1.08681 38.1416
147 146 -17.7937 -10 38.1327
148 147 -19.6881 -7.77047 31.9612
149 148 -18.2021 -7.04291 38.0208
150 149 -20.1072 -4.25154 34.5178
151 150 -26.0331 -0.687941 35.0906
152 151 -18.8528 -5.88041 39.5955
153 152 -22.9269 -1.65112 35.079
154 153 -20.3596 -3.28058 38.2501
155 154 -20.8302 -3.41661 34.2624
156 155 -22.8223 -6.25006 29.5294
157 156 -19.0337 -4.85837 36.3372
158 157 -21.0826 -2.44565 37.9947
159 158 -18.4816 -6.54175 34.8262
160 159 -24.4197 -2.05222 32.2961
161 160 -22.3229 -3.81772 31.4795
162 161 -20.4055 -6.06322 31.4687
163 162 -20.4013 -4.07464 41.1803
164 163 -18.8488 -5.14378 35.4622
165 164 -22.3857 -8.63171 28.7732
166 165 -17.4168 -8.77128 37.6084
167 166 -22.3301 -10 28.6769
168 167 -18.6699 -10 42.3372
169 168 -25.1431 -0.211355 37.0572
170 169 -21.273 -8.56096 29.4273
171 170 -18.5045 -5.15964 37.5144
172 171 -18.0586 -10 41.2784
173 172 -21.2124 -10 29.3223
174 173 -18.7448 -8.6395 42.4669
175 174 -21.3534 -5.91135 30.2955
176 175 -17.4656 -10 35.1252
177 176 -18.107 -8.63574 41.3622
178 177 -21.5156 -1.97862 39.9185
179 178 -22.1117 -1.18955 36.9718
180 179 -24.3542 -0.310198 35.827
181 180 -25.1845 -0.692438 33.6208
182 181 -19.711 -4.34799 33.4499
183 182 -19.1012 -4.17282 39.1945
184 183 -17.4474 -10 40.2197
185 184 -23.2708 -3.66584 30.3063
186 185 -20.1981 -10 29.9078
187 186 -17.4081 -7.14858 36.6456
188 187 -22.3333 -7.26293 28.6824
189 188 -18.7666 -7.27148 42.5047
190 189 -19.8818 -8.23492 30.2191
191 190 -17.9511 -7.30135 41.0923
192 191 -17.7753 -5.75061 37.2816
193 192 -17.2915 -8.66561 39.9498
194 193 -18.9088 -6.2568 32.3814
195 194 -17.7324 -10 33.1423
196 195 -16.8831 -10 36.5505
197 196 -22.5062 -0.740934 38.8369
198 197 -16.8185 -10 39.1305
199 198 -20.7781 -6.92581 29.5029
200 199 -19.0526 -10 30.5692
201 200 -22.6117 -4.94792 29.1647
202 201 -20.2456 -2.74445 40.9106
203 202 -26.4572 0.634074 35.8252
204 203 -17.1357 -7.33122 39.6799
205 204 -18.7351 -5.9042 42.4502
206 205 -16.6627 -8.66561 38.8606
207 206 -18.0622 -5.34783 34.0996
208 207 -23.5629 0.180962 37.7624
209 208 -18.7594 -8.23492 30.8671
210 209 -17.8932 -5.93859 40.9919
211 210 -21.7377 -1.69338 33.0192
212 211 -19.45 -2.8076 39.7986
213 212 -16.5067 -8.77128 36.0274
214 213 -20.3904 -4.58013 30.7146
215 214 -22.1742 -5.92755 28.4068
216 215 -18.799 -2.96213 36.3128
217 216 -16.9339 -8.48633 33.5827
218 217 -19.9173 -1.68069 37.9178
219 218 -19.5219 -2.12721 36.0574
220 219 -16.1897 -10 38.0413
221 220 -25.6086 0.629577 34.3554
222 221 -19.3956 -6.5855 30.2146
223 222 -17.9608 -10 31.1995
224 223 -22.5025 -0.333597 34.3439
225 224 -16.2423 -10 35.4405
226 225 -16.6188 -10 33.7852
227 226 -21.3383 -4.42825 29.5413
228 227 -20.3825 -2.92205 31.8732
229 228 -16.3417 -7.4369 38.3047
230 229 -20.2449 -1.29228 35.8021
231 230 -20.6402 -0.845758 37.6625
232 231 -24.6786 1.01589 36.6284
233 232 -23.2304 -2.09449 30.2363
234 233 -18.6506 -4.54596 42.3038
235 234 -23.9952 -0.734705 31.561
236 235 -16.7089 -6.03892 38.9407
237 236 -20.5944 -5.59754 29.1848
238 237 -18.4028 -3.05859 35.2449
239 238 -18.9716 -4.5818 31.535
240 239 -15.8687 -8.77128 37.4854
241 240 -21.6722 0.0486418 36.55
242 241 -17.5406 -3.85437 37.2572
243 242 -22.5713 -3.37657 29.0947
244 243 -17.4664 -4.64629 40.2527
245 244 -17.2636 -8.41972 31.7393
246 245 -21.0355 -0.399239 39.5229
247 246 -23.9298 1.00732 35.0918
248 247 -17.9025 -6.77937 31.1277
249 248 -15.5478 -10 36.9296
250 249 -22.0831 0.511033 38.4313
251 250 -24.76 0.625081 32.8857
252 251 -16.8969 -10 31.8138
253 252 -17.1444 -3.95083 36.1893
254 253 -18.0066 -3.15504 34.177
255 254 -15.975 -7.25761 34.4849
256 255 -17.2044 -5.06385 33.1086
257 256 -15.5478 -7.54257 36.9296
258 257 -15.915 -6.14459 37.5656
259 258 -26.1213 1.82662 35.2435
260 259 -17.8894 -2.48916 37.8612
261 260 -21.9122 -4.65864 27.9531
262 261 -19.7813 -1.13802 40.5869
263 262 -18.5136 -3.20498 42.0665
264 263 -19.447 -5.02748 29.5833
265 264 -23.0996 1.38956 37.298
266 265 -17.8152 -3.28107 40.8568
267 266 -15.5693 -8.63147 34.4038
268 267 -15.2269 -8.77128 36.3737
269 268 -21.2979 -2.8569 29.4713
270 269 -16.2822 -4.74662 38.2016
271 270 -19.0076 -1.20771 39.4663
272 271 -19.0743 -1.63265 33.6682
273 272 -16.1669 -8.41972 32.3725
274 273 -15.4012 -10 34.1223
275 274 -25.2501 1.7942 33.7344
276 275 -16.4022 -6.97265 32.0401
277 276 -14.9059 -10 35.8178
278 277 -19.7972 -0.797722 33.4128
279 278 -15.7796 -10 32.4588
280 279 -20.0724 0.269102 37.3215
281 280 -21.29 -1.19883 30.63
282 281 -18.0222 -5.02937 30.4069
283 282 -24.3271 2.19121 36.0196
284 283 -22.0548 0.160957 31.9546
285 284 -20.5922 -4.12659 28.3798
286 285 -16.6309 -3.3814 38.8057
287 286 -23.2743 -0.2549 30.3123
288 287 -16.3577 -4.15488 34.8267
289 288 -15.1283 -6.34865 36.203
290 289 -20.4903 0.740755 39.2155
291 290 -18.6781 -1.7291 32.6003
292 291 -15.4955 -4.95067 36.839
293 292 -18.3248 -1.88936 41.7395
294 293 -22.1694 -2.26902 28.3985
295 294 -24.0391 1.10489 31.6369
296 295 -20.9136 0.766542 34.2223
297 296 -15.5555 -6.06369 33.7583
298 297 -24.6244 1.73809 32.6507
299 298 -17.6523 -1.95277 40.5746
300 299 -21.5175 1.61108 38.061
301 300 -21.0788 1.336 35.8414
302 301 -17.2672 -3.38885 32.2622
303 302 -19.5172 0.123715 40.1294
304 303 -16.7293 -2.41729 35.852
305 304 -14.6104 -7.40275 35.306
306 305 -16.5571 -5.21268 31.3439
307 306 -16.9797 -2.01618 39.4097
308 307 -17.4828 -1.14204 37.157
309 308 -23.1712 1.72522 32.7641
310 309 -14.8362 -8.56096 33.1437
311 310 -23.3364 2.29468 34.3832
312 311 -21.554 -3.48764 27.3326
313 312 -14.7755 -10 33.0386
314 313 -14.2879 -10 34.7474
315 314 -18.2057 -0.307106 36.9017
316 315 -15.1196 -7.11838 32.8125
317 316 -25.7401 2.96332 34.5832
318 317 -14.2895 -8.63147 34.7501
319 318 -19.3653 -3.61931 28.7064
320 319 -18.6011 0.139412 38.7621
321 320 -16.3331 -2.51374 34.7841
322 321 -19.3575 -1.96124 29.865
323 322 -22.5352 2.7172 36.6406
324 323 -15.4709 -3.30953 36.7964
325 324 -25.1144 2.90721 33.4995
326 325 -14.7088 -5.15473 35.4765
327 326 -15.6183 -4.3887 32.9119
328 327 -18.0854 -0.607097 41.3249
329 328 -17.9193 -3.62099 29.5426
330 329 -18.8933 0.801363 35.3201
331 330 -20.1928 -3.01166 27.6878
332 331 -21.3339 0.640762 30.7059
333 332 -17.3883 -0.691052 40.1175
334 333 -14.9503 -5.78782 32.5193
335 334 -14.191 -6.20883 34.5795
336 335 -22.3344 -0.228759 28.6843
337 336 -23.9034 2.21789 31.402
338 337 -17.9387 -1.96292 30.6855
339 338 -15.8196 -1.94431 37.4004
340 339 -19.8998 1.83048 38.8408
341 340 -24.4887 2.85109 32.4157
342 341 -19.3496 -0.303167 31.0236
343 342 -23.3182 1.58469 30.3882
344 343 -23.7126 3.47102 35.3089
345 344 -13.7255 -8.63171 33.7732
346 345 -13.6699 -10 33.6769
347 346 -17.0046 -1.0878 33.2074
348 347 -18.9221 1.24094 39.8079
349 348 -17.7581 0.187448 34.5125
350 349 -20.4659 1.2611 31.8331
351 350 -16.5731 -0.669057 38.7055
352 351 -14.6842 -3.51358 35.4338
353 352 -16.5278 -3.62266 30.3473
354 353 -23.0355 2.83823 32.5292
355 354 -22.4502 2.20503 31.5154
356 355 -23.2007 3.40769 34.1482
357 356 -13.6731 -7.26293 33.6824
358 357 -20.9464 2.92568 37.3848
359 358 -15.5937 -2.74755 32.8692
360 359 -21.1083 -2.44356 26.5607
361 360 -25.3159 4.0373 33.8484
362 361 -13.9804 -4.90669 34.2148
363 362 -18.0332 1.25427 38.4211
364 363 -17.7969 0.634074 40.8252
365 364 -18.7967 -2.50251 27.9589
366 365 -20.4018 -0.99117 27.9194
367 366 -15.0266 -4.12835 31.5943
368 367 -21.5823 2.82536 32.6426
369 368 -21.7475 3.39482 34.2617
370 369 -17.7182 -0.279609 31.4726
371 370 -23.5462 2.81249 30.7832
372 371 -24.1315 3.44569 31.7969
373 372 -24.6699 3.94657 32.7296
374 373 -13.5139 -5.92755 33.4068
375 374 -18.747 -0.926814 29.0443
376 375 -16.3073 -1.93936 31.1345
377 376 -16.9818 0.656068 39.4133
378 377 -18.4457 1.29592 32.9308
379 378 -21.9127 3.96429 35.8807
380 379 -18.7208 2.36274 36.8395
381 380 -17.3582 -2.50398 28.7911
382 381 -19.514 2.96265 38.1805
383 382 -20.394 0.666903 29.078
384 383 -14.6596 -1.87244 35.3911
385 384 -15.4131 -0.597187 36.6962
386 385 -22.6782 3.43283 31.9104
387 386 -22.3783 1.61083 28.7603
388 387 -18.5619 2.40496 39.184
389 388 -13.9558 -3.26554 34.1721
390 389 -19.5678 -1.97729 26.8649
391 390 -23.2679 4.51144 34.5385
392 391 -15.3732 -1.06424 33.6564
393 392 -19.562 2.86018 33.7404
394 393 -21.2734 -0.403291 26.8465
395 394 -21.5103 2.23117 29.8875
396 395 -16.1666 0.678063 38.0013
397 396 -16.1007 0.511283 35.1146
398 397 -23.2194 4.37047 33.0388
399 398 -19.7272 3.42964 35.3594
400 399 -20.5186 3.99925 36.6512
401 400 -17.4611 1.82662 40.2435
402 401 -13.252 -4.65864 32.9531
403 402 -22.9536 3.01924 29.7569
404 403 -17.6256 2.3561 37.7229
405 404 -23.7742 4.0403 31.1781
406 405 -24.3127 4.54118 32.1108
407 406 -16.8542 1.78653 36.4197
408 407 -17.0641 -0.729643 29.6761
409 408 -16.0868 -0.256051 31.9216
410 409 -18.6844 1.83555 31.3359
411 410 -24.8512 5.04206 33.0435
412 411 -14.6272 -3.01323 30.9026
413 412 -20.5863 -1.55224 25.6565
414 413 -16.8143 1.31948 33.3798
415 414 -21.7662 4.35761 33.1522
416 415 -22.0857 3.63957 30.8841
417 416 -16.6232 1.82069 38.7923
418 417 -15.7165 -2.25505 29.4454
419 418 -21.9426 4.96247 34.8063
420 419 -18.1444 -1.55046 27.065
421 420 -14.6587 -0.143873 35.3897
422 421 -19.7914 0.0432569 27.0986
423 422 -19.8008 3.39982 32.1454
424 423 -18.3132 3.46457 36.1413
425 424 -19.0846 4.03415 37.4445
426 425 -13.5538 -2.158 33.4759
427 426 -15.4122 1.13138 36.6948
428 427 -15.9906 1.73478 37.6965
429 428 -18.2743 1.08779 29.4807
430 429 -20.3729 4.39811 33.9026
431 430 -18.1536 3.50697 38.4854
432 431 -22.8622 4.96507 32.42
433 432 -17.5418 2.895 34.8381
434 433 -23.3368 5.4723 33.3957
435 434 -23.1817 4.24704 30.1518
436 435 -14.9949 0.225724 33.1994
437 436 -20.5573 5.00646 35.5557
438 437 -21.4384 1.63697 27.1323
439 438 -12.8937 -3.48764 32.3326
440 439 -14.2675 -1.3498 31.7412
441 440 -17.053 1.85911 31.7849
442 441 -17.4496 3.41282 37.4181
443 442 -19.014 -1.16802 25.9057
444 443 -17.0799 2.96332 39.5832
445 444 -16.6782 2.84325 36.1148
446 445 -15.4327 -0.706084 30.1251
447 446 -16.0998 2.23985 35.1132
448 447 -20.7196 0.400598 25.8874
449 448 -22.0137 3.04538 28.1289
450 449 -19.7288 2.80562 29.3903
451 450 -16.4472 2.87741 38.4874
452 451 -16.4468 -1.34719 27.71
453 452 -23.793 5.43015 31.2107
454 453 -17.7805 3.43464 33.2431
455 454 -21.049 5.06072 32.5024
456 455 -24.3488 5.9715 32.1733
457 456 -22.2696 5.17182 31.3937
458 457 -16.6429 1.11135 29.9297
459 458 -19.1498 5.03903 36.3308
460 459 -18.3527 4.43293 35.0003
461 460 -21.9501 5.88985 33.6618
462 461 -15.2362 2.1881 36.3899
463 462 -15.8145 2.7915 37.3916
464 463 -13.7205 -0.0474808 33.7646
465 464 -14.6579 1.58469 35.3882
466 465 -22.5891 4.45378 29.1255
467 466 -20.0008 -0.835778 24.6424
468 467 -17.6717 0.464147 27.5014
469 468 -20.3042 4.21403 30.3868
470 469 -17.1167 4.08628 36.8415
471 470 -17.7076 4.54495 37.7129
472 471 -19.3187 2.05786 27.535
473 472 -16.3453 3.5167 35.5382
474 473 -13.7346 -1.75143 29.9161
475 474 -20.5372 5.93044 34.4236
476 475 -14.4341 0.760712 32.0298
477 476 -18.9424 0.178126 25.6282
478 477 -22.8193 6.3679 32.4994
479 478 -12.4481 -2.44356 31.5607
480 479 -23.2005 5.63689 30.1844
481 480 -16.6556 4.0373 38.8484
482 481 -18.0192 3.97427 31.6482
483 482 -15.1616 2.33624 33.4881
484 483 -18.5914 4.97257 33.4054
485 484 -14.7785 -1.15612 28.3286
486 485 -20.5894 1.77184 25.6619
487 486 -17.1389 -0.679546 25.9278
488 487 -15.4816 3.46495 36.815
489 488 -16.0027 3.91678 37.7175
490 489 -14.9033 2.86155 35.8133
491 490 -17.6091 3.22651 29.793
492 491 -19.1635 5.97086 35.1625
493 492 -15.9888 0.661318 28.1332
494 493 -21.4329 3.77474 27.1229
495 494 -21.5524 5.87493 30.7438
496 495 -15.7353 3.67439 34.4818
497 496 -21.2418 6.62385 33.0322
498 497 -17.8018 5.51427 36.5393
499 498 -23.8118 6.82 31.2432
500 499 -17.1561 5.05463 35.7005
501 500 -19.8706 0.535467 24.4169
502 501 -13.7196 1.68108 33.7631
503 502 -15.4003 2.87587 31.8931
504 503 -19.2675 5.63518 32.0052
505 504 -17.9459 -0.419562 24.7172
506 505 -12.6147 -0.33304 31.8494
507 506 -13.78 0.310678 30.2333
508 507 -22.0083 5.18315 28.1195
509 508 -19.7234 4.94339 29.3809
510 509 -20.7652 3.12445 25.9664
511 510 -14.2934 3.01924 34.7569
512 511 -19.8427 6.66124 33.7832
513 512 -17.199 2.47875 27.9378
514 513 -19.3663 -0.311912 23.5435
515 514 -15.4374 -0.538784 26.5298
516 515 -22.0723 7.06266 31.8593
517 516 -15.6698 4.59023 37.1409
518 517 -15.1488 4.13841 36.2384
519 518 -15.9741 4.21403 32.8868
520 519 -16.1909 5.04206 38.0435
521 520 -19.4169 3.75472 27.381
522 521 -13.1649 -0.988675 28.9294
523 522 -14.9902 2.12811 30.0379
524 523 -11.926 -1.55224 30.6565
525 524 -18.4697 2.19273 26.0646
526 525 -16.5462 5.21232 34.644
527 526 -22.6181 6.35397 29.1758
528 527 -16.6258 1.17734 26.2893
529 528 -17.7512 5.87369 32.4409
530 529 -20.5158 7.29608 32.3622
531 530 -19.7404 1.90671 24.1914
532 531 -14.5388 4.29609 35.182
533 532 -17.2826 6.40646 35.6401
534 533 -20.8542 6.54445 29.7437
535 534 -17.7073 4.92337 29.639
536 535 -17.8965 0.891317 24.4161
537 536 -13.8208 -0.458665 27.2233
538 537 -23.2434 7.58243 30.2588
539 538 -18.3437 6.92825 34.231
540 539 -12.7814 1.77747 32.138
541 540 -18.6456 3.54534 26.3691
542 541 -18.5693 6.3047 31.005
543 542 -19.2195 0.956546 23.2892
544 543 -12.061 0.470848 30.8902
545 544 -16.0176 3.79863 29.2122
546 545 -13.3551 3.11563 33.1318
547 546 -16.0526 -0.124079 24.6408
548 547 -12.9323 0.40361 28.7651
549 548 -15.1501 5.4792 36.2408
550 549 -14.3972 1.23344 27.5525
551 550 -17.2816 -0.0558159 23.5665
552 551 -15.6885 5.9715 37.1733
553 552 -21.4275 5.91251 27.1135
554 553 -21.4962 7.80116 30.8615
555 554 -17.2972 4.17561 27.7838
556 555 -19.9162 3.25932 24.4959
557 556 -18.9993 7.53956 32.8017
558 557 -18.6987 0.00638008 22.387
559 558 -13.9289 4.45378 34.1255
560 559 -11.3405 -0.835778 29.6424
561 560 -22.0373 7.08333 28.1698
562 561 -20.7598 5.26222 25.957
563 562 -15.3538 5.22916 31.8126
564 563 -15.6075 3.05087 27.357
565 564 -15.706 6.11344 33.6796
566 565 -14.4345 -0.076471 25.3268
567 566 -17.8678 3.08974 25.022
568 567 -14.5402 5.63689 35.1844
569 568 -12.1636 -0.34744 27.8114
570 569 -16.9977 6.49126 31.3887
571 570 -19.4115 5.89249 27.3716
572 571 -19.8327 8.01441 31.3888
573 572 -13.3987 2.70023 29.4572
574 573 -22.6472 8.25416 29.226
575 574 -20.2734 7.27382 28.7377
576 575 -11.9337 1.87041 30.6698
577 576 -20.0921 4.61192 24.8005
578 577 -15.0343 1.74946 25.7086
579 578 -16.4218 7.31516 34.6926
580 579 -17.4831 7.77311 33.2336
581 580 -18.7437 5.2422 26.2151
582 581 -19.1385 2.80372 23.1488
583 582 -15.1515 6.82 36.2432
584 583 -11.2133 0.56378 29.422
585 584 -17.2946 1.78833 23.3735
586 585 -20.9185 6.50274 26.2318
587 586 -12.8031 -0.0339412 26.0215
588 587 -20.7825 8.45276 29.8569
589 588 -12.7349 4.13076 32.0575
590 589 -15.8954 2.81219 25.1624
591 590 -18.6176 1.85356 22.2466
592 591 -18.3096 8.22675 31.8091
593 592 -15.6491 0.112582 22.9987
594 593 -17.3954 5.87247 27.6297
595 594 -10.7061 -0.311912 28.5435
596 595 -16.9319 0.12133 21.9082
597 596 -18.0143 0.111216 21.2016
598 597 -18.2573 7.25379 28.9958
599 598 -21.4065 7.61118 27.0771
600 599 -11.9446 0.964698 27.6116
601 600 -20.2507 5.85245 25.0753
602 601 -13.4095 1.79453 26.3989
603 602 -14.5293 0.112582 23.6452
604 603 -13.3086 5.46891 33.0512
605 604 -15.7057 4.74773 27.203
606 605 -13.9579 6.35397 34.1758
607 606 -12.0463 3.46249 30.8648
608 607 -19.3143 4.15633 23.4534
609 608 -18.9024 6.48272 26.4899
610 609 -17.966 4.7866 24.868
611 610 -19.1193 8.63512 30.3618
612 611 -11.4983 -0.0156654 26.6591
613 612 -15.0858 7.12858 32.6053
614 613 -22.0266 8.83113 28.1512
615 614 -15.3221 1.51077 23.514
616 615 -12.551 2.79317 27.989
617 616 -15.0419 6.17826 29.8034
618 617 -15.8358 8.02336 33.6776
619 618 -16.6452 1.576 22.3871
620 619 -19.3904 7.59116 27.3352
621 620 -18.0144 1.22333 21.2018
622 621 -11.0861 1.96334 29.2016
623 622 -14.0159 3.62299 26.7763
624 623 -14.5832 7.58243 35.2588
625 624 -16.7461 8.44368 32.2091
626 625 -12.9277 0.119925 24.3327
627 626 -16.6858 7.44036 29.3795
628 627 -10.5622 0.984859 28.2943
629 628 -20.4094 7.09297 25.3502
630 629 -13.3522 5.05352 29.3766
631 630 -20.1545 8.99108 28.7692
632 631 -15.9935 4.50905 25.0084
633 632 -13.6974 1.55584 24.2043
634 633 -19.5026 5.73195 23.7795
635 634 -17.5553 8.82804 30.7455
636 635 -11.8282 0.119925 24.9675
637 636 -20.8974 8.20141 26.1954
638 637 -18.5366 3.70073 22.1063
639 638 -10.0384 0.00638008 27.387
640 639 -18.1543 6.36223 25.1941
641 640 -17.3301 0 20.0167
642 641 -16.2124 0 20.662
643 642 -17.5293 7.7489 27.7559
644 643 -12.6636 4.38525 28.184
645 644 -15.1981 0 21.2476
646 645 -11.1986 3.55542 29.3966
647 646 -11.3554 1.8621 26.5911
648 647 -14.3038 3.38431 24.5817
649 648 -21.3854 9.30984 27.0407
650 649 -14.0526 0 21.909
651 650 -12.6884 6.48405 31.977
652 651 -18.4027 9.19084 29.1419
653 652 -13.3377 7.3691 33.1015
654 653 -14.3323 7.74615 31.5531
655 654 -15.0754 8.65684 32.6402
656 655 -19.0363 8.35916 26.6161
657 656 -13.9869 8.25416 34.226
658 657 -10.495 0.12133 25.6246
659 658 -19.6613 6.97248 24.0543
660 659 -16.5641 3.42318 22.2467
661 660 -17.9333 3.0705 21.0615
662 661 -12.9608 0 22.5393
663 662 -17.3301 1.27892 20.0167
664 663 -16.2641 1.22014 20.6321
665 664 -11.9998 5.81577 30.7843
666 665 -15.9762 9.00825 31.1292
667 666 -14.8949 1.57281 21.8173
668 667 -18.7248 5.27636 22.4324
669 668 -11.9618 3.69057 26.9685
670 669 -10.4969 2.86074 28.1811
671 670 -15.8951 7.86766 28.0945
672 671 -19.4202 9.47208 27.5208
673 672 -13.7762 1.57281 22.4632
674 673 -11.8969 0 23.1535
675 674 -9.97306 1.88226 27.2738
676 675 -20.2333 8.52725 25.0451
677 676 -16.8293 9.34442 29.5086
678 677 -11.3112 5.1475 29.5917
679 678 -14.2053 6.74292 27.6678
680 679 -9.35401 0.111216 26.2016
681 680 -14.8793 6.19638 25.7716
682 681 -12.6857 1.57281 23.0928
683 682 -15.9609 2.79295 21.2019
684 683 -17.3301 2.44027 20.0167
685 684 -16.7524 4.9988 22.5728
686 685 -10.7796 0 23.7986
687 686 -17.9333 4.33096 21.0615
688 687 -14.5917 3.14562 22.3871
689 688 -18.2881 8.23866 25.3203
690 689 -16.5893 0 18.7336
691 690 -20.7276 9.6874 25.9013
692 691 -16.6316 8.03003 26.2659
693 692 -12.7068 7.89694 32.0088
694 693 -15.5233 0 19.349
695 694 -12.2497 3.45188 24.7739
696 695 -14.4373 9.15979 31.5352
697 696 -13.3663 8.83113 33.1512
698 697 -18.9131 6.85198 22.7585
699 698 -17.6631 9.62534 27.882
700 699 -10.6095 4.45282 28.3762
701 700 -10.3437 1.87907 25.4796
702 701 -13.5416 8.17345 30.2682
703 702 -13.1895 5.07164 25.3449
704 703 -9.35414 1.23562 26.2018
705 704 -12.0114 5.28181 27.0543
706 705 -9.77549 0 24.3783
707 706 -14.0083 0 19.9443
708 707 -15.1897 9.4996 29.8515
709 708 -12.853 7.50518 29.0755
710 709 -19.4851 8.40676 23.7492
711 710 -18.7545 9.80466 26.3679
712 711 -15.9609 4.05341 21.2019
713 712 -16.5893 1.22014 18.7336
714 713 -17.3301 3.73148 20.0167
715 714 -12.8896 0 20.5902
716 715 -18.1216 5.90659 21.3876
717 716 -11.4557 0 21.7977
718 717 -11.6308 2.80524 23.7019
719 718 -9.90771 3.75814 27.1607
720 719 -8.66987 0 25.0167
721 720 -15.0743 1.22014 19.3288
722 721 -16.0361 9.75164 28.2154
723 722 -13.7051 1.57281 20.5141
724 723 -9.72475 1.23243 24.4076
725 724 -12.2711 1.57281 21.7216
726 725 -12.0427 8.22279 30.8585
727 726 -20.0571 9.96153 24.74
728 727 -10.3651 0 22.4273
729 728 -15.2298 6.66661 23.6446
730 729 -13.4774 4.83296 23.1503
731 730 -10.659 6.04407 28.462
732 731 -12.7252 9.30984 32.0407
733 732 -15.3577 3.42318 20.1571
734 733 -16.7269 3.0705 18.9719
735 734 -11.3541 7.55451 29.6658
736 735 -13.642 9.61478 30.2512
737 736 -17.3301 4.96119 20.0167
738 737 -9.28879 3.1115 26.0887
739 738 -17.3905 8.51979 23.8303
740 739 -15.9609 5.34388 21.2019
741 740 -15.8485 0 17.4505
742 741 -8.66987 1.29232 25.0167
743 742 -11.1354 5.13921 25.5371
744 743 -11.6308 4.09852 23.7019
745 744 -16.7495 9.99319 26.3645
746 745 -18.8038 8.52272 22.5691
747 746 -18.1216 7.19706 21.3876
748 747 -8.98396 0 23.1245
749 748 -14.3948 9.86285 28.5594
750 749 -9.95725 5.34939 27.2465
751 750 -14.3335 0 18.0458
752 751 -13.3789 8.19157 26.2364
753 752 -17.8501 10.0984 24.8732
754 753 -16.7269 4.33096 18.9719
755 754 -15.9861 1.85037 17.6888
756 755 -8.66987 2.46486 25.0167
757 756 -12.2008 8.40175 27.9458
758 757 -19.378 10.1306 23.5637
759 758 -10.607 1.97261 21.9829
760 759 -9.28879 4.40478 26.0887
761 760 -11.3845 0 19.8485
762 761 -12.8185 0 18.641
763 762 -12.513 3.54542 21.2771
764 763 -7.92908 0 23.7336
765 764 -12.0674 9.6874 30.9013
766 765 -17.3301 6.22054 20.0167
767 766 -15.1308 10.0687 26.7106
768 767 -9.95061 0 21.0561
769 768 -14.4711 1.85037 18.284
770 769 -12.978 9.90897 29.1011
771 770 -12.3631 6.52029 23.9135
772 771 -11.1849 6.73046 25.6229
773 772 -15.1844 5.0185 19.8568
774 773 -14.1155 8.35394 24.4078
775 774 -14.8466 7.03121 21.9651
776 775 -8.84016 1.59873 22.8755
777 776 -10.0068 6.94064 27.3323
778 777 -7.92908 1.23243 23.7336
779 778 -16.1237 3.70073 17.9271
780 779 -8.66987 3.78917 25.0167
781 780 -16.599 8.86487 22.4594
782 781 -15.8678 10.1876 24.9021
783 782 -10.7018 8.45108 28.5361
784 783 -8.56945 0 21.7533
785 784 -13.5233 10.1061 27.2976
786 785 -17.1757 10.2058 23.705
787 786 -15.1102 0 16.1716
788 787 -10.5165 5.78586 24.4651
789 788 -18.0123 8.8678 21.1981
790 789 -9.33833 5.99603 26.1745
791 790 -18.6944 10.1935 22.3796
792 791 -17.3301 7.54214 20.0167
793 792 -9.55211 3.20504 22.5919
794 793 -12.5161 8.36581 24.9906
795 794 -11.3969 9.96153 29.74
796 795 -11.6264 1.97261 19.4041
797 796 -13.5952 0 16.7669
798 797 -11.338 8.57598 26.6999
799 798 -10.1925 1.97261 20.6116
800 799 -16.5536 5.92628 18.6716
801 800 -14.2834 10.2024 25.4777
802 801 -11.1433 0 18.4391
803 802 -11.3987 5.23275 22.0404
804 803 -13.279 3.82297 19.0471
805 804 -9.70934 0 19.6466
806 805 -15.2585 1.85736 16.4285
807 806 -8.66987 5.05142 25.0167
808 807 -12.0998 10.1317 27.8541
809 808 -7.1883 0 22.4505
810 809 -13.781 8.26014 22.5803
811 810 -13.7434 1.85736 17.0237
812 811 -7.78528 2.83116 23.4845
813 812 -10.5165 7.04455 24.4651
814 813 -13.7411 6.57281 20.5902
815 814 -8.42565 1.59873 21.5042
816 815 -9.55211 4.49832 22.5919
817 816 -10.0205 8.56704 27.3559
818 817 -9.33833 7.25472 26.1745
819 818 -15.5785 10.1938 23.1741
820 819 -12.6621 8.26014 23.2263
821 820 -11.9988 0 17.0193
822 821 -17.3301 8.71149 20.0167
823 822 -12.6692 10.2113 26.0676
824 823 -15.9504 5.29605 17.6268
825 824 -16.9328 10.1667 21.9088
826 825 -18.0104 10.1498 21.1949
827 826 -16.2645 8.77107 20.6319
828 827 -14.465 10.1938 23.817
829 828 -15.3961 3.70772 16.6667
830 829 -10.7178 10.1306 28.5637
831 830 -16.5536 7.21676 18.6716
832 831 -11.571 8.26014 23.8563
833 832 -7.83111 0 20.4744
834 833 -8.66987 6.27922 25.0167
835 834 -10.3929 8.47032 25.5656
836 835 -14.3719 0 14.8928
837 836 -7.78528 4.12444 23.4845
838 837 -9.9512 1.97261 19.2022
839 838 -10.4343 3.94521 20.1672
840 839 -11.4236 10.2128 26.6828
841 840 -7.04449 1.59873 22.2014
842 841 -9.46806 0 18.2371
843 842 -12.8711 10.174 24.3673
844 843 -13.1057 5.41829 18.7469
845 844 -12.5514 3.82996 17.7868
846 845 -9.72917 6.76112 23.1014
847 846 -14.5201 1.85736 15.1496
848 847 -6.44995 0 21.1716
849 848 -8.66751 3.57134 21.0598
850 849 -8.18438 1.59873 20.0947
851 850 -10.8068 1.97261 17.7824
852 851 -17.3301 10 20.0167
853 852 -11.7674 10.174 25.0045
854 853 -16.2128 10 20.6617
855 854 -9.352 8.88113 26.1981
856 855 -12.7755 0 15.1452
857 856 -12.6268 8.26014 21.3534
858 857 -16.6862 8.77107 18.9014
859 858 -15.199 10 21.2471
860 859 -10.0341 10.1935 27.3796
861 860 -8.66987 7.5688 25.0167
862 861 -10.3236 0 16.8174
863 862 -14.0531 10 21.9087
864 863 -11.0778 8.26014 22.4689
865 864 -15.777 6.89137 17.3266
866 865 -15.2227 5.30304 16.3665
867 866 -7.88255 6.02669 23.653
868 867 -15.1103 8.77107 19.4049
869 868 -7.58983 0 19.065
870 869 -12.9611 10 22.5391
871 870 -10.4951 10.1667 25.6256
872 871 -6.90069 3.19746 21.9523
873 872 -12.9238 1.85736 15.402
874 873 -14.6684 3.71471 15.4064
875 874 -9.7244 8.7844 24.4078
876 875 -11.8967 10 23.1536
877 876 -11.1792 0 15.3977
878 877 -8.76478 5.47359 21.2282
879 878 -6.30615 1.59873 20.9226
880 879 -13.6526 0 13.6471
881 880 -13.8845 1.23094 14.0486
882 881 -8.66987 8.72603 25.0167
883 882 -11.6624 6.97261 19.4802
884 883 -16.6862 10 18.9014
885 884 -9.35012 10.1498 26.1949
886 885 -15.6206 10 19.5166
887 886 -8.57425 0 17.2176
888 887 -10.7789 10 23.799
889 888 -15.9097 8.44569 17.5563
890 889 -7.88255 7.28538 23.653
891 890 -10.1135 6.97261 20.5957
892 891 -5.71161 0 19.8928
893 892 -6.99796 5.09971 22.1208
894 893 -9.77511 10 24.3785
895 894 -14.0447 10 20.0202
896 895 -14.0328 3.08829 14.3054
897 896 -9.31966 4.04973 18.4393
898 897 -8.07656 4.48819 20.0362
899 898 -14.3337 8.44569 18.0599
900 899 -8.83652 2.07712 17.4743
901 900 -12.0563 0 13.8995
902 901 -12.2882 1.23094 14.3011
903 902 -9.42982 0 15.7979
904 903 -8.93708 8.50098 23.0441
905 904 -12.9258 10 20.6662
906 905 -7.23023 1.37676 18.4421
907 906 -10.2166 4.6892 17.797
908 907 -11.3768 10 21.7817
909 908 -6.69602 0 18.0455
910 909 -8.66987 10 25.0167
911 910 -7.55284 3.67585 19.3319
912 911 -8.02567 8.7844 23.9009
913 912 -12.8879 6.16228 16.3767
914 913 -16.0423 10 17.7861
915 914 -9.69209 2.07712 16.0546
916 915 -14.9413 7.20793 15.8791
917 916 -6.30974 4.11431 20.9288
918 917 -10.2858 10 22.4116
919 918 -14.387 5.6196 14.9191
920 919 -5.94654 2.97549 20.2997
921 920 -12.3336 4.57395 15.4166
922 921 -15.2646 8.44569 16.4391
923 922 -10.589 2.7166 15.4122
924 923 -7.09523 7.00196 22.2893
925 924 -14.4664 10 18.2897
926 925 -13.1653 1.23094 12.8029
927 926 -12.9334 0 12.4014
928 927 -9.08019 10 23.292
929 928 -13.3971 2.46187 13.2045
930 929 -7.68044 0 16.1981
931 930 -12.2841 3.65243 14.4642
932 931 -13.8617 4.56963 14.0091
933 932 -5.352 1.37676 19.2699
934 933 -9.51968 6.97261 18.9674
935 934 -10.5395 1.79507 14.4598
936 935 -8.44391 8.50098 21.6568
937 936 -10.053 0 13.9425
938 937 -7.65011 5.5781 19.5004
939 938 -4.9924 0 18.6471
940 939 -12.8904 10 18.7932
941 940 -8.02567 10 23.9009
942 941 -13.8694 8.44569 16.498
943 942 -7.94271 2.07712 16.4548
944 943 -6.40701 6.01656 21.0973
945 944 -11.3415 10 19.9087
946 945 -7.23834 8.50098 22.5372
947 946 -6.33642 1.37676 17.4226
948 947 -15.3973 10 16.6689
949 948 -9.79259 10 21.0242
950 949 -11.4446 7.7166 17.11
951 950 -5.97681 0 16.7998
952 951 -11.4166 1.79507 12.9617
953 952 -8.79013 1.79507 14.8601
954 953 -10.9301 0 12.4443
955 954 -13.8213 10 17.1724
956 955 -8.58703 10 21.9046
957 956 -6.96189 4.5927 18.3083
958 957 -13.226 3.94321 12.9081
959 958 -11.6485 3.02601 13.3632
960 959 -8.30358 0 14.3427
961 960 -8.20499 4.15424 16.7115
962 961 -5.71879 5.03117 19.9052
963 962 -6.59869 3.45388 17.6793
964 963 -5.35559 3.89234 19.2762
965 964 -9.10188 4.79372 16.0691
966 965 -14.1056 7.52448 14.4317
967 966 -12.0522 6.47883 14.9292
968 967 -12.2628 0 11.2398
969 968 -7.38146 10 22.7851
970 969 -4.9924 2.75351 18.6471
971 970 -6.21548 7.18683 20.7655
972 971 -6.72608 0 15.1524
973 972 -4.63279 1.37676 18.0242
974 973 -14.4289 8.76224 14.9917
975 974 -9.99876 5.43319 15.4268
976 975 -9.0524 3.87219 15.1167
977 976 -7.85012 8.50098 20.0285
978 977 -12.4269 1.56423 11.5241
979 978 -12.6588 2.79516 11.9257
980 979 -6.59319 8.50098 21.4197
981 980 -12.4261 10 17.2313
982 981 -13.5803 6.47451 13.5217
983 982 -4.27319 0 17.4014
984 983 -11.5268 5.42887 14.0193
985 984 -14.7522 10 15.5516
986 985 -9.94929 4.51167 14.4744
987 986 -10.7477 10 18.2805
988 987 -6.98836 2.07712 15.409
989 988 -6.77036 5.76297 17.9766
990 989 -7.94187 10 20.7872
991 990 -9.1988 10 19.396
992 991 -11.4774 4.50734 13.0669
993 992 -9.41327 1.79507 13.0046
994 993 -13.0549 5.42454 12.6118
995 994 -13.0337 8.76224 15.0506
996 995 -5.52727 6.20144 19.5735
997 996 -8.405 7.07712 17.2396
998 997 -9.89981 3.59015 13.522
999 998 -10.9803 7.7166 15.5481
1000 999 -8.92672 0 12.4872
1001 1000 -5.02246 0 15.754
1002 1001 -13.357 10 15.6105
1003 1002 -9.30189 7.7166 16.5972
1004 1003 -6.73631 10 21.6676
1005 1004 -10.2595 0 11.2828
1006 1005 -6.18299 4.41614 16.9592
1007 1006 -5.45364 1.51131 15.8936
1008 1007 -12.5083 7.71227 14.1406
1009 1008 -7.83577 1.79507 13.8143
1010 1009 -4.93989 4.8546 18.5561
1011 1010 -7.34923 0 13.2969
1012 1011 -13.4959 7.73896 13.3756
1013 1012 -4.57669 3.71577 17.9271
1014 1013 -10.4236 1.56423 11.567
1015 1014 -12.4877 4.2765 11.6293
1016 1015 -10.9101 3.3593 12.0844
1017 1016 -13.7823 8.76224 13.8717
1018 1017 -11.5922 0 10.0783
1019 1018 -7.37304 5.20212 15.665
1020 1019 -14.1056 10 14.4317
1021 1020 -5.71591 3.58843 16.1502
1022 1021 -12.9706 6.68899 12.4657
1023 1022 -11.7563 1.56423 10.3626
1024 1023 -5.77173 0 14.1066
1025 1024 -11.9618 10 15.6695
1026 1025 -3.60257 0 16.2398
1027 1026 -8.26992 5.8416 15.0227
1028 1027 -5.33574 7.37171 19.2418
1029 1028 -6.17757 5.83665 16.9499
1030 1029 -4.10962 2.88807 17.1181
1031 1030 -10.2834 10 16.7186
1032 1031 -6.97038 8.68585 18.5047
1033 1032 -5.71345 8.68585 19.896
1034 1033 -11.9205 3.12845 10.6468
1035 1034 -3.75001 1.51131 16.4952
1036 1035 -12.424 8.97672 13.9945
1037 1036 -8.22045 4.92007 14.0703
1038 1037 -7.34808 10 19.1589
1039 1038 -8.73797 0 11.1403
1040 1039 -4.74837 6.02487 18.2244
1041 1040 -6.09115 10 20.5502
1042 1041 -7.71336 0 11.8728
1043 1042 -8.60502 10 17.7677
1044 1043 -10.8239 6.1257 12.8018
1045 1044 -12.7104 10 14.4906
1046 1045 -6.56218 3.84357 14.6586
1047 1046 -4.35184 0 14.5924
1048 1047 -10.0707 0 9.93585
1049 1048 -12.0388 7.71227 12.7609
1050 1049 -9.20055 7.7166 14.7525
1051 1050 -10.7745 5.20417 11.8494
1052 1051 -12.8862 7.95344 12.3196
1053 1052 -6.13586 0 12.6825
1054 1053 -12.352 6.12137 11.3943
1055 1054 -4.16099 4.67803 17.207
1056 1055 -4.49928 1.51131 14.8478
1057 1056 -10.2348 1.56423 10.2201
1058 1057 -13.1726 8.97672 12.8157
1059 1058 -10.7286 7.71227 13.345
1060 1059 -7.57305 8.125 16.1931
1061 1060 -6.92305 1.76646 12.5465
1062 1061 -13.459 10 13.3117
1063 1062 -7.4096 3.56153 13.0639
1064 1063 -5.57788 5.42575 15.9112
1065 1064 -10.9612 0 8.9853
1066 1065 -9.08016 5.8416 12.9762
1067 1066 -4.74294 7.44539 18.215
1068 1067 -4.98923 0 13.2036
1069 1068 -11.4922 10 14.2898
1070 1069 -6.37758 8.75953 17.478
1071 1070 -3.69391 3.85033 16.398
1072 1071 -5.06695 8.68585 18.7762
1073 1072 -2.93195 0 15.0783
1074 1073 -11.7848 4.97333 10.4119
1075 1074 -10.9612 1.15222 8.9853
1076 1075 -8.41992 3.33068 11.6263
1077 1076 -5.34555 1.76646 13.3562
1078 1077 -6.70159 10 18.0392
1079 1078 -9.03068 4.92007 12.0238
1080 1079 -10.1821 10 14.8738
1081 1080 -5.44465 10 19.4304
1082 1081 -5.81722 8.68585 17.5948
1083 1082 -4.15557 6.09855 17.1977
1084 1083 -3.07939 1.51131 15.3337
1085 1084 -7.55767 0 10.5774
1086 1085 -11.9544 8.97672 12.6148
1087 1086 -12.2677 7.38582 11.2482
1088 1087 -8.54921 0 9.79342
1089 1088 -11.1253 2.71645 9.26957
1090 1089 -6.54108 6.25 14.6186
1091 1090 -8.50367 10 15.923
1092 1091 -6.5 0 11.2583
1093 1092 -7.45186 10 16.8577
1094 1093 -12.2408 10 13.1109
1095 1094 -4.54018 4.10547 14.9064
1096 1095 -3.22684 3.02262 15.589
1097 1096 -3.56935 0 13.6894
1098 1097 -9.48958 0 8.88526
1099 1098 -5.34562 6.88453 15.9034
1100 1099 -10.041 4.68923 10.5862
1101 1100 -5.38148 0 11.8338
1102 1101 -12.5242 8.97672 11.6926
1103 1102 -3.92567 1.76646 13.842
1104 1103 -12.8107 10 12.1887
1105 1104 -11.1253 3.89259 9.26957
1106 1105 -6.7343 1.76646 11.1996
1107 1106 -6.5 1.66845 11.2583
1108 1107 -4.15015 7.51907 17.1883
1109 1108 -5.73023 4.89146 13.6121
1110 1109 -5.70969 1.76646 11.932
1111 1110 -7.47171 8.125 14.3484
1112 1111 -6.41989 8.125 15.2832
1113 1112 -10.3301 0 7.89231
1114 1113 -9.43967 1.15222 8.84286
1115 1114 -4.07311 3.27776 14.0974
1116 1115 -4.47415 8.75953 17.7495
1117 1116 -3.55588 5.68765 16.159
1118 1117 -11.3359 8.4091 11.5435
1119 1118 -4.20674 0 12.3005
1120 1119 -11.0226 10 12.9101
1121 1120 -11.6491 6.8182 10.1769
1122 1121 -4.79816 10 18.3107
1123 1122 -8.35538 3.125 10.1595
1124 1123 -2.30091 0 13.9853
1125 1124 -5.22442 8.75953 16.568
1126 1125 -10.0257 8.4091 12.1276
1127 1126 -4.56306 1.76646 12.4531
1128 1127 -7.35132 6.25 12.5721
1129 1128 -9.71247 10 13.4941
1130 1129 -10.3301 1.15222 7.8923
1131 1130 -5.54843 10 17.1292
1132 1131 -4.74593 6.47363 14.8647
1133 1132 -10.9349 0 7.0264
1134 1133 -11.5925 10 11.9879
1135 1134 -11.9057 8.4091 10.6213
1136 1135 -6.5 3.3369 11.2583
1137 1136 -3.08881 4.85994 15.35
1138 1137 -2.30091 1.15137 13.9853
1139 1138 -4.91938 3.53291 12.6057
1140 1139 -7.35051 10 15.013
1141 1140 -8.40233 10 14.0782
1142 1141 -6.2987 10 15.9478
1143 1142 -2.95007 0 12.6608
1144 1143 -9.90534 6.5341 10.3513
1145 1144 -3.55046 7.10817 16.1496
1146 1145 -10.3301 2.30445 7.8923
1147 1146 -6.74632 0 9.25636
1148 1147 -10.9445 1.15222 7.01563
1149 1148 -2.44835 2.66268 14.2407
1150 1149 -7.58714 0 8.64184
1151 1150 -5.75 0 9.95929
1152 1151 -10.9896 5.73747 9.03459
1153 1152 -8.28194 8.125 12.3019
1154 1153 -6.54047 4.89146 11.5657
1155 1154 -12.1623 10 11.0657
1156 1155 -9.24584 4.27722 9.20899
1157 1156 -3.93508 5.11509 13.8583
1158 1157 -4.62474 8.34863 15.5293
1159 1158 -11.4799 0 6.08617
1160 1159 -5.73166 8.125 14.2241
1161 1160 -10.582 8.4091 10.6772
1162 1161 -10.2687 10 12.0438
1163 1162 -2.93831 1.15137 12.5964
1164 1163 -3.82614 8.75953 16.6271
1165 1164 -8.46355 0 7.71563
1166 1165 -4.6456 0 10.4707
1167 1166 -10.3301 3.48059 7.8923
1168 1167 -4.15015 10 17.1883
1169 1168 -6.5 5.16845 11.2583
1170 1169 -2.44835 3.84188 14.2407
1171 1170 -8.95856 10 12.6278
1172 1171 -3.29463 2.91782 12.749
1173 1172 -8.16155 6.25 10.5257
1174 1173 -4.95969 1.76646 10.633
1175 1174 -6.54376 8.125 12.9857
1176 1175 -10.9896 6.9091 9.03459
1177 1176 -9.1994 0 6.8997
1178 1177 -1.66987 0 12.8923
1179 1178 -9.24584 5.45337 9.20899
1180 1179 -4.90041 10 16.0068
1181 1180 -11.1561 2.50214 6.67389
1182 1181 -3.69038 0 10.8916
1183 1182 -8.47744 1.15222 7.69157
1184 1183 -10.8385 10 11.1216
1185 1184 -4.92081 6.76646 13.2177
1186 1185 -2.95078 6.69727 15.1109
1187 1186 -11.2922 8.4091 9.55873
1188 1187 -10.3301 4.65674 7.8923
1189 1188 -8.83817 8.125 10.8516
1190 1189 -11.6682 1.34992 5.73169
1191 1190 -7.48222 1.85872 8.38072
1192 1191 -6.66228 10 13.954
1193 1192 -5.61046 10 14.8887
1194 1193 -11.9521 0 5.08721
1195 1194 -9.19882 1.15222 6.90061
1196 1195 -1.66987 1.15137 12.8923
1197 1196 -3.29463 4.09703 12.749
1198 1197 -11.1561 3.67828 6.67389
1199 1198 -9.77072 0 6.00714
1200 1199 -4.94391 4.9062 11.5188
1201 1200 -5.73291 6.76646 11.9793
1202 1201 -3.22646 8.34863 15.5884
1203 1202 -9.24584 6.625 9.20899
1204 1203 -11.5488 10 10.0031
1205 1204 -7.47438 10 12.7156
1206 1205 -9.5148 10 11.1775
1207 1206 -2.45294 0 11.1874
1208 1207 -6.5 7 11.2583
1209 1208 -10.3301 5.82837 7.8923
1210 1209 -0.617578 0 12.9831
1211 1210 -3.9365 8.34863 14.4703
1212 1211 -1.66987 2.30274 12.8923
1213 1212 -5.66731 3.62517 9.78687
1214 1213 -3.29463 5.26646 12.749
1215 1214 -5.83292 0 8.12262
1216 1215 -2.31032 5.6792 14.0016
1217 1216 -6.565 6.26474 10.4787
1218 1217 -9.92246 8.5 9.53489
1219 1218 -6.62475 0 7.49084
1220 1219 -3.50213 10 16.0659
1221 1220 -5 0 8.66025
1222 1221 -8.37268 3.01094 7.43016
1223 1222 -11.8396 2.69983 5.36872
1224 1223 -7.354 8.125 10.9393
1225 1224 -12.1154 1.34992 4.71344
1226 1225 -11.2297 4.79629 6.54939
1227 1226 -2.42238 1.15137 11.1875
1228 1227 -0.603485 1.15137 12.986
1229 1228 -12.3433 0 4.04307
1230 1229 -10.3348 0 5.01794
1231 1230 -7.38438 0 6.74321
1232 1231 -4.11793 0 9.11277
1233 1232 -9.95357 1.34992 5.63881
1234 1233 -4.21218 10 14.9478
1235 1234 -10.2251 10 10.059
1236 1235 -1.66987 3.48194 12.8923
1237 1236 -10.9417 5.82837 7.01992
1238 1237 -7.28839 4.98372 8.74684
1239 1238 -4.27143 6.76646 12.2123
1240 1239 -10.3301 7 7.8923
1241 1240 -1.3753 0 11.4168
1242 1241 -8.29248 8.125 9.78615
1243 1242 -3.02001 1.875 10.5357
1244 1243 -8.03062 10 11.2652
1245 1244 -2.31032 6.84863 14.0016
1246 1245 -4.92223 10 13.8297
1247 1246 -8.37268 4.18709 7.43016
1248 1247 -6.38979 8.12867 11.0674
1249 1248 -10.6327 8.5 8.41644
1250 1249 -8.06752 0 5.90891
1251 1250 -3.17489 0 9.48262
1252 1251 -11.8985 3.81784 5.23705
1253 1252 0.469168 0 12.985
1254 1253 -2.61318 8.34863 14.5262
1255 1254 -1.37669 1.15137 11.4167
1256 1255 -3.37633 3.64146 10.6883
1257 1256 -1.66987 4.66114 12.8923
1258 1257 -10.9353 10 8.94057
1259 1258 -10.9321 7 7.03088
1260 1259 -9.12743 3.20863 6.16837
1261 1260 -8.9691 10 10.112
1262 1261 -5.73434 10 12.5913
1263 1262 -10.5113 1.34992 4.66379
1264 1263 -5.70762 1.85872 7.81414
1265 1264 -6.51999 1.85872 7.22943
1266 1265 -0.201898 2.50143 12.9984
1267 1266 -10.7623 0 4.00336
1268 1267 -8.29071 6.44366 8.08293
1269 1268 -4.96844 6.27949 10.4318
1270 1269 -12.6348 0 3.01826
1271 1270 -5.75744 8.13974 10.8924
1272 1271 -2.1476 0 9.76667
1273 1272 -3.29605 8.5 13.361
1274 1273 -8.68026 0 4.96519
1275 1274 -2.88886 10 15.0037
1276 1275 -12.3951 2.5494 3.9195
1277 1276 -9.37677 8.5 8.46947
1278 1277 -11.9558 4.93585 5.10482
1279 1278 -7.24137 1.85872 6.43846
1280 1279 -0.319227 0 11.4653
1281 1280 -9.375 5.64702 6.76625
1282 1281 -2.79746 5.08598 11.3602
1283 1282 -12.5889 1.19948 3.24359
1284 1283 -11.729 5.96793 5.60633
1285 1284 -4.2317 5.14431 10.0741
1286 1285 -1.66987 5.83057 12.8923
1287 1286 -10.1847 8.19848 7.64042
1288 1287 -6.54644 10 11.3529
1289 1288 -12.2734 3.74235 4.28539
1290 1289 -3.31916 6.63974 11.6621
1291 1290 -3.59891 10 13.8856
1292 1291 -5.69184 4.99846 8.69991
1293 1292 -9.67938 10 8.9936
1294 1293 -0.201898 3.68064 12.9984
1295 1294 -11.4748 7 6.09581
1296 1295 0.870122 1.35007 12.9708
1297 1296 -10.3597 5.46655 5.74749
1298 1297 -1.75158 3.02637 10.8316
1299 1298 -6.58077 8.125 9.59296
1300 1299 -5.03951 0 6.8014
1301 1300 -7.48492 10 10.1998
1302 1301 -4.25 0 7.36122
1303 1302 -7.60478 8.125 8.80986
1304 1303 -3.41664 1.875 8.71559
1305 1304 -4.27286 10 12.8243
1306 1305 1.57041 0 12.8945
1307 1306 -10.3684 9.58403 7.95852
1308 1307 -5.85278 6.50285 9.0341
1309 1308 -10.8219 1.34992 3.66895
1310 1309 -5.98477 0 6.00502
1311 1310 -7.79912 1.85872 5.46344
1312 1311 -10.8689 8.12287 6.68757
1313 1312 -1.08351 0 9.94113
1314 1313 -9.375 6.81866 6.76625
1315 1314 -6.04113 9.15968 10.4635
1316 1315 -9.183 0 3.95885
1317 1316 -11.0802 0 2.99368
1318 1317 -1.66987 7 12.8923
1319 1318 -4.29596 8.13974 11.1254
1320 1319 -12.3198 4.86036 4.14988
1321 1320 -6.41523 3.71744 6.96802
1322 1321 -3.37409 0 7.76504
1323 1322 0.0932247 1.35007 11.4395
1324 1323 -11.1144 4.4881 4.4857
1325 1324 -10.3533 10 7.93242
1326 1325 -2.50408 1.875 9.12677
1327 1326 -0.0579031 4.79865 12.9999
1328 1327 -6.7042 0 5.21856
1329 1328 -12.1607 5.96793 4.59547
1330 1329 -1.97273 8.5 13.4169
1331 1330 -0.609303 5.83057 12.9857
1332 1331 -8.42341 10 9.04663
1333 1332 -5.08496 10 11.5859
1334 1333 -1.75158 4.20557 10.8316
1335 1334 -12.8416 0 1.98432
1336 1335 0.822982 0 11.4592
1337 1336 -11.9433 7 5.10817
1338 1337 -12.8108 1.19948 2.20975
1339 1338 1.26995 2.70013 12.9378
1340 1339 -2.27559 10 13.9414
1341 1340 -9.94734 6.81866 5.868
1342 1341 -9.11239 9.58403 8.01155
1343 1342 -2.64668 8.5 12.3556
1344 1343 -8.68907 8.5 7.49318
1345 1344 -2.20495 0 8.18551
1346 1345 -12.7701 2.39896 2.43402
1347 1346 1.97555 1.35007 12.849
1348 1347 -7.41755 5.17737 6.30411
1349 1348 -11.473 8.14029 5.56041
1350 1349 -4.95762 1.85872 6.5151
1351 1350 -12.6936 3.59191 2.80588
1352 1351 -11.1725 5.60611 4.35375
1353 1352 -2.94953 10 12.8802
1354 1353 -1.45839 1.875 9.35603
1355 1354 -9.09732 10 7.98544
1356 1355 -0.623643 7 12.9828
1357 1356 -4.12426 3.73372 7.86947
1358 1357 -9.80137 9.16806 6.97647
1359 1358 0.0401433 0 9.99992
1360 1359 -1.17271 5.65009 11.5035
1361 1360 -9.54738 0 2.97446
1362 1361 -5.88029 1.85872 5.74383
1363 1362 -4.98422 8.13974 9.54603
1364 1363 -10.932 6.63819 4.84924
1365 1364 -7.3397 0 4.13185
1366 1365 -12.6058 4.78487 3.17701
1367 1366 -9.7861 3.13819 3.78076
1368 1367 2.67023 0 12.7111
1369 1368 -11.3221 0 1.97751
1370 1369 -1.52487 8.1968 12.6412
1371 1370 -0.281663 3.22507 10.8544
1372 1371 -4.25623 6.51759 8.98716
1373 1372 -12.483 5.89243 3.62975
1374 1373 -8.40222 4.9969 5.28535
1375 1374 -5.77322 10 10.0066
1376 1375 1.41281 3.81814 12.923
1377 1376 -3.62348 10 11.8189
1378 1377 1.21649 1.35007 11.435
1379 1378 -9.7863 9.58403 6.95036
1380 1379 -9.11062 7.90269 6.30833
1381 1380 -11.2872 1.19948 2.2016
1382 1381 -12.3324 7 4.07594
1383 1382 -1.16877 0 8.41527
1384 1383 -12.9609 0 0.98179
1385 1384 -11.5797 4.33767 3.01835
1386 1385 -2.60695 6.87785 10.2174
1387 1386 1.9127 0 11.3221
1388 1387 -9.77123 10 6.92426
1389 1388 -1.70907 9.58281 12.9602
1390 1389 -1.17271 6.81952 11.5035
1391 1390 -5.53993 9.79891 9.59544
1392 1391 -6.7117 10 8.85344
1393 1392 -4.97962 5.23657 7.25528
1394 1393 -8.41987 6.63731 5.6402
1395 1394 -7.73571 10 8.07034
1396 1395 -6.49883 1.85872 4.67476
1397 1396 -11.9395 8.09844 4.51297
1398 1397 -4.47515 0 5.38266
1399 1398 -11.4975 5.53062 3.38984
1400 1399 -2.66664 1.875 7.41655
1401 1400 -10.4335 9.21202 5.87063
1402 1401 -7.88486 0 3.16675
1403 1402 -3.5 0 6.06218
1404 1403 0.210294 5.13385 11.576
1405 1404 -12.9625 1.13303 0.987013
1406 1405 1.00776 5.96808 12.9609
1407 1406 -1.69349 10 12.9332
1408 1407 -0.335124 1.875 9.35153
1409 1408 -2.38301 9.58281 11.8989
1410 1409 -11.3608 6.63819 3.83931
1411 1410 0.456741 7 12.9854
1412 1411 1.55541 4.93615 12.9066
1413 1412 -1.83328 3.75 8.77093
1414 1413 -2.14474 8.5 11.2715
1415 1414 -9.8042 0 1.96918
1416 1415 -8.42469 9.58403 7.03526
1417 1416 -0.357247 8.12108 12.7573
1418 1417 -5.34536 0 4.51964
1419 1418 -9.40454 6.45684 4.62144
1420 1419 1.16303 0 9.93214
1421 1420 -10.0967 3.13819 2.78593
1422 1421 -4.31174 10 10.2396
1423 1422 -12.9436 2.33251 1.20989
1424 1423 -9.71353 7.91599 5.18416
1425 1424 -3.58375 8.37785 9.68073
1426 1425 -2.42395 0 6.56692
1427 1426 -2.36744 10 11.872
1428 1427 -12.7375 5.89243 2.59939
1429 1428 2.80284 2.54958 12.6943
1430 1429 -11.4285 0 0.965198
1431 1430 -1.53736 1.875 7.82998
1432 1431 2.42483 3.74254 12.7719
1433 1432 -8.40962 10 7.00915
1434 1433 -7.73394 8.31866 6.36712
1435 1434 -5.98194 6.69651 6.59136
1436 1435 -12.6264 7 3.05279
1437 1436 3.70349 0 12.4511
1438 1437 2.23335 1.35007 11.2065
1439 1438 0.0976102 0 8.42229
1440 1439 -0.109404 6.81952 11.5501
1441 1440 -1.25441 5.19452 9.44285
1442 1441 -10.3892 6.27637 3.60267
1443 1442 3.4853 1.19951 12.5241
1444 1443 -2.68865 5.25285 8.15673
1445 1444 -10.6982 7.73552 4.16539
1446 1445 -3.12155 10 10.7349
1447 1446 -12.9436 3.52098 1.20989
1448 1447 -1.14254 9.16563 11.9789
1449 1448 -9.26766 9.78564 6.05206
1450 1449 -6.05893 0 3.50562
1451 1450 -11.0072 9.19466 4.72812
1452 1451 -11.4021 1.13303 0.984591
1453 1452 -13 0 -4.87067e-15
1454 1453 -8.19307 0 2.17499
1455 1454 -12.9035 4.71393 1.5807
1456 1455 1.68021 4.15334 11.5988
1457 1456 2.94921 0 11.0926
1458 1457 -8.48582 3.13819 2.99209
1459 1458 -1.24145 0 6.88904
1460 1459 -0.909046 7.90233 11.0469
1461 1460 -9.21574 10 5.96213
1462 1461 -8.54006 8.31866 5.3201
1463 1462 -6.60788 5.91115 5.21927
1464 1463 -1.12697 9.58281 11.952
1465 1464 -6.07028 10 7.94681
1466 1465 -11.6126 6.63819 2.81133
1467 1466 -12.2843 8.19982 3.2735
1468 1467 2.56484 4.86055 12.7445
1469 1468 1.54631 7 12.8974
1470 1469 -5 10 8.66025
1471 1470 2.09889 5.96808 12.8294
1472 1471 -13 1.13303 -4.87067e-15
1473 1472 -9.95197 0 0.978898
1474 1473 -4.27201 8.37785 8.10139
1475 1474 -5.29602 8.37785 7.31829
1476 1475 -7.04802 10 7.09405
1477 1476 -11.4021 2.3215 0.984591
1478 1477 -2.10978 6.69737 8.82865
1479 1478 -0.675548 6.63904 10.1148
1480 1479 -6.34498 3.7865 4.15707
1481 1480 2.19773 0 9.75551
1482 1481 -1.1114 10 11.925
1483 1482 0.919676 8.14048 12.7161
1484 1483 -3.54402 6.7557 7.54253
1485 1484 -1.88108 9.58281 10.8149
1486 1485 -4.20762 3.05431 5.21606
1487 1486 -9.52473 8.13819 4.30134
1488 1487 -3.847 10 9.23042
1489 1488 -0.302254 1.875 7.83112
1490 1489 0.12859 4.67828 9.51535
1491 1490 1.62675 2.80328 10.096
1492 1491 -11.5 0 -4.17006e-15
1493 1492 1.2736 6.30328 11.6226
1494 1493 -11.6946 5.45968 1.80134
1495 1494 1.82293 5.27135 11.5832
1496 1495 -12.8359 7 2.02
1497 1496 -1.64758 8.31952 9.88278
1498 1497 -13 2.26607 -4.87067e-15
1499 1498 -9.83246 9.81282 4.90666
1500 1499 1.2012 0 8.41185
1501 1500 -3.08182 8.37785 8.59666
1502 1501 -6.58243 0 2.38151
1503 1502 -7.92709 10 6.096
1504 1503 -1.86551 10 10.7879
1505 1504 4.70235 0 12.1133
1506 1505 -11.0487 7.74903 2.94103
1507 1506 -2.75 0 4.76314
1508 1507 -7.6102 7.37109 4.55535
1509 1508 0.13155 9.21078 11.9724
1510 1509 -0.00648884 0 7
1511 1510 -11.5 1.13303 -4.17006e-15
1512 1511 -11.3941 9.23761 3.50313
1513 1512 4.49161 1.19951 12.1994
1514 1513 -3.64059 0 4.03265
1515 1514 -4.20762 4.41169 5.21606
1516 1515 -12.9609 0 -0.98179
1517 1516 -12.9611 5.8215 1.00448
1518 1517 -2.61962 10 9.65078
1519 1518 -12.5585 8.10934 2.20922
1520 1519 -13 3.45453 -4.87067e-15
1521 1520 4.27694 2.39902 12.2763
1522 1521 0.366557 7.9168 11.0057
1523 1522 -8.41202 0 0.952913
1524 1523 3.94779 0 10.794
1525 1524 3.91636 3.59199 12.3961
1526 1525 0.707456 6.1228 10.1873
1527 1526 -4.40885 0 3.25536
1528 1527 3.55077 4.78495 12.5057
1529 1528 -8.59487 7.19062 3.53659
1530 1529 3.09681 5.89248 12.6258
1531 1530 -2.75 1.19559 4.76314
1532 1531 3.73684 1.19951 10.8758
1533 1532 -1.91664 3.07059 6.11751
1534 1533 2.63489 7 12.7185
1535 1534 -1.65377 0 5.16936
1536 1535 -8.66025 10 5
1537 1536 -10 0 -3.46945e-15
1538 1537 -9.72979 1.70291 0.621934
1539 1538 -0.608289 9.78499 11.0536
1540 1539 -11.5 2.3215 -4.17006e-15
1541 1540 -3.67268 1.19559 3.99187
1542 1541 -7.13974 8.94892 5.2265
1543 1542 -12.9625 1.13303 -0.987013
1544 1543 -10.0273 8.13819 3.07222
1545 1544 -5.47702 10.2038 7.04728
1546 1545 -8.33196 5.06597 2.4744
1547 1546 2.06109 8.09821 12.5965
1548 1547 -0.91664 5.76022 8.01987
1549 1548 -5.20762 3.05431 3.48401
1550 1549 3.1837 4.00279 11.268
1551 1550 -1.77201 8.37785 8.77127
1552 1551 -5.17228 7.43029 5.50652
1553 1552 3.19674 0 9.47528
1554 1553 -0.337774 8.31952 10.0574
1555 1554 -10.0223 4.8411 1.43868
1556 1555 -4.44455 10.2133 7.69819
1557 1556 -0.5557 10 10.9625
1558 1557 2.82062 5.19575 11.3827
1559 1558 -13 4.64299 -4.87067e-15
1560 1559 2.36268 6.30328 11.4891
1561 1560 -12.9595 7 0.999387
1562 1561 2.6436 2.80328 9.86752
1563 1562 -11.4295 0 -0.963449
1564 1563 -3.73906 8.82245 7.1783
1565 1564 -1.62072 1.19559 5.17657
1566 1565 -10.3067 9.83561 3.59494
1567 1566 2.20968 0 8.18295
1568 1567 -6.89803 0 1.19046
1569 1568 -3.37004 10.2036 8.26506
1570 1569 -1.91664 4.42797 6.11751
1571 1570 -1.31574 10 9.91306
1572 1571 -0.622797 0 5.44578
1573 1572 1.65962 2.80328 8.57554
1574 1573 -5.02144 0 2.19654
1575 1574 0.0691884 3.80278 7.43919
1576 1575 -6.42858 1.92778 1.86382
1577 1576 1.74956 7.40055 11.0782
1578 1577 -8.11891 1.70291 0.828095
1579 1578 -4.29122 1.19559 2.9228
1580 1579 -6.38416 10.3197 5.88461
1581 1580 1.40866 9.19455 11.8967
1582 1581 2.09046 5.60655 10.2598
1583 1582 1.22877 0 6.89131
1584 1583 -11.7081 9.22169 2.27938
1585 1584 5.63021 0 11.7154
1586 1585 -7.73039 9.05243 4.23525
1587 1586 -5.20762 4.41169 3.48401
1588 1587 -4.70182 9.00811 6.17767
1589 1588 -12.9436 2.33255 -1.20999
1590 1589 -0.337774 7.20474 8.69179
1591 1590 -11.4021 1.13303 -0.984591
1592 1591 -1.77201 7.26307 7.40567
1593 1592 -8.5 0 -2.93114e-15
1594 1593 -13 5.8215 -4.87067e-15
1595 1594 -9.23566 10 3.82553
1596 1595 -12.8416 0 -1.98432
1597 1596 -9.6341 6.27194 1.53556
1598 1597 -12.6911 8.14148 1.02892
1599 1598 1.04523 7.80328 10.1299
1600 1599 4.88037 0 10.3799
1601 1600 -9.82769 1.70291 -0.362658
1602 1601 5.62646 1.13303 11.7193
1603 1602 4.11685 5.89248 12.3309
1604 1603 3.66834 7 12.4614
1605 1604 -7.1945 10.3115 4.91707
1606 1605 -9.95197 0 -0.978898
1607 1606 -2.77201 5.93083 5.50332
1608 1607 0.66781 9.81266 10.9689
1609 1608 -2.39298 9.0074 7.51196
1610 1609 -11.3277 4.02441 -0.362658
1611 1610 -11.4021 2.3215 -0.984591
1612 1611 -12.9436 3.52101 -1.20999
1613 1612 5.4239 2.33255 11.8145
1614 1613 -0.385614 1.19559 5.1777
1615 1614 -10.7058 9.8071 2.44614
1616 1615 4.12824 0 9.10811
1617 1616 4.84837 1.13303 10.3668
1618 1617 -10.8575 6.63375 0.744222
1619 1618 -13 7 -4.87067e-15
1620 1619 -2 0 3.4641
1621 1620 -2.81549 0 2.84131
1622 1621 3.37921 6.30328 11.1931
1623 1622 -1.9037 10.3192 8.47232
1624 1623 -6.36971e-08 10 10
1625 1624 -5.31067 0 1.14224
1626 1625 -6.80053 8.10487 3.47051
1627 1626 0.0833601 3.07059 6.11751
1628 1627 3.30427 8.20031 12.2758
1629 1628 0.618077 0 5.44689
1630 1629 1.04523 6.68849 8.76429
1631 1630 -12.8108 1.19951 -2.20985
1632 1631 -11.3218 0 -1.97812
1633 1632 -8.76962 8.13375 2.23422
1634 1633 -8.23295 9.05243 3.00614
1635 1634 -8.22796 5.75535 1.3726
1636 1635 5.4239 3.52101 11.8145
1637 1636 -7 0 -2.39283e-15
1638 1637 -6.53763 5.98022 2.40832
1639 1638 5.08249 4.71397 11.9653
1640 1639 -1.0529 0 3.85894
1641 1640 -8.06322 10.2488 3.6831
1642 1641 -2 1.19559 3.4641
1643 1642 4.84837 2.3215 10.3668
1644 1643 -11.9283 9.16437 1.13187
1645 1644 -3.9341 10.8892 6.81407
1646 1645 -2.81549 1.19559 2.84131
1647 1646 -5.29122 1.19559 1.19075
1648 1647 3.38439 0 7.76148
1649 1648 -3.4641 0 2
1650 1649 -8.32769 1.70291 -0.362658
1651 1650 -2.77201 7.40235 5.50332
1652 1651 -10.9395 5.45525 -0.265777
1653 1652 -9.66537 10 2.54177
1654 1653 -8.41383 0 -0.949772
1655 1654 6.5 0 11.2583
1656 1655 -12.9611 5.8215 -1.00486
1657 1656 -3.19224e-08 8.88522 8.63441
1658 1657 2.98442 7.41426 10.7696
1659 1658 2.03106 4.73105 8.18361
1660 1659 1.60021 1.92778 6.49938
1661 1660 -6.33008 9.68269 4.14166
1662 1661 -6.27472 3.85556 1.34612
1663 1662 2.66216 9.23766 11.6194
1664 1663 2.41805 0 6.5691
1665 1664 -7.96505 3.63069 0.310404
1666 1665 -12.7873 8.10956 -4.80917e-15
1667 1666 0.0833601 4.42797 6.11751
1668 1667 -10.2936 7.7446 0.873913
1669 1668 4.29523 5.12477 10.759
1670 1669 -1.0529 1.19559 3.85894
1671 1670 -4.90544 11.1375 5.88541
1672 1671 -12.9035 4.71397 -1.58108
1673 1672 -11.2127 2.90242 -1.57977
1674 1673 -9.65538 3.40582 -0.725316
1675 1674 -2 2.39118 3.4641
1676 1675 -9.72979 1.70291 -1.34725
1677 1676 5.75 0 9.95929
1678 1677 -0.667796 10.3114 8.68871
1679 1678 -12.6348 0 -3.01826
1680 1679 -11.2871 1.19951 -2.2017
1681 1680 -12.7701 2.39902 -2.43422
1682 1681 4.66796 7 12.1265
1683 1682 6.5 1.13303 11.2583
1684 1683 2.36096 7.80328 9.95055
1685 1684 -4.40027 6.60541 3.46731
1686 1685 -9.8042 0 -1.96918
1687 1686 -4.43472e-10 0 4
1688 1687 -10.9395 6.63375 -0.265777
1689 1688 -7.83976 7.18619 1.46948
1690 1689 2.0386 9.83577 10.7232
1691 1690 -2.64571 11.1366 7.19118
1692 1691 -12.9595 7 -0.999719
1693 1692 -1.47826e-10 7.77043 7.26881
1694 1693 5 0 8.66025
1695 1694 5.75 1.13303 9.95929
1696 1695 4.13779 1.95932 8.44024
1697 1696 -3.86839 0 1.01763
1698 1697 -5.5 0 -1.88429e-15
1699 1698 -5.85962 11.2605 4.8128
1700 1699 -3.4641 2.39118 2
1701 1700 1.30482 10 9.91108
1702 1701 1.65408 0 5.17042
1703 1702 -9.27218 8.13375 1.00511
1704 1703 6.5 2.26607 11.2583
1705 1704 4.36513 8.10941 11.9809
1706 1705 -2 3.74856 3.4641
1707 1706 -8.52197 10.2505 2.47932
1708 1707 3.15381 1.95932 7.14825
1709 1708 -1 6.43819 5.36646
1710 1709 3.58465 4.7626 8.83248
1711 1710 -10.7518 9.8679 1.03921
1712 1711 -9.26718 4.83666 -0.628435
1713 1712 -12.5888 1.19951 -3.24368
1714 1713 -11.081 0 -2.99219
1715 1714 0.985828 5.81299 6.68813
1716 1715 5.61032 5.8215 11.7271
1717 1716 -12.1129 9.12967 -4.5088e-15
1718 1717 -1 9.0245 6.73205
1719 1718 -3.86839 1.19559 1.01763
1720 1719 5.75 2.3215 9.95929
1721 1720 4.25 0 7.36122
1722 1721 -5.5 1.19559 -1.88429e-15
1723 1722 1.61439 1.19559 5.1777
1724 1723 -6.06218 10.0408 3.5
1725 1724 -4.40027 8.07693 3.46731
1726 1725 -11.4652 5.12477 -1.65975
1727 1726 -6.89803 0 -1.19046
1728 1727 -9.91709 10 1.2596
1729 1728 6.5 3.45453 11.2583
1730 1729 -3.4641 3.74856 2
1731 1730 -6.82769 2.8985 -0.362658
1732 1731 -6.72136 11.1903 3.65719
1733 1732 7.32952 0 10.7344
1734 1733 -5.13736 3.12337 0.673062
1735 1734 -2.96705 9.4691 5.13908
1736 1735 -3.60401 11.9023 6.24233
1737 1736 -12.6935 3.59199 -2.80636
1738 1737 -10.496 7.69859 -0.265777
1739 1738 1.31573 8.88522 8.45508
1740 1739 -4.43472e-10 2.39118 4
1741 1740 -12.6909 8.14178 -1.03042
1742 1741 -6.33013 9.0245 2.5
1743 1742 0.847726 10.2483 8.82508
1744 1743 -2 5.10595 3.4641
1745 1744 -8.11891 1.70291 -1.55341
1746 1745 -4.70458 12.054 5.39539
1747 1746 3.87838 9.22197 11.2795
1748 1747 -1.24193 11.2591 7.48138
1749 1748 -5.40027 6.60541 1.73525
1750 1749 1.97166 3.85555 6.10746
1751 1750 1.0529 0 3.85894
1752 1751 6.549 0 9.41563
1753 1752 -8.19148 0 -2.17783
1754 1753 3.5 0 6.06218
1755 1754 5.61396 7 11.7231
1756 1755 7.33477 1.13303 10.7332
1757 1756 -3.92981 9.65476 4.13845
1758 1757 -1 7.90972 5.36646
1759 1758 -12.3433 0 -4.04307
1760 1759 -4 0 -1.37574e-15
1761 1760 6.5 4.64299 11.2583
1762 1761 -10.8574 6.63375 -1.27611
1763 1762 -8.87899 6.2675 -0.531554
1764 1763 -5.48331 12.1296 4.5697
1765 1764 -9.54738 0 -2.97446
1766 1765 2.53942 5.84454 7.33701
1767 1766 -6.82769 4.25589 -0.362658
1768 1767 -2.32884 12.054 6.76899
1769 1768 -5.13736 4.48076 0.673062
1770 1769 -3.4641 5.10595 2
1771 1770 3.23426 9.80709 10.4947
1772 1771 -4.43472e-10 3.74856 4
1773 1772 -12.8358 7 -2.02067
1774 1773 -11.099 9.79145 -4.02035e-15
1775 1774 5.03942 1.95932 8.03273
1776 1775 -8.89269 10.211 1.25265
1777 1776 1.0529 1.19559 3.85894
1778 1777 5.82374 0 8.12921
1779 1778 6.55373 1.13303 9.38221
1780 1779 -5.13232 9.09318 2.73525
1781 1780 -7.43167 11.0228 2.4048
1782 1781 -12.7373 5.89248 -2.60017
1783 1782 -7.73071 3.13375 -1.45653
1784 1783 -2.96705 10.772 5.13908
1785 1784 -1.62097 9.65405 5.47274
1786 1785 -9.43949 8.13375 -0.265777
1787 1786 -4 1.19559 -1.37574e-15
1788 1787 -2 6.57747 3.4641
1789 1788 3.99342 6.36467 8.79157
1790 1789 2.63145 10 9.64134
1791 1790 2.75 0 4.76314
1792 1791 -5.30476 0 -1.15274
1793 1792 -9.79291 4.50619 -2.0224
1794 1793 -9.86732 2.80328 -2.64434
1795 1794 -11.3503 4.00279 -2.87685
1796 1795 -3.20703e-08 10.0408 7
1797 1796 5.45306 8.14178 11.5058
1798 1797 -4.47515 13 5.38266
1799 1798 6.5 5.8215 11.2583
1800 1799 -3.5 13 6.06218
1801 1800 -5.40027 8.07693 1.73525
1802 1801 -12.6056 4.78495 -3.17778
1803 1802 -6.1469 12.1618 3.61682
1804 1803 5.03126 0 6.80857
1805 1804 4.28942 1.95932 6.73369
1806 1805 3.52525 3.8871 6.75633
1807 1806 7.51903 2.33247 10.6049
1808 1807 6.55373 2.3215 9.38221
1809 1808 -12.395 2.54958 -3.91979
1810 1809 -6.83269 9.0245 1.27088
1811 1810 -10.8218 1.35007 -3.66914
1812 1811 -10.7616 0 -4.00462
1813 1812 -11.9281 9.16447 -1.13255
1814 1813 5.78942 4.28082 9.33177
1815 1814 -4.43472e-10 5.10595 4
1816 1815 0.18871 11.1904 7.64943
1817 1816 -3.92981 10.9576 4.13845
1818 1817 -5.34536 13 4.51964
1819 1818 -1.21829 12.1292 7.03323
1820 1819 2.75 1.19559 4.76314
1821 1820 1.98583 3.12337 4.78578
1822 1821 -4 2.39118 -1.37574e-15
1823 1822 -4.66186 10.671 3.4064
1824 1823 -3.4641 6.57747 2
1825 1824 -10 10 -3.46945e-15
1826 1825 1 6.43819 5.36646
1827 1826 -5.29122 1.19559 -1.19075
1828 1827 -2.42395 13 6.56692
1829 1828 -6.43949 5.68673 -0.265777
1830 1829 8.13697 0 10.1309
1831 1830 1 9.0245 6.73205
1832 1831 2.11257 10.2508 8.61954
1833 1832 -10.2932 7.74474 -1.40626
1834 1833 2 0 3.4641
1835 1834 -6.58243 0 -2.38151
1836 1835 -12.5584 8.10941 -2.21016
1837 1836 -2.95649e-10 8.92597 5.63441
1838 1837 4.98323 9.16447 10.8963
1839 1838 7.51903 3.52093 10.6049
1840 1839 6.5 7 11.2583
1841 1840 -2 8.049 3.4641
1842 1841 -1.62097 10.9569 5.47274
1843 1842 -9.40472 5.93703 -1.92552
1844 1843 5.28217 7.0614 9.72492
1845 1844 7.37247 0 8.81743
1846 1845 -8.3736 8.57835 -0.265777
1847 1846 -7.88548 0 -3.16566
1848 1847 -11.3831 6.30328 -2.67008
1849 1848 -3.86839 0 -1.01763
1850 1849 2.94819 7.44661 7.29609
1851 1850 -6.05893 13 3.50562
1852 1851 -4 3.74856 -1.37574e-15
1853 1852 -5.29122 2.55297 -1.19075
1854 1853 -12.1153 1.35007 -4.71363
1855 1854 1.98583 4.48075 4.78578
1856 1855 -6.80207 12.0195 2.3249
1857 1856 2 1.19559 3.4641
1858 1857 -7.73227 11.0262 1.18707
1859 1858 -4.43472e-10 6.57747 4
1860 1859 4.47998 0 5.37864
1861 1860 -9.183 0 -3.95885
1862 1861 -5.44789 10.5521 2.2024
1863 1862 -11.268 5.19575 -3.24863
1864 1863 -11.9521 0 -5.08721
1865 1864 5.84316 1.95932 7.45565
1866 1865 -12.6261 7 -3.05385
1867 1866 -1.24145 13 6.88904
1868 1867 -0.620967 10.6703 5.74069
1869 1868 5.07885 3.91864 7.4052
1870 1869 6.60746 0 7.50609
1871 1870 -2.75 11.8274 4.76314
1872 1871 -10.7508 9.86817 -1.04107
1873 1872 -8.8891 10.2133 -3.02354e-15
1874 1873 -8.25644 2.80328 -2.8505
1875 1874 3.53942 3.15491 5.43465
1876 1875 8.3174 1.19944 9.99104
1877 1876 -3.4641 8.049 2
1878 1877 -6.43949 7.15825 -0.265777
1879 1878 1 7.90972 5.36646
1880 1879 -3.86839 1.19559 -1.01763
1881 1880 -0.0536171 12.1599 7.13244
1882 1881 -3.67268 11.8274 3.99187
1883 1882 -12.2732 3.74254 -4.28596
1884 1883 -12.4826 5.89248 -3.63096
1885 1884 4.88738 8.17238 9.30142
1886 1885 -2.81549 9.06525 2.84131
1887 1886 -5.71584 9.5359 1.2024
1888 1887 -4.66186 12.1303 3.4064
1889 1888 6.39364 8.10956 11.0741
1890 1889 -9.55672 2.80328 -3.63917
1891 1890 -5.02618 0 -2.18817
1892 1891 2 2.39118 3.4641
1893 1892 7.34923 5.8215 10.7233
1894 1893 6.78539 3.15876 8.62417
1895 1894 4.47383 9.86817 9.83104
1896 1895 1.63423 11.0231 7.63794
1897 1896 6.19819 5.88289 9.29085
1898 1897 -2 9.35188 3.4641
1899 1898 7.54969 1.19944 8.67461
1900 1899 3.8677 10 9.21825
1901 1900 -9.27218 8.13375 -1.53666
1902 1901 -4 5.10595 -1.37574e-15
1903 1902 -12.3195 4.86055 -4.15102
1904 1903 3.64455 0 4.02805
1905 1904 -1.62072 11.8274 5.17657
1906 1905 7.08754 4.50671 9.4239
1907 1906 -1.0529 9.06525 3.85894
1908 1907 4.26392 8.5614 8.48235
1909 1908 -10.5112 1.35007 -4.66398
1910 1909 7.82008 4.71378 10.3849
1911 1910 -7.97518 5.58813 -2.17986
1912 1911 3.53942 4.51229 5.43465
1913 1912 -6.58243 13 2.38151
1914 1913 -10.3354 0 -5.01685
1915 1914 -11.7075 9.22197 -2.28096
1916 1915 -4.43472e-10 8.049 4
1917 1916 -10.819 7.41426 -2.80022
1918 1917 5.21625 1.95932 5.9575
1919 1918 2.31573 9.0245 6.55272
1920 1919 5.98014 0 6.00791
1921 1920 3.36952 10.2096 8.32823
1922 1921 8.49192 2.39887 9.84313
1923 1922 -9.91709 10 -1.2596
1924 1923 8.9295 0 9.43457
1925 1924 -7.11761 11.9497 1.2279
1926 1925 -2.75 13 4.76314
1927 1926 -0.00648884 13 7
1928 1927 2 3.74856 3.4641
1929 1928 -5.02327 11.5408 2.19075
1930 1929 2.81549 0 2.84131
1931 1930 3.67683 1.19559 3.98695
1932 1931 -9.93045 5.60655 -3.31949
1933 1932 7.34406 7 10.7244
1934 1933 -3.64991 13 4.01689
1935 1934 6.05647 9.12967 10.4901
1936 1935 -0.620967 12.1295 5.74069
1937 1936 6.19819 7.0614 9.29085
1938 1937 -2.81549 10.3681 2.84131
1939 1938 -12.2833 8.20031 -3.27632
1940 1939 -5.71584 10.8388 1.2024
1941 1940 0.817115 10.5523 5.81897
1942 1941 -10.885 4.15334 -4.34429
1943 1942 -7.86821 10.8892 -2.62054e-15
1944 1943 -11.1312 6.30328 -3.69842
1945 1944 8.1321 0 8.09956
1946 1945 -4 6.57747 -1.37574e-15
1947 1946 -2 10.6548 3.4641
1948 1947 -4.40479 13 3.26225
1949 1948 5.48762 5.52072 7.36428
1950 1949 -3.4641 0 -2
1951 1950 -7.34272 0 -4.12661
1952 1951 -6.05893 0 -3.50562
1953 1952 -3.4641 10.0815 2
1954 1953 -1.67208 13 5.16917
1955 1954 2.81549 1.19559 2.84131
1956 1955 7.14127 2.18521 7.54778
1957 1956 -11.8395 2.70013 -5.3691
1958 1957 -1.0529 10.3681 3.85894
1959 1958 6.37696 4.14453 7.49733
1960 1959 1.38684 12.02 7.05319
1961 1960 -10.9428 5.27135 -4.21289
1962 1961 -11.6681 1.35007 -5.73188
1963 1962 -12.332 7 -4.07735
1964 1963 -5.9341 9.4691 -1.99814e-15
1965 1964 -3.86839 9.06525 1.01763
1966 1965 -7.58698 7.01897 -2.08298
1967 1966 2 5.10595 3.4641
1968 1967 7.34965 0 6.78105
1969 1968 -11.4799 0 -6.08617
1970 1969 -8.89722 10.2096 -1.24602
1971 1970 -8.68026 0 -4.96519
1972 1971 9.10216 1.19944 9.28174
1973 1972 5.5495 9.79145 9.61202
1974 1973 1.81711 9.53604 5.55102
1975 1974 -11.8981 3.81814 -5.23797
1976 1975 -12.1601 5.96808 -4.59703
1977 1976 7.2354 8.14132 10.4773
1978 1977 -9.79791 7.80328 -2.93063
1979 1978 5.35366 0 4.5098
1980 1979 5.97643 8.12623 8.90674
1981 1980 -10.7058 9.80709 -2.44638
1982 1981 8.0835 3.38465 8.7163
1983 1982 -6.89803 13 1.19046
1984 1983 2.83555 11.0273 7.28979
1985 1984 -6.4387 3.88522 -3.00796
1986 1985 8.77566 3.59172 9.59103
1987 1986 3.94819 6.11437 5.39373
1988 1987 -0.6148 13 5.44585
1989 1988 -11.9552 4.93615 -5.10629
1990 1989 -4.43472e-10 10.0815 4
1991 1990 -5.02618 13 2.18817
1992 1991 0.614386 11.5408 5.44565
1993 1992 -4 8.049 -1.37574e-15
1994 1993 -2 11.8274 3.4641
1995 1994 -2.81549 11.8274 2.84131
1996 1995 5 10 8.66025
1997 1996 -5.29122 11.8274 1.19075
1998 1997 4.41298 0 3.25043
1999 1998 -3.4641 2.39118 -2
2000 1999 1.22877 13 6.89131
2001 2000 -6.83269 9.0245 -1.27088
2002 2001 6.51437 2.18521 6.04963
2003 2002 -4.40479 0 -3.26225
2004 2003 -4.29122 1.19559 -2.9228
2005 2004 -9.95349 1.35007 -5.639
2006 2005 -7.20802 11.9023 -2.23652e-15
2007 2006 5.44819 8.5614 7.99181
2008 2007 -3.4641 11.5408 2
2009 2008 2 6.57747 3.4641
2010 2009 -5.9341 10.772 -1.99814e-15
2011 2010 -3.86839 10.3681 1.01763
2012 2011 6.68491 0 5.24512
2013 2012 -9.76959 0 -6.00909
2014 2013 -1.0529 11.8274 3.85894
2015 2014 1.0529 9.06525 3.85894
2016 2015 8.16502 7 10.1081
2017 2016 7.0307 7.0614 8.71574
2018 2017 9.6718 0 8.66942
2019 2018 -11.3937 9.23766 -3.50419
2020 2019 1.81711 10.8389 5.55102
2021 2020 -5.14749 6.43819 -1.8172
2022 2021 4.44455 10.2133 7.69819
2023 2022 3.4641 0 2
2024 2023 -10.4688 7.40055 -4.02396
2025 2024 5.89639 7.12279 7.32337
2026 2025 7.92005 5.68521 8.84879
2027 2026 6.94388 9.1643 9.76467
2028 2027 -9.66537 10 -2.54177
2029 2028 6.78573 5.74661 7.45642
2030 2029 2.50731 11.9463 6.77517
2031 2030 -3.4641 3.74856 -2
2032 2031 -4.67973 2.96868 -2.97675
2033 2032 8.61813 5.89229 9.73282
2034 2033 8.58792 1.34981 7.53819
2035 2034 3.94819 7.5859 5.39373
2036 2035 8.84755 0 7.31945
2037 2036 -10.7023 6.30328 -4.70833
2038 2037 -7.73092 11.0273 -1.18924
2039 2038 -4 9.35188 -1.37574e-15
2040 2039 -8.11271 6.68849 -3.47695
2041 2040 -2.81549 0 -2.84131
2042 2041 -11.9395 8.09821 -4.5133
2043 2042 7.67507 4.37042 7.58947
2044 2043 4.91525 9.006 7.06872
2045 2044 -5.97095 1.77309 -4.1675
2046 2045 -2 13 3.4641
2047 2046 7.84752 2.18521 6.78138
2048 2047 -2.81549 13 2.84131
2049 2048 8.36411 4.5775 8.45951
2050 2049 -4.43472e-10 11.5408 4
2051 2050 -5.30476 13 1.15274
2052 2051 0.608466 13 5.44697
2053 2052 9.05314 4.78457 9.32956
2054 2053 -11.9427 7 -5.10957
2055 2054 -7.27123 1.77309 -4.95617
2056 2055 8.01997 0 5.97328
2057 2056 2 8.049 3.4641
2058 2057 2.96705 9.4691 5.13908
2059 2058 -5.71588 9.53604 -1.20184
2060 2059 -5.34536 0 -4.51964
2061 2060 -7 13 -1.94874e-15
2062 2061 9.59093 2.54924 8.77576
2063 2062 -6.70346 0 -5.21982
2064 2063 -10.9349 0 -7.0264
2065 2064 -9.04546 5.90612 -4.50576
2066 2065 6.27551 9.86785 8.79222
2067 2066 -1.0529 13 3.85894
2068 2067 -2.81549 1.19559 -2.84131
2069 2068 1.0529 10.3681 3.85894
2070 2069 -8.06752 0 -5.90891
2071 2070 -11.7283 5.96808 -5.6077
2072 2071 -4.67973 4.32606 -2.97675
2073 2072 -3.4641 5.10595 -2
2074 2073 3.9341 10.8892 6.81407
2075 2074 -5.14749 7.90972 -1.8172
2076 2075 -3.86839 11.8274 1.01763
2077 2076 -5.5 11.8274 -1.66224e-15
2078 2077 -3.4641 13 2
2079 2078 1.61439 11.8274 5.1777
2080 2079 -8.52103 10.2508 -2.48024
2081 2080 8.19083 8.10919 9.77291
2082 2081 6.86177 8.17218 8.16207
2083 2082 3.4641 2.39118 2
2084 2083 -11.156 2.50143 -6.67406
2085 2084 7.75111 6.796 8.29512
2086 2085 5.74604 5.90028 5.55394
2087 2086 -10.3059 9.83577 -3.59612
2088 2087 -10.9445 1.15137 -7.01563
2089 2088 6.06542 0 3.49438
2090 2089 2.41805 13 6.5691
2091 2090 -7.64496 4.57636 -4.63649
2092 2091 -9.29535 7.80328 -4.15975
2093 2092 -4 10.6548 -1.37574e-15
2094 2093 -7.98017 8.88522 -3.08809
2095 2094 -10.1303 5.13385 -5.6059
2096 2095 -3.64991 0 -4.01689
2097 2096 -8.59946 3.12315 -5.6613
2098 2097 -7.12112 11.9463 -1.21619
2099 2098 6.04905 10 7.9589
2100 2099 4.67683 1.19559 2.2549
2101 2100 5.02365 0 2.19049
2102 2101 2 9.35188 3.4641
2103 2102 -3.86839 9.06525 -1.01763
2104 2103 10.1385 1.34981 8.13701
2105 2104 8.95521 7 9.41004
2106 2105 -9.19956 0 -6.89942
2107 2106 -11.156 3.68064 -6.67406
2108 2107 3.4641 3.74856 2
2109 2108 2.96705 10.772 5.13908
2110 2109 -5.71588 10.8389 -1.20184
2111 2110 -4.43472e-10 13 4
2112 2111 7.24814 0 4.29044
2113 2112 -6.33013 9.0245 -2.5
2114 2113 -3.4641 6.57747 -2
2115 2114 3.86839 0 1.01763
2116 2115 -3.67268 1.19559 -3.99187
2117 2116 10.3809 0 7.80836
2118 2117 6.46485 8.5614 7.21177
2119 2118 8.68495 5.68521 8.11655
2120 2119 9.12173 3.53502 7.57988
2121 2120 7.35419 7.18521 7.34482
2122 2121 -3.86839 13 1.01763
2123 2122 -5.5 13 -1.66224e-15
2124 2123 1.0529 11.8274 3.85894
2125 2124 9.84692 3.74209 8.48753
2126 2125 3.60401 11.9023 6.24233
2127 2126 9.3837 5.89229 8.99701
2128 2127 4.51665 9.0245 5.28214
2129 2128 5.53086 10.211 7.07524
2130 2129 -11.2293 4.79865 -6.55008
2131 2130 -11.0072 9.19455 -4.72843
2132 2131 9.29417 1.34981 6.77179
2133 2132 1.66612 13 5.1703
2134 2133 4.20662 6.49393 3.58339
2135 2134 -2 0 -3.4641
2136 2135 7.82715 9.22158 9.00077
2137 2136 -9.19882 1.15137 -6.90061
2138 2137 9.51281 0 6.44161
2139 2138 -4 11.8274 -1.37574e-15
2140 2139 9.03653 4.65247 7.69607
2141 2140 -7.43176 11.0231 -2.40368
2142 2141 3.86839 1.19559 1.01763
2143 2142 -11.4723 8.14048 -5.56159
2144 2143 -9.23566 10 -3.82553
2145 2144 9.75286 4.85955 8.59545
2146 2145 3.4641 5.10595 2
2147 2146 -11.4741 7 -6.09717
2148 2147 -6.89803 13 -1.19046
2149 2148 -2 1.19559 -3.4641
2150 2149 -5.98639 0 -6.0023
2151 2150 -5.35241 1.77309 -5.23657
2152 2151 2 10.6548 3.4641
2153 2152 -10.3301 0 -7.89231
2154 2153 -6.71349 1.77309 -5.9312
2155 2154 -3.86839 10.3681 -1.01763
2156 2155 -6.29498 7.77043 -3.63441
2157 2156 8.64011 0 5.03472
2158 2157 -9.58384 7.70012 -5.21023
2159 2158 6.15481 7.50235 5.51303
2160 2159 -7.38438 0 -6.74321
2161 2160 2.75 11.8274 4.76314
2162 2161 -3.4641 8.049 -2
2163 2162 3.89917 9.5359 4.34891
2164 2163 7.04415 6.12617 5.64608
2165 2164 -5.29122 11.8274 -1.19075
2166 2165 -4.47515 0 -5.38266
2167 2166 -9.81729 6.60284 -5.8946
2168 2167 8.97588 8.19974 9.00298
2169 2168 1.0529 13 3.85894
2170 2169 4.89411 11.0262 6.10285
2171 2170 4.20662 7.96546 3.58339
2172 2171 -7.22772 6.98806 -4.66322
2173 2172 3.5 13 6.06218
2174 2173 -10.3301 1.15137 -7.8923
2175 2174 -2 2.39118 -3.4641
2176 2175 7.47033 9.80708 8.04943
2177 2176 2.81549 9.06525 2.84131
2178 2177 -8.0666 10.2483 -3.67839
2179 2178 -5.44793 10.5523 -2.20184
2180 2179 -4 13 -1.37574e-15
2181 2180 7.28753 4.18161 4.61195
2182 2181 3.4641 6.57747 2
2183 2182 8.63634 6.78255 7.37937
2184 2183 6.5868 0 2.36939
2185 2184 -4.87954 8.92597 -2.8172
2186 2185 4 0 0
2187 2186 5.31268 0 1.13652
2188 2187 -2.75 0 -4.76314
2189 2188 5.7481 3.41788 2.6414
2190 2189 -4.14749 6.43819 -3.54925
2191 2190 -6.80166 12.02 -2.32555
2192 2191 -8.16047 6.20569 -5.69203
2193 2192 -5.82722 5.6583 -4.79395
2194 2193 9.69483 7 8.64363
2195 2194 -9.83322 9.81266 -4.90609
2196 2195 10.5684 2.69961 7.57029
2197 2196 2 11.8274 3.4641
2198 2197 -7.47761 8.88522 -4.3172
2199 2198 -8.46213 0 -7.71803
2200 2199 -10.3301 2.30274 -7.8923
2201 2200 -10.9413 5.83057 -7.02053
2202 2201 -1.0529 0 -3.85894
2203 2202 10.797 1.34981 7.24049
2204 2203 8.13517 5.7001 5.92583
2205 2204 -5.31067 13 -1.14224
2206 2205 2.75 13 4.76314
2207 2206 7.03331 10 7.10018
2208 2207 -2 3.74856 -3.4641
2209 2208 -3.67973 2.96868 -4.7088
2210 2209 11.0102 0 6.89957
2211 2210 5.2934 1.19559 1.1847
2212 2211 9.34555 5.68521 7.23992
2213 2212 3.89917 10.8388 4.34891
2214 2213 -3.86839 11.8274 -1.01763
2215 2214 10.0591 5.96726 8.23501
2216 2215 10.4838 3.81706 7.68699
2217 2216 4 1.19559 0
2218 2217 -2.75 1.19559 -4.76314
2219 2218 7.87151 0 3.19672
2220 2219 -7.8448 2.92446 -6.9229
2221 2220 9.8597 1.34981 5.80126
2222 2221 -6.75997 4.87593 -5.82276
2223 2222 -8.47744 1.15137 -7.69157
2224 2223 -8.41036 8.10284 -5.34602
2225 2224 -9.2453 5.43341 -6.79217
2226 2225 -1.0529 1.19559 -3.85894
2227 2226 4.62214 11.9497 5.55012
2228 2227 2.81549 10.3681 2.84131
2229 2228 -10.9612 0 -8.9853
2230 2229 7.27832 8.5614 6.16168
2231 2230 5.7481 4.77527 2.6414
2232 2231 10.0875 0 5.45852
2233 2232 -10.3301 3.48194 -7.8923
2234 2233 10.398 4.93452 7.80267
2235 2234 8.16766 7.18521 6.29473
2236 2235 -3.4641 10.0815 -2
2237 2236 6.40778 10.2506 6.14093
2238 2237 -10.4342 9.21078 -5.87228
2239 2238 -6.06218 10.0408 -3.5
2240 2239 3.4641 8.049 2
2241 2240 -5.02327 11.5408 -2.19075
2242 2241 8.73008 9.23756 8.11692
2243 2242 5.33013 9.0245 4.23205
2244 2243 7.42493 2.22229 3.16425
2245 2244 -10.9317 7 -7.03152
2246 2245 4 2.39118 0
2247 2246 -4.14749 7.90972 -3.54925
2248 2247 -3.67973 4.32606 -4.7088
2249 2248 -2 5.10595 -3.4641
2250 2249 -5.99211 1.77309 -6.72217
2251 2250 2 13 3.4641
2252 2251 -6.58243 13 -2.38151
2253 2252 -10.8695 8.12108 -6.68802
2254 2253 -7.8448 4.10366 -6.9229
2255 2254 -10.9612 1.15137 -8.9853
2256 2255 -6.62475 0 -7.49084
2257 2256 6.72327 8.94096 5.40143
2258 2257 9.15102 0 4.03222
2259 2258 -5.35947 3.54618 -5.9535
2260 2259 -8.66025 10 -5
2261 2260 -4.42973 1.77309 -6.00784
2262 2261 3.86839 0 -1.01763
2263 2262 -5.03767 0 -6.80457
2264 2263 -10.3301 4.66114 -7.8923
2265 2264 3.67683 11.8274 3.98695
2266 2265 -9.2453 6.60284 -6.79217
2267 2266 -3.86839 13 -1.01763
2268 2267 -3.5 0 -6.06218
2269 2268 -6.71896 11.1904 -3.66129
2270 2269 -9.48958 0 -8.88526
2271 2270 -4.43469e-10 0 -4
2272 2271 9.83754 4.51358 6.29473
2273 2272 -8.98164 7.68566 -6.33549
2274 2273 -6.07654 9.51477 -4.22532
2275 2274 4.47998 13 5.37864
2276 2275 8.58564 4.4075 4.70408
2277 2276 4 3.74856 0
2278 2277 -1.67208 0 -5.16917
2279 2278 9.87708 8.09842 8.08463
2280 2279 3.86839 1.19559 -1.01763
2281 2280 -5.84667 7.30265 -5.19384
2282 2281 8.75809 2.22229 3.89599
2283 2282 5.79835 11.0228 5.23371
2284 2283 5.5 0 0
2285 2284 8.26575 9.83564 7.12933
2286 2285 2.81549 11.8274 2.84131
2287 2286 -9.43967 1.15137 -8.84286
2288 2287 6.8991 0 1.18426
2289 2288 -2.81549 9.06525 -2.84131
2290 2289 4.63123 10.5522 3.61686
2291 2290 -3.4641 11.5408 -2
2292 2291 -2 6.57747 -3.4641
2293 2292 10.3946 7 7.79021
2294 2293 -10.3301 5.83057 -7.8923
2295 2294 -5.02144 13 -2.19654
2296 2295 6.41324 7.88191 3.70269
2297 2296 5.20662 6.49393 1.85134
2298 2297 4.93867 8.98171 2.85134
2299 2298 -6.77942 6.52028 -6.22265
2300 2299 -11.1086 2.66268 -9.24067
2301 2300 -1.62072 1.19559 -5.17657
2302 2301 3.4641 0 -2
2303 2302 -11.5922 0 -10.0783
2304 2303 11.5523 0 5.95712
2305 2304 5.5 1.19559 0
2306 2305 -6.95434 1.77309 -7.87346
2307 2306 8.19288 0 2.18046
2308 2307 3.65068 13 4.01769
2309 2308 3.4641 10.0815 2
2310 2309 -9.26854 9.78499 -6.05359
2311 2310 -4.6611 10.6703 -3.40812
2312 2311 10.7192 5.96726 7.35524
2313 2312 1.0529 0 -3.85894
2314 2313 -9.21595 10 -5.9625
2315 2314 4 5.10595 0
2316 2315 -7.58719 0 -8.64176
2317 2316 -7.19075 10.3114 -4.92269
2318 2317 -4.43469e-10 2.39118 -4
2319 2318 10.575 0 4.51706
2320 2319 11.3575 2.50203 6.32521
2321 2320 -3.69919 5.97041 -5.10869
2322 2321 -6.15006 12.1599 -3.61265
2323 2322 -7.02931 8.41744 -5.87664
2324 2323 11.5475 1.15222 5.97113
2325 2324 7.93057 10 6.08588
2326 2325 5.41441 12.0195 4.72837
2327 2326 -5.37892 5.19052 -6.35339
2328 2327 -5.17973 1.77309 -7.30687
2329 2328 2.81549 0 -2.84131
2330 2329 -10.3301 7 -7.8923
2331 2330 -11.1086 3.84188 -9.24067
2332 2331 2 0 -3.4641
2333 2332 2.81549 13 2.84131
2334 2333 1.0529 1.19559 -3.85894
2335 2334 -5.83292 0 -8.12262
2336 2335 -7.60424 8.10284 -6.39304
2337 2336 -2.81549 10.3681 -2.84131
2338 2337 -4.25 0 -7.36122
2339 2338 7.50425 7.45585 3.98244
2340 2339 -2 8.049 -3.4641
2341 2340 -10.0707 0 -9.93585
2342 2341 4.40888 11.5408 3.2549
2343 2342 9.53198 0 3.02346
2344 2343 10.5755 1.15222 4.51611
2345 2344 -9.8028 9.16563 -6.97894
2346 2345 7.22122 10.2488 5.14146
2347 2346 5.20662 7.96546 1.85134
2348 2347 9.59762 9.19468 7.16928
2349 2348 8.0415 2.22229 2.09405
2350 2349 -0.6148 0 -5.44585
2351 2350 -4.43469e-10 3.74856 -4
2352 2351 11.3575 3.67817 6.32521
2353 2352 10.0323 3.5721 4.6945
2354 2353 -3.4641 13 -2
2355 2354 5.30369 0 -1.15247
2356 2355 -2.42395 0 -6.56692
2357 2356 -11.7396 1.51131 -10.3337
2358 2357 -10.1851 8.1968 -7.64115
2359 2358 2.81549 1.19559 -2.84131
2360 2359 3.4641 2.39118 -2
2361 2360 -6.05893 13 -3.50562
2362 2361 2 1.19559 -3.4641
2363 2362 4 6.57747 0
2364 2363 -9.78723 9.58281 -6.95197
2365 2364 -3.92905 9.65405 -4.14017
2366 2365 9.09644 8.11223 5.71573
2367 2366 3.86839 9.06525 1.01763
2368 2367 -0.385614 1.19559 -5.1777
2369 2368 -7.86425 6.91744 -7.32279
2370 2369 -10.9706 5.6792 -9.0016
2371 2370 3.4641 11.5408 2
2372 2371 6.06218 10.0408 3.5
2373 2372 7.53675 8.94096 4.35134
2374 2373 -7.92709 10 -6.096
2375 2374 -4.6611 12.1295 -3.40812
2376 2375 11.2864 4.79563 6.45106
2377 2376 -3.69919 7.44194 -5.10869
2378 2377 -9.77165 10 -6.925
2379 2378 6.7481 3.41788 0.909349
2380 2379 7 0 0
2381 2380 5.2934 1.19559 -1.1847
2382 2381 -8.54921 0 -9.79342
2383 2382 8.59526 7.02978 4.26219
2384 2383 5.35366 13 4.5098
2385 2384 10.5513 8.14031 7.15666
2386 2385 9.32361 2.22229 2.92546
2387 2386 9.80565 7.01489 5.57628
2388 2387 2 2.39118 -3.4641
2389 2388 -2 9.35188 -3.4641
2390 2389 -8.16623 4.88409 -8.40831
2391 2390 -4.43469e-10 5.10595 -4
2392 2391 3.4641 3.74856 -2
2393 2392 11.016 7 6.89038
2394 2393 -12.2628 0 -11.2398
2395 2394 -7.45714 6.24566 -7.71188
2396 2395 -9.25106 2.93262 -9.50845
2397 2396 -5.8581 11.2591 -4.81624
2398 2397 -2.81549 11.8274 -2.84131
2399 2398 12 0 5
2400 2399 -5.62824 9.04699 -5.78476
2401 2400 -6.74506 0 -9.25854
2402 2401 -2.39204 3.05653 -6.29404
2403 2402 4.40811 13 3.25871
2404 2403 -10.9706 6.84863 -9.0016
2405 2404 -8.68907 8.5 -7.49318
2406 2405 8.40993 0 0.963642
2407 2406 4 8.049 0
2408 2407 7.95472 6.16325 2.76069
2409 2408 -4.40885 13 -3.25536
2410 2409 9.16522 9.81283 6.06224
2411 2410 -11.8871 3.02262 -10.589
2412 2411 8.62776 8.51489 4.63109
2413 2412 6.7481 4.77527 0.909349
2414 2413 -3.92905 10.9569 -4.14017
2415 2414 6.52784 11.1903 3.99233
2416 2415 3.86839 10.3681 1.01763
2417 2416 -3.37043 0 -7.76504
2418 2417 -5.39837 6.83487 -6.75328
2419 2418 5.02759 0 -2.18353
2420 2419 10.9137 0 3.47184
2421 2420 -8.42541 9.58281 -7.03649
2422 2421 0.608466 0 -5.44697
2423 2422 6.75552 9.57122 3.18544
2424 2423 -6.76573 3.55434 -8.53904
2425 2424 2 3.74856 -3.4641
2426 2425 -5 0 -8.66025
2427 2426 -10.633 8.5 -8.41687
2428 2427 5.28096 10.671 2.3341
2429 2428 12 1.15222 5
2430 2429 4.67683 1.19559 -2.2549
2431 2430 -6.38539 10.3192 -5.88481
2432 2431 -9.25106 4.11182 -9.50845
2433 2432 -10.3693 9.58281 -7.96019
2434 2433 -5.48182 12.1292 -4.57169
2435 2434 3.4641 5.10595 -2
2436 2435 -8.40983 10 -7.00952
2437 2436 3.4641 13 2
2438 2437 9.79963 0 1.99178
2439 2438 -4.43469e-10 6.57747 -4
2440 2439 10.8998 1.15222 3.49589
2441 2440 -2 10.6548 -3.4641
2442 2441 -2.39204 4.41391 -6.29404
2443 2442 10.2976 5.84326 4.63109
2444 2443 -1.24145 0 -6.88904
2445 2444 -10.3537 10 -7.93322
2446 2445 -11.7491 4.85994 -10.35
2447 2446 -12.4103 1.51131 -11.4952
2448 2447 -4.07178 3.63403 -7.53874
2449 2448 8.66025 10 5
2450 2449 -9.8821 1.78125 -10.6014
2451 2450 8.2481 2.22229 0.909349
2452 2451 -6.22319 8.41744 -6.92366
2453 2452 12 2.30445 5
2454 2453 -3.67268 11.8274 -3.99187
2455 2454 -2.81549 13 -2.84131
2456 2455 -3.14204 1.86094 -7.59308
2457 2456 11.5501 5.82837 5.9661
2458 2457 9.04573 5.73718 3.04044
2459 2458 1.66612 0 -5.1703
2460 2459 4 9.35188 0
2461 2460 -1.0529 9.06525 -3.85894
2462 2461 7.84654 9.14515 3.46519
2463 2462 2 5.10595 -3.4641
2464 2463 -9.25106 5.28125 -9.50845
2465 2464 -10.2595 0 -11.2828
2466 2465 4.40811 0 -3.25871
2467 2466 6.8991 0 -1.18426
2468 2467 -8.54197 6.64281 -8.81201
2469 2468 6.20571 12.1618 3.51497
2470 2469 10.3006 9.21205 6.10081
2471 2470 -9.37694 8.5 -8.4699
2472 2471 5.54891 9.65476 1.3341
2473 2472 -5.34536 13 -4.51964
2474 2473 3.86839 11.8274 1.01763
2475 2474 3.65068 0 -4.01769
2476 2475 3.4641 6.57747 -2
2477 2476 1.61439 1.19559 -5.1777
2478 2477 -9.11328 9.58281 -8.01322
2479 2478 9.64792 2.22229 1.90524
2480 2479 9.76887 8.09892 4.63109
2481 2480 12 3.48059 5
2482 2481 10.2976 7.01489 4.63109
2483 2482 -2.96705 9.4691 -5.13908
2484 2483 7.85555 10.3115 3.7721
2485 2484 -11.611 6.69727 -10.1109
2486 2485 2.75 0 -4.76314
2487 2486 8.5 0 0
2488 2487 5.28096 12.1303 2.3341
2489 2488 10.7481 3.37451 3.40935
2490 2489 -12.9334 0 -12.4014
2491 2490 -4.43469e-10 8.049 -4
2492 2491 -2 11.8274 -3.4641
2493 2492 -8.3606 1.78125 -10.459
2494 2493 -7.04802 10 -7.09405
2495 2494 11.5547 7 5.95241
2496 2495 -9.09771 10 -7.98625
2497 2496 -7.55767 0 -10.5774
2498 2497 -1 6.43819 -5.36646
2499 2498 6.06542 13 3.49438
2500 2499 -11.2734 8.34863 -9.52616
2501 2500 -12.3542 3.85033 -11.398
2502 2501 11.2257 8.12287 6.06951
2503 2502 13.2621 0 5
2504 2503 6.24098 3.32451 -1.26164
2505 2504 3.67683 1.19559 -3.98695
2506 2505 -6.78518 5.19869 -8.93893
2507 2506 -8.73797 0 -11.1403
2508 2507 -4.11793 0 -9.11277
2509 2508 -10.0295 3.29256 -10.8568
2510 2509 -6.58599 1.78125 -9.89242
2511 2510 2 6.57747 -3.4641
2512 2511 -0.392043 3.05653 -6.29404
2513 2512 -3.64059 13 -4.03265
2514 2513 4 10.6548 0
2515 2514 -1.0529 10.3681 -3.85894
2516 2515 -6.91107 8.41744 -7.90039
2517 2516 2.75 1.19559 -4.76314
2518 2517 -5.75 0 -9.95929
2519 2518 -2.20811 0 -8.18547
2520 2519 -6.07609 6.56025 -8.2425
2521 2520 1.98579 3.12337 -4.78561
2522 2521 12 4.65674 5
2523 2522 -10.4069 1.51131 -11.5381
2524 2523 3.86839 9.06525 -1.01763
2525 2524 12.4397 0 3.77559
2526 2525 -10.9358 10 -8.94143
2527 2526 9.95086 0 0.99015
2528 2527 5.02759 13 2.18353
2529 2528 -0.00648884 0 -7
2530 2529 10.7481 4.55066 3.40935
2531 2530 -4.66624 8.86204 -6.78367
2532 2531 5.54891 10.9576 1.3341
2533 2532 13.2621 1.15222 5
2534 2533 -4.90489 11.1366 -5.88684
2535 2534 9.87507 9.78564 5
2536 2535 3.86839 13 1.01763
2537 2536 3.4641 8.049 -2
2538 2537 11.2776 0 2.24974
2539 2538 9.77123 10 5
2540 2539 9.13145 8.51489 3.40946
2541 2540 -4.09123 5.27837 -7.93863
2542 2541 -12.7699 2.88807 -12.1181
2543 2542 -4.6977 12.054 -5.40133
2544 2543 9.4962 4.44458 1.8187
2545 2544 -12.2161 5.68765 -11.159
2546 2545 6.5868 0 -2.36939
2547 2546 -3.89204 1.86094 -8.89212
2548 2547 12.378 1.15222 3.75356
2549 2548 -2.96705 10.772 -5.13908
2550 2549 7.70151 7.44226 1.27936
2551 2550 6.24098 4.68189 -1.26164
2552 2551 -9.89151 5.12988 -10.6177
2553 2552 -2 13 -3.4641
2554 2553 -0.392043 4.41391 -6.29404
2555 2554 -1 7.90972 -5.36646
2556 2555 -2.01277 1.86094 -8.00651
2557 2556 6.49489 6.05428 -0.571985
2558 2557 7.09781 11.2605 2.6682
2559 2558 -9.92293 8.5 -9.53496
2560 2559 12 5.82837 5
2561 2560 1.98579 4.48076 -4.78561
2562 2561 8.41177 0 -0.960467
2563 2562 -7.73589 10 -8.07077
2564 2563 -10.9301 0 -12.4443
2565 2564 5.2934 11.8274 1.1847
2566 2565 2 8.049 -3.4641
2567 2566 9.7481 2.22229 0.909349
2568 2567 4 11.8274 0
2569 2568 -2.75 11.8274 -4.76314
2570 2569 -5.47273 10.2036 -7.05107
2571 2570 -5.19919 8.41744 -7.70676
2572 2571 5.14749 6.43819 -1.8172
2573 2572 -9.6798 10 -8.99446
2574 2573 -4.43469e-10 10.0815 -4
2575 2574 3.86839 10.3681 -1.01763
2576 2575 9.24284 10 3.81706
2577 2576 -13.293 1.37676 -13.0242
2578 2577 6.69913 12.1296 2.46385
2579 2578 -1.0529 11.8274 -3.85894
2580 2579 5.24098 3.32451 -2.9937
2581 2580 11.1261 2.22229 2.16291
2582 2581 1.0529 9.06525 -3.85894
2583 2582 7.74098 2.12892 -1.26164
2584 2583 1.22877 0 -6.89131
2585 2584 -11.8867 8.34863 -10.5884
2586 2585 -12.2107 7.10817 -11.1496
2587 2586 -2.69919 7.30265 -7.01104
2588 2587 8.79252 7.0162 1.55911
2589 2588 -3.17489 0 -9.48262
2590 2589 -4.47515 13 -5.38266
2591 2590 -1.16731 0 -8.41529
2592 2591 10.9425 9.16806 5
2593 2592 5.9341 9.4691 -5.44462e-17
2594 2593 -1.6191 9.65476 -5.47254
2595 2594 -12.8212 4.67803 -12.207
2596 2595 12 7 5
2597 2596 13.5903 2.71645 5
2598 2597 6.06542 0 -3.49438
2599 2598 -10.4966 4.12027 -11.6658
2600 2599 -11.4803 1.51131 -12.6711
2601 2600 -13.6526 0 -13.6471
2602 2601 2.81549 9.06525 -2.84131
2603 2602 10 0 0
2604 2603 6.49489 7.52581 -0.571985
2605 2604 8.28829 10.3197 2.58655
2606 2605 -11.5491 10 -10.0037
2607 2606 10.9123 9.58403 5
2608 2607 -8.29787 6.78125 -10.086
2609 2608 -7.33599 1.78125 -11.1915
2610 2609 9.58192 7.22229 2.18772
2611 2610 -6.5 0 -11.2583
2612 2611 1 6.43819 -5.36646
2613 2612 14.5242 0 5
2614 2613 -7.4629 4.92406 -10.4282
2615 2614 3.4641 10.0815 -2
2616 2615 2 9.35188 -3.4641
2617 2616 -8.17199 3.5625 -11.1246
2618 2617 10.6311 6.92114 3.09009
2619 2618 -4.64309 0 -10.4707
2620 2619 1.60018 1.92778 -6.49922
2621 2620 11.7092 8.19848 5
2622 2621 -0.777657 1.86094 -8.00764
2623 2622 6.5868 13 2.36939
2624 2623 -7.58878 8.14281 -9.38961
2625 2624 -6.07028 10 -7.94681
2626 2625 5.24098 4.68189 -2.9937
2627 2626 5.30369 13 1.15247
2628 2627 11.3894 0 1.2143
2629 2628 -6.7538 6.28562 -9.73172
2630 2629 4 13 0
2631 2630 -2.75 13 -4.76314
2632 2631 10.8822 10 5
2633 2632 13.6401 0 3.75356
2634 2633 -7.71336 0 -11.8728
2635 2634 -8.54936 1.78125 -11.8059
2636 2635 5.14749 7.90972 -1.8172
2637 2636 -2.97949 1.86094 -9.3033
2638 2637 -8.42376 10 -9.04749
2639 2638 2.41805 0 -6.5691
2640 2639 13.5903 3.89259 5
2641 2640 -13.2369 3.71577 -12.9271
2642 2641 -3.31829 9.0477 -7.11713
2643 2642 -5.47804 3.64219 -10.1243
2644 2643 -1.0529 13 -3.85894
2645 2644 1.0529 10.3681 -3.85894
2646 2645 5.35366 0 -4.5098
2647 2646 -4.43469e-10 11.5408 -4
2648 2647 -10.5634 8.34863 -10.6443
2649 2648 12.756 0 2.50713
2650 2649 3.86839 11.8274 -1.01763
2651 2650 -4.76895 5.00375 -9.42785
2652 2651 -8.92672 0 -12.4872
2653 2652 -12.8158 6.09855 -12.1977
2654 2653 8.19134 0 -2.18321
2655 2654 10.8338 8.5 3.77837
2656 2655 10.3051 9.58403 3.77837
2657 2656 -12.0035 0 -13.5773
2658 2657 -6.5 1.66845 -11.2583
2659 2658 5.9341 10.772 -5.44462e-17
2660 2659 4.14749 6.43819 -3.54925
2661 2660 12.3335 4.55847 3.459
2662 2661 -1.6191 10.9576 -5.47254
2663 2662 -3.9341 10.8892 -6.81407
2664 2663 3.5 0 -6.06218
2665 2664 -0.406253 3.78872 -7.61555
2666 2665 4.47998 0 -5.37864
2667 2666 2.81549 10.3681 -2.84131
2668 2667 1.97158 3.85556 -6.10713
2669 2668 -10.2258 10 -10.0595
2670 2669 10.2749 10 3.77837
2671 2670 -3.60401 11.9023 -6.24233
2672 2671 -10.5003 6.47363 -11.5425
2673 2672 -1.62072 11.8274 -5.17657
2674 2673 7.53438 2.12892 -2.44634
2675 2674 8.98908 4.35121 -0.352296
2676 2675 13.319 5.73747 5
2677 2676 0.0915649 0 -8.42229
2678 2677 1 7.90972 -5.36646
2679 2678 5.5 11.8274 -1.83691e-16
2680 2679 -13.6526 2.75351 -13.6471
2681 2680 -2.78409 3.72187 -9.12398
2682 2681 2 10.6548 -3.4641
2683 2682 -2.95646e-10 8.92597 -5.63441
2684 2683 3.51791 3.07059 -5.43681
2685 2684 -2.1476 0 -9.76667
2686 2685 9.24299 5.7236 0.337364
2687 2686 -5.8769 8.14281 -9.19599
2688 2687 8.04379 9.13157 0.762113
2689 2688 -4.00899 8.41744 -8.20203
2690 2689 -6.71188 10 -8.85387
2691 2690 14.8524 1.56423 5
2692 2691 9.95086 0 -0.99015
2693 2692 3.4641 11.5408 -2
2694 2693 7.02483 12.054 1.3766
2695 2694 -5.21655 6.54244 -9.54211
2696 2695 -4.44455 10.2133 -7.69819
2697 2696 7.54963 11.1375 1.30554
2698 2697 5.55001 9.65405 -1.33258
2699 2698 -3.0365 6.73609 -8.4326
2700 2699 13.9683 1.56423 3.75356
2701 2700 12.3335 5.73462 3.459
2702 2701 -12.4864 8.75953 -11.6271
2703 2702 -14.0123 1.37676 -14.2699
2704 2703 -12.8104 7.51907 -12.1883
2705 2704 -12.1624 10 -11.0659
2706 2705 -6.5 3.3369 -11.2583
2707 2706 3.86839 13 -1.01763
2708 2707 9.24098 2.12892 -1.26164
2709 2708 -8.84387 6.78125 -11.1511
2710 2709 11.0816 5.62854 1.86835
2711 2710 9.66763 10 2.55674
2712 2711 1.0529 11.8274 -3.85894
2713 2712 -3.5 13 -6.06218
2714 2713 7.87222 0 -3.19546
2715 2714 12.0765 9.58403 5
2716 2715 -1.9338 1.86094 -9.53255
2717 2716 12.6052 8.5 5
2718 2717 4.14749 7.90972 -3.54925
2719 2718 -11.1286 3.58843 -13.0252
2720 2719 13.319 6.9091 5
2721 2720 -4.43469e-10 13 -4
2722 2721 -3.69048 0 -10.8916
2723 2722 -8.96975 10 -10.1126
2724 2723 6.91781 2.12892 -3.51655
2725 2724 3.51791 4.42797 -5.43681
2726 2725 0.98579 5.813 -6.68797
2727 2726 11.9021 4.37097 2.05565
2728 2727 -6.18936 1.78125 -11.7126
2729 2728 -1.39204 5.74615 -8.19639
2730 2729 -1.65377 13 -5.16936
2731 2730 -14.3719 0 -14.8928
2732 2731 12.0463 10 5
2733 2732 -0.6191 10.671 -5.74049
2734 2733 -10.0001 0 -13.6202
2735 2734 -13.6001 4.8546 -13.5561
2736 2735 2.81549 11.8274 -2.84131
2737 2736 -5.38148 0 -11.8338
2738 2737 5.5 13 -1.83691e-16
2739 2738 2 11.8274 -3.4641
2740 2739 11.5 0 0
2741 2740 -8.78075 4.90625 -12.0493
2742 2741 12.3335 6.90625 3.459
2743 2742 1.19995 0 -8.41186
2744 2743 -13.4086 6.02487 -13.2244
2745 2744 6.8991 13 1.18426
2746 2745 4.87954 8.92597 -2.8172
2747 2746 -12.3631 1.37676 -14.2002
2748 2747 11.4944 9.58403 3.88578
2749 2748 12.0232 8.5 3.88578
2750 2749 -11.1364 8.34863 -11.7698
2751 2750 15.8654 0 5
2752 2751 -5 10 -8.66025
2753 2752 5.55001 10.9569 -1.33258
2754 2753 -10.9905 5.42575 -12.7862
2755 2754 -3.49541 1.86094 -10.7123
2756 2755 14.8795 0 3.60554
2757 2756 -10.8391 10 -11.1217
2758 2757 8.84163 10.2038 1.2196
2759 2758 12.9391 0 1.25642
2760 2759 11.4643 10 3.88578
2761 2760 -1.08351 0 -9.94113
2762 2761 5.2934 11.8274 -1.1847
2763 2762 3.4641 13 -2
2764 2763 15.1806 3.12845 5
2765 2764 9.79963 0 -1.99178
2766 2765 -6.5 5.16845 -11.2583
2767 2766 9.32871 8.50131 0.706384
2768 2767 7.24511 0 -4.29568
2769 2768 13.9954 0 2.3591
2770 2769 1.0529 13 -3.85894
2771 2770 -12.7227 0 -14.823
2772 2771 -14.0158 3.89234 -14.2762
2773 2772 3.3572 5.80455 -5.61683
2774 2773 -2.64419 11.1375 -7.19094
2775 2774 -7.36534 6.78125 -11.2352
2776 2775 -0.810528 1.86094 -9.52806
2777 2776 -11.1 6.88453 -12.5811
2778 2777 10.6502 5.44104 0.465003
2779 2778 2.21294 0 -8.18291
2780 2779 9.1408 2.12892 -2.25753
2781 2780 3.1323 1.875 -7.15041
2782 2781 -6.65625 8.14281 -10.5388
2783 2782 12.8391 3.01184 1.71465
2784 2783 2.81549 13 -2.84131
2785 2784 -1.47823e-10 7.77043 -7.26881
2786 2785 11.1673 8.40625 2.23737
2787 2786 -7.49122 10 -10.1967
2788 2787 -13.4032 7.44539 -13.215
2789 2788 2 13 -3.4641
2790 2789 14.9093 4.97333 5
2791 2790 -2.32025 12.054 -6.77198
2792 2791 -0.6191 12.1303 -5.74049
2793 2792 -6.60336 4.90625 -11.7278
2794 2793 -6.9373 1.78125 -12.712
2795 2794 10.857 10 2.66415
2796 2795 -13.1344 8.75953 -12.7495
2797 2796 -3.36461 10.2038 -8.26687
2798 2797 -6.1013 0 -12.7788
2799 2798 -12.8104 10 -12.1883
2800 2799 -5.89426 6.26781 -11.0313
2801 2800 5.28206 10.6703 -2.33258
2802 2801 7.20802 11.9023 -2.32961e-16
2803 2802 7.86821 10.8892 -1.08892e-16
2804 2803 -5.53993 9.79891 -9.59544
2805 2804 6.68428 0 -5.24619
2806 2805 1.81661 9.5359 -5.55126
2807 2806 -9.51574 10 -11.1776
2808 2807 -0.622797 13 -5.44578
2809 2808 5.19474 1.875 -5.95966
2810 2809 -2.45016 0 -11.1875
2811 2810 13.9238 4.97048 3.459
2812 2811 16.1936 1.56423 5
2813 2812 -11.5956 4.41614 -13.8342
2814 2813 -7.31466 0 -13.3933
2815 2814 8.48196 4.25784 -2.52329
2816 2815 8.42899 8.94591 -0.571985
2817 2816 5.31268 13 -1.13652
2818 2817 0.614386 11.5408 -5.44565
2819 2818 -2.42395 13 -6.56692
2820 2819 3.38076 0 -7.76148
2821 2820 0.816609 10.5521 -5.81921
2822 2821 -11.0735 0 -14.7532
2823 2822 8.73587 5.63023 -1.83363
2824 2823 15.2078 1.56423 3.60554
2825 2824 -9.27102 3.85837 -13.293
2826 2825 4.26791 1.875 -6.73584
2827 2826 -3.9094 4.98594 -10.7275
2828 2827 -6.5 7 -11.2583
2829 2828 3.3572 7.27607 -5.61683
2830 2829 11.3907 0 -1.21213
2831 2830 3.5037 3.80278 -6.75832
2832 2831 13.9242 8.4091 5
2833 2832 9.91727 10 1.28361
2834 2833 9.53198 0 -3.02346
2835 2834 5.9818 0 -6.00512
2836 2835 8.98978 7.00261 -1.14397
2837 2836 13.2104 10 5
2838 2837 -9.45263 8.125 -12.0758
2839 2838 14.638 6.8182 5
2840 2839 0.0401433 0 -9.99992
2841 2840 -1.72935 5.17959 -9.61795
2842 2841 -9.64839 2.07712 -13.9743
2843 2842 -0.6191 9.51548 -7.3749
2844 2843 3.89872 9.53605 -4.34922
2845 2844 4.25 0 -7.36122
2846 2845 7.38847 6.01414 -3.07885
2847 2846 5.02944 0 -6.81171
2848 2847 11.5872 4.08191 0.123999
2849 2848 -4.20674 0 -12.3005
2850 2849 -2.42238 1.15222 -11.1875
2851 2850 -14.6068 2.97549 -15.2997
2852 2851 2.96705 9.4691 -5.13908
2853 2852 7 13 -3.67382e-16
2854 2853 8.81649 2.12892 -3.27775
2855 2854 7.64238 7.38652 -2.38919
2856 2855 -6.04113 9.15968 -10.4635
2857 2856 12.7475 7 2.54951
2858 2857 -5.77934 10 -10.003
2859 2858 1 9.0245 -6.73205
2860 2859 10.8284 6.90756 0.387012
2861 2860 -12.0113 3.45388 -14.5543
2862 2861 13.2187 8.5 3.82566
2863 2862 -11.7361 8.75953 -12.8085
2864 2863 13.6525 6.81535 3.459
2865 2864 -6.38979 8.12867 -11.0674
2866 2865 -11.4121 10 -12.2473
2867 2866 -15.1102 0 -16.1716
2868 2867 -5.01736 8.125 -10.4956
2869 2868 -3.20703e-08 10.0408 -7
2870 2869 8.8891 10.2133 -2.61164e-17
2871 2870 12.6284 10 3.88578
2872 2871 -11.5902 5.83665 -13.8249
2873 2872 -9.38951 6.25 -12.974
2874 2873 4.40888 11.5408 -3.2549
2875 2874 -3.847 10 -9.23042
2876 2875 13 0 0
2877 2876 4.63077 10.5523 -3.61717
2878 2877 1.61439 11.8274 -5.1777
2879 2878 -14.379 5.03117 -14.9052
2880 2879 1.81661 10.8388 -5.55126
2881 2880 -14.9664 1.59873 -15.9226
2882 2881 6.29498 7.77043 -3.63441
2883 2882 5.28206 12.1296 -2.33258
2884 2883 -12.371 2.07712 -15.1771
2885 2884 11.8391 1.85962 -0.78535
2886 2885 17.2066 0 5
2887 2886 -14.1875 6.20144 -14.5735
2888 2887 14.1175 0 1.10554
2889 2888 -8.03722 10 -11.2617
2890 2889 1.7943 3.07434 -8.65203
2891 2890 16.2208 0 3.60554
2892 2891 2.51791 5.76022 -7.33916
2893 2892 9.49489 8.50131 -0.571985
2894 2893 -2.22698 3.01316 -11.0081
2895 2894 12.667 6.8125 1.91799
2896 2895 5.02365 13 -2.19049
2897 2896 12.3566 8.40625 2.34478
2898 2897 -7.5422 3.34169 -13.3611
2899 2898 -13.996 7.37171 -14.2418
2900 2899 -1.21582 12.1296 -7.03354
2901 2900 0.618077 13 -5.44689
2902 2901 -1.2382 11.2605 -7.48098
2903 2902 9.15102 0 -4.03222
2904 2903 8.25096 2.12892 -4.24829
2905 2904 -0.33731 7.20387 -8.69036
2906 2905 13.2171 1.85962 0.468214
2907 2906 16.6573 2.79516 5
2908 2907 12.0463 10 2.77157
2909 2908 3.67683 11.8274 -3.98695
2910 2909 15.2349 0 2.21108
2911 2910 1.16303 0 -9.93214
2912 2911 -13.7272 8.68585 -13.7762
2913 2912 3.89872 10.8389 -4.34922
2914 2913 6.75889 4.00392 -4.9664
2915 2914 -7.91957 1.56044 -14.0424
2916 2915 -1.37562 0 -11.4168
2917 2916 -7.9741 8.125 -12.1599
2918 2917 -4.62073 3.125 -12.3157
2919 2918 2.96705 10.772 -5.13908
2920 2919 2.75 11.8274 -4.76314
2921 2920 16.3151 4.2765 5
2922 2921 7.5506 11.1366 -1.30435
2923 2922 5.33013 9.0245 -4.23205
2924 2923 13 1.66845 0
2925 2924 -8.42701 0 -14.6193
2926 2925 11.3335 8.40625 0.958997
2927 2926 8.0449 9.13086 -1.90457
2928 2927 -13.4584 10 -13.3107
2929 2928 11.2776 0 -2.24982
2930 2929 -1.90414 10.3197 -8.47115
2931 2930 -12.8174 0 -16.0413
2932 2931 -10.0888 10 -12.3032
2933 2932 11.0232 10 1.38578
2934 2933 -4.95467 0 -13.2999
2935 2934 7.02654 12.054 -1.36767
2936 2935 -1.24145 13 -6.88904
2937 2936 2.31573 9.0245 -6.55272
2938 2937 -7.21212 6.25 -12.6525
2939 2938 -2.22698 4.18931 -11.0081
2940 2939 -10.7218 2.07712 -15.1073
2941 2940 10.397 6.72006 -1.01633
2942 2941 5.6654 5.76022 -5.52196
2943 2942 2.16571 5.00212 -8.25994
2944 2943 -1.37669 1.15222 -11.4167
2945 2944 10.619 2.12892 -2.51521
2946 2945 1.65408 13 -5.17042
2947 2946 -0.212128 4.93527 -9.76837
2948 2947 6.6975 9.51477 -3.14978
2949 2948 -10.0257 8.125 -13.2014
2950 2949 -0.95641 8.94892 -8.79645
2951 2950 4.41298 13 -3.25043
2952 2951 6.06218 10.0408 -3.5
2953 2952 6.8991 13 -1.18426
2954 2953 16.0438 6.12137 5
2955 2954 2.3572 7.13679 -7.51918
2956 2955 10 10 0
2957 2956 8.64011 0 -5.03472
2958 2957 15.1512 8.4091 5
2959 2958 -14.97 4.11431 -15.9288
2960 2959 2.19773 0 -9.75551
2961 2960 14.4374 10 5
2962 2961 4.51665 9.0245 -5.28214
2963 2962 -12.3289 8.68585 -13.8353
2964 2963 14.4295 3.42385 1.71465
2965 2964 -4.31145 10 -10.2392
2966 2965 -9.87978 5.20212 -14.2177
2967 2966 -2.95007 0 -12.6608
2968 2967 -12.3745 4.5927 -15.1833
2969 2968 17.6703 1.23094 5
2970 2969 12.2356 6.625 0.514651
2971 2970 13 3.3369 0
2972 2971 3.64455 13 -4.02805
2973 2972 -6.55869 10 -11.3458
2974 2973 -12.183 5.76297 -14.8516
2975 2974 6.9976 2.86453 -5.77619
2976 2975 8.84277 10.2036 -1.21399
2977 2976 -11.1682 0 -15.9715
2978 2977 -12.0601 10 -13.3697
2979 2978 2.75 13 -4.76314
2980 2979 16.0724 3.12467 3.40625
2981 2980 -5.79671 8.125 -11.8384
2982 2981 12.9391 0 -1.25642
2983 2982 -0.316973 0 -11.4653
2984 2983 -0.0588102 12.1618 -7.13179
2985 2984 -2.93831 1.15222 -12.5964
2986 2985 15.8751 7.38582 5
2987 2986 14.5377 8.4091 3.82566
2988 2987 -3.82717 8.125 -10.9909
2989 2988 13.8239 10 3.82566
2990 2989 -3.19224e-08 8.88522 -8.63441
2991 2990 -5.71609 3.34548 -13.3857
2992 2991 -2.61962 10 -9.65078
2993 2992 9.22504 5.14911 -3.32935
2994 2993 -0.756861 3.21085 -11.0309
2995 2994 10.9021 8.21875 -0.444346
2996 2995 9.32871 8.50131 -1.85035
2997 2996 11.0801 3.98854 -2.04699
2998 2997 3.19674 0 -9.47528
2999 2998 5.50469 7.13679 -5.70198
3000 2999 -1.64712 8.31866 -9.88135
3001 3000 8.01997 0 -5.97328
3002 3001 4.11628 1.875 -8.44239
3003 3002 9.47895 6.52149 -2.63969
3004 3003 -2.85467 6.44366 -11.2214
3005 3004 10.9151 0 -3.46941
3006 3005 -5.03472 6.25 -12.3309
3007 3006 11.334 5.36093 -1.35733
3008 3007 0.193461 11.1903 -7.64946
3009 3008 6.7001 12.1292 -2.46156
3010 3009 1.17992 6.95955 -8.84079
3011 3010 -15.8485 0 -17.4505
3012 3011 -5.7026 0 -14.2993
3013 3012 15.8011 4.96954 3.40625
3014 3013 -9.50041 0 -15.7523
3015 3014 -13.8158 0 -17.0192
3016 3015 7.10002 11.2591 -2.66516
3017 3016 -0.674621 6.63731 -10.1119
3018 3017 13.5522 8.40625 2.28466
3019 3018 5.03582 3.75 -7.40951
3020 3019 -0.00648884 13 -7
3021 3020 -0.661053 10.3115 -8.68916
3022 3021 8.13155 6.9054 -3.8849
3023 3022 -15.7047 1.59873 -17.2014
3024 3023 13.2418 10 2.71145
3025 3024 -14.3737 8.68585 -14.896
3026 3025 5.01791 1.875 -8.03488
3027 3026 5.82164 1.875 -7.4578
3028 3027 4.12824 0 -9.10811
3029 3028 13.3391 1.85962 -0.78535
3030 3029 -8.15097 4.68544 -14.2858
3031 3030 7.34965 0 -6.78105
3032 3031 13 5.16845 0
3033 3032 -11.9476 8.75953 -14.2621
3034 3033 10.8998 1.15137 -3.49589
3035 3034 -8.75334 10 -12.7467
3036 3035 13.1726 5.26587 0.173647
3037 3036 -14.1049 10 -14.4304
3038 3037 -10.6619 10 -13.4287
3039 3038 6.5868 13 -2.36939
3040 3039 14.4566 1.85962 0.320189
3041 3040 17.0854 1.56044 3.40625
3042 3041 14.8156 4.96669 1.86525
3043 3042 18.645 0 5
3044 3043 0.0934293 1.34992 -11.4395
3045 3044 -15.5609 3.19746 -16.9523
3046 3045 -12.9655 3.67585 -16.2069
3047 3046 5 0 -8.66025
3048 3047 11.0799 9.79891 0
3049 3048 -15.0673 6.01656 -16.0973
3050 3049 6.60746 0 -7.50609
3051 3050 11.8042 6.4375 -0.888691
3052 3051 5.82374 0 -8.12921
3053 3052 16.0995 1.56044 2.01179
3054 3053 18.134 2.46187 5
3055 3054 -3.56935 0 -13.6894
3056 3055 14.1388 0 -0.743575
3057 3056 -14.8757 7.18683 -15.7655
3058 3057 0.821734 0 -11.4592
3059 3058 -3.3523 4.27722 -12.6116
3060 3059 1.76143 3.07434 -10.1724
3061 3060 -8.69023 8.125 -13.6449
3062 3061 8.28908 10.3192 -2.58752
3063 3062 -10.3701 4.15424 -15.4615
3064 3063 17.7918 3.94321 5
3065 3064 10.241 3.28029 -3.76164
3066 3065 9.91727 10 -1.28361
3067 3066 12.8861 8.40625 0.955462
3068 3067 1.38762 12.0195 -7.05322
3069 3068 15.2563 0 0.361964
3070 3069 -1.66987 0 -12.8923
3071 3070 8.82502 8.50131 -3.07198
3072 3071 4.87511 5.12657 -7.58953
3073 3072 6.20368 12.1599 -3.51979
3074 3073 12.5757 10 1.38225
3075 3074 8.56175 4.99344 -4.78293
3076 3075 -5.0908 10 -11.582
3077 3076 -12.9204 1.875 -16.8763
3078 3077 10.5749 0 -4.51734
3079 3078 17.4496 5.42454 5
3080 3079 15.6643 10 5
3081 3080 12.756 0 -2.50713
3082 3081 15.6649 8.4091 4.04542
3083 3082 -8.87505 5.8416 -14.6733
3084 3083 -3.12126 10 -10.7345
3085 3084 -10.8164 2.07712 -16.3256
3086 3085 -4.32882 8.125 -12.0746
3087 3086 1.22877 13 -6.89131
3088 3087 17.8387 0 3.25524
3089 3088 7.47761 8.88522 -4.3172
3090 3089 6.5302 11.1904 -3.9882
3091 3090 -5.97357 4.68544 -13.9643
3092 3091 1.63322 11.0228 -7.63841
3093 3092 -1.66987 1.15222 -12.8923
3094 3093 11.5526 10 -0.00353555
3095 3094 -3.3523 5.45337 -12.6116
3096 3095 -1.31574 10 -9.91306
3097 3096 -6.30751 1.56044 -14.9485
3098 3097 13 7 0
3099 3098 10.241 4.45949 -3.76164
3100 3099 -0.33731 8.31866 -10.056
3101 3100 16.8529 0 1.86078
3102 3101 6.06542 13 -3.49438
3103 3102 10.8862 6.23894 -2.51205
3104 3103 7.46826 6.74974 -5.33849
3105 3104 10.5755 1.15137 -4.51611
3106 3105 2.77828 3.07434 -9.94402
3107 3106 -1.17225 5.64702 -11.5021
3108 3107 17.2809 6.68899 5
3109 3108 12.0823 9.15968 0
3110 3109 -6.81495 0 -15.5254
3111 3110 16.3882 8.97672 5
3112 3111 2.49541 11.9497 -6.77798
3113 3112 10.5185 8.50131 -1.95771
3114 3113 -7.27481 10 -12.8308
3115 3114 15.0508 10 3.82566
3116 3115 12.7412 5.07837 -1.2297
3117 3116 1.2167 1.34992 -11.435
3118 3117 1.91414 0 -11.3221
3119 3118 -3.73347 1.56423 -13.9737
3120 3119 -10.2371 8.125 -14.655
3121 3120 3.69783 4.94934 -8.91114
3122 3121 5.41477 12.02 -4.72769
3123 3122 0.842605 6.39299 -10.2623
3124 3123 -6.51283 8.125 -13.3233
3125 3124 19.1087 1.23094 5
3126 3125 17.5491 2.79138 3.40625
3127 3126 -15.6582 5.09971 -17.1208
3128 3127 -8.64123 3.63756 -15.5296
3129 3128 -13.0628 5.5781 -16.3754
3130 3129 -11.2628 0 -17.1898
3131 3130 10.0886 0 -5.45656
3132 3131 12.7796 8.12867 0
3133 3132 -9.14867 2.07712 -16.1064
3134 3133 -1.66987 2.30445 -12.8923
3135 3134 4.7144 6.50314 -7.76955
3136 3135 0.841955 10.2488 -8.8245
3137 3136 13.2171 1.85962 -2.03891
3138 3137 3.60401 11.9023 -6.24233
3139 3138 -4.31728 0 -14.6888
3140 3139 9.52527 3.47884 -5.04665
3141 3140 -12.5404 8.68585 -15.2889
3142 3141 17.2069 4.27271 3.40625
3143 3142 -2.14474 8.5 -11.2715
3144 3143 7.85854 10.3114 -3.76604
3145 3144 2.41805 13 -6.5691
3146 3145 4.61376 11.9463 -5.55901
3147 3146 12.4547 8.21875 -0.447881
3148 3147 17.1121 7.95344 5
3149 3148 4.32425 8.69617 -7.29181
3150 3149 2.83811 11.0262 -7.28988
3151 3150 -0.617578 0 -12.9831
3152 3151 -3.3523 6.625 -12.6116
3153 3152 -9.3264 10 -13.8722
3154 3153 -12.2716 10 -14.8233
3155 3154 14.4374 10 2.65133
3156 3155 5.35366 13 -4.5098
3157 3156 -6.69766 5.8416 -14.3518
3158 3157 -1.88037 9.58403 -10.8136
3159 3158 2.3572 8.25157 -8.88478
3160 3159 5.79743 11.0231 -5.23435
3161 3160 -1.17225 6.81866 -11.5021
3162 3161 10.4949 7.00131 -3.07198
3163 3162 -12.924 4.39058 -16.8825
3164 3163 -14.7514 10 -15.5502
3165 3164 14.0168 0 -1.99714
3166 3165 -14.5542 0 -18.298
3167 3166 -5.74063 10 -12.5873
3168 3167 -16.5893 0 -18.7336
3169 3168 2.23355 1.34992 -11.2065
3170 3169 -0.907868 7.90269 -11.0442
3171 3170 8.33075 2.86453 -6.50793
3172 3171 9.81788 8.02019 -3.34607
3173 3172 9.66763 10 -2.55674
3174 3173 -2.30091 0 -13.9853
3175 3174 16.4987 6.1257 2.9729
3176 3175 2.9475 0 -11.0926
3177 3176 3.5 13 -6.06218
3178 3177 3.9341 10.8892 -6.81407
3179 3178 -1.66987 3.48059 -12.8923
3180 3179 -9.59507 0 -16.9706
3181 3180 -1.86529 10 -10.7875
3182 3181 4.47998 13 -5.37864
3183 3182 4.89532 11.0273 -6.10059
3184 3183 9.96812 6.04037 -4.1354
3185 3184 -14.4104 1.59873 -18.0489
3186 3185 11.8232 4.87981 -2.85305
3187 3186 -4.97865 8.125 -13.0799
3188 3187 18.3024 1.23094 3.25524
3189 3188 11.0236 10 -1.38572
3190 3189 6.83868 4.73953 -7.22604
3191 3190 -0.603485 1.15222 -12.986
3192 3191 12.4397 0 -3.77559
3193 3192 9.8598 1.34992 -5.80111
3194 3193 9.51218 0 -6.44269
3195 3194 3.53711 6.32591 -9.09116
3196 3195 7.6245 2.86453 -7.27433
3197 3196 -9.36532 4.79372 -15.917
3198 3197 -15.2534 8.50098 -16.4197
3199 3198 -3.62291 10 -11.8182
3200 3199 15.5156 8.4091 2.61876
3201 3200 13.6783 3.71924 -1.5707
3202 3201 15.3212 3.42006 0.1209
3203 3202 15.5132 6.12285 1.4319
3204 3203 -2.30091 1.15222 -13.9853
3205 3204 -16.5893 1.23243 -18.7336
3206 3205 13.7713 10 1.32213
3207 3206 -4.14746 4.68923 -13.9889
3208 3207 -6.36971e-08 10 -10
3209 3208 2.11384 10.2505 -8.6199
3210 3209 12.378 1.15137 -3.75356
3211 3210 14.2988 6.53125 0.136727
3212 3211 -6.91242 3.12088 -15.5977
3213 3212 -4.4814 1.56423 -14.9731
3214 3213 17.0707 7.71227 4.04542
3215 3214 -7.41986 1.56044 -16.1745
3216 3215 20.0835 0 5
3217 3216 3.94849 0 -10.794
3218 3217 13.3917 6.85962 -0.788886
3219 3218 16.9642 3.12088 1.8125
3220 3219 -1.66987 4.65674 -12.8923
3221 3220 -10.8733 10 -14.8824
3222 3221 14.4779 1.85962 -1.52892
3223 3222 -16.4455 2.83116 -18.4845
3224 3223 1.17992 8.07434 -10.2064
3225 3224 19.4053 3.08829 5
3226 3225 16.178 10 4.04542
3227 3226 -10.7274 7.07712 -15.8987
3228 3227 6.68733 8.25157 -6.38478
3229 3228 -7.9273 0 -16.7514
3230 3229 8.84829 0 -7.3182
3231 3230 0.344979 5.4027 -11.6525
3232 3231 16.1209 1.56044 0.162675
3233 3232 0.469168 0 -12.985
3234 3233 14.5301 8.40625 1.07775
3235 3234 11.9257 8.21875 -1.83007
3236 3235 -15.7555 7.00196 -17.2893
3237 3236 16.9611 10 5
3238 3237 -12.2613 0 -18.1676
3239 3238 7.21883 10.2484 -5.14674
3240 3239 19.0631 4.56963 5
3241 3240 -0.108169 6.81866 -11.5487
3242 3241 3.67292 8.25157 -8.70545
3243 3242 4.87834 0 -10.3799
3244 3243 3.73693 1.19948 -10.8758
3245 3244 9.29428 1.34992 -6.77164
3246 3245 18.5003 6.47451 5
3247 3246 6.67797 6.1161 -7.40606
3248 3247 -2.64639 8.5 -12.3553
3249 3248 8.13123 0 -8.10103
3250 3249 2.35983 6.14867 -10.4128
3251 3250 15.2776 0 -1.48715
3252 3251 9.31419 8.02019 -4.5677
3253 3252 -13.515 3.47373 -17.9061
3254 3253 16.902 8.97672 4.04542
3255 3254 0.367156 7.91599 -11.0042
3256 3255 -0.201692 2.50214 -12.9984
3257 3256 -4.0118 6.5341 -13.7539
3258 3257 15.5646 10 2.87108
3259 3258 -4.98789 0 -15.8504
3260 3259 13.1051 10 -0.00707111
3261 3260 -2.38201 9.58403 -11.8973
3262 3261 5.75 0 -9.95929
3263 3262 9.24284 10 -3.81706
3264 3263 -1.66987 5.82837 -12.8923
3265 3264 17.685 8.97672 5
3266 3265 8.58802 1.34992 -7.53805
3267 3266 12.8391 3.01099 -3.28535
3268 3267 6.548 0 -9.41738
3269 3268 19.2771 0 3.25524
3270 3269 -10.9195 3.95212 -17.1607
3271 3270 -16.4455 4.12444 -18.4845
3272 3271 7.37283 0 -8.81683
3273 3272 -7.63651 4.27704 -15.9851
3274 3273 -8.14395 2.7166 -16.562
3275 3274 4.84837 1.13303 -10.3668
3276 3275 17.7175 1.56044 1.66149
3277 3276 3.36152 10.211 -8.32762
3278 3277 9.30483 5.88471 -5.58899
3279 3278 6.4081 10.2508 -6.13965
3280 3279 12 0 -5
3281 3280 5.87385 8.25157 -7.43487
3282 3281 11.9021 6.71875 -2.94435
3283 3282 -7.99094 10 -14.3157
3284 3283 -2.93195 0 -15.0783
3285 3284 -2.46503 2.71645 -14.2696
3286 3285 4.8572 8.25157 -8.2149
3287 3286 -2.36694 10 -11.8712
3288 3287 18.3316 7.73896 5
3289 3288 6.76394 3.07445 -8.62627
3290 3289 4.44455 10.2133 -7.69819
3291 3290 -12.9181 10 -15.9431
3292 3291 -0.607406 9.78564 -11.0521
3293 3292 16.8742 0 0.0116636
3294 3293 -4.27274 10 -12.8235
3295 3294 -0.555486 10 -10.9621
3296 3295 -15.5345 0 -19.3426
3297 3296 1.30482 10 -9.91108
3298 3297 6.55373 1.13303 -9.38221
3299 3298 0.870327 1.34992 -12.9708
3300 3299 5.75 1.13303 -9.95929
3301 3300 -8.17577 7.7166 -15.3442
3302 3301 -0.201692 3.67828 -12.9984
3303 3302 10.8574 10 -2.66409
3304 3303 1.57041 0 -12.8945
3305 3304 -15.3966 10 -16.6676
3306 3305 7.54976 1.19945 -8.67456
3307 3306 2.49564 8.07434 -10.0271
3308 3307 10.9841 5.35076 -4.5677
3309 3308 1.8151 4.42425 -11.6753
3310 3309 12.8628 6.85962 -2.17107
3311 3310 -11.3659 1.875 -18.0248
3312 3311 5.52739 10.2096 -7.08247
3313 3312 18.8204 3.4178 3.40625
3314 3313 -15.3907 1.59873 -19.0935
3315 3314 20.38 1.85736 5
3316 3315 4.84837 2.3215 -10.3668
3317 3316 12 1.15137 -5
3318 3317 12.8391 4.19019 -3.28535
3319 3318 17.9045 5.42887 2.9729
3320 3319 13.6401 0 -3.75356
3321 3320 -13.4201 8.50098 -16.8126
3322 3321 -1.66987 7 -12.8923
3323 3322 -5.08631 3.12467 -15.6222
3324 3323 -2.46503 3.89259 -14.2696
3325 3324 5.76791 4.1965 -9.33392
3326 3325 16.9214 7.71227 2.61876
3327 3326 -6.45676 10 -14.0723
3328 3327 18.4708 0 1.51048
3329 3328 6.55373 2.3215 -9.38221
3330 3329 -8.36059 5.43319 -16.3726
3331 3330 5.75 2.3215 -9.95929
3332 3331 -15.8986 8.50098 -17.5372
3333 3332 -1.14112 9.16806 -11.9765
3334 3333 12.7475 7 -2.54951
3335 3334 11.5523 0 -5.95712
3336 3335 8.66025 10 -5
3337 3336 -13.2598 0 -19.1455
3338 3337 10.8338 8.5 -3.77837
3339 3338 -17.3301 0 -20.0167
3340 3339 -9.53785 10 -15.3259
3341 3340 -3.29622 8.5 -13.3605
3342 3341 10.3065 9.58281 -3.77837
3343 3342 12 2.30274 -5
3344 3343 12.5762 10 -1.38926
3345 3344 -9.69816 1.875 -17.8056
3346 3345 10.4567 7.603 -4.5677
3347 3346 8.65089 7.86453 -6.02128
3348 3347 -1.52445 8.19848 -12.6404
3349 3348 -13.6122 5.37598 -18.0746
3350 3349 -0.0571031 4.79629 -12.9999
3351 3350 10.9841 6.52019 -4.5677
3352 3351 -0.608585 5.82837 -12.9857
3353 3352 -3.09607 1.56423 -15.3626
3354 3353 -1.12604 9.58403 -11.9504
3355 3354 12.8391 5.35962 -3.28535
3356 3355 1.95841 5.54226 -11.6596
3357 3356 19.5737 1.85736 3.25524
3358 3357 -5.5928 1.56044 -16.4995
3359 3358 10.2753 10 -3.77837
3360 3359 2.63145 10 -9.64134
3361 3360 -4.95065 4.96954 -15.3873
3362 3361 2.67023 0 -12.7111
3363 3362 1.40906 6.57434 -11.6991
3364 3363 1.97575 1.34992 -12.849
3365 3364 -9.72267 7.7166 -16.3543
3366 3365 1.27036 2.69983 -12.9378
3367 3366 14.1012 1.85962 -3.28535
3368 3367 -16.5428 6.02669 -18.653
3369 3368 0.666942 9.81282 -10.9685
3370 3369 16.6918 10 3.09084
3371 3370 8.64153 5.72905 -7.04257
3372 3371 11.5475 1.15137 -5.97113
3373 3372 -6.10024 0 -17.0764
3374 3373 -2.32937 5.73747 -14.0346
3375 3374 3.31848 4.27382 -11.3445
3376 3375 -1.11097 10 -11.9243
3377 3376 4.29723 7.86242 -9.52438
3378 3377 15.4153 10 1.44442
3379 3378 17.4748 10 4.04542
3380 3379 -2.949 10 -12.8794
3381 3380 14.8044 4.98462 -1.60762
3382 3381 -17.3301 1.29232 -20.0167
3383 3382 1.88438 7.67167 -11.1547
3384 3383 16.4474 4.68544 0.08398
3385 3384 -4.92257 10 -13.8288
3386 3385 12 3.48194 -5
3387 3386 17.6618 4.27704 1.37915
3388 3387 5.6072 5.57307 -9.51394
3389 3388 -10.5736 0 -18.717
3390 3389 18.2578 10 5
3391 3390 11.0102 0 -6.89957
3392 3391 7.83742 7.86453 -7.07137
3393 3392 10.3208 5.1951 -6.02128
3394 3393 -5.48991 8.4091 -14.7463
3395 3394 7.93057 10 -6.08588
3396 3395 14.9009 0 -3.24357
3397 3396 -15.3086 3.72786 -19.2247
3398 3397 -3.60257 0 -16.2398
3399 3398 -0.62289 7 -12.9829
3400 3399 18.9044 8.76224 5
3401 3400 9.78303 7.61747 -5.65223
3402 3401 21.5602 0 5
3403 3402 -9.91481 4.5916 -17.6162
3404 3403 14.5179 8.125 -0.825806
3405 3404 2.95569 5.46677 -11.4591
3406 3405 20.6765 3.71471 5
3407 3406 6.27127 7.8625 -8.38454
3408 3407 -12.3644 1.875 -19.0027
3409 3408 10.4925 6.52019 -5.51224
3410 3409 13.2621 0 -5
3411 3410 20.1138 5.6196 5
3412 3411 3.8677 10 -9.21825
3413 3412 18.5003 7.71227 3.76224
3414 3413 4.69149 6.75157 -9.94789
3415 3414 3.70349 0 -12.4511
3416 3415 1.41381 3.81784 -12.9229
3417 3416 -11.0848 10 -16.336
3418 3417 -17.3301 2.46486 -20.0167
3419 3418 5.38543 7.81641 -9.12983
3420 3419 -5.67473 6.1257 -15.7747
3421 3420 -2.32937 6.9091 -14.0346
3422 3421 -16.5428 7.28538 -18.653
3423 3422 19.551 7.52448 5
3424 3423 14.0581 6.85962 -2.11138
3425 3424 -14.4058 5.31178 -18.812
3426 3425 12 4.66114 -5
3427 3426 0.132648 9.21202 -11.971
3428 3427 7.03331 10 -7.10018
3429 3428 2.49809 6.57434 -11.5655
3430 3429 14.7492 10 0.115221
3431 3430 -8.90586 0 -18.4978
3432 3431 18.4151 2.7166 1.22814
3433 3432 -14.0313 10 -17.2715
3434 3433 -3.2602 3.12845 -15.6468
3435 3434 12.0472 10 -2.77144
3436 3435 9.60506 4.21444 -7.30629
3437 3436 11.3575 2.50129 -6.32506
3438 3437 10.3809 0 -7.80836
3439 3438 -11.2769 6.875 -17.5979
3440 3439 5.6072 6.75157 -9.51394
3441 3440 5 10 -8.66025
3442 3441 3.4854 1.19948 -12.5241
3443 3442 -1.97248 8.5 -13.4164
3444 3443 3.11994 7.68518 -10.846
3445 3444 6.43997 6.75157 -8.93862
3446 3445 13.2621 1.15137 -5
3447 3446 -0.357172 8.12287 -12.7565
3448 3447 2.04005 9.83561 -10.7233
3449 3448 -16.0417 10 -17.7851
3450 3449 6.04905 10 -7.9589
3451 3450 4.42992 5.39583 -10.8355
3452 3451 -5.82464 2.79138 -16.9011
3453 3452 9.87683 9.78499 -5
3454 3453 2.80314 2.5494 -12.6942
3455 3454 9.77165 10 -5
3456 3455 10.7971 1.34992 -7.24034
3457 3456 -1.7081 9.58403 -12.9585
3458 3457 14.3961 3.37093 -3.28535
3459 3458 4.70235 0 -12.1133
3460 3459 -6.33208 1.23094 -17.478
3461 3460 18.3316 8.97672 3.76224
3462 3461 -3.95572 8.4091 -14.5028
3463 3462 -6.83004 10 -15.1583
3464 3463 -17.3301 3.78917 -20.0167
3465 3464 -14.2401 0 -20.1901
3466 3465 1.55699 4.93585 -12.9064
3467 3466 8.56679 4.06397 -8.4428
3468 3467 16.7955 0 -1.85024
3469 3468 -5.65354 4.27271 -16.6047
3470 3469 -14.5333 8.50098 -18.141
3471 3470 16.1267 3.93674 -1.41035
3472 3471 -1.69303 10 -12.9324
3473 3472 13.7716 10 -1.32957
3474 3473 2.42543 3.74235 -12.7717
3475 3474 9.6718 0 -8.66942
3476 3475 -16.2245 0 -20.655
3477 3476 -3.59883 10 -13.8847
3478 3477 15.1958 1.51131 -3.24357
3479 3478 1.00927 5.96793 -12.9608
3480 3479 19.518 4.57395 2.9729
3481 3480 3.51421 6.57434 -11.2695
3482 3481 12 5.83057 -5
3483 3482 -3.76669 1.56423 -16.5241
3484 3483 11.3575 3.68049 -6.32506
3485 3484 12.0236 8.5 -3.88572
3486 3485 11.4963 9.58281 -3.88572
3487 3486 4.49171 1.19948 -12.1994
3488 3487 5.63021 0 -11.7154
3489 3488 -3.12454 4.97333 -15.4119
3490 3489 17.7696 3.63756 0.28125
3491 3490 0.458283 7 -12.9854
3492 3491 18.9552 6.47883 2.9729
3493 3492 9.52023 5.33134 -7.422
3494 3493 16.5425 10 1.66418
3495 3494 -11.469 3.75 -18.8598
3496 3495 14.12 5.20825 -3.28535
3497 3496 10.1386 1.34992 -8.13688
3498 3497 -11.5721 0 -19.6949
3499 3498 -6.1928 7.71227 -15.9638
3500 3499 8.9295 0 -9.43457
3501 3500 16.9263 2.07712 -1.36857
3502 3501 11.4651 10 -3.88572
3503 3502 -15.4059 5.63011 -19.3931
3504 3503 21.8567 1.85736 5
3505 3504 6.5 0 -11.2583
3506 3505 9.16513 9.81266 -6.06315
3507 3506 -16.2753 1.23243 -20.6257
3508 3507 9.11973 7.46181 -7.10581
3509 3508 7.57077 5.18602 -9.15045
3510 3509 18.3921 0 -0.35143
3511 3510 8.13697 0 -10.1309
3512 3511 9.82919 6.36453 -6.96582
3513 3512 7.32952 0 -10.7344
3514 3513 8.84757 5.25676 -8.18583
3515 3514 4.27713 2.39896 -12.2762
3516 3515 10.5686 2.69983 -7.57
3517 3516 3.23448 9.8071 -10.4946
3518 3517 -5.29585 10 -14.9148
3519 3518 -18.0143 0.111216 -21.2016
3520 3519 -17.3301 5.05142 -20.0167
3521 3520 5.62646 1.13303 -11.7193
3522 3521 1.40893 9.19466 -11.8966
3523 3522 -6.81945 0 -18.3221
3524 3523 21.2789 0 3.28098
3525 3524 2.56601 4.86036 -12.7442
3526 3525 13.557 2.66268 -5
3527 3526 10.9453 9.16563 -5
3528 3527 9.10222 1.19945 -9.28168
3529 3528 11.2868 4.79739 -6.45039
3530 3529 8.23484 7.47545 -8.02105
3531 3530 -4.27319 0 -17.4014
3532 3531 12 7 -5
3533 3532 -6.37763 5.42887 -16.9922
3534 3533 -16.6859 8.7844 -18.9009
3535 3534 6.5 1.13303 -11.2583
3536 3535 4.47594 9.8679 -9.83096
3537 3536 0.921035 8.14029 -12.7161
3538 3537 -14.5031 7.21403 -18.9805
3539 3538 18.5229 2.07712 0.130238
3540 3539 -2.98887 6.8182 -15.1769
3541 3540 3.91683 3.59191 -12.3959
3542 3541 8.31746 1.19945 -9.99099
3543 3542 7.33477 1.13303 -10.7332
3544 3543 11.5506 5.83057 -5.9652
3545 3544 8.26637 9.8358 -7.12797
3546 3545 2.10053 5.96793 -12.8292
3547 3546 10.9142 9.58281 -5
3548 3547 -18.0144 1.23562 -21.2018
3549 3548 5.42399 2.33251 -11.8144
3550 3549 9.16868 6.36453 -7.84255
3551 3550 -2.63198 8.4091 -14.5587
3552 3551 19.551 10 5
3553 3552 14.5242 0 -5
3554 3553 -14.158 2.12913 -20.3213
3555 3554 16.2421 0 -3.24357
3556 3555 1.54783 7 -12.8972
3557 3556 9.59111 2.54936 -8.77557
3558 3557 11.71 8.1968 -5
3559 3558 10.4844 3.81673 -7.68622
3560 3559 17.145 5.8416 -0.349371
3561 3560 18.3594 5.43319 0.945798
3562 3561 13.2426 10 -2.71175
3563 3562 6.2766 9.86811 -8.79047
3564 3563 -3.99853 2.79516 -16.9257
3565 3564 8.40354 6.36453 -8.57513
3566 3565 10.8831 10 -5
3567 3566 -7.7901 10 -16.2548
3568 3567 -12.198 10 -17.6644
3569 3568 -17.3301 6.27922 -20.0167
3570 3569 -10.6767 1.875 -19.5521
3571 3570 15.9306 6.25 -1.64454
3572 3571 13.557 3.84188 -5
3573 3572 6.5 2.26607 -11.2583
3574 3573 3.55154 4.78487 -12.5055
3575 3574 20.1976 8.76224 5
3576 3575 -2.27509 10 -13.9406
3577 3576 18.1214 10 2.80766
3578 3577 17.3763 7.7166 0.591656
3579 3578 8.49205 2.39889 -9.84302
3580 3579 7.47049 9.80706 -8.04932
3581 3580 18.9044 10 3.76224
3582 3581 7.5191 2.33248 -10.6049
3583 3582 -14.6765 10 -18.3889
3584 3583 2.66326 9.23761 -11.6192
3585 3584 20.4725 0 1.53622
3586 3585 16.1619 8.125 -0.703513
3587 3586 -4.2123 10 -14.9472
3588 3587 -3.82743 4.2765 -16.6293
3589 3588 -4.32901 8.4091 -15.5889
3590 3589 9.84726 3.74215 -8.48714
3591 3590 5.42399 3.52098 -11.8144
3592 3591 15.3302 4.19864 -3.28535
3593 3592 -7.97493 7.7166 -17.2832
3594 3593 10.3024 9.21082 -6.10053
3595 3594 -17.949 3.1115 -21.0887
3596 3595 19.4945 0 0.175728
3597 3596 -12.3901 6.875 -18.9263
3598 3597 3.09804 5.89243 -12.6255
3599 3598 11.5551 7 -5.95174
3600 3599 -16.6859 10 -18.9009
3601 3600 5.5495 9.79145 -9.61202
3602 3601 19.551 8.76224 3.76224
3603 3602 -15.2204 0 -21.2347
3604 3603 -16.1932 3.36156 -20.7568
3605 3604 -6.46028 3.4178 -18.002
3606 3605 22.1318 3.70772 5
3607 3606 13.219 8.5 -3.82603
3608 3607 -6.96772 1.85736 -18.5789
3609 3608 23.0368 0 5
3610 3609 -13.1495 0 -20.8198
3611 3610 10.3989 4.93363 -7.80143
3612 3611 2.06139 8.09844 -12.5964
3613 3612 6.5 3.45453 -11.2583
3614 3613 13.2809 5.6792 -5
3615 3614 -4.50502 1.23094 -17.8029
3616 3615 16.3933 10 0.237514
3617 3616 8.77596 3.59168 -9.59075
3618 3617 21.5754 1.85736 3.28098
3619 3618 21.7852 5.30304 5
3620 3619 2.63635 7 -12.7182
3621 3620 15.1843 8.125 -2.1483
3622 3621 7.5191 3.52094 -10.6049
3623 3622 12.6293 10 -3.88572
3624 3623 5.08285 4.71393 -11.9651
3625 3624 -17.3301 7.5688 -20.0167
3626 3625 11.2267 8.12105 -6.06928
3627 3626 21.2224 7.20793 5
3628 3627 10.7202 5.96682 -7.35377
3629 3628 14.819 1.51131 -5
3630 3629 -13.2626 4.00413 -20.1784
3631 3630 -9.337 10 -17.265
3632 3631 9.75359 4.85905 -8.59462
3633 3632 -3.69177 6.12137 -16.3943
3634 3633 3.88006 9.22169 -11.2792
3635 3634 4.11759 5.89243 -12.3307
3636 3635 -17.949 4.40478 -21.0887
3637 3636 -14.6462 8.71305 -19.2283
3638 3637 15.4156 10 -1.20728
3639 3638 9.59793 9.19457 -7.16906
3640 3639 -16.1932 4.65484 -20.7568
3641 3640 -5.66914 10 -16.0009
3642 3641 11.0169 7 -6.88907
3643 3642 -16.944 0.12133 -21.9012
3644 3643 -9.88442 0 -20.2443
3645 3644 9.05361 4.78446 -9.3291
3646 3645 6.5 4.64299 -11.2583
3647 3646 18.4672 4.79372 -0.152101
3648 3647 17.2528 5.20212 -1.44727
3649 3648 -3.24545 8.4091 -15.6213
3650 3649 -7.18437 4.57395 -18.3895
3651 3650 18.9552 7.7166 1.73514
3652 3651 13.2809 6.84863 -5
3653 3652 -12.3598 5.58805 -19.7657
3654 3653 12.0784 9.58281 -5
3655 3654 7.82033 4.71373 -10.3847
3656 3655 12.6057 8.5 -5
3657 3656 10.0599 5.96682 -8.23399
3658 3657 3.66938 7 -12.4611
3659 3658 3.3072 8.19982 -12.2752
3660 3659 -4.9924 0 -18.6471
3661 3660 -12.2541 1.875 -20.6769
3662 3661 -9.00171 6.20646 -18.66
3663 3662 -3.60741 7.38582 -16.2482
3664 3663 8.7308 9.23761 -8.11608
3665 3664 -2.88856 10 -15.0031
3666 3665 15.2462 6.47363 -3.32227
3667 3666 4.98391 9.16437 -10.8961
3668 3667 -17.3301 8.72603 -20.0167
3669 3668 -6.90299 6.47883 -17.9021
3670 3669 -18.6987 0.00638008 -22.387
3671 3670 -15.1383 2.12913 -21.3659
3672 3671 20.6266 6.16228 2.9729
3673 3672 -5.0319 7.71227 -16.8063
3674 3673 5.61066 5.8215 -11.7269
3675 3674 12.0472 10 -5
3676 3675 10.5523 8.14048 -7.15493
3677 3676 14.438 10 -2.65207
3678 3677 17.9721 10 1.381
3679 3678 9.38429 5.89223 -8.99639
3680 3679 18.3134 0 -2.21334
3681 3680 10.3955 7 -7.78899
3682 3681 16.7137 1.51131 -3.60667
3683 3682 -4.73686 2.46187 -18.2045
3684 3683 23.312 1.85037 5
3685 3684 -16.1932 5.91353 -20.7568
3686 3685 7.82814 9.22185 -8.99953
3687 3686 6.5 5.8215 -11.2583
3688 3687 15.8654 0 -5
3689 3688 4.66859 7 -12.1262
3690 3689 -9.0954 7.7166 -18.4663
3691 3690 8.61867 5.89223 -9.73234
3692 3691 6.94436 9.16439 -9.76422
3693 3692 7.34954 5.8215 -10.7231
3694 3693 20.2692 1.875 0.503971
3695 3694 15.1139 3.02262 -5
3696 3695 -4.56576 3.94321 -17.9081
3697 3696 4.36603 8.10934 -11.9806
3698 3697 -4.58558 10 -16.0333
3699 3698 20.8442 10 5
3700 3699 -17.9986 5.99603 -21.1745
3701 3700 18.4442 2.07712 -1.73167
3702 3701 6.05647 9.12967 -10.4901
3703 3702 22.7555 0 3.28098
3704 3703 -15.6314 10 -19.5097
3705 3704 -13.3112 10 -18.9927
3706 3705 -18.6333 1.88226 -22.2738
3707 3706 -16.8775 2.13232 -21.942
3708 3707 16.8445 3.58843 -3.125
3709 3708 9.69583 7 -8.64252
3710 3709 9.87716 8.0982 -8.08469
3711 3710 -4.94754 8.97672 -16.6602
3712 3711 -7.79801 0 -20.0685
3713 3712 -15.2904 7.49745 -20.3441
3714 3713 -8.73858 3.73236 -19.6331
3715 3714 14.4999 8.34863 -3.82603
3716 3715 5.61426 7 -11.723
3717 3716 -14.1031 0 -21.8798
3718 3717 -4.39466 5.42454 -17.6118
3719 3718 20.1976 10 3.76224
3720 3719 13.8247 10 -3.82603
3721 3720 -17.3301 10 -20.0167
3722 3721 5.45449 8.14148 -11.5053
3723 3722 8.95599 7 -9.40928
3724 3723 14.8379 4.85994 -5
3725 3724 -6.6292 10 -17.0974
3726 3725 21.3721 3.73236 2.24873
3727 3726 -10.5559 5.36487 -19.9037
3728 3727 -5.22423 1.23094 -19.0486
3729 3728 6.5 7 -11.2583
3730 3729 18.575 4.15424 -1.25
3731 3730 -10.4575 10 -18.448
3732 3731 8.97755 8.20022 -9.00101
3733 3732 -11.4618 0 -21.3691
3734 3733 16.4456 8.125 -2.0818
3735 3734 8.16555 7 -10.1077
3736 3735 7.34433 7 -10.7242
3737 3736 16.5684 5.42575 -3.125
3738 3737 -18.568 3.75814 -22.1607
3739 3738 21.869 8.44569 5
3740 3739 -16.8121 4.0082 -21.8288
3741 3740 19.4158 0 -1.68618
3742 3741 -17.9986 7.25472 -21.1745
3743 3742 6.39364 8.10956 -11.0741
3744 3743 8.1915 8.10925 -9.77231
3745 3744 17.76 0 -3.60667
3746 3745 19.551 10 2.52448
3747 3746 7.23657 8.14161 -10.4763
3748 3747 -4.3103 6.68899 -17.4657
3749 3748 -15.0563 4.25825 -21.497
3750 3749 -13.2809 8.71305 -19.8322
3751 3750 16.1603 1.51131 -5
3752 3751 16.6769 10 -1.14078
3753 3752 -10.6496 6.875 -19.71
3754 3753 -11.1623 3.96466 -20.6436
3755 3754 -3.50203 10 -16.0657
3756 3755 -5.99196 7.71227 -17.9028
3757 3756 21.2224 8.44569 3.76224
3758 3757 23.5871 3.70073 5
3759 3758 14.5618 6.69727 -5
3760 3759 13.8866 8.34863 -5
3761 3760 19.5466 2.07712 -1.20451
3762 3761 -3.86399 8.97672 -16.6926
3763 3762 24.5184 0 5
3764 3763 -16.2756 8.7844 -20.6255
3765 3764 13.2114 10 -5
3766 3765 23.0307 1.85037 3.28098
3767 3766 23.2405 5.29605 5
3768 3767 -14.1535 5.84217 -21.0843
3769 3768 -7.94628 1.85736 -20.3253
3770 3769 -5.71161 0 -19.8928
3771 3770 -4.22595 7.95344 -17.3196
3772 3771 -14.0477 2.12913 -21.9955
3773 3772 15.6993 10 -2.58557
3774 3773 20.6589 6.20903 1.53423
3775 3774 20.2135 4.5916 0.221631
3776 3775 22.8938 6.89137 5
3777 3776 -15.6822 0.118856 -22.793
3778 3777 -5.9076 8.97672 -17.7567
3779 3778 16.4456 6.88453 -3.32227
3780 3779 -5.23396 10 -17.1563
3781 3780 -7.73868 6.16228 -19.3496
3782 3781 24.5184 1.22014 5
3783 3782 22.4742 0 1.56197
3784 3783 -18.6175 5.34939 -22.2465
3785 3784 -5.3725 3.08829 -19.3054
3786 3785 -19.2225 0.984859 -23.2943
3787 3786 21.4962 0 0.201475
3788 3787 -16.8617 5.59944 -21.9146
3789 3788 -19.3663 -0.311912 -23.5435
3790 3789 16.0481 3.85033 -5
3791 3790 -13.2506 7.42609 -20.6716
3792 3791 -18.0123 8.88113 -21.1981
3793 3792 -14.2661 10 -20.1135
3794 3793 20.5182 0 -1.15902
3795 3794 -7.58926 10 -18.1939
3796 3795 19.0246 7.7166 -0.242939
3797 3796 17.2066 0 -5
3798 3797 -10.37 2.08966 -21.3358
3799 3798 -5.2014 4.56963 -19.0091
3800 3799 17.8102 8.125 -1.53811
3801 3800 17.7786 4.41614 -3.125
3802 3801 15.7612 8.34863 -3.75953
3803 3802 -17.3088 -0.0237668 -23.3565
3804 3803 -13.0392 0 -22.494
3805 3804 -16.2249 10 -20.6548
3806 3805 -15.9588 7.18336 -21.5019
3807 3806 15.0512 10 -3.82603
3808 3807 22.1343 10 5
3809 3808 -17.4013 3.1108 -22.8493
3810 3809 -4.92002 6.47451 -18.5217
3811 3810 -19.1571 2.86074 -23.1811
3812 3811 15.772 5.68765 -5
3813 3812 -8.53636 0 -21.3474
3814 3813 18.0415 10 -0.597081
3815 3814 -9.46623 3.72537 -20.8935
3816 3815 20.54 7.7166 1.35631
3817 3816 18.4792 1.37676 -3.60667
3818 3817 -5.85988 1.85736 -20.1496
3819 3818 -15.5706 2.10344 -22.8643
3820 3819 -11.5707 10 -19.7764
3821 3820 -4.15041 10 -17.1887
3822 3821 -10.3432 0 -22.015
3823 3822 16.8795 2.88807 -5
3824 3823 24.5184 0 3.76908
3825 3824 -9.29289 5.32069 -20.5932
3826 3825 -18.0104 10.1498 -21.1949
3827 3826 -14.2358 8.71305 -20.953
3828 3827 17.7678 5.83665 -3.125
3829 3828 -18.667 6.94064 -22.3323
3830 3829 -4.51237 8.97672 -17.8157
3831 3830 -4.83567 7.73896 -18.3756
3832 3831 -12.9559 4.21879 -21.9622
3833 3832 20.3213 3.95212 -0.876268
3834 3833 23.9436 2.08966 3.40625
3835 3834 18.61 3.45388 -3.125
3836 3835 -11.4467 7.20291 -20.8096
3837 3836 15.1132 8.34863 -5
3838 3837 24.7936 3.0705 5
3839 3838 23.1591 8.44569 5
3840 3839 22.8274 3.72537 2.24873
3841 3840 -6.19402 10 -18.2528
3842 3841 14.438 10 -5
3843 3842 -6.51732 8.76224 -18.8128
3844 3843 19.1984 0 -3.60667
3845 3844 15.7612 7.10817 -5
3846 3845 -16.9441 8.47032 -21.7833
3847 3846 19.1324 7.07712 -1.34084
3848 3847 22.4807 5.32069 2.24873
3849 3848 16.9605 10 -2.51907
3850 3849 -12.0531 5.80271 -21.5495
3851 3850 22.9261 6.93812 3.56133
3852 3851 22.2709 1.875 0.529717
3853 3852 -14.5855 0.118856 -23.4262
3854 3853 19.6204 10 0.5464
3855 3854 -17.5116 4.70329 -23.0404
3856 3855 -11.5404 8.71305 -20.6158
3857 3856 -11.9474 2.08966 -22.4607
3858 3857 -6.44995 0 -21.1716
3859 3858 -19.2674 4.45323 -23.3722
3860 3859 19.3293 2.07712 -3.125
3861 3860 -8.67393 1.85037 -21.5857
3862 3861 21.2929 1.875 -0.830778
3863 3862 -8.70973 10 -19.377
3864 3863 21.7824 10 3.38341
3865 3864 24.7936 4.33096 5
3866 3865 17.9258 1.37676 -5
3867 3866 16.9822 4.67803 -5
3868 3867 -13.1751 10 -20.7435
3869 3868 -6.00815 3.71471 -20.4064
3870 3869 -15.2211 10 -21.2343
3871 3870 -20.0008 -0.835778 -24.6424
3872 3871 24.4469 5.92628 5
3873 3872 -19.8736 0.56378 -24.422
3874 3873 -18.6807 8.56704 -22.3559
3875 3874 21.1358 10 2.14565
3876 3875 -19.7463 1.96334 -24.2016
3877 3876 -5.72677 5.6196 -19.9191
3878 3877 26 0 5
3879 3878 -11.9474 0 -23.1244
3880 3879 16.3125 10 -3.75953
3881 3880 -17.9156 0.955979 -24.2166
3882 3881 -9.64283 6.97973 -20.9475
3883 3882 20.3008 0 -3.07951
3884 3883 16.9605 8.75953 -3.75953
3885 3884 24.2188 3.94003 3.40625
3886 3885 24.2371 0 2.05006
3887 3886 -4.79879 10 -18.3117
3888 3887 -5.12209 8.76224 -18.8717
3889 3888 -17.9741 -0.36231 -24.5088
3890 3889 18.645 0 -5
3891 3890 22.8072 8.44569 3.38341
3892 3891 -5.44539 7.52448 -19.4317
3893 3892 16.9714 6.09855 -5
3894 3893 23.8721 5.53535 3.40625
3895 3894 -16.0848 -0.0513791 -24.2316
3896 3895 26 1.27892 5
3897 3896 23.6623 2.08966 1.68723
3898 3897 -19.317 6.04448 -23.458
3899 3898 -10.2492 5.57953 -21.6874
3900 3899 17.8136 3.71577 -5
3901 3900 -13.8806 5.22881 -22.7264
3902 3901 23.4243 10 5
3903 3902 24.4469 7.21676 5
3904 3903 -13.1448 8.71305 -21.5829
3905 3904 -16.9449 10.1667 -21.9018
3906 3905 -6.59822 1.85736 -21.4285
3907 3906 22.8423 0 -0.174292
3908 3907 26 1.62105 5
3909 3908 -9.73651 8.48987 -20.7538
3910 3909 18.9534 5.76297 -3.125
3911 3910 19.3364 4.5927 -3.125
3912 3911 18.3252 10 -1.97537
3913 3912 -15.2592 4.82612 -23.2025
3914 3913 21.8643 0 -1.53479
3915 3914 -6.84062 10 -19.3728
3916 3915 15.6645 10 -5
3917 3916 -10.8555 4.17933 -22.4273
3918 3917 26 2.44027 5
3919 3918 -12.9777 6.81273 -22.3137
3920 3919 -18.6944 10.1935 -22.3796
3921 3920 16.3125 8.75953 -5
3922 3921 -19.8566 3.55583 -24.3927
3923 3922 -9.02192 2.08966 -22.4389
3924 3923 22.513 5.36743 0.810066
3925 3924 -7.35301 8.44569 -20.2603
3926 3925 22.9584 6.98487 2.12267
3927 3926 -9.8302 10 -20.5601
3928 3927 26 3.0639 5
3929 3928 16.9605 7.51907 -5
3930 3929 22.0676 3.75 -0.502535
3931 3930 -15.6859 6.57 -23.144
3932 3931 18.645 2.75351 -5
3933 3932 -14.1456 2.05957 -23.919
3934 3933 -10.8287 2.08966 -23.1065
3935 3934 26 0 3.70932
3936 3935 20.8787 6.875 -0.967106
3937 3936 26 3.73148 5
3938 3937 -7.1883 0 -22.4505
3939 3938 -16.2886 3.53637 -24.1096
3940 3939 18.3252 8.75953 -3.21584
3941 3940 -14.7527 8.81722 -22.4064
3942 3941 -14.1033 10 -21.8797
3943 3942 -17.0646 6.16731 -23.6202
3944 3943 -20.5863 -1.55224 -25.6565
3945 3944 -8.9951 0 -23.1181
3946 3945 21.0755 1.875 -2.75127
3947 3946 23.0725 10 3.38341
3948 3947 -6.7358 3.70772 -21.6667
3949 3948 26 1.22014 3.76908
3950 3949 24.2371 0 0.758353
3951 3950 -5.44539 10 -19.4317
3952 3951 19.3643 1.37676 -5
3953 3952 -5.76869 8.76224 -19.9917
3954 3953 22.3941 6.875 0.632145
3955 3954 18.1461 8.68585 -3.75953
3956 3955 24.7122 8.77107 5
3957 3956 17.6086 10 -3.75953
3958 3957 -10.8019 0 -23.7857
3959 3958 -19.3621 8.45108 -23.5361
3960 3959 -11.1738 6.58955 -22.4516
3961 3960 25.4252 3.3098 3.40625
3962 3961 22.8395 8.49243 1.94475
3963 3962 -6.56245 5.30304 -21.3665
3964 3963 -17.4609 8.57449 -23.2367
3965 3964 26 4.96119 5
3966 3965 20.5183 3.67585 -3.125
3967 3966 19.6898 10 -1.43168
3968 3967 18.54 4.8546 -5
3969 3968 -11.4346 10 -21.5271
3970 3969 -19.9669 5.14832 -24.5837
3971 3970 18.157 6.02487 -5
3972 3971 26 5.1271 5
3973 3972 23.9044 5.5821 1.96758
3974 3973 23.459 3.96466 0.654982
3975 3974 -13.1745 0.111007 -24.4622
3976 3975 24.4792 7.26351 3.56133
3977 3976 22.639 1.875 -1.20654
3978 3977 -8.37979 6.93555 -21.637
3979 3978 -9.15949 3.94003 -22.6772
3980 3979 -7.96109 10 -20.5558
3981 3980 -6.28108 7.20793 -20.8791
3982 3981 -12.0258 8.71305 -22.2289
3983 3982 -11.7802 5.18934 -23.1916
3984 3983 -11.2675 8.09968 -22.2579
3985 3984 21.2052 10 0.167575
3986 3985 27.3683 0.111216 5
3987 3986 20.0835 0 -5
3988 3987 -8.98615 5.53535 -22.377
3989 3988 -7.32587 1.85037 -22.6888
3990 3989 25.4252 4.57026 3.40625
3991 3990 -20.7075 0.473321 -25.8664
3992 3991 -8.47348 8.44569 -21.4433
3993 3992 26 6.22054 5
3994 3993 -15.7802 10.1787 -22.7659
3995 3994 -20.5803 1.87288 -25.646
3996 3995 24.7122 10 5
3997 3996 16.9605 10 -5
3998 3997 26 0 2.53815
3999 3998 21.0827 4.39058 -2.75127
4000 3999 21.6469 0 -3.45528
4001 4000 27.3685 1.22333 5
4002 4001 17.6086 8.75953 -5
4003 4002 18.1461 7.44539 -5
4004 4003 25.4252 2.08966 2.17533
4005 4004 19.3714 3.89234 -5
4006 4005 22.7206 10 1.76683
4007 4006 -18.6336 2.38891 -25.4619
4008 4007 24.3603 8.77107 3.38341
4009 4008 -19.378 10.1306 -23.5637
4010 4009 -21.1083 -2.44356 -26.5607
4011 4010 -17.7146 5.27115 -24.7459
4012 4011 -14.6576 -0.0930185 -25.2873
4013 4012 -18.3288 0.268938 -25.888
4014 4013 -13.0389 10 -22.4942
4015 4014 -17.401 10.2118 -23.3039
4016 4015 24.8504 4.17933 1.8125
4017 4016 26 7.20747 5
4018 4017 -16.8029 1.38156 -25.4769
4019 4018 25.4252 5.86074 3.40625
4020 4019 -12.0452 2.02011 -24.3842
4021 4020 19.5108 8.68585 -3.21584
4022 4021 20.7129 5.5781 -3.125
4023 4022 18.9732 10 -3.21584
4024 4023 27.2064 3.0705 5
4025 4024 24.0338 1.875 -0.273899
4026 4025 23.2104 0 -1.91055
4027 4026 -18.335 -1.11217 -26.1914
4028 4027 26 7.54214 5
4029 4028 -10.2219 8.48987 -22.3669
4030 4029 -6.09199 10 -20.5516
4031 4030 -12.8719 8.09968 -23.225
4032 4031 -20.012 7.55493 -24.6619
4033 4032 -7.92908 0 -23.7336
4034 4033 -9.76271 3.3098 -23.722
4035 4034 -16.5351 -0.567088 -25.9763
4036 4035 -7.46345 3.70073 -22.9271
4037 4036 -9.78764 0 -24.3713
4038 4037 -20.6906 3.46537 -25.8371
4039 4038 -6.60438 8.44569 -21.4391
4040 4039 27.2064 4.33096 5
4041 4040 -10.3156 10 -22.1731
4042 4041 -7.2901 5.29605 -22.6268
4043 4042 -7.92908 1.22014 -23.7336
4044 4043 -8.60612 10 -21.6731
4045 4044 27.439 0.12133 3.70932
4046 4045 26 8.52832 5
4047 4046 -12.7048 6.19936 -23.9558
4048 4047 24.7122 10 3.76957
4049 4048 -12.0515 0.111007 -25.1106
4050 4049 -18.7439 3.98141 -25.6529
4051 4050 26 8.71149 5
4052 4051 -14.0835 5.79667 -24.4319
4053 4052 27.2064 1.85037 3.76908
4054 4053 -9.73588 1.22014 -24.4012
4055 4054 -21.2613 -0.330568 -26.8256
4056 4055 22.2646 3.47373 -2.75127
4057 4056 26 0 1.21538
4058 4057 -9.76271 4.57026 -23.722
4059 4058 24.4792 8.49243 2.33091
4060 4059 -15.4622 5.39398 -24.9081
4061 4060 20.5533 2.97549 -5
4062 4061 -7.11676 6.89137 -22.3266
4063 4062 -14.6781 10.1787 -23.4023
4064 4063 26.6316 3.94003 3.40625
4065 4064 -21.554 -3.48764 -27.3326
4066 4065 25.4252 2.08966 0.883618
4067 4066 -18.0152 8.4012 -24.592
4068 4067 23.7429 7.20548 0.491547
4069 4068 23.2975 5.58805 -0.821054
4070 4069 -14.4798 8.20385 -24.0484
4071 4070 24.6052 0 -0.977909
4072 4071 -9.15635 7.26094 -22.9821
4073 4072 22.5857 6.875 -1.26701
4074 4073 20.0978 5.03117 -5
4075 4074 19.7148 6.20144 -5
4076 4075 18.7942 8.68585 -5
4077 4076 18.2566 10 -5
4078 4077 19.3317 7.37171 -5
4079 4078 -15.8584 7.80117 -24.5246
4080 4079 -20.6579 5.8161 -25.7806
4081 4080 -12.9699 3.03012 -25.1484
4082 4081 21.5602 0 -5
4083 4082 -9.76271 5.86074 -23.722
4084 4083 21.2725 1.59873 -5
4085 4084 28.7371 0.00638008 5
4086 4085 26 10 5
4087 4086 -14.3485 2.62744 -25.6245
4088 4087 -11.9469 10 -23.1247
4089 4088 -9.25004 8.77107 -22.7884
4090 4089 -18.8937 -1.90757 -27.1591
4091 4090 24.9145 6.64124 1.38924
4092 4091 21.3968 10 -1.73158
4093 4092 -8.06666 3.0705 -23.9719
4094 4093 -16.4916 4.10424 -25.8151
4095 4094 -20.0571 9.96153 -24.74
4096 4095 -6.73702 10 -21.6689
4097 4096 23.1236 0 -3.45528
4098 4097 24.3603 10 2.15299
4099 4098 20.2662 10 -3.21584
4100 4099 -16.2547 10.2083 -24.1411
4101 4100 -18.0766 10.1252 -24.4742
4102 4101 28.575 1.85356 5
4103 4102 27.5713 5.92581 5
4104 4103 22.836 1.59873 -3.45528
4105 4104 -11.7529 8.09968 -23.871
4106 4105 23.624 8.71305 0.313626
4107 4106 -21.9122 -4.65864 -27.9531
4108 4107 22.4592 5.37598 -2.75127
4109 4108 26 8.77107 3.76957
4110 4109 -21.4142 1.78242 -27.0905
4111 4110 24.6889 5.80271 0.336464
4112 4111 22.9122 10 -0.132328
4113 4112 -7.2494 8.44569 -22.5563
4114 4113 -8.06666 4.33096 -23.9719
4115 4114 -8.66987 0 -25.0167
4116 4115 -10.3659 3.94003 -24.7668
4117 4116 -19.4676 2.29846 -26.9063
4118 4117 28.4129 3.70073 5
4119 4118 26 0 -0.0452634
4120 4119 26.9965 5.53488 3.40625
4121 4120 -10.5072 0.12133 -25.6176
4122 4121 21.2702 8.50098 -3.21584
4123 4122 -15.3779 1.33769 -26.5316
4124 4123 -13.2349 -0.139112 -26.341
4125 4124 24.1312 4.24666 -1.39658
4126 4125 24.7956 8.1488 1.21132
4127 4126 -19.1628 0.178479 -27.3324
4128 4127 -7.89332 5.92628 -23.6716
4129 4128 21.2797 4.11431 -5
4130 4129 27.5713 7.21628 5
4131 4130 -18.6652 7.50505 -25.7177
4132 4131 24.6052 0 -2.23721
4133 4132 -8.66987 1.27892 -25.0167
4134 4133 -17.5209 2.81449 -26.7221
4135 4134 25.8605 5.23847 1.23416
4136 4135 -22.1742 -5.92755 -28.4068
4137 4136 26.4353 6.91987 2.82791
4138 4137 -20.703 8.2227 -25.8587
4139 4138 -10.3391 1.85037 -25.446
4140 4139 26 10 3.70986
4141 4140 -17.2161 0.694514 -27.1482
4142 4141 27.1325 2.02189 1.75115
4143 4142 -15.1184 -0.648467 -27.0142
4144 4143 27.7651 0.111388 2.10865
4145 4144 -21.3815 4.13315 -27.0339
4146 4145 -22.3301 -10 -28.6769
4147 4146 -10.6874 6.87075 -24.4862
4148 4147 20.0871 8.68585 -5
4149 4148 19.5496 10 -5
4150 4149 -19.7694 -3.23168 -28.1394
4151 4150 -8.66987 2.44027 -25.0167
4152 4151 -22.3333 -7.26293 -28.6824
4153 4152 27.3643 8.8678 5
4154 4153 -16.9113 -1.42546 -27.5743
4155 4154 -7.89332 7.21676 -23.6716
4156 4155 -19.4349 4.64919 -26.8498
4157 4156 -22.3857 -8.63171 -28.7732
4158 4157 24.3603 10 0.860938
4159 4158 -22.1694 -2.26902 -28.3985
4160 4159 -9.09154 10 -23.2862
4161 4160 -10.801 10 -23.7862
4162 4161 -15.0341 8.03057 -25.4037
4163 4162 -7.38204 10 -22.7861
4164 4163 25.5226 4.46133 -0.239062
4165 4164 24.7025 2.37166 -2.10059
4166 4165 -10.5542 5.51566 -25.0929
4167 4166 -13.3786 10.1944 -24.4568
4168 4167 -8.66987 3.73148 -25.0167
4169 4168 -16.4128 7.62788 -25.8799
4170 4169 28.7777 5.29558 5
4171 4170 23.0368 0 -5
4172 4171 -13.1524 8.19286 -25.0951
4173 4172 -20.7276 9.6874 -25.9013
4174 4173 29.7912 1.04216 5
4175 4174 21.4743 6.01656 -5
4176 4175 21.0912 7.18683 -5
4177 4176 -11.2906 4.95005 -25.531
4178 4177 30.0724 -0.311912 5
4179 4178 26 0 -1.27376
4180 4179 22.7492 1.59873 -5
4181 4180 27.6417 4.99917 2.82791
4182 4181 29.0742 -0.0606681 3.24291
4183 4182 27.3605 10.1498 5
4184 4183 -21.3489 6.48388 -26.9774
4185 4184 22.4616 3.19746 -5
4186 4185 -20.5962 -1.27189 -28.4531
4187 4186 23.4945 5.31178 -3.06979
4188 4187 26 10 2.53915
4189 4188 29.6291 2.88934 5
4190 4189 -20.1502 -4.37176 -28.7989
4191 4190 -11.7233 -0.0621712 -26.8121
4192 4191 28.9137 1.7826 3.3449
4193 4192 25.2637 8.71305 0.699787
4194 4193 -8.66987 4.96119 -25.0167
4195 4194 -16.7988 10.0983 -25.4807
4196 4195 -9.35401 0.111216 -26.2016
4197 4196 -18.6179 9.90846 -25.848
4198 4197 -22.6117 -4.94792 -29.1647
4199 4198 27.7651 0.111388 0.812525
4200 4199 -14.9154 10.1994 -25.1956
4201 4200 24.5275 7.42609 -1.13957
4202 4201 -9.73545 8.77107 -24.4014
4203 4202 -8.02596 8.77107 -23.9014
4204 4203 -17.4422 6.33813 -26.7869
4205 4204 -22.3223 -0.156036 -28.6634
4206 4205 24.5184 0 -3.78193
4207 4206 -22.5713 -3.37657 -29.0947
4208 4207 -21.2245 -10 -29.3152
4209 4208 23.8156 8.71305 -1.58553
4210 4209 -22.0017 3.1181 -28.108
4211 4210 24.2308 1.59873 -3.78193
4212 4211 -9.35414 1.22333 -26.2018
4213 4212 -20.7253 -5.82943 -29.201
4214 4213 26.0973 2.37166 -1.16794
4215 4214 -11.5556 1.78081 -26.7236
4216 4215 23.1038 10 -2.03148
4217 4216 -21.2852 -8.56096 -29.4203
4218 4217 -21.3672 7.89686 -27.009
4219 4218 26.4353 8.1488 1.59748
4220 4219 -8.66987 6.22054 -25.0167
4221 4220 21.9732 10 -3.51574
4222 4221 -13.9676 6.03591 -26.4177
4223 4222 -17.8193 -2.62932 -28.6643
4224 4223 -22.8223 -6.25006 -29.5294
4225 4224 25.699 6.86185 -0.241876
4226 4225 20.8426 10 -5
4227 4226 -15.3463 5.63323 -26.8939
4228 4227 -20.8914 -7.1601 -29.4888
4229 4228 -9.78717 10 -24.3716
4230 4229 -9.27309 3.0705 -26.0615
4231 4230 -11.4788 6.52567 -25.8571
4232 4231 29.8861 4.12277 5
4233 4232 22.6562 5.09971 -5
4234 4233 -22.9481 -10 -29.7474
4235 4234 29.1426 6.89042 5
4236 4235 -22.9497 -8.63147 -29.7501
4237 4236 -19.3562 8.17283 -26.9145
4238 4237 -8.02596 10 -23.9014
4239 4238 -20.7492 0.841097 -28.718
4240 4239 -13.6833 -0.657623 -27.8666
4241 4240 -22.3662 1.68356 -28.7394
4242 4241 28.0066 6.59401 2.82791
4243 4242 23.6891 7.21403 -3.06979
4244 4243 -12.264 10.1944 -25.1003
4245 4244 -15.5098 -1.43823 -28.4047
4246 4245 26 0 -2.56387
4247 4246 27.44 10.1667 3.70986
4248 4247 -18.8025 1.35713 -28.5338
4249 4248 22.9773 8.50098 -3.51574
4250 4249 24.3282 3.97039 -3.64531
4251 4250 -21.969 5.46883 -28.0514
4252 4251 -8.66987 7.54214 -25.0167
4253 4252 -20.094 3.00506 -28.4185
4254 4253 -16.0044 2.04429 -28.0437
4255 4254 26 10 1.21601
4256 4255 26.8706 6.2976 0.65582
4257 4256 -9.27309 4.33096 -26.0615
4258 4257 -21.3854 9.30984 -27.0407
4259 4258 21.8466 8.50098 -5
4260 4259 25.2637 8.71305 -0.592261
4261 4260 -14.2326 2.86668 -27.6104
4262 4261 28.9355 8.54194 5
4263 4262 -11.3695 8.19641 -25.6677
4264 4263 28.1425 3.08103 1.17281
4265 4264 -18.4977 -0.762844 -28.9599
4266 4265 25.3611 6.08471 -1.7151
4267 4266 27.7996 8.24553 2.82791
4268 4267 24.5519 10 -1.03821
4269 4268 -18.1474 3.52109 -28.2343
4270 4269 -16.3756 4.34348 -27.8009
4271 4270 -20.2204 -10 -29.895
4272 4271 31.0933 0.621085 5
4273 4272 31.3413 -0.835778 5
4274 4273 30.8453 2.07795 5
4275 4274 30.1299 0.971204 3.3449
4276 4275 -12.3874 -0.430655 -27.9623
4277 4276 -18.5899 -4.0927 -29.5121
4278 4277 24.5184 0 -5
4279 4278 27.5803 0.11886 -0.918921
4280 4279 -8.66987 8.71149 -25.0167
4281 4280 30.4025 -0.428038 3.24291
4282 4281 -12.1575 0.8838 -27.7662
4283 4282 29.4145 -0.13554 1.68979
4284 4283 -10.0384 0.00638008 -27.387
4285 4284 -19.2819 9.61408 -26.9982
4286 4285 26.0973 2.37166 -2.42725
4287 4286 26.4353 8.1488 0.305436
4288 4287 -20.9506 -4.66495 -29.9442
4289 4288 28.7285 10.1935 5
4290 4289 26.5326 5.52046 -0.817402
4291 4290 -23.2707 -7.40275 -30.306
4292 4291 22.8507 7.00196 -5
4293 4292 -18.2896 6.17817 -27.9286
4294 4293 -20.0614 5.35579 -28.3619
4295 4294 -20.9102 -3.0936 -29.8742
4296 4295 24.5184 1.23243 -5
4297 4296 27.8046 2.30389 -0.300416
4298 4297 30.251 5.71762 5
4299 4298 -21.998 7.36902 -28.1017
4300 4299 -9.95735 1.85356 -27.2466
4301 4300 -19.9812 -8.46014 -30.1715
4302 4301 -17.3635 9.86177 -26.8517
4303 4302 23.9753 8.71305 -3.06979
4304 4303 24.2308 2.83116 -5
4305 4304 28.8639 4.59222 2.03344
4306 4305 -15.1316 -0.140312 -28.7822
4307 4306 -19.166 -5.5188 -29.9764
4308 4307 -21.8502 -10 -30.399
4309 4308 24.5227 5.87264 -3.64531
4310 4309 -15.469 10.0669 -26.5301
4311 4310 -21.461 -6.14682 -30.2913
4312 4311 -23.3113 -5.23719 -30.3763
4313 4312 -16.1865 -2.36918 -29.3115
4314 4313 -17.2746 1.33649 -28.9727
4315 4314 23.2635 10 -3.51574
4316 4315 26 0 -3.72334
4317 4316 -19.6108 -7.05644 -30.2063
4318 4317 -23.2708 -3.66584 -30.3063
4319 4318 -9.46137 5.90659 -26.3876
4320 4319 -8.66987 10 -25.0167
4321 4320 31.1023 3.31138 5
4322 4321 -13.6 10.1864 -26.2345
4323 4322 22.1329 10 -5
4324 4323 26 10 -0.0449491
4325 4324 -9.8763 3.70073 -27.1063
4326 4325 -23.2304 -2.09449 -30.2363
4327 4326 -16.9698 -0.783487 -29.3988
4328 4327 -22.5891 4.45378 -29.1255
4329 4328 24.2308 4.12444 -5
4330 4329 -19.337 -2.09647 -29.9288
4331 4330 25.2637 8.71305 -1.85212
4332 4331 26.1947 4.74333 -2.29062
4333 4332 -10.5072 10.1667 -25.6186
4334 4333 -23.5662 -10 -30.8178
4335 4334 26 1.23243 -3.78193
4336 4335 -21.9594 -8.63147 -30.7145
4337 4336 24.5519 10 -2.29808
4338 4337 -22.0266 8.83113 -28.1512
4339 4338 -19.1031 -10 -30.54
4340 4339 -9.46137 7.19706 -26.3876
4341 4340 27.5803 0.11886 -2.18536
4342 4341 23.1369 8.50098 -5
4343 4342 -21.6573 -1.09736 -30.2909
4344 4343 -14.0505 -1.45104 -29.2683
4345 4344 -23.2743 -0.254901 -30.3123
4346 4345 -22.9536 3.01924 -29.7569
4347 4346 -16.2969 7.86712 -27.8657
4348 4347 30.5929 7.10977 5
4349 4348 29.2206 -0.0913666 -0.0598462
4350 4349 32.5123 -1.55224 5
4351 4350 31.3594 4.54481 5
4352 4351 -21.4982 2.30389 -29.8666
4353 4352 -20.0575 7.65062 -28.5268
4354 4353 -14.4152 8.02942 -27.5571
4355 4354 25.2637 7.49745 -3.06979
4356 4355 -12.5533 4.7866 -27.993
4357 4356 30.2983 8.42598 5
4358 4357 -10.5593 0.956546 -28.2892
4359 4358 -20.6815 4.34074 -29.436
4360 4359 -16.9832 -3.78643 -30.214
4361 4360 27.8586 10.1938 1.90434
4362 4361 -10.7061 -0.311912 -28.5435
4363 4362 31.613 0.310537 3.70884
4364 4363 -22.6181 6.35397 -29.1758
4365 4364 -21.9094 -7.2995 -31.0679
4366 4365 -9.352 8.8678 -26.1981
4367 4366 -23.7597 -6.38988 -31.1529
4368 4367 -18.8828 -8.46014 -30.8056
4369 4368 -11.9265 8.51917 -26.9965
4370 4369 31.8734 -1.12628 3.64352
4371 4370 26.0973 3.60409 -3.64531
4372 4371 29.3212 8.53901 3.14544
4373 4372 27.611 2.346 -2.05298
4374 4373 -10.0646 5.27636 -27.4324
4375 4374 24.4254 6.02669 -5
4376 4375 28.0928 5.89066 -0.138649
4377 4376 30.4623 4.8248 3.125
4378 4377 -21.7012 0.742232 -30.3668
4379 4378 -20.0841 -0.100227 -30.3455
4380 4379 30.9725 -0.656585 2.0499
4381 4380 -23.8871 -8.77128 -31.3737
4382 4381 26 10 -1.27397
4383 4382 -10.4782 2.80372 -28.1488
4384 4383 26 0 -5
4385 4384 -17.8091 -2.11711 -30.3677
4386 4385 -23.3182 1.58469 -30.3882
4387 4386 28.1852 8.2426 0.973354
4388 4387 29.3648 2.67409 0.378337
4389 4388 30.1878 3.34 1.875
4390 4389 -19.429 2.06373 -30.046
4391 4390 30.0958 10.1306 5
4392 4391 -12.7562 -1.12367 -29.4344
4393 4392 32.6244 0.471519 5
4394 4393 -11.9231 10.2054 -26.7492
4395 4394 32.3763 1.92838 5
4396 4395 -12.5653 0.227834 -29.2299
4397 4396 -20.8986 -10 -31.3142
4398 4397 -17.619 -5.31187 -30.7776
4399 4398 26.0973 4.89738 -3.64531
4400 4399 26 1.29232 -5
4401 4400 -9.35012 10.1498 -26.1949
4402 4401 23.4232 10 -5
4403 4402 -19.9675 9.0722 -28.6259
4404 4403 24.4254 7.28538 -5
4405 4404 26 1.62105 -5
4406 4405 -18.0715 -6.84319 -31.0459
4407 4406 29.1169 10.2058 3.0221
4408 4407 -20.7105 6.24092 -29.4862
4409 4408 -14.7353 -2.38488 -30.1678
4410 4409 -23.1817 4.24704 -30.1518
4411 4410 -17.0021 5.05008 -29.3131
4412 4411 -18.7739 4.22769 -29.7465
4413 4412 -18.0392 -10 -31.1543
4414 4413 27.7549 5.11352 -1.61187
4415 4414 -20.5981 -8.52822 -31.4765
4416 4415 -15.2303 5.87247 -28.8797
4417 4416 31.7013 5.93696 5
4418 4417 -22.6472 8.25416 -29.226
4419 4418 -14.927 3.0672 -29.4689
4420 4419 27.439 0.12133 -3.72334
4421 4420 -15.5394 -0.796279 -30.2458
4422 4421 -12.7416 6.36223 -28.3191
4423 4422 26.7186 8.81871 -1.60079
4424 4423 26 2.46486 -5
4425 4424 -16.2493 9.75097 -28.0958
4426 4425 -18.0726 9.42654 -28.4792
4427 4426 26.0973 6.15606 -3.64531
4428 4427 24.7116 10 -3.78234
4429 4428 -13.1552 3.88959 -29.0356
4430 4429 27.8586 10.1938 0.618514
4431 4430 -22.516 -10 -31.8184
4432 4431 -14.3534 9.99149 -27.7601
4433 4432 -10.6541 4.15633 -28.4534
4434 4433 26 3.0639 -5
4435 4434 -24.208 -10 -31.9296
4436 4435 29.0273 -0.0513277 -1.81534
4437 4436 -19.5288 -5.28656 -31.4123
4438 4437 -24.1116 -5.01769 -31.7626
4439 4438 33.5564 -2.44356 5
4440 4439 -10.2529 6.85198 -27.7585
4441 4440 -24.208 -7.54257 -31.9296
4442 4441 32.6334 3.16181 5
4443 4442 -18.5562 -0.12087 -30.7844
4444 4443 -24.0712 -3.44634 -31.6926
4445 4444 -23.5462 2.81249 -30.7832
4446 4445 -23.2005 5.63689 -30.1844
4447 4446 30.8271 6.41965 3.125
4448 4447 -11.3405 -0.835778 -29.6424
4449 4448 26 3.78917 -5
4450 4449 -11.2103 0.535467 -29.4169
4451 4450 27.8902 8.25447 -0.70309
4452 4451 -11.0802 1.90671 -29.1914
4453 4452 -21.8894 -5.85881 -31.8443
4454 4453 -17.9011 2.04309 -30.4849
4455 4454 26.5862 7.18793 -3.06979
4456 4455 29.6912 6.12324 0.95291
4457 4456 27.4659 2.37485 -3.64531
4458 4457 26 10 -2.56467
4459 4458 -20.0392 -6.76843 -31.7593
4460 4459 32.9883 -1.92525 3.64352
4461 4460 -21.849 -4.28745 -31.7743
4462 4461 -23.9952 -0.734706 -31.561
4463 4462 -15.3362 -3.4887 -30.9244
4464 4463 31.6785 4.01341 3.125
4465 4464 -13.3139 -1.92187 -30.4002
4466 4465 30.9706 -0.655745 0.404255
4467 4466 -10.1435 8.52272 -27.5691
4468 4467 24.7116 8.7844 -5
4469 4468 -14.0542 0.8826 -30.2074
4470 4469 32.3807 -1.45687 2.41768
4471 4470 -19.7884 -10 -31.9552
4472 4471 -22.4064 0.365434 -31.4395
4473 4472 -17.3847 -8.2556 -31.662
4474 4473 26 5.05142 -5
4475 4474 31.404 2.52861 1.875
4476 4475 26 5.1271 -5
4477 4476 -22.0857 3.63957 -30.8841
4478 4477 33.7319 -0.33237 5
4479 4478 -18.77 6.52253 -29.9114
4480 4479 27.3352 4.25073 -3.64531
4481 4480 32.0431 7.32911 5
4482 4481 -16.1822 -1.8151 -31.0739
4483 4482 -16.9982 7.34492 -29.478
4484 4483 27.7578 6.62369 -2.17209
4485 4484 -13.3311 5.2422 -29.3401
4486 4485 30.6886 1.42187 0.219897
4487 4486 -22.8968 -8.77128 -32.3381
4488 4487 -21.699 6.02042 -30.3972
4489 4488 -15.1841 7.74884 -29.1101
4490 4489 -12.5975 10.0972 -27.9174
4491 4490 31.7486 8.64532 5
4492 4491 -24.529 -8.77128 -32.4854
4493 4492 -16.9474 -10 -31.7846
4494 4493 -23.9035 2.21789 -31.402
4495 4494 -20.6003 8.55052 -29.7219
4496 4495 27.3683 0.111216 -5
4497 4496 32.746 5.25876 5
4498 4497 26 8.7844 -3.78234
4499 4498 -12.6954 8.2386 -28.5495
4500 4499 27.5383 10.174 -1.03698
4501 4500 -18.3737 -3.72271 -31.7317
4502 4501 -10.8423 5.73195 -28.7795
4503 4502 33.1441 0.160971 3.70884
4504 4503 -24.0391 1.10489 -31.6369
4505 4504 -23.2434 7.58243 -30.2588
4506 4505 -10.0341 10.1935 -27.3796
4507 4506 -16.0188 -4.97393 -31.5348
4508 4507 30.7714 8.75835 3.14544
4509 4508 31.454 9.96153 5
4510 4509 24.7116 10 -5
4511 4510 -11.256 3.25932 -29.4959
4512 4511 26 6.27922 -5
4513 4512 29.0787 3.8613 -1.77031
4514 4513 -17.0282 -0.141513 -31.2233
4515 4514 -23.7742 4.0403 -31.1781
4516 4515 34.4478 -3.48764 5
4517 4516 -24.56 -6.17037 -32.5392
4518 4517 -19.2534 -8.24021 -32.2333
4519 4518 -20.8332 1.36257 -31.494
4520 4519 27.3685 1.23562 -5
4521 4520 28.8816 -0.0237432 -3.3123
4522 4521 29.315 5.48372 -0.933119
4523 4522 -22.4502 2.20503 -31.5154
4524 4523 31.9356 5.24684 3.125
4525 4524 -20.694 -2.72361 -32.0937
4526 4525 -16.5404 -6.62905 -31.8749
4527 4526 -24.4197 -2.05222 -32.2961
4528 4527 30.4659 10.0984 3.0221
4529 4528 -13.4143 0.0929648 -30.7003
4530 4529 -22.3378 -7.01149 -32.621
4531 4530 27.4199 5.84655 -3.64531
4532 4531 -13.9684 -2.95024 -31.2212
4533 4532 26 10 -3.72378
4534 4533 -20.1781 3.52653 -31.1945
4535 4534 -11.926 -1.55224 -30.6565
4536 4535 26 7.20747 -5
4537 4536 33.9074 1.77882 5
4538 4537 29.4997 10.1876 1.29089
4539 4538 -19.7914 5.90738 -30.7076
4540 4539 27.2378 3.1115 -5
4541 4540 -21.5855 -10 -32.7466
4542 4541 26 7.5688 -5
4543 4542 -13.4898 6.48272 -29.6149
4544 4543 -23.793 5.43015 -31.2107
4545 4544 -23.1568 -10 -32.9284
4546 4545 -21.6662 7.9357 -30.4931
4547 4546 34.0227 -2.95043 3.5138
4548 4547 -24.8499 -10 -33.0413
4549 4548 30.7873 -0.576868 -1.33307
4550 4549 -15.776 2.93233 -30.9394
4551 4550 -11.001 6.97248 -29.0543
4552 4551 -19.1209 -1.72647 -32.1483
4553 4552 -14.0042 3.75472 -30.506
4554 4553 -24.1315 3.44569 -31.7969
4555 4554 -18.7662 8.81736 -30.0763
4556 4555 28.4819 3.35597 -3.64531
4557 4556 33.0879 6.65091 5
4558 4557 -11.4318 4.61192 -29.8005
4559 4558 -16.9637 9.26473 -29.7182
4560 4559 -16.2641 -8.2556 -32.309
4561 4560 32.379 -1.4557 0.747301
4562 4561 27.2378 4.40478 -5
4563 4562 -10.8249 8.40676 -28.7492
4564 4563 -15.1379 9.62521 -29.3406
4565 4564 35.1642 -4.65864 5
4566 4565 26 8.52832 -5
4567 4566 -18.504 -6.55473 -32.5937
4568 4567 29.4006 8.08023 -0.578821
4569 4568 33.4975 -2.38851 2.29892
4570 4569 30.495 1.46397 -1.53267
4571 4570 26 8.72603 -5
4572 4571 27.5383 10.174 -2.31135
4573 4572 -21.0266 -8.24021 -33.0295
4574 4573 -12.0593 0.400598 -30.8874
4575 4574 -22.6782 3.43283 -31.9104
4576 4575 -23.8118 6.82 -31.2432
4577 4576 -11.9291 1.77184 -30.6619
4578 4577 -14.3731 -4.05792 -31.9221
4579 4578 32.2774 6.63899 3.125
4580 4579 -14.0571 -0.925861 -31.5284
4581 4580 -24.912 -4.79818 -33.1488
4582 4581 34.02 3.87576 5
4583 4582 -15.8019 -10 -32.446
4584 4583 -25.0052 -7.45075 -33.3103
4585 4584 34.1785 -0.855008 3.59052
4586 4585 32.1717 0.761198 0.583842
4587 4586 -21.8735 5.20852 -31.5734
4588 4587 -17.3184 6.51911 -30.759
4589 4588 -15.5467 7.3415 -30.3256
4590 4589 27.3225 8.47489 -3.78234
4591 4590 -22.6898 -5.6393 -33.2306
4592 4591 -15.7706 5.0701 -30.93
4593 4592 30.9134 5.71629 0.158441
4594 4593 -16.7469 -3.42071 -32.4378
4595 4594 -10.7178 10.1306 -28.5637
4596 4595 -12.4481 -2.44356 -31.5607
4597 4596 29.206 10.2024 -0.369066
4598 4597 33.2096 3.86385 3.125
4599 4598 33.0769 8.31948 5
4600 4599 31.0057 8.06823 1.27044
4601 4600 -13.9988 5.89249 -30.4966
4602 4601 -14.9032 0.74773 -31.6778
4603 4602 35.6881 -5.92755 5
4604 4603 27.3225 6.0006 -5
4605 4604 -15.0181 -5.6188 -32.413
4606 4605 28.7371 0.00638008 -5
4607 4606 26 10 -5
4608 4607 -24.4887 2.85109 -32.4157
4609 4608 30.6388 4.23149 -1.09156
4610 4609 32.935 2.37904 1.875
4611 4610 28.7033 4.95431 -3.64531
4612 4611 -13.4435 8.35909 -29.8454
4613 4612 -24.6244 1.73809 -32.6507
4614 4613 34.832 -4.058 3.5138
4615 4614 -11.5905 5.85245 -30.0753
4616 4615 -24.3127 4.54118 -32.1108
4617 4616 -19.7969 8.24897 -30.9006
4618 4617 32.795 9.6874 5
4619 4618 -24.76 0.625081 -32.8857
4620 4619 -20.4676 -6.48042 -33.3124
4621 4620 -21.7099 -1.86733 -33.049
4622 4621 -13.3599 9.80461 -29.4828
4623 4622 -17.5929 -1.74712 -32.5873
4624 4623 -17.7809 -10 -33.1143
4625 4624 29.8982 0.958647 -3.40767
4626 4625 30.2122 -0.362267 -3.3123
4627 4626 36 -10 5
4628 4627 -19.2551 -10 -33.3224
4629 4628 28.98 6.21674 -2.96656
4630 4629 -17.349 -4.99088 -32.9131
4631 4630 -22.2482 7.21532 -31.5012
4632 4631 28.6064 1.88226 -5
4633 4632 -23.0355 2.83823 -32.5292
4634 4633 36.0064 -7.26293 5
4635 4634 -15.2002 -6.94748 -32.7284
4636 4635 -23.1712 1.72522 -32.7641
4637 4636 -12.105 3.12445 -30.9664
4638 4637 36.1112 -8.63171 5
4639 4638 -19.9659 5.09548 -31.8839
4640 4639 -25.3261 -8.67946 -33.8662
4641 4640 35.6689 -2.14023 5
4642 4641 27.3225 7.25929 -5
4643 4642 34.1326 5.9727 5
4644 4643 -18.3436 5.90622 -31.5457
4645 4644 -13.9778 7.59116 -30.4602
4646 4645 -23.8222 -8.77128 -33.9006
4647 4646 32.5106 8.47723 3.17784
4648 4647 27.44 10.1667 -3.72378
4649 4648 -21.5823 2.82536 -32.6426
4650 4649 -12.6131 -0.403291 -31.8465
4651 4650 34.4495 -3.48883 2.18104
4652 4651 -24.3488 5.9715 -32.1733
4653 4652 28.4757 3.75814 -5
4654 4653 -25.3572 -6.07856 -33.9199
4655 4654 -20.1368 -0.870201 -33.1035
4656 4655 32.3773 -1.45452 -0.860154
4657 4656 -25.2605 -3.40407 -33.7524
4658 4657 -18.8004 1.36899 -32.6757
4659 4658 33.3222 5.96079 3.125
4660 4659 33.496 -2.38707 0.637135
4661 4660 -12.8937 -3.48764 -32.3326
4662 4661 -14.7876 -10 -33.0316
4663 4662 -24.6699 3.94657 -32.7296
4664 4663 -25.4788 -10 -34.1305
4665 4664 -17.3319 8.81395 -30.9138
4666 4665 32.2125 9.80466 3.05798
4667 4666 -20.809 7.58707 -31.6688
4668 4667 -23.135 -6.91967 -34.0017
4669 4668 -11.7492 7.09297 -30.3502
4670 4669 34.0387 -0.457419 1.83155
4671 4670 -15.5098 9.26193 -30.5675
4672 4671 31.2071 9.99319 1.32326
4673 4672 28.9098 10.2113 -2.062
4674 4673 -14.8483 -8.56096 -33.1366
4675 4674 -16.3514 4.34073 -31.936
4676 4675 -25.1845 -0.692438 -33.6208
4677 4676 -17.012 -8.31452 -33.4949
4678 4677 -19.3126 -4.91657 -33.6318
4679 4678 -18.1453 3.53294 -32.3762
4680 4679 -12.0995 5.26222 -30.957
4681 4680 32.17 0.762376 -1.05508
4682 4681 -11.573 8.52725 -30.0451
4683 4682 34.1216 7.64127 5
4684 4683 35.8444 -0.0290444 5
4685 4684 32.5117 5.94887 1.25
4686 4685 -22.4661 5.00178 -32.5997
4687 4686 27.3643 8.88113 -5
4688 4687 36 -10 3.70932
4689 4688 35.5804 -5.62128 3.18303
4690 4689 35.2932 3.31554 5
4691 4690 -21.0106 -10 -34.1357
4692 4691 32.2372 4.46407 0
4693 4692 -11.3969 9.96153 -29.74
4694 4693 28.5603 5.35396 -5
4695 4694 -14.9936 -4.36294 -33.1504
4696 4695 36.5606 -4.91663 5
4697 4696 34.8021 1.16043 3.12271
4698 4697 -22.5109 -10 -34.3092
4699 4698 33.3112 7.62936 3.125
4700 4699 36.1213 -8.56096 3.70932
4701 4700 36.4728 -3.24777 5
4702 4701 28.7774 8.58055 -3.531
4703 4702 -14.9532 -2.79159 -33.0804
4704 4703 35.7462 1.87563 5
4705 4704 -13.252 -4.65864 -32.9531
4706 4705 30.6228 7.67328 -1.37329
4707 4706 -24.0846 -10 -34.4911
4708 4707 -16.6389 -10 -33.7736
4709 4708 29.7531 0.987501 -5
4710 4709 31.9627 2.97927 -1.25
4711 4710 -12.7781 1.63697 -32.1323
4712 4711 30.2634 5.32451 -2.96656
4713 4712 -14.0256 9.47201 -30.6357
4714 4713 35.9442 -6.95 3.18303
4715 4714 30.0724 -0.311912 -5
4716 4715 30.6974 10.0687 -0.251586
4717 4716 -18.6088 -0.890844 -33.5425
4718 4717 -18.3537 8.24796 -31.736
4719 4718 -24.8512 5.04206 -33.0435
4720 4719 -25.1144 2.90721 -33.4995
4721 4720 27.3605 10.1498 -5
4722 4721 -15.5957 -5.93312 -33.6256
4723 4722 -23.3296 4.03735 -33.2141
4724 4723 -15.7992 -1.118 -33.2298
4725 4724 -18.9756 -8.24021 -34.2136
4726 4725 31.8716 -1.12523 -2.78378
4727 4726 -17.2724 1.34834 -33.1147
4728 4727 34.1106 9.30984 5
4729 4728 -25.2501 1.7942 -33.7344
4730 4729 36.9817 -6.21878 5
4731 4730 31.5732 0.257051 -2.93008
4732 4731 -20.4726 -8.24021 -34.4071
4733 4732 -25.8024 -7.35893 -34.691
4734 4733 -22.3832 6.40284 -32.7006
4735 4734 -12.2582 6.50274 -31.2318
4736 4735 29.6224 2.86338 -5
4737 4736 -21.952 -8.24021 -34.592
4738 4737 -20.0917 -5.54179 -34.3177
4739 4738 -25.6089 -2.00996 -34.3559
4740 4739 36.2033 -4.33173 3.59052
4741 4740 35.3204 -4.97638 1.87885
4742 4741 -18.1576 -3.35272 -33.9512
4743 4742 -13.5139 -5.92755 -33.4068
4744 4743 28.645 6.94977 -5
4745 4744 37.236 -10 5
4746 4745 37.2392 -8.63147 5
4747 4746 36.1154 -2.66287 3.59052
4748 4747 35.4058 5.41248 5
4749 4748 36 -10 2.53815
4750 4749 32.7449 7.78711 1.30284
4751 4750 28.8198 10.2128 -3.44833
4752 4751 -12.7727 3.77474 -32.1229
4753 4752 -13.6699 -10 -33.6769
4754 4753 -25.955 -8.67946 -34.9554
4755 4754 -22.5507 -3.21918 -34.5052
4756 4755 35.0732 -1.4734 1.71323
4757 4756 34.0371 -0.456242 0.192636
4758 4757 -21.3701 4.39431 -33.3319
4759 4758 -15.8431 0.721589 -33.3058
4760 4759 -13.6731 -7.26293 -33.6824
4761 4760 31.3659 2.47395 -3.125
4762 4761 -13.7255 -8.63171 -33.7732
4763 4762 35.0903 2.93519 2.96952
4764 4763 34.6528 -3.77906 0.388317
4765 4764 -15.4133 -10 -34.1153
4766 4765 -17.5593 -5.85881 -34.3443
4767 4766 -20.9945 6.81914 -32.874
4768 4767 -19.3423 7.58591 -32.5178
4769 4768 -13.5091 -2.26902 -33.3985
4770 4769 -25.6086 0.629577 -34.3554
4771 4770 -12.2372 8.20141 -31.1954
4772 4771 -22.4747 -0.507547 -34.3736
4773 4772 -20.3285 -4.0603 -34.587
4774 4773 -23.6868 3.44275 -33.8329
4775 4774 33.5439 9.47208 3.05798
4776 4775 -15.863 8.81054 -31.7714
4777 4776 33.7449 -2.64132 -1.11182
4778 4777 -23.8225 2.32974 -34.0679
4779 4778 -26.1076 -10 -35.2197
4780 4779 -25.3159 4.0373 -33.8484
4781 4780 29.8438 4.46172 -5
4782 4781 -14.3151 7.36153 -31.9425
4783 4782 35.3833 7.11343 5
4784 4783 36.1126 -8.258 2.05321
4785 4784 33.8297 1.76065 -0.00228683
4786 4785 28.6868 8.57161 -5
4787 4786 -20.0147 -6.52288 -34.8472
4788 4787 -12.0674 9.6874 -30.9013
4789 4788 -20.8858 0.592593 -34.2521
4790 4789 30.4021 10.1061 -1.9373
4791 4790 32.2211 7.90586 -0.281732
4792 4791 -16.0441 -7.08581 -34.4023
4793 4792 -24.6193 -8.67946 -35.2813
4794 4793 35.8759 -6.63412 1.58154
4795 4794 -15.5783 -8.63147 -34.3987
4796 4795 -18.9367 -3.97795 -34.6371
4797 4796 -22.2336 3.42988 -33.9464
4798 4797 -12.7673 5.91251 -32.1135
4799 4798 -19.5495 2.83178 -33.8243
4800 4799 -22.9021 5.51054 -33.5993
4801 4800 31.9466 6.42106 -1.53173
4802 4801 -26.1114 -4.67207 -35.2263
4803 4802 37.2514 -10 3.70932
4804 4803 36.9165 -5.90437 3.29077
4805 4804 37.8811 -7.40275 5
4806 4805 31.5872 4.07228 -3.125
4807 4806 30.7692 1.96862 -5
4808 4807 31.0552 0.566422 -5
4809 4808 32.9868 -1.92393 -2.78378
4810 4809 36 -10 1.21538
4811 4810 32.9781 9.62534 1.35567
4812 4811 -13.9515 -4.94792 -34.1647
4813 4812 35.2028 5.03213 2.96952
4814 4813 30.2878 8.40631 -3.40673
4815 4814 31.3413 -0.835778 -5
4816 4815 -14.3642 9.06912 -31.8707
4817 4816 -24.7121 -10 -35.5781
4818 4817 -15.1474 2.23759 -33.5692
4819 4818 -13.6741 -0.22876 -33.6843
4820 4819 -13.9111 -3.37657 -34.0947
4821 4820 29.9284 6.05753 -5
4822 4821 -16.9077 8.24393 -32.58
4823 4822 -13.3535 3.04538 -33.1289
4824 4823 37.957 -5.17462 5
4825 4824 -15.3403 6.74863 -32.7292
4826 4825 -26.0331 -0.687941 -35.0906
4827 4826 35.3929 8.83113 5
4828 4827 -22.8992 -1.82507 -35.1088
4829 4828 -24.2237 1.22778 -34.7699
4830 4829 -16.4043 -4.29496 -34.6637
4831 4830 37.8692 -3.50576 5
4832 4831 -23.8061 4.54533 -34.1916
4833 4832 -12.7462 7.61118 -32.0771
4834 4833 -19.1735 -2.49645 -34.9064
4835 4834 28.7285 10.1935 -5
4836 4835 34.9935 7.30377 3.28784
4837 4836 -25.7401 2.96332 -34.5832
4838 4837 -19.0031 -10 -35.2948
4839 4838 -18.0077 -7.01149 -35.121
4840 4839 -17.4836 -10 -35.1149
4841 4840 -16.3639 -2.72361 -34.5937
4842 4841 34.3924 5.02022 1.09452
4843 4842 37.5793 -8.63147 3.64988
4844 4843 35.4612 -5.30587 0.104269
4845 4844 37.7813 -1.83691 5
4846 4845 -14.162 -6.25006 -34.5294
4847 4846 -20.4776 -10 -35.5019
4848 4847 -22.6348 2.32792 -34.6484
4849 4848 36.7391 -0.647434 3.12271
4850 4849 36.6789 4.85227 5
4851 4850 -21.9357 -10 -35.7
4852 4851 34.1179 3.53542 -0.15548
4853 4852 36.1126 -8.258 0.760098
4854 4853 -14.2879 -10 -34.7474
4855 4854 -19.7158 -4.60317 -35.323
4856 4855 -14.2895 -8.63147 -34.7501
4857 4856 34.183 7.29186 1.41284
4858 4857 37.6832 0.0677654 5
4859 4858 -23.4363 -10 -35.8715
4860 4859 32.4533 9.75164 -0.220054
4861 4860 -13.718 1.61083 -33.7603
4862 4861 30.1723 10.1317 -3.44833
4863 4862 38.4721 -10 5
4864 4863 30.9905 3.56696 -5
4865 4864 -26.297 -1.94966 -35.5477
4866 4865 37.132 3.41235 5
4867 4866 33.1422 0.174688 -2.93008
4868 4867 -21.1579 5.96327 -34.0213
4869 4868 35.2703 -1.76769 -0.0601501
4870 4869 35.6968 0.542036 1.24543
4871 4870 36.6409 1.25724 3.12271
4872 4871 -13.3481 5.18315 -33.1195
4873 4872 -19.5493 6.81784 -33.7104
4874 4873 -17.9134 7.58476 -33.3449
4875 4874 -26.5566 -5.95245 -35.9974
4876 4875 34.8439 -4.07741 -1.36573
4877 4876 -26.4599 -3.27796 -35.8299
4878 4877 -12.7252 9.30984 -32.0407
4879 4878 -26.6146 -7.3152 -36.0979
4880 4879 34.3577 -0.782266 -1.54783
4881 4880 37.585 1.97244 5
4882 4881 -24.235 0.112921 -35.4322
4883 4882 36 -10 -0.0452634
4884 4883 -26.1213 1.82662 -35.2435
4885 4884 34.9924 8.99096 3.17979
4886 4885 36.6565 6.55321 5
4887 4886 35.9235 -6.84907 -0.162755
4888 4887 -16.2521 -10 -35.4349
4889 4888 -24.2522 3.50711 -34.9643
4890 4889 -26.7189 -10 -36.2784
4891 4890 -19.9526 -3.12167 -35.5923
4892 4891 -20.8621 3.39963 -34.7681
4893 4892 -18.5227 -8.28267 -35.7484
4894 4893 32.9348 2.39158 -3.125
4895 4894 30.0495 8.45565 -5
4896 4895 35.9862 6.77698 3.63797
4897 4896 -20.0196 -8.28267 -35.9419
4898 4897 37.5682 -10 2.41849
4899 4898 -26.7672 -8.63574 -36.3622
4900 4899 -19.3373 4.40073 -34.5136
4901 4900 37.8919 -6.64435 3.15197
4902 4901 31.5712 7.51408 -3.40673
4903 4902 33.7296 7.47842 -0.122675
4904 4903 -24.3776 -4.19861 -36.113
4905 4904 34.1504 1.43463 -1.74275
4906 4905 -17.715 5.21148 -34.1754
4907 4906 -15.9211 6.01927 -33.7352
4908 4907 -18.3601 -5.63804 -35.7313
4909 4908 -14.9968 8.5468 -32.9664
4910 4909 -22.0352 5.03503 -34.6696
4911 4910 31.9305 9.86285 -1.81346
4912 4911 38.8564 -6.35859 5
4913 4912 32.5123 -1.55224 -5
4914 4913 -14.6104 -7.40275 -35.306
4915 4914 37.1135 -4.7573 1.74249
4916 4915 31.2118 5.1653 -5
4917 4916 35.1758 6.76506 1.76297
4918 4917 -13.3771 7.08333 -33.1698
4919 4918 -22.1554 -5.03972 -36.1948
4920 4919 37.514 -8.31706 1.94065
4921 4920 36.476 4.47192 2.96952
4922 4921 39.114 -8.77128 5
4923 4922 -26.4572 0.634074 -35.8252
4924 4923 36.4095 -3.57261 0.382995
4925 4924 34.2486 -3.22464 -3.06355
4926 4925 36.6341 8.25416 5
4927 4926 34.4393 9.19073 1.46541
4928 4927 -14.651 -5.23719 -35.3763
4929 4928 33.2511 6.25404 -1.875
4930 4929 35.9849 2.3168 1.09223
4931 4930 -25.5117 -8.67946 -36.6229
4932 4931 -17.3798 -1.86733 -35.549
4933 4932 -20.1894 -1.64018 -35.8616
4934 4933 -14.6106 -3.66584 -35.3063
4935 4934 -18.853 0.599012 -35.4338
4936 4935 36.929 3.032 2.96952
4937 4936 -16.0434 0.371853 -35.1211
4938 4937 -22.885 4.0344 -35.2502
4939 4938 -24.6595 -1.2046 -36.1673
4940 4939 -24.6534 2.40496 -35.6671
4941 4940 -15.7228 3.64599 -34.5657
4942 4941 32.9766 4.76923 -3.125
4943 4942 -14.5702 -2.09449 -35.2363
4944 4943 35.5413 -5.51352 -1.64245
4945 4944 32.3381 1.88626 -5
4946 4945 -17.5167 2.8382 -35.006
4947 4946 30.0958 10.1306 -5
4948 4947 -13.9289 4.45378 -34.1255
4949 4948 36.1199 -8.46337 -0.970648
4950 4949 37.7651 4.58389 5
4951 4950 32.6242 0.484059 -5
4952 4951 -16.0674 7.93462 -33.7278
4953 4952 -16.5157 -8.77128 -36.0222
4954 4953 36 -10 -1.27376
4955 4954 -14.9059 -10 -35.8178
4956 4955 -19.5617 -6.56534 -36.3819
4957 4956 -25.6053 -10 -36.9022
4958 4957 38.8135 -10 3.57895
4959 4958 -26.7457 -0.607097 -36.3249
4960 4959 38.2181 3.14397 5
4961 4960 -13.3663 8.83113 -33.1512
4962 4961 -25.2943 -7.18657 -36.8695
4963 4962 -17.2051 -4.07419 -36.0507
4964 4963 37.5682 -10 1.10372
4965 4964 -19.655 5.96675 -34.8843
4966 4965 33.9702 9.3443 -0.0676245
4967 4966 31.6913 9.90897 -3.31126
4968 4967 -14.614 -0.254901 -35.3123
4969 4968 -24.8228 -5.47898 -36.8841
4970 4969 -16.0873 2.21144 -35.1971
4971 4970 -14.2934 3.01924 -34.7569
4972 4971 37.8211 5.83613 5
4973 4972 -18.0358 6.821 -34.5792
4974 4973 31.3329 7.56341 -5
4975 4974 -24.7261 -2.80449 -36.7166
4976 4975 39.551 -4.95361 5
4977 4976 39.7558 -10 5
4978 4977 -21.9383 0.0951525 -36.2579
4979 4978 37.8267 -6.32994 1.44274
4980 4979 39.1175 -0.659457 5
4981 4980 36.0174 0.216012 -0.495038
4982 4981 36.2483 8.45262 3.17979
4983 4982 35.0113 -4.36393 -3.06355
4984 4983 39.4632 -3.28475 5
4985 4984 39.7558 -7.54257 5
4986 4985 -25.0136 1.24094 -36.291
4987 4986 -26.985 -1.88936 -36.7395
4988 4987 35.591 -2.09371 -1.80061
4989 4988 35.9661 -7.06312 -1.92297
4990 4989 33.5564 -2.44356 -5
4991 4990 38.0753 0.530014 3.12271
4992 4991 -13.9579 6.35397 -34.1758
4993 4992 -18.3951 -10 -36.6951
4994 4993 32.5594 3.4846 -5
4995 4994 -23.3079 2.96279 -35.99
4996 4995 -19.9154 -10 -36.876
4997 4996 -15.0994 -6.38988 -36.1529
4998 4997 -16.8929 -10 -36.5448
4999 4998 -24.3329 -10 -37.2212
5000 4999 36.2731 4.09157 0.93904
5001 5000 38.8673 -5.60019 3.15197
5002 5001 37.2594 6.21676 3.63797
5003 5002 35.1728 6.76691 0.13194
5004 5003 -20.6663 5.00681 -35.4924
5005 5004 39.0194 1.24521 5
5006 5005 38.8127 2.42994 5
5007 5006 38.7794 -3.93133 3.15197
5008 5007 -27.3301 -10 -37.3372
5009 5008 -17.5548 -7.05395 -36.6557
5010 5009 -15.2269 -8.77128 -36.3737
5011 5010 -27.1738 -3.20498 -37.0665
5012 5011 -14.6579 1.58469 -35.3882
5013 5012 -16.0227 5.212 -34.9467
5014 5013 -17.8166 4.40421 -35.3869
5015 5014 -22.6319 -8.50711 -37.2749
5016 5015 38.0754 -2.74664 1.79247
5017 5016 33.4474 9.49949 -1.65378
5018 5017 36.1199 -8.46337 -2.24025
5019 5018 39.454 -8.77128 3.64988
5020 5019 -27.4051 -8.6395 -37.4669
5021 5020 37.3107 -5.05159 -0.0308926
5022 5021 -20.6858 -5.0052 -37.0343
5023 5022 37.8266 7.58243 5
5024 5023 -27.3109 -4.54596 -37.3038
5025 5024 -17.9842 -4.69942 -36.7366
5026 5025 38.0073 4.2015 3.69404
5027 5026 36 -10 -2.56387
5028 5027 -16.6494 7.21409 -34.7358
5029 5028 37.8888 -8.01288 0.629339
5030 5029 -22.1604 -6.79952 -37.2895
5031 5030 -24.1113 -8.50711 -37.4597
5032 5031 -27.4269 -7.27148 -37.5047
5033 5032 -20.1657 1.16686 -36.3776
5034 5033 -27.3954 -5.9042 -37.4502
5035 5034 37.5163 2.04638 1.81675
5036 5035 35.09 2.94773 -2.03048
5037 5036 37.0331 -1.55717 -0.0848121
5038 5037 33.7317 -0.31983 -5
5039 5038 35.8544 8.63484 1.57568
5040 5039 -23.6397 -6.79952 -37.4744
5041 5040 -21.4934 4.00418 -36.0835
5042 5041 -21.7795 -4.1011 -37.2001
5043 5042 -18.8293 3.40605 -35.9498
5044 5043 38.4604 2.76158 3.69404
5045 5044 -21.9497 -1.01971 -36.9202
5046 5045 -17.5558 -2.67507 -36.6582
5047 5046 36.6067 -3.86689 -1.39039
5048 5047 -16.3327 3.4883 -35.6222
5049 5048 32.9605 8.21103 -3.40673
5050 5049 -14.5388 4.29609 -35.182
5051 5050 -23.6873 1.83048 -36.6542
5052 5051 -24.9945 0.123715 -36.967
5053 5052 38.8512 4.31551 5
5054 5053 34.9472 -1.27678 -3.61775
5055 5054 37.2457 7.93298 3.56589
5056 5055 -13.9869 8.25416 -34.226
5057 5056 40.3977 -8.77128 5
5058 5057 32.6012 5.86225 -5
5059 5058 36.3056 1.99078 -0.648231
5060 5059 -19.4342 -8.28267 -37.3285
5061 5060 35.6526 -5.83275 -3.37171
5062 5061 31.454 9.96153 -5
5063 5062 39.1522 -10 2.29975
5064 5063 34.4478 -3.48764 -5
5065 5064 -15.5478 -10 -36.9296
5066 5065 40.4504 -6.13758 5
5067 5066 -21.7614 -10 -37.6637
5068 5067 -15.4518 -5.01643 -36.7633
5069 5068 -15.5478 -7.54257 -36.9296
5070 5069 40.132 -1.90059 5
5071 5070 -15.4114 -3.44508 -36.6933
5072 5071 -14.5402 5.63689 -35.1844
5073 5072 -14.9033 2.86155 -35.8133
5074 5073 -23.2211 -10 -37.8632
5075 5074 -25.2586 -1.13802 -37.4246
5076 5075 37.0565 5.83641 1.60749
5077 5076 -17.9071 -5.6805 -37.2661
5078 5077 -26.2249 -9.99999 -37.9753
5079 5078 35.9843 -7.16342 -3.37171
5080 5079 38.9073 5.56775 5
5081 5080 -22.0163 -2.6196 -37.4694
5082 5081 33.0193 9.61478 -3.31126
5083 5082 37.8718 -6.54444 -0.309513
5084 5083 39.7667 -6.78417 3.15197
5085 5084 35.4047 8.82776 0.0387027
5086 5085 33.907 1.8039 -5
5087 5086 -19.5308 -3.44135 -37.3537
5088 5087 37.5706 -0.0760353 0.285123
5089 5088 -18.1166 5.97023 -35.7678
5090 5089 -16.6656 2.81485 -36.1988
5091 5090 40.0952 -10 3.57895
5092 5091 -18.1591 -0.466669 -36.8987
5093 5092 35.1318 5.32538 -2.03048
5094 5093 39.4458 3.60147 5
5095 5094 -21.7025 -5.08219 -37.7295
5096 5095 -15.3495 -0.693828 -36.5861
5097 5096 38.1826 5.55693 3.26286
5098 5097 35.1225 0.846942 -3.61775
5099 5098 -21.9154 2.93076 -36.821
5100 5099 -16.8227 1.77252 -36.4709
5101 5100 36 -10 -3.72334
5102 5101 -26.3082 -8.56003 -38.1196
5103 5102 37.5682 -10 -1.21444
5104 5103 37.1678 -5.35975 -1.66901
5105 5104 36.8673 8.1403 1.92242
5106 5105 37.8044 3.82114 1.66356
5107 5106 -23.7165 0.740755 -37.3529
5108 5107 -20.4738 -0.125424 -37.2558
5109 5108 36.1213 -8.56096 -3.72334
5110 5109 -17.4272 -8.77128 -37.6024
5111 5110 36.338 -0.110012 -2.2355
5112 5111 -16.6327 5.05432 -36.0031
5113 5112 41.0396 -10 5
5114 5113 -19.156 5.0106 -36.3601
5115 5114 38.9633 6.82 5
5116 5115 35.1642 -4.65864 -5
5117 5116 39.4648 -8.01288 1.80185
5118 5117 38.4856 -10 -0.0529242
5119 5118 -15.2362 2.1881 -36.3899
5120 5119 -25.3068 -2.74445 -37.9885
5121 5120 -15.8687 -8.77128 -37.4854
5122 5121 32.7223 8.26036 -5
5123 5122 36.4005 -4.62565 -3.18286
5124 5123 -25.9927 -5.79031 -38.2568
5125 5124 -26.035 -7.14205 -38.33
5126 5125 -21.1237 -8.22631 -38.1312
5127 5126 39.0935 3.93311 3.69404
5128 5127 -14.5832 7.58243 -35.2588
5129 5128 36.3091 -2.92769 -3.18286
5130 5129 37.2876 1.29279 -0.600871
5131 5130 -15.3933 1.14576 -36.6621
5132 5131 34.9475 9.00797 -1.49535
5133 5132 33.9487 4.18155 -5
5134 5133 40.2471 1.70272 5
5135 5134 40.0404 2.88744 5
5136 5135 40.4538 0.517992 5
5137 5136 -15.9002 -6.16911 -37.5399
5138 5137 -25.4625 -4.07464 -38.2582
5139 5138 -16.704 6.40616 -35.9746
5140 5139 -20.142 3.9739 -36.8936
5141 5140 38.4095 7.21223 3.56589
5142 5141 -18.5717 -1.8188 -37.6134
5143 5142 -15.1488 4.13841 -36.2384
5144 5143 41.145 -4.73259 5
5145 5144 -25.2211 -9.99999 -38.5548
5146 5145 -20.3099 -4.06657 -38.0396
5147 5146 -15.7621 -2.04596 -37.3007
5148 5147 41.3437 -7.4369 5
5149 5148 -18.3519 -6.96157 -38.0364
5150 5149 -20.6159 -1.36349 -37.8492
5151 5150 37.5591 -8.53156 -2.17996
5152 5151 -23.71 -0.399239 -37.9788
5153 5152 -16.9656 4.38086 -36.5797
5154 5153 35.6881 -5.92755 -5
5155 5154 -19.3066 -10 -38.2752
5156 5155 39.1495 5.18536 3.69404
5157 5156 34.469 7.78358 -3.24767
5158 5157 39.9446 -1.33825 2.95695
5159 5158 37.3538 -1.8832 -1.82528
5160 5159 -17.8051 -10 -38.1262
5161 5160 37.8399 7.58125 2.27594
5162 5161 40.4613 -5.37918 3.15197
5163 5162 -22.2064 1.61096 -37.6634
5164 5163 39.9466 4.67878 5
5165 5164 37.0535 5.83825 -0.0235404
5166 5165 32.795 9.6874 -5
5167 5166 39.8948 2.03436 3.69404
5168 5167 39.688 3.21908 3.69404
5169 5168 38.9023 -0.14878 1.07966
5170 5169 37.5682 -10 -2.50028
5171 5170 37.9797 5.17658 1.23238
5172 5171 -15.1501 5.4792 -36.2408
5173 5172 36 -10 -5
5174 5173 -16.1897 -10 -38.0413
5175 5174 36.0064 -7.26293 -5
5176 5175 36.9615 -6.11851 -3.46148
5177 5176 -17.9783 3.3827 -37.1426
5178 5177 -25.0371 -8.42037 -38.8653
5179 5178 39.7775 -6.02576 1.30394
5180 5179 -20.6658 -6.50898 -38.5713
5181 5180 36.1112 -8.63171 -5
5182 5181 -15.4817 3.46495 -36.815
5183 5182 36.8642 8.14195 0.287185
5184 5183 35.6654 -2.11077 -5
5185 5184 -20.5467 -2.58507 -38.3089
5186 5185 -18.1354 2.34037 -37.4147
5187 5186 33.9905 6.5592 -5
5188 5187 36.4492 4.47602 -2.03048
5189 5188 34.5293 9.15965 -3.13532
5190 5189 39.0735 -4.84107 -0.0555546
5191 5190 37.5757 3.06755 -0.754064
5192 5191 -20.2329 -5.04766 -38.569
5193 5192 40.0373 5.9715 5
5194 5193 41.2698 -8.77128 3.66441
5195 5194 -23.8126 -1.97862 -38.5923
5196 5195 -15.1515 6.82 -36.2432
5197 5196 40.5412 3.96475 5
5198 5197 -16.2526 -4.79566 -38.1502
5199 5198 39.3357 3.55072 2.38808
5200 5199 -16.3449 -7.45018 -38.3103
5201 5200 -24.7863 -7.01421 -39.0479
5202 5201 -17.223 5.51417 -36.8736
5203 5202 37.8912 -0.402059 -1.45534
5204 5203 41.9856 -8.66561 5
5205 5204 40.0677 -10 1.09591
5206 5205 37.2514 -10 -3.72334
5207 5206 -20.4802 2.72222 -37.823
5208 5207 38.3695 -3.65638 -1.41505
5209 5208 -22.2442 0.510913 -38.3383
5210 5209 41.4682 -0.723145 5
5211 5210 -24.1033 -9.99999 -39.2002
5212 5211 41.8138 -3.34844 5
5213 5212 -21.2006 -10 -39.039
5214 5213 42.0383 -6.03191 5
5215 5214 -18.2911 4.51608 -37.4069
5216 5215 -24.3545 -5.33391 -39.1393
5217 5216 -15.8145 2.7915 -37.3916
5218 5217 34.0506 7.93452 -5
5219 5218 35.8407 0.0129583 -5
5220 5219 39.3287 6.54609 3.15213
5221 5220 35.2662 3.33218 -5
5222 5221 36.3927 1.92372 -3.72358
5223 5222 36.4318 8.36343 -1.23949
5224 5223 40.9681 -10 2.31428
5225 5224 -15.9717 1.74917 -37.6637
5226 5225 -23.8432 -3.59903 -39.0772
5227 5226 42.2973 -10 5
5228 5227 40.1889 4.29639 3.69404
5229 5228 -15.6698 4.59023 -37.1409
5230 5229 41.3546 -6.67849 3.15197
5231 5230 36.5606 -4.91627 -5
5232 5231 37.5793 -8.63147 -3.71848
5233 5232 39.4648 -8.01288 -0.566505
5234 5233 37.8369 7.5831 0.618927
5235 5234 37.0562 -0.943996 -3.61775
5236 5235 -16.1288 0.706837 -37.9359
5237 5236 36.4693 -3.21831 -5
5238 5237 -18.2244 -8.6789 -38.9831
5239 5238 37.6082 0.966763 -2.34133
5240 5239 39.39 1.42831 0.856449
5241 5240 38.7839 6.95183 1.89697
5242 5241 35.9122 7.07207 -2.99306
5243 5242 -23.9367 -8.42037 -39.5007
5244 5243 -18.4435 1.04808 -38.293
5245 5244 37.8609 -7.30284 -3.46148
5246 5245 38.9069 -2.17524 -1.04512
5247 5246 -16.6659 -8.6789 -38.8661
5248 5247 -22.3807 -0.740934 -38.9094
5249 5248 41.9124 -10 3.59489
5250 5249 40.3809 -8.01288 0.621678
5251 5250 38.8673 -5.59983 -1.84803
5252 5251 35.9317 1.94731 -5
5253 5252 -18.4327 -10 -39.2133
5254 5253 41.6369 1.74066 5
5255 5254 34.1106 9.30984 -5
5256 5255 41.4302 2.92538 5
5257 5256 39.511 4.90616 1.9569
5258 5257 -15.6885 5.9715 -37.1733
5259 5258 36.9817 -6.21841 -5
5260 5259 -16.6973 -6.07673 -38.9206
5261 5260 41.0421 5.04206 5
5262 5261 -20.7581 1.38933 -38.65
5263 5262 -16.6033 -3.39655 -38.7577
5264 5263 -16.0027 3.91678 -37.7175
5265 5264 -20.5382 -8.22631 -39.5179
5266 5265 -16.8185 -10 -39.1305
5267 5266 -18.736 3.47596 -38.1776
5268 5267 37.236 -10 -5
5269 5268 35.3079 5.70983 -5
5270 5269 37.2392 -8.63147 -5
5271 5270 38.1632 -4.41514 -3.20753
5272 5271 -19.1062 -5.55565 -39.3429
5273 5272 -23.0389 -9.99999 -39.8147
5274 5273 35.8053 8.65668 -3.13532
5275 5274 41.2807 -8.01288 1.81638
5276 5275 39.107 2.79713 -0.0295446
5277 5276 38.0719 -2.71718 -3.20753
5278 5277 38.6239 -0.80642 -1.93111
5279 5278 -16.5414 -0.645296 -38.6505
5280 5279 42.4827 -1.96428 5
5281 5280 -22.4728 -2.33455 -39.4911
5282 5281 41.2808 -0.160803 2.95695
5283 5282 41.0779 3.25702 3.69404
5284 5283 -20.0583 -10 -39.6985
5285 5284 41.6264 -2.7861 2.95695
5286 5285 42.9316 -7.33122 5
5287 5286 39.4443 -0.694107 -0.675181
5288 5287 -18.8561 -0.304051 -39.0076
5289 5288 -23.2712 -6.73241 -39.9113
5290 5289 40.3777 5.66732 3.15213
5291 5290 39.1522 -10 -2.43695
5292 5291 -18.5783 -4.16282 -39.4532
5293 5292 42.354 0.576033 5
5294 5293 -20.9252 0.18084 -39.2854
5295 5294 40.9427 -3.43268 1.10892
5296 5295 35.3123 7.40668 -5
5297 5296 -22.8409 -5.04987 -39.9671
5298 5297 37.8339 7.58494 -0.986121
5299 5298 41.2117 2.27639 3.00689
5300 5299 43.2433 -8.66561 5
5301 5300 40.0677 -10 -1.22228
5302 5301 -22.3955 -3.56451 -39.9041
5303 5302 -16.1909 5.04206 -38.0435
5304 5303 38.7811 6.95387 0.263101
5305 5304 40.7218 1.35556 1.65099
5306 5305 -16.4472 2.87741 -38.4874
5307 5306 39.6864 6.2616 1.52572
5308 5307 40.2387 -2.24799 -0.250577
5309 5308 -17.1421 -7.3578 -39.691
5310 5309 41.9715 4.0373 5
5311 5310 -16.6043 1.83508 -38.7595
5312 5311 39.7667 -6.78417 -1.84803
5313 5312 39.1613 0.674715 -1.56117
5314 5313 37.8811 -7.40275 -5
5315 5314 -16.954 -1.99743 -39.3652
5316 5315 38.8135 -10 -3.65406
5317 5316 -19.0342 2.1911 -39.0756
5318 5317 37.2296 6.2227 -2.99306
5319 5318 38.3561 4.81424 -1.71664
5320 5319 -18.9982 -1.54212 -39.601
5321 5320 42.8577 -8.66561 3.66441
5322 5321 40.9843 -10 -0.0605847
5323 5322 -22.4621 -8.11564 -40.3731
5324 5323 39.2823 4.15257 -0.460724
5325 5324 43.555 -10 5
5326 5325 -21.0424 -1.08681 -39.8368
5327 5326 -17.2947 -8.6789 -39.9553
5328 5327 37.957 -5.17389 -5
5329 5328 -21.9469 -9.99999 -40.4452
5330 5329 40.8786 -6.12997 -0.254279
5331 5330 35.3929 8.83113 -5
5332 5331 40.6527 3.79276 1.70093
5333 5332 37.8657 -3.47594 -5
5334 5333 -19.4559 -6.90521 -40.2258
5335 5334 37.7744 -1.77798 -5
5336 5335 43.5533 -4.63928 5
5337 5336 38.3264 0.132779 -3.72358
5338 5337 42.1275 0.996372 3.3394
5339 5338 37.7518 3.452 -3.72358
5340 5339 41.8849 -10 1.10959
5341 5340 36.6254 4.86047 -5
5342 5341 42.2953 -1.40194 2.95695
5343 5342 37.2427 7.9347 -2.8534
5344 5343 -16.9629 0.670455 -39.3805
5345 5344 43.1676 -10 3.59489
5346 5345 40.7761 -0.766852 0.119358
5347 5346 38.8783 2.04354 -2.44717
5348 5347 -17.4474 -10 -40.2197
5349 5348 -18.929 -2.7637 -40.0606
5350 5349 -18.9716 -8.6789 -40.3988
5351 5350 -16.6556 4.0373 -38.8484
5352 5351 -19.3856 1.01577 -39.6843
5353 5352 38.4721 -10 -5
5354 5353 43.3684 -0.665104 5
5355 5354 -20.9964 -2.3001 -40.3318
5356 5355 42.82 2.96332 5
5357 5356 41.5139 4.54526 2.8687
5358 5357 42.7838 -10 2.32883
5359 5358 -17.4516 -4.67081 -40.227
5360 5359 -21.7698 -6.45261 -40.7606
5361 5360 -19.1676 -10 -40.619
5362 5361 37.8654 0.156377 -5
5363 5362 39.454 -8.77128 -3.71848
5364 5363 37.2909 3.4756 -5
5365 5364 40.4607 -5.37415 -1.84803
5366 5365 38.4174 2.06714 -3.72358
5367 5366 36.6297 6.55731 -5
5368 5367 40.4931 0.601971 -0.766635
5369 5368 -21.3711 -5.01627 -40.8099
5370 5369 39.4116 -1.56919 -3.20753
5371 5370 40.566 -8.11709 -2.12473
5372 5371 39.7567 -4.18945 -3.20753
5373 5372 -21.3432 -8.11564 -41.019
5374 5373 -17.3755 -0.681678 -40.0952
5375 5374 -20.904 -3.52997 -40.7561
5376 5375 43.8963 -1.92682 5
5377 5376 40.8767 5.19862 1.26847
5378 5377 -19.521 -0.211355 -40.3031
5379 5378 38.8564 -6.35823 -5
5380 5379 39.118 6.70693 -1.30101
5381 5380 40.0076 5.99301 -0.0453119
5382 5381 -17.0799 2.96332 -39.5832
5383 5382 43.3914 -3.90164 3.34867
5384 5383 -20.801 -9.99999 -41.1067
5385 5384 37.9564 2.09073 -5
5386 5385 41.482 -8.11709 -0.936542
5387 5386 40.424 3.03917 -0.716691
5388 5387 39.114 -8.77128 -5
5389 5388 44.2221 -3.25512 5
5390 5389 44.4466 -5.93859 5
5391 5390 43.5824 1.82662 5
5392 5391 38.474 5.28867 -3.30997
5393 5392 36.6341 8.25416 -5
5394 5393 43.142 -0.244764 3.3394
5395 5394 42.7076 -4.54822 1.50064
5396 5395 44.5625 -7.30135 5
5397 5396 39.6005 3.8802 -2.03355
5398 5397 43.6673 -5.63266 3.21658
5399 5398 -19.7718 -1.48807 -40.7376
5400 5399 -17.6394 -1.9434 -40.5523
5401 5400 40.0952 -10 -3.65406
5402 5401 42.1079 -0.839597 0.913897
5403 5402 38.4066 7.21419 -2.8534
5404 5403 42.4059 3.50731 2.8687
5405 5404 37.7284 4.53025 -5
5406 5405 38.8549 3.12178 -3.72358
5407 5406 39.949 -0.0880576 -2.83759
5408 5407 -17.8964 -5.95188 -40.9974
5409 5408 44.7775 -10 5
5410 5409 -17.8023 -3.2717 -40.8345
5411 5410 -17.9543 -7.31464 -41.0978
5412 5411 40.9764 -10 -2.43926
5413 5412 42.9835 -6.27925 1.36855
5414 5413 43.6564 -1.28262 3.6101
5415 5414 -17.4611 1.82662 -40.2435
5416 5415 44.8742 -8.63574 5
5417 5416 -18.0586 -10 -41.2784
5418 5417 42.0388 1.5976 0.963841
5419 5418 41.8933 -10 -1.22445
5420 5419 -18.107 -8.63574 -41.3622
5421 5420 44.2542 0.634074 5
5422 5421 44.4658 -8.66561 3.76957
5423 5422 -19.684 -2.70988 -41.224
5424 5423 -20.3172 -5.51017 -41.4963
5425 5424 37.7943 5.84023 -5
5426 5425 38.3939 3.14538 -5
5427 5426 40.4262 -2.81017 -3.20753
5428 5427 -20.372 -6.85903 -41.5911
5429 5428 39.5504 -4.94821 -5
5430 5429 39.7558 -10 -5
5431 5430 39.1141 -0.629994 -5
5432 5431 39.4591 -3.25025 -5
5433 5432 39.7558 -7.54257 -5
5434 5433 39.666 1.28077 -3.72358
5435 5434 -19.7872 -9.99999 -41.6921
5436 5435 43.3304 2.23236 3.23684
5437 5436 -19.841 -4.0403 -41.4959
5438 5437 44.0602 -2.51748 3.34867
5439 5438 39.5124 2.49177 -3.72358
5440 5439 -17.797 0.634074 -40.8252
5441 5440 41.9697 4.03479 1.01379
5442 5441 40.8678 -6.88837 -3.40625
5443 5442 -19.8705 -8.56003 -41.8365
5444 5443 44.7609 -10 3.70986
5445 5444 41.1735 4.90241 -0.294842
5446 5445 40.4243 3.03884 -2.32084
5447 5446 44.8311 -0.607097 5
5448 5447 40.3227 5.71687 -1.61994
5449 5448 44.5606 -6.93198 3.21658
5450 5449 42.9546 0.317578 1.29635
5451 5450 37.8266 7.58243 -5
5452 5451 39.2051 1.30436 -5
5453 5452 41.9798 -6.23418 -1.8125
5454 5453 39.5771 4.95845 -3.30997
5455 5454 40.9636 -1.32903 -2.83759
5456 5455 42.8235 -5.06418 -0.18403
5457 5456 41.2808 -0.160803 -2.04305
5458 5457 39.0514 2.51537 -5
5459 5458 41.6259 -2.78106 -2.04305
5460 5459 -18.0854 -0.607097 -41.3249
5461 5460 44.401 -10 2.43363
5462 5461 38.8314 4.20002 -5
5463 5462 42.1194 -3.87949 -1.54353
5464 5463 41.1368 2.08833 -1.91333
5465 5464 43.5869 -8.26637 0.68629
5466 5465 43.469 -0.720278 1.56705
5467 5466 44.0368 1.0592 3.23684
5468 5467 42.9945 -6.56066 -0.367041
5469 5468 40.3977 -8.77128 -5
5470 5469 45.3098 -1.88936 5
5471 5470 41.2782 -8.77128 -3.72078
5472 5471 39.6564 6.286 -3.20428
5473 5472 39.9602 3.5428 -3.72358
5474 5473 42.9439 2.79496 1.34401
5475 5474 -18.3248 -1.88936 -41.7395
5476 5475 40.4498 -6.13255 -5
5477 5476 40.1287 -1.87097 -5
5478 5477 44.5575 0.0250022 3.53531
5479 5478 43.4984 -10 -0.0527671
5480 5479 44.4867 -8.26637 1.881
5481 5480 38.8974 5.51001 -5
5482 5481 42.3902 -8.11709 -2.12703
5483 5482 -18.6699 -10 -42.3372
5484 5483 46 -10 5
5485 5484 45.6874 -3.20498 5
5486 5485 41.5618 -5.47836 -3.40625
5487 5486 -18.5136 -3.20498 -42.0664
5488 5487 43.8728 -1.95514 1.30562
5489 5488 41.97 4.03447 -0.567257
5490 5489 42.7516 0.64676 -0.232803
5491 5490 39.4889 3.57001 -5
5492 5491 -18.7448 -8.6395 -42.4669
5493 5492 46.1498 -8.6395 5
5494 5493 45.9615 -4.54596 5
5495 5494 -18.6506 -4.54596 -42.3038
5496 5495 41.1738 4.90211 -1.90496
5497 5496 -18.7666 -7.27148 -42.5047
5498 5497 -18.7351 -5.9042 -42.4502
5499 5498 44.401 -10 1.11756
5500 5499 46.1935 -7.27148 5
5501 5500 46.1305 -5.9042 5
5502 5501 45.0779 -1.24127 3.53531
5503 5502 43.8013 1.47475 1.67881
5504 5503 41.0396 -10 -5
5505 5504 38.9633 6.82 -5
5506 5505 42.2954 -1.40178 -2.04305
5507 5506 41.9207 -10 -3.65658
5508 5507 42.7152 3.10694 -0.178715
5509 5508 43.4929 -0.779239 0.00270857
5510 5509 40.4538 0.517992 -5
5511 5510 44.3504 0.458178 1.94746
5512 5511 42.8006 -10 -2.44157
5513 5512 40.3001 1.729 -5
5514 5513 40.6854 5.38257 -3.20428
5515 5514 43.5979 -8.54778 -1.0493
5516 5515 46 -9.99999 3.70986
5517 5516 41.1438 -4.72253 -5
5518 5517 40.1464 2.94 -5
5519 5518 41.3437 -7.4369 -5
5520 5519 45.479 -2.48047 3.24708
5521 5520 41.212 2.27607 -3.59726
5522 5521 44.8301 -0.60096 2.22021
5523 5522 39.9367 4.62104 -5
5524 5523 41.0583 3.48707 -3.59726
5525 5524 46.1667 -8.56003 3.70986
5526 5525 42.4557 -6.7827 -3.40625
5527 5526 45.8098 -3.81179 3.24708
5528 5527 43.602 1.80634 0.144242
5529 5528 41.9702 4.03415 -2.19451
5530 5529 43.9886 -2.4711 -0.379052
5531 5530 41.9245 1.32555 -3.18975
5532 5531 46.1004 -5.55046 3.10089
5533 5532 40.0373 5.9715 -5
5534 5533 46 -9.99999 2.53915
5535 5534 46.2063 -6.89945 3.10089
5536 5535 45.2779 -1.82176 1.95685
5537 5536 41.9856 -8.66561 -5
5538 5537 40.5942 3.99103 -5
5539 5538 42.7155 3.1066 -1.78267
5540 5539 41.4684 -0.722985 -5
5541 5540 42.8661 -8.66561 -3.72078
5542 5541 44.3783 0.401596 0.37507
5543 5542 41.8134 -3.34324 -5
5544 5543 42.0377 -6.02688 -5
5545 5544 41.5142 4.54495 -3.5212
5546 5545 43.9246 -5.16839 -1.74225
5547 5546 44.4091 -10 -1.21644
5548 5547 42.2973 -10 -5
5549 5548 45.6377 -3.07068 1.69733
5550 5549 44.8542 -0.659857 0.631442
5551 5550 43.3953 2.13312 -1.3795
5552 5551 43.1761 -10 -3.65658
5553 5552 44.0956 -6.66487 -1.92526
5554 5553 46.1929 -8.15892 1.97753
5555 5554 42.9391 0.0845773 -3.18975
5556 5555 46 -9.99999 1.21601
5557 5556 45.9997 -4.83347 1.56484
5558 5557 41.6369 1.74066 -5
5559 5558 41.0421 5.04206 -5
5560 5559 41.4832 2.95166 -5
5561 5560 43.5066 -4.41256 -3.336
5562 5561 45.2976 -1.88269 0.38395
5563 5562 46.1895 -6.53273 1.43316
5564 5563 44.2029 0.748265 -1.143
5565 5564 42.4062 3.50697 -3.5212
5566 5565 44.506 -8.54778 -2.2398
5567 5566 42.4829 -1.96396 -5
5568 5567 44.4091 -10 -2.503
5569 5568 42.9316 -7.33122 -5
5570 5569 43.6805 -1.34142 -2.95424
5571 5570 46.1929 -8.15892 0.688067
5572 5571 43.1143 2.55284 -3.07117
5573 5572 42.354 0.576033 -5
5574 5573 44.878 -0.718881 -0.90848
5575 5574 43.9706 -5.39007 -3.40625
5576 5575 46 -9.99999 -0.0449491
5577 5576 43.2433 -8.66561 -5
5578 5577 45.7609 -3.58767 0.0121176
5579 5578 41.9715 4.0373 -5
5580 5579 46.073 -5.33505 -0.114974
5581 5580 44.1762 -3.03328 -3.336
5582 5581 43.555 -10 -5
5583 5582 43.8467 1.39671 -3.07117
5584 5583 46.2032 -6.813 -0.288609
5585 5584 43.5527 -4.63425 -5
5586 5585 44.5715 -7.21339 -3.51901
5587 5586 44.4658 -8.66561 -3.78234
5588 5587 45.4549 -2.3968 -1.28734
5589 5588 46 -9.99999 -1.27397
5590 5589 46.1738 -8.46467 -1.02554
5591 5590 43.3685 -0.664944 -5
5592 5591 42.82 2.96332 -5
5593 5592 44.5838 -0.0325393 -2.81048
5594 5593 44.7609 -10 -3.72378
5595 5594 45.8694 -4.1026 -1.672
5596 5595 43.8964 -1.92666 -5
5597 5596 45.0997 -1.30141 -2.81048
5598 5597 46.1082 -5.61646 -1.85411
5599 5598 44.2222 -3.25496 -5
5600 5599 44.4466 -5.93859 -5
5601 5600 43.5824 1.82662 -5
5602 5601 46.2114 -7.09556 -2.03802
5603 5602 44.5625 -7.30135 -5
5604 5603 46 -9.99999 -2.56467
5605 5604 46.1738 -8.46467 -2.29917
5606 5605 44.7775 -10 -5
5607 5606 44.8742 -8.63574 -5
5608 5607 45.6191 -2.99736 -3.23308
5609 5608 44.2542 0.634074 -5
5610 5609 45.912 -4.32521 -3.23308
5611 5610 46 -9.99999 -3.72378
5612 5611 46.132 -5.83037 -3.43512
5613 5612 46.2128 -7.1829 -3.43512
5614 5613 44.8311 -0.607097 -5
5615 5614 46.1667 -8.56003 -3.72378
5616 5615 45.3098 -1.88936 -5
5617 5616 46 -10 -5
5618 5617 45.6874 -3.20498 -5
5619 5618 46.1498 -8.6395 -5
5620 5619 45.9615 -4.54596 -5
5621 5620 46.1935 -7.27148 -5
5622 5621 46.1305 -5.9042 -5
5623 end coordinates
5624
5625 Elements
5626 21 3207 3375 3332 2991 3294 3353 3291 3095 3180 3157
5627 22 2448 2631 2591 2710 2538 2606 2534 2575 2669 2655
5628 23 1535 1387 1357 1475 1460 1378 1448 1502 1432 1415
5629 24 1481 1623 1447 1517 1556 1538 1463 1503 1570 1484
5630 25 2377 2259 2344 2493 2313 2309 2363 2435 2373 2420
5631 26 3565 3335 3526 3172 3454 3452 3546 3358 3262 3341
5632 27 3332 3375 3575 3198 3353 3471 3456 3260 3286 3379
5633 28 2591 2631 2836 2907 2606 2731 2714 2747 2759 2870
5634 29 1357 1387 1257 1331 1378 1324 1306 1341 1354 1292
5635 30 1481 1447 1339 1376 1463 1388 1406 1426 1408 1352
5636 31 2377 2344 2525 2637 2363 2432 2444 2495 2477 2572
5637 32 3565 3526 3764 3434 3546 3653 3674 3501 3485 3622
5638 33 3332 3375 3198 2991 3353 3286 3260 3157 3180 3083
5639 34 2591 2631 2907 2710 2606 2759 2747 2655 2669 2794
5640 35 1357 1387 1331 1475 1378 1354 1341 1415 1432 1394
5641 36 1481 1447 1376 1517 1463 1408 1426 1503 1484 1445
5642 37 2377 2344 2637 2493 2363 2477 2495 2435 2420 2562
5643 38 3565 3526 3434 3172 3546 3485 3501 3358 3341 3302
5644 39 5517 5461 5384 5346 5490 5425 5457 5438 5405 5365
5645 40 5517 5558 5461 5346 5537 5522 5490 5438 5472 5405
5646 41 5142 5302 5216 5088 5228 5263 5181 5111 5201 5152
5647 42 462 519 517 424 488 516 487 441 470 469
5648 43 404 410 340 460 405 372 371 431 433 397
5649 44 4607 4718 4514 4937 4662 4615 4553 4773 4831 4722
5650 45 5052 5260 5134 5198 5163 5196 5093 5126 5227 5167
5651 46 3573 3619 3465 3249 3597 3545 3524 3404 3428 3355
5652 47 1365 1381 1277 1441 1372 1328 1319 1398 1409 1351
5653 48 1533 1527 1411 1581 1529 1467 1470 1559 1557 1494
5654 49 1962 1801 1988 1931 1883 1902 1975 1943 1862 1960
5655 50 2052 2193 2233 2042 2126 2214 2144 2048 2118 2139
5656 51 3708 3644 3610 3370 3678 3631 3656 3549 3513 3492
5657 52 1410 1533 1411 1581 1468 1470 1405 1492 1559 1494
5658 53 2146 1962 1988 1931 2053 1975 2070 2036 1943 1960
5659 54 3619 3490 3465 3249 3555 3478 3545 3428 3362 3355
5660 55 1381 1294 1277 1441 1336 1283 1328 1409 1363 1351
5661 56 2193 2392 2233 2042 2292 2311 2214 2118 2211 2139
5662 57 3641 3708 3610 3370 3680 3656 3627 3511 3549 3492
5663 58 1495 1381 1365 1441 1435 1372 1427 1465 1409 1398
5664 59 3688 3619 3573 3249 3657 3597 3634 3480 3428 3404
5665 60 1962 1772 1801 1931 1865 1781 1883 1943 1847 1862
5666 61 1533 1681 1527 1581 1603 1602 1529 1559 1621 1557
5667 62 2015 2193 2052 2042 2104 2126 2032 2025 2118 2048
5668 63 3708 3734 3644 3370 3722 3690 3678 3549 3564 3513
5669 64 3754 3384 3640 3539 3586 3517 3697 3648 3461 3588
5670 65 1154 1205 1119 1120 1183 1161 1133 1134 1160 1117
5671 66 3079 3154 3369 2838 3114 3257 3225 2957 2986 3081
5672 67 404 340 342 367 371 336 370 385 353 354
5673 68 4607 4514 4385 4648 4553 4444 4493 4632 4574 4522
5674 69 5052 5134 4880 5198 5093 5005 4959 5126 5167 5043
5675 70 3886 3754 3640 3770 3820 3697 3779 3829 3761 3710
5676 71 3389 3079 3369 3147 3236 3225 3378 3264 3110 3253
5677 72 1061 1154 1119 1051 1103 1133 1093 1057 1101 1085
5678 73 5142 5216 5011 4945 5181 5118 5072 5047 5089 4969
5679 74 462 517 464 432 487 489 461 444 472 446
5680 75 3504 3510 3572 3046 3512 3542 3534 3261 3267 3299
5681 76 1829 1654 1703 1693 1732 1682 1755 1751 1676 1694
5682 77 3458 3504 3572 3046 3487 3534 3520 3242 3261 3299
5683 78 1452 1595 1497 1536 1515 1542 1471 1491 1562 1510
5684 79 1334 1452 1497 1536 1383 1471 1404 1429 1491 1510
5685 80 1654 1504 1703 1693 1584 1601 1682 1676 1599 1694
5686 81 2015 1839 1934 2024 1932 1888 1976 2016 1936 1979
5687 82 3728 3734 3701 3134 3735 3746 3742 3439 3444 3418
5688 83 1495 1618 1716 1762 1560 1665 1597 1617 1687 1737
5689 84 3688 3728 3701 3134 3715 3742 3721 3413 3439 3418
5690 85 1618 1772 1716 1762 1691 1740 1665 1687 1761 1737
5691 86 1839 1681 1934 2024 1754 1796 1888 1936 1843 1979
5692 87 2383 2622 2557 2436 2498 2577 2468 2402 2527 2487
5693 88 3086 2935 2901 2720 3019 2899 2983 2900 2807 2791
5694 89 1912 1817 1698 2077 1850 1763 1802 1990 1947 1887
5695 90 3038 3155 3015 2762 3101 3072 3008 2895 2950 2882
5696 91 1866 1999 1747 2110 1926 1880 1818 1987 2051 1935
5697 92 2472 2251 2396 2353 2360 2321 2433 2408 2294 2374
5698 93 1317 1447 1410 1478 1369 1416 1355 1389 1459 1439
5699 94 2329 2344 2146 2191 2357 2252 2244 2265 2272 2166
5700 95 3531 3526 3641 3183 3557 3625 3598 3350 3345 3408
5701 96 3610 3644 3515 3370 3631 3589 3558 3492 3513 3435
5702 97 2195 2052 2233 2042 2124 2144 2215 2119 2048 2139
5703 98 3365 3573 3465 3249 3473 3524 3415 3308 3404 3355
5704 99 1222 1365 1277 1441 1288 1319 1251 1323 1398 1351
5705 100 1411 1527 1338 1581 1467 1431 1375 1494 1557 1455
5706 101 1988 1801 1956 1931 1902 1882 1974 1960 1862 1941
5707 102 1357 1239 1294 1393 1286 1258 1311 1379 1313 1340
5708 103 3332 3321 3490 3016 3347 3398 3446 3169 3160 3240
5709 104 2591 2595 2392 2382 2620 2494 2501 2479 2481 2386
5710 105 2472 2396 2712 2440 2433 2542 2589 2453 2413 2568
5711 106 3038 3015 2852 2513 3008 2934 2952 2761 2752 2678
5712 107 2901 2935 2712 2440 2899 2818 2790 2661 2672 2568
5713 108 1866 1747 1799 1946 1818 1767 1827 1904 1841 1870
5714 109 1698 1817 1799 1946 1763 1797 1745 1816 1881 1870
5715 110 2557 2622 2852 2513 2577 2744 2693 2531 2564 2678
5716 111 1580 1789 1746 1581 1689 1770 1662 1576 1683 1657
5717 112 2130 2027 1914 1931 2086 1980 2018 2023 1977 1916
5718 113 3638 3427 3685 3370 3544 3579 3663 3507 3391 3529
5719 114 1652 1450 1583 1441 1565 1511 1614 1543 1444 1505
5720 115 3359 3521 3633 3249 3447 3583 3516 3306 3382 3443
5721 116 2206 2347 2135 2042 2284 2241 2175 2120 2182 2084
5722 117 1410 1580 1533 1581 1482 1546 1468 1492 1576 1559
5723 118 2146 2130 1962 1931 2142 2041 2053 2036 2023 1943
5724 119 3521 3490 3619 3249 3536 3555 3611 3382 3362 3428
5725 120 1450 1294 1381 1441 1348 1336 1396 1444 1363 1409
5726 121 3641 3638 3708 3370 3675 3709 3680 3511 3507 3549
5727 122 2347 2392 2193 2042 2384 2292 2278 2182 2211 2118
5728 123 1535 1357 1450 1393 1448 1400 1498 1461 1379 1423
5729 124 3207 3332 3521 3016 3291 3426 3368 3099 3169 3254
5730 125 2448 2591 2347 2382 2534 2469 2409 2411 2479 2365
5731 126 1228 1334 1345 1414 1269 1337 1282 1316 1368 1380
5732 127 3361 3458 3514 2997 3414 3486 3441 3175 3216 3243
5733 128 1595 1758 1680 1685 1678 1712 1630 1631 1713 1679
5734 129 1504 1367 1520 1552 1436 1442 1512 1523 1456 1531
5735 130 3510 3474 3578 3049 3499 3527 3541 3271 3248 3305
5736 131 2017 1829 1921 1869 1923 1875 1971 1944 1844 1898
5737 132 2344 2259 2130 2191 2309 2194 2237 2272 2223 2157
5738 133 1447 1623 1580 1478 1538 1607 1508 1459 1553 1521
5739 134 3526 3335 3638 3183 3452 3505 3593 3345 3251 3400
5740 135 1839 2015 1760 2024 1932 1892 1798 1936 2016 1896
5741 136 3734 3728 3645 3134 3735 3686 3692 3444 3439 3387
5742 137 1618 1495 1558 1762 1560 1516 1593 1687 1617 1651
5743 138 3728 3688 3645 3134 3715 3673 3686 3439 3413 3387
5744 139 1772 1618 1558 1762 1691 1593 1655 1761 1687 1651
5745 140 1681 1839 1760 2024 1754 1798 1715 1843 1936 1896
5746 141 3079 3369 3147 2838 3225 3253 3110 2957 3081 2985
5747 142 3754 3640 3770 3539 3697 3710 3761 3648 3588 3662
5748 143 1154 1119 1051 1120 1133 1085 1101 1134 1117 1086
5749 144 2552 2720 2440 2935 2643 2578 2491 2729 2807 2672
5750 145 2788 2762 2681 3155 2783 2735 2738 2971 2950 2908
5751 146 2179 2353 2092 2251 2266 2213 2138 2204 2294 2164
5752 147 2629 2436 2513 2622 2535 2473 2567 2626 2527 2564
5753 148 2045 2077 1946 1817 2047 1994 1993 1933 1947 1881
5754 149 2250 2110 2151 1999 2168 2123 2196 2132 2051 2078
5755 150 2762 2629 2513 3038 2706 2567 2649 2895 2816 2761
5756 151 2353 2552 2440 2472 2454 2491 2397 2408 2512 2453
5757 152 2720 2788 2681 3086 2769 2738 2711 2900 2945 2877
5758 153 2110 2045 1946 1866 2066 1993 2013 1987 1953 1904
5759 154 2436 2250 2151 2383 2332 2196 2285 2402 2307 2264
5760 155 2077 2179 2092 1912 2121 2138 2075 1990 2050 1996
5761 156 3619 3688 3633 3249 3657 3696 3658 3428 3480 3443
5762 157 1381 1495 1583 1441 1435 1518 1466 1409 1465 1505
5763 158 2193 2015 2135 2042 2104 2080 2167 2118 2025 2084
5764 159 1772 1962 1914 1931 1865 1938 1835 1847 1943 1916
5765 160 1681 1533 1746 1581 1603 1627 1704 1621 1559 1657
5766 161 410 316 340 378 360 324 372 390 343 355
5767 162 4836 4718 4607 4937 4779 4662 4719 4888 4831 4773
5768 163 3734 3708 3685 3370 3722 3731 3743 3564 3549 3529
5769 164 5114 5260 5052 5198 5192 5163 5079 5155 5227 5126
5770 165 1447 1339 1376 1317 1388 1352 1408 1369 1329 1342
5771 166 2344 2525 2637 2329 2432 2572 2477 2357 2426 2470
5772 167 3526 3764 3434 3531 3653 3622 3485 3557 3655 3484
5773 168 3575 3332 3198 3321 3456 3260 3379 3442 3347 3247
5774 169 2836 2591 2907 2595 2714 2747 2870 2716 2620 2748
5775 170 1257 1357 1331 1239 1306 1341 1292 1248 1286 1276
5776 171 1934 1995 2135 2024 1972 2065 2026 1979 2006 2081
5777 172 3701 3440 3633 3134 3600 3535 3666 3418 3285 3376
5778 173 1716 1824 1583 1762 1773 1710 1643 1737 1785 1667
5779 174 3440 3701 3685 3134 3600 3691 3562 3285 3418 3406
5780 175 1376 1339 1245 1317 1352 1290 1304 1342 1329 1272
5781 176 2637 2525 2806 2329 2572 2668 2722 2470 2426 2558
5782 177 3434 3764 3676 3531 3622 3719 3561 3484 3655 3606
5783 178 1824 1716 1914 1762 1773 1812 1871 1785 1737 1832
5784 179 1995 1934 1746 2024 1972 1837 1894 2006 1979 1884
5785 180 3575 3198 3384 3321 3379 3293 3476 3442 3247 3340
5786 181 2836 2907 3154 2595 2870 3023 2988 2716 2748 2861
5787 182 1257 1331 1205 1239 1292 1260 1234 1248 1276 1217
5788 183 1968 2152 2199 2069 2063 2173 2087 2012 2105 2136
5789 184 1252 1177 1211 1312 1209 1195 1227 1279 1240 1254
5790 185 3390 3279 3342 2902 3334 3316 3371 3130 3077 3104
5791 186 3069 3232 3133 2760 3150 3190 3092 2915 2982 2943
5792 187 1112 1158 1145 1249 1132 1147 1129 1176 1198 1194
5793 188 2398 2209 2452 2257 2303 2323 2428 2318 2231 2343
5794 189 3886 3891 3770 3794 3887 3830 3829 3840 3842 3777
5795 190 1061 965 1051 1024 1016 1011 1057 1044 994 1035
5796 191 3389 3422 3147 3745 3399 3287 3264 3580 3601 3460
5797 192 2185 2301 2245 2545 2261 2279 2216 2354 2418 2380
5798 193 2134 1949 2174 2059 2040 2067 2148 2095 2002 2115
5799 194 2331 2270 2387 2583 2312 2333 2361 2458 2421 2476
5800 195 1619 1686 1674 1458 1639 1669 1641 1534 1571 1564
5801 196 1833 2022 1891 1978 1929 1954 1856 1903 1997 1930
5802 197 1759 1648 1821 1501 1696 1718 1786 1624 1573 1646
5803 198 2270 2134 2174 2443 2201 2148 2225 2349 2277 2300
5804 199 2301 2331 2387 2645 2328 2361 2358 2465 2474 2504
5805 200 1949 1759 1821 1834 1848 1786 1879 1890 1791 1826
5806 201 2022 2185 2245 2183 2114 2216 2141 2100 2186 2210
5807 202 1648 1619 1674 1417 1620 1641 1645 1526 1513 1540
5808 203 1686 1833 1891 1582 1750 1856 1776 1628 1701 1722
5809 204 1317 1410 1256 1478 1355 1330 1285 1389 1439 1359
5810 205 2329 2146 2263 2191 2244 2200 2293 2265 2166 2224
5811 206 3531 3641 3425 3183 3598 3543 3481 3350 3408 3307
5812 207 3490 3321 3219 3016 3398 3263 3351 3240 3160 3106
5813 208 1294 1239 1187 1393 1258 1208 1236 1340 1313 1280
5814 209 2392 2595 2521 2382 2494 2559 2456 2386 2481 2442
5815 210 5302 5381 5216 5139 5350 5305 5263 5214 5266 5176
5816 211 3640 3886 3770 3794 3779 3829 3710 3724 3840 3777
5817 212 1119 1061 1051 1024 1093 1057 1085 1068 1044 1035
5818 213 443 519 462 424 480 488 450 430 470 441
5819 214 3369 3389 3147 3745 3378 3264 3253 3576 3580 3460
5820 215 2339 2440 2573 2901 2388 2514 2460 2593 2661 2732
5821 216 2440 2339 2235 2396 2388 2288 2336 2413 2364 2310
5822 217 2513 2406 2614 3015 2459 2523 2574 2752 2697 2800
5823 218 1840 1946 1952 1698 1897 1937 1885 1756 1816 1822
5824 219 1946 1840 1989 1747 1897 1906 1957 1841 1784 1867
5825 220 2151 2056 2308 2282 2101 2176 2227 2212 2162 2289
5826 221 2565 2681 2614 3159 2615 2666 2601 2843 2912 2876
5827 222 2681 2565 2573 3091 2615 2581 2644 2879 2805 2820
5828 223 1992 2092 2235 2140 2038 2154 2102 2058 2109 2178
5829 224 2406 2513 2308 2557 2459 2415 2366 2471 2531 2427
5830 225 2092 1992 1952 1780 2038 1964 2010 1939 1886 1861
5831 226 2056 2151 1989 1895 2101 2068 2014 1973 2019 1940
5832 227 5461 5340 5384 5346 5404 5363 5425 5405 5338 5365
5833 228 5216 5381 5235 5139 5305 5310 5224 5176 5266 5185
5834 229 404 340 367 460 371 353 385 431 397 414
5835 230 4607 4514 4648 4937 4553 4574 4632 4773 4722 4796
5836 231 5195 5302 5142 5088 5257 5228 5171 5138 5201 5111
5837 232 519 582 517 491 551 548 516 497 532 499
5838 233 395 443 462 424 416 450 427 403 430 441
5839 234 5591 5558 5517 5528 5578 5537 5559 5564 5544 5523
5840 235 3155 3176 3159 2681 3181 3145 3121 2908 2919 2912
5841 236 2251 2060 2140 2092 2147 2097 2190 2164 2076 2109
5842 237 1999 2172 1895 2151 2089 2029 1959 2078 2160 2019
5843 238 2172 2383 2282 2151 2274 2325 2226 2160 2264 2212
5844 239 2060 1912 1780 2092 1982 1855 1924 2076 1996 1939
5845 240 3176 3086 3091 2681 3144 3067 3111 2919 2877 2879
5846 241 3685 3427 3440 3134 3579 3449 3562 3406 3280 3285
5847 242 2206 2135 1995 2024 2175 2065 2098 2117 2081 2006
5848 243 1914 2027 1824 1762 1980 1922 1871 1832 1900 1785
5849 244 1746 1789 1995 2024 1770 1899 1894 1884 1907 2006
5850 245 1652 1583 1824 1762 1614 1710 1727 1702 1667 1785
5851 246 3359 3633 3440 3134 3516 3535 3411 3241 3376 3285
5852 247 5558 5504 5461 5447 5532 5480 5522 5513 5471 5453
5853 248 5384 5509 5517 5346 5451 5512 5457 5365 5433 5438
5854 249 1339 1219 1245 1185 1274 1233 1290 1253 1201 1210
5855 250 2525 2704 2806 2484 2605 2756 2668 2499 2584 2647
5856 251 3764 3915 3676 3758 3841 3806 3719 3759 3836 3714
5857 252 3754 3575 3384 3539 3664 3476 3586 3648 3550 3461
5858 253 3079 2836 3154 2838 2960 2988 3114 2957 2831 2986
5859 254 1154 1257 1205 1120 1203 1234 1183 1134 1186 1160
5860 255 4849 5114 5052 5198 4971 5079 4949 5025 5155 5126
5861 256 5142 5216 4945 5088 5181 5089 5047 5111 5152 5013
5862 257 462 517 432 424 487 472 444 441 469 423
5863 258 1535 1450 1652 1441 1498 1565 1594 1486 1444 1543
5864 259 3207 3521 3359 3249 3368 3447 3296 3223 3382 3306
5865 260 1580 1623 1789 1581 1607 1700 1689 1576 1598 1683
5866 261 2130 2259 2027 1931 2194 2143 2086 2023 2091 1977
5867 262 2135 2015 1934 2024 2080 1976 2026 2081 2016 1979
5868 263 2448 2347 2206 2042 2409 2284 2324 2234 2182 2120
5869 264 3638 3335 3427 3370 3505 3394 3544 3507 3346 3391
5870 265 3734 3685 3701 3134 3743 3691 3746 3444 3406 3418
5871 266 3633 3688 3701 3134 3696 3721 3666 3376 3413 3418
5872 267 1583 1495 1716 1762 1518 1597 1643 1667 1617 1737
5873 268 1772 1914 1716 1762 1835 1812 1740 1761 1832 1737
5874 269 1681 1746 1934 2024 1704 1837 1796 1843 1884 1979
5875 270 340 316 250 378 324 274 297 355 343 310
5876 271 4618 4836 4607 4937 4728 4719 4612 4777 4888 4773
5877 272 1118 1091 1023 1138 1100 1052 1067 1126 1109 1076
5878 273 5216 5235 5011 4945 5224 5130 5118 5089 5099 4969
5879 274 3176 3177 3159 2681 3137 3182 3145 2919 2918 2912
5880 275 5260 5134 5198 5355 5196 5167 5227 5309 5255 5282
5881 276 2060 1942 2140 2092 2005 2037 2097 2076 2009 2109
5882 277 2172 2073 1895 2151 2125 1983 2029 2160 2108 2019
5883 278 2073 2172 2282 2151 2125 2226 2169 2108 2160 2212
5884 279 1942 2060 1780 2092 2005 1924 1857 2009 2076 1939
5885 280 3177 3176 3091 2681 3137 3111 3149 2918 2919 2879
5886 281 628 552 576 593 585 561 600 608 570 580
5887 282 4668 4797 4557 4415 4734 4679 4614 4542 4600 4484
5888 283 3198 3332 2991 3321 3260 3157 3083 3247 3347 3142
5889 284 2907 2591 2710 2595 2747 2655 2794 2748 2620 2654
5890 285 1331 1357 1475 1239 1341 1415 1394 1276 1286 1343
5891 286 498 410 404 460 455 405 452 477 433 431
5892 287 4718 4575 4514 4867 4651 4543 4615 4799 4733 4685
5893 288 1447 1376 1517 1317 1408 1445 1484 1369 1342 1413
5894 289 2344 2637 2493 2329 2477 2562 2420 2357 2470 2404
5895 290 3526 3434 3172 3531 3485 3302 3341 3557 3484 3337
5896 291 1921 1829 1703 1869 1875 1755 1806 1898 1844 1778
5897 292 3510 3578 3572 3049 3541 3581 3542 3271 3305 3297
5898 293 3514 3458 3572 2997 3486 3520 3548 3243 3216 3274
5899 294 1345 1334 1497 1414 1337 1404 1422 1380 1368 1451
5900 295 1595 1680 1497 1685 1630 1588 1542 1631 1679 1590
5901 296 1504 1520 1703 1552 1512 1612 1601 1523 1531 1616
5902 297 4880 4849 5052 5198 4865 4949 4959 5043 5025 5126
5903 298 2591 2448 2710 2382 2534 2575 2655 2479 2411 2539
5904 299 3332 3207 2991 3016 3291 3095 3157 3169 3099 2999
5905 300 1357 1535 1475 1393 1448 1502 1415 1379 1461 1433
5906 301 3335 3526 3172 3183 3452 3341 3262 3251 3345 3171
5907 302 2259 2344 2493 2191 2309 2420 2373 2223 2272 2335
5908 303 1623 1447 1517 1478 1538 1484 1570 1553 1459 1496
5909 304 2381 2610 2651 2616 2496 2633 2506 2492 2608 2634
5910 305 3080 2875 3250 3200 2981 3055 3164 3136 3028 3221
5911 306 1091 1087 999 1138 1084 1038 1041 1109 1105 1060
5912 307 4193 4150 4035 3916 4167 4092 4113 4057 4033 3978
5913 308 4150 4193 4324 3916 4167 4256 4229 4033 4057 4115
5914 309 3964 3917 3757 4015 3936 3837 3864 3989 3960 3884
5915 310 683 736 637 687 713 686 660 682 711 659
5916 311 736 683 778 687 713 733 753 711 682 732
5917 312 3917 3964 4117 4015 3936 4039 4023 3960 3989 4063
5918 313 1245 1219 1141 1185 1233 1179 1192 1210 1201 1157
5919 314 2806 2704 3037 2484 2756 2865 2931 2647 2584 2749
5920 315 3676 3915 3848 3758 3806 3879 3772 3714 3836 3801
5921 316 5461 5504 5340 5447 5480 5424 5404 5453 5471 5391
5922 317 395 462 464 432 427 461 426 406 444 446
5923 318 340 250 342 367 297 294 336 353 308 354
5924 319 4607 4385 4618 4648 4493 4503 4612 4632 4522 4635
5925 320 3770 3891 3717 3794 3830 3809 3747 3777 3842 3755
5926 321 1051 965 993 1024 1011 981 1021 1035 994 1007
5927 322 3147 3422 3078 3745 3287 3245 3107 3460 3601 3412
5928 323 4077 4076 3928 3848 4075 4001 4002 3954 3956 3883
5929 324 2898 2927 2703 3037 2911 2795 2787 2962 2977 2862
5930 325 1027 1121 1107 1141 1071 1115 1066 1081 1130 1124
5931 326 2344 2130 2146 2191 2237 2142 2252 2272 2157 2166
5932 327 1447 1580 1410 1478 1508 1482 1416 1459 1521 1439
5933 328 1450 1357 1294 1393 1400 1311 1348 1423 1379 1340
5934 329 3521 3332 3490 3016 3426 3446 3536 3254 3169 3240
5935 330 3526 3638 3641 3183 3593 3675 3625 3345 3400 3408
5936 331 2347 2591 2392 2382 2469 2501 2384 2365 2479 2386
5937 332 1158 1228 1222 1315 1193 1224 1189 1229 1266 1262
5938 333 3232 3361 3365 2910 3303 3363 3298 3057 3117 3116
5939 334 1367 1252 1338 1419 1305 1295 1346 1386 1335 1377
5940 335 1758 1968 1956 1860 1863 1961 1853 1811 1913 1908
5941 336 2209 2017 2195 2055 2116 2103 2202 2137 2035 2131
5942 337 3474 3390 3515 3000 3437 3455 3496 3229 3193 3244
5943 338 1995 2073 2206 2024 2021 2128 2098 2006 2043 2117
5944 339 3177 3440 3427 3134 3289 3449 3311 3148 3285 3280
5945 340 1942 1824 2027 1762 1872 1922 1969 1845 1785 1900
5946 341 1824 1942 1652 1762 1872 1775 1727 1785 1845 1702
5947 342 3440 3177 3359 3134 3289 3276 3411 3285 3148 3241
5948 343 2073 1995 1789 2024 2021 1899 1920 2043 2006 1907
5949 344 5173 4954 5068 4839 5064 5009 5120 4997 4887 4952
5950 345 276 219 256 175 248 239 267 224 195 212
5951 346 5352 5503 5432 5290 5429 5468 5387 5315 5400 5362
5952 347 4333 4547 4440 4540 4434 4491 4380 4430 4544 4486
5953 348 32 81 60 74 53 66 44 47 73 62
5954 349 5112 4862 4984 5062 4976 4921 5056 5090 4957 5018
5955 350 3091 3086 2901 2573 3067 2983 3007 2820 2817 2732
5956 351 1780 1912 1698 1952 1855 1802 1731 1861 1928 1822
5957 352 2282 2383 2557 2308 2325 2468 2414 2289 2341 2427
5958 353 1533 1580 1746 1581 1546 1662 1627 1559 1576 1657
5959 354 1962 2130 1914 1931 2041 2018 1938 1943 2023 1916
5960 355 3708 3638 3685 3370 3709 3663 3731 3549 3507 3529
5961 356 3521 3619 3633 3249 3611 3658 3583 3382 3428 3443
5962 357 1450 1381 1583 1441 1396 1466 1511 1444 1409 1505
5963 358 2347 2193 2135 2042 2278 2167 2241 2182 2118 2084
5964 359 1999 1895 1747 1989 1959 1815 1880 1991 1940 1867
5965 360 2251 2140 2396 2235 2190 2268 2321 2240 2178 2310
5966 361 3155 3159 3015 2614 3121 3089 3072 2873 2876 2800
5967 362 2955 2802 3172 2835 2869 2975 3065 2892 2815 2995
5968 363 2751 2662 2493 2417 2695 2569 2624 2570 2530 2451
5969 364 2662 2751 2991 2417 2695 2874 2796 2530 2570 2688
5970 365 2802 2955 2710 2835 2869 2832 2757 2815 2892 2766
5971 366 1469 1644 1517 1483 1555 1568 1487 1473 1563 1500
5972 367 1644 1469 1475 1483 1555 1464 1544 1563 1473 1474
5973 368 1703 1760 1921 1869 1728 1838 1806 1778 1807 1898
5974 369 3645 3572 3578 3049 3612 3581 3621 3328 3297 3305
5975 370 3572 3645 3514 2997 3612 3590 3548 3274 3315 3243
5976 371 1497 1558 1345 1414 1519 1446 1422 1451 1476 1380
5977 372 3159 3177 3427 2565 3182 3311 3278 2843 2851 2961
5978 373 1558 1497 1680 1685 1519 1588 1611 1610 1590 1679
5979 374 1760 1703 1520 1552 1728 1612 1635 1642 1616 1531
5980 375 2140 1942 2027 1992 2037 1969 2079 2058 1963 2000
5981 376 1895 2073 1789 2056 1983 1920 1831 1973 2057 1918
5982 377 2073 2282 2206 2056 2169 2236 2128 2057 2162 2127
5983 378 3177 3091 3359 2565 3149 3208 3276 2851 2805 2936
5984 379 1942 1780 1652 1992 1857 1706 1775 1963 1886 1809
5985 380 2875 2648 2909 3200 2758 2768 2887 3028 2905 3039
5986 381 2610 2848 3011 2616 2736 2933 2797 2608 2727 2793
5987 382 1535 1652 1780 1992 1594 1706 1640 1741 1809 1886
5988 383 3207 3359 3091 2565 3296 3208 3135 2858 2936 2805
5989 384 2448 2206 2282 2056 2324 2236 2345 2242 2127 2162
5990 385 1789 1623 1895 2056 1700 1742 1831 1918 1830 1973
5991 386 2027 2259 2140 1992 2143 2177 2079 2000 2112 2058
5992 387 3427 3335 3159 2565 3394 3238 3278 2961 2922 2843
5993 388 3698 3389 3745 3422 3551 3580 3718 3574 3399 3601
5994 389 3886 4029 3891 3794 3950 3952 3887 3840 3914 3842
5995 390 1061 984 965 1024 1019 973 1016 1044 1001 994
5996 391 806 755 718 687 779 737 759 743 717 694
5997 392 3519 3417 3737 3748 3463 3594 3635 3639 3603 3739
5998 393 4473 4423 4652 4331 4448 4539 4561 4398 4370 4479
5999 394 2398 2612 2648 2452 2502 2632 2524 2428 2532 2547
6000 395 3069 3283 2848 3133 3173 3054 2966 3092 3203 2984
6001 396 1072 1177 1118 1211 1123 1142 1096 1137 1195 1162
6002 397 3552 3279 3080 3342 3409 3191 3319 3445 3316 3209
6003 398 2302 2152 2381 2199 2228 2269 2340 2254 2173 2286
6004 399 1112 1017 1087 1145 1064 1047 1097 1129 1074 1113
6005 400 2704 2927 3037 2703 2798 2977 2865 2701 2795 2862
6006 401 3915 4076 3848 3928 3996 3956 3879 3920 4001 3883
6007 402 1121 1219 1107 1141 1167 1163 1115 1130 1179 1124
6008 403 1317 1256 1185 1138 1285 1215 1244 1213 1196 1156
6009 404 2329 2263 2484 2616 2293 2369 2403 2463 2431 2551
6010 405 3531 3425 3758 3200 3481 3613 3651 3354 3317 3495
6011 406 2614 2681 2762 3155 2666 2735 2692 2873 2908 2950
6012 407 2681 2573 2720 3086 2644 2646 2711 2877 2817 2900
6013 408 2235 2092 2353 2251 2154 2213 2290 2240 2164 2294
6014 409 2308 2513 2436 2557 2415 2473 2370 2427 2531 2487
6015 410 2092 1952 2077 1912 2010 2007 2075 1996 1928 1990
6016 411 1989 2151 2110 1999 2068 2123 2049 1991 2078 2051
6017 412 2513 2614 2762 3015 2574 2692 2649 2752 2800 2882
6018 413 2573 2440 2720 2901 2514 2578 2646 2732 2661 2791
6019 414 2440 2235 2353 2396 2336 2290 2397 2413 2310 2374
6020 415 1946 1989 2110 1747 1957 2049 2013 1841 1867 1935
6021 416 1952 1946 2077 1698 1937 1994 2007 1822 1816 1887
6022 417 2151 2308 2436 2383 2227 2370 2285 2264 2341 2402
6023 418 5134 5135 4880 5198 5133 5004 5005 5167 5166 5043
6024 419 465 404 342 367 434 370 402 415 385 354
6025 420 4514 4327 4385 4648 4409 4345 4444 4574 4476 4522
6026 421 1644 1799 1747 1946 1735 1767 1690 1783 1870 1841
6027 422 2662 2712 2396 2440 2670 2542 2533 2548 2568 2413
6028 423 2802 2852 3015 2513 2801 2934 2921 2658 2678 2752
6029 424 1799 1644 1698 1946 1735 1670 1745 1870 1783 1816
6030 425 2712 2662 2901 2440 2670 2773 2790 2568 2548 2661
6031 426 2852 2802 2557 2513 2801 2696 2693 2678 2658 2531
6032 427 1119 1205 1140 1120 1161 1170 1128 1117 1160 1125
6033 428 3369 3154 3615 2838 3257 3377 3493 3081 2986 3199
6034 429 3640 3384 3282 3539 3517 3326 3462 3588 3461 3393
6035 430 5581 5503 5511 5568 5547 5506 5551 5576 5536 5540
6036 431 183 219 98 203 197 146 133 192 205 140
6037 432 4508 4727 4480 4810 4617 4598 4490 4665 4774 4646
6038 433 1376 1245 1287 1138 1304 1261 1332 1238 1184 1200
6039 434 3434 3676 3259 3200 3561 3472 3343 3309 3423 3217
6040 435 2637 2806 2972 2616 2722 2888 2786 2607 2708 2774
6041 436 5144 5007 4778 5031 5077 4889 4956 5101 5019 4898
6042 437 5603 5616 5581 5620 5610 5605 5593 5614 5618 5606
6043 438 83 167 183 188 111 171 116 119 173 176
6044 439 5173 5347 5154 5308 5265 5252 5159 5246 5326 5237
6045 440 3384 3198 2972 3005 3293 3075 3166 3186 3085 2980
6046 441 3154 2907 3259 2894 3023 3073 3205 3017 2896 3066
6047 442 1205 1331 1287 1172 1260 1300 1243 1188 1241 1223
6048 443 4447 4283 4451 4123 4361 4357 4449 4275 4190 4281
6049 444 466 557 530 546 513 542 500 504 550 535
6050 445 3000 3049 2645 3370 3030 2834 2804 3170 3195 2974
6051 446 2997 2910 2583 3249 2959 2742 2778 3105 3059 2889
6052 447 1860 1685 1834 1931 1764 1752 1846 1889 1793 1873
6053 448 1869 2055 1978 2042 1967 2011 1919 1955 2046 2001
6054 449 1414 1315 1501 1441 1360 1401 1453 1420 1366 1457
6055 450 1419 1552 1582 1581 1480 1566 1499 1490 1561 1572
6056 451 5483 5533 5324 5499 5515 5443 5408 5492 5524 5415
6057 452 1 10 9 11 3 6 2 4 7 5
6058 453 5482 5383 5347 5496 5434 5360 5416 5491 5442 5419
6059 454 4145 4270 4333 4151 4207 4307 4233 4156 4216 4235
6060 455 345 278 276 356 312 273 313 344 309 317
6061 456 5172 5026 5352 5174 5100 5205 5267 5180 5108 5269
6062 457 1054 969 961 960 1012 963 1009 1005 962 956
6063 458 2594 2679 2878 3062 2640 2771 2734 2812 2860 2967
6064 459 3866 3931 4073 3729 3899 4004 3967 3800 3834 3910
6065 460 2152 2381 2199 2255 2269 2286 2173 2198 2315 2222
6066 461 1177 1118 1211 1250 1142 1162 1195 1206 1181 1226
6067 462 3279 3080 3342 2764 3191 3209 3316 3004 2928 3033
6068 463 1087 1112 1145 1218 1097 1129 1113 1149 1164 1182
6069 464 2648 2398 2452 2437 2524 2428 2547 2537 2419 2439
6070 465 2848 3069 3133 2588 2966 3092 2984 2721 2809 2849
6071 466 3219 3321 3539 3005 3263 3420 3373 3094 3151 3256
6072 467 2521 2595 2838 2894 2559 2719 2675 2700 2741 2863
6073 468 1187 1239 1120 1172 1208 1175 1151 1178 1202 1143
6074 469 1685 1536 1636 1673 1605 1592 1653 1675 1600 1649
6075 470 3049 3046 2663 3018 3051 2844 2846 3026 3025 2825
6076 471 3046 2997 2663 3018 3027 2819 2844 3025 3001 2825
6077 472 1536 1414 1636 1673 1472 1522 1592 1600 1537 1649
6078 473 1693 1869 1753 1868 1777 1803 1720 1774 1864 1804
6079 474 1552 1693 1753 1868 1615 1720 1647 1695 1774 1804
6080 475 4759 4704 4927 4525 4742 4811 4845 4634 4604 4721
6081 476 4106 4151 4311 4316 4135 4223 4197 4212 4227 4310
6082 477 187 260 139 221 214 200 155 198 236 174
6083 478 3770 3717 3539 3640 3747 3632 3662 3710 3672 3588
6084 479 3147 3078 2838 3369 3107 2953 2985 3253 3213 3081
6085 480 1051 993 1120 1119 1021 1053 1086 1085 1048 1117
6086 481 3198 2991 2751 3005 3083 2874 2964 3085 2987 2867
6087 482 2907 2710 2955 2894 2794 2832 2932 2896 2785 2925
6088 483 1331 1475 1469 1172 1394 1464 1391 1241 1302 1298
6089 484 1517 1376 1469 1483 1445 1421 1487 1500 1424 1473
6090 485 2493 2637 2751 2417 2562 2689 2624 2451 2515 2570
6091 486 3172 3434 2955 2835 3302 3188 3065 2995 3112 2892
6092 487 5011 4947 5142 4945 4970 5049 5072 4969 4940 5047
6093 488 517 558 464 432 531 510 489 472 495 446
6094 489 185 166 81 187 172 115 118 169 164 122
6095 490 4582 4752 4954 4759 4661 4853 4764 4673 4761 4855
6096 491 4748 4626 4862 4633 4687 4744 4802 4699 4637 4745
6097 492 4605 4814 4806 4435 4714 4807 4708 4520 4625 4624
6098 493 4778 4547 4858 4732 4663 4706 4816 4753 4639 4792
6099 494 2909 2648 2612 2763 2768 2632 2755 2823 2699 2690
6100 495 3011 2848 3283 3433 2933 3054 3138 3212 3118 3352
6101 496 2255 2069 2059 2258 2159 2062 2149 2249 2153 2150
6102 497 2760 2588 2443 2680 2684 2518 2590 2715 2636 2555
6103 498 2764 2902 2545 2814 2833 2713 2653 2779 2853 2673
6104 499 1250 1312 1458 1412 1271 1382 1344 1325 1353 1430
6105 500 1249 1218 1417 1320 1230 1309 1327 1278 1264 1361
6106 501 2257 2437 2183 2543 2342 2306 2218 2385 2478 2348
6107 502 4633 4564 4823 4793 4602 4695 4729 4713 4688 4803
6108 503 5115 5174 5327 4988 5153 5258 5230 5060 5078 5175
6109 504 2602 2764 2379 2814 2691 2561 2486 2707 2779 2582
6110 505 2588 2425 2267 2680 2507 2337 2416 2636 2546 2455
6111 506 2425 2255 2267 2258 2334 2262 2337 2327 2249 2260
6112 507 1220 1250 1402 1412 1231 1321 1301 1303 1325 1399
6113 508 1218 1220 1402 1320 1214 1301 1299 1264 1263 1349
6114 509 2437 2602 2379 2543 2526 2486 2405 2478 2566 2450
6115 510 1118 1023 1072 1138 1067 1046 1096 1126 1076 1102
6116 511 3669 3870 3875 3894 3788 3872 3785 3802 3888 3880
6117 512 638 559 621 586 594 583 627 611 568 599
6118 513 4225 4076 4077 3966 4148 4075 4147 4098 4022 4020
6119 514 3163 2927 2898 3416 3036 2911 3024 3290 3153 3140
6120 515 1040 1121 1027 1042 1080 1071 1032 1037 1077 1031
6121 516 4480 4642 4350 4684 4556 4496 4416 4578 4658 4523
6122 517 3046 3049 3510 3572 3051 3271 3267 3299 3297 3542
6123 518 1869 1693 1829 1703 1777 1751 1844 1778 1694 1755
6124 519 2997 3046 3458 3572 3027 3242 3216 3274 3299 3520
6125 520 1536 1685 1595 1497 1605 1631 1562 1510 1590 1542
6126 521 1414 1536 1334 1497 1472 1429 1368 1451 1510 1404
6127 522 1693 1552 1504 1703 1615 1523 1599 1694 1616 1601
6128 523 9 32 23 25 19 27 14 15 28 18
6129 524 5112 5324 5357 5285 5226 5344 5248 5203 5299 5320
6130 525 4541 4473 4743 4331 4511 4603 4641 4426 4398 4530
6131 526 4447 4595 4343 4710 4534 4464 4391 4573 4649 4528
6132 527 4273 4117 4350 4684 4188 4231 4320 4463 4376 4523
6133 528 5509 5591 5517 5528 5557 5559 5512 5520 5564 5523
6134 529 3049 3000 3474 3515 3030 3229 3248 3265 3244 3496
6135 530 1685 1860 1758 1956 1764 1811 1713 1810 1908 1853
6136 531 2910 2997 3361 3365 2959 3175 3117 3116 3168 3363
6137 532 2055 1869 2017 2195 1967 1944 2035 2131 2033 2103
6138 533 1315 1414 1228 1222 1360 1316 1266 1262 1308 1224
6139 534 1552 1419 1367 1338 1480 1386 1456 1437 1377 1346
6140 535 2594 2703 2484 3062 2652 2585 2544 2812 2871 2753
6141 536 3866 3928 3758 3729 3892 3844 3811 3800 3827 3736
6142 537 1054 1107 1185 960 1082 1144 1116 1005 1028 1063
6143 538 3624 3519 3828 3748 3568 3699 3741 3684 3639 3787
6144 539 860 806 776 770 833 789 817 812 787 771
6145 540 292 363 306 245 327 332 298 261 302 270
6146 541 517 582 558 491 548 567 531 499 532 525
6147 542 4947 5195 5142 5088 5071 5171 5049 5012 5138 5111
6148 543 4541 4606 4401 4457 4570 4509 4467 4497 4532 4427
6149 544 4541 4606 4457 4834 4570 4532 4497 4686 4720 4647
6150 545 3624 3720 3448 3869 3667 3599 3533 3763 3804 3703
6151 546 3624 3720 3869 3919 3667 3804 3763 3791 3825 3904
6152 547 860 909 968 887 881 940 911 874 893 927
6153 548 860 909 887 859 881 893 874 854 884 870
6154 549 1317 1447 1478 1517 1369 1459 1389 1413 1484 1496
6155 550 2329 2344 2191 2493 2357 2272 2265 2404 2420 2335
6156 551 3531 3526 3183 3172 3557 3345 3350 3337 3341 3171
6157 552 1357 1239 1393 1475 1286 1313 1379 1415 1343 1433
6158 553 3332 3321 3016 2991 3347 3160 3169 3157 3142 2999
6159 554 2591 2595 2382 2710 2620 2481 2479 2655 2654 2539
6160 555 3866 3694 3931 3729 3789 3822 3899 3800 3707 3834
6161 556 2594 2410 2679 3062 2500 2541 2640 2812 2718 2860
6162 557 1054 1095 969 960 1070 1029 1012 1005 1020 962
6163 558 1623 1517 1747 1483 1570 1622 1677 1550 1500 1608
6164 559 2259 2493 2396 2417 2373 2430 2316 2322 2451 2399
6165 560 3335 3172 3015 2835 3262 3061 3143 3070 2995 2926
6166 561 1475 1535 1698 1393 1502 1604 1579 1433 1461 1541
6167 562 2991 3207 2901 3016 3095 3020 2929 2999 3099 2949
6168 563 2710 2448 2557 2382 2575 2483 2604 2539 2411 2461
6169 564 5134 5355 5135 5198 5255 5253 5133 5167 5282 5166
6170 565 465 498 404 460 479 452 434 456 477 431
6171 566 4514 4575 4327 4867 4543 4445 4409 4685 4733 4586
6172 567 3490 3465 3249 3219 3478 3355 3362 3351 3349 3230
6173 568 1294 1277 1441 1187 1283 1351 1363 1236 1225 1296
6174 569 1411 1410 1581 1256 1405 1492 1494 1326 1330 1403
6175 570 1988 2146 1931 2263 2070 2036 1960 2129 2200 2094
6176 571 359 260 318 232 311 284 330 293 242 268
6177 572 4272 4438 4469 4536 4349 4459 4369 4392 4477 4502
6178 573 4085 4027 3901 4187 4050 3955 3995 4139 4108 4047
6179 574 4085 4027 4187 4288 4050 4108 4139 4182 4152 4246
6180 575 851 791 913 858 821 857 883 853 826 885
6181 576 851 791 858 790 821 826 853 825 788 824
6182 577 4319 4251 4162 4160 4279 4202 4237 4228 4201 4159
6183 578 4319 4251 4160 4505 4279 4201 4228 4400 4365 4332
6184 579 2392 2233 2042 2521 2311 2139 2211 2456 2375 2271
6185 580 3610 3641 3370 3425 3627 3511 3492 3528 3543 3392
6186 581 5439 5474 5314 5325 5459 5399 5373 5377 5398 5319
6187 582 5392 5254 5186 5131 5330 5217 5295 5273 5188 5156
6188 583 202 100 110 145 142 105 150 168 113 124
6189 584 4986 4922 4738 5151 4958 4825 4864 5074 5051 4938
6190 585 4692 4877 4668 4563 4787 4770 4681 4621 4712 4611
6191 586 726 648 628 698 690 636 675 710 671 655
6192 587 3215 2885 3053 3327 3042 2968 3124 3268 3087 3187
6193 588 3769 3530 3682 3228 3659 3614 3727 3522 3372 3459
6194 589 835 926 928 876 879 925 880 855 900 901
6195 590 4272 4084 4273 4282 4177 4173 4271 4280 4181 4274
6196 591 401 356 325 275 373 334 361 333 315 296
6197 592 5517 5558 5346 5528 5537 5472 5438 5523 5544 5445
6198 593 4480 4727 4642 4684 4598 4682 4556 4578 4698 4658
6199 594 4417 4257 4183 4554 4337 4217 4298 4494 4402 4352
6200 595 656 731 650 665 696 692 652 654 695 653
6201 596 4668 4877 4797 4415 4770 4832 4734 4542 4644 4600
6202 597 5615 5608 5566 5573 5613 5590 5595 5596 5592 5569
6203 598 5420 5469 5279 5521 5446 5375 5353 5477 5501 5413
6204 599 5558 5461 5346 5447 5522 5405 5472 5513 5453 5396
6205 600 3578 3515 3644 3370 3556 3589 3616 3466 3435 3513
6206 601 2052 2195 1921 2042 2124 2061 1985 2048 2119 1981
6207 602 1365 1222 1345 1441 1288 1275 1350 1398 1323 1384
6208 603 3573 3365 3514 3249 3473 3453 3540 3404 3308 3374
6209 604 1520 1338 1527 1581 1428 1431 1524 1549 1455 1557
6210 605 1680 1956 1801 1931 1808 1882 1736 1794 1941 1862
6211 606 5461 5340 5346 5447 5404 5338 5405 5453 5391 5396
6212 607 2764 2602 3080 2814 2691 2829 2928 2779 2707 2944
6213 608 2255 2425 2381 2258 2334 2400 2315 2249 2327 2305
6214 609 2425 2588 2848 2680 2507 2721 2618 2546 2636 2754
6215 610 2602 2437 2648 2543 2526 2537 2627 2566 2478 2580
6216 611 1250 1220 1118 1412 1231 1165 1181 1325 1303 1242
6217 612 1220 1218 1087 1320 1214 1149 1146 1263 1264 1190
6218 613 3803 3602 3336 3748 3716 3464 3609 3771 3670 3553
6219 614 4118 4245 4025 4331 4178 4131 4070 4213 4285 4164
6220 615 661 685 767 687 673 727 716 672 681 724
6221 616 2583 2443 2270 2174 2528 2349 2421 2367 2300 2225
6222 617 2059 1834 1949 2174 1951 1890 2002 2115 2003 2067
6223 618 1458 1582 1686 1674 1509 1628 1571 1564 1613 1669
6224 619 2545 2645 2301 2245 2597 2465 2418 2380 2429 2279
6225 620 1501 1417 1648 1674 1449 1526 1573 1578 1540 1645
6226 621 1978 2183 2022 2245 2088 2100 1997 2099 2210 2141
6227 622 1365 1495 1441 1558 1427 1465 1398 1454 1516 1493
6228 623 3573 3688 3249 3645 3634 3480 3404 3623 3673 3450
6229 624 1772 1801 1931 1558 1781 1862 1847 1655 1671 1725
6230 625 1681 1527 1581 1760 1602 1557 1621 1715 1638 1668
6231 626 2052 2015 2042 1760 2032 2025 2048 1909 1892 1905
6232 627 3734 3644 3370 3645 3690 3513 3564 3692 3654 3508
6233 628 4077 3928 3866 3729 4002 3892 3970 3909 3827 3800
6234 629 2898 2703 2594 3062 2787 2652 2743 2973 2871 2812
6235 630 1027 1107 1054 960 1066 1082 1039 988 1028 1005
6236 631 1860 2069 1968 1956 1970 2012 1913 1908 2004 1961
6237 632 2760 2910 3232 3365 2839 3057 2982 3043 3116 3298
6238 633 3000 2902 3390 3515 2956 3130 3193 3244 3192 3455
6239 634 1419 1312 1252 1338 1358 1279 1335 1377 1322 1295
6240 635 1249 1315 1158 1222 1273 1229 1198 1232 1262 1189
6241 636 2257 2055 2209 2195 2156 2137 2231 2220 2131 2202
6242 637 628 576 697 593 600 633 658 608 580 639
6243 638 4668 4557 4439 4415 4614 4501 4550 4542 4484 4421
6244 639 1107 1219 1185 1141 1163 1201 1144 1124 1179 1157
6245 640 2703 2704 2484 3037 2701 2584 2585 2862 2865 2749
6246 641 3928 3915 3758 3848 3920 3836 3844 3883 3879 3801
6247 642 3676 3848 3615 3570 3772 3751 3637 3620 3733 3585
6248 643 2806 3037 3282 2872 2931 3152 3034 2837 2948 3060
6249 644 1245 1141 1140 1089 1192 1139 1191 1159 1111 1110
6250 645 5114 4925 5160 4849 5022 5054 5140 4971 4885 5001
6251 646 4383 4245 4605 4423 4315 4419 4495 4399 4334 4519
6252 647 4383 4245 4423 4170 4315 4334 4399 4277 4205 4295
6253 648 719 685 638 755 705 657 679 741 723 703
6254 649 719 685 755 808 705 723 741 763 747 777
6255 650 3338 3602 3669 3417 3475 3642 3518 3381 3506 3547
6256 651 3338 3602 3417 3010 3475 3506 3381 3167 3295 3204
6257 652 3877 3917 4084 3997 3895 4000 3985 3934 3948 4044
6258 653 3877 3917 3997 3608 3895 3948 3934 3762 3781 3823
6259 654 640 683 557 644 662 620 596 641 663 595
6260 655 640 683 644 740 662 663 641 689 712 693
6261 656 4114 4150 4283 3957 4132 4211 4195 4036 4053 4120
6262 657 4114 4150 3957 3937 4132 4053 4036 4032 4042 3944
6263 658 3219 3133 3365 2680 3178 3255 3301 2938 2893 2993
6264 659 1187 1145 1222 1320 1166 1180 1197 1246 1221 1259
6265 660 2521 2452 2195 2543 2480 2319 2351 2529 2488 2352
6266 661 2199 2263 1956 2258 2232 2106 2083 2219 2253 2096
6267 662 1211 1256 1338 1412 1235 1293 1265 1297 1333 1370
6268 663 3342 3425 3515 2814 3385 3483 3436 3064 3098 3139
6269 664 1256 1317 1478 1138 1285 1389 1359 1196 1213 1281
6270 665 2263 2329 2191 2616 2293 2265 2224 2431 2463 2389
6271 666 39 100 67 110 63 77 49 65 105 85
6272 667 5494 5474 5374 5314 5486 5422 5436 5409 5399 5348
6273 668 3425 3531 3183 3200 3481 3350 3307 3317 3354 3185
6274 669 1239 1187 1393 1172 1208 1280 1313 1202 1178 1267
6275 670 3321 3219 3016 3005 3263 3106 3160 3151 3094 3003
6276 671 2595 2521 2382 2894 2559 2442 2481 2741 2700 2617
6277 672 2069 2255 2152 2199 2159 2198 2105 2136 2222 2173
6278 673 2588 2760 3069 3133 2684 2915 2809 2849 2943 3092
6279 674 2902 2764 3279 3342 2833 3004 3077 3104 3033 3316
6280 675 1312 1250 1177 1211 1271 1206 1240 1254 1226 1195
6281 676 1218 1249 1112 1145 1230 1176 1164 1182 1194 1129
6282 677 2437 2257 2398 2452 2342 2318 2419 2439 2343 2428
6283 678 5509 5517 5346 5528 5512 5438 5433 5520 5523 5445
6284 679 2662 2396 2493 2417 2533 2430 2569 2530 2399 2451
6285 680 1644 1747 1517 1483 1690 1622 1568 1563 1608 1500
6286 681 2802 3015 3172 2835 2921 3061 2975 2815 2926 2995
6287 682 2443 2267 2134 2174 2355 2187 2277 2300 2217 2148
6288 683 2472 2712 2552 2440 2589 2630 2512 2453 2568 2491
6289 684 3038 2852 2629 2513 2952 2737 2816 2761 2678 2567
6290 685 2267 2059 2134 2174 2165 2095 2187 2217 2115 2148
6291 686 2712 2935 2552 2440 2818 2729 2630 2568 2672 2491
6292 687 1799 1817 2045 1946 1797 1933 1925 1870 1881 1993
6293 688 1402 1458 1619 1674 1425 1534 1506 1530 1564 1641
6294 689 2379 2545 2185 2245 2466 2354 2283 2304 2380 2216
6295 690 2852 2622 2629 2513 2744 2626 2737 2678 2564 2567
6296 691 1866 1799 2045 1946 1827 1925 1953 1904 1870 1993
6297 692 1417 1402 1619 1674 1397 1506 1513 1540 1530 1641
6298 693 2183 2379 2185 2245 2287 2283 2186 2210 2304 2216
6299 694 1698 1644 1475 1483 1670 1544 1579 1587 1563 1474
6300 695 2901 2662 2991 2417 2773 2796 2929 2641 2530 2688
6301 696 2557 2802 2710 2835 2696 2757 2604 2687 2815 2766
6302 697 363 443 395 339 400 416 376 347 387 362
6303 698 1956 1968 2199 2069 1961 2087 2083 2004 2012 2136
6304 699 1338 1252 1211 1312 1295 1227 1265 1322 1279 1254
6305 700 3232 3365 3133 2760 3298 3255 3190 2982 3043 2943
6306 701 1158 1222 1145 1249 1189 1180 1147 1198 1232 1194
6307 702 3515 3390 3342 2902 3455 3371 3436 3192 3130 3104
6308 703 5521 5420 5502 5279 5477 5466 5510 5413 5353 5393
6309 704 1636 1501 1759 1821 1567 1624 1697 1721 1646 1786
6310 705 1753 1978 1833 1891 1859 1903 1790 1819 1930 1856
6311 706 2172 1999 2250 2151 2089 2132 2205 2160 2078 2196
6312 707 2645 2663 2331 2387 2665 2485 2474 2504 2516 2361
6313 708 2383 2172 2250 2151 2274 2205 2307 2264 2160 2196
6314 709 1582 1753 1833 1891 1663 1790 1701 1722 1819 1856
6315 710 3176 3155 2788 2681 3181 2971 2978 2919 2908 2738
6316 711 2663 2583 2331 2387 2638 2458 2485 2516 2476 2361
6317 712 2060 2251 2179 2092 2147 2204 2122 2076 2164 2138
6318 713 1834 1636 1759 1821 1726 1697 1791 1826 1721 1786
6319 714 1912 2060 2179 2092 1982 2122 2050 1996 2076 2138
6320 715 3086 3176 2788 2681 3144 2978 2945 2877 2919 2738
6321 716 2209 2195 2452 2257 2202 2319 2323 2231 2220 2343
6322 717 460 529 491 367 496 511 474 414 454 429
6323 718 4925 5038 5160 4642 4981 5104 5054 4782 4835 4895
6324 719 2612 2885 2909 2763 2750 2890 2755 2690 2811 2823
6325 720 3283 3530 3011 3433 3397 3258 3138 3352 3482 3212
6326 721 3869 4013 3704 3790 3941 3867 3792 3826 3903 3749
6327 722 4457 4323 4215 4200 4381 4267 4336 4330 4259 4208
6328 723 887 869 948 770 875 907 917 831 819 863
6329 724 424 443 339 395 430 387 381 403 416 362
6330 725 4937 4836 5050 4618 4888 4939 4994 4777 4728 4828
6331 726 5216 5235 4945 5139 5224 5099 5089 5176 5185 5042
6332 727 4836 4922 5050 4618 4883 4985 4939 4728 4769 4828
6333 728 4417 4575 4666 4327 4504 4630 4545 4363 4445 4487
6334 729 5603 5575 5601 5511 5588 5589 5604 5567 5546 5565
6335 730 4438 4564 4650 4844 4515 4613 4546 4640 4700 4746
6336 731 466 359 419 437 412 389 442 447 393 421
6337 732 4595 4704 4462 4942 4660 4577 4531 4768 4819 4702
6338 733 4412 4270 4316 4540 4338 4300 4367 4470 4396 4414
6339 734 1780 1698 1535 1952 1731 1604 1640 1861 1822 1723
6340 735 3091 2901 3207 2573 3007 3020 3135 2820 2732 2868
6341 736 2282 2557 2448 2308 2414 2483 2345 2289 2427 2371
6342 737 685 661 586 687 673 625 635 681 672 632
6343 738 4882 5026 4988 5290 4953 5017 4948 5102 5169 5150
6344 739 2396 2140 2259 2235 2268 2177 2316 2310 2178 2238
6345 740 1747 1895 1623 1989 1815 1742 1677 1867 1940 1795
6346 741 3015 3159 3335 2614 3089 3238 3143 2800 2876 2951
6347 742 5160 5038 5297 4684 5104 5182 5233 4916 4856 5002
6348 743 5381 5439 5235 5261 5414 5343 5310 5316 5351 5243
6349 744 2052 1921 1760 2042 1985 1838 1909 2048 1981 1905
6350 745 3578 3644 3645 3370 3616 3654 3621 3466 3513 3508
6351 746 1411 1338 1256 1581 1375 1293 1326 1494 1455 1403
6352 747 1988 1956 2263 1931 1974 2106 2129 1960 1941 2094
6353 748 1222 1277 1187 1441 1251 1225 1197 1323 1351 1296
6354 749 3610 3515 3425 3370 3558 3483 3528 3492 3435 3392
6355 750 3365 3465 3219 3249 3415 3349 3301 3308 3355 3230
6356 751 5432 5352 5290 5174 5387 5315 5362 5313 5269 5231
6357 752 256 276 175 356 267 224 212 304 317 266
6358 753 5306 5114 5160 4849 5219 5140 5240 5096 4971 5001
6359 754 4323 4457 4672 4200 4381 4571 4499 4259 4330 4422
6360 755 869 887 822 770 875 852 842 819 831 793
6361 756 2195 2233 2521 2042 2215 2375 2351 2119 2139 2271
6362 757 1365 1345 1558 1441 1350 1446 1454 1398 1384 1493
6363 758 3573 3514 3645 3249 3540 3590 3623 3404 3374 3450
6364 759 4343 4595 4462 4710 4464 4531 4408 4528 4649 4579
6365 760 4480 4350 4234 4684 4416 4297 4347 4578 4523 4446
6366 761 1680 1801 1558 1931 1736 1671 1611 1794 1862 1725
6367 762 1520 1527 1760 1581 1524 1638 1635 1549 1557 1668
6368 763 4451 4324 4557 4415 4382 4432 4510 4428 4355 4484
6369 764 5306 5160 5297 4999 5240 5233 5303 5170 5075 5164
6370 765 419 359 318 437 389 330 364 421 393 365
6371 766 4438 4650 4469 4536 4546 4568 4459 4477 4584 4502
6372 767 4954 5068 4839 4759 5009 4952 4887 4855 4913 4794
6373 768 2017 1921 2195 1869 1971 2061 2103 1944 1898 2033
6374 769 3578 3474 3515 3049 3527 3496 3556 3305 3248 3265
6375 770 1228 1345 1222 1414 1282 1275 1224 1316 1380 1308
6376 771 3361 3514 3365 2997 3441 3453 3363 3175 3243 3168
6377 772 5055 4877 4775 4797 4960 4815 4908 4917 4832 4781
6378 773 1520 1367 1338 1552 1442 1346 1428 1531 1456 1437
6379 774 1680 1758 1956 1685 1712 1853 1808 1679 1713 1810
6380 775 2622 2557 2436 2513 2577 2487 2527 2564 2531 2473
6381 776 2935 2901 2720 2440 2899 2791 2807 2672 2661 2578
6382 777 1817 1698 2077 1946 1763 1887 1947 1881 1816 1994
6383 778 5558 5528 5447 5346 5544 5495 5513 5472 5445 5396
6384 779 5528 5447 5346 5440 5495 5396 5445 5488 5444 5386
6385 780 3015 3038 2762 2513 3008 2895 2882 2752 2761 2649
6386 781 1747 1866 2110 1946 1818 1987 1935 1841 1904 2013
6387 782 2396 2472 2353 2440 2433 2408 2374 2413 2453 2397
6388 783 5521 5502 5573 5401 5510 5541 5549 5465 5449 5508
6389 784 3425 3342 3694 3200 3385 3525 3571 3317 3266 3457
6390 785 1256 1211 1095 1138 1235 1148 1169 1196 1171 1114
6391 786 2263 2199 2410 2616 2232 2299 2330 2431 2395 2508
6392 787 2267 2443 2588 2680 2355 2518 2416 2455 2555 2636
6393 788 2545 2379 2764 2814 2466 2561 2653 2673 2582 2779
6394 789 2059 2267 2255 2258 2165 2262 2149 2150 2260 2249
6395 790 1458 1402 1250 1412 1425 1321 1344 1430 1399 1325
6396 791 1402 1417 1218 1320 1397 1309 1299 1349 1361 1264
6397 792 2379 2183 2437 2543 2287 2306 2405 2450 2348 2478
6398 793 340 250 367 378 297 308 353 355 310 368
6399 794 4618 4607 4648 4937 4612 4632 4635 4777 4773 4796
6400 795 984 965 1024 864 973 994 1001 921 915 941
6401 796 3745 3698 3422 3775 3718 3574 3601 3756 3738 3626
6402 797 4029 3891 3794 4061 3952 3842 3914 4038 3980 3924
6403 798 3796 3986 3931 3679 3889 3951 3865 3744 3843 3816
6404 799 2489 2730 2679 2821 2600 2702 2576 2656 2770 2746
6405 800 982 891 969 929 938 932 972 950 908 946
6406 801 395 462 432 424 427 444 406 403 441 423
6407 802 2663 2645 3049 3018 2665 2834 2846 2825 2808 3026
6408 803 2583 2663 2997 3018 2638 2819 2778 2780 2825 3001
6409 804 1636 1834 1685 1673 1726 1752 1653 1649 1744 1675
6410 805 1978 1753 1869 1868 1859 1803 1919 1917 1804 1864
6411 806 1501 1636 1414 1673 1567 1522 1453 1577 1649 1537
6412 807 1753 1582 1552 1868 1663 1566 1647 1804 1707 1695
6413 808 5528 5550 5440 5346 5538 5507 5488 5445 5463 5386
6414 809 460 498 529 465 477 515 496 456 479 494
6415 810 5347 5154 5308 5383 5252 5237 5326 5360 5283 5349
6416 811 2135 2015 2024 2042 2080 2016 2081 2084 2025 2028
6417 812 5511 5581 5568 5603 5551 5576 5540 5567 5593 5586
6418 813 98 183 203 83 133 192 140 86 116 129
6419 814 3734 3685 3134 3370 3743 3406 3444 3564 3529 3246
6420 815 1583 1495 1762 1441 1518 1617 1667 1505 1465 1596
6421 816 2910 2760 2583 2680 2839 2676 2742 2775 2715 2621
6422 817 2902 3000 2645 2814 2956 2804 2767 2853 2903 2723
6423 818 2069 1860 1834 2258 1970 1846 1950 2153 2054 2044
6424 819 1312 1419 1582 1412 1358 1499 1438 1353 1407 1488
6425 820 2055 2257 1978 2543 2156 2111 2011 2281 2385 2243
6426 821 1315 1249 1501 1320 1273 1364 1401 1310 1278 1395
6427 822 5144 5272 5200 4858 5210 5242 5177 4998 5073 5030
6428 823 83 34 82 98 55 51 75 86 57 79
6429 824 4245 4118 4435 4331 4178 4278 4340 4285 4213 4372
6430 825 222 278 275 175 251 272 244 194 225 216
6431 826 3602 3803 3894 3748 3716 3852 3776 3670 3771 3818
6432 827 3133 3219 3433 3005 3178 3323 3284 3058 3094 3206
6433 828 2452 2521 2763 2894 2480 2639 2596 2660 2700 2810
6434 829 1145 1187 1033 1172 1166 1104 1088 1155 1178 1099
6435 830 961 1027 1054 960 995 1039 1009 956 988 1005
6436 831 2878 2898 2594 3062 2886 2743 2734 2967 2973 2812
6437 832 4073 4077 3866 3729 4074 3970 3967 3910 3909 3800
6438 833 5504 5392 5340 5297 5450 5366 5424 5402 5342 5317
6439 834 316 202 250 264 258 220 274 282 231 246
6440 835 4858 4778 4732 5144 4816 4753 4792 4998 4956 4930
6441 836 1023 1091 999 1138 1052 1041 1010 1076 1109 1060
6442 837 4652 4806 4915 4331 4735 4863 4780 4479 4555 4610
6443 838 23 32 60 25 27 44 38 18 28 35
6444 839 4547 4732 4440 4858 4639 4583 4491 4706 4792 4645
6445 840 4440 4333 4540 4151 4380 4430 4486 4290 4235 4335
6446 841 5308 5173 5068 5154 5246 5120 5199 5237 5159 5109
6447 842 219 203 256 98 205 228 239 146 140 165
6448 843 5503 5568 5432 5511 5536 5518 5468 5506 5540 5470
6449 844 5285 5112 4984 5357 5203 5056 5147 5320 5248 5193
6450 845 4013 3869 4099 3790 3941 3993 4062 3903 3826 3940
6451 846 60 139 69 112 95 99 61 84 126 87
6452 847 4311 4440 4580 4619 4366 4516 4437 4452 4529 4590
6453 848 100 145 67 110 113 103 77 105 124 85
6454 849 5474 5325 5374 5314 5398 5354 5422 5399 5319 5348
6455 850 4401 4225 4291 4215 4322 4258 4341 4314 4220 4248
6456 851 3448 3163 3235 3704 3304 3197 3331 3582 3432 3469
6457 852 968 1040 923 948 1003 979 945 955 989 935
6458 853 5068 4927 5197 4619 4996 5067 5136 4838 4765 4907
6459 854 1091 1118 1220 1138 1100 1165 1150 1109 1126 1173
6460 855 1087 1091 1220 1138 1084 1150 1146 1105 1109 1173
6461 856 2648 2875 2602 3200 2758 2739 2627 2905 3028 2884
6462 857 4743 4473 4652 4331 4603 4561 4693 4530 4398 4479
6463 858 2610 2381 2425 2616 2496 2400 2517 2608 2492 2509
6464 859 2875 3080 2602 3200 2981 2829 2739 3028 3136 2884
6465 860 2848 2610 2425 2616 2736 2517 2618 2727 2608 2509
6466 861 325 256 269 112 288 257 291 206 158 163
6467 862 23 9 25 10 14 15 18 8 6 12
6468 863 3828 3519 3737 3748 3699 3635 3783 3787 3639 3739
6469 864 776 806 718 770 789 759 749 771 787 742
6470 865 81 60 74 187 66 62 73 122 107 109
6471 866 4862 4984 5062 4633 4921 5018 4957 4745 4804 4842
6472 867 5469 5521 5548 5279 5501 5535 5519 5375 5413 5437
6473 868 175 276 278 356 224 273 225 266 317 309
6474 869 5290 5352 5026 5174 5315 5205 5169 5231 5269 5108
6475 870 3682 3433 3717 3211 3563 3587 3695 3451 3322 3468
6476 871 3053 2763 3078 3218 2906 2920 3063 3125 2979 3141
6477 872 993 928 1033 997 957 978 1014 991 958 1015
6478 873 5324 5357 5285 5533 5344 5320 5299 5443 5460 5421
6479 874 3737 3875 3969 3748 3810 3921 3858 3739 3808 3854
6480 875 982 1072 1023 1095 1025 1046 1000 1034 1083 1055
6481 876 718 621 677 622 669 645 699 668 615 643
6482 877 465 404 367 460 434 385 415 456 431 414
6483 878 4514 4327 4648 4867 4409 4476 4574 4685 4586 4757
6484 879 4954 4839 4582 4759 4887 4707 4764 4855 4794 4673
6485 880 5114 5260 5198 5306 5192 5227 5155 5219 5289 5256
6486 881 5260 5198 5306 5440 5227 5256 5289 5356 5331 5376
6487 882 5198 5306 5440 5346 5256 5376 5331 5275 5323 5386
6488 883 4984 4823 5143 5178 4911 4975 5065 5083 5000 5161
6489 884 5327 5432 5516 5178 5378 5475 5428 5250 5311 5364
6490 885 1834 2059 2069 2258 1951 2062 1950 2044 2150 2153
6491 886 2645 2545 2902 2814 2597 2713 2767 2723 2673 2853
6492 887 2443 2583 2760 2680 2528 2676 2590 2555 2621 2715
6493 888 1582 1458 1312 1412 1509 1382 1438 1488 1430 1353
6494 889 1417 1501 1249 1320 1449 1364 1327 1361 1395 1278
6495 890 2183 1978 2257 2543 2088 2111 2218 2348 2243 2385
6496 891 4273 4350 4536 4684 4320 4441 4394 4463 4523 4597
6497 892 4922 5151 5050 4618 5051 5106 4985 4769 4881 4828
6498 893 363 245 339 395 302 289 347 376 319 362
6499 894 2484 2410 2594 2616 2445 2500 2544 2551 2508 2598
6500 895 3758 3694 3866 3200 3723 3789 3811 3495 3457 3591
6501 896 1185 1095 1054 1138 1136 1070 1116 1156 1114 1094
6502 897 3539 3321 3575 3384 3420 3442 3550 3461 3340 3476
6503 898 2838 2595 2836 3154 2719 2716 2831 2986 2861 2988
6504 899 1120 1239 1257 1205 1175 1248 1186 1160 1217 1234
6505 900 3080 3250 3552 3200 3164 3395 3319 3136 3221 3366
6506 901 2381 2651 2302 2616 2506 2464 2340 2492 2634 2449
6507 902 999 1087 1017 1033 1038 1047 1004 1013 1056 1022
6508 903 5573 5548 5521 5401 5561 5535 5549 5508 5487 5465
6509 904 1140 1205 1287 1172 1170 1243 1204 1152 1188 1223
6510 905 3282 3384 2972 3005 3326 3166 3113 3123 3186 2980
6511 906 3615 3154 3259 2894 3377 3205 3429 3233 3017 3066
6512 907 1317 1185 1339 1245 1244 1253 1329 1272 1210 1290
6513 908 2329 2484 2525 2806 2403 2499 2426 2558 2647 2668
6514 909 3531 3758 3764 3676 3651 3759 3655 3606 3714 3719
6515 910 3433 3682 3530 3211 3563 3614 3482 3322 3451 3357
6516 911 2763 3053 2885 3218 2906 2968 2811 2979 3125 3040
6517 912 1033 928 926 997 978 925 977 1015 958 951
6518 913 2878 3235 2898 3062 3048 3056 2886 2967 3128 2973
6519 914 4073 4291 4077 3729 4174 4175 4074 3910 4021 3909
6520 915 961 923 1027 960 943 970 995 956 937 988
6521 916 5528 5591 5550 5509 5564 5571 5538 5520 5557 5530
6522 917 4540 4333 4270 4151 4430 4307 4396 4335 4235 4216
6523 918 23 60 69 112 38 61 40 56 84 87
6524 919 4440 4732 4580 4619 4583 4653 4516 4529 4667 4590
6525 920 4743 4652 4915 4331 4693 4780 4820 4530 4479 4610
6526 921 5308 5068 5197 4955 5199 5136 5259 5148 5008 5076
6527 922 4027 3964 3775 4015 3992 3871 3902 4018 3989 3893
6528 923 791 736 864 687 765 799 830 739 711 772
6529 924 4251 4193 4061 3916 4219 4127 4154 4082 4057 3987
6530 925 4473 4541 4291 4331 4511 4403 4374 4398 4426 4308
6531 926 3519 3624 3235 3748 3568 3421 3367 3639 3684 3502
6532 927 806 860 923 770 833 889 866 787 812 845
6533 928 5198 5260 5355 5440 5227 5309 5282 5331 5356 5403
6534 929 81 74 185 187 73 117 118 122 109 169
6535 930 4862 5062 4748 4633 4957 4897 4802 4745 4842 4699
6536 931 3552 3796 3694 3250 3687 3750 3628 3395 3554 3477
6537 932 2302 2489 2410 2651 2393 2446 2356 2464 2563 2522
6538 933 256 203 269 114 228 235 257 186 148 191
6539 934 3848 3966 3615 3570 3911 3813 3751 3733 3799 3585
6540 935 3037 3416 3282 2872 3220 3339 3152 2948 3119 3060
6541 936 1141 1042 1140 1089 1092 1090 1139 1111 1059 1110
6542 937 3698 3901 3775 4005 3807 3838 3738 3863 3946 3890
6543 938 984 913 864 939 947 888 921 954 924 898
6544 939 4029 4162 4061 3926 4095 4112 4038 3979 4043 3991
6545 940 4727 4925 4642 5038 4826 4782 4682 4884 4981 4835
6546 941 4947 5142 4945 5088 5049 5047 4940 5012 5111 5013
6547 942 517 558 432 491 531 495 472 499 525 459
6548 943 3828 3737 3969 3748 3783 3858 3897 3787 3739 3854
6549 944 5285 4984 5143 5178 5147 5065 5213 5229 5083 5161
6550 945 4508 4480 4234 4537 4490 4347 4356 4527 4507 4371
6551 946 3869 3704 3448 3790 3792 3582 3703 3826 3749 3636
6552 947 4457 4215 4401 4200 4336 4314 4427 4330 4208 4302
6553 948 887 948 968 923 917 955 927 903 935 945
6554 949 3964 4027 4234 4015 3992 4129 4102 3989 4018 4119
6555 950 2130 2146 2191 1931 2142 2166 2157 2023 2036 2064
6556 951 1580 1410 1478 1581 1482 1439 1521 1576 1492 1525
6557 952 3638 3641 3183 3370 3675 3408 3400 3507 3511 3277
6558 953 776 718 677 622 749 699 730 704 668 643
6559 954 4775 4877 4563 4415 4815 4712 4670 4588 4644 4488
6560 955 1294 1450 1393 1441 1348 1423 1340 1363 1444 1418
6561 956 3490 3521 3016 3249 3536 3254 3240 3362 3382 3122
6562 957 5432 5568 5516 5452 5518 5543 5475 5441 5525 5485
6563 958 2392 2347 2382 2042 2384 2365 2386 2211 2182 2203
6564 959 4605 4806 4652 4331 4708 4735 4631 4456 4555 4479
6565 960 4311 4151 4440 4316 4223 4290 4366 4310 4227 4364
6566 961 4759 4927 5068 4525 4845 4996 4913 4634 4721 4791
6567 962 187 139 60 112 155 95 107 138 126 84
6568 963 736 791 697 687 765 746 715 711 739 684
6569 964 4193 4251 4439 3916 4219 4339 4318 4057 4082 4165
6570 965 2637 2972 2751 2628 2786 2857 2689 2623 2781 2686
6571 966 3434 3259 2955 3050 3343 3093 3188 3234 3146 2994
6572 967 1376 1287 1469 1268 1332 1374 1421 1318 1270 1362
6573 968 519 517 424 491 516 469 470 497 499 458
6574 969 5384 5509 5346 5334 5451 5433 5365 5361 5430 5336
6575 970 306 363 395 245 332 376 350 270 302 319
6576 971 2972 3198 2751 3005 3075 2964 2857 2980 3085 2867
6577 972 3259 2907 2955 2894 3073 2932 3093 3066 2896 2925
6578 973 1287 1331 1469 1172 1300 1391 1374 1223 1241 1298
6579 974 3053 3078 3405 3218 3063 3239 3224 3125 3141 3312
6580 975 873 928 993 997 895 957 931 930 958 991
6581 976 3682 3717 3868 3211 3695 3798 3784 3451 3468 3604
6582 977 530 557 637 546 542 590 581 535 550 584
6583 978 4451 4283 4324 4123 4357 4299 4382 4281 4190 4214
6584 979 1410 1478 1581 1256 1439 1525 1492 1330 1359 1403
6585 980 2146 2191 1931 2263 2166 2064 2036 2200 2224 2094
6586 981 3228 3129 2821 3062 3179 2976 3013 3132 3084 2939
6587 982 3793 3679 3327 3729 3740 3509 3595 3760 3700 3538
6588 983 1393 1294 1441 1187 1340 1363 1418 1280 1236 1296
6589 984 3016 3490 3249 3219 3240 3362 3122 3106 3351 3230
6590 985 961 969 871 960 963 919 916 956 962 910
6591 986 2878 2679 3044 3062 2771 2850 2958 2967 2860 3045
6592 987 4073 3931 4184 3729 4004 4060 4128 3910 3834 3965
6593 988 3641 3183 3370 3425 3408 3277 3511 3543 3307 3392
6594 989 2382 2392 2042 2521 2386 2211 2203 2442 2456 2271
6595 990 410 340 460 378 372 397 433 390 355 418
6596 991 5503 5432 5290 5511 5468 5362 5400 5506 5470 5411
6597 992 219 256 175 98 239 212 195 146 165 128
6598 993 2875 2909 3250 3200 2887 3068 3055 3028 3039 3221
6599 994 2651 2610 3011 2616 2633 2797 2813 2634 2608 2793
6600 995 4117 4234 4350 4684 4169 4297 4231 4376 4446 4523
6601 996 4672 4457 4834 4743 4571 4647 4750 4701 4589 4785
6602 997 822 887 859 776 852 870 839 797 834 816
6603 998 4642 4925 4849 5160 4782 4885 4747 4895 5054 5001
6604 999 4834 5061 4672 4743 4946 4861 4750 4785 4894 4701
6605 1000 859 794 822 776 829 807 839 816 782 797
6606 1001 2927 3416 3037 2898 3153 3220 2977 2911 3140 2962
6607 1002 4076 3966 3848 4077 4022 3911 3956 4075 4020 3954
6608 1003 1121 1042 1141 1027 1077 1092 1130 1071 1031 1081
6609 1004 378 460 491 367 418 474 436 368 414 429
6610 1005 4858 4540 4846 4619 4697 4690 4850 4736 4572 4731
6611 1006 4273 4084 4117 4282 4173 4101 4188 4274 4181 4191
6612 1007 5068 5173 4839 5154 5120 4997 4952 5109 5159 4992
6613 1008 5603 5601 5620 5568 5604 5612 5614 5586 5585 5602
6614 1009 3669 3875 3737 3748 3785 3810 3705 3706 3808 3739
6615 1010 638 621 718 586 627 669 674 611 599 646
6616 1011 4633 4823 4984 5178 4729 4911 4804 4900 5000 5083
6617 1012 5327 5174 5432 4988 5258 5313 5378 5175 5078 5244
6618 1013 5325 5261 5151 4932 5293 5208 5247 5149 5107 5044
6619 1014 3919 4094 4099 3828 4008 4100 4014 3873 3958 3963
6620 1015 145 264 245 229 207 249 196 178 240 230
6621 1016 926 1017 1033 999 967 1022 977 953 1004 1013
6622 1017 2821 3129 2730 3062 2976 2930 2770 2939 3084 2883
6623 1018 3793 3986 3679 3729 3882 3843 3740 3760 3859 3700
6624 1019 5062 5357 5321 5178 5223 5339 5204 5116 5274 5249
6625 1020 74 25 71 112 43 42 68 88 52 80
6626 1021 841 929 876 960 886 902 861 899 942 914
6627 1022 5619 5620 5601 5568 5621 5612 5611 5599 5602 5585
6628 1023 292 306 233 120 298 265 262 201 211 162
6629 1024 5235 5439 5314 5261 5343 5373 5278 5243 5351 5287
6630 1025 5340 5384 5346 5085 5363 5365 5338 5220 5251 5221
6631 1026 325 356 256 275 334 304 288 296 315 254
6632 1027 2015 2024 2042 1760 2016 2028 2025 1892 1896 1905
6633 1028 1495 1762 1441 1558 1617 1596 1465 1516 1651 1493
6634 1029 378 460 367 340 418 414 368 355 397 353
6635 1030 3134 3734 3370 3645 3444 3564 3246 3387 3692 3508
6636 1031 2206 2135 2024 2042 2175 2081 2117 2120 2084 2028
6637 1032 3685 3427 3134 3370 3579 3280 3406 3529 3391 3246
6638 1033 5511 5290 5321 5452 5411 5300 5418 5481 5370 5385
6639 1034 98 175 71 114 128 108 78 102 136 90
6640 1035 3964 3757 3775 4015 3864 3766 3871 3989 3884 3893
6641 1036 736 778 864 687 753 823 799 711 732 772
6642 1037 4193 4035 4061 3916 4113 4041 4127 4057 3978 3987
6643 1038 1652 1583 1762 1441 1614 1667 1702 1543 1505 1596
6644 1039 637 736 697 687 686 715 667 659 711 684
6645 1040 4324 4193 4439 3916 4256 4318 4373 4115 4057 4165
6646 1041 4718 4514 4937 4867 4615 4722 4831 4799 4685 4909
6647 1042 5340 5392 5186 5297 5366 5295 5268 5317 5342 5241
6648 1043 250 202 110 264 220 150 180 246 231 179
6649 1044 4738 4922 4618 5151 4825 4769 4675 4938 5051 4881
6650 1045 222 185 74 221 199 117 137 208 189 134
6651 1046 4882 4748 5062 4793 4809 4897 4963 4852 4783 4919
6652 1047 1623 1580 1478 1581 1607 1521 1553 1598 1576 1525
6653 1048 2259 2130 2191 1931 2194 2157 2223 2091 2023 2064
6654 1049 3335 3638 3183 3370 3505 3400 3251 3346 3507 3277
6655 1050 4839 5154 4846 4955 4992 4995 4837 4892 5059 4896
6656 1051 1450 1535 1393 1441 1498 1461 1423 1444 1486 1418
6657 1052 3521 3207 3016 3249 3368 3099 3254 3382 3223 3122
6658 1053 2347 2448 2382 2042 2409 2411 2365 2182 2234 2203
6659 1054 4927 4704 4942 4462 4811 4819 4933 4694 4577 4702
6660 1055 139 260 232 318 200 242 184 226 284 268
6661 1056 4117 3964 4234 4015 4039 4102 4169 4063 3989 4119
6662 1057 5050 5151 5261 4932 5106 5208 5162 4977 5044 5107
6663 1058 4325 4106 4311 4276 4206 4197 4317 4294 4189 4287
6664 1059 3640 3282 3794 3717 3462 3566 3724 3672 3498 3755
6665 1060 3369 3615 3745 3078 3493 3677 3576 3213 3325 3412
6666 1061 1119 1140 1024 993 1128 1079 1068 1048 1058 1007
6667 1062 4806 4814 5085 4655 4807 4950 4944 4730 4725 4866
6668 1063 3321 3539 3005 3384 3420 3256 3151 3340 3461 3186
6669 1064 2595 2838 2894 3154 2719 2863 2741 2861 2986 3017
6670 1065 1239 1120 1172 1205 1175 1143 1202 1217 1160 1188
6671 1066 3694 3342 3552 3200 3525 3445 3628 3457 3266 3366
6672 1067 1095 1211 1072 1138 1148 1137 1083 1114 1171 1102
6673 1068 2410 2199 2302 2616 2299 2254 2356 2508 2395 2449
6674 1069 4536 4272 4273 4469 4392 4271 4394 4502 4369 4362
6675 1070 3643 3336 3129 3494 3497 3237 3388 3569 3407 3310
6676 1071 3782 4025 3793 3929 3906 3913 3786 3851 3976 3861
6677 1072 339 245 264 229 289 249 299 279 230 240
6678 1073 869 858 939 770 862 894 904 819 809 856
6679 1074 4323 4187 4005 4200 4254 4097 4157 4259 4192 4105
6680 1075 4013 4160 3926 3790 4087 4040 3968 3903 3981 3855
6681 1076 579 491 529 481 538 511 556 528 483 503
6682 1077 4867 4937 5139 4648 4909 5040 5003 4757 4796 4891
6683 1078 4867 4937 4648 4514 4909 4796 4757 4685 4722 4574
6684 1079 491 424 378 432 458 399 436 459 423 398
6685 1080 491 424 432 517 458 423 459 499 469 472
6686 1081 5254 5061 5186 4910 5165 5121 5217 5081 4966 5048
6687 1082 4324 4439 4557 4415 4373 4501 4432 4355 4421 4484
6688 1083 4986 4738 5023 5225 4864 4876 5010 5119 4974 5137
6689 1084 4547 4440 4540 4858 4491 4486 4544 4706 4645 4697
6690 1085 3682 3868 3769 3228 3784 3817 3727 3459 3607 3522
6691 1086 835 928 873 876 880 895 846 855 901 872
6692 1087 3053 3405 3215 3327 3224 3314 3124 3187 3356 3268
6693 1088 4412 4582 4839 4525 4492 4707 4623 4472 4559 4676
6694 1089 5023 5031 5200 4732 5033 5124 5123 4874 4878 4961
6695 1090 233 188 82 203 204 121 141 209 190 131
6696 1091 5302 5216 5088 5139 5263 5152 5201 5214 5176 5113
6697 1092 5502 5440 5550 5401 5473 5507 5527 5449 5417 5489
6698 1093 4541 4743 4834 4457 4641 4785 4686 4497 4589 4647
6699 1094 1140 1287 1245 1089 1204 1261 1191 1110 1174 1159
6700 1095 3615 3259 3676 3570 3429 3472 3637 3585 3403 3620
6701 1096 3282 2972 2806 2872 3113 2888 3034 3060 2916 2837
6702 1097 685 586 638 718 635 611 657 700 646 674
6703 1098 4988 5026 5174 5290 5017 5108 5078 5150 5169 5231
6704 1099 9 23 11 10 14 13 5 6 8 7
6705 1100 4732 4778 5031 5144 4753 4898 4878 4930 4956 5101
6706 1101 5347 5308 5496 5383 5326 5410 5419 5360 5349 5442
6707 1102 4099 3869 3919 3828 3993 3904 4014 3963 3845 3873
6708 1103 60 32 74 25 44 47 62 35 28 43
6709 1104 4984 5112 5062 5357 5056 5090 5018 5193 5248 5223
6710 1105 3770 3640 3794 3717 3710 3724 3777 3747 3672 3755
6711 1106 3147 3369 3745 3078 3253 3576 3460 3107 3213 3412
6712 1107 1051 1119 1024 993 1085 1068 1035 1021 1048 1007
6713 1108 3624 3828 3919 3869 3741 3873 3791 3763 3845 3904
6714 1109 860 776 859 887 817 816 854 874 834 870
6715 1110 5144 5200 5031 4732 5177 5124 5101 4930 4961 4878
6716 1111 83 82 188 203 75 121 119 129 131 190
6717 1112 939 984 1024 864 954 1001 980 898 921 941
6718 1113 4005 3698 3745 3775 3863 3718 3874 3890 3738 3756
6719 1114 3926 4029 3794 4061 3979 3914 3862 3991 4038 3924
6720 1115 5038 4810 5131 4684 4926 4965 5084 4856 4749 4902
6721 1116 4291 4541 4401 4200 4403 4467 4341 4242 4354 4302
6722 1117 3235 3624 3448 3790 3421 3533 3331 3537 3712 3636
6723 1118 923 860 968 887 889 911 945 903 874 927
6724 1119 3336 3602 3010 3044 3464 3295 3165 3184 3313 3022
6725 1120 767 685 808 871 727 747 783 814 775 840
6726 1121 4025 4245 4170 4184 4131 4205 4096 4103 4210 4179
6727 1122 5324 5285 5499 5533 5299 5395 5415 5443 5421 5524
6728 1123 5568 5581 5620 5603 5576 5606 5602 5586 5593 5614
6729 1124 203 183 188 83 192 176 190 129 116 119
6730 1125 2573 2565 2339 2784 2581 2490 2460 2682 2677 2554
6731 1126 2235 2339 1992 2155 2288 2161 2102 2184 2246 2074
6732 1127 2614 2406 2565 2881 2523 2536 2601 2745 2635 2717
6733 1128 1952 1992 1840 1625 1964 1876 1885 1779 1800 1724
6734 1129 2308 2056 2406 2295 2176 2239 2366 2297 2170 2346
6735 1130 1989 1840 2056 1692 1906 1915 2014 1836 1757 1878
6736 1131 10 34 25 33 20 26 12 16 30 22
6737 1132 5533 5575 5357 5562 5555 5498 5460 5553 5570 5479
6738 1133 4873 4554 4666 4411 4717 4616 4767 4643 4478 4538
6739 1134 4316 4270 4151 4540 4300 4216 4227 4414 4396 4335
6740 1135 4775 4563 4554 4415 4670 4558 4664 4588 4488 4482
6741 1136 4692 4668 4439 4563 4681 4550 4562 4621 4611 4498
6742 1137 726 628 697 698 675 658 709 710 655 688
6743 1138 4554 4873 4775 4411 4717 4821 4664 4478 4643 4587
6744 1139 5297 5447 5306 5346 5379 5380 5303 5318 5396 5323
6745 1140 5198 5114 5306 4849 5155 5219 5256 5025 4971 5096
6746 1141 5383 5272 5154 5359 5328 5212 5283 5372 5322 5264
6747 1142 661 644 546 687 649 592 602 672 666 614
6748 1143 67 145 120 229 103 130 92 127 178 157
6749 1144 5374 5325 5225 4932 5354 5280 5301 5184 5149 5080
6750 1145 794 731 748 650 764 735 769 725 692 701
6751 1146 5131 5297 5038 4684 5222 5182 5084 4902 5002 4856
6752 1147 3775 3901 4027 4005 3838 3955 3902 3890 3946 4007
6753 1148 864 913 791 939 888 857 830 898 924 867
6754 1149 4061 4162 4251 3926 4112 4202 4154 3991 4043 4088
6755 1150 5493 5469 5548 5279 5484 5519 5526 5388 5375 5437
6756 1151 4257 4094 4183 4301 4172 4137 4217 4284 4196 4236
6757 1152 5615 5566 5619 5594 5595 5598 5617 5607 5580 5609
6758 1153 3133 3433 3283 2848 3284 3352 3203 2984 3118 3054
6759 1154 2452 2763 2612 2648 2596 2690 2532 2547 2699 2632
6760 1155 1145 1033 1017 1087 1088 1022 1074 1113 1056 1047
6761 1156 4288 4508 4234 4537 4390 4356 4261 4406 4527 4371
6762 1157 4666 4867 4873 4411 4766 4872 4767 4538 4638 4643
6763 1158 4797 5055 4947 4873 4917 4991 4871 4824 4951 4906
6764 1159 39 67 33 69 49 46 31 45 58 37
6765 1160 5494 5374 5359 4955 5436 5368 5423 5271 5191 5179
6766 1161 4118 3997 4282 4015 4056 4143 4198 4065 4003 4141
6767 1162 5608 5591 5509 5550 5600 5557 5572 5582 5571 5530
6768 1163 582 656 558 579 623 605 567 578 617 564
6769 1164 5055 5195 4947 4873 5127 5071 4991 4951 5027 4906
6770 1165 5355 5420 5135 5502 5390 5292 5253 5435 5466 5337
6771 1166 573 498 465 529 537 479 526 553 515 494
6772 1167 4575 4867 4666 4327 4733 4766 4630 4445 4586 4487
6773 1168 3080 3552 3342 3200 3319 3445 3209 3136 3366 3266
6774 1169 2381 2302 2199 2616 2340 2254 2286 2492 2449 2395
6775 1170 1118 1072 1211 1138 1096 1137 1162 1126 1102 1171
6776 1171 5550 5573 5502 5401 5563 5541 5527 5489 5508 5449
6777 1172 790 726 697 781 757 709 745 785 752 738
6778 1173 4505 4692 4439 4321 4594 4562 4466 4393 4489 4368
6779 1174 3803 3957 4123 3916 3878 4048 3974 3856 3933 4019
6780 1175 4245 4435 4605 4331 4340 4520 4419 4285 4372 4456
6781 1176 275 278 356 175 272 309 315 216 225 266
6782 1177 1517 1623 1478 1483 1570 1553 1496 1500 1550 1477
6783 1178 2493 2259 2191 2417 2373 2223 2335 2451 2322 2298
6784 1179 3602 3894 3669 3748 3776 3802 3642 3670 3818 3706
6785 1180 4123 4447 4343 4451 4275 4391 4239 4281 4449 4395
6786 1181 3172 3335 3183 2835 3262 3251 3171 2995 3070 3002
6787 1182 761 767 841 838 760 804 801 795 798 837
6788 1183 437 466 530 419 447 500 485 421 442 476
6789 1184 4710 4447 4451 4343 4573 4449 4576 4528 4391 4395
6790 1185 1685 1536 1673 1558 1605 1600 1675 1610 1539 1609
6791 1186 3049 3046 3018 3645 3051 3025 3026 3328 3330 3324
6792 1187 1693 1869 1868 1760 1777 1864 1774 1719 1807 1813
6793 1188 610 698 665 593 651 676 634 597 642 626
6794 1189 4554 4417 4666 4411 4494 4545 4616 4478 4407 4538
6795 1190 644 661 761 687 649 714 706 666 672 722
6796 1191 4385 4618 4648 4325 4503 4635 4522 4344 4461 4471
6797 1192 4910 5131 4810 4684 5016 4965 4859 4790 4902 4749
6798 1193 5440 5306 5447 5346 5376 5380 5444 5386 5323 5396
6799 1194 4823 4564 4844 4650 4695 4700 4830 4739 4613 4746
6800 1195 3931 3796 3679 3694 3865 3744 3816 3822 3750 3681
6801 1196 2679 2489 2821 2410 2576 2656 2746 2541 2446 2599
6802 1197 3875 3870 4109 4153 3872 3990 3994 4012 4026 4126
6803 1198 873 864 778 838 865 823 828 844 843 803
6804 1199 3405 3775 3757 3929 3618 3766 3605 3725 3847 3839
6805 1200 3868 4061 4035 3494 3962 4041 3947 3713 3824 3814
6806 1201 858 869 781 770 862 827 818 809 819 773
6807 1202 4187 4323 4537 4255 4254 4429 4360 4218 4286 4386
6808 1203 929 982 1023 1095 950 1000 971 1006 1034 1055
6809 1204 260 221 318 139 236 263 284 200 174 226
6810 1205 4282 4272 4469 4273 4280 4369 4379 4274 4271 4362
6811 1206 926 928 876 997 925 901 900 951 958 934
6812 1207 5055 4775 4873 4797 4908 4821 4951 4917 4781 4824
6813 1208 4937 5050 5139 4648 4994 5098 5040 4796 4847 4891
6814 1209 3917 4117 4084 3997 4023 4101 4000 3948 4052 4044
6815 1210 683 637 557 687 660 590 620 682 659 618
6816 1211 4150 4324 4283 3957 4229 4299 4211 4053 4138 4120
6817 1212 4160 4013 4321 4046 4087 4166 4243 4104 4030 4171
6818 1213 5235 5011 4945 4942 5130 4969 5099 5095 4967 4936
6819 1214 3433 3539 3717 3211 3488 3632 3587 3322 3360 3468
6820 1215 2763 2838 3078 3218 2789 2953 2920 2979 3012 3141
6821 1216 1033 1120 993 997 1073 1053 1014 1015 1050 991
6822 1217 5494 5496 5308 5359 5497 5410 5407 5423 5427 5333
6823 1218 39 11 23 33 24 13 29 31 17 21
6824 1219 5493 5499 5285 5562 5500 5395 5389 5531 5534 5448
6825 1220 5088 5195 4873 4947 5138 5027 4972 5012 5071 4906
6826 1221 5088 4873 4867 4945 4972 4872 4964 5013 4905 4899
6827 1222 3957 3803 3643 3916 3878 3732 3821 3933 3856 3797
6828 1223 3997 4118 3782 4015 4056 3949 3885 4003 4065 3896
6829 1224 3046 3049 3572 3645 3051 3297 3299 3330 3328 3612
6830 1225 2997 3046 3572 3645 3027 3299 3274 3315 3330 3612
6831 1226 1414 1536 1497 1558 1472 1510 1451 1476 1539 1519
6832 1227 1536 1685 1497 1558 1605 1590 1510 1539 1610 1519
6833 1228 1869 1693 1703 1760 1777 1694 1778 1807 1719 1728
6834 1229 1693 1552 1703 1760 1615 1616 1694 1719 1642 1728
6835 1230 3679 3796 3250 3694 3744 3554 3467 3681 3750 3477
6836 1231 2821 2489 2651 2410 2656 2563 2733 2599 2446 2522
6837 1232 5334 5115 5327 4875 5236 5230 5332 5128 4982 5122
6838 1233 621 559 539 484 583 543 575 547 521 506
6839 1234 424 339 378 432 381 357 399 423 379 398
6840 1235 3688 3633 3249 3134 3696 3443 3480 3413 3376 3194
6841 1236 1746 1681 1581 2024 1704 1621 1657 1884 1843 1788
6842 1237 1914 1772 1931 1762 1835 1847 1916 1832 1761 1842
6843 1238 4327 4417 4183 4411 4363 4298 4250 4358 4407 4293
6844 1239 558 656 650 579 605 652 603 564 617 612
6845 1240 5566 5608 5509 5550 5590 5572 5539 5554 5582 5530
6846 1241 5135 5420 5279 5502 5292 5353 5209 5337 5466 5393
6847 1242 4321 4099 4301 4046 4199 4194 4309 4171 4069 4161
6848 1243 5061 4910 4672 4743 4966 4789 4861 4894 4813 4701
6849 1244 794 748 822 776 769 784 807 782 756 797
6850 1245 4806 4605 4435 4331 4708 4520 4624 4555 4456 4372
6851 1246 4225 4077 4291 3966 4147 4175 4258 4098 4020 4121
6852 1247 3163 2898 3235 3416 3024 3056 3197 3290 3140 3320
6853 1248 1040 1027 923 1042 1032 970 979 1037 1031 976
6854 1249 2255 2069 2258 2199 2159 2153 2249 2222 2136 2219
6855 1250 1249 1218 1320 1145 1230 1264 1278 1194 1182 1221
6856 1251 2764 2902 2814 3342 2833 2853 2779 3033 3104 3064
6857 1252 1250 1312 1412 1211 1271 1353 1325 1226 1254 1297
6858 1253 2760 2588 2680 3133 2684 2636 2715 2943 2849 2893
6859 1254 2257 2437 2543 2452 2342 2478 2385 2343 2439 2488
6860 1255 891 808 871 767 847 840 878 832 783 814
6861 1256 2730 3010 3044 3336 2866 3022 2880 3014 3165 3184
6862 1257 3986 4170 4184 4025 4081 4179 4083 3999 4096 4103
6863 1258 755 806 871 838 779 836 811 792 815 848
6864 1259 3417 3519 3044 3748 3463 3270 3222 3603 3639 3396
6865 1260 4423 4473 4184 4331 4448 4328 4303 4370 4398 4249
6866 1261 383 401 325 352 388 361 351 358 366 326
6867 1262 3044 3235 2878 3494 3126 3048 2958 3252 3348 3162
6868 1263 871 923 961 838 892 943 916 848 877 897
6869 1264 4184 4291 4073 3929 4232 4174 4128 4055 4107 3998
6870 1265 5139 5088 4867 4945 5113 4964 5003 5042 5013 4899
6871 1266 5139 5088 4945 5216 5113 5013 5042 5176 5152 5089
6872 1267 3928 4077 3848 3966 4002 3954 3883 3939 4020 3911
6873 1268 2703 2898 3037 3416 2787 2962 2862 3032 3140 3220
6874 1269 1107 1027 1141 1042 1066 1081 1124 1069 1031 1092
6875 1270 4451 4557 4710 4415 4510 4636 4576 4428 4484 4552
6876 1271 464 395 432 383 426 406 446 420 384 396
6877 1272 4094 4301 4099 3828 4196 4194 4100 3958 4066 3963
6878 1273 4652 4423 4605 4331 4539 4519 4631 4479 4370 4456
6879 1274 718 755 638 685 737 703 674 700 723 657
6880 1275 3737 3417 3669 3748 3594 3547 3705 3739 3603 3706
6881 1276 913 939 858 791 924 894 885 857 867 826
6882 1277 3901 4005 4187 4027 3946 4097 4047 3955 4007 4108
6883 1278 4162 3926 4160 4251 4043 4040 4159 4202 4088 4201
6884 1279 3875 3669 3894 3748 3785 3802 3880 3808 3706 3818
6885 1280 460 529 367 465 496 454 414 456 494 415
6886 1281 4291 4401 4215 4200 4341 4314 4248 4242 4302 4208
6887 1282 3235 3448 3704 3790 3331 3582 3469 3537 3636 3749
6888 1283 835 740 761 873 786 750 796 846 805 810
6889 1284 665 656 579 650 654 617 624 653 652 612
6890 1285 1023 999 929 997 1010 959 971 1008 992 952
6891 1286 2557 2383 2436 2308 2468 2402 2487 2427 2341 2370
6892 1287 2901 3086 2720 2573 2983 2900 2791 2732 2817 2646
6893 1288 1698 1912 2077 1952 1802 1990 1887 1822 1928 2007
6894 1289 1072 1023 1095 1138 1046 1055 1083 1102 1076 1114
6895 1290 4035 4150 3937 3916 4092 4042 3988 3978 4033 3922
6896 1291 778 683 740 761 733 712 754 768 720 750
6897 1292 3757 3917 3608 4015 3837 3781 3683 3884 3960 3833
6898 1293 3688 3645 3134 3249 3673 3387 3413 3480 3450 3194
6899 1294 1760 1681 2024 1581 1715 1843 1896 1668 1621 1788
6900 1295 3155 3015 2762 2614 3072 2882 2950 2873 2800 2692
6901 1296 1999 1747 2110 1989 1880 1935 2051 1991 1867 2049
6902 1297 2251 2396 2353 2235 2321 2374 2294 2240 2310 2290
6903 1298 145 202 264 110 168 231 207 124 150 179
6904 1299 1558 1772 1762 1931 1655 1761 1651 1725 1847 1842
6905 1300 5594 5619 5601 5452 5609 5611 5597 5545 5574 5552
6906 1301 5325 5439 5261 5314 5377 5351 5293 5319 5373 5287
6907 1302 841 876 761 838 861 820 801 837 850 795
6908 1303 982 969 1095 929 972 1029 1034 950 946 1006
6909 1304 2387 2270 2174 2583 2333 2225 2317 2476 2421 2367
6910 1305 2174 1949 1821 1834 2067 1879 1998 2003 1890 1826
6911 1306 2245 2301 2387 2645 2279 2358 2359 2429 2465 2504
6912 1307 1891 2022 2245 1978 1954 2141 2082 1930 1997 2099
6913 1308 1821 1648 1674 1501 1718 1645 1699 1646 1573 1578
6914 1309 1674 1686 1891 1582 1669 1776 1739 1613 1628 1722
6915 1310 4327 4385 4648 4109 4345 4522 4476 4209 4240 4351
6916 1311 3986 3931 3679 3729 3951 3816 3843 3859 3834 3700
6917 1312 2730 2679 2821 3062 2702 2746 2770 2883 2860 2939
6918 1313 139 187 221 112 155 198 174 126 138 161
6919 1314 33 67 120 112 46 92 64 48 70 93
6920 1315 5359 5374 5225 4955 5368 5301 5296 5179 5191 5094
6921 1316 4234 4027 4288 4255 4129 4152 4261 4241 4136 4266
6922 1317 5528 5550 5346 5509 5538 5463 5445 5520 5530 5433
6923 1318 419 318 352 341 364 328 380 374 321 337
6924 1319 4469 4650 4655 4869 4568 4659 4560 4669 4755 4756
6925 1320 5011 4947 4945 4710 4970 4940 4969 4860 4822 4817
6926 1321 558 464 432 539 510 446 495 545 501 482
6927 1322 1256 1211 1138 1412 1235 1171 1196 1333 1297 1255
6928 1323 781 822 748 770 800 784 766 773 793 751
6929 1324 4537 4672 4910 4255 4596 4789 4715 4386 4450 4567
6930 1325 697 791 790 781 746 788 745 738 780 785
6931 1326 4439 4251 4505 4046 4339 4365 4466 4230 4146 4262
6932 1327 731 665 748 650 695 707 735 692 653 701
6933 1328 2885 3327 2909 3218 3087 3100 2890 3040 3275 3052
6934 1329 3530 3228 3011 3211 3372 3109 3258 3357 3214 3096
6935 1330 2681 2614 3159 3155 2666 2876 2912 2908 2873 3121
6936 1331 2092 2235 2140 2251 2154 2178 2109 2164 2240 2190
6937 1332 2151 1989 1895 1999 2068 1940 2019 2078 1991 1959
6938 1333 2308 2151 2282 2383 2227 2212 2289 2341 2264 2325
6939 1334 1952 2092 1780 1912 2010 1939 1861 1928 1996 1855
6940 1335 2573 2681 3091 3086 2644 2879 2820 2817 2877 3067
6941 1336 3384 3198 3005 3321 3293 3085 3186 3340 3247 3151
6942 1337 3154 2907 2894 2595 3023 2896 3017 2861 2748 2741
6943 1338 1205 1331 1172 1239 1260 1241 1188 1217 1276 1202
6944 1339 4343 4462 4153 4513 4408 4312 4244 4420 4481 4326
6945 1340 2443 2267 2174 2680 2355 2217 2300 2555 2455 2401
6946 1341 1417 1402 1674 1320 1397 1530 1540 1361 1349 1485
6947 1342 1402 1458 1674 1412 1425 1564 1530 1399 1430 1532
6948 1343 2267 2059 2174 2258 2165 2115 2217 2260 2150 2208
6949 1344 2379 2545 2245 2814 2466 2380 2304 2582 2673 2503
6950 1345 2183 2379 2245 2543 2287 2304 2210 2348 2450 2378
6951 1346 424 339 432 395 381 379 423 403 362 406
6952 1347 1636 1501 1821 1673 1567 1646 1721 1649 1577 1730
6953 1348 2645 2663 2387 3018 2665 2516 2504 2808 2825 2683
6954 1349 2663 2583 2387 3018 2638 2476 2516 2825 2780 2683
6955 1350 1753 1978 1891 1868 1859 1930 1819 1804 1917 1874
6956 1351 1834 1636 1821 1673 1726 1721 1826 1744 1649 1730
6957 1352 1582 1753 1891 1868 1663 1819 1722 1707 1804 1874
6958 1353 1185 1256 1095 1138 1215 1169 1136 1156 1196 1114
6959 1354 3758 3425 3694 3200 3613 3571 3723 3495 3317 3457
6960 1355 2484 2263 2410 2616 2369 2330 2445 2551 2431 2508
6961 1356 5601 5562 5594 5178 5583 5579 5597 5467 5412 5455
6962 1357 5521 5502 5401 5279 5510 5449 5465 5413 5393 5341
6963 1358 4937 5050 4648 4618 4994 4847 4796 4777 4828 4635
6964 1359 3177 3159 2681 2565 3182 2912 2918 2851 2843 2615
6965 1360 1942 2140 2092 1992 2037 2109 2009 1963 2058 2038
6966 1361 2073 1895 2151 2056 1983 2019 2108 2057 1973 2101
6967 1362 3448 3624 3869 3790 3533 3763 3703 3636 3712 3826
6968 1363 2282 2073 2151 2056 2169 2108 2212 2162 2057 2101
6969 1364 5306 5160 4999 4849 5240 5075 5170 5096 5001 4920
6970 1365 3091 3177 2681 2565 3149 2918 2879 2805 2851 2615
6971 1366 4401 4541 4457 4200 4467 4497 4427 4302 4354 4330
6972 1367 1780 1942 2092 1992 1857 2009 1939 1886 1963 2038
6973 1368 5151 5225 5325 4932 5194 5280 5247 5044 5080 5149
6974 1369 245 120 145 229 177 130 196 230 157 178
6975 1370 4283 4123 3957 4324 4190 4048 4120 4299 4214 4138
6976 1371 4084 4282 3997 4117 4181 4143 4044 4101 4191 4052
6977 1372 221 187 185 74 198 169 189 134 109 117
6978 1373 1536 1414 1673 1558 1472 1537 1600 1539 1476 1609
6979 1374 3046 2997 3018 3645 3027 3001 3025 3330 3315 3324
6980 1375 1552 1693 1868 1760 1615 1774 1695 1642 1719 1813
6981 1376 4880 5135 4844 4869 5004 4979 4857 4870 4990 4848
6982 1377 3422 3405 3078 3560 3410 3239 3245 3491 3479 3318
6983 1378 965 873 993 974 918 931 981 966 920 983
6984 1379 3891 3868 3717 3329 3876 3798 3809 3668 3649 3532
6985 1380 4823 4633 4793 5178 4729 4713 4803 5000 4900 4978
6986 1381 5154 4846 4955 5359 4995 4896 5059 5264 5125 5179
6987 1382 4704 4525 4462 4927 4604 4506 4577 4811 4721 4694
6988 1383 5115 4989 4875 5334 5063 4924 4982 5236 5183 5128
6989 1384 478 559 484 539 523 521 473 505 543 506
6990 1385 71 98 114 82 78 102 90 59 79 89
6991 1386 3215 3608 3782 3405 3401 3702 3523 3314 3503 3617
6992 1387 3769 3937 3643 3868 3857 3812 3711 3817 3905 3768
6993 1388 3530 3682 3228 3211 3614 3459 3372 3357 3451 3214
6994 1389 2885 3053 3327 3218 2968 3187 3087 3040 3125 3275
6995 1390 4525 4759 4582 4839 4634 4673 4559 4676 4794 4707
6996 1391 644 761 740 683 706 750 693 663 720 712
6997 1392 5321 5511 5452 5601 5418 5481 5385 5514 5565 5552
6998 1393 2991 3198 3321 3005 3083 3247 3142 2987 3085 3151
6999 1394 2710 2907 2595 2894 2794 2748 2654 2785 2896 2741
7000 1395 1475 1331 1239 1172 1394 1276 1343 1302 1241 1202
7001 1396 1376 1517 1317 1483 1445 1413 1342 1424 1500 1385
7002 1397 2637 2493 2329 2417 2562 2404 2470 2515 2451 2368
7003 1398 3434 3172 3531 2835 3302 3337 3484 3112 2995 3161
7004 1399 5355 5198 5440 5135 5282 5331 5403 5253 5166 5298
7005 1400 546 466 419 530 504 442 486 535 500 476
7006 1401 4564 4793 4650 4823 4688 4740 4613 4695 4803 4739
7007 1402 1245 1376 1317 1138 1304 1342 1272 1184 1238 1213
7008 1403 2806 2637 2329 2616 2722 2470 2558 2708 2607 2463
7009 1404 3676 3434 3531 3200 3561 3484 3606 3423 3309 3354
7010 1405 4797 4947 4710 4411 4871 4822 4751 4591 4674 4549
7011 1406 5601 5603 5511 5568 5604 5567 5565 5585 5586 5540
7012 1407 557 546 644 687 550 592 595 618 614 666
7013 1408 4793 4633 4748 5062 4713 4699 4783 4919 4842 4897
7014 1409 4106 4009 4276 4325 4064 4149 4189 4206 4158 4294
7015 1410 5254 5131 4910 5186 5188 5016 5081 5217 5156 5048
7016 1411 3219 3539 3433 3005 3373 3488 3323 3094 3256 3206
7017 1412 2521 2838 2763 2894 2675 2789 2639 2700 2863 2810
7018 1413 1187 1120 1033 1172 1151 1073 1104 1178 1143 1099
7019 1414 1245 1141 1089 1185 1192 1111 1159 1210 1157 1131
7020 1415 2806 3037 2872 2484 2931 2948 2837 2647 2749 2671
7021 1416 3676 3848 3570 3758 3772 3733 3620 3714 3801 3665
7022 1417 4915 4806 5085 4709 4863 4944 4993 4805 4760 4893
7023 1418 4814 4989 5085 4655 4912 5037 4950 4725 4808 4866
7024 1419 4563 4321 4301 4415 4431 4309 4424 4488 4353 4346
7025 1420 69 139 232 112 99 184 135 87 126 160
7026 1421 4311 4580 4325 4619 4437 4443 4317 4452 4590 4460
7027 1422 5197 4927 4942 4741 5067 4933 5070 4962 4829 4840
7028 1423 869 822 781 770 842 800 827 819 793 773
7029 1424 4323 4672 4537 4255 4499 4596 4429 4286 4450 4386
7030 1425 755 871 808 685 811 840 777 723 775 747
7031 1426 3417 3044 3010 3602 3222 3022 3204 3506 3313 3295
7032 1427 4423 4184 4170 4245 4303 4179 4295 4334 4210 4205
7033 1428 3782 3793 3327 3929 3786 3595 3584 3851 3861 3693
7034 1429 3643 3129 3228 3494 3388 3179 3430 3569 3310 3344
7035 1430 4123 4343 4153 4513 4239 4244 4142 4305 4420 4326
7036 1431 5548 5573 5594 5401 5561 5587 5577 5487 5508 5529
7037 1432 4282 4469 4655 4709 4379 4560 4465 4485 4585 4680
7038 1433 318 221 352 112 263 281 328 213 161 238
7039 1434 4412 4316 4525 4619 4367 4405 4472 4517 4458 4566
7040 1435 4525 4316 4276 4619 4405 4306 4397 4566 4458 4436
7041 1436 586 661 546 687 625 602 565 632 672 614
7042 1437 4882 4988 4793 5178 4948 4886 4852 5028 5082 4978
7043 1438 1746 1789 2024 1581 1770 1907 1884 1657 1683 1788
7044 1439 3359 3633 3134 3249 3516 3376 3241 3306 3443 3194
7045 1440 1914 2027 1762 1931 1980 1900 1832 1916 1977 1842
7046 1441 2263 2199 2616 2258 2232 2395 2431 2253 2219 2423
7047 1442 3425 3342 3200 2814 3385 3266 3317 3098 3064 2996
7048 1443 3803 3336 3643 3494 3609 3497 3732 3660 3407 3569
7049 1444 4118 4025 3782 3929 4070 3906 3949 4024 3976 3851
7050 1445 5038 4727 4810 4684 4884 4774 4926 4856 4698 4749
7051 1446 4013 4099 4321 4046 4062 4199 4166 4030 4069 4171
7052 1447 325 269 383 253 291 323 351 287 252 320
7053 1448 4301 4554 4563 4415 4425 4558 4424 4346 4482 4488
7054 1449 586 546 484 622 565 514 536 601 577 549
7055 1450 4793 4988 4875 5178 4886 4943 4843 4978 5082 5020
7056 1451 1747 1644 1946 1840 1690 1783 1841 1784 1734 1897
7057 1452 2396 2662 2440 2339 2533 2548 2413 2364 2482 2388
7058 1453 3015 2802 2513 2406 2921 2658 2752 2697 2592 2459
7059 1454 4245 4605 4423 4331 4419 4519 4334 4285 4456 4370
7060 1455 3602 3669 3417 3748 3642 3547 3506 3670 3706 3603
7061 1456 1644 1698 1946 1840 1670 1816 1783 1734 1756 1897
7062 1457 2802 2557 2513 2406 2696 2531 2658 2592 2471 2459
7063 1458 683 557 644 687 620 595 663 682 618 666
7064 1459 2662 2901 2440 2339 2773 2661 2548 2482 2593 2388
7065 1460 82 83 98 203 75 86 79 131 129 140
7066 1461 5601 5575 5562 5321 5589 5570 5583 5514 5478 5464
7067 1462 1185 1107 1141 1089 1144 1124 1157 1131 1098 1111
7068 1463 1185 1107 1089 960 1144 1098 1131 1063 1028 1018
7069 1464 2484 2703 3037 2872 2585 2862 2749 2671 2776 2948
7070 1465 2484 2703 2872 3062 2585 2776 2671 2753 2871 2965
7071 1466 3758 3928 3848 3570 3844 3883 3801 3665 3778 3733
7072 1467 3758 3928 3570 3729 3844 3778 3665 3736 3827 3647
7073 1468 4810 4537 4910 4684 4671 4715 4859 4749 4599 4790
7074 1469 4849 4880 4536 4999 4865 4703 4689 4920 4935 4762
7075 1470 4877 4775 4797 4415 4815 4781 4832 4644 4588 4600
7076 1471 5200 5144 4858 4732 5177 4998 5030 4961 4930 4792
7077 1472 4187 4323 4255 4200 4254 4286 4218 4192 4259 4224
7078 1473 4160 4013 4046 3790 4087 4030 4104 3981 3903 3918
7079 1474 2381 2199 2255 2258 2286 2222 2315 2305 2219 2249
7080 1475 1118 1211 1250 1412 1162 1226 1181 1242 1297 1325
7081 1476 3080 3342 2764 2814 3209 3033 2928 2944 3064 2779
7082 1477 3870 4009 4109 4153 3943 4054 3990 4026 4089 4126
7083 1478 2452 2648 2437 2543 2547 2537 2439 2488 2580 2478
7084 1479 3133 2848 2588 2680 2984 2721 2849 2893 2754 2636
7085 1480 1145 1087 1218 1320 1113 1149 1182 1221 1190 1264
7086 1481 306 292 245 120 298 261 270 211 201 177
7087 1482 4435 4118 4282 4331 4278 4198 4348 4372 4213 4296
7088 1483 222 275 221 112 244 247 208 147 193 161
7089 1484 4541 4743 4457 4200 4641 4589 4497 4354 4454 4330
7090 1485 4846 4839 4955 4619 4837 4892 4896 4731 4724 4786
7091 1486 5261 5139 5050 4932 5206 5098 5162 5107 5032 4977
7092 1487 3894 3803 4123 3748 3852 3974 4011 3818 3771 3932
7093 1488 776 860 770 887 817 812 771 834 874 831
7094 1489 5290 5321 5452 5178 5300 5385 5370 5232 5249 5329
7095 1490 264 378 339 229 322 357 299 240 300 279
7096 1491 175 71 114 112 108 90 136 123 80 106
7097 1492 5115 4875 4988 5327 4982 4943 5060 5230 5122 5175
7098 1493 484 559 586 621 521 568 536 547 583 599
7099 1494 2055 1869 2195 2042 1967 2033 2131 2046 1955 2119
7100 1495 3049 3000 3515 3370 3030 3244 3265 3195 3170 3435
7101 1496 1315 1414 1222 1441 1360 1308 1262 1366 1420 1323
7102 1497 2910 2997 3365 3249 2959 3168 3116 3059 3105 3308
7103 1498 1685 1860 1956 1931 1764 1908 1810 1793 1889 1941
7104 1499 1552 1419 1338 1581 1480 1377 1437 1561 1490 1455
7105 1500 876 835 761 873 855 796 820 872 846 810
7106 1501 3624 3828 3869 3790 3741 3845 3763 3712 3805 3826
7107 1502 969 891 871 841 932 878 919 905 868 849
7108 1503 2679 2730 3044 3062 2702 2880 2850 2860 2883 3045
7109 1504 3931 3986 4184 3729 3951 4083 4060 3834 3859 3965
7110 1505 4877 4668 4563 4415 4770 4611 4712 4644 4542 4488
7111 1506 4106 4276 4316 4311 4189 4306 4212 4197 4287 4310
7112 1507 33 10 11 23 16 7 17 21 8 13
7113 1508 5359 5383 5496 5308 5372 5442 5427 5333 5349 5410
7114 1509 5200 5272 5359 4846 5242 5322 5288 5014 5066 5125
7115 1510 82 34 33 71 51 30 50 59 41 36
7116 1511 3219 3133 2680 3005 3178 2893 2938 3094 3058 2826
7117 1512 1187 1145 1320 1172 1166 1221 1246 1178 1155 1237
7118 1513 2521 2452 2543 2894 2480 2488 2529 2700 2660 2709
7119 1514 3966 4225 4215 4291 4098 4220 4091 4121 4258 4248
7120 1515 3416 3163 3704 3235 3290 3432 3567 3320 3197 3469
7121 1516 1042 1040 948 923 1037 989 990 976 979 935
7122 1517 4738 4986 5151 5225 4864 5074 4938 4974 5119 5194
7123 1518 2760 2910 3365 2680 2839 3116 3043 2715 2775 2993
7124 1519 1249 1315 1222 1320 1273 1262 1232 1278 1310 1259
7125 1520 1419 1312 1338 1412 1358 1322 1377 1407 1353 1370
7126 1521 1860 2069 1956 2258 1970 2004 1908 2054 2153 2096
7127 1522 2257 2055 2195 2543 2156 2131 2220 2385 2281 2352
7128 1523 3000 2902 3515 2814 2956 3192 3244 2903 2853 3139
7129 1524 791 858 790 781 826 824 788 780 818 785
7130 1525 4251 4160 4505 4046 4201 4332 4365 4146 4104 4262
7131 1526 4027 4187 4288 4255 4108 4246 4152 4136 4218 4266
7132 1527 82 33 120 94 50 64 96 76 54 101
7133 1528 5200 5359 5225 4846 5288 5296 5215 5014 5125 5029
7134 1529 5562 5533 5499 5285 5553 5524 5534 5448 5421 5395
7135 1530 3957 3643 3937 3916 3821 3812 3944 3933 3797 3922
7136 1531 3997 3782 3608 4015 3885 3702 3823 4003 3896 3833
7137 1532 3969 3875 4109 4133 3921 3994 4037 4049 4006 4116
7138 1533 5143 4823 4844 5178 4975 4830 4983 5161 5000 5006
7139 1534 5562 5548 5594 5178 5556 5577 5579 5412 5394 5455
7140 1535 841 891 929 969 868 908 886 905 932 946
7141 1536 661 767 761 687 716 760 714 672 724 722
7142 1537 145 264 229 110 207 240 178 124 179 152
7143 1538 5325 5261 4932 5314 5293 5107 5149 5319 5287 5141
7144 1539 4814 4806 4435 4655 4807 4624 4625 4725 4730 4548
7145 1540 3870 3875 3894 4153 3872 3880 3888 4026 4012 4034
7146 1541 873 778 740 761 828 754 805 810 768 750
7147 1542 3868 4035 3937 3643 3947 3988 3905 3768 3860 3812
7148 1543 3405 3757 3608 3782 3605 3683 3503 3617 3765 3702
7149 1544 2730 3129 3336 3494 2930 3237 3014 3076 3310 3407
7150 1545 3986 3793 4025 3929 3882 3913 3999 3945 3861 3976
7151 1546 4480 4508 4810 4537 4490 4665 4646 4507 4527 4671
7152 1547 887 822 770 776 852 793 831 834 797 771
7153 1548 4215 4323 4005 4200 4267 4157 4111 4208 4259 4105
7154 1549 948 869 939 770 907 904 944 863 819 856
7155 1550 3704 4013 3926 3790 3867 3968 3819 3749 3903 3855
7156 1551 4350 4642 4536 4684 4496 4581 4441 4523 4658 4597
7157 1552 677 621 539 622 645 575 606 643 615 572
7158 1553 5327 5516 5334 5207 5428 5431 5332 5270 5371 5276
7159 1554 4727 4480 4810 4684 4598 4646 4774 4698 4578 4749
7160 1555 4462 4525 4276 4741 4506 4397 4359 4593 4629 4500
7161 1556 4642 4849 4536 4999 4747 4689 4581 4812 4920 4762
7162 1557 4797 4557 4415 4710 4679 4484 4600 4751 4636 4552
7163 1558 4160 4321 4505 4046 4243 4393 4332 4104 4171 4262
7164 1559 1317 1185 1245 1138 1244 1210 1272 1213 1156 1184
7165 1560 2329 2484 2806 2616 2403 2647 2558 2463 2551 2708
7166 1561 3531 3758 3676 3200 3651 3714 3606 3354 3495 3423
7167 1562 4150 3957 3937 3916 4053 3944 4042 4033 3933 3922
7168 1563 3917 3997 3608 4015 3948 3823 3781 3960 4003 3833
7169 1564 478 401 383 352 438 388 425 411 366 358
7170 1565 546 419 484 512 486 451 514 527 467 492
7171 1566 4650 4793 4875 5178 4740 4843 4763 4914 4978 5020
7172 1567 926 876 999 997 900 936 953 951 934 992
7173 1568 3235 3624 3790 3748 3421 3712 3537 3502 3684 3767
7174 1569 4291 4541 4200 4331 4403 4354 4242 4308 4426 4265
7175 1570 4880 4849 5198 4999 4865 5025 5043 4935 4920 5105
7176 1571 767 841 838 871 804 837 798 814 849 848
7177 1572 4311 4440 4619 4316 4366 4529 4452 4310 4364 4458
7178 1573 929 999 876 997 959 936 902 952 992 934
7179 1574 4187 4537 4288 4255 4360 4406 4246 4218 4386 4266
7180 1575 2024 2042 1760 1868 2028 1905 1896 1948 1958 1813
7181 1576 2024 2042 1868 2295 2028 1958 1948 2158 2163 2085
7182 1577 1760 2024 1868 1581 1896 1948 1813 1668 1788 1709
7183 1578 1478 1581 1256 1412 1525 1403 1359 1440 1489 1333
7184 1579 1478 1581 1412 1692 1525 1489 1440 1589 1629 1547
7185 1580 1478 1581 1692 1623 1525 1629 1589 1553 1598 1656
7186 1581 1692 1478 1623 1483 1589 1553 1656 1591 1477 1550
7187 1582 1692 1478 1483 1412 1589 1477 1591 1547 1440 1443
7188 1583 1256 1478 1412 1138 1359 1440 1333 1196 1281 1255
7189 1584 2191 1931 2263 2258 2064 2094 2224 2221 2090 2253
7190 1585 2191 1931 2258 2155 2064 2090 2221 2171 2039 2192
7191 1586 2191 1931 2155 2259 2064 2039 2171 2223 2091 2197
7192 1587 2155 2191 2259 2417 2171 2223 2197 2280 2298 2322
7193 1588 2155 2191 2417 2258 2171 2298 2280 2192 2221 2326
7194 1589 2263 2191 2258 2616 2224 2221 2253 2431 2389 2423
7195 1590 3370 3134 3645 3018 3246 3387 3508 3189 3071 3324
7196 1591 3370 3134 3018 2881 3246 3071 3189 3103 2998 2941
7197 1592 3134 3645 3018 3249 3387 3324 3071 3194 3450 3120
7198 1593 1762 1441 1558 1673 1596 1493 1651 1711 1554 1609
7199 1594 1762 1441 1673 1625 1596 1554 1711 1688 1528 1634
7200 1595 1558 1762 1673 1931 1651 1711 1609 1725 1842 1792
7201 1596 1762 1673 1931 2155 1711 1792 1842 1965 1910 2039
7202 1597 3183 3370 3425 2814 3277 3392 3307 2992 3074 3098
7203 1598 3183 3370 2814 2881 3277 3074 2992 3021 3103 2845
7204 1599 3183 3370 2881 3335 3277 3103 3021 3251 3346 3088
7205 1600 2881 3183 3335 2835 3021 3251 3088 2854 3002 3070
7206 1601 2881 3183 2835 2814 3021 3002 2854 2845 2992 2822
7207 1602 3425 3183 2814 3200 3307 2992 3098 3317 3185 2996
7208 1603 1441 1393 1187 1320 1418 1280 1296 1373 1347 1246
7209 1604 1441 1393 1320 1625 1418 1347 1373 1528 1507 1462
7210 1605 1441 1393 1625 1535 1418 1507 1528 1486 1461 1585
7211 1606 1393 1625 1535 1698 1507 1585 1461 1541 1660 1604
7212 1607 1625 1535 1698 1952 1585 1604 1660 1779 1723 1822
7213 1608 1393 1187 1320 1172 1280 1246 1347 1267 1178 1237
7214 1609 1393 1320 1625 1483 1347 1462 1507 1434 1392 1551
7215 1610 3249 3016 3219 2680 3122 3106 3230 2946 2840 2938
7216 1611 3249 3016 2680 2784 3122 2840 2946 3009 2904 2728
7217 1612 3249 3016 2784 3207 3122 2904 3009 3223 3099 2989
7218 1613 3016 2784 3207 2901 2904 2989 3099 2949 2842 3020
7219 1614 2784 3207 2901 2573 2989 3020 2842 2682 2868 2732
7220 1615 3016 3219 2680 3005 3106 2938 2840 3003 3094 2826
7221 1616 3016 2680 2784 2417 2840 2728 2904 2698 2540 2586
7222 1617 5355 5440 5502 5135 5403 5473 5435 5253 5298 5337
7223 1618 2042 2382 2521 2543 2203 2442 2271 2275 2457 2529
7224 1619 2042 2382 2543 2295 2203 2457 2275 2163 2338 2407
7225 1620 2042 2382 2295 2448 2203 2338 2163 2234 2411 2372
7226 1621 2382 2295 2448 2557 2338 2372 2411 2461 2422 2483
7227 1622 2295 2448 2557 2308 2372 2483 2422 2297 2371 2427
7228 1623 2382 2521 2543 2894 2442 2529 2457 2617 2700 2709
7229 1624 2382 2543 2295 2835 2457 2407 2338 2587 2685 2549
7230 1625 325 401 275 352 361 333 296 326 366 305
7231 1626 2614 2406 2881 3015 2523 2635 2745 2800 2697 2947
7232 1627 2573 2565 2784 3207 2581 2677 2682 2868 2858 2989
7233 1628 2308 2056 2295 2448 2176 2170 2297 2371 2242 2372
7234 1629 1989 1840 1692 1623 1906 1757 1836 1795 1717 1656
7235 1630 2235 2339 2155 2396 2288 2246 2184 2310 2364 2273
7236 1631 1952 1992 1625 1535 1964 1800 1779 1723 1741 1585
7237 1632 2339 2573 2784 2901 2460 2682 2554 2593 2732 2842
7238 1633 2406 2308 2295 2557 2366 2297 2346 2471 2427 2422
7239 1634 2565 2614 2881 3335 2601 2745 2717 2922 2951 3088
7240 1635 1840 1952 1625 1698 1885 1779 1724 1756 1822 1660
7241 1636 2056 1989 1692 1623 2014 1836 1878 1830 1795 1656
7242 1637 1992 2235 2155 2259 2102 2184 2074 2112 2238 2197
7243 1638 5504 5447 5297 5340 5471 5379 5402 5424 5391 5317
7244 1639 1107 1141 1089 1042 1124 1111 1098 1069 1092 1059
7245 1640 3928 3848 3570 3966 3883 3733 3778 3939 3911 3799
7246 1641 2703 3037 2872 3416 2862 2948 2776 3032 3220 3119
7247 1642 3327 3679 3250 3729 3509 3467 3292 3538 3700 3500
7248 1643 2651 3228 2821 3062 2924 3013 2733 2841 3132 2939
7249 1644 5297 5447 5346 5340 5379 5396 5318 5317 5391 5338
7250 1645 5521 5548 5279 5401 5535 5437 5413 5465 5487 5341
7251 1646 5493 5548 5562 5143 5526 5556 5531 5335 5382 5397
7252 1647 718 621 622 586 669 615 668 646 599 601
7253 1648 5088 4873 4945 4947 4972 4905 5013 5012 4906 4940
7254 1649 4150 4324 3957 3916 4229 4138 4053 4033 4115 3933
7255 1650 3917 4117 3997 4015 4023 4052 3948 3960 4063 4003
7256 1651 965 864 873 974 915 865 918 966 912 920
7257 1652 3422 3775 3405 3560 3626 3618 3410 3491 3671 3479
7258 1653 3891 4061 3868 3329 3980 3962 3876 3668 3780 3649
7259 1654 3434 3259 3050 3200 3343 3146 3234 3309 3217 3115
7260 1655 1376 1287 1268 1138 1332 1270 1318 1238 1200 1199
7261 1656 2637 2972 2628 2616 2786 2781 2623 2607 2774 2613
7262 1657 860 770 887 923 812 831 874 889 845 903
7263 1658 3183 2835 2814 3200 3002 2822 2992 3185 3006 2996
7264 1659 2191 2417 2258 2616 2298 2326 2221 2389 2505 2423
7265 1660 1478 1483 1412 1138 1477 1443 1440 1281 1284 1255
7266 1661 4469 4650 4869 4536 4568 4755 4669 4502 4584 4696
7267 1662 1095 1054 1138 960 1070 1094 1114 1020 1005 1045
7268 1663 4955 4846 4619 5225 4896 4731 4786 5094 5029 4918
7269 1664 5325 5374 5314 4932 5354 5348 5319 5149 5184 5141
7270 1665 582 491 579 558 532 538 578 567 525 564
7271 1666 648 628 698 593 636 655 671 619 608 642
7272 1667 145 67 110 229 103 85 124 178 127 152
7273 1668 4343 4462 4513 4710 4408 4481 4420 4528 4579 4601
7274 1669 71 114 112 94 90 106 80 72 104 97
7275 1670 114 112 94 215 106 97 104 156 149 143
7276 1671 71 114 94 82 90 104 72 59 89 76
7277 1672 94 114 215 269 104 156 143 170 191 241
7278 1673 94 114 269 82 104 191 170 76 89 151
7279 1674 114 112 215 269 106 149 156 191 163 241
7280 1675 2410 2302 2651 2616 2356 2464 2522 2508 2449 2634
7281 1676 3694 3552 3250 3200 3628 3395 3477 3457 3366 3221
7282 1677 2885 2909 2763 3218 2890 2823 2811 3040 3052 2979
7283 1678 3530 3011 3433 3211 3258 3212 3482 3357 3096 3322
7284 1679 3894 4123 4153 4133 4011 4142 4034 4017 4122 4140
7285 1680 4666 4417 4327 4411 4545 4363 4487 4538 4407 4358
7286 1681 5321 5452 5178 5601 5385 5329 5249 5514 5552 5467
7287 1682 891 841 767 871 868 804 832 878 849 814
7288 1683 2909 2648 2763 3200 2768 2699 2823 3039 2905 2963
7289 1684 3011 2848 3433 2616 2933 3118 3212 2793 2727 2990
7290 1685 3717 3891 3329 3794 3809 3668 3532 3755 3842 3592
7291 1686 993 965 974 1024 981 966 983 1007 994 998
7292 1687 3078 3422 3560 3745 3245 3491 3318 3412 3601 3650
7293 1688 3016 3321 3005 2991 3160 3151 3003 2999 3142 2987
7294 1689 1393 1239 1172 1475 1313 1202 1267 1433 1343 1302
7295 1690 718 755 685 687 737 723 700 694 717 681
7296 1691 2382 2595 2894 2710 2481 2741 2617 2539 2654 2785
7297 1692 3250 2909 3327 3218 3068 3100 3292 3231 3052 3275
7298 1693 3011 3228 2651 3211 3109 2924 2813 3096 3214 2914
7299 1694 1478 1317 1517 1483 1389 1413 1496 1477 1385 1500
7300 1695 2191 2329 2493 2417 2265 2404 2335 2298 2368 2451
7301 1696 3183 3531 3172 2835 3350 3337 3171 3002 3161 2995
7302 1697 5068 5197 4955 4619 5136 5076 5008 4838 4907 4786
7303 1698 5306 5198 4849 4999 5256 5025 5096 5170 5105 4920
7304 1699 5306 5198 4999 5346 5256 5105 5170 5323 5275 5190
7305 1700 4435 4282 4655 4709 4348 4465 4548 4569 4485 4680
7306 1701 221 275 352 112 247 305 281 161 193 238
7307 1702 203 269 114 82 235 191 148 131 151 89
7308 1703 1211 1338 1312 1412 1265 1322 1254 1297 1370 1353
7309 1704 2199 1956 2069 2258 2083 2004 2136 2219 2096 2153
7310 1705 3365 3133 2760 2680 3255 2943 3043 2993 2893 2715
7311 1706 1222 1145 1249 1320 1180 1194 1232 1259 1221 1278
7312 1707 3342 3515 2902 2814 3436 3192 3104 3064 3139 2853
7313 1708 2195 2452 2257 2543 2319 2343 2220 2352 2488 2385
7314 1709 2751 2991 2417 3005 2874 2688 2570 2867 2987 2694
7315 1710 1469 1475 1483 1172 1464 1474 1473 1298 1302 1307
7316 1711 2955 2710 2835 2894 2832 2766 2892 2925 2785 2859
7317 1712 316 378 264 250 343 322 282 274 310 246
7318 1713 4563 4692 4321 4439 4621 4489 4431 4498 4562 4368
7319 1714 2972 2751 2628 3005 2857 2686 2781 2980 2867 2799
7320 1715 2628 2972 3005 2616 2781 2980 2799 2613 2774 2792
7321 1716 3005 2628 2616 2680 2799 2613 2792 2826 2650 2642
7322 1717 3259 2955 3050 2894 3093 2994 3146 3066 2925 2969
7323 1718 3050 3259 2894 3200 3146 3066 2969 3115 3217 3035
7324 1719 2894 3050 3200 2452 2969 3115 3035 2660 2726 2782
7325 1720 1287 1469 1268 1172 1374 1362 1270 1223 1298 1216
7326 1721 1268 1287 1172 1138 1270 1223 1216 1199 1200 1153
7327 1722 1172 1268 1138 1320 1216 1199 1153 1237 1291 1212
7328 1723 3133 3433 2848 3005 3284 3118 2984 3058 3206 2917
7329 1724 2452 2763 2648 3200 2596 2699 2547 2782 2963 2905
7330 1725 1145 1033 1087 1172 1088 1056 1113 1155 1099 1122
7331 1726 5197 5308 4955 5494 5259 5148 5076 5358 5407 5271
7332 1727 5566 5509 5334 5207 5539 5430 5476 5426 5369 5276
7333 1728 112 94 215 229 97 143 149 154 144 218
7334 1729 94 215 229 120 143 218 144 101 153 157
7335 1730 215 112 229 341 149 154 218 271 227 277
7336 1731 4875 4655 4650 4869 4776 4659 4763 4868 4756 4755
7337 1732 352 484 419 341 417 451 380 337 407 374
7338 1733 5131 5392 5297 5186 5273 5342 5222 5156 5295 5241
7339 1734 4327 4183 4109 4411 4250 4144 4209 4358 4293 4252
7340 1735 2024 2206 2042 2448 2117 2120 2028 2229 2324 2234
7341 1736 1762 1652 1441 1535 1702 1543 1596 1632 1594 1486
7342 1737 3427 3134 3370 3335 3280 3246 3391 3394 3227 3346
7343 1738 5135 5279 4844 5401 5209 5069 4979 5281 5341 5157
7344 1739 5516 5432 5452 5178 5475 5441 5485 5364 5311 5329
7345 1740 579 491 481 558 538 483 528 564 525 518
7346 1741 5225 5023 5200 4732 5137 5123 5215 4968 4874 4961
7347 1742 120 233 82 269 162 141 96 182 243 151
7348 1743 5381 5139 5261 5235 5266 5206 5316 5310 5185 5243
7349 1744 269 256 114 112 257 186 191 163 158 106
7350 1745 3365 3514 3249 2997 3453 3374 3308 3168 3243 3105
7351 1746 2195 1921 2042 1869 2061 1981 2119 2033 1898 1955
7352 1747 644 683 687 761 663 682 666 706 720 722
7353 1748 1222 1345 1441 1414 1275 1384 1323 1308 1380 1420
7354 1749 3578 3515 3370 3049 3556 3435 3466 3305 3265 3195
7355 1750 5568 5516 5452 5619 5543 5485 5525 5599 5584 5574
7356 1751 1520 1338 1581 1552 1428 1455 1549 1531 1437 1561
7357 1752 1680 1956 1931 1685 1808 1941 1794 1679 1810 1793
7358 1753 3519 3235 3044 3748 3367 3126 3270 3639 3502 3396
7359 1754 4473 4291 4184 4331 4374 4232 4328 4398 4308 4249
7360 1755 806 923 871 838 866 892 836 815 877 848
7361 1756 256 203 114 98 228 148 186 165 140 102
7362 1757 2410 2594 2616 3062 2500 2598 2508 2718 2812 2824
7363 1758 3694 3866 3200 3729 3789 3591 3457 3707 3800 3470
7364 1759 4257 4183 4554 4301 4217 4352 4402 4284 4236 4425
7365 1760 5432 5568 5452 5511 5518 5525 5441 5470 5540 5481
7366 1761 841 929 960 969 886 942 899 905 946 962
7367 1762 4276 4153 4462 4513 4222 4312 4359 4384 4326 4481
7368 1763 5308 5068 4955 5154 5199 5008 5148 5237 5109 5059
7369 1764 5135 4880 5198 4869 5004 5043 5166 4990 4870 5034
7370 1765 2248 2174 1821 2258 2207 1998 2030 2247 2208 2031
7371 1766 2314 2245 2387 2814 2276 2359 2391 2550 2503 2579
7372 1767 2174 2248 2387 2680 2207 2350 2317 2401 2441 2511
7373 1768 2245 2314 1891 2543 2276 2107 2082 2378 2412 2188
7374 1769 1674 1743 1821 1320 1705 1729 1699 1485 1514 1548
7375 1770 1743 1674 1891 1412 1705 1739 1771 1569 1532 1626
7376 1771 1821 1901 2248 2258 1851 2072 2030 2031 2071 2247
7377 1772 2387 2462 2314 2814 2424 2434 2391 2579 2625 2550
7378 1773 2462 2387 2248 2680 2424 2350 2390 2553 2511 2441
7379 1774 1966 1891 2314 2543 1927 2107 2145 2230 2188 2412
7380 1775 1901 1821 1743 1320 1851 1729 1769 1586 1548 1514
7381 1776 1891 1966 1743 1412 1927 1814 1771 1626 1666 1569
7382 1777 3539 3005 3384 3282 3256 3186 3461 3393 3123 3326
7383 1778 2838 2894 3154 3615 2863 3017 2986 3199 3233 3377
7384 1779 1120 1172 1205 1140 1143 1188 1160 1125 1152 1170
7385 1780 1211 1118 1138 1412 1162 1126 1171 1297 1242 1255
7386 1781 4234 4027 4255 4015 4129 4136 4241 4119 4018 4134
7387 1782 3794 3282 3416 3329 3566 3339 3630 3592 3300 3364
7388 1783 3745 3615 3966 3560 3677 3813 3853 3650 3577 3795
7389 1784 1024 1140 1042 974 1079 1090 1030 998 1049 1002
7390 1785 4439 4251 4046 3916 4339 4146 4230 4165 4082 3982
7391 1786 4541 4743 4200 4331 4641 4454 4354 4426 4530 4265
7392 1787 4423 4245 4331 4184 4334 4285 4370 4303 4210 4249
7393 1788 3417 3602 3748 3044 3506 3670 3603 3222 3313 3396
7394 1789 4806 5085 4709 4655 4944 4893 4760 4730 4866 4680
7395 1790 2881 2614 3015 3335 2745 2800 2947 3088 2951 3143
7396 1791 3015 2881 3335 2835 2947 3088 3143 2926 2854 3070
7397 1792 2155 2235 2396 2259 2184 2310 2273 2197 2238 2316
7398 1793 2396 2155 2259 2417 2273 2197 2316 2399 2280 2322
7399 1794 4927 4942 4741 4462 4933 4840 4829 4694 4702 4593
7400 1795 5160 5297 4999 4684 5233 5164 5075 4916 5002 4841
7401 1796 3018 3134 3249 2784 3071 3194 3120 2891 2954 3009
7402 1797 2024 1868 1581 1692 1948 1709 1788 1849 1765 1629
7403 1798 5608 5573 5550 5566 5592 5563 5582 5590 5569 5554
7404 1799 5374 5494 5314 5197 5436 5409 5348 5291 5358 5262
7405 1800 4005 3745 3966 3560 3874 3853 3984 3815 3650 3795
7406 1801 939 1024 1042 974 980 1030 986 949 998 1002
7407 1802 3926 3794 3416 3329 3862 3630 3730 3689 3592 3364
7408 1803 67 39 110 69 49 65 85 58 45 91
7409 1804 491 378 367 432 436 368 429 459 398 392
7410 1805 5154 5308 5383 5359 5237 5349 5283 5264 5333 5372
7411 1806 3624 3828 3790 3748 3741 3805 3712 3684 3787 3767
7412 1807 325 269 253 112 291 252 287 206 163 181
7413 1808 4732 4440 4858 4619 4583 4645 4792 4667 4529 4736
7414 1809 60 23 25 112 38 18 35 84 56 52
7415 1810 4849 4642 5160 4999 4747 4895 5001 4920 4812 5075
7416 1811 698 726 781 697 710 752 744 688 709 738
7417 1812 4984 5285 5357 5178 5147 5320 5193 5083 5229 5274
7418 1813 4215 4005 3966 3929 4111 3984 4091 4072 3953 3935
7419 1814 3704 3926 3416 3494 3819 3730 3567 3596 3752 3438
7420 1815 948 939 1042 838 944 986 990 890 882 933
7421 1816 4915 4806 4709 4331 4863 4760 4805 4610 4555 4512
7422 1817 683 778 687 761 733 732 682 720 768 722
7423 1818 5197 4927 4741 4619 5067 4829 4962 4907 4765 4677
7424 1819 3969 3875 4133 3748 3921 4006 4049 3854 3808 3938
7425 1820 25 23 10 33 18 8 12 22 21 16
7426 1821 4316 4412 4540 4619 4367 4470 4414 4458 4517 4572
7427 1822 5139 4867 4648 4945 5003 4757 4891 5042 4899 4798
7428 1823 5327 5516 5207 5178 5428 5371 5270 5250 5364 5189
7429 1824 318 352 341 112 328 337 321 213 238 227
7430 1825 4655 4469 4869 4709 4560 4669 4756 4680 4585 4784
7431 1826 306 395 383 215 350 384 338 259 307 303
7432 1827 5174 5432 4988 5290 5313 5244 5078 5231 5362 5150
7433 1828 5357 5285 5533 5562 5320 5421 5460 5479 5448 5553
7434 1829 4251 4160 4046 3881 4201 4104 4146 4071 4028 3959
7435 1830 5297 5306 4999 5346 5303 5170 5164 5318 5323 5190
7436 1831 4027 4187 4255 3925 4108 4218 4136 3975 4058 4090
7437 1832 383 325 253 352 351 287 320 358 326 301
7438 1833 4839 5154 4955 5068 4992 5059 4892 4952 5109 5008
7439 1834 2662 2396 2417 2339 2533 2399 2530 2482 2364 2376
7440 1835 1644 1747 1483 1840 1690 1608 1563 1734 1784 1650
7441 1836 2802 3015 2835 2406 2921 2926 2815 2592 2697 2603
7442 1837 491 529 481 367 511 503 483 429 454 422
7443 1838 2199 2381 2616 2258 2286 2492 2395 2219 2305 2423
7444 1839 3342 3080 3200 2814 3209 3136 3266 3064 2944 2996
7445 1840 4955 5308 5154 5359 5148 5237 5059 5179 5333 5264
7446 1841 245 339 395 229 289 362 319 230 279 314
7447 1842 4988 4882 5290 5178 4948 5102 5150 5082 5028 5232
7448 1843 4540 4846 4619 4412 4690 4731 4572 4470 4627 4517
7449 1844 4183 4417 4554 4411 4298 4494 4352 4293 4407 4478
7450 1845 203 114 98 82 148 102 140 131 89 79
7451 1846 4151 4440 4316 4540 4290 4364 4227 4335 4486 4414
7452 1847 112 71 94 33 80 72 97 48 36 54
7453 1848 71 74 112 222 68 88 80 132 137 147
7454 1849 806 718 770 687 759 742 787 743 694 729
7455 1850 98 175 114 256 128 136 102 165 212 186
7456 1851 5568 5452 5511 5601 5525 5481 5540 5585 5552 5565
7457 1852 5511 5290 5452 5432 5411 5370 5481 5470 5362 5441
7458 1853 2751 2637 2628 2417 2689 2623 2686 2570 2515 2519
7459 1854 1469 1376 1268 1483 1421 1318 1362 1473 1424 1371
7460 1855 2872 2806 2484 2616 2837 2647 2671 2740 2708 2551
7461 1856 2484 2872 2616 3062 2671 2740 2551 2753 2965 2824
7462 1857 2872 2616 3062 3211 2740 2824 2965 3029 2897 3127
7463 1858 3062 2872 3211 3329 2965 3029 3127 3196 3082 3272
7464 1859 3211 3062 3329 3228 3127 3196 3272 3214 3132 3273
7465 1860 3062 2872 3329 3416 2965 3082 3196 3226 3119 3364
7466 1861 2872 3211 3329 3005 3029 3272 3082 2937 3090 3156
7467 1862 2872 2616 3211 3005 2740 2897 3029 2937 2792 3090
7468 1863 2872 2616 3005 2972 2740 2792 2937 2916 2774 2980
7469 1864 2955 3434 3050 2835 3188 3234 2994 2892 3112 2940
7470 1865 1089 1245 1185 1138 1159 1210 1131 1108 1184 1156
7471 1866 1185 1089 1138 960 1131 1108 1156 1063 1018 1045
7472 1867 1089 1138 960 997 1108 1045 1018 1036 1062 975
7473 1868 960 1089 997 974 1018 1036 975 964 1026 985
7474 1869 997 960 974 876 975 964 985 934 914 922
7475 1870 960 1089 974 1042 1018 1026 964 996 1059 1002
7476 1871 1089 997 974 1172 1036 985 1026 1127 1078 1065
7477 1872 1089 1138 997 1172 1108 1062 1036 1127 1153 1078
7478 1873 3570 3676 3758 3200 3620 3714 3665 3380 3423 3495
7479 1874 3758 3570 3200 3729 3665 3380 3495 3736 3647 3470
7480 1875 3570 3200 3729 3218 3380 3470 3647 3383 3201 3489
7481 1876 3729 3570 3218 3560 3647 3383 3489 3646 3559 3386
7482 1877 3218 3729 3560 3327 3489 3646 3386 3275 3538 3431
7483 1878 3729 3570 3560 3966 3647 3559 3646 3846 3799 3795
7484 1879 3570 3218 3560 2894 3383 3386 3559 3210 3041 3202
7485 1880 3570 3200 3218 2894 3380 3201 3383 3210 3035 3041
7486 1881 3570 3200 2894 3259 3380 3035 3210 3403 3217 3066
7487 1882 3875 4109 4133 4153 3994 4116 4006 4012 4126 4140
7488 1883 5050 5151 4932 4618 5106 5044 4977 4828 4881 4771
7489 1884 5038 5160 4642 4684 5104 4895 4835 4856 4916 4658
7490 1885 1834 2059 2258 2174 1951 2150 2044 2003 2115 2208
7491 1886 1417 1501 1320 1674 1449 1395 1361 1540 1578 1485
7492 1887 2443 2583 2680 2174 2528 2621 2555 2300 2367 2401
7493 1888 5062 5321 4882 5178 5204 5117 4963 5116 5249 5028
7494 1889 1582 1458 1412 1674 1509 1430 1488 1613 1564 1532
7495 1890 2645 2545 2814 2245 2597 2673 2723 2429 2380 2503
7496 1891 2183 1978 2543 2245 2088 2243 2348 2210 2099 2378
7497 1892 928 873 876 997 895 872 901 958 930 934
7498 1893 4642 4727 5038 4684 4682 4884 4835 4658 4698 4856
7499 1894 2565 2406 2314 2881 2536 2362 2475 2717 2635 2571
7500 1895 2339 2565 2248 2784 2490 2438 2291 2554 2677 2497
7501 1896 1992 2339 2248 2155 2161 2291 2113 2074 2246 2189
7502 1897 2406 2056 1966 2295 2239 2008 2181 2346 2170 2133
7503 1898 1840 1992 1743 1625 1876 1823 1787 1724 1800 1684
7504 1899 2056 1840 1743 1692 1915 1787 1858 1878 1757 1708
7505 1900 2462 2565 2314 2881 2510 2475 2434 2659 2717 2571
7506 1901 2565 2462 2248 2784 2510 2390 2438 2677 2611 2497
7507 1902 1901 1992 2248 2155 1945 2113 2072 2020 2074 2189
7508 1903 2314 2406 1966 2295 2362 2181 2145 2296 2346 2133
7509 1904 1992 1901 1743 1625 1945 1769 1823 1800 1748 1684
7510 1905 1966 2056 1743 1692 2008 1858 1814 1825 1878 1708
7511 1906 4343 4123 4451 4513 4239 4281 4395 4420 4305 4468
7512 1907 275 222 175 112 244 194 216 193 147 123
7513 1908 5573 5615 5594 5566 5596 5607 5587 5569 5595 5580
7514 1909 4666 4867 4411 4327 4766 4638 4538 4487 4586 4358
7515 1910 2417 2155 2258 2248 2280 2192 2326 2320 2189 2247
7516 1911 2835 2881 2814 2314 2854 2845 2822 2556 2571 2550
7517 1912 1483 1692 1412 1743 1591 1547 1443 1606 1708 1569
7518 1913 71 175 222 112 108 194 132 80 123 147
7519 1914 5321 5290 4882 5178 5300 5102 5117 5249 5232 5028
7520 1915 4323 4255 4200 4672 4286 4224 4259 4499 4450 4422
7521 1916 5334 5327 5207 4875 5332 5270 5276 5128 5122 5046
7522 1917 2703 2898 3416 3062 2787 3140 3032 2871 2973 3226
7523 1918 3928 4077 3966 3729 4002 4020 3939 3827 3909 3846
7524 1919 1107 1027 1042 960 1066 1031 1069 1028 988 996
7525 1920 269 203 233 82 235 209 243 151 131 141
7526 1921 356 256 275 175 304 254 315 266 212 216
7527 1922 4858 4846 5272 5200 4850 5066 5073 5030 5014 5242
7528 1923 4013 4046 3790 4099 4030 3918 3903 4062 4069 3940
7529 1924 948 887 770 923 917 831 863 935 903 845
7530 1925 1840 1989 1747 1623 1906 1867 1784 1717 1795 1677
7531 1926 5340 5186 5085 4999 5268 5132 5220 5187 5092 5035
7532 1927 250 110 232 229 180 159 234 223 152 210
7533 1928 4738 4618 4325 4932 4675 4461 4526 4827 4771 4620
7534 1929 4462 4595 4942 4710 4531 4768 4702 4579 4649 4818
7535 1930 1089 1138 1172 1287 1108 1153 1127 1174 1200 1223
7536 1931 4955 4839 5068 4619 4892 4952 5008 4786 4724 4838
7537 1932 2259 2027 1931 2155 2143 1977 2091 2197 2093 2039
7538 1933 2259 2027 2155 1992 2143 2093 2197 2112 2000 2074
7539 1934 1623 1789 1581 1692 1700 1683 1598 1656 1738 1629
7540 1935 1623 1789 1692 2056 1700 1738 1656 1830 1918 1878
7541 1936 3359 3207 3249 3134 3296 3223 3306 3241 3158 3194
7542 1937 233 306 269 120 265 285 243 162 211 182
7543 1938 5432 5327 4988 5178 5378 5175 5244 5311 5250 5082
7544 1939 4839 4846 4412 4619 4837 4627 4623 4724 4731 4517
7545 1940 5321 5357 5575 5562 5339 5498 5478 5464 5479 5570
7546 1941 71 25 34 33 42 26 41 36 22 30
7547 1942 5511 5321 5575 5601 5418 5478 5546 5565 5514 5589
7548 1943 98 71 34 82 78 41 57 79 59 51
7549 1944 5135 5279 5401 5502 5209 5341 5281 5337 5393 5449
7550 1945 2073 2206 2024 2056 2128 2117 2043 2057 2127 2034
7551 1946 3427 3177 3134 2565 3311 3148 3280 2961 2851 2828
7552 1947 5290 5452 5432 5178 5370 5441 5362 5232 5329 5311
7553 1948 1942 1652 1762 1992 1775 1702 1845 1963 1809 1877
7554 1949 3218 3729 3327 3250 3489 3538 3275 3231 3500 3292
7555 1950 3211 3062 3228 2651 3127 3132 3214 2914 2841 2924
7556 1951 175 114 256 112 136 186 212 123 106 158
7557 1952 4440 4540 4858 4619 4486 4697 4645 4529 4572 4736
7558 1953 2396 2155 2417 2339 2273 2280 2399 2364 2246 2376
7559 1954 2155 2417 2339 2248 2280 2376 2246 2189 2320 2291
7560 1955 2417 2339 2248 2784 2376 2291 2320 2586 2554 2497
7561 1956 3015 2881 2835 2406 2947 2854 2926 2697 2635 2603
7562 1957 2881 2835 2406 2314 2854 2603 2635 2571 2556 2362
7563 1958 2835 2406 2314 2295 2603 2362 2556 2549 2346 2296
7564 1959 3327 3215 3782 3405 3268 3523 3584 3356 3314 3617
7565 1960 3228 3769 3643 3868 3522 3711 3430 3607 3817 3768
7566 1961 269 306 383 215 285 338 323 241 259 303
7567 1962 269 306 215 120 285 259 241 182 211 153
7568 1963 4743 4915 5061 4910 4820 4973 4894 4813 4901 4966
7569 1964 23 69 39 33 40 45 29 21 37 31
7570 1965 4580 4732 5023 5225 4653 4874 4801 4903 4968 5137
7571 1966 221 318 139 112 263 226 174 161 213 126
7572 1967 74 60 25 112 62 35 43 88 84 52
7573 1968 5062 4984 5357 5178 5018 5193 5223 5116 5083 5274
7574 1969 4846 5154 5272 5359 4995 5212 5066 5125 5264 5322
7575 1970 1869 1978 1868 2042 1919 1917 1864 1955 2001 1958
7576 1971 2645 3049 3018 3370 2834 3026 2808 2974 3195 3189
7577 1972 1834 1685 1673 1931 1752 1675 1744 1873 1793 1792
7578 1973 4005 4187 4027 3925 4097 4108 4007 3961 4058 3975
7579 1974 4005 4187 3925 4255 4097 4058 3961 4125 4218 4090
7580 1975 939 858 791 770 894 826 867 856 809 774
7581 1976 3926 4160 4251 3881 4040 4201 4088 3908 4028 4071
7582 1977 3926 4160 3881 4046 4040 4028 3908 3983 4104 3959
7583 1978 4650 4438 4844 4536 4546 4640 4746 4584 4477 4683
7584 1979 4672 4457 4743 4200 4571 4589 4701 4422 4330 4454
7585 1980 4439 4505 4321 4046 4466 4393 4368 4230 4262 4171
7586 1981 3828 3969 4094 4301 3897 4031 3958 4066 4130 4196
7587 1982 82 33 94 71 50 54 76 59 36 72
7588 1983 4234 4480 4684 4537 4347 4578 4446 4371 4507 4599
7589 1984 776 677 794 748 730 734 782 756 708 769
7590 1985 546 419 512 530 486 467 527 535 476 524
7591 1986 5285 5143 5493 5562 5213 5335 5389 5448 5397 5531
7592 1987 4234 4288 4537 4255 4261 4406 4371 4241 4266 4386
7593 1988 1287 1245 1089 1138 1261 1159 1174 1200 1184 1108
7594 1989 3259 3676 3570 3200 3472 3620 3403 3217 3423 3380
7595 1990 2972 2806 2872 2616 2888 2837 2916 2774 2708 2740
7596 1991 3422 3745 3775 3560 3601 3756 3626 3491 3650 3671
7597 1992 965 1024 864 974 994 941 915 966 998 912
7598 1993 3891 3794 4061 3329 3842 3924 3980 3668 3592 3780
7599 1994 3200 3729 3218 3250 3470 3489 3201 3221 3500 3231
7600 1995 2616 3062 3211 2651 2824 3127 2897 2634 2841 2914
7601 1996 4440 4540 4619 4316 4486 4572 4529 4364 4414 4458
7602 1997 4668 4563 4415 4439 4611 4488 4542 4550 4498 4421
7603 1998 999 1087 1033 1138 1038 1056 1013 1060 1105 1075
7604 1999 74 60 112 187 62 84 88 109 107 138
7605 2000 120 82 94 269 96 76 101 182 151 170
7606 2001 432 464 383 539 446 420 396 482 501 463
7607 2002 1698 1475 1393 1483 1579 1433 1541 1587 1474 1434
7608 2003 2901 2991 3016 2417 2929 2999 2949 2641 2688 2698
7609 2004 2557 2710 2382 2835 2604 2539 2461 2687 2766 2587
7610 2005 5235 5314 4942 4932 5278 5146 5095 5091 5141 4931
7611 2006 4273 4536 4469 4709 4394 4502 4362 4474 4609 4585
7612 2007 2614 2565 3159 3335 2601 2843 2876 2951 2922 3238
7613 2008 2235 1992 2140 2259 2102 2058 2178 2238 2112 2177
7614 2009 1989 2056 1895 1623 2014 1973 1940 1795 1830 1742
7615 2010 2056 2308 2282 2448 2176 2289 2162 2242 2371 2345
7616 2011 1992 1952 1780 1535 1964 1861 1886 1741 1723 1640
7617 2012 2565 2573 3091 3207 2581 2820 2805 2858 2868 3135
7618 2013 4480 4810 4684 4537 4646 4749 4578 4507 4671 4599
7619 2014 1023 1095 1138 960 1055 1114 1076 987 1020 1045
7620 2015 232 139 318 112 184 226 268 160 126 213
7621 2016 5186 5061 4915 4910 5121 4973 5057 5048 4966 4901
7622 2017 256 325 275 112 288 296 254 158 206 193
7623 2018 5023 4738 4580 5225 4876 4656 4801 5137 4974 4903
7624 2019 3539 3433 3005 3211 3488 3206 3256 3360 3322 3090
7625 2020 2838 2763 2894 3218 2789 2810 2863 3012 2979 3041
7626 2021 1120 1033 1172 997 1073 1099 1143 1050 1015 1078
7627 2022 5062 4984 5178 4633 5018 5083 5116 4842 4804 4900
7628 2023 5186 4915 5085 4709 5057 4993 5132 4941 4805 4893
7629 2024 5346 5384 5334 5085 5365 5361 5336 5221 5251 5218
7630 2025 4619 4311 4316 4276 4452 4310 4458 4436 4287 4306
7631 2026 4245 4025 4331 4184 4131 4164 4285 4210 4103 4249
7632 2027 3602 3336 3748 3044 3464 3553 3670 3313 3184 3396
7633 2028 110 69 232 229 91 135 159 152 125 210
7634 2029 4580 4738 4325 4932 4656 4526 4443 4754 4827 4620
7635 2030 2382 2295 2557 2835 2338 2422 2461 2587 2549 2687
7636 2031 3016 2784 2901 2417 2904 2842 2949 2698 2586 2641
7637 2032 1393 1625 1698 1483 1507 1660 1541 1434 1551 1587
7638 2033 4469 4282 4273 4709 4379 4274 4362 4585 4485 4474
7639 2034 2628 2751 2417 3005 2686 2570 2519 2799 2867 2694
7640 2035 1268 1469 1483 1172 1362 1473 1371 1216 1298 1307
7641 2036 3050 2955 2835 2894 2994 2892 2940 2969 2925 2859
7642 2037 4462 4525 4741 4927 4506 4629 4593 4694 4721 4829
7643 2038 621 622 586 484 615 601 599 547 549 536
7644 2039 3931 3679 3729 3694 3816 3700 3834 3822 3681 3707
7645 2040 2679 2821 3062 2410 2746 2939 2860 2541 2599 2718
7646 2041 650 794 677 748 725 734 664 701 769 708
7647 2042 4183 3969 4109 4133 4079 4037 4144 4155 4049 4116
7648 2043 5314 5197 4942 4741 5262 5070 5146 5045 4962 4840
7649 2044 5279 5143 4844 5401 5211 4983 5069 5341 5284 5157
7650 2045 4183 4094 3969 4301 4137 4031 4079 4236 4196 4130
7651 2046 5619 5566 5516 5594 5598 5542 5584 5609 5580 5560
7652 2047 3405 3078 3560 3218 3239 3318 3479 3312 3141 3386
7653 2048 3078 3560 3218 2838 3318 3386 3141 2953 3174 3012
7654 2049 873 993 974 997 931 983 920 930 991 985
7655 2050 993 974 997 1120 983 985 991 1053 1043 1050
7656 2051 3868 3717 3329 3211 3798 3532 3649 3604 3468 3272
7657 2052 3717 3329 3211 3539 3532 3272 3468 3632 3419 3360
7658 2053 4873 4775 4411 4797 4821 4587 4643 4824 4781 4591
7659 2054 5279 5493 5143 5548 5388 5335 5211 5437 5526 5382
7660 2055 586 546 622 687 565 577 601 632 614 647
7661 2056 2042 1760 1868 1921 1905 1813 1958 1981 1838 1893
7662 2057 1760 1868 1921 1869 1813 1893 1838 1807 1864 1898
7663 2058 1868 2042 1921 1869 1958 1981 1893 1864 1955 1898
7664 2059 3645 3370 3018 3578 3508 3189 3324 3621 3466 3288
7665 2060 3018 3645 3578 3049 3324 3621 3288 3026 3328 3305
7666 2061 3370 3018 3578 3049 3189 3288 3466 3195 3026 3305
7667 2062 419 484 512 341 451 492 467 374 407 428
7668 2063 1673 1558 1931 1680 1609 1725 1792 1672 1611 1794
7669 2064 1673 1558 1680 1685 1609 1611 1672 1675 1610 1679
7670 2065 1931 1673 1680 1685 1792 1672 1794 1793 1675 1679
7671 2066 4875 4989 4655 5110 4924 4808 4776 4987 5053 4879
7672 2067 478 484 352 408 473 417 411 439 445 375
7673 2068 650 677 539 622 664 606 588 629 643 572
7674 2069 5516 5566 5334 5207 5542 5476 5431 5371 5426 5276
7675 2070 3219 3365 3249 2680 3301 3308 3230 2938 2993 2946
7676 2071 1187 1222 1441 1320 1197 1323 1296 1246 1259 1373
7677 2072 1338 1256 1581 1412 1293 1403 1455 1370 1333 1489
7678 2073 1956 2263 1931 2258 2106 2094 1941 2096 2253 2090
7679 2074 4793 4823 5178 4650 4803 5000 4978 4740 4739 4914
7680 2075 2521 2195 2042 2543 2351 2119 2271 2529 2352 2275
7681 2076 3515 3425 3370 2814 3483 3392 3435 3139 3098 3074
7682 2077 3868 3682 3211 3228 3784 3451 3604 3607 3459 3214
7683 2078 3405 3053 3218 3327 3224 3125 3312 3356 3187 3275
7684 2079 306 395 215 245 350 307 259 270 319 217
7685 2080 4875 4988 5327 5207 4943 5175 5122 5046 5103 5270
7686 2081 4875 4988 5207 5178 4943 5103 5046 5020 5082 5189
7687 2082 4099 3869 3828 3790 3993 3845 3963 3940 3826 3805
7688 2083 4324 4451 4123 4415 4382 4281 4214 4355 4428 4260
7689 2084 718 776 770 622 749 771 742 668 704 702
7690 2085 5068 4839 4759 4525 4952 4794 4913 4791 4676 4634
7691 2086 4554 4775 4415 4411 4664 4588 4482 4478 4587 4410
7692 2087 4451 4710 4343 4513 4576 4528 4395 4468 4601 4420
7693 2088 761 767 838 687 760 798 795 722 724 762
7694 2089 1743 1840 1625 1483 1787 1724 1684 1606 1650 1551
7695 2090 1743 1840 1483 1692 1787 1650 1606 1708 1757 1591
7696 2091 1840 1483 1692 1623 1650 1591 1757 1717 1550 1656
7697 2092 1901 1992 2155 1762 1945 2074 2020 1828 1877 1965
7698 2093 2462 2565 2881 3134 2510 2717 2659 2772 2828 2998
7699 2094 1992 1901 1625 1762 1945 1748 1800 1877 1828 1688
7700 2095 2056 1966 2295 2024 2008 2133 2170 2034 1986 2158
7701 2096 2565 2462 2784 3134 2510 2611 2677 2828 2772 2954
7702 2097 1966 2056 1692 2024 2008 1878 1825 1986 2034 1849
7703 2098 1345 1558 1441 1414 1446 1493 1384 1380 1476 1420
7704 2099 3514 3645 3249 2997 3590 3450 3374 3243 3315 3105
7705 2100 1760 1520 1581 1552 1635 1549 1668 1642 1531 1561
7706 2101 4117 4273 4282 4709 4188 4274 4191 4388 4474 4485
7707 2102 1138 960 997 1023 1045 975 1062 1076 987 1008
7708 2103 4525 4741 4927 4619 4629 4829 4721 4566 4677 4765
7709 2104 4525 4741 4619 4276 4629 4677 4566 4397 4500 4436
7710 2105 4276 4009 4153 4378 4149 4089 4222 4329 4185 4264
7711 2106 4655 4875 5110 4869 4776 4987 4879 4756 4868 4980
7712 2107 484 352 408 341 417 375 445 407 337 369
7713 2108 4927 5068 4525 4619 4996 4791 4721 4765 4838 4566
7714 2109 5279 5143 5401 5548 5211 5284 5341 5437 5382 5487
7715 2110 3717 3539 3640 3282 3632 3588 3672 3498 3393 3462
7716 2111 3078 2838 3369 3615 2953 3081 3213 3325 3199 3493
7717 2112 993 1120 1119 1140 1053 1117 1048 1058 1125 1128
7718 2113 5198 5440 5135 5401 5331 5298 5166 5304 5417 5281
7719 2114 4035 3937 3643 3916 3988 3812 3860 3978 3922 3797
7720 2115 3757 3608 3782 4015 3683 3702 3765 3884 3833 3896
7721 2116 215 229 120 245 218 157 153 217 230 177
7722 2117 215 229 245 395 218 230 217 307 314 319
7723 2118 1762 1441 1625 1535 1596 1528 1688 1632 1486 1585
7724 2119 3370 3134 2881 3335 3246 2998 3103 3346 3227 3088
7725 2120 2024 2042 2295 2448 2028 2163 2158 2229 2234 2372
7726 2121 557 637 546 687 590 584 550 618 659 614
7727 2122 5110 4655 4869 4709 4879 4756 4980 4904 4680 4784
7728 2123 352 408 341 383 375 369 337 358 391 346
7729 2124 3928 3570 3729 3966 3778 3647 3827 3939 3799 3846
7730 2125 2703 2872 3062 3416 2776 2965 2871 3032 3119 3226
7731 2126 1107 1089 960 1042 1098 1018 1028 1069 1059 996
7732 2127 5062 4882 4793 5178 4963 4852 4919 5116 5028 4978
7733 2128 229 215 341 395 218 271 277 314 307 348
7734 2129 1762 1652 1535 1625 1702 1594 1632 1688 1633 1585
7735 2130 1652 1535 1625 1992 1594 1585 1633 1809 1741 1800
7736 2131 3427 3134 3335 2565 3280 3227 3394 2961 2828 2922
7737 2132 2024 2206 2448 2295 2117 2324 2229 2158 2256 2372
7738 2133 2206 2448 2295 2056 2324 2372 2256 2127 2242 2170
7739 2134 755 871 685 838 811 775 723 792 848 758
7740 2135 1033 926 999 997 977 953 1013 1015 951 992
7741 2136 5601 5619 5568 5452 5611 5599 5585 5552 5574 5525
7742 2137 4153 3894 4133 3875 4034 4017 4140 4012 3880 4006
7743 2138 4153 4276 4378 4513 4222 4329 4264 4326 4384 4442
7744 2139 4378 4153 4513 4133 4264 4326 4442 4247 4140 4313
7745 2140 1023 929 1095 960 971 1006 1055 987 942 1020
7746 2141 1698 1644 1483 1840 1670 1563 1587 1756 1734 1650
7747 2142 2901 2662 2417 2339 2773 2530 2641 2593 2482 2376
7748 2143 2557 2802 2835 2406 2696 2815 2687 2471 2592 2603
7749 2144 3803 3643 3916 3494 3732 3797 3856 3660 3569 3753
7750 2145 4118 3782 4015 3929 3949 3896 4065 4024 3851 3973
7751 2146 4655 4435 4709 4806 4548 4569 4680 4730 4624 4760
7752 2147 4435 4709 4806 4331 4569 4760 4624 4372 4512 4555
7753 2148 876 929 997 960 902 952 934 914 942 975
7754 2149 929 997 960 1023 952 975 942 971 1008 987
7755 2150 3643 3916 3494 4035 3797 3753 3569 3860 3978 3814
7756 2151 3782 4015 3929 3757 3896 3973 3851 3765 3884 3839
7757 2152 4775 4797 4415 4411 4781 4600 4588 4587 4591 4410
7758 2153 1140 1287 1089 1172 1204 1174 1110 1152 1223 1127
7759 2154 3615 3259 3570 2894 3429 3403 3585 3233 3066 3210
7760 2155 3282 2972 2872 3005 3113 2916 3060 3123 2980 2937
7761 2156 4648 4385 4325 4378 4522 4344 4471 4518 4377 4342
7762 2157 4648 4385 4378 4109 4522 4377 4518 4351 4240 4238
7763 2158 4385 4325 4378 4109 4344 4342 4377 4240 4204 4238
7764 2159 4415 4554 4411 4183 4482 4478 4410 4292 4352 4293
7765 2160 3011 3433 3211 2616 3212 3322 3096 2793 2990 2897
7766 2161 2909 2763 3218 3200 2823 2979 3052 3039 2963 3201
7767 2162 5550 5573 5401 5566 5563 5508 5489 5554 5569 5505
7768 2163 4839 4412 4525 4619 4623 4472 4676 4724 4517 4566
7769 2164 69 23 112 33 40 56 87 37 21 48
7770 2165 4732 4580 4619 5225 4653 4590 4667 4968 4903 4918
7771 2166 74 222 221 112 137 208 134 88 147 161
7772 2167 339 432 395 229 379 406 362 279 329 314
7773 2168 112 94 229 120 97 144 154 93 101 157
7774 2169 5131 4910 5186 4684 5016 5048 5156 4902 4790 4928
7775 2170 4027 4005 3925 3775 4007 3961 3975 3902 3890 3850
7776 2171 3925 4027 3775 4015 3975 3902 3850 3972 4018 3893
7777 2172 4005 3925 3775 3560 3961 3850 3890 3815 3773 3671
7778 2173 3775 3925 4015 3929 3850 3972 3893 3847 3923 3973
7779 2174 3925 4015 3929 4200 3972 3973 3923 4067 4110 4068
7780 2175 4015 3929 4200 4331 3973 4068 4110 4163 4124 4265
7781 2176 4200 4015 4331 4255 4110 4163 4265 4224 4134 4289
7782 2177 4015 4331 4255 4282 4163 4289 4134 4141 4296 4263
7783 2178 4331 4200 4255 4743 4265 4224 4289 4530 4454 4483
7784 2179 4200 4015 4255 3925 4110 4134 4224 4067 3972 4090
7785 2180 4015 3929 4331 4118 3973 4124 4163 4065 4024 4213
7786 2181 4331 4015 4118 4282 4163 4065 4213 4296 4141 4198
7787 2182 3929 4200 4331 4184 4068 4265 4124 4055 4186 4249
7788 2183 4015 4255 3925 4027 4134 4090 3972 4018 4136 3975
7789 2184 4255 4200 3925 4005 4224 4067 4090 4125 4105 3961
7790 2185 3929 3925 4200 4005 3923 4067 4068 3953 3961 4105
7791 2186 3925 3775 3560 3929 3850 3671 3773 3923 3847 3774
7792 2187 3560 3925 3929 4005 3773 3923 3774 3815 3961 3953
7793 2188 5143 5285 5178 5562 5213 5229 5161 5397 5448 5412
7794 2189 1789 2073 2024 2056 1920 2043 1907 1918 2057 2034
7795 2190 3177 3359 3134 2565 3276 3241 3148 2851 2936 2828
7796 2191 2027 1942 1762 1992 1969 1845 1900 2000 1963 1877
7797 2192 4945 5011 4710 4513 4969 4860 4817 4726 4758 4601
7798 2193 4945 5011 4513 4942 4969 4758 4726 4936 4967 4723
7799 2194 5011 4710 4513 4942 4860 4601 4758 4967 4818 4723
7800 2195 4251 3926 3881 4061 4088 3908 4071 4154 3991 3977
7801 2196 3881 4251 4061 3916 4071 4154 3977 3898 4082 3987
7802 2197 3926 3881 4061 3329 3908 3977 3991 3689 3661 3780
7803 2198 4061 3881 3916 3494 3977 3898 3987 3824 3726 3753
7804 2199 3881 3916 3494 3790 3898 3753 3726 3835 3849 3652
7805 2200 3916 3494 3790 3748 3753 3652 3849 3831 3629 3767
7806 2201 3790 3916 3748 4046 3849 3831 3767 3918 3982 3900
7807 2202 3916 3748 4046 4123 3831 3900 3982 4019 3932 4080
7808 2203 3748 3790 4046 3828 3767 3918 3900 3787 3805 3930
7809 2204 3790 3916 4046 3881 3849 3982 3918 3835 3898 3959
7810 2205 3916 3494 3748 3803 3753 3629 3831 3856 3660 3771
7811 2206 3748 3916 3803 4123 3831 3856 3771 3932 4019 3974
7812 2207 3494 3790 3748 3044 3652 3767 3629 3252 3424 3396
7813 2208 3916 4046 3881 4251 3982 3959 3898 4082 4146 4071
7814 2209 4046 3790 3881 3926 3918 3835 3959 3983 3855 3908
7815 2210 3494 3881 3790 3926 3726 3835 3652 3752 3908 3855
7816 2211 3881 4061 3329 3494 3977 3780 3661 3726 3824 3402
7817 2212 3329 3881 3494 3926 3661 3726 3402 3689 3908 3752
7818 2213 3560 3218 3327 3405 3386 3275 3431 3479 3312 3356
7819 2214 3329 3211 3228 3868 3272 3214 3273 3649 3604 3607
7820 2215 5235 4945 5139 4932 5099 5042 5185 5091 4934 5032
7821 2216 33 120 94 112 64 101 54 48 93 97
7822 2217 677 776 622 748 730 704 643 708 756 678
7823 2218 3894 4133 3875 3748 4017 4006 3880 3818 3938 3808
7824 2219 4563 4321 4415 4439 4431 4353 4488 4498 4368 4421
7825 2220 5050 4648 4618 4932 4847 4635 4828 4977 4788 4771
7826 2221 4073 4184 3929 3729 4128 4055 3998 3910 3965 3832
7827 2222 2878 3044 3494 3062 2958 3252 3162 2967 3045 3269
7828 2223 871 961 960 838 916 956 910 848 897 896
7829 2224 4988 5327 5207 5178 5175 5270 5103 5082 5250 5189
7830 2225 3704 3235 3790 3494 3469 3537 3749 3596 3348 3652
7831 2226 4215 4291 4200 3929 4248 4242 4208 4072 4107 4068
7832 2227 187 221 112 74 198 161 138 109 134 88
7833 2228 2784 3249 3207 3134 3009 3223 2989 2954 3194 3158
7834 2229 4025 4118 4331 3929 4070 4213 4164 3976 4024 4124
7835 2230 3336 3803 3748 3494 3609 3771 3553 3407 3660 3629
7836 2231 999 1023 1138 997 1010 1076 1060 992 1008 1062
7837 2232 3679 3250 3729 3694 3467 3500 3700 3681 3477 3707
7838 2233 2821 2651 3062 2410 2733 2841 2939 2599 2522 2718
7839 2234 974 873 997 876 920 930 985 922 872 934
7840 2235 2651 3011 3211 2616 2813 3096 2914 2634 2793 2897
7841 2236 3250 2909 3218 3200 3068 3052 3231 3221 3039 3201
7842 2237 3250 3694 3200 3729 3477 3457 3221 3500 3707 3470
7843 2238 2651 2410 2616 3062 2522 2508 2634 2841 2718 2824
7844 2239 4633 4793 5178 5062 4713 4978 4900 4842 4919 5116
7845 2240 767 685 871 838 727 775 814 798 758 848
7846 2241 1054 1185 1138 960 1116 1156 1094 1005 1063 1045
7847 2242 5440 5198 5346 5401 5331 5275 5386 5417 5304 5367
7848 2243 3200 3218 2894 2763 3201 3041 3035 2963 2979 2810
7849 2244 2616 3211 3005 3433 2897 3090 2792 2990 3322 3206
7850 2245 4648 5139 4945 4932 4891 5042 4798 4788 5032 4934
7851 2246 4435 4282 4709 4331 4348 4485 4569 4372 4296 4512
7852 2247 1095 969 960 929 1029 962 1020 1006 946 942
7853 2248 481 491 367 432 483 429 422 453 459 392
7854 2249 481 491 432 558 483 459 453 518 525 495
7855 2250 432 481 558 539 453 518 495 482 502 545
7856 2251 4327 4648 4867 4411 4476 4757 4586 4358 4533 4638
7857 2252 3757 3775 4015 3929 3766 3893 3884 3839 3847 3973
7858 2253 4035 4061 3916 3494 4041 3987 3978 3814 3824 3753
7859 2254 4858 5200 4732 5225 5030 4961 4792 5039 5215 4968
7860 2255 4880 4844 4536 4869 4857 4683 4703 4870 4848 4696
7861 2256 4536 4880 4869 4999 4703 4870 4696 4762 4935 4929
7862 2257 4869 4469 4536 4709 4669 4502 4696 4784 4585 4609
7863 2258 3494 2878 3062 3235 3162 2967 3269 3348 3048 3128
7864 2259 3929 4073 3729 4291 3998 3910 3832 4107 4174 4021
7865 2260 4880 4869 4999 5198 4870 4929 4935 5043 5034 5105
7866 2261 4844 4823 4650 5178 4830 4739 4746 5006 5000 4914
7867 2262 1220 1402 1320 1412 1301 1349 1263 1303 1399 1356
7868 2263 2379 2602 2814 2543 2486 2707 2582 2450 2566 2674
7869 2264 2267 2425 2258 2680 2337 2327 2260 2455 2546 2447
7870 2265 4618 4738 5151 4932 4675 4938 4881 4771 4827 5044
7871 2266 4846 4858 4619 5225 4850 4736 4731 5029 5039 4918
7872 2267 4648 4867 4411 4945 4757 4638 4533 4798 4899 4678
7873 2268 841 876 838 960 861 850 837 899 914 896
7874 2269 838 841 960 871 837 899 896 848 849 910
7875 2270 5509 5346 5334 5207 5433 5336 5430 5369 5277 5276
7876 2271 25 71 112 33 42 80 52 22 36 48
7877 2272 822 770 776 748 793 771 797 784 751 756
7878 2273 5550 5440 5346 5401 5507 5386 5463 5489 5417 5367
7879 2274 5432 4988 5290 5178 5244 5150 5362 5311 5082 5232
7880 2275 4910 4672 4743 4255 4789 4701 4813 4567 4450 4483
7881 2276 770 718 622 687 742 668 702 729 694 647
7882 2277 3926 4160 4046 3790 4040 4104 3983 3855 3981 3918
7883 2278 4005 4187 4255 4200 4097 4218 4125 4105 4192 4224
7884 2279 110 69 229 67 91 125 152 85 58 127
7885 2280 1138 999 997 1033 1060 992 1062 1075 1013 1015
7886 2281 5050 5139 4648 4932 5098 4891 4847 4977 5032 4788
7887 2282 4009 4153 4378 4109 4089 4264 4185 4054 4126 4238
7888 2283 4947 4797 4873 4411 4871 4824 4906 4674 4591 4643
7889 2284 339 378 432 229 357 398 379 279 300 329
7890 2285 1747 1623 1483 1840 1677 1550 1608 1784 1717 1650
7891 2286 5550 5346 5509 5401 5463 5433 5530 5489 5367 5456
7892 2287 4378 4009 4109 4325 4185 4054 4238 4342 4158 4204
7893 2288 4378 4009 4325 4276 4185 4158 4342 4329 4149 4294
7894 2289 1393 1320 1483 1172 1347 1392 1434 1267 1237 1307
7895 2290 3016 2680 2417 3005 2840 2540 2698 3003 2826 2694
7896 2291 2382 2543 2835 2710 2457 2685 2587 2539 2609 2766
7897 2292 876 761 838 873 820 795 850 872 810 844
7898 2293 3405 3757 3782 3929 3605 3765 3617 3725 3839 3851
7899 2294 3868 4035 3643 3494 3947 3860 3768 3713 3814 3569
7900 2295 4325 4648 4378 4932 4471 4518 4342 4620 4788 4654
7901 2296 622 586 687 718 601 632 647 668 646 694
7902 2297 2258 2417 2248 2680 2326 2320 2247 2447 2540 2441
7903 2298 2814 2835 2314 2543 2822 2556 2550 2674 2685 2412
7904 2299 1412 1483 1743 1320 1443 1606 1569 1356 1392 1514
7905 2300 481 432 341 408 453 377 409 440 413 369
7906 2301 481 432 408 539 453 413 440 502 482 475
7907 2302 341 481 408 512 409 440 369 428 490 457
7908 2303 1581 1412 1692 1749 1489 1547 1629 1658 1574 1714
7909 2304 3370 2814 2881 3018 3074 2845 3103 3189 2913 2941
7910 2305 395 432 383 341 406 396 384 348 377 346
7911 2306 2763 2452 2894 3200 2596 2660 2810 2963 2782 3035
7912 2307 94 215 120 269 143 153 101 170 241 182
7913 2308 352 478 408 383 411 439 375 358 425 391
7914 2309 4989 4655 5110 5085 4808 4879 5053 5037 4866 5097
7915 2310 4301 4554 4415 4183 4425 4482 4346 4236 4352 4292
7916 2311 4869 4999 5198 5346 4929 5105 5034 5129 5190 5275
7917 2312 923 806 770 838 866 787 845 877 815 802
7918 2313 4844 5135 5401 4869 4979 5281 5157 4848 4990 5168
7919 2314 621 539 622 484 575 572 615 547 506 549
7920 2315 993 974 1120 1140 983 1043 1053 1058 1049 1125
7921 2316 3078 3560 2838 3615 3318 3174 2953 3325 3577 3199
7922 2317 3717 3329 3539 3282 3532 3419 3632 3498 3300 3393
7923 2318 4947 4945 4710 4411 4940 4817 4822 4674 4678 4549
7924 2319 1868 1760 1581 1552 1813 1668 1709 1695 1642 1561
7925 2320 650 677 622 748 664 643 629 701 708 678
7926 2321 3645 3018 3249 2997 3324 3120 3450 3315 3001 3105
7927 2322 1441 1558 1673 1414 1493 1609 1554 1420 1476 1537
7928 2323 969 871 960 841 919 910 962 905 849 899
7929 2324 4276 4378 4513 4741 4329 4442 4384 4500 4551 4622
7930 2325 948 1042 923 838 990 976 935 890 933 877
7931 2326 3704 3416 3235 3494 3567 3320 3469 3596 3438 3348
7932 2327 4215 3966 4291 3929 4091 4121 4248 4072 3935 4107
7933 2328 4462 4276 4513 4741 4359 4384 4481 4593 4500 4622
7934 2329 4650 4875 4869 5207 4763 4868 4755 4923 5046 5036
7935 2330 4650 4875 5207 5178 4763 5046 4923 4914 5020 5189
7936 2331 2484 2594 3062 2616 2544 2812 2753 2551 2598 2824
7937 2332 3758 3866 3729 3200 3811 3800 3736 3495 3591 3470
7938 2333 342 465 367 437 402 415 354 386 448 394
7939 2334 4875 5110 4869 5207 4987 4980 4868 5046 5158 5036
7940 2335 1673 1931 2155 1834 1792 2039 1910 1744 1873 1984
7941 2336 2042 1868 2295 2543 1958 2085 2163 2275 2180 2407
7942 2337 5297 5131 5186 4684 5222 5156 5241 5002 4902 4928
7943 2338 1692 1581 1749 1868 1629 1658 1714 1765 1709 1805
7944 2339 465 367 437 481 415 394 448 468 422 449
7945 2340 383 269 215 253 323 241 303 320 252 237
7946 2341 215 383 253 341 303 320 237 271 346 290
7947 2342 269 215 253 112 241 237 252 163 149 181
7948 2343 215 253 112 341 237 181 149 271 290 227
7949 2344 1581 1749 1868 1582 1658 1805 1709 1572 1659 1707
7950 2345 367 481 341 437 422 409 349 394 449 382
7951 2346 1749 1868 1582 1891 1805 1707 1659 1820 1874 1722
7952 2347 1582 1749 1891 1412 1659 1820 1722 1488 1574 1626
7953 2348 1749 1868 1891 1966 1805 1874 1820 1854 1911 1927
7954 2349 1891 1749 1966 1412 1820 1854 1927 1626 1574 1666
7955 2350 1749 1868 1966 1692 1805 1911 1854 1714 1765 1825
7956 2351 1966 1749 1692 1412 1854 1714 1825 1666 1574 1547
7957 2352 1582 1552 1868 1581 1566 1695 1707 1572 1561 1709
7958 2353 1414 1501 1673 1441 1453 1577 1537 1420 1457 1554
7959 2354 2997 2583 3018 3249 2778 2780 3001 3105 2889 3120
7960 2355 5601 5594 5452 5178 5597 5545 5552 5467 5455 5329
7961 2356 3957 4123 3916 4324 4048 4019 3933 4138 4214 4115
7962 2357 378 264 250 229 322 246 310 300 240 223
7963 2358 2024 2206 2295 2056 2117 2256 2158 2034 2127 2170
7964 2359 1762 1652 1625 1992 1702 1633 1688 1877 1809 1800
7965 2360 4109 4327 4411 4648 4209 4358 4252 4351 4476 4533
7966 2361 3997 4282 4015 4117 4143 4141 4003 4052 4191 4063
7967 2362 3416 3282 2872 3329 3339 3060 3119 3364 3300 3082
7968 2363 3966 3615 3570 3560 3813 3585 3799 3795 3577 3559
7969 2364 1042 1140 1089 974 1090 1110 1059 1002 1049 1026
7970 2365 512 419 341 437 467 374 428 471 421 382
7971 2366 432 408 539 478 413 475 482 435 439 505
7972 2367 2295 2406 2557 2835 2346 2471 2422 2549 2603 2687
7973 2368 2784 2339 2901 2417 2554 2593 2842 2586 2376 2641
7974 2369 1625 1840 1698 1483 1724 1756 1660 1551 1650 1587
7975 2370 408 539 478 484 475 505 439 445 506 473
7976 2371 5374 5494 5197 4955 5436 5358 5291 5191 5271 5076
7977 2372 5139 5261 5235 4932 5206 5243 5185 5032 5107 5091
7978 2373 4869 4536 4999 4709 4696 4762 4929 4784 4609 4851
7979 2374 4311 4325 4276 4619 4317 4294 4287 4452 4460 4436
7980 2375 873 778 761 838 828 768 810 844 803 795
7981 2376 3080 2602 3200 2814 2829 2884 3136 2944 2707 2996
7982 2377 2381 2425 2616 2258 2400 2509 2492 2305 2327 2423
7983 2378 4325 4378 4276 4741 4342 4329 4294 4524 4551 4500
7984 2379 3000 2645 2814 3370 2804 2723 2903 3170 2974 3074
7985 2380 1501 1315 1320 1441 1401 1310 1395 1457 1366 1373
7986 2381 1419 1582 1412 1581 1499 1488 1407 1490 1572 1489
7987 2382 1860 1834 2258 1931 1846 2044 2054 1889 1873 2090
7988 2383 1978 2055 2543 2042 2011 2281 2243 2001 2046 2275
7989 2384 2583 2910 2680 3249 2742 2775 2621 2889 3059 2946
7990 2385 1483 1268 1172 1320 1371 1216 1307 1392 1291 1237
7991 2386 2835 3050 2894 2543 2940 2969 2859 2685 2777 2709
7992 2387 2417 2628 3005 2680 2519 2799 2694 2540 2650 2826
7993 2388 4875 5110 5207 5334 4987 5158 5046 5128 5234 5276
7994 2389 5110 5207 5334 5346 5158 5276 5234 5238 5277 5336
7995 2390 552 573 465 610 560 526 507 574 587 533
7996 2391 5334 5110 5346 5085 5234 5238 5336 5218 5097 5221
7997 2392 573 610 529 465 587 571 553 526 533 494
7998 2393 628 552 593 648 585 570 608 636 598 619
7999 2394 698 781 748 593 744 766 721 642 691 670
8000 2395 342 250 232 341 294 234 286 331 283 280
8001 2396 552 465 437 481 507 448 493 508 468 449
8002 2397 573 648 610 552 613 630 587 560 598 574
8003 2398 698 610 648 593 651 630 671 642 597 619
8004 2399 552 576 593 437 561 580 570 493 509 520
8005 2400 419 318 341 437 364 321 374 421 365 382
8006 2401 558 650 539 481 603 588 545 518 562 502
8007 2402 529 579 481 610 556 528 503 571 591 541
8008 2403 318 359 232 437 330 293 268 365 393 335
8009 2404 481 529 610 465 503 571 541 468 494 533
8010 2405 530 576 437 512 555 509 485 524 540 471
8011 2406 748 665 698 593 707 676 721 670 626 642
8012 2407 250 342 367 341 294 354 308 283 331 349
8013 2408 342 367 341 437 354 349 331 386 394 382
8014 2409 637 697 576 593 667 633 607 609 639 580
8015 2410 665 579 610 481 624 591 634 569 528 541
8016 2411 530 637 576 512 581 607 555 524 566 540
8017 2412 2602 2648 3200 2543 2627 2905 2884 2566 2580 2847
8018 2413 2425 2848 2616 2680 2618 2727 2509 2546 2754 2642
8019 2414 275 352 112 253 305 238 193 255 301 181
8020 2415 5308 4955 5494 5359 5148 5271 5407 5333 5179 5423
8021 2416 4255 4200 4672 4743 4224 4422 4450 4483 4454 4701
8022 2417 4273 4117 4684 4709 4188 4376 4463 4474 4388 4691
8023 2418 4844 4536 4869 4650 4683 4696 4848 4746 4584 4755
8024 2419 4738 4580 5225 4932 4656 4903 4974 4827 4754 5080
8025 2420 3828 3969 4301 4059 3897 4130 4066 3942 4010 4168
8026 2421 5297 4999 4684 5186 5164 4841 5002 5241 5092 4928
8027 2422 4439 4324 3916 4046 4373 4115 4165 4230 4176 3982
8028 2423 778 864 687 838 823 772 732 803 843 762
8029 2424 4536 4273 4684 4709 4394 4463 4597 4609 4474 4691
8030 2425 4234 4117 4015 4255 4169 4063 4119 4241 4180 4134
8031 2426 781 698 697 593 744 688 738 691 642 639
8032 2427 306 215 120 245 259 153 211 270 217 177
8033 2428 4324 4439 4415 4046 4373 4421 4355 4176 4230 4221
8034 2429 637 697 593 687 667 639 609 659 684 631
8035 2430 3134 2881 3335 2565 2998 3088 3227 2828 2717 2922
8036 2431 5374 5314 4932 4741 5348 5141 5184 5086 5045 4833
8037 2432 341 484 512 408 407 492 428 369 445 457
8038 2433 3828 3969 4059 3748 3897 4010 3942 3787 3854 3912
8039 2434 4234 4117 4255 4684 4169 4180 4241 4446 4376 4455
8040 2435 367 481 432 341 422 453 392 349 409 377
8041 2436 697 628 593 698 658 608 639 688 655 642
8042 2437 579 665 650 481 624 653 612 528 569 562
8043 2438 648 610 552 593 630 574 598 619 597 570
8044 2439 437 530 512 419 485 524 471 421 476 467
8045 2440 622 770 687 593 702 729 647 604 680 631
8046 2441 665 610 593 481 634 597 626 569 541 534
8047 2442 637 530 546 512 581 535 584 566 524 527
8048 2443 665 748 650 593 707 701 653 626 670 616
8049 2444 232 342 341 437 286 331 280 335 386 382
8050 2445 112 275 253 325 193 255 181 206 296 287
8051 2446 4059 3828 3748 4046 3942 3787 3912 4051 3930 3900
8052 2447 3748 4059 4046 4123 3912 4051 3900 3932 4086 4080
8053 2448 250 367 378 229 308 368 310 223 295 300
8054 2449 367 529 481 465 454 503 422 415 494 468
8055 2450 275 253 325 352 255 287 296 305 301 326
8056 2451 378 367 432 229 368 392 398 300 295 329
8057 2452 484 546 512 622 514 527 492 549 577 563
8058 2453 546 512 622 687 527 563 577 614 589 647
8059 2454 791 864 939 687 830 898 867 739 772 813
8060 2455 3044 2730 3336 3494 2880 3014 3184 3252 3076 3407
8061 2456 4184 3986 4025 3929 4083 3999 4103 4055 3945 3976
8062 2457 2027 1931 2155 1762 1977 2039 2093 1900 1842 1965
8063 2458 1789 1581 1692 2024 1683 1629 1738 1907 1788 1849
8064 2459 4867 4873 4411 4945 4872 4643 4638 4899 4905 4678
8065 2460 5151 5225 4932 4738 5194 5080 5044 4938 4974 4827
8066 2461 767 685 838 687 727 758 798 724 681 762
8067 2462 3894 4123 4133 3748 4011 4122 4017 3818 3932 3938
8068 2463 4301 4099 3828 4059 4194 3963 4066 4168 4078 3942
8069 2464 5357 5321 5178 5562 5339 5249 5274 5479 5464 5412
8070 2465 3228 3129 3062 3494 3179 3084 3132 3344 3310 3269
8071 2466 3129 3062 3494 2730 3084 3269 3310 2930 2883 3076
8072 2467 1024 939 864 974 980 898 941 998 949 912
8073 2468 3794 3926 4061 3329 3862 3991 3924 3592 3689 3780
8074 2469 3327 3793 3729 3929 3595 3760 3538 3693 3861 3832
8075 2470 3793 3729 3929 3986 3760 3832 3861 3882 3859 3945
8076 2471 3745 4005 3775 3560 3874 3890 3756 3650 3815 3671
8077 2472 791 858 781 770 826 818 780 774 809 773
8078 2473 5334 5110 5085 4989 5234 5097 5218 5183 5053 5037
8079 2474 5334 5110 4989 4875 5234 5053 5183 5128 4987 4924
8080 2475 5516 5566 5207 5401 5542 5426 5371 5458 5505 5307
8081 2476 4183 3969 4133 4301 4079 4049 4155 4236 4130 4203
8082 2477 250 110 229 264 180 152 223 246 179 240
8083 2478 4324 3916 4046 4123 4115 3982 4176 4214 4019 4080
8084 2479 961 960 838 923 956 896 897 943 937 877
8085 2480 4117 4015 4255 4282 4063 4134 4180 4191 4141 4263
8086 2481 685 586 718 687 635 646 700 681 632 694
8087 2482 1868 1891 1966 2543 1874 1927 1911 2180 2188 2230
8088 2483 432 341 408 383 377 369 413 396 346 391
8089 2484 512 484 622 539 492 549 563 522 506 572
8090 2485 5314 5235 5261 4932 5278 5243 5287 5141 5091 5107
8091 2486 256 275 175 112 254 216 212 158 193 123
8092 2487 5502 5440 5401 5135 5473 5417 5449 5337 5298 5281
8093 2488 1138 997 1172 1033 1062 1078 1153 1075 1015 1099
8094 2489 408 539 484 512 475 506 445 457 522 492
8095 2490 5314 5374 5197 4741 5348 5291 5262 5045 5086 4962
8096 2491 5186 4915 4709 4910 5057 4805 4941 5048 4901 4800
8097 2492 1478 1317 1483 1138 1389 1385 1477 1281 1213 1284
8098 2493 2191 2329 2417 2628 2265 2368 2298 2394 2467 2519
8099 2494 2191 2329 2628 2616 2265 2467 2394 2389 2463 2613
8100 2495 2417 2191 2628 2616 2298 2394 2519 2505 2389 2613
8101 2496 2329 2628 2616 2637 2467 2613 2463 2470 2623 2607
8102 2497 2329 2628 2637 2417 2467 2623 2470 2368 2519 2515
8103 2498 3183 3531 2835 3050 3350 3161 3002 3102 3281 2940
8104 2499 3183 3531 3050 3200 3350 3281 3102 3185 3354 3115
8105 2500 2835 3183 3050 3200 3002 3102 2940 3006 3185 3115
8106 2501 3531 3050 3200 3434 3281 3115 3354 3484 3234 3309
8107 2502 3531 3050 3434 2835 3281 3234 3484 3161 2940 3112
8108 2503 4301 4099 4059 4046 4194 4078 4168 4161 4069 4051
8109 2504 4741 4619 4276 4325 4677 4436 4500 4524 4460 4294
8110 2505 1118 1220 1138 1412 1165 1173 1126 1242 1303 1255
8111 2506 478 408 383 432 439 391 425 435 413 396
8112 2507 465 552 610 481 507 574 533 468 508 541
8113 2508 610 552 593 481 574 570 597 541 508 534
8114 2509 576 437 512 593 509 471 540 580 520 554
8115 2510 512 576 593 637 540 580 554 566 607 609
8116 2511 481 408 512 539 440 457 490 502 475 522
8117 2512 3336 3044 3494 3748 3184 3252 3407 3553 3396 3629
8118 2513 4025 4184 3929 4331 4103 4055 3976 4164 4249 4124
8119 2514 650 558 579 481 603 564 612 562 518 528
8120 2515 341 481 512 437 409 490 428 382 449 471
8121 2516 4099 4059 4046 3828 4078 4051 4069 3963 3942 3930
8122 2517 3969 4059 3748 4133 4010 3912 3854 4049 4093 3938
8123 2518 4059 3748 4133 4123 3912 3938 4093 4086 3932 4122
8124 2519 3969 4059 4133 4301 4010 4093 4049 4130 4168 4203
8125 2520 1320 1441 1625 1661 1373 1528 1462 1479 1545 1637
8126 2521 1441 1625 1661 1673 1528 1637 1545 1554 1634 1664
8127 2522 1661 1441 1673 1501 1545 1554 1664 1575 1457 1577
8128 2523 1673 1661 1501 1821 1664 1575 1577 1730 1733 1646
8129 2524 1661 1501 1821 1320 1575 1646 1733 1479 1395 1548
8130 2525 1673 1661 1821 1901 1664 1733 1730 1766 1768 1851
8131 2526 1661 1821 1901 1320 1733 1851 1768 1479 1548 1586
8132 2527 1673 1661 1901 1625 1664 1768 1766 1634 1637 1748
8133 2528 1661 1901 1625 1320 1768 1748 1637 1479 1586 1462
8134 2529 1821 1673 1901 1834 1730 1766 1851 1826 1744 1852
8135 2530 1901 1821 1834 2258 1851 1826 1852 2071 2031 2044
8136 2531 2680 3249 2784 2667 2946 3009 2728 2664 2942 2725
8137 2532 3249 2784 2667 3018 3009 2725 2942 3120 2891 2830
8138 2533 2667 3249 3018 2583 2942 3120 2830 2619 2889 2780
8139 2534 3018 2667 2583 2387 2830 2619 2780 2683 2520 2476
8140 2535 2667 2583 2387 2680 2619 2476 2520 2664 2621 2511
8141 2536 3018 2667 2387 2462 2830 2520 2683 2724 2560 2424
8142 2537 2667 2387 2462 2680 2520 2424 2560 2664 2511 2553
8143 2538 3018 2667 2462 2784 2830 2560 2724 2891 2725 2611
8144 2539 2667 2462 2784 2680 2560 2611 2725 2664 2553 2728
8145 2540 2387 3018 2462 2814 2683 2724 2424 2579 2913 2625
8146 2541 2894 2838 3218 3560 2863 3012 3041 3202 3174 3386
8147 2542 3005 3539 3211 3329 3256 3360 3090 3156 3419 3272
8148 2543 1172 1120 997 974 1143 1050 1078 1065 1043 985
8149 2544 2452 2648 2543 3200 2547 2580 2488 2782 2905 2847
8150 2545 3133 2848 2680 3005 2984 2754 2893 3058 2917 2826
8151 2546 1145 1087 1320 1172 1113 1190 1221 1155 1122 1237
8152 2547 1674 1821 1501 1320 1699 1646 1578 1485 1548 1395
8153 2548 2174 2387 2583 2680 2317 2476 2367 2401 2511 2621
8154 2549 2387 2245 2645 2814 2359 2429 2504 2579 2503 2723
8155 2550 1821 2174 1834 2258 1998 2003 1826 2031 2208 2044
8156 2551 2245 1891 1978 2543 2082 1930 2099 2378 2188 2243
8157 2552 1891 1674 1582 1412 1739 1613 1722 1626 1532 1488
8158 2553 3062 3329 3228 3494 3196 3273 3132 3269 3402 3344
8159 2554 3062 3329 3494 3416 3196 3402 3269 3226 3364 3438
8160 2555 3729 3560 3327 3929 3646 3431 3538 3832 3774 3693
8161 2556 3729 3560 3929 3966 3646 3774 3832 3846 3795 3935
8162 2557 4123 4153 4133 4513 4142 4140 4122 4305 4326 4313
8163 2558 4321 4439 4046 4415 4368 4230 4171 4353 4421 4221
8164 2559 4537 4234 4255 4684 4371 4241 4386 4599 4446 4455
8165 2560 25 23 33 112 18 21 22 52 56 48
8166 2561 4005 4215 4200 3929 4111 4208 4105 3953 4072 4068
8167 2562 3926 3704 3790 3494 3819 3749 3855 3752 3596 3652
8168 2563 4200 4291 4331 4184 4242 4308 4265 4186 4232 4249
8169 2564 4200 4291 4184 3929 4242 4232 4186 4068 4107 4055
8170 2565 3790 3235 3748 3044 3537 3502 3767 3424 3126 3396
8171 2566 3790 3235 3044 3494 3537 3126 3424 3652 3348 3252
8172 2567 395 383 215 341 384 303 307 348 346 271
8173 2568 4077 4291 3966 3729 4175 4121 4020 3909 4021 3846
8174 2569 2898 3235 3416 3062 3056 3320 3140 2973 3128 3226
8175 2570 1027 923 1042 960 970 976 1031 988 937 996
8176 2571 5357 5285 5562 5178 5320 5448 5479 5274 5229 5412
8177 2572 5068 4839 4525 4619 4952 4676 4791 4838 4724 4566
8178 2573 4797 4415 4411 4710 4600 4410 4591 4751 4552 4549
8179 2574 5346 5340 5085 4999 5338 5220 5221 5190 5187 5035
8180 2575 3044 3494 3062 2730 3252 3269 3045 2880 3076 2883
8181 2576 4184 3929 3729 3986 4055 3832 3965 4083 3945 3859
8182 2577 4942 4741 4462 4513 4840 4593 4702 4723 4622 4481
8183 2578 4378 4648 4109 4411 4518 4351 4238 4389 4533 4252
8184 2579 4378 4648 4411 4945 4518 4533 4389 4657 4798 4678
8185 2580 2382 2543 2710 2894 2457 2609 2539 2617 2709 2785
8186 2581 1674 1743 1320 1412 1705 1514 1485 1532 1569 1356
8187 2582 2248 2174 2258 2680 2207 2208 2247 2441 2401 2447
8188 2583 2314 2245 2814 2543 2276 2503 2550 2412 2378 2674
8189 2584 4999 4869 4709 5110 4929 4784 4851 5058 4980 4904
8190 2585 4999 4869 5110 5346 4929 4980 5058 5190 5129 5238
8191 2586 4869 5110 5346 5286 4980 5238 5129 5087 5202 5312
8192 2587 4869 5110 5286 5207 4980 5202 5087 5036 5158 5245
8193 2588 5110 5286 5207 5346 5202 5245 5158 5238 5312 5277
8194 2589 5286 4869 5207 5401 5087 5036 5245 5345 5168 5307
8195 2590 5207 5286 5401 5566 5245 5345 5307 5426 5454 5505
8196 2591 5286 4869 5401 5198 5087 5168 5345 5239 5034 5304
8197 2592 4618 4648 4325 4932 4635 4471 4461 4771 4788 4620
8198 2593 5509 5566 5550 5401 5539 5554 5530 5456 5505 5489
8199 2594 437 512 593 481 471 554 520 449 490 534
8200 2595 512 593 481 622 554 534 490 563 604 544
8201 2596 512 593 622 687 554 604 563 589 631 647
8202 2597 5314 4932 4741 4942 5141 4833 5045 5146 4931 4840
8203 2598 4932 4741 4942 4513 4833 4840 4931 4716 4622 4723
8204 2599 864 873 974 838 865 920 912 843 844 906
8205 2600 873 974 838 876 920 906 844 872 922 850
8206 2601 4061 3868 3329 3494 3962 3649 3780 3824 3713 3402
8207 2602 3775 3405 3560 3929 3618 3479 3671 3847 3725 3774
8208 2603 5594 5573 5566 5401 5587 5569 5580 5529 5508 5505
8209 2604 5346 5297 5340 4999 5318 5317 5338 5190 5164 5187
8210 2605 352 112 253 341 238 181 301 337 227 290
8211 2606 1581 1412 1749 1582 1489 1574 1658 1572 1488 1659
8212 2607 2680 3249 2667 2583 2946 2942 2664 2621 2889 2619
8213 2608 1320 1441 1661 1501 1373 1545 1479 1395 1457 1575
8214 2609 3359 3207 3134 2565 3296 3158 3241 2936 2858 2828
8215 2610 5197 4955 4619 5374 5076 4786 4907 5291 5191 5021
8216 2611 3370 2814 3018 2645 3074 2913 3189 2974 2723 2808
8217 2612 2042 1868 2543 1978 1958 2180 2275 2001 1917 2243
8218 2613 3000 3515 3370 2814 3244 3435 3170 2903 3139 3074
8219 2614 2195 2055 2042 2543 2131 2046 2119 2352 2281 2275
8220 2615 3365 2910 3249 2680 3116 3059 3308 2993 2775 2946
8221 2616 1222 1315 1441 1320 1262 1366 1323 1259 1310 1373
8222 2617 1419 1338 1581 1412 1377 1455 1490 1407 1370 1489
8223 2618 1860 1956 1931 2258 1908 1941 1889 2054 2096 2090
8224 2619 5452 5516 5178 5594 5485 5364 5329 5545 5560 5455
8225 2620 5186 5340 5297 4999 5268 5317 5241 5092 5187 5164
8226 2621 1089 1140 1172 974 1110 1152 1127 1026 1049 1065
8227 2622 3570 3615 2894 3560 3585 3233 3210 3559 3577 3202
8228 2623 2872 3282 3005 3329 3060 3123 2937 3082 3300 3156
8229 2624 776 770 622 748 771 702 704 756 751 678
8230 2625 4945 5235 4942 4932 5099 5095 4936 4934 5091 4931
8231 2626 960 974 876 838 964 922 914 896 906 850
8232 2627 960 974 838 1042 964 906 896 996 1002 933
8233 2628 367 250 341 229 308 283 349 295 223 277
8234 2629 4451 4710 4513 4411 4576 4601 4468 4418 4549 4453
8235 2630 2248 2417 2784 2680 2320 2586 2497 2441 2540 2728
8236 2631 2314 2835 2295 2543 2556 2549 2296 2412 2685 2407
8237 2632 1625 1743 1483 1320 1684 1606 1551 1462 1514 1392
8238 2633 4858 4846 5200 5225 4850 5014 5030 5039 5029 5215
8239 2634 3327 3782 3929 3405 3584 3851 3693 3356 3617 3725
8240 2635 3228 3643 3494 3868 3430 3569 3344 3607 3768 3713
8241 2636 4642 5160 4999 4684 4895 5075 4812 4658 4916 4841
8242 2637 4999 4642 4684 4536 4812 4658 4841 4762 4581 4597
8243 2638 3405 3560 3929 3327 3479 3774 3725 3356 3431 3693
8244 2639 3868 3329 3494 3228 3649 3402 3713 3607 3273 3344
8245 2640 4869 4844 4650 5207 4848 4746 4755 5036 5015 4923
8246 2641 4513 4378 4133 4411 4442 4247 4313 4453 4389 4268
8247 2642 4133 4513 4411 4123 4313 4453 4268 4122 4305 4253
8248 2643 4513 4378 4411 4945 4442 4389 4453 4726 4657 4678
8249 2644 3794 3282 3329 3717 3566 3300 3592 3755 3498 3532
8250 2645 3745 3615 3560 3078 3677 3577 3650 3412 3325 3318
8251 2646 1024 1140 974 993 1079 1049 998 1007 1058 983
8252 2647 4513 4378 4945 4932 4442 4657 4726 4716 4654 4934
8253 2648 637 546 687 512 584 614 659 566 527 589
8254 2649 5225 5374 4932 4854 5301 5184 5080 5041 5145 4890
8255 2650 4932 5225 4854 4619 5080 5041 4890 4772 4918 4737
8256 2651 4854 4932 4619 4741 4890 4772 4737 4795 4833 4677
8257 2652 4619 4854 4741 5197 4737 4795 4677 4907 5024 4962
8258 2653 4854 4932 4741 5374 4890 4833 4795 5145 5184 5086
8259 2654 4854 4741 5197 5374 4795 4962 5024 5145 5086 5291
8260 2655 4932 4619 4741 4325 4772 4677 4833 4620 4460 4524
8261 2656 4619 4854 5197 5374 4737 5024 4907 5021 5145 5291
8262 2657 120 67 229 112 92 127 157 93 70 154
8263 2658 3134 3018 2881 2462 3071 2941 2998 2772 2724 2659
8264 2659 1868 2024 2295 1966 1948 2158 2085 1911 1986 2133
8265 2660 1268 1376 1138 1317 1318 1238 1199 1289 1342 1213
8266 2661 1268 1376 1317 1483 1318 1342 1289 1371 1424 1385
8267 2662 1138 1268 1317 1483 1199 1289 1213 1284 1371 1385
8268 2663 1138 1268 1483 1320 1199 1371 1284 1212 1291 1392
8269 2664 4153 4378 4109 4133 4264 4238 4126 4140 4247 4116
8270 2665 4378 4109 4133 4411 4238 4116 4247 4389 4252 4268
8271 2666 4109 4133 4411 4183 4116 4268 4252 4144 4155 4293
8272 2667 2628 2417 2616 2680 2519 2505 2613 2650 2540 2642
8273 2668 3050 2835 3200 2543 2940 3006 3115 2777 2685 2847
8274 2669 539 478 383 432 505 425 463 482 435 396
8275 2670 481 512 622 539 490 563 544 502 522 572
8276 2671 4462 4942 4513 4710 4702 4723 4481 4579 4818 4601
8277 2672 4133 4411 4183 4415 4268 4293 4155 4269 4410 4292
8278 2673 4133 4411 4415 4123 4268 4410 4269 4122 4253 4260
8279 2674 697 791 781 687 746 780 738 684 739 728
8280 2675 5516 5619 5594 5452 5584 5609 5560 5485 5574 5545
8281 2676 4411 4513 4945 4710 4453 4726 4678 4549 4601 4817
8282 2677 5110 4999 5346 5085 5058 5190 5238 5097 5035 5221
8283 2678 3050 2894 2543 2452 2969 2709 2777 2726 2660 2488
8284 2679 3005 3016 2991 2417 3003 2999 2987 2694 2698 2688
8285 2680 1172 1393 1475 1483 1267 1433 1302 1307 1434 1474
8286 2681 4655 5110 5085 4709 4879 5097 4866 4680 4904 4893
8287 2682 5110 5085 4709 4999 5097 4893 4904 5058 5035 4851
8288 2683 253 352 341 383 301 337 290 320 358 346
8289 2684 5566 5516 5594 5401 5542 5560 5580 5505 5458 5529
8290 2685 4321 4301 4415 4046 4309 4346 4353 4171 4161 4221
8291 2686 5346 4869 5286 5198 5129 5087 5312 5275 5034 5239
8292 2687 1901 1743 1625 1320 1769 1684 1748 1586 1514 1462
8293 2688 2314 2462 2881 2814 2434 2659 2571 2550 2625 2845
8294 2689 2462 2248 2784 2680 2390 2497 2611 2553 2441 2728
8295 2690 1966 2314 2295 2543 2145 2296 2133 2230 2412 2407
8296 2691 1743 1966 1692 1412 1814 1825 1708 1569 1666 1547
8297 2692 4580 4325 4619 4932 4443 4460 4590 4754 4620 4772
8298 2693 232 69 112 229 135 87 160 210 125 154
8299 2694 1412 1483 1320 1138 1443 1392 1356 1255 1284 1212
8300 2695 2258 2417 2680 2616 2326 2540 2447 2423 2505 2642
8301 2696 2814 2835 2543 3200 2822 2685 2674 2996 3006 2847
8302 2697 4537 4910 4684 4255 4715 4790 4599 4386 4567 4455
8303 2698 2387 2645 3018 2814 2504 2808 2683 2579 2723 2913
8304 2699 1978 1891 1868 2543 1930 1874 1917 2243 2188 2180
8305 2700 5516 5207 5178 5594 5371 5189 5364 5560 5462 5455
8306 2701 4873 4945 4947 4411 4905 4940 4906 4643 4678 4674
8307 2702 593 552 437 481 570 493 520 534 508 449
8308 2703 5401 5286 5198 5346 5345 5239 5304 5367 5312 5275
8309 2704 5401 5286 5346 5509 5345 5312 5367 5456 5406 5433
8310 2705 5286 5346 5509 5207 5312 5433 5406 5245 5277 5369
8311 2706 5401 5286 5509 5566 5345 5406 5456 5505 5454 5539
8312 2707 5286 5509 5566 5207 5406 5539 5454 5245 5369 5426
8313 2708 2267 2174 2680 2258 2217 2401 2455 2260 2208 2447
8314 2709 1674 1402 1412 1320 1530 1399 1532 1485 1349 1356
8315 2710 2245 2379 2814 2543 2304 2582 2503 2378 2450 2674
8316 2711 250 232 341 229 234 280 283 223 210 277
8317 2712 432 367 341 229 392 349 377 329 295 277
8318 2713 4743 4915 4910 4521 4820 4901 4813 4628 4711 4705
8319 2714 4743 4915 4521 4331 4820 4711 4628 4530 4610 4413
8320 2715 4521 4743 4331 4255 4628 4530 4413 4375 4483 4289
8321 2716 4331 4521 4255 4282 4413 4375 4289 4296 4387 4263
8322 2717 4915 4521 4331 4709 4711 4413 4610 4805 4608 4512
8323 2718 4521 4331 4709 4282 4413 4512 4608 4387 4296 4485
8324 2719 4915 4521 4709 4910 4711 4608 4805 4901 4705 4800
8325 2720 4521 4743 4255 4910 4628 4483 4375 4705 4813 4567
8326 2721 69 112 229 67 87 154 125 58 70 127
8327 2722 5594 5548 5401 5178 5577 5487 5529 5455 5394 5294
8328 2723 4858 4732 4619 5225 4792 4667 4736 5039 4968 4918
8329 2724 1087 1220 1320 1138 1146 1263 1190 1105 1173 1212
8330 2725 770 806 687 838 787 743 729 802 815 762
8331 2726 341 232 437 318 280 335 382 321 268 365
8332 2727 341 232 318 112 280 268 321 227 160 213
8333 2728 687 770 838 939 729 802 762 813 856 882
8334 2729 781 748 593 770 766 670 691 773 751 680
8335 2730 5225 4854 4619 5374 5041 4737 4918 5301 5145 5021
8336 2731 4844 5143 5178 5401 4983 5161 5006 5157 5284 5294
8337 2732 5143 5178 5401 5548 5161 5294 5284 5382 5394 5487
8338 2733 1692 1789 2024 2056 1738 1907 1849 1878 1918 2034
8339 2734 2155 2027 1762 1992 2093 1900 1965 2074 2000 1877
8340 2735 5207 4650 5178 4844 4923 4914 5189 5015 4746 5006
8341 2736 4046 3790 4099 3828 3918 3940 4069 3930 3805 3963
8342 2737 5225 5359 4955 4846 5296 5179 5094 5029 5125 4896
8343 2738 3134 3018 2462 2784 3071 2724 2772 2954 2891 2611
8344 2739 1868 2024 1966 1692 1948 1986 1911 1765 1849 1825
8345 2740 5085 5186 4709 4999 5132 4941 4893 5035 5092 4851
8346 2741 3539 3005 3282 3329 3256 3123 3393 3419 3156 3300
8347 2742 1120 1172 1140 974 1143 1152 1125 1043 1065 1049
8348 2743 2838 2894 3615 3560 2863 3233 3199 3174 3202 3577
8349 2744 5374 5225 4955 4619 5301 5094 5191 5021 4918 4786
8350 2745 1762 1673 2155 1834 1711 1910 1965 1782 1744 1984
8351 2746 4059 4301 4046 4415 4168 4161 4051 4226 4346 4221
8352 2747 4046 4059 4415 4123 4051 4226 4221 4080 4086 4260
8353 2748 4059 4301 4415 4133 4168 4346 4226 4093 4203 4269
8354 2749 4415 4059 4133 4123 4226 4093 4269 4260 4086 4122
8355 2750 4255 4521 4910 4684 4375 4705 4567 4455 4592 4790
8356 2751 4255 4521 4684 4117 4375 4592 4455 4180 4304 4376
8357 2752 4255 4521 4117 4282 4375 4304 4180 4263 4387 4191
8358 2753 4521 4910 4684 4709 4705 4790 4592 4608 4800 4691
8359 2754 4684 4521 4709 4117 4592 4608 4691 4376 4304 4388
8360 2755 4378 4648 4945 4932 4518 4798 4657 4654 4788 4934
8361 2756 622 770 593 748 702 680 604 678 751 670
8362 2757 4709 4521 4282 4117 4608 4387 4485 4388 4304 4191
8363 2758 593 665 481 650 626 569 534 616 653 562
8364 2759 67 33 69 112 46 37 58 70 48 87
8365 2760 232 341 229 112 280 277 210 160 227 154
8366 2761 778 761 838 687 768 795 803 732 722 762
8367 2762 1673 1762 1625 1901 1711 1688 1634 1766 1828 1748
8368 2763 1673 1762 1901 1834 1711 1828 1766 1744 1782 1852
8369 2764 5135 5198 5401 4869 5166 5304 5281 4990 5034 5168
8370 2765 2565 2784 3207 3134 2677 2989 2858 2828 2954 3158
8371 2766 4932 4741 4513 4378 4833 4622 4716 4654 4551 4442
8372 2767 593 481 622 650 534 544 604 616 562 629
8373 2768 4932 4741 4378 4325 4833 4551 4654 4620 4524 4342
8374 2769 770 948 923 838 863 935 845 802 890 877
8375 2770 755 806 838 687 779 815 792 717 743 762
8376 2771 4710 4451 4415 4411 4576 4428 4552 4549 4418 4410
8377 2772 4513 4945 4942 4932 4726 4936 4723 4716 4934 4931
8378 2773 5207 5516 5401 5594 5371 5458 5307 5462 5560 5529
8379 2774 4684 4999 4536 4709 4841 4762 4597 4691 4851 4609
8380 2775 4684 4999 4709 5186 4841 4851 4691 4928 5092 4941
8381 2776 939 948 770 838 944 863 856 882 890 802
8382 2777 755 685 687 838 723 681 717 792 758 762
8383 2778 4619 4580 4932 5225 4590 4754 4772 4918 4903 5080
8384 2779 3966 4005 3560 3929 3984 3815 3795 3935 3953 3774
8385 2780 1042 939 974 838 986 949 1002 933 882 906
8386 2781 3416 3926 3329 3494 3730 3689 3364 3438 3752 3402
8387 2782 3200 3050 2543 2452 3115 2777 2847 2782 2726 2488
8388 2783 1320 1220 1412 1138 1263 1303 1356 1212 1173 1255
8389 2784 2602 2814 2543 3200 2707 2674 2566 2884 2996 2847
8390 2785 2425 2258 2680 2616 2327 2447 2546 2509 2423 2642
8391 2786 974 864 838 939 912 843 906 949 898 882
8392 2787 3005 2616 3433 2848 2792 2990 3206 2917 2727 3118
8393 2788 5178 4844 5401 5207 5006 5157 5294 5189 5015 5307
8394 2789 5401 5178 5207 5594 5294 5189 5307 5529 5455 5462
8395 2790 432 395 229 341 406 314 329 377 348 277
8396 2791 697 781 593 687 738 691 639 684 728 631
8397 2792 3062 3494 3235 3416 3269 3348 3128 3226 3438 3320
8398 2793 3729 3929 4291 3966 3832 4107 4021 3846 3935 4121
8399 2794 593 512 637 687 554 566 609 631 589 659
8400 2795 593 622 748 650 604 678 670 616 629 701
8401 2796 4301 4415 4133 4183 4346 4269 4203 4236 4292 4155
8402 2797 960 838 923 1042 896 877 937 996 933 976
8403 2798 5548 5562 5143 5178 5556 5397 5382 5394 5412 5161
8404 2799 4869 5207 5401 4844 5036 5307 5168 4848 5015 5157
8405 2800 3005 2616 2848 2680 2792 2727 2917 2826 2642 2754
8406 2801 1172 1138 1033 1087 1153 1075 1099 1122 1105 1056
8407 2802 4910 4684 4709 5186 4790 4691 4800 5048 4928 4941
8408 2803 2295 1868 1966 2543 2085 1911 2133 2407 2180 2230
8409 2804 3018 2881 2462 2814 2941 2659 2724 2913 2845 2625
8410 2805 2543 2835 2710 2894 2685 2766 2609 2709 2859 2785
8411 2806 4415 4324 4046 4123 4355 4176 4221 4260 4214 4080
8412 2807 1172 1138 1087 1320 1153 1105 1122 1237 1212 1190
8413 2808 1901 2248 2258 2155 2072 2247 2071 2020 2189 2192
8414 2809 1931 2258 2155 1834 2090 2192 2039 1873 2044 1984
8415 2810 5562 5601 5321 5178 5583 5514 5464 5412 5467 5249
8416 2811 770 687 593 781 729 631 680 773 728 691
8417 2812 770 687 781 791 729 728 773 774 739 780
8418 2813 770 687 791 939 729 739 774 856 813 867
8419 2814 650 539 481 622 588 502 562 629 572 544
8420 2815 2258 1901 2155 1834 2071 2020 2192 2044 1852 1984
8421 2816 4451 4123 4415 4411 4281 4260 4428 4418 4253 4410
8422 2817 4123 4451 4513 4411 4281 4468 4305 4253 4418 4453
8423 2818 2155 1901 1762 1834 2020 1828 1965 1984 1852 1782
8424 2819 864 838 939 687 843 882 898 772 762 813
8425 end elements
+0
-8403
interface/src/scilab/demos/data/tripod.mesh less more
0 % GETFEM MESH FILE
1 % GETFEM VERSION 2.0-20060124
2
3
4
5 BEGIN POINTS LIST
6
7 POINT 0 -27.3301 -10 37.3372
8 POINT 1 -26.7189 -10 36.2784
9 POINT 2 -26.2128 -9.99999 37.9822
10 POINT 3 -27.405 -8.6395 37.4669
11 POINT 4 -26.7672 -8.63574 36.3622
12 POINT 5 -25.5933 -10 36.9092
13 POINT 6 -26.2962 -8.560029999999999 38.1266
14 POINT 7 -25.5007 -8.679460000000001 36.6293
15 POINT 8 -26.1076 -10 35.2197
16 POINT 9 -25.199 -9.99999 38.5676
17 POINT 10 -27.4268 -7.27148 37.5047
18 POINT 11 -24.3081 -10 37.2356
19 POINT 12 -26.6146 -7.3152 36.0979
20 POINT 13 -25.955 -8.679460000000001 34.9554
21 POINT 14 -24.6971 -10 35.5868
22 POINT 15 -24.8519 -8.115640000000001 38.9933
23 POINT 16 -25.833 -6.85903 38.4382
24 POINT 17 -24.6055 -8.679460000000001 35.2892
25 POINT 18 -25.4788 -10 34.1305
26 POINT 19 -24.0531 -9.99999 39.2292
27 POINT 20 -25.1086 -6.90577 36.9623
28 POINT 21 -23.9118 -8.22631 37.5605
29 POINT 22 -25.8024 -7.35893 34.691
30 POINT 23 -27.3954 -5.9042 37.4502
31 POINT 24 -23.4087 -10 35.8874
32 POINT 25 -23.1683 -10 37.8936
33 POINT 26 -25.3261 -8.679460000000001 33.8662
34 POINT 27 -24.0695 -10 34.4998
35 POINT 28 -26.5566 -5.95245 35.9974
36 POINT 29 -23.7331 -8.115640000000001 39.6392
37 POINT 30 -25.7782 -5.51017 38.3434
38 POINT 31 -24.8499 -10 33.0413
39 POINT 32 -24.4148 -6.45261 39.2335
40 POINT 33 -22.9611 -9.99999 39.8596
41 POINT 34 -23.8084 -8.771280000000001 33.9085
42 POINT 35 -22.4273 -8.22631 37.3786
43 POINT 36 -24.6634 -5.6254 36.1912
44 POINT 37 -25.0052 -7.45075 33.3103
45 POINT 38 -27.3109 -4.54596 37.3038
46 POINT 39 -25.3572 -6.07856 33.9199
47 POINT 40 -21.7035 -10 37.6971
48 POINT 41 -21.9034 -10 35.7186
49 POINT 42 -22.4883 -10 34.3223
50 POINT 43 -24.529 -8.771280000000001 32.4854
51 POINT 44 -26.1114 -4.67207 35.2263
52 POINT 45 -24.6569 -5.01627 38.9128
53 POINT 46 -23.1471 -10 32.934
54 POINT 47 -22.9152 -5.99678 35.9781
55 POINT 48 -26.016 -4.0403 37.9308
56 POINT 49 -22.9287 -6.73241 40.1091
57 POINT 50 -22.2403 -8.42037 40.4801
58 POINT 51 -22.4121 -7.77047 34.3051
59 POINT 52 -24.208 -10 31.9296
60 POINT 53 -22.5708 -6.01264 38.0304
61 POINT 54 -21.8967 -9.99999 40.4742
62 POINT 55 -23.6089 -6.44993 33.7069
63 POINT 56 -21.1511 -10 39.0676
64 POINT 57 -24.8779 -4.16408 35.8152
65 POINT 58 -20.9315 -8.507110000000001 38.2566
66 POINT 59 -24.208 -7.54257 31.9296
67 POINT 60 -24.56 -6.17037 32.5392
68 POINT 61 -22.8879 -8.771280000000001 32.3432
69 POINT 62 -27.1738 -3.20498 37.0665
70 POINT 63 -23.1921 -5.04987 39.7643
71 POINT 64 -26.4599 -3.27796 35.8299
72 POINT 65 -23.8871 -8.771280000000001 31.3737
73 POINT 66 -24.8438 -3.52997 38.4815
74 POINT 67 -20.9829 -10 34.1517
75 POINT 68 -24.912 -4.79818 33.1488
76 POINT 69 -23.1296 -4.53546 35.6021
77 POINT 70 -20.4397 -10 35.5237
78 POINT 71 -20.5832 -7.78633 36.1755
79 POINT 72 -22.5062 -10 31.824
80 POINT 73 -21.5677 -10 32.7569
81 POINT 74 -21.1398 -8.42037 41.1155
82 POINT 75 -21.0751 -6.29344 38.9084
83 POINT 76 -25.8591 -2.70988 37.6589
84 POINT 77 -19.8862 -10 36.8929
85 POINT 78 -20.3546 -8.507110000000001 39.6383
86 POINT 79 -20.9276 -7.77047 34.1232
87 POINT 80 -23.5662 -10 30.8178
88 POINT 81 -21.4234 -7.01421 40.9895
89 POINT 82 -20.7789 -9.99999 41.1195
90 POINT 83 -22.8118 -6.54175 32.3262
91 POINT 84 -25.2264 -2.76997 36.4187
92 POINT 85 -20.0369 -10 39.7109
93 POINT 86 -23.1637 -5.16956 32.9358
94 POINT 87 -21.4916 -7.77047 32.7398
95 POINT 88 -20.3459 -6.88441 38.6756
96 POINT 89 -19.8541 -8.3773 35.9427
97 POINT 90 -25.2604 -3.40407 33.7524
98 POINT 91 -23.3602 -3.56451 39.3471
99 POINT 92 -21.6678 -4.56999 36.4551
100 POINT 93 -20.7268 -5.57266 36.8272
101 POINT 94 -23.7597 -6.38988 31.1529
102 POINT 95 -21.7184 -5.33391 40.6612
103 POINT 96 -21.0711 -5.5568 34.775
104 POINT 97 -19.2858 -10 38.2872
105 POINT 98 -24.1116 -5.01769 31.7626
106 POINT 99 -26.985 -1.88936 36.7395
107 POINT 100 -21.3235 -4.58585 38.5073
108 POINT 101 -19.2771 -8.3773 37.3244
109 POINT 102 -24.4302 -2.3001 38.3493
110 POINT 103 -19.9976 -6.16363 36.5945
111 POINT 104 -26.297 -1.94966 35.5477
112 POINT 105 -20.342 -6.14777 34.5422
113 POINT 106 -23.2707 -7.40275 30.306
114 POINT 107 -18.9753 -10 35.3108
115 POINT 108 -21.9505 -8.63147 30.7197
116 POINT 109 -25.6089 -2.00996 34.3559
117 POINT 110 -19.7751 -9.99999 41.6991
118 POINT 111 -21.4155 -5.54094 32.7228
119 POINT 112 -25.3939 -1.48807 37.4917
120 POINT 113 -19.2685 -6.7546 36.3617
121 POINT 114 -22.9481 -10 29.7474
122 POINT 115 -19.1556 -10 40.626
123 POINT 116 -20.8786 -10 31.3258
124 POINT 117 -21.8381 -10 30.406
125 POINT 118 -19.8585 -8.560029999999999 41.8434
126 POINT 119 -21.9202 -3.59903 40.1874
127 POINT 120 -20.1772 -7.14205 41.712
128 POINT 121 -22.9497 -8.63147 29.7501
129 POINT 122 -19.4405 -7.77047 33.924
130 POINT 123 -24.7937 -1.54839 36.2488
131 POINT 124 -22.5784 -3.04523 34.4754
132 POINT 125 -22.3634 -5.38907 31.5495
133 POINT 126 -22.5444 -2.41113 37.1418
134 POINT 127 -18.3758 -10 36.7063
135 POINT 128 -18.9573 -8.665609999999999 40.3997
136 POINT 129 -22.9639 -2.33455 39.2076
137 POINT 130 -19.2795 -7.17272 40.3347
138 POINT 131 -19.197 -10 33.356
139 POINT 132 -18.4213 -10 39.2199
140 POINT 133 -20.4817 -8.29275 31.4858
141 POINT 134 -24.0712 -3.44634 31.6926
142 POINT 135 -18.367 -8.3773 35.7435
143 POINT 136 -19.74 -10 31.9832
144 POINT 137 -21.8744 -6.40194 30.7026
145 POINT 138 -23.3113 -5.23719 30.3763
146 POINT 139 -18.2108 -8.665609999999999 38.9835
147 POINT 140 -20.135 -5.79031 41.6388
148 POINT 141 -26.7457 -0.607097 36.3249
149 POINT 142 -19.7629 -4.2674 36.57
150 POINT 143 -20.4858 -3.43247 36.3146
151 POINT 144 -23.9785 -1.08681 38.1416
152 POINT 145 -17.7937 -10 38.1327
153 POINT 146 -19.6881 -7.77047 31.9612
154 POINT 147 -18.2021 -7.04291 38.0208
155 POINT 148 -20.1072 -4.25154 34.5178
156 POINT 149 -26.0331 -0.687941 35.0906
157 POINT 150 -18.8528 -5.88041 39.5955
158 POINT 151 -22.9269 -1.65112 35.079
159 POINT 152 -20.3596 -3.28058 38.2501
160 POINT 153 -20.8302 -3.41661 34.2624
161 POINT 154 -22.8223 -6.25006 29.5294
162 POINT 155 -19.0337 -4.85837 36.3372
163 POINT 156 -21.0826 -2.44565 37.9947
164 POINT 157 -18.4816 -6.54175 34.8262
165 POINT 158 -24.4197 -2.05222 32.2961
166 POINT 159 -22.3229 -3.81772 31.4795
167 POINT 160 -20.4055 -6.06322 31.4687
168 POINT 161 -20.4013 -4.07464 41.1803
169 POINT 162 -18.8488 -5.14378 35.4622
170 POINT 163 -22.3857 -8.63171 28.7732
171 POINT 164 -17.4168 -8.771280000000001 37.6084
172 POINT 165 -22.3301 -10 28.6769
173 POINT 166 -18.6699 -10 42.3372
174 POINT 167 -25.1431 -0.211355 37.0572
175 POINT 168 -21.273 -8.56096 29.4273
176 POINT 169 -18.5045 -5.15964 37.5144
177 POINT 170 -18.0586 -10 41.2784
178 POINT 171 -21.2124 -10 29.3223
179 POINT 172 -18.7448 -8.6395 42.4669
180 POINT 173 -21.3534 -5.91135 30.2955
181 POINT 174 -17.4656 -10 35.1252
182 POINT 175 -18.107 -8.63574 41.3622
183 POINT 176 -21.5156 -1.97862 39.9185
184 POINT 177 -22.1117 -1.18955 36.9718
185 POINT 178 -24.3542 -0.310198 35.827
186 POINT 179 -25.1845 -0.692438 33.6208
187 POINT 180 -19.711 -4.34799 33.4499
188 POINT 181 -19.1012 -4.17282 39.1945
189 POINT 182 -17.4474 -10 40.2197
190 POINT 183 -23.2708 -3.66584 30.3063
191 POINT 184 -20.1981 -10 29.9078
192 POINT 185 -17.4081 -7.14858 36.6456
193 POINT 186 -22.3333 -7.26293 28.6824
194 POINT 187 -18.7666 -7.27148 42.5047
195 POINT 188 -19.8818 -8.234920000000001 30.2191
196 POINT 189 -17.9511 -7.30135 41.0923
197 POINT 190 -17.7753 -5.75061 37.2816
198 POINT 191 -17.2915 -8.665609999999999 39.9498
199 POINT 192 -18.9088 -6.2568 32.3814
200 POINT 193 -17.7324 -10 33.1423
201 POINT 194 -16.8831 -10 36.5505
202 POINT 195 -22.5062 -0.740934 38.8369
203 POINT 196 -16.8185 -10 39.1305
204 POINT 197 -20.7781 -6.92581 29.5029
205 POINT 198 -19.0526 -10 30.5692
206 POINT 199 -22.6117 -4.94792 29.1647
207 POINT 200 -20.2456 -2.74445 40.9106
208 POINT 201 -26.4572 0.634074 35.8252
209 POINT 202 -17.1357 -7.33122 39.6799
210 POINT 203 -18.7351 -5.9042 42.4502
211 POINT 204 -16.6627 -8.665609999999999 38.8606
212 POINT 205 -18.0622 -5.34783 34.0996
213 POINT 206 -23.5629 0.180962 37.7624
214 POINT 207 -18.7594 -8.234920000000001 30.8671
215 POINT 208 -17.8932 -5.93859 40.9919
216 POINT 209 -21.7377 -1.69338 33.0192
217 POINT 210 -19.45 -2.8076 39.7986
218 POINT 211 -16.5067 -8.771280000000001 36.0274
219 POINT 212 -20.3904 -4.58013 30.7146
220 POINT 213 -22.1742 -5.92755 28.4068
221 POINT 214 -18.799 -2.96213 36.3128
222 POINT 215 -16.9339 -8.486330000000001 33.5827
223 POINT 216 -19.9173 -1.68069 37.9178
224 POINT 217 -19.5219 -2.12721 36.0574
225 POINT 218 -16.1897 -10 38.0413
226 POINT 219 -25.6086 0.6295770000000001 34.3554
227 POINT 220 -19.3956 -6.5855 30.2146
228 POINT 221 -17.9608 -10 31.1995
229 POINT 222 -22.5025 -0.333597 34.3439
230 POINT 223 -16.2423 -10 35.4405
231 POINT 224 -16.6188 -10 33.7852
232 POINT 225 -21.3383 -4.42825 29.5413
233 POINT 226 -20.3825 -2.92205 31.8732
234 POINT 227 -16.3417 -7.4369 38.3047
235 POINT 228 -20.2449 -1.29228 35.8021
236 POINT 229 -20.6402 -0.845758 37.6625
237 POINT 230 -24.6786 1.01589 36.6284
238 POINT 231 -23.2304 -2.09449 30.2363
239 POINT 232 -18.6506 -4.54596 42.3038
240 POINT 233 -23.9952 -0.7347050000000001 31.561
241 POINT 234 -16.7089 -6.03892 38.9407
242 POINT 235 -20.5944 -5.59754 29.1848
243 POINT 236 -18.4028 -3.05859 35.2449
244 POINT 237 -18.9716 -4.5818 31.535
245 POINT 238 -15.8687 -8.771280000000001 37.4854
246 POINT 239 -21.6722 0.0486418 36.55
247 POINT 240 -17.5406 -3.85437 37.2572
248 POINT 241 -22.5713 -3.37657 29.0947
249 POINT 242 -17.4664 -4.64629 40.2527
250 POINT 243 -17.2636 -8.41972 31.7393
251 POINT 244 -21.0355 -0.399239 39.5229
252 POINT 245 -23.9298 1.00732 35.0918
253 POINT 246 -17.9025 -6.77937 31.1277
254 POINT 247 -15.5478 -10 36.9296
255 POINT 248 -22.0831 0.511033 38.4313
256 POINT 249 -24.76 0.625081 32.8857
257 POINT 250 -16.8969 -10 31.8138
258 POINT 251 -17.1444 -3.95083 36.1893
259 POINT 252 -18.0066 -3.15504 34.177
260 POINT 253 -15.975 -7.25761 34.4849
261 POINT 254 -17.2044 -5.06385 33.1086
262 POINT 255 -15.5478 -7.54257 36.9296
263 POINT 256 -15.915 -6.14459 37.5656
264 POINT 257 -26.1213 1.82662 35.2435
265 POINT 258 -17.8894 -2.48916 37.8612
266 POINT 259 -21.9122 -4.65864 27.9531
267 POINT 260 -19.7813 -1.13802 40.5869
268 POINT 261 -18.5136 -3.20498 42.0665
269 POINT 262 -19.447 -5.02748 29.5833
270 POINT 263 -23.0996 1.38956 37.298
271 POINT 264 -17.8152 -3.28107 40.8568
272 POINT 265 -15.5693 -8.63147 34.4038
273 POINT 266 -15.2269 -8.771280000000001 36.3737
274 POINT 267 -21.2979 -2.8569 29.4713
275 POINT 268 -16.2822 -4.74662 38.2016
276 POINT 269 -19.0076 -1.20771 39.4663
277 POINT 270 -19.0743 -1.63265 33.6682
278 POINT 271 -16.1669 -8.41972 32.3725
279 POINT 272 -15.4012 -10 34.1223
280 POINT 273 -25.2501 1.7942 33.7344
281 POINT 274 -16.4022 -6.97265 32.0401
282 POINT 275 -14.9059 -10 35.8178
283 POINT 276 -19.7972 -0.797722 33.4128
284 POINT 277 -15.7796 -10 32.4588
285 POINT 278 -20.0724 0.269102 37.3215
286 POINT 279 -21.29 -1.19883 30.63
287 POINT 280 -18.0222 -5.02937 30.4069
288 POINT 281 -24.3271 2.19121 36.0196
289 POINT 282 -22.0548 0.160957 31.9546
290 POINT 283 -20.5922 -4.12659 28.3798
291 POINT 284 -16.6309 -3.3814 38.8057
292 POINT 285 -23.2743 -0.2549 30.3123
293 POINT 286 -16.3577 -4.15488 34.8267
294 POINT 287 -15.1283 -6.34865 36.203
295 POINT 288 -20.4903 0.7407550000000001 39.2155
296 POINT 289 -18.6781 -1.7291 32.6003
297 POINT 290 -15.4955 -4.95067 36.839
298 POINT 291 -18.3248 -1.88936 41.7395
299 POINT 292 -22.1694 -2.26902 28.3985
300 POINT 293 -24.0391 1.10489 31.6369
301 POINT 294 -20.9136 0.7665419999999999 34.2223
302 POINT 295 -15.5555 -6.06369 33.7583
303 POINT 296 -24.6244 1.73809 32.6507
304 POINT 297 -17.6523 -1.95277 40.5746
305 POINT 298 -21.5175 1.61108 38.061
306 POINT 299 -21.0788 1.336 35.8414
307 POINT 300 -17.2672 -3.38885 32.2622
308 POINT 301 -19.5172 0.123715 40.1294
309 POINT 302 -16.7293 -2.41729 35.852
310 POINT 303 -14.6104 -7.40275 35.306
311 POINT 304 -16.5571 -5.21268 31.3439
312 POINT 305 -16.9797 -2.01618 39.4097
313 POINT 306 -17.4828 -1.14204 37.157
314 POINT 307 -23.1712 1.72522 32.7641
315 POINT 308 -14.8362 -8.56096 33.1437
316 POINT 309 -23.3364 2.29468 34.3832
317 POINT 310 -21.554 -3.48764 27.3326
318 POINT 311 -14.7755 -10 33.0386
319 POINT 312 -14.2879 -10 34.7474
320 POINT 313 -18.2057 -0.307106 36.9017
321 POINT 314 -15.1196 -7.11838 32.8125
322 POINT 315 -25.7401 2.96332 34.5832
323 POINT 316 -14.2895 -8.63147 34.7501
324 POINT 317 -19.3653 -3.61931 28.7064
325 POINT 318 -18.6011 0.139412 38.7621
326 POINT 319 -16.3331 -2.51374 34.7841
327 POINT 320 -19.3575 -1.96124 29.865
328 POINT 321 -22.5352 2.7172 36.6406
329 POINT 322 -15.4709 -3.30953 36.7964
330 POINT 323 -25.1144 2.90721 33.4995
331 POINT 324 -14.7088 -5.15473 35.4765
332 POINT 325 -15.6183 -4.3887 32.9119
333 POINT 326 -18.0854 -0.607097 41.3249
334 POINT 327 -17.9193 -3.62099 29.5426
335 POINT 328 -18.8933 0.801363 35.3201
336 POINT 329 -20.1928 -3.01166 27.6878
337 POINT 330 -21.3339 0.6407620000000001 30.7059
338 POINT 331 -17.3883 -0.691052 40.1175
339 POINT 332 -14.9503 -5.78782 32.5193
340 POINT 333 -14.191 -6.20883 34.5795
341 POINT 334 -22.3344 -0.228759 28.6843
342 POINT 335 -23.9034 2.21789 31.402
343 POINT 336 -17.9387 -1.96292 30.6855
344 POINT 337 -15.8196 -1.94431 37.4004
345 POINT 338 -19.8998 1.83048 38.8408
346 POINT 339 -24.4887 2.85109 32.4157
347 POINT 340 -19.3496 -0.303167 31.0236
348 POINT 341 -23.3182 1.58469 30.3882
349 POINT 342 -23.7126 3.47102 35.3089
350 POINT 343 -13.7255 -8.63171 33.7732
351 POINT 344 -13.6699 -10 33.6769
352 POINT 345 -17.0046 -1.0878 33.2074
353 POINT 346 -18.9221 1.24094 39.8079
354 POINT 347 -17.7581 0.187448 34.5125
355 POINT 348 -20.4659 1.2611 31.8331
356 POINT 349 -16.5731 -0.669057 38.7055
357 POINT 350 -14.6842 -3.51358 35.4338
358 POINT 351 -16.5278 -3.62266 30.3473
359 POINT 352 -23.0355 2.83823 32.5292
360 POINT 353 -22.4502 2.20503 31.5154
361 POINT 354 -23.2007 3.40769 34.1482
362 POINT 355 -13.6731 -7.26293 33.6824
363 POINT 356 -20.9464 2.92568 37.3848
364 POINT 357 -15.5937 -2.74755 32.8692
365 POINT 358 -21.1083 -2.44356 26.5607
366 POINT 359 -25.3159 4.0373 33.8484
367 POINT 360 -13.9804 -4.90669 34.2148
368 POINT 361 -18.0332 1.25427 38.4211
369 POINT 362 -17.7969 0.634074 40.8252
370 POINT 363 -18.7967 -2.50251 27.9589
371 POINT 364 -20.4018 -0.99117 27.9194
372 POINT 365 -15.0266 -4.12835 31.5943
373 POINT 366 -21.5823 2.82536 32.6426
374 POINT 367 -21.7475 3.39482 34.2617
375 POINT 368 -17.7182 -0.279609 31.4726
376 POINT 369 -23.5462 2.81249 30.7832
377 POINT 370 -24.1315 3.44569 31.7969
378 POINT 371 -24.6699 3.94657 32.7296
379 POINT 372 -13.5139 -5.92755 33.4068
380 POINT 373 -18.747 -0.926814 29.0443
381 POINT 374 -16.3073 -1.93936 31.1345
382 POINT 375 -16.9818 0.656068 39.4133
383 POINT 376 -18.4457 1.29592 32.9308
384 POINT 377 -21.9127 3.96429 35.8807
385 POINT 378 -18.7208 2.36274 36.8395
386 POINT 379 -17.3582 -2.50398 28.7911
387 POINT 380 -19.514 2.96265 38.1805
388 POINT 381 -20.394 0.666903 29.078
389 POINT 382 -14.6596 -1.87244 35.3911
390 POINT 383 -15.4131 -0.597187 36.6962
391 POINT 384 -22.6782 3.43283 31.9104
392 POINT 385 -22.3783 1.61083 28.7603
393 POINT 386 -18.5619 2.40496 39.184
394 POINT 387 -13.9558 -3.26554 34.1721
395 POINT 388 -19.5678 -1.97729 26.8649
396 POINT 389 -23.2679 4.51144 34.5385
397 POINT 390 -15.3732 -1.06424 33.6564
398 POINT 391 -19.562 2.86018 33.7404
399 POINT 392 -21.2734 -0.403291 26.8465
400 POINT 393 -21.5103 2.23117 29.8875
401 POINT 394 -16.1666 0.678063 38.0013
402 POINT 395 -16.1007 0.511283 35.1146
403 POINT 396 -23.2194 4.37047 33.0388
404 POINT 397 -19.7272 3.42964 35.3594
405 POINT 398 -20.5186 3.99925 36.6512
406 POINT 399 -17.4611 1.82662 40.2435
407 POINT 400 -13.252 -4.65864 32.9531
408 POINT 401 -22.9536 3.01924 29.7569
409 POINT 402 -17.6256 2.3561 37.7229
410 POINT 403 -23.7742 4.0403 31.1781
411 POINT 404 -24.3127 4.54118 32.1108
412 POINT 405 -16.8542 1.78653 36.4197
413 POINT 406 -17.0641 -0.729643 29.6761
414 POINT 407 -16.0868 -0.256051 31.9216
415 POINT 408 -18.6844 1.83555 31.3359
416 POINT 409 -24.8512 5.04206 33.0435
417 POINT 410 -14.6272 -3.01323 30.9026
418 POINT 411 -20.5863 -1.55224 25.6565
419 POINT 412 -16.8143 1.31948 33.3798
420 POINT 413 -21.7662 4.35761 33.1522
421 POINT 414 -22.0857 3.63957 30.8841
422 POINT 415 -16.6232 1.82069 38.7923
423 POINT 416 -15.7165 -2.25505 29.4454
424 POINT 417 -21.9426 4.96247 34.8063
425 POINT 418 -18.1444 -1.55046 27.065
426 POINT 419 -14.6587 -0.143873 35.3897
427 POINT 420 -19.7914 0.0432569 27.0986
428 POINT 421 -19.8008 3.39982 32.1454
429 POINT 422 -18.3132 3.46457 36.1413
430 POINT 423 -19.0846 4.03415 37.4445
431 POINT 424 -13.5538 -2.158 33.4759
432 POINT 425 -15.4122 1.13138 36.6948
433 POINT 426 -15.9906 1.73478 37.6965
434 POINT 427 -18.2743 1.08779 29.4807
435 POINT 428 -20.3729 4.39811 33.9026
436 POINT 429 -18.1536 3.50697 38.4854
437 POINT 430 -22.8622 4.96507 32.42
438 POINT 431 -17.5418 2.895 34.8381
439 POINT 432 -23.3368 5.4723 33.3957
440 POINT 433 -23.1817 4.24704 30.1518
441 POINT 434 -14.9949 0.225724 33.1994
442 POINT 435 -20.5573 5.00646 35.5557
443 POINT 436 -21.4384 1.63697 27.1323
444 POINT 437 -12.8937 -3.48764 32.3326
445 POINT 438 -14.2675 -1.3498 31.7412
446 POINT 439 -17.053 1.85911 31.7849
447 POINT 440 -17.4496 3.41282 37.4181
448 POINT 441 -19.014 -1.16802 25.9057
449 POINT 442 -17.0799 2.96332 39.5832
450 POINT 443 -16.6782 2.84325 36.1148
451 POINT 444 -15.4327 -0.706084 30.1251
452 POINT 445 -16.0998 2.23985 35.1132
453 POINT 446 -20.7196 0.400598 25.8874
454 POINT 447 -22.0137 3.04538 28.1289
455 POINT 448 -19.7288 2.80562 29.3903
456 POINT 449 -16.4472 2.87741 38.4874
457 POINT 450 -16.4468 -1.34719 27.71
458 POINT 451 -23.793 5.43015 31.2107
459 POINT 452 -17.7805 3.43464 33.2431
460 POINT 453 -21.049 5.06072 32.5024
461 POINT 454 -24.3488 5.9715 32.1733
462 POINT 455 -22.2696 5.17182 31.3937
463 POINT 456 -16.6429 1.11135 29.9297
464 POINT 457 -19.1498 5.03903 36.3308
465 POINT 458 -18.3527 4.43293 35.0003
466 POINT 459 -21.9501 5.88985 33.6618
467 POINT 460 -15.2362 2.1881 36.3899
468 POINT 461 -15.8145 2.7915 37.3916
469 POINT 462 -13.7205 -0.0474808 33.7646
470 POINT 463 -14.6579 1.58469 35.3882
471 POINT 464 -22.5891 4.45378 29.1255
472 POINT 465 -20.0008 -0.835778 24.6424
473 POINT 466 -17.6717 0.464147 27.5014
474 POINT 467 -20.3042 4.21403 30.3868
475 POINT 468 -17.1167 4.08628 36.8415
476 POINT 469 -17.7076 4.54495 37.7129
477 POINT 470 -19.3187 2.05786 27.535
478 POINT 471 -16.3453 3.5167 35.5382
479 POINT 472 -13.7346 -1.75143 29.9161
480 POINT 473 -20.5372 5.93044 34.4236
481 POINT 474 -14.4341 0.7607120000000001 32.0298
482 POINT 475 -18.9424 0.178126 25.6282
483 POINT 476 -22.8193 6.3679 32.4994
484 POINT 477 -12.4481 -2.44356 31.5607
485 POINT 478 -23.2005 5.63689 30.1844
486 POINT 479 -16.6556 4.0373 38.8484
487 POINT 480 -18.0192 3.97427 31.6482
488 POINT 481 -15.1616 2.33624 33.4881
489 POINT 482 -18.5914 4.97257 33.4054
490 POINT 483 -14.7785 -1.15612 28.3286
491 POINT 484 -20.5894 1.77184 25.6619
492 POINT 485 -17.1389 -0.679546 25.9278
493 POINT 486 -15.4816 3.46495 36.815
494 POINT 487 -16.0027 3.91678 37.7175
495 POINT 488 -14.9033 2.86155 35.8133
496 POINT 489 -17.6091 3.22651 29.793
497 POINT 490 -19.1635 5.97086 35.1625
498 POINT 491 -15.9888 0.661318 28.1332
499 POINT 492 -21.4329 3.77474 27.1229
500 POINT 493 -21.5524 5.87493 30.7438
501 POINT 494 -15.7353 3.67439 34.4818
502 POINT 495 -21.2418 6.62385 33.0322
503 POINT 496 -17.8018 5.51427 36.5393
504 POINT 497 -23.8118 6.82 31.2432
505 POINT 498 -17.1561 5.05463 35.7005
506 POINT 499 -19.8706 0.535467 24.4169
507 POINT 500 -13.7196 1.68108 33.7631
508 POINT 501 -15.4003 2.87587 31.8931
509 POINT 502 -19.2675 5.63518 32.0052
510 POINT 503 -17.9459 -0.419562 24.7172
511 POINT 504 -12.6147 -0.33304 31.8494
512 POINT 505 -13.78 0.310678 30.2333
513 POINT 506 -22.0083 5.18315 28.1195
514 POINT 507 -19.7234 4.94339 29.3809
515 POINT 508 -20.7652 3.12445 25.9664
516 POINT 509 -14.2934 3.01924 34.7569
517 POINT 510 -19.8427 6.66124 33.7832
518 POINT 511 -17.199 2.47875 27.9378
519 POINT 512 -19.3663 -0.311912 23.5435
520 POINT 513 -15.4374 -0.538784 26.5298
521 POINT 514 -22.0723 7.06266 31.8593
522 POINT 515 -15.6698 4.59023 37.1409
523 POINT 516 -15.1488 4.13841 36.2384
524 POINT 517 -15.9741 4.21403 32.8868
525 POINT 518 -16.1909 5.04206 38.0435
526 POINT 519 -19.4169 3.75472 27.381
527 POINT 520 -13.1649 -0.988675 28.9294
528 POINT 521 -14.9902 2.12811 30.0379
529 POINT 522 -11.926 -1.55224 30.6565
530 POINT 523 -18.4697 2.19273 26.0646
531 POINT 524 -16.5462 5.21232 34.644
532 POINT 525 -22.6181 6.35397 29.1758
533 POINT 526 -16.6258 1.17734 26.2893
534 POINT 527 -17.7512 5.87369 32.4409
535 POINT 528 -20.5158 7.29608 32.3622
536 POINT 529 -19.7404 1.90671 24.1914
537 POINT 530 -14.5388 4.29609 35.182
538 POINT 531 -17.2826 6.40646 35.6401
539 POINT 532 -20.8542 6.54445 29.7437
540 POINT 533 -17.7073 4.92337 29.639
541 POINT 534 -17.8965 0.891317 24.4161
542 POINT 535 -13.8208 -0.458665 27.2233
543 POINT 536 -23.2434 7.58243 30.2588
544 POINT 537 -18.3437 6.92825 34.231
545 POINT 538 -12.7814 1.77747 32.138
546 POINT 539 -18.6456 3.54534 26.3691
547 POINT 540 -18.5693 6.3047 31.005
548 POINT 541 -19.2195 0.956546 23.2892
549 POINT 542 -12.061 0.470848 30.8902
550 POINT 543 -16.0176 3.79863 29.2122
551 POINT 544 -13.3551 3.11563 33.1318
552 POINT 545 -16.0526 -0.124079 24.6408
553 POINT 546 -12.9323 0.40361 28.7651
554 POINT 547 -15.1501 5.4792 36.2408
555 POINT 548 -14.3972 1.23344 27.5525
556 POINT 549 -17.2816 -0.0558159 23.5665
557 POINT 550 -15.6885 5.9715 37.1733
558 POINT 551 -21.4275 5.91251 27.1135
559 POINT 552 -21.4962 7.80116 30.8615
560 POINT 553 -17.2972 4.17561 27.7838
561 POINT 554 -19.9162 3.25932 24.4959
562 POINT 555 -18.9993 7.53956 32.8017
563 POINT 556 -18.6987 0.00638008 22.387
564 POINT 557 -13.9289 4.45378 34.1255
565 POINT 558 -11.3405 -0.835778 29.6424
566 POINT 559 -22.0373 7.08333 28.1698
567 POINT 560 -20.7598 5.26222 25.957
568 POINT 561 -15.3538 5.22916 31.8126
569 POINT 562 -15.6075 3.05087 27.357
570 POINT 563 -15.706 6.11344 33.6796
571 POINT 564 -14.4345 -0.076471 25.3268
572 POINT 565 -17.8678 3.08974 25.022
573 POINT 566 -14.5402 5.63689 35.1844
574 POINT 567 -12.1636 -0.34744 27.8114
575 POINT 568 -16.9977 6.49126 31.3887
576 POINT 569 -19.4115 5.89249 27.3716
577 POINT 570 -19.8327 8.01441 31.3888
578 POINT 571 -13.3987 2.70023 29.4572
579 POINT 572 -22.6472 8.254160000000001 29.226
580 POINT 573 -20.2734 7.27382 28.7377
581 POINT 574 -11.9337 1.87041 30.6698
582 POINT 575 -20.0921 4.61192 24.8005
583 POINT 576 -15.0343 1.74946 25.7086
584 POINT 577 -16.4218 7.31516 34.6926
585 POINT 578 -17.4831 7.77311 33.2336
586 POINT 579 -18.7437 5.2422 26.2151
587 POINT 580 -19.1385 2.80372 23.1488
588 POINT 581 -15.1515 6.82 36.2432
589 POINT 582 -11.2133 0.5637799999999999 29.422
590 POINT 583 -17.2946 1.78833 23.3735
591 POINT 584 -20.9185 6.50274 26.2318
592 POINT 585 -12.8031 -0.0339412 26.0215
593 POINT 586 -20.7825 8.45276 29.8569
594 POINT 587 -12.7349 4.13076 32.0575
595 POINT 588 -15.8954 2.81219 25.1624
596 POINT 589 -18.6176 1.85356 22.2466
597 POINT 590 -18.3096 8.226749999999999 31.8091
598 POINT 591 -15.6491 0.112582 22.9987
599 POINT 592 -17.3954 5.87247 27.6297
600 POINT 593 -10.7061 -0.311912 28.5435
601 POINT 594 -16.9319 0.12133 21.9082
602 POINT 595 -18.0143 0.111216 21.2016
603 POINT 596 -18.2573 7.25379 28.9958
604 POINT 597 -21.4065 7.61118 27.0771
605 POINT 598 -11.9446 0.9646980000000001 27.6116
606 POINT 599 -20.2507 5.85245 25.0753
607 POINT 600 -13.4095 1.79453 26.3989
608 POINT 601 -14.5293 0.112582 23.6452
609 POINT 602 -13.3086 5.46891 33.0512
610 POINT 603 -15.7057 4.74773 27.203
611 POINT 604 -13.9579 6.35397 34.1758
612 POINT 605 -12.0463 3.46249 30.8648
613 POINT 606 -19.3143 4.15633 23.4534
614 POINT 607 -18.9024 6.48272 26.4899
615 POINT 608 -17.966 4.7866 24.868
616 POINT 609 -19.1193 8.635120000000001 30.3618
617 POINT 610 -11.4983 -0.0156654 26.6591
618 POINT 611 -15.0858 7.12858 32.6053
619 POINT 612 -22.0266 8.83113 28.1512
620 POINT 613 -15.3221 1.51077 23.514
621 POINT 614 -12.551 2.79317 27.989
622 POINT 615 -15.0419 6.17826 29.8034
623 POINT 616 -15.8358 8.02336 33.6776
624 POINT 617 -16.6452 1.576 22.3871
625 POINT 618 -19.3904 7.59116 27.3352
626 POINT 619 -18.0144 1.22333 21.2018
627 POINT 620 -11.0861 1.96334 29.2016
628 POINT 621 -14.0159 3.62299 26.7763
629 POINT 622 -14.5832 7.58243 35.2588
630 POINT 623 -16.7461 8.443680000000001 32.2091
631 POINT 624 -12.9277 0.119925 24.3327
632 POINT 625 -16.6858 7.44036 29.3795
633 POINT 626 -10.5622 0.984859 28.2943
634 POINT 627 -20.4094 7.09297 25.3502
635 POINT 628 -13.3522 5.05352 29.3766
636 POINT 629 -20.1545 8.99108 28.7692
637 POINT 630 -15.9935 4.50905 25.0084
638 POINT 631 -13.6974 1.55584 24.2043
639 POINT 632 -19.5026 5.73195 23.7795
640 POINT 633 -17.5553 8.82804 30.7455
641 POINT 634 -11.8282 0.119925 24.9675
642 POINT 635 -20.8974 8.201409999999999 26.1954
643 POINT 636 -18.5366 3.70073 22.1063
644 POINT 637 -10.0384 0.00638008 27.387
645 POINT 638 -18.1543 6.36223 25.1941
646 POINT 639 -17.3301 0 20.0167
647 POINT 640 -16.2124 0 20.662
648 POINT 641 -17.5293 7.7489 27.7559
649 POINT 642 -12.6636 4.38525 28.184
650 POINT 643 -15.1981 0 21.2476
651 POINT 644 -11.1986 3.55542 29.3966
652 POINT 645 -11.3554 1.8621 26.5911
653 POINT 646 -14.3038 3.38431 24.5817
654 POINT 647 -21.3854 9.309839999999999 27.0407
655 POINT 648 -14.0526 0 21.909
656 POINT 649 -12.6884 6.48405 31.977
657 POINT 650 -18.4027 9.19084 29.1419
658 POINT 651 -13.3377 7.3691 33.1015
659 POINT 652 -14.3323 7.74615 31.5531
660 POINT 653 -15.0754 8.656840000000001 32.6402
661 POINT 654 -19.0363 8.359159999999999 26.6161
662 POINT 655 -13.9869 8.254160000000001 34.226
663 POINT 656 -10.495 0.12133 25.6246
664 POINT 657 -19.6613 6.97248 24.0543
665 POINT 658 -16.5641 3.42318 22.2467
666 POINT 659 -17.9333 3.0705 21.0615
667 POINT 660 -12.9608 0 22.5393
668 POINT 661 -17.3301 1.27892 20.0167
669 POINT 662 -16.2641 1.22014 20.6321
670 POINT 663 -11.9998 5.81577 30.7843
671 POINT 664 -15.9762 9.00825 31.1292
672 POINT 665 -14.8949 1.57281 21.8173
673 POINT 666 -18.7248 5.27636 22.4324
674 POINT 667 -11.9618 3.69057 26.9685
675 POINT 668 -10.4969 2.86074 28.1811
676 POINT 669 -15.8951 7.86766 28.0945
677 POINT 670 -19.4202 9.47208 27.5208
678 POINT 671 -13.7762 1.57281 22.4632
679 POINT 672 -11.8969 0 23.1535
680 POINT 673 -9.97306 1.88226 27.2738
681 POINT 674 -20.2333 8.52725 25.0451
682 POINT 675 -16.8293 9.34442 29.5086
683 POINT 676 -11.3112 5.1475 29.5917
684 POINT 677 -14.2053 6.74292 27.6678
685 POINT 678 -9.354010000000001 0.111216 26.2016
686 POINT 679 -14.8793 6.19638 25.7716
687 POINT 680 -12.6857 1.57281 23.0928
688 POINT 681 -15.9609 2.79295 21.2019
689 POINT 682 -17.3301 2.44027 20.0167
690 POINT 683 -16.7524 4.9988 22.5728
691 POINT 684 -10.7796 0 23.7986
692 POINT 685 -17.9333 4.33096 21.0615
693 POINT 686 -14.5917 3.14562 22.3871
694 POINT 687 -18.2881 8.238659999999999 25.3203
695 POINT 688 -16.5893 0 18.7336
696 POINT 689 -20.7276 9.6874 25.9013
697 POINT 690 -16.6316 8.03003 26.2659
698 POINT 691 -12.7068 7.89694 32.0088
699 POINT 692 -15.5233 0 19.349
700 POINT 693 -12.2497 3.45188 24.7739
701 POINT 694 -14.4373 9.159789999999999 31.5352
702 POINT 695 -13.3663 8.83113 33.1512
703 POINT 696 -18.9131 6.85198 22.7585
704 POINT 697 -17.6631 9.62534 27.882
705 POINT 698 -10.6095 4.45282 28.3762
706 POINT 699 -10.3437 1.87907 25.4796
707 POINT 700 -13.5416 8.173450000000001 30.2682
708 POINT 701 -13.1895 5.07164 25.3449
709 POINT 702 -9.354139999999999 1.23562 26.2018
710 POINT 703 -12.0114 5.28181 27.0543
711 POINT 704 -9.77549 0 24.3783
712 POINT 705 -14.0083 0 19.9443
713 POINT 706 -15.1897 9.499599999999999 29.8515
714 POINT 707 -12.853 7.50518 29.0755
715 POINT 708 -19.4851 8.40676 23.7492
716 POINT 709 -18.7545 9.80466 26.3679
717 POINT 710 -15.9609 4.05341 21.2019
718 POINT 711 -16.5893 1.22014 18.7336
719 POINT 712 -17.3301 3.73148 20.0167
720 POINT 713 -12.8896 0 20.5902
721 POINT 714 -18.1216 5.90659 21.3876
722 POINT 715 -11.4557 0 21.7977
723 POINT 716 -11.6308 2.80524 23.7019
724 POINT 717 -9.90771 3.75814 27.1607
725 POINT 718 -8.66987 0 25.0167
726 POINT 719 -15.0743 1.22014 19.3288
727 POINT 720 -16.0361 9.75164 28.2154
728 POINT 721 -13.7051 1.57281 20.5141
729 POINT 722 -9.72475 1.23243 24.4076
730 POINT 723 -12.2711 1.57281 21.7216
731 POINT 724 -12.0427 8.22279 30.8585
732 POINT 725 -20.0571 9.96153 24.74
733 POINT 726 -10.3651 0 22.4273
734 POINT 727 -15.2298 6.66661 23.6446
735 POINT 728 -13.4774 4.83296 23.1503
736 POINT 729 -10.659 6.04407 28.462
737 POINT 730 -12.7252 9.309839999999999 32.0407
738 POINT 731 -15.3577 3.42318 20.1571
739 POINT 732 -16.7269 3.0705 18.9719
740 POINT 733 -11.3541 7.55451 29.6658
741 POINT 734 -13.642 9.61478 30.2512
742 POINT 735 -17.3301 4.96119 20.0167
743 POINT 736 -9.288790000000001 3.1115 26.0887
744 POINT 737 -17.3905 8.51979 23.8303
745 POINT 738 -15.9609 5.34388 21.2019
746 POINT 739 -15.8485 0 17.4505
747 POINT 740 -8.66987 1.29232 25.0167
748 POINT 741 -11.1354 5.13921 25.5371
749 POINT 742 -11.6308 4.09852 23.7019
750 POINT 743 -16.7495 9.99319 26.3645
751 POINT 744 -18.8038 8.52272 22.5691
752 POINT 745 -18.1216 7.19706 21.3876
753 POINT 746 -8.98396 0 23.1245
754 POINT 747 -14.3948 9.86285 28.5594
755 POINT 748 -9.95725 5.34939 27.2465
756 POINT 749 -14.3335 0 18.0458
757 POINT 750 -13.3789 8.19157 26.2364
758 POINT 751 -17.8501 10.0984 24.8732
759 POINT 752 -16.7269 4.33096 18.9719
760 POINT 753 -15.9861 1.85037 17.6888
761 POINT 754 -8.66987 2.46486 25.0167
762 POINT 755 -12.2008 8.40175 27.9458
763 POINT 756 -19.378 10.1306 23.5637
764 POINT 757 -10.607 1.97261 21.9829
765 POINT 758 -9.288790000000001 4.40478 26.0887
766 POINT 759 -11.3845 0 19.8485
767 POINT 760 -12.8185 0 18.641
768 POINT 761 -12.513 3.54542 21.2771
769 POINT 762 -7.92908 0 23.7336
770 POINT 763 -12.0674 9.6874 30.9013
771 POINT 764 -17.3301 6.22054 20.0167
772 POINT 765 -15.1308 10.0687 26.7106
773 POINT 766 -9.950609999999999 0 21.0561
774 POINT 767 -14.4711 1.85037 18.284
775 POINT 768 -12.978 9.90897 29.1011
776 POINT 769 -12.3631 6.52029 23.9135
777 POINT 770 -11.1849 6.73046 25.6229
778 POINT 771 -15.1844 5.0185 19.8568
779 POINT 772 -14.1155 8.35394 24.4078
780 POINT 773 -14.8466 7.03121 21.9651
781 POINT 774 -8.840159999999999 1.59873 22.8755
782 POINT 775 -10.0068 6.94064 27.3323
783 POINT 776 -7.92908 1.23243 23.7336
784 POINT 777 -16.1237 3.70073 17.9271
785 POINT 778 -8.66987 3.78917 25.0167
786 POINT 779 -16.599 8.86487 22.4594
787 POINT 780 -15.8678 10.1876 24.9021
788 POINT 781 -10.7018 8.451079999999999 28.5361
789 POINT 782 -8.56945 0 21.7533
790 POINT 783 -13.5233 10.1061 27.2976
791 POINT 784 -17.1757 10.2058 23.705
792 POINT 785 -15.1102 0 16.1716
793 POINT 786 -10.5165 5.78586 24.4651
794 POINT 787 -18.0123 8.867800000000001 21.1981
795 POINT 788 -9.338329999999999 5.99603 26.1745
796 POINT 789 -18.6944 10.1935 22.3796
797 POINT 790 -17.3301 7.54214 20.0167
798 POINT 791 -9.552110000000001 3.20504 22.5919
799 POINT 792 -12.5161 8.36581 24.9906
800 POINT 793 -11.3969 9.96153 29.74
801 POINT 794 -11.6264 1.97261 19.4041
802 POINT 795 -13.5952 0 16.7669
803 POINT 796 -11.338 8.575979999999999 26.6999
804 POINT 797 -10.1925 1.97261 20.6116
805 POINT 798 -16.5536 5.92628 18.6716
806 POINT 799 -14.2834 10.2024 25.4777
807 POINT 800 -11.1433 0 18.4391
808 POINT 801 -11.3987 5.23275 22.0404
809 POINT 802 -13.279 3.82297 19.0471
810 POINT 803 -9.709339999999999 0 19.6466
811 POINT 804 -15.2585 1.85736 16.4285
812 POINT 805 -8.66987 5.05142 25.0167
813 POINT 806 -12.0998 10.1317 27.8541
814 POINT 807 -7.1883 0 22.4505
815 POINT 808 -13.781 8.26014 22.5803
816 POINT 809 -13.7434 1.85736 17.0237
817 POINT 810 -7.78528 2.83116 23.4845
818 POINT 811 -10.5165 7.04455 24.4651
819 POINT 812 -13.7411 6.57281 20.5902
820 POINT 813 -8.425649999999999 1.59873 21.5042
821 POINT 814 -9.552110000000001 4.49832 22.5919
822 POINT 815 -10.0205 8.56704 27.3559
823 POINT 816 -9.338329999999999 7.25472 26.1745
824 POINT 817 -15.5785 10.1938 23.1741
825 POINT 818 -12.6621 8.26014 23.2263
826 POINT 819 -11.9988 0 17.0193
827 POINT 820 -17.3301 8.71149 20.0167
828 POINT 821 -12.6692 10.2113 26.0676
829 POINT 822 -15.9504 5.29605 17.6268
830 POINT 823 -16.9328 10.1667 21.9088
831 POINT 824 -18.0104 10.1498 21.1949
832 POINT 825 -16.2645 8.77107 20.6319
833 POINT 826 -14.465 10.1938 23.817
834 POINT 827 -15.3961 3.70772 16.6667
835 POINT 828 -10.7178 10.1306 28.5637
836 POINT 829 -16.5536 7.21676 18.6716
837 POINT 830 -11.571 8.26014 23.8563
838 POINT 831 -7.83111 0 20.4744
839 POINT 832 -8.66987 6.27922 25.0167
840 POINT 833 -10.3929 8.470319999999999 25.5656
841 POINT 834 -14.3719 0 14.8928
842 POINT 835 -7.78528 4.12444 23.4845
843 POINT 836 -9.9512 1.97261 19.2022
844 POINT 837 -10.4343 3.94521 20.1672
845 POINT 838 -11.4236 10.2128 26.6828
846 POINT 839 -7.04449 1.59873 22.2014
847 POINT 840 -9.468059999999999 0 18.2371
848 POINT 841 -12.8711 10.174 24.3673
849 POINT 842 -13.1057 5.41829 18.7469
850 POINT 843 -12.5514 3.82996 17.7868
851 POINT 844 -9.72917 6.76112 23.1014
852 POINT 845 -14.5201 1.85736 15.1496
853 POINT 846 -6.44995 0 21.1716
854 POINT 847 -8.66751 3.57134 21.0598
855 POINT 848 -8.184380000000001 1.59873 20.0947
856 POINT 849 -10.8068 1.97261 17.7824
857 POINT 850 -17.3301 10 20.0167
858 POINT 851 -11.7674 10.174 25.0045
859 POINT 852 -16.2128 10 20.6617
860 POINT 853 -9.352 8.881130000000001 26.1981
861 POINT 854 -12.7755 0 15.1452
862 POINT 855 -12.6268 8.26014 21.3534
863 POINT 856 -16.6862 8.77107 18.9014
864 POINT 857 -15.199 10 21.2471
865 POINT 858 -10.0341 10.1935 27.3796
866 POINT 859 -8.66987 7.5688 25.0167
867 POINT 860 -10.3236 0 16.8174
868 POINT 861 -14.0531 10 21.9087
869 POINT 862 -11.0778 8.26014 22.4689
870 POINT 863 -15.777 6.89137 17.3266
871 POINT 864 -15.2227 5.30304 16.3665
872 POINT 865 -7.88255 6.02669 23.653
873 POINT 866 -15.1103 8.77107 19.4049
874 POINT 867 -7.58983 0 19.065
875 POINT 868 -12.9611 10 22.5391
876 POINT 869 -10.4951 10.1667 25.6256
877 POINT 870 -6.90069 3.19746 21.9523
878 POINT 871 -12.9238 1.85736 15.402
879 POINT 872 -14.6684 3.71471 15.4064
880 POINT 873 -9.724399999999999 8.7844 24.4078
881 POINT 874 -11.8967 10 23.1536
882 POINT 875 -11.1792 0 15.3977
883 POINT 876 -8.76478 5.47359 21.2282
884 POINT 877 -6.30615 1.59873 20.9226
885 POINT 878 -13.6526 0 13.6471
886 POINT 879 -13.8845 1.23094 14.0486
887 POINT 880 -8.66987 8.72603 25.0167
888 POINT 881 -11.6624 6.97261 19.4802
889 POINT 882 -16.6862 10 18.9014
890 POINT 883 -9.35012 10.1498 26.1949
891 POINT 884 -15.6206 10 19.5166
892 POINT 885 -8.574249999999999 0 17.2176
893 POINT 886 -10.7789 10 23.799
894 POINT 887 -15.9097 8.445690000000001 17.5563
895 POINT 888 -7.88255 7.28538 23.653
896 POINT 889 -10.1135 6.97261 20.5957
897 POINT 890 -5.71161 0 19.8928
898 POINT 891 -6.99796 5.09971 22.1208
899 POINT 892 -9.77511 10 24.3785
900 POINT 893 -14.0447 10 20.0202
901 POINT 894 -14.0328 3.08829 14.3054
902 POINT 895 -9.319660000000001 4.04973 18.4393
903 POINT 896 -8.076560000000001 4.48819 20.0362
904 POINT 897 -14.3337 8.445690000000001 18.0599
905 POINT 898 -8.83652 2.07712 17.4743
906 POINT 899 -12.0563 0 13.8995
907 POINT 900 -12.2882 1.23094 14.3011
908 POINT 901 -9.429819999999999 0 15.7979
909 POINT 902 -8.93708 8.50098 23.0441
910 POINT 903 -12.9258 10 20.6662
911 POINT 904 -7.23023 1.37676 18.4421
912 POINT 905 -10.2166 4.6892 17.797
913 POINT 906 -11.3768 10 21.7817
914 POINT 907 -6.69602 0 18.0455
915 POINT 908 -8.66987 10 25.0167
916 POINT 909 -7.55284 3.67585 19.3319
917 POINT 910 -8.02567 8.7844 23.9009
918 POINT 911 -12.8879 6.16228 16.3767
919 POINT 912 -16.0423 10 17.7861
920 POINT 913 -9.69209 2.07712 16.0546
921 POINT 914 -14.9413 7.20793 15.8791
922 POINT 915 -6.30974 4.11431 20.9288
923 POINT 916 -10.2858 10 22.4116
924 POINT 917 -14.387 5.6196 14.9191
925 POINT 918 -5.94654 2.97549 20.2997
926 POINT 919 -12.3336 4.57395 15.4166
927 POINT 920 -15.2646 8.445690000000001 16.4391
928 POINT 921 -10.589 2.7166 15.4122
929 POINT 922 -7.09523 7.00196 22.2893
930 POINT 923 -14.4664 10 18.2897
931 POINT 924 -13.1653 1.23094 12.8029
932 POINT 925 -12.9334 0 12.4014
933 POINT 926 -9.08019 10 23.292
934 POINT 927 -13.3971 2.46187 13.2045
935 POINT 928 -7.68044 0 16.1981
936 POINT 929 -12.2841 3.65243 14.4642
937 POINT 930 -13.8617 4.56963 14.0091
938 POINT 931 -5.352 1.37676 19.2699
939 POINT 932 -9.519679999999999 6.97261 18.9674
940 POINT 933 -10.5395 1.79507 14.4598
941 POINT 934 -8.443910000000001 8.50098 21.6568
942 POINT 935 -10.053 0 13.9425
943 POINT 936 -7.65011 5.5781 19.5004
944 POINT 937 -4.9924 0 18.6471
945 POINT 938 -12.8904 10 18.7932
946 POINT 939 -8.02567 10 23.9009
947 POINT 940 -13.8694 8.445690000000001 16.498
948 POINT 941 -7.94271 2.07712 16.4548
949 POINT 942 -6.40701 6.01656 21.0973
950 POINT 943 -11.3415 10 19.9087
951 POINT 944 -7.23834 8.50098 22.5372
952 POINT 945 -6.33642 1.37676 17.4226
953 POINT 946 -15.3973 10 16.6689
954 POINT 947 -9.792590000000001 10 21.0242
955 POINT 948 -11.4446 7.7166 17.11
956 POINT 949 -5.97681 0 16.7998
957 POINT 950 -11.4166 1.79507 12.9617
958 POINT 951 -8.79013 1.79507 14.8601
959 POINT 952 -10.9301 0 12.4443
960 POINT 953 -13.8213 10 17.1724
961 POINT 954 -8.58703 10 21.9046
962 POINT 955 -6.96189 4.5927 18.3083
963 POINT 956 -13.226 3.94321 12.9081
964 POINT 957 -11.6485 3.02601 13.3632
965 POINT 958 -8.30358 0 14.3427
966 POINT 959 -8.20499 4.15424 16.7115
967 POINT 960 -5.71879 5.03117 19.9052
968 POINT 961 -6.59869 3.45388 17.6793
969 POINT 962 -5.35559 3.89234 19.2762
970 POINT 963 -9.10188 4.79372 16.0691
971 POINT 964 -14.1056 7.52448 14.4317
972 POINT 965 -12.0522 6.47883 14.9292
973 POINT 966 -12.2628 0 11.2398
974 POINT 967 -7.38146 10 22.7851
975 POINT 968 -4.9924 2.75351 18.6471
976 POINT 969 -6.21548 7.18683 20.7655
977 POINT 970 -6.72608 0 15.1524
978 POINT 971 -4.63279 1.37676 18.0242
979 POINT 972 -14.4289 8.76224 14.9917
980 POINT 973 -9.998760000000001 5.43319 15.4268
981 POINT 974 -9.0524 3.87219 15.1167
982 POINT 975 -7.85012 8.50098 20.0285
983 POINT 976 -12.4269 1.56423 11.5241
984 POINT 977 -12.6588 2.79516 11.9257
985 POINT 978 -6.59319 8.50098 21.4197
986 POINT 979 -12.4261 10 17.2313
987 POINT 980 -13.5803 6.47451 13.5217
988 POINT 981 -4.27319 0 17.4014
989 POINT 982 -11.5268 5.42887 14.0193
990 POINT 983 -14.7522 10 15.5516
991 POINT 984 -9.94929 4.51167 14.4744
992 POINT 985 -10.7477 10 18.2805
993 POINT 986 -6.98836 2.07712 15.409
994 POINT 987 -6.77036 5.76297 17.9766
995 POINT 988 -7.94187 10 20.7872
996 POINT 989 -9.1988 10 19.396
997 POINT 990 -11.4774 4.50734 13.0669
998 POINT 991 -9.413270000000001 1.79507 13.0046
999 POINT 992 -13.0549 5.42454 12.6118
1000 POINT 993 -13.0337 8.76224 15.0506
1001 POINT 994 -5.52727 6.20144 19.5735
1002 POINT 995 -8.404999999999999 7.07712 17.2396
1003 POINT 996 -9.89981 3.59015 13.522
1004 POINT 997 -10.9803 7.7166 15.5481
1005 POINT 998 -8.92672 0 12.4872
1006 POINT 999 -5.02246 0 15.754
1007 POINT 1000 -13.357 10 15.6105
1008 POINT 1001 -9.30189 7.7166 16.5972
1009 POINT 1002 -6.73631 10 21.6676
1010 POINT 1003 -10.2595 0 11.2828
1011 POINT 1004 -6.18299 4.41614 16.9592
1012 POINT 1005 -5.45364 1.51131 15.8936
1013 POINT 1006 -12.5083 7.71227 14.1406
1014 POINT 1007 -7.83577 1.79507 13.8143
1015 POINT 1008 -4.93989 4.8546 18.5561
1016 POINT 1009 -7.34923 0 13.2969
1017 POINT 1010 -13.4959 7.73896 13.3756
1018 POINT 1011 -4.57669 3.71577 17.9271
1019 POINT 1012 -10.4236 1.56423 11.567
1020 POINT 1013 -12.4877 4.2765 11.6293
1021 POINT 1014 -10.9101 3.3593 12.0844
1022 POINT 1015 -13.7823 8.76224 13.8717
1023 POINT 1016 -11.5922 0 10.0783
1024 POINT 1017 -7.37304 5.20212 15.665
1025 POINT 1018 -14.1056 10 14.4317
1026 POINT 1019 -5.71591 3.58843 16.1502
1027 POINT 1020 -12.9706 6.68899 12.4657
1028 POINT 1021 -11.7563 1.56423 10.3626
1029 POINT 1022 -5.77173 0 14.1066
1030 POINT 1023 -11.9618 10 15.6695
1031 POINT 1024 -3.60257 0 16.2398
1032 POINT 1025 -8.269920000000001 5.8416 15.0227
1033 POINT 1026 -5.33574 7.37171 19.2418
1034 POINT 1027 -6.17757 5.83665 16.9499
1035 POINT 1028 -4.10962 2.88807 17.1181
1036 POINT 1029 -10.2834 10 16.7186
1037 POINT 1030 -6.97038 8.68585 18.5047
1038 POINT 1031 -5.71345 8.68585 19.896
1039 POINT 1032 -11.9205 3.12845 10.6468
1040 POINT 1033 -3.75001 1.51131 16.4952
1041 POINT 1034 -12.424 8.97672 13.9945
1042 POINT 1035 -8.22045 4.92007 14.0703
1043 POINT 1036 -7.34808 10 19.1589
1044 POINT 1037 -8.737970000000001 0 11.1403
1045 POINT 1038 -4.74837 6.02487 18.2244
1046 POINT 1039 -6.09115 10 20.5502
1047 POINT 1040 -7.71336 0 11.8728
1048 POINT 1041 -8.60502 10 17.7677
1049 POINT 1042 -10.8239 6.1257 12.8018
1050 POINT 1043 -12.7104 10 14.4906
1051 POINT 1044 -6.56218 3.84357 14.6586
1052 POINT 1045 -4.35184 0 14.5924
1053 POINT 1046 -10.0707 0 9.93585
1054 POINT 1047 -12.0388 7.71227 12.7609
1055 POINT 1048 -9.20055 7.7166 14.7525
1056 POINT 1049 -10.7745 5.20417 11.8494
1057 POINT 1050 -12.8862 7.95344 12.3196
1058 POINT 1051 -6.13586 0 12.6825
1059 POINT 1052 -12.352 6.12137 11.3943
1060 POINT 1053 -4.16099 4.67803 17.207
1061 POINT 1054 -4.49928 1.51131 14.8478
1062 POINT 1055 -10.2348 1.56423 10.2201
1063 POINT 1056 -13.1726 8.97672 12.8157
1064 POINT 1057 -10.7286 7.71227 13.345
1065 POINT 1058 -7.57305 8.125 16.1931
1066 POINT 1059 -6.92305 1.76646 12.5465
1067 POINT 1060 -13.459 10 13.3117
1068 POINT 1061 -7.4096 3.56153 13.0639
1069 POINT 1062 -5.57788 5.42575 15.9112
1070 POINT 1063 -10.9612 0 8.985300000000001
1071 POINT 1064 -9.080159999999999 5.8416 12.9762
1072 POINT 1065 -4.74294 7.44539 18.215
1073 POINT 1066 -4.98923 0 13.2036
1074 POINT 1067 -11.4922 10 14.2898
1075 POINT 1068 -6.37758 8.75953 17.478
1076 POINT 1069 -3.69391 3.85033 16.398
1077 POINT 1070 -5.06695 8.68585 18.7762
1078 POINT 1071 -2.93195 0 15.0783
1079 POINT 1072 -11.7848 4.97333 10.4119
1080 POINT 1073 -10.9612 1.15222 8.985300000000001
1081 POINT 1074 -8.419919999999999 3.33068 11.6263
1082 POINT 1075 -5.34555 1.76646 13.3562
1083 POINT 1076 -6.70159 10 18.0392
1084 POINT 1077 -9.03068 4.92007 12.0238
1085 POINT 1078 -10.1821 10 14.8738
1086 POINT 1079 -5.44465 10 19.4304
1087 POINT 1080 -5.81722 8.68585 17.5948
1088 POINT 1081 -4.15557 6.09855 17.1977
1089 POINT 1082 -3.07939 1.51131 15.3337
1090 POINT 1083 -7.55767 0 10.5774
1091 POINT 1084 -11.9544 8.97672 12.6148
1092 POINT 1085 -12.2677 7.38582 11.2482
1093 POINT 1086 -8.54921 0 9.793419999999999
1094 POINT 1087 -11.1253 2.71645 9.26957
1095 POINT 1088 -6.54108 6.25 14.6186
1096 POINT 1089 -8.50367 10 15.923
1097 POINT 1090 -6.5 0 11.2583
1098 POINT 1091 -7.45186 10 16.8577
1099 POINT 1092 -12.2408 10 13.1109
1100 POINT 1093 -4.54018 4.10547 14.9064
1101 POINT 1094 -3.22684 3.02262 15.589
1102 POINT 1095 -3.56935 0 13.6894
1103 POINT 1096 -9.48958 0 8.885260000000001
1104 POINT 1097 -5.34562 6.88453 15.9034
1105 POINT 1098 -10.041 4.68923 10.5862
1106 POINT 1099 -5.38148 0 11.8338
1107 POINT 1100 -12.5242 8.97672 11.6926
1108 POINT 1101 -3.92567 1.76646 13.842
1109 POINT 1102 -12.8107 10 12.1887
1110 POINT 1103 -11.1253 3.89259 9.26957
1111 POINT 1104 -6.7343 1.76646 11.1996
1112 POINT 1106 -4.15015 7.51907 17.1883
1113 POINT 1107 -5.73023 4.89146 13.6121
1114 POINT 1108 -5.70969 1.76646 11.932
1115 POINT 1109 -7.47171 8.125 14.3484
1116 POINT 1110 -6.41989 8.125 15.2832
1117 POINT 1111 -10.3301 0 7.89231
1118 POINT 1112 -9.43967 1.15222 8.84286
1119 POINT 1113 -4.07311 3.27776 14.0974
1120 POINT 1114 -4.47415 8.75953 17.7495
1121 POINT 1115 -3.55588 5.68765 16.159
1122 POINT 1116 -11.3359 8.4091 11.5435
1123 POINT 1117 -4.20674 0 12.3005
1124 POINT 1118 -11.0226 10 12.9101
1125 POINT 1119 -11.6491 6.8182 10.1769
1126 POINT 1120 -4.79816 10 18.3107
1127 POINT 1121 -8.35538 3.125 10.1595
1128 POINT 1122 -2.30091 0 13.9853
1129 POINT 1123 -5.22442 8.75953 16.568
1130 POINT 1124 -10.0257 8.4091 12.1276
1131 POINT 1125 -4.56306 1.76646 12.4531
1132 POINT 1126 -7.35132 6.25 12.5721
1133 POINT 1127 -9.71247 10 13.4941
1134 POINT 1128 -10.3301 1.15222 7.8923
1135 POINT 1129 -5.54843 10 17.1292
1136 POINT 1130 -4.74593 6.47363 14.8647
1137 POINT 1131 -10.9349 0 7.0264
1138 POINT 1132 -11.5925 10 11.9879
1139 POINT 1133 -11.9057 8.4091 10.6213
1140 POINT 1135 -3.08881 4.85994 15.35
1141 POINT 1136 -2.30091 1.15137 13.9853
1142 POINT 1137 -4.91938 3.53291 12.6057
1143 POINT 1138 -7.35051 10 15.013
1144 POINT 1139 -8.402329999999999 10 14.0782
1145 POINT 1140 -6.2987 10 15.9478
1146 POINT 1141 -2.95007 0 12.6608
1147 POINT 1142 -9.905340000000001 6.5341 10.3513
1148 POINT 1143 -3.55046 7.10817 16.1496
1149 POINT 1144 -10.3301 2.30445 7.8923
1150 POINT 1145 -6.74632 0 9.256360000000001
1151 POINT 1146 -10.9445 1.15222 7.01563
1152 POINT 1147 -2.44835 2.66268 14.2407
1153 POINT 1148 -7.58714 0 8.64184
1154 POINT 1149 -5.75 0 9.959289999999999
1155 POINT 1150 -10.9896 5.73747 9.03459
1156 POINT 1151 -8.281940000000001 8.125 12.3019
1157 POINT 1152 -6.54047 4.89146 11.5657
1158 POINT 1153 -12.1623 10 11.0657
1159 POINT 1154 -9.245839999999999 4.27722 9.20899
1160 POINT 1155 -3.93508 5.11509 13.8583
1161 POINT 1156 -4.62474 8.34863 15.5293
1162 POINT 1157 -11.4799 0 6.08617
1163 POINT 1158 -5.73166 8.125 14.2241
1164 POINT 1159 -10.582 8.4091 10.6772
1165 POINT 1160 -10.2687 10 12.0438
1166 POINT 1161 -2.93831 1.15137 12.5964
1167 POINT 1162 -3.82614 8.75953 16.6271
1168 POINT 1163 -8.46355 0 7.71563
1169 POINT 1164 -4.6456 0 10.4707
1170 POINT 1165 -10.3301 3.48059 7.8923
1171 POINT 1166 -4.15015 10 17.1883
1172 POINT 1168 -2.44835 3.84188 14.2407
1173 POINT 1169 -8.95856 10 12.6278
1174 POINT 1170 -3.29463 2.91782 12.749
1175 POINT 1171 -8.16155 6.25 10.5257
1176 POINT 1172 -4.95969 1.76646 10.633
1177 POINT 1173 -6.54376 8.125 12.9857
1178 POINT 1174 -10.9896 6.9091 9.03459
1179 POINT 1175 -9.199400000000001 0 6.8997
1180 POINT 1176 -1.66987 0 12.8923
1181 POINT 1177 -9.245839999999999 5.45337 9.20899
1182 POINT 1178 -4.90041 10 16.0068
1183 POINT 1179 -11.1561 2.50214 6.67389
1184 POINT 1180 -3.69038 0 10.8916
1185 POINT 1181 -8.47744 1.15222 7.69157
1186 POINT 1182 -10.8385 10 11.1216
1187 POINT 1183 -4.92081 6.76646 13.2177
1188 POINT 1184 -2.95078 6.69727 15.1109
1189 POINT 1185 -11.2922 8.4091 9.558730000000001
1190 POINT 1186 -10.3301 4.65674 7.8923
1191 POINT 1187 -8.83817 8.125 10.8516
1192 POINT 1188 -11.6682 1.34992 5.73169
1193 POINT 1189 -7.48222 1.85872 8.38072
1194 POINT 1190 -6.66228 10 13.954
1195 POINT 1191 -5.61046 10 14.8887
1196 POINT 1192 -11.9521 0 5.08721
1197 POINT 1193 -9.19882 1.15222 6.90061
1198 POINT 1194 -1.66987 1.15137 12.8923
1199 POINT 1195 -3.29463 4.09703 12.749
1200 POINT 1196 -11.1561 3.67828 6.67389
1201 POINT 1197 -9.770720000000001 0 6.00714
1202 POINT 1198 -4.94391 4.9062 11.5188
1203 POINT 1199 -5.73291 6.76646 11.9793
1204 POINT 1200 -3.22646 8.34863 15.5884
1205 POINT 1201 -9.245839999999999 6.625 9.20899
1206 POINT 1202 -11.5488 10 10.0031
1207 POINT 1203 -7.47438 10 12.7156
1208 POINT 1204 -9.514799999999999 10 11.1775
1209 POINT 1205 -2.45294 0 11.1874
1210 POINT 1207 -10.3301 5.82837 7.8923
1211 POINT 1208 -0.617578 0 12.9831
1212 POINT 1209 -3.9365 8.34863 14.4703
1213 POINT 1210 -1.66987 2.30274 12.8923
1214 POINT 1211 -5.66731 3.62517 9.78687
1215 POINT 1212 -3.29463 5.26646 12.749
1216 POINT 1213 -5.83292 0 8.12262
1217 POINT 1214 -2.31032 5.6792 14.0016
1218 POINT 1215 -6.565 6.26474 10.4787
1219 POINT 1216 -9.922459999999999 8.5 9.534890000000001
1220 POINT 1217 -6.62475 0 7.49084
1221 POINT 1218 -3.50213 10 16.0659
1222 POINT 1219 -5 0 8.66025
1223 POINT 1220 -8.372680000000001 3.01094 7.43016
1224 POINT 1221 -11.8396 2.69983 5.36872
1225 POINT 1222 -7.354 8.125 10.9393
1226 POINT 1223 -12.1154 1.34992 4.71344
1227 POINT 1224 -11.2297 4.79629 6.54939
1228 POINT 1225 -2.42238 1.15137 11.1875
1229 POINT 1226 -0.603485 1.15137 12.986
1230 POINT 1227 -12.3433 0 4.04307
1231 POINT 1228 -10.3348 0 5.01794
1232 POINT 1229 -7.38438 0 6.74321
1233 POINT 1230 -4.11793 0 9.112769999999999
1234 POINT 1231 -9.953569999999999 1.34992 5.63881
1235 POINT 1232 -4.21218 10 14.9478
1236 POINT 1233 -10.2251 10 10.059
1237 POINT 1234 -1.66987 3.48194 12.8923
1238 POINT 1235 -10.9417 5.82837 7.01992
1239 POINT 1236 -7.28839 4.98372 8.746840000000001
1240 POINT 1237 -4.27143 6.76646 12.2123
1241 POINT 1238 -10.3301 7 7.8923
1242 POINT 1239 -1.3753 0 11.4168
1243 POINT 1240 -8.292479999999999 8.125 9.786149999999999
1244 POINT 1241 -3.02001 1.875 10.5357
1245 POINT 1242 -8.030620000000001 10 11.2652
1246 POINT 1243 -2.31032 6.84863 14.0016
1247 POINT 1244 -4.92223 10 13.8297
1248 POINT 1245 -8.372680000000001 4.18709 7.43016
1249 POINT 1247 -10.6327 8.5 8.41644
1250 POINT 1248 -8.06752 0 5.90891
1251 POINT 1249 -3.17489 0 9.482620000000001
1252 POINT 1250 -11.8985 3.81784 5.23705
1253 POINT 1251 0.469168 0 12.985
1254 POINT 1252 -2.61318 8.34863 14.5262
1255 POINT 1253 -1.37669 1.15137 11.4167
1256 POINT 1254 -3.37633 3.64146 10.6883
1257 POINT 1255 -1.66987 4.66114 12.8923
1258 POINT 1256 -10.9353 10 8.940569999999999
1259 POINT 1257 -10.9321 7 7.03088
1260 POINT 1258 -9.12743 3.20863 6.16837
1261 POINT 1259 -8.969099999999999 10 10.112
1262 POINT 1260 -5.73434 10 12.5913
1263 POINT 1261 -10.5113 1.34992 4.66379
1264 POINT 1262 -5.70762 1.85872 7.81414
1265 POINT 1263 -6.51999 1.85872 7.22943
1266 POINT 1264 -0.201898 2.50143 12.9984
1267 POINT 1265 -10.7623 0 4.00336
1268 POINT 1266 -8.290710000000001 6.44366 8.082929999999999
1269 POINT 1267 -4.96844 6.27949 10.4318
1270 POINT 1268 -12.6348 0 3.01826
1271 POINT 1269 -5.75744 8.13974 10.8924
1272 POINT 1270 -2.1476 0 9.76667
1273 POINT 1271 -3.29605 8.5 13.361
1274 POINT 1272 -8.680260000000001 0 4.96519
1275 POINT 1273 -2.88886 10 15.0037
1276 POINT 1274 -12.3951 2.5494 3.9195
1277 POINT 1275 -9.37677 8.5 8.469469999999999
1278 POINT 1276 -11.9558 4.93585 5.10482
1279 POINT 1277 -7.24137 1.85872 6.43846
1280 POINT 1278 -0.319227 0 11.4653
1281 POINT 1279 -9.375 5.64702 6.76625
1282 POINT 1280 -2.79746 5.08598 11.3602
1283 POINT 1281 -12.5889 1.19948 3.24359
1284 POINT 1282 -11.729 5.96793 5.60633
1285 POINT 1283 -4.2317 5.14431 10.0741
1286 POINT 1284 -1.66987 5.83057 12.8923
1287 POINT 1285 -10.1847 8.19848 7.64042
1288 POINT 1286 -6.54644 10 11.3529
1289 POINT 1287 -12.2734 3.74235 4.28539
1290 POINT 1288 -3.31916 6.63974 11.6621
1291 POINT 1289 -3.59891 10 13.8856
1292 POINT 1290 -5.69184 4.99846 8.699909999999999
1293 POINT 1291 -9.67938 10 8.993600000000001
1294 POINT 1292 -0.201898 3.68064 12.9984
1295 POINT 1293 -11.4748 7 6.09581
1296 POINT 1294 0.870122 1.35007 12.9708
1297 POINT 1295 -10.3597 5.46655 5.74749
1298 POINT 1296 -1.75158 3.02637 10.8316
1299 POINT 1297 -6.58077 8.125 9.59296
1300 POINT 1298 -5.03951 0 6.8014
1301 POINT 1299 -7.48492 10 10.1998
1302 POINT 1300 -4.25 0 7.36122
1303 POINT 1301 -7.60478 8.125 8.80986
1304 POINT 1302 -3.41664 1.875 8.715590000000001
1305 POINT 1303 -4.27286 10 12.8243
1306 POINT 1304 1.57041 0 12.8945
1307 POINT 1305 -10.3684 9.58403 7.95852
1308 POINT 1306 -5.85278 6.50285 9.0341
1309 POINT 1307 -10.8219 1.34992 3.66895
1310 POINT 1308 -5.98477 0 6.00502
1311 POINT 1309 -7.79912 1.85872 5.46344
1312 POINT 1310 -10.8689 8.122870000000001 6.68757
1313 POINT 1311 -1.08351 0 9.941129999999999
1314 POINT 1312 -9.375 6.81866 6.76625
1315 POINT 1314 -9.183 0 3.95885
1316 POINT 1315 -11.0802 0 2.99368
1317 POINT 1316 -1.66987 7 12.8923
1318 POINT 1317 -4.29596 8.13974 11.1254
1319 POINT 1318 -12.3198 4.86036 4.14988
1320 POINT 1319 -6.41523 3.71744 6.96802
1321 POINT 1320 -3.37409 0 7.76504
1322 POINT 1321 0.09322469999999999 1.35007 11.4395
1323 POINT 1322 -11.1144 4.4881 4.4857
1324 POINT 1323 -10.3533 10 7.93242
1325 POINT 1324 -2.50408 1.875 9.12677
1326 POINT 1325 -0.0579031 4.79865 12.9999
1327 POINT 1326 -6.7042 0 5.21856
1328 POINT 1327 -12.1607 5.96793 4.59547
1329 POINT 1328 -1.97273 8.5 13.4169
1330 POINT 1329 -0.609303 5.83057 12.9857
1331 POINT 1330 -8.423410000000001 10 9.04663
1332 POINT 1331 -5.08496 10 11.5859
1333 POINT 1332 -1.75158 4.20557 10.8316
1334 POINT 1333 -12.8416 0 1.98432
1335 POINT 1334 0.822982 0 11.4592
1336 POINT 1335 -11.9433 7 5.10817
1337 POINT 1336 -12.8108 1.19948 2.20975
1338 POINT 1337 1.26995 2.70013 12.9378
1339 POINT 1338 -2.27559 10 13.9414
1340 POINT 1339 -9.947340000000001 6.81866 5.868
1341 POINT 1340 -9.11239 9.58403 8.01155
1342 POINT 1341 -2.64668 8.5 12.3556
1343 POINT 1342 -8.689069999999999 8.5 7.49318
1344 POINT 1343 -2.20495 0 8.185510000000001
1345 POINT 1344 -12.7701 2.39896 2.43402
1346 POINT 1345 1.97555 1.35007 12.849
1347 POINT 1346 -7.41755 5.17737 6.30411
1348 POINT 1347 -11.473 8.14029 5.56041
1349 POINT 1348 -4.95762 1.85872 6.5151
1350 POINT 1349 -12.6936 3.59191 2.80588
1351 POINT 1350 -11.1725 5.60611 4.35375
1352 POINT 1351 -2.94953 10 12.8802
1353 POINT 1352 -1.45839 1.875 9.356030000000001
1354 POINT 1353 -9.09732 10 7.98544
1355 POINT 1354 -0.6236429999999999 7 12.9828
1356 POINT 1355 -4.12426 3.73372 7.86947
1357 POINT 1356 -9.80137 9.168060000000001 6.97647
1358 POINT 1357 0.0401433 0 9.999919999999999
1359 POINT 1358 -1.17271 5.65009 11.5035
1360 POINT 1359 -9.54738 0 2.97446
1361 POINT 1360 -5.88029 1.85872 5.74383
1362 POINT 1361 -4.98422 8.13974 9.54603
1363 POINT 1362 -10.932 6.63819 4.84924
1364 POINT 1363 -7.3397 0 4.13185
1365 POINT 1364 -12.6058 4.78487 3.17701
1366 POINT 1365 -9.786099999999999 3.13819 3.78076
1367 POINT 1366 2.67023 0 12.7111
1368 POINT 1367 -11.3221 0 1.97751
1369 POINT 1368 -1.52487 8.1968 12.6412
1370 POINT 1369 -0.281663 3.22507 10.8544
1371 POINT 1370 -4.25623 6.51759 8.987159999999999
1372 POINT 1371 -12.483 5.89243 3.62975
1373 POINT 1372 -8.40222 4.9969 5.28535
1374 POINT 1373 -5.77322 10 10.0066
1375 POINT 1374 1.41281 3.81814 12.923
1376 POINT 1375 -3.62348 10 11.8189
1377 POINT 1376 1.21649 1.35007 11.435
1378 POINT 1377 -9.786300000000001 9.58403 6.95036
1379 POINT 1378 -9.110620000000001 7.90269 6.30833
1380 POINT 1379 -11.2872 1.19948 2.2016
1381 POINT 1380 -12.3324 7 4.07594
1382 POINT 1381 -1.16877 0 8.41527
1383 POINT 1382 -12.9609 0 0.9817900000000001
1384 POINT 1383 -11.5797 4.33767 3.01835
1385 POINT 1384 -2.60695 6.87785 10.2174
1386 POINT 1385 1.9127 0 11.3221
1387 POINT 1386 -9.771229999999999 10 6.92426
1388 POINT 1387 -1.70907 9.58281 12.9602
1389 POINT 1388 -1.17271 6.81952 11.5035
1390 POINT 1390 -6.7117 10 8.853440000000001
1391 POINT 1391 -4.97962 5.23657 7.25528
1392 POINT 1392 -8.41987 6.63731 5.6402
1393 POINT 1393 -7.73571 10 8.07034
1394 POINT 1394 -6.49883 1.85872 4.67476
1395 POINT 1395 -11.9395 8.09844 4.51297
1396 POINT 1396 -4.47515 0 5.38266
1397 POINT 1397 -11.4975 5.53062 3.38984
1398 POINT 1398 -2.66664 1.875 7.41655
1399 POINT 1399 -10.4335 9.212020000000001 5.87063
1400 POINT 1400 -7.88486 0 3.16675
1401 POINT 1401 -3.5 0 6.06218
1402 POINT 1402 0.210294 5.13385 11.576
1403 POINT 1403 -12.9625 1.13303 0.987013
1404 POINT 1404 1.00776 5.96808 12.9609
1405 POINT 1405 -1.69349 10 12.9332
1406 POINT 1406 -0.335124 1.875 9.35153
1407 POINT 1407 -2.38301 9.58281 11.8989
1408 POINT 1408 -11.3608 6.63819 3.83931
1409 POINT 1409 0.456741 7 12.9854
1410 POINT 1410 1.55541 4.93615 12.9066
1411 POINT 1411 -1.83328 3.75 8.77093
1412 POINT 1412 -2.14474 8.5 11.2715
1413 POINT 1413 -9.8042 0 1.96918
1414 POINT 1414 -8.42469 9.58403 7.03526
1415 POINT 1415 -0.357247 8.121079999999999 12.7573
1416 POINT 1416 -5.34536 0 4.51964
1417 POINT 1417 -9.404540000000001 6.45684 4.62144
1418 POINT 1418 1.16303 0 9.93214
1419 POINT 1419 -10.0967 3.13819 2.78593
1420 POINT 1420 -4.31174 10 10.2396
1421 POINT 1421 -12.9436 2.33251 1.20989
1422 POINT 1422 -9.71353 7.91599 5.18416
1423 POINT 1423 -3.58375 8.37785 9.680730000000001
1424 POINT 1424 -2.42395 0 6.56692
1425 POINT 1425 -2.36744 10 11.872
1426 POINT 1426 -12.7375 5.89243 2.59939
1427 POINT 1427 2.80284 2.54958 12.6943
1428 POINT 1428 -11.4285 0 0.965198
1429 POINT 1429 -1.53736 1.875 7.82998
1430 POINT 1430 2.42483 3.74254 12.7719
1431 POINT 1431 -8.40962 10 7.00915
1432 POINT 1432 -7.73394 8.318659999999999 6.36712
1433 POINT 1433 -5.98194 6.69651 6.59136
1434 POINT 1434 -12.6264 7 3.05279
1435 POINT 1435 3.70349 0 12.4511
1436 POINT 1436 2.23335 1.35007 11.2065
1437 POINT 1437 0.09761019999999999 0 8.42229
1438 POINT 1438 -0.109404 6.81952 11.5501
1439 POINT 1439 -1.25441 5.19452 9.44285
1440 POINT 1440 -10.3892 6.27637 3.60267
1441 POINT 1441 3.4853 1.19951 12.5241
1442 POINT 1442 -2.68865 5.25285 8.15673
1443 POINT 1443 -10.6982 7.73552 4.16539
1444 POINT 1444 -3.12155 10 10.7349
1445 POINT 1445 -12.9436 3.52098 1.20989
1446 POINT 1446 -1.14254 9.16563 11.9789
1447 POINT 1447 -9.267659999999999 9.785640000000001 6.05206
1448 POINT 1448 -6.05893 0 3.50562
1449 POINT 1449 -11.0072 9.194660000000001 4.72812
1450 POINT 1450 -11.4021 1.13303 0.984591
1451 POINT 1451 -13 0 -4.87067e-15
1452 POINT 1452 -8.193070000000001 0 2.17499
1453 POINT 1453 -12.9035 4.71393 1.5807
1454 POINT 1454 1.68021 4.15334 11.5988
1455 POINT 1455 2.94921 0 11.0926
1456 POINT 1456 -8.48582 3.13819 2.99209
1457 POINT 1457 -1.24145 0 6.88904
1458 POINT 1458 -0.909046 7.90233 11.0469
1459 POINT 1459 -9.21574 10 5.96213
1460 POINT 1460 -8.54006 8.318659999999999 5.3201
1461 POINT 1461 -6.60788 5.91115 5.21927
1462 POINT 1462 -1.12697 9.58281 11.952
1463 POINT 1463 -6.07028 10 7.94681
1464 POINT 1464 -11.6126 6.63819 2.81133
1465 POINT 1465 -12.2843 8.199820000000001 3.2735
1466 POINT 1466 2.56484 4.86055 12.7445
1467 POINT 1467 1.54631 7 12.8974
1468 POINT 1468 -5 10 8.66025
1469 POINT 1469 2.09889 5.96808 12.8294
1470 POINT 1470 -13 1.13303 -4.87067e-15
1471 POINT 1471 -9.951969999999999 0 0.978898
1472 POINT 1472 -4.27201 8.37785 8.10139
1473 POINT 1473 -5.29602 8.37785 7.31829
1474 POINT 1474 -7.04802 10 7.09405
1475 POINT 1475 -11.4021 2.3215 0.984591
1476 POINT 1476 -2.10978 6.69737 8.82865
1477 POINT 1477 -0.675548 6.63904 10.1148
1478 POINT 1478 -6.34498 3.7865 4.15707
1479 POINT 1479 2.19773 0 9.755509999999999
1480 POINT 1480 -1.1114 10 11.925
1481 POINT 1481 0.919676 8.14048 12.7161
1482 POINT 1482 -3.54402 6.7557 7.54253
1483 POINT 1483 -1.88108 9.58281 10.8149
1484 POINT 1484 -4.20762 3.05431 5.21606
1485 POINT 1485 -9.52473 8.13819 4.30134
1486 POINT 1486 -3.847 10 9.230420000000001
1487 POINT 1487 -0.302254 1.875 7.83112
1488 POINT 1488 0.12859 4.67828 9.51535
1489 POINT 1489 1.62675 2.80328 10.096
1490 POINT 1490 -11.5 0 -4.17006e-15
1491 POINT 1491 1.2736 6.30328 11.6226
1492 POINT 1492 -11.6946 5.45968 1.80134
1493 POINT 1493 1.82293 5.27135 11.5832
1494 POINT 1494 -12.8359 7 2.02
1495 POINT 1495 -1.64758 8.319520000000001 9.88278
1496 POINT 1496 -13 2.26607 -4.87067e-15
1497 POINT 1497 -9.832459999999999 9.81282 4.90666
1498 POINT 1498 1.2012 0 8.411849999999999
1499 POINT 1499 -3.08182 8.37785 8.59666
1500 POINT 1500 -6.58243 0 2.38151
1501 POINT 1501 -7.92709 10 6.096
1502 POINT 1502 -1.86551 10 10.7879
1503 POINT 1503 4.70235 0 12.1133
1504 POINT 1504 -11.0487 7.74903 2.94103
1505 POINT 1505 -2.75 0 4.76314
1506 POINT 1506 -7.6102 7.37109 4.55535
1507 POINT 1507 0.13155 9.21078 11.9724
1508 POINT 1508 -0.00648884 0 7
1509 POINT 1509 -11.5 1.13303 -4.17006e-15
1510 POINT 1510 -11.3941 9.23761 3.50313
1511 POINT 1511 4.49161 1.19951 12.1994
1512 POINT 1512 -3.64059 0 4.03265
1513 POINT 1513 -4.20762 4.41169 5.21606
1514 POINT 1514 -12.9609 0 -0.9817900000000001
1515 POINT 1515 -12.9611 5.8215 1.00448
1516 POINT 1516 -2.61962 10 9.650779999999999
1517 POINT 1517 -12.5585 8.10934 2.20922
1518 POINT 1518 -13 3.45453 -4.87067e-15
1519 POINT 1519 4.27694 2.39902 12.2763
1520 POINT 1520 0.366557 7.9168 11.0057
1521 POINT 1521 -8.41202 0 0.952913
1522 POINT 1522 3.94779 0 10.794
1523 POINT 1523 3.91636 3.59199 12.3961
1524 POINT 1524 0.707456 6.1228 10.1873
1525 POINT 1525 -4.40885 0 3.25536
1526 POINT 1526 3.55077 4.78495 12.5057
1527 POINT 1527 -8.59487 7.19062 3.53659
1528 POINT 1528 3.09681 5.89248 12.6258
1529 POINT 1529 -2.75 1.19559 4.76314
1530 POINT 1530 3.73684 1.19951 10.8758
1531 POINT 1531 -1.91664 3.07059 6.11751
1532 POINT 1532 2.63489 7 12.7185
1533 POINT 1533 -1.65377 0 5.16936
1534 POINT 1534 -8.66025 10 5
1535 POINT 1535 -10 0 -3.46945e-15
1536 POINT 1536 -9.729789999999999 1.70291 0.621934
1537 POINT 1537 -0.608289 9.784990000000001 11.0536
1538 POINT 1538 -11.5 2.3215 -4.17006e-15
1539 POINT 1539 -3.67268 1.19559 3.99187
1540 POINT 1540 -7.13974 8.948919999999999 5.2265
1541 POINT 1541 -12.9625 1.13303 -0.987013
1542 POINT 1542 -10.0273 8.13819 3.07222
1543 POINT 1543 -5.47702 10.2038 7.04728
1544 POINT 1544 -8.33196 5.06597 2.4744
1545 POINT 1545 2.06109 8.09821 12.5965
1546 POINT 1546 -0.91664 5.76022 8.019869999999999
1547 POINT 1547 -5.20762 3.05431 3.48401
1548 POINT 1548 3.1837 4.00279 11.268
1549 POINT 1549 -1.77201 8.37785 8.771269999999999
1550 POINT 1550 -5.17228 7.43029 5.50652
1551 POINT 1551 3.19674 0 9.47528
1552 POINT 1552 -0.337774 8.319520000000001 10.0574
1553 POINT 1553 -10.0223 4.8411 1.43868
1554 POINT 1554 -4.44455 10.2133 7.69819
1555 POINT 1555 -0.5557 10 10.9625
1556 POINT 1556 2.82062 5.19575 11.3827
1557 POINT 1557 -13 4.64299 -4.87067e-15
1558 POINT 1558 2.36268 6.30328 11.4891
1559 POINT 1559 -12.9595 7 0.999387
1560 POINT 1560 2.6436 2.80328 9.867520000000001
1561 POINT 1561 -11.4295 0 -0.963449
1562 POINT 1562 -3.73906 8.82245 7.1783
1563 POINT 1563 -1.62072 1.19559 5.17657
1564 POINT 1564 -10.3067 9.835610000000001 3.59494
1565 POINT 1565 2.20968 0 8.18295
1566 POINT 1566 -6.89803 0 1.19046
1567 POINT 1567 -3.37004 10.2036 8.26506
1568 POINT 1568 -1.91664 4.42797 6.11751
1569 POINT 1569 -1.31574 10 9.91306
1570 POINT 1570 -0.622797 0 5.44578
1571 POINT 1571 1.65962 2.80328 8.57554
1572 POINT 1572 -5.02144 0 2.19654
1573 POINT 1573 0.0691884 3.80278 7.43919
1574 POINT 1574 -6.42858 1.92778 1.86382
1575 POINT 1575 1.74956 7.40055 11.0782
1576 POINT 1576 -8.11891 1.70291 0.828095
1577 POINT 1577 -4.29122 1.19559 2.9228
1578 POINT 1578 -6.38416 10.3197 5.88461
1579 POINT 1579 1.40866 9.19455 11.8967
1580 POINT 1580 2.09046 5.60655 10.2598
1581 POINT 1581 1.22877 0 6.89131
1582 POINT 1582 -11.7081 9.221690000000001 2.27938
1583 POINT 1583 5.63021 0 11.7154
1584 POINT 1584 -7.73039 9.052429999999999 4.23525
1585 POINT 1585 -5.20762 4.41169 3.48401
1586 POINT 1586 -4.70182 9.00811 6.17767
1587 POINT 1587 -12.9436 2.33255 -1.20999
1588 POINT 1588 -0.337774 7.20474 8.691789999999999
1589 POINT 1589 -11.4021 1.13303 -0.984591
1590 POINT 1590 -1.77201 7.26307 7.40567
1591 POINT 1591 -8.5 0 -2.93114e-15
1592 POINT 1592 -13 5.8215 -4.87067e-15
1593 POINT 1593 -9.235659999999999 10 3.82553
1594 POINT 1594 -12.8416 0 -1.98432
1595 POINT 1595 -9.6341 6.27194 1.53556
1596 POINT 1596 -12.6911 8.14148 1.02892
1597 POINT 1597 1.04523 7.80328 10.1299
1598 POINT 1598 4.88037 0 10.3799
1599 POINT 1599 -9.82769 1.70291 -0.362658
1600 POINT 1600 5.62646 1.13303 11.7193
1601 POINT 1601 4.11685 5.89248 12.3309
1602 POINT 1602 3.66834 7 12.4614
1603 POINT 1603 -7.1945 10.3115 4.91707
1604 POINT 1604 -9.951969999999999 0 -0.978898
1605 POINT 1605 -2.77201 5.93083 5.50332
1606 POINT 1606 0.66781 9.812659999999999 10.9689
1607 POINT 1607 -2.39298 9.007400000000001 7.51196
1608 POINT 1608 -11.3277 4.02441 -0.362658
1609 POINT 1609 -11.4021 2.3215 -0.984591
1610 POINT 1610 -12.9436 3.52101 -1.20999
1611 POINT 1611 5.4239 2.33255 11.8145
1612 POINT 1612 -0.385614 1.19559 5.1777
1613 POINT 1613 -10.7058 9.8071 2.44614
1614 POINT 1614 4.12824 0 9.10811
1615 POINT 1615 4.84837 1.13303 10.3668
1616 POINT 1616 -10.8575 6.63375 0.7442220000000001
1617 POINT 1617 -13 7 -4.87067e-15
1618 POINT 1618 -2 0 3.4641
1619 POINT 1619 -2.81549 0 2.84131
1620 POINT 1620 3.37921 6.30328 11.1931
1621 POINT 1621 -1.9037 10.3192 8.47232
1622 POINT 1622 -6.36971e-08 10 10
1623 POINT 1623 -5.31067 0 1.14224
1624 POINT 1624 -6.80053 8.10487 3.47051
1625 POINT 1625 0.08336010000000001 3.07059 6.11751
1626 POINT 1626 3.30427 8.20031 12.2758
1627 POINT 1627 0.618077 0 5.44689
1628 POINT 1628 1.04523 6.68849 8.764290000000001
1629 POINT 1629 -12.8108 1.19951 -2.20985
1630 POINT 1630 -11.3218 0 -1.97812
1631 POINT 1631 -8.76962 8.133749999999999 2.23422
1632 POINT 1632 -8.232950000000001 9.052429999999999 3.00614
1633 POINT 1633 -8.227959999999999 5.75535 1.3726
1634 POINT 1634 5.4239 3.52101 11.8145
1635 POINT 1635 -7 0 -2.39283e-15
1636 POINT 1636 -6.53763 5.98022 2.40832
1637 POINT 1637 5.08249 4.71397 11.9653
1638 POINT 1638 -1.0529 0 3.85894
1639 POINT 1639 -8.063219999999999 10.2488 3.6831
1640 POINT 1640 -2 1.19559 3.4641
1641 POINT 1641 4.84837 2.3215 10.3668
1642 POINT 1642 -11.9283 9.16437 1.13187
1643 POINT 1643 -3.9341 10.8892 6.81407
1644 POINT 1644 -2.81549 1.19559 2.84131
1645 POINT 1645 -5.29122 1.19559 1.19075
1646 POINT 1646 3.38439 0 7.76148
1647 POINT 1647 -3.4641 0 2
1648 POINT 1648 -8.32769 1.70291 -0.362658
1649 POINT 1649 -2.77201 7.40235 5.50332
1650 POINT 1650 -10.9395 5.45525 -0.265777
1651 POINT 1651 -9.665369999999999 10 2.54177
1652 POINT 1652 -8.413830000000001 0 -0.9497719999999999
1653 POINT 1653 6.5 0 11.2583
1654 POINT 1654 -12.9611 5.8215 -1.00486
1655 POINT 1655 -3.19224e-08 8.88522 8.634410000000001
1656 POINT 1656 2.98442 7.41426 10.7696
1657 POINT 1657 2.03106 4.73105 8.18361
1658 POINT 1658 1.60021 1.92778 6.49938
1659 POINT 1659 -6.33008 9.682689999999999 4.14166
1660 POINT 1660 -6.27472 3.85556 1.34612
1661 POINT 1661 2.66216 9.23766 11.6194
1662 POINT 1662 2.41805 0 6.5691
1663 POINT 1663 -7.96505 3.63069 0.310404
1664 POINT 1664 -12.7873 8.10956 -4.80917e-15
1665 POINT 1665 0.08336010000000001 4.42797 6.11751
1666 POINT 1666 -10.2936 7.7446 0.8739130000000001
1667 POINT 1667 4.29523 5.12477 10.759
1668 POINT 1668 -1.0529 1.19559 3.85894
1669 POINT 1669 -4.90544 11.1375 5.88541
1670 POINT 1670 -12.9035 4.71397 -1.58108
1671 POINT 1671 -11.2127 2.90242 -1.57977
1672 POINT 1672 -9.655379999999999 3.40582 -0.725316
1673 POINT 1673 -2 2.39118 3.4641
1674 POINT 1674 -9.729789999999999 1.70291 -1.34725
1675 POINT 1675 5.75 0 9.959289999999999
1676 POINT 1676 -0.6677959999999999 10.3114 8.68871
1677 POINT 1677 -12.6348 0 -3.01826
1678 POINT 1678 -11.2871 1.19951 -2.2017
1679 POINT 1679 -12.7701 2.39902 -2.43422
1680 POINT 1680 4.66796 7 12.1265
1681 POINT 1681 6.5 1.13303 11.2583
1682 POINT 1682 2.36096 7.80328 9.95055
1683 POINT 1683 -4.40027 6.60541 3.46731
1684 POINT 1684 -9.8042 0 -1.96918
1685 POINT 1685 -4.43472e-10 0 4
1686 POINT 1686 -10.9395 6.63375 -0.265777
1687 POINT 1687 -7.83976 7.18619 1.46948
1688 POINT 1688 2.0386 9.83577 10.7232
1689 POINT 1689 -2.64571 11.1366 7.19118
1690 POINT 1690 -12.9595 7 -0.999719
1691 POINT 1691 -1.47826e-10 7.77043 7.26881
1692 POINT 1692 5 0 8.66025
1693 POINT 1693 5.75 1.13303 9.959289999999999
1694 POINT 1694 4.13779 1.95932 8.440239999999999
1695 POINT 1695 -3.86839 0 1.01763
1696 POINT 1696 -5.5 0 -1.88429e-15
1697 POINT 1697 -5.85962 11.2605 4.8128
1698 POINT 1698 -3.4641 2.39118 2
1699 POINT 1699 1.30482 10 9.91108
1700 POINT 1700 1.65408 0 5.17042
1701 POINT 1701 -9.272180000000001 8.133749999999999 1.00511
1702 POINT 1702 6.5 2.26607 11.2583
1703 POINT 1703 4.36513 8.10941 11.9809
1704 POINT 1704 -2 3.74856 3.4641
1705 POINT 1705 -8.52197 10.2505 2.47932
1706 POINT 1706 3.15381 1.95932 7.14825
1707 POINT 1707 -1 6.43819 5.36646
1708 POINT 1708 3.58465 4.7626 8.83248
1709 POINT 1709 -10.7518 9.867900000000001 1.03921
1710 POINT 1710 -9.26718 4.83666 -0.628435
1711 POINT 1711 -12.5888 1.19951 -3.24368
1712 POINT 1712 -11.081 0 -2.99219
1713 POINT 1713 0.985828 5.81299 6.68813
1714 POINT 1714 5.61032 5.8215 11.7271
1715 POINT 1715 -12.1129 9.129670000000001 -4.5088e-15
1716 POINT 1716 -1 9.0245 6.73205
1717 POINT 1717 -3.86839 1.19559 1.01763
1718 POINT 1718 5.75 2.3215 9.959289999999999
1719 POINT 1719 4.25 0 7.36122
1720 POINT 1720 -5.5 1.19559 -1.88429e-15
1721 POINT 1721 1.61439 1.19559 5.1777
1722 POINT 1722 -6.06218 10.0408 3.5
1723 POINT 1723 -4.40027 8.076930000000001 3.46731
1724 POINT 1724 -11.4652 5.12477 -1.65975
1725 POINT 1725 -6.89803 0 -1.19046
1726 POINT 1726 -9.91709 10 1.2596
1727 POINT 1727 6.5 3.45453 11.2583
1728 POINT 1728 -3.4641 3.74856 2
1729 POINT 1729 -6.82769 2.8985 -0.362658
1730 POINT 1730 -6.72136 11.1903 3.65719
1731 POINT 1731 7.32952 0 10.7344
1732 POINT 1732 -5.13736 3.12337 0.673062
1733 POINT 1733 -2.96705 9.469099999999999 5.13908
1734 POINT 1734 -3.60401 11.9023 6.24233
1735 POINT 1735 -12.6935 3.59199 -2.80636
1736 POINT 1736 -10.496 7.69859 -0.265777
1737 POINT 1737 1.31573 8.88522 8.455080000000001
1738 POINT 1738 -4.43472e-10 2.39118 4
1739 POINT 1739 -12.6909 8.141780000000001 -1.03042
1740 POINT 1740 -6.33013 9.0245 2.5
1741 POINT 1741 0.847726 10.2483 8.82508
1742 POINT 1742 -2 5.10595 3.4641
1743 POINT 1743 -8.11891 1.70291 -1.55341
1744 POINT 1744 -4.70458 12.054 5.39539
1745 POINT 1745 3.87838 9.221970000000001 11.2795
1746 POINT 1746 -1.24193 11.2591 7.48138
1747 POINT 1747 -5.40027 6.60541 1.73525
1748 POINT 1748 1.97166 3.85555 6.10746
1749 POINT 1749 1.0529 0 3.85894
1750 POINT 1750 6.549 0 9.41563
1751 POINT 1751 -8.19148 0 -2.17783
1752 POINT 1752 3.5 0 6.06218
1753 POINT 1753 5.61396 7 11.7231
1754 POINT 1754 7.33477 1.13303 10.7332
1755 POINT 1755 -3.92981 9.65476 4.13845
1756 POINT 1756 -1 7.90972 5.36646
1757 POINT 1757 -12.3433 0 -4.04307
1758 POINT 1758 -4 0 -1.37574e-15
1759 POINT 1759 6.5 4.64299 11.2583
1760 POINT 1760 -10.8574 6.63375 -1.27611
1761 POINT 1761 -8.87899 6.2675 -0.531554
1762 POINT 1762 -5.48331 12.1296 4.5697
1763 POINT 1763 -9.54738 0 -2.97446
1764 POINT 1764 2.53942 5.84454 7.33701
1765 POINT 1765 -6.82769 4.25589 -0.362658
1766 POINT 1766 -2.32884 12.054 6.76899
1767 POINT 1767 -5.13736 4.48076 0.673062
1768 POINT 1768 -3.4641 5.10595 2
1769 POINT 1769 3.23426 9.807090000000001 10.4947
1770 POINT 1770 -4.43472e-10 3.74856 4
1771 POINT 1771 -12.8358 7 -2.02067
1772 POINT 1772 -11.099 9.791449999999999 -4.02035e-15
1773 POINT 1773 5.03942 1.95932 8.032730000000001
1774 POINT 1774 -8.89269 10.211 1.25265
1775 POINT 1775 1.0529 1.19559 3.85894
1776 POINT 1776 5.82374 0 8.12921
1777 POINT 1777 6.55373 1.13303 9.382210000000001
1778 POINT 1778 -5.13232 9.09318 2.73525
1779 POINT 1779 -7.43167 11.0228 2.4048
1780 POINT 1780 -12.7373 5.89248 -2.60017
1781 POINT 1781 -7.73071 3.13375 -1.45653
1782 POINT 1782 -2.96705 10.772 5.13908
1783 POINT 1783 -1.62097 9.65405 5.47274
1784 POINT 1784 -9.439489999999999 8.133749999999999 -0.265777
1785 POINT 1785 -4 1.19559 -1.37574e-15
1786 POINT 1786 -2 6.57747 3.4641
1787 POINT 1787 3.99342 6.36467 8.79157
1788 POINT 1788 2.63145 10 9.64134
1789 POINT 1789 2.75 0 4.76314
1790 POINT 1790 -5.30476 0 -1.15274
1791 POINT 1791 -9.792909999999999 4.50619 -2.0224
1792 POINT 1792 -9.867319999999999 2.80328 -2.64434
1793 POINT 1793 -11.3503 4.00279 -2.87685
1794 POINT 1794 -3.20703e-08 10.0408 7
1795 POINT 1795 5.45306 8.141780000000001 11.5058
1796 POINT 1796 -4.47515 13 5.38266
1797 POINT 1797 6.5 5.8215 11.2583
1798 POINT 1798 -3.5 13 6.06218
1799 POINT 1799 -5.40027 8.076930000000001 1.73525
1800 POINT 1800 -12.6056 4.78495 -3.17778
1801 POINT 1801 -6.1469 12.1618 3.61682
1802 POINT 1802 5.03126 0 6.80857
1803 POINT 1803 4.28942 1.95932 6.73369
1804 POINT 1804 3.52525 3.8871 6.75633
1805 POINT 1805 7.51903 2.33247 10.6049
1806 POINT 1806 6.55373 2.3215 9.382210000000001
1807 POINT 1807 -12.395 2.54958 -3.91979
1808 POINT 1808 -6.83269 9.0245 1.27088
1809 POINT 1809 -10.8218 1.35007 -3.66914
1810 POINT 1810 -10.7616 0 -4.00462
1811 POINT 1811 -11.9281 9.16447 -1.13255
1812 POINT 1812 5.78942 4.28082 9.331770000000001
1813 POINT 1813 -4.43472e-10 5.10595 4
1814 POINT 1814 0.18871 11.1904 7.64943
1815 POINT 1815 -3.92981 10.9576 4.13845
1816 POINT 1816 -5.34536 13 4.51964
1817 POINT 1817 -1.21829 12.1292 7.03323
1818 POINT 1818 2.75 1.19559 4.76314
1819 POINT 1819 1.98583 3.12337 4.78578
1820 POINT 1820 -4 2.39118 -1.37574e-15
1821 POINT 1821 -4.66186 10.671 3.4064
1822 POINT 1822 -3.4641 6.57747 2
1823 POINT 1823 -10 10 -3.46945e-15
1824 POINT 1824 1 6.43819 5.36646
1825 POINT 1825 -5.29122 1.19559 -1.19075
1826 POINT 1826 -2.42395 13 6.56692
1827 POINT 1827 -6.43949 5.68673 -0.265777
1828 POINT 1828 8.13697 0 10.1309
1829 POINT 1829 1 9.0245 6.73205
1830 POINT 1830 2.11257 10.2508 8.619540000000001
1831 POINT 1831 -10.2932 7.74474 -1.40626
1832 POINT 1832 2 0 3.4641
1833 POINT 1833 -6.58243 0 -2.38151
1834 POINT 1834 -12.5584 8.10941 -2.21016
1835 POINT 1835 -2.95649e-10 8.92597 5.63441
1836 POINT 1836 4.98323 9.16447 10.8963
1837 POINT 1837 7.51903 3.52093 10.6049
1838 POINT 1838 6.5 7 11.2583
1839 POINT 1839 -2 8.048999999999999 3.4641
1840 POINT 1840 -1.62097 10.9569 5.47274
1841 POINT 1841 -9.404719999999999 5.93703 -1.92552
1842 POINT 1842 5.28217 7.0614 9.724919999999999
1843 POINT 1843 7.37247 0 8.81743
1844 POINT 1844 -8.3736 8.57835 -0.265777
1845 POINT 1845 -7.88548 0 -3.16566
1846 POINT 1846 -11.3831 6.30328 -2.67008
1847 POINT 1847 -3.86839 0 -1.01763
1848 POINT 1848 2.94819 7.44661 7.29609
1849 POINT 1849 -6.05893 13 3.50562
1850 POINT 1850 -4 3.74856 -1.37574e-15
1851 POINT 1851 -5.29122 2.55297 -1.19075
1852 POINT 1852 -12.1153 1.35007 -4.71363
1853 POINT 1853 1.98583 4.48075 4.78578
1854 POINT 1854 -6.80207 12.0195 2.3249
1855 POINT 1855 2 1.19559 3.4641
1856 POINT 1856 -7.73227 11.0262 1.18707
1857 POINT 1857 -4.43472e-10 6.57747 4
1858 POINT 1858 4.47998 0 5.37864
1859 POINT 1859 -9.183 0 -3.95885
1860 POINT 1860 -5.44789 10.5521 2.2024
1861 POINT 1861 -11.268 5.19575 -3.24863
1862 POINT 1862 -11.9521 0 -5.08721
1863 POINT 1863 5.84316 1.95932 7.45565
1864 POINT 1864 -12.6261 7 -3.05385
1865 POINT 1865 -1.24145 13 6.88904
1866 POINT 1866 -0.620967 10.6703 5.74069
1867 POINT 1867 5.07885 3.91864 7.4052
1868 POINT 1868 6.60746 0 7.50609
1869 POINT 1869 -2.75 11.8274 4.76314
1870 POINT 1870 -10.7508 9.868169999999999 -1.04107
1871 POINT 1871 -8.889099999999999 10.2133 -3.02354e-15
1872 POINT 1872 -8.25644 2.80328 -2.8505
1873 POINT 1873 3.53942 3.15491 5.43465
1874 POINT 1874 8.317399999999999 1.19944 9.99104
1875 POINT 1875 -3.4641 8.048999999999999 2
1876 POINT 1876 -6.43949 7.15825 -0.265777
1877 POINT 1877 1 7.90972 5.36646
1878 POINT 1878 -3.86839 1.19559 -1.01763
1879 POINT 1879 -0.0536171 12.1599 7.13244
1880 POINT 1880 -3.67268 11.8274 3.99187
1881 POINT 1881 -12.2732 3.74254 -4.28596
1882 POINT 1882 -12.4826 5.89248 -3.63096
1883 POINT 1883 4.88738 8.17238 9.30142
1884 POINT 1884 -2.81549 9.065250000000001 2.84131
1885 POINT 1885 -5.71584 9.5359 1.2024
1886 POINT 1886 -4.66186 12.1303 3.4064
1887 POINT 1887 6.39364 8.10956 11.0741
1888 POINT 1888 -9.55672 2.80328 -3.63917
1889 POINT 1889 -5.02618 0 -2.18817
1890 POINT 1890 2 2.39118 3.4641
1891 POINT 1891 7.34923 5.8215 10.7233
1892 POINT 1892 6.78539 3.15876 8.624169999999999
1893 POINT 1893 4.47383 9.868169999999999 9.83104
1894 POINT 1894 1.63423 11.0231 7.63794
1895 POINT 1895 6.19819 5.88289 9.290850000000001
1896 POINT 1896 -2 9.35188 3.4641
1897 POINT 1897 7.54969 1.19944 8.674609999999999
1898 POINT 1898 3.8677 10 9.218249999999999
1899 POINT 1899 -9.272180000000001 8.133749999999999 -1.53666
1900 POINT 1900 -4 5.10595 -1.37574e-15
1901 POINT 1901 -12.3195 4.86055 -4.15102
1902 POINT 1902 3.64455 0 4.02805
1903 POINT 1903 -1.62072 11.8274 5.17657
1904 POINT 1904 7.08754 4.50671 9.4239
1905 POINT 1905 -1.0529 9.065250000000001 3.85894
1906 POINT 1906 4.26392 8.561400000000001 8.48235
1907 POINT 1907 -10.5112 1.35007 -4.66398
1908 POINT 1908 7.82008 4.71378 10.3849
1909 POINT 1909 -7.97518 5.58813 -2.17986
1910 POINT 1910 3.53942 4.51229 5.43465
1911 POINT 1911 -6.58243 13 2.38151
1912 POINT 1912 -10.3354 0 -5.01685
1913 POINT 1913 -11.7075 9.221970000000001 -2.28096
1914 POINT 1914 -4.43472e-10 8.048999999999999 4
1915 POINT 1915 -10.819 7.41426 -2.80022
1916 POINT 1916 5.21625 1.95932 5.9575
1917 POINT 1917 2.31573 9.0245 6.55272
1918 POINT 1918 5.98014 0 6.00791
1919 POINT 1919 3.36952 10.2096 8.32823
1920 POINT 1920 8.49192 2.39887 9.84313
1921 POINT 1921 -9.91709 10 -1.2596
1922 POINT 1922 8.929500000000001 0 9.434570000000001
1923 POINT 1923 -7.11761 11.9497 1.2279
1924 POINT 1924 -2.75 13 4.76314
1925 POINT 1925 -0.00648884 13 7
1926 POINT 1926 2 3.74856 3.4641
1927 POINT 1927 -5.02327 11.5408 2.19075
1928 POINT 1928 2.81549 0 2.84131
1929 POINT 1929 3.67683 1.19559 3.98695
1930 POINT 1930 -9.93045 5.60655 -3.31949
1931 POINT 1931 7.34406 7 10.7244
1932 POINT 1932 -3.64991 13 4.01689
1933 POINT 1933 6.05647 9.129670000000001 10.4901
1934 POINT 1934 -0.620967 12.1295 5.74069
1935 POINT 1935 6.19819 7.0614 9.290850000000001
1936 POINT 1936 -2.81549 10.3681 2.84131
1937 POINT 1937 -12.2833 8.20031 -3.27632
1938 POINT 1938 -5.71584 10.8388 1.2024
1939 POINT 1939 0.817115 10.5523 5.81897
1940 POINT 1940 -10.885 4.15334 -4.34429
1941 POINT 1941 -7.86821 10.8892 -2.62054e-15
1942 POINT 1942 -11.1312 6.30328 -3.69842
1943 POINT 1943 8.132099999999999 0 8.09956
1944 POINT 1944 -4 6.57747 -1.37574e-15
1945 POINT 1945 -2 10.6548 3.4641
1946 POINT 1946 -4.40479 13 3.26225
1947 POINT 1947 5.48762 5.52072 7.36428
1948 POINT 1948 -3.4641 0 -2
1949 POINT 1949 -7.34272 0 -4.12661
1950 POINT 1950 -6.05893 0 -3.50562
1951 POINT 1951 -3.4641 10.0815 2
1952 POINT 1952 -1.67208 13 5.16917
1953 POINT 1953 2.81549 1.19559 2.84131
1954 POINT 1954 7.14127 2.18521 7.54778
1955 POINT 1955 -11.8395 2.70013 -5.3691
1956 POINT 1956 -1.0529 10.3681 3.85894
1957 POINT 1957 6.37696 4.14453 7.49733
1958 POINT 1958 1.38684 12.02 7.05319
1959 POINT 1959 -10.9428 5.27135 -4.21289
1960 POINT 1960 -11.6681 1.35007 -5.73188
1961 POINT 1961 -12.332 7 -4.07735
1962 POINT 1962 -5.9341 9.469099999999999 -1.99814e-15
1963 POINT 1963 -3.86839 9.065250000000001 1.01763
1964 POINT 1964 -7.58698 7.01897 -2.08298
1965 POINT 1965 2 5.10595 3.4641
1966 POINT 1966 7.34965 0 6.78105
1967 POINT 1967 -11.4799 0 -6.08617
1968 POINT 1968 -8.897220000000001 10.2096 -1.24602
1969 POINT 1969 -8.680260000000001 0 -4.96519
1970 POINT 1970 9.10216 1.19944 9.281739999999999
1971 POINT 1971 5.5495 9.791449999999999 9.612019999999999
1972 POINT 1972 1.81711 9.53604 5.55102
1973 POINT 1973 -11.8981 3.81814 -5.23797
1974 POINT 1974 -12.1601 5.96808 -4.59703
1975 POINT 1975 7.2354 8.14132 10.4773
1976 POINT 1976 -9.79791 7.80328 -2.93063
1977 POINT 1977 5.35366 0 4.5098
1978 POINT 1978 5.97643 8.12623 8.906739999999999
1979 POINT 1979 -10.7058 9.807090000000001 -2.44638
1980 POINT 1980 8.083500000000001 3.38465 8.7163
1981 POINT 1981 -6.89803 13 1.19046
1982 POINT 1982 2.83555 11.0273 7.28979
1983 POINT 1983 -6.4387 3.88522 -3.00796
1984 POINT 1984 8.77566 3.59172 9.59103
1985 POINT 1985 3.94819 6.11437 5.39373
1986 POINT 1986 -0.6148 13 5.44585
1987 POINT 1987 -11.9552 4.93615 -5.10629
1988 POINT 1988 -4.43472e-10 10.0815 4
1989 POINT 1989 -5.02618 13 2.18817
1990 POINT 1990 0.614386 11.5408 5.44565
1991 POINT 1991 -4 8.048999999999999 -1.37574e-15
1992 POINT 1992 -2 11.8274 3.4641
1993 POINT 1993 -2.81549 11.8274 2.84131
1994 POINT 1994 5 10 8.66025
1995 POINT 1995 -5.29122 11.8274 1.19075
1996 POINT 1996 4.41298 0 3.25043
1997 POINT 1997 -3.4641 2.39118 -2
1998 POINT 1998 1.22877 13 6.89131
1999 POINT 1999 -6.83269 9.0245 -1.27088
2000 POINT 2000 6.51437 2.18521 6.04963
2001 POINT 2001 -4.40479 0 -3.26225
2002 POINT 2002 -4.29122 1.19559 -2.9228
2003 POINT 2003 -9.95349 1.35007 -5.639
2004 POINT 2004 -7.20802 11.9023 -2.23652e-15
2005 POINT 2005 5.44819 8.561400000000001 7.99181
2006 POINT 2006 -3.4641 11.5408 2
2007 POINT 2007 2 6.57747 3.4641
2008 POINT 2008 -5.9341 10.772 -1.99814e-15
2009 POINT 2009 -3.86839 10.3681 1.01763
2010 POINT 2010 6.68491 0 5.24512
2011 POINT 2011 -9.769590000000001 0 -6.00909
2012 POINT 2012 -1.0529 11.8274 3.85894
2013 POINT 2013 1.0529 9.065250000000001 3.85894
2014 POINT 2014 8.16502 7 10.1081
2015 POINT 2015 7.0307 7.0614 8.71574
2016 POINT 2016 9.671799999999999 0 8.669420000000001
2017 POINT 2017 -11.3937 9.23766 -3.50419
2018 POINT 2018 1.81711 10.8389 5.55102
2019 POINT 2019 -5.14749 6.43819 -1.8172
2020 POINT 2020 4.44455 10.2133 7.69819
2021 POINT 2021 3.4641 0 2
2022 POINT 2022 -10.4688 7.40055 -4.02396
2023 POINT 2023 5.89639 7.12279 7.32337
2024 POINT 2024 7.92005 5.68521 8.848789999999999
2025 POINT 2025 6.94388 9.164300000000001 9.764670000000001
2026 POINT 2026 -9.665369999999999 10 -2.54177
2027 POINT 2027 6.78573 5.74661 7.45642
2028 POINT 2028 2.50731 11.9463 6.77517
2029 POINT 2029 -3.4641 3.74856 -2
2030 POINT 2030 -4.67973 2.96868 -2.97675
2031 POINT 2031 8.618130000000001 5.89229 9.73282
2032 POINT 2032 8.58792 1.34981 7.53819
2033 POINT 2033 3.94819 7.5859 5.39373
2034 POINT 2034 8.84755 0 7.31945
2035 POINT 2035 -10.7023 6.30328 -4.70833
2036 POINT 2036 -7.73092 11.0273 -1.18924
2037 POINT 2037 -4 9.35188 -1.37574e-15
2038 POINT 2038 -8.11271 6.68849 -3.47695
2039 POINT 2039 -2.81549 0 -2.84131
2040 POINT 2040 -11.9395 8.09821 -4.5133
2041 POINT 2041 7.67507 4.37042 7.58947
2042 POINT 2042 4.91525 9.006 7.06872
2043 POINT 2043 -5.97095 1.77309 -4.1675
2044 POINT 2044 -2 13 3.4641
2045 POINT 2045 7.84752 2.18521 6.78138
2046 POINT 2046 -2.81549 13 2.84131
2047 POINT 2047 8.36411 4.5775 8.45951
2048 POINT 2048 -4.43472e-10 11.5408 4
2049 POINT 2049 -5.30476 13 1.15274
2050 POINT 2050 0.608466 13 5.44697
2051 POINT 2051 9.053140000000001 4.78457 9.329560000000001
2052 POINT 2052 -11.9427 7 -5.10957
2053 POINT 2053 -7.27123 1.77309 -4.95617
2054 POINT 2054 8.019970000000001 0 5.97328
2055 POINT 2055 2 8.048999999999999 3.4641
2056 POINT 2056 2.96705 9.469099999999999 5.13908
2057 POINT 2057 -5.71588 9.53604 -1.20184
2058 POINT 2058 -5.34536 0 -4.51964
2059 POINT 2059 -7 13 -1.94874e-15
2060 POINT 2060 9.59093 2.54924 8.77576
2061 POINT 2061 -6.70346 0 -5.21982
2062 POINT 2062 -10.9349 0 -7.0264
2063 POINT 2063 -9.04546 5.90612 -4.50576
2064 POINT 2064 6.27551 9.867850000000001 8.79222
2065 POINT 2065 -1.0529 13 3.85894
2066 POINT 2066 -2.81549 1.19559 -2.84131
2067 POINT 2067 1.0529 10.3681 3.85894
2068 POINT 2068 -8.06752 0 -5.90891
2069 POINT 2069 -11.7283 5.96808 -5.6077
2070 POINT 2070 -4.67973 4.32606 -2.97675
2071 POINT 2071 -3.4641 5.10595 -2
2072 POINT 2072 3.9341 10.8892 6.81407
2073 POINT 2073 -5.14749 7.90972 -1.8172
2074 POINT 2074 -3.86839 11.8274 1.01763
2075 POINT 2075 -5.5 11.8274 -1.66224e-15
2076 POINT 2076 -3.4641 13 2
2077 POINT 2077 1.61439 11.8274 5.1777
2078 POINT 2078 -8.52103 10.2508 -2.48024
2079 POINT 2079 8.19083 8.10919 9.77291
2080 POINT 2080 6.86177 8.172180000000001 8.16207
2081 POINT 2081 3.4641 2.39118 2
2082 POINT 2082 -11.156 2.50143 -6.67406
2083 POINT 2083 7.75111 6.796 8.295120000000001
2084 POINT 2084 5.74604 5.90028 5.55394
2085 POINT 2085 -10.3059 9.83577 -3.59612
2086 POINT 2086 -10.9445 1.15137 -7.01563
2087 POINT 2087 6.06542 0 3.49438
2088 POINT 2088 2.41805 13 6.5691
2089 POINT 2089 -7.64496 4.57636 -4.63649
2090 POINT 2090 -9.295349999999999 7.80328 -4.15975
2091 POINT 2091 -4 10.6548 -1.37574e-15
2092 POINT 2092 -7.98017 8.88522 -3.08809
2093 POINT 2093 -10.1303 5.13385 -5.6059
2094 POINT 2094 -3.64991 0 -4.01689
2095 POINT 2095 -8.599460000000001 3.12315 -5.6613
2096 POINT 2096 -7.12112 11.9463 -1.21619
2097 POINT 2097 6.04905 10 7.9589
2098 POINT 2098 4.67683 1.19559 2.2549
2099 POINT 2099 5.02365 0 2.19049
2100 POINT 2100 2 9.35188 3.4641
2101 POINT 2101 -3.86839 9.065250000000001 -1.01763
2102 POINT 2102 10.1385 1.34981 8.13701
2103 POINT 2103 8.955209999999999 7 9.41004
2104 POINT 2104 -9.19956 0 -6.89942
2105 POINT 2105 -11.156 3.68064 -6.67406
2106 POINT 2106 3.4641 3.74856 2
2107 POINT 2107 2.96705 10.772 5.13908
2108 POINT 2108 -5.71588 10.8389 -1.20184
2109 POINT 2109 -4.43472e-10 13 4
2110 POINT 2110 7.24814 0 4.29044
2111 POINT 2111 -6.33013 9.0245 -2.5
2112 POINT 2112 -3.4641 6.57747 -2
2113 POINT 2113 3.86839 0 1.01763
2114 POINT 2114 -3.67268 1.19559 -3.99187
2115 POINT 2115 10.3809 0 7.80836
2116 POINT 2116 6.46485 8.561400000000001 7.21177
2117 POINT 2117 8.684950000000001 5.68521 8.11655
2118 POINT 2118 9.121729999999999 3.53502 7.57988
2119 POINT 2119 7.35419 7.18521 7.34482
2120 POINT 2120 -3.86839 13 1.01763
2121 POINT 2121 -5.5 13 -1.66224e-15
2122 POINT 2122 1.0529 11.8274 3.85894
2123 POINT 2123 9.846920000000001 3.74209 8.48753
2124 POINT 2124 3.60401 11.9023 6.24233
2125 POINT 2125 9.383699999999999 5.89229 8.99701
2126 POINT 2126 4.51665 9.0245 5.28214
2127 POINT 2127 5.53086 10.211 7.07524
2128 POINT 2128 -11.2293 4.79865 -6.55008
2129 POINT 2129 -11.0072 9.19455 -4.72843
2130 POINT 2130 9.294169999999999 1.34981 6.77179
2131 POINT 2131 1.66612 13 5.1703
2132 POINT 2132 4.20662 6.49393 3.58339
2133 POINT 2133 -2 0 -3.4641
2134 POINT 2134 7.82715 9.221579999999999 9.000769999999999
2135 POINT 2135 -9.19882 1.15137 -6.90061
2136 POINT 2136 9.51281 0 6.44161
2137 POINT 2137 -4 11.8274 -1.37574e-15
2138 POINT 2138 9.036530000000001 4.65247 7.69607
2139 POINT 2139 -7.43176 11.0231 -2.40368
2140 POINT 2140 3.86839 1.19559 1.01763
2141 POINT 2141 -11.4723 8.14048 -5.56159
2142 POINT 2142 -9.235659999999999 10 -3.82553
2143 POINT 2143 9.75286 4.85955 8.59545
2144 POINT 2144 3.4641 5.10595 2
2145 POINT 2145 -11.4741 7 -6.09717
2146 POINT 2146 -6.89803 13 -1.19046
2147 POINT 2147 -2 1.19559 -3.4641
2148 POINT 2148 -5.98639 0 -6.0023
2149 POINT 2149 -5.35241 1.77309 -5.23657
2150 POINT 2150 2 10.6548 3.4641
2151 POINT 2151 -10.3301 0 -7.89231
2152 POINT 2152 -6.71349 1.77309 -5.9312
2153 POINT 2153 -3.86839 10.3681 -1.01763
2154 POINT 2154 -6.29498 7.77043 -3.63441
2155 POINT 2155 8.64011 0 5.03472
2156 POINT 2156 -9.58384 7.70012 -5.21023
2157 POINT 2157 6.15481 7.50235 5.51303
2158 POINT 2158 -7.38438 0 -6.74321
2159 POINT 2159 2.75 11.8274 4.76314
2160 POINT 2160 -3.4641 8.048999999999999 -2
2161 POINT 2161 3.89917 9.5359 4.34891
2162 POINT 2162 7.04415 6.12617 5.64608
2163 POINT 2163 -5.29122 11.8274 -1.19075
2164 POINT 2164 -4.47515 0 -5.38266
2165 POINT 2165 -9.81729 6.60284 -5.8946
2166 POINT 2166 8.97588 8.19974 9.002980000000001
2167 POINT 2167 1.0529 13 3.85894
2168 POINT 2168 4.89411 11.0262 6.10285
2169 POINT 2169 4.20662 7.96546 3.58339
2170 POINT 2170 -7.22772 6.98806 -4.66322
2171 POINT 2171 3.5 13 6.06218
2172 POINT 2172 -10.3301 1.15137 -7.8923
2173 POINT 2173 -2 2.39118 -3.4641
2174 POINT 2174 7.47033 9.807079999999999 8.049429999999999
2175 POINT 2175 2.81549 9.065250000000001 2.84131
2176 POINT 2176 -8.066599999999999 10.2483 -3.67839
2177 POINT 2177 -5.44793 10.5523 -2.20184
2178 POINT 2178 -4 13 -1.37574e-15
2179 POINT 2179 7.28753 4.18161 4.61195
2180 POINT 2180 3.4641 6.57747 2
2181 POINT 2181 8.636340000000001 6.78255 7.37937
2182 POINT 2182 6.5868 0 2.36939
2183 POINT 2183 -4.87954 8.92597 -2.8172
2184 POINT 2184 4 0 0
2185 POINT 2185 5.31268 0 1.13652
2186 POINT 2186 -2.75 0 -4.76314
2187 POINT 2187 5.7481 3.41788 2.6414
2188 POINT 2188 -4.14749 6.43819 -3.54925
2189 POINT 2189 -6.80166 12.02 -2.32555
2190 POINT 2190 -8.16047 6.20569 -5.69203
2191 POINT 2191 -5.82722 5.6583 -4.79395
2192 POINT 2192 9.69483 7 8.64363
2193 POINT 2193 -9.833220000000001 9.812659999999999 -4.90609
2194 POINT 2194 10.5684 2.69961 7.57029
2195 POINT 2195 2 11.8274 3.4641
2196 POINT 2196 -7.47761 8.88522 -4.3172
2197 POINT 2197 -8.46213 0 -7.71803
2198 POINT 2198 -10.3301 2.30274 -7.8923
2199 POINT 2199 -10.9413 5.83057 -7.02053
2200 POINT 2200 -1.0529 0 -3.85894
2201 POINT 2201 10.797 1.34981 7.24049
2202 POINT 2202 8.13517 5.7001 5.92583
2203 POINT 2203 -5.31067 13 -1.14224
2204 POINT 2204 2.75 13 4.76314
2205 POINT 2205 7.03331 10 7.10018
2206 POINT 2206 -2 3.74856 -3.4641
2207 POINT 2207 -3.67973 2.96868 -4.7088
2208 POINT 2208 11.0102 0 6.89957
2209 POINT 2209 5.2934 1.19559 1.1847
2210 POINT 2210 9.345549999999999 5.68521 7.23992
2211 POINT 2211 3.89917 10.8388 4.34891
2212 POINT 2212 -3.86839 11.8274 -1.01763
2213 POINT 2213 10.0591 5.96726 8.235010000000001
2214 POINT 2214 10.4838 3.81706 7.68699
2215 POINT 2215 4 1.19559 0
2216 POINT 2216 -2.75 1.19559 -4.76314
2217 POINT 2217 7.87151 0 3.19672
2218 POINT 2218 -7.8448 2.92446 -6.9229
2219 POINT 2219 9.8597 1.34981 5.80126
2220 POINT 2220 -6.75997 4.87593 -5.82276
2221 POINT 2221 -8.47744 1.15137 -7.69157
2222 POINT 2222 -8.410360000000001 8.10284 -5.34602
2223 POINT 2223 -9.2453 5.43341 -6.79217
2224 POINT 2224 -1.0529 1.19559 -3.85894
2225 POINT 2225 4.62214 11.9497 5.55012
2226 POINT 2226 2.81549 10.3681 2.84131
2227 POINT 2227 -10.9612 0 -8.985300000000001
2228 POINT 2228 7.27832 8.561400000000001 6.16168
2229 POINT 2229 5.7481 4.77527 2.6414
2230 POINT 2230 10.0875 0 5.45852
2231 POINT 2231 -10.3301 3.48194 -7.8923
2232 POINT 2232 10.398 4.93452 7.80267
2233 POINT 2233 8.16766 7.18521 6.29473
2234 POINT 2234 -3.4641 10.0815 -2
2235 POINT 2235 6.40778 10.2506 6.14093
2236 POINT 2236 -10.4342 9.21078 -5.87228
2237 POINT 2237 -6.06218 10.0408 -3.5
2238 POINT 2238 3.4641 8.048999999999999 2
2239 POINT 2239 -5.02327 11.5408 -2.19075
2240 POINT 2240 8.730079999999999 9.23756 8.11692
2241 POINT 2241 5.33013 9.0245 4.23205
2242 POINT 2242 7.42493 2.22229 3.16425
2243 POINT 2243 -10.9317 7 -7.03152
2244 POINT 2244 4 2.39118 0
2245 POINT 2245 -4.14749 7.90972 -3.54925
2246 POINT 2246 -3.67973 4.32606 -4.7088
2247 POINT 2247 -2 5.10595 -3.4641
2248 POINT 2248 -5.99211 1.77309 -6.72217
2249 POINT 2249 2 13 3.4641
2250 POINT 2250 -6.58243 13 -2.38151
2251 POINT 2251 -10.8695 8.121079999999999 -6.68802
2252 POINT 2252 -7.8448 4.10366 -6.9229
2253 POINT 2253 -10.9612 1.15137 -8.985300000000001
2254 POINT 2254 -6.62475 0 -7.49084
2255 POINT 2255 6.72327 8.94096 5.40143
2256 POINT 2256 9.151020000000001 0 4.03222
2257 POINT 2257 -5.35947 3.54618 -5.9535
2258 POINT 2258 -8.66025 10 -5
2259 POINT 2259 -4.42973 1.77309 -6.00784
2260 POINT 2260 3.86839 0 -1.01763
2261 POINT 2261 -5.03767 0 -6.80457
2262 POINT 2262 -10.3301 4.66114 -7.8923
2263 POINT 2263 3.67683 11.8274 3.98695
2264 POINT 2264 -9.2453 6.60284 -6.79217
2265 POINT 2265 -3.86839 13 -1.01763
2266 POINT 2266 -3.5 0 -6.06218
2267 POINT 2267 -6.71896 11.1904 -3.66129
2268 POINT 2268 -9.48958 0 -8.885260000000001
2269 POINT 2269 -4.43469e-10 0 -4
2270 POINT 2270 9.837540000000001 4.51358 6.29473
2271 POINT 2271 -8.981640000000001 7.68566 -6.33549
2272 POINT 2272 -6.07654 9.51477 -4.22532
2273 POINT 2273 4.47998 13 5.37864
2274 POINT 2274 8.58564 4.4075 4.70408
2275 POINT 2275 4 3.74856 0
2276 POINT 2276 -1.67208 0 -5.16917
2277 POINT 2277 9.877079999999999 8.098420000000001 8.084630000000001
2278 POINT 2278 3.86839 1.19559 -1.01763
2279 POINT 2279 -5.84667 7.30265 -5.19384
2280 POINT 2280 8.758089999999999 2.22229 3.89599
2281 POINT 2281 5.79835 11.0228 5.23371
2282 POINT 2282 5.5 0 0
2283 POINT 2283 8.265750000000001 9.83564 7.12933
2284 POINT 2284 2.81549 11.8274 2.84131
2285 POINT 2285 -9.43967 1.15137 -8.84286
2286 POINT 2286 6.8991 0 1.18426
2287 POINT 2287 -2.81549 9.065250000000001 -2.84131
2288 POINT 2288 4.63123 10.5522 3.61686
2289 POINT 2289 -3.4641 11.5408 -2
2290 POINT 2290 -2 6.57747 -3.4641
2291 POINT 2291 10.3946 7 7.79021
2292 POINT 2292 -10.3301 5.83057 -7.8923
2293 POINT 2293 -5.02144 13 -2.19654
2294 POINT 2294 6.41324 7.88191 3.70269
2295 POINT 2295 5.20662 6.49393 1.85134
2296 POINT 2296 4.93867 8.98171 2.85134
2297 POINT 2297 -6.77942 6.52028 -6.22265
2298 POINT 2298 -11.1086 2.66268 -9.24067
2299 POINT 2299 -1.62072 1.19559 -5.17657
2300 POINT 2300 3.4641 0 -2
2301 POINT 2301 -11.5922 0 -10.0783
2302 POINT 2302 11.5523 0 5.95712
2303 POINT 2303 5.5 1.19559 0
2304 POINT 2304 -6.95434 1.77309 -7.87346
2305 POINT 2305 8.192880000000001 0 2.18046
2306 POINT 2306 3.65068 13 4.01769
2307 POINT 2307 3.4641 10.0815 2
2308 POINT 2308 -9.26854 9.784990000000001 -6.05359
2309 POINT 2309 -4.6611 10.6703 -3.40812
2310 POINT 2310 10.7192 5.96726 7.35524
2311 POINT 2311 1.0529 0 -3.85894
2312 POINT 2312 -9.215949999999999 10 -5.9625
2313 POINT 2313 4 5.10595 0
2314 POINT 2314 -7.58719 0 -8.64176
2315 POINT 2315 -7.19075 10.3114 -4.92269
2316 POINT 2316 -4.43469e-10 2.39118 -4
2317 POINT 2317 10.575 0 4.51706
2318 POINT 2318 11.3575 2.50203 6.32521
2319 POINT 2319 -3.69919 5.97041 -5.10869
2320 POINT 2320 -6.15006 12.1599 -3.61265
2321 POINT 2321 -7.02931 8.417439999999999 -5.87664
2322 POINT 2322 11.5475 1.15222 5.97113
2323 POINT 2323 7.93057 10 6.08588
2324 POINT 2324 5.41441 12.0195 4.72837
2325 POINT 2325 -5.37892 5.19052 -6.35339
2326 POINT 2326 -5.17973 1.77309 -7.30687
2327 POINT 2327 2.81549 0 -2.84131
2328 POINT 2328 -10.3301 7 -7.8923
2329 POINT 2329 -11.1086 3.84188 -9.24067
2330 POINT 2330 2 0 -3.4641
2331 POINT 2331 2.81549 13 2.84131
2332 POINT 2332 1.0529 1.19559 -3.85894
2333 POINT 2333 -5.83292 0 -8.12262
2334 POINT 2334 -7.60424 8.10284 -6.39304
2335 POINT 2335 -2.81549 10.3681 -2.84131
2336 POINT 2336 -4.25 0 -7.36122
2337 POINT 2337 7.50425 7.45585 3.98244
2338 POINT 2338 -2 8.048999999999999 -3.4641
2339 POINT 2339 -10.0707 0 -9.93585
2340 POINT 2340 4.40888 11.5408 3.2549
2341 POINT 2341 9.531980000000001 0 3.02346
2342 POINT 2342 10.5755 1.15222 4.51611
2343 POINT 2343 -9.8028 9.16563 -6.97894
2344 POINT 2344 7.22122 10.2488 5.14146
2345 POINT 2345 5.20662 7.96546 1.85134
2346 POINT 2346 9.597619999999999 9.19468 7.16928
2347 POINT 2347 8.041499999999999 2.22229 2.09405
2348 POINT 2348 -0.6148 0 -5.44585
2349 POINT 2349 -4.43469e-10 3.74856 -4
2350 POINT 2350 11.3575 3.67817 6.32521
2351 POINT 2351 10.0323 3.5721 4.6945
2352 POINT 2352 -3.4641 13 -2
2353 POINT 2353 5.30369 0 -1.15247
2354 POINT 2354 -2.42395 0 -6.56692
2355 POINT 2355 -11.7396 1.51131 -10.3337
2356 POINT 2356 -10.1851 8.1968 -7.64115
2357 POINT 2357 2.81549 1.19559 -2.84131
2358 POINT 2358 3.4641 2.39118 -2
2359 POINT 2359 -6.05893 13 -3.50562
2360 POINT 2360 2 1.19559 -3.4641
2361 POINT 2361 4 6.57747 0
2362 POINT 2362 -9.787229999999999 9.58281 -6.95197
2363 POINT 2363 -3.92905 9.65405 -4.14017
2364 POINT 2364 9.096439999999999 8.11223 5.71573
2365 POINT 2365 3.86839 9.065250000000001 1.01763
2366 POINT 2366 -0.385614 1.19559 -5.1777
2367 POINT 2367 -7.86425 6.91744 -7.32279
2368 POINT 2368 -10.9706 5.6792 -9.0016
2369 POINT 2369 3.4641 11.5408 2
2370 POINT 2370 6.06218 10.0408 3.5
2371 POINT 2371 7.53675 8.94096 4.35134
2372 POINT 2372 -7.92709 10 -6.096
2373 POINT 2373 -4.6611 12.1295 -3.40812
2374 POINT 2374 11.2864 4.79563 6.45106
2375 POINT 2375 -3.69919 7.44194 -5.10869
2376 POINT 2376 -9.771649999999999 10 -6.925
2377 POINT 2377 6.7481 3.41788 0.909349
2378 POINT 2378 7 0 0
2379 POINT 2379 5.2934 1.19559 -1.1847
2380 POINT 2380 -8.54921 0 -9.793419999999999
2381 POINT 2381 8.59526 7.02978 4.26219
2382 POINT 2382 5.35366 13 4.5098
2383 POINT 2383 10.5513 8.140309999999999 7.15666
2384 POINT 2384 9.32361 2.22229 2.92546
2385 POINT 2385 9.80565 7.01489 5.57628
2386 POINT 2386 2 2.39118 -3.4641
2387 POINT 2387 -2 9.35188 -3.4641
2388 POINT 2388 -8.166230000000001 4.88409 -8.40831
2389 POINT 2389 -4.43469e-10 5.10595 -4
2390 POINT 2390 3.4641 3.74856 -2
2391 POINT 2391 11.016 7 6.89038
2392 POINT 2392 -12.2628 0 -11.2398
2393 POINT 2393 -7.45714 6.24566 -7.71188
2394 POINT 2394 -9.251060000000001 2.93262 -9.50845
2395 POINT 2395 -5.8581 11.2591 -4.81624
2396 POINT 2396 -2.81549 11.8274 -2.84131
2397 POINT 2397 12 0 5
2398 POINT 2398 -5.62824 9.046989999999999 -5.78476
2399 POINT 2399 -6.74506 0 -9.25854
2400 POINT 2400 -2.39204 3.05653 -6.29404
2401 POINT 2401 4.40811 13 3.25871
2402 POINT 2402 -10.9706 6.84863 -9.0016
2403 POINT 2403 -8.689069999999999 8.5 -7.49318
2404 POINT 2404 8.409929999999999 0 0.963642
2405 POINT 2405 4 8.048999999999999 0
2406 POINT 2406 7.95472 6.16325 2.76069
2407 POINT 2407 -4.40885 13 -3.25536
2408 POINT 2408 9.16522 9.81283 6.06224
2409 POINT 2409 -11.8871 3.02262 -10.589
2410 POINT 2410 8.62776 8.514889999999999 4.63109
2411 POINT 2411 6.7481 4.77527 0.909349
2412 POINT 2412 -3.92905 10.9569 -4.14017
2413 POINT 2413 6.52784 11.1903 3.99233
2414 POINT 2414 3.86839 10.3681 1.01763
2415 POINT 2415 -3.37043 0 -7.76504
2416 POINT 2416 -5.39837 6.83487 -6.75328
2417 POINT 2417 5.02759 0 -2.18353
2418 POINT 2418 10.9137 0 3.47184
2419 POINT 2419 -8.425409999999999 9.58281 -7.03649
2420 POINT 2420 0.608466 0 -5.44697
2421 POINT 2421 6.75552 9.57122 3.18544
2422 POINT 2422 -6.76573 3.55434 -8.53904
2423 POINT 2423 2 3.74856 -3.4641
2424 POINT 2424 -5 0 -8.66025
2425 POINT 2425 -10.633 8.5 -8.416869999999999
2426 POINT 2426 5.28096 10.671 2.3341
2427 POINT 2427 12 1.15222 5
2428 POINT 2428 4.67683 1.19559 -2.2549
2429 POINT 2429 -6.38539 10.3192 -5.88481
2430 POINT 2430 -9.251060000000001 4.11182 -9.50845
2431 POINT 2431 -10.3693 9.58281 -7.96019
2432 POINT 2432 -5.48182 12.1292 -4.57169
2433 POINT 2433 3.4641 5.10595 -2
2434 POINT 2434 -8.409829999999999 10 -7.00952
2435 POINT 2435 3.4641 13 2
2436 POINT 2436 9.799630000000001 0 1.99178
2437 POINT 2437 -4.43469e-10 6.57747 -4
2438 POINT 2438 10.8998 1.15222 3.49589
2439 POINT 2439 -2 10.6548 -3.4641
2440 POINT 2440 -2.39204 4.41391 -6.29404
2441 POINT 2441 10.2976 5.84326 4.63109
2442 POINT 2442 -1.24145 0 -6.88904
2443 POINT 2443 -10.3537 10 -7.93322
2444 POINT 2444 -11.7491 4.85994 -10.35
2445 POINT 2445 -12.4103 1.51131 -11.4952
2446 POINT 2446 -4.07178 3.63403 -7.53874
2447 POINT 2447 8.66025 10 5
2448 POINT 2448 -9.882099999999999 1.78125 -10.6014
2449 POINT 2449 8.248100000000001 2.22229 0.909349
2450 POINT 2450 -6.22319 8.417439999999999 -6.92366
2451 POINT 2451 12 2.30445 5
2452 POINT 2452 -3.67268 11.8274 -3.99187
2453 POINT 2453 -2.81549 13 -2.84131
2454 POINT 2454 -3.14204 1.86094 -7.59308
2455 POINT 2455 11.5501 5.82837 5.9661
2456 POINT 2456 9.045730000000001 5.73718 3.04044
2457 POINT 2457 1.66612 0 -5.1703
2458 POINT 2458 4 9.35188 0
2459 POINT 2459 -1.0529 9.065250000000001 -3.85894
2460 POINT 2460 7.84654 9.145149999999999 3.46519
2461 POINT 2461 2 5.10595 -3.4641
2462 POINT 2462 -9.251060000000001 5.28125 -9.50845
2463 POINT 2463 -10.2595 0 -11.2828
2464 POINT 2464 4.40811 0 -3.25871
2465 POINT 2465 6.8991 0 -1.18426
2466 POINT 2466 -8.541969999999999 6.64281 -8.812010000000001
2467 POINT 2467 6.20571 12.1618 3.51497
2468 POINT 2468 10.3006 9.21205 6.10081
2469 POINT 2469 -9.376939999999999 8.5 -8.469900000000001
2470 POINT 2470 5.54891 9.65476 1.3341
2471 POINT 2471 -5.34536 13 -4.51964
2472 POINT 2472 3.86839 11.8274 1.01763
2473 POINT 2473 3.65068 0 -4.01769
2474 POINT 2474 3.4641 6.57747 -2
2475 POINT 2475 1.61439 1.19559 -5.1777
2476 POINT 2476 -9.11328 9.58281 -8.01322
2477 POINT 2477 9.647919999999999 2.22229 1.90524
2478 POINT 2478 9.76887 8.09892 4.63109
2479 POINT 2479 12 3.48059 5
2480 POINT 2480 10.2976 7.01489 4.63109
2481 POINT 2481 -2.96705 9.469099999999999 -5.13908
2482 POINT 2482 7.85555 10.3115 3.7721
2483 POINT 2483 -11.611 6.69727 -10.1109
2484 POINT 2484 2.75 0 -4.76314
2485 POINT 2485 8.5 0 0
2486 POINT 2486 5.28096 12.1303 2.3341
2487 POINT 2487 10.7481 3.37451 3.40935
2488 POINT 2488 -12.9334 0 -12.4014
2489 POINT 2489 -4.43469e-10 8.048999999999999 -4
2490 POINT 2490 -2 11.8274 -3.4641
2491 POINT 2491 -8.3606 1.78125 -10.459
2492 POINT 2492 -7.04802 10 -7.09405
2493 POINT 2493 11.5547 7 5.95241
2494 POINT 2494 -9.097709999999999 10 -7.98625
2495 POINT 2495 -7.55767 0 -10.5774
2496 POINT 2496 -1 6.43819 -5.36646
2497 POINT 2497 6.06542 13 3.49438
2498 POINT 2498 -11.2734 8.34863 -9.526160000000001
2499 POINT 2499 -12.3542 3.85033 -11.398
2500 POINT 2500 11.2257 8.122870000000001 6.06951
2501 POINT 2501 13.2621 0 5
2502 POINT 2502 6.24098 3.32451 -1.26164
2503 POINT 2503 3.67683 1.19559 -3.98695
2504 POINT 2504 -6.78518 5.19869 -8.938929999999999
2505 POINT 2505 -8.737970000000001 0 -11.1403
2506 POINT 2506 -4.11793 0 -9.112769999999999
2507 POINT 2507 -10.0295 3.29256 -10.8568
2508 POINT 2508 -6.58599 1.78125 -9.89242
2509 POINT 2509 2 6.57747 -3.4641
2510 POINT 2510 -0.392043 3.05653 -6.29404
2511 POINT 2511 -3.64059 13 -4.03265
2512 POINT 2512 4 10.6548 0
2513 POINT 2513 -1.0529 10.3681 -3.85894
2514 POINT 2514 -6.91107 8.417439999999999 -7.90039
2515 POINT 2515 2.75 1.19559 -4.76314
2516 POINT 2516 -5.75 0 -9.959289999999999
2517 POINT 2517 -2.20811 0 -8.18547
2518 POINT 2518 -6.07609 6.56025 -8.2425
2519 POINT 2519 1.98579 3.12337 -4.78561
2520 POINT 2520 12 4.65674 5
2521 POINT 2521 -10.4069 1.51131 -11.5381
2522 POINT 2522 3.86839 9.065250000000001 -1.01763
2523 POINT 2523 12.4397 0 3.77559
2524 POINT 2524 -10.9358 10 -8.94143
2525 POINT 2525 9.95086 0 0.99015
2526 POINT 2526 5.02759 13 2.18353
2527 POINT 2527 -0.00648884 0 -7
2528 POINT 2528 10.7481 4.55066 3.40935
2529 POINT 2529 -4.66624 8.86204 -6.78367
2530 POINT 2530 5.54891 10.9576 1.3341
2531 POINT 2531 13.2621 1.15222 5
2532 POINT 2532 -4.90489 11.1366 -5.88684
2533 POINT 2533 9.875069999999999 9.785640000000001 5
2534 POINT 2534 3.86839 13 1.01763
2535 POINT 2535 3.4641 8.048999999999999 -2
2536 POINT 2536 11.2776 0 2.24974
2537 POINT 2537 9.771229999999999 10 5
2538 POINT 2538 9.131449999999999 8.514889999999999 3.40946
2539 POINT 2539 -4.09123 5.27837 -7.93863
2540 POINT 2540 -12.7699 2.88807 -12.1181
2541 POINT 2541 -4.6977 12.054 -5.40133
2542 POINT 2542 9.4962 4.44458 1.8187
2543 POINT 2543 -12.2161 5.68765 -11.159
2544 POINT 2544 6.5868 0 -2.36939
2545 POINT 2545 -3.89204 1.86094 -8.89212
2546 POINT 2546 12.378 1.15222 3.75356
2547 POINT 2547 -2.96705 10.772 -5.13908
2548 POINT 2548 7.70151 7.44226 1.27936
2549 POINT 2549 6.24098 4.68189 -1.26164
2550 POINT 2550 -9.89151 5.12988 -10.6177
2551 POINT 2551 -2 13 -3.4641
2552 POINT 2552 -0.392043 4.41391 -6.29404
2553 POINT 2553 -1 7.90972 -5.36646
2554 POINT 2554 -2.01277 1.86094 -8.00651
2555 POINT 2555 6.49489 6.05428 -0.571985
2556 POINT 2556 7.09781 11.2605 2.6682
2557 POINT 2557 -9.922929999999999 8.5 -9.53496
2558 POINT 2558 12 5.82837 5
2559 POINT 2559 1.98579 4.48076 -4.78561
2560 POINT 2560 8.411770000000001 0 -0.960467
2561 POINT 2561 -7.73589 10 -8.07077
2562 POINT 2562 -10.9301 0 -12.4443
2563 POINT 2563 5.2934 11.8274 1.1847
2564 POINT 2564 2 8.048999999999999 -3.4641
2565 POINT 2565 9.748100000000001 2.22229 0.909349
2566 POINT 2566 4 11.8274 0
2567 POINT 2567 -2.75 11.8274 -4.76314
2568 POINT 2568 -5.47273 10.2036 -7.05107
2569 POINT 2569 -5.19919 8.417439999999999 -7.70676
2570 POINT 2570 5.14749 6.43819 -1.8172
2571 POINT 2571 -9.6798 10 -8.99446
2572 POINT 2572 -4.43469e-10 10.0815 -4
2573 POINT 2573 3.86839 10.3681 -1.01763
2574 POINT 2574 9.242839999999999 10 3.81706
2575 POINT 2575 -13.293 1.37676 -13.0242
2576 POINT 2576 6.69913 12.1296 2.46385
2577 POINT 2577 -1.0529 11.8274 -3.85894
2578 POINT 2578 5.24098 3.32451 -2.9937
2579 POINT 2579 11.1261 2.22229 2.16291
2580 POINT 2580 1.0529 9.065250000000001 -3.85894
2581 POINT 2581 7.74098 2.12892 -1.26164
2582 POINT 2582 1.22877 0 -6.89131
2583 POINT 2583 -11.8867 8.34863 -10.5884
2584 POINT 2584 -12.2107 7.10817 -11.1496
2585 POINT 2585 -2.69919 7.30265 -7.01104
2586 POINT 2586 8.79252 7.0162 1.55911
2587 POINT 2587 -3.17489 0 -9.482620000000001
2588 POINT 2588 -4.47515 13 -5.38266
2589 POINT 2589 -1.16731 0 -8.415290000000001
2590 POINT 2590 10.9425 9.168060000000001 5
2591 POINT 2591 5.9341 9.469099999999999 -5.44462e-17
2592 POINT 2592 -1.6191 9.65476 -5.47254
2593 POINT 2593 -12.8212 4.67803 -12.207
2594 POINT 2594 12 7 5
2595 POINT 2595 13.5903 2.71645 5
2596 POINT 2596 6.06542 0 -3.49438
2597 POINT 2597 -10.4966 4.12027 -11.6658
2598 POINT 2598 -11.4803 1.51131 -12.6711
2599 POINT 2599 -13.6526 0 -13.6471
2600 POINT 2600 2.81549 9.065250000000001 -2.84131
2601 POINT 2601 10 0 0
2602 POINT 2602 6.49489 7.52581 -0.571985
2603 POINT 2603 8.28829 10.3197 2.58655
2604 POINT 2604 -11.5491 10 -10.0037
2605 POINT 2605 10.9123 9.58403 5
2606 POINT 2606 -8.29787 6.78125 -10.086
2607 POINT 2607 -7.33599 1.78125 -11.1915
2608 POINT 2608 9.58192 7.22229 2.18772
2609 POINT 2609 -6.5 0 -11.2583
2610 POINT 2610 1 6.43819 -5.36646
2611 POINT 2611 14.5242 0 5
2612 POINT 2612 -7.4629 4.92406 -10.4282
2613 POINT 2613 3.4641 10.0815 -2
2614 POINT 2614 2 9.35188 -3.4641
2615 POINT 2615 -8.171989999999999 3.5625 -11.1246
2616 POINT 2616 10.6311 6.92114 3.09009
2617 POINT 2617 -4.64309 0 -10.4707
2618 POINT 2618 1.60018 1.92778 -6.49922
2619 POINT 2619 11.7092 8.19848 5
2620 POINT 2620 -0.777657 1.86094 -8.00764
2621 POINT 2621 6.5868 13 2.36939
2622 POINT 2622 -7.58878 8.142810000000001 -9.389609999999999
2623 POINT 2623 -6.07028 10 -7.94681
2624 POINT 2624 5.24098 4.68189 -2.9937
2625 POINT 2625 5.30369 13 1.15247
2626 POINT 2626 11.3894 0 1.2143
2627 POINT 2627 -6.7538 6.28562 -9.731719999999999
2628 POINT 2628 4 13 0
2629 POINT 2629 -2.75 13 -4.76314
2630 POINT 2630 10.8822 10 5
2631 POINT 2631 13.6401 0 3.75356
2632 POINT 2632 -7.71336 0 -11.8728
2633 POINT 2633 -8.54936 1.78125 -11.8059
2634 POINT 2634 5.14749 7.90972 -1.8172
2635 POINT 2635 -2.97949 1.86094 -9.3033
2636 POINT 2636 -8.42376 10 -9.04749
2637 POINT 2637 2.41805 0 -6.5691
2638 POINT 2638 13.5903 3.89259 5
2639 POINT 2639 -13.2369 3.71577 -12.9271
2640 POINT 2640 -3.31829 9.047700000000001 -7.11713
2641 POINT 2641 -5.47804 3.64219 -10.1243
2642 POINT 2642 -1.0529 13 -3.85894
2643 POINT 2643 1.0529 10.3681 -3.85894
2644 POINT 2644 5.35366 0 -4.5098
2645 POINT 2645 -4.43469e-10 11.5408 -4
2646 POINT 2646 -10.5634 8.34863 -10.6443
2647 POINT 2647 12.756 0 2.50713
2648 POINT 2648 3.86839 11.8274 -1.01763
2649 POINT 2649 -4.76895 5.00375 -9.427849999999999
2650 POINT 2650 -8.92672 0 -12.4872
2651 POINT 2651 -12.8158 6.09855 -12.1977
2652 POINT 2652 8.19134 0 -2.18321
2653 POINT 2653 10.8338 8.5 3.77837
2654 POINT 2654 10.3051 9.58403 3.77837
2655 POINT 2655 -12.0035 0 -13.5773
2656 POINT 2657 5.9341 10.772 -5.44462e-17
2657 POINT 2658 4.14749 6.43819 -3.54925
2658 POINT 2659 12.3335 4.55847 3.459
2659 POINT 2660 -1.6191 10.9576 -5.47254
2660 POINT 2661 -3.9341 10.8892 -6.81407
2661 POINT 2662 3.5 0 -6.06218
2662 POINT 2663 -0.406253 3.78872 -7.61555
2663 POINT 2664 4.47998 0 -5.37864
2664 POINT 2665 2.81549 10.3681 -2.84131
2665 POINT 2666 1.97158 3.85556 -6.10713
2666 POINT 2667 -10.2258 10 -10.0595
2667 POINT 2668 10.2749 10 3.77837
2668 POINT 2669 -3.60401 11.9023 -6.24233
2669 POINT 2670 -10.5003 6.47363 -11.5425
2670 POINT 2671 -1.62072 11.8274 -5.17657
2671 POINT 2672 7.53438 2.12892 -2.44634
2672 POINT 2673 8.98908 4.35121 -0.352296
2673 POINT 2674 13.319 5.73747 5
2674 POINT 2675 0.0915649 0 -8.42229
2675 POINT 2676 1 7.90972 -5.36646
2676 POINT 2677 5.5 11.8274 -1.83691e-16
2677 POINT 2678 -13.6526 2.75351 -13.6471
2678 POINT 2679 -2.78409 3.72187 -9.12398
2679 POINT 2680 2 10.6548 -3.4641
2680 POINT 2681 -2.95646e-10 8.92597 -5.63441
2681 POINT 2682 3.51791 3.07059 -5.43681
2682 POINT 2683 -2.1476 0 -9.76667
2683 POINT 2684 9.242990000000001 5.7236 0.337364
2684 POINT 2685 -5.8769 8.142810000000001 -9.19599
2685 POINT 2686 8.04379 9.13157 0.762113
2686 POINT 2687 -4.00899 8.417439999999999 -8.202030000000001
2687 POINT 2688 -6.71188 10 -8.853870000000001
2688 POINT 2689 14.8524 1.56423 5
2689 POINT 2690 9.95086 0 -0.99015
2690 POINT 2691 3.4641 11.5408 -2
2691 POINT 2692 7.02483 12.054 1.3766
2692 POINT 2693 -5.21655 6.54244 -9.542109999999999
2693 POINT 2694 -4.44455 10.2133 -7.69819
2694 POINT 2695 7.54963 11.1375 1.30554
2695 POINT 2696 5.55001 9.65405 -1.33258
2696 POINT 2697 -3.0365 6.73609 -8.432600000000001
2697 POINT 2698 13.9683 1.56423 3.75356
2698 POINT 2699 12.3335 5.73462 3.459
2699 POINT 2700 -12.4864 8.75953 -11.6271
2700 POINT 2701 -14.0123 1.37676 -14.2699
2701 POINT 2702 -12.8104 7.51907 -12.1883
2702 POINT 2703 -12.1624 10 -11.0659
2703 POINT 2705 3.86839 13 -1.01763
2704 POINT 2706 9.24098 2.12892 -1.26164
2705 POINT 2707 -8.843870000000001 6.78125 -11.1511
2706 POINT 2708 11.0816 5.62854 1.86835
2707 POINT 2709 9.667630000000001 10 2.55674
2708 POINT 2710 1.0529 11.8274 -3.85894
2709 POINT 2711 -3.5 13 -6.06218
2710 POINT 2712 7.87222 0 -3.19546
2711 POINT 2713 12.0765 9.58403 5
2712 POINT 2714 -1.9338 1.86094 -9.532550000000001
2713 POINT 2715 12.6052 8.5 5
2714 POINT 2716 4.14749 7.90972 -3.54925
2715 POINT 2717 -11.1286 3.58843 -13.0252
2716 POINT 2718 13.319 6.9091 5
2717 POINT 2719 -4.43469e-10 13 -4
2718 POINT 2720 -3.69048 0 -10.8916
2719 POINT 2721 -8.969749999999999 10 -10.1126
2720 POINT 2722 6.91781 2.12892 -3.51655
2721 POINT 2723 3.51791 4.42797 -5.43681
2722 POINT 2724 0.9857900000000001 5.813 -6.68797
2723 POINT 2725 11.9021 4.37097 2.05565
2724 POINT 2726 -6.18936 1.78125 -11.7126
2725 POINT 2727 -1.39204 5.74615 -8.196389999999999
2726 POINT 2728 -1.65377 13 -5.16936
2727 POINT 2729 -14.3719 0 -14.8928
2728 POINT 2730 12.0463 10 5
2729 POINT 2731 -0.6191 10.671 -5.74049
2730 POINT 2732 -10.0001 0 -13.6202
2731 POINT 2733 -13.6001 4.8546 -13.5561
2732 POINT 2734 2.81549 11.8274 -2.84131
2733 POINT 2735 -5.38148 0 -11.8338
2734 POINT 2736 5.5 13 -1.83691e-16
2735 POINT 2737 2 11.8274 -3.4641
2736 POINT 2738 11.5 0 0
2737 POINT 2739 -8.780749999999999 4.90625 -12.0493
2738 POINT 2740 12.3335 6.90625 3.459
2739 POINT 2741 1.19995 0 -8.411860000000001
2740 POINT 2742 -13.4086 6.02487 -13.2244
2741 POINT 2743 6.8991 13 1.18426
2742 POINT 2744 4.87954 8.92597 -2.8172
2743 POINT 2745 -12.3631 1.37676 -14.2002
2744 POINT 2746 11.4944 9.58403 3.88578
2745 POINT 2747 12.0232 8.5 3.88578
2746 POINT 2748 -11.1364 8.34863 -11.7698
2747 POINT 2749 15.8654 0 5
2748 POINT 2750 -5 10 -8.66025
2749 POINT 2751 5.55001 10.9569 -1.33258
2750 POINT 2752 -10.9905 5.42575 -12.7862
2751 POINT 2753 -3.49541 1.86094 -10.7123
2752 POINT 2754 14.8795 0 3.60554
2753 POINT 2755 -10.8391 10 -11.1217
2754 POINT 2756 8.84163 10.2038 1.2196
2755 POINT 2757 12.9391 0 1.25642
2756 POINT 2758 11.4643 10 3.88578
2757 POINT 2759 -1.08351 0 -9.941129999999999
2758 POINT 2760 5.2934 11.8274 -1.1847
2759 POINT 2761 3.4641 13 -2
2760 POINT 2762 15.1806 3.12845 5
2761 POINT 2763 9.799630000000001 0 -1.99178
2762 POINT 2765 9.328709999999999 8.50131 0.706384
2763 POINT 2766 7.24511 0 -4.29568
2764 POINT 2767 13.9954 0 2.3591
2765 POINT 2768 1.0529 13 -3.85894
2766 POINT 2769 -12.7227 0 -14.823
2767 POINT 2770 -14.0158 3.89234 -14.2762
2768 POINT 2771 3.3572 5.80455 -5.61683
2769 POINT 2772 -2.64419 11.1375 -7.19094
2770 POINT 2773 -7.36534 6.78125 -11.2352
2771 POINT 2774 -0.810528 1.86094 -9.52806
2772 POINT 2775 -11.1 6.88453 -12.5811
2773 POINT 2776 10.6502 5.44104 0.465003
2774 POINT 2777 2.21294 0 -8.18291
2775 POINT 2778 9.1408 2.12892 -2.25753
2776 POINT 2779 3.1323 1.875 -7.15041
2777 POINT 2780 -6.65625 8.142810000000001 -10.5388
2778 POINT 2781 12.8391 3.01184 1.71465
2779 POINT 2782 2.81549 13 -2.84131
2780 POINT 2783 -1.47823e-10 7.77043 -7.26881
2781 POINT 2784 11.1673 8.40625 2.23737
2782 POINT 2785 -7.49122 10 -10.1967
2783 POINT 2786 -13.4032 7.44539 -13.215
2784 POINT 2787 2 13 -3.4641
2785 POINT 2788 14.9093 4.97333 5
2786 POINT 2789 -2.32025 12.054 -6.77198
2787 POINT 2790 -0.6191 12.1303 -5.74049
2788 POINT 2791 -6.60336 4.90625 -11.7278
2789 POINT 2792 -6.9373 1.78125 -12.712
2790 POINT 2793 10.857 10 2.66415
2791 POINT 2794 -13.1344 8.75953 -12.7495
2792 POINT 2795 -3.36461 10.2038 -8.266870000000001
2793 POINT 2796 -6.1013 0 -12.7788
2794 POINT 2797 -12.8104 10 -12.1883
2795 POINT 2798 -5.89426 6.26781 -11.0313
2796 POINT 2799 5.28206 10.6703 -2.33258
2797 POINT 2800 7.20802 11.9023 -2.32961e-16
2798 POINT 2801 7.86821 10.8892 -1.08892e-16
2799 POINT 2803 6.68428 0 -5.24619
2800 POINT 2804 1.81661 9.5359 -5.55126
2801 POINT 2805 -9.515739999999999 10 -11.1776
2802 POINT 2806 -0.622797 13 -5.44578
2803 POINT 2807 5.19474 1.875 -5.95966
2804 POINT 2808 -2.45016 0 -11.1875
2805 POINT 2809 13.9238 4.97048 3.459
2806 POINT 2810 16.1936 1.56423 5
2807 POINT 2811 -11.5956 4.41614 -13.8342
2808 POINT 2812 -7.31466 0 -13.3933
2809 POINT 2813 8.481960000000001 4.25784 -2.52329
2810 POINT 2814 8.428990000000001 8.94591 -0.571985
2811 POINT 2815 5.31268 13 -1.13652
2812 POINT 2816 0.614386 11.5408 -5.44565
2813 POINT 2817 -2.42395 13 -6.56692
2814 POINT 2818 3.38076 0 -7.76148
2815 POINT 2819 0.816609 10.5521 -5.81921
2816 POINT 2820 -11.0735 0 -14.7532
2817 POINT 2821 8.73587 5.63023 -1.83363
2818 POINT 2822 15.2078 1.56423 3.60554
2819 POINT 2823 -9.27102 3.85837 -13.293
2820 POINT 2824 4.26791 1.875 -6.73584
2821 POINT 2825 -3.9094 4.98594 -10.7275
2822 POINT 2827 3.3572 7.27607 -5.61683
2823 POINT 2828 11.3907 0 -1.21213
2824 POINT 2829 3.5037 3.80278 -6.75832
2825 POINT 2830 13.9242 8.4091 5
2826 POINT 2831 9.91727 10 1.28361
2827 POINT 2832 9.531980000000001 0 -3.02346
2828 POINT 2833 5.9818 0 -6.00512
2829 POINT 2834 8.98978 7.00261 -1.14397
2830 POINT 2835 13.2104 10 5
2831 POINT 2836 -9.452629999999999 8.125 -12.0758
2832 POINT 2837 14.638 6.8182 5
2833 POINT 2838 0.0401433 0 -9.999919999999999
2834 POINT 2839 -1.72935 5.17959 -9.61795
2835 POINT 2840 -9.648389999999999 2.07712 -13.9743
2836 POINT 2841 -0.6191 9.51548 -7.3749
2837 POINT 2842 3.89872 9.536049999999999 -4.34922
2838 POINT 2843 4.25 0 -7.36122
2839 POINT 2844 7.38847 6.01414 -3.07885
2840 POINT 2845 5.02944 0 -6.81171
2841 POINT 2846 11.5872 4.08191 0.123999
2842 POINT 2847 -4.20674 0 -12.3005
2843 POINT 2848 -2.42238 1.15222 -11.1875
2844 POINT 2849 -14.6068 2.97549 -15.2997
2845 POINT 2850 2.96705 9.469099999999999 -5.13908
2846 POINT 2851 7 13 -3.67382e-16
2847 POINT 2852 8.81649 2.12892 -3.27775
2848 POINT 2853 7.64238 7.38652 -2.38919
2849 POINT 2856 -5.77934 10 -10.003
2850 POINT 2857 1 9.0245 -6.73205
2851 POINT 2858 10.8284 6.90756 0.387012
2852 POINT 2859 -12.0113 3.45388 -14.5543
2853 POINT 2860 13.2187 8.5 3.82566
2854 POINT 2861 -11.7361 8.75953 -12.8085
2855 POINT 2862 13.6525 6.81535 3.459
2856 POINT 2864 -11.4121 10 -12.2473
2857 POINT 2865 -15.1102 0 -16.1716
2858 POINT 2866 -5.01736 8.125 -10.4956
2859 POINT 2867 -3.20703e-08 10.0408 -7
2860 POINT 2868 8.889099999999999 10.2133 -2.61164e-17
2861 POINT 2869 12.6284 10 3.88578
2862 POINT 2870 -11.5902 5.83665 -13.8249
2863 POINT 2871 -9.38951 6.25 -12.974
2864 POINT 2872 4.40888 11.5408 -3.2549
2865 POINT 2873 -3.847 10 -9.230420000000001
2866 POINT 2874 13 0 0
2867 POINT 2875 4.63077 10.5523 -3.61717
2868 POINT 2876 1.61439 11.8274 -5.1777
2869 POINT 2877 -14.379 5.03117 -14.9052
2870 POINT 2878 1.81661 10.8388 -5.55126
2871 POINT 2879 -14.9664 1.59873 -15.9226
2872 POINT 2880 6.29498 7.77043 -3.63441
2873 POINT 2881 5.28206 12.1296 -2.33258
2874 POINT 2882 -12.371 2.07712 -15.1771
2875 POINT 2883 11.8391 1.85962 -0.78535
2876 POINT 2884 17.2066 0 5
2877 POINT 2885 -14.1875 6.20144 -14.5735
2878 POINT 2886 14.1175 0 1.10554
2879 POINT 2887 -8.03722 10 -11.2617
2880 POINT 2888 1.7943 3.07434 -8.65203
2881 POINT 2889 16.2208 0 3.60554
2882 POINT 2890 2.51791 5.76022 -7.33916
2883 POINT 2891 9.49489 8.50131 -0.571985
2884 POINT 2892 -2.22698 3.01316 -11.0081
2885 POINT 2893 12.667 6.8125 1.91799
2886 POINT 2894 5.02365 13 -2.19049
2887 POINT 2895 12.3566 8.40625 2.34478
2888 POINT 2896 -7.5422 3.34169 -13.3611
2889 POINT 2897 -13.996 7.37171 -14.2418
2890 POINT 2898 -1.21582 12.1296 -7.03354
2891 POINT 2899 0.618077 13 -5.44689
2892 POINT 2900 -1.2382 11.2605 -7.48098
2893 POINT 2901 9.151020000000001 0 -4.03222
2894 POINT 2902 8.250959999999999 2.12892 -4.24829
2895 POINT 2903 -0.33731 7.20387 -8.69036
2896 POINT 2904 13.2171 1.85962 0.468214
2897 POINT 2905 16.6573 2.79516 5
2898 POINT 2906 12.0463 10 2.77157
2899 POINT 2907 3.67683 11.8274 -3.98695
2900 POINT 2908 15.2349 0 2.21108
2901 POINT 2909 1.16303 0 -9.93214
2902 POINT 2910 -13.7272 8.68585 -13.7762
2903 POINT 2911 3.89872 10.8389 -4.34922
2904 POINT 2912 6.75889 4.00392 -4.9664
2905 POINT 2913 -7.91957 1.56044 -14.0424
2906 POINT 2914 -1.37562 0 -11.4168
2907 POINT 2915 -7.9741 8.125 -12.1599
2908 POINT 2916 -4.62073 3.125 -12.3157
2909 POINT 2917 2.96705 10.772 -5.13908
2910 POINT 2918 2.75 11.8274 -4.76314
2911 POINT 2919 16.3151 4.2765 5
2912 POINT 2920 7.5506 11.1366 -1.30435
2913 POINT 2921 5.33013 9.0245 -4.23205
2914 POINT 2923 -8.427009999999999 0 -14.6193
2915 POINT 2924 11.3335 8.40625 0.958997
2916 POINT 2925 8.0449 9.13086 -1.90457
2917 POINT 2926 -13.4584 10 -13.3107
2918 POINT 2927 11.2776 0 -2.24982
2919 POINT 2928 -1.90414 10.3197 -8.47115
2920 POINT 2929 -12.8174 0 -16.0413
2921 POINT 2930 -10.0888 10 -12.3032
2922 POINT 2931 11.0232 10 1.38578
2923 POINT 2932 -4.95467 0 -13.2999
2924 POINT 2933 7.02654 12.054 -1.36767
2925 POINT 2934 -1.24145 13 -6.88904
2926 POINT 2935 2.31573 9.0245 -6.55272
2927 POINT 2936 -7.21212 6.25 -12.6525
2928 POINT 2937 -2.22698 4.18931 -11.0081
2929 POINT 2938 -10.7218 2.07712 -15.1073
2930 POINT 2939 10.397 6.72006 -1.01633
2931 POINT 2940 5.6654 5.76022 -5.52196
2932 POINT 2941 2.16571 5.00212 -8.25994
2933 POINT 2942 -1.37669 1.15222 -11.4167
2934 POINT 2943 10.619 2.12892 -2.51521
2935 POINT 2944 1.65408 13 -5.17042
2936 POINT 2945 -0.212128 4.93527 -9.768370000000001
2937 POINT 2946 6.6975 9.51477 -3.14978
2938 POINT 2947 -10.0257 8.125 -13.2014
2939 POINT 2948 -0.95641 8.948919999999999 -8.79645
2940 POINT 2949 4.41298 13 -3.25043
2941 POINT 2950 6.06218 10.0408 -3.5
2942 POINT 2951 6.8991 13 -1.18426
2943 POINT 2952 16.0438 6.12137 5
2944 POINT 2953 2.3572 7.13679 -7.51918
2945 POINT 2954 10 10 0
2946 POINT 2955 8.64011 0 -5.03472
2947 POINT 2956 15.1512 8.4091 5
2948 POINT 2957 -14.97 4.11431 -15.9288
2949 POINT 2958 2.19773 0 -9.755509999999999
2950 POINT 2959 14.4374 10 5
2951 POINT 2960 4.51665 9.0245 -5.28214
2952 POINT 2961 -12.3289 8.68585 -13.8353
2953 POINT 2962 14.4295 3.42385 1.71465
2954 POINT 2963 -4.31145 10 -10.2392
2955 POINT 2964 -9.87978 5.20212 -14.2177
2956 POINT 2965 -2.95007 0 -12.6608
2957 POINT 2966 -12.3745 4.5927 -15.1833
2958 POINT 2967 17.6703 1.23094 5
2959 POINT 2968 12.2356 6.625 0.514651
2960 POINT 2970 3.64455 13 -4.02805
2961 POINT 2971 -6.55869 10 -11.3458
2962 POINT 2972 -12.183 5.76297 -14.8516
2963 POINT 2973 6.9976 2.86453 -5.77619
2964 POINT 2974 8.84277 10.2036 -1.21399
2965 POINT 2975 -11.1682 0 -15.9715
2966 POINT 2976 -12.0601 10 -13.3697
2967 POINT 2977 2.75 13 -4.76314
2968 POINT 2978 16.0724 3.12467 3.40625
2969 POINT 2979 -5.79671 8.125 -11.8384
2970 POINT 2980 12.9391 0 -1.25642
2971 POINT 2981 -0.316973 0 -11.4653
2972 POINT 2982 -0.0588102 12.1618 -7.13179
2973 POINT 2983 -2.93831 1.15222 -12.5964
2974 POINT 2984 15.8751 7.38582 5
2975 POINT 2985 14.5377 8.4091 3.82566
2976 POINT 2986 -3.82717 8.125 -10.9909
2977 POINT 2987 13.8239 10 3.82566
2978 POINT 2988 -3.19224e-08 8.88522 -8.634410000000001
2979 POINT 2989 -5.71609 3.34548 -13.3857
2980 POINT 2990 -2.61962 10 -9.650779999999999
2981 POINT 2991 9.22504 5.14911 -3.32935
2982 POINT 2992 -0.756861 3.21085 -11.0309
2983 POINT 2993 10.9021 8.21875 -0.444346
2984 POINT 2994 9.328709999999999 8.50131 -1.85035
2985 POINT 2995 11.0801 3.98854 -2.04699
2986 POINT 2996 3.19674 0 -9.47528
2987 POINT 2997 5.50469 7.13679 -5.70198
2988 POINT 2998 -1.64712 8.318659999999999 -9.881349999999999
2989 POINT 2999 8.019970000000001 0 -5.97328
2990 POINT 3000 4.11628 1.875 -8.44239
2991 POINT 3001 9.478949999999999 6.52149 -2.63969
2992 POINT 3002 -2.85467 6.44366 -11.2214
2993 POINT 3003 10.9151 0 -3.46941
2994 POINT 3004 -5.03472 6.25 -12.3309
2995 POINT 3005 11.334 5.36093 -1.35733
2996 POINT 3006 0.193461 11.1903 -7.64946
2997 POINT 3007 6.7001 12.1292 -2.46156
2998 POINT 3008 1.17992 6.95955 -8.84079
2999 POINT 3009 -15.8485 0 -17.4505
3000 POINT 3010 -5.7026 0 -14.2993
3001 POINT 3011 15.8011 4.96954 3.40625
3002 POINT 3012 -9.50041 0 -15.7523
3003 POINT 3013 -13.8158 0 -17.0192
3004 POINT 3014 7.10002 11.2591 -2.66516
3005 POINT 3015 -0.674621 6.63731 -10.1119
3006 POINT 3016 13.5522 8.40625 2.28466
3007 POINT 3017 5.03582 3.75 -7.40951
3008 POINT 3018 -0.00648884 13 -7
3009 POINT 3019 -0.661053 10.3115 -8.689159999999999
3010 POINT 3020 8.131550000000001 6.9054 -3.8849
3011 POINT 3021 -15.7047 1.59873 -17.2014
3012 POINT 3022 13.2418 10 2.71145
3013 POINT 3023 -14.3737 8.68585 -14.896
3014 POINT 3024 5.01791 1.875 -8.034879999999999
3015 POINT 3025 5.82164 1.875 -7.4578
3016 POINT 3026 4.12824 0 -9.10811
3017 POINT 3027 13.3391 1.85962 -0.78535
3018 POINT 3028 -8.150969999999999 4.68544 -14.2858
3019 POINT 3029 7.34965 0 -6.78105
3020 POINT 3031 -11.9476 8.75953 -14.2621
3021 POINT 3032 10.8998 1.15137 -3.49589
3022 POINT 3033 -8.75334 10 -12.7467
3023 POINT 3034 13.1726 5.26587 0.173647
3024 POINT 3035 -14.1049 10 -14.4304
3025 POINT 3036 -10.6619 10 -13.4287
3026 POINT 3037 6.5868 13 -2.36939
3027 POINT 3038 14.4566 1.85962 0.320189
3028 POINT 3039 17.0854 1.56044 3.40625
3029 POINT 3040 14.8156 4.96669 1.86525
3030 POINT 3041 18.645 0 5
3031 POINT 3042 0.09342930000000001 1.34992 -11.4395
3032 POINT 3043 -15.5609 3.19746 -16.9523
3033 POINT 3044 -12.9655 3.67585 -16.2069
3034 POINT 3045 5 0 -8.66025
3035 POINT 3047 -15.0673 6.01656 -16.0973
3036 POINT 3048 6.60746 0 -7.50609
3037 POINT 3049 11.8042 6.4375 -0.888691
3038 POINT 3050 5.82374 0 -8.12921
3039 POINT 3051 16.0995 1.56044 2.01179
3040 POINT 3052 18.134 2.46187 5
3041 POINT 3053 -3.56935 0 -13.6894
3042 POINT 3054 14.1388 0 -0.743575
3043 POINT 3055 -14.8757 7.18683 -15.7655
3044 POINT 3056 0.821734 0 -11.4592
3045 POINT 3057 -3.3523 4.27722 -12.6116
3046 POINT 3058 1.76143 3.07434 -10.1724
3047 POINT 3059 -8.69023 8.125 -13.6449
3048 POINT 3060 8.28908 10.3192 -2.58752
3049 POINT 3061 -10.3701 4.15424 -15.4615
3050 POINT 3062 17.7918 3.94321 5
3051 POINT 3063 10.241 3.28029 -3.76164
3052 POINT 3064 9.91727 10 -1.28361
3053 POINT 3065 12.8861 8.40625 0.955462
3054 POINT 3066 1.38762 12.0195 -7.05322
3055 POINT 3067 15.2563 0 0.361964
3056 POINT 3068 -1.66987 0 -12.8923
3057 POINT 3069 8.82502 8.50131 -3.07198
3058 POINT 3070 4.87511 5.12657 -7.58953
3059 POINT 3071 6.20368 12.1599 -3.51979
3060 POINT 3072 12.5757 10 1.38225
3061 POINT 3073 8.56175 4.99344 -4.78293
3062 POINT 3074 -5.0908 10 -11.582
3063 POINT 3075 -12.9204 1.875 -16.8763
3064 POINT 3076 10.5749 0 -4.51734
3065 POINT 3077 17.4496 5.42454 5
3066 POINT 3078 15.6643 10 5
3067 POINT 3079 12.756 0 -2.50713
3068 POINT 3080 15.6649 8.4091 4.04542
3069 POINT 3081 -8.87505 5.8416 -14.6733
3070 POINT 3082 -3.12126 10 -10.7345
3071 POINT 3083 -10.8164 2.07712 -16.3256
3072 POINT 3084 -4.32882 8.125 -12.0746
3073 POINT 3085 1.22877 13 -6.89131
3074 POINT 3086 17.8387 0 3.25524
3075 POINT 3087 7.47761 8.88522 -4.3172
3076 POINT 3088 6.5302 11.1904 -3.9882
3077 POINT 3089 -5.97357 4.68544 -13.9643
3078 POINT 3090 1.63322 11.0228 -7.63841
3079 POINT 3091 -1.66987 1.15222 -12.8923
3080 POINT 3092 11.5526 10 -0.00353555
3081 POINT 3093 -3.3523 5.45337 -12.6116
3082 POINT 3094 -1.31574 10 -9.91306
3083 POINT 3095 -6.30751 1.56044 -14.9485
3084 POINT 3097 10.241 4.45949 -3.76164
3085 POINT 3098 -0.33731 8.318659999999999 -10.056
3086 POINT 3099 16.8529 0 1.86078
3087 POINT 3100 6.06542 13 -3.49438
3088 POINT 3101 10.8862 6.23894 -2.51205
3089 POINT 3102 7.46826 6.74974 -5.33849
3090 POINT 3103 10.5755 1.15137 -4.51611
3091 POINT 3104 2.77828 3.07434 -9.94402
3092 POINT 3105 -1.17225 5.64702 -11.5021
3093 POINT 3106 17.2809 6.68899 5
3094 POINT 3108 -6.81495 0 -15.5254
3095 POINT 3109 16.3882 8.97672 5
3096 POINT 3110 2.49541 11.9497 -6.77798
3097 POINT 3111 10.5185 8.50131 -1.95771
3098 POINT 3112 -7.27481 10 -12.8308
3099 POINT 3113 15.0508 10 3.82566
3100 POINT 3114 12.7412 5.07837 -1.2297
3101 POINT 3115 1.2167 1.34992 -11.435
3102 POINT 3116 1.91414 0 -11.3221
3103 POINT 3117 -3.73347 1.56423 -13.9737
3104 POINT 3118 -10.2371 8.125 -14.655
3105 POINT 3119 3.69783 4.94934 -8.91114
3106 POINT 3120 5.41477 12.02 -4.72769
3107 POINT 3121 0.842605 6.39299 -10.2623
3108 POINT 3122 -6.51283 8.125 -13.3233
3109 POINT 3123 19.1087 1.23094 5
3110 POINT 3124 17.5491 2.79138 3.40625
3111 POINT 3125 -15.6582 5.09971 -17.1208
3112 POINT 3126 -8.64123 3.63756 -15.5296
3113 POINT 3127 -13.0628 5.5781 -16.3754
3114 POINT 3128 -11.2628 0 -17.1898
3115 POINT 3129 10.0886 0 -5.45656
3116 POINT 3131 -9.148669999999999 2.07712 -16.1064
3117 POINT 3132 -1.66987 2.30445 -12.8923
3118 POINT 3133 4.7144 6.50314 -7.76955
3119 POINT 3134 0.841955 10.2488 -8.8245
3120 POINT 3135 13.2171 1.85962 -2.03891
3121 POINT 3136 3.60401 11.9023 -6.24233
3122 POINT 3137 -4.31728 0 -14.6888
3123 POINT 3138 9.525270000000001 3.47884 -5.04665
3124 POINT 3139 -12.5404 8.68585 -15.2889
3125 POINT 3140 17.2069 4.27271 3.40625
3126 POINT 3141 -2.14474 8.5 -11.2715
3127 POINT 3142 7.85854 10.3114 -3.76604
3128 POINT 3143 2.41805 13 -6.5691
3129 POINT 3144 4.61376 11.9463 -5.55901
3130 POINT 3145 12.4547 8.21875 -0.447881
3131 POINT 3146 17.1121 7.95344 5
3132 POINT 3147 4.32425 8.69617 -7.29181
3133 POINT 3148 2.83811 11.0262 -7.28988
3134 POINT 3149 -0.617578 0 -12.9831
3135 POINT 3150 -3.3523 6.625 -12.6116
3136 POINT 3151 -9.3264 10 -13.8722
3137 POINT 3152 -12.2716 10 -14.8233
3138 POINT 3153 14.4374 10 2.65133
3139 POINT 3154 5.35366 13 -4.5098
3140 POINT 3155 -6.69766 5.8416 -14.3518
3141 POINT 3156 -1.88037 9.58403 -10.8136
3142 POINT 3157 2.3572 8.251569999999999 -8.884779999999999
3143 POINT 3158 5.79743 11.0231 -5.23435
3144 POINT 3159 -1.17225 6.81866 -11.5021
3145 POINT 3160 10.4949 7.00131 -3.07198
3146 POINT 3161 -12.924 4.39058 -16.8825
3147 POINT 3162 -14.7514 10 -15.5502
3148 POINT 3163 14.0168 0 -1.99714
3149 POINT 3164 -14.5542 0 -18.298
3150 POINT 3165 -5.74063 10 -12.5873
3151 POINT 3166 -16.5893 0 -18.7336
3152 POINT 3167 2.23355 1.34992 -11.2065
3153 POINT 3168 -0.907868 7.90269 -11.0442
3154 POINT 3169 8.33075 2.86453 -6.50793
3155 POINT 3170 9.817880000000001 8.020189999999999 -3.34607
3156 POINT 3171 9.667630000000001 10 -2.55674
3157 POINT 3172 -2.30091 0 -13.9853
3158 POINT 3173 16.4987 6.1257 2.9729
3159 POINT 3174 2.9475 0 -11.0926
3160 POINT 3175 3.5 13 -6.06218
3161 POINT 3176 3.9341 10.8892 -6.81407
3162 POINT 3177 -1.66987 3.48059 -12.8923
3163 POINT 3178 -9.59507 0 -16.9706
3164 POINT 3179 -1.86529 10 -10.7875
3165 POINT 3180 4.47998 13 -5.37864
3166 POINT 3181 4.89532 11.0273 -6.10059
3167 POINT 3182 9.968120000000001 6.04037 -4.1354
3168 POINT 3183 -14.4104 1.59873 -18.0489
3169 POINT 3184 11.8232 4.87981 -2.85305
3170 POINT 3185 -4.97865 8.125 -13.0799
3171 POINT 3186 18.3024 1.23094 3.25524
3172 POINT 3187 11.0236 10 -1.38572
3173 POINT 3188 6.83868 4.73953 -7.22604
3174 POINT 3189 -0.603485 1.15222 -12.986
3175 POINT 3190 12.4397 0 -3.77559
3176 POINT 3191 9.8598 1.34992 -5.80111
3177 POINT 3192 9.512180000000001 0 -6.44269
3178 POINT 3193 3.53711 6.32591 -9.09116
3179 POINT 3194 7.6245 2.86453 -7.27433
3180 POINT 3195 -9.365320000000001 4.79372 -15.917
3181 POINT 3196 -15.2534 8.50098 -16.4197
3182 POINT 3197 -3.62291 10 -11.8182
3183 POINT 3198 15.5156 8.4091 2.61876
3184 POINT 3199 13.6783 3.71924 -1.5707
3185 POINT 3200 15.3212 3.42006 0.1209
3186 POINT 3201 15.5132 6.12285 1.4319
3187 POINT 3202 -2.30091 1.15222 -13.9853
3188 POINT 3203 -16.5893 1.23243 -18.7336
3189 POINT 3204 13.7713 10 1.32213
3190 POINT 3205 -4.14746 4.68923 -13.9889
3191 POINT 3206 -6.36971e-08 10 -10
3192 POINT 3207 2.11384 10.2505 -8.619899999999999
3193 POINT 3208 12.378 1.15137 -3.75356
3194 POINT 3209 14.2988 6.53125 0.136727
3195 POINT 3210 -6.91242 3.12088 -15.5977
3196 POINT 3211 -4.4814 1.56423 -14.9731
3197 POINT 3212 17.0707 7.71227 4.04542
3198 POINT 3213 -7.41986 1.56044 -16.1745
3199 POINT 3214 20.0835 0 5
3200 POINT 3215 3.94849 0 -10.794
3201 POINT 3216 13.3917 6.85962 -0.788886
3202 POINT 3217 16.9642 3.12088 1.8125
3203 POINT 3218 -1.66987 4.65674 -12.8923
3204 POINT 3219 -10.8733 10 -14.8824
3205 POINT 3220 14.4779 1.85962 -1.52892
3206 POINT 3221 -16.4455 2.83116 -18.4845
3207 POINT 3222 1.17992 8.074339999999999 -10.2064
3208 POINT 3223 19.4053 3.08829 5
3209 POINT 3224 16.178 10 4.04542
3210 POINT 3225 -10.7274 7.07712 -15.8987
3211 POINT 3226 6.68733 8.251569999999999 -6.38478
3212 POINT 3227 -7.9273 0 -16.7514
3213 POINT 3228 8.84829 0 -7.3182
3214 POINT 3229 0.344979 5.4027 -11.6525
3215 POINT 3230 16.1209 1.56044 0.162675
3216 POINT 3231 0.469168 0 -12.985
3217 POINT 3232 14.5301 8.40625 1.07775
3218 POINT 3233 11.9257 8.21875 -1.83007
3219 POINT 3234 -15.7555 7.00196 -17.2893
3220 POINT 3235 16.9611 10 5
3221 POINT 3236 -12.2613 0 -18.1676
3222 POINT 3237 7.21883 10.2484 -5.14674
3223 POINT 3238 19.0631 4.56963 5
3224 POINT 3239 -0.108169 6.81866 -11.5487
3225 POINT 3240 3.67292 8.251569999999999 -8.705450000000001
3226 POINT 3241 4.87834 0 -10.3799
3227 POINT 3242 3.73693 1.19948 -10.8758
3228 POINT 3243 9.294280000000001 1.34992 -6.77164
3229 POINT 3244 18.5003 6.47451 5
3230 POINT 3245 6.67797 6.1161 -7.40606
3231 POINT 3246 -2.64639 8.5 -12.3553
3232 POINT 3247 8.13123 0 -8.10103
3233 POINT 3248 2.35983 6.14867 -10.4128
3234 POINT 3249 15.2776 0 -1.48715
3235 POINT 3250 9.31419 8.020189999999999 -4.5677
3236 POINT 3251 -13.515 3.47373 -17.9061
3237 POINT 3252 16.902 8.97672 4.04542
3238 POINT 3253 0.367156 7.91599 -11.0042
3239 POINT 3254 -0.201692 2.50214 -12.9984
3240 POINT 3255 -4.0118 6.5341 -13.7539
3241 POINT 3256 15.5646 10 2.87108
3242 POINT 3257 -4.98789 0 -15.8504
3243 POINT 3258 13.1051 10 -0.00707111
3244 POINT 3259 -2.38201 9.58403 -11.8973
3245 POINT 3260 5.75 0 -9.959289999999999
3246 POINT 3261 9.242839999999999 10 -3.81706
3247 POINT 3262 -1.66987 5.82837 -12.8923
3248 POINT 3263 17.685 8.97672 5
3249 POINT 3264 8.58802 1.34992 -7.53805
3250 POINT 3265 12.8391 3.01099 -3.28535
3251 POINT 3266 6.548 0 -9.41738
3252 POINT 3267 19.2771 0 3.25524
3253 POINT 3268 -10.9195 3.95212 -17.1607
3254 POINT 3269 -16.4455 4.12444 -18.4845
3255 POINT 3270 7.37283 0 -8.81683
3256 POINT 3271 -7.63651 4.27704 -15.9851
3257 POINT 3272 -8.14395 2.7166 -16.562
3258 POINT 3273 4.84837 1.13303 -10.3668
3259 POINT 3274 17.7175 1.56044 1.66149
3260 POINT 3275 3.36152 10.211 -8.32762
3261 POINT 3276 9.304830000000001 5.88471 -5.58899
3262 POINT 3277 6.4081 10.2508 -6.13965
3263 POINT 3278 12 0 -5
3264 POINT 3279 5.87385 8.251569999999999 -7.43487
3265 POINT 3280 11.9021 6.71875 -2.94435
3266 POINT 3281 -7.99094 10 -14.3157
3267 POINT 3282 -2.93195 0 -15.0783
3268 POINT 3283 -2.46503 2.71645 -14.2696
3269 POINT 3284 4.8572 8.251569999999999 -8.2149
3270 POINT 3285 -2.36694 10 -11.8712
3271 POINT 3286 18.3316 7.73896 5
3272 POINT 3287 6.76394 3.07445 -8.62627
3273 POINT 3288 4.44455 10.2133 -7.69819
3274 POINT 3289 -12.9181 10 -15.9431
3275 POINT 3290 -0.607406 9.785640000000001 -11.0521
3276 POINT 3291 16.8742 0 0.0116636
3277 POINT 3292 -4.27274 10 -12.8235
3278 POINT 3293 -0.555486 10 -10.9621
3279 POINT 3294 -15.5345 0 -19.3426
3280 POINT 3295 1.30482 10 -9.91108
3281 POINT 3296 6.55373 1.13303 -9.382210000000001
3282 POINT 3297 0.870327 1.34992 -12.9708
3283 POINT 3298 5.75 1.13303 -9.959289999999999
3284 POINT 3299 -8.17577 7.7166 -15.3442
3285 POINT 3300 -0.201692 3.67828 -12.9984
3286 POINT 3301 10.8574 10 -2.66409
3287 POINT 3302 1.57041 0 -12.8945
3288 POINT 3303 -15.3966 10 -16.6676
3289 POINT 3304 7.54976 1.19945 -8.67456
3290 POINT 3305 2.49564 8.074339999999999 -10.0271
3291 POINT 3306 10.9841 5.35076 -4.5677
3292 POINT 3307 1.8151 4.42425 -11.6753
3293 POINT 3308 12.8628 6.85962 -2.17107
3294 POINT 3309 -11.3659 1.875 -18.0248
3295 POINT 3310 5.52739 10.2096 -7.08247
3296 POINT 3311 18.8204 3.4178 3.40625
3297 POINT 3312 -15.3907 1.59873 -19.0935
3298 POINT 3313 20.38 1.85736 5
3299 POINT 3314 4.84837 2.3215 -10.3668
3300 POINT 3315 12 1.15137 -5
3301 POINT 3316 12.8391 4.19019 -3.28535
3302 POINT 3317 17.9045 5.42887 2.9729
3303 POINT 3318 13.6401 0 -3.75356
3304 POINT 3319 -13.4201 8.50098 -16.8126
3305 POINT 3320 -1.66987 7 -12.8923
3306 POINT 3321 -5.08631 3.12467 -15.6222
3307 POINT 3322 -2.46503 3.89259 -14.2696
3308 POINT 3323 5.76791 4.1965 -9.333920000000001
3309 POINT 3324 16.9214 7.71227 2.61876
3310 POINT 3325 -6.45676 10 -14.0723
3311 POINT 3326 18.4708 0 1.51048
3312 POINT 3327 6.55373 2.3215 -9.382210000000001
3313 POINT 3328 -8.36059 5.43319 -16.3726
3314 POINT 3329 5.75 2.3215 -9.959289999999999
3315 POINT 3330 -15.8986 8.50098 -17.5372
3316 POINT 3331 -1.14112 9.168060000000001 -11.9765
3317 POINT 3333 11.5523 0 -5.95712
3318 POINT 3334 8.66025 10 -5
3319 POINT 3335 -13.2598 0 -19.1455
3320 POINT 3336 10.8338 8.5 -3.77837
3321 POINT 3337 -17.3301 0 -20.0167
3322 POINT 3338 -9.537850000000001 10 -15.3259
3323 POINT 3339 -3.29622 8.5 -13.3605
3324 POINT 3340 10.3065 9.58281 -3.77837
3325 POINT 3341 12 2.30274 -5
3326 POINT 3342 12.5762 10 -1.38926
3327 POINT 3343 -9.69816 1.875 -17.8056
3328 POINT 3344 10.4567 7.603 -4.5677
3329 POINT 3345 8.65089 7.86453 -6.02128
3330 POINT 3346 -1.52445 8.19848 -12.6404
3331 POINT 3347 -13.6122 5.37598 -18.0746
3332 POINT 3348 -0.0571031 4.79629 -12.9999
3333 POINT 3349 10.9841 6.52019 -4.5677
3334 POINT 3350 -0.608585 5.82837 -12.9857
3335 POINT 3351 -3.09607 1.56423 -15.3626
3336 POINT 3352 -1.12604 9.58403 -11.9504
3337 POINT 3353 12.8391 5.35962 -3.28535
3338 POINT 3354 1.95841 5.54226 -11.6596
3339 POINT 3355 19.5737 1.85736 3.25524
3340 POINT 3356 -5.5928 1.56044 -16.4995
3341 POINT 3357 10.2753 10 -3.77837
3342 POINT 3358 2.63145 10 -9.64134
3343 POINT 3359 -4.95065 4.96954 -15.3873
3344 POINT 3360 2.67023 0 -12.7111
3345 POINT 3361 1.40906 6.57434 -11.6991
3346 POINT 3362 1.97575 1.34992 -12.849
3347 POINT 3363 -9.722670000000001 7.7166 -16.3543
3348 POINT 3364 1.27036 2.69983 -12.9378
3349 POINT 3365 14.1012 1.85962 -3.28535
3350 POINT 3366 -16.5428 6.02669 -18.653
3351 POINT 3367 0.666942 9.81282 -10.9685
3352 POINT 3368 16.6918 10 3.09084
3353 POINT 3369 8.641529999999999 5.72905 -7.04257
3354 POINT 3370 11.5475 1.15137 -5.97113
3355 POINT 3371 -6.10024 0 -17.0764
3356 POINT 3372 -2.32937 5.73747 -14.0346
3357 POINT 3373 3.31848 4.27382 -11.3445
3358 POINT 3374 -1.11097 10 -11.9243
3359 POINT 3375 4.29723 7.86242 -9.524380000000001
3360 POINT 3376 15.4153 10 1.44442
3361 POINT 3377 17.4748 10 4.04542
3362 POINT 3378 -2.949 10 -12.8794
3363 POINT 3379 14.8044 4.98462 -1.60762
3364 POINT 3380 -17.3301 1.29232 -20.0167
3365 POINT 3381 1.88438 7.67167 -11.1547
3366 POINT 3382 16.4474 4.68544 0.08398
3367 POINT 3383 -4.92257 10 -13.8288
3368 POINT 3384 12 3.48194 -5
3369 POINT 3385 17.6618 4.27704 1.37915
3370 POINT 3386 5.6072 5.57307 -9.51394
3371 POINT 3387 -10.5736 0 -18.717
3372 POINT 3388 18.2578 10 5
3373 POINT 3389 11.0102 0 -6.89957
3374 POINT 3390 7.83742 7.86453 -7.07137
3375 POINT 3391 10.3208 5.1951 -6.02128
3376 POINT 3392 -5.48991 8.4091 -14.7463
3377 POINT 3393 7.93057 10 -6.08588
3378 POINT 3394 14.9009 0 -3.24357
3379 POINT 3395 -15.3086 3.72786 -19.2247
3380 POINT 3396 -3.60257 0 -16.2398
3381 POINT 3397 -0.6228900000000001 7 -12.9829
3382 POINT 3398 18.9044 8.76224 5
3383 POINT 3399 9.78303 7.61747 -5.65223
3384 POINT 3400 21.5602 0 5
3385 POINT 3401 -9.914809999999999 4.5916 -17.6162
3386 POINT 3402 14.5179 8.125 -0.825806
3387 POINT 3403 2.95569 5.46677 -11.4591
3388 POINT 3404 20.6765 3.71471 5
3389 POINT 3405 6.27127 7.8625 -8.384539999999999
3390 POINT 3406 -12.3644 1.875 -19.0027
3391 POINT 3407 10.4925 6.52019 -5.51224
3392 POINT 3408 13.2621 0 -5
3393 POINT 3409 20.1138 5.6196 5
3394 POINT 3410 3.8677 10 -9.218249999999999
3395 POINT 3411 18.5003 7.71227 3.76224
3396 POINT 3412 4.69149 6.75157 -9.947889999999999
3397 POINT 3413 3.70349 0 -12.4511
3398 POINT 3414 1.41381 3.81784 -12.9229
3399 POINT 3415 -11.0848 10 -16.336
3400 POINT 3416 -17.3301 2.46486 -20.0167
3401 POINT 3417 5.38543 7.81641 -9.12983
3402 POINT 3418 -5.67473 6.1257 -15.7747
3403 POINT 3419 -2.32937 6.9091 -14.0346
3404 POINT 3420 -16.5428 7.28538 -18.653
3405 POINT 3421 19.551 7.52448 5
3406 POINT 3422 14.0581 6.85962 -2.11138
3407 POINT 3423 -14.4058 5.31178 -18.812
3408 POINT 3424 12 4.66114 -5
3409 POINT 3425 0.132648 9.212020000000001 -11.971
3410 POINT 3426 7.03331 10 -7.10018
3411 POINT 3427 2.49809 6.57434 -11.5655
3412 POINT 3428 14.7492 10 0.115221
3413 POINT 3429 -8.905860000000001 0 -18.4978
3414 POINT 3430 18.4151 2.7166 1.22814
3415 POINT 3431 -14.0313 10 -17.2715
3416 POINT 3432 -3.2602 3.12845 -15.6468
3417 POINT 3433 12.0472 10 -2.77144
3418 POINT 3434 9.60506 4.21444 -7.30629
3419 POINT 3435 11.3575 2.50129 -6.32506
3420 POINT 3436 10.3809 0 -7.80836
3421 POINT 3437 -11.2769 6.875 -17.5979
3422 POINT 3438 5.6072 6.75157 -9.51394
3423 POINT 3439 5 10 -8.66025
3424 POINT 3440 3.4854 1.19948 -12.5241
3425 POINT 3441 -1.97248 8.5 -13.4164
3426 POINT 3442 3.11994 7.68518 -10.846
3427 POINT 3443 6.43997 6.75157 -8.93862
3428 POINT 3444 13.2621 1.15137 -5
3429 POINT 3445 -0.357172 8.122870000000001 -12.7565
3430 POINT 3446 2.04005 9.835610000000001 -10.7233
3431 POINT 3447 -16.0417 10 -17.7851
3432 POINT 3448 6.04905 10 -7.9589
3433 POINT 3449 4.42992 5.39583 -10.8355
3434 POINT 3450 -5.82464 2.79138 -16.9011
3435 POINT 3451 9.87683 9.784990000000001 -5
3436 POINT 3452 2.80314 2.5494 -12.6942
3437 POINT 3453 9.771649999999999 10 -5
3438 POINT 3454 10.7971 1.34992 -7.24034
3439 POINT 3455 -1.7081 9.58403 -12.9585
3440 POINT 3456 14.3961 3.37093 -3.28535
3441 POINT 3457 4.70235 0 -12.1133
3442 POINT 3458 -6.33208 1.23094 -17.478
3443 POINT 3459 18.3316 8.97672 3.76224
3444 POINT 3460 -3.95572 8.4091 -14.5028
3445 POINT 3461 -6.83004 10 -15.1583
3446 POINT 3462 -17.3301 3.78917 -20.0167
3447 POINT 3463 -14.2401 0 -20.1901
3448 POINT 3464 1.55699 4.93585 -12.9064
3449 POINT 3465 8.566789999999999 4.06397 -8.4428
3450 POINT 3466 16.7955 0 -1.85024
3451 POINT 3467 -5.65354 4.27271 -16.6047
3452 POINT 3468 -14.5333 8.50098 -18.141
3453 POINT 3469 16.1267 3.93674 -1.41035
3454 POINT 3470 -1.69303 10 -12.9324
3455 POINT 3471 13.7716 10 -1.32957
3456 POINT 3472 2.42543 3.74235 -12.7717
3457 POINT 3473 9.671799999999999 0 -8.669420000000001
3458 POINT 3474 -16.2245 0 -20.655
3459 POINT 3475 -3.59883 10 -13.8847
3460 POINT 3476 15.1958 1.51131 -3.24357
3461 POINT 3477 1.00927 5.96793 -12.9608
3462 POINT 3478 19.518 4.57395 2.9729
3463 POINT 3479 3.51421 6.57434 -11.2695
3464 POINT 3480 12 5.83057 -5
3465 POINT 3481 -3.76669 1.56423 -16.5241
3466 POINT 3482 11.3575 3.68049 -6.32506
3467 POINT 3483 12.0236 8.5 -3.88572
3468 POINT 3484 11.4963 9.58281 -3.88572
3469 POINT 3485 4.49171 1.19948 -12.1994
3470 POINT 3486 5.63021 0 -11.7154
3471 POINT 3487 -3.12454 4.97333 -15.4119
3472 POINT 3488 17.7696 3.63756 0.28125
3473 POINT 3489 0.458283 7 -12.9854
3474 POINT 3490 18.9552 6.47883 2.9729
3475 POINT 3491 9.52023 5.33134 -7.422
3476 POINT 3492 16.5425 10 1.66418
3477 POINT 3493 -11.469 3.75 -18.8598
3478 POINT 3494 14.12 5.20825 -3.28535
3479 POINT 3495 10.1386 1.34992 -8.13688
3480 POINT 3496 -11.5721 0 -19.6949
3481 POINT 3497 -6.1928 7.71227 -15.9638
3482 POINT 3498 8.929500000000001 0 -9.434570000000001
3483 POINT 3499 16.9263 2.07712 -1.36857
3484 POINT 3500 11.4651 10 -3.88572
3485 POINT 3501 -15.4059 5.63011 -19.3931
3486 POINT 3502 21.8567 1.85736 5
3487 POINT 3503 6.5 0 -11.2583
3488 POINT 3504 9.16513 9.812659999999999 -6.06315
3489 POINT 3505 -16.2753 1.23243 -20.6257
3490 POINT 3506 9.119730000000001 7.46181 -7.10581
3491 POINT 3507 7.57077 5.18602 -9.150449999999999
3492 POINT 3508 18.3921 0 -0.35143
3493 POINT 3509 8.13697 0 -10.1309
3494 POINT 3510 9.829190000000001 6.36453 -6.96582
3495 POINT 3511 7.32952 0 -10.7344
3496 POINT 3512 8.847569999999999 5.25676 -8.185829999999999
3497 POINT 3513 4.27713 2.39896 -12.2762
3498 POINT 3514 10.5686 2.69983 -7.57
3499 POINT 3515 3.23448 9.8071 -10.4946
3500 POINT 3516 -5.29585 10 -14.9148
3501 POINT 3517 -18.0143 0.111216 -21.2016
3502 POINT 3518 -17.3301 5.05142 -20.0167
3503 POINT 3519 5.62646 1.13303 -11.7193
3504 POINT 3520 1.40893 9.194660000000001 -11.8966
3505 POINT 3521 -6.81945 0 -18.3221
3506 POINT 3522 21.2789 0 3.28098
3507 POINT 3523 2.56601 4.86036 -12.7442
3508 POINT 3524 13.557 2.66268 -5
3509 POINT 3525 10.9453 9.16563 -5
3510 POINT 3526 9.102220000000001 1.19945 -9.28168
3511 POINT 3527 11.2868 4.79739 -6.45039
3512 POINT 3528 8.23484 7.47545 -8.021050000000001
3513 POINT 3529 -4.27319 0 -17.4014
3514 POINT 3530 12 7 -5
3515 POINT 3531 -6.37763 5.42887 -16.9922
3516 POINT 3532 -16.6859 8.7844 -18.9009
3517 POINT 3533 6.5 1.13303 -11.2583
3518 POINT 3534 4.47594 9.867900000000001 -9.830959999999999
3519 POINT 3535 0.921035 8.14029 -12.7161
3520 POINT 3536 -14.5031 7.21403 -18.9805
3521 POINT 3537 18.5229 2.07712 0.130238
3522 POINT 3538 -2.98887 6.8182 -15.1769
3523 POINT 3539 3.91683 3.59191 -12.3959
3524 POINT 3540 8.317460000000001 1.19945 -9.99099
3525 POINT 3541 7.33477 1.13303 -10.7332
3526 POINT 3542 11.5506 5.83057 -5.9652
3527 POINT 3543 8.26637 9.835800000000001 -7.12797
3528 POINT 3544 2.10053 5.96793 -12.8292
3529 POINT 3545 10.9142 9.58281 -5
3530 POINT 3546 -18.0144 1.23562 -21.2018
3531 POINT 3547 5.42399 2.33251 -11.8144
3532 POINT 3548 9.16868 6.36453 -7.84255
3533 POINT 3549 -2.63198 8.4091 -14.5587
3534 POINT 3550 19.551 10 5
3535 POINT 3551 14.5242 0 -5
3536 POINT 3552 -14.158 2.12913 -20.3213
3537 POINT 3553 16.2421 0 -3.24357
3538 POINT 3554 1.54783 7 -12.8972
3539 POINT 3555 9.59111 2.54936 -8.77557
3540 POINT 3556 11.71 8.1968 -5
3541 POINT 3557 10.4844 3.81673 -7.68622
3542 POINT 3558 17.145 5.8416 -0.349371
3543 POINT 3559 18.3594 5.43319 0.945798
3544 POINT 3560 13.2426 10 -2.71175
3545 POINT 3561 6.2766 9.86811 -8.790469999999999
3546 POINT 3562 -3.99853 2.79516 -16.9257
3547 POINT 3563 8.40354 6.36453 -8.57513
3548 POINT 3564 10.8831 10 -5
3549 POINT 3565 -7.7901 10 -16.2548
3550 POINT 3566 -12.198 10 -17.6644
3551 POINT 3567 -17.3301 6.27922 -20.0167
3552 POINT 3568 -10.6767 1.875 -19.5521
3553 POINT 3569 15.9306 6.25 -1.64454
3554 POINT 3570 13.557 3.84188 -5
3555 POINT 3571 6.5 2.26607 -11.2583
3556 POINT 3572 3.55154 4.78487 -12.5055
3557 POINT 3573 20.1976 8.76224 5
3558 POINT 3574 -2.27509 10 -13.9406
3559 POINT 3575 18.1214 10 2.80766
3560 POINT 3576 17.3763 7.7166 0.591656
3561 POINT 3577 8.492050000000001 2.39889 -9.843019999999999
3562 POINT 3578 7.47049 9.80706 -8.04932
3563 POINT 3579 18.9044 10 3.76224
3564 POINT 3580 7.5191 2.33248 -10.6049
3565 POINT 3581 -14.6765 10 -18.3889
3566 POINT 3582 2.66326 9.23761 -11.6192
3567 POINT 3583 20.4725 0 1.53622
3568 POINT 3584 16.1619 8.125 -0.7035130000000001
3569 POINT 3585 -4.2123 10 -14.9472
3570 POINT 3586 -3.82743 4.2765 -16.6293
3571 POINT 3587 -4.32901 8.4091 -15.5889
3572 POINT 3588 9.84726 3.74215 -8.48714
3573 POINT 3589 5.42399 3.52098 -11.8144
3574 POINT 3590 15.3302 4.19864 -3.28535
3575 POINT 3591 -7.97493 7.7166 -17.2832
3576 POINT 3592 10.3024 9.21082 -6.10053
3577 POINT 3593 -17.949 3.1115 -21.0887
3578 POINT 3594 19.4945 0 0.175728
3579 POINT 3595 -12.3901 6.875 -18.9263
3580 POINT 3596 3.09804 5.89243 -12.6255
3581 POINT 3597 11.5551 7 -5.95174
3582 POINT 3598 -16.6859 10 -18.9009
3583 POINT 3599 5.5495 9.791449999999999 -9.612019999999999
3584 POINT 3600 19.551 8.76224 3.76224
3585 POINT 3601 -15.2204 0 -21.2347
3586 POINT 3602 -16.1932 3.36156 -20.7568
3587 POINT 3603 -6.46028 3.4178 -18.002
3588 POINT 3604 22.1318 3.70772 5
3589 POINT 3605 13.219 8.5 -3.82603
3590 POINT 3606 -6.96772 1.85736 -18.5789
3591 POINT 3607 23.0368 0 5
3592 POINT 3608 -13.1495 0 -20.8198
3593 POINT 3609 10.3989 4.93363 -7.80143
3594 POINT 3610 2.06139 8.09844 -12.5964
3595 POINT 3611 6.5 3.45453 -11.2583
3596 POINT 3612 13.2809 5.6792 -5
3597 POINT 3613 -4.50502 1.23094 -17.8029
3598 POINT 3614 16.3933 10 0.237514
3599 POINT 3615 8.77596 3.59168 -9.59075
3600 POINT 3616 21.5754 1.85736 3.28098
3601 POINT 3617 21.7852 5.30304 5
3602 POINT 3618 2.63635 7 -12.7182
3603 POINT 3619 15.1843 8.125 -2.1483
3604 POINT 3620 7.5191 3.52094 -10.6049
3605 POINT 3621 12.6293 10 -3.88572
3606 POINT 3622 5.08285 4.71393 -11.9651
3607 POINT 3623 -17.3301 7.5688 -20.0167
3608 POINT 3624 11.2267 8.12105 -6.06928
3609 POINT 3625 21.2224 7.20793 5
3610 POINT 3626 10.7202 5.96682 -7.35377
3611 POINT 3627 14.819 1.51131 -5
3612 POINT 3628 -13.2626 4.00413 -20.1784
3613 POINT 3629 -9.337 10 -17.265
3614 POINT 3630 9.753590000000001 4.85905 -8.594620000000001
3615 POINT 3631 -3.69177 6.12137 -16.3943
3616 POINT 3632 3.88006 9.221690000000001 -11.2792
3617 POINT 3633 4.11759 5.89243 -12.3307
3618 POINT 3634 -17.949 4.40478 -21.0887
3619 POINT 3635 -14.6462 8.713050000000001 -19.2283
3620 POINT 3636 15.4156 10 -1.20728
3621 POINT 3637 9.59793 9.194570000000001 -7.16906
3622 POINT 3638 -16.1932 4.65484 -20.7568
3623 POINT 3639 -5.66914 10 -16.0009
3624 POINT 3640 11.0169 7 -6.88907
3625 POINT 3641 -16.944 0.12133 -21.9012
3626 POINT 3642 -9.88442 0 -20.2443
3627 POINT 3643 9.053610000000001 4.78446 -9.3291
3628 POINT 3644 6.5 4.64299 -11.2583
3629 POINT 3645 18.4672 4.79372 -0.152101
3630 POINT 3646 17.2528 5.20212 -1.44727
3631 POINT 3647 -3.24545 8.4091 -15.6213
3632 POINT 3648 -7.18437 4.57395 -18.3895
3633 POINT 3649 18.9552 7.7166 1.73514
3634 POINT 3650 13.2809 6.84863 -5
3635 POINT 3651 -12.3598 5.58805 -19.7657
3636 POINT 3652 12.0784 9.58281 -5
3637 POINT 3653 7.82033 4.71373 -10.3847
3638 POINT 3654 12.6057 8.5 -5
3639 POINT 3655 10.0599 5.96682 -8.23399
3640 POINT 3656 3.66938 7 -12.4611
3641 POINT 3657 3.3072 8.199820000000001 -12.2752
3642 POINT 3658 -4.9924 0 -18.6471
3643 POINT 3659 -12.2541 1.875 -20.6769
3644 POINT 3660 -9.001709999999999 6.20646 -18.66
3645 POINT 3661 -3.60741 7.38582 -16.2482
3646 POINT 3662 8.7308 9.23761 -8.11608
3647 POINT 3663 -2.88856 10 -15.0031
3648 POINT 3664 15.2462 6.47363 -3.32227
3649 POINT 3665 4.98391 9.16437 -10.8961
3650 POINT 3666 -17.3301 8.72603 -20.0167
3651 POINT 3667 -6.90299 6.47883 -17.9021
3652 POINT 3668 -18.6987 0.00638008 -22.387
3653 POINT 3669 -15.1383 2.12913 -21.3659
3654 POINT 3670 20.6266 6.16228 2.9729
3655 POINT 3671 -5.0319 7.71227 -16.8063
3656 POINT 3672 5.61066 5.8215 -11.7269
3657 POINT 3673 12.0472 10 -5
3658 POINT 3674 10.5523 8.14048 -7.15493
3659 POINT 3675 14.438 10 -2.65207
3660 POINT 3676 17.9721 10 1.381
3661 POINT 3677 9.38429 5.89223 -8.99639
3662 POINT 3678 18.3134 0 -2.21334
3663 POINT 3679 10.3955 7 -7.78899
3664 POINT 3680 16.7137 1.51131 -3.60667
3665 POINT 3681 -4.73686 2.46187 -18.2045
3666 POINT 3682 23.312 1.85037 5
3667 POINT 3683 -16.1932 5.91353 -20.7568
3668 POINT 3684 7.82814 9.22185 -8.99953
3669 POINT 3685 6.5 5.8215 -11.2583
3670 POINT 3686 15.8654 0 -5
3671 POINT 3687 4.66859 7 -12.1262
3672 POINT 3688 -9.0954 7.7166 -18.4663
3673 POINT 3689 8.61867 5.89223 -9.732340000000001
3674 POINT 3690 6.94436 9.164389999999999 -9.76422
3675 POINT 3691 7.34954 5.8215 -10.7231
3676 POINT 3692 20.2692 1.875 0.5039709999999999
3677 POINT 3693 15.1139 3.02262 -5
3678 POINT 3694 -4.56576 3.94321 -17.9081
3679 POINT 3695 4.36603 8.10934 -11.9806
3680 POINT 3696 -4.58558 10 -16.0333
3681 POINT 3697 20.8442 10 5
3682 POINT 3698 -17.9986 5.99603 -21.1745
3683 POINT 3699 18.4442 2.07712 -1.73167
3684 POINT 3700 6.05647 9.129670000000001 -10.4901
3685 POINT 3701 22.7555 0 3.28098
3686 POINT 3702 -15.6314 10 -19.5097
3687 POINT 3703 -13.3112 10 -18.9927
3688 POINT 3704 -18.6333 1.88226 -22.2738
3689 POINT 3705 -16.8775 2.13232 -21.942
3690 POINT 3706 16.8445 3.58843 -3.125
3691 POINT 3707 9.695830000000001 7 -8.642519999999999
3692 POINT 3708 9.87716 8.0982 -8.08469
3693 POINT 3709 -4.94754 8.97672 -16.6602
3694 POINT 3710 -7.79801 0 -20.0685
3695 POINT 3711 -15.2904 7.49745 -20.3441
3696 POINT 3712 -8.738580000000001 3.73236 -19.6331
3697 POINT 3713 14.4999 8.34863 -3.82603
3698 POINT 3714 5.61426 7 -11.723
3699 POINT 3715 -14.1031 0 -21.8798
3700 POINT 3716 -4.39466 5.42454 -17.6118
3701 POINT 3717 20.1976 10 3.76224
3702 POINT 3718 13.8247 10 -3.82603
3703 POINT 3719 -17.3301 10 -20.0167
3704 POINT 3720 5.45449 8.14148 -11.5053
3705 POINT 3721 8.95599 7 -9.409280000000001
3706 POINT 3722 14.8379 4.85994 -5
3707 POINT 3723 -6.6292 10 -17.0974
3708 POINT 3724 21.3721 3.73236 2.24873
3709 POINT 3725 -10.5559 5.36487 -19.9037
3710 POINT 3726 -5.22423 1.23094 -19.0486
3711 POINT 3727 6.5 7 -11.2583
3712 POINT 3728 18.575 4.15424 -1.25
3713 POINT 3729 -10.4575 10 -18.448
3714 POINT 3730 8.977550000000001 8.20022 -9.001010000000001
3715 POINT 3731 -11.4618 0 -21.3691
3716 POINT 3732 16.4456 8.125 -2.0818
3717 POINT 3733 8.16555 7 -10.1077
3718 POINT 3734 7.34433 7 -10.7242
3719 POINT 3735 16.5684 5.42575 -3.125
3720 POINT 3736 -18.568 3.75814 -22.1607
3721 POINT 3737 21.869 8.445690000000001 5
3722 POINT 3738 -16.8121 4.0082 -21.8288
3723 POINT 3739 19.4158 0 -1.68618
3724 POINT 3740 -17.9986 7.25472 -21.1745
3725 POINT 3741 6.39364 8.10956 -11.0741
3726 POINT 3742 8.1915 8.109249999999999 -9.772309999999999
3727 POINT 3743 17.76 0 -3.60667
3728 POINT 3744 19.551 10 2.52448
3729 POINT 3745 7.23657 8.14161 -10.4763
3730 POINT 3746 -4.3103 6.68899 -17.4657
3731 POINT 3747 -15.0563 4.25825 -21.497
3732 POINT 3748 -13.2809 8.713050000000001 -19.8322
3733 POINT 3749 16.1603 1.51131 -5
3734 POINT 3750 16.6769 10 -1.14078
3735 POINT 3751 -10.6496 6.875 -19.71
3736 POINT 3752 -11.1623 3.96466 -20.6436
3737 POINT 3753 -3.50203 10 -16.0657
3738 POINT 3754 -5.99196 7.71227 -17.9028
3739 POINT 3755 21.2224 8.445690000000001 3.76224
3740 POINT 3756 23.5871 3.70073 5
3741 POINT 3757 14.5618 6.69727 -5
3742 POINT 3758 13.8866 8.34863 -5
3743 POINT 3759 19.5466 2.07712 -1.20451
3744 POINT 3760 -3.86399 8.97672 -16.6926
3745 POINT 3761 24.5184 0 5
3746 POINT 3762 -16.2756 8.7844 -20.6255
3747 POINT 3763 13.2114 10 -5
3748 POINT 3764 23.0307 1.85037 3.28098
3749 POINT 3765 23.2405 5.29605 5
3750 POINT 3766 -14.1535 5.84217 -21.0843
3751 POINT 3767 -7.94628 1.85736 -20.3253
3752 POINT 3768 -5.71161 0 -19.8928
3753 POINT 3769 -4.22595 7.95344 -17.3196
3754 POINT 3770 -14.0477 2.12913 -21.9955
3755 POINT 3771 15.6993 10 -2.58557
3756 POINT 3772 20.6589 6.20903 1.53423
3757 POINT 3773 20.2135 4.5916 0.221631
3758 POINT 3774 22.8938 6.89137 5
3759 POINT 3775 -15.6822 0.118856 -22.793
3760 POINT 3776 -5.9076 8.97672 -17.7567
3761 POINT 3777 16.4456 6.88453 -3.32227
3762 POINT 3778 -5.23396 10 -17.1563
3763 POINT 3779 -7.73868 6.16228 -19.3496
3764 POINT 3780 24.5184 1.22014 5
3765 POINT 3781 22.4742 0 1.56197
3766 POINT 3782 -18.6175 5.34939 -22.2465
3767 POINT 3783 -5.3725 3.08829 -19.3054
3768 POINT 3784 -19.2225 0.984859 -23.2943
3769 POINT 3785 21.4962 0 0.201475
3770 POINT 3786 -16.8617 5.59944 -21.9146
3771 POINT 3787 -19.3663 -0.311912 -23.5435
3772 POINT 3788 16.0481 3.85033 -5
3773 POINT 3789 -13.2506 7.42609 -20.6716
3774 POINT 3790 -18.0123 8.881130000000001 -21.1981
3775 POINT 3791 -14.2661 10 -20.1135
3776 POINT 3792 20.5182 0 -1.15902
3777 POINT 3793 -7.58926 10 -18.1939
3778 POINT 3794 19.0246 7.7166 -0.242939
3779 POINT 3795 17.2066 0 -5
3780 POINT 3796 -10.37 2.08966 -21.3358
3781 POINT 3797 -5.2014 4.56963 -19.0091
3782 POINT 3798 17.8102 8.125 -1.53811
3783 POINT 3799 17.7786 4.41614 -3.125
3784 POINT 3800 15.7612 8.34863 -3.75953
3785 POINT 3801 -17.3088 -0.0237668 -23.3565
3786 POINT 3802 -13.0392 0 -22.494
3787 POINT 3803 -16.2249 10 -20.6548
3788 POINT 3804 -15.9588 7.18336 -21.5019
3789 POINT 3805 15.0512 10 -3.82603
3790 POINT 3806 22.1343 10 5
3791 POINT 3807 -17.4013 3.1108 -22.8493
3792 POINT 3808 -4.92002 6.47451 -18.5217
3793 POINT 3809 -19.1571 2.86074 -23.1811
3794 POINT 3810 15.772 5.68765 -5
3795 POINT 3811 -8.53636 0 -21.3474
3796 POINT 3812 18.0415 10 -0.597081
3797 POINT 3813 -9.466229999999999 3.72537 -20.8935
3798 POINT 3814 20.54 7.7166 1.35631
3799 POINT 3815 18.4792 1.37676 -3.60667
3800 POINT 3816 -5.85988 1.85736 -20.1496
3801 POINT 3817 -15.5706 2.10344 -22.8643
3802 POINT 3818 -11.5707 10 -19.7764
3803 POINT 3819 -4.15041 10 -17.1887
3804 POINT 3820 -10.3432 0 -22.015
3805 POINT 3821 16.8795 2.88807 -5
3806 POINT 3822 24.5184 0 3.76908
3807 POINT 3823 -9.29289 5.32069 -20.5932
3808 POINT 3824 -18.0104 10.1498 -21.1949
3809 POINT 3825 -14.2358 8.713050000000001 -20.953
3810 POINT 3826 17.7678 5.83665 -3.125
3811 POINT 3827 -18.667 6.94064 -22.3323
3812 POINT 3828 -4.51237 8.97672 -17.8157
3813 POINT 3829 -4.83567 7.73896 -18.3756
3814 POINT 3830 -12.9559 4.21879 -21.9622
3815 POINT 3831 20.3213 3.95212 -0.876268
3816 POINT 3832 23.9436 2.08966 3.40625
3817 POINT 3833 18.61 3.45388 -3.125
3818 POINT 3834 -11.4467 7.20291 -20.8096
3819 POINT 3835 15.1132 8.34863 -5
3820 POINT 3836 24.7936 3.0705 5
3821 POINT 3837 23.1591 8.445690000000001 5
3822 POINT 3838 22.8274 3.72537 2.24873
3823 POINT 3839 -6.19402 10 -18.2528
3824 POINT 3840 14.438 10 -5
3825 POINT 3841 -6.51732 8.76224 -18.8128
3826 POINT 3842 19.1984 0 -3.60667
3827 POINT 3843 15.7612 7.10817 -5
3828 POINT 3844 -16.9441 8.470319999999999 -21.7833
3829 POINT 3845 19.1324 7.07712 -1.34084
3830 POINT 3846 22.4807 5.32069 2.24873
3831 POINT 3847 16.9605 10 -2.51907
3832 POINT 3848 -12.0531 5.80271 -21.5495
3833 POINT 3849 22.9261 6.93812 3.56133
3834 POINT 3850 22.2709 1.875 0.529717
3835 POINT 3851 -14.5855 0.118856 -23.4262
3836 POINT 3852 19.6204 10 0.5464
3837 POINT 3853 -17.5116 4.70329 -23.0404
3838 POINT 3854 -11.5404 8.713050000000001 -20.6158
3839 POINT 3855 -11.9474 2.08966 -22.4607
3840 POINT 3856 -6.44995 0 -21.1716
3841 POINT 3857 -19.2674 4.45323 -23.3722
3842 POINT 3858 19.3293 2.07712 -3.125
3843 POINT 3859 -8.67393 1.85037 -21.5857
3844 POINT 3860 21.2929 1.875 -0.830778
3845 POINT 3861 -8.70973 10 -19.377
3846 POINT 3862 21.7824 10 3.38341
3847 POINT 3863 24.7936 4.33096 5
3848 POINT 3864 17.9258 1.37676 -5
3849 POINT 3865 16.9822 4.67803 -5
3850 POINT 3866 -13.1751 10 -20.7435
3851 POINT 3867 -6.00815 3.71471 -20.4064
3852 POINT 3868 -15.2211 10 -21.2343
3853 POINT 3869 -20.0008 -0.835778 -24.6424
3854 POINT 3870 24.4469 5.92628 5
3855 POINT 3871 -19.8736 0.5637799999999999 -24.422
3856 POINT 3872 -18.6807 8.56704 -22.3559
3857 POINT 3873 21.1358 10 2.14565
3858 POINT 3874 -19.7463 1.96334 -24.2016
3859 POINT 3875 -5.72677 5.6196 -19.9191
3860 POINT 3876 26 0 5
3861 POINT 3877 -11.9474 0 -23.1244
3862 POINT 3878 16.3125 10 -3.75953
3863 POINT 3879 -17.9156 0.955979 -24.2166
3864 POINT 3880 -9.64283 6.97973 -20.9475
3865 POINT 3881 20.3008 0 -3.07951
3866 POINT 3882 16.9605 8.75953 -3.75953
3867 POINT 3883 24.2188 3.94003 3.40625
3868 POINT 3884 24.2371 0 2.05006
3869 POINT 3885 -4.79879 10 -18.3117
3870 POINT 3886 -5.12209 8.76224 -18.8717
3871 POINT 3887 -17.9741 -0.36231 -24.5088
3872 POINT 3888 18.645 0 -5
3873 POINT 3889 22.8072 8.445690000000001 3.38341
3874 POINT 3890 -5.44539 7.52448 -19.4317
3875 POINT 3891 16.9714 6.09855 -5
3876 POINT 3892 23.8721 5.53535 3.40625
3877 POINT 3893 -16.0848 -0.0513791 -24.2316
3878 POINT 3894 26 1.27892 5
3879 POINT 3895 23.6623 2.08966 1.68723
3880 POINT 3896 -19.317 6.04448 -23.458
3881 POINT 3897 -10.2492 5.57953 -21.6874
3882 POINT 3898 17.8136 3.71577 -5
3883 POINT 3899 -13.8806 5.22881 -22.7264
3884 POINT 3900 23.4243 10 5
3885 POINT 3901 24.4469 7.21676 5
3886 POINT 3902 -13.1448 8.713050000000001 -21.5829
3887 POINT 3903 -16.9449 10.1667 -21.9018
3888 POINT 3904 -6.59822 1.85736 -21.4285
3889 POINT 3905 22.8423 0 -0.174292
3890 POINT 3907 -9.736510000000001 8.48987 -20.7538
3891 POINT 3908 18.9534 5.76297 -3.125
3892 POINT 3909 19.3364 4.5927 -3.125
3893 POINT 3910 18.3252 10 -1.97537
3894 POINT 3911 -15.2592 4.82612 -23.2025
3895 POINT 3912 21.8643 0 -1.53479
3896 POINT 3913 -6.84062 10 -19.3728
3897 POINT 3914 15.6645 10 -5
3898 POINT 3915 -10.8555 4.17933 -22.4273
3899 POINT 3916 26 2.44027 5
3900 POINT 3917 -12.9777 6.81273 -22.3137
3901 POINT 3918 -18.6944 10.1935 -22.3796
3902 POINT 3919 16.3125 8.75953 -5
3903 POINT 3920 -19.8566 3.55583 -24.3927
3904 POINT 3921 -9.02192 2.08966 -22.4389
3905 POINT 3922 22.513 5.36743 0.810066
3906 POINT 3923 -7.35301 8.445690000000001 -20.2603
3907 POINT 3924 22.9584 6.98487 2.12267
3908 POINT 3925 -9.8302 10 -20.5601
3909 POINT 3927 16.9605 7.51907 -5
3910 POINT 3928 22.0676 3.75 -0.502535
3911 POINT 3929 -15.6859 6.57 -23.144
3912 POINT 3930 18.645 2.75351 -5
3913 POINT 3931 -14.1456 2.05957 -23.919
3914 POINT 3932 -10.8287 2.08966 -23.1065
3915 POINT 3933 26 0 3.70932
3916 POINT 3934 20.8787 6.875 -0.967106
3917 POINT 3935 26 3.73148 5
3918 POINT 3936 -7.1883 0 -22.4505
3919 POINT 3937 -16.2886 3.53637 -24.1096
3920 POINT 3938 18.3252 8.75953 -3.21584
3921 POINT 3939 -14.7527 8.817220000000001 -22.4064
3922 POINT 3940 -14.1033 10 -21.8797
3923 POINT 3941 -17.0646 6.16731 -23.6202
3924 POINT 3942 -20.5863 -1.55224 -25.6565
3925 POINT 3943 -8.995100000000001 0 -23.1181
3926 POINT 3944 21.0755 1.875 -2.75127
3927 POINT 3945 23.0725 10 3.38341
3928 POINT 3946 -6.7358 3.70772 -21.6667
3929 POINT 3947 26 1.22014 3.76908
3930 POINT 3948 24.2371 0 0.7583530000000001
3931 POINT 3949 -5.44539 10 -19.4317
3932 POINT 3950 19.3643 1.37676 -5
3933 POINT 3951 -5.76869 8.76224 -19.9917
3934 POINT 3952 22.3941 6.875 0.632145
3935 POINT 3953 18.1461 8.68585 -3.75953
3936 POINT 3954 24.7122 8.77107 5
3937 POINT 3955 17.6086 10 -3.75953
3938 POINT 3956 -10.8019 0 -23.7857
3939 POINT 3957 -19.3621 8.451079999999999 -23.5361
3940 POINT 3958 -11.1738 6.58955 -22.4516
3941 POINT 3959 25.4252 3.3098 3.40625
3942 POINT 3960 22.8395 8.492430000000001 1.94475
3943 POINT 3961 -6.56245 5.30304 -21.3665
3944 POINT 3962 -17.4609 8.574490000000001 -23.2367
3945 POINT 3963 26 4.96119 5
3946 POINT 3964 20.5183 3.67585 -3.125
3947 POINT 3965 19.6898 10 -1.43168
3948 POINT 3966 18.54 4.8546 -5
3949 POINT 3967 -11.4346 10 -21.5271
3950 POINT 3968 -19.9669 5.14832 -24.5837
3951 POINT 3969 18.157 6.02487 -5
3952 POINT 3971 23.9044 5.5821 1.96758
3953 POINT 3972 23.459 3.96466 0.654982
3954 POINT 3973 -13.1745 0.111007 -24.4622
3955 POINT 3974 24.4792 7.26351 3.56133
3956 POINT 3975 22.639 1.875 -1.20654
3957 POINT 3976 -8.37979 6.93555 -21.637
3958 POINT 3977 -9.15949 3.94003 -22.6772
3959 POINT 3978 -7.96109 10 -20.5558
3960 POINT 3979 -6.28108 7.20793 -20.8791
3961 POINT 3980 -12.0258 8.713050000000001 -22.2289
3962 POINT 3981 -11.7802 5.18934 -23.1916
3963 POINT 3982 -11.2675 8.099679999999999 -22.2579
3964 POINT 3983 21.2052 10 0.167575
3965 POINT 3984 27.3683 0.111216 5
3966 POINT 3985 20.0835 0 -5
3967 POINT 3986 -8.98615 5.53535 -22.377
3968 POINT 3987 -7.32587 1.85037 -22.6888
3969 POINT 3988 25.4252 4.57026 3.40625
3970 POINT 3989 -20.7075 0.473321 -25.8664
3971 POINT 3990 -8.47348 8.445690000000001 -21.4433
3972 POINT 3991 26 6.22054 5
3973 POINT 3992 -15.7802 10.1787 -22.7659
3974 POINT 3993 -20.5803 1.87288 -25.646
3975 POINT 3994 24.7122 10 5
3976 POINT 3995 16.9605 10 -5
3977 POINT 3996 26 0 2.53815
3978 POINT 3997 21.0827 4.39058 -2.75127
3979 POINT 3998 21.6469 0 -3.45528
3980 POINT 3999 27.3685 1.22333 5
3981 POINT 4000 17.6086 8.75953 -5
3982 POINT 4001 18.1461 7.44539 -5
3983 POINT 4002 25.4252 2.08966 2.17533
3984 POINT 4003 19.3714 3.89234 -5
3985 POINT 4004 22.7206 10 1.76683
3986 POINT 4005 -18.6336 2.38891 -25.4619
3987 POINT 4006 24.3603 8.77107 3.38341
3988 POINT 4007 -19.378 10.1306 -23.5637
3989 POINT 4008 -21.1083 -2.44356 -26.5607
3990 POINT 4009 -17.7146 5.27115 -24.7459
3991 POINT 4010 -14.6576 -0.0930185 -25.2873
3992 POINT 4011 -18.3288 0.268938 -25.888
3993 POINT 4012 -13.0389 10 -22.4942
3994 POINT 4013 -17.401 10.2118 -23.3039
3995 POINT 4014 24.8504 4.17933 1.8125
3996 POINT 4016 -16.8029 1.38156 -25.4769
3997 POINT 4017 25.4252 5.86074 3.40625
3998 POINT 4018 -12.0452 2.02011 -24.3842
3999 POINT 4019 19.5108 8.68585 -3.21584
4000 POINT 4020 20.7129 5.5781 -3.125
4001 POINT 4021 18.9732 10 -3.21584
4002 POINT 4022 27.2064 3.0705 5
4003 POINT 4023 24.0338 1.875 -0.273899
4004 POINT 4024 23.2104 0 -1.91055
4005 POINT 4025 -18.335 -1.11217 -26.1914
4006 POINT 4026 26 7.54214 5
4007 POINT 4027 -10.2219 8.48987 -22.3669
4008 POINT 4028 -6.09199 10 -20.5516
4009 POINT 4029 -12.8719 8.099679999999999 -23.225
4010 POINT 4030 -20.012 7.55493 -24.6619
4011 POINT 4031 -7.92908 0 -23.7336
4012 POINT 4032 -9.76271 3.3098 -23.722
4013 POINT 4033 -16.5351 -0.567088 -25.9763
4014 POINT 4034 -7.46345 3.70073 -22.9271
4015 POINT 4035 -9.78764 0 -24.3713
4016 POINT 4036 -20.6906 3.46537 -25.8371
4017 POINT 4037 -6.60438 8.445690000000001 -21.4391
4018 POINT 4038 27.2064 4.33096 5
4019 POINT 4039 -10.3156 10 -22.1731
4020 POINT 4040 -7.2901 5.29605 -22.6268
4021 POINT 4041 -7.92908 1.22014 -23.7336
4022 POINT 4042 -8.606120000000001 10 -21.6731
4023 POINT 4043 27.439 0.12133 3.70932
4024 POINT 4045 -12.7048 6.19936 -23.9558
4025 POINT 4046 24.7122 10 3.76957
4026 POINT 4047 -12.0515 0.111007 -25.1106
4027 POINT 4048 -18.7439 3.98141 -25.6529
4028 POINT 4049 26 8.71149 5
4029 POINT 4050 -14.0835 5.79667 -24.4319
4030 POINT 4051 27.2064 1.85037 3.76908
4031 POINT 4052 -9.73588 1.22014 -24.4012
4032 POINT 4053 -21.2613 -0.330568 -26.8256
4033 POINT 4054 22.2646 3.47373 -2.75127
4034 POINT 4055 26 0 1.21538
4035 POINT 4056 -9.76271 4.57026 -23.722
4036 POINT 4057 24.4792 8.492430000000001 2.33091
4037 POINT 4058 -15.4622 5.39398 -24.9081
4038 POINT 4059 20.5533 2.97549 -5
4039 POINT 4060 -7.11676 6.89137 -22.3266
4040 POINT 4061 -14.6781 10.1787 -23.4023
4041 POINT 4062 26.6316 3.94003 3.40625
4042 POINT 4063 -21.554 -3.48764 -27.3326
4043 POINT 4064 25.4252 2.08966 0.883618
4044 POINT 4065 -18.0152 8.401199999999999 -24.592
4045 POINT 4066 23.7429 7.20548 0.491547
4046 POINT 4067 23.2975 5.58805 -0.821054
4047 POINT 4068 -14.4798 8.203849999999999 -24.0484
4048 POINT 4069 24.6052 0 -0.977909
4049 POINT 4070 -9.15635 7.26094 -22.9821
4050 POINT 4071 22.5857 6.875 -1.26701
4051 POINT 4072 20.0978 5.03117 -5
4052 POINT 4073 19.7148 6.20144 -5
4053 POINT 4074 18.7942 8.68585 -5
4054 POINT 4075 18.2566 10 -5
4055 POINT 4076 19.3317 7.37171 -5
4056 POINT 4077 -15.8584 7.80117 -24.5246
4057 POINT 4078 -20.6579 5.8161 -25.7806
4058 POINT 4079 -12.9699 3.03012 -25.1484
4059 POINT 4080 21.5602 0 -5
4060 POINT 4081 -9.76271 5.86074 -23.722
4061 POINT 4082 21.2725 1.59873 -5
4062 POINT 4083 28.7371 0.00638008 5
4063 POINT 4084 26 10 5
4064 POINT 4085 -14.3485 2.62744 -25.6245
4065 POINT 4086 -11.9469 10 -23.1247
4066 POINT 4087 -9.25004 8.77107 -22.7884
4067 POINT 4088 -18.8937 -1.90757 -27.1591
4068 POINT 4089 24.9145 6.64124 1.38924
4069 POINT 4090 21.3968 10 -1.73158
4070 POINT 4091 -8.066660000000001 3.0705 -23.9719
4071 POINT 4092 -16.4916 4.10424 -25.8151
4072 POINT 4093 -20.0571 9.96153 -24.74
4073 POINT 4094 -6.73702 10 -21.6689
4074 POINT 4095 23.1236 0 -3.45528
4075 POINT 4096 24.3603 10 2.15299
4076 POINT 4097 20.2662 10 -3.21584
4077 POINT 4098 -16.2547 10.2083 -24.1411
4078 POINT 4099 -18.0766 10.1252 -24.4742
4079 POINT 4100 28.575 1.85356 5
4080 POINT 4101 27.5713 5.92581 5
4081 POINT 4102 22.836 1.59873 -3.45528
4082 POINT 4103 -11.7529 8.099679999999999 -23.871
4083 POINT 4104 23.624 8.713050000000001 0.313626
4084 POINT 4105 -21.9122 -4.65864 -27.9531
4085 POINT 4106 22.4592 5.37598 -2.75127
4086 POINT 4107 26 8.77107 3.76957
4087 POINT 4108 -21.4142 1.78242 -27.0905
4088 POINT 4109 24.6889 5.80271 0.336464
4089 POINT 4110 22.9122 10 -0.132328
4090 POINT 4111 -7.2494 8.445690000000001 -22.5563
4091 POINT 4112 -8.066660000000001 4.33096 -23.9719
4092 POINT 4113 -8.66987 0 -25.0167
4093 POINT 4114 -10.3659 3.94003 -24.7668
4094 POINT 4115 -19.4676 2.29846 -26.9063
4095 POINT 4116 28.4129 3.70073 5
4096 POINT 4117 26 0 -0.0452634
4097 POINT 4118 26.9965 5.53488 3.40625
4098 POINT 4119 -10.5072 0.12133 -25.6176
4099 POINT 4120 21.2702 8.50098 -3.21584
4100 POINT 4121 -15.3779 1.33769 -26.5316
4101 POINT 4122 -13.2349 -0.139112 -26.341
4102 POINT 4123 24.1312 4.24666 -1.39658
4103 POINT 4124 24.7956 8.1488 1.21132
4104 POINT 4125 -19.1628 0.178479 -27.3324
4105 POINT 4126 -7.89332 5.92628 -23.6716
4106 POINT 4127 21.2797 4.11431 -5
4107 POINT 4128 27.5713 7.21628 5
4108 POINT 4129 -18.6652 7.50505 -25.7177
4109 POINT 4130 24.6052 0 -2.23721
4110 POINT 4131 -8.66987 1.27892 -25.0167
4111 POINT 4132 -17.5209 2.81449 -26.7221
4112 POINT 4133 25.8605 5.23847 1.23416
4113 POINT 4134 -22.1742 -5.92755 -28.4068
4114 POINT 4135 26.4353 6.91987 2.82791
4115 POINT 4136 -20.703 8.2227 -25.8587
4116 POINT 4137 -10.3391 1.85037 -25.446
4117 POINT 4138 26 10 3.70986
4118 POINT 4139 -17.2161 0.694514 -27.1482
4119 POINT 4140 27.1325 2.02189 1.75115
4120 POINT 4141 -15.1184 -0.648467 -27.0142
4121 POINT 4142 27.7651 0.111388 2.10865
4122 POINT 4143 -21.3815 4.13315 -27.0339
4123 POINT 4144 -22.3301 -10 -28.6769
4124 POINT 4145 -10.6874 6.87075 -24.4862
4125 POINT 4146 20.0871 8.68585 -5
4126 POINT 4147 19.5496 10 -5
4127 POINT 4148 -19.7694 -3.23168 -28.1394
4128 POINT 4149 -8.66987 2.44027 -25.0167
4129 POINT 4150 -22.3333 -7.26293 -28.6824
4130 POINT 4151 27.3643 8.867800000000001 5
4131 POINT 4152 -16.9113 -1.42546 -27.5743
4132 POINT 4153 -7.89332 7.21676 -23.6716
4133 POINT 4154 -19.4349 4.64919 -26.8498
4134 POINT 4155 -22.3857 -8.63171 -28.7732
4135 POINT 4156 24.3603 10 0.860938
4136 POINT 4157 -22.1694 -2.26902 -28.3985
4137 POINT 4158 -9.09154 10 -23.2862
4138 POINT 4159 -10.801 10 -23.7862
4139 POINT 4160 -15.0341 8.030570000000001 -25.4037
4140 POINT 4161 -7.38204 10 -22.7861
4141 POINT 4162 25.5226 4.46133 -0.239062
4142 POINT 4163 24.7025 2.37166 -2.10059
4143 POINT 4164 -10.5542 5.51566 -25.0929
4144 POINT 4165 -13.3786 10.1944 -24.4568
4145 POINT 4166 -8.66987 3.73148 -25.0167
4146 POINT 4167 -16.4128 7.62788 -25.8799
4147 POINT 4168 28.7777 5.29558 5
4148 POINT 4169 23.0368 0 -5
4149 POINT 4170 -13.1524 8.19286 -25.0951
4150 POINT 4171 -20.7276 9.6874 -25.9013
4151 POINT 4172 29.7912 1.04216 5
4152 POINT 4173 21.4743 6.01656 -5
4153 POINT 4174 21.0912 7.18683 -5
4154 POINT 4175 -11.2906 4.95005 -25.531
4155 POINT 4176 30.0724 -0.311912 5
4156 POINT 4177 26 0 -1.27376
4157 POINT 4178 22.7492 1.59873 -5
4158 POINT 4179 27.6417 4.99917 2.82791
4159 POINT 4180 29.0742 -0.0606681 3.24291
4160 POINT 4181 27.3605 10.1498 5
4161 POINT 4182 -21.3489 6.48388 -26.9774
4162 POINT 4183 22.4616 3.19746 -5
4163 POINT 4184 -20.5962 -1.27189 -28.4531
4164 POINT 4185 23.4945 5.31178 -3.06979
4165 POINT 4186 26 10 2.53915
4166 POINT 4187 29.6291 2.88934 5
4167 POINT 4188 -20.1502 -4.37176 -28.7989
4168 POINT 4189 -11.7233 -0.0621712 -26.8121
4169 POINT 4190 28.9137 1.7826 3.3449
4170 POINT 4191 25.2637 8.713050000000001 0.699787
4171 POINT 4192 -8.66987 4.96119 -25.0167
4172 POINT 4193 -16.7988 10.0983 -25.4807
4173 POINT 4194 -9.354010000000001 0.111216 -26.2016
4174 POINT 4195 -18.6179 9.90846 -25.848
4175 POINT 4196 -22.6117 -4.94792 -29.1647
4176 POINT 4197 27.7651 0.111388 0.8125250000000001
4177 POINT 4198 -14.9154 10.1994 -25.1956
4178 POINT 4199 24.5275 7.42609 -1.13957
4179 POINT 4200 -9.73545 8.77107 -24.4014
4180 POINT 4201 -8.02596 8.77107 -23.9014
4181 POINT 4202 -17.4422 6.33813 -26.7869
4182 POINT 4203 -22.3223 -0.156036 -28.6634
4183 POINT 4204 24.5184 0 -3.78193
4184 POINT 4205 -22.5713 -3.37657 -29.0947
4185 POINT 4206 -21.2245 -10 -29.3152
4186 POINT 4207 23.8156 8.713050000000001 -1.58553
4187 POINT 4208 -22.0017 3.1181 -28.108
4188 POINT 4209 24.2308 1.59873 -3.78193
4189 POINT 4210 -9.354139999999999 1.22333 -26.2018
4190 POINT 4211 -20.7253 -5.82943 -29.201
4191 POINT 4212 26.0973 2.37166 -1.16794
4192 POINT 4213 -11.5556 1.78081 -26.7236
4193 POINT 4214 23.1038 10 -2.03148
4194 POINT 4215 -21.2852 -8.56096 -29.4203
4195 POINT 4216 -21.3672 7.89686 -27.009
4196 POINT 4217 26.4353 8.1488 1.59748
4197 POINT 4218 -8.66987 6.22054 -25.0167
4198 POINT 4219 21.9732 10 -3.51574
4199 POINT 4220 -13.9676 6.03591 -26.4177
4200 POINT 4221 -17.8193 -2.62932 -28.6643
4201 POINT 4222 -22.8223 -6.25006 -29.5294
4202 POINT 4223 25.699 6.86185 -0.241876
4203 POINT 4224 20.8426 10 -5
4204 POINT 4225 -15.3463 5.63323 -26.8939
4205 POINT 4226 -20.8914 -7.1601 -29.4888
4206 POINT 4227 -9.78717 10 -24.3716
4207 POINT 4228 -9.27309 3.0705 -26.0615
4208 POINT 4229 -11.4788 6.52567 -25.8571
4209 POINT 4230 29.8861 4.12277 5
4210 POINT 4231 22.6562 5.09971 -5
4211 POINT 4232 -22.9481 -10 -29.7474
4212 POINT 4233 29.1426 6.89042 5
4213 POINT 4234 -22.9497 -8.63147 -29.7501
4214 POINT 4235 -19.3562 8.172829999999999 -26.9145
4215 POINT 4236 -8.02596 10 -23.9014
4216 POINT 4237 -20.7492 0.841097 -28.718
4217 POINT 4238 -13.6833 -0.657623 -27.8666
4218 POINT 4239 -22.3662 1.68356 -28.7394
4219 POINT 4240 28.0066 6.59401 2.82791
4220 POINT 4241 23.6891 7.21403 -3.06979
4221 POINT 4242 -12.264 10.1944 -25.1003
4222 POINT 4243 -15.5098 -1.43823 -28.4047
4223 POINT 4244 26 0 -2.56387
4224 POINT 4245 27.44 10.1667 3.70986
4225 POINT 4246 -18.8025 1.35713 -28.5338
4226 POINT 4247 22.9773 8.50098 -3.51574
4227 POINT 4248 24.3282 3.97039 -3.64531
4228 POINT 4249 -21.969 5.46883 -28.0514
4229 POINT 4250 -8.66987 7.54214 -25.0167
4230 POINT 4251 -20.094 3.00506 -28.4185
4231 POINT 4252 -16.0044 2.04429 -28.0437
4232 POINT 4253 26 10 1.21601
4233 POINT 4254 26.8706 6.2976 0.65582
4234 POINT 4255 -9.27309 4.33096 -26.0615
4235 POINT 4256 -21.3854 9.309839999999999 -27.0407
4236 POINT 4257 21.8466 8.50098 -5
4237 POINT 4258 25.2637 8.713050000000001 -0.592261
4238 POINT 4259 -14.2326 2.86668 -27.6104
4239 POINT 4260 28.9355 8.54194 5
4240 POINT 4261 -11.3695 8.19641 -25.6677
4241 POINT 4262 28.1425 3.08103 1.17281
4242 POINT 4263 -18.4977 -0.762844 -28.9599
4243 POINT 4264 25.3611 6.08471 -1.7151
4244 POINT 4265 27.7996 8.24553 2.82791
4245 POINT 4266 24.5519 10 -1.03821
4246 POINT 4267 -18.1474 3.52109 -28.2343
4247 POINT 4268 -16.3756 4.34348 -27.8009
4248 POINT 4269 -20.2204 -10 -29.895
4249 POINT 4270 31.0933 0.621085 5
4250 POINT 4271 31.3413 -0.835778 5
4251 POINT 4272 30.8453 2.07795 5
4252 POINT 4273 30.1299 0.971204 3.3449
4253 POINT 4274 -12.3874 -0.430655 -27.9623
4254 POINT 4275 -18.5899 -4.0927 -29.5121
4255 POINT 4276 24.5184 0 -5
4256 POINT 4277 27.5803 0.11886 -0.918921
4257 POINT 4278 -8.66987 8.71149 -25.0167
4258 POINT 4279 30.4025 -0.428038 3.24291
4259 POINT 4280 -12.1575 0.8838 -27.7662
4260 POINT 4281 29.4145 -0.13554 1.68979
4261 POINT 4282 -10.0384 0.00638008 -27.387
4262 POINT 4283 -19.2819 9.61408 -26.9982
4263 POINT 4284 26.0973 2.37166 -2.42725
4264 POINT 4285 26.4353 8.1488 0.305436
4265 POINT 4286 -20.9506 -4.66495 -29.9442
4266 POINT 4287 28.7285 10.1935 5
4267 POINT 4288 26.5326 5.52046 -0.817402
4268 POINT 4289 -23.2707 -7.40275 -30.306
4269 POINT 4290 22.8507 7.00196 -5
4270 POINT 4291 -18.2896 6.17817 -27.9286
4271 POINT 4292 -20.0614 5.35579 -28.3619
4272 POINT 4293 -20.9102 -3.0936 -29.8742
4273 POINT 4294 24.5184 1.23243 -5
4274 POINT 4295 27.8046 2.30389 -0.300416
4275 POINT 4296 30.251 5.71762 5
4276 POINT 4297 -21.998 7.36902 -28.1017
4277 POINT 4298 -9.95735 1.85356 -27.2466
4278 POINT 4299 -19.9812 -8.460140000000001 -30.1715
4279 POINT 4300 -17.3635 9.86177 -26.8517
4280 POINT 4301 23.9753 8.713050000000001 -3.06979
4281 POINT 4302 24.2308 2.83116 -5
4282 POINT 4303 28.8639 4.59222 2.03344
4283 POINT 4304 -15.1316 -0.140312 -28.7822
4284 POINT 4305 -19.166 -5.5188 -29.9764
4285 POINT 4306 -21.8502 -10 -30.399
4286 POINT 4307 24.5227 5.87264 -3.64531
4287 POINT 4308 -15.469 10.0669 -26.5301
4288 POINT 4309 -21.461 -6.14682 -30.2913
4289 POINT 4310 -23.3113 -5.23719 -30.3763
4290 POINT 4311 -16.1865 -2.36918 -29.3115
4291 POINT 4312 -17.2746 1.33649 -28.9727
4292 POINT 4313 23.2635 10 -3.51574
4293 POINT 4314 26 0 -3.72334
4294 POINT 4315 -19.6108 -7.05644 -30.2063
4295 POINT 4316 -23.2708 -3.66584 -30.3063
4296 POINT 4317 -9.461370000000001 5.90659 -26.3876
4297 POINT 4318 -8.66987 10 -25.0167
4298 POINT 4319 31.1023 3.31138 5
4299 POINT 4320 -13.6 10.1864 -26.2345
4300 POINT 4321 22.1329 10 -5
4301 POINT 4322 26 10 -0.0449491
4302 POINT 4323 -9.876300000000001 3.70073 -27.1063
4303 POINT 4324 -23.2304 -2.09449 -30.2363
4304 POINT 4325 -16.9698 -0.783487 -29.3988
4305 POINT 4326 -22.5891 4.45378 -29.1255
4306 POINT 4327 24.2308 4.12444 -5
4307 POINT 4328 -19.337 -2.09647 -29.9288
4308 POINT 4329 25.2637 8.713050000000001 -1.85212
4309 POINT 4330 26.1947 4.74333 -2.29062
4310 POINT 4331 -10.5072 10.1667 -25.6186
4311 POINT 4332 -23.5662 -10 -30.8178
4312 POINT 4333 26 1.23243 -3.78193
4313 POINT 4334 -21.9594 -8.63147 -30.7145
4314 POINT 4335 24.5519 10 -2.29808
4315 POINT 4336 -22.0266 8.83113 -28.1512
4316 POINT 4337 -19.1031 -10 -30.54
4317 POINT 4338 -9.461370000000001 7.19706 -26.3876
4318 POINT 4339 27.5803 0.11886 -2.18536
4319 POINT 4340 23.1369 8.50098 -5
4320 POINT 4341 -21.6573 -1.09736 -30.2909
4321 POINT 4342 -14.0505 -1.45104 -29.2683
4322 POINT 4343 -23.2743 -0.254901 -30.3123
4323 POINT 4344 -22.9536 3.01924 -29.7569
4324 POINT 4345 -16.2969 7.86712 -27.8657
4325 POINT 4346 30.5929 7.10977 5
4326 POINT 4347 29.2206 -0.09136660000000001 -0.0598462
4327 POINT 4348 32.5123 -1.55224 5
4328 POINT 4349 31.3594 4.54481 5
4329 POINT 4350 -21.4982 2.30389 -29.8666
4330 POINT 4351 -20.0575 7.65062 -28.5268
4331 POINT 4352 -14.4152 8.02942 -27.5571
4332 POINT 4353 25.2637 7.49745 -3.06979
4333 POINT 4354 -12.5533 4.7866 -27.993
4334 POINT 4355 30.2983 8.425979999999999 5
4335 POINT 4356 -10.5593 0.956546 -28.2892
4336 POINT 4357 -20.6815 4.34074 -29.436
4337 POINT 4358 -16.9832 -3.78643 -30.214
4338 POINT 4359 27.8586 10.1938 1.90434
4339 POINT 4360 -10.7061 -0.311912 -28.5435
4340 POINT 4361 31.613 0.310537 3.70884
4341 POINT 4362 -22.6181 6.35397 -29.1758
4342 POINT 4363 -21.9094 -7.2995 -31.0679
4343 POINT 4364 -9.352 8.867800000000001 -26.1981
4344 POINT 4365 -23.7597 -6.38988 -31.1529
4345 POINT 4366 -18.8828 -8.460140000000001 -30.8056
4346 POINT 4367 -11.9265 8.519170000000001 -26.9965
4347 POINT 4368 31.8734 -1.12628 3.64352
4348 POINT 4369 26.0973 3.60409 -3.64531
4349 POINT 4370 29.3212 8.539009999999999 3.14544
4350 POINT 4371 27.611 2.346 -2.05298
4351 POINT 4372 -10.0646 5.27636 -27.4324
4352 POINT 4373 24.4254 6.02669 -5
4353 POINT 4374 28.0928 5.89066 -0.138649
4354 POINT 4375 30.4623 4.8248 3.125
4355 POINT 4376 -21.7012 0.742232 -30.3668
4356 POINT 4377 -20.0841 -0.100227 -30.3455
4357 POINT 4378 30.9725 -0.656585 2.0499
4358 POINT 4379 -23.8871 -8.771280000000001 -31.3737
4359 POINT 4380 26 10 -1.27397
4360 POINT 4381 -10.4782 2.80372 -28.1488
4361 POINT 4382 26 0 -5
4362 POINT 4383 -17.8091 -2.11711 -30.3677
4363 POINT 4384 -23.3182 1.58469 -30.3882
4364 POINT 4385 28.1852 8.242599999999999 0.9733540000000001
4365 POINT 4386 29.3648 2.67409 0.378337
4366 POINT 4387 30.1878 3.34 1.875
4367 POINT 4388 -19.429 2.06373 -30.046
4368 POINT 4389 30.0958 10.1306 5
4369 POINT 4390 -12.7562 -1.12367 -29.4344
4370 POINT 4391 32.6244 0.471519 5
4371 POINT 4392 -11.9231 10.2054 -26.7492
4372 POINT 4393 32.3763 1.92838 5
4373 POINT 4394 -12.5653 0.227834 -29.2299
4374 POINT 4395 -20.8986 -10 -31.3142
4375 POINT 4396 -17.619 -5.31187 -30.7776
4376 POINT 4397 26.0973 4.89738 -3.64531
4377 POINT 4398 26 1.29232 -5
4378 POINT 4399 -9.35012 10.1498 -26.1949
4379 POINT 4400 23.4232 10 -5
4380 POINT 4401 -19.9675 9.0722 -28.6259
4381 POINT 4402 24.4254 7.28538 -5
4382 POINT 4404 -18.0715 -6.84319 -31.0459
4383 POINT 4405 29.1169 10.2058 3.0221
4384 POINT 4406 -20.7105 6.24092 -29.4862
4385 POINT 4407 -14.7353 -2.38488 -30.1678
4386 POINT 4408 -23.1817 4.24704 -30.1518
4387 POINT 4409 -17.0021 5.05008 -29.3131
4388 POINT 4410 -18.7739 4.22769 -29.7465
4389 POINT 4411 -18.0392 -10 -31.1543
4390 POINT 4412 27.7549 5.11352 -1.61187
4391 POINT 4413 -20.5981 -8.528219999999999 -31.4765
4392 POINT 4414 -15.2303 5.87247 -28.8797
4393 POINT 4415 31.7013 5.93696 5
4394 POINT 4416 -22.6472 8.254160000000001 -29.226
4395 POINT 4417 -14.927 3.0672 -29.4689
4396 POINT 4418 27.439 0.12133 -3.72334
4397 POINT 4419 -15.5394 -0.796279 -30.2458
4398 POINT 4420 -12.7416 6.36223 -28.3191
4399 POINT 4421 26.7186 8.818709999999999 -1.60079
4400 POINT 4422 26 2.46486 -5
4401 POINT 4423 -16.2493 9.750970000000001 -28.0958
4402 POINT 4424 -18.0726 9.426539999999999 -28.4792
4403 POINT 4425 26.0973 6.15606 -3.64531
4404 POINT 4426 24.7116 10 -3.78234
4405 POINT 4427 -13.1552 3.88959 -29.0356
4406 POINT 4428 27.8586 10.1938 0.618514
4407 POINT 4429 -22.516 -10 -31.8184
4408 POINT 4430 -14.3534 9.991490000000001 -27.7601
4409 POINT 4431 -10.6541 4.15633 -28.4534
4410 POINT 4433 -24.208 -10 -31.9296
4411 POINT 4434 29.0273 -0.0513277 -1.81534
4412 POINT 4435 -19.5288 -5.28656 -31.4123
4413 POINT 4436 -24.1116 -5.01769 -31.7626
4414 POINT 4437 33.5564 -2.44356 5
4415 POINT 4438 -10.2529 6.85198 -27.7585
4416 POINT 4439 -24.208 -7.54257 -31.9296
4417 POINT 4440 32.6334 3.16181 5
4418 POINT 4441 -18.5562 -0.12087 -30.7844
4419 POINT 4442 -24.0712 -3.44634 -31.6926
4420 POINT 4443 -23.5462 2.81249 -30.7832
4421 POINT 4444 -23.2005 5.63689 -30.1844
4422 POINT 4445 30.8271 6.41965 3.125
4423 POINT 4446 -11.3405 -0.835778 -29.6424
4424 POINT 4447 26 3.78917 -5
4425 POINT 4448 -11.2103 0.535467 -29.4169
4426 POINT 4449 27.8902 8.25447 -0.70309
4427 POINT 4450 -11.0802 1.90671 -29.1914
4428 POINT 4451 -21.8894 -5.85881 -31.8443
4429 POINT 4452 -17.9011 2.04309 -30.4849
4430 POINT 4453 26.5862 7.18793 -3.06979
4431 POINT 4454 29.6912 6.12324 0.95291
4432 POINT 4455 27.4659 2.37485 -3.64531
4433 POINT 4456 26 10 -2.56467
4434 POINT 4457 -20.0392 -6.76843 -31.7593
4435 POINT 4458 32.9883 -1.92525 3.64352
4436 POINT 4459 -21.849 -4.28745 -31.7743
4437 POINT 4460 -23.9952 -0.734706 -31.561
4438 POINT 4461 -15.3362 -3.4887 -30.9244
4439 POINT 4462 31.6785 4.01341 3.125
4440 POINT 4463 -13.3139 -1.92187 -30.4002
4441 POINT 4464 30.9706 -0.655745 0.404255
4442 POINT 4465 -10.1435 8.52272 -27.5691
4443 POINT 4466 24.7116 8.7844 -5
4444 POINT 4467 -14.0542 0.8826000000000001 -30.2074
4445 POINT 4468 32.3807 -1.45687 2.41768
4446 POINT 4469 -19.7884 -10 -31.9552
4447 POINT 4470 -22.4064 0.365434 -31.4395
4448 POINT 4471 -17.3847 -8.255599999999999 -31.662
4449 POINT 4472 26 5.05142 -5
4450 POINT 4473 31.404 2.52861 1.875
4451 POINT 4475 -22.0857 3.63957 -30.8841
4452 POINT 4476 33.7319 -0.33237 5
4453 POINT 4477 -18.77 6.52253 -29.9114
4454 POINT 4478 27.3352 4.25073 -3.64531
4455 POINT 4479 32.0431 7.32911 5
4456 POINT 4480 -16.1822 -1.8151 -31.0739
4457 POINT 4481 -16.9982 7.34492 -29.478
4458 POINT 4482 27.7578 6.62369 -2.17209
4459 POINT 4483 -13.3311 5.2422 -29.3401
4460 POINT 4484 30.6886 1.42187 0.219897
4461 POINT 4485 -22.8968 -8.771280000000001 -32.3381
4462 POINT 4486 -21.699 6.02042 -30.3972
4463 POINT 4487 -15.1841 7.74884 -29.1101
4464 POINT 4488 -12.5975 10.0972 -27.9174
4465 POINT 4489 31.7486 8.64532 5
4466 POINT 4490 -24.529 -8.771280000000001 -32.4854
4467 POINT 4491 -16.9474 -10 -31.7846
4468 POINT 4492 -23.9035 2.21789 -31.402
4469 POINT 4493 -20.6003 8.550520000000001 -29.7219
4470 POINT 4494 27.3683 0.111216 -5
4471 POINT 4495 32.746 5.25876 5
4472 POINT 4496 26 8.7844 -3.78234
4473 POINT 4497 -12.6954 8.2386 -28.5495
4474 POINT 4498 27.5383 10.174 -1.03698
4475 POINT 4499 -18.3737 -3.72271 -31.7317
4476 POINT 4500 -10.8423 5.73195 -28.7795
4477 POINT 4501 33.1441 0.160971 3.70884
4478 POINT 4502 -24.0391 1.10489 -31.6369
4479 POINT 4503 -23.2434 7.58243 -30.2588
4480 POINT 4504 -10.0341 10.1935 -27.3796
4481 POINT 4505 -16.0188 -4.97393 -31.5348
4482 POINT 4506 30.7714 8.75835 3.14544
4483 POINT 4507 31.454 9.96153 5
4484 POINT 4508 24.7116 10 -5
4485 POINT 4509 -11.256 3.25932 -29.4959
4486 POINT 4510 26 6.27922 -5
4487 POINT 4511 29.0787 3.8613 -1.77031
4488 POINT 4512 -17.0282 -0.141513 -31.2233
4489 POINT 4513 -23.7742 4.0403 -31.1781
4490 POINT 4514 34.4478 -3.48764 5
4491 POINT 4515 -24.56 -6.17037 -32.5392
4492 POINT 4516 -19.2534 -8.240209999999999 -32.2333
4493 POINT 4517 -20.8332 1.36257 -31.494
4494 POINT 4518 27.3685 1.23562 -5
4495 POINT 4519 28.8816 -0.0237432 -3.3123
4496 POINT 4520 29.315 5.48372 -0.933119
4497 POINT 4521 -22.4502 2.20503 -31.5154
4498 POINT 4522 31.9356 5.24684 3.125
4499 POINT 4523 -20.694 -2.72361 -32.0937
4500 POINT 4524 -16.5404 -6.62905 -31.8749
4501 POINT 4525 -24.4197 -2.05222 -32.2961
4502 POINT 4526 30.4659 10.0984 3.0221
4503 POINT 4527 -13.4143 0.0929648 -30.7003
4504 POINT 4528 -22.3378 -7.01149 -32.621
4505 POINT 4529 27.4199 5.84655 -3.64531
4506 POINT 4530 -13.9684 -2.95024 -31.2212
4507 POINT 4531 26 10 -3.72378
4508 POINT 4532 -20.1781 3.52653 -31.1945
4509 POINT 4533 -11.926 -1.55224 -30.6565
4510 POINT 4535 33.9074 1.77882 5
4511 POINT 4536 29.4997 10.1876 1.29089
4512 POINT 4537 -19.7914 5.90738 -30.7076
4513 POINT 4538 27.2378 3.1115 -5
4514 POINT 4539 -21.5855 -10 -32.7466
4515 POINT 4540 26 7.5688 -5
4516 POINT 4541 -13.4898 6.48272 -29.6149
4517 POINT 4542 -23.793 5.43015 -31.2107
4518 POINT 4543 -23.1568 -10 -32.9284
4519 POINT 4544 -21.6662 7.9357 -30.4931
4520 POINT 4545 34.0227 -2.95043 3.5138
4521 POINT 4546 -24.8499 -10 -33.0413
4522 POINT 4547 30.7873 -0.576868 -1.33307
4523 POINT 4548 -15.776 2.93233 -30.9394
4524 POINT 4549 -11.001 6.97248 -29.0543
4525 POINT 4550 -19.1209 -1.72647 -32.1483
4526 POINT 4551 -14.0042 3.75472 -30.506
4527 POINT 4552 -24.1315 3.44569 -31.7969
4528 POINT 4553 -18.7662 8.817360000000001 -30.0763
4529 POINT 4554 28.4819 3.35597 -3.64531
4530 POINT 4555 33.0879 6.65091 5
4531 POINT 4556 -11.4318 4.61192 -29.8005
4532 POINT 4557 -16.9637 9.26473 -29.7182
4533 POINT 4558 -16.2641 -8.255599999999999 -32.309
4534 POINT 4559 32.379 -1.4557 0.747301
4535 POINT 4560 27.2378 4.40478 -5
4536 POINT 4561 -10.8249 8.40676 -28.7492
4537 POINT 4562 -15.1379 9.625209999999999 -29.3406
4538 POINT 4563 35.1642 -4.65864 5
4539 POINT 4565 -18.504 -6.55473 -32.5937
4540 POINT 4566 29.4006 8.08023 -0.578821
4541 POINT 4567 33.4975 -2.38851 2.29892
4542 POINT 4568 30.495 1.46397 -1.53267
4543 POINT 4569 26 8.72603 -5
4544 POINT 4570 27.5383 10.174 -2.31135
4545 POINT 4571 -21.0266 -8.240209999999999 -33.0295
4546 POINT 4572 -12.0593 0.400598 -30.8874
4547 POINT 4573 -22.6782 3.43283 -31.9104
4548 POINT 4574 -23.8118 6.82 -31.2432
4549 POINT 4575 -11.9291 1.77184 -30.6619
4550 POINT 4576 -14.3731 -4.05792 -31.9221
4551 POINT 4577 32.2774 6.63899 3.125
4552 POINT 4578 -14.0571 -0.925861 -31.5284
4553 POINT 4579 -24.912 -4.79818 -33.1488
4554 POINT 4580 34.02 3.87576 5
4555 POINT 4581 -15.8019 -10 -32.446
4556 POINT 4582 -25.0052 -7.45075 -33.3103
4557 POINT 4583 34.1785 -0.855008 3.59052
4558 POINT 4584 32.1717 0.761198 0.583842
4559 POINT 4585 -21.8735 5.20852 -31.5734
4560 POINT 4586 -17.3184 6.51911 -30.759
4561 POINT 4587 -15.5467 7.3415 -30.3256
4562 POINT 4588 27.3225 8.47489 -3.78234
4563 POINT 4589 -22.6898 -5.6393 -33.2306
4564 POINT 4590 -15.7706 5.0701 -30.93
4565 POINT 4591 30.9134 5.71629 0.158441
4566 POINT 4592 -16.7469 -3.42071 -32.4378
4567 POINT 4593 -10.7178 10.1306 -28.5637
4568 POINT 4594 -12.4481 -2.44356 -31.5607
4569 POINT 4595 29.206 10.2024 -0.369066
4570 POINT 4596 33.2096 3.86385 3.125
4571 POINT 4597 33.0769 8.31948 5
4572 POINT 4598 31.0057 8.06823 1.27044
4573 POINT 4599 -13.9988 5.89249 -30.4966
4574 POINT 4600 -14.9032 0.74773 -31.6778
4575 POINT 4601 35.6881 -5.92755 5
4576 POINT 4602 27.3225 6.0006 -5
4577 POINT 4603 -15.0181 -5.6188 -32.413
4578 POINT 4604 28.7371 0.00638008 -5
4579 POINT 4605 26 10 -5
4580 POINT 4606 -24.4887 2.85109 -32.4157
4581 POINT 4607 30.6388 4.23149 -1.09156
4582 POINT 4608 32.935 2.37904 1.875
4583 POINT 4609 28.7033 4.95431 -3.64531
4584 POINT 4610 -13.4435 8.35909 -29.8454
4585 POINT 4611 -24.6244 1.73809 -32.6507
4586 POINT 4612 34.832 -4.058 3.5138
4587 POINT 4613 -11.5905 5.85245 -30.0753
4588 POINT 4614 -24.3127 4.54118 -32.1108
4589 POINT 4615 -19.7969 8.24897 -30.9006
4590 POINT 4616 32.795 9.6874 5
4591 POINT 4617 -24.76 0.625081 -32.8857
4592 POINT 4618 -20.4676 -6.48042 -33.3124
4593 POINT 4619 -21.7099 -1.86733 -33.049
4594 POINT 4620 -13.3599 9.80461 -29.4828
4595 POINT 4621 -17.5929 -1.74712 -32.5873
4596 POINT 4622 -17.7809 -10 -33.1143
4597 POINT 4623 29.8982 0.958647 -3.40767
4598 POINT 4624 30.2122 -0.362267 -3.3123
4599 POINT 4625 36 -10 5
4600 POINT 4626 -19.2551 -10 -33.3224
4601 POINT 4627 28.98 6.21674 -2.96656
4602 POINT 4628 -17.349 -4.99088 -32.9131
4603 POINT 4629 -22.2482 7.21532 -31.5012
4604 POINT 4630 28.6064 1.88226 -5
4605 POINT 4631 -23.0355 2.83823 -32.5292
4606 POINT 4632 36.0064 -7.26293 5
4607 POINT 4633 -15.2002 -6.94748 -32.7284
4608 POINT 4634 -23.1712 1.72522 -32.7641
4609 POINT 4635 -12.105 3.12445 -30.9664
4610 POINT 4636 36.1112 -8.63171 5
4611 POINT 4637 -19.9659 5.09548 -31.8839
4612 POINT 4638 -25.3261 -8.679460000000001 -33.8662
4613 POINT 4639 35.6689 -2.14023 5
4614 POINT 4640 27.3225 7.25929 -5
4615 POINT 4641 34.1326 5.9727 5
4616 POINT 4642 -18.3436 5.90622 -31.5457
4617 POINT 4643 -13.9778 7.59116 -30.4602
4618 POINT 4644 -23.8222 -8.771280000000001 -33.9006
4619 POINT 4645 32.5106 8.47723 3.17784
4620 POINT 4646 27.44 10.1667 -3.72378
4621 POINT 4647 -21.5823 2.82536 -32.6426
4622 POINT 4648 -12.6131 -0.403291 -31.8465
4623 POINT 4649 34.4495 -3.48883 2.18104
4624 POINT 4650 -24.3488 5.9715 -32.1733
4625 POINT 4651 28.4757 3.75814 -5
4626 POINT 4652 -25.3572 -6.07856 -33.9199
4627 POINT 4653 -20.1368 -0.870201 -33.1035
4628 POINT 4654 32.3773 -1.45452 -0.860154
4629 POINT 4655 -25.2605 -3.40407 -33.7524
4630 POINT 4656 -18.8004 1.36899 -32.6757
4631 POINT 4657 33.3222 5.96079 3.125
4632 POINT 4658 33.496 -2.38707 0.637135
4633 POINT 4659 -12.8937 -3.48764 -32.3326
4634 POINT 4660 -14.7876 -10 -33.0316
4635 POINT 4661 -24.6699 3.94657 -32.7296
4636 POINT 4662 -25.4788 -10 -34.1305
4637 POINT 4663 -17.3319 8.81395 -30.9138
4638 POINT 4664 32.2125 9.80466 3.05798
4639 POINT 4665 -20.809 7.58707 -31.6688
4640 POINT 4666 -23.135 -6.91967 -34.0017
4641 POINT 4667 -11.7492 7.09297 -30.3502
4642 POINT 4668 34.0387 -0.457419 1.83155
4643 POINT 4669 -15.5098 9.26193 -30.5675
4644 POINT 4670 31.2071 9.99319 1.32326
4645 POINT 4671 28.9098 10.2113 -2.062
4646 POINT 4672 -14.8483 -8.56096 -33.1366
4647 POINT 4673 -16.3514 4.34073 -31.936
4648 POINT 4674 -25.1845 -0.692438 -33.6208
4649 POINT 4675 -17.012 -8.31452 -33.4949
4650 POINT 4676 -19.3126 -4.91657 -33.6318
4651 POINT 4677 -18.1453 3.53294 -32.3762
4652 POINT 4678 -12.0995 5.26222 -30.957
4653 POINT 4679 32.17 0.7623760000000001 -1.05508
4654 POINT 4680 -11.573 8.52725 -30.0451
4655 POINT 4681 34.1216 7.64127 5
4656 POINT 4682 35.8444 -0.0290444 5
4657 POINT 4683 32.5117 5.94887 1.25
4658 POINT 4684 -22.4661 5.00178 -32.5997
4659 POINT 4685 27.3643 8.881130000000001 -5
4660 POINT 4686 36 -10 3.70932
4661 POINT 4687 35.5804 -5.62128 3.18303
4662 POINT 4688 35.2932 3.31554 5
4663 POINT 4689 -21.0106 -10 -34.1357
4664 POINT 4690 32.2372 4.46407 0
4665 POINT 4691 -11.3969 9.96153 -29.74
4666 POINT 4692 28.5603 5.35396 -5
4667 POINT 4693 -14.9936 -4.36294 -33.1504
4668 POINT 4694 36.5606 -4.91663 5
4669 POINT 4695 34.8021 1.16043 3.12271
4670 POINT 4696 -22.5109 -10 -34.3092
4671 POINT 4697 33.3112 7.62936 3.125
4672 POINT 4698 36.1213 -8.56096 3.70932
4673 POINT 4699 36.4728 -3.24777 5
4674 POINT 4700 28.7774 8.580550000000001 -3.531
4675 POINT 4701 -14.9532 -2.79159 -33.0804
4676 POINT 4702 35.7462 1.87563 5
4677 POINT 4703 -13.252 -4.65864 -32.9531
4678 POINT 4704 30.6228 7.67328 -1.37329
4679 POINT 4705 -24.0846 -10 -34.4911
4680 POINT 4706 -16.6389 -10 -33.7736
4681 POINT 4707 29.7531 0.987501 -5
4682 POINT 4708 31.9627 2.97927 -1.25
4683 POINT 4709 -12.7781 1.63697 -32.1323
4684 POINT 4710 30.2634 5.32451 -2.96656
4685 POINT 4711 -14.0256 9.472009999999999 -30.6357
4686 POINT 4712 35.9442 -6.95 3.18303
4687 POINT 4713 30.0724 -0.311912 -5
4688 POINT 4714 30.6974 10.0687 -0.251586
4689 POINT 4715 -18.6088 -0.890844 -33.5425
4690 POINT 4716 -18.3537 8.247960000000001 -31.736
4691 POINT 4717 -24.8512 5.04206 -33.0435
4692 POINT 4718 -25.1144 2.90721 -33.4995
4693 POINT 4719 27.3605 10.1498 -5
4694 POINT 4720 -15.5957 -5.93312 -33.6256
4695 POINT 4721 -23.3296 4.03735 -33.2141
4696 POINT 4722 -15.7992 -1.118 -33.2298
4697 POINT 4723 -18.9756 -8.240209999999999 -34.2136
4698 POINT 4724 31.8716 -1.12523 -2.78378
4699 POINT 4725 -17.2724 1.34834 -33.1147
4700 POINT 4726 34.1106 9.309839999999999 5
4701 POINT 4727 -25.2501 1.7942 -33.7344
4702 POINT 4728 36.9817 -6.21878 5
4703 POINT 4729 31.5732 0.257051 -2.93008
4704 POINT 4730 -20.4726 -8.240209999999999 -34.4071
4705 POINT 4731 -25.8024 -7.35893 -34.691
4706 POINT 4732 -22.3832 6.40284 -32.7006
4707 POINT 4733 -12.2582 6.50274 -31.2318
4708 POINT 4734 29.6224 2.86338 -5
4709 POINT 4735 -21.952 -8.240209999999999 -34.592
4710 POINT 4736 -20.0917 -5.54179 -34.3177
4711 POINT 4737 -25.6089 -2.00996 -34.3559
4712 POINT 4738 36.2033 -4.33173 3.59052
4713 POINT 4739 35.3204 -4.97638 1.87885
4714 POINT 4740 -18.1576 -3.35272 -33.9512
4715 POINT 4741 -13.5139 -5.92755 -33.4068
4716 POINT 4742 28.645 6.94977 -5
4717 POINT 4743 37.236 -10 5
4718 POINT 4744 37.2392 -8.63147 5
4719 POINT 4745 36.1154 -2.66287 3.59052
4720 POINT 4746 35.4058 5.41248 5
4721 POINT 4747 36 -10 2.53815
4722 POINT 4748 32.7449 7.78711 1.30284
4723 POINT 4749 28.8198 10.2128 -3.44833
4724 POINT 4750 -12.7727 3.77474 -32.1229
4725 POINT 4751 -13.6699 -10 -33.6769
4726 POINT 4752 -25.955 -8.679460000000001 -34.9554
4727 POINT 4753 -22.5507 -3.21918 -34.5052
4728 POINT 4754 35.0732 -1.4734 1.71323
4729 POINT 4755 34.0371 -0.456242 0.192636
4730 POINT 4756 -21.3701 4.39431 -33.3319
4731 POINT 4757 -15.8431 0.721589 -33.3058
4732 POINT 4758 -13.6731 -7.26293 -33.6824
4733 POINT 4759 31.3659 2.47395 -3.125
4734 POINT 4760 -13.7255 -8.63171 -33.7732
4735 POINT 4761 35.0903 2.93519 2.96952
4736 POINT 4762 34.6528 -3.77906 0.388317
4737 POINT 4763 -15.4133 -10 -34.1153
4738 POINT 4764 -17.5593 -5.85881 -34.3443
4739 POINT 4765 -20.9945 6.81914 -32.874
4740 POINT 4766 -19.3423 7.58591 -32.5178
4741 POINT 4767 -13.5091 -2.26902 -33.3985
4742 POINT 4768 -25.6086 0.6295770000000001 -34.3554
4743 POINT 4769 -12.2372 8.201409999999999 -31.1954
4744 POINT 4770 -22.4747 -0.507547 -34.3736
4745 POINT 4771 -20.3285 -4.0603 -34.587
4746 POINT 4772 -23.6868 3.44275 -33.8329
4747 POINT 4773 33.5439 9.47208 3.05798
4748 POINT 4774 -15.863 8.81054 -31.7714
4749 POINT 4775 33.7449 -2.64132 -1.11182
4750 POINT 4776 -23.8225 2.32974 -34.0679
4751 POINT 4777 -26.1076 -10 -35.2197
4752 POINT 4778 -25.3159 4.0373 -33.8484
4753 POINT 4779 29.8438 4.46172 -5
4754 POINT 4780 -14.3151 7.36153 -31.9425
4755 POINT 4781 35.3833 7.11343 5
4756 POINT 4782 36.1126 -8.257999999999999 2.05321
4757 POINT 4783 33.8297 1.76065 -0.00228683
4758 POINT 4784 28.6868 8.57161 -5
4759 POINT 4785 -20.0147 -6.52288 -34.8472
4760 POINT 4786 -12.0674 9.6874 -30.9013
4761 POINT 4787 -20.8858 0.592593 -34.2521
4762 POINT 4788 30.4021 10.1061 -1.9373
4763 POINT 4789 32.2211 7.90586 -0.281732
4764 POINT 4790 -16.0441 -7.08581 -34.4023
4765 POINT 4791 -24.6193 -8.679460000000001 -35.2813
4766 POINT 4792 35.8759 -6.63412 1.58154
4767 POINT 4793 -15.5783 -8.63147 -34.3987
4768 POINT 4794 -18.9367 -3.97795 -34.6371
4769 POINT 4795 -22.2336 3.42988 -33.9464
4770 POINT 4796 -12.7673 5.91251 -32.1135
4771 POINT 4797 -19.5495 2.83178 -33.8243
4772 POINT 4798 -22.9021 5.51054 -33.5993
4773 POINT 4799 31.9466 6.42106 -1.53173
4774 POINT 4800 -26.1114 -4.67207 -35.2263
4775 POINT 4801 37.2514 -10 3.70932
4776 POINT 4802 36.9165 -5.90437 3.29077
4777 POINT 4803 37.8811 -7.40275 5
4778 POINT 4804 31.5872 4.07228 -3.125
4779 POINT 4805 30.7692 1.96862 -5
4780 POINT 4806 31.0552 0.566422 -5
4781 POINT 4807 32.9868 -1.92393 -2.78378
4782 POINT 4808 36 -10 1.21538
4783 POINT 4809 32.9781 9.62534 1.35567
4784 POINT 4810 -13.9515 -4.94792 -34.1647
4785 POINT 4811 35.2028 5.03213 2.96952
4786 POINT 4812 30.2878 8.40631 -3.40673
4787 POINT 4813 31.3413 -0.835778 -5
4788 POINT 4814 -14.3642 9.06912 -31.8707
4789 POINT 4815 -24.7121 -10 -35.5781
4790 POINT 4816 -15.1474 2.23759 -33.5692
4791 POINT 4817 -13.6741 -0.22876 -33.6843
4792 POINT 4818 -13.9111 -3.37657 -34.0947
4793 POINT 4819 29.9284 6.05753 -5
4794 POINT 4820 -16.9077 8.243930000000001 -32.58
4795 POINT 4821 -13.3535 3.04538 -33.1289
4796 POINT 4822 37.957 -5.17462 5
4797 POINT 4823 -15.3403 6.74863 -32.7292
4798 POINT 4824 -26.0331 -0.687941 -35.0906
4799 POINT 4825 35.3929 8.83113 5
4800 POINT 4826 -22.8992 -1.82507 -35.1088
4801 POINT 4827 -24.2237 1.22778 -34.7699
4802 POINT 4828 -16.4043 -4.29496 -34.6637
4803 POINT 4829 37.8692 -3.50576 5
4804 POINT 4830 -23.8061 4.54533 -34.1916
4805 POINT 4831 -12.7462 7.61118 -32.0771
4806 POINT 4832 -19.1735 -2.49645 -34.9064
4807 POINT 4833 28.7285 10.1935 -5
4808 POINT 4834 34.9935 7.30377 3.28784
4809 POINT 4835 -25.7401 2.96332 -34.5832
4810 POINT 4836 -19.0031 -10 -35.2948
4811 POINT 4837 -18.0077 -7.01149 -35.121
4812 POINT 4838 -17.4836 -10 -35.1149
4813 POINT 4839 -16.3639 -2.72361 -34.5937
4814 POINT 4840 34.3924 5.02022 1.09452
4815 POINT 4841 37.5793 -8.63147 3.64988
4816 POINT 4842 35.4612 -5.30587 0.104269
4817 POINT 4843 37.7813 -1.83691 5
4818 POINT 4844 -14.162 -6.25006 -34.5294
4819 POINT 4845 -20.4776 -10 -35.5019
4820 POINT 4846 -22.6348 2.32792 -34.6484
4821 POINT 4847 36.7391 -0.647434 3.12271
4822 POINT 4848 36.6789 4.85227 5
4823 POINT 4849 -21.9357 -10 -35.7
4824 POINT 4850 34.1179 3.53542 -0.15548
4825 POINT 4851 36.1126 -8.257999999999999 0.7600980000000001
4826 POINT 4852 -14.2879 -10 -34.7474
4827 POINT 4853 -19.7158 -4.60317 -35.323
4828 POINT 4854 -14.2895 -8.63147 -34.7501
4829 POINT 4855 34.183 7.29186 1.41284
4830 POINT 4856 37.6832 0.0677654 5
4831 POINT 4857 -23.4363 -10 -35.8715
4832 POINT 4858 32.4533 9.75164 -0.220054
4833 POINT 4859 -13.718 1.61083 -33.7603
4834 POINT 4860 30.1723 10.1317 -3.44833
4835 POINT 4861 38.4721 -10 5
4836 POINT 4862 30.9905 3.56696 -5
4837 POINT 4863 -26.297 -1.94966 -35.5477
4838 POINT 4864 37.132 3.41235 5
4839 POINT 4865 33.1422 0.174688 -2.93008
4840 POINT 4866 -21.1579 5.96327 -34.0213
4841 POINT 4867 35.2703 -1.76769 -0.0601501
4842 POINT 4868 35.6968 0.542036 1.24543
4843 POINT 4869 36.6409 1.25724 3.12271
4844 POINT 4870 -13.3481 5.18315 -33.1195
4845 POINT 4871 -19.5493 6.81784 -33.7104
4846 POINT 4872 -17.9134 7.58476 -33.3449
4847 POINT 4873 -26.5566 -5.95245 -35.9974
4848 POINT 4874 34.8439 -4.07741 -1.36573
4849 POINT 4875 -26.4599 -3.27796 -35.8299
4850 POINT 4876 -12.7252 9.309839999999999 -32.0407
4851 POINT 4877 -26.6146 -7.3152 -36.0979
4852 POINT 4878 34.3577 -0.782266 -1.54783
4853 POINT 4879 37.585 1.97244 5
4854 POINT 4880 -24.235 0.112921 -35.4322
4855 POINT 4881 36 -10 -0.0452634
4856 POINT 4882 -26.1213 1.82662 -35.2435
4857 POINT 4883 34.9924 8.990959999999999 3.17979
4858 POINT 4884 36.6565 6.55321 5
4859 POINT 4885 35.9235 -6.84907 -0.162755
4860 POINT 4886 -16.2521 -10 -35.4349
4861 POINT 4887 -24.2522 3.50711 -34.9643
4862 POINT 4888 -26.7189 -10 -36.2784
4863 POINT 4889 -19.9526 -3.12167 -35.5923
4864 POINT 4890 -20.8621 3.39963 -34.7681
4865 POINT 4891 -18.5227 -8.28267 -35.7484
4866 POINT 4892 32.9348 2.39158 -3.125
4867 POINT 4893 30.0495 8.45565 -5
4868 POINT 4894 35.9862 6.77698 3.63797
4869 POINT 4895 -20.0196 -8.28267 -35.9419
4870 POINT 4896 37.5682 -10 2.41849
4871 POINT 4897 -26.7672 -8.63574 -36.3622
4872 POINT 4898 -19.3373 4.40073 -34.5136
4873 POINT 4899 37.8919 -6.64435 3.15197
4874 POINT 4900 31.5712 7.51408 -3.40673
4875 POINT 4901 33.7296 7.47842 -0.122675
4876 POINT 4902 -24.3776 -4.19861 -36.113
4877 POINT 4903 34.1504 1.43463 -1.74275
4878 POINT 4904 -17.715 5.21148 -34.1754
4879 POINT 4905 -15.9211 6.01927 -33.7352
4880 POINT 4906 -18.3601 -5.63804 -35.7313
4881 POINT 4907 -14.9968 8.546799999999999 -32.9664
4882 POINT 4908 -22.0352 5.03503 -34.6696
4883 POINT 4909 31.9305 9.86285 -1.81346
4884 POINT 4910 38.8564 -6.35859 5
4885 POINT 4911 32.5123 -1.55224 -5
4886 POINT 4912 -14.6104 -7.40275 -35.306
4887 POINT 4913 37.1135 -4.7573 1.74249
4888 POINT 4914 31.2118 5.1653 -5
4889 POINT 4915 35.1758 6.76506 1.76297
4890 POINT 4916 -13.3771 7.08333 -33.1698
4891 POINT 4917 -22.1554 -5.03972 -36.1948
4892 POINT 4918 37.514 -8.31706 1.94065
4893 POINT 4919 36.476 4.47192 2.96952
4894 POINT 4920 39.114 -8.771280000000001 5
4895 POINT 4921 -26.4572 0.634074 -35.8252
4896 POINT 4922 36.4095 -3.57261 0.382995
4897 POINT 4923 34.2486 -3.22464 -3.06355
4898 POINT 4924 36.6341 8.254160000000001 5
4899 POINT 4925 34.4393 9.19073 1.46541
4900 POINT 4926 -14.651 -5.23719 -35.3763
4901 POINT 4927 33.2511 6.25404 -1.875
4902 POINT 4928 35.9849 2.3168 1.09223
4903 POINT 4929 -25.5117 -8.679460000000001 -36.6229
4904 POINT 4930 -17.3798 -1.86733 -35.549
4905 POINT 4931 -20.1894 -1.64018 -35.8616
4906 POINT 4932 -14.6106 -3.66584 -35.3063
4907 POINT 4933 -18.853 0.599012 -35.4338
4908 POINT 4934 36.929 3.032 2.96952
4909 POINT 4935 -16.0434 0.371853 -35.1211
4910 POINT 4936 -22.885 4.0344 -35.2502
4911 POINT 4937 -24.6595 -1.2046 -36.1673
4912 POINT 4938 -24.6534 2.40496 -35.6671
4913 POINT 4939 -15.7228 3.64599 -34.5657
4914 POINT 4940 32.9766 4.76923 -3.125
4915 POINT 4941 -14.5702 -2.09449 -35.2363
4916 POINT 4942 35.5413 -5.51352 -1.64245
4917 POINT 4943 32.3381 1.88626 -5
4918 POINT 4944 -17.5167 2.8382 -35.006
4919 POINT 4945 30.0958 10.1306 -5
4920 POINT 4946 -13.9289 4.45378 -34.1255
4921 POINT 4947 36.1199 -8.463369999999999 -0.970648
4922 POINT 4948 37.7651 4.58389 5
4923 POINT 4949 32.6242 0.484059 -5
4924 POINT 4950 -16.0674 7.93462 -33.7278
4925 POINT 4951 -16.5157 -8.771280000000001 -36.0222
4926 POINT 4952 36 -10 -1.27376
4927 POINT 4953 -14.9059 -10 -35.8178
4928 POINT 4954 -19.5617 -6.56534 -36.3819
4929 POINT 4955 -25.6053 -10 -36.9022
4930 POINT 4956 38.8135 -10 3.57895
4931 POINT 4957 -26.7457 -0.607097 -36.3249
4932 POINT 4958 38.2181 3.14397 5
4933 POINT 4959 -13.3663 8.83113 -33.1512
4934 POINT 4960 -25.2943 -7.18657 -36.8695
4935 POINT 4961 -17.2051 -4.07419 -36.0507
4936 POINT 4962 37.5682 -10 1.10372
4937 POINT 4963 -19.655 5.96675 -34.8843
4938 POINT 4964 33.9702 9.3443 -0.0676245
4939 POINT 4965 31.6913 9.90897 -3.31126
4940 POINT 4966 -14.614 -0.254901 -35.3123
4941 POINT 4967 -24.8228 -5.47898 -36.8841
4942 POINT 4968 -16.0873 2.21144 -35.1971
4943 POINT 4969 -14.2934 3.01924 -34.7569
4944 POINT 4970 37.8211 5.83613 5
4945 POINT 4971 -18.0358 6.821 -34.5792
4946 POINT 4972 31.3329 7.56341 -5
4947 POINT 4973 -24.7261 -2.80449 -36.7166
4948 POINT 4974 39.551 -4.95361 5
4949 POINT 4975 39.7558 -10 5
4950 POINT 4976 -21.9383 0.0951525 -36.2579
4951 POINT 4977 37.8267 -6.32994 1.44274
4952 POINT 4978 39.1175 -0.659457 5
4953 POINT 4979 36.0174 0.216012 -0.495038
4954 POINT 4980 36.2483 8.45262 3.17979
4955 POINT 4981 35.0113 -4.36393 -3.06355
4956 POINT 4982 39.4632 -3.28475 5
4957 POINT 4983 39.7558 -7.54257 5
4958 POINT 4984 -25.0136 1.24094 -36.291
4959 POINT 4985 -26.985 -1.88936 -36.7395
4960 POINT 4986 35.591 -2.09371 -1.80061
4961 POINT 4987 35.9661 -7.06312 -1.92297
4962 POINT 4988 33.5564 -2.44356 -5
4963 POINT 4989 38.0753 0.530014 3.12271
4964 POINT 4990 -13.9579 6.35397 -34.1758
4965 POINT 4991 -18.3951 -10 -36.6951
4966 POINT 4992 32.5594 3.4846 -5
4967 POINT 4993 -23.3079 2.96279 -35.99
4968 POINT 4994 -19.9154 -10 -36.876
4969 POINT 4995 -15.0994 -6.38988 -36.1529
4970 POINT 4996 -16.8929 -10 -36.5448
4971 POINT 4997 -24.3329 -10 -37.2212
4972 POINT 4998 36.2731 4.09157 0.93904
4973 POINT 4999 38.8673 -5.60019 3.15197
4974 POINT 5000 37.2594 6.21676 3.63797
4975 POINT 5001 35.1728 6.76691 0.13194
4976 POINT 5002 -20.6663 5.00681 -35.4924
4977 POINT 5003 39.0194 1.24521 5
4978 POINT 5004 38.8127 2.42994 5
4979 POINT 5005 38.7794 -3.93133 3.15197
4980 POINT 5006 -27.3301 -10 -37.3372
4981 POINT 5007 -17.5548 -7.05395 -36.6557
4982 POINT 5008 -15.2269 -8.771280000000001 -36.3737
4983 POINT 5009 -27.1738 -3.20498 -37.0665
4984 POINT 5010 -14.6579 1.58469 -35.3882
4985 POINT 5011 -16.0227 5.212 -34.9467
4986 POINT 5012 -17.8166 4.40421 -35.3869
4987 POINT 5013 -22.6319 -8.507110000000001 -37.2749
4988 POINT 5014 38.0754 -2.74664 1.79247
4989 POINT 5015 33.4474 9.49949 -1.65378
4990 POINT 5016 36.1199 -8.463369999999999 -2.24025
4991 POINT 5017 39.454 -8.771280000000001 3.64988
4992 POINT 5018 -27.4051 -8.6395 -37.4669
4993 POINT 5019 37.3107 -5.05159 -0.0308926
4994 POINT 5020 -20.6858 -5.0052 -37.0343
4995 POINT 5021 37.8266 7.58243 5
4996 POINT 5022 -27.3109 -4.54596 -37.3038
4997 POINT 5023 -17.9842 -4.69942 -36.7366
4998 POINT 5024 38.0073 4.2015 3.69404
4999 POINT 5025 36 -10 -2.56387
5000 POINT 5026 -16.6494 7.21409 -34.7358
5001 POINT 5027 37.8888 -8.012879999999999 0.629339
5002 POINT 5028 -22.1604 -6.79952 -37.2895
5003 POINT 5029 -24.1113 -8.507110000000001 -37.4597
5004 POINT 5030 -27.4269 -7.27148 -37.5047
5005 POINT 5031 -20.1657 1.16686 -36.3776
5006 POINT 5032 -27.3954 -5.9042 -37.4502
5007 POINT 5033 37.5163 2.04638 1.81675
5008 POINT 5034 35.09 2.94773 -2.03048
5009 POINT 5035 37.0331 -1.55717 -0.0848121
5010 POINT 5036 33.7317 -0.31983 -5
5011 POINT 5037 35.8544 8.634840000000001 1.57568
5012 POINT 5038 -23.6397 -6.79952 -37.4744
5013 POINT 5039 -21.4934 4.00418 -36.0835
5014 POINT 5040 -21.7795 -4.1011 -37.2001
5015 POINT 5041 -18.8293 3.40605 -35.9498
5016 POINT 5042 38.4604 2.76158 3.69404
5017 POINT 5043 -21.9497 -1.01971 -36.9202
5018 POINT 5044 -17.5558 -2.67507 -36.6582
5019 POINT 5045 36.6067 -3.86689 -1.39039
5020 POINT 5046 -16.3327 3.4883 -35.6222
5021 POINT 5047 32.9605 8.211029999999999 -3.40673
5022 POINT 5048 -14.5388 4.29609 -35.182
5023 POINT 5049 -23.6873 1.83048 -36.6542
5024 POINT 5050 -24.9945 0.123715 -36.967
5025 POINT 5051 38.8512 4.31551 5
5026 POINT 5052 34.9472 -1.27678 -3.61775
5027 POINT 5053 37.2457 7.93298 3.56589
5028 POINT 5054 -13.9869 8.254160000000001 -34.226
5029 POINT 5055 40.3977 -8.771280000000001 5
5030 POINT 5056 32.6012 5.86225 -5
5031 POINT 5057 36.3056 1.99078 -0.648231
5032 POINT 5058 -19.4342 -8.28267 -37.3285
5033 POINT 5059 35.6526 -5.83275 -3.37171
5034 POINT 5060 31.454 9.96153 -5
5035 POINT 5061 39.1522 -10 2.29975
5036 POINT 5062 34.4478 -3.48764 -5
5037 POINT 5063 -15.5478 -10 -36.9296
5038 POINT 5064 40.4504 -6.13758 5
5039 POINT 5065 -21.7614 -10 -37.6637
5040 POINT 5066 -15.4518 -5.01643 -36.7633
5041 POINT 5067 -15.5478 -7.54257 -36.9296
5042 POINT 5068 40.132 -1.90059 5
5043 POINT 5069 -15.4114 -3.44508 -36.6933
5044 POINT 5070 -14.5402 5.63689 -35.1844
5045 POINT 5071 -14.9033 2.86155 -35.8133
5046 POINT 5072 -23.2211 -10 -37.8632
5047 POINT 5073 -25.2586 -1.13802 -37.4246
5048 POINT 5074 37.0565 5.83641 1.60749
5049 POINT 5075 -17.9071 -5.6805 -37.2661
5050 POINT 5076 -26.2249 -9.99999 -37.9753
5051 POINT 5077 35.9843 -7.16342 -3.37171
5052 POINT 5078 38.9073 5.56775 5
5053 POINT 5079 -22.0163 -2.6196 -37.4694
5054 POINT 5080 33.0193 9.61478 -3.31126
5055 POINT 5081 37.8718 -6.54444 -0.309513
5056 POINT 5082 39.7667 -6.78417 3.15197
5057 POINT 5083 35.4047 8.82776 0.0387027
5058 POINT 5084 33.907 1.8039 -5
5059 POINT 5085 -19.5308 -3.44135 -37.3537
5060 POINT 5086 37.5706 -0.0760353 0.285123
5061 POINT 5087 -18.1166 5.97023 -35.7678
5062 POINT 5088 -16.6656 2.81485 -36.1988
5063 POINT 5089 40.0952 -10 3.57895
5064 POINT 5090 -18.1591 -0.466669 -36.8987
5065 POINT 5091 35.1318 5.32538 -2.03048
5066 POINT 5092 39.4458 3.60147 5
5067 POINT 5093 -21.7025 -5.08219 -37.7295
5068 POINT 5094 -15.3495 -0.693828 -36.5861
5069 POINT 5095 38.1826 5.55693 3.26286
5070 POINT 5096 35.1225 0.846942 -3.61775
5071 POINT 5097 -21.9154 2.93076 -36.821
5072 POINT 5098 -16.8227 1.77252 -36.4709
5073 POINT 5099 36 -10 -3.72334
5074 POINT 5100 -26.3082 -8.560029999999999 -38.1196
5075 POINT 5101 37.5682 -10 -1.21444
5076 POINT 5102 37.1678 -5.35975 -1.66901
5077 POINT 5103 36.8673 8.1403 1.92242
5078 POINT 5104 37.8044 3.82114 1.66356
5079 POINT 5105 -23.7165 0.7407550000000001 -37.3529
5080 POINT 5106 -20.4738 -0.125424 -37.2558
5081 POINT 5107 36.1213 -8.56096 -3.72334
5082 POINT 5108 -17.4272 -8.771280000000001 -37.6024
5083 POINT 5109 36.338 -0.110012 -2.2355
5084 POINT 5110 -16.6327 5.05432 -36.0031
5085 POINT 5111 41.0396 -10 5
5086 POINT 5112 -19.156 5.0106 -36.3601
5087 POINT 5113 38.9633 6.82 5
5088 POINT 5114 35.1642 -4.65864 -5
5089 POINT 5115 39.4648 -8.012879999999999 1.80185
5090 POINT 5116 38.4856 -10 -0.0529242
5091 POINT 5117 -15.2362 2.1881 -36.3899
5092 POINT 5118 -25.3068 -2.74445 -37.9885
5093 POINT 5119 -15.8687 -8.771280000000001 -37.4854
5094 POINT 5120 32.7223 8.26036 -5
5095 POINT 5121 36.4005 -4.62565 -3.18286
5096 POINT 5122 -25.9927 -5.79031 -38.2568
5097 POINT 5123 -26.035 -7.14205 -38.33
5098 POINT 5124 -21.1237 -8.22631 -38.1312
5099 POINT 5125 39.0935 3.93311 3.69404
5100 POINT 5126 -14.5832 7.58243 -35.2588
5101 POINT 5127 36.3091 -2.92769 -3.18286
5102 POINT 5128 37.2876 1.29279 -0.600871
5103 POINT 5129 -15.3933 1.14576 -36.6621
5104 POINT 5130 34.9475 9.00797 -1.49535
5105 POINT 5131 33.9487 4.18155 -5
5106 POINT 5132 40.2471 1.70272 5
5107 POINT 5133 40.0404 2.88744 5
5108 POINT 5134 40.4538 0.517992 5
5109 POINT 5135 -15.9002 -6.16911 -37.5399
5110 POINT 5136 -25.4625 -4.07464 -38.2582
5111 POINT 5137 -16.704 6.40616 -35.9746
5112 POINT 5138 -20.142 3.9739 -36.8936
5113 POINT 5139 38.4095 7.21223 3.56589
5114 POINT 5140 -18.5717 -1.8188 -37.6134
5115 POINT 5141 -15.1488 4.13841 -36.2384
5116 POINT 5142 41.145 -4.73259 5
5117 POINT 5143 -25.2211 -9.99999 -38.5548
5118 POINT 5144 -20.3099 -4.06657 -38.0396
5119 POINT 5145 -15.7621 -2.04596 -37.3007
5120 POINT 5146 41.3437 -7.4369 5
5121 POINT 5147 -18.3519 -6.96157 -38.0364
5122 POINT 5148 -20.6159 -1.36349 -37.8492
5123 POINT 5149 37.5591 -8.531560000000001 -2.17996
5124 POINT 5150 -23.71 -0.399239 -37.9788
5125 POINT 5151 -16.9656 4.38086 -36.5797
5126 POINT 5152 35.6881 -5.92755 -5
5127 POINT 5153 -19.3066 -10 -38.2752
5128 POINT 5154 39.1495 5.18536 3.69404
5129 POINT 5155 34.469 7.78358 -3.24767
5130 POINT 5156 39.9446 -1.33825 2.95695
5131 POINT 5157 37.3538 -1.8832 -1.82528
5132 POINT 5158 -17.8051 -10 -38.1262
5133 POINT 5159 37.8399 7.58125 2.27594
5134 POINT 5160 40.4613 -5.37918 3.15197
5135 POINT 5161 -22.2064 1.61096 -37.6634
5136 POINT 5162 39.9466 4.67878 5
5137 POINT 5163 37.0535 5.83825 -0.0235404
5138 POINT 5164 32.795 9.6874 -5
5139 POINT 5165 39.8948 2.03436 3.69404
5140 POINT 5166 39.688 3.21908 3.69404
5141 POINT 5167 38.9023 -0.14878 1.07966
5142 POINT 5168 37.5682 -10 -2.50028
5143 POINT 5169 37.9797 5.17658 1.23238
5144 POINT 5170 -15.1501 5.4792 -36.2408
5145 POINT 5171 36 -10 -5
5146 POINT 5172 -16.1897 -10 -38.0413
5147 POINT 5173 36.0064 -7.26293 -5
5148 POINT 5174 36.9615 -6.11851 -3.46148
5149 POINT 5175 -17.9783 3.3827 -37.1426
5150 POINT 5176 -25.0371 -8.42037 -38.8653
5151 POINT 5177 39.7775 -6.02576 1.30394
5152 POINT 5178 -20.6658 -6.50898 -38.5713
5153 POINT 5179 36.1112 -8.63171 -5
5154 POINT 5180 -15.4817 3.46495 -36.815
5155 POINT 5181 36.8642 8.14195 0.287185
5156 POINT 5182 35.6654 -2.11077 -5
5157 POINT 5183 -20.5467 -2.58507 -38.3089
5158 POINT 5184 -18.1354 2.34037 -37.4147
5159 POINT 5185 33.9905 6.5592 -5
5160 POINT 5186 36.4492 4.47602 -2.03048
5161 POINT 5187 34.5293 9.159649999999999 -3.13532
5162 POINT 5188 39.0735 -4.84107 -0.0555546
5163 POINT 5189 37.5757 3.06755 -0.754064
5164 POINT 5190 -20.2329 -5.04766 -38.569
5165 POINT 5191 40.0373 5.9715 5
5166 POINT 5192 41.2698 -8.771280000000001 3.66441
5167 POINT 5193 -23.8126 -1.97862 -38.5923
5168 POINT 5194 -15.1515 6.82 -36.2432
5169 POINT 5195 40.5412 3.96475 5
5170 POINT 5196 -16.2526 -4.79566 -38.1502
5171 POINT 5197 39.3357 3.55072 2.38808
5172 POINT 5198 -16.3449 -7.45018 -38.3103
5173 POINT 5199 -24.7863 -7.01421 -39.0479
5174 POINT 5200 -17.223 5.51417 -36.8736
5175 POINT 5201 37.8912 -0.402059 -1.45534
5176 POINT 5202 41.9856 -8.665609999999999 5
5177 POINT 5203 40.0677 -10 1.09591
5178 POINT 5204 37.2514 -10 -3.72334
5179 POINT 5205 -20.4802 2.72222 -37.823
5180 POINT 5206 38.3695 -3.65638 -1.41505
5181 POINT 5207 -22.2442 0.510913 -38.3383
5182 POINT 5208 41.4682 -0.723145 5
5183 POINT 5209 -24.1033 -9.99999 -39.2002
5184 POINT 5210 41.8138 -3.34844 5
5185 POINT 5211 -21.2006 -10 -39.039
5186 POINT 5212 42.0383 -6.03191 5
5187 POINT 5213 -18.2911 4.51608 -37.4069
5188 POINT 5214 -24.3545 -5.33391 -39.1393
5189 POINT 5215 -15.8145 2.7915 -37.3916
5190 POINT 5216 34.0506 7.93452 -5
5191 POINT 5217 35.8407 0.0129583 -5
5192 POINT 5218 39.3287 6.54609 3.15213
5193 POINT 5219 35.2662 3.33218 -5
5194 POINT 5220 36.3927 1.92372 -3.72358
5195 POINT 5221 36.4318 8.363429999999999 -1.23949
5196 POINT 5222 40.9681 -10 2.31428
5197 POINT 5223 -15.9717 1.74917 -37.6637
5198 POINT 5224 -23.8432 -3.59903 -39.0772
5199 POINT 5225 42.2973 -10 5
5200 POINT 5226 40.1889 4.29639 3.69404
5201 POINT 5227 -15.6698 4.59023 -37.1409
5202 POINT 5228 41.3546 -6.67849 3.15197
5203 POINT 5229 36.5606 -4.91627 -5
5204 POINT 5230 37.5793 -8.63147 -3.71848
5205 POINT 5231 39.4648 -8.012879999999999 -0.566505
5206 POINT 5232 37.8369 7.5831 0.618927
5207 POINT 5233 37.0562 -0.9439959999999999 -3.61775
5208 POINT 5234 -16.1288 0.706837 -37.9359
5209 POINT 5235 36.4693 -3.21831 -5
5210 POINT 5236 -18.2244 -8.678900000000001 -38.9831
5211 POINT 5237 37.6082 0.966763 -2.34133
5212 POINT 5238 39.39 1.42831 0.856449
5213 POINT 5239 38.7839 6.95183 1.89697
5214 POINT 5240 35.9122 7.07207 -2.99306
5215 POINT 5241 -23.9367 -8.42037 -39.5007
5216 POINT 5242 -18.4435 1.04808 -38.293
5217 POINT 5243 37.8609 -7.30284 -3.46148
5218 POINT 5244 38.9069 -2.17524 -1.04512
5219 POINT 5245 -16.6659 -8.678900000000001 -38.8661
5220 POINT 5246 -22.3807 -0.740934 -38.9094
5221 POINT 5247 41.9124 -10 3.59489
5222 POINT 5248 40.3809 -8.012879999999999 0.621678
5223 POINT 5249 38.8673 -5.59983 -1.84803
5224 POINT 5250 35.9317 1.94731 -5
5225 POINT 5251 -18.4327 -10 -39.2133
5226 POINT 5252 41.6369 1.74066 5
5227 POINT 5253 34.1106 9.309839999999999 -5
5228 POINT 5254 41.4302 2.92538 5
5229 POINT 5255 39.511 4.90616 1.9569
5230 POINT 5256 -15.6885 5.9715 -37.1733
5231 POINT 5257 36.9817 -6.21841 -5
5232 POINT 5258 -16.6973 -6.07673 -38.9206
5233 POINT 5259 41.0421 5.04206 5
5234 POINT 5260 -20.7581 1.38933 -38.65
5235 POINT 5261 -16.6033 -3.39655 -38.7577
5236 POINT 5262 -16.0027 3.91678 -37.7175
5237 POINT 5263 -20.5382 -8.22631 -39.5179
5238 POINT 5264 -16.8185 -10 -39.1305
5239 POINT 5265 -18.736 3.47596 -38.1776
5240 POINT 5266 37.236 -10 -5
5241 POINT 5267 35.3079 5.70983 -5
5242 POINT 5268 37.2392 -8.63147 -5
5243 POINT 5269 38.1632 -4.41514 -3.20753
5244 POINT 5270 -19.1062 -5.55565 -39.3429
5245 POINT 5271 -23.0389 -9.99999 -39.8147
5246 POINT 5272 35.8053 8.65668 -3.13532
5247 POINT 5273 41.2807 -8.012879999999999 1.81638
5248 POINT 5274 39.107 2.79713 -0.0295446
5249 POINT 5275 38.0719 -2.71718 -3.20753
5250 POINT 5276 38.6239 -0.80642 -1.93111
5251 POINT 5277 -16.5414 -0.645296 -38.6505
5252 POINT 5278 42.4827 -1.96428 5
5253 POINT 5279 -22.4728 -2.33455 -39.4911
5254 POINT 5280 41.2808 -0.160803 2.95695
5255 POINT 5281 41.0779 3.25702 3.69404
5256 POINT 5282 -20.0583 -10 -39.6985
5257 POINT 5283 41.6264 -2.7861 2.95695
5258 POINT 5284 42.9316 -7.33122 5
5259 POINT 5285 39.4443 -0.694107 -0.675181
5260 POINT 5286 -18.8561 -0.304051 -39.0076
5261 POINT 5287 -23.2712 -6.73241 -39.9113
5262 POINT 5288 40.3777 5.66732 3.15213
5263 POINT 5289 39.1522 -10 -2.43695
5264 POINT 5290 -18.5783 -4.16282 -39.4532
5265 POINT 5291 42.354 0.576033 5
5266 POINT 5292 -20.9252 0.18084 -39.2854
5267 POINT 5293 40.9427 -3.43268 1.10892
5268 POINT 5294 35.3123 7.40668 -5
5269 POINT 5295 -22.8409 -5.04987 -39.9671
5270 POINT 5296 37.8339 7.58494 -0.986121
5271 POINT 5297 41.2117 2.27639 3.00689
5272 POINT 5298 43.2433 -8.665609999999999 5
5273 POINT 5299 40.0677 -10 -1.22228
5274 POINT 5300 -22.3955 -3.56451 -39.9041
5275 POINT 5301 -16.1909 5.04206 -38.0435
5276 POINT 5302 38.7811 6.95387 0.263101
5277 POINT 5303 40.7218 1.35556 1.65099
5278 POINT 5304 -16.4472 2.87741 -38.4874
5279 POINT 5305 39.6864 6.2616 1.52572
5280 POINT 5306 40.2387 -2.24799 -0.250577
5281 POINT 5307 -17.1421 -7.3578 -39.691
5282 POINT 5308 41.9715 4.0373 5
5283 POINT 5309 -16.6043 1.83508 -38.7595
5284 POINT 5310 39.7667 -6.78417 -1.84803
5285 POINT 5311 39.1613 0.674715 -1.56117
5286 POINT 5312 37.8811 -7.40275 -5
5287 POINT 5313 -16.954 -1.99743 -39.3652
5288 POINT 5314 38.8135 -10 -3.65406
5289 POINT 5315 -19.0342 2.1911 -39.0756
5290 POINT 5316 37.2296 6.2227 -2.99306
5291 POINT 5317 38.3561 4.81424 -1.71664
5292 POINT 5318 -18.9982 -1.54212 -39.601
5293 POINT 5319 42.8577 -8.665609999999999 3.66441
5294 POINT 5320 40.9843 -10 -0.0605847
5295 POINT 5321 -22.4621 -8.115640000000001 -40.3731
5296 POINT 5322 39.2823 4.15257 -0.460724
5297 POINT 5323 43.555 -10 5
5298 POINT 5324 -21.0424 -1.08681 -39.8368
5299 POINT 5325 -17.2947 -8.678900000000001 -39.9553
5300 POINT 5326 37.957 -5.17389 -5
5301 POINT 5327 -21.9469 -9.99999 -40.4452
5302 POINT 5328 40.8786 -6.12997 -0.254279
5303 POINT 5329 35.3929 8.83113 -5
5304 POINT 5330 40.6527 3.79276 1.70093
5305 POINT 5331 37.8657 -3.47594 -5
5306 POINT 5332 -19.4559 -6.90521 -40.2258
5307 POINT 5333 37.7744 -1.77798 -5
5308 POINT 5334 43.5533 -4.63928 5
5309 POINT 5335 38.3264 0.132779 -3.72358
5310 POINT 5336 42.1275 0.996372 3.3394
5311 POINT 5337 37.7518 3.452 -3.72358
5312 POINT 5338 41.8849 -10 1.10959
5313 POINT 5339 36.6254 4.86047 -5
5314 POINT 5340 42.2953 -1.40194 2.95695
5315 POINT 5341 37.2427 7.9347 -2.8534
5316 POINT 5342 -16.9629 0.670455 -39.3805
5317 POINT 5343 43.1676 -10 3.59489
5318 POINT 5344 40.7761 -0.766852 0.119358
5319 POINT 5345 38.8783 2.04354 -2.44717
5320 POINT 5346 -17.4474 -10 -40.2197
5321 POINT 5347 -18.929 -2.7637 -40.0606
5322 POINT 5348 -18.9716 -8.678900000000001 -40.3988
5323 POINT 5349 -16.6556 4.0373 -38.8484
5324 POINT 5350 -19.3856 1.01577 -39.6843
5325 POINT 5351 38.4721 -10 -5
5326 POINT 5352 43.3684 -0.665104 5
5327 POINT 5353 -20.9964 -2.3001 -40.3318
5328 POINT 5354 42.82 2.96332 5
5329 POINT 5355 41.5139 4.54526 2.8687
5330 POINT 5356 42.7838 -10 2.32883
5331 POINT 5357 -17.4516 -4.67081 -40.227
5332 POINT 5358 -21.7698 -6.45261 -40.7606
5333 POINT 5359 -19.1676 -10 -40.619
5334 POINT 5360 37.8654 0.156377 -5
5335 POINT 5361 39.454 -8.771280000000001 -3.71848
5336 POINT 5362 37.2909 3.4756 -5
5337 POINT 5363 40.4607 -5.37415 -1.84803
5338 POINT 5364 38.4174 2.06714 -3.72358
5339 POINT 5365 36.6297 6.55731 -5
5340 POINT 5366 40.4931 0.601971 -0.766635
5341 POINT 5367 -21.3711 -5.01627 -40.8099
5342 POINT 5368 39.4116 -1.56919 -3.20753
5343 POINT 5369 40.566 -8.117089999999999 -2.12473
5344 POINT 5370 39.7567 -4.18945 -3.20753
5345 POINT 5371 -21.3432 -8.115640000000001 -41.019
5346 POINT 5372 -17.3755 -0.681678 -40.0952
5347 POINT 5373 -20.904 -3.52997 -40.7561
5348 POINT 5374 43.8963 -1.92682 5
5349 POINT 5375 40.8767 5.19862 1.26847
5350 POINT 5376 -19.521 -0.211355 -40.3031
5351 POINT 5377 38.8564 -6.35823 -5
5352 POINT 5378 39.118 6.70693 -1.30101
5353 POINT 5379 40.0076 5.99301 -0.0453119
5354 POINT 5380 -17.0799 2.96332 -39.5832
5355 POINT 5381 43.3914 -3.90164 3.34867
5356 POINT 5382 -20.801 -9.99999 -41.1067
5357 POINT 5383 37.9564 2.09073 -5
5358 POINT 5384 41.482 -8.117089999999999 -0.936542
5359 POINT 5385 40.424 3.03917 -0.716691
5360 POINT 5386 39.114 -8.771280000000001 -5
5361 POINT 5387 44.2221 -3.25512 5
5362 POINT 5388 44.4466 -5.93859 5
5363 POINT 5389 43.5824 1.82662 5
5364 POINT 5390 38.474 5.28867 -3.30997
5365 POINT 5391 36.6341 8.254160000000001 -5
5366 POINT 5392 43.142 -0.244764 3.3394
5367 POINT 5393 42.7076 -4.54822 1.50064
5368 POINT 5394 44.5625 -7.30135 5
5369 POINT 5395 39.6005 3.8802 -2.03355
5370 POINT 5396 43.6673 -5.63266 3.21658
5371 POINT 5397 -19.7718 -1.48807 -40.7376
5372 POINT 5398 -17.6394 -1.9434 -40.5523
5373 POINT 5399 40.0952 -10 -3.65406
5374 POINT 5400 42.1079 -0.839597 0.913897
5375 POINT 5401 38.4066 7.21419 -2.8534
5376 POINT 5402 42.4059 3.50731 2.8687
5377 POINT 5403 37.7284 4.53025 -5
5378 POINT 5404 38.8549 3.12178 -3.72358
5379 POINT 5405 39.949 -0.0880576 -2.83759
5380 POINT 5406 -17.8964 -5.95188 -40.9974
5381 POINT 5407 44.7775 -10 5
5382 POINT 5408 -17.8023 -3.2717 -40.8345
5383 POINT 5409 -17.9543 -7.31464 -41.0978
5384 POINT 5410 40.9764 -10 -2.43926
5385 POINT 5411 42.9835 -6.27925 1.36855
5386 POINT 5412 43.6564 -1.28262 3.6101
5387 POINT 5413 -17.4611 1.82662 -40.2435
5388 POINT 5414 44.8742 -8.63574 5
5389 POINT 5415 -18.0586 -10 -41.2784
5390 POINT 5416 42.0388 1.5976 0.9638409999999999
5391 POINT 5417 41.8933 -10 -1.22445
5392 POINT 5418 -18.107 -8.63574 -41.3622
5393 POINT 5419 44.2542 0.634074 5
5394 POINT 5420 44.4658 -8.665609999999999 3.76957
5395 POINT 5421 -19.684 -2.70988 -41.224
5396 POINT 5422 -20.3172 -5.51017 -41.4963
5397 POINT 5423 37.7943 5.84023 -5
5398 POINT 5424 38.3939 3.14538 -5
5399 POINT 5425 40.4262 -2.81017 -3.20753
5400 POINT 5426 -20.372 -6.85903 -41.5911
5401 POINT 5427 39.5504 -4.94821 -5
5402 POINT 5428 39.7558 -10 -5
5403 POINT 5429 39.1141 -0.6299940000000001 -5
5404 POINT 5430 39.4591 -3.25025 -5
5405 POINT 5431 39.7558 -7.54257 -5
5406 POINT 5432 39.666 1.28077 -3.72358
5407 POINT 5433 -19.7872 -9.99999 -41.6921
5408 POINT 5434 43.3304 2.23236 3.23684
5409 POINT 5435 -19.841 -4.0403 -41.4959
5410 POINT 5436 44.0602 -2.51748 3.34867
5411 POINT 5437 39.5124 2.49177 -3.72358
5412 POINT 5438 -17.797 0.634074 -40.8252
5413 POINT 5439 41.9697 4.03479 1.01379
5414 POINT 5440 40.8678 -6.88837 -3.40625
5415 POINT 5441 -19.8705 -8.560029999999999 -41.8365
5416 POINT 5442 44.7609 -10 3.70986
5417 POINT 5443 41.1735 4.90241 -0.294842
5418 POINT 5444 40.4243 3.03884 -2.32084
5419 POINT 5445 44.8311 -0.607097 5
5420 POINT 5446 40.3227 5.71687 -1.61994
5421 POINT 5447 44.5606 -6.93198 3.21658
5422 POINT 5448 42.9546 0.317578 1.29635
5423 POINT 5449 37.8266 7.58243 -5
5424 POINT 5450 39.2051 1.30436 -5
5425 POINT 5451 41.9798 -6.23418 -1.8125
5426 POINT 5452 39.5771 4.95845 -3.30997
5427 POINT 5453 40.9636 -1.32903 -2.83759
5428 POINT 5454 42.8235 -5.06418 -0.18403
5429 POINT 5455 41.2808 -0.160803 -2.04305
5430 POINT 5456 39.0514 2.51537 -5
5431 POINT 5457 41.6259 -2.78106 -2.04305
5432 POINT 5458 -18.0854 -0.607097 -41.3249
5433 POINT 5459 44.401 -10 2.43363
5434 POINT 5460 38.8314 4.20002 -5
5435 POINT 5461 42.1194 -3.87949 -1.54353
5436 POINT 5462 41.1368 2.08833 -1.91333
5437 POINT 5463 43.5869 -8.26637 0.68629
5438 POINT 5464 43.469 -0.720278 1.56705
5439 POINT 5465 44.0368 1.0592 3.23684
5440 POINT 5466 42.9945 -6.56066 -0.367041
5441 POINT 5467 40.3977 -8.771280000000001 -5
5442 POINT 5468 45.3098 -1.88936 5
5443 POINT 5469 41.2782 -8.771280000000001 -3.72078
5444 POINT 5470 39.6564 6.286 -3.20428
5445 POINT 5471 39.9602 3.5428 -3.72358
5446 POINT 5472 42.9439 2.79496 1.34401
5447 POINT 5473 -18.3248 -1.88936 -41.7395
5448 POINT 5474 40.4498 -6.13255 -5
5449 POINT 5475 40.1287 -1.87097 -5
5450 POINT 5476 44.5575 0.0250022 3.53531
5451 POINT 5477 43.4984 -10 -0.0527671
5452 POINT 5478 44.4867 -8.26637 1.881
5453 POINT 5479 38.8974 5.51001 -5
5454 POINT 5480 42.3902 -8.117089999999999 -2.12703
5455 POINT 5481 -18.6699 -10 -42.3372
5456 POINT 5482 46 -10 5
5457 POINT 5483 45.6874 -3.20498 5
5458 POINT 5484 41.5618 -5.47836 -3.40625
5459 POINT 5485 -18.5136 -3.20498 -42.0664
5460 POINT 5486 43.8728 -1.95514 1.30562
5461 POINT 5487 41.97 4.03447 -0.567257
5462 POINT 5488 42.7516 0.64676 -0.232803
5463 POINT 5489 39.4889 3.57001 -5
5464 POINT 5490 -18.7448 -8.6395 -42.4669
5465 POINT 5491 46.1498 -8.6395 5
5466 POINT 5492 45.9615 -4.54596 5
5467 POINT 5493 -18.6506 -4.54596 -42.3038
5468 POINT 5494 41.1738 4.90211 -1.90496
5469 POINT 5495 -18.7666 -7.27148 -42.5047
5470 POINT 5496 -18.7351 -5.9042 -42.4502
5471 POINT 5497 44.401 -10 1.11756
5472 POINT 5498 46.1935 -7.27148 5
5473 POINT 5499 46.1305 -5.9042 5
5474 POINT 5500 45.0779 -1.24127 3.53531
5475 POINT 5501 43.8013 1.47475 1.67881
5476 POINT 5502 41.0396 -10 -5
5477 POINT 5503 38.9633 6.82 -5
5478 POINT 5504 42.2954 -1.40178 -2.04305
5479 POINT 5505 41.9207 -10 -3.65658
5480 POINT 5506 42.7152 3.10694 -0.178715
5481 POINT 5507 43.4929 -0.779239 0.00270857
5482 POINT 5508 40.4538 0.517992 -5
5483 POINT 5509 44.3504 0.458178 1.94746
5484 POINT 5510 42.8006 -10 -2.44157
5485 POINT 5511 40.3001 1.729 -5
5486 POINT 5512 40.6854 5.38257 -3.20428
5487 POINT 5513 43.5979 -8.547779999999999 -1.0493
5488 POINT 5514 46 -9.99999 3.70986
5489 POINT 5515 41.1438 -4.72253 -5
5490 POINT 5516 40.1464 2.94 -5
5491 POINT 5517 41.3437 -7.4369 -5
5492 POINT 5518 45.479 -2.48047 3.24708
5493 POINT 5519 41.212 2.27607 -3.59726
5494 POINT 5520 44.8301 -0.60096 2.22021
5495 POINT 5521 39.9367 4.62104 -5
5496 POINT 5522 41.0583 3.48707 -3.59726
5497 POINT 5523 46.1667 -8.560029999999999 3.70986
5498 POINT 5524 42.4557 -6.7827 -3.40625
5499 POINT 5525 45.8098 -3.81179 3.24708
5500 POINT 5526 43.602 1.80634 0.144242
5501 POINT 5527 41.9702 4.03415 -2.19451
5502 POINT 5528 43.9886 -2.4711 -0.379052
5503 POINT 5529 41.9245 1.32555 -3.18975
5504 POINT 5530 46.1004 -5.55046 3.10089
5505 POINT 5531 40.0373 5.9715 -5
5506 POINT 5532 46 -9.99999 2.53915
5507 POINT 5533 46.2063 -6.89945 3.10089
5508 POINT 5534 45.2779 -1.82176 1.95685
5509 POINT 5535 41.9856 -8.665609999999999 -5
5510 POINT 5536 40.5942 3.99103 -5
5511 POINT 5537 42.7155 3.1066 -1.78267
5512 POINT 5538 41.4684 -0.722985 -5
5513 POINT 5539 42.8661 -8.665609999999999 -3.72078
5514 POINT 5540 44.3783 0.401596 0.37507
5515 POINT 5541 41.8134 -3.34324 -5
5516 POINT 5542 42.0377 -6.02688 -5
5517 POINT 5543 41.5142 4.54495 -3.5212
5518 POINT 5544 43.9246 -5.16839 -1.74225
5519 POINT 5545 44.4091 -10 -1.21644
5520 POINT 5546 42.2973 -10 -5
5521 POINT 5547 45.6377 -3.07068 1.69733
5522 POINT 5548 44.8542 -0.659857 0.6314419999999999
5523 POINT 5549 43.3953 2.13312 -1.3795
5524 POINT 5550 43.1761 -10 -3.65658
5525 POINT 5551 44.0956 -6.66487 -1.92526
5526 POINT 5552 46.1929 -8.15892 1.97753
5527 POINT 5553 42.9391 0.08457729999999999 -3.18975
5528 POINT 5554 46 -9.99999 1.21601
5529 POINT 5555 45.9997 -4.83347 1.56484
5530 POINT 5556 41.6369 1.74066 -5
5531 POINT 5557 41.0421 5.04206 -5
5532 POINT 5558 41.4832 2.95166 -5
5533 POINT 5559 43.5066 -4.41256 -3.336
5534 POINT 5560 45.2976 -1.88269 0.38395
5535 POINT 5561 46.1895 -6.53273 1.43316
5536 POINT 5562 44.2029 0.748265 -1.143
5537 POINT 5563 42.4062 3.50697 -3.5212
5538 POINT 5564 44.506 -8.547779999999999 -2.2398
5539 POINT 5565 42.4829 -1.96396 -5
5540 POINT 5566 44.4091 -10 -2.503
5541 POINT 5567 42.9316 -7.33122 -5
5542 POINT 5568 43.6805 -1.34142 -2.95424
5543 POINT 5569 46.1929 -8.15892 0.688067
5544 POINT 5570 43.1143 2.55284 -3.07117
5545 POINT 5571 42.354 0.576033 -5
5546 POINT 5572 44.878 -0.718881 -0.90848
5547 POINT 5573 43.9706 -5.39007 -3.40625
5548 POINT 5574 46 -9.99999 -0.0449491
5549 POINT 5575 43.2433 -8.665609999999999 -5
5550 POINT 5576 45.7609 -3.58767 0.0121176
5551 POINT 5577 41.9715 4.0373 -5
5552 POINT 5578 46.073 -5.33505 -0.114974
5553 POINT 5579 44.1762 -3.03328 -3.336
5554 POINT 5580 43.555 -10 -5
5555 POINT 5581 43.8467 1.39671 -3.07117
5556 POINT 5582 46.2032 -6.813 -0.288609
5557 POINT 5583 43.5527 -4.63425 -5
5558 POINT 5584 44.5715 -7.21339 -3.51901
5559 POINT 5585 44.4658 -8.665609999999999 -3.78234
5560 POINT 5586 45.4549 -2.3968 -1.28734
5561 POINT 5587 46 -9.99999 -1.27397
5562 POINT 5588 46.1738 -8.46467 -1.02554
5563 POINT 5589 43.3685 -0.664944 -5
5564 POINT 5590 42.82 2.96332 -5
5565 POINT 5591 44.5838 -0.0325393 -2.81048
5566 POINT 5592 44.7609 -10 -3.72378
5567 POINT 5593 45.8694 -4.1026 -1.672
5568 POINT 5594 43.8964 -1.92666 -5
5569 POINT 5595 45.0997 -1.30141 -2.81048
5570 POINT 5596 46.1082 -5.61646 -1.85411
5571 POINT 5597 44.2222 -3.25496 -5
5572 POINT 5598 44.4466 -5.93859 -5
5573 POINT 5599 43.5824 1.82662 -5
5574 POINT 5600 46.2114 -7.09556 -2.03802
5575 POINT 5601 44.5625 -7.30135 -5
5576 POINT 5602 46 -9.99999 -2.56467
5577 POINT 5603 46.1738 -8.46467 -2.29917
5578 POINT 5604 44.7775 -10 -5
5579 POINT 5605 44.8742 -8.63574 -5
5580 POINT 5606 45.6191 -2.99736 -3.23308
5581 POINT 5607 44.2542 0.634074 -5
5582 POINT 5608 45.912 -4.32521 -3.23308
5583 POINT 5609 46 -9.99999 -3.72378
5584 POINT 5610 46.132 -5.83037 -3.43512
5585 POINT 5611 46.2128 -7.1829 -3.43512
5586 POINT 5612 44.8311 -0.607097 -5
5587 POINT 5613 46.1667 -8.560029999999999 -3.72378
5588 POINT 5614 45.3098 -1.88936 -5
5589 POINT 5615 46 -10 -5
5590 POINT 5616 45.6874 -3.20498 -5
5591 POINT 5617 46.1498 -8.6395 -5
5592 POINT 5618 45.9615 -4.54596 -5
5593 POINT 5619 46.1935 -7.27148 -5
5594 POINT 5620 46.1305 -5.9042 -5
5595
5596 END POINTS LIST
5597
5598
5599
5600 BEGIN MESH STRUCTURE DESCRIPTION
5601
5602 CONVEX 0 'GT_PK(3,2)' 3206 3293 3374 3094 3179 2990 3290 3352 3156 3331
5603 CONVEX 1 'GT_PK(3,2)' 2447 2537 2630 2574 2668 2709 2533 2605 2654 2590
5604 CONVEX 2 'GT_PK(3,2)' 1534 1459 1386 1501 1431 1474 1447 1377 1414 1356
5605 CONVEX 3 'GT_PK(3,2)' 1480 1555 1622 1502 1569 1516 1462 1537 1483 1446
5606 CONVEX 4 'GT_PK(3,2)' 2376 2312 2258 2434 2372 2492 2362 2308 2419 2343
5607 CONVEX 5 'GT_PK(3,2)' 3564 3453 3334 3357 3261 3171 3545 3451 3340 3525
5608 CONVEX 6 'GT_PK(3,2)' 3331 3352 3374 3259 3285 3197 3455 3470 3378 3574
5609 CONVEX 7 'GT_PK(3,2)' 2590 2605 2630 2746 2758 2906 2713 2730 2869 2835
5610 CONVEX 8 'GT_PK(3,2)' 1356 1377 1386 1340 1353 1330 1305 1323 1291 1256
5611 CONVEX 9 'GT_PK(3,2)' 1480 1462 1446 1425 1407 1375 1405 1387 1351 1338
5612 CONVEX 10 'GT_PK(3,2)' 2376 2362 2343 2494 2476 2636 2443 2431 2571 2524
5613 CONVEX 11 'GT_PK(3,2)' 3564 3545 3525 3500 3484 3433 3673 3652 3621 3763
5614 CONVEX 12 'GT_PK(3,2)' 3331 3352 3374 3156 3179 2990 3259 3285 3082 3197
5615 CONVEX 13 'GT_PK(3,2)' 2590 2605 2630 2654 2668 2709 2746 2758 2793 2906
5616 CONVEX 14 'GT_PK(3,2)' 1356 1377 1386 1414 1431 1474 1340 1353 1393 1330
5617 CONVEX 15 'GT_PK(3,2)' 1480 1462 1446 1502 1483 1516 1425 1407 1444 1375
5618 CONVEX 16 'GT_PK(3,2)' 2376 2362 2343 2434 2419 2492 2494 2476 2561 2636
5619 CONVEX 17 'GT_PK(3,2)' 3564 3545 3525 3357 3340 3171 3500 3484 3301 3433
5620 CONVEX 18 'GT_PK(3,2)' 5516 5489 5460 5437 5404 5345 5456 5424 5364 5383
5621 CONVEX 19 'GT_PK(3,2)' 5516 5536 5557 5437 5471 5345 5489 5521 5404 5460
5622 CONVEX 20 'GT_PK(3,2)' 5141 5227 5301 5110 5200 5087 5180 5262 5151 5215
5623 CONVEX 21 'GT_PK(3,2)' 461 487 518 440 469 423 486 515 468 516
5624 CONVEX 22 'GT_PK(3,2)' 403 404 409 430 432 459 370 371 396 339
5625 CONVEX 23 'GT_PK(3,2)' 4606 4661 4717 4772 4830 4936 4552 4614 4721 4513
5626 CONVEX 24 'GT_PK(3,2)' 5051 5162 5259 5125 5226 5197 5092 5195 5166 5133
5627 CONVEX 25 'GT_PK(3,2)' 3572 3596 3618 3403 3427 3248 3523 3544 3354 3464
5628 CONVEX 26 'GT_PK(3,2)' 1364 1371 1380 1397 1408 1440 1318 1327 1350 1276
5629 CONVEX 27 'GT_PK(3,2)' 1532 1528 1526 1558 1556 1580 1469 1466 1493 1410
5630 CONVEX 28 'GT_PK(3,2)' 1961 1882 1800 1942 1861 1930 1974 1901 1959 1987
5631 CONVEX 29 'GT_PK(3,2)' 2051 2125 2192 2047 2117 2041 2143 2213 2138 2232
5632 CONVEX 30 'GT_PK(3,2)' 3707 3677 3643 3548 3512 3369 3655 3630 3491 3609
5633 CONVEX 31 'GT_PK(3,2)' 1409 1467 1532 1491 1558 1580 1404 1469 1493 1410
5634 CONVEX 32 'GT_PK(3,2)' 2145 2052 1961 2035 1942 1930 2069 1974 1959 1987
5635 CONVEX 33 'GT_PK(3,2)' 3618 3554 3489 3427 3361 3248 3544 3477 3354 3464
5636 CONVEX 34 'GT_PK(3,2)' 1380 1335 1293 1408 1362 1440 1327 1282 1350 1276
5637 CONVEX 35 'GT_PK(3,2)' 2192 2291 2391 2117 2210 2041 2213 2310 2138 2232
5638 CONVEX 36 'GT_PK(3,2)' 3640 3679 3707 3510 3548 3369 3626 3655 3491 3609
5639 CONVEX 37 'GT_PK(3,2)' 1494 1434 1380 1464 1408 1440 1426 1371 1397 1364
5640 CONVEX 38 'GT_PK(3,2)' 3687 3656 3618 3479 3427 3248 3633 3596 3403 3572
5641 CONVEX 39 'GT_PK(3,2)' 1961 1864 1771 1942 1846 1930 1882 1780 1861 1800
5642 CONVEX 40 'GT_PK(3,2)' 1532 1602 1680 1558 1620 1580 1528 1601 1556 1526
5643 CONVEX 41 'GT_PK(3,2)' 2014 2103 2192 2024 2117 2041 2031 2125 2047 2051
5644 CONVEX 42 'GT_PK(3,2)' 3707 3721 3733 3548 3563 3369 3677 3689 3512 3643
5645 CONVEX 43 'GT_PK(3,2)' 3753 3585 3383 3647 3460 3538 3696 3516 3587 3639
5646 CONVEX 44 'GT_PK(3,2)' 1153 1182 1204 1133 1159 1119 1132 1160 1116 1118
5647 CONVEX 45 'GT_PK(3,2)' 3078 3113 3153 2956 2985 2837 3224 3256 3080 3368
5648 CONVEX 46 'GT_PK(3,2)' 403 370 339 384 352 366 369 335 353 341
5649 CONVEX 47 'GT_PK(3,2)' 4606 4552 4513 4631 4573 4647 4492 4443 4521 4384
5650 CONVEX 48 'GT_PK(3,2)' 5051 5092 5133 5125 5166 5197 4958 5004 5042 4879
5651 CONVEX 49 'GT_PK(3,2)' 3885 3819 3753 3828 3760 3769 3778 3696 3709 3639
5652 CONVEX 50 'GT_PK(3,2)' 3388 3235 3078 3263 3109 3146 3377 3224 3252 3368
5653 CONVEX 51 'GT_PK(3,2)' 1060 1102 1153 1056 1100 1050 1092 1132 1084 1118
5654 CONVEX 52 'GT_PK(3,2)' 5141 5180 5215 5046 5088 4944 5071 5117 4968 5010
5655 CONVEX 53 'GT_PK(3,2)' 461 486 516 443 471 431 460 488 445 463
5656 CONVEX 54 'GT_PK(3,2)' 3503 3511 3509 3260 3266 3045 3533 3541 3298 3571
5657 CONVEX 55 'GT_PK(3,2)' 1828 1731 1653 1750 1675 1692 1754 1681 1693 1702
5658 CONVEX 56 'GT_PK(3,2)' 3457 3486 3503 3241 3260 3045 3519 3533 3298 3571
5659 CONVEX 57 'GT_PK(3,2)' 1451 1514 1594 1490 1561 1535 1470 1541 1509 1496
5660 CONVEX 58 'GT_PK(3,2)' 1333 1382 1451 1428 1490 1535 1403 1470 1509 1496
5661 CONVEX 59 'GT_PK(3,2)' 1653 1583 1503 1675 1598 1692 1681 1600 1693 1702
5662 CONVEX 60 'GT_PK(3,2)' 2014 1931 1838 2015 1935 2023 1975 1887 1978 1933
5663 CONVEX 61 'GT_PK(3,2)' 3727 3734 3733 3438 3443 3133 3741 3745 3417 3700
5664 CONVEX 62 'GT_PK(3,2)' 1494 1559 1617 1616 1686 1761 1596 1664 1736 1715
5665 CONVEX 63 'GT_PK(3,2)' 3687 3714 3727 3412 3438 3133 3720 3741 3417 3700
5666 CONVEX 64 'GT_PK(3,2)' 1617 1690 1771 1686 1760 1761 1664 1739 1736 1715
5667 CONVEX 65 'GT_PK(3,2)' 1838 1753 1680 1935 1842 2023 1887 1795 1978 1933
5668 CONVEX 66 'GT_PK(3,2)' 2382 2497 2621 2401 2526 2435 2467 2576 2486 2556
5669 CONVEX 67 'GT_PK(3,2)' 3085 3018 2934 2899 2806 2719 2982 2898 2790 2900
5670 CONVEX 68 'GT_PK(3,2)' 1911 1849 1816 1989 1946 2076 1801 1762 1886 1697
5671 CONVEX 69 'GT_PK(3,2)' 3037 3100 3154 2894 2949 2761 3007 3071 2881 3014
5672 CONVEX 70 'GT_PK(3,2)' 1865 1925 1998 1986 2050 2109 1817 1879 1934 1746
5673 CONVEX 71 'GT_PK(3,2)' 2471 2359 2250 2407 2293 2352 2432 2320 2373 2395
5674 CONVEX 72 'GT_PK(3,2)' 1316 1368 1446 1388 1458 1477 1354 1415 1438 1409
5675 CONVEX 73 'GT_PK(3,2)' 2328 2356 2343 2264 2271 2190 2243 2251 2165 2145
5676 CONVEX 74 'GT_PK(3,2)' 3530 3556 3525 3349 3344 3182 3597 3624 3407 3640
5677 CONVEX 75 'GT_PK(3,2)' 3609 3630 3643 3491 3512 3369 3557 3588 3434 3514
5678 CONVEX 76 'GT_PK(3,2)' 2194 2123 2051 2118 2047 2041 2214 2143 2138 2232
5679 CONVEX 77 'GT_PK(3,2)' 3364 3472 3572 3307 3403 3248 3414 3523 3354 3464
5680 CONVEX 78 'GT_PK(3,2)' 1221 1287 1364 1322 1397 1440 1250 1318 1350 1276
5681 CONVEX 79 'GT_PK(3,2)' 1410 1466 1526 1493 1556 1580 1374 1430 1454 1337
5682 CONVEX 80 'GT_PK(3,2)' 1987 1901 1800 1959 1861 1930 1973 1881 1940 1955
5683 CONVEX 81 'GT_PK(3,2)' 1356 1285 1238 1378 1312 1392 1310 1257 1339 1293
5684 CONVEX 82 'GT_PK(3,2)' 3331 3346 3320 3168 3159 3015 3445 3397 3239 3489
5685 CONVEX 83 'GT_PK(3,2)' 2590 2619 2594 2478 2480 2381 2500 2493 2385 2391
5686 CONVEX 84 'GT_PK(3,2)' 2471 2432 2395 2452 2412 2439 2588 2541 2567 2711
5687 CONVEX 85 'GT_PK(3,2)' 3037 3007 3014 2760 2751 2512 2951 2933 2677 2851
5688 CONVEX 86 'GT_PK(3,2)' 2900 2898 2934 2660 2671 2439 2789 2817 2567 2711
5689 CONVEX 87 'GT_PK(3,2)' 1865 1817 1746 1903 1840 1945 1826 1766 1869 1798
5690 CONVEX 88 'GT_PK(3,2)' 1697 1762 1816 1815 1880 1945 1744 1796 1869 1798
5691 CONVEX 89 'GT_PK(3,2)' 2556 2576 2621 2530 2563 2512 2692 2743 2677 2851
5692 CONVEX 90 'GT_PK(3,2)' 1579 1688 1788 1575 1682 1580 1661 1769 1656 1745
5693 CONVEX 91 'GT_PK(3,2)' 2129 2085 2026 2022 1976 1930 2017 1979 1915 1913
5694 CONVEX 92 'GT_PK(3,2)' 3637 3543 3426 3506 3390 3369 3662 3578 3528 3684
5695 CONVEX 93 'GT_PK(3,2)' 1651 1564 1449 1542 1443 1440 1613 1510 1504 1582
5696 CONVEX 94 'GT_PK(3,2)' 3358 3446 3520 3305 3381 3248 3515 3582 3442 3632
5697 CONVEX 95 'GT_PK(3,2)' 2205 2283 2346 2119 2181 2041 2174 2240 2083 2134
5698 CONVEX 96 'GT_PK(3,2)' 1409 1481 1579 1491 1575 1580 1467 1545 1558 1532
5699 CONVEX 97 'GT_PK(3,2)' 2145 2141 2129 2035 2022 1930 2052 2040 1942 1961
5700 CONVEX 98 'GT_PK(3,2)' 3520 3535 3489 3381 3361 3248 3610 3554 3427 3618
5701 CONVEX 99 'GT_PK(3,2)' 1449 1347 1293 1443 1362 1440 1395 1335 1408 1380
5702 CONVEX 100 'GT_PK(3,2)' 3640 3674 3637 3510 3506 3369 3679 3708 3548 3707
5703 CONVEX 101 'GT_PK(3,2)' 2346 2383 2391 2181 2210 2041 2277 2291 2117 2192
5704 CONVEX 102 'GT_PK(3,2)' 1534 1447 1356 1460 1378 1392 1497 1399 1422 1449
5705 CONVEX 103 'GT_PK(3,2)' 3206 3290 3331 3098 3168 3015 3367 3425 3253 3520
5706 CONVEX 104 'GT_PK(3,2)' 2447 2533 2590 2410 2478 2381 2408 2468 2364 2346
5707 CONVEX 105 'GT_PK(3,2)' 1227 1268 1333 1315 1367 1413 1281 1336 1379 1344
5708 CONVEX 106 'GT_PK(3,2)' 3360 3413 3457 3174 3215 2996 3440 3485 3242 3513
5709 CONVEX 107 'GT_PK(3,2)' 1594 1677 1757 1630 1712 1684 1629 1711 1678 1679
5710 CONVEX 108 'GT_PK(3,2)' 1503 1435 1366 1522 1455 1551 1511 1441 1530 1519
5711 CONVEX 109 'GT_PK(3,2)' 3509 3498 3473 3270 3247 3048 3540 3526 3304 3577
5712 CONVEX 110 'GT_PK(3,2)' 2016 1922 1828 1943 1843 1868 1970 1874 1897 1920
5713 CONVEX 111 'GT_PK(3,2)' 2343 2308 2258 2271 2222 2190 2236 2193 2156 2129
5714 CONVEX 112 'GT_PK(3,2)' 1446 1537 1622 1458 1552 1477 1507 1606 1520 1579
5715 CONVEX 113 'GT_PK(3,2)' 3525 3451 3334 3344 3250 3182 3592 3504 3399 3637
5716 CONVEX 114 'GT_PK(3,2)' 1838 1931 2014 1935 2015 2023 1797 1891 1895 1759
5717 CONVEX 115 'GT_PK(3,2)' 3733 3734 3727 3443 3438 3133 3691 3685 3386 3644
5718 CONVEX 116 'GT_PK(3,2)' 1617 1559 1494 1686 1616 1761 1592 1515 1650 1557
5719 CONVEX 117 'GT_PK(3,2)' 3727 3714 3687 3438 3412 3133 3685 3672 3386 3644
5720 CONVEX 118 'GT_PK(3,2)' 1771 1690 1617 1760 1686 1761 1654 1592 1650 1557
5721 CONVEX 119 'GT_PK(3,2)' 1680 1753 1838 1842 1935 2023 1714 1797 1895 1759
5722 CONVEX 120 'GT_PK(3,2)' 3078 3224 3368 2956 3080 2837 3109 3252 2984 3146
5723 CONVEX 121 'GT_PK(3,2)' 3753 3696 3639 3647 3587 3538 3760 3709 3661 3769
5724 CONVEX 122 'GT_PK(3,2)' 1153 1132 1118 1133 1116 1119 1100 1084 1085 1050
5725 CONVEX 123 'GT_PK(3,2)' 2551 2642 2719 2728 2806 2934 2490 2577 2671 2439
5726 CONVEX 124 'GT_PK(3,2)' 2787 2782 2761 2970 2949 3154 2737 2734 2907 2680
5727 CONVEX 125 'GT_PK(3,2)' 2178 2265 2352 2203 2293 2250 2137 2212 2163 2091
5728 CONVEX 126 'GT_PK(3,2)' 2628 2534 2435 2625 2526 2621 2566 2472 2563 2512
5729 CONVEX 127 'GT_PK(3,2)' 2044 2046 2076 1932 1946 1816 1992 1993 1880 1945
5730 CONVEX 128 'GT_PK(3,2)' 2249 2167 2109 2131 2050 1998 2195 2122 2077 2150
5731 CONVEX 129 'GT_PK(3,2)' 2761 2705 2628 2894 2815 3037 2648 2566 2760 2512
5732 CONVEX 130 'GT_PK(3,2)' 2352 2453 2551 2407 2511 2471 2396 2490 2452 2439
5733 CONVEX 131 'GT_PK(3,2)' 2719 2768 2787 2899 2944 3085 2710 2737 2876 2680
5734 CONVEX 132 'GT_PK(3,2)' 2109 2065 2044 1986 1952 1865 2012 1992 1903 1945
5735 CONVEX 133 'GT_PK(3,2)' 2435 2331 2249 2401 2306 2382 2284 2195 2263 2150
5736 CONVEX 134 'GT_PK(3,2)' 2076 2120 2178 1989 2049 1911 2074 2137 1995 2091
5737 CONVEX 135 'GT_PK(3,2)' 3618 3656 3687 3427 3479 3248 3657 3695 3442 3632
5738 CONVEX 136 'GT_PK(3,2)' 1380 1434 1494 1408 1464 1440 1465 1517 1504 1582
5739 CONVEX 137 'GT_PK(3,2)' 2192 2103 2014 2117 2024 2041 2166 2079 2083 2134
5740 CONVEX 138 'GT_PK(3,2)' 1771 1864 1961 1846 1942 1930 1834 1937 1915 1913
5741 CONVEX 139 'GT_PK(3,2)' 1680 1602 1532 1620 1558 1580 1703 1626 1656 1745
5742 CONVEX 140 'GT_PK(3,2)' 409 359 315 389 342 377 371 323 354 339
5743 CONVEX 141 'GT_PK(3,2)' 4835 4778 4717 4887 4830 4936 4718 4661 4772 4606
5744 CONVEX 142 'GT_PK(3,2)' 3733 3721 3707 3563 3548 3369 3742 3730 3528 3684
5745 CONVEX 143 'GT_PK(3,2)' 5113 5191 5259 5154 5226 5197 5078 5162 5125 5051
5746 CONVEX 144 'GT_PK(3,2)' 1446 1387 1338 1368 1328 1316 1407 1351 1341 1375
5747 CONVEX 145 'GT_PK(3,2)' 2343 2431 2524 2356 2425 2328 2476 2571 2469 2636
5748 CONVEX 146 'GT_PK(3,2)' 3525 3652 3763 3556 3654 3530 3484 3621 3483 3433
5749 CONVEX 147 'GT_PK(3,2)' 3574 3455 3331 3441 3346 3320 3378 3259 3246 3197
5750 CONVEX 148 'GT_PK(3,2)' 2835 2713 2590 2715 2619 2594 2869 2746 2747 2906
5751 CONVEX 149 'GT_PK(3,2)' 1256 1305 1356 1247 1285 1238 1291 1340 1275 1330
5752 CONVEX 150 'GT_PK(3,2)' 1933 1971 1994 1978 2005 2023 2025 2064 2080 2134
5753 CONVEX 151 'GT_PK(3,2)' 3700 3599 3439 3417 3284 3133 3665 3534 3375 3632
5754 CONVEX 152 'GT_PK(3,2)' 1715 1772 1823 1736 1784 1761 1642 1709 1666 1582
5755 CONVEX 153 'GT_PK(3,2)' 3439 3599 3700 3284 3417 3133 3561 3690 3405 3684
5756 CONVEX 154 'GT_PK(3,2)' 1375 1351 1338 1341 1328 1316 1303 1289 1271 1244
5757 CONVEX 155 'GT_PK(3,2)' 2636 2571 2524 2469 2425 2328 2721 2667 2557 2805
5758 CONVEX 156 'GT_PK(3,2)' 3433 3621 3763 3483 3654 3530 3560 3718 3605 3675
5759 CONVEX 157 'GT_PK(3,2)' 1823 1772 1715 1784 1736 1761 1870 1811 1831 1913
5760 CONVEX 158 'GT_PK(3,2)' 1994 1971 1933 2005 1978 2023 1893 1836 1883 1745
5761 CONVEX 159 'GT_PK(3,2)' 3574 3378 3197 3441 3246 3320 3475 3292 3339 3383
5762 CONVEX 160 'GT_PK(3,2)' 2835 2869 2906 2715 2747 2594 2987 3022 2860 3153
5763 CONVEX 161 'GT_PK(3,2)' 1256 1291 1330 1247 1275 1238 1233 1259 1216 1204
5764 CONVEX 162 'GT_PK(3,2)' 1967 2062 2151 2011 2104 2068 2086 2172 2135 2198
5765 CONVEX 163 'GT_PK(3,2)' 1251 1208 1176 1278 1239 1311 1226 1194 1253 1210
5766 CONVEX 164 'GT_PK(3,2)' 3389 3333 3278 3129 3076 2901 3370 3315 3103 3341
5767 CONVEX 165 'GT_PK(3,2)' 3068 3149 3231 2914 2981 2759 3091 3189 2942 3132
5768 CONVEX 166 'GT_PK(3,2)' 1111 1131 1157 1175 1197 1248 1128 1146 1193 1144
5769 CONVEX 167 'GT_PK(3,2)' 2397 2302 2208 2317 2230 2256 2427 2322 2342 2451
5770 CONVEX 168 'GT_PK(3,2)' 3885 3886 3890 3839 3841 3793 3828 3829 3776 3769
5771 CONVEX 169 'GT_PK(3,2)' 1060 1015 964 1043 993 1023 1056 1010 1034 1050
5772 CONVEX 170 'GT_PK(3,2)' 3388 3398 3421 3579 3600 3744 3263 3286 3459 3146
5773 CONVEX 171 'GT_PK(3,2)' 2184 2260 2300 2353 2417 2544 2215 2278 2379 2244
5774 CONVEX 172 'GT_PK(3,2)' 2133 2039 1948 2094 2001 2058 2147 2066 2114 2173
5775 CONVEX 173 'GT_PK(3,2)' 2330 2311 2269 2457 2420 2582 2360 2332 2475 2386
5776 CONVEX 174 'GT_PK(3,2)' 1618 1638 1685 1533 1570 1457 1640 1668 1563 1673
5777 CONVEX 175 'GT_PK(3,2)' 1832 1928 2021 1902 1996 1977 1855 1953 1929 1890
5778 CONVEX 176 'GT_PK(3,2)' 1758 1695 1647 1623 1572 1500 1785 1717 1645 1820
5779 CONVEX 177 'GT_PK(3,2)' 2269 2200 2133 2348 2276 2442 2224 2147 2299 2173
5780 CONVEX 178 'GT_PK(3,2)' 2300 2327 2330 2464 2473 2644 2357 2360 2503 2386
5781 CONVEX 179 'GT_PK(3,2)' 1948 1847 1758 1889 1790 1833 1878 1785 1825 1820
5782 CONVEX 180 'GT_PK(3,2)' 2021 2113 2184 2099 2185 2182 2140 2215 2209 2244
5783 CONVEX 181 'GT_PK(3,2)' 1647 1619 1618 1525 1512 1416 1644 1640 1539 1673
5784 CONVEX 182 'GT_PK(3,2)' 1685 1749 1832 1627 1700 1581 1775 1855 1721 1890
5785 CONVEX 183 'GT_PK(3,2)' 1316 1354 1409 1388 1438 1477 1284 1329 1358 1255
5786 CONVEX 184 'GT_PK(3,2)' 2328 2243 2145 2264 2165 2190 2292 2199 2223 2262
5787 CONVEX 185 'GT_PK(3,2)' 3530 3597 3640 3349 3407 3182 3480 3542 3306 3424
5788 CONVEX 186 'GT_PK(3,2)' 3489 3397 3320 3239 3159 3015 3350 3262 3105 3218
5789 CONVEX 187 'GT_PK(3,2)' 1293 1257 1238 1339 1312 1392 1235 1207 1279 1186
5790 CONVEX 188 'GT_PK(3,2)' 2391 2493 2594 2385 2480 2381 2455 2558 2441 2520
5791 CONVEX 189 'GT_PK(3,2)' 5301 5349 5380 5213 5265 5138 5262 5304 5175 5215
5792 CONVEX 190 'GT_PK(3,2)' 3639 3778 3885 3723 3839 3793 3709 3828 3776 3769
5793 CONVEX 191 'GT_PK(3,2)' 1118 1092 1060 1067 1043 1023 1084 1056 1034 1050
5794 CONVEX 192 'GT_PK(3,2)' 442 479 518 429 469 423 449 487 440 461
5795 CONVEX 193 'GT_PK(3,2)' 3368 3377 3388 3575 3579 3744 3252 3263 3459 3146
5796 CONVEX 194 'GT_PK(3,2)' 2338 2387 2439 2592 2660 2900 2459 2513 2731 2572
5797 CONVEX 195 'GT_PK(3,2)' 2439 2387 2338 2412 2363 2395 2335 2287 2309 2234
5798 CONVEX 196 'GT_PK(3,2)' 2512 2458 2405 2751 2696 3014 2573 2522 2799 2613
5799 CONVEX 197 'GT_PK(3,2)' 1839 1896 1945 1755 1815 1697 1884 1936 1821 1951
5800 CONVEX 198 'GT_PK(3,2)' 1945 1896 1839 1840 1783 1746 1956 1905 1866 1988
5801 CONVEX 199 'GT_PK(3,2)' 2150 2100 2055 2211 2161 2281 2226 2175 2288 2307
5802 CONVEX 200 'GT_PK(3,2)' 2564 2614 2680 2842 2911 3158 2600 2665 2875 2613
5803 CONVEX 201 'GT_PK(3,2)' 2680 2614 2564 2878 2804 3090 2643 2580 2819 2572
5804 CONVEX 202 'GT_PK(3,2)' 1991 2037 2091 2057 2108 2139 2101 2153 2177 2234
5805 CONVEX 203 'GT_PK(3,2)' 2405 2458 2512 2470 2530 2556 2365 2414 2426 2307
5806 CONVEX 204 'GT_PK(3,2)' 2091 2037 1991 1938 1885 1779 2009 1963 1860 1951
5807 CONVEX 205 'GT_PK(3,2)' 2055 2100 2150 1972 2018 1894 2013 2067 1939 1988
5808 CONVEX 206 'GT_PK(3,2)' 5460 5403 5339 5404 5337 5345 5424 5362 5364 5383
5809 CONVEX 207 'GT_PK(3,2)' 5215 5304 5380 5175 5265 5138 5223 5309 5184 5234
5810 CONVEX 208 'GT_PK(3,2)' 403 370 339 430 396 459 384 352 413 366
5811 CONVEX 209 'GT_PK(3,2)' 4606 4552 4513 4772 4721 4936 4631 4573 4795 4647
5812 CONVEX 210 'GT_PK(3,2)' 5194 5256 5301 5137 5200 5087 5170 5227 5110 5141
5813 CONVEX 211 'GT_PK(3,2)' 518 550 581 496 531 490 515 547 498 516
5814 CONVEX 212 'GT_PK(3,2)' 394 415 442 402 429 423 426 449 440 461
5815 CONVEX 213 'GT_PK(3,2)' 5590 5577 5557 5563 5543 5527 5558 5536 5522 5516
5816 CONVEX 214 'GT_PK(3,2)' 3154 3180 3175 2907 2918 2680 3120 3144 2911 3158
5817 CONVEX 215 'GT_PK(3,2)' 2250 2146 2059 2163 2075 2091 2189 2096 2108 2139
5818 CONVEX 216 'GT_PK(3,2)' 1998 2088 2171 2077 2159 2150 1958 2028 2018 1894
5819 CONVEX 217 'GT_PK(3,2)' 2171 2273 2382 2159 2263 2150 2225 2324 2211 2281
5820 CONVEX 218 'GT_PK(3,2)' 2059 1981 1911 2075 1995 2091 1923 1854 1938 1779
5821 CONVEX 219 'GT_PK(3,2)' 3175 3143 3085 2918 2876 2680 3110 3066 2878 3090
5822 CONVEX 220 'GT_PK(3,2)' 3684 3578 3426 3405 3279 3133 3561 3448 3284 3439
5823 CONVEX 221 'GT_PK(3,2)' 2205 2174 2134 2116 2080 2023 2097 2064 2005 1994
5824 CONVEX 222 'GT_PK(3,2)' 1913 1979 2026 1831 1899 1761 1870 1921 1784 1823
5825 CONVEX 223 'GT_PK(3,2)' 1745 1769 1788 1883 1906 2023 1893 1898 2005 1994
5826 CONVEX 224 'GT_PK(3,2)' 1651 1613 1582 1701 1666 1761 1726 1709 1784 1823
5827 CONVEX 225 'GT_PK(3,2)' 3358 3515 3632 3240 3375 3133 3410 3534 3284 3439
5828 CONVEX 226 'GT_PK(3,2)' 5557 5531 5503 5512 5470 5446 5521 5479 5452 5460
5829 CONVEX 227 'GT_PK(3,2)' 5383 5450 5508 5364 5432 5345 5456 5511 5437 5516
5830 CONVEX 228 'GT_PK(3,2)' 1338 1273 1218 1252 1200 1184 1289 1232 1209 1244
5831 CONVEX 229 'GT_PK(3,2)' 2524 2604 2703 2498 2583 2483 2667 2755 2646 2805
5832 CONVEX 230 'GT_PK(3,2)' 3763 3840 3914 3758 3835 3757 3718 3805 3713 3675
5833 CONVEX 231 'GT_PK(3,2)' 3753 3663 3574 3647 3549 3538 3585 3475 3460 3383
5834 CONVEX 232 'GT_PK(3,2)' 3078 2959 2835 2956 2830 2837 3113 2987 2985 3153
5835 CONVEX 233 'GT_PK(3,2)' 1153 1202 1256 1133 1185 1119 1182 1233 1159 1204
5836 CONVEX 234 'GT_PK(3,2)' 4848 4970 5113 5024 5154 5197 4948 5078 5125 5051
5837 CONVEX 235 'GT_PK(3,2)' 5141 5180 5215 5110 5151 5087 5046 5088 5012 4944
5838 CONVEX 236 'GT_PK(3,2)' 461 486 516 440 468 423 443 471 422 431
5839 CONVEX 237 'GT_PK(3,2)' 1534 1497 1449 1485 1443 1440 1593 1564 1542 1651
5840 CONVEX 238 'GT_PK(3,2)' 3206 3367 3520 3222 3381 3248 3295 3446 3305 3358
5841 CONVEX 239 'GT_PK(3,2)' 1579 1606 1622 1575 1597 1580 1688 1699 1682 1788
5842 CONVEX 240 'GT_PK(3,2)' 2129 2193 2258 2022 2090 1930 2085 2142 1976 2026
5843 CONVEX 241 'GT_PK(3,2)' 2134 2079 2014 2080 2015 2023 2025 1975 1978 1933
5844 CONVEX 242 'GT_PK(3,2)' 2447 2408 2346 2233 2181 2041 2323 2283 2119 2205
5845 CONVEX 243 'GT_PK(3,2)' 3637 3504 3334 3506 3345 3369 3543 3393 3390 3426
5846 CONVEX 244 'GT_PK(3,2)' 3733 3742 3684 3443 3405 3133 3745 3690 3417 3700
5847 CONVEX 245 'GT_PK(3,2)' 3632 3695 3687 3375 3412 3133 3665 3720 3417 3700
5848 CONVEX 246 'GT_PK(3,2)' 1582 1517 1494 1666 1616 1761 1642 1596 1736 1715
5849 CONVEX 247 'GT_PK(3,2)' 1771 1834 1913 1760 1831 1761 1739 1811 1736 1715
5850 CONVEX 248 'GT_PK(3,2)' 1680 1703 1745 1842 1883 2023 1795 1836 1978 1933
5851 CONVEX 249 'GT_PK(3,2)' 339 323 315 354 342 377 296 273 309 249
5852 CONVEX 250 'GT_PK(3,2)' 4617 4727 4835 4776 4887 4936 4611 4718 4772 4606
5853 CONVEX 251 'GT_PK(3,2)' 1117 1099 1090 1125 1108 1137 1066 1051 1075 1022
5854 CONVEX 252 'GT_PK(3,2)' 5215 5223 5234 5088 5098 4944 5117 5129 4968 5010
5855 CONVEX 253 'GT_PK(3,2)' 3175 3136 3176 2918 2917 2680 3144 3181 2911 3158
5856 CONVEX 254 'GT_PK(3,2)' 5259 5195 5133 5308 5254 5354 5226 5166 5281 5197
5857 CONVEX 255 'GT_PK(3,2)' 2059 2004 1941 2075 2008 2091 2096 2036 2108 2139
5858 CONVEX 256 'GT_PK(3,2)' 2171 2124 2072 2159 2107 2150 2028 1982 2018 1894
5859 CONVEX 257 'GT_PK(3,2)' 2072 2124 2171 2107 2159 2150 2168 2225 2211 2281
5860 CONVEX 258 'GT_PK(3,2)' 1941 2004 2059 2008 2075 2091 1856 1923 1938 1779
5861 CONVEX 259 'GT_PK(3,2)' 3176 3136 3175 2917 2918 2680 3148 3110 2878 3090
5862 CONVEX 260 'GT_PK(3,2)' 627 584 551 607 569 592 599 560 579 575
5863 CONVEX 261 'GT_PK(3,2)' 4667 4733 4796 4541 4599 4414 4613 4678 4483 4556
5864 CONVEX 262 'GT_PK(3,2)' 3197 3259 3331 3246 3346 3320 3082 3156 3141 2990
5865 CONVEX 263 'GT_PK(3,2)' 2906 2746 2590 2747 2619 2594 2793 2654 2653 2709
5866 CONVEX 264 'GT_PK(3,2)' 1330 1340 1356 1275 1285 1238 1393 1414 1342 1474
5867 CONVEX 265 'GT_PK(3,2)' 497 454 409 476 432 459 451 404 430 403
5868 CONVEX 266 'GT_PK(3,2)' 4717 4650 4574 4798 4732 4866 4614 4542 4684 4513
5869 CONVEX 267 'GT_PK(3,2)' 1446 1407 1375 1368 1341 1316 1483 1444 1412 1516
5870 CONVEX 268 'GT_PK(3,2)' 2343 2476 2636 2356 2469 2328 2419 2561 2403 2492
5871 CONVEX 269 'GT_PK(3,2)' 3525 3484 3433 3556 3483 3530 3340 3301 3336 3171
5872 CONVEX 270 'GT_PK(3,2)' 1920 1874 1828 1897 1843 1868 1805 1754 1777 1702
5873 CONVEX 271 'GT_PK(3,2)' 3509 3540 3577 3270 3304 3048 3541 3580 3296 3571
5874 CONVEX 272 'GT_PK(3,2)' 3513 3485 3457 3242 3215 2996 3547 3519 3273 3571
5875 CONVEX 273 'GT_PK(3,2)' 1344 1336 1333 1379 1367 1413 1421 1403 1450 1496
5876 CONVEX 274 'GT_PK(3,2)' 1594 1629 1679 1630 1678 1684 1541 1587 1589 1496
5877 CONVEX 275 'GT_PK(3,2)' 1503 1511 1519 1522 1530 1551 1600 1611 1615 1702
5878 CONVEX 276 'GT_PK(3,2)' 4879 4864 4848 5042 5024 5197 4958 4948 5125 5051
5879 CONVEX 277 'GT_PK(3,2)' 2590 2533 2447 2478 2410 2381 2654 2574 2538 2709
5880 CONVEX 278 'GT_PK(3,2)' 3331 3290 3206 3168 3098 3015 3156 3094 2998 2990
5881 CONVEX 279 'GT_PK(3,2)' 1356 1447 1534 1378 1460 1392 1414 1501 1432 1474
5882 CONVEX 280 'GT_PK(3,2)' 3334 3451 3525 3250 3344 3182 3261 3340 3170 3171
5883 CONVEX 281 'GT_PK(3,2)' 2258 2308 2343 2222 2271 2190 2372 2419 2334 2492
5884 CONVEX 282 'GT_PK(3,2)' 1622 1537 1446 1552 1458 1477 1569 1483 1495 1516
5885 CONVEX 283 'GT_PK(3,2)' 2380 2495 2609 2491 2607 2615 2505 2632 2633 2650
5886 CONVEX 284 'GT_PK(3,2)' 3079 2980 2874 3135 3027 3199 3163 3054 3220 3249
5887 CONVEX 285 'GT_PK(3,2)' 1090 1083 1086 1108 1104 1137 1040 1037 1059 998
5888 CONVEX 286 'GT_PK(3,2)' 4192 4166 4149 4056 4032 3915 4112 4091 3977 4034
5889 CONVEX 287 'GT_PK(3,2)' 4149 4166 4192 4032 4056 3915 4228 4255 4114 4323
5890 CONVEX 288 'GT_PK(3,2)' 3963 3935 3916 3988 3959 4014 3863 3836 3883 3756
5891 CONVEX 289 'GT_PK(3,2)' 682 712 735 681 710 686 659 685 658 636
5892 CONVEX 290 'GT_PK(3,2)' 735 712 682 710 681 686 752 732 731 777
5893 CONVEX 291 'GT_PK(3,2)' 3916 3935 3963 3959 3988 4014 4022 4038 4062 4116
5894 CONVEX 292 'GT_PK(3,2)' 1244 1232 1218 1209 1200 1184 1191 1178 1156 1140
5895 CONVEX 293 'GT_PK(3,2)' 2805 2755 2703 2646 2583 2483 2930 2864 2748 3036
5896 CONVEX 294 'GT_PK(3,2)' 3675 3805 3914 3713 3835 3757 3771 3878 3800 3847
5897 CONVEX 295 'GT_PK(3,2)' 5460 5479 5503 5452 5470 5446 5403 5423 5390 5339
5898 CONVEX 296 'GT_PK(3,2)' 394 426 461 405 443 431 425 460 445 463
5899 CONVEX 297 'GT_PK(3,2)' 339 296 249 352 307 366 335 293 353 341
5900 CONVEX 298 'GT_PK(3,2)' 4606 4492 4384 4631 4521 4647 4611 4502 4634 4617
5901 CONVEX 299 'GT_PK(3,2)' 3769 3829 3890 3776 3841 3793 3746 3808 3754 3716
5902 CONVEX 300 'GT_PK(3,2)' 1050 1010 964 1034 993 1023 1020 980 1006 992
5903 CONVEX 301 'GT_PK(3,2)' 3146 3286 3421 3459 3600 3744 3106 3244 3411 3077
5904 CONVEX 302 'GT_PK(3,2)' 4076 4074 4075 3953 3955 3847 4001 4000 3882 3927
5905 CONVEX 303 'GT_PK(3,2)' 2897 2910 2926 2961 2976 3036 2786 2794 2861 2702
5906 CONVEX 304 'GT_PK(3,2)' 1026 1070 1120 1080 1129 1140 1065 1114 1123 1106
5907 CONVEX 305 'GT_PK(3,2)' 2343 2236 2129 2271 2156 2190 2251 2141 2165 2145
5908 CONVEX 306 'GT_PK(3,2)' 1446 1507 1579 1458 1520 1477 1415 1481 1438 1409
5909 CONVEX 307 'GT_PK(3,2)' 1449 1399 1356 1422 1378 1392 1347 1310 1339 1293
5910 CONVEX 308 'GT_PK(3,2)' 3520 3425 3331 3253 3168 3015 3535 3445 3239 3489
5911 CONVEX 309 'GT_PK(3,2)' 3525 3592 3637 3344 3399 3182 3624 3674 3407 3640
5912 CONVEX 310 'GT_PK(3,2)' 2346 2468 2590 2364 2478 2381 2383 2500 2385 2391
5913 CONVEX 311 'GT_PK(3,2)' 1157 1192 1227 1228 1265 1314 1188 1223 1261 1221
5914 CONVEX 312 'GT_PK(3,2)' 3231 3302 3360 3056 3116 2909 3297 3362 3115 3364
5915 CONVEX 313 'GT_PK(3,2)' 1366 1304 1251 1385 1334 1418 1345 1294 1376 1337
5916 CONVEX 314 'GT_PK(3,2)' 1757 1862 1967 1810 1912 1859 1852 1960 1907 1955
5917 CONVEX 315 'GT_PK(3,2)' 2208 2115 2016 2136 2034 2054 2201 2102 2130 2194
5918 CONVEX 316 'GT_PK(3,2)' 3473 3436 3389 3228 3192 2999 3495 3454 3243 3514
5919 CONVEX 317 'GT_PK(3,2)' 1994 2020 2072 2005 2042 2023 2097 2127 2116 2205
5920 CONVEX 318 'GT_PK(3,2)' 3176 3288 3439 3147 3284 3133 3310 3448 3279 3426
5921 CONVEX 319 'GT_PK(3,2)' 1941 1871 1823 1844 1784 1761 1968 1921 1899 2026
5922 CONVEX 320 'GT_PK(3,2)' 1823 1871 1941 1784 1844 1761 1726 1774 1701 1651
5923 CONVEX 321 'GT_PK(3,2)' 3439 3288 3176 3284 3147 3133 3410 3275 3240 3358
5924 CONVEX 322 'GT_PK(3,2)' 2072 2020 1994 2042 2005 2023 1919 1898 1906 1788
5925 CONVEX 323 'GT_PK(3,2)' 5172 5063 4953 4996 4886 4838 5119 5008 4951 5067
5926 CONVEX 324 'GT_PK(3,2)' 275 247 218 223 194 174 266 238 211 255
5927 CONVEX 325 'GT_PK(3,2)' 5351 5428 5502 5314 5399 5289 5386 5467 5361 5431
5928 CONVEX 326 'GT_PK(3,2)' 4332 4433 4546 4429 4543 4539 4379 4490 4485 4439
5929 CONVEX 327 'GT_PK(3,2)' 31 52 80 46 72 73 43 65 61 59
5930 CONVEX 328 'GT_PK(3,2)' 5111 4975 4861 5089 4956 5061 5055 4920 5017 4983
5931 CONVEX 329 'GT_PK(3,2)' 3090 3066 3085 2819 2816 2572 3006 2982 2731 2900
5932 CONVEX 330 'GT_PK(3,2)' 1779 1854 1911 1860 1927 1951 1730 1801 1821 1697
5933 CONVEX 331 'GT_PK(3,2)' 2281 2324 2382 2288 2340 2307 2413 2467 2426 2556
5934 CONVEX 332 'GT_PK(3,2)' 1532 1545 1579 1558 1575 1580 1626 1661 1656 1745
5935 CONVEX 333 'GT_PK(3,2)' 1961 2040 2129 1942 2022 1930 1937 2017 1915 1913
5936 CONVEX 334 'GT_PK(3,2)' 3707 3708 3637 3548 3506 3369 3730 3662 3528 3684
5937 CONVEX 335 'GT_PK(3,2)' 3520 3610 3618 3381 3427 3248 3582 3657 3442 3632
5938 CONVEX 336 'GT_PK(3,2)' 1449 1395 1380 1443 1408 1440 1510 1465 1504 1582
5939 CONVEX 337 'GT_PK(3,2)' 2346 2277 2192 2181 2117 2041 2240 2166 2083 2134
5940 CONVEX 338 'GT_PK(3,2)' 1998 1958 1894 1990 1939 1988 1879 1814 1866 1746
5941 CONVEX 339 'GT_PK(3,2)' 2250 2189 2139 2239 2177 2234 2320 2267 2309 2395
5942 CONVEX 340 'GT_PK(3,2)' 3154 3120 3158 2872 2875 2613 3071 3088 2799 3014
5943 CONVEX 341 'GT_PK(3,2)' 2954 2868 2801 2891 2814 2834 3064 2974 2994 3171
5944 CONVEX 342 'GT_PK(3,2)' 2750 2694 2661 2569 2529 2416 2623 2568 2450 2492
5945 CONVEX 343 'GT_PK(3,2)' 2661 2694 2750 2529 2569 2416 2795 2873 2687 2990
5946 CONVEX 344 'GT_PK(3,2)' 2801 2868 2954 2814 2891 2834 2756 2831 2765 2709
5947 CONVEX 345 'GT_PK(3,2)' 1468 1554 1643 1472 1562 1482 1486 1567 1499 1516
5948 CONVEX 346 'GT_PK(3,2)' 1643 1554 1468 1562 1472 1482 1543 1463 1473 1474
5949 CONVEX 347 'GT_PK(3,2)' 1702 1727 1759 1777 1806 1868 1805 1837 1897 1920
5950 CONVEX 348 'GT_PK(3,2)' 3644 3611 3571 3327 3296 3048 3620 3580 3304 3577
5951 CONVEX 349 'GT_PK(3,2)' 3571 3611 3644 3273 3314 2996 3547 3589 3242 3513
5952 CONVEX 350 'GT_PK(3,2)' 1496 1518 1557 1450 1475 1413 1421 1445 1379 1344
5953 CONVEX 351 'GT_PK(3,2)' 3158 3181 3176 2842 2850 2564 3277 3310 2960 3426
5954 CONVEX 352 'GT_PK(3,2)' 1557 1518 1496 1609 1589 1684 1610 1587 1678 1679
5955 CONVEX 353 'GT_PK(3,2)' 1759 1727 1702 1641 1615 1551 1634 1611 1530 1519
5956 CONVEX 354 'GT_PK(3,2)' 2139 2036 1941 2057 1962 1991 2078 1968 1999 2026
5957 CONVEX 355 'GT_PK(3,2)' 1894 1982 2072 1972 2056 2055 1830 1919 1917 1788
5958 CONVEX 356 'GT_PK(3,2)' 2072 2168 2281 2056 2161 2055 2127 2235 2126 2205
5959 CONVEX 357 'GT_PK(3,2)' 3176 3148 3090 2850 2804 2564 3275 3207 2935 3358
5960 CONVEX 358 'GT_PK(3,2)' 1941 1856 1779 1962 1885 1991 1774 1705 1808 1651
5961 CONVEX 359 'GT_PK(3,2)' 2874 2757 2647 3027 2904 3199 2886 2767 3038 2908
5962 CONVEX 360 'GT_PK(3,2)' 2609 2735 2847 2607 2726 2615 2796 2932 2792 3010
5963 CONVEX 361 'GT_PK(3,2)' 1534 1593 1651 1740 1808 1991 1639 1705 1885 1779
5964 CONVEX 362 'GT_PK(3,2)' 3206 3295 3358 2857 2935 2564 3134 3207 2804 3090
5965 CONVEX 363 'GT_PK(3,2)' 2447 2323 2205 2241 2126 2055 2344 2235 2161 2281
5966 CONVEX 364 'GT_PK(3,2)' 1788 1699 1622 1917 1829 2055 1830 1741 1972 1894
5967 CONVEX 365 'GT_PK(3,2)' 2026 2142 2258 1999 2111 1991 2078 2176 2057 2139
5968 CONVEX 366 'GT_PK(3,2)' 3426 3393 3334 2960 2921 2564 3277 3237 2842 3158
5969 CONVEX 367 'GT_PK(3,2)' 3697 3550 3388 3573 3398 3421 3717 3579 3600 3744
5970 CONVEX 368 'GT_PK(3,2)' 3885 3949 4028 3839 3913 3793 3886 3951 3841 3890
5971 CONVEX 369 'GT_PK(3,2)' 1060 1018 983 1043 1000 1023 1015 972 993 964
5972 CONVEX 370 'GT_PK(3,2)' 805 778 754 742 716 686 758 736 693 717
5973 CONVEX 371 'GT_PK(3,2)' 3518 3462 3416 3638 3602 3747 3634 3593 3738 3736
5974 CONVEX 372 'GT_PK(3,2)' 4472 4447 4422 4397 4369 4330 4560 4538 4478 4651
5975 CONVEX 373 'GT_PK(3,2)' 2397 2501 2611 2427 2531 2451 2523 2631 2546 2647
5976 CONVEX 374 'GT_PK(3,2)' 3068 3172 3282 3091 3202 3132 2965 3053 2983 2847
5977 CONVEX 375 'GT_PK(3,2)' 1071 1122 1176 1136 1194 1210 1095 1141 1161 1117
5978 CONVEX 376 'GT_PK(3,2)' 3551 3408 3278 3444 3315 3341 3318 3190 3208 3079
5979 CONVEX 377 'GT_PK(3,2)' 2301 2227 2151 2253 2172 2198 2339 2268 2285 2380
5980 CONVEX 378 'GT_PK(3,2)' 1111 1063 1016 1128 1073 1144 1096 1046 1112 1086
5981 CONVEX 379 'GT_PK(3,2)' 2703 2797 2926 2700 2794 2702 2864 2976 2861 3036
5982 CONVEX 380 'GT_PK(3,2)' 3914 3995 4075 3919 4000 3927 3878 3955 3882 3847
5983 CONVEX 381 'GT_PK(3,2)' 1120 1166 1218 1129 1178 1140 1114 1162 1123 1106
5984 CONVEX 382 'GT_PK(3,2)' 1316 1284 1255 1212 1195 1137 1243 1214 1155 1184
5985 CONVEX 383 'GT_PK(3,2)' 2328 2292 2262 2462 2430 2615 2402 2368 2550 2483
5986 CONVEX 384 'GT_PK(3,2)' 3530 3480 3424 3353 3316 3199 3650 3612 3494 3757
5987 CONVEX 385 'GT_PK(3,2)' 2613 2665 2680 2872 2907 3154 2691 2734 2949 2761
5988 CONVEX 386 'GT_PK(3,2)' 2680 2643 2572 2876 2816 3085 2710 2645 2899 2719
5989 CONVEX 387 'GT_PK(3,2)' 2234 2153 2091 2239 2163 2250 2289 2212 2293 2352
5990 CONVEX 388 'GT_PK(3,2)' 2307 2414 2512 2426 2530 2556 2369 2472 2486 2435
5991 CONVEX 389 'GT_PK(3,2)' 2091 2009 1951 1995 1927 1911 2074 2006 1989 2076
5992 CONVEX 390 'GT_PK(3,2)' 1988 2067 2150 1990 2077 1998 2048 2122 2050 2109
5993 CONVEX 391 'GT_PK(3,2)' 2512 2573 2613 2751 2799 3014 2648 2691 2881 2761
5994 CONVEX 392 'GT_PK(3,2)' 2572 2513 2439 2731 2660 2900 2645 2577 2790 2719
5995 CONVEX 393 'GT_PK(3,2)' 2439 2335 2234 2412 2309 2395 2396 2289 2373 2352
5996 CONVEX 394 'GT_PK(3,2)' 1945 1956 1988 1840 1866 1746 2012 2048 1934 2109
5997 CONVEX 395 'GT_PK(3,2)' 1951 1936 1945 1821 1815 1697 2006 1993 1886 2076
5998 CONVEX 396 'GT_PK(3,2)' 2150 2226 2307 2263 2340 2382 2284 2369 2401 2435
5999 CONVEX 397 'GT_PK(3,2)' 5133 5132 5134 5166 5165 5197 5004 5003 5042 4879
6000 CONVEX 398 'GT_PK(3,2)' 464 433 403 414 384 366 401 369 353 341
6001 CONVEX 399 'GT_PK(3,2)' 4513 4408 4326 4573 4475 4647 4443 4344 4521 4384
6002 CONVEX 400 'GT_PK(3,2)' 1643 1734 1798 1782 1869 1945 1689 1766 1840 1746
6003 CONVEX 401 'GT_PK(3,2)' 2661 2669 2711 2547 2567 2439 2532 2541 2412 2395
6004 CONVEX 402 'GT_PK(3,2)' 2801 2800 2851 2657 2677 2512 2920 2933 2751 3014
6005 CONVEX 403 'GT_PK(3,2)' 1798 1734 1643 1869 1782 1945 1744 1669 1815 1697
6006 CONVEX 404 'GT_PK(3,2)' 2711 2669 2661 2567 2547 2439 2789 2772 2660 2900
6007 CONVEX 405 'GT_PK(3,2)' 2851 2800 2801 2677 2657 2512 2692 2695 2530 2556
6008 CONVEX 406 'GT_PK(3,2)' 1118 1160 1204 1116 1159 1119 1127 1169 1124 1139
6009 CONVEX 407 'GT_PK(3,2)' 3368 3256 3153 3080 2985 2837 3492 3376 3198 3614
6010 CONVEX 408 'GT_PK(3,2)' 3639 3516 3383 3587 3460 3538 3461 3325 3392 3281
6011 CONVEX 409 'GT_PK(3,2)' 5580 5546 5502 5575 5535 5567 5550 5505 5539 5510
6012 CONVEX 410 'GT_PK(3,2)' 182 196 218 191 204 202 132 145 139 97
6013 CONVEX 411 'GT_PK(3,2)' 4507 4616 4726 4664 4773 4809 4489 4597 4645 4479
6014 CONVEX 412 'GT_PK(3,2)' 1375 1303 1244 1237 1183 1137 1331 1260 1199 1286
6015 CONVEX 413 'GT_PK(3,2)' 3433 3560 3675 3308 3422 3199 3342 3471 3216 3258
6016 CONVEX 414 'GT_PK(3,2)' 2636 2721 2805 2606 2707 2615 2785 2887 2773 2971
6017 CONVEX 415 'GT_PK(3,2)' 5143 5076 5006 5100 5018 5030 4955 4888 4897 4777
6018 CONVEX 416 'GT_PK(3,2)' 5602 5609 5615 5613 5617 5619 5592 5604 5605 5580
6019 CONVEX 417 'GT_PK(3,2)' 82 110 166 118 172 187 115 170 175 182
6020 CONVEX 418 'GT_PK(3,2)' 5172 5264 5346 5245 5325 5307 5158 5251 5236 5153
6021 CONVEX 419 'GT_PK(3,2)' 3383 3292 3197 3185 3084 3004 3165 3074 2979 2971
6022 CONVEX 420 'GT_PK(3,2)' 3153 3022 2906 3016 2895 2893 3204 3072 3065 3258
6023 CONVEX 421 'GT_PK(3,2)' 1204 1259 1330 1187 1240 1171 1242 1299 1222 1286
6024 CONVEX 422 'GT_PK(3,2)' 4446 4360 4282 4274 4189 4122 4448 4356 4280 4450
6025 CONVEX 423 'GT_PK(3,2)' 465 512 556 503 549 545 499 541 534 529
6026 CONVEX 424 'GT_PK(3,2)' 2999 3029 3048 3169 3194 3369 2803 2833 2973 2644
6027 CONVEX 425 'GT_PK(3,2)' 2996 2958 2909 3104 3058 3248 2777 2741 2888 2582
6028 CONVEX 426 'GT_PK(3,2)' 1859 1763 1684 1888 1792 1930 1845 1751 1872 1833
6029 CONVEX 427 'GT_PK(3,2)' 1868 1966 2054 1954 2045 2041 1918 2010 2000 1977
6030 CONVEX 428 'GT_PK(3,2)' 1413 1359 1314 1419 1365 1440 1452 1400 1456 1500
6031 CONVEX 429 'GT_PK(3,2)' 1418 1479 1551 1489 1560 1580 1498 1565 1571 1581
6032 CONVEX 430 'GT_PK(3,2)' 5482 5514 5532 5491 5523 5498 5407 5442 5414 5323
6033 CONVEX 431 'GT_PK(3,2)' 0 2 9 3 6 10 1 5 4 8
6034 CONVEX 432 'GT_PK(3,2)' 5481 5433 5382 5490 5441 5495 5415 5359 5418 5346
6035 CONVEX 433 'GT_PK(3,2)' 4144 4206 4269 4155 4215 4150 4232 4306 4234 4332
6036 CONVEX 434 'GT_PK(3,2)' 344 311 277 343 308 355 312 272 316 275
6037 CONVEX 435 'GT_PK(3,2)' 5171 5099 5025 5179 5107 5173 5266 5204 5268 5351
6038 CONVEX 436 'GT_PK(3,2)' 1053 1011 968 1004 961 959 1008 962 955 960
6039 CONVEX 437 'GT_PK(3,2)' 2593 2639 2678 2811 2859 3061 2733 2770 2966 2877
6040 CONVEX 438 'GT_PK(3,2)' 3865 3898 3930 3799 3833 3728 3966 4003 3909 4072
6041 CONVEX 439 'GT_PK(3,2)' 2151 2268 2380 2197 2314 2254 2172 2285 2221 2198
6042 CONVEX 440 'GT_PK(3,2)' 1176 1141 1117 1205 1180 1249 1194 1161 1225 1210
6043 CONVEX 441 'GT_PK(3,2)' 3278 3190 3079 3003 2927 2763 3315 3208 3032 3341
6044 CONVEX 442 'GT_PK(3,2)' 1086 1096 1111 1148 1163 1217 1112 1128 1181 1144
6045 CONVEX 443 'GT_PK(3,2)' 2647 2523 2397 2536 2418 2436 2546 2427 2438 2451
6046 CONVEX 444 'GT_PK(3,2)' 2847 2965 3068 2720 2808 2587 2983 3091 2848 3132
6047 CONVEX 445 'GT_PK(3,2)' 3218 3262 3320 3093 3150 3004 3372 3419 3255 3538
6048 CONVEX 446 'GT_PK(3,2)' 2520 2558 2594 2699 2740 2893 2674 2718 2862 2837
6049 CONVEX 447 'GT_PK(3,2)' 1186 1207 1238 1177 1201 1171 1150 1174 1142 1119
6050 CONVEX 448 'GT_PK(3,2)' 1684 1604 1535 1674 1599 1672 1652 1591 1648 1635
6051 CONVEX 449 'GT_PK(3,2)' 3048 3050 3045 3025 3024 3017 2845 2843 2824 2662
6052 CONVEX 450 'GT_PK(3,2)' 3045 3026 2996 3024 3000 3017 2843 2818 2824 2662
6053 CONVEX 451 'GT_PK(3,2)' 1535 1471 1413 1599 1536 1672 1591 1521 1648 1635
6054 CONVEX 452 'GT_PK(3,2)' 1692 1776 1868 1773 1863 1867 1719 1802 1803 1752
6055 CONVEX 453 'GT_PK(3,2)' 1551 1614 1692 1694 1773 1867 1646 1719 1803 1752
6056 CONVEX 454 'GT_PK(3,2)' 4758 4741 4703 4633 4603 4524 4844 4810 4720 4926
6057 CONVEX 455 'GT_PK(3,2)' 4105 4134 4150 4211 4226 4315 4196 4222 4309 4310
6058 CONVEX 456 'GT_PK(3,2)' 186 213 259 197 235 220 154 199 173 138
6059 CONVEX 457 'GT_PK(3,2)' 3769 3746 3716 3709 3671 3639 3661 3631 3587 3538
6060 CONVEX 458 'GT_PK(3,2)' 3146 3106 3077 3252 3212 3368 2984 2952 3080 2837
6061 CONVEX 459 'GT_PK(3,2)' 1050 1020 992 1084 1047 1118 1085 1052 1116 1119
6062 CONVEX 460 'GT_PK(3,2)' 3197 3082 2990 3084 2986 3004 2963 2873 2866 2750
6063 CONVEX 461 'GT_PK(3,2)' 2906 2793 2709 2895 2784 2893 2931 2831 2924 2954
6064 CONVEX 462 'GT_PK(3,2)' 1330 1393 1474 1240 1301 1171 1390 1463 1297 1468
6065 CONVEX 463 'GT_PK(3,2)' 1516 1444 1375 1499 1423 1482 1486 1420 1472 1468
6066 CONVEX 464 'GT_PK(3,2)' 2492 2561 2636 2450 2514 2416 2623 2688 2569 2750
6067 CONVEX 465 'GT_PK(3,2)' 3171 3301 3433 2994 3111 2834 3064 3187 2891 2954
6068 CONVEX 466 'GT_PK(3,2)' 5010 4969 4946 4968 4939 4944 5071 5048 5046 5141
6069 CONVEX 467 'GT_PK(3,2)' 516 530 557 471 494 431 488 509 445 463
6070 CONVEX 468 'GT_PK(3,2)' 184 171 165 168 163 186 117 114 121 80
6071 CONVEX 469 'GT_PK(3,2)' 4581 4660 4751 4672 4760 4758 4763 4852 4854 4953
6072 CONVEX 470 'GT_PK(3,2)' 4747 4686 4625 4698 4636 4632 4801 4743 4744 4861
6073 CONVEX 471 'GT_PK(3,2)' 4604 4713 4813 4519 4624 4434 4707 4806 4623 4805
6074 CONVEX 472 'GT_PK(3,2)' 4777 4662 4546 4752 4638 4731 4815 4705 4791 4857
6075 CONVEX 473 'GT_PK(3,2)' 2908 2767 2647 2822 2698 2762 2754 2631 2689 2611
6076 CONVEX 474 'GT_PK(3,2)' 3010 2932 2847 3211 3117 3432 3137 3053 3351 3282
6077 CONVEX 475 'GT_PK(3,2)' 2254 2158 2068 2248 2152 2257 2148 2061 2149 2058
6078 CONVEX 476 'GT_PK(3,2)' 2759 2683 2587 2714 2635 2679 2589 2517 2554 2442
6079 CONVEX 477 'GT_PK(3,2)' 2763 2832 2901 2778 2852 2813 2652 2712 2672 2544
6080 CONVEX 478 'GT_PK(3,2)' 1249 1270 1311 1324 1352 1411 1343 1381 1429 1457
6081 CONVEX 479 'GT_PK(3,2)' 1248 1229 1217 1277 1263 1319 1326 1308 1360 1416
6082 CONVEX 480 'GT_PK(3,2)' 2256 2341 2436 2384 2477 2542 2217 2305 2347 2182
6083 CONVEX 481 'GT_PK(3,2)' 4632 4601 4563 4712 4687 4792 4728 4694 4802 4822
6084 CONVEX 482 'GT_PK(3,2)' 5114 5152 5173 5059 5077 4987 5229 5257 5174 5326
6085 CONVEX 483 'GT_PK(3,2)' 2601 2690 2763 2706 2778 2813 2485 2560 2581 2378
6086 CONVEX 484 'GT_PK(3,2)' 2587 2506 2424 2635 2545 2679 2415 2336 2454 2266
6087 CONVEX 485 'GT_PK(3,2)' 2424 2333 2254 2326 2248 2257 2336 2261 2259 2266
6088 CONVEX 486 'GT_PK(3,2)' 1219 1230 1249 1302 1324 1411 1300 1320 1398 1401
6089 CONVEX 487 'GT_PK(3,2)' 1217 1213 1219 1263 1262 1319 1298 1300 1348 1401
6090 CONVEX 488 'GT_PK(3,2)' 2436 2525 2601 2477 2565 2542 2404 2485 2449 2378
6091 CONVEX 489 'GT_PK(3,2)' 1117 1066 1022 1125 1075 1137 1095 1045 1101 1071
6092 CONVEX 490 'GT_PK(3,2)' 3668 3787 3869 3801 3887 3893 3784 3871 3879 3874
6093 CONVEX 491 'GT_PK(3,2)' 637 593 558 610 567 585 626 582 598 620
6094 CONVEX 492 'GT_PK(3,2)' 4224 4147 4075 4097 4021 3965 4146 4074 4019 4076
6095 CONVEX 493 'GT_PK(3,2)' 3162 3035 2926 3289 3152 3415 3023 2910 3139 2897
6096 CONVEX 494 'GT_PK(3,2)' 1039 1079 1120 1036 1076 1041 1031 1070 1030 1026
6097 CONVEX 495 'GT_PK(3,2)' 4479 4555 4641 4577 4657 4683 4415 4495 4522 4349
6098 CONVEX 496 'GT_PK(3,2)' 3045 3050 3048 3298 3296 3571 3266 3270 3541 3509
6099 CONVEX 497 'GT_PK(3,2)' 1868 1776 1692 1777 1693 1702 1843 1750 1754 1828
6100 CONVEX 498 'GT_PK(3,2)' 2996 3026 3045 3273 3298 3571 3215 3241 3519 3457
6101 CONVEX 499 'GT_PK(3,2)' 1535 1604 1684 1509 1589 1496 1561 1630 1541 1594
6102 CONVEX 500 'GT_PK(3,2)' 1413 1471 1535 1450 1509 1496 1367 1428 1403 1333
6103 CONVEX 501 'GT_PK(3,2)' 1692 1614 1551 1693 1615 1702 1598 1522 1600 1503
6104 CONVEX 502 'GT_PK(3,2)' 8 18 31 14 27 24 13 26 17 22
6105 CONVEX 503 'GT_PK(3,2)' 5111 5225 5323 5202 5298 5284 5247 5343 5319 5356
6106 CONVEX 504 'GT_PK(3,2)' 4540 4510 4472 4425 4397 4330 4640 4602 4529 4742
6107 CONVEX 505 'GT_PK(3,2)' 4446 4533 4594 4572 4648 4709 4390 4463 4527 4342
6108 CONVEX 506 'GT_PK(3,2)' 4272 4187 4116 4462 4375 4683 4319 4230 4522 4349
6109 CONVEX 507 'GT_PK(3,2)' 5508 5556 5590 5519 5563 5527 5511 5558 5522 5516
6110 CONVEX 508 'GT_PK(3,2)' 3048 3029 2999 3264 3243 3514 3247 3228 3495 3473
6111 CONVEX 509 'GT_PK(3,2)' 1684 1763 1859 1809 1907 1955 1712 1810 1852 1757
6112 CONVEX 510 'GT_PK(3,2)' 2909 2958 2996 3115 3167 3364 3116 3174 3362 3360
6113 CONVEX 511 'GT_PK(3,2)' 2054 1966 1868 2130 2032 2194 2034 1943 2102 2016
6114 CONVEX 512 'GT_PK(3,2)' 1314 1359 1413 1261 1307 1221 1265 1315 1223 1227
6115 CONVEX 513 'GT_PK(3,2)' 1551 1479 1418 1436 1376 1337 1455 1385 1345 1366
6116 CONVEX 514 'GT_PK(3,2)' 2593 2651 2702 2811 2870 3061 2543 2584 2752 2483
6117 CONVEX 515 'GT_PK(3,2)' 3865 3891 3927 3799 3826 3728 3810 3843 3735 3757
6118 CONVEX 516 'GT_PK(3,2)' 1053 1081 1106 1004 1027 959 1115 1143 1062 1184
6119 CONVEX 517 'GT_PK(3,2)' 3623 3567 3518 3683 3638 3747 3740 3698 3786 3827
6120 CONVEX 518 'GT_PK(3,2)' 859 832 805 811 786 769 816 788 770 775
6121 CONVEX 519 'GT_PK(3,2)' 291 326 362 260 301 244 297 331 269 305
6122 CONVEX 520 'GT_PK(3,2)' 516 547 581 498 531 490 530 566 524 557
6123 CONVEX 521 'GT_PK(3,2)' 4946 5070 5194 5011 5137 5087 5048 5170 5110 5141
6124 CONVEX 522 'GT_PK(3,2)' 4540 4569 4605 4496 4531 4456 4466 4508 4426 4400
6125 CONVEX 523 'GT_PK(3,2)' 4540 4569 4605 4685 4719 4833 4496 4531 4646 4456
6126 CONVEX 524 'GT_PK(3,2)' 3623 3666 3719 3762 3803 3868 3532 3598 3702 3447
6127 CONVEX 525 'GT_PK(3,2)' 3623 3666 3719 3790 3824 3918 3762 3803 3903 3868
6128 CONVEX 526 'GT_PK(3,2)' 859 880 908 873 892 886 910 939 926 967
6129 CONVEX 527 'GT_PK(3,2)' 859 880 908 853 883 858 873 892 869 886
6130 CONVEX 528 'GT_PK(3,2)' 1316 1368 1446 1412 1483 1516 1388 1458 1495 1477
6131 CONVEX 529 'GT_PK(3,2)' 2328 2356 2343 2403 2419 2492 2264 2271 2334 2190
6132 CONVEX 530 'GT_PK(3,2)' 3530 3556 3525 3336 3340 3171 3349 3344 3170 3182
6133 CONVEX 531 'GT_PK(3,2)' 1356 1285 1238 1414 1342 1474 1378 1312 1432 1392
6134 CONVEX 532 'GT_PK(3,2)' 3331 3346 3320 3156 3141 2990 3168 3159 2998 3015
6135 CONVEX 533 'GT_PK(3,2)' 2590 2619 2594 2654 2653 2709 2478 2480 2538 2381
6136 CONVEX 534 'GT_PK(3,2)' 3865 3788 3693 3799 3706 3728 3898 3821 3833 3930
6137 CONVEX 535 'GT_PK(3,2)' 2593 2499 2409 2811 2717 3061 2639 2540 2859 2678
6138 CONVEX 536 'GT_PK(3,2)' 1053 1069 1094 1004 1019 959 1011 1028 961 968
6139 CONVEX 537 'GT_PK(3,2)' 1622 1569 1516 1549 1499 1482 1676 1621 1607 1746
6140 CONVEX 538 'GT_PK(3,2)' 2258 2372 2492 2321 2450 2416 2315 2429 2398 2395
6141 CONVEX 539 'GT_PK(3,2)' 3334 3261 3171 3069 2994 2834 3142 3060 2925 3014
6142 CONVEX 540 'GT_PK(3,2)' 1474 1501 1534 1432 1460 1392 1578 1603 1540 1697
6143 CONVEX 541 'GT_PK(3,2)' 2990 3094 3206 2998 3098 3015 2928 3019 2948 2900
6144 CONVEX 542 'GT_PK(3,2)' 2709 2574 2447 2538 2410 2381 2603 2482 2460 2556
6145 CONVEX 543 'GT_PK(3,2)' 5133 5254 5354 5166 5281 5197 5132 5252 5165 5134
6146 CONVEX 544 'GT_PK(3,2)' 464 478 497 455 476 459 433 451 430 403
6147 CONVEX 545 'GT_PK(3,2)' 4513 4542 4574 4684 4732 4866 4408 4444 4585 4326
6148 CONVEX 546 'GT_PK(3,2)' 3489 3477 3464 3350 3348 3218 3361 3354 3229 3248
6149 CONVEX 547 'GT_PK(3,2)' 1293 1282 1276 1235 1224 1186 1362 1350 1295 1440
6150 CONVEX 548 'GT_PK(3,2)' 1410 1404 1409 1325 1329 1255 1493 1491 1402 1580
6151 CONVEX 549 'GT_PK(3,2)' 1987 2069 2145 2128 2199 2262 1959 2035 2093 1930
6152 CONVEX 550 'GT_PK(3,2)' 358 310 259 292 241 231 329 283 267 317
6153 CONVEX 551 'GT_PK(3,2)' 4271 4348 4437 4391 4476 4535 4368 4458 4501 4468
6154 CONVEX 552 'GT_PK(3,2)' 4084 4049 4026 4138 4107 4186 3994 3954 4046 3900
6155 CONVEX 553 'GT_PK(3,2)' 4084 4049 4026 4181 4151 4287 4138 4107 4245 4186
6156 CONVEX 554 'GT_PK(3,2)' 850 820 790 852 825 857 882 856 884 912
6157 CONVEX 555 'GT_PK(3,2)' 850 820 790 824 787 789 852 825 823 857
6158 CONVEX 556 'GT_PK(3,2)' 4318 4278 4250 4227 4200 4159 4236 4201 4158 4161
6159 CONVEX 557 'GT_PK(3,2)' 4318 4278 4250 4399 4364 4504 4227 4200 4331 4159
6160 CONVEX 558 'GT_PK(3,2)' 2391 2310 2232 2455 2374 2520 2210 2138 2270 2041
6161 CONVEX 559 'GT_PK(3,2)' 3609 3626 3640 3527 3542 3424 3491 3510 3391 3369
6162 CONVEX 560 'GT_PK(3,2)' 5438 5458 5473 5376 5397 5324 5372 5398 5318 5313
6163 CONVEX 561 'GT_PK(3,2)' 5391 5329 5253 5272 5187 5130 5294 5216 5155 5185
6164 CONVEX 562 'GT_PK(3,2)' 201 141 99 167 112 144 149 104 123 109
6165 CONVEX 563 'GT_PK(3,2)' 4985 4957 4921 5073 5050 5150 4863 4824 4937 4737
6166 CONVEX 564 'GT_PK(3,2)' 4691 4786 4876 4620 4711 4562 4680 4769 4610 4667
6167 CONVEX 565 'GT_PK(3,2)' 725 689 647 709 670 697 674 635 654 627
6168 CONVEX 566 'GT_PK(3,2)' 3214 3041 2884 3267 3086 3326 3123 2967 3186 3052
6169 CONVEX 567 'GT_PK(3,2)' 3768 3658 3529 3521 3371 3227 3726 3613 3458 3681
6170 CONVEX 568 'GT_PK(3,2)' 834 878 925 854 899 875 879 924 900 927
6171 CONVEX 569 'GT_PK(3,2)' 4271 4176 4083 4279 4180 4281 4270 4172 4273 4272
6172 CONVEX 570 'GT_PK(3,2)' 400 372 355 332 314 274 360 333 295 324
6173 CONVEX 571 'GT_PK(3,2)' 5516 5536 5557 5522 5543 5527 5437 5471 5444 5345
6174 CONVEX 572 'GT_PK(3,2)' 4479 4597 4726 4577 4697 4683 4555 4681 4657 4641
6175 CONVEX 573 'GT_PK(3,2)' 4416 4336 4256 4493 4401 4553 4297 4216 4351 4182
6176 CONVEX 574 'GT_PK(3,2)' 655 695 730 653 694 664 651 691 652 649
6177 CONVEX 575 'GT_PK(3,2)' 4667 4769 4876 4541 4643 4414 4733 4831 4599 4796
6178 CONVEX 576 'GT_PK(3,2)' 5614 5612 5607 5595 5591 5572 5594 5589 5568 5565
6179 CONVEX 577 'GT_PK(3,2)' 5419 5445 5468 5476 5500 5520 5352 5374 5412 5278
6180 CONVEX 578 'GT_PK(3,2)' 5557 5521 5460 5512 5452 5446 5471 5404 5395 5345
6181 CONVEX 579 'GT_PK(3,2)' 3577 3555 3514 3465 3434 3369 3615 3588 3512 3643
6182 CONVEX 580 'GT_PK(3,2)' 2051 2123 2194 2047 2118 2041 1984 2060 1980 1920
6183 CONVEX 581 'GT_PK(3,2)' 1364 1287 1221 1397 1322 1440 1349 1274 1383 1344
6184 CONVEX 582 'GT_PK(3,2)' 3572 3472 3364 3403 3307 3248 3539 3452 3373 3513
6185 CONVEX 583 'GT_PK(3,2)' 1519 1427 1337 1548 1454 1580 1523 1430 1556 1526
6186 CONVEX 584 'GT_PK(3,2)' 1679 1807 1955 1793 1940 1930 1735 1881 1861 1800
6187 CONVEX 585 'GT_PK(3,2)' 5460 5403 5339 5452 5390 5446 5404 5337 5395 5345
6188 CONVEX 586 'GT_PK(3,2)' 2763 2690 2601 2778 2706 2813 2927 2828 2943 3079
6189 CONVEX 587 'GT_PK(3,2)' 2254 2333 2424 2248 2326 2257 2314 2399 2304 2380
6190 CONVEX 588 'GT_PK(3,2)' 2424 2506 2587 2545 2635 2679 2617 2720 2753 2847
6191 CONVEX 589 'GT_PK(3,2)' 2601 2525 2436 2565 2477 2542 2626 2536 2579 2647
6192 CONVEX 590 'GT_PK(3,2)' 1249 1230 1219 1324 1302 1411 1180 1164 1241 1117
6193 CONVEX 591 'GT_PK(3,2)' 1219 1213 1217 1262 1263 1319 1145 1148 1189 1086
6194 CONVEX 592 'GT_PK(3,2)' 3802 3715 3601 3770 3669 3747 3608 3463 3552 3335
6195 CONVEX 593 'GT_PK(3,2)' 4117 4177 4244 4212 4284 4330 4069 4130 4163 4024
6196 CONVEX 594 'GT_PK(3,2)' 660 672 684 671 680 686 715 726 723 766
6197 CONVEX 595 'GT_PK(3,2)' 2582 2527 2442 2366 2299 2173 2420 2348 2224 2269
6198 CONVEX 596 'GT_PK(3,2)' 2058 1950 1833 2114 2002 2173 2001 1889 2066 1948
6199 CONVEX 597 'GT_PK(3,2)' 1457 1508 1581 1563 1612 1673 1570 1627 1668 1685
6200 CONVEX 598 'GT_PK(3,2)' 2544 2596 2644 2379 2428 2244 2417 2464 2278 2300
6201 CONVEX 599 'GT_PK(3,2)' 1500 1448 1416 1577 1539 1673 1572 1525 1644 1647
6202 CONVEX 600 'GT_PK(3,2)' 1977 2087 2182 2098 2209 2244 1996 2099 2140 2021
6203 CONVEX 601 'GT_PK(3,2)' 1364 1426 1494 1453 1515 1557 1397 1464 1492 1440
6204 CONVEX 602 'GT_PK(3,2)' 3572 3633 3687 3622 3672 3644 3403 3479 3449 3248
6205 CONVEX 603 'GT_PK(3,2)' 1771 1780 1800 1654 1670 1557 1846 1861 1724 1930
6206 CONVEX 604 'GT_PK(3,2)' 1680 1601 1526 1714 1637 1759 1620 1556 1667 1580
6207 CONVEX 605 'GT_PK(3,2)' 2051 2031 2014 1908 1891 1759 2047 2024 1904 2041
6208 CONVEX 606 'GT_PK(3,2)' 3733 3689 3643 3691 3653 3644 3563 3512 3507 3369
6209 CONVEX 607 'GT_PK(3,2)' 4076 4001 3927 3908 3826 3728 3969 3891 3799 3865
6210 CONVEX 608 'GT_PK(3,2)' 2897 2786 2702 2972 2870 3061 2742 2651 2811 2593
6211 CONVEX 609 'GT_PK(3,2)' 1026 1065 1106 987 1027 959 1038 1081 1004 1053
6212 CONVEX 610 'GT_PK(3,2)' 1859 1969 2068 1907 2003 1955 1912 2011 1960 1967
6213 CONVEX 611 'GT_PK(3,2)' 2759 2838 2909 3042 3115 3364 2981 3056 3297 3231
6214 CONVEX 612 'GT_PK(3,2)' 2999 2955 2901 3243 3191 3514 3192 3129 3454 3389
6215 CONVEX 613 'GT_PK(3,2)' 1418 1357 1311 1376 1321 1337 1334 1278 1294 1251
6216 CONVEX 614 'GT_PK(3,2)' 1248 1272 1314 1231 1261 1221 1197 1228 1188 1157
6217 CONVEX 615 'GT_PK(3,2)' 2256 2155 2054 2219 2130 2194 2230 2136 2201 2208
6218 CONVEX 616 'GT_PK(3,2)' 627 599 575 607 579 592 657 632 638 696
6219 CONVEX 617 'GT_PK(3,2)' 4667 4613 4556 4541 4483 4414 4549 4500 4420 4438
6220 CONVEX 618 'GT_PK(3,2)' 1106 1162 1218 1123 1178 1140 1143 1200 1156 1184
6221 CONVEX 619 'GT_PK(3,2)' 2702 2700 2703 2861 2864 3036 2584 2583 2748 2483
6222 CONVEX 620 'GT_PK(3,2)' 3927 3919 3914 3882 3878 3847 3843 3835 3800 3757
6223 CONVEX 621 'GT_PK(3,2)' 3675 3771 3847 3619 3732 3569 3636 3750 3584 3614
6224 CONVEX 622 'GT_PK(3,2)' 2805 2930 3036 2836 2947 2871 3033 3151 3059 3281
6225 CONVEX 623 'GT_PK(3,2)' 1244 1191 1140 1158 1110 1088 1190 1138 1109 1139
6226 CONVEX 624 'GT_PK(3,2)' 5113 5021 4924 4970 4884 4848 5139 5053 5000 5159
6227 CONVEX 625 'GT_PK(3,2)' 4382 4314 4244 4398 4333 4422 4494 4418 4518 4604
6228 CONVEX 626 'GT_PK(3,2)' 4382 4314 4244 4276 4204 4169 4398 4333 4294 4422
6229 CONVEX 627 'GT_PK(3,2)' 718 704 684 740 722 754 678 656 702 637
6230 CONVEX 628 'GT_PK(3,2)' 718 704 684 762 746 807 740 722 776 754
6231 CONVEX 629 'GT_PK(3,2)' 3337 3474 3601 3380 3505 3416 3517 3641 3546 3668
6232 CONVEX 630 'GT_PK(3,2)' 3337 3474 3601 3166 3294 3009 3380 3505 3203 3416
6233 CONVEX 631 'GT_PK(3,2)' 3876 3894 3916 3933 3947 3996 3984 3999 4043 4083
6234 CONVEX 632 'GT_PK(3,2)' 3876 3894 3916 3761 3780 3607 3933 3947 3822 3996
6235 CONVEX 633 'GT_PK(3,2)' 639 661 682 640 662 643 595 619 594 556
6236 CONVEX 634 'GT_PK(3,2)' 639 661 682 688 711 739 640 662 692 643
6237 CONVEX 635 'GT_PK(3,2)' 4113 4131 4149 4035 4052 3956 4194 4210 4119 4282
6238 CONVEX 636 'GT_PK(3,2)' 4113 4131 4149 4031 4041 3936 4035 4052 3943 3956
6239 CONVEX 637 'GT_PK(3,2)' 3218 3177 3132 2937 2892 2679 3300 3254 2992 3364
6240 CONVEX 638 'GT_PK(3,2)' 1186 1165 1144 1245 1220 1319 1196 1179 1258 1221
6241 CONVEX 639 'GT_PK(3,2)' 2520 2479 2451 2528 2487 2542 2350 2318 2351 2194
6242 CONVEX 640 'GT_PK(3,2)' 2198 2231 2262 2218 2252 2257 2082 2105 2095 1955
6243 CONVEX 641 'GT_PK(3,2)' 1210 1234 1255 1296 1332 1411 1264 1292 1369 1337
6244 CONVEX 642 'GT_PK(3,2)' 3341 3384 3424 3063 3097 2813 3435 3482 3138 3514
6245 CONVEX 643 'GT_PK(3,2)' 1255 1284 1316 1195 1212 1137 1358 1388 1280 1477
6246 CONVEX 644 'GT_PK(3,2)' 2262 2292 2328 2430 2462 2615 2223 2264 2388 2190
6247 CONVEX 645 'GT_PK(3,2)' 38 62 99 64 104 109 48 76 84 66
6248 CONVEX 646 'GT_PK(3,2)' 5493 5485 5473 5408 5398 5313 5435 5421 5347 5373
6249 CONVEX 647 'GT_PK(3,2)' 3424 3480 3530 3316 3353 3199 3306 3349 3184 3182
6250 CONVEX 648 'GT_PK(3,2)' 1238 1207 1186 1201 1177 1171 1312 1279 1266 1392
6251 CONVEX 649 'GT_PK(3,2)' 3320 3262 3218 3150 3093 3004 3159 3105 3002 3015
6252 CONVEX 650 'GT_PK(3,2)' 2594 2558 2520 2740 2699 2893 2480 2441 2616 2381
6253 CONVEX 651 'GT_PK(3,2)' 2068 2158 2254 2135 2221 2198 2104 2197 2172 2151
6254 CONVEX 652 'GT_PK(3,2)' 2587 2683 2759 2848 2942 3132 2808 2914 3091 3068
6255 CONVEX 653 'GT_PK(3,2)' 2901 2832 2763 3103 3032 3341 3076 3003 3315 3278
6256 CONVEX 654 'GT_PK(3,2)' 1311 1270 1249 1253 1225 1210 1239 1205 1194 1176
6257 CONVEX 655 'GT_PK(3,2)' 1217 1229 1248 1181 1193 1144 1163 1175 1128 1111
6258 CONVEX 656 'GT_PK(3,2)' 2436 2341 2256 2438 2342 2451 2418 2317 2427 2397
6259 CONVEX 657 'GT_PK(3,2)' 5508 5511 5516 5519 5522 5527 5432 5437 5444 5345
6260 CONVEX 658 'GT_PK(3,2)' 2661 2532 2395 2529 2398 2416 2568 2429 2450 2492
6261 CONVEX 659 'GT_PK(3,2)' 1643 1689 1746 1562 1607 1482 1567 1621 1499 1516
6262 CONVEX 660 'GT_PK(3,2)' 2801 2920 3014 2814 2925 2834 2974 3060 2994 3171
6263 CONVEX 661 'GT_PK(3,2)' 2442 2354 2266 2299 2216 2173 2276 2186 2147 2133
6264 CONVEX 662 'GT_PK(3,2)' 2471 2588 2711 2452 2567 2439 2511 2629 2490 2551
6265 CONVEX 663 'GT_PK(3,2)' 3037 2951 2851 2760 2677 2512 2815 2736 2566 2628
6266 CONVEX 664 'GT_PK(3,2)' 2266 2164 2058 2216 2114 2173 2186 2094 2147 2133
6267 CONVEX 665 'GT_PK(3,2)' 2711 2817 2934 2567 2671 2439 2629 2728 2490 2551
6268 CONVEX 666 'GT_PK(3,2)' 1798 1796 1816 1869 1880 1945 1924 1932 1992 2044
6269 CONVEX 667 'GT_PK(3,2)' 1401 1424 1457 1529 1563 1673 1505 1533 1640 1618
6270 CONVEX 668 'GT_PK(3,2)' 2378 2465 2544 2303 2379 2244 2282 2353 2215 2184
6271 CONVEX 669 'GT_PK(3,2)' 2851 2743 2621 2677 2563 2512 2736 2625 2566 2628
6272 CONVEX 670 'GT_PK(3,2)' 1865 1826 1798 1903 1869 1945 1952 1924 1992 2044
6273 CONVEX 671 'GT_PK(3,2)' 1416 1396 1401 1539 1529 1673 1512 1505 1640 1618
6274 CONVEX 672 'GT_PK(3,2)' 2182 2286 2378 2209 2303 2244 2185 2282 2215 2184
6275 CONVEX 673 'GT_PK(3,2)' 1697 1669 1643 1586 1562 1482 1578 1543 1473 1474
6276 CONVEX 674 'GT_PK(3,2)' 2900 2772 2661 2640 2529 2416 2928 2795 2687 2990
6277 CONVEX 675 'GT_PK(3,2)' 2556 2695 2801 2686 2814 2834 2603 2756 2765 2709
6278 CONVEX 676 'GT_PK(3,2)' 362 399 442 346 386 338 375 415 361 394
6279 CONVEX 677 'GT_PK(3,2)' 1955 1960 1967 2003 2011 2068 2082 2086 2135 2198
6280 CONVEX 678 'GT_PK(3,2)' 1337 1294 1251 1321 1278 1311 1264 1226 1253 1210
6281 CONVEX 679 'GT_PK(3,2)' 3231 3297 3364 2981 3042 2759 3189 3254 2942 3132
6282 CONVEX 680 'GT_PK(3,2)' 1157 1188 1221 1197 1231 1248 1146 1179 1193 1144
6283 CONVEX 681 'GT_PK(3,2)' 3514 3454 3389 3191 3129 2901 3435 3370 3103 3341
6284 CONVEX 682 'GT_PK(3,2)' 5520 5476 5419 5412 5352 5278 5509 5465 5392 5501
6285 CONVEX 683 'GT_PK(3,2)' 1635 1566 1500 1720 1645 1820 1696 1623 1785 1758
6286 CONVEX 684 'GT_PK(3,2)' 1752 1858 1977 1818 1929 1890 1789 1902 1855 1832
6287 CONVEX 685 'GT_PK(3,2)' 2171 2088 1998 2159 2077 2150 2204 2131 2195 2249
6288 CONVEX 686 'GT_PK(3,2)' 2644 2664 2662 2503 2515 2386 2473 2484 2360 2330
6289 CONVEX 687 'GT_PK(3,2)' 2382 2273 2171 2263 2159 2150 2306 2204 2195 2249
6290 CONVEX 688 'GT_PK(3,2)' 1581 1662 1752 1721 1818 1890 1700 1789 1855 1832
6291 CONVEX 689 'GT_PK(3,2)' 3175 3180 3154 2918 2907 2680 2977 2970 2737 2787
6292 CONVEX 690 'GT_PK(3,2)' 2662 2637 2582 2515 2475 2386 2484 2457 2360 2330
6293 CONVEX 691 'GT_PK(3,2)' 2059 2146 2250 2075 2163 2091 2121 2203 2137 2178
6294 CONVEX 692 'GT_PK(3,2)' 1833 1725 1635 1825 1720 1820 1790 1696 1785 1758
6295 CONVEX 693 'GT_PK(3,2)' 1911 1981 2059 1995 2075 2091 2049 2121 2137 2178
6296 CONVEX 694 'GT_PK(3,2)' 3085 3143 3175 2876 2918 2680 2944 2977 2737 2787
6297 CONVEX 695 'GT_PK(3,2)' 2208 2201 2194 2230 2219 2256 2322 2318 2342 2451
6298 CONVEX 696 'GT_PK(3,2)' 459 495 528 413 453 366 473 510 428 490
6299 CONVEX 697 'GT_PK(3,2)' 4924 4980 5037 4781 4834 4641 5053 5103 4894 5159
6300 CONVEX 698 'GT_PK(3,2)' 2611 2749 2884 2689 2810 2762 2754 2889 2822 2908
6301 CONVEX 699 'GT_PK(3,2)' 3282 3396 3529 3351 3481 3432 3137 3257 3211 3010
6302 CONVEX 700 'GT_PK(3,2)' 3868 3940 4012 3825 3902 3789 3791 3866 3748 3703
6303 CONVEX 701 'GT_PK(3,2)' 4456 4380 4322 4329 4258 4199 4335 4266 4207 4214
6304 CONVEX 702 'GT_PK(3,2)' 886 874 868 830 818 769 916 906 862 947
6305 CONVEX 703 'GT_PK(3,2)' 423 429 442 402 415 394 380 386 361 338
6306 CONVEX 704 'GT_PK(3,2)' 4936 4887 4835 4776 4727 4617 4993 4938 4827 5049
6307 CONVEX 705 'GT_PK(3,2)' 5215 5223 5234 5175 5184 5138 5088 5098 5041 4944
6308 CONVEX 706 'GT_PK(3,2)' 4835 4882 4921 4727 4768 4617 4938 4984 4827 5049
6309 CONVEX 707 'GT_PK(3,2)' 4416 4503 4574 4362 4444 4326 4544 4629 4486 4665
6310 CONVEX 708 'GT_PK(3,2)' 5602 5587 5574 5566 5545 5510 5603 5588 5564 5600
6311 CONVEX 709 'GT_PK(3,2)' 4437 4514 4563 4639 4699 4843 4545 4612 4745 4649
6312 CONVEX 710 'GT_PK(3,2)' 465 411 358 446 392 436 441 388 420 418
6313 CONVEX 711 'GT_PK(3,2)' 4594 4659 4703 4767 4818 4941 4530 4576 4701 4461
6314 CONVEX 712 'GT_PK(3,2)' 4411 4337 4269 4469 4395 4539 4366 4299 4413 4315
6315 CONVEX 713 'GT_PK(3,2)' 1779 1730 1697 1860 1821 1951 1639 1603 1722 1534
6316 CONVEX 714 'GT_PK(3,2)' 3090 3006 2900 2819 2731 2572 3134 3019 2867 3206
6317 CONVEX 715 'GT_PK(3,2)' 2281 2413 2556 2288 2426 2307 2344 2482 2370 2447
6318 CONVEX 716 'GT_PK(3,2)' 684 672 660 680 671 686 634 624 631 585
6319 CONVEX 717 'GT_PK(3,2)' 4881 4952 5025 5101 5168 5289 4947 5016 5149 4987
6320 CONVEX 718 'GT_PK(3,2)' 2395 2267 2139 2309 2177 2234 2315 2176 2237 2258
6321 CONVEX 719 'GT_PK(3,2)' 1746 1814 1894 1866 1939 1988 1676 1741 1794 1622
6322 CONVEX 720 'GT_PK(3,2)' 3014 3088 3158 2799 2875 2613 3142 3237 2950 3334
6323 CONVEX 721 'GT_PK(3,2)' 5159 5103 5037 4915 4855 4683 5232 5181 5001 5296
6324 CONVEX 722 'GT_PK(3,2)' 5380 5413 5438 5315 5350 5260 5309 5342 5242 5234
6325 CONVEX 723 'GT_PK(3,2)' 2051 1984 1920 2047 1980 2041 1908 1837 1904 1759
6326 CONVEX 724 'GT_PK(3,2)' 3577 3615 3643 3465 3512 3369 3620 3653 3507 3644
6327 CONVEX 725 'GT_PK(3,2)' 1410 1374 1337 1493 1454 1580 1325 1292 1402 1255
6328 CONVEX 726 'GT_PK(3,2)' 1987 1973 1955 1959 1940 1930 2128 2105 2093 2262
6329 CONVEX 727 'GT_PK(3,2)' 1221 1250 1276 1322 1350 1440 1196 1224 1295 1186
6330 CONVEX 728 'GT_PK(3,2)' 3609 3557 3514 3491 3434 3369 3527 3482 3391 3424
6331 CONVEX 729 'GT_PK(3,2)' 3364 3414 3464 3307 3354 3248 3300 3348 3229 3218
6332 CONVEX 730 'GT_PK(3,2)' 5431 5386 5351 5312 5268 5173 5361 5314 5230 5289
6333 CONVEX 731 'GT_PK(3,2)' 255 266 275 303 316 355 211 223 265 174
6334 CONVEX 732 'GT_PK(3,2)' 5305 5218 5113 5095 4970 4848 5239 5139 5000 5159
6335 CONVEX 733 'GT_PK(3,2)' 4322 4380 4456 4258 4329 4199 4498 4570 4421 4671
6336 CONVEX 734 'GT_PK(3,2)' 868 874 886 818 830 769 841 851 792 821
6337 CONVEX 735 'GT_PK(3,2)' 2194 2214 2232 2118 2138 2041 2350 2374 2270 2520
6338 CONVEX 736 'GT_PK(3,2)' 1364 1349 1344 1397 1383 1440 1453 1445 1492 1557
6339 CONVEX 737 'GT_PK(3,2)' 3572 3539 3513 3403 3373 3248 3622 3589 3449 3644
6340 CONVEX 738 'GT_PK(3,2)' 4342 4463 4594 4527 4648 4709 4407 4530 4578 4461
6341 CONVEX 739 'GT_PK(3,2)' 4479 4415 4349 4577 4522 4683 4346 4296 4445 4233
6342 CONVEX 740 'GT_PK(3,2)' 1679 1735 1800 1793 1861 1930 1610 1670 1724 1557
6343 CONVEX 741 'GT_PK(3,2)' 1519 1523 1526 1548 1556 1580 1634 1637 1667 1759
6344 CONVEX 742 'GT_PK(3,2)' 4450 4381 4323 4427 4354 4414 4509 4431 4483 4556
6345 CONVEX 743 'GT_PK(3,2)' 5305 5239 5159 5169 5074 4998 5302 5232 5163 5296
6346 CONVEX 744 'GT_PK(3,2)' 418 388 358 420 392 436 363 329 364 317
6347 CONVEX 745 'GT_PK(3,2)' 4437 4545 4649 4476 4583 4535 4458 4567 4501 4468
6348 CONVEX 746 'GT_PK(3,2)' 4953 5008 5067 4854 4912 4758 4886 4951 4793 4838
6349 CONVEX 747 'GT_PK(3,2)' 2016 1970 1920 1943 1897 1868 2102 2060 2032 2194
6350 CONVEX 748 'GT_PK(3,2)' 3577 3526 3473 3304 3247 3048 3555 3495 3264 3514
6351 CONVEX 749 'GT_PK(3,2)' 1227 1281 1344 1315 1379 1413 1223 1274 1307 1221
6352 CONVEX 750 'GT_PK(3,2)' 3360 3440 3513 3174 3242 2996 3362 3452 3167 3364
6353 CONVEX 751 'GT_PK(3,2)' 5054 4959 4876 4916 4831 4796 4907 4814 4780 4774
6354 CONVEX 752 'GT_PK(3,2)' 1519 1441 1366 1530 1455 1551 1427 1345 1436 1337
6355 CONVEX 753 'GT_PK(3,2)' 1679 1711 1757 1678 1712 1684 1807 1852 1809 1955
6356 CONVEX 754 'GT_PK(3,2)' 2621 2576 2556 2563 2530 2512 2526 2486 2472 2435
6357 CONVEX 755 'GT_PK(3,2)' 2934 2898 2900 2671 2660 2439 2806 2790 2577 2719
6358 CONVEX 756 'GT_PK(3,2)' 1816 1762 1697 1880 1815 1945 1946 1886 1993 2076
6359 CONVEX 757 'GT_PK(3,2)' 5557 5543 5527 5471 5444 5345 5512 5494 5395 5446
6360 CONVEX 758 'GT_PK(3,2)' 5527 5494 5446 5487 5443 5439 5444 5395 5385 5345
6361 CONVEX 759 'GT_PK(3,2)' 3014 3007 3037 2751 2760 2512 2881 2894 2648 2761
6362 CONVEX 760 'GT_PK(3,2)' 1746 1817 1865 1840 1903 1945 1934 1986 2012 2109
6363 CONVEX 761 'GT_PK(3,2)' 2395 2432 2471 2412 2452 2439 2373 2407 2396 2352
6364 CONVEX 762 'GT_PK(3,2)' 5520 5509 5501 5464 5448 5400 5548 5540 5507 5572
6365 CONVEX 763 'GT_PK(3,2)' 3424 3384 3341 3316 3265 3199 3570 3524 3456 3693
6366 CONVEX 764 'GT_PK(3,2)' 1255 1234 1210 1195 1170 1137 1168 1147 1113 1094
6367 CONVEX 765 'GT_PK(3,2)' 2262 2231 2198 2430 2394 2615 2329 2298 2507 2409
6368 CONVEX 766 'GT_PK(3,2)' 2266 2354 2442 2454 2554 2679 2415 2517 2635 2587
6369 CONVEX 767 'GT_PK(3,2)' 2544 2465 2378 2672 2581 2813 2652 2560 2778 2763
6370 CONVEX 768 'GT_PK(3,2)' 2058 2164 2266 2149 2259 2257 2148 2261 2248 2254
6371 CONVEX 769 'GT_PK(3,2)' 1457 1424 1401 1429 1398 1411 1343 1320 1324 1249
6372 CONVEX 770 'GT_PK(3,2)' 1401 1396 1416 1348 1360 1319 1298 1308 1263 1217
6373 CONVEX 771 'GT_PK(3,2)' 2378 2286 2182 2449 2347 2542 2404 2305 2477 2436
6374 CONVEX 772 'GT_PK(3,2)' 339 296 249 354 309 377 352 307 367 366
6375 CONVEX 773 'GT_PK(3,2)' 4617 4611 4606 4776 4772 4936 4634 4631 4795 4647
6376 CONVEX 774 'GT_PK(3,2)' 983 972 964 920 914 863 1000 993 940 1023
6377 CONVEX 775 'GT_PK(3,2)' 3744 3717 3697 3755 3737 3774 3600 3573 3625 3421
6378 CONVEX 776 'GT_PK(3,2)' 4028 3951 3890 4037 3979 4060 3913 3841 3923 3793
6379 CONVEX 777 'GT_PK(3,2)' 3795 3888 3985 3743 3842 3678 3864 3950 3815 3930
6380 CONVEX 778 'GT_PK(3,2)' 2488 2599 2729 2655 2769 2820 2575 2701 2745 2678
6381 CONVEX 779 'GT_PK(3,2)' 981 937 890 949 907 928 971 931 945 968
6382 CONVEX 780 'GT_PK(3,2)' 394 426 461 402 440 423 405 443 422 431
6383 CONVEX 781 'GT_PK(3,2)' 2662 2664 2644 2824 2807 3017 2845 2833 3025 3048
6384 CONVEX 782 'GT_PK(3,2)' 2582 2637 2662 2779 2824 3017 2777 2818 3000 2996
6385 CONVEX 783 'GT_PK(3,2)' 1635 1725 1833 1648 1743 1672 1652 1751 1674 1684
6386 CONVEX 784 'GT_PK(3,2)' 1977 1858 1752 1916 1803 1867 1918 1802 1863 1868
6387 CONVEX 785 'GT_PK(3,2)' 1500 1566 1635 1576 1648 1672 1452 1521 1536 1413
6388 CONVEX 786 'GT_PK(3,2)' 1752 1662 1581 1803 1706 1867 1646 1565 1694 1551
6389 CONVEX 787 'GT_PK(3,2)' 5527 5537 5549 5444 5462 5345 5487 5506 5385 5439
6390 CONVEX 788 'GT_PK(3,2)' 459 476 497 455 478 464 495 514 493 528
6391 CONVEX 789 'GT_PK(3,2)' 5346 5251 5153 5359 5282 5382 5325 5236 5348 5307
6392 CONVEX 790 'GT_PK(3,2)' 2134 2079 2014 2083 2024 2041 2080 2015 2027 2023
6393 CONVEX 791 'GT_PK(3,2)' 5510 5550 5580 5566 5592 5602 5539 5575 5585 5567
6394 CONVEX 792 'GT_PK(3,2)' 97 132 182 85 115 82 139 191 128 202
6395 CONVEX 793 'GT_PK(3,2)' 3733 3742 3684 3563 3528 3369 3443 3405 3245 3133
6396 CONVEX 794 'GT_PK(3,2)' 1582 1517 1494 1504 1464 1440 1666 1616 1595 1761
6397 CONVEX 795 'GT_PK(3,2)' 2909 2838 2759 2774 2714 2679 2741 2675 2620 2582
6398 CONVEX 796 'GT_PK(3,2)' 2901 2955 2999 2852 2902 2813 2766 2803 2722 2644
6399 CONVEX 797 'GT_PK(3,2)' 2068 1969 1859 2152 2053 2257 1949 1845 2043 1833
6400 CONVEX 798 'GT_PK(3,2)' 1311 1357 1418 1352 1406 1411 1437 1498 1487 1581
6401 CONVEX 799 'GT_PK(3,2)' 2054 2155 2256 2280 2384 2542 2010 2110 2242 1977
6402 CONVEX 800 'GT_PK(3,2)' 1314 1272 1248 1309 1277 1319 1400 1363 1394 1500
6403 CONVEX 801 'GT_PK(3,2)' 5143 5209 5271 4997 5072 4857 5176 5241 5029 5199
6404 CONVEX 802 'GT_PK(3,2)' 82 54 33 85 56 97 74 50 78 81
6405 CONVEX 803 'GT_PK(3,2)' 4244 4177 4117 4284 4212 4330 4339 4277 4371 4434
6406 CONVEX 804 'GT_PK(3,2)' 221 250 277 193 224 174 243 271 215 274
6407 CONVEX 805 'GT_PK(3,2)' 3601 3715 3802 3669 3770 3747 3775 3851 3817 3893
6408 CONVEX 806 'GT_PK(3,2)' 3132 3177 3218 3057 3093 3004 3283 3322 3205 3432
6409 CONVEX 807 'GT_PK(3,2)' 2451 2479 2520 2659 2699 2893 2595 2638 2809 2762
6410 CONVEX 808 'GT_PK(3,2)' 1144 1165 1186 1154 1177 1171 1087 1103 1098 1032
6411 CONVEX 809 'GT_PK(3,2)' 960 994 1026 955 987 959 1008 1038 1004 1053
6412 CONVEX 810 'GT_PK(3,2)' 2877 2885 2897 2966 2972 3061 2733 2742 2811 2593
6413 CONVEX 811 'GT_PK(3,2)' 4072 4073 4076 3909 3908 3728 3966 3969 3799 3865
6414 CONVEX 812 'GT_PK(3,2)' 5503 5449 5391 5401 5341 5296 5423 5365 5316 5339
6415 CONVEX 813 'GT_PK(3,2)' 315 257 201 281 230 263 273 219 245 249
6416 CONVEX 814 'GT_PK(3,2)' 4857 4815 4777 4997 4955 5143 4791 4752 4929 4731
6417 CONVEX 815 'GT_PK(3,2)' 1022 1051 1090 1075 1108 1137 1009 1040 1059 998
6418 CONVEX 816 'GT_PK(3,2)' 4651 4734 4805 4478 4554 4330 4779 4862 4609 4914
6419 CONVEX 817 'GT_PK(3,2)' 22 26 31 17 27 24 37 43 34 59
6420 CONVEX 818 'GT_PK(3,2)' 4546 4638 4731 4705 4791 4857 4490 4582 4644 4439
6421 CONVEX 819 'GT_PK(3,2)' 4439 4379 4332 4289 4234 4150 4485 4429 4334 4539
6422 CONVEX 820 'GT_PK(3,2)' 5307 5245 5172 5236 5158 5153 5198 5119 5108 5067
6423 CONVEX 821 'GT_PK(3,2)' 218 204 202 145 139 97 238 227 164 255
6424 CONVEX 822 'GT_PK(3,2)' 5502 5535 5567 5505 5539 5510 5467 5517 5469 5431
6425 CONVEX 823 'GT_PK(3,2)' 5284 5202 5111 5319 5247 5356 5146 5055 5192 4983
6426 CONVEX 824 'GT_PK(3,2)' 4012 3940 3868 3902 3825 3789 4061 3992 3939 4098
6427 CONVEX 825 'GT_PK(3,2)' 59 94 138 83 125 111 60 98 86 68
6428 CONVEX 826 'GT_PK(3,2)' 4310 4365 4439 4451 4528 4618 4436 4515 4589 4579
6429 CONVEX 827 'GT_PK(3,2)' 99 112 144 104 123 109 76 102 84 66
6430 CONVEX 828 'GT_PK(3,2)' 5473 5397 5324 5398 5318 5313 5421 5353 5347 5373
6431 CONVEX 829 'GT_PK(3,2)' 4400 4321 4224 4313 4219 4214 4340 4257 4247 4290
6432 CONVEX 830 'GT_PK(3,2)' 3447 3303 3162 3581 3431 3703 3330 3196 3468 3234
6433 CONVEX 831 'GT_PK(3,2)' 967 1002 1039 954 988 947 944 978 934 922
6434 CONVEX 832 'GT_PK(3,2)' 5067 4995 4926 4837 4764 4618 5135 5066 4906 5196
6435 CONVEX 833 'GT_PK(3,2)' 1090 1099 1117 1108 1125 1137 1149 1164 1172 1219
6436 CONVEX 834 'GT_PK(3,2)' 1086 1083 1090 1104 1108 1137 1145 1149 1172 1219
6437 CONVEX 835 'GT_PK(3,2)' 2647 2757 2874 2904 3027 3199 2626 2738 2883 2601
6438 CONVEX 836 'GT_PK(3,2)' 4742 4602 4472 4529 4397 4330 4692 4560 4478 4651
6439 CONVEX 837 'GT_PK(3,2)' 2609 2495 2380 2607 2491 2615 2516 2399 2508 2424
6440 CONVEX 838 'GT_PK(3,2)' 2874 2980 3079 3027 3135 3199 2738 2828 2883 2601
6441 CONVEX 839 'GT_PK(3,2)' 2847 2735 2609 2726 2607 2615 2617 2516 2508 2424
6442 CONVEX 840 'GT_PK(3,2)' 324 287 255 205 157 111 290 256 162 268
6443 CONVEX 841 'GT_PK(3,2)' 22 13 8 7 5 9 17 14 11 24
6444 CONVEX 842 'GT_PK(3,2)' 3827 3698 3518 3786 3638 3747 3782 3634 3738 3736
6445 CONVEX 843 'GT_PK(3,2)' 775 788 805 770 786 769 748 758 741 717
6446 CONVEX 844 'GT_PK(3,2)' 80 65 59 121 106 186 72 61 108 73
6447 CONVEX 845 'GT_PK(3,2)' 4861 4920 4983 4744 4803 4632 4956 5017 4841 5061
6448 CONVEX 846 'GT_PK(3,2)' 5468 5500 5520 5374 5412 5278 5518 5534 5436 5547
6449 CONVEX 847 'GT_PK(3,2)' 174 223 275 265 316 355 224 272 308 277
6450 CONVEX 848 'GT_PK(3,2)' 5289 5314 5351 5230 5268 5173 5168 5204 5107 5025
6451 CONVEX 849 'GT_PK(3,2)' 3681 3562 3432 3450 3321 3210 3694 3586 3467 3716
6452 CONVEX 850 'GT_PK(3,2)' 3052 2905 2762 3124 2978 3217 3062 2919 3140 3077
6453 CONVEX 851 'GT_PK(3,2)' 992 956 927 990 957 996 1013 977 1014 1032
6454 CONVEX 852 'GT_PK(3,2)' 5323 5343 5356 5442 5459 5532 5298 5319 5420 5284
6455 CONVEX 853 'GT_PK(3,2)' 3736 3809 3874 3738 3807 3747 3857 3920 3853 3968
6456 CONVEX 854 'GT_PK(3,2)' 981 1024 1071 1033 1082 1094 999 1045 1054 1022
6457 CONVEX 855 'GT_PK(3,2)' 717 668 620 667 614 621 698 644 642 676
6458 CONVEX 856 'GT_PK(3,2)' 464 433 403 455 430 459 414 384 413 366
6459 CONVEX 857 'GT_PK(3,2)' 4513 4408 4326 4684 4585 4866 4573 4475 4756 4647
6460 CONVEX 858 'GT_PK(3,2)' 4953 4886 4838 4854 4793 4758 4763 4706 4672 4581
6461 CONVEX 859 'GT_PK(3,2)' 5113 5191 5259 5218 5288 5305 5154 5226 5255 5197
6462 CONVEX 860 'GT_PK(3,2)' 5259 5226 5197 5355 5330 5439 5288 5255 5375 5305
6463 CONVEX 861 'GT_PK(3,2)' 5197 5255 5305 5274 5322 5345 5330 5375 5385 5439
6464 CONVEX 862 'GT_PK(3,2)' 4983 4910 4822 5082 4999 5177 5064 4974 5160 5142
6465 CONVEX 863 'GT_PK(3,2)' 5326 5377 5431 5249 5310 5177 5427 5474 5363 5515
6466 CONVEX 864 'GT_PK(3,2)' 1833 1950 2058 2043 2149 2257 1949 2061 2152 2068
6467 CONVEX 865 'GT_PK(3,2)' 2644 2596 2544 2722 2672 2813 2766 2712 2852 2901
6468 CONVEX 866 'GT_PK(3,2)' 2442 2527 2582 2554 2620 2679 2589 2675 2714 2759
6469 CONVEX 867 'GT_PK(3,2)' 1581 1508 1457 1487 1429 1411 1437 1381 1352 1311
6470 CONVEX 868 'GT_PK(3,2)' 1416 1448 1500 1360 1394 1319 1326 1363 1277 1248
6471 CONVEX 869 'GT_PK(3,2)' 2182 2087 1977 2347 2242 2542 2217 2110 2384 2256
6472 CONVEX 870 'GT_PK(3,2)' 4272 4319 4349 4462 4522 4683 4393 4440 4596 4535
6473 CONVEX 871 'GT_PK(3,2)' 4921 5050 5150 4768 4880 4617 4984 5105 4827 5049
6474 CONVEX 872 'GT_PK(3,2)' 362 301 244 375 318 394 346 288 361 338
6475 CONVEX 873 'GT_PK(3,2)' 2483 2444 2409 2550 2507 2615 2543 2499 2597 2593
6476 CONVEX 874 'GT_PK(3,2)' 3757 3722 3693 3494 3456 3199 3810 3788 3590 3865
6477 CONVEX 875 'GT_PK(3,2)' 1184 1135 1094 1155 1113 1137 1115 1069 1093 1053
6478 CONVEX 876 'GT_PK(3,2)' 3538 3419 3320 3460 3339 3383 3549 3441 3475 3574
6479 CONVEX 877 'GT_PK(3,2)' 2837 2718 2594 2985 2860 3153 2830 2715 2987 2835
6480 CONVEX 878 'GT_PK(3,2)' 1119 1174 1238 1159 1216 1204 1185 1247 1233 1256
6481 CONVEX 879 'GT_PK(3,2)' 3079 3163 3249 3135 3220 3199 3318 3394 3365 3551
6482 CONVEX 880 'GT_PK(3,2)' 2380 2505 2650 2491 2633 2615 2339 2463 2448 2301
6483 CONVEX 881 'GT_PK(3,2)' 998 1037 1086 1012 1055 1032 1003 1046 1021 1016
6484 CONVEX 882 'GT_PK(3,2)' 5572 5560 5547 5507 5486 5400 5548 5534 5464 5520
6485 CONVEX 883 'GT_PK(3,2)' 1139 1169 1204 1151 1187 1171 1203 1242 1222 1286
6486 CONVEX 884 'GT_PK(3,2)' 3281 3325 3383 3122 3185 3004 3112 3165 2979 2971
6487 CONVEX 885 'GT_PK(3,2)' 3614 3376 3153 3232 3016 2893 3428 3204 3065 3258
6488 CONVEX 886 'GT_PK(3,2)' 1316 1243 1184 1271 1209 1244 1328 1252 1289 1338
6489 CONVEX 887 'GT_PK(3,2)' 2328 2402 2483 2557 2646 2805 2425 2498 2667 2524
6490 CONVEX 888 'GT_PK(3,2)' 3530 3650 3757 3605 3713 3675 3654 3758 3718 3763
6491 CONVEX 889 'GT_PK(3,2)' 3432 3562 3681 3321 3450 3210 3481 3613 3356 3529
6492 CONVEX 890 'GT_PK(3,2)' 2762 2905 3052 2978 3124 3217 2810 2967 3039 2884
6493 CONVEX 891 'GT_PK(3,2)' 1032 977 927 1014 957 996 976 924 950 925
6494 CONVEX 892 'GT_PK(3,2)' 2877 3047 3234 2966 3127 3061 2885 3055 2972 2897
6495 CONVEX 893 'GT_PK(3,2)' 4072 4173 4290 3909 4020 3728 4073 4174 3908 4076
6496 CONVEX 894 'GT_PK(3,2)' 960 942 922 955 936 959 994 969 987 1026
6497 CONVEX 895 'GT_PK(3,2)' 5527 5563 5590 5519 5556 5508 5537 5570 5529 5549
6498 CONVEX 896 'GT_PK(3,2)' 4539 4429 4332 4334 4234 4150 4395 4306 4215 4269
6499 CONVEX 897 'GT_PK(3,2)' 22 37 59 55 83 111 39 60 86 68
6500 CONVEX 898 'GT_PK(3,2)' 4439 4582 4731 4528 4666 4618 4515 4652 4589 4579
6501 CONVEX 899 'GT_PK(3,2)' 4742 4692 4651 4529 4478 4330 4819 4779 4609 4914
6502 CONVEX 900 'GT_PK(3,2)' 5307 5198 5067 5147 5007 4954 5258 5135 5075 5196
6503 CONVEX 901 'GT_PK(3,2)' 4026 3991 3963 4017 3988 4014 3901 3870 3892 3774
6504 CONVEX 902 'GT_PK(3,2)' 790 764 735 738 710 686 829 798 771 863
6505 CONVEX 903 'GT_PK(3,2)' 4250 4218 4192 4081 4056 3915 4153 4126 3986 4060
6506 CONVEX 904 'GT_PK(3,2)' 4472 4510 4540 4397 4425 4330 4373 4402 4307 4290
6507 CONVEX 905 'GT_PK(3,2)' 3518 3567 3623 3638 3683 3747 3366 3420 3501 3234
6508 CONVEX 906 'GT_PK(3,2)' 805 832 859 786 811 769 865 888 844 922
6509 CONVEX 907 'GT_PK(3,2)' 5197 5226 5259 5330 5355 5439 5281 5308 5402 5354
6510 CONVEX 908 'GT_PK(3,2)' 80 72 73 121 108 186 117 116 168 184
6511 CONVEX 909 'GT_PK(3,2)' 4861 4956 5061 4744 4841 4632 4801 4896 4698 4747
6512 CONVEX 910 'GT_PK(3,2)' 3551 3686 3795 3394 3553 3249 3627 3749 3476 3693
6513 CONVEX 911 'GT_PK(3,2)' 2301 2392 2488 2463 2562 2650 2355 2445 2521 2409
6514 CONVEX 912 'GT_PK(3,2)' 255 227 202 185 147 113 256 234 190 268
6515 CONVEX 913 'GT_PK(3,2)' 3847 3910 3965 3732 3798 3569 3750 3812 3584 3614
6516 CONVEX 914 'GT_PK(3,2)' 3036 3219 3415 2947 3118 2871 3151 3338 3059 3281
6517 CONVEX 915 'GT_PK(3,2)' 1140 1091 1041 1110 1058 1088 1138 1089 1109 1139
6518 CONVEX 916 'GT_PK(3,2)' 3697 3806 3900 3862 3945 4004 3737 3837 3889 3774
6519 CONVEX 917 'GT_PK(3,2)' 983 946 912 953 923 938 920 887 897 863
6520 CONVEX 918 'GT_PK(3,2)' 4028 4094 4161 3978 4042 3925 4037 4111 3990 4060
6521 CONVEX 919 'GT_PK(3,2)' 4726 4825 4924 4883 4980 5037 4681 4781 4834 4641
6522 CONVEX 920 'GT_PK(3,2)' 4946 5048 5141 5011 5110 5087 4939 5046 5012 4944
6523 CONVEX 921 'GT_PK(3,2)' 516 530 557 498 524 490 471 494 458 431
6524 CONVEX 922 'GT_PK(3,2)' 3827 3782 3736 3786 3738 3747 3896 3857 3853 3968
6525 CONVEX 923 'GT_PK(3,2)' 5284 5146 4983 5228 5082 5177 5212 5064 5160 5142
6526 CONVEX 924 'GT_PK(3,2)' 4507 4489 4479 4526 4506 4536 4355 4346 4370 4233
6527 CONVEX 925 'GT_PK(3,2)' 3868 3791 3703 3825 3748 3789 3702 3581 3635 3447
6528 CONVEX 926 'GT_PK(3,2)' 4456 4335 4214 4329 4207 4199 4426 4313 4301 4400
6529 CONVEX 927 'GT_PK(3,2)' 886 916 947 902 934 922 926 954 944 967
6530 CONVEX 928 'GT_PK(3,2)' 3963 3991 4026 3988 4017 4014 4101 4128 4118 4233
6531 CONVEX 929 'GT_PK(3,2)' 2129 2141 2145 2022 2035 1930 2156 2165 2063 2190
6532 CONVEX 930 'GT_PK(3,2)' 1579 1481 1409 1575 1491 1580 1520 1438 1524 1477
6533 CONVEX 931 'GT_PK(3,2)' 3637 3674 3640 3506 3510 3369 3399 3407 3276 3182
6534 CONVEX 932 'GT_PK(3,2)' 775 748 717 703 667 621 729 698 642 676
6535 CONVEX 933 'GT_PK(3,2)' 4774 4814 4876 4587 4643 4414 4669 4711 4487 4562
6536 CONVEX 934 'GT_PK(3,2)' 1293 1347 1449 1362 1443 1440 1339 1422 1417 1392
6537 CONVEX 935 'GT_PK(3,2)' 3489 3535 3520 3361 3381 3248 3239 3253 3121 3015
6538 CONVEX 936 'GT_PK(3,2)' 5431 5517 5567 5440 5524 5451 5474 5542 5484 5515
6539 CONVEX 937 'GT_PK(3,2)' 2391 2383 2346 2210 2181 2041 2385 2364 2202 2381
6540 CONVEX 938 'GT_PK(3,2)' 4604 4707 4805 4455 4554 4330 4630 4734 4478 4651
6541 CONVEX 939 'GT_PK(3,2)' 4310 4222 4150 4309 4226 4315 4365 4289 4363 4439
6542 CONVEX 940 'GT_PK(3,2)' 4758 4844 4926 4633 4720 4524 4912 4995 4790 5067
6543 CONVEX 941 'GT_PK(3,2)' 186 154 138 137 125 111 106 94 83 59
6544 CONVEX 942 'GT_PK(3,2)' 735 764 790 710 738 686 714 745 683 696
6545 CONVEX 943 'GT_PK(3,2)' 4192 4218 4250 4056 4081 3915 4317 4338 4164 4438
6546 CONVEX 944 'GT_PK(3,2)' 2636 2785 2971 2622 2780 2627 2688 2856 2685 2750
6547 CONVEX 945 'GT_PK(3,2)' 3433 3342 3258 3233 3145 3049 3187 3092 2993 2954
6548 CONVEX 946 'GT_PK(3,2)' 1375 1331 1286 1317 1269 1267 1420 1373 1361 1468
6549 CONVEX 947 'GT_PK(3,2)' 518 515 516 496 498 490 469 468 457 423
6550 CONVEX 948 'GT_PK(3,2)' 5383 5450 5508 5360 5429 5333 5364 5432 5335 5345
6551 CONVEX 949 'GT_PK(3,2)' 305 331 362 269 301 244 349 375 318 394
6552 CONVEX 950 'GT_PK(3,2)' 2971 3074 3197 2979 3084 3004 2856 2963 2866 2750
6553 CONVEX 951 'GT_PK(3,2)' 3258 3072 2906 3065 2895 2893 3092 2931 2924 2954
6554 CONVEX 952 'GT_PK(3,2)' 1286 1299 1330 1222 1240 1171 1373 1390 1297 1468
6555 CONVEX 953 'GT_PK(3,2)' 3052 3062 3077 3124 3140 3217 3223 3238 3311 3404
6556 CONVEX 954 'GT_PK(3,2)' 872 894 927 929 957 996 930 956 990 992
6557 CONVEX 955 'GT_PK(3,2)' 3681 3694 3716 3450 3467 3210 3783 3797 3603 3867
6558 CONVEX 956 'GT_PK(3,2)' 529 541 556 534 549 545 580 589 583 636
6559 CONVEX 957 'GT_PK(3,2)' 4450 4356 4282 4280 4189 4122 4381 4298 4213 4323
6560 CONVEX 958 'GT_PK(3,2)' 1409 1438 1477 1329 1358 1255 1491 1524 1402 1580
6561 CONVEX 959 'GT_PK(3,2)' 2145 2165 2190 2199 2223 2262 2035 2063 2093 1930
6562 CONVEX 960 'GT_PK(3,2)' 3227 3178 3128 3131 3083 3061 3012 2975 2938 2820
6563 CONVEX 961 'GT_PK(3,2)' 3792 3739 3678 3759 3699 3728 3594 3508 3537 3326
6564 CONVEX 962 'GT_PK(3,2)' 1392 1339 1293 1279 1235 1186 1417 1362 1295 1440
6565 CONVEX 963 'GT_PK(3,2)' 3015 3239 3489 3105 3350 3218 3121 3361 3229 3248
6566 CONVEX 964 'GT_PK(3,2)' 960 962 968 955 961 959 915 918 909 870
6567 CONVEX 965 'GT_PK(3,2)' 2877 2770 2678 2966 2859 3061 2957 2849 3044 3043
6568 CONVEX 966 'GT_PK(3,2)' 4072 4003 3930 3909 3833 3728 4127 4059 3964 4183
6569 CONVEX 967 'GT_PK(3,2)' 3640 3407 3182 3542 3306 3424 3510 3276 3391 3369
6570 CONVEX 968 'GT_PK(3,2)' 2381 2385 2391 2441 2455 2520 2202 2210 2270 2041
6571 CONVEX 969 'GT_PK(3,2)' 409 371 339 389 354 377 432 396 417 459
6572 CONVEX 970 'GT_PK(3,2)' 5502 5467 5431 5505 5469 5510 5399 5361 5410 5289
6573 CONVEX 971 'GT_PK(3,2)' 218 238 255 145 164 97 194 211 127 174
6574 CONVEX 972 'GT_PK(3,2)' 2874 2886 2908 3027 3038 3199 3054 3067 3220 3249
6575 CONVEX 973 'GT_PK(3,2)' 2650 2632 2609 2633 2607 2615 2812 2796 2792 3010
6576 CONVEX 974 'GT_PK(3,2)' 4116 4168 4233 4375 4445 4683 4230 4296 4522 4349
6577 CONVEX 975 'GT_PK(3,2)' 4671 4570 4456 4700 4588 4742 4749 4646 4784 4833
6578 CONVEX 976 'GT_PK(3,2)' 821 851 886 796 833 775 838 869 815 858
6579 CONVEX 977 'GT_PK(3,2)' 4641 4781 4924 4894 5053 5159 4746 4884 5000 4848
6580 CONVEX 978 'GT_PK(3,2)' 4833 4945 5060 4784 4893 4742 4749 4860 4700 4671
6581 CONVEX 979 'GT_PK(3,2)' 858 828 793 815 781 775 838 806 796 821
6582 CONVEX 980 'GT_PK(3,2)' 2926 3152 3415 2910 3139 2897 2976 3219 2961 3036
6583 CONVEX 981 'GT_PK(3,2)' 4075 4021 3965 4074 4019 4076 3955 3910 3953 3847
6584 CONVEX 982 'GT_PK(3,2)' 1120 1076 1041 1070 1030 1026 1129 1091 1080 1140
6585 CONVEX 983 'GT_PK(3,2)' 377 417 459 367 413 366 435 473 428 490
6586 CONVEX 984 'GT_PK(3,2)' 4857 4696 4539 4735 4571 4618 4849 4689 4730 4845
6587 CONVEX 985 'GT_PK(3,2)' 4272 4172 4083 4273 4180 4281 4187 4100 4190 4116
6588 CONVEX 986 'GT_PK(3,2)' 5067 5119 5172 5108 5158 5153 4951 4996 4991 4838
6589 CONVEX 987 'GT_PK(3,2)' 5602 5603 5600 5585 5584 5567 5613 5611 5601 5619
6590 CONVEX 988 'GT_PK(3,2)' 3668 3784 3874 3705 3807 3747 3704 3809 3738 3736
6591 CONVEX 989 'GT_PK(3,2)' 637 626 620 610 598 585 673 668 645 717
6592 CONVEX 990 'GT_PK(3,2)' 4632 4728 4822 4899 4999 5177 4803 4910 5082 4983
6593 CONVEX 991 'GT_PK(3,2)' 5326 5257 5173 5174 5077 4987 5377 5312 5243 5431
6594 CONVEX 992 'GT_PK(3,2)' 5324 5292 5260 5148 5106 4931 5246 5207 5043 5150
6595 CONVEX 993 'GT_PK(3,2)' 3918 4007 4093 3872 3957 3827 4013 4099 3962 4098
6596 CONVEX 994 'GT_PK(3,2)' 144 206 263 177 239 228 195 248 229 244
6597 CONVEX 995 'GT_PK(3,2)' 925 966 1016 952 1003 998 976 1021 1012 1032
6598 CONVEX 996 'GT_PK(3,2)' 2820 2975 3128 2938 3083 3061 2769 2929 2882 2729
6599 CONVEX 997 'GT_PK(3,2)' 3792 3881 3985 3759 3858 3728 3739 3842 3699 3678
6600 CONVEX 998 'GT_PK(3,2)' 5061 5222 5356 5115 5273 5177 5203 5338 5248 5320
6601 CONVEX 999 'GT_PK(3,2)' 73 42 24 87 51 111 67 41 79 70
6602 CONVEX 1000 'GT_PK(3,2)' 840 885 928 898 941 959 860 901 913 875
6603 CONVEX 1001 'GT_PK(3,2)' 5618 5620 5619 5598 5601 5567 5610 5611 5584 5600
6604 CONVEX 1002 'GT_PK(3,2)' 291 297 305 200 210 119 261 264 161 232
6605 CONVEX 1003 'GT_PK(3,2)' 5234 5342 5438 5242 5350 5260 5277 5372 5286 5313
6606 CONVEX 1004 'GT_PK(3,2)' 5339 5362 5383 5219 5250 5084 5337 5364 5220 5345
6607 CONVEX 1005 'GT_PK(3,2)' 324 333 355 295 314 274 287 303 253 255
6608 CONVEX 1006 'GT_PK(3,2)' 2014 2015 2023 1891 1895 1759 2024 2027 1904 2041
6609 CONVEX 1007 'GT_PK(3,2)' 1494 1616 1761 1515 1650 1557 1464 1595 1492 1440
6610 CONVEX 1008 'GT_PK(3,2)' 377 417 459 354 396 339 367 413 352 366
6611 CONVEX 1009 'GT_PK(3,2)' 3133 3443 3733 3386 3691 3644 3245 3563 3507 3369
6612 CONVEX 1010 'GT_PK(3,2)' 2205 2174 2134 2119 2083 2041 2116 2080 2027 2023
6613 CONVEX 1011 'GT_PK(3,2)' 3684 3578 3426 3528 3390 3369 3405 3279 3245 3133
6614 CONVEX 1012 'GT_PK(3,2)' 5510 5410 5289 5480 5369 5451 5417 5299 5384 5320
6615 CONVEX 1013 'GT_PK(3,2)' 97 127 174 101 135 113 77 107 89 70
6616 CONVEX 1014 'GT_PK(3,2)' 3963 3863 3756 3988 3883 4014 3870 3765 3892 3774
6617 CONVEX 1015 'GT_PK(3,2)' 735 752 777 710 731 686 798 822 771 863
6618 CONVEX 1016 'GT_PK(3,2)' 4192 4112 4034 4056 3977 3915 4126 4040 3986 4060
6619 CONVEX 1017 'GT_PK(3,2)' 1651 1613 1582 1542 1504 1440 1701 1666 1595 1761
6620 CONVEX 1018 'GT_PK(3,2)' 636 685 735 658 710 686 666 714 683 696
6621 CONVEX 1019 'GT_PK(3,2)' 4323 4255 4192 4114 4056 3915 4372 4317 4164 4438
6622 CONVEX 1020 'GT_PK(3,2)' 4717 4614 4513 4798 4684 4866 4830 4721 4908 4936
6623 CONVEX 1021 'GT_PK(3,2)' 5339 5365 5391 5316 5341 5296 5267 5294 5240 5185
6624 CONVEX 1022 'GT_PK(3,2)' 249 219 201 245 230 263 179 149 178 109
6625 CONVEX 1023 'GT_PK(3,2)' 4737 4824 4921 4937 5050 5150 4674 4768 4880 4617
6626 CONVEX 1024 'GT_PK(3,2)' 221 198 184 207 188 220 136 116 133 73
6627 CONVEX 1025 'GT_PK(3,2)' 4881 4808 4747 4851 4782 4792 4962 4896 4918 5061
6628 CONVEX 1026 'GT_PK(3,2)' 1622 1606 1579 1597 1575 1580 1552 1520 1524 1477
6629 CONVEX 1027 'GT_PK(3,2)' 2258 2193 2129 2090 2022 1930 2222 2156 2063 2190
6630 CONVEX 1028 'GT_PK(3,2)' 3334 3504 3637 3345 3506 3369 3250 3399 3276 3182
6631 CONVEX 1029 'GT_PK(3,2)' 4838 4991 5153 4891 5058 4954 4836 4994 4895 4845
6632 CONVEX 1030 'GT_PK(3,2)' 1449 1497 1534 1443 1485 1440 1422 1460 1417 1392
6633 CONVEX 1031 'GT_PK(3,2)' 3520 3367 3206 3381 3222 3248 3253 3098 3121 3015
6634 CONVEX 1032 'GT_PK(3,2)' 2346 2408 2447 2181 2233 2041 2364 2410 2202 2381
6635 CONVEX 1033 'GT_PK(3,2)' 4926 4810 4703 4693 4576 4461 4932 4818 4701 4941
6636 CONVEX 1034 'GT_PK(3,2)' 138 199 259 225 283 317 183 241 267 231
6637 CONVEX 1035 'GT_PK(3,2)' 4116 4038 3963 4062 3988 4014 4168 4101 4118 4233
6638 CONVEX 1036 'GT_PK(3,2)' 5049 5105 5150 4976 5043 4931 5161 5207 5106 5260
6639 CONVEX 1037 'GT_PK(3,2)' 4324 4205 4105 4293 4188 4275 4316 4196 4286 4310
6640 CONVEX 1038 'GT_PK(3,2)' 3639 3461 3281 3671 3497 3716 3723 3565 3754 3793
6641 CONVEX 1039 'GT_PK(3,2)' 3368 3492 3614 3212 3324 3077 3575 3676 3411 3744
6642 CONVEX 1040 'GT_PK(3,2)' 1118 1127 1139 1047 1057 992 1067 1078 1006 1023
6643 CONVEX 1041 'GT_PK(3,2)' 4805 4806 4813 4729 4724 4654 4943 4949 4865 5084
6644 CONVEX 1042 'GT_PK(3,2)' 3320 3419 3538 3339 3460 3383 3150 3255 3185 3004
6645 CONVEX 1043 'GT_PK(3,2)' 2594 2718 2837 2860 2985 3153 2740 2862 3016 2893
6646 CONVEX 1044 'GT_PK(3,2)' 1238 1174 1119 1216 1159 1204 1201 1142 1187 1171
6647 CONVEX 1045 'GT_PK(3,2)' 3693 3524 3341 3456 3265 3199 3627 3444 3365 3551
6648 CONVEX 1046 'GT_PK(3,2)' 1094 1147 1210 1113 1170 1137 1082 1136 1101 1071
6649 CONVEX 1047 'GT_PK(3,2)' 2409 2298 2198 2507 2394 2615 2355 2253 2448 2301
6650 CONVEX 1048 'GT_PK(3,2)' 4535 4391 4271 4501 4368 4468 4393 4270 4361 4272
6651 CONVEX 1049 'GT_PK(3,2)' 3642 3496 3335 3568 3406 3493 3387 3236 3309 3128
6652 CONVEX 1050 'GT_PK(3,2)' 3781 3905 4024 3850 3975 3928 3785 3912 3860 3792
6653 CONVEX 1051 'GT_PK(3,2)' 338 288 244 278 229 228 298 248 239 263
6654 CONVEX 1052 'GT_PK(3,2)' 868 861 857 818 808 769 903 893 855 938
6655 CONVEX 1053 'GT_PK(3,2)' 4322 4253 4186 4258 4191 4199 4156 4096 4104 4004
6656 CONVEX 1054 'GT_PK(3,2)' 4012 4086 4159 3902 3980 3789 3967 4039 3854 3925
6657 CONVEX 1055 'GT_PK(3,2)' 578 537 490 527 482 480 555 510 502 528
6658 CONVEX 1056 'GT_PK(3,2)' 4866 4908 4936 4756 4795 4647 5002 5039 4890 5138
6659 CONVEX 1057 'GT_PK(3,2)' 4866 4908 4936 4684 4721 4513 4756 4795 4573 4647
6660 CONVEX 1058 'GT_PK(3,2)' 490 457 423 458 422 431 435 398 397 377
6661 CONVEX 1059 'GT_PK(3,2)' 490 457 423 498 468 516 458 422 471 431
6662 CONVEX 1060 'GT_PK(3,2)' 5253 5164 5060 5080 4965 4909 5216 5120 5047 5185
6663 CONVEX 1061 'GT_PK(3,2)' 4323 4372 4438 4354 4420 4414 4431 4500 4483 4556
6664 CONVEX 1062 'GT_PK(3,2)' 4985 4863 4737 5118 4973 5224 5009 4875 5136 5022
6665 CONVEX 1063 'GT_PK(3,2)' 4546 4490 4439 4705 4644 4857 4543 4485 4696 4539
6666 CONVEX 1064 'GT_PK(3,2)' 3681 3783 3867 3458 3606 3227 3726 3816 3521 3768
6667 CONVEX 1065 'GT_PK(3,2)' 834 879 927 854 900 875 845 894 871 872
6668 CONVEX 1066 'GT_PK(3,2)' 3052 3223 3404 3186 3355 3326 3123 3313 3267 3214
6669 CONVEX 1067 'GT_PK(3,2)' 4411 4491 4581 4471 4558 4524 4622 4706 4675 4838
6670 CONVEX 1068 'GT_PK(3,2)' 5022 5032 5030 4873 4877 4731 5122 5123 4960 5199
6671 CONVEX 1069 'GT_PK(3,2)' 232 203 187 208 189 202 140 120 130 81
6672 CONVEX 1070 'GT_PK(3,2)' 5301 5262 5215 5213 5175 5138 5200 5151 5112 5087
6673 CONVEX 1071 'GT_PK(3,2)' 5501 5472 5439 5448 5416 5400 5526 5506 5488 5549
6674 CONVEX 1072 'GT_PK(3,2)' 4540 4640 4742 4496 4588 4456 4685 4784 4646 4833
6675 CONVEX 1073 'GT_PK(3,2)' 1139 1203 1286 1109 1173 1088 1190 1260 1158 1244
6676 CONVEX 1074 'GT_PK(3,2)' 3614 3428 3258 3584 3402 3569 3636 3471 3619 3675
6677 CONVEX 1075 'GT_PK(3,2)' 3281 3112 2971 3059 2915 2871 3033 2887 2836 2805
6678 CONVEX 1076 'GT_PK(3,2)' 684 634 585 699 645 717 656 610 673 637
6679 CONVEX 1077 'GT_PK(3,2)' 4987 5016 5025 5149 5168 5289 5077 5107 5230 5173
6680 CONVEX 1078 'GT_PK(3,2)' 8 13 22 5 7 9 4 12 6 10
6681 CONVEX 1079 'GT_PK(3,2)' 4731 4752 4777 4929 4955 5143 4877 4897 5100 5030
6682 CONVEX 1080 'GT_PK(3,2)' 5346 5325 5307 5359 5348 5382 5418 5409 5441 5495
6683 CONVEX 1081 'GT_PK(3,2)' 4098 3992 3868 3962 3844 3827 4013 3903 3872 3918
6684 CONVEX 1082 'GT_PK(3,2)' 59 43 31 34 27 24 61 46 42 73
6685 CONVEX 1083 'GT_PK(3,2)' 4983 5055 5111 5192 5247 5356 5017 5089 5222 5061
6686 CONVEX 1084 'GT_PK(3,2)' 3769 3709 3639 3746 3671 3716 3776 3723 3754 3793
6687 CONVEX 1085 'GT_PK(3,2)' 3146 3252 3368 3106 3212 3077 3459 3575 3411 3744
6688 CONVEX 1086 'GT_PK(3,2)' 1050 1084 1118 1020 1047 992 1034 1067 1006 1023
6689 CONVEX 1087 'GT_PK(3,2)' 3623 3740 3827 3762 3844 3868 3790 3872 3903 3918
6690 CONVEX 1088 'GT_PK(3,2)' 859 816 775 873 833 886 853 815 869 858
6691 CONVEX 1089 'GT_PK(3,2)' 5143 5176 5199 4929 4960 4731 5100 5123 4877 5030
6692 CONVEX 1090 'GT_PK(3,2)' 82 74 81 128 130 202 118 120 189 187
6693 CONVEX 1091 'GT_PK(3,2)' 938 953 983 897 920 863 979 1000 940 1023
6694 CONVEX 1092 'GT_PK(3,2)' 4004 3862 3697 3889 3737 3774 3873 3717 3755 3744
6695 CONVEX 1093 'GT_PK(3,2)' 3925 3978 4028 3990 4037 4060 3861 3913 3923 3793
6696 CONVEX 1094 'GT_PK(3,2)' 5037 4925 4809 4855 4748 4683 5083 4964 4901 5130
6697 CONVEX 1095 'GT_PK(3,2)' 4290 4402 4540 4241 4353 4199 4340 4466 4301 4400
6698 CONVEX 1096 'GT_PK(3,2)' 3234 3420 3623 3536 3711 3789 3330 3532 3635 3447
6699 CONVEX 1097 'GT_PK(3,2)' 922 888 859 902 873 886 944 910 926 967
6700 CONVEX 1098 'GT_PK(3,2)' 3335 3463 3601 3183 3312 3043 3164 3294 3021 3009
6701 CONVEX 1099 'GT_PK(3,2)' 766 726 684 813 774 870 782 746 839 807
6702 CONVEX 1100 'GT_PK(3,2)' 4024 4130 4244 4102 4209 4183 4095 4204 4178 4169
6703 CONVEX 1101 'GT_PK(3,2)' 5323 5298 5284 5442 5420 5532 5414 5394 5523 5498
6704 CONVEX 1102 'GT_PK(3,2)' 5567 5575 5580 5585 5592 5602 5601 5605 5613 5619
6705 CONVEX 1103 'GT_PK(3,2)' 202 191 182 128 115 82 189 175 118 187
6706 CONVEX 1104 'GT_PK(3,2)' 2572 2580 2564 2681 2676 2783 2459 2489 2553 2338
6707 CONVEX 1105 'GT_PK(3,2)' 2234 2287 2338 2183 2245 2154 2101 2160 2073 1991
6708 CONVEX 1106 'GT_PK(3,2)' 2613 2522 2405 2744 2634 2880 2600 2535 2716 2564
6709 CONVEX 1107 'GT_PK(3,2)' 1951 1963 1991 1778 1799 1624 1884 1875 1723 1839
6710 CONVEX 1108 'GT_PK(3,2)' 2307 2175 2055 2296 2169 2294 2365 2238 2345 2405
6711 CONVEX 1109 'GT_PK(3,2)' 1988 1905 1839 1835 1756 1691 2013 1914 1877 2055
6712 CONVEX 1110 'GT_PK(3,2)' 9 19 33 15 29 32 11 25 21 24
6713 CONVEX 1111 'GT_PK(3,2)' 5532 5554 5574 5552 5569 5561 5459 5497 5478 5356
6714 CONVEX 1112 'GT_PK(3,2)' 4872 4716 4553 4642 4477 4410 4766 4615 4537 4665
6715 CONVEX 1113 'GT_PK(3,2)' 4315 4299 4269 4413 4395 4539 4226 4215 4334 4150
6716 CONVEX 1114 'GT_PK(3,2)' 4774 4669 4562 4587 4487 4414 4663 4557 4481 4553
6717 CONVEX 1115 'GT_PK(3,2)' 4691 4680 4667 4620 4610 4562 4561 4549 4497 4438
6718 CONVEX 1116 'GT_PK(3,2)' 725 674 627 709 654 697 708 657 687 696
6719 CONVEX 1117 'GT_PK(3,2)' 4553 4716 4872 4477 4642 4410 4663 4820 4586 4774
6720 CONVEX 1118 'GT_PK(3,2)' 5296 5378 5446 5317 5395 5345 5302 5379 5322 5305
6721 CONVEX 1119 'GT_PK(3,2)' 5197 5154 5113 5024 4970 4848 5255 5218 5095 5305
6722 CONVEX 1120 'GT_PK(3,2)' 5382 5327 5271 5371 5321 5358 5282 5211 5263 5153
6723 CONVEX 1121 'GT_PK(3,2)' 660 648 643 671 665 686 601 591 613 545
6724 CONVEX 1122 'GT_PK(3,2)' 66 102 144 126 177 228 91 129 156 119
6725 CONVEX 1123 'GT_PK(3,2)' 5373 5353 5324 5183 5148 4931 5300 5279 5079 5224
6726 CONVEX 1124 'GT_PK(3,2)' 793 763 730 724 691 649 768 734 700 747
6727 CONVEX 1125 'GT_PK(3,2)' 5130 5221 5296 4901 5001 4683 5083 5181 4855 5037
6728 CONVEX 1126 'GT_PK(3,2)' 3774 3837 3900 3889 3945 4004 3901 3954 4006 4026
6729 CONVEX 1127 'GT_PK(3,2)' 863 887 912 897 923 938 829 856 866 790
6730 CONVEX 1128 'GT_PK(3,2)' 4060 4111 4161 3990 4042 3925 4153 4201 4087 4250
6731 CONVEX 1129 'GT_PK(3,2)' 5492 5483 5468 5387 5374 5278 5525 5518 5436 5547
6732 CONVEX 1130 'GT_PK(3,2)' 4256 4171 4093 4283 4195 4300 4216 4136 4235 4182
6733 CONVEX 1131 'GT_PK(3,2)' 5614 5594 5565 5606 5579 5593 5616 5597 5608 5618
6734 CONVEX 1132 'GT_PK(3,2)' 3132 3283 3432 2983 3117 2847 3202 3351 3053 3282
6735 CONVEX 1133 'GT_PK(3,2)' 2451 2595 2762 2546 2698 2647 2531 2689 2631 2611
6736 CONVEX 1134 'GT_PK(3,2)' 1144 1087 1032 1112 1055 1086 1073 1021 1046 1016
6737 CONVEX 1135 'GT_PK(3,2)' 4287 4389 4507 4405 4526 4536 4260 4355 4370 4233
6738 CONVEX 1136 'GT_PK(3,2)' 4665 4765 4866 4537 4637 4410 4766 4871 4642 4872
6739 CONVEX 1137 'GT_PK(3,2)' 4796 4916 5054 4823 4950 4872 4870 4990 4905 4946
6740 CONVEX 1138 'GT_PK(3,2)' 38 48 66 44 57 68 30 45 36 32
6741 CONVEX 1139 'GT_PK(3,2)' 5493 5435 5373 5270 5190 4954 5422 5367 5178 5358
6742 CONVEX 1140 'GT_PK(3,2)' 4117 4055 3996 4064 4002 4014 4197 4142 4140 4281
6743 CONVEX 1141 'GT_PK(3,2)' 5607 5599 5590 5581 5570 5549 5571 5556 5529 5508
6744 CONVEX 1142 'GT_PK(3,2)' 581 622 655 577 616 578 566 604 563 557
6745 CONVEX 1143 'GT_PK(3,2)' 5054 5126 5194 4950 5026 4872 4990 5070 4905 4946
6746 CONVEX 1144 'GT_PK(3,2)' 5354 5389 5419 5434 5465 5501 5252 5291 5336 5134
6747 CONVEX 1145 'GT_PK(3,2)' 572 536 497 552 514 528 525 478 493 464
6748 CONVEX 1146 'GT_PK(3,2)' 4574 4732 4866 4444 4585 4326 4629 4765 4486 4665
6749 CONVEX 1147 'GT_PK(3,2)' 3079 3318 3551 3135 3365 3199 3208 3444 3265 3341
6750 CONVEX 1148 'GT_PK(3,2)' 2380 2339 2301 2491 2448 2615 2285 2253 2394 2198
6751 CONVEX 1149 'GT_PK(3,2)' 1117 1095 1071 1125 1101 1137 1161 1136 1170 1210
6752 CONVEX 1150 'GT_PK(3,2)' 5549 5562 5572 5488 5507 5400 5526 5540 5448 5501
6753 CONVEX 1151 'GT_PK(3,2)' 789 756 725 784 751 780 744 708 737 696
6754 CONVEX 1152 'GT_PK(3,2)' 4504 4593 4691 4392 4488 4320 4465 4561 4367 4438
6755 CONVEX 1153 'GT_PK(3,2)' 3802 3877 3956 3855 3932 3915 3973 4047 4018 4122
6756 CONVEX 1154 'GT_PK(3,2)' 4244 4339 4434 4284 4371 4330 4418 4519 4455 4604
6757 CONVEX 1155 'GT_PK(3,2)' 274 271 277 215 224 174 314 308 265 355
6758 CONVEX 1156 'GT_PK(3,2)' 1516 1569 1622 1499 1549 1482 1495 1552 1476 1477
6759 CONVEX 1157 'GT_PK(3,2)' 2492 2372 2258 2450 2321 2416 2334 2222 2297 2190
6760 CONVEX 1158 'GT_PK(3,2)' 3601 3775 3893 3669 3817 3747 3641 3801 3705 3668
6761 CONVEX 1159 'GT_PK(3,2)' 4122 4274 4446 4280 4448 4450 4238 4390 4394 4342
6762 CONVEX 1160 'GT_PK(3,2)' 3171 3261 3334 2994 3069 2834 3170 3250 3001 3182
6763 CONVEX 1161 'GT_PK(3,2)' 760 759 766 794 797 837 800 803 836 840
6764 CONVEX 1162 'GT_PK(3,2)' 436 446 465 420 441 418 484 499 475 529
6765 CONVEX 1163 'GT_PK(3,2)' 4709 4572 4446 4527 4390 4342 4575 4448 4394 4450
6766 CONVEX 1164 'GT_PK(3,2)' 1684 1604 1535 1609 1538 1557 1674 1599 1608 1672
6767 CONVEX 1165 'GT_PK(3,2)' 3048 3050 3045 3327 3329 3644 3025 3024 3323 3017
6768 CONVEX 1166 'GT_PK(3,2)' 1692 1776 1868 1718 1806 1759 1773 1863 1812 1867
6769 CONVEX 1167 'GT_PK(3,2)' 609 650 697 596 641 592 633 675 625 664
6770 CONVEX 1168 'GT_PK(3,2)' 4553 4493 4416 4477 4406 4410 4615 4544 4537 4665
6771 CONVEX 1169 'GT_PK(3,2)' 643 648 660 665 671 686 705 713 721 760
6772 CONVEX 1170 'GT_PK(3,2)' 4384 4502 4617 4343 4460 4324 4521 4634 4470 4647
6773 CONVEX 1171 'GT_PK(3,2)' 4909 5015 5130 4789 4901 4683 4858 4964 4748 4809
6774 CONVEX 1172 'GT_PK(3,2)' 5439 5375 5305 5385 5322 5345 5443 5379 5395 5446
6775 CONVEX 1173 'GT_PK(3,2)' 4822 4694 4563 4738 4612 4649 4829 4699 4745 4843
6776 CONVEX 1174 'GT_PK(3,2)' 3930 3864 3795 3821 3749 3693 3815 3743 3680 3678
6777 CONVEX 1175 'GT_PK(3,2)' 2678 2575 2488 2540 2445 2409 2745 2655 2598 2820
6778 CONVEX 1176 'GT_PK(3,2)' 3874 3871 3869 4011 4025 4152 3993 3989 4125 4108
6779 CONVEX 1177 'GT_PK(3,2)' 872 864 863 843 842 837 827 822 802 777
6780 CONVEX 1178 'GT_PK(3,2)' 3404 3617 3774 3724 3846 3928 3604 3765 3838 3756
6781 CONVEX 1179 'GT_PK(3,2)' 3867 3961 4060 3712 3823 3493 3946 4040 3813 4034
6782 CONVEX 1180 'GT_PK(3,2)' 857 861 868 808 818 769 817 826 772 780
6783 CONVEX 1181 'GT_PK(3,2)' 4186 4253 4322 4217 4285 4254 4359 4428 4385 4536
6784 CONVEX 1182 'GT_PK(3,2)' 928 949 981 1005 1033 1094 970 999 1054 1022
6785 CONVEX 1183 'GT_PK(3,2)' 259 235 220 199 173 138 283 262 225 317
6786 CONVEX 1184 'GT_PK(3,2)' 4281 4279 4271 4273 4270 4272 4378 4368 4361 4468
6787 CONVEX 1185 'GT_PK(3,2)' 925 924 927 950 957 996 899 900 933 875
6788 CONVEX 1186 'GT_PK(3,2)' 5054 4907 4774 4916 4780 4796 4950 4820 4823 4872
6789 CONVEX 1187 'GT_PK(3,2)' 4936 4993 5049 4795 4846 4647 5039 5097 4890 5138
6790 CONVEX 1188 'GT_PK(3,2)' 3916 4022 4116 3947 4051 3996 3999 4100 4043 4083
6791 CONVEX 1189 'GT_PK(3,2)' 682 659 636 681 658 686 619 589 617 556
6792 CONVEX 1190 'GT_PK(3,2)' 4149 4228 4323 4052 4137 3956 4210 4298 4119 4282
6793 CONVEX 1191 'GT_PK(3,2)' 4159 4086 4012 4103 4029 4045 4242 4165 4170 4320
6794 CONVEX 1192 'GT_PK(3,2)' 5234 5129 5010 5094 4966 4941 5098 4968 4935 4944
6795 CONVEX 1193 'GT_PK(3,2)' 3432 3487 3538 3321 3359 3210 3586 3631 3467 3716
6796 CONVEX 1194 'GT_PK(3,2)' 2762 2788 2837 2978 3011 3217 2919 2952 3140 3077
6797 CONVEX 1195 'GT_PK(3,2)' 1032 1072 1119 1014 1049 996 1013 1052 990 992
6798 CONVEX 1196 'GT_PK(3,2)' 5493 5496 5495 5422 5426 5358 5406 5409 5332 5307
6799 CONVEX 1197 'GT_PK(3,2)' 38 23 10 30 16 32 28 12 20 22
6800 CONVEX 1198 'GT_PK(3,2)' 5492 5499 5498 5530 5533 5561 5388 5394 5447 5284
6801 CONVEX 1199 'GT_PK(3,2)' 5087 5137 5194 5011 5070 4946 4971 5026 4905 4872
6802 CONVEX 1200 'GT_PK(3,2)' 5087 4971 4872 5012 4904 4944 4963 4871 4898 4866
6803 CONVEX 1201 'GT_PK(3,2)' 3956 3877 3802 3932 3855 3915 3820 3731 3796 3642
6804 CONVEX 1202 'GT_PK(3,2)' 3996 4055 4117 4002 4064 4014 3884 3948 3895 3781
6805 CONVEX 1203 'GT_PK(3,2)' 3045 3050 3048 3329 3327 3644 3298 3296 3611 3571
6806 CONVEX 1204 'GT_PK(3,2)' 2996 3026 3045 3314 3329 3644 3273 3298 3611 3571
6807 CONVEX 1205 'GT_PK(3,2)' 1413 1471 1535 1475 1538 1557 1450 1509 1518 1496
6808 CONVEX 1206 'GT_PK(3,2)' 1535 1604 1684 1538 1609 1557 1509 1589 1518 1496
6809 CONVEX 1207 'GT_PK(3,2)' 1868 1776 1692 1806 1718 1759 1777 1693 1727 1702
6810 CONVEX 1208 'GT_PK(3,2)' 1692 1614 1551 1718 1641 1759 1693 1615 1727 1702
6811 CONVEX 1209 'GT_PK(3,2)' 3678 3743 3795 3680 3749 3693 3466 3553 3476 3249
6812 CONVEX 1210 'GT_PK(3,2)' 2820 2655 2488 2598 2445 2409 2732 2562 2521 2650
6813 CONVEX 1211 'GT_PK(3,2)' 5333 5235 5114 5127 4981 4874 5331 5229 5121 5326
6814 CONVEX 1212 'GT_PK(3,2)' 620 582 558 546 520 483 574 542 505 538
6815 CONVEX 1213 'GT_PK(3,2)' 423 380 338 422 378 431 398 356 397 377
6816 CONVEX 1214 'GT_PK(3,2)' 3687 3695 3632 3412 3375 3133 3479 3442 3193 3248
6817 CONVEX 1215 'GT_PK(3,2)' 1745 1703 1680 1883 1842 2023 1656 1620 1787 1580
6818 CONVEX 1216 'GT_PK(3,2)' 1913 1834 1771 1831 1760 1761 1915 1846 1841 1930
6819 CONVEX 1217 'GT_PK(3,2)' 4326 4362 4416 4357 4406 4410 4249 4297 4292 4182
6820 CONVEX 1218 'GT_PK(3,2)' 557 604 655 563 616 578 602 651 611 649
6821 CONVEX 1219 'GT_PK(3,2)' 5565 5589 5607 5553 5581 5549 5538 5571 5529 5508
6822 CONVEX 1220 'GT_PK(3,2)' 5134 5291 5419 5336 5465 5501 5208 5352 5392 5278
6823 CONVEX 1221 'GT_PK(3,2)' 4320 4198 4098 4170 4068 4045 4308 4193 4160 4300
6824 CONVEX 1222 'GT_PK(3,2)' 5060 4965 4909 4893 4812 4742 4860 4788 4700 4671
6825 CONVEX 1223 'GT_PK(3,2)' 793 768 747 781 755 775 806 783 796 821
6826 CONVEX 1224 'GT_PK(3,2)' 4805 4707 4604 4554 4455 4330 4623 4519 4371 4434
6827 CONVEX 1225 'GT_PK(3,2)' 4224 4146 4076 4097 4019 3965 4257 4174 4120 4290
6828 CONVEX 1226 'GT_PK(3,2)' 3162 3023 2897 3289 3139 3415 3196 3055 3319 3234
6829 CONVEX 1227 'GT_PK(3,2)' 1039 1031 1026 1036 1030 1041 978 969 975 922
6830 CONVEX 1228 'GT_PK(3,2)' 2254 2158 2068 2221 2135 2198 2248 2152 2218 2257
6831 CONVEX 1229 'GT_PK(3,2)' 1248 1229 1217 1193 1181 1144 1277 1263 1220 1319
6832 CONVEX 1230 'GT_PK(3,2)' 2763 2832 2901 3032 3103 3341 2778 2852 3063 2813
6833 CONVEX 1231 'GT_PK(3,2)' 1249 1270 1311 1225 1253 1210 1324 1352 1296 1411
6834 CONVEX 1232 'GT_PK(3,2)' 2759 2683 2587 2942 2848 3132 2714 2635 2892 2679
6835 CONVEX 1233 'GT_PK(3,2)' 2256 2341 2436 2342 2438 2451 2384 2477 2487 2542
6836 CONVEX 1234 'GT_PK(3,2)' 890 846 807 831 782 766 877 839 813 870
6837 CONVEX 1235 'GT_PK(3,2)' 2729 2865 3009 3013 3164 3335 2879 3021 3183 3043
6838 CONVEX 1236 'GT_PK(3,2)' 3985 4080 4169 3998 4095 4024 4082 4178 4102 4183
6839 CONVEX 1237 'GT_PK(3,2)' 754 778 805 791 814 837 810 835 847 870
6840 CONVEX 1238 'GT_PK(3,2)' 3416 3462 3518 3602 3638 3747 3221 3269 3395 3043
6841 CONVEX 1239 'GT_PK(3,2)' 4422 4447 4472 4369 4397 4330 4302 4327 4248 4183
6842 CONVEX 1240 'GT_PK(3,2)' 382 387 400 357 365 351 350 360 325 324
6843 CONVEX 1241 'GT_PK(3,2)' 3043 3125 3234 3251 3347 3493 2957 3047 3161 2877
6844 CONVEX 1242 'GT_PK(3,2)' 870 891 922 847 876 837 915 942 896 960
6845 CONVEX 1243 'GT_PK(3,2)' 4183 4231 4290 4054 4106 3928 4127 4173 3997 4072
6846 CONVEX 1244 'GT_PK(3,2)' 5138 5112 5087 5041 5012 4944 5002 4963 4898 4866
6847 CONVEX 1245 'GT_PK(3,2)' 5138 5112 5087 5175 5151 5215 5041 5012 5088 4944
6848 CONVEX 1246 'GT_PK(3,2)' 3927 4001 4076 3938 4019 3965 3882 3953 3910 3847
6849 CONVEX 1247 'GT_PK(3,2)' 2702 2786 2897 3031 3139 3415 2861 2961 3219 3036
6850 CONVEX 1248 'GT_PK(3,2)' 1106 1065 1026 1068 1030 1041 1123 1080 1091 1140
6851 CONVEX 1249 'GT_PK(3,2)' 4450 4509 4556 4427 4483 4414 4575 4635 4551 4709
6852 CONVEX 1250 'GT_PK(3,2)' 463 425 394 419 383 382 445 405 395 431
6853 CONVEX 1251 'GT_PK(3,2)' 4093 4195 4300 3957 4065 3827 4099 4193 3962 4098
6854 CONVEX 1252 'GT_PK(3,2)' 4651 4538 4422 4478 4369 4330 4630 4518 4455 4604
6855 CONVEX 1253 'GT_PK(3,2)' 717 736 754 699 722 684 673 702 656 637
6856 CONVEX 1254 'GT_PK(3,2)' 3736 3593 3416 3738 3602 3747 3704 3546 3705 3668
6857 CONVEX 1255 'GT_PK(3,2)' 912 923 938 856 866 790 884 893 825 857
6858 CONVEX 1256 'GT_PK(3,2)' 3900 3945 4004 3954 4006 4026 4046 4096 4107 4186
6859 CONVEX 1257 'GT_PK(3,2)' 4161 4042 3925 4201 4087 4250 4158 4039 4200 4159
6860 CONVEX 1258 'GT_PK(3,2)' 3874 3784 3668 3807 3705 3747 3879 3801 3817 3893
6861 CONVEX 1259 'GT_PK(3,2)' 459 495 528 455 493 464 413 453 414 366
6862 CONVEX 1260 'GT_PK(3,2)' 4290 4340 4400 4241 4301 4199 4247 4313 4207 4214
6863 CONVEX 1261 'GT_PK(3,2)' 3234 3330 3447 3536 3635 3789 3468 3581 3748 3703
6864 CONVEX 1262 'GT_PK(3,2)' 834 785 739 845 804 872 795 749 809 760
6865 CONVEX 1263 'GT_PK(3,2)' 664 653 655 652 651 649 623 616 611 578
6866 CONVEX 1264 'GT_PK(3,2)' 1022 1009 998 1007 991 996 970 958 951 928
6867 CONVEX 1265 'GT_PK(3,2)' 2556 2467 2382 2426 2340 2307 2486 2401 2369 2435
6868 CONVEX 1266 'GT_PK(3,2)' 2900 2982 3085 2731 2816 2572 2790 2899 2645 2719
6869 CONVEX 1267 'GT_PK(3,2)' 1697 1801 1911 1821 1927 1951 1886 1989 2006 2076
6870 CONVEX 1268 'GT_PK(3,2)' 1071 1045 1022 1101 1075 1137 1082 1054 1113 1094
6871 CONVEX 1269 'GT_PK(3,2)' 4034 4091 4149 3977 4032 3915 3987 4041 3921 3936
6872 CONVEX 1270 'GT_PK(3,2)' 777 732 682 767 719 760 753 711 749 739
6873 CONVEX 1271 'GT_PK(3,2)' 3756 3836 3916 3883 3959 4014 3682 3780 3832 3607
6874 CONVEX 1272 'GT_PK(3,2)' 3687 3672 3644 3479 3449 3248 3412 3386 3193 3133
6875 CONVEX 1273 'GT_PK(3,2)' 1759 1714 1680 1667 1620 1580 1895 1842 1787 2023
6876 CONVEX 1274 'GT_PK(3,2)' 3154 3071 3014 2872 2799 2613 2949 2881 2691 2761
6877 CONVEX 1275 'GT_PK(3,2)' 1998 1879 1746 1990 1866 1988 2050 1934 2048 2109
6878 CONVEX 1276 'GT_PK(3,2)' 2250 2320 2395 2239 2309 2234 2293 2373 2289 2352
6879 CONVEX 1277 'GT_PK(3,2)' 144 167 201 123 149 109 206 230 178 263
6880 CONVEX 1278 'GT_PK(3,2)' 1557 1654 1771 1724 1846 1930 1650 1760 1841 1761
6881 CONVEX 1279 'GT_PK(3,2)' 5593 5608 5618 5544 5573 5451 5596 5610 5551 5600
6882 CONVEX 1280 'GT_PK(3,2)' 5324 5376 5438 5318 5372 5313 5292 5350 5286 5260
6883 CONVEX 1281 'GT_PK(3,2)' 840 860 875 836 849 837 800 819 794 760
6884 CONVEX 1282 'GT_PK(3,2)' 981 971 968 949 945 928 1033 1028 1005 1094
6885 CONVEX 1283 'GT_PK(3,2)' 2386 2332 2269 2475 2420 2582 2316 2224 2366 2173
6886 CONVEX 1284 'GT_PK(3,2)' 2173 2066 1948 2002 1889 1833 1997 1878 1825 1820
6887 CONVEX 1285 'GT_PK(3,2)' 2244 2278 2300 2428 2464 2644 2358 2357 2503 2386
6888 CONVEX 1286 'GT_PK(3,2)' 1890 1953 2021 1929 1996 1977 2081 2140 2098 2244
6889 CONVEX 1287 'GT_PK(3,2)' 1820 1717 1647 1645 1572 1500 1698 1644 1577 1673
6890 CONVEX 1288 'GT_PK(3,2)' 1673 1668 1685 1612 1627 1581 1738 1775 1721 1890
6891 CONVEX 1289 'GT_PK(3,2)' 4326 4344 4384 4208 4239 4108 4475 4521 4350 4647
6892 CONVEX 1290 'GT_PK(3,2)' 3985 3950 3930 3858 3833 3728 3842 3815 3699 3678
6893 CONVEX 1291 'GT_PK(3,2)' 2729 2701 2678 2882 2859 3061 2769 2745 2938 2820
6894 CONVEX 1292 'GT_PK(3,2)' 138 154 186 125 137 111 173 197 160 220
6895 CONVEX 1293 'GT_PK(3,2)' 32 45 66 47 69 111 63 91 92 119
6896 CONVEX 1294 'GT_PK(3,2)' 5358 5367 5373 5178 5190 4954 5295 5300 5093 5224
6897 CONVEX 1295 'GT_PK(3,2)' 4233 4128 4026 4240 4135 4254 4260 4151 4265 4287
6898 CONVEX 1296 'GT_PK(3,2)' 5527 5537 5549 5519 5529 5508 5444 5462 5432 5345
6899 CONVEX 1297 'GT_PK(3,2)' 418 363 317 373 320 340 379 327 336 351
6900 CONVEX 1298 'GT_PK(3,2)' 4468 4567 4649 4668 4754 4868 4559 4658 4755 4654
6901 CONVEX 1299 'GT_PK(3,2)' 5010 4969 4946 4859 4821 4709 4968 4939 4816 4944
6902 CONVEX 1300 'GT_PK(3,2)' 557 509 463 544 500 538 494 445 481 431
6903 CONVEX 1301 'GT_PK(3,2)' 1255 1234 1210 1332 1296 1411 1195 1170 1254 1137
6904 CONVEX 1302 'GT_PK(3,2)' 780 799 821 772 792 769 765 783 750 747
6905 CONVEX 1303 'GT_PK(3,2)' 4536 4595 4671 4385 4449 4254 4714 4788 4566 4909
6906 CONVEX 1304 'GT_PK(3,2)' 696 745 790 737 779 780 744 787 784 789
6907 CONVEX 1305 'GT_PK(3,2)' 4438 4338 4250 4229 4145 4045 4465 4364 4261 4504
6908 CONVEX 1306 'GT_PK(3,2)' 730 694 664 691 652 649 734 706 700 747
6909 CONVEX 1307 'GT_PK(3,2)' 2884 3086 3326 3039 3274 3217 2889 3099 3051 2908
6910 CONVEX 1308 'GT_PK(3,2)' 3529 3371 3227 3356 3213 3210 3257 3108 3095 3010
6911 CONVEX 1309 'GT_PK(3,2)' 2680 2665 2613 2907 2872 3154 2911 2875 3120 3158
6912 CONVEX 1310 'GT_PK(3,2)' 2091 2153 2234 2163 2239 2250 2108 2177 2189 2139
6913 CONVEX 1311 'GT_PK(3,2)' 2150 2067 1988 2077 1990 1998 2018 1939 1958 1894
6914 CONVEX 1312 'GT_PK(3,2)' 2307 2226 2150 2340 2263 2382 2288 2211 2324 2281
6915 CONVEX 1313 'GT_PK(3,2)' 1951 2009 2091 1927 1995 1911 1860 1938 1854 1779
6916 CONVEX 1314 'GT_PK(3,2)' 2572 2643 2680 2816 2876 3085 2819 2878 3066 3090
6917 CONVEX 1315 'GT_PK(3,2)' 3383 3292 3197 3339 3246 3320 3185 3084 3150 3004
6918 CONVEX 1316 'GT_PK(3,2)' 3153 3022 2906 2860 2747 2594 3016 2895 2740 2893
6919 CONVEX 1317 'GT_PK(3,2)' 1204 1259 1330 1216 1275 1238 1187 1240 1201 1171
6920 CONVEX 1318 'GT_PK(3,2)' 4342 4407 4461 4419 4480 4512 4243 4311 4325 4152
6921 CONVEX 1319 'GT_PK(3,2)' 2442 2354 2266 2554 2454 2679 2299 2216 2400 2173
6922 CONVEX 1320 'GT_PK(3,2)' 1416 1396 1401 1360 1348 1319 1539 1529 1484 1673
6923 CONVEX 1321 'GT_PK(3,2)' 1401 1424 1457 1398 1429 1411 1529 1563 1531 1673
6924 CONVEX 1322 'GT_PK(3,2)' 2266 2164 2058 2259 2149 2257 2216 2114 2207 2173
6925 CONVEX 1323 'GT_PK(3,2)' 2378 2465 2544 2581 2672 2813 2303 2379 2502 2244
6926 CONVEX 1324 'GT_PK(3,2)' 2182 2286 2378 2347 2449 2542 2209 2303 2377 2244
6927 CONVEX 1325 'GT_PK(3,2)' 423 380 338 402 361 394 422 378 405 431
6928 CONVEX 1326 'GT_PK(3,2)' 1635 1566 1500 1648 1576 1672 1720 1645 1729 1820
6929 CONVEX 1327 'GT_PK(3,2)' 2644 2664 2662 2807 2824 3017 2503 2515 2682 2386
6930 CONVEX 1328 'GT_PK(3,2)' 2662 2637 2582 2824 2779 3017 2515 2475 2682 2386
6931 CONVEX 1329 'GT_PK(3,2)' 1752 1858 1977 1803 1916 1867 1818 1929 1873 1890
6932 CONVEX 1330 'GT_PK(3,2)' 1833 1725 1635 1743 1648 1672 1825 1720 1729 1820
6933 CONVEX 1331 'GT_PK(3,2)' 1581 1662 1752 1706 1803 1867 1721 1818 1873 1890
6934 CONVEX 1332 'GT_PK(3,2)' 1184 1214 1255 1155 1195 1137 1135 1168 1113 1094
6935 CONVEX 1333 'GT_PK(3,2)' 3757 3612 3424 3494 3316 3199 3722 3570 3456 3693
6936 CONVEX 1334 'GT_PK(3,2)' 2483 2368 2262 2550 2430 2615 2444 2329 2507 2409
6937 CONVEX 1335 'GT_PK(3,2)' 5600 5582 5561 5466 5411 5177 5596 5578 5454 5593
6938 CONVEX 1336 'GT_PK(3,2)' 5520 5509 5501 5412 5392 5278 5464 5448 5340 5400
6939 CONVEX 1337 'GT_PK(3,2)' 4936 4993 5049 4776 4827 4617 4795 4846 4634 4647
6940 CONVEX 1338 'GT_PK(3,2)' 3176 3181 3158 2850 2842 2564 2917 2911 2614 2680
6941 CONVEX 1339 'GT_PK(3,2)' 1941 2036 2139 1962 2057 1991 2008 2108 2037 2091
6942 CONVEX 1340 'GT_PK(3,2)' 2072 1982 1894 2056 1972 2055 2107 2018 2100 2150
6943 CONVEX 1341 'GT_PK(3,2)' 3447 3532 3623 3635 3711 3789 3702 3762 3825 3868
6944 CONVEX 1342 'GT_PK(3,2)' 2281 2168 2072 2161 2056 2055 2211 2107 2100 2150
6945 CONVEX 1343 'GT_PK(3,2)' 5305 5239 5159 5095 5000 4848 5169 5074 4919 4998
6946 CONVEX 1344 'GT_PK(3,2)' 3090 3148 3176 2804 2850 2564 2878 2917 2614 2680
6947 CONVEX 1345 'GT_PK(3,2)' 4400 4466 4540 4301 4353 4199 4426 4496 4329 4456
6948 CONVEX 1346 'GT_PK(3,2)' 1779 1856 1941 1885 1962 1991 1938 2008 2037 2091
6949 CONVEX 1347 'GT_PK(3,2)' 5150 5193 5224 5043 5079 4931 5246 5279 5148 5324
6950 CONVEX 1348 'GT_PK(3,2)' 244 176 119 229 156 228 195 129 177 144
6951 CONVEX 1349 'GT_PK(3,2)' 4282 4189 4122 4298 4213 4323 4119 4047 4137 3956
6952 CONVEX 1350 'GT_PK(3,2)' 4083 4180 4281 4100 4190 4116 4043 4142 4051 3996
6953 CONVEX 1351 'GT_PK(3,2)' 220 197 186 133 108 73 188 168 116 184
6954 CONVEX 1352 'GT_PK(3,2)' 1535 1471 1413 1538 1475 1557 1599 1536 1608 1672
6955 CONVEX 1353 'GT_PK(3,2)' 3045 3026 2996 3329 3314 3644 3024 3000 3323 3017
6956 CONVEX 1354 'GT_PK(3,2)' 1551 1614 1692 1641 1718 1759 1694 1773 1812 1867
6957 CONVEX 1355 'GT_PK(3,2)' 4879 5003 5134 4869 4989 4868 4856 4978 4847 4843
6958 CONVEX 1356 'GT_PK(3,2)' 3421 3409 3404 3490 3478 3559 3244 3238 3317 3077
6959 CONVEX 1357 'GT_PK(3,2)' 964 917 872 965 919 973 980 930 982 992
6960 CONVEX 1358 'GT_PK(3,2)' 3890 3875 3867 3667 3648 3328 3808 3797 3531 3716
6961 CONVEX 1359 'GT_PK(3,2)' 4822 4728 4632 4999 4899 5177 4802 4712 4977 4792
6962 CONVEX 1360 'GT_PK(3,2)' 5153 4994 4845 5263 5124 5358 5058 4895 5178 4954
6963 CONVEX 1361 'GT_PK(3,2)' 4703 4603 4524 4810 4720 4926 4576 4505 4693 4461
6964 CONVEX 1362 'GT_PK(3,2)' 5114 5062 4988 5235 5182 5333 4981 4923 5127 4874
6965 CONVEX 1363 'GT_PK(3,2)' 477 522 558 504 542 538 472 520 505 483
6966 CONVEX 1364 'GT_PK(3,2)' 70 77 97 58 78 81 89 101 88 113
6967 CONVEX 1365 'GT_PK(3,2)' 3214 3400 3607 3313 3502 3404 3522 3701 3616 3781
6968 CONVEX 1366 'GT_PK(3,2)' 3768 3856 3936 3816 3904 3867 3710 3811 3767 3642
6969 CONVEX 1367 'GT_PK(3,2)' 3529 3613 3681 3356 3450 3210 3371 3458 3213 3227
6970 CONVEX 1368 'GT_PK(3,2)' 2884 2967 3052 3039 3124 3217 3086 3186 3274 3326
6971 CONVEX 1369 'GT_PK(3,2)' 4524 4633 4758 4675 4793 4838 4558 4672 4706 4581
6972 CONVEX 1370 'GT_PK(3,2)' 643 705 760 662 719 682 692 749 711 739
6973 CONVEX 1371 'GT_PK(3,2)' 5320 5417 5510 5513 5564 5600 5384 5480 5551 5451
6974 CONVEX 1372 'GT_PK(3,2)' 2990 3082 3197 2986 3084 3004 3141 3246 3150 3320
6975 CONVEX 1373 'GT_PK(3,2)' 2709 2793 2906 2784 2895 2893 2653 2747 2740 2594
6976 CONVEX 1374 'GT_PK(3,2)' 1474 1393 1330 1301 1240 1171 1342 1275 1201 1238
6977 CONVEX 1375 'GT_PK(3,2)' 1375 1444 1516 1423 1499 1482 1341 1412 1384 1316
6978 CONVEX 1376 'GT_PK(3,2)' 2636 2561 2492 2514 2450 2416 2469 2403 2367 2328
6979 CONVEX 1377 'GT_PK(3,2)' 3433 3301 3171 3111 2994 2834 3483 3336 3160 3530
6980 CONVEX 1378 'GT_PK(3,2)' 5354 5281 5197 5252 5165 5134 5402 5330 5297 5439
6981 CONVEX 1379 'GT_PK(3,2)' 545 503 465 534 499 529 485 441 475 418
6982 CONVEX 1380 'GT_PK(3,2)' 4563 4687 4792 4694 4802 4822 4612 4739 4738 4649
6983 CONVEX 1381 'GT_PK(3,2)' 1244 1303 1375 1183 1237 1137 1271 1341 1212 1316
6984 CONVEX 1382 'GT_PK(3,2)' 2805 2721 2636 2707 2606 2615 2557 2469 2462 2328
6985 CONVEX 1383 'GT_PK(3,2)' 3675 3560 3433 3422 3308 3199 3605 3483 3353 3530
6986 CONVEX 1384 'GT_PK(3,2)' 4796 4870 4946 4590 4673 4410 4750 4821 4548 4709
6987 CONVEX 1385 'GT_PK(3,2)' 5600 5603 5602 5584 5585 5567 5564 5566 5539 5510
6988 CONVEX 1386 'GT_PK(3,2)' 556 549 545 617 613 686 594 591 665 643
6989 CONVEX 1387 'GT_PK(3,2)' 4792 4712 4632 4918 4841 5061 4782 4698 4896 4747
6990 CONVEX 1388 'GT_PK(3,2)' 4105 4063 4008 4205 4157 4324 4188 4148 4293 4275
6991 CONVEX 1389 'GT_PK(3,2)' 5253 5187 5130 5216 5155 5185 5080 5015 5047 4909
6992 CONVEX 1390 'GT_PK(3,2)' 3218 3372 3538 3093 3255 3004 3322 3487 3205 3432
6993 CONVEX 1391 'GT_PK(3,2)' 2520 2674 2837 2699 2862 2893 2638 2788 2809 2762
6994 CONVEX 1392 'GT_PK(3,2)' 1186 1150 1119 1177 1142 1171 1103 1072 1098 1032
6995 CONVEX 1393 'GT_PK(3,2)' 1244 1191 1140 1209 1156 1184 1158 1110 1130 1088
6996 CONVEX 1394 'GT_PK(3,2)' 2805 2930 3036 2646 2748 2483 2836 2947 2670 2871
6997 CONVEX 1395 'GT_PK(3,2)' 3675 3771 3847 3713 3800 3757 3619 3732 3664 3569
6998 CONVEX 1396 'GT_PK(3,2)' 4914 4862 4805 4804 4759 4708 4992 4943 4892 5084
6999 CONVEX 1397 'GT_PK(3,2)' 4813 4911 4988 4724 4807 4654 4949 5036 4865 5084
7000 CONVEX 1398 'GT_PK(3,2)' 4562 4430 4320 4487 4352 4414 4423 4308 4345 4300
7001 CONVEX 1399 'GT_PK(3,2)' 68 98 138 86 125 111 134 183 159 231
7002 CONVEX 1400 'GT_PK(3,2)' 4310 4436 4579 4451 4589 4618 4316 4442 4459 4324
7003 CONVEX 1401 'GT_PK(3,2)' 5196 5066 4926 4961 4828 4740 5069 4932 4839 4941
7004 CONVEX 1402 'GT_PK(3,2)' 868 841 821 818 792 769 826 799 772 780
7005 CONVEX 1403 'GT_PK(3,2)' 4322 4498 4671 4285 4449 4254 4428 4595 4385 4536
7006 CONVEX 1404 'GT_PK(3,2)' 754 810 870 722 774 684 776 839 746 807
7007 CONVEX 1405 'GT_PK(3,2)' 3416 3221 3043 3505 3312 3601 3203 3021 3294 3009
7008 CONVEX 1406 'GT_PK(3,2)' 4422 4302 4183 4333 4209 4244 4294 4178 4204 4169
7009 CONVEX 1407 'GT_PK(3,2)' 3781 3785 3792 3850 3860 3928 3583 3594 3692 3326
7010 CONVEX 1408 'GT_PK(3,2)' 3642 3387 3128 3568 3309 3493 3429 3178 3343 3227
7011 CONVEX 1409 'GT_PK(3,2)' 4122 4238 4342 4304 4419 4512 4141 4243 4325 4152
7012 CONVEX 1410 'GT_PK(3,2)' 5547 5560 5572 5486 5507 5400 5576 5586 5528 5593
7013 CONVEX 1411 'GT_PK(3,2)' 4281 4378 4468 4484 4584 4708 4464 4559 4679 4654
7014 CONVEX 1412 'GT_PK(3,2)' 317 262 220 212 160 111 327 280 237 351
7015 CONVEX 1413 'GT_PK(3,2)' 4411 4366 4315 4516 4457 4618 4471 4404 4565 4524
7016 CONVEX 1414 'GT_PK(3,2)' 4524 4404 4315 4565 4457 4618 4396 4305 4435 4275
7017 CONVEX 1415 'GT_PK(3,2)' 585 624 660 631 671 686 564 601 613 545
7018 CONVEX 1416 'GT_PK(3,2)' 4881 4947 4987 5027 5081 5177 4851 4885 4977 4792
7019 CONVEX 1417 'GT_PK(3,2)' 1745 1769 1788 1656 1682 1580 1883 1906 1787 2023
7020 CONVEX 1418 'GT_PK(3,2)' 3358 3515 3632 3305 3442 3248 3240 3375 3193 3133
7021 CONVEX 1419 'GT_PK(3,2)' 1913 1979 2026 1915 1976 1930 1831 1899 1841 1761
7022 CONVEX 1420 'GT_PK(3,2)' 2262 2231 2198 2252 2218 2257 2430 2394 2422 2615
7023 CONVEX 1421 'GT_PK(3,2)' 3424 3384 3341 3097 3063 2813 3316 3265 2995 3199
7024 CONVEX 1422 'GT_PK(3,2)' 3802 3608 3335 3659 3406 3493 3731 3496 3568 3642
7025 CONVEX 1423 'GT_PK(3,2)' 4117 4069 4024 4023 3975 3928 3948 3905 3850 3781
7026 CONVEX 1424 'GT_PK(3,2)' 5037 4883 4726 4855 4697 4683 4925 4773 4748 4809
7027 CONVEX 1425 'GT_PK(3,2)' 4012 4061 4098 4029 4068 4045 4165 4198 4170 4320
7028 CONVEX 1426 'GT_PK(3,2)' 324 290 268 286 251 252 350 322 319 382
7029 CONVEX 1427 'GT_PK(3,2)' 4300 4424 4553 4345 4481 4414 4423 4557 4487 4562
7030 CONVEX 1428 'GT_PK(3,2)' 585 564 545 600 576 621 535 513 548 483
7031 CONVEX 1429 'GT_PK(3,2)' 4792 4885 4987 4977 5081 5177 4842 4942 5019 4874
7032 CONVEX 1430 'GT_PK(3,2)' 1746 1689 1643 1783 1733 1839 1840 1782 1896 1945
7033 CONVEX 1431 'GT_PK(3,2)' 2395 2532 2661 2363 2481 2338 2412 2547 2387 2439
7034 CONVEX 1432 'GT_PK(3,2)' 3014 2920 2801 2696 2591 2405 2751 2657 2458 2512
7035 CONVEX 1433 'GT_PK(3,2)' 4244 4418 4604 4284 4455 4330 4333 4518 4369 4422
7036 CONVEX 1434 'GT_PK(3,2)' 3601 3641 3668 3669 3705 3747 3505 3546 3602 3416
7037 CONVEX 1435 'GT_PK(3,2)' 1643 1669 1697 1733 1755 1839 1782 1815 1896 1945
7038 CONVEX 1436 'GT_PK(3,2)' 2801 2695 2556 2591 2470 2405 2657 2530 2458 2512
7039 CONVEX 1437 'GT_PK(3,2)' 682 619 556 681 617 686 662 594 665 643
7040 CONVEX 1438 'GT_PK(3,2)' 2661 2772 2900 2481 2592 2338 2547 2660 2387 2439
7041 CONVEX 1439 'GT_PK(3,2)' 81 74 82 130 128 202 78 85 139 97
7042 CONVEX 1440 'GT_PK(3,2)' 5600 5588 5574 5513 5477 5320 5582 5569 5463 5561
7043 CONVEX 1441 'GT_PK(3,2)' 1184 1143 1106 1130 1097 1088 1156 1123 1110 1140
7044 CONVEX 1442 'GT_PK(3,2)' 1184 1143 1106 1062 1027 959 1130 1097 1017 1088
7045 CONVEX 1443 'GT_PK(3,2)' 2483 2584 2702 2670 2775 2871 2748 2861 2947 3036
7046 CONVEX 1444 'GT_PK(3,2)' 2483 2584 2702 2752 2870 3061 2670 2775 2964 2871
7047 CONVEX 1445 'GT_PK(3,2)' 3757 3843 3927 3664 3777 3569 3800 3882 3732 3847
7048 CONVEX 1446 'GT_PK(3,2)' 3757 3843 3927 3735 3826 3728 3664 3777 3646 3569
7049 CONVEX 1447 'GT_PK(3,2)' 4809 4670 4536 4748 4598 4683 4858 4714 4789 4909
7050 CONVEX 1448 'GT_PK(3,2)' 4848 4864 4879 4919 4934 4998 4688 4702 4761 4535
7051 CONVEX 1449 'GT_PK(3,2)' 4876 4814 4774 4643 4587 4414 4831 4780 4599 4796
7052 CONVEX 1450 'GT_PK(3,2)' 5199 5176 5143 4960 4929 4731 5029 4997 4791 4857
7053 CONVEX 1451 'GT_PK(3,2)' 4186 4253 4322 4191 4258 4199 4217 4285 4223 4254
7054 CONVEX 1452 'GT_PK(3,2)' 4159 4086 4012 3980 3902 3789 4103 4029 3917 4045
7055 CONVEX 1453 'GT_PK(3,2)' 2380 2285 2198 2304 2218 2257 2314 2221 2248 2254
7056 CONVEX 1454 'GT_PK(3,2)' 1117 1161 1210 1241 1296 1411 1180 1225 1324 1249
7057 CONVEX 1455 'GT_PK(3,2)' 3079 3208 3341 2943 3063 2813 2927 3032 2778 2763
7058 CONVEX 1456 'GT_PK(3,2)' 3869 3942 4008 4025 4088 4152 3989 4053 4125 4108
7059 CONVEX 1457 'GT_PK(3,2)' 2451 2546 2647 2487 2579 2542 2438 2536 2477 2436
7060 CONVEX 1458 'GT_PK(3,2)' 3132 2983 2847 2892 2753 2679 2848 2720 2635 2587
7061 CONVEX 1459 'GT_PK(3,2)' 1144 1112 1086 1220 1189 1319 1181 1148 1263 1217
7062 CONVEX 1460 'GT_PK(3,2)' 305 297 291 210 200 119 269 260 176 244
7063 CONVEX 1461 'GT_PK(3,2)' 4434 4277 4117 4371 4212 4330 4347 4197 4295 4281
7064 CONVEX 1462 'GT_PK(3,2)' 221 243 274 146 192 111 207 246 160 220
7065 CONVEX 1463 'GT_PK(3,2)' 4540 4640 4742 4353 4453 4199 4496 4588 4329 4456
7066 CONVEX 1464 'GT_PK(3,2)' 4845 4836 4838 4730 4723 4618 4895 4891 4785 4954
7067 CONVEX 1465 'GT_PK(3,2)' 5260 5205 5138 5106 5031 4931 5161 5097 4976 5049
7068 CONVEX 1466 'GT_PK(3,2)' 3893 3851 3802 3817 3770 3747 4010 3973 3931 4122
7069 CONVEX 1467 'GT_PK(3,2)' 775 816 859 833 873 886 770 811 830 769
7070 CONVEX 1468 'GT_PK(3,2)' 5289 5299 5320 5231 5248 5177 5369 5384 5328 5451
7071 CONVEX 1469 'GT_PK(3,2)' 263 321 377 239 299 228 298 356 278 338
7072 CONVEX 1470 'GT_PK(3,2)' 174 107 70 122 79 111 135 89 105 113
7073 CONVEX 1471 'GT_PK(3,2)' 5114 4981 4874 5229 5121 5326 5059 4942 5174 4987
7074 CONVEX 1472 'GT_PK(3,2)' 483 520 558 546 582 620 535 567 598 585
7075 CONVEX 1473 'GT_PK(3,2)' 2054 1966 1868 2045 1954 2041 2130 2032 2118 2194
7076 CONVEX 1474 'GT_PK(3,2)' 3048 3029 2999 3194 3169 3369 3264 3243 3434 3514
7077 CONVEX 1475 'GT_PK(3,2)' 1314 1359 1413 1365 1419 1440 1261 1307 1322 1221
7078 CONVEX 1476 'GT_PK(3,2)' 2909 2958 2996 3058 3104 3248 3115 3167 3307 3364
7079 CONVEX 1477 'GT_PK(3,2)' 1684 1763 1859 1792 1888 1930 1809 1907 1940 1955
7080 CONVEX 1478 'GT_PK(3,2)' 1551 1479 1418 1560 1489 1580 1436 1376 1454 1337
7081 CONVEX 1479 'GT_PK(3,2)' 875 854 834 871 845 872 819 795 809 760
7082 CONVEX 1480 'GT_PK(3,2)' 3623 3740 3827 3711 3804 3789 3762 3844 3825 3868
7083 CONVEX 1481 'GT_PK(3,2)' 968 931 890 904 867 840 918 877 848 870
7084 CONVEX 1482 'GT_PK(3,2)' 2678 2701 2729 2859 2882 3061 2849 2879 3044 3043
7085 CONVEX 1483 'GT_PK(3,2)' 3930 3950 3985 3833 3858 3728 4059 4082 3964 4183
7086 CONVEX 1484 'GT_PK(3,2)' 4876 4769 4667 4643 4541 4414 4711 4610 4487 4562
7087 CONVEX 1485 'GT_PK(3,2)' 4105 4188 4275 4196 4286 4310 4211 4305 4309 4315
7088 CONVEX 1486 'GT_PK(3,2)' 32 15 9 20 7 22 16 6 12 10
7089 CONVEX 1487 'GT_PK(3,2)' 5358 5371 5382 5332 5348 5307 5426 5441 5409 5495
7090 CONVEX 1488 'GT_PK(3,2)' 5199 5241 5271 5013 5065 4845 5287 5321 5124 5358
7091 CONVEX 1489 'GT_PK(3,2)' 81 50 33 58 40 70 49 29 35 32
7092 CONVEX 1490 'GT_PK(3,2)' 3218 3177 3132 3093 3057 3004 2937 2892 2825 2679
7093 CONVEX 1491 'GT_PK(3,2)' 1186 1165 1144 1177 1154 1171 1245 1220 1236 1319
7094 CONVEX 1492 'GT_PK(3,2)' 2520 2479 2451 2699 2659 2893 2528 2487 2708 2542
7095 CONVEX 1493 'GT_PK(3,2)' 3965 4097 4224 4120 4257 4290 4090 4219 4247 4214
7096 CONVEX 1494 'GT_PK(3,2)' 3415 3289 3162 3319 3196 3234 3566 3431 3468 3703
7097 CONVEX 1495 'GT_PK(3,2)' 1041 1036 1039 975 978 922 989 988 934 947
7098 CONVEX 1496 'GT_PK(3,2)' 4737 4863 4985 4973 5118 5224 4937 5073 5193 5150
7099 CONVEX 1497 'GT_PK(3,2)' 2759 2838 2909 2714 2774 2679 3042 3115 2992 3364
7100 CONVEX 1498 'GT_PK(3,2)' 1248 1272 1314 1277 1309 1319 1231 1261 1258 1221
7101 CONVEX 1499 'GT_PK(3,2)' 1418 1357 1311 1406 1352 1411 1376 1321 1369 1337
7102 CONVEX 1500 'GT_PK(3,2)' 1859 1969 2068 2053 2152 2257 1907 2003 2095 1955
7103 CONVEX 1501 'GT_PK(3,2)' 2256 2155 2054 2384 2280 2542 2219 2130 2351 2194
7104 CONVEX 1502 'GT_PK(3,2)' 2999 2955 2901 2902 2852 2813 3243 3191 3138 3514
7105 CONVEX 1503 'GT_PK(3,2)' 790 825 857 779 817 780 787 823 784 789
7106 CONVEX 1504 'GT_PK(3,2)' 4250 4200 4159 4145 4103 4045 4364 4331 4261 4504
7107 CONVEX 1505 'GT_PK(3,2)' 4026 4107 4186 4135 4217 4254 4151 4245 4265 4287
7108 CONVEX 1506 'GT_PK(3,2)' 81 49 32 75 53 93 95 63 100 119
7109 CONVEX 1507 'GT_PK(3,2)' 5199 5287 5358 5013 5124 4845 5214 5295 5028 5224
7110 CONVEX 1508 'GT_PK(3,2)' 5561 5552 5532 5447 5420 5284 5533 5523 5394 5498
7111 CONVEX 1509 'GT_PK(3,2)' 3956 3820 3642 3932 3796 3915 3943 3811 3921 3936
7112 CONVEX 1510 'GT_PK(3,2)' 3996 3884 3781 4002 3895 4014 3822 3701 3832 3607
7113 CONVEX 1511 'GT_PK(3,2)' 3968 3920 3874 4048 4005 4132 4036 3993 4115 4108
7114 CONVEX 1512 'GT_PK(3,2)' 5142 4974 4822 5160 4999 5177 4982 4829 5005 4843
7115 CONVEX 1513 'GT_PK(3,2)' 5561 5555 5547 5411 5393 5177 5578 5576 5454 5593
7116 CONVEX 1514 'GT_PK(3,2)' 840 867 890 904 931 968 885 907 945 928
7117 CONVEX 1515 'GT_PK(3,2)' 660 715 766 671 723 686 713 759 721 760
7118 CONVEX 1516 'GT_PK(3,2)' 144 206 263 123 178 109 177 239 151 228
7119 CONVEX 1517 'GT_PK(3,2)' 5324 5292 5260 5318 5286 5313 5148 5106 5140 4931
7120 CONVEX 1518 'GT_PK(3,2)' 4813 4806 4805 4724 4729 4654 4624 4623 4547 4434
7121 CONVEX 1519 'GT_PK(3,2)' 3869 3871 3874 4025 4011 4152 3887 3879 4033 3893
7122 CONVEX 1520 'GT_PK(3,2)' 872 827 777 809 767 760 804 753 749 739
7123 CONVEX 1521 'GT_PK(3,2)' 3867 3946 4034 3767 3859 3642 3904 3987 3811 3936
7124 CONVEX 1522 'GT_PK(3,2)' 3404 3604 3756 3616 3764 3781 3502 3682 3701 3607
7125 CONVEX 1523 'GT_PK(3,2)' 2729 2929 3128 3075 3309 3493 3013 3236 3406 3335
7126 CONVEX 1524 'GT_PK(3,2)' 3985 3881 3792 3944 3860 3928 3998 3912 3975 4024
7127 CONVEX 1525 'GT_PK(3,2)' 4479 4489 4507 4506 4526 4536 4645 4664 4670 4809
7128 CONVEX 1526 'GT_PK(3,2)' 886 851 821 833 796 775 830 792 770 769
7129 CONVEX 1527 'GT_PK(3,2)' 4214 4266 4322 4207 4258 4199 4110 4156 4104 4004
7130 CONVEX 1528 'GT_PK(3,2)' 947 906 868 862 818 769 943 903 855 938
7131 CONVEX 1529 'GT_PK(3,2)' 3703 3866 4012 3748 3902 3789 3818 3967 3854 3925
7132 CONVEX 1530 'GT_PK(3,2)' 4349 4495 4641 4522 4657 4683 4440 4580 4596 4535
7133 CONVEX 1531 'GT_PK(3,2)' 676 644 620 642 614 621 605 574 571 538
7134 CONVEX 1532 'GT_PK(3,2)' 5326 5427 5515 5269 5370 5206 5331 5430 5275 5333
7135 CONVEX 1533 'GT_PK(3,2)' 4726 4597 4479 4697 4577 4683 4773 4645 4748 4809
7136 CONVEX 1534 'GT_PK(3,2)' 4461 4505 4524 4592 4628 4740 4358 4396 4499 4275
7137 CONVEX 1535 'GT_PK(3,2)' 4641 4746 4848 4811 4919 4998 4580 4688 4761 4535
7138 CONVEX 1536 'GT_PK(3,2)' 4796 4678 4556 4750 4635 4709 4599 4483 4551 4414
7139 CONVEX 1537 'GT_PK(3,2)' 4159 4242 4320 4103 4170 4045 4331 4392 4261 4504
7140 CONVEX 1538 'GT_PK(3,2)' 1316 1243 1184 1212 1155 1137 1271 1209 1183 1244
7141 CONVEX 1539 'GT_PK(3,2)' 2328 2402 2483 2462 2550 2615 2557 2646 2707 2805
7142 CONVEX 1540 'GT_PK(3,2)' 3530 3650 3757 3353 3494 3199 3605 3713 3422 3675
7143 CONVEX 1541 'GT_PK(3,2)' 4149 4052 3956 4032 3932 3915 4041 3943 3921 3936
7144 CONVEX 1542 'GT_PK(3,2)' 3916 3947 3996 3959 4002 4014 3780 3822 3832 3607
7145 CONVEX 1543 'GT_PK(3,2)' 477 437 400 410 365 351 424 387 357 382
7146 CONVEX 1544 'GT_PK(3,2)' 545 485 418 526 466 511 513 450 491 483
7147 CONVEX 1545 'GT_PK(3,2)' 4649 4739 4792 4913 4977 5177 4762 4842 5019 4874
7148 CONVEX 1546 'GT_PK(3,2)' 925 899 875 950 933 996 952 935 991 998
7149 CONVEX 1547 'GT_PK(3,2)' 3234 3420 3623 3501 3683 3747 3536 3711 3766 3789
7150 CONVEX 1548 'GT_PK(3,2)' 4290 4402 4540 4307 4425 4330 4241 4353 4264 4199
7151 CONVEX 1549 'GT_PK(3,2)' 4879 4864 4848 4934 4919 4998 5042 5024 5104 5197
7152 CONVEX 1550 'GT_PK(3,2)' 766 803 840 813 848 870 797 836 847 837
7153 CONVEX 1551 'GT_PK(3,2)' 4310 4365 4439 4309 4363 4315 4451 4528 4457 4618
7154 CONVEX 1552 'GT_PK(3,2)' 928 958 998 951 991 996 901 935 933 875
7155 CONVEX 1553 'GT_PK(3,2)' 4186 4359 4536 4217 4385 4254 4245 4405 4265 4287
7156 CONVEX 1554 'GT_PK(3,2)' 2023 2027 2041 1947 1957 1867 1895 1904 1812 1759
7157 CONVEX 1555 'GT_PK(3,2)' 2023 2027 2041 2157 2162 2294 1947 1957 2084 1867
7158 CONVEX 1556 'GT_PK(3,2)' 1759 1895 2023 1667 1787 1580 1812 1947 1708 1867
7159 CONVEX 1557 'GT_PK(3,2)' 1477 1524 1580 1439 1488 1411 1358 1402 1332 1255
7160 CONVEX 1558 'GT_PK(3,2)' 1477 1524 1580 1588 1628 1691 1439 1488 1546 1411
7161 CONVEX 1559 'GT_PK(3,2)' 1477 1524 1580 1552 1597 1622 1588 1628 1655 1691
7162 CONVEX 1560 'GT_PK(3,2)' 1691 1588 1477 1590 1476 1482 1655 1552 1549 1622
7163 CONVEX 1561 'GT_PK(3,2)' 1691 1588 1477 1546 1439 1411 1590 1476 1442 1482
7164 CONVEX 1562 'GT_PK(3,2)' 1255 1358 1477 1195 1280 1137 1332 1439 1254 1411
7165 CONVEX 1563 'GT_PK(3,2)' 2190 2063 1930 2220 2089 2257 2223 2093 2252 2262
7166 CONVEX 1564 'GT_PK(3,2)' 2190 2063 1930 2170 2038 2154 2220 2089 2191 2257
7167 CONVEX 1565 'GT_PK(3,2)' 2190 2063 1930 2222 2090 2258 2170 2038 2196 2154
7168 CONVEX 1566 'GT_PK(3,2)' 2154 2170 2190 2279 2297 2416 2196 2222 2321 2258
7169 CONVEX 1567 'GT_PK(3,2)' 2154 2170 2190 2191 2220 2257 2279 2297 2325 2416
7170 CONVEX 1568 'GT_PK(3,2)' 2262 2223 2190 2430 2388 2615 2252 2220 2422 2257
7171 CONVEX 1569 'GT_PK(3,2)' 3369 3245 3133 3188 3070 3017 3507 3386 3323 3644
7172 CONVEX 1570 'GT_PK(3,2)' 3369 3245 3133 3102 2997 2880 3188 3070 2940 3017
7173 CONVEX 1571 'GT_PK(3,2)' 3133 3386 3644 3193 3449 3248 3070 3323 3119 3017
7174 CONVEX 1572 'GT_PK(3,2)' 1761 1595 1440 1710 1553 1672 1650 1492 1608 1557
7175 CONVEX 1573 'GT_PK(3,2)' 1761 1595 1440 1687 1527 1624 1710 1553 1633 1672
7176 CONVEX 1574 'GT_PK(3,2)' 1557 1650 1761 1724 1841 1930 1608 1710 1791 1672
7177 CONVEX 1575 'GT_PK(3,2)' 1761 1710 1672 1964 1909 2154 1841 1791 2038 1930
7178 CONVEX 1576 'GT_PK(3,2)' 3182 3276 3369 2991 3073 2813 3306 3391 3097 3424
7179 CONVEX 1577 'GT_PK(3,2)' 3182 3276 3369 3020 3102 2880 2991 3073 2844 2813
7180 CONVEX 1578 'GT_PK(3,2)' 3182 3276 3369 3250 3345 3334 3020 3102 3087 2880
7181 CONVEX 1579 'GT_PK(3,2)' 2880 3020 3182 2853 3001 2834 3087 3250 3069 3334
7182 CONVEX 1580 'GT_PK(3,2)' 2880 3020 3182 2844 2991 2813 2853 3001 2821 2834
7183 CONVEX 1581 'GT_PK(3,2)' 3424 3306 3182 3316 3184 3199 3097 2991 2995 2813
7184 CONVEX 1582 'GT_PK(3,2)' 1440 1417 1392 1372 1346 1319 1295 1279 1245 1186
7185 CONVEX 1583 'GT_PK(3,2)' 1440 1417 1392 1527 1506 1624 1372 1346 1461 1319
7186 CONVEX 1584 'GT_PK(3,2)' 1440 1417 1392 1485 1460 1534 1527 1506 1584 1624
7187 CONVEX 1585 'GT_PK(3,2)' 1392 1506 1624 1540 1659 1697 1460 1584 1603 1534
7188 CONVEX 1586 'GT_PK(3,2)' 1624 1584 1534 1778 1722 1951 1659 1603 1821 1697
7189 CONVEX 1587 'GT_PK(3,2)' 1392 1279 1186 1266 1177 1171 1346 1245 1236 1319
7190 CONVEX 1588 'GT_PK(3,2)' 1392 1346 1319 1433 1391 1482 1506 1461 1550 1624
7191 CONVEX 1589 'GT_PK(3,2)' 3248 3121 3015 2945 2839 2679 3229 3105 2937 3218
7192 CONVEX 1590 'GT_PK(3,2)' 3248 3121 3015 3008 2903 2783 2945 2839 2727 2679
7193 CONVEX 1591 'GT_PK(3,2)' 3248 3121 3015 3222 3098 3206 3008 2903 2988 2783
7194 CONVEX 1592 'GT_PK(3,2)' 3015 2903 2783 2948 2841 2900 3098 2988 3019 3206
7195 CONVEX 1593 'GT_PK(3,2)' 2783 2988 3206 2681 2867 2572 2841 3019 2731 2900
7196 CONVEX 1594 'GT_PK(3,2)' 3015 3105 3218 3002 3093 3004 2839 2937 2825 2679
7197 CONVEX 1595 'GT_PK(3,2)' 3015 2839 2679 2697 2539 2416 2903 2727 2585 2783
7198 CONVEX 1596 'GT_PK(3,2)' 5354 5402 5439 5252 5297 5134 5434 5472 5336 5501
7199 CONVEX 1597 'GT_PK(3,2)' 2041 2202 2381 2274 2456 2542 2270 2441 2528 2520
7200 CONVEX 1598 'GT_PK(3,2)' 2041 2202 2381 2162 2337 2294 2274 2456 2406 2542
7201 CONVEX 1599 'GT_PK(3,2)' 2041 2202 2381 2233 2410 2447 2162 2337 2371 2294
7202 CONVEX 1600 'GT_PK(3,2)' 2381 2337 2294 2460 2421 2556 2410 2371 2482 2447
7203 CONVEX 1601 'GT_PK(3,2)' 2294 2371 2447 2296 2370 2307 2421 2482 2426 2556
7204 CONVEX 1602 'GT_PK(3,2)' 2381 2441 2520 2616 2699 2893 2456 2528 2708 2542
7205 CONVEX 1603 'GT_PK(3,2)' 2381 2456 2542 2586 2684 2834 2337 2406 2548 2294
7206 CONVEX 1604 'GT_PK(3,2)' 324 360 400 325 365 351 295 332 304 274
7207 CONVEX 1605 'GT_PK(3,2)' 2613 2522 2405 2799 2696 3014 2744 2634 2946 2880
7208 CONVEX 1606 'GT_PK(3,2)' 2572 2580 2564 2867 2857 3206 2681 2676 2988 2783
7209 CONVEX 1607 'GT_PK(3,2)' 2307 2175 2055 2370 2241 2447 2296 2169 2371 2294
7210 CONVEX 1608 'GT_PK(3,2)' 1988 1905 1839 1794 1716 1622 1835 1756 1655 1691
7211 CONVEX 1609 'GT_PK(3,2)' 2234 2287 2338 2309 2363 2395 2183 2245 2272 2154
7212 CONVEX 1610 'GT_PK(3,2)' 1951 1963 1991 1722 1740 1534 1778 1799 1584 1624
7213 CONVEX 1611 'GT_PK(3,2)' 2338 2459 2572 2592 2731 2900 2553 2681 2841 2783
7214 CONVEX 1612 'GT_PK(3,2)' 2405 2365 2307 2470 2426 2556 2345 2296 2421 2294
7215 CONVEX 1613 'GT_PK(3,2)' 2564 2600 2613 2921 2950 3334 2716 2744 3087 2880
7216 CONVEX 1614 'GT_PK(3,2)' 1839 1884 1951 1755 1821 1697 1723 1778 1659 1624
7217 CONVEX 1615 'GT_PK(3,2)' 2055 2013 1988 1829 1794 1622 1877 1835 1655 1691
7218 CONVEX 1616 'GT_PK(3,2)' 1991 2101 2234 2111 2237 2258 2073 2183 2196 2154
7219 CONVEX 1617 'GT_PK(3,2)' 5503 5470 5446 5423 5390 5339 5401 5378 5316 5296
7220 CONVEX 1618 'GT_PK(3,2)' 1106 1123 1140 1068 1091 1041 1097 1110 1058 1088
7221 CONVEX 1619 'GT_PK(3,2)' 3927 3882 3847 3938 3910 3965 3777 3732 3798 3569
7222 CONVEX 1620 'GT_PK(3,2)' 2702 2861 3036 3031 3219 3415 2775 2947 3118 2871
7223 CONVEX 1621 'GT_PK(3,2)' 3326 3508 3678 3537 3699 3728 3291 3466 3499 3249
7224 CONVEX 1622 'GT_PK(3,2)' 2650 2923 3227 2840 3131 3061 2732 3012 2938 2820
7225 CONVEX 1623 'GT_PK(3,2)' 5296 5378 5446 5316 5390 5339 5317 5395 5337 5345
7226 CONVEX 1624 'GT_PK(3,2)' 5520 5534 5547 5464 5486 5400 5412 5436 5340 5278
7227 CONVEX 1625 'GT_PK(3,2)' 5492 5525 5547 5334 5381 5142 5530 5555 5396 5561
7228 CONVEX 1626 'GT_PK(3,2)' 717 668 620 645 598 585 667 614 600 621
7229 CONVEX 1627 'GT_PK(3,2)' 5087 4971 4872 5011 4905 4946 5012 4904 4939 4944
7230 CONVEX 1628 'GT_PK(3,2)' 4149 4228 4323 4032 4114 3915 4052 4137 3932 3956
7231 CONVEX 1629 'GT_PK(3,2)' 3916 4022 4116 3959 4062 4014 3947 4051 4002 3996
7232 CONVEX 1630 'GT_PK(3,2)' 964 914 863 965 911 973 917 864 919 872
7233 CONVEX 1631 'GT_PK(3,2)' 3421 3625 3774 3490 3670 3559 3409 3617 3478 3404
7234 CONVEX 1632 'GT_PK(3,2)' 3890 3979 4060 3667 3779 3328 3875 3961 3648 3867
7235 CONVEX 1633 'GT_PK(3,2)' 3433 3342 3258 3308 3216 3199 3233 3145 3114 3049
7236 CONVEX 1634 'GT_PK(3,2)' 1375 1331 1286 1237 1199 1137 1317 1269 1198 1267
7237 CONVEX 1635 'GT_PK(3,2)' 2636 2785 2971 2606 2773 2615 2622 2780 2612 2627
7238 CONVEX 1636 'GT_PK(3,2)' 859 811 769 888 844 922 873 830 902 886
7239 CONVEX 1637 'GT_PK(3,2)' 3182 3001 2834 3184 3005 3199 2991 2821 2995 2813
7240 CONVEX 1638 'GT_PK(3,2)' 2190 2297 2416 2388 2504 2615 2220 2325 2422 2257
7241 CONVEX 1639 'GT_PK(3,2)' 1477 1476 1482 1280 1283 1137 1439 1442 1254 1411
7242 CONVEX 1640 'GT_PK(3,2)' 4468 4567 4649 4501 4583 4535 4668 4754 4695 4868
7243 CONVEX 1641 'GT_PK(3,2)' 1094 1069 1053 1019 1004 959 1113 1093 1044 1137
7244 CONVEX 1642 'GT_PK(3,2)' 4954 4895 4845 5093 5028 5224 4785 4730 4917 4618
7245 CONVEX 1643 'GT_PK(3,2)' 5324 5353 5373 5148 5183 4931 5318 5347 5140 5313
7246 CONVEX 1644 'GT_PK(3,2)' 581 531 490 566 524 557 577 537 563 578
7247 CONVEX 1645 'GT_PK(3,2)' 647 635 627 618 607 592 670 654 641 697
7248 CONVEX 1646 'GT_PK(3,2)' 144 102 66 177 126 228 123 84 151 109
7249 CONVEX 1647 'GT_PK(3,2)' 4342 4407 4461 4527 4578 4709 4419 4480 4600 4512
7250 CONVEX 1648 'GT_PK(3,2)' 70 89 113 71 103 93 79 105 96 111
7251 CONVEX 1649 'GT_PK(3,2)' 113 105 111 155 148 214 103 96 142 93
7252 CONVEX 1650 'GT_PK(3,2)' 70 89 113 58 88 81 71 103 75 93
7253 CONVEX 1651 'GT_PK(3,2)' 93 103 113 169 190 268 142 155 240 214
7254 CONVEX 1652 'GT_PK(3,2)' 93 103 113 75 88 81 169 190 150 268
7255 CONVEX 1653 'GT_PK(3,2)' 113 105 111 190 162 268 155 148 240 214
7256 CONVEX 1654 'GT_PK(3,2)' 2409 2355 2301 2507 2448 2615 2521 2463 2633 2650
7257 CONVEX 1655 'GT_PK(3,2)' 3693 3627 3551 3456 3365 3199 3476 3394 3220 3249
7258 CONVEX 1656 'GT_PK(3,2)' 2884 2889 2908 3039 3051 3217 2810 2822 2978 2762
7259 CONVEX 1657 'GT_PK(3,2)' 3529 3257 3010 3356 3095 3210 3481 3211 3321 3432
7260 CONVEX 1658 'GT_PK(3,2)' 3893 4010 4122 4016 4121 4132 4033 4141 4139 4152
7261 CONVEX 1659 'GT_PK(3,2)' 4665 4544 4416 4537 4406 4410 4486 4362 4357 4326
7262 CONVEX 1660 'GT_PK(3,2)' 5320 5384 5451 5513 5551 5600 5248 5328 5466 5177
7263 CONVEX 1661 'GT_PK(3,2)' 890 867 840 877 848 870 831 803 813 766
7264 CONVEX 1662 'GT_PK(3,2)' 2908 2767 2647 3038 2904 3199 2822 2698 2962 2762
7265 CONVEX 1663 'GT_PK(3,2)' 3010 2932 2847 2792 2726 2615 3211 3117 2989 3432
7266 CONVEX 1664 'GT_PK(3,2)' 3716 3808 3890 3754 3841 3793 3531 3667 3591 3328
7267 CONVEX 1665 'GT_PK(3,2)' 992 980 964 1006 993 1023 982 965 997 973
7268 CONVEX 1666 'GT_PK(3,2)' 3077 3244 3421 3411 3600 3744 3317 3490 3649 3559
7269 CONVEX 1667 'GT_PK(3,2)' 3015 3159 3320 2998 3141 2990 3002 3150 2986 3004
7270 CONVEX 1668 'GT_PK(3,2)' 1392 1312 1238 1432 1342 1474 1266 1201 1301 1171
7271 CONVEX 1669 'GT_PK(3,2)' 717 736 754 693 716 686 699 722 680 684
7272 CONVEX 1670 'GT_PK(3,2)' 2381 2480 2594 2538 2653 2709 2616 2740 2784 2893
7273 CONVEX 1671 'GT_PK(3,2)' 3249 3067 2908 3230 3051 3217 3291 3099 3274 3326
7274 CONVEX 1672 'GT_PK(3,2)' 3010 3108 3227 3095 3213 3210 2812 2923 2913 2650
7275 CONVEX 1673 'GT_PK(3,2)' 1477 1388 1316 1476 1384 1482 1495 1412 1499 1516
7276 CONVEX 1674 'GT_PK(3,2)' 2190 2264 2328 2297 2367 2416 2334 2403 2450 2492
7277 CONVEX 1675 'GT_PK(3,2)' 3182 3349 3530 3001 3160 2834 3170 3336 2994 3171
7278 CONVEX 1676 'GT_PK(3,2)' 5067 5135 5196 4837 4906 4618 5007 5075 4785 4954
7279 CONVEX 1677 'GT_PK(3,2)' 5305 5255 5197 5169 5104 4998 5095 5024 4919 4848
7280 CONVEX 1678 'GT_PK(3,2)' 5305 5255 5197 5322 5274 5345 5169 5104 5189 4998
7281 CONVEX 1679 'GT_PK(3,2)' 4434 4347 4281 4568 4484 4708 4547 4464 4679 4654
7282 CONVEX 1680 'GT_PK(3,2)' 220 246 274 160 192 111 280 304 237 351
7283 CONVEX 1681 'GT_PK(3,2)' 202 234 268 130 150 81 147 190 88 113
7284 CONVEX 1682 'GT_PK(3,2)' 1210 1264 1337 1296 1369 1411 1253 1321 1352 1311
7285 CONVEX 1683 'GT_PK(3,2)' 2198 2082 1955 2218 2095 2257 2135 2003 2152 2068
7286 CONVEX 1684 'GT_PK(3,2)' 3364 3254 3132 2992 2892 2679 3042 2942 2714 2759
7287 CONVEX 1685 'GT_PK(3,2)' 1221 1179 1144 1258 1220 1319 1231 1193 1277 1248
7288 CONVEX 1686 'GT_PK(3,2)' 3341 3435 3514 3063 3138 2813 3103 3191 2852 2901
7289 CONVEX 1687 'GT_PK(3,2)' 2194 2318 2451 2351 2487 2542 2219 2342 2384 2256
7290 CONVEX 1688 'GT_PK(3,2)' 2750 2873 2990 2866 2986 3004 2569 2687 2693 2416
7291 CONVEX 1689 'GT_PK(3,2)' 1468 1463 1474 1297 1301 1171 1472 1473 1306 1482
7292 CONVEX 1690 'GT_PK(3,2)' 2954 2831 2709 2924 2784 2893 2891 2765 2858 2834
7293 CONVEX 1691 'GT_PK(3,2)' 315 342 377 273 309 249 281 321 245 263
7294 CONVEX 1692 'GT_PK(3,2)' 4562 4620 4691 4497 4561 4438 4430 4488 4367 4320
7295 CONVEX 1693 'GT_PK(3,2)' 2971 2856 2750 2979 2866 3004 2780 2685 2798 2627
7296 CONVEX 1694 'GT_PK(3,2)' 2627 2780 2971 2612 2773 2615 2798 2979 2791 3004
7297 CONVEX 1695 'GT_PK(3,2)' 3004 2798 2627 2825 2649 2679 2791 2612 2641 2615
7298 CONVEX 1696 'GT_PK(3,2)' 3258 3092 2954 3065 2924 2893 3145 2993 2968 3049
7299 CONVEX 1697 'GT_PK(3,2)' 3049 3145 3258 3114 3216 3199 2968 3065 3034 2893
7300 CONVEX 1698 'GT_PK(3,2)' 2893 2968 3049 2659 2725 2451 3034 3114 2781 3199
7301 CONVEX 1699 'GT_PK(3,2)' 1286 1373 1468 1222 1297 1171 1269 1361 1215 1267
7302 CONVEX 1700 'GT_PK(3,2)' 1267 1269 1286 1198 1199 1137 1215 1222 1152 1171
7303 CONVEX 1701 'GT_PK(3,2)' 1171 1215 1267 1236 1290 1319 1152 1198 1211 1137
7304 CONVEX 1702 'GT_PK(3,2)' 3132 3283 3432 3057 3205 3004 2983 3117 2916 2847
7305 CONVEX 1703 'GT_PK(3,2)' 2451 2595 2762 2781 2962 3199 2546 2698 2904 2647
7306 CONVEX 1704 'GT_PK(3,2)' 1144 1087 1032 1154 1098 1171 1112 1055 1121 1086
7307 CONVEX 1705 'GT_PK(3,2)' 5196 5258 5307 5357 5406 5493 5075 5147 5270 4954
7308 CONVEX 1706 'GT_PK(3,2)' 5565 5538 5508 5425 5368 5206 5475 5429 5275 5333
7309 CONVEX 1707 'GT_PK(3,2)' 111 96 93 153 143 228 148 142 217 214
7310 CONVEX 1708 'GT_PK(3,2)' 93 142 214 100 152 119 143 217 156 228
7311 CONVEX 1709 'GT_PK(3,2)' 214 148 111 270 226 340 217 153 276 228
7312 CONVEX 1710 'GT_PK(3,2)' 4874 4775 4654 4867 4755 4868 4762 4658 4754 4649
7313 CONVEX 1711 'GT_PK(3,2)' 351 416 483 336 406 340 379 450 373 418
7314 CONVEX 1712 'GT_PK(3,2)' 5130 5272 5391 5155 5294 5185 5221 5341 5240 5296
7315 CONVEX 1713 'GT_PK(3,2)' 4326 4249 4182 4357 4292 4410 4208 4143 4251 4108
7316 CONVEX 1714 'GT_PK(3,2)' 2023 2116 2205 2228 2323 2447 2027 2119 2233 2041
7317 CONVEX 1715 'GT_PK(3,2)' 1761 1701 1651 1631 1593 1534 1595 1542 1485 1440
7318 CONVEX 1716 'GT_PK(3,2)' 3426 3279 3133 3393 3226 3334 3390 3245 3345 3369
7319 CONVEX 1717 'GT_PK(3,2)' 5134 5208 5278 5280 5340 5400 4978 5068 5156 4843
7320 CONVEX 1718 'GT_PK(3,2)' 5515 5474 5431 5363 5310 5177 5484 5440 5328 5451
7321 CONVEX 1719 'GT_PK(3,2)' 578 537 490 563 524 557 527 482 517 480
7322 CONVEX 1720 'GT_PK(3,2)' 5224 5136 5022 4967 4873 4731 5214 5122 4960 5199
7323 CONVEX 1721 'GT_PK(3,2)' 119 161 232 181 242 268 95 140 150 81
7324 CONVEX 1722 'GT_PK(3,2)' 5380 5265 5138 5309 5184 5234 5315 5205 5242 5260
7325 CONVEX 1723 'GT_PK(3,2)' 268 256 255 162 157 111 190 185 105 113
7326 CONVEX 1724 'GT_PK(3,2)' 3364 3452 3513 3167 3242 2996 3307 3373 3104 3248
7327 CONVEX 1725 'GT_PK(3,2)' 2194 2060 1920 2032 1897 1868 2118 1980 1954 2041
7328 CONVEX 1726 'GT_PK(3,2)' 643 662 682 705 719 760 665 681 721 686
7329 CONVEX 1727 'GT_PK(3,2)' 1221 1274 1344 1307 1379 1413 1322 1383 1419 1440
7330 CONVEX 1728 'GT_PK(3,2)' 3577 3555 3514 3304 3264 3048 3465 3434 3194 3369
7331 CONVEX 1729 'GT_PK(3,2)' 5567 5542 5515 5598 5583 5618 5524 5484 5573 5451
7332 CONVEX 1730 'GT_PK(3,2)' 1519 1427 1337 1530 1436 1551 1548 1454 1560 1580
7333 CONVEX 1731 'GT_PK(3,2)' 1679 1807 1955 1678 1809 1684 1793 1940 1792 1930
7334 CONVEX 1732 'GT_PK(3,2)' 3518 3366 3234 3638 3501 3747 3269 3125 3395 3043
7335 CONVEX 1733 'GT_PK(3,2)' 4472 4373 4290 4397 4307 4330 4327 4231 4248 4183
7336 CONVEX 1734 'GT_PK(3,2)' 805 865 922 814 876 837 835 891 847 870
7337 CONVEX 1735 'GT_PK(3,2)' 255 227 202 164 139 97 185 147 101 113
7338 CONVEX 1736 'GT_PK(3,2)' 2409 2499 2593 2717 2811 3061 2507 2597 2823 2615
7339 CONVEX 1737 'GT_PK(3,2)' 3693 3788 3865 3706 3799 3728 3456 3590 3469 3199
7340 CONVEX 1738 'GT_PK(3,2)' 4256 4216 4182 4283 4235 4300 4401 4351 4424 4553
7341 CONVEX 1739 'GT_PK(3,2)' 5431 5517 5567 5469 5539 5510 5440 5524 5480 5451
7342 CONVEX 1740 'GT_PK(3,2)' 840 885 928 904 945 968 898 941 961 959
7343 CONVEX 1741 'GT_PK(3,2)' 4275 4221 4152 4383 4325 4512 4358 4311 4480 4461
7344 CONVEX 1742 'GT_PK(3,2)' 5307 5198 5067 5236 5108 5153 5147 5007 5058 4954
7345 CONVEX 1743 'GT_PK(3,2)' 5134 5003 4879 4989 4869 4868 5165 5042 5033 5197
7346 CONVEX 1744 'GT_PK(3,2)' 2247 2206 2173 2246 2207 2257 2029 1997 2030 1820
7347 CONVEX 1745 'GT_PK(3,2)' 2313 2275 2244 2549 2502 2813 2390 2358 2578 2386
7348 CONVEX 1746 'GT_PK(3,2)' 2173 2206 2247 2400 2440 2679 2316 2349 2510 2386
7349 CONVEX 1747 'GT_PK(3,2)' 2244 2275 2313 2377 2411 2542 2081 2106 2187 1890
7350 CONVEX 1748 'GT_PK(3,2)' 1673 1704 1742 1484 1513 1319 1698 1728 1547 1820
7351 CONVEX 1749 'GT_PK(3,2)' 1742 1704 1673 1568 1531 1411 1770 1738 1625 1890
7352 CONVEX 1750 'GT_PK(3,2)' 1820 1850 1900 2030 2070 2257 2029 2071 2246 2247
7353 CONVEX 1751 'GT_PK(3,2)' 2386 2423 2461 2578 2624 2813 2390 2433 2549 2313
7354 CONVEX 1752 'GT_PK(3,2)' 2461 2423 2386 2552 2510 2679 2389 2349 2440 2247
7355 CONVEX 1753 'GT_PK(3,2)' 1965 1926 1890 2229 2187 2542 2144 2106 2411 2313
7356 CONVEX 1754 'GT_PK(3,2)' 1900 1850 1820 1585 1547 1319 1768 1728 1513 1742
7357 CONVEX 1755 'GT_PK(3,2)' 1890 1926 1965 1625 1665 1411 1770 1813 1568 1742
7358 CONVEX 1756 'GT_PK(3,2)' 3538 3255 3004 3392 3122 3281 3460 3185 3325 3383
7359 CONVEX 1757 'GT_PK(3,2)' 2837 2862 2893 3198 3232 3614 2985 3016 3376 3153
7360 CONVEX 1758 'GT_PK(3,2)' 1119 1142 1171 1124 1151 1139 1159 1187 1169 1204
7361 CONVEX 1759 'GT_PK(3,2)' 1210 1161 1117 1296 1241 1411 1170 1125 1254 1137
7362 CONVEX 1760 'GT_PK(3,2)' 4233 4128 4026 4118 4017 4014 4240 4135 4133 4254
7363 CONVEX 1761 'GT_PK(3,2)' 3793 3565 3281 3591 3299 3328 3629 3338 3363 3415
7364 CONVEX 1762 'GT_PK(3,2)' 3744 3676 3614 3649 3576 3559 3852 3812 3794 3965
7365 CONVEX 1763 'GT_PK(3,2)' 1023 1078 1139 997 1048 973 1029 1089 1001 1041
7366 CONVEX 1764 'GT_PK(3,2)' 4438 4338 4250 4164 4081 3915 4229 4145 3981 4045
7367 CONVEX 1765 'GT_PK(3,2)' 4540 4640 4742 4425 4529 4330 4353 4453 4264 4199
7368 CONVEX 1766 'GT_PK(3,2)' 4422 4333 4244 4302 4209 4183 4369 4284 4248 4330
7369 CONVEX 1767 'GT_PK(3,2)' 3416 3505 3601 3221 3312 3043 3602 3669 3395 3747
7370 CONVEX 1768 'GT_PK(3,2)' 4805 4943 5084 4729 4865 4654 4759 4892 4679 4708
7371 CONVEX 1769 'GT_PK(3,2)' 2880 2744 2613 3087 2950 3334 2946 2799 3142 3014
7372 CONVEX 1770 'GT_PK(3,2)' 3014 2946 2880 2925 2853 2834 3142 3087 3069 3334
7373 CONVEX 1771 'GT_PK(3,2)' 2154 2183 2234 2196 2237 2258 2272 2309 2315 2395
7374 CONVEX 1772 'GT_PK(3,2)' 2395 2272 2154 2398 2279 2416 2315 2196 2321 2258
7375 CONVEX 1773 'GT_PK(3,2)' 4926 4932 4941 4693 4701 4461 4828 4839 4592 4740
7376 CONVEX 1774 'GT_PK(3,2)' 5159 5232 5296 4915 5001 4683 5074 5163 4840 4998
7377 CONVEX 1775 'GT_PK(3,2)' 3017 3070 3133 2890 2953 2783 3119 3193 3008 3248
7378 CONVEX 1776 'GT_PK(3,2)' 2023 1947 1867 1848 1764 1691 1787 1708 1628 1580
7379 CONVEX 1777 'GT_PK(3,2)' 5607 5591 5572 5589 5568 5565 5581 5562 5553 5549
7380 CONVEX 1778 'GT_PK(3,2)' 5373 5435 5493 5290 5357 5196 5347 5408 5261 5313
7381 CONVEX 1779 'GT_PK(3,2)' 4004 3873 3744 3814 3649 3559 3983 3852 3794 3965
7382 CONVEX 1780 'GT_PK(3,2)' 938 979 1023 948 997 973 985 1029 1001 1041
7383 CONVEX 1781 'GT_PK(3,2)' 3925 3861 3793 3688 3591 3328 3729 3629 3363 3415
7384 CONVEX 1782 'GT_PK(3,2)' 66 48 38 57 44 68 84 64 90 109
7385 CONVEX 1783 'GT_PK(3,2)' 490 435 377 458 397 431 428 367 391 366
7386 CONVEX 1784 'GT_PK(3,2)' 5153 5236 5307 5263 5332 5358 5282 5348 5371 5382
7387 CONVEX 1785 'GT_PK(3,2)' 3623 3740 3827 3683 3786 3747 3711 3804 3766 3789
7388 CONVEX 1786 'GT_PK(3,2)' 324 290 268 205 162 111 286 251 180 252
7389 CONVEX 1787 'GT_PK(3,2)' 4731 4582 4439 4666 4528 4618 4791 4644 4735 4857
7390 CONVEX 1788 'GT_PK(3,2)' 59 37 22 83 55 111 34 17 51 24
7391 CONVEX 1789 'GT_PK(3,2)' 4848 4746 4641 4919 4811 4998 5000 4894 5074 5159
7392 CONVEX 1790 'GT_PK(3,2)' 697 709 725 687 708 696 743 751 737 780
7393 CONVEX 1791 'GT_PK(3,2)' 4983 5146 5284 5082 5228 5177 5192 5319 5273 5356
7394 CONVEX 1792 'GT_PK(3,2)' 4214 4110 4004 4071 3952 3928 4090 3983 3934 3965
7395 CONVEX 1793 'GT_PK(3,2)' 3703 3818 3925 3595 3751 3493 3566 3729 3437 3415
7396 CONVEX 1794 'GT_PK(3,2)' 947 943 938 889 881 837 989 985 932 1041
7397 CONVEX 1795 'GT_PK(3,2)' 4914 4862 4805 4609 4554 4330 4804 4759 4511 4708
7398 CONVEX 1796 'GT_PK(3,2)' 682 732 777 719 767 760 681 731 721 686
7399 CONVEX 1797 'GT_PK(3,2)' 5196 5066 4926 4906 4764 4618 4961 4828 4676 4740
7400 CONVEX 1798 'GT_PK(3,2)' 3968 3920 3874 3853 3807 3747 4048 4005 3937 4132
7401 CONVEX 1799 'GT_PK(3,2)' 24 17 22 21 20 32 11 7 15 9
7402 CONVEX 1800 'GT_PK(3,2)' 4315 4366 4411 4457 4516 4618 4413 4469 4571 4539
7403 CONVEX 1801 'GT_PK(3,2)' 5138 5002 4866 5041 4898 4944 4890 4756 4797 4647
7404 CONVEX 1802 'GT_PK(3,2)' 5326 5427 5515 5249 5363 5177 5269 5370 5188 5206
7405 CONVEX 1803 'GT_PK(3,2)' 317 327 351 212 237 111 320 336 226 340
7406 CONVEX 1804 'GT_PK(3,2)' 4654 4559 4468 4679 4584 4708 4755 4668 4783 4868
7407 CONVEX 1805 'GT_PK(3,2)' 305 349 394 258 306 214 337 383 302 382
7408 CONVEX 1806 'GT_PK(3,2)' 5173 5312 5431 5230 5361 5289 5077 5243 5149 4987
7409 CONVEX 1807 'GT_PK(3,2)' 5356 5319 5284 5478 5447 5561 5459 5420 5552 5532
7410 CONVEX 1808 'GT_PK(3,2)' 4250 4200 4159 4070 4027 3880 4145 4103 3958 4045
7411 CONVEX 1809 'GT_PK(3,2)' 5296 5302 5305 5317 5322 5345 5163 5169 5189 4998
7412 CONVEX 1810 'GT_PK(3,2)' 4026 4107 4186 3974 4057 3924 4135 4217 4089 4254
7413 CONVEX 1811 'GT_PK(3,2)' 382 350 324 357 325 351 319 286 300 252
7414 CONVEX 1812 'GT_PK(3,2)' 4838 4991 5153 4951 5108 5067 4891 5058 5007 4954
7415 CONVEX 1813 'GT_PK(3,2)' 2661 2532 2395 2481 2363 2338 2529 2398 2375 2416
7416 CONVEX 1814 'GT_PK(3,2)' 1643 1689 1746 1733 1783 1839 1562 1607 1649 1482
7417 CONVEX 1815 'GT_PK(3,2)' 2801 2920 3014 2591 2696 2405 2814 2925 2602 2834
7418 CONVEX 1816 'GT_PK(3,2)' 490 510 528 428 453 366 482 502 421 480
7419 CONVEX 1817 'GT_PK(3,2)' 2198 2285 2380 2218 2304 2257 2394 2491 2422 2615
7420 CONVEX 1818 'GT_PK(3,2)' 3341 3208 3079 3063 2943 2813 3265 3135 2995 3199
7421 CONVEX 1819 'GT_PK(3,2)' 4954 5147 5307 5178 5332 5358 5058 5236 5263 5153
7422 CONVEX 1820 'GT_PK(3,2)' 244 288 338 229 278 228 318 361 313 394
7423 CONVEX 1821 'GT_PK(3,2)' 4987 4947 4881 5081 5027 5177 5149 5101 5231 5289
7424 CONVEX 1822 'GT_PK(3,2)' 4539 4689 4845 4469 4626 4411 4571 4730 4516 4618
7425 CONVEX 1823 'GT_PK(3,2)' 4182 4297 4416 4292 4406 4410 4351 4493 4477 4553
7426 CONVEX 1824 'GT_PK(3,2)' 202 147 113 130 88 81 139 101 78 97
7427 CONVEX 1825 'GT_PK(3,2)' 4150 4289 4439 4334 4485 4539 4226 4363 4413 4315
7428 CONVEX 1826 'GT_PK(3,2)' 111 79 70 47 35 32 96 71 53 93
7429 CONVEX 1827 'GT_PK(3,2)' 70 67 73 131 136 221 79 87 146 111
7430 CONVEX 1828 'GT_PK(3,2)' 805 758 717 742 693 686 786 741 728 769
7431 CONVEX 1829 'GT_PK(3,2)' 97 127 174 164 211 255 101 135 185 113
7432 CONVEX 1830 'GT_PK(3,2)' 5567 5524 5451 5584 5551 5600 5539 5480 5564 5510
7433 CONVEX 1831 'GT_PK(3,2)' 5510 5410 5289 5469 5361 5431 5480 5369 5440 5451
7434 CONVEX 1832 'GT_PK(3,2)' 2750 2688 2636 2569 2514 2416 2685 2622 2518 2627
7435 CONVEX 1833 'GT_PK(3,2)' 1468 1420 1375 1472 1423 1482 1361 1317 1370 1267
7436 CONVEX 1834 'GT_PK(3,2)' 2871 2836 2805 2739 2707 2615 2670 2646 2550 2483
7437 CONVEX 1835 'GT_PK(3,2)' 2483 2670 2871 2752 2964 3061 2550 2739 2823 2615
7438 CONVEX 1836 'GT_PK(3,2)' 2871 2739 2615 3028 2896 3210 2964 2823 3126 3061
7439 CONVEX 1837 'GT_PK(3,2)' 3061 2964 2871 3195 3081 3328 3126 3028 3271 3210
7440 CONVEX 1838 'GT_PK(3,2)' 3210 3126 3061 3213 3131 3227 3271 3195 3272 3328
7441 CONVEX 1839 'GT_PK(3,2)' 3061 2964 2871 3225 3118 3415 3195 3081 3363 3328
7442 CONVEX 1840 'GT_PK(3,2)' 2871 3028 3210 2936 3089 3004 3081 3271 3155 3328
7443 CONVEX 1841 'GT_PK(3,2)' 2871 2739 2615 2936 2791 3004 3028 2896 3089 3210
7444 CONVEX 1842 'GT_PK(3,2)' 2871 2739 2615 2915 2773 2971 2936 2791 2979 3004
7445 CONVEX 1843 'GT_PK(3,2)' 2954 3187 3433 2891 3111 2834 2993 3233 2939 3049
7446 CONVEX 1844 'GT_PK(3,2)' 1088 1158 1244 1107 1183 1137 1130 1209 1155 1184
7447 CONVEX 1845 'GT_PK(3,2)' 1184 1130 1088 1062 1017 959 1155 1107 1044 1137
7448 CONVEX 1846 'GT_PK(3,2)' 1088 1107 1137 1035 1061 996 1017 1044 974 959
7449 CONVEX 1847 'GT_PK(3,2)' 959 1017 1088 963 1025 973 974 1035 984 996
7450 CONVEX 1848 'GT_PK(3,2)' 996 974 959 933 913 875 984 963 921 973
7451 CONVEX 1849 'GT_PK(3,2)' 959 1017 1088 995 1058 1041 963 1025 1001 973
7452 CONVEX 1850 'GT_PK(3,2)' 1088 1035 996 1126 1077 1171 1025 984 1064 973
7453 CONVEX 1851 'GT_PK(3,2)' 1088 1107 1137 1126 1152 1171 1035 1061 1077 996
7454 CONVEX 1852 'GT_PK(3,2)' 3569 3619 3675 3379 3422 3199 3664 3713 3494 3757
7455 CONVEX 1853 'GT_PK(3,2)' 3757 3664 3569 3735 3646 3728 3494 3379 3469 3199
7456 CONVEX 1854 'GT_PK(3,2)' 3569 3379 3199 3382 3200 3217 3646 3469 3488 3728
7457 CONVEX 1855 'GT_PK(3,2)' 3728 3646 3569 3645 3558 3559 3488 3382 3385 3217
7458 CONVEX 1856 'GT_PK(3,2)' 3217 3488 3728 3274 3537 3326 3385 3645 3430 3559
7459 CONVEX 1857 'GT_PK(3,2)' 3728 3646 3569 3845 3798 3965 3645 3558 3794 3559
7460 CONVEX 1858 'GT_PK(3,2)' 3569 3382 3217 3209 3040 2893 3558 3385 3201 3559
7461 CONVEX 1859 'GT_PK(3,2)' 3569 3379 3199 3209 3034 2893 3382 3200 3040 3217
7462 CONVEX 1860 'GT_PK(3,2)' 3569 3379 3199 3402 3216 3258 3209 3034 3065 2893
7463 CONVEX 1861 'GT_PK(3,2)' 3874 3993 4108 4011 4125 4152 4005 4115 4139 4132
7464 CONVEX 1862 'GT_PK(3,2)' 5049 5105 5150 4827 4880 4617 4976 5043 4770 4931
7465 CONVEX 1863 'GT_PK(3,2)' 5037 5103 5159 4855 4915 4683 4834 4894 4657 4641
7466 CONVEX 1864 'GT_PK(3,2)' 1833 1950 2058 2002 2114 2173 2043 2149 2207 2257
7467 CONVEX 1865 'GT_PK(3,2)' 1416 1448 1500 1539 1577 1673 1360 1394 1484 1319
7468 CONVEX 1866 'GT_PK(3,2)' 2442 2527 2582 2299 2366 2173 2554 2620 2400 2679
7469 CONVEX 1867 'GT_PK(3,2)' 5061 5203 5320 5115 5248 5177 4962 5116 5027 4881
7470 CONVEX 1868 'GT_PK(3,2)' 1581 1508 1457 1612 1563 1673 1487 1429 1531 1411
7471 CONVEX 1869 'GT_PK(3,2)' 2644 2596 2544 2428 2379 2244 2722 2672 2502 2813
7472 CONVEX 1870 'GT_PK(3,2)' 2182 2087 1977 2209 2098 2244 2347 2242 2377 2542
7473 CONVEX 1871 'GT_PK(3,2)' 927 894 872 957 929 996 900 871 933 875
7474 CONVEX 1872 'GT_PK(3,2)' 4641 4681 4726 4657 4697 4683 4834 4883 4855 5037
7475 CONVEX 1873 'GT_PK(3,2)' 2564 2535 2405 2716 2634 2880 2474 2361 2570 2313
7476 CONVEX 1874 'GT_PK(3,2)' 2338 2489 2564 2553 2676 2783 2290 2437 2496 2247
7477 CONVEX 1875 'GT_PK(3,2)' 1991 2160 2338 2073 2245 2154 2112 2290 2188 2247
7478 CONVEX 1876 'GT_PK(3,2)' 2405 2238 2055 2345 2169 2294 2180 2007 2132 1965
7479 CONVEX 1877 'GT_PK(3,2)' 1839 1875 1991 1723 1799 1624 1786 1822 1683 1742
7480 CONVEX 1878 'GT_PK(3,2)' 2055 1914 1839 1877 1756 1691 1857 1786 1707 1742
7481 CONVEX 1879 'GT_PK(3,2)' 2461 2509 2564 2658 2716 2880 2433 2474 2570 2313
7482 CONVEX 1880 'GT_PK(3,2)' 2564 2509 2461 2676 2610 2783 2437 2389 2496 2247
7483 CONVEX 1881 'GT_PK(3,2)' 1900 1944 1991 2019 2073 2154 2071 2112 2188 2247
7484 CONVEX 1882 'GT_PK(3,2)' 2313 2361 2405 2295 2345 2294 2144 2180 2132 1965
7485 CONVEX 1883 'GT_PK(3,2)' 1991 1944 1900 1799 1747 1624 1822 1768 1683 1742
7486 CONVEX 1884 'GT_PK(3,2)' 1965 2007 2055 1824 1877 1691 1813 1857 1707 1742
7487 CONVEX 1885 'GT_PK(3,2)' 4342 4238 4122 4419 4304 4512 4394 4280 4467 4450
7488 CONVEX 1886 'GT_PK(3,2)' 274 243 221 192 146 111 215 193 122 174
7489 CONVEX 1887 'GT_PK(3,2)' 5572 5595 5614 5568 5594 5565 5586 5606 5579 5593
7490 CONVEX 1888 'GT_PK(3,2)' 4665 4765 4866 4486 4585 4326 4537 4637 4357 4410
7491 CONVEX 1889 'GT_PK(3,2)' 2416 2279 2154 2319 2188 2247 2325 2191 2246 2257
7492 CONVEX 1890 'GT_PK(3,2)' 2834 2853 2880 2555 2570 2313 2821 2844 2549 2813
7493 CONVEX 1891 'GT_PK(3,2)' 1482 1590 1691 1605 1707 1742 1442 1546 1568 1411
7494 CONVEX 1892 'GT_PK(3,2)' 70 107 174 79 122 111 131 193 146 221
7495 CONVEX 1893 'GT_PK(3,2)' 5320 5299 5289 5248 5231 5177 5116 5101 5027 4881
7496 CONVEX 1894 'GT_PK(3,2)' 4322 4285 4254 4498 4449 4671 4258 4223 4421 4199
7497 CONVEX 1895 'GT_PK(3,2)' 5333 5331 5326 5127 5121 4874 5275 5269 5045 5206
7498 CONVEX 1896 'GT_PK(3,2)' 2702 2786 2897 2870 2972 3061 3031 3139 3225 3415
7499 CONVEX 1897 'GT_PK(3,2)' 3927 4001 4076 3826 3908 3728 3938 4019 3845 3965
7500 CONVEX 1898 'GT_PK(3,2)' 1106 1065 1026 1027 987 959 1068 1030 995 1041
7501 CONVEX 1899 'GT_PK(3,2)' 268 234 202 150 130 81 242 208 140 232
7502 CONVEX 1900 'GT_PK(3,2)' 355 303 255 265 211 174 314 253 215 274
7503 CONVEX 1901 'GT_PK(3,2)' 4857 4849 4845 5029 5013 5199 5072 5065 5241 5271
7504 CONVEX 1902 'GT_PK(3,2)' 4012 4029 4045 4061 4068 4098 3902 3917 3939 3789
7505 CONVEX 1903 'GT_PK(3,2)' 947 916 886 934 902 922 862 830 844 769
7506 CONVEX 1904 'GT_PK(3,2)' 1839 1905 1988 1716 1794 1622 1783 1866 1676 1746
7507 CONVEX 1905 'GT_PK(3,2)' 5339 5267 5185 5186 5091 4998 5219 5131 5034 5084
7508 CONVEX 1906 'GT_PK(3,2)' 249 179 109 222 151 228 233 158 209 231
7509 CONVEX 1907 'GT_PK(3,2)' 4737 4674 4617 4826 4770 4931 4525 4460 4619 4324
7510 CONVEX 1908 'GT_PK(3,2)' 4461 4530 4594 4578 4648 4709 4701 4767 4817 4941
7511 CONVEX 1909 'GT_PK(3,2)' 1088 1107 1137 1173 1199 1286 1126 1152 1222 1171
7512 CONVEX 1910 'GT_PK(3,2)' 4954 4891 4838 4785 4723 4618 5007 4951 4837 5067
7513 CONVEX 1911 'GT_PK(3,2)' 2258 2142 2026 2196 2092 2154 2090 1976 2038 1930
7514 CONVEX 1912 'GT_PK(3,2)' 2258 2142 2026 2111 1999 1991 2196 2092 2073 2154
7515 CONVEX 1913 'GT_PK(3,2)' 1622 1699 1788 1655 1737 1691 1597 1682 1628 1580
7516 CONVEX 1914 'GT_PK(3,2)' 1622 1699 1788 1829 1917 2055 1655 1737 1877 1691
7517 CONVEX 1915 'GT_PK(3,2)' 3358 3295 3206 3240 3157 3133 3305 3222 3193 3248
7518 CONVEX 1916 'GT_PK(3,2)' 232 264 305 161 210 119 242 284 181 268
7519 CONVEX 1917 'GT_PK(3,2)' 5431 5377 5326 5310 5249 5177 5243 5174 5081 4987
7520 CONVEX 1918 'GT_PK(3,2)' 4838 4836 4845 4723 4730 4618 4622 4626 4516 4411
7521 CONVEX 1919 'GT_PK(3,2)' 5320 5338 5356 5463 5478 5561 5477 5497 5569 5574
7522 CONVEX 1920 'GT_PK(3,2)' 70 41 24 35 21 32 40 25 29 33
7523 CONVEX 1921 'GT_PK(3,2)' 5510 5417 5320 5564 5513 5600 5545 5477 5588 5574
7524 CONVEX 1922 'GT_PK(3,2)' 97 77 70 78 58 81 56 40 50 33
7525 CONVEX 1923 'GT_PK(3,2)' 5134 5208 5278 5336 5392 5501 5280 5340 5448 5400
7526 CONVEX 1924 'GT_PK(3,2)' 2072 2127 2205 2056 2126 2055 2042 2116 2033 2023
7527 CONVEX 1925 'GT_PK(3,2)' 3426 3310 3176 2960 2850 2564 3279 3147 2827 3133
7528 CONVEX 1926 'GT_PK(3,2)' 5289 5369 5451 5231 5328 5177 5361 5440 5310 5431
7529 CONVEX 1927 'GT_PK(3,2)' 1941 1774 1651 1962 1808 1991 1844 1701 1876 1761
7530 CONVEX 1928 'GT_PK(3,2)' 3217 3488 3728 3230 3499 3249 3274 3537 3291 3326
7531 CONVEX 1929 'GT_PK(3,2)' 3210 3126 3061 2913 2840 2650 3213 3131 2923 3227
7532 CONVEX 1930 'GT_PK(3,2)' 174 135 113 122 105 111 211 185 157 255
7533 CONVEX 1931 'GT_PK(3,2)' 4439 4485 4539 4528 4571 4618 4644 4696 4735 4857
7534 CONVEX 1932 'GT_PK(3,2)' 2395 2272 2154 2363 2245 2338 2398 2279 2375 2416
7535 CONVEX 1933 'GT_PK(3,2)' 2154 2279 2416 2188 2319 2247 2245 2375 2290 2338
7536 CONVEX 1934 'GT_PK(3,2)' 2416 2375 2338 2585 2553 2783 2319 2290 2496 2247
7537 CONVEX 1935 'GT_PK(3,2)' 3014 2946 2880 2696 2634 2405 2925 2853 2602 2834
7538 CONVEX 1936 'GT_PK(3,2)' 2880 2853 2834 2570 2555 2313 2634 2602 2361 2405
7539 CONVEX 1937 'GT_PK(3,2)' 2834 2602 2405 2548 2345 2294 2555 2361 2295 2313
7540 CONVEX 1938 'GT_PK(3,2)' 3326 3267 3214 3355 3313 3404 3583 3522 3616 3781
7541 CONVEX 1939 'GT_PK(3,2)' 3227 3521 3768 3606 3816 3867 3429 3710 3767 3642
7542 CONVEX 1940 'GT_PK(3,2)' 268 284 305 240 258 214 322 337 302 382
7543 CONVEX 1941 'GT_PK(3,2)' 268 284 305 181 210 119 240 258 152 214
7544 CONVEX 1942 'GT_PK(3,2)' 4742 4819 4914 4812 4900 4909 4893 4972 4965 5060
7545 CONVEX 1943 'GT_PK(3,2)' 22 39 68 20 36 32 28 44 30 38
7546 CONVEX 1944 'GT_PK(3,2)' 4579 4652 4731 4902 4967 5224 4800 4873 5136 5022
7547 CONVEX 1945 'GT_PK(3,2)' 220 262 317 160 212 111 173 225 125 138
7548 CONVEX 1946 'GT_PK(3,2)' 73 61 59 87 83 111 42 34 51 24
7549 CONVEX 1947 'GT_PK(3,2)' 5061 5017 4983 5115 5082 5177 5222 5192 5273 5356
7550 CONVEX 1948 'GT_PK(3,2)' 4845 4994 5153 5124 5263 5358 5065 5211 5321 5271
7551 CONVEX 1949 'GT_PK(3,2)' 1868 1918 1977 1954 2000 2041 1863 1916 1957 1867
7552 CONVEX 1950 'GT_PK(3,2)' 2644 2833 3048 2973 3194 3369 2807 3025 3188 3017
7553 CONVEX 1951 'GT_PK(3,2)' 1833 1751 1684 1872 1792 1930 1743 1674 1791 1672
7554 CONVEX 1952 'GT_PK(3,2)' 4004 4096 4186 3960 4057 3924 4006 4107 3974 4026
7555 CONVEX 1953 'GT_PK(3,2)' 4004 4096 4186 4124 4217 4254 3960 4057 4089 3924
7556 CONVEX 1954 'GT_PK(3,2)' 938 893 857 855 808 769 866 825 773 790
7557 CONVEX 1955 'GT_PK(3,2)' 3925 4039 4159 3907 4027 3880 4087 4200 4070 4250
7558 CONVEX 1956 'GT_PK(3,2)' 3925 4039 4159 3982 4103 4045 3907 4027 3958 3880
7559 CONVEX 1957 'GT_PK(3,2)' 4649 4545 4437 4583 4476 4535 4745 4639 4682 4843
7560 CONVEX 1958 'GT_PK(3,2)' 4671 4570 4456 4421 4329 4199 4700 4588 4453 4742
7561 CONVEX 1959 'GT_PK(3,2)' 4438 4465 4504 4229 4261 4045 4367 4392 4170 4320
7562 CONVEX 1960 'GT_PK(3,2)' 3827 3896 3968 4065 4129 4300 3957 4030 4195 4093
7563 CONVEX 1961 'GT_PK(3,2)' 81 49 32 58 35 70 75 53 71 93
7564 CONVEX 1962 'GT_PK(3,2)' 4233 4346 4479 4370 4506 4536 4445 4577 4598 4683
7565 CONVEX 1963 'GT_PK(3,2)' 775 729 676 755 707 747 781 733 768 793
7566 CONVEX 1964 'GT_PK(3,2)' 545 485 418 534 475 529 526 466 523 511
7567 CONVEX 1965 'GT_PK(3,2)' 5284 5212 5142 5447 5396 5561 5388 5334 5530 5492
7568 CONVEX 1966 'GT_PK(3,2)' 4233 4260 4287 4240 4265 4254 4370 4405 4385 4536
7569 CONVEX 1967 'GT_PK(3,2)' 1286 1260 1244 1199 1183 1137 1173 1158 1107 1088
7570 CONVEX 1968 'GT_PK(3,2)' 3258 3471 3675 3216 3422 3199 3402 3619 3379 3569
7571 CONVEX 1969 'GT_PK(3,2)' 2971 2887 2805 2773 2707 2615 2915 2836 2739 2871
7572 CONVEX 1970 'GT_PK(3,2)' 3421 3600 3744 3490 3649 3559 3625 3755 3670 3774
7573 CONVEX 1971 'GT_PK(3,2)' 964 993 1023 965 997 973 914 940 911 863
7574 CONVEX 1972 'GT_PK(3,2)' 3890 3841 3793 3667 3591 3328 3979 3923 3779 4060
7575 CONVEX 1973 'GT_PK(3,2)' 3199 3469 3728 3220 3499 3249 3200 3488 3230 3217
7576 CONVEX 1974 'GT_PK(3,2)' 2615 2823 3061 2633 2840 2650 2896 3126 2913 3210
7577 CONVEX 1975 'GT_PK(3,2)' 4439 4485 4539 4363 4413 4315 4528 4571 4457 4618
7578 CONVEX 1976 'GT_PK(3,2)' 4667 4610 4562 4549 4497 4438 4541 4487 4420 4414
7579 CONVEX 1977 'GT_PK(3,2)' 998 1037 1086 1059 1104 1137 1012 1055 1074 1032
7580 CONVEX 1978 'GT_PK(3,2)' 73 61 59 108 106 186 87 83 137 111
7581 CONVEX 1979 'GT_PK(3,2)' 119 95 81 181 150 268 100 75 169 93
7582 CONVEX 1980 'GT_PK(3,2)' 431 445 463 481 500 538 395 419 462 382
7583 CONVEX 1981 'GT_PK(3,2)' 1697 1578 1474 1586 1473 1482 1540 1432 1433 1392
7584 CONVEX 1982 'GT_PK(3,2)' 2900 2928 2990 2640 2687 2416 2948 2998 2697 3015
7585 CONVEX 1983 'GT_PK(3,2)' 2556 2603 2709 2686 2765 2834 2460 2538 2586 2381
7586 CONVEX 1984 'GT_PK(3,2)' 5234 5277 5313 5090 5140 4931 5094 5145 4930 4941
7587 CONVEX 1985 'GT_PK(3,2)' 4272 4393 4535 4473 4608 4708 4361 4501 4584 4468
7588 CONVEX 1986 'GT_PK(3,2)' 2613 2600 2564 2950 2921 3334 2875 2842 3237 3158
7589 CONVEX 1987 'GT_PK(3,2)' 2234 2101 1991 2237 2111 2258 2177 2057 2176 2139
7590 CONVEX 1988 'GT_PK(3,2)' 1988 2013 2055 1794 1829 1622 1939 1972 1741 1894
7591 CONVEX 1989 'GT_PK(3,2)' 2055 2175 2307 2241 2370 2447 2161 2288 2344 2281
7592 CONVEX 1990 'GT_PK(3,2)' 1991 1963 1951 1740 1722 1534 1885 1860 1639 1779
7593 CONVEX 1991 'GT_PK(3,2)' 2564 2580 2572 2857 2867 3206 2804 2819 3134 3090
7594 CONVEX 1992 'GT_PK(3,2)' 4479 4645 4809 4506 4670 4536 4577 4748 4598 4683
7595 CONVEX 1993 'GT_PK(3,2)' 1022 1054 1094 986 1019 959 1075 1113 1044 1137
7596 CONVEX 1994 'GT_PK(3,2)' 231 183 138 159 125 111 267 225 212 317
7597 CONVEX 1995 'GT_PK(3,2)' 5185 5120 5060 5047 4965 4909 5056 4972 4900 4914
7598 CONVEX 1996 'GT_PK(3,2)' 255 287 324 157 205 111 253 295 192 274
7599 CONVEX 1997 'GT_PK(3,2)' 5022 4875 4737 5136 4973 5224 4800 4655 4902 4579
7600 CONVEX 1998 'GT_PK(3,2)' 3538 3487 3432 3359 3321 3210 3255 3205 3089 3004
7601 CONVEX 1999 'GT_PK(3,2)' 2837 2788 2762 3011 2978 3217 2862 2809 3040 2893
7602 CONVEX 2000 'GT_PK(3,2)' 1119 1072 1032 1049 1014 996 1142 1098 1077 1171
7603 CONVEX 2001 'GT_PK(3,2)' 5061 5017 4983 4841 4803 4632 5115 5082 4899 5177
7604 CONVEX 2002 'GT_PK(3,2)' 5185 5056 4914 4940 4804 4708 5131 4992 4892 5084
7605 CONVEX 2003 'GT_PK(3,2)' 5345 5364 5383 5220 5250 5084 5335 5360 5217 5333
7606 CONVEX 2004 'GT_PK(3,2)' 4618 4451 4310 4435 4286 4275 4457 4309 4305 4315
7607 CONVEX 2005 'GT_PK(3,2)' 4244 4130 4024 4209 4102 4183 4284 4163 4248 4330
7608 CONVEX 2006 'GT_PK(3,2)' 3601 3463 3335 3312 3183 3043 3669 3552 3395 3747
7609 CONVEX 2007 'GT_PK(3,2)' 109 90 68 151 124 228 158 134 209 231
7610 CONVEX 2008 'GT_PK(3,2)' 4579 4655 4737 4753 4826 4931 4442 4525 4619 4324
7611 CONVEX 2009 'GT_PK(3,2)' 2381 2337 2294 2586 2548 2834 2460 2421 2686 2556
7612 CONVEX 2010 'GT_PK(3,2)' 3015 2903 2783 2697 2585 2416 2948 2841 2640 2900
7613 CONVEX 2011 'GT_PK(3,2)' 1392 1506 1624 1433 1550 1482 1540 1659 1586 1697
7614 CONVEX 2012 'GT_PK(3,2)' 4468 4378 4281 4584 4484 4708 4361 4273 4473 4272
7615 CONVEX 2013 'GT_PK(3,2)' 2627 2685 2750 2798 2866 3004 2518 2569 2693 2416
7616 CONVEX 2014 'GT_PK(3,2)' 1267 1361 1468 1215 1297 1171 1370 1472 1306 1482
7617 CONVEX 2015 'GT_PK(3,2)' 3049 2993 2954 2968 2924 2893 2939 2891 2858 2834
7618 CONVEX 2016 'GT_PK(3,2)' 4461 4505 4524 4693 4720 4926 4592 4628 4828 4740
7619 CONVEX 2017 'GT_PK(3,2)' 620 614 621 546 548 483 598 600 535 585
7620 CONVEX 2018 'GT_PK(3,2)' 3930 3815 3678 3821 3680 3693 3833 3699 3706 3728
7621 CONVEX 2019 'GT_PK(3,2)' 2678 2745 2820 2540 2598 2409 2859 2938 2717 3061
7622 CONVEX 2020 'GT_PK(3,2)' 649 724 793 700 768 747 663 733 707 676
7623 CONVEX 2021 'GT_PK(3,2)' 4182 4078 3968 4154 4048 4132 4143 4036 4115 4108
7624 CONVEX 2022 'GT_PK(3,2)' 5313 5261 5196 5044 4961 4740 5145 5069 4839 4941
7625 CONVEX 2023 'GT_PK(3,2)' 5278 5210 5142 5340 5283 5400 5068 4982 5156 4843
7626 CONVEX 2024 'GT_PK(3,2)' 4182 4136 4093 4235 4195 4300 4078 4030 4129 3968
7627 CONVEX 2025 'GT_PK(3,2)' 5618 5597 5565 5608 5579 5593 5583 5541 5559 5515
7628 CONVEX 2026 'GT_PK(3,2)' 3404 3238 3077 3311 3140 3217 3478 3317 3385 3559
7629 CONVEX 2027 'GT_PK(3,2)' 3077 3317 3559 2952 3173 2837 3140 3385 3011 3217
7630 CONVEX 2028 'GT_PK(3,2)' 872 930 992 929 990 996 919 982 984 973
7631 CONVEX 2029 'GT_PK(3,2)' 992 982 973 1052 1042 1119 990 984 1049 996
7632 CONVEX 2030 'GT_PK(3,2)' 3867 3797 3716 3603 3467 3210 3648 3531 3271 3328
7633 CONVEX 2031 'GT_PK(3,2)' 3716 3531 3328 3631 3418 3538 3467 3271 3359 3210
7634 CONVEX 2032 'GT_PK(3,2)' 4872 4820 4774 4823 4780 4796 4642 4586 4590 4410
7635 CONVEX 2033 'GT_PK(3,2)' 5278 5387 5492 5436 5525 5547 5210 5334 5381 5142
7636 CONVEX 2034 'GT_PK(3,2)' 585 564 545 631 613 686 600 576 646 621
7637 CONVEX 2035 'GT_PK(3,2)' 2041 1904 1759 1980 1837 1920 1957 1812 1892 1867
7638 CONVEX 2036 'GT_PK(3,2)' 1759 1812 1867 1806 1863 1868 1837 1892 1897 1920
7639 CONVEX 2037 'GT_PK(3,2)' 1867 1957 2041 1863 1954 1868 1892 1980 1897 1920
7640 CONVEX 2038 'GT_PK(3,2)' 3644 3507 3369 3620 3465 3577 3323 3188 3287 3017
7641 CONVEX 2039 'GT_PK(3,2)' 3017 3323 3644 3025 3327 3048 3287 3620 3304 3577
7642 CONVEX 2040 'GT_PK(3,2)' 3369 3188 3017 3194 3025 3048 3465 3287 3304 3577
7643 CONVEX 2041 'GT_PK(3,2)' 418 450 483 373 406 340 466 491 427 511
7644 CONVEX 2042 'GT_PK(3,2)' 1672 1608 1557 1671 1610 1679 1791 1724 1793 1930
7645 CONVEX 2043 'GT_PK(3,2)' 1672 1608 1557 1674 1609 1684 1671 1610 1678 1679
7646 CONVEX 2044 'GT_PK(3,2)' 1930 1791 1672 1792 1674 1684 1793 1671 1678 1679
7647 CONVEX 2045 'GT_PK(3,2)' 4874 4923 4988 4986 5052 5109 4775 4807 4878 4654
7648 CONVEX 2046 'GT_PK(3,2)' 477 472 483 438 444 407 410 416 374 351
7649 CONVEX 2047 'GT_PK(3,2)' 649 663 676 628 642 621 587 605 571 538
7650 CONVEX 2048 'GT_PK(3,2)' 5515 5541 5565 5370 5425 5206 5430 5475 5275 5333
7651 CONVEX 2049 'GT_PK(3,2)' 3218 3300 3364 2937 2992 2679 3229 3307 2945 3248
7652 CONVEX 2050 'GT_PK(3,2)' 1186 1196 1221 1245 1258 1319 1295 1322 1372 1440
7653 CONVEX 2051 'GT_PK(3,2)' 1337 1292 1255 1369 1332 1411 1454 1402 1488 1580
7654 CONVEX 2052 'GT_PK(3,2)' 1955 2105 2262 2095 2252 2257 1940 2093 2089 1930
7655 CONVEX 2053 'GT_PK(3,2)' 4792 4802 4822 4739 4738 4649 4977 4999 4913 5177
7656 CONVEX 2054 'GT_PK(3,2)' 2520 2350 2194 2528 2351 2542 2270 2118 2274 2041
7657 CONVEX 2055 'GT_PK(3,2)' 3514 3482 3424 3138 3097 2813 3434 3391 3073 3369
7658 CONVEX 2056 'GT_PK(3,2)' 3867 3783 3681 3606 3458 3227 3603 3450 3213 3210
7659 CONVEX 2057 'GT_PK(3,2)' 3404 3223 3052 3355 3186 3326 3311 3124 3274 3217
7660 CONVEX 2058 'GT_PK(3,2)' 305 349 394 269 318 244 258 306 216 214
7661 CONVEX 2059 'GT_PK(3,2)' 4874 4942 4987 5045 5102 5206 5121 5174 5269 5326
7662 CONVEX 2060 'GT_PK(3,2)' 4874 4942 4987 5019 5081 5177 5045 5102 5188 5206
7663 CONVEX 2061 'GT_PK(3,2)' 4098 3992 3868 3939 3825 3789 3962 3844 3804 3827
7664 CONVEX 2062 'GT_PK(3,2)' 4323 4381 4450 4354 4427 4414 4213 4280 4259 4122
7665 CONVEX 2063 'GT_PK(3,2)' 717 748 775 667 703 621 741 770 701 769
7666 CONVEX 2064 'GT_PK(3,2)' 5067 4951 4838 4790 4675 4524 4912 4793 4633 4758
7667 CONVEX 2065 'GT_PK(3,2)' 4553 4663 4774 4477 4586 4410 4481 4587 4409 4414
7668 CONVEX 2066 'GT_PK(3,2)' 4450 4575 4709 4467 4600 4512 4394 4527 4419 4342
7669 CONVEX 2067 'GT_PK(3,2)' 760 759 766 721 723 686 794 797 761 837
7670 CONVEX 2068 'GT_PK(3,2)' 1742 1786 1839 1605 1649 1482 1683 1723 1550 1624
7671 CONVEX 2069 'GT_PK(3,2)' 1742 1786 1839 1707 1756 1691 1605 1649 1590 1482
7672 CONVEX 2070 'GT_PK(3,2)' 1839 1649 1482 1716 1549 1622 1756 1590 1655 1691
7673 CONVEX 2071 'GT_PK(3,2)' 1900 1944 1991 1827 1876 1761 2019 2073 1964 2154
7674 CONVEX 2072 'GT_PK(3,2)' 2461 2509 2564 2771 2827 3133 2658 2716 2997 2880
7675 CONVEX 2073 'GT_PK(3,2)' 1991 1944 1900 1876 1827 1761 1799 1747 1687 1624
7676 CONVEX 2074 'GT_PK(3,2)' 2055 2007 1965 2033 1985 2023 2169 2132 2157 2294
7677 CONVEX 2075 'GT_PK(3,2)' 2564 2509 2461 2827 2771 3133 2676 2610 2953 2783
7678 CONVEX 2076 'GT_PK(3,2)' 1965 2007 2055 1985 2033 2023 1824 1877 1848 1691
7679 CONVEX 2077 'GT_PK(3,2)' 1344 1445 1557 1379 1475 1413 1383 1492 1419 1440
7680 CONVEX 2078 'GT_PK(3,2)' 3513 3589 3644 3242 3314 2996 3373 3449 3104 3248
7681 CONVEX 2079 'GT_PK(3,2)' 1759 1634 1519 1641 1530 1551 1667 1548 1560 1580
7682 CONVEX 2080 'GT_PK(3,2)' 4116 4187 4272 4387 4473 4708 4190 4273 4484 4281
7683 CONVEX 2081 'GT_PK(3,2)' 1137 1044 959 1075 986 1022 1061 974 1007 996
7684 CONVEX 2082 'GT_PK(3,2)' 4524 4628 4740 4565 4676 4618 4720 4828 4764 4926
7685 CONVEX 2083 'GT_PK(3,2)' 4524 4628 4740 4396 4499 4275 4565 4676 4435 4618
7686 CONVEX 2084 'GT_PK(3,2)' 4275 4148 4008 4328 4184 4377 4221 4088 4263 4152
7687 CONVEX 2085 'GT_PK(3,2)' 4654 4775 4874 4755 4867 4868 4878 4986 4979 5109
7688 CONVEX 2086 'GT_PK(3,2)' 483 416 351 406 336 340 444 374 368 407
7689 CONVEX 2087 'GT_PK(3,2)' 4926 4995 5067 4764 4837 4618 4720 4790 4565 4524
7690 CONVEX 2088 'GT_PK(3,2)' 5278 5210 5142 5436 5381 5547 5340 5283 5486 5400
7691 CONVEX 2089 'GT_PK(3,2)' 3716 3631 3538 3497 3392 3281 3671 3587 3461 3639
7692 CONVEX 2090 'GT_PK(3,2)' 3077 2952 2837 3324 3198 3614 3212 3080 3492 3368
7693 CONVEX 2091 'GT_PK(3,2)' 992 1052 1119 1057 1124 1139 1047 1116 1127 1118
7694 CONVEX 2092 'GT_PK(3,2)' 5197 5330 5439 5303 5416 5400 5165 5297 5280 5134
7695 CONVEX 2093 'GT_PK(3,2)' 4034 3987 3936 3977 3921 3915 3859 3811 3796 3642
7696 CONVEX 2094 'GT_PK(3,2)' 3756 3682 3607 3883 3832 4014 3764 3701 3895 3781
7697 CONVEX 2095 'GT_PK(3,2)' 214 217 228 216 229 244 152 156 176 119
7698 CONVEX 2096 'GT_PK(3,2)' 214 217 228 306 313 394 216 229 318 244
7699 CONVEX 2097 'GT_PK(3,2)' 1761 1595 1440 1631 1485 1534 1687 1527 1584 1624
7700 CONVEX 2098 'GT_PK(3,2)' 3369 3245 3133 3345 3226 3334 3102 2997 3087 2880
7701 CONVEX 2099 'GT_PK(3,2)' 2023 2027 2041 2228 2233 2447 2157 2162 2371 2294
7702 CONVEX 2100 'GT_PK(3,2)' 556 589 636 617 658 686 549 583 613 545
7703 CONVEX 2101 'GT_PK(3,2)' 5109 4878 4654 4903 4679 4708 4979 4755 4783 4868
7704 CONVEX 2102 'GT_PK(3,2)' 351 374 407 357 390 382 336 368 345 340
7705 CONVEX 2103 'GT_PK(3,2)' 3927 3777 3569 3938 3798 3965 3826 3646 3845 3728
7706 CONVEX 2104 'GT_PK(3,2)' 2702 2775 2871 3031 3118 3415 2870 2964 3225 3061
7707 CONVEX 2105 'GT_PK(3,2)' 1106 1097 1088 1068 1058 1041 1027 1017 995 959
7708 CONVEX 2106 'GT_PK(3,2)' 5061 4962 4881 5115 5027 5177 4918 4851 4977 4792
7709 CONVEX 2107 'GT_PK(3,2)' 228 217 214 313 306 394 276 270 347 340
7710 CONVEX 2108 'GT_PK(3,2)' 1761 1701 1651 1687 1632 1624 1631 1593 1584 1534
7711 CONVEX 2109 'GT_PK(3,2)' 1651 1593 1534 1808 1740 1991 1632 1584 1799 1624
7712 CONVEX 2110 'GT_PK(3,2)' 3426 3279 3133 2960 2827 2564 3393 3226 2921 3334
7713 CONVEX 2111 'GT_PK(3,2)' 2023 2116 2205 2157 2255 2294 2228 2323 2371 2447
7714 CONVEX 2112 'GT_PK(3,2)' 2205 2323 2447 2126 2241 2055 2255 2371 2169 2294
7715 CONVEX 2113 'GT_PK(3,2)' 754 810 870 791 847 837 722 774 757 684
7716 CONVEX 2114 'GT_PK(3,2)' 1032 976 925 1014 950 996 1012 952 991 998
7717 CONVEX 2115 'GT_PK(3,2)' 5600 5610 5618 5551 5573 5451 5584 5598 5524 5567
7718 CONVEX 2116 'GT_PK(3,2)' 4152 4033 3893 4011 3879 3874 4139 4016 4005 4132
7719 CONVEX 2117 'GT_PK(3,2)' 4152 4221 4275 4325 4383 4512 4263 4328 4441 4377
7720 CONVEX 2118 'GT_PK(3,2)' 4377 4263 4152 4246 4139 4132 4441 4325 4312 4512
7721 CONVEX 2119 'GT_PK(3,2)' 1022 970 928 986 941 959 1054 1005 1019 1094
7722 CONVEX 2120 'GT_PK(3,2)' 1697 1669 1643 1755 1733 1839 1586 1562 1649 1482
7723 CONVEX 2121 'GT_PK(3,2)' 2900 2772 2661 2592 2481 2338 2640 2529 2375 2416
7724 CONVEX 2122 'GT_PK(3,2)' 2556 2695 2801 2470 2591 2405 2686 2814 2602 2834
7725 CONVEX 2123 'GT_PK(3,2)' 3802 3731 3642 3659 3568 3493 3855 3796 3752 3915
7726 CONVEX 2124 'GT_PK(3,2)' 4117 3948 3781 4023 3850 3928 4064 3895 3972 4014
7727 CONVEX 2125 'GT_PK(3,2)' 4654 4547 4434 4729 4623 4805 4679 4568 4759 4708
7728 CONVEX 2126 'GT_PK(3,2)' 4434 4568 4708 4371 4511 4330 4623 4759 4554 4805
7729 CONVEX 2127 'GT_PK(3,2)' 875 901 928 913 941 959 933 951 974 996
7730 CONVEX 2128 'GT_PK(3,2)' 928 951 996 970 1007 1022 941 974 986 959
7731 CONVEX 2129 'GT_PK(3,2)' 3642 3796 3915 3859 3977 4034 3568 3752 3813 3493
7732 CONVEX 2130 'GT_PK(3,2)' 3781 3895 4014 3764 3883 3756 3850 3972 3838 3928
7733 CONVEX 2131 'GT_PK(3,2)' 4774 4780 4796 4586 4590 4410 4587 4599 4409 4414
7734 CONVEX 2132 'GT_PK(3,2)' 1139 1203 1286 1151 1222 1171 1109 1173 1126 1088
7735 CONVEX 2133 'GT_PK(3,2)' 3614 3428 3258 3232 3065 2893 3584 3402 3209 3569
7736 CONVEX 2134 'GT_PK(3,2)' 3281 3112 2971 3122 2979 3004 3059 2915 2936 2871
7737 CONVEX 2135 'GT_PK(3,2)' 4647 4521 4384 4517 4376 4377 4470 4343 4341 4324
7738 CONVEX 2136 'GT_PK(3,2)' 4647 4521 4384 4350 4239 4108 4517 4376 4237 4377
7739 CONVEX 2137 'GT_PK(3,2)' 4384 4343 4324 4239 4203 4108 4376 4341 4237 4377
7740 CONVEX 2138 'GT_PK(3,2)' 4414 4481 4553 4291 4351 4182 4409 4477 4292 4410
7741 CONVEX 2139 'GT_PK(3,2)' 3010 3211 3432 2792 2989 2615 3095 3321 2896 3210
7742 CONVEX 2140 'GT_PK(3,2)' 2908 2822 2762 3038 2962 3199 3051 2978 3200 3217
7743 CONVEX 2141 'GT_PK(3,2)' 5549 5562 5572 5553 5568 5565 5488 5507 5504 5400
7744 CONVEX 2142 'GT_PK(3,2)' 4838 4622 4411 4723 4516 4618 4675 4471 4565 4524
7745 CONVEX 2143 'GT_PK(3,2)' 68 39 22 36 20 32 86 55 47 111
7746 CONVEX 2144 'GT_PK(3,2)' 4731 4652 4579 4967 4902 5224 4666 4589 4917 4618
7747 CONVEX 2145 'GT_PK(3,2)' 73 136 221 87 146 111 133 207 160 220
7748 CONVEX 2146 'GT_PK(3,2)' 338 378 431 278 328 228 361 405 313 394
7749 CONVEX 2147 'GT_PK(3,2)' 111 96 93 92 100 119 153 143 156 228
7750 CONVEX 2148 'GT_PK(3,2)' 5130 5015 4909 4901 4789 4683 5155 5047 4927 5185
7751 CONVEX 2149 'GT_PK(3,2)' 4026 4006 4004 3901 3889 3774 3974 3960 3849 3924
7752 CONVEX 2150 'GT_PK(3,2)' 3924 3974 4026 3971 4017 4014 3849 3901 3892 3774
7753 CONVEX 2151 'GT_PK(3,2)' 4004 3960 3924 3814 3772 3559 3889 3849 3670 3774
7754 CONVEX 2152 'GT_PK(3,2)' 3774 3849 3924 3846 3922 3928 3892 3971 3972 4014
7755 CONVEX 2153 'GT_PK(3,2)' 3924 3971 4014 4066 4109 4199 3922 3972 4067 3928
7756 CONVEX 2154 'GT_PK(3,2)' 4014 3972 3928 4162 4123 4330 4109 4067 4264 4199
7757 CONVEX 2155 'GT_PK(3,2)' 4199 4109 4014 4223 4133 4254 4264 4162 4288 4330
7758 CONVEX 2156 'GT_PK(3,2)' 4014 4162 4330 4140 4295 4281 4133 4288 4262 4254
7759 CONVEX 2157 'GT_PK(3,2)' 4330 4264 4199 4529 4453 4742 4288 4223 4482 4254
7760 CONVEX 2158 'GT_PK(3,2)' 4199 4109 4014 4066 3971 3924 4223 4133 4089 4254
7761 CONVEX 2159 'GT_PK(3,2)' 4014 3972 3928 4064 4023 4117 4162 4123 4212 4330
7762 CONVEX 2160 'GT_PK(3,2)' 4330 4162 4014 4295 4140 4281 4212 4064 4197 4117
7763 CONVEX 2161 'GT_PK(3,2)' 3928 4067 4199 4054 4185 4183 4123 4264 4248 4330
7764 CONVEX 2162 'GT_PK(3,2)' 4014 4133 4254 4017 4135 4026 3971 4089 3974 3924
7765 CONVEX 2163 'GT_PK(3,2)' 4254 4223 4199 4124 4104 4004 4089 4066 3960 3924
7766 CONVEX 2164 'GT_PK(3,2)' 3928 3922 3924 3952 3960 4004 4067 4066 4104 4199
7767 CONVEX 2165 'GT_PK(3,2)' 3924 3849 3774 3922 3846 3928 3772 3670 3773 3559
7768 CONVEX 2166 'GT_PK(3,2)' 3559 3772 3924 3814 3960 4004 3773 3922 3952 3928
7769 CONVEX 2167 'GT_PK(3,2)' 5142 5212 5284 5396 5447 5561 5160 5228 5411 5177
7770 CONVEX 2168 'GT_PK(3,2)' 1788 1919 2072 1917 2056 2055 1906 2042 2033 2023
7771 CONVEX 2169 'GT_PK(3,2)' 3176 3275 3358 2850 2935 2564 3147 3240 2827 3133
7772 CONVEX 2170 'GT_PK(3,2)' 2026 1968 1941 1999 1962 1991 1899 1844 1876 1761
7773 CONVEX 2171 'GT_PK(3,2)' 4944 4968 5010 4725 4757 4512 4816 4859 4600 4709
7774 CONVEX 2172 'GT_PK(3,2)' 4944 4968 5010 4935 4966 4941 4725 4757 4722 4512
7775 CONVEX 2173 'GT_PK(3,2)' 5010 4859 4709 4966 4817 4941 4757 4600 4722 4512
7776 CONVEX 2174 'GT_PK(3,2)' 4250 4087 3925 4153 3990 4060 4070 3907 3976 3880
7777 CONVEX 2175 'GT_PK(3,2)' 3880 4070 4250 3897 4081 3915 3976 4153 3986 4060
7778 CONVEX 2176 'GT_PK(3,2)' 3925 3907 3880 3688 3660 3328 3990 3976 3779 4060
7779 CONVEX 2177 'GT_PK(3,2)' 4060 3976 3880 3823 3725 3493 3986 3897 3752 3915
7780 CONVEX 2178 'GT_PK(3,2)' 3880 3897 3915 3834 3848 3789 3725 3752 3651 3493
7781 CONVEX 2179 'GT_PK(3,2)' 3915 3752 3493 3830 3628 3747 3848 3651 3766 3789
7782 CONVEX 2180 'GT_PK(3,2)' 3789 3848 3915 3917 3981 4045 3766 3830 3899 3747
7783 CONVEX 2181 'GT_PK(3,2)' 3915 3830 3747 4018 3931 4122 3981 3899 4079 4045
7784 CONVEX 2182 'GT_PK(3,2)' 3747 3766 3789 3786 3804 3827 3899 3917 3929 4045
7785 CONVEX 2183 'GT_PK(3,2)' 3789 3848 3915 3834 3897 3880 3917 3981 3958 4045
7786 CONVEX 2184 'GT_PK(3,2)' 3915 3752 3493 3855 3659 3802 3830 3628 3770 3747
7787 CONVEX 2185 'GT_PK(3,2)' 3747 3830 3915 3931 4018 4122 3770 3855 3973 3802
7788 CONVEX 2186 'GT_PK(3,2)' 3493 3651 3789 3251 3423 3043 3628 3766 3395 3747
7789 CONVEX 2187 'GT_PK(3,2)' 3915 3981 4045 4081 4145 4250 3897 3958 4070 3880
7790 CONVEX 2188 'GT_PK(3,2)' 4045 3917 3789 3982 3854 3925 3958 3834 3907 3880
7791 CONVEX 2189 'GT_PK(3,2)' 3493 3725 3880 3751 3907 3925 3651 3834 3854 3789
7792 CONVEX 2190 'GT_PK(3,2)' 3880 3976 4060 3725 3823 3493 3660 3779 3401 3328
7793 CONVEX 2191 'GT_PK(3,2)' 3328 3660 3880 3688 3907 3925 3401 3725 3751 3493
7794 CONVEX 2192 'GT_PK(3,2)' 3559 3385 3217 3478 3311 3404 3430 3274 3355 3326
7795 CONVEX 2193 'GT_PK(3,2)' 3328 3271 3210 3648 3603 3867 3272 3213 3606 3227
7796 CONVEX 2194 'GT_PK(3,2)' 5234 5098 4944 5090 4933 4931 5184 5041 5031 5138
7797 CONVEX 2195 'GT_PK(3,2)' 32 63 119 47 92 111 53 100 96 93
7798 CONVEX 2196 'GT_PK(3,2)' 676 729 775 707 755 747 642 703 677 621
7799 CONVEX 2197 'GT_PK(3,2)' 3893 4016 4132 3817 3937 3747 3879 4005 3807 3874
7800 CONVEX 2198 'GT_PK(3,2)' 4562 4430 4320 4497 4367 4438 4487 4352 4420 4414
7801 CONVEX 2199 'GT_PK(3,2)' 5049 4846 4647 4976 4787 4931 4827 4634 4770 4617
7802 CONVEX 2200 'GT_PK(3,2)' 4072 4127 4183 3909 3964 3728 3997 4054 3831 3928
7803 CONVEX 2201 'GT_PK(3,2)' 2877 2957 3043 2966 3044 3061 3161 3251 3268 3493
7804 CONVEX 2202 'GT_PK(3,2)' 870 915 960 847 896 837 909 955 895 959
7805 CONVEX 2203 'GT_PK(3,2)' 4987 5174 5326 5081 5249 5177 5102 5269 5188 5206
7806 CONVEX 2204 'GT_PK(3,2)' 3703 3468 3234 3595 3347 3493 3748 3536 3651 3789
7807 CONVEX 2205 'GT_PK(3,2)' 4214 4247 4290 4071 4106 3928 4207 4241 4067 4199
7808 CONVEX 2206 'GT_PK(3,2)' 186 197 220 108 133 73 137 160 87 111
7809 CONVEX 2207 'GT_PK(3,2)' 2783 3008 3248 2953 3193 3133 2988 3222 3157 3206
7810 CONVEX 2208 'GT_PK(3,2)' 4024 4069 4117 3975 4023 3928 4163 4212 4123 4330
7811 CONVEX 2209 'GT_PK(3,2)' 3335 3608 3802 3406 3659 3493 3552 3770 3628 3747
7812 CONVEX 2210 'GT_PK(3,2)' 998 1009 1022 991 1007 996 1059 1075 1061 1137
7813 CONVEX 2211 'GT_PK(3,2)' 3678 3466 3249 3680 3476 3693 3699 3499 3706 3728
7814 CONVEX 2212 'GT_PK(3,2)' 2820 2732 2650 2598 2521 2409 2938 2840 2717 3061
7815 CONVEX 2213 'GT_PK(3,2)' 973 919 872 921 871 875 984 929 933 996
7816 CONVEX 2214 'GT_PK(3,2)' 2650 2812 3010 2633 2792 2615 2913 3095 2896 3210
7817 CONVEX 2215 'GT_PK(3,2)' 3249 3067 2908 3220 3038 3199 3230 3051 3200 3217
7818 CONVEX 2216 'GT_PK(3,2)' 3249 3476 3693 3499 3706 3728 3220 3456 3469 3199
7819 CONVEX 2217 'GT_PK(3,2)' 2650 2521 2409 2840 2717 3061 2633 2507 2823 2615
7820 CONVEX 2218 'GT_PK(3,2)' 4632 4712 4792 4841 4918 5061 4899 4977 5115 5177
7821 CONVEX 2219 'GT_PK(3,2)' 766 726 684 797 757 837 813 774 847 870
7822 CONVEX 2220 'GT_PK(3,2)' 1053 1115 1184 1004 1062 959 1093 1155 1044 1137
7823 CONVEX 2221 'GT_PK(3,2)' 5439 5330 5197 5416 5303 5400 5385 5274 5366 5345
7824 CONVEX 2222 'GT_PK(3,2)' 3199 3200 3217 2962 2978 2762 3034 3040 2809 2893
7825 CONVEX 2223 'GT_PK(3,2)' 2615 2896 3210 2989 3321 3432 2791 3089 3205 3004
7826 CONVEX 2224 'GT_PK(3,2)' 4647 4890 5138 4787 5031 4931 4797 5041 4933 4944
7827 CONVEX 2225 'GT_PK(3,2)' 4434 4347 4281 4371 4295 4330 4568 4484 4511 4708
7828 CONVEX 2226 'GT_PK(3,2)' 1094 1028 968 1005 945 928 1019 961 941 959
7829 CONVEX 2227 'GT_PK(3,2)' 480 482 490 452 458 431 421 428 391 366
7830 CONVEX 2228 'GT_PK(3,2)' 480 482 490 517 524 557 452 458 494 431
7831 CONVEX 2229 'GT_PK(3,2)' 431 452 480 481 501 538 494 517 544 557
7832 CONVEX 2230 'GT_PK(3,2)' 4326 4475 4647 4357 4532 4410 4585 4756 4637 4866
7833 CONVEX 2231 'GT_PK(3,2)' 3756 3765 3774 3838 3846 3928 3883 3892 3972 4014
7834 CONVEX 2232 'GT_PK(3,2)' 4034 4040 4060 3813 3823 3493 3977 3986 3752 3915
7835 CONVEX 2233 'GT_PK(3,2)' 4857 5029 5199 5038 5214 5224 4791 4960 4967 4731
7836 CONVEX 2234 'GT_PK(3,2)' 4879 4856 4843 4869 4847 4868 4702 4682 4695 4535
7837 CONVEX 2235 'GT_PK(3,2)' 4535 4702 4879 4761 4934 4998 4695 4869 4928 4868
7838 CONVEX 2236 'GT_PK(3,2)' 4868 4668 4468 4783 4584 4708 4695 4501 4608 4535
7839 CONVEX 2237 'GT_PK(3,2)' 3493 3161 2877 3347 3047 3234 3268 2966 3127 3061
7840 CONVEX 2238 'GT_PK(3,2)' 3928 3997 4072 4106 4173 4290 3831 3909 4020 3728
7841 CONVEX 2239 'GT_PK(3,2)' 4879 4869 4868 5042 5033 5197 4934 4928 5104 4998
7842 CONVEX 2240 'GT_PK(3,2)' 4843 4829 4822 5005 4999 5177 4745 4738 4913 4649
7843 CONVEX 2241 'GT_PK(3,2)' 1219 1300 1401 1302 1398 1411 1262 1348 1355 1319
7844 CONVEX 2242 'GT_PK(3,2)' 2378 2485 2601 2449 2565 2542 2581 2706 2673 2813
7845 CONVEX 2243 'GT_PK(3,2)' 2266 2336 2424 2454 2545 2679 2259 2326 2446 2257
7846 CONVEX 2244 'GT_PK(3,2)' 4617 4674 4737 4770 4826 4931 4880 4937 5043 5150
7847 CONVEX 2245 'GT_PK(3,2)' 4845 4849 4857 5028 5038 5224 4730 4735 4917 4618
7848 CONVEX 2246 'GT_PK(3,2)' 4647 4756 4866 4797 4898 4944 4532 4637 4677 4410
7849 CONVEX 2247 'GT_PK(3,2)' 840 860 875 898 913 959 836 849 895 837
7850 CONVEX 2248 'GT_PK(3,2)' 837 836 840 847 848 870 895 898 909 959
7851 CONVEX 2249 'GT_PK(3,2)' 5508 5432 5345 5368 5276 5206 5429 5335 5275 5333
7852 CONVEX 2250 'GT_PK(3,2)' 24 41 70 21 35 32 51 79 47 111
7853 CONVEX 2251 'GT_PK(3,2)' 821 792 769 783 750 747 796 770 755 775
7854 CONVEX 2252 'GT_PK(3,2)' 5549 5506 5439 5488 5416 5400 5462 5385 5366 5345
7855 CONVEX 2253 'GT_PK(3,2)' 5431 5243 4987 5310 5081 5177 5361 5149 5231 5289
7856 CONVEX 2254 'GT_PK(3,2)' 4909 4788 4671 4566 4449 4254 4812 4700 4482 4742
7857 CONVEX 2255 'GT_PK(3,2)' 769 741 717 728 693 686 701 667 646 621
7858 CONVEX 2256 'GT_PK(3,2)' 3925 4039 4159 3854 3980 3789 3982 4103 3917 4045
7859 CONVEX 2257 'GT_PK(3,2)' 4004 4096 4186 4104 4191 4199 4124 4217 4223 4254
7860 CONVEX 2258 'GT_PK(3,2)' 109 90 68 84 57 66 151 124 126 228
7861 CONVEX 2259 'GT_PK(3,2)' 1137 1059 998 1074 1012 1032 1061 991 1014 996
7862 CONVEX 2260 'GT_PK(3,2)' 5049 5097 5138 4976 5031 4931 4846 4890 4787 4647
7863 CONVEX 2261 'GT_PK(3,2)' 4008 4088 4152 4053 4125 4108 4184 4263 4237 4377
7864 CONVEX 2262 'GT_PK(3,2)' 4946 4870 4796 4673 4590 4410 4905 4823 4642 4872
7865 CONVEX 2263 'GT_PK(3,2)' 338 356 377 278 299 228 378 397 328 431
7866 CONVEX 2264 'GT_PK(3,2)' 1746 1676 1622 1783 1716 1839 1607 1549 1649 1482
7867 CONVEX 2265 'GT_PK(3,2)' 5549 5462 5345 5488 5366 5400 5529 5432 5455 5508
7868 CONVEX 2266 'GT_PK(3,2)' 4377 4184 4008 4341 4157 4324 4237 4053 4203 4108
7869 CONVEX 2267 'GT_PK(3,2)' 4377 4184 4008 4328 4148 4275 4341 4157 4293 4324
7870 CONVEX 2268 'GT_PK(3,2)' 1392 1346 1319 1266 1236 1171 1433 1391 1306 1482
7871 CONVEX 2269 'GT_PK(3,2)' 3015 2839 2679 3002 2825 3004 2697 2539 2693 2416
7872 CONVEX 2270 'GT_PK(3,2)' 2381 2456 2542 2538 2608 2709 2586 2684 2765 2834
7873 CONVEX 2271 'GT_PK(3,2)' 875 819 760 871 809 872 849 794 843 837
7874 CONVEX 2272 'GT_PK(3,2)' 3404 3604 3756 3724 3838 3928 3616 3764 3850 3781
7875 CONVEX 2273 'GT_PK(3,2)' 3867 3946 4034 3712 3813 3493 3767 3859 3568 3642
7876 CONVEX 2274 'GT_PK(3,2)' 4324 4470 4647 4619 4787 4931 4341 4517 4653 4377
7877 CONVEX 2275 'GT_PK(3,2)' 621 600 585 667 645 717 646 631 693 686
7878 CONVEX 2276 'GT_PK(3,2)' 2257 2325 2416 2446 2539 2679 2246 2319 2440 2247
7879 CONVEX 2277 'GT_PK(3,2)' 2813 2821 2834 2673 2684 2542 2549 2555 2411 2313
7880 CONVEX 2278 'GT_PK(3,2)' 1411 1442 1482 1355 1391 1319 1568 1605 1513 1742
7881 CONVEX 2279 'GT_PK(3,2)' 480 452 431 439 412 407 408 376 368 340
7882 CONVEX 2280 'GT_PK(3,2)' 480 452 431 501 481 538 439 412 474 407
7883 CONVEX 2281 'GT_PK(3,2)' 340 408 480 427 489 511 368 439 456 407
7884 CONVEX 2282 'GT_PK(3,2)' 1580 1488 1411 1657 1573 1748 1628 1546 1713 1691
7885 CONVEX 2283 'GT_PK(3,2)' 3369 3073 2813 3188 2912 3017 3102 2844 2940 2880
7886 CONVEX 2284 'GT_PK(3,2)' 394 405 431 347 376 340 383 395 345 382
7887 CONVEX 2285 'GT_PK(3,2)' 2762 2595 2451 2962 2781 3199 2809 2659 3034 2893
7888 CONVEX 2286 'GT_PK(3,2)' 93 142 214 169 240 268 100 152 181 119
7889 CONVEX 2287 'GT_PK(3,2)' 351 410 477 357 424 382 374 438 390 407
7890 CONVEX 2288 'GT_PK(3,2)' 4988 4807 4654 5036 4865 5084 5052 4878 5096 5109
7891 CONVEX 2289 'GT_PK(3,2)' 4300 4424 4553 4235 4351 4182 4345 4481 4291 4414
7892 CONVEX 2290 'GT_PK(3,2)' 4868 4928 4998 5128 5189 5345 5033 5104 5274 5197
7893 CONVEX 2291 'GT_PK(3,2)' 922 865 805 876 814 837 844 786 801 769
7894 CONVEX 2292 'GT_PK(3,2)' 4843 4978 5134 4847 4989 4868 5156 5280 5167 5400
7895 CONVEX 2293 'GT_PK(3,2)' 620 574 538 546 505 483 614 571 548 621
7896 CONVEX 2294 'GT_PK(3,2)' 992 982 973 1057 1048 1139 1052 1042 1124 1119
7897 CONVEX 2295 'GT_PK(3,2)' 3077 3317 3559 3324 3576 3614 2952 3173 3198 2837
7898 CONVEX 2296 'GT_PK(3,2)' 3716 3531 3328 3497 3299 3281 3631 3418 3392 3538
7899 CONVEX 2297 'GT_PK(3,2)' 4946 4939 4944 4673 4677 4410 4821 4816 4548 4709
7900 CONVEX 2298 'GT_PK(3,2)' 1867 1812 1759 1694 1641 1551 1708 1667 1560 1580
7901 CONVEX 2299 'GT_PK(3,2)' 649 663 676 700 707 747 628 642 677 621
7902 CONVEX 2300 'GT_PK(3,2)' 3644 3323 3017 3314 3000 2996 3449 3119 3104 3248
7903 CONVEX 2301 'GT_PK(3,2)' 1440 1492 1557 1419 1475 1413 1553 1608 1536 1672
7904 CONVEX 2302 'GT_PK(3,2)' 968 918 870 904 848 840 961 909 898 959
7905 CONVEX 2303 'GT_PK(3,2)' 4275 4328 4377 4499 4550 4740 4383 4441 4621 4512
7906 CONVEX 2304 'GT_PK(3,2)' 947 989 1041 889 932 837 934 975 876 922
7907 CONVEX 2305 'GT_PK(3,2)' 3703 3566 3415 3595 3437 3493 3468 3319 3347 3234
7908 CONVEX 2306 'GT_PK(3,2)' 4214 4090 3965 4071 3934 3928 4247 4120 4106 4290
7909 CONVEX 2307 'GT_PK(3,2)' 4461 4358 4275 4592 4499 4740 4480 4383 4621 4512
7910 CONVEX 2308 'GT_PK(3,2)' 4649 4762 4874 4922 5045 5206 4754 4867 5035 4868
7911 CONVEX 2309 'GT_PK(3,2)' 4649 4762 4874 4913 5019 5177 4922 5045 5188 5206
7912 CONVEX 2310 'GT_PK(3,2)' 2483 2543 2593 2550 2597 2615 2752 2811 2823 3061
7913 CONVEX 2311 'GT_PK(3,2)' 3757 3810 3865 3494 3590 3199 3735 3799 3469 3728
7914 CONVEX 2312 'GT_PK(3,2)' 341 401 464 385 447 436 353 414 393 366
7915 CONVEX 2313 'GT_PK(3,2)' 4874 4986 5109 5045 5157 5206 4867 4979 5035 4868
7916 CONVEX 2314 'GT_PK(3,2)' 1672 1791 1930 1743 1872 1833 1909 2038 1983 2154
7917 CONVEX 2315 'GT_PK(3,2)' 2041 1957 1867 2274 2179 2542 2162 2084 2406 2294
7918 CONVEX 2316 'GT_PK(3,2)' 5296 5221 5130 5001 4901 4683 5240 5155 4927 5185
7919 CONVEX 2317 'GT_PK(3,2)' 1691 1628 1580 1764 1708 1867 1713 1657 1804 1748
7920 CONVEX 2318 'GT_PK(3,2)' 464 414 366 467 421 480 447 393 448 436
7921 CONVEX 2319 'GT_PK(3,2)' 382 322 268 319 251 252 302 240 236 214
7922 CONVEX 2320 'GT_PK(3,2)' 214 302 382 270 345 340 236 319 289 252
7923 CONVEX 2321 'GT_PK(3,2)' 268 240 214 162 148 111 251 236 180 252
7924 CONVEX 2322 'GT_PK(3,2)' 214 236 252 270 289 340 148 180 226 111
7925 CONVEX 2323 'GT_PK(3,2)' 1580 1657 1748 1571 1658 1581 1708 1804 1706 1867
7926 CONVEX 2324 'GT_PK(3,2)' 366 421 480 393 448 436 348 408 381 340
7927 CONVEX 2325 'GT_PK(3,2)' 1748 1804 1867 1819 1873 1890 1658 1706 1721 1581
7928 CONVEX 2326 'GT_PK(3,2)' 1581 1658 1748 1487 1573 1411 1721 1819 1625 1890
7929 CONVEX 2327 'GT_PK(3,2)' 1748 1804 1867 1853 1910 1965 1819 1873 1926 1890
7930 CONVEX 2328 'GT_PK(3,2)' 1890 1819 1748 1625 1573 1411 1926 1853 1665 1965
7931 CONVEX 2329 'GT_PK(3,2)' 1748 1804 1867 1713 1764 1691 1853 1910 1824 1965
7932 CONVEX 2330 'GT_PK(3,2)' 1965 1853 1748 1665 1573 1411 1824 1713 1546 1691
7933 CONVEX 2331 'GT_PK(3,2)' 1581 1565 1551 1571 1560 1580 1706 1694 1708 1867
7934 CONVEX 2332 'GT_PK(3,2)' 1413 1452 1500 1419 1456 1440 1536 1576 1553 1672
7935 CONVEX 2333 'GT_PK(3,2)' 2996 2777 2582 3104 2888 3248 3000 2779 3119 3017
7936 CONVEX 2334 'GT_PK(3,2)' 5600 5596 5593 5466 5454 5177 5551 5544 5328 5451
7937 CONVEX 2335 'GT_PK(3,2)' 3956 4047 4122 4137 4213 4323 3932 4018 4114 3915
7938 CONVEX 2336 'GT_PK(3,2)' 377 321 263 299 239 228 309 245 222 249
7939 CONVEX 2337 'GT_PK(3,2)' 2023 2116 2205 2033 2126 2055 2157 2255 2169 2294
7940 CONVEX 2338 'GT_PK(3,2)' 1761 1701 1651 1876 1808 1991 1687 1632 1799 1624
7941 CONVEX 2339 'GT_PK(3,2)' 4108 4208 4326 4350 4475 4647 4251 4357 4532 4410
7942 CONVEX 2340 'GT_PK(3,2)' 3996 4142 4281 4051 4190 4116 4002 4140 4062 4014
7943 CONVEX 2341 'GT_PK(3,2)' 3415 3338 3281 3363 3299 3328 3118 3059 3081 2871
7944 CONVEX 2342 'GT_PK(3,2)' 3965 3812 3614 3794 3576 3559 3798 3584 3558 3569
7945 CONVEX 2343 'GT_PK(3,2)' 1041 1089 1139 1001 1048 973 1058 1109 1025 1088
7946 CONVEX 2344 'GT_PK(3,2)' 511 466 418 470 420 436 427 373 381 340
7947 CONVEX 2345 'GT_PK(3,2)' 431 412 407 434 438 477 481 474 504 538
7948 CONVEX 2346 'GT_PK(3,2)' 2294 2345 2405 2548 2602 2834 2421 2470 2686 2556
7949 CONVEX 2347 'GT_PK(3,2)' 2783 2553 2338 2585 2375 2416 2841 2592 2640 2900
7950 CONVEX 2348 'GT_PK(3,2)' 1624 1723 1839 1550 1649 1482 1659 1755 1586 1697
7951 CONVEX 2349 'GT_PK(3,2)' 407 474 538 444 505 483 438 504 472 477
7952 CONVEX 2350 'GT_PK(3,2)' 5373 5435 5493 5190 5270 4954 5290 5357 5075 5196
7953 CONVEX 2351 'GT_PK(3,2)' 5138 5205 5260 5031 5106 4931 5184 5242 5090 5234
7954 CONVEX 2352 'GT_PK(3,2)' 4868 4695 4535 4783 4608 4708 4928 4761 4850 4998
7955 CONVEX 2353 'GT_PK(3,2)' 4310 4316 4324 4451 4459 4618 4286 4293 4435 4275
7956 CONVEX 2354 'GT_PK(3,2)' 872 827 777 843 802 837 809 767 794 760
7957 CONVEX 2355 'GT_PK(3,2)' 3079 2828 2601 2943 2706 2813 3135 2883 2995 3199
7958 CONVEX 2356 'GT_PK(3,2)' 2380 2399 2424 2304 2326 2257 2491 2508 2422 2615
7959 CONVEX 2357 'GT_PK(3,2)' 4324 4341 4377 4523 4550 4740 4293 4328 4499 4275
7960 CONVEX 2358 'GT_PK(3,2)' 2999 2803 2644 3169 2973 3369 2902 2722 3073 2813
7961 CONVEX 2359 'GT_PK(3,2)' 1500 1400 1314 1456 1365 1440 1394 1309 1372 1319
7962 CONVEX 2360 'GT_PK(3,2)' 1418 1498 1581 1489 1571 1580 1406 1487 1488 1411
7963 CONVEX 2361 'GT_PK(3,2)' 1859 1845 1833 1888 1872 1930 2053 2043 2089 2257
7964 CONVEX 2362 'GT_PK(3,2)' 1977 2010 2054 2000 2045 2041 2242 2280 2274 2542
7965 CONVEX 2363 'GT_PK(3,2)' 2582 2741 2909 2888 3058 3248 2620 2774 2945 2679
7966 CONVEX 2364 'GT_PK(3,2)' 1482 1370 1267 1391 1290 1319 1306 1215 1236 1171
7967 CONVEX 2365 'GT_PK(3,2)' 2834 2939 3049 2684 2776 2542 2858 2968 2708 2893
7968 CONVEX 2366 'GT_PK(3,2)' 2416 2518 2627 2539 2649 2679 2693 2798 2825 3004
7969 CONVEX 2367 'GT_PK(3,2)' 4874 4986 5109 5127 5233 5333 5045 5157 5275 5206
7970 CONVEX 2368 'GT_PK(3,2)' 5109 5157 5206 5237 5276 5345 5233 5275 5335 5333
7971 CONVEX 2369 'GT_PK(3,2)' 551 559 572 573 586 609 506 525 532 464
7972 CONVEX 2370 'GT_PK(3,2)' 5333 5233 5109 5217 5096 5084 5335 5237 5220 5345
7973 CONVEX 2371 'GT_PK(3,2)' 572 586 609 525 532 464 552 570 493 528
7974 CONVEX 2372 'GT_PK(3,2)' 627 584 551 635 597 647 607 569 618 592
7975 CONVEX 2373 'GT_PK(3,2)' 697 743 780 641 690 592 720 765 669 747
7976 CONVEX 2374 'GT_PK(3,2)' 341 293 249 330 282 340 285 233 279 231
7977 CONVEX 2375 'GT_PK(3,2)' 551 506 464 507 467 480 492 447 448 436
7978 CONVEX 2376 'GT_PK(3,2)' 572 612 647 559 597 551 586 629 573 609
7979 CONVEX 2377 'GT_PK(3,2)' 697 650 609 641 596 592 670 629 618 647
7980 CONVEX 2378 'GT_PK(3,2)' 551 560 575 492 508 436 569 579 519 592
7981 CONVEX 2379 'GT_PK(3,2)' 418 363 317 420 364 436 373 320 381 340
7982 CONVEX 2380 'GT_PK(3,2)' 557 602 649 517 561 480 544 587 501 538
7983 CONVEX 2381 'GT_PK(3,2)' 528 555 578 570 590 609 502 527 540 480
7984 CONVEX 2382 'GT_PK(3,2)' 317 329 358 364 392 436 267 292 334 231
7985 CONVEX 2383 'GT_PK(3,2)' 480 502 528 467 493 464 540 570 532 609
7986 CONVEX 2384 'GT_PK(3,2)' 529 554 575 523 539 511 484 508 470 436
7987 CONVEX 2385 'GT_PK(3,2)' 747 706 664 669 625 592 720 675 641 697
7988 CONVEX 2386 'GT_PK(3,2)' 249 293 341 282 330 340 307 353 348 366
7989 CONVEX 2387 'GT_PK(3,2)' 341 353 366 385 393 436 330 348 381 340
7990 CONVEX 2388 'GT_PK(3,2)' 636 666 696 608 638 592 606 632 579 575
7991 CONVEX 2389 'GT_PK(3,2)' 664 623 578 568 527 480 633 590 540 609
7992 CONVEX 2390 'GT_PK(3,2)' 529 580 636 523 565 511 554 606 539 575
7993 CONVEX 2391 'GT_PK(3,2)' 2601 2626 2647 2565 2579 2542 2883 2904 2846 3199
7994 CONVEX 2392 'GT_PK(3,2)' 2424 2617 2847 2545 2753 2679 2508 2726 2641 2615
7995 CONVEX 2393 'GT_PK(3,2)' 274 304 351 254 300 252 192 237 180 111
7996 CONVEX 2394 'GT_PK(3,2)' 5307 5147 4954 5332 5178 5358 5406 5270 5422 5493
7997 CONVEX 2395 'GT_PK(3,2)' 4254 4223 4199 4482 4453 4742 4449 4421 4700 4671
7998 CONVEX 2396 'GT_PK(3,2)' 4272 4187 4116 4473 4387 4708 4462 4375 4690 4683
7999 CONVEX 2397 'GT_PK(3,2)' 4843 4682 4535 4745 4583 4649 4847 4695 4754 4868
8000 CONVEX 2398 'GT_PK(3,2)' 4737 4655 4579 4826 4753 4931 4973 4902 5079 5224
8001 CONVEX 2399 'GT_PK(3,2)' 3827 3896 3968 3941 4009 4058 4065 4129 4167 4300
8002 CONVEX 2400 'GT_PK(3,2)' 5296 5163 4998 5240 5091 5185 5001 4840 4927 4683
8003 CONVEX 2401 'GT_PK(3,2)' 4438 4372 4323 4229 4175 4045 4164 4114 3981 3915
8004 CONVEX 2402 'GT_PK(3,2)' 777 822 863 802 842 837 731 771 761 686
8005 CONVEX 2403 'GT_PK(3,2)' 4535 4393 4272 4608 4473 4708 4596 4462 4690 4683
8006 CONVEX 2404 'GT_PK(3,2)' 4233 4168 4116 4240 4179 4254 4118 4062 4133 4014
8007 CONVEX 2405 'GT_PK(3,2)' 780 743 697 690 641 592 737 687 638 696
8008 CONVEX 2406 'GT_PK(3,2)' 305 258 214 269 216 244 210 152 176 119
8009 CONVEX 2407 'GT_PK(3,2)' 4323 4372 4438 4175 4229 4045 4354 4420 4220 4414
8010 CONVEX 2408 'GT_PK(3,2)' 636 666 696 658 683 686 608 638 630 592
8011 CONVEX 2409 'GT_PK(3,2)' 3133 2997 2880 2827 2716 2564 3226 3087 2921 3334
8012 CONVEX 2410 'GT_PK(3,2)' 5373 5347 5313 5085 5044 4740 5183 5140 4832 4931
8013 CONVEX 2411 'GT_PK(3,2)' 340 406 483 368 444 407 427 491 456 511
8014 CONVEX 2412 'GT_PK(3,2)' 3827 3896 3968 3786 3853 3747 3941 4009 3911 4058
8015 CONVEX 2413 'GT_PK(3,2)' 4233 4168 4116 4445 4375 4683 4240 4179 4454 4254
8016 CONVEX 2414 'GT_PK(3,2)' 366 421 480 348 408 340 391 452 376 431
8017 CONVEX 2415 'GT_PK(3,2)' 696 657 627 687 654 697 638 607 641 592
8018 CONVEX 2416 'GT_PK(3,2)' 578 623 664 527 568 480 611 652 561 649
8019 CONVEX 2417 'GT_PK(3,2)' 647 629 609 618 596 592 597 573 569 551
8020 CONVEX 2418 'GT_PK(3,2)' 436 484 529 420 475 418 470 523 466 511
8021 CONVEX 2419 'GT_PK(3,2)' 621 701 769 603 679 592 646 728 630 686
8022 CONVEX 2420 'GT_PK(3,2)' 664 633 609 568 540 480 625 596 533 592
8023 CONVEX 2421 'GT_PK(3,2)' 636 580 529 565 523 511 583 534 526 545
8024 CONVEX 2422 'GT_PK(3,2)' 664 706 747 625 669 592 652 700 615 649
8025 CONVEX 2423 'GT_PK(3,2)' 231 285 341 334 385 436 279 330 381 340
8026 CONVEX 2424 'GT_PK(3,2)' 111 192 274 205 295 324 180 254 286 252
8027 CONVEX 2425 'GT_PK(3,2)' 4058 3941 3827 4050 3929 4045 3911 3786 3899 3747
8028 CONVEX 2426 'GT_PK(3,2)' 3747 3911 4058 3931 4085 4122 3899 4050 4079 4045
8029 CONVEX 2427 'GT_PK(3,2)' 249 307 366 222 294 228 309 367 299 377
8030 CONVEX 2428 'GT_PK(3,2)' 366 453 528 414 493 464 421 502 467 480
8031 CONVEX 2429 'GT_PK(3,2)' 274 254 252 304 300 351 295 286 325 324
8032 CONVEX 2430 'GT_PK(3,2)' 377 367 366 299 294 228 397 391 328 431
8033 CONVEX 2431 'GT_PK(3,2)' 483 513 545 548 576 621 491 526 562 511
8034 CONVEX 2432 'GT_PK(3,2)' 545 526 511 613 588 686 576 562 646 621
8035 CONVEX 2433 'GT_PK(3,2)' 790 829 863 738 771 686 866 897 812 938
8036 CONVEX 2434 'GT_PK(3,2)' 3043 2879 2729 3251 3075 3493 3183 3013 3406 3335
8037 CONVEX 2435 'GT_PK(3,2)' 4183 4082 3985 4054 3944 3928 4102 3998 3975 4024
8038 CONVEX 2436 'GT_PK(3,2)' 2026 1976 1930 1899 1841 1761 2092 2038 1964 2154
8039 CONVEX 2437 'GT_PK(3,2)' 1788 1682 1580 1906 1787 2023 1737 1628 1848 1691
8040 CONVEX 2438 'GT_PK(3,2)' 4866 4871 4872 4898 4904 4944 4637 4642 4677 4410
8041 CONVEX 2439 'GT_PK(3,2)' 5150 5193 5224 4937 4973 4737 5043 5079 4826 4931
8042 CONVEX 2440 'GT_PK(3,2)' 766 726 684 723 680 686 797 757 761 837
8043 CONVEX 2441 'GT_PK(3,2)' 3893 4010 4122 3817 3931 3747 4016 4121 3937 4132
8044 CONVEX 2442 'GT_PK(3,2)' 4300 4193 4098 4167 4077 4058 4065 3962 3941 3827
8045 CONVEX 2443 'GT_PK(3,2)' 5356 5338 5320 5478 5463 5561 5273 5248 5411 5177
8046 CONVEX 2444 'GT_PK(3,2)' 3227 3178 3128 3343 3309 3493 3131 3083 3268 3061
8047 CONVEX 2445 'GT_PK(3,2)' 3128 3083 3061 2929 2882 2729 3309 3268 3075 3493
8048 CONVEX 2446 'GT_PK(3,2)' 1023 979 938 997 948 973 940 897 911 863
8049 CONVEX 2447 'GT_PK(3,2)' 3793 3861 3925 3591 3688 3328 3923 3990 3779 4060
8050 CONVEX 2448 'GT_PK(3,2)' 3326 3594 3792 3692 3860 3928 3537 3759 3831 3728
8051 CONVEX 2449 'GT_PK(3,2)' 3792 3759 3728 3881 3858 3985 3860 3831 3944 3928
8052 CONVEX 2450 'GT_PK(3,2)' 3744 3873 4004 3649 3814 3559 3755 3889 3670 3774
8053 CONVEX 2451 'GT_PK(3,2)' 790 825 857 773 808 769 779 817 772 780
8054 CONVEX 2452 'GT_PK(3,2)' 5333 5233 5109 5182 5052 4988 5217 5096 5036 5084
8055 CONVEX 2453 'GT_PK(3,2)' 5333 5233 5109 5127 4986 4874 5182 5052 4923 4988
8056 CONVEX 2454 'GT_PK(3,2)' 5515 5541 5565 5457 5504 5400 5370 5425 5306 5206
8057 CONVEX 2455 'GT_PK(3,2)' 4182 4078 3968 4235 4129 4300 4154 4048 4202 4132
8058 CONVEX 2456 'GT_PK(3,2)' 249 179 109 245 178 263 222 151 239 228
8059 CONVEX 2457 'GT_PK(3,2)' 4323 4114 3915 4213 4018 4122 4175 3981 4079 4045
8060 CONVEX 2458 'GT_PK(3,2)' 960 955 959 942 936 922 896 895 876 837
8061 CONVEX 2459 'GT_PK(3,2)' 4116 4062 4014 4190 4140 4281 4179 4133 4262 4254
8062 CONVEX 2460 'GT_PK(3,2)' 684 634 585 680 631 686 699 645 693 717
8063 CONVEX 2461 'GT_PK(3,2)' 1867 1873 1890 2179 2187 2542 1910 1926 2229 1965
8064 CONVEX 2462 'GT_PK(3,2)' 431 376 340 395 345 382 412 368 390 407
8065 CONVEX 2463 'GT_PK(3,2)' 511 491 483 521 505 538 562 548 571 621
8066 CONVEX 2464 'GT_PK(3,2)' 5313 5277 5234 5140 5090 4931 5286 5242 5106 5260
8067 CONVEX 2465 'GT_PK(3,2)' 255 253 274 157 192 111 211 215 122 174
8068 CONVEX 2466 'GT_PK(3,2)' 5501 5472 5439 5336 5297 5134 5448 5416 5280 5400
8069 CONVEX 2467 'GT_PK(3,2)' 1137 1061 996 1074 1014 1032 1152 1077 1098 1171
8070 CONVEX 2468 'GT_PK(3,2)' 407 474 538 456 521 511 444 505 491 483
8071 CONVEX 2469 'GT_PK(3,2)' 5313 5347 5373 5044 5085 4740 5261 5290 4961 5196
8072 CONVEX 2470 'GT_PK(3,2)' 5185 5056 4914 5047 4900 4909 4940 4804 4799 4708
8073 CONVEX 2471 'GT_PK(3,2)' 1477 1388 1316 1280 1212 1137 1476 1384 1283 1482
8074 CONVEX 2472 'GT_PK(3,2)' 2190 2264 2328 2393 2466 2627 2297 2367 2518 2416
8075 CONVEX 2473 'GT_PK(3,2)' 2190 2264 2328 2388 2462 2615 2393 2466 2612 2627
8076 CONVEX 2474 'GT_PK(3,2)' 2416 2297 2190 2504 2388 2615 2518 2393 2612 2627
8077 CONVEX 2475 'GT_PK(3,2)' 2328 2466 2627 2469 2622 2636 2462 2612 2606 2615
8078 CONVEX 2476 'GT_PK(3,2)' 2328 2466 2627 2367 2518 2416 2469 2622 2514 2636
8079 CONVEX 2477 'GT_PK(3,2)' 3182 3349 3530 3101 3280 3049 3001 3160 2939 2834
8080 CONVEX 2478 'GT_PK(3,2)' 3182 3349 3530 3184 3353 3199 3101 3280 3114 3049
8081 CONVEX 2479 'GT_PK(3,2)' 2834 3001 3182 3005 3184 3199 2939 3101 3114 3049
8082 CONVEX 2480 'GT_PK(3,2)' 3530 3280 3049 3483 3233 3433 3353 3114 3308 3199
8083 CONVEX 2481 'GT_PK(3,2)' 3530 3280 3049 3160 2939 2834 3483 3233 3111 3433
8084 CONVEX 2482 'GT_PK(3,2)' 4300 4193 4098 4160 4068 4045 4167 4077 4050 4058
8085 CONVEX 2483 'GT_PK(3,2)' 4740 4676 4618 4523 4459 4324 4499 4435 4293 4275
8086 CONVEX 2484 'GT_PK(3,2)' 1117 1164 1219 1241 1302 1411 1125 1172 1254 1137
8087 CONVEX 2485 'GT_PK(3,2)' 477 438 407 434 412 431 424 390 395 382
8088 CONVEX 2486 'GT_PK(3,2)' 464 506 551 467 507 480 532 573 540 609
8089 CONVEX 2487 'GT_PK(3,2)' 609 573 551 540 507 480 596 569 533 592
8090 CONVEX 2488 'GT_PK(3,2)' 575 508 436 579 519 592 539 470 553 511
8091 CONVEX 2489 'GT_PK(3,2)' 511 539 575 565 606 636 553 579 608 592
8092 CONVEX 2490 'GT_PK(3,2)' 480 439 407 501 474 538 489 456 521 511
8093 CONVEX 2491 'GT_PK(3,2)' 3335 3183 3043 3552 3395 3747 3406 3251 3628 3493
8094 CONVEX 2492 'GT_PK(3,2)' 4024 4102 4183 4163 4248 4330 3975 4054 4123 3928
8095 CONVEX 2493 'GT_PK(3,2)' 649 602 557 561 517 480 611 563 527 578
8096 CONVEX 2494 'GT_PK(3,2)' 340 408 480 381 448 436 427 489 470 511
8097 CONVEX 2495 'GT_PK(3,2)' 4098 4077 4058 3962 3941 3827 4068 4050 3929 4045
8098 CONVEX 2496 'GT_PK(3,2)' 3968 4009 4058 4048 4092 4132 3853 3911 3937 3747
8099 CONVEX 2497 'GT_PK(3,2)' 4058 3911 3747 4085 3931 4122 4092 3937 4121 4132
8100 CONVEX 2498 'GT_PK(3,2)' 3968 4009 4058 4129 4167 4300 4048 4092 4202 4132
8101 CONVEX 2499 'GT_PK(3,2)' 1319 1372 1440 1478 1544 1660 1461 1527 1636 1624
8102 CONVEX 2500 'GT_PK(3,2)' 1440 1527 1624 1553 1633 1672 1544 1636 1663 1660
8103 CONVEX 2501 'GT_PK(3,2)' 1660 1544 1440 1574 1456 1500 1663 1553 1576 1672
8104 CONVEX 2502 'GT_PK(3,2)' 1672 1663 1660 1729 1732 1820 1576 1574 1645 1500
8105 CONVEX 2503 'GT_PK(3,2)' 1660 1574 1500 1478 1394 1319 1732 1645 1547 1820
8106 CONVEX 2504 'GT_PK(3,2)' 1672 1663 1660 1765 1767 1900 1729 1732 1850 1820
8107 CONVEX 2505 'GT_PK(3,2)' 1660 1732 1820 1478 1547 1319 1767 1850 1585 1900
8108 CONVEX 2506 'GT_PK(3,2)' 1672 1663 1660 1633 1636 1624 1765 1767 1747 1900
8109 CONVEX 2507 'GT_PK(3,2)' 1660 1767 1900 1478 1585 1319 1636 1747 1461 1624
8110 CONVEX 2508 'GT_PK(3,2)' 1820 1729 1672 1825 1743 1833 1850 1765 1851 1900
8111 CONVEX 2509 'GT_PK(3,2)' 1900 1850 1820 2070 2030 2257 1851 1825 2043 1833
8112 CONVEX 2510 'GT_PK(3,2)' 2679 2945 3248 2663 2941 2666 2727 3008 2724 2783
8113 CONVEX 2511 'GT_PK(3,2)' 3248 3008 2783 3119 2890 3017 2941 2724 2829 2666
8114 CONVEX 2512 'GT_PK(3,2)' 2666 2941 3248 2618 2888 2582 2829 3119 2779 3017
8115 CONVEX 2513 'GT_PK(3,2)' 3017 2829 2666 2682 2519 2386 2779 2618 2475 2582
8116 CONVEX 2514 'GT_PK(3,2)' 2666 2618 2582 2663 2620 2679 2519 2475 2510 2386
8117 CONVEX 2515 'GT_PK(3,2)' 3017 2829 2666 2723 2559 2461 2682 2519 2423 2386
8118 CONVEX 2516 'GT_PK(3,2)' 2666 2519 2386 2663 2510 2679 2559 2423 2552 2461
8119 CONVEX 2517 'GT_PK(3,2)' 3017 2829 2666 2890 2724 2783 2723 2559 2610 2461
8120 CONVEX 2518 'GT_PK(3,2)' 2666 2559 2461 2663 2552 2679 2724 2610 2727 2783
8121 CONVEX 2519 'GT_PK(3,2)' 2386 2682 3017 2578 2912 2813 2423 2723 2624 2461
8122 CONVEX 2520 'GT_PK(3,2)' 2893 2862 2837 3201 3173 3559 3040 3011 3385 3217
8123 CONVEX 2521 'GT_PK(3,2)' 3004 3255 3538 3155 3418 3328 3089 3359 3271 3210
8124 CONVEX 2522 'GT_PK(3,2)' 1171 1142 1119 1064 1042 973 1077 1049 984 996
8125 CONVEX 2523 'GT_PK(3,2)' 2451 2546 2647 2781 2904 3199 2487 2579 2846 2542
8126 CONVEX 2524 'GT_PK(3,2)' 3132 2983 2847 3057 2916 3004 2892 2753 2825 2679
8127 CONVEX 2525 'GT_PK(3,2)' 1144 1112 1086 1154 1121 1171 1220 1189 1236 1319
8128 CONVEX 2526 'GT_PK(3,2)' 1673 1698 1820 1484 1547 1319 1577 1645 1394 1500
8129 CONVEX 2527 'GT_PK(3,2)' 2173 2316 2386 2400 2510 2679 2366 2475 2620 2582
8130 CONVEX 2528 'GT_PK(3,2)' 2386 2358 2244 2578 2502 2813 2503 2428 2722 2644
8131 CONVEX 2529 'GT_PK(3,2)' 1820 1997 2173 2030 2207 2257 1825 2002 2043 1833
8132 CONVEX 2530 'GT_PK(3,2)' 2244 2081 1890 2377 2187 2542 2098 1929 2242 1977
8133 CONVEX 2531 'GT_PK(3,2)' 1890 1738 1673 1625 1531 1411 1721 1612 1487 1581
8134 CONVEX 2532 'GT_PK(3,2)' 3061 3195 3328 3268 3401 3493 3131 3272 3343 3227
8135 CONVEX 2533 'GT_PK(3,2)' 3061 3195 3328 3225 3363 3415 3268 3401 3437 3493
8136 CONVEX 2534 'GT_PK(3,2)' 3728 3645 3559 3831 3773 3928 3537 3430 3692 3326
8137 CONVEX 2535 'GT_PK(3,2)' 3728 3645 3559 3845 3794 3965 3831 3773 3934 3928
8138 CONVEX 2536 'GT_PK(3,2)' 4122 4141 4152 4304 4325 4512 4121 4139 4312 4132
8139 CONVEX 2537 'GT_PK(3,2)' 4320 4367 4438 4352 4420 4414 4170 4229 4220 4045
8140 CONVEX 2538 'GT_PK(3,2)' 4536 4370 4233 4598 4445 4683 4385 4240 4454 4254
8141 CONVEX 2539 'GT_PK(3,2)' 24 17 22 51 55 111 21 20 47 32
8142 CONVEX 2540 'GT_PK(3,2)' 4004 4110 4214 3952 4071 3928 4104 4207 4067 4199
8143 CONVEX 2541 'GT_PK(3,2)' 3925 3818 3703 3751 3595 3493 3854 3748 3651 3789
8144 CONVEX 2542 'GT_PK(3,2)' 4199 4241 4290 4185 4231 4183 4264 4307 4248 4330
8145 CONVEX 2543 'GT_PK(3,2)' 4199 4241 4290 4067 4106 3928 4185 4231 4054 4183
8146 CONVEX 2544 'GT_PK(3,2)' 3789 3536 3234 3423 3125 3043 3766 3501 3395 3747
8147 CONVEX 2545 'GT_PK(3,2)' 3789 3536 3234 3651 3347 3493 3423 3125 3251 3043
8148 CONVEX 2546 'GT_PK(3,2)' 394 383 382 347 345 340 306 302 270 214
8149 CONVEX 2547 'GT_PK(3,2)' 4076 4174 4290 3908 4020 3728 4019 4120 3845 3965
8150 CONVEX 2548 'GT_PK(3,2)' 2897 3055 3234 2972 3127 3061 3139 3319 3225 3415
8151 CONVEX 2549 'GT_PK(3,2)' 1026 969 922 987 936 959 1030 975 995 1041
8152 CONVEX 2550 'GT_PK(3,2)' 5356 5319 5284 5273 5228 5177 5478 5447 5411 5561
8153 CONVEX 2551 'GT_PK(3,2)' 5067 4951 4838 4837 4723 4618 4790 4675 4565 4524
8154 CONVEX 2552 'GT_PK(3,2)' 4796 4599 4414 4750 4551 4709 4590 4409 4548 4410
8155 CONVEX 2553 'GT_PK(3,2)' 5345 5337 5339 5189 5186 4998 5220 5219 5034 5084
8156 CONVEX 2554 'GT_PK(3,2)' 3043 3251 3493 2879 3075 2729 3044 3268 2882 3061
8157 CONVEX 2555 'GT_PK(3,2)' 4183 4054 3928 4082 3944 3985 3964 3831 3858 3728
8158 CONVEX 2556 'GT_PK(3,2)' 4941 4839 4740 4722 4621 4512 4701 4592 4480 4461
8159 CONVEX 2557 'GT_PK(3,2)' 4377 4517 4647 4388 4532 4410 4237 4350 4251 4108
8160 CONVEX 2558 'GT_PK(3,2)' 4377 4517 4647 4656 4797 4944 4388 4532 4677 4410
8161 CONVEX 2559 'GT_PK(3,2)' 2381 2456 2542 2616 2708 2893 2538 2608 2784 2709
8162 CONVEX 2560 'GT_PK(3,2)' 1673 1704 1742 1531 1568 1411 1484 1513 1355 1319
8163 CONVEX 2561 'GT_PK(3,2)' 2247 2206 2173 2440 2400 2679 2246 2207 2446 2257
8164 CONVEX 2562 'GT_PK(3,2)' 2313 2275 2244 2411 2377 2542 2549 2502 2673 2813
8165 CONVEX 2563 'GT_PK(3,2)' 4998 4928 4868 5057 4979 5109 4850 4783 4903 4708
8166 CONVEX 2564 'GT_PK(3,2)' 4998 4928 4868 5189 5128 5345 5057 4979 5237 5109
8167 CONVEX 2565 'GT_PK(3,2)' 4868 4979 5109 5086 5201 5285 5128 5237 5311 5345
8168 CONVEX 2566 'GT_PK(3,2)' 4868 4979 5109 5035 5157 5206 5086 5201 5244 5285
8169 CONVEX 2567 'GT_PK(3,2)' 5109 5201 5285 5237 5311 5345 5157 5244 5276 5206
8170 CONVEX 2568 'GT_PK(3,2)' 5285 5086 4868 5344 5167 5400 5244 5035 5306 5206
8171 CONVEX 2569 'GT_PK(3,2)' 5206 5244 5285 5425 5453 5565 5306 5344 5504 5400
8172 CONVEX 2570 'GT_PK(3,2)' 5285 5086 4868 5238 5033 5197 5344 5167 5303 5400
8173 CONVEX 2571 'GT_PK(3,2)' 4617 4634 4647 4770 4787 4931 4460 4470 4619 4324
8174 CONVEX 2572 'GT_PK(3,2)' 5508 5538 5565 5455 5504 5400 5529 5553 5488 5549
8175 CONVEX 2573 'GT_PK(3,2)' 436 470 511 448 489 480 519 553 533 592
8176 CONVEX 2574 'GT_PK(3,2)' 511 553 592 562 603 621 489 533 543 480
8177 CONVEX 2575 'GT_PK(3,2)' 511 553 592 588 630 686 562 603 646 621
8178 CONVEX 2576 'GT_PK(3,2)' 5313 5140 4931 5145 4930 4941 5044 4832 4839 4740
8179 CONVEX 2577 'GT_PK(3,2)' 4931 4832 4740 4715 4621 4512 4930 4839 4722 4941
8180 CONVEX 2578 'GT_PK(3,2)' 863 864 872 842 843 837 911 919 905 973
8181 CONVEX 2579 'GT_PK(3,2)' 872 919 973 871 921 875 843 905 849 837
8182 CONVEX 2580 'GT_PK(3,2)' 4060 3961 3867 3823 3712 3493 3779 3648 3401 3328
8183 CONVEX 2581 'GT_PK(3,2)' 3774 3617 3404 3846 3724 3928 3670 3478 3773 3559
8184 CONVEX 2582 'GT_PK(3,2)' 5593 5586 5572 5528 5507 5400 5579 5568 5504 5565
8185 CONVEX 2583 'GT_PK(3,2)' 5345 5317 5296 5189 5163 4998 5337 5316 5186 5339
8186 CONVEX 2584 'GT_PK(3,2)' 351 237 111 336 226 340 300 180 289 252
8187 CONVEX 2585 'GT_PK(3,2)' 1580 1488 1411 1571 1487 1581 1657 1573 1658 1748
8188 CONVEX 2586 'GT_PK(3,2)' 2679 2945 3248 2620 2888 2582 2663 2941 2618 2666
8189 CONVEX 2587 'GT_PK(3,2)' 1319 1372 1440 1394 1456 1500 1478 1544 1574 1660
8190 CONVEX 2588 'GT_PK(3,2)' 3358 3295 3206 2935 2857 2564 3240 3157 2827 3133
8191 CONVEX 2589 'GT_PK(3,2)' 5196 5075 4954 5290 5190 5373 4906 4785 5020 4618
8192 CONVEX 2590 'GT_PK(3,2)' 3369 3073 2813 2973 2722 2644 3188 2912 2807 3017
8193 CONVEX 2591 'GT_PK(3,2)' 2041 1957 1867 2000 1916 1977 2274 2179 2242 2542
8194 CONVEX 2592 'GT_PK(3,2)' 2999 3243 3514 2902 3138 2813 3169 3434 3073 3369
8195 CONVEX 2593 'GT_PK(3,2)' 2194 2130 2054 2351 2280 2542 2118 2045 2274 2041
8196 CONVEX 2594 'GT_PK(3,2)' 3364 3115 2909 2992 2774 2679 3307 3058 2945 3248
8197 CONVEX 2595 'GT_PK(3,2)' 1221 1261 1314 1258 1309 1319 1322 1365 1372 1440
8198 CONVEX 2596 'GT_PK(3,2)' 1418 1376 1337 1406 1369 1411 1489 1454 1488 1580
8199 CONVEX 2597 'GT_PK(3,2)' 1859 1907 1955 2053 2095 2257 1888 1940 2089 1930
8200 CONVEX 2598 'GT_PK(3,2)' 5451 5484 5515 5544 5559 5593 5328 5363 5454 5177
8201 CONVEX 2599 'GT_PK(3,2)' 5185 5267 5339 5091 5186 4998 5240 5316 5163 5296
8202 CONVEX 2600 'GT_PK(3,2)' 1088 1109 1139 1025 1048 973 1126 1151 1064 1171
8203 CONVEX 2601 'GT_PK(3,2)' 3569 3584 3614 3558 3576 3559 3209 3232 3201 2893
8204 CONVEX 2602 'GT_PK(3,2)' 2871 3059 3281 3081 3299 3328 2936 3122 3155 3004
8205 CONVEX 2603 'GT_PK(3,2)' 775 770 769 755 750 747 703 701 677 621
8206 CONVEX 2604 'GT_PK(3,2)' 4944 5098 5234 4933 5090 4931 4935 5094 4930 4941
8207 CONVEX 2605 'GT_PK(3,2)' 959 963 973 895 905 837 913 921 849 875
8208 CONVEX 2606 'GT_PK(3,2)' 959 963 973 995 1001 1041 895 905 932 837
8209 CONVEX 2607 'GT_PK(3,2)' 366 307 249 294 222 228 348 282 276 340
8210 CONVEX 2608 'GT_PK(3,2)' 4450 4575 4709 4417 4548 4410 4467 4600 4452 4512
8211 CONVEX 2609 'GT_PK(3,2)' 2247 2319 2416 2440 2539 2679 2496 2585 2727 2783
8212 CONVEX 2610 'GT_PK(3,2)' 2313 2555 2834 2411 2684 2542 2295 2548 2406 2294
8213 CONVEX 2611 'GT_PK(3,2)' 1624 1683 1742 1461 1513 1319 1550 1605 1391 1482
8214 CONVEX 2612 'GT_PK(3,2)' 4857 4849 4845 5038 5028 5224 5029 5013 5214 5199
8215 CONVEX 2613 'GT_PK(3,2)' 3326 3583 3781 3355 3616 3404 3692 3850 3724 3928
8216 CONVEX 2614 'GT_PK(3,2)' 3227 3429 3642 3606 3767 3867 3343 3568 3712 3493
8217 CONVEX 2615 'GT_PK(3,2)' 4641 4894 5159 4657 4915 4683 4811 5074 4840 4998
8218 CONVEX 2616 'GT_PK(3,2)' 4998 4811 4641 4761 4580 4535 4840 4657 4596 4683
8219 CONVEX 2617 'GT_PK(3,2)' 3404 3478 3559 3355 3430 3326 3724 3773 3692 3928
8220 CONVEX 2618 'GT_PK(3,2)' 3867 3648 3328 3606 3272 3227 3712 3401 3343 3493
8221 CONVEX 2619 'GT_PK(3,2)' 4868 4847 4843 5035 5014 5206 4754 4745 4922 4649
8222 CONVEX 2620 'GT_PK(3,2)' 4512 4441 4377 4452 4388 4410 4312 4246 4267 4132
8223 CONVEX 2621 'GT_PK(3,2)' 4132 4312 4512 4121 4304 4122 4267 4452 4252 4410
8224 CONVEX 2622 'GT_PK(3,2)' 4512 4441 4377 4725 4656 4944 4452 4388 4677 4410
8225 CONVEX 2623 'GT_PK(3,2)' 3793 3565 3281 3754 3497 3716 3591 3299 3531 3328
8226 CONVEX 2624 'GT_PK(3,2)' 3744 3676 3614 3411 3324 3077 3649 3576 3317 3559
8227 CONVEX 2625 'GT_PK(3,2)' 1023 1078 1139 1006 1057 992 997 1048 982 973
8228 CONVEX 2626 'GT_PK(3,2)' 4512 4441 4377 4715 4653 4931 4725 4656 4933 4944
8229 CONVEX 2627 'GT_PK(3,2)' 636 583 545 565 526 511 658 613 588 686
8230 CONVEX 2628 'GT_PK(3,2)' 5224 5300 5373 5040 5144 4853 5079 5183 4889 4931
8231 CONVEX 2629 'GT_PK(3,2)' 4931 5079 5224 4771 4917 4618 4889 5040 4736 4853
8232 CONVEX 2630 'GT_PK(3,2)' 4853 4889 4931 4794 4832 4740 4736 4771 4676 4618
8233 CONVEX 2631 'GT_PK(3,2)' 4618 4736 4853 4906 5023 5196 4676 4794 4961 4740
8234 CONVEX 2632 'GT_PK(3,2)' 4853 4889 4931 5144 5183 5373 4794 4832 5085 4740
8235 CONVEX 2633 'GT_PK(3,2)' 4853 4794 4740 5144 5085 5373 5023 4961 5290 5196
8236 CONVEX 2634 'GT_PK(3,2)' 4931 4771 4618 4619 4459 4324 4832 4676 4523 4740
8237 CONVEX 2635 'GT_PK(3,2)' 4618 4736 4853 5020 5144 5373 4906 5023 5290 5196
8238 CONVEX 2636 'GT_PK(3,2)' 119 91 66 92 69 111 156 126 153 228
8239 CONVEX 2637 'GT_PK(3,2)' 3133 3070 3017 2771 2723 2461 2997 2940 2658 2880
8240 CONVEX 2638 'GT_PK(3,2)' 1867 1947 2023 1910 1985 1965 2084 2157 2132 2294
8241 CONVEX 2639 'GT_PK(3,2)' 1267 1317 1375 1288 1341 1316 1198 1237 1212 1137
8242 CONVEX 2640 'GT_PK(3,2)' 1267 1317 1375 1370 1423 1482 1288 1341 1384 1316
8243 CONVEX 2641 'GT_PK(3,2)' 1137 1198 1267 1283 1370 1482 1212 1288 1384 1316
8244 CONVEX 2642 'GT_PK(3,2)' 1137 1198 1267 1211 1290 1319 1283 1370 1391 1482
8245 CONVEX 2643 'GT_PK(3,2)' 4152 4263 4377 4139 4246 4132 4125 4237 4115 4108
8246 CONVEX 2644 'GT_PK(3,2)' 4377 4237 4108 4388 4251 4410 4246 4115 4267 4132
8247 CONVEX 2645 'GT_PK(3,2)' 4108 4115 4132 4143 4154 4182 4251 4267 4292 4410
8248 CONVEX 2646 'GT_PK(3,2)' 2627 2518 2416 2649 2539 2679 2612 2504 2641 2615
8249 CONVEX 2647 'GT_PK(3,2)' 3049 2939 2834 2776 2684 2542 3114 3005 2846 3199
8250 CONVEX 2648 'GT_PK(3,2)' 538 504 477 481 434 431 462 424 395 382
8251 CONVEX 2649 'GT_PK(3,2)' 480 489 511 501 521 538 543 562 571 621
8252 CONVEX 2650 'GT_PK(3,2)' 4461 4701 4941 4578 4817 4709 4480 4722 4600 4512
8253 CONVEX 2651 'GT_PK(3,2)' 4132 4267 4410 4268 4409 4414 4154 4292 4291 4182
8254 CONVEX 2652 'GT_PK(3,2)' 4132 4267 4410 4121 4252 4122 4268 4409 4259 4414
8255 CONVEX 2653 'GT_PK(3,2)' 696 745 790 683 738 686 737 779 727 780
8256 CONVEX 2654 'GT_PK(3,2)' 5515 5583 5618 5484 5573 5451 5559 5608 5544 5593
8257 CONVEX 2655 'GT_PK(3,2)' 4410 4452 4512 4548 4600 4709 4677 4725 4816 4944
8258 CONVEX 2656 'GT_PK(3,2)' 5109 5057 4998 5096 5034 5084 5237 5189 5220 5345
8259 CONVEX 2657 'GT_PK(3,2)' 3049 2968 2893 2725 2659 2451 2776 2708 2487 2542
8260 CONVEX 2658 'GT_PK(3,2)' 3004 3002 3015 2693 2697 2416 2986 2998 2687 2990
8261 CONVEX 2659 'GT_PK(3,2)' 1171 1266 1392 1306 1433 1482 1301 1432 1473 1474
8262 CONVEX 2660 'GT_PK(3,2)' 4654 4878 5109 4679 4903 4708 4865 5096 4892 5084
8263 CONVEX 2661 'GT_PK(3,2)' 5109 5096 5084 5057 5034 4998 4903 4892 4850 4708
8264 CONVEX 2662 'GT_PK(3,2)' 252 300 351 319 357 382 289 336 345 340
8265 CONVEX 2663 'GT_PK(3,2)' 5565 5541 5515 5504 5457 5400 5579 5559 5528 5593
8266 CONVEX 2664 'GT_PK(3,2)' 4320 4308 4300 4170 4160 4045 4352 4345 4220 4414
8267 CONVEX 2665 'GT_PK(3,2)' 5345 5128 4868 5274 5033 5197 5311 5086 5238 5285
8268 CONVEX 2666 'GT_PK(3,2)' 1900 1768 1742 1585 1513 1319 1747 1683 1461 1624
8269 CONVEX 2667 'GT_PK(3,2)' 2313 2433 2461 2549 2624 2813 2570 2658 2844 2880
8270 CONVEX 2668 'GT_PK(3,2)' 2461 2389 2247 2552 2440 2679 2610 2496 2727 2783
8271 CONVEX 2669 'GT_PK(3,2)' 1965 2144 2313 2229 2411 2542 2132 2295 2406 2294
8272 CONVEX 2670 'GT_PK(3,2)' 1742 1813 1965 1568 1665 1411 1707 1824 1546 1691
8273 CONVEX 2671 'GT_PK(3,2)' 4579 4442 4324 4753 4619 4931 4589 4459 4771 4618
8274 CONVEX 2672 'GT_PK(3,2)' 231 134 68 209 124 228 159 86 153 111
8275 CONVEX 2673 'GT_PK(3,2)' 1411 1442 1482 1254 1283 1137 1355 1391 1211 1319
8276 CONVEX 2674 'GT_PK(3,2)' 2257 2325 2416 2422 2504 2615 2446 2539 2641 2679
8277 CONVEX 2675 'GT_PK(3,2)' 2813 2821 2834 2995 3005 3199 2673 2684 2846 2542
8278 CONVEX 2676 'GT_PK(3,2)' 4536 4714 4909 4385 4566 4254 4598 4789 4454 4683
8279 CONVEX 2677 'GT_PK(3,2)' 2386 2503 2644 2578 2722 2813 2682 2807 2912 3017
8280 CONVEX 2678 'GT_PK(3,2)' 1977 1929 1890 2242 2187 2542 1916 1873 2179 1867
8281 CONVEX 2679 'GT_PK(3,2)' 5515 5370 5206 5559 5461 5593 5363 5188 5454 5177
8282 CONVEX 2680 'GT_PK(3,2)' 4872 4904 4944 4642 4677 4410 4905 4939 4673 4946
8283 CONVEX 2681 'GT_PK(3,2)' 592 569 551 533 507 480 519 492 448 436
8284 CONVEX 2682 'GT_PK(3,2)' 5400 5344 5285 5366 5311 5345 5303 5238 5274 5197
8285 CONVEX 2683 'GT_PK(3,2)' 5400 5344 5285 5455 5405 5508 5366 5311 5432 5345
8286 CONVEX 2684 'GT_PK(3,2)' 5285 5311 5345 5244 5276 5206 5405 5432 5368 5508
8287 CONVEX 2685 'GT_PK(3,2)' 5400 5344 5285 5504 5453 5565 5455 5405 5538 5508
8288 CONVEX 2686 'GT_PK(3,2)' 5285 5405 5508 5244 5368 5206 5453 5538 5425 5565
8289 CONVEX 2687 'GT_PK(3,2)' 2266 2216 2173 2259 2207 2257 2454 2400 2446 2679
8290 CONVEX 2688 'GT_PK(3,2)' 1673 1529 1401 1484 1348 1319 1531 1398 1355 1411
8291 CONVEX 2689 'GT_PK(3,2)' 2244 2303 2378 2377 2449 2542 2502 2581 2673 2813
8292 CONVEX 2690 'GT_PK(3,2)' 249 233 231 222 209 228 282 279 276 340
8293 CONVEX 2691 'GT_PK(3,2)' 431 391 366 328 294 228 376 348 276 340
8294 CONVEX 2692 'GT_PK(3,2)' 4742 4819 4914 4627 4710 4520 4812 4900 4704 4909
8295 CONVEX 2693 'GT_PK(3,2)' 4742 4819 4914 4529 4609 4330 4627 4710 4412 4520
8296 CONVEX 2694 'GT_PK(3,2)' 4520 4627 4742 4374 4482 4254 4412 4529 4288 4330
8297 CONVEX 2695 'GT_PK(3,2)' 4330 4412 4520 4295 4386 4281 4288 4374 4262 4254
8298 CONVEX 2696 'GT_PK(3,2)' 4914 4710 4520 4804 4607 4708 4609 4412 4511 4330
8299 CONVEX 2697 'GT_PK(3,2)' 4520 4412 4330 4386 4295 4281 4607 4511 4484 4708
8300 CONVEX 2698 'GT_PK(3,2)' 4914 4710 4520 4900 4704 4909 4804 4607 4799 4708
8301 CONVEX 2699 'GT_PK(3,2)' 4520 4627 4742 4704 4812 4909 4374 4482 4566 4254
8302 CONVEX 2700 'GT_PK(3,2)' 68 86 111 57 69 66 124 153 126 228
8303 CONVEX 2701 'GT_PK(3,2)' 5593 5576 5547 5454 5393 5177 5528 5486 5293 5400
8304 CONVEX 2702 'GT_PK(3,2)' 4857 4791 4731 5038 4967 5224 4735 4666 4917 4618
8305 CONVEX 2703 'GT_PK(3,2)' 1086 1145 1219 1104 1172 1137 1189 1262 1211 1319
8306 CONVEX 2704 'GT_PK(3,2)' 769 786 805 801 814 837 728 742 761 686
8307 CONVEX 2705 'GT_PK(3,2)' 340 279 231 320 267 317 381 334 364 436
8308 CONVEX 2706 'GT_PK(3,2)' 340 279 231 226 159 111 320 267 212 317
8309 CONVEX 2707 'GT_PK(3,2)' 686 728 769 812 855 938 761 801 881 837
8310 CONVEX 2708 'GT_PK(3,2)' 780 765 747 772 750 769 690 669 679 592
8311 CONVEX 2709 'GT_PK(3,2)' 5224 5040 4853 5300 5144 5373 4917 4736 5020 4618
8312 CONVEX 2710 'GT_PK(3,2)' 4843 4982 5142 5156 5283 5400 5005 5160 5293 5177
8313 CONVEX 2711 'GT_PK(3,2)' 5142 5160 5177 5381 5393 5547 5283 5293 5486 5400
8314 CONVEX 2712 'GT_PK(3,2)' 1691 1737 1788 1877 1917 2055 1848 1906 2033 2023
8315 CONVEX 2713 'GT_PK(3,2)' 2154 2092 2026 2073 1999 1991 1964 1899 1876 1761
8316 CONVEX 2714 'GT_PK(3,2)' 5206 4922 4649 5014 4745 4843 5188 4913 5005 5177
8317 CONVEX 2715 'GT_PK(3,2)' 4045 3917 3789 3929 3804 3827 4068 3939 3962 4098
8318 CONVEX 2716 'GT_PK(3,2)' 5224 5295 5358 5028 5124 4845 5093 5178 4895 4954
8319 CONVEX 2717 'GT_PK(3,2)' 3133 3070 3017 2953 2890 2783 2771 2723 2610 2461
8320 CONVEX 2718 'GT_PK(3,2)' 1867 1947 2023 1764 1848 1691 1910 1985 1824 1965
8321 CONVEX 2719 'GT_PK(3,2)' 5084 5131 5185 5034 5091 4998 4892 4940 4850 4708
8322 CONVEX 2720 'GT_PK(3,2)' 3538 3255 3004 3418 3155 3328 3392 3122 3299 3281
8323 CONVEX 2721 'GT_PK(3,2)' 1119 1142 1171 1042 1064 973 1124 1151 1048 1139
8324 CONVEX 2722 'GT_PK(3,2)' 2837 2862 2893 3173 3201 3559 3198 3232 3576 3614
8325 CONVEX 2723 'GT_PK(3,2)' 5373 5300 5224 5020 4917 4618 5190 5093 4785 4954
8326 CONVEX 2724 'GT_PK(3,2)' 1761 1710 1672 1781 1743 1833 1964 1909 1983 2154
8327 CONVEX 2725 'GT_PK(3,2)' 4058 4167 4300 4225 4345 4414 4050 4160 4220 4045
8328 CONVEX 2726 'GT_PK(3,2)' 4045 4050 4058 4079 4085 4122 4220 4225 4259 4414
8329 CONVEX 2727 'GT_PK(3,2)' 4058 4167 4300 4092 4202 4132 4225 4345 4268 4414
8330 CONVEX 2728 'GT_PK(3,2)' 4414 4225 4058 4259 4085 4122 4268 4092 4121 4132
8331 CONVEX 2729 'GT_PK(3,2)' 4254 4374 4520 4454 4591 4683 4566 4704 4789 4909
8332 CONVEX 2730 'GT_PK(3,2)' 4254 4374 4520 4179 4303 4116 4454 4591 4375 4683
8333 CONVEX 2731 'GT_PK(3,2)' 4254 4374 4520 4262 4386 4281 4179 4303 4190 4116
8334 CONVEX 2732 'GT_PK(3,2)' 4520 4704 4909 4607 4799 4708 4591 4789 4690 4683
8335 CONVEX 2733 'GT_PK(3,2)' 4683 4591 4520 4375 4303 4116 4690 4607 4387 4708
8336 CONVEX 2734 'GT_PK(3,2)' 4377 4517 4647 4653 4787 4931 4656 4797 4933 4944
8337 CONVEX 2735 'GT_PK(3,2)' 621 701 769 677 750 747 603 679 669 592
8338 CONVEX 2736 'GT_PK(3,2)' 4708 4607 4520 4387 4303 4116 4484 4386 4190 4281
8339 CONVEX 2737 'GT_PK(3,2)' 592 625 664 615 652 649 533 568 561 480
8340 CONVEX 2738 'GT_PK(3,2)' 66 45 32 69 47 111 57 36 86 68
8341 CONVEX 2739 'GT_PK(3,2)' 231 279 340 159 226 111 209 276 153 228
8342 CONVEX 2740 'GT_PK(3,2)' 777 767 760 731 721 686 802 794 761 837
8343 CONVEX 2741 'GT_PK(3,2)' 1672 1710 1761 1765 1827 1900 1633 1687 1747 1624
8344 CONVEX 2742 'GT_PK(3,2)' 1672 1710 1761 1743 1781 1833 1765 1827 1851 1900
8345 CONVEX 2743 'GT_PK(3,2)' 5134 5165 5197 4989 5033 4868 5280 5303 5167 5400
8346 CONVEX 2744 'GT_PK(3,2)' 2564 2676 2783 2827 2953 3133 2857 2988 3157 3206
8347 CONVEX 2745 'GT_PK(3,2)' 4931 4832 4740 4653 4550 4377 4715 4621 4441 4512
8348 CONVEX 2746 'GT_PK(3,2)' 592 533 480 615 561 649 603 543 628 621
8349 CONVEX 2747 'GT_PK(3,2)' 4931 4832 4740 4619 4523 4324 4653 4550 4341 4377
8350 CONVEX 2748 'GT_PK(3,2)' 769 862 947 801 889 837 844 934 876 922
8351 CONVEX 2749 'GT_PK(3,2)' 754 778 805 716 742 686 791 814 761 837
8352 CONVEX 2750 'GT_PK(3,2)' 4709 4575 4450 4548 4417 4410 4551 4427 4409 4414
8353 CONVEX 2751 'GT_PK(3,2)' 4512 4725 4944 4715 4933 4931 4722 4935 4930 4941
8354 CONVEX 2752 'GT_PK(3,2)' 5206 5370 5515 5461 5559 5593 5306 5457 5528 5400
8355 CONVEX 2753 'GT_PK(3,2)' 4683 4840 4998 4690 4850 4708 4596 4761 4608 4535
8356 CONVEX 2754 'GT_PK(3,2)' 4683 4840 4998 4927 5091 5185 4690 4850 4940 4708
8357 CONVEX 2755 'GT_PK(3,2)' 938 943 947 881 889 837 855 862 801 769
8358 CONVEX 2756 'GT_PK(3,2)' 754 722 684 791 757 837 716 680 761 686
8359 CONVEX 2757 'GT_PK(3,2)' 4618 4589 4579 4917 4902 5224 4771 4753 5079 4931
8360 CONVEX 2758 'GT_PK(3,2)' 3965 3983 4004 3934 3952 3928 3794 3814 3773 3559
8361 CONVEX 2759 'GT_PK(3,2)' 1041 985 938 932 881 837 1001 948 905 973
8362 CONVEX 2760 'GT_PK(3,2)' 3415 3729 3925 3437 3751 3493 3363 3688 3401 3328
8363 CONVEX 2761 'GT_PK(3,2)' 3199 3114 3049 2781 2725 2451 2846 2776 2487 2542
8364 CONVEX 2762 'GT_PK(3,2)' 1319 1262 1219 1211 1172 1137 1355 1302 1254 1411
8365 CONVEX 2763 'GT_PK(3,2)' 2601 2706 2813 2883 2995 3199 2565 2673 2846 2542
8366 CONVEX 2764 'GT_PK(3,2)' 2424 2326 2257 2508 2422 2615 2545 2446 2641 2679
8367 CONVEX 2765 'GT_PK(3,2)' 973 911 863 948 897 938 905 842 881 837
8368 CONVEX 2766 'GT_PK(3,2)' 3004 2791 2615 2916 2726 2847 3205 2989 3117 3432
8369 CONVEX 2767 'GT_PK(3,2)' 5177 5005 4843 5188 5014 5206 5293 5156 5306 5400
8370 CONVEX 2768 'GT_PK(3,2)' 5400 5293 5177 5528 5454 5593 5306 5188 5461 5206
8371 CONVEX 2769 'GT_PK(3,2)' 431 405 394 376 347 340 328 313 276 228
8372 CONVEX 2770 'GT_PK(3,2)' 696 737 780 683 727 686 638 690 630 592
8373 CONVEX 2771 'GT_PK(3,2)' 3061 3268 3493 3225 3437 3415 3127 3347 3319 3234
8374 CONVEX 2772 'GT_PK(3,2)' 3728 3831 3928 3845 3934 3965 4020 4106 4120 4290
8375 CONVEX 2773 'GT_PK(3,2)' 592 553 511 630 588 686 608 565 658 636
8376 CONVEX 2774 'GT_PK(3,2)' 592 603 621 615 628 649 669 677 700 747
8377 CONVEX 2775 'GT_PK(3,2)' 4300 4345 4414 4235 4291 4182 4202 4268 4154 4132
8378 CONVEX 2776 'GT_PK(3,2)' 959 895 837 995 932 1041 936 876 975 922
8379 CONVEX 2777 'GT_PK(3,2)' 5547 5555 5561 5393 5411 5177 5381 5396 5160 5142
8380 CONVEX 2778 'GT_PK(3,2)' 4868 5035 5206 4847 5014 4843 5167 5306 5156 5400
8381 CONVEX 2779 'GT_PK(3,2)' 3004 2791 2615 2825 2641 2679 2916 2726 2753 2847
8382 CONVEX 2780 'GT_PK(3,2)' 1171 1152 1137 1121 1104 1086 1098 1074 1055 1032
8383 CONVEX 2781 'GT_PK(3,2)' 4909 4789 4683 5047 4927 5185 4799 4690 4940 4708
8384 CONVEX 2782 'GT_PK(3,2)' 2294 2084 1867 2406 2179 2542 2132 1910 2229 1965
8385 CONVEX 2783 'GT_PK(3,2)' 3017 2940 2880 2912 2844 2813 2723 2658 2624 2461
8386 CONVEX 2784 'GT_PK(3,2)' 2542 2684 2834 2708 2858 2893 2608 2765 2784 2709
8387 CONVEX 2785 'GT_PK(3,2)' 4414 4354 4323 4259 4213 4122 4220 4175 4079 4045
8388 CONVEX 2786 'GT_PK(3,2)' 1171 1152 1137 1236 1211 1319 1121 1104 1189 1086
8389 CONVEX 2787 'GT_PK(3,2)' 1900 2071 2247 2019 2188 2154 2070 2246 2191 2257
8390 CONVEX 2788 'GT_PK(3,2)' 1930 2089 2257 1872 2043 1833 2038 2191 1983 2154
8391 CONVEX 2789 'GT_PK(3,2)' 5561 5582 5600 5411 5466 5177 5463 5513 5248 5320
8392 CONVEX 2790 'GT_PK(3,2)' 769 728 686 772 727 780 679 630 690 592
8393 CONVEX 2791 'GT_PK(3,2)' 769 728 686 773 738 790 772 727 779 780
8394 CONVEX 2792 'GT_PK(3,2)' 769 728 686 855 812 938 773 738 866 790
8395 CONVEX 2793 'GT_PK(3,2)' 649 587 538 628 571 621 561 501 543 480
8396 CONVEX 2794 'GT_PK(3,2)' 2257 2070 1900 2043 1851 1833 2191 2019 1983 2154
8397 CONVEX 2795 'GT_PK(3,2)' 4450 4280 4122 4417 4252 4410 4427 4259 4409 4414
8398 CONVEX 2796 'GT_PK(3,2)' 4122 4280 4450 4252 4417 4410 4304 4467 4452 4512
8399 CONVEX 2797 'GT_PK(3,2)' 2154 2019 1900 1983 1851 1833 1964 1827 1781 1761
8400 CONVEX 2798 'GT_PK(3,2)' 863 842 837 771 761 686 897 881 812 938
8401
8402 END MESH STRUCTURE DESCRIPTION
+0
-1363
interface/src/scilab/demos/data/tube_2D_spline.GiD.msh less more
0 MESH dimension 2 ElemType Triangle Nnode 6
1 Coordinates
2 1 0 5
3 2 0.789068 5
4 3 0 4.16667
5 4 0.789068 4.16667
6 5 1.57814 5
7 6 0 3.33333
8 7 1.58668 3.75
9 8 0.797609 2.91667
10 9 2.48657 5
11 10 0 2.5
12 11 2.49512 3.75
13 12 1.59522 2.5
14 13 0.797609 2.08333
15 14 0 1.66667
16 15 3.39501 5
17 16 2.89636 2.98191
18 17 3.79626 4.23191
19 18 1.58793 1.25
20 19 2.89772 2.0155
21 20 0 0.833333
22 21 4.19751 5
23 22 0.790325 0.833333
24 23 4.19751 3.46382
25 24 2.49782 1.25
26 25 4.59875 4.23191
27 26 4.19886 2.49741
28 27 0 0
29 28 5 5
30 29 0.790325 0
31 30 1.58065 0
32 31 5.13407 3.42984
33 32 4.20021 1.531
34 33 4.9434 2.50636
35 34 2.49054 0
36 35 5.53532 4.19793
37 36 3.80032 0.765502
38 37 5.83311 4.96621
39 38 4.94475 1.53995
40 39 3.40042 0
41 40 4.60011 0.765502
42 41 6.07063 3.39586
43 42 6.30353 4.19405
44 43 5.87996 2.47238
45 44 4.20021 0
46 45 6.53643 4.99225
47 46 5.68929 1.5489
48 47 5.34465 0.774449
49 48 6.85879 3.58334
50 49 5 0
51 50 7.09169 4.38154
52 51 6.71213 2.49761
53 52 7.342 5.12774
54 53 6.52146 1.57413
55 54 6.12809 0.823633
56 55 5.83059 0.0558361
57 56 7.64695 3.77082
58 57 7.83105 4.57543
59 58 7.50029 2.68509
60 59 8.01514 5.38004
61 60 7.35362 1.59936
62 61 6.96025 0.848865
63 62 6.56688 0.0983676
64 63 8.57156 4.20624
65 64 8.66354 5.78074
66 65 8.75565 5.01085
67 66 7.74493 0.847787
68 67 7.33499 0.117268
69 68 8.65746 2.93381
70 69 8.51079 1.84808
71 70 9.25623 6.27906
72 71 9.3762 5.46036
73 72 8.13623 0.0962117
74 73 9.49617 4.64166
75 74 9.58206 3.36923
76 75 8.9021 1.09651
77 76 9.80119 6.81832
78 77 9.66796 2.0968
79 78 10.1148 5.91617
80 79 8.94353 0.085456
81 80 10.2348 5.09747
82 81 9.68249 1.1439
83 82 10.3366 7.3734
84 83 10.5999 4.11563
85 84 10.655 6.46334
86 85 9.69701 0.190988
87 86 10.6858 2.8432
88 87 10.3746 1.50245
89 88 10.9734 5.55328
90 89 10.8922 7.91435
91 90 10.9484 2.03725
92 91 11.3385 4.57144
93 92 10.4224 0.476396
94 93 11.2167 7.02883
95 94 11.5351 6.11876
96 95 11.7036 3.5896
97 96 11.0813 0.908091
98 97 11.9623 5.15248
99 98 11.4742 8.40666
100 99 11.7855 7.54545
101 100 11.9662 2.78365
102 101 11.6588 1.40878
103 102 12.0968 6.68425
104 103 12.3274 4.17065
105 104 12.524 5.71797
106 105 12.205 8.01373
107 106 12.2287 1.9777
108 107 12.5151 3.34473
109 108 12.0984 8.86201
110 109 12.5163 7.15252
111 110 12.9512 4.75169
112 111 12.7619 2.53241
113 112 13.0679 6.42251
114 113 13.1389 3.92577
115 114 12.9358 7.62079
116 115 12.8409 8.4451
117 116 12.7459 9.2694
118 117 13.3266 3.09985
119 118 13.4952 5.45623
120 119 13.4874 6.89078
121 120 13.7364 4.43398
122 121 13.5157 7.96196
123 122 13.4207 8.78627
124 123 13.8954 3.62001
125 124 14.0391 6.16077
126 125 13.4233 9.6373
127 126 14.0673 7.23195
128 127 14.2803 5.13852
129 128 14.0955 8.30313
130 129 14.5215 4.11626
131 130 14.1066 9.13298
132 131 14.953 5.54133
133 132 14.1177 9.96283
134 133 15.0237 6.38557
135 134 14.7258 8.58009
136 135 15.163 4.53923
137 136 15.0519 7.45676
138 137 14.7369 9.40994
139 138 14.832 10.2519
140 139 15.356 8.85705
141 140 15.8668 4.92188
142 141 15.6822 7.73371
143 142 15.9376 5.76613
144 143 16.0083 6.61038
145 144 15.4562 9.68107
146 145 15.5563 10.5051
147 146 16.0257 9.07699
148 147 16.5701 5.24235
149 148 16.6608 6.07009
150 149 16.4162 8.52168
151 150 16.1258 9.90101
152 151 16.7423 7.39835
153 152 14.9222 -3.05835
154 153 15.3025 -2.40918
155 154 14.7457 -3.80763
156 155 15.8392 -1.79446
157 156 16.6953 9.29694
158 157 16.2948 10.7281
159 158 17.3134 5.52979
160 159 17.0858 8.74163
161 160 17.3949 6.85805
162 161 16.4125 -1.27637
163 162 16.8658 10.1095
164 163 14.8904 -4.58466
165 164 17.4763 8.18632
166 165 15.6447 -3.45516
167 166 16.1032 -2.82321
168 167 17.395 9.46963
169 168 17.0337 -0.794518
170 169 17.9897 5.7545
171 170 17.0363 10.922
172 171 18.0626 6.28458
173 172 15.6288 -4.21831
174 173 17.7855 8.91432
175 174 16.8958 -1.85916
176 175 18.1441 7.61284
177 176 15.254 -5.18486
178 177 17.5655 10.2821
179 178 17.6396 -0.370472
180 179 16.3672 -3.85197
181 180 17.493 -1.35919
182 181 18.3345 8.38214
183 182 18.0947 9.64233
184 183 18.6869 5.95547
185 184 17.7908 11.0932
186 185 18.7493 6.49742
187 186 16.1181 -4.8227
188 187 17.1597 -2.88792
189 188 18.223 0.0130884
190 189 18.8118 7.03936
191 190 18.0877 -0.955389
192 191 18.6437 9.11014
193 192 18.3176 10.4422
194 193 15.869 -5.79343
195 194 19.0022 7.80866
196 195 17.9523 -1.92387
197 196 18.6967 9.79085
198 197 16.8602 -4.41372
199 198 19.3248 6.11576
200 199 18.8324 0.405091
201 200 19.3922 6.6487
202 201 19.1926 8.57796
203 202 18.5405 11.242
204 203 18.8479 -0.339965
205 204 16.6111 -5.38445
206 205 19.4954 7.1883
207 206 19.2457 9.25866
208 207 18.9196 10.5907
209 208 18.7126 -1.30844
210 209 19.3385 0.736126
211 210 17.7126 -3.88676
212 211 19.6858 7.95759
213 212 19.2987 9.93937
214 213 16.4608 -6.22008
215 214 19.9726 6.25804
216 215 17.3532 -4.97548
217 216 19.4056 0.0215538
218 217 18.5052 -2.92271
219 218 18.8122 -2.17425
220 219 20.0758 6.79764
221 220 19.9003 8.65992
222 221 19.9129 1.118
223 222 19.4728 -0.693018
224 223 20.1789 7.33723
225 224 19.3049 11.376
226 225 17.265 -5.81821
227 226 19.9534 9.34062
228 227 19.9205 0.414313
229 228 19.6783 10.716
230 229 18.2056 -4.44851
231 230 20.5697 6.37263
232 231 20.3935 8.03955
233 232 19.5725 -1.55883
234 233 19.9877 -0.300259
235 234 20.3659 1.41562
236 235 17.1768 -6.66095
237 236 20.6745 6.9051
238 237 18.0195 -5.43321
239 238 20.4342 0.75406
240 239 20.608 8.74188
241 240 20.3329 10.1173
242 241 20.8272 7.44696
243 242 19.3651 -3.1731
244 243 19.6721 -2.42464
245 244 19.058 -3.92155
246 245 20.5026 0.0924997
247 246 20.0578 11.4927
248 247 20.8593 1.71195
249 248 20.2789 -0.980739
250 249 20.8264 1.2215
251 250 17.9312 -6.27595
252 251 21.17 6.47297
253 252 21.0417 8.14928
254 253 18.8719 -4.90625
255 254 20.8947 0.559944
256 255 21.3227 7.01483
257 256 20.9904 9.46311
258 257 20.3785 -1.84655
259 258 20.7153 10.8385
260 259 17.8227 -7.07744
261 260 20.7938 -0.58798
262 261 21.3694 1.96204
263 262 21.3281 1.49472
264 263 21.4754 7.55669
265 264 18.6857 -5.89095
266 265 21.297 8.78142
267 266 21.2868 1.02739
268 267 21.7274 6.55365
269 268 20.8276 11.5958
270 269 21.3141 0.171758
271 270 21.7307 8.18883
272 271 18.5708 -6.73013
273 272 21.72 1.6889
274 273 21.8794 7.08969
275 274 21.3728 10.1843
276 275 21.8101 2.14044
277 276 21.085 -1.26846
278 277 21.6787 1.22158
279 278 21.7062 0.639202
280 279 21.6794 9.50265
281 280 20.4876 -3.65528
282 281 22.0906 7.60985
283 282 20.7946 -2.90682
284 283 21.4785 10.9325
285 284 21.6053 -0.508722
286 285 21.9859 8.82097
287 286 18.4558 -7.56932
288 287 22.2833 6.62268
289 288 22.0707 1.41576
290 289 22.2174 1.87778
291 290 22.0981 0.83339
292 291 22.3642 2.33979
293 292 22.3459 8.24199
294 293 19.3987 -6.57021
295 294 21.5841 11.6807
296 295 22.4945 7.14285
297 296 22.0005 10.1849
298 297 22.1256 0.251016
299 298 20.4528 -4.7228
300 299 21.501 -2.32873
301 300 22.3071 9.50319
302 301 21.9523 -1.35803
303 302 22.7058 7.66302
304 303 22.8032 6.67725
305 304 22.6032 1.50588
306 305 22.1062 10.9331
307 306 22.5998 8.80829
308 307 20.2666 -5.7075
309 308 19.2837 -7.4094
310 309 22.7975 2.48654
311 310 22.7499 1.9679
312 311 22.6306 0.923509
313 312 18.9887 -8.12133
314 313 23.0121 7.19251
315 314 22.4726 -0.598294
316 315 22.9597 8.22932
317 316 22.6282 10.1854
318 317 22.3584 11.7502
319 318 22.921 9.49052
320 319 23.2245 7.668
321 320 23.3183 6.722
322 321 23.1357 1.596
323 322 23.2206 2.12503
324 323 23.3055 2.65405
325 324 21.9171 -3.38901
326 325 23.0554 0.511046
327 326 23.2137 8.79562
328 327 20.1116 -7.24948
329 328 22.3683 -2.41831
330 329 23.5308 7.19749
331 330 22.8728 10.9929
332 331 19.7699 -8.02037
333 332 23.4785 8.2343
334 333 22.8196 -1.4476
335 334 23.5785 1.77533
336 335 23.6634 2.30435
337 336 19.4283 -8.79126
338 337 23.7296 2.79245
339 338 21.8823 -4.45652
340 339 23.5604 1.18354
341 340 23.8033 6.75574
342 341 20.9796 -6.38676
343 342 23.7433 7.67298
344 343 23.4024 -0.338264
345 344 23.7792 8.65423
346 345 23.1173 11.8004
347 346 24.0122 7.22699
348 347 22.718 -3.20375
349 348 24.0213 1.95465
350 349 22.5266 -3.94055
351 350 24.1039 2.44817
352 351 24.044 8.09291
353 352 21.8475 -5.52404
354 353 23.7434 10.0134
355 354 23.1692 -2.23305
356 355 24.1865 2.94169
357 356 24.0032 1.36286
358 357 24.2811 6.781
359 358 23.9852 0.771076
360 359 24.224 7.66228
361 360 24.0361 9.3185
362 361 19.702 -9.48307
363 362 21.1859 -7.27299
364 363 20.7094 -8.1298
365 364 23.6648 -1.65129
366 365 24.4929 7.21629
367 366 24.3447 8.51285
368 367 24.44 2.12237
369 368 22.4918 -5.00806
370 369 24.5225 2.61589
371 370 24.4357 1.69222
372 371 20.3678 -8.90069
373 372 24.591 3.07477
374 373 23.988 10.8209
375 374 24.5247 8.08221
376 375 24.4177 1.10044
377 376 24.7338 6.79752
378 377 23.2367 -3.72876
379 378 22.0539 -6.41027
380 379 24.7048 7.65158
381 380 23.5188 -3.0185
382 381 23.8948 11.8326
383 382 24.2475 -0.541947
384 383 24.6017 9.17711
385 384 24.8586 2.29008
386 385 23.1362 -4.49208
387 386 24.7739 8.55776
388 387 24.9341 2.75202
389 388 24.941 7.22907
390 389 24.8544 1.85994
391 390 23.94 -2.40956
392 391 19.8576 -10.293
393 392 22.6391 -5.75816
394 393 25.0095 3.21397
395 394 24.8502 1.42979
396 395 24.954 8.12713
397 396 25.1773 6.80655
398 397 24.8813 0.667292
399 398 20.5824 -9.65157
400 399 25.1514 7.62784
401 400 24.8586 9.84138
402 401 23.2057 -5.22393
403 402 25.2515 2.44948
404 403 25.0309 9.22202
405 404 25.3269 2.91142
406 405 25.2335 1.92987
407 406 24.8993 -0.137428
408 407 22.2602 -7.29651
409 408 24.7566 10.8429
410 409 25.3916 3.34287
411 410 21.7837 -8.15331
412 411 24.5099 -1.85497
413 412 25.2032 8.60267
414 413 25.2293 1.49973
415 414 25.3877 7.20533
416 415 21.3072 -9.01012
417 416 19.9134 -11.0528
418 417 24.6545 11.8444
419 418 25.4006 8.10339
420 419 25.3138 0.996651
421 420 22.8454 -6.64439
422 421 25.6004 6.8083
423 422 25.598 7.6041
424 423 25.6443 2.60887
425 424 25.7114 3.04222
426 425 25.6264 2.08927
427 426 25.7784 3.47557
428 427 25.6084 1.56966
429 428 23.4306 -5.99228
430 429 25.6589 8.45339
431 430 20.6253 -10.6525
432 431 25.8052 7.20368
433 432 25.1104 -1.42796
434 433 25.6929 1.06658
435 434 22.5534 -7.94295
436 435 25.8563 7.9541
437 436 22.077 -8.79975
438 437 25.6412 9.64445
439 438 26.0123 6.80325
440 439 21.3501 -10.0111
441 440 19.9257 -11.8615
442 441 26.0125 2.76195
443 442 25.8135 9.02509
444 443 26.0139 7.56886
445 444 26.0078 2.36377
446 445 26.0795 3.1953
447 446 25.7774 0.563507
448 447 26.138 3.60136
449 448 25.9899 1.84417
450 449 25.5252 10.8227
451 450 23.139 -7.35511
452 451 26.221 7.16844
453 452 25.7955 -0.241213
454 453 26.1146 8.3041
455 454 25.4335 11.8352
456 455 20.6593 -11.4368
457 456 23.7057 -6.66173
458 457 26.2722 7.91886
459 458 26.3807 2.91502
460 459 26.4082 6.79171
461 460 26.4387 3.3223
462 461 26.376 2.51685
463 462 22.2286 -9.4404
464 463 25.8135 -1.04593
465 464 26.4967 3.72957
466 465 26.3714 2.11868
467 466 26.4297 7.53362
468 467 26.2692 8.87581
469 468 22.8467 -8.58939
470 469 19.9194 -12.6427
471 470 26.3877 1.38738
472 471 26.6103 7.15372
473 472 21.3929 -11.0121
474 473 26.5165 8.31834
475 474 26.4722 0.88431
476 475 26.4238 9.44752
477 476 26.7256 3.06342
478 477 23.4322 -8.00155
479 478 26.7185 2.60487
480 479 26.7837 3.4707
481 480 26.6741 7.93311
482 481 26.7908 6.77382
483 482 26.8348 3.85337
484 483 26.7138 2.20669
485 484 26.3077 10.6258
486 485 20.675 -12.2589
487 486 26.8179 7.48746
488 487 26.6711 8.89005
489 488 26.5141 0.0303452
490 489 26.7692 1.66189
491 490 24.0177 -7.41372
492 491 22.9983 -9.23004
493 492 26.1917 11.8041
494 493 26.9984 7.10756
495 494 22.2714 -10.4414
496 495 26.4962 -0.756134
497 496 26.9184 8.33259
498 497 27.0706 3.21183
499 498 19.9159 -13.4323
500 499 27.1192 3.59523
501 500 27.0635 2.75327
502 501 27.1678 3.97864
503 502 27.0563 2.29471
504 503 27.0622 7.88695
505 504 27.1617 6.74955
506 505 21.4086 -11.8342
507 506 27.1117 1.74991
508 507 27.206 7.44131
509 508 23.6636 -8.73419
510 509 27.167 1.20511
511 510 20.6701 -13.0443
512 511 27.3614 7.08025
513 512 27.394 3.35723
514 513 27.4425 3.74064
515 514 27.3997 3.00594
516 515 27.3062 8.25151
517 516 27.4853 4.10174
518 517 27.1786 9.19233
519 518 27.3926 2.54738
520 519 23.1499 -9.87069
521 520 27.097 9.79295
522 521 22.3437 -11.1266
523 522 27.5167 6.71919
524 523 24.2627 -8.09749
525 524 27.45 7.80587
526 525 27.2089 0.351148
527 526 26.981 10.9712
528 527 27.4259 8.63487
529 528 27.5693 7.38373
530 529 19.9358 -14.2293
531 530 27.7173 3.50263
532 531 21.4243 -12.6563
533 532 27.7557 3.86411
534 533 27.7231 3.15134
535 534 27.7246 7.02267
536 535 27.2508 -0.502817
537 536 26.9698 11.7479
538 537 27.7941 4.2256
539 538 27.7288 2.80005
540 539 23.8152 -9.37484
541 540 27.6788 2.09392
542 541 27.694 8.17043
543 542 27.8647 6.68171
544 543 20.6872 -13.784
545 544 27.7341 1.54912
546 545 27.8133 7.74829
547 546 23.2223 -10.5559
548 547 27.9325 7.32614
549 548 27.8137 8.55379
550 549 28.0204 3.64703
551 550 22.3594 -11.9487
552 551 28.0588 4.00851
553 552 28.092 4.34971
554 553 28.0671 3.2648
555 554 28.0629 6.98214
556 555 28.015 2.34659
557 556 24.4806 -8.879
558 557 28.0728 2.91351
559 558 27.9334 8.93714
560 559 27.8518 9.53777
561 560 28.0601 8.07807
562 561 28.1932 6.63814
563 562 27.7702 10.1384
564 563 21.4414 -13.396
565 564 20 -15
566 565 28.1794 7.65593
567 566 27.9568 0.528526
568 567 23.937 -10.1336
569 568 28.3235 3.79142
570 569 28.2737 7.25494
571 570 28.3505 4.13268
572 571 27.7468 10.9033
573 572 28.3775 4.47394
574 573 28.1798 8.46143
575 574 23.2946 -11.2412
576 575 28.3701 3.40919
577 576 28.404 6.91094
578 577 28.3012 1.89313
579 578 28.359 2.46005
580 579 27.9734 -0.31126
581 580 28.4168 3.02697
582 581 20.7292 -14.5678
583 582 27.7234 11.6682
584 583 22.3922 -12.7039
585 584 28.52 6.58529
586 585 28.4262 7.98571
587 586 24.6214 -9.59322
588 587 28.6076 3.93764
589 588 28.5205 7.58472
590 589 28.6346 4.2789
591 590 28.6564 4.60163
592 591 28.6254 3.55387
593 592 28.6148 7.18373
594 593 28.6721 3.17164
595 594 28.4824 8.81514
596 595 21.4585 -14.1357
597 596 24.0093 -10.8188
598 597 28.7183 6.85486
599 598 28.4722 9.3741
600 599 28.5239 0.872536
601 600 28.3906 9.97472
602 601 28.8218 6.52599
603 602 23.3274 -11.9963
604 603 20 -15.8182
605 604 28.8917 4.08386
606 605 28.9049 4.40631
607 606 28.9181 4.72876
608 607 28.7768 7.87638
609 608 28.7288 8.33942
610 609 28.9095 3.70009
611 610 28.8223 2.31564
612 611 28.8801 2.88256
613 612 28.9274 3.31632
614 613 28.8711 7.47539
615 614 22.4093 -13.4436
616 615 28.5058 10.7805
617 616 24.724 -10.3964
618 617 20.7832 -15.4091
619 618 29.0573 7.15601
620 619 29.129 6.45199
621 620 29.1579 4.23687
622 621 28.9754 1.61407
623 622 29.1712 4.55932
624 623 29.1782 4.86454
625 624 29.1354 3.02723
626 625 28.7466 -0.148061
627 626 29.1891 3.87451
628 627 24.0495 -11.5865
629 628 29.1608 6.82715
630 629 28.497 11.5582
631 630 29.2069 3.49074
632 631 29.0794 8.23009
633 632 29.1273 7.76705
634 633 29.0315 8.69313
635 634 29.0212 9.25209
636 635 23.3602 -12.7515
637 636 21.5124 -14.977
638 637 29.0109 9.81106
639 638 29.4133 4.99884
640 639 29.3135 7.44768
641 640 29.4187 4.69436
642 641 29.3434 2.73814
643 642 29.4242 4.38988
644 643 29.4004 6.37046
645 644 20 -16.6365
646 645 29.415 3.20166
647 646 29.4553 4.02753
648 647 29.4501 6.74938
649 648 29.4865 3.66517
650 649 29.198 0.59347
651 650 24.7779 -11.1257
652 651 29.4997 7.1283
653 652 22.4609 -14.253
654 653 29.4965 2.03657
655 654 29.5082 7.92258
656 655 29.6523 5.15282
657 656 29.4603 8.38562
658 657 29.1261 10.6168
659 658 29.6682 4.86606
660 659 24.0823 -12.3417
661 660 29.6737 4.56159
662 661 20.7832 -16.2274
663 662 29.6874 6.25786
664 663 29.7254 4.21938
665 664 29.7565 3.85702
666 665 29.6944 7.6032
667 666 29.7837 6.51684
668 667 29.7701 2.9877
669 668 29.5858 8.91269
670 669 29.8499 5.3035
671 670 29.6495 1.335
672 671 23.4118 -13.5609
673 672 29.8417 3.45121
674 673 29.8865 5.01839
675 674 29.8334 6.89576
676 675 29.5756 9.47166
677 676 29.4937 -0.0169158
678 677 29.9232 4.73329
679 678 29.9101 6.13454
680 679 29.2413 11.4226
681 680 21.5663 -15.8182
682 681 29.9749 4.39108
683 682 29.9108 2.51105
684 683 24.8045 -11.9319
685 684 30.0266 4.04887
686 685 29.8891 8.0781
687 686 30.0485 5.50677
688 687 29.9887 7.21892
689 688 30.0386 6.39888
690 689 30.1143 5.26014
691 690 30.1158 5.92799
692 691 20 -17.5365
693 692 30.1117 3.64306
694 693 30.151 4.97504
695 694 24.1091 -13.1101
696 695 30.1478 5.70044
697 696 22.5149 -15.0943
698 697 30.1773 6.13978
699 698 30.167 6.66321
700 699 30.2216 4.62359
701 700 30.0147 8.60518
702 701 30.0639 1.80948
703 702 30.1968 3.23726
704 703 29.9568 0.718524
705 704 30.2633 5.45862
706 705 30.2733 4.28138
707 706 30.1834 7.69382
708 707 30.2961 5.92273
709 708 30.3057 6.40411
710 709 29.8718 10.4299
711 710 30.1269 1.17785
712 711 30.3788 5.21679
713 712 30.3223 6.98638
714 713 30.393 3.90722
715 714 30.3375 2.76061
716 715 30.1402 9.13226
717 716 23.4634 -14.3704
718 717 24.8195 -12.6282
719 718 30.4397 5.6663
720 719 30.4494 4.86535
721 720 30.4444 6.14501
722 721 30.4781 3.50141
723 722 30.52 4.5139
724 723 30.373 8.08857
725 724 30.4914 6.67021
726 725 30.5552 5.42447
727 726 30.4776 7.30955
728 727 30.4782 2.28395
729 728 30.588 5.88858
730 729 30.0047 11.2497
731 730 30.6397 4.13973
732 731 30.5999 3.1347
733 732 30.264 0.102046
734 733 22.5151 -15.8104
735 734 30.6301 6.41111
736 735 24.1607 -13.9196
737 736 30.6881 5.13279
738 737 30.6467 6.99338
739 738 30.4985 8.61565
740 739 30.5412 1.65233
741 740 30.7316 5.63215
742 741 30.4341 0.561372
743 742 30.7587 4.78134
744 743 30.7594 3.76557
745 744 30.6673 7.7043
746 745 30.7687 6.15814
747 746 20 -18.4365
748 747 30.7406 2.65805
749 748 30.4364 10.0905
750 749 30.8158 6.67721
751 750 30.6042 1.0207
752 751 30.8645 5.34047
753 752 23.4636 -15.0864
754 753 30.9038 4.41165
755 754 30.8812 3.39886
756 755 30.9123 5.90171
757 756 30.8738 7.31812
758 757 21.25 -17.5206
759 758 24.8579 -13.4688
760 759 30.9544 6.42424
761 760 30.9974 5.04879
762 761 30.8569 8.09905
763 762 30.744 9.24947
764 763 31.0234 4.03748
765 764 31.003 3.03215
766 765 31.0899 5.61925
767 766 31.0429 7.00195
768 767 31.0929 6.17127
769 768 31.1136 3.63684
770 769 31.1425 4.67909
771 770 31.0634 7.71288
772 771 22.0332 -17.1115
773 772 24.2317 -14.6852
774 773 31.2228 5.32757
775 774 31.2705 5.88882
776 775 31.2354 3.27013
777 776 31.2457 6.57312
778 777 31.2875 4.30939
779 778 30.7326 11.0488
780 779 31.1024 8.73287
781 780 31.27 7.3267
782 781 23.4638 -15.8025
783 782 31.3857 4.96541
784 783 31.0236 0.21151
785 784 31.3777 3.90875
786 785 31.2886 2.34109
787 786 20 -19.2183
788 787 31.3842 6.32015
789 788 24.9125 -14.1726
790 789 31.4481 5.60636
791 790 31.0402 10.2077
792 791 31.1953 0.670731
793 792 31.3385 8.16583
794 793 31.4679 3.50811
795 794 31.3516 1.70946
796 795 31.4728 6.89786
797 796 31.5307 4.59571
798 797 31.5618 6.03769
799 798 31.611 5.24419
800 799 21.25 -18.4206
801 800 31.551 2.71519
802 801 31.3479 9.36669
803 802 31.545 7.77966
804 803 24.2319 -15.4012
805 804 31.6755 6.46902
806 805 31.739 4.17229
807 806 31.774 4.88203
808 807 31.584 8.79965
809 808 31.7258 7.39119
810 809 31.7834 2.95317
811 810 31.8292 3.77165
812 811 22.9819 -17.1036
813 812 31.8868 5.58597
814 813 20.8333 -19.2183
815 814 31.8201 8.23262
816 815 31.9823 4.45861
817 816 31.9286 6.96235
818 817 31.4766 10.8015
819 818 20 -20
820 819 25 -15
821 820 32.0005 6.0173
822 821 32.0497 5.22381
823 822 32.0008 7.84415
824 823 31.7864 0.320764
825 824 31.7625 9.94503
826 825 31.8563 9.30694
827 826 31.9427 1.3595
828 827 32.1447 3.21671
829 828 24.2319 -16.2037
830 829 32.099 2.39823
831 830 32.1905 4.0352
832 831 32.1755 6.467
833 832 32.1816 7.45568
834 833 32.2829 4.77554
835 834 32.0925 8.7399
836 835 32.3254 5.56558
837 836 22.5 -18.4048
838 837 32.4285 6.96032
839 838 32.4912 4.35212
840 839 32.5004 6.01528
841 840 25 -15.8025
842 841 32.3761 8.25974
843 842 20.8333 -20
844 843 32.5587 5.11731
845 844 32.271 9.88528
846 845 32.3648 9.24719
847 846 32.1772 10.5234
848 847 32.5568 7.87127
849 848 32.6383 2.90569
850 849 32.6754 6.46497
851 850 32.6841 3.72417
852 851 23.75 -17.5049
853 852 22.0833 -19.2024
854 853 32.7919 4.66904
855 854 32.6484 8.76703
856 855 32.8629 5.62502
857 856 32.5534 0.436939
858 857 32.7019 1.48129
859 858 32.8583 2.20855
860 859 32.9848 4.04109
861 860 25 -16.605
862 861 33.0379 6.07471
863 862 32.9878 7.30289
864 863 21.6667 -20
865 864 32.932 8.28687
866 865 33.0962 5.17675
867 866 33.1777 3.41314
868 867 32.9559 9.53679
869 868 33.2348 6.80754
870 869 32.8873 10.1897
871 870 22.9167 -19.2024
872 871 33.3376 4.55145
873 872 23.75 -18.4133
874 873 33.4004 5.68446
875 874 33.3631 7.71849
876 875 33.3977 2.716
877 876 33.2395 9.05663
878 877 33.5305 3.92349
879 878 33.3049 0.564346
880 879 33.5973 6.41728
881 880 22.5 -20
882 881 33.6419 5.05915
883 882 25 -17.5134
884 883 33.4613 1.29161
885 884 33.6176 2.01887
886 885 33.7941 7.1501
887 886 33.8834 4.43385
888 887 33.547 9.82639
889 888 33.9393 3.11674
890 889 33.8717 8.61994
891 890 23.3333 -20
892 891 24.1667 -19.2109
893 892 34.2407 5.74054
894 893 34.1593 2.4196
895 894 25 -18.4219
896 895 34.2922 3.62709
897 896 34.075 0.718298
898 897 34.2116 1.45858
899 898 34.3028 8.05156
900 899 34.4376 6.47336
901 900 34.4822 5.11524
902 901 34.2082 9.40221
903 902 34.5918 4.28338
904 903 34.701 2.82034
905 904 24.1667 -20
906 905 25 -19.2109
907 906 34.7533 1.85931
908 907 34.8649 7.52787
909 908 35.0006 3.47662
910 909 34.8114 8.95301
911 910 34.8056 0.898285
912 911 35.081 5.79663
913 912 35.1906 4.96476
914 913 35.3001 4.1329
915 914 25 -20
916 915 35.5083 6.85113
917 916 35.5127 3.02199
918 917 35.4072 8.43781
919 918 35.4729 2.12679
920 919 35.73 5.27151
921 920 35.5654 1.1401
922 921 35.8122 3.67827
923 922 35.8396 4.43965
924 923 35.9793 6.24441
925 924 35.9356 7.90564
926 925 36.3517 3.98502
927 926 36.3244 3.22364
928 927 36.3791 4.74639
929 928 36.2846 2.32844
930 929 36.2449 1.43324
931 930 36.4469 7.30046
932 931 36.6283 5.71929
933 932 36.8775 6.6922
934 933 36.8806 2.80331
935 934 36.9769 5.03544
936 935 36.9208 1.85773
937 936 37.1043 3.52481
938 937 37.1317 4.28618
939 938 37.2776 5.99665
940 939 37.4368 2.38299
941 940 37.5746 5.32448
942 941 37.8066 4.53166
943 942 37.7702 3.03592
944 943 37.8843 3.82598
945 end coordinates
946
947 Elements
948 1 678 695 720 690 707 697
949 2 695 669 711 686 689 704
950 3 669 638 677 655 658 673
951 4 720 695 740 707 718 728
952 5 678 720 698 697 708 688
953 6 711 669 677 689 673 693
954 7 695 711 740 704 725 718
955 8 740 711 760 725 736 751
956 9 643 678 698 662 688 666
957 10 638 606 642 623 622 640
958 11 677 638 642 658 640 660
959 12 698 720 749 708 734 724
960 13 720 740 767 728 755 745
961 14 606 572 604 590 589 605
962 15 601 643 651 619 647 628
963 16 677 642 684 660 663 681
964 17 642 606 604 622 605 620
965 18 642 604 648 620 626 646
966 19 572 537 568 552 551 570
967 20 561 601 592 584 597 576
968 21 740 760 789 751 773 765
969 22 760 711 722 736 719 742
970 23 604 572 568 589 570 587
971 24 604 568 612 587 591 609
972 25 601 651 592 628 618 597
973 26 651 643 698 647 666 674
974 27 749 720 767 734 745 759
975 28 749 767 804 759 787 776
976 29 698 749 726 724 737 712
977 30 767 740 789 755 765 774
978 31 711 677 722 693 699 719
979 32 722 677 684 699 681 705
980 33 767 789 804 774 797 787
981 34 592 651 632 618 639 613
982 35 537 501 530 516 513 532
983 36 722 684 743 705 713 730
984 37 522 561 547 542 554 534
985 38 568 537 530 551 532 549
986 39 568 530 580 549 553 575
987 40 561 592 547 576 569 554
988 41 684 642 648 663 646 664
989 42 684 648 702 664 672 692
990 43 547 592 585 569 588 565
991 44 501 464 497 482 479 499
992 45 760 722 777 742 753 769
993 46 789 760 806 773 782 798
994 47 726 749 780 737 766 756
995 48 698 726 651 712 687 674
996 49 530 501 497 513 499 512
997 50 530 497 538 512 514 533
998 51 648 604 612 626 609 630
999 52 648 612 641 630 624 645
1000 53 481 522 507 504 511 493
1001 54 522 547 507 534 528 511
1002 55 507 547 541 528 545 524
1003 56 464 426 458 447 445 460
1004 57 749 804 780 776 795 766
1005 58 780 804 832 795 816 808
1006 59 612 568 580 591 575 593
1007 60 612 580 641 593 611 624
1008 61 497 464 458 479 460 476
1009 62 497 458 502 476 478 500
1010 63 592 632 585 613 607 588
1011 64 585 632 633 607 631 608
1012 65 632 651 685 639 665 654
1013 66 438 481 466 459 471 451
1014 67 743 684 702 713 692 721
1015 68 743 702 764 721 731 754
1016 69 722 743 777 730 763 753
1017 70 777 743 793 763 768 784
1018 71 481 507 466 493 486 471
1019 72 466 507 496 486 503 480
1020 73 726 780 761 756 770 744
1021 74 806 760 777 782 769 796
1022 75 806 777 830 796 805 815
1023 76 789 806 835 798 821 812
1024 77 426 393 423 409 404 424
1025 78 580 530 538 553 533 557
1026 79 580 538 577 557 555 578
1027 80 458 426 423 445 424 441
1028 81 458 423 465 441 444 461
1029 82 547 585 541 565 560 545
1030 83 541 585 558 560 573 548
1031 84 702 648 641 672 645 667
1032 85 702 641 727 667 682 714
1033 86 396 438 422 421 431 414
1034 87 438 466 422 451 443 431
1035 88 422 466 453 443 457 435
1036 89 538 497 502 514 500 518
1037 90 538 502 577 518 540 555
1038 91 393 355 384 372 369 387
1039 92 726 761 685 744 723 706
1040 93 761 780 814 770 802 792
1041 94 423 393 384 404 387 402
1042 95 423 384 427 402 405 425
1043 96 507 541 496 524 515 503
1044 97 496 541 558 515 548 527
1045 98 789 835 804 812 820 797
1046 99 835 806 853 821 833 843
1047 100 357 396 379 376 388 365
1048 101 396 422 379 414 399 388
1049 102 379 422 412 399 418 395
1050 103 502 458 465 478 461 483
1051 104 502 465 509 483 489 506
1052 105 832 804 849 816 831 837
1053 106 780 832 814 808 822 802
1054 107 814 832 864 822 847 841
1055 108 355 323 348 337 335 350
1056 109 585 633 558 608 594 573
1057 110 558 633 637 594 634 598
1058 111 633 632 685 631 654 656
1059 112 685 651 726 665 687 706
1060 113 384 355 348 369 350 367
1061 114 384 348 394 367 370 389
1062 115 466 496 453 480 473 457
1063 116 453 496 475 473 487 467
1064 117 806 830 853 815 838 833
1065 118 853 830 866 838 850 859
1066 119 830 777 793 805 784 810
1067 120 830 829 866 827 848 850
1068 121 793 743 764 768 754 775
1069 122 793 764 829 775 800 809
1070 123 764 702 727 731 714 747
1071 124 764 727 829 747 785 800
1072 125 320 357 342 340 346 329
1073 126 685 761 715 723 738 700
1074 127 761 814 801 792 807 779
1075 128 357 379 342 365 359 346
1076 129 342 379 366 359 374 351
1077 130 835 853 873 843 865 855
1078 131 580 577 641 578 610 611
1079 132 465 423 427 444 425 448
1080 133 465 427 509 448 470 489
1081 134 323 291 321 309 310 322
1082 135 727 641 670 682 653 701
1083 136 348 323 321 335 322 334
1084 137 348 321 358 334 339 356
1085 138 422 453 412 435 429 418
1086 139 412 453 475 429 467 442
1087 140 287 320 302 303 313 295
1088 141 427 384 394 405 389 413
1089 142 427 394 446 413 419 433
1090 143 320 342 302 329 319 313
1091 144 302 342 326 319 332 315
1092 145 633 685 715 656 700 668
1093 146 832 849 885 837 868 862
1094 147 849 804 835 831 820 839
1095 148 849 835 873 839 855 861
1096 149 291 261 288 275 272 289
1097 150 715 761 801 738 779 762
1098 151 715 801 778 762 790 748
1099 152 801 814 845 807 834 825
1100 153 321 291 288 310 289 304
1101 154 321 297 358 311 325 339
1102 155 873 853 886 865 871 881
1103 156 379 412 366 395 386 374
1104 157 366 412 400 386 403 383
1105 158 502 509 577 506 544 540
1106 159 394 348 358 370 356 375
1107 160 394 358 446 375 397 419
1108 161 558 637 562 598 600 559
1109 162 637 633 715 634 668 675
1110 163 814 864 845 841 854 834
1111 164 845 864 887 854 876 867
1112 165 864 832 885 847 862 874
1113 166 864 885 909 874 898 889
1114 167 475 496 558 487 527 517
1115 168 287 302 263 295 281 273
1116 169 251 287 263 267 273 255
1117 170 251 263 223 255 241 236
1118 171 793 829 830 809 827 810
1119 172 853 866 886 859 877 871
1120 173 886 866 903 877 888 895
1121 174 670 641 577 653 610 621
1122 175 670 577 625 621 599 649
1123 176 727 670 750 701 710 739
1124 177 261 234 266 247 249 262
1125 178 288 261 266 272 262 277
1126 179 288 266 297 277 278 290
1127 180 342 366 326 351 344 332
1128 181 326 366 400 344 383 360
1129 182 885 849 873 868 861 879
1130 183 801 845 846 825 844 824
1131 184 873 886 911 881 900 892
1132 185 214 251 223 230 236 219
1133 186 214 223 189 219 205 200
1134 187 234 209 245 221 227 238
1135 188 266 234 245 249 238 254
1136 189 266 245 297 254 269 278
1137 190 263 302 285 281 292 270
1138 191 427 446 509 433 474 470
1139 192 302 326 285 315 306 292
1140 193 285 326 316 306 318 300
1141 194 750 670 732 710 703 741
1142 195 727 750 829 739 794 785
1143 196 845 887 846 867 869 844
1144 197 558 562 475 559 520 517
1145 198 562 637 679 600 657 615
1146 199 400 412 475 403 442 437
1147 200 475 562 492 520 526 484
1148 201 873 911 885 892 899 879
1149 202 911 886 913 900 902 912
1150 203 223 263 239 241 252 231
1151 204 183 214 189 198 200 185
1152 205 183 189 158 185 171 169
1153 206 209 188 222 199 203 216
1154 207 245 209 222 227 216 233
1155 208 245 222 276 233 248 260
1156 209 288 297 321 290 311 304
1157 210 263 285 239 270 265 252
1158 211 886 903 913 895 908 902
1159 212 913 903 926 908 916 921
1160 213 903 866 884 888 875 893
1161 214 239 285 274 265 279 256
1162 215 189 223 201 205 211 194
1163 216 222 188 195 203 190 208
1164 217 188 168 195 178 180 190
1165 218 195 168 155 180 161 174
1166 219 911 913 927 912 922 919
1167 220 223 239 201 231 220 211
1168 221 201 239 212 220 226 206
1169 222 285 316 274 300 296 279
1170 223 274 316 294 296 305 283
1171 224 274 294 246 283 268 258
1172 225 316 326 400 318 360 353
1173 226 939 943 926 942 936 933
1174 227 385 380 324 377 347 349
1175 228 929 939 926 935 933 928
1176 229 577 509 625 544 566 599
1177 230 152 163 179 154 172 165
1178 231 380 411 333 390 364 354
1179 232 59 45 56 52 50 57
1180 233 428 385 352 401 368 392
1181 234 943 927 926 937 925 936
1182 235 70 59 73 64 65 71
1183 236 411 463 358 432 406 382
1184 237 940 932 927 938 931 934
1185 238 940 927 943 934 937 941
1186 239 927 932 911 931 923 919
1187 240 910 929 903 920 918 906
1188 241 932 924 911 930 915 923
1189 242 463 535 446 495 488 452
1190 243 463 446 358 452 397 406
1191 244 45 28 41 37 35 42
1192 245 924 909 885 917 898 907
1193 246 909 887 864 901 876 889
1194 247 116 98 114 108 105 115
1195 248 616 556 519 586 539 567
1196 249 846 778 801 817 790 824
1197 250 556 490 468 523 477 508
1198 251 98 82 102 89 93 99
1199 252 132 116 128 125 122 130
1200 253 878 910 884 896 897 883
1201 254 683 616 574 650 596 627
1202 255 679 582 562 629 571 615
1203 256 562 582 492 571 536 526
1204 257 170 145 156 157 150 162
1205 258 535 625 509 579 566 525
1206 259 145 132 139 138 137 144
1207 260 778 679 637 729 657 709
1208 261 819 758 716 788 735 772
1209 262 82 70 88 76 78 84
1210 263 345 294 316 317 305 330
1211 264 732 823 750 783 791 741
1212 265 732 670 625 703 649 676
1213 266 750 823 829 791 826 794
1214 267 492 417 400 454 408 449
1215 268 246 202 212 224 207 228
1216 269 490 428 407 456 420 450
1217 270 758 683 635 717 659 694
1218 271 823 878 829 856 857 826
1219 272 202 170 182 184 177 192
1220 273 417 345 400 381 373 408
1221 274 637 715 778 675 748 709
1222 275 163 193 179 176 186 172
1223 276 878 884 829 883 858 857
1224 277 829 884 866 858 875 848
1225 278 85 96 77 92 87 81
1226 279 155 152 179 153 165 166
1227 280 286 336 327 312 331 308
1228 281 336 391 415 361 398 371
1229 282 746 818 863 786 842 813
1230 283 72 85 77 79 81 75
1231 284 129 140 124 135 131 127
1232 285 96 106 77 101 90 87
1233 286 117 129 110 123 120 113
1234 287 235 286 264 259 271 250
1235 288 140 158 143 147 148 142
1236 289 193 235 215 213 225 204
1237 290 62 72 60 67 66 61
1238 291 106 117 95 111 107 100
1239 292 391 440 472 416 455 430
1240 293 498 564 595 529 581 543
1241 294 49 62 46 55 54 47
1242 295 440 498 531 469 510 485
1243 296 5 1 6 2 3 4
1244 297 914 894 890 905 891 904
1245 298 222 195 243 208 218 232
1246 299 276 222 243 248 232 257
1247 300 276 243 324 257 282 299
1248 301 245 276 297 260 284 269
1249 302 27 30 14 29 22 20
1250 303 189 201 164 194 181 175
1251 304 903 884 910 893 897 906
1252 305 39 49 32 44 40 36
1253 306 860 819 781 840 803 828
1254 307 28 15 23 21 17 25
1255 308 564 644 680 603 661 617
1256 309 239 274 246 256 258 240
1257 310 324 380 333 347 354 328
1258 311 385 324 352 349 338 368
1259 312 926 927 913 925 922 921
1260 313 926 903 929 916 918 928
1261 314 333 411 358 364 382 343
1262 315 56 45 41 50 42 48
1263 316 59 56 73 57 63 65
1264 317 428 352 407 392 378 420
1265 318 70 73 88 71 80 78
1266 319 41 28 23 35 25 31
1267 320 41 23 46 31 33 43
1268 321 556 468 519 508 491 539
1269 322 519 468 415 491 436 462
1270 323 468 490 407 477 450 434
1271 324 468 407 415 434 410 436
1272 325 102 82 88 93 84 94
1273 326 102 88 110 94 97 104
1274 327 114 98 102 105 99 109
1275 328 114 102 124 109 112 119
1276 329 128 116 114 122 115 121
1277 330 128 114 124 121 119 126
1278 331 616 519 574 567 546 596
1279 332 574 519 472 546 494 521
1280 333 132 128 139 130 134 137
1281 334 139 128 143 134 136 141
1282 335 156 145 139 150 144 146
1283 336 156 139 164 146 149 159
1284 337 683 574 635 627 602 659
1285 338 635 574 531 602 550 583
1286 339 170 156 182 162 167 177
1287 340 182 156 164 167 159 173
1288 341 164 139 143 149 141 151
1289 342 182 164 201 173 181 191
1290 343 182 201 212 191 206 196
1291 344 212 239 246 226 240 228
1292 345 182 212 202 196 207 192
1293 346 716 758 635 735 694 671
1294 347 716 635 595 671 614 652
1295 348 819 716 781 772 752 803
1296 349 781 716 680 752 696 733
1297 350 863 890 836 880 870 852
1298 351 6 14 12 10 13 8
1299 352 509 446 535 474 488 525
1300 353 327 336 415 331 371 363
1301 354 286 327 264 308 293 271
1302 355 415 391 472 398 430 439
1303 356 345 316 400 330 353 373
1304 357 124 140 143 131 142 133
1305 358 129 124 110 127 118 120
1306 359 117 110 95 113 103 107
1307 360 235 264 215 250 237 225
1308 361 215 264 244 237 253 229
1309 362 143 158 164 148 160 151
1310 363 60 72 77 66 75 69
1311 364 193 215 179 204 197 186
1312 365 179 215 244 197 229 210
1313 366 62 60 46 61 53 54
1314 367 46 60 41 53 51 43
1315 368 106 95 77 100 86 90
1316 369 472 440 531 455 485 505
1317 370 472 531 574 505 550 521
1318 371 595 564 680 581 617 636
1319 372 595 680 716 636 696 652
1320 373 498 595 531 543 563 510
1321 374 531 595 635 563 614 583
1322 375 49 46 32 47 38 40
1323 376 32 46 23 38 33 26
1324 377 95 110 88 103 97 91
1325 378 39 32 12 36 19 24
1326 379 860 781 836 828 811 851
1327 380 23 15 12 17 11 16
1328 381 243 195 244 218 217 242
1329 382 243 244 324 242 280 282
1330 383 189 164 158 175 160 171
1331 384 680 644 836 661 757 771
1332 385 88 73 95 80 83 91
1333 386 124 143 128 133 136 126
1334 387 863 836 746 852 799 813
1335 388 6 12 5 8 7 4
1336 389 644 746 836 691 799 757
1337 390 836 890 894 870 891 872
1338 391 12 14 30 13 22 18
1339 392 358 297 333 325 314 343
1340 393 333 297 276 314 284 301
1341 394 110 124 102 118 112 104
1342 395 407 352 327 378 341 362
1343 396 894 860 836 882 851 872
1344 397 15 5 12 9 7 11
1345 398 30 39 12 34 24 18
1346 399 400 475 492 437 484 449
1347 400 781 680 836 733 771 811
1348 401 56 41 60 48 51 58
1349 402 415 472 519 439 494 462
1350 403 32 23 12 26 16 19
1351 404 264 327 352 293 341 307
1352 405 244 264 352 253 307 298
1353 406 333 276 324 301 299 328
1354 407 73 56 77 63 68 74
1355 408 327 415 407 363 410 362
1356 409 155 179 195 166 187 174
1357 410 352 324 244 338 280 298
1358 411 56 60 77 58 69 68
1359 412 885 911 924 899 915 907
1360 413 95 73 77 83 74 86
1361 414 244 195 179 217 187 210
1362 end elements
+0
-906
interface/src/scilab/demos/data/vee_h_0.03.mesh less more
0 % GETFEM MESH FILE
1 % GETFEM VERSION 4.2
2
3
4
5 BEGIN POINTS LIST
6
7 POINT 0 0.02824386755331991 0.5503397721347235
8 POINT 1 0.02647597441763003 0.09038180570197517
9 POINT 2 0.02562604289610741 0.516106862580448
10 POINT 3 0.03053418879476754 0.6201137699546717
11 POINT 4 0.02621791640092406 0.1325911003676035
12 POINT 5 0.02695152093399298 0.4458809002952043
13 POINT 6 0.03128290314446402 0.6927572918317778
14 POINT 7 0.02672133398924762 0.3589905350574535
15 POINT 8 0.02677108296534365 0.4023731500321248
16 POINT 9 0.0272599793335977 0.6551426791895875
17 POINT 10 0.02773846964397048 0.7281413929171047
18 POINT 11 0.03052282356315187 0.3236666727511275
19 POINT 12 0.03043275580190189 0.4816284390729888
20 POINT 13 0.02626743162679461 0.5844977054286213
21 POINT 14 0.02649115979683173 0.2881454309338785
22 POINT 15 0.0298089270105605 0.7687948823087111
23 POINT 16 0.02648198191404091 0.2029642412711583
24 POINT 17 0.02620806911116242 0.2455043980010479
25 POINT 18 0.03082127072836243 0.1676971635354002
26 POINT 19 0.03215032202910733 0.04419006666468123
27 POINT 20 0.05943483473313316 0.1104672890244823
28 POINT 21 0.05670715821700657 0.5343955381749455
29 POINT 22 0.06933390774782276 0.4237980805386979
30 POINT 23 0.06840382266325389 0.3832162005510493
31 POINT 24 0.06829980570500112 0.3439447554149398
32 POINT 25 0.06955590781166515 0.6807440490252088
33 POINT 26 0.06975321417329743 0.7232121167970115
34 POINT 27 0.06861018737323704 0.7712158521242558
35 POINT 28 0.06727367858336171 0.6031190896563263
36 POINT 29 0.06857921404207956 0.6412207745244978
37 POINT 30 0.07030251986910861 0.4639146516981031
38 POINT 31 0.06403021516356071 0.5663052411629412
39 POINT 32 0.06803111261930672 0.3059445315108133
40 POINT 33 0.06673942897874752 0.502699565675824
41 POINT 34 0.06730694127817134 0.2670136185396308
42 POINT 35 0.06832723907726322 0.1879229347814346
43 POINT 36 0.07123578565177997 0.07484440106681763
44 POINT 37 0.06730212501751993 0.2270112936760396
45 POINT 38 0.0733686042717427 0.1461724928209694
46 POINT 39 0.09015189225290647 0.03137737054806237
47 POINT 40 0.09947337028797004 0.1079879954489934
48 POINT 41 0.110361706826247 0.4038361613845465
49 POINT 42 0.1013293077602535 0.5372848764564697
50 POINT 43 0.1134088598651847 0.4439509192325738
51 POINT 44 0.1087577015502768 0.3648387441418034
52 POINT 45 0.1066674027199775 0.5827923776179094
53 POINT 46 0.1103552915235766 0.7094010376752968
54 POINT 47 0.1094488673487835 0.6648185334225777
55 POINT 48 0.1085191669938707 0.6235992956044932
56 POINT 49 0.1142245989584146 0.7690664906696248
57 POINT 50 0.1196584197938882 0.4891776646978364
58 POINT 51 0.1080611290456754 0.3263291889290241
59 POINT 52 0.1077688784540394 0.2876803199909081
60 POINT 53 0.1044788096762107 0.1737302061056784
61 POINT 54 0.1076712675775209 0.2484271650845548
62 POINT 55 0.1073885661211732 0.2092446316099651
63 POINT 56 0.1205040118050215 0.06921769897896703
64 POINT 57 0.1249743227276369 0.1421696429070175
65 POINT 58 0.144406337351332 0.0295277655816403
66 POINT 59 0.1492071492097846 0.3843679332397078
67 POINT 60 0.1551949578494214 0.5242351335128946
68 POINT 61 0.1522808297177899 0.4217905160888278
69 POINT 62 0.1504409274789119 0.5640433011489994
70 POINT 63 0.1571324014440739 0.458737810273899
71 POINT 64 0.1498202677058443 0.6044702342397656
72 POINT 65 0.1498777540367776 0.6453821642336252
73 POINT 66 0.1498886822414469 0.6885026772672971
74 POINT 67 0.1495899612897142 0.7363080591993475
75 POINT 68 0.1477405802296564 0.3468478819382175
76 POINT 69 0.1493088616566907 0.774478611327864
77 POINT 70 0.1656161233409817 0.4913587588720445
78 POINT 71 0.1473390075850902 0.1053672992418459
79 POINT 72 0.1475313811708448 0.3088253840727193
80 POINT 73 0.1485147545701409 0.2296160109590522
81 POINT 74 0.1478116655853712 0.2699213206922422
82 POINT 75 0.1496369790145169 0.1838139122723193
83 POINT 76 0.1705666907230591 0.06732213632360558
84 POINT 77 0.1733041838820784 0.1418798859022234
85 POINT 78 0.1859050137613147 0.3665186527504704
86 POINT 79 0.1917807175611929 0.5857829883961037
87 POINT 80 0.1892640082274482 0.4019836335686983
88 POINT 81 0.1936687402854208 0.5473338750960308
89 POINT 82 0.1931337913444685 0.4379016582747668
90 POINT 83 0.1909866929151559 0.6248059137431728
91 POINT 84 0.1905376178179148 0.66527533097347
92 POINT 85 0.1895128146909529 0.7096804901462586
93 POINT 86 0.1845284865723805 0.7690161569090109
94 POINT 87 0.1966969825641042 0.4737929460154752
95 POINT 88 0.1966575148536323 0.5101265219486579
96 POINT 89 0.1860799651243182 0.3302905984346781
97 POINT 90 0.1973067219370702 0.02902115076611287
98 POINT 91 0.1952880249928385 0.1041534797282914
99 POINT 92 0.1904317109247126 0.2143634082005944
100 POINT 93 0.1872735594436005 0.2923569183847166
101 POINT 94 0.187812985317397 0.2533748128502415
102 POINT 95 0.2015149185692859 0.1758519468505924
103 POINT 96 0.2179188671474133 0.06720497068848851
104 POINT 97 0.2319583975961735 0.6051403907958248
105 POINT 98 0.2175526664959117 0.3511456085263647
106 POINT 99 0.2328522614268767 0.5683840762012687
107 POINT 100 0.2314462584999296 0.6421205645211133
108 POINT 101 0.2313573214037183 0.6807074819553075
109 POINT 102 0.2306972482804103 0.7237705573388973
110 POINT 103 0.2299992292236268 0.4173401792500492
111 POINT 104 0.2248392196741471 0.3831130913806577
112 POINT 105 0.2307088068345449 0.771425327309382
113 POINT 106 0.2335047522559805 0.4536207024873247
114 POINT 107 0.2343188031121169 0.5305849507476457
115 POINT 108 0.234806966991341 0.4918348727463672
116 POINT 109 0.220606566928643 0.1397399637400189
117 POINT 110 0.2254393390409096 0.2758472445356399
118 POINT 111 0.2259367167514756 0.2034964354147796
119 POINT 112 0.2397827537545823 0.03207083184413845
120 POINT 113 0.2305665959109331 0.3177363436502796
121 POINT 114 0.2263833472291355 0.237894986787601
122 POINT 115 0.2414958186666984 0.1035165648028695
123 POINT 116 0.2454565873546608 0.1742024876678121
124 POINT 117 0.2737598166780369 0.6215189316681808
125 POINT 118 0.2731367867581994 0.7312722091408874
126 POINT 119 0.2739161457656092 0.6892472325068278
127 POINT 120 0.2701027487502143 0.7700101868672165
128 POINT 121 0.2701624641634778 0.587945631997563
129 POINT 122 0.2698952800478632 0.6558897110288626
130 POINT 123 0.2626134740394606 0.3619367076620648
131 POINT 124 0.2742544156585144 0.5126148267294688
132 POINT 125 0.2742301024624481 0.4698778788724298
133 POINT 126 0.2667387370307275 0.3961411556745347
134 POINT 127 0.2735720136906756 0.4287951139705222
135 POINT 128 0.2741808201797501 0.5543904486257686
136 POINT 129 0.2626543648275755 0.06718576036275845
137 POINT 130 0.2657780036047302 0.1393149343917324
138 POINT 131 0.2577526931888363 0.2934954097517921
139 POINT 132 0.2626454721929069 0.2599220476328054
140 POINT 133 0.2671504602334446 0.2159648825338595
141 POINT 134 0.2821057781128723 0.02900402154702007
142 POINT 135 0.2775352214700231 0.3249138046397344
143 POINT 136 0.2864464034076742 0.1036803003971258
144 POINT 137 0.2904230466913847 0.1757420403202942
145 POINT 138 0.3083212189903026 0.06788986752714518
146 POINT 139 0.2930440861646672 0.2890039440855445
147 POINT 140 0.3100633563658314 0.1393385853711975
148 POINT 141 0.3046999744326807 0.2509070595435642
149 POINT 142 0.3188206830675563 0.2113277707871447
150 POINT 143 0.3299936820978413 0.1049816832592924
151 POINT 144 0.3317209649257268 0.03109957679843803
152 POINT 145 0.319841274537621 0.3226183424672261
153 POINT 146 0.3355728407246954 0.1734873236024497
154 POINT 147 0.3350822793216058 0.2840172615199642
155 POINT 148 0.3518533486509983 0.1382899526303297
156 POINT 149 0.3494867101901841 0.3575216201403072
157 POINT 150 0.3571994850212493 0.0723855160536829
158 POINT 151 0.349200596037434 0.2451293617821327
159 POINT 152 0.3661377653885303 0.1082241118275593
160 POINT 153 0.3638002249227247 0.2064661662048838
161 POINT 154 0.3646353423154877 0.317992392897046
162 POINT 155 0.3642371920815199 0.03868584480478807
163 POINT 156 0.3783786665051373 0.1688323011966747
164 POINT 157 0.3812250922142435 0.3921815745075735
165 POINT 158 0.3792114206919993 0.2786296279531361
166 POINT 159 0.3915065362804621 0.1323250135370108
167 POINT 160 0.400316738179139 0.09354661122295788
168 POINT 161 0.3949851980112433 0.352504790358064
169 POINT 162 0.3934209200206573 0.2393411450663004
170 POINT 163 0.4073274811418884 0.20034143257163
171 POINT 164 0.4116791544110385 0.4262235028871498
172 POINT 165 0.409398973263858 0.312636608936941
173 POINT 166 0.4204573431894028 0.1616177509192298
174 POINT 167 0.4252083190206175 0.3874388208183326
175 POINT 168 0.4320796724819307 0.1222070720676852
176 POINT 169 0.4236353168095279 0.2726661729571256
177 POINT 170 0.4362350644751891 0.4566856719850121
178 POINT 171 0.4374353590017823 0.2327411133289139
179 POINT 172 0.4397285859045665 0.347365071708195
180 POINT 173 0.4506500795749698 0.1929488098572628
181 POINT 174 0.4535180596611436 0.4235195784243109
182 POINT 175 0.4542419497861864 0.3067412594992924
183 POINT 176 0.4631012069653597 0.1530740591491737
184 POINT 177 0.468221461626506 0.2659364054555767
185 POINT 178 0.4695007344807852 0.3832744411423094
186 POINT 179 0.4759495004127277 0.4707456693813586
187 POINT 180 0.4815031046730269 0.2251995739105644
188 POINT 181 0.4849505517943053 0.3418404087312331
189 POINT 182 0.4942501367956402 0.1847361482094831
190 POINT 183 0.4980487527399948 0.4218138846862854
191 POINT 184 0.4996284546314984 0.3001158095316894
192 POINT 185 0.5103536114056515 0.5095830309244412
193 POINT 186 0.5130565358370122 0.2581959590478421
194 POINT 187 0.5153316891862698 0.3782193641430885
195 POINT 188 0.5255323241663241 0.2166065860864175
196 POINT 189 0.5273004997426499 0.4611758097256844
197 POINT 190 0.5313747963184197 0.3354749942416194
198 POINT 191 0.5410377959675094 0.5430816665815683
199 POINT 192 0.5454677719019796 0.4153814089438296
200 POINT 193 0.546200637991746 0.292605251165006
201 POINT 194 0.5580835370313195 0.4977571394288881
202 POINT 195 0.5575356086061947 0.2487918467686304
203 POINT 196 0.5627365552898601 0.3715451281465075
204 POINT 197 0.5705894504437897 0.5750954130704591
205 POINT 198 0.5758484027456142 0.4521453000789732
206 POINT 199 0.5796708482616374 0.3285704026549374
207 POINT 200 0.5878882958446118 0.5325534537712754
208 POINT 201 0.5971052521411017 0.2847930379428629
209 POINT 202 0.593551739626667 0.4073883400058174
210 POINT 203 0.6000677269372372 0.6062040616155716
211 POINT 204 0.6063205081715648 0.4883347567657813
212 POINT 205 0.6111149321429606 0.3641247330938279
213 POINT 206 0.6157219830350201 0.5662727413286929
214 POINT 207 0.62436620928926 0.442868539769464
215 POINT 208 0.62947154914732 0.3232743412084964
216 POINT 209 0.636047221017895 0.5253638541663651
217 POINT 210 0.6391363175718151 0.5961887321240341
218 POINT 211 0.6417528117688202 0.398105951598161
219 POINT 212 0.6558783842164176 0.4792387460372146
220 POINT 213 0.6593021470531886 0.3553971299506012
221 POINT 214 0.6609843908137047 0.5644983851704647
222 POINT 215 0.6727047107517309 0.4317714392412708
223 POINT 216 0.6910157483592478 0.5219845424579734
224 POINT 217 0.689237856385406 0.3868054452004265
225 POINT 218 0.7047758348801377 0.4653690021121466
226 POINT 219 0.7198468865566705 0.4181924000927049
227 POINT 220 0.734712895228991 0.5466579546694849
228 POINT 221 0.7381621094303047 0.4947638051692843
229 POINT 222 0.7519744898351445 0.449773619639146
230 POINT 223 0.792801040609337 0.4885698092891391
231 POINT 224 0.4111661397536685 0.04903410539770432
232 POINT 225 0.4425753923396287 0.08044335798366473
233 POINT 226 0.4746918055396539 0.1125597711836897
234 POINT 227 0.5066518877836133 0.1445198534276491
235 POINT 228 0.538142494382264 0.1760104600262999
236 POINT 229 0.5686908791876902 0.206558844831726
237 POINT 230 0.5972753676876487 0.2351433333316846
238 POINT 231 0.6239010482081033 0.2617690138521391
239 POINT 232 0.6502061566014433 0.2880741222454792
240 POINT 233 0.677536237685038 0.3154042033290739
241 POINT 234 0.706086075259919 0.3439540409039548
242 POINT 235 0.7352487751015574 0.3731167407455933
243 POINT 236 0.7645001233998782 0.4023680890439141
244 POINT 237 0.7934842530541013 0.4313522186981372
245 POINT 238 0.6420866777718084 0.6392841721266677
246 POINT 239 0.6767874412185131 0.6045834086799629
247 POINT 240 0.7072213988619687 0.5741494510365068
248 POINT 241 0.7640554701939035 0.5173153797045723
249 POINT 242 0.03319601913759108 0
250 POINT 243 0.06181156614164673 0
251 POINT 244 0.0882747204979324 0
252 POINT 245 0.1170678803342598 0
253 POINT 246 0.1440631335672158 0
254 POINT 247 0.1711391807388376 0
255 POINT 248 0.1992432508319953 0
256 POINT 249 0.2252639636126135 0
257 POINT 250 0.2537273716943667 0
258 POINT 251 0.2804476095375088 0
259 POINT 252 0 0.8
260 POINT 253 0.3 0.8
261 POINT 254 0 0
262 POINT 255 0.2999999999187526 0.3621320342747167
263 POINT 256 0 0.02578769410014842
264 POINT 257 0 0.04665345450731326
265 POINT 258 0 0.06720151421054357
266 POINT 259 0 0.09028772754594161
267 POINT 260 0 0.1115971034214429
268 POINT 261 0 0.1348608818320463
269 POINT 262 0 0.1564157346973516
270 POINT 263 0 0.1788768895947165
271 POINT 264 0 0.2006868576836351
272 POINT 265 0 0.2230736221244512
273 POINT 266 0 0.2451970487801577
274 POINT 267 0 0.2669449821897104
275 POINT 268 0 0.2898192657007407
276 POINT 269 0 0.3113096693851733
277 POINT 270 0 0.3346819173379435
278 POINT 271 0 0.3565862821426324
279 POINT 272 0 0.3796008493826439
280 POINT 273 0 0.4021334465438186
281 POINT 274 0 0.424548715690277
282 POINT 275 0 0.4477436681115819
283 POINT 276 0 0.4694401348294523
284 POINT 277 0 0.4925500738806556
285 POINT 278 0 0.5154769732907261
286 POINT 279 0 0.538099875141097
287 POINT 280 0 0.5619061233333373
288 POINT 281 0 0.584264332425715
289 POINT 282 0 0.6074346535685199
290 POINT 283 0 0.6309978963881651
291 POINT 284 0 0.6533899406925311
292 POINT 285 0 0.6769219238206525
293 POINT 286 0 0.7005471264969313
294 POINT 287 0 0.7234498270969989
295 POINT 288 0 0.7470265930545587
296 POINT 289 0 0.7705000784993221
297 POINT 290 0.02701595741290627 0.8
298 POINT 291 0.04977900458587668 0.8
299 POINT 292 0.07133696107913944 0.8
300 POINT 293 0.09457520676951151 0.8
301 POINT 294 0.1159965333133351 0.8
302 POINT 295 0.1371023039377549 0.8
303 POINT 296 0.161217708932773 0.8
304 POINT 297 0.1824622854057724 0.8
305 POINT 298 0.2042958267710004 0.8
306 POINT 299 0.2274465848015504 0.8
307 POINT 300 0.2493020148762635 0.8
308 POINT 301 0.2719213694540514 0.8
309 POINT 302 0.3077412355577892 0
310 POINT 303 0.335835212781703 0
311 POINT 304 0.3354484364224567 0.3975804707784208
312 POINT 305 0.3696397287342337 0.4317717630901978
313 POINT 306 0.4028907120703909 0.465022746426355
314 POINT 307 0.4361562967990782 0.4982883311550423
315 POINT 308 0.4653116710421516 0.5274437053981157
316 POINT 309 0.4950139235317609 0.5571459578877249
317 POINT 310 0.5247689873063142 0.5869010216622783
318 POINT 311 0.5540603273670539 0.6161923617230179
319 POINT 312 0.5827297812415908 0.6448618155975548
320 POINT 313 0.3 0.382696739913288
321 POINT 314 0.3 0.4049356485516838
322 POINT 315 0.3 0.425506478799525
323 POINT 316 0.3 0.4477713348206455
324 POINT 317 0.3 0.4690254048331078
325 POINT 318 0.3 0.4910831707549449
326 POINT 319 0.3 0.5130290530918432
327 POINT 320 0.3 0.5345885892451291
328 POINT 321 0.3 0.5569706685288468
329 POINT 322 0.3 0.5777052471722839
330 POINT 323 0.3 0.5996934147179624
331 POINT 324 0.3 0.6209498241985895
332 POINT 325 0.3 0.6423144479121565
333 POINT 326 0.3 0.6643130738844818
334 POINT 327 0.3 0.6852541911064726
335 POINT 328 0.3 0.7073000777828634
336 POINT 329 0.3 0.7292451696564534
337 POINT 330 0.3 0.7503586639591527
338 POINT 331 0.3 0.7723025566929658
339 POINT 332 0.6096194077712559 0.67175144212722
340 POINT 333 0.8217514421272201 0.4596194077712559
341 POINT 334 0.3621320343559642 0
342
343 END POINTS LIST
344
345
346
347 BEGIN MESH STRUCTURE DESCRIPTION
348
349 CONVEX 0 'GT_PK(2,1)' 136 140 130
350 CONVEX 1 'GT_PK(2,1)' 140 136 143
351 CONVEX 2 'GT_PK(2,1)' 15 289 288
352 CONVEX 3 'GT_PK(2,1)' 140 137 130
353 CONVEX 4 'GT_PK(2,1)' 140 143 148
354 CONVEX 5 'GT_PK(2,1)' 137 140 146
355 CONVEX 6 'GT_PK(2,1)' 289 290 252
356 CONVEX 7 'GT_PK(2,1)' 290 15 291
357 CONVEX 8 'GT_PK(2,1)' 15 290 289
358 CONVEX 9 'GT_PK(2,1)' 286 285 6
359 CONVEX 10 'GT_PK(2,1)' 146 140 148
360 CONVEX 11 'GT_PK(2,1)' 49 295 294
361 CONVEX 12 'GT_PK(2,1)' 10 15 288
362 CONVEX 13 'GT_PK(2,1)' 10 286 6
363 CONVEX 14 'GT_PK(2,1)' 144 134 302
364 CONVEX 15 'GT_PK(2,1)' 16 263 18
365 CONVEX 16 'GT_PK(2,1)' 134 144 138
366 CONVEX 17 'GT_PK(2,1)' 242 256 254
367 CONVEX 18 'GT_PK(2,1)' 303 144 302
368 CONVEX 19 'GT_PK(2,1)' 155 144 334
369 CONVEX 20 'GT_PK(2,1)' 295 69 296
370 CONVEX 21 'GT_PK(2,1)' 49 69 295
371 CONVEX 22 'GT_PK(2,1)' 287 10 288
372 CONVEX 23 'GT_PK(2,1)' 10 287 286
373 CONVEX 24 'GT_PK(2,1)' 144 303 334
374 CONVEX 25 'GT_PK(2,1)' 144 150 138
375 CONVEX 26 'GT_PK(2,1)' 10 27 15
376 CONVEX 27 'GT_PK(2,1)' 15 27 291
377 CONVEX 28 'GT_PK(2,1)' 27 292 291
378 CONVEX 29 'GT_PK(2,1)' 144 155 150
379 CONVEX 30 'GT_PK(2,1)' 224 155 334
380 CONVEX 31 'GT_PK(2,1)' 160 224 225
381 CONVEX 32 'GT_PK(2,1)' 265 17 266
382 CONVEX 33 'GT_PK(2,1)' 17 265 16
383 CONVEX 34 'GT_PK(2,1)' 317 125 316
384 CONVEX 35 'GT_PK(2,1)' 83 84 65
385 CONVEX 36 'GT_PK(2,1)' 83 64 79
386 CONVEX 37 'GT_PK(2,1)' 64 83 65
387 CONVEX 38 'GT_PK(2,1)' 105 102 118
388 CONVEX 39 'GT_PK(2,1)' 64 62 79
389 CONVEX 40 'GT_PK(2,1)' 62 64 45
390 CONVEX 41 'GT_PK(2,1)' 48 64 65
391 CONVEX 42 'GT_PK(2,1)' 28 48 29
392 CONVEX 43 'GT_PK(2,1)' 64 48 45
393 CONVEX 44 'GT_PK(2,1)' 48 28 45
394 CONVEX 45 'GT_PK(2,1)' 66 84 85
395 CONVEX 46 'GT_PK(2,1)' 84 66 65
396 CONVEX 47 'GT_PK(2,1)' 26 10 6
397 CONVEX 48 'GT_PK(2,1)' 26 27 10
398 CONVEX 49 'GT_PK(2,1)' 26 46 49
399 CONVEX 50 'GT_PK(2,1)' 27 26 49
400 CONVEX 51 'GT_PK(2,1)' 46 67 49
401 CONVEX 52 'GT_PK(2,1)' 67 69 49
402 CONVEX 53 'GT_PK(2,1)' 66 67 46
403 CONVEX 54 'GT_PK(2,1)' 67 66 85
404 CONVEX 55 'GT_PK(2,1)' 27 293 292
405 CONVEX 56 'GT_PK(2,1)' 155 224 150
406 CONVEX 57 'GT_PK(2,1)' 224 160 150
407 CONVEX 58 'GT_PK(2,1)' 293 49 294
408 CONVEX 59 'GT_PK(2,1)' 293 27 49
409 CONVEX 60 'GT_PK(2,1)' 137 146 142
410 CONVEX 61 'GT_PK(2,1)' 137 142 133
411 CONVEX 62 'GT_PK(2,1)' 221 222 223
412 CONVEX 63 'GT_PK(2,1)' 222 237 223
413 CONVEX 64 'GT_PK(2,1)' 237 333 223
414 CONVEX 65 'GT_PK(2,1)' 237 222 236
415 CONVEX 66 'GT_PK(2,1)' 137 133 116
416 CONVEX 67 'GT_PK(2,1)' 130 137 116
417 CONVEX 68 'GT_PK(2,1)' 305 157 164
418 CONVEX 69 'GT_PK(2,1)' 129 136 115
419 CONVEX 70 'GT_PK(2,1)' 136 130 115
420 CONVEX 71 'GT_PK(2,1)' 136 129 138
421 CONVEX 72 'GT_PK(2,1)' 263 262 18
422 CONVEX 73 'GT_PK(2,1)' 17 267 266
423 CONVEX 74 'GT_PK(2,1)' 143 136 138
424 CONVEX 75 'GT_PK(2,1)' 21 2 33
425 CONVEX 76 'GT_PK(2,1)' 16 264 263
426 CONVEX 77 'GT_PK(2,1)' 2 21 0
427 CONVEX 78 'GT_PK(2,1)' 265 264 16
428 CONVEX 79 'GT_PK(2,1)' 274 273 8
429 CONVEX 80 'GT_PK(2,1)' 273 272 8
430 CONVEX 81 'GT_PK(2,1)' 0 21 31
431 CONVEX 82 'GT_PK(2,1)' 51 68 44
432 CONVEX 83 'GT_PK(2,1)' 23 22 8
433 CONVEX 84 'GT_PK(2,1)' 41 23 44
434 CONVEX 85 'GT_PK(2,1)' 23 41 22
435 CONVEX 86 'GT_PK(2,1)' 22 5 8
436 CONVEX 87 'GT_PK(2,1)' 5 274 8
437 CONVEX 88 'GT_PK(2,1)' 5 275 274
438 CONVEX 89 'GT_PK(2,1)' 68 72 89
439 CONVEX 90 'GT_PK(2,1)' 72 68 51
440 CONVEX 91 'GT_PK(2,1)' 37 54 34
441 CONVEX 92 'GT_PK(2,1)' 17 37 34
442 CONVEX 93 'GT_PK(2,1)' 37 17 16
443 CONVEX 94 'GT_PK(2,1)' 262 4 18
444 CONVEX 95 'GT_PK(2,1)' 4 262 261
445 CONVEX 96 'GT_PK(2,1)' 4 261 260
446 CONVEX 97 'GT_PK(2,1)' 21 33 42
447 CONVEX 98 'GT_PK(2,1)' 257 19 258
448 CONVEX 99 'GT_PK(2,1)' 243 19 242
449 CONVEX 100 'GT_PK(2,1)' 19 256 242
450 CONVEX 101 'GT_PK(2,1)' 19 257 256
451 CONVEX 102 'GT_PK(2,1)' 248 249 90
452 CONVEX 103 'GT_PK(2,1)' 247 248 90
453 CONVEX 104 'GT_PK(2,1)' 21 42 31
454 CONVEX 105 'GT_PK(2,1)' 2 0 279
455 CONVEX 106 'GT_PK(2,1)' 278 2 279
456 CONVEX 107 'GT_PK(2,1)' 12 2 277
457 CONVEX 108 'GT_PK(2,1)' 2 278 277
458 CONVEX 109 'GT_PK(2,1)' 82 80 103
459 CONVEX 110 'GT_PK(2,1)' 33 2 12
460 CONVEX 111 'GT_PK(2,1)' 182 173 176
461 CONVEX 112 'GT_PK(2,1)' 227 182 176
462 CONVEX 113 'GT_PK(2,1)' 182 227 228
463 CONVEX 114 'GT_PK(2,1)' 173 182 180
464 CONVEX 115 'GT_PK(2,1)' 180 182 188
465 CONVEX 116 'GT_PK(2,1)' 188 182 228
466 CONVEX 117 'GT_PK(2,1)' 166 173 163
467 CONVEX 118 'GT_PK(2,1)' 173 166 176
468 CONVEX 119 'GT_PK(2,1)' 86 67 85
469 CONVEX 120 'GT_PK(2,1)' 67 86 69
470 CONVEX 121 'GT_PK(2,1)' 102 86 85
471 CONVEX 122 'GT_PK(2,1)' 86 102 105
472 CONVEX 123 'GT_PK(2,1)' 86 297 296
473 CONVEX 124 'GT_PK(2,1)' 69 86 296
474 CONVEX 125 'GT_PK(2,1)' 28 31 45
475 CONVEX 126 'GT_PK(2,1)' 31 28 13
476 CONVEX 127 'GT_PK(2,1)' 28 3 13
477 CONVEX 128 'GT_PK(2,1)' 3 283 282
478 CONVEX 129 'GT_PK(2,1)' 13 3 282
479 CONVEX 130 'GT_PK(2,1)' 3 28 29
480 CONVEX 131 'GT_PK(2,1)' 47 66 46
481 CONVEX 132 'GT_PK(2,1)' 66 47 65
482 CONVEX 133 'GT_PK(2,1)' 47 48 65
483 CONVEX 134 'GT_PK(2,1)' 48 47 29
484 CONVEX 135 'GT_PK(2,1)' 173 171 163
485 CONVEX 136 'GT_PK(2,1)' 222 219 236
486 CONVEX 137 'GT_PK(2,1)' 219 235 236
487 CONVEX 138 'GT_PK(2,1)' 235 219 217
488 CONVEX 139 'GT_PK(2,1)' 217 219 215
489 CONVEX 140 'GT_PK(2,1)' 173 180 171
490 CONVEX 141 'GT_PK(2,1)' 201 195 230
491 CONVEX 142 'GT_PK(2,1)' 241 221 223
492 CONVEX 143 'GT_PK(2,1)' 221 241 220
493 CONVEX 144 'GT_PK(2,1)' 331 253 301
494 CONVEX 145 'GT_PK(2,1)' 129 134 138
495 CONVEX 146 'GT_PK(2,1)' 96 129 115
496 CONVEX 147 'GT_PK(2,1)' 318 125 317
497 CONVEX 148 'GT_PK(2,1)' 318 124 125
498 CONVEX 149 'GT_PK(2,1)' 305 304 157
499 CONVEX 150 'GT_PK(2,1)' 304 149 157
500 CONVEX 151 'GT_PK(2,1)' 149 255 145
501 CONVEX 152 'GT_PK(2,1)' 149 304 255
502 CONVEX 153 'GT_PK(2,1)' 129 96 112
503 CONVEX 154 'GT_PK(2,1)' 134 129 112
504 CONVEX 155 'GT_PK(2,1)' 78 68 89
505 CONVEX 156 'GT_PK(2,1)' 98 78 89
506 CONVEX 157 'GT_PK(2,1)' 115 130 109
507 CONVEX 158 'GT_PK(2,1)' 109 130 116
508 CONVEX 159 'GT_PK(2,1)' 146 148 156
509 CONVEX 160 'GT_PK(2,1)' 41 43 22
510 CONVEX 161 'GT_PK(2,1)' 59 41 44
511 CONVEX 162 'GT_PK(2,1)' 59 78 80
512 CONVEX 163 'GT_PK(2,1)' 68 59 44
513 CONVEX 164 'GT_PK(2,1)' 78 59 68
514 CONVEX 165 'GT_PK(2,1)' 146 156 153
515 CONVEX 166 'GT_PK(2,1)' 5 276 275
516 CONVEX 167 'GT_PK(2,1)' 52 72 51
517 CONVEX 168 'GT_PK(2,1)' 32 52 51
518 CONVEX 169 'GT_PK(2,1)' 54 52 34
519 CONVEX 170 'GT_PK(2,1)' 52 32 34
520 CONVEX 171 'GT_PK(2,1)' 139 147 145
521 CONVEX 172 'GT_PK(2,1)' 147 151 158
522 CONVEX 173 'GT_PK(2,1)' 255 135 145
523 CONVEX 174 'GT_PK(2,1)' 135 139 145
524 CONVEX 175 'GT_PK(2,1)' 4 1 20
525 CONVEX 176 'GT_PK(2,1)' 19 1 258
526 CONVEX 177 'GT_PK(2,1)' 1 4 260
527 CONVEX 178 'GT_PK(2,1)' 40 71 57
528 CONVEX 179 'GT_PK(2,1)' 71 40 56
529 CONVEX 180 'GT_PK(2,1)' 1 36 20
530 CONVEX 181 'GT_PK(2,1)' 36 1 19
531 CONVEX 182 'GT_PK(2,1)' 36 40 20
532 CONVEX 183 'GT_PK(2,1)' 40 36 56
533 CONVEX 184 'GT_PK(2,1)' 58 247 90
534 CONVEX 185 'GT_PK(2,1)' 106 82 103
535 CONVEX 186 'GT_PK(2,1)' 62 81 79
536 CONVEX 187 'GT_PK(2,1)' 79 81 99
537 CONVEX 188 'GT_PK(2,1)' 81 62 60
538 CONVEX 189 'GT_PK(2,1)' 88 81 60
539 CONVEX 190 'GT_PK(2,1)' 70 88 60
540 CONVEX 191 'GT_PK(2,1)' 281 13 282
541 CONVEX 192 'GT_PK(2,1)' 142 146 153
542 CONVEX 193 'GT_PK(2,1)' 281 280 13
543 CONVEX 194 'GT_PK(2,1)' 300 299 105
544 CONVEX 195 'GT_PK(2,1)' 120 105 118
545 CONVEX 196 'GT_PK(2,1)' 120 300 105
546 CONVEX 197 'GT_PK(2,1)' 81 107 99
547 CONVEX 198 'GT_PK(2,1)' 107 81 88
548 CONVEX 199 'GT_PK(2,1)' 83 100 84
549 CONVEX 200 'GT_PK(2,1)' 9 3 29
550 CONVEX 201 'GT_PK(2,1)' 285 9 6
551 CONVEX 202 'GT_PK(2,1)' 284 9 285
552 CONVEX 203 'GT_PK(2,1)' 9 284 283
553 CONVEX 204 'GT_PK(2,1)' 3 9 283
554 CONVEX 205 'GT_PK(2,1)' 26 25 46
555 CONVEX 206 'GT_PK(2,1)' 25 47 46
556 CONVEX 207 'GT_PK(2,1)' 47 25 29
557 CONVEX 208 'GT_PK(2,1)' 25 26 6
558 CONVEX 209 'GT_PK(2,1)' 9 25 6
559 CONVEX 210 'GT_PK(2,1)' 25 9 29
560 CONVEX 211 'GT_PK(2,1)' 234 235 217
561 CONVEX 212 'GT_PK(2,1)' 42 33 50
562 CONVEX 213 'GT_PK(2,1)' 50 33 30
563 CONVEX 214 'GT_PK(2,1)' 30 33 12
564 CONVEX 215 'GT_PK(2,1)' 234 213 233
565 CONVEX 216 'GT_PK(2,1)' 213 234 217
566 CONVEX 217 'GT_PK(2,1)' 199 205 196
567 CONVEX 218 'GT_PK(2,1)' 205 202 196
568 CONVEX 219 'GT_PK(2,1)' 202 192 196
569 CONVEX 220 'GT_PK(2,1)' 192 202 198
570 CONVEX 221 'GT_PK(2,1)' 231 201 230
571 CONVEX 222 'GT_PK(2,1)' 231 232 201
572 CONVEX 223 'GT_PK(2,1)' 62 42 60
573 CONVEX 224 'GT_PK(2,1)' 42 62 45
574 CONVEX 225 'GT_PK(2,1)' 31 42 45
575 CONVEX 226 'GT_PK(2,1)' 186 184 177
576 CONVEX 227 'GT_PK(2,1)' 124 319 320
577 CONVEX 228 'GT_PK(2,1)' 318 319 124
578 CONVEX 229 'GT_PK(2,1)' 42 50 60
579 CONVEX 230 'GT_PK(2,1)' 171 180 177
580 CONVEX 231 'GT_PK(2,1)' 180 188 186
581 CONVEX 232 'GT_PK(2,1)' 180 186 177
582 CONVEX 233 'GT_PK(2,1)' 229 188 228
583 CONVEX 234 'GT_PK(2,1)' 126 313 314
584 CONVEX 235 'GT_PK(2,1)' 104 126 103
585 CONVEX 236 'GT_PK(2,1)' 104 78 98
586 CONVEX 237 'GT_PK(2,1)' 80 104 103
587 CONVEX 238 'GT_PK(2,1)' 78 104 80
588 CONVEX 239 'GT_PK(2,1)' 169 165 158
589 CONVEX 240 'GT_PK(2,1)' 188 229 195
590 CONVEX 241 'GT_PK(2,1)' 195 229 230
591 CONVEX 242 'GT_PK(2,1)' 331 301 120
592 CONVEX 243 'GT_PK(2,1)' 330 331 120
593 CONVEX 244 'GT_PK(2,1)' 328 329 118
594 CONVEX 245 'GT_PK(2,1)' 329 330 118
595 CONVEX 246 'GT_PK(2,1)' 76 96 91
596 CONVEX 247 'GT_PK(2,1)' 96 76 90
597 CONVEX 248 'GT_PK(2,1)' 219 218 215
598 CONVEX 249 'GT_PK(2,1)' 221 218 222
599 CONVEX 250 'GT_PK(2,1)' 218 219 222
600 CONVEX 251 'GT_PK(2,1)' 218 212 215
601 CONVEX 252 'GT_PK(2,1)' 112 96 90
602 CONVEX 253 'GT_PK(2,1)' 96 115 91
603 CONVEX 254 'GT_PK(2,1)' 159 160 168
604 CONVEX 255 'GT_PK(2,1)' 160 159 152
605 CONVEX 256 'GT_PK(2,1)' 325 326 122
606 CONVEX 257 'GT_PK(2,1)' 168 160 225
607 CONVEX 258 'GT_PK(2,1)' 150 160 152
608 CONVEX 259 'GT_PK(2,1)' 121 322 323
609 CONVEX 260 'GT_PK(2,1)' 128 107 124
610 CONVEX 261 'GT_PK(2,1)' 128 124 320
611 CONVEX 262 'GT_PK(2,1)' 321 128 320
612 CONVEX 263 'GT_PK(2,1)' 128 322 121
613 CONVEX 264 'GT_PK(2,1)' 322 128 321
614 CONVEX 265 'GT_PK(2,1)' 128 121 99
615 CONVEX 266 'GT_PK(2,1)' 107 128 99
616 CONVEX 267 'GT_PK(2,1)' 14 32 11
617 CONVEX 268 'GT_PK(2,1)' 14 17 34
618 CONVEX 269 'GT_PK(2,1)' 32 14 34
619 CONVEX 270 'GT_PK(2,1)' 14 267 17
620 CONVEX 271 'GT_PK(2,1)' 14 268 267
621 CONVEX 272 'GT_PK(2,1)' 268 14 269
622 CONVEX 273 'GT_PK(2,1)' 14 11 269
623 CONVEX 274 'GT_PK(2,1)' 7 23 8
624 CONVEX 275 'GT_PK(2,1)' 272 7 8
625 CONVEX 276 'GT_PK(2,1)' 271 7 272
626 CONVEX 277 'GT_PK(2,1)' 24 51 44
627 CONVEX 278 'GT_PK(2,1)' 24 32 51
628 CONVEX 279 'GT_PK(2,1)' 23 24 44
629 CONVEX 280 'GT_PK(2,1)' 7 24 23
630 CONVEX 281 'GT_PK(2,1)' 32 24 11
631 CONVEX 282 'GT_PK(2,1)' 24 7 11
632 CONVEX 283 'GT_PK(2,1)' 11 270 269
633 CONVEX 284 'GT_PK(2,1)' 134 250 251
634 CONVEX 285 'GT_PK(2,1)' 7 270 11
635 CONVEX 286 'GT_PK(2,1)' 270 7 271
636 CONVEX 287 'GT_PK(2,1)' 276 12 277
637 CONVEX 288 'GT_PK(2,1)' 12 276 5
638 CONVEX 289 'GT_PK(2,1)' 82 61 80
639 CONVEX 290 'GT_PK(2,1)' 61 59 80
640 CONVEX 291 'GT_PK(2,1)' 61 82 63
641 CONVEX 292 'GT_PK(2,1)' 59 61 41
642 CONVEX 293 'GT_PK(2,1)' 43 61 63
643 CONVEX 294 'GT_PK(2,1)' 61 43 41
644 CONVEX 295 'GT_PK(2,1)' 37 55 54
645 CONVEX 296 'GT_PK(2,1)' 35 16 18
646 CONVEX 297 'GT_PK(2,1)' 35 37 16
647 CONVEX 298 'GT_PK(2,1)' 35 55 37
648 CONVEX 299 'GT_PK(2,1)' 55 35 53
649 CONVEX 300 'GT_PK(2,1)' 133 111 116
650 CONVEX 301 'GT_PK(2,1)' 111 95 116
651 CONVEX 302 'GT_PK(2,1)' 95 111 92
652 CONVEX 303 'GT_PK(2,1)' 123 135 255
653 CONVEX 304 'GT_PK(2,1)' 313 123 255
654 CONVEX 305 'GT_PK(2,1)' 123 313 126
655 CONVEX 306 'GT_PK(2,1)' 123 104 98
656 CONVEX 307 'GT_PK(2,1)' 104 123 126
657 CONVEX 308 'GT_PK(2,1)' 113 98 89
658 CONVEX 309 'GT_PK(2,1)' 113 123 98
659 CONVEX 310 'GT_PK(2,1)' 123 113 135
660 CONVEX 311 'GT_PK(2,1)' 95 109 116
661 CONVEX 312 'GT_PK(2,1)' 71 77 57
662 CONVEX 313 'GT_PK(2,1)' 77 71 91
663 CONVEX 314 'GT_PK(2,1)' 109 77 91
664 CONVEX 315 'GT_PK(2,1)' 77 109 95
665 CONVEX 316 'GT_PK(2,1)' 94 73 92
666 CONVEX 317 'GT_PK(2,1)' 55 73 54
667 CONVEX 318 'GT_PK(2,1)' 93 94 110
668 CONVEX 319 'GT_PK(2,1)' 93 113 89
669 CONVEX 320 'GT_PK(2,1)' 113 93 110
670 CONVEX 321 'GT_PK(2,1)' 72 93 89
671 CONVEX 322 'GT_PK(2,1)' 259 1 260
672 CONVEX 323 'GT_PK(2,1)' 1 259 258
673 CONVEX 324 'GT_PK(2,1)' 250 134 112
674 CONVEX 325 'GT_PK(2,1)' 302 134 251
675 CONVEX 326 'GT_PK(2,1)' 250 112 249
676 CONVEX 327 'GT_PK(2,1)' 76 71 56
677 CONVEX 328 'GT_PK(2,1)' 58 76 56
678 CONVEX 329 'GT_PK(2,1)' 76 58 90
679 CONVEX 330 'GT_PK(2,1)' 71 76 91
680 CONVEX 331 'GT_PK(2,1)' 249 112 90
681 CONVEX 332 'GT_PK(2,1)' 156 163 153
682 CONVEX 333 'GT_PK(2,1)' 226 168 225
683 CONVEX 334 'GT_PK(2,1)' 176 168 226
684 CONVEX 335 'GT_PK(2,1)' 106 87 82
685 CONVEX 336 'GT_PK(2,1)' 70 87 88
686 CONVEX 337 'GT_PK(2,1)' 82 87 63
687 CONVEX 338 'GT_PK(2,1)' 87 70 63
688 CONVEX 339 'GT_PK(2,1)' 299 298 105
689 CONVEX 340 'GT_PK(2,1)' 86 298 297
690 CONVEX 341 'GT_PK(2,1)' 298 86 105
691 CONVEX 342 'GT_PK(2,1)' 143 150 152
692 CONVEX 343 'GT_PK(2,1)' 150 143 138
693 CONVEX 344 'GT_PK(2,1)' 148 143 152
694 CONVEX 345 'GT_PK(2,1)' 330 120 118
695 CONVEX 346 'GT_PK(2,1)' 100 101 84
696 CONVEX 347 'GT_PK(2,1)' 84 101 85
697 CONVEX 348 'GT_PK(2,1)' 101 102 85
698 CONVEX 349 'GT_PK(2,1)' 101 100 122
699 CONVEX 350 'GT_PK(2,1)' 100 117 122
700 CONVEX 351 'GT_PK(2,1)' 117 121 323
701 CONVEX 352 'GT_PK(2,1)' 324 117 323
702 CONVEX 353 'GT_PK(2,1)' 117 325 122
703 CONVEX 354 'GT_PK(2,1)' 117 324 325
704 CONVEX 355 'GT_PK(2,1)' 208 232 233
705 CONVEX 356 'GT_PK(2,1)' 213 208 233
706 CONVEX 357 'GT_PK(2,1)' 208 213 205
707 CONVEX 358 'GT_PK(2,1)' 199 208 205
708 CONVEX 359 'GT_PK(2,1)' 232 208 201
709 CONVEX 360 'GT_PK(2,1)' 208 199 201
710 CONVEX 361 'GT_PK(2,1)' 213 211 205
711 CONVEX 362 'GT_PK(2,1)' 211 202 205
712 CONVEX 363 'GT_PK(2,1)' 211 217 215
713 CONVEX 364 'GT_PK(2,1)' 211 213 217
714 CONVEX 365 'GT_PK(2,1)' 199 193 201
715 CONVEX 366 'GT_PK(2,1)' 193 195 201
716 CONVEX 367 'GT_PK(2,1)' 193 186 195
717 CONVEX 368 'GT_PK(2,1)' 186 193 184
718 CONVEX 369 'GT_PK(2,1)' 181 187 178
719 CONVEX 370 'GT_PK(2,1)' 192 187 196
720 CONVEX 371 'GT_PK(2,1)' 187 183 178
721 CONVEX 372 'GT_PK(2,1)' 183 187 192
722 CONVEX 373 'GT_PK(2,1)' 169 171 177
723 CONVEX 374 'GT_PK(2,1)' 127 126 314
724 CONVEX 375 'GT_PK(2,1)' 315 127 314
725 CONVEX 376 'GT_PK(2,1)' 126 127 103
726 CONVEX 377 'GT_PK(2,1)' 125 127 316
727 CONVEX 378 'GT_PK(2,1)' 127 315 316
728 CONVEX 379 'GT_PK(2,1)' 127 106 103
729 CONVEX 380 'GT_PK(2,1)' 106 127 125
730 CONVEX 381 'GT_PK(2,1)' 165 154 158
731 CONVEX 382 'GT_PK(2,1)' 154 147 158
732 CONVEX 383 'GT_PK(2,1)' 154 149 145
733 CONVEX 384 'GT_PK(2,1)' 147 154 145
734 CONVEX 385 'GT_PK(2,1)' 157 167 164
735 CONVEX 386 'GT_PK(2,1)' 172 181 178
736 CONVEX 387 'GT_PK(2,1)' 167 172 178
737 CONVEX 388 'GT_PK(2,1)' 141 142 151
738 CONVEX 389 'GT_PK(2,1)' 151 142 153
739 CONVEX 390 'GT_PK(2,1)' 142 141 133
740 CONVEX 391 'GT_PK(2,1)' 50 70 60
741 CONVEX 392 'GT_PK(2,1)' 306 305 164
742 CONVEX 393 'GT_PK(2,1)' 170 306 164
743 CONVEX 394 'GT_PK(2,1)' 307 306 170
744 CONVEX 395 'GT_PK(2,1)' 202 207 198
745 CONVEX 396 'GT_PK(2,1)' 211 207 202
746 CONVEX 397 'GT_PK(2,1)' 212 207 215
747 CONVEX 398 'GT_PK(2,1)' 207 211 215
748 CONVEX 399 'GT_PK(2,1)' 216 218 221
749 CONVEX 400 'GT_PK(2,1)' 216 212 218
750 CONVEX 401 'GT_PK(2,1)' 216 209 212
751 CONVEX 402 'GT_PK(2,1)' 216 221 220
752 CONVEX 403 'GT_PK(2,1)' 240 216 220
753 CONVEX 404 'GT_PK(2,1)' 183 174 178
754 CONVEX 405 'GT_PK(2,1)' 174 167 178
755 CONVEX 406 'GT_PK(2,1)' 174 170 164
756 CONVEX 407 'GT_PK(2,1)' 167 174 164
757 CONVEX 408 'GT_PK(2,1)' 189 183 192
758 CONVEX 409 'GT_PK(2,1)' 189 192 198
759 CONVEX 410 'GT_PK(2,1)' 194 189 198
760 CONVEX 411 'GT_PK(2,1)' 70 50 63
761 CONVEX 412 'GT_PK(2,1)' 50 43 63
762 CONVEX 413 'GT_PK(2,1)' 50 30 43
763 CONVEX 414 'GT_PK(2,1)' 310 309 191
764 CONVEX 415 'GT_PK(2,1)' 210 203 206
765 CONVEX 416 'GT_PK(2,1)' 210 239 238
766 CONVEX 417 'GT_PK(2,1)' 203 210 238
767 CONVEX 418 'GT_PK(2,1)' 203 312 311
768 CONVEX 419 'GT_PK(2,1)' 307 179 308
769 CONVEX 420 'GT_PK(2,1)' 332 312 238
770 CONVEX 421 'GT_PK(2,1)' 312 203 238
771 CONVEX 422 'GT_PK(2,1)' 179 307 170
772 CONVEX 423 'GT_PK(2,1)' 179 185 308
773 CONVEX 424 'GT_PK(2,1)' 203 197 206
774 CONVEX 425 'GT_PK(2,1)' 197 203 311
775 CONVEX 426 'GT_PK(2,1)' 197 310 191
776 CONVEX 427 'GT_PK(2,1)' 310 197 311
777 CONVEX 428 'GT_PK(2,1)' 30 5 22
778 CONVEX 429 'GT_PK(2,1)' 30 12 5
779 CONVEX 430 'GT_PK(2,1)' 43 30 22
780 CONVEX 431 'GT_PK(2,1)' 0 31 13
781 CONVEX 432 'GT_PK(2,1)' 0 280 279
782 CONVEX 433 'GT_PK(2,1)' 280 0 13
783 CONVEX 434 'GT_PK(2,1)' 38 35 18
784 CONVEX 435 'GT_PK(2,1)' 4 38 18
785 CONVEX 436 'GT_PK(2,1)' 38 4 20
786 CONVEX 437 'GT_PK(2,1)' 35 38 53
787 CONVEX 438 'GT_PK(2,1)' 40 38 20
788 CONVEX 439 'GT_PK(2,1)' 53 38 57
789 CONVEX 440 'GT_PK(2,1)' 38 40 57
790 CONVEX 441 'GT_PK(2,1)' 132 131 110
791 CONVEX 442 'GT_PK(2,1)' 131 113 110
792 CONVEX 443 'GT_PK(2,1)' 113 131 135
793 CONVEX 444 'GT_PK(2,1)' 135 131 139
794 CONVEX 445 'GT_PK(2,1)' 131 132 139
795 CONVEX 446 'GT_PK(2,1)' 132 141 139
796 CONVEX 447 'GT_PK(2,1)' 141 147 139
797 CONVEX 448 'GT_PK(2,1)' 147 141 151
798 CONVEX 449 'GT_PK(2,1)' 141 132 133
799 CONVEX 450 'GT_PK(2,1)' 132 114 133
800 CONVEX 451 'GT_PK(2,1)' 114 111 133
801 CONVEX 452 'GT_PK(2,1)' 114 132 110
802 CONVEX 453 'GT_PK(2,1)' 94 114 110
803 CONVEX 454 'GT_PK(2,1)' 114 94 92
804 CONVEX 455 'GT_PK(2,1)' 111 114 92
805 CONVEX 456 'GT_PK(2,1)' 75 55 53
806 CONVEX 457 'GT_PK(2,1)' 75 73 55
807 CONVEX 458 'GT_PK(2,1)' 75 53 57
808 CONVEX 459 'GT_PK(2,1)' 77 75 57
809 CONVEX 460 'GT_PK(2,1)' 75 77 95
810 CONVEX 461 'GT_PK(2,1)' 75 95 92
811 CONVEX 462 'GT_PK(2,1)' 73 75 92
812 CONVEX 463 'GT_PK(2,1)' 74 93 72
813 CONVEX 464 'GT_PK(2,1)' 93 74 94
814 CONVEX 465 'GT_PK(2,1)' 74 73 94
815 CONVEX 466 'GT_PK(2,1)' 73 74 54
816 CONVEX 467 'GT_PK(2,1)' 74 52 54
817 CONVEX 468 'GT_PK(2,1)' 52 74 72
818 CONVEX 469 'GT_PK(2,1)' 58 246 247
819 CONVEX 470 'GT_PK(2,1)' 245 246 58
820 CONVEX 471 'GT_PK(2,1)' 185 179 189
821 CONVEX 472 'GT_PK(2,1)' 179 174 183
822 CONVEX 473 'GT_PK(2,1)' 174 179 170
823 CONVEX 474 'GT_PK(2,1)' 189 179 183
824 CONVEX 475 'GT_PK(2,1)' 39 58 56
825 CONVEX 476 'GT_PK(2,1)' 39 245 58
826 CONVEX 477 'GT_PK(2,1)' 36 39 56
827 CONVEX 478 'GT_PK(2,1)' 39 244 245
828 CONVEX 479 'GT_PK(2,1)' 39 36 19
829 CONVEX 480 'GT_PK(2,1)' 39 19 243
830 CONVEX 481 'GT_PK(2,1)' 244 39 243
831 CONVEX 482 'GT_PK(2,1)' 115 109 91
832 CONVEX 483 'GT_PK(2,1)' 166 163 156
833 CONVEX 484 'GT_PK(2,1)' 166 168 176
834 CONVEX 485 'GT_PK(2,1)' 162 151 153
835 CONVEX 486 'GT_PK(2,1)' 163 162 153
836 CONVEX 487 'GT_PK(2,1)' 151 162 158
837 CONVEX 488 'GT_PK(2,1)' 171 162 163
838 CONVEX 489 'GT_PK(2,1)' 162 169 158
839 CONVEX 490 'GT_PK(2,1)' 162 171 169
840 CONVEX 491 'GT_PK(2,1)' 148 159 156
841 CONVEX 492 'GT_PK(2,1)' 159 148 152
842 CONVEX 493 'GT_PK(2,1)' 159 166 156
843 CONVEX 494 'GT_PK(2,1)' 166 159 168
844 CONVEX 495 'GT_PK(2,1)' 108 87 106
845 CONVEX 496 'GT_PK(2,1)' 107 108 124
846 CONVEX 497 'GT_PK(2,1)' 108 107 88
847 CONVEX 498 'GT_PK(2,1)' 87 108 88
848 CONVEX 499 'GT_PK(2,1)' 124 108 125
849 CONVEX 500 'GT_PK(2,1)' 108 106 125
850 CONVEX 501 'GT_PK(2,1)' 308 185 309
851 CONVEX 502 'GT_PK(2,1)' 120 301 300
852 CONVEX 503 'GT_PK(2,1)' 119 101 122
853 CONVEX 504 'GT_PK(2,1)' 102 119 118
854 CONVEX 505 'GT_PK(2,1)' 101 119 102
855 CONVEX 506 'GT_PK(2,1)' 119 328 118
856 CONVEX 507 'GT_PK(2,1)' 328 119 327
857 CONVEX 508 'GT_PK(2,1)' 119 326 327
858 CONVEX 509 'GT_PK(2,1)' 326 119 122
859 CONVEX 510 'GT_PK(2,1)' 97 117 100
860 CONVEX 511 'GT_PK(2,1)' 97 79 99
861 CONVEX 512 'GT_PK(2,1)' 121 97 99
862 CONVEX 513 'GT_PK(2,1)' 117 97 121
863 CONVEX 514 'GT_PK(2,1)' 97 83 79
864 CONVEX 515 'GT_PK(2,1)' 97 100 83
865 CONVEX 516 'GT_PK(2,1)' 190 193 199
866 CONVEX 517 'GT_PK(2,1)' 190 199 196
867 CONVEX 518 'GT_PK(2,1)' 190 181 184
868 CONVEX 519 'GT_PK(2,1)' 193 190 184
869 CONVEX 520 'GT_PK(2,1)' 187 190 196
870 CONVEX 521 'GT_PK(2,1)' 190 187 181
871 CONVEX 522 'GT_PK(2,1)' 186 188 195
872 CONVEX 523 'GT_PK(2,1)' 227 176 226
873 CONVEX 524 'GT_PK(2,1)' 309 185 191
874 CONVEX 525 'GT_PK(2,1)' 185 189 194
875 CONVEX 526 'GT_PK(2,1)' 161 154 165
876 CONVEX 527 'GT_PK(2,1)' 161 167 157
877 CONVEX 528 'GT_PK(2,1)' 149 161 157
878 CONVEX 529 'GT_PK(2,1)' 154 161 149
879 CONVEX 530 'GT_PK(2,1)' 172 161 165
880 CONVEX 531 'GT_PK(2,1)' 161 172 167
881 CONVEX 532 'GT_PK(2,1)' 181 175 184
882 CONVEX 533 'GT_PK(2,1)' 172 175 181
883 CONVEX 534 'GT_PK(2,1)' 184 175 177
884 CONVEX 535 'GT_PK(2,1)' 175 172 165
885 CONVEX 536 'GT_PK(2,1)' 175 169 177
886 CONVEX 537 'GT_PK(2,1)' 175 165 169
887 CONVEX 538 'GT_PK(2,1)' 200 209 206
888 CONVEX 539 'GT_PK(2,1)' 197 200 206
889 CONVEX 540 'GT_PK(2,1)' 194 200 191
890 CONVEX 541 'GT_PK(2,1)' 200 197 191
891 CONVEX 542 'GT_PK(2,1)' 204 207 212
892 CONVEX 543 'GT_PK(2,1)' 209 204 212
893 CONVEX 544 'GT_PK(2,1)' 207 204 198
894 CONVEX 545 'GT_PK(2,1)' 200 204 209
895 CONVEX 546 'GT_PK(2,1)' 204 194 198
896 CONVEX 547 'GT_PK(2,1)' 204 200 194
897 CONVEX 548 'GT_PK(2,1)' 214 216 240
898 CONVEX 549 'GT_PK(2,1)' 216 214 209
899 CONVEX 550 'GT_PK(2,1)' 214 240 239
900 CONVEX 551 'GT_PK(2,1)' 210 214 239
901 CONVEX 552 'GT_PK(2,1)' 209 214 206
902 CONVEX 553 'GT_PK(2,1)' 214 210 206
903 CONVEX 554 'GT_PK(2,1)' 185 194 191
904
905 END MESH STRUCTURE DESCRIPTION
+0
-130
interface/src/scilab/demos/demo_bilaplacian.sce less more
0 lines(0);
1 stacksize('max');
2
3 if getos()=='Windows' then
4 // Under Windows, all the trace messages are available in the dos console
5 // Under Linuxs, all the trace messages are redirected to the Scilab console
6 consolebox('on');
7 end
8 gf_util('trace level',3);
9 gf_util('warning level',3);
10
11 gf_workspace('clear all');
12
13 printf("demo bilaplacian started\n");
14
15 N = 2;
16 NX = 10;
17 NY = 14;
18
19 m=gf_mesh('regular simplices',0:0.4/NX:0.4, 0:1.2/NY:1.2);
20 // m=gf_mesh('cartesian',0:1/NX:1, 0:1/NY:1);
21 // m=gf_mesh('cartesian',0:0.4/NX:0.4, 0:1.2/NY:1.2);
22
23
24 useKL = 1; // use the Kirchhoff-Love plate model, or just a pure
25 // bilaplacian problem
26
27 D = 1.0; // Flexion modulus
28
29 if useKL then NU=0.3; end; // poisson ratio (0 <= NU <= 1)
30
31 mim = gf_mesh_im(m);
32 mfu = gf_mesh_fem(m);
33 mfd = gf_mesh_fem(m);
34
35 gf_mesh_im_set(mim, 'integ',gf_integ('IM_TRIANGLE(13)'));
36 gf_mesh_fem_set(mfu, 'fem',gf_fem('FEM_ARGYRIS'));
37 gf_mesh_fem_set(mfd, 'fem',gf_fem('FEM_PK(2,5)'));
38
39 //gf_mesh_im_set(mim, 'integ',gf_integ('IM_GAUSS_PARALLELEPIPED(2,10)'));
40 //gf_mesh_fem_set(mfu, 'fem',gf_fem('FEM_REDUCED_QUADC1_COMPOSITE'));
41 //gf_mesh_fem_set(mfd, 'fem',gf_fem('FEM_QK(2,3)'));
42
43 flst = gf_mesh_get(m, 'outer_faces');
44 n = gf_mesh_get(m, 'normal of faces', flst);
45
46 ftop = flst(:,find(abs(n(1,:)-1) < 1e-5));
47 fbottom = flst(:,find(abs(n(1,:)+1) < 1e-5));
48 fleft = flst(:,find(abs(n(2,:)+1) < 1e-5));
49 fright = flst(:,find(abs(n(2,:)-1) < 1e-5));
50
51 FORCE_BOUNDARY = 1;
52 MOMENTUM_BOUNDARY = 2;
53 SIMPLE_SUPPORT_BOUNDARY = 3;
54 CLAMPED_BOUNDARY = 4;
55
56 gf_mesh_set(m, 'region', FORCE_BOUNDARY, fright);
57 gf_mesh_set(m, 'region', SIMPLE_SUPPORT_BOUNDARY, [fleft ftop fbottom]);
58 gf_mesh_set(m, 'region', CLAMPED_BOUNDARY, [fleft ftop fbottom]);
59 gf_mesh_set(m, 'region', MOMENTUM_BOUNDARY, [ftop fbottom]);
60
61 FT = 2.;
62 sol_u = gf_mesh_fem_get_eval(mfd,list(list(sprintf('sin(%g*(x+y))',FT))));
63 sol_f = sol_u*FT*FT*FT*FT*N*N*D;
64 sol_lapl_u = -FT*FT*sol_u*N;
65
66 md = gf_model('real');
67 gf_model_set(md, 'add fem variable', 'u', mfu);
68
69 if useKL
70 gf_model_set(md, 'add initialized data', 'D', [D]);
71 gf_model_set(md, 'add initialized data', 'nu', [NU]);
72 gf_model_set(md, 'add Kirchhoff-Love plate brick', mim, 'u', 'D', 'nu');
73 M = zeros(N,N, gf_mesh_fem_get(mfd,'nbdof'));
74 else
75 gf_model_set(md, 'add initialized data', 'D', [D]);
76 gf_model_set(md, 'add bilaplacian brick', mim, 'u', 'D');
77 M = zeros(1, gf_mesh_fem_get(mfd, 'nbdof'));
78 end;
79
80 gf_model_set(md, 'add initialized fem data', 'VolumicData', mfd, ...
81 gf_mesh_fem_get_eval(mfd, list(list('1-(x-y).^2'))));
82 gf_model_set(md, 'add source term brick', mim, 'u', 'VolumicData');
83
84 gf_model_set(md, 'add initialized fem data', 'M', mfd, M);
85 gf_model_set(md, 'add normal derivative source term brick', mim, 'u', ...
86 'M', MOMENTUM_BOUNDARY);
87
88 if (useKL) then
89 H = zeros(N, N, gf_mesh_fem_get(mfd, 'nbdof'));
90 F = zeros(N, gf_mesh_fem_get(mfd, 'nbdof'));
91 gf_model_set(md, 'add initialized fem data', 'H', mfd, H);
92 gf_model_set(md, 'add initialized fem data', 'F', mfd, F);
93 gf_model_set(md, 'add Kirchhoff-Love Neumann term brick', mim, 'u', ...
94 'H', 'F', FORCE_BOUNDARY);
95 else
96 F = zeros(1, N, gf_mesh_fem_get(mfd, 'nbdof'));
97 gf_model_set(md, 'add initialized fem data', 'F', mfd, F);
98 gf_model_set(md, 'add normal source term brick', mim, 'u', 'F', ...
99 FORCE_BOUNDARY);
100 end;
101
102 gf_model_set(md, ...
103 'add normal derivative Dirichlet condition with penalization', ...
104 mim, 'u', 1e10, CLAMPED_BOUNDARY);
105
106 gf_model_set(md, 'add Dirichlet condition with penalization', ...
107 mim, 'u', 1e10, SIMPLE_SUPPORT_BOUNDARY);
108
109 t0 = timer();
110 gf_model_get(md, 'solve', 'noisy');
111 U = gf_model_get(md, 'variable', 'u');
112 disp(sprintf('solve done in %.2f sec', timer()-t0));
113
114 h = scf();
115 h.color_map = jetcolormap(255);
116 drawlater;
117 gf_plot(mfu,U,'mesh','on');
118 colorbar(min(U),max(U));
119 h.color_map = jetcolormap(255);
120 drawnow;
121
122 disp(sprintf('H2 norm of the solution: %g', gf_compute(mfu,U,'H2 norm', mim)));
123
124 //err=gf_compute(mfu,U,'interpolate on',mfd) - sol_u;
125
126 //disp(sprintf('H1 norm of the error: %g', gf_compute(mfd,err,'H1 norm', mim)));
127 //disp(sprintf('H2 norm of the error: %g', gf_compute(mfd,err,'H2 norm', mim)));
128
129 printf("demo bilaplacian terminated\n");
+0
-182
interface/src/scilab/demos/demo_continuation.sce less more
0 // Scilab GetFEM++ interface
1 // Copyright (C) 2011-2015 Tomas Ligursky, Yves Renard.
2 //
3 // This file is a part of GetFEM++
4 //
5 // GetFEM++ is free software; you can redistribute it and/or modify it
6 // under the terms of the GNU Lesser General Public License as published
7 // by the Free Software Foundation; either version 2.1 of the License, or
8 // (at your option) any later version.
9 // This program is distributed in the hope that it will be useful, but
10 // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
12 // License for more details.
13 // You should have received a copy of the GNU Lesser General Public License
14 // along with this program; if not, write to the Free Software Foundation,
15 // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
16 //
17 // Simple example of a bifurcation problem:
18 // -Delta(u) + u = lambda * exp(u).
19 //
20 // This program is used to check that scilab-getfem is working. This is also
21 // a good example of use of GetFEM++.
22 //
23
24 gf_workspace('clear all');
25 lines(0);
26 stacksize('max');
27
28 if getos()=='Windows' then
29 // Under Windows, all the trace messages are available in the dos console
30 // Under Linux, all the trace messages are redirected to the Scilab console
31 consolebox('on');
32 end
33 gf_util('trace level', 1);
34 gf_util('warning level', 3);
35
36 // continuation data
37 datapath = get_absolute_file_path('demo_continuation.sce') + 'data/';
38 // If the file name bp_char is non-empty, the continuation will be started
39 // from the bifurcation point and the tangent with the index ind_branch
40 // saved there. Direction of the initial tangent will be determined by
41 // direction. Otherwise, the continuation will be initialised according to
42 // direction and lambda0.
43 bp_char = '';
44 //bp_char = 'continuation_step_62_bp.mat';
45 ind_branch = 2;
46 direction = 1;
47 lambda0 = 0;
48 nbstep = 80;
49
50 h_init = 2e-2;
51 h_max = 2e-1;
52 h_min = 2e-5;
53 mincos = 0.997;
54 noisy = 'noisy';
55
56 // create a simple cartesian mesh
57 m = gf_mesh('cartesian', [0:.1:1]);
58
59 // create a mesh_fem for a field of dimension 1 (i.e. a scalar field)
60 mf = gf_mesh_fem(m, 1);
61 // assign the Q1 fem to all convexes of the mesh_fem,
62 gf_mesh_fem_set(mf, 'classical fem', 1);
63
64 // integration which will be used
65 mim = gf_mesh_im(m, 4);
66
67 // define the model
68 md = gf_model('real');
69 gf_model_set(md, 'add fem variable', 'u', mf);
70 gf_model_set(md, 'add Laplacian brick', mim, 'u');
71 gf_model_set(md, 'add data', 'lambda', 1);
72 gf_model_set(md, 'add nonlinear generic assembly brick', mim, ...
73 '(u-lambda*exp(u))*Test_u');
74
75
76 // initialise the continuation
77 scfac = 1 / gf_mesh_fem_get(mf, 'nbdof');
78 S = gf_cont_struct(md, 'lambda', scfac, 'h_init', h_init, 'h_max', h_max, ...
79 'h_min', h_min, 'min_cos', mincos, noisy, ...
80 'singularities', 2);
81
82 if (~isempty(bp_char)) then
83 load(datapath + bp_char);
84 U = U_bp; lambda = lambda_bp;
85 T_U = direction * T_U_bp(:, ind_branch);
86 T_lambda = direction * T_lambda_bp(ind_branch);
87 h = gf_cont_struct_get(S, 'init step size');
88 else
89 lambda = lambda0;
90 gf_model_set(md, 'variable', 'lambda', [lambda]);
91
92 if (~isempty(noisy)) then
93 printf('starting computing an initial point\n');
94 end
95 gf_model_get(md, 'solve', noisy, 'max_iter', 100);
96 U = gf_model_get(md, 'variable', 'u');
97 [T_U, T_lambda, h] = ...
98 gf_cont_struct_get(S, 'init Moore-Penrose continuation', ...
99 U, lambda, direction);
100 end
101
102 U_hist = zeros(1, nbstep + 1); lambda_hist = zeros(1, nbstep + 1);
103 U_hist(1) = U(1); lambda_hist(1) = lambda;
104 //tau = gf_cont_struct_get(S, 'bifurcation test function');
105 sing_out = [];
106
107 scf(0); drawlater; clf();
108 subplot(2,1,1);
109 plot(lambda_hist(1), U_hist(1), 'k.');
110 xtitle('', 'lambda', 'u(0)');
111 subplot(2,1,2)
112 if max(U)-min(U) < 1e-10 then
113 a = gca(); a.tight_limits = "on";
114 a.data_bounds = [0, min(U)-1; 1, max(U)+1];
115 end
116 gf_plot_1D(mf, U, 'style', 'k.-');
117 xtitle('', 'x', 'u');
118 drawnow;
119
120 //scf(1); drawlater; clf();
121 //plot(0, tau, 'k.');
122 //xtitle('', 'iteration', 'bifurcation test function');
123 //drawnow;
124
125 // continue from the initial point
126 for step = 1:nbstep
127 //sleep(1000);
128 printf('\nbeginning of step %d\n', step);
129 [U, lambda, T_U, T_lambda, h, h0, sing_label] = ...
130 gf_cont_struct_get(S, 'Moore-Penrose continuation',...
131 U, lambda, T_U, T_lambda, h);
132 if (h == 0) then
133 return
134 elseif (~isempty(sing_label)) then
135 if (sing_label == 'limit point') then
136 s = 'Step ' + sci2exp(step) + ': ' + sing_label;
137 elseif (sing_label == 'smooth bifurcation point') then
138 [U_bp, lambda_bp, T_U_bp, T_lambda_bp]...
139 = gf_cont_struct_get(S, 'sing_data');
140 s = 'Step ' + sci2exp(step) + ': ' + sing_label + ', '...
141 + sci2exp(size(T_U_bp, 2)) + ' branch(es) located';
142 save(datapath + 'continuation_step_' + sci2exp(step) + '_bp.mat',...
143 'U_bp', 'lambda_bp', 'T_U_bp', 'T_lambda_bp');
144 end
145 sing_out = [sing_out; s];
146 end
147
148 U_hist(step+1) = U(1); lambda_hist(step+1) = lambda;
149 // tau = gf_cont_struct_get(S, 'bifurcation test function');
150
151 scf(0); drawlater; clf();
152 subplot(2,1,1);
153 plot(lambda_hist(1:step+1), U_hist(1:step+1), 'k-');
154 plot(lambda_hist(1:step), U_hist(1:step), 'ko');
155 plot(lambda_hist(step+1), U_hist(step+1), 'k.');
156 xtitle('', 'lambda', 'u(0)');
157 subplot(2,1,2)
158 if max(U)-min(U) < 1e-10 then
159 a = gca(); a.tight_limits = "on";
160 a.data_bounds = [0, min(U)-1; 1, max(U)+1];
161 end
162 gf_plot_1D(mf, U, 'style', 'k.-');
163 xtitle('', 'x', 'u');
164 drawnow;
165
166 // scf(1); drawlater;
167 // plot(step, tau, 'k.');
168 // drawnow;
169
170 printf('end of step n° %d / %d\n', step, nbstep)
171 end
172
173 nsing = size(sing_out, 1);
174 if (nsing > 0) then
175 printf('\n------------------------------\n')
176 printf(' Detected singular points\n')
177 printf('------------------------------\n')
178 for i = 1:nsing
179 printf(sing_out(i) + '\n')
180 end
181 end
+0
-412
interface/src/scilab/demos/demo_continuation_block.sce less more
0 // Scilab GetFEM++ interface
1 // Copyright (C) 2013-2015 Tomas Ligursky, Yves Renard.
2 //
3 // This file is a part of GetFEM++
4 //
5 // GetFEM++ is free software; you can redistribute it and/or modify it
6 // under the terms of the GNU Lesser General Public License as published
7 // by the Free Software Foundation; either version 2.1 of the License, or
8 // (at your option) any later version.
9 // This program is distributed in the hope that it will be useful, but
10 // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
12 // License for more details.
13 // You should have received a copy of the GNU Lesser General Public License
14 // along with this program; if not, write to the Free Software Foundation,
15 // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
16 //
17 // Continuation and bifurcation of contact between a rectangular block and a
18 // rigid foundation.
19 //
20 // This program is used to check that scilab-getfem is working. This is also
21 // a good example of use of GetFEM++.
22 //
23
24 gf_workspace('clear all');
25 lines(0);
26 stacksize('max');
27 if getos()=='Windows' then
28 // Under Windows, all the trace messages are available in the dos console
29 // Under Linux, all the trace messages are redirected to the Scilab console
30 consolebox('on');
31 end
32 gf_util('trace level', 1);
33 gf_util('warning level', 0);
34
35 datapath = get_absolute_file_path('demo_continuation_block.sce') + 'data/';
36
37 // parameters
38 plot_mesh = %f;
39 P = [0; 0]; // coordinates of the node whose dofs have to
40 // be visualised
41 lawname = 'Ciarlet Geymonat';
42 params = [4000; 120; 30]; // in N/mm^2
43 friction_coeff = 1; // coefficient of friction
44 r = 10; // augmentation parameter
45
46 // continuation data
47 // surface tractions on both vertical sides of the block (in N/mm^2)
48 p_1_left_init = -2; p_1_right_init = -2;
49 p_2_left_init = -2.4; p_2_right_init = 2.4;
50 p_1_left_final = 2; p_1_right_final = 2;
51 p_2_left_final = 2.4; p_2_right_final = -2.4;
52
53 // If the file name sing_point_char is non-empty, the continuation will be
54 // started from the singular point and the tangent with the index ind_branch
55 // saved there. Otherwise, the continuation will be initialised according to
56 // direction, gm0, and eventually X0_char.
57 sing_point_char = '';
58 //sing_point_char = 'continuation_step_105_sing.sod';
59 ind_branch = 4;
60 direction = 1;
61 X0_char = '';
62 gm0 = 0;
63 nbstep = 500;
64
65 niter = 200; // maximum number of iterations for the initial solver
66 h_init = 5e-4;
67 h_max = 5e-1;
68 h_min = 5e-7;
69 h_dec = 0.35;
70 maxit = 5;
71 thrit = 4;
72 maxres = 5e-10;
73 maxdiff = 5e-10;
74 mincos = 1 - 1e-5;
75 maxres_solve = 1e-10;
76 ndir = 20;
77 nspan = 15;
78 noisy = 'noisy';
79
80 // build a mesh (size in mm)
81 m = gf_mesh('cartesian Q1', [0:4:40], [0:4:80]);
82
83 // selection of the Dirichlet, Neumann and contact boundaries for the block
84 // Dirichlet on the top, Neumann on the vertical sides, contact at the bottom
85 GAMMAD = 1; GAMMAC = 2; GAMMAN = 3;
86 border = gf_mesh_get(m,'outer faces');
87 normals = gf_mesh_get(m, 'normal of faces', border);
88
89 dirichlet_boundary = border(:, find(normals(2, :) > 1 - 1e-7));
90 gf_mesh_set(m, 'region', GAMMAD, dirichlet_boundary);
91 contact_boundary = border(:, find(normals(2, :) < -1 + 1e-7));
92 gf_mesh_set(m, 'region', GAMMAC, contact_boundary);
93 neumann_boundary = border(:, find(abs(normals(1, :)) > 1 - 1e-7));
94 gf_mesh_set(m, 'region', GAMMAN, neumann_boundary);
95
96 // plot the mesh
97 if (plot_mesh) then
98 scf(0); drawlater; clf();
99 //gf_plot_mesh(m, 'regions', [GAMMAC], 'refine', 1);
100 gf_plot_slice(gf_slice(list('none'),m,1),'mesh', 'on',...
101 'mesh_slice_edges_color', [0 0 0]);
102 a = gca(); a.isoview="on"; a.box="hidden_axes";
103 a.tight_limits = "on"; a.data_bounds = [0, 0; 40, 80];
104 xtitle('Mesh','','');
105 drawnow;
106 end
107
108 // finite-element methods
109 mfu = gf_mesh_fem(m, 2);
110 gf_mesh_fem_set(mfu, 'fem',gf_fem('FEM_QK(2,1)'));
111 mfvm = gf_mesh_fem(m, 1);
112 gf_mesh_fem_set(mfvm,'fem',gf_fem('FEM_QK_DISCONTINUOUS(2,1)'));
113
114 // integration method
115 mim = gf_mesh_im(m, 4);
116
117 // elasticity model
118 md = gf_model('real');
119 gf_model_set(md, 'add fem variable', 'u', mfu);
120 gf_model_set(md, 'add initialized data', 'params', params);
121 gf_model_set(md, 'add nonlinear elasticity brick', mim, 'u', lawname,...
122 'params');
123
124 // zero Dirichlet condition
125 Ddata = zeros(1, 2);
126 gf_model_set(md, 'add initialized data', 'Ddata', Ddata);
127 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mfu, GAMMAD, 'Ddata');
128
129 // parametrised Neumann condition
130 pdata_init = gf_mesh_fem_get_eval(mfu,...
131 list(['(p_1_right_init-p_1_left_init)*x/40 + p_1_left_init',...
132 '(p_2_right_init-p_2_left_init)*x/40 + p_2_left_init']));
133 pdata_final = gf_mesh_fem_get_eval(mfu,...
134 list(['(p_1_right_final-p_1_left_final)*x/40 + p_1_left_final',...
135 '(p_2_right_final-p_2_left_final)*x/40 + p_2_left_final']));
136 gf_model_set(md, 'add data', 'gamma', 1);
137 gf_model_set(md, 'add initialized fem data', 'pdata_init', mfu, pdata_init);
138 gf_model_set(md, 'add initialized fem data', 'pdata_final', mfu, pdata_final);
139 gf_model_set(md, 'add fem data', 'pdata_current', mfu, 1);
140 gf_model_set(md, 'add source term brick', mim, 'u','pdata_current', GAMMAN);
141
142 // contact conditions
143 nbdofu = gf_mesh_fem_get(mfu, 'nbdof');
144 cdof = gf_mesh_fem_get(mfu, 'dof on region', GAMMAC);
145 nbc = size(cdof, 2) / 2;
146 contact_dof = cdof(2:2:2*nbc);
147 contact_nodes = gf_mesh_fem_get(mfu, 'basic dof nodes', contact_dof);
148
149 BN = spzeros(nbc, nbdofu);
150 ngap = zeros(nbc, 1);
151 for i = 1:nbc
152 BN(i, contact_dof(i)) = -1.0;
153 ngap(i) = contact_nodes(2, i);
154 end
155
156 BT = spzeros(nbc, nbdofu);
157 for i = 1:nbc
158 BT(i, contact_dof(i) - 1) = 1.0;
159 end
160
161 gf_model_set(md, 'add variable', 'lambda_n', nbc);
162 gf_model_set(md, 'add initialized data', 'r', [r]);
163 gf_model_set(md, 'add variable', 'lambda_t', nbc);
164 gf_model_set(md, 'add initialized data', 'friction_coeff', [friction_coeff]);
165 gf_model_set(md, 'add initialized data', 'ngap', ngap);
166 gf_model_set(md, 'add initialized data', 'alpha', ones(nbc, 1));
167 gf_model_set(md, 'add basic contact brick', 'u', 'lambda_n', ...
168 'lambda_t', 'r', BN, BT, 'friction_coeff', 'ngap', 'alpha', 1);
169
170 // initialise the continuation
171 scfac = 1 / (gf_model_get(md, 'nbdof'));
172 S = gf_cont_struct(md, 'gamma', 'pdata_init', 'pdata_final', ...
173 'pdata_current', scfac, 'h_init', h_init, 'h_max', h_max, ...
174 'h_min', h_min, 'h_dec', h_dec, 'max_iter', maxit, 'thr_iter', thrit, ...
175 'max_res', maxres, 'max_diff', maxdiff, 'min_cos', mincos, ...
176 'max_res_solve', maxres_solve, 'singularities', 2, 'non-smooth',...
177 'nb_dir', ndir, 'nb_span', nspan, noisy);
178
179
180 if (~isempty(sing_point_char)) then
181 load(datapath + sing_point_char);
182 X = X_sing; gm = gm_sing;
183 T_X = T_X_sing(:, ind_branch);
184 T_gm = T_gm_sing(ind_branch);
185 h = gf_cont_struct_get(S, 'init step size');
186 gf_model_set(md, 'to variables', X);
187 else
188 if (~isempty(X0_char)) then
189 load(datapath + X0_char, 'X');
190 gf_model_set(md, 'to variables', X);
191 end
192 gm = gm0;
193 pdata_current = (1 - gm) * pdata_init + gm * pdata_final;
194 gf_model_set(md, 'variable', 'gamma', [gm]);
195 gf_model_set(md, 'variable', 'pdata_current', pdata_current);
196
197 if (~isempty(noisy)) then
198 printf('starting computing an initial point\n')
199 end
200 [iter, converged] = gf_model_get(md, 'solve', 'max_res', maxres, ...
201 'max_iter', niter, noisy);
202 if (converged ~= 1) then
203 printf('No initial point found!');
204 return
205 end
206
207 X = gf_model_get(md, 'from variables');
208 [T_X, T_gm, h] = gf_cont_struct_get(S, 'init Moore-Penrose continuation',...
209 X, gm, direction);
210 end
211
212 U = gf_model_get(md, 'variable', 'u');
213 lambda_n = gf_model_get(md, 'variable', 'lambda_n');
214 lambda_t = gf_model_get(md, 'variable', 'lambda_t');
215 VM = gf_model_get(md, 'compute Von Mises or Tresca', 'u', lawname, ...
216 'params', mfvm);
217
218 sl = gf_slice('points', m, P);
219 U_P = gf_compute(mfu, U, 'interpolate on', sl);
220 u_nP_hist = zeros(1, nbstep + 1); u_nP_hist(1) = -U_P(2);
221 u_nP_min = -U_P(2); u_nP_max = -U_P(2);
222 u_tP_hist = zeros(1, nbstep + 1); u_tP_hist(1) = U_P(1);
223 u_tP_min = U_P(1); u_tP_max = U_P(1);
224 indP = find(contact_nodes(1,:) == P(1));
225 lambda_nP = lambda_n(indP); lambda_tP = lambda_t(indP);
226 lambda_nP_hist = zeros(1, nbstep + 1); lambda_nP_hist(1) = lambda_nP;
227 lambda_nP_min = lambda_nP; lambda_nP_max = lambda_nP;
228 lambda_tP_hist = zeros(1, nbstep + 1); lambda_tP_hist(1) = lambda_tP;
229 lambda_tP_min = lambda_tP; lambda_tP_max = lambda_tP;
230 gm_hist = zeros(1, nbstep + 1); gm_hist(1) = gm;
231 gm_min = gm; gm_max = gm;
232 //tau = gf_cont_struct_get(S, 'bifurcation test function');
233 sing_out = [];
234
235 fig = scf(1); drawlater; clf();
236 fig.color_map = jetcolormap(255);
237 colorbar(min(VM),max(VM));
238 gf_plot(mfvm, VM, 'deformed_mesh', 'on', 'deformation', U, ...
239 'deformation_mf', mfu, 'deformation_scale', 1, 'refine', 1);
240 xlabel('$x_{1}$'); ylabel('$x_{2}$');
241 title('Initial deformed configuration');
242 a = get("current_axes"); a.isoview = "on";
243 a.tight_limits = "on"; a.data_bounds = [-5, 0; 45, 80];
244 drawnow;
245
246 scf(3); drawlater; clf();
247 subplot(2,2,1);
248 if u_nP_max-u_nP_min < 1e-10 then
249 a = gca(); a.tight_limits = "on";
250 a.data_bounds = [gm_min-1e-4, u_nP_min-1; gm_max+1e-4, u_nP_max+1];
251 end
252 plot(gm_hist(1), u_nP_hist(1), 'k.');
253 xtitle('', 'gamma', 'u_n(P)');
254
255 subplot(2,2,2);
256 if u_tP_max-u_tP_min < 1e-10 then
257 a = gca(); a.tight_limits = "on";
258 a.data_bounds = [gm_min-1e-4, u_tP_min-1; gm_max+1e-4, u_tP_max+1];
259 end
260 plot(gm_hist(1), u_tP_hist(1), 'k.');
261 xtitle('', 'gamma', 'u_t(P)');
262
263 subplot(2,2,3);
264 if lambda_nP_max- lambda_nP_min < 1e-10 then
265 a = gca(); a.tight_limits = "on";
266 a.data_bounds = [gm_min-1e-4, lambda_nP_min-1; ...
267 gm_max+1e-4, lambda_nP_max+1];
268 end
269 plot(gm_hist(1), lambda_nP_hist(1), 'k.');
270 xtitle('', 'gamma', 'lambda_n(P)');
271
272 subplot(2,2,4);
273 if lambda_tP_max-lambda_tP_min < 1e-10 then
274 a = gca(); a.tight_limits = "on";
275 a.data_bounds = [gm_min-1e-4, lambda_tP_min-1; ...
276 gm_max+1e-4, lambda_tP_max+1];
277 end
278 plot(gm_hist(1), lambda_tP_hist(1), 'k.');
279 xtitle('', 'gamma', 'lambda_t(P)');
280 drawnow;
281
282 //scf(4); drawlater; clf();
283 //plot(0, tau, 'k.');
284 //xtitle('', 'iteration', 'bifurcation test function');
285 //drawnow;
286
287 // continue from the initial point
288 for step = 1:nbstep
289 printf('\nbeginning of step %d\n', step);
290 [X, gm, T_X, T_gm, h, h0, sing_label] = gf_cont_struct_get(S, ...
291 'Moore-Penrose continuation', X, gm, T_X, T_gm, h);
292 if (h == 0) then
293 printf('Continuation has failed.\n')
294 break
295 elseif (~isempty(sing_label)) then
296 if (sing_label == 'limit point') then
297 s = 'Step ' + sci2exp(step) + ': ' + sing_label;
298 elseif (sing_label == 'non-smooth bifurcation point') then
299 [X_sing, gm_sing, T_X_sing, T_gm_sing]...
300 = gf_cont_struct_get(S, 'sing_data');
301 save(datapath + 'continuation_step_' + sci2exp(step) + '_sing.sod',...
302 'X_sing', 'gm_sing', 'T_X_sing', 'T_gm_sing');
303 s = 'Step ' + sci2exp(step) + ': ' + sing_label + ', '...
304 + sci2exp(size(T_X_sing, 2)) + ' branch(es) located';
305 end
306 sing_out = [sing_out; s];
307 end
308
309 gf_model_set(md, 'to variables', X);
310 U = gf_model_get(md, 'variable', 'u');
311 U_P = gf_compute(mfu, U, 'interpolate on', sl);
312 lambda_n = gf_model_get(md, 'variable', 'lambda_n');
313 lambda_t = gf_model_get(md, 'variable', 'lambda_t');
314 VM = gf_model_get(md, 'compute Von Mises or Tresca', 'u', lawname, ...
315 'params', mfvm);
316
317 u_nP_hist(step+1) = -U_P(2);
318 u_nP_min = min(u_nP_min, -U_P(2)); u_nP_max = max(u_nP_max, -U_P(2));
319 u_tP_hist(step+1) = U_P(1);
320 u_tP_min = min(u_tP_min, U_P(1)); u_tP_max = max(u_tP_max, U_P(1));
321 lambda_nP = lambda_n(indP); lambda_nP_hist(step+1) = lambda_nP;
322 lambda_nP_min = min(lambda_nP_min, lambda_nP);
323 lambda_nP_max = max(lambda_nP_max, lambda_nP);
324 lambda_tP = lambda_t(indP); lambda_tP_hist(step+1) = lambda_tP;
325 lambda_tP_min = min(lambda_tP_min, lambda_tP);
326 lambda_tP_max = max(lambda_tP_max, lambda_tP);
327 gm_hist(step+1) = gm;
328 gm_min = min(gm_min, gm); gm_max = max(gm_max, gm);
329 [tau, alpha_hist, tau_hist]...
330 = gf_cont_struct_get(S, 'bifurcation test function');
331
332 fig = scf(2); drawlater; clf();
333 fig.color_map = jetcolormap(255);
334 colorbar(min(VM),max(VM));
335 gf_plot(mfvm, VM, 'deformed_mesh', 'on', 'deformation', U, ...
336 'deformation_mf', mfu, 'deformation_scale', 1, 'refine', 1);
337 xlabel('$x_{1}$'); ylabel('$x_{2}$');
338 title('Current deformed configuration');
339 a = get("current_axes"); a.isoview = "on";
340 a.tight_limits = "on"; a.data_bounds = [-5, 0; 45, 80];
341 drawnow;
342
343 scf(3); drawlater; clf();
344 subplot(2,2,1);
345 if u_nP_max-u_nP_min < 1e-10 then
346 a = gca(); a.tight_limits = "on";
347 a.data_bounds = [gm_min-1e-4, u_nP_min-1; gm_max+1e-4, u_nP_max+1];
348 end
349 plot(gm_hist(step:step+1), u_nP_hist(step:step+1), 'k-');
350 plot(gm_hist(1:step), u_nP_hist(1:step), 'ko-');
351 plot(gm_hist(step+1), u_nP_hist(step+1), 'k.');
352 xtitle('', 'gamma', 'u_n(P)');
353
354 subplot(2,2,2);
355 if u_tP_max-u_tP_min < 1e-10 then
356 a = gca(); a.tight_limits = "on";
357 a.data_bounds = [gm_min-1e-4, u_tP_min-1; gm_max+1e-4, u_tP_max+1];
358 end
359 plot(gm_hist(step:step+1), u_tP_hist(step:step+1), 'k-');
360 plot(gm_hist(1:step), u_tP_hist(1:step), 'ko-');
361 plot(gm_hist(step+1), u_tP_hist(step+1), 'k.');
362 xtitle('', 'gamma', 'u_t(P)');
363
364 subplot(2,2,3);
365 if lambda_nP_max-lambda_nP_min < 1e-10 then
366 a = gca(); a.tight_limits = "on";
367 a.data_bounds = [gm_min-1e-4, lambda_nP_min-1; ...
368 gm_max+1e-4, lambda_nP_max+1];
369 end
370 plot(gm_hist(step:step+1), lambda_nP_hist(step:step+1), 'k-');
371 plot(gm_hist(1:step), lambda_nP_hist(1:step), 'ko-');
372 plot(gm_hist(step+1), lambda_nP_hist(step+1), 'k.');
373 xtitle('', 'gamma', 'lambda_n(P)');
374
375 subplot(2,2,4);
376 if lambda_tP_max-lambda_tP_min < 1e-10 then
377 a = gca(); a.tight_limits = "on";
378 a.data_bounds = [gm_min-1e-4, lambda_tP_min-1; ...
379 gm_max+1e-4, lambda_tP_max+1];
380 end
381 plot(gm_hist(step:step+1), lambda_tP_hist(step:step+1), 'k-');
382 plot(gm_hist(1:step), lambda_tP_hist(1:step), 'ko-');
383 plot(gm_hist(step+1), lambda_tP_hist(step+1), 'k.');
384 xtitle('', 'gamma', 'lambda_t(P)');
385 drawnow;
386
387 // scf(4); drawlater;
388 // l = length(tau_hist);
389 // if l > 1 then
390 // plot((step - 1) + alpha_hist(1:l), tau_hist(1:l), 'r.-')
391 // plot(step-1, tau_hist(1), 'k.');
392 // end
393 // plot(step, tau, 'k.');
394 // drawnow;
395
396 printf('end of step n° %d / %d\n', step, nbstep)
397 if (abs(gm-0.5) >= 0.5) then
398 printf('|gamma - 0.5| >= 0.5, stop\n')
399 break
400 end
401 end
402
403 nsing = size(sing_out, 1);
404 if (nsing > 0) then
405 printf('\n------------------------------\n')
406 printf(' Detected singular points\n')
407 printf('------------------------------\n')
408 for i = 1:nsing
409 printf(sing_out(i) + '\n')
410 end
411 end
+0
-368
interface/src/scilab/demos/demo_continuation_vee.sce less more
0 // Scilab GetFEM++ interface
1 // Copyright (C) 2013-2015 Tomas Ligursky, Yves Renard.
2 //
3 // This file is a part of GetFEM++
4 //
5 // GetFEM++ is free software; you can redistribute it and/or modify it
6 // under the terms of the GNU Lesser General Public License as published
7 // by the Free Software Foundation; either version 2.1 of the License, or
8 // (at your option) any later version.
9 // This program is distributed in the hope that it will be useful, but
10 // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
12 // License for more details.
13 // You should have received a copy of the GNU Lesser General Public License
14 // along with this program; if not, write to the Free Software Foundation,
15 // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
16 //
17 // Continuation of contact between a vee-shaped body and a rigid foundation.
18 //
19 // This program is used to check that scilab-getfem is working. This is also
20 // a good example of use of GetFEM++.
21 //
22
23 gf_workspace('clear all');
24 lines(0);
25 stacksize('max');
26 if getos()=='Windows' then
27 // Under Windows, all the trace messages are available in the dos console
28 // Under Linux, all the trace messages are redirected to the Scilab console
29 consolebox('on');
30 end
31 gf_util('trace level', 1);
32 gf_util('warning level', 3);
33
34 datapath = get_absolute_file_path('demo_continuation_vee.sce') + 'data/';
35
36 // parameters
37 plot_mesh = %f;
38 P = [0; 0]; // (approximate) coordinates of the node whose
39 // dofs have to be visualised
40 clambda = 100; cmu = 82; // Lame coefficients (in GPa)
41 friction_coeff = 1.8; // coefficient of friction
42 r = 10; // augmentation parameter
43
44 // continuation data
45 // volume forces (in GN/m^3)
46 horizontal_force_init = -5; vertical_force_init = 1;
47 horizontal_force_final = -5; vertical_force_final = -8;
48
49 direction = 1; // direction of the initial tangent wrt the parameter
50 X0_char = ''; // initial approximation of the state variable
51 gm0 = 0;
52 nbstep = 4000;
53
54 niter = 200; // maximum number of iterations for the initial solver
55 h_init = 5e-4;
56 h_max = 1e-1;
57 h_min = 5e-7;
58 maxit = 5;
59 thrit = 4;
60 maxres = 5e-12;
61 maxdiff = 5e-12;
62 mincos = 1 - 1e-5;
63 maxres_solve = 1e-12;
64 noisy = 'noisy';
65
66 // import a mesh (size in m) and refine it eventually
67 m = gf_mesh('load', datapath + 'vee_h_0.03.mesh');
68 for i = 1:0
69 gf_mesh_set(m, 'refine');
70 end
71
72 // selection of the Dirichlet and contact boundaries
73 GAMMAD = 1; GAMMAC = 2;
74 border = gf_mesh_get(m,'outer faces');
75 normals = gf_mesh_get(m, 'normal of faces', border);
76
77 dirichlet_boundary = border(:, find((normals(2, :) > 1 - 1e-7)...
78 | ((normals(1, :) - 1 / sqrt(2))^2 + (normals(2, :) - 1 / sqrt(2))^2 ...
79 < 1e-7)));
80 gf_mesh_set(m, 'region', GAMMAD, dirichlet_boundary);
81 contact_boundary = border(:, find(normals(2, :) < -1 + 1e-7));
82 gf_mesh_set(m, 'region', GAMMAC, contact_boundary);
83
84 // plot the mesh
85 if (plot_mesh) then
86 scf(0); drawlater; clf();
87 //gf_plot_mesh(m, 'regions', [GAMMAC], 'refine', 1);
88 gf_plot_slice(gf_slice(list('none'),m,1),'mesh', 'on',...
89 'mesh_slice_edges_color', [0 0 0]);
90 a = gca(); a.isoview="on"; a.box="hidden_axes";
91 a.tight_limits = "on"; a.data_bounds = [0, 0; 0.15 + 0.95 / sqrt(2), 0.8];
92 xtitle('Mesh','','');
93 drawnow;
94 end
95
96 // finite-element methods
97 mfu = gf_mesh_fem(m, 2);
98 gf_mesh_fem_set(mfu, 'fem' ,gf_fem('FEM_PK(2,1)'));
99 mfvm = gf_mesh_fem(m, 1);
100 gf_mesh_fem_set(mfvm,'fem', gf_fem('FEM_PK_DISCONTINUOUS(2,0)'));
101
102 // integration method
103 mim = gf_mesh_im(m, 4);
104
105 // elasticity model
106 md = gf_model('real');
107 gf_model_set(md, 'add fem variable', 'u', mfu);
108 gf_model_set(md, 'add initialized data', 'clambda', [clambda]);
109 gf_model_set(md, 'add initialized data', 'cmu', [cmu]);
110 gf_model_set(md, 'add isotropic linearized elasticity brick', mim, 'u', ...
111 'clambda', 'cmu');
112
113 // Dirichlet condition
114 Ddata = zeros(1, 2);
115 gf_model_set(md, 'add initialized data', 'Ddata', Ddata);
116 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u',...
117 mfu, GAMMAD, 'Ddata');
118
119 // parametrised volume force
120 force_init = [horizontal_force_init, vertical_force_init];
121 force_final = [horizontal_force_final, vertical_force_final];
122 gf_model_set(md, 'add data', 'gamma', 1);
123 gf_model_set(md, 'add initialized data', 'force_init', force_init);
124 gf_model_set(md, 'add initialized data', 'force_final', force_final);
125 gf_model_set(md, 'add data', 'force_current', 2);
126 gf_model_set(md, 'add source term brick', mim, 'u', 'force_current');
127
128 // contact conditions
129 nbdofu = gf_mesh_fem_get(mfu, 'nbdof');
130 cdof = gf_mesh_fem_get(mfu, 'dof on region', GAMMAC);
131 nbc = size(cdof, 2) / 2;
132 contact_dof = cdof(2:2:2*nbc);
133 contact_nodes = gf_mesh_fem_get(mfu, 'basic dof nodes', contact_dof);
134
135 BN = spzeros(nbc, nbdofu);
136 ngap = zeros(nbc, 1);
137 for i = 1:nbc
138 BN(i, contact_dof(i)) = -1.0;
139 ngap(i) = contact_nodes(2, i);
140 end
141
142 BT = spzeros(nbc, nbdofu);
143 for i = 1:nbc
144 BT(i, contact_dof(i) - 1) = 1.0;
145 end
146
147 gf_model_set(md, 'add variable', 'lambda_n', nbc);
148 gf_model_set(md, 'add initialized data', 'r', [r]);
149 gf_model_set(md, 'add variable', 'lambda_t', nbc);
150 gf_model_set(md, 'add initialized data', 'friction_coeff', [friction_coeff]);
151 gf_model_set(md, 'add initialized data', 'ngap', ngap);
152 gf_model_set(md, 'add initialized data', 'alpha', ones(nbc, 1));
153 gf_model_set(md, 'add basic contact brick', 'u', 'lambda_n', ...
154 'lambda_t', 'r', BN, BT, 'friction_coeff', 'ngap', 'alpha', 1);
155
156 // initialise the continuation
157 scfac = 1 / (gf_model_get(md, 'nbdof'));
158 S = gf_cont_struct(md, 'gamma', 'force_init', 'force_final',...
159 'force_current', scfac, 'h_init', h_init, 'h_max', h_max, ...
160 'h_min', h_min, 'max_iter', maxit, 'thr_iter', thrit, 'max_res', maxres,...
161 'max_diff', maxdiff, 'min_cos', mincos, 'max_res_solve', maxres_solve, ...
162 'singularities', 1, 'non-smooth', noisy);
163
164 if (~isempty(X0_char)) then
165 load(datapath + X0_char, 'X');
166 gf_model_set(md, 'to variables', X);
167 end
168 gm = gm0;
169 force_current = (1 - gm) * force_init + gm * force_final;
170 gf_model_set(md, 'variable', 'gamma', [gm]);
171 gf_model_set(md, 'variable', 'force_current', force_current);
172
173 if (~isempty(noisy)) then
174 printf('starting computing an initial point\n')
175 end
176 [iter, converged] = gf_model_get(md, 'solve', 'max_res', maxres,...
177 'max_iter', niter, noisy);
178 if (converged ~= 1) then
179 printf('No initial point found!');
180 return
181 end
182
183 X = gf_model_get(md, 'from variables');
184 [T_X, T_gm, h] = gf_cont_struct_get(S, 'init Moore-Penrose continuation',...
185 X, gm, direction);
186
187 U = gf_model_get(md, 'variable', 'u');
188 lambda_n = gf_model_get(md, 'variable', 'lambda_n');
189 lambda_t = gf_model_get(md, 'variable', 'lambda_t');
190 VM = gf_model_get(md, 'compute_isotropic_linearized_Von_Mises_or_Tresca',...
191 'u', 'clambda', 'cmu', mfvm);
192
193 pid = gf_mesh_get(m, 'pid from coords', P, 0.002);
194 P = gf_mesh_get(m, 'pts', pid);
195 sl = gf_slice('points', m, P);
196 U_P = gf_compute(mfu, U, 'interpolate on', sl);
197 u_nP_hist = zeros(1, nbstep + 1); u_nP_hist(1) = -U_P(2);
198 u_nP_min = -U_P(2); u_nP_max = -U_P(2);
199 u_tP_hist = zeros(1, nbstep + 1); u_tP_hist(1) = U_P(1);
200 u_tP_min = U_P(1); u_tP_max = U_P(1);
201 indP = find(contact_nodes(1,:) == P(1));
202 lambda_nP = lambda_n(indP); lambda_tP = lambda_t(indP);
203 lambda_nP_hist = zeros(1, nbstep + 1); lambda_nP_hist(1) = lambda_nP;
204 lambda_nP_min = lambda_nP; lambda_nP_max = lambda_nP;
205 lambda_tP_hist = zeros(1, nbstep + 1); lambda_tP_hist(1) = lambda_tP;
206 lambda_tP_min = lambda_tP; lambda_tP_max = lambda_tP;
207 gm_hist = zeros(1, nbstep + 1); gm_hist(1) = gm;
208 gm_min = gm; gm_max = gm;
209 sing_out = [];
210
211 fig = scf(1); drawlater; clf();
212 fig.color_map = jetcolormap(255);
213 colorbar(min(VM),max(VM));
214 gf_plot(mfvm, VM, 'deformed_mesh', 'on', 'deformation', U, ...
215 'deformation_mf', mfu, 'deformation_scale', 1, 'refine', 1);
216 xlabel('$x_{1}$'); ylabel('$x_{2}$');
217 title('Initial deformed configuration');
218 a = get("current_axes"); a.tight_limits = "on"; a.isoview = "on";
219 a.data_bounds = [-0.1, 0; 0.15 + 0.95 / sqrt(2), 0.8];
220 drawnow;
221
222 scf(3); drawlater; clf();
223 subplot(2,2,1);
224 if u_nP_max-u_nP_min < 1e-10 then
225 a = gca(); a.tight_limits = "on";
226 a.data_bounds = [gm_min-1e-4, u_nP_min-1; gm_max+1e-4, u_nP_max+1];
227 end
228 plot(gm_hist(1), u_nP_hist(1), 'k.');
229 xtitle('', 'gamma', 'u_n(P)');
230
231 subplot(2,2,2);
232 if u_tP_max-u_tP_min < 1e-10 then
233 a = gca(); a.tight_limits = "on";
234 a.data_bounds = [gm_min-1e-4, u_tP_min-1; gm_max+1e-4, u_tP_max+1];
235 end
236 plot(gm_hist(1), u_tP_hist(1), 'k.');
237 xtitle('', 'gamma', 'u_t(P)');
238
239 subplot(2,2,3);
240 if lambda_nP_max-lambda_nP_min < 1e-10 then
241 a = gca(); a.tight_limits = "on";
242 a.data_bounds = [gm_min-1e-4, lambda_nP_min-1;...
243 gm_max+1e-4, lambda_nP_max+1];
244 end
245 plot(gm_hist(1), lambda_nP_hist(1), 'k.');
246 xtitle('', 'gamma', 'lambda_n(P)');
247
248 subplot(2,2,4);
249 if lambda_tP_max-lambda_tP_min < 1e-10 then
250 a = gca(); a.tight_limits = "on";
251 a.data_bounds = [gm_min-1e-4, lambda_tP_min-1;...
252 gm_max+1e-4, lambda_tP_max+1];
253 end
254 plot(gm_hist(1), lambda_tP_hist(1), 'k.');
255 xtitle('', 'gamma', 'lambda_t(P)');
256 drawnow;
257
258 // continue from the initial point
259 for step = 1:nbstep
260 printf('\nbeginning of step %d\n', step);
261 [X, gm, T_X, T_gm, h, h0, sing_label] = gf_cont_struct_get(S, ...
262 'Moore-Penrose continuation', X, gm, T_X, T_gm, h);
263 if (h == 0) then
264 printf('Continuation has failed.\n')
265 break
266 elseif (sing_label == 'limit point') then
267 s = 'Step ' + sci2exp(step) + ': ' + sing_label;
268 sing_out = [sing_out; s];
269 end
270
271 gf_model_set(md, 'to variables', X);
272 U = gf_model_get(md, 'variable', 'u');
273 U_P = gf_compute(mfu, U, 'interpolate on', sl);
274 lambda_n = gf_model_get(md, 'variable', 'lambda_n');
275 lambda_t = gf_model_get(md, 'variable', 'lambda_t');
276 VM = gf_model_get(md, ...
277 'compute_isotropic_linearized_Von_Mises_or_Tresca', 'u', ...
278 'clambda', 'cmu', mfvm);
279
280 u_nP_hist(step+1) = -U_P(2);
281 u_nP_min = min(u_nP_min, -U_P(2)); u_nP_max = max(u_nP_max, -U_P(2));
282 u_tP_hist(step+1) = U_P(1);
283 u_tP_min = min(u_tP_min, U_P(1)); u_tP_max = max(u_tP_max, U_P(1));
284 lambda_nP = lambda_n(indP); lambda_nP_hist(step+1) = lambda_nP;
285 lambda_nP_min = min(lambda_nP_min, lambda_nP);
286 lambda_nP_max = max(lambda_nP_max, lambda_nP);
287 lambda_tP = lambda_t(indP); lambda_tP_hist(step+1) = lambda_tP;
288 lambda_tP_min = min(lambda_tP_min, lambda_tP);
289 lambda_tP_max = max(lambda_tP_max, lambda_tP);
290 gm_hist(step+1) = gm;
291 gm_min = min(gm_min, gm); gm_max = max(gm_max, gm);
292
293 fig = scf(2); drawlater; clf();
294 fig.color_map = jetcolormap(255);
295 colorbar(min(VM),max(VM));
296 gf_plot(mfvm, VM, 'deformed_mesh', 'on', 'deformation', U, ...
297 'deformation_mf', mfu, 'deformation_scale', 1, 'refine', 1);
298 xlabel('$x_{1}$'); ylabel('$x_{2}$');
299 title('Current deformed configuration');
300 a = get("current_axes"); a.tight_limits = "on"; a.isoview = "on";
301 a.data_bounds = [-0.1, 0; 0.15 + 0.95 / sqrt(2), 0.8];
302 drawnow;
303
304 scf(3); drawlater; clf();
305 subplot(2,2,1);
306 if u_nP_max-u_nP_min < 1e-10 then
307 a = gca(); a.tight_limits = "on";
308 a.data_bounds = [gm_min-1e-4, u_nP_min-1; gm_max+1e-4, u_nP_max+1];
309 end
310 plot(gm_hist(step:step+1), u_nP_hist(step:step+1), 'k-');
311 plot(gm_hist(1:step), u_nP_hist(1:step), 'ko-');
312 plot(gm_hist(step+1), u_nP_hist(step+1), 'k.');
313 xtitle('', 'gamma', 'u_n(P)');
314
315 subplot(2,2,2);
316 if u_tP_max-u_tP_min < 1e-10 then
317 a = gca(); a.tight_limits = "on";
318 a.data_bounds = [gm_min-1e-4, u_tP_min-1; gm_max+1e-4, u_tP_max+1];
319 end
320 plot(gm_hist(step:step+1), u_tP_hist(step:step+1), 'k-');
321 plot(gm_hist(1:step), u_tP_hist(1:step), 'ko-');
322 plot(gm_hist(step+1), u_tP_hist(step+1), 'k.');
323 xtitle('', 'gamma', 'u_t(P)');
324
325 subplot(2,2,3);
326 if lambda_nP_max-lambda_nP_min < 1e-10 then
327 a = gca(); a.tight_limits = "on";
328 a.data_bounds = [gm_min-1e-4, lambda_nP_min-1;...
329 gm_max+1e-4, lambda_nP_max+1];
330 end
331 plot(gm_hist(step:step+1), lambda_nP_hist(step:step+1), 'k-');
332 plot(gm_hist(1:step), lambda_nP_hist(1:step), 'ko-');
333 plot(gm_hist(step+1), lambda_nP_hist(step+1), 'k.');
334 xtitle('', 'gamma', 'lambda_n(P)');
335
336 subplot(2,2,4);
337 if lambda_tP_max-lambda_tP_min < 1e-10 then
338 a = gca(); a.tight_limits = "on";
339 a.data_bounds = [gm_min-1e-4, lambda_tP_min-1;...
340 gm_max+1e-4, lambda_tP_max+1];
341 end
342 plot(gm_hist(step:step+1), lambda_tP_hist(step:step+1), 'k-');
343 plot(gm_hist(1:step), lambda_tP_hist(1:step), 'ko-');
344 plot(gm_hist(step+1), lambda_tP_hist(step+1), 'k.');
345 xtitle('', 'gamma', 'lambda_t(P)');
346 drawnow;
347
348 printf('end of step n° %d / %d\n', step, nbstep)
349 if (abs(gm) > 1) then
350 printf('|gamma| > 1, stop\n')
351 break
352 end
353 //sleep(100);
354 end
355
356 nsing = size(sing_out, 1);
357 if (nsing > 0) then
358 printf('\n------------------------------\n')
359 printf(' Detected singular points\n')
360 printf('------------------------------\n')
361 for i = 1:nsing
362 printf(sing_out(i) + '\n')
363 end
364 end
365
366 //X = gf_model_get(md, 'from variables');
367 //save(datapath + "solution.sod", "X");
+0
-139
interface/src/scilab/demos/demo_convection_rotating_cavity.sce less more
0 // Scilab GetFEM++ interface
1 //
2 // Copyright (C) 2009-2010 Yves Renard.
3 // Copyright (C) 2010 Yann Collette.
4 //
5 // This file is a part of GetFEM++
6 //
7 // GetFEM++ is free software; you can redistribute it and/or modify it
8 // under the terms of the GNU Lesser General Public License as published
9 // by the Free Software Foundation; either version 2.1 of the License, or
10 // (at your option) any later version.
11 // This program is distributed in the hope that it will be useful, but
12 // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 // License for more details.
15 // You should have received a copy of the GNU Lesser General Public License
16 // along with this program; if not, write to the Free Software Foundation,
17 // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
18 //
19 // The transport equation into the unit square (rotating cavity)
20 //
21
22 if getos()=='Windows' then
23 // Under Windows, all the trace messages are available in the dos console
24 // Under Linuxs, all the trace messages are redirected to the Scilab console
25 consolebox('on');
26 end
27 gf_util('trace level',3);
28 gf_util('warning level',3);
29
30 gf_workspace('clear all');
31
32 K0 = 2; // degree for u
33 K1 = 2; // degree for v
34 NX = 10;
35 scheme = 1; // 0 = Implicit Euler
36 // 1 = midpoint
37
38 //m = gf_mesh('cartesian', 0:1/NX:1, 0:1/NX:1);
39 m = gf_mesh('triangles grid', 0:1/NX:1, 0:1/NX:1);
40
41 border = gf_mesh_get(m,'outer faces');
42 // normals = gf_mesh_get(m, 'normal of faces', border);
43 // dirichlet_boundary1 = border(:,find(normals(2, :) < -0.5));
44 // dirichlet_boundary2 = border(:,find(normals(1, :) < -0.5));
45 dirichlet_boundary = border;
46 GAMMAD = 1;
47 gf_mesh_set(m, 'region', GAMMAD, dirichlet_boundary);
48 // gf_plot_mesh(m, 'regions', [GAMMAD]); // the boundary edges appears in red
49 // pause;
50
51 //m = gf_mesh('import','structured','GT="GT_QK(2,1)";SIZES=[1,1];NOISED=1;NSUBDIV=[1,1];')
52
53 mf_u = gf_mesh_fem(m,1);
54 mf_v = gf_mesh_fem(m,1);
55 mf_d = gf_mesh_fem(m,2);
56 gf_mesh_fem_set(mf_u,'fem',gf_fem(sprintf('FEM_PK(2,%d)', K0)));
57 gf_mesh_fem_set(mf_v,'fem',gf_fem(sprintf('FEM_PK(2,%d)', K1)));
58 gf_mesh_fem_set(mf_d,'fem',gf_fem(sprintf('FEM_PK(2,%d)', K0)));
59 nbdofu = gf_mesh_fem_get(mf_u, 'nbdof');
60 nbdofv = gf_mesh_fem_get(mf_v, 'nbdof');
61
62 //F = (gf_mesh_fem_get(mf_d, 'eval', list('0.5-y', 'x-0.5')))';
63 F = (gf_mesh_fem_get_eval(mf_d, list(list('0.5-y', 'x-0.5'))))';
64
65 // Integration which will be used
66 // mim = gf_mesh_im(m, gf_integ('IM_GAUSS_PARALLELEPIPED(2,4)'));
67 mim = gf_mesh_im(m, gf_integ('IM_TRIANGLE(6)'));
68
69 // Matrices
70 K = gf_asm('volumic', 'a=data(#2); M(#1,#1)+=comp(Grad(#1).Base(#1).vBase(#2))(:,i,:,j,i).a(j)', mim, mf_u, mf_d, F);
71 C = gf_asm('mass matrix', mim, mf_v);
72 B = gf_asm('mass matrix', mim, mf_v, mf_u);
73
74 dirichlet_dof = gf_mesh_fem_get(mf_u, 'dof on region', GAMMAD);
75 nbd = size(dirichlet_dof, 2);
76 BD = spzeros(nbd, nbdofu);
77 for i = 1:nbd
78 BD(i, dirichlet_dof(i)) = 1;
79 end
80
81 // Initial data
82 //U0 = (gf_mesh_fem_get(mf_u, 'eval', list(list('exp(-100*((x-0.5).^2+(y-0.25).^2)))')))';
83 U0 = (gf_mesh_fem_get_eval(mf_u, list(list('exp(-100*((x-0.5).^2+(y-0.25).^2))'))))';
84 U00 = U0;
85 if (scheme == 1) then
86 V0 = -((B') \ (K' * U0));
87 end
88
89 // Time steps
90 NT = 200;
91 dt = 2*%pi/NT;
92 if (scheme == 0) then
93 C2 = C * (-dt);
94 elseif (scheme == 1) then
95 C2 = C * (-dt)/2;
96 end
97 M = [K' B' BD'; B C2 spzeros(nbdofv, nbd); BD spzeros(nbd, nbdofv) spzeros(nbd, nbd)];
98 ndraw = 10;
99 idraw = 10;
100
101 h_graph_1 = scf();
102 h_graph_1.color_map = jetcolormap(256);
103
104 for t = 0:dt:2*%pi
105 if ((ndraw == idraw) | (t >= 2*%pi-1e-8)) then
106 drawlater;
107 clf();
108 gf_plot(mf_u , U0', 'mesh', 'on', 'contour', .1:.1:2);
109 //caxis([0 1]);
110 colorbar(min(U0),max(U0));
111 drawnow;
112 sleep(100);
113 idraw = 0;
114 end
115
116 idraw = idraw + 1;
117
118 if (scheme == 0) then
119 X0 = [zeros(nbdofu,1); (B*U0); zeros(nbd,1);];
120 elseif (scheme == 1) then
121 X0 = [(-B'*V0-K'*U0); (B*U0+(C*V0)*dt/2); zeros(nbd,1);];
122 end
123
124 X1 = M\X0;
125
126 U1 = X1(1:nbdofu);
127 V1 = X1((nbdofu+1):(nbdofu+nbdofv));
128
129 U0 = U1; V0 = V1;
130 end
131
132 h_graph_2 = scf();
133 h_graph_2.color_map = jetcolormap(256);
134 drawlater;
135 gf_plot(mf_u , U00', 'mesh', 'on', 'contour', .1:.1:2);
136 //caxis([0 1]);
137 colorbar(min(U00),max(U00));
138 drawnow;
+0
-142
interface/src/scilab/demos/demo_crack.sce less more
0 // Copyright (C) 2009 Luis Saavedra, Yves Renard.
1 // Copyright (C) 2009-2010, Yann Collette
2 //
3 // This file is a part of GetFEM++
4 //
5 // GetFEM++ is free software; you can redistribute it and/or modify it
6 // under the terms of the GNU Lesser General Public License as published
7 // by the Free Software Foundation; either version 2.1 of the License, or
8 // (at your option) any later version.
9 // This program is distributed in the hope that it will be useful, but
10 // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
12 // License for more details.
13 // You should have received a copy of the GNU Lesser General Public License
14 // along with this program; if not, write to the Free Software Foundation,
15 // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
16 //
17 // Linear Elastostatic problem with a crack.
18 // A good example of use of GetFEM++.
19
20 lines(0);
21
22 if getos()=='Windows' then
23 // Under Windows, all the trace messages are available in the dos console
24 // Under Linuxs, all the trace messages are redirected to the Scilab console
25 consolebox('on');
26 end
27 gf_util('trace level',3);
28 gf_util('warning level',3);
29
30 gf_workspace('clear all');
31
32 path = get_absolute_file_path('demo_crack.sce');
33
34 printf('demo crack started\n');
35
36 // Parameters:
37 nx = 20;
38 DIRICHLET = 101;
39 Lambda = 1.25e10; // Lame coefficient
40 Mu = 1.875e10; // Lame coefficient
41
42 // Global Functions
43 ck0 = gf_global_function('crack',0);
44 ck1 = gf_global_function('crack',1);
45 ck2 = gf_global_function('crack',2);
46 ck3 = gf_global_function('crack',3);
47 ckoff = gf_global_function('cutoff',2,0.4,0.01,0.4);
48 ckoff0 = gf_global_function('product', ck0, ckoff);
49 ckoff1 = gf_global_function('product', ck1, ckoff);
50 ckoff2 = gf_global_function('product', ck2, ckoff);
51 ckoff3 = gf_global_function('product', ck3, ckoff);
52
53 // Mesh in action:
54 m = gf_mesh('regular_simplices', -0.5:1.0/nx:0.5+1.0/nx, -0.5:1.0/nx:0.5+1.0/nx);
55 // m = gf_mesh('import','gmsh',path + 'data/quad.msh')
56
57 // boundary set:
58 gf_mesh_set(m,'region',DIRICHLET, gf_mesh_get(m,'outer_faces'));
59
60 // MeshFem in action:
61 mf_pre_u = gf_mesh_fem(m);
62 gf_mesh_fem_set(mf_pre_u,'fem',gf_fem('FEM_PK(2,1)'));
63
64 // Levelset in action:
65 _ls = gf_levelset(m,1,'y','x');
66 mls = gf_mesh_levelset(m);
67 gf_mesh_levelset_set(mls,'add',_ls);
68 gf_mesh_levelset_set(mls,'adapt');
69 mfls_u = gf_mesh_fem('levelset',mls,mf_pre_u);
70 mf_sing_u = gf_mesh_fem('global function', m, _ls, list(ckoff0,ckoff1,ckoff2,ckoff3),1);
71 mf_u = gf_mesh_fem('sum',mf_sing_u,mfls_u);
72 gf_mesh_fem_set(mf_u,'qdim',2);
73
74 // exact solution:
75 mf_ue = gf_mesh_fem('global function', m, _ls, list(ck0,ck1,ck2,ck3));
76 A = 2+2*Mu/(Lambda+2*Mu);
77 B =-2*(Lambda+Mu)/(Lambda+2*Mu);
78 Ue = zeros(2,4);
79 Ue(1,1) = 0; Ue(2,1) = A-B; // sin(theta/2)
80 Ue(1,2) = A+B; Ue(2,2) = 0; // cos(theta/2)
81 Ue(1,3) = -B; Ue(2,3) = 0; // sin(theta/2)*sin(theta)
82 Ue(1,4) = 0; Ue(2,4) = B; // cos(theta/2)*cos(theta)
83 Ue = Ue / 2*%pi;
84 Ue = matrix(Ue,1,8);
85
86 // MeshIm in action:
87 mim = gf_mesh_im('levelset', mls, 'all', ...
88 gf_integ('IM_STRUCTURED_COMPOSITE(IM_TRIANGLE(6),3)'), ...
89 gf_integ('IM_STRUCTURED_COMPOSITE(IM_GAUSS_PARALLELEPIPED(2,6),9)'), ...
90 gf_integ('IM_STRUCTURED_COMPOSITE(IM_TRIANGLE(6),5)'));
91
92 // Model in action:
93 md = gf_model('real');
94 gf_model_set(md,'add_fem_variable', 'u', mf_u);
95
96 // data
97 gf_model_set(md,'add_initialized_data','lambda', [Lambda]);
98 gf_model_set(md,'add_initialized_data','mu', [Mu]);
99 gf_model_set(md,'add_isotropic_linearized_elasticity_brick',mim,'u','lambda','mu');
100 // gf_model_set(md,'add_variable','mult_spec',6);
101 // BB = gf_spmat('empty',6,gf_mesh_fem_get(mf_u,'nbdof'));
102 // gf_model_set(md,'add_constraint_with_multipliers','u','mult_spec',BB,zeros(6,1));
103 gf_model_set(md,'add_initialized_fem_data','DirichletData', mf_ue, Ue);
104 gf_model_set(md,'add_Dirichlet_condition_with_penalization',mim,'u', 1e12, DIRICHLET, 'DirichletData');
105
106 // assembly of the linear system and solve:
107 gf_model_get(md,'solve');
108 U = gf_model_get(md,'variable','u');
109
110 // Interpolation of the solution on a cut mesh for the drawing purpose
111 cut_mesh = gf_mesh_levelset_get(mls,'cut_mesh');
112 mfv = gf_mesh_fem(cut_mesh,2);
113 gf_mesh_fem_set(mfv,'classical_discontinuous_fem',2,0.001);
114 gf_mesh_fem_set(mf_ue,'qdim',2);
115 V = gf_compute(mf_u,U,'interpolate_on',mfv);
116 Ve = gf_compute(mf_ue,Ue,'interpolate_on',mfv);
117
118 // computation of the Von Mises stress
119 mfvm = gf_mesh_fem(cut_mesh);
120 gf_mesh_fem_set(mfvm,'classical_discontinuous_fem',2,0.001);
121 gf_model_set(md,'add initialized fem data', 'u_cut', mfv, V);
122 VM = gf_model_get(md,'compute_isotropic_linearized_Von_Mises_or_Tresca', 'u_cut', 'lambda', 'mu', mfvm);
123
124 // export to pos
125 gf_mesh_fem_get(mfv,'export_to_pos', path + '/crack.pos',V,'V',Ve,'Ve', mfvm, VM,'Von Mises');
126 printf('You can view the solution with (for example): gmsh %scrack.pos\n', path);
127
128 // drawing the solution
129 h = scf();
130 h.color_map = jetcolormap(255);
131 drawlater;
132 subplot(2,1,1);
133 title('the mesh before cracking');
134 gf_plot_mesh(mf_pre_u);
135 subplot(2,1,2);
136 title('the mesh after cracking');
137 gf_plot(mfvm, VM, 'deformed_mesh', 'on', 'deformation_mf', mfv, 'deformation', V, 'deformation_scale', 0.20);
138 colorbar(min(VM),max(VM));
139 drawnow;
140
141 printf('demo crack terminated\n');
+0
-145
interface/src/scilab/demos/demo_fictitious_domains.sce less more
0 lines(0);
1 stacksize('max');
2
3 path = get_absolute_file_path('demo_fictitious_domains.sce');
4
5 printf('demo fictitious domains started\n');
6
7 printf('This demo uses levelset to impose (weakly) a Dirichlet condition on an\n');
8 printf('implicit boundary defined by the zero of the levelset\n');
9
10 if getos()=='Windows' then
11 // Under Windows, all the trace messages are available in the dos console
12 // Under Linuxs, all the trace messages are redirected to the Scilab console
13 consolebox('on');
14 end
15 gf_util('trace level',3);
16 gf_util('warning level',3);
17
18 gf_workspace('clear all');
19
20 NX = 40;
21 ls_degree = 2;
22
23 m = gf_mesh('cartesian', -.5:(1/NX):.5, -.5:(1/NX):.5);
24 //m = gf_mesh('triangles grid', -.5:(1/NX):.5, -.5:(1/NX):.5);
25 _ls = gf_levelset(m, ls_degree);
26 ls2 = gf_levelset(m, ls_degree, 'with_secondary');
27
28 mf_ls = gf_levelset_get(_ls, 'mf');
29 mf_ls2 = gf_levelset_get(ls2, 'mf');
30
31 P = gf_mesh_fem_get(mf_ls, 'basic dof nodes');
32 x = P(1,:);
33 y = P(2,:);
34 //ULS = ((x + 0.25).^2 + (y - 0.4).^2) - 0.05^2;
35 //ULS = min(ULS, ((x - 0.25).^2 + (y - 0.4).^2) - 0.05^2);
36
37 ULS = 1000*ones(1,length(x));
38 rand('seed',1);
39
40 if 0 then
41 for ix=1:5
42 for iy=1:5
43 xc = ((ix-1)/4) * 0.8 - 0.4;
44 yc = ((iy-1)/4) * 0.8 - 0.4;
45 if (modulo(iy,2)==0) then
46 xc = xc + 0.05;
47 else
48 xc = xc - 0.05;
49 end;
50 R = 0.03 + 0.005*(iy-1);
51 ULS = min(ULS, ((x - xc).^2 + (y - yc).^2) - R^2);
52 end
53 end
54 else
55 for i=1:8
56 xc = rand() - 0.5;
57 yc = rand() - 0.5;
58 R = rand() * 0.09 + 0.02;
59 ULS = min(ULS, ((x - xc).^2 + (y - yc).^2) - R^2);
60 end
61 end
62
63 gf_levelset_set(_ls, 'values', ULS);
64
65 ULS2 = 1000*ones(1,length(x));
66 ULS2s = 1000*ones(1,length(x));
67
68 for i=1:1
69 xc = 0; //rand() - 0.5;
70 yc = 0.0; //rand() - 0.5;
71 theta = %pi/3; //%pi*rand();
72 n = [-sin(theta) cos(theta)];
73
74 R = 0.19; //rand() * 0.09 + 0.02;
75 ULS2 = min(ULS2, ((x-xc)*n(1) + (y-yc)*n(2)));
76 //ULS2s = min(ULS2s, ((x - xc).^2 + (y - yc).^2) - R^2);
77 ULS2s = min(ULS2s, (abs(y - yc)+abs(x-xc) - R));
78 end
79
80 gf_levelset_set(ls2, 'values', ULS2, ULS2s); //'-y-x+.2'); //, 'sqr(y-.2) - 0.04');
81
82 mls = gf_mesh_levelset(m);
83 gf_mesh_levelset_set(mls, 'add', _ls);
84 gf_mesh_levelset_set(mls, 'add', ls2);
85 gf_mesh_levelset_set(mls, 'adapt');
86
87 mim_bound = gf_mesh_im('levelset',mls,'boundary(a+b)', gf_integ('IM_TRIANGLE(6)')); //, gf_integ('IM_QUAD(5)'));
88 mim = gf_mesh_im('levelset',mls,'all(a+b)', gf_integ('IM_TRIANGLE(6)'));
89 gf_mesh_im_set(mim, 'integ', 4);
90
91 mfu0 = gf_mesh_fem(m,2); gf_mesh_fem_set(mfu0, 'fem', gf_fem('FEM_QK(2,3)'));
92 mfdu = gf_mesh_fem(m,1); gf_mesh_fem_set(mfdu, 'fem', gf_fem('FEM_QK_DISCONTINUOUS(2,2)'));
93 mf_mult = gf_mesh_fem(m,2); gf_mesh_fem_set(mf_mult, 'fem', gf_fem('FEM_QK(2,1)'));
94
95 A = gf_asm('volumic','V()+=comp()',mim_bound)
96
97 //printf('generating first plot\n');
98 //h = scf();
99 //h.color_map = jetcolormap(255);
100 //drawlater;
101 //gf_plot_mesh(gf_mesh_levelset_get(mls, 'cut mesh'));
102 //gf_plot_mesh(gf_mesh_levelset_get(mls, 'cut_mesh'), 'curved', 'on');
103 //gf_plot(mf_ls, ULS);
104 //h.color_map = jetcolormap(255);
105 //drawnow;
106
107 dof_out = gf_mesh_fem_get(mfu0, 'dof from im', mim);
108 cv_out = gf_mesh_im_get(mim, 'convex_index');
109 cv_in = _setdiff(gf_mesh_get(m, 'cvid'), cv_out);
110
111 // mfu = gf_mesh_fem('partial', mfu0, dof_out, cv_in);
112
113 md = gf_model('real');
114 gf_model_set(md, 'add fem variable', 'u', mfu0);
115 gf_model_set(md, 'add initialized data', 'lambda', [1]);
116 gf_model_set(md, 'add initialized data', 'mu', [1]);
117 gf_model_set(md, 'add isotropic linearized elasticity brick', mim, 'u', 'lambda', 'mu');
118 gf_model_set(md, 'add initialized data', 'VolumicData', [0; 10]);
119 gf_model_set(md, 'add source term brick', mim, 'u', 'VolumicData');
120 gf_model_set(md, 'add multiplier', 'mult_dir', mf_mult, 'u');
121 gf_model_set(md, 'add Dirichlet condition with multipliers', mim_bound, 'u', 'mult_dir', -1);
122
123 gf_model_get(md, 'solve');
124 U = gf_model_get(md, 'variable', 'u');
125
126 VM = gf_model_get(md, 'compute isotropic linearized Von Mises or Tresca', 'u', 'lambda', 'mu', mfdu);
127
128 printf('generating second plot\n');
129
130 h = scf();
131 h.color_map = jetcolormap(255);
132 drawlater;
133 gf_plot(mfdu, VM, 'deformed_mesh', 'on', 'deformation', U, 'deformation_mf', mfu0, 'refine', 8, 'cvlst', cv_out);
134 //gf_plot(mfu0, U, 'norm', 'on', 'deformed_mesh', 'on', 'deformation', U, 'deformation_mf', mfu0, 'refine', 8, 'cvlst', cv_out);
135 //// gf_mesh_fem_set(mfu0,'qdim',1); Unorm=sqrt(U(1:2:$).^2 + U(2:2:$).^2);
136 // [h1,h2] = gf_plot(mfu0, Unorm,'contour',0.00001,'pcolor','off');
137 [h1,h2]=gf_plot(mf_ls, gf_levelset_get(_ls,'values'), 'contour', 0,'pcolor','off');
138 //h.color_map = jetcolormap(255);
139 //[h1,h2]=gf_plot(mf_ls2, get(ls2,'values'), 'contour',0,'pcolor','off');
140 plot([xc + R*n(2); xc - R*n(2)],[yc - R*n(1), yc + R*n(1)],'b-');
141 colorbar(min(U),max(U));
142 drawnow;
143
144 printf('demo fictitious domains terminated\n');
+0
-78
interface/src/scilab/demos/demo_laplacian.sce less more
0 lines(0);
1 stacksize('max');
2
3 path = get_absolute_file_path('demo_laplacian.sce');
4
5 printf('demo laplacian started\n');
6
7 // trace on;
8
9 if getos()=='Windows' then
10 // Under Windows, all the trace messages are available in the dos console
11 // Under Linuxs, all the trace messages are redirected to the Scilab console
12 consolebox('on');
13 end
14 gf_util('trace level',3);
15 gf_util('warning level',3);
16
17 gf_workspace('clear all');
18
19 m = gf_mesh('cartesian',[0:.1:1],[0:.1:1]);
20 //m = gf_mesh('import','structured','GT="GT_QK(2,1)";SIZES=[1,1];NOISED=1;NSUBDIV=[1,1];')
21
22 // create a mesh_fem of for a field of dimension 1 (i.e. a scalar field)
23 mf = gf_mesh_fem(m,1);
24
25 // assign the Q2 fem to all convexes of the mesh_fem,
26 gf_mesh_fem_set(mf,'fem',gf_fem('FEM_QK(2,2)'));
27
28 // Integration which will be used
29 mim = gf_mesh_im(m, gf_integ('IM_GAUSS_PARALLELEPIPED(2,4)'));
30 //mim = gf_mesh_im(m, gf_integ('IM_STRUCTURED_COMPOSITE(IM_GAUSS_PARALLELEPIPED(2,5),4)'));
31
32 // detect the border of the mesh
33 border = gf_mesh_get(m,'outer faces');
34
35 // mark it as boundary #1
36 gf_mesh_set(m, 'boundary', 1, border);
37
38 h = scf();
39 drawlater;
40 gf_plot_mesh(m, 'regions', [1]); // the boundary edges appears in red
41 drawnow;
42
43 // interpolate the exact solution
44 Uexact = gf_mesh_fem_get_eval(mf, list(list('y.*(y-1).*x.*(x-1)+x.^5')));
45
46 // its second derivative
47 F = gf_mesh_fem_get_eval(mf, list(list('-(2*(x.^2+y.^2)-2*x-2*y+20*x.^3)')));
48
49 md = gf_model('real');
50 gf_model_set(md, 'add fem variable', 'u', mf);
51 gf_model_set(md, 'add Laplacian brick', mim, 'u');
52 gf_model_set(md, 'add initialized fem data', 'VolumicData', mf, F);
53 gf_model_set(md, 'add source term brick', mim, 'u', 'VolumicData');
54 gf_model_set(md, 'add initialized fem data', 'DirichletData', mf, Uexact);
55 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mf, 1, 'DirichletData');
56
57 gf_model_get(md, 'solve');
58 U = gf_model_get(md, 'variable', 'u');
59
60 disp(sprintf('H1 norm of error: %g', gf_compute(mf,U-Uexact,'H1 norm',mim)));
61
62 h = scf();
63 drawlater;
64 h.color_map = jetcolormap(255);
65 subplot(2,1,1);
66 gf_plot(mf,U,'mesh','on','contour',.01:.01:.1);
67 colorbar(min(U),max(U));
68 title('computed solution');
69
70 subplot(2,1,2);
71 gf_plot(mf,U-Uexact,'mesh','on');
72 colorbar(min(U-Uexact),max(U-Uexact));
73 title('difference with exact solution');
74 h.color_map = jetcolormap(255);
75 drawnow;
76
77 printf('demo laplacian terminated\n');
+0
-85
interface/src/scilab/demos/demo_mesh_generation.sce less more
0 // Scilab GetFEM++ interface
1 //
2 // Copyright (C) 2011-2011 Yves Renard, Yann Collette.
3 //
4 // This file is a part of GetFEM++
5 //
6 // GetFEM++ is free software; you can redistribute it and/or modify it
7 // under the terms of the GNU Lesser General Public License as published
8 // by the Free Software Foundation; either version 2.1 of the License, or
9 // (at your option) any later version.
10 // This program is distributed in the hope that it will be useful, but
11 // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
13 // License for more details.
14 // You should have received a copy of the GNU Lesser General Public License
15 // along with this program; if not, write to the Free Software Foundation,
16 // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
17 //
18 // Mesh generation with the experimental meshing procedure of Getfem which
19 // uses simple primitives to describe the mesh geometry.
20 //
21 // This program is used to check that matlab-getfem is working. This is also
22 // a good example of use of GetFEM++.
23 //
24
25 if getos()=='Windows' then
26 // Under Windows, all the trace messages are available in the dos console
27 // Under Linuxs, all the trace messages are redirected to the Scilab console
28 consolebox('on');
29 end
30 gf_util('trace level',3);
31 gf_util('warning level',3);
32
33 gf_workspace('clear all'); clear all;
34
35 N = 3; // dimension of the mesh
36 K = 2; // degree of the mesh (for curved boundaries)
37 if (N == 1) then
38 mo = gf_mesher_object('ball', [0], 2);
39 fixed_vertices = [0];
40 h = 0.5;
41 elseif (N == 2) then
42 mo = gf_mesher_object('ball', [0 4], 2);
43 fixed_vertices = [0; 4];
44 h = 0.5;
45 elseif (N == 3) then
46 if (0) then
47 mo1 = gf_mesher_object('ball', [0 0 1], 2);
48 mo2 = gf_mesher_object('ball', [0 0 -1], 2);
49 mo3 = gf_mesher_object('intersect', mo1, mo2);
50 mo4 = gf_mesher_object('ball', [0 0 0], 1.3);
51 mo5 = gf_mesher_object('union', mo4, mo3);
52 mo6 = gf_mesher_object('ball', [-1 0 0], 1);
53 mo = gf_mesher_object('set minus', mo5, mo6);
54 fixed_vertices = []; h = 0.3;
55 else
56 alpha = %pi/5;
57 L = 20;
58 R = L * tan(alpha) * 0.7;
59 mo1 = gf_mesher_object('cone', [0 0 0], [0 0 1], L, alpha);
60 mo2 = gf_mesher_object('cylinder', [0 0 L], [0, 0, 1], L, R);
61 mo = gf_mesher_object('union', mo1, mo2);
62 fixed_vertices = []; h = 2;
63 end
64 elseif (N == 4) then
65 mo = gf_mesher_object('ball', [0 0 0 4], 2);
66 fixed_vertices = [0; 0; 0; 4];
67 h = 1;
68 else
69 error('It is not very reasonable to build a mesh in dimension greater than 4 !');
70 end
71
72 m = gf_mesh('generate', mo, h, K, fixed_vertices);
73
74 hh = scf();
75 hh.color_map = gf_colormap('chouette');
76 if (N <= 2) then
77 gf_plot_mesh(m);
78 elseif (N == 3) then
79 mf = gf_mesh_fem(m, 1);
80 gf_mesh_fem_set(mf, 'classical fem', K);
81 VAL = gf_mesh_fem_get_eval(mf, list('x+y+z'));
82 gf_plot(mf, VAL, 'mesh', 'on', 'cvlst', gf_mesh_get(mf,'outer faces'), 'refine', 4);
83 // axis on; camlight;
84 end
+0
-103
interface/src/scilab/demos/demo_mortar.sce less more
0 // do a partition of the mesh into two disjoint areas, and then
1 // solve the linear elasticity problem with a mortar join on
2 // the interface between the two areas
3
4 lines(0);
5 stacksize('max');
6
7 path = get_absolute_file_path('demo_mortar.sce');
8
9 if getos()=='Windows' then
10 // Under Windows, all the trace messages are available in the dos console
11 // Under Linuxs, all the trace messages are redirected to the Scilab console
12 consolebox('on');
13 end
14 gf_util('trace level',3);
15 gf_util('warning level',3);
16
17 gf_workspace('clear all');
18
19 NX = 9;
20 radius = 0.3;
21 xc = .5;
22 yc = .5;
23
24 m = gf_mesh('cartesian', 0:1/NX:1, 0:1/NX:1);
25 [pid,idx] = gf_mesh_get(m, 'pid_from_cvid');
26 P = gf_mesh_get(m,'pts');
27
28 areap=[];
29 for cv=1:(length(idx)-1)
30 areap(cv) = 1;
31 for i=idx(cv):(idx(cv+1)-1)
32 if (norm(P(:,pid(i)) - [xc;yc]) > radius) then
33 areap(cv)=0;
34 break;
35 end
36 end
37 end
38
39 mfu = gf_mesh_fem(m, 2); gf_mesh_fem_set(mfu, 'fem', gf_fem('FEM_QK(2,2)'));
40 mfd = gf_mesh_fem(m, 1); gf_mesh_fem_set(mfd, 'fem', gf_fem('FEM_QK(2,1)'));
41 mfm = gf_mesh_fem(m, 2); gf_mesh_fem_set(mfm, 'fem', gf_fem('FEM_QK(2,2)'));
42 mfdu = gf_mesh_fem(m); gf_mesh_fem_set(mfdu,'fem', gf_fem('FEM_QK_DISCONTINUOUS(2,2)'));
43 mim = gf_mesh_im(m, 5);
44
45 gf_mesh_fem_set(mfu, 'dof_partition', areap);
46
47 b_in = gf_mesh_get(m, 'outer faces', find(areap==1));
48 b_out = gf_mesh_get(m, 'outer faces', find(areap==0));
49 b_border = gf_mesh_get(m, 'outer faces');
50 b_out = _setdiff(b_out', b_border', 'rows')';
51
52 fleft = gf_mesh_get(m,'faces from pid',find(abs(P(1,:))<1e-6));
53 fright = gf_mesh_get(m,'faces from pid',find(abs(P(1,:) - 1)<1e-6));
54
55 // assign boundary numbers
56 gf_mesh_set(m,'region',1,fleft);
57 gf_mesh_set(m,'region',2,fright);
58
59 MORTAR_BOUNDARY_IN = 40;
60 MORTAR_BOUNDARY_OUT = 41;
61 gf_mesh_set(m, 'region', MORTAR_BOUNDARY_IN, b_in);
62 gf_mesh_set(m, 'region', MORTAR_BOUNDARY_OUT, b_out);
63
64 h = scf();
65 drawlater;
66 gf_plot_mesh(m,'boundaries',40);
67 drawnow;
68
69 disp('This is the mortar interface (enter ''resume'' to continue)'); pause;
70
71 indm = gf_mesh_fem_get(mfm, 'basic dof on region', MORTAR_BOUNDARY_OUT);
72 expr = 'M(#1,#2)+=comp(vBase(#1).vBase(#2))(:,i,:,i)';
73 M = gf_asm('boundary', MORTAR_BOUNDARY_IN , expr, mim, mfm, mfu);
74 M = M - gf_asm('boundary', MORTAR_BOUNDARY_OUT, expr, mim, mfm, mfu);
75 M = M(indm, :);
76
77 md = gf_model('real');
78 gf_model_set(md, 'add fem variable', 'u', mfu);
79 gf_model_set(md, 'add initialized data', 'lambda', [1]);
80 gf_model_set(md, 'add initialized data', 'mu', [1]);
81 gf_model_set(md, 'add isotropic linearized elasticity brick', mim, 'u', 'lambda', 'mu');
82 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mfu, 1);
83 F = gf_mesh_fem_get_eval(mfd, list(list(0), list('y+2')));
84 gf_model_set(md, 'add initialized fem data', 'VolumicData', mfd, F);
85 gf_model_set(md, 'add source term brick', mim, 'u', 'VolumicData');
86 gf_model_set(md, 'add variable', 'mult_spec', length(indm));
87 gf_model_set(md, 'add constraint with multipliers', 'u', 'mult_spec', M, zeros(length(indm),1));
88
89 gf_model_get(md, 'solve');
90 U = gf_model_get(md, 'variable', 'u');
91
92 VM = gf_model_get(md, 'compute isotropic linearized Von Mises or Tresca', 'u', 'lambda', 'mu', mfdu);
93
94 drawlater;
95 h.color_map = jetcolormap(255);
96 gf_plot(mfdu,VM,'deformed_mesh','on', 'deformation',U, 'deformation_mf',mfu,'refine', 4, 'deformation_scale',0.1);
97 h.color_map = jetcolormap(255);
98 drawnow;
99
100 // caxis([0 500]);
101
102 printf('demo mortar terminated\n');
+0
-202
interface/src/scilab/demos/demo_nonlinear_elasticity.sce less more
0 lines(0);
1 stacksize('max');
2
3 printf('demo nonlinear_elasticity started\n');
4
5 path = get_absolute_file_path('demo_nonlinear_elasticity.sce');
6
7 // Load the axrot_matrix macro
8 exec(path + 'axrot_matrix.sci');
9
10 if getos()=='Windows' then
11 // Under Windows, all the trace messages are available in the dos console
12 // Under Linuxs, all the trace messages are redirected to the Scilab console
13 consolebox('on');
14 end
15 gf_util('trace level',3);
16 gf_util('warning level',3);
17
18 gf_workspace('clear all');
19
20 // set a custom colormap
21 r=[0.7 .7 .7]; l = r($,:); s=63; s1=20; s2=25; s3=48;s4=55;
22 for i=1:s
23 c1 = max(min((i-s1)/(s2-s1),1),0);
24 c2 = max(min((i-s3)/(s4-s3),1),0);
25 r($+1,:)=(1-c2)*((1-c1)*l + c1*[1 0 0]) + c2*[1 .8 .2];
26 end
27
28 incompressible = 1;
29
30 lawname = 'Ciarlet Geymonat';
31 params = [1;1;0.5];
32 params = [0;1];
33 if (incompressible) then
34 lawname = 'Mooney Rivlin';
35 params = [1;1];
36 end
37
38 if 0 then
39 h = 20;
40 // import the mesh
41 //m = gf_mesh('load', path + '/data/ladder.mesh');
42 //m = gf_mesh('load', path + '/data/ladder_1500.mesh');
43 m = gf_mesh('load', path + '/data/holed_bar.mesh');
44 gf_mesh_set(m, 'transform', [1 0 0; 0 0 1; 0 1 0]);
45 mfu = gf_mesh_fem(m,3); // mesh-fem supporting a 3D-vector field
46 mfd = gf_mesh_fem(m,1); // scalar mesh_fem
47 // the mesh_im stores the integration methods for each tetrahedron
48 mim = gf_mesh_im(m,gf_integ('IM_TETRAHEDRON(5)'));
49 // we choose a P2 fem for the main unknown
50 gf_mesh_fem_set(mfu, 'fem',gf_fem('FEM_HERMITE(3)'));
51 //gf_mesh_fem_set(mfu, 'fem',gf_fem('FEM_PK(3,2)'));
52 mfdu = gf_mesh_fem(m,1);
53 // the material is homogeneous, hence we use a P0 fem for the data
54 gf_mesh_fem_set(mfd,'fem',gf_fem('FEM_PK(3,1)'));
55 // the P2 fem is not derivable across elements, hence we use a discontinuous
56 // fem for the derivative of U.
57 gf_mesh_fem_set(mfdu,'fem',gf_fem('FEM_PK_DISCONTINUOUS(3,2)'));
58 else
59 N1 = 1;
60 N2 = 4;
61 h = 20;
62 m = gf_mesh('cartesian',(0:N1)/N1 - .5, (0:N2)/N2*h, ((0:N1)/N1 - .5)*3);
63 mfu = gf_mesh_fem(m,3); // mesh-fem supporting a 3D-vector field
64 mfd = gf_mesh_fem(m,1); // scalar mesh_fem
65 // the mesh_im stores the integration methods for each tetrahedron
66 mim = gf_mesh_im(m,gf_integ('IM_GAUSS_PARALLELEPIPED(3,6)'));
67 // we choose a P2 fem for the main unknown
68 gf_mesh_fem_set(mfu, 'fem',gf_fem('FEM_QK(3,2)'));
69 mfdu = gf_mesh_fem(m,1);
70 // the material is homogeneous, hence we use a P0 fem for the data
71 gf_mesh_fem_set(mfd,'fem',gf_fem('FEM_QK(3,1)'));
72 // the P2 fem is not derivable across elements, hence we use a discontinuous
73 // fem for the derivative of U.
74 gf_mesh_fem_set(mfdu,'fem',gf_fem('FEM_QK_DISCONTINUOUS(3,2)'));
75 end
76
77 m_char = gf_mesh_get(m, 'char');
78 mfu_char = gf_mesh_fem_get(mfu, 'char');
79 mfdu_char = gf_mesh_fem_get(mfdu, 'char');
80
81 // display some informations about the mesh
82 disp(sprintf('nbcvs=%d, nbpts=%d, nbdof=%d',gf_mesh_get(m,'nbcvs'), gf_mesh_get(m,'nbpts'),gf_mesh_fem_get(mfu,'nbdof')));
83 P = gf_mesh_get(m,'pts'); // get list of mesh points coordinates
84 //pidtop = find(abs(P(2,:)-13)<1e-6); // find those on top of the object
85 //pidbot = find(abs(P(2,:)+10)<1e-6); // find those on the bottom
86
87 pidtop = find(abs(P(2,:)-h)<1e-6); // find those on top of the object
88 pidbot = find(abs(P(2,:)-0)<1e-6); // find those on the bottom
89
90 // build the list of faces from the list of points
91 ftop = gf_mesh_get(m,'faces from pid',pidtop);
92 fbot = gf_mesh_get(m,'faces from pid',pidbot);
93
94 // assign boundary numbers
95 gf_mesh_set(m,'boundary',1,ftop);
96 gf_mesh_set(m,'boundary',2,fbot);
97 gf_mesh_set(m,'boundary',3,[ftop fbot]);
98
99
100 md = gf_model('real');
101 gf_model_set(md, 'add fem variable', 'u', mfu);
102 gf_model_set(md, 'add initialized data', 'params', params);
103 gf_model_set(md, 'add nonlinear elasticity brick', mim, 'u', lawname, 'params');
104 if (incompressible) then
105 mfp = gf_mesh_fem(m,1);
106 gf_mesh_fem_set(mfp, 'classical discontinuous fem', 1);
107 gf_model_set(md, 'add fem variable', 'p', mfp);
108 gf_model_set(md, 'add nonlinear incompressibility brick', mim, 'u', 'p');
109 end
110
111 gf_model_set(md, 'add fem data', 'DirichletData', mfd, 3);
112 gf_model_set(md, 'add Dirichlet condition with penalization', mim, 'u', 1e10, 3, 'DirichletData');
113
114 VM = zeros(1,gf_mesh_fem_get(mfdu,'nbdof'));
115
116 reload = 0;
117
118 if (reload == 0) then
119 UU = [];
120 VVM = [];
121 nbstep = 40;
122 else
123 load(path + '/demo_nonlinear_elasticity_U.mat');
124 nb_step = size(UU,1);
125 end
126 P = gf_mesh_fem_get(mfd, 'basic dof_nodes');
127 r = sqrt(P(1 ,:).^2 + P(3, :).^2);
128 theta = atan(P(3,:),P(1,:));
129
130 scf();
131
132 for step=1:nbstep
133 w = 3*step/nbstep;
134 //set(b2, 'param', 'R', [0;0;0]);
135
136 if (~reload) then
137 R = zeros(3, gf_mesh_fem_get(mfd, 'nbdof'));
138 dtheta = %pi;
139 dtheta2 = %pi/2;
140
141 i_top = gf_mesh_fem_get(mfd, 'basic dof on region', 1);
142 i_bot = gf_mesh_fem_get(mfd, 'basic dof on region', 2);
143 dd = max(P(1,i_top)*sin(w*dtheta));
144 if (w < 1) then
145 RT1 = axrot_matrix([0 h*.75 0], [0 h*.75 1], w*dtheta);
146 RT2 = axrot_matrix([0 0 0], [0 1 0], sqrt(w)*dtheta2);
147 RB1 = axrot_matrix([0 h*.25 0], [0 h*.25 1], -w*dtheta);
148 RB2 = RT2';
149 elseif (w < 2) then
150 RT1 = axrot_matrix([0 h*.75 0], [0 h*.75 1], (2-w)*dtheta);
151 RT2 = axrot_matrix([0 0 0], [0 1 0], w*dtheta2);
152 RB1 = axrot_matrix([0 h*.25 0], [0 h*.25 1], -(2-w)*dtheta);
153 RB2 = RT2';
154 else
155 RT1 = axrot_matrix([0 h*.75 0], [0 h*.75 1], 0);
156 RT2 = axrot_matrix([0 0 0], [0 1 0], (3-w)*2*dtheta2);
157 RB1 = axrot_matrix([0 h*.25 0], [0 h*.25 1], 0);
158 RB2 = RT2';
159 end
160
161 for i=i_top
162 ro = RT1*RT2*[P(:,i);1];
163 R(:, i) = ro(1:3) - P(:,i);
164 end
165
166 for i=i_bot
167 ro = RB1*RB2*[P(:,i);1];
168 R(:, i) = ro(1:3) - P(:,i);
169 end
170
171 gf_model_set(md, 'variable', 'DirichletData', R);
172 gf_model_get(md, 'solve', 'very noisy', 'max_iter', 100, 'max_res', 1e-5, 'lsearch', 'simplest');
173 // full(gf_model_get(md, 'tangent matrix'))
174 U = gf_model_get(md, 'variable', 'u');
175 VM = gf_model_get(md, 'compute Von Mises or Tresca', 'u', lawname, 'params', mfdu);
176 UU = [UU;U];
177 VVM = [VVM;VM];
178 save(path + '/demo_nonlinear_elasticity_U.mat', 'UU', 'VVM', 'm_char', 'mfu_char', 'mfdu_char');
179 else
180 U = UU(step,:);
181 VM = VVM(step,:);
182 end
183 disp(sprintf('step %d/%d : |U| = %g',step,nbstep,norm(U)));
184
185 drawlater;
186 clf();
187 h_graph = gcf();
188 h_graph.color_map = jetcolormap(255);
189 gf_plot(mfdu,VM,'mesh','off', 'cvlst',gf_mesh_get(mfdu,'outer faces'), 'deformation',U,'deformation_mf',mfu,'deformation_scale', 1, 'refine', 8);
190 colorbar(min(U),max(U));
191 h_graph.color_map = jetcolormap(255);
192 drawnow;
193 sleep(1000);
194 // save a picture..
195 xs2png(h_graph.figure_id, path + sprintf('/torsion%03d.png',step));
196 end
197
198 printf('end of computations, you can now replay the animation with\n');
199 printf('exec demo_nonlinear_elasticity_anim.sce;\n');
200
201 printf('demo nonlinear_elasticity terminated\n');
+0
-59
interface/src/scilab/demos/demo_nonlinear_elasticity_anim.sce less more
0 lines(0);
1 stacksize('max');
2
3 path = get_absolute_file_path('demo_nonlinear_elasticity_anim.sce');
4
5 printf('demo nonlinear_elasticity_anim\n');
6
7 if getos()=='Windows' then
8 // Under Windows, all the trace messages are available in the dos console
9 // Under Linuxs, all the trace messages are redirected to the Scilab console
10 consolebox('on');
11 end
12 gf_util('trace level',3);
13 gf_util('warning level',3);
14
15 // replay all the computations of demo_nonlinear_elasticity.sci
16
17 load(path + '/demo_nonlinear_elasticity_U.mat');
18
19 nbstep = size(UU,1);
20 m = gf_mesh('from string', m_char);
21 mfu = gf_mesh_fem('from string',mfu_char,m);
22 mfdu = gf_mesh_fem('from string',mfdu_char,m);
23
24 sl = gf_slice(list('boundary'), m, 16, gf_mesh_get(m,'outer faces'));
25 P0 = gf_slice_get(sl,'pts');
26
27 h = scf();
28 h.color_map = jetcolormap(255);
29
30 for step=1:1:nbstep
31 U = UU(step,:);
32 VM = VVM(step,:);
33
34 slU = gf_compute(mfu,U,'interpolate on',sl);
35 slVM = gf_compute(mfdu,VM,'interpolate on',sl);
36
37 gf_slice_set(sl,'pts', P0+slU);
38
39 drawlater;
40 clf();
41 gf_plot_slice(sl, 'data', slVM, 'mesh_edges','on', 'mesh','on');
42 drawnow;
43
44 //drawlater;
45 //gf_plot(mfdu,VM,'mesh','on', 'cvlst',gf_mesh_get(mfdu,'outer faces'), 'deformation',U,'deformation_mf',mfu,'deformation_scale', 1, 'refine', 16);
46 //drawnow;
47 // axis([-3 6 0 20 -2 2]);
48 // caxis([0 .15]);
49 // view(30+20*w, 23+30*w);
50 // campos([50 -30 80]);
51 // camva(8);
52 // camup;
53 // camlight;
54 // axis off;
55 xs2png(h.figure_id, path + sprintf('/torsion%03d.png',step));
56 end
57
58 printf('demo nonlinear_elasticity_anim terminated\n');
+0
-275
interface/src/scilab/demos/demo_plasticity.sce less more
0 lines(0);
1 stacksize('max');
2
3 gf_workspace('clear all');
4
5
6 path = get_absolute_file_path('demo_plasticity.sce');
7
8 if getos()=='Windows' then
9 // Under Windows, all the trace messages are available in the dos console
10 // Under Linuxs, all the trace messages are redirected to the Scilab console
11 consolebox('on');
12 end
13 gf_util('trace level',3);
14 gf_util('warning level',3);
15
16
17
18 // We compute a plasticity problem with a Von Mises criterion with or
19 // without kinematic hardening
20 // For convenience we consider an homogenous Dirichlet condition on the left
21 // of the domain and an easy computed Neumann Condition on the right
22
23
24 with_hardening = 1;
25 bi_material = %f;
26 test_tangent_matrix = %f;
27 do_plot = %t;
28
29
30
31 // Initialize used data
32 LX = 100;
33 LY = 20;
34 NX = 50;
35 NY = 20;
36
37 // alpha is parameter of the generalized integration algorithms.
38 // The choice alpha = 1/2 yields the mid point method and alpha = 1 leads to
39 // backward Euler integration
40 alpha = 1.0;
41
42
43
44
45
46 f = [0 -600]';
47 t = [0 0.5 0.6 0.7 0.8 0.9 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0];
48 if (with_hardening == 1)
49 f = [15000 0]';
50 t = [0 0.5 0.6 0.7 0.8 0.9 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 -0.1 -0.2 -0.4 -0.6 -0.8 -0.6 -0.4 -0.2 0];
51 end
52
53 // Create the mesh
54 // m = gf_mesh('triangles grid', [0:(LX/NX):LX], [0:(LY/NY):LY]);
55 m = gf_mesh('import','structured',sprintf('GT=""GT_PK(2,1)"";SIZES=[%d,%d];NOISED=0;NSUBDIV=[%d,%d];', LX, LY, NX, NY));
56 N = gf_mesh_get(m, 'dim');
57
58 // Plotting
59 // gf_plot_mesh(m, 'vertices', 'on', 'convexes', 'on');
60
61 // Define used MeshIm
62 mim=gf_mesh_im(m);
63 gf_mesh_im_set(mim, 'integ', gf_integ('IM_TRIANGLE(6)')); // Gauss methods on triangles
64
65 // Define used MeshFem
66 if (with_hardening == 1)
67 mf_u=gf_mesh_fem(m,2); gf_mesh_fem_set(mf_u, 'fem',gf_fem('FEM_PK(2,2)'));
68 else
69 mf_u=gf_mesh_fem(m,2); gf_mesh_fem_set(mf_u, 'fem',gf_fem('FEM_PK(2,1)'));
70 end
71 mf_data=gf_mesh_fem(m); gf_mesh_fem_set(mf_data, 'fem', gf_fem('FEM_PK_DISCONTINUOUS(2,0)'));
72 mf_data2=gf_mesh_fem(m,2); gf_mesh_fem_set(mf_data2, 'fem', gf_fem('FEM_PK_DISCONTINUOUS(2,0)'));
73 // mf_sigma=gf_mesh_fem(m,4); gf_mesh_fem_set(mf_sigma, 'fem',gf_fem('FEM_PK_DISCONTINUOUS(2,1)'));
74 mf_sigma=gf_mesh_fem(m,4); gf_mesh_fem_set(mf_sigma, 'fem',gf_fem('FEM_PK_DISCONTINUOUS(2,0)'));
75 mf_vm = gf_mesh_fem(m); set(mf_vm, 'fem', gf_fem('FEM_PK_DISCONTINUOUS(2,1)'));
76
77 // Find the border of the domain
78 P=gf_mesh_get(m, 'pts');
79 pidleft=find(abs(P(1,:))<1e-6); // Retrieve index of points which x near to 0
80 pidright=find(abs(P(1,:) - LX)<1e-6); // Retrieve index of points which x near to L
81 fleft =gf_mesh_get(m,'faces from pid',pidleft);
82 fright=gf_mesh_get(m,'faces from pid',pidright);
83 gf_mesh_set(m,'boundary',1,fleft); // for Dirichlet condition
84 gf_mesh_set(m,'boundary',2,fright); // for Neumann condition
85
86 // Decomposed the mesh into 2 regions with different values of Lamé coeff
87 if (bi_material) separation = LY/2; else separation = 0; end
88 pidtop = find(P(2,:)>=separation-1E-6); // Retrieve index of points of the top part
89 pidbottom = find(P(2,:)<=separation+1E-6); // Retrieve index of points of the bottom part
90 cvidtop = gf_mesh_get(m, 'cvid from pid', pidtop);
91 cvidbottom= gf_mesh_get(m, 'cvid from pid', pidbottom);
92 CVtop = gsort(gf_mesh_fem_get(mf_data, 'basic dof from cvid', cvidtop));
93 CVbottom = gsort(gf_mesh_fem_get(mf_data, 'basic dof from cvid', cvidbottom));
94
95 // Definition of Lame coeff
96 lambda(CVbottom,1) = 121150; // Steel
97 lambda(CVtop,1) = 84605; // Iron
98 mu(CVbottom,1) = 80769; //Steel
99 mu(CVtop,1) = 77839; // Iron
100 // Definition of plastic threshold
101 von_mises_threshold(CVbottom) = 7000;
102 von_mises_threshold(CVtop) = 8000;
103 // Definition of hardening parameter
104 if (with_hardening)
105 H = mu(1)/5;
106 else
107 H = 0;
108 end
109
110 // Create the model
111 md = gf_model('real');
112
113 // Declare that u is the unknown of the system on mf_u
114 // 2 is the number of version of the data stored, for the time integration scheme
115 gf_model_set(md, 'add fem variable', 'u', mf_u, 2);
116
117 // Declare that lambda is a data of the system on mf_data
118 gf_model_set(md, 'add initialized fem data', 'lambda', mf_data, lambda);
119
120 // Declare that mu is a data of the system on mf_data
121 gf_model_set(md, 'add initialized fem data', 'mu', mf_data, mu);
122
123 // Declare that von_mises_threshold is a data of the system on mf_data
124 gf_model_set(md, 'add initialized fem data', 'von_mises_threshold', mf_data, von_mises_threshold);
125
126
127
128
129 if (with_hardening)
130 N = gf_mesh_get(m, 'dim');
131 gf_model_set(md, 'add fem data', 'Previous_u', mf_u);
132 mim_data = gf_mesh_im_data(mim, -1, [N, N]);
133 gf_model_set(md, 'add im data', 'sigma', mim_data);
134
135 // Declare that alpha is a data of the system
136
137 gf_model_set(md, 'add initialized data', 'alpha', [alpha]);
138 gf_model_set(md, 'add initialized data', 'H', [H]);
139
140 Is = 'Reshape(Id(meshdim*meshdim),meshdim,meshdim,meshdim,meshdim)';
141 IxI = 'Id(meshdim)@Id(meshdim)';
142 coeff_long = '((lambda)*(H))/((2*(mu)+(H))*(meshdim*(lambda)+2*(mu)+(H)))';
143 B_inv = sprintf('((2*(mu)/(2*(mu)+(H)))*(%s) + (%s)*(%s))', Is, coeff_long, IxI);
144 B = sprintf('((1+(H)/(2*(mu)))*(%s) - (((lambda)*(H))/(2*(mu)*(meshdim*(lambda)+2*(mu))))*(%s))', Is, IxI);
145 ApH = sprintf('((2*(mu)+(H))*(%s) + (lambda)*(%s))', Is, IxI);
146 Enp1 = '((Grad_u+Grad_u'')/2)';
147 En = '((Grad_Previous_u+Grad_Previous_u'')/2)';
148
149 //expression of sigma for Implicit Euler method
150 //expr_sigma = strcat(['(', B_inv, '*(Von_Mises_projection((-(H)*', Enp1, ')+(', ApH, '*(',Enp1,'-',En,')) + (', B, '*sigma), von_mises_threshold) + H*', Enp1, '))']);
151
152 //expression of sigma for generalized alpha algorithms
153 expr_sigma = strcat(['(', B_inv, '*(Von_Mises_projection((',B,'*((1-alpha)*sigma))+(-(H)*(((1-alpha)*',En,')+(alpha*', Enp1, ')))+(alpha*', ApH, '*(',Enp1,'-',En,')) + (alpha*', ...
154 B, '*sigma), von_mises_threshold) + (H)*(((1-alpha)*',En,')+(alpha*', Enp1, '))))']);
155
156 gf_model_set(md, 'add nonlinear generic assembly brick', mim, expr_sigma + ':Grad_Test_u');
157 // gf_model_set(md, 'add finite strain elasticity brick', mim, 'u', 'SaintVenant Kirchhoff', '[lambda; mu]');
158 else
159
160 // Declare that sigma is a data of the system on mf_sigma
161 gf_model_set(md, 'add fem data', 'sigma', mf_sigma);
162 // Add plasticity brick on u
163 gf_model_set(md, 'add elastoplasticity brick', mim, 'VM', 'u', 'lambda', 'mu', 'von_mises_threshold', 'sigma');
164 end
165
166 // Add homogeneous Dirichlet condition to u on the left hand side of the domain
167 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mf_u, 1);
168
169 // Add a source term to the system
170 gf_model_set(md,'add initialized fem data', 'VolumicData', mf_data2, gf_mesh_fem_get_eval(mf_data2, list(['f(1,1)*t(1)','f(2,1)*t(1)'])));
171 gf_model_set(md, 'add source term brick', mim, 'u', 'VolumicData', 2);
172
173 VM=zeros(1,gf_mesh_fem_get(mf_vm, 'nbdof'));
174
175 if (do_plot)
176 h = scf();
177 h.color_map = jetcolormap(255);
178 end
179
180 for step=1:size(t,2),
181 disp(sprintf('step %d / %d, coeff = %g', step, size(t,2), t(step)));
182 gf_model_set(md, 'variable', 'VolumicData', gf_mesh_fem_get_eval(mf_data2, list(['f(1,1)*t(step)','f(2,1)*t(step)'])));
183
184 if (test_tangent_matrix)
185 gf_model_get(md, 'test tangent matrix', 1E-8, 10, 0.000001);
186 end;
187
188 // Solve the system
189 gf_model_get(md, 'solve', 'noisy', 'lsearch', 'simplest', 'alpha min', 0.8, 'max_iter', 100, 'max_res', 1e-6);
190 // gf_model_get(md, 'solve', 'noisy', 'max_iter', 80);
191
192 // Retrieve the solution U
193 U = gf_model_get(md, 'variable', 'u', 0);
194
195 // Compute new plasticity constraints used to compute
196 // the Von Mises or Tresca stress
197 if (with_hardening)
198 sigma_0 = gf_model_get(md, 'variable', 'sigma');
199 sigma = gf_model_get(md, 'interpolation', expr_sigma, mim_data);
200 U_0 = gf_model_get(md, 'variable', 'Previous_u');
201 U_nalpha = alpha*U + (1-alpha)*U_0;
202
203 M = gf_asm('mass matrix', mim, mf_vm);
204 L = gf_asm('generic', mim, 1, 'sqrt(3/2)*Norm(Deviator(sigma))*Test_vm', -1, 'sigma', 0, mim_data, sigma, 'vm', 1, mf_vm, zeros(gf_mesh_fem_get(mf_vm, 'nbdof'),1));
205 VM = (M \ L)';
206 coeff1='-lambda/(2*mu*(meshdim*lambda+2*mu))';
207 coeff2='1/(2*mu)';
208 Ainv=sprintf('(%s)*(%s) + (%s)*(%s)', coeff1, IxI, coeff2, Is);
209 Ep = sprintf('(Grad_u+Grad_u'')/2 - (%s)*sigma', Ainv);
210 L = gf_asm('generic', mim, 1, sprintf('Norm(%s)*Test_vm', Ep), -1, 'sigma', 0, mim_data, sigma, 'u', 0, mf_u, U, 'vm', 1, mf_vm, zeros(gf_mesh_fem_get(mf_vm, 'nbdof'),1), 'mu', 0, mf_data, mu, 'lambda', 0, mf_data, lambda);
211 plast = (M \ L)';
212
213 gf_model_set(md, 'variable', 'u', U_nalpha);
214 Epsilon_u = gf_model_get(md, 'interpolation', '((Grad_u+Grad_u'')/2)', mim_data);
215 gf_model_set(md, 'variable', 'u', U);
216 ind_gauss_pt = 22500;
217 if (size(sigma, 2) <= N*(ind_gauss_pt + 1))
218 ind_gauss_pt = floor(3*size(sigma, 2) / (4*N*N));
219 end
220 sigma_fig(1,step)=sigma(N*N*ind_gauss_pt + 1);
221 Epsilon_u_fig(1,step)=Epsilon_u(N*N*ind_gauss_pt + 1);
222
223 sigma = (sigma - (1-alpha)*sigma_0)/alpha;
224 gf_model_set(md, 'variable', 'sigma', sigma);
225 gf_model_set(md, 'variable', 'Previous_u', U);
226 else
227 gf_model_get(md, 'elastoplasticity next iter', mim, 'u', 'VM', 'lambda', 'mu', 'von_mises_threshold', 'sigma');
228 plast = gf_model_get(md, 'compute plastic part', mim, mf_vm, 'u', 'VM', 'lambda', 'mu', 'von_mises_threshold', 'sigma');
229 // Compute Von Mises or Tresca stress
230 VM = gf_model_get(md, 'compute elastoplasticity Von Mises or Tresca', 'sigma', mf_vm, 'Von Mises');
231 end
232
233
234 if (do_plot)
235 drawlater;
236 clf();
237 subplot(3,1,1);
238 gf_plot(mf_vm,VM, 'deformation',U,'deformation_mf',mf_u,'refine', 4, 'deformation_scale',1, 'disp_options', 0); // 'deformed_mesh', 'on')
239 colorbar(min(U),max(U));
240 a = get("current_axes"); a.data_bounds = [-20 120 -20 40];
241 // caxis([0 10000]);
242 n = t(step);
243 title(sprintf('Von Mises criterion for t = %d', step));
244
245 subplot(3,1,2);
246 gf_plot(mf_vm,plast, 'deformation',U,'deformation_mf',mf_u,'refine', 4, 'deformation_scale',1, 'disp_options', 0); // 'deformed_mesh', 'on')
247 colorbar(min(plast),max(plast));
248 a = get("current_axes"); a.data_bounds = [-20 120 -20 40];
249 // caxis([0 10000]);
250 n = t(step);
251 title(sprintf('Plastification for t = %d', step));
252
253 if (with_hardening)
254 subplot(3,1,3);
255 plot(Epsilon_u_fig, sigma_fig,'r','LineWidth',2)
256 xlabel('Strain');
257 ylabel('Stress')
258 a = get("current_axes"); a.data_bounds = [-0.1 0.35 -16000 16000];
259 end;
260 drawnow;
261 sleep(1000);
262 end
263
264 end;
265
266
267
268
269
270
271
272
273
274
+0
-137
interface/src/scilab/demos/demo_plate.sce less more
0 lines(0);
1 stacksize('max');
2
3 path = get_absolute_file_path('demo_plate.sce');
4
5 printf('demo plate started\n');
6
7 if getos()=='Windows' then
8 // Under Windows, all the trace messages are available in the dos console
9 // Under Linuxs, all the trace messages are redirected to the Scilab console
10 consolebox('on');
11 end
12 gf_util('trace level',3);
13 gf_util('warning level',3);
14
15
16 // Simple supported Mindlin-Reissner plate
17
18
19 Emodulus = 1; // Young Modulus
20 nu = 0.5; // Poisson Coefficient
21 epsilon = 0.001; // Plate thickness
22 kappa = 5/6; // Shear correction factor
23 f = -5*epsilon^3; // Prescribed force on the top of the plate
24
25 variant = 2; // 0 : not reduced, 1 : with reduced integration, 2 : MITC reduction
26 quadrangles = %t; // Locking free only on quadrangle for the moment
27 K = 1; // Degree of the finite element method
28 with_Mindlin_brick = %t; // Uses the Reissner-Mindlin predefined brick or not
29 dirichlet_version = 1; // 0 = simplification, 1 = with multipliers, 2 = penalization
30
31 plot_mesh = %f;
32 draw_solution = %t;
33
34 // trace on;
35 gf_workspace('clear all');
36 NX = 80;
37 if (quadrangles)
38 m = gf_mesh('cartesian',[0:1/NX:1],[0:1/NX:1]);
39 else
40 m=gf_mesh('import','structured',sprintf('GT=""GT_PK(2,1)"";SIZES=[1,1];NOISED=0;NSUBDIV=[%d,%d];', NX, NX));
41 end
42
43 // Create a mesh_fem of for a 2 dimension vector field
44 mftheta = gf_mesh_fem(m,2);
45 mfu = gf_mesh_fem(m,1);
46 // Assign the QK or PK fem to all convexes of the mesh_fem, and define an
47 // integration method
48 if (quadrangles)
49 gf_mesh_fem_set(mftheta,'fem',gf_fem(sprintf('FEM_QK(2,%d)', K)));
50 gf_mesh_fem_set(mfu,'fem',gf_fem(sprintf('FEM_QK(2,%d)', K)));
51 mim = gf_mesh_im(m, gf_integ('IM_GAUSS_PARALLELEPIPED(2,6)'));
52 mim_reduced = gf_mesh_im(m, gf_integ('IM_GAUSS_PARALLELEPIPED(2,1)'));
53 else
54 gf_mesh_fem_set(mftheta,'fem',gf_fem(sprintf('FEM_PK(2,%d)', K)));
55 gf_mesh_fem_set(mfu,'fem',gf_fem(sprintf('FEM_PK(2,%d)', K)));
56 mim = gf_mesh_im(m, gf_integ('IM_TRIANGLE(6)'));
57 mim_reduced = gf_mesh_im(m, gf_integ('IM_TRIANGLE(1)'));
58 end
59
60 // detect the border of the mesh
61 border = gf_mesh_get(m,'outer faces');
62 // mark it as boundary #1
63 gf_mesh_set(m, 'boundary', 1, border);
64 if (plot_mesh)
65 gf_plot_mesh(m, 'regions', [1]); // the boundary edges appears in red
66 sleep(1000);
67 end
68
69 md=gf_model('real');
70 gf_model_set(md, 'add fem variable', 'u', mfu);
71 gf_model_set(md, 'add fem variable', 'theta', mftheta);
72 gf_model_set(md, 'add initialized data', 'E', Emodulus);
73 gf_model_set(md, 'add initialized data', 'nu', nu);
74 gf_model_set(md, 'add initialized data', 'epsilon', epsilon);
75 gf_model_set(md, 'add initialized data', 'kappa', kappa);
76
77
78 if (with_Mindlin_brick)
79 gf_model_set(md, 'add Mindlin Reissner plate brick', mim, mim_reduced, 'u', 'theta', 'E', 'nu', 'epsilon', 'kappa', variant);
80 else
81 gf_model_set(md, 'add elementary rotated RT0 projection', 'RT0_projection');
82 gf_model_set(md, 'add linear generic assembly brick', mim, '(E*epsilon*epsilon*epsilon*(1-nu)/(48 * (1 - nu*nu))) * ((Grad_theta+Grad_theta''):(Grad_Test_theta+Grad_Test_theta''))');
83 gf_model_set(md, 'add linear generic assembly brick', mim, '(E*epsilon*epsilon*epsilon*nu/(12 * (1 - nu*nu))) * (Trace(Grad_theta)*Trace(Grad_Test_theta))');
84 if (variant == 0)
85 gf_model_set(md, 'add linear generic assembly brick', mim, '(E*kappa*epsilon/(1 + nu)) * ((Grad_u + theta).Grad_Test_u) + (E*kappa*epsilon/(1 + nu)) * ((Grad_u + theta).Test_theta)');
86 elseif (variant == 1)
87 gf_model_set(md, 'add linear generic assembly brick', mim_reduced, '(E*kappa*epsilon/(1 + nu)) * ((Grad_u + theta).Grad_Test_u) + (E*kappa*epsilon/(1 + nu)) * ((Grad_u + theta).Test_theta)');
88 else
89 gf_model_set(md, 'add linear generic assembly brick', mim, '(E*kappa*epsilon/(1 + nu)) * ((Grad_u + Elementary_transformation(theta,RT0_projection)).Grad_Test_u) + (E*kappa*epsilon/(1 + nu)) * ((Grad_u + Elementary_transformation(theta, RT0_projection)).(Elementary_transformation(Test_theta, RT0_projection)))');
90 end
91 end
92
93 gf_model_set(md, 'add initialized data', 'VolumicData', f);
94
95 gf_model_set(md, 'add source term brick', mim, 'u', 'VolumicData');
96 gf_model_set(md, 'add initialized data', 'DirichletData', 0);
97 select (dirichlet_version)
98 case 0,
99 gf_model_set(md, 'add Dirichlet condition with simplification', 'u', 1, 'DirichletData');
100 case 1,
101 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mfu, 1, 'DirichletData');
102 case 2,
103 gf_model_set(md, 'add Dirichlet condition with penalization', mim, 'u', r, 1, 'DirichletData');
104 end
105 gf_model_get(md, 'solve');
106 U = gf_model_get(md, 'variable', 'u');
107
108 if (draw_solution)
109 hh = scf();
110 hh.color_map = jetcolormap(255);
111 gf_plot(mfu,U,'mesh','off', 'zplot', 'on');
112 colorbar(min(U),max(U)); title('computed solution');
113 end
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
+0
-108
interface/src/scilab/demos/demo_refine.sce less more
0 // Example of automatic refinement of the mesh
1 // In this example, the refinement will focus on the
2 // transition between the Dirichlet and the Neumann boundary.
3
4 lines(0);
5 stacksize('max');
6
7 path = get_absolute_file_path('demo_refine.sce');
8
9 printf('demo refine started\n');
10
11 if getos()=='Windows' then
12 // Under Windows, all the trace messages are available in the dos console
13 // Under Linuxs, all the trace messages are redirected to the Scilab console
14 consolebox('on');
15 end
16 gf_util('trace level',3);
17 gf_util('warning level',3);
18
19 gf_workspace('clear all');
20
21 //clear all; clf;
22
23 L = 100;
24 H = 22;
25 N = 2;
26
27 if (N == 2) then // 2D beam
28 m = gf_mesh('regular simplices',0:10:L, 0:11:H);
29 mim = gf_mesh_im(m); gf_mesh_im_set(mim, 'integ', gf_integ('IM_TRIANGLE(6)'));
30 mfu = gf_mesh_fem(m,N); gf_mesh_fem_set(mfu, 'fem', gf_fem('FEM_PK(2,2)'));
31 mfd = gf_mesh_fem(m); gf_mesh_fem_set(mfd, 'fem', gf_fem('FEM_PK(2,1)'));
32 mf0 = gf_mesh_fem(m); gf_mesh_fem_set(mf0, 'fem', gf_fem('FEM_PK(2,0)'));
33 mfdu = gf_mesh_fem(m); gf_mesh_fem_set(mfdu,'fem', gf_fem('FEM_PK_DISCONTINUOUS(2,2)'));
34 else // 3D beam
35 m = gf_mesh('regular simplices',0:10:L, 0:11:H, 0:11:H);
36 mim = gf_mesh_im(m); gf_mesh_im_set(mim, 'integ', gf_integ('IM_TETRAHEDRON(5)'));
37 mfu = gf_mesh_fem(m,N); gf_mesh_fem_set(mfu, 'fem', gf_fem('FEM_PK(3,2)'));
38 mfd = gf_mesh_fem(m); gf_mesh_fem_set(mfd, 'fem', gf_fem('FEM_PK(3,1)'));
39 mf0 = gf_mesh_fem(m); gf_mesh_fem_set(mf0, 'fem', gf_fem('FEM_PK(3,0)'));
40 mfdu = gf_mesh_fem(m); gf_mesh_fem_set(mfdu,'fem', gf_fem('FEM_PK_DISCONTINUOUS(3,1)'));
41 end
42
43 lambda = 121150;
44 mu = 80769;
45
46 P = gf_mesh_get(m,'pts');
47 fleft = gf_mesh_get(m,'faces from pid',find(abs(P(1,:))<1e-6));
48 fright = gf_mesh_get(m,'faces from pid',find(abs(P(1,:) - L)<1e-6));
49
50 // assign boundary numbers
51 gf_mesh_set(m,'boundary',1,fleft);
52 gf_mesh_set(m,'boundary',2,fright);
53
54 F = zeros(N,1); F(2) = -20; // the external force
55
56 md = gf_model('real');
57 gf_model_set(md, 'add fem variable', 'u', mfu);
58 gf_model_set(md, 'add initialized data', 'lambda', [lambda]);
59 gf_model_set(md, 'add initialized data', 'mu', [mu]);
60 gf_model_set(md, 'add isotropic linearized elasticity brick', mim, 'u', 'lambda', 'mu');
61 gf_model_set(md, 'add initialized data', 'VolumicData', F);
62 gf_model_set(md, 'add source term brick', mim, 'u', 'VolumicData');
63 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mfu, 1);
64
65 h = scf();
66 h.color_map = jetcolormap(255);
67
68 for step=1:8
69 dd = gf_mesh_fem_get(mf0, 'basic dof from cvid');
70
71 gf_model_get(md, 'solve');
72 U = gf_model_get(md, 'variable', 'u');
73
74 VM = gf_model_get(md, 'compute isotropic linearized Von Mises or Tresca', 'u', 'lambda', 'mu', mfdu);
75
76 if (N==3) then
77 opt = list('cvlst', get(m,'outer_faces'));
78 else
79 opt = list();
80 end
81
82 drawlater;
83 clf();
84 subplot(2,1,1);
85 gf_plot(mfdu,VM,'deformed_mesh','on', 'deformation',U, 'deformation_mf',mfu,'refine', 4, 'deformation_scale',1, opt(:));
86 colorbar(min(U),max(U));
87 title('Von Mises stress');
88
89 ERR = gf_compute(mfu,U,'error estimate', mim);
90 E = ERR;
91 E(dd) = ERR;
92
93 subplot(2,1,2);
94 gf_plot(mf0, E, 'mesh','on', 'refine', 1, opt(:));
95 colorbar(min(E),max(E));
96 title('Error estimate')
97 h.color_map = jetcolormap(255);
98 drawnow;
99
100 sleep(1000);
101
102 Index = find(ERR > 1e-3);
103 gf_mesh_set(m, 'refine', Index);
104 gf_mesh_set(m, 'optimize structure');
105 end
106
107 printf('demo refine terminated\n');
+0
-398
interface/src/scilab/demos/demo_static_contact.sce less more
0 // Matlab GetFEM++ interface
1 //
2 // Copyright (C) 2009-2011 Yves Renard.
3 //
4 // This file is a part of GetFEM++
5 //
6 // GetFEM++ is free software; you can redistribute it and/or modify it
7 // under the terms of the GNU Lesser General Public License as published
8 // by the Free Software Foundation; either version 2.1 of the License, or
9 // (at your option) any later version.
10 // This program is distributed in the hope that it will be useful, but
11 // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
13 // License for more details.
14 // You should have received a copy of the GNU Lesser General Public License
15 // along with this program; if not, write to the Free Software Foundation,
16 // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
17 //
18 // Static equilibrium of an elastic solid in contact with a rigid foundation.
19 // Tests the different contact/friction formulations of Getfem.
20 //
21 // This program is used to check that matlab-getfem is working. This is also
22 // a good example of use of GetFEM++.
23 //
24
25 gf_workspace('clear all');
26 path = get_absolute_file_path('demo_static_contact.sce');
27
28 if getos()=='Windows' then
29 // Under Windows, all the trace messages are available in the dos console
30 // Under Linuxs, all the trace messages are redirected to the Scilab console
31 consolebox('on');
32 end
33 gf_util('trace level',3);
34 gf_util('warning level',3);
35
36 // Import the mesh : disc
37 // m = gf_mesh('load', path + 'data/disc_P2_h2.mesh');
38 // m = gf_mesh('load', path + 'data/disc_P2_h1.mesh');
39 // m = gf_mesh('load', path + 'data/disc_P2_h0.5.mesh');
40 // m = gf_mesh('load', path + 'data/disc_P2_h0.25.mesh');
41 // m = gf_mesh('load', path + 'data/disc_P2_h0.15.mesh');
42
43 // Import the mesh : sphere
44 // m = gf_mesh('load', path + 'data/sphere_with_quadratic_tetra_8_elts.mesh');
45 m = gf_mesh('load', path + 'data/sphere_with_quadratic_tetra_80_elts.mesh');
46 // m = gf_mesh('load', path + 'data/sphere_with_quadratic_tetra_400_elts.mesh');
47 // m = gf_mesh('load', path + 'data/sphere_with_quadratic_tetra_2000_elts.mesh');
48 // m = gf_mesh('load', path + 'data/sphere_with_quadratic_tetra_16000_elts.mesh');
49
50 d = gf_mesh_get(m, 'dim'); // Mesh dimension
51
52 // Parameters of the model
53 clambda = 1; // Lame coefficient
54 cmu = 1; // Lame coefficient
55 friction_coeff = 0.4; // coefficient of friction
56 vertical_force = 0.05; // Volumic load in the vertical direction
57 r = 10; // Augmentation parameter
58 condition_type = 0; // 0 = Explicitely kill horizontal rigid displacements
59 // 1 = Kill rigid displacements using a global penalization
60 // 2 = Add a Dirichlet condition on the top of the structure
61 penalty_parameter = 1E-6; // Penalization coefficient for the global penalization
62
63 if (d == 2) then
64 cpoints = [0, 0]; // constraigned points for 2d
65 cunitv = [1, 0]; // corresponding constraigned directions for 2d
66 else
67 cpoints = [0, 0, 0, 0, 0, 0, 5, 0, 5]; // constraigned points for 3d
68 cunitv = [1, 0, 0, 0, 1, 0, 0, 1, 0]; // corresponding constraigned directions for 3d
69 end
70
71 niter = 100; // Maximum number of iterations for Newton's algorithm.
72 plot_mesh = %t;
73 version = 13; // 1 : frictionless contact and the basic contact brick
74 // 2 : contact with 'static' Coulomb friction and basic contact brick
75 // 3 : frictionless contact and the contact with a
76 // rigid obstacle brick
77 // 4 : contact with 'static' Coulomb friction and the contact with a
78 // rigid obstacle brick
79 // 5 : frictionless contact and the integral brick
80 // Newton and Alart-Curnier augmented lagrangian,
81 // unsymmetric version
82 // 6 : frictionless contact and the integral brick
83 // Newton and Alart-Curnier augmented lagrangian, symmetric
84 // version.
85 // 7 : frictionless contact and the integral brick
86 // Newton and Alart-Curnier augmented lagrangian,
87 // unsymmetric version with an additional augmentation.
88 // 8 : frictionless contact and the integral brick
89 // New unsymmetric method.
90 // 9 : frictionless contact and the integral brick : Uzawa
91 // on the Lagrangian augmented by the penalization term.
92 // 10 : contact with 'static' Coulomb friction and the integral brick
93 // Newton and Alart-Curnier augmented lagrangian,
94 // unsymmetric version.
95 // 11 : contact with 'static' Coulomb friction and the integral brick
96 // Newton and Alart-Curnier augmented lagrangian,
97 // nearly symmetric version.
98 // 12 : contact with 'static' Coulomb friction and the integral brick
99 // Newton and Alart-Curnier augmented lagrangian,
100 // unsymmetric version with an additional augmentation.
101 // 13 : contact with 'static' Coulomb friction and the integral brick
102 // New unsymmetric method.
103 // 14 : contact with 'static' Coulomb friction and the integral brick : Uzawa
104 // on the Lagrangian augmented by the penalization term.
105 // 15 : penalized contact with 'static' Coulomb friction (r is the penalization
106 // coefficient).
107 // Signed distance representing the obstacle
108 if (d == 2) then obstacle = 'y'; else obstacle = 'z'; end;
109
110 // Selection of the contact and Dirichlet boundaries
111 GAMMAC = 1; GAMMAD = 2;
112
113 border = gf_mesh_get(m,'outer faces');
114 normals = gf_mesh_get(m, 'normal of faces', border);
115 contact_boundary = border(:, find(normals(d, :) < -0.01));
116 gf_mesh_set(m, 'region', GAMMAC, contact_boundary);
117 contact_boundary = border(:, find(normals(d, :) > 0.01));
118 gf_mesh_set(m, 'region', GAMMAD, contact_boundary);
119
120 // Finite element methods
121 u_degree = 2;
122 lambda_degree = 2;
123
124 mfu = gf_mesh_fem(m, d);
125 gf_mesh_fem_set(mfu, 'classical fem', u_degree);
126 mfd = gf_mesh_fem(m, 1);
127 gf_mesh_fem_set(mfd, 'classical fem', u_degree);
128 mflambda = gf_mesh_fem(m, 1); // used only by versions 5 to 13
129 gf_mesh_fem_set(mflambda, 'classical fem', lambda_degree);
130 mfvm = gf_mesh_fem(m, 1);
131 gf_mesh_fem_set(mfvm, 'classical discontinuous fem', u_degree-1);
132
133 // Integration method
134 mim = gf_mesh_im(m, 4);
135 if (d == 2) then
136 mim_friction = gf_mesh_im(m, ...
137 gf_integ('IM_STRUCTURED_COMPOSITE(IM_TRIANGLE(4),4)'));
138 else
139 mim_friction = gf_mesh_im(m, ...
140 gf_integ('IM_STRUCTURED_COMPOSITE(IM_TETRAHEDRON(5),4)'));
141 end
142
143 // Plot the mesh
144 if (plot_mesh) then
145 scf(1); clf();
146 gf_plot_mesh(m, 'regions', [GAMMAC]);
147 title('Mesh and contact boundary (in red)');
148 sleep(100);
149 end
150
151 // Volumic density of force
152 nbdofd = gf_mesh_fem_get(mfd, 'nbdof');
153 nbdofu = gf_mesh_fem_get(mfu, 'nbdof');
154 F = zeros(nbdofd*d, 1);
155 F(d:d:nbdofd*d) = -vertical_force;
156
157 // Elasticity model
158 md = gf_model('real');
159 gf_model_set(md, 'add fem variable', 'u', mfu);
160 gf_model_set(md, 'add initialized data', 'cmu', [cmu]);
161 gf_model_set(md, 'add initialized data', 'clambda', [clambda]);
162 gf_model_set(md, 'add isotropic linearized elasticity brick', mim, 'u', ...
163 'clambda', 'cmu');
164 gf_model_set(md, 'add initialized fem data', 'volumicload', mfd, F);
165 gf_model_set(md, 'add source term brick', mim, 'u', 'volumicload');
166
167 if (condition_type == 2) then
168 Ddata = zeros(1, d); Ddata(d) = -5;
169 gf_model_set(md, 'add initialized data', 'Ddata', Ddata);
170 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', u_degree, GAMMAD, 'Ddata');
171 elseif (condition_type == 0) then
172 gf_model_set(md, 'add initialized data', 'cpoints', cpoints);
173 gf_model_set(md, 'add initialized data', 'cunitv', cunitv);
174 gf_model_set(md, 'add pointwise constraints with multipliers', 'u', 'cpoints', 'cunitv');
175 elseif (condition_type == 1) then
176 // Small penalty term to avoid rigid motion (should be replaced by an
177 // explicit treatment of the rigid motion with a constraint matrix)
178 gf_model_set(md, 'add initialized data', 'penalty_param', ...
179 [penalty_parameter]);
180 gf_model_set(md, 'add mass brick', mim, 'u', 'penalty_param');
181 end
182
183 // The contact condition
184
185 cdof = gf_mesh_fem_get(mfu, 'dof on region', GAMMAC);
186 nbc = size(cdof, 2) / d;
187
188 if (nbc <= 0) then
189 disp('No contact zone');
190 return;
191 end
192
193 solved = %f;
194 if (version == 1 | version == 2) then // defining the matrices BN and BT by hand
195 contact_dof = cdof(d:d:nbc*d);
196 contact_nodes = gf_mesh_fem_get(mfu, 'basic dof nodes', contact_dof);
197 BN = spzeros(nbc, nbdofu);
198 ngap = zeros(nbc, 1);
199 for i = 1:nbc
200 BN(i, contact_dof(i)) = -1.0;
201 ngap(i) = contact_nodes(d, i);
202 end
203
204 if (version == 2) then
205 BT = spzeros(nbc*(d-1), nbdofu);
206 for i = 1:nbc
207 for j = 1:d-1
208 BT(j+(i-1)*(d-1), contact_dof(i)-d+j) = 1.0;
209 end
210 end
211 end
212
213 gf_model_set(md, 'add variable', 'lambda_n', nbc);
214 gf_model_set(md, 'add initialized data', 'r', [r]);
215 if (version == 2) then
216 gf_model_set(md, 'add variable', 'lambda_t', nbc * (d-1));
217 gf_model_set(md, 'add initialized data', 'friction_coeff', ...
218 [friction_coeff]);
219 end
220 gf_model_set(md, 'add initialized data', 'ngap', ngap);
221 gf_model_set(md, 'add initialized data', 'alpha', ones(nbc, 1));
222 if (version == 1) then
223 gf_model_set(md, 'add basic contact brick', 'u', 'lambda_n', 'r', ...
224 BN, 'ngap', 'alpha', 1);
225 else
226 gf_model_set(md, 'add basic contact brick', 'u', 'lambda_n', ...
227 'lambda_t', 'r', BN, BT, 'friction_coeff', 'ngap', 'alpha', 1);
228 end
229 elseif (version == 3 | version == 4) then // BN and BT defined by contact brick
230
231 gf_model_set(md, 'add variable', 'lambda_n', nbc);
232 gf_model_set(md, 'add initialized data', 'r', [r]);
233 if (version == 3) then
234 gf_model_set(md, 'add nodal contact with rigid obstacle brick', mim, 'u', ...
235 'lambda_n', 'r', GAMMAC, obstacle, 1);
236 else
237 gf_model_set(md, 'add variable', 'lambda_t', nbc * (d-1));
238 gf_model_set(md, 'add initialized data', 'friction_coeff', ...
239 [friction_coeff]);
240 gf_model_set(md, 'add nodal contact with rigid obstacle brick', mim, 'u', ...
241 'lambda_n', 'lambda_t', 'r', 'friction_coeff', GAMMAC, ...
242 obstacle, 1);
243 end
244
245 elseif (version >= 5 & version <= 8) then // The integral version, Newton
246
247 ldof = gf_mesh_fem_get(mflambda, 'dof on region', GAMMAC);
248 mflambda_partial = gf_mesh_fem('partial', mflambda, ldof);
249 gf_model_set(md, 'add fem variable', 'lambda_n', mflambda_partial);
250 gf_model_set(md, 'add initialized data', 'r', [r]);
251 OBS = gf_mesh_fem_get_eval(mfd, list(obstacle));
252 gf_model_set(md, 'add initialized fem data', 'obstacle', mfd, OBS);
253 gf_model_set(md, 'add integral contact with rigid obstacle brick', ...
254 mim_friction, 'u', 'lambda_n', 'obstacle', 'r', GAMMAC, version-4);
255
256 elseif (version == 9) then // The integral version, Uzawa on the augmented Lagrangian
257
258 ldof = gf_mesh_fem_get(mflambda, 'dof on region', GAMMAC);
259 mflambda_partial = gf_mesh_fem('partial', mflambda, ldof);
260 nbc = gf_mesh_fem_get(mflambda_partial, 'nbdof');
261 OBS = gf_mesh_fem_get_eval(mfd, list(obstacle));
262 M = gf_asm('mass matrix', mim, mflambda_partial, mflambda_partial, GAMMAC);
263 lambda_n = zeros(1, nbc);
264 gf_model_set(md, 'add initialized fem data', 'lambda_n', mflambda_partial, lambda_n);
265 gf_model_set(md, 'add initialized data', 'r', [r]);
266 OBS = gf_mesh_fem_get_eval(mfd, list(obstacle));
267 gf_model_set(md, 'add initialized fem data', 'obstacle', mfd, OBS);
268 gf_model_set(md, 'add penalized contact with rigid obstacle brick', mim_friction, 'u', ...
269 'obstacle', 'r', GAMMAC, 'lambda_n', 2);
270
271 for ii=1:100
272 printf('iteration %d\n', ii);
273 gf_model_get(md, 'solve', 'max_res', 1E-9, 'max_iter', niter); // , 'very noisy');
274 U = gf_model_get(md, 'variable', 'u');
275 lambda_n_old = lambda_n;
276 lambda_n = (M\ gf_asm('integral contact Uzawa projection', GAMMAC, mim_friction, mfu, U, mflambda_partial, lambda_n, mfd, OBS, r))';
277 gf_model_set(md, 'variable', 'lambda_n', lambda_n);
278 difff = max(abs(lambda_n-lambda_n_old));
279 printf('diff : %g\n', difff/max(abs(lambda_n)));
280 // pause;
281 if (difff/max(abs(lambda_n)) < penalty_parameter) then break; end;
282 end
283
284 solved = %t;
285
286 elseif (version >= 10 & version <= 13) then // The integral version with friction, Newton
287
288 gf_mesh_fem_set(mflambda, 'qdim', d);
289 ldof = gf_mesh_fem_get(mflambda, 'dof on region', GAMMAC);
290 mflambda_partial = gf_mesh_fem('partial', mflambda, ldof);
291 gf_model_set(md, 'add fem variable', 'lambda', mflambda_partial);
292 gf_model_set(md, 'add initialized data', 'r', [r]);
293 gf_model_set(md, 'add initialized data', 'friction_coeff', [friction_coeff]);
294 OBS = gf_mesh_fem_get_eval(mfd, list(obstacle));
295 gf_model_set(md, 'add initialized fem data', 'obstacle', mfd, OBS);
296 gf_model_set(md, 'add integral contact with rigid obstacle brick', mim_friction, 'u', ...
297 'lambda', 'obstacle', 'r', 'friction_coeff', GAMMAC, version-9);
298
299 elseif (version == 14) then // The integral version, Uzawa on the augmented Lagrangian with friction
300
301 gf_mesh_fem_set(mflambda, 'qdim', d);
302 ldof = gf_mesh_fem_get(mflambda, 'dof on region', GAMMAC);
303 mflambda_partial = gf_mesh_fem('partial', mflambda, ldof);
304 nbc = gf_mesh_fem_get(mflambda_partial, 'nbdof');
305 gf_model_set(md, 'add initialized data', 'friction_coeff', [friction_coeff]);
306 OBS = gf_mesh_fem_get_eval(mfd, list(obstacle));
307 M = gf_asm('mass matrix', mim, mflambda_partial, mflambda_partial, GAMMAC);
308 lambda = zeros(1, nbc);
309 gf_model_set(md, 'add initialized fem data', 'lambda', mflambda_partial, lambda);
310 gf_model_set(md, 'add initialized data', 'r', [r]);
311 OBS = gf_mesh_fem_get_eval(mfd, list(obstacle));
312 gf_model_set(md, 'add initialized fem data', 'obstacle', mfd, OBS);
313 gf_model_set(md, 'add penalized contact with rigid obstacle brick', mim_friction, 'u', ...
314 'obstacle', 'r', 'friction_coeff', GAMMAC, 2, 'lambda');
315
316 for ii=1:100
317 printf('iteration %d\n', ii);
318 gf_model_get(md, 'solve', 'max_res', 1E-9, 'max_iter', niter); // , 'very noisy');
319 U = gf_model_get(md, 'variable', 'u');
320 lambda_old = lambda;
321 lambda = (M\ gf_asm('integral contact Uzawa projection', GAMMAC, mim_friction, mfu, U, mflambda_partial, lambda, mfd, OBS, r, friction_coeff))';
322 gf_model_set(md, 'variable', 'lambda', lambda);
323 difff = max(abs(lambda-lambda_old));
324 printf('diff : %g\n', difff/max(abs(lambda)));
325 // pause;
326 if (difff/max(abs(lambda)) < penalty_parameter) then break; end;
327 end
328
329 solved = %t;
330
331 elseif (version == 15) then
332
333 gf_model_set(md, 'add initialized data', 'r', [r]);
334 gf_model_set(md, 'add initialized data', 'friction_coeff', [friction_coeff]);
335 OBS = gf_mesh_fem_get_eval(mfd, list(obstacle));
336 gf_model_set(md, 'add initialized fem data', 'obstacle', mfd, OBS);
337 gf_model_set(md, 'add penalized contact with rigid obstacle brick', mim_friction, 'u', ...
338 'obstacle', 'r', 'friction_coeff', GAMMAC);
339
340 else
341 error('Inexistent version');
342 end
343
344 // Solve the problem
345 if (~solved) then
346 gf_model_get(md, 'solve', 'max_res', 1E-9, 'very noisy', 'max_iter', niter); // , 'lsearch', 'simplest'); // , 'with pseudo potential');
347 end
348
349 U = gf_model_get(md, 'variable', 'u');
350 // lambda_n = gf_model_get(md, 'variable', 'lambda_n');
351 VM = gf_model_get(md, 'compute_isotropic_linearized_Von_Mises_or_Tresca', ...
352 'u', 'clambda', 'cmu', mfvm);
353
354
355 // set a custom colormap
356 // r=[0.7 .7 .7]; l = r($,:); s=63; s1=20; s2=25; s3=48;s4=55; for i=1:s, c1 = max(min((i-s1)/(s2-s1),1),0);c2 = max(min((i-s3)/(s4-s3),1),0); r($+1,:)=(1-c2)*((1-c1)*l + c1*[1 0 0]) + c2*[1 .8 .2]; end; colormap(r);
357
358 h = scf(2); clf();
359 h.color_map = gf_colormap('chouette');
360
361 if (d == 3) then
362 c = [0.1;0;20];
363 x = [1;0;0];
364 y = [0;1;0];
365 z = [0;0;1];
366 // Whole boundary
367 // sl2 = gf_slice(list('boundary',list('none')), m, 5);
368 // Slice, 3 planes
369 // sl2 = gf_slice(list('boundary',list('union',list('planar',+1,c,x),list('planar',+1,c,y),list('planar',+1,c,z))),m,5);
370 // Slice, 2 planes
371 // sl2 = gf_slice(list('boundary',list('union',list('planar',+1,c,x),list('planar',+1,c,y))),m,5);
372 // Slice, 1 plane
373 sl2 = gf_slice(list('boundary',list('planar',+1,c,x)), m, 5);
374
375 P = gf_slice_get(sl2,'pts'); dP = gf_compute(mfu,U,'interpolate on',sl2);
376 gf_slice_set(sl2, 'pts', P+dP);
377 VMsl = gf_compute(mfvm,VM,'interpolate on',sl2);
378 //set(gcf,'renderer','zbuffer');
379 gf_plot_slice(sl2,'mesh','on','mesh_slice_edges','off','data',VMsl);
380 //view(-80,-15); axis on; camlight;
381 // map=[1:-1/10:0]'*[1 1 1]; colormap(map); // for NB
382
383 // gf_plot(mfvm, VM, 'mesh', 'off', 'cvlst', ...
384 // gf_mesh_get(mfu,'outer faces'), 'deformation', U, ...
385 // 'deformation_mf', mfu, 'deformation_scale', 1, 'refine', 8);
386 // view(-5,-10); camlight; colormap(map);
387 xlabel('x'); ylabel('y'); zlabel('z');
388 title('Sliced deformed configuration (not really a small deformation of course ...)');
389 else
390 gf_plot(mfvm, VM, 'deformed_mesh', 'on', 'deformation', U, ...
391 'deformation_mf', mfu, 'deformation_scale', 1, 'refine', 8);
392 xlabel('x'); ylabel('y');
393 title('Deformed configuration (not really a small deformation of course ...)');
394 end
395
396 //colorbar;
397 sleep(100);
+0
-76
interface/src/scilab/demos/demo_step_by_step.sce less more
0 lines(0);
1 stacksize('max');
2
3 path = get_absolute_file_path('demo_step_by_step.sce');
4
5 printf('demo step_by_step started\n');
6
7 if getos()=='Windows' then
8 // Under Windows, all the trace messages are available in the dos console
9 // Under Linuxs, all the trace messages are redirected to the Scilab console
10 consolebox('on');
11 end
12 gf_util('trace level',3);
13 gf_util('warning level',3);
14
15 gf_workspace('clear all');
16
17 // creation of a simple cartesian mesh
18 m = gf_mesh('cartesian', 0:0.1:1.1, 0:0.1:1.1);
19
20 // create a MeshFem of for a field of dimension 1 (i.e. a scalar field)
21 mf = gf_mesh_fem(m, 1);
22
23 // assign the Q2 fem to all convexes of the MeshFem
24 gf_mesh_fem_set(mf,'fem',gf_fem('FEM_QK(2,2)'));
25
26 // view the expression of its basis functions on the reference convex
27 printf('The expression of its basis functions on the reference convex\n');
28 disp(gf_fem_get(gf_fem('FEM_QK(2,2)'),'poly_str'));
29
30 // an exact integration will be used
31 mim = gf_mesh_im(m, gf_integ('IM_GAUSS_PARALLELEPIPED(2,4)'));
32
33 // detect the border of the mesh
34 border = gf_mesh_get(m,'outer_faces');
35
36 // mark it as boundary #42
37 gf_mesh_set(m,'region',42, border);
38
39
40 // empty real model
41 md = gf_model('real');
42
43 // declare that "u" is an unknown of the system
44 // on the finite element method `mf`
45 gf_model_set(md, 'add fem variable', 'u', mf);
46
47 // add generic elliptic brick on "u"
48 gf_model_set(md, 'add Laplacian brick', mim, 'u');
49
50 // add Dirichlet condition
51 Uexact = gf_mesh_fem_get_eval(mf, list('(x-.5).^2 + (y-.5).^2 + x/5 - y/3'));
52 gf_model_set(md, 'add initialized fem data', 'DirichletData', mf, Uexact);
53 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mf, 42, 'DirichletData');
54
55 // add source term
56 f = gf_mesh_fem_get_eval(mf, list('2*(x.^2+y.^2)-2*(x+y)+20*x.^3'));
57 gf_model_set(md, 'add initialized fem data', 'VolumicData', mf, f);
58 gf_model_set(md, 'add source term brick', mim, 'u', 'VolumicData');
59
60 // solve the linear system
61 gf_model_get(md, 'solve');
62
63 // extracted solution
64 u = gf_model_get(md, 'variable', 'u');
65
66
67 // export computed solution
68 gf_mesh_fem_get(mf,'export_to_pos', path + '/sol.pos',u,'Computed solution');
69
70 // display
71 hh = scf();
72 hh.color_map = jetcolormap(255);
73 gf_plot(mf, u, 'mesh','on');
74
75 printf('demo step_by_step terminated\n');
+0
-93
interface/src/scilab/demos/demo_stokes_3D_tank.sce less more
0 lines(0);
1 stacksize('max');
2
3 path = get_absolute_file_path('demo_stokes_3D_tank.sce');
4
5 printf('demo stokes_3D_tank started\n');
6
7 if getos()=='Windows' then
8 // Under Windows, all the trace messages are available in the dos console
9 // Under Linuxs, all the trace messages are redirected to the Scilab console
10 consolebox('on');
11 end
12 gf_util('trace level',3);
13 gf_util('warning level',3);
14
15 gf_workspace('clear all');
16
17 disp('3D stokes demonstration on a quadratic mesh');
18
19 compute = input(' 1:compute the solution\n 0:load a previously computed solution\n ? ');
20
21 viscosity = 10;
22
23 R1 = list(list('9-(y.^2+(z-6.0).^2)'),list(0),list(0));
24 R2 = list(list('9-(y.^2+(z-6.0).^2)'),list(0),list(0));
25 R4 = list(list(0),list(0),list(0));
26
27 m = gf_mesh('import','GiD',path + 'data/tank_quadratic_2500.GiD.msh');
28 mfu = gf_mesh_fem(m,3);
29 mfp = gf_mesh_fem(m,1);
30 mfd = gf_mesh_fem(m,1);
31 mim = gf_mesh_im(m, gf_integ('IM_TETRAHEDRON(5)'));
32
33 gf_mesh_fem_set(mfu,'fem',gf_fem('FEM_PK(3,2)'));
34 gf_mesh_fem_set(mfd,'fem',gf_fem('FEM_PK(3,2)'));
35 gf_mesh_fem_set(mfp,'fem',gf_fem('FEM_PK(3,1)'));
36
37 all_faces = gf_mesh_get(m, 'outer faces', gf_mesh_get(m, 'cvid'));
38
39 P = gf_mesh_get(m,'pts');
40 INpid = find(abs(P(1,:)+25) < 1e-4);
41 OUTpid = find(abs(P(1,:)-25) < 1e-4);
42 TOPpid = find(abs(P(3,:)-20) < 1e-4);
43 INfaces = gf_mesh_get(m, 'faces from pid', INpid);
44 OUTfaces = gf_mesh_get(m, 'faces from pid', OUTpid);
45 TOPfaces = gf_mesh_get(m, 'faces from pid', TOPpid);
46
47 gf_mesh_set(m, 'region', 1, INfaces);
48 gf_mesh_set(m, 'region', 2, OUTfaces);
49 gf_mesh_set(m, 'region', 3, TOPfaces);
50 gf_mesh_set(m, 'region', 4, _setdiff(all_faces',union(union(INfaces',OUTfaces','r'),TOPfaces','r'),'rows')');
51
52 disp(sprintf('nbdof: mfu=%d, mfp=%d',gf_mesh_fem_get(mfu,'nbdof'),gf_mesh_fem_get(mfp,'nbdof')));
53
54 if (compute) then
55 md = gf_model('real');
56 gf_model_set(md, 'add fem variable', 'u', mfu);
57 gf_model_set(md, 'add initialized data', 'lambda', [0]);
58 gf_model_set(md, 'add initialized data', 'mu', [viscosity]);
59 gf_model_set(md, 'add isotropic linearized elasticity brick', mim, 'u', 'lambda', 'mu');
60 gf_model_set(md, 'add fem variable', 'p', mfp);
61 gf_model_set(md, 'add linear incompressibility brick', mim, 'u', 'p');
62 gf_model_set(md, 'add variable', 'mult_spec', 1);
63
64 gf_model_set(md, 'add constraint with multipliers', 'p', 'mult_spec', sparse(ones(1, gf_mesh_fem_get(mfp, 'nbdof'))), [0]);
65 gf_model_set(md, 'add initialized data', 'NeumannData', [0 -10 0]);
66 gf_model_set(md, 'add source term brick', mim, 'u', 'NeumannData', 1);
67 gf_model_set(md, 'add initialized fem data', 'Dir1data', mfd, gf_mesh_fem_get_eval(mfd, R1));
68 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mfu, 1, 'Dir1data');
69 gf_model_set(md, 'add initialized fem data', 'Dir2data', mfd, gf_mesh_fem_get_eval(mfd, R2));
70 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mfu, 2, 'Dir2data');
71 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mfu, 3);
72 gf_model_set(md, 'add initialized fem data', 'Dir3data', mfd, gf_mesh_fem_get_eval(mfd, R4));
73 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mfu, 4, 'Dir3data');
74
75 disp('running solve... can take some minutes and needs ~600MB of memory');
76 t0 = timer();
77
78 gf_model_get(md, 'solve', 'lsolver', 'superlu', 'noisy');
79 disp(sprintf('solve done in %.2f sec', timer()-t0));
80
81 U = gf_model_get(md, 'variable', 'u');
82 P = gf_model_get(md, 'variable', 'p');
83
84 save(path + '/demo_stokes_3D_tank_UP.mat',U,P);
85 disp('[the solution has been saved in ''demo_stokes_3D_tank_UP.mat'']');
86 else
87 load(path + '/demo_stokes_3D_tank_UP.mat');
88 end
89
90 disp('Got a solution, now you can call demo_stokes_3D_tank_draw to generate graphics');
91
92 printf('demo stokes_3D_tank terminated\n');
+0
-73
interface/src/scilab/demos/demo_stokes_3D_tank_draw.sce less more
0 lines(0);
1 stacksize('max');
2
3 path = get_absolute_file_path('demo_stokes_3D_tank_draw.sce');
4
5 if getos()=='Windows' then
6 // Under Windows, all the trace messages are available in the dos console
7 // Under Linuxs, all the trace messages are redirected to the Scilab console
8 consolebox('on');
9 end
10 gf_util('trace level',3);
11 gf_util('warning level',3);
12
13 if (exists('U')~=1 | exists('P') ~= 1) then
14 error('run demo_stokes_3D_tank2 first');
15 end
16
17 // a nice colormap
18 c = [0.0 0.0 1.0;
19 0.0 0.5 1.0;
20 0.0 1.0 0.5;
21 0.0 1.0 0.0;
22 0.5 1.0 0.0;
23 1.0 0.5 0.0;
24 1.0 0.4 0.0;
25 1.0 0.0 0.0;
26 1.0 0.2 0.0;
27 1.0 0.4 0.0;
28 1.0 0.6 0.0;
29 1.0 0.8 0.0];
30
31 h = scf();
32 h.color_map = c;
33
34 // slice the mesh with two half spaces
35 sl = gf_slice(list('boundary',list('intersection',list('planar',+1,[0;0;0],[0;1;0]),list('planar',+1,[0;0;0],[1;0;0]))),m,6);
36 Usl = gf_compute(mfu,U,'interpolate on', sl);
37 Psl = gf_compute(mfp,P,'interpolate on', sl);
38
39 drawlater;
40 gf_plot_slice(sl,'mesh_faces','on','mesh','on','data',sqrt(sum(Usl.^2,1)),'mesh_slice_edges','off');
41 drawnow;
42
43 sl = gf_slice(list('boundary',list('intersection',list('planar',+1,[0;0;6],[0;0;-1]),list('planar',+1,[0;0;0],[0;1;0]))),m,6);
44 Usl = gf_compute(mfu,U,'interpolate on', sl);
45 Psl = gf_compute(mfp,P,'interpolate on', sl);
46
47 drawlater;
48 gf_plot_slice(sl,'mesh_faces','on','mesh','on','data',sqrt(sum(Usl.^2,1)),'mesh_slice_edges','off');
49 drawnow;
50
51 sl2 = gf_slice(list('boundary',list('planar',+1,[0;0;0],[0;1;0])),m,6,_setdiff(all_faces',TOPfaces','rows')');
52 drawlater;
53 gf_plot_slice(sl2,'mesh_faces','off','mesh','on','pcolor','off');
54 drawnow;
55
56 // streamline "starting" points
57 hh = [1 5 9 12.5 16 19.5];
58 H = [zeros(2,length(hh));hh];
59
60 // compute the streamlines
61 tsl = gf_slice('streamlines',mfu,U,H);
62 Utsl = gf_compute(mfu,U,'interpolate on', tsl);
63
64 // render them with "tube plot"
65 drawlater;
66 [a,h] = gf_plot_slice(tsl,'mesh','off','tube_radius',.2,'tube_color','red');
67 title('Demo Stokes Tank 3D');
68 drawnow;
69
70 h.color_map = c;
71
72 printf('demo stokes_3D_tank_draw terminated\n');
+0
-465
interface/src/scilab/demos/demo_structural_optimization.sce less more
0 // Copyright (C) 2009 Alassane SY, Yves Renard.
1 // Copyright (C) 2009-2010 Yann Collette.
2 //
3 // This file is a part of GetFEM++
4 //
5 // GetFEM++ is free software; you can redistribute it and/or modify it
6 // under the terms of the GNU Lesser General Public License as published
7 // by the Free Software Foundation; either version 2.1 of the License, or
8 // (at your option) any later version.
9 // This program is distributed in the hope that it will be useful, but
10 // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
12 // License for more details.
13 // You should have received a copy of the GNU Lesser General Public License
14 // along with this program; if not, write to the Free Software Foundation,
15 // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
16 //
17 // Shape optimization of a structure with a coupling between topological and
18 // shape gradient (with a fictitious domain approach).
19 //
20 // This program is used to check that matlab-getfem is working. This is
21 // also a good example of use of GetFEM++.
22 //
23
24 lines(0);
25 stacksize('max');
26
27 path = get_absolute_file_path('demo_structural_optimization.sce');
28
29 printf('demo structural_optimization started\n');
30
31 if getos()=='Windows' then
32 // Under Windows, all the trace messages are available in the dos console
33 // Under Linuxs, all the trace messages are redirected to the Scilab console
34 consolebox('on');
35 end
36 gf_util('trace level',3);
37 gf_util('warning level',3);
38
39 gf_workspace('clear all');
40
41 Do_Plot = %T;
42
43 // parameters
44
45 TEST_CASE = 1; // 0 : 2D, initial holes, shape gradient only
46 // 1 : 2D, no initial hole, coupling with topological gradient
47 // 2 : 3D, initial holes, shape gradient only
48 // 3 : 3D, no initial hole, coupling with topological gradient
49
50 select TEST_CASE
51 case 0 then
52 N = 2;
53 initial_holes = 1;
54 case 1 then
55 N = 2;
56 initial_holes = 0;
57 case 2 then
58 N = 3;
59 initial_holes = 1;
60 case 3 then
61 N = 3;
62 initial_holes = 0;
63 end
64
65 k = 1; // Degree of the finite element method for u
66 lambda = 1; // Lame coefficient
67 mu = 1; // Lame coefficient
68
69 if (N == 2) then
70 NY = 40; // Number of elements in y direction
71 level_set_rate = 0.4 / NY;
72 reinitialisation_time = 0.005;
73 threshold_shape = 0.90;
74 if (TEST_CASE == 1) then
75 threshold_topo = 1.3;
76 else
77 threshold_topo = 0;
78 end
79 nbiter = 400;
80 NBDRAW = 20; // Draw solution each NBDRAW iterations
81 else
82 NY = 30;
83 level_set_rate = 0.025 / NY;
84 reinitialisation_time = 0.003;
85 threshold_shape = 15;
86 if (TEST_CASE == 3) then
87 threshold_topo = 30;
88 else
89 threshold_topo = 0;
90 end
91 penalty_param = 1E-6;
92 nbiter = 600;
93 NBDRAW = 5; // Draw solution each NBDRAW iterations
94 end
95
96 hole_radius = max(0.03,2/NY); // Hole radius for topological optimization
97 cg_eps = 1e-8;
98 cg_iter = 100000;
99
100 if (N == 2) then
101 CF = k*NY/40.; // Correction factor. Useful ?
102 else
103 CF = k*NY/8;
104 end
105 threshold_shape = CF * 0.9;
106 threshold_topo = CF * 0.2;
107 NBDRAW = 5; // Draw solution each NBDRAW iterations
108 ls_degree = 1; // Degree of the level-set. Should be one for the moment.
109
110 DEBUG = 0;
111 if (DEBUG) then
112 NG = 3;
113 else
114 NG = 2;
115 end
116
117 // Mesh definition
118 // m = gf_mesh('cartesian', -1:(1/NY):1, -.5:(1/NY):.5);
119 if (N == 2) then
120 m = gf_mesh('regular simplices', -1:(1/NY):1, -.5:(1/NY):.5);
121 else
122 m = gf_mesh('regular simplices', -1:(1/NY):1, -.5:(1/NY):.5, -.5:(1/NY):.5);
123 end
124 pts = gf_mesh_get(m, 'pts');
125
126 // Find the boundary GammaD and GammaN
127 pidleft = find((abs(pts(1, :)+1.0) < 1E-7));
128 fidleft = gf_mesh_get(m, 'faces from pid', pidleft);
129 normals = gf_mesh_get(m, 'normal of faces', fidleft);
130 fidleft = fidleft(:,find(abs(normals(1, :)+1) < 1E-3));
131 GAMMAD = 2;
132 gf_mesh_set(m, 'region', GAMMAD, fidleft);
133
134 pidright = find((abs(pts(1, :)-1.0) < 1E-7));
135 fidright = gf_mesh_get(m, 'faces from pid', pidright);
136 normals = gf_mesh_get(m, 'normal of faces', fidright);
137 fidright = fidright(:,find(abs(normals(1, :)-1) < 1E-3));
138 GAMMAN = 3;
139 gf_mesh_set(m, 'region', GAMMAN, fidright);
140
141 // Definition of the finite element methods
142 _ls = gf_levelset(m, ls_degree);
143 mls = gf_mesh_levelset(m);
144 gf_mesh_levelset_set(mls, 'add', _ls);
145 mf_ls = gf_levelset_get(_ls, 'mf');
146 if (N == 2) then
147 mimls = gf_mesh_im(m, gf_integ('IM_TRIANGLE(4)'));
148 else
149 mimls = gf_mesh_im(m, gf_integ('IM_TETRAHEDRON(5)'));
150 end
151 mf_basic = gf_mesh_fem(m, N);
152 gf_mesh_fem_set(mf_basic,'fem',gf_fem(sprintf('FEM_PK(%d,%d)', N, k)));
153 mf_g = gf_mesh_fem(m, 1);
154 gf_mesh_fem_set(mf_g,'fem', gf_fem(sprintf('FEM_PK_DISCONTINUOUS(%d,%d)', N, k-1)));
155 mf_cont = gf_mesh_fem(m, N);
156 gf_mesh_fem_set(mf_cont,'fem', gf_fem(sprintf('FEM_PK(%d,%d)', N, ls_degree)));
157
158 disp(sprintf('There are %d elasticity dofs', gf_mesh_fem_get(mf_basic, 'nbdof')));
159
160 disp('Computation of mass matrices and preconditioners');
161 timer();
162 Mcont = gf_asm('mass matrix', mimls, mf_cont);
163 //RMcont = sp_cholinc(Mcont, '0');
164 RMcont = sp_cholinc(Mcont);
165 Mcontls = gf_asm('mass matrix', mimls, mf_ls);
166 //RMcontls = sp_cholinc(Mcontls, '0');
167 RMcontls = sp_cholinc(Mcontls);
168 disp(sprintf('Computation done in %g seconds', timer()));
169
170 // Definition of the initial level-set
171 if (initial_holes) then
172 if (N == 2) then
173 ULS = gf_mesh_fem_get_eval(mf_ls, list(list('(-0.6-sin(%pi*4*x).*cos(%pi*4*y))/(4*%pi)')));
174 else
175 ULS = gf_mesh_fem_get_eval(mf_ls, list(list('-(0.6-sin(%pi*4*x).*cos(%pi*4*y).*cos(%pi*4*z))/(4*%pi)')));
176 end
177 else
178 ULS = gf_mesh_fem_get_eval(mf_ls, list(list('x - 2')));
179 end
180
181 // Level-set nodes
182 P = gf_mesh_fem_get(mf_ls, 'basic dof nodes');
183
184 // Force on the right part (Neumann condition)
185 if (N == 2) then
186 F = gf_mesh_fem_get_eval(mf_basic, list(list('0', '-1.0*(abs(y) < 0.05)')));
187 else
188 F = gf_mesh_fem_get_eval(mf_basic, list(list('0', '0', '-20*(abs(y) < 0.05).*(abs(z) < 0.05)')));
189 end
190
191 if Do_Plot then
192 h = scf();
193 h.color_map = jetcolormap(255);
194 end
195
196 // Model definition
197
198 gf_levelset_set(_ls, 'values', ULS);
199 disp('Adapting the mesh');
200 gf_mesh_levelset_set(mls, 'adapt');
201
202 if (N == 2) then
203 mim = gf_mesh_im('levelset',mls,'inside', gf_integ('IM_TRIANGLE(6)'));
204 else
205 mim = gf_mesh_im('levelset',mls,'inside', gf_integ('IM_TETRAHEDRON(6)'));
206 end
207
208 disp('Mesh adapted');
209 gf_mesh_im_set(mim, 'integ', 4);
210
211 disp('Integration methods adapted');
212 mf = gf_mesh_fem('partial', mf_basic, 1:gf_mesh_fem_get(mf_basic, 'nbdof'));
213
214 md = gf_model('real');
215 gf_model_set(md, 'add fem variable', 'u', mf);
216 gf_model_set(md, 'add initialized data', 'mu', [mu]);
217 gf_model_set(md, 'add initialized data', 'lambda', [lambda]);
218 gf_model_set(md, 'add isotropic linearized elasticity brick', mim, 'u', 'lambda', 'mu');
219 gf_model_set(md, 'add initialized data', 'penalty_param', [1E-8]);
220 gf_model_set(md, 'add mass brick', mim, 'u', 'penalty_param');
221 // gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', 1, GAMMAD);
222 gf_model_set(md,'add Dirichlet condition with penalization', mim, 'u', 1E5, GAMMAD);
223 gf_model_set(md, 'add initialized fem data', 'Force', mf_basic, F);
224 gf_model_set(md, 'add source term brick', mim, 'u', 'Force', GAMMAN);
225
226 // Optimization loop
227 for niter = 1:nbiter
228 timer();
229 gf_workspace('push');
230
231 if (niter > 1) then
232 gf_levelset_set(_ls, 'values', ULS);
233 disp('Adapting the mesh');
234 gf_mesh_levelset_set(mls, 'adapt');
235 disp('Mesh adapted');
236 gf_mesh_im_set(mim, 'adapt');
237 disp('Integration methods adapted');
238 end
239
240 M = gf_asm('mass matrix', mim, mf_basic);
241 D = abs(full(diag(M)));
242 ind = find(D > (1/NY)^N/10000000);
243 gf_mesh_fem_set(mf, 'set partial', ind);
244 // mf = gf_mesh_fem('partial', mf_basic, ind);
245
246 // Solving the direct problem
247 disp('solving the direct problem');
248 gf_model_get(md, 'solve', 'max_res',1e-7); //'noisy');
249 U = gf_model_get(md, 'variable', 'u');
250 nbd = gf_mesh_fem_get(mf_ls, 'nbdof');
251
252 // Computation of indicators (computation of K could be avoided)
253 K = gf_asm('linear elasticity', mim, mf, mf_ls, lambda*ones(1, nbd), mu*ones(1, nbd));
254 disp(sprintf('Elastic energy at iteration %d: %g', niter, U*K*U'));
255 S = gf_asm('volumic','V()+=comp()',mim);
256 if (N == 2) then
257 disp(sprintf('Remaining surface of material: %g', S));
258 else
259 disp(sprintf('Remaining volume of material: %g', S));
260 end
261
262 DU = gf_compute(mf, U, 'gradient', mf_g);
263 EPSU = DU + permute(DU, [2 1 3]);
264
265 // Computation of the shape derivative
266 if (N == 2) then
267 GF1 = (DU(1,1,:) + DU(2,2,:)).^2*lambda + 2*mu*(sum(sum(EPSU.^2, 1), 2));
268 else
269 GF1 = (DU(1,1,:) + DU(2,2,:) + DU(3,3,:)).^2*lambda + 2*mu*(sum(sum(EPSU.^2, 1), 2));
270 end
271 GF = matrix(GF1, 1, size(GF1, 3)) - threshold_shape;
272
273 // computation of the topological gradient
274 if (N == 2) then
275 GT = -%pi*( (lambda+2*mu) / (2*mu*(lambda+mu)) * (4*mu*GF1 + ...
276 2*(lambda-mu)*(lambda+mu)*(DU(1,1,:) + DU(2,2,:)).^2));
277 else
278 GT = -%pi*( (lambda+2*mu) / (mu*(9*lambda+14*mu)) * (20*mu*GF1 + ...
279 2*(3*lambda-2*mu)*(lambda+mu)*(DU(1,1,:) + DU(2,2,:) + DU(3,3,:)).^2));
280 end
281 GT = matrix(GT, 1, size(GT, 3)) + threshold_topo;
282
283 // filtering the gradients
284 M = gf_asm('mass matrix', mim, mf_g);
285 D = abs(full(diag(M)));
286 maxD = max(D);
287 ind = find(D < maxD/40);
288
289 // Extension of the gradient into the hole. Too rough ?
290 GF(ind) = GF(ind) * 0;
291
292 // Threshold on the gradient
293 GF = min(GF, 2*threshold_shape);
294 ind = find(D < maxD/1.2);
295 GT(ind) = GT(ind) * 0 - 20;
296
297 // Drawing the gradients
298 if (modulo(niter,NBDRAW)==0 | niter==1) & Do_Plot then
299 drawlater;
300 clf(h);
301 if (N == 2) then
302 subplot(NG,1,1);
303 gf_plot(mf_g, GF, 'disp_options', 'off', 'refine', 1);
304 title('Shape gradient');
305 //[h1,h2] = gf_plot(mf_ls, ULS, 'contour', 0,'pcolor', ...
306 // 'off', 'disp_options', 'off', 'refine', 3);
307 //h2(1).children(:).thickness = 1;
308 //h2(1).children(:).foreground = color('black');
309 colorbar(min(ULS),max(ULS));
310 if (DEBUG==0) then
311 subplot(NG,1,2);
312 // gf_plot(mf_g, GT, 'disp_options', 'off', 'disp_options', 'off', 'refine', 8);
313 // title('Topological gradient');
314 gf_plot(mf_ls, ULS, 'disp_options', 'off', 'refine', 1);
315 [h1,h2]=gf_plot(mf_ls, ULS, 'contour', 0,'pcolor', 'off', 'disp_options', 'off', 'refine', 3);
316 //set(h2{1},'LineWidth',1);
317 //set(h2{1},'Color','black');
318 title('Level set function');
319 colorbar(min(ULS),max(ULS));
320 end
321 else
322 sl=gf_slice(list('boundary', list('isovalues', -1, mf_ls, ULS, 0.0)), m, 5);
323 // sl=gf_slice(list('isovalues', 0, mf_ls, ULS, 0.0), m, 5);
324 Usl=gf_compute(mf_g, GF,'interpolate on',sl);
325 // P=gf_slice_get(sl,'pts'); P=P([1 3 2],:); gf_slice_set(sl,'pts',P);
326 gf_plot_slice(sl,'data',Usl,'mesh','on','mesh_slice_edges_color', ...
327 [.7 .7 .7],'mesh_edges_color',[.5 .5 1]);
328 colorbar;
329 title('Shape gradient on the remaining volume');
330 end
331 sleep(100);
332 drawnow;
333 end
334
335 [val, i] = max(GT);
336 disp(sprintf('Max value of the topological gradient: %g', val));
337
338 // Making a new hole (topological optimization)
339 if (val > 0) then
340 point = gf_mesh_fem_get(mf_g, 'basic dof nodes', [i]);
341 if (N == 2) then
342 disp(sprintf('Making a new hole whose center is (%g, %g)', point(1), point(2)));
343 ULS = max(ULS, (hole_radius^2 - (P(1,:) - point(1)).^2 - ...
344 (P(2,:) - point(2)).^2)/(2*hole_radius));
345 else
346 disp(sprintf('Making a new hole whose center is (%g, %g, %g)', point(1), point(2), point(3)));
347 ULS = max(ULS, (hole_radius^2 - (P(1,:) - point(1)).^2 - ...
348 (P(2,:) - point(2)).^2 - (P(3,:) - point(3)).^2)/(2*hole_radius));
349 end
350 end
351
352 // Evolution of the level-set thank to shape derivative. Simple version.
353 Mcontls = gf_asm('mass matrix', mimls, mf_ls); // Could be computed only once.
354 // and factorized once !
355 Fdisc = gf_asm('volumic source', mimls, mf_ls, mf_g, GF);
356 //Vcont = Mcontls \ Fdisc;
357 Vcont = sp_cgs(Mcontls, Fdisc, cg_eps, cg_iter, RMcontls);
358 //Vcont = sp_cgne(Mcontls, Fdisc, cg_eps, cg_iter,RMcontls);
359 ULS = ULS - Vcont' * level_set_rate;
360
361 // Evolution of the level-set thank to shape derivative.
362 // Hamilton-Jacobi equation. Less stable.
363
364 // dt = 0.006; NT = 10; ddt = dt / NT;
365 // for t = 0:ddt:dt
366 // DLS = gf_compute(mf_ls, ULS, 'gradient', mf_g);
367 // NORMDLS = sqrt(sum(DLS.^2, 1)) + 0.000001;
368 // GFF = GF ./ NORMDLS;
369 //
370 // if (N == 2) then
371 // V = DLS.*[GFF; GFF];
372 // else
373 // V = DLS.*[GFF; GFF; GFF];
374 // end
375 //
376 // Fdisc = gf_asm('volumic source', mimls, mf_cont, mf_g, V);
377 // // Vcont = Mcont \ Fdisc;
378 // Vcont = sp_cgs(Mcont, Fdisc, cg_eps, cg_iter, RMcont);
379 //
380 // gf_compute(mf_ls, ULS, 'convect', mf_cont,Vcont,ddt,2, 'extrapolation');
381 // end
382
383 Mcont = gf_asm('mass matrix', mimls, mf_cont); // Could be computed only once.
384 // and factorized once !
385
386 if (0) then
387 dt = 0.006; NT = 10; ddt = dt / NT;
388 for t = 0:ddt:dt
389 DLS = gf_compute(mf_ls, ULS, 'gradient', mf_g);
390 NORMDLS = sqrt(sum(DLS.^2, 1)) + 0.000001;
391 GFF = GF ./ NORMDLS;
392
393 if (N == 2) then
394 V = DLS.*[GFF; GFF];
395 else
396 V = DLS.*[GFF; GFF; GFF];
397 end
398
399 Fdisc = gf_asm('volumic source', mimls, mf_cont, mf_g, V);
400 Vcont = Mcont \ Fdisc;
401
402 gf_compute(mf_ls, ULS, 'convect', mf_cont, Vcont, ddt, 2, 'extrapolation');
403 end
404 end
405
406 if (DEBUG & mod(niter, NBDRAW) == 0) & Do_Plot then
407 drawlater;
408 subplot(NG,1,2);
409 gf_plot(mf_ls, ULS, 'disp_options', 'off', 'refine', 3);
410 colorbar(min(ULS),max(ULS));
411 //[h1,h2]=gf_plot(mf_ls, ULS, 'contour', 0,'pcolor', ...
412 // 'off', 'disp_options', 'off', 'refine', 3);
413 //h2(1).children(:).thickness = 1;
414 //h2(1).children(:).foreground = color('black');
415 drawnow;
416 disp('Level set function after convection drawn');
417 sleep(100);
418 end
419
420 // Re-initialization of the level-set
421 dt = reinitialisation_time; NT = 10; ddt = dt / NT;
422 ULS0 = ULS;
423 for t = ddt:ddt:dt
424 DLS = gf_compute(mf_ls, ULS, 'gradient', mf_g);
425 Fdisc = gf_asm('volumic source', mimls, mf_cont, mf_g, DLS);
426 //DLScont = Mcont \ Fdisc;
427 DLScont = sp_cgs(Mcont, Fdisc, cg_eps, cg_iter, RMcont);
428 //DLScont = sp_cgne(Mcont, Fdisc, cg_eps, cg_iter, RMcont);
429 NORMDLS = sqrt(sum(matrix(DLScont, N, size(DLScont, 1)/N).^2, 1)) + 1e-12;
430 SULS = sign(ULS) ./ NORMDLS;
431
432 if (N == 2) then
433 W = DLScont.*matrix([SULS; SULS], N*size(SULS, 2), 1);
434 else
435 W = DLScont.*matrix([SULS; SULS; SULS], N*size(SULS, 2), 1);
436 end;
437
438 gf_compute(mf_ls, ULS, 'convect', mf_cont, W, ddt, 1, 'unchanged');
439 ULS = ULS + ddt * sign(ULS);
440 end
441
442 if (DEBUG & modulo(niter, 3) == 0) & Do_Plot then
443 drawlater;
444 AA = sqrt(sum(DLS.^2, 1));
445 disp(sprintf('Norm dls after: %g %g %g %g', AA(1), AA(2), AA(3), AA(4)));
446 disp(sprintf('Norm dls after: max = %g, min = %g', max(AA), min(AA)));
447
448 subplot(NG,1,3);
449 gf_plot(mf_ls, ULS, 'disp_options', 'off');
450 colorbar(min(ULS),max(ULS));
451 //[h1,h2]=gf_plot(mf_ls, ULS, 'contour', 0,'pcolor', ...
452 // 'off', 'disp_options', 'off');
453 //h2(1).children(:).thickness = 1;
454 //h2(1).children(:).foreground = color('black');
455 drawnow;
456 disp('Drawing the level set function after re-initialization');
457 sleep(100);
458 end
459
460 gf_workspace('pop');
461 disp(sprintf('this iteration took %g minutes', timer()/60));
462 end
463
464 printf('demo structural_optimization terminated\n');
+0
-222
interface/src/scilab/demos/demo_thermo_elasticity_electrical_coupling.sce less more
0 // Deformation of a plate under the coupling of thermal, elasticity, and
1 // electric effects.
2 //
3 //
4 // ______________________________________
5 // /| __ __ __ |->
6 // /| / \ / \ / \ |->
7 // /| | | | | | | |-> F
8 // /| \__/ \__/ \__/ |->
9 // /|______________________________________|->
10 //
11 //
12 // Elastic problem: The plate is clamped at rhe left boundary and a
13 // traction density of force F is prescribed at the right boundary.
14 // Electric problem: The potential is prescribed to be 0V at the right
15 // boundary and 0.1V at the left boundary.
16 // Thermal problem: A thermal insulation condition is prescribed at the
17 // left and hole boudnaries. The remaining boundary and the plate itself
18 // is supposed to be submitted to an heat transfert with respect to the
19 // air at 20°C.
20 // Coupling terms:
21 // - Joule heating: source term sigma|Grad_V|^2
22 // - Dependance of the thermal conductivity in temperature :
23 // sigma = 1/(rho_0(1+alpha(theta-T0)))
24 // with T0 = 20°C, rho_0 the resistance temperature coefficient at T0
25 // and alpha the second resistance temperature coefficient.
26 // - Thermal expansion:
27 // stress_tensor = clambdastar div(u) I + 2 cmu epsilon(u) - beta theta I
28 // with beta = alpha_th E/(1-2nu), alpha_th being the thermal
29 // expansion coefficient.
30 // The first two coupling terms are nonlinear ones.
31
32
33 lines(0);
34 stacksize('max');
35
36 path = get_absolute_file_path('demo_thermo_elasticity_electrical_coupling.sce');
37
38 printf('demo thermo elasticity electrical coupling started\n');
39
40 // trace on;
41
42 if getos()=='Windows' then
43 // Under Windows, all the trace messages are available in the dos console
44 // Under Linuxs, all the trace messages are redirected to the Scilab console
45 consolebox('on');
46 end
47
48 gf_workspace('clear all');
49
50 //
51 // Physical parameters
52 //
53 epsilon = 1.; // Thickness of the plate (cm)
54 E = 21E6; // Young Modulus (N/cm^2)
55 nu = 0.3; // Poisson ratio
56 clambda = E*nu/((1+nu)*(1-2*nu)); // First Lame coefficient (N/cm^2)
57 cmu = E/(2*(1+nu)); // Second Lame coefficient (N/cm^2)
58 clambdastar = 2*clambda*cmu/(clambda+2*cmu); // Lame coefficient for Plane stress (N/cm^2)
59 F = 100E2; // Force density at the right boundary (N/cm^2)
60 kappa = 4.; // Thermal conductivity (W/(cm K))
61 D = 10; // Heat transfert coefficient (W/(K cm^2))
62 air_temp = 20; // Temperature of the air in ??C.
63 alpha_th = 16.6E-6; // Thermal expansion coefficient (/K).
64 T0 = 20; // Reference temperature in ??C.
65 rho_0 = 1.754E-8; // Resistance temperature coefficient at T0 = 20??C
66 alpha = 0.0039; // Second resistance temperature coefficient.
67
68 //
69 // Numerical parameters
70 //
71 h = 2; // Approximate mesh size
72 elements_degree = 2; // Degree of the finite element methods
73 draw_mesh = %t; // Draw the mesh after mesh generation or not
74 solve_in_two_steps = %t; // Solve the elasticity problem separately or not
75
76 //
77 // Mesh generation. Meshes can also been imported from several formats.
78 //
79 mo1 = gf_mesher_object('rectangle', [0 0], [100 25]);
80 mo2 = gf_mesher_object('ball', [25 12.5], 8);
81 mo3 = gf_mesher_object('ball', [50 12.5], 8);
82 mo4 = gf_mesher_object('ball', [75 12.5], 8);
83 mo5 = gf_mesher_object('union', mo2, mo3, mo4);
84 mo = gf_mesher_object('set minus', mo1, mo5);
85
86 disp('Mesh generation');
87 gf_util('trace level', 2); // No trace for mesh generation
88 mesh = gf_mesh('generate', mo, h, 2);
89
90 //
91 // Boundary selection
92 //
93 fb1 = gf_mesh_get(mesh, 'outer faces in box', [1 1], [99 24]); // Boundary of the holes
94 fb2 = gf_mesh_get(mesh, 'outer faces with direction', [ 1 0], 0.01); // Right boundary
95 fb3 = gf_mesh_get(mesh, 'outer faces with direction', [-1 0], 0.01); // Left boundary
96 fb4 = gf_mesh_get(mesh, 'outer faces with direction', [0 1], 0.01); // Top boundary
97 fb5 = gf_mesh_get(mesh, 'outer faces with direction', [0 -1], 0.01); // Bottom boundary
98
99 RIGHT_BOUND = 1; LEFT_BOUND = 2; TOP_BOUND = 3; BOTTOM_BOUND = 4; HOLE_BOUND = 5;
100 gf_mesh_set(mesh, 'region', RIGHT_BOUND, fb2);
101 gf_mesh_set(mesh, 'region', LEFT_BOUND, fb3);
102 gf_mesh_set(mesh, 'region', TOP_BOUND, fb4);
103 gf_mesh_set(mesh, 'region', BOTTOM_BOUND, fb5);
104 gf_mesh_set(mesh, 'region', HOLE_BOUND, fb1);
105 gf_mesh_set(mesh, 'region subtract', RIGHT_BOUND, HOLE_BOUND);
106 gf_mesh_set(mesh, 'region subtract', LEFT_BOUND, HOLE_BOUND);
107 gf_mesh_set(mesh, 'region subtract', TOP_BOUND, HOLE_BOUND);
108 gf_mesh_set(mesh, 'region subtract', BOTTOM_BOUND, HOLE_BOUND);
109
110 if (draw_mesh)
111 scf(1);
112 gf_plot_mesh(mesh, 'refine', 8, 'curved', 'on', 'regions', [RIGHT_BOUND LEFT_BOUND TOP_BOUND BOTTOM_BOUND]);
113 title('Mesh');
114 sleep(1000);
115 end
116
117 //
118 // Definition of finite element methods and integration method
119 //
120
121 mfu = gf_mesh_fem(mesh, 2); // Finite element for the elastic displacement
122 gf_mesh_fem_set(mfu, 'classical fem', elements_degree);
123 mft = gf_mesh_fem(mesh, 1); // Finite element for the temperature and the electrical field
124 gf_mesh_fem_set(mft, 'classical fem', elements_degree);
125 mfvm = gf_mesh_fem(mesh, 1); // Finite element for Von Mises stress interpolation
126 gf_mesh_fem_set(mfvm, 'classical discontinuous fem', elements_degree-1);
127 mim = gf_mesh_im(mesh, elements_degree^2); // Integration method
128
129
130 //
131 // Model definition
132 //
133
134 md=gf_model('real');
135 gf_model_set(md, 'add fem variable', 'u', mfu); // Displacement of the structure
136 gf_model_set(md, 'add fem variable', 'theta', mft); // Temperature
137 gf_model_set(md, 'add fem variable', 'V', mft); // Electric potential
138
139 // Membrane elastic deformation
140 gf_model_set(md, 'add initialized data', 'cmu', [cmu]);
141 gf_model_set(md, 'add initialized data', 'clambdastar', [clambdastar]);
142 gf_model_set(md, 'add isotropic linearized elasticity brick', mim, 'u', 'clambdastar', 'cmu');
143
144 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', elements_degree-1, LEFT_BOUND);
145 gf_model_set(md, 'add initialized data', 'Fdata', [F*epsilon, 0]);
146 gf_model_set(md, 'add source term brick', mim, 'u', 'Fdata', RIGHT_BOUND);
147
148 // Electrical field
149 sigmaps = '(eps/(rho_0*(1+alpha*(theta-T0))))';
150 gf_model_set(md, 'add initialized data', 'eps', [epsilon]);
151 gf_model_set(md, 'add initialized data', 'rho_0', [rho_0]);
152 gf_model_set(md, 'add initialized data', 'alpha', [alpha]);
153 gf_model_set(md, 'add initialized data', 'T0', [T0]);
154 gf_model_set(md, 'add nonlinear generic assembly brick', mim, sigmaeps+'*(Grad_V.Grad_Test_V)');
155 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'V', elements_degree-1, RIGHT_BOUND);
156 gf_model_set(md, 'add initialized data', 'DdataV', [0.1]);
157 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'V', elements_degree-1, LEFT_BOUND, 'DdataV');
158
159 // Thermal problem
160 gf_model_set(md, 'add initialized data', 'kaeps', [kappa*epsilon]);
161 gf_model_set(md, 'add generic elliptic brick', mim, 'theta', 'kaeps');
162 gf_model_set(md, 'add initialized data', 'D2', [D*2]);
163 gf_model_set(md, 'add initialized data', 'D2airt', [air_temp*D*2]);
164 gf_model_set(md, 'add mass brick', mim, 'theta', 'D2');
165 gf_model_set(md, 'add source term brick', mim, 'theta', 'D2airt');
166 gf_model_set(md, 'add initialized data', 'Deps', [D/epsilon]);
167 gf_model_set(md, 'add initialized data', 'Depsairt', [air_temp*D/epsilon]);
168 gf_model_set(md, 'add Fourier Robin brick', mim, 'theta', 'Deps', TOP_BOUND);
169 gf_model_set(md, 'add source term brick', mim, 'theta', 'Depsairt', TOP_BOUND);
170 gf_model_set(md, 'add Fourier Robin brick', mim, 'theta', 'Deps', BOTTOM_BOUND);
171 gf_model_set(md, 'add source term brick', mim, 'theta', 'Depsairt', BOTTOM_BOUND);
172
173 // Joule heating term
174 gf_model_set(md, 'add nonlinear generic assembly brick', mim, '-'+sigmaeps+'*Norm_sqr(Grad_V)*Test_theta');
175
176 // Thermal expansion term
177 gf_model_set(md, 'add initialized data', 'beta', [alpha_th*E/(1-2*nu)]);
178 gf_model_set(md, 'add linear generic assembly brick', mim, 'beta*(T0-theta)*Trace(Grad_Test_u)');
179
180
181 //
182 // Model solve and solution plot
183 //
184 if (solve_in_two_steps)
185 gf_model_set(md, 'disable variable', 'u');
186 disp(sprintf('First problem with %d dofs', gf_model_get(md, 'nbdof')));
187 gf_model_get(md, 'solve', 'max_res', 1E-9, 'max_iter', 100, 'noisy');
188 gf_model_set(md, 'enable variable', 'u');
189 gf_model_set(md, 'disable variable', 'theta');
190 gf_model_set(md, 'disable variable', 'V');
191 disp(sprintf('Second problem with %d dofs', gf_model_get(md, 'nbdof')));
192 gf_model_get(md, 'solve', 'max_res', 1E-9, 'max_iter', 100, 'noisy');
193 else
194 disp(sprintf('Second problem with %d dofs', gf_model_get(md, 'nbdof')));
195 gf_model_get(md, 'solve', 'max_res', 1E-9, 'max_iter', 100, 'noisy');
196 end
197
198
199 U = gf_model_get(md, 'variable', 'u');
200 V = gf_model_get(md, 'variable', 'V');
201 THETA = gf_model_get(md, 'variable', 'theta');
202 VM = gf_model_get(md, 'compute_isotropic_linearized_Von_Mises_or_Tresca', 'u', 'clambdastar', 'cmu', mfvm);
203 CO = matrix(gf_model_get(md, 'interpolation', '-'+sigmaeps+'*Grad_V', mfvm), [2 gf_mesh_fem_get(mfvm, 'nbdof')]);
204
205 hh = scf(2);
206 hh.color_map = jetcolormap(255);
207 subplot(3,1,1);
208 gf_plot(mfvm, VM, 'mesh', 'off', 'deformed_mesh','off', 'deformation', U, 'deformation_mf', mfu, 'deformation_scale', 100, 'refine', 8); colorbar(min(VM),max(VM));
209 title('Von Mises stress in N/cm^2 (on the deformed configuration, scale factor x100)');
210 subplot(3,1,2);
211 drawlater;
212 gf_plot(mft, V, 'mesh', 'off', 'deformed_mesh','off', 'deformation', U, 'deformation_mf', mfu, 'deformation_scale', 100, 'refine', 8); colorbar(min(V),max(V));
213 // gf_plot(mfvm, CO, 'quiver', 'on', 'quiver_density', 0.1, 'mesh', 'off', 'deformed_mesh','off', 'deformation_mf', mfu, 'deformation', U, 'deformation_scale', 100, 'refine', 8);
214 title('Electric potential in Volt (on the deformed configuration, scale factor x100)');
215 drawnow;
216 subplot(3,1,3);
217 gf_plot(mft, THETA, 'mesh', 'off', 'deformed_mesh','off', 'deformation', U, 'deformation_mf', mfu, 'deformation_scale', 100, 'refine', 8); colorbar(min(THETA),max(THETA));
218 title('Temperature in °C (on the deformed configuration, scale factor x100)');
219
220
221 printf('demo thermo elasticity electrical coupling terminated\n');
+0
-166
interface/src/scilab/demos/demo_topological_optimization.sce less more
0 // Copyright (C) 2009 Alassane SY, Yves Renard.
1 // Copyright (C) 2010 Yann Collette.
2 //
3 // This file is a part of GetFEM++
4 //
5 // GetFEM++ is free software; you can redistribute it and/or modify it
6 // under the terms of the GNU Lesser General Public License as published
7 // by the Free Software Foundation; either version 2.1 of the License, or
8 // (at your option) any later version.
9 // This program is distributed in the hope that it will be useful, but
10 // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
12 // License for more details.
13 // You should have received a copy of the GNU Lesser General Public License
14 // along with this program; if not, write to the Free Software Foundation,
15 // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
16 //
17 // Shape optimization with topological gradient
18 // (with a fictitious domain approach).
19 //
20 // This program is used to check that scilab-getfem is working. This is
21 // also a good example of use of GetFEM++.
22 //
23
24 lines(0);
25 stacksize('max');
26
27 path = get_absolute_file_path('demo_topological_optimization.sce');
28
29 printf('demo topological_optimization started\n');
30
31 if getos()=='Windows' then
32 // Under Windows, all the trace messages are available in the dos console
33 // Under Linuxs, all the trace messages are redirected to the Scilab console
34 consolebox('on');
35 end
36 gf_util('trace level',3);
37 gf_util('warning level',3);
38
39 gf_workspace('clear all');
40
41 // parameters
42 NX = 30;
43 ls_degree = 1;
44 alpha = 1;
45 beta = 1;
46 rayon_trous = 0.2;
47 Index = 1;
48
49 // Finite element and integration methods definition
50 m = gf_mesh('cartesian', -.5:(1/NX):.5, -.5:(1/NX):.5);
51 // m=gf_mesh('triangles grid', -.5:(1/NX):.5, -.5:(1/NX):.5);
52 // mim = gf_mesh_im(m, gf_integ('IM_GAUSS_PARALLELEPIPED(2,4)'));
53 mf_basic = gf_mesh_fem(m, 1);
54 gf_mesh_fem_set(mf_basic,'fem',gf_fem('FEM_QK(2,2)'));
55 mls = gf_mesh_levelset(m);
56 ls = gf_levelset(m, ls_degree);
57 gf_mesh_levelset_set(mls, 'add', ls);
58 mf_ls = gf_levelset_get(ls, 'mf');
59 P = gf_mesh_fem_get(mf_ls, 'basic dof nodes');
60
61 x = P(1,:);
62 y = P(2,:);
63 ULS = 1000*ones(1,length(x));
64
65 h = scf();
66 h.color_map = jetcolormap(255);
67
68 // Loop on the topological optimization
69 while(1)
70 gf_workspace('push');
71 gf_levelset_set(ls, 'values', ULS);
72 gf_mesh_levelset_set(mls, 'adapt');
73 mim_bound = gf_mesh_im('levelset', mls, 'boundary', gf_integ('IM_TRIANGLE(6)'));
74 mim = gf_mesh_im('levelset', mls, 'outside', gf_integ('IM_TRIANGLE(6)'));
75 gf_mesh_im_set(mim, 'integ', 4);
76 mf_mult = gf_mesh_fem(m);
77 gf_mesh_fem_set(mf_mult, 'fem', gf_fem('FEM_QK(2,1)'));
78 M = gf_asm('mass matrix', mim, mf_basic);
79 D = abs(full(diag(M)));
80 ind = find(D > 1E-8);
81 mf = gf_mesh_fem('partial', mf_basic, ind);
82 S = gf_asm('volumic','V()+=comp()',mim);
83 printf('remaining surface:'); disp(S);
84
85 // Problem definition (Laplace(u) + u = f)
86 md = gf_model('real');
87 gf_model_set(md, 'add fem variable', 'u', mf);
88 gf_model_set(md, 'add Laplacian brick', mim, 'u');
89 gf_model_set(md, 'add fem data', 'VolumicData', mf_basic);
90 gf_model_set(md, 'add source term brick', mim, 'u', 'VolumicData');
91 gf_model_set(md, 'add initialized data', 'rho', [1.]);
92 gf_model_set(md, 'add mass brick', mim, 'u', 'rho');
93 gf_model_set(md, 'add multiplier', 'mult_dir', mf_mult, 'u');
94
95 // To be completely robust, a stabilization should be used on the Dirichlet
96 // boundary to ensure the inf-sup condition (Nitsche or Barbosa-Hughes)
97 gf_model_set(md, 'add Dirichlet condition with multipliers', ...
98 mim_bound, 'u', 'mult_dir', -1);
99 // Solving the direct problem.
100 U0 = gf_mesh_fem_get_eval(mf_basic, ...
101 list(list('0.4*(3.*sin(%pi*(x+y)) + ((x-0.5).^10 + (y-0.5).^10 + (x+0.5).^10 + (y+0.5).^10))')));
102 gf_model_set(md, 'variable', 'VolumicData', U0);
103 gf_model_get(md, 'solve');
104 U = gf_model_get(md, 'variable', 'u');
105
106 drawlater;
107 clf();
108 subplot(2,1,1);
109 gf_plot(mf, U);
110 U_tmp = gf_levelset_get(ls,'values');
111 [h1,h2]=gf_plot(mf_ls, U_tmp, 'contour', 0,'pcolor','off');
112 // set(h2{1},'LineWidth',2);
113 // set(h2{1},'Color','green');
114 colorbar(min(U_tmp),max(U_tmp));
115 title('u');
116
117 // Solving the adjoint problem.
118 UBASIC = gf_compute(mf, U, 'interpolate on', mf_basic);
119 F = 2*(UBASIC-U0);
120 gf_model_set(md, 'variable', 'VolumicData', F);
121 gf_model_get(md, 'solve');
122 W = gf_model_get(md, 'variable', 'u');
123
124 // Computation of the topological gradient
125 mf_g=gf_mesh_fem(m, 1);
126 gf_mesh_fem_set(mf_g,'fem', ...
127 gf_fem('FEM_PRODUCT(FEM_PK_DISCONTINUOUS(1,2),FEM_PK_DISCONTINUOUS(1,2))'));
128 DU = gf_compute(mf, U, 'gradient', mf_g);
129 DW = gf_compute(mf, W, 'gradient', mf_g);
130 nbdof = gf_mesh_fem_get(mf_g, 'nbdof');
131 DU = matrix(DU, 2, nbdof);
132 DW = matrix(DW, 2, nbdof);
133 UU = gf_compute(mf, U, 'interpolate on', mf_g);
134 UU0 = gf_compute(mf_basic, U0, 'interpolate on', mf_g);
135 LS = gf_compute(mf_ls, ULS, 'interpolate on', mf_g);
136 G = (-4*%pi*( alpha*(DU(1,:).^2 + DU(2,:).^2 + DU(1,:).*DW(1,:) + ...
137 DU(2,:).*DW(2,:)) + beta*(UU-UU0).^2)) .* (sign(LS)+1.)/2;
138
139 subplot(2,1,2);
140 gf_plot(mf_g, G);
141 title('Topological gradient');
142 colorbar(min(G),max(G));
143 drawnow;
144 xs2png(h.figure_id, path + sprintf('/topological_opt%03d.png',Index));
145 Index = Index + 1;
146 sleep(10);
147
148 // Find the point where the topological gradient is minimum
149 [val, i] = min(G);
150 if (val >= -12) then
151 disp('Topological optimization finished.');
152 return;
153 end
154
155 point = gf_mesh_fem_get(mf_g, 'basic dof nodes', [i]);
156 gf_workspace('pop');
157
158 // Updating the level set to add the hole
159 R = -(val+7) / 200;
160 xc = point(1);
161 yc = point(2);
162 ULS = min(ULS, ((x - xc).^2 + (y - yc).^2) - R^2);
163 end
164
165 printf('demo topological_optimization terminated\n');
+0
-149
interface/src/scilab/demos/demo_tripod.sce less more
0 lines(0);
1 stacksize('max');
2
3 path = get_absolute_file_path('demo_tripod.sce');
4
5 printf('\nThis demo is an adaption of the original tripod demo\n')
6 printf('which uses the new ''brick'' framework of getfem.\n')
7 printf('The code is shorter, faster and much more powerful.\n')
8 printf('You can easily switch between linear/non linear\n')
9 printf('compressible/incompressible elasticity!\n\n')
10
11 linear = 1;
12 incompressible = 0;
13
14 if getos()=='Windows' then
15 // Under Windows, all the trace messages are available in the dos console
16 // Under Linuxs, all the trace messages are redirected to the Scilab console
17 consolebox('on');
18 end
19 gf_util('trace level',3);
20 gf_util('warning level',3);
21
22 gf_workspace('clear all');
23
24 // import the mesh
25 m = gf_mesh('import','gid', path + '/data/tripod.GiD.msh');
26 mfu = gf_mesh_fem(m,3); // mesh-fem supporting a 3D-vector field
27 mfd = gf_mesh_fem(m,1); // scalar mesh_fem, for data fields.
28
29 // the mesh_im stores the integration methods for each tetrahedron
30 mim = gf_mesh_im(m,gf_integ('IM_TETRAHEDRON(5)'));
31
32 // we choose a P2 fem for the main unknown
33 gf_mesh_fem_set(mfu,'fem',gf_fem('FEM_PK(3,2)'));
34
35 // the material is homogeneous, hence we use a P0 fem for the data
36 gf_mesh_fem_set(mfd,'fem',gf_fem('FEM_PK(3,0)'));
37
38 // display some informations about the mesh
39 printf('nbcvs=%d, nbpts=%d, nbdof=%d\n',gf_mesh_get(m,'nbcvs'), gf_mesh_get(m,'nbpts'),gf_mesh_fem_get(mfu,'nbdof'));
40
41 P = gf_mesh_get(m,'pts'); // get list of mesh points coordinates
42 pidtop = find(abs(P(2,:)-13)<1e-6); // find those on top of the object
43 pidbot = find(abs(P(2,:)+10)<1e-6); // find those on the bottom
44
45 // build the list of faces from the list of points
46 ftop = gf_mesh_get(m,'faces from pid',pidtop);
47 fbot = gf_mesh_get(m,'faces from pid',pidbot);
48
49 // assign boundary numbers
50 gf_mesh_set(m,'boundary',1,ftop);
51 gf_mesh_set(m,'boundary',2,fbot);
52
53 E = 1e3;
54 Nu = 0.3;
55
56 // set the Lame coefficients
57 lambda = E*Nu/((1+Nu)*(1-2*Nu));
58 mu = E/(2*(1+Nu));
59
60 // create a meshfem for the pressure field (used if incompressible ~= 0)
61 mfp = gf_mesh_fem(m);
62 gf_mesh_fem_set(mfp,'fem',gf_fem('FEM_PK_DISCONTINUOUS(3,0)'));
63
64
65
66
67 md=gf_model('real');
68 gf_model_set(md, 'add fem variable', 'u', mfu);
69 if (linear)
70 // the linearized elasticity , for small displacements
71 gf_model_set(md, 'add initialized data', 'cmu', [mu]);
72 gf_model_set(md, 'add initialized data', 'clambda', [lambda]);
73 gf_model_set(md, 'add isotropic linearized elasticity brick', mim, 'u', 'clambda', 'cmu');
74
75 if (incompressible)
76 gf_model_set(md, 'add fem variable', 'p', mfp);
77 gf_model_set(md, 'add linear incompressibility brick', mim, 'u', 'p');
78 end;
79 else
80 params = [lambda;mu];
81 gf_model_set(md,'add initialized data','params', params);
82 if (incompressible)
83 lawname = 'Incompressible Mooney Rivlin';
84 gf_model_set(md, 'add finite strain elasticity brick', mim, 'u', lawname,'params');
85 gf_model_set(md, 'add fem variable', 'p', mfp);
86 gf_model_set(md, 'add finite strain incompressibility brick', mim, 'u', 'p');
87 else
88 lawname = 'SaintVenant Kirchhoff';
89 gf_model_set(md, 'add finite strain elasticity brick', mim, 'u', lawname,'params');
90 end;
91 end
92
93 // set a vertical force on the top of the tripod
94
95 gf_model_set(md, 'add initialized data', 'VolumicData', [0;-10;0]);
96 gf_model_set(md, 'add source term brick', mim, 'u', 'VolumicData');
97
98 // attach the tripod to the ground
99 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mfu, 2);
100
101 disp('running solve...')
102
103 gf_model_get(md, 'solve', 'noisy', 'max iter', 1);
104 U = gf_model_get(md, 'variable', 'u');
105
106 mfdu=gf_mesh_fem(m,1);
107 // the P2 fem is not derivable across elements, hence we use a discontinuous
108 // fem for the derivative of U.
109 gf_mesh_fem_set(mfdu,'fem',gf_fem('FEM_PK_DISCONTINUOUS(3,1)'));
110 if (linear)
111 VM = gf_model_get(md, 'compute isotropic linearized Von Mises or Tresca', 'u', 'clambda', 'cmu', mfdu);
112 else
113 VM = gf_model_get(md, 'finite strain elasticity Von Mises', 'u', lawname, 'params', mfdu);
114 end
115
116
117
118 disp('plotting ...');
119
120 h = scf();
121 h.color_map = jetcolormap(255); //gf_colormap('tripod');
122
123 // we plot the von mises on the deformed object, in superposition
124 // with the initial mesh.
125 drawlater;
126 if (linear) then
127 gf_plot(mfdu,VM,'mesh','on', 'mesh_edges_color',name2rgb('white'), 'cvlst', gf_mesh_get(m, 'outer faces'), 'deformation',U,'deformation_mf',mfu);
128 else
129 gf_plot(mfdu,VM,'mesh','on', 'mesh_edges_color',name2rgb('white'), 'cvlst', gf_mesh_get(m, 'outer faces'), 'deformation',U,'deformation_mf',mfu);
130 end
131
132 h.children.rotation_angles = [135 75];
133 colorbar(min(VM),max(VM));
134 xlabel('');
135 ylabel('');
136 zlabel('');
137 a = gca();
138 a.box = 'off';
139 a.axes_visible = 'off';
140 drawnow;
141
142 printf('the von mises stress is exported into a VTK file\n');
143 printf('(which can be viewed with ''mayavi -d tripod.vtk -m BandedSurfaceMap'')\n');
144 printf('see http://mayavi.sourceforge.net/\n');
145
146 gf_mesh_fem_get(mfdu,'export to vtk', path + '/tripod.vtk','ascii',VM,'vm')
147
148 printf('demo tripod terminated\n');
+0
-147
interface/src/scilab/demos/demo_tripod_alt.sce less more
0 printf('\nThis is the ''legacy'' getfem-scilab demonstration.\n')
1 printf('This demo does not use the model bricks introduced with getfem 2.0.\n')
2 printf('Instead it shows how the linear system is built with direct calls\n')
3 printf('to the assembly routines.\n')
4
5 lines(0);
6 stacksize('max');
7
8 path = get_absolute_file_path('demo_tripod_alt.sce');
9
10 if getos()=='Windows' then
11 // Under Windows, all the trace messages are available in the dos console
12 // Under Linuxs, all the trace messages are redirected to the Scilab console
13 consolebox('on');
14 end
15 gf_util('trace level',3);
16 gf_util('warning level',3);
17
18 gf_workspace('clear all');
19
20 printf('demo tripod_alt started\n');
21
22 // import the mesh
23 m = gf_mesh('import','gid', path + '/data/tripod.GiD.msh');
24 mfu = gf_mesh_fem(m,3); // mesh-fem supporting a 3D-vector field
25 mfd = gf_mesh_fem(m,1); // scalar mesh_fem
26
27 // the mesh_im stores the integration methods for each tetrahedron
28 mim = gf_mesh_im(m,gf_integ('IM_TETRAHEDRON(5)'));
29
30 // we choose a P2 fem for the main unknown
31 gf_mesh_fem_set(mfu,'fem',gf_fem('FEM_PK(3,2)'));
32
33 // the material is homogeneous, hence we use a P0 fem for the data
34 gf_mesh_fem_set(mfd,'fem',gf_fem('FEM_PK(3,0)'));
35
36 // display some informations about the mesh
37 disp(sprintf('nbcvs=%d, nbpts=%d, nbdof=%d',gf_mesh_get(m,'nbcvs'), gf_mesh_get(m,'nbpts'),gf_mesh_fem_get(mfu,'nbdof')));
38 P = gf_mesh_get(m,'pts'); // get list of mesh points coordinates
39 pidtop = find(abs(P(2,:)-13)<1e-6); // find those on top of the object
40 pidbot = find(abs(P(2,:)+10)<1e-6); // find those on the bottom
41
42 // build the list of faces from the list of points
43 ftop = gf_mesh_get(m,'faces from pid',pidtop);
44 fbot = gf_mesh_get(m,'faces from pid',pidbot);
45
46 // assign boundary numbers
47 gf_mesh_set(m,'boundary',1,ftop);
48 gf_mesh_set(m,'boundary',2,fbot);
49
50 E = 1e3;
51 nu = 0.3;
52 lambda = E*nu/((1+nu)*(1-2*nu));
53 mu = E/(2*(1+nu));
54 nbd = gf_mesh_fem_get(mfd, 'nbdof');
55 F = gf_asm('boundary_source', 1, mim, mfu, mfd, repmat([0;-10;0],1,nbd));
56 K = gf_asm('linear_elasticity', mim, mfu, mfd, lambda*ones(1,nbd),mu*ones(1,nbd));
57
58 // handle Dirichlet condition
59 [H,R] = gf_asm('dirichlet', 2, mim, mfu, mfd, ones(1,1,nbd) .*. eye(3,3), zeros(3, nbd));
60 [N,U0] = gf_spmat_get(H, 'dirichlet_nullspace', R);
61
62 // N: nnz(N) = 16341 size(N) = 16764 x 16341
63 // K: nnz(K) = 1147742 size(K) = 16764 x 16764
64 // A = K*N: nnz(A) = 1123597 size(A) = 16764 x 16341
65 // B = N'*A: nnz(B) = 1110396 size(B) = 16341 x 16341
66
67 // KK = N'*K*N; // This computation doesn't fit in the scilab stack. I must split it into parts
68 //K = K*N;
69 //K = N'*K;
70 K = N'*K*N;
71
72 F = N'*F;
73
74 // solve ...
75 //sleep(100); // bug with timer
76 t_start = timer();
77
78 disp('solving...');
79 lsolver = 3; // change this to compare the different solvers
80
81 if (lsolver == 1) then // conjugate gradient
82 P = gf_precond('ildlt',K);
83 UU = gf_linsolve('cg',K,F,P,'noisy','res',1e-9);
84 elseif (lsolver == 2) then // superlu
85 UU = gf_linsolve('superlu',K,F);
86 elseif (lsolver == 3) then
87 UU = umfpack(K, "\", F);
88 elseif (lsolver == 4) then
89 UU = linsolve(K, F);
90 else // the scilab "slash" operator
91 UU = K\F;
92 end
93 t_end = timer();
94
95 disp(sprintf('linear system solved in %f sec', t_end-t_start));
96
97 U = (N*UU).'+U0;
98
99 // now that we have the solution, we want to compute the von mises stress
100 // first, we need to get the derivate of the solution:
101 mfdu = gf_mesh_fem(m,1);
102 // the P2 fem is not derivable across elements, hence we use a discontinuous
103 // fem for the derivative of U.
104 gf_mesh_fem_set(mfdu,'fem',gf_fem('FEM_PK_DISCONTINUOUS(3,1)'));
105
106 // on output size(DU)=[3,3,nbdof(mfdu)]
107 DU = gf_compute(mfu,U,'gradient',mfdu);
108
109 // from the derivative, we compute the von mises stress
110 VM = zeros(1,gf_mesh_fem_get(mfdu,'nbdof'));
111 N = gf_mesh_get(m,'dim');
112 for i=1:size(DU,3)
113 t = DU(:,:,i);
114 E = (t+t')/2;
115 VM(i) = sum(E(:).^2) - ((1) ./ N)*sum(diag(E),'r')^2;
116 end
117 VM = 4*mu^2*VM;
118
119 disp('plotting ... can also take some minutes!');
120
121 h = scf();
122
123 //r = [0.7 .7 .7]; l = r($,:); s=63; s1=20; s2=25; s3=48;s4=55;
124 //for i=1:s
125 // c1 = max(min((i-s1)/(s2-s1),1),0);
126 // c2 = max(min((i-s3)/(s4-s3),1),0);
127 // r($+1,:)=(1-c2)*((1-c1)*l + c1*[1 0 0]) + c2*[1 .8 .2];
128 //end
129 //h.color_map = r;
130 h.color_map = jetcolormap(255);
131
132 // we plot the von mises on the deformed object, in superposition with the initial mesh.
133 drawlater;
134 gf_plot(mfdu,VM,'mesh','on', 'cvlst', gf_mesh_get(m, 'outer faces'), 'deformation',U,'deformation_mf',mfu);
135
136 h.children.rotation_angles = [135 75];
137 a = gca();
138 a.box = 'off';
139 a.axes_visible = 'off';
140 a.x_label.visible = 'off';
141 a.y_label.visible = 'off';
142 a.z_label.visible = 'off';
143 colorbar(min(VM),max(VM));
144 drawnow;
145
146 printf('demo tripod_alt terminated\n');
+0
-79
interface/src/scilab/demos/demo_tripod_anim.sce less more
0 lines(0);
1 stacksize('max');
2
3 path = get_absolute_file_path('demo_tripod_anim.sce');
4
5 printf('demo tripod_anim started\n');
6
7 if getos()=='Windows' then
8 // Under Windows, all the trace messages are available in the dos console
9 // Under Linuxs, all the trace messages are redirected to the Scilab console
10 consolebox('on');
11 end
12 gf_util('trace level',3);
13 gf_util('warning level',3);
14
15 // You should run demo_tripod first ...
16 //m = gf_mesh('import','gid', path + '/data/tripod.GiD.msh');
17 //mfu = gf_mesh_fem('from string', smfu, m);
18 //mfdu = gf_mesh_fem('from string', smfdu, m);
19
20 //drawlater;
21 //gf_plot_mesh(m,'cvlst',gf_mesh_get(m,'outer faces'),'curved','on','edges_color',[1 0 0]);
22 //drawnow;
23 pr = 1;
24 haut = 0;
25
26 h = scf();
27 h.color_map = jetcolormap(255);
28
29 Index = 0;
30
31 //for r=[6 14 26]
32 for r=6:4:60
33 printf('slicing...\n'); tic;
34 //sl = gf_slice(list('cylinder', 0, [0;0;0], [0;1;0], r), m, 4);
35 //sl = gf_slice(m,list('boundary',list('cylinder', [0;0;0], [0;1;0], 15)),4);
36
37 //sl = gf_slice(m,list('union',list('cylinderb', [0;0;0], [0;1;0], 15),list('cylinderb', [0;0;0], [0;1;0], 7)),4);
38 sl = gf_slice(list('boundary',list('diff',list('cylinder', -1, [0;0;0], [0;1;0], r),list('cylinder', -1, [0;0;0], [0;1;0], r-4))),m, 6);
39 //sl = gf_slice(m,list('none'),4, gf_mesh_get(m,'outer faces'));
40 //sl = gf_slice(m,list('boundary', list('none')),4);
41 //sl = gf_slice(m,list('ballb', [0;0;0], 10),2);
42 //sl = gf_slice(m,list('planarb',[0;0;0],[0;0;1]),1);
43 printf('..........done in %3.2f sec\n',toc());
44
45 P = gf_slice_get(sl,'pts');
46 P(2,:) = P(2,:) - haut;
47 sl
48 D = gf_compute(mfdu,VM,'interpolate on',sl);
49
50 drawlater;
51 gf_plot_slice(sl, 'mesh','on','data',D,'pcolor','on','mesh_edges_color',[1 1 .7]);
52 h.color_map = jetcolormap(255);
53
54 a = gca();
55 a.view = '3d';
56 a.data_bounds = [-30 -15 -50;
57 50 15 50];
58
59 xlabel('');
60 ylabel('');
61 zlabel('');
62
63 a.axes_visible = ['off','off','off'];
64 a.box = 'off';
65 drawnow;
66
67 // use:
68 // convert -delay 50 -loop 0 wave*.png animatewave.gif
69 // To produce the animated gif image.
70 // Convert is an ImageMagick tool.
71 xs2png(h.figure_id, path + sprintf('/tripod%02d.png',Index));
72
73 Index = Index + 1;
74 pr = r;
75 haut = haut + 24;
76 end
77
78 printf('demo tripod_anim terminated\n');
+0
-58
interface/src/scilab/demos/demo_tripod_slice_anim.sce less more
0 lines(0);
1 stacksize('max');
2
3 path = get_absolute_file_path('demo_tripod_slice_anim.sce');
4
5 printf('demo tripod_slice_anim started\n');
6
7 disp('this file should be launched after demo_tripod.sce as it assumes the tripod mesh and solutions are in memory')
8
9 if getos()=='Windows' then
10 // Under Windows, all the trace messages are available in the dos console
11 // Under Linuxs, all the trace messages are redirected to the Scilab console
12 consolebox('on');
13 end
14 gf_util('trace level',3);
15 gf_util('warning level',3);
16
17 //m = gf_mesh('from string',sm);
18 //mfu = gf_mesh_fem('from string',smfu,m);
19 //mfdu = gf_mesh_fem('from string',smfdu,m);
20
21 disp('plotting ... can also take some minutes!');
22
23 h = scf();
24
25 c = [0.0 0.0 0.5;
26 0.0 0.2 1.0;
27 0.0 0.5 0.8;
28 0.0 0.9 0.0;
29 0.4 1.0 0.0;
30 0.9 0.7 0.0;
31 0.8 0.0 0.0;
32 1.0 0.0 0.0];
33 h.color_map = c;
34
35 cnt = 1;
36 for r=-10.3:+.1:12 //46.1:-.1:4,
37 //sl = gf_slice(list('boundary',list('cylinder',-1,[0;0;0],[0;1;0],r)),mfu,U*10,5);
38 sl = gf_slice(list('boundary',list('planar',-1,[0;r;0],[0;1;0])),mfu,U*10,5);
39 Usl = gf_compute(mfdu,VM,'interpolate on',sl);
40 P = gf_slice_get(sl,'pts');
41 P = P([1 3 2],:);
42 gf_slice_set(sl,'pts',P);
43
44 drawlater;
45 clf;
46 gf_plot_slice(sl,'data',Usl,'mesh','on','mesh_slice_edges_color',[.7 .7 .7],'mesh_edges_color',[.5 .5 1]);
47 h.color_map = c;
48 drawnow;
49
50 xs2png(gcf(), path + sprintf('/tripod_slice_p%03d',cnt));
51
52 cnt = cnt+1;
53 sleep(1000)
54 gf_delete(sl);
55 end
56
57 printf('demo tripod_slice_anim terminated\n');
+0
-216
interface/src/scilab/demos/demo_wave2D.sce less more
0 lines(0);
1 stacksize('max');
2
3 path = get_absolute_file_path('demo_wave2D.sce');
4
5 printf('demo wave2D started\n');
6
7 if getos()=='Windows' then
8 // Under Windows, all the trace messages are available in the dos console
9 // Under Linuxs, all the trace messages are redirected to the Scilab console
10 consolebox('on');
11 end
12 gf_util('trace level',3);
13 gf_util('warning level',3);
14
15 gf_workspace('clear all');
16
17 disp('2D scalar wave equation (helmholtz) demonstration');
18 printf(' we present three approaches for the solution of the helmholtz problem\n')
19 printf(' - the first one is to use the new getfem ''model bricks''\n')
20 printf(' - the second one is to use the old getfem ''model bricks''\n')
21 printf(' - the third one is to use the ''low level'' approach, i.e. to assemble\n')
22 printf(' and solve the linear systems.\n')
23
24 printf('The result is the wave scattered by a disc, the incoming wave beeing a plane wave coming from the top\n');
25 printf(' \delta u + k^2 = 0\n');
26 printf(' u = -uinc on the interior boundary\n');
27 printf(' \partial_n u + iku = 0 on the exterior boundary\n');
28
29 //PK = 10; gt_order = 6; k = 7; use_hierarchical = 0; load_the_mesh=0;
30 PK = 3;
31 gt_order = 3;
32 k = 1;
33 use_hierarchical = 1;
34 load_the_mesh = 1;
35
36 if (use_hierarchical) then
37 s = 'hierarchical';
38 else
39 s = 'classical';
40 end
41
42 disp(sprintf('using %s P%d FEM with geometric transformations of degree %d',s,PK,gt_order));
43
44 if (load_the_mesh) then
45 disp('the mesh is loaded from a file, gt_order ignored');
46 end
47
48 if load_the_mesh == 0 then
49 // a quadrangular mesh is generated, with a high degree geometric transformation
50 // number of cells for the regular mesh
51 Nt = 10;
52 Nr = 8;
53 m = gf_mesh('empty',2);
54 dtheta = 2*%pi*1/Nt; R=1+9*(0:Nr-1)/(Nr-1);
55 gt = gf_geo_trans(sprintf('GT_PRODUCT(GT_PK(1,%d),GT_PK(1,1))',gt_order));
56 ddtheta = dtheta/gt_order;
57 for i=1:Nt
58 for j=1:Nr-1
59 ti=(i-1)*dtheta:ddtheta:i*dtheta;
60 X = [R(j)*cos(ti) R(j+1)*cos(ti)];
61 Y = [R(j)*sin(ti) R(j+1)*sin(ti)];
62 gf_mesh_set(m,'add convex',gt,[X;Y]);
63 end
64 end
65 fem_u = gf_fem(sprintf('FEM_QK(2,%d)',PK));
66 fem_d = gf_fem(sprintf('FEM_QK(2,%d)',PK));
67 mfu = gf_mesh_fem(m,1);
68 mfd = gf_mesh_fem(m,1);
69 gf_mesh_fem_set(mfu'fem',fem_u);
70 gf_mesh_fem_set(mfd'fem',fem_d);
71 sIM = sprintf('IM_GAUSS_PARALLELEPIPED(2,%d)',gt_order+2*PK);
72 mim = gf_mesh_im(m, g_integ(sIM));
73 else
74 // the mesh is loaded
75 m = gf_mesh('import','gid',path + 'data/holed_disc_with_quadratic_2D_triangles.msh');
76 if (use_hierarchical) then
77 // hierarchical basis improve the condition number
78 // of the final linear system
79 fem_u = gf_fem(sprintf('FEM_PK_HIERARCHICAL(2,%d)',PK));
80 //fem_u=gf_fem('FEM_HCT_TRIANGLE');
81 //fem_u=gf_fem('FEM_HERMITE(2)');
82 else
83 fem_u = gf_fem(sprintf('FEM_PK(2,%d)',PK));
84 end
85 fem_d = gf_fem(sprintf('FEM_PK(2,%d)',PK));
86 mfu = gf_mesh_fem(m,1);
87 mfd = gf_mesh_fem(m,1);
88 gf_mesh_fem_set(mfu,'fem',fem_u);
89 gf_mesh_fem_set(mfd,'fem',fem_d);
90 mim = gf_mesh_im(m,gf_integ('IM_TRIANGLE(13)'));
91 end
92 nbdu = gf_mesh_fem_get(mfu,'nbdof');
93 nbdd = gf_mesh_fem_get(mfd,'nbdof');
94
95 // identify the inner and outer boundaries
96 P = gf_mesh_get(m,'pts'); // get list of mesh points coordinates
97 pidobj = find(sum(P.^2,'r') < 1*1+1e-6);
98 pidout = find(sum(P.^2,'r') > 10*10-1e-2);
99
100 // build the list of faces from the list of points
101 fobj = gf_mesh_get(m,'faces from pid',pidobj);
102 fout = gf_mesh_get(m,'faces from pid',pidout);
103 gf_mesh_set(m,'boundary',1,fobj);
104 gf_mesh_set(m,'boundary',2,fout);
105
106 // expression of the incoming wave
107 disp(k)
108 wave_expr = sprintf('cos(%f*y+.2)+1*%%i*sin(%f*y+.2)',k,k);
109 Uinc = gf_mesh_fem_get_eval(mfd,list(list(wave_expr)));
110
111 //
112 // we present two approaches for the solution of the Helmholtz problem
113 // - the first one is to use the new getfem "model bricks"
114 // - the second one is to use the "low level" approach, i.e. to assemble
115 // and solve the linear systems.
116 if 1 then
117 timer();
118 // solution using new model bricks
119 md = gf_model('complex');
120 gf_model_set(md, 'add fem variable', 'u', mfu);
121 gf_model_set(md, 'add initialized data', 'k', [k]);
122 gf_model_set(md, 'add Helmholtz brick', mim, 'u', 'k');
123 gf_model_set(md, 'add initialized data', 'Q', [1*%i*k]);
124 gf_model_set(md, 'add Fourier Robin brick', mim, 'u', 'Q', 2);
125 gf_model_set(md, 'add initialized fem data', 'DirichletData', mfd, Uinc);
126 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mfd, 1, 'DirichletData');
127 // gf_model_set(md, 'add Dirichlet condition with penalization', mim, 'u', 1e12, 1, 'DirichletData');
128
129 gf_model_get(md, 'solve');
130 U = gf_model_get(md, 'variable', 'u');
131 disp(sprintf('solve done in %.2f sec', timer()));
132 else
133 // solution using the "low level" approach
134 [H,R] = gf_asm('dirichlet', 1, mim, mfu, mfd, gf_mesh_fem_get(mfd,'eval',1),Uinc);
135 [_null,ud] = gf_spmat_get(H,'dirichlet nullspace', R);
136
137 Qb2 = gf_asm('boundary qu term', 2, mim, mfu, mfd, ones(1,nbdd));
138 M = gf_asm('mass matrix',mim, mfu);
139 L = -gf_asm('laplacian',mim, mfu,mfd,ones(1,nbdd));
140
141 // builds the matrix associated to
142 // (\Delta u + k^2 u) inside the domain, and
143 // (\partial_n u + ik u) on the exterior boundary
144 A = L + (k*k) * M + (1*%i*k)*Qb2;
145
146
147 // eliminate dirichlet conditions and solve the system
148 RF = _null'*(-A*ud(:));
149 RK = _null'*A*_null;
150 U = _null*(RK\RF)+ud(:);
151 U = U(:).';
152 end
153
154 Ud = gf_compute(mfu,U,'interpolate on',mfd);
155
156 h = scf();
157 h.color_map = jetcolormap(255);
158 drawlater;
159 gf_plot(mfu,imag(U(:)'),'mesh','on','refine',32,'contour',0);
160 colorbar(min(imag(U)),max(imag(U)));
161 h.color_map = jetcolormap(255);
162 drawnow;
163
164 h = scf();
165 h.color_map = jetcolormap(255);
166 drawlater;
167 gf_plot(mfd,abs(Ud(:)'),'mesh','on','refine',24,'contour',0.5);
168 colorbar(min(abs(Ud)),max(abs(Ud)));
169 h.color_map = jetcolormap(255);
170 drawnow;
171
172 // compute the "exact" solution from its developpement
173 // of bessel functions:
174 // by \Sum_n c_n H^(1)_n(kr)exp(i n \theta)
175 N = 1000;
176 theta = 2*%pi*(0:N-1)/N;
177 y = sin(theta);
178 w = eval(wave_expr);
179 fw = fft(w);
180 C = fw/N;
181 S = zeros(w);
182 S(:) = C(1);
183 Nc = 20;
184 for i=2:Nc
185 n=i-1;
186 S = S + C(i)*exp(1*%i*n*theta) + C(N-(n-1))*exp(-1*%i*n*theta);
187 end
188 P = gf_mesh_fem_get(mfd,'basic dof nodes');
189 [T,R] = cart2pol(P(1,:),P(2,:));
190 Uex = zeros(size(R));
191 nbes = 1;
192 Uex = besselh(0,nbes,k*R) * C(1)/besselh(0,nbes,k);
193 old_ieee = ieee();
194 ieee(2);
195 for i=2:Nc
196 n = i-1;
197 Uex = Uex + besselh(n,nbes,k*R) * C(i)/besselh(n,nbes,k) .* exp(1*%i*n*T);
198 Uex = Uex + besselh(-n,nbes,k*R) * C(N-(n-1))/besselh(-n,nbes,k) .* exp(-1*%i*n*T);
199 end
200 ieee(old_ieee);
201
202 disp('the error won''t be less than ~1e-2 as long as a first order absorbing boundary condition will be used');
203 disp(sprintf('rel error ||Uex-U||_inf=%g',max(abs(Ud-Uex))/max(abs(Uex))));
204 disp(sprintf('rel error ||Uex-U||_L2=%g', gf_compute(mfd,Uex-Ud,'L2 norm',mim)/gf_compute(mfd,Uex,'L2 norm',mim)));
205 disp(sprintf('rel error ||Uex-U||_H1=%g', gf_compute(mfd,Uex-Ud,'H1 norm',mim)/gf_compute(mfd,Uex,'H1 norm',mim)));
206
207 h = scf();
208 h.color_map = jetcolormap(255);
209 // adjust the 'refine' parameter to enhance the quality of the picture
210 drawlater;
211 gf_plot(mfu,real(U(:)'),'mesh','on','refine',8);
212 h.color_map = jetcolormap(255);
213 drawnow;
214
215 printf('demo wave2D terminated\n');
+0
-193
interface/src/scilab/demos/demo_wave2D_alt.sce less more
0 lines(0);
1 stacksize('max');
2
3 path = get_absolute_file_path('demo_wave2D_alt.sce');
4
5 printf('demo wave2D_alt\n');
6
7 if getos()=='Windows' then
8 // Under Windows, all the trace messages are available in the dos console
9 // Under Linuxs, all the trace messages are redirected to the Scilab console
10 consolebox('on');
11 end
12 gf_util('trace level',3);
13 gf_util('warning level',3);
14
15 gf_workspace('clear all');
16
17 disp('2D scalar wave equation (helmholtz) demonstration');
18 printf('Helmholtz is not handled (for the moment) by gf_solve\n');
19 printf('hence this file contains explicit call to the various\n');
20 printf('assembly routines needed by the helmholtz equation.\n');
21
22 printf('The result is the wave scattered by a disc, the incoming wave beeing a plane wave coming from the top\n');
23 printf(' \delta u + k^2 = 0\n');
24 printf(' u = -uinc on the interior boundary\n');
25 printf(' \partial_n u + iku = 0 on the exterior boundary\n');
26
27 //PK = 10; gt_order = 6; k = 7; use_hierarchical = 0; load_the_mesh=0;
28 PK = 4;
29 gt_order = 3;
30 k = 3;
31 use_hierarchical = 1;
32 load_the_mesh = 0;
33
34 if (use_hierarchical) then
35 s = 'hierarchical';
36 else
37 s = 'classical';
38 end
39
40 disp(sprintf('using %s P%d FEM with geometric transformations of degree %d',s,PK,gt_order));
41 if (load_the_mesh) then
42 disp('the mesh is loaded from a file, gt_order ignored');
43 end
44
45 if load_the_mesh == 0 then
46 // a quadrangular mesh is generated, with a high degree geometric transformation
47 // number of cells for the regular mesh
48 Nt = 10;
49 Nr = 8;
50 m = gf_mesh('empty',2);
51 dtheta = 2*%pi*1/Nt; R=1+9*(0:Nr-1)/(Nr-1);
52 gt = gf_geotrans(sprintf('GT_PRODUCT(GT_PK(1,%d),GT_PK(1,1))',gt_order));
53 ddtheta = dtheta/gt_order;
54 for i=1:Nt
55 for j=1:Nr-1
56 ti=(i-1)*dtheta:ddtheta:i*dtheta;
57 X = [R(j)*cos(ti) R(j+1)*cos(ti)];
58 Y = [R(j)*sin(ti) R(j+1)*sin(ti)];
59 gf_mesh_set(m,'add convex',gt,[X;Y]);
60 end
61 end
62 fem_u = gf_fem(sprintf('FEM_QK(2,%d)',PK));
63 fem_d = gf_fem(sprintf('FEM_QK(2,%d)',PK));
64 mfu = gf_mesh_fem(m,1);
65 mfd = gf_mesh_fem(m,1);
66 gf_mesh_fem_set(mfu,'fem',fem_u);
67 gf_mesh_fem_set(mfd,'fem',fem_d);
68 sIM = sprintf('IM_GAUSS_PARALLELEPIPED(2,%d)',gt_order+2*PK);
69 mim = gf_mesh_im(m, gf_integ(sIM));
70 else
71 // the mesh is loaded
72 m = gf_mesh('import','gid','data/holed_disc_with_quadratic_2D_triangles.msh');
73 if (use_hierarchical) then
74 // hierarchical basis improve the condition number
75 // of the final linear system
76 fem_u = gf_fem(sprintf('FEM_PK_HIERARCHICAL(2,%d)',PK));
77 else
78 fem_u = gf_fem(sprintf('FEM_PK(2,%d)',PK));
79 end
80 fem_d = gf_fem(sprintf('FEM_PK(2,%d)',PK));
81 mfu = gf_mesh_fem(m,1);
82 mfd = gf_mesh_fem(m,1);
83 gf_mesh_fem_set(mfu,'fem',fem_u);
84 gf_mesh_fem_set(mfd,'fem',fem_d);
85 mim = gf_mesh_im(m,gf_integ('IM_TRIANGLE(13)'));
86 end
87
88 nbdu = gf_mesh_fem_get(mfu,'nbdof');
89 nbdd = gf_mesh_fem_get(mfd,'nbdof');
90
91 // identify the inner and outer boundaries
92 P = gf_mesh_get(m,'pts'); // get list of mesh points coordinates
93 pidobj = find(sum(P.^2,'r') < 1*1+1e-6);
94 pidout = find(sum(P.^2,'r') > 10*10-1e-2);
95
96 // build the list of faces from the list of points
97 fobj = gf_mesh_get(m,'faces from pid',pidobj);
98 fout = gf_mesh_get(m,'faces from pid',pidout);
99 gf_mesh_set(m,'boundary',1,fobj);
100 gf_mesh_set(m,'boundary',2,fout);
101
102 // expression of the incoming wave
103 wave_expr = sprintf('cos(%f*y+.2)+1*%%i*sin(%f*y+.2)',k,k);
104 Uinc = gf_mesh_fem_get_eval(mfd,list(list(wave_expr)));
105
106 // currently the toolbox does not handle complex valued arrays,
107 // hence we have to treat both real and imaginary part
108 tmp = gf_mesh_fem_get_eval(mfd,list(list(1))); // YC: add in the doc: second argument of gf_mesh_fem_get_eval must be a list
109 [Hr,Rr] = gf_asm('dirichlet', 1, mim, mfu, mfd, tmp, real(Uinc));
110 [Hi,Ri] = gf_asm('dirichlet', 1, mim, mfu, mfd, tmp, imag(Uinc));
111 [_null,udr] = gf_spmat_get(Hr,'dirichlet nullspace', Rr);
112 [_null,udi] = gf_spmat_get(Hi, 'dirichlet nullspace', Ri);
113 ud = udr + 1*%i*udi;
114
115 Qb2 = gf_asm('boundary qu term', 2, mim, mfu, mfd, ones(1,nbdd));
116 M = gf_asm('mass matrix',mim, mfu);
117 L = -gf_asm('laplacian',mim, mfu,mfd,ones(1,nbdd));
118
119 // builds the matrix associated to
120 // (\Delta u + k^2 u) inside the domain, and
121 // (\partial_n u + ik u) on the exterior boundary
122 A=L + (k*k) * M + (1*%i*k)*Qb2;
123
124 // eliminate dirichlet conditions and solve the system
125 RF = _null'*(-A*ud(:));
126 RK = _null'*A*_null;
127 U = _null*(RK\RF)+ud(:);
128 Udr = gf_compute(mfu,real(U(:)'),'interpolate on',mfd);
129 Udi = gf_compute(mfu,imag(U(:)'),'interpolate on',mfd); Ud=Udr+1*%i*Udi;
130
131 h = scf();
132 h.color_map = jetcolormap(255);
133 drawlater;
134 gf_plot(mfu,imag(U(:)'),'mesh','on','refine',32,'contour',0);
135 colorbar(min(imag(U)),max(imag(U)));
136 h.color_map = jetcolormap(255);
137 drawnow;
138
139 h = scf();
140 h.color_map = jetcolormap(255);
141 drawlater;
142 gf_plot(mfd,abs(Ud(:)'),'mesh','on','refine',24,'contour',0.5);
143 colorbar(min(abs(Ud)),max(abs(Ud)));
144 h.color_map = jetcolormap(255);
145 drawnow;
146
147 // compute the "exact" solution from its developpement
148 // of bessel functions:
149 // by \Sum_n c_n H^(1)_n(kr)exp(i n \theta)
150 N = 1000;
151 theta = 2*%pi*(0:N-1)/N;
152 y = sin(theta);
153 w = eval(wave_expr);
154 fw = fft(w);
155 C = fw/N;
156 S = zeros(w);
157 S(:) = C(1);
158 Nc = 20;
159 for i=2:Nc
160 n = i-1;
161 S = S + C(i)*exp(1*%i*n*theta) + C(N-(n-1))*exp(-1*%i*n*theta);
162 end
163 P = gf_mesh_fem_get(mfd,'basic dof nodes');
164 [T,R] = cart2pol(P(1,:),P(2,:));
165 Uex = zeros(size(R));
166 nbes = 1;
167 Uex = besselh(0,nbes,k*R) * C(1)/besselh(0,nbes,k);
168 old_ieee = ieee();
169 ieee(2);
170 for i=2:Nc
171 n=i-1;
172 Uex = Uex + besselh(n,nbes,k*R) * C(i)/besselh(n,nbes,k) .* exp(1*%i*n*T);
173 Uex = Uex + besselh(-n,nbes,k*R) * C(N-(n-1))/besselh(-n,nbes,k) .* exp(-1*%i*n*T);
174 end
175 ieee(old_ieee);
176
177 disp('the error won''t be less than ~1e-2 as long as a first order absorbing boundary condition will be used');
178 Uex = conj(Uex);
179 disp(sprintf('rel error ||Uex-U||_inf=%g',max(abs(Ud-Uex))/max(abs(Uex))));
180 disp(sprintf('rel error ||Uex-U||_L2=%g', gf_compute(mfd,Uex-Ud,'L2 norm',mim)/gf_compute(mfd,Uex,'L2 norm',mim)));
181 disp(sprintf('rel error ||Uex-U||_H1=%g', gf_compute(mfd,Uex-Ud,'H1 norm',mim)/gf_compute(mfd,Uex,'H1 norm',mim)));
182
183 // adjust the 'refine' parameter to enhance the quality of the picture
184 h = scf();
185 h.color_map = jetcolormap(255);
186 drawlater;
187 gf_plot(mfu,real(U(:)'),'mesh','on','refine',8);
188 colorbar(min(real(Ud)),max(real(Ud)));
189 h.color_map = jetcolormap(255);
190 drawnow;
191
192 printf('demo wave2D_alt terminated\n');
+0
-37
interface/src/scilab/demos/demo_wave2D_animate.sce less more
0 lines(0);
1 stacksize('max');
2
3 path = get_absolute_file_path('demo_wave2D_animate.sce');
4
5 printf('demo wave2D_animate started\n');
6
7 if getos()=='Windows' then
8 // Under Windows, all the trace messages are available in the dos console
9 // Under Linuxs, all the trace messages are redirected to the Scilab console
10 consolebox('on');
11 end
12 gf_util('trace level',3);
13 gf_util('warning level',3);
14
15 dt = 2*%pi/20;
16 t = 0:dt:2*%pi-dt/2;
17
18 h = scf();
19 h.color_map = jetcolormap(255);
20
21 for i=1:length(t),
22 disp(sprintf('theta=%1.3f', t(i)));
23 drawlater;
24 clf;
25 gf_plot(mfu,imag(U(:)'*exp(1*%i*t(i))),'refine',28,'contour',0);
26 h.color_map = jetcolormap(255);
27 drawnow;
28
29 // use:
30 // convert -delay 50 -loop 0 wave*.png animatewave.gif
31 // To produce the animated gif image.
32 // Convert is an ImageMagick tool.
33 xs2png(h.figure_id, path + sprintf('/wave%02d.png',i));
34 end
35
36 printf('demo wave2D_animate terminated\n');
+0
-101
interface/src/scilab/demos/demo_wave_equation.sce less more
0 // Simple demo of a wave equation solved with the
1 // Getfem tool for time integration schemes
2
3 lines(0);
4 stacksize('max');
5
6 path = get_absolute_file_path('demo_wave_equation.sce');
7
8 printf('demo wave_equation started\n');
9
10 if getos()=='Windows' then
11 // Under Windows, all the trace messages are available in the dos console
12 // Under Linuxs, all the trace messages are redirected to the Scilab console
13 consolebox('on');
14 end
15 gf_util('trace level',3);
16 gf_util('warning level',3);
17
18 gf_workspace('clear all');
19
20 m = gf_mesh('cartesian',[0:.2:1],[0:.2:1]);
21 // m = gf_mesh('import','structured','GT="GT_QK(2,1)";SIZES=[1,1];NOISED=1;NSUBDIV=[1,1];')
22
23 // create a mesh_fem of for a field of dimension 1 (i.e. a scalar field)
24 mf = gf_mesh_fem(m,1);
25
26 // assign the Q2 fem to all convexes of the mesh_fem,
27 gf_mesh_fem_set(mf,'fem',gf_fem('FEM_QK(2,2)'));
28
29 // Integration which will be used
30 mim = gf_mesh_im(m, gf_integ('IM_GAUSS_PARALLELEPIPED(2,4)'));
31
32 // detect the border of the mesh
33 border = gf_mesh_get(m,'outer faces');
34
35 // mark it as boundary #1
36 gf_mesh_set(m, 'boundary', 1, border);
37
38 // interpolate the initial data
39 U0 = gf_mesh_fem_get_eval(mf, list(list('y.*(y-1).*x.*(x-1).*x.*x')));
40 V0 = 0*U0;
41
42 md = gf_model('real');
43 gf_model_set(md, 'add fem variable', 'u', mf, 2);
44 transient_bricks = [gf_model_set(md, 'add Laplacian brick', mim, 'u')];
45 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mf, 1);
46
47 // transient part.
48 T = 1.0; // For a good animation, choose 15 here (the computation is quite long then)
49 dt = 0.025;
50 beta = 0.25;
51 gamma = 0.5;
52
53 gf_model_set(md, 'add Newmark scheme', 'u', beta, gamma);
54 gf_model_set(md, 'add mass brick', mim, 'Dot2_u');
55 gf_model_set(md, 'set time step', dt);
56
57
58 // Initial data.
59 gf_model_set(md, 'variable', 'Previous_u', U0);
60 gf_model_set(md, 'variable', 'Previous_Dot_u', V0);
61
62
63 // Initialisation of the acceleration 'Previous_Dot2_u'
64 gf_model_set(md, 'perform init time derivative', dt/20.);
65 gf_model_get(md, 'solve');
66
67 // Iterations
68 h = scf();
69 h.color_map = jetcolormap(255);
70
71 Index = 0;
72
73 for t=0:dt:T
74
75 gf_model_get(md, 'solve');
76 U = gf_model_get(md, 'variable', 'u');
77 V = gf_model_get(md, 'variable', 'Dot_u');
78
79 drawlater;
80 clf();
81 subplot(2,1,1);
82 gf_plot(mf, U, 'mesh', 'on', 'contour', .01:.01:.1);
83 colorbar(min(U),max(U));
84 title(sprintf('computed solution u for t=%g', t));
85
86 subplot(2,1,2);
87 gf_plot(mf, V, 'mesh', 'on', 'contour', .01:.01:.1);
88 colorbar(min(V),max(V));
89 title(sprintf('computed solution du/dt for t=%g', t));
90 h.color_map = jetcolormap(255);
91 drawnow;
92 sleep(100);
93
94 xs2png(h.figure_id, path + sprintf('/waveeq%03d.png',Index));
95 Index = Index + 1;
96
97 gf_model_set(md, 'shift variables for time integration');
98 end
99
100 printf('demo wave_equation terminated\n');
+0
-37
interface/src/scilab/demos/sci_getfem.dem.gateway.sce less more
0 // ====================================================================
1 // Yann COLLETTE
2 // Copyright 2009-2010
3 // This file is released into the public domain
4 // ====================================================================
5 demopath = get_absolute_file_path("sci_getfem.dem.gateway.sce");
6
7 subdemolist = ["Bilaplacian", "demo_bilaplacian.sce"; ..
8 "Crack", "demo_crack.sce"; ..
9 "Continuation method", "demo_continuation.sce"; ..
10 "Convection in a rotating cavity", "demo_convection_rotating_cavity.sce"; ..
11 "Fictitious domains", "demo_fictitious_domains.sce"; ..
12 "Final Laplacian", "demo_finallaplacian.sce"; ..
13 "Laplacian 1D", "demo_laplacian1D.sce"; ..
14 "Laplacian", "demo_laplacian.sce"; ..
15 "Mesh generation", "demo_mesh_generation.sce"; ..
16 "Mortar", "demo_mortar.sce"; ..
17 "Navier-Stokes", "demo_Navier_Stokes.sce"; ..
18 "Nonlinear Elasticity", "demo_nonlinear_elasticity.sce"; ..
19 "Plasticity", "demo_plasticity.sce"; ..
20 "Plate", "demo_plate.sce"; ..
21 "Refine", "demo_refine.sce"; ..
22 "Slice", "demo_slices.sce"; ..
23 "Static Contact", "demo_static_contact.sce"; ..
24 "Step by Step", "demo_step_by_step.sce"; ..
25 "Stokes 2D Poiseuille Arc", "demo_stokes_2D_poiseuille_arc.sce"; ..
26 "Stokes 2D Poiseuille", "demo_stokes_2D_poiseuille.sce"; ..
27 "Stokes 2D tube", "demo_stokes_2D_tube.sce"; ..
28 "Stokes 3D tank", "demo_stokes_3D_tank.sce"; ..
29 "Structural optimization", "demo_structural_optimization.sce"; ..
30 "topological optimization", "demo_topological_optimization.sce"; ..
31 "Tripod", "demo_tripod.sce"; ..
32 "Wave 2D", "demo_wave2D.sce"; ..
33 "Wave equation", "demo_wave_equation.sce"];
34
35 subdemolist(:,2) = demopath + subdemolist(:,2);
36 // ====================================================================
+0
-43
interface/src/scilab/demos/tutorial1.sce less more
0 if getos()=='Windows' then
1 // Under Windows, all the trace messages are available in the dos console
2 // Under Linuxs, all the trace messages are redirected to the Scilab console
3 consolebox('on');
4 end
5 gf_util('trace level',3);
6 gf_util('warning level',3);
7
8 m = gf_mesh('cartesian',[0:.1:1],[0:.1:1]);
9 mf = gf_mesh_fem(m,1); // create a meshfem of for a field of dimension 1 (i.e. a scalar field)
10 gf_mesh_fem_set(mf,'fem',gf_fem('FEM_QK(2,2)'));
11
12 disp(gf_fem_get(gf_fem('FEM_QK(2,2)'), 'poly_str'));
13
14 mim = gf_mesh_im(m, gf_integ('IM_EXACT_PARALLELEPIPED(2)'));
15
16 border = gf_mesh_get(m,'outer faces');
17 gf_mesh_set(m, 'region', 42, border); // create the region
18
19 // the boundary edges appears in red
20 h = scf();
21 drawlater;
22 gf_plot_mesh(m, 'regions', [42], 'vertices','on','convexes','on');
23 drawnow;
24
25 md = gf_model('real');
26 gf_model_set(md, 'add fem variable', 'u', mf);
27 gf_model_set(md, 'add Laplacian brick', mim, 'u');
28
29 R = gf_mesh_fem_get_eval(mf, list(list('(x-.5).^2 + (y-.5).^2 + x/5 - y/3')));
30 gf_model_set(md, 'add initialized fem data', 'DirichletData', mf, R);
31 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mf, 42, 'DirichletData');
32 gf_model_get(md, 'variable list');
33 gf_model_get(md, 'solve');
34
35 U = gf_model_get(md, 'variable', 'u');
36
37 h = scf();
38 h.color_map = jetcolormap(255);
39 drawlater;
40 gf_plot(mf, U, 'mesh','on');
41 h.color_map = jetcolormap(255);
42 drawnow;
+0
-5
interface/src/scilab/etc/sci_getfem.quit less more
0 // ====================================================================
1 // Yann COLLETTE
2 // Copyright 2009
3 // This file is released into the public domain
4 // ====================================================================
+0
-62
interface/src/scilab/etc/sci_getfem.start less more
0 // ====================================================================
1 // Yann COLLETTE
2 // Copyright 2009
3 // This file is released into the public domain
4 // ====================================================================
5
6 mprintf("Start GetFEM toolbox\n");
7
8 if isdef("sci_getfemlib") then
9 warning("GetFEM toolbox is already loaded");
10 return;
11 end
12
13 etc_tlbx = get_absolute_file_path("sci_getfem.start");
14 etc_tlbx = getshortpathname(etc_tlbx);
15 root_tlbx = strncpy( etc_tlbx, length(etc_tlbx)-length("\etc\") );
16
17 //Load functions library
18 // =============================================================================
19 mprintf("\tLoad macros\n");
20 pathmacros = pathconvert( root_tlbx ) + "macros" + filesep();
21 sci_getfemlib = lib(pathmacros);
22
23 clear pathmacros;
24
25 // load gateways
26 // =============================================================================
27 mprintf("\tLoad gateways\n");
28 ilib_verbose(0);
29 exec(pathconvert(root_tlbx+"/sci_gateway/loader_gateway.sce",%f));
30
31 v = getversion('scilab');
32 if v(2) >= 3 then
33 // set and get only overloadable in 5.3
34 pathmacros = pathconvert( root_tlbx ) + "macros" + filesep() + "overload" + filesep();
35 sci_getfemoverloadlib = lib(pathmacros);
36 exec(pathmacros + filesep() + "init_gf_types.sce");
37 end
38
39 // Load and add help chapter
40 // =============================================================================
41 if or(getscilabmode() == ["NW";"STD"]) then
42 mprintf("\tLoad help\n");
43 path_addchapter = pathconvert(root_tlbx+"/jar");
44 if ( isdir(path_addchapter) <> [] ) then
45 add_help_chapter("GetFEM toolbox", path_addchapter, %F);
46 clear add_help_chapter;
47 end
48 clear path_addchapter;
49 end
50
51 // Load demos
52 // =============================================================================
53 if or(getscilabmode() == ["NW";"STD"]) then
54 mprintf("\tLoad demos\n");
55 pathdemos = pathconvert(root_tlbx+"/demos/sci_getfem.dem.gateway.sce",%F,%T);
56 add_demo("GetFEM toolbox",pathdemos);
57 clear pathdemos add_demo;
58 end
59
60 clear root_tlbx;
61 clear etc_tlbx;
+0
-11
interface/src/scilab/help/builder_help.sce less more
0 // ====================================================================
1 // Yann COLLETTE
2 // Copyright 2009
3 // This file is released into the public domain
4 // ====================================================================
5
6 help_dir = get_absolute_file_path('builder_help.sce');
7 tbx_builder_help_lang("en_US", help_dir);
8 //tbx_builder_help_lang("fr_FR", help_dir);
9
10 clear help_dir;
+0
-11
interface/src/scilab/help/en_US/build_help.sce less more
0 // ====================================================================
1 // Yann COLLETTE
2 // Copyright 2009
3 // This file is released into the public domain
4 // ====================================================================
5
6 help_lang_dir = get_absolute_file_path('build_help.sce');
7
8 tbx_build_help(TOOLBOX_TITLE, help_lang_dir);
9
10 clear help_lang_dir;
+0
-1
interface/src/scilab/help/en_US/examples/CHAPTER less more
0 title = Examples
+0
-81
interface/src/scilab/help/en_US/examples/another_laplacian.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="another_laplacian" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>Another Laplacian with exact solution</refname>
11
12 <refpurpose>This is the scilab/demos/demo_laplacian.sce example.</refpurpose>
13 </refnamediv>
14
15 <refsection>
16 <title>Description</title>
17 <programlisting role="example"><![CDATA[
18 gf_workspace('clear all');
19 m = gf_mesh('cartesian',[0:.1:1],[0:.1:1]);
20
21 // create a mesh_fem of for a field of dimension 1 (i.e. a scalar field)
22 mf = gf_mesh_fem(m,1);
23 // assign the Q2 fem to all convexes of the mesh_fem,
24 gf_mesh_fem_set(mf,'fem',gf_fem('FEM_QK(2,2)'));
25
26 // an exact integration will be used
27 mim = gf_mesh_im(m, gf_integ('IM_GAUSS_PARALLELEPIPED(2,10)'));
28 // detect the border of the mesh
29 border = gf_mesh_get(m,'outer faces');
30 // mark it as boundary #1
31 gf_mesh_set(m, 'boundary', 1, border);
32 gf_plot_mesh(m, 'regions', [1]); // the boundary edges appears in red
33
34 // interpolate the exact solution
35 Uexact = gf_mesh_fem_get_eval(mf, list('y.*(y-1).*x.*(x-1)+x.^5'));
36 // its second derivative
37 F = gf_mesh_fem_get_eval(mf, list('-(2*(x.^2+y.^2)-2*x-2*y+20*x.^3)'));
38
39 md=gf_model('real');
40 gf_model_set(md, 'add fem variable', 'u', mf);
41 gf_model_set(md, 'add Laplacian brick', mim, 'u');
42 gf_model_set(md, 'add initialized fem data', 'VolumicData', mf, F);
43 gf_model_set(md, 'add source term brick', mim, 'u', 'VolumicData');
44 gf_model_set(md, 'add initialized fem data', 'DirichletData', mf, Uexact);
45 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mf, 1, 'DirichletData');
46
47 gf_model_get(md, 'solve');
48 U = gf_model_get(md, 'variable', 'u');
49
50 printf('H1 norm of error: %g\n', gf_compute(mf,U-Uexact,'H1 norm',mim));
51
52 subplot(2,1,1);
53 gf_plot(mf,U,'mesh','on','contour',.01:.01:.1);
54 colorbar(min(U),max(U));
55 title('computed solution');
56
57 subplot(2,1,2);
58 gf_plot(mf,U-Uexact,'mesh','on');
59 colorbar(min(U-Uexact),max(U-Uexact));
60 title('difference with exact solution');
61 ]]></programlisting>
62 </refsection>
63
64 <refsection>
65 <title>See Also</title>
66
67 <simplelist type="inline">
68 <member><link linkend="gf_workspace">gf_workspace</link></member>
69 <member><link linkend="gf_mesh">gf_mesh</link></member>
70 <member><link linkend="gf_fem">gf_fem</link></member>
71 <member><link linkend="gf_plot">gf_plot</link></member>
72 </simplelist>
73 </refsection>
74
75 <refsection>
76 <title>Authors</title>
77
78 <para>Y. Collette</para>
79 </refsection>
80 </refentry>
+0
-90
interface/src/scilab/help/en_US/examples/avoiding_bricks.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="avoiding_bricks" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>Avoiding the bricks framework</refname>
11
12 <refpurpose>This is a description on how to avoid the bricks
13 framework.</refpurpose>
14 </refnamediv>
15
16 <refsection>
17 <title>Description</title>
18
19 <para>The model bricks are very convenient, as they hide most of the
20 details of the assembly of the final linear systems. However it is also
21 possible to stay at a lower level, and handle the assembly of linear
22 systems, and their resolution, directly in scilab. For example, the
23 demonstration demo_tripod_alt.m is very similar to the demo_tripod.sce
24 except that the assembly is explicit:</para>
25
26 <programlisting role="example"><![CDATA[
27 nbd = gf_mesh_fem_get(mfd, 'nbdof');
28 F = gf_asm('boundary_source', 1, mim, mfu, mfd, repmat([0;-10;0],1,nbd));
29 K = gf_asm('linear_elasticity', mim, mfu, mfd, lambda*ones(1,nbd),mu*ones(1,nbd));
30
31 // handle Dirichlet condition
32 [H,R] = gf_asm('dirichlet', 2, mim, mfu, mfd, repmat(eye(3,3),[1,1,nbd]), zeros(3, nbd));
33 [N,U0] = gf_spmat_get(H, 'dirichlet_nullspace', R);
34 KK = N'*K*N;
35 FF = N'*F;
36 // solve ...
37
38 disp('solving...');
39
40 t0 = timer();
41 lsolver = 1 // change this to compare the different solvers
42
43 if (lsolver == 1) then // conjugate gradient
44 P = gf_precond('ildlt',KK);
45 UU = gf_linsolve('cg',KK,FF,P,'noisy','res',1e-9);
46 elseif (lsolver == 2) then // superlu
47 UU = gf_linsolve('superlu',KK,FF);
48 else // the scilab "slash" operator
49 UU = KK \ FF;
50 end
51
52 disp(sprintf('linear system solved in %.2f sec', timer()-t0));
53
54 U = (N*UU).' + U0;
55 ]]></programlisting>
56
57 <para>In getfem-interface, the assembly of vectors, and matrices is done
58 via the gf_asm function. The Dirichlet condition u(x) = r(x) is handled in
59 the weak form</para>
60
61 <para><latex style="center"><![CDATA[\int\left(h\left(x\right)u\left(x\right)\right)\cdot\nu\left(x\right)=\int r\left(x\right)\cdot\nu\left(x\right)\,\forall\nu]]></latex></para>
62
63 <para>(where h(x) is a 3×3 matrix field - here it is constant and equal to
64 the identity). The reduced system KK * UU = FF is then built via the
65 elimination of Dirichlet constraints from the original system. Note that
66 it might be more efficient (and simpler) to deal with Dirichlet condition
67 via a penalization technique.</para>
68 </refsection>
69
70 <refsection>
71 <title>See Also</title>
72
73 <simplelist type="inline">
74 <member><link linkend="gf_workspace">gf_workspace</link></member>
75
76 <member><link linkend="gf_mesh">gf_mesh</link></member>
77
78 <member><link linkend="gf_fem">gf_fem</link></member>
79
80 <member><link linkend="gf_plot">gf_plot</link></member>
81 </simplelist>
82 </refsection>
83
84 <refsection>
85 <title>Authors</title>
86
87 <para>Y. Collette</para>
88 </refsection>
89 </refentry>
+0
-161
interface/src/scilab/help/en_US/examples/linear_nonlinear_elast.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="linear_nonlinear_elast" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>Linear and non-linear elasticity</refname>
11
12 <refpurpose>This example uses a mesh that was generated with GiD.</refpurpose>
13 </refnamediv>
14
15 <refsection>
16 <title>Description</title>
17
18 <para>The object is meshed with quadratic tetrahedrons. You can find the m-file of this example under the name demo_tripod.sce in the
19 directory scilab/demos of the toolbox distribution. </para>
20
21 <programlisting role="example"><![CDATA[
22 disp('This demo is an adaption of the original tripod demo')
23 disp('which uses the new ''brick'' framework of getfem')
24 disp('The code is shorter, faster and much more powerful')
25 disp('You can easily switch between linear/non linear')
26 disp('compressible/incompressible elasticity!')
27
28 linear = 1
29 incompressible = 0
30
31 gf_workspace('clear all');
32 // import the mesh
33 m = gf_mesh('import','gid','../meshes/tripod.GiD.msh');
34 mfu = gf_mesh_fem(m,3); // mesh-fem supporting a 3D-vector field
35 mfd = gf_mesh_fem(m,1); // scalar mesh_fem, for data fields.
36 // the mesh_im stores the integration methods for each tetrahedron
37 mim = gf_mesh_im(m,gf_integ('IM_TETRAHEDRON(5)'));
38 // we choose a P2 fem for the main unknown
39 gf_mesh_fem_set(mfu,'fem',gf_fem('FEM_PK(3,2)'));
40 // the material is homogeneous, hence we use a P0 fem for the data
41 gf_mesh_fem_set(mfd,'fem',gf_fem('FEM_PK(3,0)'));
42 // display some informations about the mesh
43 disp(sprintf('nbcvs=%d, nbpts=%d, nbdof=%d',gf_mesh_get(m,'nbcvs'),...
44 gf_mesh_get(m,'nbpts'),gf_mesh_fem_get(mfu,'nbdof')));
45 P = gf_mesh_get(m,'pts'); // get list of mesh points coordinates
46 pidtop = find(abs(P(2,:)-13)<1e-6); // find those on top of the object
47 pidbot = find(abs(P(2,:)+10)<1e-6); // find those on the bottom
48 // build the list of faces from the list of points
49 ftop = gf_mesh_get(m,'faces from pid',pidtop);
50 fbot = gf_mesh_get(m,'faces from pid',pidbot);
51 // assign boundary numbers
52 gf_mesh_set(m,'boundary',1,ftop);
53 gf_mesh_set(m,'boundary',2,fbot);
54
55 E = 1e3; Nu = 0.3;
56 // set the Lame coefficients
57 lambda = E*Nu/((1+Nu)*(1-2*Nu));
58 mu = E/(2*(1+Nu));
59
60 // create a meshfem for the pressure field (used if incompressible ~= 0)
61 mfp = gf_mesh_fem(m); gf_mesh_fem_set(mfp, 'fem', gf_fem('FEM_PK_DISCONTINUOUS(3,0)'));
62 if (linear) then
63 // the linearized elasticity , for small displacements
64 b0 = gf_mdbrick('isotropic_linearized_elasticity',mim,mfu)
65 gf_mdbrick_set(b0, 'param','lambda', lambda);
66 gf_mdbrick_set(b0, 'param','mu', mu);
67 if (incompressible) then
68 b1 = gf_mdbrick('linear incompressibility term', b0, mfp);
69 else
70 b1 = b0;
71 end
72 else
73 // See also demo_nonlinear_elasticity for a better example
74 if (incompressible) then
75 b0 = gf_mdbrick('nonlinear elasticity',mim, mfu, 'Mooney Rivlin');
76 b1 = gf_mdbrick('nonlinear elasticity incompressibility term',b0,mfp);
77 gf_mdbrick_set(b0, 'param','params',[lambda;mu]);
78 else
79 // large deformation with a linearized material law.. not
80 // a very good choice!
81 b0 = gf_mdbrick('nonlinear elasticity',mim, mfu, 'SaintVenant Kirchhoff');
82 gf_mdbrick_set(b0, 'param','params',[lambda;mu]);
83 b1 = b0;
84 end
85 end
86
87 // set a vertical force on the top of the tripod
88 b2 = gf_mdbrick('source term', b1, 1);
89 gf_mdbrick_set(b2, 'param', 'source_term', mfd, gf_mesh_fem_get_eval(mfd, list([0;-10;0])));
90
91 // attach the tripod to the ground
92 b3 = gf_mdbrick('dirichlet', b2, 2, mfu, 'penalized');
93
94 mds = gf_mdstate(b3)
95
96 disp('running solve...')
97
98 t0 = timer();
99
100 gf_mdbrick_get(b3, 'solve', mds, 'noisy', 'max_iter', 1000, 'max_res', 1e-6, 'lsolver', 'superlu');
101 disp(sprintf('solve done in %.2f sec', timer()-t0));
102
103 mfdu = gf_mesh_fem(m,1);
104 // the P2 fem is not derivable across elements, hence we use a discontinuous
105 // fem for the derivative of U.
106 gf_mesh_fem_set(mfdu,'fem',gf_fem('FEM_PK_DISCONTINUOUS(3,1)'));
107 VM = gf_mdbrick_get(b0, 'von mises',mds,mfdu);
108
109 U = gf_mdstate_get(mds, 'state'); U=U(1:gf_mesh_fem_get(mfu, 'nbdof'));
110
111 disp('plotting ... can also take some minutes!');
112
113 h = scf();
114 h.color_map = jetcolormap(255);
115
116 // we plot the von mises on the deformed object, in superposition
117 // with the initial mesh.
118 drawlater;
119 if (linear) then
120 gf_plot(mfdu,VM,'mesh','on', 'cvlst', gf_mesh_get(m, 'outer faces'),...
121 'deformation',U,'deformation_mf',mfu);
122 else
123 gf_plot(mfdu,VM,'mesh','on', 'cvlst', gf_mesh_get(m, 'outer faces'),...
124 'deformation',U,'deformation_mf',mfu,'deformation_scale',1);
125 end
126
127 colorbar(min(U),max(U);
128 drawnow;
129
130 // the von mises stress is exported into a VTK file
131 // see http://www.paraview.org/
132 gf_mesh_fem_get(mfdu,'export to vtk','tripod.vtk','ascii',VM,'vm')
133 ]]></programlisting>
134
135 <para>Here is the final figure, displaying the Von Mises stress: </para>
136
137 <mediaobject>
138 <imageobject>
139 <imagedata align="center" fileref="../../fig/tripodvonmiseswithmesh_small.png" />
140 </imageobject>
141 </mediaobject>
142 </refsection>
143
144 <refsection>
145 <title>See Also</title>
146
147 <simplelist type="inline">
148 <member><link linkend="gf_workspace">gf_workspace</link></member>
149 <member><link linkend="gf_mesh">gf_mesh</link></member>
150 <member><link linkend="gf_fem">gf_fem</link></member>
151 <member><link linkend="gf_plot">gf_plot</link></member>
152 </simplelist>
153 </refsection>
154
155 <refsection>
156 <title>Authors</title>
157
158 <para>Y. Collette</para>
159 </refsection>
160 </refentry>
+0
-239
interface/src/scilab/help/en_US/examples/step_by_step_example.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="step_by_step_example"
2 xml:lang="en" xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>A step by step basic example</refname>
11
12 <refpurpose>This example shows the basic usage of getfem.</refpurpose>
13 </refnamediv>
14
15 <refsection>
16 <title>Description</title>
17
18 <para>This example shows the basic usage of getfem, on the über-canonical
19 problem above all others: solving the Laplacian, Δu+f=0 on a square, with
20 the Dirichlet condition u=g(x) on the domain boundary.</para>
21
22 <para>The first step is to create a mesh. Since getfem++ does not come
23 with its own mesher, one has to rely on an external mesher (see
24 gf_mesh('import')), or use very simple meshes. For this example, we just
25 consider a regular mesh whose nodes are
26 {xi=0...10,j=0..10=(i/10,j/10)}.</para>
27
28 <programlisting role="example"><![CDATA[
29 // creation of a simple cartesian mesh
30 --> m = gf_mesh('cartesian',[0:.1:1],[0:.1:1])
31 m =
32 id: 0
33 cid: 0
34 ]]></programlisting>
35
36 <para>If you try to look at the value of m, you'll notice that it appears
37 to be a structure containing two integers. The first one is its
38 identifier, the second one is its class-id, i.e. an identifier of its
39 type. This small structure is just an "handle" or "descriptor" to the real
40 object, which is stored in the getfem++ memory and cannot be represented
41 via Matlab data structures. Anyway, you can still inspect the getfem++
42 objects via the command gf_workspace('stats').</para>
43
44 <para>Now we can try to have a look at the mesh, with its vertices
45 numbering and the convexes numbering:</para>
46
47 <programlisting role="example"><![CDATA[
48 // we enable vertices and convexes labels
49 --> gf_plot_mesh(m, 'vertices', 'on', 'convexes', 'on');
50 ]]></programlisting>
51
52 <para>As you can see, the mesh is regular, and the numbering of its nodes
53 and convexes is also regular (this is guaranteed for cartesian meshes, but
54 do not hope a similar numbering for the degrees of freedom).</para>
55
56 <para>The next step is to create a mesh_fem object. This one links a mesh
57 with a set of FEM.</para>
58
59 <programlisting role="example"><![CDATA[
60 --> mf = gf_mesh_fem(m,1); // create a mesh_fem of for a field of dimension 1 (i.e. a scalar field)
61 --> gf_mesh_fem_set(mf,'fem',gf_fem('FEM_QK(2,2)'));
62 ]]></programlisting>
63
64 <para>The first instruction builds a new mesh_fem object, the second
65 argument specifies that this object will be used to interpolate scalar
66 fields (since the unknown is a scalar field). The second instruction
67 assigns the Q2 FEM to every convex (each basis function is a polynomial of
68 degree 4, remember that Pk =&gt; polynomials of degree k, while Qk =&gt;
69 polynomials of degree 2k). As Q2 is a polynomial FEM, you can view the
70 expression of its basis functions on the reference convex:</para>
71
72 <programlisting role="example"><![CDATA[
73 --> gf_fem_get(gf_fem('FEM_QK(2,2)'), 'poly_str')
74 ans =
75 '1 - 3*x - 3*y + 2*x^2 + 9*x*y + 2*y^2 - 6*x^2*y - 6*x*y^2 + 4*x^2*y^2'
76 '4*x - 4*x^2 - 12*x*y + 12*x^2*y + 8*x*y^2 - 8*x^2*y^2'
77 '-x + 2*x^2 + 3*x*y - 6*x^2*y - 2*x*y^2 + 4*x^2*y^2'
78 '4*y - 12*x*y - 4*y^2 + 8*x^2*y + 12*x*y^2 - 8*x^2*y^2'
79 '16*x*y - 16*x^2*y - 16*x*y^2 + 16*x^2*y^2'
80 '-4*x*y + 8*x^2*y + 4*x*y^2 - 8*x^2*y^2'
81 '-y + 3*x*y + 2*y^2 - 2*x^2*y - 6*x*y^2 + 4*x^2*y^2'
82 '-4*x*y + 4*x^2*y + 8*x*y^2 - 8*x^2*y^2'
83 'x*y - 2*x^2*y - 2*x*y^2 + 4*x^2*y^2'
84 ]]></programlisting>
85
86 <para>Now, in order to perform numerical integrations on mf, we need to
87 build a mesh_im object:</para>
88
89 <programlisting role="example"><![CDATA[
90 // assign the same integration method on all convexes
91 --> mim=gf_mesh_im(m, gf_integ('IM_EXACT_PARALLELEPIPED(2)'));
92 ]]></programlisting>
93
94 <para>The integration method will be used to compute the various integrals
95 on each element: here we choose to perform exact computations (no
96 quadrature formula), which is possible since the geometric transformation
97 of these convexes from the reference convex is linear (this is true for
98 all simplices, and this is also true for the parallelepipeds of our
99 regular mesh, but it is not true for general quadrangles), and the chosen
100 FEM is polynomial. Hence it is possible to analytically integrate every
101 basis function/product of basis functions/gradients/etc. There are many
102 alternative FEM methods and integration methods (see the description of
103 finite element and integration methods).</para>
104
105 <para>Note however that in the general case, approximate integration
106 methods are a better choice than exact integration methods.</para>
107
108 <para>Now we have to find the "boundary" of the domain, in order to set a
109 condition. A mesh object has the ability to store some sets of convexes
110 and convex faces. These sets (called "regions") are accessed via an
111 integer #id:</para>
112
113 <programlisting role="example"><![CDATA[
114 --> border = gf_mesh_get(m,'outer faces');
115 --> gf_mesh_set(m, 'region', 42, border); // create the region #42
116 --> gf_plot_mesh(m, 'regions', [42]); // the boundary edges appears in red
117 ]]></programlisting>
118
119 <para>Here we find the faces of the convexes which are on the boundary of
120 the mesh (i.e. the faces which are not shared by two convexes). remark: we
121 could have used gf_mesh_get(m, 'OuTEr_faCes') , as the interface is
122 case-insensitive, and whitespaces can be replaced by underscores. The
123 array border has two rows, on the first row is a convex number, on the
124 second row is a face number (which is local to the convex, there is no
125 global numbering of faces). Then this set of faces is assigned to the
126 region number 42.</para>
127
128 <para>At this point, we just have to stack some model bricks and run the
129 solver to get the solution! The "model bricks" are created with the
130 gf_mdbrick constructor. A model brick is basically an object which
131 modifies a global linear system (tangent matrix for non-linear problems)
132 and its associated right hand side. Typical modifications are insertion of
133 the stiffness matrix for the problem considered (linear elasticity,
134 laplacian, etc), handling of a set of contraints, Dirichlet condition,
135 addition of a source term to the right hand side etc. The global tangent
136 matrix and its right hand side are stored in a "model state" structure,
137 created with the gf_mdstate constructor.</para>
138
139 <para>Let us build a problem with an easy solution:
140 <latex style="text"><![CDATA[u=x\left(x-1\right)y\left(y-1\right)+x^{5}]]></latex>, then we have
141 <latex style="text"><![CDATA[\Delta u=2\left(x^{2}+y^{2}\right)-2\left(x+y\right)+20y^{3}]]></latex>
142 (the FEM won't be able to catch the exact solution since we use a Q2 method).</para>
143
144 <para>We start with a "generic elliptic" brick, which handles
145 <latex style="text"><![CDATA[-\text{div}\left(A\nabla u\right)=\cdots]]></latex>
146 problems, where A can be a scalar field, a matrix field, or an order 4 tensor field. By default, A=1.</para>
147
148 <programlisting role="example"><![CDATA[
149 --> b0=gf_mdbrick('generic elliptic',mim,mf)
150 ]]></programlisting>
151
152 <para>Each brick embeds a number of parameter fields. In the case of the
153 generic elliptic brick, there is only one parameter field, the A(x)
154 coefficient in <latex style="text"><![CDATA[-\text{div}\left(A\nabla u\right)=\cdots]]></latex>.
155 It is possible to view the list of parameters of the brick with</para>
156
157 <programlisting role="example"><![CDATA[
158 --> gf_mdbrick_get(b0, 'param list')
159 ans =
160
161 'A'
162 --> gf_mdbrick_get(b0, 'param', 'A')
163
164 ans =
165
166 1
167 ]]></programlisting>
168
169 <para>Next we add a Dirichlet condition on the domain boundary:</para>
170
171 <programlisting role="example"><![CDATA[
172 --> b1=gf_mdbrick('dirichlet',b0,42,mf,'penalized')
173 ]]></programlisting>
174
175 <para>Here the number 42 is the region number to which the dirichlet
176 condition is applied. The 'penalized' says that the Dirichlet condition
177 should be imposed via a penalization technique. Other ways are possible
178 (augmented system, direct elimination). A mesh fem argument is also
179 required, as the Dirichlet condition u=r is imposed in a weak form </para>
180
181 <para><latex align="center"><![CDATA[\int u\left(x\right)\nu\left(x\right)=\int r\left(x\right)\nu\left(x\right)\,\forall\nu]]></latex></para>
182
183 <para>where v is taken in the space of multipliers given by here by
184 mf.</para>
185
186 <para>By default, the Dirichlet brick imposes u=0 on the specified
187 boundary. We change this to <latex style="text"><![CDATA[u=\left(x-0.5\right)^{2}+\left(y-0.5\right)^{2}+x/5-y/3]]></latex>:</para>
188
189 <programlisting role="example"><![CDATA[
190 --> R=gf_mesh_fem_get(mf, 'eval', list('(x-.5).^2 + (y-.5).^2 + x/5 - y/3'));
191 --> gf_mdbrick_set(b1, 'param', 'R', mf, R);
192 ]]></programlisting>
193
194 <para>Remark: the polynomial expression was interpolated on mf. It is
195 possible only if mf is of Lagrange type. In this first example we use the
196 same mesh fem for the unknown and for the data such as R, but in the
197 general case, mf won't be Lagrangian and another (Lagrangian) mesh fem
198 will be used for the description of Dirichlet conditions, source terms
199 etc.</para>
200
201 <para>A "model state" variable is created, and the solver is
202 launched:</para>
203
204 <programlisting role="example"><![CDATA[
205 --> mds=gf_mdstate('real')
206 --> gf_mdbrick_get(b1, 'solve', mds)
207 ]]></programlisting>
208
209 <para>The model state now contains the solution (as well as other things,
210 such as the linear system which was solved). It is extracted, a display
211 into a matlab figure.</para>
212
213 <programlisting role="example"><![CDATA[
214 --> U=gf_mdstate_get(mds, 'state');
215 --> gf_plot(mf, U, 'mesh','on');
216 ]]></programlisting>
217 </refsection>
218
219 <refsection>
220 <title>See Also</title>
221
222 <simplelist type="inline">
223 <member><link linkend="gf_workspace">gf_workspace</link></member>
224
225 <member><link linkend="gf_mesh">gf_mesh</link></member>
226
227 <member><link linkend="gf_fem">gf_fem</link></member>
228
229 <member><link linkend="gf_plot">gf_plot</link></member>
230 </simplelist>
231 </refsection>
232
233 <refsection>
234 <title>Authors</title>
235
236 <para>Y. Collette</para>
237 </refsection>
238 </refentry>
+0
-480
interface/src/scilab/help/en_US/gf_asm.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_asm" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_asm</refname>
11 <refpurpose>
12 General assembly function.
13
14 Many of the functions below use more than one mesh_fem: the main
15 mesh_fem (mf_u) used for the main unknown, and data mesh_fem (mf_d)
16 used for the data. It is always assumed that the Qdim of mf_d is
17 equal to 1: if mf_d is used to describe vector or tensor data, you
18 just have to "stack" (in fortran ordering) as many scalar fields as
19 necessary.
20 </refpurpose>
21 </refnamediv>
22
23 <refsynopsisdiv>
24 <title>Calling Sequence</title>
25
26 <synopsis>M = gf_asm('mass matrix', mesh_im mim, mesh_fem mf1[, mesh_fem mf2[, boundary_num]])</synopsis>
27 <synopsis>M = gf_asm('lsneuman matrix', mesh_im mim, mesh_fem mf1, mesh_fem mf2, levelset ls)</synopsis>
28 <synopsis>M = gf_asm('nlsgrad matrix', mesh_im mim, mesh_fem mf1, mesh_fem mf2, levelset ls)</synopsis>
29 <synopsis>M = gf_asm('stabilization patch matrix', @tm mesh, mesh_fem mf, mesh_im mim, real ratio, real h)</synopsis>
30 <synopsis>L = gf_asm('laplacian', mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, vec a)</synopsis>
31 <synopsis>Le = gf_asm('linear elasticity', mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, vec lambda_d, vec mu_d)</synopsis>
32 <synopsis>TRHS = gf_asm('nonlinear elasticity', mesh_im mim, mesh_fem mf_u, vec U, string law, mesh_fem mf_d, mat params, {'tangent matrix'|'rhs'|'incompressible tangent matrix', mesh_fem mf_p, vec P|'incompressible rhs', mesh_fem mf_p, vec P})</synopsis>
33 <synopsis>{K, B} = gf_asm('stokes', mesh_im mim, mesh_fem mf_u, mesh_fem mf_p, mesh_fem mf_d, vec nu)</synopsis>
34 <synopsis>A = gf_asm('helmholtz', mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, vec k)</synopsis>
35 <synopsis>A = gf_asm('bilaplacian', mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, vec a)</synopsis>
36 <synopsis>A = gf_asm('bilaplacian KL', mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, vec a, vec nu)</synopsis>
37 <synopsis>V = gf_asm('volumic source', mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, vec fd)</synopsis>
38 <synopsis>B = gf_asm('boundary source', int bnum, mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, vec G)</synopsis>
39 <synopsis>{HH, RR} = gf_asm('dirichlet', int bnum, mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, mat H, vec R [, threshold])</synopsis>
40 <synopsis>Q = gf_asm('boundary qu term',int boundary_num, mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, mat q)</synopsis>
41 <synopsis>gf_asm('define function', string name, int nb_args, string expression[, string expression_derivative_t[, string expression_derivative_u]])</synopsis>
42 <synopsis>gf_asm('undefine function', string name)</synopsis>
43 <synopsis>{...} = gf_asm('generic', mesh_im mim, int order, string expression, int region, [string varname, int is_variable[, {mesh_fem mf, mesh_imd mimd}], value], ...)</synopsis>
44 <synopsis>{...} = gf_asm('volumic' [,CVLST], expr [, mesh_ims, mesh_fems, data...])</synopsis>
45 <synopsis>{...} = gf_asm('boundary', int bnum, string expr [, mesh_im mim, mesh_fem mf, data...])</synopsis>
46 <synopsis>Mi = gf_asm('interpolation matrix', mesh_fem mf, {mesh_fem mfi | vec pts})</synopsis>
47 <synopsis>Me = gf_asm('extrapolation matrix',mesh_fem mf, {mesh_fem mfe | vec pts})</synopsis>
48 <synopsis>B = gf_asm('integral contact Uzawa projection', int bnum, mesh_im mim, mesh_fem mf_u, vec U, mesh_fem mf_lambda, vec vec_lambda, mesh_fem mf_obstacle, vec obstacle, scalar r [, {scalar coeff | mesh_fem mf_coeff, vec coeff} [, int option[, scalar alpha, vec W]]])</synopsis>
49 <synopsis>B = gf_asm('level set normal source term', int bnum, mesh_im mim, mesh_fem mf_u, mesh_fem mf_lambda, vec vec_lambda, mesh_fem mf_levelset, vec levelset)</synopsis>
50 </refsynopsisdiv>
51
52 <refsection>
53 <title>Description</title>
54 <para>
55 General assembly function.
56
57 Many of the functions below use more than one mesh_fem: the main
58 mesh_fem (mf_u) used for the main unknown, and data mesh_fem (mf_d)
59 used for the data. It is always assumed that the Qdim of mf_d is
60 equal to 1: if mf_d is used to describe vector or tensor data, you
61 just have to "stack" (in fortran ordering) as many scalar fields as
62 necessary.
63 </para>
64 </refsection>
65
66 <refsection>
67 <title>Command list</title>
68
69 <itemizedlist>
70 <listitem>
71 <para><literal>M = gf_asm('mass matrix', mesh_im mim, mesh_fem mf1[, mesh_fem mf2[, boundary_num]])</literal></para>
72
73 <para> Assembly of a mass matrix.
74
75 Return a spmat object.
76
77 </para>
78 </listitem>
79
80 <listitem>
81 <para><literal>M = gf_asm('lsneuman matrix', mesh_im mim, mesh_fem mf1, mesh_fem mf2, levelset ls)</literal></para>
82
83 <para> Assembly of a level set Neuman matrix.
84
85 Return a spmat object.
86
87 </para>
88 </listitem>
89
90 <listitem>
91 <para><literal>M = gf_asm('nlsgrad matrix', mesh_im mim, mesh_fem mf1, mesh_fem mf2, levelset ls)</literal></para>
92
93 <para> Assembly of a nlsgrad matrix.
94
95 Return a spmat object.
96
97 </para>
98 </listitem>
99
100 <listitem>
101 <para><literal>M = gf_asm('stabilization patch matrix', @tm mesh, mesh_fem mf, mesh_im mim, real ratio, real h)</literal></para>
102
103 <para> Assembly of stabilization patch matrix .
104
105 Return a spmat object.
106
107 </para>
108 </listitem>
109
110 <listitem>
111 <para><literal>L = gf_asm('laplacian', mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, vec a)</literal></para>
112
113 <para> Assembly of the matrix for the Laplacian problem.
114
115 <latex style="text"><![CDATA[\nabla\cdot(a(x)\nabla u)]]></latex> with <literal>a</literal> a scalar.
116
117 Return a spmat object.
118
119 </para>
120 </listitem>
121
122 <listitem>
123 <para><literal>Le = gf_asm('linear elasticity', mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, vec lambda_d, vec mu_d)</literal></para>
124
125 <para> Assembles of the matrix for the linear (isotropic) elasticity problem.
126
127 <latex style="text"><![CDATA[\nabla\cdot(C(x):\nabla u)]]></latex>
128 with <latex style="text"><![CDATA[C]]></latex> defined via <literal>lambda_d</literal> and <literal>mu_d</literal>.
129
130 Return a spmat object.
131
132 </para>
133 </listitem>
134
135 <listitem>
136 <para><literal>TRHS = gf_asm('nonlinear elasticity', mesh_im mim, mesh_fem mf_u, vec U, string law, mesh_fem mf_d, mat params, {'tangent matrix'|'rhs'|'incompressible tangent matrix', mesh_fem mf_p, vec P|'incompressible rhs', mesh_fem mf_p, vec P})</literal></para>
137
138 <para> Assembles terms (tangent matrix and right hand side) for nonlinear elasticity.
139
140 The solution <literal>U</literal> is required at the current time-step. The <literal>law</literal>
141 may be choosen among:
142
143 - 'SaintVenant Kirchhoff':
144 Linearized law, should be avoided). This law has the two usual
145 Lame coefficients as parameters, called lambda and mu.
146 - 'Mooney Rivlin':
147 This law has three parameters, called C1, C2 and D1.
148 Can be preceded with the words 'compressible' or 'incompressible' to force
149 a specific version. By default, the incompressible version is considered
150 which requires only the first two material coefficients.
151 - 'neo Hookean':
152 A special case of the 'Mooney Rivlin' law that requires one material
153 coefficient less (C2 = 0). By default, its compressible version is used.
154 - 'Ciarlet Geymonat':
155 This law has 3 parameters, called lambda, mu and gamma, with
156 gamma chosen such that gamma is in ]-lambda/2-mu, -mu[.
157
158 The parameters of the material law are described on the mesh_fem <literal>mf_d</literal>.
159 The matrix <literal>params</literal> should have <literal>nbdof(mf_d)</literal> columns, each row
160 correspounds to a parameter.
161
162 The last argument selects what is to be built: either the tangent
163 matrix, or the right hand side. If the incompressibility is
164 considered, it should be followed by a mesh_fem <literal>mf_p</literal>, for the
165 pression.
166
167 Return a spmat object (tangent matrix), vec object (right hand
168 side), tuple of spmat objects (incompressible tangent matrix), or
169 tuple of vec objects (incompressible right hand side).
170
171 </para>
172 </listitem>
173
174 <listitem>
175 <para><literal>{K, B} = gf_asm('stokes', mesh_im mim, mesh_fem mf_u, mesh_fem mf_p, mesh_fem mf_d, vec nu)</literal></para>
176
177 <para> Assembly of matrices for the Stokes problem.
178
179 <latex style="text"><![CDATA[-\nu(x)\Delta u + \nabla p = 0]]></latex>
180 <latex style="text"><![CDATA[\nabla\cdot u = 0]]></latex>
181 with <latex style="text"><![CDATA[\nu]]></latex> (<literal>nu</literal>), the fluid's dynamic viscosity.
182
183 On output, <literal>K</literal> is the usual linear elasticity stiffness matrix with
184 <latex style="text"><![CDATA[\lambda = 0]]></latex> and
185 <latex style="text"><![CDATA[2\mu = \nu]]></latex>. <literal>B</literal> is a matrix
186 corresponding to <latex style="text"><![CDATA[\int p\nabla\cdot\phi]]></latex>.
187
188 <literal>K</literal> and <literal>B</literal> are spmat object's.
189
190 </para>
191 </listitem>
192
193 <listitem>
194 <para><literal>A = gf_asm('helmholtz', mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, vec k)</literal></para>
195
196 <para> Assembly of the matrix for the Helmholtz problem.
197
198 <latex style="text"><![CDATA[\Delta u + k^2 u]]></latex> = 0, with <literal>k</literal> complex scalar.
199
200 Return a spmat object.
201
202 </para>
203 </listitem>
204
205 <listitem>
206 <para><literal>A = gf_asm('bilaplacian', mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, vec a)</literal></para>
207
208 <para> Assembly of the matrix for the Bilaplacian problem.
209
210 <latex style="text"><![CDATA[\Delta(a(x)\Delta u) = 0]]></latex> with <literal>a</literal> scalar.
211
212 Return a spmat object.
213
214 </para>
215 </listitem>
216
217 <listitem>
218 <para><literal>A = gf_asm('bilaplacian KL', mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, vec a, vec nu)</literal></para>
219
220 <para> Assembly of the matrix for the Bilaplacian problem with Kirchoff-Love formulation.
221
222 <latex style="text"><![CDATA[\Delta(a(x)\Delta u) = 0]]></latex> with <literal>a</literal> scalar.
223
224 Return a spmat object.
225
226 </para>
227 </listitem>
228
229 <listitem>
230 <para><literal>V = gf_asm('volumic source', mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, vec fd)</literal></para>
231
232 <para> Assembly of a volumic source term.
233
234 Output a vector <literal>V</literal>, assembled on the mesh_fem <literal>mf_u</literal>, using the data
235 vector <literal>fd</literal> defined on the data mesh_fem <literal>mf_d</literal>. <literal>fd</literal> may be real or
236 complex-valued.
237
238 Return a vec object.
239
240 </para>
241 </listitem>
242
243 <listitem>
244 <para><literal>B = gf_asm('boundary source', int bnum, mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, vec G)</literal></para>
245
246 <para> Assembly of a boundary source term.
247
248 <literal>G</literal> should be a [Qdim x N] matrix, where N is the number of dof
249 of <literal>mf_d</literal>, and Qdim is the dimension of the unkown u (that is set
250 when creating the mesh_fem).
251
252 Return a vec object.
253
254 </para>
255 </listitem>
256
257 <listitem>
258 <para><literal>{HH, RR} = gf_asm('dirichlet', int bnum, mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, mat H, vec R [, threshold])</literal></para>
259
260 <para> Assembly of Dirichlet conditions of type <literal>h.u = r</literal>.
261
262 Handle <literal>h.u = r</literal> where h is a square matrix (of any rank) whose
263 size is equal to the dimension of the unkown u. This matrix is
264 stored in <literal>H</literal>, one column per dof in <literal>mf_d</literal>, each column containing
265 the values of the matrix h stored in fortran order:
266
267 .. math::
268
269 <literal>H(:,j) = [h11(x_j) h21(x_j) h12(x_j) h22(x_j)]</literal>
270
271 if u is a 2D vector field.
272
273 Of course, if the unknown is a scalar field, you just have to set
274 <literal>H = ones(1, N)</literal>, where N is the number of dof of <literal>mf_d</literal>.
275
276 This is basically the same than calling gf_asm('boundary qu term')
277 for <literal>H</literal> and calling gf_asm('neumann') for <literal>R</literal>, except that this
278 function tries to produce a 'better' (more diagonal) constraints
279 matrix (when possible).
280
281 See also gf_spmat_get(spmat S, 'Dirichlet_nullspace').
282 </para>
283 </listitem>
284
285 <listitem>
286 <para><literal>Q = gf_asm('boundary qu term',int boundary_num, mesh_im mim, mesh_fem mf_u, mesh_fem mf_d, mat q)</literal></para>
287
288 <para> Assembly of a boundary qu term.
289
290 <literal>q</literal> should be be a [Qdim x Qdim x N] array, where N is the number
291 of dof of <literal>mf_d</literal>, and Qdim is the dimension of the unkown u (that
292 is set when creating the mesh_fem).
293
294 Return a spmat object.
295
296 </para>
297 </listitem>
298
299 <listitem>
300 <para><literal>gf_asm('define function', string name, int nb_args, string expression[, string expression_derivative_t[, string expression_derivative_u]])</literal></para>
301
302 <para> Define a new function <literal>name</literal> which can be used in high level
303 generic assembly. The function can have one or two parameters.
304 In <literal>expression</literal> all available predefined function or operation
305 of the generic assembly can be used. However, no reference to
306 some variables or data can be specified. The argument of the
307 function is <literal>t</literal> for a one parameter function and <literal>t</literal> and <literal>u</literal>
308 for a two parameter function. For instance 'sin(pi*t)+2*t*t'
309 is a valid expression for a one parameter function and
310 'sin(max(t,u)*pi)' is a valid expression for a two parameters
311 function. <literal>expression_derivative_t</literal> and <literal>expression_derivative_u</literal>
312 are optional expressions for the derivatives with respect
313 to <literal>t</literal> and <literal>u</literal>. If they are not furnished, a symbolic derivation
314 is used.
315 </para>
316 </listitem>
317
318 <listitem>
319 <para><literal>gf_asm('undefine function', string name)</literal></para>
320
321 <para> Cancel the definition of a previously defined function <literal>name</literal>
322 for the high level generic assembly.
323 </para>
324 </listitem>
325
326 <listitem>
327 <para><literal>{...} = gf_asm('generic', mesh_im mim, int order, string expression, int region, [string varname, int is_variable[, {mesh_fem mf, mesh_imd mimd}], value], ...)</literal></para>
328
329 <para> High-level generic assembly procedure for volumic assembly.
330
331 Performs the generic assembly of <literal>expression</literal> with the integration
332 method <literal>mim</literal> on the mesh region of index <literal>region</literal> (-1 means all
333 the element of the mesh). The same mesh should be shared by
334 the integration method and all the finite element methods or
335 mesh_im_data corresponding to the variables.
336
337 <literal>order</literal> indicates either that the (scalar) potential
338 (order = 0) or the (vector) residual (order = 1) or the
339 tangent (matrix) (order = 2) is to be computed.
340
341 The variables and constant (data) are listed after the
342 region number. For each variable/constant, first the variable/constant
343 name should be given (as it is referred in the assembly string), then
344 1 if it is a variable or 0 for a constant, then the finite element
345 method if it is a fem variable/constant or the mesh_im_data if it is
346 data defined on integration points, and the vector representing
347 the value of the variable/constant. It is possible to give an arbitrary
348 number of variable/constant. The difference between a variable and a
349 constant is that automatic differentiation is done with respect to
350 variables only (see GetFEM++ user documentation). Test functions are
351 only available for variables, not for constants.
352
353 Note that if several variables are given, the assembly of the
354 tangent matrix/residual vector will be done considering the order
355 in the call of the function (the degrees of freedom of the first
356 variable, then of the second, and so on).
357
358 For example, the L2 norm of a vector field "u" can be computed with::
359
360 gf_compute('L2 norm') or with the square root of:
361
362 gf_asm('generic', mim, 0, 'u.u', -1, 'u', 1, mf, U);
363
364 The nonhomogeneous Laplacian stiffness matrix of a scalar field can be evaluated with::
365
366 gf_asm('laplacian', mim, mf, mf_data, A) or equivalently with:
367
368 gf_asm('generic', mim, 2, 'A*Grad_Test2_u.Grad_Test_u', -1, 'u', 1, mf, U, 'A', 0, mf_data, A);
369
370
371 </para>
372 </listitem>
373
374 <listitem>
375 <para><literal>{...} = gf_asm('volumic' [,CVLST], expr [, mesh_ims, mesh_fems, data...])</literal></para>
376
377 <para> Low-level generic assembly procedure for volumic assembly.
378
379 The expression <literal>expr</literal> is evaluated over the mesh_fem's listed in the
380 arguments (with optional data) and assigned to the output arguments.
381 For details about the syntax of assembly expressions, please refer
382 to the getfem user manual (or look at the file getfem_assembling.h
383 in the getfem++ sources).
384
385 For example, the L2 norm of a field can be computed with::
386
387 gf_compute('L2 norm') or with the square root of:
388
389 gf_asm('volumic','u=data(#1); V()+=u(i).u(j).comp(Base(#1).Base(#1))(i,j)',mim,mf,U)
390
391 The Laplacian stiffness matrix can be evaluated with::
392
393 gf_asm('laplacian',mim, mf, mf_data, A) or equivalently with:
394
395 gf_asm('volumic','a=data(#2);M(#1,#1)+=sym(comp(Grad(#1).Grad(#1).Base(#2))(:,i,:,i,j).a(j))', mim,mf,mf_data,A);
396 </para>
397 </listitem>
398
399 <listitem>
400 <para><literal>{...} = gf_asm('boundary', int bnum, string expr [, mesh_im mim, mesh_fem mf, data...])</literal></para>
401
402 <para> Low-level generic boundary assembly.
403
404 See the help for gf_asm('volumic').
405 </para>
406 </listitem>
407
408 <listitem>
409 <para><literal>Mi = gf_asm('interpolation matrix', mesh_fem mf, {mesh_fem mfi | vec pts})</literal></para>
410
411 <para> Build the interpolation matrix from a mesh_fem onto another mesh_fem or a set of points.
412
413 Return a matrix <literal>Mi</literal>, such that <literal>V = Mi.U</literal> is equal to
414 gf_compute('interpolate_on',mfi). Useful for repeated interpolations.
415 Note that this is just interpolation, no elementary integrations
416 are involved here, and <literal>mfi</literal> has to be lagrangian. In the more
417 general case, you would have to do a L2 projection via the mass
418 matrix.
419
420 <literal>Mi</literal> is a spmat object.
421
422 </para>
423 </listitem>
424
425 <listitem>
426 <para><literal>Me = gf_asm('extrapolation matrix',mesh_fem mf, {mesh_fem mfe | vec pts})</literal></para>
427
428 <para> Build the extrapolation matrix from a mesh_fem onto another mesh_fem or a set of points.
429
430 Return a matrix <literal>Me</literal>, such that <literal>V = Me.U</literal> is equal to
431 gf_compute('extrapolate_on',mfe). Useful for repeated
432 extrapolations.
433
434 <literal>Me</literal> is a spmat object.
435
436 </para>
437 </listitem>
438
439 <listitem>
440 <para><literal>B = gf_asm('integral contact Uzawa projection', int bnum, mesh_im mim, mesh_fem mf_u, vec U, mesh_fem mf_lambda, vec vec_lambda, mesh_fem mf_obstacle, vec obstacle, scalar r [, {scalar coeff | mesh_fem mf_coeff, vec coeff} [, int option[, scalar alpha, vec W]]])</literal></para>
441
442 <para> Specific assembly procedure for the use of an Uzawa algorithm to solve
443 contact problems. Projects the term $-(\lambda - r (u_N-g))_-$ on the
444 finite element space of $\lambda$.
445
446 Return a vec object.
447
448 </para>
449 </listitem>
450
451 <listitem>
452 <para><literal>B = gf_asm('level set normal source term', int bnum, mesh_im mim, mesh_fem mf_u, mesh_fem mf_lambda, vec vec_lambda, mesh_fem mf_levelset, vec levelset)</literal></para>
453
454 <para> Performs an assembly of the source term represented by <literal>vec_lambda</literal>
455 on <literal>mf_lambda</literal> considered to be a component in the direction of the
456 gradient of a levelset function (normal to the levelset) of a vector
457 field defined on <literal>mf_u</literal> on the boundary <literal>bnum</literal>.
458
459 Return a vec object.
460
461 </para>
462 </listitem>
463
464 </itemizedlist>
465 </refsection>
466
467 <refsection>
468 <title>See Also</title>
469 <simplelist type="inline">
470 <member><link linkend="getfem_types">getfem types</link></member>
471 </simplelist>
472 </refsection>
473
474 <refsection>
475 <title>Authors</title>
476 <para>Y. Collette</para>
477 </refsection>
478
479 </refentry>
+0
-29
interface/src/scilab/help/en_US/gf_asm_pdetoolbc.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_asm_pdetoolbc" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_asm_pdetoolbc</refname>
11
12 <refpurpose>'pdetool style' assembling of boundary conditions</refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>[Q,G,H,R,F]=gf_asm_pdetoolbc(mf_u, mf_d, b, e, f_expr)</synopsis>
19 </refsynopsisdiv>
20
21 <refsection>
22 <title>See Also</title>
23
24 <simplelist type="inline">
25 <member><link linkend="gf_asm">gf_asm</link></member>
26 </simplelist>
27 </refsection>
28 </refentry>
+0
-81
interface/src/scilab/help/en_US/gf_colormap.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_colormap" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_colormap</refname>
11
12 <refpurpose>Return a colormap, or change the current colormap</refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>c=gf_colormap(name)</synopsis>
19 </refsynopsisdiv>
20
21 <refsection>
22 <title>Description</title>
23
24 <para>Return a colormap, or change the current colormap. </para>
25
26 <para><literal>name</literal> can be:</para>
27
28 <itemizedlist>
29 <listitem>
30 <para>'tripod'</para>
31 </listitem>
32
33 <listitem>
34 <para>'chouette'</para>
35 </listitem>
36
37 <listitem>
38 <para>'froid'</para>
39 </listitem>
40
41 <listitem>
42 <para>'tank'</para>
43 </listitem>
44
45 <listitem>
46 <para>'earth'</para>
47 </listitem>
48 </itemizedlist>
49 </refsection>
50
51 <refsection>
52 <title>Examples</title>
53
54 <programlisting role="example"><![CDATA[
55 m2 = gf_mesh('triangles grid',[0:.1:1],[0:.1:1]);
56 mf2 = gf_mesh_fem(m2,1);
57 gf_mesh_fem_set(mf2 ,'fem',gf_fem('FEM_PK(2,2)'));//,gf_integ('IM_TRIANGLE(5)'));
58 U2 = gf_mesh_fem_get_eval(mf2,list('x.*y'));
59
60 gf_workspace('push');
61 sl2 = gf_slice(list('none'),m2,2);
62
63 h = scf();
64 h.colormap = gf_colormap('froid');
65
66 drawlater;
67 gf_plot_slice(sl2);
68 drawnow;
69 ]]></programlisting>
70 </refsection>
71
72 <refsection>
73 <title>See Also</title>
74
75 <simplelist type="inline">
76 <member><link linkend="gf_plot">gf_plot</link></member>
77 <member><link linkend="gf_plot_slice">gf_plot_slice</link></member>
78 </simplelist>
79 </refsection>
80 </refentry>
+0
-257
interface/src/scilab/help/en_US/gf_compute.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_compute" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_compute</refname>
11 <refpurpose>
12 Various computations involving the solution U to a finite element problem.
13 </refpurpose>
14 </refnamediv>
15
16 <refsynopsisdiv>
17 <title>Calling Sequence</title>
18
19 <synopsis>n = gf_compute(mesh_fem MF, vec U, 'L2 norm', mesh_im mim[, mat CVids])</synopsis>
20 <synopsis>n = gf_compute(mesh_fem MF, vec U, 'L2 dist', mesh_im mim, mesh_fem mf2, vec U2[, mat CVids])</synopsis>
21 <synopsis>n = gf_compute(mesh_fem MF, vec U, 'H1 semi norm', mesh_im mim[, mat CVids])</synopsis>
22 <synopsis>n = gf_compute(mesh_fem MF, vec U, 'H1 semi dist', mesh_im mim, mesh_fem mf2, vec U2[, mat CVids])</synopsis>
23 <synopsis>n = gf_compute(mesh_fem MF, vec U, 'H1 norm', mesh_im mim[, mat CVids])</synopsis>
24 <synopsis>n = gf_compute(mesh_fem MF, vec U, 'H2 semi norm', mesh_im mim[, mat CVids])</synopsis>
25 <synopsis>n = gf_compute(mesh_fem MF, vec U, 'H2 norm', mesh_im mim[, mat CVids])</synopsis>
26 <synopsis>DU = gf_compute(mesh_fem MF, vec U, 'gradient', mesh_fem mf_du)</synopsis>
27 <synopsis>HU = gf_compute(mesh_fem MF, vec U, 'hessian', mesh_fem mf_h)</synopsis>
28 <synopsis>UP = gf_compute(mesh_fem MF, vec U, 'eval on triangulated surface', int Nrefine, [vec CVLIST])</synopsis>
29 <synopsis>Ui = gf_compute(mesh_fem MF, vec U, 'interpolate on', {mesh_fem mfi | slice sli | vec pts})</synopsis>
30 <synopsis>Ue = gf_compute(mesh_fem MF, vec U, 'extrapolate on', mesh_fem mfe)</synopsis>
31 <synopsis>E = gf_compute(mesh_fem MF, vec U, 'error estimate', mesh_im mim)</synopsis>
32 <synopsis>E = gf_compute(mesh_fem MF, vec U, 'error estimate nitsche', mesh_im mim, int GAMMAC, int GAMMAN, scalar lambda_, scalar mu_, scalar gamma0, scalar f_coeff)</synopsis>
33 <synopsis>E = gf_compute(mesh_fem MF, vec U, 'convect', mesh_fem mf_v, vec V, scalar dt, int nt[, string option[, vec per_min, vec per_max]])</synopsis>
34 </refsynopsisdiv>
35
36 <refsection>
37 <title>Description</title>
38 <para>
39 Various computations involving the solution U to a finite element problem.
40 </para>
41 </refsection>
42
43 <refsection>
44 <title>Command list</title>
45
46 <itemizedlist>
47 <listitem>
48 <para><literal>n = gf_compute(mesh_fem MF, vec U, 'L2 norm', mesh_im mim[, mat CVids])</literal></para>
49
50 <para> Compute the L2 norm of the (real or complex) field <literal>U</literal>.
51
52 If <literal>CVids</literal> is given, the norm will be computed only on the listed
53 convexes.
54 </para>
55 </listitem>
56
57 <listitem>
58 <para><literal>n = gf_compute(mesh_fem MF, vec U, 'L2 dist', mesh_im mim, mesh_fem mf2, vec U2[, mat CVids])</literal></para>
59
60 <para> Compute the L2 distance between <literal>U</literal> and <literal>U2</literal>.
61
62 If <literal>CVids</literal> is given, the norm will be computed only on the listed
63 convexes.
64 </para>
65 </listitem>
66
67 <listitem>
68 <para><literal>n = gf_compute(mesh_fem MF, vec U, 'H1 semi norm', mesh_im mim[, mat CVids])</literal></para>
69
70 <para> Compute the L2 norm of grad(<literal>U</literal>).
71
72 If <literal>CVids</literal> is given, the norm will be computed only on the listed
73 convexes.
74 </para>
75 </listitem>
76
77 <listitem>
78 <para><literal>n = gf_compute(mesh_fem MF, vec U, 'H1 semi dist', mesh_im mim, mesh_fem mf2, vec U2[, mat CVids])</literal></para>
79
80 <para> Compute the semi H1 distance between <literal>U</literal> and <literal>U2</literal>.
81
82 If <literal>CVids</literal> is given, the norm will be computed only on the listed
83 convexes.
84 </para>
85 </listitem>
86
87 <listitem>
88 <para><literal>n = gf_compute(mesh_fem MF, vec U, 'H1 norm', mesh_im mim[, mat CVids])</literal></para>
89
90 <para> Compute the H1 norm of <literal>U</literal>.
91
92 If <literal>CVids</literal> is given, the norm will be computed only on the listed
93 convexes.
94 </para>
95 </listitem>
96
97 <listitem>
98 <para><literal>n = gf_compute(mesh_fem MF, vec U, 'H2 semi norm', mesh_im mim[, mat CVids])</literal></para>
99
100 <para> Compute the L2 norm of D^2(<literal>U</literal>).
101
102 If <literal>CVids</literal> is given, the norm will be computed only on the listed
103 convexes.
104 </para>
105 </listitem>
106
107 <listitem>
108 <para><literal>n = gf_compute(mesh_fem MF, vec U, 'H2 norm', mesh_im mim[, mat CVids])</literal></para>
109
110 <para> Compute the H2 norm of <literal>U</literal>.
111
112 If <literal>CVids</literal> is given, the norm will be computed only on the listed
113 convexes.
114 </para>
115 </listitem>
116
117 <listitem>
118 <para><literal>DU = gf_compute(mesh_fem MF, vec U, 'gradient', mesh_fem mf_du)</literal></para>
119
120 <para> Compute the gradient of the field <literal>U</literal> defined on mesh_fem <literal>mf_du</literal>.
121
122 The gradient is interpolated on the mesh_fem <literal>mf_du</literal>, and returned in
123 <literal>DU</literal>. For example, if <literal>U</literal> is defined on a P2 mesh_fem, <literal>DU</literal> should be
124 evaluated on a P1-discontinuous mesh_fem. <literal>mf</literal> and <literal>mf_du</literal> should
125 share the same mesh.
126
127 <literal>U</literal> may have any number of dimensions (i.e. this function is not
128 restricted to the gradient of scalar fields, but may also be used
129 for tensor fields). However the last dimension of <literal>U</literal> has to be
130 equal to the number of dof of <literal>mf</literal>. For example, if <literal>U</literal> is a
131 [3x3xNmf] array (where Nmf is the number of dof of <literal>mf</literal>), <literal>DU</literal> will
132 be a [Nx3x3[xQ]xNmf_du] array, where N is the dimension of the mesh,
133 Nmf_du is the number of dof of <literal>mf_du</literal>, and the optional Q dimension
134 is inserted if <literal>Qdim_mf != Qdim_mf_du</literal>, where Qdim_mf is the Qdim of
135 <literal>mf</literal> and Qdim_mf_du is the Qdim of <literal>mf_du</literal>.
136 </para>
137 </listitem>
138
139 <listitem>
140 <para><literal>HU = gf_compute(mesh_fem MF, vec U, 'hessian', mesh_fem mf_h)</literal></para>
141
142 <para> Compute the hessian of the field <literal>U</literal> defined on mesh_fem <literal>mf_h</literal>.
143
144 See also gf_compute('gradient', mesh_fem mf_du).
145 </para>
146 </listitem>
147
148 <listitem>
149 <para><literal>UP = gf_compute(mesh_fem MF, vec U, 'eval on triangulated surface', int Nrefine, [vec CVLIST])</literal></para>
150
151 <para> [OBSOLETE FUNCTION! will be removed in a future release]
152 Utility function designed for 2D triangular meshes : returns a list
153 of triangles coordinates with interpolated U values. This can be
154 used for the accurate visualization of data defined on a
155 discontinous high order element. On output, the six first rows of UP
156 contains the triangle coordinates, and the others rows contain the
157 interpolated values of U (one for each triangle vertex) CVLIST may
158 indicate the list of convex number that should be consider, if not
159 used then all the mesh convexes will be used. U should be a row
160 vector.
161
162 </para>
163 </listitem>
164
165 <listitem>
166 <para><literal>Ui = gf_compute(mesh_fem MF, vec U, 'interpolate on', {mesh_fem mfi | slice sli | vec pts})</literal></para>
167
168 <para> Interpolate a field on another mesh_fem or a slice or a list of points.
169
170 - Interpolation on another mesh_fem <literal>mfi</literal>:
171 <literal>mfi</literal> has to be Lagrangian. If <literal>mf</literal> and <literal>mfi</literal> share the same
172 mesh object, the interpolation will be much faster.
173 - Interpolation on a slice <literal>sli</literal>:
174 this is similar to interpolation on a refined P1-discontinuous
175 mesh, but it is much faster. This can also be used with
176 gf_slice('points') to obtain field values at a given set of
177 points.
178 - Interpolation on a set of points <literal>pts</literal>
179
180 See also gf_asm('interpolation matrix')
181
182 </para>
183 </listitem>
184
185 <listitem>
186 <para><literal>Ue = gf_compute(mesh_fem MF, vec U, 'extrapolate on', mesh_fem mfe)</literal></para>
187
188 <para> Extrapolate a field on another mesh_fem.
189
190 If the mesh of <literal>mfe</literal> is stricly included in the mesh of <literal>mf</literal>, this
191 function does stricly the same job as gf_compute('interpolate_on').
192 However, if the mesh of <literal>mfe</literal> is not exactly included in <literal>mf</literal>
193 (imagine interpolation between a curved refined mesh and a coarse
194 mesh), then values which are outside <literal>mf</literal> will be
195 extrapolated.
196
197 See also gf_asm('extrapolation matrix')
198 </para>
199 </listitem>
200
201 <listitem>
202 <para><literal>E = gf_compute(mesh_fem MF, vec U, 'error estimate', mesh_im mim)</literal></para>
203
204 <para> Compute an a posteriori error estimate.
205
206 Currently there is only one which is available: for each convex,
207 the jump of the normal derivative is integrated on its faces.
208 </para>
209 </listitem>
210
211 <listitem>
212 <para><literal>E = gf_compute(mesh_fem MF, vec U, 'error estimate nitsche', mesh_im mim, int GAMMAC, int GAMMAN, scalar lambda_, scalar mu_, scalar gamma0, scalar f_coeff)</literal></para>
213
214 <para> Compute an a posteriori error estimate in the case of Nitsche method.
215
216 Currently there is only one which is available: for each convex,
217 the jump of the normal derivative is integrated on its faces.
218 </para>
219 </listitem>
220
221 <listitem>
222 <para><literal>E = gf_compute(mesh_fem MF, vec U, 'convect', mesh_fem mf_v, vec V, scalar dt, int nt[, string option[, vec per_min, vec per_max]])</literal></para>
223
224 <para> Compute a convection of <literal>U</literal> with regards to a steady state velocity
225 field <literal>V</literal> with a Characteristic-Galerkin method. This
226 method is restricted to pure Lagrange fems for U. <literal>mf_v</literal> should represent
227 a continuous finite element method. <literal>dt</literal> is the integration time and <literal>nt</literal>
228 is the number of integration step on the caracteristics. <literal>option</literal> is an
229 option for the part of the boundary where there is a re-entrant convection.
230 <literal>option = 'extrapolation'</literal> for an extrapolation on the nearest element,
231 <literal>option = 'unchanged'</literal> for a constant value on that boundary or
232 <literal>option = 'periodicity'</literal> for a peridiodic boundary. For this latter option
233 the two vectors per_min, per_max has to be given and represent the limits
234 of the periodic domain (on components where per_max[k] &lt; per_min[k]
235 no operation is done).
236 This method is rather dissipative, but stable.
237
238 </para>
239 </listitem>
240
241 </itemizedlist>
242 </refsection>
243
244 <refsection>
245 <title>See Also</title>
246 <simplelist type="inline">
247 <member><link linkend="getfem_types">getfem types</link></member>
248 </simplelist>
249 </refsection>
250
251 <refsection>
252 <title>Authors</title>
253 <para>Y. Collette</para>
254 </refsection>
255
256 </refentry>
+0
-31
interface/src/scilab/help/en_US/gf_compute_Q1grid_interp.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_compute_Q1grid_interp"
2 xml:lang="en" xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_compute_Q1grid_interp</refname>
11
12 <refpurpose>see the help page of gf_compute</refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>
19 U2,Iq,MF2]=gf_compute_Q1grid_interp(MF1,U1,varargin)
20 </synopsis>
21 </refsynopsisdiv>
22
23 <refsection>
24 <title>See Also</title>
25
26 <simplelist type="inline">
27 <member><link linkend="gf_compute">gf_compute</link></member>
28 </simplelist>
29 </refsection>
30 </refentry>
+0
-113
interface/src/scilab/help/en_US/gf_cvstruct_get.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_cvstruct_get" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_cvstruct_get</refname>
11 <refpurpose> General function for querying information about convex_structure objects.
12
13 The convex structures are internal structures of getfem++. They do not
14 contain points positions. These structures are recursive, since the faces
15 of a convex structures are convex structures.
16 </refpurpose>
17 </refnamediv>
18
19 <refsynopsisdiv>
20 <title>Calling Sequence</title>
21
22 <synopsis>n = gf_cvstruct_get(cvstruct CVS, 'nbpts')</synopsis>
23 <synopsis>d = gf_cvstruct_get(cvstruct CVS, 'dim')</synopsis>
24 <synopsis>cs = gf_cvstruct_get(cvstruct CVS, 'basic structure')</synopsis>
25 <synopsis>cs = gf_cvstruct_get(cvstruct CVS, 'face', int F)</synopsis>
26 <synopsis>I = gf_cvstruct_get(cvstruct CVS, 'facepts', int F)</synopsis>
27 <synopsis>s = gf_cvstruct_get(cvstruct CVS, 'char')</synopsis>
28 <synopsis>gf_cvstruct_get(cvstruct CVS, 'display')</synopsis>
29 </refsynopsisdiv>
30
31 <refsection>
32 <title>Description</title>
33 <para> General function for querying information about convex_structure objects.
34
35 The convex structures are internal structures of getfem++. They do not
36 contain points positions. These structures are recursive, since the faces
37 of a convex structures are convex structures.
38 </para>
39 </refsection>
40
41 <refsection>
42 <title>Command list</title>
43
44 <itemizedlist>
45 <listitem>
46 <para><literal>n = gf_cvstruct_get(cvstruct CVS, 'nbpts')</literal></para>
47
48 <para> Get the number of points of the convex structure.
49 </para>
50 </listitem>
51
52 <listitem>
53 <para><literal>d = gf_cvstruct_get(cvstruct CVS, 'dim')</literal></para>
54
55 <para> Get the dimension of the convex structure.
56 </para>
57 </listitem>
58
59 <listitem>
60 <para><literal>cs = gf_cvstruct_get(cvstruct CVS, 'basic structure')</literal></para>
61
62 <para> Get the simplest convex structure.
63
64 For example, the 'basic structure' of the 6-node triangle, is the
65 canonical 3-noded triangle.
66 </para>
67 </listitem>
68
69 <listitem>
70 <para><literal>cs = gf_cvstruct_get(cvstruct CVS, 'face', int F)</literal></para>
71
72 <para> Return the convex structure of the face <literal>F</literal>.
73 </para>
74 </listitem>
75
76 <listitem>
77 <para><literal>I = gf_cvstruct_get(cvstruct CVS, 'facepts', int F)</literal></para>
78
79 <para> Return the list of point indices for the face <literal>F</literal>.
80 </para>
81 </listitem>
82
83 <listitem>
84 <para><literal>s = gf_cvstruct_get(cvstruct CVS, 'char')</literal></para>
85
86 <para> Output a string description of the cvstruct.
87 </para>
88 </listitem>
89
90 <listitem>
91 <para><literal>gf_cvstruct_get(cvstruct CVS, 'display')</literal></para>
92
93 <para> displays a short summary for a cvstruct object.
94 </para>
95 </listitem>
96
97 </itemizedlist>
98 </refsection>
99
100 <refsection>
101 <title>See Also</title>
102 <simplelist type="inline">
103 <member><link linkend="getfem_types">getfem types</link></member>
104 </simplelist>
105 </refsection>
106
107 <refsection>
108 <title>Authors</title>
109 <para>Y. Collette</para>
110 </refsection>
111
112 </refentry>
+0
-72
interface/src/scilab/help/en_US/gf_delete.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_delete" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_delete</refname>
11 <refpurpose> Delete an existing getfem object from memory (mesh, mesh_fem, etc.).
12
13 SEE ALSO:
14 gf_workspace, gf_mesh, gf_mesh_fem.
15 </refpurpose>
16 </refnamediv>
17
18 <refsynopsisdiv>
19 <title>Calling Sequence</title>
20
21 <synopsis>gf_delete(I[, J, K,...])</synopsis>
22 </refsynopsisdiv>
23
24 <refsection>
25 <title>Description</title>
26 <para> Delete an existing getfem object from memory (mesh, mesh_fem, etc.).
27
28 SEE ALSO:
29 gf_workspace, gf_mesh, gf_mesh_fem.
30 </para>
31 </refsection>
32
33 <refsection>
34 <title>Command list</title>
35
36 <itemizedlist>
37 <listitem>
38 <para><literal>gf_delete(I[, J, K,...])</literal></para>
39
40 <para>
41 I should be a descriptor given by gf_mesh(),
42 gf_mesh_im(), gf_slice() etc.
43
44 Note that if another object uses I, then object I will be deleted only
45 when both have been asked for deletion.
46
47 Only objects listed in the output of gf_workspace('stats') can be
48 deleted (for example gf_fem objects cannot be destroyed).
49
50 You may also use gf_workspace('clear all') to erase everything at
51 once.
52
53 </para>
54 </listitem>
55
56 </itemizedlist>
57 </refsection>
58
59 <refsection>
60 <title>See Also</title>
61 <simplelist type="inline">
62 <member><link linkend="getfem_types">getfem types</link></member>
63 </simplelist>
64 </refsection>
65
66 <refsection>
67 <title>Authors</title>
68 <para>Y. Collette</para>
69 </refsection>
70
71 </refentry>
+0
-122
interface/src/scilab/help/en_US/gf_eltm.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_eltm" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_eltm</refname>
11 <refpurpose>
12 This object represents a type of elementary matrix. In order to obtain a
13 numerical value of these matrices, see gf_mesh_im_get(mesh_im MI, 'eltm').
14
15 If you have very particular assembling needs, or if you just want to check
16 the content of an elementary matrix, this function might be useful. But
17 the generic assembly abilities of gf_asm(...) should suit most needs.
18 </refpurpose>
19 </refnamediv>
20
21 <refsynopsisdiv>
22 <title>Calling Sequence</title>
23
24 <synopsis>E = gf_eltm('base', fem FEM)</synopsis>
25 <synopsis>E = gf_eltm('grad', fem FEM)</synopsis>
26 <synopsis>E = gf_eltm('hessian', fem FEM)</synopsis>
27 <synopsis>E = gf_eltm('normal')</synopsis>
28 <synopsis>E = gf_eltm('grad_geotrans')</synopsis>
29 <synopsis>E = gf_eltm('grad_geotrans_inv')</synopsis>
30 <synopsis>E = gf_eltm('product', eltm A, eltm B)</synopsis>
31 </refsynopsisdiv>
32
33 <refsection>
34 <title>Description</title>
35 <para>General constructor for eltm objects.</para>
36
37 <para>
38 This object represents a type of elementary matrix. In order to obtain a
39 numerical value of these matrices, see gf_mesh_im_get(mesh_im MI, 'eltm').
40
41 If you have very particular assembling needs, or if you just want to check
42 the content of an elementary matrix, this function might be useful. But
43 the generic assembly abilities of gf_asm(...) should suit most needs.
44 </para>
45 </refsection>
46
47 <refsection>
48 <title>Command list</title>
49
50 <itemizedlist>
51 <listitem>
52 <para><literal>E = gf_eltm('base', fem FEM)</literal></para>
53
54 <para> return a descriptor for the integration of shape functions on
55 elements, using the fem <literal>FEM</literal>.
56 </para>
57 </listitem>
58
59 <listitem>
60 <para><literal>E = gf_eltm('grad', fem FEM)</literal></para>
61
62 <para> return a descriptor for the integration of the gradient of shape
63 functions on elements, using the fem <literal>FEM</literal>.
64 </para>
65 </listitem>
66
67 <listitem>
68 <para><literal>E = gf_eltm('hessian', fem FEM)</literal></para>
69
70 <para> return a descriptor for the integration of the hessian of shape
71 functions on elements, using the fem <literal>FEM</literal>.
72 </para>
73 </listitem>
74
75 <listitem>
76 <para><literal>E = gf_eltm('normal')</literal></para>
77
78 <para> return a descriptor for the unit normal of convex faces.
79 </para>
80 </listitem>
81
82 <listitem>
83 <para><literal>E = gf_eltm('grad_geotrans')</literal></para>
84
85 <para> return a descriptor to the gradient matrix of the geometric
86 transformation.
87 </para>
88 </listitem>
89
90 <listitem>
91 <para><literal>E = gf_eltm('grad_geotrans_inv')</literal></para>
92
93 <para> return a descriptor to the inverse of the gradient matrix of the
94 geometric transformation (this is rarely used).
95 </para>
96 </listitem>
97
98 <listitem>
99 <para><literal>E = gf_eltm('product', eltm A, eltm B)</literal></para>
100
101 <para> return a descriptor for the integration of the tensorial product of
102 elementary matrices <literal>A</literal> and <literal>B</literal>.
103 </para>
104 </listitem>
105
106 </itemizedlist>
107 </refsection>
108
109 <refsection>
110 <title>See Also</title>
111 <simplelist type="inline">
112 <member><link linkend="getfem_types">getfem types</link></member>
113 </simplelist>
114 </refsection>
115
116 <refsection>
117 <title>Authors</title>
118 <para>Y. Collette</para>
119 </refsection>
120
121 </refentry>
+0
-135
interface/src/scilab/help/en_US/gf_fem.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_fem" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_fem</refname>
11 <refpurpose> This object represents a finite element method on a reference element.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>F = gf_fem('interpolated_fem', mesh_fem mf, mesh_im mim, [ivec blocked_dof])</synopsis>
19 <synopsis>F = gf_fem(string fem_name)</synopsis>
20 </refsynopsisdiv>
21
22 <refsection>
23 <title>Description</title>
24 <para>General constructor for fem objects.</para>
25
26 <para> This object represents a finite element method on a reference element.
27 </para>
28 </refsection>
29
30 <refsection>
31 <title>Command list</title>
32
33 <itemizedlist>
34 <listitem>
35 <para><literal>F = gf_fem('interpolated_fem', mesh_fem mf, mesh_im mim, [ivec blocked_dof])</literal></para>
36
37 <para> Build a special fem which is interpolated from another mesh_fem.
38
39 Using this special finite element, it is possible to interpolate a given
40 mesh_fem <literal>mf</literal> on another mesh, given the integration method <literal>mim</literal> that will
41 be used on this mesh.
42
43 Note that this finite element may be quite slow, and eats much
44 memory.
45 </para>
46 </listitem>
47
48 <listitem>
49 <para><literal>F = gf_fem(string fem_name)</literal></para>
50
51 <para> The <literal>fem_name</literal> should contain a description of the finite element
52 method. Please refer to the getfem++ manual (especially the
53 description of finite element and integration methods) for a complete
54 reference. Here is a list of some of them:
55
56 - FEM_PK(n,k) :
57 classical Lagrange element Pk on a simplex of dimension <literal>n</literal>.
58 - FEM_PK_DISCONTINUOUS(n,k[,alpha]) :
59 discontinuous Lagrange element Pk on a simplex of dimension <literal>n</literal>.
60 - FEM_QK(n,k) :
61 classical Lagrange element Qk on quadrangles, hexahedrons etc.
62 - FEM_QK_DISCONTINUOUS(n,k[,alpha]) :
63 discontinuous Lagrange element Qk on quadrangles, hexahedrons etc.
64 - FEM_Q2_INCOMPLETE(n) :
65 incomplete Q2 elements with 8 and 20 dof (serendipity Quad 8 and
66 Hexa 20 elements).
67 - FEM_PK_PRISM(n,k) :
68 classical Lagrange element Pk on a prism of dimension <literal>n</literal>.
69 - FEM_PK_PRISM_DISCONTINUOUS(n,k[,alpha]) :
70 classical discontinuous Lagrange element Pk on a prism.
71 - FEM_PK_WITH_CUBIC_BUBBLE(n,k) :
72 classical Lagrange element Pk on a simplex with an additional
73 volumic bubble function.
74 - FEM_P1_NONCONFORMING :
75 non-conforming P1 method on a triangle.
76 - FEM_P1_BUBBLE_FACE(n) :
77 P1 method on a simplex with an additional bubble function on face 0.
78 - FEM_P1_BUBBLE_FACE_LAG :
79 P1 method on a simplex with an additional lagrange dof on face 0.
80 - FEM_PK_HIERARCHICAL(n,k) :
81 PK element with a hierarchical basis.
82 - FEM_QK_HIERARCHICAL(n,k) :
83 QK element with a hierarchical basis
84 - FEM_PK_PRISM_HIERARCHICAL(n,k) :
85 PK element on a prism with a hierarchical basis.
86 - FEM_STRUCTURED_COMPOSITE(fem f,k) :
87 Composite fem <literal>f</literal> on a grid with <literal>k</literal> divisions.
88 - FEM_PK_HIERARCHICAL_COMPOSITE(n,k,s) :
89 Pk composite element on a grid with <literal>s</literal> subdivisions and with a
90 hierarchical basis.
91 - FEM_PK_FULL_HIERARCHICAL_COMPOSITE(n,k,s) :
92 Pk composite element with <literal>s</literal> subdivisions and a hierarchical basis
93 on both degree and subdivision.
94 - FEM_PRODUCT(A,B) :
95 tensorial product of two polynomial elements.
96 - FEM_HERMITE(n) :
97 Hermite element P3 on a simplex of dimension <literal>n = 1, 2, 3</literal>.
98 - FEM_ARGYRIS :
99 Argyris element P5 on the triangle.
100 - FEM_HCT_TRIANGLE :
101 Hsieh-Clough-Tocher element on the triangle (composite P3 element
102 which is C1), should be used with IM_HCT_COMPOSITE() integration
103 method.
104 - FEM_QUADC1_COMPOSITE :
105 Quadrilateral element, composite P3 element and C1 (16 dof).
106 - FEM_REDUCED_QUADC1_COMPOSITE :
107 Quadrilateral element, composite P3 element and C1 (12 dof).
108 - FEM_RT0(n) :
109 Raviart-Thomas element of order 0 on a simplex of dimension <literal>n</literal>.
110 - FEM_NEDELEC(n) :
111 Nedelec edge element of order 0 on a simplex of dimension <literal>n</literal>.
112
113 Of course, you have to ensure that the selected fem is compatible with
114 the geometric transformation: a Pk fem has no meaning on a quadrangle.
115
116 </para>
117 </listitem>
118
119 </itemizedlist>
120 </refsection>
121
122 <refsection>
123 <title>See Also</title>
124 <simplelist type="inline">
125 <member><link linkend="getfem_types">getfem types</link></member>
126 </simplelist>
127 </refsection>
128
129 <refsection>
130 <title>Authors</title>
131 <para>Y. Collette</para>
132 </refsection>
133
134 </refentry>
+0
-195
interface/src/scilab/help/en_US/gf_fem_get.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_fem_get" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_fem_get</refname>
11 <refpurpose> General function for querying information about FEM objects.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>n = gf_fem_get(fem F, 'nbdof'[, int cv])</synopsis>
19 <synopsis>n = gf_fem_get(fem F, 'index of global dof', cv)</synopsis>
20 <synopsis>d = gf_fem_get(fem F, 'dim')</synopsis>
21 <synopsis>td = gf_fem_get(fem F, 'target_dim')</synopsis>
22 <synopsis>P = gf_fem_get(fem F, 'pts'[, int cv])</synopsis>
23 <synopsis>b = gf_fem_get(fem F, 'is_equivalent')</synopsis>
24 <synopsis>b = gf_fem_get(fem F, 'is_lagrange')</synopsis>
25 <synopsis>b = gf_fem_get(fem F, 'is_polynomial')</synopsis>
26 <synopsis>d = gf_fem_get(fem F, 'estimated_degree')</synopsis>
27 <synopsis>E = gf_fem_get(fem F, 'base_value',mat p)</synopsis>
28 <synopsis>ED = gf_fem_get(fem F, 'grad_base_value',mat p)</synopsis>
29 <synopsis>EH = gf_fem_get(fem F, 'hess_base_value',mat p)</synopsis>
30 <synopsis>gf_fem_get(fem F, 'poly_str')</synopsis>
31 <synopsis>string = gf_fem_get(fem F, 'char')</synopsis>
32 <synopsis>gf_fem_get(fem F, 'display')</synopsis>
33 </refsynopsisdiv>
34
35 <refsection>
36 <title>Description</title>
37 <para> General function for querying information about FEM objects.
38 </para>
39 </refsection>
40
41 <refsection>
42 <title>Command list</title>
43
44 <itemizedlist>
45 <listitem>
46 <para><literal>n = gf_fem_get(fem F, 'nbdof'[, int cv])</literal></para>
47
48 <para> Return the number of dof for the fem.
49
50 Some specific fem (for example 'interpolated_fem') may require a
51 convex number <literal>cv</literal> to give their result. In most of the case, you
52 can omit this convex number.
53 </para>
54 </listitem>
55
56 <listitem>
57 <para><literal>n = gf_fem_get(fem F, 'index of global dof', cv)</literal></para>
58
59 <para> Return the index of global dof for special fems such as interpolated fem.
60
61 </para>
62 </listitem>
63
64 <listitem>
65 <para><literal>d = gf_fem_get(fem F, 'dim')</literal></para>
66
67 <para> Return the dimension (dimension of the reference convex) of the fem.
68 </para>
69 </listitem>
70
71 <listitem>
72 <para><literal>td = gf_fem_get(fem F, 'target_dim')</literal></para>
73
74 <para> Return the dimension of the target space.
75
76 The target space dimension is usually 1, except for vector fem.
77 </para>
78 </listitem>
79
80 <listitem>
81 <para><literal>P = gf_fem_get(fem F, 'pts'[, int cv])</literal></para>
82
83 <para> Get the location of the dof on the reference element.
84
85 Some specific fem may require a convex number <literal>cv</literal> to give their
86 result (for example 'interpolated_fem'). In most of the case, you
87 can omit this convex number.
88 </para>
89 </listitem>
90
91 <listitem>
92 <para><literal>b = gf_fem_get(fem F, 'is_equivalent')</literal></para>
93
94 <para> Return 0 if the fem is not equivalent.
95
96 Equivalent fem are evaluated on the reference convex. This is
97 the case of most classical fem's.
98 </para>
99 </listitem>
100
101 <listitem>
102 <para><literal>b = gf_fem_get(fem F, 'is_lagrange')</literal></para>
103
104 <para> Return 0 if the fem is not of Lagrange type.
105 </para>
106 </listitem>
107
108 <listitem>
109 <para><literal>b = gf_fem_get(fem F, 'is_polynomial')</literal></para>
110
111 <para> Return 0 if the basis functions are not polynomials.
112 </para>
113 </listitem>
114
115 <listitem>
116 <para><literal>d = gf_fem_get(fem F, 'estimated_degree')</literal></para>
117
118 <para> Return an estimation of the polynomial degree of the fem.
119
120 This is an estimation for fem which are not polynomials.
121 </para>
122 </listitem>
123
124 <listitem>
125 <para><literal>E = gf_fem_get(fem F, 'base_value',mat p)</literal></para>
126
127 <para> Evaluate all basis functions of the FEM at point <literal>p</literal>.
128
129 <literal>p</literal> is supposed to be in the reference convex!
130 </para>
131 </listitem>
132
133 <listitem>
134 <para><literal>ED = gf_fem_get(fem F, 'grad_base_value',mat p)</literal></para>
135
136 <para> Evaluate the gradient of all base functions of the fem at point <literal>p</literal>.
137
138 <literal>p</literal> is supposed to be in the reference convex!
139 </para>
140 </listitem>
141
142 <listitem>
143 <para><literal>EH = gf_fem_get(fem F, 'hess_base_value',mat p)</literal></para>
144
145 <para> Evaluate the Hessian of all base functions of the fem at point <literal>p</literal>.
146
147 <literal>p</literal> is supposed to be in the reference convex!.
148 </para>
149 </listitem>
150
151 <listitem>
152 <para><literal>gf_fem_get(fem F, 'poly_str')</literal></para>
153
154 <para> Return the polynomial expressions of its basis functions in
155 the reference convex.
156
157 The result is expressed as a cell array of
158 strings. Of course this will fail on non-polynomial fem's.
159 </para>
160 </listitem>
161
162 <listitem>
163 <para><literal>string = gf_fem_get(fem F, 'char')</literal></para>
164
165 <para> Ouput a (unique) string representation of the fem.
166
167 This can be used to perform comparisons between two different fem
168 objects.
169 </para>
170 </listitem>
171
172 <listitem>
173 <para><literal>gf_fem_get(fem F, 'display')</literal></para>
174
175 <para> displays a short summary for a fem object.
176 </para>
177 </listitem>
178
179 </itemizedlist>
180 </refsection>
181
182 <refsection>
183 <title>See Also</title>
184 <simplelist type="inline">
185 <member><link linkend="getfem_types">getfem types</link></member>
186 </simplelist>
187 </refsection>
188
189 <refsection>
190 <title>Authors</title>
191 <para>Y. Collette</para>
192 </refsection>
193
194 </refentry>
+0
-74
interface/src/scilab/help/en_US/gf_geotrans.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_geotrans" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_geotrans</refname>
11 <refpurpose> The geometric transformation must be used when you are building a custom
12 mesh convex by convex (see the add_convex() function of mesh): it also
13 defines the kind of convex (triangle, hexahedron, prism, etc..)
14 </refpurpose>
15 </refnamediv>
16
17 <refsynopsisdiv>
18 <title>Calling Sequence</title>
19
20 <synopsis>GT = gf_geotrans(string name)</synopsis>
21 </refsynopsisdiv>
22
23 <refsection>
24 <title>Description</title>
25 <para>General constructor for geotrans objects.</para>
26
27 <para> The geometric transformation must be used when you are building a custom
28 mesh convex by convex (see the add_convex() function of mesh): it also
29 defines the kind of convex (triangle, hexahedron, prism, etc..)
30 </para>
31 </refsection>
32
33 <refsection>
34 <title>Command list</title>
35
36 <itemizedlist>
37 <listitem>
38 <para><literal>GT = gf_geotrans(string name)</literal></para>
39
40 <para>
41 The name argument contains the specification of the geometric transformation
42 as a string, which may be:
43
44 - GT_PK(n,k) :
45 Transformation on simplexes, dim <literal>n</literal>, degree <literal>k</literal>.
46 - GT_QK(n,k) :
47 Transformation on parallelepipeds, dim <literal>n</literal>, degree <literal>k</literal>.
48 - GT_PRISM(n,k) :
49 Transformation on prisms, dim <literal>n</literal>, degree <literal>k</literal>.
50 - GT_PRODUCT(A,B) :
51 Tensorial product of two transformations.
52 - GT_LINEAR_PRODUCT(geotrans gt1,geotrans gt2) :
53 Linear tensorial product of two transformations
54
55 </para>
56 </listitem>
57
58 </itemizedlist>
59 </refsection>
60
61 <refsection>
62 <title>See Also</title>
63 <simplelist type="inline">
64 <member><link linkend="getfem_types">getfem types</link></member>
65 </simplelist>
66 </refsection>
67
68 <refsection>
69 <title>Authors</title>
70 <para>Y. Collette</para>
71 </refsection>
72
73 </refentry>
+0
-126
interface/src/scilab/help/en_US/gf_geotrans_get.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_geotrans_get" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_geotrans_get</refname>
11 <refpurpose> General function for querying information about geometric transformations
12 objects.
13 </refpurpose>
14 </refnamediv>
15
16 <refsynopsisdiv>
17 <title>Calling Sequence</title>
18
19 <synopsis>d = gf_geotrans_get(geotrans GT, 'dim')</synopsis>
20 <synopsis>b = gf_geotrans_get(geotrans GT, 'is_linear')</synopsis>
21 <synopsis>n = gf_geotrans_get(geotrans GT, 'nbpts')</synopsis>
22 <synopsis>P = gf_geotrans_get(geotrans GT, 'pts')</synopsis>
23 <synopsis>N = gf_geotrans_get(geotrans GT, 'normals')</synopsis>
24 <synopsis>Pt = gf_geotrans_get(geotrans GT, 'transform',mat G, mat Pr)</synopsis>
25 <synopsis>s = gf_geotrans_get(geotrans GT, 'char')</synopsis>
26 <synopsis>gf_geotrans_get(geotrans GT, 'display')</synopsis>
27 </refsynopsisdiv>
28
29 <refsection>
30 <title>Description</title>
31 <para> General function for querying information about geometric transformations
32 objects.
33 </para>
34 </refsection>
35
36 <refsection>
37 <title>Command list</title>
38
39 <itemizedlist>
40 <listitem>
41 <para><literal>d = gf_geotrans_get(geotrans GT, 'dim')</literal></para>
42
43 <para> Get the dimension of the geotrans.
44
45 This is the dimension of the source space, i.e. the dimension of
46 the reference convex.
47 </para>
48 </listitem>
49
50 <listitem>
51 <para><literal>b = gf_geotrans_get(geotrans GT, 'is_linear')</literal></para>
52
53 <para> Return 0 if the geotrans is not linear.
54 </para>
55 </listitem>
56
57 <listitem>
58 <para><literal>n = gf_geotrans_get(geotrans GT, 'nbpts')</literal></para>
59
60 <para> Return the number of points of the geotrans.
61 </para>
62 </listitem>
63
64 <listitem>
65 <para><literal>P = gf_geotrans_get(geotrans GT, 'pts')</literal></para>
66
67 <para> Return the reference convex points of the geotrans.
68
69 The points are stored in the columns of the output matrix.
70 </para>
71 </listitem>
72
73 <listitem>
74 <para><literal>N = gf_geotrans_get(geotrans GT, 'normals')</literal></para>
75
76 <para> Get the normals for each face of the reference convex of the geotrans.
77
78 The normals are stored in the columns of the output matrix.
79 </para>
80 </listitem>
81
82 <listitem>
83 <para><literal>Pt = gf_geotrans_get(geotrans GT, 'transform',mat G, mat Pr)</literal></para>
84
85 <para> Apply the geotrans to a set of points.
86
87 <literal>G</literal> is the set of vertices of the real convex, <literal>Pr</literal> is the set
88 of points (in the reference convex) that are to be transformed.
89 The corresponding set of points in the real convex is returned.
90 </para>
91 </listitem>
92
93 <listitem>
94 <para><literal>s = gf_geotrans_get(geotrans GT, 'char')</literal></para>
95
96 <para> Output a (unique) string representation of the geotrans.
97
98 This can be used to perform comparisons between two
99 different geotrans objects.
100 </para>
101 </listitem>
102
103 <listitem>
104 <para><literal>gf_geotrans_get(geotrans GT, 'display')</literal></para>
105
106 <para> displays a short summary for a geotrans object.
107 </para>
108 </listitem>
109
110 </itemizedlist>
111 </refsection>
112
113 <refsection>
114 <title>See Also</title>
115 <simplelist type="inline">
116 <member><link linkend="getfem_types">getfem types</link></member>
117 </simplelist>
118 </refsection>
119
120 <refsection>
121 <title>Authors</title>
122 <para>Y. Collette</para>
123 </refsection>
124
125 </refentry>
+0
-102
interface/src/scilab/help/en_US/gf_global_function.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_global_function" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_global_function</refname>
11 <refpurpose> Global function object is represented by three functions:
12
13 * The function <literal>val</literal>.
14 * The function gradient <literal>grad</literal>.
15 * The function Hessian <literal>hess</literal>.
16
17 this type of function is used as local and global enrichment function. The
18 global function Hessian is an optional parameter (only for fourth order
19 derivative problems). </refpurpose>
20 </refnamediv>
21
22 <refsynopsisdiv>
23 <title>Calling Sequence</title>
24
25 <synopsis>GF = gf_global_function('cutoff', int fn, scalar r, scalar r1, scalar r0)</synopsis>
26 <synopsis>GF = gf_global_function('crack', int fn)</synopsis>
27 <synopsis>GF = gf_global_function('parser', string val[, string grad[, string hess]])</synopsis>
28 <synopsis>GF = gf_global_function('product', global_function F, global_function G)</synopsis>
29 <synopsis>GF = gf_global_function('add', global_function gf1, global_function gf2)</synopsis>
30 </refsynopsisdiv>
31
32 <refsection>
33 <title>Description</title>
34 <para>General constructor for global_function objects.</para>
35
36 <para> Global function object is represented by three functions:
37
38 * The function <literal>val</literal>.
39 * The function gradient <literal>grad</literal>.
40 * The function Hessian <literal>hess</literal>.
41
42 this type of function is used as local and global enrichment function. The
43 global function Hessian is an optional parameter (only for fourth order
44 derivative problems). </para>
45 </refsection>
46
47 <refsection>
48 <title>Command list</title>
49
50 <itemizedlist>
51 <listitem>
52 <para><literal>GF = gf_global_function('cutoff', int fn, scalar r, scalar r1, scalar r0)</literal></para>
53
54 <para> Create a cutoff global function.
55 </para>
56 </listitem>
57
58 <listitem>
59 <para><literal>GF = gf_global_function('crack', int fn)</literal></para>
60
61 <para> Create a near-tip asymptotic global function for modelling cracks.
62 </para>
63 </listitem>
64
65 <listitem>
66 <para><literal>GF = gf_global_function('parser', string val[, string grad[, string hess]])</literal></para>
67
68 <para> Create a global function from strings <literal>val</literal>, <literal>grad</literal> and <literal>hess</literal>.
69 </para>
70 </listitem>
71
72 <listitem>
73 <para><literal>GF = gf_global_function('product', global_function F, global_function G)</literal></para>
74
75 <para> Create a product of two global functions.
76 </para>
77 </listitem>
78
79 <listitem>
80 <para><literal>GF = gf_global_function('add', global_function gf1, global_function gf2)</literal></para>
81
82 <para> Create a add of two global functions.
83 </para>
84 </listitem>
85
86 </itemizedlist>
87 </refsection>
88
89 <refsection>
90 <title>See Also</title>
91 <simplelist type="inline">
92 <member><link linkend="getfem_types">getfem types</link></member>
93 </simplelist>
94 </refsection>
95
96 <refsection>
97 <title>Authors</title>
98 <para>Y. Collette</para>
99 </refsection>
100
101 </refentry>
+0
-97
interface/src/scilab/help/en_US/gf_global_function_get.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_global_function_get" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_global_function_get</refname>
11 <refpurpose> General function for querying information about global_function objects.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>VALs = gf_global_function_get(global_function GF, 'val',mat PTs)</synopsis>
19 <synopsis>GRADs = gf_global_function_get(global_function GF, 'grad',mat PTs)</synopsis>
20 <synopsis>HESSs = gf_global_function_get(global_function GF, 'hess',mat PTs)</synopsis>
21 <synopsis>s = gf_global_function_get(global_function GF, 'char')</synopsis>
22 <synopsis>gf_global_function_get(global_function GF, 'display')</synopsis>
23 </refsynopsisdiv>
24
25 <refsection>
26 <title>Description</title>
27 <para> General function for querying information about global_function objects.
28 </para>
29 </refsection>
30
31 <refsection>
32 <title>Command list</title>
33
34 <itemizedlist>
35 <listitem>
36 <para><literal>VALs = gf_global_function_get(global_function GF, 'val',mat PTs)</literal></para>
37
38 <para> Return <literal>val</literal> function evaluation in <literal>PTs</literal> (column points).
39 </para>
40 </listitem>
41
42 <listitem>
43 <para><literal>GRADs = gf_global_function_get(global_function GF, 'grad',mat PTs)</literal></para>
44
45 <para> Return <literal>grad</literal> function evaluation in <literal>PTs</literal> (column points).
46
47 On return, each column of <literal>GRADs</literal> is of the
48 form [Gx,Gy].
49 </para>
50 </listitem>
51
52 <listitem>
53 <para><literal>HESSs = gf_global_function_get(global_function GF, 'hess',mat PTs)</literal></para>
54
55 <para> Return <literal>hess</literal> function evaluation in <literal>PTs</literal> (column points).
56
57 On return, each column of <literal>HESSs</literal> is of the
58 form [Hxx,Hxy,Hyx,Hyy].
59 </para>
60 </listitem>
61
62 <listitem>
63 <para><literal>s = gf_global_function_get(global_function GF, 'char')</literal></para>
64
65 <para> Output a (unique) string representation of the global_function.
66
67 This can be used to perform comparisons between two
68 different global_function objects.
69 This function is to be completed.
70
71 </para>
72 </listitem>
73
74 <listitem>
75 <para><literal>gf_global_function_get(global_function GF, 'display')</literal></para>
76
77 <para> displays a short summary for a global_function object.
78 </para>
79 </listitem>
80
81 </itemizedlist>
82 </refsection>
83
84 <refsection>
85 <title>See Also</title>
86 <simplelist type="inline">
87 <member><link linkend="getfem_types">getfem types</link></member>
88 </simplelist>
89 </refsection>
90
91 <refsection>
92 <title>Authors</title>
93 <para>Y. Collette</para>
94 </refsection>
95
96 </refentry>
+0
-105
interface/src/scilab/help/en_US/gf_integ.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_integ" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_integ</refname>
11 <refpurpose> General object for obtaining handles to various integrations methods on
12 convexes (used when the elementary matrices are built).
13 </refpurpose>
14 </refnamediv>
15
16 <refsynopsisdiv>
17 <title>Calling Sequence</title>
18
19 <synopsis>I = gf_integ(string method)</synopsis>
20 </refsynopsisdiv>
21
22 <refsection>
23 <title>Description</title>
24 <para>General constructor for integ objects.</para>
25
26 <para> General object for obtaining handles to various integrations methods on
27 convexes (used when the elementary matrices are built).
28 </para>
29 </refsection>
30
31 <refsection>
32 <title>Command list</title>
33
34 <itemizedlist>
35 <listitem>
36 <para><literal>I = gf_integ(string method)</literal></para>
37
38 <para> Here is a list of some integration methods defined in getfem++ (see the
39 description of finite element and integration methods for a complete
40 reference):
41
42 - IM_EXACT_SIMPLEX(n) :
43 Exact integration on simplices (works only with linear geometric
44 transformations and PK fem's).
45 - IM_PRODUCT(A,B) :
46 Product of two integration methods.
47 - IM_EXACT_PARALLELEPIPED(n) :
48 Exact integration on parallelepipeds.
49 - IM_EXACT_PRISM(n) :
50 Exact integration on prisms.
51 - IM_GAUSS1D(k) :
52 Gauss method on the segment, order <literal>k=1,3,...,99</literal>.
53 - IM_NC(n,k) :
54 Newton-Cotes approximative integration on simplexes, order <literal>k</literal>.
55 - IM_NC_PARALLELEPIPED(n,k) :
56 Product of Newton-Cotes integration on parallelepipeds.
57 - IM_NC_PRISM(n,k) :
58 Product of Newton-Cotes integration on prisms.
59 - IM_GAUSS_PARALLELEPIPED(n,k) :
60 Product of Gauss1D integration on parallelepipeds.
61 - IM_TRIANGLE(k) :
62 Gauss methods on triangles <literal>k=1,3,5,6,7,8,9,10,13,17,19</literal>.
63 - IM_QUAD(k) :
64 Gauss methods on quadrilaterons <literal>k=2,3,5, ...,17</literal>. Note that
65 IM_GAUSS_PARALLELEPIPED should be prefered for QK fem's.
66 - IM_TETRAHEDRON(k) :
67 Gauss methods on tetrahedrons <literal>k=1,2,3,5,6 or 8</literal>.
68 - IM_SIMPLEX4D(3) :
69 Gauss method on a 4-dimensional simplex.
70 - IM_STRUCTURED_COMPOSITE(im,k) :
71 Composite method on a grid with <literal>k</literal> divisions.
72 - IM_HCT_COMPOSITE(im) :
73 Composite integration suited to the HCT composite finite element.
74
75 Example:
76
77 - I = gf_integ('IM_PRODUCT(IM_GAUSS1D(5),IM_GAUSS1D(5))')
78
79 is the same as:
80
81 - I = gf_integ('IM_GAUSS_PARALLELEPIPED(2,5)')
82
83 Note that 'exact integration' should be avoided in general, since they
84 only apply to linear geometric transformations, are quite slow, and
85 subject to numerical stability problems for high degree fem's.
86 </para>
87 </listitem>
88
89 </itemizedlist>
90 </refsection>
91
92 <refsection>
93 <title>See Also</title>
94 <simplelist type="inline">
95 <member><link linkend="getfem_types">getfem types</link></member>
96 </simplelist>
97 </refsection>
98
99 <refsection>
100 <title>Authors</title>
101 <para>Y. Collette</para>
102 </refsection>
103
104 </refentry>
+0
-140
interface/src/scilab/help/en_US/gf_integ_get.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_integ_get" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_integ_get</refname>
11 <refpurpose> General function for querying information about integration method objects.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>b = gf_integ_get(integ I, 'is_exact')</synopsis>
19 <synopsis>d = gf_integ_get(integ I, 'dim')</synopsis>
20 <synopsis>n = gf_integ_get(integ I, 'nbpts')</synopsis>
21 <synopsis>Pp = gf_integ_get(integ I, 'pts')</synopsis>
22 <synopsis>Pf = gf_integ_get(integ I, 'face_pts',F)</synopsis>
23 <synopsis>Cp = gf_integ_get(integ I, 'coeffs')</synopsis>
24 <synopsis>Cf = gf_integ_get(integ I, 'face_coeffs',F)</synopsis>
25 <synopsis>s = gf_integ_get(integ I, 'char')</synopsis>
26 <synopsis>gf_integ_get(integ I, 'display')</synopsis>
27 </refsynopsisdiv>
28
29 <refsection>
30 <title>Description</title>
31 <para> General function for querying information about integration method objects.
32 </para>
33 </refsection>
34
35 <refsection>
36 <title>Command list</title>
37
38 <itemizedlist>
39 <listitem>
40 <para><literal>b = gf_integ_get(integ I, 'is_exact')</literal></para>
41
42 <para> Return 0 if the integration is an approximate one.
43 </para>
44 </listitem>
45
46 <listitem>
47 <para><literal>d = gf_integ_get(integ I, 'dim')</literal></para>
48
49 <para> Return the dimension of the reference convex of
50 the method.
51 </para>
52 </listitem>
53
54 <listitem>
55 <para><literal>n = gf_integ_get(integ I, 'nbpts')</literal></para>
56
57 <para> Return the total number of integration points.
58
59 Count the points for the volume integration, and points for
60 surface integration on each face of the reference convex.
61
62 Only for approximate methods, this has no meaning for exact
63 integration methods!
64 </para>
65 </listitem>
66
67 <listitem>
68 <para><literal>Pp = gf_integ_get(integ I, 'pts')</literal></para>
69
70 <para> Return the list of integration points
71
72 Only for approximate methods, this has no meaning for exact
73 integration methods!
74 </para>
75 </listitem>
76
77 <listitem>
78 <para><literal>Pf = gf_integ_get(integ I, 'face_pts',F)</literal></para>
79
80 <para> Return the list of integration points for a face.
81
82 Only for approximate methods, this has no meaning for exact
83 integration methods!
84 </para>
85 </listitem>
86
87 <listitem>
88 <para><literal>Cp = gf_integ_get(integ I, 'coeffs')</literal></para>
89
90 <para> Returns the coefficients associated to each integration point.
91
92 Only for approximate methods, this has no meaning for exact
93 integration methods!
94 </para>
95 </listitem>
96
97 <listitem>
98 <para><literal>Cf = gf_integ_get(integ I, 'face_coeffs',F)</literal></para>
99
100 <para> Returns the coefficients associated to each integration of a face.
101
102 Only for approximate methods, this has no meaning for exact
103 integration methods!
104 </para>
105 </listitem>
106
107 <listitem>
108 <para><literal>s = gf_integ_get(integ I, 'char')</literal></para>
109
110 <para> Ouput a (unique) string representation of the integration method.
111
112 This can be used to comparisons between two different integ
113 objects.
114 </para>
115 </listitem>
116
117 <listitem>
118 <para><literal>gf_integ_get(integ I, 'display')</literal></para>
119
120 <para> displays a short summary for a integ object.
121 </para>
122 </listitem>
123
124 </itemizedlist>
125 </refsection>
126
127 <refsection>
128 <title>See Also</title>
129 <simplelist type="inline">
130 <member><link linkend="getfem_types">getfem types</link></member>
131 </simplelist>
132 </refsection>
133
134 <refsection>
135 <title>Authors</title>
136 <para>Y. Collette</para>
137 </refsection>
138
139 </refentry>
+0
-43
interface/src/scilab/help/en_US/gf_interpolate_on_grid.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_interpolated_on_grid"
2 xml:lang="en" xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_interpolated_on_grid</refname>
11
12 <refpurpose>interpolates a field defined on mesh_fem 'mf' on a cartesian
13 grid [X(1),X(2),...] x [Y(1),Y(2),...] x ...</refpurpose>
14 </refnamediv>
15
16 <refsynopsisdiv>
17 <title>Calling Sequence</title>
18
19 <synopsis>G=gf_interpolate_on_grid(mf,U,X,Y,...)</synopsis>
20 </refsynopsisdiv>
21
22 <refsection>
23 <title>Description</title>
24
25 <para>Interpolates a field defined on mesh_fem 'mf' on a cartesian grid
26 [X(1),X(2),...] x [Y(1),Y(2),...] x ...</para>
27 </refsection>
28
29 <refsection>
30 <title>Examples</title>
31
32 <programlisting role="example"></programlisting>
33 </refsection>
34
35 <refsection>
36 <title>See Also</title>
37
38 <simplelist type="inline">
39 <member><link linkend="gf_compute">gf_compute</link></member>
40 </simplelist>
41 </refsection>
42 </refentry>
+0
-88
interface/src/scilab/help/en_US/gf_levelset.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_levelset" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_levelset</refname>
11 <refpurpose>
12 The level-set object is represented by a primary level-set and optionally
13 a secondary level-set used to represent fractures (if p(x) is the primary
14 level-set function and s(x) is the secondary level-set, the crack is
15 defined by <latex style="text"><![CDATA[p(x)=0]]></latex> and <latex style="text"><![CDATA[s(x)\leq0]]></latex> : the role of the secondary is to determine
16 the crack front/tip).
17
18 note:
19
20 All tools listed below need the package qhull installed on your
21 system. This package is widely available. It computes convex hull and
22 delaunay triangulations in arbitrary dimension.
23
24 </refpurpose>
25 </refnamediv>
26
27 <refsynopsisdiv>
28 <title>Calling Sequence</title>
29
30 <synopsis>LS = gf_levelset(mesh m, int d[, string 'ws'| string f1[, string f2 | string 'ws']])</synopsis>
31 </refsynopsisdiv>
32
33 <refsection>
34 <title>Description</title>
35 <para>General constructor for levelset objects.</para>
36
37 <para>
38 The level-set object is represented by a primary level-set and optionally
39 a secondary level-set used to represent fractures (if p(x) is the primary
40 level-set function and s(x) is the secondary level-set, the crack is
41 defined by <latex style="text"><![CDATA[p(x)=0]]></latex> and <latex style="text"><![CDATA[s(x)\leq0]]></latex> : the role of the secondary is to determine
42 the crack front/tip).
43
44 note:
45
46 All tools listed below need the package qhull installed on your
47 system. This package is widely available. It computes convex hull and
48 delaunay triangulations in arbitrary dimension.
49
50 </para>
51 </refsection>
52
53 <refsection>
54 <title>Command list</title>
55
56 <itemizedlist>
57 <listitem>
58 <para><literal>LS = gf_levelset(mesh m, int d[, string 'ws'| string f1[, string f2 | string 'ws']])</literal></para>
59
60 <para> Create a levelset object on a mesh represented by a primary function
61 (and optional secondary function, both) defined on a lagrange mesh_fem of
62 degree <literal>d</literal>.
63
64 If <literal>ws</literal> (with secondary) is set; this levelset is represented by a
65 primary function and a secondary function. If <literal>f1</literal> is set; the primary
66 function is defined by that expression. If <literal>f2</literal> is set; this levelset
67 is represented by a primary function and a secondary function defined
68 by these expressions.
69 </para>
70 </listitem>
71
72 </itemizedlist>
73 </refsection>
74
75 <refsection>
76 <title>See Also</title>
77 <simplelist type="inline">
78 <member><link linkend="getfem_types">getfem types</link></member>
79 </simplelist>
80 </refsection>
81
82 <refsection>
83 <title>Authors</title>
84 <para>Y. Collette</para>
85 </refsection>
86
87 </refentry>
+0
-103
interface/src/scilab/help/en_US/gf_levelset_get.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_levelset_get" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_levelset_get</refname>
11 <refpurpose> General function for querying information about LEVELSET objects.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>V = gf_levelset_get(levelset LS, 'values', int nls)</synopsis>
19 <synopsis>d = gf_levelset_get(levelset LS, 'degree')</synopsis>
20 <synopsis>mf = gf_levelset_get(levelset LS, 'mf')</synopsis>
21 <synopsis>z = gf_levelset_get(levelset LS, 'memsize')</synopsis>
22 <synopsis>s = gf_levelset_get(levelset LS, 'char')</synopsis>
23 <synopsis>gf_levelset_get(levelset LS, 'display')</synopsis>
24 </refsynopsisdiv>
25
26 <refsection>
27 <title>Description</title>
28 <para> General function for querying information about LEVELSET objects.
29 </para>
30 </refsection>
31
32 <refsection>
33 <title>Command list</title>
34
35 <itemizedlist>
36 <listitem>
37 <para><literal>V = gf_levelset_get(levelset LS, 'values', int nls)</literal></para>
38
39 <para> Return the vector of dof for <literal>nls</literal> funtion.
40
41 If <literal>nls</literal> is 0, the method return the vector of dof for the primary
42 level-set funtion. If <literal>nls</literal> is 1, the method return the vector of
43 dof for the secondary level-set function (if any).
44 </para>
45 </listitem>
46
47 <listitem>
48 <para><literal>d = gf_levelset_get(levelset LS, 'degree')</literal></para>
49
50 <para> Return the degree of lagrange representation.
51 </para>
52 </listitem>
53
54 <listitem>
55 <para><literal>mf = gf_levelset_get(levelset LS, 'mf')</literal></para>
56
57 <para> Return a reference on the mesh_fem object.
58 </para>
59 </listitem>
60
61 <listitem>
62 <para><literal>z = gf_levelset_get(levelset LS, 'memsize')</literal></para>
63
64 <para> Return the amount of memory (in bytes) used by the level-set.
65 </para>
66 </listitem>
67
68 <listitem>
69 <para><literal>s = gf_levelset_get(levelset LS, 'char')</literal></para>
70
71 <para> Output a (unique) string representation of the levelset.
72
73 This can be used to perform comparisons between two
74 different levelset objects.
75 This function is to be completed.
76
77 </para>
78 </listitem>
79
80 <listitem>
81 <para><literal>gf_levelset_get(levelset LS, 'display')</literal></para>
82
83 <para> displays a short summary for a levelset.
84 </para>
85 </listitem>
86
87 </itemizedlist>
88 </refsection>
89
90 <refsection>
91 <title>See Also</title>
92 <simplelist type="inline">
93 <member><link linkend="getfem_types">getfem types</link></member>
94 </simplelist>
95 </refsection>
96
97 <refsection>
98 <title>Authors</title>
99 <para>Y. Collette</para>
100 </refsection>
101
102 </refentry>
+0
-66
interface/src/scilab/help/en_US/gf_levelset_set.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_levelset_set" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_levelset_set</refname>
11 <refpurpose> General function for modification of LEVELSET objects.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>gf_levelset_set(levelset LS, 'values', {mat v1|string func_1}[, mat v2|string func_2])</synopsis>
19 <synopsis>gf_levelset_set(levelset LS, 'simplify'[, scalar eps=0.01])</synopsis>
20 </refsynopsisdiv>
21
22 <refsection>
23 <title>Description</title>
24 <para> General function for modification of LEVELSET objects.
25 </para>
26 </refsection>
27
28 <refsection>
29 <title>Command list</title>
30
31 <itemizedlist>
32 <listitem>
33 <para><literal>gf_levelset_set(levelset LS, 'values', {mat v1|string func_1}[, mat v2|string func_2])</literal></para>
34
35 <para> Set values of the vector of dof for the level-set functions.
36
37 Set the primary function with the vector of dof <literal>v1</literal> (or the expression
38 <literal>func_1</literal>) and the secondary function (if any) with the vector of dof
39 <literal>v2</literal> (or the expression <literal>func_2</literal>)
40 </para>
41 </listitem>
42
43 <listitem>
44 <para><literal>gf_levelset_set(levelset LS, 'simplify'[, scalar eps=0.01])</literal></para>
45
46 <para> Simplify dof of level-set optionally with the parameter <literal>eps</literal>.
47 </para>
48 </listitem>
49
50 </itemizedlist>
51 </refsection>
52
53 <refsection>
54 <title>See Also</title>
55 <simplelist type="inline">
56 <member><link linkend="getfem_types">getfem types</link></member>
57 </simplelist>
58 </refsection>
59
60 <refsection>
61 <title>Authors</title>
62 <para>Y. Collette</para>
63 </refsection>
64
65 </refentry>
+0
-95
interface/src/scilab/help/en_US/gf_linsolve.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_linsolve" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_linsolve</refname>
11 <refpurpose> Various linear system solvers.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>X = gf_linsolve('gmres', spmat M, vec b[, int restart][, precond P][,'noisy'][,'res', r][,'maxiter', n])</synopsis>
19 <synopsis>X = gf_linsolve('cg', spmat M, vec b [, precond P][,'noisy'][,'res', r][,'maxiter', n])</synopsis>
20 <synopsis>X = gf_linsolve('bicgstab', spmat M, vec b [, precond P][,'noisy'][,'res', r][,'maxiter', n])</synopsis>
21 <synopsis>{U, cond} = gf_linsolve('lu', spmat M, vec b)</synopsis>
22 <synopsis>{U, cond} = gf_linsolve('superlu', spmat M, vec b)</synopsis>
23 </refsynopsisdiv>
24
25 <refsection>
26 <title>Description</title>
27 <para> Various linear system solvers.
28 </para>
29 </refsection>
30
31 <refsection>
32 <title>Command list</title>
33
34 <itemizedlist>
35 <listitem>
36 <para><literal>X = gf_linsolve('gmres', spmat M, vec b[, int restart][, precond P][,'noisy'][,'res', r][,'maxiter', n])</literal></para>
37
38 <para> Solve <literal>M.X = b</literal> with the generalized minimum residuals method.
39
40 Optionally using <literal>P</literal> as preconditioner. The default value of the
41 restart parameter is 50.
42 </para>
43 </listitem>
44
45 <listitem>
46 <para><literal>X = gf_linsolve('cg', spmat M, vec b [, precond P][,'noisy'][,'res', r][,'maxiter', n])</literal></para>
47
48 <para> Solve <literal>M.X = b</literal> with the conjugated gradient method.
49
50 Optionally using <literal>P</literal> as preconditioner.
51 </para>
52 </listitem>
53
54 <listitem>
55 <para><literal>X = gf_linsolve('bicgstab', spmat M, vec b [, precond P][,'noisy'][,'res', r][,'maxiter', n])</literal></para>
56
57 <para> Solve <literal>M.X = b</literal> with the bi-conjugated gradient stabilized method.
58
59 Optionally using <literal>P</literal> as a preconditioner.
60 </para>
61 </listitem>
62
63 <listitem>
64 <para><literal>{U, cond} = gf_linsolve('lu', spmat M, vec b)</literal></para>
65
66 <para> Alias for gf_linsolve('superlu',...)
67 </para>
68 </listitem>
69
70 <listitem>
71 <para><literal>{U, cond} = gf_linsolve('superlu', spmat M, vec b)</literal></para>
72
73 <para> Solve <literal>M.U = b</literal> apply the SuperLU solver (sparse LU factorization).
74
75 The condition number estimate <literal>cond</literal> is returned with the solution <literal>U</literal>.
76 </para>
77 </listitem>
78
79 </itemizedlist>
80 </refsection>
81
82 <refsection>
83 <title>See Also</title>
84 <simplelist type="inline">
85 <member><link linkend="getfem_types">getfem types</link></member>
86 </simplelist>
87 </refsection>
88
89 <refsection>
90 <title>Authors</title>
91 <para>Y. Collette</para>
92 </refsection>
93
94 </refentry>
+0
-219
interface/src/scilab/help/en_US/gf_mesh.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_mesh" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_mesh</refname>
11 <refpurpose> This object is able to store any element in any dimension even if you mix
12 elements with different dimensions.
13
14
15 </refpurpose>
16 </refnamediv>
17
18 <refsynopsisdiv>
19 <title>Calling Sequence</title>
20
21 <synopsis>M = gf_mesh('empty', int dim)</synopsis>
22 <synopsis>M = gf_mesh('cartesian', vec X[, vec Y[, vec Z,..]])</synopsis>
23 <synopsis>M = gf_mesh('cartesian Q1', vec X, vec Y[, vec Z,..])</synopsis>
24 <synopsis>M = gf_mesh('triangles grid', vec X, vec Y)</synopsis>
25 <synopsis>M = gf_mesh('regular simplices', vec X[, vec Y[, vec Z,...]]['degree', int k]['noised'])</synopsis>
26 <synopsis>M = gf_mesh('curved', mesh m, vec F)</synopsis>
27 <synopsis>M = gf_mesh('prismatic', mesh m, int nl)</synopsis>
28 <synopsis>M = gf_mesh('pt2D', mat P, imat T[, int n])</synopsis>
29 <synopsis>M = gf_mesh('ptND', mat P, imat T)</synopsis>
30 <synopsis>M = gf_mesh('load', string filename)</synopsis>
31 <synopsis>M = gf_mesh('from string', string s)</synopsis>
32 <synopsis>M = gf_mesh('import', string format, string filename)</synopsis>
33 <synopsis>M = gf_mesh('clone', mesh m2)</synopsis>
34 <synopsis>M = gf_mesh('generate', mesher_object mo, scalar h[, int K = 1[, mat vertices]])</synopsis>
35 </refsynopsisdiv>
36
37 <refsection>
38 <title>Description</title>
39 <para>General constructor for mesh objects.</para>
40
41 <para> This object is able to store any element in any dimension even if you mix
42 elements with different dimensions.
43
44
45 </para>
46 </refsection>
47
48 <refsection>
49 <title>Command list</title>
50
51 <itemizedlist>
52 <listitem>
53 <para><literal>M = gf_mesh('empty', int dim)</literal></para>
54
55 <para> Create a new empty mesh.
56 </para>
57 </listitem>
58
59 <listitem>
60 <para><literal>M = gf_mesh('cartesian', vec X[, vec Y[, vec Z,..]])</literal></para>
61
62 <para> Build quickly a regular mesh of quadrangles, cubes, etc.
63 </para>
64 </listitem>
65
66 <listitem>
67 <para><literal>M = gf_mesh('cartesian Q1', vec X, vec Y[, vec Z,..])</literal></para>
68
69 <para> Build quickly a regular mesh of quadrangles, cubes, etc. with
70 Q1 elements.
71 </para>
72 </listitem>
73
74 <listitem>
75 <para><literal>M = gf_mesh('triangles grid', vec X, vec Y)</literal></para>
76
77 <para> Build quickly a regular mesh of triangles.
78
79 This is a very limited and somehow deprecated function (See also
80 <literal></literal>gf_mesh('ptND')<literal></literal>, <literal></literal>gf_mesh('regular simplices')<literal></literal> and
81 <literal></literal>gf_mesh('cartesian')<literal></literal>).
82 </para>
83 </listitem>
84
85 <listitem>
86 <para><literal>M = gf_mesh('regular simplices', vec X[, vec Y[, vec Z,...]]['degree', int k]['noised'])</literal></para>
87
88 <para> Mesh a n-dimensionnal parallelepipeded with simplices (triangles,
89 tetrahedrons etc) .
90
91 The optional degree may be used to build meshes with non linear
92 geometric transformations.
93 </para>
94 </listitem>
95
96 <listitem>
97 <para><literal>M = gf_mesh('curved', mesh m, vec F)</literal></para>
98
99 <para> Build a curved (n+1)-dimensions mesh from a n-dimensions mesh <literal>m</literal>.
100
101 The points of the new mesh have one additional coordinate, given by
102 the vector <literal>F</literal>. This can be used to obtain meshes for shells. <literal>m</literal> may
103 be a mesh_fem object, in that case its linked mesh will be used.
104 </para>
105 </listitem>
106
107 <listitem>
108 <para><literal>M = gf_mesh('prismatic', mesh m, int nl)</literal></para>
109
110 <para> Extrude a prismatic mesh <literal>M</literal> from a mesh <literal>m</literal>.
111
112 In the additional dimension there are <literal>nl</literal> layers of elements built
113 from <literal></literal>0<literal></literal> to <literal></literal>1<literal></literal>.
114 </para>
115 </listitem>
116
117 <listitem>
118 <para><literal>M = gf_mesh('pt2D', mat P, imat T[, int n])</literal></para>
119
120 <para> Build a mesh from a 2D triangulation.
121
122 Each column of <literal>P</literal> contains a point coordinate, and each column of <literal>T</literal>
123 contains the point indices of a triangle. <literal>n</literal> is optional and is a
124 zone number. If <literal>n</literal> is specified then only the zone number <literal>n</literal> is
125 converted (in that case, <literal>T</literal> is expected to have 4 rows, the fourth
126 containing these zone numbers).
127
128
129 </para>
130 </listitem>
131
132 <listitem>
133 <para><literal>M = gf_mesh('ptND', mat P, imat T)</literal></para>
134
135 <para> Build a mesh from a n-dimensional "triangulation".
136
137 Similar function to 'pt2D', for building simplexes meshes from a
138 triangulation given in <literal>T</literal>, and a list of points given in <literal>P</literal>. The
139 dimension of the mesh will be the number of rows of <literal>P</literal>, and the
140 dimension of the simplexes will be the number of rows of <literal>T</literal>.
141 </para>
142 </listitem>
143
144 <listitem>
145 <para><literal>M = gf_mesh('load', string filename)</literal></para>
146
147 <para> Load a mesh from a getfem++ ascii mesh file.
148
149 See also <literal></literal>gf_mesh_get(mesh M, 'save', string filename)<literal></literal>.
150 </para>
151 </listitem>
152
153 <listitem>
154 <para><literal>M = gf_mesh('from string', string s)</literal></para>
155
156 <para> Load a mesh from a string description.
157
158 For example, a string returned by <literal></literal>gf_mesh_get(mesh M, 'char')<literal></literal>.
159 </para>
160 </listitem>
161
162 <listitem>
163 <para><literal>M = gf_mesh('import', string format, string filename)</literal></para>
164
165 <para> Import a mesh.
166
167 <literal>format</literal> may be:
168
169 - 'gmsh' for a mesh created with <literal>Gmsh</literal>
170 - 'gid' for a mesh created with <literal>GiD</literal>
171 - 'am_fmt' for a mesh created with <literal>EMC2</literal>
172 </para>
173 </listitem>
174
175 <listitem>
176 <para><literal>M = gf_mesh('clone', mesh m2)</literal></para>
177
178 <para> Create a copy of a mesh.
179 </para>
180 </listitem>
181
182 <listitem>
183 <para><literal>M = gf_mesh('generate', mesher_object mo, scalar h[, int K = 1[, mat vertices]])</literal></para>
184
185 <para> Call the (very) experimental mesher of Getfem on the geometry
186 represented by <literal>mo</literal>. please control the conformity of the produced mesh.
187 You can add the mesher by adding a priori vertices in the array
188 <literal>vertices</literal> which should be of size <literal></literal>n x m<literal></literal> where <literal></literal>n<literal></literal> n is the
189 dimension of the mesh and <literal></literal>m<literal></literal> the number of points. <literal>h</literal> is
190 approximate diameter of the elements. <literal>K</literal> is the degree of the
191 mesh ( > 1 for curved boundaries). The mesher try to optimize the
192 quality of the elements. This operation may be time consuming.
193 Note that if the mesh generation fails, because of some random
194 procedure used, it will not give necessarily the same result due
195 to random procedures used.
196 The messages send to the console by the mesh generation can be
197 desactivated using <literal>gf_util('trace level', 2)</literal>. More information
198 can be obtained by <literal>gf_util('trace level', 4)</literal>.
199
200 </para>
201 </listitem>
202
203 </itemizedlist>
204 </refsection>
205
206 <refsection>
207 <title>See Also</title>
208 <simplelist type="inline">
209 <member><link linkend="getfem_types">getfem types</link></member>
210 </simplelist>
211 </refsection>
212
213 <refsection>
214 <title>Authors</title>
215 <para>Y. Collette</para>
216 </refsection>
217
218 </refentry>
+0
-136
interface/src/scilab/help/en_US/gf_mesh_fem.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_mesh_fem" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_mesh_fem</refname>
11 <refpurpose> This object represents a finite element method defined on a whole mesh.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>MF = gf_mesh_fem('load', string fname[, mesh m])</synopsis>
19 <synopsis>MF = gf_mesh_fem('from string', string s[, mesh m])</synopsis>
20 <synopsis>MF = gf_mesh_fem('clone', mesh_fem mf)</synopsis>
21 <synopsis>MF = gf_mesh_fem('sum', mesh_fem mf1, mesh_fem mf2[, mesh_fem mf3[, ...]])</synopsis>
22 <synopsis>MF = gf_mesh_fem('levelset', mesh_levelset mls, mesh_fem mf)</synopsis>
23 <synopsis>MF = gf_mesh_fem('global function', mesh m, levelset ls, {global_function GF1,...}[, int Qdim_m])</synopsis>
24 <synopsis>MF = gf_mesh_fem('partial', mesh_fem mf, ivec DOFs[, ivec RCVs])</synopsis>
25 <synopsis>MF = gf_mesh_fem(mesh m[, int Qdim1=1[, int Qdim2=1, ...]])</synopsis>
26 </refsynopsisdiv>
27
28 <refsection>
29 <title>Description</title>
30 <para>General constructor for mesh_fem objects.</para>
31
32 <para> This object represents a finite element method defined on a whole mesh.
33 </para>
34 </refsection>
35
36 <refsection>
37 <title>Command list</title>
38
39 <itemizedlist>
40 <listitem>
41 <para><literal>MF = gf_mesh_fem('load', string fname[, mesh m])</literal></para>
42
43 <para> Load a mesh_fem from a file.
44
45 If the mesh <literal>m</literal> is not supplied (this kind of file does not store the
46 mesh), then it is read from the file <literal>fname</literal> and its descriptor is
47 returned as the second output argument.
48 </para>
49 </listitem>
50
51 <listitem>
52 <para><literal>MF = gf_mesh_fem('from string', string s[, mesh m])</literal></para>
53
54 <para> Create a mesh_fem object from its string description.
55
56 See also <literal></literal>gf_mesh_fem_get(mesh_fem MF, 'char')<literal></literal>
57 </para>
58 </listitem>
59
60 <listitem>
61 <para><literal>MF = gf_mesh_fem('clone', mesh_fem mf)</literal></para>
62
63 <para> Create a copy of a mesh_fem.
64 </para>
65 </listitem>
66
67 <listitem>
68 <para><literal>MF = gf_mesh_fem('sum', mesh_fem mf1, mesh_fem mf2[, mesh_fem mf3[, ...]])</literal></para>
69
70 <para> Create a mesh_fem that combines two (or more) mesh_fem's.
71
72 All mesh_fem must share the same mesh (see
73 <literal></literal>gf_fem('interpolated_fem')<literal></literal> to map a mesh_fem onto another).
74
75 After that, you should not modify the FEM of <literal>mf1</literal>, <literal>mf2</literal> etc.
76 </para>
77 </listitem>
78
79 <listitem>
80 <para><literal>MF = gf_mesh_fem('levelset', mesh_levelset mls, mesh_fem mf)</literal></para>
81
82 <para> Create a mesh_fem that is conformal to implicit surfaces defined in
83 mesh_levelset.
84 </para>
85 </listitem>
86
87 <listitem>
88 <para><literal>MF = gf_mesh_fem('global function', mesh m, levelset ls, {global_function GF1,...}[, int Qdim_m])</literal></para>
89
90 <para> Create a mesh_fem whose base functions are global function given by the
91 user in the system of coordinate defined by the iso-values of the two
92 level-set function of <literal>ls</literal>.
93 </para>
94 </listitem>
95
96 <listitem>
97 <para><literal>MF = gf_mesh_fem('partial', mesh_fem mf, ivec DOFs[, ivec RCVs])</literal></para>
98
99 <para> Build a restricted mesh_fem by keeping only a subset of the degrees of
100 freedom of <literal>mf</literal>.
101
102 If <literal>RCVs</literal> is given, no FEM will be put on the convexes listed in
103 <literal>RCVs</literal>.
104 </para>
105 </listitem>
106
107 <listitem>
108 <para><literal>MF = gf_mesh_fem(mesh m[, int Qdim1=1[, int Qdim2=1, ...]])</literal></para>
109
110 <para> Build a new mesh_fem object.
111
112 The <literal>Qdim</literal> parameters specifies the dimension of the field represented
113 by the finite element method. Qdim1 = 1 for a scalar field,
114 Qdim1 = n for a vector field off size n, Qdim1=m, Qdim2=n for
115 a matrix field of size mxn ...
116 Returns the handle of the created object.
117 </para>
118 </listitem>
119
120 </itemizedlist>
121 </refsection>
122
123 <refsection>
124 <title>See Also</title>
125 <simplelist type="inline">
126 <member><link linkend="getfem_types">getfem types</link></member>
127 </simplelist>
128 </refsection>
129
130 <refsection>
131 <title>Authors</title>
132 <para>Y. Collette</para>
133 </refsection>
134
135 </refentry>
+0
-454
interface/src/scilab/help/en_US/gf_mesh_fem_get.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_mesh_fem_get" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_mesh_fem_get</refname>
11 <refpurpose> General function for inquiry about mesh_fem objects.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>n = gf_mesh_fem_get(mesh_fem MF, 'nbdof')</synopsis>
19 <synopsis>n = gf_mesh_fem_get(mesh_fem MF, 'nb basic dof')</synopsis>
20 <synopsis>DOF = gf_mesh_fem_get(mesh_fem MF, 'dof from cv',mat CVids)</synopsis>
21 <synopsis>DOF = gf_mesh_fem_get(mesh_fem MF, 'basic dof from cv',mat CVids)</synopsis>
22 <synopsis>{DOFs, IDx} = gf_mesh_fem_get(mesh_fem MF, 'dof from cvid'[, mat CVids])</synopsis>
23 <synopsis>{DOFs, IDx} = gf_mesh_fem_get(mesh_fem MF, 'basic dof from cvid'[, mat CVids])</synopsis>
24 <synopsis>gf_mesh_fem_get(mesh_fem MF, 'non conformal dof'[, mat CVids])</synopsis>
25 <synopsis>gf_mesh_fem_get(mesh_fem MF, 'non conformal basic dof'[, mat CVids])</synopsis>
26 <synopsis>gf_mesh_fem_get(mesh_fem MF, 'qdim')</synopsis>
27 <synopsis>{FEMs, CV2F} = gf_mesh_fem_get(mesh_fem MF, 'fem'[, mat CVids])</synopsis>
28 <synopsis>CVs = gf_mesh_fem_get(mesh_fem MF, 'convex_index')</synopsis>
29 <synopsis>bB = gf_mesh_fem_get(mesh_fem MF, 'is_lagrangian'[, mat CVids])</synopsis>
30 <synopsis>bB = gf_mesh_fem_get(mesh_fem MF, 'is_equivalent'[, mat CVids])</synopsis>
31 <synopsis>bB = gf_mesh_fem_get(mesh_fem MF, 'is_polynomial'[, mat CVids])</synopsis>
32 <synopsis>bB = gf_mesh_fem_get(mesh_fem MF, 'is_reduced')</synopsis>
33 <synopsis>bB = gf_mesh_fem_get(mesh_fem MF, 'reduction matrix')</synopsis>
34 <synopsis>bB = gf_mesh_fem_get(mesh_fem MF, 'extension matrix')</synopsis>
35 <synopsis>DOFs = gf_mesh_fem_get(mesh_fem MF, 'basic dof on region',mat Rs)</synopsis>
36 <synopsis>DOFs = gf_mesh_fem_get(mesh_fem MF, 'dof on region',mat Rs)</synopsis>
37 <synopsis>DOFpts = gf_mesh_fem_get(mesh_fem MF, 'dof nodes'[, mat DOFids])</synopsis>
38 <synopsis>DOFpts = gf_mesh_fem_get(mesh_fem MF, 'basic dof nodes'[, mat DOFids])</synopsis>
39 <synopsis>DOFP = gf_mesh_fem_get(mesh_fem MF, 'dof partition')</synopsis>
40 <synopsis>gf_mesh_fem_get(mesh_fem MF, 'save',string filename[, string opt])</synopsis>
41 <synopsis>gf_mesh_fem_get(mesh_fem MF, 'char'[, string opt])</synopsis>
42 <synopsis>gf_mesh_fem_get(mesh_fem MF, 'display')</synopsis>
43 <synopsis>m = gf_mesh_fem_get(mesh_fem MF, 'linked mesh')</synopsis>
44 <synopsis>m = gf_mesh_fem_get(mesh_fem MF, 'mesh')</synopsis>
45 <synopsis>gf_mesh_fem_get(mesh_fem MF, 'export to vtk',string filename, ... ['ascii'], U, 'name'...)</synopsis>
46 <synopsis>gf_mesh_fem_get(mesh_fem MF, 'export to dx',string filename, ...['as', string mesh_name][,'edges']['serie',string serie_name][,'ascii'][,'append'], U, 'name'...)</synopsis>
47 <synopsis>gf_mesh_fem_get(mesh_fem MF, 'export to pos',string filename[, string name][[,mesh_fem mf1], mat U1, string nameU1[[,mesh_fem mf2], mat U2, string nameU2,...]])</synopsis>
48 <synopsis>gf_mesh_fem_get(mesh_fem MF, 'dof_from_im',mesh_im mim[, int p])</synopsis>
49 <synopsis>U = gf_mesh_fem_get(mesh_fem MF, 'interpolate_convex_data',mat Ucv)</synopsis>
50 <synopsis>z = gf_mesh_fem_get(mesh_fem MF, 'memsize')</synopsis>
51 <synopsis>gf_mesh_fem_get(mesh_fem MF, 'has_linked_mesh_levelset')</synopsis>
52 <synopsis>gf_mesh_fem_get(mesh_fem MF, 'linked_mesh_levelset')</synopsis>
53 </refsynopsisdiv>
54
55 <refsection>
56 <title>Description</title>
57 <para> General function for inquiry about mesh_fem objects.
58 </para>
59 </refsection>
60
61 <refsection>
62 <title>Command list</title>
63
64 <itemizedlist>
65 <listitem>
66 <para><literal>n = gf_mesh_fem_get(mesh_fem MF, 'nbdof')</literal></para>
67
68 <para> Return the number of degrees of freedom (dof) of the mesh_fem.
69 </para>
70 </listitem>
71
72 <listitem>
73 <para><literal>n = gf_mesh_fem_get(mesh_fem MF, 'nb basic dof')</literal></para>
74
75 <para> Return the number of basic degrees of freedom (dof) of the mesh_fem.
76 </para>
77 </listitem>
78
79 <listitem>
80 <para><literal>DOF = gf_mesh_fem_get(mesh_fem MF, 'dof from cv',mat CVids)</literal></para>
81
82 <para> Deprecated function. Use gf_mesh_fem_get(mesh_fem MF, 'basic dof from cv') instead.
83 </para>
84 </listitem>
85
86 <listitem>
87 <para><literal>DOF = gf_mesh_fem_get(mesh_fem MF, 'basic dof from cv',mat CVids)</literal></para>
88
89 <para> Return the dof of the convexes listed in <literal>CVids</literal>.
90
91 WARNING: the Degree of Freedom might be returned in ANY order, do
92 not use this function in your assembly routines. Use 'basic dof from cvid'
93 instead, if you want to be able to map a convex number with its
94 associated degrees of freedom.
95
96 One can also get the list of basic dof on a set on convex faces, by
97 indicating on the second row of <literal>CVids</literal> the faces numbers (with
98 respect to the convex number on the first row).
99 </para>
100 </listitem>
101
102 <listitem>
103 <para><literal>{DOFs, IDx} = gf_mesh_fem_get(mesh_fem MF, 'dof from cvid'[, mat CVids])</literal></para>
104
105 <para> Deprecated function. Use gf_mesh_fem_get(mesh_fem MF, 'basic dof from cvid') instead.
106
107 </para>
108 </listitem>
109
110 <listitem>
111 <para><literal>{DOFs, IDx} = gf_mesh_fem_get(mesh_fem MF, 'basic dof from cvid'[, mat CVids])</literal></para>
112
113 <para> Return the degrees of freedom attached to each convex of the mesh.
114
115 If <literal>CVids</literal> is omitted, all the convexes will be considered (equivalent
116 to <literal>CVids = 1 ... gf_mesh_get(mesh M, 'max cvid')</literal>).
117
118 <literal>IDx</literal> is a vector, <literal>length(IDx) = length(CVids)+1</literal>.
119 <literal>DOFs</literal> is a vector containing the concatenated list
120 of dof of each convex in <literal>CVids</literal>. Each entry of <literal>IDx</literal> is the position
121 of the corresponding convex point list in <literal>DOFs</literal>. Hence, for example,
122 the list of points of the second convex is DOFs(IDx(2):IDx(3)-1).
123
124 If <literal>CVids</literal> contains convex #id which do not exist in the mesh, their
125 point list will be empty.
126 </para>
127 </listitem>
128
129 <listitem>
130 <para><literal>gf_mesh_fem_get(mesh_fem MF, 'non conformal dof'[, mat CVids])</literal></para>
131
132 <para> Deprecated function. Use gf_mesh_fem_get(mesh_fem MF, 'non conformal basic dof') instead.
133
134 </para>
135 </listitem>
136
137 <listitem>
138 <para><literal>gf_mesh_fem_get(mesh_fem MF, 'non conformal basic dof'[, mat CVids])</literal></para>
139
140 <para> Return partially linked degrees of freedom.
141
142 Return the basic dof located on the border of a convex and which belong
143 to only one convex, except the ones which are located on the border
144 of the mesh. For example, if the convex 'a' and 'b' share a common
145 face, 'a' has a P1 FEM, and 'b' has a P2 FEM, then the basic dof on the
146 middle of the face will be returned by this function (this can be
147 useful when searching the interfaces between classical FEM and
148 hierarchical FEM).
149 </para>
150 </listitem>
151
152 <listitem>
153 <para><literal>gf_mesh_fem_get(mesh_fem MF, 'qdim')</literal></para>
154
155 <para> Return the dimension Q of the field interpolated by the mesh_fem.
156
157 By default, Q=1 (scalar field). This has an impact on the dof numbering.
158 </para>
159 </listitem>
160
161 <listitem>
162 <para><literal>{FEMs, CV2F} = gf_mesh_fem_get(mesh_fem MF, 'fem'[, mat CVids])</literal></para>
163
164 <para> Return a list of FEM used by the mesh_fem.
165
166 <literal>FEMs</literal> is an array of all fem objects found in the convexes
167 given in <literal>CVids</literal>. If <literal>CV2F</literal> was supplied as an output argument,
168 it contains, for each convex listed in <literal>CVids</literal>, the index of its
169 correspounding FEM in <literal>FEMs</literal>.
170
171 Convexes which are not part of the mesh, or convexes which do not
172 have any FEM have their correspounding entry in <literal>CV2F</literal> set to -1.
173
174
175 </para>
176 </listitem>
177
178 <listitem>
179 <para><literal>CVs = gf_mesh_fem_get(mesh_fem MF, 'convex_index')</literal></para>
180
181 <para> Return the list of convexes who have a FEM.
182 </para>
183 </listitem>
184
185 <listitem>
186 <para><literal>bB = gf_mesh_fem_get(mesh_fem MF, 'is_lagrangian'[, mat CVids])</literal></para>
187
188 <para> Test if the mesh_fem is Lagrangian.
189
190 Lagrangian means that each base function Phi[i] is such that
191 Phi[i](P[j]) = delta(i,j), where P[j] is the dof location of
192 the jth base function, and delta(i,j) = 1 if i==j, else 0.
193
194 If <literal>CVids</literal> is omitted, it returns 1 if all convexes in the mesh
195 are Lagrangian. If <literal>CVids</literal> is used, it returns the convex indices
196 (with respect to <literal>CVids</literal>) which are Lagrangian.
197 </para>
198 </listitem>
199
200 <listitem>
201 <para><literal>bB = gf_mesh_fem_get(mesh_fem MF, 'is_equivalent'[, mat CVids])</literal></para>
202
203 <para> Test if the mesh_fem is equivalent.
204
205 See gf_mesh_fem_get(mesh_fem MF, 'is_lagrangian')
206 </para>
207 </listitem>
208
209 <listitem>
210 <para><literal>bB = gf_mesh_fem_get(mesh_fem MF, 'is_polynomial'[, mat CVids])</literal></para>
211
212 <para> Test if all base functions are polynomials.
213
214 See gf_mesh_fem_get(mesh_fem MF, 'is_lagrangian')
215 </para>
216 </listitem>
217
218 <listitem>
219 <para><literal>bB = gf_mesh_fem_get(mesh_fem MF, 'is_reduced')</literal></para>
220
221 <para> Return 1 if the optional reduction matrix is applied to the dofs.
222 </para>
223 </listitem>
224
225 <listitem>
226 <para><literal>bB = gf_mesh_fem_get(mesh_fem MF, 'reduction matrix')</literal></para>
227
228 <para> Return the optional reduction matrix.
229 </para>
230 </listitem>
231
232 <listitem>
233 <para><literal>bB = gf_mesh_fem_get(mesh_fem MF, 'extension matrix')</literal></para>
234
235 <para> Return the optional extension matrix.
236 </para>
237 </listitem>
238
239 <listitem>
240 <para><literal>DOFs = gf_mesh_fem_get(mesh_fem MF, 'basic dof on region',mat Rs)</literal></para>
241
242 <para> Return the list of basic dof (before the optional reduction) lying on one
243 of the mesh regions listed in <literal>Rs</literal>.
244
245 More precisely, this function returns the basic dof whose support is
246 non-null on one of regions whose #ids are listed in <literal>Rs</literal> (note
247 that for boundary regions, some dof nodes may not lie exactly
248 on the boundary, for example the dof of Pk(n,0) lies on the center
249 of the convex, but the base function in not null on the convex
250 border).
251 </para>
252 </listitem>
253
254 <listitem>
255 <para><literal>DOFs = gf_mesh_fem_get(mesh_fem MF, 'dof on region',mat Rs)</literal></para>
256
257 <para> Return the list of dof (after the optional reduction) lying on one
258 of the mesh regions listed in <literal>Rs</literal>.
259
260 More precisely, this function returns the basic dof whose support is
261 non-null on one of regions whose #ids are listed in <literal>Rs</literal> (note
262 that for boundary regions, some dof nodes may not lie exactly
263 on the boundary, for example the dof of Pk(n,0) lies on the center
264 of the convex, but the base function in not null on the convex
265 border).
266
267 For a reduced mesh_fem
268 a dof is lying on a region if its potential corresponding shape
269 function is nonzero on this region. The extension matrix is used
270 to make the correspondance between basic and reduced dofs.
271 </para>
272 </listitem>
273
274 <listitem>
275 <para><literal>DOFpts = gf_mesh_fem_get(mesh_fem MF, 'dof nodes'[, mat DOFids])</literal></para>
276
277 <para> Deprecated function. Use gf_mesh_fem_get(mesh_fem MF, 'basic dof nodes') instead.
278 </para>
279 </listitem>
280
281 <listitem>
282 <para><literal>DOFpts = gf_mesh_fem_get(mesh_fem MF, 'basic dof nodes'[, mat DOFids])</literal></para>
283
284 <para> Get location of basic degrees of freedom.
285
286 Return the list of interpolation points for the specified
287 dof #IDs in <literal>DOFids</literal> (if <literal>DOFids</literal> is omitted, all basic dof are
288 considered).
289 </para>
290 </listitem>
291
292 <listitem>
293 <para><literal>DOFP = gf_mesh_fem_get(mesh_fem MF, 'dof partition')</literal></para>
294
295 <para> Get the 'dof_partition' array.
296
297 Return the array which associates an integer (the partition number)
298 to each convex of the mesh_fem. By default, it is an all-zero array.
299 The degrees of freedom of each convex of the mesh_fem are connected
300 only to the dof of neighbouring convexes which have the same
301 partition number, hence it is possible to create partially
302 discontinuous mesh_fem very easily.
303 </para>
304 </listitem>
305
306 <listitem>
307 <para><literal>gf_mesh_fem_get(mesh_fem MF, 'save',string filename[, string opt])</literal></para>
308
309 <para> Save a mesh_fem in a text file (and optionaly its linked mesh object
310 if <literal>opt</literal> is the string 'with_mesh').
311 </para>
312 </listitem>
313
314 <listitem>
315 <para><literal>gf_mesh_fem_get(mesh_fem MF, 'char'[, string opt])</literal></para>
316
317 <para> Output a string description of the mesh_fem.
318
319 By default, it does not include the description of the linked mesh
320 object, except if <literal>opt</literal> is 'with_mesh'.
321 </para>
322 </listitem>
323
324 <listitem>
325 <para><literal>gf_mesh_fem_get(mesh_fem MF, 'display')</literal></para>
326
327 <para> displays a short summary for a mesh_fem object.
328 </para>
329 </listitem>
330
331 <listitem>
332 <para><literal>m = gf_mesh_fem_get(mesh_fem MF, 'linked mesh')</literal></para>
333
334 <para> Return a reference to the mesh object linked to <literal>mf</literal>.
335 </para>
336 </listitem>
337
338 <listitem>
339 <para><literal>m = gf_mesh_fem_get(mesh_fem MF, 'mesh')</literal></para>
340
341 <para> Return a reference to the mesh object linked to <literal>mf</literal>.
342 (identical to gf_mesh_get(mesh M, 'linked mesh'))
343 </para>
344 </listitem>
345
346 <listitem>
347 <para><literal>gf_mesh_fem_get(mesh_fem MF, 'export to vtk',string filename, ... ['ascii'], U, 'name'...)</literal></para>
348
349 <para> Export a mesh_fem and some fields to a vtk file.
350
351 The FEM and geometric transformations will be mapped to order 1
352 or 2 isoparametric Pk (or Qk) FEMs (as VTK does not handle higher
353 order elements). If you need to represent high-order FEMs or
354 high-order geometric transformations, you should consider
355 gf_slice_get(slice S, 'export to vtk').
356 </para>
357 </listitem>
358
359 <listitem>
360 <para><literal>gf_mesh_fem_get(mesh_fem MF, 'export to dx',string filename, ...['as', string mesh_name][,'edges']['serie',string serie_name][,'ascii'][,'append'], U, 'name'...)</literal></para>
361
362 <para> Export a mesh_fem and some fields to an OpenDX file.
363
364 This function will fail if the mesh_fem mixes different convex types
365 (i.e. quads and triangles), or if OpenDX does not handle a specific
366 element type (i.e. prism connections are not known by OpenDX).
367
368 The FEM will be mapped to order 1 Pk (or Qk) FEMs. If you need to
369 represent high-order FEMs or high-order geometric transformations,
370 you should consider gf_slice_get(slice S, 'export to dx').
371 </para>
372 </listitem>
373
374 <listitem>
375 <para><literal>gf_mesh_fem_get(mesh_fem MF, 'export to pos',string filename[, string name][[,mesh_fem mf1], mat U1, string nameU1[[,mesh_fem mf2], mat U2, string nameU2,...]])</literal></para>
376
377 <para> Export a mesh_fem and some fields to a pos file.
378
379 The FEM and geometric transformations will be mapped to order 1
380 isoparametric Pk (or Qk) FEMs (as GMSH does not handle higher
381 order elements).
382 </para>
383 </listitem>
384
385 <listitem>
386 <para><literal>gf_mesh_fem_get(mesh_fem MF, 'dof_from_im',mesh_im mim[, int p])</literal></para>
387
388 <para> Return a selection of dof who contribute significantly to the
389 mass-matrix that would be computed with <literal>mf</literal> and the integration
390 method <literal>mim</literal>.
391
392 <literal>p</literal> represents the dimension on what the integration method
393 operates (default <literal>p = mesh dimension</literal>).
394
395 IMPORTANT: you still have to set a valid integration method on
396 the convexes which are not crosses by the levelset!
397 </para>
398 </listitem>
399
400 <listitem>
401 <para><literal>U = gf_mesh_fem_get(mesh_fem MF, 'interpolate_convex_data',mat Ucv)</literal></para>
402
403 <para>
404 Interpolate data given on each convex of the mesh to the mesh_fem dof.
405 The mesh_fem has to be lagrangian, and should be discontinuous (typically
406 a FEM_PK(N,0) or FEM_QK(N,0) should be used).
407
408 The last dimension of the input vector Ucv should have
409 gf_mesh_get(mesh M, 'max cvid') elements.
410
411 Example of use: gf_mesh_fem_get(mesh_fem MF, 'interpolate_convex_data', gf_mesh_get(mesh M, 'quality'))
412 </para>
413 </listitem>
414
415 <listitem>
416 <para><literal>z = gf_mesh_fem_get(mesh_fem MF, 'memsize')</literal></para>
417
418 <para> Return the amount of memory (in bytes) used by the mesh_fem object.
419
420 The result does not take into account the linked mesh object.
421 </para>
422 </listitem>
423
424 <listitem>
425 <para><literal>gf_mesh_fem_get(mesh_fem MF, 'has_linked_mesh_levelset')</literal></para>
426
427 <para> Is a mesh_fem_level_set or not.
428 </para>
429 </listitem>
430
431 <listitem>
432 <para><literal>gf_mesh_fem_get(mesh_fem MF, 'linked_mesh_levelset')</literal></para>
433
434 <para> if it is a mesh_fem_level_set gives the linked mesh_level_set.
435 </para>
436 </listitem>
437
438 </itemizedlist>
439 </refsection>
440
441 <refsection>
442 <title>See Also</title>
443 <simplelist type="inline">
444 <member><link linkend="getfem_types">getfem types</link></member>
445 </simplelist>
446 </refsection>
447
448 <refsection>
449 <title>Authors</title>
450 <para>Y. Collette</para>
451 </refsection>
452
453 </refentry>
+0
-31
interface/src/scilab/help/en_US/gf_mesh_fem_get_eval.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_mesh_fem_get_eval"
2 xml:lang="en" xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_mesh_fem_get_eval</refname>
11
12 <refpurpose>see the help of gf_mesh_fem_get(mf,'eval')</refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis></synopsis>
19 </refsynopsisdiv>
20
21 <refsection>
22 <title>See Also</title>
23
24 <simplelist type="inline">
25 <member><link linkend="gf_mesh_fem">gf_mesh_fem</link></member>
26 <member><link linkend="gf_mesh_fem_get">gf_mesh_fem_get</link></member>
27 <member><link linkend="gf_mesh_fem_set">gf_mesh_fem_set</link></member>
28 </simplelist>
29 </refsection>
30 </refentry>
+0
-145
interface/src/scilab/help/en_US/gf_mesh_fem_set.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_mesh_fem_set" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_mesh_fem_set</refname>
11 <refpurpose> General function for modifying mesh_fem objects.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>gf_mesh_fem_set(mesh_fem MF, 'fem', fem f[, ivec CVids])</synopsis>
19 <synopsis>gf_mesh_fem_set(mesh_fem MF, 'classical fem', int k[, ivec CVids])</synopsis>
20 <synopsis>gf_mesh_fem_set(mesh_fem MF, 'classical discontinuous fem', int K[, @tscalar alpha[, ivec CVIDX]])</synopsis>
21 <synopsis>gf_mesh_fem_set(mesh_fem MF, 'qdim', int Q)</synopsis>
22 <synopsis>gf_mesh_fem_set(mesh_fem MF, 'reduction matrices', mat R, mat E)</synopsis>
23 <synopsis>gf_mesh_fem_set(mesh_fem MF, 'reduction', int s)</synopsis>
24 <synopsis>gf_mesh_fem_set(mesh_fem MF, 'reduce meshfem', mat RM)</synopsis>
25 <synopsis>gf_mesh_fem_set(mesh_fem MF, 'dof partition', ivec DOFP)</synopsis>
26 <synopsis>gf_mesh_fem_set(mesh_fem MF, 'set partial', ivec DOFs[, ivec RCVs])</synopsis>
27 </refsynopsisdiv>
28
29 <refsection>
30 <title>Description</title>
31 <para> General function for modifying mesh_fem objects.
32 </para>
33 </refsection>
34
35 <refsection>
36 <title>Command list</title>
37
38 <itemizedlist>
39 <listitem>
40 <para><literal>gf_mesh_fem_set(mesh_fem MF, 'fem', fem f[, ivec CVids])</literal></para>
41
42 <para> Set the Finite Element Method.
43
44 Assign a FEM <literal>f</literal> to all convexes whose #ids are listed in <literal>CVids</literal>.
45 If <literal>CVids</literal> is not given, the integration is assigned to all convexes.
46
47 See the help of gf_fem to obtain a list of available FEM methods.
48 </para>
49 </listitem>
50
51 <listitem>
52 <para><literal>gf_mesh_fem_set(mesh_fem MF, 'classical fem', int k[, ivec CVids])</literal></para>
53
54 <para> Assign a classical (Lagrange polynomial) fem of order <literal>k</literal> to the mesh_fem.
55
56 Uses FEM_PK for simplexes, FEM_QK for parallelepipeds etc.
57 </para>
58 </listitem>
59
60 <listitem>
61 <para><literal>gf_mesh_fem_set(mesh_fem MF, 'classical discontinuous fem', int K[, @tscalar alpha[, ivec CVIDX]])</literal></para>
62
63 <para> Assigns a classical (Lagrange polynomial) discontinuous fem or order K.
64
65 Similar to gf_mesh_fem_set(mesh_fem MF, 'classical fem') except that
66 FEM_PK_DISCONTINUOUS is used. Param <literal>alpha</literal> the node inset,
67 <latex style="text"><![CDATA[0 \leq alpha < 1]]></latex>, where 0 implies usual dof nodes, greater values
68 move the nodes toward the center of gravity, and 1 means that all
69 degrees of freedom collapse on the center of gravity.
70 </para>
71 </listitem>
72
73 <listitem>
74 <para><literal>gf_mesh_fem_set(mesh_fem MF, 'qdim', int Q)</literal></para>
75
76 <para> Change the <literal>Q</literal> dimension of the field that is interpolated by the mesh_fem.
77
78 <literal>Q = 1</literal> means that the mesh_fem describes a scalar field, <literal>Q = N</literal> means
79 that the mesh_fem describes a vector field of dimension N.
80 </para>
81 </listitem>
82
83 <listitem>
84 <para><literal>gf_mesh_fem_set(mesh_fem MF, 'reduction matrices', mat R, mat E)</literal></para>
85
86 <para> Set the reduction and extension matrices and valid their use.
87 </para>
88 </listitem>
89
90 <listitem>
91 <para><literal>gf_mesh_fem_set(mesh_fem MF, 'reduction', int s)</literal></para>
92
93 <para> Set or unset the use of the reduction/extension matrices.
94 </para>
95 </listitem>
96
97 <listitem>
98 <para><literal>gf_mesh_fem_set(mesh_fem MF, 'reduce meshfem', mat RM)</literal></para>
99
100 <para> Set reduction mesh fem
101 This function selects the degrees of freedom of the finite element
102 method by selecting a set of independent vectors of the matrix RM.
103 The numer of columns of RM should corresponds to the number of degrees
104 of fredoom of the finite element method.
105 </para>
106 </listitem>
107
108 <listitem>
109 <para><literal>gf_mesh_fem_set(mesh_fem MF, 'dof partition', ivec DOFP)</literal></para>
110
111 <para> Change the 'dof_partition' array.
112
113 <literal>DOFP</literal> is a vector holding a integer value for each convex of the mesh_fem.
114 See gf_mesh_fem_get(mesh_fem MF, 'dof partition') for a description of "dof partition".
115 </para>
116 </listitem>
117
118 <listitem>
119 <para><literal>gf_mesh_fem_set(mesh_fem MF, 'set partial', ivec DOFs[, ivec RCVs])</literal></para>
120
121 <para> Can only be applied to a partial mesh_fem. Change the subset of the
122 degrees of freedom of <literal>mf</literal>.
123
124 If <literal>RCVs</literal> is given, no FEM will be put on the convexes listed
125 in <literal>RCVs</literal>.
126 </para>
127 </listitem>
128
129 </itemizedlist>
130 </refsection>
131
132 <refsection>
133 <title>See Also</title>
134 <simplelist type="inline">
135 <member><link linkend="getfem_types">getfem types</link></member>
136 </simplelist>
137 </refsection>
138
139 <refsection>
140 <title>Authors</title>
141 <para>Y. Collette</para>
142 </refsection>
143
144 </refentry>
+0
-503
interface/src/scilab/help/en_US/gf_mesh_get.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_mesh_get" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_mesh_get</refname>
11 <refpurpose> General mesh inquiry function. All these functions accept also a
12 mesh_fem argument instead of a mesh M (in that case, the mesh_fem
13 linked mesh will be used).
14 </refpurpose>
15 </refnamediv>
16
17 <refsynopsisdiv>
18 <title>Calling Sequence</title>
19
20 <synopsis>d = gf_mesh_get(mesh M, 'dim')</synopsis>
21 <synopsis>np = gf_mesh_get(mesh M, 'nbpts')</synopsis>
22 <synopsis>nc = gf_mesh_get(mesh M, 'nbcvs')</synopsis>
23 <synopsis>P = gf_mesh_get(mesh M, 'pts'[, ivec PIDs])</synopsis>
24 <synopsis>Pid = gf_mesh_get(mesh M, 'pid')</synopsis>
25 <synopsis>PIDs = gf_mesh_get(mesh M, 'pid in faces', imat CVFIDs)</synopsis>
26 <synopsis>PIDs = gf_mesh_get(mesh M, 'pid in cvids', imat CVIDs)</synopsis>
27 <synopsis>PIDs = gf_mesh_get(mesh M, 'pid in regions', imat RIDs)</synopsis>
28 <synopsis>PIDs = gf_mesh_get(mesh M, 'pid from coords', mat PTS[, scalar radius=0])</synopsis>
29 <synopsis>{Pid, IDx} = gf_mesh_get(mesh M, 'pid from cvid'[, imat CVIDs])</synopsis>
30 <synopsis>{Pts, IDx} = gf_mesh_get(mesh M, 'pts from cvid'[, imat CVIDs])</synopsis>
31 <synopsis>CVid = gf_mesh_get(mesh M, 'cvid')</synopsis>
32 <synopsis>m = gf_mesh_get(mesh M, 'max pid')</synopsis>
33 <synopsis>m = gf_mesh_get(mesh M, 'max cvid')</synopsis>
34 <synopsis>[E,C] = gf_mesh_get(mesh M, 'edges' [, CVLST][, 'merge'])</synopsis>
35 <synopsis>[E,C] = gf_mesh_get(mesh M, 'curved edges', int N [, CVLST])</synopsis>
36 <synopsis>PIDs = gf_mesh_get(mesh M, 'orphaned pid')</synopsis>
37 <synopsis>CVIDs = gf_mesh_get(mesh M, 'cvid from pid', ivec PIDs[, bool share=False])</synopsis>
38 <synopsis>CVFIDs = gf_mesh_get(mesh M, 'faces from pid', ivec PIDs)</synopsis>
39 <synopsis>CVFIDs = gf_mesh_get(mesh M, 'outer faces'[, CVIDs])</synopsis>
40 <synopsis>CVFIDs = gf_mesh_get(mesh M, 'faces from cvid'[, ivec CVIDs][, 'merge'])</synopsis>
41 <synopsis>[mat T] = gf_mesh_get(mesh M, 'triangulated surface', int Nrefine [,CVLIST])</synopsis>
42 <synopsis>N = gf_mesh_get(mesh M, 'normal of face', int cv, int f[, int nfpt])</synopsis>
43 <synopsis>N = gf_mesh_get(mesh M, 'normal of faces', imat CVFIDs)</synopsis>
44 <synopsis>Q = gf_mesh_get(mesh M, 'quality'[, ivec CVIDs])</synopsis>
45 <synopsis>A = gf_mesh_get(mesh M, 'convex area'[, ivec CVIDs])</synopsis>
46 <synopsis>A = gf_mesh_get(mesh M, 'convex radius'[, ivec CVIDs])</synopsis>
47 <synopsis>{S, CV2S} = gf_mesh_get(mesh M, 'cvstruct'[, ivec CVIDs])</synopsis>
48 <synopsis>{GT, CV2GT} = gf_mesh_get(mesh M, 'geotrans'[, ivec CVIDs])</synopsis>
49 <synopsis>RIDs = gf_mesh_get(mesh M, 'boundaries')</synopsis>
50 <synopsis>RIDs = gf_mesh_get(mesh M, 'regions')</synopsis>
51 <synopsis>RIDs = gf_mesh_get(mesh M, 'boundary')</synopsis>
52 <synopsis>CVFIDs = gf_mesh_get(mesh M, 'region', ivec RIDs)</synopsis>
53 <synopsis>gf_mesh_get(mesh M, 'save', string filename)</synopsis>
54 <synopsis>s = gf_mesh_get(mesh M, 'char')</synopsis>
55 <synopsis>gf_mesh_get(mesh M, 'export to vtk', string filename, ... [,'ascii'][,'quality'])</synopsis>
56 <synopsis>gf_mesh_get(mesh M, 'export to dx', string filename, ... [,'ascii'][,'append'][,'as',string name,[,'serie',string serie_name]][,'edges'])</synopsis>
57 <synopsis>gf_mesh_get(mesh M, 'export to pos', string filename[, string name])</synopsis>
58 <synopsis>z = gf_mesh_get(mesh M, 'memsize')</synopsis>
59 <synopsis>gf_mesh_get(mesh M, 'display')</synopsis>
60 </refsynopsisdiv>
61
62 <refsection>
63 <title>Description</title>
64 <para> General mesh inquiry function. All these functions accept also a
65 mesh_fem argument instead of a mesh M (in that case, the mesh_fem
66 linked mesh will be used).
67 </para>
68 </refsection>
69
70 <refsection>
71 <title>Command list</title>
72
73 <itemizedlist>
74 <listitem>
75 <para><literal>d = gf_mesh_get(mesh M, 'dim')</literal></para>
76
77 <para> Get the dimension of the mesh (2 for a 2D mesh, etc).
78 </para>
79 </listitem>
80
81 <listitem>
82 <para><literal>np = gf_mesh_get(mesh M, 'nbpts')</literal></para>
83
84 <para> Get the number of points of the mesh.
85 </para>
86 </listitem>
87
88 <listitem>
89 <para><literal>nc = gf_mesh_get(mesh M, 'nbcvs')</literal></para>
90
91 <para> Get the number of convexes of the mesh.
92 </para>
93 </listitem>
94
95 <listitem>
96 <para><literal>P = gf_mesh_get(mesh M, 'pts'[, ivec PIDs])</literal></para>
97
98 <para> Return the list of point coordinates of the mesh.
99
100 Each column of the returned matrix contains the coordinates of one
101 point. If the optional argument <literal>PIDs</literal> was given, only the points
102 whose #id is listed in this vector are returned. Otherwise, the
103 returned matrix will have gf_mesh_get(mesh M, 'max_pid') columns, which might
104 be greater than gf_mesh_get(mesh M, 'nbpts') (if some points of the mesh have
105 been destroyed and no call to gf_mesh_set(mesh M, 'optimize structure') have
106 been issued). The columns corresponding to deleted points will be
107 filled with NaN. You can use gf_mesh_get(mesh M, 'pid') to filter such invalid
108 points.
109 </para>
110 </listitem>
111
112 <listitem>
113 <para><literal>Pid = gf_mesh_get(mesh M, 'pid')</literal></para>
114
115 <para> Return the list of points #id of the mesh.
116
117 Note that their numbering is not supposed to be contiguous from
118 1 to gf_mesh_get(mesh M, 'nbpts'),
119 especially if some points have been removed from the mesh. You
120 can use gf_mesh_set(mesh M, 'optimize_structure') to enforce a contiguous
121 numbering.
122 </para>
123 </listitem>
124
125 <listitem>
126 <para><literal>PIDs = gf_mesh_get(mesh M, 'pid in faces', imat CVFIDs)</literal></para>
127
128 <para> Search point #id listed in <literal>CVFIDs</literal>.
129
130 <literal>CVFIDs</literal> is a two-rows matrix, the first row lists convex #ids,
131 and the second lists face numbers. On return, <literal>PIDs</literal> is a
132 vector containing points #id.
133 </para>
134 </listitem>
135
136 <listitem>
137 <para><literal>PIDs = gf_mesh_get(mesh M, 'pid in cvids', imat CVIDs)</literal></para>
138
139 <para> Search point #id listed in <literal>CVIDs</literal>.
140
141 <literal>PIDs</literal> is a vector containing points #id.
142 </para>
143 </listitem>
144
145 <listitem>
146 <para><literal>PIDs = gf_mesh_get(mesh M, 'pid in regions', imat RIDs)</literal></para>
147
148 <para> Search point #id listed in <literal>RIDs</literal>.
149
150 <literal>PIDs</literal> is a vector containing points #id.
151 </para>
152 </listitem>
153
154 <listitem>
155 <para><literal>PIDs = gf_mesh_get(mesh M, 'pid from coords', mat PTS[, scalar radius=0])</literal></para>
156
157 <para> Search point #id whose coordinates are listed in <literal>PTS</literal>.
158
159 <literal>PTS</literal> is an array containing a list of point coordinates. On
160 return, <literal>PIDs</literal> is a vector containing points
161 #id for each point found in <literal>eps</literal> range, and -1 for those
162 which where not found in the mesh.
163 </para>
164 </listitem>
165
166 <listitem>
167 <para><literal>{Pid, IDx} = gf_mesh_get(mesh M, 'pid from cvid'[, imat CVIDs])</literal></para>
168
169 <para> Return the points attached to each convex of the mesh.
170
171 If <literal>CVIDs</literal> is omitted, all the convexes will be considered
172 (equivalent to <literal>CVIDs = gf_mesh_get(mesh M, 'max cvid')</literal>). <literal>IDx</literal> is a
173 vector, length(IDx) = length(CVIDs)+1. <literal>Pid</literal> is a
174 vector containing the concatenated list of #id of
175 points of each convex in <literal>CVIDs</literal>. Each entry of <literal>IDx</literal> is the
176 position of the corresponding convex point list in <literal>Pid</literal>. Hence,
177 for example, the list of #id of points of the second convex is
178 Pid(IDx(2):IDx(3)-1).
179
180 If <literal>CVIDs</literal> contains convex #id which do not exist in the mesh,
181 their point list will be empty.
182 </para>
183 </listitem>
184
185 <listitem>
186 <para><literal>{Pts, IDx} = gf_mesh_get(mesh M, 'pts from cvid'[, imat CVIDs])</literal></para>
187
188 <para> Search point listed in <literal>CVID</literal>.
189
190 If <literal>CVIDs</literal> is omitted, all the convexes will be considered
191 (equivalent to <literal>CVIDs = gf_mesh_get(mesh M, 'max cvid')</literal>). <literal>IDx</literal> is a
192 vector, length(IDx) = length(CVIDs)+1. <literal>Pts</literal> is a
193 vector containing the concatenated list of points
194 of each convex in <literal>CVIDs</literal>. Each entry of <literal>IDx</literal> is the position
195 of the corresponding convex point list in <literal>Pts</literal>. Hence, for
196 example, the list of points of the second convex is
197 Pts(:,IDx(2):IDx(3)-1).
198
199 If <literal>CVIDs</literal> contains convex #id which do not exist in the mesh,
200 their point list will be empty.
201 </para>
202 </listitem>
203
204 <listitem>
205 <para><literal>CVid = gf_mesh_get(mesh M, 'cvid')</literal></para>
206
207 <para> Return the list of all convex #id.
208
209 Note that their numbering is not supposed to be contiguous from
210 1 to gf_mesh_get(mesh M, 'nbcvs'),
211 especially if some points have been removed from the mesh. You
212 can use gf_mesh_set(mesh M, 'optimize_structure') to enforce a contiguous
213 numbering.
214 </para>
215 </listitem>
216
217 <listitem>
218 <para><literal>m = gf_mesh_get(mesh M, 'max pid')</literal></para>
219
220 <para> Return the maximum #id of all points in the mesh (see 'max cvid').
221 </para>
222 </listitem>
223
224 <listitem>
225 <para><literal>m = gf_mesh_get(mesh M, 'max cvid')</literal></para>
226
227 <para> Return the maximum #id of all convexes in the mesh (see 'max pid').
228 </para>
229 </listitem>
230
231 <listitem>
232 <para><literal>[E,C] = gf_mesh_get(mesh M, 'edges' [, CVLST][, 'merge'])</literal></para>
233
234 <para> [OBSOLETE FUNCTION! will be removed in a future release]
235
236 Return the list of edges of mesh M for the convexes listed in the
237 row vector CVLST. E is a 2 x nb_edges matrix containing point
238 indices. If CVLST is omitted, then the edges of all convexes are
239 returned. If CVLST has two rows then the first row is supposed to
240 contain convex numbers, and the second face numbers, of which the
241 edges will be returned. If 'merge' is indicated, all common
242 edges of convexes are merged in a single edge. If the optional
243 output argument C is specified, it will contain the convex number
244 associated with each edge.
245 </para>
246 </listitem>
247
248 <listitem>
249 <para><literal>[E,C] = gf_mesh_get(mesh M, 'curved edges', int N [, CVLST])</literal></para>
250
251 <para> [OBSOLETE FUNCTION! will be removed in a future release]
252
253 More sophisticated version of gf_mesh_get(mesh M, 'edges') designed for
254 curved elements. This one will return N (N>=2) points of the
255 (curved) edges. With N==2, this is equivalent to
256 gf_mesh_get(mesh M, 'edges'). Since the points are no more always part of
257 the mesh, their coordinates are returned instead of points
258 number, in the array E which is a [ mesh_dim x 2 x nb_edges ]
259 array. If the optional output argument C is specified, it will
260 contain the convex number associated with each edge.
261 </para>
262 </listitem>
263
264 <listitem>
265 <para><literal>PIDs = gf_mesh_get(mesh M, 'orphaned pid')</literal></para>
266
267 <para> Search point #id which are not linked to a convex.
268 </para>
269 </listitem>
270
271 <listitem>
272 <para><literal>CVIDs = gf_mesh_get(mesh M, 'cvid from pid', ivec PIDs[, bool share=False])</literal></para>
273
274 <para> Search convex #ids related with the point #ids given in <literal>PIDs</literal>.
275
276 If <literal>share=False</literal>, search convex whose vertex #ids are in <literal>PIDs</literal>.
277 If <literal>share=True</literal>, search convex #ids that share the point #ids
278 given in <literal>PIDs</literal>. <literal>CVIDs</literal> is a vector (possibly
279 empty).
280 </para>
281 </listitem>
282
283 <listitem>
284 <para><literal>CVFIDs = gf_mesh_get(mesh M, 'faces from pid', ivec PIDs)</literal></para>
285
286 <para> Return the convex faces whose vertex #ids are in <literal>PIDs</literal>.
287
288 <literal>CVFIDs</literal> is a two-rows matrix, the first row lists convex #ids,
289 and the second lists face numbers (local number in the convex).
290 For a convex face to be returned, EACH of its points have to be
291 listed in <literal>PIDs</literal>.
292 </para>
293 </listitem>
294
295 <listitem>
296 <para><literal>CVFIDs = gf_mesh_get(mesh M, 'outer faces'[, CVIDs])</literal></para>
297
298 <para> Return the faces which are not shared by two convexes.
299
300 <literal>CVFIDs</literal> is a two-rows matrix, the first row lists convex #ids,
301 and the second lists face numbers (local number in the convex).
302 If <literal>CVIDs</literal> is not given, all convexes are considered, and it
303 basically returns the mesh boundary. If <literal>CVIDs</literal> is given, it
304 returns the boundary of the convex set whose #ids are listed
305 in <literal>CVIDs</literal>.
306 </para>
307 </listitem>
308
309 <listitem>
310 <para><literal>CVFIDs = gf_mesh_get(mesh M, 'faces from cvid'[, ivec CVIDs][, 'merge'])</literal></para>
311
312 <para> Return a list of convexes faces from a list of convex #id.
313
314 <literal>CVFIDs</literal> is a two-rows matrix, the first row lists convex #ids,
315 and the second lists face numbers (local number in the convex).
316 If <literal>CVIDs</literal> is not given, all convexes are considered. The optional
317 argument 'merge' merges faces shared by the convex of <literal>CVIDs</literal>.
318 </para>
319 </listitem>
320
321 <listitem>
322 <para><literal>[mat T] = gf_mesh_get(mesh M, 'triangulated surface', int Nrefine [,CVLIST])</literal></para>
323
324 <para> [DEPRECATED FUNCTION! will be removed in a future release]
325
326 Similar function to gf_mesh_get(mesh M, 'curved edges') : split (if
327 necessary, i.e. if the geometric transformation if non-linear)
328 each face into sub-triangles and return their coordinates in T
329 (see also gf_compute('eval on P1 tri mesh'))
330 </para>
331 </listitem>
332
333 <listitem>
334 <para><literal>N = gf_mesh_get(mesh M, 'normal of face', int cv, int f[, int nfpt])</literal></para>
335
336 <para> Evaluates the normal of convex <literal>cv</literal>, face <literal>f</literal> at the <literal>nfpt</literal> point of the face.
337
338 If <literal>nfpt</literal> is not specified, then the normal is evaluated at each
339 geometrical node of the face.
340 </para>
341 </listitem>
342
343 <listitem>
344 <para><literal>N = gf_mesh_get(mesh M, 'normal of faces', imat CVFIDs)</literal></para>
345
346 <para> Evaluates (at face centers) the normals of convexes.
347
348 <literal>CVFIDs</literal> is supposed a two-rows matrix, the first row lists convex
349 #ids, and the second lists face numbers (local number in the convex).
350 </para>
351 </listitem>
352
353 <listitem>
354 <para><literal>Q = gf_mesh_get(mesh M, 'quality'[, ivec CVIDs])</literal></para>
355
356 <para> Return an estimation of the quality of each convex (<latex style="text"><![CDATA[0 \leq Q \leq 1]]></latex>).
357 </para>
358 </listitem>
359
360 <listitem>
361 <para><literal>A = gf_mesh_get(mesh M, 'convex area'[, ivec CVIDs])</literal></para>
362
363 <para> Return an estimate of the area of each convex.
364 </para>
365 </listitem>
366
367 <listitem>
368 <para><literal>A = gf_mesh_get(mesh M, 'convex radius'[, ivec CVIDs])</literal></para>
369
370 <para> Return an estimate of the radius of each convex.
371 </para>
372 </listitem>
373
374 <listitem>
375 <para><literal>{S, CV2S} = gf_mesh_get(mesh M, 'cvstruct'[, ivec CVIDs])</literal></para>
376
377 <para> Return an array of the convex structures.
378
379 If <literal>CVIDs</literal> is not given, all convexes are considered. Each convex
380 structure is listed once in <literal>S</literal>, and <literal>CV2S</literal> maps the convexes
381 indice in <literal>CVIDs</literal> to the indice of its structure in <literal>S</literal>.
382 </para>
383 </listitem>
384
385 <listitem>
386 <para><literal>{GT, CV2GT} = gf_mesh_get(mesh M, 'geotrans'[, ivec CVIDs])</literal></para>
387
388 <para> Returns an array of the geometric transformations.
389
390 See also gf_mesh_get(mesh M, 'cvstruct').
391 </para>
392 </listitem>
393
394 <listitem>
395 <para><literal>RIDs = gf_mesh_get(mesh M, 'boundaries')</literal></para>
396
397 <para> DEPRECATED FUNCTION. Use 'regions' instead.
398 </para>
399 </listitem>
400
401 <listitem>
402 <para><literal>RIDs = gf_mesh_get(mesh M, 'regions')</literal></para>
403
404 <para> Return the list of valid regions stored in the mesh.
405 </para>
406 </listitem>
407
408 <listitem>
409 <para><literal>RIDs = gf_mesh_get(mesh M, 'boundary')</literal></para>
410
411 <para> DEPRECATED FUNCTION. Use 'region' instead.
412 </para>
413 </listitem>
414
415 <listitem>
416 <para><literal>CVFIDs = gf_mesh_get(mesh M, 'region', ivec RIDs)</literal></para>
417
418 <para> Return the list of convexes/faces on the regions <literal>RIDs</literal>.
419
420 <literal>CVFIDs</literal> is a two-rows matrix, the first row lists convex #ids,
421 and the second lists face numbers (local number in the convex).
422 (and 0 when the whole convex is in the
423 regions).
424 </para>
425 </listitem>
426
427 <listitem>
428 <para><literal>gf_mesh_get(mesh M, 'save', string filename)</literal></para>
429
430 <para> Save the mesh object to an ascii file.
431
432 This mesh can be restored with gf_mesh('load', filename).
433 </para>
434 </listitem>
435
436 <listitem>
437 <para><literal>s = gf_mesh_get(mesh M, 'char')</literal></para>
438
439 <para> Output a string description of the mesh.
440 </para>
441 </listitem>
442
443 <listitem>
444 <para><literal>gf_mesh_get(mesh M, 'export to vtk', string filename, ... [,'ascii'][,'quality'])</literal></para>
445
446 <para> Exports a mesh to a VTK file .
447
448 If 'quality' is specified, an estimation of the quality of each
449 convex will be written to the file.
450
451 See also gf_mesh_fem_get(mesh_fem MF, 'export to vtk'), gf_slice_get(slice S, 'export to vtk').
452 </para>
453 </listitem>
454
455 <listitem>
456 <para><literal>gf_mesh_get(mesh M, 'export to dx', string filename, ... [,'ascii'][,'append'][,'as',string name,[,'serie',string serie_name]][,'edges'])</literal></para>
457
458 <para> Exports a mesh to an OpenDX file.
459
460 See also gf_mesh_fem_get(mesh_fem MF, 'export to dx'), gf_slice_get(slice S, 'export to dx').
461 </para>
462 </listitem>
463
464 <listitem>
465 <para><literal>gf_mesh_get(mesh M, 'export to pos', string filename[, string name])</literal></para>
466
467 <para> Exports a mesh to a POS file .
468
469 See also gf_mesh_fem_get(mesh_fem MF, 'export to pos'), gf_slice_get(slice S, 'export to pos').
470 </para>
471 </listitem>
472
473 <listitem>
474 <para><literal>z = gf_mesh_get(mesh M, 'memsize')</literal></para>
475
476 <para> Return the amount of memory (in bytes) used by the mesh.
477 </para>
478 </listitem>
479
480 <listitem>
481 <para><literal>gf_mesh_get(mesh M, 'display')</literal></para>
482
483 <para> displays a short summary for a mesh object.
484 </para>
485 </listitem>
486
487 </itemizedlist>
488 </refsection>
489
490 <refsection>
491 <title>See Also</title>
492 <simplelist type="inline">
493 <member><link linkend="getfem_types">getfem types</link></member>
494 </simplelist>
495 </refsection>
496
497 <refsection>
498 <title>Authors</title>
499 <para>Y. Collette</para>
500 </refsection>
501
502 </refentry>
+0
-133
interface/src/scilab/help/en_US/gf_mesh_im.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_mesh_im" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_mesh_im</refname>
11 <refpurpose> This object represents an integration method defined on a whole mesh (an
12 potentialy on its boundaries).
13 </refpurpose>
14 </refnamediv>
15
16 <refsynopsisdiv>
17 <title>Calling Sequence</title>
18
19 <synopsis>MIM = gf_mesh_im('load', string fname[, mesh m])</synopsis>
20 <synopsis>MIM = gf_mesh_im('from string', string s[, mesh m])</synopsis>
21 <synopsis>MIM = gf_mesh_im('clone', mesh_im mim)</synopsis>
22 <synopsis>MIM = gf_mesh_im('levelset', mesh_levelset mls, string where, integ im[, integ im_tip[, integ im_set]])</synopsis>
23 <synopsis>MIM = gf_mesh_im(mesh m, [{integ im|int im_degree}])</synopsis>
24 </refsynopsisdiv>
25
26 <refsection>
27 <title>Description</title>
28 <para>General constructor for mesh_im objects.</para>
29
30 <para> This object represents an integration method defined on a whole mesh (an
31 potentialy on its boundaries).
32 </para>
33 </refsection>
34
35 <refsection>
36 <title>Command list</title>
37
38 <itemizedlist>
39 <listitem>
40 <para><literal>MIM = gf_mesh_im('load', string fname[, mesh m])</literal></para>
41
42 <para> Load a mesh_im from a file.
43
44 If the mesh <literal>m</literal> is not supplied (this kind of file does not store the
45 mesh), then it is read from the file and its descriptor is returned as
46 the second output argument.
47 </para>
48 </listitem>
49
50 <listitem>
51 <para><literal>MIM = gf_mesh_im('from string', string s[, mesh m])</literal></para>
52
53 <para> Create a mesh_im object from its string description.
54
55 See also <literal></literal>gf_mesh_im_get(mesh_im MI, 'char')<literal></literal>
56 </para>
57 </listitem>
58
59 <listitem>
60 <para><literal>MIM = gf_mesh_im('clone', mesh_im mim)</literal></para>
61
62 <para> Create a copy of a mesh_im.
63 </para>
64 </listitem>
65
66 <listitem>
67 <para><literal>MIM = gf_mesh_im('levelset', mesh_levelset mls, string where, integ im[, integ im_tip[, integ im_set]])</literal></para>
68
69 <para> Build an integration method conformal to a partition defined
70 implicitely by a levelset.
71
72 The <literal>where</literal> argument define the domain of integration with respect to
73 the levelset, it has to be chosen among 'ALL', 'INSIDE', 'OUTSIDE' and
74 'BOUNDARY'.
75
76 it can be completed by a string defining the boolean operation
77 to define the integration domain when there is more than one levelset.
78
79 the syntax is very simple, for example if there are 3 different
80 levelset,
81
82 "a*b*c" is the intersection of the domains defined by each
83 levelset (this is the default behaviour if this function is not
84 called).
85
86 "a+b+c" is the union of their domains.
87
88 "c-(a+b)" is the domain of the third levelset minus the union of
89 the domains of the two others.
90
91 "!a" is the complementary of the domain of a (i.e. it is the
92 domain where a(x)>0)
93
94 The first levelset is always referred to with "a", the second
95 with "b", and so on.
96 for intance INSIDE(a*b*c)
97
98 CAUTION: this integration method will be defined only on the element
99 cut by the level-set. For the 'ALL', 'INSIDE' and 'OUTSIDE' options
100 it is mandatory to use the method <literal></literal>gf_mesh_im_set(mesh_im MI, 'integ')<literal></literal> to define
101 the integration method on the remaining elements.
102
103 </para>
104 </listitem>
105
106 <listitem>
107 <para><literal>MIM = gf_mesh_im(mesh m, [{integ im|int im_degree}])</literal></para>
108
109 <para> Build a new mesh_im object.
110
111 For convenience, optional arguments (<literal>im</literal> or <literal>im_degree</literal>) can be
112 provided, in that case a call to <literal></literal>gf_mesh_im_get(mesh_im MI, 'integ')<literal></literal> is issued
113 with these arguments.
114 </para>
115 </listitem>
116
117 </itemizedlist>
118 </refsection>
119
120 <refsection>
121 <title>See Also</title>
122 <simplelist type="inline">
123 <member><link linkend="getfem_types">getfem types</link></member>
124 </simplelist>
125 </refsection>
126
127 <refsection>
128 <title>Authors</title>
129 <para>Y. Collette</para>
130 </refsection>
131
132 </refentry>
+0
-153
interface/src/scilab/help/en_US/gf_mesh_im_get.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_mesh_im_get" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_mesh_im_get</refname>
11 <refpurpose> General function extracting information from mesh_im objects.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>{I, CV2I} = gf_mesh_im_get(mesh_im MI, 'integ'[, mat CVids])</synopsis>
19 <synopsis>CVids = gf_mesh_im_get(mesh_im MI, 'convex_index')</synopsis>
20 <synopsis>M = gf_mesh_im_get(mesh_im MI, 'eltm', eltm em, int cv [, int f])</synopsis>
21 <synopsis>Ip = gf_mesh_im_get(mesh_im MI, 'im_nodes'[, mat CVids])</synopsis>
22 <synopsis>gf_mesh_im_get(mesh_im MI, 'save',string filename[, 'with mesh'])</synopsis>
23 <synopsis>gf_mesh_im_get(mesh_im MI, 'char'[,'with mesh'])</synopsis>
24 <synopsis>gf_mesh_im_get(mesh_im MI, 'display')</synopsis>
25 <synopsis>m = gf_mesh_im_get(mesh_im MI, 'linked mesh')</synopsis>
26 <synopsis>z = gf_mesh_im_get(mesh_im MI, 'memsize')</synopsis>
27 </refsynopsisdiv>
28
29 <refsection>
30 <title>Description</title>
31 <para> General function extracting information from mesh_im objects.
32 </para>
33 </refsection>
34
35 <refsection>
36 <title>Command list</title>
37
38 <itemizedlist>
39 <listitem>
40 <para><literal>{I, CV2I} = gf_mesh_im_get(mesh_im MI, 'integ'[, mat CVids])</literal></para>
41
42 <para> Return a list of integration methods used by the mesh_im.
43
44 <literal>I</literal> is an array of all integ objects found in the convexes
45 given in <literal>CVids</literal>. If <literal>CV2I</literal> was supplied as an output argument, it
46 contains, for each convex listed in <literal>CVids</literal>, the index of its
47 correspounding integration method in <literal>I</literal>.
48
49 Convexes which are not part of the mesh, or convexes which do
50 not have any integration method have their correspounding entry
51 in <literal>CV2I</literal> set to -1.
52
53
54 </para>
55 </listitem>
56
57 <listitem>
58 <para><literal>CVids = gf_mesh_im_get(mesh_im MI, 'convex_index')</literal></para>
59
60 <para> Return the list of convexes who have a integration method.
61
62 Convexes who have the dummy IM_NONE method are not listed.
63 </para>
64 </listitem>
65
66 <listitem>
67 <para><literal>M = gf_mesh_im_get(mesh_im MI, 'eltm', eltm em, int cv [, int f])</literal></para>
68
69 <para> Return the elementary matrix (or tensor) integrated on the convex <literal>cv</literal>.
70
71 **WARNING**
72
73 Be sure that the fem used for the construction of <literal>em</literal> is compatible
74 with the fem assigned to element <literal>cv</literal> ! This is not checked by the
75 function ! If the argument <literal>f</literal> is given, then the elementary tensor
76 is integrated on the face <literal>f</literal> of <literal>cv</literal> instead of the whole convex.
77 </para>
78 </listitem>
79
80 <listitem>
81 <para><literal>Ip = gf_mesh_im_get(mesh_im MI, 'im_nodes'[, mat CVids])</literal></para>
82
83 <para> Return the coordinates of the integration points, with their weights.
84
85 <literal>CVids</literal> may be a list of convexes, or a list of convex faces, such
86 as returned by gf_mesh_get(mesh M, 'region')
87
88 **WARNING**
89
90 Convexes which are not part of the mesh, or convexes which
91 do not have an approximate integration method do not have
92 their corresponding entry (this has no meaning for exact
93 integration methods!).
94 </para>
95 </listitem>
96
97 <listitem>
98 <para><literal>gf_mesh_im_get(mesh_im MI, 'save',string filename[, 'with mesh'])</literal></para>
99
100 <para> Saves a mesh_im in a text file (and optionaly its linked mesh object).
101 </para>
102 </listitem>
103
104 <listitem>
105 <para><literal>gf_mesh_im_get(mesh_im MI, 'char'[,'with mesh'])</literal></para>
106
107 <para> Output a string description of the mesh_im.
108
109 By default, it does not include the description of the linked
110 mesh object.
111 </para>
112 </listitem>
113
114 <listitem>
115 <para><literal>gf_mesh_im_get(mesh_im MI, 'display')</literal></para>
116
117 <para> displays a short summary for a mesh_im object.
118 </para>
119 </listitem>
120
121 <listitem>
122 <para><literal>m = gf_mesh_im_get(mesh_im MI, 'linked mesh')</literal></para>
123
124 <para> Returns a reference to the mesh object linked to <literal>mim</literal>.
125 </para>
126 </listitem>
127
128 <listitem>
129 <para><literal>z = gf_mesh_im_get(mesh_im MI, 'memsize')</literal></para>
130
131 <para> Return the amount of memory (in bytes) used by the mesh_im object.
132
133 The result does not take into account the linked mesh object.
134 </para>
135 </listitem>
136
137 </itemizedlist>
138 </refsection>
139
140 <refsection>
141 <title>See Also</title>
142 <simplelist type="inline">
143 <member><link linkend="getfem_types">getfem types</link></member>
144 </simplelist>
145 </refsection>
146
147 <refsection>
148 <title>Authors</title>
149 <para>Y. Collette</para>
150 </refsection>
151
152 </refentry>
+0
-73
interface/src/scilab/help/en_US/gf_mesh_im_set.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_mesh_im_set" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_mesh_im_set</refname>
11 <refpurpose> General function for modifying mesh_im objects
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>gf_mesh_im_set(mesh_im MI, 'integ',{integ im|int im_degree}[, ivec CVids])</synopsis>
19 <synopsis>gf_mesh_im_set(mesh_im MI, 'adapt')</synopsis>
20 </refsynopsisdiv>
21
22 <refsection>
23 <title>Description</title>
24 <para> General function for modifying mesh_im objects
25 </para>
26 </refsection>
27
28 <refsection>
29 <title>Command list</title>
30
31 <itemizedlist>
32 <listitem>
33 <para><literal>gf_mesh_im_set(mesh_im MI, 'integ',{integ im|int im_degree}[, ivec CVids])</literal></para>
34
35 <para> Set the integration method.
36
37 Assign an integration method to all convexes whose #ids are
38 listed in <literal>CVids</literal>. If <literal>CVids</literal> is not given, the integration is
39 assigned to all convexes. It is possible to assign a specific
40 integration method with an integration method handle <literal>im</literal> obtained
41 via gf_integ('IM_SOMETHING'), or to let getfem choose a suitable
42 integration method with <literal>im_degree</literal> (choosen such that polynomials
43 of <latex style="text"><![CDATA[\text{degree} \leq \text{im\_degree}]]></latex> are exactly integrated.
44 If <literal>im_degree=-1</literal>, then the dummy integration method IM_NONE will
45 be used.)
46 </para>
47 </listitem>
48
49 <listitem>
50 <para><literal>gf_mesh_im_set(mesh_im MI, 'adapt')</literal></para>
51
52 <para> For a mesh_im levelset object only. Adapt the integration methods to a
53 change of the levelset function.
54 </para>
55 </listitem>
56
57 </itemizedlist>
58 </refsection>
59
60 <refsection>
61 <title>See Also</title>
62 <simplelist type="inline">
63 <member><link linkend="getfem_types">getfem types</link></member>
64 </simplelist>
65 </refsection>
66
67 <refsection>
68 <title>Authors</title>
69 <para>Y. Collette</para>
70 </refsection>
71
72 </refentry>
+0
-62
interface/src/scilab/help/en_US/gf_mesh_levelset.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_mesh_levelset" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_mesh_levelset</refname>
11 <refpurpose> General constructor for mesh_levelset objects. The role of this object is
12 to provide a mesh cut by a certain number of level_set. This object is
13 used to build conformal integration method (object mim and enriched finite
14 element methods (Xfem)).
15 </refpurpose>
16 </refnamediv>
17
18 <refsynopsisdiv>
19 <title>Calling Sequence</title>
20
21 <synopsis>MLS = gf_mesh_levelset(mesh m)</synopsis>
22 </refsynopsisdiv>
23
24 <refsection>
25 <title>Description</title>
26 <para>General constructor for mesh_levelset objects.</para>
27
28 <para> General constructor for mesh_levelset objects. The role of this object is
29 to provide a mesh cut by a certain number of level_set. This object is
30 used to build conformal integration method (object mim and enriched finite
31 element methods (Xfem)).
32 </para>
33 </refsection>
34
35 <refsection>
36 <title>Command list</title>
37
38 <itemizedlist>
39 <listitem>
40 <para><literal>MLS = gf_mesh_levelset(mesh m)</literal></para>
41
42 <para> Build a new mesh_levelset object from a mesh and returns its handle.
43 </para>
44 </listitem>
45
46 </itemizedlist>
47 </refsection>
48
49 <refsection>
50 <title>See Also</title>
51 <simplelist type="inline">
52 <member><link linkend="getfem_types">getfem types</link></member>
53 </simplelist>
54 </refsection>
55
56 <refsection>
57 <title>Authors</title>
58 <para>Y. Collette</para>
59 </refsection>
60
61 </refentry>
+0
-116
interface/src/scilab/help/en_US/gf_mesh_levelset_get.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_mesh_levelset_get" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_mesh_levelset_get</refname>
11 <refpurpose> General function for querying information about mesh_levelset objects.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>M = gf_mesh_levelset_get(mesh_levelset MLS, 'cut_mesh')</synopsis>
19 <synopsis>LM = gf_mesh_levelset_get(mesh_levelset MLS, 'linked_mesh')</synopsis>
20 <synopsis>nbls = gf_mesh_levelset_get(mesh_levelset MLS, 'nb_ls')</synopsis>
21 <synopsis>LS = gf_mesh_levelset_get(mesh_levelset MLS, 'levelsets')</synopsis>
22 <synopsis>CVIDs = gf_mesh_levelset_get(mesh_levelset MLS, 'crack_tip_convexes')</synopsis>
23 <synopsis>SIZE = gf_mesh_levelset_get(mesh_levelset MLS, 'memsize')</synopsis>
24 <synopsis>s = gf_mesh_levelset_get(mesh_levelset MLS, 'char')</synopsis>
25 <synopsis>gf_mesh_levelset_get(mesh_levelset MLS, 'display')</synopsis>
26 </refsynopsisdiv>
27
28 <refsection>
29 <title>Description</title>
30 <para> General function for querying information about mesh_levelset objects.
31 </para>
32 </refsection>
33
34 <refsection>
35 <title>Command list</title>
36
37 <itemizedlist>
38 <listitem>
39 <para><literal>M = gf_mesh_levelset_get(mesh_levelset MLS, 'cut_mesh')</literal></para>
40
41 <para> Return a mesh cut by the linked levelset's.
42 </para>
43 </listitem>
44
45 <listitem>
46 <para><literal>LM = gf_mesh_levelset_get(mesh_levelset MLS, 'linked_mesh')</literal></para>
47
48 <para> Return a reference to the linked mesh.
49 </para>
50 </listitem>
51
52 <listitem>
53 <para><literal>nbls = gf_mesh_levelset_get(mesh_levelset MLS, 'nb_ls')</literal></para>
54
55 <para> Return the number of linked levelset's.
56 </para>
57 </listitem>
58
59 <listitem>
60 <para><literal>LS = gf_mesh_levelset_get(mesh_levelset MLS, 'levelsets')</literal></para>
61
62 <para> Return a list of references to the linked levelset's.
63 </para>
64 </listitem>
65
66 <listitem>
67 <para><literal>CVIDs = gf_mesh_levelset_get(mesh_levelset MLS, 'crack_tip_convexes')</literal></para>
68
69 <para> Return the list of convex #id's of the linked mesh on
70 which have a tip of any linked levelset's.
71 </para>
72 </listitem>
73
74 <listitem>
75 <para><literal>SIZE = gf_mesh_levelset_get(mesh_levelset MLS, 'memsize')</literal></para>
76
77 <para> Return the amount of memory (in bytes) used by the mesh_levelset.
78 </para>
79 </listitem>
80
81 <listitem>
82 <para><literal>s = gf_mesh_levelset_get(mesh_levelset MLS, 'char')</literal></para>
83
84 <para> Output a (unique) string representation of the mesh_levelsetn.
85
86 This can be used to perform comparisons between two
87 different mesh_levelset objects.
88 This function is to be completed.
89
90 </para>
91 </listitem>
92
93 <listitem>
94 <para><literal>gf_mesh_levelset_get(mesh_levelset MLS, 'display')</literal></para>
95
96 <para> displays a short summary for a mesh_levelset object.
97 </para>
98 </listitem>
99
100 </itemizedlist>
101 </refsection>
102
103 <refsection>
104 <title>See Also</title>
105 <simplelist type="inline">
106 <member><link linkend="getfem_types">getfem types</link></member>
107 </simplelist>
108 </refsection>
109
110 <refsection>
111 <title>Authors</title>
112 <para>Y. Collette</para>
113 </refsection>
114
115 </refentry>
+0
-83
interface/src/scilab/help/en_US/gf_mesh_levelset_set.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_mesh_levelset_set" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_mesh_levelset_set</refname>
11 <refpurpose> General function for modification of mesh_levelset objects.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>gf_mesh_levelset_set(mesh_levelset MLS, 'add', levelset ls)</synopsis>
19 <synopsis>gf_mesh_levelset_set(mesh_levelset MLS, 'sup', levelset ls)</synopsis>
20 <synopsis>gf_mesh_levelset_set(mesh_levelset MLS, 'adapt')</synopsis>
21 </refsynopsisdiv>
22
23 <refsection>
24 <title>Description</title>
25 <para> General function for modification of mesh_levelset objects.
26 </para>
27 </refsection>
28
29 <refsection>
30 <title>Command list</title>
31
32 <itemizedlist>
33 <listitem>
34 <para><literal>gf_mesh_levelset_set(mesh_levelset MLS, 'add', levelset ls)</literal></para>
35
36 <para> Add a link to the levelset <literal>ls</literal>.
37
38 Only a reference is kept, no copy is done. In order to indicate
39 that the linked mesh is cut by a levelset one has to call this
40 method, where <literal>ls</literal> is an levelset object. An arbitrary number of
41 levelset can be added.
42
43 **WARNING**
44
45 The mesh of <literal>ls</literal> and the linked mesh must be the same.
46 </para>
47 </listitem>
48
49 <listitem>
50 <para><literal>gf_mesh_levelset_set(mesh_levelset MLS, 'sup', levelset ls)</literal></para>
51
52 <para> Remove a link to the levelset <literal>ls</literal>.
53 </para>
54 </listitem>
55
56 <listitem>
57 <para><literal>gf_mesh_levelset_set(mesh_levelset MLS, 'adapt')</literal></para>
58
59 <para> Do all the work (cut the convexes with the levelsets).
60
61 To initialice the mesh_levelset object or to actualize it when the
62 value of any levelset function is modified, one has to call
63 this method.
64 </para>
65 </listitem>
66
67 </itemizedlist>
68 </refsection>
69
70 <refsection>
71 <title>See Also</title>
72 <simplelist type="inline">
73 <member><link linkend="getfem_types">getfem types</link></member>
74 </simplelist>
75 </refsection>
76
77 <refsection>
78 <title>Authors</title>
79 <para>Y. Collette</para>
80 </refsection>
81
82 </refentry>
+0
-242
interface/src/scilab/help/en_US/gf_mesh_set.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_mesh_set" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_mesh_set</refname>
11 <refpurpose> General function for modification of a mesh object.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>PIDs = gf_mesh_set(mesh M, 'pts', mat PTS)</synopsis>
19 <synopsis>PIDs = gf_mesh_set(mesh M, 'add point', mat PTS)</synopsis>
20 <synopsis>gf_mesh_set(mesh M, 'del point', ivec PIDs)</synopsis>
21 <synopsis>CVIDs = gf_mesh_set(mesh M, 'add convex', geotrans GT, mat PTS)</synopsis>
22 <synopsis>gf_mesh_set(mesh M, 'del convex', mat CVIDs)</synopsis>
23 <synopsis>gf_mesh_set(mesh M, 'del convex of dim', ivec DIMs)</synopsis>
24 <synopsis>gf_mesh_set(mesh M, 'translate', vec V)</synopsis>
25 <synopsis>gf_mesh_set(mesh M, 'transform', mat T)</synopsis>
26 <synopsis>gf_mesh_set(mesh M, 'boundary', int rnum, mat CVFIDs)</synopsis>
27 <synopsis>gf_mesh_set(mesh M, 'region', int rnum, mat CVFIDs)</synopsis>
28 <synopsis>gf_mesh_set(mesh M, 'region intersect', int r1, int r2)</synopsis>
29 <synopsis>gf_mesh_set(mesh M, 'region merge', int r1, int r2)</synopsis>
30 <synopsis>gf_mesh_set(mesh M, 'region subtract', int r1, int r2)</synopsis>
31 <synopsis>gf_mesh_set(mesh M, 'delete boundary', int rnum, mat CVFIDs)</synopsis>
32 <synopsis>gf_mesh_set(mesh M, 'delete region', ivec RIDs)</synopsis>
33 <synopsis>gf_mesh_set(mesh M, 'merge', mesh m2)</synopsis>
34 <synopsis>gf_mesh_set(mesh M, 'optimize structure')</synopsis>
35 <synopsis>gf_mesh_set(mesh M, 'refine'[, ivec CVIDs])</synopsis>
36 </refsynopsisdiv>
37
38 <refsection>
39 <title>Description</title>
40 <para> General function for modification of a mesh object.
41 </para>
42 </refsection>
43
44 <refsection>
45 <title>Command list</title>
46
47 <itemizedlist>
48 <listitem>
49 <para><literal>PIDs = gf_mesh_set(mesh M, 'pts', mat PTS)</literal></para>
50
51 <para> Replace the coordinates of the mesh points with those given in <literal>PTS</literal>.
52 </para>
53 </listitem>
54
55 <listitem>
56 <para><literal>PIDs = gf_mesh_set(mesh M, 'add point', mat PTS)</literal></para>
57
58 <para> Insert new points in the mesh and return their #ids.
59
60 <literal>PTS</literal> should be an <literal></literal>nxm<literal></literal> matrix , where <literal></literal>n<literal></literal> is the mesh
61 dimension, and <literal></literal>m<literal></literal> is the number of points that will be
62 added to the mesh. On output, <literal>PIDs</literal> contains the point #ids
63 of these new points.
64
65 Remark: if some points are already part of the mesh (with a small
66 tolerance of approximately <literal></literal>1e-8<literal></literal>), they won't be inserted again,
67 and <literal>PIDs</literal> will contain the previously assigned #ids of these
68 points.
69 </para>
70 </listitem>
71
72 <listitem>
73 <para><literal>gf_mesh_set(mesh M, 'del point', ivec PIDs)</literal></para>
74
75 <para> Removes one or more points from the mesh.
76
77 <literal>PIDs</literal> should contain the point #ids, such as the one returned by
78 the 'add point' command.
79 </para>
80 </listitem>
81
82 <listitem>
83 <para><literal>CVIDs = gf_mesh_set(mesh M, 'add convex', geotrans GT, mat PTS)</literal></para>
84
85 <para> Add a new convex into the mesh.
86
87 The convex structure (triangle, prism,...) is given by <literal>GT</literal>
88 (obtained with gf_geotrans('...')), and its points are given by
89 the columns of <literal>PTS</literal>. On return, <literal>CVIDs</literal> contains the convex #ids.
90 <literal>PTS</literal> might be a 3-dimensional array in order to insert more than
91 one convex (or a two dimensional array correctly shaped according
92 to Fortran ordering).
93 </para>
94 </listitem>
95
96 <listitem>
97 <para><literal>gf_mesh_set(mesh M, 'del convex', mat CVIDs)</literal></para>
98
99 <para> Remove one or more convexes from the mesh.
100
101 <literal>CVIDs</literal> should contain the convexes #ids, such as the ones
102 returned by the 'add convex' command.
103 </para>
104 </listitem>
105
106 <listitem>
107 <para><literal>gf_mesh_set(mesh M, 'del convex of dim', ivec DIMs)</literal></para>
108
109 <para> Remove all convexes of dimension listed in <literal>DIMs</literal>.
110
111 For example; <literal></literal>gf_mesh_set(mesh M, 'del convex of dim', [1,2])<literal></literal> remove
112 all line segments, triangles and quadrangles.
113 </para>
114 </listitem>
115
116 <listitem>
117 <para><literal>gf_mesh_set(mesh M, 'translate', vec V)</literal></para>
118
119 <para> Translates each point of the mesh from <literal>V</literal>.
120 </para>
121 </listitem>
122
123 <listitem>
124 <para><literal>gf_mesh_set(mesh M, 'transform', mat T)</literal></para>
125
126 <para> Applies the matrix <literal>T</literal> to each point of the mesh.
127
128 Note that <literal>T</literal> is not required to be a <literal></literal>NxN<literal></literal> matrix (with
129 <literal></literal>N = gf_mesh_get(mesh M, 'dim')<literal></literal>). Hence it is possible to transform
130 a 2D mesh into a 3D one (and reciprocally).
131 </para>
132 </listitem>
133
134 <listitem>
135 <para><literal>gf_mesh_set(mesh M, 'boundary', int rnum, mat CVFIDs)</literal></para>
136
137 <para> DEPRECATED FUNCTION. Use 'region' instead.
138 </para>
139 </listitem>
140
141 <listitem>
142 <para><literal>gf_mesh_set(mesh M, 'region', int rnum, mat CVFIDs)</literal></para>
143
144 <para> Assigns the region number <literal>rnum</literal> to the convex faces (or convexes)
145 stored in each column of the matrix <literal>CVFIDs</literal>.
146
147 The first row of <literal>CVFIDs</literal> contains a convex #ids, and the second row
148 contains a face number in the convex (or 0
149 for the whole convex (regions are usually used to store a list of
150 convex faces, but you may also use them to store a list of convexes).
151
152 If a vector is provided (or a one row matrix) the region will represent
153 the corresponding set of convex.
154 </para>
155 </listitem>
156
157 <listitem>
158 <para><literal>gf_mesh_set(mesh M, 'region intersect', int r1, int r2)</literal></para>
159
160 <para> Replace the region number <literal>r1</literal> with its intersection with region number <literal>r2</literal>.
161 </para>
162 </listitem>
163
164 <listitem>
165 <para><literal>gf_mesh_set(mesh M, 'region merge', int r1, int r2)</literal></para>
166
167 <para> Merge region number <literal>r2</literal> into region number <literal>r1</literal>.
168 </para>
169 </listitem>
170
171 <listitem>
172 <para><literal>gf_mesh_set(mesh M, 'region subtract', int r1, int r2)</literal></para>
173
174 <para> Replace the region number <literal>r1</literal> with its difference with region
175 number <literal>r2</literal>.
176 </para>
177 </listitem>
178
179 <listitem>
180 <para><literal>gf_mesh_set(mesh M, 'delete boundary', int rnum, mat CVFIDs)</literal></para>
181
182 <para> DEPRECATED FUNCTION. Use 'delete region' instead.
183 </para>
184 </listitem>
185
186 <listitem>
187 <para><literal>gf_mesh_set(mesh M, 'delete region', ivec RIDs)</literal></para>
188
189 <para> Remove the regions whose #ids are listed in <literal>RIDs</literal>
190 </para>
191 </listitem>
192
193 <listitem>
194 <para><literal>gf_mesh_set(mesh M, 'merge', mesh m2)</literal></para>
195
196 <para> Merge with the mesh <literal>m2</literal>.
197
198 Overlapping points won't be duplicated. If <literal>m2</literal> is a mesh_fem object,
199 its linked mesh will be used.
200 </para>
201 </listitem>
202
203 <listitem>
204 <para><literal>gf_mesh_set(mesh M, 'optimize structure')</literal></para>
205
206 <para> Reset point and convex numbering.
207
208 After optimisation, the points (resp. convexes) will
209 be consecutively numbered from 1 to gf_mesh_get(mesh M, 'max pid')
210 (resp. gf_mesh_get(mesh M, 'max cvid')).
211 </para>
212 </listitem>
213
214 <listitem>
215 <para><literal>gf_mesh_set(mesh M, 'refine'[, ivec CVIDs])</literal></para>
216
217 <para> Use a Bank strategy for mesh refinement.
218
219 If <literal>CVIDs</literal> is not given, the whole mesh is refined. Note
220 that the regions, and the finite element methods and
221 integration methods of the mesh_fem and mesh_im objects linked
222 to this mesh will be automagically refined.
223 </para>
224 </listitem>
225
226 </itemizedlist>
227 </refsection>
228
229 <refsection>
230 <title>See Also</title>
231 <simplelist type="inline">
232 <member><link linkend="getfem_types">getfem types</link></member>
233 </simplelist>
234 </refsection>
235
236 <refsection>
237 <title>Authors</title>
238 <para>Y. Collette</para>
239 </refsection>
240
241 </refentry>
+0
-74
interface/src/scilab/help/en_US/gf_model.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_model" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_model</refname>
11 <refpurpose> model variables store the variables and the state data and the
12 description of a model. This includes the global tangent matrix, the right
13 hand side and the constraints. There are two kinds of models, the <literal>real</literal>
14 and the <literal>complex</literal> models.
15
16 model object is the evolution for getfem++ 4.0 of the mdstate object.
17 </refpurpose>
18 </refnamediv>
19
20 <refsynopsisdiv>
21 <title>Calling Sequence</title>
22
23 <synopsis>MD = gf_model('real')</synopsis>
24 <synopsis>MD = gf_model('complex')</synopsis>
25 </refsynopsisdiv>
26
27 <refsection>
28 <title>Description</title>
29 <para>General constructor for model objects.</para>
30
31 <para> model variables store the variables and the state data and the
32 description of a model. This includes the global tangent matrix, the right
33 hand side and the constraints. There are two kinds of models, the <literal>real</literal>
34 and the <literal>complex</literal> models.
35
36 model object is the evolution for getfem++ 4.0 of the mdstate object.
37 </para>
38 </refsection>
39
40 <refsection>
41 <title>Command list</title>
42
43 <itemizedlist>
44 <listitem>
45 <para><literal>MD = gf_model('real')</literal></para>
46
47 <para> Build a model for real unknowns.
48 </para>
49 </listitem>
50
51 <listitem>
52 <para><literal>MD = gf_model('complex')</literal></para>
53
54 <para> Build a model for complex unknowns.
55 </para>
56 </listitem>
57
58 </itemizedlist>
59 </refsection>
60
61 <refsection>
62 <title>See Also</title>
63 <simplelist type="inline">
64 <member><link linkend="getfem_types">getfem types</link></member>
65 </simplelist>
66 </refsection>
67
68 <refsection>
69 <title>Authors</title>
70 <para>Y. Collette</para>
71 </refsection>
72
73 </refentry>
+0
-424
interface/src/scilab/help/en_US/gf_model_get.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_model_get" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_model_get</refname>
11 <refpurpose> Get information from a model object.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>b = gf_model_get(model M, 'is_complex')</synopsis>
19 <synopsis>T = gf_model_get(model M, 'nbdof')</synopsis>
20 <synopsis>T = gf_model_get(model M, 'tangent_matrix')</synopsis>
21 <synopsis>gf_model_get(model M, 'rhs')</synopsis>
22 <synopsis>gf_model_get(model M, 'brick term rhs', int ind_brick[, int ind_term, int sym, int ind_iter])</synopsis>
23 <synopsis>z = gf_model_get(model M, 'memsize')</synopsis>
24 <synopsis>gf_model_get(model M, 'variable list')</synopsis>
25 <synopsis>gf_model_get(model M, 'brick list')</synopsis>
26 <synopsis>V = gf_model_get(model M, 'variable', string name[, int niter])</synopsis>
27 <synopsis>V = gf_model_get(model M, 'interpolation', string expr, {mesh_fem mf | vec pts, mesh m}[, int region[, int extrapolation[, int rg_source]]])</synopsis>
28 <synopsis>mf = gf_model_get(model M, 'mesh fem of variable', string name)</synopsis>
29 <synopsis>name = gf_model_get(model M, 'mult varname Dirichlet', int ind_brick)</synopsis>
30 <synopsis>I = gf_model_get(model M, 'interval of variable', string varname)</synopsis>
31 <synopsis>V = gf_model_get(model M, 'from variables')</synopsis>
32 <synopsis>gf_model_get(model M, 'assembly'[, string option])</synopsis>
33 <synopsis>{nbit, converged} = gf_model_get(model M, 'solve'[, ...])</synopsis>
34 <synopsis>gf_model_get(model M, 'test tangent matrix'[, scalar EPS[, int NB[, scalar scale]]])</synopsis>
35 <synopsis>gf_model_get(model M, 'test tangent matrix term', string varname1, string varname2[, scalar EPS[, int NB[, scalar scale]]])</synopsis>
36 <synopsis>V = gf_model_get(model M, 'compute isotropic linearized Von Mises or Tresca', string varname, string dataname_lambda, string dataname_mu, mesh_fem mf_vm[, string version])</synopsis>
37 <synopsis>V = gf_model_get(model M, 'compute Von Mises or Tresca', string varname, string lawname, string dataname, mesh_fem mf_vm[, string version])</synopsis>
38 <synopsis>V = gf_model_get(model M, 'finite strain elasticity Von Mises', string varname, string lawname, string params, mesh_fem mf_vm[, int region])</synopsis>
39 <synopsis>V = gf_model_get(model M, 'compute second Piola Kirchhoff tensor', string varname, string lawname, string dataname, mesh_fem mf_sigma)</synopsis>
40 <synopsis>V = gf_model_get(model M, 'compute elastoplasticity Von Mises or Tresca', string datasigma, mesh_fem mf_vm[, string version])</synopsis>
41 <synopsis>gf_model_get(model M, 'elastoplasticity next iter', mesh_im mim, string varname, string projname, string datalambda, string datamu, string datathreshold, string datasigma)</synopsis>
42 <synopsis>V = gf_model_get(model M, 'compute plastic part', mesh_im mim, mesh_fem mf_pl, string varname, string projname, string datalambda, string datamu, string datathreshold, string datasigma)</synopsis>
43 <synopsis>V = gf_model_get(model M, 'sliding data group name of large sliding contact brick', int indbrick)</synopsis>
44 <synopsis>V = gf_model_get(model M, 'displacement group name of large sliding contact brick', int indbrick)</synopsis>
45 <synopsis>V = gf_model_get(model M, 'transformation name of large sliding contact brick', int indbrick)</synopsis>
46 <synopsis>M = gf_model_get(model M, 'matrix term', int ind_brick, int ind_term)</synopsis>
47 <synopsis>s = gf_model_get(model M, 'char')</synopsis>
48 <synopsis>gf_model_get(model M, 'display')</synopsis>
49 </refsynopsisdiv>
50
51 <refsection>
52 <title>Description</title>
53 <para> Get information from a model object.
54 </para>
55 </refsection>
56
57 <refsection>
58 <title>Command list</title>
59
60 <itemizedlist>
61 <listitem>
62 <para><literal>b = gf_model_get(model M, 'is_complex')</literal></para>
63
64 <para> Return 0 is the model is real, 1 if it is complex.
65 </para>
66 </listitem>
67
68 <listitem>
69 <para><literal>T = gf_model_get(model M, 'nbdof')</literal></para>
70
71 <para> Return the total number of degrees of freedom of the model.
72 </para>
73 </listitem>
74
75 <listitem>
76 <para><literal>T = gf_model_get(model M, 'tangent_matrix')</literal></para>
77
78 <para> Return the tangent matrix stored in the model .
79 </para>
80 </listitem>
81
82 <listitem>
83 <para><literal>gf_model_get(model M, 'rhs')</literal></para>
84
85 <para> Return the right hand side of the tangent problem.
86 </para>
87 </listitem>
88
89 <listitem>
90 <para><literal>gf_model_get(model M, 'brick term rhs', int ind_brick[, int ind_term, int sym, int ind_iter])</literal></para>
91
92 <para> Gives the access to the part of the right hand side of a term
93 of a particular nonlinear brick. Does not account of the eventual
94 time dispatcher. An assembly of the rhs has to be done first.
95 <literal>ind_brick</literal> is the brick index. <literal>ind_term</literal> is the index of the
96 term inside the brick (default value : 1).
97 <literal>sym</literal> is to access to the second right hand side of for symmetric
98 terms acting on two different variables (default is 0).
99 <literal>ind_iter</literal> is the iteration number when time dispatchers are
100 used (default is 1).
101
102 </para>
103 </listitem>
104
105 <listitem>
106 <para><literal>z = gf_model_get(model M, 'memsize')</literal></para>
107
108 <para> Return a rough approximation of the amount of memory (in bytes) used by
109 the model.
110 </para>
111 </listitem>
112
113 <listitem>
114 <para><literal>gf_model_get(model M, 'variable list')</literal></para>
115
116 <para> print to the output the list of variables and constants of the model.
117 </para>
118 </listitem>
119
120 <listitem>
121 <para><literal>gf_model_get(model M, 'brick list')</literal></para>
122
123 <para> print to the output the list of bricks of the model.
124 </para>
125 </listitem>
126
127 <listitem>
128 <para><literal>V = gf_model_get(model M, 'variable', string name[, int niter])</literal></para>
129
130 <para> Gives the value of a variable or data.
131 </para>
132 </listitem>
133
134 <listitem>
135 <para><literal>V = gf_model_get(model M, 'interpolation', string expr, {mesh_fem mf | vec pts, mesh m}[, int region[, int extrapolation[, int rg_source]]])</literal></para>
136
137 <para> Interpolate a certain expression with respect to the mesh_fem <literal>mf</literal>
138 or the set of points <literal>pts</literal> on mesh <literal>m</literal>.
139 The expression has to be valid according to the high-level generic
140 assembly language possibly including references to the variables
141 and data of the model.
142
143 The options <literal>extrapolation</literal> and <literal>rg_source</literal> are specific to
144 interpolations with respect to a set of points <literal>pts</literal>.
145 </para>
146 </listitem>
147
148 <listitem>
149 <para><literal>mf = gf_model_get(model M, 'mesh fem of variable', string name)</literal></para>
150
151 <para> Gives access to the <literal>mesh_fem</literal> of a variable or data.
152 </para>
153 </listitem>
154
155 <listitem>
156 <para><literal>name = gf_model_get(model M, 'mult varname Dirichlet', int ind_brick)</literal></para>
157
158 <para> Gives the name of the multiplier variable for a Dirichlet brick.
159 If the brick is not a Dirichlet condition with multiplier brick,
160 this function has an undefined behavior
161 </para>
162 </listitem>
163
164 <listitem>
165 <para><literal>I = gf_model_get(model M, 'interval of variable', string varname)</literal></para>
166
167 <para> Gives the interval of the variable <literal>varname</literal> in the linear system of
168 the model.
169 </para>
170 </listitem>
171
172 <listitem>
173 <para><literal>V = gf_model_get(model M, 'from variables')</literal></para>
174
175 <para> Return the vector of all the degrees of freedom of the model consisting
176 of the concatenation of the variables of the model (useful
177 to solve your problem with you own solver).
178 </para>
179 </listitem>
180
181 <listitem>
182 <para><literal>gf_model_get(model M, 'assembly'[, string option])</literal></para>
183
184 <para> Assembly of the tangent system taking into account the terms
185 from all bricks. <literal>option</literal>, if specified, should be 'build_all',
186 'build_rhs', 'build_matrix' or 'pseudo_potential' (in that case,
187 the pseudo_potential is returned).
188 The default is to build the whole
189 tangent linear system (matrix and rhs). This function is useful
190 to solve your problem with you own solver.
191 </para>
192 </listitem>
193
194 <listitem>
195 <para><literal>{nbit, converged} = gf_model_get(model M, 'solve'[, ...])</literal></para>
196
197 <para> Run the standard getfem solver.
198
199 Note that you should be able to use your own solver if you want
200 (it is possible to obtain the tangent matrix and its right hand
201 side with the gf_model_get(model M, 'tangent matrix') etc.).
202
203 Various options can be specified:
204
205 - 'noisy' or 'very_noisy'
206 the solver will display some information showing the progress
207 (residual values etc.).
208 - 'max_iter', int NIT
209 set the maximum iterations numbers.
210 - 'max_res', @float RES
211 set the target residual value.
212 - 'diverged_res', @float RES
213 set the threshold value of the residual beyond which the iterative
214 method is considered to diverge (default is 1e200).
215 - 'lsolver', string SOLVER_NAME
216 select explicitely the solver used for the linear systems (the
217 default value is 'auto', which lets getfem choose itself).
218 Possible values are 'superlu', 'mumps' (if supported),
219 'cg/ildlt', 'gmres/ilu' and 'gmres/ilut'.
220 - 'lsearch', string LINE_SEARCH_NAME
221 select explicitely the line search method used for the linear systems (the
222 default value is 'default').
223 Possible values are 'simplest', 'systematic', 'quadratic' or 'basic'.
224 - 'with pseudo potential'
225 for nonlinear problems, the criterion of the line search will
226 be a pseudo potential instead of the residual. Still experimental since
227 not all bricks define a pseudo potential.
228
229 Return the number of iterations, if an iterative method is used.
230
231 Note that it is possible to disable some variables
232 (see gf_model_set(model M, 'disable variable') ) in order to
233 solve the problem only with respect to a subset of variables (the
234 disabled variables are the considered as data) for instance to
235 replace the global Newton strategy with a fixed point one.
236
237
238 </para>
239 </listitem>
240
241 <listitem>
242 <para><literal>gf_model_get(model M, 'test tangent matrix'[, scalar EPS[, int NB[, scalar scale]]])</literal></para>
243
244 <para> Test the consistency of the tangent matrix in some random positions
245 and random directions (useful to test newly created bricks).
246 <literal>EPS</literal> is the value of the small parameter for the finite difference
247 computation of the derivative is the random direction (default is 1E-6).
248 <literal>NN</literal> is the number of tests (default is 100). <literal>scale</literal> is a parameter
249 for the random position (default is 1, 0 is an acceptable value) around
250 the current position.
251 Each dof of the random position is chosen in the range
252 [current-scale, current+scale].
253
254 </para>
255 </listitem>
256
257 <listitem>
258 <para><literal>gf_model_get(model M, 'test tangent matrix term', string varname1, string varname2[, scalar EPS[, int NB[, scalar scale]]])</literal></para>
259
260 <para> Test the consistency of a part of the tangent matrix in some
261 random positions and random directions
262 (useful to test newly created bricks).
263 The increment is only made on variable <literal>varname2</literal> and tested on the
264 part of the residual corresponding to <literal>varname1</literal>. This means that
265 only the term (<literal>varname1</literal>, <literal>varname2</literal>) of the tangent matrix is tested.
266 <literal>EPS</literal> is the value of the small parameter for the finite difference
267 computation of the derivative is the random direction (default is 1E-6).
268 <literal>NN</literal> is the number of tests (default is 100). <literal>scale</literal> is a parameter
269 for the random position (default is 1, 0 is an acceptable value)
270 around the current position.
271 Each dof of the random position is chosen in the range
272 [current-scale, current+scale].
273
274 </para>
275 </listitem>
276
277 <listitem>
278 <para><literal>V = gf_model_get(model M, 'compute isotropic linearized Von Mises or Tresca', string varname, string dataname_lambda, string dataname_mu, mesh_fem mf_vm[, string version])</literal></para>
279
280 <para> Compute the Von-Mises stress or the Tresca stress of a field (only
281 valid for isotropic linearized elasticity in 3D). <literal>version</literal> should
282 be 'Von_Mises' or 'Tresca' ('Von_Mises' is the default).
283 </para>
284 </listitem>
285
286 <listitem>
287 <para><literal>V = gf_model_get(model M, 'compute Von Mises or Tresca', string varname, string lawname, string dataname, mesh_fem mf_vm[, string version])</literal></para>
288
289 <para> Compute on <literal>mf_vm</literal> the Von-Mises stress or the Tresca stress of a field
290 for nonlinear elasticity in 3D. <literal>lawname</literal> is the constitutive law which
291 could be 'SaintVenant Kirchhoff', 'Mooney Rivlin', 'neo Hookean' or
292 'Ciarlet Geymonat'.
293 <literal>dataname</literal> is a vector of parameters for the constitutive law. Its length
294 depends on the law. It could be a short vector of constant values or a
295 vector field described on a finite element method for variable coefficients.
296 <literal>version</literal> should be 'Von_Mises' or 'Tresca' ('Von_Mises' is the default).
297 </para>
298 </listitem>
299
300 <listitem>
301 <para><literal>V = gf_model_get(model M, 'finite strain elasticity Von Mises', string varname, string lawname, string params, mesh_fem mf_vm[, int region])</literal></para>
302
303 <para> Compute on <literal>mf_vm</literal> the Von-Mises stress of a field <literal>varname</literal>
304 for nonlinear elasticity in 3D. <literal>lawname</literal> is the constitutive law which
305 should be a valid name. <literal>params</literal> are the parameters law. It could be
306 a short vector of constant values or may depend on data or variables
307 of the model.
308 Uses the high-level generic assembly.
309
310 </para>
311 </listitem>
312
313 <listitem>
314 <para><literal>V = gf_model_get(model M, 'compute second Piola Kirchhoff tensor', string varname, string lawname, string dataname, mesh_fem mf_sigma)</literal></para>
315
316 <para> Compute on <literal>mf_sigma</literal> the second Piola Kirchhoff stress tensor of a field
317 for nonlinear elasticity in 3D. <literal>lawname</literal> is the constitutive law which
318 could be 'SaintVenant Kirchhoff', 'Mooney Rivlin', 'neo Hookean' or
319 'Ciarlet Geymonat'.
320 <literal>dataname</literal> is a vector of parameters for the constitutive law. Its length
321 depends on the law. It could be a short vector of constant values or a
322 vector field described on a finite element method for variable
323 coefficients.
324
325 </para>
326 </listitem>
327
328 <listitem>
329 <para><literal>V = gf_model_get(model M, 'compute elastoplasticity Von Mises or Tresca', string datasigma, mesh_fem mf_vm[, string version])</literal></para>
330
331 <para> Compute on <literal>mf_vm</literal> the Von-Mises or the Tresca stress of a field for plasticity and return it into the vector V.
332 <literal>datasigma</literal> is a vector which contains the stress constraints values supported by the mesh.
333 <literal>version</literal> should be 'Von_Mises' or 'Tresca' ('Von_Mises' is the default).
334 </para>
335 </listitem>
336
337 <listitem>
338 <para><literal>gf_model_get(model M, 'elastoplasticity next iter', mesh_im mim, string varname, string projname, string datalambda, string datamu, string datathreshold, string datasigma)</literal></para>
339
340 <para> Compute and save the stress constraints sigma for other hypothetical iterations.
341 'mim' is the integration method to use for the computation.
342 'varname' is the main variable of the problem.
343 'projname' is the type of projection to use. For the moment it could only be 'Von Mises' or 'VM'.
344 'datalambda' and 'datamu' are the Lame coefficients of the material.
345 'datasigma' is a vector which will contains the new stress constraints values.
346 </para>
347 </listitem>
348
349 <listitem>
350 <para><literal>V = gf_model_get(model M, 'compute plastic part', mesh_im mim, mesh_fem mf_pl, string varname, string projname, string datalambda, string datamu, string datathreshold, string datasigma)</literal></para>
351
352 <para> Compute on <literal>mf_pl</literal> the plastic part and return it into the vector V.
353 <literal>datasigma</literal> is a vector which contains the stress constraints values supported by the mesh.
354 </para>
355 </listitem>
356
357 <listitem>
358 <para><literal>V = gf_model_get(model M, 'sliding data group name of large sliding contact brick', int indbrick)</literal></para>
359
360 <para> Gives the name of the group of variables corresponding to the
361 sliding data for an existing large sliding contact brick.
362 </para>
363 </listitem>
364
365 <listitem>
366 <para><literal>V = gf_model_get(model M, 'displacement group name of large sliding contact brick', int indbrick)</literal></para>
367
368 <para> Gives the name of the group of variables corresponding to the
369 sliding data for an existing large sliding contact brick.
370 </para>
371 </listitem>
372
373 <listitem>
374 <para><literal>V = gf_model_get(model M, 'transformation name of large sliding contact brick', int indbrick)</literal></para>
375
376 <para> Gives the name of the group of variables corresponding to the
377 sliding data for an existing large sliding contact brick.
378 </para>
379 </listitem>
380
381 <listitem>
382 <para><literal>M = gf_model_get(model M, 'matrix term', int ind_brick, int ind_term)</literal></para>
383
384 <para> Gives the matrix term ind_term of the brick ind_brick if it exists
385
386 </para>
387 </listitem>
388
389 <listitem>
390 <para><literal>s = gf_model_get(model M, 'char')</literal></para>
391
392 <para> Output a (unique) string representation of the model.
393
394 This can be used to perform comparisons between two
395 different model objects.
396 This function is to be completed.
397
398 </para>
399 </listitem>
400
401 <listitem>
402 <para><literal>gf_model_get(model M, 'display')</literal></para>
403
404 <para> displays a short summary for a model object.
405 </para>
406 </listitem>
407
408 </itemizedlist>
409 </refsection>
410
411 <refsection>
412 <title>See Also</title>
413 <simplelist type="inline">
414 <member><link linkend="getfem_types">getfem types</link></member>
415 </simplelist>
416 </refsection>
417
418 <refsection>
419 <title>Authors</title>
420 <para>Y. Collette</para>
421 </refsection>
422
423 </refentry>
+0
-1686
interface/src/scilab/help/en_US/gf_model_set.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_model_set" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_model_set</refname>
11 <refpurpose> Modifies a model object.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>gf_model_set(model M, 'clear')</synopsis>
19 <synopsis>gf_model_set(model M, 'add fem variable', string name, mesh_fem mf[, int niter])</synopsis>
20 <synopsis>gf_model_set(model M, 'add filtered fem variable', string name, mesh_fem mf, int region[, int niter])</synopsis>
21 <synopsis>gf_model_set(model M, 'add variable', string name, int size[, int niter])</synopsis>
22 <synopsis>gf_model_set(model M, 'delete variable', string name)</synopsis>
23 <synopsis>gf_model_set(model M, 'resize variable', string name, int size)</synopsis>
24 <synopsis>gf_model_set(model M, 'add multiplier', string name, mesh_fem mf, string primalname[, mesh_im mim, int region][, int niter])</synopsis>
25 <synopsis>gf_model_set(model M, 'add im data', string name, mesh_imd mimd[, int niter]])</synopsis>
26 <synopsis>gf_model_set(model M, 'add fem data', string name, mesh_fem mf[, int qdim[, int niter]])</synopsis>
27 <synopsis>gf_model_set(model M, 'add initialized fem data', string name, mesh_fem mf, vec V)</synopsis>
28 <synopsis>gf_model_set(model M, 'add data', string name, int size[, int niter])</synopsis>
29 <synopsis>gf_model_set(model M, 'add initialized data', string name, vec V)</synopsis>
30 <synopsis>gf_model_set(model M, 'variable', string name, vec V[, int niter])</synopsis>
31 <synopsis>gf_model_set(model M, 'to variables', vec V)</synopsis>
32 <synopsis>gf_model_set(model M, 'delete brick', int ind_brick)</synopsis>
33 <synopsis>gf_model_set(model M, 'define variable group', string name[, string varname, ...])</synopsis>
34 <synopsis>gf_model_set(model M, 'add interpolate transformation from expression', string transname, mesh source_mesh, mesh target_mesh, string expr)</synopsis>
35 <synopsis>gf_model_set(model M, 'add raytracing transformation', string transname, scalar release_distance)</synopsis>
36 <synopsis>gf_model_set(model M, 'add master contact boundary to raytracing transformation', string transname, mesh m, string dispname, int region)</synopsis>
37 <synopsis>gf_model_set(model M, 'add slave contact boundary to raytracing transformation', string transname, mesh m, string dispname, int region)</synopsis>
38 <synopsis>gf_model_set(model M, 'add rigid obstacle to raytracing transformation', string transname, string expr, int N)</synopsis>
39 <synopsis>ind = gf_model_set(model M, 'add linear generic assembly brick', mesh_im mim, string expression[, int region[, int is_symmetric[, int is_coercive]]])</synopsis>
40 <synopsis>ind = gf_model_set(model M, 'add nonlinear generic assembly brick', mesh_im mim, string expression[, int region[, int is_symmetric[, int is_coercive]]])</synopsis>
41 <synopsis>ind = gf_model_set(model M, 'add source term generic assembly brick', mesh_im mim, string expression[, int region])</synopsis>
42 <synopsis>ind = gf_model_set(model M, 'add Laplacian brick', mesh_im mim, string varname[, int region])</synopsis>
43 <synopsis>ind = gf_model_set(model M, 'add generic elliptic brick', mesh_im mim, string varname, string dataname[, int region])</synopsis>
44 <synopsis>ind = gf_model_set(model M, 'add source term brick', mesh_im mim, string varname, string dataname[, int region[, string directdataname]])</synopsis>
45 <synopsis>ind = gf_model_set(model M, 'add normal source term brick', mesh_im mim, string varname, string dataname, int region)</synopsis>
46 <synopsis>ind = gf_model_set(model M, 'add Dirichlet condition with simplification', string varname, int region[, string dataname])</synopsis>
47 <synopsis>ind = gf_model_set(model M, 'add Dirichlet condition with multipliers', mesh_im mim, string varname, mult_description, int region[, string dataname])</synopsis>
48 <synopsis>ind = gf_model_set(model M, 'add Dirichlet condition with Nitsche method', mesh_im mim, string varname, string gamma0name, int region[, scalar theta][, string dataname])</synopsis>
49 <synopsis>ind = gf_model_set(model M, 'add Dirichlet condition with penalization', mesh_im mim, string varname, scalar coeff, int region[, string dataname, mesh_fem mf_mult])</synopsis>
50 <synopsis>ind = gf_model_set(model M, 'add normal Dirichlet condition with multipliers', mesh_im mim, string varname, mult_description, int region[, string dataname])</synopsis>
51 <synopsis>ind = gf_model_set(model M, 'add normal Dirichlet condition with penalization', mesh_im mim, string varname, scalar coeff, int region[, string dataname, mesh_fem mf_mult])</synopsis>
52 <synopsis>ind = gf_model_set(model M, 'add normal Dirichlet condition with Nitsche method', mesh_im mim, string varname, string gamma0name, int region[, scalar theta][, string dataname])</synopsis>
53 <synopsis>ind = gf_model_set(model M, 'add generalized Dirichlet condition with multipliers', mesh_im mim, string varname, mult_description, int region, string dataname, string Hname)</synopsis>
54 <synopsis>ind = gf_model_set(model M, 'add generalized Dirichlet condition with penalization', mesh_im mim, string varname, scalar coeff, int region, string dataname, string Hname[, mesh_fem mf_mult])</synopsis>
55 <synopsis>ind = gf_model_set(model M, 'add generalized Dirichlet condition with Nitsche method', mesh_im mim, string varname, string gamma0name, int region[, scalar theta], string dataname, string Hname)</synopsis>
56 <synopsis>ind = gf_model_set(model M, 'add pointwise constraints with multipliers', string varname, string dataname_pt[, string dataname_unitv] [, string dataname_val])</synopsis>
57 <synopsis>ind = gf_model_set(model M, 'add pointwise constraints with given multipliers', string varname, string multname, string dataname_pt[, string dataname_unitv] [, string dataname_val])</synopsis>
58 <synopsis>ind = gf_model_set(model M, 'add pointwise constraints with penalization', string varname, scalar coeff, string dataname_pt[, string dataname_unitv] [, string dataname_val])</synopsis>
59 <synopsis>gf_model_set(model M, 'change penalization coeff', int ind_brick, scalar coeff)</synopsis>
60 <synopsis>ind = gf_model_set(model M, 'add Helmholtz brick', mesh_im mim, string varname, string dataname[, int region])</synopsis>
61 <synopsis>ind = gf_model_set(model M, 'add Fourier Robin brick', mesh_im mim, string varname, string dataname, int region)</synopsis>
62 <synopsis>ind = gf_model_set(model M, 'add basic nonlinear brick', mesh_im mim, string varname, string f, string dfdu[, string dataname, int region])</synopsis>
63 <synopsis>ind = gf_model_set(model M, 'add constraint with multipliers', string varname, string multname, spmat B, vec L)</synopsis>
64 <synopsis>ind = gf_model_set(model M, 'add constraint with penalization', string varname, scalar coeff, spmat B, vec L)</synopsis>
65 <synopsis>ind = gf_model_set(model M, 'add explicit matrix', string varname1, string varname2, spmat B[, int issymmetric[, int iscoercive]])</synopsis>
66 <synopsis>ind = gf_model_set(model M, 'add explicit rhs', string varname, vec L)</synopsis>
67 <synopsis>gf_model_set(model M, 'set private matrix', int indbrick, spmat B)</synopsis>
68 <synopsis>gf_model_set(model M, 'set private rhs', int indbrick, vec B)</synopsis>
69 <synopsis>ind = gf_model_set(model M, 'add isotropic linearized elasticity brick', mesh_im mim, string varname, string dataname_lambda, string dataname_mu[, int region])</synopsis>
70 <synopsis>ind = gf_model_set(model M, 'add linear incompressibility brick', mesh_im mim, string varname, string multname_pressure[, int region[, string dataname_coeff]])</synopsis>
71 <synopsis>ind = gf_model_set(model M, 'add nonlinear elasticity brick', mesh_im mim, string varname, string constitutive_law, string dataname[, int region])</synopsis>
72 <synopsis>ind = gf_model_set(model M, 'add finite strain elasticity brick', mesh_im mim, string varname, string constitutive_law, string params[, int region])</synopsis>
73 <synopsis>ind = gf_model_set(model M, 'add elastoplasticity brick', mesh_im mim ,string projname, string varname, string datalambda, string datamu, string datathreshold, string datasigma[, int region])</synopsis>
74 <synopsis>ind = gf_model_set(model M, 'add nonlinear incompressibility brick', mesh_im mim, string varname, string multname_pressure[, int region])</synopsis>
75 <synopsis>ind = gf_model_set(model M, 'add finite strain incompressibility brick', mesh_im mim, string varname, string multname_pressure[, int region])</synopsis>
76 <synopsis>ind = gf_model_set(model M, 'add bilaplacian brick', mesh_im mim, string varname, string dataname [, int region])</synopsis>
77 <synopsis>ind = gf_model_set(model M, 'add Kirchhoff-Love plate brick', mesh_im mim, string varname, string dataname_D, string dataname_nu [, int region])</synopsis>
78 <synopsis>ind = gf_model_set(model M, 'add normal derivative source term brick', mesh_im mim, string varname, string dataname, int region)</synopsis>
79 <synopsis>ind = gf_model_set(model M, 'add Kirchhoff-Love Neumann term brick', mesh_im mim, string varname, string dataname_M, string dataname_divM, int region)</synopsis>
80 <synopsis>ind = gf_model_set(model M, 'add normal derivative Dirichlet condition with multipliers', mesh_im mim, string varname, mult_description, int region [, string dataname, int R_must_be_derivated])</synopsis>
81 <synopsis>ind = gf_model_set(model M, 'add normal derivative Dirichlet condition with penalization', mesh_im mim, string varname, scalar coeff, int region [, string dataname, int R_must_be_derivated])</synopsis>
82 <synopsis>ind = gf_model_set(model M, 'add mass brick', mesh_im mim, string varname[, string dataname_rho[, int region]])</synopsis>
83 <synopsis>ind = gf_model_set(model M, 'add basic d on dt brick', mesh_im mim, string varnameU, string dataname_dt[, string dataname_rho[, int region]])</synopsis>
84 <synopsis>ind = gf_model_set(model M, 'add basic d2 on dt2 brick', mesh_im mim, string varnameU, string datanameV, string dataname_dt, string dataname_alpha,[, string dataname_rho[, int region]])</synopsis>
85 <synopsis>gf_model_set(model M, 'add theta method dispatcher', ivec bricks_indices, string theta)</synopsis>
86 <synopsis>gf_model_set(model M, 'add midpoint dispatcher', ivec bricks_indices)</synopsis>
87 <synopsis>gf_model_set(model M, 'velocity update for order two theta method', string varnameU, string datanameV, string dataname_dt, string dataname_theta)</synopsis>
88 <synopsis>gf_model_set(model M, 'velocity update for Newmark scheme', int id2dt2_brick, string varnameU, string datanameV, string dataname_dt, string dataname_twobeta, string dataname_alpha)</synopsis>
89 <synopsis>gf_model_set(model M, 'disable bricks', ivec bricks_indices)</synopsis>
90 <synopsis>gf_model_set(model M, 'enable bricks', ivec bricks_indices)</synopsis>
91 <synopsis>gf_model_set(model M, 'disable variable', string varname)</synopsis>
92 <synopsis>gf_model_set(model M, 'enable variable', string varname)</synopsis>
93 <synopsis>gf_model_set(model M, 'first iter')</synopsis>
94 <synopsis>gf_model_set(model M, 'next iter')</synopsis>
95 <synopsis>ind = gf_model_set(model M, 'add basic contact brick', string varname_u, string multname_n[, string multname_t], string dataname_r, spmat BN[, spmat BT, string dataname_friction_coeff][, string dataname_gap[, string dataname_alpha[, int augmented_version[, string dataname_gamma, string dataname_wt]]])</synopsis>
96 <synopsis>gf_model_set(model M, 'contact brick set BN', int indbrick, spmat BN)</synopsis>
97 <synopsis>gf_model_set(model M, 'contact brick set BT', int indbrick, spmat BT)</synopsis>
98 <synopsis>ind = gf_model_set(model M, 'add nodal contact with rigid obstacle brick', mesh_im mim, string varname_u, string multname_n[, string multname_t], string dataname_r[, string dataname_friction_coeff], int region, string obstacle[, int augmented_version])</synopsis>
99 <synopsis>ind = gf_model_set(model M, 'add contact with rigid obstacle brick', mesh_im mim, string varname_u, string multname_n[, string multname_t], string dataname_r[, string dataname_friction_coeff], int region, string obstacle[, int augmented_version])</synopsis>
100 <synopsis>ind = gf_model_set(model M, 'add integral contact with rigid obstacle brick', mesh_im mim, string varname_u, string multname, string dataname_obstacle, string dataname_r [, string dataname_friction_coeff], int region [, int option [, string dataname_alpha [, string dataname_wt [, string dataname_gamma [, string dataname_vt]]]]])</synopsis>
101 <synopsis>ind = gf_model_set(model M, 'add penalized contact with rigid obstacle brick', mesh_im mim, string varname_u, string dataname_obstacle, string dataname_r [, string dataname_coeff], int region [, int option, string dataname_lambda, [, string dataname_alpha [, string dataname_wt]]])</synopsis>
102 <synopsis>ind = gf_model_set(model M, 'add Nitsche contact with rigid obstacle brick', mesh_im mim, string varname, string dataname_obstacle, string gamma0name, int region[, scalar theta[, string dataname_friction_coeff[, string dataname_alpha, string dataname_wt]]])</synopsis>
103 <synopsis>ind = gf_model_set(model M, 'add Nitsche midpoint contact with rigid obstacle brick', mesh_im mim, string varname, string dataname_obstacle, string gamma0name, int region, scalar theta, string dataname_friction_coeff, string dataname_alpha, string dataname_wt, int option)</synopsis>
104 <synopsis>ind = gf_model_set(model M, 'add Nitsche fictitious domain contact brick', mesh_im mim, string varname1, string varname2, string dataname_d1, string dataname_d2, string gamma0name [, scalar theta[, string dataname_friction_coeff[, string dataname_alpha, string dataname_wt1,string dataname_wt2]]])</synopsis>
105 <synopsis>ind = gf_model_set(model M, 'add Nitsche fictitious domain contact brick twopass', mesh_im mim, string varname1, string varname2, string dataname_d1, string dataname_d2, string gamma0name [, scalar theta[, string dataname_friction_coeff[, string dataname_alpha, string dataname_wt1,string dataname_wt2]]])</synopsis>
106 <synopsis>ind = gf_model_set(model M, 'add nodal contact between nonmatching meshes brick', mesh_im mim1[, mesh_im mim2], string varname_u1[, string varname_u2], string multname_n[, string multname_t], string dataname_r[, string dataname_fr], int rg1, int rg2[, int slave1, int slave2, int augmented_version])</synopsis>
107 <synopsis>ind = gf_model_set(model M, 'add nonmatching meshes contact brick', mesh_im mim1[, mesh_im mim2], string varname_u1[, string varname_u2], string multname_n[, string multname_t], string dataname_r[, string dataname_fr], int rg1, int rg2[, int slave1, int slave2, int augmented_version])</synopsis>
108 <synopsis>ind = gf_model_set(model M, 'add integral contact between nonmatching meshes brick', mesh_im mim, string varname_u1, string varname_u2, string multname, string dataname_r [, string dataname_friction_coeff], int region1, int region2 [, int option [, string dataname_alpha [, string dataname_wt1 , string dataname_wt2]]])</synopsis>
109 <synopsis>ind = gf_model_set(model M, 'add penalized contact between nonmatching meshes brick', mesh_im mim, string varname_u1, string varname_u2, string dataname_r [, string dataname_coeff], int region1, int region2 [, int option [, string dataname_lambda, [, string dataname_alpha [, string dataname_wt1, string dataname_wt2]]]])</synopsis>
110 <synopsis>ind = gf_model_set(model M, 'add integral large sliding contact brick raytracing', string dataname_r, scalar release_distance, [, string dataname_fr[, string dataname_alpha[, int version]]])</synopsis>
111 <synopsis>gf_model_set(model M, 'add rigid obstacle to large sliding contact brick', int indbrick, string expr, int N)</synopsis>
112 <synopsis>gf_model_set(model M, 'add master contact boundary to large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname[, string wname])</synopsis>
113 <synopsis>gf_model_set(model M, 'add slave contact boundary to large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname, string lambdaname[, string wname])</synopsis>
114 <synopsis>gf_model_set(model M, 'add master slave contact boundary to large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname, string lambdaname[, string wname])</synopsis>
115 <synopsis>ind = gf_model_set(model M, 'add integral large sliding contact brick raytrace', multi_contact_frame multi_contact, string dataname_r[, string dataname_fr[, string dataname_alpha]])</synopsis>
116 <synopsis>ind = gf_model_set(model M, 'add integral large sliding contact brick with field extension', mesh_im mim, string varname_u, string multname, string dataname_r, string dataname_fr, int rg)</synopsis>
117 <synopsis>ind = gf_model_set(model M, 'add boundary to large sliding contact brick', int indbrick, mesh_im mim, string varname_u, string multname, int rg)</synopsis>
118 </refsynopsisdiv>
119
120 <refsection>
121 <title>Description</title>
122 <para> Modifies a model object.
123 </para>
124 </refsection>
125
126 <refsection>
127 <title>Command list</title>
128
129 <itemizedlist>
130 <listitem>
131 <para><literal>gf_model_set(model M, 'clear')</literal></para>
132
133 <para> Clear the model.
134 </para>
135 </listitem>
136
137 <listitem>
138 <para><literal>gf_model_set(model M, 'add fem variable', string name, mesh_fem mf[, int niter])</literal></para>
139
140 <para> Add a variable to the model linked to a mesh_fem. <literal>name</literal> is the variable
141 name and <literal>niter</literal> is the optional number of version of the data stored,
142 for time integration schemes.
143 </para>
144 </listitem>
145
146 <listitem>
147 <para><literal>gf_model_set(model M, 'add filtered fem variable', string name, mesh_fem mf, int region[, int niter])</literal></para>
148
149 <para> Add a variable to the model linked to a mesh_fem. The variable is filtered
150 in the sense that only the dof on the region are considered.
151 <literal>name</literal> is the variable name and <literal>niter</literal> is the optional number of
152 version of the data stored, for time integration schemes.
153 </para>
154 </listitem>
155
156 <listitem>
157 <para><literal>gf_model_set(model M, 'add variable', string name, int size[, int niter])</literal></para>
158
159 <para> Add a variable to the model of constant size. <literal>name</literal> is the variable
160 name and <literal>niter</literal> is the optional number of version of the data stored,
161 for time integration schemes.
162 </para>
163 </listitem>
164
165 <listitem>
166 <para><literal>gf_model_set(model M, 'delete variable', string name)</literal></para>
167
168 <para> Delete a variable or a data from the model.
169 </para>
170 </listitem>
171
172 <listitem>
173 <para><literal>gf_model_set(model M, 'resize variable', string name, int size)</literal></para>
174
175 <para> Resize a constant size variable of the model. <literal>name</literal> is the variable
176 name.
177 </para>
178 </listitem>
179
180 <listitem>
181 <para><literal>gf_model_set(model M, 'add multiplier', string name, mesh_fem mf, string primalname[, mesh_im mim, int region][, int niter])</literal></para>
182
183 <para> Add a particular variable linked to a fem being a multiplier with
184 respect to a primal variable. The dof will be filtered with the
185 <literal></literal>gmm::range_basis<literal></literal> function applied on the terms of the model
186 which link the multiplier and the primal variable. This in order to
187 retain only linearly independant constraints on the primal variable.
188 Optimized for boundary multipliers. <literal>niter</literal> is the optional number
189 of version of the data stored, for time integration schemes.
190 </para>
191 </listitem>
192
193 <listitem>
194 <para><literal>gf_model_set(model M, 'add im data', string name, mesh_imd mimd[, int niter]])</literal></para>
195
196 <para> Add a data set to the model linked to a mesh_imd. <literal>name</literal> is the data
197 name and <literal>niter</literal> is the optional number of version of the data stored,
198 for time integration schemes.
199 </para>
200 </listitem>
201
202 <listitem>
203 <para><literal>gf_model_set(model M, 'add fem data', string name, mesh_fem mf[, int qdim[, int niter]])</literal></para>
204
205 <para> Add a data to the model linked to a mesh_fem. <literal>name</literal> is the data name,
206 <literal>qdim</literal> is the optional dimension of the data over the mesh_fem and
207 <literal>niter</literal> is the optional number of version of the data stored,
208 for time integration schemes.
209 </para>
210 </listitem>
211
212 <listitem>
213 <para><literal>gf_model_set(model M, 'add initialized fem data', string name, mesh_fem mf, vec V)</literal></para>
214
215 <para> Add a data to the model linked to a mesh_fem. <literal>name</literal> is the data name.
216 The data is initiakized with <literal>V</literal>. The data can be a scalar or vector
217 field.
218 </para>
219 </listitem>
220
221 <listitem>
222 <para><literal>gf_model_set(model M, 'add data', string name, int size[, int niter])</literal></para>
223
224 <para> Add a data to the model of constant size. <literal>name</literal> is the data name
225 and <literal>niter</literal> is the optional number of version of the data stored,
226 for time integration schemes.
227 </para>
228 </listitem>
229
230 <listitem>
231 <para><literal>gf_model_set(model M, 'add initialized data', string name, vec V)</literal></para>
232
233 <para> Add a fixed size data to the model linked to a mesh_fem.
234 <literal>name</literal> is the data name and <literal>V</literal> is the value of the data.
235 </para>
236 </listitem>
237
238 <listitem>
239 <para><literal>gf_model_set(model M, 'variable', string name, vec V[, int niter])</literal></para>
240
241 <para> Set the value of a variable or data. <literal>name</literal> is the data name
242 and <literal>niter</literal> is the optional number of version of the data stored,
243 for time integration schemes.
244 </para>
245 </listitem>
246
247 <listitem>
248 <para><literal>gf_model_set(model M, 'to variables', vec V)</literal></para>
249
250 <para> Set the value of the variables of the model with the vector <literal>V</literal>.
251 Typically, the vector <literal>V</literal> results of the solve of the tangent
252 linear system (useful to solve your problem with you own solver).
253 </para>
254 </listitem>
255
256 <listitem>
257 <para><literal>gf_model_set(model M, 'delete brick', int ind_brick)</literal></para>
258
259 <para> Delete a variable or a data from the model.
260 </para>
261 </listitem>
262
263 <listitem>
264 <para><literal>gf_model_set(model M, 'define variable group', string name[, string varname, ...])</literal></para>
265
266 <para> Defines a group of variables for the interpolation (mainly for the
267 raytracing interpolation transformation.
268 </para>
269 </listitem>
270
271 <listitem>
272 <para><literal>gf_model_set(model M, 'add interpolate transformation from expression', string transname, mesh source_mesh, mesh target_mesh, string expr)</literal></para>
273
274 <para> Add a transformation to the model from mesh <literal>source_mesh</literal> to mesh
275 <literal>target_mesh</literal> given by the expression <literal>expr</literal> which corresponds to a
276 high-level generic assembly expression which may contains some
277 variable of the model. CAUTION: the derivative of the
278 transformation with used variable is taken into account in the
279 computation of the tangen system. However, order two derivative is not
280 implemented, so such tranformation is not allowed in the definition
281 of a potential.
282 </para>
283 </listitem>
284
285 <listitem>
286 <para><literal>gf_model_set(model M, 'add raytracing transformation', string transname, scalar release_distance)</literal></para>
287
288 <para> Add a raytracing interpolate transformation called <literal>transname</literal> to a model
289 to be used by the generic assembly bricks.
290 CAUTION: For the moment, the derivative of the
291 transformation is not taken into account in the model solve.
292 </para>
293 </listitem>
294
295 <listitem>
296 <para><literal>gf_model_set(model M, 'add master contact boundary to raytracing transformation', string transname, mesh m, string dispname, int region)</literal></para>
297
298 <para> Add a master contact boundary with corresponding displacement variable
299 <literal>dispname</literal> on a specific boundary <literal>region</literal> to an existing raytracing
300 interpolate transformation called <literal>transname</literal>.
301 </para>
302 </listitem>
303
304 <listitem>
305 <para><literal>gf_model_set(model M, 'add slave contact boundary to raytracing transformation', string transname, mesh m, string dispname, int region)</literal></para>
306
307 <para> Add a slave contact boundary with corresponding displacement variable
308 <literal>dispname</literal> on a specific boundary <literal>region</literal> to an existing raytracing
309 interpolate transformation called <literal>transname</literal>.
310 </para>
311 </listitem>
312
313 <listitem>
314 <para><literal>gf_model_set(model M, 'add rigid obstacle to raytracing transformation', string transname, string expr, int N)</literal></para>
315
316 <para> Add a rigid obstacle whose geometry corresponds to the zero level-set
317 of the high-level generic assembly expression <literal>expr</literal>
318 to an existing raytracing interpolate transformation called <literal>transname</literal>.
319
320 </para>
321 </listitem>
322
323 <listitem>
324 <para><literal>ind = gf_model_set(model M, 'add linear generic assembly brick', mesh_im mim, string expression[, int region[, int is_symmetric[, int is_coercive]]])</literal></para>
325
326 <para> Adds a matrix term given by the assembly string <literal>expr</literal> which will
327 be assembled in region <literal>region</literal> and with the integration method <literal>mim</literal>.
328 Only the matrix term will be taken into account, assuming that it is
329 linear.
330 The advantage of declaring a term linear instead of nonlinear is that
331 it will be assembled only once and no assembly is necessary for the
332 residual.
333 Take care that if the expression contains some variables and if the
334 expression is a potential or of first order (i.e. describe the weak
335 form, not the derivative of the weak form), the expression will be
336 derivated with respect to all variables.
337 You can specify if the term is symmetric, coercive or not.
338 If you are not sure, the better is to declare the term not symmetric
339 and not coercive. But some solvers (conjugate gradient for instance)
340 are not allowed for non-coercive problems.
341 <literal>brickname</literal> is an otpional name for the brick.
342 </para>
343 </listitem>
344
345 <listitem>
346 <para><literal>ind = gf_model_set(model M, 'add nonlinear generic assembly brick', mesh_im mim, string expression[, int region[, int is_symmetric[, int is_coercive]]])</literal></para>
347
348 <para> Adds a nonlinear term given by the assembly string <literal>expr</literal> which will
349 be assembled in region <literal>region</literal> and with the integration method <literal>mim</literal>.
350 The expression can describe a potential or a weak form. Second order
351 terms (i.e. containing second order test functions, Test2) are not
352 allowed.
353 You can specify if the term is symmetric, coercive or not.
354 If you are not sure, the better is to declare the term not symmetric
355 and not coercive. But some solvers (conjugate gradient for instance)
356 are not allowed for non-coercive problems.
357 <literal>brickname</literal> is an otpional name for the brick.
358 </para>
359 </listitem>
360
361 <listitem>
362 <para><literal>ind = gf_model_set(model M, 'add source term generic assembly brick', mesh_im mim, string expression[, int region])</literal></para>
363
364 <para> Adds a source term given by the assembly string <literal>expr</literal> which will
365 be assembled in region <literal>region</literal> and with the integration method <literal>mim</literal>.
366 Only the residual term will be taken into account.
367 Take care that if the expression contains some variables and if the
368 expression is a potential, the expression will be
369 derivated with respect to all variables.
370 <literal>brickname</literal> is an otpional name for the brick.
371 </para>
372 </listitem>
373
374 <listitem>
375 <para><literal>ind = gf_model_set(model M, 'add Laplacian brick', mesh_im mim, string varname[, int region])</literal></para>
376
377 <para> Add a Laplacian term to the model relatively to the variable <literal>varname</literal>
378 (in fact with a minus : <latex style="text"><![CDATA[-\text{div}(\nabla u)]]></latex>).
379 If this is a vector valued variable, the Laplacian term is added
380 componentwise. <literal>region</literal> is an optional mesh region on which the term
381 is added. If it is not specified, it is added on the whole mesh. Return
382 the brick index in the model.
383 </para>
384 </listitem>
385
386 <listitem>
387 <para><literal>ind = gf_model_set(model M, 'add generic elliptic brick', mesh_im mim, string varname, string dataname[, int region])</literal></para>
388
389 <para> Add a generic elliptic term to the model relatively to the variable <literal>varname</literal>.
390 The shape of the elliptic term depends both on the variable and the data.
391 This corresponds to a term
392 <latex style="text"><![CDATA[-\text{div}(a\nabla u)]]></latex>
393 where <latex style="text"><![CDATA[a]]></latex> is the data and <latex style="text"><![CDATA[u]]></latex> the variable. The data can be a scalar,
394 a matrix or an order four tensor. The variable can be vector valued or
395 not. If the data is a scalar or a matrix and the variable is vector
396 valued then the term is added componentwise. An order four tensor data
397 is allowed for vector valued variable only. The data can be constant or
398 describbed on a fem. Of course, when the data is a tensor describe on a
399 finite element method (a tensor field) the data can be a huge vector.
400 The components of the matrix/tensor have to be stored with the fortran
401 order (columnwise) in the data vector (compatibility with blas). The
402 symmetry of the given matrix/tensor is not verified (but assumed). If
403 this is a vector valued variable, the elliptic term is added
404 componentwise. <literal>region</literal> is an optional mesh region on which the term is
405 added. If it is not specified, it is added on the whole mesh. Return the
406 brick index in the model.
407 </para>
408 </listitem>
409
410 <listitem>
411 <para><literal>ind = gf_model_set(model M, 'add source term brick', mesh_im mim, string varname, string dataname[, int region[, string directdataname]])</literal></para>
412
413 <para> Add a source term to the model relatively to the variable <literal>varname</literal>.
414 The source term is represented by the data <literal>dataname</literal> which could be
415 constant or described on a fem. <literal>region</literal> is an optional mesh region
416 on which the term is added. An additional optional data <literal>directdataname</literal>
417 can be provided. The corresponding data vector will be directly added
418 to the right hand side without assembly. Note that when region is a
419 boundary, this brick allows to prescribe a nonzero Neumann boundary
420 condition. Return the brick index in the model.
421 </para>
422 </listitem>
423
424 <listitem>
425 <para><literal>ind = gf_model_set(model M, 'add normal source term brick', mesh_im mim, string varname, string dataname, int region)</literal></para>
426
427 <para> Add a source term on the variable <literal>varname</literal> on a boundary <literal>region</literal>.
428 This region should be a boundary. The source term is represented by the
429 data <literal>dataname</literal> which could be constant or described on a fem. A scalar
430 product with the outward normal unit vector to the boundary is performed.
431 The main aim of this brick is to represent a Neumann condition with a
432 vector data without performing the scalar product with the normal as a
433 pre-processing. Return the brick index in the model.
434 </para>
435 </listitem>
436
437 <listitem>
438 <para><literal>ind = gf_model_set(model M, 'add Dirichlet condition with simplification', string varname, int region[, string dataname])</literal></para>
439
440 <para> Adds a (simple) Dirichlet condition on the variable <literal>varname</literal> and
441 the mesh region <literal>region</literal>. The Dirichlet condition is prescribed by
442 a simple post-treatment of the final linear system (tangent system
443 for nonlinear problems) consisting of modifying the lines corresponding
444 to the degree of freedom of the variable on <literal>region</literal> (0 outside the
445 diagonal, 1 on the diagonal of the matrix and the expected value on
446 the right hand side).
447 The symmetry of the linear system is kept if all other bricks are
448 symmetric.
449 This brick is to be reserved for simple Dirichlet conditions (only dof
450 declared on the correspodning boundary are prescribed). The application
451 of this brick on reduced dof may be problematic. Intrinsic vectorial
452 finite element method are not supported.
453 <literal>dataname</literal> is the optional right hand side of the Dirichlet condition.
454 It could be constant (but in that case, it can only be applied to
455 Lagrange f.e.m.) or (important) described on the same finite
456 element method as <literal>varname</literal>.
457 Returns the brick index in the model.
458 </para>
459 </listitem>
460
461 <listitem>
462 <para><literal>ind = gf_model_set(model M, 'add Dirichlet condition with multipliers', mesh_im mim, string varname, mult_description, int region[, string dataname])</literal></para>
463
464 <para> Add a Dirichlet condition on the variable <literal>varname</literal> and the mesh
465 region <literal>region</literal>. This region should be a boundary. The Dirichlet
466 condition is prescribed with a multiplier variable described by
467 <literal>mult_description</literal>. If <literal>mult_description</literal> is a string this is assumed
468 to be the variable name corresponding to the multiplier (which should be
469 first declared as a multiplier variable on the mesh region in the model).
470 If it is a finite element method (mesh_fem object) then a multiplier
471 variable will be added to the model and build on this finite element
472 method (it will be restricted to the mesh region <literal>region</literal> and eventually
473 some conflicting dofs with some other multiplier variables will be
474 suppressed). If it is an integer, then a multiplier variable will be
475 added to the model and build on a classical finite element of degree
476 that integer. <literal>dataname</literal> is the optional right hand side of the
477 Dirichlet condition. It could be constant or described on a fem; scalar
478 or vector valued, depending on the variable on which the Dirichlet
479 condition is prescribed. Return the brick index in the model.
480 </para>
481 </listitem>
482
483 <listitem>
484 <para><literal>ind = gf_model_set(model M, 'add Dirichlet condition with Nitsche method', mesh_im mim, string varname, string gamma0name, int region[, scalar theta][, string dataname])</literal></para>
485
486 <para> Add a Dirichlet condition on the variable <literal>varname</literal> and the mesh
487 region <literal>region</literal>. This region should be a boundary. The Dirichlet
488 condition is prescribed with Nitsche's method. <literal>dataname</literal> is the optional
489 right hand side of the Dirichlet condition. It could be constant or
490 described on a fem; scalar or vector valued, depending on the variable
491 on which the Dirichlet condition is prescribed. <literal>gamma0name</literal> is the
492 Nitsche's method parameter. <literal>theta</literal> is a scalar value which can be
493 positive or negative. <literal>theta = 1</literal> corresponds to the standard symmetric
494 method which is conditionnaly coercive for <literal>gamma0</literal> small.
495 <literal>theta = -1</literal> corresponds to the skew-symmetric method which is
496 inconditionnaly coercive. <literal>theta = 0</literal> is the simplest method
497 for which the second derivative of the Neumann term is not necessary.
498 CAUTION: This brick has to be added in the model after all the bricks
499 corresponding to partial differential terms having a Neumann term.
500 Moreover, This brick can only be applied to bricks declaring their
501 Neumann terms. Returns the brick index in the model.
502
503 </para>
504 </listitem>
505
506 <listitem>
507 <para><literal>ind = gf_model_set(model M, 'add Dirichlet condition with penalization', mesh_im mim, string varname, scalar coeff, int region[, string dataname, mesh_fem mf_mult])</literal></para>
508
509 <para> Add a Dirichlet condition on the variable <literal>varname</literal> and the mesh
510 region <literal>region</literal>. This region should be a boundary. The Dirichlet
511 condition is prescribed with penalization. The penalization coefficient
512 is initially <literal>coeff</literal> and will be added to the data of the model.
513 <literal>dataname</literal> is the optional right hand side of the Dirichlet condition.
514 It could be constant or described on a fem; scalar or vector valued,
515 depending on the variable on which the Dirichlet condition is prescribed.
516 <literal>mf_mult</literal> is an optional parameter which allows to weaken the
517 Dirichlet condition specifying a multiplier space.
518 Return the brick index in the model.
519 </para>
520 </listitem>
521
522 <listitem>
523 <para><literal>ind = gf_model_set(model M, 'add normal Dirichlet condition with multipliers', mesh_im mim, string varname, mult_description, int region[, string dataname])</literal></para>
524
525 <para> Add a Dirichlet condition to the normal component of the vector
526 (or tensor) valued variable <literal>varname</literal> and the mesh
527 region <literal>region</literal>. This region should be a boundary. The Dirichlet
528 condition is prescribed with a multiplier variable described by
529 <literal>mult_description</literal>. If <literal>mult_description</literal> is a string this is assumed
530 to be the variable name corresponding to the multiplier (which should be
531 first declared as a multiplier variable on the mesh region in the model).
532 If it is a finite element method (mesh_fem object) then a multiplier
533 variable will be added to the model and build on this finite element
534 method (it will be restricted to the mesh region <literal>region</literal> and eventually
535 some conflicting dofs with some other multiplier variables will be
536 suppressed). If it is an integer, then a multiplier variable will be
537 added to the model and build on a classical finite element of degree
538 that integer. <literal>dataname</literal> is the optional right hand side of the
539 Dirichlet condition. It could be constant or described on a fem; scalar
540 or vector valued, depending on the variable on which the Dirichlet
541 condition is prescribed (scalar if the variable
542 is vector valued, vector if the variable is tensor valued).
543 Returns the brick index in the model.
544 </para>
545 </listitem>
546
547 <listitem>
548 <para><literal>ind = gf_model_set(model M, 'add normal Dirichlet condition with penalization', mesh_im mim, string varname, scalar coeff, int region[, string dataname, mesh_fem mf_mult])</literal></para>
549
550 <para> Add a Dirichlet condition to the normal component of the vector
551 (or tensor) valued variable <literal>varname</literal> and the mesh
552 region <literal>region</literal>. This region should be a boundary. The Dirichlet
553 condition is prescribed with penalization. The penalization coefficient
554 is initially <literal>coeff</literal> and will be added to the data of the model.
555 <literal>dataname</literal> is the optional right hand side of the Dirichlet condition.
556 It could be constant or described on a fem; scalar or vector valued,
557 depending on the variable on which the Dirichlet condition is prescribed
558 (scalar if the variable
559 is vector valued, vector if the variable is tensor valued).
560 <literal>mf_mult</literal> is an optional parameter which allows to weaken the
561 Dirichlet condition specifying a multiplier space.
562 Returns the brick index in the model.
563 </para>
564 </listitem>
565
566 <listitem>
567 <para><literal>ind = gf_model_set(model M, 'add normal Dirichlet condition with Nitsche method', mesh_im mim, string varname, string gamma0name, int region[, scalar theta][, string dataname])</literal></para>
568
569 <para> Add a Dirichlet condition to the normal component of the vector
570 (or tensor) valued variable <literal>varname</literal> and the mesh region <literal>region</literal>.
571 This region should be a boundary. The Dirichlet
572 condition is prescribed with Nitsche's method. <literal>dataname</literal> is the optional
573 right hand side of the Dirichlet condition. It could be constant or
574 described on a fem. <literal>gamma0name</literal> is the
575 Nitsche's method parameter. <literal>theta</literal> is a scalar value which can be
576 positive or negative. <literal>theta = 1</literal> corresponds to the standard symmetric
577 method which is conditionnaly coercive for <literal>gamma0</literal> small.
578 <literal>theta = -1</literal> corresponds to the skew-symmetric method which is
579 inconditionnaly coercive. <literal>theta = 0</literal> is the simplest method
580 for which the second derivative of the Neumann term is not necessary
581 even for nonlinear problems.
582 CAUTION: This brick has to be added in the model after all the bricks
583 corresponding to partial differential terms having a Neumann term.
584 Moreover, This brick can only be applied to bricks declaring their
585 Neumann terms. Returns the brick index in the model.
586 (This brick is not fully tested)
587
588 </para>
589 </listitem>
590
591 <listitem>
592 <para><literal>ind = gf_model_set(model M, 'add generalized Dirichlet condition with multipliers', mesh_im mim, string varname, mult_description, int region, string dataname, string Hname)</literal></para>
593
594 <para> Add a Dirichlet condition on the variable <literal>varname</literal> and the mesh
595 region <literal>region</literal>. This version is for vector field.
596 It prescribes a condition <latex style="text"><![CDATA[Hu = r]]></latex>
597 where <literal>H</literal> is a matrix field. The region should be a boundary. The Dirichlet
598 condition is prescribed with a multiplier variable described by
599 <literal>mult_description</literal>. If <literal>mult_description</literal> is a string this is assumed
600 to be the variable name corresponding to the multiplier (which should be
601 first declared as a multiplier variable on the mesh region in the model).
602 If it is a finite element method (mesh_fem object) then a multiplier
603 variable will be added to the model and build on this finite element
604 method (it will be restricted to the mesh region <literal>region</literal> and eventually
605 some conflicting dofs with some other multiplier variables will be
606 suppressed). If it is an integer, then a multiplier variable will be
607 added to the model and build on a classical finite element of degree
608 that integer. <literal>dataname</literal> is the right hand side of the
609 Dirichlet condition. It could be constant or described on a fem; scalar
610 or vector valued, depending on the variable on which the Dirichlet
611 condition is prescribed. <literal>Hname</literal> is the data
612 corresponding to the matrix field <literal>H</literal>.
613 Returns the brick index in the model.
614 </para>
615 </listitem>
616
617 <listitem>
618 <para><literal>ind = gf_model_set(model M, 'add generalized Dirichlet condition with penalization', mesh_im mim, string varname, scalar coeff, int region, string dataname, string Hname[, mesh_fem mf_mult])</literal></para>
619
620 <para> Add a Dirichlet condition on the variable <literal>varname</literal> and the mesh
621 region <literal>region</literal>. This version is for vector field.
622 It prescribes a condition <latex style="text"><![CDATA[Hu = r]]></latex>
623 where <literal>H</literal> is a matrix field.
624 The region should be a boundary. The Dirichlet
625 condition is prescribed with penalization. The penalization coefficient
626 is intially <literal>coeff</literal> and will be added to the data of the model.
627 <literal>dataname</literal> is the right hand side of the Dirichlet condition.
628 It could be constant or described on a fem; scalar or vector valued,
629 depending on the variable on which the Dirichlet condition is prescribed.
630 <literal>Hname</literal> is the data
631 corresponding to the matrix field <literal>H</literal>. It has to be a constant matrix
632 or described on a scalar fem.
633 <literal>mf_mult</literal> is an optional parameter which allows to weaken the
634 Dirichlet condition specifying a multiplier space.
635 Return the brick index in the model.
636 </para>
637 </listitem>
638
639 <listitem>
640 <para><literal>ind = gf_model_set(model M, 'add generalized Dirichlet condition with Nitsche method', mesh_im mim, string varname, string gamma0name, int region[, scalar theta], string dataname, string Hname)</literal></para>
641
642 <para> Add a Dirichlet condition on the variable <literal>varname</literal> and the mesh
643 region <literal>region</literal>.
644 This version is for vector field. It prescribes a condition
645 @f$ Hu = r @f$ where <literal>H</literal> is a matrix field.
646 CAUTION : the matrix H should have all eigenvalues equal to 1 or 0.
647 The region should be a
648 boundary. This region should be a boundary. The Dirichlet
649 condition is prescribed with Nitsche's method. <literal>dataname</literal> is the optional
650 right hand side of the Dirichlet condition. It could be constant or
651 described on a fem. <literal>gamma0name</literal> is the
652 Nitsche's method parameter. <literal>theta</literal> is a scalar value which can be
653 positive or negative. <literal>theta = 1</literal> corresponds to the standard symmetric
654 method which is conditionnaly coercive for <literal>gamma0</literal> small.
655 <literal>theta = -1</literal> corresponds to the skew-symmetric method which is
656 inconditionnaly coercive. <literal>theta = 0</literal> is the simplest method
657 for which the second derivative of the Neumann term is not necessary
658 even for nonlinear problems. <literal>Hname</literal> is the data
659 corresponding to the matrix field <literal>H</literal>. It has to be a constant matrix
660 or described on a scalar fem.
661 CAUTION: This brick has to be added in the model after all the bricks
662 corresponding to partial differential terms having a Neumann term.
663 Moreover, This brick can only be applied to bricks declaring their
664 Neumann terms. Returns the brick index in the model.
665 (This brick is not fully tested)
666
667 </para>
668 </listitem>
669
670 <listitem>
671 <para><literal>ind = gf_model_set(model M, 'add pointwise constraints with multipliers', string varname, string dataname_pt[, string dataname_unitv] [, string dataname_val])</literal></para>
672
673 <para> Add some pointwise constraints on the variable <literal>varname</literal> using
674 multiplier. The multiplier variable is automatically added to the model.
675 The conditions are prescribed on a set of points given in the data
676 <literal>dataname_pt</literal> whose dimension is the number of points times the dimension
677 of the mesh.
678 If the variable represents a vector field, one has to give the data
679 <literal>dataname_unitv</literal> which represents a vector of dimension the number of
680 points times the dimension of the vector field which should store some
681 unit vectors. In that case the prescribed constraint is the scalar
682 product of the variable at the corresponding point with the corresponding
683 unit vector.
684 The optional data <literal>dataname_val</literal> is the vector of values to be prescribed
685 at the different points.
686 This brick is specifically designed to kill rigid displacement
687 in a Neumann problem.
688 Returns the brick index in the model.
689 </para>
690 </listitem>
691
692 <listitem>
693 <para><literal>ind = gf_model_set(model M, 'add pointwise constraints with given multipliers', string varname, string multname, string dataname_pt[, string dataname_unitv] [, string dataname_val])</literal></para>
694
695 <para> Add some pointwise constraints on the variable <literal>varname</literal> using a given
696 multiplier <literal>multname</literal>.
697 The conditions are prescribed on a set of points given in the data
698 <literal>dataname_pt</literal> whose dimension is the number of points times the dimension
699 of the mesh.
700 The multiplier variable should be a fixed size variable of size the
701 number of points.
702 If the variable represents a vector field, one has to give the data
703 <literal>dataname_unitv</literal> which represents a vector of dimension the number of
704 points times the dimension of the vector field which should store some
705 unit vectors. In that case the prescribed constraint is the scalar
706 product of the variable at the corresponding point with the corresponding
707 unit vector.
708 The optional data <literal>dataname_val</literal> is the vector of values to be prescribed
709 at the different points.
710 This brick is specifically designed to kill rigid displacement
711 in a Neumann problem.
712 Returns the brick index in the model.
713 </para>
714 </listitem>
715
716 <listitem>
717 <para><literal>ind = gf_model_set(model M, 'add pointwise constraints with penalization', string varname, scalar coeff, string dataname_pt[, string dataname_unitv] [, string dataname_val])</literal></para>
718
719 <para> Add some pointwise constraints on the variable <literal>varname</literal> thanks to
720 a penalization. The penalization coefficient is initially
721 <literal>penalization_coeff</literal> and will be added to the data of the model.
722 The conditions are prescribed on a set of points given in the data
723 <literal>dataname_pt</literal> whose dimension is the number of points times the dimension
724 of the mesh.
725 If the variable represents a vector field, one has to give the data
726 <literal>dataname_unitv</literal> which represents a vector of dimension the number of
727 points times the dimension of the vector field which should store some
728 unit vectors. In that case the prescribed constraint is the scalar
729 product of the variable at the corresponding point with the corresponding
730 unit vector.
731 The optional data <literal>dataname_val</literal> is the vector of values to be prescribed
732 at the different points.
733 This brick is specifically designed to kill rigid displacement
734 in a Neumann problem.
735 Returns the brick index in the model.
736 </para>
737 </listitem>
738
739 <listitem>
740 <para><literal>gf_model_set(model M, 'change penalization coeff', int ind_brick, scalar coeff)</literal></para>
741
742 <para> Change the penalization coefficient of a Dirichlet condition with
743 penalization brick. If the brick is not of this kind, this
744 function has an undefined behavior.
745 </para>
746 </listitem>
747
748 <listitem>
749 <para><literal>ind = gf_model_set(model M, 'add Helmholtz brick', mesh_im mim, string varname, string dataname[, int region])</literal></para>
750
751 <para> Add a Helmholtz term to the model relatively to the variable <literal>varname</literal>.
752 <literal>dataname</literal> should contain the wave number. <literal>region</literal> is an optional mesh
753 region on which the term is added. If it is not specified, it is added
754 on the whole mesh. Return the brick index in the model.
755 </para>
756 </listitem>
757
758 <listitem>
759 <para><literal>ind = gf_model_set(model M, 'add Fourier Robin brick', mesh_im mim, string varname, string dataname, int region)</literal></para>
760
761 <para> Add a Fourier-Robin term to the model relatively to the variable
762 <literal>varname</literal>. This corresponds to a weak term of the form
763 <latex style="text"><![CDATA[\int (qu).v]]></latex>. <literal>dataname</literal>
764 should contain the parameter <latex style="text"><![CDATA[q]]></latex> of
765 the Fourier-Robin condition. <literal>region</literal> is the mesh region on which
766 the term is added. Return the brick index in the model.
767 </para>
768 </listitem>
769
770 <listitem>
771 <para><literal>ind = gf_model_set(model M, 'add basic nonlinear brick', mesh_im mim, string varname, string f, string dfdu[, string dataname, int region])</literal></para>
772
773 <para> Add a brick representing a scalar term <latex style="text"><![CDATA[f(u)]]></latex> to the left-hand
774 side of the model. In the weak form, one adds <latex style="text"><![CDATA[+\int f(u)v]]></latex>.
775 The function <latex style="text"><![CDATA[f]]></latex> may optionally depend on <latex style="text"><![CDATA[\lambda]]></latex>, i.e.,
776 <latex style="text"><![CDATA[f(u)=f(u,\lambda)]]></latex>.
777 <literal>f</literal> and <literal>dfdu</literal> should contain the expressions for
778 <latex style="text"><![CDATA[f(u)]]></latex> and <latex style="text"><![CDATA[\frac{df}{du}(u)]]></latex>, respectively.
779 <literal>dataname</literal> represents the optional real scalar parameter <latex style="text"><![CDATA[\lambda]]></latex>
780 in the model. <literal>region</literal> is an optional mesh region on which the term is
781 added. If it is not specified, the term is added on the whole mesh.
782 Return the brick index in the model.
783 </para>
784 </listitem>
785
786 <listitem>
787 <para><literal>ind = gf_model_set(model M, 'add constraint with multipliers', string varname, string multname, spmat B, vec L)</literal></para>
788
789 <para> Add an additional explicit constraint on the variable <literal>varname</literal> thank to
790 a multiplier <literal>multname</literal> peviously added to the model (should be a fixed
791 size variable). The constraint is <latex style="text"><![CDATA[BU=L]]></latex>
792 with <literal>B</literal> being a rectangular sparse matrix. It is possible to change
793 the constraint at any time with the methods gf_model_set(model M, 'set private matrix')
794 and gf_model_set(model M, 'set private rhs'). Return the brick index in the model.
795 </para>
796 </listitem>
797
798 <listitem>
799 <para><literal>ind = gf_model_set(model M, 'add constraint with penalization', string varname, scalar coeff, spmat B, vec L)</literal></para>
800
801 <para> Add an additional explicit penalized constraint on the variable <literal>varname</literal>.
802 The constraint is :math<literal>BU=L</literal> with <literal>B</literal> being a rectangular sparse matrix.
803 Be aware that <literal>B</literal> should not contain a palin row, otherwise the whole
804 tangent matrix will be plain. It is possible to change the constraint
805 at any time with the methods gf_model_set(model M, 'set private matrix')
806 and gf_model_set(model M, 'set private rhs'). The method
807 gf_model_set(model M, 'change penalization coeff') can be used. Return the brick
808 index in the model.
809 </para>
810 </listitem>
811
812 <listitem>
813 <para><literal>ind = gf_model_set(model M, 'add explicit matrix', string varname1, string varname2, spmat B[, int issymmetric[, int iscoercive]])</literal></para>
814
815 <para> Add a brick representing an explicit matrix to be added to the tangent
816 linear system relatively to the variables <literal>varname1</literal> and <literal>varname2</literal>.
817 The given matrix should have has many rows as the dimension of
818 <literal>varname1</literal> and as many columns as the dimension of <literal>varname2</literal>.
819 If the two variables are different and if <literal>issymmetric</literal> is set to 1
820 then the transpose of the matrix is also added to the tangent system
821 (default is 0). Set <literal>iscoercive</literal> to 1 if the term does not affect the
822 coercivity of the tangent system (default is 0). The matrix can be
823 changed by the command gf_model_set(model M, 'set private matrix'). Return the
824 brick index in the model.
825 </para>
826 </listitem>
827
828 <listitem>
829 <para><literal>ind = gf_model_set(model M, 'add explicit rhs', string varname, vec L)</literal></para>
830
831 <para> Add a brick representing an explicit right hand side to be added to
832 the right hand side of the tangent linear system relatively to the
833 variable <literal>varname</literal>. The given rhs should have the same size than the
834 dimension of <literal>varname</literal>. The rhs can be changed by the command
835 gf_model_set(model M, 'set private rhs'). Return the brick index in the model.
836 </para>
837 </listitem>
838
839 <listitem>
840 <para><literal>gf_model_set(model M, 'set private matrix', int indbrick, spmat B)</literal></para>
841
842 <para> For some specific bricks having an internal sparse matrix
843 (explicit bricks: 'constraint brick' and 'explicit matrix brick'),
844 set this matrix.
845 </para>
846 </listitem>
847
848 <listitem>
849 <para><literal>gf_model_set(model M, 'set private rhs', int indbrick, vec B)</literal></para>
850
851 <para> For some specific bricks having an internal right hand side vector
852 (explicit bricks: 'constraint brick' and 'explicit rhs brick'),
853 set this rhs.
854 </para>
855 </listitem>
856
857 <listitem>
858 <para><literal>ind = gf_model_set(model M, 'add isotropic linearized elasticity brick', mesh_im mim, string varname, string dataname_lambda, string dataname_mu[, int region])</literal></para>
859
860 <para> Add an isotropic linearized elasticity term to the model relatively to
861 the variable <literal>varname</literal>. <literal>dataname_lambda</literal> and <literal>dataname_mu</literal> should
862 contain the Lame coefficients. <literal>region</literal> is an optional mesh region
863 on which the term is added. If it is not specified, it is added
864 on the whole mesh. Return the brick index in the model.
865 </para>
866 </listitem>
867
868 <listitem>
869 <para><literal>ind = gf_model_set(model M, 'add linear incompressibility brick', mesh_im mim, string varname, string multname_pressure[, int region[, string dataname_coeff]])</literal></para>
870
871 <para> Add an linear incompressibility condition on <literal>variable</literal>. <literal>multname_pressure</literal>
872 is a variable which represent the pressure. Be aware that an inf-sup
873 condition between the finite element method describing the pressure and the
874 primal variable has to be satisfied. <literal>region</literal> is an optional mesh region on
875 which the term is added. If it is not specified, it is added on the whole mesh.
876 <literal>dataname_coeff</literal> is an optional penalization coefficient for nearly
877 incompressible elasticity for instance. In this case, it is the inverse
878 of the Lame coefficient <latex style="text"><![CDATA[\lambda]]></latex>. Return the brick index in the model.
879 </para>
880 </listitem>
881
882 <listitem>
883 <para><literal>ind = gf_model_set(model M, 'add nonlinear elasticity brick', mesh_im mim, string varname, string constitutive_law, string dataname[, int region])</literal></para>
884
885 <para> Add a nonlinear elasticity term to the model relatively to the
886 variable <literal>varname</literal>. <literal>lawname</literal> is the constitutive law which
887 could be 'SaintVenant Kirchhoff', 'Mooney Rivlin', 'neo Hookean',
888 'Ciarlet Geymonat' or 'generalized Blatz Ko'.
889 'Mooney Rivlin' and 'neo Hookean' law names can be preceded with the word
890 'compressible' or 'incompressible' to force using the corresponding version.
891 The compressible version of these laws requires one additional material
892 coefficient. By default, the incompressible version of 'Mooney Rivlin' law
893 and the compressible one of the 'neo Hookean' law are considered. In general,
894 'neo Hookean' is a special case of the 'Mooney Rivlin' law that requires one
895 coefficient less.
896 IMPORTANT : if the variable is defined on a 2D mesh, the plane strain
897 approximation is automatically used.
898 <literal>dataname</literal> is a vector of parameters for the constitutive law. Its length
899 depends on the law. It could be a short vector of constant values or a
900 vector field described on a finite element method for variable
901 coefficients. <literal>region</literal> is an optional mesh region on which the term
902 is added. If it is not specified, it is added on the whole mesh.
903 This brick use the low-level generic assembly.
904 Returns the brick index in the model.
905 </para>
906 </listitem>
907
908 <listitem>
909 <para><literal>ind = gf_model_set(model M, 'add finite strain elasticity brick', mesh_im mim, string varname, string constitutive_law, string params[, int region])</literal></para>
910
911 <para> Add a nonlinear elasticity term to the model relatively to the
912 variable <literal>varname</literal>. <literal>lawname</literal> is the constitutive law which
913 could be 'SaintVenant Kirchhoff', 'Mooney Rivlin', 'Neo Hookean',
914 'Ciarlet Geymonat' or 'Generalized Blatz Ko'.
915 'Mooney Rivlin' and 'Neo Hookean' law names have to be preceeded with
916 the word 'Compressible' or 'Incompressible' to force using the
917 corresponding version.
918 The compressible version of these laws requires one additional material
919 coefficient.
920
921 IMPORTANT : if the variable is defined on a 2D mesh, the plane strain
922 approximation is automatically used.
923 <literal>params</literal> is a vector of parameters for the constitutive law. Its length
924 depends on the law. It could be a short vector of constant values or a
925 vector field described on a finite element method for variable
926 coefficients. <literal>region</literal> is an optional mesh region on which the term
927 is added. If it is not specified, it is added on the whole mesh.
928 This brick use the high-level generic assembly.
929 Returns the brick index in the model.
930 </para>
931 </listitem>
932
933 <listitem>
934 <para><literal>ind = gf_model_set(model M, 'add elastoplasticity brick', mesh_im mim ,string projname, string varname, string datalambda, string datamu, string datathreshold, string datasigma[, int region])</literal></para>
935
936 <para> Add a nonlinear elastoplastic term to the model relatively to the
937 variable <literal>varname</literal>, in small deformations, for an isotropic material
938 and for a quasistatic model. <literal>projname</literal> is the type of projection that
939 we want to use. For the moment, only the Von Mises projection is
940 computing that we could entering 'VM' or 'Von Mises'.
941 <literal>datasigma</literal> is the variable representing the constraints on the material.
942 Be careful that <literal>varname</literal> and <literal>datasigma</literal> are composed of two iterates
943 for the time scheme needed for the Newton algorithm used.
944 Moreover, the finite element method on which <literal>varname</literal> is described
945 is an K ordered mesh_fem, the <literal>datasigma</literal> one have to be at least
946 an K-1 ordered mesh_fem.
947 <literal>datalambda</literal> and <literal>datamu</literal> are the Lame coefficients of the studied
948 material.
949 <literal>datathreshold</literal> is the plasticity threshold of the material.
950 The three last variable could be constants or described on the
951 same finite element method.
952 <literal>region</literal> is an optional mesh region on which the term is added.
953 If it is not specified, it is added on the whole mesh.
954 Return the brick index in the model.
955 </para>
956 </listitem>
957
958 <listitem>
959 <para><literal>ind = gf_model_set(model M, 'add nonlinear incompressibility brick', mesh_im mim, string varname, string multname_pressure[, int region])</literal></para>
960
961 <para> Add an nonlinear incompressibility condition on <literal>variable</literal> (for large
962 strain elasticity). <literal>multname_pressure</literal>
963 is a variable which represent the pressure. Be aware that an inf-sup
964 condition between the finite element method describing the pressure and the
965 primal variable has to be satisfied. <literal>region</literal> is an optional mesh region on
966 which the term is added. If it is not specified, it is added on the
967 whole mesh. Return the brick index in the model.
968 </para>
969 </listitem>
970
971 <listitem>
972 <para><literal>ind = gf_model_set(model M, 'add finite strain incompressibility brick', mesh_im mim, string varname, string multname_pressure[, int region])</literal></para>
973
974 <para> Add an finite strain incompressibility condition on <literal>variable</literal> (for large
975 strain elasticity). <literal>multname_pressure</literal>
976 is a variable which represent the pressure. Be aware that an inf-sup
977 condition between the finite element method describing the pressure and the
978 primal variable has to be satisfied. <literal>region</literal> is an optional mesh region on
979 which the term is added. If it is not specified, it is added on the
980 whole mesh. Return the brick index in the model.
981 This brick is equivalent to the <literal></literal>nonlinear incompressibility brick<literal></literal> but
982 uses the high-level generic assembly adding the term
983 <literal></literal>p*(1-Det(Id(meshdim)+Grad_u))<literal></literal> if <literal></literal>p<literal></literal> is the multiplier and
984 <literal></literal>u<literal></literal> the variable which represent the displacement.
985 </para>
986 </listitem>
987
988 <listitem>
989 <para><literal>ind = gf_model_set(model M, 'add bilaplacian brick', mesh_im mim, string varname, string dataname [, int region])</literal></para>
990
991 <para> Add a bilaplacian brick on the variable
992 <literal>varname</literal> and on the mesh region <literal>region</literal>.
993 This represent a term <latex style="text"><![CDATA[\Delta(D \Delta u)]]></latex>.
994 where <latex style="text"><![CDATA[D(x)]]></latex> is a coefficient determined by <literal>dataname</literal> which
995 could be constant or described on a f.e.m. The corresponding weak form
996 is <latex style="text"><![CDATA[\int D(x)\Delta u(x) \Delta v(x) dx]]></latex>.
997 Return the brick index in the model.
998 </para>
999 </listitem>
1000
1001 <listitem>
1002 <para><literal>ind = gf_model_set(model M, 'add Kirchhoff-Love plate brick', mesh_im mim, string varname, string dataname_D, string dataname_nu [, int region])</literal></para>
1003
1004 <para> Add a bilaplacian brick on the variable
1005 <literal>varname</literal> and on the mesh region <literal>region</literal>.
1006 This represent a term <latex style="text"><![CDATA[\Delta(D \Delta u)]]></latex> where <latex style="text"><![CDATA[D(x)]]></latex>
1007 is a the flexion modulus determined by <literal>dataname_D</literal>. The term is
1008 integrated by part following a Kirchhoff-Love plate model
1009 with <literal>dataname_nu</literal> the poisson ratio.
1010 Return the brick index in the model.
1011 </para>
1012 </listitem>
1013
1014 <listitem>
1015 <para><literal>ind = gf_model_set(model M, 'add normal derivative source term brick', mesh_im mim, string varname, string dataname, int region)</literal></para>
1016
1017 <para> Add a normal derivative source term brick
1018 <latex style="text"><![CDATA[F = \int b.\partial_n v]]></latex> on the variable <literal>varname</literal> and the
1019 mesh region <literal>region</literal>.
1020
1021 Update the right hand side of the linear system.
1022 <literal>dataname</literal> represents <literal>b</literal> and <literal>varname</literal> represents <literal>v</literal>.
1023 Return the brick index in the model.
1024 </para>
1025 </listitem>
1026
1027 <listitem>
1028 <para><literal>ind = gf_model_set(model M, 'add Kirchhoff-Love Neumann term brick', mesh_im mim, string varname, string dataname_M, string dataname_divM, int region)</literal></para>
1029
1030 <para> Add a Neumann term brick for Kirchhoff-Love model
1031 on the variable <literal>varname</literal> and the mesh region <literal>region</literal>.
1032 <literal>dataname_M</literal> represents the bending moment tensor and <literal>dataname_divM</literal>
1033 its divergence.
1034 Return the brick index in the model.
1035 </para>
1036 </listitem>
1037
1038 <listitem>
1039 <para><literal>ind = gf_model_set(model M, 'add normal derivative Dirichlet condition with multipliers', mesh_im mim, string varname, mult_description, int region [, string dataname, int R_must_be_derivated])</literal></para>
1040
1041 <para> Add a Dirichlet condition on the normal derivative of the variable
1042 <literal>varname</literal> and on the mesh region <literal>region</literal> (which should be a boundary.
1043 The general form is
1044 <latex style="text"><![CDATA[\int \partial_n u(x)v(x) = \int r(x)v(x) \forall v]]></latex>
1045 where <latex style="text"><![CDATA[r(x)]]></latex> is
1046 the right hand side for the Dirichlet condition (0 for
1047 homogeneous conditions) and <latex style="text"><![CDATA[v]]></latex> is in a space of multipliers
1048 defined by <literal>mult_description</literal>.
1049 If <literal>mult_description</literal> is a string this is assumed
1050 to be the variable name corresponding to the multiplier (which should be
1051 first declared as a multiplier variable on the mesh region in the model).
1052 If it is a finite element method (mesh_fem object) then a multiplier
1053 variable will be added to the model and build on this finite element
1054 method (it will be restricted to the mesh region <literal>region</literal> and eventually
1055 some conflicting dofs with some other multiplier variables will be
1056 suppressed). If it is an integer, then a multiplier variable will be
1057 added to the model and build on a classical finite element of degree
1058 that integer. <literal>dataname</literal> is an optional parameter which represents
1059 the right hand side of the Dirichlet condition.
1060 If <literal>R_must_be_derivated</literal> is set to <literal>true</literal> then the normal
1061 derivative of <literal>dataname</literal> is considered.
1062 Return the brick index in the model.
1063 </para>
1064 </listitem>
1065
1066 <listitem>
1067 <para><literal>ind = gf_model_set(model M, 'add normal derivative Dirichlet condition with penalization', mesh_im mim, string varname, scalar coeff, int region [, string dataname, int R_must_be_derivated])</literal></para>
1068
1069 <para> Add a Dirichlet condition on the normal derivative of the variable
1070 <literal>varname</literal> and on the mesh region <literal>region</literal> (which should be a boundary.
1071 The general form is
1072 <latex style="text"><![CDATA[\int \partial_n u(x)v(x) = \int r(x)v(x) \forall v]]></latex>
1073 where <latex style="text"><![CDATA[r(x)]]></latex> is
1074 the right hand side for the Dirichlet condition (0 for
1075 homogeneous conditions).
1076 The penalization coefficient
1077 is initially <literal>coeff</literal> and will be added to the data of the model.
1078 It can be changed with the command gf_model_set(model M, 'change penalization coeff').
1079 <literal>dataname</literal> is an optional parameter which represents
1080 the right hand side of the Dirichlet condition.
1081 If <literal>R_must_be_derivated</literal> is set to <literal>true</literal> then the normal
1082 derivative of <literal>dataname</literal> is considered.
1083 Return the brick index in the model.
1084 </para>
1085 </listitem>
1086
1087 <listitem>
1088 <para><literal>ind = gf_model_set(model M, 'add mass brick', mesh_im mim, string varname[, string dataname_rho[, int region]])</literal></para>
1089
1090 <para> Add mass term to the model relatively to the variable <literal>varname</literal>.
1091 If specified, the data <literal>dataname_rho</literal> should contain the
1092 density (1 if omitted). <literal>region</literal> is an optional mesh region on
1093 which the term is added. If it is not specified, it
1094 is added on the whole mesh. Return the brick index in the model.
1095 </para>
1096 </listitem>
1097
1098 <listitem>
1099 <para><literal>ind = gf_model_set(model M, 'add basic d on dt brick', mesh_im mim, string varnameU, string dataname_dt[, string dataname_rho[, int region]])</literal></para>
1100
1101 <para> Add the standard discretization of a first order time derivative on
1102 <literal>varnameU</literal>. The parameter <literal>dataname_rho</literal> is the density which could
1103 be omitted (the defaul value is 1). This brick should be used in
1104 addition to a time dispatcher for the other terms. Return the brick
1105 index in the model.
1106 </para>
1107 </listitem>
1108
1109 <listitem>
1110 <para><literal>ind = gf_model_set(model M, 'add basic d2 on dt2 brick', mesh_im mim, string varnameU, string datanameV, string dataname_dt, string dataname_alpha,[, string dataname_rho[, int region]])</literal></para>
1111
1112 <para> Add the standard discretization of a second order time derivative
1113 on <literal>varnameU</literal>. <literal>datanameV</literal> is a data represented on the same finite
1114 element method as U which represents the time derivative of U. The
1115 parameter <literal>dataname_rho</literal> is the density which could be omitted (the defaul
1116 value is 1). This brick should be used in addition to a time dispatcher for
1117 the other terms. The time derivative <latex style="text"><![CDATA[v]]></latex> of the
1118 variable <latex style="text"><![CDATA[u]]></latex> is preferably computed as a
1119 post-traitement which depends on each scheme. The parameter <literal>dataname_alpha</literal>
1120 depends on the time integration scheme. Return the brick index in the model.
1121 </para>
1122 </listitem>
1123
1124 <listitem>
1125 <para><literal>gf_model_set(model M, 'add theta method dispatcher', ivec bricks_indices, string theta)</literal></para>
1126
1127 <para> Add a theta-method time dispatcher to a list of bricks. For instance,
1128 a matrix term <latex style="text"><![CDATA[K]]></latex> will be replaced by
1129 <latex style="text"><![CDATA[\theta K U^{n+1} + (1-\theta) K U^{n}]]></latex>.
1130
1131 </para>
1132 </listitem>
1133
1134 <listitem>
1135 <para><literal>gf_model_set(model M, 'add midpoint dispatcher', ivec bricks_indices)</literal></para>
1136
1137 <para> Add a midpoint time dispatcher to a list of bricks. For instance, a
1138 nonlinear term <latex style="text"><![CDATA[K(U)]]></latex> will be replaced by
1139 <latex style="text"><![CDATA[K((U^{n+1} + U^{n})/2)]]></latex>.
1140 </para>
1141 </listitem>
1142
1143 <listitem>
1144 <para><literal>gf_model_set(model M, 'velocity update for order two theta method', string varnameU, string datanameV, string dataname_dt, string dataname_theta)</literal></para>
1145
1146 <para> Function which udpate the velocity <latex style="text"><![CDATA[v^{n+1}]]></latex> after
1147 the computation of the displacement <latex style="text"><![CDATA[u^{n+1}]]></latex> and
1148 before the next iteration. Specific for theta-method and when the velocity is
1149 included in the data of the model.
1150 </para>
1151 </listitem>
1152
1153 <listitem>
1154 <para><literal>gf_model_set(model M, 'velocity update for Newmark scheme', int id2dt2_brick, string varnameU, string datanameV, string dataname_dt, string dataname_twobeta, string dataname_alpha)</literal></para>
1155
1156 <para> Function which udpate the velocity
1157 <latex style="text"><![CDATA[v^{n+1}]]></latex> after
1158 the computation of the displacement
1159 <latex style="text"><![CDATA[u^{n+1}]]></latex> and
1160 before the next iteration. Specific for Newmark scheme
1161 and when the velocity is
1162 included in the data of the model.*
1163 This version inverts the mass matrix by a
1164 conjugate gradient.
1165 </para>
1166 </listitem>
1167
1168 <listitem>
1169 <para><literal>gf_model_set(model M, 'disable bricks', ivec bricks_indices)</literal></para>
1170
1171 <para> Disable a brick (the brick will no longer participate to the
1172 building of the tangent linear system).
1173 </para>
1174 </listitem>
1175
1176 <listitem>
1177 <para><literal>gf_model_set(model M, 'enable bricks', ivec bricks_indices)</literal></para>
1178
1179 <para> Enable a disabled brick.
1180 </para>
1181 </listitem>
1182
1183 <listitem>
1184 <para><literal>gf_model_set(model M, 'disable variable', string varname)</literal></para>
1185
1186 <para> Disable a variable for a solve. The next solve will operate only on
1187 the remaining variables. This allows to solve separately different
1188 parts of a model. If there is a strong coupling of the variables,
1189 a fixed point strategy can the be used.
1190 </para>
1191 </listitem>
1192
1193 <listitem>
1194 <para><literal>gf_model_set(model M, 'enable variable', string varname)</literal></para>
1195
1196 <para> Enable a disabled variable.
1197 </para>
1198 </listitem>
1199
1200 <listitem>
1201 <para><literal>gf_model_set(model M, 'first iter')</literal></para>
1202
1203 <para> To be executed before the first iteration of a time integration
1204 scheme.
1205 </para>
1206 </listitem>
1207
1208 <listitem>
1209 <para><literal>gf_model_set(model M, 'next iter')</literal></para>
1210
1211 <para> To be executed at the end of each iteration of a time
1212 integration scheme.
1213 </para>
1214 </listitem>
1215
1216 <listitem>
1217 <para><literal>ind = gf_model_set(model M, 'add basic contact brick', string varname_u, string multname_n[, string multname_t], string dataname_r, spmat BN[, spmat BT, string dataname_friction_coeff][, string dataname_gap[, string dataname_alpha[, int augmented_version[, string dataname_gamma, string dataname_wt]]])</literal></para>
1218
1219 <para>
1220 Add a contact with or without friction brick to the model.
1221 If U is the vector
1222 of degrees of freedom on which the unilateral constraint is applied,
1223 the matrix <literal>BN</literal> have to be such that this constraint is defined by
1224 <latex style="text"><![CDATA[B_N U \le 0]]></latex>. A friction condition can be considered by adding
1225 the three parameters <literal>multname_t</literal>, <literal>BT</literal> and <literal>dataname_friction_coeff</literal>.
1226 In this case, the tangential displacement is <latex style="text"><![CDATA[B_T U]]></latex> and
1227 the matrix <literal>BT</literal> should have as many rows as <literal>BN</literal> multiplied by
1228 <latex style="text"><![CDATA[d-1]]></latex> where <latex style="text"><![CDATA[d]]></latex> is the domain dimension.
1229 In this case also, <literal>dataname_friction_coeff</literal> is a data which represents
1230 the coefficient of friction. It can be a scalar or a vector representing a
1231 value on each contact condition. The unilateral constraint is prescribed
1232 thank to a multiplier
1233 <literal>multname_n</literal> whose dimension should be equal to the number of rows of
1234 <literal>BN</literal>. If a friction condition is added, it is prescribed with a
1235 multiplier <literal>multname_t</literal> whose dimension should be equal to the number
1236 of rows of <literal>BT</literal>. The augmentation parameter <literal>r</literal> should be chosen in
1237 a range of
1238 acceptabe values (see Getfem user documentation). <literal>dataname_gap</literal> is an
1239 optional parameter representing the initial gap. It can be a single value
1240 or a vector of value. <literal>dataname_alpha</literal> is an optional homogenization
1241 parameter for the augmentation parameter
1242 (see Getfem user documentation). The parameter <literal>augmented_version</literal>
1243 indicates the augmentation strategy : 1 for the non-symmetric
1244 Alart-Curnier augmented Lagrangian, 2 for the symmetric one (except for
1245 the coupling between contact and Coulomb friction), 3 for the
1246 unsymmetric method with augmented multipliers, 4 for the unsymmetric
1247 method with augmented multipliers and De Saxce projection.
1248 </para>
1249 </listitem>
1250
1251 <listitem>
1252 <para><literal>gf_model_set(model M, 'contact brick set BN', int indbrick, spmat BN)</literal></para>
1253
1254 <para> Can be used to set the BN matrix of a basic contact/friction brick.
1255 </para>
1256 </listitem>
1257
1258 <listitem>
1259 <para><literal>gf_model_set(model M, 'contact brick set BT', int indbrick, spmat BT)</literal></para>
1260
1261 <para> Can be used to set the BT matrix of a basic contact with
1262 friction brick.
1263 </para>
1264 </listitem>
1265
1266 <listitem>
1267 <para><literal>ind = gf_model_set(model M, 'add nodal contact with rigid obstacle brick', mesh_im mim, string varname_u, string multname_n[, string multname_t], string dataname_r[, string dataname_friction_coeff], int region, string obstacle[, int augmented_version])</literal></para>
1268
1269 <para>
1270 Add a contact with or without friction condition with a rigid obstacle
1271 to the model. The condition is applied on the variable <literal>varname_u</literal>
1272 on the boundary corresponding to <literal>region</literal>. The rigid obstacle should
1273 be described with the string <literal>obstacle</literal> being a signed distance to
1274 the obstacle. This string should be an expression where the coordinates
1275 are 'x', 'y' in 2D and 'x', 'y', 'z' in 3D. For instance, if the rigid
1276 obstacle correspond to <latex style="text"><![CDATA[z \le 0]]></latex>, the corresponding signed distance
1277 will be simply "z". <literal>multname_n</literal> should be a fixed size variable whose size
1278 is the number of degrees of freedom on boundary <literal>region</literal>. It represents the
1279 contact equivalent nodal forces. In order to add a friction condition
1280 one has to add the <literal>multname_t</literal> and <literal>dataname_friction_coeff</literal> parameters.
1281 <literal>multname_t</literal> should be a fixed size variable whose size is
1282 the number of degrees of freedom on boundary <literal>region</literal> multiplied by
1283 <latex style="text"><![CDATA[d-1]]></latex> where <latex style="text"><![CDATA[d]]></latex> is the domain dimension. It represents
1284 the friction equivalent nodal forces.
1285 The augmentation parameter <literal>r</literal> should be chosen in a
1286 range of acceptabe values (close to the Young modulus of the elastic
1287 body, see Getfem user documentation). <literal>dataname_friction_coeff</literal> is
1288 the friction coefficient. It could be a scalar or a vector of values
1289 representing the friction coefficient on each contact node.
1290 The parameter <literal>augmented_version</literal>
1291 indicates the augmentation strategy : 1 for the non-symmetric
1292 Alart-Curnier augmented Lagrangian, 2 for the symmetric one (except for
1293 the coupling between contact and Coulomb friction),
1294 3 for the new unsymmetric method.
1295 Basically, this brick compute the matrix BN
1296 and the vectors gap and alpha and calls the basic contact brick.
1297 </para>
1298 </listitem>
1299
1300 <listitem>
1301 <para><literal>ind = gf_model_set(model M, 'add contact with rigid obstacle brick', mesh_im mim, string varname_u, string multname_n[, string multname_t], string dataname_r[, string dataname_friction_coeff], int region, string obstacle[, int augmented_version])</literal></para>
1302
1303 <para> DEPRECATED FUNCTION. Use 'add nodal contact with rigid obstacle brick' instead.
1304 </para>
1305 </listitem>
1306
1307 <listitem>
1308 <para><literal>ind = gf_model_set(model M, 'add integral contact with rigid obstacle brick', mesh_im mim, string varname_u, string multname, string dataname_obstacle, string dataname_r [, string dataname_friction_coeff], int region [, int option [, string dataname_alpha [, string dataname_wt [, string dataname_gamma [, string dataname_vt]]]]])</literal></para>
1309
1310 <para>
1311 Add a contact with or without friction condition with a rigid obstacle
1312 to the model. This brick adds a contact which is defined
1313 in an integral way. It is the direct approximation of an augmented
1314 Lagrangian formulation (see Getfem user documentation) defined at the
1315 continuous level. The advantage is a better scalability: the number of
1316 Newton iterations should be more or less independent of the mesh size.
1317 The contact condition is applied on the variable <literal>varname_u</literal>
1318 on the boundary corresponding to <literal>region</literal>. The rigid obstacle should
1319 be described with the data <literal>dataname_obstacle</literal> being a signed distance to
1320 the obstacle (interpolated on a finite element method).
1321 <literal>multname</literal> should be a fem variable representing the contact stress.
1322 An inf-sup condition beetween <literal>multname</literal> and <literal>varname_u</literal> is required.
1323 The augmentation parameter <literal>dataname_r</literal> should be chosen in a
1324 range of acceptabe values.
1325 The optional parameter <literal>dataname_friction_coeff</literal> is the friction
1326 coefficient which could be constant or defined on a finite element method.
1327 Possible values for <literal>option</literal> is 1 for the non-symmetric Alart-Curnier
1328 augmented Lagrangian method, 2 for the symmetric one, 3 for the
1329 non-symmetric Alart-Curnier method with an additional augmentation
1330 and 4 for a new unsymmetric method. The default value is 1.
1331 In case of contact with friction, <literal>dataname_alpha</literal> and <literal>dataname_wt</literal>
1332 are optional parameters to solve evolutionary friction problems.
1333 <literal>dataname_gamma</literal> and <literal>dataname_vt</literal> represent optional data for adding
1334 a parameter-dependent sliding velocity to the friction condition.
1335
1336 </para>
1337 </listitem>
1338
1339 <listitem>
1340 <para><literal>ind = gf_model_set(model M, 'add penalized contact with rigid obstacle brick', mesh_im mim, string varname_u, string dataname_obstacle, string dataname_r [, string dataname_coeff], int region [, int option, string dataname_lambda, [, string dataname_alpha [, string dataname_wt]]])</literal></para>
1341
1342 <para>
1343 Add a penalized contact with or without friction condition with a
1344 rigid obstacle to the model.
1345 The condition is applied on the variable <literal>varname_u</literal>
1346 on the boundary corresponding to <literal>region</literal>. The rigid obstacle should
1347 be described with the data <literal>dataname_obstacle</literal> being a signed distance to
1348 the obstacle (interpolated on a finite element method).
1349 The penalization parameter <literal>dataname_r</literal> should be chosen
1350 large enough to prescribe approximate non-penetration and friction
1351 conditions but not too large not to deteriorate too much the
1352 conditionning of the tangent system.
1353 <literal>dataname_lambda</literal> is an optional parameter used if option
1354 is 2. In that case, the penalization term is shifted by lambda (this
1355 allows the use of an Uzawa algorithm on the corresponding augmented
1356 Lagrangian formulation)
1357
1358 </para>
1359 </listitem>
1360
1361 <listitem>
1362 <para><literal>ind = gf_model_set(model M, 'add Nitsche contact with rigid obstacle brick', mesh_im mim, string varname, string dataname_obstacle, string gamma0name, int region[, scalar theta[, string dataname_friction_coeff[, string dataname_alpha, string dataname_wt]]])</literal></para>
1363
1364 <para> Adds a contact condition with or without Coulomb friction on the variable
1365 <literal>varname</literal> and the mesh boundary <literal>region</literal>. The contact condition
1366 is prescribed with Nitsche's method. The rigid obstacle should
1367 be described with the data <literal>dataname_obstacle</literal> being a signed distance to
1368 the obstacle (interpolated on a finite element method).
1369 <literal>gamma0name</literal> is the Nitsche's method parameter.
1370 <literal>theta</literal> is a scalar value which can be
1371 positive or negative. <literal>theta = 1</literal> corresponds to the standard symmetric
1372 method which is conditionnaly coercive for <literal>gamma0</literal> small.
1373 <literal>theta = -1</literal> corresponds to the skew-symmetric method which is
1374 inconditionnaly coercive. <literal>theta = 0</literal> is the simplest method
1375 for which the second derivative of the Neumann term is not necessary.
1376 The optional parameter <literal>dataname_friction_coeff</literal> is the friction
1377 coefficient which could be constant or defined on a finite element
1378 method.
1379 CAUTION: This brick has to be added in the model after all the bricks
1380 corresponding to partial differential terms having a Neumann term.
1381 Moreover, This brick can only be applied to bricks declaring their
1382 Neumann terms. Returns the brick index in the model.
1383
1384 </para>
1385 </listitem>
1386
1387 <listitem>
1388 <para><literal>ind = gf_model_set(model M, 'add Nitsche midpoint contact with rigid obstacle brick', mesh_im mim, string varname, string dataname_obstacle, string gamma0name, int region, scalar theta, string dataname_friction_coeff, string dataname_alpha, string dataname_wt, int option)</literal></para>
1389
1390 <para> EXPERIMENTAL BRICK: for midpoint scheme only !!
1391 Adds a contact condition with or without Coulomb friction on the variable
1392 <literal>varname</literal> and the mesh boundary <literal>region</literal>. The contact condition
1393 is prescribed with Nitsche's method. The rigid obstacle should
1394 be described with the data <literal>dataname_obstacle</literal> being a signed distance to
1395 the obstacle (interpolated on a finite element method).
1396 <literal>gamma0name</literal> is the Nitsche's method parameter.
1397 <literal>theta</literal> is a scalar value which can be
1398 positive or negative. <literal>theta = 1</literal> corresponds to the standard symmetric
1399 method which is conditionnaly coercive for <literal>gamma0</literal> small.
1400 <literal>theta = -1</literal> corresponds to the skew-symmetric method which is
1401 inconditionnaly coercive. <literal>theta = 0</literal> is the simplest method
1402 for which the second derivative of the Neumann term is not necessary.
1403 The optional parameter <literal>dataname_friction_coeff</literal> is the friction
1404 coefficient which could be constant or defined on a finite element
1405 method.
1406 CAUTION: This brick has to be added in the model after all the bricks
1407 corresponding to partial differential terms having a Neumann term.
1408 Moreover, This brick can only be applied to bricks declaring their
1409 Neumann terms. Returns the brick index in the model.
1410
1411 </para>
1412 </listitem>
1413
1414 <listitem>
1415 <para><literal>ind = gf_model_set(model M, 'add Nitsche fictitious domain contact brick', mesh_im mim, string varname1, string varname2, string dataname_d1, string dataname_d2, string gamma0name [, scalar theta[, string dataname_friction_coeff[, string dataname_alpha, string dataname_wt1,string dataname_wt2]]])</literal></para>
1416
1417 <para> Adds a contact condition with or without Coulomb friction between
1418 two bodies in a fictitious domain. The contact condition is applied on
1419 the variable <literal>varname_u1</literal> corresponds with the first and slave body
1420 with Nitsche's method and on the variable <literal>varname_u2</literal> corresponds
1421 with the second and master body with Nitsche's method.
1422 The contact condition is evaluated on the fictitious slave boundary.
1423 The first body should be described by the level-set <literal>dataname_d1</literal>
1424 and the second body should be described by the level-set <literal>dataname_d2</literal>.
1425 <literal>gamma0name</literal> is the Nitsche's method parameter.
1426 <literal>theta</literal> is a scalar value which can be positive or negative.
1427 <literal>theta = 1</literal> corresponds to the standard symmetric method which is
1428 conditionnaly coercive for <literal>gamma0</literal> small.
1429 <literal>theta = -1</literal> corresponds to the skew-symmetric method which is inconditionnaly coercive.
1430 <literal>theta = 0</literal> is the simplest method for which the second derivative of
1431 the Neumann term is not necessary. The optional parameter <literal>dataname_friction_coeff</literal>
1432 is the friction coefficient which could be constant or defined on a finite element method.
1433 CAUTION: This brick has to be added in the model after all the bricks
1434 corresponding to partial differential terms having a Neumann term.
1435 Moreover, This brick can only be applied to bricks declaring their
1436 Neumann terms. Returns the brick index in the model.
1437
1438 </para>
1439 </listitem>
1440
1441 <listitem>
1442 <para><literal>ind = gf_model_set(model M, 'add Nitsche fictitious domain contact brick twopass', mesh_im mim, string varname1, string varname2, string dataname_d1, string dataname_d2, string gamma0name [, scalar theta[, string dataname_friction_coeff[, string dataname_alpha, string dataname_wt1,string dataname_wt2]]])</literal></para>
1443
1444 <para> Adds a contact condition with or without Coulomb friction between
1445 two bodies in a fictitious domain. The contact condition is applied on
1446 the variable <literal>varname_u1</literal> corresponds with the first and slave body
1447 with Nitsche's method and on the variable <literal>varname_u2</literal> corresponds
1448 with the second and master body with Nitsche's method.
1449 The contact condition is evaluated on the fictitious slave boundary.
1450 The first body should be described by the level-set <literal>dataname_d1</literal>
1451 and the second body should be described by the level-set <literal>dataname_d2</literal>.
1452 <literal>gamma0name</literal> is the Nitsche's method parameter.
1453 <literal>theta</literal> is a scalar value which can be positive or negative.
1454 <literal>theta = 1</literal> corresponds to the standard symmetric method which is
1455 conditionnaly coercive for <literal>gamma0</literal> small.
1456 <literal>theta = -1</literal> corresponds to the skew-symmetric method which is inconditionnaly coercive.
1457 <literal>theta = 0</literal> is the simplest method for which the second derivative of
1458 the Neumann term is not necessary. The optional parameter <literal>dataname_friction_coeff</literal>
1459 is the friction coefficient which could be constant or defined on a finite element method.
1460 CAUTION: This brick has to be added in the model after all the bricks
1461 corresponding to partial differential terms having a Neumann term.
1462 Moreover, This brick can only be applied to bricks declaring their
1463 Neumann terms. Returns the brick index in the model.
1464
1465 </para>
1466 </listitem>
1467
1468 <listitem>
1469 <para><literal>ind = gf_model_set(model M, 'add nodal contact between nonmatching meshes brick', mesh_im mim1[, mesh_im mim2], string varname_u1[, string varname_u2], string multname_n[, string multname_t], string dataname_r[, string dataname_fr], int rg1, int rg2[, int slave1, int slave2, int augmented_version])</literal></para>
1470
1471 <para>
1472 Add a contact with or without friction condition between two faces of
1473 one or two elastic bodies. The condition is applied on the variable
1474 <literal>varname_u1</literal> or the variables <literal>varname_u1</literal> and <literal>varname_u2</literal> depending
1475 if a single or two distinct displacement fields are given. Integers
1476 <literal>rg1</literal> and <literal>rg2</literal> represent the regions expected to come in contact with
1477 each other. In the single displacement variable case the regions defined
1478 in both <literal>rg1</literal> and <literal>rg2</literal> refer to the variable <literal>varname_u1</literal>. In the case
1479 of two displacement variables, <literal>rg1</literal> refers to <literal>varname_u1</literal> and <literal>rg2</literal>
1480 refers to <literal>varname_u2</literal>. <literal>multname_n</literal> should be a fixed size variable
1481 whose size is the number of degrees of freedom on those regions among
1482 the ones defined in <literal>rg1</literal> and <literal>rg2</literal> which are characterized as "slaves".
1483 It represents the contact equivalent nodal normal forces. <literal>multname_t</literal>
1484 should be a fixed size variable whose size corresponds to the size of
1485 <literal>multname_n</literal> multiplied by qdim - 1 . It represents the contact
1486 equivalent nodal tangent (frictional) forces. The augmentation parameter
1487 <literal>r</literal> should be chosen in a range of acceptabe values (close to the Young
1488 modulus of the elastic body, see Getfem user documentation). The
1489 friction coefficient stored in the parameter <literal>fr</literal> is either a single
1490 value or a vector of the same size as <literal>multname_n</literal>. The optional
1491 parameters <literal>slave1</literal> and <literal>slave2</literal> declare if the regions defined in <literal>rg1</literal>
1492 and <literal>rg2</literal> are correspondingly considered as "slaves". By default
1493 <literal>slave1</literal> is true and <literal>slave2</literal> is false, i.e. <literal>rg1</literal> contains the slave
1494 surfaces, while 'rg2' the master surfaces. Preferrably only one of
1495 <literal>slave1</literal> and <literal>slave2</literal> is set to true. The parameter <literal>augmented_version</literal>
1496 indicates the augmentation strategy : 1 for the non-symmetric
1497 Alart-Curnier augmented Lagrangian, 2 for the symmetric one (except for
1498 the coupling between contact and Coulomb friction),
1499 3 for the new unsymmetric method.
1500 Basically, this brick computes the matrices BN and BT and the vectors
1501 gap and alpha and calls the basic contact brick.
1502 </para>
1503 </listitem>
1504
1505 <listitem>
1506 <para><literal>ind = gf_model_set(model M, 'add nonmatching meshes contact brick', mesh_im mim1[, mesh_im mim2], string varname_u1[, string varname_u2], string multname_n[, string multname_t], string dataname_r[, string dataname_fr], int rg1, int rg2[, int slave1, int slave2, int augmented_version])</literal></para>
1507
1508 <para> DEPRECATED FUNCTION. Use 'add nodal contact between nonmatching meshes brick' instead.
1509 </para>
1510 </listitem>
1511
1512 <listitem>
1513 <para><literal>ind = gf_model_set(model M, 'add integral contact between nonmatching meshes brick', mesh_im mim, string varname_u1, string varname_u2, string multname, string dataname_r [, string dataname_friction_coeff], int region1, int region2 [, int option [, string dataname_alpha [, string dataname_wt1 , string dataname_wt2]]])</literal></para>
1514
1515 <para>
1516 Add a contact with or without friction condition between nonmatching
1517 meshes to the model. This brick adds a contact which is defined
1518 in an integral way. It is the direct approximation of an augmented
1519 agrangian formulation (see Getfem user documentation) defined at the
1520 continuous level. The advantage should be a better scalability:
1521 the number of Newton iterations should be more or less independent
1522 of the mesh size.
1523 The condition is applied on the variables <literal>varname_u1</literal> and <literal>varname_u2</literal>
1524 on the boundaries corresponding to <literal>region1</literal> and <literal>region2</literal>.
1525 <literal>multname</literal> should be a fem variable representing the contact stress
1526 for the frictionless case and the contact and friction stress for the
1527 case with friction. An inf-sup condition between <literal>multname</literal> and
1528 <literal>varname_u1</literal> and <literal>varname_u2</literal> is required.
1529 The augmentation parameter <literal>dataname_r</literal> should be chosen in a
1530 range of acceptable values.
1531 The optional parameter <literal>dataname_friction_coeff</literal> is the friction
1532 coefficient which could be constant or defined on a finite element
1533 method on the same mesh as <literal>varname_u1</literal>.
1534 Possible values for <literal>option</literal> is 1 for the non-symmetric Alart-Curnier
1535 augmented Lagrangian method, 2 for the symmetric one, 3 for the
1536 non-symmetric Alart-Curnier method with an additional augmentation
1537 and 4 for a new unsymmetric method. The default value is 1.
1538 In case of contact with friction, <literal>dataname_alpha</literal>, <literal>dataname_wt1</literal> and
1539 <literal>dataname_wt2</literal> are optional parameters to solve evolutionary friction
1540 problems.
1541
1542 </para>
1543 </listitem>
1544
1545 <listitem>
1546 <para><literal>ind = gf_model_set(model M, 'add penalized contact between nonmatching meshes brick', mesh_im mim, string varname_u1, string varname_u2, string dataname_r [, string dataname_coeff], int region1, int region2 [, int option [, string dataname_lambda, [, string dataname_alpha [, string dataname_wt1, string dataname_wt2]]]])</literal></para>
1547
1548 <para>
1549 Add a penalized contact condition with or without friction between
1550 nonmatching meshes to the model.
1551 The condition is applied on the variables <literal>varname_u1</literal> and <literal>varname_u2</literal>
1552 on the boundaries corresponding to <literal>region1</literal> and <literal>region2</literal>.
1553 The penalization parameter <literal>dataname_r</literal> should be chosen
1554 large enough to prescribe approximate non-penetration and friction
1555 conditions but not too large not to deteriorate too much the
1556 conditionning of the tangent system.
1557 The optional parameter <literal>dataname_friction_coeff</literal> is the friction
1558 coefficient which could be constant or defined on a finite element
1559 method on the same mesh as <literal>varname_u1</literal>.
1560 <literal>dataname_lambda</literal> is an optional parameter used if option
1561 is 2. In that case, the penalization term is shifted by lambda (this
1562 allows the use of an Uzawa algorithm on the corresponding augmented
1563 Lagrangian formulation)
1564 In case of contact with friction, <literal>dataname_alpha</literal>, <literal>dataname_wt1</literal> and
1565 <literal>dataname_wt2</literal> are optional parameters to solve evolutionary friction
1566 problems.
1567
1568 </para>
1569 </listitem>
1570
1571 <listitem>
1572 <para><literal>ind = gf_model_set(model M, 'add integral large sliding contact brick raytracing', string dataname_r, scalar release_distance, [, string dataname_fr[, string dataname_alpha[, int version]]])</literal></para>
1573
1574 <para> Adds a large sliding contact with friction brick to the model.
1575 This brick is able to deal with self-contact, contact between
1576 several deformable bodies and contact with rigid obstacles.
1577 It uses the high-level generic assembly. It adds to the model
1578 a raytracing_interpolate_transformation object.
1579 For each slave boundary a multiplier variable should be defined.
1580 The release distance should be determined with care
1581 (generally a few times a mean element size, and less than the
1582 thickness of the body). Initially, the brick is added with no contact
1583 boundaries. The contact boundaries and rigid bodies are added with
1584 special functions. <literal>version</literal> is 0 (the default value) for the
1585 non-symmetric version and 1 for the more symmetric one
1586 (not fully symmetric even without friction).
1587 </para>
1588 </listitem>
1589
1590 <listitem>
1591 <para><literal>gf_model_set(model M, 'add rigid obstacle to large sliding contact brick', int indbrick, string expr, int N)</literal></para>
1592
1593 <para> Adds a rigid obstacle to an existing large sliding contact
1594 with friction brick. <literal>expr</literal> is an expression using the high-level
1595 generic assembly language (where <literal>x</literal> is the current point n the mesh)
1596 which should be a signed distance to the obstacle.
1597 <literal>N</literal> is the mesh dimension.
1598 </para>
1599 </listitem>
1600
1601 <listitem>
1602 <para><literal>gf_model_set(model M, 'add master contact boundary to large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname[, string wname])</literal></para>
1603
1604 <para> Adds a master contact boundary to an existing large sliding contact
1605 with friction brick.
1606 </para>
1607 </listitem>
1608
1609 <listitem>
1610 <para><literal>gf_model_set(model M, 'add slave contact boundary to large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname, string lambdaname[, string wname])</literal></para>
1611
1612 <para> Adds a slave contact boundary to an existing large sliding contact
1613 with friction brick.
1614 </para>
1615 </listitem>
1616
1617 <listitem>
1618 <para><literal>gf_model_set(model M, 'add master slave contact boundary to large sliding contact brick', int indbrick, mesh_im mim, int region, string dispname, string lambdaname[, string wname])</literal></para>
1619
1620 <para> Adds a contact boundary to an existing large sliding contact
1621 with friction brick which is both master and slave
1622 (allowing the self-contact).
1623 </para>
1624 </listitem>
1625
1626 <listitem>
1627 <para><literal>ind = gf_model_set(model M, 'add integral large sliding contact brick raytrace', multi_contact_frame multi_contact, string dataname_r[, string dataname_fr[, string dataname_alpha]])</literal></para>
1628
1629 <para> Adds a large sliding contact with friction brick to the model.
1630 This brick is able to deal with self-contact, contact between
1631 several deformable bodies and contact with rigid obstacles.
1632 It takes a variable of type multi_contact_frame wich describe
1633 the contact situation (master and slave contact boundaries,
1634 self-contact detection or not, and a few parameter).
1635 For each slave boundary (and also master boundaries if self-contact
1636 is asked) a multiplier variable should be defined.
1637 </para>
1638 </listitem>
1639
1640 <listitem>
1641 <para><literal>ind = gf_model_set(model M, 'add integral large sliding contact brick with field extension', mesh_im mim, string varname_u, string multname, string dataname_r, string dataname_fr, int rg)</literal></para>
1642
1643 <para> (still experimental brick)
1644 Add a large sliding contact with friction brick to the model.
1645 This brick is able to deal with auto-contact, contact between
1646 several deformable bodies and contact with rigid obstacles.
1647 The condition is applied on the variable <literal>varname_u</literal> on the
1648 boundary corresponding to <literal>region</literal>. <literal>dataname_r</literal> is the augmentation
1649 parameter of the augmented Lagrangian. <literal>dataname_friction_coeff</literal>
1650 is the friction coefficient. <literal>mim</literal> is an integration method on the
1651 boundary. <literal>varname_u</literal> is the variable on which the contact condition
1652 will be prescribed (should be of displacement type). <literal>multname</literal> is
1653 a multiplier defined on the boundary which will represent the contact
1654 force. If no additional boundary or rigid
1655 obstacle is added, only auto-contact will be detected. Use
1656 <literal>add_boundary_to_large_sliding_contact_brick</literal> and
1657 <literal>add_rigid_obstacle_to_large_sliding_contact_brick</literal> to add contact
1658 boundaries and rigid obstacles.
1659 </para>
1660 </listitem>
1661
1662 <listitem>
1663 <para><literal>ind = gf_model_set(model M, 'add boundary to large sliding contact brick', int indbrick, mesh_im mim, string varname_u, string multname, int rg)</literal></para>
1664
1665 <para> Add a contact boundary to an existing large sliding contact brick.
1666 <literal>indbrick</literal> is the brick index.
1667 </para>
1668 </listitem>
1669
1670 </itemizedlist>
1671 </refsection>
1672
1673 <refsection>
1674 <title>See Also</title>
1675 <simplelist type="inline">
1676 <member><link linkend="getfem_types">getfem types</link></member>
1677 </simplelist>
1678 </refsection>
1679
1680 <refsection>
1681 <title>Authors</title>
1682 <para>Y. Collette</para>
1683 </refsection>
1684
1685 </refentry>
+0
-145
interface/src/scilab/help/en_US/gf_plot.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_plot" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_plot</refname>
11
12 <refpurpose>This function plots a 2D or 3D finite elements
13 field.</refpurpose>
14 </refnamediv>
15
16 <refsynopsisdiv>
17 <title>Calling Sequence</title>
18
19 <synopsis>
20 [hsurf, hcontour, hquiver, hmesh, hdefmesh]=gf_plot(mf,U[, options...])
21 </synopsis>
22 </refsynopsisdiv>
23
24 <refsection>
25 <title>Description</title>
26
27 <para>This function plots a 2D or 3D finite elements field. </para>
28
29 <para>The options are specified as pairs of 'option name'/'option
30 value':</para>
31
32 <itemizedlist>
33 <listitem>
34 <para>'zplot',{'off'|'on'} : only for qdim=1, mdim=2 </para>
35 </listitem>
36
37 <listitem>
38 <para>'norm', {'off'|'on'} : if qdim &gt;= 2, color-plot the norm of
39 the field </para>
40 </listitem>
41
42 <listitem>
43 <para>'dir',[] : or the scalar product of the field with 'dir' (can be
44 a vector, or 'x', 'y' etc..)</para>
45 </listitem>
46
47 <listitem>
48 <para>'refine',8 : nb of refinments for curved edges and surface
49 plots</para>
50 </listitem>
51
52 <listitem>
53 <para>'interpolated',{'off'|'on'} : if triangular patch are
54 interpolated</para>
55 </listitem>
56
57 <listitem>
58 <para>'pcolor',{'on'|'off'} : if the field is scalar, a color plot of
59 its values is plotted</para>
60 </listitem>
61
62 <listitem>
63 <para>'quiver',{'on'|'off'} : if the field is vector, represent
64 arrows</para>
65 </listitem>
66
67 <listitem>
68 <para>'quiver_density',50 : density of arrows in quiver plot </para>
69 </listitem>
70
71 <listitem>
72 <para>'quiver_scale',1 : scaling of arrows (0=&gt;no scaling)</para>
73 </listitem>
74
75 <listitem>
76 <para>'mesh',{'off'|'on'} : show the mesh ?</para>
77 </listitem>
78
79 <listitem>
80 <para>'meshopts',{listl(0)} : list of options passed to gf_plot_slice
81 for the mesh </para>
82 </listitem>
83
84 <listitem>
85 <para>'deformed_mesh', {'off'|'on'} : shows the deformed mesh (only
86 when qdim == mdim)</para>
87 </listitem>
88
89 <listitem>
90 <para>'deformed_meshopts', {list(0)} : cell array of options passed to
91 gf_plot_slice for the deformed mesh</para>
92 </listitem>
93
94 <listitem>
95 <para>'deformation',[] : plots on the deformed object (only when qdim
96 == mdim)</para>
97 </listitem>
98
99 <listitem>
100 <para>'deformation_mf',[] : plots on the deformed object (only when
101 qdim == mdim)</para>
102 </listitem>
103
104 <listitem>
105 <para>'deformation_scale',0.1' : indicate the amplitude of the
106 deformation. Can be an absolute value if given as a number</para>
107 </listitem>
108
109 <listitem>
110 <para>'cvlst',[] : list of convexes to plot (empty=&gt;all
111 convexes)</para>
112 </listitem>
113
114 <listitem>
115 <para>'title',[] : set the title</para>
116 </listitem>
117
118 <listitem>
119 <para>'contour',[] : list of contour values</para>
120 </listitem>
121 </itemizedlist>
122 </refsection>
123
124 <refsection>
125 <title>Examples</title>
126
127 <para>For example, plotting a scalar field on the border of a 3D mesh can be done with </para>
128 <programlisting role="example"><![CDATA[
129 // load the 'strange.mesh_fem' (found in the getfem_scilab/demos directory)
130 mf = gf_mesh_fem('load', '../../../contrib/aposteriori/aposteriori.meshfem')
131 U = rand(1, gf_mesh_fem_get(mf, 'nbdof')); // random field that will be drawn
132 gf_plot(mf, U, 'refine', 25, 'cvlst', gf_mesh_get(mf,'outer faces'), 'mesh','on');
133 ]]></programlisting>
134 </refsection>
135
136 <refsection>
137 <title>See Also</title>
138
139 <simplelist type="inline">
140 <member><link linkend="gf_plot_mesh">gf_plot_mesh</link></member>
141 <member><link linkend="gf_plot_slice">gf_plot_slice</link></member>
142 </simplelist>
143 </refsection>
144 </refentry>
+0
-58
interface/src/scilab/help/en_US/gf_plot_1D.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_plot_1D" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_plot_1D</refname>
11
12 <refpurpose>This function plots a 1D finite element field.</refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>h=gf_plot_1D(mf,U,...)</synopsis>
19 </refsynopsisdiv>
20
21 <refsection>
22 <title>Description</title>
23
24 <para>This function plots a 1D finite element field.</para>
25
26 <para>Available options are specified as pairs of 'option name'/'option
27 value':</para>
28
29 <itemizedlist>
30 <listitem>
31 <para>'style', 'bo-': line style and dof marker style (same //
32 syntax as in the Scilab command 'plot');</para>
33 </listitem>
34
35 <listitem>
36 <para>'color', '': override line color (by a given color name);</para>
37 </listitem>
38
39 <listitem>
40 <para>'dof_color', '': overrride color of dof markers;</para>
41 </listitem>
42
43 <listitem>
44 <para>'width', 2: line width. </para>
45 </listitem>
46 </itemizedlist>
47 </refsection>
48
49 <refsection>
50 <title>See Also</title>
51
52 <simplelist type="inline">
53 <member><link linkend="gf_plot">gf_plot</link></member>
54 <member><link linkend="gf_plot_slice">gf_plot_slice</link></member>
55 </simplelist>
56 </refsection>
57 </refentry>
+0
-134
interface/src/scilab/help/en_US/gf_plot_mesh.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_plot_mesh" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_plot_mesh</refname>
11
12 <refpurpose>General mesh plotting function.</refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>[hmesh,hbound,hfill,hvert,hconv,hdof]=gf_plot_mesh(M, [,properties] [,'cvlst',CVLST] ['boundaries'[BLST]])</synopsis>
19 </refsynopsisdiv>
20
21 <refsection>
22 <title>Description</title>
23
24 <para>H=gf_plot_mesh(M) displays a mesh.</para>
25
26 <para>Properties are:</para>
27
28 <itemizedlist>
29 <listitem>
30 <para>'vertices', {'off'|'on'} displays also vertices numbers.</para>
31 </listitem>
32
33 <listitem>
34 <para>'convexes', {'off'|'on'} displays also convexes numbers.</para>
35 </listitem>
36
37 <listitem>
38 <para>'dof',{'off'|'on'} displays also finite element nodes.</para>
39 </listitem>
40
41 <listitem>
42 <para>'regions',BLST displays the boundaries listed in BLST.</para>
43 </listitem>
44
45 <listitem>
46 <para>'cvlst',CVLST display only the listed convexes. If CVLST has two
47 rows, display only the faces listed in the second row.</para>
48 </listitem>
49
50 <listitem>
51 <para>'edges', {'on' | 'off'} display edges ?</para>
52 </listitem>
53
54 <listitem>
55 <para>'faces', {'off'|'on'} fills each 2D-face of the mesh</para>
56 </listitem>
57
58 <listitem>
59 <para>'curved', {'off'|'on'} displays curved edges</para>
60 </listitem>
61
62 <listitem>
63 <para>'refine',N refine curved edges and filled faces N times</para>
64 </listitem>
65
66 <listitem>
67 <para>'deformation', Udef optionnal deformation applied to the mesh (M
68 must be a mesh_fem object)</para>
69 </listitem>
70
71 <listitem>
72 <para>'edges_color',[.6 .6 1] RGB values for the color of edges</para>
73 </listitem>
74
75 <listitem>
76 <para>'edges_width',1</para>
77 </listitem>
78
79 <listitem>
80 <para>'faces_color',[.75 .75 .75]) RGB values for the color of
81 faces</para>
82 </listitem>
83
84 <listitem>
85 <para>'quality',{ 'off' | 'on' } Display the quality of the
86 mesh.</para>
87 </listitem>
88 </itemizedlist>
89
90 <para>CAUTION: For 'dof', M should be a mesh_fem identifier, not a simple
91 mesh object.</para>
92
93 <para>This function can be used with any mesh in any dimension (except if
94 the 'faces' options is turned on).</para>
95
96 <para>On output, this function returns the handles to the various
97 graphical objects created: hmesh is the handles to the mesh lines, hbound
98 is the handles to the edges of the boundaries, hfill is the handle of the
99 patch objects of faces, hvert (resp hconv,hdof) is the handles of the
100 vertices (resp. convexes, dof) labels.</para>
101 </refsection>
102
103 <refsection>
104 <title>Examples</title>
105
106 <para>Displaying a donut (meshed with quadratic tetrahedrons) created with
107 <ulink url="http://gid.cimne.upc.es/">GiD</ulink>:</para>
108
109 <programlisting role="example">
110 // the mesh is in the demos directory of the distribution
111 m = gf_mesh('import','gid','donut_with_quadratic_tetra_1100_elements.msh');
112 gf_plot_mesh(m,'refine',15,'cvlst',gf_mesh_get(m,'outer faces'),'faces','on',...
113 'faces_color',[1. .9 .2],'curved','on','edges_width',2);
114 </programlisting>
115
116 <mediaobject>
117 <imageobject>
118 <imagedata align="center" fileref="../fig/gf_plot_mesh_fig_1.png" />
119 </imageobject>
120 </mediaobject>
121
122 <para>You can notice that the mesh has a small default on some
123 elements.</para>
124 </refsection>
125
126 <refsection>
127 <title>See Also</title>
128
129 <simplelist type="inline">
130 <member><link linkend="gf_plot">gf_plot</link></member>
131 </simplelist>
132 </refsection>
133 </refentry>
+0
-178
interface/src/scilab/help/en_US/gf_plot_slice.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_plot_slice" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_plot_slice</refname>
11
12 <refpurpose>this function is used to plot a slice of
13 mesh/mesh_fem</refpurpose>
14 </refnamediv>
15
16 <refsynopsisdiv>
17 <title>Calling Sequence</title>
18
19 <synopsis>function [hfaces, htube, hquiver, hmesh]=gf_plot_slice(sl,varargin)</synopsis>
20 </refsynopsisdiv>
21
22 <refsection>
23 <title>Description</title>
24
25 <para>This function is used to plot a slice of mesh/mesh_fem (see
26 gf_slice).</para>
27
28 <para>The options are specified as pairs of 'option name'/'option
29 value':</para>
30
31 <itemizedlist>
32 <listitem>
33 <para>data [] data to be plotted (one value per slice node)</para>
34 </listitem>
35
36 <listitem>
37 <para>convex_data [] data to be plotted (one value per mesh
38 convex)</para>
39 </listitem>
40
41 <listitem>
42 <para>mesh 'auto' :</para>
43
44 <itemizedlist>
45 <listitem>
46 <para>'on' -&gt; show the mesh (faces of edges)</para>
47 </listitem>
48
49 <listitem>
50 <para>'off' -&gt; ignore mesh</para>
51 </listitem>
52 </itemizedlist>
53 </listitem>
54
55 <listitem>
56 <para>mesh_edges 'on' show mesh edges ?</para>
57 </listitem>
58
59 <listitem>
60 <para>mesh_edges_color [0.60 0.60 1] color of mesh edges</para>
61 </listitem>
62
63 <listitem>
64 <para>mesh_edges_width 0.70 width of mesh edges</para>
65 </listitem>
66
67 <listitem>
68 <para>mesh_slice_edges 'on' show edges of the slice ?</para>
69 </listitem>
70
71 <listitem>
72 <para>mesh_slice_edges_color [0.70 0 0]</para>
73 </listitem>
74
75 <listitem>
76 <para>mesh_slice_edges_width 0.50</para>
77 </listitem>
78
79 <listitem>
80 <para>mesh_faces 'off' 'on' -&gt; fill mesh faces (otherwise they are
81 transparent)</para>
82 </listitem>
83
84 <listitem>
85 <para>mesh_faces_color [0.75 0.75 0.75]</para>
86 </listitem>
87
88 <listitem>
89 <para>pcolor 'on' if the field is scalar, a color plot of its values
90 is plotted</para>
91 </listitem>
92
93 <listitem>
94 <para>quiver 'on' if the field is vector, represent arrows</para>
95 </listitem>
96
97 <listitem>
98 <para>quiver_density 50 density of arrows in quiver plot</para>
99 </listitem>
100
101 <listitem>
102 <para>quiver_scale 1 density of arrows in quiver plot</para>
103 </listitem>
104
105 <listitem>
106 <para>tube 'on' use tube plot for 'filar' (1D) parts of the
107 slice</para>
108 </listitem>
109
110 <listitem>
111 <para>tube_color 'red' color of tubes (ignored if 'data' is not empty
112 and 'pcolor' is on)</para>
113 </listitem>
114
115 <listitem>
116 <para>tube_radius '0.05 tube radius; you can use a constant, or a
117 vector of nodal values</para>
118 </listitem>
119
120 <listitem>
121 <para>showoptions 'on' display the list of options </para>
122 </listitem>
123 </itemizedlist>
124
125 <para>The 'data' and 'convex_data' are mutually exclusive.</para>
126 </refsection>
127
128 <refsection>
129 <title>Examples</title>
130
131 <para>Consider that you have a 3D mesh fem mf and a vector field U defined on this mesh fem, solution of the Stokes problem in a tank (see the demo demo_stokes_3D_tank_draw.m in the tests directory).</para>
132
133 <programlisting role="example"><![CDATA[
134 scf();
135 // use a nice colormap
136 c = [0 0 1; 0 .5 1; 0 1 .5; 0 1 0; .5 1 0; 1 .5 0; 1 .4 0; 1 0 0; 1 .2 0; 1 .4 0; 1 .6 0; 1 .8 0];
137 h = gcf();
138 h.color_map = colormap(c);
139 // slice the mesh with two half spaces, and take the boundary of the resulting quarter-cylinder
140 sl = gf_slice(list('boundary',list('intersection',list('planar',+1,[0;0;0],[0;1;0]},...
141 list('planar',+1,[0;0;0],[1;0;0]))),m,6);
142 Usl = gf_compute(pde('mf_u'),U,'interpolate on', sl); // interpolate the solution on the slice
143 // show the norm of the displacement on this slice
144 gf_plot_slice(sl,'mesh','on','data',sqrt(sum(Usl.^2,1)),'mesh_slice_edges','off');
145
146 // another slice: now we take the lower part of the mesh
147 sl = gf_slice(list('boundary',list('intersection',list('planar',+1,[0;0;6],[0;0;-1]},...
148 list('planar',+1,[0;0;0],[0;1;0]))),m,6);
149 Usl = gf_compute(pde('mf_u'),U,'interpolate on', sl);
150 gf_plot_slice(sl,'mesh','on','data',sqrt(sum(Usl.^2,1)),'mesh_slice_edges','off');
151
152 // this slice contains the transparent mesh faces displayed on the picture
153 sl2 = gf_slice(list('boundary',list('planar',+1,[0;0;0],[0;1;0])),...
154 m,6,_setdiff(all_faces',TOPfaces','rows')');
155 gf_plot_slice(sl2,'mesh_faces','off','mesh','on','pcolor','off');
156
157 // last step is to plot the streamlines
158 hh = [1 5 9 12.5 16 19.5]; // vertical position of the different starting points of the streamlines
159 H = [zeros(2,length(hh));hh];
160
161 // compute the streamlines
162 tsl = gf_slice('streamlines',pde('mf_u'),U,H);
163 Utsl = gf_compute(pde('mf_u'),U,'interpolate on', tsl);
164
165 // render them with "tube plot"
166 [a,h] = gf_plot_slice(tsl,'mesh','off','tube_radius',.2,'tube_color','white');
167 ]]></programlisting>
168 </refsection>
169
170 <refsection>
171 <title>See Also</title>
172
173 <simplelist type="inline">
174 <member><link linkend="gf_slice">gf_slice</link></member>
175 </simplelist>
176 </refsection>
177 </refentry>
+0
-66
interface/src/scilab/help/en_US/gf_poly.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_poly" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_poly</refname>
11 <refpurpose>
12 Performs various operations on the polynom POLY.
13 </refpurpose>
14 </refnamediv>
15
16 <refsynopsisdiv>
17 <title>Calling Sequence</title>
18
19 <synopsis>gf_poly(poly P, 'print')</synopsis>
20 <synopsis>gf_poly(poly P, 'product')</synopsis>
21 </refsynopsisdiv>
22
23 <refsection>
24 <title>Description</title>
25 <para>
26 Performs various operations on the polynom POLY.
27 </para>
28 </refsection>
29
30 <refsection>
31 <title>Command list</title>
32
33 <itemizedlist>
34 <listitem>
35 <para><literal>gf_poly(poly P, 'print')</literal></para>
36
37 <para> Prints the content of P.
38
39 </para>
40 </listitem>
41
42 <listitem>
43 <para><literal>gf_poly(poly P, 'product')</literal></para>
44
45 <para> To be done ... !
46
47 </para>
48 </listitem>
49
50 </itemizedlist>
51 </refsection>
52
53 <refsection>
54 <title>See Also</title>
55 <simplelist type="inline">
56 <member><link linkend="getfem_types">getfem types</link></member>
57 </simplelist>
58 </refsection>
59
60 <refsection>
61 <title>Authors</title>
62 <para>Y. Collette</para>
63 </refsection>
64
65 </refentry>
+0
-135
interface/src/scilab/help/en_US/gf_precond.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_precond" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_precond</refname>
11 <refpurpose> The preconditioners may store REAL or COMPLEX values. They accept getfem
12 sparse matrices and Matlab sparse matrices.
13 </refpurpose>
14 </refnamediv>
15
16 <refsynopsisdiv>
17 <title>Calling Sequence</title>
18
19 <synopsis>PC = gf_precond('identity')</synopsis>
20 <synopsis>PC = gf_precond('cidentity')</synopsis>
21 <synopsis>PC = gf_precond('diagonal', vec D)</synopsis>
22 <synopsis>PC = gf_precond('ildlt', spmat m)</synopsis>
23 <synopsis>PC = gf_precond('ilu', spmat m)</synopsis>
24 <synopsis>PC = gf_precond('ildltt', spmat m[, int fillin[, scalar threshold]])</synopsis>
25 <synopsis>PC = gf_precond('ilut', spmat m[, int fillin[, scalar threshold]])</synopsis>
26 <synopsis>PC = gf_precond('superlu', spmat m)</synopsis>
27 <synopsis>PC = gf_precond('spmat', spmat m)</synopsis>
28 </refsynopsisdiv>
29
30 <refsection>
31 <title>Description</title>
32 <para>General constructor for precond objects.</para>
33
34 <para> The preconditioners may store REAL or COMPLEX values. They accept getfem
35 sparse matrices and Matlab sparse matrices.
36 </para>
37 </refsection>
38
39 <refsection>
40 <title>Command list</title>
41
42 <itemizedlist>
43 <listitem>
44 <para><literal>PC = gf_precond('identity')</literal></para>
45
46 <para> Create a REAL identity precondioner.
47 </para>
48 </listitem>
49
50 <listitem>
51 <para><literal>PC = gf_precond('cidentity')</literal></para>
52
53 <para> Create a COMPLEX identity precondioner.
54 </para>
55 </listitem>
56
57 <listitem>
58 <para><literal>PC = gf_precond('diagonal', vec D)</literal></para>
59
60 <para> Create a diagonal precondioner.
61 </para>
62 </listitem>
63
64 <listitem>
65 <para><literal>PC = gf_precond('ildlt', spmat m)</literal></para>
66
67 <para> Create an ILDLT (Cholesky) preconditioner for the (symmetric) sparse
68 matrix <literal>m</literal>. This preconditioner has the same sparsity pattern than <literal>m</literal>
69 (no fill-in).
70 </para>
71 </listitem>
72
73 <listitem>
74 <para><literal>PC = gf_precond('ilu', spmat m)</literal></para>
75
76 <para> Create an ILU (Incomplete LU) preconditioner for the sparse
77 matrix <literal>m</literal>. This preconditioner has the same sparsity pattern
78 than <literal>m</literal> (no fill-in).
79 </para>
80 </listitem>
81
82 <listitem>
83 <para><literal>PC = gf_precond('ildltt', spmat m[, int fillin[, scalar threshold]])</literal></para>
84
85 <para> Create an ILDLTT (Cholesky with filling) preconditioner for the
86 (symmetric) sparse matrix <literal>m</literal>. The preconditioner may add at most
87 <literal>fillin</literal> additional non-zero entries on each line. The default value
88 for <literal>fillin</literal> is 10, and the default threshold is1e-7.
89 </para>
90 </listitem>
91
92 <listitem>
93 <para><literal>PC = gf_precond('ilut', spmat m[, int fillin[, scalar threshold]])</literal></para>
94
95 <para> Create an ILUT (Incomplete LU with filling) preconditioner for the
96 sparse matrix <literal>m</literal>. The preconditioner may add at most <literal>fillin</literal>
97 additional non-zero entries on each line. The default value for
98 <literal>fillin</literal> is 10, and the default threshold is 1e-7.
99 </para>
100 </listitem>
101
102 <listitem>
103 <para><literal>PC = gf_precond('superlu', spmat m)</literal></para>
104
105 <para> Uses SuperLU to build an exact factorization of the sparse matrix <literal>m</literal>.
106 This preconditioner is only available if the getfem-interface was
107 built with SuperLU support. Note that LU factorization is likely to
108 eat all your memory for 3D problems.
109 </para>
110 </listitem>
111
112 <listitem>
113 <para><literal>PC = gf_precond('spmat', spmat m)</literal></para>
114
115 <para> Preconditionner given explicitely by a sparse matrix.
116 </para>
117 </listitem>
118
119 </itemizedlist>
120 </refsection>
121
122 <refsection>
123 <title>See Also</title>
124 <simplelist type="inline">
125 <member><link linkend="getfem_types">getfem types</link></member>
126 </simplelist>
127 </refsection>
128
129 <refsection>
130 <title>Authors</title>
131 <para>Y. Collette</para>
132 </refsection>
133
134 </refentry>
+0
-107
interface/src/scilab/help/en_US/gf_precond_get.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_precond_get" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_precond_get</refname>
11 <refpurpose> General function for querying information about precond objects.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>gf_precond_get(precond P, 'mult', vec V)</synopsis>
19 <synopsis>gf_precond_get(precond P, 'tmult', vec V)</synopsis>
20 <synopsis>gf_precond_get(precond P, 'type')</synopsis>
21 <synopsis>gf_precond_get(precond P, 'size')</synopsis>
22 <synopsis>gf_precond_get(precond P, 'is_complex')</synopsis>
23 <synopsis>s = gf_precond_get(precond P, 'char')</synopsis>
24 <synopsis>gf_precond_get(precond P, 'display')</synopsis>
25 </refsynopsisdiv>
26
27 <refsection>
28 <title>Description</title>
29 <para> General function for querying information about precond objects.
30 </para>
31 </refsection>
32
33 <refsection>
34 <title>Command list</title>
35
36 <itemizedlist>
37 <listitem>
38 <para><literal>gf_precond_get(precond P, 'mult', vec V)</literal></para>
39
40 <para> Apply the preconditioner to the supplied vector.
41 </para>
42 </listitem>
43
44 <listitem>
45 <para><literal>gf_precond_get(precond P, 'tmult', vec V)</literal></para>
46
47 <para> Apply the transposed preconditioner to the supplied vector.
48 </para>
49 </listitem>
50
51 <listitem>
52 <para><literal>gf_precond_get(precond P, 'type')</literal></para>
53
54 <para> Return a string describing the type of the preconditioner ('ilu', 'ildlt',..).
55 </para>
56 </listitem>
57
58 <listitem>
59 <para><literal>gf_precond_get(precond P, 'size')</literal></para>
60
61 <para> Return the dimensions of the preconditioner.
62 </para>
63 </listitem>
64
65 <listitem>
66 <para><literal>gf_precond_get(precond P, 'is_complex')</literal></para>
67
68 <para> Return 1 if the preconditioner stores complex values.
69 </para>
70 </listitem>
71
72 <listitem>
73 <para><literal>s = gf_precond_get(precond P, 'char')</literal></para>
74
75 <para> Output a (unique) string representation of the precond.
76
77 This can be used to perform comparisons between two
78 different precond objects.
79 This function is to be completed.
80
81 </para>
82 </listitem>
83
84 <listitem>
85 <para><literal>gf_precond_get(precond P, 'display')</literal></para>
86
87 <para> displays a short summary for a precond object.
88 </para>
89 </listitem>
90
91 </itemizedlist>
92 </refsection>
93
94 <refsection>
95 <title>See Also</title>
96 <simplelist type="inline">
97 <member><link linkend="getfem_types">getfem types</link></member>
98 </simplelist>
99 </refsection>
100
101 <refsection>
102 <title>Authors</title>
103 <para>Y. Collette</para>
104 </refsection>
105
106 </refentry>
+0
-185
interface/src/scilab/help/en_US/gf_slice.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_slice" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_slice</refname>
11 <refpurpose> Creation of a mesh slice. Mesh slices are very similar to a
12 P1-discontinuous mesh_fem on which interpolation is very fast. The slice is
13 built from a mesh object, and a description of the slicing operation, for
14 example::
15
16 sl = gf_slice({'planar',+1,[0;0],[1;0]}, m, 5);
17
18 cuts the original mesh with the half space {y>0}. Each convex of the
19 original mesh <literal>m</literal> is simplexified (for example a quadrangle is splitted
20 into 2 triangles), and each simplex is refined 5 times.
21
22 Slicing operations can be:
23
24 * cutting with a plane, a sphere or a cylinder
25 * intersection or union of slices
26 * isovalues surfaces/volumes
27 * "points", "streamlines" (see below)
28
29 If the first argument is a mesh_fem <literal>mf</literal> instead of a mesh, and if it is
30 followed by a <literal>mf</literal>-field <literal>u</literal>, then the deformation <literal>u</literal> will be applied to the
31 mesh before the slicing operation.
32
33 The first argument can also be a slice.
34 </refpurpose>
35 </refnamediv>
36
37 <refsynopsisdiv>
38 <title>Calling Sequence</title>
39
40 <synopsis>sl = gf_slice(sliceop, {slice sl|{mesh m| mesh_fem mf, vec U}, int refine}[, mat CVfids])</synopsis>
41 <synopsis>sl = gf_slice('streamlines', mesh_fem mf, mat U, mat S)</synopsis>
42 <synopsis>sl = gf_slice('points', mesh m, mat Pts)</synopsis>
43 <synopsis>sl = gf_slice('load', string filename[, mesh m])</synopsis>
44 </refsynopsisdiv>
45
46 <refsection>
47 <title>Description</title>
48 <para>General constructor for slice objects.</para>
49
50 <para> Creation of a mesh slice. Mesh slices are very similar to a
51 P1-discontinuous mesh_fem on which interpolation is very fast. The slice is
52 built from a mesh object, and a description of the slicing operation, for
53 example::
54
55 sl = gf_slice({'planar',+1,[0;0],[1;0]}, m, 5);
56
57 cuts the original mesh with the half space {y>0}. Each convex of the
58 original mesh <literal>m</literal> is simplexified (for example a quadrangle is splitted
59 into 2 triangles), and each simplex is refined 5 times.
60
61 Slicing operations can be:
62
63 * cutting with a plane, a sphere or a cylinder
64 * intersection or union of slices
65 * isovalues surfaces/volumes
66 * "points", "streamlines" (see below)
67
68 If the first argument is a mesh_fem <literal>mf</literal> instead of a mesh, and if it is
69 followed by a <literal>mf</literal>-field <literal>u</literal>, then the deformation <literal>u</literal> will be applied to the
70 mesh before the slicing operation.
71
72 The first argument can also be a slice.
73 </para>
74 </refsection>
75
76 <refsection>
77 <title>Command list</title>
78
79 <itemizedlist>
80 <listitem>
81 <para><literal>sl = gf_slice(sliceop, {slice sl|{mesh m| mesh_fem mf, vec U}, int refine}[, mat CVfids])</literal></para>
82
83 <para> Create a slice using <literal>sliceop</literal> operation.
84
85 <literal>sliceop</literal> operation is specified with Scilab CELL arrays (i.e. with braces) . The first element is the
86 name of the operation, followed the slicing options:
87
88 * {'none'} :
89 Does not cut the mesh.
90
91 * {'planar', int orient, vec p, vec n} :
92 Planar cut. <literal>p</literal> and <literal>n</literal> define a half-space, <literal>p</literal> being a point belong to
93 the boundary of the half-space, and <literal>n</literal> being its normal. If <literal>orient</literal> is
94 equal to -1 (resp. 0, +1), then the slicing operation will cut the mesh
95 with the "interior" (resp. "boundary", "exterior") of the half-space.
96 <literal>orient</literal> may also be set to +2 which means that the mesh will be sliced,
97 but both the outer and inner parts will be kept.
98
99 * {'ball', int orient, vec c, scalar r} :
100 Cut with a ball of center <literal>c</literal> and radius <literal>r</literal>.
101
102 * {'cylinder', int orient, vec p1, vec p2, scalar r} :
103 Cut with a cylinder whose axis is the line <literal>(p1, p2)</literal> and whose radius
104 is <literal>r</literal>.
105
106 * {'isovalues', int orient, mesh_fem mf, vec U, scalar s} :
107 Cut using the isosurface of the field <literal>U</literal> (defined on the mesh_fem <literal>mf</literal>).
108 The result is the set <literal>{x such that <latex style="text"><![CDATA[U(x) \leq s]]></latex>}</literal> or <literal>{x such that
109 </literal>U<literal>(x)=</literal>s<literal>}</literal> or <literal>{x such that </literal>U<literal>(x) >= </literal>s<literal>}</literal> depending on the value of
110 <literal>orient</literal>.
111
112 * {'boundary'[, SLICEOP]} :
113 Return the boundary of the result of SLICEOP, where SLICEOP is any
114 slicing operation. If SLICEOP is not specified, then the whole mesh is
115 considered (i.e. it is equivalent to {'boundary',{'none'}}).
116
117 * {'explode', mat Coef} :
118 Build an 'exploded' view of the mesh: each convex is shrinked (<latex style="text"><![CDATA[0 <
119 \text{Coef} \leq 1]]></latex>). In the case of 3D convexes, only their faces are kept.
120
121 * {'union', SLICEOP1, SLICEOP2} :
122 Returns the union of slicing operations.
123
124 * {'intersection', SLICEOP1, SLICEOP2} :
125 Returns the intersection of slicing operations, for example::
126
127 sl = gf_slice({intersection',{'planar',+1,[0;0;0],[0;0;1]},
128 {'isovalues',-1,mf2,u2,0}},mf,u,5)
129
130 * {'comp', SLICEOP} :
131 Returns the complementary of slicing operations.
132
133 * {'diff', SLICEOP1, SLICEOP2} :
134 Returns the difference of slicing operations.
135
136 * {'mesh', mesh m} :
137 Build a slice which is the intersection of the sliced mesh with another
138 mesh. The slice is such that all of its simplexes are stricly contained
139 into a convex of each mesh.
140
141 </para>
142 </listitem>
143
144 <listitem>
145 <para><literal>sl = gf_slice('streamlines', mesh_fem mf, mat U, mat S)</literal></para>
146
147 <para> Compute streamlines of the (vector) field <literal>U</literal>, with seed points given
148 by the columns of <literal>S</literal>.
149 </para>
150 </listitem>
151
152 <listitem>
153 <para><literal>sl = gf_slice('points', mesh m, mat Pts)</literal></para>
154
155 <para> Return the "slice" composed of points given by the columns of <literal>Pts</literal>
156 (useful for interpolation on a given set of sparse points, see
157 <literal></literal>gf_compute('interpolate on',sl)<literal></literal>.
158 </para>
159 </listitem>
160
161 <listitem>
162 <para><literal>sl = gf_slice('load', string filename[, mesh m])</literal></para>
163
164 <para> Load the slice (and its linked mesh if it is not given as an argument)
165 from a text file.
166 </para>
167 </listitem>
168
169 </itemizedlist>
170 </refsection>
171
172 <refsection>
173 <title>See Also</title>
174 <simplelist type="inline">
175 <member><link linkend="getfem_types">getfem types</link></member>
176 </simplelist>
177 </refsection>
178
179 <refsection>
180 <title>Authors</title>
181 <para>Y. Collette</para>
182 </refsection>
183
184 </refentry>
+0
-261
interface/src/scilab/help/en_US/gf_slice_get.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_slice_get" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_slice_get</refname>
11 <refpurpose> General function for querying information about slice objects.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>d = gf_slice_get(slice S, 'dim')</synopsis>
19 <synopsis>a = gf_slice_get(slice S, 'area')</synopsis>
20 <synopsis>CVids = gf_slice_get(slice S, 'cvs')</synopsis>
21 <synopsis>n = gf_slice_get(slice S, 'nbpts')</synopsis>
22 <synopsis>ns = gf_slice_get(slice S, 'nbsplxs'[, int dim])</synopsis>
23 <synopsis>P = gf_slice_get(slice S, 'pts')</synopsis>
24 <synopsis>{S, CV2S} = gf_slice_get(slice S, 'splxs',int dim)</synopsis>
25 <synopsis>{P, E1, E2} = gf_slice_get(slice S, 'edges')</synopsis>
26 <synopsis>Usl = gf_slice_get(slice S, 'interpolate_convex_data', mat Ucv)</synopsis>
27 <synopsis>m = gf_slice_get(slice S, 'linked mesh')</synopsis>
28 <synopsis>m = gf_slice_get(slice S, 'mesh')</synopsis>
29 <synopsis>z = gf_slice_get(slice S, 'memsize')</synopsis>
30 <synopsis>gf_slice_get(slice S, 'export to vtk', string filename, ...)</synopsis>
31 <synopsis>gf_slice_get(slice S, 'export to pov', string filename)</synopsis>
32 <synopsis>gf_slice_get(slice S, 'export to dx', string filename, ...)</synopsis>
33 <synopsis>gf_slice_get(slice S, 'export to pos', string filename[, string name][[,mesh_fem mf1], mat U1, string nameU1[[,mesh_fem mf1], mat U2, string nameU2,...])</synopsis>
34 <synopsis>s = gf_slice_get(slice S, 'char')</synopsis>
35 <synopsis>gf_slice_get(slice S, 'display')</synopsis>
36 </refsynopsisdiv>
37
38 <refsection>
39 <title>Description</title>
40 <para> General function for querying information about slice objects.
41 </para>
42 </refsection>
43
44 <refsection>
45 <title>Command list</title>
46
47 <itemizedlist>
48 <listitem>
49 <para><literal>d = gf_slice_get(slice S, 'dim')</literal></para>
50
51 <para> Return the dimension of the slice (2 for a 2D mesh, etc..).
52 </para>
53 </listitem>
54
55 <listitem>
56 <para><literal>a = gf_slice_get(slice S, 'area')</literal></para>
57
58 <para> Return the area of the slice.
59 </para>
60 </listitem>
61
62 <listitem>
63 <para><literal>CVids = gf_slice_get(slice S, 'cvs')</literal></para>
64
65 <para> Return the list of convexes of the original mesh contained in the slice.
66 </para>
67 </listitem>
68
69 <listitem>
70 <para><literal>n = gf_slice_get(slice S, 'nbpts')</literal></para>
71
72 <para> Return the number of points in the slice.
73 </para>
74 </listitem>
75
76 <listitem>
77 <para><literal>ns = gf_slice_get(slice S, 'nbsplxs'[, int dim])</literal></para>
78
79 <para> Return the number of simplexes in the slice.
80
81 Since the slice may contain points (simplexes of dim 0), segments
82 (simplexes of dimension 1), triangles etc., the result is a vector
83 of size gf_slice_get(slice S, 'dim')+1, except if the optional argument <literal>dim</literal>
84 is used.
85 </para>
86 </listitem>
87
88 <listitem>
89 <para><literal>P = gf_slice_get(slice S, 'pts')</literal></para>
90
91 <para> Return the list of point coordinates.
92 </para>
93 </listitem>
94
95 <listitem>
96 <para><literal>{S, CV2S} = gf_slice_get(slice S, 'splxs',int dim)</literal></para>
97
98 <para> Return the list of simplexes of dimension <literal>dim</literal>.
99
100 On output, S has 'dim+1' rows, each column contains the point
101 numbers of a simplex. The vector <literal>CV2S</literal> can be used to find the
102 list of simplexes for any convex stored in the slice. For example
103 'S(:,CV2S(4):CV2S(5)-1)'
104 gives the list of simplexes for the fourth convex.
105 </para>
106 </listitem>
107
108 <listitem>
109 <para><literal>{P, E1, E2} = gf_slice_get(slice S, 'edges')</literal></para>
110
111 <para> Return the edges of the linked mesh contained in the slice.
112
113 <literal>P</literal> contains the list of all edge vertices, <literal>E1</literal> contains
114 the indices of each mesh edge in <literal>P</literal>, and <literal>E2</literal> contains the
115 indices of each "edges" which is on the border of the slice.
116 This function is useless except for post-processing purposes.
117 </para>
118 </listitem>
119
120 <listitem>
121 <para><literal>Usl = gf_slice_get(slice S, 'interpolate_convex_data', mat Ucv)</literal></para>
122
123 <para> Interpolate data given on each convex of the mesh to the slice nodes.
124
125 The input array <literal>Ucv</literal> may have any number of dimensions, but its
126 last dimension should be equal to gf_mesh_get(mesh M, 'max cvid').
127
128 Example of use: gf_slice_get(slice S, 'interpolate_convex_data', gf_mesh_get(mesh M, 'quality')).
129 </para>
130 </listitem>
131
132 <listitem>
133 <para><literal>m = gf_slice_get(slice S, 'linked mesh')</literal></para>
134
135 <para> Return the mesh on which the slice was taken.
136 </para>
137 </listitem>
138
139 <listitem>
140 <para><literal>m = gf_slice_get(slice S, 'mesh')</literal></para>
141
142 <para> Return the mesh on which the slice was taken
143 (identical to 'linked mesh')
144 </para>
145 </listitem>
146
147 <listitem>
148 <para><literal>z = gf_slice_get(slice S, 'memsize')</literal></para>
149
150 <para> Return the amount of memory (in bytes) used by the slice object.
151 </para>
152 </listitem>
153
154 <listitem>
155 <para><literal>gf_slice_get(slice S, 'export to vtk', string filename, ...)</literal></para>
156
157 <para> Export a slice to VTK.
158
159 Following the <literal>filename</literal>, you may use any of the following options:
160
161 - if 'ascii' is not used, the file will contain binary data
162 (non portable, but fast).
163 - if 'edges' is used, the edges of the original mesh will be
164 written instead of the slice content.
165
166 More than one dataset may be written, just list them. Each dataset
167 consists of either:
168
169 - a field interpolated on the slice (scalar, vector or tensor),
170 followed by an optional name.
171 - a mesh_fem and a field, followed by an optional name.
172
173 Examples:
174
175 - gf_slice_get(slice S, 'export to vtk', 'test.vtk', Usl, 'first_dataset', mf,
176 U2, 'second_dataset')
177 - gf_slice_get(slice S, 'export to vtk', 'test.vtk', 'ascii', mf,U2)
178 - gf_slice_get(slice S, 'export to vtk', 'test.vtk', 'edges', 'ascii', Uslice)
179 </para>
180 </listitem>
181
182 <listitem>
183 <para><literal>gf_slice_get(slice S, 'export to pov', string filename)</literal></para>
184
185 <para> Export a the triangles of the slice to POV-RAY.
186 </para>
187 </listitem>
188
189 <listitem>
190 <para><literal>gf_slice_get(slice S, 'export to dx', string filename, ...)</literal></para>
191
192 <para> Export a slice to OpenDX.
193
194 Following the <literal>filename</literal>, you may use any of the following
195 options:
196
197 - if 'ascii' is not used, the file will contain binary data
198 (non portable, but fast).
199 - if 'edges' is used, the edges of the original mesh will be
200 written instead of the slice content.
201 - if 'append' is used, the opendx file will not be overwritten,
202 and the new data will be added at the end of the file.
203
204 More than one dataset may be written, just list them. Each dataset
205 consists of either:
206
207 - a field interpolated on the slice (scalar, vector or tensor),
208 followed by an optional name.
209 - a mesh_fem and a field, followed by an optional name.
210 </para>
211 </listitem>
212
213 <listitem>
214 <para><literal>gf_slice_get(slice S, 'export to pos', string filename[, string name][[,mesh_fem mf1], mat U1, string nameU1[[,mesh_fem mf1], mat U2, string nameU2,...])</literal></para>
215
216 <para> Export a slice to Gmsh.
217
218 More than one dataset may be written, just list them.
219 Each dataset consists of either:
220
221 - a field interpolated on the slice (scalar, vector or tensor).
222 - a mesh_fem and a field.
223 </para>
224 </listitem>
225
226 <listitem>
227 <para><literal>s = gf_slice_get(slice S, 'char')</literal></para>
228
229 <para> Output a (unique) string representation of the slice.
230
231 This can be used to perform comparisons between two
232 different slice objects.
233 This function is to be completed.
234
235 </para>
236 </listitem>
237
238 <listitem>
239 <para><literal>gf_slice_get(slice S, 'display')</literal></para>
240
241 <para> displays a short summary for a slice object.
242 </para>
243 </listitem>
244
245 </itemizedlist>
246 </refsection>
247
248 <refsection>
249 <title>See Also</title>
250 <simplelist type="inline">
251 <member><link linkend="getfem_types">getfem types</link></member>
252 </simplelist>
253 </refsection>
254
255 <refsection>
256 <title>Authors</title>
257 <para>Y. Collette</para>
258 </refsection>
259
260 </refentry>
+0
-59
interface/src/scilab/help/en_US/gf_slice_set.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_slice_set" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_slice_set</refname>
11 <refpurpose> Edition of mesh slices.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>gf_slice_set(slice S, 'pts', mat P)</synopsis>
19 </refsynopsisdiv>
20
21 <refsection>
22 <title>Description</title>
23 <para> Edition of mesh slices.
24 </para>
25 </refsection>
26
27 <refsection>
28 <title>Command list</title>
29
30 <itemizedlist>
31 <listitem>
32 <para><literal>gf_slice_set(slice S, 'pts', mat P)</literal></para>
33
34 <para> Replace the points of the slice.
35
36 The new points <literal>P</literal> are stored in the columns the matrix. Note that
37 you can use the function to apply a deformation to a slice, or to
38 change the dimension of the slice (the number of rows of <literal>P</literal> is not
39 required to be equal to gf_slice_get(slice S, 'dim')).
40 </para>
41 </listitem>
42
43 </itemizedlist>
44 </refsection>
45
46 <refsection>
47 <title>See Also</title>
48 <simplelist type="inline">
49 <member><link linkend="getfem_types">getfem types</link></member>
50 </simplelist>
51 </refsection>
52
53 <refsection>
54 <title>Authors</title>
55 <para>Y. Collette</para>
56 </refsection>
57
58 </refentry>
+0
-37
interface/src/scilab/help/en_US/gf_solve.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_solve" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_solve</refname>
11
12 <refpurpose>General solver for getfem PDE</refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>varargout=gf_solve(what, varargin)</synopsis>
19 </refsynopsisdiv>
20
21 <refsection>
22 <title>See Also</title>
23
24 <simplelist type="inline">
25 <member><link linkend="gf_compute">gf_compute</link></member>
26 <member><link linkend="gf_linsolve">gf_linsolve</link></member>
27 <member><link linkend="gf_mdbrick">gf_mdbrick</link></member>
28 </simplelist>
29 </refsection>
30
31 <refsection>
32 <title>Authors</title>
33
34 <para>Y. Collette</para>
35 </refsection>
36 </refentry>
+0
-146
interface/src/scilab/help/en_US/gf_spmat.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_spmat" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_spmat</refname>
11 <refpurpose> Create a new sparse matrix in getfem++ format. These sparse matrix can be stored as CSC (compressed column
12 sparse), which is the format used by Matlab, or they can be stored as WSC
13 (internal format to getfem). The CSC matrices are not writable (it would
14 be very inefficient), but they are optimized for multiplication with
15 vectors, and memory usage. The WSC are writable, they are very fast with
16 respect to random read/write operation. However their memory overhead is
17 higher than CSC matrices, and they are a little bit slower for
18 matrix-vector multiplications.
19
20 By default, all newly created matrices are build as WSC matrices. This can
21 be changed later with <literal></literal>gf_spmat_set(spmat S, 'to_csc',...)<literal></literal>, or may be changed
22 automatically by getfem (for example <literal></literal>gf_linsolve()<literal></literal> converts the
23 matrices to CSC).
24
25 The matrices may store REAL or COMPLEX values.
26 </refpurpose>
27 </refnamediv>
28
29 <refsynopsisdiv>
30 <title>Calling Sequence</title>
31
32 <synopsis>SM = gf_spmat('empty', int m [, int n])</synopsis>
33 <synopsis>SM = gf_spmat('copy', mat K [, I [, J]])</synopsis>
34 <synopsis>SM = gf_spmat('identity', int n)</synopsis>
35 <synopsis>SM = gf_spmat('mult', spmat A, spmat B)</synopsis>
36 <synopsis>SM = gf_spmat('add', spmat A, spmat B)</synopsis>
37 <synopsis>SM = gf_spmat('diag', mat D [, ivec E [, int n [,int m]]])</synopsis>
38 <synopsis>SM = gf_spmat('load','hb'|'harwell-boeing'|'mm'|'matrix-market', string filename)</synopsis>
39 </refsynopsisdiv>
40
41 <refsection>
42 <title>Description</title>
43 <para>General constructor for spmat objects.</para>
44
45 <para> Create a new sparse matrix in getfem++ format. These sparse matrix can be stored as CSC (compressed column
46 sparse), which is the format used by Matlab, or they can be stored as WSC
47 (internal format to getfem). The CSC matrices are not writable (it would
48 be very inefficient), but they are optimized for multiplication with
49 vectors, and memory usage. The WSC are writable, they are very fast with
50 respect to random read/write operation. However their memory overhead is
51 higher than CSC matrices, and they are a little bit slower for
52 matrix-vector multiplications.
53
54 By default, all newly created matrices are build as WSC matrices. This can
55 be changed later with <literal></literal>gf_spmat_set(spmat S, 'to_csc',...)<literal></literal>, or may be changed
56 automatically by getfem (for example <literal></literal>gf_linsolve()<literal></literal> converts the
57 matrices to CSC).
58
59 The matrices may store REAL or COMPLEX values.
60 </para>
61 </refsection>
62
63 <refsection>
64 <title>Command list</title>
65
66 <itemizedlist>
67 <listitem>
68 <para><literal>SM = gf_spmat('empty', int m [, int n])</literal></para>
69
70 <para> Create a new empty (i.e. full of zeros) sparse matrix, of dimensions
71 <literal>m x n</literal>. If <literal>n</literal> is omitted, the matrix dimension is <literal>m x m</literal>.
72 </para>
73 </listitem>
74
75 <listitem>
76 <para><literal>SM = gf_spmat('copy', mat K [, I [, J]])</literal></para>
77
78 <para> Duplicate a matrix <literal>K</literal> (which might be a spmat). If index <literal>I</literal> and/or <literal>J</literal> are given, the matrix will
79 be a submatrix of <literal>K</literal>. For example::
80
81
82 m = gf_spmat('copy', sprand(50,50,.1), 1:40, [6 7 8 3 10])
83
84
85 will return a 40x5 matrix.
86 </para>
87 </listitem>
88
89 <listitem>
90 <para><literal>SM = gf_spmat('identity', int n)</literal></para>
91
92 <para> Create a <literal>n x n</literal> identity matrix.
93 </para>
94 </listitem>
95
96 <listitem>
97 <para><literal>SM = gf_spmat('mult', spmat A, spmat B)</literal></para>
98
99 <para> Create a sparse matrix as the product of the sparse matrices <literal>A</literal> and
100 <literal>B</literal>. It requires that <literal>A</literal> and <literal>B</literal> be both real or both complex, you
101 may have to use <literal></literal>gf_spmat_set(spmat S, 'to_complex')<literal></literal>
102 </para>
103 </listitem>
104
105 <listitem>
106 <para><literal>SM = gf_spmat('add', spmat A, spmat B)</literal></para>
107
108 <para> Create a sparse matrix as the sum of the sparse matrices <literal>A</literal> and <literal>B</literal>.
109 Adding a real matrix with a complex matrix is possible.
110 </para>
111 </listitem>
112
113 <listitem>
114 <para><literal>SM = gf_spmat('diag', mat D [, ivec E [, int n [,int m]]])</literal></para>
115
116 <para> Create a diagonal matrix. If <literal>E</literal> is given, <literal>D</literal> might be a matrix and
117 each column of <literal>E</literal> will contain the sub-diagonal number that will be
118 filled with the corresponding column of <literal>D</literal>.
119 </para>
120 </listitem>
121
122 <listitem>
123 <para><literal>SM = gf_spmat('load','hb'|'harwell-boeing'|'mm'|'matrix-market', string filename)</literal></para>
124
125 <para> Read a sparse matrix from an Harwell-Boeing or a Matrix-Market file
126 .
127 </para>
128 </listitem>
129
130 </itemizedlist>
131 </refsection>
132
133 <refsection>
134 <title>See Also</title>
135 <simplelist type="inline">
136 <member><link linkend="getfem_types">getfem types</link></member>
137 </simplelist>
138 </refsection>
139
140 <refsection>
141 <title>Authors</title>
142 <para>Y. Collette</para>
143 </refsection>
144
145 </refentry>
+0
-189
interface/src/scilab/help/en_US/gf_spmat_get.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_spmat_get" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_spmat_get</refname>
11 <refpurpose></refpurpose>
12 </refnamediv>
13
14 <refsynopsisdiv>
15 <title>Calling Sequence</title>
16
17 <synopsis>n = gf_spmat_get(spmat S, 'nnz')</synopsis>
18 <synopsis>Sm = gf_spmat_get(spmat S, 'full'[, list I[, list J]])</synopsis>
19 <synopsis>MV = gf_spmat_get(spmat S, 'mult', vec V)</synopsis>
20 <synopsis>MtV = gf_spmat_get(spmat S, 'tmult', vec V)</synopsis>
21 <synopsis>D = gf_spmat_get(spmat S, 'diag'[, list E])</synopsis>
22 <synopsis>s = gf_spmat_get(spmat S, 'storage')</synopsis>
23 <synopsis>{ni,nj} = gf_spmat_get(spmat S, 'size')</synopsis>
24 <synopsis>b = gf_spmat_get(spmat S, 'is_complex')</synopsis>
25 <synopsis>{JC, IR} = gf_spmat_get(spmat S, 'csc_ind')</synopsis>
26 <synopsis>V = gf_spmat_get(spmat S, 'csc_val')</synopsis>
27 <synopsis>{N, U0} = gf_spmat_get(spmat S, 'dirichlet nullspace', vec R)</synopsis>
28 <synopsis>gf_spmat_get(spmat S, 'save', string format, string filename)</synopsis>
29 <synopsis>s = gf_spmat_get(spmat S, 'char')</synopsis>
30 <synopsis>gf_spmat_get(spmat S, 'display')</synopsis>
31 </refsynopsisdiv>
32
33 <refsection>
34 <title>Description</title>
35 <para></para>
36 </refsection>
37
38 <refsection>
39 <title>Command list</title>
40
41 <itemizedlist>
42 <listitem>
43 <para><literal>n = gf_spmat_get(spmat S, 'nnz')</literal></para>
44
45 <para> Return the number of non-null values stored in the sparse matrix.
46 </para>
47 </listitem>
48
49 <listitem>
50 <para><literal>Sm = gf_spmat_get(spmat S, 'full'[, list I[, list J]])</literal></para>
51
52 <para> Return a full (sub-)matrix.
53
54 The optional arguments <literal>I</literal> and <literal>J</literal>, are the sub-intervals for the
55 rows and columns that are to be extracted.
56 </para>
57 </listitem>
58
59 <listitem>
60 <para><literal>MV = gf_spmat_get(spmat S, 'mult', vec V)</literal></para>
61
62 <para> Product of the sparse matrix <literal>M</literal> with a vector <literal>V</literal>.
63
64 For matrix-matrix multiplications, see gf_spmat('mult').
65 </para>
66 </listitem>
67
68 <listitem>
69 <para><literal>MtV = gf_spmat_get(spmat S, 'tmult', vec V)</literal></para>
70
71 <para> Product of <literal>M</literal> transposed (conjugated if <literal>M</literal> is complex) with the
72 vector <literal>V</literal>.
73 </para>
74 </listitem>
75
76 <listitem>
77 <para><literal>D = gf_spmat_get(spmat S, 'diag'[, list E])</literal></para>
78
79 <para> Return the diagonal of <literal>M</literal> as a vector.
80
81 If <literal>E</literal> is used, return the sub-diagonals whose ranks are given in E.
82 </para>
83 </listitem>
84
85 <listitem>
86 <para><literal>s = gf_spmat_get(spmat S, 'storage')</literal></para>
87
88 <para> Return the storage type currently used for the matrix.
89
90 The storage is returned as a string, either 'CSC' or 'WSC'.
91 </para>
92 </listitem>
93
94 <listitem>
95 <para><literal>{ni,nj} = gf_spmat_get(spmat S, 'size')</literal></para>
96
97 <para> Return a vector where <literal>ni</literal> and <literal>nj</literal> are the dimensions of the matrix.
98 </para>
99 </listitem>
100
101 <listitem>
102 <para><literal>b = gf_spmat_get(spmat S, 'is_complex')</literal></para>
103
104 <para> Return 1 if the matrix contains complex values.
105 </para>
106 </listitem>
107
108 <listitem>
109 <para><literal>{JC, IR} = gf_spmat_get(spmat S, 'csc_ind')</literal></para>
110
111 <para> Return the two usual index arrays of CSC storage.
112
113 If <literal>M</literal> is not stored as a CSC matrix, it is converted into CSC.
114 </para>
115 </listitem>
116
117 <listitem>
118 <para><literal>V = gf_spmat_get(spmat S, 'csc_val')</literal></para>
119
120 <para> Return the array of values of all non-zero entries of <literal>M</literal>.
121
122 If <literal>M</literal> is not stored as a CSC matrix, it is converted into CSC.
123 </para>
124 </listitem>
125
126 <listitem>
127 <para><literal>{N, U0} = gf_spmat_get(spmat S, 'dirichlet nullspace', vec R)</literal></para>
128
129 <para> Solve the dirichlet conditions <literal>M.U=R</literal>.
130
131 A solution <literal>U0</literal> which has a minimum L2-norm is returned, with a
132 sparse matrix <literal>N</literal> containing an orthogonal basis of the kernel of
133 the (assembled) constraints matrix <literal>M</literal> (hence, the PDE linear system
134 should be solved on this subspace): the initial problem
135
136 <literal>K.U = B</literal> with constraints <literal>M.U = R</literal>
137
138 is replaced by
139
140 <literal>(N'.K.N).UU = N'.B</literal> with <literal>U = N.UU + U0</literal>
141 </para>
142 </listitem>
143
144 <listitem>
145 <para><literal>gf_spmat_get(spmat S, 'save', string format, string filename)</literal></para>
146
147 <para> Export the sparse matrix.
148
149 the format of the file may be 'hb' for Harwell-Boeing, or 'mm'
150 for Matrix-Market.
151 </para>
152 </listitem>
153
154 <listitem>
155 <para><literal>s = gf_spmat_get(spmat S, 'char')</literal></para>
156
157 <para> Output a (unique) string representation of the spmat.
158
159 This can be used to perform comparisons between two
160 different spmat objects.
161 This function is to be completed.
162
163 </para>
164 </listitem>
165
166 <listitem>
167 <para><literal>gf_spmat_get(spmat S, 'display')</literal></para>
168
169 <para> displays a short summary for a spmat object.
170 </para>
171 </listitem>
172
173 </itemizedlist>
174 </refsection>
175
176 <refsection>
177 <title>See Also</title>
178 <simplelist type="inline">
179 <member><link linkend="getfem_types">getfem types</link></member>
180 </simplelist>
181 </refsection>
182
183 <refsection>
184 <title>Authors</title>
185 <para>Y. Collette</para>
186 </refsection>
187
188 </refentry>
+0
-149
interface/src/scilab/help/en_US/gf_spmat_set.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_spmat_set" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_spmat_set</refname>
11 <refpurpose> Modification of the content of a getfem sparse matrix.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>gf_spmat_set(spmat S, 'clear'[, list I[, list J]])</synopsis>
19 <synopsis>gf_spmat_set(spmat S, 'scale', scalar v)</synopsis>
20 <synopsis>gf_spmat_set(spmat S, 'transpose')</synopsis>
21 <synopsis>gf_spmat_set(spmat S, 'conjugate')</synopsis>
22 <synopsis>gf_spmat_set(spmat S, 'transconj')</synopsis>
23 <synopsis>gf_spmat_set(spmat S, 'to_csc')</synopsis>
24 <synopsis>gf_spmat_set(spmat S, 'to_wsc')</synopsis>
25 <synopsis>gf_spmat_set(spmat S, 'to_complex')</synopsis>
26 <synopsis>gf_spmat_set(spmat S, 'diag', mat D [, ivec E])</synopsis>
27 <synopsis>gf_spmat_set(spmat S, 'assign', ivec I, ivec J, mat V)</synopsis>
28 <synopsis>gf_spmat_set(spmat S, 'add', ivec I, ivec J, mat V)</synopsis>
29 </refsynopsisdiv>
30
31 <refsection>
32 <title>Description</title>
33 <para> Modification of the content of a getfem sparse matrix.
34 </para>
35 </refsection>
36
37 <refsection>
38 <title>Command list</title>
39
40 <itemizedlist>
41 <listitem>
42 <para><literal>gf_spmat_set(spmat S, 'clear'[, list I[, list J]])</literal></para>
43
44 <para> Erase the non-zero entries of the matrix.
45
46 The optional arguments <literal>I</literal> and <literal>J</literal> may be specified to clear a
47 sub-matrix instead of the entire matrix.
48 </para>
49 </listitem>
50
51 <listitem>
52 <para><literal>gf_spmat_set(spmat S, 'scale', scalar v)</literal></para>
53
54 <para> Multiplies the matrix by a scalar value <literal>v</literal>.
55 </para>
56 </listitem>
57
58 <listitem>
59 <para><literal>gf_spmat_set(spmat S, 'transpose')</literal></para>
60
61 <para> Transpose the matrix.
62 </para>
63 </listitem>
64
65 <listitem>
66 <para><literal>gf_spmat_set(spmat S, 'conjugate')</literal></para>
67
68 <para> Conjugate each element of the matrix.
69 </para>
70 </listitem>
71
72 <listitem>
73 <para><literal>gf_spmat_set(spmat S, 'transconj')</literal></para>
74
75 <para> Transpose and conjugate the matrix.
76 </para>
77 </listitem>
78
79 <listitem>
80 <para><literal>gf_spmat_set(spmat S, 'to_csc')</literal></para>
81
82 <para> Convert the matrix to CSC storage.
83
84 CSC storage is recommended for matrix-vector multiplications.
85 </para>
86 </listitem>
87
88 <listitem>
89 <para><literal>gf_spmat_set(spmat S, 'to_wsc')</literal></para>
90
91 <para> Convert the matrix to WSC storage.
92
93 Read and write operation are quite fast with WSC storage.
94 </para>
95 </listitem>
96
97 <listitem>
98 <para><literal>gf_spmat_set(spmat S, 'to_complex')</literal></para>
99
100 <para> Store complex numbers.
101 </para>
102 </listitem>
103
104 <listitem>
105 <para><literal>gf_spmat_set(spmat S, 'diag', mat D [, ivec E])</literal></para>
106
107 <para> Change the diagonal (or sub-diagonals) of the matrix.
108
109 If <literal>E</literal> is given, <literal>D</literal> might be a matrix and each column of <literal>E</literal> will
110 contain the sub-diagonal number that will be filled with the
111 corresponding column of <literal>D</literal>.
112 </para>
113 </listitem>
114
115 <listitem>
116 <para><literal>gf_spmat_set(spmat S, 'assign', ivec I, ivec J, mat V)</literal></para>
117
118 <para> Copy V into the sub-matrix 'M(I,J)'.
119
120 <literal>V</literal> might be a sparse matrix or a full matrix.
121 </para>
122 </listitem>
123
124 <listitem>
125 <para><literal>gf_spmat_set(spmat S, 'add', ivec I, ivec J, mat V)</literal></para>
126
127 <para> Add <literal>V</literal> to the sub-matrix 'M(I,J)'.
128
129 <literal>V</literal> might be a sparse matrix or a full matrix.
130 </para>
131 </listitem>
132
133 </itemizedlist>
134 </refsection>
135
136 <refsection>
137 <title>See Also</title>
138 <simplelist type="inline">
139 <member><link linkend="getfem_types">getfem types</link></member>
140 </simplelist>
141 </refsection>
142
143 <refsection>
144 <title>Authors</title>
145 <para>Y. Collette</para>
146 </refsection>
147
148 </refentry>
+0
-56
interface/src/scilab/help/en_US/gf_typeof.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_typeof" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_typeof</refname>
11
12 <refpurpose>Get the type of a GetFEM object.</refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>
19 gf_typeof(gf_variable)
20 </synopsis>
21 </refsynopsisdiv>
22
23 <refsection>
24 <title>Description</title>
25
26 <para>This function returns a string which corresponds to the type
27 of the object.</para>
28 </refsection>
29
30 <refsection>
31 <title>Examples</title>
32
33 <programlisting role="example"><![CDATA[
34 // First example
35 m = gfMesh('empty',1);
36 disp(gf_typeof(m));
37 ]]></programlisting>
38 </refsection>
39
40 <refsection>
41 <title>See Also</title>
42
43 <simplelist type="inline">
44 <member><link linkend="gf_delete">gf_delete</link></member>
45 <member><link linkend="gf_mesh">gf_mesh</link></member>
46 <member><link linkend="gf_mesh_fem">gf_mesh_fem</link></member>
47 </simplelist>
48 </refsection>
49
50 <refsection>
51 <title>Authors</title>
52
53 <para>Y. Collette</para>
54 </refsection>
55 </refentry>
+0
-86
interface/src/scilab/help/en_US/gf_util.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_util" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_util</refname>
11 <refpurpose> Performs various operations which do not fit elsewhere.
12 </refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16 <title>Calling Sequence</title>
17
18 <synopsis>gf_util('save matrix', string FMT, string FILENAME, mat A)</synopsis>
19 <synopsis>A = gf_util('load matrix', string FMT, string FILENAME)</synopsis>
20 <synopsis>tl = gf_util('trace level' [, int level])</synopsis>
21 <synopsis>tl = gf_util('warning level', int level)</synopsis>
22 </refsynopsisdiv>
23
24 <refsection>
25 <title>Description</title>
26 <para> Performs various operations which do not fit elsewhere.
27 </para>
28 </refsection>
29
30 <refsection>
31 <title>Command list</title>
32
33 <itemizedlist>
34 <listitem>
35 <para><literal>gf_util('save matrix', string FMT, string FILENAME, mat A)</literal></para>
36
37 <para> Exports a sparse matrix into the file named FILENAME, using
38 Harwell-Boeing (FMT='hb') or Matrix-Market (FMT='mm') formatting.
39 </para>
40 </listitem>
41
42 <listitem>
43 <para><literal>A = gf_util('load matrix', string FMT, string FILENAME)</literal></para>
44
45 <para> Imports a sparse matrix from a file.
46 </para>
47 </listitem>
48
49 <listitem>
50 <para><literal>tl = gf_util('trace level' [, int level])</literal></para>
51
52 <para> Set the verbosity of some getfem++ routines.
53
54 Typically the messages printed by the model bricks, 0 means no
55 trace message (default is 3). if no level is given,
56 the current trace level is returned.
57 </para>
58 </listitem>
59
60 <listitem>
61 <para><literal>tl = gf_util('warning level', int level)</literal></para>
62
63 <para> Filter the less important warnings displayed by getfem.
64
65 0 means no warnings, default level is 3. if no level is given,
66 the current warning level is returned.
67 </para>
68 </listitem>
69
70 </itemizedlist>
71 </refsection>
72
73 <refsection>
74 <title>See Also</title>
75 <simplelist type="inline">
76 <member><link linkend="getfem_types">getfem types</link></member>
77 </simplelist>
78 </refsection>
79
80 <refsection>
81 <title>Authors</title>
82 <para>Y. Collette</para>
83 </refsection>
84
85 </refentry>
+0
-146
interface/src/scilab/help/en_US/gf_workspace.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="gf_workspace" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>gf_workspace</refname>
11 <refpurpose> Getfem workspace management function.
12
13 Getfem uses its own workspaces in Matlab, independently of the
14 matlab workspaces (this is due to some limitations in the memory
15 management of matlab objects). By default, all getfem variables
16 belong to the root getfem workspace. A function can create its own
17 workspace by invoking gf_workspace('push') at its beginning. When
18 exiting, this function MUST invoke gf_workspace('pop') (you can
19 use matlab exceptions handling to do this cleanly when the
20 function exits on an error).
21
22 </refpurpose>
23 </refnamediv>
24
25 <refsynopsisdiv>
26 <title>Calling Sequence</title>
27
28 <synopsis>gf_workspace('push')</synopsis>
29 <synopsis>gf_workspace('pop', [,i,j, ...])</synopsis>
30 <synopsis>gf_workspace('stat')</synopsis>
31 <synopsis>gf_workspace('stats')</synopsis>
32 <synopsis>gf_workspace('keep', i[,j,k...])</synopsis>
33 <synopsis>gf_workspace('keep all')</synopsis>
34 <synopsis>gf_workspace('clear')</synopsis>
35 <synopsis>gf_workspace('clear all')</synopsis>
36 <synopsis>gf_workspace('class name', i)</synopsis>
37 </refsynopsisdiv>
38
39 <refsection>
40 <title>Description</title>
41 <para> Getfem workspace management function.
42
43 Getfem uses its own workspaces in Matlab, independently of the
44 matlab workspaces (this is due to some limitations in the memory
45 management of matlab objects). By default, all getfem variables
46 belong to the root getfem workspace. A function can create its own
47 workspace by invoking gf_workspace('push') at its beginning. When
48 exiting, this function MUST invoke gf_workspace('pop') (you can
49 use matlab exceptions handling to do this cleanly when the
50 function exits on an error).
51
52 </para>
53 </refsection>
54
55 <refsection>
56 <title>Command list</title>
57
58 <itemizedlist>
59 <listitem>
60 <para><literal>gf_workspace('push')</literal></para>
61
62 <para> Create a new temporary workspace on the workspace stack.
63 </para>
64 </listitem>
65
66 <listitem>
67 <para><literal>gf_workspace('pop', [,i,j, ...])</literal></para>
68
69 <para> Leave the current workspace, destroying all getfem objects
70 belonging to it, except the one listed after 'pop', and the ones
71 moved to parent workspace by gf_workspace('keep').
72 </para>
73 </listitem>
74
75 <listitem>
76 <para><literal>gf_workspace('stat')</literal></para>
77
78 <para> Print informations about variables in current workspace.
79 </para>
80 </listitem>
81
82 <listitem>
83 <para><literal>gf_workspace('stats')</literal></para>
84
85 <para> Print informations about all getfem variables.
86 </para>
87 </listitem>
88
89 <listitem>
90 <para><literal>gf_workspace('keep', i[,j,k...])</literal></para>
91
92 <para> prevent the listed variables from being deleted when
93 gf_workspace("pop") will be called by moving these variables in the
94 parent workspace.
95 </para>
96 </listitem>
97
98 <listitem>
99 <para><literal>gf_workspace('keep all')</literal></para>
100
101 <para> prevent all variables from being deleted when
102 gf_workspace("pop") will be called by moving the variables in the
103 parent workspace.
104 </para>
105 </listitem>
106
107 <listitem>
108 <para><literal>gf_workspace('clear')</literal></para>
109
110 <para> Clear the current workspace.
111 </para>
112 </listitem>
113
114 <listitem>
115 <para><literal>gf_workspace('clear all')</literal></para>
116
117 <para> Clear every workspace, and returns to the main workspace (you
118 should not need this command).
119 </para>
120 </listitem>
121
122 <listitem>
123 <para><literal>gf_workspace('class name', i)</literal></para>
124
125 <para> Return the class name of object i (if I is a mesh handle, it
126 return gfMesh etc..)
127 </para>
128 </listitem>
129
130 </itemizedlist>
131 </refsection>
132
133 <refsection>
134 <title>See Also</title>
135 <simplelist type="inline">
136 <member><link linkend="getfem_types">getfem types</link></member>
137 </simplelist>
138 </refsection>
139
140 <refsection>
141 <title>Authors</title>
142 <para>Y. Collette</para>
143 </refsection>
144
145 </refentry>
+0
-125
interface/src/scilab/help/en_US/objects.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="objects" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>Objects</refname>
11
12 <refpurpose>This is a description of the objects found in GetFEM.</refpurpose>
13 </refnamediv>
14
15 <refsection>
16 <title>Description</title>
17
18 <mediaobject>
19 <imageobject>
20 <imagedata align="center" fileref="../fig/hierarchy.png" />
21 </imageobject>
22 </mediaobject>
23
24 <para>Getfem-interface objects hierarchy</para>
25
26 <itemizedlist>
27 <listitem>
28 <para>GEOTRANS : geometric transformations (defines the shape/position of the convexes), created with gf_geotrans</para>
29 </listitem>
30 <listitem>
31 <para>MESH: mesh structure (nodes, convexes, geometric transformations for each convex), created with gf_mesh</para>
32 </listitem>
33 <listitem>
34 <para>INTEG: integration method (exact, quadrature formula...). Although not linked directly to GEOTRANS, an integration
35 method is usually specific to a given convex structure. Created with gf_integ</para>
36 </listitem>
37 <listitem>
38 <para>FEM: the finite element method (one per convex, can be PK, QK, HERMITE, etc...). Created with gf_fem</para>
39 </listitem>
40 <listitem>
41 <para>CVSTRUCT: stores formal information convex structures (nb. of points, nb. of faces which are themselves convex structures).</para>
42 </listitem>
43 <listitem>
44 <para>MESHFEM: object linked to a mesh, where each convex has been assigned a FEM. Created with gf_mesh_fem.</para>
45 </listitem>
46 <listitem>
47 <para>MESHIM: object linked to a mesh, where each convex has been assigned an integration method. Created with gf_mesh_im.</para>
48 </listitem>
49 <listitem>
50 <para>MESHSLICE: object linked to a mesh, very similar to a P1-discontinuous mesh fem. Used for fast interpolation and plotting.</para>
51 </listitem>
52 <listitem>
53 <para>MDBRICK: "model brick" , an abstraction of a part of solver (for example, the part which build the tangent matrix, the part
54 which handles the dirichlet conditions, etc.). These objects are stacked to build a complete solver for a wide variety of problems.
55 They typically use a number of mesh fem, mesh im etc.</para>
56 </listitem>
57 <listitem>
58 <para>MDSTATE: "model state", holds the global data for a stack of mdbricks (global tangent matrix, right hand side etc.). </para>
59 </listitem>
60 <listitem>
61 <para>MODEL: "model", holds the global data, variables and description of a model.
62 Evolution of "model state" object for 4.0 version of getfem++.</para>
63 </listitem>
64 </itemizedlist>
65
66 <para>Various "objects" can be manipulated by the getfem-matlab toolbox, see fig. *.
67 The MESH and MESHFEM objects are the two most important objects.</para>
68
69 <para>The getfem-matlab toolbox uses its own memory management. Hence getfem++ objects are not cleared when a </para>
70 <programlisting role="example"><![CDATA[
71 --> clear all
72 ]]></programlisting>
73
74 <para>is issued at the matlab prompt, but instead the function </para>
75
76 <programlisting role="example"><![CDATA[
77 --> gf_workspace('clear all')
78 ]]></programlisting>
79
80 <para>should be used. The various getfem-matlab object can be accessed via handles (or descriptors), which are just matlab
81 structures containing 32-bits integer identifiers to the real objects. Hence the matlab command </para>
82
83 <programlisting role="example"><![CDATA[
84 --> whos
85 ]]></programlisting>
86
87 <para>does not report the memory consumption of getfem++ objects (except the marginal space used by the handle). Instead, you should use </para>
88
89 <programlisting role="example"><![CDATA[
90 --> gf_workspace('stats')
91 ]]></programlisting>
92
93 <para>There are two kinds of getfem-matlab objects:</para>
94 <itemizedlist>
95 <listitem>
96 <para> static ones, which can not be deleted: ELTM, FEM, INTEG, GEOTRANS and CVSTRUCT. Hopefully their memory consumption is very low.</para>
97 </listitem>
98 <listitem>
99 <para> dynamic ones, which can be destroyed, and are handled by the gf_workspace function: MESH, MESHFEM, MESHIM, SLICE, SPMAT, PRECOND. </para>
100 </listitem>
101 </itemizedlist>
102 <para>The objects MESH and MESHFEM are not independent: a MESHFEM object is always linked to a MESH object, and a MESH object can be
103 used by several MESHFEM objects. Hence when you request the destruction of a MESH object, its destruction might be delayed until
104 it is not used anymore by any MESHFEM (these objects waiting for deletion are listed in the anonymous workspace section
105 of gf_workspace('stats')). </para>
106 </refsection>
107
108 <refsection>
109 <title>See Also</title>
110
111 <simplelist type="inline">
112 <member><link linkend="gf_workspace">gf_workspace</link></member>
113 <member><link linkend="gf_mesh">gf_mesh</link></member>
114 <member><link linkend="gf_fem">gf_fem</link></member>
115 <member><link linkend="gf_plot">gf_plot</link></member>
116 </simplelist>
117 </refsection>
118
119 <refsection>
120 <title>Authors</title>
121
122 <para>Y. Collette</para>
123 </refsection>
124 </refentry>
+0
-130
interface/src/scilab/help/en_US/preliminary.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="preliminary" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:xi="http://www.w3.org/2001/XInclude"
5 xmlns:svg="http://www.w3.org/2000/svg"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:db="http://docbook.org/ns/docbook">
9 <refnamediv>
10 <refname>preliminary</refname>
11
12 <refpurpose>This is just a short summary of the terms employed in this
13 manual.</refpurpose>
14 </refnamediv>
15
16 <refsection>
17 <title>Description</title>
18
19 <para>If you are not familiar with finite elements, this should be useful
20 (but in any case, you should definitively read the getfem++ project
21 documentation).</para>
22
23 <para>The mesh is composed of convexes. What we call convexes can be
24 simple line segments, prisms, tetrahedrons, curved triangles, of even
25 something which is not convex (in the geometrical sense). They all have an
26 associated reference convex: for segments, this will be the [0,1] segment,
27 for triangles this will be the canonical triangle (0,0)-(0,1)-(1,0)
28 etc...All convexes of the mesh are constructed from the reference convex
29 through a geometric transformation. In simple cases (when the convexes are
30 simplices for example), this transformation will be linear (hence it is
31 easily inverted, which can be a great advantage). In order to define the
32 geometric transformation, one defines geometrical nodes on the reference
33 convex. The geometrical transformation maps these nodes to the mesh
34 nodes.</para>
35
36 <para>On the mesh, one defines a set a basis functions: the FEM. A FEM is
37 associated at each convex. The basis functions are also attached to some
38 geometrical points (which can be arbitrarily chosen). These points are
39 similar to the mesh nodes, but they don't have to be the same (this only
40 happens on very simple cases, such as a classical P1 fem on a triangular
41 mesh). The set of all basis functions on the mesh forms the basis of a
42 vector space, on which the PDE will be solved. These basis functions (and
43 their associated geometrical point) are the degrees of freedom (dof). The
44 FEM is said to be Lagrangian when each of its basis functions is equal to
45 one at its attached geometrical point, and is null at the geometrical
46 points of others basis functions. This is an important property as it is
47 very easy to interpolate an arbitrary function on the finite elements
48 space.</para>
49
50 <para>The finite elements method involves evaluation of integrals of these
51 basis functions (or product of basis functions etc...) on convexes (and
52 faces of convexes). In simple cases (polynomial basis functions and linear
53 geometrical transformation), one can evaluate analytically these
54 integrals. In other cases, one has to approximate it, using quadrature
55 formulas. Hence, at each convex is attached an integration method along
56 with the FEM. If you have to use an approximate integration method, always
57 choose carefully its order(i.e. highest degree of the polynomials who are
58 exactly integrated with the method) : the degree of the FEM, of the
59 polynomial degree of the geometrical transformation, and the nature of the
60 elementary matrix have to be taken into account. If you are unsure about
61 the appropriate degree, always prefer a high order integration method
62 (which will slow down the assembly) to a low order one which will produce
63 a useless linear-system.</para>
64
65 <para>The process of construction of a global linear system from integrals
66 of basis functions on each convex is the assembly.</para>
67
68 <para>A mesh, with a set of FEM attached to its convexes is called a
69 mesh_fem object in GetFEM++.</para>
70
71 <para>A mesh, with a set of integration methods attached to its convexes
72 is called a mesh_im object in GetFEM++ (New in getfem 2.0).</para>
73
74 <para>A mesh_fem can be used to approximate scalar fields (heat, pression,
75 ..), or vector fields (displacement, electric field, ..). A mesh_im will
76 be used to perform numerical integrations on these fields. Most of the
77 finite elements implemented in GetFEM++ are scalar (however, TR0 and edges
78 elements are also available). Of course, these scalar FEMs can be used to
79 approximate each component of a vector field. This is done by setting the
80 Qdim of the mesh_fem to the dimension of the vector field (i.e. Qdim=1
81 =&gt; scalar field, Qdim=2 =&gt; 2D vector field etc...).</para>
82
83 <para>When solving a PDE, one often has to use more than one FEM. The most
84 important one will be of course the one on which is defined the solution
85 of the PDE. But most PDEs involve various coefficients, for
86 example:</para>
87
88 <para><latex align="center"><![CDATA[\nabla\cdot\left(\lambda\left(x\right)\nabla u\right)=f\left(x\right)]]></latex></para>
89
90 <para>Hence one has to define a FEM for the main unknown u, but also for
91 the data λ(x) and f(x) if they are not constant. In order to interpolate
92 easily these coefficients in their finite element space, one often choose
93 a Lagrangian FEM.</para>
94
95 <para>The convexes, mesh nodes, and dof are all numbered. We sometimes
96 refer to the number associated to a convex as its convex id (contracted to
97 cvid). Mesh node numbers are also called point id (contracted to pid).
98 Faces of convexes do not have a global numbering, but only a local number
99 in each convex. Hence functions which need or return a list of faces will
100 always use a two-rows matrix, the first one containing convex IDs, and the
101 second one containing local face number.</para>
102
103 <para>While the dof are always numbered consecutively, this is not always
104 the case for point ids and convex ids, especially if you have removed
105 points or convexes from the mesh. To ensure that they form a continuous
106 sequence (starting from 1), you have to call gf_mesh_set(m,'optimize
107 structure').</para>
108 </refsection>
109
110 <refsection>
111 <title>See Also</title>
112
113 <simplelist type="inline">
114 <member><link linkend="gf_workspace">gf_workspace</link></member>
115
116 <member><link linkend="gf_mesh">gf_mesh</link></member>
117
118 <member><link linkend="gf_fem">gf_fem</link></member>
119
120 <member><link linkend="gf_plot">gf_plot</link></member>
121 </simplelist>
122 </refsection>
123
124 <refsection>
125 <title>Authors</title>
126
127 <para>Y. Collette</para>
128 </refsection>
129 </refentry>
+0
-1
interface/src/scilab/help/en_US/sparses/CHAPTER less more
0 title = Sparse functions
+0
-132
interface/src/scilab/help/en_US/sparses/sp_cgne.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="sp_cgne" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:svg="http://www.w3.org/2000/svg"
5 xmlns:ns3="http://www.w3.org/1999/xhtml"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:db="http://docbook.org/ns/docbook">
8 <info>
9 <pubdate>$LastChangedDate: 2009-09-16 $</pubdate>
10 </info>
11
12 <refnamediv>
13 <refname>sp_cgs</refname>
14
15 <refpurpose>Use a conjugate gradient for a normal equation to solve the system A.x = b</refpurpose>
16 </refnamediv>
17
18 <refsynopsisdiv>
19 <title>Calling Sequence</title>
20
21 <synopsis>[xsol[,iter]] = sp_cgne(A,b,tol[,maxit[,M[,x0]]])</synopsis>
22 </refsynopsisdiv>
23
24 <refsection>
25 <title>Parameters</title>
26
27 <variablelist>
28 <varlistentry>
29 <term>A</term>
30
31 <listitem>
32 <para>the A real sparse matrix of the system to be solved.</para>
33 </listitem>
34 </varlistentry>
35
36 <varlistentry>
37 <term>b</term>
38
39 <listitem>
40 <para>the b real vector of the system to be solved.</para>
41 </listitem>
42 </varlistentry>
43
44 <varlistentry>
45 <term>tol</term>
46
47 <listitem>
48 <para>the tolerance for the resolution of the equation system.</para>
49 </listitem>
50 </varlistentry>
51
52 <varlistentry>
53 <term>maxit</term>
54
55 <listitem>
56 <para>the maximum number of iteration of the solver.</para>
57 </listitem>
58 </varlistentry>
59
60 <varlistentry>
61 <term>M</term>
62
63 <listitem>
64 <para>the preconditionning matrix (an identity matrix by
65 default). The preconditionning matrix must be symmetric.</para>
66 </listitem>
67 </varlistentry>
68
69 <varlistentry>
70 <term>x0</term>
71
72 <listitem>
73 <para>an initial starting solution.</para>
74 </listitem>
75 </varlistentry>
76
77 <varlistentry>
78 <term>xsol</term>
79
80 <listitem>
81 <para>the solution vector of the system.</para>
82 </listitem>
83 </varlistentry>
84
85 <varlistentry>
86 <term>iter</term>
87
88 <listitem>
89 <para>the number of iterations performed to solve the system.</para>
90 </listitem>
91 </varlistentry>
92 </variablelist>
93 </refsection>
94
95 <refsection>
96 <title>Description</title>
97
98 <para>Use a conjugate gradient for a normal equation to solve the system A.x = b</para>
99 </refsection>
100
101 <refsection>
102 <title>Example</title>
103
104 <programlisting role="example"><![CDATA[
105 ]]></programlisting>
106 </refsection>
107
108 <refsection>
109 <title>See Also</title>
110
111 <simplelist type="inline">
112 <member><link linkend="sp_luinc">sp_luinc</link></member>
113 <member><link linkend="sp_chol">sp_chol</link></member>
114 <member><link linkend="sp_cholinc">sp_cholinc</link></member>
115 <member><link linkend="sp_lu">sp_lu</link></member>
116 <member><link linkend="sp_cgs">sp_cgs</link></member>
117 <member><link linkend="sp_gmres">sp_gmres</link></member>
118 <member><link linkend="sp_mgcr">sp_mgcr</link></member>
119 <member><link linkend="sp_chsolve">sp_chsolve</link></member>
120 <member><link linkend="sp_lusolve">sp_lusolve</link></member>
121 </simplelist>
122 </refsection>
123
124 <refsection>
125 <title>Authors</title>
126
127 <simplelist type="vert">
128 <member>Yann COLLETTE</member>
129 </simplelist>
130 </refsection>
131 </refentry>
+0
-139
interface/src/scilab/help/en_US/sparses/sp_cgs.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="sp_cgs" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:svg="http://www.w3.org/2000/svg"
5 xmlns:ns3="http://www.w3.org/1999/xhtml"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:db="http://docbook.org/ns/docbook">
8 <info>
9 <pubdate>$LastChangedDate: 2009-09-16 $</pubdate>
10 </info>
11
12 <refnamediv>
13 <refname>sp_cgs</refname>
14
15 <refpurpose>Use a conjugate gradient to solve the system A.x = b</refpurpose>
16 </refnamediv>
17
18 <refsynopsisdiv>
19 <title>Calling Sequence</title>
20
21 <synopsis>[xsol[,iter[,residual]]] = sp_cgs(A,b,tol[,maxit[,M[,x0]]])</synopsis>
22 </refsynopsisdiv>
23
24 <refsection>
25 <title>Parameters</title>
26
27 <variablelist>
28 <varlistentry>
29 <term>A</term>
30
31 <listitem>
32 <para>the A real sparse matrix of the system to be solved.</para>
33 </listitem>
34 </varlistentry>
35
36 <varlistentry>
37 <term>b</term>
38
39 <listitem>
40 <para>the b real vector of the system to be solved.</para>
41 </listitem>
42 </varlistentry>
43
44 <varlistentry>
45 <term>tol</term>
46
47 <listitem>
48 <para>the tolerance for the resolution of the equation system.</para>
49 </listitem>
50 </varlistentry>
51
52 <varlistentry>
53 <term>maxit</term>
54
55 <listitem>
56 <para>the maximum number of iteration of the solver.</para>
57 </listitem>
58 </varlistentry>
59
60 <varlistentry>
61 <term>M</term>
62
63 <listitem>
64 <para>the preconditionning matrix (an identity matrix by default).</para>
65 </listitem>
66 </varlistentry>
67
68 <varlistentry>
69 <term>x0</term>
70
71 <listitem>
72 <para>an initial starting solution.</para>
73 </listitem>
74 </varlistentry>
75
76 <varlistentry>
77 <term>xsol</term>
78
79 <listitem>
80 <para>the solution vector of the system.</para>
81 </listitem>
82 </varlistentry>
83
84 <varlistentry>
85 <term>iter</term>
86
87 <listitem>
88 <para>the number of iterations performed to solve the system.</para>
89 </listitem>
90 </varlistentry>
91
92 <varlistentry>
93 <term>residual</term>
94
95 <listitem>
96 <para>the residual vector of the system of equations.</para>
97 </listitem>
98 </varlistentry>
99 </variablelist>
100 </refsection>
101
102 <refsection>
103 <title>Description</title>
104
105 <para>Use a conjugate gradient to solve the system A.x = b</para>
106 </refsection>
107
108 <refsection>
109 <title>Example</title>
110
111 <programlisting role="example"><![CDATA[
112 ]]></programlisting>
113 </refsection>
114
115 <refsection>
116 <title>See Also</title>
117
118 <simplelist type="inline">
119 <member><link linkend="sp_luinc">sp_luinc</link></member>
120 <member><link linkend="sp_chol">sp_chol</link></member>
121 <member><link linkend="sp_cholinc">sp_cholinc</link></member>
122 <member><link linkend="sp_lu">sp_lu</link></member>
123 <member><link linkend="sp_cgne">sp_cgne</link></member>
124 <member><link linkend="sp_gmres">sp_gmres</link></member>
125 <member><link linkend="sp_mgcr">sp_mgcr</link></member>
126 <member><link linkend="sp_chsolve">sp_chsolve</link></member>
127 <member><link linkend="sp_lusolve">sp_lusolve</link></member>
128 </simplelist>
129 </refsection>
130
131 <refsection>
132 <title>Authors</title>
133
134 <simplelist type="vert">
135 <member>Yann COLLETTE</member>
136 </simplelist>
137 </refsection>
138 </refentry>
+0
-86
interface/src/scilab/help/en_US/sparses/sp_chol.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="sp_chol" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:svg="http://www.w3.org/2000/svg"
5 xmlns:ns3="http://www.w3.org/1999/xhtml"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:db="http://docbook.org/ns/docbook">
8 <info>
9 <pubdate>$LastChangedDate: 2009-09-16 $</pubdate>
10 </info>
11
12 <refnamediv>
13 <refname>sp_lu</refname>
14
15 <refpurpose>Performs a Cholesky decomposition on a sparse matrix</refpurpose>
16 </refnamediv>
17
18 <refsynopsisdiv>
19 <title>Calling Sequence</title>
20
21 <synopsis>[R] = sp_chol(M)</synopsis>
22 </refsynopsisdiv>
23
24 <refsection>
25 <title>Parameters</title>
26
27 <variablelist>
28 <varlistentry>
29 <term>M</term>
30
31 <listitem>
32 <para>the real sparse matrix on which we will perform the
33 Cholesky decomposition</para>
34 </listitem>
35 </varlistentry>
36
37 <varlistentry>
38 <term>R</term>
39
40 <listitem>
41 <para>the R sparse matrix from the Cholesky decomposition </para>
42 </listitem>
43 </varlistentry>
44 </variablelist>
45 </refsection>
46
47 <refsection>
48 <title>Description</title>
49
50 <para>Performs a Cholesky decomposition on a sparse matrix such
51 that:</para>
52 <para>R'*R=M</para>
53 </refsection>
54
55 <refsection>
56 <title>Example</title>
57
58 <programlisting role="example"><![CDATA[
59 ]]></programlisting>
60 </refsection>
61
62 <refsection>
63 <title>See Also</title>
64
65 <simplelist type="inline">
66 <member><link linkend="sp_luinc">sp_luinc</link></member>
67 <member><link linkend="sp_lu">sp_lu</link></member>
68 <member><link linkend="sp_cholinc">sp_cholinc</link></member>
69 <member><link linkend="sp_cgs">sp_cgs</link></member>
70 <member><link linkend="sp_cgne">sp_cgne</link></member>
71 <member><link linkend="sp_gmres">sp_gmres</link></member>
72 <member><link linkend="sp_mgcr">sp_mgcr</link></member>
73 <member><link linkend="sp_chsolve">sp_chsolve</link></member>
74 <member><link linkend="sp_lusolve">sp_lusolve</link></member>
75 </simplelist>
76 </refsection>
77
78 <refsection>
79 <title>Authors</title>
80
81 <simplelist type="vert">
82 <member>Yann COLLETTE</member>
83 </simplelist>
84 </refsection>
85 </refentry>
+0
-89
interface/src/scilab/help/en_US/sparses/sp_cholinc.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="sp_cholinc" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:svg="http://www.w3.org/2000/svg"
5 xmlns:ns3="http://www.w3.org/1999/xhtml"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:db="http://docbook.org/ns/docbook">
8 <info>
9 <pubdate>$LastChangedDate: 2009-09-16 $</pubdate>
10 </info>
11
12 <refnamediv>
13 <refname>sp_lu</refname>
14
15 <refpurpose>Performs an incomplete Cholesky decomposition on a sparse matrix</refpurpose>
16 </refnamediv>
17
18 <refsynopsisdiv>
19 <title>Calling Sequence</title>
20
21 <synopsis>[R] = sp_chol(M)</synopsis>
22 </refsynopsisdiv>
23
24 <refsection>
25 <title>Parameters</title>
26
27 <variablelist>
28 <varlistentry>
29 <term>M</term>
30
31 <listitem>
32 <para>the real sparse matrix on which we will perform the
33 Cholesky decomposition</para>
34 </listitem>
35 </varlistentry>
36
37 <varlistentry>
38 <term>R</term>
39
40 <listitem>
41 <para>the R sparse matrix from the Cholesky decomposition </para>
42 </listitem>
43 </varlistentry>
44 </variablelist>
45 </refsection>
46
47 <refsection>
48 <title>Description</title>
49
50 <para>Performs a Cholesky decomposition on a sparse matrix such
51 that:</para>
52 <para>R'*R=M</para>
53 <para>At the end of the incomplete Cholesky decomposition, the R
54 matrix will contain a number of non zeros elements which is less
55 or equal to the number of non zeros elements in the M matrix. </para>
56 </refsection>
57
58 <refsection>
59 <title>Example</title>
60
61 <programlisting role="example"><![CDATA[
62 ]]></programlisting>
63 </refsection>
64
65 <refsection>
66 <title>See Also</title>
67
68 <simplelist type="inline">
69 <member><link linkend="sp_luinc">sp_luinc</link></member>
70 <member><link linkend="sp_lu">sp_lu</link></member>
71 <member><link linkend="sp_chol">sp_chol</link></member>
72 <member><link linkend="sp_cgs">sp_cgs</link></member>
73 <member><link linkend="sp_cgne">sp_cgne</link></member>
74 <member><link linkend="sp_gmres">sp_gmres</link></member>
75 <member><link linkend="sp_mgcr">sp_mgcr</link></member>
76 <member><link linkend="sp_chsolve">sp_chsolve</link></member>
77 <member><link linkend="sp_lusolve">sp_lusolve</link></member>
78 </simplelist>
79 </refsection>
80
81 <refsection>
82 <title>Authors</title>
83
84 <simplelist type="vert">
85 <member>Yann COLLETTE</member>
86 </simplelist>
87 </refsection>
88 </refentry>
+0
-91
interface/src/scilab/help/en_US/sparses/sp_chsolve.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="sp_chsolve" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:svg="http://www.w3.org/2000/svg"
5 xmlns:ns3="http://www.w3.org/1999/xhtml"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:db="http://docbook.org/ns/docbook">
8 <info>
9 <pubdate>$LastChangedDate: 2009-09-16 $</pubdate>
10 </info>
11
12 <refnamediv>
13 <refname>sp_cgs</refname>
14
15 <refpurpose>Use a Cholesky decomposition to solve the system A.x = b</refpurpose>
16 </refnamediv>
17
18 <refsynopsisdiv>
19 <title>Calling Sequence</title>
20
21 <synopsis>[xsol] = sp_chsolve(A,b])</synopsis>
22 </refsynopsisdiv>
23
24 <refsection>
25 <title>Parameters</title>
26
27 <variablelist>
28 <varlistentry>
29 <term>A</term>
30
31 <listitem>
32 <para>the A real sparse matrix of the system to be solved.</para>
33 </listitem>
34 </varlistentry>
35
36 <varlistentry>
37 <term>b</term>
38
39 <listitem>
40 <para>the b real vector of the system to be solved.</para>
41 </listitem>
42 </varlistentry>
43
44 <varlistentry>
45 <term>xsol</term>
46
47 <listitem>
48 <para>the solution vector of the system.</para>
49 </listitem>
50 </varlistentry>
51 </variablelist>
52 </refsection>
53
54 <refsection>
55 <title>Description</title>
56
57 <para>Solve the system A.x = b via a Cholesky decomposition
58 (solve L.L'.x = b)</para>
59 </refsection>
60
61 <refsection>
62 <title>Example</title>
63
64 <programlisting role="example"><![CDATA[
65 ]]></programlisting>
66 </refsection>
67
68 <refsection>
69 <title>See Also</title>
70
71 <simplelist type="inline">
72 <member><link linkend="sp_luinc">sp_luinc</link></member>
73 <member><link linkend="sp_chol">sp_chol</link></member>
74 <member><link linkend="sp_cholinc">sp_cholinc</link></member>
75 <member><link linkend="sp_lu">sp_lu</link></member>
76 <member><link linkend="sp_cgne">sp_cgne</link></member>
77 <member><link linkend="sp_gmres">sp_gmres</link></member>
78 <member><link linkend="sp_mgcr">sp_mgcr</link></member>
79 <member><link linkend="sp_lusolve">sp_lusolve</link></member>
80 </simplelist>
81 </refsection>
82
83 <refsection>
84 <title>Authors</title>
85
86 <simplelist type="vert">
87 <member>Yann COLLETTE</member>
88 </simplelist>
89 </refsection>
90 </refentry>
+0
-141
interface/src/scilab/help/en_US/sparses/sp_gmres.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="sp_gmres" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:svg="http://www.w3.org/2000/svg"
5 xmlns:ns3="http://www.w3.org/1999/xhtml"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:db="http://docbook.org/ns/docbook">
8 <info>
9 <pubdate>$LastChangedDate: 2009-09-16 $</pubdate>
10 </info>
11
12 <refnamediv>
13 <refname>sp_cgs</refname>
14
15 <refpurpose>Use a generalized minimum residual algorithm of Saad &amp;
16 Schultz to solve the system A.x = b</refpurpose>
17 </refnamediv>
18
19 <refsynopsisdiv>
20 <title>Calling Sequence</title>
21
22 <synopsis>[xsol[,iter]] = sp_gmres(A,b,tol[,maxit[,k[,M[,x0]]]])</synopsis>
23 </refsynopsisdiv>
24
25 <refsection>
26 <title>Parameters</title>
27
28 <variablelist>
29 <varlistentry>
30 <term>A</term>
31
32 <listitem>
33 <para>the A real sparse matrix of the system to be solved.</para>
34 </listitem>
35 </varlistentry>
36
37 <varlistentry>
38 <term>b</term>
39
40 <listitem>
41 <para>the b real vector of the system to be solved.</para>
42 </listitem>
43 </varlistentry>
44
45 <varlistentry>
46 <term>tol</term>
47
48 <listitem>
49 <para>the tolerance for the resolution of the equation system.</para>
50 </listitem>
51 </varlistentry>
52
53 <varlistentry>
54 <term>k</term>
55
56 <listitem>
57 <para> no. of direction (search) vectors; = 0 - none.</para>
58 </listitem>
59 </varlistentry>
60
61 <varlistentry>
62 <term>maxit</term>
63
64 <listitem>
65 <para>the maximum number of iteration of the solver.</para>
66 </listitem>
67 </varlistentry>
68
69 <varlistentry>
70 <term>M</term>
71
72 <listitem>
73 <para>the preconditionning matrix (an identity matrix by default).</para>
74 </listitem>
75 </varlistentry>
76
77 <varlistentry>
78 <term>x0</term>
79
80 <listitem>
81 <para>an initial starting solution.</para>
82 </listitem>
83 </varlistentry>
84
85 <varlistentry>
86 <term>xsol</term>
87
88 <listitem>
89 <para>the solution vector of the system.</para>
90 </listitem>
91 </varlistentry>
92
93 <varlistentry>
94 <term>iter</term>
95
96 <listitem>
97 <para>the number of iterations performed to solve the system.</para>
98 </listitem>
99 </varlistentry>
100 </variablelist>
101 </refsection>
102
103 <refsection>
104 <title>Description</title>
105
106 <para>Use a generalized minimum residual algorithm of Saad &amp;
107 Schultz to solve the system A.x = b</para>
108 </refsection>
109
110 <refsection>
111 <title>Example</title>
112
113 <programlisting role="example"><![CDATA[
114 ]]></programlisting>
115 </refsection>
116
117 <refsection>
118 <title>See Also</title>
119
120 <simplelist type="inline">
121 <member><link linkend="sp_luinc">sp_luinc</link></member>
122 <member><link linkend="sp_chol">sp_chol</link></member>
123 <member><link linkend="sp_cholinc">sp_cholinc</link></member>
124 <member><link linkend="sp_lu">sp_lu</link></member>
125 <member><link linkend="sp_cgne">sp_cgne</link></member>
126 <member><link linkend="sp_mgcr">sp_mgcr</link></member>
127 <member><link linkend="sp_cgs">sp_cgs</link></member>
128 <member><link linkend="sp_chsolve">sp_chsolve</link></member>
129 <member><link linkend="sp_lusolve">sp_lusolve</link></member>
130 </simplelist>
131 </refsection>
132
133 <refsection>
134 <title>Authors</title>
135
136 <simplelist type="vert">
137 <member>Yann COLLETTE</member>
138 </simplelist>
139 </refsection>
140 </refentry>
+0
-111
interface/src/scilab/help/en_US/sparses/sp_lu.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="sp_lu" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:svg="http://www.w3.org/2000/svg"
5 xmlns:ns3="http://www.w3.org/1999/xhtml"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:db="http://docbook.org/ns/docbook">
8 <info>
9 <pubdate>$LastChangedDate: 2009-09-16 $</pubdate>
10 </info>
11
12 <refnamediv>
13 <refname>sp_lu</refname>
14
15 <refpurpose>Performs a LU decomposition on a sparse matrix</refpurpose>
16 </refnamediv>
17
18 <refsynopsisdiv>
19 <title>Calling Sequence</title>
20
21 <synopsis>[L[,U[,P]]] = sp_lu(M[,alpha])</synopsis>
22 </refsynopsisdiv>
23
24 <refsection>
25 <title>Parameters</title>
26
27 <variablelist>
28 <varlistentry>
29 <term>M</term>
30
31 <listitem>
32 <para>the real sparse matrix on which we will perform the
33 LU decomposition</para>
34 </listitem>
35 </varlistentry>
36
37 <varlistentry>
38 <term>alpha</term>
39
40 <listitem>
41 <para>a coefficient used in the partial pivoting (default
42 value: 1).</para>
43 <para>partial pivoting and Markowitz criterion:</para>
44 <para>|a[p][k]| >= alpha * max_i |a[i][k]|</para>
45 </listitem>
46 </varlistentry>
47
48 <varlistentry>
49 <term>L</term>
50
51 <listitem>
52 <para>the L sparse matrix from the LU decomposition </para>
53 </listitem>
54 </varlistentry>
55
56 <varlistentry>
57 <term>U</term>
58
59 <listitem>
60 <para>the U sparse matrix from the LU decomposition</para>
61 </listitem>
62 </varlistentry>
63
64 <varlistentry>
65 <term>P</term>
66
67 <listitem>
68 <para>The permutation matrix such that L*U = P*A</para>
69 </listitem>
70 </varlistentry>
71 </variablelist>
72 </refsection>
73
74 <refsection>
75 <title>Description</title>
76
77 <para>Performs a LU decomposition on a sparse matrix</para>
78 </refsection>
79
80 <refsection>
81 <title>Example</title>
82
83 <programlisting role="example"><![CDATA[
84 ]]></programlisting>
85 </refsection>
86
87 <refsection>
88 <title>See Also</title>
89
90 <simplelist type="inline">
91 <member><link linkend="sp_luinc">sp_luinc</link></member>
92 <member><link linkend="sp_chol">sp_chol</link></member>
93 <member><link linkend="sp_cholinc">sp_cholinc</link></member>
94 <member><link linkend="sp_cgs">sp_cgs</link></member>
95 <member><link linkend="sp_cgne">sp_sgne</link></member>
96 <member><link linkend="sp_gmres">sp_gmres</link></member>
97 <member><link linkend="sp_mgcr">sp_mgcr</link></member>
98 <member><link linkend="sp_chsolve">sp_chsolve</link></member>
99 <member><link linkend="sp_lusolve">sp_lusolve</link></member>
100 </simplelist>
101 </refsection>
102
103 <refsection>
104 <title>Authors</title>
105
106 <simplelist type="vert">
107 <member>Yann COLLETTE</member>
108 </simplelist>
109 </refsection>
110 </refentry>
+0
-107
interface/src/scilab/help/en_US/sparses/sp_luinc.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="sp_luinc" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:svg="http://www.w3.org/2000/svg"
5 xmlns:ns3="http://www.w3.org/1999/xhtml"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:db="http://docbook.org/ns/docbook">
8 <info>
9 <pubdate>$LastChangedDate: 2009-09-16 $</pubdate>
10 </info>
11
12 <refnamediv>
13 <refname>sp_lu</refname>
14
15 <refpurpose>Performs an incomplete LU decomposition on a sparse matrix</refpurpose>
16 </refnamediv>
17
18 <refsynopsisdiv>
19 <title>Calling Sequence</title>
20
21 <synopsis>[L[,U]] = sp_luinc(M[,alpha])</synopsis>
22 </refsynopsisdiv>
23
24 <refsection>
25 <title>Parameters</title>
26
27 <variablelist>
28 <varlistentry>
29 <term>M</term>
30
31 <listitem>
32 <para>the real sparse matrix on which we will perform the
33 LU decomposition</para>
34 </listitem>
35 </varlistentry>
36
37 <varlistentry>
38 <term>alpha</term>
39
40 <listitem>
41 <para>a coefficient used in the partial pivoting (default
42 value: 1).</para>
43 <para>partial pivoting and Markowitz criterion:</para>
44 <para>|a[p][k]| >= alpha * max_i |a[i][k]|</para>
45 </listitem>
46 </varlistentry>
47
48 <varlistentry>
49 <term>L</term>
50
51 <listitem>
52 <para>the L sparse matrix from the LU decomposition </para>
53 </listitem>
54 </varlistentry>
55
56 <varlistentry>
57 <term>U</term>
58
59 <listitem>
60 <para>the U sparse matrix from the LU decomposition</para>
61 </listitem>
62 </varlistentry>
63 </variablelist>
64 </refsection>
65
66 <refsection>
67 <title>Description</title>
68
69 <para>Performs an incomplete LU decomposition on a sparse
70 matrix.</para>
71 <para>At the end of the decomposition, the number of non zeros
72 elements in the L and U matrixes is less or equal to the number of
73 non zeros elements in the M matrix.</para>
74 </refsection>
75
76 <refsection>
77 <title>Example</title>
78
79 <programlisting role="example"><![CDATA[
80 ]]></programlisting>
81 </refsection>
82
83 <refsection>
84 <title>See Also</title>
85
86 <simplelist type="inline">
87 <member><link linkend="sp_lu">sp_lu</link></member>
88 <member><link linkend="sp_chol">sp_chol</link></member>
89 <member><link linkend="sp_cholinc">sp_cholinc</link></member>
90 <member><link linkend="sp_cgs">sp_cgs</link></member>
91 <member><link linkend="sp_cgne">sp_sgne</link></member>
92 <member><link linkend="sp_gmres">sp_gmres</link></member>
93 <member><link linkend="sp_mgcr">sp_mgcr</link></member>
94 <member><link linkend="sp_chsolve">sp_chsolve</link></member>
95 <member><link linkend="sp_lusolve">sp_lusolve</link></member>
96 </simplelist>
97 </refsection>
98
99 <refsection>
100 <title>Authors</title>
101
102 <simplelist type="vert">
103 <member>Yann COLLETTE</member>
104 </simplelist>
105 </refsection>
106 </refentry>
+0
-90
interface/src/scilab/help/en_US/sparses/sp_lusolve.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="sp_lusolve" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:svg="http://www.w3.org/2000/svg"
5 xmlns:ns3="http://www.w3.org/1999/xhtml"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:db="http://docbook.org/ns/docbook">
8 <info>
9 <pubdate>$LastChangedDate: 2009-09-16 $</pubdate>
10 </info>
11
12 <refnamediv>
13 <refname>sp_cgs</refname>
14
15 <refpurpose>Use a LU decomposition to solve the system A.x = b</refpurpose>
16 </refnamediv>
17
18 <refsynopsisdiv>
19 <title>Calling Sequence</title>
20
21 <synopsis>[xsol] = sp_lusolve(A,b])</synopsis>
22 </refsynopsisdiv>
23
24 <refsection>
25 <title>Parameters</title>
26
27 <variablelist>
28 <varlistentry>
29 <term>A</term>
30
31 <listitem>
32 <para>the A real sparse matrix of the system to be solved.</para>
33 </listitem>
34 </varlistentry>
35
36 <varlistentry>
37 <term>b</term>
38
39 <listitem>
40 <para>the b real vector of the system to be solved.</para>
41 </listitem>
42 </varlistentry>
43
44 <varlistentry>
45 <term>xsol</term>
46
47 <listitem>
48 <para>the solution vector of the system.</para>
49 </listitem>
50 </varlistentry>
51 </variablelist>
52 </refsection>
53
54 <refsection>
55 <title>Description</title>
56
57 <para>Solve the system A.x = b via a LU decomposition.</para>
58 </refsection>
59
60 <refsection>
61 <title>Example</title>
62
63 <programlisting role="example"><![CDATA[
64 ]]></programlisting>
65 </refsection>
66
67 <refsection>
68 <title>See Also</title>
69
70 <simplelist type="inline">
71 <member><link linkend="sp_luinc">sp_luinc</link></member>
72 <member><link linkend="sp_chol">sp_chol</link></member>
73 <member><link linkend="sp_cholinc">sp_cholinc</link></member>
74 <member><link linkend="sp_lu">sp_lu</link></member>
75 <member><link linkend="sp_cgne">sp_cgne</link></member>
76 <member><link linkend="sp_gmres">sp_gmres</link></member>
77 <member><link linkend="sp_mgcr">sp_mgcr</link></member>
78 <member><link linkend="sp_chsolve">sp_chsolve</link></member>
79 </simplelist>
80 </refsection>
81
82 <refsection>
83 <title>Authors</title>
84
85 <simplelist type="vert">
86 <member>Yann COLLETTE</member>
87 </simplelist>
88 </refsection>
89 </refentry>
+0
-139
interface/src/scilab/help/en_US/sparses/sp_mgcr.xml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <refentry version="5.0-subset Scilab" xml:id="sp_mgcr" xml:lang="en"
2 xmlns="http://docbook.org/ns/docbook"
3 xmlns:xlink="http://www.w3.org/1999/xlink"
4 xmlns:svg="http://www.w3.org/2000/svg"
5 xmlns:ns3="http://www.w3.org/1999/xhtml"
6 xmlns:mml="http://www.w3.org/1998/Math/MathML"
7 xmlns:db="http://docbook.org/ns/docbook">
8 <info>
9 <pubdate>$LastChangedDate: 2009-09-16 $</pubdate>
10 </info>
11
12 <refnamediv>
13 <refname>sp_cgs</refname>
14
15 <refpurpose>Use a modified generalized conjugate residual algorithm to solve the system A.x = b</refpurpose>
16 </refnamediv>
17
18 <refsynopsisdiv>
19 <title>Calling Sequence</title>
20
21 <synopsis>[xsol[,iter[,residual]]] = sp_mgcr(A,b,tol[,maxit[,k[,M[,x0]]]])</synopsis>
22 </refsynopsisdiv>
23
24 <refsection>
25 <title>Parameters</title>
26
27 <variablelist>
28 <varlistentry>
29 <term>A</term>
30
31 <listitem>
32 <para>the A real sparse matrix of the system to be solved.</para>
33 </listitem>
34 </varlistentry>
35
36 <varlistentry>
37 <term>b</term>
38
39 <listitem>
40 <para>the b real vector of the system to be solved.</para>
41 </listitem>
42 </varlistentry>
43
44 <varlistentry>
45 <term>tol</term>
46
47 <listitem>
48 <para>the tolerance for the resolution of the equation system.</para>
49 </listitem>
50 </varlistentry>
51
52 <varlistentry>
53 <term>k</term>
54
55 <listitem>
56 <para> no. of direction (search) vectors; = 0 - none.</para>
57 </listitem>
58 </varlistentry>
59
60 <varlistentry>
61 <term>maxit</term>
62
63 <listitem>
64 <para>the maximum number of iteration of the solver.</para>
65 </listitem>
66 </varlistentry>
67
68 <varlistentry>
69 <term>M</term>
70
71 <listitem>
72 <para>the preconditionning matrix (an identity matrix by default).</para>
73 </listitem>
74 </varlistentry>
75
76 <varlistentry>
77 <term>x0</term>
78
79 <listitem>
80 <para>an initial starting solution.</para>
81 </listitem>
82 </varlistentry>
83
84 <varlistentry>
85 <term>xsol</term>
86
87 <listitem>
88 <para>the solution vector of the system.</para>
89 </listitem>
90 </varlistentry>
91
92 <varlistentry>
93 <term>iter</term>
94
95 <listitem>
96 <para>the number of iterations performed to solve the system.</para>
97 </listitem>
98 </varlistentry>
99 </variablelist>
100 </refsection>
101
102 <refsection>
103 <title>Description</title>
104
105 <para>Use a conjugate gradient to solve the system A.x = b</para>
106 </refsection>
107
108 <refsection>
109 <title>Example</title>
110
111 <programlisting role="example"><![CDATA[
112 ]]></programlisting>
113 </refsection>
114
115 <refsection>
116 <title>See Also</title>
117
118 <simplelist type="inline">
119 <member><link linkend="sp_luinc">sp_luinc</link></member>
120 <member><link linkend="sp_chol">sp_chol</link></member>
121 <member><link linkend="sp_cholinc">sp_cholinc</link></member>
122 <member><link linkend="sp_lu">sp_lu</link></member>
123 <member><link linkend="sp_cgne">sp_cgne</link></member>
124 <member><link linkend="sp_gmres">sp_gmres</link></member>
125 <member><link linkend="sp_cgs">sp_cgs</link></member>
126 <member><link linkend="sp_chsolve">sp_chsolve</link></member>
127 <member><link linkend="sp_lusolve">sp_lusolve</link></member>
128 </simplelist>
129 </refsection>
130
131 <refsection>
132 <title>Authors</title>
133
134 <simplelist type="vert">
135 <member>Yann COLLETTE</member>
136 </simplelist>
137 </refsection>
138 </refentry>
interface/src/scilab/help/fig/gf_fem_get_fig_1.png less more
Binary diff not shown
interface/src/scilab/help/fig/gf_plot_mesh_fig_1.png less more
Binary diff not shown
interface/src/scilab/help/fig/hierarchy.png less more
Binary diff not shown
interface/src/scilab/help/fig/tripodvonmiseswithmesh_small.png less more
Binary diff not shown
+0
-11
interface/src/scilab/help/fr_FR/build_help.sce less more
0 // ====================================================================
1 // Yann COLLETTE
2 // Copyright 2009
3 // This file is released into the public domain
4 // ====================================================================
5
6 help_lang_dir = get_absolute_file_path('build_help.sce');
7
8 tbx_build_help(TOOLBOX_TITLE, help_lang_dir);
9
10 clear help_lang_dir;
+0
-50
interface/src/scilab/help/mml/avoiding_eq1.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mrow>
6 <math:mrow>
7 <math:mo math:stretchy="false">∫</math:mo>
8 <math:mfenced math:open="" math:close="">
9 <math:mrow>
10 <math:mi>h</math:mi>
11 <math:mfenced math:open="" math:close="">
12 <math:mi>x</math:mi>
13 </math:mfenced>
14 <math:mi>u</math:mi>
15 <math:mfenced math:open="" math:close="">
16 <math:mi>x</math:mi>
17 </math:mfenced>
18 </math:mrow>
19 </math:mfenced>
20 </math:mrow>
21 <math:mo math:stretchy="false">⋅</math:mo>
22 <math:mi>v</math:mi>
23 </math:mrow>
24 <math:mrow>
25 <math:mfenced math:open="" math:close="">
26 <math:mi>x</math:mi>
27 </math:mfenced>
28 <math:mo math:stretchy="false">=</math:mo>
29 <math:mrow>
30 <math:mo math:stretchy="false">∫</math:mo>
31 <math:mi>r</math:mi>
32 </math:mrow>
33 </math:mrow>
34 <math:mrow>
35 <math:mfenced math:open="" math:close="">
36 <math:mi>x</math:mi>
37 </math:mfenced>
38 <math:mo math:stretchy="false">⋅</math:mo>
39 <math:mi>v</math:mi>
40 </math:mrow>
41 <math:mfenced math:open="" math:close="">
42 <math:mi>x</math:mi>
43 </math:mfenced>
44 <math:mo math:stretchy="false">∀</math:mo>
45 <math:mi>v</math:mi>
46 </math:mrow>
47 <math:annotation math:encoding="StarMath 5.0">int left( h left( x right) u left( x right) right) cdot v left( x right) = int r left( x right) cdot v left( x right) forall v</math:annotation>
48 </math:semantics>
49 </math:math>
+0
-21
interface/src/scilab/help/mml/gf_asm_eq1.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mo math:stretchy="false">∇</math:mo>
6 <math:mo math:stretchy="false">⋅</math:mo>
7 <math:mfenced math:open="" math:close="">
8 <math:mrow>
9 <math:mi>a</math:mi>
10 <math:mfenced math:open="" math:close="">
11 <math:mi>x</math:mi>
12 </math:mfenced>
13 <math:mo math:stretchy="false">∇</math:mo>
14 <math:mi>u</math:mi>
15 </math:mrow>
16 </math:mfenced>
17 </math:mrow>
18 <math:annotation math:encoding="StarMath 5.0">nabla cdot left( a left( x right) nabla u right)</math:annotation>
19 </math:semantics>
20 </math:math>
+0
-22
interface/src/scilab/help/mml/gf_asm_eq2.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mo math:stretchy="false">∇</math:mo>
6 <math:mo math:stretchy="false">⋅</math:mo>
7 <math:mfenced math:open="" math:close="">
8 <math:mrow>
9 <math:mi>C</math:mi>
10 <math:mfenced math:open="" math:close="">
11 <math:mi>x</math:mi>
12 </math:mfenced>
13 <math:mi math:fontstyle="normal">:</math:mi>
14 <math:mo math:stretchy="false">∇</math:mo>
15 <math:mi>u</math:mi>
16 </math:mrow>
17 </math:mfenced>
18 </math:mrow>
19 <math:annotation math:encoding="StarMath 5.0">nabla cdot left( C left( x right) : nabla u right)</math:annotation>
20 </math:semantics>
21 </math:math>
+0
-27
interface/src/scilab/help/mml/gf_asm_eq3.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mrow>
6 <math:mo math:stretchy="false">−</math:mo>
7 <math:mo math:stretchy="false">ν</math:mo>
8 </math:mrow>
9 <math:mfenced math:open="" math:close="">
10 <math:mi>x</math:mi>
11 </math:mfenced>
12 <math:mo math:stretchy="false">Δ</math:mo>
13 <math:mrow>
14 <math:mi>u</math:mi>
15 <math:mo math:stretchy="false">+</math:mo>
16 <math:mo math:stretchy="false">∇</math:mo>
17 </math:mrow>
18 <math:mrow>
19 <math:mi>p</math:mi>
20 <math:mo math:stretchy="false">=</math:mo>
21 <math:mn>0</math:mn>
22 </math:mrow>
23 </math:mrow>
24 <math:annotation math:encoding="StarMath 5.0">- %nu left( x right) %DELTA u + nabla p = 0</math:annotation>
25 </math:semantics>
26 </math:math>
+0
-16
interface/src/scilab/help/mml/gf_asm_eq4.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mrow>
6 <math:mo math:stretchy="false">∇</math:mo>
7 <math:mo math:stretchy="false">⋅</math:mo>
8 <math:mi>u</math:mi>
9 </math:mrow>
10 <math:mo math:stretchy="false">=</math:mo>
11 <math:mn>0</math:mn>
12 </math:mrow>
13 <math:annotation math:encoding="StarMath 5.0">nabla cdot u = 0</math:annotation>
14 </math:semantics>
15 </math:math>
+0
-23
interface/src/scilab/help/mml/gf_asm_eq5.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mo math:stretchy="false">Δ</math:mo>
6 <math:mrow>
7 <math:mi>u</math:mi>
8 <math:mo math:stretchy="false">+</math:mo>
9 <math:msup>
10 <math:mi>k</math:mi>
11 <math:mn>2</math:mn>
12 </math:msup>
13 </math:mrow>
14 <math:mrow>
15 <math:mi>u</math:mi>
16 <math:mo math:stretchy="false">=</math:mo>
17 <math:mn>0</math:mn>
18 </math:mrow>
19 </math:mrow>
20 <math:annotation math:encoding="StarMath 5.0">%DELTA u + k^2 u = 0</math:annotation>
21 </math:semantics>
22 </math:math>
+0
-24
interface/src/scilab/help/mml/gf_asm_eq6.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mo math:stretchy="false">Δ</math:mo>
6 <math:mrow>
7 <math:mfenced math:open="" math:close="">
8 <math:mrow>
9 <math:mi>a</math:mi>
10 <math:mfenced math:open="" math:close="">
11 <math:mi>x</math:mi>
12 </math:mfenced>
13 <math:mo math:stretchy="false">Δ</math:mo>
14 <math:mi>u</math:mi>
15 </math:mrow>
16 </math:mfenced>
17 <math:mo math:stretchy="false">=</math:mo>
18 <math:mn>0</math:mn>
19 </math:mrow>
20 </math:mrow>
21 <math:annotation math:encoding="StarMath 5.0">%DELTA left( a left( x right) %DELTA u right) = 0</math:annotation>
22 </math:semantics>
23 </math:math>
+0
-20
interface/src/scilab/help/mml/gf_model_set_eq1.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mrow>
6 <math:mo math:stretchy="false">−</math:mo>
7 <math:mtext>div</math:mtext>
8 </math:mrow>
9 <math:mfenced math:open="" math:close="">
10 <math:mrow>
11 <math:mi>a</math:mi>
12 <math:mo math:stretchy="false">∇</math:mo>
13 <math:mi>u</math:mi>
14 </math:mrow>
15 </math:mfenced>
16 </math:mrow>
17 <math:annotation math:encoding="StarMath 5.0">- &quot;div&quot; left( a nabla u right )</math:annotation>
18 </math:semantics>
19 </math:math>
+0
-20
interface/src/scilab/help/mml/gf_model_set_eq2.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mrow>
6 <math:mo math:stretchy="false">∫</math:mo>
7 <math:mfenced math:open="" math:close="">
8 <math:mrow>
9 <math:mi>q</math:mi>
10 <math:mi>u</math:mi>
11 </math:mrow>
12 </math:mfenced>
13 </math:mrow>
14 <math:mo math:stretchy="false">⋅</math:mo>
15 <math:mi>v</math:mi>
16 </math:mrow>
17 <math:annotation math:encoding="StarMath 5.0">int left( q u right) cdot v </math:annotation>
18 </math:semantics>
19 </math:math>
+0
-36
interface/src/scilab/help/mml/gf_model_set_eq3.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mo math:stretchy="false">θ</math:mo>
6 <math:mi>K</math:mi>
7 <math:mrow>
8 <math:msup>
9 <math:mi>U</math:mi>
10 <math:mrow>
11 <math:mi>n</math:mi>
12 <math:mo math:stretchy="false">+</math:mo>
13 <math:mn>1</math:mn>
14 </math:mrow>
15 </math:msup>
16 <math:mo math:stretchy="false">+</math:mo>
17 <math:mrow>
18 <math:mo math:stretchy="false">(</math:mo>
19 <math:mrow>
20 <math:mn>1</math:mn>
21 <math:mo math:stretchy="false">−</math:mo>
22 <math:mo math:stretchy="false">θ</math:mo>
23 </math:mrow>
24 <math:mo math:stretchy="false">)</math:mo>
25 </math:mrow>
26 </math:mrow>
27 <math:mi>K</math:mi>
28 <math:msup>
29 <math:mi>U</math:mi>
30 <math:mi>n</math:mi>
31 </math:msup>
32 </math:mrow>
33 <math:annotation math:encoding="StarMath 5.0">%theta K U^{n+1} + (1 - %theta) K U^{n}</math:annotation>
34 </math:semantics>
35 </math:math>
+0
-33
interface/src/scilab/help/mml/gf_model_set_eq4.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mi>K</math:mi>
6 <math:mfenced math:open="" math:close="">
7 <math:mrow>
8 <math:mfenced math:open="" math:close="">
9 <math:mrow>
10 <math:msup>
11 <math:mi>U</math:mi>
12 <math:mrow>
13 <math:mi>n</math:mi>
14 <math:mo math:stretchy="false">+</math:mo>
15 <math:mn>1</math:mn>
16 </math:mrow>
17 </math:msup>
18 <math:mo math:stretchy="false">+</math:mo>
19 <math:msup>
20 <math:mi>U</math:mi>
21 <math:mi>n</math:mi>
22 </math:msup>
23 </math:mrow>
24 </math:mfenced>
25 <math:mo math:stretchy="false">/</math:mo>
26 <math:mn>2</math:mn>
27 </math:mrow>
28 </math:mfenced>
29 </math:mrow>
30 <math:annotation math:encoding="StarMath 5.0">K left( left( U^{n+1} + U^{n} right) / 2 right)</math:annotation>
31 </math:semantics>
32 </math:math>
+0
-30
interface/src/scilab/help/mml/preliminary_eq1.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mrow>
6 <math:mrow>
7 <math:mo math:stretchy="false">∇</math:mo>
8 <math:mo math:stretchy="false">⋅</math:mo>
9 <math:mfenced math:open="" math:close="">
10 <math:mrow>
11 <math:mo math:stretchy="false">λ</math:mo>
12 <math:mfenced math:open="" math:close="">
13 <math:mi>x</math:mi>
14 </math:mfenced>
15 <math:mo math:stretchy="false">∇</math:mo>
16 <math:mi>u</math:mi>
17 </math:mrow>
18 </math:mfenced>
19 </math:mrow>
20 <math:mo math:stretchy="false">=</math:mo>
21 <math:mi>f</math:mi>
22 </math:mrow>
23 <math:mfenced math:open="" math:close="">
24 <math:mi>x</math:mi>
25 </math:mfenced>
26 </math:mrow>
27 <math:annotation math:encoding="StarMath 5.0">nabla cdot left( %lambda left( x right) nabla u right) = f left( x right)</math:annotation>
28 </math:semantics>
29 </math:math>
+0
-36
interface/src/scilab/help/mml/step_by_step_eq1.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mrow>
6 <math:mi>u</math:mi>
7 <math:mo math:stretchy="false">=</math:mo>
8 <math:mi>x</math:mi>
9 </math:mrow>
10 <math:mfenced math:open="" math:close="">
11 <math:mrow>
12 <math:mi>x</math:mi>
13 <math:mo math:stretchy="false">−</math:mo>
14 <math:mn>1</math:mn>
15 </math:mrow>
16 </math:mfenced>
17 <math:mi>y</math:mi>
18 <math:mrow>
19 <math:mfenced math:open="" math:close="">
20 <math:mrow>
21 <math:mi>y</math:mi>
22 <math:mo math:stretchy="false">−</math:mo>
23 <math:mn>1</math:mn>
24 </math:mrow>
25 </math:mfenced>
26 <math:mo math:stretchy="false">+</math:mo>
27 <math:msup>
28 <math:mi>x</math:mi>
29 <math:mn>5</math:mn>
30 </math:msup>
31 </math:mrow>
32 </math:mrow>
33 <math:annotation math:encoding="StarMath 5.0">u = x left( x-1 right) y left( y-1 right) + x^5</math:annotation>
34 </math:semantics>
35 </math:math>
+0
-47
interface/src/scilab/help/mml/step_by_step_eq2.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mo math:stretchy="false">Δ</math:mo>
6 <math:mrow>
7 <math:mi>u</math:mi>
8 <math:mo math:stretchy="false">=</math:mo>
9 <math:mn>2</math:mn>
10 </math:mrow>
11 <math:mrow>
12 <math:mfenced math:open="" math:close="">
13 <math:mrow>
14 <math:msup>
15 <math:mi>x</math:mi>
16 <math:mn>2</math:mn>
17 </math:msup>
18 <math:mo math:stretchy="false">+</math:mo>
19 <math:msup>
20 <math:mi>y</math:mi>
21 <math:mn>2</math:mn>
22 </math:msup>
23 </math:mrow>
24 </math:mfenced>
25 <math:mo math:stretchy="false">−</math:mo>
26 <math:mn>2</math:mn>
27 </math:mrow>
28 <math:mrow>
29 <math:mfenced math:open="" math:close="">
30 <math:mrow>
31 <math:mi>x</math:mi>
32 <math:mo math:stretchy="false">+</math:mo>
33 <math:mi>y</math:mi>
34 </math:mrow>
35 </math:mfenced>
36 <math:mo math:stretchy="false">+</math:mo>
37 <math:mn>20</math:mn>
38 </math:mrow>
39 <math:msup>
40 <math:mi>y</math:mi>
41 <math:mn>3</math:mn>
42 </math:msup>
43 </math:mrow>
44 <math:annotation math:encoding="StarMath 5.0">%DELTA u = 2 left( x^2 + y^2 right) - 2 left( x + y right) + 20 y^3</math:annotation>
45 </math:semantics>
46 </math:math>
+0
-24
interface/src/scilab/help/mml/step_by_step_eq3.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mrow>
6 <math:mo math:stretchy="false">−</math:mo>
7 <math:mtext>div</math:mtext>
8 </math:mrow>
9 <math:mrow>
10 <math:mfenced math:open="" math:close="">
11 <math:mrow>
12 <math:mi>A</math:mi>
13 <math:mo math:stretchy="false">∇</math:mo>
14 <math:mi>u</math:mi>
15 </math:mrow>
16 </math:mfenced>
17 <math:mo math:stretchy="false">=</math:mo>
18 <math:mn>...</math:mn>
19 </math:mrow>
20 </math:mrow>
21 <math:annotation math:encoding="StarMath 5.0">- &quot;div&quot; left( A nabla u right) = ...</math:annotation>
22 </math:semantics>
23 </math:math>
+0
-36
interface/src/scilab/help/mml/step_by_step_eq4.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mrow>
6 <math:mo math:stretchy="false">∫</math:mo>
7 <math:mi>u</math:mi>
8 </math:mrow>
9 <math:mfenced math:open="" math:close="">
10 <math:mi>x</math:mi>
11 </math:mfenced>
12 <math:mi>v</math:mi>
13 <math:mrow>
14 <math:mfenced math:open="" math:close="">
15 <math:mi>x</math:mi>
16 </math:mfenced>
17 <math:mo math:stretchy="false">=</math:mo>
18 <math:mrow>
19 <math:mo math:stretchy="false">∫</math:mo>
20 <math:mi>r</math:mi>
21 </math:mrow>
22 </math:mrow>
23 <math:mfenced math:open="" math:close="">
24 <math:mi>x</math:mi>
25 </math:mfenced>
26 <math:mi>v</math:mi>
27 <math:mfenced math:open="" math:close="">
28 <math:mi>x</math:mi>
29 </math:mfenced>
30 <math:mo math:stretchy="false">∀</math:mo>
31 <math:mi>v</math:mi>
32 </math:mrow>
33 <math:annotation math:encoding="StarMath 5.0">int u left( x right) v left( x right) = int r left( x right) v left( x right) forall v</math:annotation>
34 </math:semantics>
35 </math:math>
+0
-50
interface/src/scilab/help/mml/step_by_step_eq5.mml less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!DOCTYPE math:math PUBLIC "-//OpenOffice.org//DTD Modified W3C MathML 1.01//EN" "math.dtd">
2 <math:math xmlns:math="http://www.w3.org/1998/Math/MathML">
3 <math:semantics>
4 <math:mrow>
5 <math:mi>u</math:mi>
6 <math:mo math:stretchy="false">=</math:mo>
7 <math:mrow>
8 <math:mrow>
9 <math:mrow>
10 <math:msup>
11 <math:mfenced math:open="" math:close="">
12 <math:mrow>
13 <math:mi>x</math:mi>
14 <math:mo math:stretchy="false">−</math:mo>
15 <math:mn>0.5</math:mn>
16 </math:mrow>
17 </math:mfenced>
18 <math:mn>2</math:mn>
19 </math:msup>
20 <math:mo math:stretchy="false">+</math:mo>
21 <math:msup>
22 <math:mfenced math:open="" math:close="">
23 <math:mrow>
24 <math:mi>y</math:mi>
25 <math:mo math:stretchy="false">−</math:mo>
26 <math:mn>0.5</math:mn>
27 </math:mrow>
28 </math:mfenced>
29 <math:mn>2</math:mn>
30 </math:msup>
31 </math:mrow>
32 <math:mo math:stretchy="false">+</math:mo>
33 <math:mrow>
34 <math:mi>x</math:mi>
35 <math:mo math:stretchy="false">/</math:mo>
36 <math:mn>5</math:mn>
37 </math:mrow>
38 </math:mrow>
39 <math:mo math:stretchy="false">−</math:mo>
40 <math:mrow>
41 <math:mi>y</math:mi>
42 <math:mo math:stretchy="false">/</math:mo>
43 <math:mn>3</math:mn>
44 </math:mrow>
45 </math:mrow>
46 </math:mrow>
47 <math:annotation math:encoding="StarMath 5.0">u = left(x - 0.5 right)^2 + left(y - 0.5 right)^2 + x/5 - y/3</math:annotation>
48 </math:semantics>
49 </math:math>
interface/src/scilab/jar/scilab_en_US_help.jar less more
Binary diff not shown
+0
-5
interface/src/scilab/license.txt less more
0 Licence of SciGetFEM
1
2 Please note that Scilab is released under the terms of the CeCILL license :
3 http://www.cecill.info/index.en.html
4
+0
-10
interface/src/scilab/loader.sce less more
0 // This file is released under the 3-clause BSD license. See COPYING-BSD.
1 // Generated by builder.sce: Please, do not edit this file
2
3 try
4 getversion("scilab");
5 catch
6 error("Scilab 5.0 or more is required.");
7 end;
8
9 exec(get_absolute_file_path("loader.sce")+"etc/"+"sci_getfem.start");
+0
-95
interface/src/scilab/macros/_setdiff.sci less more
0 // Copyright (C) 2000, 2005, 2006, 2007 Paul Kienzle
1 //
2 // This file is part of Octave.
3 //
4 // Octave is free software; you can redistribute it and/or modify it
5 // under the terms of the GNU General Public License as published by
6 // the Free Software Foundation; either version 3 of the License, or (at
7 // your option) any later version.
8 //
9 // Octave is distributed in the hope that it will be useful, but
10 // WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Octave; see the file COPYING. If not, see
16 // <http://www.gnu.org/licenses/>.
17
18 // -*- texinfo -*-
19 // @deftypefn {Function File} {} setdiff (@var{a}, @var{b})
20 // @deftypefnx {Function File} {} setdiff (@var{a}, @var{b}, "rows")
21 // Return the elements in @var{a} that are not in @var{b}, sorted in
22 // ascending order. If @var{a} and @var{b} are both column vectors
23 // return a column vector, otherwise return a row vector.
24 //
25 // Given the optional third argument @samp{"rows"}, return the rows in
26 // @var{a} that are not in @var{b}, sorted in ascending order by rows.
27 // @seealso{unique, union, intersect, setxor, ismember}
28 // @end deftypefn
29
30 // Author: Paul Kienzle
31 // Adapted-by: jwe
32
33 function c = _setdiff (a, b, byrows_arg)
34
35 [nargout,nargin] = argn();
36
37 if (nargin < 2 | nargin > 3) then
38 error('setdiff: 2 or 3 arguments allowed');
39 end
40
41 byrows = %F;
42
43 if (nargin == 3) then
44 if (byrows_arg~="rows") then
45 error('expecting third argument to be ''rows''');
46 elseif (typeof(a)=='list' | typeof(b)=='list') then
47 warning('setdiff: ''rows'' not valid for cell arrays');
48 else
49 byrows = %T;
50 end
51 end
52
53 if (byrows) then
54 c = unique (a, 'r');
55 if (~isempty (c) & ~isempty (b)) then
56 // Form a and b into combined set.
57 b = unique (b, 'r');
58 [dummy, idx] = gsort([c; b],'lr','i');
59 // Eliminate those elements of a that are the same as in b.
60 dups = find (and(dummy(1:$-1,:) == dummy(2:$,:),2));
61 c = [c;b];
62 dummy(unique([dups dups+1]),:) = [];
63 c = dummy;
64 end
65 else
66 c = unique(a);
67 if (~isempty (c) & ~isempty (b)) then
68 // Form a and b into combined set.
69 b = unique(b);
70 // Doesn't work with string
71 if (typeof([c(:); b(:)])=='string') then
72 [dummy, idx] = gsort(-[ascii(c(:)); ascii(b(:))]);
73 else
74 [dummy, idx] = gsort(-double([c(:); b(:)]));
75 end
76
77 // Eliminate those elements of a that are the same as in b.
78 dups = find (dummy(1:$-1)==dummy(2:$));
79 c(idx(dups)) = [];
80 // Reshape if necessary.
81 if (size (c, 1) ~= 1 & size (b, 1) == 1) then
82 c = c.';
83 end
84 end
85 end
86 endfunction
87
88 //!assert(setdiff(["bb";"zz";"bb";"zz"],["bb";"cc";"bb"],"rows"), "zz") // OK ??
89 //!assert(setdiff(["b";"z";"b";"z"],["b";"c";"b"],"rows"), "z") // OK ??
90 //!assert(setdiff(["b";"z";"b";"z"],["b";"c";"b"]), "z") // NOK
91 //!assert(setdiff([1, 1; 2, 2; 3, 3; 4, 4], [1, 1; 2, 2; 4, 4], "rows"), [3 3]) // OK
92 //!assert(setdiff([1; 2; 3; 4], [1; 2; 4], "rows"), 3) // OK
93 //!assert(setdiff([1, 2; 3, 4], [1, 2; 3, 6], "rows"), [3, 4]) // OK ??
94 //!assert(setdiff(list("one","two";"three","four"),list("one","two";"three","six")), list("four")) // NOK
+0
-11
interface/src/scilab/macros/add_empty_bound.sci less more
0 function pde = add_empty_bound(pde)
1 if isempty(pde('bound')) then
2 pde('bound') = list();
3 end
4
5 pde('bound')($+1) = mlist(['bound','type','R','H']);
6 pde('bound')($)('type') = 'Dirichlet';
7 pde('bound')($)('R') = [];
8 pde('bound')($)('H') = [];
9 endfunction
10
+0
-18
interface/src/scilab/macros/assert.sci less more
0 function assert(sx)
1 global gverbose;
2 global gdebug;
3
4 execstr('x = ' + sx);
5 if (~and(x(:))) then
6 if (gverbose) then
7 dbstack;
8 end
9 if (gdebug) then
10 disp('Assertion failed: ' + sx);
11 pause;
12 else
13 error('Assertion failed: ' + sx);
14 end
15 end
16 endfunction
17
+0
-11
interface/src/scilab/macros/assert_field.sci less more
0 //////////////////
1 // assert_field //
2 //////////////////
3
4 function assert_field(pde,varargin)
5 for i=1:length(varargin),
6 if (~or(getfield(1,pde)==varargin(i))) then
7 error('no member ' + varargin(i) + ' in mlist pde!');
8 end
9 end
10 endfunction
+0
-24
interface/src/scilab/macros/asserterr.sci less more
0 function asserterr(sx)
1 global gdebug;
2
3 // ASSERTERR DOES NOT WORK FOR ASSIGNMENTS (i.e. sx='x=1')
4 // ONLY FOR EXPRESSIONS
5 //x = evalin('caller',sx, '[''catched'']');
6 ierr = execstr(sx, 'errcatch');
7 [str,n,line,func]=lasterror();
8 [LASTMSG, LASTID] = lasterror();
9 if (~ierr) then
10 if (gdebug)
11 disp('Error triggering test failed: ' + sx);
12 disp('error: ' + str);
13 disp(sprintf('error %d in %s at line %d\n', n, func, line));
14 pause;
15 else
16 disp('Error triggering test failed: ' + sx);
17 disp('error: ' + str);
18 disp(sprintf('error %d in %s at line %d\n', n, func, line));
19 error('');
20 end
21 end
22 endfunction
23
+0
-7
interface/src/scilab/macros/build_options_list.sci less more
0 function opts = build_options_list(varargin)
1 opts = init_param();
2 for i=1:length(varargin)/2
3 opts = add_param(opts,varargin(2*(i-1)+1),varargin(2*(i-1)+2));
4 end
5 endfunction
6
+0
-12
interface/src/scilab/macros/buildmacros.sce less more
0 // ====================================================================
1 // Yann COLLETTE
2 // Copyright 2009-2010
3 // This file is released into the public domain
4 // ====================================================================
5
6 path = get_absolute_file_path('buildmacros.sce');
7
8 genlib('sci_getfemlib',path,%f,%t);
9 genlib('sci_getfemoverloadlib',path + filesep() + 'overload',%f,%t);
10
11 clear path;
+0
-8
interface/src/scilab/macros/cart2pol.sci less more
0 function [r, theta] = cart2pol (x, y)
1 r = sqrt(x.^2 + y.^2);
2 old_ieee = ieee();
3 ieee(2)
4 theta = atan(y./x);
5 ieee(old_ieee);
6 endfunction
7
+0
-22
interface/src/scilab/macros/champ3.sci less more
0 function champ3(x,y,z,fx,fy,fz,c)
1
2 X = zeros(2*length(x),1);
3 Y = zeros(2*length(y),1);
4 Z = zeros(2*length(z),1);
5
6 X(1:2:$) = matrix(x,length(x),1);
7 X(2:2:$) = matrix(x+fx,length(x),1);
8 Y(1:2:$) = matrix(y,length(y),1);
9 Y(2:2:$) = matrix(y+fy,length(y),1);
10 Z(1:2:$) = matrix(z,length(x),1);
11 Z(2:2:$) = matrix(z+fz,length(z),1);
12
13 xsegs(X,Y,c);
14 e = gce();
15 e.arrow_size = 1;
16 e.data(:,3) = Z;
17 a = gca();
18 a.view = '3d';
19 a.data_bounds(:,3) = [min(e.data(:,3)); max(e.data(:,3))];
20 endfunction
21
+0
-90
interface/src/scilab/macros/cross.sci less more
0 // Copyright (C) 1995, 1996, 1997, 1999, 2000, 2002, 2004, 2005, 2006,
1 // 2007 Kurt Hornik
2 //
3 // This file is part of Octave.
4 //
5 // Octave is free software; you can redistribute it and/or modify it
6 // under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 3 of the License, or (at
8 // your option) any later version.
9 //
10 // Octave is distributed in the hope that it will be useful, but
11 // WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with Octave; see the file COPYING. If not, see
17 // <http://www.gnu.org/licenses/>.
18
19 // -*- texinfo -*-
20 // @deftypefn {Function File} {} cross (@var{x}, @var{y}, @var{dim})
21 // Computes the vector cross product of the two 3-dimensional vectors
22 // @var{x} and @var{y}.
23 //
24 // @example
25 // @group
26 // cross ([1,1,0], [0,1,1])
27 // @result{} [ 1; -1; 1 ]
28 // @end group
29 // @end example
30 //
31 // If @var{x} and @var{y} are matrices, the cross product is applied
32 // along the first dimension with 3 elements. The optional argument
33 // @var{dim} is used to force the cross product to be calculated along
34 // the dimension defined by @var{dim}.
35 // @end deftypefn
36
37 // Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
38 // Created: 15 October 1994
39 // Adapted-By: jwe
40
41 function z = cross (x, y, dim)
42
43 [nargout,nargin] = argn();
44
45 if (ndims (x) < 3 & ndims (y) < 3 & nargin < 3) then
46 // COMPATIBILITY -- opposite behaviour for cross(row,col)
47 // Swap x and y in the assignments below to get the matlab behaviour.
48 // Better yet, fix the calling code so that it uses conformant vectors.
49 if (size(x,2) == 1 & size(y,1) == 1) then
50 warning('cross: taking cross product of column by row');
51 y = y.';
52 elseif (size(x,1) == 1 & size(y,2) == 1) then
53 warning('cross: taking cross product of row by column');
54 x = x.';
55 end
56 end
57
58 if (nargin == 2) then
59 dim = find (size (x) == 3, 1);
60 if (isempty (dim)) then
61 error('cross: must have at least one dimension with 3 elements');
62 end
63 else
64 if (size (x) ~= 3) then
65 error('cross: dimension dim must have 3 elements');
66 end
67 end
68
69 nd = ndims (x);
70 sz = size (x);
71 idx1 = list();
72 for i = 1:nd
73 idx1(i) = 1:sz(i);
74 end
75 idx2 = idx1;
76 idx3 = idx1;
77 idx1(dim) = 1;
78 idx2(dim) = 2;
79 idx3(dim) = 3;
80
81 if (and(size(x)==size(y))) then
82 z = cat(dim, ...
83 (x(idx2(:)) .* y(idx3(:)) - x(idx3(:)) .* y(idx2(:))), ...
84 (x(idx3(:)) .* y(idx1(:)) - x(idx1(:)) .* y(idx3(:))), ...
85 (x(idx1(:)) .* y(idx2(:)) - x(idx2(:)) .* y(idx1(:))));
86 else
87 error('cross: x and y must have the same dimensions');
88 end
89 endfunction
+0
-51
interface/src/scilab/macros/dot.sci less more
0 // Copyright (C) 1998, 1999, 2000, 2002, 2004, 2005, 2006, 2007
1 // John W. Eaton
2 //
3 // This file is part of Octave.
4 //
5 // Octave is free software; you can redistribute it and/or modify it
6 // under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 3 of the License, or (at
8 // your option) any later version.
9 //
10 // Octave is distributed in the hope that it will be useful, but
11 // WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with Octave; see the file COPYING. If not, see
17 // <http://www.gnu.org/licenses/>.
18
19 // -*- texinfo -*-
20 // @deftypefn {Function File} {} dot (@var{x}, @var{y}, @var{dim})
21 // Computes the dot product of two vectors. If @var{x} and @var{y}
22 // are matrices, calculate the dot-product along the first
23 // non-singleton dimension. If the optional argument @var{dim} is
24 // given, calculate the dot-product along this dimension.
25 // @end deftypefn
26
27 // Author: jwe
28
29 function z = dot (x, y, dim)
30
31 [nargout,nargin] = argn();
32
33 if (nargin < 3) then
34 if isvector (x) then
35 x = x(:);
36 end
37 if isvector (y) then
38 y = y(:);
39 end
40 if (~and(size(x)==size(y))) then
41 error('dot: sizes of arguments must match')
42 end
43 z = sum(x .* y);
44 else
45 if (~and(size(x)==size(y))) then
46 error('dot: sizes of arguments must match')
47 end
48 z = sum(x .* y, dim);
49 end
50 endfunction
+0
-169
interface/src/scilab/macros/gf_asm_pdetoolbc.sci less more
0 function [Q,G,H,R,F]=gf_asm_pdetoolbc(mf_u, mf_d, b, e, f_expr)
1 // FUNCTION [Q,G,H,R,F]=gf_asm_pdetoolbc(mf_u, mf_d, b, e, f_expr)
2 // 'pdetool style' assembling of boundary conditions
3 // See gf_asm
4 // $Id: gf_asm_pdetoolbc.m 1520 2004-03-22 13:15:24Z pommier $
5
6 [nargout,nargin] = argn();
7
8 if (nargin < 4) then error('not enough input arguments'); end;
9 nb_boundaries = size(b,2);
10 xyeval = gf_mesh_fem_get(mf_d, 'dof nodes');
11 nbdof = size(xyeval,2);
12 N=b(1,1); // dimension of the system (1->scalar, 2->vector 2D)
13 qdim = gf_mesh_fem_get(mf_u, 'qdim');
14
15 if (qdim ~= N) then
16 error(sprintf(['the boundary condition b was generated for a %d-D problem, '...
17 'while the Qdim of the mesh_fem is %d'], N, qdim));
18 end
19 if (nargin >= 5 & qdim ~= size(f_expr,1)) then
20 error('the qdim of the mesh fem and the size of f (the volumic source term) do not match');
21 end
22 if (gf_mesh_fem_get(mf_d, 'qdim') ~= 1) then
23 error('the Qdim of the data mesh_fem should always be 1');
24 end
25
26 for bnum=1:nb_boundaries,
27 //ignores
28 if (b(1,bnum)==0) then continue; end;
29
30 //select edges which belong to
31 //boundary 'bnum'
32 E=e(:, find(e(5,:)==bnum));
33
34 EC = gf_mesh_get(mf_d, 'faces from pid', [E(1,:) E(2,:)]);
35 // EC=[];
36 // for i=1:size(E,2)
37 // EC = [EC gf_mesh_get(mf_d, 'faces from pid', E(1:2,i))];
38 // end;
39 gf_mesh_fem_set(mf_d, 'boundary',bnum, EC);
40 gf_mesh_fem_set(mf_u, 'boundary',bnum, EC);
41
42 M = b(2,bnum); // number of dirichlet conditions (0,1,..N)
43 if (M>N) then disp('invalid geometry matrix'); return; end;
44
45 clear qexpr gexpr;
46 pos_len = 3;
47 pos = 3+N*N+N+M*N+M;
48
49 // reading Q expressions
50 gexpr = list();
51 for i=1:N
52 gexpr(i) = list();
53 end
54
55 for j=1:N
56 for i=1:N
57 len=b(pos_len,bnum);
58 qexpr(i)(j)=char(b(pos:(pos+len-1), bnum)');
59 pos_len = pos_len+1;
60 pos = pos+len;
61 end
62 end
63
64
65 // reading G expressions
66 gexpr = list();
67 for i=1:N,
68 len=b(pos_len,bnum);
69 gexpr(i)=char(b(pos:(pos+len-1), bnum)');
70 pos_len = pos_len+1;
71 pos = pos+len;
72 end
73
74
75 // reading H expression
76 hexpr = list();
77 for i=1:M
78 hexpr(i) = list();
79 end
80
81 for j=1:N
82 for i=1:M
83 len=b(pos_len,bnum);
84 hexpr(i)(j)=char(b(pos:(pos+len-1), bnum)');
85 pos_len = pos_len+1;
86 pos = pos+len;
87 end
88 end
89
90
91 // reading R expressions
92 rexpr = list();
93 for i=1:M,
94 len=b(pos_len,bnum);
95 rexpr(i)=char(b(pos:(pos+len-1), bnum)');
96 pos_len = pos_len+1;
97 pos = pos+len;
98 end;
99
100
101 // computations of expressions on the dof
102 vQ = zeros(N,N,nbdof);
103 for i=1:N,
104 for j=1:N,
105 vQ(i,j,:) = eval_expr(xyeval, qexpr(i)(j));
106 end;
107 end;
108 vG = zeros(N,nbdof);
109 for i=1:N,
110 vG(i,:) = eval_expr(xyeval, gexpr(i));
111 end;
112
113 vH = zeros(N,N,nbdof);
114 for i=1:M,
115 for j=1:N,
116 vH(i,j,:) = eval_expr(xyeval, hexpr(i)(j));
117 end;
118 end;
119
120 vR = zeros(N,nbdof);
121 for i=1:M,
122 vR(i,:) = eval_expr(xyeval, rexpr(i));
123 end;
124 bQ = gf_asm('boundary qu term', bnum, mf_u, mf_d, matrix(vQ,N*N,nbdof));
125 // bH = gf_asm('boundary qu term', bnum, mf_u, mf_d, matrix(vH,N*N,nbdof));
126 bG = gf_asm('boundary source', bnum, mf_u, mf_d, matrix(vG,N,nbdof));
127 // bR = gf_asm('neumann', bnum, mf_u, mf_d, matrix(vR,N,nbdof));
128 [bH,bR] = gf_asm('dirichlet',bnum, mf_u, mf_d, matrix(vH,N*N,nbdof), matrix(vR,N,nbdof));
129 if (bnum ~= 1) then
130 Q=Q+bQ; G=G+bG; H=H+bH; R=R+bR;
131 else
132 Q=bQ; G=bG; H=bH; R=bR;
133 end
134 end;
135
136 // check for volumic source term
137 if (nargin == 5 & nargout == 5) then
138 if (typeof(f_expr)=='string') then
139 Fd = zeros(N,nbdof);
140 for i=1:N
141 Fd(i,:) = eval_expr(xyeval, f_expr(i,:));
142 end;
143 else
144 Fd = f_expr;
145 end;
146 F=gf_asm('volumic source', mf_u, mf_d, Fd);
147 F=F(:);
148 end;
149 endfunction
150
151 function V=eval_expr(xypos, expr)
152 //disp('expr=' + expr);
153 V=zeros(1,size(xypos,2));
154 x=xypos(1,:);
155
156 if (size(xypos,1) >= 2) then y=xypos(2,:)
157 else
158 y=0;
159 end
160
161 if (size(xypos,1) >= 3) then z=xypos(3,:)
162 else
163 z=0;
164 end
165
166 eval(['e=' expr ';']); V(:) = e(:);
167 endfunction
168
+0
-132
interface/src/scilab/macros/gf_colormap.sci less more
0 function out = gf_colormap(name),
1 // function c=gf_colormap(name)
2 // return a colormap, or change the current colormap.
3 // name can be: 'tripod', 'chouette', 'froid', 'tank'
4 // or 'earth'.
5
6 [nargout,nargin] = argn();
7
8 if (name=='tripod') then
9 r = [0.7 0.7 0.7];
10 l = r($,:);
11 s = 63;
12 s1 = 20;
13 s2 = 25;
14 s3 = 48;
15 s4 = 55;
16 for i=1:s,
17 c1 = max(min((i-s1)/(s2-s1),1),0);
18 c2 = max(min((i-s3)/(s4-s3),1),0);
19 r($+1,:)=(1-c2)*((1-c1)*l + c1*[1 0 0]) + c2*[1 .8 .2];
20 end
21 elseif (name=='chouette') then
22 gg = [0.8 1.0 0.8;
23 0.7 0.9 0.4;
24 0.3 0.8 0.2;
25 0.1 0.7 0.4;
26 0.2 0.7 1.0;
27 0.3 0.3 1.0;
28 1.0 0.8 0.1;
29 1.0 0.6 0.1;
30 1.0 0.45 0.1;
31 1.0 0.3 0.1];
32 r = matrix(repmat(gg',6,1),3,60)';
33 elseif (name=='froid') then
34 gg = [0.8 1.0 0.8;
35 0.7 0.9 0.4;
36 0.3 0.8 0.2;
37 0.1 0.7 0.4;
38 0.2 0.7 1.0;
39 0.3 0.3 1.0];
40 r = matrix(repmat(gg',10,1),3,60)';
41 elseif (name=='tank') then
42 r=[0.0 0.0 1.0;
43 0.0 0.5 1.0;
44 0.0 1.0 0.5;
45 0.0 1.0 0.0;
46 0.5 1.0 0.0;
47 1.0 0.5 0.0;
48 1.0 0.4 0.0;
49 1.0 0.0 0.0;
50 1.0 0.2 0.0;
51 1.0 0.4 0.0;
52 1.0 0.6 0.0;
53 1.0 0.8 0.0];
54 r = matrix(repmat(r',5,1),3,60)';
55 elseif (name=='earth') then
56 r=[252 233 79; // Butter 1
57 247 222 30;
58 237 212 0; // Butter 2
59 216 180 0;
60 196 160 0; // Butter 3
61 138 226 52; // Chameleon 1
62 115 210 22; // Chameleon 2
63 78 154 6];
64 r = matrix(r'/255, 8,1);
65 r = matrix(r,3,length(r)/3)';
66 elseif (name=='getfem') then
67 r = [252 233 79; // Butter 1
68 237 212 0; // Butter 2
69 196 160 0; // Butter 3
70 138 226 52; // Chameleon 1
71 115 210 22; // Chameleon 2
72 78 154 6; // Chameleon 3
73 252 175 62; // Orange 1
74 245 121 0; // Orange 2
75 206 92 0; // Orange 3
76 114 159 207; // Sky Blue 1
77 114 159 207; // Sky Blue 1
78 52 101 164; // Sky Blue 2
79 52 101 164; // Sky Blue 2
80 32 74 135; // Sky Blue 3
81 32 74 135; // Sky Blue 3
82 173 127 168; // Plum 1
83 173 127 168; // Plum 1
84 173 127 168; // Plum 1
85 117 80 123; // Plum 2
86 117 80 123; // Plum 2
87 117 80 123; // Plum 2
88 92 53 102; // Plum 3
89 92 53 102; // Plum 3
90 92 53 102; // Plum 3
91 233 185 110; // Chocolate 1
92 233 185 110; // Chocolate 1
93 233 185 110; // Chocolate 1
94 233 185 110; // Chocolate 1
95 193 125 17; // Chocolate 2
96 193 125 17; // Chocolate 2
97 193 125 17; // Chocolate 2
98 193 125 17; // Chocolate 2
99 143 89 2; // Chocolate 3
100 143 89 2; // Chocolate 3
101 143 89 2; // Chocolate 3
102 143 89 2; // Chocolate 3
103 239 41 41; // Scarlet Red 1
104 239 41 41; // Scarlet Red 1
105 239 41 41; // Scarlet Red 1
106 239 41 41; // Scarlet Red 1
107 239 41 41; // Scarlet Red 1
108 204 0 0; // Scarlet Red 2
109 204 0 0; // Scarlet Red 2
110 204 0 0; // Scarlet Red 2
111 204 0 0; // Scarlet Red 2
112 204 0 0; // Scarlet Red 2
113 164 0 0; // Scarlet Red 3
114 164 0 0; // Scarlet Red 3
115 164 0 0; // Scarlet Red 3
116 164 0 0; // Scarlet Red 3
117 164 0 0]; // Scarlet Red 3
118
119 r = r/255;
120 else
121 error('wrong colormap');
122 end
123
124 if (nargout) then
125 out = r;
126 else
127 f = gcf();
128 f.color_map = r;
129 end
130 endfunction
131
+0
-74
interface/src/scilab/macros/gf_compute_Q1grid_interp.sci less more
0 function [U2,Iq,MF2]=gf_compute_Q1grid_interp(MF1,U1,varargin)
1 // See help on gf_compute
2 // $Id: gf_compute_Q1grid_interp.m 1937 2005-03-08 16:50:13Z pommier $
3
4 [nargout,nargin] = argn();
5
6 if (nargin < 3) then
7 error('not enough input arguments');
8 end;
9
10 gf_workspace('push', 'gf_compute_Q1grid_interp');
11
12 meshpts = gf_mesh_get(MF1, 'pts');
13 zmin = min(meshpts,'c');
14 zmax = max(meshpts,'c');
15 ndim = length(zmin);
16 if (ndim > 3) then
17 error('this number of dim is not supported (patch me)');
18 end;
19
20 X = list();
21
22 try
23 select varargin(1)
24 case 'regular h' then
25 if (length(varargin) ~= 2) then error('wrong number of arguments'); end;
26 if (length(varargin(2)) ~= ndim) then error('invalid dimension'); end;
27 for i=1:ndim
28 if (varargin(2)(i) <= 0) then error('invalid step value'); end;
29 X(i) = zmin(i):(varargin(2)(i)):zmax(i);
30 end
31 case 'regular N' then
32 if (length(varargin) ~= 2) then error('wrong number of arguments'); end;
33 if (length(varargin(2)) ~= ndim) then error('invalid dimension'); end;
34 for i=1:ndim,
35 if (varargin(2)(i) <= 0) then error('invalid number of cells'); end;
36 h = (zmax(i) - zmin(i))/(varargin(2)(i));
37 X(i) = zmin(i):h:zmax(i);
38 end
39 else
40 X = varargin(1);
41 if (typeof(X)~='list') then error('grid points should be stored in a list array of size nbdim'); end;
42 if (length(X) ~= ndim) then error('wrong number of dimension in the grid points argument'); end;
43 end
44
45 Q=gf_mesh_fem_get(MF1,'qdim');
46 M = gf_mesh('cartesian', X(:));
47 MF2 = gf_mesh_fem(M,Q);
48 gf_mesh_fem_set(MF2, 'classical fem', 1); // Q1 fem
49 mfU2 = gf_compute(MF1,U1, 'interpolate on', MF2);
50
51 PTS = gf_mesh_fem_get(MF2, 'basic dof nodes');
52
53 PTS = PTS($:-1:1,1:Q:$); // (x,y,z)->(z,y,x) and remove duplicate dof
54 [PTS,I] = gsort(PTS','lr','i'); // sort points, by z then by y then by x etc..
55 I = Q*(I-1) + 1;
56 sz = Q;
57 for i=1:length(X) sz = [sz length(X(i))]; end;
58 Iq=zeros(Q,length(I));
59 for q=1:Q,
60 Iq(q,:) = I'+(q-1);
61 end;
62 Iq = Iq(:);
63 U2 = matrix(mfU2(Iq),sz);
64 if (nargout == 3) then
65 gf_workspace('keep', MF2);
66 end;
67 catch,
68 gf_workspace('pop');
69 error(lasterror());
70 end
71 gf_workspace('pop');
72 endfunction
73
+0
-53
interface/src/scilab/macros/gf_interpolate_on_grid.sci less more
0 function [G,varargout]=gf_interpolate_on_grid(mf,U,varargin)
1 // function G=gf_interpolate_on_grid(mf,U,X,Y,...)
2 // interpolates a field defined on mesh_fem 'mf' on
3 // a cartesian grid [X(1),X(2),...] x [Y(1),Y(2),...] x ...
4
5 dim=gf_get_mesh_dim(mf);
6
7 if (length(varargin) ~= dim) then
8 error('wrong number of arguments');
9 end
10
11 if (gf_nb_dof(mf) ~= length(U(:,1))) then
12 error(sprintf('wrong dimensions for U, should be %d instead of %d',gf_nb_dof(mf),size(U,1)));
13 end;
14
15 // creates the cartesian mesh
16 mc = new_mesh;
17 gf_cartesian_mesh(mc, varargin(:));
18
19 // use basic Q1 interpolation on this mesh
20 fem_c=QK_fem(dim,1);lst=new_intset;
21
22 // count the total number of elements
23 nb_elt=1;
24 npts = [];
25 for i=1:dim
26 npts(i)=length(varargin(i));
27 nb_elt = nb_elt*(npts(i)-1);
28 end;
29
30 // builds the integration method on a paralellepipedic cell
31 // YC: function ID too long
32 pfi=gf_intmethod_approx_simplex(1,3);
33 for i=1:dim,
34 pfi=gf_intmethod_approx_product(pfi, pfi);
35 end
36
37 add_to_intset(lst,1,nb_elt);
38 mf_c = new_mesh_fem(mc);
39 set_finite_element(mf_c, lst,fem_c, pfi);
40
41 Uc = gf_interpolate_on_other_mesh(mf, mf_c, U');
42 Uc=Uc';
43
44 xy = gf_get_interpolation_pts(mf_c); xy=xy';
45 [XY,I]=sortrows(xy);
46
47 Uc=Uc(I,:);
48 G=matrix(Uc,[npts size(Uc,2)]);
49 if (length(varargout)==1) then
50 varargout(1)=I;
51 end
52 endfunction
+0
-90
interface/src/scilab/macros/gf_mesh_fem_get_eval.sci less more
0 function X=gf_mesh_fem_get_eval(mf, _what, dof)
1 // gf_mesh_fem_get_eval : see the help in gf_mesh_fem_get(mf,'eval')
2
3 [nargout,nargin] = argn();
4
5 if (nargin < 2) then error('not enough input arguments'); end;
6
7 qdim = gf_mesh_fem_get(mf, 'qdim');
8 nbdof = gf_mesh_fem_get(mf,'nbdof');
9
10 if (nargin==2) then dof=1:qdim:nbdof; end;
11
12 // --- TODO --- only test the dof, not whole mesh
13 if (~gf_mesh_fem_get(mf, 'is lagrangian')) then
14 error('interpolating on a non-lagrangian mesh fem');
15 end
16
17 // if (qdim ~= 1) then
18 // dof = dof(1:qdim:nbdof);
19 // end
20
21 if (find(modulo(dof-1,qdim))) then
22 error(['when qdim is different of 1, only dofs 1,qdim+1,',...
23 '2*qdim+1,... are authorized']);
24 end
25
26 dxy = gf_mesh_fem_get(mf, 'basic dof nodes',dof);
27
28 if typeof(_what)~='list' then
29 if (size(_what,2) == nbdof & typeof(_what)=='constant') then
30 X = _what;
31 return;
32 elseif (typeof(_what)=='string') then
33 error(['string expressions must be enclosed in a list: try with list( ',...
34 'your_expression )']);
35 elseif (size(_what,2) ~= qdim) then
36 error(sprintf(['wrong dimensions for the expression: should have ',...
37 '%d (=Qdim) columns instead of %d'],qdim,size(_what,2)));
38 end
39
40 X = zeros(size(_what,1),nbdof);
41 end
42
43
44 if (typeof(_what)=='constant') then
45 X(dof) = repmat(_what, 1, nbdof/qdim);
46 return;
47 end
48
49 if typeof(_what)=='list' then
50 X = zeros(size(_what),nbdof);
51 m = size(_what);
52
53 xpos = dxy(1,:);
54 if (size(dxy,1)>=2) then
55 ypos = dxy(2,:);
56 else
57 ypos = zeros(size(xpos));
58 end
59 if (size(dxy,1)>=3) then
60 zpos = dxy(3,:);
61 else
62 zpos = zeros(size(xpos));
63 end
64
65 for i=1:m
66 for j=1:qdim
67 if (typeof(_what(i)(j))=='constant') then
68 if (length(_what(i)(j)) ~= 1) then error('numeric values should be scalar'); end;
69 X(i,dof+j-1) = _what(i)(j);
70 elseif (typeof(_what(i)(j))=='string') then
71 x = xpos;
72 y = ypos;
73 z = zpos;
74 //X(i,dof+j-1) = eval(_what(i)(j));
75 X(i,dof+j-1) = evstr(_what(i)(j));
76 elseif ((typeof(_what(i)(j))=='function')|(typeof(_what(i)(j))=='fptr')) then
77 X(i,dof+j-1) = feval(xpos,ypos,zpos,_what(i)(j));
78 else
79 error(['sorry, don''t know how to eval a ' typeof(_what(i)(j)),...
80 ' expression, only function handles, numeric constants and ',...
81 'string expressions are handled']);
82 end
83 end
84 end
85 else
86 error(['can''t evaluate on mesh fem: argument is neither a numeric ',...
87 'constant nor a cell array of (strings|constants|function handles)']);
88 end
89 endfunction
+0
-290
interface/src/scilab/macros/gf_plot.sci less more
0 function [hsurf, hcontour, hquiver, hmesh, hdefmesh]=gf_plot(mf,U,varargin)
1 // function h=gf_plot(mf,U,varargin)
2 // this function plots a 2D or 3D finite elements field.
3 //
4 // The options are specified as pairs of 'option name'/'option value'
5 //
6 // 'zplot',{'off'|'on'} : only for qdim=1, mdim=2
7 // 'norm', {'off'|'on'} : if qdim >= 2, color-plot the norm of the field
8 // 'dir',[] : or the scalar product of the field with 'dir'
9 // (can be a vector, or 'x', 'y' etc..)
10 // 'refine',8 : nb of refinments for curved edges and surface plots
11 // 'interpolated',{'off'|'on'} : if triangular patch are interpolated
12 // 'pcolor',{'on'|'off'} : if the field is scalar, a color plot of its values is plotted
13 // 'quiver',{'on'|'off'} : if the field is vector, represent arrows
14 // 'quiver_density',50 : density of arrows in quiver plot
15 // 'quiver_scale',1 : scaling of arrows (0=>no scaling)
16 // 'mesh',{'off'|'on'} : show the mesh ?
17 // 'meshopts',{cell(0)} : cell array of options passed to gf_plot_slice for the mesh
18 // 'deformed_mesh', {'off'|'on'} : shows the deformed mesh (only when qdim == mdim)
19 // 'deformed_meshopts', {cell(0)} : cell array of options passed to gf_plot_slice
20 // for the deformed mesh
21 // 'deformation',[] : plots on the deformed object (only when qdim == mdim)
22 // 'deformation_mf',[] : plots on the deformed object (only when qdim == mdim)
23 // 'deformation_scale',0.1' : indicate the amplitude of the deformation. Can be
24 // an absolute value if given as a number
25 // 'cvlst',[] : list of convexes to plot (empty=>all convexes)
26 // 'title',[] : set the title
27 // 'contour',[] : list of contour values
28 // 'disp_options','off' : displays the options passed to gf_plot
29
30 hsurf = [];
31 hcontour = list();
32 hquiver = [];
33 hmesh = [];
34 hdefmesh = [];
35
36 opts = build_options_list(varargin(:));
37
38 if has_field(opts,'disp_options') then
39 if ison(opts('disp_options')) then
40 disp(opts);
41 end
42 end
43
44 try
45 gf_workspace('push');
46 [hsurf, hcontour, hquiver, hmesh, hdefmesh] = gf_plot_aux(mf,U,opts);
47 catch
48 [str,n,line,func]=lasterror();
49 disp('error in gf_plot: ' + str);
50 disp(sprintf('error %d in %s at line %d\n', n, func, line));
51 error('');
52 end
53 gf_workspace('pop');
54 endfunction
55
56 function [hsurf, hcontour, hquiver, hmesh, hdefmesh] = gf_plot_aux(mf,U,opts)
57
58 [nargout,nargin] = argn();
59
60 if nargin<2 then
61 error('Too few input arguments')
62 end
63
64 hsurf = [];
65 hcontour = list();
66 hquiver = [];
67 hmesh = [];
68 hdefmesh = [];
69
70 try
71 qdim = gf_mesh_fem_get(mf, 'qdim');
72 mdim = gf_mesh_get(mf, 'dim'); mdim3=mdim*3;
73 catch
74 [str,n,line,func]=lasterror();
75 disp('invalid mesh_fem: ' + str);
76 disp(sprintf('error %d in %s at line %d\n', n, func, line));
77 error('');
78 end
79
80 if (mdim == 1) then
81 hsurf = gf_plot_1D(mf,U,opts);
82 return;
83 end
84
85 if (mdim ~= 2 & mdim ~= 3) then
86 error('only 2D and 3D mesh are handled by this function');
87 end
88
89 [o_zplot,err] = get_param(opts,'zplot', 'off'); // only for qdim=1, mdim=2
90 [o_norm,err] = get_param(opts,'norm', 'off'); // if qdim >= 2, color-plot the norm of the field
91 [o_dir,err] = get_param(opts,'dir', []); // or the scalar product of the field with 'dir' (can be a vector, or 'x', 'y' etc..)
92 [o_refine,err] = get_param(opts,'refine', 8); // nb of refinments for curved edges and surface plots
93 [o_interpolated,err] = get_param(opts,'interpolated', 'off'); //if triangular patch are interpolated
94 [o_pcolor,err] = get_param(opts,'pcolor', 'on'); // if the field is scalar, a color plot of its values is plotted
95 [o_quiver,err] = get_param(opts,'quiver', 'on'); // if the field is vector, represent arrows
96 [o_quiver_density,err] = get_param(opts,'quiver_density', 50); // density of arrows in quiver plot
97 [o_quiver_scale,err] = get_param(opts,'quiver_scale', 1); // scaling of arrows (0=>no scaling)
98 [o_mesh,err] = get_param(opts,'mesh', 'off'); // show the mesh ?
99 [o_meshopts,err] = get_param(opts,'meshopts', list()); // cell array of options passed to gf_plot_slice for the mesh
100 [o_deformed_mesh,err] = get_param(opts,'deformed_mesh', 'off'); // shows the deformed mesh (only when qdim == mdim)
101 [o_deformed_meshopts,err] = get_param(opts,'deformed_meshopts', list()); // cell array of options passed to gf_plot_slice for the deformed mesh
102 [o_deformation,err] = get_param(opts,'deformation', []); // plots on the deformed object (only when qdim == mdim)
103 [o_deformation_mf,err] = get_param(opts,'deformation_mf', []); // plots on the deformed object (only when qdim == mdim)
104 [o_deformation_scale,err] = get_param(opts,'deformation_scale', '10%'); // indicate the amplitude of the deformation. Can be a percentage of the mesh width if given as a string, or an absolute value if given as a number
105 [o_cvlst,err] = get_param(opts,'cvlst', []); // list of convexes to plot
106 [o_title,err] = get_param(opts,'title', []);
107 [o_contour,err] = get_param(opts,'contour', []);
108 [o_mesh_level_set,err] = get_param(opts,'mesh_level_set', []); // list of contour values
109
110 if (ison(o_zplot)) then
111 if (mdim ~= 2) then
112 error('zplot allowed only on 2D scalar mesh_fems');
113 else
114 o_interpolated = 'on'; // or patch won't work
115 end
116 end
117
118 is_scalarplot = (ison(o_norm) + ~isempty(o_dir));
119 if (is_scalarplot > 1) then
120 error('only one occurence of the options ''norm'' and ''dir'' is allowed');
121 end
122
123 if (typeof(o_dir)=='string') then
124 v = zeros(1,qdim);
125 if (o_dir=='x') then
126 v(1)=1;
127 elseif (o_dir=='y') then
128 v(2)=1;
129 elseif (o_dir=='z') then
130 v(3)=1;
131 else error('wrong direction');
132 end
133 o_dir=v;
134 end
135
136 scalarplot_dir=o_dir(:);
137 if (qdim == 1) then
138 is_scalarplot = 1;
139 scalarplot_dir = 1;
140 end
141 if (~isempty(o_contour) & ~is_scalarplot) then
142 error('contour plot has no meaning for a vector field');
143 end
144
145 mfdef = mf;
146 if (~isempty(o_deformation_mf)) then mfdef = o_deformation_mf; end;
147 dqdim = gf_mesh_fem_get(mfdef,'qdim');
148 if (~isempty(o_deformation') | ison(o_deformed_mesh)) then
149 if (mdim ~= dqdim & ~ison(o_zplot)) then
150 error(sprintf('can''t plot the deformation of an %dD-object by a %dD-field',mdim,dqdim));
151 end
152 end
153
154 if (isempty(o_cvlst)) then o_cvlst = gf_mesh_get(mf,'cvid'); end;
155
156 nbdof = gf_mesh_fem_get(mf,'nbdof');
157 if (nbdof <= 0) then error('invalid finite element mf argument'); end
158
159 if (length(U) ~= nbdof) then
160 error('wrong dimensions for U, should have ' + string(nbdof) + ' columns');
161 end
162
163 if (ison(o_zplot) | mdim == 3) then
164 h = gca();
165 h.view = '3d';
166 else
167 h = gca();
168 h.view = '2d';
169 end
170
171 // build the slice object
172 try
173 if (~isempty(o_mesh_level_set)) then
174 sl = gf_slice(list('none'),o_mesh_level_set,o_refine,o_cvlst);
175 elseif (gf_mesh_fem_get(mf, 'has_linked_mesh_levelset')) then
176 sl = gf_slice(list('none'),gf_mesh_fem_get(mf,'linked_mesh_levelset'),o_refine,o_cvlst);
177 else
178 sl = gf_slice(list('none'),gf_mesh_fem_get(mf,'linked mesh'),o_refine,o_cvlst);
179 end
180 catch
181 [str,n,line,func]=lasterror();
182 disp('can''t build slice: ' + str);
183 disp(sprintf('error %d in %s at line %d\n', n, func, line));
184 error('');
185 end
186
187 try
188 Usl = gf_compute(mf,U,'interpolate on',sl);
189 catch
190 [str,n,line,func]=lasterror();
191 disp('can''t interpolate on slice: ' + str);
192 disp(sprintf('error %d in %s at line %d\n', n, func, line));
193 error('');
194 end
195 Psl = gf_slice_get(sl,'pts');
196
197 // plot the original mesh
198 if (ison(o_mesh)) then
199 hmesh = list(gf_plot_slice(sl,'mesh','on',o_meshopts(:)));
200 end
201
202 // apply the optional deformation
203 if (~isempty(o_deformation) | mfdef('id') ~= mf('id')) then
204 ida = gf_mesh_fem_get(mfdef,'linked mesh');
205 idb = gf_mesh_fem_get(mf,'linked mesh');
206 if (ida.id ~= idb.id) then
207 error('the deformation mesh_fem and the data mesh_fem do not seem to share the same mesh');
208 end
209 if (~isempty(o_deformation)) then
210 Udef = o_deformation;
211 else
212 Udef = U;
213 end
214 Pdef = gf_compute(mfdef, Udef, 'interpolate on', sl);
215 if (isnumeric(o_deformation_scale)) then
216 dscale = o_deformation_scale;
217 elseif (typeof(o_deformation_scale)=='string' & length(o_deformation_scale) & part(o_deformation_scale,length(o_deformation_scale))=='%') then
218 dscale = eval(part(o_deformation_scale,1:length(o_deformation_scale)-1));
219 mwidth = max([max(Psl,'c') - min(Psl,'c')],'r');
220 defmax = max(abs(Pdef(:)));
221 if (defmax) then
222 dscale = dscale * 0.01 * mwidth / defmax;
223 end
224 else
225 error('wrong value for deformation_scale: should be a number or a percentage in a string');
226 end
227 Psl = Psl + Pdef*dscale;
228 gf_slice_set(sl,'pts', Psl);
229 clear Pdef Udef dscale mwidth defmax;
230 end
231
232 if (is_scalarplot) then
233 // compute scalar values if necessary
234 if (ison(o_norm)) then
235 sV = sqrt(sum(Usl.*conj(Usl),1));
236 else
237 sV = scalarplot_dir(:)'*Usl;
238 end
239 // and optionally apply the zplot deformation
240 if (ison(o_pcolor) & ison(o_zplot) & is_scalarplot) then
241 Psl = [Psl;sV]; gf_slice_set(sl,'pts',Psl);
242 end
243 end
244
245 // plot the deformed mesh
246 if (ison(o_deformed_mesh)) then
247 hdefmesh = list(gf_plot_slice(sl,'mesh','on', o_deformed_meshopts(:))); // YC: ??
248 end
249
250 if (is_scalarplot) then
251 // plot the 'surfacic' part
252 if (ison(o_pcolor)) then
253 gf_plot_slice(sl,'mesh','off','data',sV);
254 end
255
256 // basic contour plot (should work also on 3D surfaces)
257 contour_colors = [0.9 0.0 0.0;
258 0.0 0.8 0.0;
259 0.0 0.0 0.6;
260 0.6 0.6 0.0;
261 0.7 0.0 0.7;
262 0.0 0.7 0.9];
263
264 hcontour = list();
265 for cnum=1:length(o_contour)
266 c = o_contour(cnum);
267 slC = gf_slice(list('isovalues',0,mf,U,c),sl);
268 [a,b,c,hcontour(cnum)] = gf_plot_slice(slC,'tube','off','mesh','off');
269
270 if (~isempty(hcontour(cnum))) then
271 //printf('here isovalue');
272 //disp(hcontour(cnum).parent)
273 //hcontour(cnum).children.color_mode = color(round(255*contour_colors(modulo(cnum,size(contour_colors,1))+1,1)), ...
274 // round(255*contour_colors(modulo(cnum,size(contour_colors,1))+1,2)), ...
275 // round(255*contour_colors(modulo(cnum,size(contour_colors,1))+1,3)));
276 //hcontour(cnum).children.color_flag = 0;
277 hcontour(cnum).children.thickness = 1;
278 // set(hcontour(cnum),...
279 // 'Color',contour_colors(modulo(cnum,size(contour_colors,1))+1,:),...
280 // 'LineStyle',contour_linestyle(modulo(cnum,length(contour_linestyle))+1),...
281 // 'LineWidth',1);
282 end
283 gf_delete(slC);
284 end
285 else
286 [a,b,hquiver,c] = gf_plot_slice(sl,'data',Usl,'quiver','on','quiver_density',o_quiver_density,'quiver_scale',o_quiver_scale);
287 end
288 endfunction
289
+0
-94
interface/src/scilab/macros/gf_plot_1D.sci less more
0 function [hline, hdof] = gf_plot_1D(mf,U, varargin)
1 // function h=gf_plot_1D(mf,U,...)
2 // this function plots a 1D finite element field.
3 //
4 // Available options are specified as pairs of 'option name'/'option value'
5 // 'style', 'bo-' : line style and dof marker style (same
6 // syntax as in the Scilab command 'plot');
7 // 'color', '' : override line color (by a given color name);
8 // 'dof_color', '' : override color of dof markers;
9 // 'width', 2 : line width.
10
11 opts = build_options_list(varargin(:));
12
13 try
14 gf_workspace('push', 'gf_plot_1D');
15 [hline, hdof] = gf_plot_1D_aux(mf,U, opts);
16 catch
17 [str,n,line,func]=lasterror();
18 disp('error in gf_plot_1D: ' + str);
19 disp(sprintf('error %d in %s at line %d\n', n, func, line));
20 error('');
21 end
22 gf_workspace('pop');
23 endfunction
24
25
26 function [hline, hdof] = gf_plot_1D_aux(mf, U, opts)
27
28 [opt_style,err] = get_param(opts,'style','bo-');
29 [opt_color,err] = get_param(opts,'color','');
30 [opt_dof_color,err] = get_param(opts,'dof_color','');
31 [opt_width,err] = get_param(opts,'width',2);
32
33 // remove eventual markers from the line style
34 s = opt_style;
35 opt_style = '';
36 opt_dof_marker = '';
37
38 for i = 1:length(s)
39 if (isempty(strindex('ox+*.sdv^<>p', part(s, i)))) then
40 opt_style = opt_style + part(s, i);
41 elseif i == 1 then
42 opt_dof_marker = part(s, i);
43 elseif '-.' == part(s, [i-1,i]) then
44 opt_style = opt_style + '.';
45 else opt_dof_marker = part(s, i);
46 end
47 end
48
49 // save graphical context
50 cax = gcf();
51
52 nbd = gf_mesh_fem_get(mf, 'nbdof');
53 if (nbd < 100) then
54 REFINE = 32;
55 elseif (nbd < 1000) then
56 REFINE = 6;
57 else
58 REFINE = 2;
59 end
60
61 m = gf_mesh_fem_get(mf, 'linked_mesh');
62 sl = gf_slice(list('none'),m, REFINE);
63 Usl = gf_compute(mf,U,'interpolate on', sl);
64 D = unique(gf_mesh_fem_get(mf, 'basic dof nodes'));
65 slD = gf_slice('points', m, D);
66 UD = gf_compute(mf,U,'interpolate on',slD);
67
68 X = gf_slice_get(sl, 'pts');
69 Y = Usl;
70 plot(X, Y, opt_style);
71 hline = gce();
72 hline.children.thickness = opt_width;
73 if (~isempty(opt_color)) then
74 hline.children.foreground = color(opt_color);
75 end
76
77 hdof = [];
78 if (~isempty(opt_dof_marker)) then
79 // add color to the marker if it is given in opt_style
80 for i = 1:length(opt_style)
81 if (~isempty(strindex('rgbcmykw', part(opt_style, i)))) then
82 opt_dof_marker = part(s, i) + opt_dof_marker;
83 end
84 end
85
86 plot(gf_slice_get(slD, 'pts'), UD, opt_dof_marker);
87 hdof = gce();
88 if (~isempty(opt_color)) then
89 hdof.children.mark_foreground = color(opt_dof_color);
90 end
91 end
92 endfunction
93
+0
-285
interface/src/scilab/macros/gf_plot_mesh.sci less more
0 function [hmesh,hbound,hfill,hvert,hconv,hdof]=gf_plot_mesh(M, varargin)
1 // function [hmesh,hbound,hfill,hvert,hconv,hdof]=gf_plot_mesh(M, [,properties])
2 // [,'cvlst',CVLST] ['boundaries'[BLST]])
3 // General mesh plotting function.
4 //
5 // H=gf_plot_mesh(M) displays a mesh.
6 //
7 // properties are:
8 // 'vertices', {'off'|'on'} displays also vertices numbers.
9 // 'convexes', {'off'|'on'} displays also convexes numbers.
10 // 'dof',{'off'|'on'} displays also finite element nodes.
11 // 'regions',BLST displays the boundaries listed in BLST.
12 // 'cvlst',CVLST display only the listed convexes. If
13 // CVLST has two rows, display only the faces listed in the second row.
14 // 'edges', {'on' | 'off'} display edges ?
15 // 'faces', {'off'|'on'} fills each 2D-face of the mesh
16 // 'curved', {'off'|'on'} displays curved edges
17 // 'refine',N refine curved edges and filled faces N times
18 // 'deformation', Udef optionnal deformation applied to the mesh (M must be a mesh_fem object)
19 // 'edges_color',[.6 .6 1] RGB values for the color of edges
20 // 'edges_width',1
21 // 'faces_color',[.75 .75 .75]) RGB values for the color of faces
22 // 'quality',{ 'off' | 'on' } Display the quality of the mesh.
23 //
24 // CAUTION:
25 // For 'dof', M should be a mesh_fem identifier,
26 // not a simple mesh object.
27 //
28 // $Id: gf_plot_mesh.m 2282 2006-02-23 16:24:13Z pommier $
29 // A. Huard, Y. Renard, J. Pommier
30 [nargout,nargin] = argn();
31 if nargin<1 then
32 error('Too few input arguments')
33 end
34 opts = build_options_list(varargin(:));
35 hmesh = [];
36 hbound = [];
37 hfill = [];
38 hvert = [];
39 hconv = [];
40 hdof = [];
41 mdim = gf_mesh_get(M,'dim');
42 if (mdim <= 2) then
43 defaultref = 8;
44 else
45 defaultref = 4;
46 end
47 [o_vertices,err] = get_param(opts,'vertices','off');
48 [o_convexes,err] = get_param(opts,'convexes','off');
49 [o_dof,err] = get_param(opts,'dof','off');
50 [o_regions,err] = get_param(opts,'regions','');
51 [o_boundaries,err] = get_param(opts,'boundaries','');
52 [o_cvlst,err] = get_param(opts,'cvlst',[]);
53 [o_edges,err] = get_param(opts,'edges','on');
54 [o_faces,err] = get_param(opts,'faces','off');
55 [o_explode,err] = get_param(opts,'explode',0);
56 [o_quality,err] = get_param(opts,'quality','off');
57 [o_curved,err] = get_param(opts,'curved','off');
58 [o_refine,err] = get_param(opts,'refine',defaultref);
59 [o_deformation,err] = get_param(opts,'deformation',[]);
60 [o_edges_color,err] = get_param(opts,'',[.6 .6 1]);
61 [o_edges_width,err] = get_param(opts,'edges_width',1);
62 [o_faces_color,err] = get_param(opts,'faces_color',[.75 .75 .75]);
63 if (length(o_boundaries) == 0) then
64 o_boundaries = o_regions;
65 end
66 if (typeof(o_boundaries)=='string') then
67 if (convstr(o_boundaries,'l')=='all') then
68 o_boundaries = gf_mesh_get(M, 'boundaries');
69 end
70 end
71 // init cvlst and cvflst
72 if (isempty(o_cvlst)) then
73 cvlst = gf_mesh_get(M,'cvid');
74 cvflst = [cvlst; int32(zeros(1,length(cvlst)))]; // int32 is the type of cvlst
75 else
76 cvlst = o_cvlst;
77 cvflst = cvlst;
78 if (size(cvflst,1)==2) then
79 cvlst = unique(cvlst(1,:));
80 end
81 end
82 PXY = gf_mesh_get(M, 'pts');
83 E = gf_mesh_get(M, 'edges', cvflst);
84 if (~ison(o_curved) & isempty(o_deformation)) then
85 X = [PXY(1,E(1,:)); PXY(1,E(2,:))];
86 if (mdim == 1) then
87 Y = zeros(size(X));
88 PXY = [PXY; zeros(PXY)];
89 elseif (mdim >= 2) then
90 Y = [PXY(2,E(1,:)); PXY(2,E(2,:))];
91 if (mdim == 3) then
92 Z = [PXY(3,E(1,:)); PXY(3,E(2,:))];
93 end
94 end
95 else
96 // here, mdim is always >= 2
97 if (~isempty(o_deformation)) then
98 vE = gf_compute(M,o_deformation,'mesh edges deformation',o_refine,cvflst);
99 else
100 vE = gf_mesh_get(M, 'curved edges', o_refine, cvflst);
101 end
102 ni = size(vE,2);
103 ne = size(vE,3);
104 X = matrix(vE(1,:,:), [ni ne]);
105 Y = matrix(vE(2,:,:), [ni ne]);
106 if (mdim == 3) then
107 Z = matrix(vE(3,:,:), [ni ne]);
108 end
109 end
110 // get the viewable pts id
111 PID = union(E(1,:),E(2,:));
112 if (mdim > 3) then error('sorry, only mesh of dimension <= 3 allowed'); end;
113 nbpts = size(PXY,2);
114 Bmax = max(PXY(:,PID)','r')';
115 Bmin = min(PXY(:,PID)','r')';
116 Bdiff = Bmax - Bmin;
117 Bdiff = Bdiff + (Bdiff == 0); // remplace 0.0 par 1.0
118 ecart = Bdiff/150;
119 if (ison(o_convexes)) then
120 cv_center = zeros(max(mdim,2),length(cvlst));
121 // find convexes centers
122 [cv_pid, cv_idx] = gf_mesh_get(M, 'pid from cvid',cvlst);
123 for i=1:length(cvlst)
124 cv_center(:,i) = mean(PXY(:, cv_pid(double(cv_idx(i)):double(cv_idx(i+1))-1)),2);
125 end
126 end
127 if (ison(o_dof)) then
128 Q = gf_mesh_fem_get(M, 'qdim');
129 dofid = gf_mesh_fem_get(M, 'dof from cv', cvlst);
130 [dofpos] = gf_mesh_fem_get(M, 'dof nodes', dofid);
131 [keep] = find([1 or(dofpos(:,2:$) ~= dofpos(:,1:$-1),1)]);
132 dofmult = [keep(2:$)-keep(1:$-1) size(dofpos,2)+1-keep($)];
133 dofpos = dofpos(:, keep); dofid = dofid(keep);
134 if (mdim == 1) then dofpos = [dofpos; zeros(size(dofpos))]; end;
135 end
136 bedge = list();
137 for bnum=1:length(o_boundaries)
138 cvf = gf_mesh_get(M, 'boundary', o_boundaries(bnum));
139 bid = gf_mesh_get(M, 'edges', cvf, 'merge convex');
140 if (bnum == 8) then disp(bid); end;
141 bedge(bnum) = zeros(2, size(bid,2), mdim);
142 for i=1:max(mdim,2)
143 bedge(bnum)(:,:,i) = [PXY(i,bid(1,:)); PXY(i,bid(2,:))];
144 end
145 end
146 // save graphical context
147 cax = gcf();
148 disp('plotting mesh...');
149 if (mdim <= 2) then
150 if (ison(o_edges)) then
151 drawlater;
152 plot(X, Y);
153 hmesh = gce();
154 hmesh.children(:).thickness = o_edges_width;
155 hmesh.children(:).line_style = 1; // Continous lines
156 hmesh.children(:).foreground = color(round(255*o_edges_color(1)),round(255*o_edges_color(2)),round(255*o_edges_color(3)));
157 drawnow;
158 end
159 for bnum=1:length(o_boundaries),
160 drawlater;
161 plot(bedge(bnum)(:,:,1), bedge(bnum)(:,:,2));
162 hbound(bnum) = gce();
163 hbound(bnum).children(:).thickness = 2;
164 hbound(bnum).children(:).line_style = 1; // Continous lines
165 hbound(bnum).children(:).foreground = 5;
166 drawnow;
167 end
168 if (ison(o_vertices)) then
169 xstring(PXY(1,PID)+ecart(1), PXY(2,PID)+ecart(2), string(double(PID)));
170 hvert = gce();
171 hvert.parent.children(:).alignment = 'center';
172 end
173 if (ison(o_convexes)) then
174 xstring(cv_center(1,:), cv_center(2,:), string(double(cvlst)));
175 hconv = gce();
176 hconv.parent.children(:).alignment = 'center';
177 hconv.parent.children(:).font_foreground = 5; // Red
178 end
179 if (ison(o_dof)) then
180 hdof = zeros(length(dofid),1);
181 for i=1:length(dofid),
182 if (dofmult(i)==1) then
183 s=string(dofid(i));
184 else
185 s=sprintf('%d*%d',dofid(i),dofmult(i));
186 end
187 end
188 xstring(dofpos(1,:)-ecart(1), dofpos(2,:)-ecart(2), s);
189 hdof = gce();
190 hdof.parent.children(:).alignment = 'center';
191 hdof.parent.children(:).font_foreground = 2;
192 end
193 else
194 if (ison(o_edges)) then
195 drawlater;
196 plot3d(X, Y, Z); // 'Color',o_edges_color,'LineWidth',o_edges_width
197 hmesh = gce();
198 hmesh.thickness = o_edges_width;
199 //hmesh.children(:).line_style = 1; // Continuous line
200 hmesh.foreground = color(round(255*o_edges_color(1)),round(255*o_edges_color(2)),round(255*o_edges_color(3)));
201 drawnow;
202 end
203 for bnum=1:length(o_boundaries),
204 drawlater;
205 plot3d(bedge(bnum)(:,:,1), bedge(bnum)(:,:,2), bedge(bnum)(:,:,3)); // 'Color','red','LineWidth',2);
206 hbound(bnum) = gce();
207 hbound(bnum).thickness = 2;
208 hbound(bnum).line_style = 1; // Continuous line
209 hbound(bnum).foreground = 5; // Red
210 drawnow;
211 end
212 if (ison(o_vertices)) then
213 for i=1:length(PID)
214 xstring(PXY(1,PID(i))+ecart(1), PXY(2,PID(i))+ecart(2), string(PID(i))); // 'HorizontalAlignment','center','VerticalAlignment','middle','Color', [.0 0 0]
215 hvert = gce();
216 hvert.data = [hvert.data PXY(3,PID(i))+ecart(3)]; // We add the 3rd component
217 hvert.alignment = 'center';
218 hvert.font_foreground = 1; // Black
219 end
220 end
221 if (ison(o_convexes)) then
222 for i=1:size(cv_center,2)
223 xstring(cv_center(1,i), cv_center(2,i), string(cvlst(i))); // 'HorizontalAlignment','center','VerticalAlignment','middle','Color', [.7 0 0]
224 hconv = gce();
225 hconv.data = [hconv.data cv_center(3,i)]; // We add the 3rd component
226 hconv.alignment = 'center';
227 hconv.font_foreground = 5; // Red
228 end
229 end
230 if (ison(o_dof)) then
231 for i=1:size(dofpos,2)
232 xstring(dofpos(1,i)-ecart(1), dofpos(2,i)-ecart(2), string(dofid(i))); // 'HorizontalAlignment','center','VerticalAlignment','middle' 'Color', [0 .4 0]);
233 hdof = gce();
234 hdof.data = [hdof.data dofpos(3,i)-ecart(3)]; // We add the 3rd component
235 hdof.alignment = 'center';
236 hdof.font_foreground = 3; // Green
237 end
238 end
239 end
240 if (ison(o_quality)) then
241 q = gf_mesh_get(M,'quality', cvflst(1,:));
242 qmf = gf_mesh_fem(M);
243 gf_mesh_fem_set(qmf, 'classical fem', 0);
244 [a,b] = gf_mesh_fem_get(qmf, 'dof from cvid', cvflst(1,:));
245 Q = zeros(1, gf_mesh_fem_get(qmf, 'nbdof'));
246 for k=1:length(b)-1
247 Q(a(b(k))) = q(k);
248 end
249 end
250 if (o_explode ~= 0) then
251 sl = gf_slice(list('explode',o_explode),M,o_refine,cvflst);
252 data = list();
253 if (ison(o_quality)) then
254 sQ = gf_compute(qmf,Q,'interpolate on',sl);
255 data = list('data',sQ);
256 end
257 gf_plot_slice(sl, data(:),'mesh_faces', o_faces, ...
258 'mesh_edges_color', o_edges_color, ...
259 'mesh_edges_width', o_edges_width, ...
260 'mesh_faces_color', o_faces_color);
261 gf_delete(sl); // light;
262 elseif (ison(o_quality)) then
263 gf_plot(qmf, Q, 'cvlst', cvflst);
264 elseif (ison(o_faces)) then
265 // should be replaced by a gf_plot_slice ..
266 T = gf_mesh_get(M, 'triangulated surface', o_refine, cvflst);
267 if (mdim == 2) then
268 plot3d(T(1:mdim:(mdim*3),:),T(2:mdim:(mdim*3),:), list(zeros(T(2:mdim:(mdim*3),:)), ones(size(T(2:mdim:(mdim*3),:),2),1)*color(round(255*o_faces_color(1)),round(255*o_faces_color(2)),round(255*o_faces_color(3)))), flag = [-1 0 4]); //, 'Erasemode','normal','Edgecolor','none');
269 hfill= gca();
270 hfill.view='2d';
271 htmp = gce();
272 htmp.hiddencolor = -1;
273 else
274 plot3d(T(1:mdim:(mdim*3),:),T(2:mdim:(mdim*3),:), list(T(3:mdim:(mdim*3),:),ones(size(T(3:mdim:(mdim*3),:),2),1)*color(round(255*o_faces_color(1)),round(255*o_faces_color(2)),round(255*o_faces_color(3)))), flag = [-1 0 4]); //'Erasemode','normal','Edgecolor','none');
275 hfill= gca();
276 hfill.view='3d';
277 htmp = gce();
278 htmp.hiddencolor = -1;
279 end
280 end
281 if (ison(o_quality)) then
282 gf_delete(qmf);
283 end
284 endfunction
+0
-536
interface/src/scilab/macros/gf_plot_slice.sci less more
0 function [hfaces, htube, hquiver, hmesh]=gf_plot_slice(sl,varargin)
1 // function [hfaces, htube, hquiver, hmesh]=gf_plot_slice(sl,varargin)
2 // this function is used to plot a slice of mesh/mesh_fem (see gf_slice)
3 //
4 // The options are specified as pairs of 'option name'/'option value'
5 //
6 // OPTION NAME DEFAULT VALUE ACTION
7 // data [] data to be plotted (one value per slice node)
8 // convex_data [] data to be plotted (one value per mesh convex)
9 // mesh 'auto' 'on' -> show the mesh (faces of edges),
10 // 'off' -> ignore mesh
11 // mesh_edges 'on' show mesh edges ?
12 // mesh_edges_color [0.60 0.60 1] color of mesh edges
13 // mesh_edges_width 0.70 width of mesh edges
14 // mesh_slice_edges 'on' show edges of the slice ?
15 // mesh_slice_edges_color [0.70 0 0]
16 // mesh_slice_edges_width 0.50
17 // mesh_faces 'off' 'on' -> fill mesh faces (otherwise they are transparent)
18 // mesh_faces_color [0.75 0.75 0.75]
19 // pcolor 'on' if the field is scalar, a color plot of its values is plotted
20 // quiver 'on' if the field is vector, represent arrows
21 // quiver_density 50 density of arrows in quiver plot
22 // quiver_scale 1 density of arrows in quiver plot
23 // tube 'on' use tube plot for 'filar' (1D) parts of the slice
24 // tube_color 'red' color of tubes (ignored if 'data' is not empty and 'pcolor' is on)
25 // tube_radius 0.05 tube radius; you can use a constant or a vector of nodal values
26 // showoptions 'on' display the list of options
27 //
28 // the 'data' and 'convex_data' are mutually exclusive.
29 //
30 // RETURNS: handles to the various graphical objects created.
31 ////////////////////////
32
33 [nargout,nargin] = argn();
34
35 if nargin<1 then
36 error('Too few input arguments')
37 end
38
39 opts = build_options_list(varargin(:));
40
41 hfaces = [];
42 hquiver = [];
43 hmesh = [];
44 htube = [];
45 mdim = gf_slice_get(sl, 'dim');
46
47 if (gf_slice_get(sl, 'nbsplxs', 3)) then
48 warning('won''t plot 3D slices, extract the slice boundary first');
49 end
50
51 if (mdim ~= 2 & mdim ~= 3) then
52 error('only 2D and 3D mesh are handled by this function');
53 end
54
55 [o_data,err] = get_param(opts,'data',[]); // data to be plotted on the slice (on slice nodes)
56 [o_convex_data,err] = get_param(opts,'convex_data',[]); // data to be plotted (given on the mesh convexes)
57 [o_msh,err] = get_param(opts,'mesh','auto'); // show the mesh ?
58 [o_msh_edges,err] = get_param(opts,'mesh_edges','on'); // show mesh edges ?
59 [o_msh_edges_color,err] = get_param(opts,'mesh_edges_color',[.6 .6 1]);
60 [o_msh_edges_width,err] = get_param(opts,'mesh_edges_width',.7);
61 [o_msh_slice_edges,err] = get_param(opts,'mesh_slice_edges','on');
62 [o_msh_slice_edges_color,err] = get_param(opts,'mesh_slice_edges_color',[.7 0 0]);
63 [o_msh_slice_edges_width,err] = get_param(opts,'mesh_slice_edges_width',.5);
64 [o_msh_faces,err] = get_param(opts,'mesh_faces','off'); // fill mesh faces (otherwise they are transparent)
65 [o_msh_faces_color,err] = get_param(opts,'mesh_faces_color',[.75 .75 .75]);
66 [o_pcolor,err] = get_param(opts,'pcolor','on'); // if the field is scalar, a color plot of its values is plotted
67 [o_quiver,err] = get_param(opts,'quiver','on'); // if the field is vector, represent arrows
68 [o_quiver_density,err] = get_param(opts,'quiver_density',50); // density of arrows in quiver plot
69 [o_quiver_scale,err] = get_param(opts,'quiver_scale',1); // scaling of arrows (0=>no scaling)
70 [o_tube,err] = get_param(opts,'tube','on'); // use tube plot for linear parts of the slice
71 [o_tube_color,err] = get_param(opts,'tube_color','red'); // color of tubes (ignored if 'data' is not empty)
72 [o_tube_radius,err] = get_param(opts,'tube_radius',0.05); // tube radius; you can use a constant, or a percentage (of the mesh size) or a vector of nodal values
73 [o_showoptions,err] = get_param(opts,'showoptions','off'); // list options used
74
75 if (ison(o_showoptions)) then disp(opts); end;
76
77 if (~isempty(o_convex_data)) then
78 if (~isempty(o_data)) then
79 error('''data'' and ''convex_data'' are mutually exclusive');
80 end
81 o_data = gf_slice_get(sl, 'interpolate_convex_data', o_convex_data);
82 end
83
84 if (isauto(o_msh)) then
85 if (isempty(o_data)) then o_msh = 'on';
86 else o_msh = 'off'; end;
87 end
88
89 Pm = gf_slice_get(sl,'pts');
90 if (length(Pm) == 0) then return; end;
91 if (~isempty(o_data) & size(o_data,2) ~= size(Pm,2)) then
92 error(sprintf('wrong dimensions for the data (has %d columns, should have %d columns)', size(o_data,2),size(Pm,2)));
93 end
94
95 P = list();
96 T = list();
97 for i=1:mdim
98 P(i) = Pm(i,:);
99 T(i) = gf_slice_get(sl,'splxs', i);
100 box(i,:) = [min(P(i),'r') max(P(i),'r')];
101 end
102
103 // handle simplexes of dimension 1
104
105 if (~isempty(T(1))) then
106 [htube,hmesh]=do_plot_1D(P,T(1),opts);
107 end
108
109 [hfaces,h,hquiver] = do_plot_2D(sl,P,T(2),opts); hmesh=[hmesh(:)' h(:)'];
110
111 h_current = gca();
112
113 if (mdim == 3) then
114 h_current.view = '3d';
115 else
116 h_current.view = '2d';
117 end
118 endfunction
119
120 ////////////////
121 // do_plot_1D //
122 ////////////////
123
124 function [htube,hmesh]=do_plot_1D(P,T,opt)
125
126 htube=[]; hmesh=[];
127 if (isempty(T)) then
128 return;
129 end
130
131 [o_data,err] = get_param(opt,'data',[]); // data to be plotted on the slice (on slice nodes)
132 [o_convex_data,err] = get_param(opt,'convex_data',[]); // data to be plotted (given on the mesh convexes)
133 [o_msh,err] = get_param(opt,'mesh','auto'); // show the mesh ?
134 [o_msh_edges,err] = get_param(opt,'mesh_edges','on'); // show mesh edges ?
135 [o_msh_edges_color,err] = get_param(opt,'mesh_edges_color',[.6 .6 1]);
136 [o_msh_edges_width,err] = get_param(opt,'mesh_edges_width',.7);
137 [o_msh_slice_edges,err] = get_param(opt,'mesh_slice_edges','on');
138 [o_msh_slice_edges_color,err] = get_param(opt,'mesh_slice_edges_color',[.7 0 0]);
139 [o_msh_slice_edges_width,err] = get_param(opt,'mesh_slice_edges_width',.5);
140 [o_msh_faces,err] = get_param(opt,'mesh_faces','off'); // fill mesh faces (otherwise they are transparent)
141 [o_msh_faces_color,err] = get_param(opt,'mesh_faces_color',[.75 .75 .75]);
142 [o_pcolor,err] = get_param(opt,'pcolor','on'); // if the field is scalar, a color plot of its values is plotted
143 [o_quiver,err] = get_param(opt,'quiver','on'); // if the field is vector, represent arrows
144 [o_quiver_density,err] = get_param(opt,'quiver_density',50); // density of arrows in quiver plot
145 [o_quiver_scale,err] = get_param(opt,'quiver_scale',1); // scaling of arrows (0=>no scaling)
146 [o_tube,err] = get_param(opt,'tube','on'); // use tube plot for linear parts of the slice
147 [o_tube_color,err] = get_param(opt,'tube_color','red'); // color of tubes (ignored if 'data' is not empty)
148 [o_tube_radius,err] = get_param(opt,'tube_radius',0.05); // tube radius; you can use a constant, or a percentage (of the mesh size) or a vector of nodal values
149 [o_showoptions,err] = get_param(opt,'showoptions','off'); // list options used
150
151 if (~ison(o_tube)) then
152 C = list();
153 for j=1:length(P)
154 C(j)=[P(j)(T(1,:));P(j)(T(2,:))];
155 end
156 if (length(P)==1) C(2)=zeros(size(C(1))); end;
157 // hmesh = line(C(:),'Color',o_msh_edges_color);
158 if length(C)==2 then
159 plot2d(C(:));
160 hmesh = gce();
161 hmesh.children.thickness = o_msh_edges_width;
162 hmesh.children.foreground = o_msh_edges_color;
163 else
164 plot3d(C(:));
165 hmesh = gce();
166 hmesh.thickness = o_msh_edges_width;
167 hmesh.foreground = o_msh_edges_color;
168 end
169 else
170 if (~isempty(o_data) & ison(o_pcolor)) then
171 qdim = size(o_data,1);
172 if (qdim == 1) then
173 if (typeof(o_data)=='list')
174 plot_tube(P,T,o_data(1),o_tube_radius,o_tube_color);
175 else
176 plot_tube(P,T,o_data,o_tube_radius,o_tube_color);
177 end
178 else
179 warning('1D slices not supported for vector data..');
180 end
181 else
182 plot_tube(P,T,[],o_tube_radius,o_tube_color);
183 end
184 end
185 endfunction
186
187 ////////////////
188 // mycell2mat //
189 ////////////////
190
191 function M=mycell2mat(C)
192 // M=cat(1,C{:});
193 M = [];
194 for i=1:length(C)
195 M = [M C(i)'];
196 end
197 endfunction
198
199 ///////////////
200 // plot_tube //
201 ///////////////
202
203 // plots a 'tube' along edges, with color given by D, and a possibly varying radius
204 // radius: constant or equal to nb points
205 // D(ata): empty or equal to nb points or nb segments
206 function h=plot_tube(P, T, D, radius, tubecolor)
207
208 h = [];
209 P = mycell2mat(P);
210
211 if (isempty(T)) then return; end;
212 it0 = T(1,1); nT = size(T,2); nP = size(P,1); mdim=size(P,2);
213
214 if (mdim == 2) then
215 P = [P'; zeros(1,nP)]';
216 mdim = 3;
217 end // handle 2D slices
218
219 // convert radius to node data
220 if (length(radius)==1) then
221 radius = radius*ones(1,nP); //radius(1)=0.5; radius($)=0.5;
222 elseif (length(radius)==nT) then
223 radius = ([radius(1) radius(:)']+[radius(:)' radius($)])/2;
224 end
225
226 if (size(D,1) > 1) then error('only scalar data can be represented on a tube_plot'); end;
227 if (size(D,2)==nP) then
228 point_data=1;
229 else
230 point_data=0;
231 end
232
233 nsubdiv = 20;
234 ct = cos((0:nsubdiv)*2*%pi/nsubdiv);
235 ct($)= ct(1);
236 st = sin((0:nsubdiv)*2*%pi/nsubdiv);
237 st($)= st(1);
238 cnt = 0;
239
240 h = [];
241
242 // Size P: 158. 2.
243 // Size T: 2. 120.
244 while (1)
245 // search for consecutive edge points
246 it1 = it0;
247 //while (it1 < nT & T(1,it1+1) == T(2,it1)) it1 = it1+1; end;
248 while (it1 < nT & T(1,it1+1) == T(2,it1)) it1 = it1+1; end;
249 //disp(sprintf('sequence: %d - %d -- [%d-%d] - [%d-%d]',it0,it1,T(1,it0),T(2,it0),T(1,it1),T(2,it1)))
250 // extract the sequence of points
251 ip = [T(1,it0) T(2,it0:it1)];
252 p = P(ip,:); // P(:,ip)
253 if (length(D)) then
254 if (point_data) then
255 d = D(ip);
256 else
257 d = D(it0:it1);
258 end
259 end
260 nseg = it1-it0+1;
261 // compute the normals of edges
262 // normals = zeros(3, 2, nseg); // produce a hypermat
263 normals = [];
264 tang = p(2:$,:) - p(1:$-1,:);
265 for i=1:size(tang,1)
266 tang(i,:) = tang(i,:) / max(%eps,sqrt(sum(tang(i,:).^2)));
267 end
268 for i=1:nseg
269 normals(:,:,i) = null_space(tang(i,:)); // won't be ok if normals have an
270 // important rotation from a segment
271 // to another - VERY PROBABLE BUG!!!
272 end
273 X = zeros(mdim,nsubdiv+1,length(ip));
274 for i=1:length(ip),
275 if (i == 1) then
276 n = normals(:,:,i)';
277 elseif (i == length(ip)) then
278 n = normals(:,:,$)';
279 else
280 n = ((normals(:,:,i-1)+normals(:,:,i))/2)';
281 end
282 for k=1:nsubdiv+1
283 X(:,k,i) = (p(i,:) + radius(ip(i))*(n(1,:)*ct(k) + n(2,:)*st(k)))';
284 end;
285 end;
286 if (length(D)) then
287 C = repmat(d,nsubdiv+1,1);
288 surf(squeeze(X(1,:,:)), squeeze(X(2,:,:)), squeeze(X(3,:,:)),C); // 'linestyle','none','FaceColor','interp')];
289 h($+1) = gce();
290 h($).thickness = 0; // corresponds to linestyle none
291 h($).color_flag = 3; // 2 -> flat shadding 3 -> interpolated shadding
292 else
293 //surf(squeeze(X(1,:,:)), squeeze(X(2,:,:)), squeeze(X(3,:,:))); // 'linestyle','none','facecolor',tubecolor)];
294 // Workaround for bug 4042
295 MyX1 = squeeze(X(1,:,:));
296 MyX1 = matrix(MyX1.entries,double(MyX1.dims));
297 MyX2 = squeeze(X(2,:,:));
298 MyX2 = matrix(MyX2.entries,double(MyX2.dims));
299 MyX3 = squeeze(X(3,:,:));
300 MyX3 = matrix(MyX3.entries,double(MyX3.dims));
301
302 //surf(squeeze(X(1,:,:)), squeeze(X(2,:,:)), squeeze(X(3,:,:)),'edgeco','cya'); // 'linestyle','none','facecolor',tubecolor)];
303 surf(MyX1, MyX2, MyX3,'edgeco','cya'); // 'linestyle','none','facecolor',tubecolor)];
304 h($+1) = gce();
305 h($).thickness = 0; // corresponds to linestyle none
306 h($).color_mode = color(tubecolor);
307 h($).color_flag = 0;
308 end
309 cnt = cnt+1;
310 it0 = it1+1;
311 if (it0 > nT) then return; end;
312 end
313 endfunction
314
315 ////////////////
316 // do_plot_2D //
317 ////////////////
318
319 // draw faces
320 function [hfaces,hmesh,hquiver] = do_plot_2D(sl,P,T,opt)
321
322 hfaces = [];
323 hmesh = [];
324 hquiver = [];
325 mdim = length(P);
326
327 [o_data,err] = get_param(opt,'data',[]); // data to be plotted on the slice (on slice nodes)
328 [o_convex_data,err] = get_param(opt,'convex_data',[]); // data to be plotted (given on the mesh convexes)
329 [o_msh,err] = get_param(opt,'mesh','auto'); // show the mesh ?
330 [o_msh_edges,err] = get_param(opt,'mesh_edges','on'); // show mesh edges ?
331 [o_msh_edges_color,err] = get_param(opt,'mesh_edges_color',[.6 .6 1]);
332 [o_msh_edges_width,err] = get_param(opt,'mesh_edges_width',.7);
333 [o_msh_slice_edges,err] = get_param(opt,'mesh_slice_edges','on');
334 [o_msh_slice_edges_color,err] = get_param(opt,'mesh_slice_edges_color',[.7 0 0]);
335 [o_msh_slice_edges_width,err] = get_param(opt,'mesh_slice_edges_width',.5);
336 [o_msh_faces,err] = get_param(opt,'mesh_faces','off'); // fill mesh faces (otherwise they are transparent)
337 [o_msh_faces_color,err] = get_param(opt,'mesh_faces_color',[.75 .75 .75]);
338 [o_pcolor,err] = get_param(opt,'pcolor','on'); // if the field is scalar, a color plot of its values is plotted
339 [o_quiver,err] = get_param(opt,'quiver','on'); // if the field is vector, represent arrows
340 [o_quiver_density,err] = get_param(opt,'quiver_density',50); // density of arrows in quiver plot
341 [o_quiver_scale,err] = get_param(opt,'quiver_scale',1); // scaling of arrows (0=>no scaling)
342 [o_tube,err] = get_param(opt,'tube','on'); // use tube plot for linear parts of the slice
343 [o_tube_color,err] = get_param(opt,'tube_color','red'); // color of tubes (ignored if 'data' is not empty)
344 [o_tube_radius,err] = get_param(opt,'tube_radius',0.05); // tube radius; you can use a constant, or a percentage (of the mesh size) or a vector of nodal values
345 [o_showoptions,err] = get_param(opt,'showoptions','off'); // list options used
346
347 d = mlist(['dlist','FaceVertexCData','FaceColor'],[],[]);
348 d_is_set = %F;
349
350 if (length(T)) then
351 if (ison(o_pcolor) & size(o_data,1)==1 & ~isempty(o_data)) then
352 d('FaceVertexCData') = o_data(:);
353 d('FaceColor') = 'interp';
354 d_is_set = %T;
355 elseif (isempty(o_data) & ison(o_msh_faces)) then
356 d('FaceVertexCData') = o_msh_faces_color;
357 d('FaceColor') = 'flat';
358 d_is_set = %T;
359 end
360 if (d_is_set) then
361 //hfaces = patch('Vertices',mycell2mat(P)','Faces',T',d(:), 'EdgeColor','none'); // YC:
362 p_tmp = mycell2mat(P);
363
364 h = gcf();
365 ctmp = d('FaceVertexCData');
366 if (size(ctmp,1)==1) then // just one color
367 ctmp = ones(size(T,2),1) * color(round(255*ctmp(1)), ...
368 round(255*ctmp(2)), ...
369 round(255*ctmp(3)));
370 else
371 ctmp = ceil((ctmp - min(ctmp)) / max(%eps,(max(ctmp) - min(ctmp))) * size(h.color_map,1));
372 ctmp = matrix(ctmp(T,1),size(T,1),length(p_tmp(T,2))/size(T,1))';
373 end
374
375 if (size(p_tmp,2)==2) then
376 xtmp = matrix(p_tmp(T,1),size(T,1),length(p_tmp(T,2))/size(T,1))';
377 ytmp = matrix(p_tmp(T,2),size(T,1),length(p_tmp(T,2))/size(T,1))';
378 ztmp = matrix(ones(p_tmp(T,2)),size(T,1),length(p_tmp(T,2))/size(T,1))';
379 plot3d(xtmp', ytmp', list(ztmp',ctmp'));
380 else
381 xtmp = matrix(p_tmp(T,1),size(T,1),length(p_tmp(T,1))/size(T,1))';
382 ytmp = matrix(p_tmp(T,2),size(T,1),length(p_tmp(T,1))/size(T,1))';
383 ztmp = matrix(p_tmp(T,3),size(T,1),length(p_tmp(T,1))/size(T,1))';
384 plot3d(xtmp', ytmp', list(ztmp',ctmp'));
385 end
386 hfaces = gce();
387 select d('FaceColor')
388 case 'interp' then hfaces.color_flag = 3;
389 case 'flat' then hfaces.color_flag = 2;
390 end
391 hfaces.thickness = 0; ///o_msh_edges_width;
392 hfaces.line_style = 1;
393 hfaces.foreground = color(round(255*o_msh_edges_color(1)), ...
394 round(255*o_msh_edges_color(2)), ...
395 round(255*o_msh_edges_color(3)));
396 hfaces.hiddencolor = -1;
397 end
398 if (ison(o_quiver)) then
399 if (size(o_data,1)>1) then
400 hquiver = do_quiver_plot(P,o_data,opt);
401 end
402 end
403 end
404 if (ison(o_msh) & (ison(o_msh_edges) | ison(o_msh_slice_edges))) then
405 [p,t1,t2] = gf_slice_get(sl,'edges');
406 if (ison(o_msh_edges)) then
407 // p: 2 x 1661
408 // t1: 2 x 1760
409 // t2: 0
410
411 p = p';
412 if (size(p,2)==2) & size(t1,1)~=0 then // 2D plot
413 xtmp = matrix(p(t1,1),size(t1,1),length(p(t1,1))/size(t1,1))';
414 ytmp = matrix(p(t1,2),size(t1,1),length(p(t1,1))/size(t1,1))';
415 ztmp = matrix(ones(p(t1,2)),size(t1,1),length(p(t1,1))/size(t1,1))';
416 plot3d(xtmp', ytmp', ztmp');
417 elseif size(t1,1)~=0 then
418 xtmp = matrix(p(t1,1),size(t1,1),length(p(t1,1))/size(t1,1))';
419 ytmp = matrix(p(t1,2),size(t1,1),length(p(t1,1))/size(t1,1))';
420 ztmp = matrix(p(t1,3),size(t1,1),length(p(t1,1))/size(t1,1))';
421 plot3d(xtmp', ytmp', ztmp');
422 end
423 hmesh = gce();
424 hmesh.thickness = o_msh_edges_width;
425 hmesh.line_style = 1;
426 hmesh.foreground = color(round(255*o_msh_edges_color(1)), ...
427 round(255*o_msh_edges_color(2)), ...
428 round(255*o_msh_edges_color(3)));
429 hmesh.hiddencolor = -1;
430 p = p'; //t1 = t1';
431 end
432 if (ison(o_msh_slice_edges)) then
433 //hmesh = [hmesh patch('Vertices',p','Faces',t2','EdgeColor',o_msh_slice_edges_color,'LineWidth',o_msh_slice_edges_width)]; // YC
434 p = p'; //t2 = t2';
435 if (size(p,2)==2) & size(t2,1)~=0 then
436 xtmp = matrix(p(t2,1),size(t2,1),length(p(t2,1))/size(t2,1))';
437 ytmp = matrix(p(t2,2),size(t2,1),length(p(t2,1))/size(t2,1))';
438 ztmp = matrix(ones(p(t2,2)),size(t2,1),length(p(t2,1))/size(t2,1))';
439 plot3d(xtmp', ytmp', ztmp');
440 elseif size(t2,1)~=0 then
441 xtmp = matrix(p(t2,1),size(t2,1),length(p(t2,1))/size(t2,1))';
442 ytmp = matrix(p(t2,2),size(t2,1),length(p(t2,1))/size(t2,1))';
443 ztmp = matrix(p(t2,3),size(t2,1),length(p(t2,1))/size(t2,1))';
444 plot3d(xtmp', ytmp', ztmp');
445 end
446
447 hmesh_tmp = gce();
448 hmesh_tmp.thickness = o_msh_slice_edges_width;
449 hmesh_tmp.line_style = 1;
450 hmesh_tmp.foreground = color(round(255*o_msh_slice_edges_color(1)), ...
451 round(255*o_msh_slice_edges_color(2)), ...
452 round(255*o_msh_slice_edges_color(3)));
453 hmesh.hiddencolor = -1;
454 p = p'; //t2 = t2';
455 hmesh = [hmesh hmesh_tmp];
456 end
457 end
458 endfunction
459
460 ////////////////////
461 // do_quiver_plot //
462 ////////////////////
463
464 // arrow plot
465 function hquiver = do_quiver_plot(P,U,opt)
466
467 [o_data,err] = get_param(opt,'data',[]); // data to be plotted on the slice (on slice nodes)
468 [o_convex_data,err] = get_param(opt,'convex_data',[]); // data to be plotted (given on the mesh convexes)
469 [o_msh,err] = get_param(opt,'mesh','auto'); // show the mesh ?
470 [o_msh_edges,err] = get_param(opt,'mesh_edges','on'); // show mesh edges ?
471 [o_msh_edges_color,err] = get_param(opt,'mesh_edges_color',[.6 .6 1]);
472 [o_msh_edges_width,err] = get_param(opt,'mesh_edges_width',.7);
473 [o_msh_slice_edges,err] = get_param(opt,'mesh_slice_edges','on');
474 [o_msh_slice_edges_color,err] = get_param(opt,'mesh_slice_edges_color',[.7 0 0]);
475 [o_msh_slice_edges_width,err] = get_param(opt,'mesh_slice_edges_width',.5);
476 [o_msh_faces,err] = get_param(opt,'mesh_faces','off'); // fill mesh faces (otherwise they are transparent)
477 [o_msh_faces_color,err] = get_param(opt,'mesh_faces_color',[.75 .75 .75]);
478 [o_pcolor,err] = get_param(opt,'pcolor','on'); // if the field is scalar, a color plot of its values is plotted
479 [o_quiver,err] = get_param(opt,'quiver','on'); // if the field is vector, represent arrows
480 [o_quiver_density,err] = get_param(opt,'quiver_density',50); // density of arrows in quiver plot
481 [o_quiver_scale,err] = get_param(opt,'quiver_scale',1); // scaling of arrows (0=>no scaling)
482 [o_tube,err] = get_param(opt,'tube','on'); // use tube plot for linear parts of the slice
483 [o_tube_color,err] = get_param(opt,'tube_color','red'); // color of tubes (ignored if 'data' is not empty)
484 [o_tube_radius,err] = get_param(opt,'tube_radius',0.05); // tube radius; you can use a constant, or a percentage (of the mesh size) or a vector of nodal values
485 [o_showoptions,err] = get_param(opt,'showoptions','off'); // list options used
486
487 hquiver = [];
488 P = mycell2mat(P)';
489 mdim = size(P,1);
490 qdim = size(U,1);
491 nP = size(P,2);
492 ptlst = 1:nP;
493 bmin = min(P);
494 bmax = max(P);
495 xyscale = max(bmax-bmin);
496 qradius2 = (xyscale/o_quiver_density)^2;
497 vscale = max(max(abs(U)));
498 qlst = [];
499 rm = [];
500
501 while (length(ptlst)>0)
502 ii = ptlst(1);
503 qlst = [qlst ii];
504 x = P(1,ii);
505 y = P(2, ii);
506 if (mdim == 2) then
507 rm = (find((P(1,:)-x).^2 + (P(2,:)-y).^2 < qradius2));
508 elseif (mdim == 3) then
509 z = P(3,ii);
510 rm = (find((P(1,:)-x).^2 + (P(2,:)-y).^2 + (P(3,:)-z).^2 < qradius2));
511 end
512 if (length(rm)==0) then error('internal error in gf_plot'); end;
513 ptlst = _setdiff(ptlst, rm);
514 end
515 if (qdim == 2) then
516 nx = ones(1,2*length(P(1,qlst)));
517 ny = ones(1,2*length(P(1,qlst)));
518 deltaUmax = max(U(:,qlst),'c') - min(U(:,qlst),'c');
519 deltaP = max(P(:,qlst),'c') - min(P(:,qlst),'c');
520 nx(1:2:$) = P(1,qlst);
521 nx(2:2:$) = P(1,qlst) + 0.025 * deltaP(1) .* U(1,qlst) / max(%eps,norm(deltaUmax));
522 ny(1:2:$) = P(2,qlst);
523 ny(2:2:$) = P(2,qlst) + 0.025 * deltaP(2) .* U(2,qlst) / max(%eps,norm(deltaUmax));
524 xarrows(nx,ny);
525 a = gca();
526 a.data_bounds = [min(P,'c')';max(P,'c')'];
527 hquiver = gce();
528 hquiver.arrow_size = o_quiver_scale;
529 else
530 champ3(P(1,qlst),P(2,qlst),P(3,qlst),U(1,qlst),U(2,qlst),U(3,qlst)); // green
531 hquiver = gce();
532 hquiver.arrow_size = o_quiver_scale;
533 end
534 endfunction
535
+0
-567
interface/src/scilab/macros/gf_solve.sci less more
0
1 ///////////////////
2 // eval_asm_data //
3 ///////////////////
4
5 function pde = eval_asm_data(in_pde,dname,default_value,mf)
6 [nargout,nargin] = argn();
7
8 pde = in_pde;
9 if (nargin == 3) then
10 mf = pde('mf_d');
11 end
12 if (or(getfield(1,pde)==dname)) & ~isempty(pde(dname)) then
13 z = pde(dname);
14 else
15 warning('you did not define the ''' + dname + ''' data for the ' + pde('type') + ' pde struct');
16 disp('setting ''' + dname + ''' to its default value of ');
17 disp(default_value);
18 z = default_value;
19 end
20
21 if (typeof(z)=='list') then
22 //z = matrix(z(:),length(z),1);
23 for i=1:length(z)
24 tmp(i,:) = z(i)(:);
25 end
26 z = tmp(:);
27 end
28 pde('asm')(dname) = gf_mesh_fem_get_eval(mf, z); // YC: pb ici quand z est numeric ...
29 endfunction
30
31 /////////////////////////////////
32 // solves the scalar laplacian //
33 /////////////////////////////////
34
35 function [U,pde] = do_laplacian(in_pde)
36 pde = in_pde; U=[];
37 assert_field(pde, 'mf_u','mf_d');
38 pde = eval_asm_data(pde,'lambda', list(1));
39 if isempty(pde('asm')('K')) then
40 pde('asm')('K') = gf_asm('laplacian',pde('mim'), pde('mf_u'), pde('mf_d'), pde('asm')('lambda'));
41 end
42 pde = do_classical_bc(pde);
43 [U,pde] = do_classical_solve(pde);
44 endfunction
45
46 //////////////////////////////
47 // solves linear elasticity //
48 //////////////////////////////
49
50 function [U,pde] = do_linear_elasticity(in_pde)
51 pde = in_pde; U=[];
52 assert_field(pde, 'mf_u','mf_d');
53 if (~has_field(pde('asm'),'lambda','mu')) then
54 if (has_field(pde,'lambda', 'mu')),
55 pde = eval_asm_data(pde,'lambda', list(1));
56 pde = eval_asm_data(pde,'mu', list(1));
57 elseif (~isempty(pde('E')) & ~isempty(pde('PR'))) then // young modulus and poisson ratio
58 tmpE = gf_mesh_fem_get_eval(pde('mf_d'), pde('E'));
59 tmpnu = gf_mesh_fem_get_eval(pde('mf_d'), pde('PR'));
60 pde('asm')('lambda') = tmpE .* tmpnu ./ ((1+tmpnu) .* (1-2*tmpnu));
61 pde('asm')('mu') = tmpE ./ (2*(1+tmpnu)); // shear modulus
62 // if (is_plane_stress) then
63 // lambda = 2*lambda.*mu./(lambda+2*mu);
64 // end;
65 else
66 error('no description of either (young modulus E and poisson ratio nu) or (mu and lambda) in pde structure');
67 end
68 end
69 if (isempty(pde('asm')('K'))) then
70 pde('asm')('K') = gf_asm('linear elasticity',pde('mim'),pde('mf_u'), pde('mf_d'), pde('asm')('lambda'),pde('asm')('mu'));
71 end
72 pde = do_classical_bc(pde);
73
74 //at this point, the boundary conditions and volumic source term should have been assembled
75 [U,pde] = do_classical_solve(pde);
76 endfunction
77
78 ////////////////
79 // do_stokes //
80 ////////////////
81
82 function [U,P,pde] = do_stokes(in_pde)
83 pde = in_pde; U=[]; P=[];
84 assert_field(pde, 'mf_u','mf_d');
85 pde = eval_asm_data(pde, 'viscos', list(1));
86 if (isempty(pde('asm')('K'))) then
87 [pde('asm')('K'),pde('asm')('B')] = gf_asm('stokes',pde('mim'),pde('mf_u'), pde('mf_p'), pde('mf_d'), pde('asm')('viscos'));
88 if (nnz(pde('asm')('K')-pde('asm')('K')')) then
89 error('K not symetric, you found a bug!');
90 end
91 end
92 pde = do_classical_bc(pde);
93 [U,P,pde] = do_stokes_solve(pde);
94 endfunction
95
96 /////////////////////
97 // do_stokes_solve //
98 /////////////////////
99
100 function [U,P,pde] = do_stokes_solve(in_pde)
101 pde = in_pde;
102 U = [];
103 P = [];
104 assert_field(pde('asm'), 'H','R','K','Q','F','G');
105 [_null,ud] = gf_spmat_get(pde('asm')('H'),'dirichlet nullspace', pde('asm')('R'));
106 K = pde('asm')('K') + pde('asm')('Q');
107 if nnz(K-K') then
108 sym=0; disp('non symmetric matrix, aborting; pause mode'); pause;
109 else
110 sym=1;
111 end
112 Fu = _null'*((pde('asm')('F')(:)+pde('asm')('G')(:))-K*ud(:));
113 Fp = -pde('asm')('B')'*ud(:);
114 K = _null'*K*_null;
115 B = _null'*pde('asm')('B');
116 K = (K+K')/2; // make sure that the matrix is absolutely symetric
117 // pde('solver')('type') = 'cg';
118 // pde('solver') = set_default_values(pde('solver'),'type','cg','maxiter',1000,'residu',1e-6);
119 if (pde('solver')=='brute_stokes') then
120 [U,P] = do_solve_stokes_cg2(K,B,Fu(:),Fp(:));
121 else
122 //[U,P] = do_solve_stokes_cg(K,B,Fu(:),Fp(:));
123 [U,P] = do_solve_stokes_cg2(K,B,Fu(:),Fp(:)); // YC: gmres not defined as in Matlab
124 end
125 U = _null*U+ud(:);
126 U = U(:)';
127 P = -P(:)';
128 endfunction
129
130 /////////////////////
131 // do_classical_bc //
132 /////////////////////
133
134 function pde = do_classical_bc(pde)
135 q_dim = gf_mesh_fem_get(pde('mf_u'), 'qdim');
136 do_F = isempty(pde('asm')('F'));
137 do_H = isempty(pde('asm')('H'));
138 do_R = isempty(pde('asm')('R'));
139 do_Q = isempty(pde('asm')('Q'));
140 do_G = isempty(pde('asm')('G'));
141 disp(pde('mim'))
142 if (do_F) then
143 //pde = eval_asm_data(pde,'F', num2cell(zeros(q_dim,1)));
144 pde = eval_asm_data(pde,'F', list(zeros(q_dim,1))); // YC: pb ici ??
145 pde('asm')('F') = gf_asm('volumic source', pde('mim'), pde('mf_u'), pde('mf_d'), pde('asm')('F'));
146 end
147 if (~isempty(pde('pdetool')('e')) & ~isempty(pde('pdetool')('b'))) then
148 [pde('asm')('Q'),pde('asm')('G'),pde('asm')('H'),pde('asm')('R')] = gf_asm('pdetool boundary conditions',...
149 pde('mim'),pde('mf_u'),pde('mf_d'),pde('pdetool')('b'),pde('pdetool')('e'));
150 else
151 assert_field(pde,'bound');
152 q_dim = gf_mesh_fem_get(pde('mf_u'), 'qdim');
153 u_nbdof = gf_mesh_fem_get(pde('mf_u'), 'nbdof');
154 d_nbdof = gf_mesh_fem_get(pde('mf_d'), 'nbdof');
155 if (do_H) then pde('asm')('H') = spzeros(u_nbdof, u_nbdof); end;
156 if (do_Q) then pde('asm')('Q') = spzeros(u_nbdof, u_nbdof); end;
157 if (do_R) then pde('asm')('R') = zeros(u_nbdof,1); end;
158 if (do_G) then pde('asm')('G') = zeros(u_nbdof,1); end;
159 for bnum=1:length(pde('bound')),
160 assert_field(pde('bound')(bnum),'type');
161 is_dirichlet = 0; is_neumann = 0;
162 select (pde('bound')(bnum)('type'))
163 case 'None' then
164 case 'Dirichlet' then
165 is_dirichlet=1;
166 case 'Neumann' then
167 is_neumann=1;
168 case 'Mixed' then
169 is_dirichlet=1; is_neumann=1;
170 else
171 disp('bc type ' + pde('bound')(bnum)('type') + 'unhandled');
172 end
173
174 if (is_dirichlet) then
175 assert_field(pde('bound')(bnum),'R');
176 if (do_R | do_H) then
177 disp(list(pde('bound')(bnum)('R')(:)))
178 vR = gf_mesh_fem_get_eval(pde('mf_d'), list(list(pde('bound')(bnum)('R')(:))));
179 if (~isempty(pde('bound')(bnum)('H'))) then
180 disp(list(pde('bound')(bnum)('H')(:)))
181 vH = gf_mesh_fem_get_eval(pde('mf_d'), list(list(pde('bound')(bnum)('H')(:))));
182 else
183 //h = num2cell(eye(q_dim,q_dim)); // YC: numtocell a changer
184 // h = list();
185 // tmp = eye(q_dim,q_dim);
186 // for i=1:q_dim
187 // h(i) = list();
188 // for j=1:q_dim
189 // h(i)(j) = tmp(i,j);
190 // end
191 // end
192 // clear tmp;
193 h = eye(q_dim, q_dim);
194 vH = gf_mesh_fem_get_eval(pde('mf_d'), h(:));
195 end
196 // Matlab Scilab
197 // vR: 2 * 102 2 * 102
198 // vH: 4 * 102 2 * 102
199 // q_dim: 2 2
200 // d_nbdof: 102 102
201 [bH,bR] = gf_asm('dirichlet', bnum, pde('mim'),pde('mf_u'), pde('mf_d'), matrix(vH,q_dim*q_dim,d_nbdof), vR);
202 end
203 if (do_R) then pde('asm')('R') = pde('asm')('R') + bR; end;
204 if (do_H) then pde('asm')('H') = pde('asm')('H') + bH; end;
205 end
206
207 if (is_neumann) then
208 assert_field(pde('bound')(bnum),'G');
209 if (do_G) then
210 vG = gf_mesh_fem_get_eval(pde('mf_d'), list(list(pde('bound')(bnum)('G')(:))));
211 vG = gf_asm('boundary source', bnum, pde('mim'),pde('mf_u'), pde('mf_d'), vG);
212 pde('asm')('G') = pde('asm')('G') + vG;
213 end;
214 if (do_Q) then
215 if (~isempty(pde('bound')(bnum)('Q'))) then
216 vQ = gf_mesh_fem_get_eval(pde('mf_d'), list(list(pde('bound')(num)('Q')(:))));
217 else
218 //q = num2cell(eye(q_dim,q_dim)); // YC: num2cell a changer
219 q = list(eye(q_dim,q_dim));
220 vQ = gf_mesh_fem_get_eval(pde('mf_d'), list(list(q(:))));
221 end
222 bQ = gf_asm('boundary qu term',bnum,pde('mim'),pde('mf_u'),pde('mf_d'), matrix(vQ,q_dim*q_dim,d_nbdof));
223 pde('asm')('Q') = pde('asm')('Q') + bQ;
224 end
225 end
226 end
227 end
228 endfunction
229
230 /////////////
231 // solvers //
232 /////////////
233
234 // solves (K+Q)U=F+G
235 // under constraint HU=R
236 function [U,pde] = do_classical_solve(in_pde)
237 pde = in_pde;
238 assert_field(pde('asm'),'K','Q','G','H','R','F');
239 [_null,ud] = gf_spmat_get(pde('asm')('H'),'dirichlet nullspace', pde('asm')('R'));
240 RK = pde('asm')('K')+pde('asm')('Q');
241 if nnz(RK-RK') then
242 sym=0; disp('non symmetric matrix');
243 else
244 sym=1;
245 end
246 RF=_null'*((pde('asm')('F')(:)+pde('asm')('G')(:))-RK*ud(:));
247 RK=_null'*RK*_null;
248 if sym then
249 RK=(RK+RK')/2;
250 end
251 pde('asm')('RK') = RK;
252 RB = _null;
253 U = RB*(RK\RF)+ud(:);
254 U = U(:)'; // row vector
255 endfunction
256
257 ////////////////////////
258 // do_solve_stokes_cg //
259 ////////////////////////
260
261 // solves [K B][U] = [Fu]
262 // [B' 0][P] [Fp]
263 // with K *positive* definite
264 function [U,P] = do_solve_stokes_cg(K,B,Fu,Fp)
265 verbos_disp_start(sprintf('factorizing K (n=%d,nnz=%d)',size(K,1),nnz(K)));
266 R = sp_chol(K);
267 verbos_disp_end;
268 verbos_disp(sprintf('K factored, nnz(R)=%d',nnz(R)));
269 // we have to avoid transpositions on sparse matrix since this
270 // operation has high cost of n*(nnz/n)*log((nnz/n)) ESPECIALY
271 // for triangular matrices from factorisations: the cost of the
272 // transposition is greater than the cost of a triangular
273 // solve which is n*(nnz/n).
274 F = ((R\(Fu'/R)')'*B)' - Fp;
275 tol = 1e-8;
276 verbos_disp_start('running Conjugate gradientG');
277 // P = cg(F,R,B,10000,1e-6);
278 //[P,flag,relres,iter,resvec] = pcg(@multA, F, tol, 500, @multM, @multM, [], R, B);
279
280 x = ones(F);
281 [P,flag,relres,iter,resvec] = gmres(eval(multA,x,R,B), F, 100, tol, 50, eval(multM,x,R,B)*eval(multM,x,R,B));
282
283 //[P,flag,relres,iter,resvec] = gmres(multA, F, 100, tol, 50, multM, multM, [], R, B);
284 // figure(5); plot(resvec);
285 // disp(sprintf(' .. flag = %d, relres=%g, iter=%d',flag, relres, iter));
286
287 verbos_disp_end;
288 if (flag) then
289 warning(sprintf('conjugate gradient did not converge! flag=%d, res=%g, iter=%d',flag,relres,iter));
290 else
291 verbos_disp(sprintf('pcg: flag=%d, res=%g, iter=%d', flag, relres, iter));
292 end
293 U = R\(((Fu-B*P)'/R)');
294 verbos_disp('do_solve_stokes_cg all done');
295 endfunction
296
297
298 /////////////////////////
299 // do_solve_stokes_cg3 //
300 /////////////////////////
301
302 // solves [K B][U] = [Fu]
303 // [B' 0][P] [Fp]
304 // with K *positive* definite
305 function [U,P] = do_solve_stokes_cg3(K,B,Fu,Fp)
306 nu = size(K,2);
307 np = size(B,2);
308
309 disp('solve stokes uzawa cholinc');
310 //[pcB] = sp_cholinc(K,'0'); YC: '0' option ??
311 [pcB] = sp_cholinc(K);
312 pcBt = pcB';
313 disp('solve stokes uzawa first pcg');
314 P = zeros(np,1);
315 U = pcg(K,Fu - B*P,1e-6,100,pcBt,pcB); // YC: ??
316 disp('solve stokes uzawa : got U');
317 for k=1:10000,
318 r = Fp - B'*U;
319 res = norm(r);
320 if (res < 1e-10) then break; end;
321 disp(sprintf('solve stokes : iter=%d res=%g',k, res));
322 z = pcg(K, B*r, 1e-6, 100, pcBt, pcB);
323 rho = res*res/dot(r,(B'*z));
324 P = P - rho*r;
325 U = U + rho*z;
326 end
327 endfunction
328
329 /////////////////////////
330 // do_solve_stokes_cg2 //
331 /////////////////////////
332
333 // try to apply gmres to the global system
334 function [U,P] = do_solve_stokes_cg2(K,B,Fu,Fp)
335 tic;
336 nu = size(K,2); np = size(B,2);
337 Z = [K B; B' spzeros(np,np)];
338 Z2 = Z + [spzeros(nu,nu) spzeros(nu,np); spzeros(np,nu) sparse(diag(0.001*ones(np,1)))];
339 disp(sprintf('begin luinc [nu=%d,np=%d, nnz=%d]', nu, np, nnz(Z2)));
340 //[L,U] = sp_luinc(Z2,'0'); // YC: '0' option ??
341 //[L,U] = sp_luinc(Z2);
342 disp('begin gmres');
343 // [x, flag, resNorm, iter, resVec] = gmres( A, b, x, M, restrt, max_it, tol )
344
345 [UP,FLAG,RELRES,ITER,RESVEC] = gmres(Z,[Fu;Fp],50,1e-9,1000,Z2); // Z2 = L*U;
346 U = UP(1:nu);
347 P = UP((nu+1):(nu+np));
348 disp(sprintf('do_solve_stokes_cg2 done in %g sec (%d iter, flag=%d)',toc(),ITER,FLAG));
349 resU = norm(K*U+B*P-Fu,2);
350 resP = norm(B'*U-Fp,2);
351 disp(sprintf('resU=%g, resP=%g',resU,resP));
352 endfunction
353
354 //////////////////////////////
355 // do_solve_stokes_cg2_test //
356 //////////////////////////////
357
358 // try to apply gmres to the global system
359 function [U,P] = do_solve_stokes_cg2_test(K,B,Fu,Fp)
360 tic;
361 nu = size(K,2); np = size(B,2);
362 Z = [K B; B' spzeros(np,np)];
363 Z2 = Z + [spzeros(nu,nu) spzeros(nu,np); spzeros(np,nu) sparse(diag(0.001*ones(np,1)))];
364 disp(sprintf('begin luinc [nu=%d,np=%d, nnz=%d]', nu, np, nnz(Z2)));
365
366 pause;
367
368 //[L,U] = sp_luinc(Z2,'0'); // YC: '0' option ??
369 [L,U] = sp_luinc(Z2);
370 disp('begin gmres');
371 [UP,FLAG,RELRES,ITER,RESVEC] = gmres(Z,[Fu;Fp],50,1e-9,1000,L,U);
372 U = UP(1:nu);
373 P = UP((nu+1):(nu+np));
374 disp(sprintf('do_solve_stokes_cg2 done in %g sec (%d iter, flag=%d)',toc(),ITER,FLAG));
375 resU = norm(K*U+B*P-Fu,2);
376 resP = norm(B'*U-Fp,2);
377 disp(sprintf('resU=%g, resP=%g',resU,resP));
378 endfunction
379
380 /////////////////////////////
381 // do_solve_stokes_cg2_old //
382 /////////////////////////////
383
384 function [U,P] = do_solve_stokes_cg2_old(K,B,Fu,Fp)
385 alpha=1e-6;
386 tic;
387 if (0) then
388 R = sp_chol(K);
389 RB = full(R'\B);
390 T = (alpha*speye(size(B,2),size(B,2))-RB'*RB);
391 P = T\(Fp-B'*(K\Fu));
392 U = R\(((Fu-B*P)'/R)');
393 else
394 // unfortunately, the basic stokes solver is very slow...
395 // on small 3D problems, the fastest way is to reduce to a (full) linear system on the pression...
396 // drawback: it eats a lot of memory..
397 disp('using the ''brute force'' solver for stokes..');
398 R = sp_chol(K);
399 RB = full(R'\B);
400 T = (-RB'*RB);
401 F = (Fp-B'*(K\Fu));
402 T(1,:)=0; T(1,1)=1;F(1)=0;
403 P = T\F;
404 U = R\(((Fu-B*P)'/R)');
405 end;
406 disp(sprintf('do_solve_stokes_cg2 done in %g sec',toc()));
407 resU = norm(K*U+B*P-Fu,2);
408 resP = norm(B'*U-Fp,2);
409 disp(sprintf('resU=%g, resP=%g',resU,resP));
410 endfunction
411
412 /////////////
413 // multlup //
414 /////////////
415
416 function Y = multlup(X,L,U,P)
417 Y = U\(L\(P*X));
418 endfunction
419
420 ////////
421 // cg //
422 ////////
423
424 // DO NOT USE THIS ONE... BROKEN
425 function X = cg(F,R,B,maxit,tol)
426 X = rand(F);
427 r = F-multA(X,R,B);
428 nr0 = norm(r,2);
429 nr = nr0;
430 d = r;
431 it = 1;
432 while (nr/nr0 > tol & it < maxit)
433 Ad = multA(d,R,B);
434 lambda = (nr^2)/(dot(d, Ad));
435 X = X + lambda*d;
436 r = r - lambda*Ad;
437 nrp = nr;
438 nr = norm(r,2);
439 _beta = (nr*nr)/(nrp*nrp);
440 d = r + _beta*d;
441 it = it+1;
442 end
443 disp(sprintf('iterations: %d , res=%g', it, nr/nr0));
444 endfunction
445
446 ///////////
447 // multA //
448 ///////////
449
450 function AX = multA(X,R,B)
451 tic;
452 // AX=B'*(R\(R'\(B*X)));
453 BX = (B*X)';
454 BXR = (BX/R)';
455 RBXR = R\BXR;
456 AX = (RBXR'*B)';
457 // AX=((R\((B*X)'/R)')'*B)';
458 t = toc;
459 verbos_disp(sprintf('iter : %f sec r=%g',t,norm(AX,2)));
460 endfunction
461
462 ///////////
463 // multM //
464 ///////////
465
466 function MX = multM(X,R,B)
467 MX = X;
468 endfunction
469
470 /////////////////
471 // verbos_disp //
472 /////////////////
473
474 function verbos_disp(_what)
475 global verbosity
476 if (verbosity > 0) then
477 disp(_what);
478 end
479 endfunction
480
481 ///////////////////////
482 // verbos_disp_start //
483 ///////////////////////
484
485 function verbos_disp_start(_what)
486 global verbosity
487 if (verbosity > 0) then
488 disp(_what + '...'); tic;
489 end
490 endfunction
491
492 /////////////////////
493 // verbos_disp_end //
494 /////////////////////
495
496 function verbos_disp_end()
497 global verbosity
498 if (verbosity > 0) then
499 disp(sprintf('done (%2.3f sec)', toc()));
500 end
501 endfunction
502
503 //////////////
504 // gf_solve //
505 //////////////
506
507 function [varargout] = gf_solve(varargin)
508 // function varargout=gf_solve(what, varargin)
509 // General solver for getfem PDE
510 // OBSOLETE FUNCTION used in some old scripts. Kept for compatibility reason.
511 // It solve a few set of pde. DO NOT USE ANYMORE.
512
513 [nargout,nargin] = argn();
514
515 if (nargin==0) then error('not enough input arguments'); end;
516
517 //pde = build_options_list(varargin(:));
518 pde = varargin(1);
519
520 if isempty(pde('verbosity')) then
521 pde('verbosity') = 0;
522 end
523 if isempty(pde('mim')) then
524 error('since v2.0, the pde structure for gf_solve should contain a mesh_im object in its ''mim'' field');
525 end
526 if isempty(pde('type')) then
527 error('the pde mlist should have a ''type'' field');
528 end
529 if isempty(pde('asm')) then
530 pde('asm') = list();
531 end;
532 if isempty(pde('solver')) then
533 pde('solver') = 'default';
534 end
535
536 nout = max(nargout,1);
537 list_out = list();
538 str_eval = '[list_out(1)';
539 for i=2:nout
540 str_eval = str_eval + ',list_out(' + string(i) + ')';
541 end
542 str_eval = str_eval + '] = ';
543
544 select pde('type')
545 case 'laplacian' then
546 // YC: varargout ne peut pas etre utilisé de cette façon [varargout(1:nout)]=do_laplacian(pde);
547 str_eval = str_eval + 'do_laplacian(pde)';
548 execstr(str_eval);
549 case 'linear elasticity' then
550 // YC: varargout ne peut pas etre utilisé de cette façon [varargout(1:nout)]=do_linear_elasticity(pde);
551 str_eval = str_eval + 'do_linear_elasticity(pde)';
552 execstr(str_eval);
553 case 'stokes' then
554 // YC: varargout ne peut pas etre utilisé de cette façon [varargout(1:nout)]=do_stokes(pde);
555 str_eval = str_eval + 'do_stokes(pde)';
556 execstr(str_eval);
557 else
558 error('unhandled PDE(''type'') : ' + pde('type'));
559 end
560 varargout = list();
561 for i=1:nargout
562 varargout(i) = list_out(i);
563 end
564 endfunction
565
566
+0
-19
interface/src/scilab/macros/gfassert.sci less more
0 function gfassert(sx)
1 global gverbose;
2 global gdebug;
3 x = eval(sx);
4 if (~all(x(:))) then
5 if (gverbose) then
6 whereami();
7 end
8 if (gdebug) then
9 disp(['Assertion failed:' sx]);
10 printf('enter ''continue'' to continue\n');
11 pause;
12 else
13 printf('AssertionFailed:');
14 disp(sx);
15 end
16 end
17 endfunction
18
+0
-13
interface/src/scilab/macros/has_field.sci less more
0 ///////////////
1 // has_field //
2 ///////////////
3
4 function ok = has_field(pde,varargin)
5 ok = 0;
6 for i=1:length(varargin),
7 if (~or(getfield(1,pde)==varargin(i))) then
8 return;
9 end
10 end
11 ok = 1;
12 endfunction
+0
-65
interface/src/scilab/macros/init_pde.sci less more
0 function pde = init_pde()
1 pde = mlist(['pde', ...
2 'verbosity', ... // integer
3 'mim', ...
4 'type', ...
5 'lambda', ...
6 'mu', ...
7 'viscos', ...
8 'K', ...
9 'H', ...
10 'R', ...
11 'Q', ...
12 'F', ...
13 'G', ...
14 'B', ...
15 'RK', ...
16 'asm', ...
17 'solver', ...
18 'mf_u', ...
19 'mf_d', ...
20 'mf_p', ...
21 'PR', ...
22 'E', ...
23 'pdetool', ... // pde('pdetool')('b'), pde('pdetool')('e'),
24 'bound', ...
25 ]);
26
27 pde('verbosity') = 0; // integer
28 pde('type') = []; // 'laplacian', 'linear elasticity', 'stockes'
29 pde('lambda') = [];
30 pde('mu') = [];
31 pde('viscos') = [];
32 pde('K') = [];
33 pde('H') = [];
34 pde('R') = [];
35 pde('Q') = [];
36 pde('F') = [];
37 pde('G') = [];
38 pde('B') = [];
39 pde('RK') = [];
40 pde('asm') = mlist(['asm', 'lambda', 'mu', 'viscos', 'K', 'H', 'R', 'Q', 'F', 'G', 'B', 'RK']);
41 pde('asm')('lambda') = [];
42 pde('asm')('mu') = [];
43 pde('asm')('viscos') = [];
44 pde('asm')('K') = [];
45 pde('asm')('H') = [];
46 pde('asm')('R') = [];
47 pde('asm')('Q') = [];
48 pde('asm')('F') = [];
49 pde('asm')('G') = [];
50 pde('asm')('B') = [];
51 pde('asm')('RK') = [];
52 pde('solver') = 'default' // 'brute_stockes', 'default', set_default_values(pde('solver'),'type','cg','maxiter',1000,'residu',1e-6);
53 pde('mim') = [];
54 pde('mf_u') = [];
55 pde('mf_d') = [];
56 pde('mf_p') = [];
57 pde('PR') = [];
58 pde('E') = [];
59 pde('pdetool') = mlist(['pdetool','b','e']);
60 pde('pdetool')('b') = [];
61 pde('pdetool')('e') = [];
62 pde('bound') = []; // 'list' + 'type' + 'R' + 'H'
63 endfunction
64
+0
-4
interface/src/scilab/macros/isauto.sci less more
0 function r=isauto(v)
1 r = (convstr(v,'l')=='auto');
2 endfunction
3
+0
-6
interface/src/scilab/macros/isnumeric.sci less more
0 function res = isnumeric(param)
1 if ~isdef('param','local') then param = ''; end
2 res = or(type(param) == [1 5 8]);
3 res = res | (typeof(param)=='hypermat');
4 endfunction
5
+0
-4
interface/src/scilab/macros/ison.sci less more
0 function r=ison(v)
1 r = ((v=='on') | (v=='ON'));
2 endfunction
3
+0
-37
interface/src/scilab/macros/isscalar.sci less more
0 // Copyright (C) 1996, 1997 John W. Eaton
1 //
2 // This file is part of Octave.
3 //
4 // Octave is free software; you can redistribute it and/or modify it
5 // under the terms of the GNU General Public License as published by
6 // the Free Software Foundation; either version 2, or (at your option)
7 // any later version.
8 //
9 // Octave is distributed in the hope that it will be useful, but
10 // WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Octave; see the file COPYING. If not, write to the Free
16 // Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 // 02110-1301, USA.
18
19 // -*- texinfo -*-
20 // @deftypefn {Function File} {} isscalar (@var{a})
21 // Return 1 if @var{a} is a scalar. Otherwise, return 0.
22 // @seealso{size, rows, columns, length, isscalar, ismatrix}
23 // @end deftypefn
24
25 // Author: jwe
26
27 function retval = isscalar(x)
28
29 [nargout, nargin] = argn();
30
31 if (nargin == 1) then
32 retval = prod (size (x)) == 1;
33 else
34 error('isscalar (x)');
35 end
36 endfunction
interface/src/scilab/macros/lib less more
Binary diff not shown
+0
-31
interface/src/scilab/macros/names less more
0 _setdiff
1 add_empty_bound
2 assert
3 assert_field
4 asserterr
5 build_options_list
6 cart2pol
7 champ3
8 cross
9 dot
10 gf_asm_pdetoolbc
11 gf_colormap
12 gf_compute_Q1grid_interp
13 gf_interpolate_on_grid
14 gf_mesh_fem_get_eval
15 gf_plot
16 gf_plot_1D
17 gf_plot_mesh
18 gf_plot_slice
19 gf_solve
20 gfassert
21 has_field
22 init_pde
23 isauto
24 isnumeric
25 ison
26 isscalar
27 null_space
28 repmat
29 spdiags
30 surfnorm
+0
-70
interface/src/scilab/macros/null_space.sci less more
0 // Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2003, 2005, 2006,
1 // 2007, 2008 John W. Eaton
2 //
3 // This file is part of Octave.
4 //
5 // Octave is free software; you can redistribute it and/or modify it
6 // under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 3 of the License, or (at
8 // your option) any later version.
9 //
10 // Octave is distributed in the hope that it will be useful, but
11 // WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with Octave; see the file COPYING. If not, see
17 // <http://www.gnu.org/licenses/>.
18
19 // -*- texinfo -*-
20 // @deftypefn {Function File} {} null (@var{a}, @var{tol})
21 // Return an orthonormal basis of the null space of @var{a}.
22 //
23 // The dimension of the null space is taken as the number of singular
24 // values of @var{a} not greater than @var{tol}. If the argument @var{tol}
25 // is missing, it is computed as
26 //
27 // @example
28 // max (size (@var{a})) * max (svd (@var{a})) * eps
29 // @end example
30 // @end deftypefn
31
32 // Author: KH <Kurt.Hornik@wu-wien.ac.at>
33 // Created: 24 December 1993.
34 // Adapted-By: jwe
35
36 function retval = null_space(A, tol)
37 [nargout,nargin] = argn();
38
39 if (isempty (A)) then
40 retval = [];
41 else
42 [U, S, V] = svd (A);
43
44 [rows, cols] = size (A);
45
46 [S_nr, S_nc] = size (S);
47
48 if (S_nr == 1 | S_nc == 1) then
49 s = S(1);
50 else
51 s = diag (S);
52 end
53
54 if (nargin == 1) then
55 tol = max (size (A)) * s (1) * %eps;
56 elseif (nargin ~= 2) then
57 error('null(A,tol)');
58 end
59
60 _rank = sum (s > tol);
61
62 if (_rank < cols) then
63 retval = V (:, _rank+1:cols);
64 retval(abs (retval) < %eps) = 0;
65 else
66 retval = zeros (cols, 0);
67 end
68 end
69 endfunction
+0
-71
interface/src/scilab/macros/overload/%objid_e.sci less more
0 function varargout = %objid_e(varargin)
1 gf_obj = varargin(2);
2 other_param = varargin(1);
3 varargout(1) = [];
4
5 // The CID value for each class of object is defined in
6 // gfi_array.h
7
8 select gf_obj('cid')
9 case 0 then
10 // gfContStruct
11 varargout = gf_cont_struct_get(gf_obj,other_param);
12 case 1 then
13 // gfCvStruct
14 varargout = gf_cvstruct_get(gf_obj,other_param);
15 case 2 then
16 // gfEltm
17 // No gf_eltm_get function
18 case 3 then
19 // gfFem
20 varargout = gf_fem_get(gf_obj,other_param);
21 case 4 then
22 // gfGeoTrans
23 varargout = gf_geotrans_get(gf_obj,other_param);
24 case 5 then
25 // gfGlobalFunction
26 varargout = gf_global_function_get(gf_obj,other_param);
27 case 6 then
28 // gfInteg
29 varargout = gf_integ_get(gf_obj,other_param);
30 case 7 then
31 // gfLevelSet
32 varargout = gf_levelset_get(gf_obj,other_param);
33 case 8 then
34 // gfMesh
35 varargout = gf_mesh_get(gf_obj,other_param);
36 case 9 then
37 // gfMeshFem
38 varargout = gf_mesh_fem_get(gf_obj,other_param);
39 case 10 then
40 // gfMeshIm
41 varargout = gf_mesh_im_get(gf_obj,other_param);
42 case 11 then
43 // gfMeshIm
44 varargout = gf_mesh_im_data_get(gf_obj,other_param);
45 case 12 then
46 // gfMeshLevelSet
47 varargout = gf_mesh_levelset_get(gf_obj,other_param);
48 case 13 then
49 // gfMesherObject
50 varargout = gf_mesher_object_get(gf_obj,other_param);
51 case 14 then
52 // gfModel
53 varargout = gf_model_get(gf_obj,other_param);
54 case 15 then
55 // gfPrecond
56 varargout = gf_precond_get(gf_obj,other_param);
57 case 16 then
58 // gfSlice
59 varargout = gf_slice_get(gf_obj,other_param);
60 case 17 then
61 // gfSpmat
62 varargout = gf_spmat_get(gf_obj,other_param);
63 case 18 then
64 // gfPoly
65 // No gf_poly_get function
66 else
67 error('wrong object ID');
68 end
69 varargout = list(varargout);
70 endfunction
+0
-71
interface/src/scilab/macros/overload/%objid_get.sci less more
0 function varargout = %objid_get(varargin)
1 gf_obj = varargin(1);
2 other_param = list(varargin(2:$));
3 varargout(1) = [];
4
5 // The CID value for each class of object is defined in
6 // gfi_array.h
7
8 select gf_obj('cid')
9 case 0 then
10 // gfContStruct
11 varargout = gf_cont_struct_get(gf_obj,other_param(:));
12 case 1 then
13 // gfCvStruct
14 varargout = gf_cvstruct_get(gf_obj,other_param(:));
15 case 2 then
16 // gfEltm
17 // No gf_eltm_get function
18 case 3 then
19 // gfFem
20 varargout = gf_fem_get(gf_obj,other_param(:));
21 case 4 then
22 // gfGeoTrans
23 varargout = gf_geotrans_get(gf_obj,other_param(:));
24 case 5 then
25 // gfGlobalFunction
26 varargout = gf_global_function_get(gf_obj,other_param(:));
27 case 6 then
28 // gfInteg
29 varargout = gf_integ_get(gf_obj,other_param(:));
30 case 7 then
31 // gfLevelSet
32 varargout = gf_levelset_get(gf_obj,other_param(:));
33 case 8 then
34 // gfMesh
35 varargout = gf_mesh_get(gf_obj,other_param(:));
36 case 9 then
37 // gfMeshFem
38 varargout = gf_mesh_fem_get(gf_obj,other_param(:));
39 case 10 then
40 // gfMeshIm
41 varargout = gf_mesh_im_get(gf_obj,other_param(:));
42 case 11 then
43 // gfMeshIm
44 varargout = gf_mesh_im_data_get(gf_obj,other_param(:));
45 case 12 then
46 // gfMeshLevelSet
47 varargout = gf_mesh_levelset_get(gf_obj,other_param(:));
48 case 13 then
49 // gfMesherObject
50 varargout = gf_mesher_object_get(gf_obj,other_param(:));
51 case 14 then
52 // gfModel
53 varargout = gf_model_get(gf_obj,other_param(:));
54 case 15 then
55 // gfPrecond
56 varargout = gf_precond_get(gf_obj,other_param(:));
57 case 16 then
58 // gfSlice
59 varargout = gf_slice_get(gf_obj,other_param(:));
60 case 17 then
61 // gfSpmat
62 varargout = gf_spmat_get(gf_obj,other_param(:));
63 case 18 then
64 // gfPoly
65 // No gf_poly_get function
66 else
67 error('wrong object ID');
68 end
69 varargout = list(varargout(:));
70 endfunction
+0
-69
interface/src/scilab/macros/overload/%objid_set.sci less more
0 function %objid_set(varargin)
1 gf_obj = varargin(1);
2 other_param = list(varargin(2:$));
3
4 // The CID value for each class of object is defined in
5 // gfi_array.h
6
7 select gf_obj('cid')
8 case 0 then
9 // gfContStruct
10 // No gf_cont_struct_set function
11 case 1 then
12 // gfCvStruct
13 // No gf_cvstruct_set function
14 case 2 then
15 // gfEltm
16 // No gf_eltm_set function
17 case 3 then
18 // gfFem
19 // No gf_fem_set function
20 case 4 then
21 // gfGeoTrans
22 // No gf_geotrans_set function
23 case 5 then
24 // gfGlobalFunction
25 // No gf_global_function_set function
26 case 6 then
27 // gfInteg
28 // No gf_integ_set function
29 case 7 then
30 // gfLevelSet
31 gf_levelset_set(gf_obj,other_param(:));
32 case 8 then
33 // gfMesh
34 gf_mesh_set(gf_obj,other_param(:));
35 case 9 then
36 // gfMeshFem
37 gf_mesh_fem_set(gf_obj,other_param(:));
38 case 10 then
39 // gfMeshIm
40 gf_mesh_im_set(gf_obj,other_param(:));
41 case 11 then
42 // gfMeshIm
43 gf_mesh_im_data_set(gf_obj,other_param(:));
44 case 12 then
45 // gfMeshLevelSet
46 gf_mesh_levelset_set(gf_obj,other_param(:));
47 case 13 then
48 // gfMesherObject
49 // No gf_mesher_object_set function
50 case 14 then
51 // gfModel
52 gf_model_set(gf_obj,other_param(:));
53 case 15 then
54 // gfPrecond
55 // No gf_precond_set function
56 case 16 then
57 // gfSlice
58 gf_slice_set(gf_obj,other_param(:));
59 case 17 then
60 // gfSpmat
61 gf_spmat_set(gf_obj,other_param(:));
62 case 18 then
63 // gfPoly
64 // No gf_poly_set function
65 else
66 error('wrong object ID');
67 end
68 endfunction
+0
-53
interface/src/scilab/macros/overload/gf_typeof.sci less more
0 function res = gf_typeof(gf_var)
1 res = '';
2
3 // The CID value for each class of object is defined in
4 // gfi_array.h
5
6 if (typeof(gf_var)~='objid') then
7 error('gf_typeof: only objid structures accepted');
8 end
9
10 select gf_var('cid')
11 case 0 then
12 res = 'gfContStruct';
13 case 1 then
14 res = 'gfCvStruct';
15 case 2 then
16 res = 'gfEltm';
17 case 3 then
18 res = 'gfFem';
19 case 4 then
20 res = 'gfGeoTrans';
21 case 5 then
22 res = 'gfGlobalFunction';
23 case 6 then
24 res = 'gfInteg';
25 case 7 then
26 res = 'gfLevelSet';
27 case 8 then
28 res = 'gfMesh';
29 case 9 then
30 res = 'gfMeshFem';
31 case 10 then
32 res = 'gfMeshIm';
33 case 11 then
34 res = 'gfMeshImData';
35 case 12 then
36 res = 'gfMeshLevelSet';
37 case 13 then
38 res = 'gfMesherObject';
39 case 14 then
40 res = 'gfModel';
41 case 15 then
42 res = 'gfPrecond';
43 case 16 then
44 res = 'gfSlice';
45 case 17 then
46 res = 'gfSpmat';
47 case 18 then
48 res = 'gfPoly';
49 else
50 error('wrong object ID');
51 end
52 endfunction
+0
-20
interface/src/scilab/macros/overload/init_gf_types.sce less more
0 // For object emulatio, we first define
1 // a list of alias to primitives
2 // Then, the set and get functions are overloaded
3 gfMesh = gf_mesh;
4 gfMeshFem = gf_mesh_fem;
5 gfMeshIm = gf_mesh_im;
6 gfMeshImData = gf_mesh_im_data;
7 gfModel = gf_model;
8 gfGeoTrans = gf_geotrans;
9 gfFem = gf_fem;
10 gfInteg = gf_integ;
11 gfEltm = gf_eltm;
12 gfSlice = gf_slice;
13 gfSpmat = gf_spmat;
14 gfPrecond = gf_precond;
15 gfLevelSet = gf_levelset;
16 gfMeshLevelSet = gf_mesh_levelset;
17 gfMesherObject = gf_mesher_object;
18 gfContStruct = gf_cont_struct;
19 gfGlobalFunction = gf_global_function;
interface/src/scilab/macros/overload/lib less more
Binary diff not shown
+0
-4
interface/src/scilab/macros/overload/names less more
0 %objid_e
1 %objid_get
2 %objid_set
3 gf_typeof
+0
-83
interface/src/scilab/macros/repmat.sci less more
0 // Copyright (C) 2000 Paul Kienzle
1 //
2 // This file is part of Octave.
3 //
4 // Octave is free software; you can redistribute it and/or modify it
5 // under the terms of the GNU General Public License as published by
6 // the Free Software Foundation; either version 2, or (at your option)
7 // any later version.
8 //
9 // Octave is distributed in the hope that it will be useful, but
10 // WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Octave; see the file COPYING. If not, write to the Free
16 // Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 // 02110-1301, USA.
18
19 // -*- texinfo -*-
20 // @deftypefn {Function File} {} repmat (@var{A}, @var{m}, @var{n})
21 // @deftypefnx {Function File} {} repmat (@var{A}, [@var{m} @var{n}])
22 // Form a block matrix of size @var{m} by @var{n}, with a copy of matrix
23 // @var{A} as each element. If @var{n} is not specified, form an
24 // @var{m} by @var{m} block matrix.
25 // @end deftypefn
26
27 // Author: Paul Kienzle <pkienzle@kienzle.powernet.co.uk>
28 // Created: July 2000
29
30 function x = repmat (a, m, n)
31
32 [nargout, nargin] = argn();
33
34 if (nargin < 2 | nargin > 3) then
35 error('repmat (a, m, n)');
36 end
37
38 if (nargin == 3) then
39 if (~(isscalar (m) & isscalar (n))) then
40 error('repmat: with 3 arguments m and n must be scalar');
41 end
42 idx = [m, n];
43 else
44 if (isscalar (m)) then
45 idx = [m, m];
46 n = m;
47 elseif (isvector (m) & length (m) > 1) then
48 // Ensure that we have a row vector
49 idx = m(:).';
50 else
51 error('repmat: invalid dimensional argument');
52 end
53 end
54
55 x = [];
56
57 if (length(a) == 1) then
58 if (type(a)==10) then
59 x = char (ascii(a) * ones (idx));
60 else
61 x = a*ones(idx(1),idx(2));
62 end
63 elseif (ndims (a) == 2 & length (idx) < 3) then
64 if (type(a)==10)
65 x = char (kron (ones (idx), ascii (a)));
66 aidx = size(a);
67 x = a (kron (ones (1, idx(1)), 1:aidx(1)), kron (ones (1, idx(2)), 1:aidx(2)));
68 else
69 aidx = size(a);
70 if (length(aidx) > length(idx)) then
71 idx = [idx, ones(1,length(aidx)-length(idx))];
72 elseif (length(aidx) < length(idx)) then
73 aidx = [aidx, ones(1,length(idx)-length(aidx))];
74 end
75 cidx = list();
76 for i=1:length(aidx)
77 cidx(i) = kron (ones (1, idx(i)), 1:aidx(i));
78 end
79 x = a(cidx(:));
80 end
81 end
82 endfunction
+0
-121
interface/src/scilab/macros/spdiags.sci less more
0 function [A_out,d_out] = spdiags(B_in,d_in,n_row,n_col)
1
2 // B = spdiags(A) extracts all nonzero diagonals from the m-by-n matrix A. B is a min(m,n)-by-p matrix whose columns are the p nonzero diagonals of A.
3 // [B,d] = spdiags(A) returns a vector d of length p, whose integer components specify the diagonals in A.
4 // B = spdiags(A,d) extracts the diagonals specified by d.
5 // A = spdiags(B,d,A) replaces the diagonals specified by d with the columns of B. The output is sparse.
6 // OK - A = spdiags(B,d,m,n) creates an m-by-n sparse matrix by taking the columns of B and placing them along the diagonals specified by d.
7
8 // spdiags(matrix(1:12, 4, 3), [-1 0 1], 5, 4)
9 // result: 5 10 0 0
10 // 1 6 11 0
11 // 0 2 7 12
12 // 0 0 3 8
13 // 0 0 0 4
14
15 [nargout,nargin] = argn();
16
17 A_out = sparse([]);
18 d_out = [];
19 diagonal_extract = %F;
20
21 // Diagonal extraction
22 if (nargin==1) then
23 n_row = size(B_in,1);
24 n_col = size(B_in,2);
25 n_min = min(n_row,n_col);
26 d_in = -(n_min-1):(n_min-1);
27 A_out = spzeros(n_min,length(d_in));
28 diagonal_extract = %T;
29 end
30
31 if (nargin==2) then
32 n_row = size(B_in,1);
33 n_col = size(B_in,2);
34 n_min = min(n_row,n_col);
35 A_out = spzeros(n_min,length(d_in));
36 diagonal_extract = %T;
37 end
38
39 // Diagonal matrix creation
40 if (nargin==3) then
41 A_out = sparse(n_row);
42 n_row = size(A_out,1);
43 n_col = size(A_out,2);
44 diagonal_extract = %F;
45 end
46
47 if (nargin==4) then
48 A_out = spzeros(n_row,n_col);
49 diagonal_extract = %F;
50 end
51
52 if (nargin>4) | (nargin<1) then
53 error('1 to 4 argument required');
54 end
55
56 if (max(d_in)>=n_col) | (min(d_in)<=-n_row) then
57 error('diagonal index not in range');
58 end
59
60 n_min = min(n_row,n_col);
61
62 if (diagonal_extract) then
63 for i=1:length(d_in)
64 printf('d(%d) = %d\n', i, d_in(i));
65 disp(size(A_out))
66 if (d_in(i)>0) then
67 A_out(1:n_min-d_in(i),i) = B_in(sub2ind(size(B_in),1:n_min-d_in(i),1+d_in(i):n_min));
68 elseif (d_in(i)<0) then
69 A_out(1-d_in(i):n_min,i) = B_in(sub2ind(size(B_in),1-d_in(i):n_min,1:n_min+d_in(i)));
70 else
71 A_out(1:n_min,i) = B_in(sub2ind(size(B_in),1:n_min,1:n_min));
72 end
73 end
74 if (nargout==2) then
75 d_out = [];
76 for i=size(A_out,2):-1:1
77 if and(A_out(:,i)==0) then
78 A_out(:,i) = [];
79 else
80 d_out = [i d_out];
81 end
82 end
83 d_out = d_out - n_min;
84 end
85
86 else
87 for i=1:length(d_in)
88 if (d_in(i)>0) then
89 n_row_start = 1;
90 n_row_end = n_min;
91 n_col_start = d_in(i)+1;
92 n_col_end = min(n_min+d_in(i)+1, n_col);
93 mat_size = [n_row_end - n_row_start + 1 n_col_end - n_col_start + 1]
94 b_start = 1;
95 b_end = min(size(B_in,1),min(mat_size));
96 elseif (d_in(i)<0) then
97 n_row_start = -d_in(i)+1;
98 n_row_end = min(n_min-d_in(i)+1, n_row);
99 n_col_start = 1;
100 n_col_end = n_min;
101 mat_size = [n_row_end - n_row_start + 1 n_col_end - n_col_start + 1]
102 b_start = -d_in(i)+1;
103 b_end = size(B_in,1);
104 else
105 n_row_start = 1;
106 n_col_start = 1;
107 n_row_end = n_min;
108 n_col_end = n_min;
109 mat_size = [n_row_end - n_row_start + 1 n_col_end - n_col_start + 1]
110 b_start = 1;
111 b_end = n_min;
112 end
113
114 A_out(n_row_start:n_row_end,n_col_start:n_col_end) = A_out(n_row_start:n_row_end,n_col_start:n_col_end) + ...
115 sparse([1:b_end-b_start+1;1:b_end-b_start+1]', ...
116 B_in(b_start:b_end,i), ...
117 [n_row_end - n_row_start + 1 n_col_end - n_col_start + 1]);
118 end
119 end
120 endfunction
+0
-99
interface/src/scilab/macros/surfnorm.sci less more
0 // Copyright (C) 2007 David Bateman
1 //
2 // This file is part of Octave.
3 //
4 // Octave is free software; you can redistribute it and/or modify it
5 // under the terms of the GNU General Public License as published by
6 // the Free Software Foundation; either version 3 of the License, or (at
7 // your option) any later version.
8 //
9 // Octave is distributed in the hope that it will be useful, but
10 // WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Octave; see the file COPYING. If not, see
16 // <http://www.gnu.org/licenses/>.
17
18 // -*- texinfo -*-
19 // @deftypefn {Function File} {} surfnorm (@var{x}, @var{y}, @var{z})
20 // @deftypefnx {Function File} {} surfnorm (@var{z})
21 // @deftypefnx {Function File} {[@var{nx}, @var{ny}, @var{nz}] =} surfnorm (@dots{})
22 // @deftypefnx {Function File} {} surfnorm (@var{h}, @dots{})
23 // Find the vectors normal to a meshgridded surface. The meshed gridded
24 // surface is defined by @var{x}, @var{y}, and @var{z}. If @var{x} and
25 // @var{y} are not defined, then it is assumed that they are given by
26 //
27 // @example
28 // [@var{x}, @var{y}] = meshgrid (1:size(@var{z}, 1),
29 // 1:size(@var{z}, 2));
30 // @end example
31 //
32 // If no return arguments are requested, a surface plot with the normal
33 // vectors to the surface is plotted. Otherwise the componets of the normal
34 // vectors at the mesh gridded points are returned in @var{nx}, @var{ny},
35 // and @var{nz}.
36 //
37 // The normal vectors are calculated by taking the cross product of the
38 // diagonals of eash of teh quadrilaterals in the meshgrid to find the
39 // normal vectors of the centers of these quadrilaterals. The four nearest
40 // normal vectors to the meshgrid points are then averaged to obtain the
41 // normal to the surface at the meshgridded points.
42 //
43 // An example of the use of @code{surfnorm} is
44 //
45 // @example
46 // surfnorm (peaks (25));
47 // @end example
48 // @seealso{surf, quiver3}
49 // @end deftypefn
50
51 function [Nx, Ny, Nz] = surfnorm (varargin)
52
53 [nargout,nargin] = argn();
54
55 if (nargin == 1) then
56 z = varargin(1);
57 [x, y] = meshgrid (1:size(z,1), 1:size(z,2));
58 ioff = 2;
59 else
60 x = varargin(1);
61 y = varargin(2);
62 z = varargin(3);
63 ioff = 4;
64 end
65
66 // Make life easier, and avoid having to do the extrapolation later, do
67 // a simpler linear extrapolation here. This is approximative, and works
68 // badly for closed surfaces like spheres.
69 xx = [2 .* x(:,1) - x(:,2), x, 2 .* x(:,$) - x(:,$-1)];
70 xx = [2 .* xx(1,:) - xx(2,:); xx; 2 .* xx($,:) - xx($-1,:)];
71 yy = [2 .* y(:,1) - y(:,2), y, 2 .* y(:,$) - y(:,$-1)];
72 yy = [2 .* yy(1,:) - yy(2,:); yy; 2 .* yy($,:) - yy($-1,:)];
73 zz = [2 .* z(:,1) - z(:,2), z, 2 .* z(:,$) - z(:,$-1)];
74 zz = [2 .* zz(1,:) - zz(2,:); zz; 2 .* zz($,:) - zz($-1,:)];
75
76 u_x = xx(1:$-1,1:$-1) - xx(2:$,2:$);
77 u_y = yy(1:$-1,1:$-1) - yy(2:$,2:$);
78 u_z = zz(1:$-1,1:$-1) - zz(2:$,2:$);
79 v_x = xx(1:$-1,2:$) - xx(2:$,1:$-1);
80 v_y = yy(1:$-1,2:$) - yy(2:$,1:$-1);
81 v_z = zz(1:$-1,2:$) - zz(2:$,1:$-1);
82
83 c = cross ([u_x(:), u_y(:), u_z(:)], [v_x(:), v_y(:), v_z(:)]);
84 w_x = matrix(c(:,1), size(u_x));
85 w_y = matrix(c(:,2), size(u_y));
86 w_z = matrix(c(:,3), size(u_z));
87
88 // Create normal vectors as mesh vectices from normals at mesh centers
89 Nx = (w_x(1:$-1,1:$-1) + w_x(1:$-1,2:$) + w_x(2:$,1:$-1) + w_x(2:$,2:$)) ./ 4;
90 Ny = (w_y(1:$-1,1:$-1) + w_y(1:$-1,2:$) + w_y(2:$,1:$-1) + w_y(2:$,2:$)) ./ 4;
91 Nz = (w_z(1:$-1,1:$-1) + w_z(1:$-1,2:$) + w_z(2:$,1:$-1) + w_z(2:$,2:$)) ./ 4;
92
93 // Normalize the normal vectors
94 len = sqrt (Nx.^2 + Ny.^2 + Nz.^2);
95 Nx = Nx ./ len;
96 Ny = Ny ./ len;
97 Nz = Nz ./ len;
98 endfunction
+0
-9
interface/src/scilab/macros/test_champ3.sce less more
0 [X,Y] = meshgrid(-2:0.25:2,-1:0.2:1);
1 Z = X.* exp(-X.^2 - Y.^2);
2 [U,V,W] = surfnorm(X,Y,Z);
3 champ3(X,Y,Z,U,V,W,0.5);
4 surf(X,Y,Z);
5 f = gcf();
6 f.color_map = hsvcolormap(256);
7
8
+0
-79
interface/src/scilab/macros/test_spdiags.sce less more
0 // Test 1
1
2 A = [0 5 0 10 0 0;...
3 0 0 6 0 11 0;...
4 3 0 0 7 0 12;...
5 1 4 0 0 8 0;...
6 0 2 5 0 0 9];
7
8 [B, d] = spdiags(A);
9
10 B_ref = [0 0 5 10; ...
11 0 0 6 11; ...
12 0 3 7 12; ...
13 1 4 8 0; ...
14 2 5 9 0];
15 d_ref = [-3 -2 1 3];
16
17 if (~and(B==B_ref) | ~and(d==dref)) then
18 printf('error in test1\n');
19 end
20
21 // Test 2
22
23 n = 10;
24 e = ones(n,1);
25 A = spdiags([e -2*e e], -1:1, n, n);
26 A = spdiags(abs(-(n-1)/2:(n-1)/2)',0,A);
27 B = spdiags(A);
28
29 // Test 3
30
31 A = [11 0 13 0
32 0 22 0 24
33 0 0 33 0
34 41 0 0 44
35 0 52 0 0
36 0 0 63 0
37 0 0 0 74];
38
39 [B,d] = spdiags(A);
40
41 d_ref = [-3 0 2];
42
43 B_ref = [41 11 0; ...
44 52 22 0; ...
45 63 33 13; ...
46 74 44 24]
47
48 if (~and(B==B_ref) | ~and(d==dref)) then
49 printf('error in test 3\n');
50 end
51
52 // Test 4
53
54 B = [1:6]' .*. ones(1,7);
55
56 //B =
57 //
58 // 1 1 1 1 1 1 1
59 // 2 2 2 2 2 2 2
60 // 3 3 3 3 3 3 3
61 // 4 4 4 4 4 4 4
62 // 5 5 5 5 5 5 5
63 // 6 6 6 6 6 6 6
64
65 d = [-4 -2 -1 0 3 4 5];
66 A = spdiags(B,d,6,6);
67
68 A_ref = [1 0 0 4 5 6; ...
69 1 2 0 0 5 6; ...
70 1 2 3 0 0 6; ...
71 0 2 3 4 0 0; ...
72 1 0 3 4 5 0; ...
73 0 2 0 4 5 6];
74
75 if (~and(A==A_ref)) then
76 printf('error in test 4\n');
77 end
78
+0
-3
interface/src/scilab/makefile_builder.sce less more
0 exec builder.sce;
1 quit;
2
+0
-54
interface/src/scilab/readme.txt less more
0 readme.txt of the scilab getfem interface
1
2 To compile this interface, you will need to work with the scilab-5.2.2
3 version or the scilab-master version (the version in the git
4 repository) because this interface uses the new interface api.
5
6 So, to compile this interface:
7 - compile getfem. I use the following configure script:
8 /configure --prefix=/home/collette/repositories/install_dir/getfem-dev/ \
9 --with-pic \
10 --enable-superlu=yes \
11 --enable-qhull=yes \
12 --enable-scilab \
13 --with-scilab-toolbox-dir=<getfem_scilabinstalldir> \
14 --with-scilab-prefix=<scilabinstalldir> \
15 --with-optimization=-ggdb \
16 BLAS_LIBS="-L/usr/lib64/atlas/ -lblas"
17 don't forget to install the following package: qhull.
18 to get better performances, install atlas. If you don't install
19 the atlas package, remove the BLAS_LIBS line.
20 Once getfem is compiled:
21 - go to the scilab getfem++ interface install directory (getfem_scilabinstalldir here).
22 - launch scilab
23 Now load the getfem++ toolbox:
24 - exec loader.sce;
25 You can try to launch a demo (be careful, there is a lot of work needed before the interface can be really useable).
26 - cd demos
27 - exec demo_static_contact.sce;
28
29
30 * Some hints for the compilation of this toolbox under windows.
31
32 For the compilation of the toolbox under windows:
33 - compile getfem + getfem interface using the visual studio 2010 project.
34 copy the lib files (from msvc2010/Release) into scilab/src/win32 or
35 src/win64
36 If you plan to add support for qhull in the windows
37 library, you must add:
38 - for qhull:
39 - GETFEM_HAVE_QHULL_QHULL_H in the preprocessor
40 - the path to the include where we can find qhull/qhull.h
41
42 - download and compile statically qhull using visual studio 2010.
43 copy libqhull.lib into scilab/src/win32 ou src/win64
44
45
46 Now, you can go into the scilab directory.
47 Launch Scilab and do:
48
49 exec builder.sce;
50
51 Best regards,
52
53 Y. Collette (ycollette dot nospam at free dot fr)
+0
-14
interface/src/scilab/sci_gateway/builder_gateway.sce less more
0 // ====================================================================
1 // Yann COLLETTE
2 // Copyright 2009
3 // This file is released into the public domain
4 // ====================================================================
5 sci_gateway_dir = get_absolute_file_path('builder_gateway.sce');
6
7 tbx_builder_gateway_lang('c', sci_gateway_dir);
8
9 tbx_build_gateway_loader('c', sci_gateway_dir);
10 tbx_build_gateway_clean('c', sci_gateway_dir);
11
12 clear tbx_builder_gateway_lang tbx_build_gateway_loader;
13 clear sci_gateway_dir;
+0
-130
interface/src/scilab/sci_gateway/c/builder_gateway_c.sce less more
0 // ====================================================================
1 // Copyright 2009
2 // Yann COLLETTE
3 // This file is released into the public domain
4 // ====================================================================
5
6 sci_getfem_path = get_absolute_file_path('builder_gateway_c.sce');
7 getfem_path = '/home/yrenard/goulp/source++/getfem';
8
9 // Functions extracted from getfem_interface.cc
10
11 Table = ['gf_workspace', 'sci_gf_scilab'; ...
12 'gf_delete', 'sci_gf_scilab'; ...
13 'gf_undelete', 'sci_gf_scilab'; ...
14 'gf_eltm', 'sci_gf_scilab'; ...
15 'gf_geotrans', 'sci_gf_scilab'; ...
16 'gf_geotrans_get', 'sci_gf_scilab'; ...
17 'gf_integ', 'sci_gf_scilab'; ...
18 'gf_integ_get', 'sci_gf_scilab'; ...
19 'gf_global_function', 'sci_gf_scilab'; ...
20 'gf_global_function_get', 'sci_gf_scilab'; ...
21 'gf_fem', 'sci_gf_scilab'; ...
22 'gf_fem_get', 'sci_gf_scilab'; ...
23 'gf_cvstruct_get', 'sci_gf_scilab'; ...
24 'gf_mesher_object', 'sci_gf_scilab'; ...
25 'gf_mesher_object_get', 'sci_gf_scilab'; ...
26 'gf_mesh', 'sci_gf_scilab'; ...
27 'gf_mesh_get', 'sci_gf_scilab'; ...
28 'gf_mesh_set', 'sci_gf_scilab'; ...
29 'gf_mesh_fem', 'sci_gf_scilab'; ...
30 'gf_mesh_fem_get', 'sci_gf_scilab'; ...
31 'gf_mesh_fem_set', 'sci_gf_scilab'; ...
32 'gf_mesh_im', 'sci_gf_scilab'; ...
33 'gf_mesh_im_get', 'sci_gf_scilab'; ...
34 'gf_mesh_im_set', 'sci_gf_scilab'; ...
35 'gf_mesh_im_data', 'sci_gf_scilab'; ...
36 'gf_mesh_im_data_get', 'sci_gf_scilab'; ...
37 'gf_mesh_im_data_set', 'sci_gf_scilab'; ...
38 'gf_model', 'sci_gf_scilab'; ...
39 'gf_model_get', 'sci_gf_scilab'; ...
40 'gf_model_set', 'sci_gf_scilab'; ...
41 'gf_slice', 'sci_gf_scilab'; ...
42 'gf_slice_get', 'sci_gf_scilab'; ...
43 'gf_slice_set', 'sci_gf_scilab'; ...
44 'gf_levelset', 'sci_gf_scilab'; ...
45 'gf_levelset_get', 'sci_gf_scilab'; ...
46 'gf_levelset_set', 'sci_gf_scilab'; ...
47 'gf_mesh_levelset', 'sci_gf_scilab'; ...
48 'gf_mesh_levelset_get', 'sci_gf_scilab'; ...
49 'gf_mesh_levelset_set', 'sci_gf_scilab'; ...
50 'gf_asm', 'sci_gf_scilab'; ...
51 'gf_compute', 'sci_gf_scilab'; ...
52 'gf_precond', 'sci_gf_scilab'; ...
53 'gf_precond_get', 'sci_gf_scilab'; ...
54 'gf_spmat', 'sci_gf_scilab'; ...
55 'gf_spmat_get', 'sci_gf_scilab'; ...
56 'gf_spmat_set', 'sci_gf_scilab'; ...
57 'gf_linsolve', 'sci_gf_scilab'; ...
58 'gf_util', 'sci_gf_scilab'; ...
59 'gf_exit', 'sci_gf_scilab'; ...
60 'gf_cont_struct_get', 'sci_gf_scilab'; ...
61 'gf_cont_struct', 'sci_gf_scilab'];
62
63 // Special functions added for matlab compatibility
64
65 Table = [Table; ...
66 'sp_luinc', 'sci_spluinc'; ...
67 'sp_lu', 'sci_splu'; ...
68 'sp_lusolve', 'sci_splusolve'; ...
69 'sp_cholinc', 'sci_spcholinc'; ...
70 'sp_chol', 'sci_spchol'; ...
71 'sp_chsolve', 'sci_spchsolve'; ...
72 'sp_cgne', 'sci_spcgne'; ...
73 'sp_cgs', 'sci_spcgs'; ...
74 'sp_gmres', 'sci_spgmres'; ...
75 'sp_mgcr', 'sci_spmgcr'];
76
77 Files = ['gfm_common.c','gfm_scilab.cpp','sci_spluinc.c','sci_spcholinc.c','sci_splu.c','sci_spchol.c', ...
78 'sci_cgne.c','sci_cgs.c','sci_gmres.c','sci_mgcr.c','sci_spchsolve.c','sci_splusolve.c'];
79
80 Libraries = ['../../src/c/libsp_get'];
81
82 if getos()=='Windows' then
83 getfem_path = pwd() + '\..\..\..\';
84
85 // rebuild parameters.lib
86 exec(path_builder + 'rebuild_lib_windows.sci');
87 // We need to use Visual studio 10.0
88 if win64() then
89 machine = 'X64';
90 else
91 machine = 'X86';
92 end
93 status = rebuild_lib_windows(filtersd_path,'sparse_f',machine,'10.0');
94 if ~status then
95 printf('Error: problem while rebuilding parameters.lib\n');
96 abort();
97 end
98
99 cflags = ' /I' + sci_getfem_path + ' /I' + sci_getfem_path + '/../../src/c';
100 cflags = cflags + ' /I' + getfem_path + '/interface/src/' + ' /I' + getfem_path + '/src/getfem';
101 cflags = cflags + ' /I' + SCI + '/../../include/scilab'; // For the binary distribution
102 cflags = cflags + ' /D__USE_DEPRECATED_STACK_FUNCTIONS__';
103
104 ldflags = getfem_path + 'msvc2010\Release\libgetfemint.lib ';
105 ldflags = ldflags + getfem_path + 'msvc2010\Release\libgetfem.lib ';
106 ldflags = ldflags + getfem_path + 'msvc2010\Release\superlu.lib ';
107 if (isfile(getfem_path + 'msvc2010\qhull-2011.1\lib\qhullstatic.lib')) then
108 ldflags = ldflags + getfem_path + 'msvc2010\qhull-2011.1\lib\qhullstatic.lib ';
109 end
110
111 ldflags = ldflags + ' sparse_f.lib ';
112
113 // ldflags = ldflags + ' /NODEFAULTLIB:LIBCMT';
114 else
115 cflags = ' -g -I' + sci_getfem_path + ' -I' + sci_getfem_path + ' -I' + sci_getfem_path + '/../../src/c';
116 cflags = cflags + ' -I' + getfem_path + '/interface/src/' + ' -I' + getfem_path + '/src/getfem';
117 cflags = cflags + ' -I' + SCI + '/../../include/scilab'; // For the binary distribution
118 cflags = cflags + ' -D__USE_DEPRECATED_STACK_FUNCTIONS__';
119
120 ldflags = sci_getfem_path + '/../../../.libs/libgetfemint.a ' + sci_getfem_path + '/../../../../../src/.libs/libgetfem.a';
121 end
122
123 if ~isempty('-lqhull') & getos()~='Windows' then
124 ldflags = ldflags + ' -L/usr/lib -lqhull';
125 end
126
127 tbx_build_gateway('scigetfem_c', Table, Files, sci_getfem_path, Libraries, ldflags, cflags);
128
129 clear tbx_build_gateway;
+0
-130
interface/src/scilab/sci_gateway/c/builder_gateway_c.sce.in less more
0 // ====================================================================
1 // Copyright 2009
2 // Yann COLLETTE
3 // This file is released into the public domain
4 // ====================================================================
5
6 sci_getfem_path = get_absolute_file_path('builder_gateway_c.sce');
7 getfem_path = '@GETFEM_INTERFACE_PATH@';
8
9 // Functions extracted from getfem_interface.cc
10
11 Table = ['gf_workspace', 'sci_gf_scilab'; ...
12 'gf_delete', 'sci_gf_scilab'; ...
13 'gf_undelete', 'sci_gf_scilab'; ...
14 'gf_eltm', 'sci_gf_scilab'; ...
15 'gf_geotrans', 'sci_gf_scilab'; ...
16 'gf_geotrans_get', 'sci_gf_scilab'; ...
17 'gf_integ', 'sci_gf_scilab'; ...
18 'gf_integ_get', 'sci_gf_scilab'; ...
19 'gf_global_function', 'sci_gf_scilab'; ...
20 'gf_global_function_get', 'sci_gf_scilab'; ...
21 'gf_fem', 'sci_gf_scilab'; ...
22 'gf_fem_get', 'sci_gf_scilab'; ...
23 'gf_cvstruct_get', 'sci_gf_scilab'; ...
24 'gf_mesher_object', 'sci_gf_scilab'; ...
25 'gf_mesher_object_get', 'sci_gf_scilab'; ...
26 'gf_mesh', 'sci_gf_scilab'; ...
27 'gf_mesh_get', 'sci_gf_scilab'; ...
28 'gf_mesh_set', 'sci_gf_scilab'; ...
29 'gf_mesh_fem', 'sci_gf_scilab'; ...
30 'gf_mesh_fem_get', 'sci_gf_scilab'; ...
31 'gf_mesh_fem_set', 'sci_gf_scilab'; ...
32 'gf_mesh_im', 'sci_gf_scilab'; ...
33 'gf_mesh_im_get', 'sci_gf_scilab'; ...
34 'gf_mesh_im_set', 'sci_gf_scilab'; ...
35 'gf_mesh_im_data', 'sci_gf_scilab'; ...
36 'gf_mesh_im_data_get', 'sci_gf_scilab'; ...
37 'gf_mesh_im_data_set', 'sci_gf_scilab'; ...
38 'gf_model', 'sci_gf_scilab'; ...
39 'gf_model_get', 'sci_gf_scilab'; ...
40 'gf_model_set', 'sci_gf_scilab'; ...
41 'gf_slice', 'sci_gf_scilab'; ...
42 'gf_slice_get', 'sci_gf_scilab'; ...
43 'gf_slice_set', 'sci_gf_scilab'; ...
44 'gf_levelset', 'sci_gf_scilab'; ...
45 'gf_levelset_get', 'sci_gf_scilab'; ...
46 'gf_levelset_set', 'sci_gf_scilab'; ...
47 'gf_mesh_levelset', 'sci_gf_scilab'; ...
48 'gf_mesh_levelset_get', 'sci_gf_scilab'; ...
49 'gf_mesh_levelset_set', 'sci_gf_scilab'; ...
50 'gf_asm', 'sci_gf_scilab'; ...
51 'gf_compute', 'sci_gf_scilab'; ...
52 'gf_precond', 'sci_gf_scilab'; ...
53 'gf_precond_get', 'sci_gf_scilab'; ...
54 'gf_spmat', 'sci_gf_scilab'; ...
55 'gf_spmat_get', 'sci_gf_scilab'; ...
56 'gf_spmat_set', 'sci_gf_scilab'; ...
57 'gf_linsolve', 'sci_gf_scilab'; ...
58 'gf_util', 'sci_gf_scilab'; ...
59 'gf_exit', 'sci_gf_scilab'; ...
60 'gf_cont_struct_get', 'sci_gf_scilab'; ...
61 'gf_cont_struct', 'sci_gf_scilab'];
62
63 // Special functions added for matlab compatibility
64
65 Table = [Table; ...
66 'sp_luinc', 'sci_spluinc'; ...
67 'sp_lu', 'sci_splu'; ...
68 'sp_lusolve', 'sci_splusolve'; ...
69 'sp_cholinc', 'sci_spcholinc'; ...
70 'sp_chol', 'sci_spchol'; ...
71 'sp_chsolve', 'sci_spchsolve'; ...
72 'sp_cgne', 'sci_spcgne'; ...
73 'sp_cgs', 'sci_spcgs'; ...
74 'sp_gmres', 'sci_spgmres'; ...
75 'sp_mgcr', 'sci_spmgcr'];
76
77 Files = ['gfm_common.c','gfm_scilab.cpp','sci_spluinc.c','sci_spcholinc.c','sci_splu.c','sci_spchol.c', ...
78 'sci_cgne.c','sci_cgs.c','sci_gmres.c','sci_mgcr.c','sci_spchsolve.c','sci_splusolve.c'];
79
80 Libraries = ['../../src/c/libsp_get'];
81
82 if getos()=='Windows' then
83 getfem_path = pwd() + '\..\..\..\';
84
85 // rebuild parameters.lib
86 exec(path_builder + 'rebuild_lib_windows.sci');
87 // We need to use Visual studio 10.0
88 if win64() then
89 machine = 'X64';
90 else
91 machine = 'X86';
92 end
93 status = rebuild_lib_windows(filtersd_path,'sparse_f',machine,'10.0');
94 if ~status then
95 printf('Error: problem while rebuilding parameters.lib\n');
96 abort();
97 end
98
99 cflags = ' /I' + sci_getfem_path + ' /I' + sci_getfem_path + '/../../src/c';
100 cflags = cflags + ' /I' + getfem_path + '/interface/src/' + ' /I' + getfem_path + '/src/getfem';
101 cflags = cflags + ' /I' + SCI + '/../../include/scilab'; // For the binary distribution
102 cflags = cflags + ' /D__USE_DEPRECATED_STACK_FUNCTIONS__';
103
104 ldflags = getfem_path + 'msvc2010\Release\libgetfemint.lib ';
105 ldflags = ldflags + getfem_path + 'msvc2010\Release\libgetfem.lib ';
106 ldflags = ldflags + getfem_path + 'msvc2010\Release\superlu.lib ';
107 if (isfile(getfem_path + 'msvc2010\qhull-2011.1\lib\qhullstatic.lib')) then
108 ldflags = ldflags + getfem_path + 'msvc2010\qhull-2011.1\lib\qhullstatic.lib ';
109 end
110
111 ldflags = ldflags + ' sparse_f.lib ';
112
113 // ldflags = ldflags + ' /NODEFAULTLIB:LIBCMT';
114 else
115 cflags = ' -g -I' + sci_getfem_path + ' -I' + sci_getfem_path + ' -I' + sci_getfem_path + '/../../src/c';
116 cflags = cflags + ' -I' + getfem_path + '/interface/src/' + ' -I' + getfem_path + '/src/getfem';
117 cflags = cflags + ' -I' + SCI + '/../../include/scilab'; // For the binary distribution
118 cflags = cflags + ' -D__USE_DEPRECATED_STACK_FUNCTIONS__';
119
120 ldflags = sci_getfem_path + '/../../../.libs/libgetfemint.a ' + sci_getfem_path + '/../../../../../src/.libs/libgetfem.a';
121 end
122
123 if ~isempty('@QHULL_LIBS@') & getos()~='Windows' then
124 ldflags = ldflags + ' -L/usr/lib @QHULL_LIBS@';
125 end
126
127 tbx_build_gateway('scigetfem_c', Table, Files, sci_getfem_path, Libraries, ldflags, cflags);
128
129 clear tbx_build_gateway;
+0
-22
interface/src/scilab/sci_gateway/c/cleaner.sce less more
0 // This file is released under the 3-clause BSD license. See COPYING-BSD.
1 // Generated by builder.sce : Please, do not edit this file
2 // cleaner.sce
3 // ------------------------------------------------------
4 curdir = pwd();
5 cleaner_path = get_file_path('cleaner.sce');
6 chdir(cleaner_path);
7 // ------------------------------------------------------
8 if fileinfo('loader.sce') <> [] then
9 mdelete('loader.sce');
10 end
11 // ------------------------------------------------------
12 if fileinfo('libscigetfem_c.so') <> [] then
13 mdelete('libscigetfem_c.so');
14 end
15 // ------------------------------------------------------
16 if fileinfo('libscigetfem_c.c') <> [] then
17 mdelete('libscigetfem_c.c');
18 end
19 // ------------------------------------------------------
20 chdir(curdir);
21 // ------------------------------------------------------
+0
-1437
interface/src/scilab/sci_gateway/c/gfm_common.c less more
0 /*===========================================================================
1
2 Copyright (C) 2009-2015 Yann Collette
3
4 This file is a part of GetFEM++
5
6 GetFEM++ is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version along with the GCC Runtime Library
10 Exception either version 3.1 or (at your option) any later version.
11 This program is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License and GCC Runtime Library Exception for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program; if not, write to the Free Software Foundation,
17 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
18
19 ===========================================================================*/
20
21 #include <assert.h>
22 #include <signal.h>
23 #include <string.h>
24 #include <stdio.h>
25
26 #include <stack-c.h>
27 #include <Scierror.h>
28 #include <sciprint.h>
29 #include <MALLOC.h>
30 #include <api_scilab.h>
31
32 #include "gfm_common.h"
33
34 //#define DEBUG
35
36 // The spt function is a fortran Scilab function which transpose a sparse matrix
37 // This function is used to convert a matlab sparse format into a scilab sparse format
38
39 #define USE_SPT
40
41 // a function to transpose a sparse matrix. From modules/sparse/src/fortran
42 extern void C2F(spt)(int * m, int * n, int * nel, int * it, int * ptr, double * A_R, double * A_I,
43 int * A_mnel, int * A_icol, double * At_R, double * At_I, int * At_mnel, int * At_icol);
44
45
46 const char * sci_ClassID2string(sci_types id)
47 {
48 switch (id)
49 {
50 case sci_matrix: return "MATRIX";
51 case sci_poly: return "POLY";
52 case sci_boolean: return "BOOLEAN";
53 case sci_boolean_sparse: return "BOOLEAN_SPARSE";
54 case sci_matlab_sparse: return "MATLAB_SPARSE";
55 case sci_ints: return "INTS";
56 case sci_handles: return "HANDLES";
57 case sci_strings: return "STRINGS";
58 case sci_u_function: return "U_FUNCTION";
59 case sci_c_function: return "C_FUNCTION";
60 case sci_lib: return "LIB";
61 case sci_list: return "LIST";
62 case sci_mlist: return "MLIST";
63 case sci_tlist: return "TLIST";
64 case sci_lufact_pointer: return "LUFACT_POINTER";
65 case sci_implicit_poly: return "IMPLICIT_POLY";
66 case sci_intrinsic_function: return "INTRINSIC_FUNCTION";
67 default:
68 return "unknown class: did you use the correct scilab version ?";
69 }
70 }
71
72 #define CHECK_ERROR_API_SCILAB if(_SciErr.iErr) \
73 { \
74 printError(&_SciErr, 0); \
75 return 0; \
76 }
77
78 int sci_array_to_gfi_array(int * sci_x, gfi_array *t)
79 {
80 SciErr _SciErr;
81 int i, n = 0, var_type = 0;
82 int * item_address = NULL;
83 int pirow, picol, *pilen = NULL, *pilistaddress, size_pistring = 0, nbitem;
84 int * nbitemrow = NULL, * picolpos = NULL;
85 char ** pstStrings = NULL, ** pstData = NULL;
86 double * pdblDataID = NULL, * pdblDataCID = NULL;
87 int * pintDims = NULL, * ptr = NULL;
88 double * pdblDims = NULL, * pdblDataReal = NULL, * pdblDataImag = NULL;
89 int piPrecision, * p_item_address = NULL;
90 int * piData32 = NULL, * piBool = NULL;
91 unsigned int * puiData32 = NULL;
92 int is_complex;
93 int tmp_cnt, tmp_cnt2;
94 double * tmp_dblDataReal = NULL, * tmp_dblDataImag = NULL;
95
96 #ifdef DEBUG
97 int _picol, _pirow;
98 _SciErr = getVarDimension(sci_x,&_pirow,&_picol); CHECK_ERROR_API_SCILAB;
99 _SciErr = getVarType(sci_x,&var_type); CHECK_ERROR_API_SCILAB;
100
101 sciprint("sci_array_to_gfi_array: dimension of current variable %d %d - type = %d\n",_pirow,_picol,var_type);
102 #endif
103
104 assert(t);
105
106 _SciErr = getVarType(pvApiCtx,sci_x,&var_type); CHECK_ERROR_API_SCILAB;
107
108 switch (var_type)
109 {
110 case sci_list:
111 {
112 #ifdef DEBUG
113 sciprint("sci_array_to_gfi_array: dealing with sci_list\n");
114 #endif
115
116 _SciErr = getListItemNumber(pvApiCtx,sci_x,&n); CHECK_ERROR_API_SCILAB;
117
118 t->storage.type = GFI_CELL;
119 t->storage.gfi_storage_u.data_cell.data_cell_len = n;
120 t->storage.gfi_storage_u.data_cell.data_cell_val = (gfi_array**)MALLOC(n*sizeof(gfi_array*));
121
122 for(i=0; i<n; ++i)
123 {
124 t->storage.gfi_storage_u.data_cell.data_cell_val[i] = MALLOC(1*sizeof(gfi_array));
125 _SciErr = getListItemAddress(pvApiCtx,sci_x,i+1,&item_address); CHECK_ERROR_API_SCILAB;
126 #ifdef DEBUG
127 _SciErr = getVarType(pvApiCtx,item_address,&var_type); CHECK_ERROR_API_SCILAB;
128 sciprint("type of item %d: %d\n", i+1, var_type);
129 #endif
130 if (sci_array_to_gfi_array(item_address, t->storage.gfi_storage_u.data_cell.data_cell_val[i]) != 0) return 1;
131 }
132
133 t->dim.dim_len = 1;
134 t->dim.dim_val = (u_int*)MALLOC(1*sizeof(u_int));
135 t->dim.dim_val[0] = n;
136 #ifdef DEBUG
137 sciprint("sci_array_to_gfi_array: end\n");
138 #endif
139 }
140 break;
141 case sci_mlist:
142 {
143 #ifdef DEBUG
144 sciprint("sci_array_to_gfi_array: dealing with mlist\n");
145 #endif
146
147 _SciErr = getListItemNumber(pvApiCtx,sci_x,&n); CHECK_ERROR_API_SCILAB;
148 _SciErr = getMatrixOfStringInList(pvApiCtx,sci_x,1,&pirow,&picol,NULL,NULL); CHECK_ERROR_API_SCILAB;
149 pilen = (int *)MALLOC(pirow*picol*sizeof(int));
150 _SciErr= getMatrixOfStringInList(pvApiCtx,sci_x,1,&pirow,&picol,pilen,NULL); CHECK_ERROR_API_SCILAB;
151 pstStrings = (char **)MALLOC(pirow*picol*sizeof(char *));
152 for(i=0;i<pirow*picol;i++)
153 {
154 pstStrings[i] = (char *)MALLOC((pilen[i]+1)*sizeof(char));
155 }
156 _SciErr = getMatrixOfStringInList(pvApiCtx,sci_x,1,&pirow,&picol,pilen,pstStrings); CHECK_ERROR_API_SCILAB;
157 size_pistring = pirow*picol;
158
159 #ifdef DEBUG
160 sciprint("sci_array_to_gfi_array: pstStrings[0] = %s\n",pstStrings[0]);
161 #endif
162
163 if (strcmp(pstStrings[0],"objid")==0)
164 {
165 #ifdef DEBUG
166 sciprint("sci_array_to_gfi_array: dealing with objid\n");
167 #endif
168 t->storage.type = GFI_OBJID;
169
170 _SciErr = getMatrixOfDoubleInList(pvApiCtx, sci_x, 2, &pirow, &picol, &pdblDataID); CHECK_ERROR_API_SCILAB;
171 _SciErr = getMatrixOfDoubleInList(pvApiCtx, sci_x, 3, &pirow, &picol, &pdblDataCID); CHECK_ERROR_API_SCILAB;
172
173 #ifdef DEBUG
174 sciprint("sci_array_to_gfi_array: pirow = %d picol = %d\n", pirow, picol);
175 #endif
176
177 n = pirow*picol;
178
179 t->storage.gfi_storage_u.objid.objid_len = n;
180 t->storage.gfi_storage_u.objid.objid_val = (struct gfi_object_id *)MALLOC(n*sizeof(struct gfi_object_id));
181
182 for(i=0;i<n;i++)
183 {
184 t->storage.gfi_storage_u.objid.objid_val[i].id = (int)pdblDataID[i];
185 t->storage.gfi_storage_u.objid.objid_val[i].cid = (int)pdblDataCID[i];
186 #ifdef DEBUG
187 sciprint("sci_array_to_gfi_array: objid[%d]: id = %d cid = %d\n", i, (int)pdblDataID[i], (int)pdblDataCID[i]);
188 #endif
189 }
190
191 t->dim.dim_len = 1;
192 t->dim.dim_val = (u_int*)MALLOC(1*sizeof(u_int));
193 t->dim.dim_val[0] = n;
194 }
195 else if (strcmp(pstStrings[0],"hm")==0)
196 {
197 #ifdef DEBUG
198 sciprint("sci_array_to_gfi_array: dealing with hypermat\n");
199 #endif
200
201 // Get the dimensions
202 _SciErr = getListItemAddress(pvApiCtx,sci_x,2,&p_item_address); CHECK_ERROR_API_SCILAB;
203 _SciErr = getVarType(pvApiCtx,p_item_address,&var_type); CHECK_ERROR_API_SCILAB
204
205 switch(var_type)
206 {
207 case sci_matrix:
208 _SciErr = getMatrixOfDoubleInList(pvApiCtx,sci_x, 2, &pirow, &picol, &pdblDims); CHECK_ERROR_API_SCILAB;
209 t->dim.dim_len = pirow*picol;
210 t->dim.dim_val = (u_int*)MALLOC(pirow*picol*sizeof(u_int));
211 for(i=0;i<pirow*picol;i++) t->dim.dim_val[i] = (u_int)pdblDims[i];
212 break;
213 case sci_ints:
214 _SciErr = getMatrixOfInteger32InList(pvApiCtx,sci_x, 2, &pirow, &picol, &pintDims); CHECK_ERROR_API_SCILAB;
215 t->dim.dim_len = pirow*picol;
216 t->dim.dim_val = (u_int*)MALLOC(pirow*picol*sizeof(u_int));
217 for(i=0;i<pirow*picol;i++) t->dim.dim_val[i] = (u_int)pintDims[i];
218 break;
219 default:
220 _SciErr = getVarType(pvApiCtx,p_item_address,&var_type); CHECK_ERROR_API_SCILAB;
221 Scierror(999,"wrong type for hypermatrix dimensions type: %d\n", var_type);
222 return 1;
223 }
224 // Get the matrixes (stored as a column vector of size prod(size(...)))
225 // We must detect if we have a INT UINT or DOUBLE
226
227 _SciErr = getListItemAddress(pvApiCtx, sci_x, 3, &pilistaddress); CHECK_ERROR_API_SCILAB;
228 _SciErr = getVarType(pvApiCtx,pilistaddress,&var_type); CHECK_ERROR_API_SCILAB;
229
230 if (var_type==sci_matrix)
231 {
232 if (isVarComplex(pvApiCtx,pilistaddress))
233 {
234 t->storage.type = GFI_DOUBLE;
235 _SciErr = getComplexMatrixOfDoubleInList(pvApiCtx, sci_x, 3, &pirow, &picol, &pdblDataID, &pdblDataCID); CHECK_ERROR_API_SCILAB;
236
237 t->storage.gfi_storage_u.data_double.is_complex = GFI_COMPLEX;
238
239 t->storage.gfi_storage_u.data_double.data_double_len = 2*pirow*picol;
240 t->storage.gfi_storage_u.data_double.data_double_val = (double *)MALLOC(2*pirow*picol*sizeof(double));
241 for(i=0;i<pirow*picol;++i)
242 {
243 t->storage.gfi_storage_u.data_double.data_double_val[2*i+0] = pdblDataID[i];
244 t->storage.gfi_storage_u.data_double.data_double_val[2*i+1] = pdblDataCID[i];
245 }
246 }
247 else
248 {
249 t->storage.type = GFI_DOUBLE;
250 _SciErr = getMatrixOfDoubleInList(pvApiCtx, sci_x, 3, &pirow, &picol, &pdblDataID); CHECK_ERROR_API_SCILAB;
251
252 t->storage.gfi_storage_u.data_double.is_complex = GFI_REAL;
253
254 t->storage.gfi_storage_u.data_double.data_double_len = pirow*picol;
255 t->storage.gfi_storage_u.data_double.data_double_val = (double *)MALLOC(pirow*picol*sizeof(double));
256 for(i=0;i<pirow*picol;++i) t->storage.gfi_storage_u.data_double.data_double_val[i] = pdblDataID[i];
257 }
258 }
259 else if (var_type==sci_ints)
260 {
261 _SciErr = getMatrixOfIntegerPrecision(pvApiCtx,sci_x,&piPrecision); CHECK_ERROR_API_SCILAB;
262 if ((piPrecision!=SCI_INT32)&&(piPrecision!=SCI_UINT32))
263 {
264 Scierror(999,"Can deal only with int32 or uint32\n");
265 return 1;
266 }
267
268 if (piPrecision==SCI_INT32)
269 {
270 t->storage.type = GFI_INT32;
271 _SciErr = getMatrixOfInteger32(pvApiCtx,sci_x,&pirow,&picol,&piData32); CHECK_ERROR_API_SCILAB;
272
273 t->storage.gfi_storage_u.data_int32.data_int32_len = pirow*picol;
274 t->storage.gfi_storage_u.data_int32.data_int32_val = (int *)MALLOC(pirow*picol*sizeof(int));
275 for(i=0;i<pirow*picol;++i) t->storage.gfi_storage_u.data_int32.data_int32_val[i] = piData32[i];
276 }
277 else if (piPrecision==SCI_UINT32)
278 {
279 t->storage.type = GFI_UINT32;
280 _SciErr = getMatrixOfUnsignedInteger32(pvApiCtx,sci_x,&pirow,&picol,&puiData32); CHECK_ERROR_API_SCILAB;
281
282 t->storage.gfi_storage_u.data_uint32.data_uint32_len = pirow*picol;
283 t->storage.gfi_storage_u.data_uint32.data_uint32_val = (unsigned int *)MALLOC(pirow*picol*sizeof(unsigned int));
284 for(i=0;i<pirow*picol;++i) t->storage.gfi_storage_u.data_uint32.data_uint32_val[i] = puiData32[i];
285 }
286 else
287 {
288 Scierror(999,"Can deal only with int32 or uint32\n");
289 return 1;
290 }
291 }
292 else
293 {
294 Scierror(999,"Can deal only with double, int32 or uint32\n");
295 return 1;
296 }
297 }
298 #ifdef DEBUG
299 sciprint("sci_array_to_gfi_array: end\n");
300 #endif
301 // Free the allocated memory
302 for(i=0;i<size_pistring;i++)
303 {
304 if (pstStrings[i]) FREE(pstStrings[i]);
305 }
306 if (pstStrings) FREE(pstStrings);
307 if (pilen) FREE(pilen);
308 }
309 break;
310 case sci_strings:
311 {
312 #ifdef DEBUG
313 sciprint("sci_array_to_gfi_array: dealing with sci_strings\n");
314 #endif
315
316 t->storage.type = GFI_CHAR;
317
318 // First call to get picol and pirow
319 _SciErr = getMatrixOfString(pvApiCtx,sci_x, &pirow, &picol, NULL, NULL); CHECK_ERROR_API_SCILAB;
320 if ((pirow!=1)&&(picol!=1))
321 {
322 Scierror(999,"Can allocate only one string at a time\n");
323 return 1;
324 }
325 pilen = (int *)MALLOC(pirow*picol*sizeof(int));
326
327 // Second call to get pilen
328 _SciErr = getMatrixOfString(pvApiCtx,sci_x, &pirow, &picol, pilen, NULL); CHECK_ERROR_API_SCILAB;
329 pstData = (char **)MALLOC(pirow*picol*sizeof(char*));
330 for(i=0; i<pirow*picol ; i++) pstData[i] = (char *)MALLOC((pilen[i] + 1)*sizeof(char));
331
332 n = pilen[0] + 1;
333 t->storage.gfi_storage_u.data_char.data_char_len = n;
334 t->storage.gfi_storage_u.data_char.data_char_val = MALLOC((n)*sizeof(char));
335
336 // Third call to retrieve data
337 _SciErr = getMatrixOfString(pvApiCtx,sci_x, &pirow, &picol, pilen, pstData); CHECK_ERROR_API_SCILAB;
338 memcpy(t->storage.gfi_storage_u.data_char.data_char_val,pstData[0],(pilen[0] + 1)*sizeof(char));
339 #ifdef DEBUG
340 sciprint("pirow = %d picol = %d pilen = %d\n", pirow, picol, pilen[0]);
341 sciprint("storing |%s|\n",t->storage.gfi_storage_u.data_char.data_char_val);
342 #endif
343 t->dim.dim_len = 1;
344 t->dim.dim_val = (u_int*)MALLOC(1*sizeof(u_int));
345 t->dim.dim_val[0] = pilen[0];
346
347 for(i=0; i<pirow*picol ; i++)
348 if (pstData[i]) FREE(pstData[i]);
349 if (pstData) FREE(pstData);
350 if (pilen) FREE(pilen);
351
352 #ifdef DEBUG
353 sciprint("sci_array_to_gfi_array: end\n");
354 #endif
355 }
356 break;
357 case sci_ints:
358 {
359 #ifdef DEBUG
360 sciprint("sci_array_to_gfi_array: dealing with sci_ints\n");
361 #endif
362
363 _SciErr = getMatrixOfIntegerPrecision(pvApiCtx,sci_x,&piPrecision); CHECK_ERROR_API_SCILAB;
364 #ifdef DEBUG
365 sciprint("sci_array_to_gfi_array: precision = %d\n",piPrecision);
366 #endif
367 if ((piPrecision!=SCI_INT32)&&(piPrecision!=SCI_UINT32))
368 {
369 Scierror(999,"Can deal only with int32 or uint32\n");
370 return 1;
371 }
372
373 if (piPrecision==SCI_INT32)
374 {
375 t->storage.type = GFI_INT32;
376
377 _SciErr = getMatrixOfInteger32(pvApiCtx,sci_x,&pirow,&picol,&piData32); CHECK_ERROR_API_SCILAB;
378 #ifdef DEBUG
379 sciprint("DEBUG: %d dimensions - dim[0] = %d, dim[1] = %d\n", n, pirow, picol);
380 #endif
381 n = picol*pirow;
382 t->storage.gfi_storage_u.data_int32.data_int32_len = n;
383 t->storage.gfi_storage_u.data_int32.data_int32_val = (int *)MALLOC(n*sizeof(int));
384 for(i=0;i<n;++i)
385 {
386 t->storage.gfi_storage_u.data_int32.data_int32_val[i] = piData32[i];
387 }
388
389 t->dim.dim_len = 2;
390 t->dim.dim_val = (u_int*)MALLOC(2*sizeof(u_int));
391 t->dim.dim_val[0]= pirow;
392 t->dim.dim_val[1]= picol;
393 }
394 else
395 {
396 t->storage.type = GFI_UINT32;
397
398 _SciErr = getMatrixOfUnsignedInteger32(pvApiCtx,sci_x,&pirow,&picol,&puiData32); CHECK_ERROR_API_SCILAB;
399
400 n = picol*pirow;
401 t->storage.gfi_storage_u.data_uint32.data_uint32_len = n;
402 t->storage.gfi_storage_u.data_uint32.data_uint32_val = (unsigned int *)MALLOC(n*sizeof(unsigned int));
403 for(i=0;i<n;++i)
404 {
405 t->storage.gfi_storage_u.data_uint32.data_uint32_val[i] = puiData32[i];
406 }
407
408 t->dim.dim_len = 2;
409 t->dim.dim_val = (u_int*)MALLOC(2*sizeof(u_int));
410 t->dim.dim_val[0]= pirow;
411 t->dim.dim_val[1]= picol;
412 }
413 #ifdef DEBUG
414 sciprint("sci_array_to_gfi_array: end\n");
415 #endif
416 }
417 break;
418 case sci_boolean:
419 {
420 #ifdef DEBUG
421 sciprint("sci_array_to_gfi_array: dealing with sci_boolean\n");
422 #endif
423
424 t->storage.type = GFI_INT32;
425
426 _SciErr = getMatrixOfBoolean(pvApiCtx,sci_x,&pirow,&picol,&piBool); CHECK_ERROR_API_SCILAB;
427
428 n = picol*pirow;
429
430 t->storage.gfi_storage_u.data_int32.data_int32_len = n;
431 t->storage.gfi_storage_u.data_int32.data_int32_val = (int *)MALLOC(n*sizeof(int));
432 for(i=0;i<n;++i)
433 {
434 t->storage.gfi_storage_u.data_int32.data_int32_val[i] = piBool[i];
435 }
436
437 t->dim.dim_len = 2;
438 t->dim.dim_val = (u_int*)MALLOC(2*sizeof(u_int));
439 t->dim.dim_val[0]= pirow;
440 t->dim.dim_val[1]= picol;
441 #ifdef DEBUG
442 sciprint("sci_array_to_gfi_array: end\n");
443 #endif
444 }
445 break;
446 case sci_matrix:
447 {
448 #ifdef DEBUG
449 sciprint("sci_array_to_gfi_array: dealing with sci_matrix\n");
450 #endif
451 is_complex = isVarComplex(pvApiCtx,sci_x);
452
453 t->storage.type = GFI_DOUBLE;
454 t->storage.gfi_storage_u.data_double.is_complex = is_complex;
455
456 if (!is_complex)
457 {
458 _SciErr = getMatrixOfDouble(pvApiCtx,sci_x,&pirow,&picol,&pdblDataReal); CHECK_ERROR_API_SCILAB;
459
460 n = pirow*picol;
461
462 t->storage.gfi_storage_u.data_double.is_complex = GFI_REAL;
463 t->storage.gfi_storage_u.data_double.data_double_len = n;
464 t->storage.gfi_storage_u.data_double.data_double_val = (double *)MALLOC(n*sizeof(double));
465 for(i=0;i<n;++i)
466 {
467 t->storage.gfi_storage_u.data_double.data_double_val[i] = pdblDataReal[i];
468 }
469 }
470 else
471 {
472 _SciErr = getComplexMatrixOfDouble(pvApiCtx,sci_x,&pirow,&picol,&pdblDataReal,&pdblDataImag); CHECK_ERROR_API_SCILAB;
473
474 n = pirow*picol;
475
476 t->storage.gfi_storage_u.data_double.is_complex = GFI_COMPLEX;
477 t->storage.gfi_storage_u.data_double.data_double_len = 2*n;
478 t->storage.gfi_storage_u.data_double.data_double_val = (double *)MALLOC(2*n*sizeof(double));
479
480 for(i=0;i<n;++i)
481 {
482 t->storage.gfi_storage_u.data_double.data_double_val[i*2] = pdblDataReal[i];
483 t->storage.gfi_storage_u.data_double.data_double_val[i*2+1] = pdblDataImag[i];
484 }
485 }
486
487 t->dim.dim_len = 2;
488 t->dim.dim_val = (u_int*)MALLOC(2*sizeof(u_int));
489 t->dim.dim_val[0]= pirow;
490 t->dim.dim_val[1]= picol;
491 #ifdef DEBUG
492 sciprint("sci_array_to_gfi_array: end\n");
493 #endif
494 }
495 break;
496 case sci_sparse:
497 {
498 #ifdef DEBUG
499 sciprint("sci_array_to_gfi_array: dealing with sci_sparse\n");
500 #endif
501 is_complex = isVarComplex(pvApiCtx,sci_x);
502
503 t->storage.type = GFI_SPARSE;
504 t->storage.gfi_storage_u.sp.is_complex = is_complex;
505
506 if (!is_complex)
507 {
508 #ifdef DEBUG
509 sciprint("sci_array_to_gfi_array: not complex\n");
510 #endif
511 _SciErr = getSparseMatrix(pvApiCtx,sci_x,&pirow,&picol,&nbitem,&nbitemrow,&picolpos,&pdblDataReal); CHECK_ERROR_API_SCILAB;
512
513 #ifdef DEBUG
514 for(i=0;i<pirow;i++) sciprint("nbitemrow[%d] = %d\n", i, nbitemrow[i]);
515 for(i=0;i<nbitem;i++) sciprint("picolpos[%d] = %d, pdblDataReal[%d] = %f\n",i,picolpos[i],i,pdblDataReal[i]);
516 #endif
517
518 t->storage.gfi_storage_u.sp.is_complex = GFI_REAL;
519
520 t->storage.gfi_storage_u.sp.ir.ir_len = nbitem;
521 t->storage.gfi_storage_u.sp.jc.jc_len = picol+1;
522 t->storage.gfi_storage_u.sp.pr.pr_len = nbitem;
523
524 t->storage.gfi_storage_u.sp.ir.ir_val = (int *)MALLOC(nbitem*sizeof(int));
525 t->storage.gfi_storage_u.sp.jc.jc_val = (int *)MALLOC((picol+1)*sizeof(int));
526 t->storage.gfi_storage_u.sp.pr.pr_val = (double *)MALLOC(nbitem*sizeof(double));
527
528 #ifdef USE_SPT
529 // We use the spt function to transpose the matlab sparse matrix and so to ease the conversion
530 // to the scilab sparse model.
531 // There is a memory overhead:
532 // picol integers allocated in the real case
533 // picol integers + 2*nbitem doubles allocated in the complex case
534
535 ptr = (int *)MALLOC(picol*sizeof(int));
536
537 #ifdef DEBUG
538 sciprint("DEBUG: pirow = %d picol = %d nbitem = %d - real case\n", pirow, picol, nbitem);
539 #endif
540
541 C2F(spt)(&pirow, &picol, &nbitem, &is_complex, ptr, pdblDataReal, NULL,
542 nbitemrow, picolpos,
543 t->storage.gfi_storage_u.sp.pr.pr_val,
544 NULL,
545 t->storage.gfi_storage_u.sp.jc.jc_val,
546 t->storage.gfi_storage_u.sp.ir.ir_val);
547
548 // We compute position offset
549 tmp_cnt = t->storage.gfi_storage_u.sp.jc.jc_val[0];
550 t->storage.gfi_storage_u.sp.jc.jc_val[0] = 0;
551 for(i=1;i<picol;i++)
552 {
553 tmp_cnt2 = t->storage.gfi_storage_u.sp.jc.jc_val[i];
554 t->storage.gfi_storage_u.sp.jc.jc_val[i] = t->storage.gfi_storage_u.sp.jc.jc_val[i-1] + tmp_cnt;
555 tmp_cnt = tmp_cnt2;
556 }
557 t->storage.gfi_storage_u.sp.jc.jc_val[picol] = nbitem;
558
559 for(i=0;i<nbitem;i++)
560 {
561 t->storage.gfi_storage_u.sp.ir.ir_val[i]--;
562 }
563
564 if (ptr) FREE(ptr);
565 #else
566 offset = (int *)MALLOC(pirow*sizeof(int));
567
568 // We compute position offset
569 offset[0] = 0;
570 for(i=1;i<pirow;i++)
571 {
572 offset[i] = offset[i-1] + nbitemrow[i-1];
573 #ifdef DEBUG
574 sciprint("offset[%d] = %d\n", i, offset[i]);
575 #endif
576 }
577
578 Index = 0;
579 for(i=0;i<picol;i++)
580 {
581 t->storage.gfi_storage_u.sp.jc.jc_val[i] = Index;
582 for(j=0;j<pirow;j++)
583 {
584 for(k=0;k<nbitemrow[j];k++)
585 {
586 if (i==picolpos[offset[j]+k]-1)
587 {
588 t->storage.gfi_storage_u.sp.ir.ir_val[Index] = j;
589 t->storage.gfi_storage_u.sp.pr.pr_val[Index] = pdblDataReal[offset[j]+k];
590 #ifdef DEBUG
591 sciprint("Index = %d offset[%d] = %d, k = %d, pdblDataReal[%d] = %f\n", Index, j, offset[j], k, offset[j]+k, pdblDataReal[offset[j]+k]);
592 #endif
593 Index++;
594 }
595 }
596 }
597 }
598 t->storage.gfi_storage_u.sp.jc.jc_val[picol] = nbitem;
599
600 if (offset) FREE(offset);
601 #endif
602 }
603 else
604 {
605 #ifdef DEBUG
606 sciprint("sci_array_to_gfi_array: complex\n");
607 #endif
608 _SciErr = getComplexSparseMatrix(pvApiCtx,sci_x,&pirow,&picol,&nbitem,&nbitemrow,&picolpos,&pdblDataReal,&pdblDataImag); CHECK_ERROR_API_SCILAB;
609
610 // We store the transposed matrix in t
611 t->storage.gfi_storage_u.sp.is_complex = GFI_COMPLEX;
612
613 t->storage.gfi_storage_u.sp.ir.ir_len = nbitem;
614 t->storage.gfi_storage_u.sp.jc.jc_len = picol+1;
615 t->storage.gfi_storage_u.sp.pr.pr_len = 2*nbitem;
616
617 t->storage.gfi_storage_u.sp.ir.ir_val = (int *)MALLOC(nbitem*sizeof(int));
618 t->storage.gfi_storage_u.sp.jc.jc_val = (int *)MALLOC((picol+1)*sizeof(int));
619 t->storage.gfi_storage_u.sp.pr.pr_val = (double *)MALLOC(2*nbitem*sizeof(double));
620
621 #ifdef USE_SPT
622 sciprint("DEBUG: testing the new method - complex\n");
623
624 ptr = (int *)MALLOC(picol*sizeof(int));
625 tmp_dblDataReal = (double *)MALLOC(nbitem*sizeof(double));
626 tmp_dblDataImag = (double *)MALLOC(nbitem*sizeof(double));
627
628 sciprint("pirow = %d picol = %d nbitem = %d\n", pirow, picol, nbitem);
629
630 C2F(spt)(&pirow, &picol, &nbitem, &is_complex, ptr, pdblDataReal, pdblDataImag,
631 nbitemrow, picolpos,
632 tmp_dblDataReal,
633 tmp_dblDataImag,
634 t->storage.gfi_storage_u.sp.jc.jc_val,
635 t->storage.gfi_storage_u.sp.ir.ir_val);
636
637 // We compute position offset
638 tmp_cnt = t->storage.gfi_storage_u.sp.jc.jc_val[0];
639 t->storage.gfi_storage_u.sp.jc.jc_val[0] = 0;
640 for(i=1;i<picol;i++)
641 {
642 tmp_cnt2 = t->storage.gfi_storage_u.sp.jc.jc_val[i];
643 t->storage.gfi_storage_u.sp.jc.jc_val[i] = t->storage.gfi_storage_u.sp.jc.jc_val[i-1] + tmp_cnt;
644 tmp_cnt = tmp_cnt2;
645 }
646 t->storage.gfi_storage_u.sp.jc.jc_val[picol] = nbitem;
647
648 for(i=0;i<nbitem;i++)
649 {
650 t->storage.gfi_storage_u.sp.ir.ir_val[i]--;
651 }
652
653 // Now store the real + imag data in getfem
654 for(i=0;i<nbitem;i++)
655 {
656 t->storage.gfi_storage_u.sp.pr.pr_val[2*i+0] = tmp_dblDataReal[i];
657 t->storage.gfi_storage_u.sp.pr.pr_val[2*i+1] = tmp_dblDataImag[i];
658 }
659
660 if (tmp_dblDataReal) FREE(tmp_dblDataReal);
661 if (tmp_dblDataImag) FREE(tmp_dblDataImag);
662 if (ptr) FREE(ptr);
663 #else
664 offset = (int *)MALLOC(pirow*sizeof(int));
665
666 // We compute position offset
667 offset[0] = 0;
668 for(i=1;i<pirow;i++)
669 offset[i] = offset[i-1] + nbitemrow[i-1];
670
671 Index = 0;
672 for(i=0;i<picol;i++)
673 {
674 t->storage.gfi_storage_u.sp.jc.jc_val[i] = Index;
675 for(j=0;j<pirow;j++)
676 {
677 for(k=0;k<nbitemrow[j];k++)
678 {
679 if (i==picolpos[offset[j]+k]-1)
680 {
681 t->storage.gfi_storage_u.sp.ir.ir_val[Index] = j;
682 t->storage.gfi_storage_u.sp.pr.pr_val[2*Index+0] = pdblDataReal[offset[j]+k];
683 t->storage.gfi_storage_u.sp.pr.pr_val[2*Index+1] = pdblDataImag[offset[j]+k];
684 Index++;
685 }
686 }
687 }
688 }
689 t->storage.gfi_storage_u.sp.jc.jc_val[picol] = nbitem;
690
691 if (offset) FREE(offset);
692 #endif
693 }
694
695 #ifdef DEBUG
696 sciprint("sci_array_to_gfi_array: pirow = %d picol = %d\n",pirow, picol);
697 sciprint("sci_array_to_gfi_array: end\n");
698 #endif
699 t->dim.dim_len = 2;
700 t->dim.dim_val = (u_int*)MALLOC(2*sizeof(u_int));
701 t->dim.dim_val[0]= pirow;
702 t->dim.dim_val[1]= picol;
703 #ifdef DEBUG
704 sciprint("sci_array_to_gfi_array: pirow = %d picol = %d\n",pirow, picol);
705 sciprint("sci_array_to_gfi_array: end\n");
706 #endif
707 }
708 break;
709 default:
710 {
711 _SciErr = getVarType(pvApiCtx,sci_x,&var_type); CHECK_ERROR_API_SCILAB;
712 Scierror(999,"unhandled class type : %s\n", sci_ClassID2string(var_type));
713 return 1;
714 }
715 break;
716 }
717
718 return 0;
719 }
720
721 int gfi_array_to_sci_array(gfi_array *t, int ivar)
722 {
723 // Revoir cette partie. Surtout la partie GFI_CELL ...
724 // Ajouter des fonctions
725 // - exportString pour les variables simples
726 // - addCellToCell, addStringToCell, etc.. pour gérer les listes imbriquées
727
728 SciErr _SciErr;
729 int * m_var = NULL, var_type;
730
731 /* Scilab represent scalars as an array of size one */
732 /* while gfi_array represents "scalar" values with 0-dimension array */
733
734 int ndim = (t->dim.dim_len == 0 ? 1 : t->dim.dim_len);
735 static const int one = 1;
736 const int * dim = (t->dim.dim_len == 0 ? &one : (const int *)t->dim.dim_val);
737 int is_hypermat = 0;
738 int nrow, ncol, nb_item, pi_precision;
739 int pirow, picol, nbitem, * pi_col_pos = NULL, * nb_item_row = NULL;
740 int * nb_item_row_tmp = NULL, * pi_col_pos_tmp = NULL, * pilen = NULL;
741 int * dims = NULL;
742 unsigned int * entries = NULL;
743 int nb_elem = 1;
744 double * pr = NULL, * pi = NULL;
745 int i, j;
746 double * pdblDataReal = NULL, * pdblDataImag = NULL, * pdblDataReal_tmp = NULL, * pdblDataImag_tmp = NULL;
747 double * dbl_entries = NULL;
748 double * entries_pr = NULL, * entries_pi = NULL;
749 int iscomplex;
750 int * ptr = NULL, * m_content = NULL, * piData32 = NULL;
751 char ** pstStrings = NULL;
752 double * pdblReal = NULL, * pdblImag = NULL;
753 unsigned int * puiData32 = NULL;
754 int * piBool = NULL;
755
756 assert(t);
757
758 switch (t->storage.type)
759 {
760 case GFI_UINT32:
761 {
762 if (ndim==1)
763 {
764 nrow = dim[0];
765 ncol = 1;
766 }
767 else if (ndim==2)
768 {
769 nrow = dim[0];
770 ncol = dim[1];
771 }
772 else
773 {
774 is_hypermat = 1;
775 }
776
777 #ifdef DEBUG
778 sciprint("gfi_array_to_sci_array: create from a GFI_UINT32\n");
779 sciprint("ndim = %d ivar = %d\n", ndim,ivar);
780 #endif
781 if (~is_hypermat)
782 {
783 _SciErr = createMatrixOfUnsignedInteger32(pvApiCtx,ivar,dim[0],dim[1],t->storage.gfi_storage_u.data_uint32.data_uint32_val); CHECK_ERROR_API_SCILAB;
784 }
785 else
786 {
787 const char * const fields[] = {"hm","dims","entries"};
788 nb_elem = 1;
789
790 _SciErr = createMList(pvApiCtx,ivar,3,&m_var); CHECK_ERROR_API_SCILAB;
791 _SciErr = createMatrixOfStringInList(pvApiCtx,ivar, m_var, 1, 1, 3, fields); CHECK_ERROR_API_SCILAB;
792
793 dims = (int *)MALLOC(t->dim.dim_len*sizeof(int));
794 for(i=0;i<t->dim.dim_len;i++)
795 {
796 dims[i] = (int)t->dim.dim_val[i];
797 nb_elem *= (int)t->dim.dim_val[i];
798 }
799
800 entries = (unsigned int *)MALLOC(nb_elem*sizeof(unsigned int));
801 for(i=0;i<nb_elem;i++) entries[i] = t->storage.gfi_storage_u.data_uint32.data_uint32_val[i];
802
803 // Add a vector to the 'dims' field -> a row vector
804 _SciErr = createMatrixOfInteger32InList(pvApiCtx,ivar, m_var, 2, 1, t->dim.dim_len, dims); CHECK_ERROR_API_SCILAB;
805 // Add a vector to the 'entries' field -> a column vector
806 _SciErr = createMatrixOfUnsignedInteger32InList(pvApiCtx,ivar, m_var, 3, nb_elem, 1, entries); CHECK_ERROR_API_SCILAB;
807
808 if (dims) FREE(dims);
809 if (entries) FREE(entries);
810 }
811 }
812 break;
813 case GFI_INT32:
814 {
815 is_hypermat = 0;
816
817 if (ndim==1)
818 {
819 nrow = (int)dim[0];
820 ncol = 1;
821 }
822 else if (ndim==2)
823 {
824 nrow = (int)dim[0];
825 ncol = (int)dim[1];
826 }
827 else
828 {
829 is_hypermat = 1;
830 }
831
832 #ifdef DEBUG
833 sciprint("gfi_array_to_sci_array: create from a GFI_INT32\n");
834 sciprint("ndim = %d ivar = %d dim[0] = %d dim[1] = %d\n", ndim,ivar, (int)dim[0],(int)dim[1]);
835 #endif
836 if (~is_hypermat)
837 {
838 _SciErr = createMatrixOfInteger32(pvApiCtx,ivar,dim[0],dim[1],t->storage.gfi_storage_u.data_int32.data_int32_val); CHECK_ERROR_API_SCILAB;
839 }
840 else
841 {
842 const char * const fields[] = {"hm","dims","entries"};
843 nb_elem = 1;
844
845 _SciErr = createMList(pvApiCtx,ivar,3,&m_var); CHECK_ERROR_API_SCILAB;
846 _SciErr = createMatrixOfStringInList(pvApiCtx,ivar, m_var, 1, 1, 3, fields); CHECK_ERROR_API_SCILAB;
847
848 dims = (int *)MALLOC(t->dim.dim_len*sizeof(int));
849 for(i=0;i<t->dim.dim_len;i++)
850 {
851 dims[i] = (int)t->dim.dim_val[i];
852 nb_elem *= (int)t->dim.dim_val[i];
853 }
854
855 dbl_entries = (double *)MALLOC(nb_elem*sizeof(double));
856 for(i=0;i<nb_elem;i++) dbl_entries[i] = (double)t->storage.gfi_storage_u.data_int32.data_int32_val[i];
857
858 // Add a vector to the 'dims' field -> a row vector
859 _SciErr = createMatrixOfInteger32InList(pvApiCtx,ivar, m_var, 2, 1, t->dim.dim_len, dims); CHECK_ERROR_API_SCILAB;
860 // Add a vector to the 'entries' field -> a column vector
861 _SciErr = createMatrixOfDoubleInList(pvApiCtx,ivar, m_var, 3, nb_elem, 1, dbl_entries); CHECK_ERROR_API_SCILAB;
862
863 if (entries) FREE(dbl_entries);
864 if (dims) FREE(dims);
865 }
866 }
867 break;
868 case GFI_DOUBLE:
869 {
870 #ifdef DEBUG
871 sciprint("gfi_array_to_sci_array: create from a GFI_DOUBLE\n");
872 sciprint("ndim = %d ivar = %d\n", ndim, ivar);
873 sciprint("dim[0] = %d\n", dim[0]);
874 #endif
875 is_hypermat = 0;
876
877 if (ndim==1)
878 {
879 nrow = dim[0];
880 ncol = 1;
881 }
882 else if (ndim==2)
883 {
884 nrow = dim[0];
885 ncol = dim[1];
886 }
887 else
888 {
889 is_hypermat = 1;
890 }
891
892 #ifdef DEBUG
893 sciprint("DEBUG: hypermat = %d\n",is_hypermat);
894 #endif
895 if (!is_hypermat)
896 {
897 if (!gfi_array_is_complex(t))
898 {
899 #ifdef DEBUG
900 sciprint("DEBUG: array is not complex\n");
901 #endif
902 _SciErr = createMatrixOfDouble(pvApiCtx,ivar, nrow, ncol, t->storage.gfi_storage_u.data_double.data_double_val); CHECK_ERROR_API_SCILAB;
903 }
904 else
905 {
906 #ifdef DEBUG
907 sciprint("DEBUG: array is complex\n");
908 #endif
909
910 pr = (double *)MALLOC(nrow*ncol*sizeof(double));
911 pi = (double *)MALLOC(nrow*ncol*sizeof(double));
912
913 for(i=0;i<nrow*ncol;i++)
914 {
915 pr[i] = t->storage.gfi_storage_u.data_double.data_double_val[2*i];
916 pi[i] = t->storage.gfi_storage_u.data_double.data_double_val[2*i+1];
917 }
918
919 _SciErr = createComplexMatrixOfDouble(pvApiCtx,ivar, nrow, ncol, pr, pi); CHECK_ERROR_API_SCILAB;
920
921 if (pr) FREE(pr);
922 if (pi) FREE(pi);
923 }
924 }
925 else
926 {
927 #ifdef DEBUG
928 sciprint("DEBUG: array is hypermat\n");
929 #endif
930 const char * const fields[] = {"hm","dims","entries"};
931 nb_elem = 1;
932
933 _SciErr = createMList(pvApiCtx,ivar,3,&m_var); CHECK_ERROR_API_SCILAB;
934 _SciErr = createMatrixOfStringInList(pvApiCtx,ivar, m_var, 1, 1, 3, fields); CHECK_ERROR_API_SCILAB;
935
936 dims = (int *)MALLOC(t->dim.dim_len*sizeof(int));
937 for(i=0;i<t->dim.dim_len;i++)
938 {
939 dims[i] = (int)t->dim.dim_val[i];
940 nb_elem *= (int)t->dim.dim_val[i];
941 }
942
943 if (!gfi_array_is_complex(t))
944 {
945
946 dbl_entries = (double *)MALLOC(nb_elem*sizeof(double));
947 for(i=0;i<nb_elem;i++) dbl_entries[i] = t->storage.gfi_storage_u.data_double.data_double_val[i];
948
949 // Add a vector to the 'dims' field -> a row vector
950 _SciErr = createMatrixOfInteger32InList(pvApiCtx,ivar, m_var, 2, 1, t->dim.dim_len, dims); CHECK_ERROR_API_SCILAB;
951 // Add a vector to the 'entries' field -> a column vector
952 _SciErr = createMatrixOfDoubleInList(pvApiCtx,ivar, m_var, 3, nb_elem, 1, dbl_entries); CHECK_ERROR_API_SCILAB;
953
954 if (entries) FREE(entries);
955 #ifdef DEBUG
956 sciprint("DEBUG: end array is hypermat\n");
957 #endif
958 }
959 else
960 {
961 entries_pr = (double *)MALLOC(nb_elem*sizeof(double));
962 entries_pi = (double *)MALLOC(nb_elem*sizeof(double));
963 for(i=0;i<nb_elem;i++)
964 {
965 entries_pr[i] = t->storage.gfi_storage_u.data_double.data_double_val[2*i+0];
966 entries_pi[i] = t->storage.gfi_storage_u.data_double.data_double_val[2*i+1];
967 }
968
969 // Add a vector to the 'dims' field
970 _SciErr = createMatrixOfInteger32InList(pvApiCtx,ivar, m_var, 2, 1, t->dim.dim_len, dims); CHECK_ERROR_API_SCILAB;
971 // Add a vector to the 'entries' field
972 _SciErr = createComplexMatrixOfDoubleInList(pvApiCtx,ivar, m_var, 3, 1, nb_elem, entries_pr, entries_pi); CHECK_ERROR_API_SCILAB;
973
974 if (entries_pr) FREE(entries_pr);
975 if (entries_pi) FREE(entries_pi);
976 }
977 if (dims) FREE(dims);
978 }
979 }
980
981 break;
982 case GFI_CHAR:
983 {
984 #ifdef DEBUG
985 sciprint("gfi_array_to_sci_array: create from a GFI_CHAR\n");
986 sciprint("ndim = %d ivar = %d\n", dim[0],ivar);
987 #endif
988 char * tmp_string = (char *)MALLOC((t->storage.gfi_storage_u.data_char.data_char_len+1)*sizeof(char));
989 memcpy(tmp_string,t->storage.gfi_storage_u.data_char.data_char_val,t->storage.gfi_storage_u.data_char.data_char_len*sizeof(char));
990 tmp_string[t->storage.gfi_storage_u.data_char.data_char_len] = '\0';
991
992 _SciErr = createMatrixOfString(pvApiCtx,ivar, 1, 1, &tmp_string); CHECK_ERROR_API_SCILAB;
993 #ifdef DEBUG
994 sciprint("ivar = %d string = |%s| len = %d\n",ivar, tmp_string,t->storage.gfi_storage_u.data_char.data_char_len);
995 #endif
996 if (tmp_string) FREE(tmp_string);
997 }
998 break;
999 case GFI_CELL:
1000 {
1001 #ifdef DEBUG
1002 sciprint("gfi_array_to_sci_array: create from a GFI_CELL\n");
1003 sciprint("ndim = %d ivar = %d\n", dim[0],ivar);
1004
1005 for(i=0;i<ndim;i++)
1006 sciprint("dim[%d] = %d\n",i,dim[i]);
1007
1008 sciprint("now create list at pos %d, dimension %d\n", ivar, dim[0]);
1009 #endif
1010 _SciErr = createList(pvApiCtx,ivar,dim[0],&m_var); CHECK_ERROR_API_SCILAB;
1011
1012 for(i=0; i<t->storage.gfi_storage_u.data_cell.data_cell_len; ++i)
1013 {
1014 m_content = gfi_array_to_sci_array(t->storage.gfi_storage_u.data_cell.data_cell_val[i],ivar+i+1);
1015
1016 _SciErr = getVarType(pvApiCtx,m_content,&var_type); CHECK_ERROR_API_SCILAB;
1017 switch(var_type)
1018 {
1019 case sci_list:
1020 {
1021 #ifdef DEBUG
1022 sciprint("gfi_array_to_sci_array: create from a GFI_CELL - sci_list\n");
1023 #endif
1024 _SciErr = getListItemNumber(pvApiCtx,m_content,&nb_item); CHECK_ERROR_API_SCILAB;
1025 _SciErr = createListInList(pvApiCtx,ivar, m_content, i+1, nb_item, &m_var); CHECK_ERROR_API_SCILAB;
1026 }
1027 break;
1028 case sci_mlist:
1029 {
1030 #ifdef DEBUG
1031 sciprint("gfi_array_to_sci_array: create from a GFI_CELL - sci_mlist\n");
1032 #endif
1033 _SciErr = getListItemNumber(pvApiCtx,m_content,&nb_item); CHECK_ERROR_API_SCILAB;
1034 _SciErr = createMListInList(pvApiCtx,ivar, m_content, i+1, nb_item, &m_var); CHECK_ERROR_API_SCILAB;
1035 }
1036 break;
1037 case sci_strings:
1038 {
1039 #ifdef DEBUG
1040 sciprint("gfi_array_to_sci_array: create from a GFI_CELL - sci_strings\n");
1041 sciprint("add element %d to position %d\n", i, ivar);
1042 #endif
1043
1044 // Get the matrix of strings from the gfi_array
1045 _SciErr = getMatrixOfString(pvApiCtx,m_content, &pirow, &picol, NULL, NULL); CHECK_ERROR_API_SCILAB;
1046 pilen = (int *)MALLOC(pirow*picol*sizeof(int));
1047 pstStrings = (char **)MALLOC(pirow*picol*sizeof(char *));
1048 _SciErr = getMatrixOfString(pvApiCtx,m_content, &pirow, &picol, pilen, NULL); CHECK_ERROR_API_SCILAB;
1049
1050 for(j=0;j<pirow*picol;j++)
1051 {
1052 pstStrings[j] = (char *)MALLOC((pilen[j]+1)*sizeof(char));
1053 }
1054 _SciErr = getMatrixOfString(pvApiCtx,m_content, &pirow, &picol, pilen, pstStrings); CHECK_ERROR_API_SCILAB;
1055 #ifdef DEBUG
1056 sciprint("pirow = %d picol = %d, pilen[0] = %d\n", pirow, picol, pilen[0]);
1057 #endif
1058 // And now add it to the list
1059 _SciErr = createMatrixOfStringInList(pvApiCtx,ivar, m_var, i+1, pirow, picol, pstStrings); CHECK_ERROR_API_SCILAB;
1060
1061 // Desallocate
1062 if (pilen) FREE(pilen);
1063 for(j=0;j<pirow*picol;j++)
1064 {
1065 if (pstStrings[j]) FREE(pstStrings[j]);
1066 }
1067 if (pstStrings) FREE(pstStrings);
1068 }
1069 break;
1070 case sci_ints:
1071 #ifdef DEBUG
1072 sciprint("gfi_array_to_sci_array: create from a GFI_CELL - sci_ints\n");
1073 #endif
1074 // UINT32 + INT32
1075 {
1076 _SciErr = getMatrixOfIntegerPrecision(pvApiCtx,m_content,&pi_precision); CHECK_ERROR_API_SCILAB;
1077 if ((pi_precision!=SCI_INT32)&&(pi_precision!=SCI_UINT32))
1078 {
1079 Scierror(999,"Can deal only with int32 or uint32\n");
1080 }
1081 switch(pi_precision)
1082 {
1083 case SCI_INT32:
1084 _SciErr = getMatrixOfInteger32(pvApiCtx,m_content, &pirow, &picol, &piData32); CHECK_ERROR_API_SCILAB;
1085 _SciErr = createMatrixOfInteger32InList(pvApiCtx,ivar, m_var, i+1, pirow, picol, piData32); CHECK_ERROR_API_SCILAB;
1086 break;
1087 case SCI_UINT32:
1088 _SciErr = getMatrixOfUnsignedInteger32(pvApiCtx,m_content, &pirow, &picol, &puiData32); CHECK_ERROR_API_SCILAB;
1089 _SciErr = createMatrixOfUnsignedInteger32InList(pvApiCtx,ivar, m_var, i+1, pirow, picol, puiData32); CHECK_ERROR_API_SCILAB;
1090 break;
1091 default:
1092 Scierror(999,"Can deal only with int32 or uint32\n");
1093 }
1094 }
1095 break;
1096 case sci_boolean:
1097 {
1098 #ifdef DEBUG
1099 sciprint("gfi_array_to_sci_array: create from a GFI_CELL - sci_boolean\n");
1100 #endif
1101
1102 _SciErr = getMatrixOfBoolean(pvApiCtx,m_content, &pirow, &picol, &piBool); CHECK_ERROR_API_SCILAB;
1103 _SciErr = createMatrixOfBooleanInList(pvApiCtx,ivar, m_var, i+1, pirow, picol, piBool); CHECK_ERROR_API_SCILAB;
1104 }
1105 break;
1106 case sci_matrix:
1107 {
1108 #ifdef DEBUG
1109 sciprint("gfi_array_to_sci_array: create from a GFI_CELL - sci_matrix\n");
1110 #endif
1111 if (isVarComplex(pvApiCtx,m_content))
1112 {
1113 _SciErr = getComplexMatrixOfDouble(pvApiCtx,m_content, &pirow, &picol, &pdblReal, &pdblImag); CHECK_ERROR_API_SCILAB;
1114 _SciErr = createComplexMatrixOfDoubleInList(pvApiCtx,ivar, m_var, i+1, pirow, picol, pdblReal, pdblImag); CHECK_ERROR_API_SCILAB;
1115 }
1116 else
1117 {
1118 _SciErr = getMatrixOfDouble(pvApiCtx,m_content, &pirow, &picol, &pdblReal); CHECK_ERROR_API_SCILAB;
1119 _SciErr = createMatrixOfDoubleInList(pvApiCtx,ivar, m_var, i+1, pirow, picol, pdblReal); CHECK_ERROR_API_SCILAB;
1120 }
1121 }
1122 break;
1123 case sci_sparse:
1124 {
1125 #ifdef DEBUG
1126 sciprint("gfi_array_to_sci_array: create from a GFI_CELL - sci_sparse\n");
1127 #endif
1128 if (isVarComplex(pvApiCtx,m_content))
1129 {
1130 _SciErr = getComplexSparseMatrix(pvApiCtx,m_content, &pirow, &picol, &nbitem, &nb_item_row, &pi_col_pos, &pdblReal, &pdblImag); CHECK_ERROR_API_SCILAB;
1131 _SciErr = createComplexSparseMatrixInList(pvApiCtx,ivar, m_var, i+1, pirow, picol, nbitem, nb_item_row, pi_col_pos, pdblReal, pdblImag); CHECK_ERROR_API_SCILAB;
1132 }
1133 else
1134 {
1135 _SciErr = getSparseMatrix(pvApiCtx,m_content, &pirow, &picol, &nbitem, &nb_item_row, &pi_col_pos, &pdblReal); CHECK_ERROR_API_SCILAB;
1136 _SciErr = createSparseMatrixInList(pvApiCtx,ivar, m_var, i+1, pirow, picol, nbitem, nb_item_row, pi_col_pos, pdblReal); CHECK_ERROR_API_SCILAB;
1137 }
1138 }
1139 break;
1140 }
1141 }
1142 }
1143 break;
1144 case GFI_OBJID:
1145 {
1146 unsigned i, size_objid;
1147 double * pdblDataID, * pdblDataCID;
1148 char *fields[] = {"objid","id","cid"};
1149
1150 _SciErr = createMList(pvApiCtx,ivar,3,&m_var); CHECK_ERROR_API_SCILAB;
1151 _SciErr = createMatrixOfStringInList(pvApiCtx,ivar, m_var, 1, 1, 3, fields); CHECK_ERROR_API_SCILAB;
1152
1153 size_objid = t->storage.gfi_storage_u.objid.objid_len;
1154 pdblDataID = (double *)MALLOC(size_objid*sizeof(double));
1155 pdblDataCID = (double *)MALLOC(size_objid*sizeof(double));
1156
1157 for(i=0; i<size_objid; ++i)
1158 {
1159 pdblDataID[i] = t->storage.gfi_storage_u.objid.objid_val[i].id;
1160 pdblDataCID[i] = t->storage.gfi_storage_u.objid.objid_val[i].cid;
1161 }
1162 // Add a vector to the 'id' field
1163 _SciErr = createMatrixOfDoubleInList(pvApiCtx,ivar, m_var, 2, 1, size_objid, pdblDataID); CHECK_ERROR_API_SCILAB;
1164 // Add a vector to the 'cid' field
1165 _SciErr = createMatrixOfDoubleInList(pvApiCtx,ivar, m_var, 3, 1, size_objid, pdblDataCID); CHECK_ERROR_API_SCILAB;
1166
1167 if (pdblDataID) FREE(pdblDataID);
1168 if (pdblDataCID) FREE(pdblDataCID);
1169 }
1170 break;
1171 case GFI_SPARSE:
1172 {
1173 iscomplex = gfi_array_is_complex(t);
1174
1175 nbitem = t->storage.gfi_storage_u.sp.ir.ir_len;
1176 pirow = t->dim.dim_val[0];
1177 picol = t->dim.dim_val[1];
1178
1179 // Convert from Matlab to Scilab format
1180 nb_item_row = (int *)MALLOC(pirow*sizeof(int));
1181 pi_col_pos = (int *)MALLOC(nbitem*sizeof(int));
1182 pdblDataReal = (double *)MALLOC(nbitem*sizeof(double));
1183 if (iscomplex)
1184 pdblDataImag = (double *)MALLOC(nbitem*sizeof(double));
1185
1186 #ifdef USE_SPT
1187 // We use the spt function to transpose the matlab sparse matrix and so to ease the conversion
1188 // to the scilab sparse model.
1189 // There is a memory overhead:
1190 // (picol + pirow + nbitem) integers allocated in the real case
1191 // (picol + pirow + nbitem) integers + 2*nbitem doubles allocated in the complex case
1192 nb_item_row_tmp = (int *)MALLOC(picol*sizeof(int));
1193 pi_col_pos_tmp = (int *)MALLOC(nbitem*sizeof(int));
1194 ptr = (int *)MALLOC(pirow*sizeof(int));
1195
1196
1197 if (iscomplex)
1198 {
1199 #ifdef DEBUG
1200 sciprint("DEBUG: pirow = %d picol = %d nbitem = %d - complex\n", pirow, picol, nbitem);
1201 #endif
1202 pdblDataImag_tmp = (double *)MALLOC(nbitem*sizeof(double));
1203 pdblDataReal_tmp = (double *)MALLOC(nbitem*sizeof(double));
1204
1205 for(i=0;i<nbitem;i++)
1206 {
1207 pdblDataReal_tmp[i] = t->storage.gfi_storage_u.sp.pr.pr_val[2*i+0];
1208 pdblDataImag_tmp[i] = t->storage.gfi_storage_u.sp.pr.pr_val[2*i+1];
1209 pi_col_pos_tmp[i] = t->storage.gfi_storage_u.sp.ir.ir_val[i] + 1;
1210 }
1211
1212 for(i=0;i<picol;i++)
1213 {
1214 nb_item_row_tmp[i] = t->storage.gfi_storage_u.sp.jc.jc_val[i+1] - t->storage.gfi_storage_u.sp.jc.jc_val[i];
1215 }
1216
1217 // Transpose the matrix
1218 C2F(spt)(&picol, &pirow, &nbitem, &iscomplex, ptr,
1219 pdblDataReal_tmp,
1220 pdblDataImag_tmp,
1221 nb_item_row_tmp,
1222 pi_col_pos_tmp,
1223 pdblDataReal,
1224 pdblDataImag,
1225 nb_item_row,
1226 pi_col_pos);
1227
1228 if (pdblDataImag_tmp) FREE(pdblDataImag_tmp);
1229 if (pdblDataReal_tmp) FREE(pdblDataReal_tmp);
1230 }
1231 else
1232 {
1233 #ifdef DEBUG
1234 sciprint("DEBUG: pirow = %d picol = %d nbitem = %d - real\n", pirow, picol, nbitem);
1235 #endif
1236 for(i=0;i<nbitem;i++)
1237 {
1238 pi_col_pos_tmp[i] = t->storage.gfi_storage_u.sp.ir.ir_val[i] + 1;
1239 }
1240
1241 for(i=0;i<picol;i++)
1242 {
1243 nb_item_row_tmp[i] = t->storage.gfi_storage_u.sp.jc.jc_val[i+1] - t->storage.gfi_storage_u.sp.jc.jc_val[i];
1244 }
1245
1246 // Transpose the matrix
1247 C2F(spt)(&picol, &pirow, &nbitem, &iscomplex, ptr,
1248 t->storage.gfi_storage_u.sp.pr.pr_val,
1249 NULL,
1250 nb_item_row_tmp,
1251 pi_col_pos_tmp,
1252 pdblDataReal,
1253 NULL,
1254 nb_item_row,
1255 pi_col_pos);
1256 }
1257
1258 if (ptr) FREE(ptr);
1259 if (nb_item_row_tmp) FREE(nb_item_row_tmp);
1260 if (pi_col_pos_tmp) FREE(pi_col_pos_tmp);
1261 #else
1262 #ifdef DEBUG
1263 sciprint("picol = %d pirow = %d nbitem = %d\n", picol, pirow, nbitem);
1264
1265 for(i=0;i<picol+1;i++)
1266 sciprint("jc_val[%d] = %d\n",i,t->storage.gfi_storage_u.sp.jc.jc_val[i]);
1267
1268 for(i=0;i<nbitem;i++)
1269 {
1270 sciprint("ir_val[%d] = %d pr_val[%d] = %f\n",i,t->storage.gfi_storage_u.sp.ir.ir_val[i],i,t->storage.gfi_storage_u.sp.pr.pr_val[i]);
1271 }
1272 #endif
1273
1274 Index = 0;
1275 if (iscomplex)
1276 {
1277 for(i=0;i<pirow;i++)
1278 {
1279 nb_item_row[i] = 0;
1280 for(j=0;j<nbitem;j++)
1281 {
1282 if (t->storage.gfi_storage_u.sp.ir.ir_val[j]==i)
1283 {
1284 // We found the row number, we need now to find the corresponding col number.
1285 for(k=0;k<pirow;k++)
1286 {
1287 if ((j>=t->storage.gfi_storage_u.sp.jc.jc_val[k])&&(j<=t->storage.gfi_storage_u.sp.jc.jc_val[k+1]-1))
1288 {
1289 pi_col_pos[Index] = k+1;
1290 break;
1291 }
1292 }
1293
1294 pdblDataReal[Index] = t->storage.gfi_storage_u.sp.pr.pr_val[2*j+0];
1295 pdblDataImag[Index] = t->storage.gfi_storage_u.sp.pr.pr_val[2*j+1];
1296 nb_item_row[i]++;
1297 Index++;
1298 }
1299 }
1300 }
1301 }
1302 else
1303 {
1304 for(i=0;i<pirow;i++)
1305 {
1306 nb_item_row[i] = 0;
1307 for(j=0;j<nbitem;j++)
1308 {
1309 if (t->storage.gfi_storage_u.sp.ir.ir_val[j]==i)
1310 {
1311 // We found the row number, we need now to find the corresponding col number.
1312 for(k=0;k<pirow;k++)
1313 {
1314 if ((j>=t->storage.gfi_storage_u.sp.jc.jc_val[k])&&(j<=t->storage.gfi_storage_u.sp.jc.jc_val[k+1]-1))
1315 {
1316 pi_col_pos[Index] = k+1;
1317 break;
1318 }
1319 }
1320
1321 pdblDataReal[Index] = t->storage.gfi_storage_u.sp.pr.pr_val[j];
1322 nb_item_row[i]++;
1323 Index++;
1324 }
1325 }
1326 }
1327 }
1328
1329 #ifdef DEBUG
1330 for(i=0;i<pirow;i++)
1331 {
1332 sciprint("nb_item_row[%d] = %d\n", i, nb_item_row[i]);
1333 }
1334 for(i=0;i<nbitem;i++)
1335 {
1336 sciprint("pi_col_pos[%d] = %d val = %f\n", i, pi_col_pos[i],pdblDataReal[i]);
1337 }
1338 #endif
1339 #endif
1340
1341 if (iscomplex)
1342 {
1343 _SciErr = createComplexSparseMatrix(pvApiCtx,ivar, pirow, picol, nbitem, nb_item_row, pi_col_pos, pdblDataReal, pdblDataImag); CHECK_ERROR_API_SCILAB;
1344 }
1345 else
1346 {
1347 _SciErr = createSparseMatrix(pvApiCtx,ivar, pirow, picol, nbitem, nb_item_row, pi_col_pos, pdblDataReal); CHECK_ERROR_API_SCILAB;
1348 }
1349
1350 // Free allocated memory
1351 if (nb_item_row) FREE(nb_item_row);
1352 if (pi_col_pos) FREE(pi_col_pos);
1353 if (pdblDataReal) FREE(pdblDataReal);
1354 if (iscomplex)
1355 if (pdblDataImag) FREE(pdblDataImag);
1356 }
1357 break;
1358 default:
1359 {
1360 assert(0);
1361 } break;
1362 }
1363 return 0;
1364 }
1365
1366 /*******************************************************/
1367
1368 gfi_array_list * build_gfi_array_list(int nrhs, int ** prhs)
1369 {
1370 gfi_array_list *l;
1371 int i;
1372
1373 l = MALLOC(1*sizeof(gfi_array_list));
1374 l->arg.arg_len = nrhs;
1375 l->arg.arg_val = MALLOC(nrhs*sizeof(gfi_array));
1376
1377 for(i=1; i<=nrhs; i++)
1378 {
1379 #ifdef DEBUG
1380 sciprint("build_gfi_array_list: processing parameter %d\n", i);
1381 #endif
1382 if (sci_array_to_gfi_array(prhs[i], &l->arg.arg_val[i-1]) != 0) return NULL;
1383 }
1384
1385 #ifdef DEBUG
1386 sciprint("build_gfi_array_list: end of processing\n");
1387 #endif
1388
1389 return l;
1390 }
1391
1392 #ifndef WIN32
1393 struct sigaction old_sigint;
1394 #endif
1395
1396 static int sigint_hit = 0;
1397 static getfem_sigint_handler_t sigint_callback;
1398
1399 static void sigint(int sig)
1400 {
1401 sigint_callback(sig);
1402 remove_custom_sigint(0);
1403 sigint_hit++;
1404 }
1405
1406 void install_custom_sigint(getfem_sigint_handler_t h) {
1407 #ifndef WIN32 /* matlab on win does not use signals so.. */
1408 struct sigaction new_sigint;
1409 new_sigint.sa_handler = sigint;
1410 sigint_callback = h;
1411 sigemptyset(&new_sigint.sa_mask);
1412 new_sigint.sa_flags = 0;
1413 sigaction (SIGINT, NULL, &old_sigint);
1414 if (old_sigint.sa_handler != SIG_IGN)
1415 sigaction(SIGINT, &new_sigint, NULL);
1416 sigint_hit = 0;
1417 #endif
1418 }
1419
1420 void remove_custom_sigint(int allow_rethrow)
1421 {
1422 #ifndef WIN32
1423 struct sigaction act;
1424 sigaction (SIGINT, NULL, &act);
1425 if (act.sa_handler == sigint)
1426 {
1427 sigaction(SIGINT, &old_sigint, NULL);
1428 }
1429 if (allow_rethrow && sigint_hit)
1430 {
1431 fprintf(stderr, "ready, raising SIGINT now\n");
1432 raise(SIGINT);
1433 }
1434 sigint_hit = 0;
1435 #endif
1436 }
+0
-47
interface/src/scilab/sci_gateway/c/gfm_common.h less more
0 /* -*- c++ -*- (enables emacs c++ mode) */
1 /*===========================================================================
2
3 Copyright (C) 2009-2015 Yann Collette
4
5 This file is a part of GetFEM++
6
7 GetFEM++ is free software; you can redistribute it and/or modify it
8 under the terms of the GNU Lesser General Public License as published
9 by the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version along with the GCC Runtime Library
11 Exception either version 3.1 or (at your option) any later version.
12 This program is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
15 License and GCC Runtime Library Exception for more details.
16 You should have received a copy of the GNU Lesser General Public License
17 along with this program; if not, write to the Free Software Foundation,
18 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
19
20 As a special exception, you may use this file as it is a part of a free
21 software library without restriction. Specifically, if other files
22 instantiate templates or use macros or inline functions from this file,
23 or you compile this file and link it with other files to produce an
24 executable, this file does not by itself cause the resulting executable
25 to be covered by the GNU Lesser General Public License. This exception
26 does not however invalidate any other reasons why the executable file
27 might be covered by the GNU Lesser General Public License.
28
29 ===========================================================================*/
30
31 #ifndef GFM_COMMON_H
32 #define GFM_COMMON_H
33
34 #include <stack-c.h>
35 #include "gfi_array.h"
36
37 const char* sci_ClassID2string(sci_types id);
38 int sci_array_to_gfi_array(int * sci_x, gfi_array *t);
39 int gfi_array_to_sci_array(gfi_array *t, int i);
40 gfi_array_list *build_gfi_array_list(int nrhs, int ** prhs);
41
42 typedef void (*getfem_sigint_handler_t)(int);
43 void install_custom_sigint(getfem_sigint_handler_t h);
44 void remove_custom_sigint(int allow_rethrow);
45
46 #endif
+0
-264
interface/src/scilab/sci_gateway/c/gfm_scilab.cpp less more
0 /*===========================================================================
1
2 Copyright (C) 2009-2015 Yann Collette
3
4 This file is a part of GetFEM++
5
6 GetFEM++ is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version along with the GCC Runtime Library
10 Exception either version 3.1 or (at your option) any later version.
11 This program is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License and GCC Runtime Library Exception for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program; if not, write to the Free Software Foundation,
17 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
18
19 ===========================================================================*/
20
21 #include <assert.h>
22 #include <string.h>
23 #include <errno.h>
24 #include <stdio.h>
25 #include <time.h>
26
27 #ifndef _MSC_VER
28 #include <unistd.h>
29 #endif
30 extern "C" {
31 #include <stack-c.h>
32 #include <sciprint.h>
33 #include <Scierror.h>
34 #include <api_scilab.h>
35 #include <MALLOC.h>
36 }
37
38 extern "C" {
39 #include "gfm_common.h"
40 }
41
42 #include "gfi_array.h"
43 #include "getfem_interface.h"
44
45 #ifndef _MSCVER
46 #include "stream_redirect.h"
47 #endif
48
49 //#define DEBUG_TIMER
50 //#define DEBUG
51 //#define DEBUG2
52
53 extern "C" int handle_getfem_callback();
54 extern "C" void set_superlu_callback(int (*cb)());
55
56 gfi_output * call_getfem_interface(char *funname, gfi_array_list in, int nlhs)
57 {
58 static gfi_output result;
59 gfi_array **pin = NULL;
60 gfi_array **pout = NULL;
61 char *errmsg = 0, *infomsg = 0;
62 int i;
63
64 #ifdef DEBUG2
65 sciprint("call_getfem_interface: len = %d \n",in.arg.arg_len);
66 for(i=0;i<in.arg.arg_len;i++)
67 {
68 sciprint("element %d: \n",i);
69 gfi_array_print(&in.arg.arg_val[i]);
70 }
71 #endif
72
73 pin = (gfi_array **)gfi_calloc(in.arg.arg_len, sizeof(gfi_array*));
74 for (i=0; i < in.arg.arg_len; ++i)
75 {
76 pin[i] = &in.arg.arg_val[i];
77 }
78
79 #ifdef DEBUG
80 sciprint("call_getfem_interface: funname = %s len = %d\n",funname, in.arg.arg_len);
81 #endif
82
83 errmsg = getfem_interface_main(SCILAB_INTERFACE, funname, in.arg.arg_len, (const gfi_array **)pin, &nlhs, &pout, &infomsg, 1);
84
85 #ifdef DEBUG
86 sciprint("call_getfem_interface: end of getfem_interface_main, nlhs = %d infomsg = %s\n",nlhs,infomsg);
87 #endif
88
89 result.infomsg = infomsg;
90 if (errmsg)
91 {
92 result.status = GFI_STATUS_ERROR;
93 result.gfi_output_u.errmsg = errmsg;
94 }
95 else
96 {
97 result.status = GFI_STATUS_OK;
98 result.gfi_output_u.output.arg.arg_len = nlhs;
99 result.gfi_output_u.output.arg.arg_val = (gfi_array *)gfi_calloc(nlhs, sizeof(gfi_array));
100 for(i=0; i<nlhs; ++i)
101 {
102 assert(pout[i]);
103 result.gfi_output_u.output.arg.arg_val[i] = *pout[i];
104 gfi_free(pout[i]);
105 }
106 if (pout) gfi_free(pout);
107 }
108 gfi_free(pin);
109
110 return &result;
111 }
112
113 char *current_scilab_function = NULL;
114
115 void sigint_callback(int sig)
116 {
117 const char * s = current_scilab_function; if (!s) s = "doh!!";
118 fprintf(stderr, "*** CTRL-C hit during execution of the getfem_scilab function: gf_%s...\n" \
119 "You will gain control as soon as the current operation is finished ***\n" \
120 "If you want to abort immediatly the current operation, hit CTRL-C again\n" \
121 "In that case, you will have to restart getfem_scilab:\n", s);
122 set_cancel_flag(1);
123 assert(handle_getfem_callback() == 1);
124 }
125
126 extern "C" int sci_gf_scilab(char * fname)
127 {
128 gfi_output * out = NULL;
129 gfi_array_list * in = NULL;
130 gfi_array_list * outl = NULL;
131 int ** ptr_param = NULL;
132 int sci_x;
133 unsigned int i;
134 SciErr _SciErr;
135 #ifdef DEBUG_TIMER
136 clock_t time_start, time_end;
137 #endif
138 #ifndef _MSCVER
139 ScilabStream scicout(std::cout);
140 ScilabStream scicerr(std::cerr);
141 #endif
142 set_cancel_flag(0);
143 set_superlu_callback(is_cancel_flag_set);
144
145 #ifdef DEBUG
146 sciprint("sci_gf_scilab: Rhs = %d Lhs = %d\n", Rhs, Lhs);
147 #endif
148
149 ptr_param = (int **)MALLOC((Rhs+1)*sizeof(int *));
150 for(i=1;i<=Rhs;i++)
151 {
152 #ifdef DEBUG
153 sciprint("sci_gf_scilab: i = %d Rhs = %d\n", i, Rhs);
154 #endif
155 _SciErr = getVarAddressFromPosition(pvApiCtx,i,ptr_param+i);
156 #ifdef DEBUG
157 _SciErr = getVarDimension(pvApiCtx,ptr_param[i],&pirow,&picol);
158 _SciErr = getVarType(pvApiCtx,ptr_param[i],&var_type);
159 sciprint("sci_gf_scilab: position %d - address %d - type %d - dimension %d %d\n", i, ptr_param[i],var_type,pirow,picol);
160 #endif
161 }
162
163 #ifdef DEBUG
164 sciprint("sci_gf_scilab: list of parameters built\n", i, Rhs);
165 #endif
166
167 #ifdef DEBUG_TIMER
168 sciprint("DEBUG_TIMER: before build_gfi_array_list\n");
169 time_start = clock()/CLOCKS_PER_SEC;
170 #endif
171
172 in = build_gfi_array_list(Rhs, ptr_param);
173
174 #ifdef DEBUG_TIMER
175 time_end = clock()/CLOCKS_PER_SEC;
176 sciprint("DEBUG_TIMER: after build_gfi_array_list: %f\n", (double)(time_end - time_start));
177 time_start = time_end;
178 #endif
179
180 if (!in)
181 {
182 Scierror(999,"%s: a problem occured while reading arguments.\n",fname);
183 return 0;
184 }
185 #ifdef DEBUG
186 sciprint("sci_gf_scilab: end of build_gfi_array_list\n");
187 #endif
188
189 install_custom_sigint(sigint_callback);
190
191 #ifdef DEBUG
192 sciprint("sci_gf_scilab: fname = %s - calling call_getfem_interface with %s\n",fname, &fname[3]);
193 #endif
194
195 out = call_getfem_interface(&fname[3], *in, Lhs);
196
197 // We now remove all the allocated memory for the input parameters
198 // This memory is allocated in gfm_common.c
199 if (in)
200 {
201 for(i=0;i<in->arg.arg_len;i++)
202 gfi_array_destroy(&in->arg.arg_val[i]);
203 gfi_free(in->arg.arg_val);
204 gfi_free(in);
205 }
206
207 #ifdef DEBUG_TIMER
208 time_end = clock()/CLOCKS_PER_SEC;
209 sciprint("DEBUG_TIMER: after call_getfem_interface: %f\n",(double)(time_end - time_start));
210 time_start = time_end;
211 #endif
212
213 #ifdef DEBUG
214 sciprint("sci_gf_scilab: end of call_getfem_interface\n");
215 #endif
216
217 remove_custom_sigint(out->status == GFI_STATUS_OK);
218
219 if (out == NULL)
220 {
221 sciprint("%s: could not connect to getfem_scilab server...\n",fname);
222 LhsVar(1) = 0;
223 }
224 else
225 {
226 if (out->infomsg)
227 {
228 sciprint("%s: message:\n%s\n",fname,out->infomsg);
229 }
230
231 if (out->status == GFI_STATUS_OK)
232 {
233 outl = &out->gfi_output_u.output;
234 for(i=0; i<outl->arg.arg_len; ++i)
235 {
236 #ifdef DEBUG
237 sciprint("sci_gf_scilab: processing output argument %d / %d\n", i, outl->arg.arg_len);
238 sciprint("storage type = %d\n", outl->arg.arg_val[i].storage.type);
239 sciprint("output position: LhsVar(%d) = %d\n", i+1, Rhs+1+i);
240 #endif
241 sci_x = gfi_array_to_sci_array(&outl->arg.arg_val[i],Rhs+1+i);
242 LhsVar(i+1) = Rhs+1+i;
243 if (&outl->arg.arg_val[i]) gfi_array_destroy(&outl->arg.arg_val[i]);
244 }
245
246 gfi_free(outl->arg.arg_val);
247 }
248 else
249 {
250 Scierror(999,"%s: %s\n", fname,out->gfi_output_u.errmsg);
251 LhsVar(1) = 0;
252 }
253 }
254
255 #ifdef DEBUG_TIMER
256 time_end = clock()/CLOCKS_PER_SEC;
257 sciprint("DEBUG_TIMER: after gfi_array_to_sci_array: %f\n", (double)(time_end - time_start));
258 #endif
259
260 if (ptr_param) FREE(ptr_param);
261
262 return 0;
263 }
+0
-150
interface/src/scilab/sci_gateway/c/libscigetfem_c.c less more
0 #ifdef __cplusplus
1 extern "C" {
2 #endif
3 #include <mex.h>
4 #include <sci_gateway.h>
5 #include <api_scilab.h>
6 #include <MALLOC.h>
7 static int direct_gateway(char *fname,void F(void)) { F();return 0;};
8 extern Gatefunc sci_gf_scilab;
9 extern Gatefunc sci_gf_scilab;
10 extern Gatefunc sci_gf_scilab;
11 extern Gatefunc sci_gf_scilab;
12 extern Gatefunc sci_gf_scilab;
13 extern Gatefunc sci_gf_scilab;
14 extern Gatefunc sci_gf_scilab;
15 extern Gatefunc sci_gf_scilab;
16 extern Gatefunc sci_gf_scilab;
17 extern Gatefunc sci_gf_scilab;
18 extern Gatefunc sci_gf_scilab;
19 extern Gatefunc sci_gf_scilab;
20 extern Gatefunc sci_gf_scilab;
21 extern Gatefunc sci_gf_scilab;
22 extern Gatefunc sci_gf_scilab;
23 extern Gatefunc sci_gf_scilab;
24 extern Gatefunc sci_gf_scilab;
25 extern Gatefunc sci_gf_scilab;
26 extern Gatefunc sci_gf_scilab;
27 extern Gatefunc sci_gf_scilab;
28 extern Gatefunc sci_gf_scilab;
29 extern Gatefunc sci_gf_scilab;
30 extern Gatefunc sci_gf_scilab;
31 extern Gatefunc sci_gf_scilab;
32 extern Gatefunc sci_gf_scilab;
33 extern Gatefunc sci_gf_scilab;
34 extern Gatefunc sci_gf_scilab;
35 extern Gatefunc sci_gf_scilab;
36 extern Gatefunc sci_gf_scilab;
37 extern Gatefunc sci_gf_scilab;
38 extern Gatefunc sci_gf_scilab;
39 extern Gatefunc sci_gf_scilab;
40 extern Gatefunc sci_gf_scilab;
41 extern Gatefunc sci_gf_scilab;
42 extern Gatefunc sci_gf_scilab;
43 extern Gatefunc sci_gf_scilab;
44 extern Gatefunc sci_gf_scilab;
45 extern Gatefunc sci_gf_scilab;
46 extern Gatefunc sci_gf_scilab;
47 extern Gatefunc sci_gf_scilab;
48 extern Gatefunc sci_gf_scilab;
49 extern Gatefunc sci_gf_scilab;
50 extern Gatefunc sci_gf_scilab;
51 extern Gatefunc sci_gf_scilab;
52 extern Gatefunc sci_gf_scilab;
53 extern Gatefunc sci_gf_scilab;
54 extern Gatefunc sci_gf_scilab;
55 extern Gatefunc sci_gf_scilab;
56 extern Gatefunc sci_gf_scilab;
57 extern Gatefunc sci_gf_scilab;
58 extern Gatefunc sci_gf_scilab;
59 extern Gatefunc sci_spluinc;
60 extern Gatefunc sci_splu;
61 extern Gatefunc sci_splusolve;
62 extern Gatefunc sci_spcholinc;
63 extern Gatefunc sci_spchol;
64 extern Gatefunc sci_spchsolve;
65 extern Gatefunc sci_spcgne;
66 extern Gatefunc sci_spcgs;
67 extern Gatefunc sci_spgmres;
68 extern Gatefunc sci_spmgcr;
69 static GenericTable Tab[]={
70 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_workspace"},
71 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_delete"},
72 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_undelete"},
73 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_eltm"},
74 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_geotrans"},
75 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_geotrans_get"},
76 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_integ"},
77 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_integ_get"},
78 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_global_function"},
79 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_global_function_get"},
80 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_fem"},
81 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_fem_get"},
82 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_cvstruct_get"},
83 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesher_object"},
84 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesher_object_get"},
85 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesh"},
86 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesh_get"},
87 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesh_set"},
88 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesh_fem"},
89 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesh_fem_get"},
90 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesh_fem_set"},
91 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesh_im"},
92 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesh_im_get"},
93 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesh_im_set"},
94 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesh_im_data"},
95 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesh_im_data_get"},
96 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesh_im_data_set"},
97 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_model"},
98 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_model_get"},
99 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_model_set"},
100 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_slice"},
101 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_slice_get"},
102 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_slice_set"},
103 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_levelset"},
104 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_levelset_get"},
105 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_levelset_set"},
106 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesh_levelset"},
107 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesh_levelset_get"},
108 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_mesh_levelset_set"},
109 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_asm"},
110 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_compute"},
111 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_precond"},
112 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_precond_get"},
113 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_spmat"},
114 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_spmat_get"},
115 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_spmat_set"},
116 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_linsolve"},
117 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_util"},
118 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_exit"},
119 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_cont_struct_get"},
120 {(Myinterfun)sci_gateway,sci_gf_scilab,"gf_cont_struct"},
121 {(Myinterfun)sci_gateway,sci_spluinc,"sp_luinc"},
122 {(Myinterfun)sci_gateway,sci_splu,"sp_lu"},
123 {(Myinterfun)sci_gateway,sci_splusolve,"sp_lusolve"},
124 {(Myinterfun)sci_gateway,sci_spcholinc,"sp_cholinc"},
125 {(Myinterfun)sci_gateway,sci_spchol,"sp_chol"},
126 {(Myinterfun)sci_gateway,sci_spchsolve,"sp_chsolve"},
127 {(Myinterfun)sci_gateway,sci_spcgne,"sp_cgne"},
128 {(Myinterfun)sci_gateway,sci_spcgs,"sp_cgs"},
129 {(Myinterfun)sci_gateway,sci_spgmres,"sp_gmres"},
130 {(Myinterfun)sci_gateway,sci_spmgcr,"sp_mgcr"},
131 };
132
133 int C2F(libscigetfem_c)()
134 {
135 Rhs = Max(0, Rhs);
136 if (*(Tab[Fin-1].f) != NULL)
137 {
138 if(pvApiCtx == NULL)
139 {
140 pvApiCtx = (StrCtx*)MALLOC(sizeof(StrCtx));
141 }
142 pvApiCtx->pstName = (char*)Tab[Fin-1].name;
143 (*(Tab[Fin-1].f))(Tab[Fin-1].name,Tab[Fin-1].F);
144 }
145 return 0;
146 }
147 #ifdef __cplusplus
148 }
149 #endif
+0
-82
interface/src/scilab/sci_gateway/c/loader.sce less more
0 // This file is released under the 3-clause BSD license. See COPYING-BSD.
1 // Generated by builder.sce : Please, do not edit this file
2 // ----------------------------------------------------------------------------
3 //
4 libscigetfem_c_path = get_absolute_file_path('loader.sce');
5 //
6 // ulink previous function with same name
7 [bOK, ilib] = c_link('libscigetfem_c');
8 if bOK then
9 ulink(ilib);
10 end
11 //
12 link(libscigetfem_c_path + filesep() + '../../src/c/libsp_get' + getdynlibext());
13 list_functions = [ 'gf_workspace';
14 'gf_delete';
15 'gf_undelete';
16 'gf_eltm';
17 'gf_geotrans';
18 'gf_geotrans_get';
19 'gf_integ';
20 'gf_integ_get';
21 'gf_global_function';
22 'gf_global_function_get';
23 'gf_fem';
24 'gf_fem_get';
25 'gf_cvstruct_get';
26 'gf_mesher_object';
27 'gf_mesher_object_get';
28 'gf_mesh';
29 'gf_mesh_get';
30 'gf_mesh_set';
31 'gf_mesh_fem';
32 'gf_mesh_fem_get';
33 'gf_mesh_fem_set';
34 'gf_mesh_im';
35 'gf_mesh_im_get';
36 'gf_mesh_im_set';
37 'gf_mesh_im_data';
38 'gf_mesh_im_data_get';
39 'gf_mesh_im_data_set';
40 'gf_model';
41 'gf_model_get';
42 'gf_model_set';
43 'gf_slice';
44 'gf_slice_get';
45 'gf_slice_set';
46 'gf_levelset';
47 'gf_levelset_get';
48 'gf_levelset_set';
49 'gf_mesh_levelset';
50 'gf_mesh_levelset_get';
51 'gf_mesh_levelset_set';
52 'gf_asm';
53 'gf_compute';
54 'gf_precond';
55 'gf_precond_get';
56 'gf_spmat';
57 'gf_spmat_get';
58 'gf_spmat_set';
59 'gf_linsolve';
60 'gf_util';
61 'gf_exit';
62 'gf_cont_struct_get';
63 'gf_cont_struct';
64 'sp_luinc';
65 'sp_lu';
66 'sp_lusolve';
67 'sp_cholinc';
68 'sp_chol';
69 'sp_chsolve';
70 'sp_cgne';
71 'sp_cgs';
72 'sp_gmres';
73 'sp_mgcr';
74 ];
75 addinter(libscigetfem_c_path + filesep() + 'libscigetfem_c' + getdynlibext(), 'libscigetfem_c', list_functions);
76 // remove temp. variables on stack
77 clear libscigetfem_c_path;
78 clear bOK;
79 clear ilib;
80 clear list_functions;
81 // ----------------------------------------------------------------------------
+0
-233
interface/src/scilab/sci_gateway/c/sci_cgne.c less more
0 /*===========================================================================
1
2 Copyright (C) 2009-2015 Yann Collette
3
4 This file is a part of GetFEM++
5
6 GetFEM++ is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version along with the GCC Runtime Library
10 Exception either version 3.1 or (at your option) any later version.
11 This program is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License and GCC Runtime Library Exception for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program; if not, write to the Free Software Foundation,
17 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
18
19 ===========================================================================*/
20 #include <stdio.h>
21
22 #include <api_scilab.h>
23 #include <MALLOC.h>
24 #include <stack-c.h>
25 #include <Scierror.h>
26 #include <sciprint.h>
27
28 #include <sparse2.h>
29 #include <iter.h>
30 #include <err.h>
31
32 //#define DEBUG
33
34 // x = cgs(A,b)
35 // cgs(A,b,tol)
36 // cgs(A,b,tol,maxit)
37 // cgs(A,b,tol,maxit,M)
38 // cgs(A,b,tol,maxit,M1,M2)
39 // cgs(A,b,tol,maxit,M1,M2,x0)
40 // [x,flag] = cgs(A,b,...)
41 // [x,flag,relres] = cgs(A,b,...)
42 // [x,flag,relres,iter] = cgs(A,b,...)
43 // [x,flag,relres,iter,resvec] = cgs(A,b,...)
44
45 // k : no. of direction (search) vectors; =0 - none
46 // maxit: upper bound on the no. of iter. steps
47 // steps: no. of iter. steps done
48 // tol: accuracy required
49
50 // iter_spcgne -- a simple interface to iter_cgne() which uses sparse matrix data structures
51 // -- assumes that B contains an actual preconditioner (or NULL)
52 // use always as follows:
53 // x = iter_spcgne(A,B,b,tol,x,limit,steps);
54 // or
55 // x = iter_spcgne(A,B,b,tol,VNULL,limit,steps);
56 // In the second case the solution vector is created.
57 // VEC * iter_spcgne(SPMAT * A, SPMAT * B, VEC * b, double tol, VEC * x, int limit, int * steps)
58
59 int sci_spcgne(char * fname)
60 {
61 // [x,[iter]] = pmgcr(A,b,tol,[maxit,[k,[B,[x0]]]])
62 int * A_pi_address = NULL, A_pi_nb_rows, A_pi_nb_cols, A_pi_nb_items, * A_pi_nb_items_row = NULL, * A_pi_col_pos = NULL;
63 double * A_pdbl_real = NULL;
64 int * B_pi_address = NULL, B_pi_nb_rows, B_pi_nb_cols, B_pi_nb_items, * B_pi_nb_items_row = NULL, * B_pi_col_pos = NULL;
65 double * B_pdbl_real = NULL;
66 int * b_pi_address = NULL, b_pi_nb_rows, b_pi_nb_cols;
67 double * b_pdbl_real = NULL;
68 int * tol_pi_address = NULL, tol_pi_nb_rows, tol_pi_nb_cols;
69 double * tol_pdbl_real = NULL;
70 int * maxit_pi_address = NULL, maxit_pi_nb_rows, maxit_pi_nb_cols;
71 double * maxit_pdbl_real = NULL;
72 int * x0_pi_address = NULL, x0_pi_nb_rows, x0_pi_nb_cols;
73 double * x0_pdbl_real = NULL;
74 int xsol_pi_nb_rows, xsol_pi_nb_cols;
75 double * xsol_pdbl_real = NULL;
76 int iter_pi_nb_rows, iter_pi_nb_cols;
77 double * iter_pdbl_real = NULL;
78 SciErr _SciErr;
79 int var_type;
80 SPMAT * A = NULL, * B = NULL;
81 VEC * b = NULL, * x0 = NULL, * xsol = NULL;
82 int Index, steps, i, j;
83
84 CheckRhs(3,7);
85 CheckLhs(1,2);
86
87 // Get A
88 _SciErr = getVarAddressFromPosition(pvApiCtx,1,&A_pi_address);
89
90 _SciErr = getVarType(pvApiCtx,A_pi_address,&var_type);
91 if (var_type!=sci_sparse)
92 {
93 Scierror(999,"%s: wrong parameter, a sparse matrix is needed\n",fname);
94 return 0;
95 }
96
97 if (isVarComplex(pvApiCtx,A_pi_address))
98 {
99 Scierror(999,"%s: wrong parameter, a real sparse matrix is needed\n",fname);
100 return 0;
101 }
102
103 _SciErr = getSparseMatrix(pvApiCtx,A_pi_address, &A_pi_nb_rows, &A_pi_nb_cols,
104 &A_pi_nb_items, &A_pi_nb_items_row, &A_pi_col_pos, &A_pdbl_real);
105
106 // Convert Scilab sparse into SPMAT
107 A = sp_get(A_pi_nb_rows, A_pi_nb_cols, 5);
108 Index = 0;
109 for(i=0;i<A_pi_nb_rows;i++)
110 {
111 for(j=0;j<A_pi_nb_items_row[i];j++)
112 {
113 sp_set_val(A,i,A_pi_col_pos[Index]-1, A_pdbl_real[Index]);
114 Index++;
115 }
116 }
117
118 // Get b
119 _SciErr = getVarAddressFromPosition(pvApiCtx,2,&b_pi_address);
120 _SciErr = getMatrixOfDouble(pvApiCtx,b_pi_address, &b_pi_nb_rows, &b_pi_nb_cols, &b_pdbl_real);
121
122 // Convert Scilab vector into VEC
123 b = v_get(b_pi_nb_rows);
124 for(i=0;i<b_pi_nb_rows;i++)
125 {
126 v_set_val(b,i,b_pdbl_real[i]);
127 }
128
129 // Get tol
130 _SciErr = getVarAddressFromPosition(pvApiCtx,3,&tol_pi_address);
131 _SciErr = getMatrixOfDouble(pvApiCtx,tol_pi_address, &tol_pi_nb_rows, &tol_pi_nb_cols, &tol_pdbl_real);
132
133 // Get optional maxit
134 if (Rhs>=4)
135 {
136 _SciErr = getVarAddressFromPosition(pvApiCtx,4,&maxit_pi_address);
137 _SciErr = getMatrixOfDouble(pvApiCtx,maxit_pi_address, &maxit_pi_nb_rows, &maxit_pi_nb_cols, &maxit_pdbl_real);
138 }
139
140 // Get optional B
141 if (Rhs>=5)
142 {
143 _SciErr = getVarAddressFromPosition(pvApiCtx,5,&B_pi_address);
144 _SciErr = getVarType(pvApiCtx,B_pi_address,&var_type);
145 if (var_type!=sci_sparse)
146 {
147 Scierror(999,"%s: wrong parameter, a sparse matrix is needed\n",fname);
148 return 0;
149 }
150
151 if (isVarComplex(pvApiCtx,B_pi_address))
152 {
153 Scierror(999,"%s: wrong parameter, a real sparse matrix is needed\n",fname);
154 return 0;
155 }
156
157 _SciErr = getSparseMatrix(pvApiCtx,B_pi_address, &B_pi_nb_rows, &B_pi_nb_cols,
158 &B_pi_nb_items, &B_pi_nb_items_row, &B_pi_col_pos, &B_pdbl_real);
159
160 // Convert SPMAT into Scilab sparse
161 B = sp_get(B_pi_nb_rows, B_pi_nb_cols, 5);
162 Index = 0;
163 for(i=0;i<B_pi_nb_rows;i++)
164 {
165 for(j=0;j<B_pi_nb_items_row[i];j++)
166 {
167 sp_set_val(B,i,B_pi_col_pos[Index]-1, B_pdbl_real[Index]);
168 Index++;
169 }
170 }
171 }
172
173 // Get optional x0
174 if (Rhs>=6)
175 {
176 _SciErr = getVarAddressFromPosition(pvApiCtx,6,&x0_pi_address);
177 _SciErr = getMatrixOfDouble(pvApiCtx,x0_pi_address, &x0_pi_nb_rows, &x0_pi_nb_cols, &x0_pdbl_real);
178
179 // Convert Scilab vector into VEC
180 x0 = v_get(x0_pi_nb_rows);
181 for(i=0;i<x0_pi_nb_rows;i++)
182 {
183 v_set_val(x0,i,x0_pdbl_real[i]);
184 }
185 }
186
187 // call iter_spcgne method.
188 //
189 catchall(xsol = iter_spcgne(A, B, b, *tol_pdbl_real, x0, (int)*maxit_pdbl_real, &steps),
190 Scierror(999,"%s: an error occured.\n",fname); return 0);
191
192 // Transfert xsol to Scilab
193 xsol_pdbl_real = (double *)MALLOC(b_pi_nb_rows*sizeof(double));
194 memcpy(xsol_pdbl_real,xsol->ve,b_pi_nb_rows*sizeof(double));
195 xsol_pi_nb_rows = b_pi_nb_rows;
196 xsol_pi_nb_cols = 1;
197 _SciErr = createMatrixOfDouble(pvApiCtx, Rhs+1, xsol_pi_nb_rows, xsol_pi_nb_cols, xsol_pdbl_real);
198 if (xsol_pdbl_real) FREE(xsol_pdbl_real);
199
200 LhsVar(1) = Rhs+1;
201
202 if (Lhs>=2)
203 {
204 iter_pdbl_real = (double *)MALLOC(1*sizeof(double));
205 *iter_pdbl_real = (double)steps;
206 iter_pi_nb_rows = 1;
207 iter_pi_nb_cols = 1;
208 _SciErr = createMatrixOfDouble(pvApiCtx, Rhs+2, iter_pi_nb_rows, iter_pi_nb_cols, iter_pdbl_real);
209 if (iter_pdbl_real) FREE(iter_pdbl_real);
210
211 LhsVar(2) = Rhs+2;
212 }
213
214 if (A) sp_free(A);
215 if (B) sp_free(B);
216 if (b) v_free(b);
217 //if (x0) v_free(x0);
218 if (xsol) v_free(xsol);
219
220
221 return 0;
222 }
223
224 // void iter_splanczos(SPMAT *A,int m,VEC *x0,VEC *a,VEC *b,Real *beta2, MAT *Q);
225
226 //// iter_sparnoldi -- uses arnoldi() with an explicit representation of A
227 //// MAT * iter_sparnoldi(SPMAT * A, VEC * x0, int m, Real * h_rem, MAT * Q, MAT * H)
228
229 //int sci_sparnoldi(char * fname)
230 //{
231 // return 0;
232 //}
+0
-249
interface/src/scilab/sci_gateway/c/sci_cgs.c less more
0 /*===========================================================================
1
2 Copyright (C) 2009-2015 Yann Collette
3
4 This file is a part of GetFEM++
5
6 GetFEM++ is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version along with the GCC Runtime Library
10 Exception either version 3.1 or (at your option) any later version.
11 This program is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License and GCC Runtime Library Exception for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program; if not, write to the Free Software Foundation,
17 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
18
19 ===========================================================================*/
20
21 #include <stdio.h>
22
23 #include <api_scilab.h>
24 #include <MALLOC.h>
25 #include <stack-c.h>
26 #include <Scierror.h>
27 #include <sciprint.h>
28
29 #include <sparse2.h>
30 #include <iter.h>
31 #include <err.h>
32
33 //#define DEBUG
34
35 // x = cgs(A,b)
36 // cgs(A,b,tol)
37 // cgs(A,b,tol,maxit)
38 // cgs(A,b,tol,maxit,M)
39 // cgs(A,b,tol,maxit,M1,M2)
40 // cgs(A,b,tol,maxit,M1,M2,x0)
41 // [x,flag] = cgs(A,b,...)
42 // [x,flag,relres] = cgs(A,b,...)
43 // [x,flag,relres,iter] = cgs(A,b,...)
44 // [x,flag,relres,iter,resvec] = cgs(A,b,...)
45
46 // k : no. of direction (search) vectors; =0 - none
47 // maxit: upper bound on the no. of iter. steps
48 // steps: no. of iter. steps done
49 // tol: accuracy required
50
51 // iter_spcgs -- simple interface for SPMAT data structures
52 // use always as follows:
53 // x = iter_spcgs(A,B,b,r0,tol,x,limit,steps);
54 // or
55 // x = iter_spcgs(A,B,b,r0,tol,VNULL,limit,steps);
56 // In the second case the solution vector is created.
57 // If B is not NULL then it is a preconditioner.
58 // VEC * iter_spcgs(SPMAT * A, SPMAT * B, VEC * b, VEC * r0, double tol, VEC * x, int limit, int * steps)
59
60 int sci_spcgs(char * fname)
61 {
62 // [x,flag,[relres,[iter,[resvec]]]] = cgs(A,b,tol,[maxit,[M,[x0]]])
63 int * A_pi_address = NULL, A_pi_nb_rows, A_pi_nb_cols, A_pi_nb_items, * A_pi_nb_items_row = NULL, * A_pi_col_pos = NULL;
64 double * A_pdbl_real = NULL;
65 int * b_pi_address = NULL, b_pi_nb_rows, b_pi_nb_cols;
66 double * b_pdbl_real = NULL;
67 int * tol_pi_address = NULL, tol_pi_nb_rows, tol_pi_nb_cols;
68 double * tol_pdbl_real = NULL;
69 int * maxit_pi_address = NULL, maxit_pi_nb_rows, maxit_pi_nb_cols;
70 double * maxit_pdbl_real = NULL;
71 int * M_pi_address = NULL, M_pi_nb_rows, M_pi_nb_cols, M_pi_nb_items, * M_pi_nb_items_row = NULL, * M_pi_col_pos = NULL;
72 double * M_pdbl_real = NULL;
73 int * x0_pi_address = NULL, x0_pi_nb_rows, x0_pi_nb_cols;
74 double * x0_pdbl_real = NULL;
75 int xsol_pi_nb_rows, xsol_pi_nb_cols;
76 double * xsol_pdbl_real = NULL;
77 int iter_pi_nb_rows, iter_pi_nb_cols;
78 double * iter_pdbl_real = NULL;
79 int resvec_pi_nb_rows, resvec_pi_nb_cols;
80 double * resvec_pdbl_real = NULL;
81 SciErr _SciErr;
82 int var_type;
83 SPMAT * A = NULL;
84 VEC * b = NULL, * x0 = NULL, * r0 = NULL, * xsol = NULL;
85 SPMAT * M = NULL;
86 int Index, steps, i, j;
87
88 CheckRhs(3,7);
89 CheckLhs(1,5);
90
91 // Get A
92 _SciErr = getVarAddressFromPosition(pvApiCtx,1,&A_pi_address);
93
94 _SciErr = getVarType(pvApiCtx,A_pi_address,&var_type);
95 if (var_type!=sci_sparse)
96 {
97 Scierror(999,"%s: wrong parameter, a sparse matrix is needed\n",fname);
98 return 0;
99 }
100
101 if (isVarComplex(pvApiCtx,A_pi_address))
102 {
103 Scierror(999,"%s: wrong parameter, a real sparse matrix is needed\n",fname);
104 return 0;
105 }
106
107 _SciErr = getSparseMatrix(pvApiCtx,A_pi_address, &A_pi_nb_rows, &A_pi_nb_cols,
108 &A_pi_nb_items, &A_pi_nb_items_row, &A_pi_col_pos, &A_pdbl_real);
109
110 // Convert Scilab sparse into SPMAT
111 A = sp_get(A_pi_nb_rows, A_pi_nb_cols, 5);
112 Index = 0;
113 for(i=0;i<A_pi_nb_rows;i++)
114 {
115 for(j=0;j<A_pi_nb_items_row[i];j++)
116 {
117 sp_set_val(A,i,A_pi_col_pos[Index]-1, A_pdbl_real[Index]);
118 Index++;
119 }
120 }
121
122 // Get b
123 _SciErr = getVarAddressFromPosition(pvApiCtx,2,&b_pi_address);
124 _SciErr = getMatrixOfDouble(pvApiCtx,b_pi_address, &b_pi_nb_rows, &b_pi_nb_cols, &b_pdbl_real);
125
126 // Convert Scilab vector into VEC
127 b = v_get(b_pi_nb_rows);
128 r0 = v_get(b_pi_nb_rows);
129 for(i=0;i<b_pi_nb_rows;i++)
130 {
131 v_set_val(b,i,b_pdbl_real[i]);
132 v_set_val(r0,i,1.0);
133 }
134
135 // Get tol
136 _SciErr = getVarAddressFromPosition(pvApiCtx,3,&tol_pi_address);
137 _SciErr = getMatrixOfDouble(pvApiCtx,tol_pi_address, &tol_pi_nb_rows, &tol_pi_nb_cols, &tol_pdbl_real);
138
139 // Get optional maxit
140 if (Rhs>=4)
141 {
142 _SciErr = getVarAddressFromPosition(pvApiCtx,4,&maxit_pi_address);
143 _SciErr = getMatrixOfDouble(pvApiCtx,maxit_pi_address, &maxit_pi_nb_rows, &maxit_pi_nb_cols, &maxit_pdbl_real);
144 }
145
146 // Get optional M
147 if (Rhs>=5)
148 {
149 _SciErr = getVarAddressFromPosition(pvApiCtx,5,&M_pi_address);
150 _SciErr = getVarType(pvApiCtx,M_pi_address,&var_type);
151 if (var_type!=sci_sparse)
152 {
153 Scierror(999,"%s: wrong parameter, a sparse matrix is needed\n",fname);
154 return 0;
155 }
156
157 if (isVarComplex(pvApiCtx,M_pi_address))
158 {
159 Scierror(999,"%s: wrong parameter, a real sparse matrix is needed\n",fname);
160 return 0;
161 }
162
163 _SciErr = getSparseMatrix(pvApiCtx,M_pi_address, &M_pi_nb_rows, &M_pi_nb_cols,
164 &M_pi_nb_items, &M_pi_nb_items_row, &M_pi_col_pos, &M_pdbl_real);
165
166 // Convert SPMAT into Scilab sparse
167 M = sp_get(M_pi_nb_rows, M_pi_nb_cols, 5);
168 Index = 0;
169 for(i=0;i<M_pi_nb_rows;i++)
170 {
171 for(j=0;j<M_pi_nb_items_row[i];j++)
172 {
173 sp_set_val(M,i,M_pi_col_pos[Index]-1, M_pdbl_real[Index]);
174 Index++;
175 }
176 }
177 }
178
179 // Get optional x0
180 if (Rhs>=6)
181 {
182 _SciErr = getVarAddressFromPosition(pvApiCtx,6,&x0_pi_address);
183 _SciErr = getMatrixOfDouble(pvApiCtx,x0_pi_address, &x0_pi_nb_rows, &x0_pi_nb_cols, &x0_pdbl_real);
184
185 // Convert Scilab vector into VEC
186 x0 = v_get(x0_pi_nb_rows);
187 for(i=0;i<x0_pi_nb_rows;i++)
188 {
189 v_set_val(x0,i,x0_pdbl_real[i]);
190 }
191 }
192 else
193 {
194 x0 = v_get(b_pi_nb_rows);
195 for(i=0;i<b_pi_nb_rows;i++)
196 {
197 v_set_val(x0,i,0.0);
198 }
199 }
200
201 // call iter_spcgs method.
202
203 catchall(xsol = iter_spcgs(A, M, b, r0, *tol_pdbl_real, x0, (int)*maxit_pdbl_real, &steps),
204 Scierror(999,"%s: an error (%d) occured.\n",fname,_err_num); return 0);
205
206 // Transfert xsol to Scilab
207 xsol_pdbl_real = (double *)MALLOC(b_pi_nb_rows*sizeof(double));
208 memcpy(xsol_pdbl_real,xsol->ve,b_pi_nb_rows*sizeof(double));
209 xsol_pi_nb_rows = b_pi_nb_rows;
210 xsol_pi_nb_cols = 1;
211 _SciErr = createMatrixOfDouble(pvApiCtx, Rhs+1, xsol_pi_nb_rows, xsol_pi_nb_cols, xsol_pdbl_real);
212 if (xsol_pdbl_real) FREE(xsol_pdbl_real);
213
214 LhsVar(1) = Rhs+1;
215
216 if (Lhs>=2)
217 {
218 iter_pdbl_real = (double *)MALLOC(1*sizeof(double));
219 *iter_pdbl_real = (double)steps;
220 iter_pi_nb_rows = 1;
221 iter_pi_nb_cols = 1;
222 _SciErr = createMatrixOfDouble(pvApiCtx, Rhs+2, iter_pi_nb_rows, iter_pi_nb_cols, iter_pdbl_real);
223 if (iter_pdbl_real) FREE(iter_pdbl_real);
224
225 LhsVar(2) = Rhs+2;
226 }
227
228 if (Lhs>=3)
229 {
230 resvec_pdbl_real = (double *)MALLOC(b_pi_nb_rows*sizeof(double));
231 memcpy(resvec_pdbl_real,r0->ve,b_pi_nb_rows*sizeof(double));
232 resvec_pi_nb_rows = b_pi_nb_rows;
233 resvec_pi_nb_cols = 1;
234 _SciErr = createMatrixOfDouble(pvApiCtx, Rhs+3, resvec_pi_nb_rows, resvec_pi_nb_cols, resvec_pdbl_real);
235 if (resvec_pdbl_real) FREE(resvec_pdbl_real);
236
237 LhsVar(3) = Rhs+3;
238 }
239
240 if (A) sp_free(A);
241 if (b) v_free(b);
242 if (x0) v_free(x0);
243 if (r0) v_free(r0);
244 //if (xsol) v_free(xsol);
245 if (M) sp_free(M);
246
247 return 0;
248 }
+0
-226
interface/src/scilab/sci_gateway/c/sci_gmres.c less more
0 /*===========================================================================
1
2 Copyright (C) 2009-2015 Yann Collette
3
4 This file is a part of GetFEM++
5
6 GetFEM++ is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version along with the GCC Runtime Library
10 Exception either version 3.1 or (at your option) any later version.
11 This program is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License and GCC Runtime Library Exception for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program; if not, write to the Free Software Foundation,
17 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
18
19 ===========================================================================*/
20
21 #include <stdio.h>
22
23 #include <api_scilab.h>
24 #include <MALLOC.h>
25 #include <stack-c.h>
26 #include <Scierror.h>
27 #include <sciprint.h>
28
29 #include <sparse2.h>
30 #include <iter.h>
31 #include <err.h>
32
33 //#define DEBUG
34
35 // x = cgs(A,b)
36 // cgs(A,b,tol)
37 // cgs(A,b,tol,maxit)
38 // cgs(A,b,tol,maxit,M)
39 // cgs(A,b,tol,maxit,M1,M2)
40 // cgs(A,b,tol,maxit,M1,M2,x0)
41 // [x,flag] = cgs(A,b,...)
42 // [x,flag,relres] = cgs(A,b,...)
43 // [x,flag,relres,iter] = cgs(A,b,...)
44 // [x,flag,relres,iter,resvec] = cgs(A,b,...)
45
46 // k : no. of direction (search) vectors; =0 - none
47 // maxit: upper bound on the no. of iter. steps
48 // steps: no. of iter. steps done
49 // tol: accuracy required
50
51 // iter_spgmres - a simple interface to iter_gmres
52 // VEC * iter_spgmres(SPMAT * A, SPMAT * B, VEC * b, double tol, VEC * x, int k, int maxit, int * steps)
53
54 int sci_spgmres(char * fname)
55 {
56 // [x,[iter]] = gmres(A,b,tol,[maxit,[k,[B,[x0]]]])
57 int * A_pi_address = NULL, A_pi_nb_rows, A_pi_nb_cols, A_pi_nb_items, * A_pi_nb_items_row = NULL, * A_pi_col_pos = NULL;
58 double * A_pdbl_real = NULL;
59 int * B_pi_address = NULL, B_pi_nb_rows, B_pi_nb_cols, B_pi_nb_items, * B_pi_nb_items_row = NULL, * B_pi_col_pos = NULL;
60 double * B_pdbl_real = NULL;
61 int * b_pi_address = NULL, b_pi_nb_rows, b_pi_nb_cols;
62 double * b_pdbl_real = NULL;
63 int * tol_pi_address = NULL, tol_pi_nb_rows, tol_pi_nb_cols;
64 double * tol_pdbl_real = NULL;
65 int * maxit_pi_address = NULL, maxit_pi_nb_rows, maxit_pi_nb_cols;
66 double * maxit_pdbl_real = NULL;
67 int * k_pi_address = NULL, k_pi_nb_rows, k_pi_nb_cols;
68 double * k_pdbl_real = NULL;
69 int * x0_pi_address = NULL, x0_pi_nb_rows, x0_pi_nb_cols;
70 double * x0_pdbl_real = NULL;
71 int xsol_pi_nb_rows, xsol_pi_nb_cols;
72 double * xsol_pdbl_real = NULL;
73 int iter_pi_nb_rows, iter_pi_nb_cols;
74 double * iter_pdbl_real = NULL;
75 SciErr _SciErr;
76 int var_type;
77 SPMAT * A = NULL, * B = NULL;
78 VEC * b = NULL, * x0 = NULL, * xsol = NULL;
79 int Index, steps, i, j, k = 0;
80
81 CheckRhs(3,7);
82 CheckLhs(1,2);
83
84 // Get A
85 _SciErr = getVarAddressFromPosition(pvApiCtx,1,&A_pi_address);
86
87 _SciErr = getVarType(pvApiCtx,A_pi_address,&var_type);
88 if (var_type!=sci_sparse)
89 {
90 Scierror(999,"%s: wrong parameter, a sparse matrix is needed\n",fname);
91 return 0;
92 }
93
94 if (isVarComplex(pvApiCtx,A_pi_address))
95 {
96 Scierror(999,"%s: wrong parameter, a real sparse matrix is needed\n",fname);
97 return 0;
98 }
99
100 _SciErr = getSparseMatrix(pvApiCtx,A_pi_address, &A_pi_nb_rows, &A_pi_nb_cols,
101 &A_pi_nb_items, &A_pi_nb_items_row, &A_pi_col_pos, &A_pdbl_real);
102
103 // Convert Scilab sparse into SPMAT
104 A = sp_get(A_pi_nb_rows, A_pi_nb_cols, 5);
105 Index = 0;
106 for(i=0;i<A_pi_nb_rows;i++)
107 {
108 for(j=0;j<A_pi_nb_items_row[i];j++)
109 {
110 sp_set_val(A,i,A_pi_col_pos[Index]-1, A_pdbl_real[Index]);
111 Index++;
112 }
113 }
114
115 // Get b
116 _SciErr = getVarAddressFromPosition(pvApiCtx,2,&b_pi_address);
117 _SciErr = getMatrixOfDouble(pvApiCtx,b_pi_address, &b_pi_nb_rows, &b_pi_nb_cols, &b_pdbl_real);
118
119 // Convert Scilab vector into VEC
120 b = v_get(b_pi_nb_rows);
121 for(i=0;i<b_pi_nb_rows;i++)
122 {
123 v_set_val(b,i,b_pdbl_real[i]);
124 }
125
126 // Get tol
127 _SciErr = getVarAddressFromPosition(pvApiCtx,3,&tol_pi_address);
128 _SciErr = getMatrixOfDouble(pvApiCtx,tol_pi_address, &tol_pi_nb_rows, &tol_pi_nb_cols, &tol_pdbl_real);
129
130 // Get optional maxit
131 if (Rhs>=4)
132 {
133 _SciErr = getVarAddressFromPosition(pvApiCtx,4,&maxit_pi_address);
134 _SciErr = getMatrixOfDouble(pvApiCtx,maxit_pi_address, &maxit_pi_nb_rows, &maxit_pi_nb_cols, &maxit_pdbl_real);
135 }
136
137 // Get optional k
138 if (Rhs>=5)
139 {
140 _SciErr = getVarAddressFromPosition(pvApiCtx,5,&k_pi_address);
141 _SciErr = getMatrixOfDouble(pvApiCtx,k_pi_address, &k_pi_nb_rows, &k_pi_nb_cols, &k_pdbl_real);
142 }
143
144 // Get optional B
145 if (Rhs>=5)
146 {
147 _SciErr = getVarAddressFromPosition(pvApiCtx,5,&B_pi_address);
148 _SciErr = getVarType(pvApiCtx,B_pi_address,&var_type);
149 if (var_type!=sci_sparse)
150 {
151 Scierror(999,"%s: wrong parameter, a sparse matrix is needed\n",fname);
152 return 0;
153 }
154
155 if (isVarComplex(pvApiCtx,B_pi_address))
156 {
157 Scierror(999,"%s: wrong parameter, a real sparse matrix is needed\n",fname);
158 return 0;
159 }
160
161 _SciErr = getSparseMatrix(pvApiCtx,B_pi_address, &B_pi_nb_rows, &B_pi_nb_cols,
162 &B_pi_nb_items, &B_pi_nb_items_row, &B_pi_col_pos, &B_pdbl_real);
163
164 // Convert SPMAT into Scilab sparse
165 B = sp_get(B_pi_nb_rows, B_pi_nb_cols, 5);
166 Index = 0;
167 for(i=0;i<B_pi_nb_rows;i++)
168 {
169 for(j=0;j<B_pi_nb_items_row[i];j++)
170 {
171 sp_set_val(B,i,B_pi_col_pos[Index]-1, B_pdbl_real[Index]);
172 Index++;
173 }
174 }
175 }
176
177 // Get optional x0
178 if (Rhs>=6)
179 {
180 _SciErr = getVarAddressFromPosition(pvApiCtx,6,&x0_pi_address);
181 _SciErr = getMatrixOfDouble(pvApiCtx,x0_pi_address, &x0_pi_nb_rows, &x0_pi_nb_cols, &x0_pdbl_real);
182
183 // Convert Scilab vector into VEC
184 x0 = v_get(x0_pi_nb_rows);
185 for(i=0;i<x0_pi_nb_rows;i++)
186 {
187 v_set_val(x0,i,x0_pdbl_real[i]);
188 }
189 }
190
191
192 // call iter_spgmres method.
193 catchall(xsol = iter_spgmres(A, B, b, *tol_pdbl_real, x0, k, (int)*maxit_pdbl_real, &steps),
194 Scierror(999,"%s: an error occured.\n",fname); return 0);
195
196 // Transfert xsol to Scilab
197 xsol_pdbl_real = (double *)MALLOC(b_pi_nb_rows*sizeof(double));
198 memcpy(xsol_pdbl_real,xsol->ve,b_pi_nb_rows*sizeof(double));
199 xsol_pi_nb_rows = b_pi_nb_rows;
200 xsol_pi_nb_cols = 1;
201 _SciErr = createMatrixOfDouble(pvApiCtx, Rhs+1, xsol_pi_nb_rows, xsol_pi_nb_cols, xsol_pdbl_real);
202 if (xsol_pdbl_real) FREE(xsol_pdbl_real);
203
204 LhsVar(1) = Rhs+1;
205
206 if (Lhs>=2)
207 {
208 iter_pdbl_real = (double *)MALLOC(1*sizeof(double));
209 *iter_pdbl_real = (double)steps;
210 iter_pi_nb_rows = 1;
211 iter_pi_nb_cols = 1;
212 _SciErr = createMatrixOfDouble(pvApiCtx, Rhs+2, iter_pi_nb_rows, iter_pi_nb_cols, iter_pdbl_real);
213 if (iter_pdbl_real) FREE(iter_pdbl_real);
214
215 LhsVar(2) = Rhs+2;
216 }
217
218 if (A) sp_free(A);
219 if (B) sp_free(B);
220 if (b) v_free(b);
221 if (x0) v_free(x0);
222 //if (xsol) v_free(xsol);
223
224 return 0;
225 }
+0
-225
interface/src/scilab/sci_gateway/c/sci_mgcr.c less more
0 /*===========================================================================
1
2 Copyright (C) 2009-2015 Yann Collette
3
4 This file is a part of GetFEM++
5
6 GetFEM++ is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version along with the GCC Runtime Library
10 Exception either version 3.1 or (at your option) any later version.
11 This program is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License and GCC Runtime Library Exception for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program; if not, write to the Free Software Foundation,
17 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
18
19 ===========================================================================*/
20
21 #include <stdio.h>
22
23 #include <api_scilab.h>
24 #include <MALLOC.h>
25 #include <stack-c.h>
26 #include <Scierror.h>
27 #include <sciprint.h>
28
29 #include <sparse2.h>
30 #include <iter.h>
31 #include <err.h>
32
33 //#define DEBUG
34
35 // x = cgs(A,b)
36 // cgs(A,b,tol)
37 // cgs(A,b,tol,maxit)
38 // cgs(A,b,tol,maxit,M)
39 // cgs(A,b,tol,maxit,M1,M2)
40 // cgs(A,b,tol,maxit,M1,M2,x0)
41 // [x,flag] = cgs(A,b,...)
42 // [x,flag,relres] = cgs(A,b,...)
43 // [x,flag,relres,iter] = cgs(A,b,...)
44 // [x,flag,relres,iter,resvec] = cgs(A,b,...)
45
46 // k : no. of direction (search) vectors; =0 - none
47 // maxit: upper bound on the no. of iter. steps
48 // steps: no. of iter. steps done
49 // tol: accuracy required
50
51 // iter_spmgcr - a simple interface to iter_mgcr
52 // VEC * iter_spmgcr(SPMAT * A, SPMAT * B, VEC * b, double tol, VEC * x, int k, int limit, int * steps)
53
54 int sci_spmgcr(char * fname)
55 {
56 // [x,[iter]] = pmgcr(A,b,tol,[maxit,[k,[B,[x0]]]])
57 int * A_pi_address = NULL, A_pi_nb_rows, A_pi_nb_cols, A_pi_nb_items, * A_pi_nb_items_row = NULL, * A_pi_col_pos = NULL;
58 double * A_pdbl_real = NULL;
59 int * B_pi_address = NULL, B_pi_nb_rows, B_pi_nb_cols, B_pi_nb_items, * B_pi_nb_items_row = NULL, * B_pi_col_pos = NULL;
60 double * B_pdbl_real = NULL;
61 int * b_pi_address = NULL, b_pi_nb_rows, b_pi_nb_cols;
62 double * b_pdbl_real = NULL;
63 int * tol_pi_address = NULL, tol_pi_nb_rows, tol_pi_nb_cols;
64 double * tol_pdbl_real = NULL;
65 int * maxit_pi_address = NULL, maxit_pi_nb_rows, maxit_pi_nb_cols;
66 double * maxit_pdbl_real = NULL;
67 int * k_pi_address = NULL, k_pi_nb_rows, k_pi_nb_cols;
68 double * k_pdbl_real = NULL;
69 int * x0_pi_address = NULL, x0_pi_nb_rows, x0_pi_nb_cols;
70 double * x0_pdbl_real = NULL;
71 int xsol_pi_nb_rows, xsol_pi_nb_cols;
72 double * xsol_pdbl_real = NULL;
73 int iter_pi_nb_rows, iter_pi_nb_cols;
74 double * iter_pdbl_real = NULL;
75 SciErr _SciErr;
76 int var_type;
77 SPMAT * A = NULL, * B = NULL;
78 VEC * b = NULL, * x0 = NULL, * xsol = NULL;
79 int Index, steps, i, j, k = 0;
80
81 CheckRhs(3,7);
82 CheckLhs(1,2);
83
84 // Get A
85 _SciErr = getVarAddressFromPosition(pvApiCtx,1,&A_pi_address);
86
87 _SciErr = getVarType(pvApiCtx,A_pi_address,&var_type);
88 if (var_type!=sci_sparse)
89 {
90 Scierror(999,"%s: wrong parameter, a sparse matrix is needed\n",fname);
91 return 0;
92 }
93
94 if (isVarComplex(pvApiCtx,A_pi_address))
95 {
96 Scierror(999,"%s: wrong parameter, a real sparse matrix is needed\n",fname);
97 return 0;
98 }
99
100 _SciErr = getSparseMatrix(pvApiCtx,A_pi_address, &A_pi_nb_rows, &A_pi_nb_cols,
101 &A_pi_nb_items, &A_pi_nb_items_row, &A_pi_col_pos, &A_pdbl_real);
102
103 // Convert Scilab sparse into SPMAT
104 A = sp_get(A_pi_nb_rows, A_pi_nb_cols, 5);
105 Index = 0;
106 for(i=0;i<A_pi_nb_rows;i++)
107 {
108 for(j=0;j<A_pi_nb_items_row[i];j++)
109 {
110 sp_set_val(A,i,A_pi_col_pos[Index]-1, A_pdbl_real[Index]);
111 Index++;
112 }
113 }
114
115 // Get b
116 _SciErr = getVarAddressFromPosition(pvApiCtx,2,&b_pi_address);
117 _SciErr = getMatrixOfDouble(pvApiCtx,b_pi_address, &b_pi_nb_rows, &b_pi_nb_cols, &b_pdbl_real);
118
119 // Convert Scilab vector into VEC
120 b = v_get(b_pi_nb_rows);
121 for(i=0;i<b_pi_nb_rows;i++)
122 {
123 v_set_val(b,i,b_pdbl_real[i]);
124 }
125
126 // Get tol
127 _SciErr = getVarAddressFromPosition(pvApiCtx,3,&tol_pi_address);
128 _SciErr = getMatrixOfDouble(pvApiCtx,tol_pi_address, &tol_pi_nb_rows, &tol_pi_nb_cols, &tol_pdbl_real);
129
130 // Get optional maxit
131 if (Rhs>=4)
132 {
133 _SciErr = getVarAddressFromPosition(pvApiCtx,4,&maxit_pi_address);
134 _SciErr = getMatrixOfDouble(pvApiCtx,maxit_pi_address, &maxit_pi_nb_rows, &maxit_pi_nb_cols, &maxit_pdbl_real);
135 }
136
137 // Get optional k
138 if (Rhs>=5)
139 {
140 _SciErr = getVarAddressFromPosition(pvApiCtx,5,&k_pi_address);
141 _SciErr = getMatrixOfDouble(pvApiCtx,k_pi_address, &k_pi_nb_rows, &k_pi_nb_cols, &k_pdbl_real);
142 }
143
144 // Get optional B
145 if (Rhs>=6)
146 {
147 _SciErr = getVarAddressFromPosition(pvApiCtx,6,&B_pi_address);
148 _SciErr = getVarType(pvApiCtx,B_pi_address,&var_type);
149 if (var_type!=sci_sparse)
150 {
151 Scierror(999,"%s: wrong parameter, a sparse matrix is needed\n",fname);
152 return 0;
153 }
154
155 if (isVarComplex(pvApiCtx,B_pi_address))
156 {
157 Scierror(999,"%s: wrong parameter, a real sparse matrix is needed\n",fname);
158 return 0;
159 }
160
161 _SciErr = getSparseMatrix(pvApiCtx,B_pi_address, &B_pi_nb_rows, &B_pi_nb_cols,
162 &B_pi_nb_items, &B_pi_nb_items_row, &B_pi_col_pos, &B_pdbl_real);
163
164 // Convert SPMAT into Scilab sparse
165 B = sp_get(B_pi_nb_rows, B_pi_nb_cols, 5);
166 Index = 0;
167 for(i=0;i<B_pi_nb_rows;i++)
168 {
169 for(j=0;j<B_pi_nb_items_row[i];j++)
170 {
171 sp_set_val(B,i,B_pi_col_pos[Index]-1, B_pdbl_real[Index]);
172 Index++;
173 }
174 }
175 }
176
177 // Get optional x0
178 if (Rhs>=7)
179 {
180 _SciErr = getVarAddressFromPosition(pvApiCtx,7,&x0_pi_address);
181 _SciErr = getMatrixOfDouble(pvApiCtx,x0_pi_address, &x0_pi_nb_rows, &x0_pi_nb_cols, &x0_pdbl_real);
182
183 // Convert Scilab vector into VEC
184 x0 = v_get(x0_pi_nb_rows);
185 for(i=0;i<x0_pi_nb_rows;i++)
186 {
187 v_set_val(x0,i,x0_pdbl_real[i]);
188 }
189 }
190
191 // call iter_spmgcr method.
192 catchall(xsol = iter_spmgcr(A, B, b, *tol_pdbl_real, x0, k, (int)*maxit_pdbl_real, &steps),
193 Scierror(999,"%s: an error occured.\n",fname); return 0);
194
195 // Transfert xsol to Scilab
196 xsol_pdbl_real = (double *)MALLOC(b_pi_nb_rows*sizeof(double));
197 memcpy(xsol_pdbl_real,xsol->ve,b_pi_nb_rows*sizeof(double));
198 xsol_pi_nb_rows = b_pi_nb_rows;
199 xsol_pi_nb_cols = 1;
200 _SciErr = createMatrixOfDouble(pvApiCtx, Rhs+1, xsol_pi_nb_rows, xsol_pi_nb_cols, xsol_pdbl_real);
201 if (xsol_pdbl_real) FREE(xsol_pdbl_real);
202
203 LhsVar(1) = Rhs+1;
204
205 if (Lhs>=2)
206 {
207 iter_pdbl_real = (double *)MALLOC(1*sizeof(double));
208 *iter_pdbl_real = (double)steps;
209 iter_pi_nb_rows = 1;
210 iter_pi_nb_cols = 1;
211 _SciErr = createMatrixOfDouble(pvApiCtx, Rhs+2, iter_pi_nb_rows, iter_pi_nb_cols, iter_pdbl_real);
212 if (iter_pdbl_real) FREE(iter_pdbl_real);
213
214 LhsVar(2) = Rhs+2;
215 }
216
217 if (A) sp_free(A);
218 if (B) sp_free(B);
219 if (b) v_free(b);
220 if (x0) v_free(x0);
221 //if (xsol) v_free(xsol);
222
223 return 0;
224 }
+0
-126
interface/src/scilab/sci_gateway/c/sci_spchol.c less more
0 /*===========================================================================
1
2 Copyright (C) 2011-2015 Yann Collette.
3
4 This file is a part of GetFEM++
5
6 GetFEM++ is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version along with the GCC Runtime Library
10 Exception either version 3.1 or (at your option) any later version.
11 This program is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License and GCC Runtime Library Exception for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program; if not, write to the Free Software Foundation,
17 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
18
19 ===========================================================================*/
20 #include <api_scilab.h>
21 #include <api_scilab.h>
22 #include <MALLOC.h>
23 #include <stack-c.h>
24 #include <Scierror.h>
25 #include <sciprint.h>
26
27 #include <sparse2.h>
28 #include <err.h>
29
30 //#define DEBUG
31
32 int sci_spchol(char * fname)
33 {
34 int p_in_spmat_nb_rows, p_in_spmat_nb_cols, p_in_spmat_nb_items;
35 int * p_in_spmat_address;
36 int * p_in_spmat_items_row = NULL;
37 int * p_in_spmat_col_pos = NULL;
38 double * p_in_spmat_val = NULL;
39 SPMAT * A = NULL;
40 int Index, i, j;
41 int * p_out_spmat_item_row = NULL;
42 int * p_out_spmat_col_pos = NULL;
43 double * p_out_spmat_val = NULL;
44 int nnz = 0, var_type;
45 SciErr _SciErr;
46
47 CheckRhs(1,1);
48 CheckLhs(1,1);
49
50 // First, access to the input variable (a matrix of strings)
51 _SciErr = getVarAddressFromPosition(pvApiCtx,1,&p_in_spmat_address);
52
53 _SciErr = getVarType(pvApiCtx,p_in_spmat_address,&var_type);
54 if (var_type!=sci_sparse)
55 {
56 Scierror(999,"%s: wrong parameter, a sparse matrix is needed\n",fname);
57 return 0;
58 }
59
60 if (isVarComplex(pvApiCtx,p_in_spmat_address))
61 {
62 Scierror(999,"%s: wrong parameter, a real sparse matrix is needed\n",fname);
63 return 0;
64 }
65
66 _SciErr = getSparseMatrix(pvApiCtx,p_in_spmat_address, &p_in_spmat_nb_rows, &p_in_spmat_nb_cols,
67 &p_in_spmat_nb_items, &p_in_spmat_items_row, &p_in_spmat_col_pos, &p_in_spmat_val);
68
69 ///////////////////////////////
70 // Proceed the factorization //
71 ///////////////////////////////
72
73 // Fill the Meschash matrix
74 A = sp_get(p_in_spmat_nb_rows, p_in_spmat_nb_cols, 5);
75 Index = 0;
76 for(i=0;i<p_in_spmat_nb_rows;i++)
77 {
78 for(j=0;j<p_in_spmat_items_row[i];j++)
79 {
80 sp_set_val(A,i,p_in_spmat_col_pos[Index]-1, p_in_spmat_val[Index]);
81 Index++;
82 }
83 }
84
85 // Factorization
86 catchall(spCHfactor(A),Scierror(999,"%s: an error occured.\n",fname); return 0);
87
88 // Now, create the result
89 A = sp_col_access(A);
90 for(i=0;i<A->m; i++) nnz += A->row[i].len;
91
92 p_out_spmat_item_row = (int *)MALLOC(p_in_spmat_nb_rows*sizeof(int));
93 p_out_spmat_col_pos = (int *)MALLOC(nnz*sizeof(int));
94 p_out_spmat_val = (double *)MALLOC(nnz*sizeof(double));
95
96 // Get the L matrix
97 Index = 0;
98 for(i=0;i<p_in_spmat_nb_rows;i++)
99 {
100 p_out_spmat_item_row[i] = 0;
101 for(j=0;j<A->row[i].len;j++)
102 {
103 if (A->row[i].elt[j].col<=i)
104 {
105 p_out_spmat_item_row[i]++;
106 p_out_spmat_col_pos[Index] = A->row[i].elt[j].col+1;
107 p_out_spmat_val[Index] = A->row[i].elt[j].val;
108 Index++;
109 }
110 }
111 }
112
113 _SciErr = createSparseMatrix(pvApiCtx,Rhs+1, p_in_spmat_nb_rows, p_in_spmat_nb_cols, Index,
114 p_out_spmat_item_row, p_out_spmat_col_pos, p_out_spmat_val);
115
116 LhsVar(1) = Rhs+1;
117
118 if (A) sp_free(A);
119
120 if (p_out_spmat_item_row) FREE(p_out_spmat_item_row);
121 if (p_out_spmat_col_pos) FREE(p_out_spmat_col_pos);
122 if (p_out_spmat_val) FREE(p_out_spmat_val);
123
124 return 0;
125 }
+0
-131
interface/src/scilab/sci_gateway/c/sci_spcholinc.c less more
0 /*===========================================================================
1
2 Copyright (C) 2009-2015 Yann Collette
3
4 This file is a part of GetFEM++
5
6 GetFEM++ is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version along with the GCC Runtime Library
10 Exception either version 3.1 or (at your option) any later version.
11 This program is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License and GCC Runtime Library Exception for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program; if not, write to the Free Software Foundation,
17 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
18
19 ===========================================================================*/
20
21 #include <api_scilab.h>
22 #include <MALLOC.h>
23 #include <stack-c.h>
24 #include <sciprint.h>
25 #include <Scierror.h>
26
27 #include <sparse2.h>
28 #include <err.h>
29
30 //#define DEBUG
31
32 int sci_spcholinc(char * fname)
33 {
34 int p_in_spmat_nb_rows, p_in_spmat_nb_cols, p_in_spmat_nb_items;
35 int * p_in_spmat_address;
36 int * p_in_spmat_items_row = NULL;
37 int * p_in_spmat_col_pos = NULL;
38 double * p_in_spmat_val = NULL;
39 SPMAT * A = NULL;
40 int Index, i, j;
41 int * p_out_spmat_item_row = NULL;
42 int * p_out_spmat_col_pos = NULL;
43 double * p_out_spmat_val = NULL;
44 int nnz = 0, var_type;
45 SciErr _SciErr;
46
47 CheckRhs(1,1);
48 CheckLhs(1,1);
49
50 // First, access to the input variable (a matrix of strings)
51
52 _SciErr = getVarAddressFromPosition(pvApiCtx,1,&p_in_spmat_address);
53
54 _SciErr = getVarType(pvApiCtx,p_in_spmat_address,&var_type);
55 if (var_type!=sci_sparse)
56 {
57 Scierror(999,"%s: wrong parameter, a sparse matrix is needed\n",fname);
58 return 0;
59 }
60
61 if (isVarComplex(pvApiCtx,p_in_spmat_address))
62 {
63 Scierror(999,"%s: wrong parameter, a real sparse matrix is needed\n",fname);
64 return 0;
65 }
66
67 _SciErr = getSparseMatrix(pvApiCtx,p_in_spmat_address, &p_in_spmat_nb_rows, &p_in_spmat_nb_cols,
68 &p_in_spmat_nb_items, &p_in_spmat_items_row, &p_in_spmat_col_pos, &p_in_spmat_val);
69
70 #ifdef DEBUG
71 sciprint("DEBUG: %d, %d\n",p_in_spmat_nb_rows, p_in_spmat_nb_cols);
72 #endif
73
74 ///////////////////////////////
75 // Proceed the factorization //
76 ///////////////////////////////
77
78 // Fill the Meschash matrix
79 A = sp_get(p_in_spmat_nb_rows, p_in_spmat_nb_cols, 5);
80 Index = 0;
81 for(i=0;i<p_in_spmat_nb_rows;i++)
82 {
83 for(j=0;j<p_in_spmat_items_row[i];j++)
84 {
85 sp_set_val(A,i,p_in_spmat_col_pos[Index]-1, p_in_spmat_val[Index]);
86 Index++;
87 }
88 }
89
90 // Factorization
91 catchall(spICHfactor(A),Scierror(999,"%s: an error occured.\n",fname); return 0);
92
93 // Now, create the result
94 A = sp_col_access(A);
95 for(i=0;i<A->m; i++) nnz += A->row[i].len;
96
97 p_out_spmat_item_row = (int *)MALLOC(p_in_spmat_nb_rows*sizeof(int));
98 p_out_spmat_col_pos = (int *)MALLOC(nnz*sizeof(int));
99 p_out_spmat_val = (double *)MALLOC(nnz*sizeof(double));
100
101 // Get the L matrix
102 Index = 0;
103 for(i=0;i<p_in_spmat_nb_rows;i++)
104 {
105 p_out_spmat_item_row[i] = 0;
106 for(j=0;j<A->row[i].len;j++)
107 {
108 if (A->row[i].elt[j].col<=i)
109 {
110 p_out_spmat_item_row[i]++;
111 p_out_spmat_col_pos[Index] = A->row[i].elt[j].col+1;
112 p_out_spmat_val[Index] = A->row[i].elt[j].val;
113 Index++;
114 }
115 }
116 }
117
118 _SciErr = createSparseMatrix(pvApiCtx,Rhs+1, p_in_spmat_nb_rows, p_in_spmat_nb_cols, Index,
119 p_out_spmat_item_row, p_out_spmat_col_pos, p_out_spmat_val);
120
121 LhsVar(1) = Rhs+1;
122
123 if (A) sp_free(A);
124
125 if (p_out_spmat_item_row) FREE(p_out_spmat_item_row);
126 if (p_out_spmat_col_pos) FREE(p_out_spmat_col_pos);
127 if (p_out_spmat_val) FREE(p_out_spmat_val);
128
129 return 0;
130 }
+0
-116
interface/src/scilab/sci_gateway/c/sci_spchsolve.c less more
0 /*===========================================================================
1
2 Copyright (C) 2009-2015 Yann Collette
3
4 This file is a part of GetFEM++
5
6 GetFEM++ is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version along with the GCC Runtime Library
10 Exception either version 3.1 or (at your option) any later version.
11 This program is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License and GCC Runtime Library Exception for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program; if not, write to the Free Software Foundation,
17 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
18
19 ===========================================================================*/
20
21 #include <api_scilab.h>
22 #include <MALLOC.h>
23 #include <stack-c.h>
24 #include <Scierror.h>
25 #include <sciprint.h>
26
27 #include <string.h>
28
29 #include <sparse2.h>
30 #include <err.h>
31
32 int sci_spchsolve(char * fname)
33 {
34 int p_in_spmat_nb_rows, p_in_spmat_nb_cols, p_in_spmat_nb_items;
35 int * p_in_spmat_address;
36 int * p_in_spmat_items_row = NULL;
37 int * p_in_spmat_col_pos = NULL;
38 double * p_in_spmat_val = NULL;
39 int p_in_b_nb_rows, p_in_b_nb_cols;
40 double * p_in_b_dbl_matrix = NULL;
41 int * p_in_b_dbl_address = NULL;
42 double * p_out_x_dbl_matrix = NULL;
43 SPMAT * A = NULL;
44 VEC * vB = NULL, * vOut = NULL;
45 int Index, i, j;
46 SciErr _SciErr;
47 int var_type;
48
49 CheckRhs(1,2);
50 CheckLhs(1,1);
51
52 // First, access to the input variable (a matrix of strings)
53 _SciErr = getVarAddressFromPosition(pvApiCtx, 1,&p_in_spmat_address);
54
55 _SciErr = getVarType(pvApiCtx,p_in_spmat_address,&var_type);
56 if (var_type!=sci_sparse)
57 {
58 Scierror(999,"%s: wrong parameter, a sparse matrix is needed\n",fname);
59 return 0;
60 }
61
62 if (isVarComplex(pvApiCtx,p_in_spmat_address))
63 {
64 Scierror(999,"%s: wrong parameter, a real sparse matrix is needed\n",fname);
65 return 0;
66 }
67
68 _SciErr = getSparseMatrix(pvApiCtx, p_in_spmat_address, &p_in_spmat_nb_rows, &p_in_spmat_nb_cols,
69 &p_in_spmat_nb_items, &p_in_spmat_items_row, &p_in_spmat_col_pos, &p_in_spmat_val);
70
71 // Second, get b
72 _SciErr = getVarAddressFromPosition(pvApiCtx, 2, &p_in_b_dbl_address);
73
74 _SciErr = getMatrixOfDouble(pvApiCtx, p_in_b_dbl_address, &p_in_b_nb_rows, &p_in_b_nb_cols, &p_in_b_dbl_matrix);
75
76 ////////////////////////////
77 // Proceed the resolution //
78 ////////////////////////////
79
80 // Fill the Meschash matrix
81 A = sp_get(p_in_spmat_nb_rows, p_in_spmat_nb_cols, 5);
82 Index = 0;
83 for(i=0;i<p_in_spmat_nb_rows;i++)
84 {
85 for(j=0;j<p_in_spmat_items_row[i];j++)
86 {
87 sp_set_val(A,i,p_in_spmat_col_pos[Index]-1, p_in_spmat_val[Index]);
88 Index++;
89 }
90 }
91
92 // Fill the Meschash vector
93 vB = v_get(p_in_b_nb_rows);
94 vOut = v_get(p_in_b_nb_rows);
95 for(i=0;i<p_in_b_nb_rows;i++)
96 {
97 v_set_val(vB,i,p_in_b_dbl_matrix[i]);
98 }
99
100 // Resolution
101 catchall(spCHsolve(A,vB,vOut),Scierror(999,"%s: an error (%d) occured.\n",fname,_err_num); return 0);
102
103 // Now, create the result
104 p_out_x_dbl_matrix = (double *)MALLOC(p_in_b_nb_rows*sizeof(double));
105 memcpy(p_out_x_dbl_matrix,vOut->ve,p_in_b_nb_rows*sizeof(double));
106
107 _SciErr = createMatrixOfDouble(pvApiCtx, Rhs+1, p_in_b_nb_rows, p_in_b_nb_cols, p_out_x_dbl_matrix);
108
109 LhsVar(1) = Rhs+1;
110
111 if (A) sp_free(A);
112 if (p_out_x_dbl_matrix) FREE(p_out_x_dbl_matrix);
113
114 return 0;
115 }
+0
-190
interface/src/scilab/sci_gateway/c/sci_splu.c less more
0 /*===========================================================================
1
2 Copyright (C) 2009-2015 Yann Collette
3
4 This file is a part of GetFEM++
5
6 GetFEM++ is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version along with the GCC Runtime Library
10 Exception either version 3.1 or (at your option) any later version.
11 This program is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License and GCC Runtime Library Exception for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program; if not, write to the Free Software Foundation,
17 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
18
19 ===========================================================================*/
20 #include <stdio.h>
21
22 #include <api_scilab.h>
23 #include <MALLOC.h>
24 #include <stack-c.h>
25 #include <Scierror.h>
26 #include <sciprint.h>
27
28 #include "sparse2.h"
29 #include "err.h"
30
31 //#define DEBUG
32
33 int sci_splu(char * fname)
34 {
35 int p_in_spmat_nb_rows, p_in_spmat_nb_cols, p_in_spmat_nb_items;
36 int * p_in_spmat_address;
37 int * p_in_spmat_items_row = NULL;
38 int * p_in_spmat_col_pos = NULL;
39 double * p_in_spmat_val = NULL;
40 int p_in_dbl_nb_rows, p_in_dbl_nb_cols;
41 double * p_in_dbl_matrix = NULL;
42 int * p_in_dbl_address = NULL;
43 SPMAT * A = NULL;
44 PERM * pivot = NULL;
45 int Index, i, j;
46 int * p_out_spmat_item_row = NULL;
47 int * p_out_spmat_col_pos = NULL;
48 double * p_out_spmat_val = NULL;
49 double alpha = 1.0;
50 int nnz = 0, var_type;
51 SciErr _SciErr;
52
53 CheckRhs(1,2);
54 CheckLhs(1,3);
55
56 // First, access to the input variable (a matrix of strings)
57 _SciErr = getVarAddressFromPosition(pvApiCtx,1,&p_in_spmat_address);
58
59 _SciErr = getVarType(pvApiCtx,p_in_spmat_address,&var_type);
60 if (var_type!=sci_sparse)
61 {
62 Scierror(999,"%s: wrong parameter, a sparse matrix is needed\n",fname);
63 return 0;
64 }
65
66 if (isVarComplex(pvApiCtx,p_in_spmat_address))
67 {
68 Scierror(999,"%s: wrong parameter, a real sparse matrix is needed\n",fname);
69 return 0;
70 }
71
72 _SciErr = getSparseMatrix(pvApiCtx,p_in_spmat_address, &p_in_spmat_nb_rows, &p_in_spmat_nb_cols,
73 &p_in_spmat_nb_items, &p_in_spmat_items_row, &p_in_spmat_col_pos, &p_in_spmat_val);
74
75 if (Rhs==2)
76 {
77 // Second, get the alpha parameter
78 // First, access to the input variable (a matrix of doubles)
79 _SciErr = getVarAddressFromPosition(pvApiCtx,2,&p_in_dbl_address);
80
81 _SciErr = getMatrixOfDouble(pvApiCtx,p_in_dbl_address, &p_in_dbl_nb_rows, &p_in_dbl_nb_cols, &p_in_dbl_matrix);
82 alpha = *p_in_dbl_matrix;
83 }
84
85 // Proceed the factorization
86 A = sp_get(p_in_spmat_nb_rows, p_in_spmat_nb_cols, 5);
87 Index = 0;
88 for(i=0;i<p_in_spmat_nb_rows;i++)
89 {
90 for(j=0;j<p_in_spmat_items_row[i];j++)
91 {
92 sp_set_val(A,i,p_in_spmat_col_pos[Index]-1, p_in_spmat_val[Index]);
93 Index++;
94 }
95 }
96
97 pivot = px_get(A->m);
98
99 catchall(spLUfactor(A,pivot,alpha),Scierror(999,"%s: an error occured.\n",fname); return 0);
100
101 // Now, create the result
102 for(i=0;i<A->m; i++) nnz += A->row[i].len;
103
104 p_out_spmat_item_row = (int *)MALLOC(p_in_spmat_nb_rows*sizeof(int));
105 p_out_spmat_col_pos = (int *)MALLOC(nnz*sizeof(int));
106 p_out_spmat_val = (double *)MALLOC(nnz*sizeof(double));
107
108 // Get the L matrix
109 if (Lhs>=1)
110 {
111 Index = 0;
112 for(i=0;i<p_in_spmat_nb_rows;i++)
113 {
114 p_out_spmat_item_row[i] = 0;
115 for(j=0;j<A->row[i].len;j++)
116 {
117 if (A->row[i].elt[j].col<i) // <= before
118 {
119 p_out_spmat_item_row[i]++;
120 p_out_spmat_col_pos[Index] = A->row[i].elt[j].col+1;
121 p_out_spmat_val[Index] = A->row[i].elt[j].val;
122 Index++;
123 }
124 else if (A->row[i].elt[j].col==i) // <= before
125 {
126 p_out_spmat_item_row[i]++;
127 p_out_spmat_col_pos[Index] = i+1;
128 p_out_spmat_val[Index] = 1;
129 Index++;
130 }
131 }
132 }
133
134 _SciErr = createSparseMatrix(pvApiCtx,Rhs+1, p_in_spmat_nb_rows, p_in_spmat_nb_cols, Index,
135 p_out_spmat_item_row, p_out_spmat_col_pos, p_out_spmat_val);
136
137 LhsVar(1) = Rhs+1;
138 }
139
140 // Get the U matrix
141 if (Lhs>=2)
142 {
143 Index = 0;
144 for(i=0;i<p_in_spmat_nb_rows;i++)
145 {
146 p_out_spmat_item_row[i] = 0;
147 for(j=0;j<A->row[i].len;j++)
148 {
149 if (A->row[i].elt[j].col>=i)
150 {
151 p_out_spmat_item_row[i]++;
152 p_out_spmat_col_pos[Index] = A->row[i].elt[j].col+1;
153 p_out_spmat_val[Index] = A->row[i].elt[j].val;
154 Index++;
155 }
156 }
157 }
158
159 _SciErr = createSparseMatrix(pvApiCtx,Rhs+2, p_in_spmat_nb_rows, p_in_spmat_nb_cols, Index,
160 p_out_spmat_item_row, p_out_spmat_col_pos, p_out_spmat_val);
161
162 LhsVar(2) = Rhs+2;
163 }
164
165 // Get the permutation matrix
166 if (Lhs==3)
167 {
168 Index = 0;
169 for(i=0;i<p_in_spmat_nb_rows;i++)
170 {
171 p_out_spmat_item_row[i] = 1;
172 p_out_spmat_col_pos[i] = pivot->pe[i]+1;
173 p_out_spmat_val[i] = 1.0;
174 }
175
176 _SciErr = createSparseMatrix(pvApiCtx,Rhs+3, p_in_spmat_nb_rows, p_in_spmat_nb_cols, p_in_spmat_nb_rows,
177 p_out_spmat_item_row, p_out_spmat_col_pos, p_out_spmat_val);
178
179 LhsVar(3) = Rhs+3;
180 }
181
182 if (A) sp_free(A);
183
184 if (p_out_spmat_item_row) FREE(p_out_spmat_item_row);
185 if (p_out_spmat_col_pos) FREE(p_out_spmat_col_pos);
186 if (p_out_spmat_val) FREE(p_out_spmat_val);
187
188 return 0;
189 }
+0
-181
interface/src/scilab/sci_gateway/c/sci_spluinc.c less more
0 /*===========================================================================
1
2 Copyright (C) 2009-2015 Yann Collette
3
4 This file is a part of GetFEM++
5
6 GetFEM++ is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version along with the GCC Runtime Library
10 Exception either version 3.1 or (at your option) any later version.
11 This program is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License and GCC Runtime Library Exception for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program; if not, write to the Free Software Foundation,
17 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
18
19 ===========================================================================*/
20
21 #include <api_scilab.h>
22 #include <stack-c.h>
23 #include <MALLOC.h>
24 #include <Scierror.h>
25 #include <sciprint.h>
26
27 #include <sparse2.h>
28 #include <err.h>
29
30 //#define DEBUG
31
32 int sci_spluinc(char * fname)
33 {
34 int p_in_spmat_nb_rows, p_in_spmat_nb_cols, p_in_spmat_nb_items;
35 int * p_in_spmat_address;
36 int * p_in_spmat_items_row = NULL;
37 int * p_in_spmat_col_pos = NULL;
38 double * p_in_spmat_val = NULL;
39 int p_in_dbl_nb_rows, p_in_dbl_nb_cols;
40 double * p_in_dbl_matrix = NULL;
41 int * p_in_dbl_address = NULL;
42 SPMAT * A = NULL;
43 int Index, i, j;
44 int * p_out_spmat_item_row = NULL;
45 int * p_out_spmat_col_pos = NULL;
46 double * p_out_spmat_val = NULL;
47 double alpha = 1.0;
48 int nnz = 0, var_type;
49 SciErr _SciErr;
50
51 CheckRhs(1,2);
52 CheckLhs(1,2);
53
54 #ifdef DEBUG
55 sciprint("Lhs = %d Rhs = %d\n", Lhs, Rhs);
56 #endif
57
58 // First, access to the input variable (a matrix of strings)
59
60 _SciErr = getVarAddressFromPosition(pvApiCtx,1,&p_in_spmat_address);
61
62 _SciErr = getVarType(pvApiCtx,p_in_spmat_address,&var_type);
63
64 if (var_type!=sci_sparse)
65 {
66 Scierror(999,"%s: wrong parameter, a sparse matrix is needed\n",fname);
67 return 0;
68 }
69
70 if (isVarComplex(pvApiCtx,p_in_spmat_address))
71 {
72 Scierror(999,"%s: wrong parameter, a real sparse matrix is needed\n",fname);
73 return 0;
74 }
75
76 _SciErr = getSparseMatrix(pvApiCtx,p_in_spmat_address, &p_in_spmat_nb_rows, &p_in_spmat_nb_cols,
77 &p_in_spmat_nb_items, &p_in_spmat_items_row, &p_in_spmat_col_pos, &p_in_spmat_val);
78
79 if (Rhs==2)
80 {
81 // Second, get the alpha parameter
82 // First, access to the input variable (a matrix of doubles)
83 _SciErr = getVarAddressFromPosition(pvApiCtx,2,&p_in_dbl_address);
84
85 _SciErr = getMatrixOfDouble(pvApiCtx,p_in_dbl_address, &p_in_dbl_nb_rows, &p_in_dbl_nb_cols, &p_in_dbl_matrix);
86 alpha = *p_in_dbl_matrix;
87 }
88
89 ///////////////////////////////
90 // Proceed the factorization //
91 ///////////////////////////////
92
93 // Fill the Meschash matrix
94 A = sp_get(p_in_spmat_nb_rows, p_in_spmat_nb_cols, 5);
95 Index = 0;
96 for(i=0;i<p_in_spmat_nb_rows;i++)
97 {
98 for(j=0;j<p_in_spmat_items_row[i];j++)
99 {
100 sp_set_val(A,i,p_in_spmat_col_pos[Index]-1, p_in_spmat_val[Index]);
101 Index++;
102 }
103 }
104
105 // Factorization
106 catchall(spILUfactor(A,alpha),Scierror(999,"%s: an error occured.\n",fname); return 0);
107
108 // Now, create the result
109 A = sp_col_access(A);
110 for(i=0;i<A->m; i++) nnz += A->row[i].len;
111
112 p_out_spmat_item_row = (int *)MALLOC(p_in_spmat_nb_rows*sizeof(int));
113 p_out_spmat_col_pos = (int *)MALLOC(nnz*sizeof(int));
114 p_out_spmat_val = (double *)MALLOC(nnz*sizeof(double));
115
116 // Get the L matrix
117 if (Lhs>=1)
118 {
119 Index = 0;
120 for(i=0;i<p_in_spmat_nb_rows;i++)
121 {
122 p_out_spmat_item_row[i] = 0;
123 for(j=0;j<A->row[i].len;j++)
124 {
125 if (A->row[i].elt[j].col<i)
126 {
127 p_out_spmat_item_row[i]++;
128 p_out_spmat_col_pos[Index] = A->row[i].elt[j].col+1;
129 p_out_spmat_val[Index] = A->row[i].elt[j].val;
130 Index++;
131 }
132 else if (A->row[i].elt[j].col==i)
133 {
134 p_out_spmat_item_row[i]++;
135 p_out_spmat_col_pos[Index] = i+1;
136 p_out_spmat_val[Index] = 1;
137 Index++;
138 }
139 }
140 }
141
142 _SciErr = createSparseMatrix(pvApiCtx,Rhs+1, p_in_spmat_nb_rows, p_in_spmat_nb_cols, Index,
143 p_out_spmat_item_row, p_out_spmat_col_pos, p_out_spmat_val);
144
145 LhsVar(1) = Rhs+1;
146 }
147
148 // Get the U matrix
149 if (Lhs==2)
150 {
151 Index = 0;
152 for(i=0;i<p_in_spmat_nb_rows;i++)
153 {
154 p_out_spmat_item_row[i] = 0;
155 for(j=0;j<A->row[i].len;j++)
156 {
157 if (A->row[i].elt[j].col>=i)
158 {
159 p_out_spmat_item_row[i]++;
160 p_out_spmat_col_pos[Index] = A->row[i].elt[j].col+1;
161 p_out_spmat_val[Index] = A->row[i].elt[j].val;
162 Index++;
163 }
164 }
165 }
166
167 _SciErr = createSparseMatrix(pvApiCtx,Rhs+2, p_in_spmat_nb_rows, p_in_spmat_nb_cols, Index,
168 p_out_spmat_item_row, p_out_spmat_col_pos, p_out_spmat_val);
169
170 LhsVar(2) = Rhs+2;
171 }
172
173 if (A) sp_free(A);
174
175 if (p_out_spmat_item_row) FREE(p_out_spmat_item_row);
176 if (p_out_spmat_col_pos) FREE(p_out_spmat_col_pos);
177 if (p_out_spmat_val) FREE(p_out_spmat_val);
178
179 return 0;
180 }
+0
-120
interface/src/scilab/sci_gateway/c/sci_splusolve.c less more
0 /*===========================================================================
1
2 Copyright (C) 2009-2015 Yann Collette
3
4 This file is a part of GetFEM++
5
6 GetFEM++ is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version along with the GCC Runtime Library
10 Exception either version 3.1 or (at your option) any later version.
11 This program is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License and GCC Runtime Library Exception for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program; if not, write to the Free Software Foundation,
17 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
18
19 ===========================================================================*/
20
21 #include <api_scilab.h>
22 #include <MALLOC.h>
23 #include <stack-c.h>
24 #include <Scierror.h>
25 #include <sciprint.h>
26
27 #include <sparse2.h>
28 #include <err.h>
29
30 #include <string.h>
31
32 int sci_splusolve(char * fname)
33 {
34 int p_in_spmat_nb_rows, p_in_spmat_nb_cols, p_in_spmat_nb_items;
35 int * p_in_spmat_address;
36 int * p_in_spmat_items_row = NULL;
37 int * p_in_spmat_col_pos = NULL;
38 double * p_in_spmat_val = NULL;
39 int p_in_b_nb_rows, p_in_b_nb_cols;
40 double * p_in_b_dbl_matrix = NULL;
41 int * p_in_b_dbl_address = NULL;
42 double * p_out_x_dbl_matrix = NULL;
43 SPMAT * A = NULL;
44 VEC * vB = NULL, * vOut = NULL;
45 PERM * pivot = NULL;
46 int Index, i, j;
47 SciErr _SciErr;
48 int var_type;
49
50 CheckRhs(1,2);
51 CheckLhs(1,1);
52
53 // First, access to the input variable (a matrix of strings)
54 _SciErr = getVarAddressFromPosition(pvApiCtx, 1,&p_in_spmat_address);
55
56 _SciErr = getVarType(pvApiCtx, p_in_spmat_address, &var_type);
57 if (var_type!=sci_sparse)
58 {
59 Scierror(999,"%s: wrong parameter, a sparse matrix is needed\n",fname);
60 return 0;
61 }
62
63 if (isVarComplex(pvApiCtx, p_in_spmat_address))
64 {
65 Scierror(999,"%s: wrong parameter, a real sparse matrix is needed\n",fname);
66 return 0;
67 }
68
69 _SciErr = getSparseMatrix(pvApiCtx, p_in_spmat_address, &p_in_spmat_nb_rows, &p_in_spmat_nb_cols,
70 &p_in_spmat_nb_items, &p_in_spmat_items_row, &p_in_spmat_col_pos, &p_in_spmat_val);
71
72 // Second, get b
73 _SciErr = getVarAddressFromPosition(pvApiCtx, 2, &p_in_b_dbl_address);
74
75 _SciErr = getMatrixOfDouble(pvApiCtx, p_in_b_dbl_address, &p_in_b_nb_rows, &p_in_b_nb_cols, &p_in_b_dbl_matrix);
76
77 ////////////////////////////
78 // Proceed the resolution //
79 ////////////////////////////
80
81 // Fill the Meschash matrix
82 A = sp_get(p_in_spmat_nb_rows, p_in_spmat_nb_cols, 5);
83 Index = 0;
84 for(i=0;i<p_in_spmat_nb_rows;i++)
85 {
86 for(j=0;j<p_in_spmat_items_row[i];j++)
87 {
88 sp_set_val(A,i,p_in_spmat_col_pos[Index]-1, p_in_spmat_val[Index]);
89 Index++;
90 }
91 }
92
93 // Fill the Meschash vector
94 vB = v_get(p_in_b_nb_rows);
95 vOut = v_get(p_in_b_nb_rows);
96 for(i=0;i<p_in_b_nb_rows;i++)
97 {
98 v_set_val(vB,i,p_in_b_dbl_matrix[i]);
99 }
100
101 // Resolution
102
103 pivot = px_get(A->m);
104
105 catchall(spLUsolve(A,pivot,vB,vOut),Scierror(999,"%s: an error (%d) occured.\n",fname,_err_num); return 0);
106
107 // Now, create the result
108 p_out_x_dbl_matrix = (double *)MALLOC(p_in_b_nb_rows*sizeof(double));
109 memcpy(p_out_x_dbl_matrix,vOut->ve,p_in_b_nb_rows*sizeof(double));
110
111 _SciErr = createMatrixOfDouble(pvApiCtx, Rhs+1, p_in_b_nb_rows, p_in_b_nb_cols, p_out_x_dbl_matrix);
112
113 LhsVar(1) = Rhs+1;
114
115 if (A) sp_free(A);
116 if (p_out_x_dbl_matrix) FREE(p_out_x_dbl_matrix);
117
118 return 0;
119 }
+0
-15
interface/src/scilab/sci_gateway/cleaner_gateway.sce less more
0 // This file is released under the 3-clause BSD license. See COPYING-BSD.
1 // Generated by builder_gateway.sce: Please, do not edit this file
2
3 sci_gateway_dir = get_absolute_file_path("cleaner_gateway.sce");
4 current_dir = pwd();
5
6 chdir(sci_gateway_dir);
7 if ( isdir("c") ) then
8 chdir("c");
9 exec("cleaner.sce");
10 mdelete("cleaner.sce");
11 end
12
13 chdir(current_dir);
14 clear sci_gateway_dir current_dir;
+0
-24
interface/src/scilab/sci_gateway/loader_gateway.sce less more
0 // This file is released under the 3-clause BSD license. See COPYING-BSD.
1 // Generated by builder_gateway.sce: Please, do not edit this file
2
3 try
4 v = getversion("scilab");
5 catch
6 v = [ 5 0 ]; // or older
7 end
8 if (v(1) <= 5) & (v(2) < 3) then
9 // new API in scilab 5.3
10 error(gettext("Scilab 5.3 or more is required."));
11 end
12
13 sci_gateway_dir = get_absolute_file_path("loader_gateway.sce");
14 current_dir = pwd();
15
16 chdir(sci_gateway_dir);
17 if ( isdir("c") ) then
18 chdir("c");
19 exec("loader.sce");
20 end
21
22 chdir(current_dir);
23 clear sci_gateway_dir current_dir v;
+0
-50
interface/src/scilab/sci_getfem.iss less more
0 ;##############################################################################################################
1 ; Inno Setup Install script for SciGetFem Module
2 ; http://www.jrsoftware.org/isinfo.php
3 ; Yann COLLETTE
4 ; This file is released into the public domain
5 ;##############################################################################################################
6 ; modify this path where is sciglpk directory
7 #define BinariesSourcePath "E:\Scilab\toolboxes\getfem\interface\src\scilab"
8 ;
9 #define SCIGETFEM_Module_version "3914"
10 #define CurrentYear "2011"
11 #define SCIGETFEM_ModuleDirFilename "scigetfem-rev3914"
12 ;##############################################################################################################
13 [Setup]
14 ; Debut Données de base à renseigner suivant version
15 SourceDir={#BinariesSourcePath}
16 AppName=SciGetFem Module
17 AppVerName=SciGetFem Module version rev3914
18 DefaultDirName={pf}/{#SCIGETFEM_ModuleDirFilename}
19 InfoAfterfile=readme.txt
20 LicenseFile=license.txt
21 WindowVisible=true
22 AppPublisher=Home
23 BackColorDirection=lefttoright
24 AppCopyright=Copyright © {#CurrentYear}
25 Compression=lzma/max
26 InternalCompressLevel=normal
27 SolidCompression=true
28 VersionInfoVersion={#SCIGETFEM_Module_version}
29 VersionInfoCompany=Home
30 ;##############################################################################################################
31 [Files]
32 ; Add here files that you want to add
33 Source: loader.sce; DestDir: {app}
34 Source: license.txt; DestDir: {app}
35 Source: readme.txt; DestDir: {app}
36 Source: etc\sci_getfem.quit; DestDir: {app}\etc
37 Source: etc\sci_getfem.start; DestDir: {app}\etc
38 Source: sci_gateway\loader_gateway.sce; DestDir: {app}\sci_gateway
39 Source: sci_gateway\c\loader.sce; DestDir: {app}\sci_gateway\c
40 Source: sci_gateway\c\*.dll; DestDir: {app}\sci_gateway\c
41 Source: macros\*.*; DestDir: {app}\macros;
42 Source: macros\overload\*.*; DestDir: {app}\macros\overload;
43 Source: demos\*.*; DestDir: {app}\demos;
44 Source: demos\data\*.*; DestDir: {app}\demos\data;
45 Source: jar\*.*; DestDir: {app}\jar
46 Source: src\c\loader.sce; DestDir: {app}\src\c
47 Source: src\c\*.dll; DestDir: {app}\src\c
48 ;
49 ;##############################################################################################################
+0
-12
interface/src/scilab/src/builder_src.sce less more
0 // ====================================================================
1 // Copyright 2009
2 // Yann COLLETTE
3 // This file is released into the public domain
4 // ====================================================================
5
6 src_dir = get_absolute_file_path('builder_src.sce');
7
8 tbx_builder_src_lang('c', src_dir);
9
10 clear tbx_builder_src_lang;
11 clear src_dir;
+0
-404
interface/src/scilab/src/c/DOC/fnindex.txt less more
0
1 FUNCTION INDEX
2 ==============
3
4 In the descriptions below, matrices are represented by capital letters,
5 vectors by lower case letters and scalars by alpha.
6
7 Function Description
8
9 band2mat() Convert band matrix to dense matrix
10 bd_free() Deallocate (destroy) band matrix
11 bd_get() Allocate and initialise band matrix
12 bd_transp() Transpose band matrix
13 bd_resize() Resize band matrix
14 bdLDLfactor() Band LDL^T factorisation
15 bdLDLsolve() Solve Ax=b using band LDL^T factors
16 bdLUfactor() Band LU factorisation
17 bdLUsolve() Solve Ax=b using band LU factors
18 bisvd() SVD of bi-diagonal matrix
19 BKPfactor() Bunch-Kaufman-Parlett factorisation
20 BKPsolve() Bunch-Kaufman-Parlett solver
21 catch() Catch a raised error (macro)
22 catchall() Catch any raised error (macro)
23 catch_FPE() Catch floating point error (sets flag)
24 CHfactor() Dense Cholesky factorisation
25 CHsolve() Cholesky solver
26 d_save() Save real in MATLAB format
27 Dsolve() Solve Dx=y , D diagonal
28 ERRABORT() Abort on error (sets flag, macro)
29 ERREXIT() Exit on error (sets flag, macro)
30 error() Raise an error (macro, see ev_err())
31 err_list_attach() Attach new list of errors
32 err_list_free() Discard list of errors
33 err_is_list_attached() Checks for an error list
34 ev_err() Raise an error (function)
35 fft() Computes Fast Fourier Transform
36 finput() Input a simple data item from a stream
37 fprompter() Print prompt to stderr
38 get_col() Extract a column from a matrix
39 get_row() Extract a row from a matrix
40 givens() Compute Givens parameters
41 hhtrcols() Compute AP^T where P is a Householder matrix
42 hhtrrows() Compute PA where P is a Householder matrix
43 hhtrvec() Compute Px where P is a Householder matrix
44 hhvec() Compute parameters for a Householder matrix
45 ifft() Computes inverse FFT
46 in_prod() Inner product of vectors
47 input() Input a simple data item from stdin (macro)
48 iter_arnoldi() Arnoldi iterative method
49 iter_arnoldi_iref() Arnoldi iterative method with refinement
50 iter_ATx() Set A^T in ITER structure
51 iter_Ax() Set A in ITER structure
52 iter_Bx() Set preconditioner in ITER structure
53 iter_cg() Conjugate gradients iterative method
54 iter_cgne() Conjugate gradients for normal equations
55 iter_cgs() CGS iterative method
56 iter_copy() Copy ITER data structures
57 iter_copy2() Shallow copy of ITER data structures
58 iter_dump() Dump ITER data structure to a stream
59 iter_free() Free (deallocate) ITER structure
60 iter_get() Allocate ITER structure
61 iter_gmres() GMRES iterative method
62 iter_lanczos() Lanczos iterative method
63 iter_lanczos2() Lanczos method with Cullum and Willoughby extensions
64 iter_lsqr() LSQR iterative method
65 iter_mgcr() MGCR iterative method
66 iter_resize() Resize vectors in an ITER data structure
67 iter_spcg() Sparse matrix CG method
68 iter_spcgne() Sparse matrix CG method for normal equations
69 iter_spcgs() Sparse matrix CGS method
70 iter_spgmres() Sparse matrix GMRES method
71 iter_splsqr() Sparse matrix LSQR method
72 iter_spmgcr() Sparse matrix MGCR method
73 iv_add() Add integer vectors
74 iv_copy() Copy integer vector
75 iv_dump() Dump integer vector to a stream
76 iv_finput() Input integer vector from a stream
77 iv_foutput() Output integer vector to a stream
78 IV_FREE() Free (deallocate) an integer vector (macro)
79 iv_free() Free (deallocate) integer vector (function)
80 iv_free_vars() Free a list of integer vectors
81 iv_get() Allocate and initialise an integer vector
82 iv_get_vars() Allocate list of integer vectors
83 iv_input() Input integer vector from stdin (macro)
84 iv_output() Output integer vector to stdout (macro)
85 iv_resize() Resize an integer vector
86 iv_resize_vars() Resize a list of integer vectors
87 iv_sub() Subtract integer vectors
88 LDLfactor() LDL^T factorisation
89 LDLsolve() LDL^T solver
90 LDLupdate() Update LDL^T factorisation
91 Lsolve() Solve Lx=y , L lower triangular
92 LTsolve() Solve L^Tx=y , L lower triangular
93 LUcondest() Estimate a condition number using LU factors
94 LUfactor() Compute LU factors with implicit scaled partial pivoting
95 LUsolve() Solve Ax=b using LU factors
96 LUTsolve() Solve A^Tx=b usng LU factors
97 m_add() Add matrices
98 makeQ() Form Q matrix for QR factorisation
99 makeR() Form R matrix for QR factorisation
100 mat2band() Extract band matrix from dense matrix
101 MCHfactor() Modified Cholesky factorisation
102 (actually factors A+D, D diagonal, instead of A)
103 m_copy() Copy dense matrix
104 m_dump() Dump matrix data structure to a stream
105 mem_attach_list() Adds a new family of types
106 mem_bytes() Notify change in memory usage (macro)
107 mem_bytes_list() Notify change in memory usage
108 mem_free_list() Frees a family of types
109 mem_info_bytes() Number of bytes used by a type
110 mem_info_numvar() Number of structures of a type
111 mem_info_file() Print memory info to a stream
112 mem_info_is_on() Is memory data being accumulated?
113 mem_info_on() Turns memory info system on/off
114 mem_is_list_attached() Is list of types attached?
115 mem_numvar() Notify change in number of structures allocated (macro)
116 mem_numvar_list() Notify change in number of structures allocated
117 mem_stat_dump() Prints information on registered workspace
118 mem_stat_free() Frees (deallocates) static workspace
119 mem_stat_mark() Sets mark for workspace
120 MEM_STAT_REG() Register static workspace (macro)
121 mem_stat_show_mark() Current workspace group
122 m_exp() Computes matrix exponential
123 m_finput() Input matrix from a stream
124 m_foutput() Output matrix to a stream
125 M_FREE() Free (deallocate) a matrix (macro)
126 m_free() Free (deallocate) matrix (function)
127 m_free_vars() Free a list of matrices
128 m_get() Allocate and initialise a matrix
129 m_get_vars() Allocate list of matrices
130 m_ident() Sets matrix to identity matrix
131 m_input() Input matrix from stdin (macro)
132 m_inverse() Invert matrix
133 m_load() Load matrix in MATLAB format
134 m_mlt() Multiplies matrices
135 mmtr_mlt() Computes AB^T
136 m_norm1() Computes ||A||_1 of a matrix
137 m_norm_frob() Computes the Frobenius norm of a matrix
138 m_norm_inf() Computes ||A||_inf of a matrix
139 m_ones() Set matrix to all 1's
140 m_output() Output matrix to stdout (macro)
141 m_poly() Computes a matrix polynomial
142 m_pow() Computes integer power of a matrix
143 mrand() Generates pseudo-random real number
144 m_rand() Randomise entries of a matrix
145 mrandlist() Generates array of pseudo-random numbers
146 m_resize() Resize matrix
147 m_resize_vars() Resize a list of matrices
148 m_save() Save matrix in MATLAB format
149 m_sub() Subtract matrices
150 m_transp() Transpose matrix
151 mtrm_mlt() Computes A^TB
152 mv_mlt() Computes Ax
153 mv_mltadd() Computes y <- Ax+y
154 m_zero() Zero a matrix
155 ON_ERROR() Error handler (macro)
156 prompter() Print prompt message to stdout
157 px_cols() Permute the columns of a matrix
158 px_copy() Copy permutation
159 px_dump() Dump permutation data structure to a stream
160 px_finput() Input permutation from a stream
161 px_foutput() Output permutation to a stream
162 PX_FREE() Free (deallocate) a permutation (macro)
163 px_free() Free (deallocate) permutation (function)
164 px_free_vars() Free a list of permutations
165 px_get() Allocate and initialise a permutation
166 px_get_vars() Allocate a list of permutations
167 px_ident() Sets permutation to identity
168 px_input() Input permutation from stdin (macro)
169 px_inv() Invert permutation
170 pxinv_vec() Computes P^Tx where P is a permutation matrix
171 pxinv_zvec() Computes P^Tx where P is a permutation matrix (complex)
172 px_mlt() Multiply permutations
173 px_output() Output permutation to stdout (macro)
174 px_resize() Resize a permutation
175 px_resize_vars() Resize a list of permutations
176 px_rows() Permute the rows of a matrix
177 px_sign() Returns the sign of the permutation
178 px_transp() Transpose a pair of entries
179 px_vec() Computes Px where P is a permutation matrix
180 px_zvec() Computes Px where P is a permutation matrix (complex)
181 QRCPfactor() QR factorisation with column pivoting
182 QRfactor() QR factorisation
183 QRsolve() Solve Ax=b using QR factorisation
184 QRTsolve() Solve A^Tx=b using QR factorisation
185 QRupdate() Update explicit QR factors
186 rot_cols() Apply Givens rotation to the columns of a matrix
187 rot_rows() Apply Givens rotation to the rows of a matrix
188 rot_vec() Apply Givens rotation to a vector
189 rot_zvec() Apply complex Givens rotation to a vector
190 schur() Compute real Schur form
191 schur_evals() Compute eigenvalues from the real Schur form
192 schur_vecs() Compute eigenvectors from the real Schur form
193 set_col() Set the column of a matrix to a given vector
194 set_err_flag() Control behaviour of ev_err()
195 set_row() Set the row of a matrix to a given vector
196 sm_mlt() Scalar-matrix multiplication
197 smrand() Set seed for mrand()
198 spBKPfactor() Sparse symmetric indefinite factorsiation
199 spBKPsolve() Sparse symmetric indefinite solver
200 spCHfactor() Sparse Cholesky factorisation
201 spCHsolve() Sparse Cholesky solver
202 spCHsymb() Symbolic sparse Cholesky factorisation
203 (no floating point operations)
204 sp_col_access() Sets up column access paths for a sparse matrix
205 sp_compact() Eliminates zero entries in a sparse matrix
206 sp_copy() Copies a sparse matrix
207 sp_copy2() Copies a sparse matrix into another
208 sp_diag_access() Sets up diagonal access paths for a sparse matrix
209 sp_dump() Dump sparse matrix data structure to a stream
210 sp_finput() Input sparse matrix from a stream
211 sp_foutput() Output a sparse matrix to a stream
212 sp_free() Free (deallocate) a sparse matrix
213 sp_get() Allocate and initialise a sparse matrix
214 sp_get_val() Get the (i,j) entry of a sparse matrix
215 spICHfactor() Sparse incomplete Cholesky factorisation
216 sp_input() Input a sparse matrix form stdin
217 spLUfactor() Sparse LU factorisation using partial pivoting
218 spLUsolve() Solves Ax=b using sparse LU factors
219 spLUTsolve() Solves A^Tx=b using sparse LU factors
220 sp_mv_mlt() Computes Ax for sparse A
221 sp_output() Outputs a sparse matrix to a stream (macro)
222 sp_resize() Resize a sparse matrix
223 sprow_add() Adds a pair of sparse rows
224 sprow_foutput() Output sparse row to a stream
225 sprow_get() Allocate and initialise a sparse row
226 sprow_get_idx() Get location of an entry in a sparse row
227 sprow_merge() Merge two sparse rows
228 sprow_mltadd() Sparse row vector multiply-and-add
229 sprow_set_val() Set an entry in a sparse row
230 sprow_smlt() Multiplies a sparse row by a scalar
231 sprow_sub() Subtracts a sparse row from another
232 sprow_xpd() Expand a sparse row
233 sp_set_val() Set the (i,j) entry of a sparse matrix
234 sp_vm_mlt() Compute x^TA for sparse A
235 sp_zero() Zero (but do not remove) all entries of a sparse matrix
236 svd() Compute the SVD of a matrix
237 sv_mlt() Scalar-vector multiply
238 symmeig() Compute eigenvalues/vectors of a symmetric matrix
239 tracecatch() Catch and re-raise errors (macro)
240 trieig() Compute eigenvalues/vectors of a symmetric tridiagonal matrix
241 Usolve() Solve Ux=b where U is upper triangular
242 UTsolve() Solve U^Tx=b where U is upper triangular
243 v_add() Add vectors
244 v_conv() Convolution product of vectors
245 v_copy() Copy vector
246 v_dump() Dump vector data structure to a stream
247 v_finput() Input vector from a stream
248 v_foutput() Output vector to a stream
249 V_FREE() Free (deallocate) a vector (macro)
250 v_free() Free (deallocate) vector (function)
251 v_free_vars() Free a list of vectors
252 v_get() Allocate and initialise a vector
253 v_get_vars() Allocate list of vectors
254 v_input() Input vector from stdin (macro)
255 v_lincomb() Compute sum of a_i x_i for an array of vectors
256 v_linlist() Compute sum of a_i x_i for a list of vectors
257 v_map() Apply function componentwise to a vector
258 v_max() Computes max vector entry and index
259 v_min() Computes min vector entry and index
260 v_mltadd() Computes y <- alpha*x+y for vectors x , y
261 vm_mlt() Computes x^TA
262 vm_mltadd() Computes y^T <- y^T+x^TA
263 v_norm1() Computes ||x||_1 for a vector
264 v_norm2() Computes ||x||_2 (the Euclidean norm) of a vector
265 v_norm_inf() Computes ||x||_inf for a vector
266 v_ones() Set vector to all 1's
267 v_output() Output vector to stdout (macro)
268 v_pconv() Periodic convolution of two vectors
269 v_rand() Randomise entries of a vector
270 v_resize() Resize a vector
271 v_resize_vars() Resize a list of vectors
272 v_save() Save a vector in MATLAB format
273 v_slash() Computes componentwise ratio of vectors
274 v_sort() Sorts vector components
275 v_star() Componentwise vector product
276 v_sub() Subtract two vectors
277 v_sum() Sum of components of a vector
278 v_zero() Zero a vector
279 zabs() Complex absolute value (modulus)
280 zadd() Add complex numbers
281 zconj() Conjugate complex number
282 zdiv() Divide complex numbers
283 zexp() Complex exponential
284 z_finput() Read complex number from file or stream
285 z_foutput() Prints complex number to file or stream
286 zgivens() Compute complex Givens' rotation
287 zhhtrcols() Apply Householder transformation: PA (complex)
288 zhhtrrows() Apply Householder transformation: AP (complex)
289 zhhtrvec() Apply Householder transformation: Px (complex)
290 zhhvec() Compute Householder transformation
291 zin_prod() Complex inner product
292 z_input() Read complex number from stdin
293 zinv() Computes 1/z (complex)
294 zLAsolve() Solve L^*x=b , L complex lower triangular
295 zlog() Complex logarithm
296 zLsolve() Solve Lx=b , L complex lower triangular
297 zLUAsolve() Solve A^*x=b using complex LU factorisation
298 (A^* - adjoint of A, A is complex)
299 zLUcondest() Complex LU condition estimate
300 zLUfactor() Complex LU factorisation
301 zLUsolve() Solve Ax=b using complex LU factorisation
302 zm_add() Add complex matrices
303 zm_adjoint() Computes adjoint of complex matrix
304 zmake() Construct complex number from real and imaginary parts
305 zmakeQ() Construct Q matrix for complex QR
306 zmakeR() Construct R matrix for complex QR
307 zmam_mlt() Computes A^*B (complex)
308 zm_dump() Dump complex matrix to stream
309 zm_finput() Input complex matrix from stream
310 ZM_FREE() Free (deallocate) complex matrix (macro)
311 zm_free() Free (deallocate) complex matrix (function)
312 zm_free_vars() Free a list of complex matrices
313 zm_get() Allocate complex matrix
314 zm_get_vars() Allocate a list of complex matrices
315 zm_input() Input complex matrix from stdin
316 zm_inverse() Compute inverse of complex matrix
317 zm_load() Load complex matrix in MATLAB format
318 zmlt() Multiply complex numbers
319 zmma_mlt() Computes AB^* (complex)
320 zm_mlt() Multiply complex matrices
321 zm_norm1() Complex matrix 1-norm
322 zm_norm_frob() Complex matrix Frobenius norm
323 zm_norm_inf() Complex matrix infinity-norm
324 zm_rand() Randomise complex matrix
325 zm_resize() Resize complex matrix
326 zm_resize_vars() Resize a list of complex matrices
327 zm_save() Save complex matrix in MATLAB format
328 zm_sub() Subtract complex matrices
329 zmv_mlt() Complex matrix-vector multiply
330 zmv_mltadd() Complex matrix-vector multiply and add
331 zm_zero() Zero complex matrix
332 zneg() Computes -z (complex)
333 z_output() Print complex number to stdout
334 zQRCPfactor() Complex QR factorisation with column pivoting
335 zQRCPsolve() Solve Ax = b using complex QR factorisation
336 zQRfactor() Complex QR factorisation
337 zQRAsolve() Solve A^*x = b using complex QR factorisation
338 zQRsolve() Solve Ax = b using complex QR factorisation
339 zrot_cols() Complex Givens' rotation of columns
340 zrot_rows() Complex Givens' rotation of rows
341 z_save() Save complex number in MATLAB format
342 zschur() Complex Schur factorisation
343 zset_col() Set column of complex matrix
344 zset_row() Set row of complex matrix
345 zsm_mlt() Complex scalar-matrix product
346 zsqrt() Square root z (complex)
347 zsub() Subtract complex numbers
348 zUAsolve() Solve U^*x=b , U complex upper triangular
349 zUsolve() Solve Ux=b , U complex upper triangular
350 zv_add() Add complex vectors
351 zv_copy() Copy complex vector
352 zv_dump() Dump complex vector to a stream
353 zv_finput() Input complex vector from a stream
354 ZV_FREE() Free (deallocate) complex vector (macro)
355 zv_free() Free (deallocate) complex vector (function)
356 zv_free_vars() Free a list of complex vectors
357 zv_get() Allocate complex vector
358 zv_get_vars() Allocate a list of complex vectors
359 zv_input() Input complex vector from a stdin
360 zv_lincomb() Compute sum of a_i x_i for an array of vectors
361 zv_linlist() Compute sum of a_i x_i for a list of vectors
362 zv_map() Apply function componentwise to a complex vector
363 zv_mlt() Complex scalar-vector product
364 zv_mltadd() Complex scalar-vector multiply and add
365 zvm_mlt() Computes A^*x (complex)
366 zvm_mltadd() Computes A^*x+y (complex)
367 zv_norm1() Complex vector 1-norm vnorm1()
368 zv_norm2() Complex vector 2-norm (Euclidean norm)
369 zv_norm_inf() Complex vector infinity- (or supremum) norm
370 zv_rand() Randomise complex vector
371 zv_resize() Resize complex vector
372 zv_resize_vars() Resize a list of complex vectors
373 zv_save() Save complex vector in MATLAB format
374 zv_slash() Componentwise ratio of complex vectors
375 zv_star() Componentwise product of complex vectors
376 zv_sub() Subtract complex vectors
377 zv_sum() Sum of components of a complex vector
378 zv_zero() Zero complex vector
379
380
381
382 Low level routines
383
384
385 Function Description
386
387 __add__() Add arrays
388 __ip__() Inner product of arrays
389 MEM_COPY() Copy memory (macro)
390 MEM_ZERO() Zero memory (macro)
391 __mltadd__() Forms x+ alpha*y for arrays
392 __smlt__() Scalar-vector multiplication for arrays
393 __sub__() Subtract an array from another
394 __zadd__() Add complex arrays
395 __zconj__() Conjugate complex array
396 __zero__() Zero an array
397 __zip__() Complex inner product of arrays
398 __zmlt__() Complex array scalar product
399 __zmltadd__() Complex array saxpy
400 __zsub__() Subtract complex arrays
401 __zzero__() Zero a complex array
402
403
+0
-1320
interface/src/scilab/src/c/DOC/tutorial.txt less more
0
1
2 MESCHACH VERSION 1.2A
3 ---------------------
4
5
6 TUTORIAL
7 ========
8
9
10 In this manual the basic data structures are introduced, and some of the
11 more basic operations are illustrated. Then some examples of how to use
12 the data structures and procedures to solve some simple problems are given.
13 The first example program is a simple 4th order Runge-Kutta solver for
14 ordinary differential equations. The second is a general least squares
15 equation solver for over-determined equations. The third example
16 illustrates how to solve a problem involving sparse matrices. These
17 examples illustrate the use of matrices, matrix factorisations and solving
18 systems of linear equations. The examples described in this manual are
19 implemented in tutorial.c.
20
21 While the description of each aspect of the system is brief and far from
22 comprehensive, the aim is to show the different aspects of how to set up
23 programs and routines and how these work in practice, which includes I/O
24 and error-handling issues.
25
26
27
28 1. THE DATA STRUCTURES AND SOME BASIC OPERATIONS
29
30 The three main data structures are those describing vectors, matrices
31 and permutations. These have been used to create data structures for
32 simplex tableaus for linear programming, and used with data structures for
33 sparse matrices etc. To use the system reliably, you should always use
34 pointers to these data structures and use library routines to do all the
35 necessary initialisation.
36
37 In fact, for the operations that involve memory management (creation,
38 destruction and resizing), it is essential that you use the routines
39 provided.
40
41 For example, to create a matrix A of size 34 , a vector x of dimension
42 10, and a permutation p of size 10, use the following code:
43
44
45 #include "matrix.h"
46 ..............
47 main()
48 {
49 MAT *A;
50 VEC *x;
51 PERM *p;
52 ..........
53 A = m_get(3,4);
54 x = v_get(10);
55 p = px_get(10);
56 ..........
57 }
58
59
60 This initialises these data structures to have the given size. The
61 matrix A and the vector x are initially all zero, while p is initially the
62 identity permutation.
63
64 They can be disposed of by calling M_FREE(A), V_FREE(x) and PX_FREE(p)
65 respectively if you need to re-use the memory for something else. The
66 elements of each data structure can be accessed directly using the members
67 (or fields) of the corresponding structures. For example the (i,j)
68 component of A is accessed by A->me[i][j], x_i by x->ve[i] and p_i by
69 p->pe[i].
70
71 Their sizes are also directly accessible: A->m and A->n are the number
72 of rows and columns of A respectively, x->dim is the dimension of x , and
73 size of p is p->size.
74
75 Note that the indexes are zero relative just as they are in ordinary C,
76 so that the index i in x->ve[i] can range from 0 to x->dim -1 . Thus the
77 total number of entries of a vector is exactly x->dim.
78
79 While this alone is sufficient to allow a programmer to do any desired
80 operation with vectors and matrices it is neither convenient for the
81 programmer, nor efficient use of the CPU. A whole library has been
82 implemented to reduce the burden on the programmer in implementing
83 algorithms with vectors and matrices. For instance, to copy a vector from
84 x to y it is sufficient to write y = v_copy(x,VNULL). The VNULL is the
85 NULL vector, and usually tells the routine called to create a vector for
86 output.
87
88 Thus, the v_copy function will create a vector which has the same size
89 as x and all the components are equal to those of x. If y has already
90 been created then you can write y = v_copy(x,y); in general, writing
91 ``v_copy(x,y);'' is not enough! If y is NULL, then it is created (to have
92 the correct size, i.e. the same size as x), and if it is the wrong size,
93 then it is resized to have the correct size (i.e. same size as x). Note
94 that for all the following functions, the output value is returned, even if
95 you have a non-NULL value as the output argument. This is the standard
96 across the entire library.
97
98 Addition, subtraction and scalar multiples of vectors can be computed by
99 calls to library routines: v_add(x,y,out), v_sub(x,y,out), sv_mlt(s,x,out)
100 where x and y are input vectors (with data type VEC *), out is the output
101 vector (same data type) and s is a double precision number (data type
102 double). There is also a special combination routine, which computes
103 out=v_1+s,v_2 in a single routine: v_mltadd(v1,v2,s,out). This is not only
104 extremely useful, it is also more efficient than using the scalar-vector
105 multiply and vector addition routines separately.
106
107 Inner products can be computed directly: in_prod(x,y) returns the inner
108 product of x and y. Note that extended precision evaluation is not
109 guaranteed. The standard installation options uses double precision
110 operations throughout the library.
111
112 Equivalent operations can be performed on matrices: m_add(A,B,C) which
113 returns C=A+B , and sm_mlt(s,A,C) which returns C=sA . The data types of
114 A, B and C are all MAT *, while that of s is type double as before. The
115 matrix NULL is called MNULL.
116
117 Multiplying matrices and vectors can be done by a single function call:
118 mv_mlt(A,x,out) returns out=A*x while vm_mlt(A,x,out) returns out=A^T*x , or
119 equivalently, out^T=x^T*A . Note that there is no distinction between row
120 and column vectors unlike certain interactive environments such as MATLAB
121 or MATCALC.
122
123 Permutations are also an essential part of the package. Vectors can be
124 permuted by using px_vec(p,x,p_x), rows and columns of matrices can be
125 permuted by using px_rows(p,A,p_A), px_cols(p,A,A_p), and permutations can
126 be multiplied using px_mlt(p1,p2,p1_p2) and inverted using px_inv(p,p_inv).
127 The NULL permutation is called PXNULL.
128
129 There are also utility routines to initialise or re-initialise these
130 data structures: v_zero(x), m_zero(A), m_ident(A) (which sets A=I of the
131 correct size), v_rand(x), m_rand(A) which sets the entries of x and A
132 respectively to be randomly and uniformly selected between zero and one,
133 and px_ident(p) which sets p to be an identity permutation.
134
135 Input and output are accomplished by library routines v_input(x),
136 m_input(A), and px_input(p). If a null object is passed to any of these
137 input routines, all data will be obtained from the input file, which is
138 stdin. If input is taken from a keyboard then the user will be prompted
139 for all the data items needed; if input is taken from a file, then the
140 input will have to be of the same format as that produced by the output
141 routines, which are: v_output(x), m_output(A) and px_output(p). This
142 output is both human and machine readable!
143
144 If you wish to send the data to a file other than the standard output
145 device stdout, or receive input from a file or device other than the
146 standard input device stdin, take the appropriate routine above, use the
147 ``foutpout'' suffix instead of just ``output'', and add a file pointer as
148 the first argument. For example, to send a matrix A to a file called
149 ``fred'', use the following:
150
151
152 #include "matrix.h"
153 .............
154 main()
155 {
156 FILE *fp;
157 MAT *A;
158 .............
159 fp = fopen("fred","w");
160 m_foutput(fp,A);
161 .............
162 }
163
164
165 These input routines allow for the presence of comments in the data. A
166 comment in the input starts with a ``hash'' character ``#'', and continues
167 to the end of the line. For example, the following is valid input for a
168 3-dimensional vector:
169
170 # The initial vector must not be zero
171 # x =
172 Vector: dim: 3
173 -7 0 3
174
175
176 For general input/output which conforms to this format, allowing
177 comments in the input files, use the input() and finput() macros. These
178 are used to print out a prompt message if stdin is a terminal (or ``tty''
179 in Unix jargon), and to skip over any comments if input is from a
180 non-interactive device. An example of the usage of these macros is:
181
182 input("Input number of steps: ","%d",&steps);
183 fp = stdin;
184 finput(fp,"Input number of steps: ","%d",&steps);
185 fp = fopen("fred","r");
186 finput(fp,"Input number of steps: ","%d",&steps);
187
188 The "%d" is one of the format specifiers which are used in fscanf(); the
189 last argument is the pointer to the variable (unless the variable is a
190 string) just as for scanf() and fscanf(). The first two macro calls read
191 input from stdin, the last from the file fred. If, in the first two calls,
192 stdin is a keyboard (a ``tty'' in Unix jargon) then the prompt string
193 "Input number of steps: "
194 is printed out on the terminal.
195
196
197 The second part of the library contains routines for various
198 factorisation methods. To use it put
199
200 #include "matrix2.h"
201
202 at the beginning of your program. It contains factorisation and solution
203 routines for LU, Cholesky and QR-factorisation methods, as well as update
204 routines for Cholesky and QR factorisations. Supporting these are a number
205 of Householder transformation and Givens' rotation routines. Also there is
206 a routine for generating the Q matrix for a QR-factorisation, if it is
207 needed explicitly, as it often is.
208 There are routines for band factorisation and solution for LU and LDL^T
209 factorisations.
210
211 For using complex numbers, vectors and matrices include
212
213 #include "zmatrix.h"
214
215 for using the basic routines, and
216
217 #include "zmatrix2.h"
218
219 for the complex matrix factorisation routines. The zmatrix2.h file
220 includes matrix.h and zmatrix.h so you don't need these files included
221 together.
222
223 For using the sparse matrix routines in the library you need to put
224
225 #include "sparse.h"
226
227 or, if you use any sparse factorisation routines,
228
229 #include "sparse2.h"
230
231 at the beginning of your file. The routines contained in the library
232 include routines for creating, destroying, initialising and updating sparse
233 matrices, and also routines for sparse matrix-dense vector multiplication,
234 sparse LU factorisation and sparse Cholesky factorisation.
235
236 For using the iterative routines you need to use
237
238 #include "iter.h"
239
240 This includes the sparse.h and matrix.h file.
241 There are also routines for applying iterative methods such as
242 pre-conditioned conjugate gradient methods to sparse matrices.
243
244 And if you use the standard maths library (sin(), cos(), tan(), exp(),
245 log(), sqrt(), acos() etc.) don't forget to include the standard
246 mathematics header:
247
248 #include <math.h>
249
250 This file is not automatically included by any of the Meschach
251 header files.
252
253
254
255 2. HOW TO MANAGE MEMORY
256
257 Unlike many other numerical libraries, Meschach allows you to allocate,
258 deallocate and resize the vectors, matrices and permutations that you are
259 using. To gain maximum benefit from this it is sometimes necessary to
260 think a little about where memory is allocated and deallocated. There are
261 two reasons for this.
262
263 Memory allocation, deallocation and resizing takes a significant amount
264 of time compared with (say) vector operations, so it should not be done too
265 frequently. Allocating memory but not deallocating it means that it cannot
266 be used by any other data structure. Data structures that are no longer
267 needed should be explicitly deallocated, or kept as static variables for
268 later use. Unlike other interpreted systems (such as Lisp) there is no
269 implicit ``garbage collection'' of no-longer-used memory.
270
271 There are three main strategies that are recommended for deciding how to
272 allocate, deallocate and resize objects. These are ``no deallocation''
273 which is really only useful for demonstration programs, ``allocate and
274 deallocate'' which minimises overall memory requirements at the expense of
275 speed, and ``resize on demand'' which is useful for routines that are
276 called repeatedly. A new technique for static workspace arrays is to
277 ``register workspace variables''.
278
279
280 2.1 NO DEALLOCATION
281
282 This is the strategy of allocating but never deallocating data
283 structures. This is only useful for demonstration programs run with small
284 to medium size data structures. For example, there could be a line
285
286 QR = m_copy(A,MNULL); /* allocate memory for QR */
287
288 to allocate the memory, but without the call M_FREE(QR); in it. This can
289 be acceptable if QR = m_copy(A,MNULL) is only executed once, and so the
290 allocated memory never needs to be explicitly deallocated.
291
292 This would not be acceptable if QR = m_copy(A,MNULL) occurred inside a
293 for loop. If this were so, then memory would be ``lost'' as far as the
294 program is concerned until there was insufficient space for allocating the
295 next matrix for QR. The next subsection shows how to avoid this.
296
297
298 2.2 ALLOCATE AND DEALLOCATE
299
300 This is the most straightforward way of ensuring that memory is not
301 lost. With the example of allocating QR it would work like this:
302
303 for ( ... ; ... ; ... )
304 {
305 QR = m_copy(A,MNULL); /* allocate memory for QR */
306 /* could have been allocated by m_get() */
307 /* use QR */
308 ......
309 ......
310 /* no longer need QR for this cycle */
311 M_FREE(QR); /* deallocate QR so memory can be reused */
312 }
313
314 The allocate and deallocate statements could also have come at the
315 beginning and end of a function or procedure, so that when the function
316 returns, all the memory that the function has allocated has been
317 deallocated.
318
319 This is most suitable for functions or sections of code that are called
320 repeatedly but involve fairly extensive calculations (at least a
321 matrix-matrix multiply, or solving a system of equations).
322
323
324 2.3 RESIZE ON DEMAND
325
326 This technique reduces the time involved in memory allocation for code
327 that is repeatedly called or used, especially where the same size matrix or
328 vector is needed. For example, the vectors v1, v2, etc. in the
329 Runge-Kutta routine rk4() are allocated according to this strategy:
330
331 rk4(...,x,...)
332 {
333 static VEC *v1=VNULL, *v2=VNULL, *v3=VNULL, *v4=VNULL, *temp=VNULL;
334 .......
335 v1 = v_resize(v1,x->dim);
336 v2 = v_resize(v2,x->dim);
337 v3 = v_resize(v3,x->dim);
338 v4 = v_resize(v4,x->dim);
339 temp = v_resize(temp,x->dim);
340 .......
341 }
342
343 The intention is that the rk4() routine is called repeatedly with the
344 same size x vector. It then doesn't make as much sense to allocate v1, v2
345 etc. whenever the function is called. Instead, v_resize() only performs
346 memory allocation if the memory already allocated to v1, v2 etc. is smaller
347 than x->dim.
348
349 The vectors v1, v2 etc. are declared to be static to ensure that their
350 values are not lost between function calls. Variables that are declared
351 static are set to NULL or zero by default. So the declaration of v1, v2,
352 etc., could be
353
354 static VEC *v1, *v2, *v3, *v4, *temp;
355
356 This strategy of resizing static workspace variables is not so useful if
357 the object being allocated is extremely large. The previous ``allocate and
358 deallocate'' strategy is much more efficient for memory in those
359 circumstances. However, the following section shows how to get the best of
360 both worlds.
361
362
363 2.4 REGISTRATION OF WORKSPACE
364
365 From version 1.2 onwards, workspace variables can be registered so that
366 the memory they reference can be freed up on demand. To do this, the
367 function containing the static workspace variables has to include calls to
368 MEM_STAT_REG(var,type) where var is a pointer to a Meschach data type (such
369 as VEC or MAT). This call should be placed after the call to the
370 appropriate resize function. The type parameter should be a TYPE_... macro
371 where the ``...'' is the name of a Meschach type such as VEC or MAT. For
372 example,
373
374 rk4(...,x,...)
375 {
376 static VEC *v1, *v2, *v3, *v4, *temp;
377 .......
378 v1 = v_resize(v1,x->dim);
379 MEM_STAT_REG(v1,TYPE_VEC);
380 v2 = v_resize(v2,x->dim);
381 MEM_STAT_REG(v2,TYPE_VEC);
382 ......
383 }
384
385 Normally, these registered workspace variables remain allocated. However,
386 to implement the ``deallocate on exit'' approach, use the following code:
387
388 ......
389 mem_stat_mark(1);
390 rk4(...,x,...)
391 mem_stat_free(1);
392 ......
393
394 To keep the workspace vectors allocated for the duration of a loop, but
395 then deallocated, use
396
397 ......
398 mem_stat_mark(1);
399 for (i = 0; i < N; i++ )
400 rk4(...,x,...);
401 mem_stat_free(1);
402 ......
403
404 The number used in the mem_stat_mark() and mem_stat_free() calls is the
405 workspace group number. The call mem_stat_mark(1) designates 1 as the
406 current workspace group number; the call mem_stat_free(1) deallocates (and
407 sets to NULL) all static workspace variables registered as belonging to
408 workspace group 1.
409
410
411
412 3. SIMPLE VECTOR OPERATIONS: AN RK4 ROUTINE
413
414 The main purpose of this example is to show how to deal with vectors and
415 to compute linear combinations.
416
417 The problem here is to implement the standard 4th order Runge-Kutta
418 method for the ODE
419
420 x'=f(t,x), x(t_0)=x_0
421
422 for x(t_i), i=1,2,3, where t_i=t_0+i*h and h is the step size.
423
424 The formulae for the 4th order Runge-Kutta method are:
425
426 x_i+1 = x_i+ h/6*(v_1+2*v_2+2*v_3+v_4),
427 where
428 v_1 = f(t_i,x_i)
429 v_2 = f(t_i+h, x_i+h*v_1)
430 v_3 = f(t_i+h, x_i+h*v_2)
431 v_4 = f(t_i+h, x_i+h*v_3)
432
433 where the v_i are vectors.
434
435 The procedure for implementing this method (rk4()) will be passed (a
436 pointer to) the function f. The implementation of f could, in this system,
437 create a vector to hold the return value each time it is called. However,
438 such a scheme is memory intensive and the calls to the memory allocation
439 functions could easily dominate the time performed doing numerical
440 computations. So, the implementation of f will also be passed an already
441 allocated vector to be filled in with the appropriate values.
442
443 The procedure rk4() will also be passed the current time t, the step
444 size h, and the current value for x. The time after the step will be
445 returned by rk4().
446
447 The code that does this follows.
448
449
450 #include "matrix.h"
451
452 /* rk4 - 4th order Runge-Kutta method */
453 double rk4(f,t,x,h)
454 double t, h;
455 VEC *(*f)(), *x;
456 {
457 static VEC *v1=VNULL, *v2=VNULL, *v3=VNULL, *v4=VNULL;
458 static VEC *temp=VNULL;
459
460 /* do not work with NULL initial vector */
461 if ( x == VNULL )
462 error(E_NULL,"rk4");
463
464 /* ensure that v1, ..., v4, temp are of the correct size */
465 v1 = v_resize(v1,x->dim);
466 v2 = v_resize(v2,x->dim);
467 v3 = v_resize(v3,x->dim);
468 v4 = v_resize(v4,x->dim);
469 temp = v_resize(temp,x->dim);
470
471 /* register workspace variables */
472 MEM_STAT_REG(v1,TYPE_VEC);
473 MEM_STAT_REG(v2,TYPE_VEC);
474 MEM_STAT_REG(v3,TYPE_VEC);
475 MEM_STAT_REG(v4,TYPE_VEC);
476 MEM_STAT_REG(temp,TYPE_VEC);
477 /* end of memory allocation */
478
479 (*f)(t,x,v1); /* most compilers allow: f(t,x,v1); */
480 v_mltadd(x,v1,0.5*h,temp); /* temp = x+.5*h*v1 */
481 (*f)(t+0.5*h,temp,v2);
482 v_mltadd(x,v2,0.5*h,temp); /* temp = x+.5*h*v2 */
483 (*f)(t+0.5*h,temp,v3);
484 v_mltadd(x,v3,h,temp); /* temp = x+h*v3 */
485 (*f)(t+h,temp,v4);
486
487 /* now add: v1+2*v2+2*v3+v4 */
488 v_copy(v1,temp); /* temp = v1 */
489 v_mltadd(temp,v2,2.0,temp); /* temp = v1+2*v2 */
490 v_mltadd(temp,v3,2.0,temp); /* temp = v1+2*v2+2*v3 */
491 v_add(temp,v4,temp); /* temp = v1+2*v2+2*v3+v4 */
492
493 /* adjust x */
494 v_mltadd(x,temp,h/6.0,x); /* x = x+(h/6)*temp */
495
496 return t+h; /* return the new time */
497 }
498
499
500 Note that the last parameter of f() is where the output is placed.
501 Often this can be NULL in which case the appropriate data structure is
502 allocated and initialised. Note also that this routine can be used for
503 problems of arbitrary size, and the dimension of the problem is determined
504 directly from the data given. The vectors v_1,...,v_4 are created to have
505 the correct size in the lines
506
507 ....
508 v1 = v_resize(v1,x->dim);
509 v2 = v_resize(v2,x->dim);
510 ....
511
512 Here v_resize(v,dim) resizes the VEC structure v to hold a vector of
513 length dim. If v is initially NULL, then this creates a new vector of
514 dimension dim, just as v_get(dim) would do. For the above piece of code to
515 work correctly, v1, v2 etc., must be initialised to be NULL vectors. This
516 is done by the declaration
517
518 static VEC *v1=VNULL, *v2=VNULL, *v3=VNULL, *v4=VNULL;
519
520 or
521
522 static VEC *v1, *v2, *v3, *v4;
523
524 The operations of vector addition and scalar addition are really the only
525 vector operations that need to be performed in rk4. Vector addition is
526 done by v_add(v1,v2,out), where out=v1+v2, and scalar multiplication by
527 sv_mlt(scale,v,out), where out=scale*v.
528
529 These can be combined into a single operation v_mltadd(v1,v2,scale,out),
530 where out=v1+scale*v2. As many operations in numerical mathematics involve
531 accumulating scalar multiples, this is an extremely useful operation, as we
532 can see above. For example:
533
534 v_mltadd(x,v1,0.5*h,temp); /* temp = x+0.5*h*v1 */
535
536 We also need a number of ``utility'' operations. For example v_copy(in,
537 out) copies the vector in to out. There is also v_zero(v) to zero a vector
538 v.
539
540 Here is an implementation of the function f for simple harmonic motion:
541
542 /* f - right-hand side of ODE solver */
543 VEC *f(t,x,out)
544 VEC *x, *out;
545 double t;
546 {
547 if ( x == VNULL || out == VNULL )
548 error(E_NULL,"f");
549 if ( x->dim != 2 || out->dim != 2 )
550 error(E_SIZES,"f");
551
552 out->ve[0] = x->ve[1];
553 out->ve[1] = - x->ve[0];
554
555 return out;
556 }
557
558 As can be seen, most of this code is error checking code, which, of
559 course, makes the routine safer but a little slower. For a procedure like
560 f() it is probably not necessary, although then the main program would have
561 to perform checking to ensure that the vectors involved have the correct
562 size etc. The ith component of a vector x is x->ve[i], and indexing is
563 zero-relative (i.e., the ``first'' component is component 0). The ODE
564 described above is for simple harmonic motion:
565
566 x_0'=x_1 , x_1'=-x_0 , or equivalently, x_0''+ x_0 = 0 .
567
568 Here is the main program:
569
570
571 #include <stdio.h>
572 #include "matrix.h"
573
574 main()
575 {
576 VEC *x;
577 VEC *f();
578 double h, t, t_fin;
579 double rk4();
580
581 input("Input initial time: ", "%lf", &t);
582 input("Input final time: ", "%lf", &t_fin);
583 x = v_get(2); /* this is the size needed by f() */
584 prompter("Input initial state:\n"); x = v_input(VNULL);
585 input("Input step size: ", "%lf", &h);
586
587 printf("# At time %g, the state is\n",t);
588 v_output(x);
589 while ( t < t_fin )
590 {
591 t = rk4(f,t,x,min(h,t_fin-t)); /* new t is returned */
592 printf("# At time %g, the state is\n",t);
593 v_output(x);
594 t += h;
595 }
596 }
597
598 The initial values are entered as a vector by v_input(). If v_input()
599 is passed a vector, then this vector will be used to store the input, and
600 this vector has the size that x had on entry to v_input(). The original
601 values of x are also used as a prompt on input from a tty. If a NULL is
602 passed to v_input() then v_input() will return a vector of whatever size
603 the user inputs. So, to ensure that only a two-dimensional vector is used
604 for the initial conditions (which is what f() is expecting) we use
605
606 x = v_get(2); x = v_input(x);
607
608 To compile the program under Unix, if it is in a file tutorial.c:
609
610 cc -o tutorial tutorial.c meschach.a
611
612 or, if you have an ANSI compiler,
613
614 cc -DANSI_C -o tutorial tutorial.c meschach.a
615
616 Here is a sample session with the above program:
617
618 tutorial
619
620 Input initial time: 0
621 Input final time: 1
622 Input initial state:
623 Vector: dim: 2
624 entry 0: -1
625 entry 1: b
626 entry 0: old -1 new: 1
627 entry 1: old 0 new: 0
628 Input step size: 0.1
629 At time 0, the state is
630 Vector: dim: 2
631 1 0
632 At time 0.1, the state is
633 Vector: dim: 2
634 0.995004167 -0.0998333333
635 .................
636 At time 1, the state is
637 Vector: dim: 2
638 0.540302967 -0.841470478
639
640 By way of comparison, the state at t=1 for the true solution is
641 x_0(1)=0.5403023058 , x_1(1)=-0.8414709848 .
642 The ``b'' that is typed in entering the x vector allows the user to alter
643 previously entered components. In this case once this is done, the user is
644 prompted with the old values when entering the new values. The user can
645 also type in ``f'' for skipping over the vector's components, which are
646 then unchanged. If an incorrectly sized initial value vector x is given,
647 the error handler comes into action:
648
649 Input initial time: 0
650 Input final time: 1
651 Input initial state:
652 Vector: dim: 3
653 entry 0: 3
654 entry 1: 2
655 entry 2: -1
656 Input step size: 0.1
657 At time 0, the state is
658 Vector: dim: 3
659 3 2 -1
660
661 "tutorial.c", line 79: sizes of objects don't match in function f()
662 Sorry, aborting program
663
664 The error handler prints out the error message giving the source code
665 file and line number as well as the function name where the error was
666 raised. The relevant section of f() in file tutorial.c is:
667
668 if ( x->dim != 2 || out->dim != 2 )
669 error(E_SIZES,"f"); /* line 79 */
670
671
672 The standard routines in this system perform error checking of this
673 type, and also checking for undefined results such as division by zero in
674 the routines for solving systems of linear equations. There are also error
675 messages for incorrectly formatted input and end-of-file conditions.
676
677 To round off the discussion of this program, note that we have seen
678 interactive input of vectors. If the input file or stream is not a tty
679 (e.g., a file, a pipeline or a device) then it expects the input to have
680 the same form as the output for each of the data structures. Each of the
681 input routines (v_input(), m_input(), px_input()) skips over ``comments''
682 in the input data, as do the macros input() and finput(). Anything from a
683 `#' to the end of the line (or EOF) is considered to be a comment. For
684 example, the initial value problem could be set up in a file ivp.dat as:
685
686 # Initial time
687 0
688 # Final time
689 1
690 # Solution is x(t) = (cos(t),-sin(t))
691 # x(0) =
692 Vector: dim: 2
693 1 0
694 # Step size
695 0.1
696
697 The output of the above program with the above input (from a file) gives
698 essentially the same output as shown above, except that no prompts are sent
699 to the screen.
700
701
702
703 4. USING ROUTINES FOR LISTS OF ARGUMENTS
704
705 Some of the most common routines have variants that take a variable
706 number of arguments. These are the routines .._get_vars(), .._resize_vars()
707 and .._free_vars(). These correspond to the basic routines .._get(),
708 .._resize() and .._free() respectively. Also there is the
709 mem_stat_reg_vars() routine which registers a list of static workspace
710 variables. This corresponds to mem_stat_reg_list() for a single variable.
711
712 Here is an example of how to use these functions. This example also
713 uses the routine v_linlist() to compute a linear combination of vectors.
714 Note that the code is much more compact, but don't forget that these
715 ``..._vars()'' routines usually need the address-of operator ``&'' and NULL
716 termination of the arguments to work correctly.
717
718
719 #include "matrix.h"
720
721 /* rk4 - 4th order Runge-Kutta method */
722 double rk4(f,t,x,h)
723 double t, h;
724 VEC *(*f)(), *x;
725 {
726 static VEC *v1, *v2, *v3, *v4, *temp;
727
728 /* do not work with NULL initial vector */
729 if ( x == VNULL )
730 error(E_NULL,"rk4");
731
732 /* ensure that v1, ..., v4, temp are of the correct size */
733 v_resize_vars(x->dim, &v1, &v2, &v3, &v4, &temp, NULL);
734
735 /* register workspace variables */
736 mem_stat_reg_vars(0, TYPE_VEC, &v1, &v2, &v3, &v4, &temp, NULL);
737 /* end of memory allocation */
738
739 (*f)(t,x,v1); v_mltadd(x,v1,0.5*h,temp);
740 (*f)(t+0.5*h,temp,v2); v_mltadd(x,v2,0.5*h,temp);
741 (*f)(t+0.5*h,temp,v3); v_mltadd(x,v3,h,temp);
742 (*f)(t+h,temp,v4);
743
744 /* now add: temp = v1+2*v2+2*v3+v4 */
745 v_linlist(temp, v1, 1.0, v2, 2.0, v3, 2.0, v4, 1.0, VNULL);
746 /* adjust x */
747 v_mltadd(x,temp,h/6.0,x); /* x = x+(h/6)*temp */
748
749 return t+h; /* return the new time */
750 }
751
752
753
754 5. A LEAST SQUARES PROBLEM
755
756 Here we need to use matrices and matrix factorisations (in particular, a
757 QR factorisation) in order to find the best linear least squares solution
758 to some data. Thus in order to solve the (approximate) equations
759 A*x = b,
760 where A is an m x n matrix (m > n) we really need to solve the optimisation
761 problem
762 min_x ||Ax-b||^2.
763
764 If we write A=QR where Q is an orthogonal m x m matrix and R is an upper
765 triangular m x n matrix then (we use 2-norm)
766
767 ||A*x-b||^2 = ||R*x-Q^T*b||^2 = || R_1*x - Q_1^T*b||^2 + ||Q_2^T*b||^2
768
769 where R_1 is an n x n upper triangular matrix. If A has full rank then R_1
770 will be an invertible matrix, and the best least squares solution of A*x=b
771 is x= R_1^{-1}*Q_1^T*b .
772
773 These calculations can be be done quite easily as there is a QRfactor()
774 function available with the system. QRfactor() is declared to have the
775 prototype
776
777 MAT *QRfactor(MAT *A, VEC *diag);
778
779 The matrix A is overwritten with the factorisation of A ``in compact
780 form''; that is, while the upper triangular part of A is indeed the R
781 matrix described above, the Q matrix is stored as a collection of
782 Householder vectors in the strictly lower triangular part of A and in the
783 diag vector. The QRsolve() function knows and uses this compact form and
784 solves Q*R*x=b with the call QRsolve(A,diag,b,x), which also returns x.
785
786 Here is the code to obtain the matrix A, perform the QR factorisation,
787 obtain the data vector b, solve for x, and determine what the norm of the
788 errors ( ||Ax-b||_2 ) is.
789
790
791 #include "matrix2.h"
792
793 main()
794 {
795 MAT *A, *QR;
796 VEC *b, *x, *diag;
797
798 /* read in A matrix */
799 printf("Input A matrix:");
800
801 A = m_input(MNULL); /* A has whatever size is input */
802
803 if ( A->m < A->n )
804 {
805 printf("Need m >= n to obtain least squares fit");
806 exit(0);
807 }
808 printf("# A ="); m_output(A);
809 diag = v_get(A->m);
810
811 /* QR is to be the QR factorisation of A */
812 QR = m_copy(A,MNULL);
813 QRfactor(QR,diag);
814
815 /* read in b vector */
816 printf("Input b vector:");
817 b = v_get(A->m);
818 b = v_input(b);
819 printf("# b ="); v_output(b);
820
821 /* solve for x */
822 x = QRsolve(QR,diag,b,VNULL);
823 printf("Vector of best fit parameters is");
824 v_output(x);
825
826 /* ... and work out norm of errors... */
827 printf("||A*x-b|| = %g\n",
828 v_norm2(v_sub(mv_mlt(A,x,VNULL),b,VNULL)));
829 }
830
831 Note that as well as the usual memory allocation functions like m_get(),
832 the I/O functions like m_input() and m_output(), and the
833 factorise-and-solve functions QRfactor() and QRsolve(), there are also
834 functions for matrix-vector multiplication:
835 mv_mlt(MAT *A, VEC *x, VEC *out)
836 and also vector-matrix multiplication (with the vector on the left):
837 vm_mlt(MAT *A, VEC *x, VEC *out),
838 with out=x^T A. There are also functions to perform matrix arithmetic -
839 matrix addition m_add(), matrix-scalar multiplication sm_mlt(),
840 matrix-matrix multiplication m_mlt().
841
842 Several different sorts of matrix factorisation are supported: LU
843 factorisation (also known as Gaussian elimination) with partial pivoting,
844 by LUfactor() and LUsolve(). Other factorisation methods include Cholesky
845 factorisation CHfactor() and CHsolve(), and QR factorisation with column
846 pivoting QRCPfactor().
847
848 Pivoting involve permutations which have their own PERM data structure.
849 Permutations can be created by px_get(), read and written by px_input() and
850 px_output(), multiplied by px_mlt(), inverted by px_inv() and applied to
851 vectors by px_vec().
852
853 The above program can be put into a file leastsq.c and compiled under Unix
854 using
855
856 cc -o leastsq leastsq.c meschach.a -lm
857
858 A sample session using leastsq follows:
859
860
861 Input A matrix:
862 Matrix: rows cols:5 3
863 row 0:
864 entry (0,0): 3
865 entry (0,1): -1
866 entry (0,2): 2
867 Continue:
868 row 1:
869 entry (1,0): 2
870 entry (1,1): -1
871 entry (1,2): 1
872 Continue: n
873 row 1:
874 entry (1,0): old 2 new: 2
875 entry (1,1): old -1 new: -1
876 entry (1,2): old 1 new: 1.2
877 Continue:
878 row 2:
879 entry (2,0): old 0 new: 2.5
880 ....
881 .... (Data entry)
882 ....
883 # A =
884 Matrix: 5 by 3
885 row 0: 3 -1 2
886 row 1: 2 -1 1.2
887 row 2: 2.5 1 -1.5
888 row 3: 3 1 1
889 row 4: -1 1 -2.2
890 Input b vector:
891 entry 0: old 0 new: 5
892 entry 1: old 0 new: 3
893 entry 2: old 0 new: 2
894 entry 3: old 0 new: 4
895 entry 4: old 0 new: 6
896 # b =
897 Vector: dim: 5
898 5 3 2 4 6
899 Vector of best fit parameters is
900 Vector: dim: 3
901 1.47241555 -0.402817858 -1.14411815
902 ||A*x-b|| = 6.78938
903
904
905 The Q matrix can be obtained explicitly by the routine makeQ(). The Q
906 matrix can then be used to obtain an orthogonal basis for the range of A .
907 An orthogonal basis for the null space of A can be obtained by finding the
908 QR-factorisation of A^T .
909
910
911
912 6. A SPARSE MATRIX EXAMPLE
913
914 To illustrate the sparse matrix routines, consider the problem of
915 solving Poisson's equation on a square using finite differences, and
916 incomplete Cholesky factorisation. The actual equations to solve are
917
918 u_{i,j+1} + u_{i,j-1} + u_{i+1,j} + u_{i-1,j} - 4*u_{i,j} =
919 h^2*f(x_i,y_j), for i,j=1,...,N
920
921 where u_{0,j} = u_{i,0} = u_{N+1,j} = u_{i,N+1} = 0 for i,j=1,...,N and h
922 is the common distance between grid points.
923
924 The first task is to set up the matrix describing this system of linear
925 equations. The next is to set up the right-hand side. The third is to
926 form the incomplete Cholesky factorisation of this matrix, and finally to
927 use the sparse matrix conjugate gradient routine with the incomplete
928 Cholesky factorisation as preconditioner.
929
930 Setting up the matrix and right-hand side can be done by the following
931 code:
932
933
934 #define N 100
935 #define index(i,j) (N*((i)-1)+(j)-1)
936 ......
937 A = sp_get(N*N,N*N,5);
938 b = v_get(N*N);
939 h = 1.0/(N+1); /* for a unit square */
940 ......
941
942 for ( i = 1; i <= N; i++ )
943 for ( j = 1; j <= N; j++ )
944 {
945 if ( i < N )
946 sp_set_val(A,index(i,j),index(i+1,j),-1.0);
947 if ( i > 1 )
948 sp_set_val(A,index(i,j),index(i-1,j),-1.0);
949 if ( j < N )
950 sp_set_val(A,index(i,j),index(i,j+1),-1.0);
951 if ( j > 1 )
952 sp_set_val(A,index(i,j),index(i,j-1),-1.0);
953 sp_set_val(A,index(i,j),index(i,j),4.0);
954 b->ve[index(i,j)] = -h*h*f(h*i,h*j);
955 }
956
957 Once the matrix and right-hand side are set up, the next task is to
958 compute the sparse incomplete Cholesky factorisation of A. This must be
959 done in a different matrix, so A must be copied.
960
961 LLT = sp_copy(A);
962 spICHfactor(LLT);
963
964 Now when that is done, the remainder is easy:
965
966 out = v_get(A->m);
967 ......
968 iter_spcg(A,LLT,b,1e-6,out,1000,&num_steps);
969 printf("Number of iterations = %d\n",num_steps);
970 ......
971
972 and the output can be used in whatever way desired.
973
974 For graphical output of the results, the solution vector can be copied
975 into a square matrix, which is then saved in MATLAB format using m_save(),
976 and graphical output can be produced by MATLAB.
977
978
979
980 7. HOW DO I ....?
981
982 For the convenience of the user, here a number of common tasks that
983 people need to perform frequently, and how to perform the computations
984 using Meschach.
985
986
987 7.1 .... SOLVE A SYSTEM OF LINEAR EQUATIONS ?
988
989 If you wish to solve Ax=b for x given A and b (without destroying A),
990 then the following code will do this:
991
992 VEC *x, *b;
993 MAT *A, *LU;
994 PERM *pivot;
995 ......
996 LU = m_get(A->m,A->n);
997 LU = m_copy(A,LU);
998 pivot = px_get(A->m);
999 LUfactor(LU,pivot);
1000 /* set values of b here */
1001 x = LUsolve(LU,pivot,b,VNULL);
1002
1003
1004 7.2 .... SOLVE A LEAST-SQUARES PROBLEM ?
1005
1006 To minimise ||Ax-b||_2^2 = sum_i ((Ax)_i-b_i)^2, the most reliable
1007 method is based on the QR-factorisation. The following code performs this
1008 calculation assuming that A is m x n with m > n :
1009
1010 MAT *A, *QR;
1011 VEC *diag, *b, *x;
1012 ......
1013 QR = m_get(A->m,A->n);
1014 QR = m_copy(A,QR);
1015 diag = v_get(A->n);
1016 QRfactor(QR,diag);
1017 /* set values of b here */
1018 x = QRsolve(QR,diag,b,x);
1019
1020
1021 7.3 .... FIND ALL THE EIGENVALUES (AND EIGENVECTORS) OF A GENERAL MATRIX ?
1022
1023 The best method is based on the Schur decomposition. For symmetric
1024 matrices, the eigenvalues and eigenvectors can be computed by a single call
1025 to symmeig(). For non-symmetric matrices, the situation is more complex
1026 and the problem of finding eigenvalues and eigenvectors can become quite
1027 ill-conditioned. Provided the problem is not too ill-conditioned, the
1028 following code should give accurate results:
1029
1030
1031 /* A is the matrix whose eigenvalues and eigenvectors are sought */
1032 MAT *A, *T, *Q, *X_re, *X_im;
1033 VEC *evals_re, *evals_im;
1034 ......
1035 Q = m_get(A->m,A->n);
1036 T = m_copy(A,MNULL);
1037
1038 /* compute Schur form: A = Q*T*Q^T */
1039 schur(T,Q);
1040
1041 /* extract eigenvalues */
1042 evals_re = v_get(A->m);
1043 evals_im = v_get(A->m);
1044 schur_evals(T,evals_re,evals_im);
1045
1046 /* Q not needed for eiegenvalues */
1047 X_re = m_get(A->m,A->n);
1048 X_im = m_get(A->m,A->n);
1049 schur_vecs(T,Q,X_re,X_im);
1050 /* k'th eigenvector is k'th column of (X_re + i*X_im) */
1051
1052
1053
1054 7.4 .... SOLVE A LARGE, SPARSE, POSITIVE DEFINITE SYSTEM OF EQUATIONS ?
1055
1056 An example of a large, sparse, positive definite matrix is the matrix
1057 obtained from a finite-difference approximation of the Laplacian operator.
1058 If an explicit representation of such a matrix is available, then the
1059 following code is suggested as a reasonable way of computing solutions:
1060
1061
1062 /* A*x == b is the system to be solved */
1063 SPMAT *A, *LLT;
1064 VEC *x, *b;
1065 int num_steps;
1066 ......
1067 /* set up A and b */
1068 ......
1069 x = m_get(A->m);
1070 LLT = sp_copy(A);
1071
1072 /* preconditioning using the incomplete Cholesky factorisation */
1073 spICHfactor(LLT);
1074
1075 /* now use pre-conditioned conjugate gradients */
1076 x = iter_spcg(A,LLT,b,1e-7,x,1000,&num_steps);
1077 /* solution computed to give a relative residual of 10^-7 */
1078
1079
1080 If explicitly storing such a matrix takes up too much memory, then if
1081 you can write a routine to perform the calculation of A*x for any given x ,
1082 the following code may be more suitable (if slower):
1083
1084
1085 VEC *mult_routine(user_def,x,out)
1086 void *user_def;
1087 VEC *x, *out;
1088 {
1089 /* compute out = A*x */
1090 ......
1091 return out;
1092 }
1093
1094
1095 main()
1096 {
1097 ITER *ip;
1098 VEC *x, *b;
1099 ......
1100 b = v_get(BIG_DIM); /* right-hand side */
1101 x = v_get(BIG_DIM); /* solution */
1102
1103 /* set up b */
1104 ......
1105 ip = iter_get(b->dim, x->dim);
1106 ip->b = v_copy(b,ip->b);
1107 ip->info = NULL; /* if you don't want information
1108 about solution process */
1109 v_zero(ip->x); /* initial guess is zero */
1110 iter_Ax(ip,mult_routine,user_def);
1111 iter_cg(ip);
1112 printf("# Solution is:\n"); v_output(ip->x);
1113 ......
1114 ITER_FREE(ip); /* destroy ip */
1115 }
1116
1117 The user_def argument is for a pointer to a user-defined structure
1118 (possibly NULL, if you don't need this) so that you can write a common
1119 function for handling a large number of different circumstances.
1120
1121
1122
1123 8. MORE ADVANCED TOPICS
1124
1125 Read this if you are interested in using Meschach library as a base for
1126 applications. As an example we show how to implement a new type for 3
1127 dimensional matrices and incorporate this new type into the Meschach
1128 system. Usually this part of Meschach is transparent to a user. But a more
1129 advanced user can take advantage of these routines. We do not describe
1130 the routines in detail here, but we want to give a rather broad picture of
1131 what can be done. By the system we mainly mean the system of delivering
1132 information on the number of bytes of allocated memory and routines for
1133 deallocating static variables by mem_stat_... routines.
1134
1135 First we introduce a concept of a list of types. By a list of types we
1136 mean a set of different types with corresponding routines for creating
1137 these types, destroying and resizing them. Each type list has a number.
1138 The list 0 is a list of standard Meschach types such as MAT or VEC. Other
1139 lists can be defined by a user or a application (based on Meschach). The
1140 user can attach his/her own list to the system by the routine
1141 mem_attach_list(). Sometimes it is worth checking if a list number is
1142 already used by another application. It can be done by
1143 mem_is_list_attached(ls_num), which returns TRUE if the number ls_num
1144 is used. And such a list can be removed from the system by
1145 mem_free_list(ls_num) if necessary.
1146
1147 We describe arguments required by mem_attach_list(). The prototype of
1148 this function is as follow
1149
1150 int mem_attach_list(int ls_num, int ntypes, char *type_names[],
1151 int (*free_funcs[])(), MEM_ARRAY sum[]);
1152
1153 where the structure MEM_ARRAY has two members: "bytes" of type long and
1154 "numvar" of type int. The frst argument is the list number. Note that you
1155 cannot overwrite another list. To do this remove first the old list (by
1156 mem_free_list()) or choose another number. The next argument is the number
1157 of types which are on the list. This number cannot be changed during
1158 running a program. The third argument is an array containing the names of
1159 types (these are character strings). The fourth one is an array of
1160 functions deallocating variables of the corresponding type. And the last
1161 argument is the local array where information about the number of bytes of
1162 allocated/deallocated memory (member bytes) and the number of allocated
1163 variables (member numvar) are gathered. The functions which send
1164 information to this array are mem_bytes_list() and mem_numvar_list().
1165
1166
1167 Example: The routines described here are in the file tutadv.c.
1168 Firstly we define some macros and a type for 3 dimensional matrices.
1169
1170 #include "matrix.h"
1171 #define M3D_LIST 3 /* list number */
1172 #define TYPE_MAT3D 0 /* the number of a type */
1173 /* type for 3 dimensional matrices */
1174 typedef struct {
1175 int l,m,n; /* actual dimensions */
1176 int max_l, max_m, max_n; /* maximal dimensions */
1177 Real ***me; /* pointer to matrix elements */
1178 /* we do not consider segmented memory */
1179 Real *base, **me2d; /* me and me2d are additional pointers
1180 to base */
1181 } MAT3D;
1182
1183
1184 Now we need two routines: one for allocating memory for 3 dimensional
1185 matrices and the other for deallocating it. It can be useful to have a
1186 routine for resizing 3 dimensional matrices but we do not use it here.
1187 Note the use of mem_bytes_list() and mem_numvar_list() to notify the change
1188 in the number of structures and bytes in use.
1189
1190 /* function for creating a variable of MAT3D type */
1191
1192 MAT3D *m3d_get(l,m,n)
1193 int l,m,n;
1194 {
1195 MAT3D *mat;
1196 ....
1197 /* alocate memory for structure */
1198 if ((mat = NEW(MAT3D)) == (MAT3D *)NULL)
1199 error(E_MEM,"m3d_get");
1200 else if (mem_info_is_on()) {
1201 /* record how many bytes are allocated to structure */
1202 mem_bytes_list(TYPE_MAT3D,0,sizeof(MAT3D),M3D_LIST);
1203 /* record a new allocated variable */
1204 mem_numvar_list(TYPE_MAT3D,1,M3D_LIST);
1205 }
1206 ....
1207 /* allocate memory for 3D array */
1208 if ((mat->base = NEW_A(l*m*n,Real)) == (Real *)NULL)
1209 error(E_MEM,"m3d_get");
1210 else if (mem_info_is_on())
1211 mem_bytes_list(TYPE_MAT3D,0,l*m*n*sizeof(Real),M3D_LIST);
1212 ....
1213 return mat;
1214 }
1215
1216 /* deallocate a variable of type MAT3D */
1217
1218 int m3d_free(mat)
1219 MAT3D *mat;
1220 {
1221 /* do not try to deallocate the NULL pointer */
1222 if (mat == (MAT3D *)NULL)
1223 return -1;
1224 ....
1225 /* first deallocate base */
1226 if (mat->base != (Real *)NULL) {
1227 if (mem_info_is_on())
1228 /* record how many bytes is deallocated */
1229 mem_bytes_list(TYPE_MAT3D,mat->max_l*mat->max_m*mat->max_n*sizeof(Real),
1230 0,M3D_LIST);
1231 free((char *)mat->base);
1232 }
1233 ....
1234 /* deallocate MAT3D structure */
1235 if (mem_info_is_on()) {
1236 mem_bytes_list(TYPE_MAT3D,sizeof(MAT3D),0,M3D_LIST);
1237 mem_numvar_list(TYPE_MAT3D,-1,M3D_LIST);
1238 }
1239 free((char *)mat);
1240
1241 ....
1242 free((char *)mat);
1243
1244 return 0;
1245 }
1246
1247
1248 We can now create the arrays necessary for mem_attach_list(). Note that
1249 m3d_sum can be static if it is in the same file as main(), where
1250 mem_attach_list is called. Otherwise it must be global.
1251
1252
1253 char *m3d_names[] = {
1254 "MAT3D"
1255 };
1256
1257 #define M3D_NUM (sizeof(m3d_names)/sizeof(*m3d_names))
1258
1259 int (*m3d_free_funcs[M3D_NUM])() = {
1260 m3d_free
1261 }
1262
1263 static MEM_ARRAY m3d_sum[M3D_NUM];
1264
1265
1266 The last thing is to attach the list to the system.
1267
1268 void main()
1269 {
1270 MAT3D *M;
1271 ....
1272
1273 mem_info_on(TRUE); /* switch memory info on */
1274 /* attach the new list */
1275 mem_attach_list(M3D_LIST,M3D_NUM,m3d_names,m3d_free_funcs,m3d_sum);
1276 ....
1277 M = m3d_get(3,4,5);
1278 ....
1279 /* making use of M->me[i][j][k], where i,j,k are non-negative and
1280 i < 3, j < 4, k < 5 */
1281 ....
1282 mem_info_file(stdout,M3D_LIST); /* info on the number of allocated
1283 bytes of memory for types
1284 on the list M3D_LIST */
1285 ....
1286 m3d_free(M); /* if M is not necessary */
1287 ....
1288 }
1289
1290
1291 We can now use the function mem_info_file() for getting information about
1292 the number of bytes of allocated memory and number of allocated variables
1293 of type MAT3D; mem_stat_reg_list() for registering variables of this type
1294 and mem_stat_mark() and mem_stat_free_list() for deallocating static
1295 variables of this type.
1296
1297
1298
1299 In the similar way you can create you own list of errors and attach it to
1300 the system. See the functions:
1301
1302 int err_list_attach(int list_num, int list_len, char **err_ptr,
1303 int warn); /* for attaching a list of errors */
1304
1305 int err_is_list_attached(int list_num); /* checking if a list
1306 is attached */
1307
1308 extern int err_list_free(int list_num); /* freeing a list of errors */
1309
1310 where list_num is the number of the error list, list_len is the number of
1311 errors on the list, err_ptr is the character string explaining the error
1312 and warn can be TRUE if this is only a warning (the program continues to
1313 run) or it can be FALSE if it is an error (the program stops).
1314
1315 The examples are the standard errors (error list 0) and warnings
1316 (error list 1) which are in the file err.c
1317
1318
1319 David Stewart and Zbigniew Leyk, 1993
+0
-144
interface/src/scilab/src/c/FILELIST less more
0 -rw-r--r-- 1 0 30 09:47 FILELIST
1 -rw-r--r-- 1 0 5 1994 README
2 -rw-r--r-- 1 0 12 1994 arnoldi.c
3 -rw-r--r-- 1 0 12 13:50 bdfactor.c
4 -rw-r--r-- 1 0 12 13:44 bkpfacto.c
5 -rw-r--r-- 1 0 12 13:45 chfactor.c
6 -rwxr-xr-x 1 0 7 1994 configure
7 -rw-r--r-- 1 0 7 1994 configure.in
8 -rw-r--r-- 1 0 12 1994 conjgrad.c
9 -rw-r--r-- 1 0 12 1994 copy.c
10 -rw-r--r-- 1 0 12 1994 copyright
11 -rw-r--r-- 1 0 12 1994 dmacheps.c
12 -rw-r--r-- 1 0 30 08:49 err.c
13 -rw-r--r-- 1 0 30 08:49 err.h
14 -rw-r--r-- 1 0 18 1994 extras.c
15 -rw-r--r-- 1 0 12 13:49 fft.c
16 -rw-r--r-- 1 0 12 1994 fmacheps.c
17 -rw-r--r-- 1 0 12 13:46 givens.c
18 -rw-r--r-- 1 0 12 1994 hessen.c
19 -rw-r--r-- 1 0 12 13:47 hsehldr.c
20 -rw-r--r-- 1 0 12 1994 init.c
21 -rw-r--r-- 1 0 13 1994 iotort.c
22 -rw-r--r-- 1 0 7 1994 iter.h
23 -rw-r--r-- 1 0 30 08:51 iter0.c
24 -rw-r--r-- 1 0 30 08:55 iternsym.c
25 -rw-r--r-- 1 0 30 08:57 itersym.c
26 -rw-r--r-- 1 0 12 14:02 itertort.c
27 -rw-r--r-- 1 0 12 1994 ivecop.c
28 -rw-r--r-- 1 0 12 1994 lanczos.c
29 -rw-r--r-- 1 0 12 1994 ls.dat
30 -rw-r--r-- 1 0 12 13:42 lufactor.c
31 -rw-r--r-- 1 0 24 1994 machine.c
32 -rw-r--r-- 1 0 30 09:03 machine.h
33 -rw-r--r-- 1 0 12 13:39 machine.h.in
34 -rw-r--r-- 1 0 30 09:03 makefile
35 -rw-r--r-- 1 0 22 1994 makefile.in
36 -rw-r--r-- 1 0 12 1994 matlab.c
37 -rw-r--r-- 1 0 20 09:39 matlab.h
38 -rw-r--r-- 1 0 12 1994 matop.c
39 -rw-r--r-- 1 0 15 1994 matrix.h
40 -rw-r--r-- 1 0 12 1994 matrix2.h
41 -rw-r--r-- 1 0 12 1994 matrixio.c
42 -rw-r--r-- 1 0 12 1994 maxint.c
43 -rw-r--r-- 1 0 12 1994 meminfo.c
44 -rw-r--r-- 1 0 12 1994 meminfo.h
45 -rw-r--r-- 1 0 4 1994 memory.c
46 -rw-r--r-- 1 0 12 1994 memstat.c
47 -rw-r--r-- 1 0 13 1994 memtort.c
48 -rw-r--r-- 1 0 12 13:50 mfunc.c
49 -rw-r--r-- 1 0 13 1994 mfuntort.c
50 -rw-r--r-- 1 0 12 13:49 norm.c
51 -rw-r--r-- 1 0 12 1994 oldnames.h
52 -rw-r--r-- 1 0 12 1994 otherio.c
53 -rw-r--r-- 1 0 23 1994 pxop.c
54 -rw-r--r-- 1 0 12 13:47 qrfactor.c
55 -rw-r--r-- 1 0 12 1994 rk4.dat
56 -rw-r--r-- 1 0 12 13:45 schur.c
57 -rw-r--r-- 1 0 12 13:48 solve.c
58 -rw-r--r-- 1 0 7 1994 sparse.c
59 -rw-r--r-- 1 0 12 1994 sparse.h
60 -rw-r--r-- 1 0 12 1994 sparse2.h
61 -rw-r--r-- 1 0 12 1994 sparseio.c
62 -rw-r--r-- 1 0 12 13:52 spbkp.c
63 -rw-r--r-- 1 0 12 13:52 spchfctr.c
64 -rw-r--r-- 1 0 12 13:51 splufctr.c
65 -rw-r--r-- 1 0 12 1994 sprow.c
66 -rw-r--r-- 1 0 12 13:53 spswap.c
67 -rw-r--r-- 1 0 28 1994 sptort.c
68 -rw-r--r-- 1 0 12 1994 submat.c
69 -rw-r--r-- 1 0 12 13:46 svd.c
70 -rw-r--r-- 1 0 12 13:49 symmeig.c
71 -rw-r--r-- 1 0 12 14:01 torture.c
72 -rw-r--r-- 1 0 19 1994 tutadv.c
73 -rw-r--r-- 1 0 19 1994 tutorial.c
74 -rw-r--r-- 1 0 12 13:48 update.c
75 -rw-r--r-- 1 0 7 1994 vecop.c
76 -rw-r--r-- 1 0 23 1994 version.c
77 -rw-r--r-- 1 0 12 1994 zcopy.c
78 -rw-r--r-- 1 0 12 13:57 zfunc.c
79 -rw-r--r-- 1 0 12 14:00 zgivens.c
80 -rw-r--r-- 1 0 12 1994 zhessen.c
81 -rw-r--r-- 1 0 12 13:59 zhsehldr.c
82 -rw-r--r-- 1 0 12 13:57 zlufctr.c
83 -rw-r--r-- 1 0 12 13:56 zmachine.c
84 -rw-r--r-- 1 0 12 1994 zmatio.c
85 -rw-r--r-- 1 0 12 1994 zmatlab.c
86 -rw-r--r-- 1 0 12 1994 zmatop.c
87 -rw-r--r-- 1 0 7 1994 zmatrix.h
88 -rw-r--r-- 1 0 12 1994 zmatrix2.h
89 -rw-r--r-- 1 0 22 1994 zmemory.c
90 -rw-r--r-- 1 0 12 13:57 znorm.c
91 -rw-r--r-- 1 0 12 13:57 zqrfctr.c
92 -rw-r--r-- 1 0 12 13:57 zschur.c
93 -rw-r--r-- 1 0 12 13:58 zsolve.c
94 -rw-r--r-- 1 0 12 14:01 ztorture.c
95 -rw-r--r-- 1 0 7 1994 zvecop.c
96
97 DOC:
98 total 62
99 -rw------- 1 0 13 1994 fnindex.txt
100 -rw------- 1 0 13 1994 tutorial.txt
101
102 MACHINES:
103 total 6
104 drwx------ 2 0 27 22:19 Cray
105 drwx------ 2 0 13 1994 GCC
106 drwx------ 2 0 2 1994 Linux
107 drwx------ 2 0 13 1994 RS6000
108 drwx------ 2 0 27 22:15 SGI
109 drwx------ 2 0 13 1994 SPARC
110
111 MACHINES/Cray:
112 total 15
113 -rw------- 1 0 27 11:18 machine.h
114 -rw------- 1 0 27 11:22 makefile
115 -rw------- 1 0 27 11:18 patch.1
116 -rw------- 1 0 27 11:18 patch.2
117 -rw------- 1 0 27 11:18 patch.3
118
119 MACHINES/GCC:
120 total 10
121 -rw------- 1 0 13 1994 machine.h
122 -rw------- 1 0 13 1994 makefile
123
124 MACHINES/Linux:
125 total 10
126 -rw------- 1 0 2 1994 machine.h
127 -rw------- 1 0 2 1994 makefile
128
129 MACHINES/RS6000:
130 total 16
131 -rw------- 1 0 24 1994 machine.c
132 -rw------- 1 0 13 1994 machine.h
133 -rw------- 1 0 13 1994 makefile
134
135 MACHINES/SGI:
136 total 11
137 -rw------- 1 0 27 08:31 machine.h
138 -rw------- 1 0 27 08:55 makefile
139
140 MACHINES/SPARC:
141 total 10
142 -rw------- 1 0 13 1994 machine.h
143 -rw------- 1 0 13 1994 makefile
+0
-247
interface/src/scilab/src/c/MACHINES/Cray/machine.h less more
0 /**************************************************************************
1 **
2 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
3 **
4 ** Meschach Library
5 **
6 ** This Meschach Library is provided "as is" without any express
7 ** or implied warranty of any kind with respect to this software.
8 ** In particular the authors shall not be liable for any direct,
9 ** indirect, special, incidental or consequential damages arising
10 ** in any way from use of the software.
11 **
12 ** Everyone is granted permission to copy, modify and redistribute this
13 ** Meschach Library, provided:
14 ** 1. All copies contain this copyright notice.
15 ** 2. All modified copies shall carry a notice stating who
16 ** made the last modification and the date of such modification.
17 ** 3. No charge is made for this software or works derived from it.
18 ** This clause shall not be construed as constraining other software
19 ** distributed on the same medium as this software, nor is a
20 ** distribution fee considered a charge.
21 **
22 ***************************************************************************/
23 /* machine.h. Generated automatically by configure. */
24 /* Any machine specific stuff goes here */
25 /* Add details necessary for your own installation here! */
26
27 /* RCS id: $Id: machine.h 4050 2012-02-26 13:04:17Z renard $ */
28
29 /* This is for use with "configure" -- if you are not using configure
30 then use machine.van for the "vanilla" version of machine.h */
31
32 /* Note special macros: ANSI_C (ANSI C syntax)
33 SEGMENTED (segmented memory machine e.g. MS-DOS)
34 MALLOCDECL (declared if malloc() etc have
35 been declared) */
36
37 #include <stdlib.h>
38 #define const
39
40 /* #undef MALLOCDECL */
41 #define NOT_SEGMENTED 1
42 #define HAVE_MEMORY_H 1
43 #define HAVE_COMPLEX_H 1
44 #define HAVE_MALLOC_H 1
45 #define STDC_HEADERS 1
46 #define HAVE_BCOPY 1
47 #define HAVE_BZERO 1
48 #define CHAR0ISDBL0 1
49 #define WORDS_BIGENDIAN 1
50 /* #undef U_INT_DEF */
51 #define VARARGS 1
52 #define HAVE_PROTOTYPES 1
53 /* #undef HAVE_PROTOTYPES_IN_STRUCT */
54
55 /* for inclusion into C++ files */
56 #ifdef __cplusplus
57 #define ANSI_C 1
58 #ifndef HAVE_PROTOTYPES
59 #define HAVE_PROTOTYPES 1
60 #endif
61 #ifndef HAVE_PROTOTYPES_IN_STRUCT
62 #define HAVE_PROTOTYPES_IN_STRUCT 1
63 #endif
64 #endif /* __cplusplus */
65
66 /* example usage: VEC *PROTO(v_get,(int dim)); */
67 #ifdef HAVE_PROTOTYPES
68 #define PROTO(name,args) name args
69 #else
70 #define PROTO(name,args) name()
71 #endif /* HAVE_PROTOTYPES */
72 #ifdef HAVE_PROTOTYPES_IN_STRUCT
73 /* PROTO_() is to be used instead of PROTO() in struct's and typedef's */
74 #define PROTO_(name,args) name args
75 #else
76 #define PROTO_(name,args) name()
77 #endif /* HAVE_PROTOTYPES_IN_STRUCT */
78
79 /* for basic or larger versions */
80 #define COMPLEX 1
81 #define SPARSE 1
82
83 /* for loop unrolling */
84 /* #undef VUNROLL */
85 /* #undef MUNROLL */
86
87 /* for segmented memory */
88 #ifndef NOT_SEGMENTED
89 #define SEGMENTED
90 #endif
91
92 /* if the system has malloc.h */
93 #ifdef HAVE_MALLOC_H
94 #define MALLOCDECL 1
95 #include <malloc.h>
96 #endif
97
98 /* any compiler should have this header */
99 /* if not, change it */
100 #include <stdio.h>
101
102
103 /* Check for ANSI C memmove and memset */
104 #ifdef STDC_HEADERS
105
106 /* standard copy & zero functions */
107 #define MEM_COPY(from,to,size) memmove((to),(from),(size))
108 #define MEM_ZERO(where,size) memset((where),'\0',(size))
109
110 #ifndef ANSI_C
111 #define ANSI_C 1
112 #endif
113
114 #endif
115
116 /* standard headers */
117 #ifdef ANSI_C
118 #include <stdlib.h>
119 #include <stddef.h>
120 #include <string.h>
121 #include <float.h>
122 #endif
123
124
125 /* if have bcopy & bzero and no alternatives yet known, use them */
126 #ifdef HAVE_BCOPY
127 #ifndef MEM_COPY
128 /* nonstandard copy function */
129 #define MEM_COPY(from,to,size) bcopy((char *)(from),(char *)(to),(int)(size))
130 #endif
131 #endif
132
133 #ifdef HAVE_BZERO
134 #ifndef MEM_ZERO
135 /* nonstandard zero function */
136 #define MEM_ZERO(where,size) bzero((char *)(where),(int)(size))
137 #endif
138 #endif
139
140 /* if the system has complex.h */
141 #ifdef HAVE_COMPLEX_H
142 #include <complex.h>
143 #endif
144
145 /* If prototypes are available & ANSI_C not yet defined, then define it,
146 but don't include any header files as the proper ANSI C headers
147 aren't here */
148 #ifdef HAVE_PROTOTYPES
149 #ifndef ANSI_C
150 #define ANSI_C 1
151 #endif
152 #endif
153
154 /* floating point precision */
155
156 /* you can choose single, double or long double (if available) precision */
157
158 #define FLOAT 1
159 #define DOUBLE 2
160 #define LONG_DOUBLE 3
161
162 #define REAL_FLT 1
163 /* #undef REAL_DBL */
164
165 /* if nothing is defined, choose double precision */
166 #ifndef REAL_DBL
167 #ifndef REAL_FLT
168 #define REAL_DBL 1
169 #endif
170 #endif
171
172 /* single precision */
173 #ifdef REAL_FLT
174 #define Real float
175 #define LongReal float
176 #define REAL FLOAT
177 #define LONGREAL FLOAT
178 #endif
179
180 /* double precision */
181 #ifdef REAL_DBL
182 #define Real double
183 #define LongReal double
184 #define REAL DOUBLE
185 #define LONGREAL DOUBLE
186 #endif
187
188
189 /* machine epsilon or unit roundoff error */
190 /* This is correct on most IEEE Real precision systems */
191 #ifdef DBL_EPSILON
192 #if REAL == DOUBLE
193 #define MACHEPS DBL_EPSILON
194 #elif REAL == FLOAT
195 #define MACHEPS FLT_EPSILON
196 #elif REAL == LONGDOUBLE
197 #define MACHEPS LDBL_EPSILON
198 #endif
199 #endif
200
201 #define F_MACHEPS 7.10543e-15
202 #define D_MACHEPS 7.10543e-15
203
204 #ifndef MACHEPS
205 #if REAL == DOUBLE
206 #define MACHEPS D_MACHEPS
207 #elif REAL == FLOAT
208 #define MACHEPS F_MACHEPS
209 #elif REAL == LONGDOUBLE
210 #define MACHEPS D_MACHEPS
211 #endif
212 #endif
213
214 /* #undef M_MACHEPS */
215
216 /********************
217 #ifdef DBL_EPSILON
218 #define MACHEPS DBL_EPSILON
219 #endif
220 #ifdef M_MACHEPS
221 #ifndef MACHEPS
222 #define MACHEPS M_MACHEPS
223 #endif
224 #endif
225 ********************/
226
227 #define M_MAX_INT 9223372036854775807
228 #ifdef M_MAX_INT
229 #ifndef MAX_RAND
230 #define MAX_RAND ((double)(M_MAX_INT))
231 #endif
232 #endif
233
234 /* for non-ANSI systems */
235 #ifndef HUGE_VAL
236 #define HUGE_VAL HUGE
237 #else
238 /* #undef HUGE */
239 #define HUGE HUGE_VAL
240 #endif
241
242
243 #ifdef ANSI_C
244 extern int isatty(int);
245 #endif
246
+0
-218
interface/src/scilab/src/c/MACHINES/Cray/makefile less more
0 # Generated automatically from makefile.in by configure.
1 #
2 # Makefile for Meschach via autoconf
3 #
4 # Copyright (C) David Stewart & Zbigniew Leyk 1993
5 #
6 # $Id: makefile.in,v 1.4 1994/03/14 01:24:06 des Exp $
7 #
8
9 srcdir = .
10 VPATH = .
11
12 CC = cc
13
14 DEFS = -DHAVE_CONFIG_H
15 LIBS = -lm
16 RANLIB = :
17
18
19 CFLAGS = -O
20
21
22 .c.o:
23 $(CC) -c $(CFLAGS) $(DEFS) $<
24
25 SHELL = /bin/sh
26 MES_PAK = mesch12b
27 TAR = tar
28 SHAR = stree -u
29 ZIP = zip -r -l
30 FLIST = FILELIST
31
32 ###############################
33
34 LIST1 = copy.o err.o matrixio.o memory.o vecop.o matop.o pxop.o \
35 submat.o init.o otherio.o machine.o matlab.o ivecop.o version.o \
36 meminfo.o memstat.o
37 LIST2 = lufactor.o bkpfacto.o chfactor.o qrfactor.o solve.o hsehldr.o \
38 givens.o update.o norm.o hessen.o symmeig.o schur.o svd.o fft.o \
39 mfunc.o bdfactor.o
40 LIST3 = sparse.o sprow.o sparseio.o spchfctr.o splufctr.o \
41 spbkp.o spswap.o iter0.o itersym.o iternsym.o
42 ZLIST1 = zmachine.o zcopy.o zmatio.o zmemory.o zvecop.o zmatop.o znorm.o \
43 zfunc.o
44 ZLIST2 = zlufctr.o zsolve.o zmatlab.o zhsehldr.o zqrfctr.o \
45 zgivens.o zhessen.o zschur.o
46
47 # they are no longer supported
48 # if you use them add oldpart to all and sparse
49 OLDLIST = conjgrad.o lanczos.o arnoldi.o
50
51 ALL_LISTS = $(LIST1) $(LIST2) $(LIST3) $(ZLIST1) $(ZLIST2) $(OLDLIST)
52
53 HBASE = err.h meminfo.h machine.h matrix.h
54
55 HLIST = $(HBASE) iter.h matlab.h matrix2.h oldnames.h sparse.h \
56 sparse2.h zmatrix.h zmatrix2.h
57
58 TORTURE = torture.o sptort.o ztorture.o memtort.o itertort.o \
59 mfuntort.o iotort.o
60
61 OTHERS = dmacheps.c extras.c fmacheps.c maxint.c makefile.in \
62 README configure configure.in machine.h.in copyright \
63 tutorial.c tutadv.c rk4.dat ls.dat makefile $(FLIST)
64
65
66 # Different configurations
67 # the dependencies **between** the parts are for dmake
68 all: part1 part2 part3 zpart1 zpart2 ar_create
69 part2: part1
70 part3: part2
71 basic: part1 part2
72 sparse: part1 part2 part3
73 zpart2: zpart1
74 complex: part1 part2 zpart1 zpart2
75
76
77 $(LIST1): $(HBASE)
78 part1: $(LIST1)
79 ar ru meschach.a $(LIST1)
80 $(RANLIB) meschach.a
81
82 $(LIST2): $(HBASE) matrix2.h
83 part2: $(LIST2)
84 ar ru meschach.a $(LIST2)
85 $(RANLIB) meschach.a
86
87 $(LIST3): $(HBASE) sparse.h sparse2.h
88 part3: $(LIST3)
89 ar ru meschach.a $(LIST3)
90 $(RANLIB) meschach.a
91
92 $(ZLIST1): $(HBASDE) zmatrix.h
93 zpart1: $(ZLIST1)
94 ar ru meschach.a $(ZLIST1)
95 $(RANLIB) meschach.a
96
97 $(ZLIST2): $(HBASE) zmatrix.h zmatrix2.h
98 zpart2: $(ZLIST2)
99 ar ru meschach.a $(ZLIST2)
100 $(RANLIB) meschach.a
101
102 $(OLDLIST): $(HBASE) sparse.h sparse2.h
103 oldpart: $(OLDLIST)
104 ar ru meschach.a $(OLDLIST)
105 $(RANLIB) meschach.a
106
107
108
109 #######################################
110
111 tar:
112 - /bin/rm -f $(MES_PAK).tar
113 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
114 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
115 chmod 755 configure
116 $(MAKE) list
117 $(TAR) cvf $(MES_PAK).tar \
118 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
119 $(HLIST) $(OTHERS) \
120 `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
121 MACHINES DOC
122
123 # use this only for PC machines
124 msdos-zip:
125 - /bin/rm -f $(MES_PAK).zip
126 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
127 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
128 chmod 755 configure
129 $(MAKE) list
130 $(ZIP) $(MES_PAK).zip \
131 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
132 $(HLIST) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
133 MACHINES DOC
134
135
136 fullshar:
137 - /bin/rm -f $(MES_PAK).shar;
138 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
139 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
140 chmod 755 configure
141 $(MAKE) list
142 $(SHAR) `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
143 $(HLIST) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
144 MACHINES DOC > $(MES_PAK).shar
145
146 shar:
147 - /bin/rm -f meschach1.shar meschach2.shar meschach3.shar \
148 meschach4.shar oldmeschach.shar meschach0.shar
149 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
150 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
151 chmod 755 configure
152 $(MAKE) list
153 $(SHAR) `echo $(LIST1) | sed -e 's/\.o/.c/g'` > meschach1.shar
154 $(SHAR) `echo $(LIST2) | sed -e 's/\.o/.c/g'` > meschach2.shar
155 $(SHAR) `echo $(LIST3) | sed -e 's/\.o/.c/g'` > meschach3.shar
156 $(SHAR) `echo $(ZLIST1) | sed -e 's/\.o/.c/g'` \
157 `echo $(ZLIST2) | sed -e 's/\.o/.c/g'` > meschach4.shar
158 $(SHAR) `echo $(OLDLIST) | sed -e 's/\.o/.c/g'` > oldmeschach.shar
159 $(SHAR) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
160 $(HLIST) DOC MACHINES > meschach0.shar
161
162 list:
163 /bin/rm -f $(FLIST)
164 ls -lR `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
165 `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
166 $(HLIST) $(OTHERS) MACHINES DOC \
167 |awk '/^$$/ {print};/^[-d]/ {printf("%s %s %10d %s %s %s %s\n", \
168 $$1,$$2,$$5,$$6,$$7,$$8,$$9)}; /^[^-d]/ {print}' \
169 > $(FLIST)
170
171
172
173 clean:
174 /bin/rm -f *.o core asx5213a.mat iotort.dat
175
176 cleanup:
177 /bin/rm -f *.o core asx5213a.mat iotort.dat *.a
178
179 realclean:
180 /bin/rm -f *.o core asx5213a.mat iotort.dat *.a
181 /bin/rm -f torture sptort ztorture memtort itertort mfuntort iotort
182 /bin/rm -f makefile machine.h config.status maxint macheps
183
184 alltorture: torture sptort ztorture memtort itertort mfuntort iotort
185
186 torture:torture.o meschach.a
187 $(CC) $(CFLAGS) $(DEFS) -o torture torture.o \
188 meschach.a $(LIBS)
189 sptort:sptort.o meschach.a
190 $(CC) $(CFLAGS) $(DEFS) -o sptort sptort.o \
191 meschach.a $(LIBS)
192 memtort: memtort.o meschach.a
193 $(CC) $(CFLAGS) $(DEFS) -o memtort memtort.o \
194 meschach.a $(LIBS)
195 ztorture:ztorture.o meschach.a
196 $(CC) $(CFLAGS) $(DEFS) -o ztorture ztorture.o \
197 meschach.a $(LIBS)
198 itertort: itertort.o meschach.a
199 $(CC) $(CFLAGS) $(DEFS) -o itertort itertort.o \
200 meschach.a $(LIBS)
201
202 iotort: iotort.o meschach.a
203 $(CC) $(CFLAGS) $(DEFS) -o iotort iotort.o \
204 meschach.a $(LIBS)
205 mfuntort: mfuntort.o meschach.a
206 $(CC) $(CFLAGS) $(DEFS) -o mfuntort mfuntort.o \
207 meschach.a $(LIBS)
208 tstmove: tstmove.o meschach.a
209 $(CC) $(CFLAGS) $(DEFS) -o tstmove tstmove.o \
210 meschach.a $(LIBS)
211 tstpxvec: tstpxvec.o meschach.a
212 $(CC) $(CFLAGS) $(DEFS) -o tstpxvec tstpxvec.o \
213 meschach.a $(LIBS)
214 ar_create:
215 rm meschach.a
216 ar ruv meschach.a $(LIST1) $(LIST2) $(LIST3) \
217 $(ZLIST1) $(ZLIST2) $(OLDLIST)
+0
-56
interface/src/scilab/src/c/MACHINES/Cray/patch.1 less more
0 *** err.h Thu Jan 13 16:38:12 1994
1 --- err.h.orig Wed Oct 26 17:56:36 1994
2 ***************
3 *** 129,135 ****
4 { jmp_buf _save; int _err_num, _old_flag; \
5 _old_flag = set_err_flag(EF_SILENT); \
6 MEM_COPY(restart,_save,sizeof(jmp_buf)); \
7 ! if ( (_err_num=setjmp(restart)) == 0 ) \
8 { ok_part; \
9 set_err_flag(_old_flag); \
10 MEM_COPY(_save,restart,sizeof(jmp_buf)); } \
11 --- 129,136 ----
12 { jmp_buf _save; int _err_num, _old_flag; \
13 _old_flag = set_err_flag(EF_SILENT); \
14 MEM_COPY(restart,_save,sizeof(jmp_buf)); \
15 ! _err_num=setjmp(restart); \
16 ! if ( _err_num == 0 ) \
17 { ok_part; \
18 set_err_flag(_old_flag); \
19 MEM_COPY(_save,restart,sizeof(jmp_buf)); } \
20 ***************
21 *** 149,155 ****
22 { jmp_buf _save; int _err_num, _old_flag; \
23 _old_flag = set_err_flag(EF_SILENT); \
24 MEM_COPY(restart,_save,sizeof(jmp_buf)); \
25 ! if ( (_err_num=setjmp(restart)) == 0 ) \
26 { ok_part; \
27 set_err_flag(_old_flag); \
28 MEM_COPY(_save,restart,sizeof(jmp_buf)); } \
29 --- 150,157 ----
30 { jmp_buf _save; int _err_num, _old_flag; \
31 _old_flag = set_err_flag(EF_SILENT); \
32 MEM_COPY(restart,_save,sizeof(jmp_buf)); \
33 ! _err_num=setjmp(restart); \
34 ! if ( _err_num == 0 ) \
35 { ok_part; \
36 set_err_flag(_old_flag); \
37 MEM_COPY(_save,restart,sizeof(jmp_buf)); } \
38 ***************
39 *** 166,172 ****
40 { jmp_buf _save; int _err_num, _old_flag; \
41 _old_flag = set_err_flag(EF_JUMP); \
42 MEM_COPY(restart,_save,sizeof(jmp_buf)); \
43 ! if ( (_err_num=setjmp(restart)) == 0 ) \
44 { ok_part; \
45 set_err_flag(_old_flag); \
46 MEM_COPY(_save,restart,sizeof(jmp_buf)); } \
47 --- 168,175 ----
48 { jmp_buf _save; int _err_num, _old_flag; \
49 _old_flag = set_err_flag(EF_JUMP); \
50 MEM_COPY(restart,_save,sizeof(jmp_buf)); \
51 ! _err_num=setjmp(restart) ;\
52 ! if ( _err_num == 0 ) \
53 { ok_part; \
54 set_err_flag(_old_flag); \
55 MEM_COPY(_save,restart,sizeof(jmp_buf)); } \
+0
-23
interface/src/scilab/src/c/MACHINES/Cray/patch.2 less more
0 *** iter0.c Mon Jun 20 15:22:36 1994
1 --- iter0.c.orig Fri Oct 28 01:49:19 1994
2 ***************
3 *** 103,111 ****
4 if (lenx > 0) ip->x = v_get(lenx);
5 else ip->x = (VEC *)NULL;
6
7 ! ip->Ax = ip->A_par = NULL;
8 ! ip->ATx = ip->AT_par = NULL;
9 ! ip->Bx = ip->B_par = NULL;
10 ip->info = iter_std_info;
11 ip->stop_crit = iter_std_stop_crit;
12 ip->init_res = 0.0;
13 --- 103,111 ----
14 if (lenx > 0) ip->x = v_get(lenx);
15 else ip->x = (VEC *)NULL;
16
17 ! ip->Ax = NULL; ip->A_par = NULL;
18 ! ip->ATx = NULL; ip->AT_par = NULL;
19 ! ip->Bx = NULL; ip->B_par = NULL;
20 ip->info = iter_std_info;
21 ip->stop_crit = iter_std_stop_crit;
22 ip->init_res = 0.0;
+0
-13
interface/src/scilab/src/c/MACHINES/Cray/patch.3 less more
0 *** zmatrix.h Tue Mar 8 15:50:26 1994
1 --- zmatrix.h.orig Fri Oct 28 01:52:48 1994
2 ***************
3 *** 34,39 ****
4 --- 34,41 ----
5
6 /* Type definitions for complex vectors and matrices */
7
8 + #undef complex
9 + #define complex Complex
10
11 /* complex definition */
12 typedef struct {
+0
-214
interface/src/scilab/src/c/MACHINES/GCC/machine.h less more
0 /**************************************************************************
1 **
2 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
3 **
4 ** Meschach Library
5 **
6 ** This Meschach Library is provided "as is" without any express
7 ** or implied warranty of any kind with respect to this software.
8 ** In particular the authors shall not be liable for any direct,
9 ** indirect, special, incidental or consequential damages arising
10 ** in any way from use of the software.
11 **
12 ** Everyone is granted permission to copy, modify and redistribute this
13 ** Meschach Library, provided:
14 ** 1. All copies contain this copyright notice.
15 ** 2. All modified copies shall carry a notice stating who
16 ** made the last modification and the date of such modification.
17 ** 3. No charge is made for this software or works derived from it.
18 ** This clause shall not be construed as constraining other software
19 ** distributed on the same medium as this software, nor is a
20 ** distribution fee considered a charge.
21 **
22 ***************************************************************************/
23 /* machine.h. Generated automatically by configure. */
24 /* Any machine specific stuff goes here */
25 /* Add details necessary for your own installation here! */
26
27 /* This is for use with "configure" -- if you are not using configure
28 then use machine.van for the "vanilla" version of machine.h */
29
30 /* Note special macros: ANSI_C (ANSI C syntax)
31 SEGMENTED (segmented memory machine e.g. MS-DOS)
32 MALLOCDECL (declared if malloc() etc have
33 been declared) */
34
35
36 #define ANSI_C 1
37 #define NOT_SEGMENTED 1
38 /* #undef HAVE_COMPLEX_H */
39 #define HAVE_MALLOC_H 1
40 #define STDC_HEADERS
41 #define HAVE_BCOPY 1
42 #define HAVE_BZERO 1
43 #define CHAR0ISDBL0 1
44 #define WORDS_BIGENDIAN 1
45 /* #undef U_INT_DEF */
46
47
48 /* for basic or larger versions */
49 #define COMPLEX 1
50 #define SPARSE 1
51
52 /* for loop unrolling */
53 /* #undef VUNROLL */
54 /* #undef MUNROLL */
55
56 /* for segmented memory */
57 #ifndef NOT_SEGMENTED
58 #define SEGMENTED
59 #endif
60
61 /* if the system has malloc.h */
62 #ifdef HAVE_MALLOC_H
63 #define MALLOCDECL 1
64 #include <malloc.h>
65 #endif
66
67 /* any compiler should have this header */
68 /* if not, change it */
69 #include <stdio.h>
70
71
72 /* Check for ANSI C memmove and memset */
73 #ifdef STDC_HEADERS
74
75 /* standard copy & zero functions */
76 #define MEM_COPY(from,to,size) memmove((to),(from),(size))
77 #define MEM_ZERO(where,size) memset((where),'\0',(size))
78
79 #ifndef ANSI_C
80 #define ANSI_C 1
81 #endif
82
83 #endif
84
85 /* standard headers */
86 #ifdef ANSI_C
87 #include <stdlib.h>
88 #include <stddef.h>
89 #include <string.h>
90 #include <float.h>
91 #endif
92
93
94 /* if have bcopy & bzero and no alternatives yet known, use them */
95 #ifdef HAVE_BCOPY
96 #ifndef MEM_COPY
97 /* nonstandard copy function */
98 #define MEM_COPY(from,to,size) bcopy((char *)(from),(char *)(to),(int)(size))
99 #endif
100 #endif
101
102 #ifdef HAVE_BZERO
103 #ifndef MEM_ZERO
104 /* nonstandard zero function */
105 #define MEM_ZERO(where,size) bzero((char *)(where),(int)(size))
106 #endif
107 #endif
108
109 /* if the system has complex.h */
110 #ifdef HAVE_COMPLEX_H
111 #include <complex.h>
112 #endif
113
114 /* If prototypes are available & ANSI_C not yet defined, then define it,
115 but don't include any header files as the proper ANSI C headers
116 aren't here */
117 /* #undef HAVE_PROTOTYPES */
118 #ifdef HAVE_PROTOTYPES
119 #ifndef ANSI_C
120 #define ANSI_C 1
121 #endif
122 #endif
123
124 /* floating point precision */
125
126 /* you can choose single, double or long double (if available) precision */
127
128 #define FLOAT 1
129 #define DOUBLE 2
130 #define LONG_DOUBLE 3
131
132 /* #undef REAL_FLT */
133 #define REAL_DBL 1
134
135 /* if nothing is defined, choose double precision */
136 #ifndef REAL_DBL
137 #ifndef REAL_FLT
138 #define REAL_DBL 1
139 #endif
140 #endif
141
142 /* single precision */
143 #ifdef REAL_FLT
144 #define Real float
145 #define LongReal float
146 #define REAL FLOAT
147 #define LONGREAL FLOAT
148 #endif
149
150 /* double precision */
151 #ifdef REAL_DBL
152 #define Real double
153 #define LongReal double
154 #define REAL DOUBLE
155 #define LONGREAL DOUBLE
156 #endif
157
158
159 /* machine epsilon or unit roundoff error */
160 /* This is correct on most IEEE Real precision systems */
161 #ifdef DBL_EPSILON
162 #if REAL == DOUBLE
163 #define MACHEPS DBL_EPSILON
164 #elif REAL == FLOAT
165 #define MACHEPS FLT_EPSILON
166 #elif REAL == LONGDOUBLE
167 #define MACHEPS LDBL_EPSILON
168 #endif
169 #endif
170
171 #define F_MACHEPS 1.19209e-07
172 #define D_MACHEPS 2.22045e-16
173
174 #ifndef MACHEPS
175 #if REAL == DOUBLE
176 #define MACHEPS D_MACHEPS
177 #elif REAL == FLOAT
178 #define MACHEPS F_MACHEPS
179 #elif REAL == LONGDOUBLE
180 #define MACHEPS D_MACHEPS
181 #endif
182 #endif
183
184 /* #undef M_MACHEPS */
185
186 /********************
187 #ifdef DBL_EPSILON
188 #define MACHEPS DBL_EPSILON
189 #endif
190 #ifdef M_MACHEPS
191 #ifndef MACHEPS
192 #define MACHEPS M_MACHEPS
193 #endif
194 #endif
195 ********************/
196
197 #define M_MAX_INT 2147483647
198 #ifdef M_MAX_INT
199 #ifndef MAX_RAND
200 #define MAX_RAND ((double)(M_MAX_INT))
201 #endif
202 #endif
203
204 /* for non-ANSI systems */
205 #ifndef HUGE_VAL
206 #define HUGE_VAL HUGE
207 #endif
208
209
210 #ifdef ANSI_C
211 extern int isatty(int);
212 #endif
213
+0
-187
interface/src/scilab/src/c/MACHINES/GCC/makefile less more
0 #
1 #
2 # Makefile for Meschach for GNU cc
3 #
4 # Copyright (C) David Stewart & Zbigniew Leyk 1993
5 #
6 # $Id: $
7 #
8
9 srcdir = .
10 VPATH = .
11
12 CC = gcc
13
14 DEFS = -DHAVE_CONFIG_H
15 LIBS = -lm
16 RANLIB = ranlib
17
18
19 CFLAGS = -O6
20
21
22 .c.o:
23 $(CC) -c $(CFLAGS) $(DEFS) $<
24
25 SHELL = /bin/sh
26 MES_PAK = mesch12a
27 TAR = tar
28 SHAR = stree -u
29 ZIP = zip -r -l
30
31 ###############################
32
33 LIST1 = copy.o err.o matrixio.o memory.o vecop.o matop.o pxop.o \
34 submat.o init.o otherio.o machine.o matlab.o ivecop.o version.o \
35 meminfo.o memstat.o
36 LIST2 = lufactor.o bkpfacto.o chfactor.o qrfactor.o solve.o hsehldr.o \
37 givens.o update.o norm.o hessen.o symmeig.o schur.o svd.o fft.o \
38 mfunc.o bdfactor.o
39 LIST3 = sparse.o sprow.o sparseio.o spchfctr.o splufctr.o \
40 spbkp.o spswap.o iter0.o itersym.o iternsym.o
41 ZLIST1 = zmachine.o zcopy.o zmatio.o zmemory.o zvecop.o zmatop.o znorm.o \
42 zfunc.o
43 ZLIST2 = zlufctr.o zsolve.o zmatlab.o zhsehldr.o zqrfctr.o \
44 zgivens.o zhessen.o zschur.o
45
46 # they are no longer supported
47 # if you use them add oldpart to all and sparse
48 OLDLIST = conjgrad.o lanczos.o arnoldi.o
49
50 ALL_LISTS = $(LIST1) $(LIST2) $(LIST3) $(ZLIST1) $(ZLIST2) $(OLDLIST)
51
52
53 HLIST = err.h iter.h machine.h matlab.h matrix.h matrix2.h \
54 meminfo.h oldnames.h sparse.h sparse2.h \
55 zmatrix.h zmatrix2.h
56
57 TORTURE = torture.o sptort.o ztorture.o memtort.o itertort.o \
58 mfuntort.o iotort.o
59
60 OTHERS = dmacheps.c extras.c fmacheps.c maxint.c makefile.in \
61 README configure configure.in machine.h.in copyright \
62 tutorial.c tutadv.c rk4.dat ls.dat makefile
63
64
65 # Different configurations
66 all: part1 part2 part3 zpart1 zpart2
67 basic: part1 part2
68 sparse: part1 part2 part3
69 complex: part1 part2 zpart1 zpart2
70
71
72 HBASE = err.h meminfo.h machine.h matrix.h
73
74 $(LIST1): $(HBASE)
75 part1: $(LIST1)
76 ar ru meschach.a $(LIST1); $(RANLIB) meschach.a
77
78 $(LIST2): $(HBASE) matrix2.h
79 part2: $(LIST2)
80 ar ru meschach.a $(LIST2); $(RANLIB)
81
82 $(LIST3): $(HBASE) sparse.h sparse2.h
83 part3: $(LIST3)
84 ar ru meschach.a $(LIST3); $(RANLIB) meschach.a
85
86 $(ZLIST1): $(HBASDE) zmatrix.h
87 zpart1: $(ZLIST1)
88 ar ru meschach.a $(ZLIST1); ranlib meschach.a
89
90 $(ZLIST2): $(HBASE) zmatrix.h zmatrix2.h
91 zpart2: $(ZLIST2)
92 ar ru meschach.a $(ZLIST2); ranlib meschach.a
93
94 $(OLDLIST): $(HBASE) sparse.h sparse2.h
95 oldpart: $(OLDLIST)
96 ar ru meschach.a $(OLDLIST); ranlib meschach.a
97
98
99
100 #######################################
101
102 tar:
103 - /bin/rm -f $(MES_PAK).tar
104 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
105 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
106 chmod 755 configure
107 $(TAR) cvf $(MES_PAK).tar \
108 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
109 $(HLIST) $(OTHERS) \
110 `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
111 MACHINES DOC
112
113 # use this only for PC machines
114 msdos-zip:
115 - /bin/rm -f $(MES_PAK).zip
116 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
117 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
118 chmod 755 configure
119 $(ZIP) $(MES_PAK).zip \
120 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
121 $(HLIST) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
122 MACHINES DOC
123
124
125 fullshar:
126 - /bin/rm -f $(MES_PAK).shar;
127 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
128 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
129 chmod 755 configure
130 $(SHAR) `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
131 $(HLIST) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
132 MACHINES DOC > $(MES_PAK).shar
133
134 shar:
135 - /bin/rm -f meschach1.shar meschach2.shar meschach3.shar \
136 meschach4.shar oldmeschach.shar meschach0.shar
137 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
138 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
139 chmod 755 configure
140 $(SHAR) `echo $(LIST1) | sed -e 's/\.o/.c/g'` > meschach1.shar
141 $(SHAR) `echo $(LIST2) | sed -e 's/\.o/.c/g'` > meschach2.shar
142 $(SHAR) `echo $(LIST3) | sed -e 's/\.o/.c/g'` > meschach3.shar
143 $(SHAR) `echo $(ZLIST1) | sed -e 's/\.o/.c/g'` \
144 `echo $(ZLIST2) | sed -e 's/\.o/.c/g'` > meschach4.shar
145 $(SHAR) `echo $(OLDLIST) | sed -e 's/\.o/.c/g'` > oldmeschach.shar
146 $(SHAR) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
147 $(HLIST) DOC MACHINES > meschach0.shar
148
149
150 clean:
151 /bin/rm -f *.o core asx5213a.mat iotort.dat
152
153 cleanup:
154 /bin/rm -f *.o core asx5213a.mat iotort.dat *.a
155
156 alltorture: torture sptort ztorture memtort itertort mfuntort iotort
157
158 torture:torture.o meschach.a
159 $(CC) $(CFLAGS) $(DEFS) -o torture torture.o \
160 meschach.a $(LIBS)
161 sptort:sptort.o meschach.a
162 $(CC) $(CFLAGS) $(DEFS) -o sptort sptort.o \
163 meschach.a $(LIBS)
164 memtort: memtort.o meschach.a
165 $(CC) $(CFLAGS) $(DEFS) -o memtort memtort.o \
166 meschach.a $(LIBS)
167 ztorture:ztorture.o meschach.a
168 $(CC) $(CFLAGS) $(DEFS) -o ztorture ztorture.o \
169 meschach.a $(LIBS)
170 itertort: itertort.o meschach.a
171 $(CC) $(CFLAGS) $(DEFS) -o itertort itertort.o \
172 meschach.a $(LIBS)
173
174 iotort: iotort.o meschach.a
175 $(CC) $(CFLAGS) $(DEFS) -o iotort iotort.o \
176 meschach.a $(LIBS)
177 mfuntort: mfuntort.o meschach.a
178 $(CC) $(CFLAGS) $(DEFS) -o mfuntort mfuntort.o \
179 meschach.a $(LIBS)
180 tstmove: tstmove.o meschach.a
181 $(CC) $(CFLAGS) $(DEFS) -o tstmove tstmove.o \
182 meschach.a $(LIBS)
183 tstpxvec: tstpxvec.o meschach.a
184 $(CC) $(CFLAGS) $(DEFS) -o tstpxvec tstpxvec.o \
185 meschach.a $(LIBS)
186
+0
-216
interface/src/scilab/src/c/MACHINES/Linux/machine.h less more
0 /**************************************************************************
1 **
2 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
3 **
4 ** Meschach Library
5 **
6 ** This Meschach Library is provided "as is" without any express
7 ** or implied warranty of any kind with respect to this software.
8 ** In particular the authors shall not be liable for any direct,
9 ** indirect, special, incidental or consequential damages arising
10 ** in any way from use of the software.
11 **
12 ** Everyone is granted permission to copy, modify and redistribute this
13 ** Meschach Library, provided:
14 ** 1. All copies contain this copyright notice.
15 ** 2. All modified copies shall carry a notice stating who
16 ** made the last modification and the date of such modification.
17 ** 3. No charge is made for this software or works derived from it.
18 ** This clause shall not be construed as constraining other software
19 ** distributed on the same medium as this software, nor is a
20 ** distribution fee considered a charge.
21 **
22 ***************************************************************************/
23 /* machine.h. Generated automatically by configure. */
24 /* Any machine specific stuff goes here */
25 /* Add details necessary for your own installation here! */
26
27 /* This is for use with "configure" -- if you are not using configure
28 then use machine.van for the "vanilla" version of machine.h */
29
30 /* Note special macros: ANSI_C (ANSI C syntax)
31 SEGMENTED (segmented memory machine e.g. MS-DOS)
32 MALLOCDECL (declared if malloc() etc have
33 been declared) */
34
35 /* #undef const */
36
37 /* #undef MALLOCDECL */
38 #define NOT_SEGMENTED 1
39 /* #undef HAVE_COMPLEX_H */
40 #define HAVE_MALLOC_H 1
41 #define STDC_HEADERS 1
42 #define HAVE_BCOPY 1
43 #define HAVE_BZERO 1
44 #define CHAR0ISDBL0 1
45 /* #undef WORDS_BIGENDIAN */
46 #define U_INT_DEF 1
47 #define VARARGS 1
48
49
50 /* for basic or larger versions */
51 #define COMPLEX 1
52 #define SPARSE 1
53
54 /* for loop unrolling */
55 /* #undef VUNROLL */
56 /* #undef MUNROLL */
57
58 /* for segmented memory */
59 #ifndef NOT_SEGMENTED
60 #define SEGMENTED
61 #endif
62
63 /* if the system has malloc.h */
64 #ifdef HAVE_MALLOC_H
65 #define MALLOCDECL 1
66 #include <malloc.h>
67 #endif
68
69 /* any compiler should have this header */
70 /* if not, change it */
71 #include <stdio.h>
72
73
74 /* Check for ANSI C memmove and memset */
75 #ifdef STDC_HEADERS
76
77 /* standard copy & zero functions */
78 #define MEM_COPY(from,to,size) memmove((to),(from),(size))
79 #define MEM_ZERO(where,size) memset((where),'\0',(size))
80
81 #ifndef ANSI_C
82 #define ANSI_C 1
83 #endif
84
85 #endif
86
87 /* standard headers */
88 #ifdef ANSI_C
89 #include <stdlib.h>
90 #include <stddef.h>
91 #include <string.h>
92 #include <float.h>
93 #endif
94
95
96 /* if have bcopy & bzero and no alternatives yet known, use them */
97 #ifdef HAVE_BCOPY
98 #ifndef MEM_COPY
99 /* nonstandard copy function */
100 #define MEM_COPY(from,to,size) bcopy((char *)(from),(char *)(to),(int)(size))
101 #endif
102 #endif
103
104 #ifdef HAVE_BZERO
105 #ifndef MEM_ZERO
106 /* nonstandard zero function */
107 #define MEM_ZERO(where,size) bzero((char *)(where),(int)(size))
108 #endif
109 #endif
110
111 /* if the system has complex.h */
112 #ifdef HAVE_COMPLEX_H
113 #include <complex.h>
114 #endif
115
116 /* If prototypes are available & ANSI_C not yet defined, then define it,
117 but don't include any header files as the proper ANSI C headers
118 aren't here */
119 #define HAVE_PROTOTYPES 1
120 #ifdef HAVE_PROTOTYPES
121 #ifndef ANSI_C
122 #define ANSI_C 1
123 #endif
124 #endif
125
126 /* floating point precision */
127
128 /* you can choose single, double or long double (if available) precision */
129
130 #define FLOAT 1
131 #define DOUBLE 2
132 #define LONG_DOUBLE 3
133
134 /* #undef REAL_FLT */
135 /* #undef REAL_DBL */
136
137 /* if nothing is defined, choose double precision */
138 #ifndef REAL_DBL
139 #ifndef REAL_FLT
140 #define REAL_DBL 1
141 #endif
142 #endif
143
144 /* single precision */
145 #ifdef REAL_FLT
146 #define Real float
147 #define LongReal float
148 #define REAL FLOAT
149 #define LONGREAL FLOAT
150 #endif
151
152 /* double precision */
153 #ifdef REAL_DBL
154 #define Real double
155 #define LongReal double
156 #define REAL DOUBLE
157 #define LONGREAL DOUBLE
158 #endif
159
160
161 /* machine epsilon or unit roundoff error */
162 /* This is correct on most IEEE Real precision systems */
163 #ifdef DBL_EPSILON
164 #if REAL == DOUBLE
165 #define MACHEPS DBL_EPSILON
166 #elif REAL == FLOAT
167 #define MACHEPS FLT_EPSILON
168 #elif REAL == LONGDOUBLE
169 #define MACHEPS LDBL_EPSILON
170 #endif
171 #endif
172
173 #define F_MACHEPS 1.19209e-07
174 #define D_MACHEPS 2.22045e-16
175
176 #ifndef MACHEPS
177 #if REAL == DOUBLE
178 #define MACHEPS D_MACHEPS
179 #elif REAL == FLOAT
180 #define MACHEPS F_MACHEPS
181 #elif REAL == LONGDOUBLE
182 #define MACHEPS D_MACHEPS
183 #endif
184 #endif
185
186 /* #undef M_MACHEPS */
187
188 /********************
189 #ifdef DBL_EPSILON
190 #define MACHEPS DBL_EPSILON
191 #endif
192 #ifdef M_MACHEPS
193 #ifndef MACHEPS
194 #define MACHEPS M_MACHEPS
195 #endif
196 #endif
197 ********************/
198
199 #define M_MAX_INT 2147483647
200 #ifdef M_MAX_INT
201 #ifndef MAX_RAND
202 #define MAX_RAND ((double)(M_MAX_INT))
203 #endif
204 #endif
205
206 /* for non-ANSI systems */
207 #ifndef HUGE_VAL
208 #define HUGE_VAL HUGE
209 #endif
210
211
212 #ifdef ANSI_C
213 extern int isatty(int);
214 #endif
215
+0
-200
interface/src/scilab/src/c/MACHINES/Linux/makefile less more
0 # Generated automatically from makefile.in by configure.
1 #
2 # Makefile for Meschach via autoconf
3 #
4 # Copyright (C) David Stewart & Zbigniew Leyk 1993
5 #
6 # $Id: $
7 #
8
9 srcdir = .
10 VPATH = .
11
12 CC = cc
13
14 DEFS = -DHAVE_CONFIG_H
15 LIBS = -lm
16 RANLIB = ranlib
17
18
19 CFLAGS = -O
20
21
22 .c.o:
23 $(CC) -c $(CFLAGS) $(DEFS) $<
24
25 SHELL = /bin/sh
26 MES_PAK = mesch12a
27 TAR = tar
28 SHAR = stree -u
29 ZIP = zip -r -l
30 FLIST = FILELIST
31
32 ###############################
33
34 LIST1 = copy.o err.o matrixio.o memory.o vecop.o matop.o pxop.o \
35 submat.o init.o otherio.o machine.o matlab.o ivecop.o version.o \
36 meminfo.o memstat.o
37 LIST2 = lufactor.o bkpfacto.o chfactor.o qrfactor.o solve.o hsehldr.o \
38 givens.o update.o norm.o hessen.o symmeig.o schur.o svd.o fft.o \
39 mfunc.o bdfactor.o
40 LIST3 = sparse.o sprow.o sparseio.o spchfctr.o splufctr.o \
41 spbkp.o spswap.o iter0.o itersym.o iternsym.o
42 ZLIST1 = zmachine.o zcopy.o zmatio.o zmemory.o zvecop.o zmatop.o znorm.o \
43 zfunc.o
44 ZLIST2 = zlufctr.o zsolve.o zmatlab.o zhsehldr.o zqrfctr.o \
45 zgivens.o zhessen.o zschur.o
46
47 # they are no longer supported
48 # if you use them add oldpart to all and sparse
49 OLDLIST = conjgrad.o lanczos.o arnoldi.o
50
51 ALL_LISTS = $(LIST1) $(LIST2) $(LIST3) $(ZLIST1) $(ZLIST2) $(OLDLIST)
52
53 HBASE = err.h meminfo.h machine.h matrix.h
54
55 HLIST = $(HBASE) iter.h matlab.h matrix2.h oldnames.h sparse.h \
56 sparse2.h zmatrix.h zmatrix2.h
57
58 TORTURE = torture.o sptort.o ztorture.o memtort.o itertort.o \
59 mfuntort.o iotort.o
60
61 OTHERS = dmacheps.c extras.c fmacheps.c maxint.c makefile.in \
62 README configure configure.in machine.h.in copyright \
63 tutorial.c tutadv.c rk4.dat ls.dat makefile $(FLIST)
64
65
66 # Different configurations
67 all: part1 part2 part3 zpart1 zpart2
68 basic: part1 part2
69 sparse: part1 part2 part3
70 complex: part1 part2 zpart1 zpart2
71
72
73 $(LIST1): $(HBASE)
74 part1: $(LIST1)
75 ar ru meschach.a $(LIST1); $(RANLIB) meschach.a
76
77 $(LIST2): $(HBASE) matrix2.h
78 part2: $(LIST2)
79 ar ru meschach.a $(LIST2); $(RANLIB) meschach.a
80
81 $(LIST3): $(HBASE) sparse.h sparse2.h
82 part3: $(LIST3)
83 ar ru meschach.a $(LIST3); $(RANLIB) meschach.a
84
85 $(ZLIST1): $(HBASDE) zmatrix.h
86 zpart1: $(ZLIST1)
87 ar ru meschach.a $(ZLIST1); ranlib meschach.a
88
89 $(ZLIST2): $(HBASE) zmatrix.h zmatrix2.h
90 zpart2: $(ZLIST2)
91 ar ru meschach.a $(ZLIST2); ranlib meschach.a
92
93 $(OLDLIST): $(HBASE) sparse.h sparse2.h
94 oldpart: $(OLDLIST)
95 ar ru meschach.a $(OLDLIST); ranlib meschach.a
96
97
98
99 #######################################
100
101 tar:
102 - /bin/rm -f $(MES_PAK).tar
103 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
104 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
105 chmod 755 configure
106 $(MAKE) list
107 $(TAR) cvf $(MES_PAK).tar \
108 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
109 $(HLIST) $(OTHERS) \
110 `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
111 MACHINES DOC
112
113 # use this only for PC machines
114 msdos-zip:
115 - /bin/rm -f $(MES_PAK).zip
116 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
117 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
118 chmod 755 configure
119 $(MAKE) list
120 $(ZIP) $(MES_PAK).zip \
121 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
122 $(HLIST) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
123 MACHINES DOC
124
125
126 fullshar:
127 - /bin/rm -f $(MES_PAK).shar;
128 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
129 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
130 chmod 755 configure
131 $(MAKE) list
132 $(SHAR) `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
133 $(HLIST) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
134 MACHINES DOC > $(MES_PAK).shar
135
136 shar:
137 - /bin/rm -f meschach1.shar meschach2.shar meschach3.shar \
138 meschach4.shar oldmeschach.shar meschach0.shar
139 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
140 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
141 chmod 755 configure
142 $(MAKE) list
143 $(SHAR) `echo $(LIST1) | sed -e 's/\.o/.c/g'` > meschach1.shar
144 $(SHAR) `echo $(LIST2) | sed -e 's/\.o/.c/g'` > meschach2.shar
145 $(SHAR) `echo $(LIST3) | sed -e 's/\.o/.c/g'` > meschach3.shar
146 $(SHAR) `echo $(ZLIST1) | sed -e 's/\.o/.c/g'` \
147 `echo $(ZLIST2) | sed -e 's/\.o/.c/g'` > meschach4.shar
148 $(SHAR) `echo $(OLDLIST) | sed -e 's/\.o/.c/g'` > oldmeschach.shar
149 $(SHAR) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
150 $(HLIST) DOC MACHINES > meschach0.shar
151
152 list:
153 /bin/rm -f $(FLIST)
154 ls -lR `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
155 `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
156 $(HLIST) $(OTHERS) MACHINES DOC \
157 |awk '/^$$/ {print};/^[-d]/ {printf("%s %s %10d %s %s %s %s\n", \
158 $$1,$$2,$$5,$$6,$$7,$$8,$$9)}; /^[^-d]/ {print}' \
159 > $(FLIST)
160
161
162
163 clean:
164 /bin/rm -f *.o core asx5213a.mat iotort.dat
165
166 cleanup:
167 /bin/rm -f *.o core asx5213a.mat iotort.dat *.a
168
169 alltorture: torture sptort ztorture memtort itertort mfuntort iotort
170
171 torture:torture.o meschach.a
172 $(CC) $(CFLAGS) $(DEFS) -o torture torture.o \
173 meschach.a $(LIBS)
174 sptort:sptort.o meschach.a
175 $(CC) $(CFLAGS) $(DEFS) -o sptort sptort.o \
176 meschach.a $(LIBS)
177 memtort: memtort.o meschach.a
178 $(CC) $(CFLAGS) $(DEFS) -o memtort memtort.o \
179 meschach.a $(LIBS)
180 ztorture:ztorture.o meschach.a
181 $(CC) $(CFLAGS) $(DEFS) -o ztorture ztorture.o \
182 meschach.a $(LIBS)
183 itertort: itertort.o meschach.a
184 $(CC) $(CFLAGS) $(DEFS) -o itertort itertort.o \
185 meschach.a $(LIBS)
186
187 iotort: iotort.o meschach.a
188 $(CC) $(CFLAGS) $(DEFS) -o iotort iotort.o \
189 meschach.a $(LIBS)
190 mfuntort: mfuntort.o meschach.a
191 $(CC) $(CFLAGS) $(DEFS) -o mfuntort mfuntort.o \
192 meschach.a $(LIBS)
193 tstmove: tstmove.o meschach.a
194 $(CC) $(CFLAGS) $(DEFS) -o tstmove tstmove.o \
195 meschach.a $(LIBS)
196 tstpxvec: tstpxvec.o meschach.a
197 $(CC) $(CFLAGS) $(DEFS) -o tstpxvec tstpxvec.o \
198 meschach.a $(LIBS)
199
+0
-238
interface/src/scilab/src/c/MACHINES/RS6000/machine.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Stewart & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25 /*
26 This file contains basic routines which are used by the functions
27 in matrix.a etc.
28 These are the routines that should be modified in order to take
29 full advantage of specialised architectures (pipelining, vector
30 processors etc).
31 */
32 static char *rcsid = "$Header: /usr/local/home/des/meschach/meschach/RCS/machine.c,v 1.3 1991/08/29 06:42:11 des Exp $";
33
34 #include "machine.h"
35
36 /* __ip__ -- inner product */
37 double __ip__(dp1,dp2,len)
38 register double *dp1, *dp2;
39 int len;
40 {
41 register int len4;
42 register int i;
43 register double sum0, sum1, sum2, sum3;
44
45 sum0 = sum1 = sum2 = sum3 = 0.0;
46
47 len4 = len / 4;
48 len = len % 4;
49
50 for ( i = 0; i < len4; i++ )
51 {
52 sum0 += dp1[4*i]*dp2[4*i];
53 sum1 += dp1[4*i+1]*dp2[4*i+1];
54 sum2 += dp1[4*i+2]*dp2[4*i+2];
55 sum3 += dp1[4*i+3]*dp2[4*i+3];
56 }
57 sum0 += sum1 + sum2 + sum3;
58 dp1 += 4*len4; dp2 += 4*len4;
59
60 for ( i = 0; i < len; i++ )
61 sum0 += (*dp1++)*(*dp2++);
62
63 return sum0;
64 }
65
66 /* __mltadd__ -- scalar multiply and add c.f. v_mltadd() */
67 void __mltadd__(dp1,dp2,s,len)
68 register double *dp1, *dp2, s;
69 register int len;
70 {
71 register int i, len4;
72
73 len4 = len / 4;
74 len = len % 4;
75 for ( i = 0; i < len4; i++ )
76 {
77 dp1[4*i] += s*dp2[4*i];
78 dp1[4*i+1] += s*dp2[4*i+1];
79 dp1[4*i+2] += s*dp2[4*i+2];
80 dp1[4*i+3] += s*dp2[4*i+3];
81 }
82 dp1 += 4*len4; dp2 += 4*len4;
83
84 for ( i = 0; i < len; i++ )
85 (*dp1++) += s*(*dp2++);
86 }
87
88 /* __smlt__ scalar multiply array c.f. sv_mlt() */
89 void __smlt__(dp,s,out,len)
90 register double *dp, s, *out;
91 register int len;
92 {
93 register int i;
94 for ( i = 0; i < len; i++ )
95 (*out++) = s*(*dp++);
96 }
97
98 /* __add__ -- add arrays c.f. v_add() */
99 void __add__(dp1,dp2,out,len)
100 register double *dp1, *dp2, *out;
101 register int len;
102 {
103 register int i;
104 for ( i = 0; i < len; i++ )
105 (*out++) = (*dp1++) + (*dp2++);
106 }
107
108 /* __sub__ -- subtract arrays c.f. v_sub() */
109 void __sub__(dp1,dp2,out,len)
110 register double *dp1, *dp2, *out;
111 register int len;
112 {
113 register int i;
114 for ( i = 0; i < len; i++ )
115 (*out++) = (*dp1++) - (*dp2++);
116 }
117
118 /* __zero__ -- zeros an array of double precision numbers */
119 void __zero__(dp,len)
120 register double *dp;
121 register int len;
122 {
123 /* if a double precision zero is equivalent to a string of nulls */
124 MEM_ZERO((char *)dp,len*sizeof(double));
125 /* else, need to zero the array entry by entry */
126 /*************************************************
127 while ( len-- )
128 *dp++ = 0.0;
129 *************************************************/
130 }
131
132 /***********************************************************************
133 ****** Faster versions ********
134 ***********************************************************************/
135
136 /* __ip4__ -- compute 4 inner products in one go */
137 void __ip4__(v0,v1,v2,v3,w,out,len)
138 double *v0, *v1, *v2, *v3, *w;
139 double out[4];
140 int len;
141 {
142 register int i, len2;
143 register double sum00, sum10, sum20, sum30, w_val0;
144 register double sum01, sum11, sum21, sum31, w_val1;
145
146 len2 = len / 2;
147 len = len % 2;
148 sum00 = sum10 = sum20 = sum30 = 0.0;
149 sum01 = sum11 = sum21 = sum31 = 0.0;
150 for ( i = 0; i < len2; i++ )
151 {
152 w_val0 = w[2*i];
153 w_val1 = w[2*i+1];
154 sum00 += v0[2*i] *w_val0;
155 sum01 += v0[2*i+1]*w_val1;
156 sum10 += v1[2*i] *w_val0;
157 sum11 += v1[2*i+1]*w_val1;
158 sum20 += v2[2*i] *w_val0;
159 sum21 += v2[2*i+1]*w_val1;
160 sum30 += v3[2*i] *w_val0;
161 sum31 += v3[2*i+1]*w_val1;
162 }
163 w += 2*len2;
164 v0 += 2*len2;
165 v1 += 2*len2;
166 v2 += 2*len2;
167 v3 += 2*len2;
168 for ( i = 0; i < len; i++ )
169 {
170 w_val0 = w[i];
171 sum00 += v0[i]*w_val0;
172 sum10 += v1[i]*w_val0;
173 sum20 += v2[i]*w_val0;
174 sum30 += v3[i]*w_val0;
175 }
176 out[0] = sum00 + sum01;
177 out[1] = sum10 + sum11;
178 out[2] = sum20 + sum21;
179 out[3] = sum30 + sum31;
180 }
181
182 /* __lc4__ -- linear combinations: w <- w+a[0]*v0+ ... + a[3]*v3 */
183 void __lc4__(v0,v1,v2,v3,w,a,len)
184 double *v0, *v1, *v2, *v3, *w;
185 double a[4];
186 int len;
187 {
188 register int i, len2;
189 register double a0, a1, a2, a3, tmp0, tmp1;
190
191 len2 = len / 2;
192 len = len % 2;
193
194 a0 = a[0]; a1 = a[1];
195 a2 = a[2]; a3 = a[3];
196 for ( i = 0; i < len2; i++ )
197 {
198 tmp0 = w[2*i] + a0*v0[2*i];
199 tmp1 = w[2*i+1] + a0*v0[2*i+1];
200 tmp0 += a1*v1[2*i];
201 tmp1 += a1*v1[2*i+1];
202 tmp0 += a2*v2[2*i];
203 tmp1 += a2*v2[2*i+1];
204 tmp0 += a3*v3[2*i];
205 tmp1 += a3*v3[2*i+1];
206 w[2*i] = tmp0;
207 w[2*i+1] = tmp1;
208 }
209 w += 2*len2;
210 v0 += 2*len2;
211 v1 += 2*len2;
212 v2 += 2*len2;
213 v3 += 2*len2;
214 for ( i = 0; i < len; i++ )
215 w[i] += a0*v0[i] + a1*v1[i] + a2*v2[i] + a3*v3[i];
216 }
217
218 /* __ma4__ -- multiply and add with 4 vectors: vi <- vi + ai*w */
219 void __ma4__(v0,v1,v2,v3,w,a,len)
220 double *v0, *v1, *v2, *v3, *w;
221 double a[4];
222 int len;
223 {
224 register int i;
225 register double a0, a1, a2, a3, w0, w1, w2, w3;
226
227 a0 = a[0]; a1 = a[1];
228 a2 = a[2]; a3 = a[3];
229 for ( i = 0; i < len; i++ )
230 {
231 w0 = w[i];
232 v0[i] += a0*w0;
233 v1[i] += a1*w0;
234 v2[i] += a2*w0;
235 v3[i] += a3*w0;
236 }
237 }
+0
-209
interface/src/scilab/src/c/MACHINES/RS6000/machine.h less more
0 /**************************************************************************
1 **
2 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
3 **
4 ** Meschach Library
5 **
6 ** This Meschach Library is provided "as is" without any express
7 ** or implied warranty of any kind with respect to this software.
8 ** In particular the authors shall not be liable for any direct,
9 ** indirect, special, incidental or consequential damages arising
10 ** in any way from use of the software.
11 **
12 ** Everyone is granted permission to copy, modify and redistribute this
13 ** Meschach Library, provided:
14 ** 1. All copies contain this copyright notice.
15 ** 2. All modified copies shall carry a notice stating who
16 ** made the last modification and the date of such modification.
17 ** 3. No charge is made for this software or works derived from it.
18 ** This clause shall not be construed as constraining other software
19 ** distributed on the same medium as this software, nor is a
20 ** distribution fee considered a charge.
21 **
22 ***************************************************************************/
23
24 /* Note special macros: ANSI_C (ANSI C syntax)
25 SEGMENTED (segmented memory machine e.g. MS-DOS)
26 MALLOCDECL (declared if malloc() etc have
27 been declared) */
28
29 #define ANSI_C 1
30
31 /* #undef MALLOCDECL */
32 #define NOT_SEGMENTED 1
33 /* #undef HAVE_COMPLEX_H */
34 #define HAVE_MALLOC_H 1
35 #define STDC_HEADERS 1
36 #define HAVE_BCOPY 1
37 #define HAVE_BZERO 1
38 #define CHAR0ISDBL0 1
39 #define WORDS_BIGENDIAN 1
40 #define U_INT_DEF 1
41
42
43 /* for basic or larger versions */
44 #define COMPLEX 1
45 #define SPARSE 1
46
47 /* for loop unrolling */
48 /* #undef VUNROLL */
49 /* #undef MUNROLL */
50
51 /* for segmented memory */
52 #ifndef NOT_SEGMENTED
53 #define SEGMENTED
54 #endif
55
56 /* if the system has malloc.h */
57 #ifdef HAVE_MALLOC_H
58 #define MALLOCDECL 1
59 #include <malloc.h>
60 #endif
61
62 /* any compiler should have this header */
63 /* if not, change it */
64 #include <stdio.h>
65
66
67 /* Check for ANSI C memmove and memset */
68 #ifdef STDC_HEADERS
69
70 /* standard copy & zero functions */
71 #define MEM_COPY(from,to,size) memmove((to),(from),(size))
72 #define MEM_ZERO(where,size) memset((where),'\0',(size))
73
74 #ifndef ANSI_C
75 #define ANSI_C 1
76 #endif
77
78 #endif
79
80 /* standard headers */
81 #ifdef ANSI_C
82 #include <stdlib.h>
83 #include <stddef.h>
84 #include <string.h>
85 #include <float.h>
86 #endif
87
88
89 /* if have bcopy & bzero and no alternatives yet known, use them */
90 #ifdef HAVE_BCOPY
91 #ifndef MEM_COPY
92 /* nonstandard copy function */
93 #define MEM_COPY(from,to,size) bcopy((char *)(from),(char *)(to),(int)(size))
94 #endif
95 #endif
96
97 #ifdef HAVE_BZERO
98 #ifndef MEM_ZERO
99 /* nonstandard zero function */
100 #define MEM_ZERO(where,size) bzero((char *)(where),(int)(size))
101 #endif
102 #endif
103
104 /* if the system has complex.h */
105 #ifdef HAVE_COMPLEX_H
106 #include <complex.h>
107 #endif
108
109 /* If prototypes are available & ANSI_C not yet defined, then define it,
110 but don't include any header files as the proper ANSI C headers
111 aren't here */
112 #define HAVE_PROTOTYPES 1
113 #ifdef HAVE_PROTOTYPES
114 #ifndef ANSI_C
115 #define ANSI_C 1
116 #endif
117 #endif
118
119 /* floating point precision */
120
121 /* you can choose single, double or long double (if available) precision */
122
123 #define FLOAT 1
124 #define DOUBLE 2
125 #define LONG_DOUBLE 3
126
127 /* #undef REAL_FLT */
128 /* #undef REAL_DBL */
129
130 /* if nothing is defined, choose double precision */
131 #ifndef REAL_DBL
132 #ifndef REAL_FLT
133 #define REAL_DBL 1
134 #endif
135 #endif
136
137 /* single precision */
138 #ifdef REAL_FLT
139 #define Real float
140 #define LongReal float
141 #define REAL FLOAT
142 #define LONGREAL FLOAT
143 #endif
144
145 /* double precision */
146 #ifdef REAL_DBL
147 #define Real double
148 #define LongReal double
149 #define REAL DOUBLE
150 #define LONGREAL DOUBLE
151 #endif
152
153
154 /* machine epsilon or unit roundoff error */
155 /* This is correct on most IEEE Real precision systems */
156 #ifdef DBL_EPSILON
157 #if REAL == DOUBLE
158 #define MACHEPS DBL_EPSILON
159 #elif REAL == FLOAT
160 #define MACHEPS FLT_EPSILON
161 #elif REAL == LONGDOUBLE
162 #define MACHEPS LDBL_EPSILON
163 #endif
164 #endif
165
166 #define F_MACHEPS 1.19209e-07
167 #define D_MACHEPS 2.22045e-16
168
169 #ifndef MACHEPS
170 #if REAL == DOUBLE
171 #define MACHEPS D_MACHEPS
172 #elif REAL == FLOAT
173 #define MACHEPS F_MACHEPS
174 #elif REAL == LONGDOUBLE
175 #define MACHEPS D_MACHEPS
176 #endif
177 #endif
178
179 /* #undef M_MACHEPS */
180
181 /********************
182 #ifdef DBL_EPSILON
183 #define MACHEPS DBL_EPSILON
184 #endif
185 #ifdef M_MACHEPS
186 #ifndef MACHEPS
187 #define MACHEPS M_MACHEPS
188 #endif
189 #endif
190 ********************/
191
192 #define M_MAX_INT 2147483647
193 #ifdef M_MAX_INT
194 #ifndef MAX_RAND
195 #define MAX_RAND ((double)(M_MAX_INT))
196 #endif
197 #endif
198
199 /* for non-ANSI systems */
200 #ifndef HUGE_VAL
201 #define HUGE_VAL HUGE
202 #endif
203
204
205 #ifdef ANSI_C
206 extern int isatty(int);
207 #endif
208
+0
-202
interface/src/scilab/src/c/MACHINES/RS6000/makefile less more
0 # Generated automatically from makefile.in by configure.
1 #
2 # Makefile for Meschach via autoconf
3 #
4 # Copyright (C) David Stewart & Zbigniew Leyk 1993
5 #
6 # $Id: $
7 #
8
9 srcdir = .
10 VPATH = .
11
12 CC = cc
13
14 DEFS = -DHAVE_CONFIG_H
15 LIBS = -lm
16 RANLIB = ranlib
17
18
19 CFLAGS = -O
20
21
22 .c.o:
23 $(CC) -c $(CFLAGS) $(DEFS) $<
24
25 SHELL = /bin/sh
26 MES_PAK = mesch12a
27 TAR = tar
28 SHAR = stree -u
29 ZIP = zip -r -l
30 FLIST = FILELIST
31
32 ###############################
33
34 LIST1 = copy.o err.o matrixio.o memory.o vecop.o matop.o pxop.o \
35 submat.o init.o otherio.o machine.o matlab.o ivecop.o version.o \
36 meminfo.o memstat.o
37 LIST2 = lufactor.o bkpfacto.o chfactor.o qrfactor.o solve.o hsehldr.o \
38 givens.o update.o norm.o hessen.o symmeig.o schur.o svd.o fft.o \
39 mfunc.o bdfactor.o
40 LIST3 = sparse.o sprow.o sparseio.o spchfctr.o splufctr.o \
41 spbkp.o spswap.o iter0.o itersym.o iternsym.o
42 ZLIST1 = zmachine.o zcopy.o zmatio.o zmemory.o zvecop.o zmatop.o znorm.o \
43 zfunc.o
44 ZLIST2 = zlufctr.o zsolve.o zmatlab.o zhsehldr.o zqrfctr.o \
45 zgivens.o zhessen.o zschur.o
46
47 # they are no longer supported
48 # if you use them add oldpart to all and sparse
49 OLDLIST = conjgrad.o lanczos.o arnoldi.o
50
51 ALL_LISTS = $(LIST1) $(LIST2) $(LIST3) $(ZLIST1) $(ZLIST2) $(OLDLIST)
52
53 HBASE = err.h meminfo.h machine.h matrix.h
54
55 HLIST = $(HBASE) iter.h matlab.h matrix2.h oldnames.h sparse.h \
56 sparse2.h zmatrix.h zmatrix2.h
57
58 TORTURE = torture.o sptort.o ztorture.o memtort.o itertort.o \
59 mfuntort.o iotort.o
60
61 OTHERS = dmacheps.c extras.c fmacheps.c maxint.c makefile.in \
62 README configure configure.in machine.h.in copyright \
63 tutorial.c tutadv.c rk4.dat ls.dat makefile $(FLIST)
64
65
66 # Different configurations
67 all: part1 part2 part3 zpart1 zpart2
68 basic: part1 part2
69 sparse: part1 part2 part3
70 complex: part1 part2 zpart1 zpart2
71
72
73 $(LIST1): $(HBASE)
74 part1: $(LIST1)
75 ar ru meschach.a $(LIST1); $(RANLIB) meschach.a
76
77 $(LIST2): $(HBASE) matrix2.h
78 part2: $(LIST2)
79 ar ru meschach.a $(LIST2); $(RANLIB) meschach.a
80 schur.o: schur.c $(HBASE) matrix2.h
81 cc -c $(DEFS) schur.c
82
83 $(LIST3): $(HBASE) sparse.h sparse2.h
84 part3: $(LIST3)
85 ar ru meschach.a $(LIST3); $(RANLIB) meschach.a
86
87 $(ZLIST1): $(HBASDE) zmatrix.h
88 zpart1: $(ZLIST1)
89 ar ru meschach.a $(ZLIST1); ranlib meschach.a
90
91 $(ZLIST2): $(HBASE) zmatrix.h zmatrix2.h
92 zpart2: $(ZLIST2)
93 ar ru meschach.a $(ZLIST2); ranlib meschach.a
94
95 $(OLDLIST): $(HBASE) sparse.h sparse2.h
96 oldpart: $(OLDLIST)
97 ar ru meschach.a $(OLDLIST); ranlib meschach.a
98
99
100
101 #######################################
102
103 tar:
104 - /bin/rm -f $(MES_PAK).tar
105 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
106 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
107 chmod 755 configure
108 $(MAKE) list
109 $(TAR) cvf $(MES_PAK).tar \
110 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
111 $(HLIST) $(OTHERS) \
112 `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
113 MACHINES DOC
114
115 # use this only for PC machines
116 msdos-zip:
117 - /bin/rm -f $(MES_PAK).zip
118 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
119 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
120 chmod 755 configure
121 $(MAKE) list
122 $(ZIP) $(MES_PAK).zip \
123 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
124 $(HLIST) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
125 MACHINES DOC
126
127
128 fullshar:
129 - /bin/rm -f $(MES_PAK).shar;
130 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
131 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
132 chmod 755 configure
133 $(MAKE) list
134 $(SHAR) `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
135 $(HLIST) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
136 MACHINES DOC > $(MES_PAK).shar
137
138 shar:
139 - /bin/rm -f meschach1.shar meschach2.shar meschach3.shar \
140 meschach4.shar oldmeschach.shar meschach0.shar
141 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
142 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
143 chmod 755 configure
144 $(MAKE) list
145 $(SHAR) `echo $(LIST1) | sed -e 's/\.o/.c/g'` > meschach1.shar
146 $(SHAR) `echo $(LIST2) | sed -e 's/\.o/.c/g'` > meschach2.shar
147 $(SHAR) `echo $(LIST3) | sed -e 's/\.o/.c/g'` > meschach3.shar
148 $(SHAR) `echo $(ZLIST1) | sed -e 's/\.o/.c/g'` \
149 `echo $(ZLIST2) | sed -e 's/\.o/.c/g'` > meschach4.shar
150 $(SHAR) `echo $(OLDLIST) | sed -e 's/\.o/.c/g'` > oldmeschach.shar
151 $(SHAR) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
152 $(HLIST) DOC MACHINES > meschach0.shar
153
154 list:
155 /bin/rm -f $(FLIST)
156 ls -lR `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
157 `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
158 $(HLIST) $(OTHERS) MACHINES DOC \
159 |awk '/^$$/ {print};/^[-d]/ {printf("%s %s %10d %s %s %s %s\n", \
160 $$1,$$2,$$5,$$6,$$7,$$8,$$9)}; /^[^-d]/ {print}' \
161 > $(FLIST)
162
163
164
165 clean:
166 /bin/rm -f *.o core asx5213a.mat iotort.dat
167
168 cleanup:
169 /bin/rm -f *.o core asx5213a.mat iotort.dat *.a
170
171 alltorture: torture sptort ztorture memtort itertort mfuntort iotort
172
173 torture:torture.o meschach.a
174 $(CC) $(CFLAGS) $(DEFS) -o torture torture.o \
175 meschach.a $(LIBS)
176 sptort:sptort.o meschach.a
177 $(CC) $(CFLAGS) $(DEFS) -o sptort sptort.o \
178 meschach.a $(LIBS)
179 memtort: memtort.o meschach.a
180 $(CC) $(CFLAGS) $(DEFS) -o memtort memtort.o \
181 meschach.a $(LIBS)
182 ztorture:ztorture.o meschach.a
183 $(CC) $(CFLAGS) $(DEFS) -o ztorture ztorture.o \
184 meschach.a $(LIBS)
185 itertort: itertort.o meschach.a
186 $(CC) $(CFLAGS) $(DEFS) -o itertort itertort.o \
187 meschach.a $(LIBS)
188
189 iotort: iotort.o meschach.a
190 $(CC) $(CFLAGS) $(DEFS) -o iotort iotort.o \
191 meschach.a $(LIBS)
192 mfuntort: mfuntort.o meschach.a
193 $(CC) $(CFLAGS) $(DEFS) -o mfuntort mfuntort.o \
194 meschach.a $(LIBS)
195 tstmove: tstmove.o meschach.a
196 $(CC) $(CFLAGS) $(DEFS) -o tstmove tstmove.o \
197 meschach.a $(LIBS)
198 tstpxvec: tstpxvec.o meschach.a
199 $(CC) $(CFLAGS) $(DEFS) -o tstpxvec tstpxvec.o \
200 meschach.a $(LIBS)
201
+0
-247
interface/src/scilab/src/c/MACHINES/SGI/machine.h less more
0 /**************************************************************************
1 **
2 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
3 **
4 ** Meschach Library
5 **
6 ** This Meschach Library is provided "as is" without any express
7 ** or implied warranty of any kind with respect to this software.
8 ** In particular the authors shall not be liable for any direct,
9 ** indirect, special, incidental or consequential damages arising
10 ** in any way from use of the software.
11 **
12 ** Everyone is granted permission to copy, modify and redistribute this
13 ** Meschach Library, provided:
14 ** 1. All copies contain this copyright notice.
15 ** 2. All modified copies shall carry a notice stating who
16 ** made the last modification and the date of such modification.
17 ** 3. No charge is made for this software or works derived from it.
18 ** This clause shall not be construed as constraining other software
19 ** distributed on the same medium as this software, nor is a
20 ** distribution fee considered a charge.
21 **
22 ***************************************************************************/
23 /* machine.h. Generated automatically by configure. */
24 /* Any machine specific stuff goes here */
25 /* Add details necessary for your own installation here! */
26
27 /* RCS id: $Id: machine.h 4050 2012-02-26 13:04:17Z renard $ */
28
29 /* This is for use with "configure" -- if you are not using configure
30 then use machine.van for the "vanilla" version of machine.h */
31
32 /* Note special macros: ANSI_C (ANSI C syntax)
33 SEGMENTED (segmented memory machine e.g. MS-DOS)
34 MALLOCDECL (declared if malloc() etc have
35 been declared) */
36
37 /* #undef const */
38
39 /* #undef MALLOCDECL */
40 #define NOT_SEGMENTED 1
41 #define HAVE_MEMORY_H 1
42 /* #undef HAVE_COMPLEX_H */
43 #define HAVE_MALLOC_H 1
44 #define STDC_HEADERS 1
45 #define HAVE_BCOPY 1
46 #define HAVE_BZERO 1
47 #define CHAR0ISDBL0 1
48 #define WORDS_BIGENDIAN 1
49 /*#undef U_INT_DEF */
50 #define U_INT_DEF
51 #define VARARGS 1
52 #define HAVE_PROTOTYPES 1
53 /* #undef HAVE_PROTOTYPES_IN_STRUCT */
54
55 /* for inclusion into C++ files */
56 #ifdef __cplusplus
57 #define ANSI_C 1
58 #ifndef HAVE_PROTOTYPES
59 #define HAVE_PROTOTYPES 1
60 #endif
61 #ifndef HAVE_PROTOTYPES_IN_STRUCT
62 #define HAVE_PROTOTYPES_IN_STRUCT 1
63 #endif
64 #endif /* __cplusplus */
65
66 /* example usage: VEC *PROTO(v_get,(int dim)); */
67 #ifdef HAVE_PROTOTYPES
68 #define PROTO(name,args) name args
69 #else
70 #define PROTO(name,args) name()
71 #endif /* HAVE_PROTOTYPES */
72 #ifdef HAVE_PROTOTYPES_IN_STRUCT
73 /* PROTO_() is to be used instead of PROTO() in struct's and typedef's */
74 #define PROTO_(name,args) name args
75 #else
76 #define PROTO_(name,args) name()
77 #endif /* HAVE_PROTOTYPES_IN_STRUCT */
78
79 /* for basic or larger versions */
80 #define COMPLEX 1
81 #define SPARSE 1
82
83 /* for loop unrolling */
84 /* #undef VUNROLL */
85 /* #undef MUNROLL */
86
87 /* for segmented memory */
88 #ifndef NOT_SEGMENTED
89 #define SEGMENTED
90 #endif
91
92 /* if the system has malloc.h */
93 #ifdef HAVE_MALLOC_H
94 #define MALLOCDECL 1
95 #include <malloc.h>
96 #endif
97
98 /* any compiler should have this header */
99 /* if not, change it */
100 #include <stdio.h>
101
102
103 /* Check for ANSI C memmove and memset */
104 #ifdef STDC_HEADERS
105
106 /* standard copy & zero functions */
107 #define MEM_COPY(from,to,size) memmove((to),(from),(size))
108 #define MEM_ZERO(where,size) memset((where),'\0',(size))
109
110 #ifndef ANSI_C
111 #define ANSI_C 1
112 #endif
113
114 #endif
115
116 /* standard headers */
117 #ifdef ANSI_C
118 #include <stdlib.h>
119 #include <stddef.h>
120 #include <string.h>
121 #include <float.h>
122 #endif
123
124
125 /* if have bcopy & bzero and no alternatives yet known, use them */
126 #ifdef HAVE_BCOPY
127 #ifndef MEM_COPY
128 /* nonstandard copy function */
129 #define MEM_COPY(from,to,size) bcopy((char *)(from),(char *)(to),(int)(size))
130 #endif
131 #endif
132
133 #ifdef HAVE_BZERO
134 #ifndef MEM_ZERO
135 /* nonstandard zero function */
136 #define MEM_ZERO(where,size) bzero((char *)(where),(int)(size))
137 #endif
138 #endif
139
140 /* if the system has complex.h */
141 #ifdef HAVE_COMPLEX_H
142 #include <complex.h>
143 #endif
144
145 /* If prototypes are available & ANSI_C not yet defined, then define it,
146 but don't include any header files as the proper ANSI C headers
147 aren't here */
148 #ifdef HAVE_PROTOTYPES
149 #ifndef ANSI_C
150 #define ANSI_C 1
151 #endif
152 #endif
153
154 /* floating point precision */
155
156 /* you can choose single, double or long double (if available) precision */
157
158 #define FLOAT 1
159 #define DOUBLE 2
160 #define LONG_DOUBLE 3
161
162 #define REAL_FLT 1
163 /* #undef REAL_DBL */
164
165 /* if nothing is defined, choose double precision */
166 #ifndef REAL_DBL
167 #ifndef REAL_FLT
168 #define REAL_DBL 1
169 #endif
170 #endif
171
172 /* single precision */
173 #ifdef REAL_FLT
174 #define Real float
175 #define LongReal float
176 #define REAL FLOAT
177 #define LONGREAL FLOAT
178 #endif
179
180 /* double precision */
181 #ifdef REAL_DBL
182 #define Real double
183 #define LongReal double
184 #define REAL DOUBLE
185 #define LONGREAL DOUBLE
186 #endif
187
188
189 /* machine epsilon or unit roundoff error */
190 /* This is correct on most IEEE Real precision systems */
191 #ifdef DBL_EPSILON
192 #if REAL == DOUBLE
193 #define MACHEPS DBL_EPSILON
194 #elif REAL == FLOAT
195 #define MACHEPS FLT_EPSILON
196 #elif REAL == LONGDOUBLE
197 #define MACHEPS LDBL_EPSILON
198 #endif
199 #endif
200
201 #define F_MACHEPS 1.19209e-07
202 #define D_MACHEPS 2.22045e-16
203
204 #ifndef MACHEPS
205 #if REAL == DOUBLE
206 #define MACHEPS D_MACHEPS
207 #elif REAL == FLOAT
208 #define MACHEPS F_MACHEPS
209 #elif REAL == LONGDOUBLE
210 #define MACHEPS D_MACHEPS
211 #endif
212 #endif
213
214 /* #undef M_MACHEPS */
215
216 /********************
217 #ifdef DBL_EPSILON
218 #define MACHEPS DBL_EPSILON
219 #endif
220 #ifdef M_MACHEPS
221 #ifndef MACHEPS
222 #define MACHEPS M_MACHEPS
223 #endif
224 #endif
225 ********************/
226
227 #define M_MAX_INT 2147483647
228 #ifdef M_MAX_INT
229 #ifndef MAX_RAND
230 #define MAX_RAND ((double)(M_MAX_INT))
231 #endif
232 #endif
233
234 /* for non-ANSI systems */
235 #ifndef HUGE_VAL
236 #define HUGE_VAL HUGE
237 #else
238 #undef HUGE
239 #define HUGE HUGE_VAL
240 #endif
241
242
243 #ifdef ANSI_C
244 extern int isatty(int);
245 #endif
246
+0
-215
interface/src/scilab/src/c/MACHINES/SGI/makefile less more
0 # Generated automatically from makefile.in by configure.
1 #
2 # Makefile for Meschach via autoconf
3 #
4 # Copyright (C) David Stewart & Zbigniew Leyk 1993
5 #
6 # $Id: makefile.in,v 1.4 1994/03/14 01:24:06 des Exp $
7 #
8
9 srcdir = .
10 VPATH = .
11
12 CC = cc
13
14 DEFS = -DHAVE_CONFIG_H
15 LIBS = -lm
16 RANLIB = ranlib
17
18
19 CFLAGS = -O
20
21
22 .c.o:
23 $(CC) -c $(CFLAGS) $(DEFS) $<
24
25 SHELL = /bin/sh
26 MES_PAK = mesch12b
27 TAR = tar
28 SHAR = stree -u
29 ZIP = zip -r -l
30 FLIST = FILELIST
31
32 ###############################
33
34 LIST1 = copy.o err.o matrixio.o memory.o vecop.o matop.o pxop.o \
35 submat.o init.o otherio.o machine.o matlab.o ivecop.o version.o \
36 meminfo.o memstat.o
37 LIST2 = lufactor.o bkpfacto.o chfactor.o qrfactor.o solve.o hsehldr.o \
38 givens.o update.o norm.o hessen.o symmeig.o schur.o svd.o fft.o \
39 mfunc.o bdfactor.o
40 LIST3 = sparse.o sprow.o sparseio.o spchfctr.o splufctr.o \
41 spbkp.o spswap.o iter0.o itersym.o iternsym.o
42 ZLIST1 = zmachine.o zcopy.o zmatio.o zmemory.o zvecop.o zmatop.o znorm.o \
43 zfunc.o
44 ZLIST2 = zlufctr.o zsolve.o zmatlab.o zhsehldr.o zqrfctr.o \
45 zgivens.o zhessen.o zschur.o
46
47 # they are no longer supported
48 # if you use them add oldpart to all and sparse
49 OLDLIST = conjgrad.o lanczos.o arnoldi.o
50
51 ALL_LISTS = $(LIST1) $(LIST2) $(LIST3) $(ZLIST1) $(ZLIST2) $(OLDLIST)
52
53 HBASE = err.h meminfo.h machine.h matrix.h
54
55 HLIST = $(HBASE) iter.h matlab.h matrix2.h oldnames.h sparse.h \
56 sparse2.h zmatrix.h zmatrix2.h
57
58 TORTURE = torture.o sptort.o ztorture.o memtort.o itertort.o \
59 mfuntort.o iotort.o
60
61 OTHERS = dmacheps.c extras.c fmacheps.c maxint.c makefile.in \
62 README configure configure.in machine.h.in copyright \
63 tutorial.c tutadv.c rk4.dat ls.dat makefile $(FLIST)
64
65
66 # Different configurations
67 # the dependencies **between** the parts are for dmake
68 all: part1 part2 part3 zpart1 zpart2
69 part2: part1
70 part3: part2
71 basic: part1 part2
72 sparse: part1 part2 part3
73 zpart2: zpart1
74 complex: part1 part2 zpart1 zpart2
75
76
77 $(LIST1): $(HBASE)
78 part1: $(LIST1)
79 ar ru meschach.a $(LIST1)
80 $(RANLIB) meschach.a
81
82 $(LIST2): $(HBASE) matrix2.h
83 part2: $(LIST2)
84 ar ru meschach.a $(LIST2)
85 $(RANLIB) meschach.a
86
87 $(LIST3): $(HBASE) sparse.h sparse2.h
88 part3: $(LIST3)
89 ar ru meschach.a $(LIST3)
90 $(RANLIB) meschach.a
91
92 $(ZLIST1): $(HBASDE) zmatrix.h
93 zpart1: $(ZLIST1)
94 ar ru meschach.a $(ZLIST1)
95 $(RANLIB) meschach.a
96
97 $(ZLIST2): $(HBASE) zmatrix.h zmatrix2.h
98 zpart2: $(ZLIST2)
99 ar ru meschach.a $(ZLIST2)
100 $(RANLIB) meschach.a
101
102 $(OLDLIST): $(HBASE) sparse.h sparse2.h
103 oldpart: $(OLDLIST)
104 ar ru meschach.a $(OLDLIST)
105 $(RANLIB) meschach.a
106
107
108
109 #######################################
110
111 tar:
112 - /bin/rm -f $(MES_PAK).tar
113 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
114 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
115 chmod 755 configure
116 $(MAKE) list
117 $(TAR) cvf $(MES_PAK).tar \
118 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
119 $(HLIST) $(OTHERS) \
120 `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
121 MACHINES DOC
122
123 # use this only for PC machines
124 msdos-zip:
125 - /bin/rm -f $(MES_PAK).zip
126 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
127 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
128 chmod 755 configure
129 $(MAKE) list
130 $(ZIP) $(MES_PAK).zip \
131 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
132 $(HLIST) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
133 MACHINES DOC
134
135
136 fullshar:
137 - /bin/rm -f $(MES_PAK).shar;
138 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
139 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
140 chmod 755 configure
141 $(MAKE) list
142 $(SHAR) `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
143 $(HLIST) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
144 MACHINES DOC > $(MES_PAK).shar
145
146 shar:
147 - /bin/rm -f meschach1.shar meschach2.shar meschach3.shar \
148 meschach4.shar oldmeschach.shar meschach0.shar
149 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
150 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
151 chmod 755 configure
152 $(MAKE) list
153 $(SHAR) `echo $(LIST1) | sed -e 's/\.o/.c/g'` > meschach1.shar
154 $(SHAR) `echo $(LIST2) | sed -e 's/\.o/.c/g'` > meschach2.shar
155 $(SHAR) `echo $(LIST3) | sed -e 's/\.o/.c/g'` > meschach3.shar
156 $(SHAR) `echo $(ZLIST1) | sed -e 's/\.o/.c/g'` \
157 `echo $(ZLIST2) | sed -e 's/\.o/.c/g'` > meschach4.shar
158 $(SHAR) `echo $(OLDLIST) | sed -e 's/\.o/.c/g'` > oldmeschach.shar
159 $(SHAR) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
160 $(HLIST) DOC MACHINES > meschach0.shar
161
162 list:
163 /bin/rm -f $(FLIST)
164 ls -lR `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
165 `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
166 $(HLIST) $(OTHERS) MACHINES DOC \
167 |awk '/^$$/ {print};/^[-d]/ {printf("%s %s %10d %s %s %s %s\n", \
168 $$1,$$2,$$5,$$6,$$7,$$8,$$9)}; /^[^-d]/ {print}' \
169 > $(FLIST)
170
171
172
173 clean:
174 /bin/rm -f *.o core asx5213a.mat iotort.dat
175
176 cleanup:
177 /bin/rm -f *.o core asx5213a.mat iotort.dat *.a
178
179 realclean:
180 /bin/rm -f *.o core asx5213a.mat iotort.dat *.a
181 /bin/rm -f torture sptort ztorture memtort itertort mfuntort iotort
182 /bin/rm -f makefile machine.h config.status maxint macheps
183
184 alltorture: torture sptort ztorture memtort itertort mfuntort iotort
185
186 torture:torture.o meschach.a
187 $(CC) $(CFLAGS) $(DEFS) -o torture torture.o \
188 meschach.a $(LIBS)
189 sptort:sptort.o meschach.a
190 $(CC) $(CFLAGS) $(DEFS) -o sptort sptort.o \
191 meschach.a $(LIBS)
192 memtort: memtort.o meschach.a
193 $(CC) $(CFLAGS) $(DEFS) -o memtort memtort.o \
194 meschach.a $(LIBS)
195 ztorture:ztorture.o meschach.a
196 $(CC) $(CFLAGS) $(DEFS) -o ztorture ztorture.o \
197 meschach.a $(LIBS)
198 itertort: itertort.o meschach.a
199 $(CC) $(CFLAGS) $(DEFS) -o itertort itertort.o \
200 meschach.a $(LIBS)
201
202 iotort: iotort.o meschach.a
203 $(CC) $(CFLAGS) $(DEFS) -o iotort iotort.o \
204 meschach.a $(LIBS)
205 mfuntort: mfuntort.o meschach.a
206 $(CC) $(CFLAGS) $(DEFS) -o mfuntort mfuntort.o \
207 meschach.a $(LIBS)
208 tstmove: tstmove.o meschach.a
209 $(CC) $(CFLAGS) $(DEFS) -o tstmove tstmove.o \
210 meschach.a $(LIBS)
211 tstpxvec: tstpxvec.o meschach.a
212 $(CC) $(CFLAGS) $(DEFS) -o tstpxvec tstpxvec.o \
213 meschach.a $(LIBS)
214
+0
-210
interface/src/scilab/src/c/MACHINES/SPARC/machine.h less more
0 /**************************************************************************
1 **
2 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
3 **
4 ** Meschach Library
5 **
6 ** This Meschach Library is provided "as is" without any express
7 ** or implied warranty of any kind with respect to this software.
8 ** In particular the authors shall not be liable for any direct,
9 ** indirect, special, incidental or consequential damages arising
10 ** in any way from use of the software.
11 **
12 ** Everyone is granted permission to copy, modify and redistribute this
13 ** Meschach Library, provided:
14 ** 1. All copies contain this copyright notice.
15 ** 2. All modified copies shall carry a notice stating who
16 ** made the last modification and the date of such modification.
17 ** 3. No charge is made for this software or works derived from it.
18 ** This clause shall not be construed as constraining other software
19 ** distributed on the same medium as this software, nor is a
20 ** distribution fee considered a charge.
21 **
22 ***************************************************************************/
23
24 /* Note special macros: ANSI_C (ANSI C syntax)
25 SEGMENTED (segmented memory machine e.g. MS-DOS)
26 MALLOCDECL (declared if malloc() etc have
27 been declared) */
28
29 #define const
30
31 /* #undef MALLOCDECL */
32 #define NOT_SEGMENTED 1
33 /* #undef HAVE_COMPLEX_H */
34 #define HAVE_MALLOC_H 1
35 /* #undef STDC_HEADERS */
36 #define HAVE_BCOPY 1
37 #define HAVE_BZERO 1
38 #define CHAR0ISDBL0 1
39 #define WORDS_BIGENDIAN 1
40 /* #undef U_INT_DEF */
41 #define VARARGS 1
42
43
44 /* for basic or larger versions */
45 #define COMPLEX 1
46 #define SPARSE 1
47
48 /* for loop unrolling */
49 /* #undef VUNROLL */
50 /* #undef MUNROLL */
51
52 /* for segmented memory */
53 #ifndef NOT_SEGMENTED
54 #define SEGMENTED
55 #endif
56
57 /* if the system has malloc.h */
58 #ifdef HAVE_MALLOC_H
59 #define MALLOCDECL 1
60 #include <malloc.h>
61 #endif
62
63 /* any compiler should have this header */
64 /* if not, change it */
65 #include <stdio.h>
66
67
68 /* Check for ANSI C memmove and memset */
69 #ifdef STDC_HEADERS
70
71 /* standard copy & zero functions */
72 #define MEM_COPY(from,to,size) memmove((to),(from),(size))
73 #define MEM_ZERO(where,size) memset((where),'\0',(size))
74
75 #ifndef ANSI_C
76 #define ANSI_C 1
77 #endif
78
79 #endif
80
81 /* standard headers */
82 #ifdef ANSI_C
83 #include <stdlib.h>
84 #include <stddef.h>
85 #include <string.h>
86 #include <float.h>
87 #endif
88
89
90 /* if have bcopy & bzero and no alternatives yet known, use them */
91 #ifdef HAVE_BCOPY
92 #ifndef MEM_COPY
93 /* nonstandard copy function */
94 #define MEM_COPY(from,to,size) bcopy((char *)(from),(char *)(to),(int)(size))
95 #endif
96 #endif
97
98 #ifdef HAVE_BZERO
99 #ifndef MEM_ZERO
100 /* nonstandard zero function */
101 #define MEM_ZERO(where,size) bzero((char *)(where),(int)(size))
102 #endif
103 #endif
104
105 /* if the system has complex.h */
106 #ifdef HAVE_COMPLEX_H
107 #include <complex.h>
108 #endif
109
110 /* If prototypes are available & ANSI_C not yet defined, then define it,
111 but don't include any header files as the proper ANSI C headers
112 aren't here */
113 /* #undef HAVE_PROTOTYPES */
114 #ifdef HAVE_PROTOTYPES
115 #ifndef ANSI_C
116 #define ANSI_C 1
117 #endif
118 #endif
119
120 /* floating point precision */
121
122 /* you can choose single, double or long double (if available) precision */
123
124 #define FLOAT 1
125 #define DOUBLE 2
126 #define LONG_DOUBLE 3
127
128 /* #undef REAL_FLT */
129 #define REAL_DBL 1
130
131 /* if nothing is defined, choose double precision */
132 #ifndef REAL_DBL
133 #ifndef REAL_FLT
134 #define REAL_DBL 1
135 #endif
136 #endif
137
138 /* single precision */
139 #ifdef REAL_FLT
140 #define Real float
141 #define LongReal float
142 #define REAL FLOAT
143 #define LONGREAL FLOAT
144 #endif
145
146 /* double precision */
147 #ifdef REAL_DBL
148 #define Real double
149 #define LongReal double
150 #define REAL DOUBLE
151 #define LONGREAL DOUBLE
152 #endif
153
154
155 /* machine epsilon or unit roundoff error */
156 /* This is correct on most IEEE Real precision systems */
157 #ifdef DBL_EPSILON
158 #if REAL == DOUBLE
159 #define MACHEPS DBL_EPSILON
160 #elif REAL == FLOAT
161 #define MACHEPS FLT_EPSILON
162 #elif REAL == LONGDOUBLE
163 #define MACHEPS LDBL_EPSILON
164 #endif
165 #endif
166
167 #define F_MACHEPS 1.19209e-07
168 #define D_MACHEPS 2.22045e-16
169
170 #ifndef MACHEPS
171 #if REAL == DOUBLE
172 #define MACHEPS D_MACHEPS
173 #elif REAL == FLOAT
174 #define MACHEPS F_MACHEPS
175 #elif REAL == LONGDOUBLE
176 #define MACHEPS D_MACHEPS
177 #endif
178 #endif
179
180 /* #undef M_MACHEPS */
181
182 /********************
183 #ifdef DBL_EPSILON
184 #define MACHEPS DBL_EPSILON
185 #endif
186 #ifdef M_MACHEPS
187 #ifndef MACHEPS
188 #define MACHEPS M_MACHEPS
189 #endif
190 #endif
191 ********************/
192
193 #define M_MAX_INT 2147483647
194 #ifdef M_MAX_INT
195 #ifndef MAX_RAND
196 #define MAX_RAND ((double)(M_MAX_INT))
197 #endif
198 #endif
199
200 /* for non-ANSI systems */
201 #ifndef HUGE_VAL
202 #define HUGE_VAL HUGE
203 #endif
204
205
206 #ifdef ANSI_C
207 extern int isatty(int);
208 #endif
209
+0
-186
interface/src/scilab/src/c/MACHINES/SPARC/makefile less more
0 # #
1 # Makefile for Meschach for SUN SPARC cc
2 #
3 # Copyright (C) David Stewart & Zbigniew Leyk 1993
4 #
5 # $Id: $
6 #
7
8 srcdir = .
9 VPATH = .
10
11 CC = cc
12
13 DEFS = -DHAVE_CONFIG_H
14 LIBS = -lm
15 RANLIB = ranlib
16
17
18 CFLAGS = -O
19
20
21 .c.o:
22 $(CC) -c $(CFLAGS) $(DEFS) $<
23
24 SHELL = /bin/sh
25 MES_PAK = mesch12a
26 TAR = tar
27 SHAR = stree -u
28 ZIP = zip -r -l
29
30 ###############################
31
32 LIST1 = copy.o err.o matrixio.o memory.o vecop.o matop.o pxop.o \
33 submat.o init.o otherio.o machine.o matlab.o ivecop.o version.o \
34 meminfo.o memstat.o
35 LIST2 = lufactor.o bkpfacto.o chfactor.o qrfactor.o solve.o hsehldr.o \
36 givens.o update.o norm.o hessen.o symmeig.o schur.o svd.o fft.o \
37 mfunc.o bdfactor.o
38 LIST3 = sparse.o sprow.o sparseio.o spchfctr.o splufctr.o \
39 spbkp.o spswap.o iter0.o itersym.o iternsym.o
40 ZLIST1 = zmachine.o zcopy.o zmatio.o zmemory.o zvecop.o zmatop.o znorm.o \
41 zfunc.o
42 ZLIST2 = zlufctr.o zsolve.o zmatlab.o zhsehldr.o zqrfctr.o \
43 zgivens.o zhessen.o zschur.o
44
45 # they are no longer supported
46 # if you use them add oldpart to all and sparse
47 OLDLIST = conjgrad.o lanczos.o arnoldi.o
48
49 ALL_LISTS = $(LIST1) $(LIST2) $(LIST3) $(ZLIST1) $(ZLIST2) $(OLDLIST)
50
51
52 HLIST = err.h iter.h machine.h matlab.h matrix.h matrix2.h \
53 meminfo.h oldnames.h sparse.h sparse2.h \
54 zmatrix.h zmatrix2.h
55
56 TORTURE = torture.o sptort.o ztorture.o memtort.o itertort.o \
57 mfuntort.o iotort.o
58
59 OTHERS = dmacheps.c extras.c fmacheps.c maxint.c makefile.in \
60 README configure configure.in machine.h.in copyright \
61 tutorial.c tutadv.c rk4.dat ls.dat makefile
62
63
64 # Different configurations
65 all: part1 part2 part3 zpart1 zpart2
66 basic: part1 part2
67 sparse: part1 part2 part3
68 complex: part1 part2 zpart1 zpart2
69
70
71 HBASE = err.h meminfo.h machine.h matrix.h
72
73 $(LIST1): $(HBASE)
74 part1: $(LIST1)
75 ar ru meschach.a $(LIST1); $(RANLIB) meschach.a
76
77 $(LIST2): $(HBASE) matrix2.h
78 part2: $(LIST2)
79 ar ru meschach.a $(LIST2); $(RANLIB)
80
81 $(LIST3): $(HBASE) sparse.h sparse2.h
82 part3: $(LIST3)
83 ar ru meschach.a $(LIST3); $(RANLIB) meschach.a
84
85 $(ZLIST1): $(HBASDE) zmatrix.h
86 zpart1: $(ZLIST1)
87 ar ru meschach.a $(ZLIST1); ranlib meschach.a
88
89 $(ZLIST2): $(HBASE) zmatrix.h zmatrix2.h
90 zpart2: $(ZLIST2)
91 ar ru meschach.a $(ZLIST2); ranlib meschach.a
92
93 $(OLDLIST): $(HBASE) sparse.h sparse2.h
94 oldpart: $(OLDLIST)
95 ar ru meschach.a $(OLDLIST); ranlib meschach.a
96
97
98
99 #######################################
100
101 tar:
102 - /bin/rm -f $(MES_PAK).tar
103 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
104 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
105 chmod 755 configure
106 $(TAR) cvf $(MES_PAK).tar \
107 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
108 $(HLIST) $(OTHERS) \
109 `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
110 MACHINES DOC
111
112 # use this only for PC machines
113 msdos-zip:
114 - /bin/rm -f $(MES_PAK).zip
115 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
116 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
117 chmod 755 configure
118 $(ZIP) $(MES_PAK).zip \
119 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
120 $(HLIST) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
121 MACHINES DOC
122
123
124 fullshar:
125 - /bin/rm -f $(MES_PAK).shar;
126 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
127 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
128 chmod 755 configure
129 $(SHAR) `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
130 $(HLIST) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
131 MACHINES DOC > $(MES_PAK).shar
132
133 shar:
134 - /bin/rm -f meschach1.shar meschach2.shar meschach3.shar \
135 meschach4.shar oldmeschach.shar meschach0.shar
136 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
137 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
138 chmod 755 configure
139 $(SHAR) `echo $(LIST1) | sed -e 's/\.o/.c/g'` > meschach1.shar
140 $(SHAR) `echo $(LIST2) | sed -e 's/\.o/.c/g'` > meschach2.shar
141 $(SHAR) `echo $(LIST3) | sed -e 's/\.o/.c/g'` > meschach3.shar
142 $(SHAR) `echo $(ZLIST1) | sed -e 's/\.o/.c/g'` \
143 `echo $(ZLIST2) | sed -e 's/\.o/.c/g'` > meschach4.shar
144 $(SHAR) `echo $(OLDLIST) | sed -e 's/\.o/.c/g'` > oldmeschach.shar
145 $(SHAR) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
146 $(HLIST) DOC MACHINES > meschach0.shar
147
148
149 clean:
150 /bin/rm -f *.o core asx5213a.mat iotort.dat
151
152 cleanup:
153 /bin/rm -f *.o core asx5213a.mat iotort.dat *.a
154
155 alltorture: torture sptort ztorture memtort itertort mfuntort iotort
156
157 torture:torture.o meschach.a
158 $(CC) $(CFLAGS) $(DEFS) -o torture torture.o \
159 meschach.a $(LIBS)
160 sptort:sptort.o meschach.a
161 $(CC) $(CFLAGS) $(DEFS) -o sptort sptort.o \
162 meschach.a $(LIBS)
163 memtort: memtort.o meschach.a
164 $(CC) $(CFLAGS) $(DEFS) -o memtort memtort.o \
165 meschach.a $(LIBS)
166 ztorture:ztorture.o meschach.a
167 $(CC) $(CFLAGS) $(DEFS) -o ztorture ztorture.o \
168 meschach.a $(LIBS)
169 itertort: itertort.o meschach.a
170 $(CC) $(CFLAGS) $(DEFS) -o itertort itertort.o \
171 meschach.a $(LIBS)
172
173 iotort: iotort.o meschach.a
174 $(CC) $(CFLAGS) $(DEFS) -o iotort iotort.o \
175 meschach.a $(LIBS)
176 mfuntort: mfuntort.o meschach.a
177 $(CC) $(CFLAGS) $(DEFS) -o mfuntort mfuntort.o \
178 meschach.a $(LIBS)
179 tstmove: tstmove.o meschach.a
180 $(CC) $(CFLAGS) $(DEFS) -o tstmove tstmove.o \
181 meschach.a $(LIBS)
182 tstpxvec: tstpxvec.o meschach.a
183 $(CC) $(CFLAGS) $(DEFS) -o tstpxvec tstpxvec.o \
184 meschach.a $(LIBS)
185
+0
-455
interface/src/scilab/src/c/README less more
0
1
2
3 Meschach Library
4 Version 1.2b
5
6
7 David E. Stewart
8 (david.stewart@anu.edu.au)
9
10 and
11
12 Zbigniew Leyk
13 (zbigniew.leyk@anu.edu.au)
14
15 School of Mathematical Sciences
16 Australian National University
17 Canberra ACT 0200
18 Australia
19
20
21 [last revised: 6th April, 1994]
22
23
24 1. INTRODUCTION
25
26 The Meschach Library is a numerical library of C routines for performing
27 calculations on matrices and vectors. It is intended for solving systems of
28 linear equations (dense and sparse), solve least squares problems,
29 computing eigenvalues and eigenvectors, etc. We do not claim that it
30 contains every useful algorithm in numerical linear algebra, but it does
31 provide a basis on which more advanced algorithms can be built. The library
32 is for people who know something about the C programming language,
33 something of how to solve the numerical problem they are faced with but do
34 not want to have the hassle of building all the necessary routines from the
35 scratch. The library is not a loose collection of numerical routines but it
36 comprises a coherent system. The current version is enhanced with many
37 features comparing with previous versions. Since the memory requirements
38 are nontrivial for large problems we have paid more attention to
39 allocation/deallocation of memory.
40
41 The source code is available to be perused, used and passed on without
42 cost, while ensuring that the quality of the software is not compromised.
43 The software is copyrighted; however, the copyright agreement follows in
44 the footsteps of the Free Software Foundation in preventing abuse that
45 occurs with totally public domain software.
46
47 Detailed instructions for installing Meschach are contained below.
48
49 Pronunciation: if in doubt, say "me-shark". This is close enough.
50 Don't ask us "Why call it that?" Have a look at the quote at the front of
51 the manual.
52
53
54 2. AVAILABILITY
55
56 The authors make this code openly available to others, in the hope that
57 it will prove to be a useful tool. We ask only that:
58
59 * If you publish results obtained using Meschach, please consider
60 acknowledging the source of the code.
61
62 * If you discover any errors in the code, please promptly communicate them
63 to the authors.
64
65 We also suggest that you send email to the authors identifying yourself
66 as a user of Meschach; this will enable the authors to notify you of any
67 corrections/improvements in Meschach.
68
69
70
71 3. HOW TO GET IT
72
73 There are several different forms in which you might receive Meschach.
74 To provide a shorthand for describing collections of files, the Unix
75 convention of putting alternative letters in [...] will be used. (So,
76 fred[123] means the collection fred1, fred2 and fred3.) Meschach is
77 available over Internet/AARnet via netlib, or at the anonymous ftp site
78 thrain.anu.edu.au in the directory pub/meschach. There are five .shar
79 files: meschach[01234].shar (which contain the library itself),
80 meschach0.shar (which contains basic documentation and machine dependent
81 files for a number of machines). Of the meschach[1234].shar files, only
82 meschach[12].shar are needed for the basic Meschach library; the third
83 .shar file contains the sparse matrix routines, and the fourth contains
84 the routines for complex numbers, vectors and matrices. There is also a
85 README file that you should get from meschach0.shar.
86
87 If you need the old iterative routines, the file oldmeschach.shar
88 contains the files conjgrad.c, arnoldi.c and lanczos.c.
89
90 To get the library from netlib,
91
92 mail netlib@research.att.com
93 send all from c/meschach
94
95 There are a number of other netlib sites which mirror the main netlib
96 sites. These include netlib@ornl.gov (Oak Ridge, TN, USA), netlib@nac.no
97 (Oslo, Norway), ftp.cs.uow.edu.au (Wollongong, Australia; ftp only),
98 netlib@nchc.edu.tw (Taiwan), elib.zib-berlin.de (Berlin, Germany; ftp
99 only). (For anonymous ftp sites the directory containing the Meschach
100 .shar files is pub/netlib/c/meschach or similar, possibly depending on the
101 site.)
102
103 Meschach is available in other forms on thrain.anu.edu.au by ftp in the
104 directory pub/meschach. It is available as a .tar file (mesch12a.tar for
105 version 1.2a), or as a collection of .shar files, or as a .zip file. The
106 .tar and .zip versions each contain the entire contents of the Meschach
107 library.
108
109 There is a manual called "Meschach: Matrix Computations in C" which has
110 been published by
111
112 Centre for Mathematics and its Applications
113 School of Mathematical Sciences
114 Australian National University
115 Canberra, ACT 0200
116 Australia
117
118 and costs A$30 (about US$22) + postage/handling. You can order it by
119 writing there or you can send email messages to one of us
120 (david.stewart@anu.edu.au or zbigniew.leyk@anu.edu.au) and we can pass it
121 on.
122
123 If you don't have any money, as a stop gap you can get the **OLD**
124 manual, although it is out of date, by anonymous ftp from
125
126 thrain.anu.edu.au : /pub/meschach/version1.1b/bookdvi.tar [.Z or .gz]
127
128 In addition, don't forget that the distribution includes a DOC directory
129 which contains tutorial.txt and fnindex.txt which are respectively, the
130 tutorial chapter (text version) and the function index (text version).
131
132
133
134 4. INSTALLATION
135
136 a) On Unix machines
137
138 To extract the files from the .shar files, put them all into a suitable
139 directory and use
140
141 sh <file>.shar
142
143 to expand the files. (Use one sh command per file; sh *.shar will not work
144 in general.)
145
146 For the .tar file, use
147
148 tar xvf mesch12a.tar
149
150 and for the .zip file use
151
152 unzip mesch12a.zip
153
154 On a Unix system you can use the configure script to set up the
155 machine-dependent files. The script takes a number of options which are
156 used for installing different subsets of the full Meschach. For the basic
157 system, which requires only meschach[012].shar, use
158
159 configure
160 make basic
161 make clean
162
163 For including sparse operations, which requires meschach[0123].shar, use
164
165 configure --with-sparse
166 make sparse
167 make clean
168
169 For including complex operations, which requires meschach[0124].shar, use
170
171 configure --with-complex
172 make complex
173 make clean
174
175 For including everything, which requires meschach[01234].shar, use
176
177 configure --with-all
178 make all
179 make clean
180
181 To compile the complete library in single precision (with Real equivalent
182 to float), add the --with-float option to configure, use
183
184 configure --with-all --with-float
185 make all
186 make clean
187
188
189 Some Unix-like systems may have some problems with this due to bugs or
190 incompatibilities in various parts of the system. To check this use make
191 torture and run torture. In this case use the machine-dependent files from
192 the machines directory. (This is the case for RS/6000 machines, the -O
193 switch results in failure of a routine in schur.c. Compiling without the
194 -O switch results in correct results.)
195
196 If you have problems using configure, or you use a non-Unix system,
197 check the MACHINES directory (generated by meschach0.shar) for your
198 machine, operating system and/or compiler. Save the machine dependent
199 files makefile, machine.c and machine.h. Copy those files from the
200 directory for your machine to the directory where the source code is.
201
202 To link into a program prog.c, compile it using
203
204 cc -o prog_name prog.c ....(source files).... meschach.a -lm
205
206
207 This code has been mostly developed on the University of Queensland,
208 Australia's Pyramid 9810 running BSD4.3. Initial development was on a
209 Zilog Zeus Z8000 machine running Zeus, a Unix workalike operating system.
210 Versions have also been successfully used on various Unix machines
211 including Sun 3's, IBM RT's, SPARC's and an IBM RS/6000 running AIX. It
212 has also been compiled on an IBM AT clone using Quick C. It has been
213 designed to compile under either Kernighan and Richie, (Edition 1) C and
214 under ANSI C. (And, indeed, it has been compiled in both ANSI C and
215 non-ANSI C environments.)
216
217
218 b) On non-Unix machines
219
220 First look in the machines directory for your system type. If it is
221 there, then copy the machine dependent files machine.h, makefile (and
222 possibly machine.c) to the Meschach directory.
223
224 If your machine type is not there, then you will need to either compile
225 ``by hand'', or construct your own makefile and possibly machine.h as well.
226 The machine-dependent files for various systems should be used as a
227 starting point, and the ``vanilla'' version of machine.h should be used.
228 Information on the machine-dependent files follows in the next three
229 subsections.
230
231 On an IBM PC clone, the source code would be on a floppy disk. Use
232
233 xcopy a:* meschach
234
235 to copy it to the meschach directory. Then ``cd meschach'', and then
236 compile the source code. Different compilers on MSDOS machines will
237 require different installation procedures. Check the directory meschach
238 for the appropriate ``makefile'' for your compiler. If your compiler is
239 not listed, then you should try compiling it ``by hand'', modifying the
240 machine-dependent files as necessary.
241
242 Worst come to worst, for a given C compiler, execute
243 <C compiler name> *.c
244 on MS-DOS machines. For example,
245 tcc *.c
246 for Turbo C, and
247 msc *.c
248 for Microsoft C, or if you are using Quick C,
249 qcl *.c
250 and of course
251 cc *.c
252 for the standard Unix compiler.
253
254 Once the object files have been generated, you will need to combine them
255 into a library. Consult your local compiler's manual for details of how to
256 do this.
257
258 When compiling programs/routines that use Meschach, you will need to
259 have access to the header files in the INCLUDE directory. The INCLUDE
260 directory's contents can be copied to the directory where the
261 programs/routines are compiled.
262
263 The files in the DOC directory form a very brief form of documentation
264 on the library routines in Meschach. See the printed documentation for
265 more comprehensive documentation of the Meschach routines. This can be
266 obtained from the authors via email.
267
268 The files and directories created by the machines.shar shell archive
269 contain the files machine.c machine.h and makefile for a particular
270 machine/operating system/compiler where they need to be different. Copy
271 the files in the appropriate directory for your machine/operating
272 system/compiler to the directory with the Meschach source before compiling.
273
274
275
276 c) makefile
277
278
279 This is setup by using the configure script on a Unix system, based on
280 the makefile.in file. However, if you want to modify how the library is
281 compiled, you are free to change the makefile.
282
283 The most likely change that you would want to make to this file is to
284 change the line
285
286 CFLAGS = -O
287
288 to suit your particular compiler.
289
290 The code is intended to be compilable by both ANSI and non-ANSI
291 compilers.
292
293 To achieve this portability without sacrificing the ANSI function
294 prototypes (which are very useful for avoiding problems with passing
295 parameters) there is a token ANSI_C which must be #define'd in order to
296 take full advantage of ANSI C. To do this you should do all compilations
297 with
298
299 #define ANSI_C 1
300
301 This can also be done at the compilation stage with a -DANSI_C flag.
302 Again, you will have to use the -DANSI_C flag or its equivalent whenever
303 you compile, or insert the line
304
305 #define ANSI_C 1
306
307 in machine.h, to make full use of ANSI C with this matrix library.
308
309
310 d) machine.h
311
312 Like makefile this is normally set up by the configure script on Unix
313 machines. However, for non-Unix systems, or if you need to set some things
314 ``by hand'', change machine.h.
315
316 There are a few quantities in here that should be modified to suit your
317 particular compiler. Firstly, the macros MEM_COPY() and MEM_ZERO() need to
318 be correctly defined here. The original library was compiled on BSD
319 systems, and so it originally relied on bcopy() and bzero().
320
321 In machine.h you will find the definitions for using the standard ANSI C
322 library routines:
323
324 /*--------------------ANSI C--------------------*/
325 #include <stddef.h>
326 #include <string.h>
327 #define MEM_COPY(from,to,size) memmove((to),(from),(size))
328 #define MEM_ZERO(where,size) memset((where),'\0',(size))
329
330 Delete or comment out the alternative definitions and it should compile
331 correctly. The source files containing memmove() and/or memset() are
332 available by anonymous ftp from some ftp sites (try archie to discover
333 them). The files are usually called memmove.c or memset.c.
334 Some ftp sites which currently (Jan '94) have a version of these files are
335 munnari.oz.au (in Australia), ftp.uu.net, gatekeeper.dec.com (USA), and
336 unix.hensa.ac.uk (in the UK). The directory in which you will find
337 memmove.c and memset.c typically looks like .../bsd-sources/lib/libc/...
338
339 There are two further machine-dependent quantities that should be set.
340 These are machine epsilon or the unit roundoff for double precision
341 arithmetic, and the maximum value produced by the rand() routine, which is
342 used in rand_vec() and rand_mat().
343
344
345 The current definitions of these are
346
347 #define MACHEPS 2.2e-16
348 #define MAX_RAND 2.147483648e9
349
350 The value of MACHEPS should be correct for all IEEE standard double
351 precision arithmetic.
352
353 However, ANSI C's <float.h> contains #define'd quantities DBL_EPSILON
354 and RAND_MAX, so if you have an ANSI C compiler and headers, replace the
355 above two lines of machine.h with
356
357 #include <float.h>
358 /* for Real == float */
359 #define MACHEPS DBL_EPSILON
360 #define MAX_RAND RAND_MAX
361
362 The default value given for MAX_RAND is 2^31 , as the Pyramid 9810 and
363 the SPARC 2's both have 32 bit words. There is a program macheps.c which
364 is included in your source files which computes and prints out the value of
365 MACHEPS for your machine.
366
367 Some other macros control some aspects of Meschach. One of these is
368 SEGMENTED which should be #define'd if you are working with a machine or
369 compiler that does not allow large arrays to be allocated. For example,
370 the most common memory models for MS-DOS compilers do not allow more than
371 64Kbyte to be allocated in one block. This limits square matrices to be no
372 more than 9090 . Inserting #define SEGMENTED 1 into machine.h will mean
373 that matrices are allocated a row at a time.
374
375
376
377 4. SAMPLE TESTS
378
379 There are several programs for checking Meschach called torture
380 (source: torture.c) for the dense routines, sptort (source: sptort.c) for
381 the sparse routines, ztorture (source ztorture.c) for a complex version of
382 torture, memtort (source memtort.c) for memory allocation/deallocation,
383 itertort (source itertort.c) for iterative methods, mfuntort (source
384 mfuntort.c) for computing powers of dense matrices, iotort (source
385 iotort.c) for I/O routines. These can be compiled using make by "make
386 torture", "make sptort", etc. The programs are part of meschach0.shar.
387
388
389 5. OTHER PROBLEMS
390
391 Meschach is not a commercial package, so we do not guarantee that
392 everything will be perfect or will install smoothly. Inevitably there will
393 be unforeseen problems. If you come across any bugs or inconsistencies, please
394 let us know. If you need to modify the results of the configure script, or
395 need to construct your own machine.h and makefile's, please send them to
396 us. A number of people sent us the machine dependent files for Meschach 1.1,
397 but with the use of configure, and the new information needed for version
398 1.2, these machine dependent files don't have quite the right information.
399 Hopefully, though, they are redundant. Non-Unix platforms at present
400 require ``manual'' installation. Because of the variety of platforms
401 (MS-DOS, Macintosh, VAX/VMS, Prime, Amiga, Atari, ....) this is left up to
402 the users of these platforms. We hope that you can use the distibutable
403 machine-dependent files as a starting point for this task.
404
405 If you have programs or routines written using Meschach v.1.1x, you
406 should put the statement
407
408 #include "oldnames.h"
409
410 at the beginning of your files. This is because a large number of the
411 names of the routines have been changed (e.g. "get_vec()" has become
412 "v_get()"). This will enable you to use the old names, although all of the
413 error messages etc., will use the new names. Also note that the new
414 iterative routines have a very different calling sequence. If you need the
415 old iterative routines, they are in oldmeschach.shar.
416
417 If you wish to let us know what you have done, etc., our email
418 addresses are
419
420 david.stewart@anu.edu.au
421 zbigniew.leyk@anu.edu.au
422
423 Good luck!
424
425
426 ACKNOWLEDGMENTS
427
428
429 Many people have helped in various ways with ideas and suggestions.
430 Needless to say, the bugs are all ours! But these people should be thanked
431 for their encouragement etc. These include a number of people at
432 University of Queensland: Graeme Chandler, David De Wit, Martin Sharry,
433 Michael Forbes, Phil Kilby, John Holt, Phil Pollett and Tony Watts. At the
434 Australian National University: Mike Osborne, Steve Roberts, Margaret Kahn
435 and Teresa Leyk. Karen George of the University of Canberra has been a
436 source of both ideas and encouragement. Email has become significant part
437 of work, and many people have pointed out bugs, inconsistencies and
438 improvements to Meschach by email. These people include Ajay Shah of the
439 University of Southern California, Dov Grobgeld of the Weizmann Institute,
440 John Edstrom of the University of Calgary, Eric Grosse, one of the netlib
441 organisers, Ole Saether of Oslo, Norway, Alfred Thiele and Pierre
442 Asselin of Carnegie-Mellon Univeristy, Daniel Polani of the University of
443 Mainz, Marian Slodicka of Slovakia, Kaifu Wu of Pomona, Hidetoshi
444 Shimodaira of the University of Tokyo, Eng Siong of Edinburgh, Hirokawa Rui
445 of the University of Tokyo, Marko Slyz of the University of Michigan, and
446 Brook Milligan of the University of Texas. This list is only partial, and
447 there are many others who have corresponded with us on details about
448 Meschach and the like. Finally our thanks go to all those that have had to
449 struggle with compilers and other things to get Meschach to work.
450
451
452
453
454
+0
-654
interface/src/scilab/src/c/bdfactor.c less more
0
1
2 /**************************************************************************
3 **
4 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
5 **
6 ** Meschach Library
7 **
8 ** This Meschach Library is provided "as is" without any express
9 ** or implied warranty of any kind with respect to this software.
10 ** In particular the authors shall not be liable for any direct,
11 ** indirect, special, incidental or consequential damages arising
12 ** in any way from use of the software.
13 **
14 ** Everyone is granted permission to copy, modify and redistribute this
15 ** Meschach Library, provided:
16 ** 1. All copies contain this copyright notice.
17 ** 2. All modified copies shall carry a notice stating who
18 ** made the last modification and the date of such modification.
19 ** 3. No charge is made for this software or works derived from it.
20 ** This clause shall not be construed as constraining other software
21 ** distributed on the same medium as this software, nor is a
22 ** distribution fee considered a charge.
23 **
24 ***************************************************************************/
25
26
27 /*
28 Band matrix factorisation routines
29 */
30
31 /* bdfactor.c 18/11/93 */
32 static char rcsid[] = "$Id: ";
33
34 #include <stdio.h>
35 #include "matrix2.h"
36 #include <math.h>
37
38
39 /* generate band matrix
40 for a matrix with n columns,
41 lb subdiagonals and ub superdiagonals;
42
43 Way of saving a band of a matrix:
44 first we save subdiagonals (from 0 to lb-1);
45 then main diagonal (in the lb row)
46 and then superdiagonals (from lb+1 to lb+ub)
47 in such a way that the elements which were previously
48 in one column are now also in one column
49 */
50
51 BAND *bd_get(lb,ub,n)
52 int lb, ub, n;
53 {
54 BAND *A;
55
56 if (lb < 0 || ub < 0 || n <= 0)
57 error(E_NEG,"bd_get");
58
59 if ((A = NEW(BAND)) == (BAND *)NULL)
60 error(E_MEM,"bd_get");
61 else if (mem_info_is_on()) {
62 mem_bytes(TYPE_BAND,0,sizeof(BAND));
63 mem_numvar(TYPE_BAND,1);
64 }
65
66 lb = A->lb = min(n-1,lb);
67 ub = A->ub = min(n-1,ub);
68 A->mat = m_get(lb+ub+1,n);
69 return A;
70 }
71
72 int bd_free(A)
73 BAND *A;
74 {
75 if ( A == (BAND *)NULL || A->lb < 0 || A->ub < 0 )
76 /* don't trust it */
77 return (-1);
78
79 if (A->mat) m_free(A->mat);
80
81 if (mem_info_is_on()) {
82 mem_bytes(TYPE_BAND,sizeof(BAND),0);
83 mem_numvar(TYPE_BAND,-1);
84 }
85
86 free((char *)A);
87 return 0;
88 }
89
90
91 /* resize band matrix */
92
93 BAND *bd_resize(A,new_lb,new_ub,new_n)
94 BAND *A;
95 int new_lb,new_ub,new_n;
96 {
97 int lb,ub,i,j,l,shift,umin;
98 Real **Av;
99
100 if (new_lb < 0 || new_ub < 0 || new_n <= 0)
101 error(E_NEG,"bd_resize");
102 if ( ! A )
103 return bd_get(new_lb,new_ub,new_n);
104 if ( A->lb+A->ub+1 > A->mat->m )
105 error(E_INTERN,"bd_resize");
106
107 if ( A->lb == new_lb && A->ub == new_ub && A->mat->n == new_n )
108 return A;
109
110 lb = A->lb;
111 ub = A->ub;
112 Av = A->mat->me;
113 umin = min(ub,new_ub);
114
115 /* ensure that unused triangles at edges are zero'd */
116
117 for ( i = 0; i < lb; i++ )
118 for ( j = A->mat->n - lb + i; j < A->mat->n; j++ )
119 Av[i][j] = 0.0;
120 for ( i = lb+1,l=1; l <= umin; i++,l++ )
121 for ( j = 0; j < l; j++ )
122 Av[i][j] = 0.0;
123
124 new_lb = A->lb = min(new_lb,new_n-1);
125 new_ub = A->ub = min(new_ub,new_n-1);
126 A->mat = m_resize(A->mat,new_lb+new_ub+1,new_n);
127 Av = A->mat->me;
128
129 /* if new_lb != lb then move the rows to get the main diag
130 in the new_lb row */
131
132 if (new_lb > lb) {
133 shift = new_lb-lb;
134
135 for (i=lb+umin, l=i+shift; i >= 0; i--,l--)
136 MEM_COPY(Av[i],Av[l],new_n*sizeof(Real));
137 for (l=shift-1; l >= 0; l--)
138 __zero__(Av[l],new_n);
139 }
140 else if (new_lb < lb) {
141 shift = lb - new_lb;
142
143 for (i=shift, l=0; i <= lb+umin; i++,l++)
144 MEM_COPY(Av[i],Av[l],new_n*sizeof(Real));
145 for (i=lb+umin+1; i <= new_lb+new_ub; i++)
146 __zero__(Av[i],new_n);
147 }
148
149 return A;
150 }
151
152
153
154 BAND *bd_copy(A,B)
155 BAND *A,*B;
156 {
157 int lb,ub,i,j,n;
158
159 if ( !A )
160 error(E_NULL,"bd_copy");
161
162 if (A == B) return B;
163
164 n = A->mat->n;
165 if ( !B )
166 B = bd_get(A->lb,A->ub,n);
167 else if (B->lb != A->lb || B->ub != A->ub || B->mat->n != n )
168 B = bd_resize(B,A->lb,A->ub,n);
169
170 if (A->mat == B->mat) return B;
171 ub = B->ub = A->ub;
172 lb = B->lb = A->lb;
173
174 for ( i=0, j=n-lb; i <= lb; i++, j++ )
175 MEM_COPY(A->mat->me[i],B->mat->me[i],j*sizeof(Real));
176
177 for ( i=lb+1, j=1; i <= lb+ub; i++, j++ )
178 MEM_COPY(A->mat->me[i]+j,B->mat->me[i]+j,(n - j)*sizeof(Real));
179
180 return B;
181 }
182
183
184 /* copy band matrix to a square matrix */
185 MAT *band2mat(bA,A)
186 BAND *bA;
187 MAT *A;
188 {
189 int i,j,l,n,n1;
190 int lb, ub;
191 Real **bmat;
192
193 if ( !bA || !A)
194 error(E_NULL,"band2mat");
195 if ( bA->mat == A )
196 error(E_INSITU,"band2mat");
197
198 ub = bA->ub;
199 lb = bA->lb;
200 n = bA->mat->n;
201 n1 = n-1;
202 bmat = bA->mat->me;
203
204 A = m_resize(A,n,n);
205 m_zero(A);
206
207 for (j=0; j < n; j++)
208 for (i=min(n1,j+lb),l=lb+j-i; i >= max(0,j-ub); i--,l++)
209 A->me[i][j] = bmat[l][j];
210
211 return A;
212 }
213
214 /* copy a square matrix to a band matrix with
215 lb subdiagonals and ub superdiagonals */
216 BAND *mat2band(A,lb,ub,bA)
217 BAND *bA;
218 MAT *A;
219 int lb, ub;
220 {
221 int i, j, l, n1;
222 Real **bmat;
223
224 if (! A || ! bA)
225 error(E_NULL,"mat2band");
226 if (ub < 0 || lb < 0)
227 error(E_SIZES,"mat2band");
228 if (bA->mat == A)
229 error(E_INSITU,"mat2band");
230
231 n1 = A->n-1;
232 lb = min(n1,lb);
233 ub = min(n1,ub);
234 bA = bd_resize(bA,lb,ub,n1+1);
235 bmat = bA->mat->me;
236
237 for (j=0; j <= n1; j++)
238 for (i=min(n1,j+lb),l=lb+j-i; i >= max(0,j-ub); i--,l++)
239 bmat[l][j] = A->me[i][j];
240
241 return bA;
242 }
243
244
245
246 /* transposition of matrix in;
247 out - matrix after transposition;
248 can be done in situ
249 */
250
251 BAND *bd_transp(in,out)
252 BAND *in, *out;
253 {
254 int i, j, jj, l, k, lb, ub, lub, n, n1;
255 int in_situ;
256 Real **in_v, **out_v;
257
258 if ( in == (BAND *)NULL || in->mat == (MAT *)NULL )
259 error(E_NULL,"bd_transp");
260
261 lb = in->lb;
262 ub = in->ub;
263 lub = lb+ub;
264 n = in->mat->n;
265 n1 = n-1;
266
267 in_situ = ( in == out );
268 if ( ! in_situ )
269 out = bd_resize(out,ub,lb,n);
270 else
271 { /* only need to swap lb and ub fields */
272 out->lb = ub;
273 out->ub = lb;
274 }
275
276 in_v = in->mat->me;
277
278 if (! in_situ) {
279 int sh_in,sh_out;
280
281 out_v = out->mat->me;
282 for (i=0, l=lub, k=lb-i; i <= lub; i++,l--,k--) {
283 sh_in = max(-k,0);
284 sh_out = max(k,0);
285 MEM_COPY(&(in_v[i][sh_in]),&(out_v[l][sh_out]),
286 (n-sh_in-sh_out)*sizeof(Real));
287 /**********************************
288 for (j=n1-sh_out, jj=n1-sh_in; j >= sh_in; j--,jj--) {
289 out_v[l][jj] = in_v[i][j];
290 }
291 **********************************/
292 }
293 }
294 else if (ub == lb) {
295 Real tmp;
296
297 for (i=0, l=lub, k=lb-i; i < lb; i++,l--,k--) {
298 for (j=n1-k, jj=n1; j >= 0; j--,jj--) {
299 tmp = in_v[l][jj];
300 in_v[l][jj] = in_v[i][j];
301 in_v[i][j] = tmp;
302 }
303 }
304 }
305 else if (ub > lb) { /* hence i-ub <= 0 & l-lb >= 0 */
306 int p,pp,lbi;
307
308 for (i=0, l=lub; i < (lub+1)/2; i++,l--) {
309 lbi = lb-i;
310 for (j=l-lb, jj=0, p=max(-lbi,0), pp = max(l-ub,0); j <= n1;
311 j++,jj++,p++,pp++) {
312 in_v[l][pp] = in_v[i][p];
313 in_v[i][jj] = in_v[l][j];
314 }
315 for ( ; p <= n1-max(lbi,0); p++,pp++)
316 in_v[l][pp] = in_v[i][p];
317 }
318
319 if (lub%2 == 0) { /* shift only */
320 i = lub/2;
321 for (j=max(i-lb,0), jj=0; jj <= n1-ub+i; j++,jj++)
322 in_v[i][jj] = in_v[i][j];
323 }
324 }
325 else { /* ub < lb, hence ub-l <= 0 & lb-i >= 0 */
326 int p,pp,ubi;
327
328 for (i=0, l=lub; i < (lub+1)/2; i++,l--) {
329 ubi = i-ub;
330 for (j=n1-max(lb-l,0), jj=n1-max(-ubi,0), p=n1-lb+i, pp=n1;
331 p >= 0; j--, jj--, pp--, p--) {
332 in_v[i][jj] = in_v[l][j];
333 in_v[l][pp] = in_v[i][p];
334 }
335 for ( ; jj >= max(ubi,0); j--, jj--)
336 in_v[i][jj] = in_v[l][j];
337 }
338
339 if (lub%2 == 0) { /* shift only */
340 i = lub/2;
341 for (j=n1-lb+i, jj=n1-max(ub-i,0); j >= 0; j--, jj--)
342 in_v[i][jj] = in_v[i][j];
343 }
344 }
345
346 return out;
347 }
348
349
350
351 /* bdLUfactor -- gaussian elimination with partial pivoting
352 -- on entry, the matrix A in band storage with elements
353 in rows 0 to lb+ub;
354 The jth column of A is stored in the jth column of
355 band A (bA) as follows:
356 bA->mat->me[lb+j-i][j] = A->me[i][j] for
357 max(0,j-lb) <= i <= min(A->n-1,j+ub);
358 -- on exit: U is stored as an upper triangular matrix
359 with lb+ub superdiagonals in rows lb to 2*lb+ub,
360 and the matrix L is stored in rows 0 to lb-1.
361 Matrix U is permuted, whereas L is not permuted !!!
362 Therefore we save some memory.
363 */
364 BAND *bdLUfactor(bA,pivot)
365 BAND *bA;
366 PERM *pivot;
367 {
368 int i, j, k, l, n, n1, lb, ub, lub, k_end, k_lub;
369 int i_max, shift;
370 Real **bA_v;
371 Real max1, temp;
372
373 if ( bA==(BAND *)NULL || pivot==(PERM *)NULL )
374 error(E_NULL,"bdLUfactor");
375
376 lb = bA->lb;
377 ub = bA->ub;
378 lub = lb+ub;
379 n = bA->mat->n;
380 n1 = n-1;
381 lub = lb+ub;
382
383 if ( pivot->size != n )
384 error(E_SIZES,"bdLUfactor");
385
386
387 /* initialise pivot with identity permutation */
388 for ( i=0; i < n; i++ )
389 pivot->pe[i] = i;
390
391 /* extend band matrix */
392 /* extended part is filled with zeros */
393 bA = bd_resize(bA,lb,min(n1,lub),n);
394 bA_v = bA->mat->me;
395
396
397 /* main loop */
398
399 for ( k=0; k < n1; k++ )
400 {
401 k_end = max(0,lb+k-n1);
402 k_lub = min(k+lub,n1);
403
404 /* find the best pivot row */
405
406 max1 = 0.0;
407 i_max = -1;
408 for ( i=lb; i >= k_end; i-- ) {
409 temp = fabs(bA_v[i][k]);
410 if ( temp > max1 )
411 { max1 = temp; i_max = i; }
412 }
413
414 /* if no pivot then ignore column k... */
415 if ( i_max == -1 )
416 continue;
417
418 /* do we pivot ? */
419 if ( i_max != lb ) /* yes we do... */
420 {
421 /* save transposition using non-shifted indices */
422 shift = lb-i_max;
423 px_transp(pivot,k+shift,k);
424 for ( i=lb, j=k; j <= k_lub; i++,j++ )
425 {
426 temp = bA_v[i][j];
427 bA_v[i][j] = bA_v[i-shift][j];
428 bA_v[i-shift][j] = temp;
429 }
430 }
431
432 /* row operations */
433 for ( i=lb-1; i >= k_end; i-- ) {
434 temp = bA_v[i][k] /= bA_v[lb][k];
435 shift = lb-i;
436 for ( j=k+1,l=i+1; j <= k_lub; l++,j++ )
437 bA_v[l][j] -= temp*bA_v[l+shift][j];
438 }
439 }
440
441 return bA;
442 }
443
444
445 /* bdLUsolve -- given an LU factorisation in bA, solve bA*x=b */
446 /* pivot is changed upon return */
447 VEC *bdLUsolve(bA,pivot,b,x)
448 BAND *bA;
449 PERM *pivot;
450 VEC *b,*x;
451 {
452 int i,j,l,n,n1,pi,lb,ub,jmin, maxj;
453 Real c;
454 Real **bA_v;
455
456 if ( bA==(BAND *)NULL || b==(VEC *)NULL || pivot==(PERM *)NULL )
457 error(E_NULL,"bdLUsolve");
458 if ( bA->mat->n != b->dim || bA->mat->n != pivot->size)
459 error(E_SIZES,"bdLUsolve");
460
461 lb = bA->lb;
462 ub = bA->ub;
463 n = b->dim;
464 n1 = n-1;
465 bA_v = bA->mat->me;
466
467 x = v_resize(x,b->dim);
468 px_vec(pivot,b,x);
469
470 /* solve Lx = b; implicit diagonal = 1
471 L is not permuted, therefore it must be permuted now
472 */
473
474 px_inv(pivot,pivot);
475 for (j=0; j < n; j++) {
476 jmin = j+1;
477 c = x->ve[j];
478 maxj = max(0,j+lb-n1);
479 for (i=jmin,l=lb-1; l >= maxj; i++,l--) {
480 if ( (pi = pivot->pe[i]) < jmin)
481 pi = pivot->pe[i] = pivot->pe[pi];
482 x->ve[pi] -= bA_v[l][j]*c;
483 }
484 }
485
486 /* solve Ux = b; explicit diagonal */
487
488 x->ve[n1] /= bA_v[lb][n1];
489 for (i=n-2; i >= 0; i--) {
490 c = x->ve[i];
491 for (j=min(n1,i+ub), l=lb+j-i; j > i; j--,l--)
492 c -= bA_v[l][j]*x->ve[j];
493 x->ve[i] = c/bA_v[lb][i];
494 }
495
496 return (x);
497 }
498
499 /* LDLfactor -- L.D.L' factorisation of A in-situ;
500 A is a band matrix
501 it works using only lower bandwidth & main diagonal
502 so it is possible to set A->ub = 0
503 */
504
505 BAND *bdLDLfactor(A)
506 BAND *A;
507 {
508 int i,j,k,n,n1,lb,ki,jk,ji,lbkm,lbkp;
509 Real **Av;
510 Real c, cc;
511
512 if ( ! A )
513 error(E_NULL,"bdLDLfactor");
514
515 if (A->lb == 0) return A;
516
517 lb = A->lb;
518 n = A->mat->n;
519 n1 = n-1;
520 Av = A->mat->me;
521
522 for (k=0; k < n; k++) {
523 lbkm = lb-k;
524 lbkp = lb+k;
525
526 /* matrix D */
527 c = Av[lb][k];
528 for (j=max(0,-lbkm), jk=lbkm+j; j < k; j++, jk++) {
529 cc = Av[jk][j];
530 c -= Av[lb][j]*cc*cc;
531 }
532 if (c == 0.0)
533 error(E_SING,"bdLDLfactor");
534 Av[lb][k] = c;
535
536 /* matrix L */
537
538 for (i=min(n1,lbkp), ki=lbkp-i; i > k; i--,ki++) {
539 c = Av[ki][k];
540 for (j=max(0,i-lb), ji=lb+j-i, jk=lbkm+j; j < k;
541 j++, ji++, jk++)
542 c -= Av[lb][j]*Av[ji][j]*Av[jk][j];
543 Av[ki][k] = c/Av[lb][k];
544 }
545 }
546
547 return A;
548 }
549
550 /* solve A*x = b, where A is factorized by
551 Choleski LDL^T factorization */
552 VEC *bdLDLsolve(A,b,x)
553 BAND *A;
554 VEC *b, *x;
555 {
556 int i,j,l,n,n1,lb,ilb;
557 Real **Av, *Avlb;
558 Real c;
559
560 if ( ! A || ! b )
561 error(E_NULL,"bdLDLsolve");
562 if ( A->mat->n != b->dim )
563 error(E_SIZES,"bdLDLsolve");
564
565 n = A->mat->n;
566 n1 = n-1;
567 x = v_resize(x,n);
568 lb = A->lb;
569 Av = A->mat->me;
570 Avlb = Av[lb];
571
572 /* solve L*y = b */
573 x->ve[0] = b->ve[0];
574 for (i=1; i < n; i++) {
575 ilb = i-lb;
576 c = b->ve[i];
577 for (j=max(0,ilb), l=j-ilb; j < i; j++,l++)
578 c -= Av[l][j]*x->ve[j];
579 x->ve[i] = c;
580 }
581
582 /* solve D*z = y */
583 for (i=0; i < n; i++)
584 x->ve[i] /= Avlb[i];
585
586 /* solve L^T*x = z */
587 for (i=n-2; i >= 0; i--) {
588 ilb = i+lb;
589 c = x->ve[i];
590 for (j=min(n1,ilb), l=ilb-j; j > i; j--,l++)
591 c -= Av[l][i]*x->ve[j];
592 x->ve[i] = c;
593 }
594
595 return x;
596 }
597
598
599 /* ******************************************************
600 This function is a contribution from Ruediger Franke.
601 His e-mail addres is: Ruediger.Franke@rz.tu-ilmenau.de
602
603 ******************************************************
604 */
605
606 /* bd_mv_mlt --
607 * computes out = A * x
608 * may not work in situ (x != out)
609 */
610
611 VEC *bd_mv_mlt(A, x, out)
612 BAND *A;
613 VEC *x, *out;
614 {
615 int i, j, j_end, k;
616 int start_idx, end_idx;
617 int n, m, lb, ub;
618 Real **A_me;
619 Real *x_ve;
620 Real sum;
621
622 if (!A || !x)
623 error(E_NULL,"bd_mv_mlt");
624 if (x->dim != A->mat->n)
625 error(E_SIZES,"bd_mv_mlt");
626 if (!out || out->dim != A->mat->n)
627 out = v_resize(out, A->mat->n);
628 if (out == x)
629 error(E_INSITU,"bd_mv_mlt");
630
631 n = A->mat->n;
632 m = A->mat->m;
633 lb = A->lb;
634 ub = A->ub;
635 A_me = A->mat->me;
636 start_idx = lb;
637 end_idx = m + n-1 - ub;
638 for (i=0; i<n; i++, start_idx--, end_idx--) {
639 j = max(0, start_idx);
640 k = max(0, -start_idx);
641 j_end = min(m, end_idx);
642 x_ve = x->ve + k;
643 sum = 0.0;
644 for (; j < j_end; j++, k++)
645 sum += A_me[j][k] * *x_ve++;
646 out->ve[i] = sum;
647 }
648
649 return out;
650 }
651
652
653
+0
-311
interface/src/scilab/src/c/bkpfacto.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Matrix factorisation routines to work with the other matrix files.
28 */
29
30 static char rcsid[] = "$Id: bkpfacto.c 3690 2010-09-02 09:55:19Z lsaavedr $";
31
32 #include <stdio.h>
33 #include "matrix.h"
34 #include "matrix2.h"
35 #include <math.h>
36
37 #define btos(x) ((x) ? "TRUE" : "FALSE")
38
39 /* Most matrix factorisation routines are in-situ unless otherwise specified */
40
41 #define alpha 0.6403882032022076 /* = (1+sqrt(17))/8 */
42
43 /* sqr -- returns square of x -- utility function */
44 double sqr(x)
45 double x;
46 { return x*x; }
47
48 /* interchange -- a row/column swap routine */
49 static void interchange(A,i,j)
50 MAT *A; /* assumed != NULL & also SQUARE */
51 int i, j; /* assumed in range */
52 {
53 Real **A_me, tmp;
54 int k, n;
55
56 A_me = A->me; n = A->n;
57 if ( i == j )
58 return;
59 if ( i > j )
60 { k = i; i = j; j = k; }
61 for ( k = 0; k < i; k++ )
62 {
63 /* tmp = A_me[k][i]; */
64 tmp = m_entry(A,k,i);
65 /* A_me[k][i] = A_me[k][j]; */
66 m_set_val(A,k,i,m_entry(A,k,j));
67 /* A_me[k][j] = tmp; */
68 m_set_val(A,k,j,tmp);
69 }
70 for ( k = j+1; k < n; k++ )
71 {
72 /* tmp = A_me[j][k]; */
73 tmp = m_entry(A,j,k);
74 /* A_me[j][k] = A_me[i][k]; */
75 m_set_val(A,j,k,m_entry(A,i,k));
76 /* A_me[i][k] = tmp; */
77 m_set_val(A,i,k,tmp);
78 }
79 for ( k = i+1; k < j; k++ )
80 {
81 /* tmp = A_me[k][j]; */
82 tmp = m_entry(A,k,j);
83 /* A_me[k][j] = A_me[i][k]; */
84 m_set_val(A,k,j,m_entry(A,i,k));
85 /* A_me[i][k] = tmp; */
86 m_set_val(A,i,k,tmp);
87 }
88 /* tmp = A_me[i][i]; */
89 tmp = m_entry(A,i,i);
90 /* A_me[i][i] = A_me[j][j]; */
91 m_set_val(A,i,i,m_entry(A,j,j));
92 /* A_me[j][j] = tmp; */
93 m_set_val(A,j,j,tmp);
94 }
95
96 /* BKPfactor -- Bunch-Kaufman-Parlett factorisation of A in-situ
97 -- A is factored into the form P'AP = MDM' where
98 P is a permutation matrix, M lower triangular and D is block
99 diagonal with blocks of size 1 or 2
100 -- P is stored in pivot; blocks[i]==i iff D[i][i] is a block */
101 MAT *BKPfactor(A,pivot,blocks)
102 MAT *A;
103 PERM *pivot, *blocks;
104 {
105 int i, j, k, n, onebyone, r;
106 Real **A_me, aii, aip1, aip1i, lambda, sigma, tmp;
107 Real det, s, t;
108
109 if ( ! A || ! pivot || ! blocks )
110 error(E_NULL,"BKPfactor");
111 if ( A->m != A->n )
112 error(E_SQUARE,"BKPfactor");
113 if ( A->m != pivot->size || pivot->size != blocks->size )
114 error(E_SIZES,"BKPfactor");
115
116 n = A->n;
117 A_me = A->me;
118 px_ident(pivot); px_ident(blocks);
119
120 for ( i = 0; i < n; i = onebyone ? i+1 : i+2 )
121 {
122 /* printf("# Stage: %d\n",i); */
123 aii = fabs(m_entry(A,i,i));
124 lambda = 0.0; r = (i+1 < n) ? i+1 : i;
125 for ( k = i+1; k < n; k++ )
126 {
127 tmp = fabs(m_entry(A,i,k));
128 if ( tmp >= lambda )
129 {
130 lambda = tmp;
131 r = k;
132 }
133 }
134 /* printf("# lambda = %g, r = %d\n", lambda, r); */
135 /* printf("# |A[%d][%d]| = %g\n",r,r,fabs(m_entry(A,r,r))); */
136
137 /* determine if 1x1 or 2x2 block, and do pivoting if needed */
138 if ( aii >= alpha*lambda )
139 {
140 onebyone = TRUE;
141 goto dopivot;
142 }
143 /* compute sigma */
144 sigma = 0.0;
145 for ( k = i; k < n; k++ )
146 {
147 if ( k == r )
148 continue;
149 tmp = ( k > r ) ? fabs(m_entry(A,r,k)) :
150 fabs(m_entry(A,k,r));
151 if ( tmp > sigma )
152 sigma = tmp;
153 }
154 if ( aii*sigma >= alpha*sqr(lambda) )
155 onebyone = TRUE;
156 else if ( fabs(m_entry(A,r,r)) >= alpha*sigma )
157 {
158 /* printf("# Swapping rows/cols %d and %d\n",i,r); */
159 interchange(A,i,r);
160 px_transp(pivot,i,r);
161 onebyone = TRUE;
162 }
163 else
164 {
165 /* printf("# Swapping rows/cols %d and %d\n",i+1,r); */
166 interchange(A,i+1,r);
167 px_transp(pivot,i+1,r);
168 px_transp(blocks,i,i+1);
169 onebyone = FALSE;
170 }
171 /* printf("onebyone = %s\n",btos(onebyone)); */
172 /* printf("# Matrix so far (@checkpoint A) =\n"); */
173 /* m_output(A); */
174 /* printf("# pivot =\n"); px_output(pivot); */
175 /* printf("# blocks =\n"); px_output(blocks); */
176
177 dopivot:
178 if ( onebyone )
179 { /* do one by one block */
180 if ( m_entry(A,i,i) != 0.0 )
181 {
182 aii = m_entry(A,i,i);
183 for ( j = i+1; j < n; j++ )
184 {
185 tmp = m_entry(A,i,j)/aii;
186 for ( k = j; k < n; k++ )
187 m_sub_val(A,j,k,tmp*m_entry(A,i,k));
188 m_set_val(A,i,j,tmp);
189 }
190 }
191 }
192 else /* onebyone == FALSE */
193 { /* do two by two block */
194 det = m_entry(A,i,i)*m_entry(A,i+1,i+1)-sqr(m_entry(A,i,i+1));
195 /* Must have det < 0 */
196 /* printf("# det = %g\n",det); */
197 aip1i = m_entry(A,i,i+1)/det;
198 aii = m_entry(A,i,i)/det;
199 aip1 = m_entry(A,i+1,i+1)/det;
200 for ( j = i+2; j < n; j++ )
201 {
202 s = - aip1i*m_entry(A,i+1,j) + aip1*m_entry(A,i,j);
203 t = - aip1i*m_entry(A,i,j) + aii*m_entry(A,i+1,j);
204 for ( k = j; k < n; k++ )
205 m_sub_val(A,j,k,m_entry(A,i,k)*s + m_entry(A,i+1,k)*t);
206 m_set_val(A,i,j,s);
207 m_set_val(A,i+1,j,t);
208 }
209 }
210 /* printf("# Matrix so far (@checkpoint B) =\n"); */
211 /* m_output(A); */
212 /* printf("# pivot =\n"); px_output(pivot); */
213 /* printf("# blocks =\n"); px_output(blocks); */
214 }
215
216 /* set lower triangular half */
217 for ( i = 0; i < A->m; i++ )
218 for ( j = 0; j < i; j++ )
219 m_set_val(A,i,j,m_entry(A,j,i));
220
221 return A;
222 }
223
224 /* BKPsolve -- solves A.x = b where A has been factored a la BKPfactor()
225 -- returns x, which is created if NULL */
226 VEC *BKPsolve(A,pivot,block,b,x)
227 MAT *A;
228 PERM *pivot, *block;
229 VEC *b, *x;
230 {
231 static VEC *tmp=VNULL; /* dummy storage needed */
232 int i, j, n, onebyone;
233 Real **A_me, a11, a12, a22, b1, b2, det, sum, *tmp_ve, tmp_diag;
234
235 if ( ! A || ! pivot || ! block || ! b )
236 error(E_NULL,"BKPsolve");
237 if ( A->m != A->n )
238 error(E_SQUARE,"BKPsolve");
239 n = A->n;
240 if ( b->dim != n || pivot->size != n || block->size != n )
241 error(E_SIZES,"BKPsolve");
242 x = v_resize(x,n);
243 tmp = v_resize(tmp,n);
244 MEM_STAT_REG(tmp,TYPE_VEC);
245
246 A_me = A->me; tmp_ve = tmp->ve;
247
248 px_vec(pivot,b,tmp);
249 /* solve for lower triangular part */
250 for ( i = 0; i < n; i++ )
251 {
252 sum = v_entry(tmp,i);
253 if ( block->pe[i] < i )
254 for ( j = 0; j < i-1; j++ )
255 sum -= m_entry(A,i,j)*v_entry(tmp,j);
256 else
257 for ( j = 0; j < i; j++ )
258 sum -= m_entry(A,i,j)*v_entry(tmp,j);
259 v_set_val(tmp,i,sum);
260 }
261 /* printf("# BKPsolve: solving L part: tmp =\n"); v_output(tmp); */
262 /* solve for diagonal part */
263 for ( i = 0; i < n; i = onebyone ? i+1 : i+2 )
264 {
265 onebyone = ( block->pe[i] == i );
266 if ( onebyone )
267 {
268 tmp_diag = m_entry(A,i,i);
269 if ( tmp_diag == 0.0 )
270 error(E_SING,"BKPsolve");
271 /* tmp_ve[i] /= tmp_diag; */
272 v_set_val(tmp,i,v_entry(tmp,i) / tmp_diag);
273 }
274 else
275 {
276 a11 = m_entry(A,i,i);
277 a22 = m_entry(A,i+1,i+1);
278 a12 = m_entry(A,i+1,i);
279 b1 = v_entry(tmp,i); b2 = v_entry(tmp,i+1);
280 det = a11*a22-a12*a12; /* < 0 : see BKPfactor() */
281 if ( det == 0.0 )
282 error(E_SING,"BKPsolve");
283 det = 1/det;
284 v_set_val(tmp,i,det*(a22*b1-a12*b2));
285 v_set_val(tmp,i+1,det*(a11*b2-a12*b1));
286 }
287 }
288 /* printf("# BKPsolve: solving D part: tmp =\n"); v_output(tmp); */
289 /* solve for transpose of lower traingular part */
290 for ( i = n-1; i >= 0; i-- )
291 { /* use symmetry of factored form to get stride 1 */
292 sum = v_entry(tmp,i);
293 if ( block->pe[i] > i )
294 for ( j = i+2; j < n; j++ )
295 sum -= m_entry(A,i,j)*v_entry(tmp,j);
296 else
297 for ( j = i+1; j < n; j++ )
298 sum -= m_entry(A,i,j)*v_entry(tmp,j);
299 v_set_val(tmp,i,sum);
300 }
301
302 /* printf("# BKPsolve: solving L^T part: tmp =\n");v_output(tmp); */
303 /* and do final permutation */
304 x = pxinv_vec(pivot,tmp,x);
305
306 return x;
307 }
308
309
310
+0
-35
interface/src/scilab/src/c/builder_c.sce less more
0 // ====================================================================
1 // Copyright 2009
2 // Yann COLLETTE
3 // This file is released into the public domain
4 // ====================================================================
5
6 sparsecomp_path = get_absolute_file_path('builder_c.sce');
7
8 Files = ['bdfactor.c','hessen.c','machine.c','spchfctr.c', ...
9 'bkpfacto.c','hsehldr.c','matlab.c','norm.c','splufctr.c','update.c', ...
10 'chfactor.c','init.c','matop.c','otherio.c','sprow.c','vecop.c', ...
11 'copy.c','matrixio.c','pxop.c','spswap.c','version.c', ...
12 'iter0.c','qrfactor.c','err.c','iternsym.c','meminfo.c','schur.c','submat.c', ...
13 'extras.c','itersym.c','memory.c','solve.c','svd.c', ...
14 'fft.c','memstat.c','sparse.c','symmeig.c', ...
15 'ivecop.c','sparseio.c','givens.c','lufactor.c','mfunc.c','spbkp.c', ...
16 'zcopy.c','zhessen.c','zmachine.c','zmatop.c','zqrfctr.c','zvecop.c', ...
17 'zfunc.c','zhsehldr.c','zmatio.c','zmemory.c','zschur.c', ...
18 'zgivens.c','zlufctr.c','zmatlab.c','znorm.c','zsolve.c'];
19 Symbols = ['sp_get','sp_set_val','spICHfactor','sp_col_access','spILUfactor','iter_spcgne', ...
20 'iter_spcgs','iter_spgmres','iter_spmgcr','spCHfactor','spILUfactor','spLUfactor',...
21 'spLUsolve','v_set_val','v_free','sp_free','v_get','restart'];
22
23 libs = [];
24 ldflags = '';
25
26 if getos()=='Windows' then
27 cflags = '/I' + sparsecomp_path + ' /I' + sparsecomp_path + '/MACHINES/GCC /DHAVE_CONFIG_H';
28 else
29 cflags = '-I' + sparsecomp_path + ' -I' + sparsecomp_path + '/MACHINES/GCC -DHAVE_CONFIG_H';
30 end
31
32 tbx_build_src(Symbols, Files, 'c', sparsecomp_path, libs, ldflags, cflags);
33
34 clear tbx_build_src;
+0
-217
interface/src/scilab/src/c/chfactor.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Matrix factorisation routines to work with the other matrix files.
28 */
29
30 /* CHfactor.c 1.2 11/25/87 */
31 static char rcsid[] = "$Id: chfactor.c 3690 2010-09-02 09:55:19Z lsaavedr $";
32
33 #include <stdio.h>
34 #include "matrix.h"
35 #include "matrix2.h"
36 #include <math.h>
37
38
39 /* Most matrix factorisation routines are in-situ unless otherwise specified */
40
41 /* CHfactor -- Cholesky L.L' factorisation of A in-situ */
42 MAT *CHfactor(A)
43 MAT *A;
44 {
45 u_int i, j, k, n;
46 Real **A_ent, *A_piv, *A_row, sum, tmp;
47
48 if ( A==(MAT *)NULL )
49 error(E_NULL,"CHfactor");
50 if ( A->m != A->n )
51 error(E_SQUARE,"CHfactor");
52 n = A->n; A_ent = A->me;
53
54 for ( k=0; k<n; k++ )
55 {
56 /* do diagonal element */
57 sum = A_ent[k][k];
58 A_piv = A_ent[k];
59 for ( j=0; j<k; j++ )
60 {
61 /* tmp = A_ent[k][j]; */
62 tmp = *A_piv++;
63 sum -= tmp*tmp;
64 }
65 if ( sum <= 0.0 )
66 error(E_POSDEF,"CHfactor");
67 A_ent[k][k] = sqrt(sum);
68
69 /* set values of column k */
70 for ( i=k+1; i<n; i++ )
71 {
72 sum = A_ent[i][k];
73 A_piv = A_ent[k];
74 A_row = A_ent[i];
75 sum -= __ip__(A_row,A_piv,(int)k);
76 /************************************************
77 for ( j=0; j<k; j++ )
78 sum -= A_ent[i][j]*A_ent[k][j];
79 sum -= (*A_row++)*(*A_piv++);
80 ************************************************/
81 A_ent[j][i] = A_ent[i][j] = sum/A_ent[k][k];
82 }
83 }
84
85 return (A);
86 }
87
88
89 /* CHsolve -- given a CHolesky factorisation in A, solve A.x=b */
90 VEC *CHsolve(A,b,x)
91 MAT *A;
92 VEC *b,*x;
93 {
94 if ( A==(MAT *)NULL || b==(VEC *)NULL )
95 error(E_NULL,"CHsolve");
96 if ( A->m != A->n || A->n != b->dim )
97 error(E_SIZES,"CHsolve");
98 x = v_resize(x,b->dim);
99 Lsolve(A,b,x,0.0);
100 Usolve(A,x,x,0.0);
101
102 return (x);
103 }
104
105 /* LDLfactor -- L.D.L' factorisation of A in-situ */
106 MAT *LDLfactor(A)
107 MAT *A;
108 {
109 u_int i, k, n, p;
110 Real **A_ent;
111 Real d, sum;
112 static VEC *r = VNULL;
113
114 if ( ! A )
115 error(E_NULL,"LDLfactor");
116 if ( A->m != A->n )
117 error(E_SQUARE,"LDLfactor");
118 n = A->n; A_ent = A->me;
119 r = v_resize(r,n);
120 MEM_STAT_REG(r,TYPE_VEC);
121
122 for ( k = 0; k < n; k++ )
123 {
124 sum = 0.0;
125 for ( p = 0; p < k; p++ )
126 {
127 r->ve[p] = A_ent[p][p]*A_ent[k][p];
128 sum += r->ve[p]*A_ent[k][p];
129 }
130 d = A_ent[k][k] -= sum;
131
132 if ( d == 0.0 )
133 error(E_SING,"LDLfactor");
134 for ( i = k+1; i < n; i++ )
135 {
136 sum = __ip__(A_ent[i],r->ve,(int)k);
137 /****************************************
138 sum = 0.0;
139 for ( p = 0; p < k; p++ )
140 sum += A_ent[i][p]*r->ve[p];
141 ****************************************/
142 A_ent[i][k] = (A_ent[i][k] - sum)/d;
143 }
144 }
145
146 return A;
147 }
148
149 VEC *LDLsolve(LDL,b,x)
150 MAT *LDL;
151 VEC *b, *x;
152 {
153 if ( ! LDL || ! b )
154 error(E_NULL,"LDLsolve");
155 if ( LDL->m != LDL->n )
156 error(E_SQUARE,"LDLsolve");
157 if ( LDL->m != b->dim )
158 error(E_SIZES,"LDLsolve");
159 x = v_resize(x,b->dim);
160
161 Lsolve(LDL,b,x,1.0);
162 Dsolve(LDL,x,x);
163 LTsolve(LDL,x,x,1.0);
164
165 return x;
166 }
167
168 /* MCHfactor -- Modified Cholesky L.L' factorisation of A in-situ */
169 MAT *MCHfactor(A,tol)
170 MAT *A;
171 double tol;
172 {
173 u_int i, j, k, n;
174 Real **A_ent, *A_piv, *A_row, sum, tmp;
175
176 if ( A==(MAT *)NULL )
177 error(E_NULL,"MCHfactor");
178 if ( A->m != A->n )
179 error(E_SQUARE,"MCHfactor");
180 if ( tol <= 0.0 )
181 error(E_RANGE,"MCHfactor");
182 n = A->n; A_ent = A->me;
183
184 for ( k=0; k<n; k++ )
185 {
186 /* do diagonal element */
187 sum = A_ent[k][k];
188 A_piv = A_ent[k];
189 for ( j=0; j<k; j++ )
190 {
191 /* tmp = A_ent[k][j]; */
192 tmp = *A_piv++;
193 sum -= tmp*tmp;
194 }
195 if ( sum <= tol )
196 sum = tol;
197 A_ent[k][k] = sqrt(sum);
198
199 /* set values of column k */
200 for ( i=k+1; i<n; i++ )
201 {
202 sum = A_ent[i][k];
203 A_piv = A_ent[k];
204 A_row = A_ent[i];
205 sum -= __ip__(A_row,A_piv,(int)k);
206 /************************************************
207 for ( j=0; j<k; j++ )
208 sum -= A_ent[i][j]*A_ent[k][j];
209 sum -= (*A_row++)*(*A_piv++);
210 ************************************************/
211 A_ent[j][i] = A_ent[i][j] = sum/A_ent[k][k];
212 }
213 }
214
215 return (A);
216 }
+0
-18
interface/src/scilab/src/c/cleaner.sce less more
0 // This file is released under the 3-clause BSD license. See COPYING-BSD.
1 // Generated by builder.sce : Please, do not edit this file
2 // cleaner.sce
3 // ------------------------------------------------------
4 curdir = pwd();
5 cleaner_path = get_file_path('cleaner.sce');
6 chdir(cleaner_path);
7 // ------------------------------------------------------
8 if fileinfo('loader.sce') <> [] then
9 mdelete('loader.sce');
10 end
11 // ------------------------------------------------------
12 if fileinfo('libsp_get.so') <> [] then
13 mdelete('libsp_get.so');
14 end
15 // ------------------------------------------------------
16 chdir(curdir);
17 // ------------------------------------------------------
+0
-962
interface/src/scilab/src/c/configure less more
0 #!/bin/sh
1 # Guess values for system-dependent variables and create Makefiles.
2 # Generated automatically using autoconf.
3 # Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
4
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2, or (at your option)
8 # any later version.
9
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
14
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18
19 # Usage: configure [--srcdir=DIR] [--host=HOST] [--gas] [--nfp] [--no-create]
20 # [--prefix=PREFIX] [--exec-prefix=PREFIX] [--with-PACKAGE] [TARGET]
21 # Ignores all args except --srcdir, --prefix, --exec-prefix, --no-create, and
22 # --with-PACKAGE unless this script has special code to handle it.
23
24
25 for arg
26 do
27 # Handle --exec-prefix with a space before the argument.
28 if test x$next_exec_prefix = xyes; then exec_prefix=$arg; next_exec_prefix=
29 # Handle --host with a space before the argument.
30 elif test x$next_host = xyes; then next_host=
31 # Handle --prefix with a space before the argument.
32 elif test x$next_prefix = xyes; then prefix=$arg; next_prefix=
33 # Handle --srcdir with a space before the argument.
34 elif test x$next_srcdir = xyes; then srcdir=$arg; next_srcdir=
35 else
36 case $arg in
37 # For backward compatibility, also recognize exact --exec_prefix.
38 -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* | --exe=* | --ex=* | --e=*)
39 exec_prefix=`echo $arg | sed 's/[-a-z_]*=//'` ;;
40 -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e)
41 next_exec_prefix=yes ;;
42
43 -gas | --gas | --ga | --g) ;;
44
45 -host=* | --host=* | --hos=* | --ho=* | --h=*) ;;
46 -host | --host | --hos | --ho | --h)
47 next_host=yes ;;
48
49 -nfp | --nfp | --nf) ;;
50
51 -no-create | --no-create | --no-creat | --no-crea | --no-cre | --no-cr | --no-c | --no- | --no)
52 no_create=1 ;;
53
54 -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
55 prefix=`echo $arg | sed 's/[-a-z_]*=//'` ;;
56 -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
57 next_prefix=yes ;;
58
59 -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=* | --s=*)
60 srcdir=`echo $arg | sed 's/[-a-z_]*=//'` ;;
61 -srcdir | --srcdir | --srcdi | --srcd | --src | --sr | --s)
62 next_srcdir=yes ;;
63
64 -with-* | --with-*)
65 package=`echo $arg|sed 's/-*with-//'`
66 # Delete all the valid chars; see if any are left.
67 if test -n "`echo $package|sed 's/[-a-zA-Z0-9_]*//g'`"; then
68 echo "configure: $package: invalid package name" >&2; exit 1
69 fi
70 eval "with_`echo $package|sed s/-/_/g`=1" ;;
71
72 -v | -verbose | --verbose | --verbos | --verbo | --verb | --ver | --ve | --v)
73 verbose=yes ;;
74
75 *) ;;
76 esac
77 fi
78 done
79
80 trap 'rm -f conftest* core; exit 1' 1 3 15
81
82 # Needed for some versions of `tr' so that character classes in `[]' work.
83 if test "${LANG+set}" = "set" ; then
84 LANG=C
85 fi
86
87 rm -f conftest*
88 compile='${CC-cc} $CFLAGS $DEFS conftest.c -o conftest $LIBS >/dev/null 2>&1'
89
90 # A filename unique to this package, relative to the directory that
91 # configure is in, which we can look for to find out if srcdir is correct.
92 unique_file=err.c
93
94 # Find the source files, if location was not specified.
95 if test -z "$srcdir"; then
96 srcdirdefaulted=yes
97 # Try the directory containing this script, then `..'.
98 prog=$0
99 confdir=`echo $prog|sed 's%/[^/][^/]*$%%'`
100 test "X$confdir" = "X$prog" && confdir=.
101 srcdir=$confdir
102 if test ! -r $srcdir/$unique_file; then
103 srcdir=..
104 fi
105 fi
106 if test ! -r $srcdir/$unique_file; then
107 if test x$srcdirdefaulted = xyes; then
108 echo "configure: Can not find sources in \`${confdir}' or \`..'." 1>&2
109 else
110 echo "configure: Can not find sources in \`${srcdir}'." 1>&2
111 fi
112 exit 1
113 fi
114 # Preserve a srcdir of `.' to avoid automounter screwups with pwd.
115 # But we can't avoid them for `..', to make subdirectories work.
116 case $srcdir in
117 .|/*|~*) ;;
118 *) srcdir=`cd $srcdir; pwd` ;; # Make relative path absolute.
119 esac
120
121
122 PROGS=""
123 if test -z "$CC"; then
124 # Extract the first word of `acc', so it can be a program name with args.
125 set dummy acc; word=$2
126 echo checking for $word
127 IFS="${IFS= }"; saveifs="$IFS"; IFS="${IFS}:"
128 for dir in $PATH; do
129 test -z "$dir" && dir=.
130 if test -f $dir/$word; then
131 CC="acc"
132 break
133 fi
134 done
135 IFS="$saveifs"
136 fi
137 test -z "$CC" && CC=""""
138 test -n "$CC" -a -n "$verbose" && echo " setting CC to $CC"
139
140 if test -z "$CC"; then
141 # Extract the first word of `cc', so it can be a program name with args.
142 set dummy cc; word=$2
143 echo checking for $word
144 IFS="${IFS= }"; saveifs="$IFS"; IFS="${IFS}:"
145 for dir in $PATH; do
146 test -z "$dir" && dir=.
147 if test -f $dir/$word; then
148 CC="cc"
149 break
150 fi
151 done
152 IFS="$saveifs"
153 fi
154 test -z "$CC" && CC="gcc"
155 test -n "$CC" -a -n "$verbose" && echo " setting CC to $CC"
156
157 echo checking how to run the C preprocessor
158 if test -z "$CPP"; then
159 CPP='${CC-cc} -E'
160 cat > conftest.c <<EOF
161 #include <stdio.h>
162 EOF
163 err=`eval "($CPP \$DEFS conftest.c >/dev/null) 2>&1"`
164 if test -z "$err"; then
165 :
166 else
167 CPP=/lib/cpp
168 fi
169 rm -f conftest*
170 fi
171
172 echo checking for AIX
173 cat > conftest.c <<EOF
174 #ifdef _AIX
175 yes
176 #endif
177
178 EOF
179 eval "$CPP \$DEFS conftest.c > conftest.out 2>&1"
180 if egrep "yes" conftest.out >/dev/null 2>&1; then
181 {
182 test -n "$verbose" && \
183 echo ' defining' _ALL_SOURCE
184 DEFS="$DEFS -D_ALL_SOURCE=1"
185 SEDDEFS="${SEDDEFS}\${SEDdA}_ALL_SOURCE\${SEDdB}_ALL_SOURCE\${SEDdC}1\${SEDdD}
186 \${SEDuA}_ALL_SOURCE\${SEDuB}_ALL_SOURCE\${SEDuC}1\${SEDuD}
187 \${SEDeA}_ALL_SOURCE\${SEDeB}_ALL_SOURCE\${SEDeC}1\${SEDeD}
188 "
189 }
190
191 fi
192 rm -f conftest*
193
194
195 echo checking for minix/config.h
196 cat > conftest.c <<EOF
197 #include <minix/config.h>
198 EOF
199 err=`eval "($CPP \$DEFS conftest.c >/dev/null) 2>&1"`
200 if test -z "$err"; then
201 MINIX=1
202 fi
203 rm -f conftest*
204
205 # The Minix shell can't assign to the same variable on the same line!
206 if test -n "$MINIX"; then
207 {
208 test -n "$verbose" && \
209 echo ' defining' _POSIX_SOURCE
210 DEFS="$DEFS -D_POSIX_SOURCE=1"
211 SEDDEFS="${SEDDEFS}\${SEDdA}_POSIX_SOURCE\${SEDdB}_POSIX_SOURCE\${SEDdC}1\${SEDdD}
212 \${SEDuA}_POSIX_SOURCE\${SEDuB}_POSIX_SOURCE\${SEDuC}1\${SEDuD}
213 \${SEDeA}_POSIX_SOURCE\${SEDeB}_POSIX_SOURCE\${SEDeC}1\${SEDeD}
214 "
215 }
216
217 {
218 test -n "$verbose" && \
219 echo ' defining' _POSIX_1_SOURCE to be '2'
220 DEFS="$DEFS -D_POSIX_1_SOURCE=2"
221 SEDDEFS="${SEDDEFS}\${SEDdA}_POSIX_1_SOURCE\${SEDdB}_POSIX_1_SOURCE\${SEDdC}2\${SEDdD}
222 \${SEDuA}_POSIX_1_SOURCE\${SEDuB}_POSIX_1_SOURCE\${SEDuC}2\${SEDuD}
223 \${SEDeA}_POSIX_1_SOURCE\${SEDeB}_POSIX_1_SOURCE\${SEDeC}2\${SEDeD}
224 "
225 }
226
227 {
228 test -n "$verbose" && \
229 echo ' defining' _MINIX
230 DEFS="$DEFS -D_MINIX=1"
231 SEDDEFS="${SEDDEFS}\${SEDdA}_MINIX\${SEDdB}_MINIX\${SEDdC}1\${SEDdD}
232 \${SEDuA}_MINIX\${SEDuB}_MINIX\${SEDuC}1\${SEDuD}
233 \${SEDeA}_MINIX\${SEDeB}_MINIX\${SEDeC}1\${SEDeD}
234 "
235 }
236
237 fi
238
239 echo checking for POSIXized ISC
240 if test -d /etc/conf/kconfig.d &&
241 grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
242 then
243 ISC=1 # If later tests want to check for ISC.
244 {
245 test -n "$verbose" && \
246 echo ' defining' _POSIX_SOURCE
247 DEFS="$DEFS -D_POSIX_SOURCE=1"
248 SEDDEFS="${SEDDEFS}\${SEDdA}_POSIX_SOURCE\${SEDdB}_POSIX_SOURCE\${SEDdC}1\${SEDdD}
249 \${SEDuA}_POSIX_SOURCE\${SEDuB}_POSIX_SOURCE\${SEDuC}1\${SEDuD}
250 \${SEDeA}_POSIX_SOURCE\${SEDeB}_POSIX_SOURCE\${SEDeC}1\${SEDeD}
251 "
252 }
253
254 if test -n "$GCC"; then
255 CC="$CC -posix"
256 else
257 CC="$CC -Xp"
258 fi
259 fi
260
261 if test -z "$RANLIB"; then
262 # Extract the first word of `ranlib', so it can be a program name with args.
263 set dummy ranlib; word=$2
264 echo checking for $word
265 IFS="${IFS= }"; saveifs="$IFS"; IFS="${IFS}:"
266 for dir in $PATH; do
267 test -z "$dir" && dir=.
268 if test -f $dir/$word; then
269 RANLIB="ranlib"
270 break
271 fi
272 done
273 IFS="$saveifs"
274 fi
275 test -z "$RANLIB" && RANLIB=":"
276 test -n "$RANLIB" -a -n "$verbose" && echo " setting RANLIB to $RANLIB"
277
278 for hdr in memory.h
279 do
280 trhdr=HAVE_`echo $hdr | tr '[a-z]./' '[A-Z]__'`
281 echo checking for ${hdr}
282 cat > conftest.c <<EOF
283 #include <${hdr}>
284 EOF
285 err=`eval "($CPP \$DEFS conftest.c >/dev/null) 2>&1"`
286 if test -z "$err"; then
287 {
288 test -n "$verbose" && \
289 echo ' defining' ${trhdr}
290 DEFS="$DEFS -D${trhdr}=1"
291 SEDDEFS="${SEDDEFS}\${SEDdA}${trhdr}\${SEDdB}${trhdr}\${SEDdC}1\${SEDdD}
292 \${SEDuA}${trhdr}\${SEDuB}${trhdr}\${SEDuC}1\${SEDuD}
293 \${SEDeA}${trhdr}\${SEDeB}${trhdr}\${SEDeC}1\${SEDeD}
294 "
295 }
296
297 fi
298 rm -f conftest*
299 done
300
301 echo checking for ANSI C header files
302 cat > conftest.c <<EOF
303 #include <stdlib.h>
304 #include <stdarg.h>
305 #include <string.h>
306 #include <float.h>
307 EOF
308 err=`eval "($CPP \$DEFS conftest.c >/dev/null) 2>&1"`
309 if test -z "$err"; then
310 # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
311 echo '#include <string.h>' > conftest.c
312 eval "$CPP \$DEFS conftest.c > conftest.out 2>&1"
313 if egrep "memchr" conftest.out >/dev/null 2>&1; then
314 # SGI's /bin/cc from Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
315 cat > conftest.c <<EOF
316 #include <ctype.h>
317 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
318 #define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
319 #define XOR(e,f) (((e) && !(f)) || (!(e) && (f)))
320 int main () { int i; for (i = 0; i < 256; i++)
321 if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
322 exit (0); }
323
324 EOF
325 eval $compile
326 if test -s conftest && (./conftest; exit) 2>/dev/null; then
327 {
328 test -n "$verbose" && \
329 echo ' defining' STDC_HEADERS
330 DEFS="$DEFS -DSTDC_HEADERS=1"
331 SEDDEFS="${SEDDEFS}\${SEDdA}STDC_HEADERS\${SEDdB}STDC_HEADERS\${SEDdC}1\${SEDdD}
332 \${SEDuA}STDC_HEADERS\${SEDuB}STDC_HEADERS\${SEDuC}1\${SEDuD}
333 \${SEDeA}STDC_HEADERS\${SEDeB}STDC_HEADERS\${SEDeC}1\${SEDeD}
334 "
335 }
336
337 fi
338 rm -f conftest*
339 fi
340 rm -f conftest*
341
342 fi
343 rm -f conftest*
344
345 echo checking for complex.h
346 cat > conftest.c <<EOF
347 #include <complex.h>
348 EOF
349 err=`eval "($CPP \$DEFS conftest.c >/dev/null) 2>&1"`
350 if test -z "$err"; then
351 {
352 test -n "$verbose" && \
353 echo ' defining' HAVE_COMPLEX_H
354 DEFS="$DEFS -DHAVE_COMPLEX_H=1"
355 SEDDEFS="${SEDDEFS}\${SEDdA}HAVE_COMPLEX_H\${SEDdB}HAVE_COMPLEX_H\${SEDdC}1\${SEDdD}
356 \${SEDuA}HAVE_COMPLEX_H\${SEDuB}HAVE_COMPLEX_H\${SEDuC}1\${SEDuD}
357 \${SEDeA}HAVE_COMPLEX_H\${SEDeB}HAVE_COMPLEX_H\${SEDeC}1\${SEDeD}
358 "
359 }
360
361 fi
362 rm -f conftest*
363
364 echo checking for malloc.h
365 cat > conftest.c <<EOF
366 #include <malloc.h>
367 EOF
368 err=`eval "($CPP \$DEFS conftest.c >/dev/null) 2>&1"`
369 if test -z "$err"; then
370 {
371 test -n "$verbose" && \
372 echo ' defining' HAVE_MALLOC_H
373 DEFS="$DEFS -DHAVE_MALLOC_H=1"
374 SEDDEFS="${SEDDEFS}\${SEDdA}HAVE_MALLOC_H\${SEDdB}HAVE_MALLOC_H\${SEDdC}1\${SEDdD}
375 \${SEDuA}HAVE_MALLOC_H\${SEDuB}HAVE_MALLOC_H\${SEDuC}1\${SEDuD}
376 \${SEDeA}HAVE_MALLOC_H\${SEDeB}HAVE_MALLOC_H\${SEDeC}1\${SEDeD}
377 "
378 }
379
380 fi
381 rm -f conftest*
382
383 echo checking for varargs.h
384 cat > conftest.c <<EOF
385 #include <varargs.h>
386 EOF
387 err=`eval "($CPP \$DEFS conftest.c >/dev/null) 2>&1"`
388 if test -z "$err"; then
389 {
390 test -n "$verbose" && \
391 echo ' defining' VARARGS
392 DEFS="$DEFS -DVARARGS=1"
393 SEDDEFS="${SEDDEFS}\${SEDdA}VARARGS\${SEDdB}VARARGS\${SEDdC}1\${SEDdD}
394 \${SEDuA}VARARGS\${SEDuB}VARARGS\${SEDuC}1\${SEDuD}
395 \${SEDeA}VARARGS\${SEDeB}VARARGS\${SEDeC}1\${SEDeD}
396 "
397 }
398
399 fi
400 rm -f conftest*
401
402 {
403 test -n "$verbose" && \
404 echo ' defining' NOT_SEGMENTED
405 DEFS="$DEFS -DNOT_SEGMENTED=1"
406 SEDDEFS="${SEDDEFS}\${SEDdA}NOT_SEGMENTED\${SEDdB}NOT_SEGMENTED\${SEDdC}1\${SEDdD}
407 \${SEDuA}NOT_SEGMENTED\${SEDuB}NOT_SEGMENTED\${SEDuC}1\${SEDuD}
408 \${SEDeA}NOT_SEGMENTED\${SEDeB}NOT_SEGMENTED\${SEDeC}1\${SEDeD}
409 "
410 }
411
412 echo checking for size_t in sys/types.h
413 echo '#include <sys/types.h>' > conftest.c
414 eval "$CPP \$DEFS conftest.c > conftest.out 2>&1"
415 if egrep "size_t" conftest.out >/dev/null 2>&1; then
416 :
417 else
418 {
419 test -n "$verbose" && \
420 echo ' defining' size_t to be 'unsigned'
421 DEFS="$DEFS -Dsize_t=unsigned"
422 SEDDEFS="${SEDDEFS}\${SEDdA}size_t\${SEDdB}size_t\${SEDdC}unsigned\${SEDdD}
423 \${SEDuA}size_t\${SEDuB}size_t\${SEDuC}unsigned\${SEDuD}
424 \${SEDeA}size_t\${SEDeB}size_t\${SEDeC}unsigned\${SEDeD}
425 "
426 }
427
428 fi
429 rm -f conftest*
430
431 prog='/* Ultrix mips cc rejects this. */
432 typedef int charset[2]; const charset x;
433 /* SunOS 4.1.1 cc rejects this. */
434 char const *const *ccp;
435 char **p;
436 /* AIX XL C 1.02.0.0 rejects this.
437 It does not let you subtract one const X* pointer from another in an arm
438 of an if-expression whose if-part is not a constant expression */
439 const char *g = "string";
440 p = &g + (g ? g-g : 0);
441 /* HPUX 7.0 cc rejects these. */
442 ++ccp;
443 p = (char**) ccp;
444 ccp = (char const *const *) p;
445 { /* SCO 3.2v4 cc rejects this. */
446 char *t;
447 char const *s = 0 ? (char *) 0 : (char const *) 0;
448
449 *t++ = 0;
450 }
451 { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
452 int x[] = {25,17};
453 const int *foo = &x[0];
454 ++foo;
455 }
456 { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
457 typedef const int *iptr;
458 iptr p = 0;
459 ++p;
460 }
461 { /* AIX XL C 1.02.0.0 rejects this saying
462 "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
463 struct s { int j; const int *ap[3]; };
464 struct s *b; b->j = 5;
465 }'
466 echo checking for working const
467 cat > conftest.c <<EOF
468
469 int main() { exit(0); }
470 int t() { $prog }
471 EOF
472 if eval $compile; then
473 :
474 else
475 {
476 test -n "$verbose" && \
477 echo ' defining' const to be 'empty'
478 DEFS="$DEFS -Dconst="
479 SEDDEFS="${SEDDEFS}\${SEDdA}const\${SEDdB}const\${SEDdC}\${SEDdD}
480 \${SEDuA}const\${SEDuB}const\${SEDuC}\${SEDuD}
481 \${SEDeA}const\${SEDeB}const\${SEDeC}\${SEDeD}
482 "
483 }
484
485 fi
486 rm -f conftest*
487
488 echo checking byte ordering
489 cat > conftest.c <<EOF
490 main () {
491 /* Are we little or big endian? From Harbison&Steele. */
492 union
493 {
494 long l;
495 char c[sizeof (long)];
496 } u;
497 u.l = 1;
498 exit (u.c[sizeof (long) - 1] == 1);
499 }
500 EOF
501 eval $compile
502 if test -s conftest && (./conftest; exit) 2>/dev/null; then
503 :
504 else
505 {
506 test -n "$verbose" && \
507 echo ' defining' WORDS_BIGENDIAN
508 DEFS="$DEFS -DWORDS_BIGENDIAN=1"
509 SEDDEFS="${SEDDEFS}\${SEDdA}WORDS_BIGENDIAN\${SEDdB}WORDS_BIGENDIAN\${SEDdC}1\${SEDdD}
510 \${SEDuA}WORDS_BIGENDIAN\${SEDuB}WORDS_BIGENDIAN\${SEDuC}1\${SEDuD}
511 \${SEDeA}WORDS_BIGENDIAN\${SEDeB}WORDS_BIGENDIAN\${SEDeC}1\${SEDeD}
512 "
513 }
514
515 fi
516 rm -f conftest*
517
518 # check whether --with-complex was given
519 if test -n "$with_complex"; then
520 {
521 test -n "$verbose" && \
522 echo ' defining' COMPLEX
523 DEFS="$DEFS -DCOMPLEX=1"
524 SEDDEFS="${SEDDEFS}\${SEDdA}COMPLEX\${SEDdB}COMPLEX\${SEDdC}1\${SEDdD}
525 \${SEDuA}COMPLEX\${SEDuB}COMPLEX\${SEDuC}1\${SEDuD}
526 \${SEDeA}COMPLEX\${SEDeB}COMPLEX\${SEDeC}1\${SEDeD}
527 "
528 }
529
530 fi
531
532 # check whether --with-sparse was given
533 if test -n "$with_sparse"; then
534 {
535 test -n "$verbose" && \
536 echo ' defining' SPARSE
537 DEFS="$DEFS -DSPARSE=1"
538 SEDDEFS="${SEDDEFS}\${SEDdA}SPARSE\${SEDdB}SPARSE\${SEDdC}1\${SEDdD}
539 \${SEDuA}SPARSE\${SEDuB}SPARSE\${SEDuC}1\${SEDuD}
540 \${SEDeA}SPARSE\${SEDeB}SPARSE\${SEDeC}1\${SEDeD}
541 "
542 }
543
544 fi
545
546 # check whether --with-all was given
547 if test -n "$with_all"; then
548 {
549 test -n "$verbose" && \
550 echo ' defining' COMPLEX
551 DEFS="$DEFS -DCOMPLEX=1"
552 SEDDEFS="${SEDDEFS}\${SEDdA}COMPLEX\${SEDdB}COMPLEX\${SEDdC}1\${SEDdD}
553 \${SEDuA}COMPLEX\${SEDuB}COMPLEX\${SEDuC}1\${SEDuD}
554 \${SEDeA}COMPLEX\${SEDeB}COMPLEX\${SEDeC}1\${SEDeD}
555 "
556 }
557
558 fi
559
560 # check whether --with-all was given
561 if test -n "$with_all"; then
562 {
563 test -n "$verbose" && \
564 echo ' defining' SPARSE
565 DEFS="$DEFS -DSPARSE=1"
566 SEDDEFS="${SEDDEFS}\${SEDdA}SPARSE\${SEDdB}SPARSE\${SEDdC}1\${SEDdD}
567 \${SEDuA}SPARSE\${SEDuB}SPARSE\${SEDuC}1\${SEDuD}
568 \${SEDeA}SPARSE\${SEDeB}SPARSE\${SEDeC}1\${SEDeD}
569 "
570 }
571
572 fi
573
574 # check whether --with-unroll was given
575 if test -n "$with_unroll"; then
576 {
577 test -n "$verbose" && \
578 echo ' defining' VUNROLL
579 DEFS="$DEFS -DVUNROLL=1"
580 SEDDEFS="${SEDDEFS}\${SEDdA}VUNROLL\${SEDdB}VUNROLL\${SEDdC}1\${SEDdD}
581 \${SEDuA}VUNROLL\${SEDuB}VUNROLL\${SEDuC}1\${SEDuD}
582 \${SEDeA}VUNROLL\${SEDeB}VUNROLL\${SEDeC}1\${SEDeD}
583 "
584 }
585
586 fi
587
588 # check whether --with-munroll was given
589 if test -n "$with_munroll"; then
590 {
591 test -n "$verbose" && \
592 echo ' defining' MUNROLL
593 DEFS="$DEFS -DMUNROLL=1"
594 SEDDEFS="${SEDDEFS}\${SEDdA}MUNROLL\${SEDdB}MUNROLL\${SEDdC}1\${SEDdD}
595 \${SEDuA}MUNROLL\${SEDuB}MUNROLL\${SEDuC}1\${SEDuD}
596 \${SEDeA}MUNROLL\${SEDeB}MUNROLL\${SEDeC}1\${SEDeD}
597 "
598 }
599
600 fi
601
602 # check whether --with-segmem was given
603 if test -n "$with_segmem"; then
604 {
605 test -n "$verbose" && \
606 echo ' defining' SEGMENTED
607 DEFS="$DEFS -DSEGMENTED=1"
608 SEDDEFS="${SEDDEFS}\${SEDdA}SEGMENTED\${SEDdB}SEGMENTED\${SEDdC}1\${SEDdD}
609 \${SEDuA}SEGMENTED\${SEDuB}SEGMENTED\${SEDuC}1\${SEDuD}
610 \${SEDeA}SEGMENTED\${SEDeB}SEGMENTED\${SEDeC}1\${SEDeD}
611 "
612 }
613
614 fi
615
616 # check whether --with-float was given
617 if test -n "$with_float"; then
618 {
619 test -n "$verbose" && \
620 echo ' defining' REAL_FLT
621 DEFS="$DEFS -DREAL_FLT=1"
622 SEDDEFS="${SEDDEFS}\${SEDdA}REAL_FLT\${SEDdB}REAL_FLT\${SEDdC}1\${SEDdD}
623 \${SEDuA}REAL_FLT\${SEDuB}REAL_FLT\${SEDuC}1\${SEDuD}
624 \${SEDeA}REAL_FLT\${SEDeB}REAL_FLT\${SEDeC}1\${SEDeD}
625 "
626 }
627
628 fi
629
630 # check whether --with-double was given
631 if test -n "$with_double"; then
632 {
633 test -n "$verbose" && \
634 echo ' defining' REAL_DBL
635 DEFS="$DEFS -DREAL_DBL=1"
636 SEDDEFS="${SEDDEFS}\${SEDdA}REAL_DBL\${SEDdB}REAL_DBL\${SEDdC}1\${SEDdD}
637 \${SEDuA}REAL_DBL\${SEDuB}REAL_DBL\${SEDuC}1\${SEDuD}
638 \${SEDeA}REAL_DBL\${SEDeB}REAL_DBL\${SEDeC}1\${SEDeD}
639 "
640 }
641
642 fi
643
644 LIBS="$LIBS -lm"
645 echo checking for u_int
646 cat > conftest.c <<EOF
647 #include <stdio.h>
648 #ifdef __STDC__
649 #include <stdlib.h>
650 #endif
651 int main() { exit(0); }
652 int t() { u_int i; i = 1; }
653 EOF
654 if eval $compile; then
655 {
656 test -n "$verbose" && \
657 echo ' defining' U_INT_DEF
658 DEFS="$DEFS -DU_INT_DEF=1"
659 SEDDEFS="${SEDDEFS}\${SEDdA}U_INT_DEF\${SEDdB}U_INT_DEF\${SEDdC}1\${SEDdD}
660 \${SEDuA}U_INT_DEF\${SEDuB}U_INT_DEF\${SEDuC}1\${SEDuD}
661 \${SEDeA}U_INT_DEF\${SEDeB}U_INT_DEF\${SEDeC}1\${SEDeD}
662 "
663 }
664
665 fi
666 rm -f conftest*
667
668 echo 'computing machine epsilon(s)'
669 echo $CC -o macheps dmacheps.c
670 $CC -o macheps dmacheps.c
671 {
672 test -n "$verbose" && \
673 echo ' defining' D_MACHEPS to be '`macheps`'
674 DEFS="$DEFS -DD_MACHEPS=`macheps`"
675 SEDDEFS="${SEDDEFS}\${SEDdA}D_MACHEPS\${SEDdB}D_MACHEPS\${SEDdC}`macheps`\${SEDdD}
676 \${SEDuA}D_MACHEPS\${SEDuB}D_MACHEPS\${SEDuC}`macheps`\${SEDuD}
677 \${SEDeA}D_MACHEPS\${SEDeB}D_MACHEPS\${SEDeC}`macheps`\${SEDeD}
678 "
679 }
680
681 echo $CC -o macheps fmacheps.c
682 $CC -o macheps fmacheps.c
683 {
684 test -n "$verbose" && \
685 echo ' defining' F_MACHEPS to be '`macheps`'
686 DEFS="$DEFS -DF_MACHEPS=`macheps`"
687 SEDDEFS="${SEDDEFS}\${SEDdA}F_MACHEPS\${SEDdB}F_MACHEPS\${SEDdC}`macheps`\${SEDdD}
688 \${SEDuA}F_MACHEPS\${SEDuB}F_MACHEPS\${SEDuC}`macheps`\${SEDuD}
689 \${SEDeA}F_MACHEPS\${SEDeB}F_MACHEPS\${SEDeC}`macheps`\${SEDeD}
690 "
691 }
692
693 echo computing M_MAX_INT
694 echo $CC -o maxint maxint.c
695 $CC -o maxint maxint.c
696 {
697 test -n "$verbose" && \
698 echo ' defining' M_MAX_INT to be '`maxint`'
699 DEFS="$DEFS -DM_MAX_INT=`maxint`"
700 SEDDEFS="${SEDDEFS}\${SEDdA}M_MAX_INT\${SEDdB}M_MAX_INT\${SEDdC}`maxint`\${SEDdD}
701 \${SEDuA}M_MAX_INT\${SEDuB}M_MAX_INT\${SEDuC}`maxint`\${SEDuD}
702 \${SEDeA}M_MAX_INT\${SEDeB}M_MAX_INT\${SEDeC}`maxint`\${SEDeD}
703 "
704 }
705
706 echo checking char '\\0' vs. float zeros
707 cat > conftest.c <<EOF
708 main() {
709 char *cp = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
710 double *dp;
711 dp = (double *)cp;
712 if ( *dp == 0.0 ) printf("yes\n"); }
713
714 EOF
715 eval "$CPP \$DEFS conftest.c > conftest.out 2>&1"
716 if egrep "yes" conftest.out >/dev/null 2>&1; then
717 {
718 test -n "$verbose" && \
719 echo ' defining' CHAR0ISDBL0
720 DEFS="$DEFS -DCHAR0ISDBL0=1"
721 SEDDEFS="${SEDDEFS}\${SEDdA}CHAR0ISDBL0\${SEDdB}CHAR0ISDBL0\${SEDdC}1\${SEDdD}
722 \${SEDuA}CHAR0ISDBL0\${SEDuB}CHAR0ISDBL0\${SEDuC}1\${SEDuD}
723 \${SEDeA}CHAR0ISDBL0\${SEDeB}CHAR0ISDBL0\${SEDeC}1\${SEDeD}
724 "
725 }
726
727 fi
728 rm -f conftest*
729
730 for func in bcopy bzero
731 do
732 trfunc=HAVE_`echo $func | tr '[a-z]' '[A-Z]'`
733 echo checking for ${func}
734 cat > conftest.c <<EOF
735 #include <ctype.h>
736 int main() { exit(0); }
737 int t() {
738 /* The GNU C library defines this for functions which it implements
739 to always fail with ENOSYS. Some functions are actually named
740 something starting with __ and the normal name is an alias. */
741 #if defined (__stub_${func}) || defined (__stub___${func})
742 choke me
743 #else
744 /* Override any gcc2 internal prototype to avoid an error. */
745 extern char ${func}(); ${func}();
746 #endif
747 }
748 EOF
749 if eval $compile; then
750 {
751 test -n "$verbose" && \
752 echo ' defining' ${trfunc}
753 DEFS="$DEFS -D${trfunc}=1"
754 SEDDEFS="${SEDDEFS}\${SEDdA}${trfunc}\${SEDdB}${trfunc}\${SEDdC}1\${SEDdD}
755 \${SEDuA}${trfunc}\${SEDuB}${trfunc}\${SEDuC}1\${SEDuD}
756 \${SEDeA}${trfunc}\${SEDeB}${trfunc}\${SEDeC}1\${SEDeD}
757 "
758 }
759
760 fi
761 rm -f conftest*
762 done
763
764 echo checking for function prototypes
765 cat > conftest.c <<EOF
766
767 int main() { exit(0); }
768 int t() { extern int test (int i, double x); }
769 EOF
770 if eval $compile; then
771 {
772 test -n "$verbose" && \
773 echo ' defining' HAVE_PROTOTYPES
774 DEFS="$DEFS -DHAVE_PROTOTYPES=1"
775 SEDDEFS="${SEDDEFS}\${SEDdA}HAVE_PROTOTYPES\${SEDdB}HAVE_PROTOTYPES\${SEDdC}1\${SEDdD}
776 \${SEDuA}HAVE_PROTOTYPES\${SEDuB}HAVE_PROTOTYPES\${SEDuC}1\${SEDuD}
777 \${SEDeA}HAVE_PROTOTYPES\${SEDeB}HAVE_PROTOTYPES\${SEDeC}1\${SEDeD}
778 "
779 }
780
781 fi
782 rm -f conftest*
783
784 if test -n "$prefix"; then
785 test -z "$exec_prefix" && exec_prefix='${prefix}'
786 prsub="s%^prefix\\([ ]*\\)=\\([ ]*\\).*$%prefix\\1=\\2$prefix%"
787 fi
788 if test -n "$exec_prefix"; then
789 prsub="$prsub
790 s%^exec_prefix\\([ ]*\\)=\\([ ]*\\).*$%\
791 exec_prefix\\1=\\2$exec_prefix%"
792 fi
793 DEFS="`echo \"$DEFS\" | sed 's%[&\\\]%\\\&%g'`"
794
795 trap 'rm -f config.status; exit 1' 1 3 15
796 echo creating config.status
797 rm -f config.status
798 cat > config.status <<EOF
799 #!/bin/sh
800 # Generated automatically by configure.
801 # Run this file to recreate the current configuration.
802 # This directory was configured as follows,
803 # on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
804 #
805 # $0 $*
806
807 for arg
808 do
809 case "\$arg" in
810 -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
811 exec /bin/sh $0 $* ;;
812 *) echo "Usage: config.status --recheck" 2>&1; exit 1 ;;
813 esac
814 done
815
816 trap 'rm -f makefile machine.h conftest*; exit 1' 1 3 15
817 PROGS='$PROGS'
818 CC='$CC'
819 CPP='$CPP'
820 RANLIB='$RANLIB'
821 LIBS='$LIBS'
822 srcdir='$srcdir'
823 prefix='$prefix'
824 exec_prefix='$exec_prefix'
825 prsub='$prsub'
826 EOF
827 cat >> config.status <<\EOF
828
829 top_srcdir=$srcdir
830
831 # Allow make-time overrides of the generated file list.
832 test -n "$gen_files" || gen_files="makefile"
833
834 for file in .. $gen_files; do if [ "x$file" != "x.." ]; then
835 srcdir=$top_srcdir
836 # Remove last slash and all that follows it. Not all systems have dirname.
837 dir=`echo $file|sed 's%/[^/][^/]*$%%'`
838 if test "$dir" != "$file"; then
839 test "$top_srcdir" != . && srcdir=$top_srcdir/$dir
840 test ! -d $dir && mkdir $dir
841 fi
842 echo creating $file
843 rm -f $file
844 echo "# Generated automatically from `echo $file|sed 's|.*/||'`.in by configure." > $file
845 sed -e "
846 $prsub
847 s%@PROGS@%$PROGS%g
848 s%@CC@%$CC%g
849 s%@CPP@%$CPP%g
850 s%@RANLIB@%$RANLIB%g
851 s%@LIBS@%$LIBS%g
852 s%@srcdir@%$srcdir%g
853 s%@DEFS@%-DHAVE_CONFIG_H%" $top_srcdir/${file}.in >> $file
854 fi; done
855 test -n "$gen_config" || gen_config=machine.h
856 echo creating $gen_config
857 # These sed commands are put into SEDDEFS when defining a macro.
858 # They are broken into pieces to make the sed script easier to manage.
859 # They are passed to sed as "A NAME B NAME C VALUE D", where NAME
860 # is the cpp macro being defined and VALUE is the value it is being given.
861 # Each defining turns into a single global substitution command.
862 #
863 # SEDd sets the value in "#define NAME VALUE" lines.
864 SEDdA='s@^\([ ]*\)#\([ ]*define[ ][ ]*\)'
865 SEDdB='\([ ][ ]*\)[^ ]*@\1#\2'
866 SEDdC='\3'
867 SEDdD='@g'
868 # SEDu turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
869 SEDuA='s@^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
870 SEDuB='\([ ]\)@\1#\2define\3'
871 SEDuC=' '
872 SEDuD='\4@g'
873 # SEDe turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
874 SEDeA='s@^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
875 SEDeB='$@\1#\2define\3'
876 SEDeC=' '
877 SEDeD='@g'
878 rm -f conftest.sed
879 EOF
880 # Turn off quoting long enough to insert the sed commands.
881 rm -f conftest.sh
882 cat > conftest.sh <<EOF
883 $SEDDEFS
884 EOF
885
886 # Maximum number of lines to put in a single here document.
887 maxshlines=9
888
889 # Break up $SEDDEFS (now in conftest.sh) because some shells have a limit
890 # on the size of here documents.
891
892 while :
893 do
894 lines=`grep -c . conftest.sh`
895 if test -z "$lines" || test "$lines" -eq 0; then break; fi
896 rm -f conftest.s1 conftest.s2
897 sed ${maxshlines}q conftest.sh > conftest.s1 # Like head -20.
898 sed 1,${maxshlines}d conftest.sh > conftest.s2 # Like tail +21.
899 # Write a limited-size here document to append to conftest.sed.
900 echo 'cat >> conftest.sed <<CONFEOF' >> config.status
901 cat conftest.s1 >> config.status
902 echo 'CONFEOF' >> config.status
903 rm -f conftest.s1 conftest.sh
904 mv conftest.s2 conftest.sh
905 done
906 rm -f conftest.sh
907
908 # Now back to your regularly scheduled config.status.
909 cat >> config.status <<\EOF
910 # This sed command replaces #undef's with comments. This is necessary, for
911 # example, in the case of _POSIX_SOURCE, which is predefined and required
912 # on some systems where configure will not decide to define it in
913 # machine.h.
914 cat >> conftest.sed <<\CONFEOF
915 s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
916 CONFEOF
917 rm -f conftest.h
918 # Break up the sed commands because old seds have small limits.
919 maxsedlines=20
920 cp $top_srcdir/$gen_config.in conftest.h1
921 while :
922 do
923 lines=`grep -c . conftest.sed`
924 if test -z "$lines" || test "$lines" -eq 0; then break; fi
925 rm -f conftest.s1 conftest.s2 conftest.h2
926 sed ${maxsedlines}q conftest.sed > conftest.s1 # Like head -20.
927 sed 1,${maxsedlines}d conftest.sed > conftest.s2 # Like tail +21.
928 sed -f conftest.s1 < conftest.h1 > conftest.h2
929 rm -f conftest.s1 conftest.h1 conftest.sed
930 mv conftest.h2 conftest.h1
931 mv conftest.s2 conftest.sed
932 done
933 rm -f conftest.sed conftest.h
934 echo "/* $gen_config. Generated automatically by configure. */" > conftest.h
935 cat conftest.h1 >> conftest.h
936 rm -f conftest.h1
937 if cmp -s $gen_config conftest.h 2>/dev/null; then
938 # The file exists and we would not be changing it.
939 rm -f conftest.h
940 else
941 rm -f $gen_config
942 mv conftest.h $gen_config
943 fi
944
945
946 exit 0
947 EOF
948 chmod +x config.status
949 test -n "$no_create" || ./config.status
950
951 echo "Extensions to basic version: use configure --with-opt1 --with-opt2"
952 echo " Option:"
953 echo " --with-complex incorporate complex functions"
954 echo " --with-sparse incorporate sparse matrix functions"
955 echo " --with-all both of the above"
956 echo " --with-unroll unroll low level loops on vectors"
957 echo " --with-munroll unroll low level loops on matrices"
958 echo " --with-float single precision"
959 echo " --with-double double precision (default)"
960 echo "Re-run configure with these options if you want them"
961 # configure.in copyright (C) Brook Milligan and David Stewart, 1993
+0
-105
interface/src/scilab/src/c/configure.in less more
0 dnl Meschach autoconf script
1 dnl Copyright (C) Brook Milligan and David Stewart, 1993
2 dnl $Id: configure.in,v 1.3 1994/03/08 05:41:32 des Exp $
3 dnl
4 dnl Brook Milligan's prototype check
5 dnl Check if $(CC) supports prototypes
6 define(LOCAL_HAVE_PROTOTYPES,
7 [AC_COMPILE_CHECK([function prototypes], ,
8 [extern int test (int i, double x);],
9 AC_DEFINE(HAVE_PROTOTYPES))])dnl
10 dnl
11 dnl Brook Milligan's compiler check
12 dnl Check for the sun ansi c compiler, acc
13 define(LOCAL_PROG_ACC,
14 [AC_BEFORE([$0], [AC_PROG_CPP])AC_PROVIDE([$0])dnl
15 AC_PROGRAM_CHECK(CC, acc, acc, "")])dnl
16 dnl David Stewart's modified compiler check
17 define(LOCAL_PROG_CC,
18 [AC_BEFORE([$0], [AC_PROG_CPP])AC_PROVIDE([$0])dnl
19 AC_PROGRAM_CHECK(CC, acc, acc, cc)])dnl
20 dnl
21 dnl
22 dnl
23 dnl ----------------------------------------------------------------------
24 dnl Start of configure.in proper
25 dnl ----------------------------------------------------------------------
26 AC_INIT(err.c)
27 AC_CONFIG_HEADER(machine.h)
28 PROGS=""
29 AC_SUBST(PROGS)dnl
30 LOCAL_PROG_ACC
31 AC_PROGRAM_CHECK(CC, cc, cc, gcc)
32 dnl AC_PROG_CC
33 AC_PROG_CPP
34 AC_AIX
35 AC_MINIX
36 AC_ISC_POSIX
37 dnl
38 dnl Brook Milligan's prototype check
39 dnl Check if $(CC) supports prototypes in function declarations and structures
40 define(LOCAL_HAVE_PROTOTYPES,
41 [AC_COMPILE_CHECK([function prototypes], ,
42 [extern int test (int i, double x);],
43 AC_DEFINE(HAVE_PROTOTYPES))
44 AC_COMPILE_CHECK([function prototypes in structures], ,
45 [struct s1 {int (*f) (int a);};
46 struct s2 {int (*f) (double a);};],
47 AC_DEFINE(HAVE_PROTOTYPES_IN_STRUCT))])dnl
48 dnl
49 AC_PROG_RANLIB
50 AC_HAVE_HEADERS(memory.h)
51 AC_STDC_HEADERS
52 AC_HEADER_CHECK(complex.h, AC_DEFINE(HAVE_COMPLEX_H),)
53 AC_HEADER_CHECK(malloc.h, AC_DEFINE(HAVE_MALLOC_H),)
54 AC_HEADER_CHECK(varargs.h, AC_DEFINE(VARARGS),)
55 AC_DEFINE(NOT_SEGMENTED)
56 AC_SIZE_T
57 AC_CONST
58 AC_WORDS_BIGENDIAN
59 AC_WITH(complex, AC_DEFINE(COMPLEX))
60 AC_WITH(sparse, AC_DEFINE(SPARSE))
61 AC_WITH(all, AC_DEFINE(COMPLEX))
62 AC_WITH(all, AC_DEFINE(SPARSE))
63 AC_WITH(unroll, AC_DEFINE(VUNROLL))
64 AC_WITH(munroll, AC_DEFINE(MUNROLL))
65 AC_WITH(segmem, AC_DEFINE(SEGMENTED))
66 AC_WITH(float, AC_DEFINE(REAL_FLT))
67 AC_WITH(double, AC_DEFINE(REAL_DBL))
68 LIBS="$LIBS -lm"
69 AC_COMPILE_CHECK([u_int],[#include <stdio.h>
70 #ifdef __STDC__
71 #include <stdlib.h>
72 #endif],[u_int i; i = 1;],AC_DEFINE(U_INT_DEF))
73 echo 'computing machine epsilon(s)'
74 echo $CC -o macheps dmacheps.c
75 $CC -o macheps dmacheps.c
76 AC_DEFINE_UNQUOTED(D_MACHEPS,`macheps`)
77 echo $CC -o macheps fmacheps.c
78 $CC -o macheps fmacheps.c
79 AC_DEFINE_UNQUOTED(F_MACHEPS,`macheps`)
80 echo computing M_MAX_INT
81 echo $CC -o maxint maxint.c
82 $CC -o maxint maxint.c
83 AC_DEFINE_UNQUOTED(M_MAX_INT,`maxint`)
84 echo checking char '\\0' vs. float zeros
85 AC_PROGRAM_EGREP(yes,[main() {
86 char *cp = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
87 double *dp;
88 dp = (double *)cp;
89 if ( *dp == 0.0 ) printf("yes\n"); }
90 ],AC_DEFINE(CHAR0ISDBL0))
91 AC_HAVE_FUNCS(bcopy bzero)
92 LOCAL_HAVE_PROTOTYPES
93 AC_OUTPUT(makefile)
94 echo "Extensions to basic version: use configure --with-opt1 --with-opt2"
95 echo " Option:"
96 echo " --with-complex incorporate complex functions"
97 echo " --with-sparse incorporate sparse matrix functions"
98 echo " --with-all both of the above"
99 echo " --with-unroll unroll low level loops on vectors"
100 echo " --with-munroll unroll low level loops on matrices"
101 echo " --with-float single precision"
102 echo " --with-double double precision (default)"
103 echo "Re-run configure with these options if you want them"
104 # configure.in copyright (C) Brook Milligan and David Stewart, 1993
+0
-210
interface/src/scilab/src/c/copy.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 static char rcsid[] = "$Id: copy.c 3690 2010-09-02 09:55:19Z lsaavedr $";
27 #include <stdio.h>
28 #include "matrix.h"
29
30
31
32 /* _m_copy -- copies matrix into new area */
33 MAT *_m_copy(in,out,i0,j0)
34 MAT *in,*out;
35 u_int i0,j0;
36 {
37 u_int i /* ,j */;
38
39 if ( in==MNULL )
40 error(E_NULL,"_m_copy");
41 if ( in==out )
42 return (out);
43 if ( out==MNULL || out->m < in->m || out->n < in->n )
44 out = m_resize(out,in->m,in->n);
45
46 for ( i=i0; i < in->m; i++ )
47 MEM_COPY(&(in->me[i][j0]),&(out->me[i][j0]),
48 (in->n - j0)*sizeof(Real));
49 /* for ( j=j0; j < in->n; j++ )
50 out->me[i][j] = in->me[i][j]; */
51
52 return (out);
53 }
54
55 /* _v_copy -- copies vector into new area */
56 VEC *_v_copy(in,out,i0)
57 VEC *in,*out;
58 u_int i0;
59 {
60 /* u_int i,j; */
61
62 if ( in==VNULL )
63 error(E_NULL,"_v_copy");
64 if ( in==out )
65 return (out);
66 if ( out==VNULL || out->dim < in->dim )
67 out = v_resize(out,in->dim);
68
69 MEM_COPY(&(in->ve[i0]),&(out->ve[i0]),(in->dim - i0)*sizeof(Real));
70 /* for ( i=i0; i < in->dim; i++ )
71 out->ve[i] = in->ve[i]; */
72
73 return (out);
74 }
75
76 /* px_copy -- copies permutation 'in' to 'out' */
77 PERM *px_copy(in,out)
78 PERM *in,*out;
79 {
80 /* int i; */
81
82 if ( in == PNULL )
83 error(E_NULL,"px_copy");
84 if ( in == out )
85 return out;
86 if ( out == PNULL || out->size != in->size )
87 out = px_resize(out,in->size);
88
89 MEM_COPY(in->pe,out->pe,in->size*sizeof(u_int));
90 /* for ( i = 0; i < in->size; i++ )
91 out->pe[i] = in->pe[i]; */
92
93 return out;
94 }
95
96 /*
97 The .._move() routines are for moving blocks of memory around
98 within Meschach data structures and for re-arranging matrices,
99 vectors etc.
100 */
101
102 /* m_move -- copies selected pieces of a matrix
103 -- moves the m0 x n0 submatrix with top-left cor-ordinates (i0,j0)
104 to the corresponding submatrix of out with top-left co-ordinates
105 (i1,j1)
106 -- out is resized (& created) if necessary */
107 MAT *m_move(in,i0,j0,m0,n0,out,i1,j1)
108 MAT *in, *out;
109 int i0, j0, m0, n0, i1, j1;
110 {
111 int i;
112
113 if ( ! in )
114 error(E_NULL,"m_move");
115 if ( i0 < 0 || j0 < 0 || i1 < 0 || j1 < 0 || m0 < 0 || n0 < 0 ||
116 i0+m0 > in->m || j0+n0 > in->n )
117 error(E_BOUNDS,"m_move");
118
119 if ( ! out )
120 out = m_resize(out,i1+m0,j1+n0);
121 else if ( i1+m0 > out->m || j1+n0 > out->n )
122 out = m_resize(out,max(out->m,i1+m0),max(out->n,j1+n0));
123
124 for ( i = 0; i < m0; i++ )
125 MEM_COPY(&(in->me[i0+i][j0]),&(out->me[i1+i][j1]),
126 n0*sizeof(Real));
127
128 return out;
129 }
130
131 /* v_move -- copies selected pieces of a vector
132 -- moves the length dim0 subvector with initial index i0
133 to the corresponding subvector of out with initial index i1
134 -- out is resized if necessary */
135 VEC *v_move(in,i0,dim0,out,i1)
136 VEC *in, *out;
137 int i0, dim0, i1;
138 {
139 if ( ! in )
140 error(E_NULL,"v_move");
141 if ( i0 < 0 || dim0 < 0 || i1 < 0 ||
142 i0+dim0 > in->dim )
143 error(E_BOUNDS,"v_move");
144
145 if ( (! out) || i1+dim0 > out->dim )
146 out = v_resize(out,i1+dim0);
147
148 MEM_COPY(&(in->ve[i0]),&(out->ve[i1]),dim0*sizeof(Real));
149
150 return out;
151 }
152
153 /* mv_move -- copies selected piece of matrix to a vector
154 -- moves the m0 x n0 submatrix with top-left co-ordinate (i0,j0) to
155 the subvector with initial index i1 (and length m0*n0)
156 -- rows are copied contiguously
157 -- out is resized if necessary */
158 VEC *mv_move(in,i0,j0,m0,n0,out,i1)
159 MAT *in;
160 VEC *out;
161 int i0, j0, m0, n0, i1;
162 {
163 int dim1, i;
164
165 if ( ! in )
166 error(E_NULL,"mv_move");
167 if ( i0 < 0 || j0 < 0 || m0 < 0 || n0 < 0 || i1 < 0 ||
168 i0+m0 > in->m || j0+n0 > in->n )
169 error(E_BOUNDS,"mv_move");
170
171 dim1 = m0*n0;
172 if ( (! out) || i1+dim1 > out->dim )
173 out = v_resize(out,i1+dim1);
174
175 for ( i = 0; i < m0; i++ )
176 MEM_COPY(&(in->me[i0+i][j0]),&(out->ve[i1+i*n0]),n0*sizeof(Real));
177
178 return out;
179 }
180
181 /* vm_move -- copies selected piece of vector to a matrix
182 -- moves the subvector with initial index i0 and length m1*n1 to
183 the m1 x n1 submatrix with top-left co-ordinate (i1,j1)
184 -- copying is done by rows
185 -- out is resized if necessary */
186 MAT *vm_move(in,i0,out,i1,j1,m1,n1)
187 VEC *in;
188 MAT *out;
189 int i0, i1, j1, m1, n1;
190 {
191 int dim0, i;
192
193 if ( ! in )
194 error(E_NULL,"vm_move");
195 if ( i0 < 0 || i1 < 0 || j1 < 0 || m1 < 0 || n1 < 0 ||
196 i0+m1*n1 > in->dim )
197 error(E_BOUNDS,"vm_move");
198
199 if ( ! out )
200 out = m_resize(out,i1+m1,j1+n1);
201 else
202 out = m_resize(out,max(i1+m1,out->m),max(j1+n1,out->n));
203
204 dim0 = m1*n1;
205 for ( i = 0; i < m1; i++ )
206 MEM_COPY(&(in->ve[i0+i*n1]),&(out->me[i1+i][j1]),n1*sizeof(Real));
207
208 return out;
209 }
+0
-25
interface/src/scilab/src/c/copyright less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
+0
-343
interface/src/scilab/src/c/err.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Stewart & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 File with basic error-handling operations
28 Based on previous version on Zilog
29 System 8000 setret() etc.
30 Ported to Pyramid 9810 late 1987
31 */
32
33 static char rcsid[] = "$Id: err.c 3865 2011-11-02 06:38:43Z ycollet $";
34
35 #include <stdio.h>
36 #include <setjmp.h>
37 #include <ctype.h>
38 #include "err.h"
39
40
41 #ifdef SYSV
42 /* AT&T System V */
43 #include <sys/signal.h>
44 #else
45 /* something else -- assume BSD or ANSI C */
46 #include <signal.h>
47 #endif
48
49
50
51 #define FALSE 0
52 #define TRUE 1
53
54 #define EF_EXIT 0
55 #define EF_ABORT 1
56 #define EF_JUMP 2
57 #define EF_SILENT 3
58
59 /* The only error caught in this file! */
60 #define E_SIGNAL 16
61
62 static char *err_mesg[] =
63 { "unknown error", /* 0 */
64 "sizes of objects don't match", /* 1 */
65 "index out of bounds", /* 2 */
66 "can't allocate memory", /* 3 */
67 "singular matrix", /* 4 */
68 "matrix not positive definite", /* 5 */
69 "incorrect format input", /* 6 */
70 "bad input file/device", /* 7 */
71 "NULL objects passed", /* 8 */
72 "matrix not square", /* 9 */
73 "object out of range", /* 10 */
74 "can't do operation in situ for non-square matrix", /* 11 */
75 "can't do operation in situ", /* 12 */
76 "excessive number of iterations", /* 13 */
77 "convergence criterion failed", /* 14 */
78 "bad starting value", /* 15 */
79 "floating exception", /* 16 */
80 "internal inconsistency (data structure)",/* 17 */
81 "unexpected end-of-file", /* 18 */
82 "shared vectors (cannot release them)", /* 19 */
83 "negative argument", /* 20 */
84 "cannot overwrite object", /* 21 */
85 "breakdown in iterative method" /* 22 */
86 };
87
88 #define MAXERR (sizeof(err_mesg)/sizeof(char *))
89
90 static char *warn_mesg[] = {
91 "unknown warning", /* 0 */
92 "wrong type number (use macro TYPE_*)", /* 1 */
93 "no corresponding mem_stat_mark", /* 2 */
94 "computed norm of a residual is less than 0", /* 3 */
95 "resizing a shared vector" /* 4 */
96 };
97
98 #define MAXWARN (sizeof(warn_mesg)/sizeof(char *))
99
100
101
102 #define MAX_ERRS 100
103
104 #ifdef _MSC_VER
105 jmp_buf __declspec(dllexport) restart;
106 #else
107 jmp_buf restart;
108 #endif
109
110 /* array of pointers to lists of errors */
111
112 typedef struct {
113 char **listp; /* pointer to a list of errors */
114 unsigned len; /* length of the list */
115 unsigned warn; /* =FALSE - errors, =TRUE - warnings */
116 } Err_list;
117
118 static Err_list err_list[ERR_LIST_MAX_LEN] = {
119 {err_mesg,MAXERR,FALSE}, /* basic errors list */
120 {warn_mesg,MAXWARN,TRUE} /* basic warnings list */
121 };
122
123
124 static int err_list_end = 2; /* number of elements in err_list */
125
126 /* attach a new list of errors pointed by err_ptr
127 or change a previous one;
128 list_len is the number of elements in the list;
129 list_num is the list number;
130 warn == FALSE - errors (stop the program),
131 warn == TRUE - warnings (continue the program);
132 Note: lists numbered 0 and 1 are attached automatically,
133 you do not need to do it
134 */
135 int err_list_attach(list_num, list_len,err_ptr,warn)
136 int list_num, list_len, warn;
137 char **err_ptr;
138 {
139 if (list_num < 0 || list_len <= 0 ||
140 err_ptr == (char **)NULL)
141 return -1;
142
143 if (list_num >= ERR_LIST_MAX_LEN) {
144 fprintf(stderr,"\n file \"%s\": %s %s\n",
145 "err.c","increase the value of ERR_LIST_MAX_LEN",
146 "in matrix.h and zmatdef.h");
147 if ( ! isatty(fileno(stdout)) )
148 fprintf(stderr,"\n file \"%s\": %s %s\n",
149 "err.c","increase the value of ERR_LIST_MAX_LEN",
150 "in matrix.h and zmatdef.h");
151 printf("Exiting program\n");
152 exit(0);
153 }
154
155 if (err_list[list_num].listp != (char **)NULL &&
156 err_list[list_num].listp != err_ptr)
157 free((char *)err_list[list_num].listp);
158 err_list[list_num].listp = err_ptr;
159 err_list[list_num].len = list_len;
160 err_list[list_num].warn = warn;
161 err_list_end = list_num+1;
162
163 return list_num;
164 }
165
166
167 /* release the error list numbered list_num */
168 int err_list_free(list_num)
169 int list_num;
170 {
171 if (list_num < 0 || list_num >= err_list_end) return -1;
172 if (err_list[list_num].listp != (char **)NULL) {
173 err_list[list_num].listp = (char **)NULL;
174 err_list[list_num].len = 0;
175 err_list[list_num].warn = 0;
176 }
177 return 0;
178 }
179
180
181 /* check if list_num is attached;
182 return FALSE if not;
183 return TRUE if yes
184 */
185 int err_is_list_attached(list_num)
186 int list_num;
187 {
188 if (list_num < 0 || list_num >= err_list_end)
189 return FALSE;
190
191 if (err_list[list_num].listp != (char **)NULL)
192 return TRUE;
193
194 return FALSE;
195 }
196
197 /* other local variables */
198
199 static int err_flag = EF_EXIT, num_errs = 0, cnt_errs = 1;
200
201 /* set_err_flag -- sets err_flag -- returns old err_flag */
202 int set_err_flag(flag)
203 int flag;
204 {
205 int tmp;
206
207 tmp = err_flag;
208 err_flag = flag;
209 return tmp;
210 }
211
212 /* count_errs -- sets cnt_errs (TRUE/FALSE) & returns old value */
213 int count_errs(flag)
214 int flag;
215 {
216 int tmp;
217
218 tmp = cnt_errs;
219 cnt_errs = flag;
220 return tmp;
221 }
222
223 /* ev_err -- reports error (err_num) in file "file" at line "line_num" and
224 returns to user error handler;
225 list_num is an error list number (0 is the basic list
226 pointed by err_mesg, 1 is the basic list of warnings)
227 */
228 int ev_err(file,err_num,line_num,fn_name,list_num)
229 char *file, *fn_name;
230 int err_num, line_num,list_num;
231 {
232 int num;
233
234 if ( err_num < 0 ) err_num = 0;
235
236 if (list_num < 0 || list_num >= err_list_end ||
237 err_list[list_num].listp == (char **)NULL) {
238 fprintf(stderr,
239 "\n Not (properly) attached list of errors: list_num = %d\n",
240 list_num);
241 fprintf(stderr," Call \"err_list_attach\" in your program\n");
242 if ( ! isatty(fileno(stdout)) ) {
243 fprintf(stderr,
244 "\n Not (properly) attached list of errors: list_num = %d\n",
245 list_num);
246 fprintf(stderr," Call \"err_list_attach\" in your program\n");
247 }
248 printf("\nExiting program\n");
249 exit(0);
250 }
251
252 num = err_num;
253 if ( num >= err_list[list_num].len ) num = 0;
254
255 if ( cnt_errs && ++num_errs >= MAX_ERRS ) /* too many errors */
256 {
257 fprintf(stderr,"\n\"%s\", line %d: %s in function %s()\n",
258 file,line_num,err_list[list_num].listp[num],
259 isascii(*fn_name) ? fn_name : "???");
260 if ( ! isatty(fileno(stdout)) )
261 fprintf(stdout,"\n\"%s\", line %d: %s in function %s()\n",
262 file,line_num,err_list[list_num].listp[num],
263 isascii(*fn_name) ? fn_name : "???");
264 printf("Sorry, too many errors: %d\n",num_errs);
265 printf("Exiting program\n");
266 exit(0);
267 }
268 if ( err_list[list_num].warn )
269 switch ( err_flag )
270 {
271 case EF_SILENT: break;
272 default:
273 fprintf(stderr,"\n\"%s\", line %d: %s in function %s()\n\n",
274 file,line_num,err_list[list_num].listp[num],
275 isascii(*fn_name) ? fn_name : "???");
276 if ( ! isatty(fileno(stdout)) )
277 fprintf(stdout,"\n\"%s\", line %d: %s in function %s()\n\n",
278 file,line_num,err_list[list_num].listp[num],
279 isascii(*fn_name) ? fn_name : "???");
280 break;
281 }
282 else
283 switch ( err_flag )
284 {
285 case EF_SILENT:
286 longjmp(restart,(err_num==0)? -1 : err_num);
287 break;
288 case EF_ABORT:
289 fprintf(stderr,"\n\"%s\", line %d: %s in function %s()\n",
290 file,line_num,err_list[list_num].listp[num],
291 isascii(*fn_name) ? fn_name : "???");
292 if ( ! isatty(fileno(stdout)) )
293 fprintf(stdout,"\n\"%s\", line %d: %s in function %s()\n",
294 file,line_num,err_list[list_num].listp[num],
295 isascii(*fn_name) ? fn_name : "???");
296 abort();
297 break;
298 case EF_JUMP:
299 fprintf(stderr,"\n\"%s\", line %d: %s in function %s()\n",
300 file,line_num,err_list[list_num].listp[num],
301 isascii(*fn_name) ? fn_name : "???");
302 if ( ! isatty(fileno(stdout)) )
303 fprintf(stdout,"\n\"%s\", line %d: %s in function %s()\n",
304 file,line_num,err_list[list_num].listp[num],
305 isascii(*fn_name) ? fn_name : "???");
306 longjmp(restart,(err_num==0)? -1 : err_num);
307 break;
308 default:
309 fprintf(stderr,"\n\"%s\", line %d: %s in function %s()\n\n",
310 file,line_num,err_list[list_num].listp[num],
311 isascii(*fn_name) ? fn_name : "???");
312 if ( ! isatty(fileno(stdout)) )
313 fprintf(stdout,"\n\"%s\", line %d: %s in function %s()\n\n",
314 file,line_num,err_list[list_num].listp[num],
315 isascii(*fn_name) ? fn_name : "???");
316
317 break;
318 }
319
320 /* ensure exit if fall through */
321 if ( ! err_list[list_num].warn ) exit(0);
322
323 return 0;
324 }
325
326 /* float_error -- catches floating arithmetic signals */
327 static void float_error(num)
328 int num;
329 {
330 signal(SIGFPE,float_error);
331 /* fprintf(stderr,"SIGFPE: signal #%d\n",num); */
332 /* fprintf(stderr,"errno = %d\n",errno); */
333 ev_err("???.c",E_SIGNAL,0,"???",0);
334 }
335
336 /* catch_signal -- sets up float_error() to catch SIGFPE's */
337 void catch_FPE()
338 {
339 signal(SIGFPE,float_error);
340 }
341
342
+0
-190
interface/src/scilab/src/c/err.h less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Stewart & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* err.h 28/09/1993 */
27
28 /* RCS id: $Id: err.h 3885 2011-11-08 20:05:30Z ycollet $ */
29
30
31 #ifndef ERRHEADER
32 #define ERRHEADER
33
34
35 #include <setjmp.h>
36 #include "machine.h"
37
38 /* Error recovery */
39
40 #ifdef _MSC_VER
41 #ifdef DLLIMPORT
42 jmp_buf __declspec(dllimport) restart;
43 #else
44 jmp_buf __declspec(dllexport) restart;
45 #endif
46 #else
47 extern jmp_buf restart;
48 #endif
49
50 /* max. # of error lists */
51 #define ERR_LIST_MAX_LEN 10
52
53 /* main error functions */
54 #ifndef ANSI_C
55 extern int ev_err(); /* main error handler */
56 extern int set_err_flag(); /* for different ways of handling
57 errors, returns old value */
58 extern int count_errs(); /* to avoid "too many errors" */
59 extern int err_list_attach(); /* for attaching a list of errors */
60 extern int err_is_list_attached(); /* checking if a list is attached */
61 extern int err_list_free(); /* freeing a list of errors */
62
63 #else /* ANSI_C */
64
65 extern int ev_err(char *,int,int,char *,int); /* main error handler */
66 extern int set_err_flag(int flag); /* for different ways of handling
67 errors, returns old value */
68 extern int count_errs(int true_false); /* to avoid "too many errors" */
69 extern int err_list_attach(int list_num, int list_len,
70 char **err_ptr,int warn); /* for attaching a list of errors */
71 extern int err_is_list_attached(int list_num); /* checking if a list
72 is attached */
73 extern int err_list_free(int list_num); /* freeing a list of errors */
74
75 #endif
76
77
78 /* error(E_TYPE,"myfunc") raises error type E_TYPE for function my_func() */
79 #define error(err_num,fn_name) ev_err(__FILE__,err_num,__LINE__,fn_name,0)
80
81 /* warning(WARN_TYPE,"myfunc") raises warning type WARN_TYPE for
82 function my_func() */
83 #define warning(err_num,fn_name) ev_err(__FILE__,err_num,__LINE__,fn_name,1)
84
85
86 /* error flags */
87 #define EF_EXIT 0 /* exit on error */
88 #define EF_ABORT 1 /* abort (dump core) on error */
89 #define EF_JUMP 2 /* jump on error */
90 #define EF_SILENT 3 /* jump, but don't print message */
91 #define ERREXIT() set_err_flag(EF_EXIT)
92 #define ERRABORT() set_err_flag(EF_ABORT)
93 /* don't print message */
94 #define SILENTERR() if ( ! setjmp(restart) ) set_err_flag(EF_SILENT)
95 /* return here on error */
96 #define ON_ERROR() if ( ! setjmp(restart) ) set_err_flag(EF_JUMP)
97
98
99 /* error types */
100 #define E_UNKNOWN 0
101 #define E_SIZES 1
102 #define E_BOUNDS 2
103 #define E_MEM 3
104 #define E_SING 4
105 #define E_POSDEF 5
106 #define E_FORMAT 6
107 #define E_INPUT 7
108 #define E_NULL 8
109 #define E_SQUARE 9
110 #define E_RANGE 10
111 #define E_INSITU2 11
112 #define E_INSITU 12
113 #define E_ITER 13
114 #define E_CONV 14
115 #define E_START 15
116 #define E_SIGNAL 16
117 #define E_INTERN 17
118 #define E_EOF 18
119 #define E_SHARED_VECS 19
120 #define E_NEG 20
121 #define E_OVERWRITE 21
122 #define E_BREAKDOWN 22
123
124 /* warning types */
125 #define WARN_UNKNOWN 0
126 #define WARN_WRONG_TYPE 1
127 #define WARN_NO_MARK 2
128 #define WARN_RES_LESS_0 3
129 #define WARN_SHARED_VEC 4
130
131
132 /* error catching macros */
133
134 /* execute err_part if error errnum is raised while executing ok_part */
135 #define catch(errnum,ok_part,err_part) \
136 { jmp_buf _save; int _err_num, _old_flag; \
137 _old_flag = set_err_flag(EF_SILENT); \
138 MEM_COPY(restart,_save,sizeof(jmp_buf)); \
139 if ( (_err_num=setjmp(restart)) == 0 ) \
140 { ok_part; \
141 set_err_flag(_old_flag); \
142 MEM_COPY(_save,restart,sizeof(jmp_buf)); } \
143 else if ( _err_num == errnum ) \
144 { set_err_flag(_old_flag); \
145 MEM_COPY(_save,restart,sizeof(jmp_buf)); \
146 err_part; } \
147 else { set_err_flag(_old_flag); \
148 MEM_COPY(_save,restart,sizeof(jmp_buf)); \
149 error(_err_num,"catch"); \
150 } \
151 }
152
153
154 /* execute err_part if any error raised while executing ok_part */
155 #define catchall(ok_part,err_part) \
156 { jmp_buf _save; int _err_num, _old_flag; \
157 _old_flag = set_err_flag(EF_SILENT); \
158 MEM_COPY(restart,_save,sizeof(jmp_buf)); \
159 if ( (_err_num=setjmp(restart)) == 0 ) \
160 { ok_part; \
161 set_err_flag(_old_flag); \
162 MEM_COPY(_save,restart,sizeof(jmp_buf)); } \
163 else \
164 { set_err_flag(_old_flag); \
165 MEM_COPY(_save,restart,sizeof(jmp_buf)); \
166 err_part; } \
167 }
168
169
170 /* print message if error raised while executing ok_part,
171 then re-raise error to trace calls */
172 #define tracecatch(ok_part,function) \
173 { jmp_buf _save; int _err_num, _old_flag; \
174 _old_flag = set_err_flag(EF_JUMP); \
175 MEM_COPY(restart,_save,sizeof(jmp_buf)); \
176 if ( (_err_num=setjmp(restart)) == 0 ) \
177 { ok_part; \
178 set_err_flag(_old_flag); \
179 MEM_COPY(_save,restart,sizeof(jmp_buf)); } \
180 else \
181 { set_err_flag(_old_flag); \
182 MEM_COPY(_save,restart,sizeof(jmp_buf)); \
183 error(_err_num,function); } \
184 }
185
186
187
188 #endif /* ERRHEADER */
189
+0
-500
interface/src/scilab/src/c/extras.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Memory port routines: MEM_COPY and MEM_ZERO
28 */
29
30 /* For BSD 4.[23] environments: using bcopy() and bzero() */
31
32 #include "machine.h"
33
34 #ifndef MEM_COPY
35 void MEM_COPY(from,to,len)
36 char *from, *to;
37 int len;
38 {
39 int i;
40
41 if ( from < to )
42 {
43 for ( i = 0; i < len; i++ )
44 *to++ = *from++;
45 }
46 else
47 {
48 from += len; to += len;
49 for ( i = 0; i < len; i++ )
50 *(--to) = *(--from);
51 }
52 }
53 #endif
54
55 #ifndef MEM_ZERO
56 void MEM_ZERO(ptr,len)
57 char *ptr;
58 int len;
59 {
60 int i;
61
62 for ( i = 0; i < len; i++ )
63 *(ptr++) = '\0';
64 }
65 #endif
66
67 /*
68 This file contains versions of something approximating the well-known
69 BLAS routines in C, suitable for Meschach (hence the `m').
70 These are "vanilla" implementations, at least with some consideration
71 of the effects of caching and paging, and maybe some loop unrolling
72 for register-rich machines
73 */
74
75 /*
76 Organisation of matrices: it is assumed that matrices are represented
77 by Real **'s. To keep flexibility, there is also an "initial
78 column" parameter j0, so that the actual elements used are
79 A[0][j0], A[0][j0+1], ..., A[0][j0+n-1]
80 A[1][j0], A[1][j0+1], ..., A[1][j0+n-1]
81 .. .. ... ..
82 A[m-1][j0], A[m-1][j0+1], ..., A[m-1][j0+n-1]
83 */
84
85 static char rcsid[] = "$Id: extras.c 3690 2010-09-02 09:55:19Z lsaavedr $";
86
87 #include <math.h>
88
89 #define REGISTER_RICH 1
90
91 /* mblar-1 routines */
92
93 /* Mscale -- sets x <- alpha.x */
94 void Mscale(len,alpha,x)
95 int len;
96 double alpha;
97 Real *x;
98 {
99 register int i;
100
101 for ( i = 0; i < len; i++ )
102 x[i] *= alpha;
103 }
104
105 /* Mswap -- swaps x and y */
106 void Mswap(len,x,y)
107 int len;
108 Real *x, *y;
109 {
110 register int i;
111 register Real tmp;
112
113 for ( i = 0; i < len; i++ )
114 {
115 tmp = x[i];
116 x[i] = y[i];
117 y[i] = tmp;
118 }
119 }
120
121 /* Mcopy -- copies x to y */
122 void Mcopy(len,x,y)
123 int len;
124 Real *x, *y;
125 {
126 register int i;
127
128 for ( i = 0; i < len; i++ )
129 y[i] = x[i];
130 }
131
132 /* Maxpy -- y <- y + alpha.x */
133 void Maxpy(len,alpha,x,y)
134 int len;
135 double alpha;
136 Real *x, *y;
137 {
138 register int i, len4;
139
140 /****************************************
141 for ( i = 0; i < len; i++ )
142 y[i] += alpha*x[i];
143 ****************************************/
144
145 #ifdef REGISTER_RICH
146 len4 = len / 4;
147 len = len % 4;
148 for ( i = 0; i < len4; i++ )
149 {
150 y[4*i] += alpha*x[4*i];
151 y[4*i+1] += alpha*x[4*i+1];
152 y[4*i+2] += alpha*x[4*i+2];
153 y[4*i+3] += alpha*x[4*i+3];
154 }
155 x += 4*len4; y += 4*len4;
156 #endif
157 for ( i = 0; i < len; i++ )
158 y[i] += alpha*x[i];
159 }
160
161 /* Mdot -- returns x'.y */
162 double Mdot(len,x,y)
163 int len;
164 Real *x, *y;
165 {
166 register int i, len4;
167 register Real sum;
168
169 #ifndef REGISTER_RICH
170 sum = 0.0;
171 #endif
172
173 #ifdef REGISTER_RICH
174 register Real sum0, sum1, sum2, sum3;
175
176 sum0 = sum1 = sum2 = sum3 = 0.0;
177
178 len4 = len / 4;
179 len = len % 4;
180
181 for ( i = 0; i < len4; i++ )
182 {
183 sum0 += x[4*i ]*y[4*i ];
184 sum1 += x[4*i+1]*y[4*i+1];
185 sum2 += x[4*i+2]*y[4*i+2];
186 sum3 += x[4*i+3]*y[4*i+3];
187 }
188 sum = sum0 + sum1 + sum2 + sum3;
189 x += 4*len4; y += 4*len4;
190 #endif
191
192 for ( i = 0; i < len; i++ )
193 sum += x[i]*y[i];
194
195 return sum;
196 }
197
198 #ifndef ABS
199 #define ABS(x) ((x) >= 0 ? (x) : -(x))
200 #endif
201
202 /* Mnorminf -- returns ||x||_inf */
203 double Mnorminf(len,x)
204 int len;
205 Real *x;
206 {
207 register int i;
208 register Real tmp, max_val;
209
210 max_val = 0.0;
211 for ( i = 0; i < len; i++ )
212 {
213 tmp = ABS(x[i]);
214 if ( max_val < tmp )
215 max_val = tmp;
216 }
217
218 return max_val;
219 }
220
221 /* Mnorm1 -- returns ||x||_1 */
222 double Mnorm1(len,x)
223 int len;
224 Real *x;
225 {
226 register int i;
227 register Real sum;
228
229 sum = 0.0;
230 for ( i = 0; i < len; i++ )
231 sum += ABS(x[i]);
232
233 return sum;
234 }
235
236 /* Mnorm2 -- returns ||x||_2 */
237 double Mnorm2(len,x)
238 int len;
239 Real *x;
240 {
241 register int i;
242 register Real norm, invnorm, sum, tmp;
243
244 norm = Mnorminf(len,x);
245 if ( norm == 0.0 )
246 return 0.0;
247 invnorm = 1.0/norm;
248 sum = 0.0;
249 for ( i = 0; i < len; i++ )
250 {
251 tmp = x[i]*invnorm;
252 sum += tmp*tmp;
253 }
254
255 return sum/invnorm;
256 }
257
258 /* mblar-2 routines */
259
260 /* Mmv -- y <- alpha.A.x + beta.y */
261 void Mmv(m,n,alpha,A,j0,x,beta,y)
262 int m, n, j0;
263 double alpha, beta;
264 Real **A, *x, *y;
265 {
266 register int i, j, m4, n4;
267 register Real sum0, sum1, sum2, sum3, tmp0, tmp1, tmp2, tmp3;
268 register Real *dp0, *dp1, *dp2, *dp3;
269
270 /****************************************
271 for ( i = 0; i < m; i++ )
272 y[i] += alpha*Mdot(n,&(A[i][j0]),x);
273 ****************************************/
274
275 m4 = n4 = 0;
276
277 #ifdef REGISTER_RICH
278 m4 = m / 4;
279 m = m % 4;
280 n4 = n / 4;
281 n = n % 4;
282
283 for ( i = 0; i < m4; i++ )
284 {
285 sum0 = sum1 = sum2 = sum3 = 0.0;
286 dp0 = &(A[4*i ][j0]);
287 dp1 = &(A[4*i+1][j0]);
288 dp2 = &(A[4*i+2][j0]);
289 dp3 = &(A[4*i+3][j0]);
290
291 for ( j = 0; j < n4; j++ )
292 {
293 tmp0 = x[4*j ];
294 tmp1 = x[4*j+1];
295 tmp2 = x[4*j+2];
296 tmp3 = x[4*j+3];
297 sum0 = sum0 + dp0[j]*tmp0 + dp0[j+1]*tmp1 +
298 dp0[j+2]*tmp2 + dp0[j+3]*tmp3;
299 sum1 = sum1 + dp1[j]*tmp0 + dp1[j+1]*tmp1 +
300 dp1[j+2]*tmp2 + dp1[j+3]*tmp3;
301 sum2 = sum2 + dp2[j]*tmp0 + dp2[j+1]*tmp1 +
302 dp2[j+2]*tmp2 + dp2[j+3]*tmp3;
303 sum3 = sum3 + dp3[j]*tmp0 + dp3[j+1]*tmp2 +
304 dp3[j+2]*tmp2 + dp3[j+3]*tmp3;
305 }
306 for ( j = 0; j < n; j++ )
307 {
308 sum0 += dp0[4*n4+j]*x[4*n4+j];
309 sum1 += dp1[4*n4+j]*x[4*n4+j];
310 sum2 += dp2[4*n4+j]*x[4*n4+j];
311 sum3 += dp3[4*n4+j]*x[4*n4+j];
312 }
313 y[4*i ] = beta*y[4*i ] + alpha*sum0;
314 y[4*i+1] = beta*y[4*i+1] + alpha*sum1;
315 y[4*i+2] = beta*y[4*i+2] + alpha*sum2;
316 y[4*i+3] = beta*y[4*i+3] + alpha*sum3;
317 }
318 #endif
319
320 for ( i = 0; i < m; i++ )
321 y[4*m4+i] = beta*y[i] + alpha*Mdot(4*n4+n,&(A[4*m4+i][j0]),x);
322 }
323
324 /* Mvm -- y <- alpha.A^T.x + beta.y */
325 void Mvm(m,n,alpha,A,j0,x,beta,y)
326 int m, n, j0;
327 double alpha, beta;
328 Real **A, *x, *y;
329 {
330 register int i, j, m4, n2;
331 register Real *Aref;
332 register Real tmp;
333
334 #ifdef REGISTER_RICH
335 register Real *Aref0, *Aref1;
336 register Real tmp0, tmp1;
337 register Real yval0, yval1, yval2, yval3;
338 #endif
339
340 if ( beta != 1.0 )
341 Mscale(m,beta,y);
342 /****************************************
343 for ( j = 0; j < n; j++ )
344 Maxpy(m,alpha*x[j],&(A[j][j0]),y);
345 ****************************************/
346 m4 = n2 = 0;
347
348 m4 = m / 4;
349 m = m % 4;
350 #ifdef REGISTER_RICH
351 n2 = n / 2;
352 n = n % 2;
353
354 for ( j = 0; j < n2; j++ )
355 {
356 tmp0 = alpha*x[2*j];
357 tmp1 = alpha*x[2*j+1];
358 Aref0 = &(A[2*j ][j0]);
359 Aref1 = &(A[2*j+1][j0]);
360 for ( i = 0; i < m4; i++ )
361 {
362 yval0 = y[4*i ] + tmp0*Aref0[4*i ];
363 yval1 = y[4*i+1] + tmp0*Aref0[4*i+1];
364 yval2 = y[4*i+2] + tmp0*Aref0[4*i+2];
365 yval3 = y[4*i+3] + tmp0*Aref0[4*i+3];
366 y[4*i ] = yval0 + tmp1*Aref1[4*i ];
367 y[4*i+1] = yval1 + tmp1*Aref1[4*i+1];
368 y[4*i+2] = yval2 + tmp1*Aref1[4*i+2];
369 y[4*i+3] = yval3 + tmp1*Aref1[4*i+3];
370 }
371 y += 4*m4; Aref0 += 4*m4; Aref1 += 4*m4;
372 for ( i = 0; i < m; i++ )
373 y[i] += tmp0*Aref0[i] + tmp1*Aref1[i];
374 }
375 #endif
376
377 for ( j = 0; j < n; j++ )
378 {
379 tmp = alpha*x[2*n2+j];
380 Aref = &(A[2*n2+j][j0]);
381 for ( i = 0; i < m4; i++ )
382 {
383 y[4*i ] += tmp*Aref[4*i ];
384 y[4*i+1] += tmp*Aref[4*i+1];
385 y[4*i+2] += tmp*Aref[4*i+2];
386 y[4*i+3] += tmp*Aref[4*i+3];
387 }
388 y += 4*m4; Aref += 4*m4;
389 for ( i = 0; i < m; i++ )
390 y[i] += tmp*Aref[i];
391 }
392 }
393
394 /* Mupdate -- A <- A + alpha.x.y^T */
395 void Mupdate(m,n,alpha,x,y,A,j0)
396 int m, n, j0;
397 double alpha;
398 Real **A, *x, *y;
399 {
400 register int i, j, n4;
401 register Real *Aref;
402 register Real tmp;
403
404 /****************************************
405 for ( i = 0; i < m; i++ )
406 Maxpy(n,alpha*x[i],y,&(A[i][j0]));
407 ****************************************/
408
409 n4 = n / 4;
410 n = n % 4;
411 for ( i = 0; i < m; i++ )
412 {
413 tmp = alpha*x[i];
414 Aref = &(A[i][j0]);
415 for ( j = 0; j < n4; j++ )
416 {
417 Aref[4*j ] += tmp*y[4*j ];
418 Aref[4*j+1] += tmp*y[4*j+1];
419 Aref[4*j+2] += tmp*y[4*j+2];
420 Aref[4*j+3] += tmp*y[4*j+3];
421 }
422 Aref += 4*n4; y += 4*n4;
423 for ( j = 0; j < n; j++ )
424 Aref[j] += tmp*y[j];
425 }
426 }
427
428 /* mblar-3 routines */
429
430 /* Mmm -- C <- C + alpha.A.B */
431 void Mmm(m,n,p,alpha,A,Aj0,B,Bj0,C,Cj0)
432 int m, n, p; /* C is m x n */
433 double alpha;
434 Real **A, **B, **C;
435 int Aj0, Bj0, Cj0;
436 {
437 register int i, j, k;
438 /* register Real tmp, sum; */
439
440 /****************************************
441 for ( i = 0; i < m; i++ )
442 for ( k = 0; k < p; k++ )
443 Maxpy(n,alpha*A[i][Aj0+k],&(B[k][Bj0]),&(C[i][Cj0]));
444 ****************************************/
445 for ( i = 0; i < m; i++ )
446 Mvm(p,n,alpha,B,Bj0,&(A[i][Aj0]),1.0,&(C[i][Cj0]));
447 }
448
449 /* Mmtrm -- C <- C + alpha.A^T.B */
450 void Mmtrm(m,n,p,alpha,A,Aj0,B,Bj0,C,Cj0)
451 int m, n, p; /* C is m x n */
452 double alpha;
453 Real **A, **B, **C;
454 int Aj0, Bj0, Cj0;
455 {
456 register int i, j, k;
457
458 /****************************************
459 for ( i = 0; i < m; i++ )
460 for ( k = 0; k < p; k++ )
461 Maxpy(n,alpha*A[k][Aj0+i],&(B[k][Bj0]),&(C[i][Cj0]));
462 ****************************************/
463 for ( k = 0; k < p; k++ )
464 Mupdate(m,n,alpha,&(A[k][Aj0]),&(B[k][Bj0]),C,Cj0);
465 }
466
467 /* Mmmtr -- C <- C + alpha.A.B^T */
468 void Mmmtr(m,n,p,alpha,A,Aj0,B,Bj0,C,Cj0)
469 int m, n, p; /* C is m x n */
470 double alpha;
471 Real **A, **B, **C;
472 int Aj0, Bj0, Cj0;
473 {
474 register int i, j, k;
475
476 /****************************************
477 for ( i = 0; i < m; i++ )
478 for ( j = 0; j < n; j++ )
479 C[i][Cj0+j] += alpha*Mdot(p,&(A[i][Aj0]),&(B[j][Bj0]));
480 ****************************************/
481 for ( i = 0; i < m; i++ )
482 Mmv(n,p,alpha,&(A[i][Aj0]),B,Bj0,&(C[i][Cj0]));
483 }
484
485 /* Mmtrmtr -- C <- C + alpha.A^T.B^T */
486 void Mmtrmtr(m,n,p,alpha,A,Aj0,B,Bj0,C,Cj0)
487 int m, n, p; /* C is m x n */
488 double alpha;
489 Real **A, **B, **C;
490 int Aj0, Bj0, Cj0;
491 {
492 register int i, j, k;
493
494 for ( i = 0; i < m; i++ )
495 for ( j = 0; j < n; j++ )
496 for ( k = 0; k < p; k++ )
497 C[i][Cj0+j] += A[i][Aj0+k]*B[k][Bj0+j];
498 }
499
+0
-144
interface/src/scilab/src/c/fft.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Fast Fourier Transform routine
28 Loosely based on the Fortran routine in Rabiner & Gold's
29 "Digital Signal Processing"
30 */
31
32 static char rcsid[] = "$Id: fft.c 3690 2010-09-02 09:55:19Z lsaavedr $";
33
34 #include <stdio.h>
35 #include "matrix.h"
36 #include "matrix2.h"
37 #include <math.h>
38
39
40 /* fft -- d.i.t. fast Fourier transform
41 -- radix-2 FFT only
42 -- vector extended to a power of 2 */
43 void fft(x_re,x_im)
44 VEC *x_re, *x_im;
45 {
46 int i, ip, j, k, li, n, length;
47 Real *xr, *xi;
48 Real theta, pi = 3.1415926535897932384;
49 Real w_re, w_im, u_re, u_im, t_re, t_im;
50 Real tmp, tmpr, tmpi;
51
52 if ( ! x_re || ! x_im )
53 error(E_NULL,"fft");
54 if ( x_re->dim != x_im->dim )
55 error(E_SIZES,"fft");
56
57 n = 1;
58 while ( x_re->dim > n )
59 n *= 2;
60 x_re = v_resize(x_re,n);
61 x_im = v_resize(x_im,n);
62 printf("# fft: x_re =\n"); v_output(x_re);
63 printf("# fft: x_im =\n"); v_output(x_im);
64 xr = x_re->ve;
65 xi = x_im->ve;
66
67 /* Decimation in time (DIT) algorithm */
68 j = 0;
69 for ( i = 0; i < n-1; i++ )
70 {
71 if ( i < j )
72 {
73 tmp = xr[i];
74 xr[i] = xr[j];
75 xr[j] = tmp;
76 tmp = xi[i];
77 xi[i] = xi[j];
78 xi[j] = tmp;
79 }
80 k = n / 2;
81 while ( k <= j )
82 {
83 j -= k;
84 k /= 2;
85 }
86 j += k;
87 }
88
89 /* Actual FFT */
90 for ( li = 1; li < n; li *= 2 )
91 {
92 length = 2*li;
93 theta = pi/li;
94 u_re = 1.0;
95 u_im = 0.0;
96 if ( li == 1 )
97 {
98 w_re = -1.0;
99 w_im = 0.0;
100 }
101 else if ( li == 2 )
102 {
103 w_re = 0.0;
104 w_im = 1.0;
105 }
106 else
107 {
108 w_re = cos(theta);
109 w_im = sin(theta);
110 }
111 for ( j = 0; j < li; j++ )
112 {
113 for ( i = j; i < n; i += length )
114 {
115 ip = i + li;
116 /* step 1 */
117 t_re = xr[ip]*u_re - xi[ip]*u_im;
118 t_im = xr[ip]*u_im + xi[ip]*u_re;
119 /* step 2 */
120 xr[ip] = xr[i] - t_re;
121 xi[ip] = xi[i] - t_im;
122 /* step 3 */
123 xr[i] += t_re;
124 xi[i] += t_im;
125 }
126 tmpr = u_re*w_re - u_im*w_im;
127 tmpi = u_im*w_re + u_re*w_im;
128 u_re = tmpr;
129 u_im = tmpi;
130 }
131 }
132 }
133
134 /* ifft -- inverse FFT using the same interface as fft() */
135 void ifft(x_re,x_im)
136 VEC *x_re, *x_im;
137 {
138 /* we just use complex conjugates */
139
140 sv_mlt(-1.0,x_im,x_im);
141 fft(x_re,x_im);
142 sv_mlt(-1.0/((double)(x_re->dim)),x_im,x_im);
143 }
+0
-138
interface/src/scilab/src/c/givens.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26
27 /*
28 Files for matrix computations
29
30 Givens operations file. Contains routines for calculating and
31 applying givens rotations for/to vectors and also to matrices by
32 row and by column.
33 */
34
35 /* givens.c 1.2 11/25/87 */
36 static char rcsid[] = "$Id: givens.c 3690 2010-09-02 09:55:19Z lsaavedr $";
37
38 #include <stdio.h>
39 #include "matrix.h"
40 #include "matrix2.h"
41 #include <math.h>
42
43 /* givens -- returns c,s parameters for Givens rotation to
44 eliminate y in the vector [ x y ]' */
45 void givens(x,y,c,s)
46 double x,y;
47 Real *c,*s;
48 {
49 Real norm;
50
51 norm = sqrt(x*x+y*y);
52 if ( norm == 0.0 )
53 { *c = 1.0; *s = 0.0; } /* identity */
54 else
55 { *c = x/norm; *s = y/norm; }
56 }
57
58 /* rot_vec -- apply Givens rotation to x's i & k components */
59 VEC *rot_vec(x,i,k,c,s,out)
60 VEC *x,*out;
61 u_int i,k;
62 double c,s;
63 {
64 Real temp;
65
66 if ( x==VNULL )
67 error(E_NULL,"rot_vec");
68 if ( i >= x->dim || k >= x->dim )
69 error(E_RANGE,"rot_vec");
70 out = v_copy(x,out);
71
72 /* temp = c*out->ve[i] + s*out->ve[k]; */
73 temp = c*v_entry(out,i) + s*v_entry(out,k);
74 /* out->ve[k] = -s*out->ve[i] + c*out->ve[k]; */
75 v_set_val(out,k,-s*v_entry(out,i)+c*v_entry(out,k));
76 /* out->ve[i] = temp; */
77 v_set_val(out,i,temp);
78
79 return (out);
80 }
81
82 /* rot_rows -- premultiply mat by givens rotation described by c,s */
83 MAT *rot_rows(mat,i,k,c,s,out)
84 MAT *mat,*out;
85 u_int i,k;
86 double c,s;
87 {
88 u_int j;
89 Real temp;
90
91 if ( mat==(MAT *)NULL )
92 error(E_NULL,"rot_rows");
93 if ( i >= mat->m || k >= mat->m )
94 error(E_RANGE,"rot_rows");
95 out = m_copy(mat,out);
96
97 for ( j=0; j<mat->n; j++ )
98 {
99 /* temp = c*out->me[i][j] + s*out->me[k][j]; */
100 temp = c*m_entry(out,i,j) + s*m_entry(out,k,j);
101 /* out->me[k][j] = -s*out->me[i][j] + c*out->me[k][j]; */
102 m_set_val(out,k,j, -s*m_entry(out,i,j) + c*m_entry(out,k,j));
103 /* out->me[i][j] = temp; */
104 m_set_val(out,i,j, temp);
105 }
106
107 return (out);
108 }
109
110 /* rot_cols -- postmultiply mat by givens rotation described by c,s */
111 MAT *rot_cols(mat,i,k,c,s,out)
112 MAT *mat,*out;
113 u_int i,k;
114 double c,s;
115 {
116 u_int j;
117 Real temp;
118
119 if ( mat==(MAT *)NULL )
120 error(E_NULL,"rot_cols");
121 if ( i >= mat->n || k >= mat->n )
122 error(E_RANGE,"rot_cols");
123 out = m_copy(mat,out);
124
125 for ( j=0; j<mat->m; j++ )
126 {
127 /* temp = c*out->me[j][i] + s*out->me[j][k]; */
128 temp = c*m_entry(out,j,i) + s*m_entry(out,j,k);
129 /* out->me[j][k] = -s*out->me[j][i] + c*out->me[j][k]; */
130 m_set_val(out,j,k, -s*m_entry(out,j,i) + c*m_entry(out,j,k));
131 /* out->me[j][i] = temp; */
132 m_set_val(out,j,i,temp);
133 }
134
135 return (out);
136 }
137
+0
-152
interface/src/scilab/src/c/hessen.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26
27 /*
28 File containing routines for determining Hessenberg
29 factorisations.
30 */
31
32 static char rcsid[] = "$Id: hessen.c 3690 2010-09-02 09:55:19Z lsaavedr $";
33
34 #include <stdio.h>
35 #include "matrix.h"
36 #include "matrix2.h"
37
38
39
40 /* Hfactor -- compute Hessenberg factorisation in compact form.
41 -- factorisation performed in situ
42 -- for details of the compact form see QRfactor.c and matrix2.doc */
43 MAT *Hfactor(A, diag, beta)
44 MAT *A;
45 VEC *diag, *beta;
46 {
47 static VEC *tmp1 = VNULL;
48 int k, limit;
49
50 if ( ! A || ! diag || ! beta )
51 error(E_NULL,"Hfactor");
52 if ( diag->dim < A->m - 1 || beta->dim < A->m - 1 )
53 error(E_SIZES,"Hfactor");
54 if ( A->m != A->n )
55 error(E_SQUARE,"Hfactor");
56 limit = A->m - 1;
57
58 tmp1 = v_resize(tmp1,A->m);
59 MEM_STAT_REG(tmp1,TYPE_VEC);
60
61 for ( k = 0; k < limit; k++ )
62 {
63 get_col(A,(u_int)k,tmp1);
64 /* printf("the %d'th column = "); v_output(tmp1); */
65 hhvec(tmp1,k+1,&beta->ve[k],tmp1,&A->me[k+1][k]);
66 /* diag->ve[k] = tmp1->ve[k+1]; */
67 v_set_val(diag,k,v_entry(tmp1,k+1));
68 /* printf("H/h vector = "); v_output(tmp1); */
69 /* printf("from the %d'th entry\n",k+1); */
70 /* printf("beta = %g\n",beta->ve[k]); */
71
72 /* hhtrcols(A,k+1,k+1,tmp1,beta->ve[k]); */
73 /* hhtrrows(A,0 ,k+1,tmp1,beta->ve[k]); */
74 hhtrcols(A,k+1,k+1,tmp1,v_entry(beta,k));
75 hhtrrows(A,0 ,k+1,tmp1,v_entry(beta,k));
76 /* printf("A = "); m_output(A); */
77 }
78
79 return (A);
80 }
81
82 /* makeHQ -- construct the Hessenberg orthogonalising matrix Q;
83 -- i.e. Hess M = Q.M.Q' */
84 MAT *makeHQ(H, diag, beta, Qout)
85 MAT *H, *Qout;
86 VEC *diag, *beta;
87 {
88 int i, j, limit;
89 static VEC *tmp1 = VNULL, *tmp2 = VNULL;
90
91 if ( H==(MAT *)NULL || diag==(VEC *)NULL || beta==(VEC *)NULL )
92 error(E_NULL,"makeHQ");
93 limit = H->m - 1;
94 if ( diag->dim < limit || beta->dim < limit )
95 error(E_SIZES,"makeHQ");
96 if ( H->m != H->n )
97 error(E_SQUARE,"makeHQ");
98 Qout = m_resize(Qout,H->m,H->m);
99
100 tmp1 = v_resize(tmp1,H->m);
101 tmp2 = v_resize(tmp2,H->m);
102 MEM_STAT_REG(tmp1,TYPE_VEC);
103 MEM_STAT_REG(tmp2,TYPE_VEC);
104
105 for ( i = 0; i < H->m; i++ )
106 {
107 /* tmp1 = i'th basis vector */
108 for ( j = 0; j < H->m; j++ )
109 /* tmp1->ve[j] = 0.0; */
110 v_set_val(tmp1,j,0.0);
111 /* tmp1->ve[i] = 1.0; */
112 v_set_val(tmp1,i,1.0);
113
114 /* apply H/h transforms in reverse order */
115 for ( j = limit-1; j >= 0; j-- )
116 {
117 get_col(H,(u_int)j,tmp2);
118 /* tmp2->ve[j+1] = diag->ve[j]; */
119 v_set_val(tmp2,j+1,v_entry(diag,j));
120 hhtrvec(tmp2,beta->ve[j],j+1,tmp1,tmp1);
121 }
122
123 /* insert into Qout */
124 set_col(Qout,(u_int)i,tmp1);
125 }
126
127 return (Qout);
128 }
129
130 /* makeH -- construct actual Hessenberg matrix */
131 MAT *makeH(H,Hout)
132 MAT *H, *Hout;
133 {
134 int i, j, limit;
135
136 if ( H==(MAT *)NULL )
137 error(E_NULL,"makeH");
138 if ( H->m != H->n )
139 error(E_SQUARE,"makeH");
140 Hout = m_resize(Hout,H->m,H->m);
141 Hout = m_copy(H,Hout);
142
143 limit = H->m;
144 for ( i = 1; i < limit; i++ )
145 for ( j = 0; j < i-1; j++ )
146 /* Hout->me[i][j] = 0.0;*/
147 m_set_val(Hout,i,j,0.0);
148
149 return (Hout);
150 }
151
+0
-178
interface/src/scilab/src/c/hsehldr.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Files for matrix computations
28
29 Householder transformation file. Contains routines for calculating
30 householder transformations, applying them to vectors and matrices
31 by both row & column.
32 */
33
34 /* hsehldr.c 1.3 10/8/87 */
35 static char rcsid[] = "$Id: hsehldr.c 3690 2010-09-02 09:55:19Z lsaavedr $";
36
37 #include <stdio.h>
38 #include "matrix.h"
39 #include "matrix2.h"
40 #include <math.h>
41
42
43 /* hhvec -- calulates Householder vector to eliminate all entries after the
44 i0 entry of the vector vec. It is returned as out. May be in-situ */
45 VEC *hhvec(vec,i0,beta,out,newval)
46 VEC *vec,*out;
47 u_int i0;
48 Real *beta,*newval;
49 {
50 Real norm;
51
52 out = _v_copy(vec,out,i0);
53 norm = sqrt(_in_prod(out,out,i0));
54 if ( norm <= 0.0 )
55 {
56 *beta = 0.0;
57 return (out);
58 }
59 *beta = 1.0/(norm * (norm+fabs(out->ve[i0])));
60 if ( out->ve[i0] > 0.0 )
61 *newval = -norm;
62 else
63 *newval = norm;
64 out->ve[i0] -= *newval;
65
66 return (out);
67 }
68
69 /* hhtrvec -- apply Householder transformation to vector -- may be in-situ */
70 VEC *hhtrvec(hh,beta,i0,in,out)
71 VEC *hh,*in,*out; /* hh = Householder vector */
72 u_int i0;
73 double beta;
74 {
75 Real scale;
76 /* u_int i; */
77
78 if ( hh==(VEC *)NULL || in==(VEC *)NULL )
79 error(E_NULL,"hhtrvec");
80 if ( in->dim != hh->dim )
81 error(E_SIZES,"hhtrvec");
82 if ( i0 > in->dim )
83 error(E_BOUNDS,"hhtrvec");
84
85 scale = beta*_in_prod(hh,in,i0);
86 out = v_copy(in,out);
87 __mltadd__(&(out->ve[i0]),&(hh->ve[i0]),-scale,(int)(in->dim-i0));
88 /************************************************************
89 for ( i=i0; i<in->dim; i++ )
90 out->ve[i] = in->ve[i] - scale*hh->ve[i];
91 ************************************************************/
92
93 return (out);
94 }
95
96 /* hhtrrows -- transform a matrix by a Householder vector by rows
97 starting at row i0 from column j0 -- in-situ */
98 MAT *hhtrrows(M,i0,j0,hh,beta)
99 MAT *M;
100 u_int i0, j0;
101 VEC *hh;
102 double beta;
103 {
104 Real ip, scale;
105 int i /*, j */;
106
107 if ( M==(MAT *)NULL || hh==(VEC *)NULL )
108 error(E_NULL,"hhtrrows");
109 if ( M->n != hh->dim )
110 error(E_RANGE,"hhtrrows");
111 if ( i0 > M->m || j0 > M->n )
112 error(E_BOUNDS,"hhtrrows");
113
114 if ( beta == 0.0 ) return (M);
115
116 /* for each row ... */
117 for ( i = i0; i < M->m; i++ )
118 { /* compute inner product */
119 ip = __ip__(&(M->me[i][j0]),&(hh->ve[j0]),(int)(M->n-j0));
120 /**************************************************
121 ip = 0.0;
122 for ( j = j0; j < M->n; j++ )
123 ip += M->me[i][j]*hh->ve[j];
124 **************************************************/
125 scale = beta*ip;
126 if ( scale == 0.0 )
127 continue;
128
129 /* do operation */
130 __mltadd__(&(M->me[i][j0]),&(hh->ve[j0]),-scale,
131 (int)(M->n-j0));
132 /**************************************************
133 for ( j = j0; j < M->n; j++ )
134 M->me[i][j] -= scale*hh->ve[j];
135 **************************************************/
136 }
137
138 return (M);
139 }
140
141
142 /* hhtrcols -- transform a matrix by a Householder vector by columns
143 starting at row i0 from column j0 -- in-situ */
144 MAT *hhtrcols(M,i0,j0,hh,beta)
145 MAT *M;
146 u_int i0, j0;
147 VEC *hh;
148 double beta;
149 {
150 /* Real ip, scale; */
151 int i /*, k */;
152 static VEC *w = VNULL;
153
154 if ( M==(MAT *)NULL || hh==(VEC *)NULL )
155 error(E_NULL,"hhtrcols");
156 if ( M->m != hh->dim )
157 error(E_SIZES,"hhtrcols");
158 if ( i0 > M->m || j0 > M->n )
159 error(E_BOUNDS,"hhtrcols");
160
161 if ( beta == 0.0 ) return (M);
162
163 w = v_resize(w,M->n);
164 MEM_STAT_REG(w,TYPE_VEC);
165 v_zero(w);
166
167 for ( i = i0; i < M->m; i++ )
168 if ( hh->ve[i] != 0.0 )
169 __mltadd__(&(w->ve[j0]),&(M->me[i][j0]),hh->ve[i],
170 (int)(M->n-j0));
171 for ( i = i0; i < M->m; i++ )
172 if ( hh->ve[i] != 0.0 )
173 __mltadd__(&(M->me[i][j0]),&(w->ve[j0]),-beta*hh->ve[i],
174 (int)(M->n-j0));
175 return (M);
176 }
177
+0
-298
interface/src/scilab/src/c/init.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 This is a file of routines for zero-ing, and initialising
28 vectors, matrices and permutations.
29 This is to be included in the matrix.a library
30 */
31
32 static char rcsid[] = "$Id: init.c 3690 2010-09-02 09:55:19Z lsaavedr $";
33
34 #include <stdio.h>
35 #include "matrix.h"
36
37 /* v_zero -- zero the vector x */
38 VEC *v_zero(x)
39 VEC *x;
40 {
41 if ( x == VNULL )
42 error(E_NULL,"v_zero");
43
44 __zero__(x->ve,x->dim);
45 /* for ( i = 0; i < x->dim; i++ )
46 x->ve[i] = 0.0; */
47
48 return x;
49 }
50
51
52 /* iv_zero -- zero the vector ix */
53 IVEC *iv_zero(ix)
54 IVEC *ix;
55 {
56 int i;
57
58 if ( ix == IVNULL )
59 error(E_NULL,"iv_zero");
60
61 for ( i = 0; i < ix->dim; i++ )
62 ix->ive[i] = 0;
63
64 return ix;
65 }
66
67
68 /* m_zero -- zero the matrix A */
69 MAT *m_zero(A)
70 MAT *A;
71 {
72 int i, A_m, A_n;
73 Real **A_me;
74
75 if ( A == MNULL )
76 error(E_NULL,"m_zero");
77
78 A_m = A->m; A_n = A->n; A_me = A->me;
79 for ( i = 0; i < A_m; i++ )
80 __zero__(A_me[i],A_n);
81 /* for ( j = 0; j < A_n; j++ )
82 A_me[i][j] = 0.0; */
83
84 return A;
85 }
86
87 /* mat_id -- set A to being closest to identity matrix as possible
88 -- i.e. A[i][j] == 1 if i == j and 0 otherwise */
89 MAT *m_ident(A)
90 MAT *A;
91 {
92 int i, size;
93
94 if ( A == MNULL )
95 error(E_NULL,"m_ident");
96
97 m_zero(A);
98 size = min(A->m,A->n);
99 for ( i = 0; i < size; i++ )
100 A->me[i][i] = 1.0;
101
102 return A;
103 }
104
105 /* px_ident -- set px to identity permutation */
106 PERM *px_ident(px)
107 PERM *px;
108 {
109 int i, px_size;
110 u_int *px_pe;
111
112 if ( px == PNULL )
113 error(E_NULL,"px_ident");
114
115 px_size = px->size; px_pe = px->pe;
116 for ( i = 0; i < px_size; i++ )
117 px_pe[i] = i;
118
119 return px;
120 }
121
122 /* Pseudo random number generator data structures */
123 /* Knuth's lagged Fibonacci-based generator: See "Seminumerical Algorithms:
124 The Art of Computer Programming" sections 3.2-3.3 */
125
126 #ifdef ANSI_C
127 #ifndef LONG_MAX
128 #include <limits.h>
129 #endif
130 #endif
131
132 #ifdef LONG_MAX
133 #define MODULUS LONG_MAX
134 #else
135 #define MODULUS 1000000000L /* assuming long's at least 32 bits long */
136 #endif
137 #define MZ 0L
138
139 static long mrand_list[56];
140 static int started = FALSE;
141 static int inext = 0, inextp = 31;
142
143
144 /* mrand -- pseudo-random number generator */
145 #ifdef ANSI_C
146 double mrand(void)
147 #else
148 double mrand()
149 #endif
150 {
151 long lval;
152 static Real factor = 1.0/((Real)MODULUS);
153
154 if ( ! started )
155 smrand(3127);
156
157 inext = (inext >= 54) ? 0 : inext+1;
158 inextp = (inextp >= 54) ? 0 : inextp+1;
159
160 lval = mrand_list[inext]-mrand_list[inextp];
161 if ( lval < 0L )
162 lval += MODULUS;
163 mrand_list[inext] = lval;
164
165 return (double)lval*factor;
166 }
167
168 /* mrandlist -- fills the array a[] with len random numbers */
169 void mrandlist(a, len)
170 Real a[];
171 int len;
172 {
173 int i;
174 long lval;
175 static Real factor = 1.0/((Real)MODULUS);
176
177 if ( ! started )
178 smrand(3127);
179
180 for ( i = 0; i < len; i++ )
181 {
182 inext = (inext >= 54) ? 0 : inext+1;
183 inextp = (inextp >= 54) ? 0 : inextp+1;
184
185 lval = mrand_list[inext]-mrand_list[inextp];
186 if ( lval < 0L )
187 lval += MODULUS;
188 mrand_list[inext] = lval;
189
190 a[i] = (Real)lval*factor;
191 }
192 }
193
194
195 /* smrand -- set seed for mrand() */
196 void smrand(seed)
197 int seed;
198 {
199 int i;
200
201 mrand_list[0] = (123413*seed) % MODULUS;
202 for ( i = 1; i < 55; i++ )
203 mrand_list[i] = (123413*mrand_list[i-1]) % MODULUS;
204
205 started = TRUE;
206
207 /* run mrand() through the list sufficient times to
208 thoroughly randomise the array */
209 for ( i = 0; i < 55*55; i++ )
210 mrand();
211 }
212 #undef MODULUS
213 #undef MZ
214 #undef FAC
215
216 /* v_rand -- initialises x to be a random vector, components
217 independently & uniformly ditributed between 0 and 1 */
218 VEC *v_rand(x)
219 VEC *x;
220 {
221 /* int i; */
222
223 if ( ! x )
224 error(E_NULL,"v_rand");
225
226 /* for ( i = 0; i < x->dim; i++ ) */
227 /* x->ve[i] = rand()/((Real)MAX_RAND); */
228 /* x->ve[i] = mrand(); */
229 mrandlist(x->ve,x->dim);
230
231 return x;
232 }
233
234 /* m_rand -- initialises A to be a random vector, components
235 independently & uniformly distributed between 0 and 1 */
236 MAT *m_rand(A)
237 MAT *A;
238 {
239 int i /* , j */;
240
241 if ( ! A )
242 error(E_NULL,"m_rand");
243
244 for ( i = 0; i < A->m; i++ )
245 /* for ( j = 0; j < A->n; j++ ) */
246 /* A->me[i][j] = rand()/((Real)MAX_RAND); */
247 /* A->me[i][j] = mrand(); */
248 mrandlist(A->me[i],A->n);
249
250 return A;
251 }
252
253 /* v_ones -- fills x with one's */
254 VEC *v_ones(x)
255 VEC *x;
256 {
257 int i;
258
259 if ( ! x )
260 error(E_NULL,"v_ones");
261
262 for ( i = 0; i < x->dim; i++ )
263 x->ve[i] = 1.0;
264
265 return x;
266 }
267
268 /* m_ones -- fills matrix with one's */
269 MAT *m_ones(A)
270 MAT *A;
271 {
272 int i, j;
273
274 if ( ! A )
275 error(E_NULL,"m_ones");
276
277 for ( i = 0; i < A->m; i++ )
278 for ( j = 0; j < A->n; j++ )
279 A->me[i][j] = 1.0;
280
281 return A;
282 }
283
284 /* v_count -- initialises x so that x->ve[i] == i */
285 VEC *v_count(x)
286 VEC *x;
287 {
288 int i;
289
290 if ( ! x )
291 error(E_NULL,"v_count");
292
293 for ( i = 0; i < x->dim; i++ )
294 x->ve[i] = (Real)i;
295
296 return x;
297 }
+0
-248
interface/src/scilab/src/c/iter.h less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* iter.h 14/09/93 */
27
28 /*
29
30 Structures for iterative methods
31
32 */
33
34 #ifndef ITERHH
35
36 #define ITERHH
37
38 /* RCS id: $Id: iter.h 3690 2010-09-02 09:55:19Z lsaavedr $ */
39
40
41 #include "sparse.h"
42
43
44 /* basic structure for iterative methods */
45
46 /* type Fun_Ax for functions to get y = A*x */
47 #ifdef ANSI_C
48 typedef VEC *(*Fun_Ax)(void *,VEC *,VEC *);
49 #else
50 typedef VEC *(*Fun_Ax)();
51 #endif
52
53
54 /* type ITER */
55 typedef struct Iter_data {
56 int shared_x; /* if TRUE then x is shared and it will not be free'd */
57 int shared_b; /* if TRUE then b is shared and it will not be free'd */
58 unsigned k; /* no. of direction (search) vectors; =0 - none */
59 int limit; /* upper bound on the no. of iter. steps */
60 int steps; /* no. of iter. steps done */
61 Real eps; /* accuracy required */
62
63 VEC *x; /* input: initial guess;
64 output: approximate solution */
65 VEC *b; /* right hand side of the equation A*x = b */
66
67 Fun_Ax Ax; /* function computing y = A*x */
68 void *A_par; /* parameters for Ax */
69
70 Fun_Ax ATx; /* function computing y = A^T*x;
71 T = transpose */
72 void *AT_par; /* parameters for ATx */
73
74 Fun_Ax Bx; /* function computing y = B*x; B - preconditioner */
75 void *B_par; /* parameters for Bx */
76
77 #ifdef ANSI_C
78
79 #ifdef PROTOTYPES_IN_STRUCT
80 void (*info)(struct Iter_data *, double, VEC *,VEC *);
81 /* function giving some information for a user;
82 nres - a norm of a residual res */
83
84 int (*stop_crit)(struct Iter_data *, double, VEC *,VEC *);
85 /* stopping criterion:
86 nres - a norm of res;
87 res - residual;
88 if returned value == TRUE then stop;
89 if returned value == FALSE then continue; */
90 #else
91 void (*info)();
92 int (*stop_crit)();
93 #endif /* PROTOTYPES_IN_STRUCT */
94
95 #else
96
97 void (*info)();
98 /* function giving some information for a user */
99
100 int (*stop_crit)();
101 /* stopping criterion:
102 if returned value == TRUE then stop;
103 if returned value == FALSE then continue; */
104
105 #endif /* ANSI_C */
106
107 Real init_res; /* the norm of the initial residual */
108
109 } ITER;
110
111
112 #define INULL (ITER *)NULL
113
114 /* type Fun_info */
115 #ifdef ANSI_C
116 typedef void (*Fun_info)(ITER *, double, VEC *,VEC *);
117 #else
118 typedef void (*Fun_info)();
119 #endif
120
121 /* type Fun_stp_crt */
122 #ifdef ANSI_C
123 typedef int (*Fun_stp_crt)(ITER *, double, VEC *,VEC *);
124 #else
125 typedef int (*Fun_stp_crt)();
126 #endif
127
128
129
130 /* macros */
131 /* default values */
132
133 #define ITER_LIMIT_DEF 1000
134 #define ITER_EPS_DEF 1e-6
135
136 /* other macros */
137
138 /* set ip->Ax=fun and ip->A_par=fun_par */
139 #define iter_Ax(ip,fun,fun_par) \
140 (ip->Ax=(Fun_Ax)(fun),ip->A_par=(void *)(fun_par),0)
141 #define iter_ATx(ip,fun,fun_par) \
142 (ip->ATx=(Fun_Ax)(fun),ip->AT_par=(void *)(fun_par),0)
143 #define iter_Bx(ip,fun,fun_par) \
144 (ip->Bx=(Fun_Ax)(fun),ip->B_par=(void *)(fun_par),0)
145
146 /* save free macro */
147 #define ITER_FREE(ip) (iter_free(ip), (ip)=(ITER *)NULL)
148
149
150 /* prototypes from iter0.c */
151
152 #ifdef ANSI_C
153 /* standard information */
154 void iter_std_info(ITER *ip,double nres,VEC *res,VEC *Bres);
155 /* standard stopping criterion */
156 int iter_std_stop_crit(ITER *ip, double nres, VEC *res,VEC *Bres);
157
158 /* get, resize and free ITER variable */
159 ITER *iter_get(int lenb, int lenx);
160 ITER *iter_resize(ITER *ip,int lenb,int lenx);
161 int iter_free(ITER *ip);
162
163 void iter_dump(FILE *fp,ITER *ip);
164
165 /* copy ip1 to ip2 copying also elements of x and b */
166 ITER *iter_copy(ITER *ip1, ITER *ip2);
167 /* copy ip1 to ip2 without copying elements of x and b */
168 ITER *iter_copy2(ITER *ip1,ITER *ip2);
169
170 /* functions for generating sparse matrices with random elements */
171 SPMAT *iter_gen_sym(int n, int nrow);
172 SPMAT *iter_gen_nonsym(int m,int n,int nrow,double diag);
173 SPMAT *iter_gen_nonsym_posdef(int n,int nrow);
174
175 #else
176
177 void iter_std_info();
178 int iter_std_stop_crit();
179 ITER *iter_get();
180 int iter_free();
181 ITER *iter_resize();
182 void iter_dump();
183 ITER *iter_copy();
184 ITER *iter_copy2();
185 SPMAT *iter_gen_sym();
186 SPMAT *iter_gen_nonsym();
187 SPMAT *iter_gen_nonsym_posdef();
188
189 #endif
190
191 /* prototypes from iter.c */
192
193 /* different iterative procedures */
194 #ifdef ANSI_C
195 VEC *iter_cg(ITER *ip);
196 VEC *iter_cg1(ITER *ip);
197 VEC *iter_spcg(SPMAT *A,SPMAT *LLT,VEC *b,double eps,VEC *x,int limit,
198 int *steps);
199 VEC *iter_cgs(ITER *ip,VEC *r0);
200 VEC *iter_spcgs(SPMAT *A,SPMAT *B,VEC *b,VEC *r0,double eps,VEC *x,
201 int limit, int *steps);
202 VEC *iter_lsqr(ITER *ip);
203 VEC *iter_splsqr(SPMAT *A,VEC *b,double tol,VEC *x,
204 int limit,int *steps);
205 VEC *iter_gmres(ITER *ip);
206 VEC *iter_spgmres(SPMAT *A,SPMAT *B,VEC *b,double tol,VEC *x,int k,
207 int limit, int *steps);
208 MAT *iter_arnoldi_iref(ITER *ip,Real *h,MAT *Q,MAT *H);
209 MAT *iter_arnoldi(ITER *ip,Real *h,MAT *Q,MAT *H);
210 MAT *iter_sparnoldi(SPMAT *A,VEC *x0,int k,Real *h,MAT *Q,MAT *H);
211 VEC *iter_mgcr(ITER *ip);
212 VEC *iter_spmgcr(SPMAT *A,SPMAT *B,VEC *b,double tol,VEC *x,int k,
213 int limit, int *steps);
214 void iter_lanczos(ITER *ip,VEC *a,VEC *b,Real *beta2,MAT *Q);
215 void iter_splanczos(SPMAT *A,int m,VEC *x0,VEC *a,VEC *b,Real *beta2,
216 MAT *Q);
217 VEC *iter_lanczos2(ITER *ip,VEC *evals,VEC *err_est);
218 VEC *iter_splanczos2(SPMAT *A,int m,VEC *x0,VEC *evals,VEC *err_est);
219 VEC *iter_cgne(ITER *ip);
220 VEC *iter_spcgne(SPMAT *A,SPMAT *B,VEC *b,double eps,VEC *x,
221 int limit,int *steps);
222 #else
223 VEC *iter_cg();
224 VEC *iter_cg1();
225 VEC *iter_spcg();
226 VEC *iter_cgs();
227 VEC *iter_spcgs();
228 VEC *iter_lsqr();
229 VEC *iter_splsqr();
230 VEC *iter_gmres();
231 VEC *iter_spgmres();
232 MAT *iter_arnoldi_iref();
233 MAT *iter_arnoldi();
234 MAT *iter_sparnoldi();
235 VEC *iter_mgcr();
236 VEC *iter_spmgcr();
237 void iter_lanczos();
238 void iter_splanczos();
239 VEC *iter_lanczos2();
240 VEC *iter_splanczos2();
241 VEC *iter_cgne();
242 VEC *iter_spcgne();
243
244 #endif
245
246
247 #endif /* ITERHH */
+0
-381
interface/src/scilab/src/c/iter0.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Stewart & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* iter0.c 14/09/93 */
27
28 /* ITERATIVE METHODS - service functions */
29
30 /* functions for creating and releasing ITER structures;
31 for memory information;
32 for getting some values from an ITER variable;
33 for changing values in an ITER variable;
34 see also iter.c
35 */
36
37 #include <stdio.h>
38 #include <math.h>
39 #include "iter.h"
40
41
42 static char rcsid[] = "$Id: iter0.c 3690 2010-09-02 09:55:19Z lsaavedr $";
43
44
45 /* standard functions */
46
47 /* standard information */
48 void iter_std_info(ip,nres,res,Bres)
49 ITER *ip;
50 double nres;
51 VEC *res, *Bres;
52 {
53 if (nres >= 0.0)
54 printf(" %d. residual = %g\n",ip->steps,nres);
55 else
56 printf(" %d. residual = %g (WARNING !!! should be >= 0) \n",
57 ip->steps,nres);
58 }
59
60 /* standard stopping criterion */
61 int iter_std_stop_crit(ip, nres, res, Bres)
62 ITER *ip;
63 double nres;
64 VEC *res, *Bres;
65 {
66 /* standard stopping criterium */
67 if (nres <= ip->init_res*ip->eps) return TRUE;
68 return FALSE;
69 }
70
71
72 /* iter_get - create a new structure pointing to ITER */
73
74 ITER *iter_get(lenb, lenx)
75 int lenb, lenx;
76 {
77 ITER *ip;
78
79 if ((ip = NEW(ITER)) == (ITER *) NULL)
80 error(E_MEM,"iter_get");
81 else if (mem_info_is_on()) {
82 mem_bytes(TYPE_ITER,0,sizeof(ITER));
83 mem_numvar(TYPE_ITER,1);
84 }
85
86 /* default values */
87
88 ip->shared_x = FALSE;
89 ip->shared_b = FALSE;
90 ip->k = 0;
91 ip->limit = ITER_LIMIT_DEF;
92 ip->eps = ITER_EPS_DEF;
93 ip->steps = 0;
94
95 if (lenb > 0) ip->b = v_get(lenb);
96 else ip->b = (VEC *)NULL;
97
98 if (lenx > 0) ip->x = v_get(lenx);
99 else ip->x = (VEC *)NULL;
100
101 ip->Ax = (Fun_Ax) NULL;
102 ip->A_par = NULL;
103 ip->ATx = (Fun_Ax) NULL;
104 ip->AT_par = NULL;
105 ip->Bx = (Fun_Ax) NULL;
106 ip->B_par = NULL;
107 ip->info = iter_std_info;
108 ip->stop_crit = iter_std_stop_crit;
109 ip->init_res = 0.0;
110
111 return ip;
112 }
113
114
115 /* iter_free - release memory */
116 int iter_free(ip)
117 ITER *ip;
118 {
119 if (ip == (ITER *)NULL) return -1;
120
121 if (mem_info_is_on()) {
122 mem_bytes(TYPE_ITER,sizeof(ITER),0);
123 mem_numvar(TYPE_ITER,-1);
124 }
125
126 if ( !ip->shared_x && ip->x != NULL ) v_free(ip->x);
127 if ( !ip->shared_b && ip->b != NULL ) v_free(ip->b);
128
129 free((char *)ip);
130
131 return 0;
132 }
133
134 ITER *iter_resize(ip,new_lenb,new_lenx)
135 ITER *ip;
136 int new_lenb, new_lenx;
137 {
138 VEC *old;
139
140 if ( ip == (ITER *) NULL)
141 error(E_NULL,"iter_resize");
142
143 old = ip->x;
144 ip->x = v_resize(ip->x,new_lenx);
145 if ( ip->shared_x && old != ip->x )
146 warning(WARN_SHARED_VEC,"iter_resize");
147 old = ip->b;
148 ip->b = v_resize(ip->b,new_lenb);
149 if ( ip->shared_b && old != ip->b )
150 warning(WARN_SHARED_VEC,"iter_resize");
151
152 return ip;
153 }
154
155
156 /* print out ip structure - for diagnostic purposes mainly */
157 void iter_dump(fp,ip)
158 ITER *ip;
159 FILE *fp;
160 {
161 if (ip == NULL) {
162 fprintf(fp," ITER structure: NULL\n");
163 return;
164 }
165
166 fprintf(fp,"\n ITER structure:\n");
167 fprintf(fp," ip->shared_x = %s, ip->shared_b = %s\n",
168 (ip->shared_x ? "TRUE" : "FALSE"),
169 (ip->shared_b ? "TRUE" : "FALSE") );
170 fprintf(fp," ip->k = %d, ip->limit = %d, ip->steps = %d, ip->eps = %g\n",
171 ip->k,ip->limit,ip->steps,ip->eps);
172 fprintf(fp," ip->x = 0x%p, ip->b = 0x%p\n",ip->x,ip->b);
173 fprintf(fp," ip->Ax = 0x%p, ip->A_par = 0x%p\n",ip->Ax,ip->A_par);
174 fprintf(fp," ip->ATx = 0x%p, ip->AT_par = 0x%p\n",ip->ATx,ip->AT_par);
175 fprintf(fp," ip->Bx = 0x%p, ip->B_par = 0x%p\n",ip->Bx,ip->B_par);
176 fprintf(fp," ip->info = 0x%p, ip->stop_crit = 0x%p, ip->init_res = %g\n",
177 ip->info,ip->stop_crit,ip->init_res);
178 fprintf(fp,"\n");
179
180 }
181
182
183 /* copy the structure ip1 to ip2 preserving vectors x and b of ip2
184 (vectors x and b in ip2 are the same before and after iter_copy2)
185 if ip2 == NULL then a new structure is created with x and b being NULL
186 and other members are taken from ip1
187 */
188 ITER *iter_copy2(ip1,ip2)
189 ITER *ip1, *ip2;
190 {
191 VEC *x, *b;
192 int shx, shb;
193
194 if (ip1 == (ITER *)NULL)
195 error(E_NULL,"iter_copy2");
196
197 if (ip2 == (ITER *)NULL) {
198 if ((ip2 = NEW(ITER)) == (ITER *) NULL)
199 error(E_MEM,"iter_copy2");
200 else if (mem_info_is_on()) {
201 mem_bytes(TYPE_ITER,0,sizeof(ITER));
202 mem_numvar(TYPE_ITER,1);
203 }
204 ip2->x = ip2->b = NULL;
205 ip2->shared_x = ip2->shared_x = FALSE;
206 }
207
208 x = ip2->x;
209 b = ip2->b;
210 shb = ip2->shared_b;
211 shx = ip2->shared_x;
212 MEM_COPY(ip1,ip2,sizeof(ITER));
213 ip2->x = x;
214 ip2->b = b;
215 ip2->shared_x = shx;
216 ip2->shared_b = shb;
217
218 return ip2;
219 }
220
221
222 /* copy the structure ip1 to ip2 copying also the vectors x and b */
223 ITER *iter_copy(ip1,ip2)
224 ITER *ip1, *ip2;
225 {
226 VEC *x, *b;
227
228 if (ip1 == (ITER *)NULL)
229 error(E_NULL,"iter_copy");
230
231 if (ip2 == (ITER *)NULL) {
232 if ((ip2 = NEW(ITER)) == (ITER *) NULL)
233 error(E_MEM,"iter_copy2");
234 else if (mem_info_is_on()) {
235 mem_bytes(TYPE_ITER,0,sizeof(ITER));
236 mem_numvar(TYPE_ITER,1);
237 }
238 }
239
240 x = ip2->x;
241 b = ip2->b;
242
243 MEM_COPY(ip1,ip2,sizeof(ITER));
244 if (ip1->x)
245 ip2->x = v_copy(ip1->x,x);
246 if (ip1->b)
247 ip2->b = v_copy(ip1->b,b);
248
249 ip2->shared_x = ip2->shared_b = FALSE;
250
251 return ip2;
252 }
253
254
255 /*** functions to generate sparse matrices with random entries ***/
256
257
258 /* iter_gen_sym -- generate symmetric positive definite
259 n x n matrix,
260 nrow - number of nonzero entries in a row
261 */
262 SPMAT *iter_gen_sym(n,nrow)
263 int n, nrow;
264 {
265 SPMAT *A;
266 VEC *u;
267 Real s1;
268 int i, j, k, k_max;
269
270 if (nrow <= 1) nrow = 2;
271 /* nrow should be even */
272 if ((nrow & 1)) nrow -= 1;
273 A = sp_get(n,n,nrow);
274 u = v_get(A->m);
275 v_zero(u);
276 for ( i = 0; i < A->m; i++ )
277 {
278 k_max = ((rand() >> 8) % (nrow/2));
279 for ( k = 0; k <= k_max; k++ )
280 {
281 j = (rand() >> 8) % A->n;
282 s1 = mrand();
283 sp_set_val(A,i,j,s1);
284 sp_set_val(A,j,i,s1);
285 u->ve[i] += fabs(s1);
286 u->ve[j] += fabs(s1);
287 }
288 }
289 /* ensure that A is positive definite */
290 for ( i = 0; i < A->m; i++ )
291 sp_set_val(A,i,i,u->ve[i] + 1.0);
292
293 V_FREE(u);
294 return A;
295 }
296
297
298 /* iter_gen_nonsym -- generate non-symmetric m x n sparse matrix, m >= n
299 nrow - number of entries in a row;
300 diag - number which is put in diagonal entries and then permuted
301 (if diag is zero then 1.0 is there)
302 */
303 SPMAT *iter_gen_nonsym(m,n,nrow,diag)
304 int m, n, nrow;
305 double diag;
306 {
307 SPMAT *A;
308 PERM *px;
309 int i, j, k, k_max;
310 Real s1;
311
312 if (nrow <= 1) nrow = 2;
313 if (diag == 0.0) diag = 1.0;
314 A = sp_get(m,n,nrow);
315 px = px_get(n);
316 for ( i = 0; i < A->m; i++ )
317 {
318 k_max = (rand() >> 8) % (nrow-1);
319 for ( k = 0; k <= k_max; k++ )
320 {
321 j = (rand() >> 8) % A->n;
322 s1 = mrand();
323 sp_set_val(A,i,j,-s1);
324 }
325 }
326 /* to make it likely that A is nonsingular, use pivot... */
327 for ( i = 0; i < 2*A->n; i++ )
328 {
329 j = (rand() >> 8) % A->n;
330 k = (rand() >> 8) % A->n;
331 px_transp(px,j,k);
332 }
333 for ( i = 0; i < A->n; i++ )
334 sp_set_val(A,i,px->pe[i],diag);
335
336 PX_FREE(px);
337 return A;
338 }
339
340
341 /* iter_gen_nonsym -- generate non-symmetric positive definite
342 n x n sparse matrix;
343 nrow - number of entries in a row
344 */
345 SPMAT *iter_gen_nonsym_posdef(n,nrow)
346 int n, nrow;
347 {
348 SPMAT *A;
349 PERM *px;
350 VEC *u;
351 int i, j, k, k_max;
352 Real s1;
353
354 if (nrow <= 1) nrow = 2;
355 A = sp_get(n,n,nrow);
356 px = px_get(n);
357 u = v_get(A->m);
358 v_zero(u);
359 for ( i = 0; i < A->m; i++ )
360 {
361 k_max = (rand() >> 8) % (nrow-1);
362 for ( k = 0; k <= k_max; k++ )
363 {
364 j = (rand() >> 8) % A->n;
365 s1 = mrand();
366 sp_set_val(A,i,j,-s1);
367 u->ve[i] += fabs(s1);
368 }
369 }
370 /* ensure that A is positive definite */
371 for ( i = 0; i < A->m; i++ )
372 sp_set_val(A,i,i,u->ve[i] + 1.0);
373
374 PX_FREE(px);
375 V_FREE(u);
376 return A;
377 }
378
379
380
+0
-1286
interface/src/scilab/src/c/iternsym.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Stewart & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* iter.c 17/09/93 */
27
28 /*
29 ITERATIVE METHODS - implementation of several iterative methods;
30 see also iter0.c
31 */
32
33 #include <stdio.h>
34 #include <math.h>
35 #include "matrix.h"
36 #include "matrix2.h"
37 #include "sparse.h"
38 #include "iter.h"
39
40 static char rcsid[] = "$Id: iternsym.c 3690 2010-09-02 09:55:19Z lsaavedr $";
41
42
43 #ifdef ANSI_C
44 VEC *spCHsolve(SPMAT *,VEC *,VEC *);
45 #else
46 VEC *spCHsolve();
47 #endif
48
49
50 /*
51 iter_cgs -- uses CGS to compute a solution x to A.x=b
52 */
53
54 VEC *iter_cgs(ip,r0)
55 ITER *ip;
56 VEC *r0;
57 {
58 static VEC *p = VNULL, *q = VNULL, *r = VNULL, *u = VNULL;
59 static VEC *v = VNULL, *z = VNULL;
60 VEC *tmp;
61 Real alpha, beta, nres, rho, old_rho, sigma, inner;
62
63 if (ip == INULL)
64 error(E_NULL,"iter_cgs");
65 if (!ip->Ax || !ip->b || !r0)
66 error(E_NULL,"iter_cgs");
67 if ( ip->x == ip->b )
68 error(E_INSITU,"iter_cgs");
69 if (!ip->stop_crit)
70 error(E_NULL,"iter_cgs");
71 if ( r0->dim != ip->b->dim )
72 error(E_SIZES,"iter_cgs");
73
74 if ( ip->eps <= 0.0 ) ip->eps = MACHEPS;
75
76 p = v_resize(p,ip->b->dim);
77 q = v_resize(q,ip->b->dim);
78 r = v_resize(r,ip->b->dim);
79 u = v_resize(u,ip->b->dim);
80 v = v_resize(v,ip->b->dim);
81
82 MEM_STAT_REG(p,TYPE_VEC);
83 MEM_STAT_REG(q,TYPE_VEC);
84 MEM_STAT_REG(r,TYPE_VEC);
85 MEM_STAT_REG(u,TYPE_VEC);
86 MEM_STAT_REG(v,TYPE_VEC);
87
88 if (ip->Bx) {
89 z = v_resize(z,ip->b->dim);
90 MEM_STAT_REG(z,TYPE_VEC);
91 }
92
93 if (ip->x != VNULL) {
94 if (ip->x->dim != ip->b->dim)
95 error(E_SIZES,"iter_cgs");
96 ip->Ax(ip->A_par,ip->x,v); /* v = A*x */
97 if (ip->Bx) {
98 v_sub(ip->b,v,v); /* v = b - A*x */
99 (ip->Bx)(ip->B_par,v,r); /* r = B*(b-A*x) */
100 }
101 else v_sub(ip->b,v,r); /* r = b-A*x */
102 }
103 else { /* ip->x == 0 */
104 ip->x = v_get(ip->b->dim); /* x == 0 */
105 ip->shared_x = FALSE;
106 if (ip->Bx) (ip->Bx)(ip->B_par,ip->b,r); /* r = B*b */
107 else v_copy(ip->b,r); /* r = b */
108 }
109
110 v_zero(p);
111 v_zero(q);
112 old_rho = 1.0;
113
114 for (ip->steps = 0; ip->steps <= ip->limit; ip->steps++) {
115
116 inner = in_prod(r,r);
117 nres = sqrt(fabs(inner));
118 if (ip->steps == 0) ip->init_res = nres;
119
120 if (ip->info) ip->info(ip,nres,r,VNULL);
121 if ( ip->stop_crit(ip,nres,r,VNULL) ) break;
122
123 rho = in_prod(r0,r);
124 if ( old_rho == 0.0 )
125 error(E_BREAKDOWN,"iter_cgs");
126 beta = rho/old_rho;
127 v_mltadd(r,q,beta,u);
128 v_mltadd(q,p,beta,v);
129 v_mltadd(u,v,beta,p);
130
131 (ip->Ax)(ip->A_par,p,q);
132 if (ip->Bx) {
133 (ip->Bx)(ip->B_par,q,z);
134 tmp = z;
135 }
136 else tmp = q;
137
138 sigma = in_prod(r0,tmp);
139 if ( sigma == 0.0 )
140 error(E_BREAKDOWN,"iter_cgs");
141 alpha = rho/sigma;
142 v_mltadd(u,tmp,-alpha,q);
143 v_add(u,q,v);
144
145 (ip->Ax)(ip->A_par,v,u);
146 if (ip->Bx) {
147 (ip->Bx)(ip->B_par,u,z);
148 tmp = z;
149 }
150 else tmp = u;
151
152 v_mltadd(r,tmp,-alpha,r);
153 v_mltadd(ip->x,v,alpha,ip->x);
154
155 old_rho = rho;
156 }
157
158 return ip->x;
159 }
160
161
162
163 /* iter_spcgs -- simple interface for SPMAT data structures
164 use always as follows:
165 x = iter_spcgs(A,B,b,r0,tol,x,limit,steps);
166 or
167 x = iter_spcgs(A,B,b,r0,tol,VNULL,limit,steps);
168 In the second case the solution vector is created.
169 If B is not NULL then it is a preconditioner.
170 */
171 VEC *iter_spcgs(A,B,b,r0,tol,x,limit,steps)
172 SPMAT *A, *B;
173 VEC *b, *r0, *x;
174 double tol;
175 int *steps,limit;
176 {
177 ITER *ip;
178
179 ip = iter_get(0,0);
180 ip->Ax = (Fun_Ax) sp_mv_mlt;
181 ip->A_par = (void *) A;
182 if (B) {
183 ip->Bx = (Fun_Ax) sp_mv_mlt;
184 ip->B_par = (void *) B;
185 }
186 else {
187 ip->Bx = (Fun_Ax) NULL;
188 ip->B_par = NULL;
189 }
190 ip->info = (Fun_info) NULL;
191 ip->limit = limit;
192 ip->b = b;
193 ip->eps = tol;
194 ip->x = x;
195 iter_cgs(ip,r0);
196 x = ip->x;
197 if (steps) *steps = ip->steps;
198 ip->shared_x = ip->shared_b = TRUE;
199 iter_free(ip); /* release only ITER structure */
200 return x;
201
202 }
203
204 /*
205 Routine for performing LSQR -- the least squares QR algorithm
206 of Paige and Saunders:
207 "LSQR: an algorithm for sparse linear equations and
208 sparse least squares", ACM Trans. Math. Soft., v. 8
209 pp. 43--71 (1982)
210 */
211 /* lsqr -- sparse CG-like least squares routine:
212 -- finds min_x ||A.x-b||_2 using A defined through A & AT
213 -- returns x (if x != NULL) */
214 VEC *iter_lsqr(ip)
215 ITER *ip;
216 {
217 static VEC *u = VNULL, *v = VNULL, *w = VNULL, *tmp = VNULL;
218 Real alpha, beta, phi, phi_bar;
219 Real rho, rho_bar, rho_max, theta, nres;
220 Real s, c; /* for Givens' rotations */
221 int m, n;
222
223 if ( ! ip || ! ip->b || !ip->Ax || !ip->ATx )
224 error(E_NULL,"iter_lsqr");
225 if ( ip->x == ip->b )
226 error(E_INSITU,"iter_lsqr");
227 if (!ip->stop_crit || !ip->x)
228 error(E_NULL,"iter_lsqr");
229
230 if ( ip->eps <= 0.0 ) ip->eps = MACHEPS;
231
232 m = ip->b->dim;
233 n = ip->x->dim;
234
235 u = v_resize(u,(u_int)m);
236 v = v_resize(v,(u_int)n);
237 w = v_resize(w,(u_int)n);
238 tmp = v_resize(tmp,(u_int)n);
239
240 MEM_STAT_REG(u,TYPE_VEC);
241 MEM_STAT_REG(v,TYPE_VEC);
242 MEM_STAT_REG(w,TYPE_VEC);
243 MEM_STAT_REG(tmp,TYPE_VEC);
244
245 if (ip->x != VNULL) {
246 ip->Ax(ip->A_par,ip->x,u); /* u = A*x */
247 v_sub(ip->b,u,u); /* u = b-A*x */
248 }
249 else { /* ip->x == 0 */
250 ip->x = v_get(ip->b->dim);
251 ip->shared_x = FALSE;
252 v_copy(ip->b,u); /* u = b */
253 }
254
255 beta = v_norm2(u);
256 if ( beta == 0.0 ) return ip->x;
257
258 sv_mlt(1.0/beta,u,u);
259 (ip->ATx)(ip->AT_par,u,v);
260 alpha = v_norm2(v);
261 if ( alpha == 0.0 ) return ip->x;
262
263 sv_mlt(1.0/alpha,v,v);
264 v_copy(v,w);
265 phi_bar = beta;
266 rho_bar = alpha;
267
268 rho_max = 1.0;
269 for (ip->steps = 0; ip->steps <= ip->limit; ip->steps++) {
270
271 tmp = v_resize(tmp,m);
272 (ip->Ax)(ip->A_par,v,tmp);
273
274 v_mltadd(tmp,u,-alpha,u);
275 beta = v_norm2(u);
276 sv_mlt(1.0/beta,u,u);
277
278 tmp = v_resize(tmp,n);
279 (ip->ATx)(ip->AT_par,u,tmp);
280 v_mltadd(tmp,v,-beta,v);
281 alpha = v_norm2(v);
282 sv_mlt(1.0/alpha,v,v);
283
284 rho = sqrt(rho_bar*rho_bar+beta*beta);
285 if ( rho > rho_max )
286 rho_max = rho;
287 c = rho_bar/rho;
288 s = beta/rho;
289 theta = s*alpha;
290 rho_bar = -c*alpha;
291 phi = c*phi_bar;
292 phi_bar = s*phi_bar;
293
294 /* update ip->x & w */
295 if ( rho == 0.0 )
296 error(E_BREAKDOWN,"iter_lsqr");
297 v_mltadd(ip->x,w,phi/rho,ip->x);
298 v_mltadd(v,w,-theta/rho,w);
299
300 nres = fabs(phi_bar*alpha*c)*rho_max;
301
302 if (ip->info) ip->info(ip,nres,w,VNULL);
303 if (ip->steps == 0) ip->init_res = nres;
304 if ( ip->stop_crit(ip,nres,w,VNULL) ) break;
305 }
306
307 return ip->x;
308 }
309
310 /* iter_splsqr -- simple interface for SPMAT data structures */
311 VEC *iter_splsqr(A,b,tol,x,limit,steps)
312 SPMAT *A;
313 VEC *b, *x;
314 double tol;
315 int *steps,limit;
316 {
317 ITER *ip;
318
319 ip = iter_get(0,0);
320 ip->Ax = (Fun_Ax) sp_mv_mlt;
321 ip->A_par = (void *) A;
322 ip->ATx = (Fun_Ax) sp_vm_mlt;
323 ip->AT_par = (void *) A;
324 ip->Bx = (Fun_Ax) NULL;
325 ip->B_par = NULL;
326
327 ip->info = (Fun_info) NULL;
328 ip->limit = limit;
329 ip->b = b;
330 ip->eps = tol;
331 ip->x = x;
332 iter_lsqr(ip);
333 x = ip->x;
334 if (steps) *steps = ip->steps;
335 ip->shared_x = ip->shared_b = TRUE;
336 iter_free(ip); /* release only ITER structure */
337 return x;
338 }
339
340
341
342 /* iter_arnoldi -- an implementation of the Arnoldi method;
343 iterative refinement is applied.
344 */
345 MAT *iter_arnoldi_iref(ip,h_rem,Q,H)
346 ITER *ip;
347 Real *h_rem;
348 MAT *Q, *H;
349 {
350 static VEC *u=VNULL, *r=VNULL, *s=VNULL, *tmp=VNULL;
351 VEC v; /* auxiliary vector */
352 int i,j;
353 Real h_val, c;
354
355 if (ip == INULL)
356 error(E_NULL,"iter_arnoldi_iref");
357 if ( ! ip->Ax || ! Q || ! ip->x )
358 error(E_NULL,"iter_arnoldi_iref");
359 if ( ip->k <= 0 )
360 error(E_BOUNDS,"iter_arnoldi_iref");
361 if ( Q->n != ip->x->dim || Q->m != ip->k )
362 error(E_SIZES,"iter_arnoldi_iref");
363
364 m_zero(Q);
365 H = m_resize(H,ip->k,ip->k);
366 m_zero(H);
367
368 u = v_resize(u,ip->x->dim);
369 r = v_resize(r,ip->k);
370 s = v_resize(s,ip->k);
371 tmp = v_resize(tmp,ip->x->dim);
372 MEM_STAT_REG(u,TYPE_VEC);
373 MEM_STAT_REG(r,TYPE_VEC);
374 MEM_STAT_REG(s,TYPE_VEC);
375 MEM_STAT_REG(tmp,TYPE_VEC);
376
377 v.dim = v.max_dim = ip->x->dim;
378
379 c = v_norm2(ip->x);
380 if ( c <= 0.0)
381 return H;
382 else {
383 v.ve = Q->me[0];
384 sv_mlt(1.0/c,ip->x,&v);
385 }
386
387 v_zero(r);
388 v_zero(s);
389 for ( i = 0; i < ip->k; i++ )
390 {
391 v.ve = Q->me[i];
392 u = (ip->Ax)(ip->A_par,&v,u);
393 for (j = 0; j <= i; j++) {
394 v.ve = Q->me[j];
395 /* modified Gram-Schmidt */
396 r->ve[j] = in_prod(&v,u);
397 v_mltadd(u,&v,-r->ve[j],u);
398 }
399 h_val = v_norm2(u);
400 /* if u == 0 then we have an exact subspace */
401 if ( h_val <= 0.0 )
402 {
403 *h_rem = h_val;
404 return H;
405 }
406 /* iterative refinement -- ensures near orthogonality */
407 do {
408 v_zero(tmp);
409 for (j = 0; j <= i; j++) {
410 v.ve = Q->me[j];
411 s->ve[j] = in_prod(&v,u);
412 v_mltadd(tmp,&v,s->ve[j],tmp);
413 }
414 v_sub(u,tmp,u);
415 v_add(r,s,r);
416 } while ( v_norm2(s) > 0.1*(h_val = v_norm2(u)) );
417 /* now that u is nearly orthogonal to Q, update H */
418 set_col(H,i,r);
419 /* check once again if h_val is zero */
420 if ( h_val <= 0.0 )
421 {
422 *h_rem = h_val;
423 return H;
424 }
425 if ( i == ip->k-1 )
426 {
427 *h_rem = h_val;
428 continue;
429 }
430 /* H->me[i+1][i] = h_val; */
431 m_set_val(H,i+1,i,h_val);
432 v.ve = Q->me[i+1];
433 sv_mlt(1.0/h_val,u,&v);
434 }
435
436 return H;
437 }
438
439 /* iter_arnoldi -- an implementation of the Arnoldi method;
440 modified Gram-Schmidt algorithm
441 */
442 MAT *iter_arnoldi(ip,h_rem,Q,H)
443 ITER *ip;
444 Real *h_rem;
445 MAT *Q, *H;
446 {
447 static VEC *u=VNULL, *r=VNULL;
448 VEC v; /* auxiliary vector */
449 int i,j;
450 Real h_val, c;
451
452 if (ip == INULL)
453 error(E_NULL,"iter_arnoldi");
454 if ( ! ip->Ax || ! Q || ! ip->x )
455 error(E_NULL,"iter_arnoldi");
456 if ( ip->k <= 0 )
457 error(E_BOUNDS,"iter_arnoldi");
458 if ( Q->n != ip->x->dim || Q->m != ip->k )
459 error(E_SIZES,"iter_arnoldi");
460
461 m_zero(Q);
462 H = m_resize(H,ip->k,ip->k);
463 m_zero(H);
464
465 u = v_resize(u,ip->x->dim);
466 r = v_resize(r,ip->k);
467 MEM_STAT_REG(u,TYPE_VEC);
468 MEM_STAT_REG(r,TYPE_VEC);
469
470 v.dim = v.max_dim = ip->x->dim;
471
472 c = v_norm2(ip->x);
473 if ( c <= 0.0)
474 return H;
475 else {
476 v.ve = Q->me[0];
477 sv_mlt(1.0/c,ip->x,&v);
478 }
479
480 v_zero(r);
481 for ( i = 0; i < ip->k; i++ )
482 {
483 v.ve = Q->me[i];
484 u = (ip->Ax)(ip->A_par,&v,u);
485 for (j = 0; j <= i; j++) {
486 v.ve = Q->me[j];
487 /* modified Gram-Schmidt */
488 r->ve[j] = in_prod(&v,u);
489 v_mltadd(u,&v,-r->ve[j],u);
490 }
491 h_val = v_norm2(u);
492 /* if u == 0 then we have an exact subspace */
493 if ( h_val <= 0.0 )
494 {
495 *h_rem = h_val;
496 return H;
497 }
498 set_col(H,i,r);
499 if ( i == ip->k-1 )
500 {
501 *h_rem = h_val;
502 continue;
503 }
504 /* H->me[i+1][i] = h_val; */
505 m_set_val(H,i+1,i,h_val);
506 v.ve = Q->me[i+1];
507 sv_mlt(1.0/h_val,u,&v);
508 }
509
510 return H;
511 }
512
513
514
515 /* iter_sparnoldi -- uses arnoldi() with an explicit representation of A */
516 MAT *iter_sparnoldi(A,x0,m,h_rem,Q,H)
517 SPMAT *A;
518 VEC *x0;
519 int m;
520 Real *h_rem;
521 MAT *Q, *H;
522 {
523 ITER *ip;
524
525 ip = iter_get(0,0);
526 ip->Ax = (Fun_Ax) sp_mv_mlt;
527 ip->A_par = (void *) A;
528 ip->x = x0;
529 ip->k = m;
530 iter_arnoldi_iref(ip,h_rem,Q,H);
531 ip->shared_x = ip->shared_b = TRUE;
532 iter_free(ip); /* release only ITER structure */
533 return H;
534 }
535
536
537 /* for testing gmres */
538 static void test_gmres(ip,i,Q,R,givc,givs,h_val)
539 ITER *ip;
540 int i;
541 MAT *Q, *R;
542 VEC *givc, *givs;
543 double h_val;
544 {
545 VEC vt, vt1;
546 static MAT *Q1, *R1;
547 int j;
548
549 /* test Q*A*Q^T = R */
550
551 Q = m_resize(Q,i+1,ip->b->dim);
552 Q1 = m_resize(Q1,i+1,ip->b->dim);
553 R1 = m_resize(R1,i+1,i+1);
554 MEM_STAT_REG(Q1,TYPE_MAT);
555 MEM_STAT_REG(R1,TYPE_MAT);
556
557 vt.dim = vt.max_dim = ip->b->dim;
558 vt1.dim = vt1.max_dim = ip->b->dim;
559 for (j=0; j <= i; j++) {
560 vt.ve = Q->me[j];
561 vt1.ve = Q1->me[j];
562 ip->Ax(ip->A_par,&vt,&vt1);
563 }
564
565 mmtr_mlt(Q,Q1,R1);
566 R1 = m_resize(R1,i+2,i+1);
567 for (j=0; j < i; j++)
568 R1->me[i+1][j] = 0.0;
569 R1->me[i+1][i] = h_val;
570
571 for (j = 0; j <= i; j++) {
572 rot_rows(R1,j,j+1,givc->ve[j],givs->ve[j],R1);
573 }
574
575 R1 = m_resize(R1,i+1,i+1);
576 m_sub(R,R1,R1);
577 /* if (m_norm_inf(R1) > MACHEPS*ip->b->dim) */
578 printf(" %d. ||Q*A*Q^T - H|| = %g [cf. MACHEPS = %g]\n",
579 ip->steps,m_norm_inf(R1),MACHEPS);
580
581 /* check Q*Q^T = I */
582
583 Q = m_resize(Q,i+1,ip->b->dim);
584 mmtr_mlt(Q,Q,R1);
585 for (j=0; j <= i; j++)
586 R1->me[j][j] -= 1.0;
587 if (m_norm_inf(R1) > MACHEPS*ip->b->dim)
588 printf(" ! m_norm_inf(Q*Q^T) = %g\n",m_norm_inf(R1));
589
590 }
591
592
593 /* gmres -- generalised minimum residual algorithm of Saad & Schultz
594 SIAM J. Sci. Stat. Comp. v.7, pp.856--869 (1986)
595 */
596 VEC *iter_gmres(ip)
597 ITER *ip;
598 {
599 static VEC *u=VNULL, *r=VNULL, *rhs = VNULL;
600 static VEC *givs=VNULL, *givc=VNULL, *z = VNULL;
601 static MAT *Q = MNULL, *R = MNULL;
602 VEC *rr, v, v1; /* additional pointers (not real vectors) */
603 int i,j, done;
604 Real nres;
605 /* Real last_h; */
606
607 if (ip == INULL)
608 error(E_NULL,"iter_gmres");
609 if ( ! ip->Ax || ! ip->b )
610 error(E_NULL,"iter_gmres");
611 if ( ! ip->stop_crit )
612 error(E_NULL,"iter_gmres");
613 if ( ip->k <= 0 )
614 error(E_BOUNDS,"iter_gmres");
615 if (ip->x != VNULL && ip->x->dim != ip->b->dim)
616 error(E_SIZES,"iter_gmres");
617 if (ip->eps <= 0.0) ip->eps = MACHEPS;
618
619 r = v_resize(r,ip->k+1);
620 u = v_resize(u,ip->b->dim);
621 rhs = v_resize(rhs,ip->k+1);
622 givs = v_resize(givs,ip->k); /* Givens rotations */
623 givc = v_resize(givc,ip->k);
624
625 MEM_STAT_REG(r,TYPE_VEC);
626 MEM_STAT_REG(u,TYPE_VEC);
627 MEM_STAT_REG(rhs,TYPE_VEC);
628 MEM_STAT_REG(givs,TYPE_VEC);
629 MEM_STAT_REG(givc,TYPE_VEC);
630
631 R = m_resize(R,ip->k+1,ip->k);
632 Q = m_resize(Q,ip->k,ip->b->dim);
633 MEM_STAT_REG(R,TYPE_MAT);
634 MEM_STAT_REG(Q,TYPE_MAT);
635
636 if (ip->x == VNULL) { /* ip->x == 0 */
637 ip->x = v_get(ip->b->dim);
638 ip->shared_x = FALSE;
639 }
640
641 v.dim = v.max_dim = ip->b->dim; /* v and v1 are pointers to rows */
642 v1.dim = v1.max_dim = ip->b->dim; /* of matrix Q */
643
644 if (ip->Bx != (Fun_Ax)NULL) { /* if precondition is defined */
645 z = v_resize(z,ip->b->dim);
646 MEM_STAT_REG(z,TYPE_VEC);
647 }
648
649 done = FALSE;
650 for (ip->steps = 0; ip->steps < ip->limit; ) {
651
652 /* restart */
653
654 ip->Ax(ip->A_par,ip->x,u); /* u = A*x */
655 v_sub(ip->b,u,u); /* u = b - A*x */
656 rr = u; /* rr is a pointer only */
657
658 if (ip->Bx) {
659 (ip->Bx)(ip->B_par,u,z); /* tmp = B*(b-A*x) */
660 rr = z;
661 }
662
663 nres = v_norm2(rr);
664 if (ip->steps == 0) {
665 if (ip->info) ip->info(ip,nres,VNULL,VNULL);
666 ip->init_res = nres;
667 }
668
669 if ( nres == 0.0 ) {
670 done = TRUE;
671 break;
672 }
673
674 v.ve = Q->me[0];
675 sv_mlt(1.0/nres,rr,&v);
676
677 v_zero(r);
678 v_zero(rhs);
679 rhs->ve[0] = nres;
680
681 for ( i = 0; i < ip->k && ip->steps < ip->limit; i++ ) {
682 ip->steps++;
683 v.ve = Q->me[i];
684 (ip->Ax)(ip->A_par,&v,u);
685 rr = u;
686 if (ip->Bx) {
687 (ip->Bx)(ip->B_par,u,z);
688 rr = z;
689 }
690
691 if (i < ip->k - 1) {
692 v1.ve = Q->me[i+1];
693 v_copy(rr,&v1);
694 for (j = 0; j <= i; j++) {
695 v.ve = Q->me[j];
696 /* r->ve[j] = in_prod(&v,rr); */
697 /* modified Gram-Schmidt algorithm */
698 r->ve[j] = in_prod(&v,&v1);
699 v_mltadd(&v1,&v,-r->ve[j],&v1);
700 }
701
702 r->ve[i+1] = nres = v_norm2(&v1);
703 if (nres <= MACHEPS*ip->init_res) {
704 for (j = 0; j < i; j++)
705 rot_vec(r,j,j+1,givc->ve[j],givs->ve[j],r);
706 set_col(R,i,r);
707 done = TRUE;
708 break;
709 }
710 sv_mlt(1.0/nres,&v1,&v1);
711 }
712 else { /* i == ip->k - 1 */
713 /* Q->me[ip->k] need not be computed */
714
715 for (j = 0; j <= i; j++) {
716 v.ve = Q->me[j];
717 r->ve[j] = in_prod(&v,rr);
718 }
719
720 nres = in_prod(rr,rr) - in_prod(r,r);
721 if (sqrt(fabs(nres)) <= MACHEPS*ip->init_res) {
722 for (j = 0; j < i; j++)
723 rot_vec(r,j,j+1,givc->ve[j],givs->ve[j],r);
724 set_col(R,i,r);
725 done = TRUE;
726 break;
727 }
728 if (nres < 0.0) { /* do restart */
729 i--;
730 ip->steps--;
731 break;
732 }
733 r->ve[i+1] = sqrt(nres);
734 }
735
736 /* QR update */
737
738 /* last_h = r->ve[i+1]; */ /* for test only */
739 for (j = 0; j < i; j++)
740 rot_vec(r,j,j+1,givc->ve[j],givs->ve[j],r);
741 givens(r->ve[i],r->ve[i+1],&givc->ve[i],&givs->ve[i]);
742 rot_vec(r,i,i+1,givc->ve[i],givs->ve[i],r);
743 rot_vec(rhs,i,i+1,givc->ve[i],givs->ve[i],rhs);
744
745 set_col(R,i,r);
746
747 nres = fabs((double) rhs->ve[i+1]);
748 if (ip->info) ip->info(ip,nres,VNULL,VNULL);
749 if ( ip->stop_crit(ip,nres,VNULL,VNULL) ) {
750 done = TRUE;
751 break;
752 }
753 }
754
755 /* use ixi submatrix of R */
756
757 if (i >= ip->k) i = ip->k - 1;
758
759 R = m_resize(R,i+1,i+1);
760 rhs = v_resize(rhs,i+1);
761
762 /* test only */
763 /* test_gmres(ip,i,Q,R,givc,givs,last_h); */
764
765 Usolve(R,rhs,rhs,0.0); /* solve a system: R*x = rhs */
766
767 /* new approximation */
768
769 for (j = 0; j <= i; j++) {
770 v.ve = Q->me[j];
771 v_mltadd(ip->x,&v,rhs->ve[j],ip->x);
772 }
773
774 if (done) break;
775
776 /* back to old dimensions */
777
778 rhs = v_resize(rhs,ip->k+1);
779 R = m_resize(R,ip->k+1,ip->k);
780
781 }
782
783 return ip->x;
784 }
785
786 /* iter_spgmres - a simple interface to iter_gmres */
787
788 VEC *iter_spgmres(A,B,b,tol,x,k,limit,steps)
789 SPMAT *A, *B;
790 VEC *b, *x;
791 double tol;
792 int *steps,k,limit;
793 {
794 ITER *ip;
795
796 ip = iter_get(0,0);
797 ip->Ax = (Fun_Ax) sp_mv_mlt;
798 ip->A_par = (void *) A;
799 if (B) {
800 ip->Bx = (Fun_Ax) sp_mv_mlt;
801 ip->B_par = (void *) B;
802 }
803 else {
804 ip->Bx = (Fun_Ax) NULL;
805 ip->B_par = NULL;
806 }
807 ip->k = k;
808 ip->limit = limit;
809 ip->info = (Fun_info) NULL;
810 ip->b = b;
811 ip->eps = tol;
812 ip->x = x;
813 iter_gmres(ip);
814 x = ip->x;
815 if (steps) *steps = ip->steps;
816 ip->shared_x = ip->shared_b = TRUE;
817 iter_free(ip); /* release only ITER structure */
818 return x;
819 }
820
821
822 /* for testing mgcr */
823 static void test_mgcr(ip,i,Q,R)
824 ITER *ip;
825 int i;
826 MAT *Q, *R;
827 {
828 VEC vt, vt1;
829 static MAT *R1;
830 static VEC *r, *r1;
831 VEC *rr;
832 int k,j;
833 Real sm;
834
835
836 /* check Q*Q^T = I */
837 vt.dim = vt.max_dim = ip->b->dim;
838 vt1.dim = vt1.max_dim = ip->b->dim;
839
840 Q = m_resize(Q,i+1,ip->b->dim);
841 R1 = m_resize(R1,i+1,i+1);
842 r = v_resize(r,ip->b->dim);
843 r1 = v_resize(r1,ip->b->dim);
844 MEM_STAT_REG(R1,TYPE_MAT);
845 MEM_STAT_REG(r,TYPE_VEC);
846 MEM_STAT_REG(r1,TYPE_VEC);
847
848 m_zero(R1);
849 for (k=1; k <= i; k++)
850 for (j=1; j <= i; j++) {
851 vt.ve = Q->me[k];
852 vt1.ve = Q->me[j];
853 R1->me[k][j] = in_prod(&vt,&vt1);
854 }
855 for (j=1; j <= i; j++)
856 R1->me[j][j] -= 1.0;
857 if (m_norm_inf(R1) > MACHEPS*ip->b->dim)
858 printf(" ! (mgcr:) m_norm_inf(Q*Q^T) = %g\n",m_norm_inf(R1));
859
860 /* check (r_i,Ap_j) = 0 for j <= i */
861
862 ip->Ax(ip->A_par,ip->x,r);
863 v_sub(ip->b,r,r);
864 rr = r;
865 if (ip->Bx) {
866 ip->Bx(ip->B_par,r,r1);
867 rr = r1;
868 }
869
870 printf(" ||r|| = %g\n",v_norm2(rr));
871 sm = 0.0;
872 for (j = 1; j <= i; j++) {
873 vt.ve = Q->me[j];
874 sm = max(sm,in_prod(&vt,rr));
875 }
876 if (sm >= MACHEPS*ip->b->dim)
877 printf(" ! (mgcr:) max_j (r,Ap_j) = %g\n",sm);
878
879 }
880
881
882
883
884 /*
885 iter_mgcr -- modified generalized conjugate residual algorithm;
886 fast version of GCR;
887 */
888 VEC *iter_mgcr(ip)
889 ITER *ip;
890 {
891 static VEC *As, *beta, *alpha, *z;
892 static MAT *N, *H;
893
894 VEC *rr, v, s; /* additional pointer and structures */
895 Real nres; /* norm of a residual */
896 Real dd; /* coefficient d_i */
897 int i,j;
898 int done; /* if TRUE then stop the iterative process */
899 int dim; /* dimension of the problem */
900
901 /* ip cannot be NULL */
902 if (ip == INULL) error(E_NULL,"mgcr");
903 /* Ax, b and stopping criterion must be given */
904 if (! ip->Ax || ! ip->b || ! ip->stop_crit)
905 error(E_NULL,"mgcr");
906 /* at least one direction vector must exist */
907 if ( ip->k <= 0) error(E_BOUNDS,"mgcr");
908 /* if the vector x is given then b and x must have the same dimension */
909 if ( ip->x && ip->x->dim != ip->b->dim)
910 error(E_SIZES,"mgcr");
911 if (ip->eps <= 0.0) ip->eps = MACHEPS;
912
913 dim = ip->b->dim;
914 As = v_resize(As,dim);
915 alpha = v_resize(alpha,ip->k);
916 beta = v_resize(beta,ip->k);
917
918 MEM_STAT_REG(As,TYPE_VEC);
919 MEM_STAT_REG(alpha,TYPE_VEC);
920 MEM_STAT_REG(beta,TYPE_VEC);
921
922 H = m_resize(H,ip->k,ip->k);
923 N = m_resize(N,ip->k,dim);
924
925 MEM_STAT_REG(H,TYPE_MAT);
926 MEM_STAT_REG(N,TYPE_MAT);
927
928 /* if a preconditioner is defined */
929 if (ip->Bx) {
930 z = v_resize(z,dim);
931 MEM_STAT_REG(z,TYPE_VEC);
932 }
933
934 /* if x is NULL then it is assumed that x has
935 entries with value zero */
936 if ( ! ip->x ) {
937 ip->x = v_get(ip->b->dim);
938 ip->shared_x = FALSE;
939 }
940
941 /* v and s are additional pointers to rows of N */
942 /* they must have the same dimension as rows of N */
943 v.dim = v.max_dim = s.dim = s.max_dim = dim;
944
945
946 done = FALSE;
947 for (ip->steps = 0; ip->steps < ip->limit; ) {
948 (*ip->Ax)(ip->A_par,ip->x,As); /* As = A*x */
949 v_sub(ip->b,As,As); /* As = b - A*x */
950 rr = As; /* rr is an additional pointer */
951
952 /* if a preconditioner is defined */
953 if (ip->Bx) {
954 (*ip->Bx)(ip->B_par,As,z); /* z = B*(b-A*x) */
955 rr = z;
956 }
957
958 /* norm of the residual */
959 nres = v_norm2(rr);
960 dd = nres; /* dd = ||r_i|| */
961
962 /* check if the norm of the residual is zero */
963 if (ip->steps == 0) {
964 /* information for a user */
965 if (ip->info) (*ip->info)(ip,nres,As,rr);
966 ip->init_res = fabs(nres);
967 }
968
969 if (nres == 0.0) {
970 /* iterative process is finished */
971 done = TRUE;
972 break;
973 }
974
975 /* save this residual in the first row of N */
976 v.ve = N->me[0];
977 v_copy(rr,&v);
978
979 for (i = 0; i < ip->k && ip->steps < ip->limit; i++) {
980 ip->steps++;
981 v.ve = N->me[i]; /* pointer to a row of N (=s_i) */
982 /* note that we must use here &v, not v */
983 (*ip->Ax)(ip->A_par,&v,As);
984 rr = As; /* As = A*s_i */
985 if (ip->Bx) {
986 (*ip->Bx)(ip->B_par,As,z); /* z = B*A*s_i */
987 rr = z;
988 }
989
990 if (i < ip->k - 1) {
991 s.ve = N->me[i+1]; /* pointer to a row of N (=s_{i+1}) */
992 v_copy(rr,&s); /* s_{i+1} = B*A*s_i */
993 for (j = 0; j <= i-1; j++) {
994 v.ve = N->me[j+1]; /* pointer to a row of N (=s_{j+1}) */
995 /* beta->ve[j] = in_prod(&v,rr); */ /* beta_{j,i} */
996 /* modified Gram-Schmidt algorithm */
997 beta->ve[j] = in_prod(&v,&s); /* beta_{j,i} */
998 /* s_{i+1} -= beta_{j,i}*s_{j+1} */
999 v_mltadd(&s,&v,- beta->ve[j],&s);
1000 }
1001
1002 /* beta_{i,i} = ||s_{i+1}||_2 */
1003 beta->ve[i] = nres = v_norm2(&s);
1004 if ( nres <= MACHEPS*ip->init_res) {
1005 /* s_{i+1} == 0 */
1006 i--;
1007 done = TRUE;
1008 break;
1009 }
1010 sv_mlt(1.0/nres,&s,&s); /* normalize s_{i+1} */
1011
1012 v.ve = N->me[0];
1013 alpha->ve[i] = in_prod(&v,&s); /* alpha_i = (s_0 , s_{i+1}) */
1014
1015 }
1016 else {
1017 for (j = 0; j <= i-1; j++) {
1018 v.ve = N->me[j+1]; /* pointer to a row of N (=s_{j+1}) */
1019 beta->ve[j] = in_prod(&v,rr); /* beta_{j,i} */
1020 }
1021
1022 nres = in_prod(rr,rr); /* rr = B*A*s_{k-1} */
1023 for (j = 0; j <= i-1; j++)
1024 nres -= beta->ve[j]*beta->ve[j];
1025
1026 if (sqrt(fabs(nres)) <= MACHEPS*ip->init_res) {
1027 /* s_k is zero */
1028 i--;
1029 done = TRUE;
1030 break;
1031 }
1032 if (nres < 0.0) { /* do restart */
1033 i--;
1034 ip->steps--;
1035 break;
1036 }
1037 beta->ve[i] = sqrt(nres); /* beta_{k-1,k-1} */
1038
1039 v.ve = N->me[0];
1040 alpha->ve[i] = in_prod(&v,rr);
1041 for (j = 0; j <= i-1; j++)
1042 alpha->ve[i] -= beta->ve[j]*alpha->ve[j];
1043 alpha->ve[i] /= beta->ve[i]; /* alpha_{k-1} */
1044
1045 }
1046
1047 set_col(H,i,beta);
1048
1049 /* other method of computing dd */
1050 /* if (fabs((double)alpha->ve[i]) > dd) {
1051 nres = - dd*dd + alpha->ve[i]*alpha->ve[i];
1052 nres = sqrt((double) nres);
1053 if (ip->info) (*ip->info)(ip,-nres,VNULL,VNULL);
1054 break;
1055 } */
1056 /* to avoid overflow/underflow in computing dd */
1057 /* dd *= cos(asin((double)(alpha->ve[i]/dd))); */
1058
1059 nres = alpha->ve[i]/dd;
1060 if (fabs(nres-1.0) <= MACHEPS*ip->init_res)
1061 dd = 0.0;
1062 else {
1063 nres = 1.0 - nres*nres;
1064 if (nres < 0.0) {
1065 nres = sqrt((double) -nres);
1066 if (ip->info) (*ip->info)(ip,-dd*nres,VNULL,VNULL);
1067 break;
1068 }
1069 dd *= sqrt((double) nres);
1070 }
1071
1072 if (ip->info) (*ip->info)(ip,dd,VNULL,VNULL);
1073 if ( ip->stop_crit(ip,dd,VNULL,VNULL) ) {
1074 /* stopping criterion is satisfied */
1075 done = TRUE;
1076 break;
1077 }
1078
1079 } /* end of for */
1080
1081 if (i >= ip->k) i = ip->k - 1;
1082
1083 /* use (i+1) by (i+1) submatrix of H */
1084 H = m_resize(H,i+1,i+1);
1085 alpha = v_resize(alpha,i+1);
1086 Usolve(H,alpha,alpha,0.0); /* c_i is saved in alpha */
1087
1088 for (j = 0; j <= i; j++) {
1089 v.ve = N->me[j];
1090 v_mltadd(ip->x,&v,alpha->ve[j],ip->x);
1091 }
1092
1093
1094 if (done) break; /* stop the iterative process */
1095 alpha = v_resize(alpha,ip->k);
1096 H = m_resize(H,ip->k,ip->k);
1097
1098 } /* end of while */
1099
1100 return ip->x; /* return the solution */
1101 }
1102
1103
1104
1105 /* iter_spmgcr - a simple interface to iter_mgcr */
1106 /* no preconditioner */
1107 VEC *iter_spmgcr(A,B,b,tol,x,k,limit,steps)
1108 SPMAT *A, *B;
1109 VEC *b, *x;
1110 double tol;
1111 int *steps,k,limit;
1112 {
1113 ITER *ip;
1114
1115 ip = iter_get(0,0);
1116 ip->Ax = (Fun_Ax) sp_mv_mlt;
1117 ip->A_par = (void *) A;
1118 if (B) {
1119 ip->Bx = (Fun_Ax) sp_mv_mlt;
1120 ip->B_par = (void *) B;
1121 }
1122 else {
1123 ip->Bx = (Fun_Ax) NULL;
1124 ip->B_par = NULL;
1125 }
1126
1127 ip->k = k;
1128 ip->limit = limit;
1129 ip->info = (Fun_info) NULL;
1130 ip->b = b;
1131 ip->eps = tol;
1132 ip->x = x;
1133 iter_mgcr(ip);
1134 x = ip->x;
1135 if (steps) *steps = ip->steps;
1136 ip->shared_x = ip->shared_b = TRUE;
1137 iter_free(ip); /* release only ITER structure */
1138 return x;
1139 }
1140
1141
1142
1143 /*
1144 Conjugate gradients method for a normal equation
1145 a preconditioner B must be symmetric !!
1146 */
1147 VEC *iter_cgne(ip)
1148 ITER *ip;
1149 {
1150 static VEC *r = VNULL, *p = VNULL, *q = VNULL, *z = VNULL;
1151 Real alpha, beta, inner, old_inner, nres;
1152 VEC *rr1; /* pointer only */
1153
1154 if (ip == INULL)
1155 error(E_NULL,"iter_cgne");
1156 if (!ip->Ax || ! ip->ATx || !ip->b)
1157 error(E_NULL,"iter_cgne");
1158 if ( ip->x == ip->b )
1159 error(E_INSITU,"iter_cgne");
1160 if (!ip->stop_crit)
1161 error(E_NULL,"iter_cgne");
1162
1163 if ( ip->eps <= 0.0 ) ip->eps = MACHEPS;
1164
1165 r = v_resize(r,ip->b->dim);
1166 p = v_resize(p,ip->b->dim);
1167 q = v_resize(q,ip->b->dim);
1168
1169 MEM_STAT_REG(r,TYPE_VEC);
1170 MEM_STAT_REG(p,TYPE_VEC);
1171 MEM_STAT_REG(q,TYPE_VEC);
1172
1173 z = v_resize(z,ip->b->dim);
1174 MEM_STAT_REG(z,TYPE_VEC);
1175
1176 if (ip->x) {
1177 if (ip->x->dim != ip->b->dim)
1178 error(E_SIZES,"iter_cgne");
1179 ip->Ax(ip->A_par,ip->x,p); /* p = A*x */
1180 v_sub(ip->b,p,z); /* z = b - A*x */
1181 }
1182 else { /* ip->x == 0 */
1183 ip->x = v_get(ip->b->dim);
1184 ip->shared_x = FALSE;
1185 v_copy(ip->b,z);
1186 }
1187 rr1 = z;
1188 if (ip->Bx) {
1189 (ip->Bx)(ip->B_par,rr1,p);
1190 rr1 = p;
1191 }
1192 (ip->ATx)(ip->AT_par,rr1,r); /* r = A^T*B*(b-A*x) */
1193
1194
1195 old_inner = 0.0;
1196 for ( ip->steps = 0; ip->steps <= ip->limit; ip->steps++ )
1197 {
1198 rr1 = r;
1199 if ( ip->Bx ) {
1200 (ip->Bx)(ip->B_par,r,z); /* rr = B*r */
1201 rr1 = z;
1202 }
1203
1204 inner = in_prod(r,rr1);
1205 nres = sqrt(fabs(inner));
1206 if (ip->info) ip->info(ip,nres,r,rr1);
1207 if (ip->steps == 0) ip->init_res = nres;
1208 if ( ip->stop_crit(ip,nres,r,rr1) ) break;
1209
1210 if ( ip->steps ) /* if ( ip->steps > 0 ) ... */
1211 {
1212 beta = inner/old_inner;
1213 p = v_mltadd(rr1,p,beta,p);
1214 }
1215 else /* if ( ip->steps == 0 ) ... */
1216 {
1217 beta = 0.0;
1218 p = v_copy(rr1,p);
1219 old_inner = 0.0;
1220 }
1221 (ip->Ax)(ip->A_par,p,q); /* q = A*p */
1222 if (ip->Bx) {
1223 (ip->Bx)(ip->B_par,q,z);
1224 (ip->ATx)(ip->AT_par,z,q);
1225 rr1 = q; /* q = A^T*B*A*p */
1226 }
1227 else {
1228 (ip->ATx)(ip->AT_par,q,z); /* z = A^T*A*p */
1229 rr1 = z;
1230 }
1231
1232 alpha = inner/in_prod(rr1,p);
1233 v_mltadd(ip->x,p,alpha,ip->x);
1234 v_mltadd(r,rr1,-alpha,r);
1235 old_inner = inner;
1236 }
1237
1238 return ip->x;
1239 }
1240
1241 /* iter_spcgne -- a simple interface to iter_cgne() which
1242 uses sparse matrix data structures
1243 -- assumes that B contains an actual preconditioner (or NULL)
1244 use always as follows:
1245 x = iter_spcgne(A,B,b,eps,x,limit,steps);
1246 or
1247 x = iter_spcgne(A,B,b,eps,VNULL,limit,steps);
1248 In the second case the solution vector is created.
1249 */
1250 VEC *iter_spcgne(A,B,b,eps,x,limit,steps)
1251 SPMAT *A, *B;
1252 VEC *b, *x;
1253 double eps;
1254 int *steps, limit;
1255 {
1256 ITER *ip;
1257
1258 ip = iter_get(0,0);
1259 ip->Ax = (Fun_Ax) sp_mv_mlt;
1260 ip->A_par = (void *)A;
1261 ip->ATx = (Fun_Ax) sp_vm_mlt;
1262 ip->AT_par = (void *)A;
1263 if (B) {
1264 ip->Bx = (Fun_Ax) sp_mv_mlt;
1265 ip->B_par = (void *)B;
1266 }
1267 else {
1268 ip->Bx = (Fun_Ax) NULL;
1269 ip->B_par = NULL;
1270 }
1271 ip->info = (Fun_info) NULL;
1272 ip->b = b;
1273 ip->eps = eps;
1274 ip->limit = limit;
1275 ip->x = x;
1276 iter_cgne(ip);
1277 x = ip->x;
1278 if (steps) *steps = ip->steps;
1279 ip->shared_x = ip->shared_b = TRUE;
1280 iter_free(ip); /* release only ITER structure */
1281 return x;
1282 }
1283
1284
1285
+0
-589
interface/src/scilab/src/c/itersym.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Stewart & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* itersym.c 17/09/93 */
27
28
29 /*
30 ITERATIVE METHODS - implementation of several iterative methods;
31 see also iter0.c
32 */
33
34 #include <stdio.h>
35 #include <math.h>
36 #include "matrix.h"
37 #include "matrix2.h"
38 #include "sparse.h"
39 #include "iter.h"
40
41 static char rcsid[] = "$Id: itersym.c 3690 2010-09-02 09:55:19Z lsaavedr $";
42
43
44 #ifdef ANSI_C
45 VEC *spCHsolve(SPMAT *,VEC *,VEC *);
46 VEC *trieig(VEC *,VEC *,MAT *);
47 #else
48 VEC *spCHsolve();
49 VEC *trieig();
50 #endif
51
52
53
54 /* iter_spcg -- a simple interface to iter_cg() which uses sparse matrix
55 data structures
56 -- assumes that LLT contains the Cholesky factorisation of the
57 actual preconditioner;
58 use always as follows:
59 x = iter_spcg(A,LLT,b,eps,x,limit,steps);
60 or
61 x = iter_spcg(A,LLT,b,eps,VNULL,limit,steps);
62 In the second case the solution vector is created.
63 */
64 VEC *iter_spcg(A,LLT,b,eps,x,limit,steps)
65 SPMAT *A, *LLT;
66 VEC *b, *x;
67 double eps;
68 int *steps, limit;
69 {
70 ITER *ip;
71
72 ip = iter_get(0,0);
73 ip->Ax = (Fun_Ax) sp_mv_mlt;
74 ip->A_par = (void *)A;
75 ip->Bx = (Fun_Ax) spCHsolve;
76 ip->B_par = (void *)LLT;
77 ip->info = (Fun_info) NULL;
78 ip->b = b;
79 ip->eps = eps;
80 ip->limit = limit;
81 ip->x = x;
82 iter_cg(ip);
83 x = ip->x;
84 if (steps) *steps = ip->steps;
85 ip->shared_x = ip->shared_b = TRUE;
86 iter_free(ip); /* release only ITER structure */
87 return x;
88 }
89
90 /*
91 Conjugate gradients method;
92 */
93 VEC *iter_cg(ip)
94 ITER *ip;
95 {
96 static VEC *r = VNULL, *p = VNULL, *q = VNULL, *z = VNULL;
97 Real alpha, beta, inner, old_inner, nres;
98 VEC *rr; /* rr == r or rr == z */
99
100 if (ip == INULL)
101 error(E_NULL,"iter_cg");
102 if (!ip->Ax || !ip->b)
103 error(E_NULL,"iter_cg");
104 if ( ip->x == ip->b )
105 error(E_INSITU,"iter_cg");
106 if (!ip->stop_crit)
107 error(E_NULL,"iter_cg");
108
109 if ( ip->eps <= 0.0 )
110 ip->eps = MACHEPS;
111
112 r = v_resize(r,ip->b->dim);
113 p = v_resize(p,ip->b->dim);
114 q = v_resize(q,ip->b->dim);
115
116 MEM_STAT_REG(r,TYPE_VEC);
117 MEM_STAT_REG(p,TYPE_VEC);
118 MEM_STAT_REG(q,TYPE_VEC);
119
120 if (ip->Bx != (Fun_Ax)NULL) {
121 z = v_resize(z,ip->b->dim);
122 MEM_STAT_REG(z,TYPE_VEC);
123 rr = z;
124 }
125 else rr = r;
126
127 if (ip->x != VNULL) {
128 if (ip->x->dim != ip->b->dim)
129 error(E_SIZES,"iter_cg");
130 ip->Ax(ip->A_par,ip->x,p); /* p = A*x */
131 v_sub(ip->b,p,r); /* r = b - A*x */
132 }
133 else { /* ip->x == 0 */
134 ip->x = v_get(ip->b->dim);
135 ip->shared_x = FALSE;
136 v_copy(ip->b,r);
137 }
138
139 old_inner = 0.0;
140 for ( ip->steps = 0; ip->steps <= ip->limit; ip->steps++ )
141 {
142 if ( ip->Bx )
143 (ip->Bx)(ip->B_par,r,rr); /* rr = B*r */
144
145 inner = in_prod(rr,r);
146 nres = sqrt(fabs(inner));
147 if (ip->info) ip->info(ip,nres,r,rr);
148 if (ip->steps == 0) ip->init_res = nres;
149 if ( ip->stop_crit(ip,nres,r,rr) ) break;
150
151 if ( ip->steps ) /* if ( ip->steps > 0 ) ... */
152 {
153 beta = inner/old_inner;
154 p = v_mltadd(rr,p,beta,p);
155 }
156 else /* if ( ip->steps == 0 ) ... */
157 {
158 beta = 0.0;
159 p = v_copy(rr,p);
160 old_inner = 0.0;
161 }
162 (ip->Ax)(ip->A_par,p,q); /* q = A*p */
163 alpha = in_prod(p,q);
164 if (sqrt(fabs(alpha)) <= MACHEPS*ip->init_res)
165 error(E_BREAKDOWN,"iter_cg");
166 alpha = inner/alpha;
167 v_mltadd(ip->x,p,alpha,ip->x);
168 v_mltadd(r,q,-alpha,r);
169 old_inner = inner;
170 }
171
172 return ip->x;
173 }
174
175
176
177 /* iter_lanczos -- raw lanczos algorithm -- no re-orthogonalisation
178 -- creates T matrix of size == m,
179 but no larger than before beta_k == 0
180 -- uses passed routine to do matrix-vector multiplies */
181 void iter_lanczos(ip,a,b,beta2,Q)
182 ITER *ip;
183 VEC *a, *b;
184 Real *beta2;
185 MAT *Q;
186 {
187 int j;
188 static VEC *v = VNULL, *w = VNULL, *tmp = VNULL;
189 Real alpha, beta, c;
190
191 if ( ! ip )
192 error(E_NULL,"iter_lanczos");
193 if ( ! ip->Ax || ! ip->x || ! a || ! b )
194 error(E_NULL,"iter_lanczos");
195 if ( ip->k <= 0 )
196 error(E_BOUNDS,"iter_lanczos");
197 if ( Q && ( Q->n < ip->x->dim || Q->m < ip->k ) )
198 error(E_SIZES,"iter_lanczos");
199
200 a = v_resize(a,(u_int)ip->k);
201 b = v_resize(b,(u_int)(ip->k-1));
202 v = v_resize(v,ip->x->dim);
203 w = v_resize(w,ip->x->dim);
204 tmp = v_resize(tmp,ip->x->dim);
205 MEM_STAT_REG(v,TYPE_VEC);
206 MEM_STAT_REG(w,TYPE_VEC);
207 MEM_STAT_REG(tmp,TYPE_VEC);
208
209 beta = 1.0;
210 v_zero(a);
211 v_zero(b);
212 if (Q) m_zero(Q);
213
214 /* normalise x as w */
215 c = v_norm2(ip->x);
216 if (c <= MACHEPS) { /* ip->x == 0 */
217 *beta2 = 0.0;
218 return;
219 }
220 else
221 sv_mlt(1.0/c,ip->x,w);
222
223 (ip->Ax)(ip->A_par,w,v);
224
225 for ( j = 0; j < ip->k; j++ )
226 {
227 /* store w in Q if Q not NULL */
228 if ( Q ) set_row(Q,j,w);
229
230 alpha = in_prod(w,v);
231 a->ve[j] = alpha;
232 v_mltadd(v,w,-alpha,v);
233 beta = v_norm2(v);
234 if ( beta == 0.0 )
235 {
236 *beta2 = 0.0;
237 return;
238 }
239
240 if ( j < ip->k-1 )
241 b->ve[j] = beta;
242 v_copy(w,tmp);
243 sv_mlt(1/beta,v,w);
244 sv_mlt(-beta,tmp,v);
245 (ip->Ax)(ip->A_par,w,tmp);
246 v_add(v,tmp,v);
247 }
248 *beta2 = beta;
249
250 }
251
252 /* iter_splanczos -- version that uses sparse matrix data structure */
253 void iter_splanczos(A,m,x0,a,b,beta2,Q)
254 SPMAT *A;
255 int m;
256 VEC *x0, *a, *b;
257 Real *beta2;
258 MAT *Q;
259 {
260 ITER *ip;
261
262 ip = iter_get(0,0);
263 ip->shared_x = ip->shared_b = TRUE;
264 ip->Ax = (Fun_Ax) sp_mv_mlt;
265 ip->A_par = (void *) A;
266 ip->x = x0;
267 ip->k = m;
268 iter_lanczos(ip,a,b,beta2,Q);
269 iter_free(ip); /* release only ITER structure */
270 }
271
272
273
274 extern double frexp(), ldexp();
275
276 /* product -- returns the product of a long list of numbers
277 -- answer stored in mant (mantissa) and expt (exponent) */
278 static double product(a,offset,expt)
279 VEC *a;
280 double offset;
281 int *expt;
282 {
283 Real mant, tmp_fctr;
284 int i, tmp_expt;
285
286 if ( ! a )
287 error(E_NULL,"product");
288
289 mant = 1.0;
290 *expt = 0;
291 if ( offset == 0.0 )
292 for ( i = 0; i < a->dim; i++ )
293 {
294 mant *= frexp(a->ve[i],&tmp_expt);
295 *expt += tmp_expt;
296 if ( ! (i % 10) )
297 {
298 mant = frexp(mant,&tmp_expt);
299 *expt += tmp_expt;
300 }
301 }
302 else
303 for ( i = 0; i < a->dim; i++ )
304 {
305 tmp_fctr = a->ve[i] - offset;
306 tmp_fctr += (tmp_fctr > 0.0 ) ? -MACHEPS*offset :
307 MACHEPS*offset;
308 mant *= frexp(tmp_fctr,&tmp_expt);
309 *expt += tmp_expt;
310 if ( ! (i % 10) )
311 {
312 mant = frexp(mant,&tmp_expt);
313 *expt += tmp_expt;
314 }
315 }
316
317 mant = frexp(mant,&tmp_expt);
318 *expt += tmp_expt;
319
320 return mant;
321 }
322
323 /* product2 -- returns the product of a long list of numbers
324 -- answer stored in mant (mantissa) and expt (exponent) */
325 static double product2(a,k,expt)
326 VEC *a;
327 int k; /* entry of a to leave out */
328 int *expt;
329 {
330 Real mant, mu, tmp_fctr;
331 int i, tmp_expt;
332
333 if ( ! a )
334 error(E_NULL,"product2");
335 if ( k < 0 || k >= a->dim )
336 error(E_BOUNDS,"product2");
337
338 mant = 1.0;
339 *expt = 0;
340 mu = a->ve[k];
341 for ( i = 0; i < a->dim; i++ )
342 {
343 if ( i == k )
344 continue;
345 tmp_fctr = a->ve[i] - mu;
346 tmp_fctr += ( tmp_fctr > 0.0 ) ? -MACHEPS*mu : MACHEPS*mu;
347 mant *= frexp(tmp_fctr,&tmp_expt);
348 *expt += tmp_expt;
349 if ( ! (i % 10) )
350 {
351 mant = frexp(mant,&tmp_expt);
352 *expt += tmp_expt;
353 }
354 }
355 mant = frexp(mant,&tmp_expt);
356 *expt += tmp_expt;
357
358 return mant;
359 }
360
361 /* dbl_cmp -- comparison function to pass to qsort() */
362 static int dbl_cmp(x,y)
363 Real *x, *y;
364 {
365 Real tmp;
366
367 tmp = *x - *y;
368 return (tmp > 0 ? 1 : tmp < 0 ? -1: 0);
369 }
370
371 /* iter_lanczos2 -- lanczos + error estimate for every e-val
372 -- uses Cullum & Willoughby approach, Sparse Matrix Proc. 1978
373 -- returns multiple e-vals where multiple e-vals may not exist
374 -- returns evals vector */
375 VEC *iter_lanczos2(ip,evals,err_est)
376 ITER *ip; /* ITER structure */
377 VEC *evals; /* eigenvalue vector */
378 VEC *err_est; /* error estimates of eigenvalues */
379 {
380 VEC *a;
381 static VEC *b=VNULL, *a2=VNULL, *b2=VNULL;
382 Real beta, pb_mant, det_mant, det_mant1, det_mant2;
383 int i, pb_expt, det_expt, det_expt1, det_expt2;
384
385 if ( ! ip )
386 error(E_NULL,"iter_lanczos2");
387 if ( ! ip->Ax || ! ip->x )
388 error(E_NULL,"iter_lanczos2");
389 if ( ip->k <= 0 )
390 error(E_RANGE,"iter_lanczos2");
391
392 a = evals;
393 a = v_resize(a,(u_int)ip->k);
394 b = v_resize(b,(u_int)(ip->k-1));
395 MEM_STAT_REG(b,TYPE_VEC);
396
397 iter_lanczos(ip,a,b,&beta,MNULL);
398
399 /* printf("# beta =%g\n",beta); */
400 pb_mant = 0.0;
401 if ( err_est )
402 {
403 pb_mant = product(b,(double)0.0,&pb_expt);
404 /* printf("# pb_mant = %g, pb_expt = %d\n",pb_mant, pb_expt); */
405 }
406
407 /* printf("# diags =\n"); v_output(a); */
408 /* printf("# off diags =\n"); v_output(b); */
409 a2 = v_resize(a2,a->dim - 1);
410 b2 = v_resize(b2,b->dim - 1);
411 MEM_STAT_REG(a2,TYPE_VEC);
412 MEM_STAT_REG(b2,TYPE_VEC);
413 for ( i = 0; i < a2->dim - 1; i++ )
414 {
415 a2->ve[i] = a->ve[i+1];
416 b2->ve[i] = b->ve[i+1];
417 }
418 a2->ve[a2->dim-1] = a->ve[a2->dim];
419
420 trieig(a,b,MNULL);
421
422 /* sort evals as a courtesy */
423 qsort((void *)(a->ve),(int)(a->dim),sizeof(Real),(int (*)())dbl_cmp);
424
425 /* error estimates */
426 if ( err_est )
427 {
428 err_est = v_resize(err_est,(u_int)ip->k);
429
430 trieig(a2,b2,MNULL);
431 /* printf("# a =\n"); v_output(a); */
432 /* printf("# a2 =\n"); v_output(a2); */
433
434 for ( i = 0; i < a->dim; i++ )
435 {
436 det_mant1 = product2(a,i,&det_expt1);
437 det_mant2 = product(a2,(double)a->ve[i],&det_expt2);
438 /* printf("# det_mant1=%g, det_expt1=%d\n",
439 det_mant1,det_expt1); */
440 /* printf("# det_mant2=%g, det_expt2=%d\n",
441 det_mant2,det_expt2); */
442 if ( det_mant1 == 0.0 )
443 { /* multiple e-val of T */
444 err_est->ve[i] = 0.0;
445 continue;
446 }
447 else if ( det_mant2 == 0.0 )
448 {
449 err_est->ve[i] = HUGE;
450 continue;
451 }
452 if ( (det_expt1 + det_expt2) % 2 )
453 /* if odd... */
454 det_mant = sqrt(2.0*fabs(det_mant1*det_mant2));
455 else /* if even... */
456 det_mant = sqrt(fabs(det_mant1*det_mant2));
457 det_expt = (det_expt1+det_expt2)/2;
458 err_est->ve[i] = fabs(beta*
459 ldexp(pb_mant/det_mant,pb_expt-det_expt));
460 }
461 }
462
463 return a;
464 }
465
466 /* iter_splanczos2 -- version of iter_lanczos2() that uses sparse matrix data
467 structure */
468
469 VEC *iter_splanczos2(A,m,x0,evals,err_est)
470 SPMAT *A;
471 int m;
472 VEC *x0; /* initial vector */
473 VEC *evals; /* eigenvalue vector */
474 VEC *err_est; /* error estimates of eigenvalues */
475 {
476 ITER *ip;
477 VEC *a;
478
479 ip = iter_get(0,0);
480 ip->Ax = (Fun_Ax) sp_mv_mlt;
481 ip->A_par = (void *) A;
482 ip->x = x0;
483 ip->k = m;
484 a = iter_lanczos2(ip,evals,err_est);
485 ip->shared_x = ip->shared_b = TRUE;
486 iter_free(ip); /* release only ITER structure */
487 return a;
488 }
489
490
491
492
493 /*
494 Conjugate gradient method
495 Another variant - mainly for testing
496 */
497
498 VEC *iter_cg1(ip)
499 ITER *ip;
500 {
501 static VEC *r = VNULL, *p = VNULL, *q = VNULL, *z = VNULL;
502 Real alpha;
503 double inner,nres;
504 VEC *rr; /* rr == r or rr == z */
505
506 if (ip == INULL)
507 error(E_NULL,"iter_cg");
508 if (!ip->Ax || !ip->b)
509 error(E_NULL,"iter_cg");
510 if ( ip->x == ip->b )
511 error(E_INSITU,"iter_cg");
512 if (!ip->stop_crit)
513 error(E_NULL,"iter_cg");
514
515 if ( ip->eps <= 0.0 )
516 ip->eps = MACHEPS;
517
518 r = v_resize(r,ip->b->dim);
519 p = v_resize(p,ip->b->dim);
520 q = v_resize(q,ip->b->dim);
521
522 MEM_STAT_REG(r,TYPE_VEC);
523 MEM_STAT_REG(p,TYPE_VEC);
524 MEM_STAT_REG(q,TYPE_VEC);
525
526 if (ip->Bx != (Fun_Ax)NULL) {
527 z = v_resize(z,ip->b->dim);
528 MEM_STAT_REG(z,TYPE_VEC);
529 rr = z;
530 }
531 else rr = r;
532
533 if (ip->x != VNULL) {
534 if (ip->x->dim != ip->b->dim)
535 error(E_SIZES,"iter_cg");
536 ip->Ax(ip->A_par,ip->x,p); /* p = A*x */
537 v_sub(ip->b,p,r); /* r = b - A*x */
538 }
539 else { /* ip->x == 0 */
540 ip->x = v_get(ip->b->dim);
541 ip->shared_x = FALSE;
542 v_copy(ip->b,r);
543 }
544
545 if (ip->Bx) (ip->Bx)(ip->B_par,r,p);
546 else v_copy(r,p);
547
548 inner = in_prod(p,r);
549 nres = sqrt(fabs(inner));
550 if (ip->info) ip->info(ip,nres,r,p);
551 if ( nres == 0.0) return ip->x;
552
553 for ( ip->steps = 0; ip->steps <= ip->limit; ip->steps++ )
554 {
555 ip->Ax(ip->A_par,p,q);
556 inner = in_prod(q,p);
557 if (sqrt(fabs(inner)) <= MACHEPS*ip->init_res)
558 error(E_BREAKDOWN,"iter_cg1");
559
560 alpha = in_prod(p,r)/inner;
561 v_mltadd(ip->x,p,alpha,ip->x);
562 v_mltadd(r,q,-alpha,r);
563
564 rr = r;
565 if (ip->Bx) {
566 ip->Bx(ip->B_par,r,z);
567 rr = z;
568 }
569
570 nres = in_prod(r,rr);
571 if (nres < 0.0) {
572 warning(WARN_RES_LESS_0,"iter_cg");
573 break;
574 }
575 nres = sqrt(fabs(nres));
576 if (ip->info) ip->info(ip,nres,r,z);
577 if (ip->steps == 0) ip->init_res = nres;
578 if ( ip->stop_crit(ip,nres,r,z) ) break;
579
580 alpha = -in_prod(rr,q)/inner;
581 v_mltadd(rr,p,alpha,p);
582
583 }
584
585 return ip->x;
586 }
587
588
+0
-434
interface/src/scilab/src/c/ivecop.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* ivecop.c */
27
28 #include <stdio.h>
29 #include "matrix.h"
30
31 static char rcsid[] = "$Id: ivecop.c 3690 2010-09-02 09:55:19Z lsaavedr $";
32
33 static char line[MAXLINE];
34
35
36
37 /* iv_get -- get integer vector -- see also memory.c */
38 IVEC *iv_get(dim)
39 int dim;
40 {
41 IVEC *iv;
42 /* u_int i; */
43
44 if (dim < 0)
45 error(E_NEG,"iv_get");
46
47 if ((iv=NEW(IVEC)) == IVNULL )
48 error(E_MEM,"iv_get");
49 else if (mem_info_is_on()) {
50 mem_bytes(TYPE_IVEC,0,sizeof(IVEC));
51 mem_numvar(TYPE_IVEC,1);
52 }
53
54 iv->dim = iv->max_dim = dim;
55 if ((iv->ive = NEW_A(dim,int)) == (int *)NULL )
56 error(E_MEM,"iv_get");
57 else if (mem_info_is_on()) {
58 mem_bytes(TYPE_IVEC,0,dim*sizeof(int));
59 }
60
61 return (iv);
62 }
63
64 /* iv_free -- returns iv & asoociated memory back to memory heap */
65 int iv_free(iv)
66 IVEC *iv;
67 {
68 if ( iv==IVNULL || iv->dim > MAXDIM )
69 /* don't trust it */
70 return (-1);
71
72 if ( iv->ive == (int *)NULL ) {
73 if (mem_info_is_on()) {
74 mem_bytes(TYPE_IVEC,sizeof(IVEC),0);
75 mem_numvar(TYPE_IVEC,-1);
76 }
77 free((char *)iv);
78 }
79 else
80 {
81 if (mem_info_is_on()) {
82 mem_bytes(TYPE_IVEC,sizeof(IVEC)+iv->max_dim*sizeof(int),0);
83 mem_numvar(TYPE_IVEC,-1);
84 }
85 free((char *)iv->ive);
86 free((char *)iv);
87 }
88
89 return (0);
90 }
91
92 /* iv_resize -- returns the IVEC with dimension new_dim
93 -- iv is set to the zero vector */
94 IVEC *iv_resize(iv,new_dim)
95 IVEC *iv;
96 int new_dim;
97 {
98 int i;
99
100 if (new_dim < 0)
101 error(E_NEG,"iv_resize");
102
103 if ( ! iv )
104 return iv_get(new_dim);
105
106 if (new_dim == iv->dim)
107 return iv;
108
109 if ( new_dim > iv->max_dim )
110 {
111 if (mem_info_is_on()) {
112 mem_bytes(TYPE_IVEC,iv->max_dim*sizeof(int),
113 new_dim*sizeof(int));
114 }
115 iv->ive = RENEW(iv->ive,new_dim,int);
116 if ( ! iv->ive )
117 error(E_MEM,"iv_resize");
118 iv->max_dim = new_dim;
119 }
120 if ( iv->dim <= new_dim )
121 for ( i = iv->dim; i < new_dim; i++ )
122 iv->ive[i] = 0;
123 iv->dim = new_dim;
124
125 return iv;
126 }
127
128 /* iv_copy -- copy integer vector in to out
129 -- out created/resized if necessary */
130 IVEC *iv_copy(in,out)
131 IVEC *in, *out;
132 {
133 int i;
134
135 if ( ! in )
136 error(E_NULL,"iv_copy");
137 out = iv_resize(out,in->dim);
138 for ( i = 0; i < in->dim; i++ )
139 out->ive[i] = in->ive[i];
140
141 return out;
142 }
143
144 /* iv_move -- move selected pieces of an IVEC
145 -- moves the length dim0 subvector with initial index i0
146 to the corresponding subvector of out with initial index i1
147 -- out is resized if necessary */
148 IVEC *iv_move(in,i0,dim0,out,i1)
149 IVEC *in, *out;
150 int i0, dim0, i1;
151 {
152 if ( ! in )
153 error(E_NULL,"iv_move");
154 if ( i0 < 0 || dim0 < 0 || i1 < 0 ||
155 i0+dim0 > in->dim )
156 error(E_BOUNDS,"iv_move");
157
158 if ( (! out) || i1+dim0 > out->dim )
159 out = iv_resize(out,i1+dim0);
160
161 MEM_COPY(&(in->ive[i0]),&(out->ive[i1]),dim0*sizeof(int));
162
163 return out;
164 }
165
166 /* iv_add -- integer vector addition -- may be in-situ */
167 IVEC *iv_add(iv1,iv2,out)
168 IVEC *iv1,*iv2,*out;
169 {
170 u_int i;
171 int *out_ive, *iv1_ive, *iv2_ive;
172
173 if ( iv1==IVNULL || iv2==IVNULL )
174 error(E_NULL,"iv_add");
175 if ( iv1->dim != iv2->dim )
176 error(E_SIZES,"iv_add");
177 if ( out==IVNULL || out->dim != iv1->dim )
178 out = iv_resize(out,iv1->dim);
179
180 out_ive = out->ive;
181 iv1_ive = iv1->ive;
182 iv2_ive = iv2->ive;
183
184 for ( i = 0; i < iv1->dim; i++ )
185 out_ive[i] = iv1_ive[i] + iv2_ive[i];
186
187 return (out);
188 }
189
190
191
192 /* iv_sub -- integer vector addition -- may be in-situ */
193 IVEC *iv_sub(iv1,iv2,out)
194 IVEC *iv1,*iv2,*out;
195 {
196 u_int i;
197 int *out_ive, *iv1_ive, *iv2_ive;
198
199 if ( iv1==IVNULL || iv2==IVNULL )
200 error(E_NULL,"iv_sub");
201 if ( iv1->dim != iv2->dim )
202 error(E_SIZES,"iv_sub");
203 if ( out==IVNULL || out->dim != iv1->dim )
204 out = iv_resize(out,iv1->dim);
205
206 out_ive = out->ive;
207 iv1_ive = iv1->ive;
208 iv2_ive = iv2->ive;
209
210 for ( i = 0; i < iv1->dim; i++ )
211 out_ive[i] = iv1_ive[i] - iv2_ive[i];
212
213 return (out);
214 }
215
216 /* iv_foutput -- print a representation of iv on stream fp */
217 void iv_foutput(fp,iv)
218 FILE *fp;
219 IVEC *iv;
220 {
221 int i;
222
223 fprintf(fp,"IntVector: ");
224 if ( iv == IVNULL )
225 {
226 fprintf(fp,"**** NULL ****\n");
227 return;
228 }
229 fprintf(fp,"dim: %d\n",iv->dim);
230 for ( i = 0; i < iv->dim; i++ )
231 {
232 if ( (i+1) % 8 )
233 fprintf(fp,"%8d ",iv->ive[i]);
234 else
235 fprintf(fp,"%8d\n",iv->ive[i]);
236 }
237 if ( i % 8 )
238 fprintf(fp,"\n");
239 }
240
241
242 /* iv_finput -- input integer vector from stream fp */
243 IVEC *iv_finput(fp,x)
244 FILE *fp;
245 IVEC *x;
246 {
247 IVEC *iiv_finput(),*biv_finput();
248
249 if ( isatty(fileno(fp)) )
250 return iiv_finput(fp,x);
251 else
252 return biv_finput(fp,x);
253 }
254
255 /* iiv_finput -- interactive input of IVEC iv */
256 IVEC *iiv_finput(fp,iv)
257 FILE *fp;
258 IVEC *iv;
259 {
260 u_int i,dim,dynamic; /* dynamic set if memory allocated here */
261
262 /* get dimension */
263 if ( iv != (IVEC *)NULL && iv->dim<MAXDIM )
264 { dim = iv->dim; dynamic = FALSE; }
265 else
266 {
267 dynamic = TRUE;
268 do
269 {
270 fprintf(stderr,"IntVector: dim: ");
271 if ( fgets(line,MAXLINE,fp)==NULL )
272 error(E_INPUT,"iiv_finput");
273 } while ( sscanf(line,"%u",&dim)<1 || dim>MAXDIM );
274 iv = iv_get(dim);
275 }
276
277 /* input elements */
278 for ( i=0; i<dim; i++ )
279 do
280 {
281 redo:
282 fprintf(stderr,"entry %u: ",i);
283 if ( !dynamic )
284 fprintf(stderr,"old: %-9d new: ",iv->ive[i]);
285 if ( fgets(line,MAXLINE,fp)==NULL )
286 error(E_INPUT,"iiv_finput");
287 if ( (*line == 'b' || *line == 'B') && i > 0 )
288 { i--; dynamic = FALSE; goto redo; }
289 if ( (*line == 'f' || *line == 'F') && i < dim-1 )
290 { i++; dynamic = FALSE; goto redo; }
291 } while ( *line=='\0' || sscanf(line,"%d",&iv->ive[i]) < 1 );
292
293 return (iv);
294 }
295
296 /* biv_finput -- batch-file input of IVEC iv */
297 IVEC *biv_finput(fp,iv)
298 FILE *fp;
299 IVEC *iv;
300 {
301 u_int i,dim;
302 int io_code;
303
304 /* get dimension */
305 skipjunk(fp);
306 if ((io_code=fscanf(fp," IntVector: dim:%u",&dim)) < 1 ||
307 dim>MAXDIM )
308 error(io_code==EOF ? 7 : 6,"biv_finput");
309
310 /* allocate memory if necessary */
311 if ( iv==(IVEC *)NULL || iv->dim<dim )
312 iv = iv_resize(iv,dim);
313
314 /* get entries */
315 skipjunk(fp);
316 for ( i=0; i<dim; i++ )
317 if ((io_code=fscanf(fp,"%d",&iv->ive[i])) < 1 )
318 error(io_code==EOF ? 7 : 6,"biv_finput");
319
320 return (iv);
321 }
322
323 /* iv_dump -- dumps all the contents of IVEC iv onto stream fp */
324 void iv_dump(fp,iv)
325 FILE*fp;
326 IVEC*iv;
327 {
328 int i;
329
330 fprintf(fp,"IntVector: ");
331 if ( ! iv )
332 {
333 fprintf(fp,"**** NULL ****\n");
334 return;
335 }
336 fprintf(fp,"dim: %d, max_dim: %d\n",iv->dim,iv->max_dim);
337 fprintf(fp,"ive @ 0x%lx\n",(long)(iv->ive));
338 for ( i = 0; i < iv->max_dim; i++ )
339 {
340 if ( (i+1) % 8 )
341 fprintf(fp,"%8d ",iv->ive[i]);
342 else
343 fprintf(fp,"%8d\n",iv->ive[i]);
344 }
345 if ( i % 8 )
346 fprintf(fp,"\n");
347 }
348
349 #define MAX_STACK 60
350
351
352 /* iv_sort -- sorts vector x, and generates permutation that gives the order
353 of the components; x = [1.3, 3.7, 0.5] -> [0.5, 1.3, 3.7] and
354 the permutation is order = [2, 0, 1].
355 -- if order is NULL on entry then it is ignored
356 -- the sorted vector x is returned */
357 IVEC *iv_sort(x, order)
358 IVEC *x;
359 PERM *order;
360 {
361 int *x_ive, tmp, v;
362 /* int *order_pe; */
363 int dim, i, j, l, r, tmp_i;
364 int stack[MAX_STACK], sp;
365
366 if ( ! x )
367 error(E_NULL,"v_sort");
368 if ( order != PNULL && order->size != x->dim )
369 order = px_resize(order, x->dim);
370
371 x_ive = x->ive;
372 dim = x->dim;
373 if ( order != PNULL )
374 px_ident(order);
375
376 if ( dim <= 1 )
377 return x;
378
379 /* using quicksort algorithm in Sedgewick,
380 "Algorithms in C", Ch. 9, pp. 118--122 (1990) */
381 sp = 0;
382 l = 0; r = dim-1; v = x_ive[0];
383 for ( ; ; )
384 {
385 while ( r > l )
386 {
387 /* "i = partition(x_ive,l,r);" */
388 v = x_ive[r];
389 i = l-1;
390 j = r;
391 for ( ; ; )
392 {
393 while ( x_ive[++i] < v )
394 ;
395 while ( x_ive[--j] > v )
396 ;
397 if ( i >= j ) break;
398
399 tmp = x_ive[i];
400 x_ive[i] = x_ive[j];
401 x_ive[j] = tmp;
402 if ( order != PNULL )
403 {
404 tmp_i = order->pe[i];
405 order->pe[i] = order->pe[j];
406 order->pe[j] = tmp_i;
407 }
408 }
409 tmp = x_ive[i];
410 x_ive[i] = x_ive[r];
411 x_ive[r] = tmp;
412 if ( order != PNULL )
413 {
414 tmp_i = order->pe[i];
415 order->pe[i] = order->pe[r];
416 order->pe[r] = tmp_i;
417 }
418
419 if ( i-l > r-i )
420 { stack[sp++] = l; stack[sp++] = i-1; l = i+1; }
421 else
422 { stack[sp++] = i+1; stack[sp++] = r; r = i-1; }
423 }
424
425 /* recursion elimination */
426 if ( sp == 0 )
427 break;
428 r = stack[--sp];
429 l = stack[--sp];
430 }
431
432 return x;
433 }
+0
-103
interface/src/scilab/src/c/loader.sce less more
0 // This file is released under the 3-clause BSD license. See COPYING-BSD.
1 // Generated by builder.sce : Please, do not edit this file
2 // ----------------------------------------------------------------------------
3 //
4 sp_get_path = get_absolute_file_path('loader.sce');
5 //
6 // ulink previous function with same name
7 [bOK, ilib] = c_link('sp_get');
8 if bOK then
9 ulink(ilib);
10 end
11 //
12 [bOK, ilib] = c_link('sp_set_val');
13 if bOK then
14 ulink(ilib);
15 end
16 //
17 [bOK, ilib] = c_link('spICHfactor');
18 if bOK then
19 ulink(ilib);
20 end
21 //
22 [bOK, ilib] = c_link('sp_col_access');
23 if bOK then
24 ulink(ilib);
25 end
26 //
27 [bOK, ilib] = c_link('spILUfactor');
28 if bOK then
29 ulink(ilib);
30 end
31 //
32 [bOK, ilib] = c_link('iter_spcgne');
33 if bOK then
34 ulink(ilib);
35 end
36 //
37 [bOK, ilib] = c_link('iter_spcgs');
38 if bOK then
39 ulink(ilib);
40 end
41 //
42 [bOK, ilib] = c_link('iter_spgmres');
43 if bOK then
44 ulink(ilib);
45 end
46 //
47 [bOK, ilib] = c_link('iter_spmgcr');
48 if bOK then
49 ulink(ilib);
50 end
51 //
52 [bOK, ilib] = c_link('spCHfactor');
53 if bOK then
54 ulink(ilib);
55 end
56 //
57 [bOK, ilib] = c_link('spILUfactor');
58 if bOK then
59 ulink(ilib);
60 end
61 //
62 [bOK, ilib] = c_link('spLUfactor');
63 if bOK then
64 ulink(ilib);
65 end
66 //
67 [bOK, ilib] = c_link('spLUsolve');
68 if bOK then
69 ulink(ilib);
70 end
71 //
72 [bOK, ilib] = c_link('v_set_val');
73 if bOK then
74 ulink(ilib);
75 end
76 //
77 [bOK, ilib] = c_link('v_free');
78 if bOK then
79 ulink(ilib);
80 end
81 //
82 [bOK, ilib] = c_link('sp_free');
83 if bOK then
84 ulink(ilib);
85 end
86 //
87 [bOK, ilib] = c_link('v_get');
88 if bOK then
89 ulink(ilib);
90 end
91 //
92 [bOK, ilib] = c_link('restart');
93 if bOK then
94 ulink(ilib);
95 end
96 //
97 link(sp_get_path + 'libsp_get' + getdynlibext(), ['sp_get','sp_set_val','spICHfactor','sp_col_access','spILUfactor','iter_spcgne','iter_spcgs','iter_spgmres','iter_spmgcr','spCHfactor','spILUfactor','spLUfactor','spLUsolve','v_set_val','v_free','sp_free','v_get','restart'],'c');
98 // remove temp. variables on stack
99 clear sp_get_path;
100 clear bOK;
101 clear ilib;
102 // ----------------------------------------------------------------------------
+0
-14
interface/src/scilab/src/c/ls.dat less more
0 # No. of a problem
1 2
2 # A =
3 Matrix: 5 by 3
4 row 0: 3 -1 2
5 row 1: 2 -1 1.2
6 row 2: 2.5 1 -1.5
7 row 3: 3 1 1
8 row 4: -1 1 -2.2
9
10 # b =
11 Vector: dim: 5
12 5 3 2 4 6
13
+0
-280
interface/src/scilab/src/c/lufactor.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Matrix factorisation routines to work with the other matrix files.
28 */
29
30 /* LUfactor.c 1.5 11/25/87 */
31 static char rcsid[] = "$Id: lufactor.c 3690 2010-09-02 09:55:19Z lsaavedr $";
32
33 #include <stdio.h>
34 #include "matrix.h"
35 #include "matrix2.h"
36 #include <math.h>
37
38
39
40 /* Most matrix factorisation routines are in-situ unless otherwise specified */
41
42 /* LUfactor -- gaussian elimination with scaled partial pivoting
43 -- Note: returns LU matrix which is A */
44 MAT *LUfactor(A,pivot)
45 MAT *A;
46 PERM *pivot;
47 {
48 u_int i, j, k, k_max, m, n;
49 int i_max;
50 Real **A_v, *A_piv, *A_row;
51 Real max1, temp, tiny;
52 static VEC *scale = VNULL;
53
54 if ( A==(MAT *)NULL || pivot==(PERM *)NULL )
55 error(E_NULL,"LUfactor");
56 if ( pivot->size != A->m )
57 error(E_SIZES,"LUfactor");
58 m = A->m; n = A->n;
59 scale = v_resize(scale,A->m);
60 MEM_STAT_REG(scale,TYPE_VEC);
61 A_v = A->me;
62
63 tiny = 10.0/HUGE_VAL;
64
65 /* initialise pivot with identity permutation */
66 for ( i=0; i<m; i++ )
67 pivot->pe[i] = i;
68
69 /* set scale parameters */
70 for ( i=0; i<m; i++ )
71 {
72 max1 = 0.0;
73 for ( j=0; j<n; j++ )
74 {
75 temp = fabs(A_v[i][j]);
76 max1 = max(max1,temp);
77 }
78 scale->ve[i] = max1;
79 }
80
81 /* main loop */
82 k_max = min(m,n)-1;
83 for ( k=0; k<k_max; k++ )
84 {
85 /* find best pivot row */
86 max1 = 0.0; i_max = -1;
87 for ( i=k; i<m; i++ )
88 if ( fabs(scale->ve[i]) >= tiny*fabs(A_v[i][k]) )
89 {
90 temp = fabs(A_v[i][k])/scale->ve[i];
91 if ( temp > max1 )
92 { max1 = temp; i_max = i; }
93 }
94
95 /* if no pivot then ignore column k... */
96 if ( i_max == -1 )
97 {
98 /* set pivot entry A[k][k] exactly to zero,
99 rather than just "small" */
100 A_v[k][k] = 0.0;
101 continue;
102 }
103
104 /* do we pivot ? */
105 if ( i_max != k ) /* yes we do... */
106 {
107 px_transp(pivot,i_max,k);
108 for ( j=0; j<n; j++ )
109 {
110 temp = A_v[i_max][j];
111 A_v[i_max][j] = A_v[k][j];
112 A_v[k][j] = temp;
113 }
114 }
115
116 /* row operations */
117 for ( i=k+1; i<m; i++ ) /* for each row do... */
118 { /* Note: divide by zero should never happen */
119 temp = A_v[i][k] = A_v[i][k]/A_v[k][k];
120 A_piv = &(A_v[k][k+1]);
121 A_row = &(A_v[i][k+1]);
122 if ( k+1 < n )
123 __mltadd__(A_row,A_piv,-temp,(int)(n-(k+1)));
124 /*********************************************
125 for ( j=k+1; j<n; j++ )
126 A_v[i][j] -= temp*A_v[k][j];
127 (*A_row++) -= temp*(*A_piv++);
128 *********************************************/
129 }
130
131 }
132
133 return A;
134 }
135
136
137 /* LUsolve -- given an LU factorisation in A, solve Ax=b */
138 VEC *LUsolve(A,pivot,b,x)
139 MAT *A;
140 PERM *pivot;
141 VEC *b,*x;
142 {
143 if ( A==(MAT *)NULL || b==(VEC *)NULL || pivot==(PERM *)NULL )
144 error(E_NULL,"LUsolve");
145 if ( A->m != A->n || A->n != b->dim )
146 error(E_SIZES,"LUsolve");
147
148 x = v_resize(x,b->dim);
149 px_vec(pivot,b,x); /* x := P.b */
150 Lsolve(A,x,x,1.0); /* implicit diagonal = 1 */
151 Usolve(A,x,x,0.0); /* explicit diagonal */
152
153 return (x);
154 }
155
156 /* LUTsolve -- given an LU factorisation in A, solve A^T.x=b */
157 VEC *LUTsolve(LU,pivot,b,x)
158 MAT *LU;
159 PERM *pivot;
160 VEC *b,*x;
161 {
162 if ( ! LU || ! b || ! pivot )
163 error(E_NULL,"LUTsolve");
164 if ( LU->m != LU->n || LU->n != b->dim )
165 error(E_SIZES,"LUTsolve");
166
167 x = v_copy(b,x);
168 UTsolve(LU,x,x,0.0); /* explicit diagonal */
169 LTsolve(LU,x,x,1.0); /* implicit diagonal = 1 */
170 pxinv_vec(pivot,x,x); /* x := P^T.tmp */
171
172 return (x);
173 }
174
175 /* m_inverse -- returns inverse of A, provided A is not too rank deficient
176 -- uses LU factorisation */
177 MAT *m_inverse(A,out)
178 MAT *A, *out;
179 {
180 int i;
181 static VEC *tmp = VNULL, *tmp2 = VNULL;
182 static MAT *A_cp = MNULL;
183 static PERM *pivot = PNULL;
184
185 if ( ! A )
186 error(E_NULL,"m_inverse");
187 if ( A->m != A->n )
188 error(E_SQUARE,"m_inverse");
189 if ( ! out || out->m < A->m || out->n < A->n )
190 out = m_resize(out,A->m,A->n);
191
192 A_cp = m_copy(A,MNULL);
193 tmp = v_resize(tmp,A->m);
194 tmp2 = v_resize(tmp2,A->m);
195 pivot = px_resize(pivot,A->m);
196 MEM_STAT_REG(A_cp,TYPE_MAT);
197 MEM_STAT_REG(tmp, TYPE_VEC);
198 MEM_STAT_REG(tmp2,TYPE_VEC);
199 MEM_STAT_REG(pivot,TYPE_PERM);
200 tracecatch(LUfactor(A_cp,pivot),"m_inverse");
201 for ( i = 0; i < A->n; i++ )
202 {
203 v_zero(tmp);
204 tmp->ve[i] = 1.0;
205 tracecatch(LUsolve(A_cp,pivot,tmp,tmp2),"m_inverse");
206 set_col(out,i,tmp2);
207 }
208
209 return out;
210 }
211
212 /* LUcondest -- returns an estimate of the condition number of LU given the
213 LU factorisation in compact form */
214 double LUcondest(LU,pivot)
215 MAT *LU;
216 PERM *pivot;
217 {
218 static VEC *y = VNULL, *z = VNULL;
219 Real cond_est, L_norm, U_norm, sum, tiny;
220 int i, j, n;
221
222 if ( ! LU || ! pivot )
223 error(E_NULL,"LUcondest");
224 if ( LU->m != LU->n )
225 error(E_SQUARE,"LUcondest");
226 if ( LU->n != pivot->size )
227 error(E_SIZES,"LUcondest");
228
229 tiny = 10.0/HUGE_VAL;
230
231 n = LU->n;
232 y = v_resize(y,n);
233 z = v_resize(z,n);
234 MEM_STAT_REG(y,TYPE_VEC);
235 MEM_STAT_REG(z,TYPE_VEC);
236
237 for ( i = 0; i < n; i++ )
238 {
239 sum = 0.0;
240 for ( j = 0; j < i; j++ )
241 sum -= LU->me[j][i]*y->ve[j];
242 sum -= (sum < 0.0) ? 1.0 : -1.0;
243 if ( fabs(LU->me[i][i]) <= tiny*fabs(sum) )
244 return HUGE_VAL;
245 y->ve[i] = sum / LU->me[i][i];
246 }
247
248 catch(E_SING,
249 LTsolve(LU,y,y,1.0);
250 LUsolve(LU,pivot,y,z);
251 ,
252 return HUGE_VAL);
253
254 /* now estimate norm of A (even though it is not directly available) */
255 /* actually computes ||L||_inf.||U||_inf */
256 U_norm = 0.0;
257 for ( i = 0; i < n; i++ )
258 {
259 sum = 0.0;
260 for ( j = i; j < n; j++ )
261 sum += fabs(LU->me[i][j]);
262 if ( sum > U_norm )
263 U_norm = sum;
264 }
265 L_norm = 0.0;
266 for ( i = 0; i < n; i++ )
267 {
268 sum = 1.0;
269 for ( j = 0; j < i; j++ )
270 sum += fabs(LU->me[i][j]);
271 if ( sum > L_norm )
272 L_norm = sum;
273 }
274
275 tracecatch(cond_est = U_norm*L_norm*v_norm_inf(z)/v_norm_inf(y),
276 "LUcondest");
277
278 return cond_est;
279 }
+0
-146
interface/src/scilab/src/c/machine.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Stewart & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25 /*
26 This file contains basic routines which are used by the functions
27 in meschach.a etc.
28 These are the routines that should be modified in order to take
29 full advantage of specialised architectures (pipelining, vector
30 processors etc).
31 */
32
33 static char *rcsid = "$Id: machine.c 3690 2010-09-02 09:55:19Z lsaavedr $";
34
35 #include "machine.h"
36
37 /* __ip__ -- inner product */
38 double __ip__(dp1,dp2,len)
39 register Real *dp1, *dp2;
40 int len;
41 {
42 #ifdef VUNROLL
43 register int len4;
44 register Real sum1, sum2, sum3;
45 #endif
46 register int i;
47 register Real sum;
48
49 sum = 0.0;
50 #ifdef VUNROLL
51 sum1 = sum2 = sum3 = 0.0;
52
53 len4 = len / 4;
54 len = len % 4;
55
56 for ( i = 0; i < len4; i++ )
57 {
58 sum += dp1[4*i]*dp2[4*i];
59 sum1 += dp1[4*i+1]*dp2[4*i+1];
60 sum2 += dp1[4*i+2]*dp2[4*i+2];
61 sum3 += dp1[4*i+3]*dp2[4*i+3];
62 }
63 sum += sum1 + sum2 + sum3;
64 dp1 += 4*len4; dp2 += 4*len4;
65 #endif
66
67 for ( i = 0; i < len; i++ )
68 sum += dp1[i]*dp2[i];
69
70 return sum;
71 }
72
73 /* __mltadd__ -- scalar multiply and add c.f. v_mltadd() */
74 void __mltadd__(dp1,dp2,s,len)
75 register Real *dp1, *dp2;
76 register double s;
77 register int len;
78 {
79 register int i;
80 #ifdef VUNROLL
81 register int len4;
82
83 len4 = len / 4;
84 len = len % 4;
85 for ( i = 0; i < len4; i++ )
86 {
87 dp1[4*i] += s*dp2[4*i];
88 dp1[4*i+1] += s*dp2[4*i+1];
89 dp1[4*i+2] += s*dp2[4*i+2];
90 dp1[4*i+3] += s*dp2[4*i+3];
91 }
92 dp1 += 4*len4; dp2 += 4*len4;
93 #endif
94
95 for ( i = 0; i < len; i++ )
96 dp1[i] += s*dp2[i];
97 }
98
99 /* __smlt__ scalar multiply array c.f. sv_mlt() */
100 void __smlt__(dp,s,out,len)
101 register Real *dp, *out;
102 register double s;
103 register int len;
104 {
105 register int i;
106 for ( i = 0; i < len; i++ )
107 out[i] = s*dp[i];
108 }
109
110 /* __add__ -- add arrays c.f. v_add() */
111 void __add__(dp1,dp2,out,len)
112 register Real *dp1, *dp2, *out;
113 register int len;
114 {
115 register int i;
116 for ( i = 0; i < len; i++ )
117 out[i] = dp1[i] + dp2[i];
118 }
119
120 /* __sub__ -- subtract arrays c.f. v_sub() */
121 void __sub__(dp1,dp2,out,len)
122 register Real *dp1, *dp2, *out;
123 register int len;
124 {
125 register int i;
126 for ( i = 0; i < len; i++ )
127 out[i] = dp1[i] - dp2[i];
128 }
129
130 /* __zero__ -- zeros an array of floating point numbers */
131 void __zero__(dp,len)
132 register Real *dp;
133 register int len;
134 {
135 #ifdef CHAR0ISDBL0
136 /* if a floating point zero is equivalent to a string of nulls */
137 MEM_ZERO((char *)dp,len*sizeof(Real));
138 #else
139 /* else, need to zero the array entry by entry */
140 int i;
141 for ( i = 0; i < len; i++ )
142 dp[i] = 0.0;
143 #endif
144 }
145
+0
-247
interface/src/scilab/src/c/machine.h less more
0 /**************************************************************************
1 **
2 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
3 **
4 ** Meschach Library
5 **
6 ** This Meschach Library is provided "as is" without any express
7 ** or implied warranty of any kind with respect to this software.
8 ** In particular the authors shall not be liable for any direct,
9 ** indirect, special, incidental or consequential damages arising
10 ** in any way from use of the software.
11 **
12 ** Everyone is granted permission to copy, modify and redistribute this
13 ** Meschach Library, provided:
14 ** 1. All copies contain this copyright notice.
15 ** 2. All modified copies shall carry a notice stating who
16 ** made the last modification and the date of such modification.
17 ** 3. No charge is made for this software or works derived from it.
18 ** This clause shall not be construed as constraining other software
19 ** distributed on the same medium as this software, nor is a
20 ** distribution fee considered a charge.
21 **
22 ***************************************************************************/
23 /* machine.h. Generated automatically by configure. */
24 /* Any machine specific stuff goes here */
25 /* Add details necessary for your own installation here! */
26
27 /* RCS id: $Id: machine.h 4050 2012-02-26 13:04:17Z renard $ */
28
29 /* This is for use with "configure" -- if you are not using configure
30 then use machine.van for the "vanilla" version of machine.h */
31
32 /* Note special macros: ANSI_C (ANSI C syntax)
33 SEGMENTED (segmented memory machine e.g. MS-DOS)
34 MALLOCDECL (declared if malloc() etc have
35 been declared) */
36
37 /* #undef const */
38
39 /* #undef MALLOCDECL */
40 #define NOT_SEGMENTED 1
41 #define HAVE_MEMORY_H 1
42 /* #undef HAVE_COMPLEX_H */
43 #define HAVE_MALLOC_H 1
44 #define STDC_HEADERS 1
45 /* #undef HAVE_BCOPY */
46 /* #undef HAVE_BZERO */
47 #define CHAR0ISDBL0 1
48 #define WORDS_BIGENDIAN 1
49 /* #undef U_INT_DEF */
50 #define VARARGS 1
51 #define HAVE_PROTOTYPES 1
52 /* #undef HAVE_PROTOTYPES_IN_STRUCT */
53
54 /* for inclusion into C++ files */
55 #ifdef __cplusplus
56 #define ANSI_C 1
57 #ifndef HAVE_PROTOTYPES
58 #define HAVE_PROTOTYPES 1
59 #endif
60 #ifndef HAVE_PROTOTYPES_IN_STRUCT
61 #define HAVE_PROTOTYPES_IN_STRUCT 1
62 #endif
63 #endif /* __cplusplus */
64
65 /* example usage: VEC *PROTO(v_get,(int dim)); */
66 #ifdef HAVE_PROTOTYPES
67 #define PROTO(name,args) name args
68 #else
69 #define PROTO(name,args) name()
70 #endif /* HAVE_PROTOTYPES */
71 #ifdef HAVE_PROTOTYPES_IN_STRUCT
72 /* PROTO_() is to be used instead of PROTO() in struct's and typedef's */
73 #define PROTO_(name,args) name args
74 #else
75 #define PROTO_(name,args) name()
76 #endif /* HAVE_PROTOTYPES_IN_STRUCT */
77
78 /* for basic or larger versions */
79 #define COMPLEX 1
80 #define SPARSE 1
81
82 /* for loop unrolling */
83 /* #undef VUNROLL */
84 /* #undef MUNROLL */
85
86 /* for segmented memory */
87 #ifndef NOT_SEGMENTED
88 #define SEGMENTED
89 #endif
90
91 /* if the system has malloc.h */
92 #ifdef HAVE_MALLOC_H
93 #define MALLOCDECL 1
94 #include <malloc.h>
95 #endif
96
97 /* any compiler should have this header */
98 /* if not, change it */
99 #include <stdio.h>
100
101
102 /* Check for ANSI C memmove and memset */
103 #ifdef STDC_HEADERS
104
105 /* standard copy & zero functions */
106 #define MEM_COPY(from,to,size) memmove((to),(from),(size))
107 #define MEM_ZERO(where,size) memset((where),'\0',(size))
108
109 #ifndef ANSI_C
110 #define ANSI_C 1
111 #endif
112
113 #endif
114
115 /* standard headers */
116 #ifdef ANSI_C
117 #include <stdlib.h>
118 #include <stddef.h>
119 #include <string.h>
120 #include <float.h>
121 #endif
122
123
124 /* if have bcopy & bzero and no alternatives yet known, use them */
125 #ifdef HAVE_BCOPY
126 #ifndef MEM_COPY
127 /* nonstandard copy function */
128 #define MEM_COPY(from,to,size) bcopy((char *)(from),(char *)(to),(int)(size))
129 #endif
130 #endif
131
132 #ifdef HAVE_BZERO
133 #ifndef MEM_ZERO
134 /* nonstandard zero function */
135 #define MEM_ZERO(where,size) bzero((char *)(where),(int)(size))
136 #endif
137 #endif
138
139 /* if the system has complex.h */
140 #ifdef HAVE_COMPLEX_H
141 #include <complex.h>
142 #endif
143
144 /* If prototypes are available & ANSI_C not yet defined, then define it,
145 but don't include any header files as the proper ANSI C headers
146 aren't here */
147 #ifdef HAVE_PROTOTYPES
148 #ifndef ANSI_C
149 #define ANSI_C 1
150 #endif
151 #endif
152
153 /* floating point precision */
154
155 /* you can choose single, double or long double (if available) precision */
156
157 #define FLOAT 1
158 #define DOUBLE 2
159 #define LONG_DOUBLE 3
160
161 /* #undef REAL_FLT */
162 /* #undef REAL_DBL */
163
164 /* if nothing is defined, choose double precision */
165 #ifndef REAL_DBL
166 #ifndef REAL_FLT
167 #define REAL_DBL 1
168 #endif
169 #endif
170
171 /* single precision */
172 #ifdef REAL_FLT
173 #define Real float
174 #define LongReal float
175 #define REAL FLOAT
176 #define LONGREAL FLOAT
177 #endif
178
179 /* double precision */
180 #ifdef REAL_DBL
181 #define Real double
182 #define LongReal double
183 #define REAL DOUBLE
184 #define LONGREAL DOUBLE
185 #endif
186
187
188 /* machine epsilon or unit roundoff error */
189 /* This is correct on most IEEE Real precision systems */
190 #ifdef DBL_EPSILON
191 #if REAL == DOUBLE
192 #define MACHEPS DBL_EPSILON
193 #elif REAL == FLOAT
194 #define MACHEPS FLT_EPSILON
195 #elif REAL == LONGDOUBLE
196 #define MACHEPS LDBL_EPSILON
197 #endif
198 #endif
199
200 #define F_MACHEPS 1.19209e-07
201 #define D_MACHEPS 2.22045e-16
202
203 #ifndef MACHEPS
204 #if REAL == DOUBLE
205 #define MACHEPS D_MACHEPS
206 #elif REAL == FLOAT
207 #define MACHEPS F_MACHEPS
208 #elif REAL == LONGDOUBLE
209 #define MACHEPS D_MACHEPS
210 #endif
211 #endif
212
213 /* #undef M_MACHEPS */
214
215 /********************
216 #ifdef DBL_EPSILON
217 #define MACHEPS DBL_EPSILON
218 #endif
219 #ifdef M_MACHEPS
220 #ifndef MACHEPS
221 #define MACHEPS M_MACHEPS
222 #endif
223 #endif
224 ********************/
225
226 #define M_MAX_INT 2147483647
227 #ifdef M_MAX_INT
228 #ifndef MAX_RAND
229 #define MAX_RAND ((double)(M_MAX_INT))
230 #endif
231 #endif
232
233 /* for non-ANSI systems */
234 #ifndef HUGE_VAL
235 #define HUGE_VAL HUGE
236 #else
237 #ifndef HUGE
238 #define HUGE HUGE_VAL
239 #endif
240 #endif
241
242
243 #ifdef ANSI_C
244 extern int isatty(int);
245 #endif
246
+0
-246
interface/src/scilab/src/c/machine.h.in less more
0 /**************************************************************************
1 **
2 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
3 **
4 ** Meschach Library
5 **
6 ** This Meschach Library is provided "as is" without any express
7 ** or implied warranty of any kind with respect to this software.
8 ** In particular the authors shall not be liable for any direct,
9 ** indirect, special, incidental or consequential damages arising
10 ** in any way from use of the software.
11 **
12 ** Everyone is granted permission to copy, modify and redistribute this
13 ** Meschach Library, provided:
14 ** 1. All copies contain this copyright notice.
15 ** 2. All modified copies shall carry a notice stating who
16 ** made the last modification and the date of such modification.
17 ** 3. No charge is made for this software or works derived from it.
18 ** This clause shall not be construed as constraining other software
19 ** distributed on the same medium as this software, nor is a
20 ** distribution fee considered a charge.
21 **
22 ***************************************************************************/
23 /* Any machine specific stuff goes here */
24 /* Add details necessary for your own installation here! */
25
26 /* RCS id: $Id: machine.h.in,v 1.2 1994/03/13 23:07:30 des Exp $ */
27
28 /* This is for use with "configure" -- if you are not using configure
29 then use machine.van for the "vanilla" version of machine.h */
30
31 /* Note special macros: ANSI_C (ANSI C syntax)
32 SEGMENTED (segmented memory machine e.g. MS-DOS)
33 MALLOCDECL (declared if malloc() etc have
34 been declared) */
35
36 #undef const
37
38 #undef MALLOCDECL
39 #undef NOT_SEGMENTED
40 #undef HAVE_MEMORY_H
41 #undef HAVE_COMPLEX_H
42 #undef HAVE_MALLOC_H
43 #undef STDC_HEADERS
44 #undef HAVE_BCOPY
45 #undef HAVE_BZERO
46 #undef CHAR0ISDBL0
47 #undef WORDS_BIGENDIAN
48 #undef U_INT_DEF
49 #undef VARARGS
50 #undef HAVE_PROTOTYPES
51 #undef HAVE_PROTOTYPES_IN_STRUCT
52
53 /* for inclusion into C++ files */
54 #ifdef __cplusplus
55 #define ANSI_C 1
56 #ifndef HAVE_PROTOTYPES
57 #define HAVE_PROTOTYPES 1
58 #endif
59 #ifndef HAVE_PROTOTYPES_IN_STRUCT
60 #define HAVE_PROTOTYPES_IN_STRUCT 1
61 #endif
62 #endif /* __cplusplus */
63
64 /* example usage: VEC *PROTO(v_get,(int dim)); */
65 #ifdef HAVE_PROTOTYPES
66 #define PROTO(name,args) name args
67 #else
68 #define PROTO(name,args) name()
69 #endif /* HAVE_PROTOTYPES */
70 #ifdef HAVE_PROTOTYPES_IN_STRUCT
71 /* PROTO_() is to be used instead of PROTO() in struct's and typedef's */
72 #define PROTO_(name,args) name args
73 #else
74 #define PROTO_(name,args) name()
75 #endif /* HAVE_PROTOTYPES_IN_STRUCT */
76
77 /* for basic or larger versions */
78 #undef COMPLEX
79 #undef SPARSE
80
81 /* for loop unrolling */
82 #undef VUNROLL
83 #undef MUNROLL
84
85 /* for segmented memory */
86 #ifndef NOT_SEGMENTED
87 #define SEGMENTED
88 #endif
89
90 /* if the system has malloc.h */
91 #ifdef HAVE_MALLOC_H
92 #define MALLOCDECL 1
93 #include <malloc.h>
94 #endif
95
96 /* any compiler should have this header */
97 /* if not, change it */
98 #include <stdio.h>
99
100
101 /* Check for ANSI C memmove and memset */
102 #ifdef STDC_HEADERS
103
104 /* standard copy & zero functions */
105 #define MEM_COPY(from,to,size) memmove((to),(from),(size))
106 #define MEM_ZERO(where,size) memset((where),'\0',(size))
107
108 #ifndef ANSI_C
109 #define ANSI_C 1
110 #endif
111
112 #endif
113
114 /* standard headers */
115 #ifdef ANSI_C
116 #include <stdlib.h>
117 #include <stddef.h>
118 #include <string.h>
119 #include <float.h>
120 #endif
121
122
123 /* if have bcopy & bzero and no alternatives yet known, use them */
124 #ifdef HAVE_BCOPY
125 #ifndef MEM_COPY
126 /* nonstandard copy function */
127 #define MEM_COPY(from,to,size) bcopy((char *)(from),(char *)(to),(int)(size))
128 #endif
129 #endif
130
131 #ifdef HAVE_BZERO
132 #ifndef MEM_ZERO
133 /* nonstandard zero function */
134 #define MEM_ZERO(where,size) bzero((char *)(where),(int)(size))
135 #endif
136 #endif
137
138 /* if the system has complex.h */
139 #ifdef HAVE_COMPLEX_H
140 #include <complex.h>
141 #endif
142
143 /* If prototypes are available & ANSI_C not yet defined, then define it,
144 but don't include any header files as the proper ANSI C headers
145 aren't here */
146 #ifdef HAVE_PROTOTYPES
147 #ifndef ANSI_C
148 #define ANSI_C 1
149 #endif
150 #endif
151
152 /* floating point precision */
153
154 /* you can choose single, double or long double (if available) precision */
155
156 #define FLOAT 1
157 #define DOUBLE 2
158 #define LONG_DOUBLE 3
159
160 #undef REAL_FLT
161 #undef REAL_DBL
162
163 /* if nothing is defined, choose double precision */
164 #ifndef REAL_DBL
165 #ifndef REAL_FLT
166 #define REAL_DBL 1
167 #endif
168 #endif
169
170 /* single precision */
171 #ifdef REAL_FLT
172 #define Real float
173 #define LongReal float
174 #define REAL FLOAT
175 #define LONGREAL FLOAT
176 #endif
177
178 /* double precision */
179 #ifdef REAL_DBL
180 #define Real double
181 #define LongReal double
182 #define REAL DOUBLE
183 #define LONGREAL DOUBLE
184 #endif
185
186
187 /* machine epsilon or unit roundoff error */
188 /* This is correct on most IEEE Real precision systems */
189 #ifdef DBL_EPSILON
190 #if REAL == DOUBLE
191 #define MACHEPS DBL_EPSILON
192 #elif REAL == FLOAT
193 #define MACHEPS FLT_EPSILON
194 #elif REAL == LONGDOUBLE
195 #define MACHEPS LDBL_EPSILON
196 #endif
197 #endif
198
199 #undef F_MACHEPS
200 #undef D_MACHEPS
201
202 #ifndef MACHEPS
203 #if REAL == DOUBLE
204 #define MACHEPS D_MACHEPS
205 #elif REAL == FLOAT
206 #define MACHEPS F_MACHEPS
207 #elif REAL == LONGDOUBLE
208 #define MACHEPS D_MACHEPS
209 #endif
210 #endif
211
212 #undef M_MACHEPS
213
214 /********************
215 #ifdef DBL_EPSILON
216 #define MACHEPS DBL_EPSILON
217 #endif
218 #ifdef M_MACHEPS
219 #ifndef MACHEPS
220 #define MACHEPS M_MACHEPS
221 #endif
222 #endif
223 ********************/
224
225 #undef M_MAX_INT
226 #ifdef M_MAX_INT
227 #ifndef MAX_RAND
228 #define MAX_RAND ((double)(M_MAX_INT))
229 #endif
230 #endif
231
232 /* for non-ANSI systems */
233 #ifndef HUGE_VAL
234 #define HUGE_VAL HUGE
235 #else
236 #ifndef HUGE
237 #define HUGE HUGE_VAL
238 #endif
239 #endif
240
241
242 #ifdef ANSI_C
243 extern int isatty(int);
244 #endif
245
+0
-215
interface/src/scilab/src/c/makefile less more
0 # Generated automatically from makefile.in by configure.
1 #
2 # Makefile for Meschach via autoconf
3 #
4 # Copyright (C) David Stewart & Zbigniew Leyk 1993
5 #
6 # $Id: makefile.in,v 1.4 1994/03/14 01:24:06 des Exp $
7 #
8
9 srcdir = .
10 VPATH = .
11
12 CC = cc
13
14 DEFS = -DHAVE_CONFIG_H
15 LIBS = -lm
16 RANLIB = :
17
18
19 CFLAGS = -O
20
21
22 .c.o:
23 $(CC) -c $(CFLAGS) $(DEFS) $<
24
25 SHELL = /bin/sh
26 MES_PAK = mesch12b
27 TAR = tar
28 SHAR = stree -u
29 ZIP = zip -r -l
30 FLIST = FILELIST
31
32 ###############################
33
34 LIST1 = copy.o err.o matrixio.o memory.o vecop.o matop.o pxop.o \
35 submat.o init.o otherio.o machine.o matlab.o ivecop.o version.o \
36 meminfo.o memstat.o
37 LIST2 = lufactor.o bkpfacto.o chfactor.o qrfactor.o solve.o hsehldr.o \
38 givens.o update.o norm.o hessen.o symmeig.o schur.o svd.o fft.o \
39 mfunc.o bdfactor.o
40 LIST3 = sparse.o sprow.o sparseio.o spchfctr.o splufctr.o \
41 spbkp.o spswap.o iter0.o itersym.o iternsym.o
42 ZLIST1 = zmachine.o zcopy.o zmatio.o zmemory.o zvecop.o zmatop.o znorm.o \
43 zfunc.o
44 ZLIST2 = zlufctr.o zsolve.o zmatlab.o zhsehldr.o zqrfctr.o \
45 zgivens.o zhessen.o zschur.o
46
47 # they are no longer supported
48 # if you use them add oldpart to all and sparse
49 OLDLIST = conjgrad.o lanczos.o arnoldi.o
50
51 ALL_LISTS = $(LIST1) $(LIST2) $(LIST3) $(ZLIST1) $(ZLIST2) $(OLDLIST)
52
53 HBASE = err.h meminfo.h machine.h matrix.h
54
55 HLIST = $(HBASE) iter.h matlab.h matrix2.h oldnames.h sparse.h \
56 sparse2.h zmatrix.h zmatrix2.h
57
58 TORTURE = torture.o sptort.o ztorture.o memtort.o itertort.o \
59 mfuntort.o iotort.o
60
61 OTHERS = dmacheps.c extras.c fmacheps.c maxint.c makefile.in \
62 README configure configure.in machine.h.in copyright \
63 tutorial.c tutadv.c rk4.dat ls.dat makefile $(FLIST)
64
65
66 # Different configurations
67 # the dependencies **between** the parts are for dmake
68 all: part1 part2 part3 zpart1 zpart2
69 part2: part1
70 part3: part2
71 basic: part1 part2
72 sparse: part1 part2 part3
73 zpart2: zpart1
74 complex: part1 part2 zpart1 zpart2
75
76
77 $(LIST1): $(HBASE)
78 part1: $(LIST1)
79 ar ru meschach.a $(LIST1)
80 $(RANLIB) meschach.a
81
82 $(LIST2): $(HBASE) matrix2.h
83 part2: $(LIST2)
84 ar ru meschach.a $(LIST2)
85 $(RANLIB) meschach.a
86
87 $(LIST3): $(HBASE) sparse.h sparse2.h
88 part3: $(LIST3)
89 ar ru meschach.a $(LIST3)
90 $(RANLIB) meschach.a
91
92 $(ZLIST1): $(HBASDE) zmatrix.h
93 zpart1: $(ZLIST1)
94 ar ru meschach.a $(ZLIST1)
95 $(RANLIB) meschach.a
96
97 $(ZLIST2): $(HBASE) zmatrix.h zmatrix2.h
98 zpart2: $(ZLIST2)
99 ar ru meschach.a $(ZLIST2)
100 $(RANLIB) meschach.a
101
102 $(OLDLIST): $(HBASE) sparse.h sparse2.h
103 oldpart: $(OLDLIST)
104 ar ru meschach.a $(OLDLIST)
105 $(RANLIB) meschach.a
106
107
108
109 #######################################
110
111 tar:
112 - /bin/rm -f $(MES_PAK).tar
113 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
114 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
115 chmod 755 configure
116 $(MAKE) list
117 $(TAR) cvf $(MES_PAK).tar \
118 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
119 $(HLIST) $(OTHERS) \
120 `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
121 MACHINES DOC
122
123 # use this only for PC machines
124 msdos-zip:
125 - /bin/rm -f $(MES_PAK).zip
126 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
127 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
128 chmod 755 configure
129 $(MAKE) list
130 $(ZIP) $(MES_PAK).zip \
131 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
132 $(HLIST) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
133 MACHINES DOC
134
135
136 fullshar:
137 - /bin/rm -f $(MES_PAK).shar;
138 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
139 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
140 chmod 755 configure
141 $(MAKE) list
142 $(SHAR) `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
143 $(HLIST) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
144 MACHINES DOC > $(MES_PAK).shar
145
146 shar:
147 - /bin/rm -f meschach1.shar meschach2.shar meschach3.shar \
148 meschach4.shar oldmeschach.shar meschach0.shar
149 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
150 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
151 chmod 755 configure
152 $(MAKE) list
153 $(SHAR) `echo $(LIST1) | sed -e 's/\.o/.c/g'` > meschach1.shar
154 $(SHAR) `echo $(LIST2) | sed -e 's/\.o/.c/g'` > meschach2.shar
155 $(SHAR) `echo $(LIST3) | sed -e 's/\.o/.c/g'` > meschach3.shar
156 $(SHAR) `echo $(ZLIST1) | sed -e 's/\.o/.c/g'` \
157 `echo $(ZLIST2) | sed -e 's/\.o/.c/g'` > meschach4.shar
158 $(SHAR) `echo $(OLDLIST) | sed -e 's/\.o/.c/g'` > oldmeschach.shar
159 $(SHAR) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
160 $(HLIST) DOC MACHINES > meschach0.shar
161
162 list:
163 /bin/rm -f $(FLIST)
164 ls -lR `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
165 `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
166 $(HLIST) $(OTHERS) MACHINES DOC \
167 |awk '/^$$/ {print};/^[-d]/ {printf("%s %s %10d %s %s %s %s\n", \
168 $$1,$$2,$$5,$$6,$$7,$$8,$$9)}; /^[^-d]/ {print}' \
169 > $(FLIST)
170
171
172
173 clean:
174 /bin/rm -f *.o core asx5213a.mat iotort.dat
175
176 cleanup:
177 /bin/rm -f *.o core asx5213a.mat iotort.dat *.a
178
179 realclean:
180 /bin/rm -f *.o core asx5213a.mat iotort.dat *.a
181 /bin/rm -f torture sptort ztorture memtort itertort mfuntort iotort
182 /bin/rm -f makefile machine.h config.status maxint macheps
183
184 alltorture: torture sptort ztorture memtort itertort mfuntort iotort
185
186 torture:torture.o meschach.a
187 $(CC) $(CFLAGS) $(DEFS) -o torture torture.o \
188 meschach.a $(LIBS)
189 sptort:sptort.o meschach.a
190 $(CC) $(CFLAGS) $(DEFS) -o sptort sptort.o \
191 meschach.a $(LIBS)
192 memtort: memtort.o meschach.a
193 $(CC) $(CFLAGS) $(DEFS) -o memtort memtort.o \
194 meschach.a $(LIBS)
195 ztorture:ztorture.o meschach.a
196 $(CC) $(CFLAGS) $(DEFS) -o ztorture ztorture.o \
197 meschach.a $(LIBS)
198 itertort: itertort.o meschach.a
199 $(CC) $(CFLAGS) $(DEFS) -o itertort itertort.o \
200 meschach.a $(LIBS)
201
202 iotort: iotort.o meschach.a
203 $(CC) $(CFLAGS) $(DEFS) -o iotort iotort.o \
204 meschach.a $(LIBS)
205 mfuntort: mfuntort.o meschach.a
206 $(CC) $(CFLAGS) $(DEFS) -o mfuntort mfuntort.o \
207 meschach.a $(LIBS)
208 tstmove: tstmove.o meschach.a
209 $(CC) $(CFLAGS) $(DEFS) -o tstmove tstmove.o \
210 meschach.a $(LIBS)
211 tstpxvec: tstpxvec.o meschach.a
212 $(CC) $(CFLAGS) $(DEFS) -o tstpxvec tstpxvec.o \
213 meschach.a $(LIBS)
214
+0
-214
interface/src/scilab/src/c/makefile.in less more
0 #
1 # Makefile for Meschach via autoconf
2 #
3 # Copyright (C) David Stewart & Zbigniew Leyk 1993
4 #
5 # $Id: makefile.in,v 1.4 1994/03/14 01:24:06 des Exp $
6 #
7
8 srcdir = @srcdir@
9 VPATH = @srcdir@
10
11 CC = @CC@
12
13 DEFS = @DEFS@
14 LIBS = @LIBS@
15 RANLIB = @RANLIB@
16
17
18 CFLAGS = -O
19
20
21 .c.o:
22 $(CC) -c $(CFLAGS) $(DEFS) $<
23
24 SHELL = /bin/sh
25 MES_PAK = mesch12b
26 TAR = tar
27 SHAR = stree -u
28 ZIP = zip -r -l
29 FLIST = FILELIST
30
31 ###############################
32
33 LIST1 = copy.o err.o matrixio.o memory.o vecop.o matop.o pxop.o \
34 submat.o init.o otherio.o machine.o matlab.o ivecop.o version.o \
35 meminfo.o memstat.o
36 LIST2 = lufactor.o bkpfacto.o chfactor.o qrfactor.o solve.o hsehldr.o \
37 givens.o update.o norm.o hessen.o symmeig.o schur.o svd.o fft.o \
38 mfunc.o bdfactor.o
39 LIST3 = sparse.o sprow.o sparseio.o spchfctr.o splufctr.o \
40 spbkp.o spswap.o iter0.o itersym.o iternsym.o
41 ZLIST1 = zmachine.o zcopy.o zmatio.o zmemory.o zvecop.o zmatop.o znorm.o \
42 zfunc.o
43 ZLIST2 = zlufctr.o zsolve.o zmatlab.o zhsehldr.o zqrfctr.o \
44 zgivens.o zhessen.o zschur.o
45
46 # they are no longer supported
47 # if you use them add oldpart to all and sparse
48 OLDLIST = conjgrad.o lanczos.o arnoldi.o
49
50 ALL_LISTS = $(LIST1) $(LIST2) $(LIST3) $(ZLIST1) $(ZLIST2) $(OLDLIST)
51
52 HBASE = err.h meminfo.h machine.h matrix.h
53
54 HLIST = $(HBASE) iter.h matlab.h matrix2.h oldnames.h sparse.h \
55 sparse2.h zmatrix.h zmatrix2.h
56
57 TORTURE = torture.o sptort.o ztorture.o memtort.o itertort.o \
58 mfuntort.o iotort.o
59
60 OTHERS = dmacheps.c extras.c fmacheps.c maxint.c makefile.in \
61 README configure configure.in machine.h.in copyright \
62 tutorial.c tutadv.c rk4.dat ls.dat makefile $(FLIST)
63
64
65 # Different configurations
66 # the dependencies **between** the parts are for dmake
67 all: @PROGS@ part1 part2 part3 zpart1 zpart2
68 part2: part1
69 part3: part2
70 basic: part1 part2
71 sparse: part1 part2 part3
72 zpart2: zpart1
73 complex: part1 part2 zpart1 zpart2
74
75
76 $(LIST1): $(HBASE)
77 part1: $(LIST1)
78 ar ru meschach.a $(LIST1)
79 $(RANLIB) meschach.a
80
81 $(LIST2): $(HBASE) matrix2.h
82 part2: $(LIST2)
83 ar ru meschach.a $(LIST2)
84 $(RANLIB) meschach.a
85
86 $(LIST3): $(HBASE) sparse.h sparse2.h
87 part3: $(LIST3)
88 ar ru meschach.a $(LIST3)
89 $(RANLIB) meschach.a
90
91 $(ZLIST1): $(HBASDE) zmatrix.h
92 zpart1: $(ZLIST1)
93 ar ru meschach.a $(ZLIST1)
94 $(RANLIB) meschach.a
95
96 $(ZLIST2): $(HBASE) zmatrix.h zmatrix2.h
97 zpart2: $(ZLIST2)
98 ar ru meschach.a $(ZLIST2)
99 $(RANLIB) meschach.a
100
101 $(OLDLIST): $(HBASE) sparse.h sparse2.h
102 oldpart: $(OLDLIST)
103 ar ru meschach.a $(OLDLIST)
104 $(RANLIB) meschach.a
105
106
107
108 #######################################
109
110 tar:
111 - /bin/rm -f $(MES_PAK).tar
112 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
113 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
114 chmod 755 configure
115 $(MAKE) list
116 $(TAR) cvf $(MES_PAK).tar \
117 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
118 $(HLIST) $(OTHERS) \
119 `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
120 MACHINES DOC
121
122 # use this only for PC machines
123 msdos-zip:
124 - /bin/rm -f $(MES_PAK).zip
125 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
126 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
127 chmod 755 configure
128 $(MAKE) list
129 $(ZIP) $(MES_PAK).zip \
130 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
131 $(HLIST) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
132 MACHINES DOC
133
134
135 fullshar:
136 - /bin/rm -f $(MES_PAK).shar;
137 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
138 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
139 chmod 755 configure
140 $(MAKE) list
141 $(SHAR) `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
142 $(HLIST) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
143 MACHINES DOC > $(MES_PAK).shar
144
145 shar:
146 - /bin/rm -f meschach1.shar meschach2.shar meschach3.shar \
147 meschach4.shar oldmeschach.shar meschach0.shar
148 chmod 644 `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
149 $(OTHERS) $(HLIST) `echo $(TORTURE) | sed -e 's/\.o/.c/g'`
150 chmod 755 configure
151 $(MAKE) list
152 $(SHAR) `echo $(LIST1) | sed -e 's/\.o/.c/g'` > meschach1.shar
153 $(SHAR) `echo $(LIST2) | sed -e 's/\.o/.c/g'` > meschach2.shar
154 $(SHAR) `echo $(LIST3) | sed -e 's/\.o/.c/g'` > meschach3.shar
155 $(SHAR) `echo $(ZLIST1) | sed -e 's/\.o/.c/g'` \
156 `echo $(ZLIST2) | sed -e 's/\.o/.c/g'` > meschach4.shar
157 $(SHAR) `echo $(OLDLIST) | sed -e 's/\.o/.c/g'` > oldmeschach.shar
158 $(SHAR) $(OTHERS) `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
159 $(HLIST) DOC MACHINES > meschach0.shar
160
161 list:
162 /bin/rm -f $(FLIST)
163 ls -lR `echo $(ALL_LISTS) | sed -e 's/\.o/.c/g'` \
164 `echo $(TORTURE) | sed -e 's/\.o/.c/g'` \
165 $(HLIST) $(OTHERS) MACHINES DOC \
166 |awk '/^$$/ {print};/^[-d]/ {printf("%s %s %10d %s %s %s %s\n", \
167 $$1,$$2,$$5,$$6,$$7,$$8,$$9)}; /^[^-d]/ {print}' \
168 > $(FLIST)
169
170
171
172 clean:
173 /bin/rm -f *.o core asx5213a.mat iotort.dat
174
175 cleanup:
176 /bin/rm -f *.o core asx5213a.mat iotort.dat *.a
177
178 realclean:
179 /bin/rm -f *.o core asx5213a.mat iotort.dat *.a
180 /bin/rm -f torture sptort ztorture memtort itertort mfuntort iotort
181 /bin/rm -f makefile machine.h config.status maxint macheps
182
183 alltorture: torture sptort ztorture memtort itertort mfuntort iotort
184
185 torture:torture.o meschach.a
186 $(CC) $(CFLAGS) $(DEFS) -o torture torture.o \
187 meschach.a $(LIBS)
188 sptort:sptort.o meschach.a
189 $(CC) $(CFLAGS) $(DEFS) -o sptort sptort.o \
190 meschach.a $(LIBS)
191 memtort: memtort.o meschach.a
192 $(CC) $(CFLAGS) $(DEFS) -o memtort memtort.o \
193 meschach.a $(LIBS)
194 ztorture:ztorture.o meschach.a
195 $(CC) $(CFLAGS) $(DEFS) -o ztorture ztorture.o \
196 meschach.a $(LIBS)
197 itertort: itertort.o meschach.a
198 $(CC) $(CFLAGS) $(DEFS) -o itertort itertort.o \
199 meschach.a $(LIBS)
200
201 iotort: iotort.o meschach.a
202 $(CC) $(CFLAGS) $(DEFS) -o iotort iotort.o \
203 meschach.a $(LIBS)
204 mfuntort: mfuntort.o meschach.a
205 $(CC) $(CFLAGS) $(DEFS) -o mfuntort mfuntort.o \
206 meschach.a $(LIBS)
207 tstmove: tstmove.o meschach.a
208 $(CC) $(CFLAGS) $(DEFS) -o tstmove tstmove.o \
209 meschach.a $(LIBS)
210 tstpxvec: tstpxvec.o meschach.a
211 $(CC) $(CFLAGS) $(DEFS) -o tstpxvec tstpxvec.o \
212 meschach.a $(LIBS)
213
+0
-196
interface/src/scilab/src/c/matlab.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 This file contains routines for import/exporting data to/from
28 MATLAB. The main routines are:
29 MAT *m_save(FILE *fp,MAT *A,char *name)
30 VEC *v_save(FILE *fp,VEC *x,char *name)
31 MAT *m_load(FILE *fp,char **name)
32 */
33
34 #include <stdio.h>
35 #include "matrix.h"
36 #include "matlab.h"
37
38 static char rcsid[] = "$Id: matlab.c 3690 2010-09-02 09:55:19Z lsaavedr $";
39
40 /* m_save -- save matrix in ".mat" file for MATLAB
41 -- returns matrix to be saved */
42 MAT *m_save(fp,A,name)
43 FILE *fp;
44 MAT *A;
45 char *name;
46 {
47 int i;
48 matlab mat;
49
50 if ( ! A )
51 error(E_NULL,"m_save");
52
53 mat.type = 1000*MACH_ID + 100*ORDER + 10*PRECISION + 0;
54 mat.m = A->m;
55 mat.n = A->n;
56 mat.imag = FALSE;
57 mat.namlen = (name == (char *)NULL) ? 1 : strlen(name)+1;
58
59 /* write header */
60 fwrite(&mat,sizeof(matlab),1,fp);
61 /* write name */
62 if ( name == (char *)NULL )
63 fwrite("",sizeof(char),1,fp);
64 else
65 fwrite(name,sizeof(char),(int)(mat.namlen),fp);
66 /* write actual data */
67 for ( i = 0; i < A->m; i++ )
68 fwrite(A->me[i],sizeof(Real),(int)(A->n),fp);
69
70 return A;
71 }
72
73
74 /* v_save -- save vector in ".mat" file for MATLAB
75 -- saves it as a row vector
76 -- returns vector to be saved */
77 VEC *v_save(fp,x,name)
78 FILE *fp;
79 VEC *x;
80 char *name;
81 {
82 matlab mat;
83
84 if ( ! x )
85 error(E_NULL,"v_save");
86
87 mat.type = 1000*MACH_ID + 100*ORDER + 10*PRECISION + 0;
88 mat.m = x->dim;
89 mat.n = 1;
90 mat.imag = FALSE;
91 mat.namlen = (name == (char *)NULL) ? 1 : strlen(name)+1;
92
93 /* write header */
94 fwrite(&mat,sizeof(matlab),1,fp);
95 /* write name */
96 if ( name == (char *)NULL )
97 fwrite("",sizeof(char),1,fp);
98 else
99 fwrite(name,sizeof(char),(int)(mat.namlen),fp);
100 /* write actual data */
101 fwrite(x->ve,sizeof(Real),(int)(x->dim),fp);
102
103 return x;
104 }
105
106 /* d_save -- save double in ".mat" file for MATLAB
107 -- saves it as a row vector
108 -- returns vector to be saved */
109 double d_save(fp,x,name)
110 FILE *fp;
111 double x;
112 char *name;
113 {
114 matlab mat;
115 Real x1 = x;
116
117 mat.type = 1000*MACH_ID + 100*ORDER + 10*PRECISION + 0;
118 mat.m = 1;
119 mat.n = 1;
120 mat.imag = FALSE;
121 mat.namlen = (name == (char *)NULL) ? 1 : strlen(name)+1;
122
123 /* write header */
124 fwrite(&mat,sizeof(matlab),1,fp);
125 /* write name */
126 if ( name == (char *)NULL )
127 fwrite("",sizeof(char),1,fp);
128 else
129 fwrite(name,sizeof(char),(int)(mat.namlen),fp);
130 /* write actual data */
131 fwrite(&x1,sizeof(Real),1,fp);
132
133 return x;
134 }
135
136 /* m_load -- loads in a ".mat" file variable as produced by MATLAB
137 -- matrix returned; imaginary parts ignored */
138 MAT *m_load(fp,name)
139 FILE *fp;
140 char **name;
141 {
142 MAT *A;
143 int i;
144 int m_flag, o_flag, p_flag, t_flag;
145 float f_temp;
146 Real d_temp;
147 matlab mat;
148
149 if ( fread(&mat,sizeof(matlab),1,fp) != 1 )
150 error(E_FORMAT,"m_load");
151 if ( mat.type >= 10000 ) /* don't load a sparse matrix! */
152 error(E_FORMAT,"m_load");
153 m_flag = (mat.type/1000) % 10;
154 o_flag = (mat.type/100) % 10;
155 p_flag = (mat.type/10) % 10;
156 t_flag = (mat.type) % 10;
157 if ( m_flag != MACH_ID )
158 error(E_FORMAT,"m_load");
159 if ( t_flag != 0 )
160 error(E_FORMAT,"m_load");
161 if ( p_flag != DOUBLE_PREC && p_flag != SINGLE_PREC )
162 error(E_FORMAT,"m_load");
163 *name = (char *)malloc((unsigned)(mat.namlen)+1);
164 if ( fread(*name,sizeof(char),(unsigned)(mat.namlen),fp) == 0 )
165 error(E_FORMAT,"m_load");
166 A = m_get((unsigned)(mat.m),(unsigned)(mat.n));
167 for ( i = 0; i < A->m*A->n; i++ )
168 {
169 if ( p_flag == DOUBLE_PREC )
170 fread(&d_temp,sizeof(double),1,fp);
171 else
172 {
173 fread(&f_temp,sizeof(float),1,fp);
174 d_temp = f_temp;
175 }
176 if ( o_flag == ROW_ORDER )
177 A->me[i / A->n][i % A->n] = d_temp;
178 else if ( o_flag == COL_ORDER )
179 A->me[i % A->m][i / A->m] = d_temp;
180 else
181 error(E_FORMAT,"m_load");
182 }
183
184 if ( mat.imag ) /* skip imaginary part */
185 for ( i = 0; i < A->m*A->n; i++ )
186 {
187 if ( p_flag == DOUBLE_PREC )
188 fread(&d_temp,sizeof(double),1,fp);
189 else
190 fread(&f_temp,sizeof(float),1,fp);
191 }
192
193 return A;
194 }
195
+0
-113
interface/src/scilab/src/c/matlab.h less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* matlab.h -- Header file for matlab.c, spmatlab.c and zmatlab.c
27 for save/load formats */
28
29 #ifndef MATLAB_DEF
30
31 #define MATLAB_DEF
32
33 /* structure required by MATLAB */
34 typedef struct {
35 long type; /* matrix type */
36 long m; /* # rows */
37 long n; /* # cols */
38 long imag; /* is complex? */
39 long namlen; /* length of variable name */
40 } matlab;
41
42 /* macros for matrix storage type */
43 #define INTEL 0 /* for 80x87 format */
44 #define PC INTEL
45 #define MOTOROLA 1 /* 6888x format */
46 #define SUN MOTOROLA
47 #define APOLLO MOTOROLA
48 #define MAC MOTOROLA
49 #define VAX_D 2
50 #define VAX_G 3
51
52 #define COL_ORDER 0
53 #define ROW_ORDER 1
54
55 #define DOUBLE_PREC 0 /* double precision */
56 #define SINGLE_PREC 1 /* single precision */
57 #define INT_32 2 /* 32 bit integers (signed) */
58 #define INT_16 3 /* 16 bit integers (signed) */
59 #define INT_16u 4 /* 16 bit integers (unsigned) */
60 /* end of macros for matrix storage type */
61
62 #ifndef MACH_ID
63 #define MACH_ID MOTOROLA
64 #endif
65
66 #define ORDER ROW_ORDER
67
68 #if REAL == DOUBLE
69 #define PRECISION DOUBLE_PREC
70 #elif REAL == FLOAT
71 #define PRECISION SINGLE_PREC
72 #endif
73
74
75 /* prototypes */
76
77 #ifdef ANSI_C
78
79 MAT *m_save(FILE *,MAT *,char *);
80 MAT *m_load(FILE *,char **);
81 VEC *v_save(FILE *,VEC *,char *);
82 double d_save(FILE *,double,char *);
83
84 #else
85
86 extern MAT *m_save(), *m_load();
87 extern VEC *v_save();
88 extern double d_save();
89 #endif
90
91 /* complex variant */
92 #ifdef COMPLEX
93 #include "zmatrix.h"
94
95 #ifdef ANSI_C
96 extern ZMAT *zm_save(FILE *fp,ZMAT *A,char *name);
97 extern ZVEC *zv_save(FILE *fp,ZVEC *x,char *name);
98 extern complex z_save(FILE *fp,complex z,char *name);
99 extern ZMAT *zm_load(FILE *fp,char **name);
100
101 #else
102
103 extern ZMAT *zm_save();
104 extern ZVEC *zv_save();
105 extern complex z_save();
106 extern ZMAT *zm_load();
107
108 #endif
109
110 #endif
111
112 #endif
+0
-470
interface/src/scilab/src/c/matop.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* matop.c 1.3 11/25/87 */
27
28
29 #include <stdio.h>
30 #include "matrix.h"
31
32 static char rcsid[] = "$Id: matop.c 3865 2011-11-02 06:38:43Z ycollet $";
33
34
35 /* m_add -- matrix addition -- may be in-situ */
36 MAT * m_add(MAT * mat1, MAT * mat2, MAT * out)
37 {
38 u_int m,n,i;
39
40 if ( mat1==(MAT *)NULL || mat2==(MAT *)NULL )
41 error(E_NULL,"m_add");
42 if ( mat1->m != mat2->m || mat1->n != mat2->n )
43 error(E_SIZES,"m_add");
44 if ( out==(MAT *)NULL || out->m != mat1->m || out->n != mat1->n )
45 out = m_resize(out,mat1->m,mat1->n);
46 m = mat1->m; n = mat1->n;
47 for ( i=0; i<m; i++ )
48 {
49 __add__(mat1->me[i],mat2->me[i],out->me[i],(int)n);
50 /**************************************************
51 for ( j=0; j<n; j++ )
52 out->me[i][j] = mat1->me[i][j]+mat2->me[i][j];
53 **************************************************/
54 }
55
56 return (out);
57 }
58
59 /* m_sub -- matrix subtraction -- may be in-situ */
60 MAT * m_sub(MAT * mat1, MAT * mat2, MAT * out)
61 {
62 u_int m,n,i;
63
64 if ( mat1==(MAT *)NULL || mat2==(MAT *)NULL )
65 error(E_NULL,"m_sub");
66 if ( mat1->m != mat2->m || mat1->n != mat2->n )
67 error(E_SIZES,"m_sub");
68 if ( out==(MAT *)NULL || out->m != mat1->m || out->n != mat1->n )
69 out = m_resize(out,mat1->m,mat1->n);
70 m = mat1->m; n = mat1->n;
71 for ( i=0; i<m; i++ )
72 {
73 __sub__(mat1->me[i],mat2->me[i],out->me[i],(int)n);
74 /**************************************************
75 for ( j=0; j<n; j++ )
76 out->me[i][j] = mat1->me[i][j]-mat2->me[i][j];
77 **************************************************/
78 }
79
80 return (out);
81 }
82
83 /* m_mlt -- matrix-matrix multiplication */
84 MAT * m_mlt(MAT * A, MAT * B, MAT * out) {
85 u_int i, /* j, */ k, m, n, p;
86 Real **A_v, **B_v /*, *B_row, *out_row, sum, tmp */;
87
88 if ( A==(MAT *)NULL || B==(MAT *)NULL )
89 error(E_NULL,"m_mlt");
90 if ( A->n != B->m )
91 error(E_SIZES,"m_mlt");
92 if ( A == out || B == out )
93 error(E_INSITU,"m_mlt");
94 m = A->m; n = A->n; p = B->n;
95 A_v = A->me; B_v = B->me;
96
97 if ( out==(MAT *)NULL || out->m != A->m || out->n != B->n )
98 out = m_resize(out,A->m,B->n);
99
100 /****************************************************************
101 for ( i=0; i<m; i++ )
102 for ( j=0; j<p; j++ )
103 {
104 sum = 0.0;
105 for ( k=0; k<n; k++ )
106 sum += A_v[i][k]*B_v[k][j];
107 out->me[i][j] = sum;
108 }
109 ****************************************************************/
110 m_zero(out);
111 for ( i=0; i<m; i++ )
112 for ( k=0; k<n; k++ )
113 {
114 if ( A_v[i][k] != 0.0 )
115 __mltadd__(out->me[i],B_v[k],A_v[i][k],(int)p);
116 /**************************************************
117 B_row = B_v[k]; out_row = out->me[i];
118 for ( j=0; j<p; j++ )
119 (*out_row++) += tmp*(*B_row++);
120 **************************************************/
121 }
122
123 return out;
124 }
125
126 /* mmtr_mlt -- matrix-matrix transposed multiplication
127 -- A.B^T is returned, and stored in out */
128 MAT *mmtr_mlt(MAT * A, MAT * B, MAT * out)
129 {
130 int i, j, limit;
131 /* Real *A_row, *B_row, sum; */
132
133 if ( ! A || ! B )
134 error(E_NULL,"mmtr_mlt");
135 if ( A == out || B == out )
136 error(E_INSITU,"mmtr_mlt");
137 if ( A->n != B->n )
138 error(E_SIZES,"mmtr_mlt");
139 if ( ! out || out->m != A->m || out->n != B->m )
140 out = m_resize(out,A->m,B->m);
141
142 limit = A->n;
143 for ( i = 0; i < A->m; i++ )
144 for ( j = 0; j < B->m; j++ )
145 {
146 out->me[i][j] = __ip__(A->me[i],B->me[j],(int)limit);
147 /**************************************************
148 sum = 0.0;
149 A_row = A->me[i];
150 B_row = B->me[j];
151 for ( k = 0; k < limit; k++ )
152 sum += (*A_row++)*(*B_row++);
153 out->me[i][j] = sum;
154 **************************************************/
155 }
156
157 return out;
158 }
159
160 /* mtrm_mlt -- matrix transposed-matrix multiplication
161 -- A^T.B is returned, result stored in out */
162 MAT * mtrm_mlt(MAT * A, MAT * B, MAT * out)
163 {
164 int i, k, limit;
165 /* Real *B_row, *out_row, multiplier; */
166
167 if ( ! A || ! B )
168 error(E_NULL,"mmtr_mlt");
169 if ( A == out || B == out )
170 error(E_INSITU,"mtrm_mlt");
171 if ( A->m != B->m )
172 error(E_SIZES,"mmtr_mlt");
173 if ( ! out || out->m != A->n || out->n != B->n )
174 out = m_resize(out,A->n,B->n);
175
176 limit = B->n;
177 m_zero(out);
178 for ( k = 0; k < A->m; k++ )
179 for ( i = 0; i < A->n; i++ )
180 {
181 if ( A->me[k][i] != 0.0 )
182 __mltadd__(out->me[i],B->me[k],A->me[k][i],(int)limit);
183 /**************************************************
184 multiplier = A->me[k][i];
185 out_row = out->me[i];
186 B_row = B->me[k];
187 for ( j = 0; j < limit; j++ )
188 *(out_row++) += multiplier*(*B_row++);
189 **************************************************/
190 }
191
192 return out;
193 }
194
195 /* mv_mlt -- matrix-vector multiplication
196 -- Note: b is treated as a column vector */
197 VEC * mv_mlt(MAT * A, VEC * b, VEC * out)
198 {
199 u_int i, m, n;
200 Real **A_v, *b_v /*, *A_row */;
201 /* register Real sum; */
202
203 if ( A==(MAT *)NULL || b==(VEC *)NULL )
204 error(E_NULL,"mv_mlt");
205 if ( A->n != b->dim )
206 error(E_SIZES,"mv_mlt");
207 if ( b == out )
208 error(E_INSITU,"mv_mlt");
209 if ( out == (VEC *)NULL || out->dim != A->m )
210 out = v_resize(out,A->m);
211
212 m = A->m; n = A->n;
213 A_v = A->me; b_v = b->ve;
214 for ( i=0; i<m; i++ )
215 {
216 /* for ( j=0; j<n; j++ )
217 sum += A_v[i][j]*b_v[j]; */
218 out->ve[i] = __ip__(A_v[i],b_v,(int)n);
219 /**************************************************
220 A_row = A_v[i]; b_v = b->ve;
221 for ( j=0; j<n; j++ )
222 sum += (*A_row++)*(*b_v++);
223 out->ve[i] = sum;
224 **************************************************/
225 }
226
227 return out;
228 }
229
230 /* sm_mlt -- scalar-matrix multiply -- may be in-situ */
231 MAT * sm_mlt(double scalar, MAT * matrix, MAT * out)
232 {
233 u_int m,n,i;
234
235 if ( matrix==(MAT *)NULL )
236 error(E_NULL,"sm_mlt");
237 if ( out==(MAT *)NULL || out->m != matrix->m || out->n != matrix->n )
238 out = m_resize(out,matrix->m,matrix->n);
239 m = matrix->m; n = matrix->n;
240 for ( i=0; i<m; i++ )
241 __smlt__(matrix->me[i],(double)scalar,out->me[i],(int)n);
242 /**************************************************
243 for ( j=0; j<n; j++ )
244 out->me[i][j] = scalar*matrix->me[i][j];
245 **************************************************/
246 return (out);
247 }
248
249 /* vm_mlt -- vector-matrix multiplication
250 -- Note: b is treated as a row vector */
251 VEC * vm_mlt(MAT * A, VEC * b, VEC * out)
252 {
253 u_int j,m,n;
254 /* Real sum,**A_v,*b_v; */
255
256 if ( A==(MAT *)NULL || b==(VEC *)NULL )
257 error(E_NULL,"vm_mlt");
258 if ( A->m != b->dim )
259 error(E_SIZES,"vm_mlt");
260 if ( b == out )
261 error(E_INSITU,"vm_mlt");
262 if ( out == (VEC *)NULL || out->dim != A->n )
263 out = v_resize(out,A->n);
264
265 m = A->m; n = A->n;
266
267 v_zero(out);
268 for ( j = 0; j < m; j++ )
269 if ( b->ve[j] != 0.0 )
270 __mltadd__(out->ve,A->me[j],b->ve[j],(int)n);
271 /**************************************************
272 A_v = A->me; b_v = b->ve;
273 for ( j=0; j<n; j++ )
274 {
275 sum = 0.0;
276 for ( i=0; i<m; i++ )
277 sum += b_v[i]*A_v[i][j];
278 out->ve[j] = sum;
279 }
280 **************************************************/
281
282 return out;
283 }
284
285 /* m_transp -- transpose matrix */
286 MAT * m_transp(MAT * in, MAT * out)
287 {
288 int i, j;
289 int in_situ;
290 Real tmp;
291
292 if ( in == (MAT *)NULL )
293 error(E_NULL,"m_transp");
294 if ( in == out && in->n != in->m )
295 error(E_INSITU2,"m_transp");
296 in_situ = ( in == out );
297 if ( out == (MAT *)NULL || out->m != in->n || out->n != in->m )
298 out = m_resize(out,in->n,in->m);
299
300 if ( ! in_situ )
301 for ( i = 0; i < in->m; i++ )
302 for ( j = 0; j < in->n; j++ )
303 out->me[j][i] = in->me[i][j];
304 else
305 for ( i = 1; i < in->m; i++ )
306 for ( j = 0; j < i; j++ )
307 { tmp = in->me[i][j];
308 in->me[i][j] = in->me[j][i];
309 in->me[j][i] = tmp;
310 }
311
312 return out;
313 }
314
315 /* swap_rows -- swaps rows i and j of matrix A upto column lim */
316 MAT * swap_rows(MAT * A, int i, int j, int lo, int hi)
317 {
318 int k;
319 Real **A_me, tmp;
320
321 if ( ! A )
322 error(E_NULL,"swap_rows");
323 if ( i < 0 || j < 0 || i >= A->m || j >= A->m )
324 error(E_SIZES,"swap_rows");
325 lo = max(0,lo);
326 hi = min(hi,A->n-1);
327 A_me = A->me;
328
329 for ( k = lo; k <= hi; k++ )
330 {
331 tmp = A_me[k][i];
332 A_me[k][i] = A_me[k][j];
333 A_me[k][j] = tmp;
334 }
335 return A;
336 }
337
338 /* swap_cols -- swap columns i and j of matrix A upto row lim */
339 MAT * swap_cols(MAT * A, int i, int j, int lo, int hi)
340 {
341 int k;
342 Real **A_me, tmp;
343
344 if ( ! A )
345 error(E_NULL,"swap_cols");
346 if ( i < 0 || j < 0 || i >= A->n || j >= A->n )
347 error(E_SIZES,"swap_cols");
348 lo = max(0,lo);
349 hi = min(hi,A->m-1);
350 A_me = A->me;
351
352 for ( k = lo; k <= hi; k++ )
353 {
354 tmp = A_me[i][k];
355 A_me[i][k] = A_me[j][k];
356 A_me[j][k] = tmp;
357 }
358 return A;
359 }
360
361 /* ms_mltadd -- matrix-scalar multiply and add
362 -- may be in situ
363 -- returns out == A1 + s*A2 */
364 MAT * ms_mltadd(MAT * A1, MAT * A2, double s, MAT * out)
365 {
366 /* register Real *A1_e, *A2_e, *out_e; */
367 /* register int j; */
368 int i, m, n;
369
370 if ( ! A1 || ! A2 )
371 error(E_NULL,"ms_mltadd");
372 if ( A1->m != A2->m || A1->n != A2->n )
373 error(E_SIZES,"ms_mltadd");
374
375 if ( s == 0.0 )
376 return m_copy(A1,out);
377 if ( s == 1.0 )
378 return m_add(A1,A2,out);
379
380 tracecatch(out = m_copy(A1,out),"ms_mltadd");
381
382 m = A1->m; n = A1->n;
383 for ( i = 0; i < m; i++ )
384 {
385 __mltadd__(out->me[i],A2->me[i],s,(int)n);
386 /**************************************************
387 A1_e = A1->me[i];
388 A2_e = A2->me[i];
389 out_e = out->me[i];
390 for ( j = 0; j < n; j++ )
391 out_e[j] = A1_e[j] + s*A2_e[j];
392 **************************************************/
393 }
394
395 return out;
396 }
397
398 /* mv_mltadd -- matrix-vector multiply and add
399 -- may not be in situ
400 -- returns out == v1 + alpha*A*v2 */
401 VEC * mv_mltadd(VEC * v1, VEC * v2, MAT * A, double alpha, VEC * out)
402 {
403 /* register int j; */
404 int i, m, n;
405 Real *v2_ve, *out_ve;
406
407 if ( ! v1 || ! v2 || ! A )
408 error(E_NULL,"mv_mltadd");
409 if ( out == v2 )
410 error(E_INSITU,"mv_mltadd");
411 if ( v1->dim != A->m || v2->dim != A-> n )
412 error(E_SIZES,"mv_mltadd");
413
414 tracecatch(out = v_copy(v1,out),"mv_mltadd");
415
416 v2_ve = v2->ve; out_ve = out->ve;
417 m = A->m; n = A->n;
418
419 if ( alpha == 0.0 )
420 return out;
421
422 for ( i = 0; i < m; i++ )
423 {
424 out_ve[i] += alpha*__ip__(A->me[i],v2_ve,(int)n);
425 /**************************************************
426 A_e = A->me[i];
427 sum = 0.0;
428 for ( j = 0; j < n; j++ )
429 sum += A_e[j]*v2_ve[j];
430 out_ve[i] = v1->ve[i] + alpha*sum;
431 **************************************************/
432 }
433
434 return out;
435 }
436
437 /* vm_mltadd -- vector-matrix multiply and add
438 -- may not be in situ
439 -- returns out' == v1' + v2'*A */
440 VEC * vm_mltadd(VEC * v1, VEC * v2, MAT * A,double alpha, VEC * out)
441 {
442 int /* i, */ j, m, n;
443 Real tmp, /* *A_e, */ *out_ve;
444
445 if ( ! v1 || ! v2 || ! A )
446 error(E_NULL,"vm_mltadd");
447 if ( v2 == out )
448 error(E_INSITU,"vm_mltadd");
449 if ( v1->dim != A->n || A->m != v2->dim )
450 error(E_SIZES,"vm_mltadd");
451
452 tracecatch(out = v_copy(v1,out),"vm_mltadd");
453
454 out_ve = out->ve; m = A->m; n = A->n;
455 for ( j = 0; j < m; j++ )
456 {
457 tmp = v2->ve[j]*alpha;
458 if ( tmp != 0.0 )
459 __mltadd__(out_ve,A->me[j],tmp,(int)n);
460 /**************************************************
461 A_e = A->me[j];
462 for ( i = 0; i < n; i++ )
463 out_ve[i] += A_e[i]*tmp;
464 **************************************************/
465 }
466
467 return out;
468 }
469
+0
-667
interface/src/scilab/src/c/matrix.h less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Type definitions for general purpose maths package
28 */
29
30 #ifndef MATRIXH
31
32 /* RCS id: $Id: matrix.h 3911 2011-11-16 17:55:09Z ycollet $ */
33
34 #define MATRIXH
35
36 #include "machine.h"
37 #include "err.h"
38 #include "meminfo.h"
39
40 /* unsigned integer type */
41 #ifndef U_INT_DEF
42 typedef unsigned int u_int;
43 #define U_INT_DEF
44 #endif
45
46 /* vector definition */
47 typedef struct {
48 u_int dim, max_dim;
49 Real *ve;
50 } VEC;
51
52 /* matrix definition */
53 typedef struct {
54 u_int m, n;
55 u_int max_m, max_n, max_size;
56 Real **me,*base; /* base is base of alloc'd mem */
57 } MAT;
58
59 /* band matrix definition */
60 typedef struct {
61 MAT *mat; /* matrix */
62 int lb,ub; /* lower and upper bandwidth */
63 } BAND;
64
65
66 /* permutation definition */
67 typedef struct {
68 u_int size, max_size, *pe;
69 } PERM;
70
71 /* integer vector definition */
72 typedef struct {
73 u_int dim, max_dim;
74 int *ive;
75 } IVEC;
76
77
78 #ifndef MALLOCDECL
79 #ifndef ANSI_C
80 extern char *malloc(), *calloc(), *realloc();
81 #else
82 extern void *malloc(size_t),
83 *calloc(size_t,size_t),
84 *realloc(void *,size_t);
85 #endif
86 #endif
87
88 #ifndef ANSI_C
89 extern void m_version();
90 #else
91 void m_version( void );
92 #endif
93
94 #ifndef ANSI_C
95 /* allocate one object of given type */
96 #define NEW(type) ((type *)calloc(1,sizeof(type)))
97
98 /* allocate num objects of given type */
99 #define NEW_A(num,type) ((type *)calloc((unsigned)(num),sizeof(type)))
100
101 /* re-allocate arry to have num objects of the given type */
102 #define RENEW(var,num,type) \
103 ((var)=(type *)((var) ? \
104 realloc((char *)(var),(unsigned)(num)*sizeof(type)) : \
105 calloc((unsigned)(num),sizeof(type))))
106
107 #define MEMCOPY(from,to,n_items,type) \
108 MEM_COPY((char *)(from),(char *)(to),(unsigned)(n_items)*sizeof(type))
109
110 #else
111 /* allocate one object of given type */
112 #define NEW(type) ((type *)calloc((size_t)1,(size_t)sizeof(type)))
113
114 /* allocate num objects of given type */
115 #define NEW_A(num,type) ((type *)calloc((size_t)(num),(size_t)sizeof(type)))
116
117 /* re-allocate arry to have num objects of the given type */
118 #define RENEW(var,num,type) \
119 ((var)=(type *)((var) ? \
120 realloc((char *)(var),(size_t)((num)*sizeof(type))) : \
121 calloc((size_t)(num),(size_t)sizeof(type))))
122
123 #define MEMCOPY(from,to,n_items,type) \
124 MEM_COPY((char *)(from),(char *)(to),(unsigned)(n_items)*sizeof(type))
125
126 #endif
127
128 /* type independent min and max operations */
129 #ifndef max
130 #define max(a,b) ((a) > (b) ? (a) : (b))
131 #endif
132 #ifndef min
133 #define min(a,b) ((a) > (b) ? (b) : (a))
134 #endif
135
136
137 #undef TRUE
138 #define TRUE 1
139 #undef FALSE
140 #define FALSE 0
141
142
143 /* for input routines */
144 #define MAXLINE 81
145
146
147 /* Dynamic memory allocation */
148
149 /* Should use M_FREE/V_FREE/PX_FREE in programs instead of m/v/px_free()
150 as this is considerably safer -- also provides a simple type check ! */
151
152 #ifndef ANSI_C
153
154 extern VEC *v_get(), *v_resize();
155 extern MAT *m_get(), *m_resize();
156 extern PERM *px_get(), *px_resize();
157 extern IVEC *iv_get(), *iv_resize();
158 extern int m_free(),v_free();
159 extern int px_free();
160 extern int iv_free();
161 extern BAND *bd_get(), *bd_resize();
162 extern int bd_free();
163
164 #else
165
166 /* get/resize vector to given dimension */
167 extern VEC *v_get(int), *v_resize(VEC *,int);
168 /* get/resize matrix to be m x n */
169 extern MAT *m_get(int,int), *m_resize(MAT *,int,int);
170 /* get/resize permutation to have the given size */
171 extern PERM *px_get(int), *px_resize(PERM *,int);
172 /* get/resize an integer vector to given dimension */
173 extern IVEC *iv_get(int), *iv_resize(IVEC *,int);
174 /* get/resize a band matrix to given dimension */
175 extern BAND *bd_get(int,int,int), *bd_resize(BAND *,int,int,int);
176
177 /* free (de-allocate) (band) matrices, vectors, permutations and
178 integer vectors */
179 extern int iv_free(IVEC *);
180 extern int m_free(MAT *);
181 extern int v_free(VEC *);
182 extern int px_free(PERM *);
183 extern int bd_free(BAND *);
184
185 #endif
186
187
188 /* MACROS */
189
190 /* macros that also check types and sets pointers to NULL */
191 #define M_FREE(mat) ( m_free(mat), (mat)=(MAT *)NULL )
192 #define V_FREE(vec) ( v_free(vec), (vec)=(VEC *)NULL )
193 #define PX_FREE(px) ( px_free(px), (px)=(PERM *)NULL )
194 #define IV_FREE(iv) ( iv_free(iv), (iv)=(IVEC *)NULL )
195
196 #define MAXDIM 2001
197
198
199 /* Entry level access to data structures */
200 #ifdef DEBUG
201
202 /* returns x[i] */
203 #define v_entry(x,i) (((i) < 0 || (i) >= (x)->dim) ? \
204 error(E_BOUNDS,"v_entry"), 0.0 : (x)->ve[i] )
205
206 /* x[i] <- val */
207 #define v_set_val(x,i,val) ((x)->ve[i] = ((i) < 0 || (i) >= (x)->dim) ? \
208 error(E_BOUNDS,"v_set_val"), 0.0 : (val))
209
210 /* x[i] <- x[i] + val */
211 #define v_add_val(x,i,val) ((x)->ve[i] += ((i) < 0 || (i) >= (x)->dim) ? \
212 error(E_BOUNDS,"v_add_val"), 0.0 : (val))
213
214 /* x[i] <- x[i] - val */
215 #define v_sub_val(x,i,val) ((x)->ve[i] -= ((i) < 0 || (i) >= (x)->dim) ? \
216 error(E_BOUNDS,"v_sub_val"), 0.0 : (val))
217
218 /* returns A[i][j] */
219 #define m_entry(A,i,j) (((i) < 0 || (i) >= (A)->m || \
220 (j) < 0 || (j) >= (A)->n) ? \
221 error(E_BOUNDS,"m_entry"), 0.0 : (A)->me[i][j] )
222
223 /* A[i][j] <- val */
224 #define m_set_val(A,i,j,val) ((A)->me[i][j] = ((i) < 0 || (i) >= (A)->m || \
225 (j) < 0 || (j) >= (A)->n) ? \
226 error(E_BOUNDS,"m_set_val"), 0.0 : (val) )
227
228 /* A[i][j] <- A[i][j] + val */
229 #define m_add_val(A,i,j,val) ((A)->me[i][j] += ((i) < 0 || (i) >= (A)->m || \
230 (j) < 0 || (j) >= (A)->n) ? \
231 error(E_BOUNDS,"m_add_val"), 0.0 : (val) )
232
233 /* A[i][j] <- A[i][j] - val */
234 #define m_sub_val(A,i,j,val) ((A)->me[i][j] -= ((i) < 0 || (i) >= (A)->m || \
235 (j) < 0 || (j) >= (A)->n) ? \
236 error(E_BOUNDS,"m_sub_val"), 0.0 : (val) )
237 #else
238
239 /* returns x[i] */
240 #define v_entry(x,i) ((x)->ve[i])
241
242 /* x[i] <- val */
243 #define v_set_val(x,i,val) ((x)->ve[i] = (val))
244
245 /* x[i] <- x[i] + val */
246 #define v_add_val(x,i,val) ((x)->ve[i] += (val))
247
248 /* x[i] <- x[i] - val */
249 #define v_sub_val(x,i,val) ((x)->ve[i] -= (val))
250
251 /* returns A[i][j] */
252 #define m_entry(A,i,j) ((A)->me[i][j])
253
254 /* A[i][j] <- val */
255 #define m_set_val(A,i,j,val) ((A)->me[i][j] = (val) )
256
257 /* A[i][j] <- A[i][j] + val */
258 #define m_add_val(A,i,j,val) ((A)->me[i][j] += (val) )
259
260 /* A[i][j] <- A[i][j] - val */
261 #define m_sub_val(A,i,j,val) ((A)->me[i][j] -= (val) )
262
263 #endif
264
265
266 /* I/O routines */
267 #ifndef ANSI_C
268
269 extern void v_foutput(),m_foutput(),px_foutput();
270 extern void iv_foutput();
271 extern VEC *v_finput();
272 extern MAT *m_finput();
273 extern PERM *px_finput();
274 extern IVEC *iv_finput();
275 extern int fy_or_n(), fin_int(), yn_dflt(), skipjunk();
276 extern double fin_double();
277
278 #else
279
280 /* print x on file fp */
281 void v_foutput(FILE *fp,VEC *x),
282 /* print A on file fp */
283 m_foutput(FILE *fp,MAT *A),
284 /* print px on file fp */
285 px_foutput(FILE *fp,PERM *px);
286 /* print ix on file fp */
287 void iv_foutput(FILE *fp,IVEC *ix);
288
289 /* Note: if out is NULL, then returned object is newly allocated;
290 Also: if out is not NULL, then that size is assumed */
291
292 /* read in vector from fp */
293 VEC *v_finput(FILE *fp,VEC *out);
294 /* read in matrix from fp */
295 MAT *m_finput(FILE *fp,MAT *out);
296 /* read in permutation from fp */
297 PERM *px_finput(FILE *fp,PERM *out);
298 /* read in int vector from fp */
299 IVEC *iv_finput(FILE *fp,IVEC *out);
300
301 /* fy_or_n -- yes-or-no to question in string s
302 -- question written to stderr, input from fp
303 -- if fp is NOT a tty then return y_n_dflt */
304 int fy_or_n(FILE *fp,char *s);
305
306 /* yn_dflt -- sets the value of y_n_dflt to val */
307 int yn_dflt(int val);
308
309 /* fin_int -- return integer read from file/stream fp
310 -- prompt s on stderr if fp is a tty
311 -- check that x lies between low and high: re-prompt if
312 fp is a tty, error exit otherwise
313 -- ignore check if low > high */
314 int fin_int(FILE *fp,char *s,int low,int high);
315
316 /* fin_double -- return double read from file/stream fp
317 -- prompt s on stderr if fp is a tty
318 -- check that x lies between low and high: re-prompt if
319 fp is a tty, error exit otherwise
320 -- ignore check if low > high */
321 double fin_double(FILE *fp,char *s,double low,double high);
322
323 /* it skips white spaces and strings of the form #....\n
324 Here .... is a comment string */
325 int skipjunk(FILE *fp);
326
327 #endif
328
329
330 /* MACROS */
331
332 /* macros to use stdout and stdin instead of explicit fp */
333 #define v_output(vec) v_foutput(stdout,vec)
334 #define v_input(vec) v_finput(stdin,vec)
335 #define m_output(mat) m_foutput(stdout,mat)
336 #define m_input(mat) m_finput(stdin,mat)
337 #define px_output(px) px_foutput(stdout,px)
338 #define px_input(px) px_finput(stdin,px)
339 #define iv_output(iv) iv_foutput(stdout,iv)
340 #define iv_input(iv) iv_finput(stdin,iv)
341
342 /* general purpose input routine; skips comments # ... \n */
343 #define finput(fp,prompt,fmt,var) \
344 ( ( isatty(fileno(fp)) ? fprintf(stderr,prompt) : skipjunk(fp) ), \
345 fscanf(fp,fmt,var) )
346 #define input(prompt,fmt,var) finput(stdin,prompt,fmt,var)
347 #define fprompter(fp,prompt) \
348 ( isatty(fileno(fp)) ? fprintf(stderr,prompt) : skipjunk(fp) )
349 #define prompter(prompt) fprompter(stdin,prompt)
350 #define y_or_n(s) fy_or_n(stdin,s)
351 #define in_int(s,lo,hi) fin_int(stdin,s,lo,hi)
352 #define in_double(s,lo,hi) fin_double(stdin,s,lo,hi)
353
354 /* Copying routines */
355 #ifndef ANSI_C
356 extern MAT *_m_copy(), *m_move(), *vm_move();
357 extern VEC *_v_copy(), *v_move(), *mv_move();
358 extern PERM *px_copy();
359 extern IVEC *iv_copy(), *iv_move();
360 extern BAND *bd_copy();
361
362 #else
363
364 /* copy in to out starting at out[i0][j0] */
365 extern MAT *_m_copy(MAT *in,MAT *out,u_int i0,u_int j0),
366 * m_move(MAT *in, int, int, int, int, MAT *out, int, int),
367 *vm_move(VEC *in, int, MAT *out, int, int, int, int);
368 /* copy in to out starting at out[i0] */
369 extern VEC *_v_copy(VEC *in,VEC *out,u_int i0),
370 * v_move(VEC *in, int, int, VEC *out, int),
371 *mv_move(MAT *in, int, int, int, int, VEC *out, int);
372 extern PERM *px_copy(PERM *in,PERM *out);
373 extern IVEC *iv_copy(IVEC *in,IVEC *out),
374 *iv_move(IVEC *in, int, int, IVEC *out, int);
375 extern BAND *bd_copy(BAND *in,BAND *out);
376
377 #endif
378
379
380 /* MACROS */
381 #define m_copy(in,out) _m_copy(in,out,0,0)
382 #define v_copy(in,out) _v_copy(in,out,0)
383
384
385 /* Initialisation routines -- to be zero, ones, random or identity */
386 #ifndef ANSI_C
387 extern VEC *v_zero(), *v_rand(), *v_ones();
388 extern MAT *m_zero(), *m_ident(), *m_rand(), *m_ones();
389 extern PERM *px_ident();
390 extern IVEC *iv_zero();
391 #else
392 extern VEC *v_zero(VEC *), *v_rand(VEC *), *v_ones(VEC *);
393 extern MAT *m_zero(MAT *), *m_ident(MAT *), *m_rand(MAT *),
394 *m_ones(MAT *);
395 extern PERM *px_ident(PERM *);
396 extern IVEC *iv_zero(IVEC *);
397 #endif
398
399 /* Basic vector operations */
400 #ifndef ANSI_C
401 extern VEC *sv_mlt(), *mv_mlt(), *vm_mlt(), *v_add(), *v_sub(),
402 *px_vec(), *pxinv_vec(), *v_mltadd(), *v_map(), *_v_map(),
403 *v_lincomb(), *v_linlist();
404 extern double v_min(), v_max(), v_sum();
405 extern VEC *v_star(), *v_slash(), *v_sort();
406 extern double _in_prod(), __ip__();
407 extern void __mltadd__(), __add__(), __sub__(),
408 __smlt__(), __zero__();
409 #else
410
411 extern VEC *sv_mlt(double,VEC *,VEC *), /* out <- s.x */
412 *mv_mlt(MAT *,VEC *,VEC *), /* out <- A.x */
413 *vm_mlt(MAT *,VEC *,VEC *), /* out^T <- x^T.A */
414 *v_add(VEC *,VEC *,VEC *), /* out <- x + y */
415 *v_sub(VEC *,VEC *,VEC *), /* out <- x - y */
416 *px_vec(PERM *,VEC *,VEC *), /* out <- P.x */
417 *pxinv_vec(PERM *,VEC *,VEC *), /* out <- P^{-1}.x */
418 *v_mltadd(VEC *,VEC *,double,VEC *), /* out <- x + s.y */
419 #ifdef PROTOTYPES_IN_STRUCT
420 *v_map(double (*f)(double),VEC *,VEC *),
421 /* out[i] <- f(x[i]) */
422 *_v_map(double (*f)(void *,double),void *,VEC *,VEC *),
423 #else
424 *v_map(double (*f)(),VEC *,VEC *), /* out[i] <- f(x[i]) */
425 *_v_map(double (*f)(),void *,VEC *,VEC *),
426 #endif
427 *v_lincomb(int,VEC **,Real *,VEC *),
428 /* out <- sum_i s[i].x[i] */
429 *v_linlist(VEC *out,VEC *v1,double a1,...);
430 /* out <- s1.x1 + s2.x2 + ... */
431
432 /* returns min_j x[j] (== x[i]) */
433 extern double v_min(VEC *, int *),
434 /* returns max_j x[j] (== x[i]) */
435 v_max(VEC *, int *),
436 /* returns sum_i x[i] */
437 v_sum(VEC *);
438
439 /* Hadamard product: out[i] <- x[i].y[i] */
440 extern VEC *v_star(VEC *, VEC *, VEC *),
441 /* out[i] <- x[i] / y[i] */
442 *v_slash(VEC *, VEC *, VEC *),
443 /* sorts x, and sets order so that sorted x[i] = x[order[i]] */
444 *v_sort(VEC *, PERM *);
445
446 /* returns inner product starting at component i0 */
447 extern double _in_prod(VEC *x,VEC *y,u_int i0),
448 /* returns sum_{i=0}^{len-1} x[i].y[i] */
449 __ip__(Real *,Real *,int);
450
451 /* see v_mltadd(), v_add(), v_sub() and v_zero() */
452 extern void __mltadd__(Real *,Real *,double,int),
453 __add__(Real *,Real *,Real *,int),
454 __sub__(Real *,Real *,Real *,int),
455 __smlt__(Real *,double,Real *,int),
456 __zero__(Real *,int);
457
458 #endif
459
460
461 /* MACRO */
462 /* usual way of computing the inner product */
463 #define in_prod(a,b) _in_prod(a,b,0)
464
465 /* Norms */
466 /* scaled vector norms -- scale == NULL implies unscaled */
467 #ifndef ANSI_C
468
469 extern double _v_norm1(), _v_norm2(), _v_norm_inf(),
470 m_norm1(), m_norm_inf(), m_norm_frob();
471
472 #else
473 /* returns sum_i |x[i]/scale[i]| */
474 extern double _v_norm1(VEC *x,VEC *scale),
475 /* returns (scaled) Euclidean norm */
476 _v_norm2(VEC *x,VEC *scale),
477 /* returns max_i |x[i]/scale[i]| */
478 _v_norm_inf(VEC *x,VEC *scale);
479
480 /* unscaled matrix norms */
481 extern double m_norm1(MAT *A), m_norm_inf(MAT *A), m_norm_frob(MAT *A);
482
483 #endif
484
485
486 /* MACROS */
487 /* unscaled vector norms */
488 #define v_norm1(x) _v_norm1(x,VNULL)
489 #define v_norm2(x) _v_norm2(x,VNULL)
490 #define v_norm_inf(x) _v_norm_inf(x,VNULL)
491
492 /* Basic matrix operations */
493 #ifndef ANSI_C
494
495 extern MAT *sm_mlt(), *m_mlt(), *mmtr_mlt(), *mtrm_mlt(), *m_add(), *m_sub(),
496 *sub_mat(), *m_transp(), *ms_mltadd();
497
498 extern BAND *bd_transp();
499 extern MAT *px_rows(), *px_cols(), *swap_rows(), *swap_cols(),
500 *_set_row(), *_set_col();
501 extern VEC *get_row(), *get_col(), *sub_vec(),
502 *mv_mltadd(), *vm_mltadd();
503
504 #else
505
506 extern MAT *sm_mlt(double s,MAT *A,MAT *out), /* out <- s.A */
507 *m_mlt(MAT *A,MAT *B,MAT *out), /* out <- A.B */
508 *mmtr_mlt(MAT *A,MAT *B,MAT *out), /* out <- A.B^T */
509 *mtrm_mlt(MAT *A,MAT *B,MAT *out), /* out <- A^T.B */
510 *m_add(MAT *A,MAT *B,MAT *out), /* out <- A + B */
511 *m_sub(MAT *A,MAT *B,MAT *out), /* out <- A - B */
512 *sub_mat(MAT *A,u_int,u_int,u_int,u_int,MAT *out),
513 *m_transp(MAT *A,MAT *out), /* out <- A^T */
514 /* out <- A + s.B */
515 *ms_mltadd(MAT *A,MAT *B,double s,MAT *out);
516
517
518 extern BAND *bd_transp(BAND *in, BAND *out); /* out <- A^T */
519 extern MAT *px_rows(PERM *px,MAT *A,MAT *out), /* out <- P.A */
520 *px_cols(PERM *px,MAT *A,MAT *out), /* out <- A.P^T */
521 *swap_rows(MAT *,int,int,int,int),
522 *swap_cols(MAT *,int,int,int,int),
523 /* A[i][j] <- out[j], j >= j0 */
524 *_set_col(MAT *A,u_int i,VEC *out,u_int j0),
525 /* A[i][j] <- out[i], i >= i0 */
526 *_set_row(MAT *A,u_int j,VEC *out,u_int i0);
527
528 extern VEC *get_row(MAT *,u_int,VEC *),
529 *get_col(MAT *,u_int,VEC *),
530 *sub_vec(VEC *,int,int,VEC *),
531 /* out <- x + s.A.y */
532 *mv_mltadd(VEC *x,VEC *y,MAT *A,double s,VEC *out),
533 /* out^T <- x^T + s.y^T.A */
534 *vm_mltadd(VEC *x,VEC *y,MAT *A,double s,VEC *out);
535 #endif
536
537
538 /* MACROS */
539 /* row i of A <- vec */
540 #define set_row(mat,row,vec) _set_row(mat,row,vec,0)
541 /* col j of A <- vec */
542 #define set_col(mat,col,vec) _set_col(mat,col,vec,0)
543
544
545 /* Basic permutation operations */
546 #ifndef ANSI_C
547
548 extern PERM *px_mlt(), *px_inv(), *px_transp();
549 extern int px_sign();
550
551 #else
552
553 extern PERM *px_mlt(PERM *px1,PERM *px2,PERM *out), /* out <- px1.px2 */
554 *px_inv(PERM *px,PERM *out), /* out <- px^{-1} */
555 /* swap px[i] and px[j] */
556 *px_transp(PERM *px,u_int i,u_int j);
557
558 /* returns sign(px) = +1 if px product of even # transpositions
559 -1 if ps product of odd # transpositions */
560 extern int px_sign(PERM *);
561
562 #endif
563
564
565 /* Basic integer vector operations */
566 #ifndef ANSI_C
567
568 extern IVEC *iv_add(), *iv_sub(), *iv_sort();
569
570 #else
571
572 extern IVEC *iv_add(IVEC *ix,IVEC *iy,IVEC *out), /* out <- ix + iy */
573 *iv_sub(IVEC *ix,IVEC *iy,IVEC *out), /* out <- ix - iy */
574 /* sorts ix & sets order so that sorted ix[i] = old ix[order[i]] */
575 *iv_sort(IVEC *ix, PERM *order);
576
577 #endif
578
579
580 /* miscellaneous functions */
581
582 #ifndef ANSI_C
583
584 extern double square(), cube(), mrand();
585 extern void smrand(), mrandlist();
586 extern void m_dump(), px_dump(), v_dump(), iv_dump();
587 extern MAT *band2mat();
588 extern BAND *mat2band();
589
590 #else
591
592 double square(double x), /* returns x^2 */
593 cube(double x), /* returns x^3 */
594 mrand(void); /* returns random # in [0,1) */
595
596 void smrand(int seed), /* seeds mrand() */
597 mrandlist(Real *x, int len); /* generates len random numbers */
598
599 void m_dump(FILE *fp,MAT *a), px_dump(FILE *,PERM *px),
600 v_dump(FILE *fp,VEC *x), iv_dump(FILE *fp, IVEC *ix);
601
602 MAT *band2mat(BAND *bA, MAT *A);
603 BAND *mat2band(MAT *A, int lb,int ub, BAND *bA);
604
605 #endif
606
607
608 /* miscellaneous constants */
609 #define VNULL ((VEC *)NULL)
610 #define MNULL ((MAT *)NULL)
611 #define PNULL ((PERM *)NULL)
612 #define IVNULL ((IVEC *)NULL)
613 #define BDNULL ((BAND *)NULL)
614
615
616
617 /* varying number of arguments */
618
619 #ifdef ANSI_C
620 #include <stdarg.h>
621
622 /* prototypes */
623
624 int v_get_vars(int dim,...);
625 int iv_get_vars(int dim,...);
626 int m_get_vars(int m,int n,...);
627 int px_get_vars(int dim,...);
628
629 int v_resize_vars(int new_dim,...);
630 int iv_resize_vars(int new_dim,...);
631 int m_resize_vars(int m,int n,...);
632 int px_resize_vars(int new_dim,...);
633
634 int v_free_vars(VEC **,...);
635 int iv_free_vars(IVEC **,...);
636 int px_free_vars(PERM **,...);
637 int m_free_vars(MAT **,...);
638
639 #elif VARARGS
640 /* old varargs is used */
641
642 #include <varargs.h>
643
644 /* prototypes */
645
646 int v_get_vars();
647 int iv_get_vars();
648 int m_get_vars();
649 int px_get_vars();
650
651 int v_resize_vars();
652 int iv_resize_vars();
653 int m_resize_vars();
654 int px_resize_vars();
655
656 int v_free_vars();
657 int iv_free_vars();
658 int px_free_vars();
659 int m_free_vars();
660
661 #endif
662
663
664 #endif
665
666
+0
-229
interface/src/scilab/src/c/matrix2.h less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Header file for ``matrix2.a'' library file
28 */
29
30
31 #ifndef MATRIX2H
32 #define MATRIX2H
33
34 #include "matrix.h"
35
36 /* Unless otherwise specified, factorisation routines overwrite the
37 matrix that is being factorised */
38
39 #ifndef ANSI_C
40
41 extern MAT *BKPfactor(), *CHfactor(), *LUfactor(), *QRfactor(),
42 *QRCPfactor(), *LDLfactor(), *Hfactor(), *MCHfactor(),
43 *m_inverse();
44 extern double LUcondest(), QRcondest();
45 extern MAT *makeQ(), *makeR(), *makeHQ(), *makeH();
46 extern MAT *LDLupdate(), *QRupdate();
47
48 extern VEC *BKPsolve(), *CHsolve(), *LUsolve(), *_Qsolve(), *QRsolve(),
49 *LDLsolve(), *Usolve(), *Lsolve(), *Dsolve(), *LTsolve(),
50 *UTsolve(), *LUTsolve(), *QRCPsolve();
51
52 extern BAND *bdLUfactor(), *bdLDLfactor();
53 extern VEC *bdLUsolve(), *bdLDLsolve();
54
55 extern VEC *hhvec();
56 extern VEC *hhtrvec();
57 extern MAT *hhtrrows();
58 extern MAT *hhtrcols();
59
60 extern void givens();
61 extern VEC *rot_vec(); /* in situ */
62 extern MAT *rot_rows(); /* in situ */
63 extern MAT *rot_cols(); /* in situ */
64
65
66 /* eigenvalue routines */
67 extern VEC *trieig(), *symmeig();
68 extern MAT *schur();
69 extern void schur_evals();
70 extern MAT *schur_vecs();
71
72 /* singular value decomposition */
73 extern VEC *bisvd(), *svd();
74
75 /* matrix powers and exponent */
76 MAT *_m_pow();
77 MAT *m_pow();
78 MAT *m_exp(), *_m_exp();
79 MAT *m_poly();
80
81 /* FFT */
82 void fft();
83 void ifft();
84
85
86 #else
87
88 /* forms Bunch-Kaufman-Parlett factorisation for
89 symmetric indefinite matrices */
90 extern MAT *BKPfactor(MAT *A,PERM *pivot,PERM *blocks),
91 /* Cholesky factorisation of A
92 (symmetric, positive definite) */
93 *CHfactor(MAT *A),
94 /* LU factorisation of A (with partial pivoting) */
95 *LUfactor(MAT *A,PERM *pivot),
96 /* QR factorisation of A; need dim(diag) >= # rows of A */
97 *QRfactor(MAT *A,VEC *diag),
98 /* QR factorisation of A with column pivoting */
99 *QRCPfactor(MAT *A,VEC *diag,PERM *pivot),
100 /* L.D.L^T factorisation of A */
101 *LDLfactor(MAT *A),
102 /* Hessenberg factorisation of A -- for schur() */
103 *Hfactor(MAT *A,VEC *diag1,VEC *diag2),
104 /* modified Cholesky factorisation of A;
105 actually factors A+D, D diagonal with no
106 diagonal entry in the factor < sqrt(tol) */
107 *MCHfactor(MAT *A,double tol),
108 *m_inverse(MAT *A,MAT *out);
109
110 /* returns condition estimate for A after LUfactor() */
111 extern double LUcondest(MAT *A,PERM *pivot),
112 /* returns condition estimate for Q after QRfactor() */
113 QRcondest(MAT *A);
114
115 /* Note: The make..() and ..update() routines assume that the factorisation
116 has already been carried out */
117
118 /* Qout is the "Q" (orthongonal) matrix from QR factorisation */
119 extern MAT *makeQ(MAT *A,VEC *diag,MAT *Qout),
120 /* Rout is the "R" (upper triangular) matrix
121 from QR factorisation */
122 *makeR(MAT *A,MAT *Rout),
123 /* Qout is orthogonal matrix in Hessenberg factorisation */
124 *makeHQ(MAT *A,VEC *diag1,VEC *diag2,MAT *Qout),
125 /* Hout is the Hessenberg matrix in Hessenberg factorisation */
126 *makeH(MAT *A,MAT *Hout);
127
128 /* updates L.D.L^T factorisation for A <- A + alpha.u.u^T */
129 extern MAT *LDLupdate(MAT *A,VEC *u,double alpha),
130 /* updates QR factorisation for QR <- Q.(R+u.v^T)
131 Note: we need explicit Q & R matrices,
132 from makeQ() and makeR() */
133 *QRupdate(MAT *Q,MAT *R,VEC *u,VEC *v);
134
135 /* Solve routines assume that the corresponding factorisation routine
136 has already been applied to the matrix along with auxiliary
137 objects (such as pivot permutations)
138
139 These solve the system A.x = b,
140 except for LUTsolve and QRTsolve which solve the transposed system
141 A^T.x. = b.
142 If x is NULL on entry, then it is created.
143 */
144
145 extern VEC *BKPsolve(MAT *A,PERM *pivot,PERM *blocks,VEC *b,VEC *x),
146 *CHsolve(MAT *A,VEC *b,VEC *x),
147 *LDLsolve(MAT *A,VEC *b,VEC *x),
148 *LUsolve(MAT *A,PERM *pivot,VEC *b,VEC *x),
149 *_Qsolve(MAT *A,VEC *,VEC *,VEC *, VEC *),
150 *QRsolve(MAT *A,VEC *,VEC *b,VEC *x),
151 *QRTsolve(MAT *A,VEC *,VEC *b,VEC *x),
152
153
154 /* Triangular equations solve routines;
155 U for upper triangular, L for lower traingular, D for diagonal
156 if diag_val == 0.0 use that values in the matrix */
157
158 *Usolve(MAT *A,VEC *b,VEC *x,double diag_val),
159 *Lsolve(MAT *A,VEC *b,VEC *x,double diag_val),
160 *Dsolve(MAT *A,VEC *b,VEC *x),
161 *LTsolve(MAT *A,VEC *b,VEC *x,double diag_val),
162 *UTsolve(MAT *A,VEC *b,VEC *x,double diag_val),
163 *LUTsolve(MAT *A,PERM *,VEC *,VEC *),
164 *QRCPsolve(MAT *QR,VEC *diag,PERM *pivot,VEC *b,VEC *x);
165
166 extern BAND *bdLUfactor(BAND *A,PERM *pivot),
167 *bdLDLfactor(BAND *A);
168 extern VEC *bdLUsolve(BAND *A,PERM *pivot,VEC *b,VEC *x),
169 *bdLDLsolve(BAND *A,VEC *b,VEC *x);
170
171
172
173 extern VEC *hhvec(VEC *,u_int,Real *,VEC *,Real *);
174 extern VEC *hhtrvec(VEC *,double,u_int,VEC *,VEC *);
175 extern MAT *hhtrrows(MAT *,u_int,u_int,VEC *,double);
176 extern MAT *hhtrcols(MAT *,u_int,u_int,VEC *,double);
177
178 extern void givens(double,double,Real *,Real *);
179 extern VEC *rot_vec(VEC *,u_int,u_int,double,double,VEC *); /* in situ */
180 extern MAT *rot_rows(MAT *,u_int,u_int,double,double,MAT *); /* in situ */
181 extern MAT *rot_cols(MAT *,u_int,u_int,double,double,MAT *); /* in situ */
182
183
184 /* eigenvalue routines */
185
186 /* compute eigenvalues of tridiagonal matrix
187 with diagonal entries a[i], super & sub diagonal entries
188 b[i]; eigenvectors stored in Q (if not NULL) */
189 extern VEC *trieig(VEC *a,VEC *b,MAT *Q),
190 /* sets out to be vector of eigenvectors; eigenvectors
191 stored in Q (if not NULL). A is unchanged */
192 *symmeig(MAT *A,MAT *Q,VEC *out);
193
194 /* computes real Schur form = Q^T.A.Q */
195 extern MAT *schur(MAT *A,MAT *Q);
196 /* computes real and imaginary parts of the eigenvalues
197 of A after schur() */
198 extern void schur_evals(MAT *A,VEC *re_part,VEC *im_part);
199 /* computes real and imaginary parts of the eigenvectors
200 of A after schur() */
201 extern MAT *schur_vecs(MAT *T,MAT *Q,MAT *X_re,MAT *X_im);
202
203
204 /* singular value decomposition */
205
206 /* computes singular values of bi-diagonal matrix with
207 diagonal entries a[i] and superdiagonal entries b[i];
208 singular vectors stored in U and V (if not NULL) */
209 VEC *bisvd(VEC *a,VEC *b,MAT *U,MAT *V),
210 /* sets out to be vector of singular values;
211 singular vectors stored in U and V */
212 *svd(MAT *A,MAT *U,MAT *V,VEC *out);
213
214 /* matrix powers and exponent */
215 MAT *_m_pow(MAT *,int,MAT *,MAT *);
216 MAT *m_pow(MAT *,int, MAT *);
217 MAT *m_exp(MAT *,double,MAT *);
218 MAT *_m_exp(MAT *,double,MAT *,int *,int *);
219 MAT *m_poly(MAT *,VEC *,MAT *);
220
221 /* FFT */
222 void fft(VEC *,VEC *);
223 void ifft(VEC *,VEC *);
224
225 #endif
226
227
228 #endif
+0
-522
interface/src/scilab/src/c/matrixio.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* 1.6 matrixio.c 11/25/87 */
27
28
29 #include <stdio.h>
30 #include <ctype.h>
31 #include "matrix.h"
32
33 static char rcsid[] = "$Id: matrixio.c 3690 2010-09-02 09:55:19Z lsaavedr $";
34
35
36 /* local variables */
37 static char line[MAXLINE];
38
39
40 /**************************************************************************
41 Input routines
42 **************************************************************************/
43 /* skipjunk -- skips white spaces and strings of the form #....\n
44 Here .... is a comment string */
45 int skipjunk(fp)
46 FILE *fp;
47 {
48 int c;
49
50 for ( ; ; ) /* forever do... */
51 {
52 /* skip blanks */
53 do
54 c = getc(fp);
55 while ( isspace(c) );
56
57 /* skip comments (if any) */
58 if ( c == '#' )
59 /* yes it is a comment (line) */
60 while ( (c=getc(fp)) != '\n' )
61 ;
62 else
63 {
64 ungetc(c,fp);
65 break;
66 }
67 }
68 return 0;
69 }
70
71 MAT *m_finput(fp,a)
72 FILE *fp;
73 MAT *a;
74 {
75 MAT *im_finput(),*bm_finput();
76
77 if ( isatty(fileno(fp)) )
78 return im_finput(fp,a);
79 else
80 return bm_finput(fp,a);
81 }
82
83 /* im_finput -- interactive input of matrix */
84 MAT *im_finput(fp,mat)
85 FILE *fp;
86 MAT *mat;
87 {
88 char c;
89 u_int i, j, m, n, dynamic;
90 /* dynamic set to TRUE if memory allocated here */
91
92 /* get matrix size */
93 if ( mat != (MAT *)NULL && mat->m<MAXDIM && mat->n<MAXDIM )
94 { m = mat->m; n = mat->n; dynamic = FALSE; }
95 else
96 {
97 dynamic = TRUE;
98 do
99 {
100 fprintf(stderr,"Matrix: rows cols:");
101 if ( fgets(line,MAXLINE,fp)==NULL )
102 error(E_INPUT,"im_finput");
103 } while ( sscanf(line,"%u%u",&m,&n)<2 || m>MAXDIM || n>MAXDIM );
104 mat = m_get(m,n);
105 }
106
107 /* input elements */
108 for ( i=0; i<m; i++ )
109 {
110 redo:
111 fprintf(stderr,"row %u:\n",i);
112 for ( j=0; j<n; j++ )
113 do
114 {
115 redo2:
116 fprintf(stderr,"entry (%u,%u): ",i,j);
117 if ( !dynamic )
118 fprintf(stderr,"old %14.9g new: ",
119 mat->me[i][j]);
120 if ( fgets(line,MAXLINE,fp)==NULL )
121 error(E_INPUT,"im_finput");
122 if ( (*line == 'b' || *line == 'B') && j > 0 )
123 { j--; dynamic = FALSE; goto redo2; }
124 if ( (*line == 'f' || *line == 'F') && j < n-1 )
125 { j++; dynamic = FALSE; goto redo2; }
126 #if REAL == DOUBLE
127 } while ( *line=='\0' || sscanf(line,"%lf",&mat->me[i][j])<1 );
128 #elif REAL == FLOAT
129 } while ( *line=='\0' || sscanf(line,"%f",&mat->me[i][j])<1 );
130 #endif
131 fprintf(stderr,"Continue: ");
132 fscanf(fp,"%c",&c);
133 if ( c == 'n' || c == 'N' )
134 { dynamic = FALSE; goto redo; }
135 if ( (c == 'b' || c == 'B') /* && i > 0 */ )
136 { if ( i > 0 )
137 i--;
138 dynamic = FALSE; goto redo;
139 }
140 }
141
142 return (mat);
143 }
144
145 /* bm_finput -- batch-file input of matrix */
146 MAT *bm_finput(fp,mat)
147 FILE *fp;
148 MAT *mat;
149 {
150 u_int i,j,m,n,dummy;
151 int io_code;
152
153 /* get dimension */
154 skipjunk(fp);
155 if ((io_code=fscanf(fp," Matrix: %u by %u",&m,&n)) < 2 ||
156 m>MAXDIM || n>MAXDIM )
157 error(io_code==EOF ? E_EOF : E_FORMAT,"bm_finput");
158
159 /* allocate memory if necessary */
160 if ( mat==(MAT *)NULL )
161 mat = m_resize(mat,m,n);
162
163 /* get entries */
164 for ( i=0; i<m; i++ )
165 {
166 skipjunk(fp);
167 if ( fscanf(fp," row %u:",&dummy) < 1 )
168 error(E_FORMAT,"bm_finput");
169 for ( j=0; j<n; j++ )
170 #if REAL == DOUBLE
171 if ((io_code=fscanf(fp,"%lf",&mat->me[i][j])) < 1 )
172 #elif REAL == FLOAT
173 if ((io_code=fscanf(fp,"%f",&mat->me[i][j])) < 1 )
174 #endif
175 error(io_code==EOF ? 7 : 6,"bm_finput");
176 }
177
178 return (mat);
179 }
180
181 PERM *px_finput(fp,px)
182 FILE *fp;
183 PERM *px;
184 {
185 PERM *ipx_finput(),*bpx_finput();
186
187 if ( isatty(fileno(fp)) )
188 return ipx_finput(fp,px);
189 else
190 return bpx_finput(fp,px);
191 }
192
193
194 /* ipx_finput -- interactive input of permutation */
195 PERM *ipx_finput(fp,px)
196 FILE *fp;
197 PERM *px;
198 {
199 u_int i,j,size,dynamic; /* dynamic set if memory allocated here */
200 u_int entry,ok;
201
202 /* get permutation size */
203 if ( px!=(PERM *)NULL && px->size<MAXDIM )
204 { size = px->size; dynamic = FALSE; }
205 else
206 {
207 dynamic = TRUE;
208 do
209 {
210 fprintf(stderr,"Permutation: size: ");
211 if ( fgets(line,MAXLINE,fp)==NULL )
212 error(E_INPUT,"ipx_finput");
213 } while ( sscanf(line,"%u",&size)<1 || size>MAXDIM );
214 px = px_get(size);
215 }
216
217 /* get entries */
218 i = 0;
219 while ( i<size )
220 {
221 /* input entry */
222 do
223 {
224 redo:
225 fprintf(stderr,"entry %u: ",i);
226 if ( !dynamic )
227 fprintf(stderr,"old: %u->%u new: ",
228 i,px->pe[i]);
229 if ( fgets(line,MAXLINE,fp)==NULL )
230 error(E_INPUT,"ipx_finput");
231 if ( (*line == 'b' || *line == 'B') && i > 0 )
232 { i--; dynamic = FALSE; goto redo; }
233 } while ( *line=='\0' || sscanf(line,"%u",&entry) < 1 );
234 /* check entry */
235 ok = (entry < size);
236 for ( j=0; j<i; j++ )
237 ok &= (entry != px->pe[j]);
238 if ( ok )
239 {
240 px->pe[i] = entry;
241 i++;
242 }
243 }
244
245 return (px);
246 }
247
248 /* bpx_finput -- batch-file input of permutation */
249 PERM *bpx_finput(fp,px)
250 FILE *fp;
251 PERM *px;
252 {
253 u_int i,j,size,entry,ok;
254 int io_code;
255
256 /* get size of permutation */
257 skipjunk(fp);
258 if ((io_code=fscanf(fp," Permutation: size:%u",&size)) < 1 ||
259 size>MAXDIM )
260 error(io_code==EOF ? 7 : 6,"bpx_finput");
261
262 /* allocate memory if necessary */
263 if ( px==(PERM *)NULL || px->size<size )
264 px = px_resize(px,size);
265
266 /* get entries */
267 skipjunk(fp);
268 i = 0;
269 while ( i<size )
270 {
271 /* input entry */
272 if ((io_code=fscanf(fp,"%*u -> %u",&entry)) < 1 )
273 error(io_code==EOF ? 7 : 6,"bpx_finput");
274 /* check entry */
275 ok = (entry < size);
276 for ( j=0; j<i; j++ )
277 ok &= (entry != px->pe[j]);
278 if ( ok )
279 {
280 px->pe[i] = entry;
281 i++;
282 }
283 else
284 error(E_BOUNDS,"bpx_finput");
285 }
286
287 return (px);
288 }
289
290
291 VEC *v_finput(fp,x)
292 FILE *fp;
293 VEC *x;
294 {
295 VEC *ifin_vec(),*bfin_vec();
296
297 if ( isatty(fileno(fp)) )
298 return ifin_vec(fp,x);
299 else
300 return bfin_vec(fp,x);
301 }
302
303 /* ifin_vec -- interactive input of vector */
304 VEC *ifin_vec(fp,vec)
305 FILE *fp;
306 VEC *vec;
307 {
308 u_int i,dim,dynamic; /* dynamic set if memory allocated here */
309
310 /* get vector dimension */
311 if ( vec != (VEC *)NULL && vec->dim<MAXDIM )
312 { dim = vec->dim; dynamic = FALSE; }
313 else
314 {
315 dynamic = TRUE;
316 do
317 {
318 fprintf(stderr,"Vector: dim: ");
319 if ( fgets(line,MAXLINE,fp)==NULL )
320 error(E_INPUT,"ifin_vec");
321 } while ( sscanf(line,"%u",&dim)<1 || dim>MAXDIM );
322 vec = v_get(dim);
323 }
324
325 /* input elements */
326 for ( i=0; i<dim; i++ )
327 do
328 {
329 redo:
330 fprintf(stderr,"entry %u: ",i);
331 if ( !dynamic )
332 fprintf(stderr,"old %14.9g new: ",vec->ve[i]);
333 if ( fgets(line,MAXLINE,fp)==NULL )
334 error(E_INPUT,"ifin_vec");
335 if ( (*line == 'b' || *line == 'B') && i > 0 )
336 { i--; dynamic = FALSE; goto redo; }
337 if ( (*line == 'f' || *line == 'F') && i < dim-1 )
338 { i++; dynamic = FALSE; goto redo; }
339 #if REAL == DOUBLE
340 } while ( *line=='\0' || sscanf(line,"%lf",&vec->ve[i]) < 1 );
341 #elif REAL == FLOAT
342 } while ( *line=='\0' || sscanf(line,"%f",&vec->ve[i]) < 1 );
343 #endif
344
345 return (vec);
346 }
347
348 /* bfin_vec -- batch-file input of vector */
349 VEC *bfin_vec(fp,vec)
350 FILE *fp;
351 VEC *vec;
352 {
353 u_int i,dim;
354 int io_code;
355
356 /* get dimension */
357 skipjunk(fp);
358 if ((io_code=fscanf(fp," Vector: dim:%u",&dim)) < 1 ||
359 dim>MAXDIM )
360 error(io_code==EOF ? 7 : 6,"bfin_vec");
361
362 /* allocate memory if necessary */
363 if ( vec==(VEC *)NULL )
364 vec = v_resize(vec,dim);
365
366 /* get entries */
367 skipjunk(fp);
368 for ( i=0; i<dim; i++ )
369 #if REAL == DOUBLE
370 if ((io_code=fscanf(fp,"%lf",&vec->ve[i])) < 1 )
371 #elif REAL == FLOAT
372 if ((io_code=fscanf(fp,"%f",&vec->ve[i])) < 1 )
373 #endif
374 error(io_code==EOF ? 7 : 6,"bfin_vec");
375
376 return (vec);
377 }
378
379 /**************************************************************************
380 Output routines
381 **************************************************************************/
382 static char *format = "%14.9g ";
383
384 char *setformat(f_string)
385 char *f_string;
386 {
387 char *old_f_string;
388 old_f_string = format;
389 if ( f_string != (char *)NULL && *f_string != '\0' )
390 format = f_string;
391
392 return old_f_string;
393 }
394
395 void m_foutput(fp,a)
396 FILE *fp;
397 MAT *a;
398 {
399 u_int i, j, tmp;
400
401 if ( a == (MAT *)NULL )
402 { fprintf(fp,"Matrix: NULL\n"); return; }
403 fprintf(fp,"Matrix: %d by %d\n",a->m,a->n);
404 if ( a->me == (Real **)NULL )
405 { fprintf(fp,"NULL\n"); return; }
406 for ( i=0; i<a->m; i++ ) /* for each row... */
407 {
408 fprintf(fp,"row %u: ",i);
409 for ( j=0, tmp=2; j<a->n; j++, tmp++ )
410 { /* for each col in row... */
411 fprintf(fp,format,a->me[i][j]);
412 if ( ! (tmp % 5) ) putc('\n',fp);
413 }
414 if ( tmp % 5 != 1 ) putc('\n',fp);
415 }
416 }
417
418 void px_foutput(fp,px)
419 FILE *fp;
420 PERM *px;
421 {
422 u_int i;
423
424 if ( px == (PERM *)NULL )
425 { fprintf(fp,"Permutation: NULL\n"); return; }
426 fprintf(fp,"Permutation: size: %u\n",px->size);
427 if ( px->pe == (u_int *)NULL )
428 { fprintf(fp,"NULL\n"); return; }
429 for ( i=0; i<px->size; i++ )
430 if ( ! (i % 8) && i != 0 )
431 fprintf(fp,"\n %u->%u ",i,px->pe[i]);
432 else
433 fprintf(fp,"%u->%u ",i,px->pe[i]);
434 fprintf(fp,"\n");
435 }
436
437 void v_foutput(fp,x)
438 FILE *fp;
439 VEC *x;
440 {
441 u_int i, tmp;
442
443 if ( x == (VEC *)NULL )
444 { fprintf(fp,"Vector: NULL\n"); return; }
445 fprintf(fp,"Vector: dim: %d\n",x->dim);
446 if ( x->ve == (Real *)NULL )
447 { fprintf(fp,"NULL\n"); return; }
448 for ( i=0, tmp=0; i<x->dim; i++, tmp++ )
449 {
450 fprintf(fp,format,x->ve[i]);
451 if ( tmp % 5 == 4 ) putc('\n',fp);
452 }
453 if ( tmp % 5 != 0 ) putc('\n',fp);
454 }
455
456
457 void m_dump(fp,a)
458 FILE *fp;
459 MAT *a;
460 {
461 u_int i, j, tmp;
462
463 if ( a == (MAT *)NULL )
464 { fprintf(fp,"Matrix: NULL\n"); return; }
465 fprintf(fp,"Matrix: %d by %d @ 0x%lx\n",a->m,a->n,(long)a);
466 fprintf(fp,"\tmax_m = %d, max_n = %d, max_size = %d\n",
467 a->max_m, a->max_n, a->max_size);
468 if ( a->me == (Real **)NULL )
469 { fprintf(fp,"NULL\n"); return; }
470 fprintf(fp,"a->me @ 0x%lx\n",(long)(a->me));
471 fprintf(fp,"a->base @ 0x%lx\n",(long)(a->base));
472 for ( i=0; i<a->m; i++ ) /* for each row... */
473 {
474 fprintf(fp,"row %u: @ 0x%lx ",i,(long)(a->me[i]));
475 for ( j=0, tmp=2; j<a->n; j++, tmp++ )
476 { /* for each col in row... */
477 fprintf(fp,format,a->me[i][j]);
478 if ( ! (tmp % 5) ) putc('\n',fp);
479 }
480 if ( tmp % 5 != 1 ) putc('\n',fp);
481 }
482 }
483
484 void px_dump(fp,px)
485 FILE *fp;
486 PERM *px;
487 {
488 u_int i;
489
490 if ( ! px )
491 { fprintf(fp,"Permutation: NULL\n"); return; }
492 fprintf(fp,"Permutation: size: %u @ 0x%lx\n",px->size,(long)(px));
493 if ( ! px->pe )
494 { fprintf(fp,"NULL\n"); return; }
495 fprintf(fp,"px->pe @ 0x%lx\n",(long)(px->pe));
496 for ( i=0; i<px->size; i++ )
497 fprintf(fp,"%u->%u ",i,px->pe[i]);
498 fprintf(fp,"\n");
499 }
500
501
502 void v_dump(fp,x)
503 FILE *fp;
504 VEC *x;
505 {
506 u_int i, tmp;
507
508 if ( ! x )
509 { fprintf(fp,"Vector: NULL\n"); return; }
510 fprintf(fp,"Vector: dim: %d @ 0x%lx\n",x->dim,(long)(x));
511 if ( ! x->ve )
512 { fprintf(fp,"NULL\n"); return; }
513 fprintf(fp,"x->ve @ 0x%lx\n",(long)(x->ve));
514 for ( i=0, tmp=0; i<x->dim; i++, tmp++ )
515 {
516 fprintf(fp,format,x->ve[i]);
517 if ( tmp % 5 == 4 ) putc('\n',fp);
518 }
519 if ( tmp % 5 != 0 ) putc('\n',fp);
520 }
521
+0
-391
interface/src/scilab/src/c/meminfo.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* meminfo.c revised 22/11/93 */
27
28 /*
29 contains basic functions, types and arrays
30 to keep track of memory allocation/deallocation
31 */
32
33 #include <stdio.h>
34 #include "matrix.h"
35 #include "meminfo.h"
36 #ifdef COMPLEX
37 #include "zmatrix.h"
38 #endif
39 #ifdef SPARSE
40 #include "sparse.h"
41 #include "iter.h"
42 #endif
43
44 static char rcsid[] = "$Id: meminfo.c 3690 2010-09-02 09:55:19Z lsaavedr $";
45
46 /* this array is defined further in this file */
47 extern MEM_CONNECT mem_connect[MEM_CONNECT_MAX_LISTS];
48
49
50 /* names of types */
51 static char *mem_type_names[] = {
52 "MAT",
53 "BAND",
54 "PERM",
55 "VEC",
56 "IVEC"
57 #ifdef SPARSE
58 ,"ITER",
59 "SPROW",
60 "SPMAT"
61 #endif
62 #ifdef COMPLEX
63 ,"ZVEC",
64 "ZMAT"
65 #endif
66 };
67
68
69 #define MEM_NUM_STD_TYPES (sizeof(mem_type_names)/sizeof(mem_type_names[0]))
70
71
72 /* local array for keeping track of memory */
73 static MEM_ARRAY mem_info_sum[MEM_NUM_STD_TYPES];
74
75
76 /* for freeing various types */
77 static int (*mem_free_funcs[MEM_NUM_STD_TYPES])() = {
78 m_free,
79 bd_free,
80 px_free,
81 v_free,
82 iv_free
83 #ifdef SPARSE
84 ,iter_free,
85 sprow_free,
86 sp_free
87 #endif
88 #ifdef COMPLEX
89 ,zv_free,
90 zm_free
91 #endif
92 };
93
94
95
96 /* it is a global variable for passing
97 pointers to local arrays defined here */
98 MEM_CONNECT mem_connect[MEM_CONNECT_MAX_LISTS] = {
99 { mem_type_names, mem_free_funcs, MEM_NUM_STD_TYPES,
100 mem_info_sum }
101 };
102
103
104 /* attach a new list of types */
105
106 int mem_attach_list(list, ntypes, type_names, free_funcs, info_sum)
107 int list,ntypes; /* number of a list and number of types there */
108 char *type_names[]; /* list of names of types */
109 int (*free_funcs[])(); /* list of releasing functions */
110 MEM_ARRAY info_sum[]; /* local table */
111 {
112 if (list < 0 || list >= MEM_CONNECT_MAX_LISTS)
113 return -1;
114
115 if (type_names == NULL || free_funcs == NULL
116 || info_sum == NULL || ntypes < 0)
117 return -1;
118
119 /* if a list exists do not overwrite */
120 if ( mem_connect[list].ntypes != 0 )
121 error(E_OVERWRITE,"mem_attach_list");
122
123 mem_connect[list].ntypes = ntypes;
124 mem_connect[list].type_names = type_names;
125 mem_connect[list].free_funcs = free_funcs;
126 mem_connect[list].info_sum = info_sum;
127 return 0;
128 }
129
130
131 /* release a list of types */
132 int mem_free_vars(list)
133 int list;
134 {
135 if (list < 0 || list >= MEM_CONNECT_MAX_LISTS)
136 return -1;
137
138 mem_connect[list].ntypes = 0;
139 mem_connect[list].type_names = NULL;
140 mem_connect[list].free_funcs = NULL;
141 mem_connect[list].info_sum = NULL;
142
143 return 0;
144 }
145
146
147
148 /* check if list is attached */
149
150 int mem_is_list_attached(list)
151 int list;
152 {
153 if ( list < 0 || list >= MEM_CONNECT_MAX_LISTS )
154 return FALSE;
155
156 if ( mem_connect[list].type_names != NULL &&
157 mem_connect[list].free_funcs != NULL &&
158 mem_connect[list].info_sum != NULL)
159 return TRUE;
160 else return FALSE;
161 }
162
163 /* to print out the contents of mem_connect[list] */
164
165 void mem_dump_list(fp,list)
166 FILE *fp;
167 int list;
168 {
169 int i;
170 MEM_CONNECT *mlist;
171
172 if ( list < 0 || list >= MEM_CONNECT_MAX_LISTS )
173 return;
174
175 mlist = &mem_connect[list];
176 fprintf(fp," %15s[%d]:\n","CONTENTS OF mem_connect",list);
177 fprintf(fp," %-7s %-12s %-9s %s\n",
178 "name of",
179 "alloc.", "# alloc.",
180 "address"
181 );
182 fprintf(fp," %-7s %-12s %-9s %s\n",
183 " type",
184 "bytes", "variables",
185 "of *_free()"
186 );
187
188 for (i=0; i < mlist->ntypes; i++)
189 fprintf(fp," %-7s %-12ld %-9d %p\n",
190 mlist->type_names[i], mlist->info_sum[i].bytes,
191 mlist->info_sum[i].numvar, mlist->free_funcs[i]
192 );
193
194 fprintf(fp,"\n");
195 }
196
197
198
199 /*=============================================================*/
200
201
202 /* local variables */
203
204 static int mem_switched_on = MEM_SWITCH_ON_DEF; /* on/off */
205
206
207 /* switch on/off memory info */
208
209 int mem_info_on(sw)
210 int sw;
211 {
212 int old = mem_switched_on;
213
214 mem_switched_on = sw;
215 return old;
216 }
217
218 #ifdef ANSI_C
219 int mem_info_is_on(void)
220 #else
221 int mem_info_is_on()
222 #endif
223 {
224 return mem_switched_on;
225 }
226
227
228 /* information about allocated memory */
229
230 /* return the number of allocated bytes for type 'type' */
231
232 long mem_info_bytes(type,list)
233 int type,list;
234 {
235 if ( list < 0 || list >= MEM_CONNECT_MAX_LISTS )
236 return 0l;
237 if ( !mem_switched_on || type < 0
238 || type >= mem_connect[list].ntypes
239 || mem_connect[list].free_funcs[type] == NULL )
240 return 0l;
241
242 return mem_connect[list].info_sum[type].bytes;
243 }
244
245 /* return the number of allocated variables for type 'type' */
246 int mem_info_numvar(type,list)
247 int type,list;
248 {
249 if ( list < 0 || list >= MEM_CONNECT_MAX_LISTS )
250 return 0l;
251 if ( !mem_switched_on || type < 0
252 || type >= mem_connect[list].ntypes
253 || mem_connect[list].free_funcs[type] == NULL )
254 return 0l;
255
256 return mem_connect[list].info_sum[type].numvar;
257 }
258
259
260
261 /* print out memory info to the file fp */
262 void mem_info_file(fp,list)
263 FILE *fp;
264 int list;
265 {
266 unsigned int type;
267 long t = 0l, d;
268 int n = 0, nt = 0;
269 MEM_CONNECT *mlist;
270
271 if (!mem_switched_on) return;
272 if ( list < 0 || list >= MEM_CONNECT_MAX_LISTS )
273 return;
274
275 if (list == 0)
276 fprintf(fp," MEMORY INFORMATION (standard types):\n");
277 else
278 fprintf(fp," MEMORY INFORMATION (list no. %d):\n",list);
279
280 mlist = &mem_connect[list];
281
282 for (type=0; type < mlist->ntypes; type++) {
283 if (mlist->type_names[type] == NULL ) continue;
284 d = mlist->info_sum[type].bytes;
285 t += d;
286 n = mlist->info_sum[type].numvar;
287 nt += n;
288 fprintf(fp," type %-7s %10ld alloc. byte%c %6d alloc. variable%c\n",
289 mlist->type_names[type], d, (d!=1 ? 's' : ' '),
290 n, (n!=1 ? 's' : ' '));
291 }
292
293 fprintf(fp," %-12s %10ld alloc. byte%c %6d alloc. variable%c\n\n",
294 "total:",t, (t!=1 ? 's' : ' '),
295 nt, (nt!=1 ? 's' : ' '));
296 }
297
298
299 /* function for memory information */
300
301
302 /* mem_bytes_list
303
304 Arguments:
305 type - the number of type;
306 old_size - old size of allocated memory (in bytes);
307 new_size - new size of allocated memory (in bytes);
308 list - list of types
309 */
310
311
312 void mem_bytes_list(type,old_size,new_size,list)
313 int type,list;
314 int old_size,new_size;
315 {
316 MEM_CONNECT *mlist;
317
318 if ( list < 0 || list >= MEM_CONNECT_MAX_LISTS )
319 return;
320
321 mlist = &mem_connect[list];
322 if ( type < 0 || type >= mlist->ntypes
323 || mlist->free_funcs[type] == NULL )
324 return;
325
326 if ( old_size < 0 || new_size < 0 )
327 error(E_NEG,"mem_bytes_list");
328
329 mlist->info_sum[type].bytes += new_size - old_size;
330
331 /* check if the number of bytes is non-negative */
332 if ( old_size > 0 ) {
333
334 if (mlist->info_sum[type].bytes < 0)
335 {
336 fprintf(stderr,
337 "\n WARNING !! memory info: allocated memory is less than 0\n");
338 fprintf(stderr,"\t TYPE %s \n\n", mlist->type_names[type]);
339
340 if ( !isatty(fileno(stdout)) ) {
341 fprintf(stdout,
342 "\n WARNING !! memory info: allocated memory is less than 0\n");
343 fprintf(stdout,"\t TYPE %s \n\n", mlist->type_names[type]);
344 }
345 }
346 }
347 }
348
349
350 /* mem_numvar_list
351
352 Arguments:
353 type - the number of type;
354 num - # of variables allocated (> 0) or deallocated ( < 0)
355 list - list of types
356 */
357
358
359 void mem_numvar_list(type,num,list)
360 int type,list,num;
361 {
362 MEM_CONNECT *mlist;
363
364 if ( list < 0 || list >= MEM_CONNECT_MAX_LISTS )
365 return;
366
367 mlist = &mem_connect[list];
368 if ( type < 0 || type >= mlist->ntypes
369 || mlist->free_funcs[type] == NULL )
370 return;
371
372 mlist->info_sum[type].numvar += num;
373
374 /* check if the number of variables is non-negative */
375 if ( num < 0 ) {
376
377 if (mlist->info_sum[type].numvar < 0)
378 {
379 fprintf(stderr,
380 "\n WARNING !! memory info: allocated # of variables is less than 0\n");
381 fprintf(stderr,"\t TYPE %s \n\n", mlist->type_names[type]);
382 if ( !isatty(fileno(stdout)) ) {
383 fprintf(stdout,
384 "\n WARNING !! memory info: allocated # of variables is less than 0\n");
385 fprintf(stdout,"\t TYPE %s \n\n", mlist->type_names[type]);
386 }
387 }
388 }
389 }
390
+0
-155
interface/src/scilab/src/c/meminfo.h less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* meminfo.h 26/08/93 */
27 /* changed 11/12/93 */
28
29
30 #ifndef MEM_INFOH
31 #define MEM_INFOH
32
33
34
35 /* for hash table in mem_stat.c */
36 /* Note: the hash size should be a prime, or at very least odd */
37 #define MEM_HASHSIZE 509
38 #define MEM_HASHSIZE_FILE "meminfo.h"
39
40
41 /* default: memory information is off */
42 /* set it to 1 if you want it all the time */
43 #define MEM_SWITCH_ON_DEF 0
44
45
46 /* available standard types */
47 #define TYPE_NULL (-1)
48 #define TYPE_MAT 0
49 #define TYPE_BAND 1
50 #define TYPE_PERM 2
51 #define TYPE_VEC 3
52 #define TYPE_IVEC 4
53
54 #ifdef SPARSE
55 #define TYPE_ITER 5
56 #define TYPE_SPROW 6
57 #define TYPE_SPMAT 7
58 #endif
59
60 #ifdef COMPLEX
61 #ifdef SPARSE
62 #define TYPE_ZVEC 8
63 #define TYPE_ZMAT 9
64 #else
65 #define TYPE_ZVEC 5
66 #define TYPE_ZMAT 6
67 #endif
68 #endif
69
70 /* structure for memory information */
71 typedef struct {
72 long bytes; /* # of allocated bytes for each type (summary) */
73 int numvar; /* # of allocated variables for each type */
74 } MEM_ARRAY;
75
76
77
78 #ifdef ANSI_C
79
80 int mem_info_is_on(void);
81 int mem_info_on(int sw);
82
83 long mem_info_bytes(int type,int list);
84 int mem_info_numvar(int type,int list);
85 void mem_info_file(FILE * fp,int list);
86
87 void mem_bytes_list(int type,int old_size,int new_size,
88 int list);
89 void mem_numvar_list(int type, int num, int list);
90
91 int mem_stat_reg_list(void **var,int type,int list);
92 int mem_stat_mark(int mark);
93 int mem_stat_free_list(int mark,int list);
94 int mem_stat_show_mark(void);
95 void mem_stat_dump(FILE *fp,int list);
96 int mem_attach_list(int list,int ntypes,char *type_names[],
97 int (*free_funcs[])(), MEM_ARRAY info_sum[]);
98 int mem_free_vars(int list);
99 int mem_is_list_attached(int list);
100 void mem_dump_list(FILE *fp,int list);
101 int mem_stat_reg_vars(int list,int type,...);
102
103 #else
104 int mem_info_is_on();
105 int mem_info_on();
106
107 long mem_info_bytes();
108 int mem_info_numvar();
109 void mem_info_file();
110
111 void mem_bytes_list();
112 void mem_numvar_list();
113
114 int mem_stat_reg_list();
115 int mem_stat_mark();
116 int mem_stat_free_list();
117 int mem_stat_show_mark();
118 void mem_stat_dump();
119 int mem_attach_list();
120 int mem_free_vars();
121 int mem_is_list_attached();
122 void mem_dump_list();
123 int mem_stat_reg_vars();
124
125 #endif
126
127 /* macros */
128
129 #define mem_info() mem_info_file(stdout,0)
130
131 #define mem_stat_reg(var,type) mem_stat_reg_list((void **)var,type,0)
132 #define MEM_STAT_REG(var,type) mem_stat_reg_list((void **)&(var),type,0)
133 #define mem_stat_free(mark) mem_stat_free_list(mark,0)
134
135 #define mem_bytes(type,old_size,new_size) \
136 mem_bytes_list(type,old_size,new_size,0)
137
138 #define mem_numvar(type,num) mem_numvar_list(type,num,0)
139
140
141 /* internal type */
142
143 typedef struct {
144 char **type_names; /* array of names of types (strings) */
145 int (**free_funcs)(); /* array of functions for releasing types */
146 unsigned ntypes; /* max number of types */
147 MEM_ARRAY *info_sum; /* local array for keeping track of memory */
148 } MEM_CONNECT;
149
150 /* max number of lists of types */
151 #define MEM_CONNECT_MAX_LISTS 5
152
153
154 #endif
+0
-1003
interface/src/scilab/src/c/memory.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* memory.c 1.3 11/25/87 */
27
28 #include "matrix.h"
29
30
31 static char rcsid[] = "$Id: memory.c 3690 2010-09-02 09:55:19Z lsaavedr $";
32
33 /* m_get -- gets an mxn matrix (in MAT form) by dynamic memory allocation */
34 MAT *m_get(m,n)
35 int m,n;
36 {
37 MAT *matrix;
38 int i;
39
40 if (m < 0 || n < 0)
41 error(E_NEG,"m_get");
42
43 if ((matrix=NEW(MAT)) == (MAT *)NULL )
44 error(E_MEM,"m_get");
45 else if (mem_info_is_on()) {
46 mem_bytes(TYPE_MAT,0,sizeof(MAT));
47 mem_numvar(TYPE_MAT,1);
48 }
49
50 matrix->m = m; matrix->n = matrix->max_n = n;
51 matrix->max_m = m; matrix->max_size = m*n;
52 #ifndef SEGMENTED
53 if ((matrix->base = NEW_A(m*n,Real)) == (Real *)NULL )
54 {
55 free(matrix);
56 error(E_MEM,"m_get");
57 }
58 else if (mem_info_is_on()) {
59 mem_bytes(TYPE_MAT,0,m*n*sizeof(Real));
60 }
61 #else
62 matrix->base = (Real *)NULL;
63 #endif
64 if ((matrix->me = (Real **)calloc(m,sizeof(Real *))) ==
65 (Real **)NULL )
66 { free(matrix->base); free(matrix);
67 error(E_MEM,"m_get");
68 }
69 else if (mem_info_is_on()) {
70 mem_bytes(TYPE_MAT,0,m*sizeof(Real *));
71 }
72
73 #ifndef SEGMENTED
74 /* set up pointers */
75 for ( i=0; i<m; i++ )
76 matrix->me[i] = &(matrix->base[i*n]);
77 #else
78 for ( i = 0; i < m; i++ )
79 if ( (matrix->me[i]=NEW_A(n,Real)) == (Real *)NULL )
80 error(E_MEM,"m_get");
81 else if (mem_info_is_on()) {
82 mem_bytes(TYPE_MAT,0,n*sizeof(Real));
83 }
84 #endif
85
86 return (matrix);
87 }
88
89
90 /* px_get -- gets a PERM of given 'size' by dynamic memory allocation
91 -- Note: initialized to the identity permutation */
92 PERM *px_get(size)
93 int size;
94 {
95 PERM *permute;
96 int i;
97
98 if (size < 0)
99 error(E_NEG,"px_get");
100
101 if ((permute=NEW(PERM)) == (PERM *)NULL )
102 error(E_MEM,"px_get");
103 else if (mem_info_is_on()) {
104 mem_bytes(TYPE_PERM,0,sizeof(PERM));
105 mem_numvar(TYPE_PERM,1);
106 }
107
108 permute->size = permute->max_size = size;
109 if ((permute->pe = NEW_A(size,u_int)) == (u_int *)NULL )
110 error(E_MEM,"px_get");
111 else if (mem_info_is_on()) {
112 mem_bytes(TYPE_PERM,0,size*sizeof(u_int));
113 }
114
115 for ( i=0; i<size; i++ )
116 permute->pe[i] = i;
117
118 return (permute);
119 }
120
121 /* v_get -- gets a VEC of dimension 'dim'
122 -- Note: initialized to zero */
123 VEC *v_get(size)
124 int size;
125 {
126 VEC *vector;
127
128 if (size < 0)
129 error(E_NEG,"v_get");
130
131 if ((vector=NEW(VEC)) == (VEC *)NULL )
132 error(E_MEM,"v_get");
133 else if (mem_info_is_on()) {
134 mem_bytes(TYPE_VEC,0,sizeof(VEC));
135 mem_numvar(TYPE_VEC,1);
136 }
137
138 vector->dim = vector->max_dim = size;
139 if ((vector->ve=NEW_A(size,Real)) == (Real *)NULL )
140 {
141 free(vector);
142 error(E_MEM,"v_get");
143 }
144 else if (mem_info_is_on()) {
145 mem_bytes(TYPE_VEC,0,size*sizeof(Real));
146 }
147
148 return (vector);
149 }
150
151 /* m_free -- returns MAT & asoociated memory back to memory heap */
152 int m_free(mat)
153 MAT *mat;
154 {
155 #ifdef SEGMENTED
156 int i;
157 #endif
158
159 if ( mat==(MAT *)NULL || (int)(mat->m) < 0 ||
160 (int)(mat->n) < 0 )
161 /* don't trust it */
162 return (-1);
163
164 #ifndef SEGMENTED
165 if ( mat->base != (Real *)NULL ) {
166 if (mem_info_is_on()) {
167 mem_bytes(TYPE_MAT,mat->max_m*mat->max_n*sizeof(Real),0);
168 }
169 free((char *)(mat->base));
170 }
171 #else
172 for ( i = 0; i < mat->max_m; i++ )
173 if ( mat->me[i] != (Real *)NULL ) {
174 if (mem_info_is_on()) {
175 mem_bytes(TYPE_MAT,mat->max_n*sizeof(Real),0);
176 }
177 free((char *)(mat->me[i]));
178 }
179 #endif
180 if ( mat->me != (Real **)NULL ) {
181 if (mem_info_is_on()) {
182 mem_bytes(TYPE_MAT,mat->max_m*sizeof(Real *),0);
183 }
184 free((char *)(mat->me));
185 }
186
187 if (mem_info_is_on()) {
188 mem_bytes(TYPE_MAT,sizeof(MAT),0);
189 mem_numvar(TYPE_MAT,-1);
190 }
191 free((char *)mat);
192
193 return (0);
194 }
195
196
197
198 /* px_free -- returns PERM & asoociated memory back to memory heap */
199 int px_free(px)
200 PERM *px;
201 {
202 if ( px==(PERM *)NULL || (int)(px->size) < 0 )
203 /* don't trust it */
204 return (-1);
205
206 if ( px->pe == (u_int *)NULL ) {
207 if (mem_info_is_on()) {
208 mem_bytes(TYPE_PERM,sizeof(PERM),0);
209 mem_numvar(TYPE_PERM,-1);
210 }
211 free((char *)px);
212 }
213 else
214 {
215 if (mem_info_is_on()) {
216 mem_bytes(TYPE_PERM,sizeof(PERM)+px->max_size*sizeof(u_int),0);
217 mem_numvar(TYPE_PERM,-1);
218 }
219 free((char *)px->pe);
220 free((char *)px);
221 }
222
223 return (0);
224 }
225
226
227
228 /* v_free -- returns VEC & asoociated memory back to memory heap */
229 int v_free(vec)
230 VEC *vec;
231 {
232 if ( vec==(VEC *)NULL || (int)(vec->dim) < 0 )
233 /* don't trust it */
234 return (-1);
235
236 if ( vec->ve == (Real *)NULL ) {
237 if (mem_info_is_on()) {
238 mem_bytes(TYPE_VEC,sizeof(VEC),0);
239 mem_numvar(TYPE_VEC,-1);
240 }
241 free((char *)vec);
242 }
243 else
244 {
245 if (mem_info_is_on()) {
246 mem_bytes(TYPE_VEC,sizeof(VEC)+vec->max_dim*sizeof(Real),0);
247 mem_numvar(TYPE_VEC,-1);
248 }
249 free((char *)vec->ve);
250 free((char *)vec);
251 }
252
253 return (0);
254 }
255
256
257
258 /* m_resize -- returns the matrix A of size new_m x new_n; A is zeroed
259 -- if A == NULL on entry then the effect is equivalent to m_get() */
260 MAT *m_resize(A,new_m,new_n)
261 MAT *A;
262 int new_m, new_n;
263 {
264 int i;
265 int new_max_m, new_max_n, new_size, old_m, old_n;
266
267 if (new_m < 0 || new_n < 0)
268 error(E_NEG,"m_resize");
269
270 if ( ! A )
271 return m_get(new_m,new_n);
272
273 /* nothing was changed */
274 if (new_m == A->m && new_n == A->n)
275 return A;
276
277 old_m = A->m; old_n = A->n;
278 if ( new_m > A->max_m )
279 { /* re-allocate A->me */
280 if (mem_info_is_on()) {
281 mem_bytes(TYPE_MAT,A->max_m*sizeof(Real *),
282 new_m*sizeof(Real *));
283 }
284
285 A->me = RENEW(A->me,new_m,Real *);
286 if ( ! A->me )
287 error(E_MEM,"m_resize");
288 }
289 new_max_m = max(new_m,A->max_m);
290 new_max_n = max(new_n,A->max_n);
291
292 #ifndef SEGMENTED
293 new_size = new_max_m*new_max_n;
294 if ( new_size > A->max_size )
295 { /* re-allocate A->base */
296 if (mem_info_is_on()) {
297 mem_bytes(TYPE_MAT,A->max_m*A->max_n*sizeof(Real),
298 new_size*sizeof(Real));
299 }
300
301 A->base = RENEW(A->base,new_size,Real);
302 if ( ! A->base )
303 error(E_MEM,"m_resize");
304 A->max_size = new_size;
305 }
306
307 /* now set up A->me[i] */
308 for ( i = 0; i < new_m; i++ )
309 A->me[i] = &(A->base[i*new_n]);
310
311 /* now shift data in matrix */
312 if ( old_n > new_n )
313 {
314 for ( i = 1; i < min(old_m,new_m); i++ )
315 MEM_COPY((char *)&(A->base[i*old_n]),
316 (char *)&(A->base[i*new_n]),
317 sizeof(Real)*new_n);
318 }
319 else if ( old_n < new_n )
320 {
321 for ( i = (int)(min(old_m,new_m))-1; i > 0; i-- )
322 { /* copy & then zero extra space */
323 MEM_COPY((char *)&(A->base[i*old_n]),
324 (char *)&(A->base[i*new_n]),
325 sizeof(Real)*old_n);
326 __zero__(&(A->base[i*new_n+old_n]),(new_n-old_n));
327 }
328 __zero__(&(A->base[old_n]),(new_n-old_n));
329 A->max_n = new_n;
330 }
331 /* zero out the new rows.. */
332 for ( i = old_m; i < new_m; i++ )
333 __zero__(&(A->base[i*new_n]),new_n);
334 #else
335 if ( A->max_n < new_n )
336 {
337 Real *tmp;
338
339 for ( i = 0; i < A->max_m; i++ )
340 {
341 if (mem_info_is_on()) {
342 mem_bytes(TYPE_MAT,A->max_n*sizeof(Real),
343 new_max_n*sizeof(Real));
344 }
345
346 if ( (tmp = RENEW(A->me[i],new_max_n,Real)) == NULL )
347 error(E_MEM,"m_resize");
348 else {
349 A->me[i] = tmp;
350 }
351 }
352 for ( i = A->max_m; i < new_max_m; i++ )
353 {
354 if ( (tmp = NEW_A(new_max_n,Real)) == NULL )
355 error(E_MEM,"m_resize");
356 else {
357 A->me[i] = tmp;
358
359 if (mem_info_is_on()) {
360 mem_bytes(TYPE_MAT,0,new_max_n*sizeof(Real));
361 }
362 }
363 }
364 }
365 else if ( A->max_m < new_m )
366 {
367 for ( i = A->max_m; i < new_m; i++ )
368 if ( (A->me[i] = NEW_A(new_max_n,Real)) == NULL )
369 error(E_MEM,"m_resize");
370 else if (mem_info_is_on()) {
371 mem_bytes(TYPE_MAT,0,new_max_n*sizeof(Real));
372 }
373
374 }
375
376 if ( old_n < new_n )
377 {
378 for ( i = 0; i < old_m; i++ )
379 __zero__(&(A->me[i][old_n]),new_n-old_n);
380 }
381
382 /* zero out the new rows.. */
383 for ( i = old_m; i < new_m; i++ )
384 __zero__(A->me[i],new_n);
385 #endif
386
387 A->max_m = new_max_m;
388 A->max_n = new_max_n;
389 A->max_size = A->max_m*A->max_n;
390 A->m = new_m; A->n = new_n;
391
392 return A;
393 }
394
395 /* px_resize -- returns the permutation px with size new_size
396 -- px is set to the identity permutation */
397 PERM *px_resize(px,new_size)
398 PERM *px;
399 int new_size;
400 {
401 int i;
402
403 if (new_size < 0)
404 error(E_NEG,"px_resize");
405
406 if ( ! px )
407 return px_get(new_size);
408
409 /* nothing is changed */
410 if (new_size == px->size)
411 return px;
412
413 if ( new_size > px->max_size )
414 {
415 if (mem_info_is_on()) {
416 mem_bytes(TYPE_PERM,px->max_size*sizeof(u_int),
417 new_size*sizeof(u_int));
418 }
419 px->pe = RENEW(px->pe,new_size,u_int);
420 if ( ! px->pe )
421 error(E_MEM,"px_resize");
422 px->max_size = new_size;
423 }
424 if ( px->size <= new_size )
425 /* extend permutation */
426 for ( i = px->size; i < new_size; i++ )
427 px->pe[i] = i;
428 else
429 for ( i = 0; i < new_size; i++ )
430 px->pe[i] = i;
431
432 px->size = new_size;
433
434 return px;
435 }
436
437 /* v_resize -- returns the vector x with dim new_dim
438 -- x is set to the zero vector */
439 VEC *v_resize(x,new_dim)
440 VEC *x;
441 int new_dim;
442 {
443
444 if (new_dim < 0)
445 error(E_NEG,"v_resize");
446
447 if ( ! x )
448 return v_get(new_dim);
449
450 /* nothing is changed */
451 if (new_dim == x->dim)
452 return x;
453
454 if ( x->max_dim == 0 ) /* assume that it's from sub_vec */
455 return v_get(new_dim);
456
457 if ( new_dim > x->max_dim )
458 {
459 if (mem_info_is_on()) {
460 mem_bytes(TYPE_VEC,x->max_dim*sizeof(Real),
461 new_dim*sizeof(Real));
462 }
463
464 x->ve = RENEW(x->ve,new_dim,Real);
465 if ( ! x->ve )
466 error(E_MEM,"v_resize");
467 x->max_dim = new_dim;
468 }
469
470 if ( new_dim > x->dim )
471 __zero__(&(x->ve[x->dim]),new_dim - x->dim);
472 x->dim = new_dim;
473
474 return x;
475 }
476
477
478
479
480 /* Varying number of arguments */
481 /* other functions of this type are in sparse.c and zmemory.c */
482
483
484
485 #ifdef ANSI_C
486
487
488 /* To allocate memory to many arguments.
489 The function should be called:
490 v_get_vars(dim,&x,&y,&z,...,NULL);
491 where
492 int dim;
493 VEC *x, *y, *z,...;
494 The last argument should be NULL !
495 dim is the length of vectors x,y,z,...
496 returned value is equal to the number of allocated variables
497 Other gec_... functions are similar.
498 */
499
500 int v_get_vars(int dim,...)
501 {
502 va_list ap;
503 int i=0;
504 VEC **par;
505
506 va_start(ap, dim);
507 while (par = va_arg(ap,VEC **)) { /* NULL ends the list*/
508 *par = v_get(dim);
509 i++;
510 }
511
512 va_end(ap);
513 return i;
514 }
515
516
517 int iv_get_vars(int dim,...)
518 {
519 va_list ap;
520 int i=0;
521 IVEC **par;
522
523 va_start(ap, dim);
524 while (par = va_arg(ap,IVEC **)) { /* NULL ends the list*/
525 *par = iv_get(dim);
526 i++;
527 }
528
529 va_end(ap);
530 return i;
531 }
532
533 int m_get_vars(int m,int n,...)
534 {
535 va_list ap;
536 int i=0;
537 MAT **par;
538
539 va_start(ap, n);
540 while (par = va_arg(ap,MAT **)) { /* NULL ends the list*/
541 *par = m_get(m,n);
542 i++;
543 }
544
545 va_end(ap);
546 return i;
547 }
548
549 int px_get_vars(int dim,...)
550 {
551 va_list ap;
552 int i=0;
553 PERM **par;
554
555 va_start(ap, dim);
556 while (par = va_arg(ap,PERM **)) { /* NULL ends the list*/
557 *par = px_get(dim);
558 i++;
559 }
560
561 va_end(ap);
562 return i;
563 }
564
565
566
567 /* To resize memory for many arguments.
568 The function should be called:
569 v_resize_vars(new_dim,&x,&y,&z,...,NULL);
570 where
571 int new_dim;
572 VEC *x, *y, *z,...;
573 The last argument should be NULL !
574 rdim is the resized length of vectors x,y,z,...
575 returned value is equal to the number of allocated variables.
576 If one of x,y,z,.. arguments is NULL then memory is allocated to this
577 argument.
578 Other *_resize_list() functions are similar.
579 */
580
581 int v_resize_vars(int new_dim,...)
582 {
583 va_list ap;
584 int i=0;
585 VEC **par;
586
587 va_start(ap, new_dim);
588 while (par = va_arg(ap,VEC **)) { /* NULL ends the list*/
589 *par = v_resize(*par,new_dim);
590 i++;
591 }
592
593 va_end(ap);
594 return i;
595 }
596
597
598
599 int iv_resize_vars(int new_dim,...)
600 {
601 va_list ap;
602 int i=0;
603 IVEC **par;
604
605 va_start(ap, new_dim);
606 while (par = va_arg(ap,IVEC **)) { /* NULL ends the list*/
607 *par = iv_resize(*par,new_dim);
608 i++;
609 }
610
611 va_end(ap);
612 return i;
613 }
614
615 int m_resize_vars(int m,int n,...)
616 {
617 va_list ap;
618 int i=0;
619 MAT **par;
620
621 va_start(ap, n);
622 while (par = va_arg(ap,MAT **)) { /* NULL ends the list*/
623 *par = m_resize(*par,m,n);
624 i++;
625 }
626
627 va_end(ap);
628 return i;
629 }
630
631
632 int px_resize_vars(int new_dim,...)
633 {
634 va_list ap;
635 int i=0;
636 PERM **par;
637
638 va_start(ap, new_dim);
639 while (par = va_arg(ap,PERM **)) { /* NULL ends the list*/
640 *par = px_resize(*par,new_dim);
641 i++;
642 }
643
644 va_end(ap);
645 return i;
646 }
647
648 /* To deallocate memory for many arguments.
649 The function should be called:
650 v_free_vars(&x,&y,&z,...,NULL);
651 where
652 VEC *x, *y, *z,...;
653 The last argument should be NULL !
654 There must be at least one not NULL argument.
655 returned value is equal to the number of allocated variables.
656 Returned value of x,y,z,.. is VNULL.
657 Other *_free_list() functions are similar.
658 */
659
660
661 int v_free_vars(VEC **pv,...)
662 {
663 va_list ap;
664 int i=1;
665 VEC **par;
666
667 v_free(*pv);
668 *pv = VNULL;
669 va_start(ap, pv);
670 while (par = va_arg(ap,VEC **)) { /* NULL ends the list*/
671 v_free(*par);
672 *par = VNULL;
673 i++;
674 }
675
676 va_end(ap);
677 return i;
678 }
679
680
681 int iv_free_vars(IVEC **ipv,...)
682 {
683 va_list ap;
684 int i=1;
685 IVEC **par;
686
687 iv_free(*ipv);
688 *ipv = IVNULL;
689 va_start(ap, ipv);
690 while (par = va_arg(ap,IVEC **)) { /* NULL ends the list*/
691 iv_free(*par);
692 *par = IVNULL;
693 i++;
694 }
695
696 va_end(ap);
697 return i;
698 }
699
700
701 int px_free_vars(PERM **vpx,...)
702 {
703 va_list ap;
704 int i=1;
705 PERM **par;
706
707 px_free(*vpx);
708 *vpx = PNULL;
709 va_start(ap, vpx);
710 while (par = va_arg(ap,PERM **)) { /* NULL ends the list*/
711 px_free(*par);
712 *par = PNULL;
713 i++;
714 }
715
716 va_end(ap);
717 return i;
718 }
719
720 int m_free_vars(MAT **va,...)
721 {
722 va_list ap;
723 int i=1;
724 MAT **par;
725
726 m_free(*va);
727 *va = MNULL;
728 va_start(ap, va);
729 while (par = va_arg(ap,MAT **)) { /* NULL ends the list*/
730 m_free(*par);
731 *par = MNULL;
732 i++;
733 }
734
735 va_end(ap);
736 return i;
737 }
738
739
740 #elif VARARGS
741 /* old varargs is used */
742
743
744
745 /* To allocate memory to many arguments.
746 The function should be called:
747 v_get_vars(dim,&x,&y,&z,...,VNULL);
748 where
749 int dim;
750 VEC *x, *y, *z,...;
751 The last argument should be VNULL !
752 dim is the length of vectors x,y,z,...
753 */
754
755 int v_get_vars(va_alist) va_dcl
756 {
757 va_list ap;
758 int dim,i=0;
759 VEC **par;
760
761 va_start(ap);
762 dim = va_arg(ap,int);
763 while (par = va_arg(ap,VEC **)) { /* NULL ends the list*/
764 *par = v_get(dim);
765 i++;
766 }
767
768 va_end(ap);
769 return i;
770 }
771
772
773 int iv_get_vars(va_alist) va_dcl
774 {
775 va_list ap;
776 int i=0, dim;
777 IVEC **par;
778
779 va_start(ap);
780 dim = va_arg(ap,int);
781 while (par = va_arg(ap,IVEC **)) { /* NULL ends the list*/
782 *par = iv_get(dim);
783 i++;
784 }
785
786 va_end(ap);
787 return i;
788 }
789
790 int m_get_vars(va_alist) va_dcl
791 {
792 va_list ap;
793 int i=0, n, m;
794 MAT **par;
795
796 va_start(ap);
797 m = va_arg(ap,int);
798 n = va_arg(ap,int);
799 while (par = va_arg(ap,MAT **)) { /* NULL ends the list*/
800 *par = m_get(m,n);
801 i++;
802 }
803
804 va_end(ap);
805 return i;
806 }
807
808
809
810 int px_get_vars(va_alist) va_dcl
811 {
812 va_list ap;
813 int i=0, dim;
814 PERM **par;
815
816 va_start(ap);
817 dim = va_arg(ap,int);
818 while (par = va_arg(ap,PERM **)) { /* NULL ends the list*/
819 *par = px_get(dim);
820 i++;
821 }
822
823 va_end(ap);
824 return i;
825 }
826
827
828
829 /* To resize memory for many arguments.
830 The function should be called:
831 v_resize_vars(new_dim,&x,&y,&z,...,NULL);
832 where
833 int new_dim;
834 VEC *x, *y, *z,...;
835 The last argument should be NULL !
836 rdim is the resized length of vectors x,y,z,...
837 returned value is equal to the number of allocated variables.
838 If one of x,y,z,.. arguments is NULL then memory is allocated to this
839 argument.
840 Other *_resize_list() functions are similar.
841 */
842
843 int v_resize_vars(va_alist) va_dcl
844 {
845 va_list ap;
846 int i=0, new_dim;
847 VEC **par;
848
849 va_start(ap);
850 new_dim = va_arg(ap,int);
851 while (par = va_arg(ap,VEC **)) { /* NULL ends the list*/
852 *par = v_resize(*par,new_dim);
853 i++;
854 }
855
856 va_end(ap);
857 return i;
858 }
859
860
861
862 int iv_resize_vars(va_alist) va_dcl
863 {
864 va_list ap;
865 int i=0, new_dim;
866 IVEC **par;
867
868 va_start(ap);
869 new_dim = va_arg(ap,int);
870 while (par = va_arg(ap,IVEC **)) { /* NULL ends the list*/
871 *par = iv_resize(*par,new_dim);
872 i++;
873 }
874
875 va_end(ap);
876 return i;
877 }
878
879 int m_resize_vars(va_alist) va_dcl
880 {
881 va_list ap;
882 int i=0, m, n;
883 MAT **par;
884
885 va_start(ap);
886 m = va_arg(ap,int);
887 n = va_arg(ap,int);
888 while (par = va_arg(ap,MAT **)) { /* NULL ends the list*/
889 *par = m_resize(*par,m,n);
890 i++;
891 }
892
893 va_end(ap);
894 return i;
895 }
896
897 int px_resize_vars(va_alist) va_dcl
898 {
899 va_list ap;
900 int i=0, new_dim;
901 PERM **par;
902
903 va_start(ap);
904 new_dim = va_arg(ap,int);
905 while (par = va_arg(ap,PERM **)) { /* NULL ends the list*/
906 *par = px_resize(*par,new_dim);
907 i++;
908 }
909
910 va_end(ap);
911 return i;
912 }
913
914
915 /* To deallocate memory for many arguments.
916 The function should be called:
917 v_free_vars(&x,&y,&z,...,NULL);
918 where
919 VEC *x, *y, *z,...;
920 The last argument should be NULL !
921 returned value is equal to the number of allocated variables.
922 Returned value of x,y,z,.. is VNULL.
923 Other *_free_list() functions are similar.
924 */
925
926
927 int v_free_vars(va_alist) va_dcl
928 {
929 va_list ap;
930 int i=0;
931 VEC **par;
932
933 va_start(ap);
934 while (par = va_arg(ap,VEC **)) { /* NULL ends the list*/
935 v_free(*par);
936 *par = VNULL;
937 i++;
938 }
939
940 va_end(ap);
941 return i;
942 }
943
944
945
946 int iv_free_vars(va_alist) va_dcl
947 {
948 va_list ap;
949 int i=0;
950 IVEC **par;
951
952 va_start(ap);
953 while (par = va_arg(ap,IVEC **)) { /* NULL ends the list*/
954 iv_free(*par);
955 *par = IVNULL;
956 i++;
957 }
958
959 va_end(ap);
960 return i;
961 }
962
963
964 int px_free_vars(va_alist) va_dcl
965 {
966 va_list ap;
967 int i=0;
968 PERM **par;
969
970 va_start(ap);
971 while (par = va_arg(ap,PERM **)) { /* NULL ends the list*/
972 px_free(*par);
973 *par = PNULL;
974 i++;
975 }
976
977 va_end(ap);
978 return i;
979 }
980
981 int m_free_vars(va_alist) va_dcl
982 {
983 va_list ap;
984 int i=0;
985 MAT **par;
986
987 va_start(ap);
988 while (par = va_arg(ap,MAT **)) { /* NULL ends the list*/
989 m_free(*par);
990 *par = MNULL;
991 i++;
992 }
993
994 va_end(ap);
995 return i;
996 }
997
998
999
1000 #endif /* VARARGS */
1001
1002
+0
-383
interface/src/scilab/src/c/memstat.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* mem_stat.c 6/09/93 */
27
28 /* Deallocation of static arrays */
29
30
31 #include <stdio.h>
32 #include "matrix.h"
33 #include "meminfo.h"
34 #ifdef COMPLEX
35 #include "zmatrix.h"
36 #endif
37 #ifdef SPARSE
38 #include "sparse.h"
39 #include "iter.h"
40 #endif
41
42 static char rcsid[] = "$Id: memstat.c 3690 2010-09-02 09:55:19Z lsaavedr $";
43
44 /* global variable */
45
46 extern MEM_CONNECT mem_connect[MEM_CONNECT_MAX_LISTS];
47
48
49 /* local type */
50
51 typedef struct {
52 void **var; /* for &A, where A is a pointer */
53 int type; /* type of A */
54 int mark; /* what mark is chosen */
55 } MEM_STAT_STRUCT;
56
57
58 /* local variables */
59
60 /* how many marks are used */
61 static int mem_stat_mark_many = 0;
62
63 /* current mark */
64 static int mem_stat_mark_curr = 0;
65
66
67 static MEM_STAT_STRUCT mem_stat_var[MEM_HASHSIZE];
68
69 /* array of indices (+1) to mem_stat_var */
70 static unsigned int mem_hash_idx[MEM_HASHSIZE];
71
72 /* points to the first unused element in mem_hash_idx */
73 static unsigned int mem_hash_idx_end = 0;
74
75
76
77 /* hashing function */
78
79 static unsigned int mem_hash(ptr)
80 void **ptr;
81 {
82 unsigned long lp = (unsigned long)ptr;
83
84 return (lp % MEM_HASHSIZE);
85 }
86
87
88 /* look for a place in mem_stat_var */
89 static int mem_lookup(var)
90 void **var;
91 {
92 int k, j;
93
94 k = mem_hash(var);
95
96 if (mem_stat_var[k].var == var) {
97 return -1;
98 }
99 else if (mem_stat_var[k].var == NULL) {
100 return k;
101 }
102 else { /* look for an empty place */
103 j = k;
104 while (mem_stat_var[j].var != var && j < MEM_HASHSIZE
105 && mem_stat_var[j].var != NULL)
106 j++;
107
108 if (mem_stat_var[j].var == NULL) return j;
109 else if (mem_stat_var[j].var == var) return -1;
110 else { /* if (j == MEM_HASHSIZE) */
111 j = 0;
112 while (mem_stat_var[j].var != var && j < k
113 && mem_stat_var[j].var != NULL)
114 j++;
115 if (mem_stat_var[j].var == NULL) return j;
116 else if (mem_stat_var[j].var == var) return -1;
117 else { /* if (j == k) */
118 fprintf(stderr,
119 "\n WARNING !!! static memory: mem_stat_var is too small\n");
120 fprintf(stderr,
121 " Increase MEM_HASHSIZE in file: %s (currently = %d)\n\n",
122 MEM_HASHSIZE_FILE, MEM_HASHSIZE);
123 if ( !isatty(fileno(stdout)) ) {
124 fprintf(stdout,
125 "\n WARNING !!! static memory: mem_stat_var is too small\n");
126 fprintf(stdout,
127 " Increase MEM_HASHSIZE in file: %s (currently = %d)\n\n",
128 MEM_HASHSIZE_FILE, MEM_HASHSIZE);
129 }
130 error(E_MEM,"mem_lookup");
131 }
132 }
133 }
134
135 return -1;
136 }
137
138
139 /* register static variables;
140 Input arguments:
141 var - variable to be registered,
142 type - type of this variable;
143 list - list of types
144
145 returned value < 0 --> error,
146 returned value == 0 --> not registered,
147 returned value >= 0 --> registered with this mark;
148 */
149
150 int mem_stat_reg_list(var,type,list)
151 void **var;
152 int type,list;
153 {
154 int n;
155
156 if ( list < 0 || list >= MEM_CONNECT_MAX_LISTS )
157 return -1;
158
159 if (mem_stat_mark_curr == 0) return 0; /* not registered */
160 if (var == NULL) return -1; /* error */
161
162 if ( type < 0 || type >= mem_connect[list].ntypes ||
163 mem_connect[list].free_funcs[type] == NULL )
164 {
165 warning(WARN_WRONG_TYPE,"mem_stat_reg_list");
166 return -1;
167 }
168
169 if ((n = mem_lookup(var)) >= 0) {
170 mem_stat_var[n].var = var;
171 mem_stat_var[n].mark = mem_stat_mark_curr;
172 mem_stat_var[n].type = type;
173 /* save n+1, not n */
174 mem_hash_idx[mem_hash_idx_end++] = n+1;
175 }
176
177 return mem_stat_mark_curr;
178 }
179
180
181 /* set a mark;
182 Input argument:
183 mark - positive number denoting a mark;
184 returned:
185 mark if mark > 0,
186 0 if mark == 0,
187 -1 if mark is negative.
188 */
189
190 int mem_stat_mark(mark)
191 int mark;
192 {
193 if (mark < 0) {
194 mem_stat_mark_curr = 0;
195 return -1; /* error */
196 }
197 else if (mark == 0) {
198 mem_stat_mark_curr = 0;
199 return 0;
200 }
201
202 mem_stat_mark_curr = mark;
203 mem_stat_mark_many++;
204
205 return mark;
206 }
207
208
209
210 /* deallocate static variables;
211 Input argument:
212 mark - a positive number denoting the mark;
213
214 Returned:
215 -1 if mark < 0 (error);
216 0 if mark == 0;
217 */
218
219 int mem_stat_free_list(mark,list)
220 int mark,list;
221 {
222 u_int i,j;
223 int (*free_fn)();
224
225 if ( list < 0 || list >= MEM_CONNECT_MAX_LISTS
226 || mem_connect[list].free_funcs == NULL )
227 return -1;
228
229 if (mark < 0) {
230 mem_stat_mark_curr = 0;
231 return -1;
232 }
233 else if (mark == 0) {
234 mem_stat_mark_curr = 0;
235 return 0;
236 }
237
238 if (mem_stat_mark_many <= 0) {
239 warning(WARN_NO_MARK,"mem_stat_free");
240 return -1;
241 }
242
243 /* deallocate the marked variables */
244 for (i=0; i < mem_hash_idx_end; i++) {
245 j = mem_hash_idx[i];
246 if (j == 0) continue;
247 else {
248 j--;
249 if (mem_stat_var[j].mark == mark) {
250 free_fn = mem_connect[list].free_funcs[mem_stat_var[j].type];
251 if ( free_fn != NULL )
252 (*free_fn)(*mem_stat_var[j].var);
253 else
254 warning(WARN_WRONG_TYPE,"mem_stat_free");
255
256 *(mem_stat_var[j].var) = NULL;
257 mem_stat_var[j].var = NULL;
258 mem_stat_var[j].mark = 0;
259 mem_hash_idx[i] = 0;
260 }
261 }
262 }
263
264 while (mem_hash_idx_end > 0 && mem_hash_idx[mem_hash_idx_end-1] == 0)
265 mem_hash_idx_end--;
266
267 mem_stat_mark_curr = 0;
268 mem_stat_mark_many--;
269 return 0;
270 }
271
272
273 /* only for diagnostic purposes */
274
275 void mem_stat_dump(fp,list)
276 FILE *fp;
277 int list;
278 {
279 u_int i,j,k=1;
280
281 if ( list < 0 || list >= MEM_CONNECT_MAX_LISTS
282 || mem_connect[list].free_funcs == NULL )
283 return;
284
285 fprintf(fp," Array mem_stat_var (list no. %d):\n",list);
286 for (i=0; i < mem_hash_idx_end; i++) {
287 j = mem_hash_idx[i];
288 if (j == 0) continue;
289 else {
290 j--;
291 fprintf(fp," %d. var = 0x%p, type = %s, mark = %d\n",
292 k,mem_stat_var[j].var,
293 mem_stat_var[j].type < mem_connect[list].ntypes &&
294 mem_connect[list].free_funcs[mem_stat_var[j].type] != NULL ?
295 mem_connect[list].type_names[(int)mem_stat_var[j].type] :
296 "???",
297 mem_stat_var[j].mark);
298 k++;
299 }
300 }
301
302 fprintf(fp,"\n");
303 }
304
305
306 /* query function about the current mark */
307 #ifdef ANSI_C
308 int mem_stat_show_mark(void)
309 #else
310 int mem_stat_show_mark()
311 #endif
312 {
313 return mem_stat_mark_curr;
314 }
315
316
317 /* Varying number of arguments */
318
319
320 #ifdef ANSI_C
321
322 /* To allocate memory to many arguments.
323 The function should be called:
324 mem_stat_vars(list,type,&v1,&v2,&v3,...,VNULL);
325 where
326 int list,type;
327 void **v1, **v2, **v3,...;
328 The last argument should be VNULL !
329 type is the type of variables v1,v2,v3,...
330 (of course they must be of the same type)
331 */
332
333 int mem_stat_reg_vars(int list,int type,...)
334 {
335 va_list ap;
336 int i=0;
337 void **par;
338
339 va_start(ap, type);
340 while (par = va_arg(ap,void **)) { /* NULL ends the list*/
341 mem_stat_reg_list(par,type,list);
342 i++;
343 }
344
345 va_end(ap);
346 return i;
347 }
348
349 #elif VARARGS
350 /* old varargs is used */
351
352 /* To allocate memory to many arguments.
353 The function should be called:
354 mem_stat_vars(list,type,&v1,&v2,&v3,...,VNULL);
355 where
356 int list,type;
357 void **v1, **v2, **v3,...;
358 The last argument should be VNULL !
359 type is the type of variables v1,v2,v3,...
360 (of course they must be of the same type)
361 */
362
363 int mem_stat_reg_vars(va_alist) va_dcl
364 {
365 va_list ap;
366 int type,list,i=0;
367 void **par;
368
369 va_start(ap);
370 list = va_arg(ap,int);
371 type = va_arg(ap,int);
372 while (par = va_arg(ap,void **)) { /* NULL ends the list*/
373 mem_stat_reg_list(par,type,list);
374 i++;
375 }
376
377 va_end(ap);
378 return i;
379 }
380
381
382 #endif
+0
-398
interface/src/scilab/src/c/mfunc.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 This file contains routines for computing functions of matrices
28 especially polynomials and exponential functions
29 Copyright (C) Teresa Leyk and David Stewart, 1993
30 */
31
32 #include <stdio.h>
33 #include "matrix.h"
34 #include "matrix2.h"
35 #include <math.h>
36
37 static char rcsid[] = "$Id: mfunc.c 3690 2010-09-02 09:55:19Z lsaavedr $";
38
39
40
41 /* _m_pow -- computes integer powers of a square matrix A, A^p
42 -- uses tmp as temporary workspace */
43 MAT *_m_pow(A, p, tmp, out)
44 MAT *A, *tmp, *out;
45 int p;
46 {
47 int it_cnt, k, max_bit;
48
49 /*
50 File containing routines for evaluating matrix functions
51 esp. the exponential function
52 */
53
54 #define Z(k) (((k) & 1) ? tmp : out)
55
56 if ( ! A )
57 error(E_NULL,"_m_pow");
58 if ( A->m != A->n )
59 error(E_SQUARE,"_m_pow");
60 if ( p < 0 )
61 error(E_NEG,"_m_pow");
62 out = m_resize(out,A->m,A->n);
63 tmp = m_resize(tmp,A->m,A->n);
64
65 if ( p == 0 )
66 m_ident(out);
67 else if ( p > 0 )
68 {
69 it_cnt = 1;
70 for ( max_bit = 0; ; max_bit++ )
71 if ( (p >> (max_bit+1)) == 0 )
72 break;
73 tmp = m_copy(A,tmp);
74
75 for ( k = 0; k < max_bit; k++ )
76 {
77 m_mlt(Z(it_cnt),Z(it_cnt),Z(it_cnt+1));
78 it_cnt++;
79 if ( p & (1 << (max_bit-1)) )
80 {
81 m_mlt(A,Z(it_cnt),Z(it_cnt+1));
82 /* m_copy(Z(it_cnt),out); */
83 it_cnt++;
84 }
85 p <<= 1;
86 }
87 if (it_cnt & 1)
88 out = m_copy(Z(it_cnt),out);
89 }
90
91 return out;
92
93 #undef Z
94 }
95
96 /* m_pow -- computes integer powers of a square matrix A, A^p */
97 MAT *m_pow(A, p, out)
98 MAT *A, *out;
99 int p;
100 {
101 static MAT *wkspace, *tmp;
102
103 if ( ! A )
104 error(E_NULL,"m_pow");
105 if ( A->m != A->n )
106 error(E_SQUARE,"m_pow");
107
108 wkspace = m_resize(wkspace,A->m,A->n);
109 MEM_STAT_REG(wkspace,TYPE_MAT);
110 if ( p < 0 )
111 {
112 tmp = m_resize(tmp,A->m,A->n);
113 MEM_STAT_REG(tmp,TYPE_MAT);
114 tracecatch(m_inverse(A,tmp),"m_pow");
115 return _m_pow(tmp, -p, wkspace, out);
116 }
117 else
118 return _m_pow(A, p, wkspace, out);
119
120 }
121
122 /**************************************************/
123
124 /* _m_exp -- compute matrix exponential of A and save it in out
125 -- uses Pade approximation followed by repeated squaring
126 -- eps is the tolerance used for the Pade approximation
127 -- A is not changed
128 -- q_out - degree of the Pade approximation (q_out,q_out)
129 -- j_out - the power of 2 for scaling the matrix A
130 such that ||A/2^j_out|| <= 0.5
131 */
132 MAT *_m_exp(A,eps,out,q_out,j_out)
133 MAT *A,*out;
134 double eps;
135 int *q_out, *j_out;
136 {
137 static MAT *D = MNULL, *Apow = MNULL, *N = MNULL, *Y = MNULL;
138 static VEC *c1 = VNULL, *tmp = VNULL;
139 VEC y0, y1; /* additional structures */
140 static PERM *pivot = PNULL;
141 int j, k, l, q, r, s, j2max, t;
142 double inf_norm, eqq, power2, c, sign;
143
144 if ( ! A )
145 error(E_SIZES,"_m_exp");
146 if ( A->m != A->n )
147 error(E_SIZES,"_m_exp");
148 if ( A == out )
149 error(E_INSITU,"_m_exp");
150 if ( eps < 0.0 )
151 error(E_RANGE,"_m_exp");
152 else if (eps == 0.0)
153 eps = MACHEPS;
154
155 N = m_resize(N,A->m,A->n);
156 D = m_resize(D,A->m,A->n);
157 Apow = m_resize(Apow,A->m,A->n);
158 out = m_resize(out,A->m,A->n);
159
160 MEM_STAT_REG(N,TYPE_MAT);
161 MEM_STAT_REG(D,TYPE_MAT);
162 MEM_STAT_REG(Apow,TYPE_MAT);
163
164 /* normalise A to have ||A||_inf <= 1 */
165 inf_norm = m_norm_inf(A);
166 if (inf_norm <= 0.0) {
167 m_ident(out);
168 *q_out = -1;
169 *j_out = 0;
170 return out;
171 }
172 else {
173 j2max = floor(1+log(inf_norm)/log(2.0));
174 j2max = max(0, j2max);
175 }
176
177 power2 = 1.0;
178 for ( k = 1; k <= j2max; k++ )
179 power2 *= 2;
180 power2 = 1.0/power2;
181 if ( j2max > 0 )
182 sm_mlt(power2,A,A);
183
184 /* compute order for polynomial approximation */
185 eqq = 1.0/6.0;
186 for ( q = 1; eqq > eps; q++ )
187 eqq /= 16.0*(2.0*q+1.0)*(2.0*q+3.0);
188
189 /* construct vector of coefficients */
190 c1 = v_resize(c1,q+1);
191 MEM_STAT_REG(c1,TYPE_VEC);
192 c1->ve[0] = 1.0;
193 for ( k = 1; k <= q; k++ )
194 c1->ve[k] = c1->ve[k-1]*(q-k+1)/((2*q-k+1)*(double)k);
195
196 tmp = v_resize(tmp,A->n);
197 MEM_STAT_REG(tmp,TYPE_VEC);
198
199 s = (int)floor(sqrt((double)q/2.0));
200 if ( s <= 0 ) s = 1;
201 _m_pow(A,s,out,Apow);
202 r = q/s;
203
204 Y = m_resize(Y,s,A->n);
205 MEM_STAT_REG(Y,TYPE_MAT);
206 /* y0 and y1 are pointers to rows of Y, N and D */
207 y0.dim = y0.max_dim = A->n;
208 y1.dim = y1.max_dim = A->n;
209
210 m_zero(Y);
211 m_zero(N);
212 m_zero(D);
213
214 for( j = 0; j < A->n; j++ )
215 {
216 if (j > 0)
217 Y->me[0][j-1] = 0.0;
218 y0.ve = Y->me[0];
219 y0.ve[j] = 1.0;
220 for ( k = 0; k < s-1; k++ )
221 {
222 y1.ve = Y->me[k+1];
223 mv_mlt(A,&y0,&y1);
224 y0.ve = y1.ve;
225 }
226
227 y0.ve = N->me[j];
228 y1.ve = D->me[j];
229 t = s*r;
230 for ( l = 0; l <= q-t; l++ )
231 {
232 c = c1->ve[t+l];
233 sign = ((t+l) & 1) ? -1.0 : 1.0;
234 __mltadd__(y0.ve,Y->me[l],c, Y->n);
235 __mltadd__(y1.ve,Y->me[l],c*sign,Y->n);
236 }
237
238 for (k=1; k <= r; k++)
239 {
240 v_copy(mv_mlt(Apow,&y0,tmp),&y0);
241 v_copy(mv_mlt(Apow,&y1,tmp),&y1);
242 t = s*(r-k);
243 for (l=0; l < s; l++)
244 {
245 c = c1->ve[t+l];
246 sign = ((t+l) & 1) ? -1.0 : 1.0;
247 __mltadd__(y0.ve,Y->me[l],c, Y->n);
248 __mltadd__(y1.ve,Y->me[l],c*sign,Y->n);
249 }
250 }
251 }
252
253 pivot = px_resize(pivot,A->m);
254 MEM_STAT_REG(pivot,TYPE_PERM);
255
256 /* note that N and D are transposed,
257 therefore we use LUTsolve;
258 out is saved row-wise, and must be transposed
259 after this */
260
261 LUfactor(D,pivot);
262 for (k=0; k < A->n; k++)
263 {
264 y0.ve = N->me[k];
265 y1.ve = out->me[k];
266 LUTsolve(D,pivot,&y0,&y1);
267 }
268 m_transp(out,out);
269
270
271 /* Use recursive squaring to turn the normalised exponential to the
272 true exponential */
273
274 #define Z(k) ((k) & 1 ? Apow : out)
275
276 for( k = 1; k <= j2max; k++)
277 m_mlt(Z(k-1),Z(k-1),Z(k));
278
279 if (Z(k) == out)
280 m_copy(Apow,out);
281
282 /* output parameters */
283 *j_out = j2max;
284 *q_out = q;
285
286 /* restore the matrix A */
287 sm_mlt(1.0/power2,A,A);
288 return out;
289
290 #undef Z
291 }
292
293
294 /* simple interface for _m_exp */
295 MAT *m_exp(A,eps,out)
296 MAT *A,*out;
297 double eps;
298 {
299 int q_out, j_out;
300
301 return _m_exp(A,eps,out,&q_out,&j_out);
302 }
303
304
305 /*--------------------------------*/
306
307 /* m_poly -- computes sum_i a[i].A^i, where i=0,1,...dim(a);
308 -- uses C. Van Loan's fast and memory efficient method */
309 MAT *m_poly(A,a,out)
310 MAT *A,*out;
311 VEC *a;
312 {
313 static MAT *Apow = MNULL, *Y = MNULL;
314 static VEC *tmp;
315 VEC y0, y1; /* additional vectors */
316 int j, k, l, q, r, s, t;
317
318 if ( ! A || ! a )
319 error(E_NULL,"m_poly");
320 if ( A->m != A->n )
321 error(E_SIZES,"m_poly");
322 if ( A == out )
323 error(E_INSITU,"m_poly");
324
325 out = m_resize(out,A->m,A->n);
326 Apow = m_resize(Apow,A->m,A->n);
327 MEM_STAT_REG(Apow,TYPE_MAT);
328 tmp = v_resize(tmp,A->n);
329 MEM_STAT_REG(tmp,TYPE_VEC);
330
331 q = a->dim - 1;
332 if ( q == 0 ) {
333 m_zero(out);
334 for (j=0; j < out->n; j++)
335 out->me[j][j] = a->ve[0];
336 return out;
337 }
338 else if ( q == 1) {
339 sm_mlt(a->ve[1],A,out);
340 for (j=0; j < out->n; j++)
341 out->me[j][j] += a->ve[0];
342 return out;
343 }
344
345 s = (int)floor(sqrt((double)q/2.0));
346 if ( s <= 0 ) s = 1;
347 _m_pow(A,s,out,Apow);
348 r = q/s;
349
350 Y = m_resize(Y,s,A->n);
351 MEM_STAT_REG(Y,TYPE_MAT);
352 /* pointers to rows of Y */
353 y0.dim = y0.max_dim = A->n;
354 y1.dim = y1.max_dim = A->n;
355
356 m_zero(Y);
357 m_zero(out);
358
359 #define Z(k) ((k) & 1 ? tmp : &y0)
360 #define ZZ(k) ((k) & 1 ? tmp->ve : y0.ve)
361
362 for( j = 0; j < A->n; j++)
363 {
364 if( j > 0 )
365 Y->me[0][j-1] = 0.0;
366 Y->me[0][j] = 1.0;
367
368 y0.ve = Y->me[0];
369 for (k = 0; k < s-1; k++)
370 {
371 y1.ve = Y->me[k+1];
372 mv_mlt(A,&y0,&y1);
373 y0.ve = y1.ve;
374 }
375
376 y0.ve = out->me[j];
377
378 t = s*r;
379 for ( l = 0; l <= q-t; l++ )
380 __mltadd__(y0.ve,Y->me[l],a->ve[t+l],Y->n);
381
382 for (k=1; k <= r; k++)
383 {
384 mv_mlt(Apow,Z(k-1),Z(k));
385 t = s*(r-k);
386 for (l=0; l < s; l++)
387 __mltadd__(ZZ(k),Y->me[l],a->ve[t+l],Y->n);
388 }
389 if (Z(k) == &y0) v_copy(tmp,&y0);
390 }
391
392 m_transp(out,out);
393
394 return out;
395 }
396
397
+0
-198
interface/src/scilab/src/c/norm.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 A collection of functions for computing norms: scaled and unscaled
28 */
29 static char rcsid[] = "$Id: norm.c 3690 2010-09-02 09:55:19Z lsaavedr $";
30
31 #include <stdio.h>
32 #include "matrix.h"
33 #include <math.h>
34
35
36 /* _v_norm1 -- computes (scaled) 1-norms of vectors */
37 double _v_norm1(x,scale)
38 VEC *x, *scale;
39 {
40 int i, dim;
41 Real s, sum;
42
43 if ( x == (VEC *)NULL )
44 error(E_NULL,"_v_norm1");
45 dim = x->dim;
46
47 sum = 0.0;
48 if ( scale == (VEC *)NULL )
49 for ( i = 0; i < dim; i++ )
50 sum += fabs(x->ve[i]);
51 else if ( scale->dim < dim )
52 error(E_SIZES,"_v_norm1");
53 else
54 for ( i = 0; i < dim; i++ )
55 { s = scale->ve[i];
56 sum += ( s== 0.0 ) ? fabs(x->ve[i]) : fabs(x->ve[i]/s);
57 }
58
59 return sum;
60 }
61
62 /* square -- returns x^2 */
63 double square(x)
64 double x;
65 { return x*x; }
66
67 /* cube -- returns x^3 */
68 double cube(x)
69 double x;
70 { return x*x*x; }
71
72 /* _v_norm2 -- computes (scaled) 2-norm (Euclidean norm) of vectors */
73 double _v_norm2(x,scale)
74 VEC *x, *scale;
75 {
76 int i, dim;
77 Real s, sum;
78
79 if ( x == (VEC *)NULL )
80 error(E_NULL,"_v_norm2");
81 dim = x->dim;
82
83 sum = 0.0;
84 if ( scale == (VEC *)NULL )
85 for ( i = 0; i < dim; i++ )
86 sum += square(x->ve[i]);
87 else if ( scale->dim < dim )
88 error(E_SIZES,"_v_norm2");
89 else
90 for ( i = 0; i < dim; i++ )
91 { s = scale->ve[i];
92 sum += ( s== 0.0 ) ? square(x->ve[i]) :
93 square(x->ve[i]/s);
94 }
95
96 return sqrt(sum);
97 }
98
99 #define max(a,b) ((a) > (b) ? (a) : (b))
100
101 /* _v_norm_inf -- computes (scaled) infinity-norm (supremum norm) of vectors */
102 double _v_norm_inf(x,scale)
103 VEC *x, *scale;
104 {
105 int i, dim;
106 Real s, maxval, tmp;
107
108 if ( x == (VEC *)NULL )
109 error(E_NULL,"_v_norm_inf");
110 dim = x->dim;
111
112 maxval = 0.0;
113 if ( scale == (VEC *)NULL )
114 for ( i = 0; i < dim; i++ )
115 { tmp = fabs(x->ve[i]);
116 maxval = max(maxval,tmp);
117 }
118 else if ( scale->dim < dim )
119 error(E_SIZES,"_v_norm_inf");
120 else
121 for ( i = 0; i < dim; i++ )
122 { s = scale->ve[i];
123 tmp = ( s== 0.0 ) ? fabs(x->ve[i]) : fabs(x->ve[i]/s);
124 maxval = max(maxval,tmp);
125 }
126
127 return maxval;
128 }
129
130 /* m_norm1 -- compute matrix 1-norm -- unscaled */
131 double m_norm1(A)
132 MAT *A;
133 {
134 int i, j, m, n;
135 Real maxval, sum;
136
137 if ( A == (MAT *)NULL )
138 error(E_NULL,"m_norm1");
139
140 m = A->m; n = A->n;
141 maxval = 0.0;
142
143 for ( j = 0; j < n; j++ )
144 {
145 sum = 0.0;
146 for ( i = 0; i < m; i ++ )
147 sum += fabs(A->me[i][j]);
148 maxval = max(maxval,sum);
149 }
150
151 return maxval;
152 }
153
154 /* m_norm_inf -- compute matrix infinity-norm -- unscaled */
155 double m_norm_inf(A)
156 MAT *A;
157 {
158 int i, j, m, n;
159 Real maxval, sum;
160
161 if ( A == (MAT *)NULL )
162 error(E_NULL,"m_norm_inf");
163
164 m = A->m; n = A->n;
165 maxval = 0.0;
166
167 for ( i = 0; i < m; i++ )
168 {
169 sum = 0.0;
170 for ( j = 0; j < n; j ++ )
171 sum += fabs(A->me[i][j]);
172 maxval = max(maxval,sum);
173 }
174
175 return maxval;
176 }
177
178 /* m_norm_frob -- compute matrix frobenius-norm -- unscaled */
179 double m_norm_frob(A)
180 MAT *A;
181 {
182 int i, j, m, n;
183 Real sum;
184
185 if ( A == (MAT *)NULL )
186 error(E_NULL,"m_norm_frob");
187
188 m = A->m; n = A->n;
189 sum = 0.0;
190
191 for ( i = 0; i < m; i++ )
192 for ( j = 0; j < n; j ++ )
193 sum += square(A->me[i][j]);
194
195 return sqrt(sum);
196 }
197
+0
-150
interface/src/scilab/src/c/oldnames.h less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* macros for names used in versions 1.0 and 1.1 */
27 /* 8/11/93 */
28
29
30 #ifndef OLDNAMESH
31 #define OLDNAMESH
32
33
34 /* type IVEC */
35
36 #define get_ivec iv_get
37 #define freeivec IV_FREE
38 #define cp_ivec iv_copy
39 #define fout_ivec iv_foutput
40 #define out_ivec iv_output
41 #define fin_ivec iv_finput
42 #define in_ivec iv_input
43 #define dump_ivec iv_dump
44
45
46 /* type ZVEC */
47
48 #define get_zvec zv_get
49 #define freezvec ZV_FREE
50 #define cp_zvec zv_copy
51 #define fout_zvec zv_foutput
52 #define out_zvec zv_output
53 #define fin_zvec zv_finput
54 #define in_zvec zv_input
55 #define zero_zvec zv_zero
56 #define rand_zvec zv_rand
57 #define dump_zvec zv_dump
58
59 /* type ZMAT */
60
61 #define get_zmat zm_get
62 #define freezmat ZM_FREE
63 #define cp_zmat zm_copy
64 #define fout_zmat zm_foutput
65 #define out_zmat zm_output
66 #define fin_zmat zm_finput
67 #define in_zmat zm_input
68 #define zero_zmat zm_zero
69 #define rand_zmat zm_rand
70 #define dump_zmat zm_dump
71
72 /* types SPMAT */
73
74 #define sp_mat SPMAT
75 #define sp_get_mat sp_get
76 #define sp_free_mat sp_free
77 #define sp_cp_mat sp_copy
78 #define sp_cp_mat2 sp_copy2
79 #define sp_fout_mat sp_foutput
80 #define sp_fout_mat2 sp_foutput2
81 #define sp_out_mat sp_output
82 #define sp_out_mat2 sp_output2
83 #define sp_fin_mat sp_finput
84 #define sp_in_mat sp_input
85 #define sp_zero_mat sp_zero
86 #define sp_dump_mat sp_dump
87
88
89 /* type SPROW */
90
91 #define sp_row SPROW
92 #define sp_get_idx sprow_idx
93 #define row_xpd sprow_xpd
94 #define sp_get_row sprow_get
95 #define row_set_val sprow_set_val
96 #define fout_row sprow_foutput
97 #define _row_mltadd sprow_mltadd
98 #define sp_row_copy sprow_copy
99 #define sp_row_merge sprow_merge
100 #define sp_row_ip sprow_ip
101 #define sp_row_sqr sprow_sqr
102
103
104 /* type MAT */
105
106 #define get_mat m_get
107 #define freemat M_FREE
108 #define cp_mat m_copy
109 #define fout_mat m_foutput
110 #define out_mat m_output
111 #define fin_mat m_finput
112 #define in_mat m_input
113 #define zero_mat m_zero
114 #define id_mat m_ident
115 #define rand_mat m_rand
116 #define ones_mat m_ones
117 #define dump_mat m_dump
118
119 /* type VEC */
120
121 #define get_vec v_get
122 #define freevec V_FREE
123 #define cp_vec v_copy
124 #define fout_vec v_foutput
125 #define out_vec v_output
126 #define fin_vec v_finput
127 #define in_vec v_input
128 #define zero_vec v_zero
129 #define rand_vec v_rand
130 #define ones_vec v_ones
131 #define dump_vec v_dump
132
133
134 /* type PERM */
135
136 #define get_perm px_get
137 #define freeperm PX_FREE
138 #define cp_perm px_copy
139 #define fout_perm px_foutput
140 #define out_perm px_output
141 #define fin_perm px_finput
142 #define in_perm px_input
143 #define id_perm px_ident
144 #define px_id px_ident
145 #define trans_px px_transp
146 #define sign_px px_sign
147 #define dump_perm px_dump
148
149 #endif
+0
-164
interface/src/scilab/src/c/otherio.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 File for doing assorted I/O operations not invlolving
28 MAT/VEC/PERM objects
29 */
30 static char rcsid[] = "$Id: otherio.c 3690 2010-09-02 09:55:19Z lsaavedr $";
31
32 #include <stdio.h>
33 #include <ctype.h>
34 #include "matrix.h"
35
36
37
38 /* scratch area -- enough for a single line */
39 static char scratch[MAXLINE+1];
40
41 /* default value for fy_or_n */
42 static int y_n_dflt = TRUE;
43
44 /* fy_or_n -- yes-or-no to question is string s
45 -- question written to stderr, input from fp
46 -- if fp is NOT a tty then return y_n_dflt */
47 int fy_or_n(fp,s)
48 FILE *fp;
49 char *s;
50 {
51 char *cp;
52
53 if ( ! isatty(fileno(fp)) )
54 return y_n_dflt;
55
56 for ( ; ; )
57 {
58 fprintf(stderr,"%s (y/n) ? ",s);
59 if ( fgets(scratch,MAXLINE,fp)==NULL )
60 error(E_INPUT,"fy_or_n");
61 cp = scratch;
62 while ( isspace(*cp) )
63 cp++;
64 if ( *cp == 'y' || *cp == 'Y' )
65 return TRUE;
66 if ( *cp == 'n' || *cp == 'N' )
67 return FALSE;
68 fprintf(stderr,"Please reply with 'y' or 'Y' for yes ");
69 fprintf(stderr,"and 'n' or 'N' for no.\n");
70 }
71 }
72
73 /* yn_dflt -- sets the value of y_n_dflt to val */
74 int yn_dflt(val)
75 int val;
76 { return y_n_dflt = val; }
77
78 /* fin_int -- return integer read from file/stream fp
79 -- prompt s on stderr if fp is a tty
80 -- check that x lies between low and high: re-prompt if
81 fp is a tty, error exit otherwise
82 -- ignore check if low > high */
83 int fin_int(fp,s,low,high)
84 FILE *fp;
85 char *s;
86 int low, high;
87 {
88 int retcode, x;
89
90 if ( ! isatty(fileno(fp)) )
91 {
92 skipjunk(fp);
93 if ( (retcode=fscanf(fp,"%d",&x)) == EOF )
94 error(E_INPUT,"fin_int");
95 if ( retcode <= 0 )
96 error(E_FORMAT,"fin_int");
97 if ( low <= high && ( x < low || x > high ) )
98 error(E_BOUNDS,"fin_int");
99 return x;
100 }
101
102 for ( ; ; )
103 {
104 fprintf(stderr,"%s: ",s);
105 if ( fgets(scratch,MAXLINE,stdin)==NULL )
106 error(E_INPUT,"fin_int");
107 retcode = sscanf(scratch,"%d",&x);
108 if ( ( retcode==1 && low > high ) ||
109 ( x >= low && x <= high ) )
110 return x;
111 fprintf(stderr,"Please type an integer in range [%d,%d].\n",
112 low,high);
113 }
114 }
115
116
117 /* fin_double -- return double read from file/stream fp
118 -- prompt s on stderr if fp is a tty
119 -- check that x lies between low and high: re-prompt if
120 fp is a tty, error exit otherwise
121 -- ignore check if low > high */
122 double fin_double(fp,s,low,high)
123 FILE *fp;
124 char *s;
125 double low, high;
126 {
127 Real retcode, x;
128
129 if ( ! isatty(fileno(fp)) )
130 {
131 skipjunk(fp);
132 #if REAL == DOUBLE
133 if ( (retcode=fscanf(fp,"%lf",&x)) == EOF )
134 #elif REAL == FLOAT
135 if ( (retcode=fscanf(fp,"%f",&x)) == EOF )
136 #endif
137 error(E_INPUT,"fin_double");
138 if ( retcode <= 0 )
139 error(E_FORMAT,"fin_double");
140 if ( low <= high && ( x < low || x > high ) )
141 error(E_BOUNDS,"fin_double");
142 return (double)x;
143 }
144
145 for ( ; ; )
146 {
147 fprintf(stderr,"%s: ",s);
148 if ( fgets(scratch,MAXLINE,stdin)==NULL )
149 error(E_INPUT,"fin_double");
150 #if REAL == DOUBLE
151 retcode = sscanf(scratch,"%lf",&x);
152 #elif REAL == FLOAT
153 retcode = sscanf(scratch,"%f",&x);
154 #endif
155 if ( ( retcode==1 && low > high ) ||
156 ( x >= low && x <= high ) )
157 return (double)x;
158 fprintf(stderr,"Please type an double in range [%g,%g].\n",
159 low,high);
160 }
161 }
162
163
+0
-357
interface/src/scilab/src/c/pxop.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* pxop.c 1.5 12/03/87 */
27
28
29 #include <stdio.h>
30 #include "matrix.h"
31
32 static char rcsid[] = "$Id: pxop.c 3690 2010-09-02 09:55:19Z lsaavedr $";
33
34 /**********************************************************************
35 Note: A permutation is often interpreted as a matrix
36 (i.e. a permutation matrix).
37 A permutation px represents a permutation matrix P where
38 P[i][j] == 1 if and only if px->pe[i] == j
39 **********************************************************************/
40
41
42 /* px_inv -- invert permutation -- in situ
43 -- taken from ACM Collected Algorithms #250 */
44 PERM *px_inv(px,out)
45 PERM *px, *out;
46 {
47 int i, j, k, n, *p;
48
49 out = px_copy(px, out);
50 n = out->size;
51 p = (int *)(out->pe);
52 for ( n--; n>=0; n-- )
53 {
54 i = p[n];
55 if ( i < 0 ) p[n] = -1 - i;
56 else if ( i != n )
57 {
58 k = n;
59 while (TRUE)
60 {
61 if ( i < 0 || i >= out->size )
62 error(E_BOUNDS,"px_inv");
63 j = p[i]; p[i] = -1 - k;
64 if ( j == n )
65 { p[n] = i; break; }
66 k = i; i = j;
67 }
68 }
69 }
70 return out;
71 }
72
73 /* px_mlt -- permutation multiplication (composition) */
74 PERM *px_mlt(px1,px2,out)
75 PERM *px1,*px2,*out;
76 {
77 u_int i,size;
78
79 if ( px1==(PERM *)NULL || px2==(PERM *)NULL )
80 error(E_NULL,"px_mlt");
81 if ( px1->size != px2->size )
82 error(E_SIZES,"px_mlt");
83 if ( px1 == out || px2 == out )
84 error(E_INSITU,"px_mlt");
85 if ( out==(PERM *)NULL || out->size < px1->size )
86 out = px_resize(out,px1->size);
87
88 size = px1->size;
89 for ( i=0; i<size; i++ )
90 if ( px2->pe[i] >= size )
91 error(E_BOUNDS,"px_mlt");
92 else
93 out->pe[i] = px1->pe[px2->pe[i]];
94
95 return out;
96 }
97
98 /* px_vec -- permute vector */
99 VEC *px_vec(px,vector,out)
100 PERM *px;
101 VEC *vector,*out;
102 {
103 u_int old_i, i, size, start;
104 Real tmp;
105
106 if ( px==(PERM *)NULL || vector==(VEC *)NULL )
107 error(E_NULL,"px_vec");
108 if ( px->size > vector->dim )
109 error(E_SIZES,"px_vec");
110 if ( out==(VEC *)NULL || out->dim < vector->dim )
111 out = v_resize(out,vector->dim);
112
113 size = px->size;
114 if ( size == 0 )
115 return v_copy(vector,out);
116 if ( out != vector )
117 {
118 for ( i=0; i<size; i++ )
119 if ( px->pe[i] >= size )
120 error(E_BOUNDS,"px_vec");
121 else
122 out->ve[i] = vector->ve[px->pe[i]];
123 }
124 else
125 { /* in situ algorithm */
126 start = 0;
127 while ( start < size )
128 {
129 old_i = start;
130 i = px->pe[old_i];
131 if ( i >= size )
132 {
133 start++;
134 continue;
135 }
136 tmp = vector->ve[start];
137 while ( TRUE )
138 {
139 vector->ve[old_i] = vector->ve[i];
140 px->pe[old_i] = i+size;
141 old_i = i;
142 i = px->pe[old_i];
143 if ( i >= size )
144 break;
145 if ( i == start )
146 {
147 vector->ve[old_i] = tmp;
148 px->pe[old_i] = i+size;
149 break;
150 }
151 }
152 start++;
153 }
154
155 for ( i = 0; i < size; i++ )
156 if ( px->pe[i] < size )
157 error(E_BOUNDS,"px_vec");
158 else
159 px->pe[i] = px->pe[i]-size;
160 }
161
162 return out;
163 }
164
165 /* pxinv_vec -- apply the inverse of px to x, returning the result in out */
166 VEC *pxinv_vec(px,x,out)
167 PERM *px;
168 VEC *x, *out;
169 {
170 u_int i, size;
171
172 if ( ! px || ! x )
173 error(E_NULL,"pxinv_vec");
174 if ( px->size > x->dim )
175 error(E_SIZES,"pxinv_vec");
176 /* if ( x == out )
177 error(E_INSITU,"pxinv_vec"); */
178 if ( ! out || out->dim < x->dim )
179 out = v_resize(out,x->dim);
180
181 size = px->size;
182 if ( size == 0 )
183 return v_copy(x,out);
184 if ( out != x )
185 {
186 for ( i=0; i<size; i++ )
187 if ( px->pe[i] >= size )
188 error(E_BOUNDS,"pxinv_vec");
189 else
190 out->ve[px->pe[i]] = x->ve[i];
191 }
192 else
193 { /* in situ algorithm --- cheat's way out */
194 px_inv(px,px);
195 px_vec(px,x,out);
196 px_inv(px,px);
197 }
198
199 return out;
200 }
201
202
203
204 /* px_transp -- transpose elements of permutation
205 -- Really multiplying a permutation by a transposition */
206 PERM *px_transp(px,i1,i2)
207 PERM *px; /* permutation to transpose */
208 u_int i1,i2; /* elements to transpose */
209 {
210 u_int temp;
211
212 if ( px==(PERM *)NULL )
213 error(E_NULL,"px_transp");
214
215 if ( i1 < px->size && i2 < px->size )
216 {
217 temp = px->pe[i1];
218 px->pe[i1] = px->pe[i2];
219 px->pe[i2] = temp;
220 }
221
222 return px;
223 }
224
225 /* myqsort -- a cheap implementation of Quicksort on integers
226 -- returns number of swaps */
227 static int myqsort(a,num)
228 int *a, num;
229 {
230 int i, j, tmp, v;
231 int numswaps;
232
233 numswaps = 0;
234 if ( num <= 1 )
235 return 0;
236
237 i = 0; j = num; v = a[0];
238 for ( ; ; )
239 {
240 while ( a[++i] < v )
241 ;
242 while ( a[--j] > v )
243 ;
244 if ( i >= j ) break;
245
246 tmp = a[i];
247 a[i] = a[j];
248 a[j] = tmp;
249 numswaps++;
250 }
251
252 tmp = a[0];
253 a[0] = a[j];
254 a[j] = tmp;
255 if ( j != 0 )
256 numswaps++;
257
258 numswaps += myqsort(&a[0],j);
259 numswaps += myqsort(&a[j+1],num-(j+1));
260
261 return numswaps;
262 }
263
264
265 /* px_sign -- compute the ``sign'' of a permutation = +/-1 where
266 px is the product of an even/odd # transpositions */
267 int px_sign(px)
268 PERM *px;
269 {
270 int numtransp;
271 PERM *px2;
272
273 if ( px==(PERM *)NULL )
274 error(E_NULL,"px_sign");
275 px2 = px_copy(px,PNULL);
276 numtransp = myqsort(px2->pe,px2->size);
277 px_free(px2);
278
279 return ( numtransp % 2 ) ? -1 : 1;
280 }
281
282
283 /* px_cols -- permute columns of matrix A; out = A.px'
284 -- May NOT be in situ */
285 MAT *px_cols(px,A,out)
286 PERM *px;
287 MAT *A, *out;
288 {
289 int i, j, m, n, px_j;
290 Real **A_me, **out_me;
291 #ifdef ANSI_C
292 MAT *m_get(int, int);
293 #else
294 extern MAT *m_get();
295 #endif
296
297 if ( ! A || ! px )
298 error(E_NULL,"px_cols");
299 if ( px->size != A->n )
300 error(E_SIZES,"px_cols");
301 if ( A == out )
302 error(E_INSITU,"px_cols");
303 m = A->m; n = A->n;
304 if ( ! out || out->m != m || out->n != n )
305 out = m_get(m,n);
306 A_me = A->me; out_me = out->me;
307
308 for ( j = 0; j < n; j++ )
309 {
310 px_j = px->pe[j];
311 if ( px_j >= n )
312 error(E_BOUNDS,"px_cols");
313 for ( i = 0; i < m; i++ )
314 out_me[i][px_j] = A_me[i][j];
315 }
316
317 return out;
318 }
319
320 /* px_rows -- permute columns of matrix A; out = px.A
321 -- May NOT be in situ */
322 MAT *px_rows(px,A,out)
323 PERM *px;
324 MAT *A, *out;
325 {
326 int i, j, m, n, px_i;
327 Real **A_me, **out_me;
328 #ifdef ANSI_C
329 MAT *m_get(int, int);
330 #else
331 extern MAT *m_get();
332 #endif
333
334 if ( ! A || ! px )
335 error(E_NULL,"px_rows");
336 if ( px->size != A->m )
337 error(E_SIZES,"px_rows");
338 if ( A == out )
339 error(E_INSITU,"px_rows");
340 m = A->m; n = A->n;
341 if ( ! out || out->m != m || out->n != n )
342 out = m_get(m,n);
343 A_me = A->me; out_me = out->me;
344
345 for ( i = 0; i < m; i++ )
346 {
347 px_i = px->pe[i];
348 if ( px_i >= m )
349 error(E_BOUNDS,"px_rows");
350 for ( j = 0; j < n; j++ )
351 out_me[i][j] = A_me[px_i][j];
352 }
353
354 return out;
355 }
356
+0
-515
interface/src/scilab/src/c/qrfactor.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 This file contains the routines needed to perform QR factorisation
28 of matrices, as well as Householder transformations.
29 The internal "factored form" of a matrix A is not quite standard.
30 The diagonal of A is replaced by the diagonal of R -- not by the 1st non-zero
31 entries of the Householder vectors. The 1st non-zero entries are held in
32 the diag parameter of QRfactor(). The reason for this non-standard
33 representation is that it enables direct use of the Usolve() function
34 rather than requiring that a seperate function be written just for this case.
35 See, e.g., QRsolve() below for more details.
36
37 */
38
39
40 static char rcsid[] = "$Id: qrfactor.c 3690 2010-09-02 09:55:19Z lsaavedr $";
41
42 #include <stdio.h>
43 #include "matrix2.h"
44 #include <math.h>
45
46
47
48
49
50 #define sign(x) ((x) > 0.0 ? 1 : ((x) < 0.0 ? -1 : 0 ))
51
52 extern VEC *Usolve(); /* See matrix2.h */
53
54 /* Note: The usual representation of a Householder transformation is taken
55 to be:
56 P = I - beta.u.uT
57 where beta = 2/(uT.u) and u is called the Householder vector
58 */
59
60 /* QRfactor -- forms the QR factorisation of A -- factorisation stored in
61 compact form as described above ( not quite standard format ) */
62 /* MAT *QRfactor(A,diag,beta) */
63 MAT *QRfactor(A,diag)
64 MAT *A;
65 VEC *diag /* ,*beta */;
66 {
67 u_int k,limit;
68 Real beta;
69 static VEC *tmp1=VNULL;
70
71 if ( ! A || ! diag )
72 error(E_NULL,"QRfactor");
73 limit = min(A->m,A->n);
74 if ( diag->dim < limit )
75 error(E_SIZES,"QRfactor");
76
77 tmp1 = v_resize(tmp1,A->m);
78 MEM_STAT_REG(tmp1,TYPE_VEC);
79
80 for ( k=0; k<limit; k++ )
81 {
82 /* get H/holder vector for the k-th column */
83 get_col(A,k,tmp1);
84 /* hhvec(tmp1,k,&beta->ve[k],tmp1,&A->me[k][k]); */
85 hhvec(tmp1,k,&beta,tmp1,&A->me[k][k]);
86 diag->ve[k] = tmp1->ve[k];
87
88 /* apply H/holder vector to remaining columns */
89 /* hhtrcols(A,k,k+1,tmp1,beta->ve[k]); */
90 hhtrcols(A,k,k+1,tmp1,beta);
91 }
92
93 return (A);
94 }
95
96 /* QRCPfactor -- forms the QR factorisation of A with column pivoting
97 -- factorisation stored in compact form as described above
98 ( not quite standard format ) */
99 /* MAT *QRCPfactor(A,diag,beta,px) */
100 MAT *QRCPfactor(A,diag,px)
101 MAT *A;
102 VEC *diag /* , *beta */;
103 PERM *px;
104 {
105 u_int i, i_max, j, k, limit;
106 static VEC *gamma=VNULL, *tmp1=VNULL, *tmp2=VNULL;
107 Real beta, maxgamma, sum, tmp;
108
109 if ( ! A || ! diag || ! px )
110 error(E_NULL,"QRCPfactor");
111 limit = min(A->m,A->n);
112 if ( diag->dim < limit || px->size != A->n )
113 error(E_SIZES,"QRCPfactor");
114
115 tmp1 = v_resize(tmp1,A->m);
116 tmp2 = v_resize(tmp2,A->m);
117 gamma = v_resize(gamma,A->n);
118 MEM_STAT_REG(tmp1,TYPE_VEC);
119 MEM_STAT_REG(tmp2,TYPE_VEC);
120 MEM_STAT_REG(gamma,TYPE_VEC);
121
122 /* initialise gamma and px */
123 for ( j=0; j<A->n; j++ )
124 {
125 px->pe[j] = j;
126 sum = 0.0;
127 for ( i=0; i<A->m; i++ )
128 sum += square(A->me[i][j]);
129 gamma->ve[j] = sum;
130 }
131
132 for ( k=0; k<limit; k++ )
133 {
134 /* find "best" column to use */
135 i_max = k; maxgamma = gamma->ve[k];
136 for ( i=k+1; i<A->n; i++ )
137 /* Loop invariant:maxgamma=gamma[i_max]
138 >=gamma[l];l=k,...,i-1 */
139 if ( gamma->ve[i] > maxgamma )
140 { maxgamma = gamma->ve[i]; i_max = i; }
141
142 /* swap columns if necessary */
143 if ( i_max != k )
144 {
145 /* swap gamma values */
146 tmp = gamma->ve[k];
147 gamma->ve[k] = gamma->ve[i_max];
148 gamma->ve[i_max] = tmp;
149
150 /* update column permutation */
151 px_transp(px,k,i_max);
152
153 /* swap columns of A */
154 for ( i=0; i<A->m; i++ )
155 {
156 tmp = A->me[i][k];
157 A->me[i][k] = A->me[i][i_max];
158 A->me[i][i_max] = tmp;
159 }
160 }
161
162 /* get H/holder vector for the k-th column */
163 get_col(A,k,tmp1);
164 /* hhvec(tmp1,k,&beta->ve[k],tmp1,&A->me[k][k]); */
165 hhvec(tmp1,k,&beta,tmp1,&A->me[k][k]);
166 diag->ve[k] = tmp1->ve[k];
167
168 /* apply H/holder vector to remaining columns */
169 /* hhtrcols(A,k,k+1,tmp1,beta->ve[k]); */
170 hhtrcols(A,k,k+1,tmp1,beta);
171
172 /* update gamma values */
173 for ( j=k+1; j<A->n; j++ )
174 gamma->ve[j] -= square(A->me[k][j]);
175 }
176
177 return (A);
178 }
179
180 /* Qsolve -- solves Qx = b, Q is an orthogonal matrix stored in compact
181 form a la QRfactor() -- may be in-situ */
182 /* VEC *_Qsolve(QR,diag,beta,b,x,tmp) */
183 VEC *_Qsolve(QR,diag,b,x,tmp)
184 MAT *QR;
185 VEC *diag /* ,*beta */ , *b, *x, *tmp;
186 {
187 u_int dynamic;
188 int k, limit;
189 Real beta, r_ii, tmp_val;
190
191 limit = min(QR->m,QR->n);
192 dynamic = FALSE;
193 if ( ! QR || ! diag || ! b )
194 error(E_NULL,"_Qsolve");
195 if ( diag->dim < limit || b->dim != QR->m )
196 error(E_SIZES,"_Qsolve");
197 x = v_resize(x,QR->m);
198 if ( tmp == VNULL )
199 dynamic = TRUE;
200 tmp = v_resize(tmp,QR->m);
201
202 /* apply H/holder transforms in normal order */
203 x = v_copy(b,x);
204 for ( k = 0 ; k < limit ; k++ )
205 {
206 get_col(QR,k,tmp);
207 r_ii = fabs(tmp->ve[k]);
208 tmp->ve[k] = diag->ve[k];
209 tmp_val = (r_ii*fabs(diag->ve[k]));
210 beta = ( tmp_val == 0.0 ) ? 0.0 : 1.0/tmp_val;
211 /* hhtrvec(tmp,beta->ve[k],k,x,x); */
212 hhtrvec(tmp,beta,k,x,x);
213 }
214
215 if ( dynamic )
216 V_FREE(tmp);
217
218 return (x);
219 }
220
221 /* makeQ -- constructs orthogonal matrix from Householder vectors stored in
222 compact QR form */
223 /* MAT *makeQ(QR,diag,beta,Qout) */
224 MAT *makeQ(QR,diag,Qout)
225 MAT *QR,*Qout;
226 VEC *diag /* , *beta */;
227 {
228 static VEC *tmp1=VNULL,*tmp2=VNULL;
229 u_int i, limit;
230 Real beta, r_ii, tmp_val;
231 int j;
232
233 limit = min(QR->m,QR->n);
234 if ( ! QR || ! diag )
235 error(E_NULL,"makeQ");
236 if ( diag->dim < limit )
237 error(E_SIZES,"makeQ");
238 if ( Qout==(MAT *)NULL || Qout->m < QR->m || Qout->n < QR->m )
239 Qout = m_get(QR->m,QR->m);
240
241 tmp1 = v_resize(tmp1,QR->m); /* contains basis vec & columns of Q */
242 tmp2 = v_resize(tmp2,QR->m); /* contains H/holder vectors */
243 MEM_STAT_REG(tmp1,TYPE_VEC);
244 MEM_STAT_REG(tmp2,TYPE_VEC);
245
246 for ( i=0; i<QR->m ; i++ )
247 { /* get i-th column of Q */
248 /* set up tmp1 as i-th basis vector */
249 for ( j=0; j<QR->m ; j++ )
250 tmp1->ve[j] = 0.0;
251 tmp1->ve[i] = 1.0;
252
253 /* apply H/h transforms in reverse order */
254 for ( j=limit-1; j>=0; j-- )
255 {
256 get_col(QR,j,tmp2);
257 r_ii = fabs(tmp2->ve[j]);
258 tmp2->ve[j] = diag->ve[j];
259 tmp_val = (r_ii*fabs(diag->ve[j]));
260 beta = ( tmp_val == 0.0 ) ? 0.0 : 1.0/tmp_val;
261 /* hhtrvec(tmp2,beta->ve[j],j,tmp1,tmp1); */
262 hhtrvec(tmp2,beta,j,tmp1,tmp1);
263 }
264
265 /* insert into Q */
266 set_col(Qout,i,tmp1);
267 }
268
269 return (Qout);
270 }
271
272 /* makeR -- constructs upper triangular matrix from QR (compact form)
273 -- may be in-situ (all it does is zero the lower 1/2) */
274 MAT *makeR(QR,Rout)
275 MAT *QR,*Rout;
276 {
277 u_int i,j;
278
279 if ( QR==(MAT *)NULL )
280 error(E_NULL,"makeR");
281 Rout = m_copy(QR,Rout);
282
283 for ( i=1; i<QR->m; i++ )
284 for ( j=0; j<QR->n && j<i; j++ )
285 Rout->me[i][j] = 0.0;
286
287 return (Rout);
288 }
289
290 /* QRsolve -- solves the system Q.R.x=b where Q & R are stored in compact form
291 -- returns x, which is created if necessary */
292 /* VEC *QRsolve(QR,diag,beta,b,x) */
293 VEC *QRsolve(QR,diag,b,x)
294 MAT *QR;
295 VEC *diag /* , *beta */ , *b, *x;
296 {
297 int limit;
298 static VEC *tmp = VNULL;
299
300 if ( ! QR || ! diag || ! b )
301 error(E_NULL,"QRsolve");
302 limit = min(QR->m,QR->n);
303 if ( diag->dim < limit || b->dim != QR->m )
304 error(E_SIZES,"QRsolve");
305 tmp = v_resize(tmp,limit);
306 MEM_STAT_REG(tmp,TYPE_VEC);
307
308 x = v_resize(x,QR->n);
309 _Qsolve(QR,diag,b,x,tmp);
310 x = Usolve(QR,x,x,0.0);
311 v_resize(x,QR->n);
312
313 return x;
314 }
315
316 /* QRCPsolve -- solves A.x = b where A is factored by QRCPfactor()
317 -- assumes that A is in the compact factored form */
318 /* VEC *QRCPsolve(QR,diag,beta,pivot,b,x) */
319 VEC *QRCPsolve(QR,diag,pivot,b,x)
320 MAT *QR;
321 VEC *diag /* , *beta */;
322 PERM *pivot;
323 VEC *b, *x;
324 {
325 static VEC *tmp=VNULL;
326
327 if ( ! QR || ! diag || ! pivot || ! b )
328 error(E_NULL,"QRCPsolve");
329 if ( (QR->m > diag->dim &&QR->n > diag->dim) || QR->n != pivot->size )
330 error(E_SIZES,"QRCPsolve");
331
332 tmp = QRsolve(QR,diag /* , beta */ ,b,tmp);
333 MEM_STAT_REG(tmp,TYPE_VEC);
334 x = pxinv_vec(pivot,tmp,x);
335
336 return x;
337 }
338
339 /* Umlt -- compute out = upper_triang(U).x
340 -- may be in situ */
341 static VEC *Umlt(U,x,out)
342 MAT *U;
343 VEC *x, *out;
344 {
345 int i, limit;
346
347 if ( U == MNULL || x == VNULL )
348 error(E_NULL,"Umlt");
349 limit = min(U->m,U->n);
350 if ( limit != x->dim )
351 error(E_SIZES,"Umlt");
352 if ( out == VNULL || out->dim < limit )
353 out = v_resize(out,limit);
354
355 for ( i = 0; i < limit; i++ )
356 out->ve[i] = __ip__(&(x->ve[i]),&(U->me[i][i]),limit - i);
357 return out;
358 }
359
360 /* UTmlt -- returns out = upper_triang(U)^T.x */
361 static VEC *UTmlt(U,x,out)
362 MAT *U;
363 VEC *x, *out;
364 {
365 Real sum;
366 int i, j, limit;
367
368 if ( U == MNULL || x == VNULL )
369 error(E_NULL,"UTmlt");
370 limit = min(U->m,U->n);
371 if ( out == VNULL || out->dim < limit )
372 out = v_resize(out,limit);
373
374 for ( i = limit-1; i >= 0; i-- )
375 {
376 sum = 0.0;
377 for ( j = 0; j <= i; j++ )
378 sum += U->me[j][i]*x->ve[j];
379 out->ve[i] = sum;
380 }
381 return out;
382 }
383
384 /* QRTsolve -- solve A^T.sc = c where the QR factors of A are stored in
385 compact form
386 -- returns sc
387 -- original due to Mike Osborne modified Wed 09th Dec 1992 */
388 VEC *QRTsolve(A,diag,c,sc)
389 MAT *A;
390 VEC *diag, *c, *sc;
391 {
392 int i, j, k, n, p;
393 Real beta, r_ii, s, tmp_val;
394
395 if ( ! A || ! diag || ! c )
396 error(E_NULL,"QRTsolve");
397 if ( diag->dim < min(A->m,A->n) )
398 error(E_SIZES,"QRTsolve");
399 sc = v_resize(sc,A->m);
400 n = sc->dim;
401 p = c->dim;
402 if ( n == p )
403 k = p-2;
404 else
405 k = p-1;
406 v_zero(sc);
407 sc->ve[0] = c->ve[0]/A->me[0][0];
408 if ( n == 1)
409 return sc;
410 if ( p > 1)
411 {
412 for ( i = 1; i < p; i++ )
413 {
414 s = 0.0;
415 for ( j = 0; j < i; j++ )
416 s += A->me[j][i]*sc->ve[j];
417 if ( A->me[i][i] == 0.0 )
418 error(E_SING,"QRTsolve");
419 sc->ve[i]=(c->ve[i]-s)/A->me[i][i];
420 }
421 }
422 for (i = k; i >= 0; i--)
423 {
424 s = diag->ve[i]*sc->ve[i];
425 for ( j = i+1; j < n; j++ )
426 s += A->me[j][i]*sc->ve[j];
427 r_ii = fabs(A->me[i][i]);
428 tmp_val = (r_ii*fabs(diag->ve[i]));
429 beta = ( tmp_val == 0.0 ) ? 0.0 : 1.0/tmp_val;
430 tmp_val = beta*s;
431 sc->ve[i] -= tmp_val*diag->ve[i];
432 for ( j = i+1; j < n; j++ )
433 sc->ve[j] -= tmp_val*A->me[j][i];
434 }
435
436 return sc;
437 }
438
439 /* QRcondest -- returns an estimate of the 2-norm condition number of the
440 matrix factorised by QRfactor() or QRCPfactor()
441 -- note that as Q does not affect the 2-norm condition number,
442 it is not necessary to pass the diag, beta (or pivot) vectors
443 -- generates a lower bound on the true condition number
444 -- if the matrix is exactly singular, HUGE is returned
445 -- note that QRcondest() is likely to be more reliable for
446 matrices factored using QRCPfactor() */
447 double QRcondest(QR)
448 MAT *QR;
449 {
450 static VEC *y=VNULL;
451 Real norm1, norm2, sum, tmp1, tmp2;
452 int i, j, limit;
453
454 if ( QR == MNULL )
455 error(E_NULL,"QRcondest");
456
457 limit = min(QR->m,QR->n);
458 for ( i = 0; i < limit; i++ )
459 if ( QR->me[i][i] == 0.0 )
460 return HUGE;
461
462 y = v_resize(y,limit);
463 MEM_STAT_REG(y,TYPE_VEC);
464 /* use the trick for getting a unit vector y with ||R.y||_inf small
465 from the LU condition estimator */
466 for ( i = 0; i < limit; i++ )
467 {
468 sum = 0.0;
469 for ( j = 0; j < i; j++ )
470 sum -= QR->me[j][i]*y->ve[j];
471 sum -= (sum < 0.0) ? 1.0 : -1.0;
472 y->ve[i] = sum / QR->me[i][i];
473 }
474 UTmlt(QR,y,y);
475
476 /* now apply inverse power method to R^T.R */
477 for ( i = 0; i < 3; i++ )
478 {
479 tmp1 = v_norm2(y);
480 sv_mlt(1/tmp1,y,y);
481 UTsolve(QR,y,y,0.0);
482 tmp2 = v_norm2(y);
483 sv_mlt(1/v_norm2(y),y,y);
484 Usolve(QR,y,y,0.0);
485 }
486 /* now compute approximation for ||R^{-1}||_2 */
487 norm1 = sqrt(tmp1)*sqrt(tmp2);
488
489 /* now use complementary approach to compute approximation to ||R||_2 */
490 for ( i = limit-1; i >= 0; i-- )
491 {
492 sum = 0.0;
493 for ( j = i+1; j < limit; j++ )
494 sum += QR->me[i][j]*y->ve[j];
495 y->ve[i] = (sum >= 0.0) ? 1.0 : -1.0;
496 y->ve[i] = (QR->me[i][i] >= 0.0) ? y->ve[i] : - y->ve[i];
497 }
498
499 /* now apply power method to R^T.R */
500 for ( i = 0; i < 3; i++ )
501 {
502 tmp1 = v_norm2(y);
503 sv_mlt(1/tmp1,y,y);
504 Umlt(QR,y,y);
505 tmp2 = v_norm2(y);
506 sv_mlt(1/tmp2,y,y);
507 UTmlt(QR,y,y);
508 }
509 norm2 = sqrt(tmp1)*sqrt(tmp2);
510
511 /* printf("QRcondest: norm1 = %g, norm2 = %g\n",norm1,norm2); */
512
513 return norm1*norm2;
514 }
+0
-12
interface/src/scilab/src/c/rk4.dat less more
0 # No. of a problem
1 1
2 # Initial time
3 0
4 # Final time
5 1
6 # Solution is x(t) = (cos(t),-sin(t))
7 # x(0) =
8 Vector: dim: 2
9 1 0
10 # Step size
11 0.1
+0
-668
interface/src/scilab/src/c/schur.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Stewart & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 File containing routines for computing the Schur decomposition
28 of a real non-symmetric matrix
29 See also: hessen.c
30 */
31
32 #include <stdio.h>
33 #include "matrix.h"
34 #include "matrix2.h"
35 #include <math.h>
36
37
38 static char rcsid[] = "$Id: schur.c 3690 2010-09-02 09:55:19Z lsaavedr $";
39
40
41
42 #ifndef ANSI_C
43 static void hhldr3(x,y,z,nu1,beta,newval)
44 double x, y, z;
45 Real *nu1, *beta, *newval;
46 #else
47 static void hhldr3(double x, double y, double z,
48 Real *nu1, Real *beta, Real *newval)
49 #endif
50 {
51 Real alpha;
52
53 if ( x >= 0.0 )
54 alpha = sqrt(x*x+y*y+z*z);
55 else
56 alpha = -sqrt(x*x+y*y+z*z);
57 *nu1 = x + alpha;
58 *beta = 1.0/(alpha*(*nu1));
59 *newval = alpha;
60 }
61
62 #ifndef ANSI_C
63 static void hhldr3cols(A,k,j0,beta,nu1,nu2,nu3)
64 MAT *A;
65 int k, j0;
66 double beta, nu1, nu2, nu3;
67 #else
68 static void hhldr3cols(MAT *A, int k, int j0, double beta,
69 double nu1, double nu2, double nu3)
70 #endif
71 {
72 Real **A_me, ip, prod;
73 int j, n;
74
75 if ( k < 0 || k+3 > A->m || j0 < 0 )
76 error(E_BOUNDS,"hhldr3cols");
77 A_me = A->me; n = A->n;
78
79 /* printf("hhldr3cols:(l.%d) j0 = %d, k = %d, A at 0x%lx, m = %d, n = %d\n",
80 __LINE__, j0, k, (long)A, A->m, A->n); */
81 /* printf("hhldr3cols: A (dumped) =\n"); m_dump(stdout,A); */
82
83 for ( j = j0; j < n; j++ )
84 {
85 /*****
86 ip = nu1*A_me[k][j] + nu2*A_me[k+1][j] + nu3*A_me[k+2][j];
87 prod = ip*beta;
88 A_me[k][j] -= prod*nu1;
89 A_me[k+1][j] -= prod*nu2;
90 A_me[k+2][j] -= prod*nu3;
91 *****/
92 /* printf("hhldr3cols: j = %d\n", j); */
93
94 ip = nu1*m_entry(A,k,j)+nu2*m_entry(A,k+1,j)+nu3*m_entry(A,k+2,j);
95 prod = ip*beta;
96 /*****
97 m_set_val(A,k ,j,m_entry(A,k ,j) - prod*nu1);
98 m_set_val(A,k+1,j,m_entry(A,k+1,j) - prod*nu2);
99 m_set_val(A,k+2,j,m_entry(A,k+2,j) - prod*nu3);
100 *****/
101 m_add_val(A,k ,j,-prod*nu1);
102 m_add_val(A,k+1,j,-prod*nu2);
103 m_add_val(A,k+2,j,-prod*nu3);
104
105 }
106 /* printf("hhldr3cols:(l.%d) j0 = %d, k = %d, m = %d, n = %d\n",
107 __LINE__, j0, k, A->m, A->n); */
108 /* putc('\n',stdout); */
109 }
110
111 #ifndef ANSI_C
112 static void hhldr3rows(A,k,i0,beta,nu1,nu2,nu3)
113 MAT *A;
114 int k, i0;
115 double beta, nu1, nu2, nu3;
116 #else
117 static void hhldr3rows(MAT *A, int k, int i0, double beta,
118 double nu1, double nu2, double nu3)
119 #endif
120 {
121 Real **A_me, ip, prod;
122 int i, m;
123
124 /* printf("hhldr3rows:(l.%d) A at 0x%lx\n", __LINE__, (long)A); */
125 /* printf("hhldr3rows: k = %d\n", k); */
126 if ( k < 0 || k+3 > A->n )
127 error(E_BOUNDS,"hhldr3rows");
128 A_me = A->me; m = A->m;
129 i0 = min(i0,m-1);
130
131 for ( i = 0; i <= i0; i++ )
132 {
133 /****
134 ip = nu1*A_me[i][k] + nu2*A_me[i][k+1] + nu3*A_me[i][k+2];
135 prod = ip*beta;
136 A_me[i][k] -= prod*nu1;
137 A_me[i][k+1] -= prod*nu2;
138 A_me[i][k+2] -= prod*nu3;
139 ****/
140
141 ip = nu1*m_entry(A,i,k)+nu2*m_entry(A,i,k+1)+nu3*m_entry(A,i,k+2);
142 prod = ip*beta;
143 m_add_val(A,i,k , - prod*nu1);
144 m_add_val(A,i,k+1, - prod*nu2);
145 m_add_val(A,i,k+2, - prod*nu3);
146
147 }
148 }
149
150 /* schur -- computes the Schur decomposition of the matrix A in situ
151 -- optionally, gives Q matrix such that Q^T.A.Q is upper triangular
152 -- returns upper triangular Schur matrix */
153 MAT *schur(A,Q)
154 MAT *A, *Q;
155 {
156 int i, j, iter, k, k_min, k_max, k_tmp, n, split;
157 Real beta2, c, discrim, dummy, nu1, s, t, tmp, x, y, z;
158 Real **A_me;
159 Real sqrt_macheps;
160 static VEC *diag=VNULL, *beta=VNULL;
161
162 if ( ! A )
163 error(E_NULL,"schur");
164 if ( A->m != A->n || ( Q && Q->m != Q->n ) )
165 error(E_SQUARE,"schur");
166 if ( Q != MNULL && Q->m != A->m )
167 error(E_SIZES,"schur");
168 n = A->n;
169 diag = v_resize(diag,A->n);
170 beta = v_resize(beta,A->n);
171 MEM_STAT_REG(diag,TYPE_VEC);
172 MEM_STAT_REG(beta,TYPE_VEC);
173 /* compute Hessenberg form */
174 Hfactor(A,diag,beta);
175
176 /* save Q if necessary */
177 if ( Q )
178 Q = makeHQ(A,diag,beta,Q);
179 makeH(A,A);
180
181 sqrt_macheps = sqrt(MACHEPS);
182
183 k_min = 0; A_me = A->me;
184
185 while ( k_min < n )
186 {
187 Real a00, a01, a10, a11;
188 double scale, t, numer, denom;
189
190 /* find k_max to suit:
191 submatrix k_min..k_max should be irreducible */
192 k_max = n-1;
193 for ( k = k_min; k < k_max; k++ )
194 /* if ( A_me[k+1][k] == 0.0 ) */
195 if ( m_entry(A,k+1,k) == 0.0 )
196 { k_max = k; break; }
197
198 if ( k_max <= k_min )
199 {
200 k_min = k_max + 1;
201 continue; /* outer loop */
202 }
203
204 /* check to see if we have a 2 x 2 block
205 with complex eigenvalues */
206 if ( k_max == k_min + 1 )
207 {
208 /* tmp = A_me[k_min][k_min] - A_me[k_max][k_max]; */
209 a00 = m_entry(A,k_min,k_min);
210 a01 = m_entry(A,k_min,k_max);
211 a10 = m_entry(A,k_max,k_min);
212 a11 = m_entry(A,k_max,k_max);
213 tmp = a00 - a11;
214 /* discrim = tmp*tmp +
215 4*A_me[k_min][k_max]*A_me[k_max][k_min]; */
216 discrim = tmp*tmp +
217 4*a01*a10;
218 if ( discrim < 0.0 )
219 { /* yes -- e-vals are complex
220 -- put 2 x 2 block in form [a b; c a];
221 then eigenvalues have real part a & imag part sqrt(|bc|) */
222 numer = - tmp;
223 denom = ( a01+a10 >= 0.0 ) ?
224 (a01+a10) + sqrt((a01+a10)*(a01+a10)+tmp*tmp) :
225 (a01+a10) - sqrt((a01+a10)*(a01+a10)+tmp*tmp);
226 if ( denom != 0.0 )
227 { /* t = s/c = numer/denom */
228 t = numer/denom;
229 scale = c = 1.0/sqrt(1+t*t);
230 s = c*t;
231 }
232 else
233 {
234 c = 1.0;
235 s = 0.0;
236 }
237 rot_cols(A,k_min,k_max,c,s,A);
238 rot_rows(A,k_min,k_max,c,s,A);
239 if ( Q != MNULL )
240 rot_cols(Q,k_min,k_max,c,s,Q);
241 k_min = k_max + 1;
242 continue;
243 }
244 else /* discrim >= 0; i.e. block has two real eigenvalues */
245 { /* no -- e-vals are not complex;
246 split 2 x 2 block and continue */
247 /* s/c = numer/denom */
248 numer = ( tmp >= 0.0 ) ?
249 - tmp - sqrt(discrim) : - tmp + sqrt(discrim);
250 denom = 2*a01;
251 if ( fabs(numer) < fabs(denom) )
252 { /* t = s/c = numer/denom */
253 t = numer/denom;
254 scale = c = 1.0/sqrt(1+t*t);
255 s = c*t;
256 }
257 else if ( numer != 0.0 )
258 { /* t = c/s = denom/numer */
259 t = denom/numer;
260 scale = 1.0/sqrt(1+t*t);
261 c = fabs(t)*scale;
262 s = ( t >= 0.0 ) ? scale : -scale;
263 }
264 else /* numer == denom == 0 */
265 {
266 c = 0.0;
267 s = 1.0;
268 }
269 rot_cols(A,k_min,k_max,c,s,A);
270 rot_rows(A,k_min,k_max,c,s,A);
271 /* A->me[k_max][k_min] = 0.0; */
272 if ( Q != MNULL )
273 rot_cols(Q,k_min,k_max,c,s,Q);
274 k_min = k_max + 1; /* go to next block */
275 continue;
276 }
277 }
278
279 /* now have r x r block with r >= 2:
280 apply Francis QR step until block splits */
281 split = FALSE; iter = 0;
282 while ( ! split )
283 {
284 iter++;
285
286 /* set up Wilkinson/Francis complex shift */
287 k_tmp = k_max - 1;
288
289 a00 = m_entry(A,k_tmp,k_tmp);
290 a01 = m_entry(A,k_tmp,k_max);
291 a10 = m_entry(A,k_max,k_tmp);
292 a11 = m_entry(A,k_max,k_max);
293
294 /* treat degenerate cases differently
295 -- if there are still no splits after five iterations
296 and the bottom 2 x 2 looks degenerate, force it to
297 split */
298 if ( iter >= 5 &&
299 fabs(a00-a11) < sqrt_macheps*(fabs(a00)+fabs(a11)) &&
300 (fabs(a01) < sqrt_macheps*(fabs(a00)+fabs(a11)) ||
301 fabs(a10) < sqrt_macheps*(fabs(a00)+fabs(a11))) )
302 {
303 if ( fabs(a01) < sqrt_macheps*(fabs(a00)+fabs(a11)) )
304 m_set_val(A,k_tmp,k_max,0.0);
305 if ( fabs(a10) < sqrt_macheps*(fabs(a00)+fabs(a11)) )
306 {
307 m_set_val(A,k_max,k_tmp,0.0);
308 split = TRUE;
309 continue;
310 }
311 }
312
313 s = a00 + a11;
314 t = a00*a11 - a01*a10;
315
316 /* break loop if a 2 x 2 complex block */
317 if ( k_max == k_min + 1 && s*s < 4.0*t )
318 {
319 split = TRUE;
320 continue;
321 }
322
323 /* perturb shift if convergence is slow */
324 if ( (iter % 10) == 0 )
325 { s += iter*0.02; t += iter*0.02;
326 }
327
328 /* set up Householder transformations */
329 k_tmp = k_min + 1;
330 /********************
331 x = A_me[k_min][k_min]*A_me[k_min][k_min] +
332 A_me[k_min][k_tmp]*A_me[k_tmp][k_min] -
333 s*A_me[k_min][k_min] + t;
334 y = A_me[k_tmp][k_min]*
335 (A_me[k_min][k_min]+A_me[k_tmp][k_tmp]-s);
336 if ( k_min + 2 <= k_max )
337 z = A_me[k_tmp][k_min]*A_me[k_min+2][k_tmp];
338 else
339 z = 0.0;
340 ********************/
341
342 a00 = m_entry(A,k_min,k_min);
343 a01 = m_entry(A,k_min,k_tmp);
344 a10 = m_entry(A,k_tmp,k_min);
345 a11 = m_entry(A,k_tmp,k_tmp);
346
347 /********************
348 a00 = A->me[k_min][k_min];
349 a01 = A->me[k_min][k_tmp];
350 a10 = A->me[k_tmp][k_min];
351 a11 = A->me[k_tmp][k_tmp];
352 ********************/
353 x = a00*a00 + a01*a10 - s*a00 + t;
354 y = a10*(a00+a11-s);
355 if ( k_min + 2 <= k_max )
356 z = a10* /* m_entry(A,k_min+2,k_tmp) */ A->me[k_min+2][k_tmp];
357 else
358 z = 0.0;
359
360 for ( k = k_min; k <= k_max-1; k++ )
361 {
362 if ( k < k_max - 1 )
363 {
364 hhldr3(x,y,z,&nu1,&beta2,&dummy);
365 tracecatch(hhldr3cols(A,k,max(k-1,0), beta2,nu1,y,z),"schur");
366 tracecatch(hhldr3rows(A,k,min(n-1,k+3),beta2,nu1,y,z),"schur");
367 if ( Q != MNULL )
368 hhldr3rows(Q,k,n-1,beta2,nu1,y,z);
369 }
370 else
371 {
372 givens(x,y,&c,&s);
373 rot_cols(A,k,k+1,c,s,A);
374 rot_rows(A,k,k+1,c,s,A);
375 if ( Q )
376 rot_cols(Q,k,k+1,c,s,Q);
377 }
378 /* if ( k >= 2 )
379 m_set_val(A,k,k-2,0.0); */
380 /* x = A_me[k+1][k]; */
381 x = m_entry(A,k+1,k);
382 if ( k <= k_max - 2 )
383 /* y = A_me[k+2][k];*/
384 y = m_entry(A,k+2,k);
385 else
386 y = 0.0;
387 if ( k <= k_max - 3 )
388 /* z = A_me[k+3][k]; */
389 z = m_entry(A,k+3,k);
390 else
391 z = 0.0;
392 }
393 /* if ( k_min > 0 )
394 m_set_val(A,k_min,k_min-1,0.0);
395 if ( k_max < n - 1 )
396 m_set_val(A,k_max+1,k_max,0.0); */
397 for ( k = k_min; k <= k_max-2; k++ )
398 {
399 /* zero appropriate sub-diagonals */
400 m_set_val(A,k+2,k,0.0);
401 if ( k < k_max-2 )
402 m_set_val(A,k+3,k,0.0);
403 }
404
405 /* test to see if matrix should split */
406 for ( k = k_min; k < k_max; k++ )
407 if ( fabs(A_me[k+1][k]) < MACHEPS*
408 (fabs(A_me[k][k])+fabs(A_me[k+1][k+1])) )
409 { A_me[k+1][k] = 0.0; split = TRUE; }
410 }
411 }
412
413 /* polish up A by zeroing strictly lower triangular elements
414 and small sub-diagonal elements */
415 for ( i = 0; i < A->m; i++ )
416 for ( j = 0; j < i-1; j++ )
417 A_me[i][j] = 0.0;
418 for ( i = 0; i < A->m - 1; i++ )
419 if ( fabs(A_me[i+1][i]) < MACHEPS*
420 (fabs(A_me[i][i])+fabs(A_me[i+1][i+1])) )
421 A_me[i+1][i] = 0.0;
422
423 return A;
424 }
425
426 /* schur_vals -- compute real & imaginary parts of eigenvalues
427 -- assumes T contains a block upper triangular matrix
428 as produced by schur()
429 -- real parts stored in real_pt, imaginary parts in imag_pt */
430 void schur_evals(T,real_pt,imag_pt)
431 MAT *T;
432 VEC *real_pt, *imag_pt;
433 {
434 int i, n;
435 Real discrim, **T_me;
436 Real diff, sum, tmp;
437
438 if ( ! T || ! real_pt || ! imag_pt )
439 error(E_NULL,"schur_evals");
440 if ( T->m != T->n )
441 error(E_SQUARE,"schur_evals");
442 n = T->n; T_me = T->me;
443 real_pt = v_resize(real_pt,(u_int)n);
444 imag_pt = v_resize(imag_pt,(u_int)n);
445
446 i = 0;
447 while ( i < n )
448 {
449 if ( i < n-1 && T_me[i+1][i] != 0.0 )
450 { /* should be a complex eigenvalue */
451 sum = 0.5*(T_me[i][i]+T_me[i+1][i+1]);
452 diff = 0.5*(T_me[i][i]-T_me[i+1][i+1]);
453 discrim = diff*diff + T_me[i][i+1]*T_me[i+1][i];
454 if ( discrim < 0.0 )
455 { /* yes -- complex e-vals */
456 real_pt->ve[i] = real_pt->ve[i+1] = sum;
457 imag_pt->ve[i] = sqrt(-discrim);
458 imag_pt->ve[i+1] = - imag_pt->ve[i];
459 }
460 else
461 { /* no -- actually both real */
462 tmp = sqrt(discrim);
463 real_pt->ve[i] = sum + tmp;
464 real_pt->ve[i+1] = sum - tmp;
465 imag_pt->ve[i] = imag_pt->ve[i+1] = 0.0;
466 }
467 i += 2;
468 }
469 else
470 { /* real eigenvalue */
471 real_pt->ve[i] = T_me[i][i];
472 imag_pt->ve[i] = 0.0;
473 i++;
474 }
475 }
476 }
477
478 /* schur_vecs -- returns eigenvectors computed from the real Schur
479 decomposition of a matrix
480 -- T is the block upper triangular Schur matrix
481 -- Q is the orthognal matrix where A = Q.T.Q^T
482 -- if Q is null, the eigenvectors of T are returned
483 -- X_re is the real part of the matrix of eigenvectors,
484 and X_im is the imaginary part of the matrix.
485 -- X_re is returned */
486 MAT *schur_vecs(T,Q,X_re,X_im)
487 MAT *T, *Q, *X_re, *X_im;
488 {
489 int i, j, limit;
490 Real t11_re, t11_im, t12, t21, t22_re, t22_im;
491 Real l_re, l_im, det_re, det_im, invdet_re, invdet_im,
492 val1_re, val1_im, val2_re, val2_im,
493 tmp_val1_re, tmp_val1_im, tmp_val2_re, tmp_val2_im, **T_me;
494 Real sum, diff, discrim, magdet, norm, scale;
495 static VEC *tmp1_re=VNULL, *tmp1_im=VNULL,
496 *tmp2_re=VNULL, *tmp2_im=VNULL;
497
498 if ( ! T || ! X_re )
499 error(E_NULL,"schur_vecs");
500 if ( T->m != T->n || X_re->m != X_re->n ||
501 ( Q != MNULL && Q->m != Q->n ) ||
502 ( X_im != MNULL && X_im->m != X_im->n ) )
503 error(E_SQUARE,"schur_vecs");
504 if ( T->m != X_re->m ||
505 ( Q != MNULL && T->m != Q->m ) ||
506 ( X_im != MNULL && T->m != X_im->m ) )
507 error(E_SIZES,"schur_vecs");
508
509 tmp1_re = v_resize(tmp1_re,T->m);
510 tmp1_im = v_resize(tmp1_im,T->m);
511 tmp2_re = v_resize(tmp2_re,T->m);
512 tmp2_im = v_resize(tmp2_im,T->m);
513 MEM_STAT_REG(tmp1_re,TYPE_VEC);
514 MEM_STAT_REG(tmp1_im,TYPE_VEC);
515 MEM_STAT_REG(tmp2_re,TYPE_VEC);
516 MEM_STAT_REG(tmp2_im,TYPE_VEC);
517
518 T_me = T->me;
519 i = 0;
520 while ( i < T->m )
521 {
522 if ( i+1 < T->m && T->me[i+1][i] != 0.0 )
523 { /* complex eigenvalue */
524 sum = 0.5*(T_me[i][i]+T_me[i+1][i+1]);
525 diff = 0.5*(T_me[i][i]-T_me[i+1][i+1]);
526 discrim = diff*diff + T_me[i][i+1]*T_me[i+1][i];
527 l_re = l_im = 0.0;
528 if ( discrim < 0.0 )
529 { /* yes -- complex e-vals */
530 l_re = sum;
531 l_im = sqrt(-discrim);
532 }
533 else /* not correct Real Schur form */
534 error(E_RANGE,"schur_vecs");
535 }
536 else
537 {
538 l_re = T_me[i][i];
539 l_im = 0.0;
540 }
541
542 v_zero(tmp1_im);
543 v_rand(tmp1_re);
544 sv_mlt(MACHEPS,tmp1_re,tmp1_re);
545
546 /* solve (T-l.I)x = tmp1 */
547 limit = ( l_im != 0.0 ) ? i+1 : i;
548 /* printf("limit = %d\n",limit); */
549 for ( j = limit+1; j < T->m; j++ )
550 tmp1_re->ve[j] = 0.0;
551 j = limit;
552 while ( j >= 0 )
553 {
554 if ( j > 0 && T->me[j][j-1] != 0.0 )
555 { /* 2 x 2 diagonal block */
556 /* printf("checkpoint A\n"); */
557 val1_re = tmp1_re->ve[j-1] -
558 __ip__(&(tmp1_re->ve[j+1]),&(T->me[j-1][j+1]),limit-j);
559 /* printf("checkpoint B\n"); */
560 val1_im = tmp1_im->ve[j-1] -
561 __ip__(&(tmp1_im->ve[j+1]),&(T->me[j-1][j+1]),limit-j);
562 /* printf("checkpoint C\n"); */
563 val2_re = tmp1_re->ve[j] -
564 __ip__(&(tmp1_re->ve[j+1]),&(T->me[j][j+1]),limit-j);
565 /* printf("checkpoint D\n"); */
566 val2_im = tmp1_im->ve[j] -
567 __ip__(&(tmp1_im->ve[j+1]),&(T->me[j][j+1]),limit-j);
568 /* printf("checkpoint E\n"); */
569
570 t11_re = T_me[j-1][j-1] - l_re;
571 t11_im = - l_im;
572 t22_re = T_me[j][j] - l_re;
573 t22_im = - l_im;
574 t12 = T_me[j-1][j];
575 t21 = T_me[j][j-1];
576
577 scale = fabs(T_me[j-1][j-1]) + fabs(T_me[j][j]) +
578 fabs(t12) + fabs(t21) + fabs(l_re) + fabs(l_im);
579
580 det_re = t11_re*t22_re - t11_im*t22_im - t12*t21;
581 det_im = t11_re*t22_im + t11_im*t22_re;
582 magdet = det_re*det_re+det_im*det_im;
583 if ( sqrt(magdet) < MACHEPS*scale )
584 {
585 det_re = MACHEPS*scale;
586 magdet = det_re*det_re+det_im*det_im;
587 }
588 invdet_re = det_re/magdet;
589 invdet_im = - det_im/magdet;
590 tmp_val1_re = t22_re*val1_re-t22_im*val1_im-t12*val2_re;
591 tmp_val1_im = t22_im*val1_re+t22_re*val1_im-t12*val2_im;
592 tmp_val2_re = t11_re*val2_re-t11_im*val2_im-t21*val1_re;
593 tmp_val2_im = t11_im*val2_re+t11_re*val2_im-t21*val1_im;
594 tmp1_re->ve[j-1] = invdet_re*tmp_val1_re -
595 invdet_im*tmp_val1_im;
596 tmp1_im->ve[j-1] = invdet_im*tmp_val1_re +
597 invdet_re*tmp_val1_im;
598 tmp1_re->ve[j] = invdet_re*tmp_val2_re -
599 invdet_im*tmp_val2_im;
600 tmp1_im->ve[j] = invdet_im*tmp_val2_re +
601 invdet_re*tmp_val2_im;
602 j -= 2;
603 }
604 else
605 {
606 t11_re = T_me[j][j] - l_re;
607 t11_im = - l_im;
608 magdet = t11_re*t11_re + t11_im*t11_im;
609 scale = fabs(T_me[j][j]) + fabs(l_re);
610 if ( sqrt(magdet) < MACHEPS*scale )
611 {
612 t11_re = MACHEPS*scale;
613 magdet = t11_re*t11_re + t11_im*t11_im;
614 }
615 invdet_re = t11_re/magdet;
616 invdet_im = - t11_im/magdet;
617 /* printf("checkpoint F\n"); */
618 val1_re = tmp1_re->ve[j] -
619 __ip__(&(tmp1_re->ve[j+1]),&(T->me[j][j+1]),limit-j);
620 /* printf("checkpoint G\n"); */
621 val1_im = tmp1_im->ve[j] -
622 __ip__(&(tmp1_im->ve[j+1]),&(T->me[j][j+1]),limit-j);
623 /* printf("checkpoint H\n"); */
624 tmp1_re->ve[j] = invdet_re*val1_re - invdet_im*val1_im;
625 tmp1_im->ve[j] = invdet_im*val1_re + invdet_re*val1_im;
626 j -= 1;
627 }
628 }
629
630 norm = v_norm_inf(tmp1_re) + v_norm_inf(tmp1_im);
631 sv_mlt(1/norm,tmp1_re,tmp1_re);
632 if ( l_im != 0.0 )
633 sv_mlt(1/norm,tmp1_im,tmp1_im);
634 mv_mlt(Q,tmp1_re,tmp2_re);
635 if ( l_im != 0.0 )
636 mv_mlt(Q,tmp1_im,tmp2_im);
637 if ( l_im != 0.0 )
638 norm = sqrt(in_prod(tmp2_re,tmp2_re)+in_prod(tmp2_im,tmp2_im));
639 else
640 norm = v_norm2(tmp2_re);
641 sv_mlt(1/norm,tmp2_re,tmp2_re);
642 if ( l_im != 0.0 )
643 sv_mlt(1/norm,tmp2_im,tmp2_im);
644
645 if ( l_im != 0.0 )
646 {
647 if ( ! X_im )
648 error(E_NULL,"schur_vecs");
649 set_col(X_re,i,tmp2_re);
650 set_col(X_im,i,tmp2_im);
651 sv_mlt(-1.0,tmp2_im,tmp2_im);
652 set_col(X_re,i+1,tmp2_re);
653 set_col(X_im,i+1,tmp2_im);
654 i += 2;
655 }
656 else
657 {
658 set_col(X_re,i,tmp2_re);
659 if ( X_im != MNULL )
660 set_col(X_im,i,tmp1_im); /* zero vector */
661 i += 1;
662 }
663 }
664
665 return X_re;
666 }
667
+0
-288
interface/src/scilab/src/c/solve.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Matrix factorisation routines to work with the other matrix files.
28 */
29
30 /* solve.c 1.2 11/25/87 */
31 static char rcsid[] = "$Id: solve.c 3690 2010-09-02 09:55:19Z lsaavedr $";
32
33 #include <stdio.h>
34 #include "matrix2.h"
35 #include <math.h>
36
37
38
39
40
41 /* Most matrix factorisation routines are in-situ unless otherwise specified */
42
43 /* Usolve -- back substitution with optional over-riding diagonal
44 -- can be in-situ but doesn't need to be */
45 VEC *Usolve(matrix,b,out,diag)
46 MAT *matrix;
47 VEC *b, *out;
48 double diag;
49 {
50 u_int dim /* , j */;
51 int i, i_lim;
52 Real **mat_ent, *mat_row, *b_ent, *out_ent, *out_col, sum, tiny;
53
54 if ( matrix==(MAT *)NULL || b==(VEC *)NULL )
55 error(E_NULL,"Usolve");
56 dim = min(matrix->m,matrix->n);
57 if ( b->dim < dim )
58 error(E_SIZES,"Usolve");
59 if ( out==(VEC *)NULL || out->dim < dim )
60 out = v_resize(out,matrix->n);
61 mat_ent = matrix->me; b_ent = b->ve; out_ent = out->ve;
62
63 tiny = 10.0/HUGE_VAL;
64
65 for ( i=dim-1; i>=0; i-- )
66 if ( b_ent[i] != 0.0 )
67 break;
68 else
69 out_ent[i] = 0.0;
70 i_lim = i;
71
72 for ( ; i>=0; i-- )
73 {
74 sum = b_ent[i];
75 mat_row = &(mat_ent[i][i+1]);
76 out_col = &(out_ent[i+1]);
77 sum -= __ip__(mat_row,out_col,i_lim-i);
78 /******************************************************
79 for ( j=i+1; j<=i_lim; j++ )
80 sum -= mat_ent[i][j]*out_ent[j];
81 sum -= (*mat_row++)*(*out_col++);
82 ******************************************************/
83 if ( diag==0.0 )
84 {
85 if ( fabs(mat_ent[i][i]) <= tiny*fabs(sum) )
86 error(E_SING,"Usolve");
87 else
88 out_ent[i] = sum/mat_ent[i][i];
89 }
90 else
91 out_ent[i] = sum/diag;
92 }
93
94 return (out);
95 }
96
97 /* Lsolve -- forward elimination with (optional) default diagonal value */
98 VEC *Lsolve(matrix,b,out,diag)
99 MAT *matrix;
100 VEC *b,*out;
101 double diag;
102 {
103 u_int dim, i, i_lim /* , j */;
104 Real **mat_ent, *mat_row, *b_ent, *out_ent, *out_col, sum, tiny;
105
106 if ( matrix==(MAT *)NULL || b==(VEC *)NULL )
107 error(E_NULL,"Lsolve");
108 dim = min(matrix->m,matrix->n);
109 if ( b->dim < dim )
110 error(E_SIZES,"Lsolve");
111 if ( out==(VEC *)NULL || out->dim < dim )
112 out = v_resize(out,matrix->n);
113 mat_ent = matrix->me; b_ent = b->ve; out_ent = out->ve;
114
115 for ( i=0; i<dim; i++ )
116 if ( b_ent[i] != 0.0 )
117 break;
118 else
119 out_ent[i] = 0.0;
120 i_lim = i;
121
122 tiny = 10.0/HUGE_VAL;
123
124 for ( ; i<dim; i++ )
125 {
126 sum = b_ent[i];
127 mat_row = &(mat_ent[i][i_lim]);
128 out_col = &(out_ent[i_lim]);
129 sum -= __ip__(mat_row,out_col,(int)(i-i_lim));
130 /*****************************************************
131 for ( j=i_lim; j<i; j++ )
132 sum -= mat_ent[i][j]*out_ent[j];
133 sum -= (*mat_row++)*(*out_col++);
134 ******************************************************/
135 if ( diag==0.0 )
136 {
137 if ( fabs(mat_ent[i][i]) <= tiny*fabs(sum) )
138 error(E_SING,"Lsolve");
139 else
140 out_ent[i] = sum/mat_ent[i][i];
141 }
142 else
143 out_ent[i] = sum/diag;
144 }
145
146 return (out);
147 }
148
149
150 /* UTsolve -- forward elimination with (optional) default diagonal value
151 using UPPER triangular part of matrix */
152 VEC *UTsolve(U,b,out,diag)
153 MAT *U;
154 VEC *b,*out;
155 double diag;
156 {
157 u_int dim, i, i_lim;
158 Real **U_me, *b_ve, *out_ve, tmp, invdiag, tiny;
159
160 if ( ! U || ! b )
161 error(E_NULL,"UTsolve");
162 dim = min(U->m,U->n);
163 if ( b->dim < dim )
164 error(E_SIZES,"UTsolve");
165 out = v_resize(out,U->n);
166 U_me = U->me; b_ve = b->ve; out_ve = out->ve;
167
168 tiny = 10.0/HUGE_VAL;
169
170 for ( i=0; i<dim; i++ )
171 if ( b_ve[i] != 0.0 )
172 break;
173 else
174 out_ve[i] = 0.0;
175 i_lim = i;
176 if ( b != out )
177 {
178 __zero__(out_ve,out->dim);
179 MEM_COPY(&(b_ve[i_lim]),&(out_ve[i_lim]),(dim-i_lim)*sizeof(Real));
180 }
181
182 if ( diag == 0.0 )
183 {
184 for ( ; i<dim; i++ )
185 {
186 tmp = U_me[i][i];
187 if ( fabs(tmp) <= tiny*fabs(out_ve[i]) )
188 error(E_SING,"UTsolve");
189 out_ve[i] /= tmp;
190 __mltadd__(&(out_ve[i+1]),&(U_me[i][i+1]),-out_ve[i],dim-i-1);
191 }
192 }
193 else
194 {
195 invdiag = 1.0/diag;
196 for ( ; i<dim; i++ )
197 {
198 out_ve[i] *= invdiag;
199 __mltadd__(&(out_ve[i+1]),&(U_me[i][i+1]),-out_ve[i],dim-i-1);
200 }
201 }
202 return (out);
203 }
204
205 /* Dsolve -- solves Dx=b where D is the diagonal of A -- may be in-situ */
206 VEC *Dsolve(A,b,x)
207 MAT *A;
208 VEC *b,*x;
209 {
210 u_int dim, i;
211 Real tiny;
212
213 if ( ! A || ! b )
214 error(E_NULL,"Dsolve");
215 dim = min(A->m,A->n);
216 if ( b->dim < dim )
217 error(E_SIZES,"Dsolve");
218 x = v_resize(x,A->n);
219
220 tiny = 10.0/HUGE_VAL;
221
222 dim = b->dim;
223 for ( i=0; i<dim; i++ )
224 if ( fabs(A->me[i][i]) <= tiny*fabs(b->ve[i]) )
225 error(E_SING,"Dsolve");
226 else
227 x->ve[i] = b->ve[i]/A->me[i][i];
228
229 return (x);
230 }
231
232 /* LTsolve -- back substitution with optional over-riding diagonal
233 using the LOWER triangular part of matrix
234 -- can be in-situ but doesn't need to be */
235 VEC *LTsolve(L,b,out,diag)
236 MAT *L;
237 VEC *b, *out;
238 double diag;
239 {
240 u_int dim;
241 int i, i_lim;
242 Real **L_me, *b_ve, *out_ve, tmp, invdiag, tiny;
243
244 if ( ! L || ! b )
245 error(E_NULL,"LTsolve");
246 dim = min(L->m,L->n);
247 if ( b->dim < dim )
248 error(E_SIZES,"LTsolve");
249 out = v_resize(out,L->n);
250 L_me = L->me; b_ve = b->ve; out_ve = out->ve;
251
252 tiny = 10.0/HUGE_VAL;
253
254 for ( i=dim-1; i>=0; i-- )
255 if ( b_ve[i] != 0.0 )
256 break;
257 i_lim = i;
258
259 if ( b != out )
260 {
261 __zero__(out_ve,out->dim);
262 MEM_COPY(b_ve,out_ve,(i_lim+1)*sizeof(Real));
263 }
264
265 if ( diag == 0.0 )
266 {
267 for ( ; i>=0; i-- )
268 {
269 tmp = L_me[i][i];
270 if ( fabs(tmp) <= tiny*fabs(out_ve[i]) )
271 error(E_SING,"LTsolve");
272 out_ve[i] /= tmp;
273 __mltadd__(out_ve,L_me[i],-out_ve[i],i);
274 }
275 }
276 else
277 {
278 invdiag = 1.0/diag;
279 for ( ; i>=0; i-- )
280 {
281 out_ve[i] *= invdiag;
282 __mltadd__(out_ve,L_me[i],-out_ve[i],i);
283 }
284 }
285
286 return (out);
287 }
+0
-1034
interface/src/scilab/src/c/sparse.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25 /*
26 Sparse matrix package
27 See also: sparse.h, matrix.h
28 */
29
30 #include <stdio.h>
31 #include <math.h>
32 #include <stdlib.h>
33 #include "sparse.h"
34
35
36 static char rcsid[] = "$Id: sparse.c 3865 2011-11-02 06:38:43Z ycollet $";
37
38 #define MINROWLEN 10
39
40
41
42 /* sp_get_val -- returns the (i,j) entry of the sparse matrix A */
43 double sp_get_val(A,i,j)
44 SPMAT *A;
45 int i, j;
46 {
47 SPROW *r;
48 int idx;
49
50 if ( A == SMNULL )
51 error(E_NULL,"sp_get_val");
52 if ( i < 0 || i >= A->m || j < 0 || j >= A->n )
53 error(E_SIZES,"sp_get_val");
54
55 r = A->row+i;
56 idx = sprow_idx(r,j);
57 if ( idx < 0 )
58 return 0.0;
59 /* else */
60 return r->elt[idx].val;
61 }
62
63 /* sp_set_val -- sets the (i,j) entry of the sparse matrix A */
64 double sp_set_val(A,i,j,val)
65 SPMAT *A;
66 int i, j;
67 double val;
68 {
69 SPROW *r;
70 int idx, idx2, new_len;
71
72 if ( A == SMNULL )
73 error(E_NULL,"sp_set_val");
74 if ( i < 0 || i >= A->m || j < 0 || j >= A->n )
75 error(E_SIZES,"sp_set_val");
76
77 r = A->row+i;
78 idx = sprow_idx(r,j);
79 /* printf("sp_set_val: idx = %d\n",idx); */
80 if ( idx >= 0 )
81 { r->elt[idx].val = val; return val; }
82 /* else */ if ( idx < -1 )
83 {
84 /* Note: this destroys the column & diag access paths */
85 A->flag_col = A->flag_diag = FALSE;
86 /* shift & insert new value */
87 idx = -(idx+2); /* this is the intended insertion index */
88 if ( r->len >= r->maxlen )
89 {
90 r->len = r->maxlen;
91 new_len = max(2*r->maxlen+1,5);
92 if (mem_info_is_on()) {
93 mem_bytes(TYPE_SPMAT,A->row[i].maxlen*sizeof(row_elt),
94 new_len*sizeof(row_elt));
95 }
96
97 r->elt = RENEW(r->elt,new_len,row_elt);
98 if ( ! r->elt ) /* can't allocate */
99 error(E_MEM,"sp_set_val");
100 r->maxlen = 2*r->maxlen+1;
101 }
102 for ( idx2 = r->len-1; idx2 >= idx; idx2-- )
103 MEM_COPY((char *)(&(r->elt[idx2])),
104 (char *)(&(r->elt[idx2+1])),sizeof(row_elt));
105 /************************************************************
106 if ( idx < r->len )
107 MEM_COPY((char *)(&(r->elt[idx])),(char *)(&(r->elt[idx+1])),
108 (r->len-idx)*sizeof(row_elt));
109 ************************************************************/
110 r->len++;
111 r->elt[idx].col = j;
112 return r->elt[idx].val = val;
113 }
114 /* else -- idx == -1, error in index/matrix! */
115 return 0.0;
116 }
117
118 /* sp_mv_mlt -- sparse matrix/dense vector multiply
119 -- result is in out, which is returned unless out==NULL on entry
120 -- if out==NULL on entry then the result vector is created */
121 VEC *sp_mv_mlt(A,x,out)
122 SPMAT *A;
123 VEC *x, *out;
124 {
125 int i, j_idx, m, n, max_idx;
126 Real sum, *x_ve;
127 SPROW *r;
128 row_elt *elts;
129
130 if ( ! A || ! x )
131 error(E_NULL,"sp_mv_mlt");
132 if ( x->dim != A->n )
133 error(E_SIZES,"sp_mv_mlt");
134 if ( ! out || out->dim < A->m )
135 out = v_resize(out,A->m);
136 if ( out == x )
137 error(E_INSITU,"sp_mv_mlt");
138 m = A->m; n = A->n;
139 x_ve = x->ve;
140
141 for ( i = 0; i < m; i++ )
142 {
143 sum = 0.0;
144 r = &(A->row[i]);
145 max_idx = r->len;
146 elts = r->elt;
147 for ( j_idx = 0; j_idx < max_idx; j_idx++, elts++ )
148 sum += elts->val*x_ve[elts->col];
149 out->ve[i] = sum;
150 }
151 return out;
152 }
153
154 /* sp_vm_mlt -- sparse matrix/dense vector multiply from left
155 -- result is in out, which is returned unless out==NULL on entry
156 -- if out==NULL on entry then result vector is created & returned */
157 VEC *sp_vm_mlt(A,x,out)
158 SPMAT *A;
159 VEC *x, *out;
160 {
161 int i, j_idx, m, n, max_idx;
162 Real tmp, *x_ve, *out_ve;
163 SPROW *r;
164 row_elt *elts;
165
166 if ( ! A || ! x )
167 error(E_NULL,"sp_vm_mlt");
168 if ( x->dim != A->m )
169 error(E_SIZES,"sp_vm_mlt");
170 if ( ! out || out->dim < A->n )
171 out = v_resize(out,A->n);
172 if ( out == x )
173 error(E_INSITU,"sp_vm_mlt");
174
175 m = A->m; n = A->n;
176 v_zero(out);
177 x_ve = x->ve; out_ve = out->ve;
178
179 for ( i = 0; i < m; i++ )
180 {
181 r = A->row+i;
182 max_idx = r->len;
183 elts = r->elt;
184 tmp = x_ve[i];
185 for ( j_idx = 0; j_idx < max_idx; j_idx++, elts++ )
186 out_ve[elts->col] += elts->val*tmp;
187 }
188
189 return out;
190 }
191
192
193 /* sp_get -- get sparse matrix
194 -- len is number of elements available for each row without
195 allocating further memory */
196 SPMAT *sp_get(m,n,maxlen)
197 int m, n, maxlen;
198 {
199 SPMAT *A;
200 SPROW *rows;
201 int i;
202
203 if ( m < 0 || n < 0 )
204 error(E_NEG,"sp_get");
205
206 maxlen = max(maxlen,1);
207
208 A = NEW(SPMAT);
209 if ( ! A ) /* can't allocate */
210 error(E_MEM,"sp_get");
211 else if (mem_info_is_on()) {
212 mem_bytes(TYPE_SPMAT,0,sizeof(SPMAT));
213 mem_numvar(TYPE_SPMAT,1);
214 }
215 /* fprintf(stderr,"Have SPMAT structure\n"); */
216
217 A->row = rows = NEW_A(m,SPROW);
218 if ( ! A->row ) /* can't allocate */
219 error(E_MEM,"sp_get");
220 else if (mem_info_is_on()) {
221 mem_bytes(TYPE_SPMAT,0,m*sizeof(SPROW));
222 }
223 /* fprintf(stderr,"Have row structure array\n"); */
224
225 A->start_row = NEW_A(n,int);
226 A->start_idx = NEW_A(n,int);
227 if ( ! A->start_row || ! A->start_idx ) /* can't allocate */
228 error(E_MEM,"sp_get");
229 else if (mem_info_is_on()) {
230 mem_bytes(TYPE_SPMAT,0,2*n*sizeof(int));
231 }
232 for ( i = 0; i < n; i++ )
233 A->start_row[i] = A->start_idx[i] = -1;
234 /* fprintf(stderr,"Have start_row array\n"); */
235
236 A->m = A->max_m = m;
237 A->n = A->max_n = n;
238
239 for ( i = 0; i < m; i++, rows++ )
240 {
241 rows->elt = NEW_A(maxlen,row_elt);
242 if ( ! rows->elt )
243 error(E_MEM,"sp_get");
244 else if (mem_info_is_on()) {
245 mem_bytes(TYPE_SPMAT,0,maxlen*sizeof(row_elt));
246 }
247 /* fprintf(stderr,"Have row %d element array\n",i); */
248 rows->len = 0;
249 rows->maxlen = maxlen;
250 rows->diag = -1;
251 }
252
253 return A;
254 }
255
256
257 /* sp_free -- frees up the memory for a sparse matrix */
258 int sp_free(A)
259 SPMAT *A;
260 {
261 SPROW *r;
262 int i;
263
264 if ( ! A )
265 return -1;
266 if ( A->start_row != (int *)NULL ) {
267 if (mem_info_is_on()) {
268 mem_bytes(TYPE_SPMAT,A->max_n*sizeof(int),0);
269 }
270 free((char *)(A->start_row));
271 }
272 if ( A->start_idx != (int *)NULL ) {
273 if (mem_info_is_on()) {
274 mem_bytes(TYPE_SPMAT,A->max_n*sizeof(int),0);
275 }
276
277 free((char *)(A->start_idx));
278 }
279 if ( ! A->row )
280 {
281 if (mem_info_is_on()) {
282 mem_bytes(TYPE_SPMAT,sizeof(SPMAT),0);
283 mem_numvar(TYPE_SPMAT,-1);
284 }
285
286 free((char *)A);
287 return 0;
288 }
289 for ( i = 0; i < A->m; i++ )
290 {
291 r = &(A->row[i]);
292 if ( r->elt != (row_elt *)NULL ) {
293 if (mem_info_is_on()) {
294 mem_bytes(TYPE_SPMAT,A->row[i].maxlen*sizeof(row_elt),0);
295 }
296 free((char *)(r->elt));
297 }
298 }
299
300 if (mem_info_is_on()) {
301 if (A->row)
302 mem_bytes(TYPE_SPMAT,A->max_m*sizeof(SPROW),0);
303 mem_bytes(TYPE_SPMAT,sizeof(SPMAT),0);
304 mem_numvar(TYPE_SPMAT,-1);
305 }
306
307 free((char *)(A->row));
308 free((char *)A);
309
310 return 0;
311 }
312
313
314 /* sp_copy -- constructs a copy of a given matrix
315 -- note that the max_len fields (etc) are no larger in the copy
316 than necessary
317 -- result is returned */
318 SPMAT *sp_copy(A)
319 SPMAT *A;
320 {
321 SPMAT *out;
322 SPROW *row1, *row2;
323 int i;
324
325 if ( A == SMNULL )
326 error(E_NULL,"sp_copy");
327 if ( ! (out=NEW(SPMAT)) )
328 error(E_MEM,"sp_copy");
329 else if (mem_info_is_on()) {
330 mem_bytes(TYPE_SPMAT,0,sizeof(SPMAT));
331 mem_numvar(TYPE_SPMAT,1);
332 }
333 out->m = out->max_m = A->m; out->n = out->max_n = A->n;
334
335 /* set up rows */
336 if ( ! (out->row=NEW_A(A->m,SPROW)) )
337 error(E_MEM,"sp_copy");
338 else if (mem_info_is_on()) {
339 mem_bytes(TYPE_SPMAT,0,A->m*sizeof(SPROW));
340 }
341 for ( i = 0; i < A->m; i++ )
342 {
343 row1 = &(A->row[i]);
344 row2 = &(out->row[i]);
345 if ( ! (row2->elt=NEW_A(max(row1->len,3),row_elt)) )
346 error(E_MEM,"sp_copy");
347 else if (mem_info_is_on()) {
348 mem_bytes(TYPE_SPMAT,0,max(row1->len,3)*sizeof(row_elt));
349 }
350 row2->len = row1->len;
351 row2->maxlen = max(row1->len,3);
352 row2->diag = row1->diag;
353 MEM_COPY((char *)(row1->elt),(char *)(row2->elt),
354 row1->len*sizeof(row_elt));
355 }
356
357 /* set up start arrays -- for column access */
358 if ( ! (out->start_idx=NEW_A(A->n,int)) ||
359 ! (out->start_row=NEW_A(A->n,int)) )
360 error(E_MEM,"sp_copy");
361 else if (mem_info_is_on()) {
362 mem_bytes(TYPE_SPMAT,0,2*A->n*sizeof(int));
363 }
364 MEM_COPY((char *)(A->start_idx),(char *)(out->start_idx),
365 A->n*sizeof(int));
366 MEM_COPY((char *)(A->start_row),(char *)(out->start_row),
367 A->n*sizeof(int));
368
369 return out;
370 }
371
372 /* sp_col_access -- set column access path; i.e. nxt_row, nxt_idx fields
373 -- returns A */
374 SPMAT *sp_col_access(A)
375 SPMAT *A;
376 {
377 int i, j, j_idx, len, m, n;
378 SPROW *row;
379 row_elt *r_elt;
380 int *start_row, *start_idx;
381
382 if ( A == SMNULL )
383 error(E_NULL,"sp_col_access");
384
385 m = A->m; n = A->n;
386
387 /* initialise start_row and start_idx */
388 start_row = A->start_row; start_idx = A->start_idx;
389 for ( j = 0; j < n; j++ )
390 { *start_row++ = -1; *start_idx++ = -1; }
391
392 start_row = A->start_row; start_idx = A->start_idx;
393
394 /* now work UP the rows, setting nxt_row, nxt_idx fields */
395 for ( i = m-1; i >= 0; i-- )
396 {
397 row = &(A->row[i]);
398 r_elt = row->elt;
399 len = row->len;
400 for ( j_idx = 0; j_idx < len; j_idx++, r_elt++ )
401 {
402 j = r_elt->col;
403 r_elt->nxt_row = start_row[j];
404 r_elt->nxt_idx = start_idx[j];
405 start_row[j] = i;
406 start_idx[j] = j_idx;
407 }
408 }
409
410 A->flag_col = TRUE;
411 return A;
412 }
413
414 /* sp_diag_access -- set diagonal access path(s) */
415 SPMAT *sp_diag_access(A)
416 SPMAT *A;
417 {
418 int i, m;
419 SPROW *row;
420
421 if ( A == SMNULL )
422 error(E_NULL,"sp_diag_access");
423
424 m = A->m;
425
426 row = A->row;
427 for ( i = 0; i < m; i++, row++ )
428 row->diag = sprow_idx(row,i);
429
430 A->flag_diag = TRUE;
431
432 return A;
433 }
434
435 /* sp_m2dense -- convert a sparse matrix to a dense one */
436 MAT *sp_m2dense(A,out)
437 SPMAT *A;
438 MAT *out;
439 {
440 int i, j_idx;
441 SPROW *row;
442 row_elt *elt;
443
444 if ( ! A )
445 error(E_NULL,"sp_m2dense");
446 if ( ! out || out->m < A->m || out->n < A->n )
447 out = m_get(A->m,A->n);
448
449 m_zero(out);
450 for ( i = 0; i < A->m; i++ )
451 {
452 row = &(A->row[i]);
453 elt = row->elt;
454 for ( j_idx = 0; j_idx < row->len; j_idx++, elt++ )
455 out->me[i][elt->col] = elt->val;
456 }
457
458 return out;
459 }
460
461
462 /* C = A+B, can be in situ */
463 SPMAT *sp_add(A,B,C)
464 SPMAT *A, *B, *C;
465 {
466 int i, in_situ;
467 SPROW *rc;
468 static SPROW *tmp;
469
470 if ( ! A || ! B )
471 error(E_NULL,"sp_add");
472 if ( A->m != B->m || A->n != B->n )
473 error(E_SIZES,"sp_add");
474 if (C == A || C == B)
475 in_situ = TRUE;
476 else in_situ = FALSE;
477
478 if ( ! C )
479 C = sp_get(A->m,A->n,5);
480 else {
481 if ( C->m != A->m || C->n != A->n )
482 error(E_SIZES,"sp_add");
483 if (!in_situ) sp_zero(C);
484 }
485
486 if (tmp == (SPROW *)NULL && in_situ) {
487 tmp = sprow_get(MINROWLEN);
488 MEM_STAT_REG(tmp,TYPE_SPROW);
489 }
490
491 if (in_situ)
492 for (i=0; i < A->m; i++) {
493 rc = &(C->row[i]);
494 sprow_add(&(A->row[i]),&(B->row[i]),0,tmp,TYPE_SPROW);
495 sprow_resize(rc,tmp->len,TYPE_SPMAT);
496 MEM_COPY(tmp->elt,rc->elt,tmp->len*sizeof(row_elt));
497 rc->len = tmp->len;
498 }
499 else
500 for (i=0; i < A->m; i++) {
501 sprow_add(&(A->row[i]),&(B->row[i]),0,&(C->row[i]),TYPE_SPMAT);
502 }
503
504 C->flag_col = C->flag_diag = FALSE;
505
506 return C;
507 }
508
509 /* C = A-B, cannot be in situ */
510 SPMAT *sp_sub(A,B,C)
511 SPMAT *A, *B, *C;
512 {
513 int i, in_situ;
514 SPROW *rc;
515 static SPROW *tmp;
516
517 if ( ! A || ! B )
518 error(E_NULL,"sp_sub");
519 if ( A->m != B->m || A->n != B->n )
520 error(E_SIZES,"sp_sub");
521 if (C == A || C == B)
522 in_situ = TRUE;
523 else in_situ = FALSE;
524
525 if ( ! C )
526 C = sp_get(A->m,A->n,5);
527 else {
528 if ( C->m != A->m || C->n != A->n )
529 error(E_SIZES,"sp_sub");
530 if (!in_situ) sp_zero(C);
531 }
532
533 if (tmp == (SPROW *)NULL && in_situ) {
534 tmp = sprow_get(MINROWLEN);
535 MEM_STAT_REG(tmp,TYPE_SPROW);
536 }
537
538 if (in_situ)
539 for (i=0; i < A->m; i++) {
540 rc = &(C->row[i]);
541 sprow_sub(&(A->row[i]),&(B->row[i]),0,tmp,TYPE_SPROW);
542 sprow_resize(rc,tmp->len,TYPE_SPMAT);
543 MEM_COPY(tmp->elt,rc->elt,tmp->len*sizeof(row_elt));
544 rc->len = tmp->len;
545 }
546 else
547 for (i=0; i < A->m; i++) {
548 sprow_sub(&(A->row[i]),&(B->row[i]),0,&(C->row[i]),TYPE_SPMAT);
549 }
550
551 C->flag_col = C->flag_diag = FALSE;
552
553 return C;
554 }
555
556 /* C = A+alpha*B, cannot be in situ */
557 SPMAT *sp_mltadd(A,B,alpha,C)
558 SPMAT *A, *B, *C;
559 double alpha;
560 {
561 int i, in_situ;
562 SPROW *rc;
563 static SPROW *tmp;
564
565 if ( ! A || ! B )
566 error(E_NULL,"sp_mltadd");
567 if ( A->m != B->m || A->n != B->n )
568 error(E_SIZES,"sp_mltadd");
569 if (C == A || C == B)
570 in_situ = TRUE;
571 else in_situ = FALSE;
572
573 if ( ! C )
574 C = sp_get(A->m,A->n,5);
575 else {
576 if ( C->m != A->m || C->n != A->n )
577 error(E_SIZES,"sp_mltadd");
578 if (!in_situ) sp_zero(C);
579 }
580
581 if (tmp == (SPROW *)NULL && in_situ) {
582 tmp = sprow_get(MINROWLEN);
583 MEM_STAT_REG(tmp,TYPE_SPROW);
584 }
585
586 if (in_situ)
587 for (i=0; i < A->m; i++) {
588 rc = &(C->row[i]);
589 sprow_mltadd(&(A->row[i]),&(B->row[i]),alpha,0,tmp,TYPE_SPROW);
590 sprow_resize(rc,tmp->len,TYPE_SPMAT);
591 MEM_COPY(tmp->elt,rc->elt,tmp->len*sizeof(row_elt));
592 rc->len = tmp->len;
593 }
594 else
595 for (i=0; i < A->m; i++) {
596 sprow_mltadd(&(A->row[i]),&(B->row[i]),alpha,0,
597 &(C->row[i]),TYPE_SPMAT);
598 }
599
600 C->flag_col = C->flag_diag = FALSE;
601
602 return C;
603 }
604
605
606
607 /* B = alpha*A, can be in situ */
608 SPMAT *sp_smlt(A,alpha,B)
609 SPMAT *A, *B;
610 double alpha;
611 {
612 int i;
613
614 if ( ! A )
615 error(E_NULL,"sp_smlt");
616 if ( ! B )
617 B = sp_get(A->m,A->n,5);
618 else
619 if ( A->m != B->m || A->n != B->n )
620 error(E_SIZES,"sp_smlt");
621
622 for (i=0; i < A->m; i++) {
623 sprow_smlt(&(A->row[i]),alpha,0,&(B->row[i]),TYPE_SPMAT);
624 }
625 return B;
626 }
627
628
629
630 /* sp_zero -- zero all the (represented) elements of a sparse matrix */
631 SPMAT *sp_zero(A)
632 SPMAT *A;
633 {
634 int i, idx, len;
635 row_elt *elt;
636
637 if ( ! A )
638 error(E_NULL,"sp_zero");
639
640 for ( i = 0; i < A->m; i++ )
641 {
642 elt = A->row[i].elt;
643 len = A->row[i].len;
644 for ( idx = 0; idx < len; idx++ )
645 (*elt++).val = 0.0;
646 }
647
648 return A;
649 }
650
651 /* sp_copy2 -- copy sparse matrix (type 2)
652 -- keeps structure of the out matrix */
653 SPMAT *sp_copy2(A,out)
654 SPMAT *A, *out;
655 {
656 int i /* , idx, len1, len2 */;
657 SPROW *r1, *r2;
658 static SPROW *scratch = (SPROW *)NULL;
659 /* row_elt *e1, *e2; */
660
661 if ( ! A )
662 error(E_NULL,"sp_copy2");
663 if ( ! out )
664 out = sp_get(A->m,A->n,10);
665 if ( ! scratch ) {
666 scratch = sprow_xpd(scratch,MINROWLEN,TYPE_SPROW);
667 MEM_STAT_REG(scratch,TYPE_SPROW);
668 }
669
670 if ( out->m < A->m )
671 {
672 if (mem_info_is_on()) {
673 mem_bytes(TYPE_SPMAT,A->max_m*sizeof(SPROW),
674 A->m*sizeof(SPROW));
675 }
676
677 out->row = RENEW(out->row,A->m,SPROW);
678 if ( ! out->row )
679 error(E_MEM,"sp_copy2");
680
681 for ( i = out->m; i < A->m; i++ )
682 {
683 out->row[i].elt = NEW_A(MINROWLEN,row_elt);
684 if ( ! out->row[i].elt )
685 error(E_MEM,"sp_copy2");
686 else if (mem_info_is_on()) {
687 mem_bytes(TYPE_SPMAT,0,MINROWLEN*sizeof(row_elt));
688 }
689
690 out->row[i].maxlen = MINROWLEN;
691 out->row[i].len = 0;
692 }
693 out->m = A->m;
694 }
695
696 out->flag_col = out->flag_diag = FALSE;
697 /* sp_zero(out); */
698
699 for ( i = 0; i < A->m; i++ )
700 {
701 r1 = &(A->row[i]); r2 = &(out->row[i]);
702 sprow_copy(r1,r2,scratch,TYPE_SPROW);
703 if ( r2->maxlen < scratch->len )
704 sprow_xpd(r2,scratch->len,TYPE_SPMAT);
705 MEM_COPY((char *)(scratch->elt),(char *)(r2->elt),
706 scratch->len*sizeof(row_elt));
707 r2->len = scratch->len;
708 /*******************************************************
709 e1 = r1->elt; e2 = r2->elt;
710 len1 = r1->len; len2 = r2->len;
711 for ( idx = 0; idx < len2; idx++, e2++ )
712 e2->val = 0.0;
713 for ( idx = 0; idx < len1; idx++, e1++ )
714 sprow_set_val(r2,e1->col,e1->val);
715 *******************************************************/
716 }
717
718 sp_col_access(out);
719 return out;
720 }
721
722 /* sp_resize -- resize a sparse matrix
723 -- don't destroying any contents if possible
724 -- returns resized matrix */
725 SPMAT *sp_resize(A,m,n)
726 SPMAT *A;
727 int m, n;
728 {
729 int i, len;
730 SPROW *r;
731
732 if (m < 0 || n < 0)
733 error(E_NEG,"sp_resize");
734
735 if ( ! A )
736 return sp_get(m,n,10);
737
738 if (m == A->m && n == A->n)
739 return A;
740
741 if ( m <= A->max_m )
742 {
743 for ( i = A->m; i < m; i++ )
744 A->row[i].len = 0;
745 A->m = m;
746 }
747 else
748 {
749 if (mem_info_is_on()) {
750 mem_bytes(TYPE_SPMAT,A->max_m*sizeof(SPROW),
751 m*sizeof(SPROW));
752 }
753
754 A->row = RENEW(A->row,(unsigned)m,SPROW);
755 if ( ! A->row )
756 error(E_MEM,"sp_resize");
757 for ( i = A->m; i < m; i++ )
758 {
759 if ( ! (A->row[i].elt = NEW_A(MINROWLEN,row_elt)) )
760 error(E_MEM,"sp_resize");
761 else if (mem_info_is_on()) {
762 mem_bytes(TYPE_SPMAT,0,MINROWLEN*sizeof(row_elt));
763 }
764 A->row[i].len = 0; A->row[i].maxlen = MINROWLEN;
765 }
766 A->m = A->max_m = m;
767 }
768
769 /* update number of rows */
770 A->n = n;
771
772 /* do we need to increase the size of start_idx[] and start_row[] ? */
773 if ( n > A->max_n )
774 { /* only have to update the start_idx & start_row arrays */
775 if (mem_info_is_on())
776 {
777 mem_bytes(TYPE_SPMAT,2*A->max_n*sizeof(int),
778 2*n*sizeof(int));
779 }
780
781 A->start_row = RENEW(A->start_row,(unsigned)n,int);
782 A->start_idx = RENEW(A->start_idx,(unsigned)n,int);
783 if ( ! A->start_row || ! A->start_idx )
784 error(E_MEM,"sp_resize");
785 A->max_n = n; /* ...and update max_n */
786
787 return A;
788 }
789
790 if ( n <= A->n )
791 /* make sure that all rows are truncated just before column n */
792 for ( i = 0; i < A->m; i++ )
793 {
794 r = &(A->row[i]);
795 len = sprow_idx(r,n);
796 if ( len < 0 )
797 len = -(len+2);
798 if ( len < 0 )
799 error(E_MEM,"sp_resize");
800 r->len = len;
801 }
802
803 return A;
804 }
805
806
807 /* sp_compact -- removes zeros and near-zeros from a sparse matrix */
808 SPMAT *sp_compact(A,tol)
809 SPMAT *A;
810 double tol;
811 {
812 int i, idx1, idx2;
813 SPROW *r;
814 row_elt *elt1, *elt2;
815
816 if ( ! A )
817 error(E_NULL,"sp_compact");
818 if ( tol < 0.0 )
819 error(E_RANGE,"sp_compact");
820
821 A->flag_col = A->flag_diag = FALSE;
822
823 for ( i = 0; i < A->m; i++ )
824 {
825 r = &(A->row[i]);
826 elt1 = elt2 = r->elt;
827 idx1 = idx2 = 0;
828 while ( idx1 < r->len )
829 {
830 /* printf("# sp_compact: idx1 = %d, idx2 = %d\n",idx1,idx2); */
831 if ( fabs(elt1->val) <= tol )
832 { idx1++; elt1++; continue; }
833 if ( elt1 != elt2 )
834 MEM_COPY(elt1,elt2,sizeof(row_elt));
835 idx1++; elt1++;
836 idx2++; elt2++;
837 }
838 r->len = idx2;
839 }
840
841 return A;
842 }
843
844 /* varying number of arguments */
845
846 #ifdef ANSI_C
847
848 /* To allocate memory to many arguments.
849 The function should be called:
850 sp_get_vars(m,n,deg,&x,&y,&z,...,NULL);
851 where
852 int m,n,deg;
853 SPMAT *x, *y, *z,...;
854 The last argument should be NULL !
855 m x n is the dimension of matrices x,y,z,...
856 returned value is equal to the number of allocated variables
857 */
858
859 int sp_get_vars(int m,int n,int deg,...)
860 {
861 va_list ap;
862 int i=0;
863 SPMAT **par;
864
865 va_start(ap, deg);
866 while (par = va_arg(ap,SPMAT **)) { /* NULL ends the list*/
867 *par = sp_get(m,n,deg);
868 i++;
869 }
870
871 va_end(ap);
872 return i;
873 }
874
875
876 /* To resize memory for many arguments.
877 The function should be called:
878 sp_resize_vars(m,n,&x,&y,&z,...,NULL);
879 where
880 int m,n;
881 SPMAT *x, *y, *z,...;
882 The last argument should be NULL !
883 m X n is the resized dimension of matrices x,y,z,...
884 returned value is equal to the number of allocated variables.
885 If one of x,y,z,.. arguments is NULL then memory is allocated to this
886 argument.
887 */
888
889 int sp_resize_vars(int m,int n,...)
890 {
891 va_list ap;
892 int i=0;
893 SPMAT **par;
894
895 va_start(ap, n);
896 while (par = va_arg(ap,SPMAT **)) { /* NULL ends the list*/
897 *par = sp_resize(*par,m,n);
898 i++;
899 }
900
901 va_end(ap);
902 return i;
903 }
904
905 /* To deallocate memory for many arguments.
906 The function should be called:
907 sp_free_vars(&x,&y,&z,...,NULL);
908 where
909 SPMAT *x, *y, *z,...;
910 The last argument should be NULL !
911 There must be at least one not NULL argument.
912 returned value is equal to the number of allocated variables.
913 Returned value of x,y,z,.. is VNULL.
914 */
915
916 int sp_free_vars(SPMAT **va,...)
917 {
918 va_list ap;
919 int i=1;
920 SPMAT **par;
921
922 sp_free(*va);
923 *va = (SPMAT *) NULL;
924 va_start(ap, va);
925 while (par = va_arg(ap,SPMAT **)) { /* NULL ends the list*/
926 sp_free(*par);
927 *par = (SPMAT *)NULL;
928 i++;
929 }
930
931 va_end(ap);
932 return i;
933 }
934
935
936 #elif VARARGS
937
938 /* To allocate memory to many arguments.
939 The function should be called:
940 sp_get_vars(m,n,deg,&x,&y,&z,...,NULL);
941 where
942 int m,n,deg;
943 SPMAT *x, *y, *z,...;
944 The last argument should be NULL !
945 m x n is the dimension of matrices x,y,z,...
946 returned value is equal to the number of allocated variables
947 */
948
949 int sp_get_vars(va_alist) va_dcl
950 {
951 va_list ap;
952 int i=0, m, n, deg;
953 SPMAT **par;
954
955 va_start(ap);
956 m = va_arg(ap,int);
957 n = va_arg(ap,int);
958 deg = va_arg(ap,int);
959 while (par = va_arg(ap,SPMAT **)) { /* NULL ends the list*/
960 *par = sp_get(m,n,deg);
961 i++;
962 }
963
964 va_end(ap);
965 return i;
966 }
967
968
969 /* To resize memory for many arguments.
970 The function should be called:
971 sp_resize_vars(m,n,&x,&y,&z,...,NULL);
972 where
973 int m,n;
974 SPMAT *x, *y, *z,...;
975 The last argument should be NULL !
976 m X n is the resized dimension of matrices x,y,z,...
977 returned value is equal to the number of allocated variables.
978 If one of x,y,z,.. arguments is NULL then memory is allocated to this
979 argument.
980 */
981
982 int sp_resize_vars(va_alist) va_dcl
983 {
984 va_list ap;
985 int i=0, m, n;
986 SPMAT **par;
987
988 va_start(ap);
989 m = va_arg(ap,int);
990 n = va_arg(ap,int);
991 while (par = va_arg(ap,SPMAT **)) { /* NULL ends the list*/
992 *par = sp_resize(*par,m,n);
993 i++;
994 }
995
996 va_end(ap);
997 return i;
998 }
999
1000
1001
1002 /* To deallocate memory for many arguments.
1003 The function should be called:
1004 sp_free_vars(&x,&y,&z,...,NULL);
1005 where
1006 SPMAT *x, *y, *z,...;
1007 The last argument should be NULL !
1008 There must be at least one not NULL argument.
1009 returned value is equal to the number of allocated variables.
1010 Returned value of x,y,z,.. is VNULL.
1011 */
1012
1013 int sp_free_vars(va_alist) va_dcl
1014 {
1015 va_list ap;
1016 int i=0;
1017 SPMAT **par;
1018
1019 va_start(ap);
1020 while (par = va_arg(ap,SPMAT **)) { /* NULL ends the list*/
1021 sp_free(*par);
1022 *par = (SPMAT *)NULL;
1023 i++;
1024 }
1025
1026 va_end(ap);
1027 return i;
1028 }
1029
1030
1031
1032 #endif
1033
+0
-219
interface/src/scilab/src/c/sparse.h less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Header for sparse matrix stuff.
28 Basic sparse routines to be held in sparse.c
29 */
30
31 /* RCS id: $Id: sparse.h 3690 2010-09-02 09:55:19Z lsaavedr $ */
32
33 #ifndef SPARSEH
34
35 #define SPARSEH
36
37
38 #include "matrix.h"
39
40
41 /* basic sparse types */
42
43 typedef struct row_elt {
44 int col, nxt_row, nxt_idx;
45 Real val;
46 } row_elt;
47
48 typedef struct SPROW {
49 int len, maxlen, diag;
50 row_elt *elt; /* elt[maxlen] */
51 } SPROW;
52
53 typedef struct SPMAT {
54 int m, n, max_m, max_n;
55 char flag_col, flag_diag;
56 SPROW *row; /* row[max_m] */
57 int *start_row; /* start_row[max_n] */
58 int *start_idx; /* start_idx[max_n] */
59 } SPMAT;
60
61 /* Note that the first allocated entry in column j is start_row[j];
62 This starts the chain down the columns using the nxt_row and nxt_idx
63 fields of each entry in each row. */
64
65 typedef struct pair { int pos; Real val; } pair;
66
67 typedef struct SPVEC {
68 int dim, max_dim;
69 pair *elt; /* elt[max_dim] */
70 } SPVEC;
71
72 #define SMNULL ((SPMAT*)NULL)
73 #define SVNULL ((SPVEC*)NULL)
74
75 /* Macro for speedup */
76 #define sprow_idx2(r,c,hint) \
77 ( ( (hint) >= 0 && (hint) < (r)->len && \
78 (r)->elt[hint].col == (c)) ? (hint) : sprow_idx((r),(c)) )
79
80
81
82 /* memory functions */
83
84 #ifdef ANSI_C
85 int sp_get_vars(int m,int n,int deg,...);
86 int sp_resize_vars(int m,int n,...);
87 int sp_free_vars(SPMAT **,...);
88 #elif VARARGS
89 int sp_get_vars();
90 int sp_resize_vars();
91 int sp_free_vars();
92
93 #endif
94
95 /* Sparse Matrix Operations and Utilities */
96 #ifndef ANSI_C
97 extern SPMAT *sp_get(), *sp_copy(), *sp_copy2(),
98 *sp_zero(), *sp_resize(), *sp_compact();
99 extern double sp_get_val(), sp_set_val();
100 extern VEC *sp_mv_mlt(), *sp_vm_mlt();
101 extern int sp_free();
102
103 /* Access path operations */
104 extern SPMAT *sp_col_access();
105 extern SPMAT *sp_diag_access();
106 extern int chk_col_access();
107
108 /* Input/output operations */
109 extern SPMAT *sp_finput();
110 extern void sp_foutput(), sp_foutput2();
111
112 /* algebraic operations */
113 extern SPMAT *sp_smlt(), *sp_add(), *sp_sub(), *sp_mltadd();
114
115
116 /* sparse row operations */
117 extern SPROW *sprow_get(), *sprow_xpd(), *sprow_merge(), *sprow_mltadd(),
118 *sprow_resize(), *sprow_copy();
119 extern SPROW *sprow_add(), *sprow_sub(), *sprow_smlt();
120 extern double sprow_set_val();
121 extern void sprow_foutput();
122 extern int sprow_idx(), sprow_free();
123
124 /* dump */
125 extern void sp_dump(), sprow_dump();
126 extern MAT *sp_m2dense();
127
128 #else
129 SPMAT *sp_get(int,int,int), *sp_copy(SPMAT *),
130 *sp_copy2(SPMAT *,SPMAT *),
131 *sp_zero(SPMAT *), *sp_resize(SPMAT *,int,int),
132 *sp_compact(SPMAT *,double);
133 double sp_get_val(SPMAT *,int,int), sp_set_val(SPMAT *,int,int,double);
134 VEC *sp_mv_mlt(SPMAT *,VEC *,VEC *), *sp_vm_mlt(SPMAT *,VEC *,VEC *);
135 int sp_free(SPMAT *);
136
137 /* Access path operations */
138 SPMAT *sp_col_access(SPMAT *);
139 SPMAT *sp_diag_access(SPMAT *);
140 int chk_col_access(SPMAT *);
141
142 /* Input/output operations */
143 SPMAT *sp_finput(FILE *);
144 void sp_foutput(FILE *,SPMAT *), sp_foutput2(FILE *,SPMAT *);
145
146 /* algebraic operations */
147 SPMAT *sp_smlt(SPMAT *A,double alpha,SPMAT *B),
148 *sp_add(SPMAT *A,SPMAT *B,SPMAT *C),
149 *sp_sub(SPMAT *A,SPMAT *B,SPMAT *C),
150 *sp_mltadd(SPMAT *A,SPMAT *B,double alpha,SPMAT *C);
151
152 /* sparse row operations */
153 SPROW *sprow_get(int), *sprow_xpd(SPROW *r,int n,int type),
154 *sprow_resize(SPROW *r,int n,int type),
155 *sprow_merge(SPROW *,SPROW *,SPROW *,int type),
156 *sprow_copy(SPROW *,SPROW *,SPROW *,int type),
157 *sprow_mltadd(SPROW *,SPROW *,double,int,SPROW *,int type);
158 SPROW *sprow_add(SPROW *r1,SPROW *r2, int j0,SPROW *r_out, int type),
159 *sprow_sub(SPROW *r1,SPROW *r2, int j0,SPROW *r_out, int type),
160 *sprow_smlt(SPROW *r1,double alpha, int j0,SPROW *r_out, int type);
161 double sprow_set_val(SPROW *,int,double);
162 int sprow_free(SPROW *);
163 int sprow_idx(SPROW *,int);
164 void sprow_foutput(FILE *,SPROW *);
165
166 /* dump */
167 void sp_dump(FILE *fp, SPMAT *A);
168 void sprow_dump(FILE *fp, SPROW *r);
169 MAT *sp_m2dense(SPMAT *A,MAT *out);
170
171 #endif
172
173 /* MACROS */
174
175 #define sp_input() sp_finput(stdin)
176 #define sp_output(A) sp_foutput(stdout,(A))
177 #define sp_output2(A) sp_foutput2(stdout,(A))
178 #define row_mltadd(r1,r2,alpha,out) sprow_mltadd(r1,r2,alpha,0,out)
179 #define out_row(r) sprow_foutput(stdout,(r))
180
181 #define SP_FREE(A) ( sp_free((A)), (A)=(SPMAT *)NULL)
182
183 /* utility for index computations -- ensures index returned >= 0 */
184 #define fixindex(idx) ((idx) == -1 ? (error(E_BOUNDS,"fixindex"),0) : \
185 (idx) < 0 ? -((idx)+2) : (idx))
186
187
188 /* NOT USED */
189
190 /* loop over the columns in a row */
191 /*
192 #define loop_cols(r,e,code) \
193 do { int _r_idx; row_elt *e; SPROW *_t_row; \
194 _t_row = (r); e = &(_t_row->elt); \
195 for ( _r_idx = 0; _r_idx < _t_row->len; _r_idx++, e++ ) \
196 { code; } } while ( 0 )
197 */
198 /* loop over the rows in a column */
199 /*
200 #define loop_cols(A,col,e,code) \
201 do { int _r_num, _r_idx, _c; SPROW *_r; row_elt *e; \
202 if ( ! (A)->flag_col ) sp_col_access((A)); \
203 col_num = (col); \
204 if ( col_num < 0 || col_num >= A->n ) \
205 error(E_BOUNDS,"loop_cols"); \
206 _r_num = (A)->start_row[_c]; _r_idx = (A)->start_idx[_c]; \
207 while ( _r_num >= 0 ) { \
208 _r = &((A)->row[_r_num]); \
209 _r_idx = sprow_idx2(_r,_c,_r_idx); \
210 if ( _r_idx < 0 ) continue; \
211 e = &(_r->elt[_r_idx]); code; \
212 _r_num = e->nxt_row; _r_idx = e->nxt_idx; \
213 } } while ( 0 )
214
215 */
216
217 #endif
218
+0
-95
interface/src/scilab/src/c/sparse2.h less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* Sparse matrix factorise/solve header */
27 /* RCS id: $Id: sparse2.h 3690 2010-09-02 09:55:19Z lsaavedr $ */
28
29
30
31 #ifndef SPARSE2H
32
33 #define SPARSE2H
34
35 #include "sparse.h"
36
37
38 #ifdef ANSI_C
39 SPMAT *spCHfactor(SPMAT *), *spICHfactor(SPMAT *), *spCHsymb(SPMAT *);
40 VEC *spCHsolve(SPMAT *,VEC *,VEC *);
41
42 SPMAT *spLUfactor(SPMAT *,PERM *,double);
43 SPMAT *spILUfactor(SPMAT *,double);
44 VEC *spLUsolve(SPMAT *,PERM *,VEC *,VEC *),
45 *spLUTsolve(SPMAT *,PERM *,VEC *,VEC *);
46
47 SPMAT *spBKPfactor(SPMAT *, PERM *, PERM *, double);
48 VEC *spBKPsolve(SPMAT *, PERM *, PERM *, VEC *, VEC *);
49
50 VEC *pccg(VEC *(*A)(),void *A_par,VEC *(*M_inv)(),void *M_par,VEC *b,
51 double tol,VEC *x);
52 VEC *sp_pccg(SPMAT *,SPMAT *,VEC *,double,VEC *);
53 VEC *cgs(VEC *(*A)(),void *A_par,VEC *b,VEC *r0,double tol,VEC *x);
54 VEC *sp_cgs(SPMAT *,VEC *,VEC *,double,VEC *);
55 VEC *lsqr(VEC *(*A)(),VEC *(*AT)(),void *A_par,VEC *b,double tol,VEC *x);
56 VEC *sp_lsqr(SPMAT *,VEC *,double,VEC *);
57 int cg_set_maxiter(int);
58
59 void lanczos(VEC *(*A)(),void *A_par,int m,VEC *x0,VEC *a,VEC *b,
60 Real *beta_m1,MAT *Q);
61 void sp_lanczos(SPMAT *,int,VEC *,VEC *,VEC *,Real *,MAT *);
62 VEC *lanczos2(VEC *(*A)(),void *A_par,int m,VEC *x0,VEC *evals,
63 VEC *err_est);
64 VEC *sp_lanczos2(SPMAT *,int,VEC *,VEC *,VEC *);
65 extern void scan_to(SPMAT *,IVEC *,IVEC *,IVEC *,int);
66 extern row_elt *chase_col(SPMAT *,int,int *,int *,int);
67 extern row_elt *chase_past(SPMAT *,int,int *,int *,int);
68 extern row_elt *bump_col(SPMAT *,int,int *,int *);
69
70 #else
71 extern SPMAT *spCHfactor(), *spICHfactor(), *spCHsymb();
72 extern VEC *spCHsolve();
73
74 extern SPMAT *spLUfactor();
75 extern SPMAT *spILUfactor();
76 extern VEC *spLUsolve(), *spLUTsolve();
77
78 extern SPMAT *spBKPfactor();
79 extern VEC *spBKPsolve();
80
81 extern VEC *pccg(), *sp_pccg(), *cgs(), *sp_cgs(), *lsqr(), *sp_lsqr();
82 extern int cg_set_maxiter();
83
84 void lanczos(), sp_lanczos();
85 VEC *lanczos2(), *sp_lanczos2();
86 extern void scan_to();
87 extern row_elt *chase_col();
88 extern row_elt *chase_past();
89 extern row_elt *bump_col();
90
91 #endif
92
93
94 #endif
+0
-315
interface/src/scilab/src/c/sparseio.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 This file has the routines for sparse matrix input/output
28 It works in conjunction with sparse.c, sparse.h etc
29 */
30
31 #include <stdio.h>
32 #include "sparse.h"
33
34 static char rcsid[] = "$Id: sparseio.c 3690 2010-09-02 09:55:19Z lsaavedr $";
35
36
37
38 /* local variables */
39 static char line[MAXLINE];
40
41 /* sp_foutput -- output sparse matrix A to file/stream fp */
42 void sp_foutput(fp,A)
43 FILE *fp;
44 SPMAT *A;
45 {
46 int i, j_idx, m /* , n */;
47 SPROW *rows;
48 row_elt *elts;
49
50 fprintf(fp,"SparseMatrix: ");
51 if ( A == SMNULL )
52 {
53 fprintf(fp,"*** NULL ***\n");
54 error(E_NULL,"sp_foutput"); return;
55 }
56 fprintf(fp,"%d by %d\n",A->m,A->n);
57 m = A->m; /* n = A->n; */
58 if ( ! (rows=A->row) )
59 {
60 fprintf(fp,"*** NULL rows ***\n");
61 error(E_NULL,"sp_foutput"); return;
62 }
63
64 for ( i = 0; i < m; i++ )
65 {
66 fprintf(fp,"row %d: ",i);
67 if ( ! (elts=rows[i].elt) )
68 {
69 fprintf(fp,"*** NULL element list ***\n");
70 continue;
71 }
72 for ( j_idx = 0; j_idx < rows[i].len; j_idx++ )
73 {
74 fprintf(fp,"%d:%-20.15g ",elts[j_idx].col,
75 elts[j_idx].val);
76 if ( j_idx % 3 == 2 && j_idx != rows[i].len-1 )
77 fprintf(fp,"\n ");
78 }
79 fprintf(fp,"\n");
80 }
81 fprintf(fp,"#\n"); /* to stop looking beyond for next entry */
82 }
83
84 /* sp_foutput2 -- print out sparse matrix **as a dense matrix**
85 -- see output format used in matrix.h etc */
86 /******************************************************************
87 void sp_foutput2(fp,A)
88 FILE *fp;
89 SPMAT *A;
90 {
91 int cnt, i, j, j_idx;
92 SPROW *r;
93 row_elt *elt;
94
95 if ( A == SMNULL )
96 {
97 fprintf(fp,"Matrix: *** NULL ***\n");
98 return;
99 }
100 fprintf(fp,"Matrix: %d by %d\n",A->m,A->n);
101 for ( i = 0; i < A->m; i++ )
102 {
103 fprintf(fp,"row %d:",i);
104 r = &(A->row[i]);
105 elt = r->elt;
106 cnt = j = j_idx = 0;
107 while ( j_idx < r->len || j < A->n )
108 {
109 if ( j_idx >= r->len )
110 fprintf(fp,"%14.9g ",0.0);
111 else if ( j < elt[j_idx].col )
112 fprintf(fp,"%14.9g ",0.0);
113 else
114 fprintf(fp,"%14.9g ",elt[j_idx++].val);
115 if ( cnt++ % 4 == 3 )
116 fprintf(fp,"\n");
117 j++;
118 }
119 fprintf(fp,"\n");
120 }
121 }
122 ******************************************************************/
123
124 /* sp_dump -- prints ALL relevant information about the sparse matrix A */
125 void sp_dump(fp,A)
126 FILE *fp;
127 SPMAT *A;
128 {
129 int i, j, j_idx;
130 SPROW *rows;
131 row_elt *elts;
132
133 fprintf(fp,"SparseMatrix dump:\n");
134 if ( ! A )
135 { fprintf(fp,"*** NULL ***\n"); return; }
136 fprintf(fp,"Matrix at 0x%lx\n",(long)A);
137 fprintf(fp,"Dimensions: %d by %d\n",A->m,A->n);
138 fprintf(fp,"MaxDimensions: %d by %d\n",A->max_m,A->max_n);
139 fprintf(fp,"flag_col = %d, flag_diag = %d\n",A->flag_col,A->flag_diag);
140 fprintf(fp,"start_row @ 0x%lx:\n",(long)(A->start_row));
141 for ( j = 0; j < A->n; j++ )
142 {
143 fprintf(fp,"%d ",A->start_row[j]);
144 if ( j % 10 == 9 )
145 fprintf(fp,"\n");
146 }
147 fprintf(fp,"\n");
148 fprintf(fp,"start_idx @ 0x%lx:\n",(long)(A->start_idx));
149 for ( j = 0; j < A->n; j++ )
150 {
151 fprintf(fp,"%d ",A->start_idx[j]);
152 if ( j % 10 == 9 )
153 fprintf(fp,"\n");
154 }
155 fprintf(fp,"\n");
156 fprintf(fp,"Rows @ 0x%lx:\n",(long)(A->row));
157 if ( ! A->row )
158 { fprintf(fp,"*** NULL row ***\n"); return; }
159 rows = A->row;
160 for ( i = 0; i < A->m; i++ )
161 {
162 fprintf(fp,"row %d: len = %d, maxlen = %d, diag idx = %d\n",
163 i,rows[i].len,rows[i].maxlen,rows[i].diag);
164 fprintf(fp,"element list @ 0x%lx\n",(long)(rows[i].elt));
165 if ( ! rows[i].elt )
166 {
167 fprintf(fp,"*** NULL element list ***\n");
168 continue;
169 }
170 elts = rows[i].elt;
171 for ( j_idx = 0; j_idx < rows[i].len; j_idx++, elts++ )
172 fprintf(fp,"Col: %d, Val: %g, nxt_row = %d, nxt_idx = %d\n",
173 elts->col,elts->val,elts->nxt_row,elts->nxt_idx);
174 fprintf(fp,"\n");
175 }
176 }
177
178 #define MAXSCRATCH 100
179
180 /* sp_finput -- input sparse matrix from stream/file fp
181 -- uses friendly input routine if fp is a tty
182 -- uses format identical to output format otherwise */
183 SPMAT *sp_finput(fp)
184 FILE *fp;
185 {
186 int i, len, ret_val;
187 int col, curr_col, m, n, tmp, tty;
188 Real val;
189 SPMAT *A;
190 SPROW *rows;
191
192 row_elt scratch[MAXSCRATCH];
193 /* cannot handle >= MAXSCRATCH elements in a row */
194
195 for ( i = 0; i < MAXSCRATCH; i++ )
196 scratch[i].nxt_row = scratch[i].nxt_idx = -1;
197
198 tty = isatty(fileno(fp));
199
200 if ( tty )
201 {
202 fprintf(stderr,"SparseMatrix: ");
203 do {
204 fprintf(stderr,"input rows cols: ");
205 if ( ! fgets(line,MAXLINE,fp) )
206 error(E_INPUT,"sp_finput");
207 } while ( sscanf(line,"%u %u",&m,&n) != 2 );
208 A = sp_get(m,n,5);
209 rows = A->row;
210
211 for ( i = 0; i < m; i++ )
212 {
213 fprintf(stderr,"Row %d:\n",i);
214 fprintf(stderr,"Enter <col> <val> or 'e' to end row\n");
215 curr_col = -1;
216 for ( len = 0; len < MAXSCRATCH; len++ )
217 {
218 do {
219 fprintf(stderr,"Entry %d: ",len);
220 if ( ! fgets(line,MAXLINE,fp) )
221 error(E_INPUT,"sp_finput");
222 if ( *line == 'e' || *line == 'E' )
223 break;
224 #if REAL == DOUBLE
225 } while ( sscanf(line,"%u %lf",&col,&val) != 2 ||
226 #elif REAL == FLOAT
227 } while ( sscanf(line,"%u %f",&col,&val) != 2 ||
228 #endif
229 col >= n || col <= curr_col );
230
231 if ( *line == 'e' || *line == 'E' )
232 break;
233
234 scratch[len].col = col;
235 scratch[len].val = val;
236 curr_col = col;
237 }
238
239 /* Note: len = # elements in row */
240 if ( len > 5 )
241 {
242 if (mem_info_is_on()) {
243 mem_bytes(TYPE_SPMAT,
244 A->row[i].maxlen*sizeof(row_elt),
245 len*sizeof(row_elt));
246 }
247
248 rows[i].elt = (row_elt *)realloc((char *)rows[i].elt,
249 len*sizeof(row_elt));
250 rows[i].maxlen = len;
251 }
252 MEM_COPY(scratch,rows[i].elt,len*sizeof(row_elt));
253 rows[i].len = len;
254 rows[i].diag = sprow_idx(&(rows[i]),i);
255 }
256 }
257 else /* not tty */
258 {
259 ret_val = 0;
260 skipjunk(fp);
261 fscanf(fp,"SparseMatrix:");
262 skipjunk(fp);
263 if ( (ret_val=fscanf(fp,"%u by %u",&m,&n)) != 2 )
264 error((ret_val == EOF) ? E_EOF : E_FORMAT,"sp_finput");
265 A = sp_get(m,n,5);
266
267 /* initialise start_row */
268 for ( i = 0; i < A->n; i++ )
269 A->start_row[i] = -1;
270
271 rows = A->row;
272 for ( i = 0; i < m; i++ )
273 {
274 /* printf("Reading row # %d\n",i); */
275 rows[i].diag = -1;
276 skipjunk(fp);
277 if ( (ret_val=fscanf(fp,"row %d :",&tmp)) != 1 ||
278 tmp != i )
279 error((ret_val == EOF) ? E_EOF : E_FORMAT,
280 "sp_finput");
281 curr_col = -1;
282 for ( len = 0; len < MAXSCRATCH; len++ )
283 {
284 #if REAL == DOUBLE
285 if ( (ret_val=fscanf(fp,"%u : %lf",&col,&val)) != 2 )
286 #elif REAL == FLOAT
287 if ( (ret_val=fscanf(fp,"%u : %f",&col,&val)) != 2 )
288 #endif
289 break;
290 if ( col <= curr_col || col >= n )
291 error(E_FORMAT,"sp_finput");
292 scratch[len].col = col;
293 scratch[len].val = val;
294 }
295 if ( ret_val == EOF )
296 error(E_EOF,"sp_finput");
297
298 if ( len > rows[i].maxlen )
299 {
300 rows[i].elt = (row_elt *)realloc((char *)rows[i].elt,
301 len*sizeof(row_elt));
302 rows[i].maxlen = len;
303 }
304 MEM_COPY(scratch,rows[i].elt,len*sizeof(row_elt));
305 rows[i].len = len;
306 /* printf("Have read row # %d\n",i); */
307 rows[i].diag = sprow_idx(&(rows[i]),i);
308 /* printf("Have set diag index for row # %d\n",i); */
309 }
310 }
311
312 return A;
313 }
314
+0
-1384
interface/src/scilab/src/c/spbkp.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Sparse matrix Bunch--Kaufman--Parlett factorisation and solve
28 Radical revision started Thu 05th Nov 1992, 09:36:12 AM
29 to use Karen George's suggestion of leaving the row elements unordered
30 Radical revision completed Mon 07th Dec 1992, 10:59:57 AM
31 */
32
33 static char rcsid[] = "$Id: spbkp.c 4023 2012-02-15 10:06:09Z logari81 $";
34
35 #include <stdio.h>
36 #include "sparse2.h"
37 #include <math.h>
38
39
40 #ifdef MALLOCDECL
41 #include <malloc.h>
42 #endif
43
44 #define alpha 0.6403882032022076 /* = (1+sqrt(17))/8 */
45
46
47 #define btos(x) ((x) ? "TRUE" : "FALSE")
48
49 /* assume no use of sqr() uses side-effects */
50 #define sqr(x) ((x)*(x))
51
52 /* unord_get_idx -- returns index (encoded if entry not allocated)
53 of the element of row r with column j
54 -- uses linear search */
55 int unord_get_idx(r,j)
56 SPROW *r;
57 int j;
58 {
59 int idx;
60 row_elt *e;
61
62 if ( ! r || ! r->elt )
63 error(E_NULL,"unord_get_idx");
64 for ( idx = 0, e = r->elt; idx < r->len; idx++, e++ )
65 if ( e->col == j )
66 break;
67 if ( idx >= r->len )
68 return -(r->len+2);
69 else
70 return idx;
71 }
72
73 /* unord_get_val -- returns value of the (i,j) entry of A
74 -- same assumptions as unord_get_idx() */
75 double unord_get_val(A,i,j)
76 SPMAT *A;
77 int i, j;
78 {
79 SPROW *r;
80 int idx;
81
82 if ( ! A )
83 error(E_NULL,"unord_get_val");
84 if ( i < 0 || i >= A->m || j < 0 || j >= A->n )
85 error(E_BOUNDS,"unord_get_val");
86
87 r = &(A->row[i]);
88 idx = unord_get_idx(r,j);
89 if ( idx < 0 )
90 return 0.0;
91 else
92 return r->elt[idx].val;
93 }
94
95
96 /* bkp_swap_elt -- swaps the (i,j) with the (k,l) entry of sparse matrix
97 -- either or both of the entries may be unallocated */
98 static SPMAT *bkp_swap_elt(A,i1,j1,idx1,i2,j2,idx2)
99 SPMAT *A;
100 int i1, j1, idx1, i2, j2, idx2;
101 {
102 int tmp_row, tmp_idx;
103 SPROW *r1, *r2;
104 row_elt *e1, *e2;
105 Real tmp;
106
107 if ( ! A )
108 error(E_NULL,"bkp_swap_elt");
109
110 if ( i1 < 0 || j1 < 0 || i2 < 0 || j2 < 0 ||
111 i1 >= A->m || j1 >= A->n || i2 >= A->m || j2 >= A->n )
112 {
113 error(E_BOUNDS,"bkp_swap_elt");
114 }
115
116 if ( i1 == i2 && j1 == j2 )
117 return A;
118 if ( idx1 < 0 && idx2 < 0 ) /* neither allocated */
119 return A;
120
121 r1 = &(A->row[i1]); r2 = &(A->row[i2]);
122 /* if ( idx1 >= r1->len || idx2 >= r2->len )
123 error(E_BOUNDS,"bkp_swap_elt"); */
124 if ( idx1 < 0 ) /* assume not allocated */
125 {
126 idx1 = r1->len;
127 if ( idx1 >= r1->maxlen )
128 { tracecatch(sprow_xpd(r1,2*r1->maxlen+1,TYPE_SPMAT),
129 "bkp_swap_elt"); }
130 r1->len = idx1+1;
131 r1->elt[idx1].col = j1;
132 r1->elt[idx1].val = 0.0;
133 /* now patch up column access path */
134 tmp_row = -1; tmp_idx = j1;
135 chase_col(A,j1,&tmp_row,&tmp_idx,i1-1);
136
137 if ( tmp_row < 0 )
138 {
139 r1->elt[idx1].nxt_row = A->start_row[j1];
140 r1->elt[idx1].nxt_idx = A->start_idx[j1];
141 A->start_row[j1] = i1;
142 A->start_idx[j1] = idx1;
143 }
144 else
145 {
146 row_elt *tmp_e;
147
148 tmp_e = &(A->row[tmp_row].elt[tmp_idx]);
149 r1->elt[idx1].nxt_row = tmp_e->nxt_row;
150 r1->elt[idx1].nxt_idx = tmp_e->nxt_idx;
151 tmp_e->nxt_row = i1;
152 tmp_e->nxt_idx = idx1;
153 }
154 }
155 else if ( r1->elt[idx1].col != j1 )
156 error(E_INTERN,"bkp_swap_elt");
157 if ( idx2 < 0 )
158 {
159 idx2 = r2->len;
160 if ( idx2 >= r2->maxlen )
161 { tracecatch(sprow_xpd(r2,2*r2->maxlen+1,TYPE_SPMAT),
162 "bkp_swap_elt"); }
163
164 r2->len = idx2+1;
165 r2->elt[idx2].col = j2;
166 r2->elt[idx2].val = 0.0;
167 /* now patch up column access path */
168 tmp_row = -1; tmp_idx = j2;
169 chase_col(A,j2,&tmp_row,&tmp_idx,i2-1);
170 if ( tmp_row < 0 )
171 {
172 r2->elt[idx2].nxt_row = A->start_row[j2];
173 r2->elt[idx2].nxt_idx = A->start_idx[j2];
174 A->start_row[j2] = i2;
175 A->start_idx[j2] = idx2;
176 }
177 else
178 {
179 row_elt *tmp_e;
180
181 tmp_e = &(A->row[tmp_row].elt[tmp_idx]);
182 r2->elt[idx2].nxt_row = tmp_e->nxt_row;
183 r2->elt[idx2].nxt_idx = tmp_e->nxt_idx;
184 tmp_e->nxt_row = i2;
185 tmp_e->nxt_idx = idx2;
186 }
187 }
188 else if ( r2->elt[idx2].col != j2 )
189 error(E_INTERN,"bkp_swap_elt");
190
191 e1 = &(r1->elt[idx1]); e2 = &(r2->elt[idx2]);
192
193 tmp = e1->val;
194 e1->val = e2->val;
195 e2->val = tmp;
196
197 return A;
198 }
199
200 /* bkp_bump_col -- bumps row and idx to next entry in column j */
201 row_elt *bkp_bump_col(A, j, row, idx)
202 SPMAT *A;
203 int j, *row, *idx;
204 {
205 SPROW *r;
206 row_elt *e;
207
208 if ( *row < 0 )
209 {
210 *row = A->start_row[j];
211 *idx = A->start_idx[j];
212 }
213 else
214 {
215 r = &(A->row[*row]);
216 e = &(r->elt[*idx]);
217 if ( e->col != j )
218 error(E_INTERN,"bkp_bump_col");
219 *row = e->nxt_row;
220 *idx = e->nxt_idx;
221 }
222 if ( *row < 0 )
223 return (row_elt *)NULL;
224 else
225 return &(A->row[*row].elt[*idx]);
226 }
227
228 /* bkp_interchange -- swap rows/cols i and j (symmetric pivot)
229 -- uses just the upper triangular part */
230 SPMAT *bkp_interchange(A, i1, i2)
231 SPMAT *A;
232 int i1, i2;
233 {
234 int tmp_row, tmp_idx;
235 int row1, row2, idx1, idx2, tmp_row1, tmp_idx1, tmp_row2, tmp_idx2;
236 SPROW *r1, *r2;
237 row_elt *e1, *e2;
238 IVEC *done_list = IVNULL;
239
240 if ( ! A )
241 error(E_NULL,"bkp_interchange");
242 if ( i1 < 0 || i1 >= A->n || i2 < 0 || i2 >= A->n )
243 error(E_BOUNDS,"bkp_interchange");
244 if ( A->m != A->n )
245 error(E_SQUARE,"bkp_interchange");
246
247 if ( i1 == i2 )
248 return A;
249 if ( i1 > i2 )
250 { tmp_idx = i1; i1 = i2; i2 = tmp_idx; }
251
252 done_list = iv_resize(done_list,A->n);
253 for ( tmp_idx = 0; tmp_idx < A->n; tmp_idx++ )
254 done_list->ive[tmp_idx] = FALSE;
255 row1 = -1; idx1 = i1;
256 row2 = -1; idx2 = i2;
257 e1 = bkp_bump_col(A,i1,&row1,&idx1);
258 e2 = bkp_bump_col(A,i2,&row2,&idx2);
259
260 while ( (row1 >= 0 && row1 < i1) || (row2 >= 0 && row2 < i1) )
261 /* Note: "row2 < i1" not "row2 < i2" as we must stop before the
262 "knee bend" */
263 {
264 if ( row1 >= 0 && row1 < i1 && ( row1 < row2 || row2 < 0 ) )
265 {
266 tmp_row1 = row1; tmp_idx1 = idx1;
267 e1 = bkp_bump_col(A,i1,&tmp_row1,&tmp_idx1);
268 if ( ! done_list->ive[row1] )
269 {
270 if ( row1 == row2 )
271 bkp_swap_elt(A,row1,i1,idx1,row1,i2,idx2);
272 else
273 bkp_swap_elt(A,row1,i1,idx1,row1,i2,-1);
274 done_list->ive[row1] = TRUE;
275 }
276 row1 = tmp_row1; idx1 = tmp_idx1;
277 }
278 else if ( row2 >= 0 && row2 < i1 && ( row2 < row1 || row1 < 0 ) )
279 {
280 tmp_row2 = row2; tmp_idx2 = idx2;
281 e2 = bkp_bump_col(A,i2,&tmp_row2,&tmp_idx2);
282 if ( ! done_list->ive[row2] )
283 {
284 if ( row1 == row2 )
285 bkp_swap_elt(A,row2,i1,idx1,row2,i2,idx2);
286 else
287 bkp_swap_elt(A,row2,i1,-1,row2,i2,idx2);
288 done_list->ive[row2] = TRUE;
289 }
290 row2 = tmp_row2; idx2 = tmp_idx2;
291 }
292 else if ( row1 == row2 )
293 {
294 tmp_row1 = row1; tmp_idx1 = idx1;
295 e1 = bkp_bump_col(A,i1,&tmp_row1,&tmp_idx1);
296 tmp_row2 = row2; tmp_idx2 = idx2;
297 e2 = bkp_bump_col(A,i2,&tmp_row2,&tmp_idx2);
298 if ( ! done_list->ive[row1] )
299 {
300 bkp_swap_elt(A,row1,i1,idx1,row2,i2,idx2);
301 done_list->ive[row1] = TRUE;
302 }
303 row1 = tmp_row1; idx1 = tmp_idx1;
304 row2 = tmp_row2; idx2 = tmp_idx2;
305 }
306 }
307
308 /* ensure we are **past** the first knee */
309 while ( row2 >= 0 && row2 <= i1 )
310 e2 = bkp_bump_col(A,i2,&row2,&idx2);
311
312 /* at/after 1st "knee bend" */
313 r1 = &(A->row[i1]);
314 idx1 = 0;
315 e1 = &(r1->elt[idx1]);
316 while ( row2 >= 0 && row2 < i2 )
317 {
318 /* used for update of e2 at end of loop */
319 tmp_row = row2; tmp_idx = idx2;
320 if ( ! done_list->ive[row2] )
321 {
322 r2 = &(A->row[row2]);
323 bkp_bump_col(A,i2,&tmp_row,&tmp_idx);
324 done_list->ive[row2] = TRUE;
325 tmp_idx1 = unord_get_idx(r1,row2);
326 tracecatch(bkp_swap_elt(A,row2,i2,idx2,i1,row2,tmp_idx1),
327 "bkp_interchange");
328 }
329
330 /* update e1 and e2 */
331 row2 = tmp_row; idx2 = tmp_idx;
332 e2 = ( row2 >= 0 ) ? &(A->row[row2].elt[idx2]) : (row_elt *)NULL;
333 }
334
335 idx1 = 0;
336 e1 = r1->elt;
337 while ( idx1 < r1->len )
338 {
339 if ( e1->col >= i2 || e1->col <= i1 )
340 {
341 idx1++;
342 e1++;
343 continue;
344 }
345 if ( ! done_list->ive[e1->col] )
346 {
347 tmp_idx2 = unord_get_idx(&(A->row[e1->col]),i2);
348 tracecatch(bkp_swap_elt(A,i1,e1->col,idx1,e1->col,i2,tmp_idx2),
349 "bkp_interchange");
350 done_list->ive[e1->col] = TRUE;
351 }
352 idx1++;
353 e1++;
354 }
355
356 /* at/after 2nd "knee bend" */
357 idx1 = 0;
358 e1 = &(r1->elt[idx1]);
359 r2 = &(A->row[i2]);
360 idx2 = 0;
361 e2 = &(r2->elt[idx2]);
362 while ( idx1 < r1->len )
363 {
364 if ( e1->col <= i2 )
365 {
366 idx1++; e1++;
367 continue;
368 }
369 if ( ! done_list->ive[e1->col] )
370 {
371 tmp_idx2 = unord_get_idx(r2,e1->col);
372 tracecatch(bkp_swap_elt(A,i1,e1->col,idx1,i2,e1->col,tmp_idx2),
373 "bkp_interchange");
374 done_list->ive[e1->col] = TRUE;
375 }
376 idx1++; e1++;
377 }
378
379 idx2 = 0; e2 = r2->elt;
380 while ( idx2 < r2->len )
381 {
382 if ( e2->col <= i2 )
383 {
384 idx2++; e2++;
385 continue;
386 }
387 if ( ! done_list->ive[e2->col] )
388 {
389 tmp_idx1 = unord_get_idx(r1,e2->col);
390 tracecatch(bkp_swap_elt(A,i2,e2->col,idx2,i1,e2->col,tmp_idx1),
391 "bkp_interchange");
392 done_list->ive[e2->col] = TRUE;
393 }
394 idx2++; e2++;
395 }
396
397 /* now interchange the digonal entries! */
398 idx1 = unord_get_idx(&(A->row[i1]),i1);
399 idx2 = unord_get_idx(&(A->row[i2]),i2);
400 if ( idx1 >= 0 || idx2 >= 0 )
401 {
402 tracecatch(bkp_swap_elt(A,i1,i1,idx1,i2,i2,idx2),
403 "bkp_interchange");
404 }
405
406 return A;
407 }
408
409
410 /* iv_min -- returns minimum of an integer vector
411 -- sets index to the position in iv if index != NULL */
412 int iv_min(iv,index)
413 IVEC *iv;
414 int *index;
415 {
416 int i, i_min, min_val, tmp;
417
418 if ( ! iv )
419 error(E_NULL,"iv_min");
420 if ( iv->dim <= 0 )
421 error(E_SIZES,"iv_min");
422 i_min = 0;
423 min_val = iv->ive[0];
424 for ( i = 1; i < iv->dim; i++ )
425 {
426 tmp = iv->ive[i];
427 if ( tmp < min_val )
428 {
429 min_val = tmp;
430 i_min = i;
431 }
432 }
433
434 if ( index != (int *)NULL )
435 *index = i_min;
436
437 return min_val;
438 }
439
440 /* max_row_col -- returns max { |A[j][k]| : k >= i, k != j, k != l } given j
441 using symmetry and only the upper triangular part of A */
442 static double max_row_col(A,i,j,l)
443 SPMAT *A;
444 int i, j, l;
445 {
446 int row_num, idx;
447 SPROW *r;
448 row_elt *e;
449 Real max_val, tmp;
450
451 if ( ! A )
452 error(E_NULL,"max_row_col");
453 if ( i < 0 || i > A->n || j < 0 || j >= A->n )
454 error(E_BOUNDS,"max_row_col");
455
456 max_val = 0.0;
457
458 idx = unord_get_idx(&(A->row[i]),j);
459 if ( idx < 0 )
460 {
461 row_num = -1; idx = j;
462 e = chase_past(A,j,&row_num,&idx,i);
463 }
464 else
465 {
466 row_num = i;
467 e = &(A->row[i].elt[idx]);
468 }
469 while ( row_num >= 0 && row_num < j )
470 {
471 if ( row_num != l )
472 {
473 tmp = fabs(e->val);
474 if ( tmp > max_val )
475 max_val = tmp;
476 }
477 e = bump_col(A,j,&row_num,&idx);
478 }
479 r = &(A->row[j]);
480 for ( idx = 0, e = r->elt; idx < r->len; idx++, e++ )
481 {
482 if ( e->col > j && e->col != l )
483 {
484 tmp = fabs(e->val);
485 if ( tmp > max_val )
486 max_val = tmp;
487 }
488 }
489
490 return max_val;
491 }
492
493 /* nonzeros -- counts non-zeros in A */
494 static int nonzeros(A)
495 SPMAT *A;
496 {
497 int cnt, i;
498
499 if ( ! A )
500 return 0;
501 cnt = 0;
502 for ( i = 0; i < A->m; i++ )
503 cnt += A->row[i].len;
504
505 return cnt;
506 }
507
508 /* chk_col_access -- for spBKPfactor()
509 -- checks that column access path is OK */
510 int chk_col_access(A)
511 SPMAT *A;
512 {
513 int cnt_nz, j, row, idx;
514 SPROW *r;
515 row_elt *e;
516
517 if ( ! A )
518 error(E_NULL,"chk_col_access");
519
520 /* count nonzeros as we go down columns */
521 cnt_nz = 0;
522 for ( j = 0; j < A->n; j++ )
523 {
524 row = A->start_row[j];
525 idx = A->start_idx[j];
526 while ( row >= 0 )
527 {
528 if ( row >= A->m || idx < 0 )
529 return FALSE;
530 r = &(A->row[row]);
531 if ( idx >= r->len )
532 return FALSE;
533 e = &(r->elt[idx]);
534 if ( e->nxt_row >= 0 && e->nxt_row <= row )
535 return FALSE;
536 row = e->nxt_row;
537 idx = e->nxt_idx;
538 cnt_nz++;
539 }
540 }
541
542 if ( cnt_nz != nonzeros(A) )
543 return FALSE;
544 else
545 return TRUE;
546 }
547
548 /* col_cmp -- compare two columns -- for sorting rows using qsort() */
549 static int col_cmp(e1,e2)
550 row_elt *e1, *e2;
551 {
552 return e1->col - e2->col;
553 }
554
555 /* spBKPfactor -- sparse Bunch-Kaufman-Parlett factorisation of A in-situ
556 -- A is factored into the form P'AP = MDM' where
557 P is a permutation matrix, M lower triangular and D is block
558 diagonal with blocks of size 1 or 2
559 -- P is stored in pivot; blocks[i]==i iff D[i][i] is a block */
560 SPMAT *spBKPfactor(A,pivot,blocks,tol)
561 SPMAT *A;
562 PERM *pivot, *blocks;
563 double tol;
564 {
565 int i, j, k, l, n, onebyone, r;
566 int idx, idx1, idx_piv;
567 int row_num;
568 int best_deg, best_j, best_l, best_cost, mark_cost, deg, deg_j,
569 deg_l, ignore_deg;
570 int list_idx, list_idx2, old_list_idx;
571 SPROW *row, *r_piv, *r1_piv;
572 row_elt *e, *e1;
573 Real aii, aip1, aip1i;
574 Real det, max_j, max_l, s, t;
575 static IVEC *scan_row = IVNULL, *scan_idx = IVNULL, *col_list = IVNULL,
576 *tmp_iv = IVNULL;
577 static IVEC *deg_list = IVNULL;
578 static IVEC *orig_idx = IVNULL, *orig1_idx = IVNULL;
579 static PERM *order = PNULL;
580
581 if ( ! A || ! pivot || ! blocks )
582 error(E_NULL,"spBKPfactor");
583 if ( A->m != A->n )
584 error(E_SQUARE,"spBKPfactor");
585 if ( A->m != pivot->size || pivot->size != blocks->size )
586 error(E_SIZES,"spBKPfactor");
587 if ( tol <= 0.0 || tol > 1.0 )
588 error(E_RANGE,"spBKPfactor");
589
590 n = A->n;
591
592 px_ident(pivot); px_ident(blocks);
593 sp_col_access(A); sp_diag_access(A);
594 ignore_deg = FALSE;
595
596 deg_list = iv_resize(deg_list,n);
597 order = px_resize(order,n);
598 MEM_STAT_REG(deg_list,TYPE_IVEC);
599 MEM_STAT_REG(order,TYPE_PERM);
600
601 scan_row = iv_resize(scan_row,5);
602 scan_idx = iv_resize(scan_idx,5);
603 col_list = iv_resize(col_list,5);
604 orig_idx = iv_resize(orig_idx,5);
605 orig_idx = iv_resize(orig1_idx,5);
606 orig_idx = iv_resize(tmp_iv,5);
607 MEM_STAT_REG(scan_row,TYPE_IVEC);
608 MEM_STAT_REG(scan_idx,TYPE_IVEC);
609 MEM_STAT_REG(col_list,TYPE_IVEC);
610 MEM_STAT_REG(orig_idx,TYPE_IVEC);
611 MEM_STAT_REG(orig1_idx,TYPE_IVEC);
612 MEM_STAT_REG(tmp_iv,TYPE_IVEC);
613
614 for ( i = 0; i < n-1; i = onebyone ? i+1 : i+2 )
615 {
616 /* now we want to use a Markowitz-style selection rule for
617 determining which rows to swap and whether to use
618 1x1 or 2x2 pivoting */
619
620 /* get list of degrees of nodes */
621 deg_list = iv_resize(deg_list,n-i);
622 if ( ! ignore_deg )
623 for ( j = i; j < n; j++ )
624 deg_list->ive[j-i] = 0;
625 else
626 {
627 for ( j = i; j < n; j++ )
628 deg_list->ive[j-i] = 1;
629 if ( i < n )
630 deg_list->ive[0] = 0;
631 }
632 order = px_resize(order,n-i);
633 px_ident(order);
634
635 if ( ! ignore_deg )
636 {
637 for ( j = i; j < n; j++ )
638 {
639 /* idx = sprow_idx(&(A->row[j]),j+1); */
640 /* idx = fixindex(idx); */
641 idx = 0;
642 row = &(A->row[j]);
643 e = &(row->elt[idx]);
644 /* deg_list->ive[j-i] += row->len - idx; */
645 for ( ; idx < row->len; idx++, e++ )
646 if ( e->col >= i )
647 deg_list->ive[e->col - i]++;
648 }
649 /* now deg_list[k] == degree of node k+i */
650
651 /* now sort them into increasing order */
652 iv_sort(deg_list,order);
653 /* now deg_list[idx] == degree of node i+order[idx] */
654 }
655
656 /* now we can chase through the nodes in order of increasing
657 degree, picking out the ones that satisfy our stability
658 criterion */
659 list_idx = 0; r = -1;
660 best_j = best_l = -1;
661 for ( deg = 0; deg <= n; deg++ )
662 {
663 Real ajj, all, ajl;
664
665 if ( list_idx >= deg_list->dim )
666 break; /* That's all folks! */
667 old_list_idx = list_idx;
668 while ( list_idx < deg_list->dim &&
669 deg_list->ive[list_idx] <= deg )
670 {
671 j = i+order->pe[list_idx];
672 if ( j < i )
673 continue;
674 /* can we use row/col j for a 1 x 1 pivot? */
675 /* find max_j = max_{k>=i} {|A[k][j]|,|A[j][k]|} */
676 ajj = fabs(unord_get_val(A,j,j));
677 if ( ajj == 0.0 )
678 {
679 list_idx++;
680 continue; /* can't use this for 1 x 1 pivot */
681 }
682
683 max_j = max_row_col(A,i,j,-1);
684 if ( ajj >= tol/* *alpha */ *max_j )
685 {
686 onebyone = TRUE;
687 best_j = j;
688 best_deg = deg_list->ive[list_idx];
689 break;
690 }
691 list_idx++;
692 }
693 if ( best_j >= 0 )
694 break;
695 best_cost = 2*n; /* > any possible Markowitz cost (bound) */
696 best_j = best_l = -1;
697 list_idx = old_list_idx;
698 while ( list_idx < deg_list->dim &&
699 deg_list->ive[list_idx] <= deg )
700 {
701 j = i+order->pe[list_idx];
702 ajj = fabs(unord_get_val(A,j,j));
703 for ( list_idx2 = 0; list_idx2 < list_idx; list_idx2++ )
704 {
705 deg_j = deg;
706 deg_l = deg_list->ive[list_idx2];
707 l = i+order->pe[list_idx2];
708 if ( l < i )
709 continue;
710 /* try using rows/cols (j,l) for a 2 x 2 pivot block */
711 all = fabs(unord_get_val(A,l,l));
712 ajl = ( j > l ) ? fabs(unord_get_val(A,l,j)) :
713 fabs(unord_get_val(A,j,l));
714 det = fabs(ajj*all - ajl*ajl);
715 if ( det == 0.0 )
716 continue;
717 max_j = max_row_col(A,i,j,l);
718 max_l = max_row_col(A,i,l,j);
719 if ( tol*(all*max_j+ajl*max_l) < det &&
720 tol*(ajl*max_j+ajj*max_l) < det )
721 {
722 /* acceptably stable 2 x 2 pivot */
723 /* this is actually an overestimate of the
724 Markowitz cost for choosing (j,l) */
725 mark_cost = (ajj == 0.0) ?
726 ((all == 0.0) ? deg_j+deg_l : deg_j+2*deg_l) :
727 ((all == 0.0) ? 2*deg_j+deg_l :
728 2*(deg_j+deg_l));
729 if ( mark_cost < best_cost )
730 {
731 onebyone = FALSE;
732 best_cost = mark_cost;
733 best_j = j;
734 best_l = l;
735 best_deg = deg_j;
736 }
737 }
738 }
739 list_idx++;
740 }
741 if ( best_j >= 0 )
742 break;
743 }
744
745 if ( best_deg > (int)floor(0.8*(n-i)) )
746 ignore_deg = TRUE;
747
748 /* now do actual interchanges */
749 if ( best_j >= 0 && onebyone )
750 {
751 bkp_interchange(A,i,best_j);
752 px_transp(pivot,i,best_j);
753 }
754 else if ( best_j >= 0 && best_l >= 0 && ! onebyone )
755 {
756 if ( best_j == i || best_j == i+1 )
757 {
758 if ( best_l == i || best_l == i+1 )
759 {
760 /* no pivoting, but must update blocks permutation */
761 px_transp(blocks,i,i+1);
762 goto dopivot;
763 }
764 bkp_interchange(A,(best_j == i) ? i+1 : i,best_l);
765 px_transp(pivot,(best_j == i) ? i+1 : i,best_l);
766 }
767 else if ( best_l == i || best_l == i+1 )
768 {
769 bkp_interchange(A,(best_l == i) ? i+1 : i,best_j);
770 px_transp(pivot,(best_l == i) ? i+1 : i,best_j);
771 }
772 else /* best_j & best_l outside i, i+1 */
773 {
774 if ( i != best_j )
775 {
776 bkp_interchange(A,i,best_j);
777 px_transp(pivot,i,best_j);
778 }
779 if ( i+1 != best_l )
780 {
781 bkp_interchange(A,i+1,best_l);
782 px_transp(pivot,i+1,best_l);
783 }
784 }
785 }
786 else /* can't pivot &/or nothing to pivot */
787 continue;
788
789 /* update blocks permutation */
790 if ( ! onebyone )
791 px_transp(blocks,i,i+1);
792
793 dopivot:
794 if ( onebyone )
795 {
796 int idx_j, idx_k, s_idx, s_idx2;
797 row_elt *e_ij, *e_ik;
798
799 r_piv = &(A->row[i]);
800 idx_piv = unord_get_idx(r_piv,i);
801 /* if idx_piv < 0 then aii == 0 and no pivoting can be done;
802 -- this means that we should continue to the next iteration */
803 if ( idx_piv < 0 )
804 continue;
805 aii = r_piv->elt[idx_piv].val;
806 if ( aii == 0.0 )
807 continue;
808
809 /* for ( j = i+1; j < n; j++ ) { ... pivot step ... } */
810 /* initialise scan_... etc for the 1 x 1 pivot */
811 scan_row = iv_resize(scan_row,r_piv->len);
812 scan_idx = iv_resize(scan_idx,r_piv->len);
813 col_list = iv_resize(col_list,r_piv->len);
814 orig_idx = iv_resize(orig_idx,r_piv->len);
815 row_num = i; s_idx = idx = 0;
816 e = &(r_piv->elt[idx]);
817 for ( idx = 0; idx < r_piv->len; idx++, e++ )
818 {
819 if ( e->col < i )
820 continue;
821 scan_row->ive[s_idx] = i;
822 scan_idx->ive[s_idx] = idx;
823 orig_idx->ive[s_idx] = idx;
824 col_list->ive[s_idx] = e->col;
825 s_idx++;
826 }
827 scan_row = iv_resize(scan_row,s_idx);
828 scan_idx = iv_resize(scan_idx,s_idx);
829 col_list = iv_resize(col_list,s_idx);
830 orig_idx = iv_resize(orig_idx,s_idx);
831
832 order = px_resize(order,scan_row->dim);
833 px_ident(order);
834 iv_sort(col_list,order);
835
836 tmp_iv = iv_resize(tmp_iv,scan_row->dim);
837 for ( idx = 0; idx < order->size; idx++ )
838 tmp_iv->ive[idx] = scan_idx->ive[order->pe[idx]];
839 iv_copy(tmp_iv,scan_idx);
840 for ( idx = 0; idx < order->size; idx++ )
841 tmp_iv->ive[idx] = scan_row->ive[order->pe[idx]];
842 iv_copy(tmp_iv,scan_row);
843 for ( idx = 0; idx < scan_row->dim; idx++ )
844 tmp_iv->ive[idx] = orig_idx->ive[order->pe[idx]];
845 iv_copy(tmp_iv,orig_idx);
846
847 /* now do actual pivot */
848 /* for ( j = i+1; j < n-1; j++ ) .... */
849
850 for ( s_idx = 0; s_idx < scan_row->dim; s_idx++ )
851 {
852 idx_j = orig_idx->ive[s_idx];
853 if ( idx_j < 0 )
854 error(E_INTERN,"spBKPfactor");
855 e_ij = &(r_piv->elt[idx_j]);
856 j = e_ij->col;
857 if ( j < i+1 )
858 continue;
859 scan_to(A,scan_row,scan_idx,col_list,j);
860
861 /* compute multiplier */
862 t = e_ij->val / aii;
863
864 /* for ( k = j; k < n; k++ ) { .... update A[j][k] .... } */
865 /* this is the row in which pivoting is done */
866 row = &(A->row[j]);
867 for ( s_idx2 = s_idx; s_idx2 < scan_row->dim; s_idx2++ )
868 {
869 idx_k = orig_idx->ive[s_idx2];
870 e_ik = &(r_piv->elt[idx_k]);
871 k = e_ik->col;
872 /* k >= j since col_list has been sorted */
873
874 if ( scan_row->ive[s_idx2] == j )
875 { /* no fill-in -- can be done directly */
876 idx = scan_idx->ive[s_idx2];
877 /* idx = sprow_idx2(row,k,idx); */
878 row->elt[idx].val -= t*e_ik->val;
879 }
880 else
881 { /* fill-in -- insert entry & patch column */
882 int old_row, old_idx;
883 row_elt *old_e, *new_e;
884
885 old_row = scan_row->ive[s_idx2];
886 old_idx = scan_idx->ive[s_idx2];
887 /* old_idx = sprow_idx2(&(A->row[old_row]),k,old_idx); */
888
889 if ( old_idx < 0 )
890 error(E_INTERN,"spBKPfactor");
891 /* idx = sprow_idx(row,k); */
892 /* idx = fixindex(idx); */
893 idx = row->len;
894
895 /* sprow_set_val(row,k,-t*e_ik->val); */
896 if ( row->len >= row->maxlen )
897 { tracecatch(sprow_xpd(row,2*row->maxlen+1,TYPE_SPMAT),
898 "spBKPfactor"); }
899
900 row->len = idx+1;
901
902 new_e = &(row->elt[idx]);
903 new_e->val = -t*e_ik->val;
904 new_e->col = k;
905
906 old_e = &(A->row[old_row].elt[old_idx]);
907 new_e->nxt_row = old_e->nxt_row;
908 new_e->nxt_idx = old_e->nxt_idx;
909 old_e->nxt_row = j;
910 old_e->nxt_idx = idx;
911 }
912 }
913 e_ij->val = t;
914 }
915 }
916 else /* onebyone == FALSE */
917 { /* do 2 x 2 pivot */
918 int idx_k, idx1_k, s_idx, s_idx2;
919 int old_col;
920 row_elt *e_tmp;
921
922 r_piv = &(A->row[i]);
923 idx_piv = unord_get_idx(r_piv,i);
924 aii = aip1i = 0.0;
925 e_tmp = r_piv->elt;
926 for ( idx_piv = 0; idx_piv < r_piv->len; idx_piv++, e_tmp++ )
927 if ( e_tmp->col == i )
928 aii = e_tmp->val;
929 else if ( e_tmp->col == i+1 )
930 aip1i = e_tmp->val;
931
932 r1_piv = &(A->row[i+1]);
933 e_tmp = r1_piv->elt;
934 aip1 = unord_get_val(A,i+1,i+1);
935 det = aii*aip1 - aip1i*aip1i; /* Must have det < 0 */
936 if ( aii == 0.0 && aip1i == 0.0 )
937 {
938 /* error(E_RANGE,"spBKPfactor"); */
939 onebyone = TRUE;
940 continue; /* cannot pivot */
941 }
942
943 if ( det == 0.0 )
944 {
945 if ( aii != 0.0 )
946 error(E_RANGE,"spBKPfactor");
947 onebyone = TRUE;
948 continue; /* cannot pivot */
949 }
950 aip1i = aip1i/det;
951 aii = aii/det;
952 aip1 = aip1/det;
953
954 /* initialise scan_... etc for the 2 x 2 pivot */
955 s_idx = r_piv->len + r1_piv->len;
956 scan_row = iv_resize(scan_row,s_idx);
957 scan_idx = iv_resize(scan_idx,s_idx);
958 col_list = iv_resize(col_list,s_idx);
959 orig_idx = iv_resize(orig_idx,s_idx);
960 orig1_idx = iv_resize(orig1_idx,s_idx);
961
962 e = r_piv->elt;
963 for ( idx = 0; idx < r_piv->len; idx++, e++ )
964 {
965 scan_row->ive[idx] = i;
966 scan_idx->ive[idx] = idx;
967 col_list->ive[idx] = e->col;
968 orig_idx->ive[idx] = idx;
969 orig1_idx->ive[idx] = -1;
970 }
971 e = r_piv->elt;
972 e1 = r1_piv->elt;
973 for ( idx = 0; idx < r1_piv->len; idx++, e1++ )
974 {
975 scan_row->ive[idx+r_piv->len] = i+1;
976 scan_idx->ive[idx+r_piv->len] = idx;
977 col_list->ive[idx+r_piv->len] = e1->col;
978 orig_idx->ive[idx+r_piv->len] = -1;
979 orig1_idx->ive[idx+r_piv->len] = idx;
980 }
981
982 e1 = r1_piv->elt;
983 order = px_resize(order,scan_row->dim);
984 px_ident(order);
985 iv_sort(col_list,order);
986 tmp_iv = iv_resize(tmp_iv,scan_row->dim);
987 for ( idx = 0; idx < order->size; idx++ )
988 tmp_iv->ive[idx] = scan_idx->ive[order->pe[idx]];
989 iv_copy(tmp_iv,scan_idx);
990 for ( idx = 0; idx < order->size; idx++ )
991 tmp_iv->ive[idx] = scan_row->ive[order->pe[idx]];
992 iv_copy(tmp_iv,scan_row);
993 for ( idx = 0; idx < scan_row->dim; idx++ )
994 tmp_iv->ive[idx] = orig_idx->ive[order->pe[idx]];
995 iv_copy(tmp_iv,orig_idx);
996 for ( idx = 0; idx < scan_row->dim; idx++ )
997 tmp_iv->ive[idx] = orig1_idx->ive[order->pe[idx]];
998 iv_copy(tmp_iv,orig1_idx);
999
1000 s_idx = 0;
1001 old_col = -1;
1002 for ( idx = 0; idx < scan_row->dim; idx++ )
1003 {
1004 if ( col_list->ive[idx] == old_col )
1005 {
1006 if ( scan_row->ive[idx] == i )
1007 {
1008 scan_row->ive[s_idx-1] = scan_row->ive[idx];
1009 scan_idx->ive[s_idx-1] = scan_idx->ive[idx];
1010 col_list->ive[s_idx-1] = col_list->ive[idx];
1011 orig_idx->ive[s_idx-1] = orig_idx->ive[idx];
1012 orig1_idx->ive[s_idx-1] = orig1_idx->ive[idx-1];
1013 }
1014 else if ( idx > 0 )
1015 {
1016 scan_row->ive[s_idx-1] = scan_row->ive[idx-1];
1017 scan_idx->ive[s_idx-1] = scan_idx->ive[idx-1];
1018 col_list->ive[s_idx-1] = col_list->ive[idx-1];
1019 orig_idx->ive[s_idx-1] = orig_idx->ive[idx-1];
1020 orig1_idx->ive[s_idx-1] = orig1_idx->ive[idx];
1021 }
1022 }
1023 else
1024 {
1025 scan_row->ive[s_idx] = scan_row->ive[idx];
1026 scan_idx->ive[s_idx] = scan_idx->ive[idx];
1027 col_list->ive[s_idx] = col_list->ive[idx];
1028 orig_idx->ive[s_idx] = orig_idx->ive[idx];
1029 orig1_idx->ive[s_idx] = orig1_idx->ive[idx];
1030 s_idx++;
1031 }
1032 old_col = col_list->ive[idx];
1033 }
1034 scan_row = iv_resize(scan_row,s_idx);
1035 scan_idx = iv_resize(scan_idx,s_idx);
1036 col_list = iv_resize(col_list,s_idx);
1037 orig_idx = iv_resize(orig_idx,s_idx);
1038 orig1_idx = iv_resize(orig1_idx,s_idx);
1039
1040 /* for ( j = i+2; j < n; j++ ) { .... row operation .... } */
1041 for ( s_idx = 0; s_idx < scan_row->dim; s_idx++ )
1042 {
1043 int idx_piv, idx1_piv;
1044 Real aip1j, aij, aik, aip1k;
1045 row_elt *e_ik, *e_ip1k;
1046
1047 j = col_list->ive[s_idx];
1048 if ( j < i+2 )
1049 continue;
1050 tracecatch(scan_to(A,scan_row,scan_idx,col_list,j),
1051 "spBKPfactor");
1052
1053 idx_piv = orig_idx->ive[s_idx];
1054 aij = ( idx_piv < 0 ) ? 0.0 : r_piv->elt[idx_piv].val;
1055 /* aij = ( s_idx < r_piv->len ) ? r_piv->elt[s_idx].val :
1056 0.0; */
1057 /* aij = sp_get_val(A,i,j); */
1058 idx1_piv = orig1_idx->ive[s_idx];
1059 aip1j = ( idx1_piv < 0 ) ? 0.0 : r1_piv->elt[idx1_piv].val;
1060 /* aip1j = ( s_idx < r_piv->len ) ? 0.0 :
1061 r1_piv->elt[s_idx-r_piv->len].val; */
1062 /* aip1j = sp_get_val(A,i+1,j); */
1063 s = - aip1i*aip1j + aip1*aij;
1064 t = - aip1i*aij + aii*aip1j;
1065
1066 /* for ( k = j; k < n; k++ ) { .... update entry .... } */
1067 row = &(A->row[j]);
1068 /* set idx_k and idx1_k indices */
1069 s_idx2 = s_idx;
1070 k = col_list->ive[s_idx2];
1071 idx_k = orig_idx->ive[s_idx2];
1072 idx1_k = orig1_idx->ive[s_idx2];
1073
1074 while ( s_idx2 < scan_row->dim )
1075 {
1076 k = col_list->ive[s_idx2];
1077 idx_k = orig_idx->ive[s_idx2];
1078 idx1_k = orig1_idx->ive[s_idx2];
1079 e_ik = ( idx_k < 0 ) ? (row_elt *)NULL :
1080 &(r_piv->elt[idx_k]);
1081 e_ip1k = ( idx1_k < 0 ) ? (row_elt *)NULL :
1082 &(r1_piv->elt[idx1_k]);
1083 aik = ( idx_k >= 0 ) ? e_ik->val : 0.0;
1084 aip1k = ( idx1_k >= 0 ) ? e_ip1k->val : 0.0;
1085 if ( scan_row->ive[s_idx2] == j )
1086 { /* no fill-in */
1087 row = &(A->row[j]);
1088 /* idx = sprow_idx(row,k); */
1089 idx = scan_idx->ive[s_idx2];
1090 if ( idx < 0 )
1091 error(E_INTERN,"spBKPfactor");
1092 row->elt[idx].val -= s*aik + t*aip1k;
1093 }
1094 else
1095 { /* fill-in -- insert entry & patch column */
1096 Real tmp;
1097 int old_row, old_idx;
1098 row_elt *old_e, *new_e;
1099
1100 tmp = - s*aik - t*aip1k;
1101 if ( tmp != 0.0 )
1102 {
1103 row = &(A->row[j]);
1104 old_row = scan_row->ive[s_idx2];
1105 old_idx = scan_idx->ive[s_idx2];
1106
1107 idx = row->len;
1108 if ( row->len >= row->maxlen )
1109 { tracecatch(sprow_xpd(row,2*row->maxlen+1,
1110 TYPE_SPMAT),
1111 "spBKPfactor"); }
1112
1113 row->len = idx + 1;
1114 /* idx = sprow_idx(row,k); */
1115 new_e = &(row->elt[idx]);
1116 new_e->val = tmp;
1117 new_e->col = k;
1118
1119 if ( old_row < 0 )
1120 error(E_INTERN,"spBKPfactor");
1121 /* old_idx = sprow_idx2(&(A->row[old_row]),
1122 k,old_idx); */
1123 old_e = &(A->row[old_row].elt[old_idx]);
1124 new_e->nxt_row = old_e->nxt_row;
1125 new_e->nxt_idx = old_e->nxt_idx;
1126 old_e->nxt_row = j;
1127 old_e->nxt_idx = idx;
1128 }
1129 }
1130
1131 /* update idx_k, idx1_k, s_idx2 etc */
1132 s_idx2++;
1133 }
1134
1135 /* store multipliers -- may involve fill-in (!) */
1136 /* idx = sprow_idx(r_piv,j); */
1137 idx = orig_idx->ive[s_idx];
1138 if ( idx >= 0 )
1139 {
1140 r_piv->elt[idx].val = s;
1141 }
1142 else if ( s != 0.0 )
1143 {
1144 int old_row, old_idx;
1145 row_elt *new_e, *old_e;
1146
1147 old_row = -1; old_idx = j;
1148
1149 if ( i > 0 )
1150 {
1151 tracecatch(chase_col(A,j,&old_row,&old_idx,i-1),
1152 "spBKPfactor");
1153 }
1154 /* sprow_set_val(r_piv,j,s); */
1155 idx = r_piv->len;
1156 if ( r_piv->len >= r_piv->maxlen )
1157 { tracecatch(sprow_xpd(r_piv,2*r_piv->maxlen+1,
1158 TYPE_SPMAT),
1159 "spBKPfactor"); }
1160
1161 r_piv->len = idx + 1;
1162 /* idx = sprow_idx(r_piv,j); */
1163 /* if ( idx < 0 )
1164 error(E_INTERN,"spBKPfactor"); */
1165 new_e = &(r_piv->elt[idx]);
1166 new_e->val = s;
1167 new_e->col = j;
1168 if ( old_row < 0 )
1169 {
1170 new_e->nxt_row = A->start_row[j];
1171 new_e->nxt_idx = A->start_idx[j];
1172 A->start_row[j] = i;
1173 A->start_idx[j] = idx;
1174 }
1175 else
1176 {
1177 /* old_idx = sprow_idx2(&(A->row[old_row]),j,old_idx);*/
1178 if ( old_idx < 0 )
1179 error(E_INTERN,"spBKPfactor");
1180 old_e = &(A->row[old_row].elt[old_idx]);
1181 new_e->nxt_row = old_e->nxt_row;
1182 new_e->nxt_idx = old_e->nxt_idx;
1183 old_e->nxt_row = i;
1184 old_e->nxt_idx = idx;
1185 }
1186 }
1187 /* idx1 = sprow_idx(r1_piv,j); */
1188 idx1 = orig1_idx->ive[s_idx];
1189 if ( idx1 >= 0 )
1190 {
1191 r1_piv->elt[idx1].val = t;
1192 }
1193 else if ( t != 0.0 )
1194 {
1195 int old_row, old_idx;
1196 row_elt *new_e, *old_e;
1197
1198 old_row = -1; old_idx = j;
1199 tracecatch(chase_col(A,j,&old_row,&old_idx,i),
1200 "spBKPfactor");
1201 /* sprow_set_val(r1_piv,j,t); */
1202 idx1 = r1_piv->len;
1203 if ( r1_piv->len >= r1_piv->maxlen )
1204 { tracecatch(sprow_xpd(r1_piv,2*r1_piv->maxlen+1,
1205 TYPE_SPMAT),
1206 "spBKPfactor"); }
1207
1208 r1_piv->len = idx1 + 1;
1209 /* idx1 = sprow_idx(r1_piv,j); */
1210 /* if ( idx < 0 )
1211 error(E_INTERN,"spBKPfactor"); */
1212 new_e = &(r1_piv->elt[idx1]);
1213 new_e->val = t;
1214 new_e->col = j;
1215 if ( idx1 < 0 )
1216 error(E_INTERN,"spBKPfactor");
1217 new_e = &(r1_piv->elt[idx1]);
1218 if ( old_row < 0 )
1219 {
1220 new_e->nxt_row = A->start_row[j];
1221 new_e->nxt_idx = A->start_idx[j];
1222 A->start_row[j] = i+1;
1223 A->start_idx[j] = idx1;
1224 }
1225 else
1226 {
1227 old_idx = sprow_idx2(&(A->row[old_row]),j,old_idx);
1228 if ( old_idx < 0 )
1229 error(E_INTERN,"spBKPfactor");
1230 old_e = &(A->row[old_row].elt[old_idx]);
1231 new_e->nxt_row = old_e->nxt_row;
1232 new_e->nxt_idx = old_e->nxt_idx;
1233 old_e->nxt_row = i+1;
1234 old_e->nxt_idx = idx1;
1235 }
1236 }
1237 }
1238 }
1239 }
1240
1241 /* now sort the rows arrays */
1242 for ( i = 0; i < A->m; i++ )
1243 qsort(A->row[i].elt,A->row[i].len,sizeof(row_elt),(int(*)())col_cmp);
1244 A->flag_col = A->flag_diag = FALSE;
1245
1246 return A;
1247 }
1248
1249 /* spBKPsolve -- solves A.x = b where A has been factored a la BKPfactor()
1250 -- returns x, which is created if NULL */
1251 VEC *spBKPsolve(A,pivot,block,b,x)
1252 SPMAT *A;
1253 PERM *pivot, *block;
1254 VEC *b, *x;
1255 {
1256 static VEC *tmp=VNULL; /* dummy storage needed */
1257 int i /* , j */, n, onebyone;
1258 int row_num, idx;
1259 Real a11, a12, a22, b1, b2, det, sum, *tmp_ve, tmp_diag;
1260 SPROW *r;
1261 row_elt *e;
1262
1263 if ( ! A || ! pivot || ! block || ! b )
1264 error(E_NULL,"spBKPsolve");
1265 if ( A->m != A->n )
1266 error(E_SQUARE,"spBKPsolve");
1267 n = A->n;
1268 if ( b->dim != n || pivot->size != n || block->size != n )
1269 error(E_SIZES,"spBKPsolve");
1270 x = v_resize(x,n);
1271 tmp = v_resize(tmp,n);
1272 MEM_STAT_REG(tmp,TYPE_VEC);
1273
1274 tmp_ve = tmp->ve;
1275
1276 if ( ! A->flag_col )
1277 sp_col_access(A);
1278
1279 px_vec(pivot,b,tmp);
1280 /* printf("# BKPsolve: effect of pivot: tmp =\n"); v_output(tmp); */
1281
1282 /* solve for lower triangular part */
1283 for ( i = 0; i < n; i++ )
1284 {
1285 sum = tmp_ve[i];
1286 if ( block->pe[i] < i )
1287 {
1288 /* for ( j = 0; j < i-1; j++ )
1289 sum -= A_me[j][i]*tmp_ve[j]; */
1290 row_num = -1; idx = i;
1291 e = bump_col(A,i,&row_num,&idx);
1292 while ( row_num >= 0 && row_num < i-1 )
1293 {
1294 sum -= e->val*tmp_ve[row_num];
1295 e = bump_col(A,i,&row_num,&idx);
1296 }
1297 }
1298 else
1299 {
1300 /* for ( j = 0; j < i; j++ )
1301 sum -= A_me[j][i]*tmp_ve[j]; */
1302 row_num = -1; idx = i;
1303 e = bump_col(A,i,&row_num,&idx);
1304 while ( row_num >= 0 && row_num < i )
1305 {
1306 sum -= e->val*tmp_ve[row_num];
1307 e = bump_col(A,i,&row_num,&idx);
1308 }
1309 }
1310 tmp_ve[i] = sum;
1311 }
1312
1313 /* printf("# BKPsolve: solving L part: tmp =\n"); v_output(tmp); */
1314 /* solve for diagonal part */
1315 for ( i = 0; i < n; i = onebyone ? i+1 : i+2 )
1316 {
1317 onebyone = ( block->pe[i] == i );
1318 if ( onebyone )
1319 {
1320 /* tmp_ve[i] /= A_me[i][i]; */
1321 tmp_diag = sp_get_val(A,i,i);
1322 if ( tmp_diag == 0.0 )
1323 error(E_SING,"spBKPsolve");
1324 tmp_ve[i] /= tmp_diag;
1325 }
1326 else
1327 {
1328 a11 = sp_get_val(A,i,i);
1329 a22 = sp_get_val(A,i+1,i+1);
1330 a12 = sp_get_val(A,i,i+1);
1331 b1 = tmp_ve[i];
1332 b2 = tmp_ve[i+1];
1333 det = a11*a22-a12*a12; /* < 0 : see BKPfactor() */
1334 if ( det == 0.0 )
1335 error(E_SING,"BKPsolve");
1336 det = 1/det;
1337 tmp_ve[i] = det*(a22*b1-a12*b2);
1338 tmp_ve[i+1] = det*(a11*b2-a12*b1);
1339 }
1340 }
1341
1342 /* printf("# BKPsolve: solving D part: tmp =\n"); v_output(tmp); */
1343 /* solve for transpose of lower triangular part */
1344 for ( i = n-2; i >= 0; i-- )
1345 {
1346 sum = tmp_ve[i];
1347 if ( block->pe[i] > i )
1348 {
1349 /* onebyone is false */
1350 /* for ( j = i+2; j < n; j++ )
1351 sum -= A_me[i][j]*tmp_ve[j]; */
1352 if ( i+2 >= n )
1353 continue;
1354 r = &(A->row[i]);
1355 idx = sprow_idx(r,i+2);
1356 idx = fixindex(idx);
1357 e = &(r->elt[idx]);
1358 for ( ; idx < r->len; idx++, e++ )
1359 sum -= e->val*tmp_ve[e->col];
1360 }
1361 else /* onebyone */
1362 {
1363 /* for ( j = i+1; j < n; j++ )
1364 sum -= A_me[i][j]*tmp_ve[j]; */
1365 r = &(A->row[i]);
1366 idx = sprow_idx(r,i+1);
1367 idx = fixindex(idx);
1368 e = &(r->elt[idx]);
1369 for ( ; idx < r->len; idx++, e++ )
1370 sum -= e->val*tmp_ve[e->col];
1371 }
1372 tmp_ve[i] = sum;
1373 }
1374
1375 /* printf("# BKPsolve: solving L^T part: tmp =\n");v_output(tmp); */
1376 /* and do final permutation */
1377 x = pxinv_vec(pivot,tmp,x);
1378
1379 return x;
1380 }
1381
1382
1383
+0
-627
interface/src/scilab/src/c/spchfctr.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Sparse Cholesky factorisation code
28 To be used with sparse.h, sparse.c etc
29
30 */
31
32 static char rcsid[] = "$Id: spchfctr.c 3690 2010-09-02 09:55:19Z lsaavedr $";
33
34 #include <stdio.h>
35 #include "sparse2.h"
36 #include <math.h>
37
38
39 #ifndef MALLOCDECL
40 #ifndef ANSI_C
41 extern char *calloc(), *realloc();
42 #endif
43 #endif
44
45
46
47 /* sprow_ip -- finds the (partial) inner product of a pair of sparse rows
48 -- uses a "merging" approach & assumes column ordered rows
49 -- row indices for inner product are all < lim */
50 double sprow_ip(row1, row2, lim)
51 SPROW *row1, *row2;
52 int lim;
53 {
54 int idx1, idx2, len1, len2, tmp;
55 int sprow_idx();
56 register row_elt *elts1, *elts2;
57 register Real sum;
58
59 elts1 = row1->elt; elts2 = row2->elt;
60 len1 = row1->len; len2 = row2->len;
61
62 sum = 0.0;
63
64 if ( len1 <= 0 || len2 <= 0 )
65 return 0.0;
66 if ( elts1->col >= lim || elts2->col >= lim )
67 return 0.0;
68
69 /* use sprow_idx() to speed up inner product where one row is
70 much longer than the other */
71 idx1 = idx2 = 0;
72 if ( len1 > 2*len2 )
73 {
74 idx1 = sprow_idx(row1,elts2->col);
75 idx1 = (idx1 < 0) ? -(idx1+2) : idx1;
76 if ( idx1 < 0 )
77 error(E_UNKNOWN,"sprow_ip");
78 len1 -= idx1;
79 }
80 else if ( len2 > 2*len1 )
81 {
82 idx2 = sprow_idx(row2,elts1->col);
83 idx2 = (idx2 < 0) ? -(idx2+2) : idx2;
84 if ( idx2 < 0 )
85 error(E_UNKNOWN,"sprow_ip");
86 len2 -= idx2;
87 }
88 if ( len1 <= 0 || len2 <= 0 )
89 return 0.0;
90
91 elts1 = &(elts1[idx1]); elts2 = &(elts2[idx2]);
92
93
94 for ( ; ; ) /* forever do... */
95 {
96 if ( (tmp=elts1->col-elts2->col) < 0 )
97 {
98 len1--; elts1++;
99 if ( ! len1 || elts1->col >= lim )
100 break;
101 }
102 else if ( tmp > 0 )
103 {
104 len2--; elts2++;
105 if ( ! len2 || elts2->col >= lim )
106 break;
107 }
108 else
109 {
110 sum += elts1->val * elts2->val;
111 len1--; elts1++;
112 len2--; elts2++;
113 if ( ! len1 || ! len2 ||
114 elts1->col >= lim || elts2->col >= lim )
115 break;
116 }
117 }
118
119 return sum;
120 }
121
122 /* sprow_sqr -- returns same as sprow_ip(row, row, lim) */
123 double sprow_sqr(row, lim)
124 SPROW *row;
125 int lim;
126 {
127 register row_elt *elts;
128 int idx, len;
129 register Real sum, tmp;
130
131 sum = 0.0;
132 elts = row->elt; len = row->len;
133 for ( idx = 0; idx < len; idx++, elts++ )
134 {
135 if ( elts->col >= lim )
136 break;
137 tmp = elts->val;
138 sum += tmp*tmp;
139 }
140
141 return sum;
142 }
143
144 static int *scan_row = (int *)NULL, *scan_idx = (int *)NULL,
145 *col_list = (int *)NULL;
146 static int scan_len = 0;
147
148 /* set_scan -- expand scan_row and scan_idx arrays
149 -- return new length */
150 int set_scan(new_len)
151 int new_len;
152 {
153 if ( new_len <= scan_len )
154 return scan_len;
155 if ( new_len <= scan_len+5 )
156 new_len += 5;
157
158 if ( ! scan_row || ! scan_idx || ! col_list )
159 {
160 scan_row = (int *)calloc(new_len,sizeof(int));
161 scan_idx = (int *)calloc(new_len,sizeof(int));
162 col_list = (int *)calloc(new_len,sizeof(int));
163 }
164 else
165 {
166 scan_row = (int *)realloc((char *)scan_row,new_len*sizeof(int));
167 scan_idx = (int *)realloc((char *)scan_idx,new_len*sizeof(int));
168 col_list = (int *)realloc((char *)col_list,new_len*sizeof(int));
169 }
170
171 if ( ! scan_row || ! scan_idx || ! col_list )
172 error(E_MEM,"set_scan");
173 return new_len;
174 }
175
176 /* spCHfactor -- sparse Cholesky factorisation
177 -- only the lower triangular part of A (incl. diagonal) is used */
178 SPMAT *spCHfactor(A)
179 SPMAT *A;
180 {
181 register int i;
182 int idx, k, m, minim, n, num_scan, diag_idx, tmp1;
183 Real pivot, tmp2;
184 SPROW *r_piv, *r_op;
185 row_elt *elt_piv, *elt_op, *old_elt;
186
187 if ( A == SMNULL )
188 error(E_NULL,"spCHfactor");
189 if ( A->m != A->n )
190 error(E_SQUARE,"spCHfactor");
191
192 /* set up access paths if not already done so */
193 sp_col_access(A);
194 sp_diag_access(A);
195
196 /* printf("spCHfactor() -- checkpoint 1\n"); */
197 m = A->m; n = A->n;
198 for ( k = 0; k < m; k++ )
199 {
200 r_piv = &(A->row[k]);
201 if ( r_piv->len > scan_len )
202 set_scan(r_piv->len);
203 elt_piv = r_piv->elt;
204 diag_idx = sprow_idx2(r_piv,k,r_piv->diag);
205 if ( diag_idx < 0 )
206 error(E_POSDEF,"spCHfactor");
207 old_elt = &(elt_piv[diag_idx]);
208 for ( i = 0; i < r_piv->len; i++ )
209 {
210 if ( elt_piv[i].col > k )
211 break;
212 col_list[i] = elt_piv[i].col;
213 scan_row[i] = elt_piv[i].nxt_row;
214 scan_idx[i] = elt_piv[i].nxt_idx;
215 }
216 /* printf("spCHfactor() -- checkpoint 2\n"); */
217 num_scan = i; /* number of actual entries in scan_row etc. */
218 /* printf("num_scan = %d\n",num_scan); */
219
220 /* set diagonal entry of Cholesky factor */
221 tmp2 = elt_piv[diag_idx].val - sprow_sqr(r_piv,k);
222 if ( tmp2 <= 0.0 )
223 error(E_POSDEF,"spCHfactor");
224 elt_piv[diag_idx].val = pivot = sqrt(tmp2);
225
226 /* now set the k-th column of the Cholesky factors */
227 /* printf("k = %d\n",k); */
228 for ( ; ; ) /* forever do... */
229 {
230 /* printf("spCHfactor() -- checkpoint 3\n"); */
231 /* find next row where something (non-trivial) happens
232 i.e. find min(scan_row) */
233 /* printf("scan_row: "); */
234 minim = n;
235 for ( i = 0; i < num_scan; i++ )
236 {
237 tmp1 = scan_row[i];
238 /* printf("%d ",tmp1); */
239 minim = ( tmp1 >= 0 && tmp1 < minim ) ? tmp1 : minim;
240 }
241 /* printf("minim = %d\n",minim); */
242 /* printf("col_list: "); */
243 /**********************************************************************
244 for ( i = 0; i < num_scan; i++ )
245 printf("%d ",col_list[i]);
246 printf("\n");
247 **********************************************************************/
248
249 if ( minim >= n )
250 break; /* nothing more to do for this column */
251 r_op = &(A->row[minim]);
252 elt_op = r_op->elt;
253
254 /* set next entry in column k of Cholesky factors */
255 idx = sprow_idx2(r_op,k,scan_idx[num_scan-1]);
256 if ( idx < 0 )
257 { /* fill-in */
258 sp_set_val(A,minim,k,
259 -sprow_ip(r_piv,r_op,k)/pivot);
260 /* in case a realloc() has occurred... */
261 elt_op = r_op->elt;
262 /* now set up column access path again */
263 idx = sprow_idx2(r_op,k,-(idx+2));
264 tmp1 = old_elt->nxt_row;
265 old_elt->nxt_row = minim;
266 r_op->elt[idx].nxt_row = tmp1;
267 tmp1 = old_elt->nxt_idx;
268 old_elt->nxt_idx = idx;
269 r_op->elt[idx].nxt_idx = tmp1;
270 }
271 else
272 elt_op[idx].val = (elt_op[idx].val -
273 sprow_ip(r_piv,r_op,k))/pivot;
274
275 /* printf("spCHfactor() -- checkpoint 4\n"); */
276
277 /* remember current element in column k for column chain */
278 idx = sprow_idx2(r_op,k,idx);
279 old_elt = &(r_op->elt[idx]);
280
281 /* update scan_row */
282 /* printf("spCHfactor() -- checkpoint 5\n"); */
283 /* printf("minim = %d\n",minim); */
284 for ( i = 0; i < num_scan; i++ )
285 {
286 if ( scan_row[i] != minim )
287 continue;
288 idx = sprow_idx2(r_op,col_list[i],scan_idx[i]);
289 if ( idx < 0 )
290 { scan_row[i] = -1; continue; }
291 scan_row[i] = elt_op[idx].nxt_row;
292 scan_idx[i] = elt_op[idx].nxt_idx;
293 /* printf("scan_row[%d] = %d\n",i,scan_row[i]); */
294 /* printf("scan_idx[%d] = %d\n",i,scan_idx[i]); */
295 }
296
297 }
298 /* printf("spCHfactor() -- checkpoint 6\n"); */
299 /* sp_dump(stdout,A); */
300 /* printf("\n\n\n"); */
301 }
302
303 return A;
304 }
305
306 /* spCHsolve -- solve L.L^T.out=b where L is a sparse matrix,
307 -- out, b dense vectors
308 -- returns out; operation may be in-situ */
309 VEC *spCHsolve(L,b,out)
310 SPMAT *L;
311 VEC *b, *out;
312 {
313 int i, j_idx, n, scan_idx, scan_row;
314 SPROW *row;
315 row_elt *elt;
316 Real diag_val, sum, *out_ve;
317
318 if ( L == SMNULL || b == VNULL )
319 error(E_NULL,"spCHsolve");
320 if ( L->m != L->n )
321 error(E_SQUARE,"spCHsolve");
322 if ( b->dim != L->m )
323 error(E_SIZES,"spCHsolve");
324
325 if ( ! L->flag_col )
326 sp_col_access(L);
327 if ( ! L->flag_diag )
328 sp_diag_access(L);
329
330 out = v_copy(b,out);
331 out_ve = out->ve;
332
333 /* forward substitution: solve L.x=b for x */
334 n = L->n;
335 for ( i = 0; i < n; i++ )
336 {
337 sum = out_ve[i];
338 row = &(L->row[i]);
339 elt = row->elt;
340 for ( j_idx = 0; j_idx < row->len; j_idx++, elt++ )
341 {
342 if ( elt->col >= i )
343 break;
344 sum -= elt->val*out_ve[elt->col];
345 }
346 if ( row->diag >= 0 )
347 out_ve[i] = sum/(row->elt[row->diag].val);
348 else
349 error(E_SING,"spCHsolve");
350 }
351
352 /* backward substitution: solve L^T.out = x for out */
353 for ( i = n-1; i >= 0; i-- )
354 {
355 sum = out_ve[i];
356 row = &(L->row[i]);
357 /* Note that row->diag >= 0 by above loop */
358 elt = &(row->elt[row->diag]);
359 diag_val = elt->val;
360
361 /* scan down column */
362 scan_idx = elt->nxt_idx;
363 scan_row = elt->nxt_row;
364 while ( scan_row >= 0 /* && scan_idx >= 0 */ )
365 {
366 row = &(L->row[scan_row]);
367 elt = &(row->elt[scan_idx]);
368 sum -= elt->val*out_ve[scan_row];
369 scan_idx = elt->nxt_idx;
370 scan_row = elt->nxt_row;
371 }
372 out_ve[i] = sum/diag_val;
373 }
374
375 return out;
376 }
377
378 /* spICHfactor -- sparse Incomplete Cholesky factorisation
379 -- does a Cholesky factorisation assuming NO FILL-IN
380 -- as for spCHfactor(), only the lower triangular part of A is used */
381 SPMAT *spICHfactor(A)
382 SPMAT *A;
383 {
384 int k, m, n, nxt_row, nxt_idx, diag_idx;
385 Real pivot, tmp2;
386 SPROW *r_piv, *r_op;
387 row_elt *elt_piv, *elt_op;
388
389 if ( A == SMNULL )
390 error(E_NULL,"spICHfactor");
391 if ( A->m != A->n )
392 error(E_SQUARE,"spICHfactor");
393
394 /* set up access paths if not already done so */
395 if ( ! A->flag_col )
396 sp_col_access(A);
397 if ( ! A->flag_diag )
398 sp_diag_access(A);
399
400 m = A->m; n = A->n;
401 for ( k = 0; k < m; k++ )
402 {
403 r_piv = &(A->row[k]);
404
405 diag_idx = r_piv->diag;
406 if ( diag_idx < 0 )
407 error(E_POSDEF,"spICHfactor");
408
409 elt_piv = r_piv->elt;
410
411 /* set diagonal entry of Cholesky factor */
412 tmp2 = elt_piv[diag_idx].val - sprow_sqr(r_piv,k);
413 if ( tmp2 <= 0.0 )
414 error(E_POSDEF,"spICHfactor");
415 elt_piv[diag_idx].val = pivot = sqrt(tmp2);
416
417 /* find next row where something (non-trivial) happens */
418 nxt_row = elt_piv[diag_idx].nxt_row;
419 nxt_idx = elt_piv[diag_idx].nxt_idx;
420
421 /* now set the k-th column of the Cholesky factors */
422 while ( nxt_row >= 0 && nxt_idx >= 0 )
423 {
424 /* nxt_row and nxt_idx give next next row (& index)
425 of the entry to be modified */
426 r_op = &(A->row[nxt_row]);
427 elt_op = r_op->elt;
428 elt_op[nxt_idx].val = (elt_op[nxt_idx].val -
429 sprow_ip(r_piv,r_op,k))/pivot;
430
431 nxt_row = elt_op[nxt_idx].nxt_row;
432 nxt_idx = elt_op[nxt_idx].nxt_idx;
433 }
434 }
435
436 return A;
437 }
438
439
440 /* spCHsymb -- symbolic sparse Cholesky factorisation
441 -- does NOT do any floating point arithmetic; just sets up the structure
442 -- only the lower triangular part of A (incl. diagonal) is used */
443 SPMAT *spCHsymb(A)
444 SPMAT *A;
445 {
446 register int i;
447 int idx, k, m, minim, n, num_scan, diag_idx, tmp1;
448 SPROW *r_piv, *r_op;
449 row_elt *elt_piv, *elt_op, *old_elt;
450
451 if ( A == SMNULL )
452 error(E_NULL,"spCHsymb");
453 if ( A->m != A->n )
454 error(E_SQUARE,"spCHsymb");
455
456 /* set up access paths if not already done so */
457 if ( ! A->flag_col )
458 sp_col_access(A);
459 if ( ! A->flag_diag )
460 sp_diag_access(A);
461
462 /* printf("spCHsymb() -- checkpoint 1\n"); */
463 m = A->m; n = A->n;
464 for ( k = 0; k < m; k++ )
465 {
466 r_piv = &(A->row[k]);
467 if ( r_piv->len > scan_len )
468 set_scan(r_piv->len);
469 elt_piv = r_piv->elt;
470 diag_idx = sprow_idx2(r_piv,k,r_piv->diag);
471 if ( diag_idx < 0 )
472 error(E_POSDEF,"spCHsymb");
473 old_elt = &(elt_piv[diag_idx]);
474 for ( i = 0; i < r_piv->len; i++ )
475 {
476 if ( elt_piv[i].col > k )
477 break;
478 col_list[i] = elt_piv[i].col;
479 scan_row[i] = elt_piv[i].nxt_row;
480 scan_idx[i] = elt_piv[i].nxt_idx;
481 }
482 /* printf("spCHsymb() -- checkpoint 2\n"); */
483 num_scan = i; /* number of actual entries in scan_row etc. */
484 /* printf("num_scan = %d\n",num_scan); */
485
486 /* now set the k-th column of the Cholesky factors */
487 /* printf("k = %d\n",k); */
488 for ( ; ; ) /* forever do... */
489 {
490 /* printf("spCHsymb() -- checkpoint 3\n"); */
491 /* find next row where something (non-trivial) happens
492 i.e. find min(scan_row) */
493 minim = n;
494 for ( i = 0; i < num_scan; i++ )
495 {
496 tmp1 = scan_row[i];
497 /* printf("%d ",tmp1); */
498 minim = ( tmp1 >= 0 && tmp1 < minim ) ? tmp1 : minim;
499 }
500
501 if ( minim >= n )
502 break; /* nothing more to do for this column */
503 r_op = &(A->row[minim]);
504 elt_op = r_op->elt;
505
506 /* set next entry in column k of Cholesky factors */
507 idx = sprow_idx2(r_op,k,scan_idx[num_scan-1]);
508 if ( idx < 0 )
509 { /* fill-in */
510 sp_set_val(A,minim,k,0.0);
511 /* in case a realloc() has occurred... */
512 elt_op = r_op->elt;
513 /* now set up column access path again */
514 idx = sprow_idx2(r_op,k,-(idx+2));
515 tmp1 = old_elt->nxt_row;
516 old_elt->nxt_row = minim;
517 r_op->elt[idx].nxt_row = tmp1;
518 tmp1 = old_elt->nxt_idx;
519 old_elt->nxt_idx = idx;
520 r_op->elt[idx].nxt_idx = tmp1;
521 }
522
523 /* printf("spCHsymb() -- checkpoint 4\n"); */
524
525 /* remember current element in column k for column chain */
526 idx = sprow_idx2(r_op,k,idx);
527 old_elt = &(r_op->elt[idx]);
528
529 /* update scan_row */
530 /* printf("spCHsymb() -- checkpoint 5\n"); */
531 /* printf("minim = %d\n",minim); */
532 for ( i = 0; i < num_scan; i++ )
533 {
534 if ( scan_row[i] != minim )
535 continue;
536 idx = sprow_idx2(r_op,col_list[i],scan_idx[i]);
537 if ( idx < 0 )
538 { scan_row[i] = -1; continue; }
539 scan_row[i] = elt_op[idx].nxt_row;
540 scan_idx[i] = elt_op[idx].nxt_idx;
541 /* printf("scan_row[%d] = %d\n",i,scan_row[i]); */
542 /* printf("scan_idx[%d] = %d\n",i,scan_idx[i]); */
543 }
544
545 }
546 /* printf("spCHsymb() -- checkpoint 6\n"); */
547 }
548
549 return A;
550 }
551
552 /* comp_AAT -- compute A.A^T where A is a given sparse matrix */
553 SPMAT *comp_AAT(A)
554 SPMAT *A;
555 {
556 SPMAT *AAT;
557 SPROW *r, *r2;
558 row_elt *elts, *elts2;
559 int i, idx, idx2, j, m, minim, n, num_scan, tmp1;
560 Real ip;
561
562 if ( ! A )
563 error(E_NULL,"comp_AAT");
564 m = A->m; n = A->n;
565
566 /* set up column access paths */
567 if ( ! A->flag_col )
568 sp_col_access(A);
569
570 AAT = sp_get(m,m,10);
571
572 for ( i = 0; i < m; i++ )
573 {
574 /* initialisation */
575 r = &(A->row[i]);
576 elts = r->elt;
577
578 /* set up scan lists for this row */
579 if ( r->len > scan_len )
580 set_scan(r->len);
581 for ( j = 0; j < r->len; j++ )
582 {
583 col_list[j] = elts[j].col;
584 scan_row[j] = elts[j].nxt_row;
585 scan_idx[j] = elts[j].nxt_idx;
586 }
587 num_scan = r->len;
588
589 /* scan down the rows for next non-zero not
590 associated with a diagonal entry */
591 for ( ; ; )
592 {
593 minim = m;
594 for ( idx = 0; idx < num_scan; idx++ )
595 {
596 tmp1 = scan_row[idx];
597 minim = ( tmp1 >= 0 && tmp1 < minim ) ? tmp1 : minim;
598 }
599 if ( minim >= m )
600 break;
601 r2 = &(A->row[minim]);
602 if ( minim > i )
603 {
604 ip = sprow_ip(r,r2,n);
605 sp_set_val(AAT,minim,i,ip);
606 sp_set_val(AAT,i,minim,ip);
607 }
608 /* update scan entries */
609 elts2 = r2->elt;
610 for ( idx = 0; idx < num_scan; idx++ )
611 {
612 if ( scan_row[idx] != minim || scan_idx[idx] < 0 )
613 continue;
614 idx2 = scan_idx[idx];
615 scan_row[idx] = elts2[idx2].nxt_row;
616 scan_idx[idx] = elts2[idx2].nxt_idx;
617 }
618 }
619
620 /* set the diagonal entry */
621 sp_set_val(AAT,i,i,sprow_sqr(r,n));
622 }
623
624 return AAT;
625 }
626
+0
-410
interface/src/scilab/src/c/splufctr.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Stewart & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Sparse LU factorisation
28 See also: sparse.[ch] etc for details about sparse matrices
29 */
30
31 #include <stdio.h>
32 #include "sparse2.h"
33 #include <math.h>
34
35
36
37 /* Macro for speedup */
38 /* #define sprow_idx2(r,c,hint) \
39 ( ( (hint) >= 0 && (r)->elt[hint].col == (c)) ? hint : sprow_idx((r),(c)) ) */
40
41
42 /* spLUfactor -- sparse LU factorisation with pivoting
43 -- uses partial pivoting and Markowitz criterion
44 |a[p][k]| >= alpha * max_i |a[i][k]|
45 -- creates fill-in as needed
46 -- in situ factorisation */
47 SPMAT *spLUfactor(A,px,alpha)
48 SPMAT *A;
49 PERM *px;
50 double alpha;
51 {
52 int i, best_i, k, idx, len, best_len, m, n;
53 SPROW *r, *r_piv, tmp_row;
54 static SPROW *merge = (SPROW *)NULL;
55 Real max_val, tmp;
56 static VEC *col_vals=VNULL;
57
58 if ( ! A || ! px )
59 error(E_NULL,"spLUfctr");
60 if ( alpha <= 0.0 || alpha > 1.0 )
61 error(E_RANGE,"alpha in spLUfctr");
62 if ( px->size <= A->m )
63 px = px_resize(px,A->m);
64 px_ident(px);
65 col_vals = v_resize(col_vals,A->m);
66 MEM_STAT_REG(col_vals,TYPE_VEC);
67
68 m = A->m; n = A->n;
69 if ( ! A->flag_col )
70 sp_col_access(A);
71 if ( ! A->flag_diag )
72 sp_diag_access(A);
73 A->flag_col = A->flag_diag = FALSE;
74 if ( ! merge ) {
75 merge = sprow_get(20);
76 MEM_STAT_REG(merge,TYPE_SPROW);
77 }
78
79 for ( k = 0; k < n; k++ )
80 {
81 /* find pivot row/element for partial pivoting */
82
83 /* get first row with a non-zero entry in the k-th column */
84 max_val = 0.0;
85 for ( i = k; i < m; i++ )
86 {
87 r = &(A->row[i]);
88 idx = sprow_idx(r,k);
89 if ( idx < 0 )
90 tmp = 0.0;
91 else
92 tmp = r->elt[idx].val;
93 if ( fabs(tmp) > max_val )
94 max_val = fabs(tmp);
95 col_vals->ve[i] = tmp;
96 }
97
98 if ( max_val == 0.0 )
99 continue;
100
101 best_len = n+1; /* only if no possibilities */
102 best_i = -1;
103 for ( i = k; i < m; i++ )
104 {
105 tmp = fabs(col_vals->ve[i]);
106 if ( tmp == 0.0 )
107 continue;
108 if ( tmp >= alpha*max_val )
109 {
110 r = &(A->row[i]);
111 idx = sprow_idx(r,k);
112 len = (r->len) - idx;
113 if ( len < best_len )
114 {
115 best_len = len;
116 best_i = i;
117 }
118 }
119 }
120
121 /* swap row #best_i with row #k */
122 MEM_COPY(&(A->row[best_i]),&tmp_row,sizeof(SPROW));
123 MEM_COPY(&(A->row[k]),&(A->row[best_i]),sizeof(SPROW));
124 MEM_COPY(&tmp_row,&(A->row[k]),sizeof(SPROW));
125 /* swap col_vals entries */
126 tmp = col_vals->ve[best_i];
127 col_vals->ve[best_i] = col_vals->ve[k];
128 col_vals->ve[k] = tmp;
129 px_transp(px,k,best_i);
130
131 r_piv = &(A->row[k]);
132 for ( i = k+1; i < n; i++ )
133 {
134 /* compute and set multiplier */
135 tmp = col_vals->ve[i]/col_vals->ve[k];
136 if ( tmp != 0.0 )
137 sp_set_val(A,i,k,tmp);
138 else
139 continue;
140
141 /* perform row operations */
142 merge->len = 0;
143 r = &(A->row[i]);
144 sprow_mltadd(r,r_piv,-tmp,k+1,merge,TYPE_SPROW);
145 idx = sprow_idx(r,k+1);
146 if ( idx < 0 )
147 idx = -(idx+2);
148 /* see if r needs expanding */
149 if ( r->maxlen < idx + merge->len )
150 sprow_xpd(r,idx+merge->len,TYPE_SPMAT);
151 r->len = idx+merge->len;
152 MEM_COPY((char *)(merge->elt),(char *)&(r->elt[idx]),
153 merge->len*sizeof(row_elt));
154 }
155 }
156
157 return A;
158 }
159
160 /* spLUsolve -- solve A.x = b using factored matrix A from spLUfactor()
161 -- returns x
162 -- may not be in-situ */
163 VEC *spLUsolve(A,pivot,b,x)
164 SPMAT *A;
165 PERM *pivot;
166 VEC *b, *x;
167 {
168 int i, idx, len, lim;
169 Real sum, *x_ve;
170 SPROW *r;
171 row_elt *elt;
172
173 if ( ! A || ! b )
174 error(E_NULL,"spLUsolve");
175 if ( (pivot != PNULL && A->m != pivot->size) || A->m != b->dim )
176 error(E_SIZES,"spLUsolve");
177 if ( ! x || x->dim != A->n )
178 x = v_resize(x,A->n);
179
180 if ( pivot != PNULL )
181 x = px_vec(pivot,b,x);
182 else
183 x = v_copy(b,x);
184
185 x_ve = x->ve;
186 lim = min(A->m,A->n);
187 for ( i = 0; i < lim; i++ )
188 {
189 sum = x_ve[i];
190 r = &(A->row[i]);
191 len = r->len;
192 elt = r->elt;
193 for ( idx = 0; idx < len && elt->col < i; idx++, elt++ )
194 sum -= elt->val*x_ve[elt->col];
195 x_ve[i] = sum;
196 }
197
198 for ( i = lim-1; i >= 0; i-- )
199 {
200 sum = x_ve[i];
201 r = &(A->row[i]);
202 len = r->len;
203 elt = &(r->elt[len-1]);
204 for ( idx = len-1; idx >= 0 && elt->col > i; idx--, elt-- )
205 sum -= elt->val*x_ve[elt->col];
206 if ( idx < 0 || elt->col != i || elt->val == 0.0 )
207 error(E_SING,"spLUsolve");
208 x_ve[i] = sum/elt->val;
209 }
210
211 return x;
212 }
213
214 /* spLUTsolve -- solve A.x = b using factored matrix A from spLUfactor()
215 -- returns x
216 -- may not be in-situ */
217 VEC *spLUTsolve(A,pivot,b,x)
218 SPMAT *A;
219 PERM *pivot;
220 VEC *b, *x;
221 {
222 int i, idx, lim, rownum;
223 Real sum, *tmp_ve;
224 /* SPROW *r; */
225 row_elt *elt;
226 static VEC *tmp=VNULL;
227
228 if ( ! A || ! b )
229 error(E_NULL,"spLUTsolve");
230 if ( (pivot != PNULL && A->m != pivot->size) || A->m != b->dim )
231 error(E_SIZES,"spLUTsolve");
232 tmp = v_copy(b,tmp);
233 MEM_STAT_REG(tmp,TYPE_VEC);
234
235 if ( ! A->flag_col )
236 sp_col_access(A);
237 if ( ! A->flag_diag )
238 sp_diag_access(A);
239
240 lim = min(A->m,A->n);
241 tmp_ve = tmp->ve;
242 /* solve U^T.tmp = b */
243 for ( i = 0; i < lim; i++ )
244 {
245 sum = tmp_ve[i];
246 rownum = A->start_row[i];
247 idx = A->start_idx[i];
248 if ( rownum < 0 || idx < 0 )
249 error(E_SING,"spLUTsolve");
250 while ( rownum < i && rownum >= 0 && idx >= 0 )
251 {
252 elt = &(A->row[rownum].elt[idx]);
253 sum -= elt->val*tmp_ve[rownum];
254 rownum = elt->nxt_row;
255 idx = elt->nxt_idx;
256 }
257 if ( rownum != i )
258 error(E_SING,"spLUTsolve");
259 elt = &(A->row[rownum].elt[idx]);
260 if ( elt->val == 0.0 )
261 error(E_SING,"spLUTsolve");
262 tmp_ve[i] = sum/elt->val;
263 }
264
265 /* now solve L^T.tmp = (old) tmp */
266 for ( i = lim-1; i >= 0; i-- )
267 {
268 sum = tmp_ve[i];
269 rownum = i;
270 idx = A->row[rownum].diag;
271 if ( idx < 0 )
272 error(E_NULL,"spLUTsolve");
273 elt = &(A->row[rownum].elt[idx]);
274 rownum = elt->nxt_row;
275 idx = elt->nxt_idx;
276 while ( rownum < lim && rownum >= 0 && idx >= 0 )
277 {
278 elt = &(A->row[rownum].elt[idx]);
279 sum -= elt->val*tmp_ve[rownum];
280 rownum = elt->nxt_row;
281 idx = elt->nxt_idx;
282 }
283 tmp_ve[i] = sum;
284 }
285
286 if ( pivot != PNULL )
287 x = pxinv_vec(pivot,tmp,x);
288 else
289 x = v_copy(tmp,x);
290
291 return x;
292 }
293
294 /* spILUfactor -- sparse modified incomplete LU factorisation with
295 no pivoting
296 -- all pivot entries are ensured to be >= alpha in magnitude
297 -- setting alpha = 0 gives incomplete LU factorisation
298 -- no fill-in is generated
299 -- in situ factorisation */
300 SPMAT *spILUfactor(A,alpha)
301 SPMAT *A;
302 double alpha;
303 {
304 int i, k, idx, idx_piv, m, n, old_idx, old_idx_piv;
305 SPROW *r, *r_piv;
306 Real piv_val, tmp;
307
308 /* printf("spILUfactor: entered\n"); */
309 if ( ! A )
310 error(E_NULL,"spILUfactor");
311 if ( alpha < 0.0 )
312 error(E_RANGE,"[alpha] in spILUfactor");
313
314 m = A->m; n = A->n;
315 sp_diag_access(A);
316 sp_col_access(A);
317
318 for ( k = 0; k < n; k++ )
319 {
320 /* printf("spILUfactor(l.%d): checkpoint A: k = %d\n",__LINE__,k); */
321 /* printf("spILUfactor(l.%d): A =\n", __LINE__); */
322 /* sp_output(A); */
323 r_piv = &(A->row[k]);
324 idx_piv = r_piv->diag;
325 if ( idx_piv < 0 )
326 {
327 sprow_set_val(r_piv,k,alpha);
328 idx_piv = sprow_idx(r_piv,k);
329 }
330 /* printf("spILUfactor: checkpoint B\n"); */
331 if ( idx_piv < 0 )
332 error(E_BOUNDS,"spILUfactor");
333 old_idx_piv = idx_piv;
334 piv_val = r_piv->elt[idx_piv].val;
335 /* printf("spILUfactor: checkpoint C\n"); */
336 if ( fabs(piv_val) < alpha )
337 piv_val = ( piv_val < 0.0 ) ? -alpha : alpha;
338 if ( piv_val == 0.0 ) /* alpha == 0.0 too! */
339 error(E_SING,"spILUfactor");
340
341 /* go to next row with a non-zero in this column */
342 i = r_piv->elt[idx_piv].nxt_row;
343 old_idx = idx = r_piv->elt[idx_piv].nxt_idx;
344 while ( i >= k )
345 {
346 /* printf("spILUfactor: checkpoint D: i = %d\n",i); */
347 /* perform row operations */
348 r = &(A->row[i]);
349 /* idx = sprow_idx(r,k); */
350 /* printf("spLUfactor(l.%d) i = %d, idx = %d\n",
351 __LINE__, i, idx); */
352 if ( idx < 0 )
353 {
354 idx = r->elt[old_idx].nxt_idx;
355 i = r->elt[old_idx].nxt_row;
356 continue;
357 }
358 /* printf("spILUfactor: checkpoint E\n"); */
359 /* compute and set multiplier */
360 r->elt[idx].val = tmp = r->elt[idx].val/piv_val;
361 /* printf("spILUfactor: piv_val = %g, multiplier = %g\n",
362 piv_val, tmp); */
363 /* printf("spLUfactor(l.%d) multiplier = %g\n", __LINE__, tmp); */
364 if ( tmp == 0.0 )
365 {
366 idx = r->elt[old_idx].nxt_idx;
367 i = r->elt[old_idx].nxt_row;
368 continue;
369 }
370 /* idx = sprow_idx(r,k+1); */
371 /* if ( idx < 0 )
372 idx = -(idx+2); */
373 idx_piv++; idx++; /* now look beyond the multiplier entry */
374 /* printf("spILUfactor: checkpoint F: idx = %d, idx_piv = %d\n",
375 idx, idx_piv); */
376 while ( idx_piv < r_piv->len && idx < r->len )
377 {
378 /* printf("spILUfactor: checkpoint G: idx = %d, idx_piv = %d\n",
379 idx, idx_piv); */
380 if ( r_piv->elt[idx_piv].col < r->elt[idx].col )
381 idx_piv++;
382 else if ( r_piv->elt[idx_piv].col > r->elt[idx].col )
383 idx++;
384 else /* column numbers match */
385 {
386 /* printf("spILUfactor(l.%d) subtract %g times the ",
387 __LINE__, tmp); */
388 /* printf("(%d,%d) entry to the (%d,%d) entry\n",
389 k, r_piv->elt[idx_piv].col,
390 i, r->elt[idx].col); */
391 r->elt[idx].val -= tmp*r_piv->elt[idx_piv].val;
392 idx++; idx_piv++;
393 }
394 }
395
396 /* bump to next row with a non-zero in column k */
397 /* printf("spILUfactor(l.%d) column = %d, row[%d] =\n",
398 __LINE__, r->elt[old_idx].col, i); */
399 /* sprow_foutput(stdout,r); */
400 i = r->elt[old_idx].nxt_row;
401 old_idx = idx = r->elt[old_idx].nxt_idx;
402 /* printf("spILUfactor(l.%d) i = %d, idx = %d\n", __LINE__, i, idx); */
403 /* and restore idx_piv to index of pivot entry */
404 idx_piv = old_idx_piv;
405 }
406 }
407 /* printf("spILUfactor: exiting\n"); */
408 return A;
409 }
+0
-714
interface/src/scilab/src/c/sprow.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25 /*
26 Sparse rows package
27 See also: sparse.h, matrix.h
28 */
29
30 #include <stdio.h>
31 #include <math.h>
32 #include <stdlib.h>
33 #include "sparse.h"
34
35
36 static char rcsid[] = "$Id: sprow.c 3690 2010-09-02 09:55:19Z lsaavedr $";
37
38 #define MINROWLEN 10
39
40
41 /* sprow_dump - prints relevant information about the sparse row r */
42
43 void sprow_dump(fp,r)
44 FILE *fp;
45 SPROW *r;
46 {
47 int j_idx;
48 row_elt *elts;
49
50 fprintf(fp,"SparseRow dump:\n");
51 if ( ! r )
52 { fprintf(fp,"*** NULL row ***\n"); return; }
53
54 fprintf(fp,"row: len = %d, maxlen = %d, diag idx = %d\n",
55 r->len,r->maxlen,r->diag);
56 fprintf(fp,"element list @ 0x%lx\n",(long)(r->elt));
57 if ( ! r->elt )
58 {
59 fprintf(fp,"*** NULL element list ***\n");
60 return;
61 }
62 elts = r->elt;
63 for ( j_idx = 0; j_idx < r->len; j_idx++, elts++ )
64 fprintf(fp,"Col: %d, Val: %g, nxt_row = %d, nxt_idx = %d\n",
65 elts->col,elts->val,elts->nxt_row,elts->nxt_idx);
66 fprintf(fp,"\n");
67 }
68
69
70 /* sprow_idx -- get index into row for a given column in a given row
71 -- return -1 on error
72 -- return -(idx+2) where idx is index to insertion point */
73 int sprow_idx(r,col)
74 SPROW *r;
75 int col;
76 {
77 register int lo, hi, mid;
78 int tmp;
79 register row_elt *r_elt;
80
81 /*******************************************
82 if ( r == (SPROW *)NULL )
83 return -1;
84 if ( col < 0 )
85 return -1;
86 *******************************************/
87
88 r_elt = r->elt;
89 if ( r->len <= 0 )
90 return -2;
91
92 /* try the hint */
93 /* if ( hint >= 0 && hint < r->len && r_elt[hint].col == col )
94 return hint; */
95
96 /* otherwise use binary search... */
97 /* code from K&R Ch. 6, p. 125 */
98 lo = 0; hi = r->len - 1; mid = lo;
99 while ( lo <= hi )
100 {
101 mid = (hi + lo)/2;
102 if ( (tmp=r_elt[mid].col-col) > 0 )
103 hi = mid-1;
104 else if ( tmp < 0 )
105 lo = mid+1;
106 else /* tmp == 0 */
107 return mid;
108 }
109 tmp = r_elt[mid].col - col;
110
111 if ( tmp > 0 )
112 return -(mid+2); /* insert at mid */
113 else /* tmp < 0 */
114 return -(mid+3); /* insert at mid+1 */
115 }
116
117
118 /* sprow_get -- gets, initialises and returns a SPROW structure
119 -- max. length is maxlen */
120 SPROW *sprow_get(maxlen)
121 int maxlen;
122 {
123 SPROW *r;
124
125 if ( maxlen < 0 )
126 error(E_NEG,"sprow_get");
127
128 r = NEW(SPROW);
129 if ( ! r )
130 error(E_MEM,"sprow_get");
131 else if (mem_info_is_on()) {
132 mem_bytes(TYPE_SPROW,0,sizeof(SPROW));
133 mem_numvar(TYPE_SPROW,1);
134 }
135 r->elt = NEW_A(maxlen,row_elt);
136 if ( ! r->elt )
137 error(E_MEM,"sprow_get");
138 else if (mem_info_is_on()) {
139 mem_bytes(TYPE_SPROW,0,maxlen*sizeof(row_elt));
140 }
141 r->len = 0;
142 r->maxlen = maxlen;
143 r->diag = -1;
144
145 return r;
146 }
147
148
149 /* sprow_xpd -- expand row by means of realloc()
150 -- type must be TYPE_SPMAT if r is a row of a SPMAT structure,
151 otherwise it must be TYPE_SPROW
152 -- returns r */
153 SPROW *sprow_xpd(r,n,type)
154 SPROW *r;
155 int n,type;
156 {
157 int newlen;
158
159 if ( ! r ) {
160 r = NEW(SPROW);
161 if (! r )
162 error(E_MEM,"sprow_xpd");
163 else if ( mem_info_is_on()) {
164 if (type != TYPE_SPMAT && type != TYPE_SPROW)
165 warning(WARN_WRONG_TYPE,"sprow_xpd");
166 mem_bytes(type,0,sizeof(SPROW));
167 if (type == TYPE_SPROW)
168 mem_numvar(type,1);
169 }
170 }
171
172 if ( ! r->elt )
173 {
174 r->elt = NEW_A((unsigned)n,row_elt);
175 if ( ! r->elt )
176 error(E_MEM,"sprow_xpd");
177 else if (mem_info_is_on()) {
178 mem_bytes(type,0,n*sizeof(row_elt));
179 }
180 r->len = 0;
181 r->maxlen = n;
182 return r;
183 }
184 if ( n <= r->len )
185 newlen = max(2*r->len + 1,MINROWLEN);
186 else
187 newlen = n;
188 if ( newlen <= r->maxlen )
189 {
190 MEM_ZERO((char *)(&(r->elt[r->len])),
191 (newlen-r->len)*sizeof(row_elt));
192 r->len = newlen;
193 }
194 else
195 {
196 if (mem_info_is_on()) {
197 mem_bytes(type,r->maxlen*sizeof(row_elt),
198 newlen*sizeof(row_elt));
199 }
200 r->elt = RENEW(r->elt,newlen,row_elt);
201 if ( ! r->elt )
202 error(E_MEM,"sprow_xpd");
203 r->maxlen = newlen;
204 r->len = newlen;
205 }
206
207 return r;
208 }
209
210 /* sprow_resize -- resize a SPROW variable by means of realloc()
211 -- n is a new size
212 -- returns r */
213 SPROW *sprow_resize(r,n,type)
214 SPROW *r;
215 int n,type;
216 {
217 if (n < 0)
218 error(E_NEG,"sprow_resize");
219
220 if ( ! r )
221 return sprow_get(n);
222
223 if (n == r->len)
224 return r;
225
226 if ( ! r->elt )
227 {
228 r->elt = NEW_A((unsigned)n,row_elt);
229 if ( ! r->elt )
230 error(E_MEM,"sprow_resize");
231 else if (mem_info_is_on()) {
232 mem_bytes(type,0,n*sizeof(row_elt));
233 }
234 r->maxlen = r->len = n;
235 return r;
236 }
237
238 if ( n <= r->maxlen )
239 r->len = n;
240 else
241 {
242 if (mem_info_is_on()) {
243 mem_bytes(type,r->maxlen*sizeof(row_elt),
244 n*sizeof(row_elt));
245 }
246 r->elt = RENEW(r->elt,n,row_elt);
247 if ( ! r->elt )
248 error(E_MEM,"sprow_resize");
249 r->maxlen = r->len = n;
250 }
251
252 return r;
253 }
254
255
256 /* release a row of a matrix */
257 int sprow_free(r)
258 SPROW *r;
259 {
260 if ( ! r )
261 return -1;
262
263 if (mem_info_is_on()) {
264 mem_bytes(TYPE_SPROW,sizeof(SPROW),0);
265 mem_numvar(TYPE_SPROW,-1);
266 }
267
268 if ( r->elt )
269 {
270 if (mem_info_is_on()) {
271 mem_bytes(TYPE_SPROW,r->maxlen*sizeof(row_elt),0);
272 }
273 free((char *)r->elt);
274 }
275 free((char *)r);
276 return 0;
277 }
278
279
280 /* sprow_merge -- merges r1 and r2 into r_out
281 -- cannot be done in-situ
282 -- type must be SPMAT or SPROW depending on
283 whether r_out is a row of a SPMAT structure
284 or a SPROW variable
285 -- returns r_out */
286 SPROW *sprow_merge(r1,r2,r_out,type)
287 SPROW *r1, *r2, *r_out;
288 int type;
289 {
290 int idx1, idx2, idx_out, len1, len2, len_out;
291 row_elt *elt1, *elt2, *elt_out;
292
293 if ( ! r1 || ! r2 )
294 error(E_NULL,"sprow_merge");
295 if ( ! r_out )
296 r_out = sprow_get(MINROWLEN);
297 if ( r1 == r_out || r2 == r_out )
298 error(E_INSITU,"sprow_merge");
299
300 /* Initialise */
301 len1 = r1->len; len2 = r2->len; len_out = r_out->maxlen;
302 idx1 = idx2 = idx_out = 0;
303 elt1 = r1->elt; elt2 = r2->elt; elt_out = r_out->elt;
304
305 while ( idx1 < len1 || idx2 < len2 )
306 {
307 if ( idx_out >= len_out )
308 { /* r_out is too small */
309 r_out->len = idx_out;
310 r_out = sprow_xpd(r_out,0,type);
311 len_out = r_out->len;
312 elt_out = &(r_out->elt[idx_out]);
313 }
314 if ( idx2 >= len2 || (idx1 < len1 && elt1->col <= elt2->col) )
315 {
316 elt_out->col = elt1->col;
317 elt_out->val = elt1->val;
318 if ( elt1->col == elt2->col && idx2 < len2 )
319 { elt2++; idx2++; }
320 elt1++; idx1++;
321 }
322 else
323 {
324 elt_out->col = elt2->col;
325 elt_out->val = elt2->val;
326 elt2++; idx2++;
327 }
328 elt_out++; idx_out++;
329 }
330 r_out->len = idx_out;
331
332 return r_out;
333 }
334
335 /* sprow_copy -- copies r1 and r2 into r_out
336 -- cannot be done in-situ
337 -- type must be SPMAT or SPROW depending on
338 whether r_out is a row of a SPMAT structure
339 or a SPROW variable
340 -- returns r_out */
341 SPROW *sprow_copy(r1,r2,r_out,type)
342 SPROW *r1, *r2, *r_out;
343 int type;
344 {
345 int idx1, idx2, idx_out, len1, len2, len_out;
346 row_elt *elt1, *elt2, *elt_out;
347
348 if ( ! r1 || ! r2 )
349 error(E_NULL,"sprow_copy");
350 if ( ! r_out )
351 r_out = sprow_get(MINROWLEN);
352 if ( r1 == r_out || r2 == r_out )
353 error(E_INSITU,"sprow_copy");
354
355 /* Initialise */
356 len1 = r1->len; len2 = r2->len; len_out = r_out->maxlen;
357 idx1 = idx2 = idx_out = 0;
358 elt1 = r1->elt; elt2 = r2->elt; elt_out = r_out->elt;
359
360 while ( idx1 < len1 || idx2 < len2 )
361 {
362 while ( idx_out >= len_out )
363 { /* r_out is too small */
364 r_out->len = idx_out;
365 r_out = sprow_xpd(r_out,0,type);
366 len_out = r_out->maxlen;
367 elt_out = &(r_out->elt[idx_out]);
368 }
369 if ( idx2 >= len2 || (idx1 < len1 && elt1->col <= elt2->col) )
370 {
371 elt_out->col = elt1->col;
372 elt_out->val = elt1->val;
373 if ( elt1->col == elt2->col && idx2 < len2 )
374 { elt2++; idx2++; }
375 elt1++; idx1++;
376 }
377 else
378 {
379 elt_out->col = elt2->col;
380 elt_out->val = 0.0;
381 elt2++; idx2++;
382 }
383 elt_out++; idx_out++;
384 }
385 r_out->len = idx_out;
386
387 return r_out;
388 }
389
390 /* sprow_mltadd -- sets r_out <- r1 + alpha.r2
391 -- cannot be in situ
392 -- only for columns j0, j0+1, ...
393 -- type must be SPMAT or SPROW depending on
394 whether r_out is a row of a SPMAT structure
395 or a SPROW variable
396 -- returns r_out */
397 SPROW *sprow_mltadd(r1,r2,alpha,j0,r_out,type)
398 SPROW *r1, *r2, *r_out;
399 double alpha;
400 int j0, type;
401 {
402 int idx1, idx2, idx_out, len1, len2, len_out;
403 row_elt *elt1, *elt2, *elt_out;
404
405 if ( ! r1 || ! r2 )
406 error(E_NULL,"sprow_mltadd");
407 if ( r1 == r_out || r2 == r_out )
408 error(E_INSITU,"sprow_mltadd");
409 if ( j0 < 0 )
410 error(E_BOUNDS,"sprow_mltadd");
411 if ( ! r_out )
412 r_out = sprow_get(MINROWLEN);
413
414 /* Initialise */
415 len1 = r1->len; len2 = r2->len; len_out = r_out->maxlen;
416 /* idx1 = idx2 = idx_out = 0; */
417 idx1 = sprow_idx(r1,j0);
418 idx2 = sprow_idx(r2,j0);
419 idx_out = sprow_idx(r_out,j0);
420 idx1 = (idx1 < 0) ? -(idx1+2) : idx1;
421 idx2 = (idx2 < 0) ? -(idx2+2) : idx2;
422 idx_out = (idx_out < 0) ? -(idx_out+2) : idx_out;
423 elt1 = &(r1->elt[idx1]);
424 elt2 = &(r2->elt[idx2]);
425 elt_out = &(r_out->elt[idx_out]);
426
427 while ( idx1 < len1 || idx2 < len2 )
428 {
429 if ( idx_out >= len_out )
430 { /* r_out is too small */
431 r_out->len = idx_out;
432 r_out = sprow_xpd(r_out,0,type);
433 len_out = r_out->maxlen;
434 elt_out = &(r_out->elt[idx_out]);
435 }
436 if ( idx2 >= len2 || (idx1 < len1 && elt1->col <= elt2->col) )
437 {
438 elt_out->col = elt1->col;
439 elt_out->val = elt1->val;
440 if ( idx2 < len2 && elt1->col == elt2->col )
441 {
442 elt_out->val += alpha*elt2->val;
443 elt2++; idx2++;
444 }
445 elt1++; idx1++;
446 }
447 else
448 {
449 elt_out->col = elt2->col;
450 elt_out->val = alpha*elt2->val;
451 elt2++; idx2++;
452 }
453 elt_out++; idx_out++;
454 }
455 r_out->len = idx_out;
456
457 return r_out;
458 }
459
460 /* sprow_add -- sets r_out <- r1 + r2
461 -- cannot be in situ
462 -- only for columns j0, j0+1, ...
463 -- type must be SPMAT or SPROW depending on
464 whether r_out is a row of a SPMAT structure
465 or a SPROW variable
466 -- returns r_out */
467 SPROW *sprow_add(r1,r2,j0,r_out,type)
468 SPROW *r1, *r2, *r_out;
469 int j0, type;
470 {
471 int idx1, idx2, idx_out, len1, len2, len_out;
472 row_elt *elt1, *elt2, *elt_out;
473
474 if ( ! r1 || ! r2 )
475 error(E_NULL,"sprow_add");
476 if ( r1 == r_out || r2 == r_out )
477 error(E_INSITU,"sprow_add");
478 if ( j0 < 0 )
479 error(E_BOUNDS,"sprow_add");
480 if ( ! r_out )
481 r_out = sprow_get(MINROWLEN);
482
483 /* Initialise */
484 len1 = r1->len; len2 = r2->len; len_out = r_out->maxlen;
485 /* idx1 = idx2 = idx_out = 0; */
486 idx1 = sprow_idx(r1,j0);
487 idx2 = sprow_idx(r2,j0);
488 idx_out = sprow_idx(r_out,j0);
489 idx1 = (idx1 < 0) ? -(idx1+2) : idx1;
490 idx2 = (idx2 < 0) ? -(idx2+2) : idx2;
491 idx_out = (idx_out < 0) ? -(idx_out+2) : idx_out;
492 elt1 = &(r1->elt[idx1]);
493 elt2 = &(r2->elt[idx2]);
494 elt_out = &(r_out->elt[idx_out]);
495
496 while ( idx1 < len1 || idx2 < len2 )
497 {
498 if ( idx_out >= len_out )
499 { /* r_out is too small */
500 r_out->len = idx_out;
501 r_out = sprow_xpd(r_out,0,type);
502 len_out = r_out->maxlen;
503 elt_out = &(r_out->elt[idx_out]);
504 }
505 if ( idx2 >= len2 || (idx1 < len1 && elt1->col <= elt2->col) )
506 {
507 elt_out->col = elt1->col;
508 elt_out->val = elt1->val;
509 if ( idx2 < len2 && elt1->col == elt2->col )
510 {
511 elt_out->val += elt2->val;
512 elt2++; idx2++;
513 }
514 elt1++; idx1++;
515 }
516 else
517 {
518 elt_out->col = elt2->col;
519 elt_out->val = elt2->val;
520 elt2++; idx2++;
521 }
522 elt_out++; idx_out++;
523 }
524 r_out->len = idx_out;
525
526 return r_out;
527 }
528
529 /* sprow_sub -- sets r_out <- r1 - r2
530 -- cannot be in situ
531 -- only for columns j0, j0+1, ...
532 -- type must be SPMAT or SPROW depending on
533 whether r_out is a row of a SPMAT structure
534 or a SPROW variable
535 -- returns r_out */
536 SPROW *sprow_sub(r1,r2,j0,r_out,type)
537 SPROW *r1, *r2, *r_out;
538 int j0, type;
539 {
540 int idx1, idx2, idx_out, len1, len2, len_out;
541 row_elt *elt1, *elt2, *elt_out;
542
543 if ( ! r1 || ! r2 )
544 error(E_NULL,"sprow_sub");
545 if ( r1 == r_out || r2 == r_out )
546 error(E_INSITU,"sprow_sub");
547 if ( j0 < 0 )
548 error(E_BOUNDS,"sprow_sub");
549 if ( ! r_out )
550 r_out = sprow_get(MINROWLEN);
551
552 /* Initialise */
553 len1 = r1->len; len2 = r2->len; len_out = r_out->maxlen;
554 /* idx1 = idx2 = idx_out = 0; */
555 idx1 = sprow_idx(r1,j0);
556 idx2 = sprow_idx(r2,j0);
557 idx_out = sprow_idx(r_out,j0);
558 idx1 = (idx1 < 0) ? -(idx1+2) : idx1;
559 idx2 = (idx2 < 0) ? -(idx2+2) : idx2;
560 idx_out = (idx_out < 0) ? -(idx_out+2) : idx_out;
561 elt1 = &(r1->elt[idx1]);
562 elt2 = &(r2->elt[idx2]);
563 elt_out = &(r_out->elt[idx_out]);
564
565 while ( idx1 < len1 || idx2 < len2 )
566 {
567 if ( idx_out >= len_out )
568 { /* r_out is too small */
569 r_out->len = idx_out;
570 r_out = sprow_xpd(r_out,0,type);
571 len_out = r_out->maxlen;
572 elt_out = &(r_out->elt[idx_out]);
573 }
574 if ( idx2 >= len2 || (idx1 < len1 && elt1->col <= elt2->col) )
575 {
576 elt_out->col = elt1->col;
577 elt_out->val = elt1->val;
578 if ( idx2 < len2 && elt1->col == elt2->col )
579 {
580 elt_out->val -= elt2->val;
581 elt2++; idx2++;
582 }
583 elt1++; idx1++;
584 }
585 else
586 {
587 elt_out->col = elt2->col;
588 elt_out->val = -elt2->val;
589 elt2++; idx2++;
590 }
591 elt_out++; idx_out++;
592 }
593 r_out->len = idx_out;
594
595 return r_out;
596 }
597
598
599 /* sprow_smlt -- sets r_out <- alpha*r1
600 -- can be in situ
601 -- only for columns j0, j0+1, ...
602 -- returns r_out */
603 SPROW *sprow_smlt(r1,alpha,j0,r_out,type)
604 SPROW *r1, *r_out;
605 double alpha;
606 int j0, type;
607 {
608 int idx1, idx_out, len1;
609 row_elt *elt1, *elt_out;
610
611 if ( ! r1 )
612 error(E_NULL,"sprow_smlt");
613 if ( j0 < 0 )
614 error(E_BOUNDS,"sprow_smlt");
615 if ( ! r_out )
616 r_out = sprow_get(MINROWLEN);
617
618 /* Initialise */
619 len1 = r1->len;
620 idx1 = sprow_idx(r1,j0);
621 idx_out = sprow_idx(r_out,j0);
622 idx1 = (idx1 < 0) ? -(idx1+2) : idx1;
623 idx_out = (idx_out < 0) ? -(idx_out+2) : idx_out;
624 elt1 = &(r1->elt[idx1]);
625
626 r_out = sprow_resize(r_out,idx_out+len1-idx1,type);
627 elt_out = &(r_out->elt[idx_out]);
628
629 for ( ; idx1 < len1; elt1++,elt_out++,idx1++,idx_out++ )
630 {
631 elt_out->col = elt1->col;
632 elt_out->val = alpha*elt1->val;
633 }
634
635 r_out->len = idx_out;
636
637 return r_out;
638 }
639
640
641 /* sprow_foutput -- print a representation of r on stream fp */
642 void sprow_foutput(fp,r)
643 FILE *fp;
644 SPROW *r;
645 {
646 int i, len;
647 row_elt *e;
648
649 if ( ! r )
650 {
651 fprintf(fp,"SparseRow: **** NULL ****\n");
652 return;
653 }
654 len = r->len;
655 fprintf(fp,"SparseRow: length: %d\n",len);
656 for ( i = 0, e = r->elt; i < len; i++, e++ )
657 fprintf(fp,"Column %d: %g, next row: %d, next index %d\n",
658 e->col, e->val, e->nxt_row, e->nxt_idx);
659 }
660
661
662 /* sprow_set_val -- sets the j-th column entry of the sparse row r
663 -- Note: destroys the usual column & row access paths */
664 double sprow_set_val(r,j,val)
665 SPROW *r;
666 int j;
667 double val;
668 {
669 int idx, idx2, new_len;
670
671 if ( ! r )
672 error(E_NULL,"sprow_set_val");
673
674 idx = sprow_idx(r,j);
675 if ( idx >= 0 )
676 { r->elt[idx].val = val; return val; }
677 /* else */ if ( idx < -1 )
678 {
679 /* shift & insert new value */
680 idx = -(idx+2); /* this is the intended insertion index */
681 if ( r->len >= r->maxlen )
682 {
683 r->len = r->maxlen;
684 new_len = max(2*r->maxlen+1,5);
685 if (mem_info_is_on()) {
686 mem_bytes(TYPE_SPROW,r->maxlen*sizeof(row_elt),
687 new_len*sizeof(row_elt));
688 }
689
690 r->elt = RENEW(r->elt,new_len,row_elt);
691 if ( ! r->elt ) /* can't allocate */
692 error(E_MEM,"sprow_set_val");
693 r->maxlen = 2*r->maxlen+1;
694 }
695 for ( idx2 = r->len-1; idx2 >= idx; idx2-- )
696 MEM_COPY((char *)(&(r->elt[idx2])),
697 (char *)(&(r->elt[idx2+1])),sizeof(row_elt));
698 /************************************************************
699 if ( idx < r->len )
700 MEM_COPY((char *)(&(r->elt[idx])),(char *)(&(r->elt[idx+1])),
701 (r->len-idx)*sizeof(row_elt));
702 ************************************************************/
703 r->len++;
704 r->elt[idx].col = j;
705 r->elt[idx].nxt_row = -1;
706 r->elt[idx].nxt_idx = -1;
707 return r->elt[idx].val = val;
708 }
709 /* else -- idx == -1, error in index/matrix! */
710 return 0.0;
711 }
712
713
+0
-302
interface/src/scilab/src/c/spswap.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Sparse matrix swap and permutation routines
28 Modified Mon 09th Nov 1992, 08:50:54 PM
29 to use Karen George's suggestion to use unordered rows
30 */
31
32 static char rcsid[] = "$Id: spswap.c 3690 2010-09-02 09:55:19Z lsaavedr $";
33
34 #include <stdio.h>
35 #include "sparse2.h"
36 #include <math.h>
37
38
39 #define btos(x) ((x) ? "TRUE" : "FALSE")
40
41 /* scan_to -- updates scan (int) vectors to point to the last row in each
42 column with row # <= max_row, if any */
43 void scan_to(A, scan_row, scan_idx, col_list, max_row)
44 SPMAT *A;
45 IVEC *scan_row, *scan_idx, *col_list;
46 int max_row;
47 {
48 int col, idx, j_idx, row_num;
49 SPROW *r;
50 row_elt *e;
51
52 if ( ! A || ! scan_row || ! scan_idx || ! col_list )
53 error(E_NULL,"scan_to");
54 if ( scan_row->dim != scan_idx->dim || scan_idx->dim != col_list->dim )
55 error(E_SIZES,"scan_to");
56
57 if ( max_row < 0 )
58 return;
59
60 if ( ! A->flag_col )
61 sp_col_access(A);
62
63 for ( j_idx = 0; j_idx < scan_row->dim; j_idx++ )
64 {
65 row_num = scan_row->ive[j_idx];
66 idx = scan_idx->ive[j_idx];
67 col = col_list->ive[j_idx];
68
69 if ( col < 0 || col >= A->n )
70 error(E_BOUNDS,"scan_to");
71 if ( row_num < 0 )
72 {
73 idx = col;
74 continue;
75 }
76 r = &(A->row[row_num]);
77 if ( idx < 0 )
78 error(E_INTERN,"scan_to");
79 e = &(r->elt[idx]);
80 if ( e->col != col )
81 error(E_INTERN,"scan_to");
82 if ( idx < 0 )
83 {
84 printf("scan_to: row_num = %d, idx = %d, col = %d\n",
85 row_num, idx, col);
86 error(E_INTERN,"scan_to");
87 }
88 /* if ( e->nxt_row <= max_row )
89 chase_col(A, col, &row_num, &idx, max_row); */
90 while ( e->nxt_row >= 0 && e->nxt_row <= max_row )
91 {
92 row_num = e->nxt_row;
93 idx = e->nxt_idx;
94 e = &(A->row[row_num].elt[idx]);
95 }
96
97 /* printf("scan_to: computed j_idx = %d, row_num = %d, idx = %d\n",
98 j_idx, row_num, idx); */
99 scan_row->ive[j_idx] = row_num;
100 scan_idx->ive[j_idx] = idx;
101 }
102 }
103
104 /* patch_col -- patches column access paths for fill-in */
105 void patch_col(A, col, old_row, old_idx, row_num, idx)
106 SPMAT *A;
107 int col, old_row, old_idx, row_num, idx;
108 {
109 SPROW *r;
110 row_elt *e;
111
112 if ( old_row >= 0 )
113 {
114 r = &(A->row[old_row]);
115 old_idx = sprow_idx2(r,col,old_idx);
116 e = &(r->elt[old_idx]);
117 e->nxt_row = row_num;
118 e->nxt_idx = idx;
119 }
120 else
121 {
122 A->start_row[col] = row_num;
123 A->start_idx[col] = idx;
124 }
125 }
126
127 /* chase_col -- chases column access path in column col, starting with
128 row_num and idx, to find last row # in this column <= max_row
129 -- row_num is returned; idx is also set by this routine
130 -- assumes that the column access paths (possibly without the
131 nxt_idx fields) are set up */
132 row_elt *chase_col(A, col, row_num, idx, max_row)
133 SPMAT *A;
134 int col, *row_num, *idx, max_row;
135 {
136 int old_idx, old_row, tmp_idx, tmp_row;
137 SPROW *r;
138 row_elt *e;
139
140 if ( col < 0 || col >= A->n )
141 error(E_BOUNDS,"chase_col");
142 tmp_row = *row_num;
143 if ( tmp_row < 0 )
144 {
145 if ( A->start_row[col] > max_row )
146 {
147 tmp_row = -1;
148 tmp_idx = col;
149 return (row_elt *)NULL;
150 }
151 else
152 {
153 tmp_row = A->start_row[col];
154 tmp_idx = A->start_idx[col];
155 }
156 }
157 else
158 tmp_idx = *idx;
159
160 old_row = tmp_row;
161 old_idx = tmp_idx;
162 while ( tmp_row >= 0 && tmp_row < max_row )
163 {
164 r = &(A->row[tmp_row]);
165 /* tmp_idx = sprow_idx2(r,col,tmp_idx); */
166 if ( tmp_idx < 0 || tmp_idx >= r->len ||
167 r->elt[tmp_idx].col != col )
168 {
169 #ifdef DEBUG
170 printf("chase_col:error: col = %d, row # = %d, idx = %d\n",
171 col, tmp_row, tmp_idx);
172 printf("chase_col:error: old_row = %d, old_idx = %d\n",
173 old_row, old_idx);
174 printf("chase_col:error: A =\n");
175 sp_dump(stdout,A);
176 #endif
177 error(E_INTERN,"chase_col");
178 }
179 e = &(r->elt[tmp_idx]);
180 old_row = tmp_row;
181 old_idx = tmp_idx;
182 tmp_row = e->nxt_row;
183 tmp_idx = e->nxt_idx;
184 }
185 if ( old_row > max_row )
186 {
187 old_row = -1;
188 old_idx = col;
189 e = (row_elt *)NULL;
190 }
191 else if ( tmp_row <= max_row && tmp_row >= 0 )
192 {
193 old_row = tmp_row;
194 old_idx = tmp_idx;
195 }
196
197 *row_num = old_row;
198 if ( old_row >= 0 )
199 *idx = old_idx;
200 else
201 *idx = col;
202
203 return e;
204 }
205
206 /* chase_past -- as for chase_col except that we want the first
207 row whose row # >= min_row; -1 indicates no such row */
208 row_elt *chase_past(A, col, row_num, idx, min_row)
209 SPMAT *A;
210 int col, *row_num, *idx, min_row;
211 {
212 SPROW *r;
213 row_elt *e;
214 int tmp_idx, tmp_row;
215
216 tmp_row = *row_num;
217 tmp_idx = *idx;
218 chase_col(A,col,&tmp_row,&tmp_idx,min_row);
219 if ( tmp_row < 0 ) /* use A->start_row[..] etc. */
220 {
221 if ( A->start_row[col] < 0 )
222 tmp_row = -1;
223 else
224 {
225 tmp_row = A->start_row[col];
226 tmp_idx = A->start_idx[col];
227 }
228 }
229 else if ( tmp_row < min_row )
230 {
231 r = &(A->row[tmp_row]);
232 if ( tmp_idx < 0 || tmp_idx >= r->len ||
233 r->elt[tmp_idx].col != col )
234 error(E_INTERN,"chase_past");
235 tmp_row = r->elt[tmp_idx].nxt_row;
236 tmp_idx = r->elt[tmp_idx].nxt_idx;
237 }
238
239 *row_num = tmp_row;
240 *idx = tmp_idx;
241 if ( tmp_row < 0 )
242 e = (row_elt *)NULL;
243 else
244 {
245 if ( tmp_idx < 0 || tmp_idx >= A->row[tmp_row].len ||
246 A->row[tmp_row].elt[tmp_idx].col != col )
247 error(E_INTERN,"bump_col");
248 e = &(A->row[tmp_row].elt[tmp_idx]);
249 }
250
251 return e;
252 }
253
254 /* bump_col -- move along to next nonzero entry in column col after row_num
255 -- update row_num and idx */
256 row_elt *bump_col(A, col, row_num, idx)
257 SPMAT *A;
258 int col, *row_num, *idx;
259 {
260 SPROW *r;
261 row_elt *e;
262 int tmp_row, tmp_idx;
263
264 tmp_row = *row_num;
265 tmp_idx = *idx;
266 /* printf("bump_col: col = %d, row# = %d, idx = %d\n",
267 col, *row_num, *idx); */
268 if ( tmp_row < 0 )
269 {
270 tmp_row = A->start_row[col];
271 tmp_idx = A->start_idx[col];
272 }
273 else
274 {
275 r = &(A->row[tmp_row]);
276 if ( tmp_idx < 0 || tmp_idx >= r->len ||
277 r->elt[tmp_idx].col != col )
278 error(E_INTERN,"bump_col");
279 e = &(r->elt[tmp_idx]);
280 tmp_row = e->nxt_row;
281 tmp_idx = e->nxt_idx;
282 }
283 if ( tmp_row < 0 )
284 {
285 e = (row_elt *)NULL;
286 tmp_idx = col;
287 }
288 else
289 {
290 if ( tmp_idx < 0 || tmp_idx >= A->row[tmp_row].len ||
291 A->row[tmp_row].elt[tmp_idx].col != col )
292 error(E_INTERN,"bump_col");
293 e = &(A->row[tmp_row].elt[tmp_idx]);
294 }
295 *row_num = tmp_row;
296 *idx = tmp_idx;
297
298 return e;
299 }
300
301
+0
-178
interface/src/scilab/src/c/submat.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* 1.2 submat.c 11/25/87 */
27
28 #include <stdio.h>
29 #include "matrix.h"
30
31 static char rcsid[] = "$Id: submat.c 3690 2010-09-02 09:55:19Z lsaavedr $";
32
33
34 /* get_col -- gets a specified column of a matrix and retruns it as a vector */
35 VEC *get_col(mat,col,vec)
36 u_int col;
37 MAT *mat;
38 VEC *vec;
39 {
40 u_int i;
41
42 if ( mat==(MAT *)NULL )
43 error(E_NULL,"get_col");
44 if ( col >= mat->n )
45 error(E_RANGE,"get_col");
46 if ( vec==(VEC *)NULL || vec->dim<mat->m )
47 vec = v_resize(vec,mat->m);
48
49 for ( i=0; i<mat->m; i++ )
50 vec->ve[i] = mat->me[i][col];
51
52 return (vec);
53 }
54
55 /* get_row -- gets a specified row of a matrix and retruns it as a vector */
56 VEC *get_row(mat,row,vec)
57 u_int row;
58 MAT *mat;
59 VEC *vec;
60 {
61 u_int i;
62
63 if ( mat==(MAT *)NULL )
64 error(E_NULL,"get_row");
65 if ( row >= mat->m )
66 error(E_RANGE,"get_row");
67 if ( vec==(VEC *)NULL || vec->dim<mat->n )
68 vec = v_resize(vec,mat->n);
69
70 for ( i=0; i<mat->n; i++ )
71 vec->ve[i] = mat->me[row][i];
72
73 return (vec);
74 }
75
76 /* _set_col -- sets column of matrix to values given in vec (in situ) */
77 MAT *_set_col(mat,col,vec,i0)
78 MAT *mat;
79 VEC *vec;
80 u_int col,i0;
81 {
82 u_int i,lim;
83
84 if ( mat==(MAT *)NULL || vec==(VEC *)NULL )
85 error(E_NULL,"_set_col");
86 if ( col >= mat->n )
87 error(E_RANGE,"_set_col");
88 lim = min(mat->m,vec->dim);
89 for ( i=i0; i<lim; i++ )
90 mat->me[i][col] = vec->ve[i];
91
92 return (mat);
93 }
94
95 /* _set_row -- sets row of matrix to values given in vec (in situ) */
96 MAT *_set_row(mat,row,vec,j0)
97 MAT *mat;
98 VEC *vec;
99 u_int row,j0;
100 {
101 u_int j,lim;
102
103 if ( mat==(MAT *)NULL || vec==(VEC *)NULL )
104 error(E_NULL,"_set_row");
105 if ( row >= mat->m )
106 error(E_RANGE,"_set_row");
107 lim = min(mat->n,vec->dim);
108 for ( j=j0; j<lim; j++ )
109 mat->me[row][j] = vec->ve[j];
110
111 return (mat);
112 }
113
114 /* sub_mat -- returns sub-matrix of old which is formed by the rectangle
115 from (row1,col1) to (row2,col2)
116 -- Note: storage is shared so that altering the "new"
117 matrix will alter the "old" matrix */
118 MAT *sub_mat(old,row1,col1,row2,col2,new)
119 MAT *old,*new;
120 u_int row1,col1,row2,col2;
121 {
122 u_int i;
123
124 if ( old==(MAT *)NULL )
125 error(E_NULL,"sub_mat");
126 if ( row1 > row2 || col1 > col2 || row2 >= old->m || col2 >= old->n )
127 error(E_RANGE,"sub_mat");
128 if ( new==(MAT *)NULL || new->m < row2-row1+1 )
129 {
130 new = NEW(MAT);
131 new->me = NEW_A(row2-row1+1,Real *);
132 if ( new==(MAT *)NULL || new->me==(Real **)NULL )
133 error(E_MEM,"sub_mat");
134 else if (mem_info_is_on()) {
135 mem_bytes(TYPE_MAT,0,sizeof(MAT)+
136 (row2-row1+1)*sizeof(Real *));
137 }
138
139 }
140 new->m = row2-row1+1;
141
142 new->n = col2-col1+1;
143
144 new->base = (Real *)NULL;
145
146 for ( i=0; i < new->m; i++ )
147 new->me[i] = (old->me[i+row1]) + col1;
148
149 return (new);
150 }
151
152
153 /* sub_vec -- returns sub-vector which is formed by the elements i1 to i2
154 -- as for sub_mat, storage is shared */
155 VEC *sub_vec(old,i1,i2,new)
156 VEC *old, *new;
157 int i1, i2;
158 {
159 if ( old == (VEC *)NULL )
160 error(E_NULL,"sub_vec");
161 if ( i1 > i2 || old->dim < i2 )
162 error(E_RANGE,"sub_vec");
163
164 if ( new == (VEC *)NULL )
165 new = NEW(VEC);
166 if ( new == (VEC *)NULL )
167 error(E_MEM,"sub_vec");
168 else if (mem_info_is_on()) {
169 mem_bytes(TYPE_VEC,0,sizeof(VEC));
170 }
171
172
173 new->dim = i2 - i1 + 1;
174 new->ve = &(old->ve[i1]);
175
176 return new;
177 }
+0
-400
interface/src/scilab/src/c/svd.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 File containing routines for computing the SVD of matrices
28 */
29
30 #include <stdio.h>
31 #include "matrix.h"
32 #include "matrix2.h"
33 #include <math.h>
34
35
36 static char rcsid[] = "$Id: svd.c 3690 2010-09-02 09:55:19Z lsaavedr $";
37
38
39
40 #define sgn(x) ((x) >= 0 ? 1 : -1)
41 #define MAX_STACK 100
42
43 /* fixsvd -- fix minor details about SVD
44 -- make singular values non-negative
45 -- sort singular values in decreasing order
46 -- variables as for bisvd()
47 -- no argument checking */
48 static void fixsvd(d,U,V)
49 VEC *d;
50 MAT *U, *V;
51 {
52 int i, j, k, l, r, stack[MAX_STACK], sp;
53 Real tmp, v;
54
55 /* make singular values non-negative */
56 for ( i = 0; i < d->dim; i++ )
57 if ( d->ve[i] < 0.0 )
58 {
59 d->ve[i] = - d->ve[i];
60 if ( U != MNULL )
61 for ( j = 0; j < U->m; j++ )
62 U->me[i][j] = - U->me[i][j];
63 }
64
65 /* sort singular values */
66 /* nonrecursive implementation of quicksort due to R.Sedgewick,
67 "Algorithms in C", p. 122 (1990) */
68 sp = -1;
69 l = 0; r = d->dim - 1;
70 for ( ; ; )
71 {
72 while ( r > l )
73 {
74 /* i = partition(d->ve,l,r) */
75 v = d->ve[r];
76
77 i = l - 1; j = r;
78 for ( ; ; )
79 { /* inequalities are "backwards" for **decreasing** order */
80 while ( d->ve[++i] > v )
81 ;
82 while ( d->ve[--j] < v )
83 ;
84 if ( i >= j )
85 break;
86 /* swap entries in d->ve */
87 tmp = d->ve[i]; d->ve[i] = d->ve[j]; d->ve[j] = tmp;
88 /* swap rows of U & V as well */
89 if ( U != MNULL )
90 for ( k = 0; k < U->n; k++ )
91 {
92 tmp = U->me[i][k];
93 U->me[i][k] = U->me[j][k];
94 U->me[j][k] = tmp;
95 }
96 if ( V != MNULL )
97 for ( k = 0; k < V->n; k++ )
98 {
99 tmp = V->me[i][k];
100 V->me[i][k] = V->me[j][k];
101 V->me[j][k] = tmp;
102 }
103 }
104 tmp = d->ve[i]; d->ve[i] = d->ve[r]; d->ve[r] = tmp;
105 if ( U != MNULL )
106 for ( k = 0; k < U->n; k++ )
107 {
108 tmp = U->me[i][k];
109 U->me[i][k] = U->me[r][k];
110 U->me[r][k] = tmp;
111 }
112 if ( V != MNULL )
113 for ( k = 0; k < V->n; k++ )
114 {
115 tmp = V->me[i][k];
116 V->me[i][k] = V->me[r][k];
117 V->me[r][k] = tmp;
118 }
119 /* end i = partition(...) */
120 if ( i - l > r - i )
121 { stack[++sp] = l; stack[++sp] = i-1; l = i+1; }
122 else
123 { stack[++sp] = i+1; stack[++sp] = r; r = i-1; }
124 }
125 if ( sp < 0 )
126 break;
127 r = stack[sp--]; l = stack[sp--];
128 }
129 }
130
131
132 /* bisvd -- svd of a bidiagonal m x n matrix represented by d (diagonal) and
133 f (super-diagonals)
134 -- returns with d set to the singular values, f zeroed
135 -- if U, V non-NULL, the orthogonal operations are accumulated
136 in U, V; if U, V == I on entry, then SVD == U^T.A.V
137 where A is initial matrix
138 -- returns d on exit */
139 VEC *bisvd(d,f,U,V)
140 VEC *d, *f;
141 MAT *U, *V;
142 {
143 int i, j, n;
144 int i_min, i_max, split;
145 Real c, s, shift, size, z;
146 Real d_tmp, diff, t11, t12, t22, *d_ve, *f_ve;
147
148 if ( ! d || ! f )
149 error(E_NULL,"bisvd");
150 if ( d->dim != f->dim + 1 )
151 error(E_SIZES,"bisvd");
152 n = d->dim;
153 if ( ( U && U->n < n ) || ( V && V->m < n ) )
154 error(E_SIZES,"bisvd");
155 if ( ( U && U->m != U->n ) || ( V && V->m != V->n ) )
156 error(E_SQUARE,"bisvd");
157
158
159 if ( n == 1 )
160 return d;
161 d_ve = d->ve; f_ve = f->ve;
162
163 size = v_norm_inf(d) + v_norm_inf(f);
164
165 i_min = 0;
166 while ( i_min < n ) /* outer while loop */
167 {
168 /* find i_max to suit;
169 submatrix i_min..i_max should be irreducible */
170 i_max = n - 1;
171 for ( i = i_min; i < n - 1; i++ )
172 if ( d_ve[i] == 0.0 || f_ve[i] == 0.0 )
173 { i_max = i;
174 if ( f_ve[i] != 0.0 )
175 {
176 /* have to ``chase'' f[i] element out of matrix */
177 z = f_ve[i]; f_ve[i] = 0.0;
178 for ( j = i; j < n-1 && z != 0.0; j++ )
179 {
180 givens(d_ve[j+1],z, &c, &s);
181 s = -s;
182 d_ve[j+1] = c*d_ve[j+1] - s*z;
183 if ( j+1 < n-1 )
184 {
185 z = s*f_ve[j+1];
186 f_ve[j+1] = c*f_ve[j+1];
187 }
188 if ( U )
189 rot_rows(U,i,j+1,c,s,U);
190 }
191 }
192 break;
193 }
194 if ( i_max <= i_min )
195 {
196 i_min = i_max + 1;
197 continue;
198 }
199 /* printf("bisvd: i_min = %d, i_max = %d\n",i_min,i_max); */
200
201 split = FALSE;
202 while ( ! split )
203 {
204 /* compute shift */
205 t11 = d_ve[i_max-1]*d_ve[i_max-1] +
206 (i_max > i_min+1 ? f_ve[i_max-2]*f_ve[i_max-2] : 0.0);
207 t12 = d_ve[i_max-1]*f_ve[i_max-1];
208 t22 = d_ve[i_max]*d_ve[i_max] + f_ve[i_max-1]*f_ve[i_max-1];
209 /* use e-val of [[t11,t12],[t12,t22]] matrix
210 closest to t22 */
211 diff = (t11-t22)/2;
212 shift = t22 - t12*t12/(diff +
213 sgn(diff)*sqrt(diff*diff+t12*t12));
214
215 /* initial Givens' rotation */
216 givens(d_ve[i_min]*d_ve[i_min]-shift,
217 d_ve[i_min]*f_ve[i_min], &c, &s);
218
219 /* do initial Givens' rotations */
220 d_tmp = c*d_ve[i_min] + s*f_ve[i_min];
221 f_ve[i_min] = c*f_ve[i_min] - s*d_ve[i_min];
222 d_ve[i_min] = d_tmp;
223 z = s*d_ve[i_min+1];
224 d_ve[i_min+1] = c*d_ve[i_min+1];
225 if ( V )
226 rot_rows(V,i_min,i_min+1,c,s,V);
227 /* 2nd Givens' rotation */
228 givens(d_ve[i_min],z, &c, &s);
229 d_ve[i_min] = c*d_ve[i_min] + s*z;
230 d_tmp = c*d_ve[i_min+1] - s*f_ve[i_min];
231 f_ve[i_min] = s*d_ve[i_min+1] + c*f_ve[i_min];
232 d_ve[i_min+1] = d_tmp;
233 if ( i_min+1 < i_max )
234 {
235 z = s*f_ve[i_min+1];
236 f_ve[i_min+1] = c*f_ve[i_min+1];
237 }
238 if ( U )
239 rot_rows(U,i_min,i_min+1,c,s,U);
240
241 for ( i = i_min+1; i < i_max; i++ )
242 {
243 /* get Givens' rotation for zeroing z */
244 givens(f_ve[i-1],z, &c, &s);
245 f_ve[i-1] = c*f_ve[i-1] + s*z;
246 d_tmp = c*d_ve[i] + s*f_ve[i];
247 f_ve[i] = c*f_ve[i] - s*d_ve[i];
248 d_ve[i] = d_tmp;
249 z = s*d_ve[i+1];
250 d_ve[i+1] = c*d_ve[i+1];
251 if ( V )
252 rot_rows(V,i,i+1,c,s,V);
253 /* get 2nd Givens' rotation */
254 givens(d_ve[i],z, &c, &s);
255 d_ve[i] = c*d_ve[i] + s*z;
256 d_tmp = c*d_ve[i+1] - s*f_ve[i];
257 f_ve[i] = c*f_ve[i] + s*d_ve[i+1];
258 d_ve[i+1] = d_tmp;
259 if ( i+1 < i_max )
260 {
261 z = s*f_ve[i+1];
262 f_ve[i+1] = c*f_ve[i+1];
263 }
264 if ( U )
265 rot_rows(U,i,i+1,c,s,U);
266 }
267 /* should matrix be split? */
268 for ( i = i_min; i < i_max; i++ )
269 if ( fabs(f_ve[i]) <
270 MACHEPS*(fabs(d_ve[i])+fabs(d_ve[i+1])) )
271 {
272 split = TRUE;
273 f_ve[i] = 0.0;
274 }
275 else if ( fabs(d_ve[i]) < MACHEPS*size )
276 {
277 split = TRUE;
278 d_ve[i] = 0.0;
279 }
280 /* printf("bisvd: d =\n"); v_output(d); */
281 /* printf("bisvd: f = \n"); v_output(f); */
282 }
283 }
284 fixsvd(d,U,V);
285
286 return d;
287 }
288
289 /* bifactor -- perform preliminary factorisation for bisvd
290 -- updates U and/or V, which ever is not NULL */
291 MAT *bifactor(A,U,V)
292 MAT *A, *U, *V;
293 {
294 int k;
295 static VEC *tmp1=VNULL, *tmp2=VNULL;
296 Real beta;
297
298 if ( ! A )
299 error(E_NULL,"bifactor");
300 if ( ( U && ( U->m != U->n ) ) || ( V && ( V->m != V->n ) ) )
301 error(E_SQUARE,"bifactor");
302 if ( ( U && U->m != A->m ) || ( V && V->m != A->n ) )
303 error(E_SIZES,"bifactor");
304 tmp1 = v_resize(tmp1,A->m);
305 tmp2 = v_resize(tmp2,A->n);
306 MEM_STAT_REG(tmp1,TYPE_VEC);
307 MEM_STAT_REG(tmp2,TYPE_VEC);
308
309 if ( A->m >= A->n )
310 for ( k = 0; k < A->n; k++ )
311 {
312 get_col(A,k,tmp1);
313 hhvec(tmp1,k,&beta,tmp1,&(A->me[k][k]));
314 hhtrcols(A,k,k+1,tmp1,beta);
315 if ( U )
316 hhtrcols(U,k,0,tmp1,beta);
317 if ( k+1 >= A->n )
318 continue;
319 get_row(A,k,tmp2);
320 hhvec(tmp2,k+1,&beta,tmp2,&(A->me[k][k+1]));
321 hhtrrows(A,k+1,k+1,tmp2,beta);
322 if ( V )
323 hhtrcols(V,k+1,0,tmp2,beta);
324 }
325 else
326 for ( k = 0; k < A->m; k++ )
327 {
328 get_row(A,k,tmp2);
329 hhvec(tmp2,k,&beta,tmp2,&(A->me[k][k]));
330 hhtrrows(A,k+1,k,tmp2,beta);
331 if ( V )
332 hhtrcols(V,k,0,tmp2,beta);
333 if ( k+1 >= A->m )
334 continue;
335 get_col(A,k,tmp1);
336 hhvec(tmp1,k+1,&beta,tmp1,&(A->me[k+1][k]));
337 hhtrcols(A,k+1,k+1,tmp1,beta);
338 if ( U )
339 hhtrcols(U,k+1,0,tmp1,beta);
340 }
341
342 return A;
343 }
344
345 /* svd -- returns vector of singular values in d
346 -- also updates U and/or V, if one or the other is non-NULL
347 -- destroys A */
348 VEC *svd(A,U,V,d)
349 MAT *A, *U, *V;
350 VEC *d;
351 {
352 static VEC *f=VNULL;
353 int i, limit;
354 MAT *A_tmp;
355
356 if ( ! A )
357 error(E_NULL,"svd");
358 if ( ( U && ( U->m != U->n ) ) || ( V && ( V->m != V->n ) ) )
359 error(E_SQUARE,"svd");
360 if ( ( U && U->m != A->m ) || ( V && V->m != A->n ) )
361 error(E_SIZES,"svd");
362
363 A_tmp = m_copy(A,MNULL);
364 if ( U != MNULL )
365 m_ident(U);
366 if ( V != MNULL )
367 m_ident(V);
368 limit = min(A_tmp->m,A_tmp->n);
369 d = v_resize(d,limit);
370 f = v_resize(f,limit-1);
371 MEM_STAT_REG(f,TYPE_VEC);
372
373 bifactor(A_tmp,U,V);
374 if ( A_tmp->m >= A_tmp->n )
375 for ( i = 0; i < limit; i++ )
376 {
377 d->ve[i] = A_tmp->me[i][i];
378 if ( i+1 < limit )
379 f->ve[i] = A_tmp->me[i][i+1];
380 }
381 else
382 for ( i = 0; i < limit; i++ )
383 {
384 d->ve[i] = A_tmp->me[i][i];
385 if ( i+1 < limit )
386 f->ve[i] = A_tmp->me[i+1][i];
387 }
388
389
390 if ( A_tmp->m >= A_tmp->n )
391 bisvd(d,f,U,V);
392 else
393 bisvd(d,f,V,U);
394
395 M_FREE(A_tmp);
396
397 return d;
398 }
399
+0
-211
interface/src/scilab/src/c/symmeig.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 File containing routines for symmetric eigenvalue problems
28 */
29
30 #include <stdio.h>
31 #include "matrix.h"
32 #include "matrix2.h"
33 #include <math.h>
34
35
36 static char rcsid[] = "$Id: symmeig.c 3690 2010-09-02 09:55:19Z lsaavedr $";
37
38
39
40 #define SQRT2 1.4142135623730949
41 #define sgn(x) ( (x) >= 0 ? 1 : -1 )
42
43 /* trieig -- finds eigenvalues of symmetric tridiagonal matrices
44 -- matrix represented by a pair of vectors a (diag entries)
45 and b (sub- & super-diag entries)
46 -- eigenvalues in a on return */
47 VEC *trieig(a,b,Q)
48 VEC *a, *b;
49 MAT *Q;
50 {
51 int i, i_min, i_max, n, split;
52 Real *a_ve, *b_ve;
53 Real b_sqr, bk, ak1, bk1, ak2, bk2, z;
54 Real c, c2, cs, s, s2, d, mu;
55
56 if ( ! a || ! b )
57 error(E_NULL,"trieig");
58 if ( a->dim != b->dim + 1 || ( Q && Q->m != a->dim ) )
59 error(E_SIZES,"trieig");
60 if ( Q && Q->m != Q->n )
61 error(E_SQUARE,"trieig");
62
63 n = a->dim;
64 a_ve = a->ve; b_ve = b->ve;
65
66 i_min = 0;
67 while ( i_min < n ) /* outer while loop */
68 {
69 /* find i_max to suit;
70 submatrix i_min..i_max should be irreducible */
71 i_max = n-1;
72 for ( i = i_min; i < n-1; i++ )
73 if ( b_ve[i] == 0.0 )
74 { i_max = i; break; }
75 if ( i_max <= i_min )
76 {
77 /* printf("# i_min = %d, i_max = %d\n",i_min,i_max); */
78 i_min = i_max + 1;
79 continue; /* outer while loop */
80 }
81
82 /* printf("# i_min = %d, i_max = %d\n",i_min,i_max); */
83
84 /* repeatedly perform QR method until matrix splits */
85 split = FALSE;
86 while ( ! split ) /* inner while loop */
87 {
88
89 /* find Wilkinson shift */
90 d = (a_ve[i_max-1] - a_ve[i_max])/2;
91 b_sqr = b_ve[i_max-1]*b_ve[i_max-1];
92 mu = a_ve[i_max] - b_sqr/(d + sgn(d)*sqrt(d*d+b_sqr));
93 /* printf("# Wilkinson shift = %g\n",mu); */
94
95 /* initial Givens' rotation */
96 givens(a_ve[i_min]-mu,b_ve[i_min],&c,&s);
97 s = -s;
98 /* printf("# c = %g, s = %g\n",c,s); */
99 if ( fabs(c) < SQRT2 )
100 { c2 = c*c; s2 = 1-c2; }
101 else
102 { s2 = s*s; c2 = 1-s2; }
103 cs = c*s;
104 ak1 = c2*a_ve[i_min]+s2*a_ve[i_min+1]-2*cs*b_ve[i_min];
105 bk1 = cs*(a_ve[i_min]-a_ve[i_min+1]) +
106 (c2-s2)*b_ve[i_min];
107 ak2 = s2*a_ve[i_min]+c2*a_ve[i_min+1]+2*cs*b_ve[i_min];
108 bk2 = ( i_min < i_max-1 ) ? c*b_ve[i_min+1] : 0.0;
109 z = ( i_min < i_max-1 ) ? -s*b_ve[i_min+1] : 0.0;
110 a_ve[i_min] = ak1;
111 a_ve[i_min+1] = ak2;
112 b_ve[i_min] = bk1;
113 if ( i_min < i_max-1 )
114 b_ve[i_min+1] = bk2;
115 if ( Q )
116 rot_cols(Q,i_min,i_min+1,c,-s,Q);
117 /* printf("# z = %g\n",z); */
118 /* printf("# a [temp1] =\n"); v_output(a); */
119 /* printf("# b [temp1] =\n"); v_output(b); */
120
121 for ( i = i_min+1; i < i_max; i++ )
122 {
123 /* get Givens' rotation for sub-block -- k == i-1 */
124 givens(b_ve[i-1],z,&c,&s);
125 s = -s;
126 /* printf("# c = %g, s = %g\n",c,s); */
127
128 /* perform Givens' rotation on sub-block */
129 if ( fabs(c) < SQRT2 )
130 { c2 = c*c; s2 = 1-c2; }
131 else
132 { s2 = s*s; c2 = 1-s2; }
133 cs = c*s;
134 bk = c*b_ve[i-1] - s*z;
135 ak1 = c2*a_ve[i]+s2*a_ve[i+1]-2*cs*b_ve[i];
136 bk1 = cs*(a_ve[i]-a_ve[i+1]) +
137 (c2-s2)*b_ve[i];
138 ak2 = s2*a_ve[i]+c2*a_ve[i+1]+2*cs*b_ve[i];
139 bk2 = ( i+1 < i_max ) ? c*b_ve[i+1] : 0.0;
140 z = ( i+1 < i_max ) ? -s*b_ve[i+1] : 0.0;
141 a_ve[i] = ak1; a_ve[i+1] = ak2;
142 b_ve[i] = bk1;
143 if ( i < i_max-1 )
144 b_ve[i+1] = bk2;
145 if ( i > i_min )
146 b_ve[i-1] = bk;
147 if ( Q )
148 rot_cols(Q,i,i+1,c,-s,Q);
149 /* printf("# a [temp2] =\n"); v_output(a); */
150 /* printf("# b [temp2] =\n"); v_output(b); */
151 }
152
153 /* test to see if matrix should be split */
154 for ( i = i_min; i < i_max; i++ )
155 if ( fabs(b_ve[i]) < MACHEPS*
156 (fabs(a_ve[i])+fabs(a_ve[i+1])) )
157 { b_ve[i] = 0.0; split = TRUE; }
158
159 /* printf("# a =\n"); v_output(a); */
160 /* printf("# b =\n"); v_output(b); */
161 }
162 }
163
164 return a;
165 }
166
167 /* symmeig -- computes eigenvalues of a dense symmetric matrix
168 -- A **must** be symmetric on entry
169 -- eigenvalues stored in out
170 -- Q contains orthogonal matrix of eigenvectors
171 -- returns vector of eigenvalues */
172 VEC *symmeig(A,Q,out)
173 MAT *A, *Q;
174 VEC *out;
175 {
176 int i;
177 static MAT *tmp = MNULL;
178 static VEC *b = VNULL, *diag = VNULL, *beta = VNULL;
179
180 if ( ! A )
181 error(E_NULL,"symmeig");
182 if ( A->m != A->n )
183 error(E_SQUARE,"symmeig");
184 if ( ! out || out->dim != A->m )
185 out = v_resize(out,A->m);
186
187 tmp = m_copy(A,tmp);
188 b = v_resize(b,A->m - 1);
189 diag = v_resize(diag,(u_int)A->m);
190 beta = v_resize(beta,(u_int)A->m);
191 MEM_STAT_REG(tmp,TYPE_MAT);
192 MEM_STAT_REG(b,TYPE_VEC);
193 MEM_STAT_REG(diag,TYPE_VEC);
194 MEM_STAT_REG(beta,TYPE_VEC);
195
196 Hfactor(tmp,diag,beta);
197 if ( Q )
198 makeHQ(tmp,diag,beta,Q);
199
200 for ( i = 0; i < A->m - 1; i++ )
201 {
202 out->ve[i] = tmp->me[i][i];
203 b->ve[i] = tmp->me[i][i+1];
204 }
205 out->ve[i] = tmp->me[i][i];
206 trieig(out,b,Q);
207
208 return out;
209 }
210
+0
-131
interface/src/scilab/src/c/update.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Matrix factorisation routines to work with the other matrix files.
28 */
29
30 /* update.c 1.3 11/25/87 */
31 static char rcsid[] = "$Id: update.c 3690 2010-09-02 09:55:19Z lsaavedr $";
32
33 #include <stdio.h>
34 #include "matrix.h"
35 #include "matrix2.h"
36 #include <math.h>
37
38
39
40
41 /* Most matrix factorisation routines are in-situ unless otherwise specified */
42
43 /* LDLupdate -- updates a CHolesky factorisation, replacing LDL' by
44 MD~M' = LDL' + alpha.w.w' Note: w is overwritten
45 Ref: Gill et al Math Comp 28, p516 Algorithm C1 */
46 MAT *LDLupdate(CHmat,w,alpha)
47 MAT *CHmat;
48 VEC *w;
49 double alpha;
50 {
51 u_int i,j;
52 Real diag,new_diag,beta,p;
53
54 if ( CHmat==(MAT *)NULL || w==(VEC *)NULL )
55 error(E_NULL,"LDLupdate");
56 if ( CHmat->m != CHmat->n || w->dim != CHmat->m )
57 error(E_SIZES,"LDLupdate");
58
59 for ( j=0; j < w->dim; j++ )
60 {
61 p = w->ve[j];
62 diag = CHmat->me[j][j];
63 new_diag = CHmat->me[j][j] = diag + alpha*p*p;
64 if ( new_diag <= 0.0 )
65 error(E_POSDEF,"LDLupdate");
66 beta = p*alpha/new_diag;
67 alpha *= diag/new_diag;
68
69 for ( i=j+1; i < w->dim; i++ )
70 {
71 w->ve[i] -= p*CHmat->me[i][j];
72 CHmat->me[i][j] += beta*w->ve[i];
73 CHmat->me[j][i] = CHmat->me[i][j];
74 }
75 }
76
77 return (CHmat);
78 }
79
80
81 /* QRupdate -- updates QR factorisation in expanded form (seperate matrices)
82 Finds Q+, R+ s.t. Q+.R+ = Q.(R+u.v') and Q+ orthogonal, R+ upper triang
83 Ref: Golub & van Loan Matrix Computations pp437-443
84 -- does not update Q if it is NULL */
85 MAT *QRupdate(Q,R,u,v)
86 MAT *Q,*R;
87 VEC *u,*v;
88 {
89 int i,j,k;
90 Real c,s,temp;
91
92 if ( ! R || ! u || ! v )
93 error(E_NULL,"QRupdate");
94 if ( ( Q && ( Q->m != Q->n || R->m != Q->n ) ) ||
95 u->dim != R->m || v->dim != R->n )
96 error(E_SIZES,"QRupdate");
97
98 /* find largest k s.t. u[k] != 0 */
99 for ( k=R->m-1; k>=0; k-- )
100 if ( u->ve[k] != 0.0 )
101 break;
102
103 /* transform R+u.v' to Hessenberg form */
104 for ( i=k-1; i>=0; i-- )
105 {
106 /* get Givens rotation */
107 givens(u->ve[i],u->ve[i+1],&c,&s);
108 rot_rows(R,i,i+1,c,s,R);
109 if ( Q )
110 rot_cols(Q,i,i+1,c,s,Q);
111 rot_vec(u,i,i+1,c,s,u);
112 }
113
114 /* add into R */
115 temp = u->ve[0];
116 for ( j=0; j<R->n; j++ )
117 R->me[0][j] += temp*v->ve[j];
118
119 /* transform Hessenberg to upper triangular */
120 for ( i=0; i<k; i++ )
121 {
122 givens(R->me[i][i],R->me[i+1][i],&c,&s);
123 rot_rows(R,i,i+1,c,s,R);
124 if ( Q )
125 rot_cols(Q,i,i+1,c,s,Q);
126 }
127
128 return R;
129 }
130
+0
-605
interface/src/scilab/src/c/vecop.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* vecop.c 1.3 8/18/87 */
27
28 #include <stdio.h>
29 #include "matrix.h"
30
31 static char rcsid[] = "$Id: vecop.c 3690 2010-09-02 09:55:19Z lsaavedr $";
32
33
34 /* _in_prod -- inner product of two vectors from i0 downwards */
35 double _in_prod(a,b,i0)
36 VEC *a,*b;
37 u_int i0;
38 {
39 u_int limit;
40 /* Real *a_v, *b_v; */
41 /* register Real sum; */
42
43 if ( a==(VEC *)NULL || b==(VEC *)NULL )
44 error(E_NULL,"_in_prod");
45 limit = min(a->dim,b->dim);
46 if ( i0 > limit )
47 error(E_BOUNDS,"_in_prod");
48
49 return __ip__(&(a->ve[i0]),&(b->ve[i0]),(int)(limit-i0));
50 /*****************************************
51 a_v = &(a->ve[i0]); b_v = &(b->ve[i0]);
52 for ( i=i0; i<limit; i++ )
53 sum += a_v[i]*b_v[i];
54 sum += (*a_v++)*(*b_v++);
55
56 return (double)sum;
57 ******************************************/
58 }
59
60 /* sv_mlt -- scalar-vector multiply -- may be in-situ */
61 VEC *sv_mlt(scalar,vector,out)
62 double scalar;
63 VEC *vector,*out;
64 {
65 /* u_int dim, i; */
66 /* Real *out_ve, *vec_ve; */
67
68 if ( vector==(VEC *)NULL )
69 error(E_NULL,"sv_mlt");
70 if ( out==(VEC *)NULL || out->dim != vector->dim )
71 out = v_resize(out,vector->dim);
72 if ( scalar == 0.0 )
73 return v_zero(out);
74 if ( scalar == 1.0 )
75 return v_copy(vector,out);
76
77 __smlt__(vector->ve,(double)scalar,out->ve,(int)(vector->dim));
78 /**************************************************
79 dim = vector->dim;
80 out_ve = out->ve; vec_ve = vector->ve;
81 for ( i=0; i<dim; i++ )
82 out->ve[i] = scalar*vector->ve[i];
83 (*out_ve++) = scalar*(*vec_ve++);
84 **************************************************/
85 return (out);
86 }
87
88 /* v_add -- vector addition -- may be in-situ */
89 VEC *v_add(vec1,vec2,out)
90 VEC *vec1,*vec2,*out;
91 {
92 u_int dim;
93 /* Real *out_ve, *vec1_ve, *vec2_ve; */
94
95 if ( vec1==(VEC *)NULL || vec2==(VEC *)NULL )
96 error(E_NULL,"v_add");
97 if ( vec1->dim != vec2->dim )
98 error(E_SIZES,"v_add");
99 if ( out==(VEC *)NULL || out->dim != vec1->dim )
100 out = v_resize(out,vec1->dim);
101 dim = vec1->dim;
102 __add__(vec1->ve,vec2->ve,out->ve,(int)dim);
103 /************************************************************
104 out_ve = out->ve; vec1_ve = vec1->ve; vec2_ve = vec2->ve;
105 for ( i=0; i<dim; i++ )
106 out->ve[i] = vec1->ve[i]+vec2->ve[i];
107 (*out_ve++) = (*vec1_ve++) + (*vec2_ve++);
108 ************************************************************/
109
110 return (out);
111 }
112
113 /* v_mltadd -- scalar/vector multiplication and addition
114 -- out = v1 + scale.v2 */
115 VEC *v_mltadd(v1,v2,scale,out)
116 VEC *v1,*v2,*out;
117 double scale;
118 {
119 /* register u_int dim, i; */
120 /* Real *out_ve, *v1_ve, *v2_ve; */
121
122 if ( v1==(VEC *)NULL || v2==(VEC *)NULL )
123 error(E_NULL,"v_mltadd");
124 if ( v1->dim != v2->dim )
125 error(E_SIZES,"v_mltadd");
126 if ( scale == 0.0 )
127 return v_copy(v1,out);
128 if ( scale == 1.0 )
129 return v_add(v1,v2,out);
130
131 if ( v2 != out )
132 {
133 tracecatch(out = v_copy(v1,out),"v_mltadd");
134
135 /* dim = v1->dim; */
136 __mltadd__(out->ve,v2->ve,scale,(int)(v1->dim));
137 }
138 else
139 {
140 tracecatch(out = sv_mlt(scale,v2,out),"v_mltadd");
141 out = v_add(v1,out,out);
142 }
143 /************************************************************
144 out_ve = out->ve; v1_ve = v1->ve; v2_ve = v2->ve;
145 for ( i=0; i < dim ; i++ )
146 out->ve[i] = v1->ve[i] + scale*v2->ve[i];
147 (*out_ve++) = (*v1_ve++) + scale*(*v2_ve++);
148 ************************************************************/
149
150 return (out);
151 }
152
153 /* v_sub -- vector subtraction -- may be in-situ */
154 VEC *v_sub(vec1,vec2,out)
155 VEC *vec1,*vec2,*out;
156 {
157 /* u_int i, dim; */
158 /* Real *out_ve, *vec1_ve, *vec2_ve; */
159
160 if ( vec1==(VEC *)NULL || vec2==(VEC *)NULL )
161 error(E_NULL,"v_sub");
162 if ( vec1->dim != vec2->dim )
163 error(E_SIZES,"v_sub");
164 if ( out==(VEC *)NULL || out->dim != vec1->dim )
165 out = v_resize(out,vec1->dim);
166
167 __sub__(vec1->ve,vec2->ve,out->ve,(int)(vec1->dim));
168 /************************************************************
169 dim = vec1->dim;
170 out_ve = out->ve; vec1_ve = vec1->ve; vec2_ve = vec2->ve;
171 for ( i=0; i<dim; i++ )
172 out->ve[i] = vec1->ve[i]-vec2->ve[i];
173 (*out_ve++) = (*vec1_ve++) - (*vec2_ve++);
174 ************************************************************/
175
176 return (out);
177 }
178
179 /* v_map -- maps function f over components of x: out[i] = f(x[i])
180 -- _v_map sets out[i] = f(params,x[i]) */
181 VEC *v_map(f,x,out)
182 #ifdef PROTOTYPES_IN_STRUCT
183 double (*f)(double);
184 #else
185 double (*f)();
186 #endif
187 VEC *x, *out;
188 {
189 Real *x_ve, *out_ve;
190 int i, dim;
191
192 if ( ! x || ! f )
193 error(E_NULL,"v_map");
194 if ( ! out || out->dim != x->dim )
195 out = v_resize(out,x->dim);
196
197 dim = x->dim; x_ve = x->ve; out_ve = out->ve;
198 for ( i = 0; i < dim; i++ )
199 *out_ve++ = (*f)(*x_ve++);
200
201 return out;
202 }
203
204 VEC *_v_map(f,params,x,out)
205 #ifdef PROTOTYPES_IN_STRUCT
206 double (*f)(void *,double);
207 #else
208 double (*f)();
209 #endif
210 VEC *x, *out;
211 void *params;
212 {
213 Real *x_ve, *out_ve;
214 int i, dim;
215
216 if ( ! x || ! f )
217 error(E_NULL,"_v_map");
218 if ( ! out || out->dim != x->dim )
219 out = v_resize(out,x->dim);
220
221 dim = x->dim; x_ve = x->ve; out_ve = out->ve;
222 for ( i = 0; i < dim; i++ )
223 *out_ve++ = (*f)(params,*x_ve++);
224
225 return out;
226 }
227
228 /* v_lincomb -- returns sum_i a[i].v[i], a[i] real, v[i] vectors */
229 VEC *v_lincomb(n,v,a,out)
230 int n; /* number of a's and v's */
231 Real a[];
232 VEC *v[], *out;
233 {
234 int i;
235
236 if ( ! a || ! v )
237 error(E_NULL,"v_lincomb");
238 if ( n <= 0 )
239 return VNULL;
240
241 for ( i = 1; i < n; i++ )
242 if ( out == v[i] )
243 error(E_INSITU,"v_lincomb");
244
245 out = sv_mlt(a[0],v[0],out);
246 for ( i = 1; i < n; i++ )
247 {
248 if ( ! v[i] )
249 error(E_NULL,"v_lincomb");
250 if ( v[i]->dim != out->dim )
251 error(E_SIZES,"v_lincomb");
252 out = v_mltadd(out,v[i],a[i],out);
253 }
254
255 return out;
256 }
257
258
259
260 #ifdef ANSI_C
261
262 /* v_linlist -- linear combinations taken from a list of arguments;
263 calling:
264 v_linlist(out,v1,a1,v2,a2,...,vn,an,NULL);
265 where vi are vectors (VEC *) and ai are numbers (double)
266 */
267 VEC *v_linlist(VEC *out,VEC *v1,double a1,...)
268 {
269 va_list ap;
270 VEC *par;
271 double a_par;
272
273 if ( ! v1 )
274 return VNULL;
275
276 va_start(ap, a1);
277 out = sv_mlt(a1,v1,out);
278
279 while (par = va_arg(ap,VEC *)) { /* NULL ends the list*/
280 a_par = va_arg(ap,double);
281 if (a_par == 0.0) continue;
282 if ( out == par )
283 error(E_INSITU,"v_linlist");
284 if ( out->dim != par->dim )
285 error(E_SIZES,"v_linlist");
286
287 if (a_par == 1.0)
288 out = v_add(out,par,out);
289 else if (a_par == -1.0)
290 out = v_sub(out,par,out);
291 else
292 out = v_mltadd(out,par,a_par,out);
293 }
294
295 va_end(ap);
296 return out;
297 }
298
299 #elif VARARGS
300
301
302 /* v_linlist -- linear combinations taken from a list of arguments;
303 calling:
304 v_linlist(out,v1,a1,v2,a2,...,vn,an,NULL);
305 where vi are vectors (VEC *) and ai are numbers (double)
306 */
307 VEC *v_linlist(va_alist) va_dcl
308 {
309 va_list ap;
310 VEC *par, *out;
311 double a_par;
312
313 va_start(ap);
314 out = va_arg(ap,VEC *);
315 par = va_arg(ap,VEC *);
316 if ( ! par ) {
317 va_end(ap);
318 return VNULL;
319 }
320
321 a_par = va_arg(ap,double);
322 out = sv_mlt(a_par,par,out);
323
324 while (par = va_arg(ap,VEC *)) { /* NULL ends the list*/
325 a_par = va_arg(ap,double);
326 if (a_par == 0.0) continue;
327 if ( out == par )
328 error(E_INSITU,"v_linlist");
329 if ( out->dim != par->dim )
330 error(E_SIZES,"v_linlist");
331
332 if (a_par == 1.0)
333 out = v_add(out,par,out);
334 else if (a_par == -1.0)
335 out = v_sub(out,par,out);
336 else
337 out = v_mltadd(out,par,a_par,out);
338 }
339
340 va_end(ap);
341 return out;
342 }
343
344 #endif
345
346
347
348
349
350 /* v_star -- computes componentwise (Hadamard) product of x1 and x2
351 -- result out is returned */
352 VEC *v_star(x1, x2, out)
353 VEC *x1, *x2, *out;
354 {
355 int i;
356
357 if ( ! x1 || ! x2 )
358 error(E_NULL,"v_star");
359 if ( x1->dim != x2->dim )
360 error(E_SIZES,"v_star");
361 out = v_resize(out,x1->dim);
362
363 for ( i = 0; i < x1->dim; i++ )
364 out->ve[i] = x1->ve[i] * x2->ve[i];
365
366 return out;
367 }
368
369 /* v_slash -- computes componentwise ratio of x2 and x1
370 -- out[i] = x2[i] / x1[i]
371 -- if x1[i] == 0 for some i, then raise E_SING error
372 -- result out is returned */
373 VEC *v_slash(x1, x2, out)
374 VEC *x1, *x2, *out;
375 {
376 int i;
377 Real tmp;
378
379 if ( ! x1 || ! x2 )
380 error(E_NULL,"v_slash");
381 if ( x1->dim != x2->dim )
382 error(E_SIZES,"v_slash");
383 out = v_resize(out,x1->dim);
384
385 for ( i = 0; i < x1->dim; i++ )
386 {
387 tmp = x1->ve[i];
388 if ( tmp == 0.0 )
389 error(E_SING,"v_slash");
390 out->ve[i] = x2->ve[i] / tmp;
391 }
392
393 return out;
394 }
395
396 /* v_min -- computes minimum component of x, which is returned
397 -- also sets min_idx to the index of this minimum */
398 double v_min(x, min_idx)
399 VEC *x;
400 int *min_idx;
401 {
402 int i, i_min;
403 Real min_val, tmp;
404
405 if ( ! x )
406 error(E_NULL,"v_min");
407 if ( x->dim <= 0 )
408 error(E_SIZES,"v_min");
409 i_min = 0;
410 min_val = x->ve[0];
411 for ( i = 1; i < x->dim; i++ )
412 {
413 tmp = x->ve[i];
414 if ( tmp < min_val )
415 {
416 min_val = tmp;
417 i_min = i;
418 }
419 }
420
421 if ( min_idx != NULL )
422 *min_idx = i_min;
423 return min_val;
424 }
425
426 /* v_max -- computes maximum component of x, which is returned
427 -- also sets max_idx to the index of this maximum */
428 double v_max(x, max_idx)
429 VEC *x;
430 int *max_idx;
431 {
432 int i, i_max;
433 Real max_val, tmp;
434
435 if ( ! x )
436 error(E_NULL,"v_max");
437 if ( x->dim <= 0 )
438 error(E_SIZES,"v_max");
439 i_max = 0;
440 max_val = x->ve[0];
441 for ( i = 1; i < x->dim; i++ )
442 {
443 tmp = x->ve[i];
444 if ( tmp > max_val )
445 {
446 max_val = tmp;
447 i_max = i;
448 }
449 }
450
451 if ( max_idx != NULL )
452 *max_idx = i_max;
453 return max_val;
454 }
455
456 #define MAX_STACK 60
457
458
459 /* v_sort -- sorts vector x, and generates permutation that gives the order
460 of the components; x = [1.3, 3.7, 0.5] -> [0.5, 1.3, 3.7] and
461 the permutation is order = [2, 0, 1].
462 -- if order is NULL on entry then it is ignored
463 -- the sorted vector x is returned */
464 VEC *v_sort(x, order)
465 VEC *x;
466 PERM *order;
467 {
468 Real *x_ve, tmp, v;
469 /* int *order_pe; */
470 int dim, i, j, l, r, tmp_i;
471 int stack[MAX_STACK], sp;
472
473 if ( ! x )
474 error(E_NULL,"v_sort");
475 if ( order != PNULL && order->size != x->dim )
476 order = px_resize(order, x->dim);
477
478 x_ve = x->ve;
479 dim = x->dim;
480 if ( order != PNULL )
481 px_ident(order);
482
483 if ( dim <= 1 )
484 return x;
485
486 /* using quicksort algorithm in Sedgewick,
487 "Algorithms in C", Ch. 9, pp. 118--122 (1990) */
488 sp = 0;
489 l = 0; r = dim-1; v = x_ve[0];
490 for ( ; ; )
491 {
492 while ( r > l )
493 {
494 /* "i = partition(x_ve,l,r);" */
495 v = x_ve[r];
496 i = l-1;
497 j = r;
498 for ( ; ; )
499 {
500 while ( x_ve[++i] < v )
501 ;
502 while ( x_ve[--j] > v )
503 ;
504 if ( i >= j ) break;
505
506 tmp = x_ve[i];
507 x_ve[i] = x_ve[j];
508 x_ve[j] = tmp;
509 if ( order != PNULL )
510 {
511 tmp_i = order->pe[i];
512 order->pe[i] = order->pe[j];
513 order->pe[j] = tmp_i;
514 }
515 }
516 tmp = x_ve[i];
517 x_ve[i] = x_ve[r];
518 x_ve[r] = tmp;
519 if ( order != PNULL )
520 {
521 tmp_i = order->pe[i];
522 order->pe[i] = order->pe[r];
523 order->pe[r] = tmp_i;
524 }
525
526 if ( i-l > r-i )
527 { stack[sp++] = l; stack[sp++] = i-1; l = i+1; }
528 else
529 { stack[sp++] = i+1; stack[sp++] = r; r = i-1; }
530 }
531
532 /* recursion elimination */
533 if ( sp == 0 )
534 break;
535 r = stack[--sp];
536 l = stack[--sp];
537 }
538
539 return x;
540 }
541
542 /* v_sum -- returns sum of entries of a vector */
543 double v_sum(x)
544 VEC *x;
545 {
546 int i;
547 Real sum;
548
549 if ( ! x )
550 error(E_NULL,"v_sum");
551
552 sum = 0.0;
553 for ( i = 0; i < x->dim; i++ )
554 sum += x->ve[i];
555
556 return sum;
557 }
558
559 /* v_conv -- computes convolution product of two vectors */
560 VEC *v_conv(x1, x2, out)
561 VEC *x1, *x2, *out;
562 {
563 int i;
564
565 if ( ! x1 || ! x2 )
566 error(E_NULL,"v_conv");
567 if ( x1 == out || x2 == out )
568 error(E_INSITU,"v_conv");
569 if ( x1->dim == 0 || x2->dim == 0 )
570 return out = v_resize(out,0);
571
572 out = v_resize(out,x1->dim + x2->dim - 1);
573 v_zero(out);
574 for ( i = 0; i < x1->dim; i++ )
575 __mltadd__(&(out->ve[i]),x2->ve,x1->ve[i],x2->dim);
576
577 return out;
578 }
579
580 /* v_pconv -- computes a periodic convolution product
581 -- the period is the dimension of x2 */
582 VEC *v_pconv(x1, x2, out)
583 VEC *x1, *x2, *out;
584 {
585 int i;
586
587 if ( ! x1 || ! x2 )
588 error(E_NULL,"v_pconv");
589 if ( x1 == out || x2 == out )
590 error(E_INSITU,"v_pconv");
591 out = v_resize(out,x2->dim);
592 if ( x2->dim == 0 )
593 return out;
594
595 v_zero(out);
596 for ( i = 0; i < x1->dim; i++ )
597 {
598 __mltadd__(&(out->ve[i]),x2->ve,x1->ve[i],x2->dim - i);
599 if ( i > 0 )
600 __mltadd__(out->ve,&(x2->ve[x2->dim - i]),x1->ve[i],i);
601 }
602
603 return out;
604 }
+0
-71
interface/src/scilab/src/c/version.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* Version routine */
27 /* This routine must be modified whenever modifications are made to
28 Meschach by persons other than the original authors
29 (David E. Stewart & Zbigniew Leyk);
30 when new releases of Meschach are made the
31 version number will also be updated
32 */
33
34 #include <stdio.h>
35
36 void m_version()
37 {
38 static char rcsid[] = "$Id: version.c 3690 2010-09-02 09:55:19Z lsaavedr $";
39
40 printf("Meshach matrix library version 1.2b\n");
41 printf("RCS id: %s\n",rcsid);
42 printf("Changes since 1.2a:\n");
43 printf("\t Fixed bug in schur() for 2x2 blocks with real e-vals\n");
44 printf("\t Fixed bug in schur() reading beyond end of array\n");
45 printf("\t Fixed some installation bugs\n");
46 printf("\t Fixed bugs & improved efficiency in spILUfactor()\n");
47 printf("\t px_inv() doesn't crash inverting non-permutations\n");
48 /**** List of modifications ****/
49 /* Example below is for illustration only */
50 /* printf("Modified by %s, routine(s) %s, file %s on date %s\n",
51 "Joe Bloggs",
52 "m_version",
53 "version.c",
54 "Fri Apr 5 16:00:38 EST 1994"); */
55 /* printf("Purpose: %s\n",
56 "To update the version number"); */
57 }
58
59 /* $Log: version.c,v $
60 * Revision 1.9 1994/03/24 00:04:05 des
61 * Added notes on changes to spILUfactor() and px_inv().
62 *
63 * Revision 1.8 1994/02/21 04:32:25 des
64 * Set version to 1.2b with bug fixes in schur() and installation.
65 *
66 * Revision 1.7 1994/01/13 05:43:57 des
67 * Version 1.2 update
68 *
69
70 * */
+0
-192
interface/src/scilab/src/c/zcopy.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 static char rcsid[] = "$Id: zcopy.c 3690 2010-09-02 09:55:19Z lsaavedr $";
27 #include <stdio.h>
28 #include "zmatrix.h"
29
30
31
32 /* _zm_copy -- copies matrix into new area */
33 ZMAT *_zm_copy(in,out,i0,j0)
34 ZMAT *in,*out;
35 u_int i0,j0;
36 {
37 u_int i /* ,j */;
38
39 if ( in==ZMNULL )
40 error(E_NULL,"_zm_copy");
41 if ( in==out )
42 return (out);
43 if ( out==ZMNULL || out->m < in->m || out->n < in->n )
44 out = zm_resize(out,in->m,in->n);
45
46 for ( i=i0; i < in->m; i++ )
47 MEM_COPY(&(in->me[i][j0]),&(out->me[i][j0]),
48 (in->n - j0)*sizeof(complex));
49 /* for ( j=j0; j < in->n; j++ )
50 out->me[i][j] = in->me[i][j]; */
51
52 return (out);
53 }
54
55 /* _zv_copy -- copies vector into new area */
56 ZVEC *_zv_copy(in,out,i0)
57 ZVEC *in,*out;
58 u_int i0;
59 {
60 /* u_int i,j; */
61
62 if ( in==ZVNULL )
63 error(E_NULL,"_zv_copy");
64 if ( in==out )
65 return (out);
66 if ( out==ZVNULL || out->dim < in->dim )
67 out = zv_resize(out,in->dim);
68
69 MEM_COPY(&(in->ve[i0]),&(out->ve[i0]),(in->dim - i0)*sizeof(complex));
70 /* for ( i=i0; i < in->dim; i++ )
71 out->ve[i] = in->ve[i]; */
72
73 return (out);
74 }
75
76
77 /*
78 The z._move() routines are for moving blocks of memory around
79 within Meschach data structures and for re-arranging matrices,
80 vectors etc.
81 */
82
83 /* zm_move -- copies selected pieces of a matrix
84 -- moves the m0 x n0 submatrix with top-left cor-ordinates (i0,j0)
85 to the corresponding submatrix of out with top-left co-ordinates
86 (i1,j1)
87 -- out is resized (& created) if necessary */
88 ZMAT *zm_move(in,i0,j0,m0,n0,out,i1,j1)
89 ZMAT *in, *out;
90 int i0, j0, m0, n0, i1, j1;
91 {
92 int i;
93
94 if ( ! in )
95 error(E_NULL,"zm_move");
96 if ( i0 < 0 || j0 < 0 || i1 < 0 || j1 < 0 || m0 < 0 || n0 < 0 ||
97 i0+m0 > in->m || j0+n0 > in->n )
98 error(E_BOUNDS,"zm_move");
99
100 if ( ! out )
101 out = zm_resize(out,i1+m0,j1+n0);
102 else if ( i1+m0 > out->m || j1+n0 > out->n )
103 out = zm_resize(out,max(out->m,i1+m0),max(out->n,j1+n0));
104
105 for ( i = 0; i < m0; i++ )
106 MEM_COPY(&(in->me[i0+i][j0]),&(out->me[i1+i][j1]),
107 n0*sizeof(complex));
108
109 return out;
110 }
111
112 /* zv_move -- copies selected pieces of a vector
113 -- moves the length dim0 subvector with initial index i0
114 to the corresponding subvector of out with initial index i1
115 -- out is resized if necessary */
116 ZVEC *zv_move(in,i0,dim0,out,i1)
117 ZVEC *in, *out;
118 int i0, dim0, i1;
119 {
120 if ( ! in )
121 error(E_NULL,"zv_move");
122 if ( i0 < 0 || dim0 < 0 || i1 < 0 ||
123 i0+dim0 > in->dim )
124 error(E_BOUNDS,"zv_move");
125
126 if ( (! out) || i1+dim0 > out->dim )
127 out = zv_resize(out,i1+dim0);
128
129 MEM_COPY(&(in->ve[i0]),&(out->ve[i1]),dim0*sizeof(complex));
130
131 return out;
132 }
133
134
135 /* zmv_move -- copies selected piece of matrix to a vector
136 -- moves the m0 x n0 submatrix with top-left co-ordinate (i0,j0) to
137 the subvector with initial index i1 (and length m0*n0)
138 -- rows are copied contiguously
139 -- out is resized if necessary */
140 ZVEC *zmv_move(in,i0,j0,m0,n0,out,i1)
141 ZMAT *in;
142 ZVEC *out;
143 int i0, j0, m0, n0, i1;
144 {
145 int dim1, i;
146
147 if ( ! in )
148 error(E_NULL,"zmv_move");
149 if ( i0 < 0 || j0 < 0 || m0 < 0 || n0 < 0 || i1 < 0 ||
150 i0+m0 > in->m || j0+n0 > in->n )
151 error(E_BOUNDS,"zmv_move");
152
153 dim1 = m0*n0;
154 if ( (! out) || i1+dim1 > out->dim )
155 out = zv_resize(out,i1+dim1);
156
157 for ( i = 0; i < m0; i++ )
158 MEM_COPY(&(in->me[i0+i][j0]),&(out->ve[i1+i*n0]),n0*sizeof(complex));
159
160 return out;
161 }
162
163 /* zvm_move -- copies selected piece of vector to a matrix
164 -- moves the subvector with initial index i0 and length m1*n1 to
165 the m1 x n1 submatrix with top-left co-ordinate (i1,j1)
166 -- copying is done by rows
167 -- out is resized if necessary */
168 ZMAT *zvm_move(in,i0,out,i1,j1,m1,n1)
169 ZVEC *in;
170 ZMAT *out;
171 int i0, i1, j1, m1, n1;
172 {
173 int dim0, i;
174
175 if ( ! in )
176 error(E_NULL,"zvm_move");
177 if ( i0 < 0 || i1 < 0 || j1 < 0 || m1 < 0 || n1 < 0 ||
178 i0+m1*n1 > in->dim )
179 error(E_BOUNDS,"zvm_move");
180
181 if ( ! out )
182 out = zm_resize(out,i1+m1,j1+n1);
183 else
184 out = zm_resize(out,max(i1+m1,out->m),max(j1+n1,out->n));
185
186 dim0 = m1*n1;
187 for ( i = 0; i < m1; i++ )
188 MEM_COPY(&(in->ve[i0+i*n1]),&(out->me[i1+i][j1]),n1*sizeof(complex));
189
190 return out;
191 }
+0
-227
interface/src/scilab/src/c/zfunc.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25 /*
26 Elementary functions for complex numbers
27 -- if not already defined
28 */
29
30 #include <math.h>
31 #include "zmatrix.h"
32
33 static char rcsid[] = "$Id: zfunc.c 3916 2011-11-17 17:47:20Z ycollet $";
34
35 #ifndef COMPLEX_H
36
37 #ifndef zmake
38 /* zmake -- create complex number real + i*imag */
39 complex zmake(real,imag)
40 double real, imag;
41 {
42 complex w; /* == real + i*imag */
43
44 w.re = real; w.im = imag;
45 return w;
46 }
47 #endif
48
49 #ifndef zneg
50 /* zneg -- returns negative of z */
51 complex zneg(complex z)
52 {
53 z.re = - z.re;
54 z.im = - z.im;
55
56 return z;
57 }
58 #endif
59
60 #ifndef zabs
61 /* zabs -- returns |z| */
62 double zabs(complex z)
63 {
64 Real x, y, tmp;
65 int x_expt, y_expt;
66
67 /* Note: we must ensure that overflow does not occur! */
68 x = ( z.re >= 0.0 ) ? z.re : -z.re;
69 y = ( z.im >= 0.0 ) ? z.im : -z.im;
70 if ( x < y )
71 {
72 tmp = x;
73 x = y;
74 y = tmp;
75 }
76 if ( x == 0.0 ) /* then y == 0.0 as well */
77 return 0.0;
78 x = frexp(x,&x_expt);
79 y = frexp(y,&y_expt);
80 y = ldexp(y,y_expt-x_expt);
81 tmp = sqrt(x*x+y*y);
82
83 return ldexp(tmp,x_expt);
84 }
85 #endif
86
87 #ifndef zadd
88 /* zadd -- returns z1+z2 */
89 complex zadd(complex z1, complex z2)
90 {
91 complex z;
92
93 z.re = z1.re + z2.re;
94 z.im = z1.im + z2.im;
95
96 return z;
97 }
98 #endif
99
100 #ifndef zsub
101 /* zsub -- returns z1-z2 */
102 complex zsub(complex z1, complex z2)
103 {
104 complex z;
105
106 z.re = z1.re - z2.re;
107 z.im = z1.im - z2.im;
108
109 return z;
110 }
111 #endif
112
113 #ifndef zmlt
114 /* zmlt -- returns z1*z2 */
115 complex zmlt(complex z1, complex z2)
116 {
117 complex z;
118
119 z.re = z1.re * z2.re - z1.im * z2.im;
120 z.im = z1.re * z2.im + z1.im * z2.re;
121
122 return z;
123 }
124 #endif
125
126 #ifndef zinv
127 /* zmlt -- returns 1/z */
128 complex zinv(complex z)
129 {
130 Real x, y, tmp;
131 int x_expt, y_expt;
132
133 if ( z.re == 0.0 && z.im == 0.0 )
134 error(E_SING,"zinv");
135 /* Note: we must ensure that overflow does not occur! */
136 x = ( z.re >= 0.0 ) ? z.re : -z.re;
137 y = ( z.im >= 0.0 ) ? z.im : -z.im;
138 if ( x < y )
139 {
140 tmp = x;
141 x = y;
142 y = tmp;
143 }
144 x = frexp(x,&x_expt);
145 y = frexp(y,&y_expt);
146 y = ldexp(y,y_expt-x_expt);
147
148 tmp = 1.0/(x*x + y*y);
149 z.re = z.re*tmp*ldexp(1.0,-2*x_expt);
150 z.im = -z.im*tmp*ldexp(1.0,-2*x_expt);
151
152 return z;
153 }
154 #endif
155
156 #ifndef zdiv
157 /* zdiv -- returns z1/z2 */
158 complex zdiv(complex z1, complex z2)
159 {
160 return zmlt(z1,zinv(z2));
161 }
162 #endif
163
164 #ifndef zsqrt
165 /* zsqrt -- returns sqrt(z); uses branch with Re sqrt(z) >= 0 */
166 complex zsqrt(complex z)
167 {
168 complex w; /* == sqrt(z) at end */
169 Real alpha;
170
171 alpha = sqrt(0.5*(fabs(z.re) + zabs(z)));
172 if ( z.re >= 0.0 )
173 {
174 w.re = alpha;
175 w.im = z.im / (2.0*alpha);
176 }
177 else
178 {
179 w.re = fabs(z.im)/(2.0*alpha);
180 w.im = ( z.im >= 0 ) ? alpha : - alpha;
181 }
182
183 return w;
184 }
185 #endif
186
187 #ifndef zexp
188 /* zexp -- returns exp(z) */
189 complex zexp(complex z)
190 {
191 complex w; /* == exp(z) at end */
192 Real r;
193
194 r = exp(z.re);
195 w.re = r*cos(z.im);
196 w.im = r*sin(z.im);
197
198 return w;
199 }
200 #endif
201
202 #ifndef zlog
203 /* zlog -- returns log(z); uses principal branch with -pi <= Im log(z) <= pi */
204 complex zlog(complex z)
205 {
206 complex w; /* == log(z) at end */
207
208 w.re = log(zabs(z));
209 w.im = atan2(z.im,z.re);
210
211 return w;
212 }
213 #endif
214
215 #ifndef zconj
216 complex zconj(complex z)
217 {
218 complex w; /* == conj(z) */
219
220 w.re = z.re;
221 w.im = - z.im;
222 return w;
223 }
224 #endif
225
226 #endif
+0
-181
interface/src/scilab/src/c/zgivens.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Givens operations file. Contains routines for calculating and
28 applying givens rotations for/to vectors and also to matrices by
29 row and by column.
30
31 Complex version.
32 */
33
34 static char rcsid[] = "$Id: ";
35
36 #include <stdio.h>
37 #include <math.h>
38
39 #include "zmatrix.h"
40 #include "zmatrix2.h"
41
42 /*
43 (Complex) Givens rotation matrix:
44 [ c -s ]
45 [ s* c ]
46 Note that c is real and s is complex
47 */
48
49 /* zgivens -- returns c,s parameters for Givens rotation to
50 eliminate y in the **column** vector [ x y ] */
51 void zgivens(x,y,c,s)
52 complex x,y,*s;
53 Real *c;
54 {
55 Real inv_norm, norm;
56 complex tmp;
57
58 /* this is a safe way of computing sqrt(|x|^2+|y|^2) */
59 tmp.re = zabs(x); tmp.im = zabs(y);
60 norm = zabs(tmp);
61
62 if ( norm == 0.0 )
63 { *c = 1.0; s->re = s->im = 0.0; } /* identity */
64 else
65 {
66 inv_norm = 1.0 / tmp.re; /* inv_norm = 1/|x| */
67 x.re *= inv_norm;
68 x.im *= inv_norm; /* normalise x */
69 inv_norm = 1.0/norm; /* inv_norm = 1/||[x,y]||2 */
70 *c = tmp.re * inv_norm;
71 /* now compute - conj(normalised x).y/||[x,y]||2 */
72 s->re = - inv_norm*(x.re*y.re + x.im*y.im);
73 s->im = inv_norm*(x.re*y.im - x.im*y.re);
74 }
75 }
76
77 /* rot_zvec -- apply Givens rotation to x's i & k components */
78 ZVEC *rot_zvec(x,i,k,c,s,out)
79 ZVEC *x,*out;
80 int i,k;
81 double c;
82 complex s;
83 {
84
85 complex temp1, temp2;
86
87 if ( x==ZVNULL )
88 error(E_NULL,"rot_zvec");
89 if ( i < 0 || i >= x->dim || k < 0 || k >= x->dim )
90 error(E_RANGE,"rot_zvec");
91 if ( x != out )
92 out = zv_copy(x,out);
93
94 /* temp1 = c*out->ve[i] - s*out->ve[k]; */
95 temp1.re = c*out->ve[i].re
96 - s.re*out->ve[k].re + s.im*out->ve[k].im;
97 temp1.im = c*out->ve[i].im
98 - s.re*out->ve[k].im - s.im*out->ve[k].re;
99
100 /* temp2 = c*out->ve[k] + zconj(s)*out->ve[i]; */
101 temp2.re = c*out->ve[k].re
102 + s.re*out->ve[i].re + s.im*out->ve[i].im;
103 temp2.im = c*out->ve[k].im
104 + s.re*out->ve[i].im - s.im*out->ve[i].re;
105
106 out->ve[i] = temp1;
107 out->ve[k] = temp2;
108
109 return (out);
110 }
111
112 /* zrot_rows -- premultiply mat by givens rotation described by c,s */
113 ZMAT *zrot_rows(mat,i,k,c,s,out)
114 ZMAT *mat,*out;
115 int i,k;
116 double c;
117 complex s;
118 {
119 u_int j;
120 complex temp1, temp2;
121
122 if ( mat==ZMNULL )
123 error(E_NULL,"zrot_rows");
124 if ( i < 0 || i >= mat->m || k < 0 || k >= mat->m )
125 error(E_RANGE,"zrot_rows");
126 out = zm_copy(mat,out);
127
128 /* temp1 = c*out->me[i][j] - s*out->me[k][j]; */
129 for ( j=0; j<mat->n; j++ )
130 {
131 /* temp1 = c*out->me[i][j] - s*out->me[k][j]; */
132 temp1.re = c*out->me[i][j].re
133 - s.re*out->me[k][j].re + s.im*out->me[k][j].im;
134 temp1.im = c*out->me[i][j].im
135 - s.re*out->me[k][j].im - s.im*out->me[k][j].re;
136
137 /* temp2 = c*out->me[k][j] + conj(s)*out->me[i][j]; */
138 temp2.re = c*out->me[k][j].re
139 + s.re*out->me[i][j].re + s.im*out->me[i][j].im;
140 temp2.im = c*out->me[k][j].im
141 + s.re*out->me[i][j].im - s.im*out->me[i][j].re;
142
143 out->me[i][j] = temp1;
144 out->me[k][j] = temp2;
145 }
146
147 return (out);
148 }
149
150 /* zrot_cols -- postmultiply mat by adjoint Givens rotation described by c,s */
151 ZMAT *zrot_cols(mat,i,k,c,s,out)
152 ZMAT *mat,*out;
153 int i,k;
154 double c;
155 complex s;
156 {
157 u_int j;
158 complex x, y;
159
160 if ( mat==ZMNULL )
161 error(E_NULL,"zrot_cols");
162 if ( i < 0 || i >= mat->n || k < 0 || k >= mat->n )
163 error(E_RANGE,"zrot_cols");
164 out = zm_copy(mat,out);
165
166 for ( j=0; j<mat->m; j++ )
167 {
168 x = out->me[j][i]; y = out->me[j][k];
169 /* out->me[j][i] = c*x - conj(s)*y; */
170 out->me[j][i].re = c*x.re - s.re*y.re - s.im*y.im;
171 out->me[j][i].im = c*x.im - s.re*y.im + s.im*y.re;
172
173 /* out->me[j][k] = c*y + s*x; */
174 out->me[j][k].re = c*y.re + s.re*x.re - s.im*x.im;
175 out->me[j][k].im = c*y.im + s.re*x.im + s.im*x.re;
176 }
177
178 return (out);
179 }
180
+0
-152
interface/src/scilab/src/c/zhessen.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 File containing routines for determining Hessenberg
28 factorisations.
29
30 Complex version
31 */
32
33 static char rcsid[] = "$Id: zhessen.c 3690 2010-09-02 09:55:19Z lsaavedr $";
34
35 #include <stdio.h>
36 #include "zmatrix.h"
37 #include "zmatrix2.h"
38
39
40 /* zHfactor -- compute Hessenberg factorisation in compact form.
41 -- factorisation performed in situ
42 -- for details of the compact form see zQRfactor.c and zmatrix2.doc */
43 ZMAT *zHfactor(A, diag)
44 ZMAT *A;
45 ZVEC *diag;
46 {
47 static ZVEC *tmp1 = ZVNULL;
48 Real beta;
49 int k, limit;
50
51 if ( ! A || ! diag )
52 error(E_NULL,"zHfactor");
53 if ( diag->dim < A->m - 1 )
54 error(E_SIZES,"zHfactor");
55 if ( A->m != A->n )
56 error(E_SQUARE,"zHfactor");
57 limit = A->m - 1;
58
59 tmp1 = zv_resize(tmp1,A->m);
60 MEM_STAT_REG(tmp1,TYPE_ZVEC);
61
62 for ( k = 0; k < limit; k++ )
63 {
64 zget_col(A,k,tmp1);
65 zhhvec(tmp1,k+1,&beta,tmp1,&A->me[k+1][k]);
66 diag->ve[k] = tmp1->ve[k+1];
67 /* printf("zHfactor: k = %d, beta = %g, tmp1 =\n",k,beta);
68 zv_output(tmp1); */
69
70 zhhtrcols(A,k+1,k+1,tmp1,beta);
71 zhhtrrows(A,0 ,k+1,tmp1,beta);
72 /* printf("# at stage k = %d, A =\n",k); zm_output(A); */
73 }
74
75 return (A);
76 }
77
78 /* zHQunpack -- unpack the compact representation of H and Q of a
79 Hessenberg factorisation
80 -- if either H or Q is NULL, then it is not unpacked
81 -- it can be in situ with HQ == H
82 -- returns HQ
83 */
84 ZMAT *zHQunpack(HQ,diag,Q,H)
85 ZMAT *HQ, *Q, *H;
86 ZVEC *diag;
87 {
88 int i, j, limit;
89 Real beta, r_ii, tmp_val;
90 static ZVEC *tmp1 = ZVNULL, *tmp2 = ZVNULL;
91
92 if ( HQ==ZMNULL || diag==ZVNULL )
93 error(E_NULL,"zHQunpack");
94 if ( HQ == Q || H == Q )
95 error(E_INSITU,"zHQunpack");
96 limit = HQ->m - 1;
97 if ( diag->dim < limit )
98 error(E_SIZES,"zHQunpack");
99 if ( HQ->m != HQ->n )
100 error(E_SQUARE,"zHQunpack");
101
102
103 if ( Q != ZMNULL )
104 {
105 Q = zm_resize(Q,HQ->m,HQ->m);
106 tmp1 = zv_resize(tmp1,H->m);
107 tmp2 = zv_resize(tmp2,H->m);
108 MEM_STAT_REG(tmp1,TYPE_ZVEC);
109 MEM_STAT_REG(tmp2,TYPE_ZVEC);
110
111 for ( i = 0; i < H->m; i++ )
112 {
113 /* tmp1 = i'th basis vector */
114 for ( j = 0; j < H->m; j++ )
115 tmp1->ve[j].re = tmp1->ve[j].im = 0.0;
116 tmp1->ve[i].re = 1.0;
117
118 /* apply H/h transforms in reverse order */
119 for ( j = limit-1; j >= 0; j-- )
120 {
121 zget_col(HQ,j,tmp2);
122 r_ii = zabs(tmp2->ve[j+1]);
123 tmp2->ve[j+1] = diag->ve[j];
124 tmp_val = (r_ii*zabs(diag->ve[j]));
125 beta = ( tmp_val == 0.0 ) ? 0.0 : 1.0/tmp_val;
126 /* printf("zHQunpack: j = %d, beta = %g, tmp2 =\n",
127 j,beta);
128 zv_output(tmp2); */
129 zhhtrvec(tmp2,beta,j+1,tmp1,tmp1);
130 }
131
132 /* insert into Q */
133 zset_col(Q,i,tmp1);
134 }
135 }
136
137 if ( H != ZMNULL )
138 {
139 H = zm_copy(HQ,H);
140
141 limit = H->m;
142 for ( i = 1; i < limit; i++ )
143 for ( j = 0; j < i-1; j++ )
144 H->me[i][j].re = H->me[i][j].im = 0.0;
145 }
146
147 return HQ;
148 }
149
150
151
+0
-209
interface/src/scilab/src/c/zhsehldr.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Files for matrix computations
28
29 Householder transformation file. Contains routines for calculating
30 householder transformations, applying them to vectors and matrices
31 by both row & column.
32
33 Complex version
34 */
35
36 static char rcsid[] = "$Id: zhsehldr.c 3865 2011-11-02 06:38:43Z ycollet $";
37
38 #include <stdio.h>
39 #include <math.h>
40
41 #include "zmatrix.h"
42 #include "zmatrix2.h"
43
44 #define is_zero(z) ((z).re == 0.0 && (z).im == 0.0)
45
46 /* zhhvec -- calulates Householder vector to eliminate all entries after the
47 i0 entry of the vector vec. It is returned as out. May be in-situ */
48 ZVEC *zhhvec(vec,i0,beta,out,newval)
49 ZVEC *vec,*out;
50 int i0;
51 Real *beta;
52 complex *newval;
53 {
54 complex tmp;
55 Real norm, abs_val;
56
57 if ( i0 < 0 || i0 >= vec->dim )
58 error(E_BOUNDS,"zhhvec");
59 out = _zv_copy(vec,out,i0);
60 tmp = _zin_prod(out,out,i0,Z_CONJ);
61 if ( tmp.re <= 0.0 )
62 {
63 *beta = 0.0;
64 *newval = out->ve[i0];
65 return (out);
66 }
67 norm = sqrt(tmp.re);
68 abs_val = zabs(out->ve[i0]);
69 *beta = 1.0/(norm * (norm+abs_val));
70 if ( abs_val == 0.0 )
71 {
72 newval->re = norm;
73 newval->im = 0.0;
74 }
75 else
76 {
77 abs_val = -norm / abs_val;
78 newval->re = abs_val*out->ve[i0].re;
79 newval->im = abs_val*out->ve[i0].im;
80 } abs_val = -norm / abs_val;
81 out->ve[i0].re -= newval->re;
82 out->ve[i0].im -= newval->im;
83
84 return (out);
85 }
86
87 /* zhhtrvec -- apply Householder transformation to vector -- may be in-situ */
88 ZVEC *zhhtrvec(hh,beta,i0,in,out)
89 ZVEC *hh,*in,*out; /* hh = Householder vector */
90 int i0;
91 double beta;
92 {
93 complex scale, tmp;
94 /* u_int i; */
95
96 if ( hh==ZVNULL || in==ZVNULL )
97 error(E_NULL,"zhhtrvec");
98 if ( in->dim != hh->dim )
99 error(E_SIZES,"zhhtrvec");
100 if ( i0 < 0 || i0 > in->dim )
101 error(E_BOUNDS,"zhhvec");
102
103 tmp = _zin_prod(hh,in,i0,Z_CONJ);
104 scale.re = -beta*tmp.re;
105 scale.im = -beta*tmp.im;
106 out = zv_copy(in,out);
107 __zmltadd__(&(out->ve[i0]),&(hh->ve[i0]),scale,
108 (int)(in->dim-i0),Z_NOCONJ);
109 /************************************************************
110 for ( i=i0; i<in->dim; i++ )
111 out->ve[i] = in->ve[i] - scale*hh->ve[i];
112 ************************************************************/
113
114 return (out);
115 }
116
117 /* zhhtrrows -- transform a matrix by a Householder vector by rows
118 starting at row i0 from column j0 -- in-situ */
119 ZMAT *zhhtrrows(M,i0,j0,hh,beta)
120 ZMAT *M;
121 int i0, j0;
122 ZVEC *hh;
123 double beta;
124 {
125 complex ip, scale;
126 int i /*, j */;
127
128 if ( M==ZMNULL || hh==ZVNULL )
129 error(E_NULL,"zhhtrrows");
130 if ( M->n != hh->dim )
131 error(E_RANGE,"zhhtrrows");
132 if ( i0 < 0 || i0 > M->m || j0 < 0 || j0 > M->n )
133 error(E_BOUNDS,"zhhtrrows");
134
135 if ( beta == 0.0 ) return (M);
136
137 /* for each row ... */
138 for ( i = i0; i < M->m; i++ )
139 { /* compute inner product */
140 ip = __zip__(&(M->me[i][j0]),&(hh->ve[j0]),
141 (int)(M->n-j0),Z_NOCONJ);
142 /**************************************************
143 ip = 0.0;
144 for ( j = j0; j < M->n; j++ )
145 ip += M->me[i][j]*hh->ve[j];
146 **************************************************/
147 scale.re = -beta*ip.re;
148 scale.im = -beta*ip.im;
149 /* if ( scale == 0.0 ) */
150 if ( is_zero(scale) )
151 continue;
152
153 /* do operation */
154 __zmltadd__(&(M->me[i][j0]),&(hh->ve[j0]),scale,
155 (int)(M->n-j0),Z_CONJ);
156 /**************************************************
157 for ( j = j0; j < M->n; j++ )
158 M->me[i][j] -= scale*hh->ve[j];
159 **************************************************/
160 }
161
162 return (M);
163 }
164
165
166 /* zhhtrcols -- transform a matrix by a Householder vector by columns
167 starting at row i0 from column j0 -- in-situ */
168 ZMAT *zhhtrcols(M,i0,j0,hh,beta)
169 ZMAT *M;
170 int i0, j0;
171 ZVEC *hh;
172 double beta;
173 {
174 /* Real ip, scale; */
175 complex scale;
176 int i /*, k */;
177 static ZVEC *w = ZVNULL;
178
179 if ( M==ZMNULL || hh==ZVNULL )
180 error(E_NULL,"zhhtrcols");
181 if ( M->m != hh->dim )
182 error(E_SIZES,"zhhtrcols");
183 if ( i0 < 0 || i0 > M->m || j0 < 0 || j0 > M->n )
184 error(E_BOUNDS,"zhhtrcols");
185
186 if ( beta == 0.0 ) return (M);
187
188 w = zv_resize(w,M->n);
189 MEM_STAT_REG(w,TYPE_ZVEC);
190 zv_zero(w);
191
192 for ( i = i0; i < M->m; i++ )
193 /* if ( hh->ve[i] != 0.0 ) */
194 if ( ! is_zero(hh->ve[i]) )
195 __zmltadd__(&(w->ve[j0]),&(M->me[i][j0]),hh->ve[i],
196 (int)(M->n-j0),Z_CONJ);
197 for ( i = i0; i < M->m; i++ )
198 /* if ( hh->ve[i] != 0.0 ) */
199 if ( ! is_zero(hh->ve[i]) )
200 {
201 scale.re = -beta*hh->ve[i].re;
202 scale.im = -beta*hh->ve[i].im;
203 __zmltadd__(&(M->me[i][j0]),&(w->ve[j0]),scale,
204 (int)(M->n-j0),Z_CONJ);
205 }
206 return (M);
207 }
208
+0
-279
interface/src/scilab/src/c/zlufctr.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25 /*
26 Matrix factorisation routines to work with the other matrix files.
27 Complex version
28 */
29
30 static char rcsid[] = "$Id: zlufctr.c 3865 2011-11-02 06:38:43Z ycollet $";
31
32 #include <stdio.h>
33 #include <math.h>
34
35 #include "zmatrix.h"
36 #include "zmatrix2.h"
37
38 #define is_zero(z) ((z).re == 0.0 && (z).im == 0.0)
39
40
41 /* Most matrix factorisation routines are in-situ unless otherwise specified */
42
43 /* zLUfactor -- Gaussian elimination with scaled partial pivoting
44 -- Note: returns LU matrix which is A */
45 ZMAT *zLUfactor(A,pivot)
46 ZMAT *A;
47 PERM *pivot;
48 {
49 u_int i, j, k, k_max, m, n;
50 int i_max;
51 Real dtemp, max1;
52 complex **A_v, *A_piv, *A_row, temp;
53 static VEC *scale = VNULL;
54
55 if ( A==ZMNULL || pivot==PNULL )
56 error(E_NULL,"zLUfactor");
57 if ( pivot->size != A->m )
58 error(E_SIZES,"zLUfactor");
59 m = A->m; n = A->n;
60 scale = v_resize(scale,A->m);
61 MEM_STAT_REG(scale,TYPE_VEC);
62 A_v = A->me;
63
64 /* initialise pivot with identity permutation */
65 for ( i=0; i<m; i++ )
66 pivot->pe[i] = i;
67
68 /* set scale parameters */
69 for ( i=0; i<m; i++ )
70 {
71 max1 = 0.0;
72 for ( j=0; j<n; j++ )
73 {
74 dtemp = zabs(A_v[i][j]);
75 max1 = max(max1,dtemp);
76 }
77 scale->ve[i] = max1;
78 }
79
80 /* main loop */
81 k_max = min(m,n)-1;
82 for ( k=0; k<k_max; k++ )
83 {
84 /* find best pivot row */
85 max1 = 0.0; i_max = -1;
86 for ( i=k; i<m; i++ )
87 if ( scale->ve[i] > 0.0 )
88 {
89 dtemp = zabs(A_v[i][k])/scale->ve[i];
90 if ( dtemp > max1 )
91 { max1 = dtemp; i_max = i; }
92 }
93
94 /* if no pivot then ignore column k... */
95 if ( i_max == -1 )
96 continue;
97
98 /* do we pivot ? */
99 if ( i_max != k ) /* yes we do... */
100 {
101 px_transp(pivot,i_max,k);
102 for ( j=0; j<n; j++ )
103 {
104 temp = A_v[i_max][j];
105 A_v[i_max][j] = A_v[k][j];
106 A_v[k][j] = temp;
107 }
108 }
109
110 /* row operations */
111 for ( i=k+1; i<m; i++ ) /* for each row do... */
112 { /* Note: divide by zero should never happen */
113 temp = A_v[i][k] = zdiv(A_v[i][k],A_v[k][k]);
114 A_piv = &(A_v[k][k+1]);
115 A_row = &(A_v[i][k+1]);
116 temp.re = - temp.re;
117 temp.im = - temp.im;
118 if ( k+1 < n )
119 __zmltadd__(A_row,A_piv,temp,(int)(n-(k+1)),Z_NOCONJ);
120 /*********************************************
121 for ( j=k+1; j<n; j++ )
122 A_v[i][j] -= temp*A_v[k][j];
123 (*A_row++) -= temp*(*A_piv++);
124 *********************************************/
125 }
126 }
127
128 return A;
129 }
130
131
132 /* zLUsolve -- given an LU factorisation in A, solve Ax=b */
133 ZVEC *zLUsolve(A,pivot,b,x)
134 ZMAT *A;
135 PERM *pivot;
136 ZVEC *b,*x;
137 {
138 if ( A==ZMNULL || b==ZVNULL || pivot==PNULL )
139 error(E_NULL,"zLUsolve");
140 if ( A->m != A->n || A->n != b->dim )
141 error(E_SIZES,"zLUsolve");
142
143 x = px_zvec(pivot,b,x); /* x := P.b */
144 zLsolve(A,x,x,1.0); /* implicit diagonal = 1 */
145 zUsolve(A,x,x,0.0); /* explicit diagonal */
146
147 return (x);
148 }
149
150 /* zLUAsolve -- given an LU factorisation in A, solve A^*.x=b */
151 ZVEC *zLUAsolve(LU,pivot,b,x)
152 ZMAT *LU;
153 PERM *pivot;
154 ZVEC *b,*x;
155 {
156 if ( ! LU || ! b || ! pivot )
157 error(E_NULL,"zLUAsolve");
158 if ( LU->m != LU->n || LU->n != b->dim )
159 error(E_SIZES,"zLUAsolve");
160
161 x = zv_copy(b,x);
162 zUAsolve(LU,x,x,0.0); /* explicit diagonal */
163 zLAsolve(LU,x,x,1.0); /* implicit diagonal = 1 */
164 pxinv_zvec(pivot,x,x); /* x := P^*.x */
165
166 return (x);
167 }
168
169 /* zm_inverse -- returns inverse of A, provided A is not too rank deficient
170 -- uses LU factorisation */
171 ZMAT *zm_inverse(A,out)
172 ZMAT *A, *out;
173 {
174 int i;
175 ZVEC *tmp, *tmp2;
176 ZMAT *A_cp;
177 PERM *pivot;
178
179 if ( ! A )
180 error(E_NULL,"zm_inverse");
181 if ( A->m != A->n )
182 error(E_SQUARE,"zm_inverse");
183 if ( ! out || out->m < A->m || out->n < A->n )
184 out = zm_resize(out,A->m,A->n);
185
186 A_cp = zm_copy(A,ZMNULL);
187 tmp = zv_get(A->m);
188 tmp2 = zv_get(A->m);
189 pivot = px_get(A->m);
190 tracecatch(zLUfactor(A_cp,pivot),"zm_inverse");
191 for ( i = 0; i < A->n; i++ )
192 {
193 zv_zero(tmp);
194 tmp->ve[i].re = 1.0;
195 tmp->ve[i].im = 0.0;
196 tracecatch(zLUsolve(A_cp,pivot,tmp,tmp2),"m_inverse");
197 zset_col(out,i,tmp2);
198 }
199
200 ZM_FREE(A_cp);
201 ZV_FREE(tmp); ZV_FREE(tmp2);
202 PX_FREE(pivot);
203
204 return out;
205 }
206
207 /* zLUcondest -- returns an estimate of the condition number of LU given the
208 LU factorisation in compact form */
209 double zLUcondest(LU,pivot)
210 ZMAT *LU;
211 PERM *pivot;
212 {
213 static ZVEC *y = ZVNULL, *z = ZVNULL;
214 Real cond_est, L_norm, U_norm, norm, sn_inv;
215 complex sum;
216 int i, j, n;
217
218 if ( ! LU || ! pivot )
219 error(E_NULL,"zLUcondest");
220 if ( LU->m != LU->n )
221 error(E_SQUARE,"zLUcondest");
222 if ( LU->n != pivot->size )
223 error(E_SIZES,"zLUcondest");
224
225 n = LU->n;
226 y = zv_resize(y,n);
227 z = zv_resize(z,n);
228 MEM_STAT_REG(y,TYPE_ZVEC);
229 MEM_STAT_REG(z,TYPE_ZVEC);
230
231 cond_est = 0.0; /* should never be returned */
232
233 for ( i = 0; i < n; i++ )
234 {
235 sum.re = 1.0;
236 sum.im = 0.0;
237 for ( j = 0; j < i; j++ )
238 /* sum -= LU->me[j][i]*y->ve[j]; */
239 sum = zsub(sum,zmlt(LU->me[j][i],y->ve[j]));
240 /* sum -= (sum < 0.0) ? 1.0 : -1.0; */
241 sn_inv = 1.0 / zabs(sum);
242 sum.re += sum.re * sn_inv;
243 sum.im += sum.im * sn_inv;
244 if ( is_zero(LU->me[i][i]) )
245 return HUGE;
246 /* y->ve[i] = sum / LU->me[i][i]; */
247 y->ve[i] = zdiv(sum,LU->me[i][i]);
248 }
249
250 zLAsolve(LU,y,y,1.0);
251 zLUsolve(LU,pivot,y,z);
252
253 /* now estimate norm of A (even though it is not directly available) */
254 /* actually computes ||L||_inf.||U||_inf */
255 U_norm = 0.0;
256 for ( i = 0; i < n; i++ )
257 {
258 norm = 0.0;
259 for ( j = i; j < n; j++ )
260 norm += zabs(LU->me[i][j]);
261 if ( norm > U_norm )
262 U_norm = norm;
263 }
264 L_norm = 0.0;
265 for ( i = 0; i < n; i++ )
266 {
267 norm = 1.0;
268 for ( j = 0; j < i; j++ )
269 norm += zabs(LU->me[i][j]);
270 if ( norm > L_norm )
271 L_norm = norm;
272 }
273
274 tracecatch(cond_est = U_norm*L_norm*zv_norm_inf(z)/zv_norm_inf(y),
275 "LUcondest");
276
277 return cond_est;
278 }
+0
-173
interface/src/scilab/src/c/zmachine.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 This file contains basic routines which are used by the functions
28 involving complex vectors.
29 These are the routines that should be modified in order to take
30 full advantage of specialised architectures (pipelining, vector
31 processors etc).
32 */
33 static char *rcsid = "$Id: zmachine.c 3865 2011-11-02 06:38:43Z ycollet $";
34
35 #include <math.h>
36
37 #include "machine.h"
38 #include "zmatrix.h"
39
40
41 /* __zconj__ -- complex conjugate */
42 void __zconj__(complex * zp, int len)
43 {
44 int i;
45
46 for ( i = 0; i < len; i++ )
47 zp[i].im = - zp[i].im;
48 }
49
50 /* __zip__ -- inner product
51 -- computes sum_i zp1[i].zp2[i] if flag == 0
52 sum_i zp1[i]*.zp2[i] if flag != 0 */
53 complex __zip__(zp1,zp2,len,flag)
54 complex *zp1, *zp2;
55 int flag, len;
56 {
57 complex sum;
58 int i;
59
60 sum.re = sum.im = 0.0;
61 if ( flag )
62 {
63 for ( i = 0; i < len; i++ )
64 {
65 sum.re += zp1[i].re*zp2[i].re + zp1[i].im*zp2[i].im;
66 sum.im += zp1[i].re*zp2[i].im - zp1[i].im*zp2[i].re;
67 }
68 }
69 else
70 {
71 for ( i = 0; i < len; i++ )
72 {
73 sum.re += zp1[i].re*zp2[i].re - zp1[i].im*zp2[i].im;
74 sum.im += zp1[i].re*zp2[i].im + zp1[i].im*zp2[i].re;
75 }
76 }
77
78 return sum;
79 }
80
81 /* __zmltadd__ -- scalar multiply and add i.e. complex saxpy
82 -- computes zp1[i] += s.zp2[i] if flag == 0
83 -- computes zp1[i] += s.zp2[i]* if flag != 0 */
84 void __zmltadd__(zp1,zp2,s,len,flag)
85 complex *zp1, *zp2, s;
86 int flag, len;
87 {
88 int i;
89 LongReal t_re, t_im;
90
91 if ( ! flag )
92 {
93 for ( i = 0; i < len; i++ )
94 {
95 t_re = zp1[i].re + s.re*zp2[i].re - s.im*zp2[i].im;
96 t_im = zp1[i].im + s.re*zp2[i].im + s.im*zp2[i].re;
97 zp1[i].re = t_re;
98 zp1[i].im = t_im;
99 }
100 }
101 else
102 {
103 for ( i = 0; i < len; i++ )
104 {
105 t_re = zp1[i].re + s.re*zp2[i].re + s.im*zp2[i].im;
106 t_im = zp1[i].im - s.re*zp2[i].im + s.im*zp2[i].re;
107 zp1[i].re = t_re;
108 zp1[i].im = t_im;
109 }
110 }
111 }
112
113 /* __zmlt__ scalar complex multiply array c.f. sv_mlt() */
114 void __zmlt__(zp,s,out,len)
115 complex *zp, s, *out;
116 register int len;
117 {
118 int i;
119 LongReal t_re, t_im;
120
121 for ( i = 0; i < len; i++ )
122 {
123 t_re = s.re*zp[i].re - s.im*zp[i].im;
124 t_im = s.re*zp[i].im + s.im*zp[i].re;
125 out[i].re = t_re;
126 out[i].im = t_im;
127 }
128 }
129
130 /* __zadd__ -- add complex arrays c.f. v_add() */
131 void __zadd__(zp1,zp2,out,len)
132 complex *zp1, *zp2, *out;
133 int len;
134 {
135 int i;
136 for ( i = 0; i < len; i++ )
137 {
138 out[i].re = zp1[i].re + zp2[i].re;
139 out[i].im = zp1[i].im + zp2[i].im;
140 }
141 }
142
143 /* __zsub__ -- subtract complex arrays c.f. v_sub() */
144 void __zsub__(zp1,zp2,out,len)
145 complex *zp1, *zp2, *out;
146 int len;
147 {
148 int i;
149 for ( i = 0; i < len; i++ )
150 {
151 out[i].re = zp1[i].re - zp2[i].re;
152 out[i].im = zp1[i].im - zp2[i].im;
153 }
154 }
155
156 /* __zzero__ -- zeros an array of complex numbers */
157 void __zzero__(zp,len)
158 complex *zp;
159 int len;
160 {
161 /* if a Real precision zero is equivalent to a string of nulls */
162 MEM_ZERO((char *)zp,len*sizeof(complex));
163 /* else, need to zero the array entry by entry */
164 /******************************
165 while ( len-- )
166 {
167 zp->re = zp->im = 0.0;
168 zp++;
169 }
170 ******************************/
171 }
172
+0
-400
interface/src/scilab/src/c/zmatio.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26
27 #include <stdio.h>
28 #include <ctype.h>
29 #include "zmatrix.h"
30
31 static char rcsid[] = "$Id: zmatio.c 3690 2010-09-02 09:55:19Z lsaavedr $";
32
33
34
35 /* local variables */
36 static char line[MAXLINE];
37
38 /**************************************************************************
39 Input routines
40 **************************************************************************/
41
42 complex z_finput(fp)
43 FILE *fp;
44 {
45 int io_code;
46 complex z;
47
48 skipjunk(fp);
49 if ( isatty(fileno(fp)) )
50 {
51 do {
52 fprintf(stderr,"real and imag parts: ");
53 if ( fgets(line,MAXLINE,fp) == NULL )
54 error(E_EOF,"z_finput");
55 #if REAL == DOUBLE
56 io_code = sscanf(line,"%lf%lf",&z.re,&z.im);
57 #elif REAL == FLOAT
58 io_code = sscanf(line,"%f%f",&z.re,&z.im);
59 #endif
60
61 } while ( io_code != 2 );
62 }
63 else
64 #if REAL == DOUBLE
65 if ( (io_code=fscanf(fp," (%lf,%lf)",&z.re,&z.im)) < 2 )
66 #elif REAL == FLOAT
67 if ( (io_code=fscanf(fp," (%f,%f)",&z.re,&z.im)) < 2 )
68 #endif
69 error((io_code == EOF) ? E_EOF : E_FORMAT,"z_finput");
70
71 return z;
72 }
73
74
75 ZMAT *zm_finput(fp,a)
76 FILE *fp;
77 ZMAT *a;
78 {
79 ZMAT *izm_finput(),*bzm_finput();
80
81 if ( isatty(fileno(fp)) )
82 return izm_finput(fp,a);
83 else
84 return bzm_finput(fp,a);
85 }
86
87 /* izm_finput -- interactive input of matrix */
88 ZMAT *izm_finput(fp,mat)
89 FILE *fp;
90 ZMAT *mat;
91 {
92 char c;
93 u_int i, j, m, n, dynamic;
94 /* dynamic set to TRUE if memory allocated here */
95
96 /* get matrix size */
97 if ( mat != ZMNULL && mat->m<MAXDIM && mat->n<MAXDIM )
98 { m = mat->m; n = mat->n; dynamic = FALSE; }
99 else
100 {
101 dynamic = TRUE;
102 do
103 {
104 fprintf(stderr,"ComplexMatrix: rows cols:");
105 if ( fgets(line,MAXLINE,fp)==NULL )
106 error(E_INPUT,"izm_finput");
107 } while ( sscanf(line,"%u%u",&m,&n)<2 || m>MAXDIM || n>MAXDIM );
108 mat = zm_get(m,n);
109 }
110
111 /* input elements */
112 for ( i=0; i<m; i++ )
113 {
114 redo:
115 fprintf(stderr,"row %u:\n",i);
116 for ( j=0; j<n; j++ )
117 do
118 {
119 redo2:
120 fprintf(stderr,"entry (%u,%u): ",i,j);
121 if ( !dynamic )
122 fprintf(stderr,"old (%14.9g,%14.9g) new: ",
123 mat->me[i][j].re,mat->me[i][j].im);
124 if ( fgets(line,MAXLINE,fp)==NULL )
125 error(E_INPUT,"izm_finput");
126 if ( (*line == 'b' || *line == 'B') && j > 0 )
127 { j--; dynamic = FALSE; goto redo2; }
128 if ( (*line == 'f' || *line == 'F') && j < n-1 )
129 { j++; dynamic = FALSE; goto redo2; }
130 } while ( *line=='\0' ||
131 #if REAL == DOUBLE
132 sscanf(line,"%lf%lf",
133 #elif REAL == FLOAT
134 sscanf(line,"%f%f",
135 #endif
136 &mat->me[i][j].re,&mat->me[i][j].im)<1 );
137 fprintf(stderr,"Continue: ");
138 fscanf(fp,"%c",&c);
139 if ( c == 'n' || c == 'N' )
140 { dynamic = FALSE; goto redo; }
141 if ( (c == 'b' || c == 'B') /* && i > 0 */ )
142 { if ( i > 0 )
143 i--;
144 dynamic = FALSE; goto redo;
145 }
146 }
147
148 return (mat);
149 }
150
151 /* bzm_finput -- batch-file input of matrix */
152 ZMAT *bzm_finput(fp,mat)
153 FILE *fp;
154 ZMAT *mat;
155 {
156 u_int i,j,m,n,dummy;
157 int io_code;
158
159 /* get dimension */
160 skipjunk(fp);
161 if ((io_code=fscanf(fp," ComplexMatrix: %u by %u",&m,&n)) < 2 ||
162 m>MAXDIM || n>MAXDIM )
163 error(io_code==EOF ? E_EOF : E_FORMAT,"bzm_finput");
164
165 /* allocate memory if necessary */
166 if ( mat==ZMNULL || mat->m<m || mat->n<n )
167 mat = zm_resize(mat,m,n);
168
169 /* get entries */
170 for ( i=0; i<m; i++ )
171 {
172 skipjunk(fp);
173 if ( fscanf(fp," row %u:",&dummy) < 1 )
174 error(E_FORMAT,"bzm_finput");
175 for ( j=0; j<n; j++ )
176 {
177 /* printf("bzm_finput: j = %d\n", j); */
178 #if REAL == DOUBLE
179 if ((io_code=fscanf(fp," ( %lf , %lf )",
180 #elif REAL == FLOAT
181 if ((io_code=fscanf(fp," ( %f , %f )",
182 #endif
183 &mat->me[i][j].re,&mat->me[i][j].im)) < 2 )
184 error(io_code==EOF ? E_EOF : E_FORMAT,"bzm_finput");
185 }
186 }
187
188 return (mat);
189 }
190
191 ZVEC *zv_finput(fp,x)
192 FILE *fp;
193 ZVEC *x;
194 {
195 ZVEC *izv_finput(),*bzv_finput();
196
197 if ( isatty(fileno(fp)) )
198 return izv_finput(fp,x);
199 else
200 return bzv_finput(fp,x);
201 }
202
203 /* izv_finput -- interactive input of vector */
204 ZVEC *izv_finput(fp,vec)
205 FILE *fp;
206 ZVEC *vec;
207 {
208 u_int i,dim,dynamic; /* dynamic set if memory allocated here */
209
210 /* get vector dimension */
211 if ( vec != ZVNULL && vec->dim<MAXDIM )
212 { dim = vec->dim; dynamic = FALSE; }
213 else
214 {
215 dynamic = TRUE;
216 do
217 {
218 fprintf(stderr,"ComplexVector: dim: ");
219 if ( fgets(line,MAXLINE,fp)==NULL )
220 error(E_INPUT,"izv_finput");
221 } while ( sscanf(line,"%u",&dim)<1 || dim>MAXDIM );
222 vec = zv_get(dim);
223 }
224
225 /* input elements */
226 for ( i=0; i<dim; i++ )
227 do
228 {
229 redo:
230 fprintf(stderr,"entry %u: ",i);
231 if ( !dynamic )
232 fprintf(stderr,"old (%14.9g,%14.9g) new: ",
233 vec->ve[i].re,vec->ve[i].im);
234 if ( fgets(line,MAXLINE,fp)==NULL )
235 error(E_INPUT,"izv_finput");
236 if ( (*line == 'b' || *line == 'B') && i > 0 )
237 { i--; dynamic = FALSE; goto redo; }
238 if ( (*line == 'f' || *line == 'F') && i < dim-1 )
239 { i++; dynamic = FALSE; goto redo; }
240 } while ( *line=='\0' ||
241 #if REAL == DOUBLE
242 sscanf(line,"%lf%lf",
243 #elif REAL == FLOAT
244 sscanf(line,"%f%f",
245 #endif
246 &vec->ve[i].re,&vec->ve[i].im) < 2 );
247
248 return (vec);
249 }
250
251 /* bzv_finput -- batch-file input of vector */
252 ZVEC *bzv_finput(fp,vec)
253 FILE *fp;
254 ZVEC *vec;
255 {
256 u_int i,dim;
257 int io_code;
258
259 /* get dimension */
260 skipjunk(fp);
261 if ((io_code=fscanf(fp," ComplexVector: dim:%u",&dim)) < 1 ||
262 dim>MAXDIM )
263 error(io_code==EOF ? 7 : 6,"bzv_finput");
264
265
266 /* allocate memory if necessary */
267 if ( vec==ZVNULL || vec->dim<dim )
268 vec = zv_resize(vec,dim);
269
270 /* get entries */
271 skipjunk(fp);
272 for ( i=0; i<dim; i++ )
273 #if REAL == DOUBLE
274 if ((io_code=fscanf(fp," (%lf,%lf)",
275 #elif REAL == FLOAT
276 if ((io_code=fscanf(fp," (%f,%f)",
277 #endif
278 &vec->ve[i].re,&vec->ve[i].im)) < 2 )
279 error(io_code==EOF ? 7 : 6,"bzv_finput");
280
281 return (vec);
282 }
283
284 /**************************************************************************
285 Output routines
286 **************************************************************************/
287 static char *zformat = " (%14.9g, %14.9g) ";
288
289 char *setzformat(f_string)
290 char *f_string;
291 {
292 char *old_f_string;
293 old_f_string = zformat;
294 if ( f_string != (char *)NULL && *f_string != '\0' )
295 zformat = f_string;
296
297 return old_f_string;
298 }
299
300 void z_foutput(fp,z)
301 FILE *fp;
302 complex z;
303 {
304 fprintf(fp,zformat,z.re,z.im);
305 putc('\n',fp);
306 }
307
308 void zm_foutput(fp,a)
309 FILE *fp;
310 ZMAT *a;
311 {
312 u_int i, j, tmp;
313
314 if ( a == ZMNULL )
315 { fprintf(fp,"ComplexMatrix: NULL\n"); return; }
316 fprintf(fp,"ComplexMatrix: %d by %d\n",a->m,a->n);
317 if ( a->me == (complex **)NULL )
318 { fprintf(fp,"NULL\n"); return; }
319 for ( i=0; i<a->m; i++ ) /* for each row... */
320 {
321 fprintf(fp,"row %u: ",i);
322 for ( j=0, tmp=1; j<a->n; j++, tmp++ )
323 { /* for each col in row... */
324 fprintf(fp,zformat,a->me[i][j].re,a->me[i][j].im);
325 if ( ! (tmp % 2) ) putc('\n',fp);
326 }
327 if ( tmp % 2 != 1 ) putc('\n',fp);
328 }
329 }
330
331 void zv_foutput(fp,x)
332 FILE *fp;
333 ZVEC *x;
334 {
335 u_int i, tmp;
336
337 if ( x == ZVNULL )
338 { fprintf(fp,"ComplexVector: NULL\n"); return; }
339 fprintf(fp,"ComplexVector: dim: %d\n",x->dim);
340 if ( x->ve == (complex *)NULL )
341 { fprintf(fp,"NULL\n"); return; }
342 for ( i=0, tmp=0; i<x->dim; i++, tmp++ )
343 {
344 fprintf(fp,zformat,x->ve[i].re,x->ve[i].im);
345 if ( (tmp % 2) == 1 ) putc('\n',fp);
346 }
347 if ( (tmp % 2) != 0 ) putc('\n',fp);
348 }
349
350
351 void zm_dump(fp,a)
352 FILE *fp;
353 ZMAT *a;
354 {
355 u_int i, j, tmp;
356
357 if ( a == ZMNULL )
358 { fprintf(fp,"ComplexMatrix: NULL\n"); return; }
359 fprintf(fp,"ComplexMatrix: %d by %d @ 0x%lx\n",a->m,a->n,(long)a);
360 fprintf(fp,"\tmax_m = %d, max_n = %d, max_size = %d\n",
361 a->max_m, a->max_n, a->max_size);
362 if ( a->me == (complex **)NULL )
363 { fprintf(fp,"NULL\n"); return; }
364 fprintf(fp,"a->me @ 0x%lx\n",(long)(a->me));
365 fprintf(fp,"a->base @ 0x%lx\n",(long)(a->base));
366 for ( i=0; i<a->m; i++ ) /* for each row... */
367 {
368 fprintf(fp,"row %u: @ 0x%lx ",i,(long)(a->me[i]));
369 for ( j=0, tmp=1; j<a->n; j++, tmp++ )
370 { /* for each col in row... */
371 fprintf(fp,zformat,a->me[i][j].re,a->me[i][j].im);
372 if ( ! (tmp % 2) ) putc('\n',fp);
373 }
374 if ( tmp % 2 != 1 ) putc('\n',fp);
375 }
376 }
377
378
379
380 void zv_dump(fp,x)
381 FILE *fp;
382 ZVEC *x;
383 {
384 u_int i, tmp;
385
386 if ( ! x )
387 { fprintf(fp,"ComplexVector: NULL\n"); return; }
388 fprintf(fp,"ComplexVector: dim: %d @ 0x%lx\n",x->dim,(long)(x));
389 if ( ! x->ve )
390 { fprintf(fp,"NULL\n"); return; }
391 fprintf(fp,"x->ve @ 0x%lx\n",(long)(x->ve));
392 for ( i=0, tmp=0; i<x->dim; i++, tmp++ )
393 {
394 fprintf(fp,zformat,x->ve[i].re,x->ve[i].im);
395 if ( tmp % 2 == 1 ) putc('\n',fp);
396 }
397 if ( tmp % 2 != 0 ) putc('\n',fp);
398 }
399
+0
-214
interface/src/scilab/src/c/zmatlab.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 This file contains routines for import/exporting complex data
28 to/from MATLAB. The main routines are:
29 ZMAT *zm_save(FILE *fp,ZMAT *A,char *name)
30 ZVEC *zv_save(FILE *fp,ZVEC *x,char *name)
31 complex z_save(FILE *fp,complex z,char *name)
32 ZMAT *zm_load(FILE *fp,char **name)
33 */
34
35 #include <stdio.h>
36 #include "zmatrix.h"
37 #include "matlab.h"
38
39 static char rcsid[] = "$Id: zmatlab.c 3690 2010-09-02 09:55:19Z lsaavedr $";
40
41 /* zm_save -- save matrix in ".mat" file for MATLAB
42 -- returns matrix to be saved */
43 ZMAT *zm_save(fp,A,name)
44 FILE *fp;
45 ZMAT *A;
46 char *name;
47 {
48 int i, j;
49 matlab mat;
50
51 if ( ! A )
52 error(E_NULL,"zm_save");
53
54 mat.type = 1000*MACH_ID + 100*ORDER + 10*PRECISION + 0;
55 mat.m = A->m;
56 mat.n = A->n;
57 mat.imag = TRUE;
58 mat.namlen = (name == (char *)NULL) ? 1 : strlen(name)+1;
59
60 /* write header */
61 fwrite(&mat,sizeof(matlab),1,fp);
62 /* write name */
63 if ( name == (char *)NULL )
64 fwrite("",sizeof(char),1,fp);
65 else
66 fwrite(name,sizeof(char),(int)(mat.namlen),fp);
67 /* write actual data */
68 for ( i = 0; i < A->m; i++ )
69 for ( j = 0; j < A->n; j++ )
70 fwrite(&(A->me[i][j].re),sizeof(Real),1,fp);
71 for ( i = 0; i < A->m; i++ )
72 for ( j = 0; j < A->n; j++ )
73 fwrite(&(A->me[i][j].im),sizeof(Real),1,fp);
74
75 return A;
76 }
77
78
79 /* zv_save -- save vector in ".mat" file for MATLAB
80 -- saves it as a row vector
81 -- returns vector to be saved */
82 ZVEC *zv_save(fp,x,name)
83 FILE *fp;
84 ZVEC *x;
85 char *name;
86 {
87 int i;
88 matlab mat;
89
90 if ( ! x )
91 error(E_NULL,"zv_save");
92
93 mat.type = 1000*MACH_ID + 100*ORDER + 10*PRECISION + 0;
94 mat.m = x->dim;
95 mat.n = 1;
96 mat.imag = TRUE;
97 mat.namlen = (name == (char *)NULL) ? 1 : strlen(name)+1;
98
99 /* write header */
100 fwrite(&mat,sizeof(matlab),1,fp);
101 /* write name */
102 if ( name == (char *)NULL )
103 fwrite("",sizeof(char),1,fp);
104 else
105 fwrite(name,sizeof(char),(int)(mat.namlen),fp);
106 /* write actual data */
107 for ( i = 0; i < x->dim; i++ )
108 fwrite(&(x->ve[i].re),sizeof(Real),1,fp);
109 for ( i = 0; i < x->dim; i++ )
110 fwrite(&(x->ve[i].im),sizeof(Real),1,fp);
111
112 return x;
113 }
114
115 /* z_save -- saves complex number in ".mat" file for MATLAB
116 -- returns complex number to be saved */
117 complex z_save(fp,z,name)
118 FILE *fp;
119 complex z;
120 char *name;
121 {
122 matlab mat;
123
124 mat.type = 1000*MACH_ID + 100*ORDER + 10*PRECISION + 0;
125 mat.m = 1;
126 mat.n = 1;
127 mat.imag = TRUE;
128 mat.namlen = (name == (char *)NULL) ? 1 : strlen(name)+1;
129
130 /* write header */
131 fwrite(&mat,sizeof(matlab),1,fp);
132 /* write name */
133 if ( name == (char *)NULL )
134 fwrite("",sizeof(char),1,fp);
135 else
136 fwrite(name,sizeof(char),(int)(mat.namlen),fp);
137 /* write actual data */
138 fwrite(&z,sizeof(complex),1,fp);
139
140 return z;
141 }
142
143
144
145 /* zm_load -- loads in a ".mat" file variable as produced by MATLAB
146 -- matrix returned; imaginary parts ignored */
147 ZMAT *zm_load(fp,name)
148 FILE *fp;
149 char **name;
150 {
151 ZMAT *A;
152 int i;
153 int m_flag, o_flag, p_flag, t_flag;
154 float f_temp;
155 double d_temp;
156 matlab mat;
157
158 if ( fread(&mat,sizeof(matlab),1,fp) != 1 )
159 error(E_FORMAT,"zm_load");
160 if ( mat.type >= 10000 ) /* don't load a sparse matrix! */
161 error(E_FORMAT,"zm_load");
162 m_flag = (mat.type/1000) % 10;
163 o_flag = (mat.type/100) % 10;
164 p_flag = (mat.type/10) % 10;
165 t_flag = (mat.type) % 10;
166 if ( m_flag != MACH_ID )
167 error(E_FORMAT,"zm_load");
168 if ( t_flag != 0 )
169 error(E_FORMAT,"zm_load");
170 if ( p_flag != DOUBLE_PREC && p_flag != SINGLE_PREC )
171 error(E_FORMAT,"zm_load");
172 *name = (char *)malloc((unsigned)(mat.namlen)+1);
173 if ( fread(*name,sizeof(char),(unsigned)(mat.namlen),fp) == 0 )
174 error(E_FORMAT,"zm_load");
175 A = zm_get((unsigned)(mat.m),(unsigned)(mat.n));
176 for ( i = 0; i < A->m*A->n; i++ )
177 {
178 if ( p_flag == DOUBLE_PREC )
179 fread(&d_temp,sizeof(double),1,fp);
180 else
181 {
182 fread(&f_temp,sizeof(float),1,fp);
183 d_temp = f_temp;
184 }
185 if ( o_flag == ROW_ORDER )
186 A->me[i / A->n][i % A->n].re = d_temp;
187 else if ( o_flag == COL_ORDER )
188 A->me[i % A->m][i / A->m].re = d_temp;
189 else
190 error(E_FORMAT,"zm_load");
191 }
192
193 if ( mat.imag ) /* skip imaginary part */
194 for ( i = 0; i < A->m*A->n; i++ )
195 {
196 if ( p_flag == DOUBLE_PREC )
197 fread(&d_temp,sizeof(double),1,fp);
198 else
199 {
200 fread(&f_temp,sizeof(float),1,fp);
201 d_temp = f_temp;
202 }
203 if ( o_flag == ROW_ORDER )
204 A->me[i / A->n][i % A->n].im = d_temp;
205 else if ( o_flag == COL_ORDER )
206 A->me[i % A->m][i / A->m].im = d_temp;
207 else
208 error(E_FORMAT,"zm_load");
209 }
210
211 return A;
212 }
213
+0
-612
interface/src/scilab/src/c/zmatop.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26
27 #include <stdio.h>
28 #include "zmatrix.h"
29
30 static char rcsid[] = "$Id: zmatop.c 3865 2011-11-02 06:38:43Z ycollet $";
31
32
33 #define is_zero(z) ((z).re == 0.0 && (z).im == 0.0)
34
35 /* zm_add -- matrix addition -- may be in-situ */
36 ZMAT *zm_add(mat1,mat2,out)
37 ZMAT *mat1,*mat2,*out;
38 {
39 u_int m,n,i;
40
41 if ( mat1==ZMNULL || mat2==ZMNULL )
42 error(E_NULL,"zm_add");
43 if ( mat1->m != mat2->m || mat1->n != mat2->n )
44 error(E_SIZES,"zm_add");
45 if ( out==ZMNULL || out->m != mat1->m || out->n != mat1->n )
46 out = zm_resize(out,mat1->m,mat1->n);
47 m = mat1->m; n = mat1->n;
48 for ( i=0; i<m; i++ )
49 {
50 __zadd__(mat1->me[i],mat2->me[i],out->me[i],(int)n);
51 /**************************************************
52 for ( j=0; j<n; j++ )
53 out->me[i][j] = mat1->me[i][j]+mat2->me[i][j];
54 **************************************************/
55 }
56
57 return (out);
58 }
59
60 /* zm_sub -- matrix subtraction -- may be in-situ */
61 ZMAT *zm_sub(mat1,mat2,out)
62 ZMAT *mat1,*mat2,*out;
63 {
64 u_int m,n,i;
65
66 if ( mat1==ZMNULL || mat2==ZMNULL )
67 error(E_NULL,"zm_sub");
68 if ( mat1->m != mat2->m || mat1->n != mat2->n )
69 error(E_SIZES,"zm_sub");
70 if ( out==ZMNULL || out->m != mat1->m || out->n != mat1->n )
71 out = zm_resize(out,mat1->m,mat1->n);
72 m = mat1->m; n = mat1->n;
73 for ( i=0; i<m; i++ )
74 {
75 __zsub__(mat1->me[i],mat2->me[i],out->me[i],(int)n);
76 /**************************************************
77 for ( j=0; j<n; j++ )
78 out->me[i][j] = mat1->me[i][j]-mat2->me[i][j];
79 **************************************************/
80 }
81
82 return (out);
83 }
84
85 /*
86 Note: In the following routines, "adjoint" means complex conjugate
87 transpose:
88 A* = conjugate(A^T)
89 */
90
91 /* zm_mlt -- matrix-matrix multiplication */
92 ZMAT *zm_mlt(A,B,out)
93 ZMAT *A,*B,*out;
94 {
95 u_int i, /* j, */ k, m, n, p;
96 complex **A_v, **B_v /*, *B_row, *OUT_row, sum, tmp */;
97
98 if ( A==ZMNULL || B==ZMNULL )
99 error(E_NULL,"zm_mlt");
100 if ( A->n != B->m )
101 error(E_SIZES,"zm_mlt");
102 if ( A == out || B == out )
103 error(E_INSITU,"zm_mlt");
104 m = A->m; n = A->n; p = B->n;
105 A_v = A->me; B_v = B->me;
106
107 if ( out==ZMNULL || out->m != A->m || out->n != B->n )
108 out = zm_resize(out,A->m,B->n);
109
110 /****************************************************************
111 for ( i=0; i<m; i++ )
112 for ( j=0; j<p; j++ )
113 {
114 sum = 0.0;
115 for ( k=0; k<n; k++ )
116 sum += A_v[i][k]*B_v[k][j];
117 out->me[i][j] = sum;
118 }
119 ****************************************************************/
120 zm_zero(out);
121 for ( i=0; i<m; i++ )
122 for ( k=0; k<n; k++ )
123 {
124 if ( ! is_zero(A_v[i][k]) )
125 __zmltadd__(out->me[i],B_v[k],A_v[i][k],(int)p,Z_NOCONJ);
126 /**************************************************
127 B_row = B_v[k]; out_row = out->me[i];
128 for ( j=0; j<p; j++ )
129 (*out_row++) += tmp*(*B_row++);
130 **************************************************/
131 }
132
133 return out;
134 }
135
136 /* zmma_mlt -- matrix-matrix adjoint multiplication
137 -- A.B* is returned, and stored in out */
138 ZMAT *zmma_mlt(A,B,out)
139 ZMAT *A, *B, *out;
140 {
141 int i, j, limit;
142 /* complex *A_row, *B_row, sum; */
143
144 if ( ! A || ! B )
145 error(E_NULL,"zmma_mlt");
146 if ( A == out || B == out )
147 error(E_INSITU,"zmma_mlt");
148 if ( A->n != B->n )
149 error(E_SIZES,"zmma_mlt");
150 if ( ! out || out->m != A->m || out->n != B->m )
151 out = zm_resize(out,A->m,B->m);
152
153 limit = A->n;
154 for ( i = 0; i < A->m; i++ )
155 for ( j = 0; j < B->m; j++ )
156 {
157 out->me[i][j] = __zip__(B->me[j],A->me[i],(int)limit,Z_CONJ);
158 /**************************************************
159 sum = 0.0;
160 A_row = A->me[i];
161 B_row = B->me[j];
162 for ( k = 0; k < limit; k++ )
163 sum += (*A_row++)*(*B_row++);
164 out->me[i][j] = sum;
165 **************************************************/
166 }
167
168 return out;
169 }
170
171 /* zmam_mlt -- matrix adjoint-matrix multiplication
172 -- A*.B is returned, result stored in out */
173 ZMAT *zmam_mlt(A,B,out)
174 ZMAT *A, *B, *out;
175 {
176 int i, k, limit;
177 /* complex *B_row, *out_row, multiplier; */
178 complex tmp;
179
180 if ( ! A || ! B )
181 error(E_NULL,"zmam_mlt");
182 if ( A == out || B == out )
183 error(E_INSITU,"zmam_mlt");
184 if ( A->m != B->m )
185 error(E_SIZES,"zmam_mlt");
186 if ( ! out || out->m != A->n || out->n != B->n )
187 out = zm_resize(out,A->n,B->n);
188
189 limit = B->n;
190 zm_zero(out);
191 for ( k = 0; k < A->m; k++ )
192 for ( i = 0; i < A->n; i++ )
193 {
194 tmp.re = A->me[k][i].re;
195 tmp.im = - A->me[k][i].im;
196 if ( ! is_zero(tmp) )
197 __zmltadd__(out->me[i],B->me[k],tmp,(int)limit,Z_NOCONJ);
198 }
199
200 return out;
201 }
202
203 /* zmv_mlt -- matrix-vector multiplication
204 -- Note: b is treated as a column vector */
205 ZVEC *zmv_mlt(A,b,out)
206 ZMAT *A;
207 ZVEC *b,*out;
208 {
209 u_int i, m, n;
210 complex **A_v, *b_v /*, *A_row */;
211 /* register complex sum; */
212
213 if ( A==ZMNULL || b==ZVNULL )
214 error(E_NULL,"zmv_mlt");
215 if ( A->n != b->dim )
216 error(E_SIZES,"zmv_mlt");
217 if ( b == out )
218 error(E_INSITU,"zmv_mlt");
219 if ( out == ZVNULL || out->dim != A->m )
220 out = zv_resize(out,A->m);
221
222 m = A->m; n = A->n;
223 A_v = A->me; b_v = b->ve;
224 for ( i=0; i<m; i++ )
225 {
226 /* for ( j=0; j<n; j++ )
227 sum += A_v[i][j]*b_v[j]; */
228 out->ve[i] = __zip__(A_v[i],b_v,(int)n,Z_NOCONJ);
229 /**************************************************
230 A_row = A_v[i]; b_v = b->ve;
231 for ( j=0; j<n; j++ )
232 sum += (*A_row++)*(*b_v++);
233 out->ve[i] = sum;
234 **************************************************/
235 }
236
237 return out;
238 }
239
240 /* zsm_mlt -- scalar-matrix multiply -- may be in-situ */
241 ZMAT *zsm_mlt(scalar,matrix,out)
242 complex scalar;
243 ZMAT *matrix,*out;
244 {
245 u_int m,n,i;
246
247 if ( matrix==ZMNULL )
248 error(E_NULL,"zsm_mlt");
249 if ( out==ZMNULL || out->m != matrix->m || out->n != matrix->n )
250 out = zm_resize(out,matrix->m,matrix->n);
251 m = matrix->m; n = matrix->n;
252 for ( i=0; i<m; i++ )
253 __zmlt__(matrix->me[i],scalar,out->me[i],(int)n);
254 /**************************************************
255 for ( j=0; j<n; j++ )
256 out->me[i][j] = scalar*matrix->me[i][j];
257 **************************************************/
258 return (out);
259 }
260
261 /* zvm_mlt -- vector adjoint-matrix multiplication */
262 ZVEC *zvm_mlt(A,b,out)
263 ZMAT *A;
264 ZVEC *b,*out;
265 {
266 u_int j,m,n;
267 /* complex sum,**A_v,*b_v; */
268
269 if ( A==ZMNULL || b==ZVNULL )
270 error(E_NULL,"zvm_mlt");
271 if ( A->m != b->dim )
272 error(E_SIZES,"zvm_mlt");
273 if ( b == out )
274 error(E_INSITU,"zvm_mlt");
275 if ( out == ZVNULL || out->dim != A->n )
276 out = zv_resize(out,A->n);
277
278 m = A->m; n = A->n;
279
280 zv_zero(out);
281 for ( j = 0; j < m; j++ )
282 if ( b->ve[j].re != 0.0 || b->ve[j].im != 0.0 )
283 __zmltadd__(out->ve,A->me[j],b->ve[j],(int)n,Z_CONJ);
284 /**************************************************
285 A_v = A->me; b_v = b->ve;
286 for ( j=0; j<n; j++ )
287 {
288 sum = 0.0;
289 for ( i=0; i<m; i++ )
290 sum += b_v[i]*A_v[i][j];
291 out->ve[j] = sum;
292 }
293 **************************************************/
294
295 return out;
296 }
297
298 /* zm_adjoint -- adjoint matrix */
299 ZMAT *zm_adjoint(in,out)
300 ZMAT *in, *out;
301 {
302 int i, j;
303 int in_situ;
304 complex tmp;
305
306 if ( in == ZMNULL )
307 error(E_NULL,"zm_adjoint");
308 if ( in == out && in->n != in->m )
309 error(E_INSITU2,"zm_adjoint");
310 in_situ = ( in == out );
311 if ( out == ZMNULL || out->m != in->n || out->n != in->m )
312 out = zm_resize(out,in->n,in->m);
313
314 if ( ! in_situ )
315 {
316 for ( i = 0; i < in->m; i++ )
317 for ( j = 0; j < in->n; j++ )
318 {
319 out->me[j][i].re = in->me[i][j].re;
320 out->me[j][i].im = - in->me[i][j].im;
321 }
322 }
323 else
324 {
325 for ( i = 0 ; i < in->m; i++ )
326 {
327 for ( j = 0; j < i; j++ )
328 {
329 tmp.re = in->me[i][j].re;
330 tmp.im = in->me[i][j].im;
331 in->me[i][j].re = in->me[j][i].re;
332 in->me[i][j].im = - in->me[j][i].im;
333 in->me[j][i].re = tmp.re;
334 in->me[j][i].im = - tmp.im;
335 }
336 in->me[i][i].im = - in->me[i][i].im;
337 }
338 }
339
340 return out;
341 }
342
343 /* zswap_rows -- swaps rows i and j of matrix A upto column lim */
344 ZMAT *zswap_rows(A,i,j,lo,hi)
345 ZMAT *A;
346 int i, j, lo, hi;
347 {
348 int k;
349 complex **A_me, tmp;
350
351 if ( ! A )
352 error(E_NULL,"swap_rows");
353 if ( i < 0 || j < 0 || i >= A->m || j >= A->m )
354 error(E_SIZES,"swap_rows");
355 lo = max(0,lo);
356 hi = min(hi,A->n-1);
357 A_me = A->me;
358
359 for ( k = lo; k <= hi; k++ )
360 {
361 tmp = A_me[k][i];
362 A_me[k][i] = A_me[k][j];
363 A_me[k][j] = tmp;
364 }
365 return A;
366 }
367
368 /* zswap_cols -- swap columns i and j of matrix A upto row lim */
369 ZMAT *zswap_cols(A,i,j,lo,hi)
370 ZMAT *A;
371 int i, j, lo, hi;
372 {
373 int k;
374 complex **A_me, tmp;
375
376 if ( ! A )
377 error(E_NULL,"swap_cols");
378 if ( i < 0 || j < 0 || i >= A->n || j >= A->n )
379 error(E_SIZES,"swap_cols");
380 lo = max(0,lo);
381 hi = min(hi,A->m-1);
382 A_me = A->me;
383
384 for ( k = lo; k <= hi; k++ )
385 {
386 tmp = A_me[i][k];
387 A_me[i][k] = A_me[j][k];
388 A_me[j][k] = tmp;
389 }
390 return A;
391 }
392
393 /* mz_mltadd -- matrix-scalar multiply and add
394 -- may be in situ
395 -- returns out == A1 + s*A2 */
396 ZMAT *mz_mltadd(A1,A2,s,out)
397 ZMAT *A1, *A2, *out;
398 complex s;
399 {
400 /* register complex *A1_e, *A2_e, *out_e; */
401 /* register int j; */
402 int i, m, n;
403
404 if ( ! A1 || ! A2 )
405 error(E_NULL,"mz_mltadd");
406 if ( A1->m != A2->m || A1->n != A2->n )
407 error(E_SIZES,"mz_mltadd");
408
409 if ( s.re == 0.0 && s.im == 0.0 )
410 return zm_copy(A1,out);
411 if ( s.re == 1.0 && s.im == 0.0 )
412 return zm_add(A1,A2,out);
413
414 tracecatch(out = zm_copy(A1,out),"mz_mltadd");
415
416 m = A1->m; n = A1->n;
417 for ( i = 0; i < m; i++ )
418 {
419 __zmltadd__(out->me[i],A2->me[i],s,(int)n,Z_NOCONJ);
420 /**************************************************
421 A1_e = A1->me[i];
422 A2_e = A2->me[i];
423 out_e = out->me[i];
424 for ( j = 0; j < n; j++ )
425 out_e[j] = A1_e[j] + s*A2_e[j];
426 **************************************************/
427 }
428
429 return out;
430 }
431
432 /* zmv_mltadd -- matrix-vector multiply and add
433 -- may not be in situ
434 -- returns out == v1 + alpha*A*v2 */
435 ZVEC *zmv_mltadd(v1,v2,A,alpha,out)
436 ZVEC *v1, *v2, *out;
437 ZMAT *A;
438 complex alpha;
439 {
440 /* register int j; */
441 int i, m, n;
442 complex tmp, *v2_ve, *out_ve;
443
444 if ( ! v1 || ! v2 || ! A )
445 error(E_NULL,"zmv_mltadd");
446 if ( out == v2 )
447 error(E_INSITU,"zmv_mltadd");
448 if ( v1->dim != A->m || v2->dim != A-> n )
449 error(E_SIZES,"zmv_mltadd");
450
451 tracecatch(out = zv_copy(v1,out),"zmv_mltadd");
452
453 v2_ve = v2->ve; out_ve = out->ve;
454 m = A->m; n = A->n;
455
456 if ( alpha.re == 0.0 && alpha.im == 0.0 )
457 return out;
458
459 for ( i = 0; i < m; i++ )
460 {
461 tmp = __zip__(A->me[i],v2_ve,(int)n,Z_NOCONJ);
462 out_ve[i].re += alpha.re*tmp.re - alpha.im*tmp.im;
463 out_ve[i].im += alpha.re*tmp.im + alpha.im*tmp.re;
464 /**************************************************
465 A_e = A->me[i];
466 sum = 0.0;
467 for ( j = 0; j < n; j++ )
468 sum += A_e[j]*v2_ve[j];
469 out_ve[i] = v1->ve[i] + alpha*sum;
470 **************************************************/
471 }
472
473 return out;
474 }
475
476 /* zvm_mltadd -- vector-matrix multiply and add a la zvm_mlt()
477 -- may not be in situ
478 -- returns out == v1 + v2*.A */
479 ZVEC *zvm_mltadd(v1,v2,A,alpha,out)
480 ZVEC *v1, *v2, *out;
481 ZMAT *A;
482 complex alpha;
483 {
484 int /* i, */ j, m, n;
485 complex tmp, /* *A_e, */ *out_ve;
486
487 if ( ! v1 || ! v2 || ! A )
488 error(E_NULL,"zvm_mltadd");
489 if ( v2 == out )
490 error(E_INSITU,"zvm_mltadd");
491 if ( v1->dim != A->n || A->m != v2->dim )
492 error(E_SIZES,"zvm_mltadd");
493
494 tracecatch(out = zv_copy(v1,out),"zvm_mltadd");
495
496 out_ve = out->ve; m = A->m; n = A->n;
497 for ( j = 0; j < m; j++ )
498 {
499 /* tmp = zmlt(v2->ve[j],alpha); */
500 tmp.re = v2->ve[j].re*alpha.re - v2->ve[j].im*alpha.im;
501 tmp.im = v2->ve[j].re*alpha.im + v2->ve[j].im*alpha.re;
502 if ( tmp.re != 0.0 || tmp.im != 0.0 )
503 __zmltadd__(out_ve,A->me[j],tmp,(int)n,Z_CONJ);
504 /**************************************************
505 A_e = A->me[j];
506 for ( i = 0; i < n; i++ )
507 out_ve[i] += A_e[i]*tmp;
508 **************************************************/
509 }
510
511 return out;
512 }
513
514 /* zget_col -- gets a specified column of a matrix; returned as a vector */
515 ZVEC *zget_col(mat,col,vec)
516 int col;
517 ZMAT *mat;
518 ZVEC *vec;
519 {
520 u_int i;
521
522 if ( mat==ZMNULL )
523 error(E_NULL,"zget_col");
524 if ( col < 0 || col >= mat->n )
525 error(E_RANGE,"zget_col");
526 if ( vec==ZVNULL || vec->dim<mat->m )
527 vec = zv_resize(vec,mat->m);
528
529 for ( i=0; i<mat->m; i++ )
530 vec->ve[i] = mat->me[i][col];
531
532 return (vec);
533 }
534
535 /* zget_row -- gets a specified row of a matrix and retruns it as a vector */
536 ZVEC *zget_row(mat,row,vec)
537 int row;
538 ZMAT *mat;
539 ZVEC *vec;
540 {
541 int /* i, */ lim;
542
543 if ( mat==ZMNULL )
544 error(E_NULL,"zget_row");
545 if ( row < 0 || row >= mat->m )
546 error(E_RANGE,"zget_row");
547 if ( vec==ZVNULL || vec->dim<mat->n )
548 vec = zv_resize(vec,mat->n);
549
550 lim = min(mat->n,vec->dim);
551
552 /* for ( i=0; i<mat->n; i++ ) */
553 /* vec->ve[i] = mat->me[row][i]; */
554 MEMCOPY(mat->me[row],vec->ve,lim,complex);
555
556 return (vec);
557 }
558
559 /* zset_col -- sets column of matrix to values given in vec (in situ) */
560 ZMAT *zset_col(mat,col,vec)
561 ZMAT *mat;
562 ZVEC *vec;
563 int col;
564 {
565 u_int i,lim;
566
567 if ( mat==ZMNULL || vec==ZVNULL )
568 error(E_NULL,"zset_col");
569 if ( col < 0 || col >= mat->n )
570 error(E_RANGE,"zset_col");
571 lim = min(mat->m,vec->dim);
572 for ( i=0; i<lim; i++ )
573 mat->me[i][col] = vec->ve[i];
574
575 return (mat);
576 }
577
578 /* zset_row -- sets row of matrix to values given in vec (in situ) */
579 ZMAT *zset_row(mat,row,vec)
580 ZMAT *mat;
581 ZVEC *vec;
582 int row;
583 {
584 u_int /* j, */ lim;
585
586 if ( mat==ZMNULL || vec==ZVNULL )
587 error(E_NULL,"zset_row");
588 if ( row < 0 || row >= mat->m )
589 error(E_RANGE,"zset_row");
590 lim = min(mat->n,vec->dim);
591 /* for ( j=j0; j<lim; j++ ) */
592 /* mat->me[row][j] = vec->ve[j]; */
593 MEMCOPY(vec->ve,mat->me[row],lim,complex);
594
595 return (mat);
596 }
597
598 /* zm_rand -- randomise a complex matrix; uniform in [0,1)+[0,1)*i */
599 ZMAT *zm_rand(A)
600 ZMAT *A;
601 {
602 int i;
603
604 if ( ! A )
605 error(E_NULL,"zm_rand");
606
607 for ( i = 0; i < A->m; i++ )
608 mrandlist((Real *)(A->me[i]),2*A->n);
609
610 return A;
611 }
+0
-282
interface/src/scilab/src/c/zmatrix.h less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* Main include file for zmeschach library -- complex vectors and matrices */
27
28 #ifndef ZMATRIXH
29 #define ZMATRIXH
30
31 #include "matrix.h"
32
33 /* Type definitions for complex vectors and matrices */
34
35
36 /* complex definition */
37 typedef struct {
38 Real re,im;
39 } complex;
40
41 /* complex vector definition */
42 typedef struct {
43 u_int dim, max_dim;
44 complex *ve;
45 } ZVEC;
46
47 /* complex matrix definition */
48 typedef struct {
49 u_int m, n;
50 u_int max_m, max_n, max_size;
51 complex *base; /* base is base of alloc'd mem */
52 complex **me;
53 } ZMAT;
54
55 #define ZVNULL ((ZVEC *)NULL)
56 #define ZMNULL ((ZMAT *)NULL)
57
58 #define Z_CONJ 1
59 #define Z_NOCONJ 0
60
61
62 /* memory functions */
63
64 #ifdef ANSI_C
65 int zv_get_vars(int dim,...);
66 int zm_get_vars(int m,int n,...);
67 int zv_resize_vars(int new_dim,...);
68 int zm_resize_vars(int m,int n,...);
69 int zv_free_vars(ZVEC **,...);
70 int zm_free_vars(ZMAT **,...);
71
72 #elif VARARGS
73 int zv_get_vars();
74 int zm_get_vars();
75 int zv_resize_vars();
76 int zm_resize_vars();
77 int zv_free_vars();
78 int zm_free_vars();
79
80 #endif
81
82
83
84
85 #ifdef ANSI_C
86 extern ZMAT *_zm_copy(ZMAT *in,ZMAT *out,u_int i0,u_int j0);
87 extern ZMAT * zm_move(ZMAT *, int, int, int, int, ZMAT *, int, int);
88 extern ZMAT *zvm_move(ZVEC *, int, ZMAT *, int, int, int, int);
89 extern ZVEC *_zv_copy(ZVEC *in,ZVEC *out,u_int i0);
90 extern ZVEC * zv_move(ZVEC *, int, int, ZVEC *, int);
91 extern ZVEC *zmv_move(ZMAT *, int, int, int, int, ZVEC *, int);
92 extern complex z_finput(FILE *fp);
93 extern ZMAT *zm_finput(FILE *fp,ZMAT *a);
94 extern ZVEC *zv_finput(FILE *fp,ZVEC *x);
95 extern ZMAT *zm_add(ZMAT *mat1,ZMAT *mat2,ZMAT *out);
96 extern ZMAT *zm_sub(ZMAT *mat1,ZMAT *mat2,ZMAT *out);
97 extern ZMAT *zm_mlt(ZMAT *A,ZMAT *B,ZMAT *OUT);
98 extern ZMAT *zmma_mlt(ZMAT *A,ZMAT *B,ZMAT *OUT);
99 extern ZMAT *zmam_mlt(ZMAT *A,ZMAT *B,ZMAT *OUT);
100 extern ZVEC *zmv_mlt(ZMAT *A,ZVEC *b,ZVEC *out);
101 extern ZMAT *zsm_mlt(complex scalar,ZMAT *matrix,ZMAT *out);
102 extern ZVEC *zvm_mlt(ZMAT *A,ZVEC *b,ZVEC *out);
103 extern ZMAT *zm_adjoint(ZMAT *in,ZMAT *out);
104 extern ZMAT *zswap_rows(ZMAT *A,int i,int j,int lo,int hi);
105 extern ZMAT *zswap_cols(ZMAT *A,int i,int j,int lo,int hi);
106 extern ZMAT *mz_mltadd(ZMAT *A1,ZMAT *A2,complex s,ZMAT *out);
107 extern ZVEC *zmv_mltadd(ZVEC *v1,ZVEC *v2,ZMAT *A,complex alpha,ZVEC *out);
108 extern ZVEC *zvm_mltadd(ZVEC *v1,ZVEC *v2,ZMAT *A,complex alpha,ZVEC *out);
109 extern ZVEC *zv_zero(ZVEC *x);
110 extern ZMAT *zm_zero(ZMAT *A);
111 extern ZMAT *zm_get(int m,int n);
112 extern ZVEC *zv_get(int dim);
113 extern ZMAT *zm_resize(ZMAT *A,int new_m,int new_n);
114 extern complex _zin_prod(ZVEC *x,ZVEC *y,u_int i0,u_int flag);
115 extern ZVEC *zv_resize(ZVEC *x,int new_dim);
116 extern ZVEC *zv_mlt(complex scalar,ZVEC *vector,ZVEC *out);
117 extern ZVEC *zv_add(ZVEC *vec1,ZVEC *vec2,ZVEC *out);
118 extern ZVEC *zv_mltadd(ZVEC *v1,ZVEC *v2,complex scale,ZVEC *out);
119 extern ZVEC *zv_sub(ZVEC *vec1,ZVEC *vec2,ZVEC *out);
120 #ifdef PROTOTYPES_IN_STRUCT
121 extern ZVEC *zv_map(complex (*f)(),ZVEC *x,ZVEC *out);
122 extern ZVEC *_zv_map(complex (*f)(),void *params,ZVEC *x,ZVEC *out);
123 #else
124 extern ZVEC *zv_map(complex (*f)(complex),ZVEC *x,ZVEC *out);
125 extern ZVEC *_zv_map(complex (*f)(void *,complex),void *params,ZVEC *x,ZVEC *out);
126 #endif
127 extern ZVEC *zv_lincomb(int n,ZVEC *v[],complex a[],ZVEC *out);
128 extern ZVEC *zv_linlist(ZVEC *out,ZVEC *v1,complex a1,...);
129 extern ZVEC *zv_star(ZVEC *x1, ZVEC *x2, ZVEC *out);
130 extern ZVEC *zv_slash(ZVEC *x1, ZVEC *x2, ZVEC *out);
131 extern int zm_free(ZMAT *mat);
132 extern int zv_free(ZVEC *vec);
133
134 extern ZVEC *zv_rand(ZVEC *x);
135 extern ZMAT *zm_rand(ZMAT *A);
136
137 extern ZVEC *zget_row(ZMAT *A, int i, ZVEC *out);
138 extern ZVEC *zget_col(ZMAT *A, int j, ZVEC *out);
139 extern ZMAT *zset_row(ZMAT *A, int i, ZVEC *in);
140 extern ZMAT *zset_col(ZMAT *A, int j, ZVEC *in);
141
142 extern ZVEC *px_zvec(PERM *pi, ZVEC *in, ZVEC *out);
143 extern ZVEC *pxinv_zvec(PERM *pi, ZVEC *in, ZVEC *out);
144
145 extern void __zconj__(complex zp[], int len);
146 extern complex __zip__(complex zp1[],complex zp2[],int len,int flag);
147 extern void __zmltadd__(complex zp1[],complex zp2[],
148 complex s,int len,int flag);
149 extern void __zmlt__(complex zp[],complex s,complex out[],int len);
150 extern void __zadd__(complex zp1[],complex zp2[],complex out[],int len);
151 extern void __zsub__(complex zp1[],complex zp2[],complex out[],int len);
152 extern void __zzero__(complex zp[],int len);
153 extern void z_foutput(FILE *fp,complex z);
154 extern void zm_foutput(FILE *fp,ZMAT *a);
155 extern void zv_foutput(FILE *fp,ZVEC *x);
156 extern void zm_dump(FILE *fp,ZMAT *a);
157 extern void zv_dump(FILE *fp,ZVEC *x);
158
159 extern double _zv_norm1(ZVEC *x, VEC *scale);
160 extern double _zv_norm2(ZVEC *x, VEC *scale);
161 extern double _zv_norm_inf(ZVEC *x, VEC *scale);
162 extern double zm_norm1(ZMAT *A);
163 extern double zm_norm_inf(ZMAT *A);
164 extern double zm_norm_frob(ZMAT *A);
165
166 complex zmake(double real, double imag);
167 double zabs(complex z);
168 complex zadd(complex z1,complex z2);
169 complex zsub(complex z1,complex z2);
170 complex zmlt(complex z1,complex z2);
171 complex zinv(complex z);
172 complex zdiv(complex z1,complex z2);
173 complex zsqrt(complex z);
174 complex zexp(complex z);
175 complex zlog(complex z);
176 complex zconj(complex z);
177 complex zneg(complex z);
178 #else
179 extern ZMAT *_zm_copy();
180 extern ZVEC *_zv_copy();
181 extern ZMAT *zm_finput();
182 extern ZVEC *zv_finput();
183 extern ZMAT *zm_add();
184 extern ZMAT *zm_sub();
185 extern ZMAT *zm_mlt();
186 extern ZMAT *zmma_mlt();
187 extern ZMAT *zmam_mlt();
188 extern ZVEC *zmv_mlt();
189 extern ZMAT *zsm_mlt();
190 extern ZVEC *zvm_mlt();
191 extern ZMAT *zm_adjoint();
192 extern ZMAT *zswap_rows();
193 extern ZMAT *zswap_cols();
194 extern ZMAT *mz_mltadd();
195 extern ZVEC *zmv_mltadd();
196 extern ZVEC *zvm_mltadd();
197 extern ZVEC *zv_zero();
198 extern ZMAT *zm_zero();
199 extern ZMAT *zm_get();
200 extern ZVEC *zv_get();
201 extern ZMAT *zm_resize();
202 extern ZVEC *zv_resize();
203 extern complex _zin_prod();
204 extern ZVEC *zv_mlt();
205 extern ZVEC *zv_add();
206 extern ZVEC *zv_mltadd();
207 extern ZVEC *zv_sub();
208 extern ZVEC *zv_map();
209 extern ZVEC *_zv_map();
210 extern ZVEC *zv_lincomb();
211 extern ZVEC *zv_linlist();
212 extern ZVEC *zv_star();
213 extern ZVEC *zv_slash();
214
215 extern ZVEC *px_zvec();
216 extern ZVEC *pxinv_zvec();
217
218 extern ZVEC *zv_rand();
219 extern ZMAT *zm_rand();
220
221 extern ZVEC *zget_row();
222 extern ZVEC *zget_col();
223 extern ZMAT *zset_row();
224 extern ZMAT *zset_col();
225
226 extern int zm_free();
227 extern int zv_free();
228 extern void __zconj__();
229 extern complex __zip__();
230 extern void __zmltadd__();
231 extern void __zmlt__();
232 extern void __zadd__();
233 extern void __zsub__();
234 extern void __zzero__();
235 extern void zm_foutput();
236 extern void zv_foutput();
237 extern void zm_dump();
238 extern void zv_dump();
239
240 extern double _zv_norm1();
241 extern double _zv_norm2();
242 extern double _zv_norm_inf();
243 extern double zm_norm1();
244 extern double zm_norm_inf();
245 extern double zm_norm_frob();
246
247 complex zmake();
248 double zabs();
249 complex zadd();
250 complex zsub();
251 complex zmlt();
252 complex zinv();
253 complex zdiv();
254 complex zsqrt();
255 complex zexp();
256 complex zlog();
257 complex zconj();
258 complex zneg();
259 #endif
260
261 #define zv_copy(x,y) _zv_copy(x,y,0)
262 #define zm_copy(A,B) _zm_copy(A,B,0,0)
263
264 #define z_input() z_finput(stdin)
265 #define zv_input(x) zv_finput(stdin,x)
266 #define zm_input(A) zm_finput(stdin,A)
267 #define z_output(z) z_foutput(stdout,z)
268 #define zv_output(x) zv_foutput(stdout,x)
269 #define zm_output(A) zm_foutput(stdout,A)
270
271 #define ZV_FREE(x) ( zv_free(x), (x) = ZVNULL )
272 #define ZM_FREE(A) ( zm_free(A), (A) = ZMNULL )
273
274 #define zin_prod(x,y) _zin_prod(x,y,0,Z_CONJ)
275
276 #define zv_norm1(x) _zv_norm1(x,VNULL)
277 #define zv_norm2(x) _zv_norm2(x,VNULL)
278 #define zv_norm_inf(x) _zv_norm_inf(x,VNULL)
279
280
281 #endif
+0
-118
interface/src/scilab/src/c/zmatrix2.h less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 2nd header file for Meschach's complex routines.
28 This file contains declarations for complex factorisation/solve
29 routines.
30
31 */
32
33
34 #ifndef ZMATRIX2H
35 #define ZMATRIX2H
36
37 #include "zmatrix.h"
38
39 #ifdef ANSI_C
40 extern ZVEC *zUsolve(ZMAT *matrix, ZVEC *b, ZVEC *out, double diag);
41 extern ZVEC *zLsolve(ZMAT *matrix, ZVEC *b, ZVEC *out, double diag);
42 extern ZVEC *zUAsolve(ZMAT *U, ZVEC *b, ZVEC *out, double diag);
43 extern ZVEC *zDsolve(ZMAT *A, ZVEC *b, ZVEC *x);
44 extern ZVEC *zLAsolve(ZMAT *L, ZVEC *b, ZVEC *out, double diag);
45
46 extern ZVEC *zhhvec(ZVEC *,int,Real *,ZVEC *,complex *);
47 extern ZVEC *zhhtrvec(ZVEC *,double,int,ZVEC *,ZVEC *);
48 extern ZMAT *zhhtrrows(ZMAT *,int,int,ZVEC *,double);
49 extern ZMAT *zhhtrcols(ZMAT *,int,int,ZVEC *,double);
50 extern ZMAT *zHfactor(ZMAT *,ZVEC *);
51 extern ZMAT *zHQunpack(ZMAT *,ZVEC *,ZMAT *,ZMAT *);
52
53 extern ZMAT *zQRfactor(ZMAT *A, ZVEC *diag);
54 extern ZMAT *zQRCPfactor(ZMAT *A, ZVEC *diag, PERM *px);
55 extern ZVEC *_zQsolve(ZMAT *QR, ZVEC *diag, ZVEC *b, ZVEC *x, ZVEC *tmp);
56 extern ZMAT *zmakeQ(ZMAT *QR, ZVEC *diag, ZMAT *Qout);
57 extern ZMAT *zmakeR(ZMAT *QR, ZMAT *Rout);
58 extern ZVEC *zQRsolve(ZMAT *QR, ZVEC *diag, ZVEC *b, ZVEC *x);
59 extern ZVEC *zQRAsolve(ZMAT *QR, ZVEC *diag, ZVEC *b, ZVEC *x);
60 extern ZVEC *zQRCPsolve(ZMAT *QR,ZVEC *diag,PERM *pivot,ZVEC *b,ZVEC *x);
61 extern ZVEC *zUmlt(ZMAT *U, ZVEC *x, ZVEC *out);
62 extern ZVEC *zUAmlt(ZMAT *U, ZVEC *x, ZVEC *out);
63 extern double zQRcondest(ZMAT *QR);
64
65 extern ZVEC *zLsolve(ZMAT *, ZVEC *, ZVEC *, double);
66 extern ZMAT *zset_col(ZMAT *, int, ZVEC *);
67
68 extern ZMAT *zLUfactor(ZMAT *A, PERM *pivot);
69 extern ZVEC *zLUsolve(ZMAT *A, PERM *pivot, ZVEC *b, ZVEC *x);
70 extern ZVEC *zLUAsolve(ZMAT *LU, PERM *pivot, ZVEC *b, ZVEC *x);
71 extern ZMAT *zm_inverse(ZMAT *A, ZMAT *out);
72 extern double zLUcondest(ZMAT *LU, PERM *pivot);
73
74 extern void zgivens(complex, complex, Real *, complex *);
75 extern ZMAT *zrot_rows(ZMAT *A, int i, int k, double c, complex s,
76 ZMAT *out);
77 extern ZMAT *zrot_cols(ZMAT *A, int i, int k, double c, complex s,
78 ZMAT *out);
79 extern ZVEC *rot_zvec(ZVEC *x, int i, int k, double c, complex s,
80 ZVEC *out);
81 extern ZMAT *zschur(ZMAT *A,ZMAT *Q);
82 /* extern ZMAT *schur_vecs(ZMAT *T,ZMAT *Q,X_re,X_im) */
83 #else
84 extern ZVEC *zUsolve(), *zLsolve(), *zUAsolve(), *zDsolve(), *zLAsolve();
85
86 extern ZVEC *zhhvec();
87 extern ZVEC *zhhtrvec();
88 extern ZMAT *zhhtrrows();
89 extern ZMAT *zhhtrcols();
90 extern ZMAT *zHfactor();
91 extern ZMAT *zHQunpack();
92
93
94 extern ZMAT *zQRfactor(), *zQRCPfactor();
95 extern ZVEC *_zQsolve();
96 extern ZMAT *zmakeQ(), *zmakeR();
97 extern ZVEC *zQRsolve(), *zQRAsolve(), *zQRCPsolve();
98 extern ZVEC *zUmlt(), *zUAmlt();
99 extern double zQRcondest();
100
101 extern ZVEC *zLsolve();
102 extern ZMAT *zset_col();
103
104 extern ZMAT *zLUfactor();
105 extern ZVEC *zLUsolve(), *zLUAsolve();
106 extern ZMAT *zm_inverse();
107 extern double zLUcondest();
108
109 extern void zgivens();
110 extern ZMAT *zrot_rows(), *zrot_cols();
111 extern ZVEC *rot_zvec();
112 extern ZMAT *zschur();
113 /* extern ZMAT *schur_vecs(); */
114 #endif
115
116 #endif
117
+0
-713
interface/src/scilab/src/c/zmemory.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /* Memory allocation and de-allocation for complex matrices and vectors */
27
28 #include <stdio.h>
29 #include "zmatrix.h"
30
31 static char rcsid[] = "$Id: zmemory.c 3690 2010-09-02 09:55:19Z lsaavedr $";
32
33
34
35 /* zv_zero -- zeros all entries of a complex vector
36 -- uses __zzero__() */
37 ZVEC *zv_zero(x)
38 ZVEC *x;
39 {
40 if ( ! x )
41 error(E_NULL,"zv_zero");
42 __zzero__(x->ve,x->dim);
43
44 return x;
45 }
46
47 /* zm_zero -- zeros all entries of a complex matrix
48 -- uses __zzero__() */
49 ZMAT *zm_zero(A)
50 ZMAT *A;
51 {
52 int i;
53
54 if ( ! A )
55 error(E_NULL,"zm_zero");
56 for ( i = 0; i < A->m; i++ )
57 __zzero__(A->me[i],A->n);
58
59 return A;
60 }
61
62 /* zm_get -- gets an mxn complex matrix (in ZMAT form) */
63 ZMAT *zm_get(m,n)
64 int m,n;
65 {
66 ZMAT *matrix;
67 u_int i;
68
69 if (m < 0 || n < 0)
70 error(E_NEG,"zm_get");
71
72 if ((matrix=NEW(ZMAT)) == (ZMAT *)NULL )
73 error(E_MEM,"zm_get");
74 else if (mem_info_is_on()) {
75 mem_bytes(TYPE_ZMAT,0,sizeof(ZMAT));
76 mem_numvar(TYPE_ZMAT,1);
77 }
78
79 matrix->m = m; matrix->n = matrix->max_n = n;
80 matrix->max_m = m; matrix->max_size = m*n;
81 #ifndef SEGMENTED
82 if ((matrix->base = NEW_A(m*n,complex)) == (complex *)NULL )
83 {
84 free(matrix);
85 error(E_MEM,"zm_get");
86 }
87 else if (mem_info_is_on()) {
88 mem_bytes(TYPE_ZMAT,0,m*n*sizeof(complex));
89 }
90 #else
91 matrix->base = (complex *)NULL;
92 #endif
93 if ((matrix->me = (complex **)calloc(m,sizeof(complex *))) ==
94 (complex **)NULL )
95 { free(matrix->base); free(matrix);
96 error(E_MEM,"zm_get");
97 }
98 else if (mem_info_is_on()) {
99 mem_bytes(TYPE_ZMAT,0,m*sizeof(complex *));
100 }
101 #ifndef SEGMENTED
102 /* set up pointers */
103 for ( i=0; i<m; i++ )
104 matrix->me[i] = &(matrix->base[i*n]);
105 #else
106 for ( i = 0; i < m; i++ )
107 if ( (matrix->me[i]=NEW_A(n,complex)) == (complex *)NULL )
108 error(E_MEM,"zm_get");
109 else if (mem_info_is_on()) {
110 mem_bytes(TYPE_ZMAT,0,n*sizeof(complex));
111 }
112 #endif
113
114 return (matrix);
115 }
116
117
118 /* zv_get -- gets a ZVEC of dimension 'dim'
119 -- Note: initialized to zero */
120 ZVEC *zv_get(size)
121 int size;
122 {
123 ZVEC *vector;
124
125 if (size < 0)
126 error(E_NEG,"zv_get");
127
128 if ((vector=NEW(ZVEC)) == (ZVEC *)NULL )
129 error(E_MEM,"zv_get");
130 else if (mem_info_is_on()) {
131 mem_bytes(TYPE_ZVEC,0,sizeof(ZVEC));
132 mem_numvar(TYPE_ZVEC,1);
133 }
134 vector->dim = vector->max_dim = size;
135 if ((vector->ve=NEW_A(size,complex)) == (complex *)NULL )
136 {
137 free(vector);
138 error(E_MEM,"zv_get");
139 }
140 else if (mem_info_is_on()) {
141 mem_bytes(TYPE_ZVEC,0,size*sizeof(complex));
142 }
143 return (vector);
144 }
145
146 /* zm_free -- returns ZMAT & asoociated memory back to memory heap */
147 int zm_free(mat)
148 ZMAT *mat;
149 {
150 #ifdef SEGMENTED
151 int i;
152 #endif
153
154 if ( mat==(ZMAT *)NULL || (int)(mat->m) < 0 ||
155 (int)(mat->n) < 0 )
156 /* don't trust it */
157 return (-1);
158
159 #ifndef SEGMENTED
160 if ( mat->base != (complex *)NULL ) {
161 if (mem_info_is_on()) {
162 mem_bytes(TYPE_ZMAT,mat->max_m*mat->max_n*sizeof(complex),0);
163 }
164 free((char *)(mat->base));
165 }
166 #else
167 for ( i = 0; i < mat->max_m; i++ )
168 if ( mat->me[i] != (complex *)NULL ) {
169 if (mem_info_is_on()) {
170 mem_bytes(TYPE_ZMAT,mat->max_n*sizeof(complex),0);
171 }
172 free((char *)(mat->me[i]));
173 }
174 #endif
175 if ( mat->me != (complex **)NULL ) {
176 if (mem_info_is_on()) {
177 mem_bytes(TYPE_ZMAT,mat->max_m*sizeof(complex *),0);
178 }
179 free((char *)(mat->me));
180 }
181
182 if (mem_info_is_on()) {
183 mem_bytes(TYPE_ZMAT,sizeof(ZMAT),0);
184 mem_numvar(TYPE_ZMAT,-1);
185 }
186 free((char *)mat);
187
188 return (0);
189 }
190
191
192 /* zv_free -- returns ZVEC & asoociated memory back to memory heap */
193 int zv_free(vec)
194 ZVEC *vec;
195 {
196 if ( vec==(ZVEC *)NULL || (int)(vec->dim) < 0 )
197 /* don't trust it */
198 return (-1);
199
200 if ( vec->ve == (complex *)NULL ) {
201 if (mem_info_is_on()) {
202 mem_bytes(TYPE_ZVEC,sizeof(ZVEC),0);
203 mem_numvar(TYPE_ZVEC,-1);
204 }
205 free((char *)vec);
206 }
207 else
208 {
209 if (mem_info_is_on()) {
210 mem_bytes(TYPE_ZVEC,vec->max_dim*sizeof(complex)+
211 sizeof(ZVEC),0);
212 mem_numvar(TYPE_ZVEC,-1);
213 }
214
215 free((char *)vec->ve);
216 free((char *)vec);
217 }
218
219 return (0);
220 }
221
222
223 /* zm_resize -- returns the matrix A of size new_m x new_n; A is zeroed
224 -- if A == NULL on entry then the effect is equivalent to m_get() */
225 ZMAT *zm_resize(A,new_m,new_n)
226 ZMAT *A;
227 int new_m, new_n;
228 {
229 u_int i, new_max_m, new_max_n, new_size, old_m, old_n;
230
231 if (new_m < 0 || new_n < 0)
232 error(E_NEG,"zm_resize");
233
234 if ( ! A )
235 return zm_get(new_m,new_n);
236
237 if (new_m == A->m && new_n == A->n)
238 return A;
239
240 old_m = A->m; old_n = A->n;
241 if ( new_m > A->max_m )
242 { /* re-allocate A->me */
243 if (mem_info_is_on()) {
244 mem_bytes(TYPE_ZMAT,A->max_m*sizeof(complex *),
245 new_m*sizeof(complex *));
246 }
247
248 A->me = RENEW(A->me,new_m,complex *);
249 if ( ! A->me )
250 error(E_MEM,"zm_resize");
251 }
252 new_max_m = max(new_m,A->max_m);
253 new_max_n = max(new_n,A->max_n);
254
255 #ifndef SEGMENTED
256 new_size = new_max_m*new_max_n;
257 if ( new_size > A->max_size )
258 { /* re-allocate A->base */
259 if (mem_info_is_on()) {
260 mem_bytes(TYPE_ZMAT,A->max_m*A->max_n*sizeof(complex),
261 new_size*sizeof(complex));
262 }
263
264 A->base = RENEW(A->base,new_size,complex);
265 if ( ! A->base )
266 error(E_MEM,"zm_resize");
267 A->max_size = new_size;
268 }
269
270 /* now set up A->me[i] */
271 for ( i = 0; i < new_m; i++ )
272 A->me[i] = &(A->base[i*new_n]);
273
274 /* now shift data in matrix */
275 if ( old_n > new_n )
276 {
277 for ( i = 1; i < min(old_m,new_m); i++ )
278 MEM_COPY((char *)&(A->base[i*old_n]),
279 (char *)&(A->base[i*new_n]),
280 sizeof(complex)*new_n);
281 }
282 else if ( old_n < new_n )
283 {
284 for ( i = min(old_m,new_m)-1; i > 0; i-- )
285 { /* copy & then zero extra space */
286 MEM_COPY((char *)&(A->base[i*old_n]),
287 (char *)&(A->base[i*new_n]),
288 sizeof(complex)*old_n);
289 __zzero__(&(A->base[i*new_n+old_n]),(new_n-old_n));
290 }
291 __zzero__(&(A->base[old_n]),(new_n-old_n));
292 A->max_n = new_n;
293 }
294 /* zero out the new rows.. */
295 for ( i = old_m; i < new_m; i++ )
296 __zzero__(&(A->base[i*new_n]),new_n);
297 #else
298 if ( A->max_n < new_n )
299 {
300 complex *tmp;
301
302 for ( i = 0; i < A->max_m; i++ )
303 {
304 if (mem_info_is_on()) {
305 mem_bytes(TYPE_ZMAT,A->max_n*sizeof(complex),
306 new_max_n*sizeof(complex));
307 }
308
309 if ( (tmp = RENEW(A->me[i],new_max_n,complex)) == NULL )
310 error(E_MEM,"zm_resize");
311 else {
312 A->me[i] = tmp;
313 }
314 }
315 for ( i = A->max_m; i < new_max_m; i++ )
316 {
317 if ( (tmp = NEW_A(new_max_n,complex)) == NULL )
318 error(E_MEM,"zm_resize");
319 else {
320 A->me[i] = tmp;
321 if (mem_info_is_on()) {
322 mem_bytes(TYPE_ZMAT,0,new_max_n*sizeof(complex));
323 }
324 }
325 }
326 }
327 else if ( A->max_m < new_m )
328 {
329 for ( i = A->max_m; i < new_m; i++ )
330 if ( (A->me[i] = NEW_A(new_max_n,complex)) == NULL )
331 error(E_MEM,"zm_resize");
332 else if (mem_info_is_on()) {
333 mem_bytes(TYPE_ZMAT,0,new_max_n*sizeof(complex));
334 }
335
336 }
337
338 if ( old_n < new_n )
339 {
340 for ( i = 0; i < old_m; i++ )
341 __zzero__(&(A->me[i][old_n]),new_n-old_n);
342 }
343
344 /* zero out the new rows.. */
345 for ( i = old_m; i < new_m; i++ )
346 __zzero__(A->me[i],new_n);
347 #endif
348
349 A->max_m = new_max_m;
350 A->max_n = new_max_n;
351 A->max_size = A->max_m*A->max_n;
352 A->m = new_m; A->n = new_n;
353
354 return A;
355 }
356
357
358 /* zv_resize -- returns the (complex) vector x with dim new_dim
359 -- x is set to the zero vector */
360 ZVEC *zv_resize(x,new_dim)
361 ZVEC *x;
362 int new_dim;
363 {
364 if (new_dim < 0)
365 error(E_NEG,"zv_resize");
366
367 if ( ! x )
368 return zv_get(new_dim);
369
370 if (new_dim == x->dim)
371 return x;
372
373 if ( x->max_dim == 0 ) /* assume that it's from sub_zvec */
374 return zv_get(new_dim);
375
376 if ( new_dim > x->max_dim )
377 {
378 if (mem_info_is_on()) {
379 mem_bytes(TYPE_ZVEC,x->max_dim*sizeof(complex),
380 new_dim*sizeof(complex));
381 }
382
383 x->ve = RENEW(x->ve,new_dim,complex);
384 if ( ! x->ve )
385 error(E_MEM,"zv_resize");
386 x->max_dim = new_dim;
387 }
388
389 if ( new_dim > x->dim )
390 __zzero__(&(x->ve[x->dim]),new_dim - x->dim);
391 x->dim = new_dim;
392
393 return x;
394 }
395
396
397 /* varying arguments */
398
399 #ifdef ANSI_C
400
401 #include <stdarg.h>
402
403
404 /* To allocate memory to many arguments.
405 The function should be called:
406 zv_get_vars(dim,&x,&y,&z,...,NULL);
407 where
408 int dim;
409 ZVEC *x, *y, *z,...;
410 The last argument should be NULL !
411 dim is the length of vectors x,y,z,...
412 returned value is equal to the number of allocated variables
413 Other gec_... functions are similar.
414 */
415
416 int zv_get_vars(int dim,...)
417 {
418 va_list ap;
419 int i=0;
420 ZVEC **par;
421
422 va_start(ap, dim);
423 while (par = va_arg(ap,ZVEC **)) { /* NULL ends the list*/
424 *par = zv_get(dim);
425 i++;
426 }
427
428 va_end(ap);
429 return i;
430 }
431
432
433
434 int zm_get_vars(int m,int n,...)
435 {
436 va_list ap;
437 int i=0;
438 ZMAT **par;
439
440 va_start(ap, n);
441 while (par = va_arg(ap,ZMAT **)) { /* NULL ends the list*/
442 *par = zm_get(m,n);
443 i++;
444 }
445
446 va_end(ap);
447 return i;
448 }
449
450
451
452 /* To resize memory for many arguments.
453 The function should be called:
454 v_resize_vars(new_dim,&x,&y,&z,...,NULL);
455 where
456 int new_dim;
457 ZVEC *x, *y, *z,...;
458 The last argument should be NULL !
459 rdim is the resized length of vectors x,y,z,...
460 returned value is equal to the number of allocated variables.
461 If one of x,y,z,.. arguments is NULL then memory is allocated to this
462 argument.
463 Other *_resize_list() functions are similar.
464 */
465
466 int zv_resize_vars(int new_dim,...)
467 {
468 va_list ap;
469 int i=0;
470 ZVEC **par;
471
472 va_start(ap, new_dim);
473 while (par = va_arg(ap,ZVEC **)) { /* NULL ends the list*/
474 *par = zv_resize(*par,new_dim);
475 i++;
476 }
477
478 va_end(ap);
479 return i;
480 }
481
482
483
484 int zm_resize_vars(int m,int n,...)
485 {
486 va_list ap;
487 int i=0;
488 ZMAT **par;
489
490 va_start(ap, n);
491 while (par = va_arg(ap,ZMAT **)) { /* NULL ends the list*/
492 *par = zm_resize(*par,m,n);
493 i++;
494 }
495
496 va_end(ap);
497 return i;
498 }
499
500
501 /* To deallocate memory for many arguments.
502 The function should be called:
503 v_free_vars(&x,&y,&z,...,NULL);
504 where
505 ZVEC *x, *y, *z,...;
506 The last argument should be NULL !
507 There must be at least one not NULL argument.
508 returned value is equal to the number of allocated variables.
509 Returned value of x,y,z,.. is VNULL.
510 Other *_free_list() functions are similar.
511 */
512
513 int zv_free_vars(ZVEC **pv,...)
514 {
515 va_list ap;
516 int i=1;
517 ZVEC **par;
518
519 zv_free(*pv);
520 *pv = ZVNULL;
521 va_start(ap, pv);
522 while (par = va_arg(ap,ZVEC **)) { /* NULL ends the list*/
523 zv_free(*par);
524 *par = ZVNULL;
525 i++;
526 }
527
528 va_end(ap);
529 return i;
530 }
531
532
533
534 int zm_free_vars(ZMAT **va,...)
535 {
536 va_list ap;
537 int i=1;
538 ZMAT **par;
539
540 zm_free(*va);
541 *va = ZMNULL;
542 va_start(ap, va);
543 while (par = va_arg(ap,ZMAT **)) { /* NULL ends the list*/
544 zm_free(*par);
545 *par = ZMNULL;
546 i++;
547 }
548
549 va_end(ap);
550 return i;
551 }
552
553
554
555 #elif VARARGS
556
557 #include <varargs.h>
558
559 /* To allocate memory to many arguments.
560 The function should be called:
561 v_get_vars(dim,&x,&y,&z,...,NULL);
562 where
563 int dim;
564 ZVEC *x, *y, *z,...;
565 The last argument should be NULL !
566 dim is the length of vectors x,y,z,...
567 returned value is equal to the number of allocated variables
568 Other gec_... functions are similar.
569 */
570
571 int zv_get_vars(va_alist) va_dcl
572 {
573 va_list ap;
574 int dim,i=0;
575 ZVEC **par;
576
577 va_start(ap);
578 dim = va_arg(ap,int);
579 while (par = va_arg(ap,ZVEC **)) { /* NULL ends the list*/
580 *par = zv_get(dim);
581 i++;
582 }
583
584 va_end(ap);
585 return i;
586 }
587
588
589
590 int zm_get_vars(va_alist) va_dcl
591 {
592 va_list ap;
593 int i=0, n, m;
594 ZMAT **par;
595
596 va_start(ap);
597 m = va_arg(ap,int);
598 n = va_arg(ap,int);
599 while (par = va_arg(ap,ZMAT **)) { /* NULL ends the list*/
600 *par = zm_get(m,n);
601 i++;
602 }
603
604 va_end(ap);
605 return i;
606 }
607
608
609
610 /* To resize memory for many arguments.
611 The function should be called:
612 v_resize_vars(new_dim,&x,&y,&z,...,NULL);
613 where
614 int new_dim;
615 ZVEC *x, *y, *z,...;
616 The last argument should be NULL !
617 rdim is the resized length of vectors x,y,z,...
618 returned value is equal to the number of allocated variables.
619 If one of x,y,z,.. arguments is NULL then memory is allocated to this
620 argument.
621 Other *_resize_list() functions are similar.
622 */
623
624 int zv_resize_vars(va_alist) va_dcl
625 {
626 va_list ap;
627 int i=0, new_dim;
628 ZVEC **par;
629
630 va_start(ap);
631 new_dim = va_arg(ap,int);
632 while (par = va_arg(ap,ZVEC **)) { /* NULL ends the list*/
633 *par = zv_resize(*par,new_dim);
634 i++;
635 }
636
637 va_end(ap);
638 return i;
639 }
640
641
642 int zm_resize_vars(va_alist) va_dcl
643 {
644 va_list ap;
645 int i=0, m, n;
646 ZMAT **par;
647
648 va_start(ap);
649 m = va_arg(ap,int);
650 n = va_arg(ap,int);
651 while (par = va_arg(ap,ZMAT **)) { /* NULL ends the list*/
652 *par = zm_resize(*par,m,n);
653 i++;
654 }
655
656 va_end(ap);
657 return i;
658 }
659
660
661
662 /* To deallocate memory for many arguments.
663 The function should be called:
664 v_free_vars(&x,&y,&z,...,NULL);
665 where
666 ZVEC *x, *y, *z,...;
667 The last argument should be NULL !
668 There must be at least one not NULL argument.
669 returned value is equal to the number of allocated variables.
670 Returned value of x,y,z,.. is VNULL.
671 Other *_free_list() functions are similar.
672 */
673
674 int zv_free_vars(va_alist) va_dcl
675 {
676 va_list ap;
677 int i=0;
678 ZVEC **par;
679
680 va_start(ap);
681 while (par = va_arg(ap,ZVEC **)) { /* NULL ends the list*/
682 zv_free(*par);
683 *par = ZVNULL;
684 i++;
685 }
686
687 va_end(ap);
688 return i;
689 }
690
691
692
693 int zm_free_vars(va_alist) va_dcl
694 {
695 va_list ap;
696 int i=0;
697 ZMAT **par;
698
699 va_start(ap);
700 while (par = va_arg(ap,ZMAT **)) { /* NULL ends the list*/
701 zm_free(*par);
702 *par = ZMNULL;
703 i++;
704 }
705
706 va_end(ap);
707 return i;
708 }
709
710
711 #endif
712
+0
-208
interface/src/scilab/src/c/znorm.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 A collection of functions for computing norms: scaled and unscaled
28 Complex version
29 */
30 static char rcsid[] = "$Id: znorm.c 3690 2010-09-02 09:55:19Z lsaavedr $";
31
32 #include <stdio.h>
33 #include "zmatrix.h"
34 #include <math.h>
35
36
37
38 /* _zv_norm1 -- computes (scaled) 1-norms of vectors */
39 double _zv_norm1(x,scale)
40 ZVEC *x;
41 VEC *scale;
42 {
43 int i, dim;
44 Real s, sum;
45
46 if ( x == ZVNULL )
47 error(E_NULL,"_zv_norm1");
48 dim = x->dim;
49
50 sum = 0.0;
51 if ( scale == VNULL )
52 for ( i = 0; i < dim; i++ )
53 sum += zabs(x->ve[i]);
54 else if ( scale->dim < dim )
55 error(E_SIZES,"_zv_norm1");
56 else
57 for ( i = 0; i < dim; i++ )
58 {
59 s = scale->ve[i];
60 sum += ( s== 0.0 ) ? zabs(x->ve[i]) : zabs(x->ve[i])/fabs(s);
61 }
62
63 return sum;
64 }
65
66 /* square -- returns x^2 */
67 /******************************
68 double square(x)
69 double x;
70 { return x*x; }
71 ******************************/
72
73 #define square(x) ((x)*(x))
74
75 /* _zv_norm2 -- computes (scaled) 2-norm (Euclidean norm) of vectors */
76 double _zv_norm2(x,scale)
77 ZVEC *x;
78 VEC *scale;
79 {
80 int i, dim;
81 Real s, sum;
82
83 if ( x == ZVNULL )
84 error(E_NULL,"_zv_norm2");
85 dim = x->dim;
86
87 sum = 0.0;
88 if ( scale == VNULL )
89 for ( i = 0; i < dim; i++ )
90 sum += square(x->ve[i].re) + square(x->ve[i].im);
91 else if ( scale->dim < dim )
92 error(E_SIZES,"_v_norm2");
93 else
94 for ( i = 0; i < dim; i++ )
95 {
96 s = scale->ve[i];
97 sum += ( s== 0.0 ) ? square(x->ve[i].re) + square(x->ve[i].im) :
98 (square(x->ve[i].re) + square(x->ve[i].im))/square(s);
99 }
100
101 return sqrt(sum);
102 }
103
104 #define max(a,b) ((a) > (b) ? (a) : (b))
105
106 /* _zv_norm_inf -- computes (scaled) infinity-norm (supremum norm) of vectors */
107 double _zv_norm_inf(x,scale)
108 ZVEC *x;
109 VEC *scale;
110 {
111 int i, dim;
112 Real s, maxval, tmp;
113
114 if ( x == ZVNULL )
115 error(E_NULL,"_zv_norm_inf");
116 dim = x->dim;
117
118 maxval = 0.0;
119 if ( scale == VNULL )
120 for ( i = 0; i < dim; i++ )
121 {
122 tmp = zabs(x->ve[i]);
123 maxval = max(maxval,tmp);
124 }
125 else if ( scale->dim < dim )
126 error(E_SIZES,"_zv_norm_inf");
127 else
128 for ( i = 0; i < dim; i++ )
129 {
130 s = scale->ve[i];
131 tmp = ( s == 0.0 ) ? zabs(x->ve[i]) : zabs(x->ve[i])/fabs(s);
132 maxval = max(maxval,tmp);
133 }
134
135 return maxval;
136 }
137
138 /* zm_norm1 -- compute matrix 1-norm -- unscaled
139 -- complex version */
140 double zm_norm1(A)
141 ZMAT *A;
142 {
143 int i, j, m, n;
144 Real maxval, sum;
145
146 if ( A == ZMNULL )
147 error(E_NULL,"zm_norm1");
148
149 m = A->m; n = A->n;
150 maxval = 0.0;
151
152 for ( j = 0; j < n; j++ )
153 {
154 sum = 0.0;
155 for ( i = 0; i < m; i ++ )
156 sum += zabs(A->me[i][j]);
157 maxval = max(maxval,sum);
158 }
159
160 return maxval;
161 }
162
163 /* zm_norm_inf -- compute matrix infinity-norm -- unscaled
164 -- complex version */
165 double zm_norm_inf(A)
166 ZMAT *A;
167 {
168 int i, j, m, n;
169 Real maxval, sum;
170
171 if ( A == ZMNULL )
172 error(E_NULL,"zm_norm_inf");
173
174 m = A->m; n = A->n;
175 maxval = 0.0;
176
177 for ( i = 0; i < m; i++ )
178 {
179 sum = 0.0;
180 for ( j = 0; j < n; j ++ )
181 sum += zabs(A->me[i][j]);
182 maxval = max(maxval,sum);
183 }
184
185 return maxval;
186 }
187
188 /* zm_norm_frob -- compute matrix frobenius-norm -- unscaled */
189 double zm_norm_frob(A)
190 ZMAT *A;
191 {
192 int i, j, m, n;
193 Real sum;
194
195 if ( A == ZMNULL )
196 error(E_NULL,"zm_norm_frob");
197
198 m = A->m; n = A->n;
199 sum = 0.0;
200
201 for ( i = 0; i < m; i++ )
202 for ( j = 0; j < n; j ++ )
203 sum += square(A->me[i][j].re) + square(A->me[i][j].im);
204
205 return sqrt(sum);
206 }
207
+0
-525
interface/src/scilab/src/c/zqrfctr.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25 /*
26 This file contains the routines needed to perform QR factorisation
27 of matrices, as well as Householder transformations.
28 The internal "factored form" of a matrix A is not quite standard.
29 The diagonal of A is replaced by the diagonal of R -- not by the 1st non-zero
30 entries of the Householder vectors. The 1st non-zero entries are held in
31 the diag parameter of QRfactor(). The reason for this non-standard
32 representation is that it enables direct use of the Usolve() function
33 rather than requiring that a seperate function be written just for this case.
34 See, e.g., QRsolve() below for more details.
35
36 Complex version
37
38 */
39
40 static char rcsid[] = "$Id: zqrfctr.c 3865 2011-11-02 06:38:43Z ycollet $";
41
42 #include <stdio.h>
43 #include <math.h>
44
45 #include "zmatrix.h"
46 #include "zmatrix2.h"
47
48 #define is_zero(z) ((z).re == 0.0 && (z).im == 0.0)
49
50
51 #define sign(x) ((x) > 0.0 ? 1 : ((x) < 0.0 ? -1 : 0 ))
52
53 /* Note: The usual representation of a Householder transformation is taken
54 to be:
55 P = I - beta.u.u*
56 where beta = 2/(u*.u) and u is called the Householder vector
57 (u* is the conjugate transposed vector of u
58 */
59
60 /* zQRfactor -- forms the QR factorisation of A
61 -- factorisation stored in compact form as described above
62 (not quite standard format) */
63 ZMAT *zQRfactor(A,diag)
64 ZMAT *A;
65 ZVEC *diag;
66 {
67 u_int k,limit;
68 Real beta;
69 static ZVEC *tmp1=ZVNULL;
70
71 if ( ! A || ! diag )
72 error(E_NULL,"zQRfactor");
73 limit = min(A->m,A->n);
74 if ( diag->dim < limit )
75 error(E_SIZES,"zQRfactor");
76
77 tmp1 = zv_resize(tmp1,A->m);
78 MEM_STAT_REG(tmp1,TYPE_ZVEC);
79
80 for ( k=0; k<limit; k++ )
81 {
82 /* get H/holder vector for the k-th column */
83 zget_col(A,k,tmp1);
84 /* hhvec(tmp1,k,&beta->ve[k],tmp1,&A->me[k][k]); */
85 zhhvec(tmp1,k,&beta,tmp1,&A->me[k][k]);
86 diag->ve[k] = tmp1->ve[k];
87
88 /* apply H/holder vector to remaining columns */
89 /* hhtrcols(A,k,k+1,tmp1,beta->ve[k]); */
90 tracecatch(zhhtrcols(A,k,k+1,tmp1,beta),"zQRfactor");
91 }
92
93 return (A);
94 }
95
96 /* zQRCPfactor -- forms the QR factorisation of A with column pivoting
97 -- factorisation stored in compact form as described above
98 ( not quite standard format ) */
99 ZMAT *zQRCPfactor(A,diag,px)
100 ZMAT *A;
101 ZVEC *diag;
102 PERM *px;
103 {
104 u_int i, i_max, j, k, limit;
105 static ZVEC *tmp1=ZVNULL, *tmp2=ZVNULL;
106 static VEC *gamma=VNULL;
107 Real beta;
108 Real maxgamma, sum, tmp;
109 complex ztmp;
110
111 if ( ! A || ! diag || ! px )
112 error(E_NULL,"QRCPfactor");
113 limit = min(A->m,A->n);
114 if ( diag->dim < limit || px->size != A->n )
115 error(E_SIZES,"QRCPfactor");
116
117 tmp1 = zv_resize(tmp1,A->m);
118 tmp2 = zv_resize(tmp2,A->m);
119 gamma = v_resize(gamma,A->n);
120 MEM_STAT_REG(tmp1,TYPE_ZVEC);
121 MEM_STAT_REG(tmp2,TYPE_ZVEC);
122 MEM_STAT_REG(gamma,TYPE_VEC);
123
124 /* initialise gamma and px */
125 for ( j=0; j<A->n; j++ )
126 {
127 px->pe[j] = j;
128 sum = 0.0;
129 for ( i=0; i<A->m; i++ )
130 sum += square(A->me[i][j].re) + square(A->me[i][j].im);
131 gamma->ve[j] = sum;
132 }
133
134 for ( k=0; k<limit; k++ )
135 {
136 /* find "best" column to use */
137 i_max = k; maxgamma = gamma->ve[k];
138 for ( i=k+1; i<A->n; i++ )
139 /* Loop invariant:maxgamma=gamma[i_max]
140 >=gamma[l];l=k,...,i-1 */
141 if ( gamma->ve[i] > maxgamma )
142 { maxgamma = gamma->ve[i]; i_max = i; }
143
144 /* swap columns if necessary */
145 if ( i_max != k )
146 {
147 /* swap gamma values */
148 tmp = gamma->ve[k];
149 gamma->ve[k] = gamma->ve[i_max];
150 gamma->ve[i_max] = tmp;
151
152 /* update column permutation */
153 px_transp(px,k,i_max);
154
155 /* swap columns of A */
156 for ( i=0; i<A->m; i++ )
157 {
158 ztmp = A->me[i][k];
159 A->me[i][k] = A->me[i][i_max];
160 A->me[i][i_max] = ztmp;
161 }
162 }
163
164 /* get H/holder vector for the k-th column */
165 zget_col(A,k,tmp1);
166 /* hhvec(tmp1,k,&beta->ve[k],tmp1,&A->me[k][k]); */
167 zhhvec(tmp1,k,&beta,tmp1,&A->me[k][k]);
168 diag->ve[k] = tmp1->ve[k];
169
170 /* apply H/holder vector to remaining columns */
171 /* hhtrcols(A,k,k+1,tmp1,beta->ve[k]); */
172 zhhtrcols(A,k,k+1,tmp1,beta);
173
174 /* update gamma values */
175 for ( j=k+1; j<A->n; j++ )
176 gamma->ve[j] -= square(A->me[k][j].re)+square(A->me[k][j].im);
177 }
178
179 return (A);
180 }
181
182 /* zQsolve -- solves Qx = b, Q is an orthogonal matrix stored in compact
183 form a la QRfactor()
184 -- may be in-situ */
185 ZVEC *_zQsolve(QR,diag,b,x,tmp)
186 ZMAT *QR;
187 ZVEC *diag, *b, *x, *tmp;
188 {
189 u_int dynamic;
190 int k, limit;
191 Real beta, r_ii, tmp_val;
192
193 limit = min(QR->m,QR->n);
194 dynamic = FALSE;
195 if ( ! QR || ! diag || ! b )
196 error(E_NULL,"_zQsolve");
197 if ( diag->dim < limit || b->dim != QR->m )
198 error(E_SIZES,"_zQsolve");
199 x = zv_resize(x,QR->m);
200 if ( tmp == ZVNULL )
201 dynamic = TRUE;
202 tmp = zv_resize(tmp,QR->m);
203
204 /* apply H/holder transforms in normal order */
205 x = zv_copy(b,x);
206 for ( k = 0 ; k < limit ; k++ )
207 {
208 zget_col(QR,k,tmp);
209 r_ii = zabs(tmp->ve[k]);
210 tmp->ve[k] = diag->ve[k];
211 tmp_val = (r_ii*zabs(diag->ve[k]));
212 beta = ( tmp_val == 0.0 ) ? 0.0 : 1.0/tmp_val;
213 /* hhtrvec(tmp,beta->ve[k],k,x,x); */
214 zhhtrvec(tmp,beta,k,x,x);
215 }
216
217 if ( dynamic )
218 ZV_FREE(tmp);
219
220 return (x);
221 }
222
223 /* zmakeQ -- constructs orthogonal matrix from Householder vectors stored in
224 compact QR form */
225 ZMAT *zmakeQ(QR,diag,Qout)
226 ZMAT *QR,*Qout;
227 ZVEC *diag;
228 {
229 static ZVEC *tmp1=ZVNULL,*tmp2=ZVNULL;
230 u_int i, limit;
231 Real beta, r_ii, tmp_val;
232 int j;
233
234 limit = min(QR->m,QR->n);
235 if ( ! QR || ! diag )
236 error(E_NULL,"zmakeQ");
237 if ( diag->dim < limit )
238 error(E_SIZES,"zmakeQ");
239 Qout = zm_resize(Qout,QR->m,QR->m);
240
241 tmp1 = zv_resize(tmp1,QR->m); /* contains basis vec & columns of Q */
242 tmp2 = zv_resize(tmp2,QR->m); /* contains H/holder vectors */
243 MEM_STAT_REG(tmp1,TYPE_ZVEC);
244 MEM_STAT_REG(tmp2,TYPE_ZVEC);
245
246 for ( i=0; i<QR->m ; i++ )
247 { /* get i-th column of Q */
248 /* set up tmp1 as i-th basis vector */
249 for ( j=0; j<QR->m ; j++ )
250 tmp1->ve[j].re = tmp1->ve[j].im = 0.0;
251 tmp1->ve[i].re = 1.0;
252
253 /* apply H/h transforms in reverse order */
254 for ( j=limit-1; j>=0; j-- )
255 {
256 zget_col(QR,j,tmp2);
257 r_ii = zabs(tmp2->ve[j]);
258 tmp2->ve[j] = diag->ve[j];
259 tmp_val = (r_ii*zabs(diag->ve[j]));
260 beta = ( tmp_val == 0.0 ) ? 0.0 : 1.0/tmp_val;
261 /* hhtrvec(tmp2,beta->ve[j],j,tmp1,tmp1); */
262 zhhtrvec(tmp2,beta,j,tmp1,tmp1);
263 }
264
265 /* insert into Q */
266 zset_col(Qout,i,tmp1);
267 }
268
269 return (Qout);
270 }
271
272 /* zmakeR -- constructs upper triangular matrix from QR (compact form)
273 -- may be in-situ (all it does is zero the lower 1/2) */
274 ZMAT *zmakeR(QR,Rout)
275 ZMAT *QR,*Rout;
276 {
277 u_int i,j;
278
279 if ( QR==ZMNULL )
280 error(E_NULL,"zmakeR");
281 Rout = zm_copy(QR,Rout);
282
283 for ( i=1; i<QR->m; i++ )
284 for ( j=0; j<QR->n && j<i; j++ )
285 Rout->me[i][j].re = Rout->me[i][j].im = 0.0;
286
287 return (Rout);
288 }
289
290 /* zQRsolve -- solves the system Q.R.x=b where Q & R are stored in compact form
291 -- returns x, which is created if necessary */
292 ZVEC *zQRsolve(QR,diag,b,x)
293 ZMAT *QR;
294 ZVEC *diag, *b, *x;
295 {
296 int limit;
297 static ZVEC *tmp = ZVNULL;
298
299 if ( ! QR || ! diag || ! b )
300 error(E_NULL,"zQRsolve");
301 limit = min(QR->m,QR->n);
302 if ( diag->dim < limit || b->dim != QR->m )
303 error(E_SIZES,"zQRsolve");
304 tmp = zv_resize(tmp,limit);
305 MEM_STAT_REG(tmp,TYPE_ZVEC);
306
307 x = zv_resize(x,QR->n);
308 _zQsolve(QR,diag,b,x,tmp);
309 x = zUsolve(QR,x,x,0.0);
310 x = zv_resize(x,QR->n);
311
312 return x;
313 }
314
315 /* zQRAsolve -- solves the system (Q.R)*.x = b
316 -- Q & R are stored in compact form
317 -- returns x, which is created if necessary */
318 ZVEC *zQRAsolve(QR,diag,b,x)
319 ZMAT *QR;
320 ZVEC *diag, *b, *x;
321 {
322 int j, limit;
323 Real beta, r_ii, tmp_val;
324 static ZVEC *tmp = ZVNULL;
325
326 if ( ! QR || ! diag || ! b )
327 error(E_NULL,"zQRAsolve");
328 limit = min(QR->m,QR->n);
329 if ( diag->dim < limit || b->dim != QR->n )
330 error(E_SIZES,"zQRAsolve");
331
332 x = zv_resize(x,QR->m);
333 x = zUAsolve(QR,b,x,0.0);
334 x = zv_resize(x,QR->m);
335
336 tmp = zv_resize(tmp,x->dim);
337 MEM_STAT_REG(tmp,TYPE_ZVEC);
338 printf("zQRAsolve: tmp->dim = %d, x->dim = %d\n", tmp->dim, x->dim);
339
340 /* apply H/h transforms in reverse order */
341 for ( j=limit-1; j>=0; j-- )
342 {
343 zget_col(QR,j,tmp);
344 tmp = zv_resize(tmp,QR->m);
345 r_ii = zabs(tmp->ve[j]);
346 tmp->ve[j] = diag->ve[j];
347 tmp_val = (r_ii*zabs(diag->ve[j]));
348 beta = ( tmp_val == 0.0 ) ? 0.0 : 1.0/tmp_val;
349 zhhtrvec(tmp,beta,j,x,x);
350 }
351
352
353 return x;
354 }
355
356 /* zQRCPsolve -- solves A.x = b where A is factored by QRCPfactor()
357 -- assumes that A is in the compact factored form */
358 ZVEC *zQRCPsolve(QR,diag,pivot,b,x)
359 ZMAT *QR;
360 ZVEC *diag;
361 PERM *pivot;
362 ZVEC *b, *x;
363 {
364 if ( ! QR || ! diag || ! pivot || ! b )
365 error(E_NULL,"zQRCPsolve");
366 if ( (QR->m > diag->dim && QR->n > diag->dim) || QR->n != pivot->size )
367 error(E_SIZES,"zQRCPsolve");
368
369 x = zQRsolve(QR,diag,b,x);
370 x = pxinv_zvec(pivot,x,x);
371
372 return x;
373 }
374
375 /* zUmlt -- compute out = upper_triang(U).x
376 -- may be in situ */
377 ZVEC *zUmlt(U,x,out)
378 ZMAT *U;
379 ZVEC *x, *out;
380 {
381 int i, limit;
382
383 if ( U == ZMNULL || x == ZVNULL )
384 error(E_NULL,"zUmlt");
385 limit = min(U->m,U->n);
386 if ( limit != x->dim )
387 error(E_SIZES,"zUmlt");
388 if ( out == ZVNULL || out->dim < limit )
389 out = zv_resize(out,limit);
390
391 for ( i = 0; i < limit; i++ )
392 out->ve[i] = __zip__(&(x->ve[i]),&(U->me[i][i]),limit - i,Z_NOCONJ);
393 return out;
394 }
395
396 /* zUAmlt -- returns out = upper_triang(U)^T.x */
397 ZVEC *zUAmlt(U,x,out)
398 ZMAT *U;
399 ZVEC *x, *out;
400 {
401 /* complex sum; */
402 complex tmp;
403 int i, limit;
404
405 if ( U == ZMNULL || x == ZVNULL )
406 error(E_NULL,"zUAmlt");
407 limit = min(U->m,U->n);
408 if ( out == ZVNULL || out->dim < limit )
409 out = zv_resize(out,limit);
410
411 for ( i = limit-1; i >= 0; i-- )
412 {
413 tmp = x->ve[i];
414 out->ve[i].re = out->ve[i].im = 0.0;
415 __zmltadd__(&(out->ve[i]),&(U->me[i][i]),tmp,limit-i-1,Z_CONJ);
416 }
417
418 return out;
419 }
420
421
422 /* zQRcondest -- returns an estimate of the 2-norm condition number of the
423 matrix factorised by QRfactor() or QRCPfactor()
424 -- note that as Q does not affect the 2-norm condition number,
425 it is not necessary to pass the diag, beta (or pivot) vectors
426 -- generates a lower bound on the true condition number
427 -- if the matrix is exactly singular, HUGE is returned
428 -- note that QRcondest() is likely to be more reliable for
429 matrices factored using QRCPfactor() */
430 double zQRcondest(QR)
431 ZMAT *QR;
432 {
433 static ZVEC *y=ZVNULL;
434 Real norm, norm1, norm2, tmp1, tmp2;
435 complex sum, tmp;
436 int i, j, limit;
437
438 if ( QR == ZMNULL )
439 error(E_NULL,"zQRcondest");
440
441 limit = min(QR->m,QR->n);
442 for ( i = 0; i < limit; i++ )
443 /* if ( QR->me[i][i] == 0.0 ) */
444 if ( is_zero(QR->me[i][i]) )
445 return HUGE;
446
447 y = zv_resize(y,limit);
448 MEM_STAT_REG(y,TYPE_ZVEC);
449 /* use the trick for getting a unit vector y with ||R.y||_inf small
450 from the LU condition estimator */
451 for ( i = 0; i < limit; i++ )
452 {
453 sum.re = sum.im = 0.0;
454 for ( j = 0; j < i; j++ )
455 /* sum -= QR->me[j][i]*y->ve[j]; */
456 sum = zsub(sum,zmlt(QR->me[j][i],y->ve[j]));
457 /* sum -= (sum < 0.0) ? 1.0 : -1.0; */
458 norm1 = zabs(sum);
459 if ( norm1 == 0.0 )
460 sum.re = 1.0;
461 else
462 {
463 sum.re += sum.re / norm1;
464 sum.im += sum.im / norm1;
465 }
466 /* y->ve[i] = sum / QR->me[i][i]; */
467 y->ve[i] = zdiv(sum,QR->me[i][i]);
468 }
469 zUAmlt(QR,y,y);
470
471 /* now apply inverse power method to R*.R */
472 for ( i = 0; i < 3; i++ )
473 {
474 tmp1 = zv_norm2(y);
475 zv_mlt(zmake(1.0/tmp1,0.0),y,y);
476 zUAsolve(QR,y,y,0.0);
477 tmp2 = zv_norm2(y);
478 zv_mlt(zmake(1.0/tmp2,0.0),y,y);
479 zUsolve(QR,y,y,0.0);
480 }
481 /* now compute approximation for ||R^{-1}||_2 */
482 norm1 = sqrt(tmp1)*sqrt(tmp2);
483
484 /* now use complementary approach to compute approximation to ||R||_2 */
485 for ( i = limit-1; i >= 0; i-- )
486 {
487 sum.re = sum.im = 0.0;
488 for ( j = i+1; j < limit; j++ )
489 sum = zadd(sum,zmlt(QR->me[i][j],y->ve[j]));
490 if ( is_zero(QR->me[i][i]) )
491 return HUGE;
492 tmp = zdiv(sum,QR->me[i][i]);
493 if ( is_zero(tmp) )
494 {
495 y->ve[i].re = 1.0;
496 y->ve[i].im = 0.0;
497 }
498 else
499 {
500 norm = zabs(tmp);
501 y->ve[i].re = sum.re / norm;
502 y->ve[i].im = sum.im / norm;
503 }
504 /* y->ve[i] = (sum >= 0.0) ? 1.0 : -1.0; */
505 /* y->ve[i] = (QR->me[i][i] >= 0.0) ? y->ve[i] : - y->ve[i]; */
506 }
507
508 /* now apply power method to R*.R */
509 for ( i = 0; i < 3; i++ )
510 {
511 tmp1 = zv_norm2(y);
512 zv_mlt(zmake(1.0/tmp1,0.0),y,y);
513 zUmlt(QR,y,y);
514 tmp2 = zv_norm2(y);
515 zv_mlt(zmake(1.0/tmp2,0.0),y,y);
516 zUAmlt(QR,y,y);
517 }
518 norm2 = sqrt(tmp1)*sqrt(tmp2);
519
520 /* printf("QRcondest: norm1 = %g, norm2 = %g\n",norm1,norm2); */
521
522 return norm1*norm2;
523 }
524
+0
-375
interface/src/scilab/src/c/zschur.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25 /*
26 File containing routines for computing the Schur decomposition
27 of a complex non-symmetric matrix
28 See also: hessen.c
29 Complex version
30 */
31
32
33 #include <stdio.h>
34 #include <math.h>
35
36 #include "zmatrix.h"
37 #include "zmatrix2.h"
38
39 #define is_zero(z) ((z).re == 0.0 && (z).im == 0.0)
40 #define b2s(t_or_f) ((t_or_f) ? "TRUE" : "FALSE")
41
42
43 /* zschur -- computes the Schur decomposition of the matrix A in situ
44 -- optionally, gives Q matrix such that Q^*.A.Q is upper triangular
45 -- returns upper triangular Schur matrix */
46 ZMAT *zschur(A,Q)
47 ZMAT *A, *Q;
48 {
49 int i, j, iter, k, k_min, k_max, k_tmp, n, split;
50 Real c;
51 complex det, discrim, lambda, lambda0, lambda1, s, sum, ztmp;
52 complex x, y; /* for chasing algorithm */
53 complex **A_me;
54 static ZVEC *diag=ZVNULL;
55
56 if ( ! A )
57 error(E_NULL,"zschur");
58 if ( A->m != A->n || ( Q && Q->m != Q->n ) )
59 error(E_SQUARE,"zschur");
60 if ( Q != ZMNULL && Q->m != A->m )
61 error(E_SIZES,"zschur");
62 n = A->n;
63 diag = zv_resize(diag,A->n);
64 MEM_STAT_REG(diag,TYPE_ZVEC);
65 /* compute Hessenberg form */
66 zHfactor(A,diag);
67
68 /* save Q if necessary, and make A explicitly Hessenberg */
69 zHQunpack(A,diag,Q,A);
70
71 k_min = 0; A_me = A->me;
72
73 while ( k_min < n )
74 {
75 /* find k_max to suit:
76 submatrix k_min..k_max should be irreducible */
77 k_max = n-1;
78 for ( k = k_min; k < k_max; k++ )
79 if ( is_zero(A_me[k+1][k]) )
80 { k_max = k; break; }
81
82 if ( k_max <= k_min )
83 {
84 k_min = k_max + 1;
85 continue; /* outer loop */
86 }
87
88 /* now have r x r block with r >= 2:
89 apply Francis QR step until block splits */
90 split = FALSE; iter = 0;
91 while ( ! split )
92 {
93 complex a00, a01, a10, a11;
94 iter++;
95
96 /* set up Wilkinson/Francis complex shift */
97 /* use the smallest eigenvalue of the bottom 2 x 2 submatrix */
98 k_tmp = k_max - 1;
99
100 a00 = A_me[k_tmp][k_tmp];
101 a01 = A_me[k_tmp][k_max];
102 a10 = A_me[k_max][k_tmp];
103 a11 = A_me[k_max][k_max];
104 ztmp.re = 0.5*(a00.re - a11.re);
105 ztmp.im = 0.5*(a00.im - a11.im);
106 discrim = zsqrt(zadd(zmlt(ztmp,ztmp),zmlt(a01,a10)));
107 sum.re = 0.5*(a00.re + a11.re);
108 sum.im = 0.5*(a00.im + a11.im);
109 lambda0 = zadd(sum,discrim);
110 lambda1 = zsub(sum,discrim);
111 det = zsub(zmlt(a00,a11),zmlt(a01,a10));
112 if ( zabs(lambda0) > zabs(lambda1) )
113 lambda = zdiv(det,lambda0);
114 else
115 lambda = zdiv(det,lambda1);
116
117 /* perturb shift if convergence is slow */
118 if ( (iter % 10) == 0 )
119 {
120 lambda.re += iter*0.02;
121 lambda.im += iter*0.02;
122 }
123
124 /* set up Householder transformations */
125 k_tmp = k_min + 1;
126
127 x = zsub(A->me[k_min][k_min],lambda);
128 y = A->me[k_min+1][k_min];
129
130 /* use Givens' rotations to "chase" off-Hessenberg entry */
131 for ( k = k_min; k <= k_max-1; k++ )
132 {
133 zgivens(x,y,&c,&s);
134 zrot_cols(A,k,k+1,c,s,A);
135 zrot_rows(A,k,k+1,c,s,A);
136 if ( Q != ZMNULL )
137 zrot_cols(Q,k,k+1,c,s,Q);
138
139 /* zero things that should be zero */
140 if ( k > k_min )
141 A->me[k+1][k-1].re = A->me[k+1][k-1].im = 0.0;
142
143 /* get next entry to chase along sub-diagonal */
144 x = A->me[k+1][k];
145 if ( k <= k_max - 2 )
146 y = A->me[k+2][k];
147 else
148 y.re = y.im = 0.0;
149 }
150
151 for ( k = k_min; k <= k_max-2; k++ )
152 {
153 /* zero appropriate sub-diagonals */
154 A->me[k+2][k].re = A->me[k+2][k].im = 0.0;
155 }
156
157 /* test to see if matrix should split */
158 for ( k = k_min; k < k_max; k++ )
159 if ( zabs(A_me[k+1][k]) < MACHEPS*
160 (zabs(A_me[k][k])+zabs(A_me[k+1][k+1])) )
161 {
162 A_me[k+1][k].re = A_me[k+1][k].im = 0.0;
163 split = TRUE;
164 }
165
166 }
167 }
168
169 /* polish up A by zeroing strictly lower triangular elements
170 and small sub-diagonal elements */
171 for ( i = 0; i < A->m; i++ )
172 for ( j = 0; j < i-1; j++ )
173 A_me[i][j].re = A_me[i][j].im = 0.0;
174 for ( i = 0; i < A->m - 1; i++ )
175 if ( zabs(A_me[i+1][i]) < MACHEPS*
176 (zabs(A_me[i][i])+zabs(A_me[i+1][i+1])) )
177 A_me[i+1][i].re = A_me[i+1][i].im = 0.0;
178
179 return A;
180 }
181
182
183 #if 0
184 /* schur_vecs -- returns eigenvectors computed from the real Schur
185 decomposition of a matrix
186 -- T is the block upper triangular Schur matrix
187 -- Q is the orthognal matrix where A = Q.T.Q^T
188 -- if Q is null, the eigenvectors of T are returned
189 -- X_re is the real part of the matrix of eigenvectors,
190 and X_im is the imaginary part of the matrix.
191 -- X_re is returned */
192 MAT *schur_vecs(T,Q,X_re,X_im)
193 MAT *T, *Q, *X_re, *X_im;
194 {
195 int i, j, limit;
196 Real t11_re, t11_im, t12, t21, t22_re, t22_im;
197 Real l_re, l_im, det_re, det_im, invdet_re, invdet_im,
198 val1_re, val1_im, val2_re, val2_im,
199 tmp_val1_re, tmp_val1_im, tmp_val2_re, tmp_val2_im, **T_me;
200 Real sum, diff, discrim, magdet, norm, scale;
201 static VEC *tmp1_re=VNULL, *tmp1_im=VNULL,
202 *tmp2_re=VNULL, *tmp2_im=VNULL;
203
204 if ( ! T || ! X_re )
205 error(E_NULL,"schur_vecs");
206 if ( T->m != T->n || X_re->m != X_re->n ||
207 ( Q != MNULL && Q->m != Q->n ) ||
208 ( X_im != MNULL && X_im->m != X_im->n ) )
209 error(E_SQUARE,"schur_vecs");
210 if ( T->m != X_re->m ||
211 ( Q != MNULL && T->m != Q->m ) ||
212 ( X_im != MNULL && T->m != X_im->m ) )
213 error(E_SIZES,"schur_vecs");
214
215 tmp1_re = v_resize(tmp1_re,T->m);
216 tmp1_im = v_resize(tmp1_im,T->m);
217 tmp2_re = v_resize(tmp2_re,T->m);
218 tmp2_im = v_resize(tmp2_im,T->m);
219 MEM_STAT_REG(tmp1_re,TYPE_VEC);
220 MEM_STAT_REG(tmp1_im,TYPE_VEC);
221 MEM_STAT_REG(tmp2_re,TYPE_VEC);
222 MEM_STAT_REG(tmp2_im,TYPE_VEC);
223
224 T_me = T->me;
225 i = 0;
226 while ( i < T->m )
227 {
228 if ( i+1 < T->m && T->me[i+1][i] != 0.0 )
229 { /* complex eigenvalue */
230 sum = 0.5*(T_me[i][i]+T_me[i+1][i+1]);
231 diff = 0.5*(T_me[i][i]-T_me[i+1][i+1]);
232 discrim = diff*diff + T_me[i][i+1]*T_me[i+1][i];
233 l_re = l_im = 0.0;
234 if ( discrim < 0.0 )
235 { /* yes -- complex e-vals */
236 l_re = sum;
237 l_im = sqrt(-discrim);
238 }
239 else /* not correct Real Schur form */
240 error(E_RANGE,"schur_vecs");
241 }
242 else
243 {
244 l_re = T_me[i][i];
245 l_im = 0.0;
246 }
247
248 v_zero(tmp1_im);
249 v_rand(tmp1_re);
250 sv_mlt(MACHEPS,tmp1_re,tmp1_re);
251
252 /* solve (T-l.I)x = tmp1 */
253 limit = ( l_im != 0.0 ) ? i+1 : i;
254 /* printf("limit = %d\n",limit); */
255 for ( j = limit+1; j < T->m; j++ )
256 tmp1_re->ve[j] = 0.0;
257 j = limit;
258 while ( j >= 0 )
259 {
260 if ( j > 0 && T->me[j][j-1] != 0.0 )
261 { /* 2 x 2 diagonal block */
262 /* printf("checkpoint A\n"); */
263 val1_re = tmp1_re->ve[j-1] -
264 __ip__(&(tmp1_re->ve[j+1]),&(T->me[j-1][j+1]),limit-j);
265 /* printf("checkpoint B\n"); */
266 val1_im = tmp1_im->ve[j-1] -
267 __ip__(&(tmp1_im->ve[j+1]),&(T->me[j-1][j+1]),limit-j);
268 /* printf("checkpoint C\n"); */
269 val2_re = tmp1_re->ve[j] -
270 __ip__(&(tmp1_re->ve[j+1]),&(T->me[j][j+1]),limit-j);
271 /* printf("checkpoint D\n"); */
272 val2_im = tmp1_im->ve[j] -
273 __ip__(&(tmp1_im->ve[j+1]),&(T->me[j][j+1]),limit-j);
274 /* printf("checkpoint E\n"); */
275
276 t11_re = T_me[j-1][j-1] - l_re;
277 t11_im = - l_im;
278 t22_re = T_me[j][j] - l_re;
279 t22_im = - l_im;
280 t12 = T_me[j-1][j];
281 t21 = T_me[j][j-1];
282
283 scale = fabs(T_me[j-1][j-1]) + fabs(T_me[j][j]) +
284 fabs(t12) + fabs(t21) + fabs(l_re) + fabs(l_im);
285
286 det_re = t11_re*t22_re - t11_im*t22_im - t12*t21;
287 det_im = t11_re*t22_im + t11_im*t22_re;
288 magdet = det_re*det_re+det_im*det_im;
289 if ( sqrt(magdet) < MACHEPS*scale )
290 {
291 det_re = MACHEPS*scale;
292 magdet = det_re*det_re+det_im*det_im;
293 }
294 invdet_re = det_re/magdet;
295 invdet_im = - det_im/magdet;
296 tmp_val1_re = t22_re*val1_re-t22_im*val1_im-t12*val2_re;
297 tmp_val1_im = t22_im*val1_re+t22_re*val1_im-t12*val2_im;
298 tmp_val2_re = t11_re*val2_re-t11_im*val2_im-t21*val1_re;
299 tmp_val2_im = t11_im*val2_re+t11_re*val2_im-t21*val1_im;
300 tmp1_re->ve[j-1] = invdet_re*tmp_val1_re -
301 invdet_im*tmp_val1_im;
302 tmp1_im->ve[j-1] = invdet_im*tmp_val1_re +
303 invdet_re*tmp_val1_im;
304 tmp1_re->ve[j] = invdet_re*tmp_val2_re -
305 invdet_im*tmp_val2_im;
306 tmp1_im->ve[j] = invdet_im*tmp_val2_re +
307 invdet_re*tmp_val2_im;
308 j -= 2;
309 }
310 else
311 {
312 t11_re = T_me[j][j] - l_re;
313 t11_im = - l_im;
314 magdet = t11_re*t11_re + t11_im*t11_im;
315 scale = fabs(T_me[j][j]) + fabs(l_re);
316 if ( sqrt(magdet) < MACHEPS*scale )
317 {
318 t11_re = MACHEPS*scale;
319 magdet = t11_re*t11_re + t11_im*t11_im;
320 }
321 invdet_re = t11_re/magdet;
322 invdet_im = - t11_im/magdet;
323 /* printf("checkpoint F\n"); */
324 val1_re = tmp1_re->ve[j] -
325 __ip__(&(tmp1_re->ve[j+1]),&(T->me[j][j+1]),limit-j);
326 /* printf("checkpoint G\n"); */
327 val1_im = tmp1_im->ve[j] -
328 __ip__(&(tmp1_im->ve[j+1]),&(T->me[j][j+1]),limit-j);
329 /* printf("checkpoint H\n"); */
330 tmp1_re->ve[j] = invdet_re*val1_re - invdet_im*val1_im;
331 tmp1_im->ve[j] = invdet_im*val1_re + invdet_re*val1_im;
332 j -= 1;
333 }
334 }
335
336 norm = v_norm_inf(tmp1_re) + v_norm_inf(tmp1_im);
337 sv_mlt(1/norm,tmp1_re,tmp1_re);
338 if ( l_im != 0.0 )
339 sv_mlt(1/norm,tmp1_im,tmp1_im);
340 mv_mlt(Q,tmp1_re,tmp2_re);
341 if ( l_im != 0.0 )
342 mv_mlt(Q,tmp1_im,tmp2_im);
343 if ( l_im != 0.0 )
344 norm = sqrt(in_prod(tmp2_re,tmp2_re)+in_prod(tmp2_im,tmp2_im));
345 else
346 norm = v_norm2(tmp2_re);
347 sv_mlt(1/norm,tmp2_re,tmp2_re);
348 if ( l_im != 0.0 )
349 sv_mlt(1/norm,tmp2_im,tmp2_im);
350
351 if ( l_im != 0.0 )
352 {
353 if ( ! X_im )
354 error(E_NULL,"schur_vecs");
355 set_col(X_re,i,tmp2_re);
356 set_col(X_im,i,tmp2_im);
357 sv_mlt(-1.0,tmp2_im,tmp2_im);
358 set_col(X_re,i+1,tmp2_re);
359 set_col(X_im,i+1,tmp2_im);
360 i += 2;
361 }
362 else
363 {
364 set_col(X_re,i,tmp2_re);
365 if ( X_im != MNULL )
366 set_col(X_im,i,tmp1_im); /* zero vector */
367 i += 1;
368 }
369 }
370
371 return X_re;
372 }
373
374 #endif
+0
-300
interface/src/scilab/src/c/zsolve.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 /*
27 Matrix factorisation routines to work with the other matrix files.
28 Complex case
29 */
30
31 static char rcsid[] = "$Id: zsolve.c 3865 2011-11-02 06:38:43Z ycollet $";
32
33 #include <stdio.h>
34 #include <math.h>
35
36 #include "zmatrix2.h"
37
38 #define is_zero(z) ((z).re == 0.0 && (z).im == 0.0 )
39
40 /* Most matrix factorisation routines are in-situ unless otherwise specified */
41
42 /* zUsolve -- back substitution with optional over-riding diagonal
43 -- can be in-situ but doesn't need to be */
44 ZVEC *zUsolve(matrix,b,out,diag)
45 ZMAT *matrix;
46 ZVEC *b, *out;
47 double diag;
48 {
49 u_int dim /* , j */;
50 int i, i_lim;
51 complex **mat_ent, *mat_row, *b_ent, *out_ent, *out_col, sum;
52
53 if ( matrix==ZMNULL || b==ZVNULL )
54 error(E_NULL,"zUsolve");
55 dim = min(matrix->m,matrix->n);
56 if ( b->dim < dim )
57 error(E_SIZES,"zUsolve");
58 if ( out==ZVNULL || out->dim < dim )
59 out = zv_resize(out,matrix->n);
60 mat_ent = matrix->me; b_ent = b->ve; out_ent = out->ve;
61
62 for ( i=dim-1; i>=0; i-- )
63 if ( ! is_zero(b_ent[i]) )
64 break;
65 else
66 out_ent[i].re = out_ent[i].im = 0.0;
67 i_lim = i;
68
69 for ( i = i_lim; i>=0; i-- )
70 {
71 sum = b_ent[i];
72 mat_row = &(mat_ent[i][i+1]);
73 out_col = &(out_ent[i+1]);
74 sum = zsub(sum,__zip__(mat_row,out_col,i_lim-i,Z_NOCONJ));
75 /******************************************************
76 for ( j=i+1; j<=i_lim; j++ )
77 sum -= mat_ent[i][j]*out_ent[j];
78 sum -= (*mat_row++)*(*out_col++);
79 ******************************************************/
80 if ( diag == 0.0 )
81 {
82 if ( is_zero(mat_ent[i][i]) )
83 error(E_SING,"zUsolve");
84 else
85 /* out_ent[i] = sum/mat_ent[i][i]; */
86 out_ent[i] = zdiv(sum,mat_ent[i][i]);
87 }
88 else
89 {
90 /* out_ent[i] = sum/diag; */
91 out_ent[i].re = sum.re / diag;
92 out_ent[i].im = sum.im / diag;
93 }
94 }
95
96 return (out);
97 }
98
99 /* zLsolve -- forward elimination with (optional) default diagonal value */
100 ZVEC *zLsolve(matrix,b,out,diag)
101 ZMAT *matrix;
102 ZVEC *b,*out;
103 double diag;
104 {
105 u_int dim, i, i_lim /* , j */;
106 complex **mat_ent, *mat_row, *b_ent, *out_ent, *out_col, sum;
107
108 if ( matrix==ZMNULL || b==ZVNULL )
109 error(E_NULL,"zLsolve");
110 dim = min(matrix->m,matrix->n);
111 if ( b->dim < dim )
112 error(E_SIZES,"zLsolve");
113 if ( out==ZVNULL || out->dim < dim )
114 out = zv_resize(out,matrix->n);
115 mat_ent = matrix->me; b_ent = b->ve; out_ent = out->ve;
116
117 for ( i=0; i<dim; i++ )
118 if ( ! is_zero(b_ent[i]) )
119 break;
120 else
121 out_ent[i].re = out_ent[i].im = 0.0;
122 i_lim = i;
123
124 for ( i = i_lim; i<dim; i++ )
125 {
126 sum = b_ent[i];
127 mat_row = &(mat_ent[i][i_lim]);
128 out_col = &(out_ent[i_lim]);
129 sum = zsub(sum,__zip__(mat_row,out_col,(int)(i-i_lim),Z_NOCONJ));
130 /*****************************************************
131 for ( j=i_lim; j<i; j++ )
132 sum -= mat_ent[i][j]*out_ent[j];
133 sum -= (*mat_row++)*(*out_col++);
134 ******************************************************/
135 if ( diag == 0.0 )
136 {
137 if ( is_zero(mat_ent[i][i]) )
138 error(E_SING,"zLsolve");
139 else
140 out_ent[i] = zdiv(sum,mat_ent[i][i]);
141 }
142 else
143 {
144 out_ent[i].re = sum.re / diag;
145 out_ent[i].im = sum.im / diag;
146 }
147 }
148
149 return (out);
150 }
151
152
153 /* zUAsolve -- forward elimination with (optional) default diagonal value
154 using UPPER triangular part of matrix */
155 ZVEC *zUAsolve(U,b,out,diag)
156 ZMAT *U;
157 ZVEC *b,*out;
158 double diag;
159 {
160 u_int dim, i, i_lim /* , j */;
161 complex **U_me, *b_ve, *out_ve, tmp;
162 Real invdiag;
163
164 if ( ! U || ! b )
165 error(E_NULL,"zUAsolve");
166 dim = min(U->m,U->n);
167 if ( b->dim < dim )
168 error(E_SIZES,"zUAsolve");
169 out = zv_resize(out,U->n);
170 U_me = U->me; b_ve = b->ve; out_ve = out->ve;
171
172 for ( i=0; i<dim; i++ )
173 if ( ! is_zero(b_ve[i]) )
174 break;
175 else
176 out_ve[i].re = out_ve[i].im = 0.0;
177 i_lim = i;
178 if ( b != out )
179 {
180 __zzero__(out_ve,out->dim);
181 /* MEM_COPY(&(b_ve[i_lim]),&(out_ve[i_lim]),
182 (dim-i_lim)*sizeof(complex)); */
183 MEMCOPY(&(b_ve[i_lim]),&(out_ve[i_lim]),dim-i_lim,complex);
184 }
185
186 if ( diag == 0.0 )
187 {
188 for ( ; i<dim; i++ )
189 {
190 tmp = zconj(U_me[i][i]);
191 if ( is_zero(tmp) )
192 error(E_SING,"zUAsolve");
193 /* out_ve[i] /= tmp; */
194 out_ve[i] = zdiv(out_ve[i],tmp);
195 tmp.re = - out_ve[i].re;
196 tmp.im = - out_ve[i].im;
197 __zmltadd__(&(out_ve[i+1]),&(U_me[i][i+1]),tmp,dim-i-1,Z_CONJ);
198 }
199 }
200 else
201 {
202 invdiag = 1.0/diag;
203 for ( ; i<dim; i++ )
204 {
205 out_ve[i].re *= invdiag;
206 out_ve[i].im *= invdiag;
207 tmp.re = - out_ve[i].re;
208 tmp.im = - out_ve[i].im;
209 __zmltadd__(&(out_ve[i+1]),&(U_me[i][i+1]),tmp,dim-i-1,Z_CONJ);
210 }
211 }
212 return (out);
213 }
214
215 /* zDsolve -- solves Dx=b where D is the diagonal of A -- may be in-situ */
216 ZVEC *zDsolve(A,b,x)
217 ZMAT *A;
218 ZVEC *b,*x;
219 {
220 u_int dim, i;
221
222 if ( ! A || ! b )
223 error(E_NULL,"zDsolve");
224 dim = min(A->m,A->n);
225 if ( b->dim < dim )
226 error(E_SIZES,"zDsolve");
227 x = zv_resize(x,A->n);
228
229 dim = b->dim;
230 for ( i=0; i<dim; i++ )
231 if ( is_zero(A->me[i][i]) )
232 error(E_SING,"zDsolve");
233 else
234 x->ve[i] = zdiv(b->ve[i],A->me[i][i]);
235
236 return (x);
237 }
238
239 /* zLAsolve -- back substitution with optional over-riding diagonal
240 using the LOWER triangular part of matrix
241 -- can be in-situ but doesn't need to be */
242 ZVEC *zLAsolve(L,b,out,diag)
243 ZMAT *L;
244 ZVEC *b, *out;
245 double diag;
246 {
247 u_int dim;
248 int i, i_lim;
249 complex **L_me, *b_ve, *out_ve, tmp;
250 Real invdiag;
251
252 if ( ! L || ! b )
253 error(E_NULL,"zLAsolve");
254 dim = min(L->m,L->n);
255 if ( b->dim < dim )
256 error(E_SIZES,"zLAsolve");
257 out = zv_resize(out,L->n);
258 L_me = L->me; b_ve = b->ve; out_ve = out->ve;
259
260 for ( i=dim-1; i>=0; i-- )
261 if ( ! is_zero(b_ve[i]) )
262 break;
263 i_lim = i;
264
265 if ( b != out )
266 {
267 __zzero__(out_ve,out->dim);
268 /* MEM_COPY(b_ve,out_ve,(i_lim+1)*sizeof(complex)); */
269 MEMCOPY(b_ve,out_ve,i_lim+1,complex);
270 }
271
272 if ( diag == 0.0 )
273 {
274 for ( ; i>=0; i-- )
275 {
276 tmp = zconj(L_me[i][i]);
277 if ( is_zero(tmp) )
278 error(E_SING,"zLAsolve");
279 out_ve[i] = zdiv(out_ve[i],tmp);
280 tmp.re = - out_ve[i].re;
281 tmp.im = - out_ve[i].im;
282 __zmltadd__(out_ve,L_me[i],tmp,i,Z_CONJ);
283 }
284 }
285 else
286 {
287 invdiag = 1.0/diag;
288 for ( ; i>=0; i-- )
289 {
290 out_ve[i].re *= invdiag;
291 out_ve[i].im *= invdiag;
292 tmp.re = - out_ve[i].re;
293 tmp.im = - out_ve[i].im;
294 __zmltadd__(out_ve,L_me[i],tmp,i,Z_CONJ);
295 }
296 }
297
298 return (out);
299 }
+0
-510
interface/src/scilab/src/c/zvecop.c less more
0
1 /**************************************************************************
2 **
3 ** Copyright (C) 1993 David E. Steward & Zbigniew Leyk, all rights reserved.
4 **
5 ** Meschach Library
6 **
7 ** This Meschach Library is provided "as is" without any express
8 ** or implied warranty of any kind with respect to this software.
9 ** In particular the authors shall not be liable for any direct,
10 ** indirect, special, incidental or consequential damages arising
11 ** in any way from use of the software.
12 **
13 ** Everyone is granted permission to copy, modify and redistribute this
14 ** Meschach Library, provided:
15 ** 1. All copies contain this copyright notice.
16 ** 2. All modified copies shall carry a notice stating who
17 ** made the last modification and the date of such modification.
18 ** 3. No charge is made for this software or works derived from it.
19 ** This clause shall not be construed as constraining other software
20 ** distributed on the same medium as this software, nor is a
21 ** distribution fee considered a charge.
22 **
23 ***************************************************************************/
24
25
26 #include <stdio.h>
27 #include "matrix.h"
28 #include "zmatrix.h"
29 static char rcsid[] = "$Id: zvecop.c 3690 2010-09-02 09:55:19Z lsaavedr $";
30
31
32
33 /* _zin_prod -- inner product of two vectors from i0 downwards
34 -- flag != 0 means compute sum_i a[i]*.b[i];
35 -- flag == 0 means compute sum_i a[i].b[i] */
36 complex _zin_prod(a,b,i0,flag)
37 ZVEC *a,*b;
38 u_int i0, flag;
39 {
40 u_int limit;
41
42 if ( a==ZVNULL || b==ZVNULL )
43 error(E_NULL,"_zin_prod");
44 limit = min(a->dim,b->dim);
45 if ( i0 > limit )
46 error(E_BOUNDS,"_zin_prod");
47
48 return __zip__(&(a->ve[i0]),&(b->ve[i0]),(int)(limit-i0),flag);
49 }
50
51 /* zv_mlt -- scalar-vector multiply -- may be in-situ */
52 ZVEC *zv_mlt(scalar,vector,out)
53 complex scalar;
54 ZVEC *vector,*out;
55 {
56 /* u_int dim, i; */
57 /* complex *out_ve, *vec_ve; */
58
59 if ( vector==ZVNULL )
60 error(E_NULL,"zv_mlt");
61 if ( out==ZVNULL || out->dim != vector->dim )
62 out = zv_resize(out,vector->dim);
63 if ( scalar.re == 0.0 && scalar.im == 0.0 )
64 return zv_zero(out);
65 if ( scalar.re == 1.0 && scalar.im == 0.0 )
66 return zv_copy(vector,out);
67
68 __zmlt__(vector->ve,scalar,out->ve,(int)(vector->dim));
69
70 return (out);
71 }
72
73 /* zv_add -- vector addition -- may be in-situ */
74 ZVEC *zv_add(vec1,vec2,out)
75 ZVEC *vec1,*vec2,*out;
76 {
77 u_int dim;
78
79 if ( vec1==ZVNULL || vec2==ZVNULL )
80 error(E_NULL,"zv_add");
81 if ( vec1->dim != vec2->dim )
82 error(E_SIZES,"zv_add");
83 if ( out==ZVNULL || out->dim != vec1->dim )
84 out = zv_resize(out,vec1->dim);
85 dim = vec1->dim;
86 __zadd__(vec1->ve,vec2->ve,out->ve,(int)dim);
87
88 return (out);
89 }
90
91 /* zv_mltadd -- scalar/vector multiplication and addition
92 -- out = v1 + scale.v2 */
93 ZVEC *zv_mltadd(v1,v2,scale,out)
94 ZVEC *v1,*v2,*out;
95 complex scale;
96 {
97 /* register u_int dim, i; */
98 /* complex *out_ve, *v1_ve, *v2_ve; */
99
100 if ( v1==ZVNULL || v2==ZVNULL )
101 error(E_NULL,"zv_mltadd");
102 if ( v1->dim != v2->dim )
103 error(E_SIZES,"zv_mltadd");
104 if ( scale.re == 0.0 && scale.im == 0.0 )
105 return zv_copy(v1,out);
106 if ( scale.re == 1.0 && scale.im == 0.0 )
107 return zv_add(v1,v2,out);
108
109 if ( v2 != out )
110 {
111 tracecatch(out = zv_copy(v1,out),"zv_mltadd");
112
113 /* dim = v1->dim; */
114 __zmltadd__(out->ve,v2->ve,scale,(int)(v1->dim),0);
115 }
116 else
117 {
118 tracecatch(out = zv_mlt(scale,v2,out),"zv_mltadd");
119 out = zv_add(v1,out,out);
120 }
121
122 return (out);
123 }
124
125 /* zv_sub -- vector subtraction -- may be in-situ */
126 ZVEC *zv_sub(vec1,vec2,out)
127 ZVEC *vec1,*vec2,*out;
128 {
129 /* u_int i, dim; */
130 /* complex *out_ve, *vec1_ve, *vec2_ve; */
131
132 if ( vec1==ZVNULL || vec2==ZVNULL )
133 error(E_NULL,"zv_sub");
134 if ( vec1->dim != vec2->dim )
135 error(E_SIZES,"zv_sub");
136 if ( out==ZVNULL || out->dim != vec1->dim )
137 out = zv_resize(out,vec1->dim);
138
139 __zsub__(vec1->ve,vec2->ve,out->ve,(int)(vec1->dim));
140
141 return (out);
142 }
143
144 /* zv_map -- maps function f over components of x: out[i] = f(x[i])
145 -- _zv_map sets out[i] = f(x[i],params) */
146 ZVEC *zv_map(f,x,out)
147 #ifdef PROTOYPES_IN_STRUCT
148 complex (*f)(complex);
149 #else
150 complex (*f)();
151 #endif
152 ZVEC *x, *out;
153 {
154 complex *x_ve, *out_ve;
155 int i, dim;
156
157 if ( ! x || ! f )
158 error(E_NULL,"zv_map");
159 if ( ! out || out->dim != x->dim )
160 out = zv_resize(out,x->dim);
161
162 dim = x->dim; x_ve = x->ve; out_ve = out->ve;
163 for ( i = 0; i < dim; i++ )
164 out_ve[i] = (*f)(x_ve[i]);
165
166 return out;
167 }
168
169 ZVEC *_zv_map(f,params,x,out)
170 #ifdef PROTOTYPES_IN_STRUCT
171 complex (*f)(void *,complex);
172 #else
173 complex (*f)();
174 #endif
175 ZVEC *x, *out;
176 void *params;
177 {
178 complex *x_ve, *out_ve;
179 int i, dim;
180
181 if ( ! x || ! f )
182 error(E_NULL,"_zv_map");
183 if ( ! out || out->dim != x->dim )
184 out = zv_resize(out,x->dim);
185
186 dim = x->dim; x_ve = x->ve; out_ve = out->ve;
187 for ( i = 0; i < dim; i++ )
188 out_ve[i] = (*f)(params,x_ve[i]);
189
190 return out;
191 }
192
193 /* zv_lincomb -- returns sum_i a[i].v[i], a[i] real, v[i] vectors */
194 ZVEC *zv_lincomb(n,v,a,out)
195 int n; /* number of a's and v's */
196 complex a[];
197 ZVEC *v[], *out;
198 {
199 int i;
200
201 if ( ! a || ! v )
202 error(E_NULL,"zv_lincomb");
203 if ( n <= 0 )
204 return ZVNULL;
205
206 for ( i = 1; i < n; i++ )
207 if ( out == v[i] )
208 error(E_INSITU,"zv_lincomb");
209
210 out = zv_mlt(a[0],v[0],out);
211 for ( i = 1; i < n; i++ )
212 {
213 if ( ! v[i] )
214 error(E_NULL,"zv_lincomb");
215 if ( v[i]->dim != out->dim )
216 error(E_SIZES,"zv_lincomb");
217 out = zv_mltadd(out,v[i],a[i],out);
218 }
219
220 return out;
221 }
222
223
224 #ifdef ANSI_C
225
226
227 /* zv_linlist -- linear combinations taken from a list of arguments;
228 calling:
229 zv_linlist(out,v1,a1,v2,a2,...,vn,an,NULL);
230 where vi are vectors (ZVEC *) and ai are numbers (complex)
231 */
232
233 ZVEC *zv_linlist(ZVEC *out,ZVEC *v1,complex a1,...)
234 {
235 va_list ap;
236 ZVEC *par;
237 complex a_par;
238
239 if ( ! v1 )
240 return ZVNULL;
241
242 va_start(ap, a1);
243 out = zv_mlt(a1,v1,out);
244
245 while (par = va_arg(ap,ZVEC *)) { /* NULL ends the list*/
246 a_par = va_arg(ap,complex);
247 if (a_par.re == 0.0 && a_par.im == 0.0) continue;
248 if ( out == par )
249 error(E_INSITU,"zv_linlist");
250 if ( out->dim != par->dim )
251 error(E_SIZES,"zv_linlist");
252
253 if (a_par.re == 1.0 && a_par.im == 0.0)
254 out = zv_add(out,par,out);
255 else if (a_par.re == -1.0 && a_par.im == 0.0)
256 out = zv_sub(out,par,out);
257 else
258 out = zv_mltadd(out,par,a_par,out);
259 }
260
261 va_end(ap);
262 return out;
263 }
264
265
266 #elif VARARGS
267
268 /* zv_linlist -- linear combinations taken from a list of arguments;
269 calling:
270 zv_linlist(out,v1,a1,v2,a2,...,vn,an,NULL);
271 where vi are vectors (ZVEC *) and ai are numbers (complex)
272 */
273 ZVEC *zv_linlist(va_alist) va_dcl
274 {
275 va_list ap;
276 ZVEC *par, *out;
277 complex a_par;
278
279 va_start(ap);
280 out = va_arg(ap,ZVEC *);
281 par = va_arg(ap,ZVEC *);
282 if ( ! par ) {
283 va_end(ap);
284 return ZVNULL;
285 }
286
287 a_par = va_arg(ap,complex);
288 out = zv_mlt(a_par,par,out);
289
290 while (par = va_arg(ap,ZVEC *)) { /* NULL ends the list*/
291 a_par = va_arg(ap,complex);
292 if (a_par.re == 0.0 && a_par.im == 0.0) continue;
293 if ( out == par )
294 error(E_INSITU,"zv_linlist");
295 if ( out->dim != par->dim )
296 error(E_SIZES,"zv_linlist");
297
298 if (a_par.re == 1.0 && a_par.im == 0.0)
299 out = zv_add(out,par,out);
300 else if (a_par.re == -1.0 && a_par.im == 0.0)
301 out = zv_sub(out,par,out);
302 else
303 out = zv_mltadd(out,par,a_par,out);
304 }
305
306 va_end(ap);
307 return out;
308 }
309
310
311 #endif
312
313
314
315 /* zv_star -- computes componentwise (Hadamard) product of x1 and x2
316 -- result out is returned */
317 ZVEC *zv_star(x1, x2, out)
318 ZVEC *x1, *x2, *out;
319 {
320 int i;
321 Real t_re, t_im;
322
323 if ( ! x1 || ! x2 )
324 error(E_NULL,"zv_star");
325 if ( x1->dim != x2->dim )
326 error(E_SIZES,"zv_star");
327 out = zv_resize(out,x1->dim);
328
329 for ( i = 0; i < x1->dim; i++ )
330 {
331 /* out->ve[i] = x1->ve[i] * x2->ve[i]; */
332 t_re = x1->ve[i].re*x2->ve[i].re - x1->ve[i].im*x2->ve[i].im;
333 t_im = x1->ve[i].re*x2->ve[i].im + x1->ve[i].im*x2->ve[i].re;
334 out->ve[i].re = t_re;
335 out->ve[i].im = t_im;
336 }
337
338 return out;
339 }
340
341 /* zv_slash -- computes componentwise ratio of x2 and x1
342 -- out[i] = x2[i] / x1[i]
343 -- if x1[i] == 0 for some i, then raise E_SING error
344 -- result out is returned */
345 ZVEC *zv_slash(x1, x2, out)
346 ZVEC *x1, *x2, *out;
347 {
348 int i;
349 Real r2, t_re, t_im;
350 complex tmp;
351
352 if ( ! x1 || ! x2 )
353 error(E_NULL,"zv_slash");
354 if ( x1->dim != x2->dim )
355 error(E_SIZES,"zv_slash");
356 out = zv_resize(out,x1->dim);
357
358 for ( i = 0; i < x1->dim; i++ )
359 {
360 r2 = x1->ve[i].re*x1->ve[i].re + x1->ve[i].im*x1->ve[i].im;
361 if ( r2 == 0.0 )
362 error(E_SING,"zv_slash");
363 tmp.re = x1->ve[i].re / r2;
364 tmp.im = - x1->ve[i].im / r2;
365 t_re = tmp.re*x2->ve[i].re - tmp.im*x2->ve[i].im;
366 t_im = tmp.re*x2->ve[i].im - tmp.im*x2->ve[i].re;
367 out->ve[i].re = t_re;
368 out->ve[i].im = t_im;
369 }
370
371 return out;
372 }
373
374 /* zv_sum -- returns sum of entries of a vector */
375 complex zv_sum(x)
376 ZVEC *x;
377 {
378 int i;
379 complex sum;
380
381 if ( ! x )
382 error(E_NULL,"zv_sum");
383
384 sum.re = sum.im = 0.0;
385 for ( i = 0; i < x->dim; i++ )
386 {
387 sum.re += x->ve[i].re;
388 sum.im += x->ve[i].im;
389 }
390
391 return sum;
392 }
393
394 /* px_zvec -- permute vector */
395 ZVEC *px_zvec(px,vector,out)
396 PERM *px;
397 ZVEC *vector,*out;
398 {
399 u_int old_i, i, size, start;
400 complex tmp;
401
402 if ( px==PNULL || vector==ZVNULL )
403 error(E_NULL,"px_zvec");
404 if ( px->size > vector->dim )
405 error(E_SIZES,"px_zvec");
406 if ( out==ZVNULL || out->dim < vector->dim )
407 out = zv_resize(out,vector->dim);
408
409 size = px->size;
410 if ( size == 0 )
411 return zv_copy(vector,out);
412
413 if ( out != vector )
414 {
415 for ( i=0; i<size; i++ )
416 if ( px->pe[i] >= size )
417 error(E_BOUNDS,"px_vec");
418 else
419 out->ve[i] = vector->ve[px->pe[i]];
420 }
421 else
422 { /* in situ algorithm */
423 start = 0;
424 while ( start < size )
425 {
426 old_i = start;
427 i = px->pe[old_i];
428 if ( i >= size )
429 {
430 start++;
431 continue;
432 }
433 tmp = vector->ve[start];
434 while ( TRUE )
435 {
436 vector->ve[old_i] = vector->ve[i];
437 px->pe[old_i] = i+size;
438 old_i = i;
439 i = px->pe[old_i];
440 if ( i >= size )
441 break;
442 if ( i == start )
443 {
444 vector->ve[old_i] = tmp;
445 px->pe[old_i] = i+size;
446 break;
447 }
448 }
449 start++;
450 }
451
452 for ( i = 0; i < size; i++ )
453 if ( px->pe[i] < size )
454 error(E_BOUNDS,"px_vec");
455 else
456 px->pe[i] = px->pe[i]-size;
457 }
458
459 return out;
460 }
461
462 /* pxinv_zvec -- apply the inverse of px to x, returning the result in out
463 -- may NOT be in situ */
464 ZVEC *pxinv_zvec(px,x,out)
465 PERM *px;
466 ZVEC *x, *out;
467 {
468 u_int i, size;
469
470 if ( ! px || ! x )
471 error(E_NULL,"pxinv_zvec");
472 if ( px->size > x->dim )
473 error(E_SIZES,"pxinv_zvec");
474 if ( ! out || out->dim < x->dim )
475 out = zv_resize(out,x->dim);
476
477 size = px->size;
478 if ( size == 0 )
479 return zv_copy(x,out);
480 if ( out != x )
481 {
482 for ( i=0; i<size; i++ )
483 if ( px->pe[i] >= size )
484 error(E_BOUNDS,"pxinv_vec");
485 else
486 out->ve[px->pe[i]] = x->ve[i];
487 }
488 else
489 { /* in situ algorithm --- cheat's way out */
490 px_inv(px,px);
491 px_zvec(px,x,out);
492 px_inv(px,px);
493 }
494
495
496 return out;
497 }
498
499 /* zv_rand -- randomise a complex vector; uniform in [0,1)+[0,1)*i */
500 ZVEC *zv_rand(x)
501 ZVEC *x;
502 {
503 if ( ! x )
504 error(E_NULL,"zv_rand");
505
506 mrandlist((Real *)(x->ve),2*x->dim);
507
508 return x;
509 }
+0
-63
interface/src/scilab/tests/unit_tests/check_all.sce less more
0 errcnt=0;
1 t = 'check_integ [integration methods] ';
2 try
3 exec('check_integ.sce');
4 disp(['== ' t ': SUCCESS']);
5 catch
6 errcnt=errcnt+1; disp(['== ' t ': FAILURE']);
7 end;
8 t = 'check_fem [finite element methods] ';
9 try
10 exec('check_fem.sce');
11 disp(['== ' t ': SUCCESS']);
12 catch
13 errcnt=errcnt+1; disp(['== ' t ': FAILURE']);
14 end;
15 t = 'check_geotrans [geometric transformations] ';
16 try
17 exec('check_geotrans.sce');
18 disp(['== ' t ': SUCCESS']);
19 catch
20 errcnt=errcnt+1; disp(['== ' t ': FAILURE']);
21 end;
22 t = 'check_workspace [objects management] ';
23 try
24 exec('check_workspace.sce');
25 disp(['== ' t ': SUCCESS']);
26 catch
27 errcnt=errcnt+1; disp(['== ' t ': FAILURE']);
28 end;
29 t = 'check_mesh_fem [mesh_fem manipulations] ';
30 try
31 exec('check_mesh_fem.sce');
32 disp(['== ' t ': SUCCESS']);
33 catch
34 errcnt=errcnt+1; disp(['== ' t ': FAILURE']);
35 end;
36 t = 'check_asm [assembly routines] ';
37 try
38 exec('check_asm.sce');
39 disp(['== ' t ': SUCCESS']);
40 catch
41 errcnt=errcnt+1; disp(['== ' t ': FAILURE']);
42 end;
43 t = 'check_slices [mesh slicing functions] ';
44 try
45 exec('check_slices.sce');
46 disp(['== ' t ': SUCCESS']);
47 catch
48 errcnt=errcnt+1; disp(['== ' t ': FAILURE']);
49 end;
50 t = 'check_spmat [sparse matrix functions] ';
51 try
52 exec('check_spmat.sce');
53 disp(['== ' t ': SUCCESS']);
54 catch
55 errcnt=errcnt+1; disp(['== ' t ': FAILURE']);
56 end;
57 if (errcnt),
58 printf('\n\n== %d/11 tests FAILED\n', errcnt);
59 else
60 printf('\n\n== All tests succeeded\n');
61 end;
62 disp('end of check_all..');
+0
-67
interface/src/scilab/tests/unit_tests/check_asm.sce less more
0 gf_workspace('clear all');
1
2 p = [0 1 0 1.5;
3 0 0 1 1];
4 t = [1 2 3 0;
5 2 3 4 0]';
6 m = gf_mesh('pt2D',p,t);
7
8 mf = gf_mesh_fem(m,1);
9 mim = gf_mesh_im(m,gf_integ('IM_EXACT_SIMPLEX(2)'));
10 asserterr('gf_asm(''volumic'',''V(#1)+=comp(Base(#1))'',mim,mf)'); // YC logic error here ?!? It works when tested alone
11
12 mf3 = gf_mesh_fem(m,3);
13 gf_mesh_fem_set(mf,'fem',gf_fem('FEM_PK(2,1)'));
14 gf_mesh_fem_set(mf3,'fem',gf_fem('FEM_PK(2,2)'));
15 gf_mesh_im_set(mim,'integ',gf_integ('IM_TRIANGLE(3)'));
16 v = gf_asm('volumic','V(#1)+=comp(Base(#1).Base(#1)(i))',mim,mf)
17 asserterr('gf_asm(''volumic'',''V(#1)+=comp(Base(#2))'',mf)');
18
19 a = gf_compute(mf,v','l2 norm',mim);
20 b = gf_compute(mf,1*%i*v','l2 norm',mim);
21 gfassert('a==b');
22
23 a = gf_compute(mf,v','h1 norm',mim);
24 b = gf_compute(mf,1*%i*v','h1 norm',mim);
25 gfassert('a==b');
26
27 X=gf_asm('volumic','V(#1,#2)+=comp(Base(#1).Base(#1))',mim,mf,mf);
28 gfassert('max(abs((X-X'')))<1e-15');
29
30 X=gf_asm('volumic','V(#1,#1,#1,#1)+=comp(Base(#1).Base(#1).Base(#1).Base(#1))',mim,mf);
31 gfassert('size(X)==[4 4 4 4]');
32
33 X=gf_asm('volumic','M(#1,#2)+=comp(Grad(#1).vBase(#2))(:,z,:,i)',mim,mf,mf3);
34
35 gfassert('size(X)==[4 27]');
36 gfassert('abs(sum(sum(abs(X)))-10.5) < 8e-15');
37 // asserterr('gf_asm(''volumic'',''V(#1)+=comp(Base(#1))'',mim,mf3)'); // YC: bug here
38
39 X=gf_asm('volumic','V(qdim(#1),#1)+=comp(vBase(#1)){2,1}',mim,mf3);
40 gfassert('nnz(X)==27');
41
42 xnnz=find(X);
43 zz=[1 5 9 10 14 18 19 23 27 28 32 36 37 41 45 46 50 54 55 59 63 64 68 72 73 77 81];
44 gfassert('xnnz(:)==zz(:)');
45
46 X2=gf_asm('volumic','V(3,#1)+=comp(vBase(#1)){2,1}',mim,mf3);
47 gfassert('X2==X');
48
49 X=gf_asm('volumic','V(#1,mdim(#1),mdim(#1))+=comp(Hess(#1))',mim,mf);
50 gfassert('X==0');
51
52 X=gf_asm('volumic','V(#1,qdim(#1),mdim(#1),mdim(#1))+=comp(vHess(#1))',mim,mf3);
53 gfassert('abs(sum(sum(sum(sum(X))))) < 1e-14');
54 asserterr('gf_asm(''volumic'',''V(#1)+=1'')');
55
56 H = [0.1 0.1 0 0;
57 0 0 0 0;
58 0 0 0 1];
59 R = [4 0 1];
60
61 [HH,RR]=gf_spmat_get(sparse(H),'dirichlet nullspace',R);
62 disp(full(HH))
63 disp(full(RR))
64 gfassert('max(max(abs(full(HH)-[0 -sqrt(2)/2; 0 sqrt(2)/2; 1 0; 0 0]))) < 1e-15');
65 gfassert('max(abs(RR-[20 20 0 1]))<1e-14');
66
+0
-77
interface/src/scilab/tests/unit_tests/check_fem.sce less more
0 gf_workspace('clear all');
1 lines(0);
2
3 f = gf_fem('FEM_PK(3,4)');
4 dim = gf_fem_get(f,'dim');
5 gfassert('dim==3');
6 tdim = gf_fem_get(f,'target_dim');
7 gfassert('tdim==1');
8 nbd = gf_fem_get(f,'nbdof');
9 gfassert('nbd==35');
10 is_pol = gf_fem_get(f,'is_polynomial');
11 gfassert('is_pol');
12 is_lag = gf_fem_get(f,'is_lagrange');
13 gfassert('is_lag');
14 is_equ = gf_fem_get(f,'is_equivalent');
15 gfassert('is_equ');
16 p = gf_fem_get(f,'pts');
17 gfassert('size(p)==[3 35]');
18 ed = gf_fem_get(f,'estimated_degree');
19 gfassert('ed==4');
20 Z = [5 -8 3 0 0 -8 12 -4 0 3 -4 1 0 0 0 -8 12 -4 0 12 -16 4 -4 4 0 3 -4 1 -4 ...
21 4 1 0 0 0 0]';
22 z = gf_fem_get(f,'base_value',[.5;.5;.5]);
23 gfassert('norm(Z-z) < 1e-13');
24 gfasserterr('gf_fem_get(f,''base_value'',[.5;.5])');
25 DZ = [77 -152 84 -8 -1 -104 192 -96 8 30 -48 18 0 0 0 -104 192 -96 8 120 -192 ...
26 72 -24 24 0 30 -48 18 -24 24 0 0 0 0 0 77 -104 30 0 0 -152 192 -48 0 ...
27 84 -96 18 -8 8 -1 -104 120 -24 0 192 -192 24 -96 72 8 30 -24 0 -48 24 ...
28 18 0 0 0 0 77 -104 30 0 0 -104 120 -24 0 30 -24 0 0 0 0 -152 192 -48 0 ...
29 192 -192 24 -48 24 0 84 -96 18 -96 72 18 -8 8 8 -1];
30 dz = gf_fem_get(f,'grad_base_value',[.5;.5;.5]);
31 gfassert('norm(DZ(:)-dz(:)*3) < 1e-12'); // 2.8432e-13 on sgi O2K / CC debug mode
32 gfassert('size(dz)==[35 1 3]');
33 HZ = [284 -704 552 -128 -4 -288 672 -480 96 48 -96 48 0 0 0 -288 672 -480 96 ...
34 192 -384 192 0 0 0 48 -96 48 0 0 0 0 0 0 0 284 -496 228 -16 0 -496 816 ...
35 -336 16 228 -336 108 -16 16 0 -288 432 -144 0 432 -576 144 -144 144 0 ...
36 48 -48 0 -48 48 0 0 0 0 0 284 -496 228 -16 0 -288 432 -144 0 48 -48 0 ...
37 0 0 0 -496 816 -336 16 432 -576 144 -48 48 0 228 -336 108 -144 144 0 ...
38 -16 16 0 0 284 -496 228 -16 0 -496 816 -336 16 228 -336 108 -16 16 0 ...
39 -288 432 -144 0 432 -576 144 -144 144 0 48 -48 0 -48 48 0 0 0 0 0 284 ...
40 -288 48 0 0 -704 672 -96 0 552 -480 48 -128 96 -4 -288 192 0 0 672 -384 ...
41 0 -480 192 96 48 0 0 -96 0 48 0 0 0 0 284 -288 48 0 0 -496 432 -48 0 ...
42 228 -144 0 -16 0 0 -496 432 -48 0 816 -576 48 -336 144 16 228 -144 0 ...
43 -336 144 108 -16 0 16 0 284 -496 228 -16 0 -288 432 -144 0 48 -48 0 0 ...
44 0 0 -496 816 -336 16 432 -576 144 -48 48 0 228 -336 108 -144 144 0 -16 ...
45 16 0 0 284 -288 48 0 0 -496 432 -48 0 228 -144 0 -16 0 0 -496 432 -48 ...
46 0 816 -576 48 -336 144 16 228 -144 0 -336 144 108 -16 0 16 0 284 -288 ...
47 48 0 0 -288 192 0 0 48 0 0 0 0 0 -704 672 -96 0 672 -384 0 -96 0 0 552 ...
48 -480 48 -480 192 48 -128 96 96 -4];
49 hz = gf_fem_get(f,'hess_base_value',[.5;.5;.5]);
50 gfassert('norm(HZ(:)-hz(:)*3) < 1e-12'); // 7.9986e-13 on sgi O2K / CC debug mode
51 gfassert('size(hz)==[35 1 3 3]');
52 f = gf_fem('FEM_HERMITE(1)');
53 f = gf_fem('FEM_HERMITE(3)');
54 f = gf_fem('FEM_PK_DISCONTINUOUS(2,1)');
55 f = gf_fem('FEM_P1_NONCONFORMING');
56 f = gf_fem('FEM_PK_WITH_CUBIC_BUBBLE(2,1)');
57 ed = gf_fem_get(f,'estimated_degree');
58 gfassert('ed==3');
59 gfasserterr('gf_fem(''FEM_PK_WITH_CUBIC_BUBBLE(2,4)'')'); // YC: logic error here
60 f = gf_fem('FEM_PK_PRISM_HIERARCHICAL(3,3)');
61 nbd = gf_fem_get(f,'nbdof');
62 gfassert('nbd==40');
63 is_pol = gf_fem_get(f,'is_polynomial');
64 gfassert('is_pol');
65 is_lag = gf_fem_get(f,'is_lagrange');
66 gfassert('~is_lag');
67 is_equ = gf_fem_get(f,'is_equivalent');
68 gfassert('is_equ');
69 P = [0 0 0 3 0 0 0 3 0 1 0 0 2 0 0 0 1 0 1 1 0 2 1 0 0 2 0 1 2 0 0 0 3 3 0 ...
70 3 0 3 3 1 0 3 2 0 3 0 1 3 1 1 3 2 1 3 0 2 3 1 2 3 0 0 1 3 0 1 0 3 1 1 ...
71 0 1 2 0 1 0 1 1 1 1 1 2 1 1 0 2 1 1 2 1 0 0 2 3 0 2 0 3 2 1 0 2 2 0 2 ...
72 0 1 2 1 1 2 2 1 2 0 2 2 1 2 2];
73 p = gf_fem_get(f,'pts');
74 gfassert('norm(P(:)-p(:)*3)<1e-15'); // exactly 0 on sgi O2K
75 ed = gf_fem_get(f,'estimated_degree');
76 gfassert('ed==6');
+0
-25
interface/src/scilab/tests/unit_tests/check_geotrans.sce less more
0 gf_workspace('clear all');
1 lines(0);
2
3 gt = gf_geotrans('GT_PK(3,1)');
4 dim = gf_geotrans_get(gt,'dim');
5 gfassert('dim==3');
6 islin = gf_geotrans_get(gt,'is_linear');
7 gfassert('islin==1');
8 npt = gf_geotrans_get(gt,'nbpts');
9 gfassert('npt==4');
10 p = gf_geotrans_get(gt,'pts');
11 gfassert('size(p)==[3 4]');
12 n = gf_geotrans_get(gt, 'normals');
13 gfassert('norm(n(:,1)-0.5774)<0.001');
14 s = gf_geotrans_get(gt, 'char');
15 gfassert('s==''GT_PK(3,1)''');
16 s = 'GT_PRODUCT(GT_PRODUCT(GT_PK(2,3),GT_PK(1,1)),GT_QK(2,3))';
17 gt = gf_geotrans(s);
18 islin = gf_geotrans_get(gt,'is_linear');
19 gfassert('islin==0');
20 gf_geotrans_get(gt, 'char');
21 s = 'GT_LINEAR_PRODUCT(GT_PK(1,1),GT_PK(1,1))';
22 gt = gf_geotrans(s);
23 islin = gf_geotrans_get(gt,'is_linear');
24 gfassert('islin==1');
+0
-44
interface/src/scilab/tests/unit_tests/check_integ.sce less more
0 gf_workspace('clear all');
1 lines(0);
2
3 im = gf_integ('IM_TRIANGLE(3)');
4 dim = gf_integ_get(im,'dim');
5 gfassert('dim==2');
6 ise = gf_integ_get(im,'is_exact');
7 gfassert('~ise');
8 npt = gf_integ_get(im,'nbpts');
9 gfassert('npt==[4 2 2 2]');
10 pts = gf_integ_get(im,'pts');
11 c = gf_integ_get(im,'coeffs');
12 gfassert('size(pts)==[2 10]');
13 gfassert('size(c)==[1 10]');
14 im = gf_integ('IM_TRIANGLE(7)');
15 c = gf_integ_get(im,'coeffs');
16 C = [0.0267 0.0267 0.0267 0.0386 0.0386 0.0386 ...
17 0.0386 0.0386 0.0386 0.0878 0.0878 0.0878 ...
18 -0.0748 0.2460 0.2460 0.4611 0.4611 0.1739 ...
19 0.1739 0.3261 0.3261 0.1739 0.1739 0.3261 0.3261];
20 // C=[0.0386 0.0386 0.0267 0.0267 0.0878 0.0878 ...
21 // 0.0386 0.0386 -0.0748 0.0878 0.0386 0.0386 ...
22 // 0.0267 0.2460 0.4611 0.4611 0.2460 0.1739 ...
23 // 0.3261 0.3261 0.1739 0.1739 0.3261 0.3261 0.1739];
24 gfassert('norm(c(:)-C(:))<1e-3');
25 for i=-1:4
26 if (i >= 1 & i <= 3) then
27 gf_integ_get(im,'face_pts',i);
28 gf_integ_get(im,'face_coeffs',i);
29 else
30 asserterr('gf_integ_get(im,''face_pts'',i)');
31 asserterr('gf_integ_get(im,''face_coeffs'',i)');
32 end
33 end
34 gf_integ_get(im,'char');
35 asserterr('gf_integ(''IM_TRIANGLE(0)'')');
36 im = gf_integ('IM_EXACT_SIMPLEX(3)');
37 dim = gf_integ_get(im,'dim');
38 gfassert('dim==3');
39 ise = gf_integ_get(im,'is_exact');
40 gfassert('ise');
41 asserterr('gf_integ_get(im,''nbpts'')');
42 gf_integ_get(im,'char');
43 asserterr('gf_integ(''IM_EXACT_SIMPLEX(0)'')'); // YC: logic exception here: bad parameters ....
+0
-47
interface/src/scilab/tests/unit_tests/check_interpolated_fem.sce less more
0 gf_workspace('clear all');
1 lines(0);
2
3 h = scf();
4 h.color_map = jetcolormap(255);
5
6 m1 = gf_mesh('regular_simplices', 0:.5:2, 0:.4:1, 'degree', 2, 'noised');
7 //m1 = gf_mesh('regular_simplices', 0:1:2, 0:.5:1, 'degree', 2, 'noised');
8 drawlater;
9 gf_plot_mesh(m1, 'refine' ,5, 'curved','on');
10 drawnow;
11 mf1 = gf_mesh_fem(m1);
12 mim1 = gf_mesh_im(m1, gf_integ('IM_STRUCTURED_COMPOSITE(IM_TRIANGLE(6),4)'));
13 gf_mesh_fem_set(mf1, 'fem', gf_fem('FEM_PK(2, 1)'));
14 m2 = gf_mesh('regular_simplices', 0:.3:3, -.2:.4:1.2, 'degree', 1,'noised');
15 //m2 = gf_mesh('regular_simplices', [0 3], [0 1], 'degree', 1, 'noised');
16 //drawlater;
17 //gf_plot_mesh(m2, 'refine' ,5, 'curved','on');
18 //drawnow;
19 mf2 = gf_mesh_fem(m2);
20 mim2 = gf_mesh_im(m2,gf_integ('IM_STRUCTURED_COMPOSITE(IM_TRIANGLE(6),4)'));
21 //mim2 = gf_meshI_im(m2, gf_integ('IM_TRIANGLE(6)'));
22 gf_mesh_fem_set(mf2, 'fem', gf_fem('FEM_PK(2, 1)'));
23 f = gf_fem('interpolated fem', mf1, mim2)
24 gf_mesh_fem_set(mf2, 'fem', f);
25 gf_workspace('stats');
26 mf3 = gf_mesh_fem(m2);
27 gf_mesh_fem_set(mf3, 'fem', gf_fem('FEM_PK(2,1)'));
28 gf_mesh_fem_set(mf3, 'fem', gf_fem('FEM_PK(2, 0)'), [1 2 3 5]);
29 mf4 = gf_mesh_fem('sum', mf2, mf3);
30 gf_mesh_set(m2, 'del convex', 4);
31 mf = mf4;
32 nbd = gf_mesh_fem_get(mf, 'nbdof');
33 drawlater;
34 gf_plot(mf, rand(1, nbd), 'refine', 16); // YC: There is a little plot bug here ...
35 drawnow;
36 //for i=1:nbd,
37 // U=zeros(1,nbd); U(i)=1;
38 // disp(sprintf('dof %d/%d', i, nbd));
39 // drawlater;
40 // gf_plot(mf,U,'refine',16, 'mesh','on');
41 // drawnow;
42 // pause
43 //end;
44 gf_workspace('stats');
45 gf_delete(f);
46 gf_fem_get(f, 'char'); // YC: logic error here: f not found anymore
+0
-49
interface/src/scilab/tests/unit_tests/check_levelset.sce less more
0 // Need to compile getfem with qhull first.
1 lines(0);
2 gf_workspace('clear all');
3
4 h = scf();
5 h.color_map = jetcolormap(255);
6
7 m = gf_mesh('regular_simplices', -1:.2:1, -1:.2:1, 'degree', 2, 'noised');
8 ls1 = gf_levelset(m, 2, 'sqr(x) + sqr(y) - sqr(0.7)', 'x-.4');
9 ls2 = gf_levelset(m, 2, '0.6*sqr(x) + sqr(y-0.1) - sqr(0.6)');
10 ls3 = gf_levelset(m, 4, 'sqr(x) + sqr(y+.08) - sqr(0.05)');
11 mls = gf_mesh_levelset(m);
12 gf_mesh_levelset_set(mls, 'add', ls1);
13 if 1 then
14 gf_mesh_levelset_set(mls, 'sup', ls1);
15 gf_mesh_levelset_set(mls, 'add', ls1);
16 gf_mesh_levelset_set(mls, 'add', ls2);
17 gf_mesh_levelset_set(mls, 'add', ls2);
18 gf_mesh_levelset_set(mls, 'add', ls2);
19 gf_mesh_levelset_set(mls, 'add', ls3);
20 end
21 gf_mesh_levelset_set(mls, 'adapt');
22 gf_mesh_levelset_get(mls, 'linked_mesh');
23 lls = gf_mesh_levelset_get(mls, 'levelsets');
24 cm = gf_mesh_levelset_get(mls, 'cut_mesh');
25 ctip = gf_mesh_levelset_get(mls, 'crack_tip_convexes');
26 mf = gf_mesh_fem(m); gf_mesh_fem_set(mf, 'classical_fem', 1);
27 mfls = gf_mesh_fem('levelset',mls,mf);
28 //gf_workspace('stats');
29 nbd = gf_mesh_fem_get(mfls,'nbdof');
30 if 1 then
31 sl = gf_slice(list('none'), mls, 2);
32 U = rand(1,nbd);
33 drawlater;
34 gf_plot(mfls,U,'refine',4,'zplot','on');
35 gf_plot_mesh(m, 'curved', 'on','refine',8, 'edges_color', [0 0 0]);
36 drawnow;
37 colorbar(min(U),max(U));
38 else
39 for i=1:nbd
40 U = zeros(1,nbd); U(i)=1;
41 drawlater;
42 gf_plot(mfls,U,'refine',16);
43 gf_plot_mesh(cm, 'curved', 'on','refine',8);
44 gf_plot_mesh(m, 'curved', 'on','refine',8, 'edges_color', [0 0 0]);
45 drawnow;
46 pause
47 end
48 end
+0
-293
interface/src/scilab/tests/unit_tests/check_mesh_fem.sce less more
0 gf_workspace('clear all');
1 lines(0);
2
3 s=['BEGIN POINTS LIST'+ascii(10) + ...
4 'POINT 0 0 0 0'+ascii(10) + ...
5 'POINT 1 -4 6 2'+ascii(10) + ...
6 'POINT 2 0 6 0'+ascii(10) + ...
7 'POINT 3 0 2 0'+ascii(10) + ...
8 'POINT 4 -2 6 2'+ascii(10) + ...
9 'POINT 5 0 4 0'+ascii(10) + ...
10 'POINT 6 -1.5 4.5 .5'+ascii(10) + ...
11 'POINT 7 1 2 0'+ascii(10) + ...
12 'POINT 8 1.5 1.5 0'+ascii(10) + ...
13 'POINT 9 5 5 0'+ascii(10) + ...
14 'POINT 10 2 1 0'+ascii(10) + ...
15 'POINT 11 6 3 0'+ascii(10) + ...
16 'POINT 12 2 0 0'+ascii(10) + ...
17 'POINT 13 6 0 0'+ascii(10) + ...
18 'POINT 14 2 4 0'+ascii(10) + ...
19 'POINT 15 4 2 0'+ascii(10) + ...
20 'POINT 46 4 4 0'+ascii(10) + ...
21 'POINT 17 3 6 0'+ascii(10) + ...
22 'POINT 18 2 -2 2'+ascii(10) + ...
23 'POINT 19 2 -2 -2'+ascii(10) + ...
24 'POINT 20 6 -2 2'+ascii(10) + ...
25 'POINT 21 6 -2 -2'+ascii(10) + ...
26 'POINT 22 2 -1 1'+ascii(10) + ...
27 'POINT 23 2 -2.5 0'+ascii(10) + ...
28 'POINT 24 2 -1 -1'+ascii(10) + ...
29 'POINT 25 6 -1 1'+ascii(10) + ...
30 'POINT 26 6 -2.5 0'+ascii(10) + ...
31 'POINT 27 6 -1 -1'+ascii(10) + ...
32 'POINT 28 -1 6 -1'+ascii(10) + ...
33 'POINT 29 -1 2 -1'+ascii(10) + ...
34 'POINT 30 +1 6 -2'+ascii(10) + ...
35 'POINT 31 +1 2 -2'+ascii(10) + ...
36 'POINT 32 0 6 -3'+ascii(10) + ...
37 'POINT 33 0 2 -3'+ascii(10) + ...
38 'POINT 34 2 -5 -2'+ascii(10) + ...
39 'POINT 35 2 -4 0'+ascii(10) + ...
40 'POINT 36 4 -5 2'+ascii(10) + ...
41 'POINT 37 6 -5 -2'+ascii(10) + ...
42 'POINT 38 6 -5 0'+ascii(10) + ...
43 'POINT 49 6 -5 2'+ascii(10) + ...
44 'END POINTS LIST'+ascii(10) + ...
45 'BEGIN MESH STRUCTURE DESCRIPTION'+ascii(10) + ...
46 'CONVEX 0 GT_PK(2,2) 1 4 2 6 5 3'+ascii(10) + ...
47 'CONVEX 1 GT_QK(2,1) 2 17 3 7'+ascii(10) + ...
48 'CONVEX 2 GT_QK(2,2) 7 8 10 14 46 15 17 9 11'+ascii(10) + ...
49 'CONVEX 3 GT_QK(2,1) 10 12 11 13'+ascii(10) + ...
50 'CONVEX 4 GT_PRODUCT(GT_PK(2,2),GT_PK(1,1)) 12 22 18 24 23 19 13 25 20 27 26 21'+ascii(10) + ...
51 'CONVEX 5 GT_PRODUCT(GT_PK(1,1),GT_PK(1,3)) 2 3 28 29 30 31 32 33'+ascii(10) + ...
52 'CONVEX 8 GT_PRODUCT(GT_PK(1,2),GT_QK(2,1)) 19 23 18 21 26 20 34 35 36 37 38 49'+ascii(10) + ...
53 'END MESH STRUCTURE DESCRIPTION'+ascii(10) + ...
54 'BEGIN MESH_FEM'+ascii(10) + ...
55 ' CONVEX 0 FEM_PK(2,2)'+ascii(10) + ...
56 ' CONVEX 1 FEM_QK(2,2)'+ascii(10) + ...
57 ' CONVEX 2 FEM_QK(2,3)'+ascii(10) + ...
58 ' CONVEX 3 FEM_QK(2,2)'+ascii(10) + ...
59 ' CONVEX 4 FEM_PRODUCT(FEM_PK(2,2),FEM_PK(1,2))'+ascii(10) + ...
60 ' CONVEX 5 FEM_PRODUCT(FEM_PK(1,2),FEM_PK(1,3))'+ascii(10) + ...
61 ' CONVEX 8 FEM_PRODUCT(FEM_PK(1,2),FEM_QK(2,3))'+ascii(10) + ...
62 'END MESH_FEM'+ascii(10)];
63 m = gf_mesh('from string',s);
64 mf = gf_mesh_fem('from string',s,m);
65 s2 = gf_mesh_fem_get(mf,'char');
66 mf2 = gf_mesh_fem('from string',s2,m);
67 gf_mesh_fem_get(mf,'nbdof');
68 gf_mesh_fem_get(mf2,'nbdof');
69 N = gf_mesh_get(m,'dim');
70 npt = gf_mesh_get(m,'nbpts');
71 gfassert('N==3 & npt==40');
72 ncv = gf_mesh_get(m,'nbcvs');
73 gfassert('ncv==7');
74 lastcv = gf_mesh_get(m, 'max cvid');
75 gfassert('lastcv==9');
76 lastpid = gf_mesh_get(m, 'max pid');
77 gfassert('lastpid==50');
78 [d,c] = gf_mesh_get(mf, 'pid from cvid',[2 6]);
79 gfassert('c==[1 5 13]');
80 gfassert('d==[3 18 4 8 3 4 29 30 31 32 33 34]');
81 [d,c] = gf_mesh_get(mf, 'pid from cvid',1:gf_mesh_get(m,'max cvid'));
82 [d,c] = gf_mesh_get(mf, 'pid from cvid');
83 for i=[-1 0 -10]
84 asserterr('gf_mesh_get(m, ''pid from cvid'',i)');
85 end
86 P = gf_mesh_get(m,'pts');
87 V = gf_mesh_get(m, 'pid from coords', P);
88 pid = gf_mesh_get(m,'pid');
89 find(V~=-1)
90 pid
91 P
92 gf_mesh_get(m, 'char')
93 gfassert('find(V~=-1)==pid');
94 a = gf_mesh_get(m, 'faces from pid', pid);
95 b = [1 1 1 2 1 3 2 1 2 2 2 3 2 4 6 1 6 2 6 3 6 4 3 1 3 2 3 3 3 4 4 ...
96 1 4 2 4 3 4 4 5 1 5 2 5 3 5 4 5 5 9 1 9 2 9 3 9 4 9 5 9 6];
97 gfassert('a(:)==b(:)');
98 for i=[-1 0 48 49]
99 asserterr('gf_mesh_get(m, ''faces from pid'', i)');
100 end
101 a = gf_mesh_get(m, 'outer faces');
102 b = [1 0 2 0 3 0 4 0 5 2 5 3 5 4 5 5 6 0 9 1 9 2 9 3 9 4 9 5];
103 gfassert('a(:)==b(:)');
104 a = gf_mesh_get(m, 'outer faces',[4 5]);
105 gfassert('a(:)==[4 0 5 1 5 2 5 3 5 4 5 5]''');
106 asserterr('gf_mesh_get(m, ''outer faces'',[4 6 7 8])');
107 asserterr('gf_mesh_get(m, ''outer faces'',[0])');
108 E = gf_mesh_get(m, 'edges');
109 asserterr('gf_mesh_get(m, ''edges'',[0])');
110 E = gf_mesh_get(m, 'curved edges',10);
111 E = gf_mesh_get(m, 'curved edges',8);
112 asserterr('gf_mesh_get(m, ''curved edges'',-1)');
113 gfassert('abs(sum(sum(sum(E)))-1.872e3) < 2');
114 asserterr('gf_mesh_get(m, ''triangulated surface'', 3)');
115 Z = gf_mesh_get(m, 'triangulated surface', 4,gf_mesh_get(m, 'outer faces',[4 5]));
116 gfassert('size(Z)==[9 160]');
117 Z = gf_mesh_get(m, 'curved edges', 4, gf_mesh_get(m, 'outer faces',[4 5]));
118 ZZ = gf_mesh_get(m, 'curved edges', 4, [4 5]);
119 for i=0:7
120 if (i > 0 & i < 7) then
121 n = gf_mesh_get(m, 'normal of face', 5, 3, i);
122 gfassert('norm(n-[0 0.7071 0.7071]) < 1e-3');
123 nn(i,:) = gf_mesh_get(m, 'normal of face', 5, 1, i);
124 else
125 asserterr('gf_mesh_get(m, ''normal of face'', 5, 3, i)');
126 end
127 end
128 zz = [0 0 0 0 0 0 -0.894427 -1 -0.894427 -0.894427 -1 -0.894427 0.447214 0 -0.447214 0.447214 0 -0.447214];
129 gfassert('norm(nn(:)''-zz)<1e-5'); //8.9465e-07
130 asserterr('gf_mesh_get(m, ''normal of faces'', [1 -1])');
131 N = gf_mesh_get(m, 'normal of faces', gf_mesh_get(m, 'outer faces',[5 9]));
132 s2 = gf_mesh_get(m,'char');
133 gfassert('length(s2)>500');
134 m2 = gf_mesh('from string',s);
135 gf_mesh_fem_get(mf,'nbdof');
136 d = gf_mesh_fem_get(mf,'basic dof from cv',[1 5]);
137 gfassert(['d==[1 2 3 4 5 6 37 40 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57]']);
138 d = gf_mesh_fem_get(mf,'basic dof from cv',[1 5;1 2]);
139 gfassert('d==[3 5 6 37 40 42 45 47 50 52 55 57]');
140 d = gf_mesh_fem_get(mf,'basic dof from cvid',5);
141 gfassert('d==[37 43 44 45 46 47 40 48 49 50 51 52 42 53 54 55 56 57]');
142 s2 = gf_mesh_get(mf,'char');
143 gfassert('length(s2)>500');
144 m2 = gf_mesh('from string',s);
145 mf2 = gf_mesh_fem('from string',s);
146 mf3 = gf_mesh_fem('from string',s,m2);
147 gf_mesh_fem_set(mf2,'qdim',2);
148 s2 = gf_mesh_fem_get(mf2,'char');
149 s3 = gf_mesh_get(mf2,'char');
150 // ~bug here: doesn't work if s2 and s3 are reversed
151 //mf2 = gf_mesh_fem('from string',[s3 s2]);
152 mf2 = gf_mesh_fem('from string',s3 + s2);
153 d = gf_mesh_fem_get(mf2,'basic dof from cv',[1 5]);
154 dd = [1 2 3 4 5 6 7 8 9 10 11 12 73 74 79 80 83 84 85 86 87 88 89 90 91 92 ...
155 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 ...
156 112 113 114];
157 gfassert('d==dd');
158 d = gf_mesh_fem_get(mf2,'basic dof from cv',[1 5;1 2]);
159 dd = [5 6 9 10 11 12 73 74 79 80 83 84 89 90 93 94 99 100 103 104 109 110 113 114];
160 gfassert('d==dd');
161 d = gf_mesh_fem_get(mf2,'basic dof from cvid',5);
162 dd = [73 74 85 86 87 88 89 90 91 92 93 94 79 80 95 96 97 98 99 100 101 102 ...
163 103 104 83 84 105 106 107 108 109 110 111 112 113 114];
164 gfassert('d==dd');
165 [f,c] = gf_mesh_get(mf2, 'geotrans');
166 gfassert('c(2)==c(4)');
167 //fs1 = gf_geotrans_get(f(c(6)),'char'); // YC: f -> objid -> revoir l'affectation
168 //gfassert('fs1==''GT_PRODUCT(GT_PK(1,1),GT_PK(1,3))''');
169 [f,c] = gf_mesh_get(mf2, 'cvstruct');
170 gfassert('c(2)==c(4)');
171 [f,c] = gf_mesh_fem_get(mf2, 'fem');
172 gfassert('c(2)==c(4)');
173
174 tmp = mlist(['objid','cid','id']); // YC: to be checked
175 tmp('cid') = f('cid')(c(5));
176 tmp('id') = f('id')(c(5));
177
178 fs1 = gf_fem_get(tmp,'char');
179 gfassert('fs1==''FEM_PRODUCT(FEM_PK(2,2),FEM_PK(1,2))''');
180 //[f,c]=gf_mesh_fem_get(mf2, 'integ'); // YC: bad command name integ !!
181 //gfassert('c(2)==c(3)');
182 //fs1=gf_integ_get(f(c(3)),'char'); // YC: f -> objid -> revoir l'affectation
183 //gfassert('fs1==''IM_QUAD(5)''');
184 //test for non conformal dof
185 m = gf_mesh('triangles grid',[0:.5:1], [0:.5:1]);
186 mf_u = gf_mesh_fem(m,2);
187 mf_d = gf_mesh_fem(m,1);
188 gf_mesh_fem_set(mf_u,'fem',gf_fem('FEM_PK(2,1)'),[1:5 7]);
189 gf_mesh_fem_set(mf_u,'fem',gf_fem('FEM_PK(2,3)'),8);
190 gf_mesh_fem_set(mf_d,'fem',gf_fem('FEM_PK(2,1)'));
191 gf_mesh_set(m, 'boundary', 3, [1 1 1; 1 2 3]);
192 gf_mesh_set(m, 'boundary', 7, [3 4; 3 2]);
193 cl = [1:5 7 8];
194 asserterr('gf_mesh_fem_get(mf_u, ''non conformal basic dof'')');
195 //d = gf_mesh_fem_get(mf_u, 'non conformal basic dof',cl);
196 //drawlater;
197 //gf_plot_mesh(mf_u, 'dof', 'on'); // gf_mesh_fem_get: convex 6 has no FEM!
198 //drawnow;
199 //gfassert('d==[11 12 13 14 15 16 21 22]');
200 f = gf_mesh_fem_get(mf2, 'fem');
201 f5 = gf_mesh_fem_get(mf2, 'fem',5);
202 asserterr('gf_mesh_fem_get(mf_u, ''fem of cvs'')');
203 asserterr('gf_mesh_fem_get(mf_u, ''fem of cvs'',7)');
204 asserterr('gf_mesh_fem_get(mf_u, ''fem of cvs'',6)');
205 gf_mesh_fem_get(mf_u, 'is_lagrangian',cl);
206 gf_mesh_fem_get(mf_u, 'is equivalent',cl);
207 gf_mesh_fem_get(mf_u, 'is_polynomial',cl);
208 //me = gf_eltm('base', f5);
209 //ME = gf_mesh_fem_get(mf2,'eltm',me,5); // YC: bad command name etlm
210 //MME=[-0.0444444 1.15556 0.0222222 1.15556 1.24444 0.0222222 -0.177778 4.62222,...
211 // 0.0888889 4.62222 4.97778 0.0888889 -0.0444444 1.15556 0.0222222 1.15556,...
212 // 1.24444 0.0222222]';
213 //gfassert('norm(ME-MME)<1e-4');
214 m = gf_mesh_fem_get(mf2,'linked_mesh');
215 oo = gf_mesh_get(mf2,'outer faces');
216 oo = oo(:,find(oo(2,:)~=0));
217 gf_mesh_set(m,'boundary',51,oo);
218 o = gf_mesh_get(m,'boundary',51);
219 gfassert('size(o)==size(oo) & sum(sum(o))==sum(sum(oo))');
220 o = gf_mesh_get(mf2,'boundary',1);
221 gfassert('isempty(o)');
222 gf_mesh_set(gf_mesh_fem_get(mf2,'linked mesh'),'boundary',1,oo(:,1));
223 o = gf_mesh_get(mf2,'boundary',1);
224 gfassert('o==oo(:,1)');
225 o = gf_mesh_get(mf2,'boundaries');
226 gfassert('o==[1 51]');
227 gf_mesh_set(gf_mesh_fem_get(mf2,'linked mesh'),'delete boundary',1);
228 o = gf_mesh_get(mf2,'boundary',1);
229 gfassert('isempty(o)');
230 o = gf_mesh_get(mf2,'boundaries');
231 gfassert('o==51');
232 // test region intersect/merge/setdiff
233 R1 = [1 2 5 6 6 6; 1 2 1 2 3 2];
234 gf_mesh_set(m,'region', 10, R1);
235 r1 = gf_mesh_get(m, 'region', 10);
236 R2 = [5 6 3 4 6; 1 3 1 2 1];
237 gf_mesh_set(m,'region', 11, R2);
238 r2 = gf_mesh_get(m, 'region', 11);
239 gf_mesh_set(m,'region merge', 11, 10);
240 rr = gf_mesh_get(m,'region',11);
241 RR = union(R1',R2','r')';
242 gfassert('rr==RR');
243 // The setdiff function is not yet in scilab
244 if 1 then
245 gf_mesh_set(m,'region', 11, R2);
246 gf_mesh_set(m,'region subtract', 11, 10);
247 rr = gf_mesh_get(m,'region',11);
248 RR = _setdiff(R2',R1','rows')';
249 gfassert('rr==RR');
250 end
251 gf_mesh_set(m,'region', 11, R2);
252 gf_mesh_set(m,'region intersect', 11, 10);
253 rr = gf_mesh_get(m,'region',11);
254 RR = intersect(R2',R1','r')';
255 gfassert('rr==RR');
256 asserterr('gf_mesh_set(m, ''del point'', [3])');
257 o = gf_mesh_get(m,'pid from cvid', 3);
258 gfassert('o==[8 9 11 15 47 16 18 10 12]');
259 gf_mesh_set(m,'del convex',3);
260 gf_mesh_set(m,'del convex',2);
261 c = [2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25,...
262 26 27 28 29 30 31 32 33 34 35 36 37 38 39 47 50];
263 d = gf_mesh_get(m,'pid');
264 gfassert('d(:)==c(:)');
265 d = gf_mesh_fem_get(mf2,'basic dof on region', 0:100);
266 // test for optimize_structure
267 maxpid = gf_mesh_get(m,'max pid');
268 maxcvid = gf_mesh_get(m,'max cvid');
269 np = gf_mesh_get(m,'nbpts');
270 ncv = gf_mesh_get(m,'nbcvs');
271 gfassert('np < maxpid');
272 gfassert('ncv < maxcvid');
273 gf_mesh_set(m,'optimize structure');
274 maxpid = gf_mesh_get(m,'max pid');
275 maxcvid = gf_mesh_get(m,'max cvid');
276 gfassert('np == maxpid');
277 gfassert('ncv == maxcvid');
278 gf_mesh_set(m,'del convex',2);
279 disp('-----------------------------PLOP---------------------------------');
280 disp('-----------------------------PLOP---------------------------------');
281 // test gradient/hessian
282 gf_mesh_set(m,'add convex',gf_geotrans('GT_PK(2,2)'),...
283 [0 0; .6 0; 1.2 0; 0 .4; .6 .4; 0 0.8]');
284 gf_mesh_set(m,'add convex',gf_geotrans('GT_PK(2,1)'),[1 1; 1.1 0;0.9 1.3]');
285 mf = gf_mesh_fem(m);
286 gf_mesh_fem_set(mf, 'classical fem', 4); //'gf_fem('FEM_PK(2,3)'));
287 U = rand(3, gf_mesh_fem_get(mf,'nbdof'));
288 U(1) = 1;
289 //DU = gf_compute(mf, U, 'gradient', mf) // YC: gf_compute: Error in ../../src/gmm/gmm_blas.h,
290 //D2U = gf_compute(mf, DU, 'gradient', mf);
291 //D2U2= gf_compute(mf, U, 'hessian', mf);
292 //gfassert('max(max(abs(D2U(:)-D2U2(:)))) < 1e-9');
+0
-70
interface/src/scilab/tests/unit_tests/check_oo.sce less more
0 function check_oo(iverbose,idebug)
1 [nargout,nargin] = argn();
2
3 global gverbose;
4 global gdebug;
5 if (nargin >= 1) then
6 gverbose = iverbose;
7 if (nargin == 2) then
8 gdebug = idebug;
9 else
10 gdebug = 0; end;
11 else
12 gverbose = 0;
13 end
14
15 gf_workspace('clear all');
16
17 m1 = gfMesh('empty',1);
18 gfassert('m1.nbpts==0');
19 gfassert('m1.dim==1');
20 p = [0 1 0 1.1; 0 0 1 1]; t = [1 2 3 0; 2 3 4 0]';
21 m2 = gf_mesh('pt2D',p,t);
22 m2 = gfMesh(m2);
23 gfassert('gf_typeof(m2)==''gfMesh''');
24 m3 = gfMesh('empty',3);
25 set(m3,'add convex',gfGeoTrans('GT_QK(3,1)'),...
26 [0 1 0 1 0 1 0 1;...
27 0 0 1 1 0 0 1 1;...
28 0 0 0 0 1 1 1 1]);
29 gfassert('m3.nbpts==8');
30 gfassert('m3.pts(8)==[1;1;1]');
31 gfassert('m3.pts([3 5])==[0 0; 1 0; 0 1]');
32 asserterr('m3.pts(9)');
33 asserterr('m3.pts(-1)');
34 asserterr('m3.pts(0)');
35 asserterr('m3.pts(''kjk'')');
36 gfassert('length(m3.pid_from_cvid(1))==8');
37 gfassert('m2.nbcvs==2');
38 gf_delete(m1);
39 m1 = gfMesh('cartesian',1:.1:5);
40 mf1 = gfMeshFem(m1,2);
41 mim = gfMeshIm(m1);
42 gfassert('class(mf1)==''gfMeshFem''');
43 gfassert('mf1.qdim==2');
44 gfassert('mf1.mesh.dim==1');
45 gfassert('mf1.mesh.pts(2)==1.1');
46 asserterr('set(m1,''fem'',gfFem(''FEM_PK(1,2)''),gfInteg(''IM_EXACT_SIMPLEX(1)''))');
47 set(mf1,'fem',gfFem('FEM_PK(1,2)'));
48 set(mim,'integ',gfInteg('IM_EXACT_SIMPLEX(1)'));
49 gfassert('mf1.nbdof==162');
50 e = get(mf1.mesh,'outer faces'); gfassert('e(1,:)==[1 40]');
51 e = get(mf1.mesh,'outer faces', 1:mf1.mesh.nbcvs-2); gfassert('e(1,:)==[1 38]');
52 p10 = m1.pts(mf1.mesh.pid_from_cvid(10));
53 set(mf1.mesh,'del convex',10);
54 gfassert('m1.nbcvs==39');
55 gfassert('mf1.nbdof==160'); // check the mesh_fem was correctly updated
56 gfassert('isempty(m1.pid_from_cvid(10))');
57 n = get(m1,'normal of face',9,1);
58 gfassert('abs(n-1)<1e-15');
59 n = get(m1,'normal of face',9,2); gfassert('abs(n+1)<1e-15');
60 asserterr('get(m1,''normal of face'', 10,1)');
61 set(mf1.mesh,'add convex',gfGeoTrans('GT_QK(1,1)'), p10);
62 gfassert('mf1.mesh.nbcvs==40');
63 gfassert('mf1.nbdof==162');
64 s = char(mf1);
65 gfassert('numel(s)>1700');
66 gt = mf1.mesh.geotrans(3);
67 cvs = mf1.mesh.cvstruct(1);
68 fem = mf1.fem(2:3);
69 integ = mim.integ(1);
+0
-67
interface/src/scilab/tests/unit_tests/check_plot.sce less more
0 gf_workspace('clear all');
1 lines(0);
2
3 m2 = gf_mesh('triangles grid',[0:.1:1],[0:.1:1]);
4 m22 = gf_mesh('cartesian',[0:.1:1],[0:.1:1]);
5 m3 = gf_mesh('cartesian',[0:.1:1],[0:.15:1],[0:.2:1]);
6 mf2 = gf_mesh_fem(m2,1);
7 mf22 = gf_mesh_fem(m22,1);
8 mf3 = gf_mesh_fem(m3,1);
9 mf2v = gf_mesh_fem(m2,2);
10 mf3v = gf_mesh_fem(m3,3);
11 gf_mesh_fem_set(mf2 ,'fem',gf_fem('FEM_PK(2,2)'));//,gf_integ('IM_TRIANGLE(5)'));
12 gf_mesh_fem_set(mf22,'fem',gf_fem('FEM_QK(2,2)'));//,gf_integ('IM_EXACT_PARALLELEPIPED(2)'));
13 gf_mesh_fem_set(mf2v,'fem',gf_fem('FEM_PK(2,1)'));//,gf_integ('IM_TRIANGLE(5)'));
14 gf_mesh_fem_set(mf3 ,'fem',gf_fem('FEM_QK(3,1)'));//,gf_integ('IM_EXACT_PARALLELEPIPED(3)'));
15 gf_mesh_fem_set(mf3v,'fem',gf_fem('FEM_QK(3,1)'));//,gf_integ('IM_NC_PARALLELEPIPED(3,2)'));
16 U2 = gf_mesh_fem_get_eval(mf2,list(list('x.*y')));
17 U2v = gf_mesh_fem_get_eval(mf2v,list(list('x.*y','1-x+y.*y')));
18 U3 = gf_mesh_fem_get_eval(mf3,list(list('z')));
19 U3v = gf_mesh_fem_get_eval(mf3v,list(list('z',0,'x+y')));
20 gf_workspace('push');
21 sl2 = gf_slice(list('none'),m2,2);
22 sl3 = gf_slice(list('none'),m3,2,gf_mesh_get(m3,'outer faces'));
23
24 scf();
25 drawlater;
26 title('plot 1');
27 subplot(2,1,1);
28 gf_plot_slice(sl2);
29 subplot(2,1,2);
30 gf_plot_slice(sl3); // Plot nothing
31 drawnow;
32
33 gf_workspace('pop');
34 gf_workspace('push');
35 sl2 = gf_slice(list('boundary'),m2,3);
36 sl3 = gf_slice(list('boundary',list('none')),m3,3);
37
38 scf();
39 title('plot 2');
40 drawlater;
41 subplot(3,1,1);
42 //gf_plot_slice(sl2);
43 subplot(3,1,2);
44 //gf_plot_slice(sl2, 'mesh','on','mesh_edges_color', [0 0 1], 'mesh_edges_width', 2, 'mesh_faces','on', 'mesh_faces_color', [1 0 0]);
45 subplot(3,1,3);
46 gf_plot_slice(sl3, 'tube','on','mesh_edges_color', [0 0 1], 'mesh_edges_width', 2, 'mesh_faces','on', 'mesh_faces_color', [1 0 0]); // Error
47 drawnow;
48
49 sl4 = gf_slice(list('planar',0,[.5;.5;.5],[0;0;1]),sl3);
50 P = gf_slice_get(sl4,'pts');
51
52 scf()
53 title('plot 3');
54 drawlater;
55 //gf_plot_slice(sl4,'tube','on','tube_radius',0.05*abs(sin(P(2,:)*10))+0.01);
56 drawnow;
57
58 P = gf_slice_get(sl3,'pts');
59
60 scf();
61 title('plot 4');
62 drawlater;
63 gf_plot_slice(sl3, 'data',0.05*abs(sin(P(2,:)*10))+0.01);
64 drawnow;
65
66 gf_workspace('pop');
+0
-42
interface/src/scilab/tests/unit_tests/check_slices.sce less more
0 gf_workspace('clear all');
1 lines(0);
2 m = gf_mesh('triangles grid',[-5:1:5],[-4:.8:4]);
3 // m = gf_mesh('triangles grid',[-1 1],[-1 1]);
4 gf_mesh_get(m,'cvid');
5 gf_mesh_set(m,'del convex',[1]);
6 mf = gf_mesh_fem(m,1);
7 gf_mesh_fem_set(mf,'fem',gf_fem('FEM_PK(2,2)'))
8 //U = gf_mesh_fem_get(mf,'eval', list('x.*x + y.*y'));
9 U = gf_mesh_fem_get_eval(mf, list(list('x.*x + y.*y')));
10 sl = gf_slice(list('planar',0,[.5;0],[1;0]),m,3);
11 pp = gf_slice_get(sl,'pts');
12 gfassert('abs(pp(1,:)-.5)<1e-15');
13 sl2 = gf_slice('points',m,pp(:,1:3));
14 pp2 = gf_slice_get(sl2,'pts');
15 gfassert('abs(pp2(1,:)-.5)<1e-15');
16 // n=8;sl = gf_slice(m,list('isovalues',-1,mf,U,0.25),n);
17 sl = gf_slice(list('isovalues',-1,mf,U,16.0),m,4);
18 h = scf();
19 h.color_map = jetcolormap(255);
20 title('plot 1');
21 drawlater;
22 gf_plot_slice(sl,'mesh','on','data',gf_compute(mf,U,'interpolate on',sl));
23 colorbar(min(U),max(U));
24 drawnow;
25 pp = gf_slice_get(sl,'pts');
26 gfassert('max(sqrt(sum(pp.^2,1)))<4.0000001');
27 sl = gf_slice(list('isovalues',0,mf,U,9.0),m,7);
28 pp = gf_slice_get(sl,'pts');
29 gfassert('max(abs(3-sqrt(sum(pp.^2,1))))<0.0015');
30 N=1;
31 m = gf_mesh('triangles grid',[-N:(2*N/3):N],[-N:(N/5):N]);
32 m2 = gf_mesh('cartesian',[-N:(N/5):N]+.1,[-N:(N/7):N]+.1);
33 sl = gf_slice(list('mesh',m2),m,3);
34 h = scf();
35 h.color_map = jetcolormap(255);
36 title('plot 1');
37 drawlater;
38 gf_plot_slice(sl,'mesh_faces','on');
39 drawnow;
40 a = gf_slice_get(sl,'area') - 1.9*1.9;
41 gfassert('a < 1e-10');
+0
-151
interface/src/scilab/tests/unit_tests/check_spmat.sce less more
0 gf_workspace('clear all');
1 if (0) then
2 asserterr('gf_spmat(''empty'',-5)');
3 asserterr('gf_spmat(''empty'',2:3)');
4 asserterr('gf_spmat(''empty'',0)');
5 end;
6 // TEST EMPTY COPY FULL
7 A = gf_spmat('empty', 5,6);
8 B = gf_spmat('empty', 11111);
9 C = gf_spmat('copy', A);
10 C = sprand(50,50,.1); C(2,2)=1+2*%i; I = 1:40; J = [6 7 8 3 10];
11 D = gf_spmat('copy', C, I, J);
12 DD = gf_spmat_get(D,'full');
13 // gfassert('and(DD==C(I,J))'); // Bug scilab 4783
14 gfassert('and(full(DD)==full(C(I,J)))');
15 asserterr('gf_spmat(D,''full'',100)');
16 asserterr('gf_spmat(D,''full'',10,-1)');
17 // TEST MULT
18 A = gf_spmat('identity', 11111);
19 C = gf_spmat('mult',A,B);
20 n = gf_spmat_get(C,'nnz'); gfassert('n==0');
21 C = gf_spmat('mult',A,A);
22 n = gf_spmat_get(C,'nnz'); gfassert('n==11111');
23 M1 = sprand(50,43,.1);
24 M2 = sprand(43,14,.3);
25 C = gf_spmat('mult',M1,M2);
26 C = gf_spmat_get(C, 'full');
27 P = full(M1*M2);
28 gfassert('max(max(abs(C-P)))<1e-13');
29 asserterr('gf_spmat(''mult'',M2,M1);');
30 //TEST ADD
31 d = rand(1,size(P,1));
32 D = gf_spmat('diag', d');
33 M1 = sprand(50,50,.1); C(2,2)=1+2*%i;
34 M2 = sprand(50,50,.1); C(2,2)=1+2*%i;
35 C = gf_spmat('add',M1, M2);
36 C = gf_spmat_get(C, 'full');
37 gfassert('max(max(abs(C-full(M1+M2))))<1e-13');
38 C = gf_spmat('add',M1, real(M2));
39 C = gf_spmat_get(C, 'full');
40 gfassert('max(max(abs(C-full(M1+real(M2)))))<1e-13');
41 // TEST DIAG
42 K = gf_spmat('diag', [1 1; 2 3; 4 5; 6 7],[0 -2],6,9);
43 // NNZ
44 gf_spmat_get(K,'full');
45 //gfassert('gf_spmat_get(K,''nnz'')==8'); // YC: 6 - a voir
46 //-->gf_spmat_get(K,'full')
47 // ans =
48 //
49 // 1. 0. 0. 0. 0. 0. 0. 0. 0.
50 // 0. 2. 0. 0. 0. 0. 0. 0. 0.
51 // 5. 0. 4. 0. 0. 0. 0. 0. 0.
52 // 0. 7. 0. 6. 0. 0. 0. 0. 0.
53 // 0. 0. 0. 0. 0. 0. 0. 0. 0.
54 // 0. 0. 0. 0. 0. 0. 0. 0. 0.
55 cK=gf_spmat('diag', [1 1*%i; 2 3*%i; 4 5; 6*%i 7; 5 5; 6 -2],[0 -1],6,9);
56 gfassert('gf_spmat_get(cK,''nnz'')==11');
57 C = gf_spmat('add',K,cK);
58 gfassert('gf_spmat_get(C,''is_complex'')');
59 // MULT VECTOR
60 fK = gf_spmat_get(K,'full');
61 fcK = gf_spmat_get(cK,'full');
62 V6 = rand(6,1);
63 V9 = rand(9,1);
64 W6 = gf_spmat_get(K,'mult',V9);
65 gf_spmat_get(K, 'full');
66 W9 = gf_spmat_get(K,'tmult',V6);
67 gfassert('max(abs(W6(:)-fK*V9))<1e-13');
68 gfassert('max(abs(W9(:)-fK''*V6))<1e-13');
69 W6 = gf_spmat_get(cK,'mult',V9);
70 W9 = gf_spmat_get(cK,'tmult',V6);
71 gfassert('max(abs(W6(:)-fcK*V9))<1e-13');
72 gfassert('max(abs(W9(:)-fcK''*V6))<1e-13');
73 V6 = rand(6,1) + 1*%i*rand(6,1); V9=rand(9,1) + 1*%i*rand(9,1);
74 asserterr('gf_spmat_get(K,''mult'',V9)');
75 W6 = gf_spmat_get(cK,'mult',V9);
76 W9 = gf_spmat_get(cK,'tmult',V6);
77 gfassert('max(abs(W6(:)-fcK*V9))<1e-13');
78 gfassert('max(abs(W9(:)-fcK''*V6))<1e-13');
79 // STORAGE, SIZE, IS_COMPLEX, CSC_IND CSC_VAL
80 gf_spmat_get(cK, 'storage');
81 gfassert('gf_spmat_get(cK, ''size'')==[6 9]');
82 gfassert('gf_spmat_get(sparse(fcK), ''size'')==[6 9]');
83 [jc,ir]=gf_spmat_get(cK, 'csc_ind');
84 v=gf_spmat_get(cK, 'csc_val');
85 // CLEAR
86 gf_spmat_set(K, 'to_wsc'); gf_spmat_set(cK, 'to_wsc');
87 KK = gf_spmat('copy',K); gf_spmat_set(KK,'clear');
88 gfassert('gf_spmat_get(KK,''nnz'')==0');
89 KK = gf_spmat('copy',cK); gf_spmat_set(KK,'clear');
90 gfassert('gf_spmat_get(KK,''nnz'')==0');
91 for i=1:20,
92 if (modulo(i,2)==0) then
93 gf_spmat_set(K, 'to_wsc');
94 else
95 gf_spmat_set(K, 'to_csc');
96 end
97 KK = gf_spmat('copy',cK); gf_spmat_set(KK,'scale',int32(-1));
98 C = gf_spmat('add',cK,KK);
99 gfassert('gf_spmat_get(C,''nnz'')==0');
100 C = gf_spmat('copy',cK); gf_spmat_set(C,'transpose');
101 gfassert('and(gf_spmat_get(C,''full'')==fcK.'')');
102 C = gf_spmat('copy',cK); gf_spmat_set(C,'transconj');
103 gfassert('and(gf_spmat_get(C,''full'')==fcK'')');
104 C = gf_spmat('copy',cK); gf_spmat_set(C,'conjugate');
105 gfassert('and(gf_spmat_get(C,''full'')==conj(fcK))');
106 end
107 gf_spmat_set(cK,'to_complex');
108 C = gf_spmat('copy',K); gf_spmat_set(C,'to_complex');
109 gfassert('gf_spmat_get(C,''is_complex'')');
110 gf_spmat_set(C,'clear');
111 B = [1 1 1 1 1 2; ...
112 6 5 4 3 2 1; ...
113 7 8 5 3 2 1]';
114 gf_spmat_set(C,'diag', B(:,1));
115 gf_spmat_set(C,'diag', B(:,2:3), [-2 +2]);
116 CC = full(spdiags(B, [0 -2 2], 6, 9));
117 P = gf_spmat_get(C,'full');
118 gfassert('and(CC==P)');
119 //L1 = gf_spmat_get(C,'diag', [0 -2 2]);
120 //L2 = spdiags(sparse(CC),[0 -2 2]);
121 //gfassert('L1==L2');
122 K = sprand(50,50,.1) + 20*speye(50,50); K(2,3)=.4;
123 gK = gf_spmat('copy',K);
124 gf_spmat_set(gK, 'to_csc');
125 asserterr('gf_spmat_set(gK, ''assign'', 1, 1, 1)');
126 gf_spmat_set(gK, 'to_wsc');
127 gf_spmat_set(gK, 'assign', 2, 2, 1+2*%i);
128 gf_spmat_set(gK, 'add', 2, 2:4, 2*%i*ones(1,3));
129 A = gf_spmat_get(gK, 'full', 2, 2:4);
130 B = full(K(2,2:4)); B(1)=1+2*%i; B=B+2*%i;
131 gfassert('max(abs(A-B))<1e-13');
132 gf_workspace('clear all')
133 // luinc not yet defined under Scilab
134 if 0 then
135 m = gf_mesh('cartesian',[1:10],[1:10]);
136 mf = gf_mesh_fem(m,1);
137 gf_mesh_fem_set(mf,'classical fem', 1);
138 mim = gf_mesh_im(m, 0); // integration of degree 0
139 A = gf_asm('laplacian',mim,mf,mf,ones(1,gf_mesh_fem_get(mf,'nbdof')));
140 A = A +.1*speye(size(A,1),size(A,1));
141 B = rand(gf_mesh_fem_get(mf,'nbdof'),1);
142 //[L,U] = luinc(A,'0');
143 [L,U] = lu(full(A));
144 X1 = gf_linsolve('cg',A,B);
145 mm = gf_spmat('copy',inv(L));
146 p = gf_precond('spmat',mm);
147 gf_workspace('stats')
148 X2 = gf_linsolve('cg',A,B,gf_precond('spmat',speye(size(A))));
149 gfassert('norm(X1-X2)<1e-13');
150 end
+0
-19
interface/src/scilab/tests/unit_tests/check_workspace.sce less more
0 gf_workspace('clear all');
1 lines(0);
2
3 gf_workspace('stats');
4 gf_workspace('push');
5 m = gf_mesh('empty',1);
6 mf = gf_mesh_fem(m);
7 gf_workspace('stats');
8 gf_workspace('pop');
9 gf_workspace('push','foo');
10 m = gf_mesh('empty',2);
11 mf = gf_mesh_fem(m);
12 gf_workspace('keep',mf);
13 gf_workspace('pop');
14 gf_workspace('stats');
15 gf_delete(mf);
16 asserterr('gf_delete(mf)');
17 gf_workspace('stats');
18 gf_workspace('clear all');
+0
-105
interface/src/scilab/tests/unit_tests/test_argyris.sce less more
0 clear pde;
1 gf_workspace('clear all');
2
3 NX = 10
4 m = gf_mesh('triangles grid',[0:1/NX:1],[0:1/NX:1]);
5 //gf_mesh_set(m,'transform', [.3 .8; .8 -.2]);
6 //m = gf_mesh('pt2d', [0 0; 1 0; 0 1]', [1 2 3]');
7
8 // create a mesh_fem of for a field of dimension 1 (i.e. a scalar field)
9 mf = gf_mesh_fem(m,1);
10 mfl = gf_mesh_fem(m,1);
11 mflg = gf_mesh_fem(m,1);
12 mflh = gf_mesh_fem(m,1);
13
14 // assign the Q2 fem to all convexes of the mesh_fem,
15
16 //gf_mesh_fem_set(mf,'fem',gf_fem('FEM_PK(2,3)'));
17 //gf_mesh_fem_set(mf,'fem',gf_fem('FEM_ARGYRIS'));
18 gf_mesh_fem_set(mf,'fem',gf_fem('FEM_HCT_TRIANGLE'));
19 //gf_mesh_fem_set(mf,'fem',gf_fem('FEM_HERMITE(2)'));
20
21 gf_mesh_fem_set(mfl,'fem',gf_fem('FEM_PK(2,5)'));
22 gf_mesh_fem_set(mflg,'fem',gf_fem('FEM_PK_DISCONTINUOUS(2,4)'));
23 gf_mesh_fem_set(mflh,'fem',gf_fem('FEM_PK_DISCONTINUOUS(2,3)'));
24
25 // an exact integration will be used
26 //mim = gf_mesh_im(m, gf_integ('IM_TRIANGLE(13)'));
27 mim = gf_mesh_im(m, gf_integ('IM_HCT_COMPOSITE(IM_TRIANGLE(13))'));
28
29 // detect the border of the mesh
30 border = gf_mesh_get(m,'outer faces');
31
32 // mark it as boundary #1
33 gf_mesh_set(m, 'boundary', 1, border);
34
35 h = scf();
36 h.color_map = jetcolormap(255);
37 drawlater;
38 gf_plot_mesh(m, 'regions', [1]); // the boundary edges appears in red
39 h.color_map = jetcolormap(255);
40 drawnow;
41
42 pause;
43
44 // exact solution
45
46 if 0 then
47 // setup a pde structure for gf_solve
48 pde = init_pde();
49
50 pde('type') = 'laplacian';
51 pde('lambda') = list(1);
52 pde('mim') = mim;
53 pde('mf_u') = mf; // this does not copy whole objects, just their handles
54 pde('mf_d') = mfl;
55 expr_u = 'y.*(y-1).*x.*(x-1)+x.^5/10';
56 expr_f = '-(2*(x.^2+y.^2)-2*x-2*y+20*x.^3/10)';
57 pde('F') = list(expr_f);
58
59 pde = add_empty_bound(pde);
60 pde('bound')($)('type') = 'Dirichlet';
61 pde('bound')($)('R') = list(expr_u);
62
63 U = gf_solve(pde);
64 Uexact = gf_mesh_fem_get_eval(mfl, list(list(expr_u)));
65 else
66 expr_u = 'y.^5';
67 Uexact = gf_mesh_fem_get_eval(mfl, list(list(expr_u)));
68 M = gf_asm('mass matrix', mim, mf, mf);
69 F = gf_asm('volumic source', mim, mf, mfl, Uexact);
70 U = (M\F)';
71 end
72
73 Ul = gf_compute(mf,U,'interpolate on', mfl);
74 DUl = gf_compute(mfl, Ul, 'gradient',mflg);
75 D2Ul = gf_compute(mflg, DUl, 'gradient',mflh);
76 D2Ul2 = gf_compute(mfl,Ul, 'hessian',mflh);
77 nref = 4
78
79 h = scf();
80 h.color_map = jetcolormap(255);
81 drawlater;
82 subplot(2,2,1);
83 gf_plot(mfl,Ul,'mesh','on','refine',nref,'contour',.01:.01:.1);
84 colorbar(min(Ul),max(Ul));
85 title('computed solution');
86
87 subplot(2,2,2);
88 gf_plot(mfl,Ul-Uexact,'mesh','on','refine',nref);
89 colorbar(min(Ul-Uexact),max(Ul-Uexact));
90 title('difference with exact solution');
91
92 subplot(2,2,3);
93 gf_plot(mflg,DUl(1,:),'mesh','on', 'refine', nref);
94 colorbar(min(DUl(1,:)),max(DUl(1,:)));
95 title('gradx');
96
97 subplot(2,2,4);
98 gf_plot(mflg,DUl(2,:),'mesh','on', 'refine', nref);
99 colorbar(min(DUl(2,:)),max(DUl(2,:)));
100 title('grady');
101 drawnow;
102
103 disp(sprintf('H1 norm of error: %g', gf_compute(mfl,Ul-Uexact,'H1 norm',mim)));
104
+0
-157
interface/src/scilab/tests/unit_tests/test_plasticity_new_brick.sce less more
0 gf_workspace('clear all');
1
2 //
3
4 // We try to compute a plasticity problem with a Von Mises crierion
5 // For convenience we consider an homogenous Dirichlet condition on the left
6 // of the domain and an easy computed Neumann Condition on the right
7
8 //
9
10 // Initialize used data
11 L = 100;
12 H = 20;
13 lambda = 121150;
14 mu = 80769;
15 von_mises_threshold = 8000;
16 f = [0 -330]';
17 t = [0 0.9032 1 1.1 1.3 1.5 1.7 1.74 1.7 1.5 1.3 1.1 1 0.9032 0.7 0.5 0.3 0.1 0];
18
19 // Create the mesh
20 m = gf_mesh('triangles grid', [0:4:L], [0:2:H]);
21
22 // Plotting
23 h_graph = scf();
24 h_graph.color_map = jetcolormap(256);
25 drawlater;
26 gf_plot_mesh(m, 'vertices', 'on', 'convexes', 'on');
27 drawnow;
28
29 // Define used MeshIm
30 mim = gf_mesh_im(m); gf_mesh_im_set(mim, 'integ', gf_integ('IM_TRIANGLE(6)')); // Gauss methods on triangles
31
32 // Define used MeshFem
33 mf_u = gf_mesh_fem(m,2); gf_mesh_fem_set(mf_u, 'fem', gf_fem('FEM_PK(2,2)'));
34 mf_data = gf_mesh_fem(m); gf_mesh_fem_set(mf_data, 'fem', gf_fem('FEM_PK_DISCONTINUOUS(2,0)'));
35 mf_sigma = gf_mesh_fem(m,4); gf_mesh_fem_set(mf_sigma, 'fem', gf_fem('FEM_PK_DISCONTINUOUS(2,1)'));
36 mf_err = gf_mesh_fem(m); gf_mesh_fem_set(mf_err, 'fem', gf_fem('FEM_PK(2,0)'));
37 mf_vm = gf_mesh_fem(m); gf_mesh_fem_set(mf_vm, 'fem', gf_fem('FEM_PK_DISCONTINUOUS(2,1)'));
38 mf_pl = gf_mesh_fem(m); gf_mesh_fem_set(mf_pl, 'fem', gf_fem('FEM_PK_DISCONTINUOUS(2,1)'));
39
40 // Find the border of the domain
41 P = gf_mesh_get(m, 'pts');
42 pidleft = find(abs(P(1,:))<1e-6); // Retrieve index of points which x near to 0
43 pidright = find(abs(P(1,:) - L)<1e-6); // Retrieve index of points which x near to L
44 fleft = gf_mesh_get(m, 'faces from pid', pidleft);
45 fright = gf_mesh_get(m, 'faces from pid', pidright);
46
47 // Decomposed the mesh into 2 regions with different values of Lamé coeff
48 CV = gf_mesh_get(m, 'cvid');
49 CVbottom = find(CV <= 250); // Retrieve index of convex located at the bottom
50 CVtop = find(CV > 250); // Retrieve index of convex located at the top
51
52 // Definition of Lame coeff
53 lambda(CVbottom) = 121150; // Stell
54 lambda(CVtop) = 84605; // Iron
55 //lambda(CV) = 84605;
56 mu(CVbottom) = 80769; // Stell
57 mu(CVtop) = 77839; // Iron
58 //mu(CV) = 77839;
59 von_mises_threshold(CVbottom) = 7000;
60 von_mises_threshold(CVtop) = 8000;
61
62 // Assign boundary numbers
63 gf_mesh_set(m,'boundary',1,fleft); // for Dirichlet condition
64 gf_mesh_set(m,'boundary',2,fright); // for Neumann condition
65
66 // Create the model
67 md = gf_model('real');
68
69 // Declare that u is the unknown of the system on mf_u
70 // 2 is the number of version of the data stored, for the time integration scheme
71 gf_model_set(md, 'add fem variable', 'u', mf_u, 2);
72
73 // Declare that lambda is a data of the system on mf_data
74 gf_model_set(md, 'add initialized fem data', 'lambda', mf_data, lambda);
75
76 // Declare that mu is a data of the system on mf_data
77 gf_model_set(md, 'add initialized fem data', 'mu', mf_data, mu);
78
79 // Declare that von_mises_threshold is a data of the system on mf_data
80 gf_model_set(md, 'add initialized fem data', 'von_mises_threshold', mf_data, von_mises_threshold);
81
82 // Declare that sigma is a data of the system on mf_sigma
83 // 2 is the number of version of the data stored, for the time integration scheme
84 gf_model_set(md, 'add fem data', 'sigma', mf_sigma);
85
86 // Add plasticity brick on u
87 gf_model_set(md, 'add elastoplasticity brick', mim, 'VM', 'u', 'lambda', 'mu', 'von_mises_threshold', 'sigma');
88
89 // Add homogeneous Dirichlet condition to u on the left hand side of the domain
90 gf_model_set(md, 'add Dirichlet condition with multipliers', mim, 'u', mf_u, 1);
91
92 // Add a source term to the system
93 gf_model_set(md,'add initialized fem data', 'VolumicData', mf_data, gf_mesh_fem_get_eval(mf_data, list(list(f(1,1)),list(f(2,1)*t(1)))));
94 gf_model_set(md, 'add source term brick', mim, 'u', 'VolumicData', 2);
95
96 VM = zeros(1,gf_mesh_fem_get(mf_vm, 'nbdof'));
97
98 nbstep = size(t,2);
99
100 dd = gf_mesh_fem_get(mf_err, 'basic dof from cvid');
101
102 h_graph_2 = scf();
103 h_graph_2.color_map = jetcolormap(256);
104
105 h_graph_3 = scf();
106 h_graph_3.color_map = jetcolormap(256);
107
108 for step=1:nbstep,
109 if step > 1 then
110 gf_model_set(md, 'variable', 'VolumicData', gf_mesh_fem_get_eval(mf_data, list(list(f(1,1)),list(f(2,1)*t(step)))));
111 end
112
113 // Solve the system
114 gf_model_get(md, 'solve','lsolver', 'superlu', 'lsearch', 'simplest', 'alpha min', 0.8, 'very noisy', 'max_iter', 100, 'max_res', 1e-6);
115
116 // Retrieve the solution U
117 U = gf_model_get(md, 'variable', 'u', 0);
118
119 // Compute new plasticity constraints used to compute
120 // the Von Mises or Tresca stress
121 gf_model_get(md, 'elastoplasticity next iter', mim, 'u', 'VM', 'lambda', 'mu', 'von_mises_threshold', 'sigma');
122 plast = gf_model_get(md, 'compute plastic part', mim, mf_pl, 'u', 'VM', 'lambda', 'mu', 'von_mises_threshold', 'sigma');
123
124 // Compute Von Mises or Tresca stress
125 VM = gf_model_get(md, 'compute elastoplasticity Von Mises or Tresca', 'sigma', mf_vm, 'Von Mises');
126
127 scf(h_graph_2);
128 drawlater;
129 clf(h_graph_2);
130 subplot(2,1,1);
131 gf_plot(mf_vm,VM,'deformed_mesh', 'on', 'deformation', U, 'deformation_mf', mf_u, 'refine', 4, 'deformation_scale',1);
132 colorbar(min(VM),max(VM));
133
134 n = t(step);
135 title(['Von Mises criterion for t = ', string(n)]);
136
137 ERR = gf_compute(mf_u, U, 'error estimate', mim);
138 E = ERR; E(dd) = ERR;
139
140 subplot(2,1,2);
141 gf_plot(mf_err, E, 'mesh','on', 'refine', 1);
142 colorbar(min(E),max(E));
143 title('Error estimate');
144 drawnow;
145
146 scf(h_graph_3);
147 drawlater;
148 clf(h_graph_3);
149 gf_plot(mf_pl,plast,'deformed_mesh','on', 'deformation',U,'deformation_mf',mf_u,'refine', 4, 'deformation_scale',1);
150 colorbar(min(plast),max(plast));
151 n = t(step);
152 title(['Plastification for t = ', string(n)]);
153 drawnow;
154
155 sleep(1000);
156 end
+0
-9661
ltmain.sh less more
0
1 # libtool (GNU libtool) 2.4.2
2 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
3
4 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
5 # 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
6 # This is free software; see the source for copying conditions. There is NO
7 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
8
9 # GNU Libtool is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
13 #
14 # As a special exception to the GNU General Public License,
15 # if you distribute this file as part of a program or library that
16 # is built using GNU Libtool, you may include this file under the
17 # same distribution terms that you use for the rest of that program.
18 #
19 # GNU Libtool is distributed in the hope that it will be useful, but
20 # WITHOUT ANY WARRANTY; without even the implied warranty of
21 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 # General Public License for more details.
23 #
24 # You should have received a copy of the GNU General Public License
25 # along with GNU Libtool; see the file COPYING. If not, a copy
26 # can be downloaded from http://www.gnu.org/licenses/gpl.html,
27 # or obtained by writing to the Free Software Foundation, Inc.,
28 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
29
30 # Usage: $progname [OPTION]... [MODE-ARG]...
31 #
32 # Provide generalized library-building support services.
33 #
34 # --config show all configuration variables
35 # --debug enable verbose shell tracing
36 # -n, --dry-run display commands without modifying any files
37 # --features display basic configuration information and exit
38 # --mode=MODE use operation mode MODE
39 # --preserve-dup-deps don't remove duplicate dependency libraries
40 # --quiet, --silent don't print informational messages
41 # --no-quiet, --no-silent
42 # print informational messages (default)
43 # --no-warn don't display warning messages
44 # --tag=TAG use configuration variables from tag TAG
45 # -v, --verbose print more informational messages than default
46 # --no-verbose don't print the extra informational messages
47 # --version print version information
48 # -h, --help, --help-all print short, long, or detailed help message
49 #
50 # MODE must be one of the following:
51 #
52 # clean remove files from the build directory
53 # compile compile a source file into a libtool object
54 # execute automatically set library path, then run a program
55 # finish complete the installation of libtool libraries
56 # install install libraries or executables
57 # link create a library or an executable
58 # uninstall remove libraries from an installed directory
59 #
60 # MODE-ARGS vary depending on the MODE. When passed as first option,
61 # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
62 # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
63 #
64 # When reporting a bug, please describe a test case to reproduce it and
65 # include the following information:
66 #
67 # host-triplet: $host
68 # shell: $SHELL
69 # compiler: $LTCC
70 # compiler flags: $LTCFLAGS
71 # linker: $LD (gnu? $with_gnu_ld)
72 # $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.10ubuntu1
73 # automake: $automake_version
74 # autoconf: $autoconf_version
75 #
76 # Report bugs to <bug-libtool@gnu.org>.
77 # GNU libtool home page: <http://www.gnu.org/software/libtool/>.
78 # General help using GNU software: <http://www.gnu.org/gethelp/>.
79
80 PROGRAM=libtool
81 PACKAGE=libtool
82 VERSION="2.4.2 Debian-2.4.2-1.10ubuntu1"
83 TIMESTAMP=""
84 package_revision=1.3337
85
86 # Be Bourne compatible
87 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
88 emulate sh
89 NULLCMD=:
90 # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
91 # is contrary to our usage. Disable this feature.
92 alias -g '${1+"$@"}'='"$@"'
93 setopt NO_GLOB_SUBST
94 else
95 case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
96 fi
97 BIN_SH=xpg4; export BIN_SH # for Tru64
98 DUALCASE=1; export DUALCASE # for MKS sh
99
100 # A function that is used when there is no print builtin or printf.
101 func_fallback_echo ()
102 {
103 eval 'cat <<_LTECHO_EOF
104 $1
105 _LTECHO_EOF'
106 }
107
108 # NLS nuisances: We save the old values to restore during execute mode.
109 lt_user_locale=
110 lt_safe_locale=
111 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
112 do
113 eval "if test \"\${$lt_var+set}\" = set; then
114 save_$lt_var=\$$lt_var
115 $lt_var=C
116 export $lt_var
117 lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
118 lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
119 fi"
120 done
121 LC_ALL=C
122 LANGUAGE=C
123 export LANGUAGE LC_ALL
124
125 $lt_unset CDPATH
126
127
128 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
129 # is ksh but when the shell is invoked as "sh" and the current value of
130 # the _XPG environment variable is not equal to 1 (one), the special
131 # positional parameter $0, within a function call, is the name of the
132 # function.
133 progpath="$0"
134
135
136
137 : ${CP="cp -f"}
138 test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
139 : ${MAKE="make"}
140 : ${MKDIR="mkdir"}
141 : ${MV="mv -f"}
142 : ${RM="rm -f"}
143 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
144 : ${Xsed="$SED -e 1s/^X//"}
145
146 # Global variables:
147 EXIT_SUCCESS=0
148 EXIT_FAILURE=1
149 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
150 EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
151
152 exit_status=$EXIT_SUCCESS
153
154 # Make sure IFS has a sensible default
155 lt_nl='
156 '
157 IFS=" $lt_nl"
158
159 dirname="s,/[^/]*$,,"
160 basename="s,^.*/,,"
161
162 # func_dirname file append nondir_replacement
163 # Compute the dirname of FILE. If nonempty, add APPEND to the result,
164 # otherwise set result to NONDIR_REPLACEMENT.
165 func_dirname ()
166 {
167 func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
168 if test "X$func_dirname_result" = "X${1}"; then
169 func_dirname_result="${3}"
170 else
171 func_dirname_result="$func_dirname_result${2}"
172 fi
173 } # func_dirname may be replaced by extended shell implementation
174
175
176 # func_basename file
177 func_basename ()
178 {
179 func_basename_result=`$ECHO "${1}" | $SED "$basename"`
180 } # func_basename may be replaced by extended shell implementation
181
182
183 # func_dirname_and_basename file append nondir_replacement
184 # perform func_basename and func_dirname in a single function
185 # call:
186 # dirname: Compute the dirname of FILE. If nonempty,
187 # add APPEND to the result, otherwise set result
188 # to NONDIR_REPLACEMENT.
189 # value returned in "$func_dirname_result"
190 # basename: Compute filename of FILE.
191 # value retuned in "$func_basename_result"
192 # Implementation must be kept synchronized with func_dirname
193 # and func_basename. For efficiency, we do not delegate to
194 # those functions but instead duplicate the functionality here.
195 func_dirname_and_basename ()
196 {
197 # Extract subdirectory from the argument.
198 func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
199 if test "X$func_dirname_result" = "X${1}"; then
200 func_dirname_result="${3}"
201 else
202 func_dirname_result="$func_dirname_result${2}"
203 fi
204 func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
205 } # func_dirname_and_basename may be replaced by extended shell implementation
206
207
208 # func_stripname prefix suffix name
209 # strip PREFIX and SUFFIX off of NAME.
210 # PREFIX and SUFFIX must not contain globbing or regex special
211 # characters, hashes, percent signs, but SUFFIX may contain a leading
212 # dot (in which case that matches only a dot).
213 # func_strip_suffix prefix name
214 func_stripname ()
215 {
216 case ${2} in
217 .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
218 *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
219 esac
220 } # func_stripname may be replaced by extended shell implementation
221
222
223 # These SED scripts presuppose an absolute path with a trailing slash.
224 pathcar='s,^/\([^/]*\).*$,\1,'
225 pathcdr='s,^/[^/]*,,'
226 removedotparts=':dotsl
227 s@/\./@/@g
228 t dotsl
229 s,/\.$,/,'
230 collapseslashes='s@/\{1,\}@/@g'
231 finalslash='s,/*$,/,'
232
233 # func_normal_abspath PATH
234 # Remove doubled-up and trailing slashes, "." path components,
235 # and cancel out any ".." path components in PATH after making
236 # it an absolute path.
237 # value returned in "$func_normal_abspath_result"
238 func_normal_abspath ()
239 {
240 # Start from root dir and reassemble the path.
241 func_normal_abspath_result=
242 func_normal_abspath_tpath=$1
243 func_normal_abspath_altnamespace=
244 case $func_normal_abspath_tpath in
245 "")
246 # Empty path, that just means $cwd.
247 func_stripname '' '/' "`pwd`"
248 func_normal_abspath_result=$func_stripname_result
249 return
250 ;;
251 # The next three entries are used to spot a run of precisely
252 # two leading slashes without using negated character classes;
253 # we take advantage of case's first-match behaviour.
254 ///*)
255 # Unusual form of absolute path, do nothing.
256 ;;
257 //*)
258 # Not necessarily an ordinary path; POSIX reserves leading '//'
259 # and for example Cygwin uses it to access remote file shares
260 # over CIFS/SMB, so we conserve a leading double slash if found.
261 func_normal_abspath_altnamespace=/
262 ;;
263 /*)
264 # Absolute path, do nothing.
265 ;;
266 *)
267 # Relative path, prepend $cwd.
268 func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
269 ;;
270 esac
271 # Cancel out all the simple stuff to save iterations. We also want
272 # the path to end with a slash for ease of parsing, so make sure
273 # there is one (and only one) here.
274 func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
275 -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
276 while :; do
277 # Processed it all yet?
278 if test "$func_normal_abspath_tpath" = / ; then
279 # If we ascended to the root using ".." the result may be empty now.
280 if test -z "$func_normal_abspath_result" ; then
281 func_normal_abspath_result=/
282 fi
283 break
284 fi
285 func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
286 -e "$pathcar"`
287 func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
288 -e "$pathcdr"`
289 # Figure out what to do with it
290 case $func_normal_abspath_tcomponent in
291 "")
292 # Trailing empty path component, ignore it.
293 ;;
294 ..)
295 # Parent dir; strip last assembled component from result.
296 func_dirname "$func_normal_abspath_result"
297 func_normal_abspath_result=$func_dirname_result
298 ;;
299 *)
300 # Actual path component, append it.
301 func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
302 ;;
303 esac
304 done
305 # Restore leading double-slash if one was found on entry.
306 func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
307 }
308
309 # func_relative_path SRCDIR DSTDIR
310 # generates a relative path from SRCDIR to DSTDIR, with a trailing
311 # slash if non-empty, suitable for immediately appending a filename
312 # without needing to append a separator.
313 # value returned in "$func_relative_path_result"
314 func_relative_path ()
315 {
316 func_relative_path_result=
317 func_normal_abspath "$1"
318 func_relative_path_tlibdir=$func_normal_abspath_result
319 func_normal_abspath "$2"
320 func_relative_path_tbindir=$func_normal_abspath_result
321
322 # Ascend the tree starting from libdir
323 while :; do
324 # check if we have found a prefix of bindir
325 case $func_relative_path_tbindir in
326 $func_relative_path_tlibdir)
327 # found an exact match
328 func_relative_path_tcancelled=
329 break
330 ;;
331 $func_relative_path_tlibdir*)
332 # found a matching prefix
333 func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
334 func_relative_path_tcancelled=$func_stripname_result
335 if test -z "$func_relative_path_result"; then
336 func_relative_path_result=.
337 fi
338 break
339 ;;
340 *)
341 func_dirname $func_relative_path_tlibdir
342 func_relative_path_tlibdir=${func_dirname_result}
343 if test "x$func_relative_path_tlibdir" = x ; then
344 # Have to descend all the way to the root!
345 func_relative_path_result=../$func_relative_path_result
346 func_relative_path_tcancelled=$func_relative_path_tbindir
347 break
348 fi
349 func_relative_path_result=../$func_relative_path_result
350 ;;
351 esac
352 done
353
354 # Now calculate path; take care to avoid doubling-up slashes.
355 func_stripname '' '/' "$func_relative_path_result"
356 func_relative_path_result=$func_stripname_result
357 func_stripname '/' '/' "$func_relative_path_tcancelled"
358 if test "x$func_stripname_result" != x ; then
359 func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
360 fi
361
362 # Normalisation. If bindir is libdir, return empty string,
363 # else relative path ending with a slash; either way, target
364 # file name can be directly appended.
365 if test ! -z "$func_relative_path_result"; then
366 func_stripname './' '' "$func_relative_path_result/"
367 func_relative_path_result=$func_stripname_result
368 fi
369 }
370
371 # The name of this program:
372 func_dirname_and_basename "$progpath"
373 progname=$func_basename_result
374
375 # Make sure we have an absolute path for reexecution:
376 case $progpath in
377 [\\/]*|[A-Za-z]:\\*) ;;
378 *[\\/]*)
379 progdir=$func_dirname_result
380 progdir=`cd "$progdir" && pwd`
381 progpath="$progdir/$progname"
382 ;;
383 *)
384 save_IFS="$IFS"
385 IFS=${PATH_SEPARATOR-:}
386 for progdir in $PATH; do
387 IFS="$save_IFS"
388 test -x "$progdir/$progname" && break
389 done
390 IFS="$save_IFS"
391 test -n "$progdir" || progdir=`pwd`
392 progpath="$progdir/$progname"
393 ;;
394 esac
395
396 # Sed substitution that helps us do robust quoting. It backslashifies
397 # metacharacters that are still active within double-quoted strings.
398 Xsed="${SED}"' -e 1s/^X//'
399 sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
400
401 # Same as above, but do not quote variable references.
402 double_quote_subst='s/\(["`\\]\)/\\\1/g'
403
404 # Sed substitution that turns a string into a regex matching for the
405 # string literally.
406 sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
407
408 # Sed substitution that converts a w32 file name or path
409 # which contains forward slashes, into one that contains
410 # (escaped) backslashes. A very naive implementation.
411 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
412
413 # Re-`\' parameter expansions in output of double_quote_subst that were
414 # `\'-ed in input to the same. If an odd number of `\' preceded a '$'
415 # in input to double_quote_subst, that '$' was protected from expansion.
416 # Since each input `\' is now two `\'s, look for any number of runs of
417 # four `\'s followed by two `\'s and then a '$'. `\' that '$'.
418 bs='\\'
419 bs2='\\\\'
420 bs4='\\\\\\\\'
421 dollar='\$'
422 sed_double_backslash="\
423 s/$bs4/&\\
424 /g
425 s/^$bs2$dollar/$bs&/
426 s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
427 s/\n//g"
428
429 # Standard options:
430 opt_dry_run=false
431 opt_help=false
432 opt_quiet=false
433 opt_verbose=false
434 opt_warning=:
435
436 # func_echo arg...
437 # Echo program name prefixed message, along with the current mode
438 # name if it has been set yet.
439 func_echo ()
440 {
441 $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
442 }
443
444 # func_verbose arg...
445 # Echo program name prefixed message in verbose mode only.
446 func_verbose ()
447 {
448 $opt_verbose && func_echo ${1+"$@"}
449
450 # A bug in bash halts the script if the last line of a function
451 # fails when set -e is in force, so we need another command to
452 # work around that:
453 :
454 }
455
456 # func_echo_all arg...
457 # Invoke $ECHO with all args, space-separated.
458 func_echo_all ()
459 {
460 $ECHO "$*"
461 }
462
463 # func_error arg...
464 # Echo program name prefixed message to standard error.
465 func_error ()
466 {
467 $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
468 }
469
470 # func_warning arg...
471 # Echo program name prefixed warning message to standard error.
472 func_warning ()
473 {
474 $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
475
476 # bash bug again:
477 :
478 }
479
480 # func_fatal_error arg...
481 # Echo program name prefixed message to standard error, and exit.
482 func_fatal_error ()
483 {
484 func_error ${1+"$@"}
485 exit $EXIT_FAILURE
486 }
487
488 # func_fatal_help arg...
489 # Echo program name prefixed message to standard error, followed by
490 # a help hint, and exit.
491 func_fatal_help ()
492 {
493 func_error ${1+"$@"}
494 func_fatal_error "$help"
495 }
496 help="Try \`$progname --help' for more information." ## default
497
498
499 # func_grep expression filename
500 # Check whether EXPRESSION matches any line of FILENAME, without output.
501 func_grep ()
502 {
503 $GREP "$1" "$2" >/dev/null 2>&1
504 }
505
506
507 # func_mkdir_p directory-path
508 # Make sure the entire path to DIRECTORY-PATH is available.
509 func_mkdir_p ()
510 {
511 my_directory_path="$1"
512 my_dir_list=
513
514 if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
515
516 # Protect directory names starting with `-'
517 case $my_directory_path in
518 -*) my_directory_path="./$my_directory_path" ;;
519 esac
520
521 # While some portion of DIR does not yet exist...
522 while test ! -d "$my_directory_path"; do
523 # ...make a list in topmost first order. Use a colon delimited
524 # list incase some portion of path contains whitespace.
525 my_dir_list="$my_directory_path:$my_dir_list"
526
527 # If the last portion added has no slash in it, the list is done
528 case $my_directory_path in */*) ;; *) break ;; esac
529
530 # ...otherwise throw away the child directory and loop
531 my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
532 done
533 my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
534
535 save_mkdir_p_IFS="$IFS"; IFS=':'
536 for my_dir in $my_dir_list; do
537 IFS="$save_mkdir_p_IFS"
538 # mkdir can fail with a `File exist' error if two processes
539 # try to create one of the directories concurrently. Don't
540 # stop in that case!
541 $MKDIR "$my_dir" 2>/dev/null || :
542 done
543 IFS="$save_mkdir_p_IFS"
544
545 # Bail out if we (or some other process) failed to create a directory.
546 test -d "$my_directory_path" || \
547 func_fatal_error "Failed to create \`$1'"
548 fi
549 }
550
551
552 # func_mktempdir [string]
553 # Make a temporary directory that won't clash with other running
554 # libtool processes, and avoids race conditions if possible. If
555 # given, STRING is the basename for that directory.
556 func_mktempdir ()
557 {
558 my_template="${TMPDIR-/tmp}/${1-$progname}"
559
560 if test "$opt_dry_run" = ":"; then
561 # Return a directory name, but don't create it in dry-run mode
562 my_tmpdir="${my_template}-$$"
563 else
564
565 # If mktemp works, use that first and foremost
566 my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
567
568 if test ! -d "$my_tmpdir"; then
569 # Failing that, at least try and use $RANDOM to avoid a race
570 my_tmpdir="${my_template}-${RANDOM-0}$$"
571
572 save_mktempdir_umask=`umask`
573 umask 0077
574 $MKDIR "$my_tmpdir"
575 umask $save_mktempdir_umask
576 fi
577
578 # If we're not in dry-run mode, bomb out on failure
579 test -d "$my_tmpdir" || \
580 func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
581 fi
582
583 $ECHO "$my_tmpdir"
584 }
585
586
587 # func_quote_for_eval arg
588 # Aesthetically quote ARG to be evaled later.
589 # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
590 # is double-quoted, suitable for a subsequent eval, whereas
591 # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
592 # which are still active within double quotes backslashified.
593 func_quote_for_eval ()
594 {
595 case $1 in
596 *[\\\`\"\$]*)
597 func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
598 *)
599 func_quote_for_eval_unquoted_result="$1" ;;
600 esac
601
602 case $func_quote_for_eval_unquoted_result in
603 # Double-quote args containing shell metacharacters to delay
604 # word splitting, command substitution and and variable
605 # expansion for a subsequent eval.
606 # Many Bourne shells cannot handle close brackets correctly
607 # in scan sets, so we specify it separately.
608 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
609 func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
610 ;;
611 *)
612 func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
613 esac
614 }
615
616
617 # func_quote_for_expand arg
618 # Aesthetically quote ARG to be evaled later; same as above,
619 # but do not quote variable references.
620 func_quote_for_expand ()
621 {
622 case $1 in
623 *[\\\`\"]*)
624 my_arg=`$ECHO "$1" | $SED \
625 -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
626 *)
627 my_arg="$1" ;;
628 esac
629
630 case $my_arg in
631 # Double-quote args containing shell metacharacters to delay
632 # word splitting and command substitution for a subsequent eval.
633 # Many Bourne shells cannot handle close brackets correctly
634 # in scan sets, so we specify it separately.
635 *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
636 my_arg="\"$my_arg\""
637 ;;
638 esac
639
640 func_quote_for_expand_result="$my_arg"
641 }
642
643
644 # func_show_eval cmd [fail_exp]
645 # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
646 # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
647 # is given, then evaluate it.
648 func_show_eval ()
649 {
650 my_cmd="$1"
651 my_fail_exp="${2-:}"
652
653 ${opt_silent-false} || {
654 func_quote_for_expand "$my_cmd"
655 eval "func_echo $func_quote_for_expand_result"
656 }
657
658 if ${opt_dry_run-false}; then :; else
659 eval "$my_cmd"
660 my_status=$?
661 if test "$my_status" -eq 0; then :; else
662 eval "(exit $my_status); $my_fail_exp"
663 fi
664 fi
665 }
666
667
668 # func_show_eval_locale cmd [fail_exp]
669 # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
670 # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
671 # is given, then evaluate it. Use the saved locale for evaluation.
672 func_show_eval_locale ()
673 {
674 my_cmd="$1"
675 my_fail_exp="${2-:}"
676
677 ${opt_silent-false} || {
678 func_quote_for_expand "$my_cmd"
679 eval "func_echo $func_quote_for_expand_result"
680 }
681
682 if ${opt_dry_run-false}; then :; else
683 eval "$lt_user_locale
684 $my_cmd"
685 my_status=$?
686 eval "$lt_safe_locale"
687 if test "$my_status" -eq 0; then :; else
688 eval "(exit $my_status); $my_fail_exp"
689 fi
690 fi
691 }
692
693 # func_tr_sh
694 # Turn $1 into a string suitable for a shell variable name.
695 # Result is stored in $func_tr_sh_result. All characters
696 # not in the set a-zA-Z0-9_ are replaced with '_'. Further,
697 # if $1 begins with a digit, a '_' is prepended as well.
698 func_tr_sh ()
699 {
700 case $1 in
701 [0-9]* | *[!a-zA-Z0-9_]*)
702 func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
703 ;;
704 * )
705 func_tr_sh_result=$1
706 ;;
707 esac
708 }
709
710
711 # func_version
712 # Echo version message to standard output and exit.
713 func_version ()
714 {
715 $opt_debug
716
717 $SED -n '/(C)/!b go
718 :more
719 /\./!{
720 N
721 s/\n# / /
722 b more
723 }
724 :go
725 /^# '$PROGRAM' (GNU /,/# warranty; / {
726 s/^# //
727 s/^# *$//
728 s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
729 p
730 }' < "$progpath"
731 exit $?
732 }
733
734 # func_usage
735 # Echo short help message to standard output and exit.
736 func_usage ()
737 {
738 $opt_debug
739
740 $SED -n '/^# Usage:/,/^# *.*--help/ {
741 s/^# //
742 s/^# *$//
743 s/\$progname/'$progname'/
744 p
745 }' < "$progpath"
746 echo
747 $ECHO "run \`$progname --help | more' for full usage"
748 exit $?
749 }
750
751 # func_help [NOEXIT]
752 # Echo long help message to standard output and exit,
753 # unless 'noexit' is passed as argument.
754 func_help ()
755 {
756 $opt_debug
757
758 $SED -n '/^# Usage:/,/# Report bugs to/ {
759 :print
760 s/^# //
761 s/^# *$//
762 s*\$progname*'$progname'*
763 s*\$host*'"$host"'*
764 s*\$SHELL*'"$SHELL"'*
765 s*\$LTCC*'"$LTCC"'*
766 s*\$LTCFLAGS*'"$LTCFLAGS"'*
767 s*\$LD*'"$LD"'*
768 s/\$with_gnu_ld/'"$with_gnu_ld"'/
769 s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
770 s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
771 p
772 d
773 }
774 /^# .* home page:/b print
775 /^# General help using/b print
776 ' < "$progpath"
777 ret=$?
778 if test -z "$1"; then
779 exit $ret
780 fi
781 }
782
783 # func_missing_arg argname
784 # Echo program name prefixed message to standard error and set global
785 # exit_cmd.
786 func_missing_arg ()
787 {
788 $opt_debug
789
790 func_error "missing argument for $1."
791 exit_cmd=exit
792 }
793
794
795 # func_split_short_opt shortopt
796 # Set func_split_short_opt_name and func_split_short_opt_arg shell
797 # variables after splitting SHORTOPT after the 2nd character.
798 func_split_short_opt ()
799 {
800 my_sed_short_opt='1s/^\(..\).*$/\1/;q'
801 my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
802
803 func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
804 func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
805 } # func_split_short_opt may be replaced by extended shell implementation
806
807
808 # func_split_long_opt longopt
809 # Set func_split_long_opt_name and func_split_long_opt_arg shell
810 # variables after splitting LONGOPT at the `=' sign.
811 func_split_long_opt ()
812 {
813 my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
814 my_sed_long_arg='1s/^--[^=]*=//'
815
816 func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
817 func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
818 } # func_split_long_opt may be replaced by extended shell implementation
819
820 exit_cmd=:
821
822
823
824
825
826 magic="%%%MAGIC variable%%%"
827 magic_exe="%%%MAGIC EXE variable%%%"
828
829 # Global variables.
830 nonopt=
831 preserve_args=
832 lo2o="s/\\.lo\$/.${objext}/"
833 o2lo="s/\\.${objext}\$/.lo/"
834 extracted_archives=
835 extracted_serial=0
836
837 # If this variable is set in any of the actions, the command in it
838 # will be execed at the end. This prevents here-documents from being
839 # left over by shells.
840 exec_cmd=
841
842 # func_append var value
843 # Append VALUE to the end of shell variable VAR.
844 func_append ()
845 {
846 eval "${1}=\$${1}\${2}"
847 } # func_append may be replaced by extended shell implementation
848
849 # func_append_quoted var value
850 # Quote VALUE and append to the end of shell variable VAR, separated
851 # by a space.
852 func_append_quoted ()
853 {
854 func_quote_for_eval "${2}"
855 eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
856 } # func_append_quoted may be replaced by extended shell implementation
857
858
859 # func_arith arithmetic-term...
860 func_arith ()
861 {
862 func_arith_result=`expr "${@}"`
863 } # func_arith may be replaced by extended shell implementation
864
865
866 # func_len string
867 # STRING may not start with a hyphen.
868 func_len ()
869 {
870 func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
871 } # func_len may be replaced by extended shell implementation
872
873
874 # func_lo2o object
875 func_lo2o ()
876 {
877 func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
878 } # func_lo2o may be replaced by extended shell implementation
879
880
881 # func_xform libobj-or-source
882 func_xform ()
883 {
884 func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
885 } # func_xform may be replaced by extended shell implementation
886
887
888 # func_fatal_configuration arg...
889 # Echo program name prefixed message to standard error, followed by
890 # a configuration failure hint, and exit.
891 func_fatal_configuration ()
892 {
893 func_error ${1+"$@"}
894 func_error "See the $PACKAGE documentation for more information."
895 func_fatal_error "Fatal configuration error."
896 }
897
898
899 # func_config
900 # Display the configuration for all the tags in this script.
901 func_config ()
902 {
903 re_begincf='^# ### BEGIN LIBTOOL'
904 re_endcf='^# ### END LIBTOOL'
905
906 # Default configuration.
907 $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
908
909 # Now print the configurations for the tags.
910 for tagname in $taglist; do
911 $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
912 done
913
914 exit $?
915 }
916
917 # func_features
918 # Display the features supported by this script.
919 func_features ()
920 {
921 echo "host: $host"
922 if test "$build_libtool_libs" = yes; then
923 echo "enable shared libraries"
924 else
925 echo "disable shared libraries"
926 fi
927 if test "$build_old_libs" = yes; then
928 echo "enable static libraries"
929 else
930 echo "disable static libraries"
931 fi
932
933 exit $?
934 }
935
936 # func_enable_tag tagname
937 # Verify that TAGNAME is valid, and either flag an error and exit, or
938 # enable the TAGNAME tag. We also add TAGNAME to the global $taglist
939 # variable here.
940 func_enable_tag ()
941 {
942 # Global variable:
943 tagname="$1"
944
945 re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
946 re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
947 sed_extractcf="/$re_begincf/,/$re_endcf/p"
948
949 # Validate tagname.
950 case $tagname in
951 *[!-_A-Za-z0-9,/]*)
952 func_fatal_error "invalid tag name: $tagname"
953 ;;
954 esac
955
956 # Don't test for the "default" C tag, as we know it's
957 # there but not specially marked.
958 case $tagname in
959 CC) ;;
960 *)
961 if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
962 taglist="$taglist $tagname"
963
964 # Evaluate the configuration. Be careful to quote the path
965 # and the sed script, to avoid splitting on whitespace, but
966 # also don't use non-portable quotes within backquotes within
967 # quotes we have to do it in 2 steps:
968 extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
969 eval "$extractedcf"
970 else
971 func_error "ignoring unknown tag $tagname"
972 fi
973 ;;
974 esac
975 }
976
977 # func_check_version_match
978 # Ensure that we are using m4 macros, and libtool script from the same
979 # release of libtool.
980 func_check_version_match ()
981 {
982 if test "$package_revision" != "$macro_revision"; then
983 if test "$VERSION" != "$macro_version"; then
984 if test -z "$macro_version"; then
985 cat >&2 <<_LT_EOF
986 $progname: Version mismatch error. This is $PACKAGE $VERSION, but the
987 $progname: definition of this LT_INIT comes from an older release.
988 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
989 $progname: and run autoconf again.
990 _LT_EOF
991 else
992 cat >&2 <<_LT_EOF
993 $progname: Version mismatch error. This is $PACKAGE $VERSION, but the
994 $progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
995 $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
996 $progname: and run autoconf again.
997 _LT_EOF
998 fi
999 else
1000 cat >&2 <<_LT_EOF
1001 $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
1002 $progname: but the definition of this LT_INIT comes from revision $macro_revision.
1003 $progname: You should recreate aclocal.m4 with macros from revision $package_revision
1004 $progname: of $PACKAGE $VERSION and run autoconf again.
1005 _LT_EOF
1006 fi
1007
1008 exit $EXIT_MISMATCH
1009 fi
1010 }
1011
1012
1013 # Shorthand for --mode=foo, only valid as the first argument
1014 case $1 in
1015 clean|clea|cle|cl)
1016 shift; set dummy --mode clean ${1+"$@"}; shift
1017 ;;
1018 compile|compil|compi|comp|com|co|c)
1019 shift; set dummy --mode compile ${1+"$@"}; shift
1020 ;;
1021 execute|execut|execu|exec|exe|ex|e)
1022 shift; set dummy --mode execute ${1+"$@"}; shift
1023 ;;
1024 finish|finis|fini|fin|fi|f)
1025 shift; set dummy --mode finish ${1+"$@"}; shift
1026 ;;
1027 install|instal|insta|inst|ins|in|i)
1028 shift; set dummy --mode install ${1+"$@"}; shift
1029 ;;
1030 link|lin|li|l)
1031 shift; set dummy --mode link ${1+"$@"}; shift
1032 ;;
1033 uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
1034 shift; set dummy --mode uninstall ${1+"$@"}; shift
1035 ;;
1036 esac
1037
1038
1039
1040 # Option defaults:
1041 opt_debug=:
1042 opt_dry_run=false
1043 opt_config=false
1044 opt_preserve_dup_deps=false
1045 opt_features=false
1046 opt_finish=false
1047 opt_help=false
1048 opt_help_all=false
1049 opt_silent=:
1050 opt_warning=:
1051 opt_verbose=:
1052 opt_silent=false
1053 opt_verbose=false
1054
1055
1056 # Parse options once, thoroughly. This comes as soon as possible in the
1057 # script to make things like `--version' happen as quickly as we can.
1058 {
1059 # this just eases exit handling
1060 while test $# -gt 0; do
1061 opt="$1"
1062 shift
1063 case $opt in
1064 --debug|-x) opt_debug='set -x'
1065 func_echo "enabling shell trace mode"
1066 $opt_debug
1067 ;;
1068 --dry-run|--dryrun|-n)
1069 opt_dry_run=:
1070 ;;
1071 --config)
1072 opt_config=:
1073 func_config
1074 ;;
1075 --dlopen|-dlopen)
1076 optarg="$1"
1077 opt_dlopen="${opt_dlopen+$opt_dlopen
1078 }$optarg"
1079 shift
1080 ;;
1081 --preserve-dup-deps)
1082 opt_preserve_dup_deps=:
1083 ;;
1084 --features)
1085 opt_features=:
1086 func_features
1087 ;;
1088 --finish)
1089 opt_finish=:
1090 set dummy --mode finish ${1+"$@"}; shift
1091 ;;
1092 --help)
1093 opt_help=:
1094 ;;
1095 --help-all)
1096 opt_help_all=:
1097 opt_help=': help-all'
1098 ;;
1099 --mode)
1100 test $# = 0 && func_missing_arg $opt && break
1101 optarg="$1"
1102 opt_mode="$optarg"
1103 case $optarg in
1104 # Valid mode arguments:
1105 clean|compile|execute|finish|install|link|relink|uninstall) ;;
1106
1107 # Catch anything else as an error
1108 *) func_error "invalid argument for $opt"
1109 exit_cmd=exit
1110 break
1111 ;;
1112 esac
1113 shift
1114 ;;
1115 --no-silent|--no-quiet)
1116 opt_silent=false
1117 func_append preserve_args " $opt"
1118 ;;
1119 --no-warning|--no-warn)
1120 opt_warning=false
1121 func_append preserve_args " $opt"
1122 ;;
1123 --no-verbose)
1124 opt_verbose=false
1125 func_append preserve_args " $opt"
1126 ;;
1127 --silent|--quiet)
1128 opt_silent=:
1129 func_append preserve_args " $opt"
1130 opt_verbose=false
1131 ;;
1132 --verbose|-v)
1133 opt_verbose=:
1134 func_append preserve_args " $opt"
1135 opt_silent=false
1136 ;;
1137 --tag)
1138 test $# = 0 && func_missing_arg $opt && break
1139 optarg="$1"
1140 opt_tag="$optarg"
1141 func_append preserve_args " $opt $optarg"
1142 func_enable_tag "$optarg"
1143 shift
1144 ;;
1145
1146 -\?|-h) func_usage ;;
1147 --help) func_help ;;
1148 --version) func_version ;;
1149
1150 # Separate optargs to long options:
1151 --*=*)
1152 func_split_long_opt "$opt"
1153 set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
1154 shift
1155 ;;
1156
1157 # Separate non-argument short options:
1158 -\?*|-h*|-n*|-v*)
1159 func_split_short_opt "$opt"
1160 set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
1161 shift
1162 ;;
1163
1164 --) break ;;
1165 -*) func_fatal_help "unrecognized option \`$opt'" ;;
1166 *) set dummy "$opt" ${1+"$@"}; shift; break ;;
1167 esac
1168 done
1169
1170 # Validate options:
1171
1172 # save first non-option argument
1173 if test "$#" -gt 0; then
1174 nonopt="$opt"
1175 shift
1176 fi
1177
1178 # preserve --debug
1179 test "$opt_debug" = : || func_append preserve_args " --debug"
1180
1181 case $host in
1182 *cygwin* | *mingw* | *pw32* | *cegcc*)
1183 # don't eliminate duplications in $postdeps and $predeps
1184 opt_duplicate_compiler_generated_deps=:
1185 ;;
1186 *)
1187 opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
1188 ;;
1189 esac
1190
1191 $opt_help || {
1192 # Sanity checks first:
1193 func_check_version_match
1194
1195 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
1196 func_fatal_configuration "not configured to build any kind of library"
1197 fi
1198
1199 # Darwin sucks
1200 eval std_shrext=\"$shrext_cmds\"
1201
1202 # Only execute mode is allowed to have -dlopen flags.
1203 if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
1204 func_error "unrecognized option \`-dlopen'"
1205 $ECHO "$help" 1>&2
1206 exit $EXIT_FAILURE
1207 fi
1208
1209 # Change the help message to a mode-specific one.
1210 generic_help="$help"
1211 help="Try \`$progname --help --mode=$opt_mode' for more information."
1212 }
1213
1214
1215 # Bail if the options were screwed
1216 $exit_cmd $EXIT_FAILURE
1217 }
1218
1219
1220
1221
1222 ## ----------- ##
1223 ## Main. ##
1224 ## ----------- ##
1225
1226 # func_lalib_p file
1227 # True iff FILE is a libtool `.la' library or `.lo' object file.
1228 # This function is only a basic sanity check; it will hardly flush out
1229 # determined imposters.
1230 func_lalib_p ()
1231 {
1232 test -f "$1" &&
1233 $SED -e 4q "$1" 2>/dev/null \
1234 | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
1235 }
1236
1237 # func_lalib_unsafe_p file
1238 # True iff FILE is a libtool `.la' library or `.lo' object file.
1239 # This function implements the same check as func_lalib_p without
1240 # resorting to external programs. To this end, it redirects stdin and
1241 # closes it afterwards, without saving the original file descriptor.
1242 # As a safety measure, use it only where a negative result would be
1243 # fatal anyway. Works if `file' does not exist.
1244 func_lalib_unsafe_p ()
1245 {
1246 lalib_p=no
1247 if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
1248 for lalib_p_l in 1 2 3 4
1249 do
1250 read lalib_p_line
1251 case "$lalib_p_line" in
1252 \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
1253 esac
1254 done
1255 exec 0<&5 5<&-
1256 fi
1257 test "$lalib_p" = yes
1258 }
1259
1260 # func_ltwrapper_script_p file
1261 # True iff FILE is a libtool wrapper script
1262 # This function is only a basic sanity check; it will hardly flush out
1263 # determined imposters.
1264 func_ltwrapper_script_p ()
1265 {
1266 func_lalib_p "$1"
1267 }
1268
1269 # func_ltwrapper_executable_p file
1270 # True iff FILE is a libtool wrapper executable
1271 # This function is only a basic sanity check; it will hardly flush out
1272 # determined imposters.
1273 func_ltwrapper_executable_p ()
1274 {
1275 func_ltwrapper_exec_suffix=
1276 case $1 in
1277 *.exe) ;;
1278 *) func_ltwrapper_exec_suffix=.exe ;;
1279 esac
1280 $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
1281 }
1282
1283 # func_ltwrapper_scriptname file
1284 # Assumes file is an ltwrapper_executable
1285 # uses $file to determine the appropriate filename for a
1286 # temporary ltwrapper_script.
1287 func_ltwrapper_scriptname ()
1288 {
1289 func_dirname_and_basename "$1" "" "."
1290 func_stripname '' '.exe' "$func_basename_result"
1291 func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
1292 }
1293
1294 # func_ltwrapper_p file
1295 # True iff FILE is a libtool wrapper script or wrapper executable
1296 # This function is only a basic sanity check; it will hardly flush out
1297 # determined imposters.
1298 func_ltwrapper_p ()
1299 {
1300 func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
1301 }
1302
1303
1304 # func_execute_cmds commands fail_cmd
1305 # Execute tilde-delimited COMMANDS.
1306 # If FAIL_CMD is given, eval that upon failure.
1307 # FAIL_CMD may read-access the current command in variable CMD!
1308 func_execute_cmds ()
1309 {
1310 $opt_debug
1311 save_ifs=$IFS; IFS='~'
1312 for cmd in $1; do
1313 IFS=$save_ifs
1314 eval cmd=\"$cmd\"
1315 func_show_eval "$cmd" "${2-:}"
1316 done
1317 IFS=$save_ifs
1318 }
1319
1320
1321 # func_source file
1322 # Source FILE, adding directory component if necessary.
1323 # Note that it is not necessary on cygwin/mingw to append a dot to
1324 # FILE even if both FILE and FILE.exe exist: automatic-append-.exe
1325 # behavior happens only for exec(3), not for open(2)! Also, sourcing
1326 # `FILE.' does not work on cygwin managed mounts.
1327 func_source ()
1328 {
1329 $opt_debug
1330 case $1 in
1331 */* | *\\*) . "$1" ;;
1332 *) . "./$1" ;;
1333 esac
1334 }
1335
1336
1337 # func_resolve_sysroot PATH
1338 # Replace a leading = in PATH with a sysroot. Store the result into
1339 # func_resolve_sysroot_result
1340 func_resolve_sysroot ()
1341 {
1342 func_resolve_sysroot_result=$1
1343 case $func_resolve_sysroot_result in
1344 =*)
1345 func_stripname '=' '' "$func_resolve_sysroot_result"
1346 func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
1347 ;;
1348 esac
1349 }
1350
1351 # func_replace_sysroot PATH
1352 # If PATH begins with the sysroot, replace it with = and
1353 # store the result into func_replace_sysroot_result.
1354 func_replace_sysroot ()
1355 {
1356 case "$lt_sysroot:$1" in
1357 ?*:"$lt_sysroot"*)
1358 func_stripname "$lt_sysroot" '' "$1"
1359 func_replace_sysroot_result="=$func_stripname_result"
1360 ;;
1361 *)
1362 # Including no sysroot.
1363 func_replace_sysroot_result=$1
1364 ;;
1365 esac
1366 }
1367
1368 # func_infer_tag arg
1369 # Infer tagged configuration to use if any are available and
1370 # if one wasn't chosen via the "--tag" command line option.
1371 # Only attempt this if the compiler in the base compile
1372 # command doesn't match the default compiler.
1373 # arg is usually of the form 'gcc ...'
1374 func_infer_tag ()
1375 {
1376 $opt_debug
1377 if test -n "$available_tags" && test -z "$tagname"; then
1378 CC_quoted=
1379 for arg in $CC; do
1380 func_append_quoted CC_quoted "$arg"
1381 done
1382 CC_expanded=`func_echo_all $CC`
1383 CC_quoted_expanded=`func_echo_all $CC_quoted`
1384 case $@ in
1385 # Blanks in the command may have been stripped by the calling shell,
1386 # but not from the CC environment variable when configure was run.
1387 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
1388 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
1389 # Blanks at the start of $base_compile will cause this to fail
1390 # if we don't check for them as well.
1391 *)
1392 for z in $available_tags; do
1393 if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
1394 # Evaluate the configuration.
1395 eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
1396 CC_quoted=
1397 for arg in $CC; do
1398 # Double-quote args containing other shell metacharacters.
1399 func_append_quoted CC_quoted "$arg"
1400 done
1401 CC_expanded=`func_echo_all $CC`
1402 CC_quoted_expanded=`func_echo_all $CC_quoted`
1403 case "$@ " in
1404 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
1405 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
1406 # The compiler in the base compile command matches
1407 # the one in the tagged configuration.
1408 # Assume this is the tagged configuration we want.
1409 tagname=$z
1410 break
1411 ;;
1412 esac
1413 fi
1414 done
1415 # If $tagname still isn't set, then no tagged configuration
1416 # was found and let the user know that the "--tag" command
1417 # line option must be used.
1418 if test -z "$tagname"; then
1419 func_echo "unable to infer tagged configuration"
1420 func_fatal_error "specify a tag with \`--tag'"
1421 # else
1422 # func_verbose "using $tagname tagged configuration"
1423 fi
1424 ;;
1425 esac
1426 fi
1427 }
1428
1429
1430
1431 # func_write_libtool_object output_name pic_name nonpic_name
1432 # Create a libtool object file (analogous to a ".la" file),
1433 # but don't create it if we're doing a dry run.
1434 func_write_libtool_object ()
1435 {
1436 write_libobj=${1}
1437 if test "$build_libtool_libs" = yes; then
1438 write_lobj=\'${2}\'
1439 else
1440 write_lobj=none
1441 fi
1442
1443 if test "$build_old_libs" = yes; then
1444 write_oldobj=\'${3}\'
1445 else
1446 write_oldobj=none
1447 fi
1448
1449 $opt_dry_run || {
1450 cat >${write_libobj}T <<EOF
1451 # $write_libobj - a libtool object file
1452 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
1453 #
1454 # Please DO NOT delete this file!
1455 # It is necessary for linking the library.
1456
1457 # Name of the PIC object.
1458 pic_object=$write_lobj
1459
1460 # Name of the non-PIC object
1461 non_pic_object=$write_oldobj
1462
1463 EOF
1464 $MV "${write_libobj}T" "${write_libobj}"
1465 }
1466 }
1467
1468
1469 ##################################################
1470 # FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
1471 ##################################################
1472
1473 # func_convert_core_file_wine_to_w32 ARG
1474 # Helper function used by file name conversion functions when $build is *nix,
1475 # and $host is mingw, cygwin, or some other w32 environment. Relies on a
1476 # correctly configured wine environment available, with the winepath program
1477 # in $build's $PATH.
1478 #
1479 # ARG is the $build file name to be converted to w32 format.
1480 # Result is available in $func_convert_core_file_wine_to_w32_result, and will
1481 # be empty on error (or when ARG is empty)
1482 func_convert_core_file_wine_to_w32 ()
1483 {
1484 $opt_debug
1485 func_convert_core_file_wine_to_w32_result="$1"
1486 if test -n "$1"; then
1487 # Unfortunately, winepath does not exit with a non-zero error code, so we
1488 # are forced to check the contents of stdout. On the other hand, if the
1489 # command is not found, the shell will set an exit code of 127 and print
1490 # *an error message* to stdout. So we must check for both error code of
1491 # zero AND non-empty stdout, which explains the odd construction:
1492 func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
1493 if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
1494 func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
1495 $SED -e "$lt_sed_naive_backslashify"`
1496 else
1497 func_convert_core_file_wine_to_w32_result=
1498 fi
1499 fi
1500 }
1501 # end: func_convert_core_file_wine_to_w32
1502
1503
1504 # func_convert_core_path_wine_to_w32 ARG
1505 # Helper function used by path conversion functions when $build is *nix, and
1506 # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
1507 # configured wine environment available, with the winepath program in $build's
1508 # $PATH. Assumes ARG has no leading or trailing path separator characters.
1509 #
1510 # ARG is path to be converted from $build format to win32.
1511 # Result is available in $func_convert_core_path_wine_to_w32_result.
1512 # Unconvertible file (directory) names in ARG are skipped; if no directory names
1513 # are convertible, then the result may be empty.
1514 func_convert_core_path_wine_to_w32 ()
1515 {
1516 $opt_debug
1517 # unfortunately, winepath doesn't convert paths, only file names
1518 func_convert_core_path_wine_to_w32_result=""
1519 if test -n "$1"; then
1520 oldIFS=$IFS
1521 IFS=:
1522 for func_convert_core_path_wine_to_w32_f in $1; do
1523 IFS=$oldIFS
1524 func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
1525 if test -n "$func_convert_core_file_wine_to_w32_result" ; then
1526 if test -z "$func_convert_core_path_wine_to_w32_result"; then
1527 func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
1528 else
1529 func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
1530 fi
1531 fi
1532 done
1533 IFS=$oldIFS
1534 fi
1535 }
1536 # end: func_convert_core_path_wine_to_w32
1537
1538
1539 # func_cygpath ARGS...
1540 # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
1541 # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
1542 # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
1543 # (2), returns the Cygwin file name or path in func_cygpath_result (input
1544 # file name or path is assumed to be in w32 format, as previously converted
1545 # from $build's *nix or MSYS format). In case (3), returns the w32 file name
1546 # or path in func_cygpath_result (input file name or path is assumed to be in
1547 # Cygwin format). Returns an empty string on error.
1548 #
1549 # ARGS are passed to cygpath, with the last one being the file name or path to
1550 # be converted.
1551 #
1552 # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
1553 # environment variable; do not put it in $PATH.
1554 func_cygpath ()
1555 {
1556 $opt_debug
1557 if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
1558 func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
1559 if test "$?" -ne 0; then
1560 # on failure, ensure result is empty
1561 func_cygpath_result=
1562 fi
1563 else
1564 func_cygpath_result=
1565 func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
1566 fi
1567 }
1568 #end: func_cygpath
1569
1570
1571 # func_convert_core_msys_to_w32 ARG
1572 # Convert file name or path ARG from MSYS format to w32 format. Return
1573 # result in func_convert_core_msys_to_w32_result.
1574 func_convert_core_msys_to_w32 ()
1575 {
1576 $opt_debug
1577 # awkward: cmd appends spaces to result
1578 func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
1579 $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
1580 }
1581 #end: func_convert_core_msys_to_w32
1582
1583
1584 # func_convert_file_check ARG1 ARG2
1585 # Verify that ARG1 (a file name in $build format) was converted to $host
1586 # format in ARG2. Otherwise, emit an error message, but continue (resetting
1587 # func_to_host_file_result to ARG1).
1588 func_convert_file_check ()
1589 {
1590 $opt_debug
1591 if test -z "$2" && test -n "$1" ; then
1592 func_error "Could not determine host file name corresponding to"
1593 func_error " \`$1'"
1594 func_error "Continuing, but uninstalled executables may not work."
1595 # Fallback:
1596 func_to_host_file_result="$1"
1597 fi
1598 }
1599 # end func_convert_file_check
1600
1601
1602 # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
1603 # Verify that FROM_PATH (a path in $build format) was converted to $host
1604 # format in TO_PATH. Otherwise, emit an error message, but continue, resetting
1605 # func_to_host_file_result to a simplistic fallback value (see below).
1606 func_convert_path_check ()
1607 {
1608 $opt_debug
1609 if test -z "$4" && test -n "$3"; then
1610 func_error "Could not determine the host path corresponding to"
1611 func_error " \`$3'"
1612 func_error "Continuing, but uninstalled executables may not work."
1613 # Fallback. This is a deliberately simplistic "conversion" and
1614 # should not be "improved". See libtool.info.
1615 if test "x$1" != "x$2"; then
1616 lt_replace_pathsep_chars="s|$1|$2|g"
1617 func_to_host_path_result=`echo "$3" |
1618 $SED -e "$lt_replace_pathsep_chars"`
1619 else
1620 func_to_host_path_result="$3"
1621 fi
1622 fi
1623 }
1624 # end func_convert_path_check
1625
1626
1627 # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
1628 # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
1629 # and appending REPL if ORIG matches BACKPAT.
1630 func_convert_path_front_back_pathsep ()
1631 {
1632 $opt_debug
1633 case $4 in
1634 $1 ) func_to_host_path_result="$3$func_to_host_path_result"
1635 ;;
1636 esac
1637 case $4 in
1638 $2 ) func_append func_to_host_path_result "$3"
1639 ;;
1640 esac
1641 }
1642 # end func_convert_path_front_back_pathsep
1643
1644
1645 ##################################################
1646 # $build to $host FILE NAME CONVERSION FUNCTIONS #
1647 ##################################################
1648 # invoked via `$to_host_file_cmd ARG'
1649 #
1650 # In each case, ARG is the path to be converted from $build to $host format.
1651 # Result will be available in $func_to_host_file_result.
1652
1653
1654 # func_to_host_file ARG
1655 # Converts the file name ARG from $build format to $host format. Return result
1656 # in func_to_host_file_result.
1657 func_to_host_file ()
1658 {
1659 $opt_debug
1660 $to_host_file_cmd "$1"
1661 }
1662 # end func_to_host_file
1663
1664
1665 # func_to_tool_file ARG LAZY
1666 # converts the file name ARG from $build format to toolchain format. Return
1667 # result in func_to_tool_file_result. If the conversion in use is listed
1668 # in (the comma separated) LAZY, no conversion takes place.
1669 func_to_tool_file ()
1670 {
1671 $opt_debug
1672 case ,$2, in
1673 *,"$to_tool_file_cmd",*)
1674 func_to_tool_file_result=$1
1675 ;;
1676 *)
1677 $to_tool_file_cmd "$1"
1678 func_to_tool_file_result=$func_to_host_file_result
1679 ;;
1680 esac
1681 }
1682 # end func_to_tool_file
1683
1684
1685 # func_convert_file_noop ARG
1686 # Copy ARG to func_to_host_file_result.
1687 func_convert_file_noop ()
1688 {
1689 func_to_host_file_result="$1"
1690 }
1691 # end func_convert_file_noop
1692
1693
1694 # func_convert_file_msys_to_w32 ARG
1695 # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
1696 # conversion to w32 is not available inside the cwrapper. Returns result in
1697 # func_to_host_file_result.
1698 func_convert_file_msys_to_w32 ()
1699 {
1700 $opt_debug
1701 func_to_host_file_result="$1"
1702 if test -n "$1"; then
1703 func_convert_core_msys_to_w32 "$1"
1704 func_to_host_file_result="$func_convert_core_msys_to_w32_result"
1705 fi
1706 func_convert_file_check "$1" "$func_to_host_file_result"
1707 }
1708 # end func_convert_file_msys_to_w32
1709
1710
1711 # func_convert_file_cygwin_to_w32 ARG
1712 # Convert file name ARG from Cygwin to w32 format. Returns result in
1713 # func_to_host_file_result.
1714 func_convert_file_cygwin_to_w32 ()
1715 {
1716 $opt_debug
1717 func_to_host_file_result="$1"
1718 if test -n "$1"; then
1719 # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
1720 # LT_CYGPATH in this case.
1721 func_to_host_file_result=`cygpath -m "$1"`
1722 fi
1723 func_convert_file_check "$1" "$func_to_host_file_result"
1724 }
1725 # end func_convert_file_cygwin_to_w32
1726
1727
1728 # func_convert_file_nix_to_w32 ARG
1729 # Convert file name ARG from *nix to w32 format. Requires a wine environment
1730 # and a working winepath. Returns result in func_to_host_file_result.
1731 func_convert_file_nix_to_w32 ()
1732 {
1733 $opt_debug
1734 func_to_host_file_result="$1"
1735 if test -n "$1"; then
1736 func_convert_core_file_wine_to_w32 "$1"
1737 func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
1738 fi
1739 func_convert_file_check "$1" "$func_to_host_file_result"
1740 }
1741 # end func_convert_file_nix_to_w32
1742
1743
1744 # func_convert_file_msys_to_cygwin ARG
1745 # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
1746 # Returns result in func_to_host_file_result.
1747 func_convert_file_msys_to_cygwin ()
1748 {
1749 $opt_debug
1750 func_to_host_file_result="$1"
1751 if test -n "$1"; then
1752 func_convert_core_msys_to_w32 "$1"
1753 func_cygpath -u "$func_convert_core_msys_to_w32_result"
1754 func_to_host_file_result="$func_cygpath_result"
1755 fi
1756 func_convert_file_check "$1" "$func_to_host_file_result"
1757 }
1758 # end func_convert_file_msys_to_cygwin
1759
1760
1761 # func_convert_file_nix_to_cygwin ARG
1762 # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
1763 # in a wine environment, working winepath, and LT_CYGPATH set. Returns result
1764 # in func_to_host_file_result.
1765 func_convert_file_nix_to_cygwin ()
1766 {
1767 $opt_debug
1768 func_to_host_file_result="$1"
1769 if test -n "$1"; then
1770 # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
1771 func_convert_core_file_wine_to_w32 "$1"
1772 func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
1773 func_to_host_file_result="$func_cygpath_result"
1774 fi
1775 func_convert_file_check "$1" "$func_to_host_file_result"
1776 }
1777 # end func_convert_file_nix_to_cygwin
1778
1779
1780 #############################################
1781 # $build to $host PATH CONVERSION FUNCTIONS #
1782 #############################################
1783 # invoked via `$to_host_path_cmd ARG'
1784 #
1785 # In each case, ARG is the path to be converted from $build to $host format.
1786 # The result will be available in $func_to_host_path_result.
1787 #
1788 # Path separators are also converted from $build format to $host format. If
1789 # ARG begins or ends with a path separator character, it is preserved (but
1790 # converted to $host format) on output.
1791 #
1792 # All path conversion functions are named using the following convention:
1793 # file name conversion function : func_convert_file_X_to_Y ()
1794 # path conversion function : func_convert_path_X_to_Y ()
1795 # where, for any given $build/$host combination the 'X_to_Y' value is the
1796 # same. If conversion functions are added for new $build/$host combinations,
1797 # the two new functions must follow this pattern, or func_init_to_host_path_cmd
1798 # will break.
1799
1800
1801 # func_init_to_host_path_cmd
1802 # Ensures that function "pointer" variable $to_host_path_cmd is set to the
1803 # appropriate value, based on the value of $to_host_file_cmd.
1804 to_host_path_cmd=
1805 func_init_to_host_path_cmd ()
1806 {
1807 $opt_debug
1808 if test -z "$to_host_path_cmd"; then
1809 func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
1810 to_host_path_cmd="func_convert_path_${func_stripname_result}"
1811 fi
1812 }
1813
1814
1815 # func_to_host_path ARG
1816 # Converts the path ARG from $build format to $host format. Return result
1817 # in func_to_host_path_result.
1818 func_to_host_path ()
1819 {
1820 $opt_debug
1821 func_init_to_host_path_cmd
1822 $to_host_path_cmd "$1"
1823 }
1824 # end func_to_host_path
1825
1826
1827 # func_convert_path_noop ARG
1828 # Copy ARG to func_to_host_path_result.
1829 func_convert_path_noop ()
1830 {
1831 func_to_host_path_result="$1"
1832 }
1833 # end func_convert_path_noop
1834
1835
1836 # func_convert_path_msys_to_w32 ARG
1837 # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
1838 # conversion to w32 is not available inside the cwrapper. Returns result in
1839 # func_to_host_path_result.
1840 func_convert_path_msys_to_w32 ()
1841 {
1842 $opt_debug
1843 func_to_host_path_result="$1"
1844 if test -n "$1"; then
1845 # Remove leading and trailing path separator characters from ARG. MSYS
1846 # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
1847 # and winepath ignores them completely.
1848 func_stripname : : "$1"
1849 func_to_host_path_tmp1=$func_stripname_result
1850 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
1851 func_to_host_path_result="$func_convert_core_msys_to_w32_result"
1852 func_convert_path_check : ";" \
1853 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1854 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1855 fi
1856 }
1857 # end func_convert_path_msys_to_w32
1858
1859
1860 # func_convert_path_cygwin_to_w32 ARG
1861 # Convert path ARG from Cygwin to w32 format. Returns result in
1862 # func_to_host_file_result.
1863 func_convert_path_cygwin_to_w32 ()
1864 {
1865 $opt_debug
1866 func_to_host_path_result="$1"
1867 if test -n "$1"; then
1868 # See func_convert_path_msys_to_w32:
1869 func_stripname : : "$1"
1870 func_to_host_path_tmp1=$func_stripname_result
1871 func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
1872 func_convert_path_check : ";" \
1873 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1874 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1875 fi
1876 }
1877 # end func_convert_path_cygwin_to_w32
1878
1879
1880 # func_convert_path_nix_to_w32 ARG
1881 # Convert path ARG from *nix to w32 format. Requires a wine environment and
1882 # a working winepath. Returns result in func_to_host_file_result.
1883 func_convert_path_nix_to_w32 ()
1884 {
1885 $opt_debug
1886 func_to_host_path_result="$1"
1887 if test -n "$1"; then
1888 # See func_convert_path_msys_to_w32:
1889 func_stripname : : "$1"
1890 func_to_host_path_tmp1=$func_stripname_result
1891 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
1892 func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
1893 func_convert_path_check : ";" \
1894 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1895 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1896 fi
1897 }
1898 # end func_convert_path_nix_to_w32
1899
1900
1901 # func_convert_path_msys_to_cygwin ARG
1902 # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
1903 # Returns result in func_to_host_file_result.
1904 func_convert_path_msys_to_cygwin ()
1905 {
1906 $opt_debug
1907 func_to_host_path_result="$1"
1908 if test -n "$1"; then
1909 # See func_convert_path_msys_to_w32:
1910 func_stripname : : "$1"
1911 func_to_host_path_tmp1=$func_stripname_result
1912 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
1913 func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
1914 func_to_host_path_result="$func_cygpath_result"
1915 func_convert_path_check : : \
1916 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1917 func_convert_path_front_back_pathsep ":*" "*:" : "$1"
1918 fi
1919 }
1920 # end func_convert_path_msys_to_cygwin
1921
1922
1923 # func_convert_path_nix_to_cygwin ARG
1924 # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
1925 # a wine environment, working winepath, and LT_CYGPATH set. Returns result in
1926 # func_to_host_file_result.
1927 func_convert_path_nix_to_cygwin ()
1928 {
1929 $opt_debug
1930 func_to_host_path_result="$1"
1931 if test -n "$1"; then
1932 # Remove leading and trailing path separator characters from
1933 # ARG. msys behavior is inconsistent here, cygpath turns them
1934 # into '.;' and ';.', and winepath ignores them completely.
1935 func_stripname : : "$1"
1936 func_to_host_path_tmp1=$func_stripname_result
1937 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
1938 func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
1939 func_to_host_path_result="$func_cygpath_result"
1940 func_convert_path_check : : \
1941 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1942 func_convert_path_front_back_pathsep ":*" "*:" : "$1"
1943 fi
1944 }
1945 # end func_convert_path_nix_to_cygwin
1946
1947
1948 # func_mode_compile arg...
1949 func_mode_compile ()
1950 {
1951 $opt_debug
1952 # Get the compilation command and the source file.
1953 base_compile=
1954 srcfile="$nonopt" # always keep a non-empty value in "srcfile"
1955 suppress_opt=yes
1956 suppress_output=
1957 arg_mode=normal
1958 libobj=
1959 later=
1960 pie_flag=
1961
1962 for arg
1963 do
1964 case $arg_mode in
1965 arg )
1966 # do not "continue". Instead, add this to base_compile
1967 lastarg="$arg"
1968 arg_mode=normal
1969 ;;
1970
1971 target )
1972 libobj="$arg"
1973 arg_mode=normal
1974 continue
1975 ;;
1976
1977 normal )
1978 # Accept any command-line options.
1979 case $arg in
1980 -o)
1981 test -n "$libobj" && \
1982 func_fatal_error "you cannot specify \`-o' more than once"
1983 arg_mode=target
1984 continue
1985 ;;
1986
1987 -pie | -fpie | -fPIE)
1988 func_append pie_flag " $arg"
1989 continue
1990 ;;
1991
1992 -shared | -static | -prefer-pic | -prefer-non-pic)
1993 func_append later " $arg"
1994 continue
1995 ;;
1996
1997 -no-suppress)
1998 suppress_opt=no
1999 continue
2000 ;;
2001
2002 -Xcompiler)
2003 arg_mode=arg # the next one goes into the "base_compile" arg list
2004 continue # The current "srcfile" will either be retained or
2005 ;; # replaced later. I would guess that would be a bug.
2006
2007 -Wc,*)
2008 func_stripname '-Wc,' '' "$arg"
2009 args=$func_stripname_result
2010 lastarg=
2011 save_ifs="$IFS"; IFS=','
2012 for arg in $args; do
2013 IFS="$save_ifs"
2014 func_append_quoted lastarg "$arg"
2015 done
2016 IFS="$save_ifs"
2017 func_stripname ' ' '' "$lastarg"
2018 lastarg=$func_stripname_result
2019
2020 # Add the arguments to base_compile.
2021 func_append base_compile " $lastarg"
2022 continue
2023 ;;
2024
2025 *)
2026 # Accept the current argument as the source file.
2027 # The previous "srcfile" becomes the current argument.
2028 #
2029 lastarg="$srcfile"
2030 srcfile="$arg"
2031 ;;
2032 esac # case $arg
2033 ;;
2034 esac # case $arg_mode
2035
2036 # Aesthetically quote the previous argument.
2037 func_append_quoted base_compile "$lastarg"
2038 done # for arg
2039
2040 case $arg_mode in
2041 arg)
2042 func_fatal_error "you must specify an argument for -Xcompile"
2043 ;;
2044 target)
2045 func_fatal_error "you must specify a target with \`-o'"
2046 ;;
2047 *)
2048 # Get the name of the library object.
2049 test -z "$libobj" && {
2050 func_basename "$srcfile"
2051 libobj="$func_basename_result"
2052 }
2053 ;;
2054 esac
2055
2056 # Recognize several different file suffixes.
2057 # If the user specifies -o file.o, it is replaced with file.lo
2058 case $libobj in
2059 *.[cCFSifmso] | \
2060 *.ada | *.adb | *.ads | *.asm | \
2061 *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
2062 *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
2063 func_xform "$libobj"
2064 libobj=$func_xform_result
2065 ;;
2066 esac
2067
2068 case $libobj in
2069 *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
2070 *)
2071 func_fatal_error "cannot determine name of library object from \`$libobj'"
2072 ;;
2073 esac
2074
2075 func_infer_tag $base_compile
2076
2077 for arg in $later; do
2078 case $arg in
2079 -shared)
2080 test "$build_libtool_libs" != yes && \
2081 func_fatal_configuration "can not build a shared library"
2082 build_old_libs=no
2083 continue
2084 ;;
2085
2086 -static)
2087 build_libtool_libs=no
2088 build_old_libs=yes
2089 continue
2090 ;;
2091
2092 -prefer-pic)
2093 pic_mode=yes
2094 continue
2095 ;;
2096
2097 -prefer-non-pic)
2098 pic_mode=no
2099 continue
2100 ;;
2101 esac
2102 done
2103
2104 func_quote_for_eval "$libobj"
2105 test "X$libobj" != "X$func_quote_for_eval_result" \
2106 && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
2107 && func_warning "libobj name \`$libobj' may not contain shell special characters."
2108 func_dirname_and_basename "$obj" "/" ""
2109 objname="$func_basename_result"
2110 xdir="$func_dirname_result"
2111 lobj=${xdir}$objdir/$objname
2112
2113 test -z "$base_compile" && \
2114 func_fatal_help "you must specify a compilation command"
2115
2116 # Delete any leftover library objects.
2117 if test "$build_old_libs" = yes; then
2118 removelist="$obj $lobj $libobj ${libobj}T"
2119 else
2120 removelist="$lobj $libobj ${libobj}T"
2121 fi
2122
2123 # On Cygwin there's no "real" PIC flag so we must build both object types
2124 case $host_os in
2125 cygwin* | mingw* | pw32* | os2* | cegcc*)
2126 pic_mode=default
2127 ;;
2128 esac
2129 if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
2130 # non-PIC code in shared libraries is not supported
2131 pic_mode=default
2132 fi
2133
2134 # Calculate the filename of the output object if compiler does
2135 # not support -o with -c
2136 if test "$compiler_c_o" = no; then
2137 output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
2138 lockfile="$output_obj.lock"
2139 else
2140 output_obj=
2141 need_locks=no
2142 lockfile=
2143 fi
2144
2145 # Lock this critical section if it is needed
2146 # We use this script file to make the link, it avoids creating a new file
2147 if test "$need_locks" = yes; then
2148 until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
2149 func_echo "Waiting for $lockfile to be removed"
2150 sleep 2
2151 done
2152 elif test "$need_locks" = warn; then
2153 if test -f "$lockfile"; then
2154 $ECHO "\
2155 *** ERROR, $lockfile exists and contains:
2156 `cat $lockfile 2>/dev/null`
2157
2158 This indicates that another process is trying to use the same
2159 temporary object file, and libtool could not work around it because
2160 your compiler does not support \`-c' and \`-o' together. If you
2161 repeat this compilation, it may succeed, by chance, but you had better
2162 avoid parallel builds (make -j) in this platform, or get a better
2163 compiler."
2164
2165 $opt_dry_run || $RM $removelist
2166 exit $EXIT_FAILURE
2167 fi
2168 func_append removelist " $output_obj"
2169 $ECHO "$srcfile" > "$lockfile"
2170 fi
2171
2172 $opt_dry_run || $RM $removelist
2173 func_append removelist " $lockfile"
2174 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
2175
2176 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
2177 srcfile=$func_to_tool_file_result
2178 func_quote_for_eval "$srcfile"
2179 qsrcfile=$func_quote_for_eval_result
2180
2181 # Only build a PIC object if we are building libtool libraries.
2182 if test "$build_libtool_libs" = yes; then
2183 # Without this assignment, base_compile gets emptied.
2184 fbsd_hideous_sh_bug=$base_compile
2185
2186 if test "$pic_mode" != no; then
2187 command="$base_compile $qsrcfile $pic_flag"
2188 else
2189 # Don't build PIC code
2190 command="$base_compile $qsrcfile"
2191 fi
2192
2193 func_mkdir_p "$xdir$objdir"
2194
2195 if test -z "$output_obj"; then
2196 # Place PIC objects in $objdir
2197 func_append command " -o $lobj"
2198 fi
2199
2200 func_show_eval_locale "$command" \
2201 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
2202
2203 if test "$need_locks" = warn &&
2204 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
2205 $ECHO "\
2206 *** ERROR, $lockfile contains:
2207 `cat $lockfile 2>/dev/null`
2208
2209 but it should contain:
2210 $srcfile
2211
2212 This indicates that another process is trying to use the same
2213 temporary object file, and libtool could not work around it because
2214 your compiler does not support \`-c' and \`-o' together. If you
2215 repeat this compilation, it may succeed, by chance, but you had better
2216 avoid parallel builds (make -j) in this platform, or get a better
2217 compiler."
2218
2219 $opt_dry_run || $RM $removelist
2220 exit $EXIT_FAILURE
2221 fi
2222
2223 # Just move the object if needed, then go on to compile the next one
2224 if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
2225 func_show_eval '$MV "$output_obj" "$lobj"' \
2226 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
2227 fi
2228
2229 # Allow error messages only from the first compilation.
2230 if test "$suppress_opt" = yes; then
2231 suppress_output=' >/dev/null 2>&1'
2232 fi
2233 fi
2234
2235 # Only build a position-dependent object if we build old libraries.
2236 if test "$build_old_libs" = yes; then
2237 if test "$pic_mode" != yes; then
2238 # Don't build PIC code
2239 command="$base_compile $qsrcfile$pie_flag"
2240 else
2241 command="$base_compile $qsrcfile $pic_flag"
2242 fi
2243 if test "$compiler_c_o" = yes; then
2244 func_append command " -o $obj"
2245 fi
2246
2247 # Suppress compiler output if we already did a PIC compilation.
2248 func_append command "$suppress_output"
2249 func_show_eval_locale "$command" \
2250 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
2251
2252 if test "$need_locks" = warn &&
2253 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
2254 $ECHO "\
2255 *** ERROR, $lockfile contains:
2256 `cat $lockfile 2>/dev/null`
2257
2258 but it should contain:
2259 $srcfile
2260
2261 This indicates that another process is trying to use the same
2262 temporary object file, and libtool could not work around it because
2263 your compiler does not support \`-c' and \`-o' together. If you
2264 repeat this compilation, it may succeed, by chance, but you had better
2265 avoid parallel builds (make -j) in this platform, or get a better
2266 compiler."
2267
2268 $opt_dry_run || $RM $removelist
2269 exit $EXIT_FAILURE
2270 fi
2271
2272 # Just move the object if needed
2273 if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
2274 func_show_eval '$MV "$output_obj" "$obj"' \
2275 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
2276 fi
2277 fi
2278
2279 $opt_dry_run || {
2280 func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
2281
2282 # Unlock the critical section if it was locked
2283 if test "$need_locks" != no; then
2284 removelist=$lockfile
2285 $RM "$lockfile"
2286 fi
2287 }
2288
2289 exit $EXIT_SUCCESS
2290 }
2291
2292 $opt_help || {
2293 test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
2294 }
2295
2296 func_mode_help ()
2297 {
2298 # We need to display help for each of the modes.
2299 case $opt_mode in
2300 "")
2301 # Generic help is extracted from the usage comments
2302 # at the start of this file.
2303 func_help
2304 ;;
2305
2306 clean)
2307 $ECHO \
2308 "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
2309
2310 Remove files from the build directory.
2311
2312 RM is the name of the program to use to delete files associated with each FILE
2313 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
2314 to RM.
2315
2316 If FILE is a libtool library, object or program, all the files associated
2317 with it are deleted. Otherwise, only FILE itself is deleted using RM."
2318 ;;
2319
2320 compile)
2321 $ECHO \
2322 "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
2323
2324 Compile a source file into a libtool library object.
2325
2326 This mode accepts the following additional options:
2327
2328 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
2329 -no-suppress do not suppress compiler output for multiple passes
2330 -prefer-pic try to build PIC objects only
2331 -prefer-non-pic try to build non-PIC objects only
2332 -shared do not build a \`.o' file suitable for static linking
2333 -static only build a \`.o' file suitable for static linking
2334 -Wc,FLAG pass FLAG directly to the compiler
2335
2336 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
2337 from the given SOURCEFILE.
2338
2339 The output file name is determined by removing the directory component from
2340 SOURCEFILE, then substituting the C source code suffix \`.c' with the
2341 library object suffix, \`.lo'."
2342 ;;
2343
2344 execute)
2345 $ECHO \
2346 "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
2347
2348 Automatically set library path, then run a program.
2349
2350 This mode accepts the following additional options:
2351
2352 -dlopen FILE add the directory containing FILE to the library path
2353
2354 This mode sets the library path environment variable according to \`-dlopen'
2355 flags.
2356
2357 If any of the ARGS are libtool executable wrappers, then they are translated
2358 into their corresponding uninstalled binary, and any of their required library
2359 directories are added to the library path.
2360
2361 Then, COMMAND is executed, with ARGS as arguments."
2362 ;;
2363
2364 finish)
2365 $ECHO \
2366 "Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
2367
2368 Complete the installation of libtool libraries.
2369
2370 Each LIBDIR is a directory that contains libtool libraries.
2371
2372 The commands that this mode executes may require superuser privileges. Use
2373 the \`--dry-run' option if you just want to see what would be executed."
2374 ;;
2375
2376 install)
2377 $ECHO \
2378 "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
2379
2380 Install executables or libraries.
2381
2382 INSTALL-COMMAND is the installation command. The first component should be
2383 either the \`install' or \`cp' program.
2384
2385 The following components of INSTALL-COMMAND are treated specially:
2386
2387 -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
2388
2389 The rest of the components are interpreted as arguments to that command (only
2390 BSD-compatible install options are recognized)."
2391 ;;
2392
2393 link)
2394 $ECHO \
2395 "Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
2396
2397 Link object files or libraries together to form another library, or to
2398 create an executable program.
2399
2400 LINK-COMMAND is a command using the C compiler that you would use to create
2401 a program from several object files.
2402
2403 The following components of LINK-COMMAND are treated specially:
2404
2405 -all-static do not do any dynamic linking at all
2406 -avoid-version do not add a version suffix if possible
2407 -bindir BINDIR specify path to binaries directory (for systems where
2408 libraries must be found in the PATH setting at runtime)
2409 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
2410 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
2411 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
2412 -export-symbols SYMFILE
2413 try to export only the symbols listed in SYMFILE
2414 -export-symbols-regex REGEX
2415 try to export only the symbols matching REGEX
2416 -LLIBDIR search LIBDIR for required installed libraries
2417 -lNAME OUTPUT-FILE requires the installed library libNAME
2418 -module build a library that can dlopened
2419 -no-fast-install disable the fast-install mode
2420 -no-install link a not-installable executable
2421 -no-undefined declare that a library does not refer to external symbols
2422 -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
2423 -objectlist FILE Use a list of object files found in FILE to specify objects
2424 -precious-files-regex REGEX
2425 don't remove output files matching REGEX
2426 -release RELEASE specify package release information
2427 -rpath LIBDIR the created library will eventually be installed in LIBDIR
2428 -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
2429 -shared only do dynamic linking of libtool libraries
2430 -shrext SUFFIX override the standard shared library file extension
2431 -static do not do any dynamic linking of uninstalled libtool libraries
2432 -static-libtool-libs
2433 do not do any dynamic linking of libtool libraries
2434 -version-info CURRENT[:REVISION[:AGE]]
2435 specify library version info [each variable defaults to 0]
2436 -weak LIBNAME declare that the target provides the LIBNAME interface
2437 -Wc,FLAG
2438 -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
2439 -Wl,FLAG
2440 -Xlinker FLAG pass linker-specific FLAG directly to the linker
2441 -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
2442
2443 All other options (arguments beginning with \`-') are ignored.
2444
2445 Every other argument is treated as a filename. Files ending in \`.la' are
2446 treated as uninstalled libtool libraries, other files are standard or library
2447 object files.
2448
2449 If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
2450 only library objects (\`.lo' files) may be specified, and \`-rpath' is
2451 required, except when creating a convenience library.
2452
2453 If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
2454 using \`ar' and \`ranlib', or on Windows using \`lib'.
2455
2456 If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
2457 is created, otherwise an executable program is created."
2458 ;;
2459
2460 uninstall)
2461 $ECHO \
2462 "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
2463
2464 Remove libraries from an installation directory.
2465
2466 RM is the name of the program to use to delete files associated with each FILE
2467 (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
2468 to RM.
2469
2470 If FILE is a libtool library, all the files associated with it are deleted.
2471 Otherwise, only FILE itself is deleted using RM."
2472 ;;
2473
2474 *)
2475 func_fatal_help "invalid operation mode \`$opt_mode'"
2476 ;;
2477 esac
2478
2479 echo
2480 $ECHO "Try \`$progname --help' for more information about other modes."
2481 }
2482
2483 # Now that we've collected a possible --mode arg, show help if necessary
2484 if $opt_help; then
2485 if test "$opt_help" = :; then
2486 func_mode_help
2487 else
2488 {
2489 func_help noexit
2490 for opt_mode in compile link execute install finish uninstall clean; do
2491 func_mode_help
2492 done
2493 } | sed -n '1p; 2,$s/^Usage:/ or: /p'
2494 {
2495 func_help noexit
2496 for opt_mode in compile link execute install finish uninstall clean; do
2497 echo
2498 func_mode_help
2499 done
2500 } |
2501 sed '1d
2502 /^When reporting/,/^Report/{
2503 H
2504 d
2505 }
2506 $x
2507 /information about other modes/d
2508 /more detailed .*MODE/d
2509 s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
2510 fi
2511 exit $?
2512 fi
2513
2514
2515 # func_mode_execute arg...
2516 func_mode_execute ()
2517 {
2518 $opt_debug
2519 # The first argument is the command name.
2520 cmd="$nonopt"
2521 test -z "$cmd" && \
2522 func_fatal_help "you must specify a COMMAND"
2523
2524 # Handle -dlopen flags immediately.
2525 for file in $opt_dlopen; do
2526 test -f "$file" \
2527 || func_fatal_help "\`$file' is not a file"
2528
2529 dir=
2530 case $file in
2531 *.la)
2532 func_resolve_sysroot "$file"
2533 file=$func_resolve_sysroot_result
2534
2535 # Check to see that this really is a libtool archive.
2536 func_lalib_unsafe_p "$file" \
2537 || func_fatal_help "\`$lib' is not a valid libtool archive"
2538
2539 # Read the libtool library.
2540 dlname=
2541 library_names=
2542 func_source "$file"
2543
2544 # Skip this library if it cannot be dlopened.
2545 if test -z "$dlname"; then
2546 # Warn if it was a shared library.
2547 test -n "$library_names" && \
2548 func_warning "\`$file' was not linked with \`-export-dynamic'"
2549 continue
2550 fi
2551
2552 func_dirname "$file" "" "."
2553 dir="$func_dirname_result"
2554
2555 if test -f "$dir/$objdir/$dlname"; then
2556 func_append dir "/$objdir"
2557 else
2558 if test ! -f "$dir/$dlname"; then
2559 func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
2560 fi
2561 fi
2562 ;;
2563
2564 *.lo)
2565 # Just add the directory containing the .lo file.
2566 func_dirname "$file" "" "."
2567 dir="$func_dirname_result"
2568 ;;
2569
2570 *)
2571 func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
2572 continue
2573 ;;
2574 esac
2575
2576 # Get the absolute pathname.
2577 absdir=`cd "$dir" && pwd`
2578 test -n "$absdir" && dir="$absdir"
2579
2580 # Now add the directory to shlibpath_var.
2581 if eval "test -z \"\$$shlibpath_var\""; then
2582 eval "$shlibpath_var=\"\$dir\""
2583 else
2584 eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
2585 fi
2586 done
2587
2588 # This variable tells wrapper scripts just to set shlibpath_var
2589 # rather than running their programs.
2590 libtool_execute_magic="$magic"
2591
2592 # Check if any of the arguments is a wrapper script.
2593 args=
2594 for file
2595 do
2596 case $file in
2597 -* | *.la | *.lo ) ;;
2598 *)
2599 # Do a test to see if this is really a libtool program.
2600 if func_ltwrapper_script_p "$file"; then
2601 func_source "$file"
2602 # Transform arg to wrapped name.
2603 file="$progdir/$program"
2604 elif func_ltwrapper_executable_p "$file"; then
2605 func_ltwrapper_scriptname "$file"
2606 func_source "$func_ltwrapper_scriptname_result"
2607 # Transform arg to wrapped name.
2608 file="$progdir/$program"
2609 fi
2610 ;;
2611 esac
2612 # Quote arguments (to preserve shell metacharacters).
2613 func_append_quoted args "$file"
2614 done
2615
2616 if test "X$opt_dry_run" = Xfalse; then
2617 if test -n "$shlibpath_var"; then
2618 # Export the shlibpath_var.
2619 eval "export $shlibpath_var"
2620 fi
2621
2622 # Restore saved environment variables
2623 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
2624 do
2625 eval "if test \"\${save_$lt_var+set}\" = set; then
2626 $lt_var=\$save_$lt_var; export $lt_var
2627 else
2628 $lt_unset $lt_var
2629 fi"
2630 done
2631
2632 # Now prepare to actually exec the command.
2633 exec_cmd="\$cmd$args"
2634 else
2635 # Display what would be done.
2636 if test -n "$shlibpath_var"; then
2637 eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
2638 echo "export $shlibpath_var"
2639 fi
2640 $ECHO "$cmd$args"
2641 exit $EXIT_SUCCESS
2642 fi
2643 }
2644
2645 test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
2646
2647
2648 # func_mode_finish arg...
2649 func_mode_finish ()
2650 {
2651 $opt_debug
2652 libs=
2653 libdirs=
2654 admincmds=
2655
2656 for opt in "$nonopt" ${1+"$@"}
2657 do
2658 if test -d "$opt"; then
2659 func_append libdirs " $opt"
2660
2661 elif test -f "$opt"; then
2662 if func_lalib_unsafe_p "$opt"; then
2663 func_append libs " $opt"
2664 else
2665 func_warning "\`$opt' is not a valid libtool archive"
2666 fi
2667
2668 else
2669 func_fatal_error "invalid argument \`$opt'"
2670 fi
2671 done
2672
2673 if test -n "$libs"; then
2674 if test -n "$lt_sysroot"; then
2675 sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
2676 sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
2677 else
2678 sysroot_cmd=
2679 fi
2680
2681 # Remove sysroot references
2682 if $opt_dry_run; then
2683 for lib in $libs; do
2684 echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
2685 done
2686 else
2687 tmpdir=`func_mktempdir`
2688 for lib in $libs; do
2689 sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
2690 > $tmpdir/tmp-la
2691 mv -f $tmpdir/tmp-la $lib
2692 done
2693 ${RM}r "$tmpdir"
2694 fi
2695 fi
2696
2697 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
2698 for libdir in $libdirs; do
2699 if test -n "$finish_cmds"; then
2700 # Do each command in the finish commands.
2701 func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
2702 '"$cmd"'"'
2703 fi
2704 if test -n "$finish_eval"; then
2705 # Do the single finish_eval.
2706 eval cmds=\"$finish_eval\"
2707 $opt_dry_run || eval "$cmds" || func_append admincmds "
2708 $cmds"
2709 fi
2710 done
2711 fi
2712
2713 # Exit here if they wanted silent mode.
2714 $opt_silent && exit $EXIT_SUCCESS
2715
2716 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
2717 echo "----------------------------------------------------------------------"
2718 echo "Libraries have been installed in:"
2719 for libdir in $libdirs; do
2720 $ECHO " $libdir"
2721 done
2722 echo
2723 echo "If you ever happen to want to link against installed libraries"
2724 echo "in a given directory, LIBDIR, you must either use libtool, and"
2725 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
2726 echo "flag during linking and do at least one of the following:"
2727 if test -n "$shlibpath_var"; then
2728 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
2729 echo " during execution"
2730 fi
2731 if test -n "$runpath_var"; then
2732 echo " - add LIBDIR to the \`$runpath_var' environment variable"
2733 echo " during linking"
2734 fi
2735 if test -n "$hardcode_libdir_flag_spec"; then
2736 libdir=LIBDIR
2737 eval flag=\"$hardcode_libdir_flag_spec\"
2738
2739 $ECHO " - use the \`$flag' linker flag"
2740 fi
2741 if test -n "$admincmds"; then
2742 $ECHO " - have your system administrator run these commands:$admincmds"
2743 fi
2744 if test -f /etc/ld.so.conf; then
2745 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
2746 fi
2747 echo
2748
2749 echo "See any operating system documentation about shared libraries for"
2750 case $host in
2751 solaris2.[6789]|solaris2.1[0-9])
2752 echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
2753 echo "pages."
2754 ;;
2755 *)
2756 echo "more information, such as the ld(1) and ld.so(8) manual pages."
2757 ;;
2758 esac
2759 echo "----------------------------------------------------------------------"
2760 fi
2761 exit $EXIT_SUCCESS
2762 }
2763
2764 test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
2765
2766
2767 # func_mode_install arg...
2768 func_mode_install ()
2769 {
2770 $opt_debug
2771 # There may be an optional sh(1) argument at the beginning of
2772 # install_prog (especially on Windows NT).
2773 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
2774 # Allow the use of GNU shtool's install command.
2775 case $nonopt in *shtool*) :;; *) false;; esac; then
2776 # Aesthetically quote it.
2777 func_quote_for_eval "$nonopt"
2778 install_prog="$func_quote_for_eval_result "
2779 arg=$1
2780 shift
2781 else
2782 install_prog=
2783 arg=$nonopt
2784 fi
2785
2786 # The real first argument should be the name of the installation program.
2787 # Aesthetically quote it.
2788 func_quote_for_eval "$arg"
2789 func_append install_prog "$func_quote_for_eval_result"
2790 install_shared_prog=$install_prog
2791 case " $install_prog " in
2792 *[\\\ /]cp\ *) install_cp=: ;;
2793 *) install_cp=false ;;
2794 esac
2795
2796 # We need to accept at least all the BSD install flags.
2797 dest=
2798 files=
2799 opts=
2800 prev=
2801 install_type=
2802 isdir=no
2803 stripme=
2804 no_mode=:
2805 for arg
2806 do
2807 arg2=
2808 if test -n "$dest"; then
2809 func_append files " $dest"
2810 dest=$arg
2811 continue
2812 fi
2813
2814 case $arg in
2815 -d) isdir=yes ;;
2816 -f)
2817 if $install_cp; then :; else
2818 prev=$arg
2819 fi
2820 ;;
2821 -g | -m | -o)
2822 prev=$arg
2823 ;;
2824 -s)
2825 stripme=" -s"
2826 continue
2827 ;;
2828 -*)
2829 ;;
2830 *)
2831 # If the previous option needed an argument, then skip it.
2832 if test -n "$prev"; then
2833 if test "x$prev" = x-m && test -n "$install_override_mode"; then
2834 arg2=$install_override_mode
2835 no_mode=false
2836 fi
2837 prev=
2838 else
2839 dest=$arg
2840 continue
2841 fi
2842 ;;
2843 esac
2844
2845 # Aesthetically quote the argument.
2846 func_quote_for_eval "$arg"
2847 func_append install_prog " $func_quote_for_eval_result"
2848 if test -n "$arg2"; then
2849 func_quote_for_eval "$arg2"
2850 fi
2851 func_append install_shared_prog " $func_quote_for_eval_result"
2852 done
2853
2854 test -z "$install_prog" && \
2855 func_fatal_help "you must specify an install program"
2856
2857 test -n "$prev" && \
2858 func_fatal_help "the \`$prev' option requires an argument"
2859
2860 if test -n "$install_override_mode" && $no_mode; then
2861 if $install_cp; then :; else
2862 func_quote_for_eval "$install_override_mode"
2863 func_append install_shared_prog " -m $func_quote_for_eval_result"
2864 fi
2865 fi
2866
2867 if test -z "$files"; then
2868 if test -z "$dest"; then
2869 func_fatal_help "no file or destination specified"
2870 else
2871 func_fatal_help "you must specify a destination"
2872 fi
2873 fi
2874
2875 # Strip any trailing slash from the destination.
2876 func_stripname '' '/' "$dest"
2877 dest=$func_stripname_result
2878
2879 # Check to see that the destination is a directory.
2880 test -d "$dest" && isdir=yes
2881 if test "$isdir" = yes; then
2882 destdir="$dest"
2883 destname=
2884 else
2885 func_dirname_and_basename "$dest" "" "."
2886 destdir="$func_dirname_result"
2887 destname="$func_basename_result"
2888
2889 # Not a directory, so check to see that there is only one file specified.
2890 set dummy $files; shift
2891 test "$#" -gt 1 && \
2892 func_fatal_help "\`$dest' is not a directory"
2893 fi
2894 case $destdir in
2895 [\\/]* | [A-Za-z]:[\\/]*) ;;
2896 *)
2897 for file in $files; do
2898 case $file in
2899 *.lo) ;;
2900 *)
2901 func_fatal_help "\`$destdir' must be an absolute directory name"
2902 ;;
2903 esac
2904 done
2905 ;;
2906 esac
2907
2908 # This variable tells wrapper scripts just to set variables rather
2909 # than running their programs.
2910 libtool_install_magic="$magic"
2911
2912 staticlibs=
2913 future_libdirs=
2914 current_libdirs=
2915 for file in $files; do
2916
2917 # Do each installation.
2918 case $file in
2919 *.$libext)
2920 # Do the static libraries later.
2921 func_append staticlibs " $file"
2922 ;;
2923
2924 *.la)
2925 func_resolve_sysroot "$file"
2926 file=$func_resolve_sysroot_result
2927
2928 # Check to see that this really is a libtool archive.
2929 func_lalib_unsafe_p "$file" \
2930 || func_fatal_help "\`$file' is not a valid libtool archive"
2931
2932 library_names=
2933 old_library=
2934 relink_command=
2935 func_source "$file"
2936
2937 # Add the libdir to current_libdirs if it is the destination.
2938 if test "X$destdir" = "X$libdir"; then
2939 case "$current_libdirs " in
2940 *" $libdir "*) ;;
2941 *) func_append current_libdirs " $libdir" ;;
2942 esac
2943 else
2944 # Note the libdir as a future libdir.
2945 case "$future_libdirs " in
2946 *" $libdir "*) ;;
2947 *) func_append future_libdirs " $libdir" ;;
2948 esac
2949 fi
2950
2951 func_dirname "$file" "/" ""
2952 dir="$func_dirname_result"
2953 func_append dir "$objdir"
2954
2955 if test -n "$relink_command"; then
2956 # Determine the prefix the user has applied to our future dir.
2957 inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
2958
2959 # Don't allow the user to place us outside of our expected
2960 # location b/c this prevents finding dependent libraries that
2961 # are installed to the same prefix.
2962 # At present, this check doesn't affect windows .dll's that
2963 # are installed into $libdir/../bin (currently, that works fine)
2964 # but it's something to keep an eye on.
2965 test "$inst_prefix_dir" = "$destdir" && \
2966 func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
2967
2968 if test -n "$inst_prefix_dir"; then
2969 # Stick the inst_prefix_dir data into the link command.
2970 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
2971 else
2972 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
2973 fi
2974
2975 func_warning "relinking \`$file'"
2976 func_show_eval "$relink_command" \
2977 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
2978 fi
2979
2980 # See the names of the shared library.
2981 set dummy $library_names; shift
2982 if test -n "$1"; then
2983 realname="$1"
2984 shift
2985
2986 srcname="$realname"
2987 test -n "$relink_command" && srcname="$realname"T
2988
2989 # Install the shared library and build the symlinks.
2990 func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
2991 'exit $?'
2992 tstripme="$stripme"
2993 case $host_os in
2994 cygwin* | mingw* | pw32* | cegcc*)
2995 case $realname in
2996 *.dll.a)
2997 tstripme=""
2998 ;;
2999 esac
3000 ;;
3001 esac
3002 if test -n "$tstripme" && test -n "$striplib"; then
3003 func_show_eval "$striplib $destdir/$realname" 'exit $?'
3004 fi
3005
3006 if test "$#" -gt 0; then
3007 # Delete the old symlinks, and create new ones.
3008 # Try `ln -sf' first, because the `ln' binary might depend on
3009 # the symlink we replace! Solaris /bin/ln does not understand -f,
3010 # so we also need to try rm && ln -s.
3011 for linkname
3012 do
3013 test "$linkname" != "$realname" \
3014 && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
3015 done
3016 fi
3017
3018 # Do each command in the postinstall commands.
3019 lib="$destdir/$realname"
3020 func_execute_cmds "$postinstall_cmds" 'exit $?'
3021 fi
3022
3023 # Install the pseudo-library for information purposes.
3024 func_basename "$file"
3025 name="$func_basename_result"
3026 instname="$dir/$name"i
3027 func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
3028
3029 # Maybe install the static library, too.
3030 test -n "$old_library" && func_append staticlibs " $dir/$old_library"
3031 ;;
3032
3033 *.lo)
3034 # Install (i.e. copy) a libtool object.
3035
3036 # Figure out destination file name, if it wasn't already specified.
3037 if test -n "$destname"; then
3038 destfile="$destdir/$destname"
3039 else
3040 func_basename "$file"
3041 destfile="$func_basename_result"
3042 destfile="$destdir/$destfile"
3043 fi
3044
3045 # Deduce the name of the destination old-style object file.
3046 case $destfile in
3047 *.lo)
3048 func_lo2o "$destfile"
3049 staticdest=$func_lo2o_result
3050 ;;
3051 *.$objext)
3052 staticdest="$destfile"
3053 destfile=
3054 ;;
3055 *)
3056 func_fatal_help "cannot copy a libtool object to \`$destfile'"
3057 ;;
3058 esac
3059
3060 # Install the libtool object if requested.
3061 test -n "$destfile" && \
3062 func_show_eval "$install_prog $file $destfile" 'exit $?'
3063
3064 # Install the old object if enabled.
3065 if test "$build_old_libs" = yes; then
3066 # Deduce the name of the old-style object file.
3067 func_lo2o "$file"
3068 staticobj=$func_lo2o_result
3069 func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
3070 fi
3071 exit $EXIT_SUCCESS
3072 ;;
3073
3074 *)
3075 # Figure out destination file name, if it wasn't already specified.
3076 if test -n "$destname"; then
3077 destfile="$destdir/$destname"
3078 else
3079 func_basename "$file"
3080 destfile="$func_basename_result"
3081 destfile="$destdir/$destfile"
3082 fi
3083
3084 # If the file is missing, and there is a .exe on the end, strip it
3085 # because it is most likely a libtool script we actually want to
3086 # install
3087 stripped_ext=""
3088 case $file in
3089 *.exe)
3090 if test ! -f "$file"; then
3091 func_stripname '' '.exe' "$file"
3092 file=$func_stripname_result
3093 stripped_ext=".exe"
3094 fi
3095 ;;
3096 esac
3097
3098 # Do a test to see if this is really a libtool program.
3099 case $host in
3100 *cygwin* | *mingw*)
3101 if func_ltwrapper_executable_p "$file"; then
3102 func_ltwrapper_scriptname "$file"
3103 wrapper=$func_ltwrapper_scriptname_result
3104 else
3105 func_stripname '' '.exe' "$file"
3106 wrapper=$func_stripname_result
3107 fi
3108 ;;
3109 *)
3110 wrapper=$file
3111 ;;
3112 esac
3113 if func_ltwrapper_script_p "$wrapper"; then
3114 notinst_deplibs=
3115 relink_command=
3116
3117 func_source "$wrapper"
3118
3119 # Check the variables that should have been set.
3120 test -z "$generated_by_libtool_version" && \
3121 func_fatal_error "invalid libtool wrapper script \`$wrapper'"
3122
3123 finalize=yes
3124 for lib in $notinst_deplibs; do
3125 # Check to see that each library is installed.
3126 libdir=
3127 if test -f "$lib"; then
3128 func_source "$lib"
3129 fi
3130 libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
3131 if test -n "$libdir" && test ! -f "$libfile"; then
3132 func_warning "\`$lib' has not been installed in \`$libdir'"
3133 finalize=no
3134 fi
3135 done
3136
3137 relink_command=
3138 func_source "$wrapper"
3139
3140 outputname=
3141 if test "$fast_install" = no && test -n "$relink_command"; then
3142 $opt_dry_run || {
3143 if test "$finalize" = yes; then
3144 tmpdir=`func_mktempdir`
3145 func_basename "$file$stripped_ext"
3146 file="$func_basename_result"
3147 outputname="$tmpdir/$file"
3148 # Replace the output file specification.
3149 relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
3150
3151 $opt_silent || {
3152 func_quote_for_expand "$relink_command"
3153 eval "func_echo $func_quote_for_expand_result"
3154 }
3155 if eval "$relink_command"; then :
3156 else
3157 func_error "error: relink \`$file' with the above command before installing it"
3158 $opt_dry_run || ${RM}r "$tmpdir"
3159 continue
3160 fi
3161 file="$outputname"
3162 else
3163 func_warning "cannot relink \`$file'"
3164 fi
3165 }
3166 else
3167 # Install the binary that we compiled earlier.
3168 file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
3169 fi
3170 fi
3171
3172 # remove .exe since cygwin /usr/bin/install will append another
3173 # one anyway
3174 case $install_prog,$host in
3175 */usr/bin/install*,*cygwin*)
3176 case $file:$destfile in
3177 *.exe:*.exe)
3178 # this is ok
3179 ;;
3180 *.exe:*)
3181 destfile=$destfile.exe
3182 ;;
3183 *:*.exe)
3184 func_stripname '' '.exe' "$destfile"
3185 destfile=$func_stripname_result
3186 ;;
3187 esac
3188 ;;
3189 esac
3190 func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
3191 $opt_dry_run || if test -n "$outputname"; then
3192 ${RM}r "$tmpdir"
3193 fi
3194 ;;
3195 esac
3196 done
3197
3198 for file in $staticlibs; do
3199 func_basename "$file"
3200 name="$func_basename_result"
3201
3202 # Set up the ranlib parameters.
3203 oldlib="$destdir/$name"
3204 func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
3205 tool_oldlib=$func_to_tool_file_result
3206
3207 func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
3208
3209 if test -n "$stripme" && test -n "$old_striplib"; then
3210 func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
3211 fi
3212
3213 # Do each command in the postinstall commands.
3214 func_execute_cmds "$old_postinstall_cmds" 'exit $?'
3215 done
3216
3217 test -n "$future_libdirs" && \
3218 func_warning "remember to run \`$progname --finish$future_libdirs'"
3219
3220 if test -n "$current_libdirs"; then
3221 # Maybe just do a dry run.
3222 $opt_dry_run && current_libdirs=" -n$current_libdirs"
3223 exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
3224 else
3225 exit $EXIT_SUCCESS
3226 fi
3227 }
3228
3229 test "$opt_mode" = install && func_mode_install ${1+"$@"}
3230
3231
3232 # func_generate_dlsyms outputname originator pic_p
3233 # Extract symbols from dlprefiles and create ${outputname}S.o with
3234 # a dlpreopen symbol table.
3235 func_generate_dlsyms ()
3236 {
3237 $opt_debug
3238 my_outputname="$1"
3239 my_originator="$2"
3240 my_pic_p="${3-no}"
3241 my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
3242 my_dlsyms=
3243
3244 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3245 if test -n "$NM" && test -n "$global_symbol_pipe"; then
3246 my_dlsyms="${my_outputname}S.c"
3247 else
3248 func_error "not configured to extract global symbols from dlpreopened files"
3249 fi
3250 fi
3251
3252 if test -n "$my_dlsyms"; then
3253 case $my_dlsyms in
3254 "") ;;
3255 *.c)
3256 # Discover the nlist of each of the dlfiles.
3257 nlist="$output_objdir/${my_outputname}.nm"
3258
3259 func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
3260
3261 # Parse the name list into a source file.
3262 func_verbose "creating $output_objdir/$my_dlsyms"
3263
3264 $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
3265 /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
3266 /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
3267
3268 #ifdef __cplusplus
3269 extern \"C\" {
3270 #endif
3271
3272 #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
3273 #pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
3274 #endif
3275
3276 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
3277 #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
3278 /* DATA imports from DLLs on WIN32 con't be const, because runtime
3279 relocations are performed -- see ld's documentation on pseudo-relocs. */
3280 # define LT_DLSYM_CONST
3281 #elif defined(__osf__)
3282 /* This system does not cope well with relocations in const data. */
3283 # define LT_DLSYM_CONST
3284 #else
3285 # define LT_DLSYM_CONST const
3286 #endif
3287
3288 /* External symbol declarations for the compiler. */\
3289 "
3290
3291 if test "$dlself" = yes; then
3292 func_verbose "generating symbol list for \`$output'"
3293
3294 $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
3295
3296 # Add our own program objects to the symbol list.
3297 progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
3298 for progfile in $progfiles; do
3299 func_to_tool_file "$progfile" func_convert_file_msys_to_w32
3300 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
3301 $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
3302 done
3303
3304 if test -n "$exclude_expsyms"; then
3305 $opt_dry_run || {
3306 eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
3307 eval '$MV "$nlist"T "$nlist"'
3308 }
3309 fi
3310
3311 if test -n "$export_symbols_regex"; then
3312 $opt_dry_run || {
3313 eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
3314 eval '$MV "$nlist"T "$nlist"'
3315 }
3316 fi
3317
3318 # Prepare the list of exported symbols
3319 if test -z "$export_symbols"; then
3320 export_symbols="$output_objdir/$outputname.exp"
3321 $opt_dry_run || {
3322 $RM $export_symbols
3323 eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
3324 case $host in
3325 *cygwin* | *mingw* | *cegcc* )
3326 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
3327 eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
3328 ;;
3329 esac
3330 }
3331 else
3332 $opt_dry_run || {
3333 eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
3334 eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
3335 eval '$MV "$nlist"T "$nlist"'
3336 case $host in
3337 *cygwin* | *mingw* | *cegcc* )
3338 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
3339 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
3340 ;;
3341 esac
3342 }
3343 fi
3344 fi
3345
3346 for dlprefile in $dlprefiles; do
3347 func_verbose "extracting global C symbols from \`$dlprefile'"
3348 func_basename "$dlprefile"
3349 name="$func_basename_result"
3350 case $host in
3351 *cygwin* | *mingw* | *cegcc* )
3352 # if an import library, we need to obtain dlname
3353 if func_win32_import_lib_p "$dlprefile"; then
3354 func_tr_sh "$dlprefile"
3355 eval "curr_lafile=\$libfile_$func_tr_sh_result"
3356 dlprefile_dlbasename=""
3357 if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
3358 # Use subshell, to avoid clobbering current variable values
3359 dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
3360 if test -n "$dlprefile_dlname" ; then
3361 func_basename "$dlprefile_dlname"
3362 dlprefile_dlbasename="$func_basename_result"
3363 else
3364 # no lafile. user explicitly requested -dlpreopen <import library>.
3365 $sharedlib_from_linklib_cmd "$dlprefile"
3366 dlprefile_dlbasename=$sharedlib_from_linklib_result
3367 fi
3368 fi
3369 $opt_dry_run || {
3370 if test -n "$dlprefile_dlbasename" ; then
3371 eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
3372 else
3373 func_warning "Could not compute DLL name from $name"
3374 eval '$ECHO ": $name " >> "$nlist"'
3375 fi
3376 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3377 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
3378 $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
3379 }
3380 else # not an import lib
3381 $opt_dry_run || {
3382 eval '$ECHO ": $name " >> "$nlist"'
3383 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3384 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
3385 }
3386 fi
3387 ;;
3388 *)
3389 $opt_dry_run || {
3390 eval '$ECHO ": $name " >> "$nlist"'
3391 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3392 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
3393 }
3394 ;;
3395 esac
3396 done
3397
3398 $opt_dry_run || {
3399 # Make sure we have at least an empty file.
3400 test -f "$nlist" || : > "$nlist"
3401
3402 if test -n "$exclude_expsyms"; then
3403 $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
3404 $MV "$nlist"T "$nlist"
3405 fi
3406
3407 # Try sorting and uniquifying the output.
3408 if $GREP -v "^: " < "$nlist" |
3409 if sort -k 3 </dev/null >/dev/null 2>&1; then
3410 sort -k 3
3411 else
3412 sort +2
3413 fi |
3414 uniq > "$nlist"S; then
3415 :
3416 else
3417 $GREP -v "^: " < "$nlist" > "$nlist"S
3418 fi
3419
3420 if test -f "$nlist"S; then
3421 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
3422 else
3423 echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
3424 fi
3425
3426 echo >> "$output_objdir/$my_dlsyms" "\
3427
3428 /* The mapping between symbol names and symbols. */
3429 typedef struct {
3430 const char *name;
3431 void *address;
3432 } lt_dlsymlist;
3433 extern LT_DLSYM_CONST lt_dlsymlist
3434 lt_${my_prefix}_LTX_preloaded_symbols[];
3435 LT_DLSYM_CONST lt_dlsymlist
3436 lt_${my_prefix}_LTX_preloaded_symbols[] =
3437 {\
3438 { \"$my_originator\", (void *) 0 },"
3439
3440 case $need_lib_prefix in
3441 no)
3442 eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
3443 ;;
3444 *)
3445 eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
3446 ;;
3447 esac
3448 echo >> "$output_objdir/$my_dlsyms" "\
3449 {0, (void *) 0}
3450 };
3451
3452 /* This works around a problem in FreeBSD linker */
3453 #ifdef FREEBSD_WORKAROUND
3454 static const void *lt_preloaded_setup() {
3455 return lt_${my_prefix}_LTX_preloaded_symbols;
3456 }
3457 #endif
3458
3459 #ifdef __cplusplus
3460 }
3461 #endif\
3462 "
3463 } # !$opt_dry_run
3464
3465 pic_flag_for_symtable=
3466 case "$compile_command " in
3467 *" -static "*) ;;
3468 *)
3469 case $host in
3470 # compiling the symbol table file with pic_flag works around
3471 # a FreeBSD bug that causes programs to crash when -lm is
3472 # linked before any other PIC object. But we must not use
3473 # pic_flag when linking with -static. The problem exists in
3474 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
3475 *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
3476 pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
3477 *-*-hpux*)
3478 pic_flag_for_symtable=" $pic_flag" ;;
3479 *)
3480 if test "X$my_pic_p" != Xno; then
3481 pic_flag_for_symtable=" $pic_flag"
3482 fi
3483 ;;
3484 esac
3485 ;;
3486 esac
3487 symtab_cflags=
3488 for arg in $LTCFLAGS; do
3489 case $arg in
3490 -pie | -fpie | -fPIE) ;;
3491 *) func_append symtab_cflags " $arg" ;;
3492 esac
3493 done
3494
3495 # Now compile the dynamic symbol file.
3496 func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
3497
3498 # Clean up the generated files.
3499 func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
3500
3501 # Transform the symbol file into the correct name.
3502 symfileobj="$output_objdir/${my_outputname}S.$objext"
3503 case $host in
3504 *cygwin* | *mingw* | *cegcc* )
3505 if test -f "$output_objdir/$my_outputname.def"; then
3506 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
3507 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
3508 else
3509 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
3510 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
3511 fi
3512 ;;
3513 *)
3514 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
3515 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
3516 ;;
3517 esac
3518 ;;
3519 *)
3520 func_fatal_error "unknown suffix for \`$my_dlsyms'"
3521 ;;
3522 esac
3523 else
3524 # We keep going just in case the user didn't refer to
3525 # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
3526 # really was required.
3527
3528 # Nullify the symbol file.
3529 compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
3530 finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
3531 fi
3532 }
3533
3534 # func_win32_libid arg
3535 # return the library type of file 'arg'
3536 #
3537 # Need a lot of goo to handle *both* DLLs and import libs
3538 # Has to be a shell function in order to 'eat' the argument
3539 # that is supplied when $file_magic_command is called.
3540 # Despite the name, also deal with 64 bit binaries.
3541 func_win32_libid ()
3542 {
3543 $opt_debug
3544 win32_libid_type="unknown"
3545 win32_fileres=`file -L $1 2>/dev/null`
3546 case $win32_fileres in
3547 *ar\ archive\ import\ library*) # definitely import
3548 win32_libid_type="x86 archive import"
3549 ;;
3550 *ar\ archive*) # could be an import, or static
3551 # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
3552 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
3553 $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
3554 func_to_tool_file "$1" func_convert_file_msys_to_w32
3555 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
3556 $SED -n -e '
3557 1,100{
3558 / I /{
3559 s,.*,import,
3560 p
3561 q
3562 }
3563 }'`
3564 case $win32_nmres in
3565 import*) win32_libid_type="x86 archive import";;
3566 *) win32_libid_type="x86 archive static";;
3567 esac
3568 fi
3569 ;;
3570 *DLL*)
3571 win32_libid_type="x86 DLL"
3572 ;;
3573 *executable*) # but shell scripts are "executable" too...
3574 case $win32_fileres in
3575 *MS\ Windows\ PE\ Intel*)
3576 win32_libid_type="x86 DLL"
3577 ;;
3578 esac
3579 ;;
3580 esac
3581 $ECHO "$win32_libid_type"
3582 }
3583
3584 # func_cygming_dll_for_implib ARG
3585 #
3586 # Platform-specific function to extract the
3587 # name of the DLL associated with the specified
3588 # import library ARG.
3589 # Invoked by eval'ing the libtool variable
3590 # $sharedlib_from_linklib_cmd
3591 # Result is available in the variable
3592 # $sharedlib_from_linklib_result
3593 func_cygming_dll_for_implib ()
3594 {
3595 $opt_debug
3596 sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
3597 }
3598
3599 # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
3600 #
3601 # The is the core of a fallback implementation of a
3602 # platform-specific function to extract the name of the
3603 # DLL associated with the specified import library LIBNAME.
3604 #
3605 # SECTION_NAME is either .idata$6 or .idata$7, depending
3606 # on the platform and compiler that created the implib.
3607 #
3608 # Echos the name of the DLL associated with the
3609 # specified import library.
3610 func_cygming_dll_for_implib_fallback_core ()
3611 {
3612 $opt_debug
3613 match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
3614 $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
3615 $SED '/^Contents of section '"$match_literal"':/{
3616 # Place marker at beginning of archive member dllname section
3617 s/.*/====MARK====/
3618 p
3619 d
3620 }
3621 # These lines can sometimes be longer than 43 characters, but
3622 # are always uninteresting
3623 /:[ ]*file format pe[i]\{,1\}-/d
3624 /^In archive [^:]*:/d
3625 # Ensure marker is printed
3626 /^====MARK====/p
3627 # Remove all lines with less than 43 characters
3628 /^.\{43\}/!d
3629 # From remaining lines, remove first 43 characters
3630 s/^.\{43\}//' |
3631 $SED -n '
3632 # Join marker and all lines until next marker into a single line
3633 /^====MARK====/ b para
3634 H
3635 $ b para
3636 b
3637 :para
3638 x
3639 s/\n//g
3640 # Remove the marker
3641 s/^====MARK====//
3642 # Remove trailing dots and whitespace
3643 s/[\. \t]*$//
3644 # Print
3645 /./p' |
3646 # we now have a list, one entry per line, of the stringified
3647 # contents of the appropriate section of all members of the
3648 # archive which possess that section. Heuristic: eliminate
3649 # all those which have a first or second character that is
3650 # a '.' (that is, objdump's representation of an unprintable
3651 # character.) This should work for all archives with less than
3652 # 0x302f exports -- but will fail for DLLs whose name actually
3653 # begins with a literal '.' or a single character followed by
3654 # a '.'.
3655 #
3656 # Of those that remain, print the first one.
3657 $SED -e '/^\./d;/^.\./d;q'
3658 }
3659
3660 # func_cygming_gnu_implib_p ARG
3661 # This predicate returns with zero status (TRUE) if
3662 # ARG is a GNU/binutils-style import library. Returns
3663 # with nonzero status (FALSE) otherwise.
3664 func_cygming_gnu_implib_p ()
3665 {
3666 $opt_debug
3667 func_to_tool_file "$1" func_convert_file_msys_to_w32
3668 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
3669 test -n "$func_cygming_gnu_implib_tmp"
3670 }
3671
3672 # func_cygming_ms_implib_p ARG
3673 # This predicate returns with zero status (TRUE) if
3674 # ARG is an MS-style import library. Returns
3675 # with nonzero status (FALSE) otherwise.
3676 func_cygming_ms_implib_p ()
3677 {
3678 $opt_debug
3679 func_to_tool_file "$1" func_convert_file_msys_to_w32
3680 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
3681 test -n "$func_cygming_ms_implib_tmp"
3682 }
3683
3684 # func_cygming_dll_for_implib_fallback ARG
3685 # Platform-specific function to extract the
3686 # name of the DLL associated with the specified
3687 # import library ARG.
3688 #
3689 # This fallback implementation is for use when $DLLTOOL
3690 # does not support the --identify-strict option.
3691 # Invoked by eval'ing the libtool variable
3692 # $sharedlib_from_linklib_cmd
3693 # Result is available in the variable
3694 # $sharedlib_from_linklib_result
3695 func_cygming_dll_for_implib_fallback ()
3696 {
3697 $opt_debug
3698 if func_cygming_gnu_implib_p "$1" ; then
3699 # binutils import library
3700 sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
3701 elif func_cygming_ms_implib_p "$1" ; then
3702 # ms-generated import library
3703 sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
3704 else
3705 # unknown
3706 sharedlib_from_linklib_result=""
3707 fi
3708 }
3709
3710
3711 # func_extract_an_archive dir oldlib
3712 func_extract_an_archive ()
3713 {
3714 $opt_debug
3715 f_ex_an_ar_dir="$1"; shift
3716 f_ex_an_ar_oldlib="$1"
3717 if test "$lock_old_archive_extraction" = yes; then
3718 lockfile=$f_ex_an_ar_oldlib.lock
3719 until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
3720 func_echo "Waiting for $lockfile to be removed"
3721 sleep 2
3722 done
3723 fi
3724 func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
3725 'stat=$?; rm -f "$lockfile"; exit $stat'
3726 if test "$lock_old_archive_extraction" = yes; then
3727 $opt_dry_run || rm -f "$lockfile"
3728 fi
3729 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
3730 :
3731 else
3732 func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
3733 fi
3734 }
3735
3736
3737 # func_extract_archives gentop oldlib ...
3738 func_extract_archives ()
3739 {
3740 $opt_debug
3741 my_gentop="$1"; shift
3742 my_oldlibs=${1+"$@"}
3743 my_oldobjs=""
3744 my_xlib=""
3745 my_xabs=""
3746 my_xdir=""
3747
3748 for my_xlib in $my_oldlibs; do
3749 # Extract the objects.
3750 case $my_xlib in
3751 [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
3752 *) my_xabs=`pwd`"/$my_xlib" ;;
3753 esac
3754 func_basename "$my_xlib"
3755 my_xlib="$func_basename_result"
3756 my_xlib_u=$my_xlib
3757 while :; do
3758 case " $extracted_archives " in
3759 *" $my_xlib_u "*)
3760 func_arith $extracted_serial + 1
3761 extracted_serial=$func_arith_result
3762 my_xlib_u=lt$extracted_serial-$my_xlib ;;
3763 *) break ;;
3764 esac
3765 done
3766 extracted_archives="$extracted_archives $my_xlib_u"
3767 my_xdir="$my_gentop/$my_xlib_u"
3768
3769 func_mkdir_p "$my_xdir"
3770
3771 case $host in
3772 *-darwin*)
3773 func_verbose "Extracting $my_xabs"
3774 # Do not bother doing anything if just a dry run
3775 $opt_dry_run || {
3776 darwin_orig_dir=`pwd`
3777 cd $my_xdir || exit $?
3778 darwin_archive=$my_xabs
3779 darwin_curdir=`pwd`
3780 darwin_base_archive=`basename "$darwin_archive"`
3781 darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
3782 if test -n "$darwin_arches"; then
3783 darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
3784 darwin_arch=
3785 func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
3786 for darwin_arch in $darwin_arches ; do
3787 func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
3788 $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
3789 cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
3790 func_extract_an_archive "`pwd`" "${darwin_base_archive}"
3791 cd "$darwin_curdir"
3792 $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
3793 done # $darwin_arches
3794 ## Okay now we've a bunch of thin objects, gotta fatten them up :)
3795 darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
3796 darwin_file=
3797 darwin_files=
3798 for darwin_file in $darwin_filelist; do
3799 darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
3800 $LIPO -create -output "$darwin_file" $darwin_files
3801 done # $darwin_filelist
3802 $RM -rf unfat-$$
3803 cd "$darwin_orig_dir"
3804 else
3805 cd $darwin_orig_dir
3806 func_extract_an_archive "$my_xdir" "$my_xabs"
3807 fi # $darwin_arches
3808 } # !$opt_dry_run
3809 ;;
3810 *)
3811 func_extract_an_archive "$my_xdir" "$my_xabs"
3812 ;;
3813 esac
3814 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
3815 done
3816
3817 func_extract_archives_result="$my_oldobjs"
3818 }
3819
3820
3821 # func_emit_wrapper [arg=no]
3822 #
3823 # Emit a libtool wrapper script on stdout.
3824 # Don't directly open a file because we may want to
3825 # incorporate the script contents within a cygwin/mingw
3826 # wrapper executable. Must ONLY be called from within
3827 # func_mode_link because it depends on a number of variables
3828 # set therein.
3829 #
3830 # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
3831 # variable will take. If 'yes', then the emitted script
3832 # will assume that the directory in which it is stored is
3833 # the $objdir directory. This is a cygwin/mingw-specific
3834 # behavior.
3835 func_emit_wrapper ()
3836 {
3837 func_emit_wrapper_arg1=${1-no}
3838
3839 $ECHO "\
3840 #! $SHELL
3841
3842 # $output - temporary wrapper script for $objdir/$outputname
3843 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
3844 #
3845 # The $output program cannot be directly executed until all the libtool
3846 # libraries that it depends on are installed.
3847 #
3848 # This wrapper script should never be moved out of the build directory.
3849 # If it is, it will not operate correctly.
3850
3851 # Sed substitution that helps us do robust quoting. It backslashifies
3852 # metacharacters that are still active within double-quoted strings.
3853 sed_quote_subst='$sed_quote_subst'
3854
3855 # Be Bourne compatible
3856 if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
3857 emulate sh
3858 NULLCMD=:
3859 # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
3860 # is contrary to our usage. Disable this feature.
3861 alias -g '\${1+\"\$@\"}'='\"\$@\"'
3862 setopt NO_GLOB_SUBST
3863 else
3864 case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
3865 fi
3866 BIN_SH=xpg4; export BIN_SH # for Tru64
3867 DUALCASE=1; export DUALCASE # for MKS sh
3868
3869 # The HP-UX ksh and POSIX shell print the target directory to stdout
3870 # if CDPATH is set.
3871 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
3872
3873 relink_command=\"$relink_command\"
3874
3875 # This environment variable determines our operation mode.
3876 if test \"\$libtool_install_magic\" = \"$magic\"; then
3877 # install mode needs the following variables:
3878 generated_by_libtool_version='$macro_version'
3879 notinst_deplibs='$notinst_deplibs'
3880 else
3881 # When we are sourced in execute mode, \$file and \$ECHO are already set.
3882 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3883 file=\"\$0\""
3884
3885 qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
3886 $ECHO "\
3887
3888 # A function that is used when there is no print builtin or printf.
3889 func_fallback_echo ()
3890 {
3891 eval 'cat <<_LTECHO_EOF
3892 \$1
3893 _LTECHO_EOF'
3894 }
3895 ECHO=\"$qECHO\"
3896 fi
3897
3898 # Very basic option parsing. These options are (a) specific to
3899 # the libtool wrapper, (b) are identical between the wrapper
3900 # /script/ and the wrapper /executable/ which is used only on
3901 # windows platforms, and (c) all begin with the string "--lt-"
3902 # (application programs are unlikely to have options which match
3903 # this pattern).
3904 #
3905 # There are only two supported options: --lt-debug and
3906 # --lt-dump-script. There is, deliberately, no --lt-help.
3907 #
3908 # The first argument to this parsing function should be the
3909 # script's $0 value, followed by "$@".
3910 lt_option_debug=
3911 func_parse_lt_options ()
3912 {
3913 lt_script_arg0=\$0
3914 shift
3915 for lt_opt
3916 do
3917 case \"\$lt_opt\" in
3918 --lt-debug) lt_option_debug=1 ;;
3919 --lt-dump-script)
3920 lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
3921 test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
3922 lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
3923 cat \"\$lt_dump_D/\$lt_dump_F\"
3924 exit 0
3925 ;;
3926 --lt-*)
3927 \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
3928 exit 1
3929 ;;
3930 esac
3931 done
3932
3933 # Print the debug banner immediately:
3934 if test -n \"\$lt_option_debug\"; then
3935 echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
3936 fi
3937 }
3938
3939 # Used when --lt-debug. Prints its arguments to stdout
3940 # (redirection is the responsibility of the caller)
3941 func_lt_dump_args ()
3942 {
3943 lt_dump_args_N=1;
3944 for lt_arg
3945 do
3946 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
3947 lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
3948 done
3949 }
3950
3951 # Core function for launching the target application
3952 func_exec_program_core ()
3953 {
3954 "
3955 case $host in
3956 # Backslashes separate directories on plain windows
3957 *-*-mingw | *-*-os2* | *-cegcc*)
3958 $ECHO "\
3959 if test -n \"\$lt_option_debug\"; then
3960 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
3961 func_lt_dump_args \${1+\"\$@\"} 1>&2
3962 fi
3963 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
3964 "
3965 ;;
3966
3967 *)
3968 $ECHO "\
3969 if test -n \"\$lt_option_debug\"; then
3970 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
3971 func_lt_dump_args \${1+\"\$@\"} 1>&2
3972 fi
3973 exec \"\$progdir/\$program\" \${1+\"\$@\"}
3974 "
3975 ;;
3976 esac
3977 $ECHO "\
3978 \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
3979 exit 1
3980 }
3981
3982 # A function to encapsulate launching the target application
3983 # Strips options in the --lt-* namespace from \$@ and
3984 # launches target application with the remaining arguments.
3985 func_exec_program ()
3986 {
3987 case \" \$* \" in
3988 *\\ --lt-*)
3989 for lt_wr_arg
3990 do
3991 case \$lt_wr_arg in
3992 --lt-*) ;;
3993 *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
3994 esac
3995 shift
3996 done ;;
3997 esac
3998 func_exec_program_core \${1+\"\$@\"}
3999 }
4000
4001 # Parse options
4002 func_parse_lt_options \"\$0\" \${1+\"\$@\"}
4003
4004 # Find the directory that this script lives in.
4005 thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
4006 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
4007
4008 # Follow symbolic links until we get to the real thisdir.
4009 file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
4010 while test -n \"\$file\"; do
4011 destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
4012
4013 # If there was a directory component, then change thisdir.
4014 if test \"x\$destdir\" != \"x\$file\"; then
4015 case \"\$destdir\" in
4016 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
4017 *) thisdir=\"\$thisdir/\$destdir\" ;;
4018 esac
4019 fi
4020
4021 file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
4022 file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
4023 done
4024
4025 # Usually 'no', except on cygwin/mingw when embedded into
4026 # the cwrapper.
4027 WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
4028 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
4029 # special case for '.'
4030 if test \"\$thisdir\" = \".\"; then
4031 thisdir=\`pwd\`
4032 fi
4033 # remove .libs from thisdir
4034 case \"\$thisdir\" in
4035 *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
4036 $objdir ) thisdir=. ;;
4037 esac
4038 fi
4039
4040 # Try to get the absolute directory name.
4041 absdir=\`cd \"\$thisdir\" && pwd\`
4042 test -n \"\$absdir\" && thisdir=\"\$absdir\"
4043 "
4044
4045 if test "$fast_install" = yes; then
4046 $ECHO "\
4047 program=lt-'$outputname'$exeext
4048 progdir=\"\$thisdir/$objdir\"
4049
4050 if test ! -f \"\$progdir/\$program\" ||
4051 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
4052 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
4053
4054 file=\"\$\$-\$program\"
4055
4056 if test ! -d \"\$progdir\"; then
4057 $MKDIR \"\$progdir\"
4058 else
4059 $RM \"\$progdir/\$file\"
4060 fi"
4061
4062 $ECHO "\
4063
4064 # relink executable if necessary
4065 if test -n \"\$relink_command\"; then
4066 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
4067 else
4068 $ECHO \"\$relink_command_output\" >&2
4069 $RM \"\$progdir/\$file\"
4070 exit 1
4071 fi
4072 fi
4073
4074 $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
4075 { $RM \"\$progdir/\$program\";
4076 $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
4077 $RM \"\$progdir/\$file\"
4078 fi"
4079 else
4080 $ECHO "\
4081 program='$outputname'
4082 progdir=\"\$thisdir/$objdir\"
4083 "
4084 fi
4085
4086 $ECHO "\
4087
4088 if test -f \"\$progdir/\$program\"; then"
4089
4090 # fixup the dll searchpath if we need to.
4091 #
4092 # Fix the DLL searchpath if we need to. Do this before prepending
4093 # to shlibpath, because on Windows, both are PATH and uninstalled
4094 # libraries must come first.
4095 if test -n "$dllsearchpath"; then
4096 $ECHO "\
4097 # Add the dll search path components to the executable PATH
4098 PATH=$dllsearchpath:\$PATH
4099 "
4100 fi
4101
4102 # Export our shlibpath_var if we have one.
4103 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
4104 $ECHO "\
4105 # Add our own library path to $shlibpath_var
4106 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
4107
4108 # Some systems cannot cope with colon-terminated $shlibpath_var
4109 # The second colon is a workaround for a bug in BeOS R4 sed
4110 $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
4111
4112 export $shlibpath_var
4113 "
4114 fi
4115
4116 $ECHO "\
4117 if test \"\$libtool_execute_magic\" != \"$magic\"; then
4118 # Run the actual program with our arguments.
4119 func_exec_program \${1+\"\$@\"}
4120 fi
4121 else
4122 # The program doesn't exist.
4123 \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
4124 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
4125 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
4126 exit 1
4127 fi
4128 fi\
4129 "
4130 }
4131
4132
4133 # func_emit_cwrapperexe_src
4134 # emit the source code for a wrapper executable on stdout
4135 # Must ONLY be called from within func_mode_link because
4136 # it depends on a number of variable set therein.
4137 func_emit_cwrapperexe_src ()
4138 {
4139 cat <<EOF
4140
4141 /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4142 Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
4143
4144 The $output program cannot be directly executed until all the libtool
4145 libraries that it depends on are installed.
4146
4147 This wrapper executable should never be moved out of the build directory.
4148 If it is, it will not operate correctly.
4149 */
4150 EOF
4151 cat <<"EOF"
4152 #ifdef _MSC_VER
4153 # define _CRT_SECURE_NO_DEPRECATE 1
4154 #endif
4155 #include <stdio.h>
4156 #include <stdlib.h>
4157 #ifdef _MSC_VER
4158 # include <direct.h>
4159 # include <process.h>
4160 # include <io.h>
4161 #else
4162 # include <unistd.h>
4163 # include <stdint.h>
4164 # ifdef __CYGWIN__
4165 # include <io.h>
4166 # endif
4167 #endif
4168 #include <malloc.h>
4169 #include <stdarg.h>
4170 #include <assert.h>
4171 #include <string.h>
4172 #include <ctype.h>
4173 #include <errno.h>
4174 #include <fcntl.h>
4175 #include <sys/stat.h>
4176
4177 /* declarations of non-ANSI functions */
4178 #if defined(__MINGW32__)
4179 # ifdef __STRICT_ANSI__
4180 int _putenv (const char *);
4181 # endif
4182 #elif defined(__CYGWIN__)
4183 # ifdef __STRICT_ANSI__
4184 char *realpath (const char *, char *);
4185 int putenv (char *);
4186 int setenv (const char *, const char *, int);
4187 # endif
4188 /* #elif defined (other platforms) ... */
4189 #endif
4190
4191 /* portability defines, excluding path handling macros */
4192 #if defined(_MSC_VER)
4193 # define setmode _setmode
4194 # define stat _stat
4195 # define chmod _chmod
4196 # define getcwd _getcwd
4197 # define putenv _putenv
4198 # define S_IXUSR _S_IEXEC
4199 # ifndef _INTPTR_T_DEFINED
4200 # define _INTPTR_T_DEFINED
4201 # define intptr_t int
4202 # endif
4203 #elif defined(__MINGW32__)
4204 # define setmode _setmode
4205 # define stat _stat
4206 # define chmod _chmod
4207 # define getcwd _getcwd
4208 # define putenv _putenv
4209 #elif defined(__CYGWIN__)
4210 # define HAVE_SETENV
4211 # define FOPEN_WB "wb"
4212 /* #elif defined (other platforms) ... */
4213 #endif
4214
4215 #if defined(PATH_MAX)
4216 # define LT_PATHMAX PATH_MAX
4217 #elif defined(MAXPATHLEN)
4218 # define LT_PATHMAX MAXPATHLEN
4219 #else
4220 # define LT_PATHMAX 1024
4221 #endif
4222
4223 #ifndef S_IXOTH
4224 # define S_IXOTH 0
4225 #endif
4226 #ifndef S_IXGRP
4227 # define S_IXGRP 0
4228 #endif
4229
4230 /* path handling portability macros */
4231 #ifndef DIR_SEPARATOR
4232 # define DIR_SEPARATOR '/'
4233 # define PATH_SEPARATOR ':'
4234 #endif
4235
4236 #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4237 defined (__OS2__)
4238 # define HAVE_DOS_BASED_FILE_SYSTEM
4239 # define FOPEN_WB "wb"
4240 # ifndef DIR_SEPARATOR_2
4241 # define DIR_SEPARATOR_2 '\\'
4242 # endif
4243 # ifndef PATH_SEPARATOR_2
4244 # define PATH_SEPARATOR_2 ';'
4245 # endif
4246 #endif
4247
4248 #ifndef DIR_SEPARATOR_2
4249 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4250 #else /* DIR_SEPARATOR_2 */
4251 # define IS_DIR_SEPARATOR(ch) \
4252 (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4253 #endif /* DIR_SEPARATOR_2 */
4254
4255 #ifndef PATH_SEPARATOR_2
4256 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
4257 #else /* PATH_SEPARATOR_2 */
4258 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
4259 #endif /* PATH_SEPARATOR_2 */
4260
4261 #ifndef FOPEN_WB
4262 # define FOPEN_WB "w"
4263 #endif
4264 #ifndef _O_BINARY
4265 # define _O_BINARY 0
4266 #endif
4267
4268 #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
4269 #define XFREE(stale) do { \
4270 if (stale) { free ((void *) stale); stale = 0; } \
4271 } while (0)
4272
4273 #if defined(LT_DEBUGWRAPPER)
4274 static int lt_debug = 1;
4275 #else
4276 static int lt_debug = 0;
4277 #endif
4278
4279 const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
4280
4281 void *xmalloc (size_t num);
4282 char *xstrdup (const char *string);
4283 const char *base_name (const char *name);
4284 char *find_executable (const char *wrapper);
4285 char *chase_symlinks (const char *pathspec);
4286 int make_executable (const char *path);
4287 int check_executable (const char *path);
4288 char *strendzap (char *str, const char *pat);
4289 void lt_debugprintf (const char *file, int line, const char *fmt, ...);
4290 void lt_fatal (const char *file, int line, const char *message, ...);
4291 static const char *nonnull (const char *s);
4292 static const char *nonempty (const char *s);
4293 void lt_setenv (const char *name, const char *value);
4294 char *lt_extend_str (const char *orig_value, const char *add, int to_end);
4295 void lt_update_exe_path (const char *name, const char *value);
4296 void lt_update_lib_path (const char *name, const char *value);
4297 char **prepare_spawn (char **argv);
4298 void lt_dump_script (FILE *f);
4299 EOF
4300
4301 cat <<EOF
4302 volatile const char * MAGIC_EXE = "$magic_exe";
4303 const char * LIB_PATH_VARNAME = "$shlibpath_var";
4304 EOF
4305
4306 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
4307 func_to_host_path "$temp_rpath"
4308 cat <<EOF
4309 const char * LIB_PATH_VALUE = "$func_to_host_path_result";
4310 EOF
4311 else
4312 cat <<"EOF"
4313 const char * LIB_PATH_VALUE = "";
4314 EOF
4315 fi
4316
4317 if test -n "$dllsearchpath"; then
4318 func_to_host_path "$dllsearchpath:"
4319 cat <<EOF
4320 const char * EXE_PATH_VARNAME = "PATH";
4321 const char * EXE_PATH_VALUE = "$func_to_host_path_result";
4322 EOF
4323 else
4324 cat <<"EOF"
4325 const char * EXE_PATH_VARNAME = "";
4326 const char * EXE_PATH_VALUE = "";
4327 EOF
4328 fi
4329
4330 if test "$fast_install" = yes; then
4331 cat <<EOF
4332 const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
4333 EOF
4334 else
4335 cat <<EOF
4336 const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
4337 EOF
4338 fi
4339
4340
4341 cat <<"EOF"
4342
4343 #define LTWRAPPER_OPTION_PREFIX "--lt-"
4344
4345 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
4346 static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
4347 static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
4348
4349 int
4350 main (int argc, char *argv[])
4351 {
4352 char **newargz;
4353 int newargc;
4354 char *tmp_pathspec;
4355 char *actual_cwrapper_path;
4356 char *actual_cwrapper_name;
4357 char *target_name;
4358 char *lt_argv_zero;
4359 intptr_t rval = 127;
4360
4361 int i;
4362
4363 program_name = (char *) xstrdup (base_name (argv[0]));
4364 newargz = XMALLOC (char *, argc + 1);
4365
4366 /* very simple arg parsing; don't want to rely on getopt
4367 * also, copy all non cwrapper options to newargz, except
4368 * argz[0], which is handled differently
4369 */
4370 newargc=0;
4371 for (i = 1; i < argc; i++)
4372 {
4373 if (strcmp (argv[i], dumpscript_opt) == 0)
4374 {
4375 EOF
4376 case "$host" in
4377 *mingw* | *cygwin* )
4378 # make stdout use "unix" line endings
4379 echo " setmode(1,_O_BINARY);"
4380 ;;
4381 esac
4382
4383 cat <<"EOF"
4384 lt_dump_script (stdout);
4385 return 0;
4386 }
4387 if (strcmp (argv[i], debug_opt) == 0)
4388 {
4389 lt_debug = 1;
4390 continue;
4391 }
4392 if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
4393 {
4394 /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
4395 namespace, but it is not one of the ones we know about and
4396 have already dealt with, above (inluding dump-script), then
4397 report an error. Otherwise, targets might begin to believe
4398 they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
4399 namespace. The first time any user complains about this, we'll
4400 need to make LTWRAPPER_OPTION_PREFIX a configure-time option
4401 or a configure.ac-settable value.
4402 */
4403 lt_fatal (__FILE__, __LINE__,
4404 "unrecognized %s option: '%s'",
4405 ltwrapper_option_prefix, argv[i]);
4406 }
4407 /* otherwise ... */
4408 newargz[++newargc] = xstrdup (argv[i]);
4409 }
4410 newargz[++newargc] = NULL;
4411
4412 EOF
4413 cat <<EOF
4414 /* The GNU banner must be the first non-error debug message */
4415 lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
4416 EOF
4417 cat <<"EOF"
4418 lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
4419 lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
4420
4421 tmp_pathspec = find_executable (argv[0]);
4422 if (tmp_pathspec == NULL)
4423 lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
4424 lt_debugprintf (__FILE__, __LINE__,
4425 "(main) found exe (before symlink chase) at: %s\n",
4426 tmp_pathspec);
4427
4428 actual_cwrapper_path = chase_symlinks (tmp_pathspec);
4429 lt_debugprintf (__FILE__, __LINE__,
4430 "(main) found exe (after symlink chase) at: %s\n",
4431 actual_cwrapper_path);
4432 XFREE (tmp_pathspec);
4433
4434 actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
4435 strendzap (actual_cwrapper_path, actual_cwrapper_name);
4436
4437 /* wrapper name transforms */
4438 strendzap (actual_cwrapper_name, ".exe");
4439 tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
4440 XFREE (actual_cwrapper_name);
4441 actual_cwrapper_name = tmp_pathspec;
4442 tmp_pathspec = 0;
4443
4444 /* target_name transforms -- use actual target program name; might have lt- prefix */
4445 target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
4446 strendzap (target_name, ".exe");
4447 tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
4448 XFREE (target_name);
4449 target_name = tmp_pathspec;
4450 tmp_pathspec = 0;
4451
4452 lt_debugprintf (__FILE__, __LINE__,
4453 "(main) libtool target name: %s\n",
4454 target_name);
4455 EOF
4456
4457 cat <<EOF
4458 newargz[0] =
4459 XMALLOC (char, (strlen (actual_cwrapper_path) +
4460 strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
4461 strcpy (newargz[0], actual_cwrapper_path);
4462 strcat (newargz[0], "$objdir");
4463 strcat (newargz[0], "/");
4464 EOF
4465
4466 cat <<"EOF"
4467 /* stop here, and copy so we don't have to do this twice */
4468 tmp_pathspec = xstrdup (newargz[0]);
4469
4470 /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
4471 strcat (newargz[0], actual_cwrapper_name);
4472
4473 /* DO want the lt- prefix here if it exists, so use target_name */
4474 lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
4475 XFREE (tmp_pathspec);
4476 tmp_pathspec = NULL;
4477 EOF
4478
4479 case $host_os in
4480 mingw*)
4481 cat <<"EOF"
4482 {
4483 char* p;
4484 while ((p = strchr (newargz[0], '\\')) != NULL)
4485 {
4486 *p = '/';
4487 }
4488 while ((p = strchr (lt_argv_zero, '\\')) != NULL)
4489 {
4490 *p = '/';
4491 }
4492 }
4493 EOF
4494 ;;
4495 esac
4496
4497 cat <<"EOF"
4498 XFREE (target_name);
4499 XFREE (actual_cwrapper_path);
4500 XFREE (actual_cwrapper_name);
4501
4502 lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
4503 lt_setenv ("DUALCASE", "1"); /* for MSK sh */
4504 /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
4505 be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
4506 because on Windows, both *_VARNAMEs are PATH but uninstalled
4507 libraries must come first. */
4508 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
4509 lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
4510
4511 lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
4512 nonnull (lt_argv_zero));
4513 for (i = 0; i < newargc; i++)
4514 {
4515 lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
4516 i, nonnull (newargz[i]));
4517 }
4518
4519 EOF
4520
4521 case $host_os in
4522 mingw*)
4523 cat <<"EOF"
4524 /* execv doesn't actually work on mingw as expected on unix */
4525 newargz = prepare_spawn (newargz);
4526 rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
4527 if (rval == -1)
4528 {
4529 /* failed to start process */
4530 lt_debugprintf (__FILE__, __LINE__,
4531 "(main) failed to launch target \"%s\": %s\n",
4532 lt_argv_zero, nonnull (strerror (errno)));
4533 return 127;
4534 }
4535 return rval;
4536 EOF
4537 ;;
4538 *)
4539 cat <<"EOF"
4540 execv (lt_argv_zero, newargz);
4541 return rval; /* =127, but avoids unused variable warning */
4542 EOF
4543 ;;
4544 esac
4545
4546 cat <<"EOF"
4547 }
4548
4549 void *
4550 xmalloc (size_t num)
4551 {
4552 void *p = (void *) malloc (num);
4553 if (!p)
4554 lt_fatal (__FILE__, __LINE__, "memory exhausted");
4555
4556 return p;
4557 }
4558
4559 char *
4560 xstrdup (const char *string)
4561 {
4562 return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
4563 string) : NULL;
4564 }
4565
4566 const char *
4567 base_name (const char *name)
4568 {
4569 const char *base;
4570
4571 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4572 /* Skip over the disk name in MSDOS pathnames. */
4573 if (isalpha ((unsigned char) name[0]) && name[1] == ':')
4574 name += 2;
4575 #endif
4576
4577 for (base = name; *name; name++)
4578 if (IS_DIR_SEPARATOR (*name))
4579 base = name + 1;
4580 return base;
4581 }
4582
4583 int
4584 check_executable (const char *path)
4585 {
4586 struct stat st;
4587
4588 lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
4589 nonempty (path));
4590 if ((!path) || (!*path))
4591 return 0;
4592
4593 if ((stat (path, &st) >= 0)
4594 && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
4595 return 1;
4596 else
4597 return 0;
4598 }
4599
4600 int
4601 make_executable (const char *path)
4602 {
4603 int rval = 0;
4604 struct stat st;
4605
4606 lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
4607 nonempty (path));
4608 if ((!path) || (!*path))
4609 return 0;
4610
4611 if (stat (path, &st) >= 0)
4612 {
4613 rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
4614 }
4615 return rval;
4616 }
4617
4618 /* Searches for the full path of the wrapper. Returns
4619 newly allocated full path name if found, NULL otherwise
4620 Does not chase symlinks, even on platforms that support them.
4621 */
4622 char *
4623 find_executable (const char *wrapper)
4624 {
4625 int has_slash = 0;
4626 const char *p;
4627 const char *p_next;
4628 /* static buffer for getcwd */
4629 char tmp[LT_PATHMAX + 1];
4630 int tmp_len;
4631 char *concat_name;
4632
4633 lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
4634 nonempty (wrapper));
4635
4636 if ((wrapper == NULL) || (*wrapper == '\0'))
4637 return NULL;
4638
4639 /* Absolute path? */
4640 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4641 if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
4642 {
4643 concat_name = xstrdup (wrapper);
4644 if (check_executable (concat_name))
4645 return concat_name;
4646 XFREE (concat_name);
4647 }
4648 else
4649 {
4650 #endif
4651 if (IS_DIR_SEPARATOR (wrapper[0]))
4652 {
4653 concat_name = xstrdup (wrapper);
4654 if (check_executable (concat_name))
4655 return concat_name;
4656 XFREE (concat_name);
4657 }
4658 #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
4659 }
4660 #endif
4661
4662 for (p = wrapper; *p; p++)
4663 if (*p == '/')
4664 {
4665 has_slash = 1;
4666 break;
4667 }
4668 if (!has_slash)
4669 {
4670 /* no slashes; search PATH */
4671 const char *path = getenv ("PATH");
4672 if (path != NULL)
4673 {
4674 for (p = path; *p; p = p_next)
4675 {
4676 const char *q;
4677 size_t p_len;
4678 for (q = p; *q; q++)
4679 if (IS_PATH_SEPARATOR (*q))
4680 break;
4681 p_len = q - p;
4682 p_next = (*q == '\0' ? q : q + 1);
4683 if (p_len == 0)
4684 {
4685 /* empty path: current directory */
4686 if (getcwd (tmp, LT_PATHMAX) == NULL)
4687 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
4688 nonnull (strerror (errno)));
4689 tmp_len = strlen (tmp);
4690 concat_name =
4691 XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
4692 memcpy (concat_name, tmp, tmp_len);
4693 concat_name[tmp_len] = '/';
4694 strcpy (concat_name + tmp_len + 1, wrapper);
4695 }
4696 else
4697 {
4698 concat_name =
4699 XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
4700 memcpy (concat_name, p, p_len);
4701 concat_name[p_len] = '/';
4702 strcpy (concat_name + p_len + 1, wrapper);
4703 }
4704 if (check_executable (concat_name))
4705 return concat_name;
4706 XFREE (concat_name);
4707 }
4708 }
4709 /* not found in PATH; assume curdir */
4710 }
4711 /* Relative path | not found in path: prepend cwd */
4712 if (getcwd (tmp, LT_PATHMAX) == NULL)
4713 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
4714 nonnull (strerror (errno)));
4715 tmp_len = strlen (tmp);
4716 concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
4717 memcpy (concat_name, tmp, tmp_len);
4718 concat_name[tmp_len] = '/';
4719 strcpy (concat_name + tmp_len + 1, wrapper);
4720
4721 if (check_executable (concat_name))
4722 return concat_name;
4723 XFREE (concat_name);
4724 return NULL;
4725 }
4726
4727 char *
4728 chase_symlinks (const char *pathspec)
4729 {
4730 #ifndef S_ISLNK
4731 return xstrdup (pathspec);
4732 #else
4733 char buf[LT_PATHMAX];
4734 struct stat s;
4735 char *tmp_pathspec = xstrdup (pathspec);
4736 char *p;
4737 int has_symlinks = 0;
4738 while (strlen (tmp_pathspec) && !has_symlinks)
4739 {
4740 lt_debugprintf (__FILE__, __LINE__,
4741 "checking path component for symlinks: %s\n",
4742 tmp_pathspec);
4743 if (lstat (tmp_pathspec, &s) == 0)
4744 {
4745 if (S_ISLNK (s.st_mode) != 0)
4746 {
4747 has_symlinks = 1;
4748 break;
4749 }
4750
4751 /* search backwards for last DIR_SEPARATOR */
4752 p = tmp_pathspec + strlen (tmp_pathspec) - 1;
4753 while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
4754 p--;
4755 if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
4756 {
4757 /* no more DIR_SEPARATORS left */
4758 break;
4759 }
4760 *p = '\0';
4761 }
4762 else
4763 {
4764 lt_fatal (__FILE__, __LINE__,
4765 "error accessing file \"%s\": %s",
4766 tmp_pathspec, nonnull (strerror (errno)));
4767 }
4768 }
4769 XFREE (tmp_pathspec);
4770
4771 if (!has_symlinks)
4772 {
4773 return xstrdup (pathspec);
4774 }
4775
4776 tmp_pathspec = realpath (pathspec, buf);
4777 if (tmp_pathspec == 0)
4778 {
4779 lt_fatal (__FILE__, __LINE__,
4780 "could not follow symlinks for %s", pathspec);
4781 }
4782 return xstrdup (tmp_pathspec);
4783 #endif
4784 }
4785
4786 char *
4787 strendzap (char *str, const char *pat)
4788 {
4789 size_t len, patlen;
4790
4791 assert (str != NULL);
4792 assert (pat != NULL);
4793
4794 len = strlen (str);
4795 patlen = strlen (pat);
4796
4797 if (patlen <= len)
4798 {
4799 str += len - patlen;
4800 if (strcmp (str, pat) == 0)
4801 *str = '\0';
4802 }
4803 return str;
4804 }
4805
4806 void
4807 lt_debugprintf (const char *file, int line, const char *fmt, ...)
4808 {
4809 va_list args;
4810 if (lt_debug)
4811 {
4812 (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
4813 va_start (args, fmt);
4814 (void) vfprintf (stderr, fmt, args);
4815 va_end (args);
4816 }
4817 }
4818
4819 static void
4820 lt_error_core (int exit_status, const char *file,
4821 int line, const char *mode,
4822 const char *message, va_list ap)
4823 {
4824 fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
4825 vfprintf (stderr, message, ap);
4826 fprintf (stderr, ".\n");
4827
4828 if (exit_status >= 0)
4829 exit (exit_status);
4830 }
4831
4832 void
4833 lt_fatal (const char *file, int line, const char *message, ...)
4834 {
4835 va_list ap;
4836 va_start (ap, message);
4837 lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
4838 va_end (ap);
4839 }
4840
4841 static const char *
4842 nonnull (const char *s)
4843 {
4844 return s ? s : "(null)";
4845 }
4846
4847 static const char *
4848 nonempty (const char *s)
4849 {
4850 return (s && !*s) ? "(empty)" : nonnull (s);
4851 }
4852
4853 void
4854 lt_setenv (const char *name, const char *value)
4855 {
4856 lt_debugprintf (__FILE__, __LINE__,
4857 "(lt_setenv) setting '%s' to '%s'\n",
4858 nonnull (name), nonnull (value));
4859 {
4860 #ifdef HAVE_SETENV
4861 /* always make a copy, for consistency with !HAVE_SETENV */
4862 char *str = xstrdup (value);
4863 setenv (name, str, 1);
4864 #else
4865 int len = strlen (name) + 1 + strlen (value) + 1;
4866 char *str = XMALLOC (char, len);
4867 sprintf (str, "%s=%s", name, value);
4868 if (putenv (str) != EXIT_SUCCESS)
4869 {
4870 XFREE (str);
4871 }
4872 #endif
4873 }
4874 }
4875
4876 char *
4877 lt_extend_str (const char *orig_value, const char *add, int to_end)
4878 {
4879 char *new_value;
4880 if (orig_value && *orig_value)
4881 {
4882 int orig_value_len = strlen (orig_value);
4883 int add_len = strlen (add);
4884 new_value = XMALLOC (char, add_len + orig_value_len + 1);
4885 if (to_end)
4886 {
4887 strcpy (new_value, orig_value);
4888 strcpy (new_value + orig_value_len, add);
4889 }
4890 else
4891 {
4892 strcpy (new_value, add);
4893 strcpy (new_value + add_len, orig_value);
4894 }
4895 }
4896 else
4897 {
4898 new_value = xstrdup (add);
4899 }
4900 return new_value;
4901 }
4902
4903 void
4904 lt_update_exe_path (const char *name, const char *value)
4905 {
4906 lt_debugprintf (__FILE__, __LINE__,
4907 "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
4908 nonnull (name), nonnull (value));
4909
4910 if (name && *name && value && *value)
4911 {
4912 char *new_value = lt_extend_str (getenv (name), value, 0);
4913 /* some systems can't cope with a ':'-terminated path #' */
4914 int len = strlen (new_value);
4915 while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
4916 {
4917 new_value[len-1] = '\0';
4918 }
4919 lt_setenv (name, new_value);
4920 XFREE (new_value);
4921 }
4922 }
4923
4924 void
4925 lt_update_lib_path (const char *name, const char *value)
4926 {
4927 lt_debugprintf (__FILE__, __LINE__,
4928 "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
4929 nonnull (name), nonnull (value));
4930
4931 if (name && *name && value && *value)
4932 {
4933 char *new_value = lt_extend_str (getenv (name), value, 0);
4934 lt_setenv (name, new_value);
4935 XFREE (new_value);
4936 }
4937 }
4938
4939 EOF
4940 case $host_os in
4941 mingw*)
4942 cat <<"EOF"
4943
4944 /* Prepares an argument vector before calling spawn().
4945 Note that spawn() does not by itself call the command interpreter
4946 (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
4947 ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
4948 GetVersionEx(&v);
4949 v.dwPlatformId == VER_PLATFORM_WIN32_NT;
4950 }) ? "cmd.exe" : "command.com").
4951 Instead it simply concatenates the arguments, separated by ' ', and calls
4952 CreateProcess(). We must quote the arguments since Win32 CreateProcess()
4953 interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
4954 special way:
4955 - Space and tab are interpreted as delimiters. They are not treated as
4956 delimiters if they are surrounded by double quotes: "...".
4957 - Unescaped double quotes are removed from the input. Their only effect is
4958 that within double quotes, space and tab are treated like normal
4959 characters.
4960 - Backslashes not followed by double quotes are not special.
4961 - But 2*n+1 backslashes followed by a double quote become
4962 n backslashes followed by a double quote (n >= 0):
4963 \" -> "
4964 \\\" -> \"
4965 \\\\\" -> \\"
4966 */
4967 #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
4968 #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
4969 char **
4970 prepare_spawn (char **argv)
4971 {
4972 size_t argc;
4973 char **new_argv;
4974 size_t i;
4975
4976 /* Count number of arguments. */
4977 for (argc = 0; argv[argc] != NULL; argc++)
4978 ;
4979
4980 /* Allocate new argument vector. */
4981 new_argv = XMALLOC (char *, argc + 1);
4982
4983 /* Put quoted arguments into the new argument vector. */
4984 for (i = 0; i < argc; i++)
4985 {
4986 const char *string = argv[i];
4987
4988 if (string[0] == '\0')
4989 new_argv[i] = xstrdup ("\"\"");
4990 else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
4991 {
4992 int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
4993 size_t length;
4994 unsigned int backslashes;
4995 const char *s;
4996 char *quoted_string;
4997 char *p;
4998
4999 length = 0;
5000 backslashes = 0;
5001 if (quote_around)
5002 length++;
5003 for (s = string; *s != '\0'; s++)
5004 {
5005 char c = *s;
5006 if (c == '"')
5007 length += backslashes + 1;
5008 length++;
5009 if (c == '\\')
5010 backslashes++;
5011 else
5012 backslashes = 0;
5013 }
5014 if (quote_around)
5015 length += backslashes + 1;
5016
5017 quoted_string = XMALLOC (char, length + 1);
5018
5019 p = quoted_string;
5020 backslashes = 0;
5021 if (quote_around)
5022 *p++ = '"';
5023 for (s = string; *s != '\0'; s++)
5024 {
5025 char c = *s;
5026 if (c == '"')
5027 {
5028 unsigned int j;
5029 for (j = backslashes + 1; j > 0; j--)
5030 *p++ = '\\';
5031 }
5032 *p++ = c;
5033 if (c == '\\')
5034 backslashes++;
5035 else
5036 backslashes = 0;
5037 }
5038 if (quote_around)
5039 {
5040 unsigned int j;
5041 for (j = backslashes; j > 0; j--)
5042 *p++ = '\\';
5043 *p++ = '"';
5044 }
5045 *p = '\0';
5046
5047 new_argv[i] = quoted_string;
5048 }
5049 else
5050 new_argv[i] = (char *) string;
5051 }
5052 new_argv[argc] = NULL;
5053
5054 return new_argv;
5055 }
5056 EOF
5057 ;;
5058 esac
5059
5060 cat <<"EOF"
5061 void lt_dump_script (FILE* f)
5062 {
5063 EOF
5064 func_emit_wrapper yes |
5065 $SED -n -e '
5066 s/^\(.\{79\}\)\(..*\)/\1\
5067 \2/
5068 h
5069 s/\([\\"]\)/\\\1/g
5070 s/$/\\n/
5071 s/\([^\n]*\).*/ fputs ("\1", f);/p
5072 g
5073 D'
5074 cat <<"EOF"
5075 }
5076 EOF
5077 }
5078 # end: func_emit_cwrapperexe_src
5079
5080 # func_win32_import_lib_p ARG
5081 # True if ARG is an import lib, as indicated by $file_magic_cmd
5082 func_win32_import_lib_p ()
5083 {
5084 $opt_debug
5085 case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
5086 *import*) : ;;
5087 *) false ;;
5088 esac
5089 }
5090
5091 # func_mode_link arg...
5092 func_mode_link ()
5093 {
5094 $opt_debug
5095 case $host in
5096 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
5097 # It is impossible to link a dll without this setting, and
5098 # we shouldn't force the makefile maintainer to figure out
5099 # which system we are compiling for in order to pass an extra
5100 # flag for every libtool invocation.
5101 # allow_undefined=no
5102
5103 # FIXME: Unfortunately, there are problems with the above when trying
5104 # to make a dll which has undefined symbols, in which case not
5105 # even a static library is built. For now, we need to specify
5106 # -no-undefined on the libtool link line when we can be certain
5107 # that all symbols are satisfied, otherwise we get a static library.
5108 allow_undefined=yes
5109 ;;
5110 *)
5111 allow_undefined=yes
5112 ;;
5113 esac
5114 libtool_args=$nonopt
5115 base_compile="$nonopt $@"
5116 compile_command=$nonopt
5117 finalize_command=$nonopt
5118
5119 compile_rpath=
5120 finalize_rpath=
5121 compile_shlibpath=
5122 finalize_shlibpath=
5123 convenience=
5124 old_convenience=
5125 deplibs=
5126 old_deplibs=
5127 compiler_flags=
5128 linker_flags=
5129 dllsearchpath=
5130 lib_search_path=`pwd`
5131 inst_prefix_dir=
5132 new_inherited_linker_flags=
5133
5134 avoid_version=no
5135 bindir=
5136 dlfiles=
5137 dlprefiles=
5138 dlself=no
5139 export_dynamic=no
5140 export_symbols=
5141 export_symbols_regex=
5142 generated=
5143 libobjs=
5144 ltlibs=
5145 module=no
5146 no_install=no
5147 objs=
5148 non_pic_objects=
5149 precious_files_regex=
5150 prefer_static_libs=no
5151 preload=no
5152 prev=
5153 prevarg=
5154 release=
5155 rpath=
5156 xrpath=
5157 perm_rpath=
5158 temp_rpath=
5159 thread_safe=no
5160 vinfo=
5161 vinfo_number=no
5162 weak_libs=
5163 single_module="${wl}-single_module"
5164 func_infer_tag $base_compile
5165
5166 # We need to know -static, to get the right output filenames.
5167 for arg
5168 do
5169 case $arg in
5170 -shared)
5171 test "$build_libtool_libs" != yes && \
5172 func_fatal_configuration "can not build a shared library"
5173 build_old_libs=no
5174 break
5175 ;;
5176 -all-static | -static | -static-libtool-libs)
5177 case $arg in
5178 -all-static)
5179 if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
5180 func_warning "complete static linking is impossible in this configuration"
5181 fi
5182 if test -n "$link_static_flag"; then
5183 dlopen_self=$dlopen_self_static
5184 fi
5185 prefer_static_libs=yes
5186 ;;
5187 -static)
5188 if test -z "$pic_flag" && test -n "$link_static_flag"; then
5189 dlopen_self=$dlopen_self_static
5190 fi
5191 prefer_static_libs=built
5192 ;;
5193 -static-libtool-libs)
5194 if test -z "$pic_flag" && test -n "$link_static_flag"; then
5195 dlopen_self=$dlopen_self_static
5196 fi
5197 prefer_static_libs=yes
5198 ;;
5199 esac
5200 build_libtool_libs=no
5201 build_old_libs=yes
5202 break
5203 ;;
5204 esac
5205 done
5206
5207 # See if our shared archives depend on static archives.
5208 test -n "$old_archive_from_new_cmds" && build_old_libs=yes
5209
5210 # Go through the arguments, transforming them on the way.
5211 while test "$#" -gt 0; do
5212 arg="$1"
5213 shift
5214 func_quote_for_eval "$arg"
5215 qarg=$func_quote_for_eval_unquoted_result
5216 func_append libtool_args " $func_quote_for_eval_result"
5217
5218 # If the previous option needs an argument, assign it.
5219 if test -n "$prev"; then
5220 case $prev in
5221 output)
5222 func_append compile_command " @OUTPUT@"
5223 func_append finalize_command " @OUTPUT@"
5224 ;;
5225 esac
5226
5227 case $prev in
5228 bindir)
5229 bindir="$arg"
5230 prev=
5231 continue
5232 ;;
5233 dlfiles|dlprefiles)
5234 if test "$preload" = no; then
5235 # Add the symbol object into the linking commands.
5236 func_append compile_command " @SYMFILE@"
5237 func_append finalize_command " @SYMFILE@"
5238 preload=yes
5239 fi
5240 case $arg in
5241 *.la | *.lo) ;; # We handle these cases below.
5242 force)
5243 if test "$dlself" = no; then
5244 dlself=needless
5245 export_dynamic=yes
5246 fi
5247 prev=
5248 continue
5249 ;;
5250 self)
5251 if test "$prev" = dlprefiles; then
5252 dlself=yes
5253 elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
5254 dlself=yes
5255 else
5256 dlself=needless
5257 export_dynamic=yes
5258 fi
5259 prev=
5260 continue
5261 ;;
5262 *)
5263 if test "$prev" = dlfiles; then
5264 func_append dlfiles " $arg"
5265 else
5266 func_append dlprefiles " $arg"
5267 fi
5268 prev=
5269 continue
5270 ;;
5271 esac
5272 ;;
5273 expsyms)
5274 export_symbols="$arg"
5275 test -f "$arg" \
5276 || func_fatal_error "symbol file \`$arg' does not exist"
5277 prev=
5278 continue
5279 ;;
5280 expsyms_regex)
5281 export_symbols_regex="$arg"
5282 prev=
5283 continue
5284 ;;
5285 framework)
5286 case $host in
5287 *-*-darwin*)
5288 case "$deplibs " in
5289 *" $qarg.ltframework "*) ;;
5290 *) func_append deplibs " $qarg.ltframework" # this is fixed later
5291 ;;
5292 esac
5293 ;;
5294 esac
5295 prev=
5296 continue
5297 ;;
5298 inst_prefix)
5299 inst_prefix_dir="$arg"
5300 prev=
5301 continue
5302 ;;
5303 objectlist)
5304 if test -f "$arg"; then
5305 save_arg=$arg
5306 moreargs=
5307 for fil in `cat "$save_arg"`
5308 do
5309 # func_append moreargs " $fil"
5310 arg=$fil
5311 # A libtool-controlled object.
5312
5313 # Check to see that this really is a libtool object.
5314 if func_lalib_unsafe_p "$arg"; then
5315 pic_object=
5316 non_pic_object=
5317
5318 # Read the .lo file
5319 func_source "$arg"
5320
5321 if test -z "$pic_object" ||
5322 test -z "$non_pic_object" ||
5323 test "$pic_object" = none &&
5324 test "$non_pic_object" = none; then
5325 func_fatal_error "cannot find name of object for \`$arg'"
5326 fi
5327
5328 # Extract subdirectory from the argument.
5329 func_dirname "$arg" "/" ""
5330 xdir="$func_dirname_result"
5331
5332 if test "$pic_object" != none; then
5333 # Prepend the subdirectory the object is found in.
5334 pic_object="$xdir$pic_object"
5335
5336 if test "$prev" = dlfiles; then
5337 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
5338 func_append dlfiles " $pic_object"
5339 prev=
5340 continue
5341 else
5342 # If libtool objects are unsupported, then we need to preload.
5343 prev=dlprefiles
5344 fi
5345 fi
5346
5347 # CHECK ME: I think I busted this. -Ossama
5348 if test "$prev" = dlprefiles; then
5349 # Preload the old-style object.
5350 func_append dlprefiles " $pic_object"
5351 prev=
5352 fi
5353
5354 # A PIC object.
5355 func_append libobjs " $pic_object"
5356 arg="$pic_object"
5357 fi
5358
5359 # Non-PIC object.
5360 if test "$non_pic_object" != none; then
5361 # Prepend the subdirectory the object is found in.
5362 non_pic_object="$xdir$non_pic_object"
5363
5364 # A standard non-PIC object
5365 func_append non_pic_objects " $non_pic_object"
5366 if test -z "$pic_object" || test "$pic_object" = none ; then
5367 arg="$non_pic_object"
5368 fi
5369 else
5370 # If the PIC object exists, use it instead.
5371 # $xdir was prepended to $pic_object above.
5372 non_pic_object="$pic_object"
5373 func_append non_pic_objects " $non_pic_object"
5374 fi
5375 else
5376 # Only an error if not doing a dry-run.
5377 if $opt_dry_run; then
5378 # Extract subdirectory from the argument.
5379 func_dirname "$arg" "/" ""
5380 xdir="$func_dirname_result"
5381
5382 func_lo2o "$arg"
5383 pic_object=$xdir$objdir/$func_lo2o_result
5384 non_pic_object=$xdir$func_lo2o_result
5385 func_append libobjs " $pic_object"
5386 func_append non_pic_objects " $non_pic_object"
5387 else
5388 func_fatal_error "\`$arg' is not a valid libtool object"
5389 fi
5390 fi
5391 done
5392 else
5393 func_fatal_error "link input file \`$arg' does not exist"
5394 fi
5395 arg=$save_arg
5396 prev=
5397 continue
5398 ;;
5399 precious_regex)
5400 precious_files_regex="$arg"
5401 prev=
5402 continue
5403 ;;
5404 release)
5405 release="-$arg"
5406 prev=
5407 continue
5408 ;;
5409 rpath | xrpath)
5410 # We need an absolute path.
5411 case $arg in
5412 [\\/]* | [A-Za-z]:[\\/]*) ;;
5413 *)
5414 func_fatal_error "only absolute run-paths are allowed"
5415 ;;
5416 esac
5417 if test "$prev" = rpath; then
5418 case "$rpath " in
5419 *" $arg "*) ;;
5420 *) func_append rpath " $arg" ;;
5421 esac
5422 else
5423 case "$xrpath " in
5424 *" $arg "*) ;;
5425 *) func_append xrpath " $arg" ;;
5426 esac
5427 fi
5428 prev=
5429 continue
5430 ;;
5431 shrext)
5432 shrext_cmds="$arg"
5433 prev=
5434 continue
5435 ;;
5436 weak)
5437 func_append weak_libs " $arg"
5438 prev=
5439 continue
5440 ;;
5441 xcclinker)
5442 func_append linker_flags " $qarg"
5443 func_append compiler_flags " $qarg"
5444 prev=
5445 func_append compile_command " $qarg"
5446 func_append finalize_command " $qarg"
5447 continue
5448 ;;
5449 xcompiler)
5450 func_append compiler_flags " $qarg"
5451 prev=
5452 func_append compile_command " $qarg"
5453 func_append finalize_command " $qarg"
5454 continue
5455 ;;
5456 xlinker)
5457 func_append linker_flags " $qarg"
5458 func_append compiler_flags " $wl$qarg"
5459 prev=
5460 func_append compile_command " $wl$qarg"
5461 func_append finalize_command " $wl$qarg"
5462 continue
5463 ;;
5464 *)
5465 eval "$prev=\"\$arg\""
5466 prev=
5467 continue
5468 ;;
5469 esac
5470 fi # test -n "$prev"
5471
5472 prevarg="$arg"
5473
5474 case $arg in
5475 -all-static)
5476 if test -n "$link_static_flag"; then
5477 # See comment for -static flag below, for more details.
5478 func_append compile_command " $link_static_flag"
5479 func_append finalize_command " $link_static_flag"
5480 fi
5481 continue
5482 ;;
5483
5484 -allow-undefined)
5485 # FIXME: remove this flag sometime in the future.
5486 func_fatal_error "\`-allow-undefined' must not be used because it is the default"
5487 ;;
5488
5489 -avoid-version)
5490 avoid_version=yes
5491 continue
5492 ;;
5493
5494 -bindir)
5495 prev=bindir
5496 continue
5497 ;;
5498
5499 -dlopen)
5500 prev=dlfiles
5501 continue
5502 ;;
5503
5504 -dlpreopen)
5505 prev=dlprefiles
5506 continue
5507 ;;
5508
5509 -export-dynamic)
5510 export_dynamic=yes
5511 continue
5512 ;;
5513
5514 -export-symbols | -export-symbols-regex)
5515 if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
5516 func_fatal_error "more than one -exported-symbols argument is not allowed"
5517 fi
5518 if test "X$arg" = "X-export-symbols"; then
5519 prev=expsyms
5520 else
5521 prev=expsyms_regex
5522 fi
5523 continue
5524 ;;
5525
5526 -framework)
5527 prev=framework
5528 continue
5529 ;;
5530
5531 -inst-prefix-dir)
5532 prev=inst_prefix
5533 continue
5534 ;;
5535
5536 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
5537 # so, if we see these flags be careful not to treat them like -L
5538 -L[A-Z][A-Z]*:*)
5539 case $with_gcc/$host in
5540 no/*-*-irix* | /*-*-irix*)
5541 func_append compile_command " $arg"
5542 func_append finalize_command " $arg"
5543 ;;
5544 esac
5545 continue
5546 ;;
5547
5548 -L*)
5549 func_stripname "-L" '' "$arg"
5550 if test -z "$func_stripname_result"; then
5551 if test "$#" -gt 0; then
5552 func_fatal_error "require no space between \`-L' and \`$1'"
5553 else
5554 func_fatal_error "need path for \`-L' option"
5555 fi
5556 fi
5557 func_resolve_sysroot "$func_stripname_result"
5558 dir=$func_resolve_sysroot_result
5559 # We need an absolute path.
5560 case $dir in
5561 [\\/]* | [A-Za-z]:[\\/]*) ;;
5562 *)
5563 absdir=`cd "$dir" && pwd`
5564 test -z "$absdir" && \
5565 func_fatal_error "cannot determine absolute directory name of \`$dir'"
5566 dir="$absdir"
5567 ;;
5568 esac
5569 case "$deplibs " in
5570 *" -L$dir "* | *" $arg "*)
5571 # Will only happen for absolute or sysroot arguments
5572 ;;
5573 *)
5574 # Preserve sysroot, but never include relative directories
5575 case $dir in
5576 [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
5577 *) func_append deplibs " -L$dir" ;;
5578 esac
5579 func_append lib_search_path " $dir"
5580 ;;
5581 esac
5582 case $host in
5583 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
5584 testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
5585 case :$dllsearchpath: in
5586 *":$dir:"*) ;;
5587 ::) dllsearchpath=$dir;;
5588 *) func_append dllsearchpath ":$dir";;
5589 esac
5590 case :$dllsearchpath: in
5591 *":$testbindir:"*) ;;
5592 ::) dllsearchpath=$testbindir;;
5593 *) func_append dllsearchpath ":$testbindir";;
5594 esac
5595 ;;
5596 esac
5597 continue
5598 ;;
5599
5600 -l*)
5601 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
5602 case $host in
5603 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
5604 # These systems don't actually have a C or math library (as such)
5605 continue
5606 ;;
5607 *-*-os2*)
5608 # These systems don't actually have a C library (as such)
5609 test "X$arg" = "X-lc" && continue
5610 ;;
5611 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
5612 # Do not include libc due to us having libc/libc_r.
5613 test "X$arg" = "X-lc" && continue
5614 ;;
5615 *-*-rhapsody* | *-*-darwin1.[012])
5616 # Rhapsody C and math libraries are in the System framework
5617 func_append deplibs " System.ltframework"
5618 continue
5619 ;;
5620 *-*-sco3.2v5* | *-*-sco5v6*)
5621 # Causes problems with __ctype
5622 test "X$arg" = "X-lc" && continue
5623 ;;
5624 *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
5625 # Compiler inserts libc in the correct place for threads to work
5626 test "X$arg" = "X-lc" && continue
5627 ;;
5628 esac
5629 elif test "X$arg" = "X-lc_r"; then
5630 case $host in
5631 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
5632 # Do not include libc_r directly, use -pthread flag.
5633 continue
5634 ;;
5635 esac
5636 fi
5637 func_append deplibs " $arg"
5638 continue
5639 ;;
5640
5641 -module)
5642 module=yes
5643 continue
5644 ;;
5645
5646 # Tru64 UNIX uses -model [arg] to determine the layout of C++
5647 # classes, name mangling, and exception handling.
5648 # Darwin uses the -arch flag to determine output architecture.
5649 -model|-arch|-isysroot|--sysroot)
5650 func_append compiler_flags " $arg"
5651 func_append compile_command " $arg"
5652 func_append finalize_command " $arg"
5653 prev=xcompiler
5654 continue
5655 ;;
5656
5657 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
5658 |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
5659 func_append compiler_flags " $arg"
5660 func_append compile_command " $arg"
5661 func_append finalize_command " $arg"
5662 case "$new_inherited_linker_flags " in
5663 *" $arg "*) ;;
5664 * ) func_append new_inherited_linker_flags " $arg" ;;
5665 esac
5666 continue
5667 ;;
5668
5669 -multi_module)
5670 single_module="${wl}-multi_module"
5671 continue
5672 ;;
5673
5674 -no-fast-install)
5675 fast_install=no
5676 continue
5677 ;;
5678
5679 -no-install)
5680 case $host in
5681 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
5682 # The PATH hackery in wrapper scripts is required on Windows
5683 # and Darwin in order for the loader to find any dlls it needs.
5684 func_warning "\`-no-install' is ignored for $host"
5685 func_warning "assuming \`-no-fast-install' instead"
5686 fast_install=no
5687 ;;
5688 *) no_install=yes ;;
5689 esac
5690 continue
5691 ;;
5692
5693 -no-undefined)
5694 allow_undefined=no
5695 continue
5696 ;;
5697
5698 -objectlist)
5699 prev=objectlist
5700 continue
5701 ;;
5702
5703 -o) prev=output ;;
5704
5705 -precious-files-regex)
5706 prev=precious_regex
5707 continue
5708 ;;
5709
5710 -release)
5711 prev=release
5712 continue
5713 ;;
5714
5715 -rpath)
5716 prev=rpath
5717 continue
5718 ;;
5719
5720 -R)
5721 prev=xrpath
5722 continue
5723 ;;
5724
5725 -R*)
5726 func_stripname '-R' '' "$arg"
5727 dir=$func_stripname_result
5728 # We need an absolute path.
5729 case $dir in
5730 [\\/]* | [A-Za-z]:[\\/]*) ;;
5731 =*)
5732 func_stripname '=' '' "$dir"
5733 dir=$lt_sysroot$func_stripname_result
5734 ;;
5735 *)
5736 func_fatal_error "only absolute run-paths are allowed"
5737 ;;
5738 esac
5739 case "$xrpath " in
5740 *" $dir "*) ;;
5741 *) func_append xrpath " $dir" ;;
5742 esac
5743 continue
5744 ;;
5745
5746 -shared)
5747 # The effects of -shared are defined in a previous loop.
5748 continue
5749 ;;
5750
5751 -shrext)
5752 prev=shrext
5753 continue
5754 ;;
5755
5756 -static | -static-libtool-libs)
5757 # The effects of -static are defined in a previous loop.
5758 # We used to do the same as -all-static on platforms that
5759 # didn't have a PIC flag, but the assumption that the effects
5760 # would be equivalent was wrong. It would break on at least
5761 # Digital Unix and AIX.
5762 continue
5763 ;;
5764
5765 -thread-safe)
5766 thread_safe=yes
5767 continue
5768 ;;
5769
5770 -version-info)
5771 prev=vinfo
5772 continue
5773 ;;
5774
5775 -version-number)
5776 prev=vinfo
5777 vinfo_number=yes
5778 continue
5779 ;;
5780
5781 -weak)
5782 prev=weak
5783 continue
5784 ;;
5785
5786 -Wc,*)
5787 func_stripname '-Wc,' '' "$arg"
5788 args=$func_stripname_result
5789 arg=
5790 save_ifs="$IFS"; IFS=','
5791 for flag in $args; do
5792 IFS="$save_ifs"
5793 func_quote_for_eval "$flag"
5794 func_append arg " $func_quote_for_eval_result"
5795 func_append compiler_flags " $func_quote_for_eval_result"
5796 done
5797 IFS="$save_ifs"
5798 func_stripname ' ' '' "$arg"
5799 arg=$func_stripname_result
5800 ;;
5801
5802 -Wl,*)
5803 func_stripname '-Wl,' '' "$arg"
5804 args=$func_stripname_result
5805 arg=
5806 save_ifs="$IFS"; IFS=','
5807 for flag in $args; do
5808 IFS="$save_ifs"
5809 func_quote_for_eval "$flag"
5810 func_append arg " $wl$func_quote_for_eval_result"
5811 func_append compiler_flags " $wl$func_quote_for_eval_result"
5812 func_append linker_flags " $func_quote_for_eval_result"
5813 done
5814 IFS="$save_ifs"
5815 func_stripname ' ' '' "$arg"
5816 arg=$func_stripname_result
5817 ;;
5818
5819 -Xcompiler)
5820 prev=xcompiler
5821 continue
5822 ;;
5823
5824 -Xlinker)
5825 prev=xlinker
5826 continue
5827 ;;
5828
5829 -XCClinker)
5830 prev=xcclinker
5831 continue
5832 ;;
5833
5834 # -msg_* for osf cc
5835 -msg_*)
5836 func_quote_for_eval "$arg"
5837 arg="$func_quote_for_eval_result"
5838 ;;
5839
5840 # Flags to be passed through unchanged, with rationale:
5841 # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
5842 # -r[0-9][0-9]* specify processor for the SGI compiler
5843 # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
5844 # +DA*, +DD* enable 64-bit mode for the HP compiler
5845 # -q* compiler args for the IBM compiler
5846 # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
5847 # -F/path path to uninstalled frameworks, gcc on darwin
5848 # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
5849 # @file GCC response files
5850 # -tp=* Portland pgcc target processor selection
5851 # --sysroot=* for sysroot support
5852 # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
5853 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
5854 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
5855 -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
5856 func_quote_for_eval "$arg"
5857 arg="$func_quote_for_eval_result"
5858 func_append compile_command " $arg"
5859 func_append finalize_command " $arg"
5860 func_append compiler_flags " $arg"
5861 continue
5862 ;;
5863
5864 # Some other compiler flag.
5865 -* | +*)
5866 func_quote_for_eval "$arg"
5867 arg="$func_quote_for_eval_result"
5868 ;;
5869
5870 *.$objext)
5871 # A standard object.
5872 func_append objs " $arg"
5873 ;;
5874
5875 *.lo)
5876 # A libtool-controlled object.
5877
5878 # Check to see that this really is a libtool object.
5879 if func_lalib_unsafe_p "$arg"; then
5880 pic_object=
5881 non_pic_object=
5882
5883 # Read the .lo file
5884 func_source "$arg"
5885
5886 if test -z "$pic_object" ||
5887 test -z "$non_pic_object" ||
5888 test "$pic_object" = none &&
5889 test "$non_pic_object" = none; then
5890 func_fatal_error "cannot find name of object for \`$arg'"
5891 fi
5892
5893 # Extract subdirectory from the argument.
5894 func_dirname "$arg" "/" ""
5895 xdir="$func_dirname_result"
5896
5897 if test "$pic_object" != none; then
5898 # Prepend the subdirectory the object is found in.
5899 pic_object="$xdir$pic_object"
5900
5901 if test "$prev" = dlfiles; then
5902 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
5903 func_append dlfiles " $pic_object"
5904 prev=
5905 continue
5906 else
5907 # If libtool objects are unsupported, then we need to preload.
5908 prev=dlprefiles
5909 fi
5910 fi
5911
5912 # CHECK ME: I think I busted this. -Ossama
5913 if test "$prev" = dlprefiles; then
5914 # Preload the old-style object.
5915 func_append dlprefiles " $pic_object"
5916 prev=
5917 fi
5918
5919 # A PIC object.
5920 func_append libobjs " $pic_object"
5921 arg="$pic_object"
5922 fi
5923
5924 # Non-PIC object.
5925 if test "$non_pic_object" != none; then
5926 # Prepend the subdirectory the object is found in.
5927 non_pic_object="$xdir$non_pic_object"
5928
5929 # A standard non-PIC object
5930 func_append non_pic_objects " $non_pic_object"
5931 if test -z "$pic_object" || test "$pic_object" = none ; then
5932 arg="$non_pic_object"
5933 fi
5934 else
5935 # If the PIC object exists, use it instead.
5936 # $xdir was prepended to $pic_object above.
5937 non_pic_object="$pic_object"
5938 func_append non_pic_objects " $non_pic_object"
5939 fi
5940 else
5941 # Only an error if not doing a dry-run.
5942 if $opt_dry_run; then
5943 # Extract subdirectory from the argument.
5944 func_dirname "$arg" "/" ""
5945 xdir="$func_dirname_result"
5946
5947 func_lo2o "$arg"
5948 pic_object=$xdir$objdir/$func_lo2o_result
5949 non_pic_object=$xdir$func_lo2o_result
5950 func_append libobjs " $pic_object"
5951 func_append non_pic_objects " $non_pic_object"
5952 else
5953 func_fatal_error "\`$arg' is not a valid libtool object"
5954 fi
5955 fi
5956 ;;
5957
5958 *.$libext)
5959 # An archive.
5960 func_append deplibs " $arg"
5961 func_append old_deplibs " $arg"
5962 continue
5963 ;;
5964
5965 *.la)
5966 # A libtool-controlled library.
5967
5968 func_resolve_sysroot "$arg"
5969 if test "$prev" = dlfiles; then
5970 # This library was specified with -dlopen.
5971 func_append dlfiles " $func_resolve_sysroot_result"
5972 prev=
5973 elif test "$prev" = dlprefiles; then
5974 # The library was specified with -dlpreopen.
5975 func_append dlprefiles " $func_resolve_sysroot_result"
5976 prev=
5977 else
5978 func_append deplibs " $func_resolve_sysroot_result"
5979 fi
5980 continue
5981 ;;
5982
5983 # Some other compiler argument.
5984 *)
5985 # Unknown arguments in both finalize_command and compile_command need
5986 # to be aesthetically quoted because they are evaled later.
5987 func_quote_for_eval "$arg"
5988 arg="$func_quote_for_eval_result"
5989 ;;
5990 esac # arg
5991
5992 # Now actually substitute the argument into the commands.
5993 if test -n "$arg"; then
5994 func_append compile_command " $arg"
5995 func_append finalize_command " $arg"
5996 fi
5997 done # argument parsing loop
5998
5999 test -n "$prev" && \
6000 func_fatal_help "the \`$prevarg' option requires an argument"
6001
6002 if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
6003 eval arg=\"$export_dynamic_flag_spec\"
6004 func_append compile_command " $arg"
6005 func_append finalize_command " $arg"
6006 fi
6007
6008 oldlibs=
6009 # calculate the name of the file, without its directory
6010 func_basename "$output"
6011 outputname="$func_basename_result"
6012 libobjs_save="$libobjs"
6013
6014 if test -n "$shlibpath_var"; then
6015 # get the directories listed in $shlibpath_var
6016 eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
6017 else
6018 shlib_search_path=
6019 fi
6020 eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
6021 eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
6022
6023 func_dirname "$output" "/" ""
6024 output_objdir="$func_dirname_result$objdir"
6025 func_to_tool_file "$output_objdir/"
6026 tool_output_objdir=$func_to_tool_file_result
6027 # Create the object directory.
6028 func_mkdir_p "$output_objdir"
6029
6030 # Determine the type of output
6031 case $output in
6032 "")
6033 func_fatal_help "you must specify an output file"
6034 ;;
6035 *.$libext) linkmode=oldlib ;;
6036 *.lo | *.$objext) linkmode=obj ;;
6037 *.la) linkmode=lib ;;
6038 *) linkmode=prog ;; # Anything else should be a program.
6039 esac
6040
6041 specialdeplibs=
6042
6043 libs=
6044 # Find all interdependent deplibs by searching for libraries
6045 # that are linked more than once (e.g. -la -lb -la)
6046 for deplib in $deplibs; do
6047 if $opt_preserve_dup_deps ; then
6048 case "$libs " in
6049 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
6050 esac
6051 fi
6052 func_append libs " $deplib"
6053 done
6054
6055 if test "$linkmode" = lib; then
6056 libs="$predeps $libs $compiler_lib_search_path $postdeps"
6057
6058 # Compute libraries that are listed more than once in $predeps
6059 # $postdeps and mark them as special (i.e., whose duplicates are
6060 # not to be eliminated).
6061 pre_post_deps=
6062 if $opt_duplicate_compiler_generated_deps; then
6063 for pre_post_dep in $predeps $postdeps; do
6064 case "$pre_post_deps " in
6065 *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
6066 esac
6067 func_append pre_post_deps " $pre_post_dep"
6068 done
6069 fi
6070 pre_post_deps=
6071 fi
6072
6073 deplibs=
6074 newdependency_libs=
6075 newlib_search_path=
6076 need_relink=no # whether we're linking any uninstalled libtool libraries
6077 notinst_deplibs= # not-installed libtool libraries
6078 notinst_path= # paths that contain not-installed libtool libraries
6079
6080 case $linkmode in
6081 lib)
6082 passes="conv dlpreopen link"
6083 for file in $dlfiles $dlprefiles; do
6084 case $file in
6085 *.la) ;;
6086 *)
6087 func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
6088 ;;
6089 esac
6090 done
6091 ;;
6092 prog)
6093 compile_deplibs=
6094 finalize_deplibs=
6095 alldeplibs=no
6096 newdlfiles=
6097 newdlprefiles=
6098 passes="conv scan dlopen dlpreopen link"
6099 ;;
6100 *) passes="conv"
6101 ;;
6102 esac
6103
6104 for pass in $passes; do
6105 # The preopen pass in lib mode reverses $deplibs; put it back here
6106 # so that -L comes before libs that need it for instance...
6107 if test "$linkmode,$pass" = "lib,link"; then
6108 ## FIXME: Find the place where the list is rebuilt in the wrong
6109 ## order, and fix it there properly
6110 tmp_deplibs=
6111 for deplib in $deplibs; do
6112 tmp_deplibs="$deplib $tmp_deplibs"
6113 done
6114 deplibs="$tmp_deplibs"
6115 fi
6116
6117 if test "$linkmode,$pass" = "lib,link" ||
6118 test "$linkmode,$pass" = "prog,scan"; then
6119 libs="$deplibs"
6120 deplibs=
6121 fi
6122 if test "$linkmode" = prog; then
6123 case $pass in
6124 dlopen) libs="$dlfiles" ;;
6125 dlpreopen) libs="$dlprefiles" ;;
6126 link)
6127 libs="$deplibs %DEPLIBS%"
6128 test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
6129 ;;
6130 esac
6131 fi
6132 if test "$linkmode,$pass" = "lib,dlpreopen"; then
6133 # Collect and forward deplibs of preopened libtool libs
6134 for lib in $dlprefiles; do
6135 # Ignore non-libtool-libs
6136 dependency_libs=
6137 func_resolve_sysroot "$lib"
6138 case $lib in
6139 *.la) func_source "$func_resolve_sysroot_result" ;;
6140 esac
6141
6142 # Collect preopened libtool deplibs, except any this library
6143 # has declared as weak libs
6144 for deplib in $dependency_libs; do
6145 func_basename "$deplib"
6146 deplib_base=$func_basename_result
6147 case " $weak_libs " in
6148 *" $deplib_base "*) ;;
6149 *) func_append deplibs " $deplib" ;;
6150 esac
6151 done
6152 done
6153 libs="$dlprefiles"
6154 fi
6155 if test "$pass" = dlopen; then
6156 # Collect dlpreopened libraries
6157 save_deplibs="$deplibs"
6158 deplibs=
6159 fi
6160
6161 for deplib in $libs; do
6162 lib=
6163 found=no
6164 case $deplib in
6165 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
6166 |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
6167 if test "$linkmode,$pass" = "prog,link"; then
6168 compile_deplibs="$deplib $compile_deplibs"
6169 finalize_deplibs="$deplib $finalize_deplibs"
6170 else
6171 func_append compiler_flags " $deplib"
6172 if test "$linkmode" = lib ; then
6173 case "$new_inherited_linker_flags " in
6174 *" $deplib "*) ;;
6175 * ) func_append new_inherited_linker_flags " $deplib" ;;
6176 esac
6177 fi
6178 fi
6179 continue
6180 ;;
6181 -l*)
6182 if test "$linkmode" != lib && test "$linkmode" != prog; then
6183 func_warning "\`-l' is ignored for archives/objects"
6184 continue
6185 fi
6186 func_stripname '-l' '' "$deplib"
6187 name=$func_stripname_result
6188 if test "$linkmode" = lib; then
6189 searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
6190 else
6191 searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
6192 fi
6193 for searchdir in $searchdirs; do
6194 for search_ext in .la $std_shrext .so .a; do
6195 # Search the libtool library
6196 lib="$searchdir/lib${name}${search_ext}"
6197 if test -f "$lib"; then
6198 if test "$search_ext" = ".la"; then
6199 found=yes
6200 else
6201 found=no
6202 fi
6203 break 2
6204 fi
6205 done
6206 done
6207 if test "$found" != yes; then
6208 # deplib doesn't seem to be a libtool library
6209 if test "$linkmode,$pass" = "prog,link"; then
6210 compile_deplibs="$deplib $compile_deplibs"
6211 finalize_deplibs="$deplib $finalize_deplibs"
6212 else
6213 deplibs="$deplib $deplibs"
6214 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
6215 fi
6216 continue
6217 else # deplib is a libtool library
6218 # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
6219 # We need to do some special things here, and not later.
6220 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
6221 case " $predeps $postdeps " in
6222 *" $deplib "*)
6223 if func_lalib_p "$lib"; then
6224 library_names=
6225 old_library=
6226 func_source "$lib"
6227 for l in $old_library $library_names; do
6228 ll="$l"
6229 done
6230 if test "X$ll" = "X$old_library" ; then # only static version available
6231 found=no
6232 func_dirname "$lib" "" "."
6233 ladir="$func_dirname_result"
6234 lib=$ladir/$old_library
6235 if test "$linkmode,$pass" = "prog,link"; then
6236 compile_deplibs="$deplib $compile_deplibs"
6237 finalize_deplibs="$deplib $finalize_deplibs"
6238 else
6239 deplibs="$deplib $deplibs"
6240 test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
6241 fi
6242 continue
6243 fi
6244 fi
6245 ;;
6246 *) ;;
6247 esac
6248 fi
6249 fi
6250 ;; # -l
6251 *.ltframework)
6252 if test "$linkmode,$pass" = "prog,link"; then
6253 compile_deplibs="$deplib $compile_deplibs"
6254 finalize_deplibs="$deplib $finalize_deplibs"
6255 else
6256 deplibs="$deplib $deplibs"
6257 if test "$linkmode" = lib ; then
6258 case "$new_inherited_linker_flags " in
6259 *" $deplib "*) ;;
6260 * ) func_append new_inherited_linker_flags " $deplib" ;;
6261 esac
6262 fi
6263 fi
6264 continue
6265 ;;
6266 -L*)
6267 case $linkmode in
6268 lib)
6269 deplibs="$deplib $deplibs"
6270 test "$pass" = conv && continue
6271 newdependency_libs="$deplib $newdependency_libs"
6272 func_stripname '-L' '' "$deplib"
6273 func_resolve_sysroot "$func_stripname_result"
6274 func_append newlib_search_path " $func_resolve_sysroot_result"
6275 ;;
6276 prog)
6277 if test "$pass" = conv; then
6278 deplibs="$deplib $deplibs"
6279 continue
6280 fi
6281 if test "$pass" = scan; then
6282 deplibs="$deplib $deplibs"
6283 else
6284 compile_deplibs="$deplib $compile_deplibs"
6285 finalize_deplibs="$deplib $finalize_deplibs"
6286 fi
6287 func_stripname '-L' '' "$deplib"
6288 func_resolve_sysroot "$func_stripname_result"
6289 func_append newlib_search_path " $func_resolve_sysroot_result"
6290 ;;
6291 *)
6292 func_warning "\`-L' is ignored for archives/objects"
6293 ;;
6294 esac # linkmode
6295 continue
6296 ;; # -L
6297 -R*)
6298 if test "$pass" = link; then
6299 func_stripname '-R' '' "$deplib"
6300 func_resolve_sysroot "$func_stripname_result"
6301 dir=$func_resolve_sysroot_result
6302 # Make sure the xrpath contains only unique directories.
6303 case "$xrpath " in
6304 *" $dir "*) ;;
6305 *) func_append xrpath " $dir" ;;
6306 esac
6307 fi
6308 deplibs="$deplib $deplibs"
6309 continue
6310 ;;
6311 *.la)
6312 func_resolve_sysroot "$deplib"
6313 lib=$func_resolve_sysroot_result
6314 ;;
6315 *.$libext)
6316 if test "$pass" = conv; then
6317 deplibs="$deplib $deplibs"
6318 continue
6319 fi
6320 case $linkmode in
6321 lib)
6322 # Linking convenience modules into shared libraries is allowed,
6323 # but linking other static libraries is non-portable.
6324 case " $dlpreconveniencelibs " in
6325 *" $deplib "*) ;;
6326 *)
6327 valid_a_lib=no
6328 case $deplibs_check_method in
6329 match_pattern*)
6330 set dummy $deplibs_check_method; shift
6331 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
6332 if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
6333 | $EGREP "$match_pattern_regex" > /dev/null; then
6334 valid_a_lib=yes
6335 fi
6336 ;;
6337 pass_all)
6338 valid_a_lib=yes
6339 ;;
6340 esac
6341 if test "$valid_a_lib" != yes; then
6342 echo
6343 $ECHO "*** Warning: Trying to link with static lib archive $deplib."
6344 echo "*** I have the capability to make that library automatically link in when"
6345 echo "*** you link to this library. But I can only do this if you have a"
6346 echo "*** shared version of the library, which you do not appear to have"
6347 echo "*** because the file extensions .$libext of this argument makes me believe"
6348 echo "*** that it is just a static archive that I should not use here."
6349 else
6350 echo
6351 $ECHO "*** Warning: Linking the shared library $output against the"
6352 $ECHO "*** static library $deplib is not portable!"
6353 deplibs="$deplib $deplibs"
6354 fi
6355 ;;
6356 esac
6357 continue
6358 ;;
6359 prog)
6360 if test "$pass" != link; then
6361 deplibs="$deplib $deplibs"
6362 else
6363 compile_deplibs="$deplib $compile_deplibs"
6364 finalize_deplibs="$deplib $finalize_deplibs"
6365 fi
6366 continue
6367 ;;
6368 esac # linkmode
6369 ;; # *.$libext
6370 *.lo | *.$objext)
6371 if test "$pass" = conv; then
6372 deplibs="$deplib $deplibs"
6373 elif test "$linkmode" = prog; then
6374 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
6375 # If there is no dlopen support or we're linking statically,
6376 # we need to preload.
6377 func_append newdlprefiles " $deplib"
6378 compile_deplibs="$deplib $compile_deplibs"
6379 finalize_deplibs="$deplib $finalize_deplibs"
6380 else
6381 func_append newdlfiles " $deplib"
6382 fi
6383 fi
6384 continue
6385 ;;
6386 %DEPLIBS%)
6387 alldeplibs=yes
6388 continue
6389 ;;
6390 esac # case $deplib
6391
6392 if test "$found" = yes || test -f "$lib"; then :
6393 else
6394 func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
6395 fi
6396
6397 # Check to see that this really is a libtool archive.
6398 func_lalib_unsafe_p "$lib" \
6399 || func_fatal_error "\`$lib' is not a valid libtool archive"
6400
6401 func_dirname "$lib" "" "."
6402 ladir="$func_dirname_result"
6403
6404 dlname=
6405 dlopen=
6406 dlpreopen=
6407 libdir=
6408 library_names=
6409 old_library=
6410 inherited_linker_flags=
6411 # If the library was installed with an old release of libtool,
6412 # it will not redefine variables installed, or shouldnotlink
6413 installed=yes
6414 shouldnotlink=no
6415 avoidtemprpath=
6416
6417
6418 # Read the .la file
6419 func_source "$lib"
6420
6421 # Convert "-framework foo" to "foo.ltframework"
6422 if test -n "$inherited_linker_flags"; then
6423 tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
6424 for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
6425 case " $new_inherited_linker_flags " in
6426 *" $tmp_inherited_linker_flag "*) ;;
6427 *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
6428 esac
6429 done
6430 fi
6431 dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
6432 if test "$linkmode,$pass" = "lib,link" ||
6433 test "$linkmode,$pass" = "prog,scan" ||
6434 { test "$linkmode" != prog && test "$linkmode" != lib; }; then
6435 test -n "$dlopen" && func_append dlfiles " $dlopen"
6436 test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
6437 fi
6438
6439 if test "$pass" = conv; then
6440 # Only check for convenience libraries
6441 deplibs="$lib $deplibs"
6442 if test -z "$libdir"; then
6443 if test -z "$old_library"; then
6444 func_fatal_error "cannot find name of link library for \`$lib'"
6445 fi
6446 # It is a libtool convenience library, so add in its objects.
6447 func_append convenience " $ladir/$objdir/$old_library"
6448 func_append old_convenience " $ladir/$objdir/$old_library"
6449 tmp_libs=
6450 for deplib in $dependency_libs; do
6451 deplibs="$deplib $deplibs"
6452 if $opt_preserve_dup_deps ; then
6453 case "$tmp_libs " in
6454 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
6455 esac
6456 fi
6457 func_append tmp_libs " $deplib"
6458 done
6459 elif test "$linkmode" != prog && test "$linkmode" != lib; then
6460 func_fatal_error "\`$lib' is not a convenience library"
6461 fi
6462 continue
6463 fi # $pass = conv
6464
6465
6466 # Get the name of the library we link against.
6467 linklib=
6468 if test -n "$old_library" &&
6469 { test "$prefer_static_libs" = yes ||
6470 test "$prefer_static_libs,$installed" = "built,no"; }; then
6471 linklib=$old_library
6472 else
6473 for l in $old_library $library_names; do
6474 linklib="$l"
6475 done
6476 fi
6477 if test -z "$linklib"; then
6478 func_fatal_error "cannot find name of link library for \`$lib'"
6479 fi
6480
6481 # This library was specified with -dlopen.
6482 if test "$pass" = dlopen; then
6483 if test -z "$libdir"; then
6484 func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
6485 fi
6486 if test -z "$dlname" ||
6487 test "$dlopen_support" != yes ||
6488 test "$build_libtool_libs" = no; then
6489 # If there is no dlname, no dlopen support or we're linking
6490 # statically, we need to preload. We also need to preload any
6491 # dependent libraries so libltdl's deplib preloader doesn't
6492 # bomb out in the load deplibs phase.
6493 func_append dlprefiles " $lib $dependency_libs"
6494 else
6495 func_append newdlfiles " $lib"
6496 fi
6497 continue
6498 fi # $pass = dlopen
6499
6500 # We need an absolute path.
6501 case $ladir in
6502 [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
6503 *)
6504 abs_ladir=`cd "$ladir" && pwd`
6505 if test -z "$abs_ladir"; then
6506 func_warning "cannot determine absolute directory name of \`$ladir'"
6507 func_warning "passing it literally to the linker, although it might fail"
6508 abs_ladir="$ladir"
6509 fi
6510 ;;
6511 esac
6512 func_basename "$lib"
6513 laname="$func_basename_result"
6514
6515 # Find the relevant object directory and library name.
6516 if test "X$installed" = Xyes; then
6517 if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
6518 func_warning "library \`$lib' was moved."
6519 dir="$ladir"
6520 absdir="$abs_ladir"
6521 libdir="$abs_ladir"
6522 else
6523 dir="$lt_sysroot$libdir"
6524 absdir="$lt_sysroot$libdir"
6525 fi
6526 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
6527 else
6528 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
6529 dir="$ladir"
6530 absdir="$abs_ladir"
6531 # Remove this search path later
6532 func_append notinst_path " $abs_ladir"
6533 else
6534 dir="$ladir/$objdir"
6535 absdir="$abs_ladir/$objdir"
6536 # Remove this search path later
6537 func_append notinst_path " $abs_ladir"
6538 fi
6539 fi # $installed = yes
6540 func_stripname 'lib' '.la' "$laname"
6541 name=$func_stripname_result
6542
6543 # This library was specified with -dlpreopen.
6544 if test "$pass" = dlpreopen; then
6545 if test -z "$libdir" && test "$linkmode" = prog; then
6546 func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
6547 fi
6548 case "$host" in
6549 # special handling for platforms with PE-DLLs.
6550 *cygwin* | *mingw* | *cegcc* )
6551 # Linker will automatically link against shared library if both
6552 # static and shared are present. Therefore, ensure we extract
6553 # symbols from the import library if a shared library is present
6554 # (otherwise, the dlopen module name will be incorrect). We do
6555 # this by putting the import library name into $newdlprefiles.
6556 # We recover the dlopen module name by 'saving' the la file
6557 # name in a special purpose variable, and (later) extracting the
6558 # dlname from the la file.
6559 if test -n "$dlname"; then
6560 func_tr_sh "$dir/$linklib"
6561 eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
6562 func_append newdlprefiles " $dir/$linklib"
6563 else
6564 func_append newdlprefiles " $dir/$old_library"
6565 # Keep a list of preopened convenience libraries to check
6566 # that they are being used correctly in the link pass.
6567 test -z "$libdir" && \
6568 func_append dlpreconveniencelibs " $dir/$old_library"
6569 fi
6570 ;;
6571 * )
6572 # Prefer using a static library (so that no silly _DYNAMIC symbols
6573 # are required to link).
6574 if test -n "$old_library"; then
6575 func_append newdlprefiles " $dir/$old_library"
6576 # Keep a list of preopened convenience libraries to check
6577 # that they are being used correctly in the link pass.
6578 test -z "$libdir" && \
6579 func_append dlpreconveniencelibs " $dir/$old_library"
6580 # Otherwise, use the dlname, so that lt_dlopen finds it.
6581 elif test -n "$dlname"; then
6582 func_append newdlprefiles " $dir/$dlname"
6583 else
6584 func_append newdlprefiles " $dir/$linklib"
6585 fi
6586 ;;
6587 esac
6588 fi # $pass = dlpreopen
6589
6590 if test -z "$libdir"; then
6591 # Link the convenience library
6592 if test "$linkmode" = lib; then
6593 deplibs="$dir/$old_library $deplibs"
6594 elif test "$linkmode,$pass" = "prog,link"; then
6595 compile_deplibs="$dir/$old_library $compile_deplibs"
6596 finalize_deplibs="$dir/$old_library $finalize_deplibs"
6597 else
6598 deplibs="$lib $deplibs" # used for prog,scan pass
6599 fi
6600 continue
6601 fi
6602
6603
6604 if test "$linkmode" = prog && test "$pass" != link; then
6605 func_append newlib_search_path " $ladir"
6606 deplibs="$lib $deplibs"
6607
6608 linkalldeplibs=no
6609 if test "$link_all_deplibs" != no || test -z "$library_names" ||
6610 test "$build_libtool_libs" = no; then
6611 linkalldeplibs=yes
6612 fi
6613
6614 tmp_libs=
6615 for deplib in $dependency_libs; do
6616 case $deplib in
6617 -L*) func_stripname '-L' '' "$deplib"
6618 func_resolve_sysroot "$func_stripname_result"
6619 func_append newlib_search_path " $func_resolve_sysroot_result"
6620 ;;
6621 esac
6622 # Need to link against all dependency_libs?
6623 if test "$linkalldeplibs" = yes; then
6624 deplibs="$deplib $deplibs"
6625 else
6626 # Need to hardcode shared library paths
6627 # or/and link against static libraries
6628 newdependency_libs="$deplib $newdependency_libs"
6629 fi
6630 if $opt_preserve_dup_deps ; then
6631 case "$tmp_libs " in
6632 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
6633 esac
6634 fi
6635 func_append tmp_libs " $deplib"
6636 done # for deplib
6637 continue
6638 fi # $linkmode = prog...
6639
6640 if test "$linkmode,$pass" = "prog,link"; then
6641 if test -n "$library_names" &&
6642 { { test "$prefer_static_libs" = no ||
6643 test "$prefer_static_libs,$installed" = "built,yes"; } ||
6644 test -z "$old_library"; }; then
6645 # We need to hardcode the library path
6646 if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
6647 # Make sure the rpath contains only unique directories.
6648 case "$temp_rpath:" in
6649 *"$absdir:"*) ;;
6650 *) func_append temp_rpath "$absdir:" ;;
6651 esac
6652 fi
6653
6654 # Hardcode the library path.
6655 # Skip directories that are in the system default run-time
6656 # search path.
6657 case " $sys_lib_dlsearch_path " in
6658 *" $absdir "*) ;;
6659 *)
6660 case "$compile_rpath " in
6661 *" $absdir "*) ;;
6662 *) func_append compile_rpath " $absdir" ;;
6663 esac
6664 ;;
6665 esac
6666 case " $sys_lib_dlsearch_path " in
6667 *" $libdir "*) ;;
6668 *)
6669 case "$finalize_rpath " in
6670 *" $libdir "*) ;;
6671 *) func_append finalize_rpath " $libdir" ;;
6672 esac
6673 ;;
6674 esac
6675 fi # $linkmode,$pass = prog,link...
6676
6677 if test "$alldeplibs" = yes &&
6678 { test "$deplibs_check_method" = pass_all ||
6679 { test "$build_libtool_libs" = yes &&
6680 test -n "$library_names"; }; }; then
6681 # We only need to search for static libraries
6682 continue
6683 fi
6684 fi
6685
6686 link_static=no # Whether the deplib will be linked statically
6687 use_static_libs=$prefer_static_libs
6688 if test "$use_static_libs" = built && test "$installed" = yes; then
6689 use_static_libs=no
6690 fi
6691 if test -n "$library_names" &&
6692 { test "$use_static_libs" = no || test -z "$old_library"; }; then
6693 case $host in
6694 *cygwin* | *mingw* | *cegcc*)
6695 # No point in relinking DLLs because paths are not encoded
6696 func_append notinst_deplibs " $lib"
6697 need_relink=no
6698 ;;
6699 *)
6700 if test "$installed" = no; then
6701 func_append notinst_deplibs " $lib"
6702 need_relink=yes
6703 fi
6704 ;;
6705 esac
6706 # This is a shared library
6707
6708 # Warn about portability, can't link against -module's on some
6709 # systems (darwin). Don't bleat about dlopened modules though!
6710 dlopenmodule=""
6711 for dlpremoduletest in $dlprefiles; do
6712 if test "X$dlpremoduletest" = "X$lib"; then
6713 dlopenmodule="$dlpremoduletest"
6714 break
6715 fi
6716 done
6717 if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
6718 echo
6719 if test "$linkmode" = prog; then
6720 $ECHO "*** Warning: Linking the executable $output against the loadable module"
6721 else
6722 $ECHO "*** Warning: Linking the shared library $output against the loadable module"
6723 fi
6724 $ECHO "*** $linklib is not portable!"
6725 fi
6726 if test "$linkmode" = lib &&
6727 test "$hardcode_into_libs" = yes; then
6728 # Hardcode the library path.
6729 # Skip directories that are in the system default run-time
6730 # search path.
6731 case " $sys_lib_dlsearch_path " in
6732 *" $absdir "*) ;;
6733 *)
6734 case "$compile_rpath " in
6735 *" $absdir "*) ;;
6736 *) func_append compile_rpath " $absdir" ;;
6737 esac
6738 ;;
6739 esac
6740 case " $sys_lib_dlsearch_path " in
6741 *" $libdir "*) ;;
6742 *)
6743 case "$finalize_rpath " in
6744 *" $libdir "*) ;;
6745 *) func_append finalize_rpath " $libdir" ;;
6746 esac
6747 ;;
6748 esac
6749 fi
6750
6751 if test -n "$old_archive_from_expsyms_cmds"; then
6752 # figure out the soname
6753 set dummy $library_names
6754 shift
6755 realname="$1"
6756 shift
6757 libname=`eval "\\$ECHO \"$libname_spec\""`
6758 # use dlname if we got it. it's perfectly good, no?
6759 if test -n "$dlname"; then
6760 soname="$dlname"
6761 elif test -n "$soname_spec"; then
6762 # bleh windows
6763 case $host in
6764 *cygwin* | mingw* | *cegcc*)
6765 func_arith $current - $age
6766 major=$func_arith_result
6767 versuffix="-$major"
6768 ;;
6769 esac
6770 eval soname=\"$soname_spec\"
6771 else
6772 soname="$realname"
6773 fi
6774
6775 # Make a new name for the extract_expsyms_cmds to use
6776 soroot="$soname"
6777 func_basename "$soroot"
6778 soname="$func_basename_result"
6779 func_stripname 'lib' '.dll' "$soname"
6780 newlib=libimp-$func_stripname_result.a
6781
6782 # If the library has no export list, then create one now
6783 if test -f "$output_objdir/$soname-def"; then :
6784 else
6785 func_verbose "extracting exported symbol list from \`$soname'"
6786 func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
6787 fi
6788
6789 # Create $newlib
6790 if test -f "$output_objdir/$newlib"; then :; else
6791 func_verbose "generating import library for \`$soname'"
6792 func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
6793 fi
6794 # make sure the library variables are pointing to the new library
6795 dir=$output_objdir
6796 linklib=$newlib
6797 fi # test -n "$old_archive_from_expsyms_cmds"
6798
6799 if test "$linkmode" = prog || test "$opt_mode" != relink; then
6800 add_shlibpath=
6801 add_dir=
6802 add=
6803 lib_linked=yes
6804 case $hardcode_action in
6805 immediate | unsupported)
6806 if test "$hardcode_direct" = no; then
6807 add="$dir/$linklib"
6808 case $host in
6809 *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
6810 *-*-sysv4*uw2*) add_dir="-L$dir" ;;
6811 *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
6812 *-*-unixware7*) add_dir="-L$dir" ;;
6813 *-*-darwin* )
6814 # if the lib is a (non-dlopened) module then we can not
6815 # link against it, someone is ignoring the earlier warnings
6816 if /usr/bin/file -L $add 2> /dev/null |
6817 $GREP ": [^:]* bundle" >/dev/null ; then
6818 if test "X$dlopenmodule" != "X$lib"; then
6819 $ECHO "*** Warning: lib $linklib is a module, not a shared library"
6820 if test -z "$old_library" ; then
6821 echo
6822 echo "*** And there doesn't seem to be a static archive available"
6823 echo "*** The link will probably fail, sorry"
6824 else
6825 add="$dir/$old_library"
6826 fi
6827 elif test -n "$old_library"; then
6828 add="$dir/$old_library"
6829 fi
6830 fi
6831 esac
6832 elif test "$hardcode_minus_L" = no; then
6833 case $host in
6834 *-*-sunos*) add_shlibpath="$dir" ;;
6835 esac
6836 add_dir="-L$dir"
6837 add="-l$name"
6838 elif test "$hardcode_shlibpath_var" = no; then
6839 add_shlibpath="$dir"
6840 add="-l$name"
6841 else
6842 lib_linked=no
6843 fi
6844 ;;
6845 relink)
6846 if test "$hardcode_direct" = yes &&
6847 test "$hardcode_direct_absolute" = no; then
6848 add="$dir/$linklib"
6849 elif test "$hardcode_minus_L" = yes; then
6850 add_dir="-L$absdir"
6851 # Try looking first in the location we're being installed to.
6852 if test -n "$inst_prefix_dir"; then
6853 case $libdir in
6854 [\\/]*)
6855 func_append add_dir " -L$inst_prefix_dir$libdir"
6856 ;;
6857 esac
6858 fi
6859 add="-l$name"
6860 elif test "$hardcode_shlibpath_var" = yes; then
6861 add_shlibpath="$dir"
6862 add="-l$name"
6863 else
6864 lib_linked=no
6865 fi
6866 ;;
6867 *) lib_linked=no ;;
6868 esac
6869
6870 if test "$lib_linked" != yes; then
6871 func_fatal_configuration "unsupported hardcode properties"
6872 fi
6873
6874 if test -n "$add_shlibpath"; then
6875 case :$compile_shlibpath: in
6876 *":$add_shlibpath:"*) ;;
6877 *) func_append compile_shlibpath "$add_shlibpath:" ;;
6878 esac
6879 fi
6880 if test "$linkmode" = prog; then
6881 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
6882 test -n "$add" && compile_deplibs="$add $compile_deplibs"
6883 else
6884 test -n "$add_dir" && deplibs="$add_dir $deplibs"
6885 test -n "$add" && deplibs="$add $deplibs"
6886 if test "$hardcode_direct" != yes &&
6887 test "$hardcode_minus_L" != yes &&
6888 test "$hardcode_shlibpath_var" = yes; then
6889 case :$finalize_shlibpath: in
6890 *":$libdir:"*) ;;
6891 *) func_append finalize_shlibpath "$libdir:" ;;
6892 esac
6893 fi
6894 fi
6895 fi
6896
6897 if test "$linkmode" = prog || test "$opt_mode" = relink; then
6898 add_shlibpath=
6899 add_dir=
6900 add=
6901 # Finalize command for both is simple: just hardcode it.
6902 if test "$hardcode_direct" = yes &&
6903 test "$hardcode_direct_absolute" = no; then
6904 add="$libdir/$linklib"
6905 elif test "$hardcode_minus_L" = yes; then
6906 add_dir="-L$libdir"
6907 add="-l$name"
6908 elif test "$hardcode_shlibpath_var" = yes; then
6909 case :$finalize_shlibpath: in
6910 *":$libdir:"*) ;;
6911 *) func_append finalize_shlibpath "$libdir:" ;;
6912 esac
6913 add="-l$name"
6914 elif test "$hardcode_automatic" = yes; then
6915 if test -n "$inst_prefix_dir" &&
6916 test -f "$inst_prefix_dir$libdir/$linklib" ; then
6917 add="$inst_prefix_dir$libdir/$linklib"
6918 else
6919 add="$libdir/$linklib"
6920 fi
6921 else
6922 # We cannot seem to hardcode it, guess we'll fake it.
6923 add_dir="-L$libdir"
6924 # Try looking first in the location we're being installed to.
6925 if test -n "$inst_prefix_dir"; then
6926 case $libdir in
6927 [\\/]*)
6928 func_append add_dir " -L$inst_prefix_dir$libdir"
6929 ;;
6930 esac
6931 fi
6932 add="-l$name"
6933 fi
6934
6935 if test "$linkmode" = prog; then
6936 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
6937 test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
6938 else
6939 test -n "$add_dir" && deplibs="$add_dir $deplibs"
6940 test -n "$add" && deplibs="$add $deplibs"
6941 fi
6942 fi
6943 elif test "$linkmode" = prog; then
6944 # Here we assume that one of hardcode_direct or hardcode_minus_L
6945 # is not unsupported. This is valid on all known static and
6946 # shared platforms.
6947 if test "$hardcode_direct" != unsupported; then
6948 test -n "$old_library" && linklib="$old_library"
6949 compile_deplibs="$dir/$linklib $compile_deplibs"
6950 finalize_deplibs="$dir/$linklib $finalize_deplibs"
6951 else
6952 compile_deplibs="-l$name -L$dir $compile_deplibs"
6953 finalize_deplibs="-l$name -L$dir $finalize_deplibs"
6954 fi
6955 elif test "$build_libtool_libs" = yes; then
6956 # Not a shared library
6957 if test "$deplibs_check_method" != pass_all; then
6958 # We're trying link a shared library against a static one
6959 # but the system doesn't support it.
6960
6961 # Just print a warning and add the library to dependency_libs so
6962 # that the program can be linked against the static library.
6963 echo
6964 $ECHO "*** Warning: This system can not link to static lib archive $lib."
6965 echo "*** I have the capability to make that library automatically link in when"
6966 echo "*** you link to this library. But I can only do this if you have a"
6967 echo "*** shared version of the library, which you do not appear to have."
6968 if test "$module" = yes; then
6969 echo "*** But as you try to build a module library, libtool will still create "
6970 echo "*** a static module, that should work as long as the dlopening application"
6971 echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
6972 if test -z "$global_symbol_pipe"; then
6973 echo
6974 echo "*** However, this would only work if libtool was able to extract symbol"
6975 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
6976 echo "*** not find such a program. So, this module is probably useless."
6977 echo "*** \`nm' from GNU binutils and a full rebuild may help."
6978 fi
6979 if test "$build_old_libs" = no; then
6980 build_libtool_libs=module
6981 build_old_libs=yes
6982 else
6983 build_libtool_libs=no
6984 fi
6985 fi
6986 else
6987 deplibs="$dir/$old_library $deplibs"
6988 link_static=yes
6989 fi
6990 fi # link shared/static library?
6991
6992 if test "$linkmode" = lib; then
6993 if test -n "$dependency_libs" &&
6994 { test "$hardcode_into_libs" != yes ||
6995 test "$build_old_libs" = yes ||
6996 test "$link_static" = yes; }; then
6997 # Extract -R from dependency_libs
6998 temp_deplibs=
6999 for libdir in $dependency_libs; do
7000 case $libdir in
7001 -R*) func_stripname '-R' '' "$libdir"
7002 temp_xrpath=$func_stripname_result
7003 case " $xrpath " in
7004 *" $temp_xrpath "*) ;;
7005 *) func_append xrpath " $temp_xrpath";;
7006 esac;;
7007 *) func_append temp_deplibs " $libdir";;
7008 esac
7009 done
7010 dependency_libs="$temp_deplibs"
7011 fi
7012
7013 func_append newlib_search_path " $absdir"
7014 # Link against this library
7015 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
7016 # ... and its dependency_libs
7017 tmp_libs=
7018 for deplib in $dependency_libs; do
7019 newdependency_libs="$deplib $newdependency_libs"
7020 case $deplib in
7021 -L*) func_stripname '-L' '' "$deplib"
7022 func_resolve_sysroot "$func_stripname_result";;
7023 *) func_resolve_sysroot "$deplib" ;;
7024 esac
7025 if $opt_preserve_dup_deps ; then
7026 case "$tmp_libs " in
7027 *" $func_resolve_sysroot_result "*)
7028 func_append specialdeplibs " $func_resolve_sysroot_result" ;;
7029 esac
7030 fi
7031 func_append tmp_libs " $func_resolve_sysroot_result"
7032 done
7033
7034 if test "$link_all_deplibs" != no; then
7035 # Add the search paths of all dependency libraries
7036 for deplib in $dependency_libs; do
7037 path=
7038 case $deplib in
7039 -L*) path="$deplib" ;;
7040 *.la)
7041 func_resolve_sysroot "$deplib"
7042 deplib=$func_resolve_sysroot_result
7043 func_dirname "$deplib" "" "."
7044 dir=$func_dirname_result
7045 # We need an absolute path.
7046 case $dir in
7047 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
7048 *)
7049 absdir=`cd "$dir" && pwd`
7050 if test -z "$absdir"; then
7051 func_warning "cannot determine absolute directory name of \`$dir'"
7052 absdir="$dir"
7053 fi
7054 ;;
7055 esac
7056 if $GREP "^installed=no" $deplib > /dev/null; then
7057 case $host in
7058 *-*-darwin*)
7059 depdepl=
7060 eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
7061 if test -n "$deplibrary_names" ; then
7062 for tmp in $deplibrary_names ; do
7063 depdepl=$tmp
7064 done
7065 if test -f "$absdir/$objdir/$depdepl" ; then
7066 depdepl="$absdir/$objdir/$depdepl"
7067 darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
7068 if test -z "$darwin_install_name"; then
7069 darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
7070 fi
7071 func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
7072 func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
7073 path=
7074 fi
7075 fi
7076 ;;
7077 *)
7078 path="-L$absdir/$objdir"
7079 ;;
7080 esac
7081 else
7082 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
7083 test -z "$libdir" && \
7084 func_fatal_error "\`$deplib' is not a valid libtool archive"
7085 test "$absdir" != "$libdir" && \
7086 func_warning "\`$deplib' seems to be moved"
7087
7088 path="-L$absdir"
7089 fi
7090 ;;
7091 esac
7092 case " $deplibs " in
7093 *" $path "*) ;;
7094 *) deplibs="$path $deplibs" ;;
7095 esac
7096 done
7097 fi # link_all_deplibs != no
7098 fi # linkmode = lib
7099 done # for deplib in $libs
7100 if test "$pass" = link; then
7101 if test "$linkmode" = "prog"; then
7102 compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
7103 finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
7104 else
7105 compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7106 fi
7107 fi
7108 dependency_libs="$newdependency_libs"
7109 if test "$pass" = dlpreopen; then
7110 # Link the dlpreopened libraries before other libraries
7111 for deplib in $save_deplibs; do
7112 deplibs="$deplib $deplibs"
7113 done
7114 fi
7115 if test "$pass" != dlopen; then
7116 if test "$pass" != conv; then
7117 # Make sure lib_search_path contains only unique directories.
7118 lib_search_path=
7119 for dir in $newlib_search_path; do
7120 case "$lib_search_path " in
7121 *" $dir "*) ;;
7122 *) func_append lib_search_path " $dir" ;;
7123 esac
7124 done
7125 newlib_search_path=
7126 fi
7127
7128 if test "$linkmode,$pass" != "prog,link"; then
7129 vars="deplibs"
7130 else
7131 vars="compile_deplibs finalize_deplibs"
7132 fi
7133 for var in $vars dependency_libs; do
7134 # Add libraries to $var in reverse order
7135 eval tmp_libs=\"\$$var\"
7136 new_libs=
7137 for deplib in $tmp_libs; do
7138 # FIXME: Pedantically, this is the right thing to do, so
7139 # that some nasty dependency loop isn't accidentally
7140 # broken:
7141 #new_libs="$deplib $new_libs"
7142 # Pragmatically, this seems to cause very few problems in
7143 # practice:
7144 case $deplib in
7145 -L*) new_libs="$deplib $new_libs" ;;
7146 -R*) ;;
7147 *)
7148 # And here is the reason: when a library appears more
7149 # than once as an explicit dependence of a library, or
7150 # is implicitly linked in more than once by the
7151 # compiler, it is considered special, and multiple
7152 # occurrences thereof are not removed. Compare this
7153 # with having the same library being listed as a
7154 # dependency of multiple other libraries: in this case,
7155 # we know (pedantically, we assume) the library does not
7156 # need to be listed more than once, so we keep only the
7157 # last copy. This is not always right, but it is rare
7158 # enough that we require users that really mean to play
7159 # such unportable linking tricks to link the library
7160 # using -Wl,-lname, so that libtool does not consider it
7161 # for duplicate removal.
7162 case " $specialdeplibs " in
7163 *" $deplib "*) new_libs="$deplib $new_libs" ;;
7164 *)
7165 case " $new_libs " in
7166 *" $deplib "*) ;;
7167 *) new_libs="$deplib $new_libs" ;;
7168 esac
7169 ;;
7170 esac
7171 ;;
7172 esac
7173 done
7174 tmp_libs=
7175 for deplib in $new_libs; do
7176 case $deplib in
7177 -L*)
7178 case " $tmp_libs " in
7179 *" $deplib "*) ;;
7180 *) func_append tmp_libs " $deplib" ;;
7181 esac
7182 ;;
7183 *) func_append tmp_libs " $deplib" ;;
7184 esac
7185 done
7186 eval $var=\"$tmp_libs\"
7187 done # for var
7188 fi
7189 # Last step: remove runtime libs from dependency_libs
7190 # (they stay in deplibs)
7191 tmp_libs=
7192 for i in $dependency_libs ; do
7193 case " $predeps $postdeps $compiler_lib_search_path " in
7194 *" $i "*)
7195 i=""
7196 ;;
7197 esac
7198 if test -n "$i" ; then
7199 func_append tmp_libs " $i"
7200 fi
7201 done
7202 dependency_libs=$tmp_libs
7203 done # for pass
7204 if test "$linkmode" = prog; then
7205 dlfiles="$newdlfiles"
7206 fi
7207 if test "$linkmode" = prog || test "$linkmode" = lib; then
7208 dlprefiles="$newdlprefiles"
7209 fi
7210
7211 case $linkmode in
7212 oldlib)
7213 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
7214 func_warning "\`-dlopen' is ignored for archives"
7215 fi
7216
7217 case " $deplibs" in
7218 *\ -l* | *\ -L*)
7219 func_warning "\`-l' and \`-L' are ignored for archives" ;;
7220 esac
7221
7222 test -n "$rpath" && \
7223 func_warning "\`-rpath' is ignored for archives"
7224
7225 test -n "$xrpath" && \
7226 func_warning "\`-R' is ignored for archives"
7227
7228 test -n "$vinfo" && \
7229 func_warning "\`-version-info/-version-number' is ignored for archives"
7230
7231 test -n "$release" && \
7232 func_warning "\`-release' is ignored for archives"
7233
7234 test -n "$export_symbols$export_symbols_regex" && \
7235 func_warning "\`-export-symbols' is ignored for archives"
7236
7237 # Now set the variables for building old libraries.
7238 build_libtool_libs=no
7239 oldlibs="$output"
7240 func_append objs "$old_deplibs"
7241 ;;
7242
7243 lib)
7244 # Make sure we only generate libraries of the form `libNAME.la'.
7245 case $outputname in
7246 lib*)
7247 func_stripname 'lib' '.la' "$outputname"
7248 name=$func_stripname_result
7249 eval shared_ext=\"$shrext_cmds\"
7250 eval libname=\"$libname_spec\"
7251 ;;
7252 *)
7253 test "$module" = no && \
7254 func_fatal_help "libtool library \`$output' must begin with \`lib'"
7255
7256 if test "$need_lib_prefix" != no; then
7257 # Add the "lib" prefix for modules if required
7258 func_stripname '' '.la' "$outputname"
7259 name=$func_stripname_result
7260 eval shared_ext=\"$shrext_cmds\"
7261 eval libname=\"$libname_spec\"
7262 else
7263 func_stripname '' '.la' "$outputname"
7264 libname=$func_stripname_result
7265 fi
7266 ;;
7267 esac
7268
7269 if test -n "$objs"; then
7270 if test "$deplibs_check_method" != pass_all; then
7271 func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
7272 else
7273 echo
7274 $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
7275 $ECHO "*** objects $objs is not portable!"
7276 func_append libobjs " $objs"
7277 fi
7278 fi
7279
7280 test "$dlself" != no && \
7281 func_warning "\`-dlopen self' is ignored for libtool libraries"
7282
7283 set dummy $rpath
7284 shift
7285 test "$#" -gt 1 && \
7286 func_warning "ignoring multiple \`-rpath's for a libtool library"
7287
7288 install_libdir="$1"
7289
7290 oldlibs=
7291 if test -z "$rpath"; then
7292 if test "$build_libtool_libs" = yes; then
7293 # Building a libtool convenience library.
7294 # Some compilers have problems with a `.al' extension so
7295 # convenience libraries should have the same extension an
7296 # archive normally would.
7297 oldlibs="$output_objdir/$libname.$libext $oldlibs"
7298 build_libtool_libs=convenience
7299 build_old_libs=yes
7300 fi
7301
7302 test -n "$vinfo" && \
7303 func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
7304
7305 test -n "$release" && \
7306 func_warning "\`-release' is ignored for convenience libraries"
7307 else
7308
7309 # Parse the version information argument.
7310 save_ifs="$IFS"; IFS=':'
7311 set dummy $vinfo 0 0 0
7312 shift
7313 IFS="$save_ifs"
7314
7315 test -n "$7" && \
7316 func_fatal_help "too many parameters to \`-version-info'"
7317
7318 # convert absolute version numbers to libtool ages
7319 # this retains compatibility with .la files and attempts
7320 # to make the code below a bit more comprehensible
7321
7322 case $vinfo_number in
7323 yes)
7324 number_major="$1"
7325 number_minor="$2"
7326 number_revision="$3"
7327 #
7328 # There are really only two kinds -- those that
7329 # use the current revision as the major version
7330 # and those that subtract age and use age as
7331 # a minor version. But, then there is irix
7332 # which has an extra 1 added just for fun
7333 #
7334 case $version_type in
7335 # correct linux to gnu/linux during the next big refactor
7336 darwin|linux|osf|windows|none)
7337 func_arith $number_major + $number_minor
7338 current=$func_arith_result
7339 age="$number_minor"
7340 revision="$number_revision"
7341 ;;
7342 freebsd-aout|freebsd-elf|qnx|sunos)
7343 current="$number_major"
7344 revision="$number_minor"
7345 age="0"
7346 ;;
7347 irix|nonstopux)
7348 func_arith $number_major + $number_minor
7349 current=$func_arith_result
7350 age="$number_minor"
7351 revision="$number_minor"
7352 lt_irix_increment=no
7353 ;;
7354 *)
7355 func_fatal_configuration "$modename: unknown library version type \`$version_type'"
7356 ;;
7357 esac
7358 ;;
7359 no)
7360 current="$1"
7361 revision="$2"
7362 age="$3"
7363 ;;
7364 esac
7365
7366 # Check that each of the things are valid numbers.
7367 case $current in
7368 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
7369 *)
7370 func_error "CURRENT \`$current' must be a nonnegative integer"
7371 func_fatal_error "\`$vinfo' is not valid version information"
7372 ;;
7373 esac
7374
7375 case $revision in
7376 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
7377 *)
7378 func_error "REVISION \`$revision' must be a nonnegative integer"
7379 func_fatal_error "\`$vinfo' is not valid version information"
7380 ;;
7381 esac
7382
7383 case $age in
7384 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
7385 *)
7386 func_error "AGE \`$age' must be a nonnegative integer"
7387 func_fatal_error "\`$vinfo' is not valid version information"
7388 ;;
7389 esac
7390
7391 if test "$age" -gt "$current"; then
7392 func_error "AGE \`$age' is greater than the current interface number \`$current'"
7393 func_fatal_error "\`$vinfo' is not valid version information"
7394 fi
7395
7396 # Calculate the version variables.
7397 major=
7398 versuffix=
7399 verstring=
7400 case $version_type in
7401 none) ;;
7402
7403 darwin)
7404 # Like Linux, but with the current version available in
7405 # verstring for coding it into the library header
7406 func_arith $current - $age
7407 major=.$func_arith_result
7408 versuffix="$major.$age.$revision"
7409 # Darwin ld doesn't like 0 for these options...
7410 func_arith $current + 1
7411 minor_current=$func_arith_result
7412 xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
7413 verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
7414 ;;
7415
7416 freebsd-aout)
7417 major=".$current"
7418 versuffix=".$current.$revision";
7419 ;;
7420
7421 freebsd-elf)
7422 major=".$current"
7423 versuffix=".$current"
7424 ;;
7425
7426 irix | nonstopux)
7427 if test "X$lt_irix_increment" = "Xno"; then
7428 func_arith $current - $age
7429 else
7430 func_arith $current - $age + 1
7431 fi
7432 major=$func_arith_result
7433
7434 case $version_type in
7435 nonstopux) verstring_prefix=nonstopux ;;
7436 *) verstring_prefix=sgi ;;
7437 esac
7438 verstring="$verstring_prefix$major.$revision"
7439
7440 # Add in all the interfaces that we are compatible with.
7441 loop=$revision
7442 while test "$loop" -ne 0; do
7443 func_arith $revision - $loop
7444 iface=$func_arith_result
7445 func_arith $loop - 1
7446 loop=$func_arith_result
7447 verstring="$verstring_prefix$major.$iface:$verstring"
7448 done
7449
7450 # Before this point, $major must not contain `.'.
7451 major=.$major
7452 versuffix="$major.$revision"
7453 ;;
7454
7455 linux) # correct to gnu/linux during the next big refactor
7456 func_arith $current - $age
7457 major=.$func_arith_result
7458 versuffix="$major.$age.$revision"
7459 ;;
7460
7461 osf)
7462 func_arith $current - $age
7463 major=.$func_arith_result
7464 versuffix=".$current.$age.$revision"
7465 verstring="$current.$age.$revision"
7466
7467 # Add in all the interfaces that we are compatible with.
7468 loop=$age
7469 while test "$loop" -ne 0; do
7470 func_arith $current - $loop
7471 iface=$func_arith_result
7472 func_arith $loop - 1
7473 loop=$func_arith_result
7474 verstring="$verstring:${iface}.0"
7475 done
7476
7477 # Make executables depend on our current version.
7478 func_append verstring ":${current}.0"
7479 ;;
7480
7481 qnx)
7482 major=".$current"
7483 versuffix=".$current"
7484 ;;
7485
7486 sunos)
7487 major=".$current"
7488 versuffix=".$current.$revision"
7489 ;;
7490
7491 windows)
7492 # Use '-' rather than '.', since we only want one
7493 # extension on DOS 8.3 filesystems.
7494 func_arith $current - $age
7495 major=$func_arith_result
7496 versuffix="-$major"
7497 ;;
7498
7499 *)
7500 func_fatal_configuration "unknown library version type \`$version_type'"
7501 ;;
7502 esac
7503
7504 # Clear the version info if we defaulted, and they specified a release.
7505 if test -z "$vinfo" && test -n "$release"; then
7506 major=
7507 case $version_type in
7508 darwin)
7509 # we can't check for "0.0" in archive_cmds due to quoting
7510 # problems, so we reset it completely
7511 verstring=
7512 ;;
7513 *)
7514 verstring="0.0"
7515 ;;
7516 esac
7517 if test "$need_version" = no; then
7518 versuffix=
7519 else
7520 versuffix=".0.0"
7521 fi
7522 fi
7523
7524 # Remove version info from name if versioning should be avoided
7525 if test "$avoid_version" = yes && test "$need_version" = no; then
7526 major=
7527 versuffix=
7528 verstring=""
7529 fi
7530
7531 # Check to see if the archive will have undefined symbols.
7532 if test "$allow_undefined" = yes; then
7533 if test "$allow_undefined_flag" = unsupported; then
7534 func_warning "undefined symbols not allowed in $host shared libraries"
7535 build_libtool_libs=no
7536 build_old_libs=yes
7537 fi
7538 else
7539 # Don't allow undefined symbols.
7540 allow_undefined_flag="$no_undefined_flag"
7541 fi
7542
7543 fi
7544
7545 func_generate_dlsyms "$libname" "$libname" "yes"
7546 func_append libobjs " $symfileobj"
7547 test "X$libobjs" = "X " && libobjs=
7548
7549 if test "$opt_mode" != relink; then
7550 # Remove our outputs, but don't remove object files since they
7551 # may have been created when compiling PIC objects.
7552 removelist=
7553 tempremovelist=`$ECHO "$output_objdir/*"`
7554 for p in $tempremovelist; do
7555 case $p in
7556 *.$objext | *.gcno)
7557 ;;
7558 $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
7559 if test "X$precious_files_regex" != "X"; then
7560 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
7561 then
7562 continue
7563 fi
7564 fi
7565 func_append removelist " $p"
7566 ;;
7567 *) ;;
7568 esac
7569 done
7570 test -n "$removelist" && \
7571 func_show_eval "${RM}r \$removelist"
7572 fi
7573
7574 # Now set the variables for building old libraries.
7575 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
7576 func_append oldlibs " $output_objdir/$libname.$libext"
7577
7578 # Transform .lo files to .o files.
7579 oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
7580 fi
7581
7582 # Eliminate all temporary directories.
7583 #for path in $notinst_path; do
7584 # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
7585 # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
7586 # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
7587 #done
7588
7589 if test -n "$xrpath"; then
7590 # If the user specified any rpath flags, then add them.
7591 temp_xrpath=
7592 for libdir in $xrpath; do
7593 func_replace_sysroot "$libdir"
7594 func_append temp_xrpath " -R$func_replace_sysroot_result"
7595 case "$finalize_rpath " in
7596 *" $libdir "*) ;;
7597 *) func_append finalize_rpath " $libdir" ;;
7598 esac
7599 done
7600 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
7601 dependency_libs="$temp_xrpath $dependency_libs"
7602 fi
7603 fi
7604
7605 # Make sure dlfiles contains only unique files that won't be dlpreopened
7606 old_dlfiles="$dlfiles"
7607 dlfiles=
7608 for lib in $old_dlfiles; do
7609 case " $dlprefiles $dlfiles " in
7610 *" $lib "*) ;;
7611 *) func_append dlfiles " $lib" ;;
7612 esac
7613 done
7614
7615 # Make sure dlprefiles contains only unique files
7616 old_dlprefiles="$dlprefiles"
7617 dlprefiles=
7618 for lib in $old_dlprefiles; do
7619 case "$dlprefiles " in
7620 *" $lib "*) ;;
7621 *) func_append dlprefiles " $lib" ;;
7622 esac
7623 done
7624
7625 if test "$build_libtool_libs" = yes; then
7626 if test -n "$rpath"; then
7627 case $host in
7628 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
7629 # these systems don't actually have a c library (as such)!
7630 ;;
7631 *-*-rhapsody* | *-*-darwin1.[012])
7632 # Rhapsody C library is in the System framework
7633 func_append deplibs " System.ltframework"
7634 ;;
7635 *-*-netbsd*)
7636 # Don't link with libc until the a.out ld.so is fixed.
7637 ;;
7638 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
7639 # Do not include libc due to us having libc/libc_r.
7640 ;;
7641 *-*-sco3.2v5* | *-*-sco5v6*)
7642 # Causes problems with __ctype
7643 ;;
7644 *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
7645 # Compiler inserts libc in the correct place for threads to work
7646 ;;
7647 *)
7648 # Add libc to deplibs on all other systems if necessary.
7649 if test "$build_libtool_need_lc" = "yes"; then
7650 func_append deplibs " -lc"
7651 fi
7652 ;;
7653 esac
7654 fi
7655
7656 # Transform deplibs into only deplibs that can be linked in shared.
7657 name_save=$name
7658 libname_save=$libname
7659 release_save=$release
7660 versuffix_save=$versuffix
7661 major_save=$major
7662 # I'm not sure if I'm treating the release correctly. I think
7663 # release should show up in the -l (ie -lgmp5) so we don't want to
7664 # add it in twice. Is that correct?
7665 release=""
7666 versuffix=""
7667 major=""
7668 newdeplibs=
7669 droppeddeps=no
7670 case $deplibs_check_method in
7671 pass_all)
7672 # Don't check for shared/static. Everything works.
7673 # This might be a little naive. We might want to check
7674 # whether the library exists or not. But this is on
7675 # osf3 & osf4 and I'm not really sure... Just
7676 # implementing what was already the behavior.
7677 newdeplibs=$deplibs
7678 ;;
7679 test_compile)
7680 # This code stresses the "libraries are programs" paradigm to its
7681 # limits. Maybe even breaks it. We compile a program, linking it
7682 # against the deplibs as a proxy for the library. Then we can check
7683 # whether they linked in statically or dynamically with ldd.
7684 $opt_dry_run || $RM conftest.c
7685 cat > conftest.c <<EOF
7686 int main() { return 0; }
7687 EOF
7688 $opt_dry_run || $RM conftest
7689 if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
7690 ldd_output=`ldd conftest`
7691 for i in $deplibs; do
7692 case $i in
7693 -l*)
7694 func_stripname -l '' "$i"
7695 name=$func_stripname_result
7696 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7697 case " $predeps $postdeps " in
7698 *" $i "*)
7699 func_append newdeplibs " $i"
7700 i=""
7701 ;;
7702 esac
7703 fi
7704 if test -n "$i" ; then
7705 libname=`eval "\\$ECHO \"$libname_spec\""`
7706 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
7707 set dummy $deplib_matches; shift
7708 deplib_match=$1
7709 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
7710 func_append newdeplibs " $i"
7711 else
7712 droppeddeps=yes
7713 echo
7714 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
7715 echo "*** I have the capability to make that library automatically link in when"
7716 echo "*** you link to this library. But I can only do this if you have a"
7717 echo "*** shared version of the library, which I believe you do not have"
7718 echo "*** because a test_compile did reveal that the linker did not use it for"
7719 echo "*** its dynamic dependency list that programs get resolved with at runtime."
7720 fi
7721 fi
7722 ;;
7723 *)
7724 func_append newdeplibs " $i"
7725 ;;
7726 esac
7727 done
7728 else
7729 # Error occurred in the first compile. Let's try to salvage
7730 # the situation: Compile a separate program for each library.
7731 for i in $deplibs; do
7732 case $i in
7733 -l*)
7734 func_stripname -l '' "$i"
7735 name=$func_stripname_result
7736 $opt_dry_run || $RM conftest
7737 if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
7738 ldd_output=`ldd conftest`
7739 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7740 case " $predeps $postdeps " in
7741 *" $i "*)
7742 func_append newdeplibs " $i"
7743 i=""
7744 ;;
7745 esac
7746 fi
7747 if test -n "$i" ; then
7748 libname=`eval "\\$ECHO \"$libname_spec\""`
7749 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
7750 set dummy $deplib_matches; shift
7751 deplib_match=$1
7752 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
7753 func_append newdeplibs " $i"
7754 else
7755 droppeddeps=yes
7756 echo
7757 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
7758 echo "*** I have the capability to make that library automatically link in when"
7759 echo "*** you link to this library. But I can only do this if you have a"
7760 echo "*** shared version of the library, which you do not appear to have"
7761 echo "*** because a test_compile did reveal that the linker did not use this one"
7762 echo "*** as a dynamic dependency that programs can get resolved with at runtime."
7763 fi
7764 fi
7765 else
7766 droppeddeps=yes
7767 echo
7768 $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
7769 echo "*** make it link in! You will probably need to install it or some"
7770 echo "*** library that it depends on before this library will be fully"
7771 echo "*** functional. Installing it before continuing would be even better."
7772 fi
7773 ;;
7774 *)
7775 func_append newdeplibs " $i"
7776 ;;
7777 esac
7778 done
7779 fi
7780 ;;
7781 file_magic*)
7782 set dummy $deplibs_check_method; shift
7783 file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
7784 for a_deplib in $deplibs; do
7785 case $a_deplib in
7786 -l*)
7787 func_stripname -l '' "$a_deplib"
7788 name=$func_stripname_result
7789 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7790 case " $predeps $postdeps " in
7791 *" $a_deplib "*)
7792 func_append newdeplibs " $a_deplib"
7793 a_deplib=""
7794 ;;
7795 esac
7796 fi
7797 if test -n "$a_deplib" ; then
7798 libname=`eval "\\$ECHO \"$libname_spec\""`
7799 if test -n "$file_magic_glob"; then
7800 libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
7801 else
7802 libnameglob=$libname
7803 fi
7804 test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
7805 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
7806 if test "$want_nocaseglob" = yes; then
7807 shopt -s nocaseglob
7808 potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
7809 $nocaseglob
7810 else
7811 potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
7812 fi
7813 for potent_lib in $potential_libs; do
7814 # Follow soft links.
7815 if ls -lLd "$potent_lib" 2>/dev/null |
7816 $GREP " -> " >/dev/null; then
7817 continue
7818 fi
7819 # The statement above tries to avoid entering an
7820 # endless loop below, in case of cyclic links.
7821 # We might still enter an endless loop, since a link
7822 # loop can be closed while we follow links,
7823 # but so what?
7824 potlib="$potent_lib"
7825 while test -h "$potlib" 2>/dev/null; do
7826 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
7827 case $potliblink in
7828 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
7829 *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
7830 esac
7831 done
7832 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
7833 $SED -e 10q |
7834 $EGREP "$file_magic_regex" > /dev/null; then
7835 func_append newdeplibs " $a_deplib"
7836 a_deplib=""
7837 break 2
7838 fi
7839 done
7840 done
7841 fi
7842 if test -n "$a_deplib" ; then
7843 droppeddeps=yes
7844 echo
7845 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7846 echo "*** I have the capability to make that library automatically link in when"
7847 echo "*** you link to this library. But I can only do this if you have a"
7848 echo "*** shared version of the library, which you do not appear to have"
7849 echo "*** because I did check the linker path looking for a file starting"
7850 if test -z "$potlib" ; then
7851 $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
7852 else
7853 $ECHO "*** with $libname and none of the candidates passed a file format test"
7854 $ECHO "*** using a file magic. Last file checked: $potlib"
7855 fi
7856 fi
7857 ;;
7858 *)
7859 # Add a -L argument.
7860 func_append newdeplibs " $a_deplib"
7861 ;;
7862 esac
7863 done # Gone through all deplibs.
7864 ;;
7865 match_pattern*)
7866 set dummy $deplibs_check_method; shift
7867 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
7868 for a_deplib in $deplibs; do
7869 case $a_deplib in
7870 -l*)
7871 func_stripname -l '' "$a_deplib"
7872 name=$func_stripname_result
7873 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7874 case " $predeps $postdeps " in
7875 *" $a_deplib "*)
7876 func_append newdeplibs " $a_deplib"
7877 a_deplib=""
7878 ;;
7879 esac
7880 fi
7881 if test -n "$a_deplib" ; then
7882 libname=`eval "\\$ECHO \"$libname_spec\""`
7883 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
7884 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
7885 for potent_lib in $potential_libs; do
7886 potlib="$potent_lib" # see symlink-check above in file_magic test
7887 if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
7888 $EGREP "$match_pattern_regex" > /dev/null; then
7889 func_append newdeplibs " $a_deplib"
7890 a_deplib=""
7891 break 2
7892 fi
7893 done
7894 done
7895 fi
7896 if test -n "$a_deplib" ; then
7897 droppeddeps=yes
7898 echo
7899 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7900 echo "*** I have the capability to make that library automatically link in when"
7901 echo "*** you link to this library. But I can only do this if you have a"
7902 echo "*** shared version of the library, which you do not appear to have"
7903 echo "*** because I did check the linker path looking for a file starting"
7904 if test -z "$potlib" ; then
7905 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
7906 else
7907 $ECHO "*** with $libname and none of the candidates passed a file format test"
7908 $ECHO "*** using a regex pattern. Last file checked: $potlib"
7909 fi
7910 fi
7911 ;;
7912 *)
7913 # Add a -L argument.
7914 func_append newdeplibs " $a_deplib"
7915 ;;
7916 esac
7917 done # Gone through all deplibs.
7918 ;;
7919 none | unknown | *)
7920 newdeplibs=""
7921 tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
7922 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7923 for i in $predeps $postdeps ; do
7924 # can't use Xsed below, because $i might contain '/'
7925 tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
7926 done
7927 fi
7928 case $tmp_deplibs in
7929 *[!\ \ ]*)
7930 echo
7931 if test "X$deplibs_check_method" = "Xnone"; then
7932 echo "*** Warning: inter-library dependencies are not supported in this platform."
7933 else
7934 echo "*** Warning: inter-library dependencies are not known to be supported."
7935 fi
7936 echo "*** All declared inter-library dependencies are being dropped."
7937 droppeddeps=yes
7938 ;;
7939 esac
7940 ;;
7941 esac
7942 versuffix=$versuffix_save
7943 major=$major_save
7944 release=$release_save
7945 libname=$libname_save
7946 name=$name_save
7947
7948 case $host in
7949 *-*-rhapsody* | *-*-darwin1.[012])
7950 # On Rhapsody replace the C library with the System framework
7951 newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
7952 ;;
7953 esac
7954
7955 if test "$droppeddeps" = yes; then
7956 if test "$module" = yes; then
7957 echo
7958 echo "*** Warning: libtool could not satisfy all declared inter-library"
7959 $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
7960 echo "*** a static module, that should work as long as the dlopening"
7961 echo "*** application is linked with the -dlopen flag."
7962 if test -z "$global_symbol_pipe"; then
7963 echo
7964 echo "*** However, this would only work if libtool was able to extract symbol"
7965 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
7966 echo "*** not find such a program. So, this module is probably useless."
7967 echo "*** \`nm' from GNU binutils and a full rebuild may help."
7968 fi
7969 if test "$build_old_libs" = no; then
7970 oldlibs="$output_objdir/$libname.$libext"
7971 build_libtool_libs=module
7972 build_old_libs=yes
7973 else
7974 build_libtool_libs=no
7975 fi
7976 else
7977 echo "*** The inter-library dependencies that have been dropped here will be"
7978 echo "*** automatically added whenever a program is linked with this library"
7979 echo "*** or is declared to -dlopen it."
7980
7981 if test "$allow_undefined" = no; then
7982 echo
7983 echo "*** Since this library must not contain undefined symbols,"
7984 echo "*** because either the platform does not support them or"
7985 echo "*** it was explicitly requested with -no-undefined,"
7986 echo "*** libtool will only create a static version of it."
7987 if test "$build_old_libs" = no; then
7988 oldlibs="$output_objdir/$libname.$libext"
7989 build_libtool_libs=module
7990 build_old_libs=yes
7991 else
7992 build_libtool_libs=no
7993 fi
7994 fi
7995 fi
7996 fi
7997 # Done checking deplibs!
7998 deplibs=$newdeplibs
7999 fi
8000 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
8001 case $host in
8002 *-*-darwin*)
8003 newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
8004 new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
8005 deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
8006 ;;
8007 esac
8008
8009 # move library search paths that coincide with paths to not yet
8010 # installed libraries to the beginning of the library search list
8011 new_libs=
8012 for path in $notinst_path; do
8013 case " $new_libs " in
8014 *" -L$path/$objdir "*) ;;
8015 *)
8016 case " $deplibs " in
8017 *" -L$path/$objdir "*)
8018 func_append new_libs " -L$path/$objdir" ;;
8019 esac
8020 ;;
8021 esac
8022 done
8023 for deplib in $deplibs; do
8024 case $deplib in
8025 -L*)
8026 case " $new_libs " in
8027 *" $deplib "*) ;;
8028 *) func_append new_libs " $deplib" ;;
8029 esac
8030 ;;
8031 *) func_append new_libs " $deplib" ;;
8032 esac
8033 done
8034 deplibs="$new_libs"
8035
8036 # All the library-specific variables (install_libdir is set above).
8037 library_names=
8038 old_library=
8039 dlname=
8040
8041 # Test again, we may have decided not to build it any more
8042 if test "$build_libtool_libs" = yes; then
8043 # Remove ${wl} instances when linking with ld.
8044 # FIXME: should test the right _cmds variable.
8045 case $archive_cmds in
8046 *\$LD\ *) wl= ;;
8047 esac
8048 if test "$hardcode_into_libs" = yes; then
8049 # Hardcode the library paths
8050 hardcode_libdirs=
8051 dep_rpath=
8052 rpath="$finalize_rpath"
8053 test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
8054 for libdir in $rpath; do
8055 if test -n "$hardcode_libdir_flag_spec"; then
8056 if test -n "$hardcode_libdir_separator"; then
8057 func_replace_sysroot "$libdir"
8058 libdir=$func_replace_sysroot_result
8059 if test -z "$hardcode_libdirs"; then
8060 hardcode_libdirs="$libdir"
8061 else
8062 # Just accumulate the unique libdirs.
8063 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8064 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8065 ;;
8066 *)
8067 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
8068 ;;
8069 esac
8070 fi
8071 else
8072 eval flag=\"$hardcode_libdir_flag_spec\"
8073 func_append dep_rpath " $flag"
8074 fi
8075 elif test -n "$runpath_var"; then
8076 case "$perm_rpath " in
8077 *" $libdir "*) ;;
8078 *) func_append perm_rpath " $libdir" ;;
8079 esac
8080 fi
8081 done
8082 # Substitute the hardcoded libdirs into the rpath.
8083 if test -n "$hardcode_libdir_separator" &&
8084 test -n "$hardcode_libdirs"; then
8085 libdir="$hardcode_libdirs"
8086 eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
8087 fi
8088 if test -n "$runpath_var" && test -n "$perm_rpath"; then
8089 # We should set the runpath_var.
8090 rpath=
8091 for dir in $perm_rpath; do
8092 func_append rpath "$dir:"
8093 done
8094 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
8095 fi
8096 test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
8097 fi
8098
8099 shlibpath="$finalize_shlibpath"
8100 test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
8101 if test -n "$shlibpath"; then
8102 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
8103 fi
8104
8105 # Get the real and link names of the library.
8106 eval shared_ext=\"$shrext_cmds\"
8107 eval library_names=\"$library_names_spec\"
8108 set dummy $library_names
8109 shift
8110 realname="$1"
8111 shift
8112
8113 if test -n "$soname_spec"; then
8114 eval soname=\"$soname_spec\"
8115 else
8116 soname="$realname"
8117 fi
8118 if test -z "$dlname"; then
8119 dlname=$soname
8120 fi
8121
8122 lib="$output_objdir/$realname"
8123 linknames=
8124 for link
8125 do
8126 func_append linknames " $link"
8127 done
8128
8129 # Use standard objects if they are pic
8130 test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
8131 test "X$libobjs" = "X " && libobjs=
8132
8133 delfiles=
8134 if test -n "$export_symbols" && test -n "$include_expsyms"; then
8135 $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
8136 export_symbols="$output_objdir/$libname.uexp"
8137 func_append delfiles " $export_symbols"
8138 fi
8139
8140 orig_export_symbols=
8141 case $host_os in
8142 cygwin* | mingw* | cegcc*)
8143 if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
8144 # exporting using user supplied symfile
8145 if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
8146 # and it's NOT already a .def file. Must figure out
8147 # which of the given symbols are data symbols and tag
8148 # them as such. So, trigger use of export_symbols_cmds.
8149 # export_symbols gets reassigned inside the "prepare
8150 # the list of exported symbols" if statement, so the
8151 # include_expsyms logic still works.
8152 orig_export_symbols="$export_symbols"
8153 export_symbols=
8154 always_export_symbols=yes
8155 fi
8156 fi
8157 ;;
8158 esac
8159
8160 # Prepare the list of exported symbols
8161 if test -z "$export_symbols"; then
8162 if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
8163 func_verbose "generating symbol list for \`$libname.la'"
8164 export_symbols="$output_objdir/$libname.exp"
8165 $opt_dry_run || $RM $export_symbols
8166 cmds=$export_symbols_cmds
8167 save_ifs="$IFS"; IFS='~'
8168 for cmd1 in $cmds; do
8169 IFS="$save_ifs"
8170 # Take the normal branch if the nm_file_list_spec branch
8171 # doesn't work or if tool conversion is not needed.
8172 case $nm_file_list_spec~$to_tool_file_cmd in
8173 *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
8174 try_normal_branch=yes
8175 eval cmd=\"$cmd1\"
8176 func_len " $cmd"
8177 len=$func_len_result
8178 ;;
8179 *)
8180 try_normal_branch=no
8181 ;;
8182 esac
8183 if test "$try_normal_branch" = yes \
8184 && { test "$len" -lt "$max_cmd_len" \
8185 || test "$max_cmd_len" -le -1; }
8186 then
8187 func_show_eval "$cmd" 'exit $?'
8188 skipped_export=false
8189 elif test -n "$nm_file_list_spec"; then
8190 func_basename "$output"
8191 output_la=$func_basename_result
8192 save_libobjs=$libobjs
8193 save_output=$output
8194 output=${output_objdir}/${output_la}.nm
8195 func_to_tool_file "$output"
8196 libobjs=$nm_file_list_spec$func_to_tool_file_result
8197 func_append delfiles " $output"
8198 func_verbose "creating $NM input file list: $output"
8199 for obj in $save_libobjs; do
8200 func_to_tool_file "$obj"
8201 $ECHO "$func_to_tool_file_result"
8202 done > "$output"
8203 eval cmd=\"$cmd1\"
8204 func_show_eval "$cmd" 'exit $?'
8205 output=$save_output
8206 libobjs=$save_libobjs
8207 skipped_export=false
8208 else
8209 # The command line is too long to execute in one step.
8210 func_verbose "using reloadable object file for export list..."
8211 skipped_export=:
8212 # Break out early, otherwise skipped_export may be
8213 # set to false by a later but shorter cmd.
8214 break
8215 fi
8216 done
8217 IFS="$save_ifs"
8218 if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
8219 func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
8220 func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
8221 fi
8222 fi
8223 fi
8224
8225 if test -n "$export_symbols" && test -n "$include_expsyms"; then
8226 tmp_export_symbols="$export_symbols"
8227 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
8228 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
8229 fi
8230
8231 if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
8232 # The given exports_symbols file has to be filtered, so filter it.
8233 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
8234 # FIXME: $output_objdir/$libname.filter potentially contains lots of
8235 # 's' commands which not all seds can handle. GNU sed should be fine
8236 # though. Also, the filter scales superlinearly with the number of
8237 # global variables. join(1) would be nice here, but unfortunately
8238 # isn't a blessed tool.
8239 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
8240 func_append delfiles " $export_symbols $output_objdir/$libname.filter"
8241 export_symbols=$output_objdir/$libname.def
8242 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
8243 fi
8244
8245 tmp_deplibs=
8246 for test_deplib in $deplibs; do
8247 case " $convenience " in
8248 *" $test_deplib "*) ;;
8249 *)
8250 func_append tmp_deplibs " $test_deplib"
8251 ;;
8252 esac
8253 done
8254 deplibs="$tmp_deplibs"
8255
8256 if test -n "$convenience"; then
8257 if test -n "$whole_archive_flag_spec" &&
8258 test "$compiler_needs_object" = yes &&
8259 test -z "$libobjs"; then
8260 # extract the archives, so we have objects to list.
8261 # TODO: could optimize this to just extract one archive.
8262 whole_archive_flag_spec=
8263 fi
8264 if test -n "$whole_archive_flag_spec"; then
8265 save_libobjs=$libobjs
8266 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
8267 test "X$libobjs" = "X " && libobjs=
8268 else
8269 gentop="$output_objdir/${outputname}x"
8270 func_append generated " $gentop"
8271
8272 func_extract_archives $gentop $convenience
8273 func_append libobjs " $func_extract_archives_result"
8274 test "X$libobjs" = "X " && libobjs=
8275 fi
8276 fi
8277
8278 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
8279 eval flag=\"$thread_safe_flag_spec\"
8280 func_append linker_flags " $flag"
8281 fi
8282
8283 # Make a backup of the uninstalled library when relinking
8284 if test "$opt_mode" = relink; then
8285 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
8286 fi
8287
8288 # Do each of the archive commands.
8289 if test "$module" = yes && test -n "$module_cmds" ; then
8290 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
8291 eval test_cmds=\"$module_expsym_cmds\"
8292 cmds=$module_expsym_cmds
8293 else
8294 eval test_cmds=\"$module_cmds\"
8295 cmds=$module_cmds
8296 fi
8297 else
8298 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
8299 eval test_cmds=\"$archive_expsym_cmds\"
8300 cmds=$archive_expsym_cmds
8301 else
8302 eval test_cmds=\"$archive_cmds\"
8303 cmds=$archive_cmds
8304 fi
8305 fi
8306
8307 if test "X$skipped_export" != "X:" &&
8308 func_len " $test_cmds" &&
8309 len=$func_len_result &&
8310 test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
8311 :
8312 else
8313 # The command line is too long to link in one step, link piecewise
8314 # or, if using GNU ld and skipped_export is not :, use a linker
8315 # script.
8316
8317 # Save the value of $output and $libobjs because we want to
8318 # use them later. If we have whole_archive_flag_spec, we
8319 # want to use save_libobjs as it was before
8320 # whole_archive_flag_spec was expanded, because we can't
8321 # assume the linker understands whole_archive_flag_spec.
8322 # This may have to be revisited, in case too many
8323 # convenience libraries get linked in and end up exceeding
8324 # the spec.
8325 if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
8326 save_libobjs=$libobjs
8327 fi
8328 save_output=$output
8329 func_basename "$output"
8330 output_la=$func_basename_result
8331
8332 # Clear the reloadable object creation command queue and
8333 # initialize k to one.
8334 test_cmds=
8335 concat_cmds=
8336 objlist=
8337 last_robj=
8338 k=1
8339
8340 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
8341 output=${output_objdir}/${output_la}.lnkscript
8342 func_verbose "creating GNU ld script: $output"
8343 echo 'INPUT (' > $output
8344 for obj in $save_libobjs
8345 do
8346 func_to_tool_file "$obj"
8347 $ECHO "$func_to_tool_file_result" >> $output
8348 done
8349 echo ')' >> $output
8350 func_append delfiles " $output"
8351 func_to_tool_file "$output"
8352 output=$func_to_tool_file_result
8353 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
8354 output=${output_objdir}/${output_la}.lnk
8355 func_verbose "creating linker input file list: $output"
8356 : > $output
8357 set x $save_libobjs
8358 shift
8359 firstobj=
8360 if test "$compiler_needs_object" = yes; then
8361 firstobj="$1 "
8362 shift
8363 fi
8364 for obj
8365 do
8366 func_to_tool_file "$obj"
8367 $ECHO "$func_to_tool_file_result" >> $output
8368 done
8369 func_append delfiles " $output"
8370 func_to_tool_file "$output"
8371 output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
8372 else
8373 if test -n "$save_libobjs"; then
8374 func_verbose "creating reloadable object files..."
8375 output=$output_objdir/$output_la-${k}.$objext
8376 eval test_cmds=\"$reload_cmds\"
8377 func_len " $test_cmds"
8378 len0=$func_len_result
8379 len=$len0
8380
8381 # Loop over the list of objects to be linked.
8382 for obj in $save_libobjs
8383 do
8384 func_len " $obj"
8385 func_arith $len + $func_len_result
8386 len=$func_arith_result
8387 if test "X$objlist" = X ||
8388 test "$len" -lt "$max_cmd_len"; then
8389 func_append objlist " $obj"
8390 else
8391 # The command $test_cmds is almost too long, add a
8392 # command to the queue.
8393 if test "$k" -eq 1 ; then
8394 # The first file doesn't have a previous command to add.
8395 reload_objs=$objlist
8396 eval concat_cmds=\"$reload_cmds\"
8397 else
8398 # All subsequent reloadable object files will link in
8399 # the last one created.
8400 reload_objs="$objlist $last_robj"
8401 eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
8402 fi
8403 last_robj=$output_objdir/$output_la-${k}.$objext
8404 func_arith $k + 1
8405 k=$func_arith_result
8406 output=$output_objdir/$output_la-${k}.$objext
8407 objlist=" $obj"
8408 func_len " $last_robj"
8409 func_arith $len0 + $func_len_result
8410 len=$func_arith_result
8411 fi
8412 done
8413 # Handle the remaining objects by creating one last
8414 # reloadable object file. All subsequent reloadable object
8415 # files will link in the last one created.
8416 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
8417 reload_objs="$objlist $last_robj"
8418 eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
8419 if test -n "$last_robj"; then
8420 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
8421 fi
8422 func_append delfiles " $output"
8423
8424 else
8425 output=
8426 fi
8427
8428 if ${skipped_export-false}; then
8429 func_verbose "generating symbol list for \`$libname.la'"
8430 export_symbols="$output_objdir/$libname.exp"
8431 $opt_dry_run || $RM $export_symbols
8432 libobjs=$output
8433 # Append the command to create the export file.
8434 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
8435 eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
8436 if test -n "$last_robj"; then
8437 eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
8438 fi
8439 fi
8440
8441 test -n "$save_libobjs" &&
8442 func_verbose "creating a temporary reloadable object file: $output"
8443
8444 # Loop through the commands generated above and execute them.
8445 save_ifs="$IFS"; IFS='~'
8446 for cmd in $concat_cmds; do
8447 IFS="$save_ifs"
8448 $opt_silent || {
8449 func_quote_for_expand "$cmd"
8450 eval "func_echo $func_quote_for_expand_result"
8451 }
8452 $opt_dry_run || eval "$cmd" || {
8453 lt_exit=$?
8454
8455 # Restore the uninstalled library and exit
8456 if test "$opt_mode" = relink; then
8457 ( cd "$output_objdir" && \
8458 $RM "${realname}T" && \
8459 $MV "${realname}U" "$realname" )
8460 fi
8461
8462 exit $lt_exit
8463 }
8464 done
8465 IFS="$save_ifs"
8466
8467 if test -n "$export_symbols_regex" && ${skipped_export-false}; then
8468 func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
8469 func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
8470 fi
8471 fi
8472
8473 if ${skipped_export-false}; then
8474 if test -n "$export_symbols" && test -n "$include_expsyms"; then
8475 tmp_export_symbols="$export_symbols"
8476 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
8477 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
8478 fi
8479
8480 if test -n "$orig_export_symbols"; then
8481 # The given exports_symbols file has to be filtered, so filter it.
8482 func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
8483 # FIXME: $output_objdir/$libname.filter potentially contains lots of
8484 # 's' commands which not all seds can handle. GNU sed should be fine
8485 # though. Also, the filter scales superlinearly with the number of
8486 # global variables. join(1) would be nice here, but unfortunately
8487 # isn't a blessed tool.
8488 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
8489 func_append delfiles " $export_symbols $output_objdir/$libname.filter"
8490 export_symbols=$output_objdir/$libname.def
8491 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
8492 fi
8493 fi
8494
8495 libobjs=$output
8496 # Restore the value of output.
8497 output=$save_output
8498
8499 if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
8500 eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
8501 test "X$libobjs" = "X " && libobjs=
8502 fi
8503 # Expand the library linking commands again to reset the
8504 # value of $libobjs for piecewise linking.
8505
8506 # Do each of the archive commands.
8507 if test "$module" = yes && test -n "$module_cmds" ; then
8508 if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
8509 cmds=$module_expsym_cmds
8510 else
8511 cmds=$module_cmds
8512 fi
8513 else
8514 if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
8515 cmds=$archive_expsym_cmds
8516 else
8517 cmds=$archive_cmds
8518 fi
8519 fi
8520 fi
8521
8522 if test -n "$delfiles"; then
8523 # Append the command to remove temporary files to $cmds.
8524 eval cmds=\"\$cmds~\$RM $delfiles\"
8525 fi
8526
8527 # Add any objects from preloaded convenience libraries
8528 if test -n "$dlprefiles"; then
8529 gentop="$output_objdir/${outputname}x"
8530 func_append generated " $gentop"
8531
8532 func_extract_archives $gentop $dlprefiles
8533 func_append libobjs " $func_extract_archives_result"
8534 test "X$libobjs" = "X " && libobjs=
8535 fi
8536
8537 save_ifs="$IFS"; IFS='~'
8538 for cmd in $cmds; do
8539 IFS="$save_ifs"
8540 eval cmd=\"$cmd\"
8541 $opt_silent || {
8542 func_quote_for_expand "$cmd"
8543 eval "func_echo $func_quote_for_expand_result"
8544 }
8545 $opt_dry_run || eval "$cmd" || {
8546 lt_exit=$?
8547
8548 # Restore the uninstalled library and exit
8549 if test "$opt_mode" = relink; then
8550 ( cd "$output_objdir" && \
8551 $RM "${realname}T" && \
8552 $MV "${realname}U" "$realname" )
8553 fi
8554
8555 exit $lt_exit
8556 }
8557 done
8558 IFS="$save_ifs"
8559
8560 # Restore the uninstalled library and exit
8561 if test "$opt_mode" = relink; then
8562 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
8563
8564 if test -n "$convenience"; then
8565 if test -z "$whole_archive_flag_spec"; then
8566 func_show_eval '${RM}r "$gentop"'
8567 fi
8568 fi
8569
8570 exit $EXIT_SUCCESS
8571 fi
8572
8573 # Create links to the real library.
8574 for linkname in $linknames; do
8575 if test "$realname" != "$linkname"; then
8576 func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
8577 fi
8578 done
8579
8580 # If -module or -export-dynamic was specified, set the dlname.
8581 if test "$module" = yes || test "$export_dynamic" = yes; then
8582 # On all known operating systems, these are identical.
8583 dlname="$soname"
8584 fi
8585 fi
8586 ;;
8587
8588 obj)
8589 if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
8590 func_warning "\`-dlopen' is ignored for objects"
8591 fi
8592
8593 case " $deplibs" in
8594 *\ -l* | *\ -L*)
8595 func_warning "\`-l' and \`-L' are ignored for objects" ;;
8596 esac
8597
8598 test -n "$rpath" && \
8599 func_warning "\`-rpath' is ignored for objects"
8600
8601 test -n "$xrpath" && \
8602 func_warning "\`-R' is ignored for objects"
8603
8604 test -n "$vinfo" && \
8605 func_warning "\`-version-info' is ignored for objects"
8606
8607 test -n "$release" && \
8608 func_warning "\`-release' is ignored for objects"
8609
8610 case $output in
8611 *.lo)
8612 test -n "$objs$old_deplibs" && \
8613 func_fatal_error "cannot build library object \`$output' from non-libtool objects"
8614
8615 libobj=$output
8616 func_lo2o "$libobj"
8617 obj=$func_lo2o_result
8618 ;;
8619 *)
8620 libobj=
8621 obj="$output"
8622 ;;
8623 esac
8624
8625 # Delete the old objects.
8626 $opt_dry_run || $RM $obj $libobj
8627
8628 # Objects from convenience libraries. This assumes
8629 # single-version convenience libraries. Whenever we create
8630 # different ones for PIC/non-PIC, this we'll have to duplicate
8631 # the extraction.
8632 reload_conv_objs=
8633 gentop=
8634 # reload_cmds runs $LD directly, so let us get rid of
8635 # -Wl from whole_archive_flag_spec and hope we can get by with
8636 # turning comma into space..
8637 wl=
8638
8639 if test -n "$convenience"; then
8640 if test -n "$whole_archive_flag_spec"; then
8641 eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
8642 reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
8643 else
8644 gentop="$output_objdir/${obj}x"
8645 func_append generated " $gentop"
8646
8647 func_extract_archives $gentop $convenience
8648 reload_conv_objs="$reload_objs $func_extract_archives_result"
8649 fi
8650 fi
8651
8652 # If we're not building shared, we need to use non_pic_objs
8653 test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
8654
8655 # Create the old-style object.
8656 reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
8657
8658 output="$obj"
8659 func_execute_cmds "$reload_cmds" 'exit $?'
8660
8661 # Exit if we aren't doing a library object file.
8662 if test -z "$libobj"; then
8663 if test -n "$gentop"; then
8664 func_show_eval '${RM}r "$gentop"'
8665 fi
8666
8667 exit $EXIT_SUCCESS
8668 fi
8669
8670 if test "$build_libtool_libs" != yes; then
8671 if test -n "$gentop"; then
8672 func_show_eval '${RM}r "$gentop"'
8673 fi
8674
8675 # Create an invalid libtool object if no PIC, so that we don't
8676 # accidentally link it into a program.
8677 # $show "echo timestamp > $libobj"
8678 # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
8679 exit $EXIT_SUCCESS
8680 fi
8681
8682 if test -n "$pic_flag" || test "$pic_mode" != default; then
8683 # Only do commands if we really have different PIC objects.
8684 reload_objs="$libobjs $reload_conv_objs"
8685 output="$libobj"
8686 func_execute_cmds "$reload_cmds" 'exit $?'
8687 fi
8688
8689 if test -n "$gentop"; then
8690 func_show_eval '${RM}r "$gentop"'
8691 fi
8692
8693 exit $EXIT_SUCCESS
8694 ;;
8695
8696 prog)
8697 case $host in
8698 *cygwin*) func_stripname '' '.exe' "$output"
8699 output=$func_stripname_result.exe;;
8700 esac
8701 test -n "$vinfo" && \
8702 func_warning "\`-version-info' is ignored for programs"
8703
8704 test -n "$release" && \
8705 func_warning "\`-release' is ignored for programs"
8706
8707 test "$preload" = yes \
8708 && test "$dlopen_support" = unknown \
8709 && test "$dlopen_self" = unknown \
8710 && test "$dlopen_self_static" = unknown && \
8711 func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
8712
8713 case $host in
8714 *-*-rhapsody* | *-*-darwin1.[012])
8715 # On Rhapsody replace the C library is the System framework
8716 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
8717 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
8718 ;;
8719 esac
8720
8721 case $host in
8722 *-*-darwin*)
8723 # Don't allow lazy linking, it breaks C++ global constructors
8724 # But is supposedly fixed on 10.4 or later (yay!).
8725 if test "$tagname" = CXX ; then
8726 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
8727 10.[0123])
8728 func_append compile_command " ${wl}-bind_at_load"
8729 func_append finalize_command " ${wl}-bind_at_load"
8730 ;;
8731 esac
8732 fi
8733 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
8734 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
8735 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
8736 ;;
8737 esac
8738
8739
8740 # move library search paths that coincide with paths to not yet
8741 # installed libraries to the beginning of the library search list
8742 new_libs=
8743 for path in $notinst_path; do
8744 case " $new_libs " in
8745 *" -L$path/$objdir "*) ;;
8746 *)
8747 case " $compile_deplibs " in
8748 *" -L$path/$objdir "*)
8749 func_append new_libs " -L$path/$objdir" ;;
8750 esac
8751 ;;
8752 esac
8753 done
8754 for deplib in $compile_deplibs; do
8755 case $deplib in
8756 -L*)
8757 case " $new_libs " in
8758 *" $deplib "*) ;;
8759 *) func_append new_libs " $deplib" ;;
8760 esac
8761 ;;
8762 *) func_append new_libs " $deplib" ;;
8763 esac
8764 done
8765 compile_deplibs="$new_libs"
8766
8767
8768 func_append compile_command " $compile_deplibs"
8769 func_append finalize_command " $finalize_deplibs"
8770
8771 if test -n "$rpath$xrpath"; then
8772 # If the user specified any rpath flags, then add them.
8773 for libdir in $rpath $xrpath; do
8774 # This is the magic to use -rpath.
8775 case "$finalize_rpath " in
8776 *" $libdir "*) ;;
8777 *) func_append finalize_rpath " $libdir" ;;
8778 esac
8779 done
8780 fi
8781
8782 # Now hardcode the library paths
8783 rpath=
8784 hardcode_libdirs=
8785 for libdir in $compile_rpath $finalize_rpath; do
8786 if test -n "$hardcode_libdir_flag_spec"; then
8787 if test -n "$hardcode_libdir_separator"; then
8788 if test -z "$hardcode_libdirs"; then
8789 hardcode_libdirs="$libdir"
8790 else
8791 # Just accumulate the unique libdirs.
8792 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8793 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8794 ;;
8795 *)
8796 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
8797 ;;
8798 esac
8799 fi
8800 else
8801 eval flag=\"$hardcode_libdir_flag_spec\"
8802 func_append rpath " $flag"
8803 fi
8804 elif test -n "$runpath_var"; then
8805 case "$perm_rpath " in
8806 *" $libdir "*) ;;
8807 *) func_append perm_rpath " $libdir" ;;
8808 esac
8809 fi
8810 case $host in
8811 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
8812 testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
8813 case :$dllsearchpath: in
8814 *":$libdir:"*) ;;
8815 ::) dllsearchpath=$libdir;;
8816 *) func_append dllsearchpath ":$libdir";;
8817 esac
8818 case :$dllsearchpath: in
8819 *":$testbindir:"*) ;;
8820 ::) dllsearchpath=$testbindir;;
8821 *) func_append dllsearchpath ":$testbindir";;
8822 esac
8823 ;;
8824 esac
8825 done
8826 # Substitute the hardcoded libdirs into the rpath.
8827 if test -n "$hardcode_libdir_separator" &&
8828 test -n "$hardcode_libdirs"; then
8829 libdir="$hardcode_libdirs"
8830 eval rpath=\" $hardcode_libdir_flag_spec\"
8831 fi
8832 compile_rpath="$rpath"
8833
8834 rpath=
8835 hardcode_libdirs=
8836 for libdir in $finalize_rpath; do
8837 if test -n "$hardcode_libdir_flag_spec"; then
8838 if test -n "$hardcode_libdir_separator"; then
8839 if test -z "$hardcode_libdirs"; then
8840 hardcode_libdirs="$libdir"
8841 else
8842 # Just accumulate the unique libdirs.
8843 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
8844 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
8845 ;;
8846 *)
8847 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
8848 ;;
8849 esac
8850 fi
8851 else
8852 eval flag=\"$hardcode_libdir_flag_spec\"
8853 func_append rpath " $flag"
8854 fi
8855 elif test -n "$runpath_var"; then
8856 case "$finalize_perm_rpath " in
8857 *" $libdir "*) ;;
8858 *) func_append finalize_perm_rpath " $libdir" ;;
8859 esac
8860 fi
8861 done
8862 # Substitute the hardcoded libdirs into the rpath.
8863 if test -n "$hardcode_libdir_separator" &&
8864 test -n "$hardcode_libdirs"; then
8865 libdir="$hardcode_libdirs"
8866 eval rpath=\" $hardcode_libdir_flag_spec\"
8867 fi
8868 finalize_rpath="$rpath"
8869
8870 if test -n "$libobjs" && test "$build_old_libs" = yes; then
8871 # Transform all the library objects into standard objects.
8872 compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
8873 finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
8874 fi
8875
8876 func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
8877
8878 # template prelinking step
8879 if test -n "$prelink_cmds"; then
8880 func_execute_cmds "$prelink_cmds" 'exit $?'
8881 fi
8882
8883 wrappers_required=yes
8884 case $host in
8885 *cegcc* | *mingw32ce*)
8886 # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
8887 wrappers_required=no
8888 ;;
8889 *cygwin* | *mingw* )
8890 if test "$build_libtool_libs" != yes; then
8891 wrappers_required=no
8892 fi
8893 ;;
8894 *)
8895 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
8896 wrappers_required=no
8897 fi
8898 ;;
8899 esac
8900 if test "$wrappers_required" = no; then
8901 # Replace the output file specification.
8902 compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
8903 link_command="$compile_command$compile_rpath"
8904
8905 # We have no uninstalled library dependencies, so finalize right now.
8906 exit_status=0
8907 func_show_eval "$link_command" 'exit_status=$?'
8908
8909 if test -n "$postlink_cmds"; then
8910 func_to_tool_file "$output"
8911 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
8912 func_execute_cmds "$postlink_cmds" 'exit $?'
8913 fi
8914
8915 # Delete the generated files.
8916 if test -f "$output_objdir/${outputname}S.${objext}"; then
8917 func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
8918 fi
8919
8920 exit $exit_status
8921 fi
8922
8923 if test -n "$compile_shlibpath$finalize_shlibpath"; then
8924 compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
8925 fi
8926 if test -n "$finalize_shlibpath"; then
8927 finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
8928 fi
8929
8930 compile_var=
8931 finalize_var=
8932 if test -n "$runpath_var"; then
8933 if test -n "$perm_rpath"; then
8934 # We should set the runpath_var.
8935 rpath=
8936 for dir in $perm_rpath; do
8937 func_append rpath "$dir:"
8938 done
8939 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
8940 fi
8941 if test -n "$finalize_perm_rpath"; then
8942 # We should set the runpath_var.
8943 rpath=
8944 for dir in $finalize_perm_rpath; do
8945 func_append rpath "$dir:"
8946 done
8947 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
8948 fi
8949 fi
8950
8951 if test "$no_install" = yes; then
8952 # We don't need to create a wrapper script.
8953 link_command="$compile_var$compile_command$compile_rpath"
8954 # Replace the output file specification.
8955 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
8956 # Delete the old output file.
8957 $opt_dry_run || $RM $output
8958 # Link the executable and exit
8959 func_show_eval "$link_command" 'exit $?'
8960
8961 if test -n "$postlink_cmds"; then
8962 func_to_tool_file "$output"
8963 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
8964 func_execute_cmds "$postlink_cmds" 'exit $?'
8965 fi
8966
8967 exit $EXIT_SUCCESS
8968 fi
8969
8970 if test "$hardcode_action" = relink; then
8971 # Fast installation is not supported
8972 link_command="$compile_var$compile_command$compile_rpath"
8973 relink_command="$finalize_var$finalize_command$finalize_rpath"
8974
8975 func_warning "this platform does not like uninstalled shared libraries"
8976 func_warning "\`$output' will be relinked during installation"
8977 else
8978 if test "$fast_install" != no; then
8979 link_command="$finalize_var$compile_command$finalize_rpath"
8980 if test "$fast_install" = yes; then
8981 relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
8982 else
8983 # fast_install is set to needless
8984 relink_command=
8985 fi
8986 else
8987 link_command="$compile_var$compile_command$compile_rpath"
8988 relink_command="$finalize_var$finalize_command$finalize_rpath"
8989 fi
8990 fi
8991
8992 # Replace the output file specification.
8993 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
8994
8995 # Delete the old output files.
8996 $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
8997
8998 func_show_eval "$link_command" 'exit $?'
8999
9000 if test -n "$postlink_cmds"; then
9001 func_to_tool_file "$output_objdir/$outputname"
9002 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
9003 func_execute_cmds "$postlink_cmds" 'exit $?'
9004 fi
9005
9006 # Now create the wrapper script.
9007 func_verbose "creating $output"
9008
9009 # Quote the relink command for shipping.
9010 if test -n "$relink_command"; then
9011 # Preserve any variables that may affect compiler behavior
9012 for var in $variables_saved_for_relink; do
9013 if eval test -z \"\${$var+set}\"; then
9014 relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
9015 elif eval var_value=\$$var; test -z "$var_value"; then
9016 relink_command="$var=; export $var; $relink_command"
9017 else
9018 func_quote_for_eval "$var_value"
9019 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
9020 fi
9021 done
9022 relink_command="(cd `pwd`; $relink_command)"
9023 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
9024 fi
9025
9026 # Only actually do things if not in dry run mode.
9027 $opt_dry_run || {
9028 # win32 will think the script is a binary if it has
9029 # a .exe suffix, so we strip it off here.
9030 case $output in
9031 *.exe) func_stripname '' '.exe' "$output"
9032 output=$func_stripname_result ;;
9033 esac
9034 # test for cygwin because mv fails w/o .exe extensions
9035 case $host in
9036 *cygwin*)
9037 exeext=.exe
9038 func_stripname '' '.exe' "$outputname"
9039 outputname=$func_stripname_result ;;
9040 *) exeext= ;;
9041 esac
9042 case $host in
9043 *cygwin* | *mingw* )
9044 func_dirname_and_basename "$output" "" "."
9045 output_name=$func_basename_result
9046 output_path=$func_dirname_result
9047 cwrappersource="$output_path/$objdir/lt-$output_name.c"
9048 cwrapper="$output_path/$output_name.exe"
9049 $RM $cwrappersource $cwrapper
9050 trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
9051
9052 func_emit_cwrapperexe_src > $cwrappersource
9053
9054 # The wrapper executable is built using the $host compiler,
9055 # because it contains $host paths and files. If cross-
9056 # compiling, it, like the target executable, must be
9057 # executed on the $host or under an emulation environment.
9058 $opt_dry_run || {
9059 $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
9060 $STRIP $cwrapper
9061 }
9062
9063 # Now, create the wrapper script for func_source use:
9064 func_ltwrapper_scriptname $cwrapper
9065 $RM $func_ltwrapper_scriptname_result
9066 trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
9067 $opt_dry_run || {
9068 # note: this script will not be executed, so do not chmod.
9069 if test "x$build" = "x$host" ; then
9070 $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
9071 else
9072 func_emit_wrapper no > $func_ltwrapper_scriptname_result
9073 fi
9074 }
9075 ;;
9076 * )
9077 $RM $output
9078 trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
9079
9080 func_emit_wrapper no > $output
9081 chmod +x $output
9082 ;;
9083 esac
9084 }
9085 exit $EXIT_SUCCESS
9086 ;;
9087 esac
9088
9089 # See if we need to build an old-fashioned archive.
9090 for oldlib in $oldlibs; do
9091
9092 if test "$build_libtool_libs" = convenience; then
9093 oldobjs="$libobjs_save $symfileobj"
9094 addlibs="$convenience"
9095 build_libtool_libs=no
9096 else
9097 if test "$build_libtool_libs" = module; then
9098 oldobjs="$libobjs_save"
9099 build_libtool_libs=no
9100 else
9101 oldobjs="$old_deplibs $non_pic_objects"
9102 if test "$preload" = yes && test -f "$symfileobj"; then
9103 func_append oldobjs " $symfileobj"
9104 fi
9105 fi
9106 addlibs="$old_convenience"
9107 fi
9108
9109 if test -n "$addlibs"; then
9110 gentop="$output_objdir/${outputname}x"
9111 func_append generated " $gentop"
9112
9113 func_extract_archives $gentop $addlibs
9114 func_append oldobjs " $func_extract_archives_result"
9115 fi
9116
9117 # Do each command in the archive commands.
9118 if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
9119 cmds=$old_archive_from_new_cmds
9120 else
9121
9122 # Add any objects from preloaded convenience libraries
9123 if test -n "$dlprefiles"; then
9124 gentop="$output_objdir/${outputname}x"
9125 func_append generated " $gentop"
9126
9127 func_extract_archives $gentop $dlprefiles
9128 func_append oldobjs " $func_extract_archives_result"
9129 fi
9130
9131 # POSIX demands no paths to be encoded in archives. We have
9132 # to avoid creating archives with duplicate basenames if we
9133 # might have to extract them afterwards, e.g., when creating a
9134 # static archive out of a convenience library, or when linking
9135 # the entirety of a libtool archive into another (currently
9136 # not supported by libtool).
9137 if (for obj in $oldobjs
9138 do
9139 func_basename "$obj"
9140 $ECHO "$func_basename_result"
9141 done | sort | sort -uc >/dev/null 2>&1); then
9142 :
9143 else
9144 echo "copying selected object files to avoid basename conflicts..."
9145 gentop="$output_objdir/${outputname}x"
9146 func_append generated " $gentop"
9147 func_mkdir_p "$gentop"
9148 save_oldobjs=$oldobjs
9149 oldobjs=
9150 counter=1
9151 for obj in $save_oldobjs
9152 do
9153 func_basename "$obj"
9154 objbase="$func_basename_result"
9155 case " $oldobjs " in
9156 " ") oldobjs=$obj ;;
9157 *[\ /]"$objbase "*)
9158 while :; do
9159 # Make sure we don't pick an alternate name that also
9160 # overlaps.
9161 newobj=lt$counter-$objbase
9162 func_arith $counter + 1
9163 counter=$func_arith_result
9164 case " $oldobjs " in
9165 *[\ /]"$newobj "*) ;;
9166 *) if test ! -f "$gentop/$newobj"; then break; fi ;;
9167 esac
9168 done
9169 func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
9170 func_append oldobjs " $gentop/$newobj"
9171 ;;
9172 *) func_append oldobjs " $obj" ;;
9173 esac
9174 done
9175 fi
9176 func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
9177 tool_oldlib=$func_to_tool_file_result
9178 eval cmds=\"$old_archive_cmds\"
9179
9180 func_len " $cmds"
9181 len=$func_len_result
9182 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
9183 cmds=$old_archive_cmds
9184 elif test -n "$archiver_list_spec"; then
9185 func_verbose "using command file archive linking..."
9186 for obj in $oldobjs
9187 do
9188 func_to_tool_file "$obj"
9189 $ECHO "$func_to_tool_file_result"
9190 done > $output_objdir/$libname.libcmd
9191 func_to_tool_file "$output_objdir/$libname.libcmd"
9192 oldobjs=" $archiver_list_spec$func_to_tool_file_result"
9193 cmds=$old_archive_cmds
9194 else
9195 # the command line is too long to link in one step, link in parts
9196 func_verbose "using piecewise archive linking..."
9197 save_RANLIB=$RANLIB
9198 RANLIB=:
9199 objlist=
9200 concat_cmds=
9201 save_oldobjs=$oldobjs
9202 oldobjs=
9203 # Is there a better way of finding the last object in the list?
9204 for obj in $save_oldobjs
9205 do
9206 last_oldobj=$obj
9207 done
9208 eval test_cmds=\"$old_archive_cmds\"
9209 func_len " $test_cmds"
9210 len0=$func_len_result
9211 len=$len0
9212 for obj in $save_oldobjs
9213 do
9214 func_len " $obj"
9215 func_arith $len + $func_len_result
9216 len=$func_arith_result
9217 func_append objlist " $obj"
9218 if test "$len" -lt "$max_cmd_len"; then
9219 :
9220 else
9221 # the above command should be used before it gets too long
9222 oldobjs=$objlist
9223 if test "$obj" = "$last_oldobj" ; then
9224 RANLIB=$save_RANLIB
9225 fi
9226 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
9227 eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
9228 objlist=
9229 len=$len0
9230 fi
9231 done
9232 RANLIB=$save_RANLIB
9233 oldobjs=$objlist
9234 if test "X$oldobjs" = "X" ; then
9235 eval cmds=\"\$concat_cmds\"
9236 else
9237 eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
9238 fi
9239 fi
9240 fi
9241 func_execute_cmds "$cmds" 'exit $?'
9242 done
9243
9244 test -n "$generated" && \
9245 func_show_eval "${RM}r$generated"
9246
9247 # Now create the libtool archive.
9248 case $output in
9249 *.la)
9250 old_library=
9251 test "$build_old_libs" = yes && old_library="$libname.$libext"
9252 func_verbose "creating $output"
9253
9254 # Preserve any variables that may affect compiler behavior
9255 for var in $variables_saved_for_relink; do
9256 if eval test -z \"\${$var+set}\"; then
9257 relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
9258 elif eval var_value=\$$var; test -z "$var_value"; then
9259 relink_command="$var=; export $var; $relink_command"
9260 else
9261 func_quote_for_eval "$var_value"
9262 relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
9263 fi
9264 done
9265 # Quote the link command for shipping.
9266 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
9267 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
9268 if test "$hardcode_automatic" = yes ; then
9269 relink_command=
9270 fi
9271
9272 # Only create the output if not a dry run.
9273 $opt_dry_run || {
9274 for installed in no yes; do
9275 if test "$installed" = yes; then
9276 if test -z "$install_libdir"; then
9277 break
9278 fi
9279 output="$output_objdir/$outputname"i
9280 # Replace all uninstalled libtool libraries with the installed ones
9281 newdependency_libs=
9282 for deplib in $dependency_libs; do
9283 case $deplib in
9284 *.la)
9285 func_basename "$deplib"
9286 name="$func_basename_result"
9287 func_resolve_sysroot "$deplib"
9288 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
9289 test -z "$libdir" && \
9290 func_fatal_error "\`$deplib' is not a valid libtool archive"
9291 func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
9292 ;;
9293 -L*)
9294 func_stripname -L '' "$deplib"
9295 func_replace_sysroot "$func_stripname_result"
9296 func_append newdependency_libs " -L$func_replace_sysroot_result"
9297 ;;
9298 -R*)
9299 func_stripname -R '' "$deplib"
9300 func_replace_sysroot "$func_stripname_result"
9301 func_append newdependency_libs " -R$func_replace_sysroot_result"
9302 ;;
9303 *) func_append newdependency_libs " $deplib" ;;
9304 esac
9305 done
9306 dependency_libs="$newdependency_libs"
9307 newdlfiles=
9308
9309 for lib in $dlfiles; do
9310 case $lib in
9311 *.la)
9312 func_basename "$lib"
9313 name="$func_basename_result"
9314 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
9315 test -z "$libdir" && \
9316 func_fatal_error "\`$lib' is not a valid libtool archive"
9317 func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
9318 ;;
9319 *) func_append newdlfiles " $lib" ;;
9320 esac
9321 done
9322 dlfiles="$newdlfiles"
9323 newdlprefiles=
9324 for lib in $dlprefiles; do
9325 case $lib in
9326 *.la)
9327 # Only pass preopened files to the pseudo-archive (for
9328 # eventual linking with the app. that links it) if we
9329 # didn't already link the preopened objects directly into
9330 # the library:
9331 func_basename "$lib"
9332 name="$func_basename_result"
9333 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
9334 test -z "$libdir" && \
9335 func_fatal_error "\`$lib' is not a valid libtool archive"
9336 func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
9337 ;;
9338 esac
9339 done
9340 dlprefiles="$newdlprefiles"
9341 else
9342 newdlfiles=
9343 for lib in $dlfiles; do
9344 case $lib in
9345 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
9346 *) abs=`pwd`"/$lib" ;;
9347 esac
9348 func_append newdlfiles " $abs"
9349 done
9350 dlfiles="$newdlfiles"
9351 newdlprefiles=
9352 for lib in $dlprefiles; do
9353 case $lib in
9354 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
9355 *) abs=`pwd`"/$lib" ;;
9356 esac
9357 func_append newdlprefiles " $abs"
9358 done
9359 dlprefiles="$newdlprefiles"
9360 fi
9361 $RM $output
9362 # place dlname in correct position for cygwin
9363 # In fact, it would be nice if we could use this code for all target
9364 # systems that can't hard-code library paths into their executables
9365 # and that have no shared library path variable independent of PATH,
9366 # but it turns out we can't easily determine that from inspecting
9367 # libtool variables, so we have to hard-code the OSs to which it
9368 # applies here; at the moment, that means platforms that use the PE
9369 # object format with DLL files. See the long comment at the top of
9370 # tests/bindir.at for full details.
9371 tdlname=$dlname
9372 case $host,$output,$installed,$module,$dlname in
9373 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
9374 # If a -bindir argument was supplied, place the dll there.
9375 if test "x$bindir" != x ;
9376 then
9377 func_relative_path "$install_libdir" "$bindir"
9378 tdlname=$func_relative_path_result$dlname
9379 else
9380 # Otherwise fall back on heuristic.
9381 tdlname=../bin/$dlname
9382 fi
9383 ;;
9384 esac
9385 $ECHO > $output "\
9386 # $outputname - a libtool library file
9387 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
9388 #
9389 # Please DO NOT delete this file!
9390 # It is necessary for linking the library.
9391
9392 # The name that we can dlopen(3).
9393 dlname='$tdlname'
9394
9395 # Names of this library.
9396 library_names='$library_names'
9397
9398 # The name of the static archive.
9399 old_library='$old_library'
9400
9401 # Linker flags that can not go in dependency_libs.
9402 inherited_linker_flags='$new_inherited_linker_flags'
9403
9404 # Libraries that this one depends upon.
9405 dependency_libs='$dependency_libs'
9406
9407 # Names of additional weak libraries provided by this library
9408 weak_library_names='$weak_libs'
9409
9410 # Version information for $libname.
9411 current=$current
9412 age=$age
9413 revision=$revision
9414
9415 # Is this an already installed library?
9416 installed=$installed
9417
9418 # Should we warn about portability when linking against -modules?
9419 shouldnotlink=$module
9420
9421 # Files to dlopen/dlpreopen
9422 dlopen='$dlfiles'
9423 dlpreopen='$dlprefiles'
9424
9425 # Directory that this library needs to be installed in:
9426 libdir='$install_libdir'"
9427 if test "$installed" = no && test "$need_relink" = yes; then
9428 $ECHO >> $output "\
9429 relink_command=\"$relink_command\""
9430 fi
9431 done
9432 }
9433
9434 # Do a symbolic link so that the libtool archive can be found in
9435 # LD_LIBRARY_PATH before the program is installed.
9436 func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
9437 ;;
9438 esac
9439 exit $EXIT_SUCCESS
9440 }
9441
9442 { test "$opt_mode" = link || test "$opt_mode" = relink; } &&
9443 func_mode_link ${1+"$@"}
9444
9445
9446 # func_mode_uninstall arg...
9447 func_mode_uninstall ()
9448 {
9449 $opt_debug
9450 RM="$nonopt"
9451 files=
9452 rmforce=
9453 exit_status=0
9454
9455 # This variable tells wrapper scripts just to set variables rather
9456 # than running their programs.
9457 libtool_install_magic="$magic"
9458
9459 for arg
9460 do
9461 case $arg in
9462 -f) func_append RM " $arg"; rmforce=yes ;;
9463 -*) func_append RM " $arg" ;;
9464 *) func_append files " $arg" ;;
9465 esac
9466 done
9467
9468 test -z "$RM" && \
9469 func_fatal_help "you must specify an RM program"
9470
9471 rmdirs=
9472
9473 for file in $files; do
9474 func_dirname "$file" "" "."
9475 dir="$func_dirname_result"
9476 if test "X$dir" = X.; then
9477 odir="$objdir"
9478 else
9479 odir="$dir/$objdir"
9480 fi
9481 func_basename "$file"
9482 name="$func_basename_result"
9483 test "$opt_mode" = uninstall && odir="$dir"
9484
9485 # Remember odir for removal later, being careful to avoid duplicates
9486 if test "$opt_mode" = clean; then
9487 case " $rmdirs " in
9488 *" $odir "*) ;;
9489 *) func_append rmdirs " $odir" ;;
9490 esac
9491 fi
9492
9493 # Don't error if the file doesn't exist and rm -f was used.
9494 if { test -L "$file"; } >/dev/null 2>&1 ||
9495 { test -h "$file"; } >/dev/null 2>&1 ||
9496 test -f "$file"; then
9497 :
9498 elif test -d "$file"; then
9499 exit_status=1
9500 continue
9501 elif test "$rmforce" = yes; then
9502 continue
9503 fi
9504
9505 rmfiles="$file"
9506
9507 case $name in
9508 *.la)
9509 # Possibly a libtool archive, so verify it.
9510 if func_lalib_p "$file"; then
9511 func_source $dir/$name
9512
9513 # Delete the libtool libraries and symlinks.
9514 for n in $library_names; do
9515 func_append rmfiles " $odir/$n"
9516 done
9517 test -n "$old_library" && func_append rmfiles " $odir/$old_library"
9518
9519 case "$opt_mode" in
9520 clean)
9521 case " $library_names " in
9522 *" $dlname "*) ;;
9523 *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
9524 esac
9525 test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
9526 ;;
9527 uninstall)
9528 if test -n "$library_names"; then
9529 # Do each command in the postuninstall commands.
9530 func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
9531 fi
9532
9533 if test -n "$old_library"; then
9534 # Do each command in the old_postuninstall commands.
9535 func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
9536 fi
9537 # FIXME: should reinstall the best remaining shared library.
9538 ;;
9539 esac
9540 fi
9541 ;;
9542
9543 *.lo)
9544 # Possibly a libtool object, so verify it.
9545 if func_lalib_p "$file"; then
9546
9547 # Read the .lo file
9548 func_source $dir/$name
9549
9550 # Add PIC object to the list of files to remove.
9551 if test -n "$pic_object" &&
9552 test "$pic_object" != none; then
9553 func_append rmfiles " $dir/$pic_object"
9554 fi
9555
9556 # Add non-PIC object to the list of files to remove.
9557 if test -n "$non_pic_object" &&
9558 test "$non_pic_object" != none; then
9559 func_append rmfiles " $dir/$non_pic_object"
9560 fi
9561 fi
9562 ;;
9563
9564 *)
9565 if test "$opt_mode" = clean ; then
9566 noexename=$name
9567 case $file in
9568 *.exe)
9569 func_stripname '' '.exe' "$file"
9570 file=$func_stripname_result
9571 func_stripname '' '.exe' "$name"
9572 noexename=$func_stripname_result
9573 # $file with .exe has already been added to rmfiles,
9574 # add $file without .exe
9575 func_append rmfiles " $file"
9576 ;;
9577 esac
9578 # Do a test to see if this is a libtool program.
9579 if func_ltwrapper_p "$file"; then
9580 if func_ltwrapper_executable_p "$file"; then
9581 func_ltwrapper_scriptname "$file"
9582 relink_command=
9583 func_source $func_ltwrapper_scriptname_result
9584 func_append rmfiles " $func_ltwrapper_scriptname_result"
9585 else
9586 relink_command=
9587 func_source $dir/$noexename
9588 fi
9589
9590 # note $name still contains .exe if it was in $file originally
9591 # as does the version of $file that was added into $rmfiles
9592 func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
9593 if test "$fast_install" = yes && test -n "$relink_command"; then
9594 func_append rmfiles " $odir/lt-$name"
9595 fi
9596 if test "X$noexename" != "X$name" ; then
9597 func_append rmfiles " $odir/lt-${noexename}.c"
9598 fi
9599 fi
9600 fi
9601 ;;
9602 esac
9603 func_show_eval "$RM $rmfiles" 'exit_status=1'
9604 done
9605
9606 # Try to remove the ${objdir}s in the directories where we deleted files
9607 for dir in $rmdirs; do
9608 if test -d "$dir"; then
9609 func_show_eval "rmdir $dir >/dev/null 2>&1"
9610 fi
9611 done
9612
9613 exit $exit_status
9614 }
9615
9616 { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
9617 func_mode_uninstall ${1+"$@"}
9618
9619 test -z "$opt_mode" && {
9620 help="$generic_help"
9621 func_fatal_help "you must specify a MODE"
9622 }
9623
9624 test -z "$exec_cmd" && \
9625 func_fatal_help "invalid operation mode \`$opt_mode'"
9626
9627 if test -n "$exec_cmd"; then
9628 eval exec "$exec_cmd"
9629 exit $EXIT_FAILURE
9630 fi
9631
9632 exit $exit_status
9633
9634
9635 # The TAGs below are defined such that we never get into a situation
9636 # in which we disable both kinds of libraries. Given conflicting
9637 # choices, we go for a static library, that is the most portable,
9638 # since we can't tell whether shared libraries were disabled because
9639 # the user asked for that or because the platform doesn't support
9640 # them. This is particularly important on AIX, because we don't
9641 # support having both static and shared libraries enabled at the same
9642 # time on that platform, so we default to a shared-only configuration.
9643 # If a disable-shared tag is given, we'll fallback to a static-only
9644 # configuration. But we'll never go from static-only to shared-only.
9645
9646 # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
9647 build_libtool_libs=no
9648 build_old_libs=yes
9649 # ### END LIBTOOL TAG CONFIG: disable-shared
9650
9651 # ### BEGIN LIBTOOL TAG CONFIG: disable-static
9652 build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
9653 # ### END LIBTOOL TAG CONFIG: disable-static
9654
9655 # Local Variables:
9656 # mode:shell-script
9657 # sh-indentation:2
9658 # End:
9659 # vi:sw=2
9660
+0
-215
missing less more
0 #! /bin/sh
1 # Common wrapper for a few potentially missing GNU programs.
2
3 scriptversion=2013-10-28.13; # UTC
4
5 # Copyright (C) 1996-2013 Free Software Foundation, Inc.
6 # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
7
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2, or (at your option)
11 # any later version.
12
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
17
18 # You should have received a copy of the GNU General Public License
19 # along with this program. If not, see <http://www.gnu.org/licenses/>.
20
21 # As a special exception to the GNU General Public License, if you
22 # distribute this file as part of a program that contains a
23 # configuration script generated by Autoconf, you may include it under
24 # the same distribution terms that you use for the rest of that program.
25
26 if test $# -eq 0; then
27 echo 1>&2 "Try '$0 --help' for more information"
28 exit 1
29 fi
30
31 case $1 in
32
33 --is-lightweight)
34 # Used by our autoconf macros to check whether the available missing
35 # script is modern enough.
36 exit 0
37 ;;
38
39 --run)
40 # Back-compat with the calling convention used by older automake.
41 shift
42 ;;
43
44 -h|--h|--he|--hel|--help)
45 echo "\
46 $0 [OPTION]... PROGRAM [ARGUMENT]...
47
48 Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
49 to PROGRAM being missing or too old.
50
51 Options:
52 -h, --help display this help and exit
53 -v, --version output version information and exit
54
55 Supported PROGRAM values:
56 aclocal autoconf autoheader autom4te automake makeinfo
57 bison yacc flex lex help2man
58
59 Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
60 'g' are ignored when checking the name.
61
62 Send bug reports to <bug-automake@gnu.org>."
63 exit $?
64 ;;
65
66 -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
67 echo "missing $scriptversion (GNU Automake)"
68 exit $?
69 ;;
70
71 -*)
72 echo 1>&2 "$0: unknown '$1' option"
73 echo 1>&2 "Try '$0 --help' for more information"
74 exit 1
75 ;;
76
77 esac
78
79 # Run the given program, remember its exit status.
80 "$@"; st=$?
81
82 # If it succeeded, we are done.
83 test $st -eq 0 && exit 0
84
85 # Also exit now if we it failed (or wasn't found), and '--version' was
86 # passed; such an option is passed most likely to detect whether the
87 # program is present and works.
88 case $2 in --version|--help) exit $st;; esac
89
90 # Exit code 63 means version mismatch. This often happens when the user
91 # tries to use an ancient version of a tool on a file that requires a
92 # minimum version.
93 if test $st -eq 63; then
94 msg="probably too old"
95 elif test $st -eq 127; then
96 # Program was missing.
97 msg="missing on your system"
98 else
99 # Program was found and executed, but failed. Give up.
100 exit $st
101 fi
102
103 perl_URL=http://www.perl.org/
104 flex_URL=http://flex.sourceforge.net/
105 gnu_software_URL=http://www.gnu.org/software
106
107 program_details ()
108 {
109 case $1 in
110 aclocal|automake)
111 echo "The '$1' program is part of the GNU Automake package:"
112 echo "<$gnu_software_URL/automake>"
113 echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
114 echo "<$gnu_software_URL/autoconf>"
115 echo "<$gnu_software_URL/m4/>"
116 echo "<$perl_URL>"
117 ;;
118 autoconf|autom4te|autoheader)
119 echo "The '$1' program is part of the GNU Autoconf package:"
120 echo "<$gnu_software_URL/autoconf/>"
121 echo "It also requires GNU m4 and Perl in order to run:"
122 echo "<$gnu_software_URL/m4/>"
123 echo "<$perl_URL>"
124 ;;
125 esac
126 }
127
128 give_advice ()
129 {
130 # Normalize program name to check for.
131 normalized_program=`echo "$1" | sed '
132 s/^gnu-//; t
133 s/^gnu//; t
134 s/^g//; t'`
135
136 printf '%s\n' "'$1' is $msg."
137
138 configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
139 case $normalized_program in
140 autoconf*)
141 echo "You should only need it if you modified 'configure.ac',"
142 echo "or m4 files included by it."
143 program_details 'autoconf'
144 ;;
145 autoheader*)
146 echo "You should only need it if you modified 'acconfig.h' or"
147 echo "$configure_deps."
148 program_details 'autoheader'
149 ;;
150 automake*)
151 echo "You should only need it if you modified 'Makefile.am' or"
152 echo "$configure_deps."
153 program_details 'automake'
154 ;;
155 aclocal*)
156 echo "You should only need it if you modified 'acinclude.m4' or"
157 echo "$configure_deps."
158 program_details 'aclocal'
159 ;;
160 autom4te*)
161 echo "You might have modified some maintainer files that require"
162 echo "the 'autom4te' program to be rebuilt."
163 program_details 'autom4te'
164 ;;
165 bison*|yacc*)
166 echo "You should only need it if you modified a '.y' file."
167 echo "You may want to install the GNU Bison package:"
168 echo "<$gnu_software_URL/bison/>"
169 ;;
170 lex*|flex*)
171 echo "You should only need it if you modified a '.l' file."
172 echo "You may want to install the Fast Lexical Analyzer package:"
173 echo "<$flex_URL>"
174 ;;
175 help2man*)
176 echo "You should only need it if you modified a dependency" \
177 "of a man page."
178 echo "You may want to install the GNU Help2man package:"
179 echo "<$gnu_software_URL/help2man/>"
180 ;;
181 makeinfo*)
182 echo "You should only need it if you modified a '.texi' file, or"
183 echo "any other file indirectly affecting the aspect of the manual."
184 echo "You might want to install the Texinfo package:"
185 echo "<$gnu_software_URL/texinfo/>"
186 echo "The spurious makeinfo call might also be the consequence of"
187 echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
188 echo "want to install GNU make:"
189 echo "<$gnu_software_URL/make/>"
190 ;;
191 *)
192 echo "You might have modified some files without having the proper"
193 echo "tools for further handling them. Check the 'README' file, it"
194 echo "often tells you about the needed prerequisites for installing"
195 echo "this package. You may also peek at any GNU archive site, in"
196 echo "case some other package contains this missing '$1' program."
197 ;;
198 esac
199 }
200
201 give_advice "$1" | sed -e '1s/^/WARNING: /' \
202 -e '2,$s/^/ /' >&2
203
204 # Propagate the correct exit status (expected to be 127 for a program
205 # not found, 63 for a program that failed due to version mismatch).
206 exit $st
207
208 # Local variables:
209 # eval: (add-hook 'write-file-hooks 'time-stamp)
210 # time-stamp-start: "scriptversion="
211 # time-stamp-format: "%:y-%02m-%02d.%02H"
212 # time-stamp-time-zone: "UTC"
213 # time-stamp-end: "; # UTC"
214 # End:
+0
-170
py-compile less more
0 #!/bin/sh
1 # py-compile - Compile a Python program
2
3 scriptversion=2011-06-08.12; # UTC
4
5 # Copyright (C) 2000-2013 Free Software Foundation, Inc.
6
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2, or (at your option)
10 # any later version.
11
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
16
17 # You should have received a copy of the GNU General Public License
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
19
20 # As a special exception to the GNU General Public License, if you
21 # distribute this file as part of a program that contains a
22 # configuration script generated by Autoconf, you may include it under
23 # the same distribution terms that you use for the rest of that program.
24
25 # This file is maintained in Automake, please report
26 # bugs to <bug-automake@gnu.org> or send patches to
27 # <automake-patches@gnu.org>.
28
29 if [ -z "$PYTHON" ]; then
30 PYTHON=python
31 fi
32
33 me=py-compile
34
35 usage_error ()
36 {
37 echo "$me: $*" >&2
38 echo "Try '$me --help' for more information." >&2
39 exit 1
40 }
41
42 basedir=
43 destdir=
44 while test $# -ne 0; do
45 case "$1" in
46 --basedir)
47 if test $# -lt 2; then
48 usage_error "option '--basedir' requires an argument"
49 else
50 basedir=$2
51 fi
52 shift
53 ;;
54 --destdir)
55 if test $# -lt 2; then
56 usage_error "option '--destdir' requires an argument"
57 else
58 destdir=$2
59 fi
60 shift
61 ;;
62 -h|--help)
63 cat <<\EOF
64 Usage: py-compile [--help] [--version] [--basedir DIR] [--destdir DIR] FILES..."
65
66 Byte compile some python scripts FILES. Use --destdir to specify any
67 leading directory path to the FILES that you don't want to include in the
68 byte compiled file. Specify --basedir for any additional path information you
69 do want to be shown in the byte compiled file.
70
71 Example:
72 py-compile --destdir /tmp/pkg-root --basedir /usr/share/test test.py test2.py
73
74 Report bugs to <bug-automake@gnu.org>.
75 EOF
76 exit $?
77 ;;
78 -v|--version)
79 echo "$me $scriptversion"
80 exit $?
81 ;;
82 --)
83 shift
84 break
85 ;;
86 -*)
87 usage_error "unrecognized option '$1'"
88 ;;
89 *)
90 break
91 ;;
92 esac
93 shift
94 done
95
96 files=$*
97 if test -z "$files"; then
98 usage_error "no files given"
99 fi
100
101 # if basedir was given, then it should be prepended to filenames before
102 # byte compilation.
103 if [ -z "$basedir" ]; then
104 pathtrans="path = file"
105 else
106 pathtrans="path = os.path.join('$basedir', file)"
107 fi
108
109 # if destdir was given, then it needs to be prepended to the filename to
110 # byte compile but not go into the compiled file.
111 if [ -z "$destdir" ]; then
112 filetrans="filepath = path"
113 else
114 filetrans="filepath = os.path.normpath('$destdir' + os.sep + path)"
115 fi
116
117 $PYTHON -c "
118 import sys, os, py_compile, imp
119
120 files = '''$files'''
121
122 sys.stdout.write('Byte-compiling python modules...\n')
123 for file in files.split():
124 $pathtrans
125 $filetrans
126 if not os.path.exists(filepath) or not (len(filepath) >= 3
127 and filepath[-3:] == '.py'):
128 continue
129 sys.stdout.write(file)
130 sys.stdout.flush()
131 if hasattr(imp, 'get_tag'):
132 py_compile.compile(filepath, imp.cache_from_source(filepath), path)
133 else:
134 py_compile.compile(filepath, filepath + 'c', path)
135 sys.stdout.write('\n')" || exit $?
136
137 # this will fail for python < 1.5, but that doesn't matter ...
138 $PYTHON -O -c "
139 import sys, os, py_compile, imp
140
141 # pypy does not use .pyo optimization
142 if hasattr(sys, 'pypy_translation_info'):
143 sys.exit(0)
144
145 files = '''$files'''
146 sys.stdout.write('Byte-compiling python modules (optimized versions) ...\n')
147 for file in files.split():
148 $pathtrans
149 $filetrans
150 if not os.path.exists(filepath) or not (len(filepath) >= 3
151 and filepath[-3:] == '.py'):
152 continue
153 sys.stdout.write(file)
154 sys.stdout.flush()
155 if hasattr(imp, 'get_tag'):
156 py_compile.compile(filepath, imp.cache_from_source(filepath, False), path)
157 else:
158 py_compile.compile(filepath, filepath + 'o', path)
159 sys.stdout.write('\n')" 2>/dev/null || :
160
161 # Local Variables:
162 # mode: shell-script
163 # sh-indentation: 2
164 # eval: (add-hook 'write-file-hooks 'time-stamp)
165 # time-stamp-start: "scriptversion="
166 # time-stamp-format: "%:y-%02m-%02d.%02H"
167 # time-stamp-time-zone: "UTC"
168 # time-stamp-end: "; # UTC"
169 # End:
+0
-139
test-driver less more
0 #! /bin/sh
1 # test-driver - basic testsuite driver script.
2
3 scriptversion=2013-07-13.22; # UTC
4
5 # Copyright (C) 2011-2013 Free Software Foundation, Inc.
6 #
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2, or (at your option)
10 # any later version.
11 #
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
19
20 # As a special exception to the GNU General Public License, if you
21 # distribute this file as part of a program that contains a
22 # configuration script generated by Autoconf, you may include it under
23 # the same distribution terms that you use for the rest of that program.
24
25 # This file is maintained in Automake, please report
26 # bugs to <bug-automake@gnu.org> or send patches to
27 # <automake-patches@gnu.org>.
28
29 # Make unconditional expansion of undefined variables an error. This
30 # helps a lot in preventing typo-related bugs.
31 set -u
32
33 usage_error ()
34 {
35 echo "$0: $*" >&2
36 print_usage >&2
37 exit 2
38 }
39
40 print_usage ()
41 {
42 cat <<END
43 Usage:
44 test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
45 [--expect-failure={yes|no}] [--color-tests={yes|no}]
46 [--enable-hard-errors={yes|no}] [--]
47 TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
48 The '--test-name', '--log-file' and '--trs-file' options are mandatory.
49 END
50 }
51
52 test_name= # Used for reporting.
53 log_file= # Where to save the output of the test script.
54 trs_file= # Where to save the metadata of the test run.
55 expect_failure=no
56 color_tests=no
57 enable_hard_errors=yes
58 while test $# -gt 0; do
59 case $1 in
60 --help) print_usage; exit $?;;
61 --version) echo "test-driver $scriptversion"; exit $?;;
62 --test-name) test_name=$2; shift;;
63 --log-file) log_file=$2; shift;;
64 --trs-file) trs_file=$2; shift;;
65 --color-tests) color_tests=$2; shift;;
66 --expect-failure) expect_failure=$2; shift;;
67 --enable-hard-errors) enable_hard_errors=$2; shift;;
68 --) shift; break;;
69 -*) usage_error "invalid option: '$1'";;
70 *) break;;
71 esac
72 shift
73 done
74
75 missing_opts=
76 test x"$test_name" = x && missing_opts="$missing_opts --test-name"
77 test x"$log_file" = x && missing_opts="$missing_opts --log-file"
78 test x"$trs_file" = x && missing_opts="$missing_opts --trs-file"
79 if test x"$missing_opts" != x; then
80 usage_error "the following mandatory options are missing:$missing_opts"
81 fi
82
83 if test $# -eq 0; then
84 usage_error "missing argument"
85 fi
86
87 if test $color_tests = yes; then
88 # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
89 red='' # Red.
90 grn='' # Green.
91 lgn='' # Light green.
92 blu='' # Blue.
93 mgn='' # Magenta.
94 std='' # No color.
95 else
96 red= grn= lgn= blu= mgn= std=
97 fi
98
99 do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
100 trap "st=129; $do_exit" 1
101 trap "st=130; $do_exit" 2
102 trap "st=141; $do_exit" 13
103 trap "st=143; $do_exit" 15
104
105 # Test script is run here.
106 "$@" >$log_file 2>&1
107 estatus=$?
108 if test $enable_hard_errors = no && test $estatus -eq 99; then
109 estatus=1
110 fi
111
112 case $estatus:$expect_failure in
113 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
114 0:*) col=$grn res=PASS recheck=no gcopy=no;;
115 77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
116 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
117 *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
118 *:*) col=$red res=FAIL recheck=yes gcopy=yes;;
119 esac
120
121 # Report outcome to console.
122 echo "${col}${res}${std}: $test_name"
123
124 # Register the test result, and other relevant metadata.
125 echo ":test-result: $res" > $trs_file
126 echo ":global-test-result: $res" >> $trs_file
127 echo ":recheck: $recheck" >> $trs_file
128 echo ":copy-in-global-log: $gcopy" >> $trs_file
129
130 # Local Variables:
131 # mode: shell-script
132 # sh-indentation: 2
133 # eval: (add-hook 'write-file-hooks 'time-stamp)
134 # time-stamp-start: "scriptversion="
135 # time-stamp-format: "%:y-%02m-%02d.%02H"
136 # time-stamp-time-zone: "UTC"
137 # time-stamp-end: "; # UTC"
138 # End: