diff --git a/LICENSE b/LICENSE index dec82e47..1c950359 100644 --- a/LICENSE +++ b/LICENSE @@ -1,11 +1,11 @@ - MLD2P4 version 1.0.1 + MLD2P4 version 1.1 MultiLevel Domain Decomposition Parallel Preconditioners Package based on PSBLAS (Parallel Sparse BLAS version 2.3.1) - (C) Copyright 2008 + (C) Copyright 2008,2009 - Salvatore Filippone University of Rome Tor Vergata + Salvatore Filippone University of Rome Tor Vergata Alfredo Buttari University of Rome Tor Vergata Pasqua D'Ambra ICAR-CNR, Naples Daniela di Serafino Second University of Naples diff --git a/README b/README index e23b55a2..cf525b30 100644 --- a/README +++ b/README @@ -1,8 +1,8 @@ -This directory contains the MLD2P4 set of preconditioners, version 1.0.1 +This directory contains the MLD2P4 set of preconditioners, version 1.1 WHAT'S NEW -In version 1.0.1: +In version 1.1: - The MLD_SIZEOF() function has been redefined to be INTEGER(8), so as to be able to measure large data sets. - The internals of the multilevel preconditioner have been repackaged diff --git a/configure b/configure index 7cc08ca2..ab14a758 100755 --- a/configure +++ b/configure @@ -1,11 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for MLD2P4 1.0.1. +# Generated by GNU Autoconf 2.63 for MLD2P4 1.1. # # Report bugs to . # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## @@ -17,7 +17,7 @@ DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST @@ -39,17 +39,45 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' else - PATH_SEPARATOR=: + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' fi - rm -f conf$$.sh + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } fi # Support unset when possible. @@ -65,8 +93,6 @@ fi # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) -as_nl=' -' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. @@ -89,7 +115,7 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi @@ -102,17 +128,10 @@ PS2='> ' PS4='+ ' # NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && @@ -134,7 +153,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | +$as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -160,7 +179,7 @@ else as_have_required=no fi - if test $as_have_required = yes && (eval ": + if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } @@ -242,7 +261,7 @@ IFS=$as_save_IFS if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST @@ -263,7 +282,7 @@ _ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST @@ -343,10 +362,10 @@ fi if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi @@ -415,9 +434,10 @@ fi test \$exitcode = 0") || { echo No shell found that supports shell functions. - echo Please tell autoconf@gnu.org about your system, - echo including any error possibly output before this - echo message + echo Please tell bug-autoconf@gnu.org about your system, + echo including any error possibly output before this message. + echo This can help us improve future autoconf versions. + echo Configuration will now proceed without shell functions. } @@ -453,7 +473,7 @@ test \$exitcode = 0") || { s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems @@ -481,7 +501,6 @@ case `echo -n x` in *) ECHO_N='-n';; esac - if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -494,19 +513,22 @@ if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir - mkdir conf$$.dir -fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln + fi else as_ln_s='cp -p' fi @@ -531,10 +553,10 @@ else as_test_x=' eval sh -c '\'' if test -d "$1"; then - test -d "$1/."; + test -d "$1/."; else case $1 in - -*)set "./$1";; + -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi @@ -574,8 +596,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='MLD2P4' PACKAGE_TARNAME='mld2p4' -PACKAGE_VERSION='1.0.1' -PACKAGE_STRING='MLD2P4 1.0.1' +PACKAGE_VERSION='1.1' +PACKAGE_STRING='MLD2P4 1.1' PACKAGE_BUGREPORT='bugreport@mld2p4.it' ac_unique_file="mlprec/mld_prec_type.f90" @@ -615,77 +637,93 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL -PATH_SEPARATOR -PACKAGE_NAME -PACKAGE_TARNAME -PACKAGE_VERSION -PACKAGE_STRING -PACKAGE_BUGREPORT -exec_prefix -prefix -program_transform_name -bindir -sbindir -libexecdir -datarootdir -datadir -sysconfdir -sharedstatedir -localstatedir -includedir -oldincludedir -docdir -infodir -htmldir -dvidir -pdfdir -psdir -libdir -localedir -mandir -DEFS -ECHO_C -ECHO_N -ECHO_T -LIBS -build_alias -host_alias -target_alias -INSTALL_PROGRAM -INSTALL_SCRIPT -INSTALL_DATA -FC -FCFLAGS -LDFLAGS -ac_ct_FC -EXEEXT -OBJEXT -CC -CFLAGS -CPPFLAGS -ac_ct_CC -CPP -GREP -EGREP -MPICC -MPILIBS -PSBLAS_DIR -INSTALL -INSTALL_DIR -INSTALL_LIBDIR -INSTALL_INCLUDEDIR -INSTALL_DOCSDIR -SLU_FLAGS -SLU_LIBS -UMF_FLAGS -UMF_LIBS -SLUDIST_FLAGS -SLUDIST_LIBS -FDEFINES +ac_subst_vars='LTLIBOBJS LIBOBJS -LTLIBOBJS' +FDEFINES +SLUDIST_LIBS +SLUDIST_FLAGS +UMF_LIBS +UMF_FLAGS +SLU_LIBS +SLU_FLAGS +INSTALL_DOCSDIR +INSTALL_INCLUDEDIR +INSTALL_LIBDIR +INSTALL_DIR +INSTALL +PSBLAS_DIR +MPILIBS +MPICC +EGREP +GREP +CPP +ac_ct_CC +CPPFLAGS +CFLAGS +CC +OBJEXT +EXEEXT +ac_ct_FC +LDFLAGS +FCFLAGS +FC +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' ac_subst_files='' +ac_user_opts=' +enable_option_checking +with_psblas +with_libs +with_clibs +with_flibs +with_library_path +with_include_path +with_module_path +with_umfpack +with_umfpackdir +with_superlu +with_superludir +with_superludist +with_superludistdir +' ac_precious_vars='build_alias host_alias target_alias @@ -703,6 +741,8 @@ MPICC' # Initialize some variables set by options. ac_init_help= ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null @@ -801,13 +841,21 @@ do datarootdir=$ac_optarg ;; -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` - eval enable_$ac_feature=no ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; @@ -820,13 +868,21 @@ do dvidir=$ac_optarg ;; -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` - eval enable_$ac_feature=\$ac_optarg ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ @@ -1017,22 +1073,38 @@ do ac_init_version=: ;; -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/[-.]/_/g'` - eval with_$ac_package=\$ac_optarg ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/[-.]/_/g'` - eval with_$ac_package=no ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. @@ -1052,7 +1124,7 @@ do | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) { echo "$as_me: error: unrecognized option: $ac_option + -*) { $as_echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; @@ -1061,16 +1133,16 @@ Try \`$0 --help' for more information." >&2 ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; @@ -1079,22 +1151,38 @@ done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 + { $as_echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi -# Be sure to have absolute directory names. +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 + { (exit 1); exit 1; }; } ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done @@ -1109,7 +1197,7 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes @@ -1125,10 +1213,10 @@ test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { echo "$as_me: error: Working directory cannot be determined" >&2 + { $as_echo "$as_me: error: working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { echo "$as_me: error: pwd does not report name of working directory" >&2 + { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } @@ -1136,12 +1224,12 @@ test "X$ac_ls_di" = "X$ac_pwd_ls_di" || if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$0" || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X"$0" | + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1168,12 +1256,12 @@ else fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 + cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. @@ -1200,7 +1288,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures MLD2P4 1.0.1 to adapt to many kinds of systems. +\`configure' configures MLD2P4 1.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1222,9 +1310,9 @@ Configuration: Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] + [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] + [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify @@ -1234,25 +1322,25 @@ for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/mld2p4] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/mld2p4] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF @@ -1261,7 +1349,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of MLD2P4 1.0.1:";; + short | recursive ) echo "Configuration of MLD2P4 1.1:";; esac cat <<\_ACEOF @@ -1322,15 +1410,17 @@ fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -1366,7 +1456,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix echo && $SHELL "$ac_srcdir/configure" --help=recursive else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done @@ -1375,11 +1465,11 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -MLD2P4 configure 1.0.1 -generated by GNU Autoconf 2.61 +MLD2P4 configure 1.1 +generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1389,8 +1479,8 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by MLD2P4 $as_me 1.0.1, which was -generated by GNU Autoconf 2.61. Invocation command line was +It was created by MLD2P4 $as_me 1.1, which was +generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ @@ -1426,7 +1516,7 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" + $as_echo "PATH: $as_dir" done IFS=$as_save_IFS @@ -1461,7 +1551,7 @@ do | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; @@ -1513,11 +1603,12 @@ _ASBOX case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac @@ -1547,9 +1638,9 @@ _ASBOX do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - echo "$ac_var='\''$ac_val'\''" + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo @@ -1564,9 +1655,9 @@ _ASBOX do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - echo "$ac_var='\''$ac_val'\''" + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi @@ -1582,8 +1673,8 @@ _ASBOX echo fi test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && @@ -1625,21 +1716,24 @@ _ACEOF # Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - set x "$CONFIG_SITE" + ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then - set x "$prefix/share/config.site" "$prefix/etc/config.site" + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site else - set x "$ac_default_prefix/share/config.site" \ - "$ac_default_prefix/etc/config.site" + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site fi -shift -for ac_site_file +for ac_site_file in "$ac_site_file1" "$ac_site_file2" do + test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} + { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi @@ -1649,16 +1743,16 @@ if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} + { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} + { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi @@ -1672,29 +1766,38 @@ for ac_var in $ac_precious_vars; do eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in - *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in @@ -1704,10 +1807,12 @@ echo "$as_me: current value: $ac_new_val" >&2;} fi done if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi @@ -1745,13 +1850,13 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # VERSION is the file containing the PSBLAS version code # FIXME -mld2p4_cv_version="`cat VERSION`" +mld2p4_cv_version="1.1" # A sample source file # Our custom M4 macros are in the 'config' directory -{ echo "$as_me:$LINENO: +{ $as_echo "$as_me:$LINENO: -------------------------------------------------------------------------------- Welcome to the $PACKAGE_NAME $mld2p4_cv_version configure Script. @@ -1762,7 +1867,7 @@ mld2p4_cv_version="`cat VERSION`" See ./configure --help=short fore more info. -------------------------------------------------------------------------------- " >&5 -echo "$as_me: +$as_echo "$as_me: -------------------------------------------------------------------------------- Welcome to the $PACKAGE_NAME $mld2p4_cv_version configure Script. @@ -1790,28 +1895,28 @@ fi PSBLAS_DIR="$pac_cv_psblas_dir"; -{ echo "$as_me:$LINENO: checking for PSBLAS build dir" >&5 -echo $ECHO_N "checking for PSBLAS build dir... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for PSBLAS build dir" >&5 +$as_echo_n "checking for PSBLAS build dir... " >&6; } case $PSBLAS_DIR in /*) ;; - *) { { echo "$as_me:$LINENO: error: The PSBLAS build dir must be an absolute pathname + *) { { $as_echo "$as_me:$LINENO: error: The PSBLAS build dir must be an absolute pathname which must be specified --with-psblas=/path/to/psblas" >&5 -echo "$as_me: error: The PSBLAS build dir must be an absolute pathname +$as_echo "$as_me: error: The PSBLAS build dir must be an absolute pathname which must be specified --with-psblas=/path/to/psblas" >&2;} { (exit 1); exit 1; }; } esac if test ! -d "$PSBLAS_DIR" ; then - { { echo "$as_me:$LINENO: error: Could not find PSBLAS build dir $PSBLAS_DIR!" >&5 -echo "$as_me: error: Could not find PSBLAS build dir $PSBLAS_DIR!" >&2;} + { { $as_echo "$as_me:$LINENO: error: Could not find PSBLAS build dir $PSBLAS_DIR!" >&5 +$as_echo "$as_me: error: Could not find PSBLAS build dir $PSBLAS_DIR!" >&2;} { (exit 1); exit 1; }; } fi -{ echo "$as_me:$LINENO: result: $PSBLAS_DIR" >&5 -echo "${ECHO_T}$PSBLAS_DIR" >&6; } +{ $as_echo "$as_me:$LINENO: result: $PSBLAS_DIR" >&5 +$as_echo "$PSBLAS_DIR" >&6; } pac_cv_status_file="$PSBLAS_DIR/config.status" if test ! -f "$pac_cv_status_file" ; then - { { echo "$as_me:$LINENO: error: Could not find configure output in $PSBLAS_DIR. + { { $as_echo "$as_me:$LINENO: error: Could not find configure output in $PSBLAS_DIR. You must first run the configure script in $PSBLAS_DIR $pac_cv_status_file." >&5 -echo "$as_me: error: Could not find configure output in $PSBLAS_DIR. +$as_echo "$as_me: error: Could not find configure output in $PSBLAS_DIR. You must first run the configure script in $PSBLAS_DIR $pac_cv_status_file." >&2;} { (exit 1); exit 1; }; } fi @@ -1837,8 +1942,8 @@ for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do fi done if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 -echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 +$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi @@ -1864,11 +1969,12 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. -{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -1897,17 +2003,29 @@ case $as_dir/ in # program-specific install script used by HP pwplus--don't use. : else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi fi fi done done ;; esac + done IFS=$as_save_IFS +rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then @@ -1920,8 +2038,8 @@ fi INSTALL=$ac_install_sh fi fi -{ echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6; } +{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. @@ -1932,8 +2050,8 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -{ echo "$as_me:$LINENO: checking where to install" >&5 -echo $ECHO_N "checking where to install... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking where to install" >&5 +$as_echo_n "checking where to install... " >&6; } case $prefix in \/* ) eval "INSTALL_DIR=$prefix";; * ) eval "INSTALL_DIR=/usr/local/psblas";; @@ -1950,8 +2068,8 @@ case $docsdir in \/* ) eval "INSTALL_DOCSDIR=$docsdir";; * ) eval "INSTALL_DOCSDIR=$INSTALL_DIR/docs";; esac -{ echo "$as_me:$LINENO: result: $INSTALL_DIR $INSTALL_INCLUDEDIR $INSTALL_LIBDIR $INSTALL_DOCSDIR" >&5 -echo "${ECHO_T}$INSTALL_DIR $INSTALL_INCLUDEDIR $INSTALL_LIBDIR $INSTALL_DOCSDIR" >&6; } +{ $as_echo "$as_me:$LINENO: result: $INSTALL_DIR $INSTALL_INCLUDEDIR $INSTALL_LIBDIR $INSTALL_DOCSDIR" >&5 +$as_echo "$INSTALL_DIR $INSTALL_INCLUDEDIR $INSTALL_LIBDIR $INSTALL_DOCSDIR" >&6; } ############################################################################### # Compilers detection: FC,F77,CC should be set, if found. @@ -1966,10 +2084,10 @@ if test -n "$ac_tool_prefix"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_FC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$FC"; then ac_cv_prog_FC="$FC" # Let the user override the test. @@ -1982,7 +2100,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_FC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -1993,11 +2111,11 @@ fi fi FC=$ac_cv_prog_FC if test -n "$FC"; then - { echo "$as_me:$LINENO: result: $FC" >&5 -echo "${ECHO_T}$FC" >&6; } + { $as_echo "$as_me:$LINENO: result: $FC" >&5 +$as_echo "$FC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2010,10 +2128,10 @@ if test -z "$FC"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_FC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_FC"; then ac_cv_prog_ac_ct_FC="$ac_ct_FC" # Let the user override the test. @@ -2026,7 +2144,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_FC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2037,11 +2155,11 @@ fi fi ac_ct_FC=$ac_cv_prog_ac_ct_FC if test -n "$ac_ct_FC"; then - { echo "$as_me:$LINENO: result: $ac_ct_FC" >&5 -echo "${ECHO_T}$ac_ct_FC" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_FC" >&5 +$as_echo "$ac_ct_FC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2053,12 +2171,8 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac FC=$ac_ct_FC @@ -2067,37 +2181,41 @@ fi # Provide some information about the compiler. -echo "$as_me:$LINENO: checking for Fortran compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` +$as_echo "$as_me:$LINENO: checking for Fortran compiler version" >&5 +set X $ac_compile +ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out @@ -2107,27 +2225,22 @@ cat >conftest.$ac_ext <<_ACEOF end _ACEOF ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ echo "$as_me:$LINENO: checking for Fortran compiler default output file name" >&5 -echo $ECHO_N "checking for Fortran compiler default output file name... $ECHO_C" >&6; } -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -# -# List of possible output files, starting from the most likely. -# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) -# only as a last resort. b.out is created by i960 compilers. -ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' -# -# The IRIX 6 linker writes into existing files which may not be -# executable, retaining their permissions. Remove them first so a -# subsequent execution test works. +{ $as_echo "$as_me:$LINENO: checking for Fortran compiler default output file name" >&5 +$as_echo_n "checking for Fortran compiler default output file name... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + ac_rmfiles= for ac_file in $ac_files do case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done @@ -2138,10 +2251,11 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' @@ -2152,7 +2266,7 @@ for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most @@ -2179,25 +2293,27 @@ else ac_file='' fi -{ echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } if test -z "$ac_file"; then - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: Fortran compiler cannot create executables +{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: Fortran compiler cannot create executables See \`config.log' for more details." >&5 -echo "$as_me: error: Fortran compiler cannot create executables +$as_echo "$as_me: error: Fortran compiler cannot create executables See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } + { (exit 77); exit 77; }; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -{ echo "$as_me:$LINENO: checking whether the Fortran compiler works" >&5 -echo $ECHO_N "checking whether the Fortran compiler works... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether the Fortran compiler works" >&5 +$as_echo_n "checking whether the Fortran compiler works... " >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then @@ -2206,49 +2322,53 @@ if test "$cross_compiling" != yes; then *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { echo "$as_me:$LINENO: error: cannot run Fortran compiled programs. + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot run Fortran compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run Fortran compiled programs. +$as_echo "$as_me: error: cannot run Fortran compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi fi fi -{ echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } +{ $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } -rm -f a.out a.exe conftest$ac_cv_exeext b.out +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } -{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } -{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will @@ -2257,31 +2377,33 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi rm -f conftest$ac_cv_exeext -{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT -{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF program main @@ -2294,44 +2416,47 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile +$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F -{ echo "$as_me:$LINENO: checking whether we are using the GNU Fortran compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU Fortran compiler... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU Fortran compiler" >&5 +$as_echo_n "checking whether we are using the GNU Fortran compiler... " >&6; } if test "${ac_cv_fc_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF program main @@ -2347,20 +2472,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no @@ -2370,16 +2496,16 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_fc_compiler_gnu=$ac_compiler_gnu fi -{ echo "$as_me:$LINENO: result: $ac_cv_fc_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_fc_compiler_gnu" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_fc_compiler_gnu" >&5 +$as_echo "$ac_cv_fc_compiler_gnu" >&6; } ac_ext=$ac_save_ext ac_test_FFLAGS=${FCFLAGS+set} ac_save_FFLAGS=$FCFLAGS FCFLAGS= -{ echo "$as_me:$LINENO: checking whether $FC accepts -g" >&5 -echo $ECHO_N "checking whether $FC accepts -g... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether $FC accepts -g" >&5 +$as_echo_n "checking whether $FC accepts -g... " >&6; } if test "${ac_cv_prog_fc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else FCFLAGS=-g cat >conftest.$ac_ext <<_ACEOF @@ -2393,20 +2519,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_fc_g=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_fc_g=no @@ -2415,8 +2542,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_prog_fc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_fc_g" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_fc_g" >&5 +$as_echo "$ac_cv_prog_fc_g" >&6; } if test "$ac_test_FFLAGS" = set; then FCFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_fc_g = yes; then @@ -2449,10 +2576,10 @@ if test -n "$ac_tool_prefix"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2465,7 +2592,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2476,11 +2603,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2493,10 +2620,10 @@ if test -z "$CC"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. @@ -2509,7 +2636,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2520,11 +2647,11 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2536,12 +2663,8 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -2549,50 +2672,56 @@ esac fi -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH +$as_echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } # Provide some information about the compiler. -echo "$as_me:$LINENO: checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` +$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } -{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -2618,20 +2747,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no @@ -2641,15 +2771,19 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } -GCC=`test $ac_compiler_gnu = yes && echo yes` +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS -{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes @@ -2676,20 +2810,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" @@ -2714,20 +2849,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag @@ -2753,20 +2889,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -2781,8 +2918,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then @@ -2798,10 +2935,10 @@ else CFLAGS= fi fi -{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC @@ -2872,20 +3009,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -2901,15 +3039,15 @@ fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) - { echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6; } ;; + { $as_echo "$as_me:$LINENO: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; xno) - { echo "$as_me:$LINENO: result: unsupported" >&5 -echo "${ECHO_T}unsupported" >&6; } ;; + { $as_echo "$as_me:$LINENO: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" - { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; + { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac @@ -2921,8 +3059,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test "X$CC" == "X" ; then - { { echo "$as_me:$LINENO: error: Problem : No C compiler specified nor found!" >&5 -echo "$as_me: error: Problem : No C compiler specified nor found!" >&2;} + { { $as_echo "$as_me:$LINENO: error: Problem : No C compiler specified nor found!" >&5 +$as_echo "$as_me: error: Problem : No C compiler specified nor found!" >&2;} { (exit 1); exit 1; }; } fi if eval "$FC -qversion 2>&1 | grep XL 2>/dev/null" ; then @@ -2938,110 +3076,110 @@ if eval "$FC -qversion 2>&1 | grep XL 2>/dev/null" ; then # More problems could be undocumented yet. fi -{ echo "$as_me:$LINENO: checking whether additional libraries are needed" >&5 -echo $ECHO_N "checking whether additional libraries are needed... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether additional libraries are needed" >&5 +$as_echo_n "checking whether additional libraries are needed... " >&6; } # Check whether --with-libs was given. if test "${with_libs+set}" = set; then withval=$with_libs; LIBS="${withval} ${LIBS}" -{ echo "$as_me:$LINENO: result: LIBS = ${LIBS}" >&5 -echo "${ECHO_T}LIBS = ${LIBS}" >&6; } +{ $as_echo "$as_me:$LINENO: result: LIBS = ${LIBS}" >&5 +$as_echo "LIBS = ${LIBS}" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi -{ echo "$as_me:$LINENO: checking whether additional CLIBS flags should be added (should be invoked only once)" >&5 -echo $ECHO_N "checking whether additional CLIBS flags should be added (should be invoked only once)... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether additional CLIBS flags should be added (should be invoked only once)" >&5 +$as_echo_n "checking whether additional CLIBS flags should be added (should be invoked only once)... " >&6; } # Check whether --with-clibs was given. if test "${with_clibs+set}" = set; then withval=$with_clibs; CLIBS="${withval} ${CLIBS}" -{ echo "$as_me:$LINENO: result: CLIBS = ${CLIBS}" >&5 -echo "${ECHO_T}CLIBS = ${CLIBS}" >&6; } +{ $as_echo "$as_me:$LINENO: result: CLIBS = ${CLIBS}" >&5 +$as_echo "CLIBS = ${CLIBS}" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi -{ echo "$as_me:$LINENO: checking whether additional FLIBS flags should be added (should be invoked only once)" >&5 -echo $ECHO_N "checking whether additional FLIBS flags should be added (should be invoked only once)... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether additional FLIBS flags should be added (should be invoked only once)" >&5 +$as_echo_n "checking whether additional FLIBS flags should be added (should be invoked only once)... " >&6; } # Check whether --with-flibs was given. if test "${with_flibs+set}" = set; then withval=$with_flibs; FLIBS="${withval} ${FLIBS}" -{ echo "$as_me:$LINENO: result: FLIBS = ${FLIBS}" >&5 -echo "${ECHO_T}FLIBS = ${FLIBS}" >&6; } +{ $as_echo "$as_me:$LINENO: result: FLIBS = ${FLIBS}" >&5 +$as_echo "FLIBS = ${FLIBS}" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi -{ echo "$as_me:$LINENO: checking whether additional LIBRARYPATH flags should be added (should be invoked only once)" >&5 -echo $ECHO_N "checking whether additional LIBRARYPATH flags should be added (should be invoked only once)... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether additional LIBRARYPATH flags should be added (should be invoked only once)" >&5 +$as_echo_n "checking whether additional LIBRARYPATH flags should be added (should be invoked only once)... " >&6; } # Check whether --with-library-path was given. if test "${with_library_path+set}" = set; then withval=$with_library_path; LIBRARYPATH="${withval} ${LIBRARYPATH}" -{ echo "$as_me:$LINENO: result: LIBRARYPATH = ${LIBRARYPATH}" >&5 -echo "${ECHO_T}LIBRARYPATH = ${LIBRARYPATH}" >&6; } +{ $as_echo "$as_me:$LINENO: result: LIBRARYPATH = ${LIBRARYPATH}" >&5 +$as_echo "LIBRARYPATH = ${LIBRARYPATH}" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi -{ echo "$as_me:$LINENO: checking whether additional INCLUDEPATH flags should be added (should be invoked only once)" >&5 -echo $ECHO_N "checking whether additional INCLUDEPATH flags should be added (should be invoked only once)... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether additional INCLUDEPATH flags should be added (should be invoked only once)" >&5 +$as_echo_n "checking whether additional INCLUDEPATH flags should be added (should be invoked only once)... " >&6; } # Check whether --with-include-path was given. if test "${with_include_path+set}" = set; then withval=$with_include_path; INCLUDEPATH="${withval} ${INCLUDEPATH}" -{ echo "$as_me:$LINENO: result: INCLUDEPATH = ${INCLUDEPATH}" >&5 -echo "${ECHO_T}INCLUDEPATH = ${INCLUDEPATH}" >&6; } +{ $as_echo "$as_me:$LINENO: result: INCLUDEPATH = ${INCLUDEPATH}" >&5 +$as_echo "INCLUDEPATH = ${INCLUDEPATH}" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi -{ echo "$as_me:$LINENO: checking whether additional MODULE_PATH flags should be added (should be invoked only once)" >&5 -echo $ECHO_N "checking whether additional MODULE_PATH flags should be added (should be invoked only once)... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether additional MODULE_PATH flags should be added (should be invoked only once)" >&5 +$as_echo_n "checking whether additional MODULE_PATH flags should be added (should be invoked only once)... " >&6; } # Check whether --with-module-path was given. if test "${with_module_path+set}" = set; then withval=$with_module_path; MODULE_PATH="${withval} ${MODULE_PATH}" -{ echo "$as_me:$LINENO: result: MODULE_PATH = ${MODULE_PATH}" >&5 -echo "${ECHO_T}MODULE_PATH = ${MODULE_PATH}" >&6; } +{ $as_echo "$as_me:$LINENO: result: MODULE_PATH = ${MODULE_PATH}" >&5 +$as_echo "MODULE_PATH = ${MODULE_PATH}" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -3073,15 +3211,15 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" @@ -3113,20 +3251,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. @@ -3150,13 +3289,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err @@ -3164,7 +3304,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. @@ -3189,8 +3329,8 @@ fi else ac_cv_prog_CPP=$CPP fi -{ echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6; } +{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 +$as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do @@ -3218,20 +3358,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. @@ -3255,13 +3396,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err @@ -3269,7 +3411,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. @@ -3285,11 +3427,13 @@ rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi ac_ext=c @@ -3299,42 +3443,37 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 -echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } -if test "${ac_cv_path_GREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Extract the first word of "grep ggrep" to use in msg output -if test -z "$GREP"; then -set dummy grep ggrep; ac_prog_name=$2 +{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else + if test -z "$GREP"; then ac_path_GREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue - # Check for GNU ac_path_GREP and select it if it is found. + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - echo 'GREP' >> "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` @@ -3349,74 +3488,60 @@ case `"$ac_path_GREP" --version 2>&1` in rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac - - $ac_path_GREP_found && break 3 + $ac_path_GREP_found && break 3 + done done done - -done IFS=$as_save_IFS - - -fi - -GREP="$ac_cv_path_GREP" -if test -z "$GREP"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + if test -z "$ac_cv_path_GREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } -fi - + fi else ac_cv_path_GREP=$GREP fi - fi -{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 -echo "${ECHO_T}$ac_cv_path_GREP" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" -{ echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else - # Extract the first word of "egrep" to use in msg output -if test -z "$EGREP"; then -set dummy egrep; ac_prog_name=$2 -if test "${ac_cv_path_EGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + if test -z "$EGREP"; then ac_path_EGREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue - # Check for GNU ac_path_EGREP and select it if it is found. + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - echo 'EGREP' >> "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` @@ -3431,40 +3556,31 @@ case `"$ac_path_EGREP" --version 2>&1` in rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac - - $ac_path_EGREP_found && break 3 + $ac_path_EGREP_found && break 3 + done done done - -done IFS=$as_save_IFS - - -fi - -EGREP="$ac_cv_path_EGREP" -if test -z "$EGREP"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + if test -z "$ac_cv_path_EGREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } -fi - + fi else ac_cv_path_EGREP=$EGREP fi - fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 -echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" -{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -3491,20 +3607,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no @@ -3596,37 +3713,40 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF @@ -3648,11 +3768,11 @@ fi for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -3670,20 +3790,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" @@ -3691,12 +3812,15 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_Header'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -3735,20 +3859,20 @@ if test "x$mld2p4_cv_umfpackdir" != "x"; then CPPFLAGS="$UMF_INCLUDES $CPPFLAGS" UMF_LIBS="-L$mld2p4_cv_umfpackdir" fi -{ echo "$as_me:$LINENO: umfp dir $mld2p4_cv_umfpackdir" >&5 -echo "$as_me: umfp dir $mld2p4_cv_umfpackdir" >&6;} +{ $as_echo "$as_me:$LINENO: umfp dir $mld2p4_cv_umfpackdir" >&5 +$as_echo "$as_me: umfp dir $mld2p4_cv_umfpackdir" >&6;} if test "${ac_cv_header_umfpack_h+set}" = set; then - { echo "$as_me:$LINENO: checking for umfpack.h" >&5 -echo $ECHO_N "checking for umfpack.h... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for umfpack.h" >&5 +$as_echo_n "checking for umfpack.h... " >&6; } if test "${ac_cv_header_umfpack_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_umfpack_h" >&5 -echo "${ECHO_T}$ac_cv_header_umfpack_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_umfpack_h" >&5 +$as_echo "$ac_cv_header_umfpack_h" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking umfpack.h usability" >&5 -echo $ECHO_N "checking umfpack.h usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking umfpack.h usability" >&5 +$as_echo_n "checking umfpack.h usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -3764,32 +3888,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking umfpack.h presence" >&5 -echo $ECHO_N "checking umfpack.h presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking umfpack.h presence" >&5 +$as_echo_n "checking umfpack.h presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -3803,51 +3928,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: umfpack.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: umfpack.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: umfpack.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: umfpack.h: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: umfpack.h: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: umfpack.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: umfpack.h: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: umfpack.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: umfpack.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: umfpack.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: umfpack.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: umfpack.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: umfpack.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: umfpack.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: umfpack.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: umfpack.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: umfpack.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: umfpack.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: umfpack.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: umfpack.h: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: umfpack.h: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: umfpack.h: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: umfpack.h: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: umfpack.h: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: umfpack.h: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: umfpack.h: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: umfpack.h: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: umfpack.h: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: umfpack.h: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: umfpack.h: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: umfpack.h: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: umfpack.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------- ## ## Report this to bugreport@mld2p4.it ## @@ -3856,18 +3982,18 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for umfpack.h" >&5 -echo $ECHO_N "checking for umfpack.h... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for umfpack.h" >&5 +$as_echo_n "checking for umfpack.h... " >&6; } if test "${ac_cv_header_umfpack_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_header_umfpack_h=$ac_header_preproc fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_umfpack_h" >&5 -echo "${ECHO_T}$ac_cv_header_umfpack_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_umfpack_h" >&5 +$as_echo "$ac_cv_header_umfpack_h" >&6; } fi -if test $ac_cv_header_umfpack_h = yes; then +if test "x$ac_cv_header_umfpack_h" = x""yes; then pac_umf_header_ok=yes else pac_umf_header_ok=no; UMF_INCLUDES="" @@ -3877,8 +4003,8 @@ fi if test "x$pac_umf_header_ok" == "xyes" ; then UMF_LIBS="$mld2p4_cv_umfpack $UMF_LIBS" LIBS="$UMF_LIBS -lm $LIBS"; - { echo "$as_me:$LINENO: checking for umfpack_di_symbolic in $UMF_LIBS" >&5 -echo $ECHO_N "checking for umfpack_di_symbolic in $UMF_LIBS... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for umfpack_di_symbolic in $UMF_LIBS" >&5 +$as_echo_n "checking for umfpack_di_symbolic in $UMF_LIBS... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -3907,30 +4033,34 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then mld2p4_cv_have_umfpack=yes;pac_umf_lib_ok=yes; else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 mld2p4_cv_have_umfpack=no;pac_umf_lib_ok=no; UMF_LIBS="" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext - { echo "$as_me:$LINENO: result: $pac_umf_lib_ok" >&5 -echo "${ECHO_T}$pac_umf_lib_ok" >&6; } + { $as_echo "$as_me:$LINENO: result: $pac_umf_lib_ok" >&5 +$as_echo "$pac_umf_lib_ok" >&6; } fi LIBS="$SAVE_LIBS"; CPPFLAGS="$SAVE_CPPFLAGS"; @@ -3954,10 +4084,10 @@ if test "X$MPICC" = "X" ; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_MPICC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$MPICC"; then ac_cv_prog_MPICC="$MPICC" # Let the user override the test. @@ -3970,7 +4100,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_MPICC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3981,11 +4111,11 @@ fi fi MPICC=$ac_cv_prog_MPICC if test -n "$MPICC"; then - { echo "$as_me:$LINENO: result: $MPICC" >&5 -echo "${ECHO_T}$MPICC" >&6; } + { $as_echo "$as_me:$LINENO: result: $MPICC" >&5 +$as_echo "$MPICC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -4002,10 +4132,10 @@ fi do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_MPICC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$MPICC"; then ac_cv_prog_MPICC="$MPICC" # Let the user override the test. @@ -4018,7 +4148,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_MPICC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4029,11 +4159,11 @@ fi fi MPICC=$ac_cv_prog_MPICC if test -n "$MPICC"; then - { echo "$as_me:$LINENO: result: $MPICC" >&5 -echo "${ECHO_T}$MPICC" >&6; } + { $as_echo "$as_me:$LINENO: result: $MPICC" >&5 +$as_echo "$MPICC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -4047,10 +4177,10 @@ test -n "$MPICC" || MPICC="$CC" if test x = x"$MPILIBS"; then - { echo "$as_me:$LINENO: checking for MPI_Init" >&5 -echo $ECHO_N "checking for MPI_Init... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for MPI_Init" >&5 +$as_echo_n "checking for MPI_Init... " >&6; } if test "${ac_cv_func_MPI_Init+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -4103,42 +4233,46 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_MPI_Init=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_MPI_Init=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_MPI_Init" >&5 -echo "${ECHO_T}$ac_cv_func_MPI_Init" >&6; } -if test $ac_cv_func_MPI_Init = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_MPI_Init" >&5 +$as_echo "$ac_cv_func_MPI_Init" >&6; } +if test "x$ac_cv_func_MPI_Init" = x""yes; then MPILIBS=" " fi fi if test x = x"$MPILIBS"; then - { echo "$as_me:$LINENO: checking for MPI_Init in -lmpi" >&5 -echo $ECHO_N "checking for MPI_Init in -lmpi... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for MPI_Init in -lmpi" >&5 +$as_echo_n "checking for MPI_Init in -lmpi... " >&6; } if test "${ac_cv_lib_mpi_MPI_Init+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpi $LIBS" @@ -4170,42 +4304,46 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_mpi_MPI_Init=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_mpi_MPI_Init=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_mpi_MPI_Init" >&5 -echo "${ECHO_T}$ac_cv_lib_mpi_MPI_Init" >&6; } -if test $ac_cv_lib_mpi_MPI_Init = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mpi_MPI_Init" >&5 +$as_echo "$ac_cv_lib_mpi_MPI_Init" >&6; } +if test "x$ac_cv_lib_mpi_MPI_Init" = x""yes; then MPILIBS="-lmpi" fi fi if test x = x"$MPILIBS"; then - { echo "$as_me:$LINENO: checking for MPI_Init in -lmpich" >&5 -echo $ECHO_N "checking for MPI_Init in -lmpich... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for MPI_Init in -lmpich" >&5 +$as_echo_n "checking for MPI_Init in -lmpich... " >&6; } if test "${ac_cv_lib_mpich_MPI_Init+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpich $LIBS" @@ -4237,41 +4375,45 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_mpich_MPI_Init=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_mpich_MPI_Init=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_mpich_MPI_Init" >&5 -echo "${ECHO_T}$ac_cv_lib_mpich_MPI_Init" >&6; } -if test $ac_cv_lib_mpich_MPI_Init = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_mpich_MPI_Init" >&5 +$as_echo "$ac_cv_lib_mpich_MPI_Init" >&6; } +if test "x$ac_cv_lib_mpich_MPI_Init" = x""yes; then MPILIBS="-lmpich" fi fi if test x != x"$MPILIBS"; then - { echo "$as_me:$LINENO: checking for mpi.h" >&5 -echo $ECHO_N "checking for mpi.h... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for mpi.h" >&5 +$as_echo_n "checking for mpi.h... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4293,26 +4435,27 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 MPILIBS="" - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext @@ -4324,8 +4467,8 @@ CC="$acx_mpi_save_CC" # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x = x"$MPILIBS"; then - { { echo "$as_me:$LINENO: error: Cannot find any suitable MPI implementation for C" >&5 -echo "$as_me: error: Cannot find any suitable MPI implementation for C" >&2;} + { { $as_echo "$as_me:$LINENO: error: Cannot find any suitable MPI implementation for C" >&5 +$as_echo "$as_me: error: Cannot find any suitable MPI implementation for C" >&2;} { (exit 1); exit 1; }; } : else @@ -4368,20 +4511,20 @@ if test "x$mld2p4_cv_superludir" != "x"; then fi LIBS="$SLU_LIBS $LIBS" CPPFLAGS="$SLU_INCLUDES $CPPFLAGS" -{ echo "$as_me:$LINENO: slu dir $mld2p4_cv_superludir" >&5 -echo "$as_me: slu dir $mld2p4_cv_superludir" >&6;} +{ $as_echo "$as_me:$LINENO: slu dir $mld2p4_cv_superludir" >&5 +$as_echo "$as_me: slu dir $mld2p4_cv_superludir" >&6;} if test "${ac_cv_header_slu_ddefs_h+set}" = set; then - { echo "$as_me:$LINENO: checking for slu_ddefs.h" >&5 -echo $ECHO_N "checking for slu_ddefs.h... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for slu_ddefs.h" >&5 +$as_echo_n "checking for slu_ddefs.h... " >&6; } if test "${ac_cv_header_slu_ddefs_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_slu_ddefs_h" >&5 -echo "${ECHO_T}$ac_cv_header_slu_ddefs_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_slu_ddefs_h" >&5 +$as_echo "$ac_cv_header_slu_ddefs_h" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking slu_ddefs.h usability" >&5 -echo $ECHO_N "checking slu_ddefs.h usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking slu_ddefs.h usability" >&5 +$as_echo_n "checking slu_ddefs.h usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4397,32 +4540,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking slu_ddefs.h presence" >&5 -echo $ECHO_N "checking slu_ddefs.h presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking slu_ddefs.h presence" >&5 +$as_echo_n "checking slu_ddefs.h presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4436,51 +4580,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: slu_ddefs.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: slu_ddefs.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: slu_ddefs.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: slu_ddefs.h: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: slu_ddefs.h: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: slu_ddefs.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: slu_ddefs.h: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: slu_ddefs.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: slu_ddefs.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: slu_ddefs.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: slu_ddefs.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: slu_ddefs.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: slu_ddefs.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: slu_ddefs.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: slu_ddefs.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: slu_ddefs.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: slu_ddefs.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: slu_ddefs.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: slu_ddefs.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: slu_ddefs.h: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: slu_ddefs.h: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: slu_ddefs.h: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: slu_ddefs.h: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: slu_ddefs.h: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: slu_ddefs.h: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: slu_ddefs.h: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: slu_ddefs.h: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: slu_ddefs.h: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: slu_ddefs.h: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: slu_ddefs.h: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: slu_ddefs.h: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: slu_ddefs.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------- ## ## Report this to bugreport@mld2p4.it ## @@ -4489,18 +4634,18 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for slu_ddefs.h" >&5 -echo $ECHO_N "checking for slu_ddefs.h... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for slu_ddefs.h" >&5 +$as_echo_n "checking for slu_ddefs.h... " >&6; } if test "${ac_cv_header_slu_ddefs_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_header_slu_ddefs_h=$ac_header_preproc fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_slu_ddefs_h" >&5 -echo "${ECHO_T}$ac_cv_header_slu_ddefs_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_slu_ddefs_h" >&5 +$as_echo "$ac_cv_header_slu_ddefs_h" >&6; } fi -if test $ac_cv_header_slu_ddefs_h = yes; then +if test "x$ac_cv_header_slu_ddefs_h" = x""yes; then pac_slu_header_ok=yes else pac_slu_header_ok=no; SLU_INCLUDES="" @@ -4510,8 +4655,8 @@ fi if test "x$pac_slu_header_ok" == "xyes" ; then SLU_LIBS="$mld2p4_cv_superlu $SLU_LIBS" LIBS="$SLU_LIBS -lm $LIBS"; - { echo "$as_me:$LINENO: checking for superlu_malloc in $SLU_LIBS" >&5 -echo $ECHO_N "checking for superlu_malloc in $SLU_LIBS... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for superlu_malloc in $SLU_LIBS" >&5 +$as_echo_n "checking for superlu_malloc in $SLU_LIBS... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4540,30 +4685,34 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then mld2p4_cv_have_superlu=yes;pac_slu_lib_ok=yes; else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 mld2p4_cv_have_superlu=no;pac_slu_lib_ok=no; SLU_LIBS=""; SLU_INCLUDES="" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext - { echo "$as_me:$LINENO: result: $pac_slu_lib_ok" >&5 -echo "${ECHO_T}$pac_slu_lib_ok" >&6; } + { $as_echo "$as_me:$LINENO: result: $pac_slu_lib_ok" >&5 +$as_echo "$pac_slu_lib_ok" >&6; } fi LIBS="$SAVE_LIBS"; CPPFLAGS="$SAVE_CPPFLAGS"; @@ -4608,20 +4757,20 @@ if test "x$mld2p4_cv_superludistdir" != "x"; then fi LIBS="$SLUDIST_LIBS $LIBS" CPPFLAGS="$SLUDIST_INCLUDES $CPPFLAGS" -{ echo "$as_me:$LINENO: sludist dir $mld2p4_cv_superludistdir" >&5 -echo "$as_me: sludist dir $mld2p4_cv_superludistdir" >&6;} +{ $as_echo "$as_me:$LINENO: sludist dir $mld2p4_cv_superludistdir" >&5 +$as_echo "$as_me: sludist dir $mld2p4_cv_superludistdir" >&6;} if test "${ac_cv_header_superlu_ddefs_h+set}" = set; then - { echo "$as_me:$LINENO: checking for superlu_ddefs.h" >&5 -echo $ECHO_N "checking for superlu_ddefs.h... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for superlu_ddefs.h" >&5 +$as_echo_n "checking for superlu_ddefs.h... " >&6; } if test "${ac_cv_header_superlu_ddefs_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_superlu_ddefs_h" >&5 -echo "${ECHO_T}$ac_cv_header_superlu_ddefs_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_superlu_ddefs_h" >&5 +$as_echo "$ac_cv_header_superlu_ddefs_h" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking superlu_ddefs.h usability" >&5 -echo $ECHO_N "checking superlu_ddefs.h usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking superlu_ddefs.h usability" >&5 +$as_echo_n "checking superlu_ddefs.h usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4637,32 +4786,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking superlu_ddefs.h presence" >&5 -echo $ECHO_N "checking superlu_ddefs.h presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking superlu_ddefs.h presence" >&5 +$as_echo_n "checking superlu_ddefs.h presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4676,51 +4826,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: superlu_ddefs.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: superlu_ddefs.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: superlu_ddefs.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: superlu_ddefs.h: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: superlu_ddefs.h: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: superlu_ddefs.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: superlu_ddefs.h: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: superlu_ddefs.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: superlu_ddefs.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: superlu_ddefs.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: superlu_ddefs.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: superlu_ddefs.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: superlu_ddefs.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: superlu_ddefs.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: superlu_ddefs.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: superlu_ddefs.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: superlu_ddefs.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: superlu_ddefs.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: superlu_ddefs.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: superlu_ddefs.h: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: superlu_ddefs.h: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: superlu_ddefs.h: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: superlu_ddefs.h: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: superlu_ddefs.h: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: superlu_ddefs.h: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: superlu_ddefs.h: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: superlu_ddefs.h: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: superlu_ddefs.h: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: superlu_ddefs.h: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: superlu_ddefs.h: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: superlu_ddefs.h: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: superlu_ddefs.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------- ## ## Report this to bugreport@mld2p4.it ## @@ -4729,18 +4880,18 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for superlu_ddefs.h" >&5 -echo $ECHO_N "checking for superlu_ddefs.h... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for superlu_ddefs.h" >&5 +$as_echo_n "checking for superlu_ddefs.h... " >&6; } if test "${ac_cv_header_superlu_ddefs_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_header_superlu_ddefs_h=$ac_header_preproc fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_superlu_ddefs_h" >&5 -echo "${ECHO_T}$ac_cv_header_superlu_ddefs_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_superlu_ddefs_h" >&5 +$as_echo "$ac_cv_header_superlu_ddefs_h" >&6; } fi -if test $ac_cv_header_superlu_ddefs_h = yes; then +if test "x$ac_cv_header_superlu_ddefs_h" = x""yes; then pac_sludist_header_ok=yes else pac_sludist_header_ok=no; SLUDIST_INCLUDES="" @@ -4750,8 +4901,8 @@ fi if test "x$pac_sludist_header_ok" == "xyes" ; then SLUDIST_LIBS="$mld2p4_cv_superludist $SLUDIST_LIBS" LIBS="$SLUDIST_LIBS -lm $LIBS"; - { echo "$as_me:$LINENO: checking for superlu_malloc_dist in $SLUDIST_LIBS" >&5 -echo $ECHO_N "checking for superlu_malloc_dist in $SLUDIST_LIBS... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for superlu_malloc_dist in $SLUDIST_LIBS" >&5 +$as_echo_n "checking for superlu_malloc_dist in $SLUDIST_LIBS... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4780,31 +4931,35 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then mld2p4_cv_have_superludist=yes;pac_sludist_lib_ok=yes; else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 mld2p4_cv_have_superludist=no;pac_sludist_lib_ok=no; SLUDIST_LIBS=""; SLUDIST_INCLUDES="" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext - { echo "$as_me:$LINENO: result: $pac_sludist_lib_ok" >&5 -echo "${ECHO_T}$pac_sludist_lib_ok" >&6; } + { $as_echo "$as_me:$LINENO: result: $pac_sludist_lib_ok" >&5 +$as_echo "$pac_sludist_lib_ok" >&6; } fi LIBS="$save_LIBS"; CPPFLAGS="$save_CPPFLAGS"; @@ -4822,10 +4977,10 @@ fi ############################################################################### -{ echo "$as_me:$LINENO: checking fortran 90 modules inclusion flag" >&5 -echo $ECHO_N "checking fortran 90 modules inclusion flag... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking fortran 90 modules inclusion flag" >&5 +$as_echo_n "checking fortran 90 modules inclusion flag... " >&6; } if test "${ax_f90_modflag+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_ext=${ac_fc_srcext-f} ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5' @@ -4854,20 +5009,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -4894,20 +5050,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_fc_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ax_f90_modflag="$ax_flag" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -4919,8 +5076,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done rm -fr tmpdir_$i if test "$ax_flag" = "not found" ; then - { { echo "$as_me:$LINENO: error: unable to find compiler flag for modules inclusion" >&5 -echo "$as_me: error: unable to find compiler flag for modules inclusion" >&2;} + { { $as_echo "$as_me:$LINENO: error: unable to find compiler flag for modules inclusion" >&5 +$as_echo "$as_me: error: unable to find compiler flag for modules inclusion" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c @@ -4931,14 +5088,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu fi -{ echo "$as_me:$LINENO: result: $ax_f90_modflag" >&5 -echo "${ECHO_T}$ax_f90_modflag" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ax_f90_modflag" >&5 +$as_echo "$ax_f90_modflag" >&6; } FMFLAG="${ax_f90_modflag%% *}" ac_objext='.o' ac_ext='f90' ac_compile='${MPIFC-$FC} -c -o conftest${ac_objext} $FMFLAG$PSBLAS_DIR/lib conftest.$ac_ext 1>&5' -{ echo "$as_me:$LINENO: checking for working source dir of PSBLAS" >&5 -echo $ECHO_N "checking for working source dir of PSBLAS... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for working source dir of PSBLAS" >&5 +$as_echo_n "checking for working source dir of PSBLAS... " >&6; } cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_objext}; then rm -rf conftest* - { echo "$as_me:$LINENO: result: yes." >&5 -echo "${ECHO_T}yes." >&6; } + { $as_echo "$as_me:$LINENO: result: yes." >&5 +$as_echo "yes." >&6; } else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - { { echo "$as_me:$LINENO: error: no. + { { $as_echo "$as_me:$LINENO: error: no. Could not find working version of PSBLAS." >&5 -echo "$as_me: error: no. +$as_echo "$as_me: error: no. Could not find working version of PSBLAS." >&2;} { (exit 1); exit 1; }; } fi @@ -4967,8 +5124,8 @@ rm -f conftest* ac_objext='.o' ac_ext='f90' ac_compile='${MPIFC-$FC} -c -o conftest${ac_objext} $FMFLAG$PSBLAS_DIR/lib conftest.$ac_ext 1>&5' -{ echo "$as_me:$LINENO: checking for version of PSBLAS supporting psb_long_int_k_" >&5 -echo $ECHO_N "checking for version of PSBLAS supporting psb_long_int_k_... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for version of PSBLAS supporting psb_long_int_k_" >&5 +$as_echo_n "checking for version of PSBLAS supporting psb_long_int_k_... " >&6; } cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_objext}; then rm -rf conftest* - { echo "$as_me:$LINENO: result: yes." >&5 -echo "${ECHO_T}yes." >&6; } + { $as_echo "$as_me:$LINENO: result: yes." >&5 +$as_echo "yes." >&6; } else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - { { echo "$as_me:$LINENO: error: no. + { { $as_echo "$as_me:$LINENO: error: no. Your version of PSBLAS does not define psb_long_int_k_; please get version 2.3.1 or newer." >&5 -echo "$as_me: error: no. +$as_echo "$as_me: error: no. Your version of PSBLAS does not define psb_long_int_k_; please get version 2.3.1 or newer." >&2;} { (exit 1); exit 1; }; } fi @@ -5049,11 +5206,12 @@ _ACEOF case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac @@ -5086,12 +5244,12 @@ echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && - { echo "$as_me:$LINENO: updating cache $cache_file" >&5 -echo "$as_me: updating cache $cache_file" >&6;} + { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else - { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 -echo "$as_me: not updating unwritable cache $cache_file" >&6;} + { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -5108,6 +5266,12 @@ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' +:mline +/\\$/{ + N + s,\\\n,, + b mline +} t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g @@ -5137,7 +5301,7 @@ ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`echo "$ac_i" | sed "$ac_script"` + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" @@ -5150,11 +5314,12 @@ LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} +ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF +{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. @@ -5167,7 +5332,7 @@ ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## @@ -5177,7 +5342,7 @@ DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST @@ -5199,17 +5364,45 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' else - PATH_SEPARATOR=: + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' fi - rm -f conf$$.sh + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } fi # Support unset when possible. @@ -5225,8 +5418,6 @@ fi # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) -as_nl=' -' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. @@ -5249,7 +5440,7 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi @@ -5262,17 +5453,10 @@ PS2='> ' PS4='+ ' # NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && @@ -5294,7 +5478,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | +$as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -5345,7 +5529,7 @@ $as_unset CDPATH s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems @@ -5373,7 +5557,6 @@ case `echo -n x` in *) ECHO_N='-n';; esac - if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -5386,19 +5569,22 @@ if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir - mkdir conf$$.dir -fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln + fi else as_ln_s='cp -p' fi @@ -5423,10 +5609,10 @@ else as_test_x=' eval sh -c '\'' if test -d "$1"; then - test -d "$1/."; + test -d "$1/."; else case $1 in - -*)set "./$1";; + -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi @@ -5448,8 +5634,8 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by MLD2P4 $as_me 1.0.1, which was -generated by GNU Autoconf 2.61. Invocation command line was +This file was extended by MLD2P4 $as_me 1.1, which was +generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -5462,26 +5648,33 @@ on `(hostname || uname -n) 2>/dev/null | sed 1q` _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. -Usage: $0 [OPTIONS] [FILE]... +Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit - -q, --quiet do not print progress messages + -q, --quiet, --silent + do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE Configuration files: $config_files @@ -5489,24 +5682,24 @@ $config_files Report bugs to ." _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -MLD2P4 config.status 1.0.1 -configured by $0, generated by GNU Autoconf 2.61, - with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" +MLD2P4 config.status 1.1 +configured by $0, generated by GNU Autoconf 2.63, + with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" -Copyright (C) 2006 Free Software Foundation, Inc. +Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' +test -n "\$AWK" || AWK=awk _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do @@ -5528,21 +5721,24 @@ do -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - echo "$ac_cs_version"; exit ;; + $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) - echo "$ac_cs_usage"; exit ;; + $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. - -*) { echo "$as_me: error: unrecognized option: $1 + -*) { $as_echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; @@ -5561,30 +5757,32 @@ if $ac_cs_silent; then fi _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - CONFIG_SHELL=$SHELL + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' export CONFIG_SHELL - exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + exec "\$@" fi _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX - echo "$ac_log" + $as_echo "$ac_log" } >&5 _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets @@ -5592,8 +5790,8 @@ do case $ac_config_target in "Make.inc") CONFIG_FILES="$CONFIG_FILES Make.inc" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done @@ -5632,135 +5830,144 @@ $debug || (umask 077 && mkdir "$tmp") } || { - echo "$me: cannot create a temporary directory in ." >&2 + $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } -# -# Set up the sed scripts for CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then -_ACEOF +ac_cr=' ' +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi +echo 'BEGIN {' >"$tmp/subs1.awk" && +_ACEOF + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } +ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do - cat >conf$$subs.sed <<_ACEOF -SHELL!$SHELL$ac_delim -PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim -PACKAGE_NAME!$PACKAGE_NAME$ac_delim -PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim -PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim -PACKAGE_STRING!$PACKAGE_STRING$ac_delim -PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim -exec_prefix!$exec_prefix$ac_delim -prefix!$prefix$ac_delim -program_transform_name!$program_transform_name$ac_delim -bindir!$bindir$ac_delim -sbindir!$sbindir$ac_delim -libexecdir!$libexecdir$ac_delim -datarootdir!$datarootdir$ac_delim -datadir!$datadir$ac_delim -sysconfdir!$sysconfdir$ac_delim -sharedstatedir!$sharedstatedir$ac_delim -localstatedir!$localstatedir$ac_delim -includedir!$includedir$ac_delim -oldincludedir!$oldincludedir$ac_delim -docdir!$docdir$ac_delim -infodir!$infodir$ac_delim -htmldir!$htmldir$ac_delim -dvidir!$dvidir$ac_delim -pdfdir!$pdfdir$ac_delim -psdir!$psdir$ac_delim -libdir!$libdir$ac_delim -localedir!$localedir$ac_delim -mandir!$mandir$ac_delim -DEFS!$DEFS$ac_delim -ECHO_C!$ECHO_C$ac_delim -ECHO_N!$ECHO_N$ac_delim -ECHO_T!$ECHO_T$ac_delim -LIBS!$LIBS$ac_delim -build_alias!$build_alias$ac_delim -host_alias!$host_alias$ac_delim -target_alias!$target_alias$ac_delim -INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim -INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim -INSTALL_DATA!$INSTALL_DATA$ac_delim -FC!$FC$ac_delim -FCFLAGS!$FCFLAGS$ac_delim -LDFLAGS!$LDFLAGS$ac_delim -ac_ct_FC!$ac_ct_FC$ac_delim -EXEEXT!$EXEEXT$ac_delim -OBJEXT!$OBJEXT$ac_delim -CC!$CC$ac_delim -CFLAGS!$CFLAGS$ac_delim -CPPFLAGS!$CPPFLAGS$ac_delim -ac_ct_CC!$ac_ct_CC$ac_delim -CPP!$CPP$ac_delim -GREP!$GREP$ac_delim -EGREP!$EGREP$ac_delim -MPICC!$MPICC$ac_delim -MPILIBS!$MPILIBS$ac_delim -PSBLAS_DIR!$PSBLAS_DIR$ac_delim -INSTALL!$INSTALL$ac_delim -INSTALL_DIR!$INSTALL_DIR$ac_delim -INSTALL_LIBDIR!$INSTALL_LIBDIR$ac_delim -INSTALL_INCLUDEDIR!$INSTALL_INCLUDEDIR$ac_delim -INSTALL_DOCSDIR!$INSTALL_DOCSDIR$ac_delim -SLU_FLAGS!$SLU_FLAGS$ac_delim -SLU_LIBS!$SLU_LIBS$ac_delim -UMF_FLAGS!$UMF_FLAGS$ac_delim -UMF_LIBS!$UMF_LIBS$ac_delim -SLUDIST_FLAGS!$SLUDIST_FLAGS$ac_delim -SLUDIST_LIBS!$SLUDIST_LIBS$ac_delim -FDEFINES!$FDEFINES$ac_delim -LIBOBJS!$LIBOBJS$ac_delim -LTLIBOBJS!$LTLIBOBJS$ac_delim -_ACEOF + . ./conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 70; then + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done +rm -f conf$$subs.sh -ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -if test -n "$ac_eof"; then - ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` - ac_eof=`expr $ac_eof + 1` -fi +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\).*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\).*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" -cat >>$CONFIG_STATUS <<_ACEOF -cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK _ACEOF -sed ' -s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -s/^/s,@/; s/!/@,|#_!!_#|/ -:n -t n -s/'"$ac_delim"'$/,g/; t -s/$/\\/; p -N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF -:end -s/|#_!!_#|//g -CEOF$ac_eof +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ + || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 +$as_echo "$as_me: error: could not setup config files machinery" >&2;} + { (exit 1); exit 1; }; } _ACEOF - # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty @@ -5776,19 +5983,21 @@ s/^[^=]*=[ ]*$// }' fi -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" -for ac_tag in :F $CONFIG_FILES +eval set X " :F $CONFIG_FILES " +shift +for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 -echo "$as_me: error: Invalid tag $ac_tag." >&2;} + :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 +$as_echo "$as_me: error: invalid tag $ac_tag" >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; @@ -5817,26 +6026,38 @@ echo "$as_me: error: Invalid tag $ac_tag." >&2;} [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac - ac_file_inputs="$ac_file_inputs $ac_f" + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + ac_file_inputs="$ac_file_inputs '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ - configure_input="Generated from "`IFS=: - echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} + { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin";; + *:-:* | *:-) cat >"$tmp/stdin" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } ;; esac ;; esac @@ -5846,7 +6067,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -echo X"$ac_file" | +$as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -5872,7 +6093,7 @@ echo X"$ac_file" | as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -5881,7 +6102,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -echo X"$as_dir" | +$as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -5902,17 +6123,17 @@ echo X"$as_dir" | test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -echo "$as_me: error: cannot create directory $as_dir" >&2;} + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -5952,12 +6173,13 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix esac _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= -case `sed -n '/datarootdir/ { +ac_sed_dataroot=' +/datarootdir/ { p q } @@ -5966,13 +6188,14 @@ case `sed -n '/datarootdir/ { /@infodir@/p /@localedir@/p /@mandir@/p -' $ac_file_inputs` in +' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g @@ -5986,15 +6209,16 @@ _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub $extrasub _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s&@configure_input@&$configure_input&;t t +s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t @@ -6004,21 +6228,28 @@ s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack -" $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' + { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 -echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in - -) cat "$tmp/out"; rm -f "$tmp/out";; - *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; - esac + -) cat "$tmp/out" && rm -f "$tmp/out";; + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + esac \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } ;; @@ -6033,6 +6264,11 @@ _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save +test $ac_write_fail = 0 || + { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. @@ -6054,11 +6290,15 @@ if test "$no_create" != yes; then # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi #AC_OUTPUT(Make.inc Makefile) ############################################################################### -{ echo "$as_me:$LINENO: +{ $as_echo "$as_me:$LINENO: ${PACKAGE_NAME} ${mld2p4_cv_version} has been configured as follows: PSBLAS library : ${PSBLAS_DIR} @@ -6069,7 +6309,7 @@ fi If you are satisfied, run 'make' to build ${PACKAGE_NAME} and its documentation; otherwise type ./configure --help=short for a complete list of configure options specific to ${PACKAGE_NAME}. " >&5 -echo "$as_me: +$as_echo "$as_me: ${PACKAGE_NAME} ${mld2p4_cv_version} has been configured as follows: PSBLAS library : ${PSBLAS_DIR} diff --git a/configure.ac b/configure.ac index bbf85878..b59afba7 100755 --- a/configure.ac +++ b/configure.ac @@ -38,11 +38,11 @@ dnl NOTE : odd configurations like ifc + gcc still await in the mist of the unkn ############################################################################### # NOTE: the literal for version (the second argument to AC_INIT should be a literal!) -AC_INIT([MLD2P4],1.0.1, bugreport@mld2p4.it) +AC_INIT([MLD2P4],1.1, bugreport@mld2p4.it) # VERSION is the file containing the PSBLAS version code # FIXME -mld2p4_cv_version="`cat VERSION`" +mld2p4_cv_version="1.1" # A sample source file AC_CONFIG_SRCDIR([mlprec/mld_prec_type.f90]) diff --git a/docs/html/img1.png b/docs/html/img1.png index be2b1fe9..0423c177 100644 Binary files a/docs/html/img1.png and b/docs/html/img1.png differ diff --git a/docs/html/img100.png b/docs/html/img100.png index 0497bd70..090257eb 100644 Binary files a/docs/html/img100.png and b/docs/html/img100.png differ diff --git a/docs/html/img101.png b/docs/html/img101.png index 321efb07..5d467bfe 100644 Binary files a/docs/html/img101.png and b/docs/html/img101.png differ diff --git a/docs/html/img102.png b/docs/html/img102.png index 1bb60423..ed0d3816 100644 Binary files a/docs/html/img102.png and b/docs/html/img102.png differ diff --git a/docs/html/img32.png b/docs/html/img32.png index 5ec9d53a..8f2424d5 100644 Binary files a/docs/html/img32.png and b/docs/html/img32.png differ diff --git a/docs/html/img52.png b/docs/html/img52.png index 1852b8a9..ab84318b 100644 Binary files a/docs/html/img52.png and b/docs/html/img52.png differ diff --git a/docs/html/img66.png b/docs/html/img66.png index 55d516c1..9057dc8b 100644 Binary files a/docs/html/img66.png and b/docs/html/img66.png differ diff --git a/docs/html/img67.png b/docs/html/img67.png index 3be36af8..6a50ac76 100644 Binary files a/docs/html/img67.png and b/docs/html/img67.png differ diff --git a/docs/html/img68.png b/docs/html/img68.png index f37f6240..420fc394 100644 Binary files a/docs/html/img68.png and b/docs/html/img68.png differ diff --git a/docs/html/img69.png b/docs/html/img69.png index 1842512d..f955a77b 100644 Binary files a/docs/html/img69.png and b/docs/html/img69.png differ diff --git a/docs/html/img70.png b/docs/html/img70.png index 5b68e6d9..9d9ff6b7 100644 Binary files a/docs/html/img70.png and b/docs/html/img70.png differ diff --git a/docs/html/img71.png b/docs/html/img71.png index b7d510e1..82dd7e7d 100644 Binary files a/docs/html/img71.png and b/docs/html/img71.png differ diff --git a/docs/html/img72.png b/docs/html/img72.png index f88736e7..131bd4f3 100644 Binary files a/docs/html/img72.png and b/docs/html/img72.png differ diff --git a/docs/html/img73.png b/docs/html/img73.png index fc5ad6bb..a4d1a0f8 100644 Binary files a/docs/html/img73.png and b/docs/html/img73.png differ diff --git a/docs/html/img74.png b/docs/html/img74.png index 77ba92a4..a3624ff1 100644 Binary files a/docs/html/img74.png and b/docs/html/img74.png differ diff --git a/docs/html/img75.png b/docs/html/img75.png index 8d6fa2fd..cf14fda0 100644 Binary files a/docs/html/img75.png and b/docs/html/img75.png differ diff --git a/docs/html/img76.png b/docs/html/img76.png index d7d75894..4541380e 100644 Binary files a/docs/html/img76.png and b/docs/html/img76.png differ diff --git a/docs/html/img77.png b/docs/html/img77.png index e6be141f..5a7fec66 100644 Binary files a/docs/html/img77.png and b/docs/html/img77.png differ diff --git a/docs/html/img78.png b/docs/html/img78.png index 1b414934..d1ada414 100644 Binary files a/docs/html/img78.png and b/docs/html/img78.png differ diff --git a/docs/html/img79.png b/docs/html/img79.png index cf3b348a..f292e2c4 100644 Binary files a/docs/html/img79.png and b/docs/html/img79.png differ diff --git a/docs/html/img80.png b/docs/html/img80.png index 69abd11a..fcddc00b 100644 Binary files a/docs/html/img80.png and b/docs/html/img80.png differ diff --git a/docs/html/img81.png b/docs/html/img81.png index f661a49f..49589cbe 100644 Binary files a/docs/html/img81.png and b/docs/html/img81.png differ diff --git a/docs/html/img82.png b/docs/html/img82.png index d90d6bc7..fff5aa4e 100644 Binary files a/docs/html/img82.png and b/docs/html/img82.png differ diff --git a/docs/html/img83.png b/docs/html/img83.png index b8b743c5..aa3183b3 100644 Binary files a/docs/html/img83.png and b/docs/html/img83.png differ diff --git a/docs/html/img84.png b/docs/html/img84.png index f34aa7f1..e2052d1f 100644 Binary files a/docs/html/img84.png and b/docs/html/img84.png differ diff --git a/docs/html/img85.png b/docs/html/img85.png index 822e77fb..fdc6b0b0 100644 Binary files a/docs/html/img85.png and b/docs/html/img85.png differ diff --git a/docs/html/img86.png b/docs/html/img86.png index f2a18b21..7ae1607b 100644 Binary files a/docs/html/img86.png and b/docs/html/img86.png differ diff --git a/docs/html/img87.png b/docs/html/img87.png index c1c56e36..208e988f 100644 Binary files a/docs/html/img87.png and b/docs/html/img87.png differ diff --git a/docs/html/img88.png b/docs/html/img88.png index da044922..63e21213 100644 Binary files a/docs/html/img88.png and b/docs/html/img88.png differ diff --git a/docs/html/img89.png b/docs/html/img89.png index 0d021da2..63570fe7 100644 Binary files a/docs/html/img89.png and b/docs/html/img89.png differ diff --git a/docs/html/img90.png b/docs/html/img90.png index 5a5301f3..63283ddc 100644 Binary files a/docs/html/img90.png and b/docs/html/img90.png differ diff --git a/docs/html/img91.png b/docs/html/img91.png index c266352e..1ad85798 100644 Binary files a/docs/html/img91.png and b/docs/html/img91.png differ diff --git a/docs/html/img92.png b/docs/html/img92.png index 43e3e8dd..197d43fb 100644 Binary files a/docs/html/img92.png and b/docs/html/img92.png differ diff --git a/docs/html/img93.png b/docs/html/img93.png index 381d3787..809810bb 100644 Binary files a/docs/html/img93.png and b/docs/html/img93.png differ diff --git a/docs/html/img94.png b/docs/html/img94.png index 89fc7ed8..37d84a8e 100644 Binary files a/docs/html/img94.png and b/docs/html/img94.png differ diff --git a/docs/html/img95.png b/docs/html/img95.png index 21d66462..43c3ba66 100644 Binary files a/docs/html/img95.png and b/docs/html/img95.png differ diff --git a/docs/html/img96.png b/docs/html/img96.png index 70d36f07..a298eb33 100644 Binary files a/docs/html/img96.png and b/docs/html/img96.png differ diff --git a/docs/html/img97.png b/docs/html/img97.png index f7fc58a0..3ac21e5c 100644 Binary files a/docs/html/img97.png and b/docs/html/img97.png differ diff --git a/docs/html/img98.png b/docs/html/img98.png index 0b6abf47..f01b05c1 100644 Binary files a/docs/html/img98.png and b/docs/html/img98.png differ diff --git a/docs/html/img99.png b/docs/html/img99.png index a9d84a65..2694e0c6 100644 Binary files a/docs/html/img99.png and b/docs/html/img99.png differ diff --git a/docs/html/index.html b/docs/html/index.html index 03db67c7..c433db6a 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -65,9 +65,9 @@ University of Rome ``Tor Vergata'', Italy


-Software version: 1.0 +Software version: 1.1
-Sept. 9th, 2008 +March 13, 2009
diff --git a/docs/html/node1.html b/docs/html/node1.html index f844c340..e902e46f 100644 --- a/docs/html/node1.html +++ b/docs/html/node1.html @@ -64,7 +64,7 @@ MLD2P4 (MULTI-LEVEL DOMAIN D It implements various versions of one-level additive and of multi-level additive and hybrid Schwarz algorithms. In the multi-level case, a purely algebraic approach is applied to generate coarse-level corrections, so that no geometric background is needed -concerning the matrix to be preconditioned. The matrix is required to be square, real +concerning the matrix to be preconditioned. The matrix is assumed to be square, real or complex, with a symmetric sparsity pattern.

diff --git a/docs/html/node11.html b/docs/html/node11.html index 120f90fb..c23e5c8d 100644 --- a/docs/html/node11.html +++ b/docs/html/node11.html @@ -135,11 +135,11 @@ of this algorithm is implemented, where the smoothed aggregation is applied loca to each submatrix [23]. In the next two subsections we provide a brief description of the multi-level Schwarz preconditioners and of the smoothed -aggregation technique as implemented in MLD2P4. For further details the user +aggregation technique as implemented in MLD2P4. For further details the reader is referred to [2,3,4,4,,20].

diff --git a/docs/html/node12.html b/docs/html/node12.html index 0e2c581a..61445674 100644 --- a/docs/html/node12.html +++ b/docs/html/node12.html @@ -276,7 +276,7 @@ three steps: ALT="$i=1,\ldots,m$">;

  • prolongation and sum of the $w_i$'s, i.e. \framebox{
 \begin{minipage}{.85\textwidth} {\small
 \begin{tabbing}
 \quad \=\quad...
 ...= y_l+r_l$\\
-\textbf{endfor}  [1mm]
+\textbf{endfor} \\ [1mm]
 $w = y_1$;
 \end{tabbing}}
 \end{minipage}} diff --git a/docs/html/node13.html b/docs/html/node13.html index d8dfcce6..18fd24ae 100644 --- a/docs/html/node13.html +++ b/docs/html/node13.html @@ -62,7 +62,7 @@ Smoothed Aggregation

    In order to define the restriction operator $R_C$, which is used to compute the coarse-level matrix $W$ into disjoint subsets (aggregates), and to define the coarse-to-fine space transfer operator $R_C^T$ by applying a suitable smoother to a simple piecewise constant prolongation operator, to improve the quality of the coarse-space correction. @@ -100,15 +100,15 @@ Three main steps can be identified in the smoothed aggregation procedure:

  • construction of the prolongator $R_C^T$;
  • application of $R_C$ and $R_C^T$ to build $N_r$ is made of vertices of $W$ that are strongly coupled to a certain root vertex $r \in W$, i.e.

    $\theta \in [0,1]$. Since this algorithm has a sequential nature, a decoupled version of it has been chosen, where each processor $i$ independently applies the algorithm to the set of vertices $W_i^0$ assigned to it in the initial data distribution. This version is embarrassingly parallel, since it does not require any data communication. On the other hand, it may produce non-uniform aggregates near boundary vertices, @@ -183,14 +183,14 @@ since it has been shown to produce good results in practice

    The prolongator $P_C=R_C^T$ is built starting from a tentative prolongator $P \in \Re^{n \times n_C}$, defined as

    @@ -207,7 +207,7 @@ P=(p_{ij}), \quad p_{ij}=
    \begin{displaymath}
 P=(p_{ij}), \quad p_{ij}=
 \left\{ \begin{array}{ll}
@@ -222,17 +222,17 @@ P=(p_{ij}), \quad p_{ij}=
 <BR CLEAR=

    $P_C$ is obtained by applying to $P$ a smoother $S \in \Re^{n \times n}$:
    @@ -245,7 +245,7 @@ P_C = S P, @@ -260,7 +260,7 @@ Schwarz method [22]. A simple choice for $S$ is the damped Jacobi smoother:
    @@ -273,7 +273,7 @@ S = I - \omega D^{-1} A ,
    \begin{displaymath}
 P_C = S P,
 \end{displaymath}
    @@ -283,11 +283,11 @@ S = I - \omega D^{-1} A ,

    where the value of $\omega$ can be chosen using some estimate of the spectral radius of $D^{-1}A$ [1]. diff --git a/docs/html/node14.html b/docs/html/node14.html index a99bc3e8..f0875a6b 100644 --- a/docs/html/node14.html +++ b/docs/html/node14.html @@ -144,7 +144,7 @@ compilers.


    -
    +
    \begin{displaymath}
 S = I - \omega D^{-1} A ,
 \end{displaymath}
    Table 1: Preconditioner types, corresponding strings and default choices. @@ -185,12 +185,12 @@ Preconditioner types, corresponding strings and default choices. Aggregation: decoupled smoothed aggregation with threshold $\theta = 0$. Coarsest matrix: distributed among the processors. Coarsest-level solver: 4 sweeps of the block-Jacobi solver, - with LU (or ILU) factorization of the blocks + with LU or ILU factorization of the blocks (UMFPACK for the double precision versions and SuperLU for the single precision ones, if the packages have been installed; ILU(0), otherwise). diff --git a/docs/html/node15.html b/docs/html/node15.html index 208e2482..71321031 100644 --- a/docs/html/node15.html +++ b/docs/html/node15.html @@ -90,7 +90,7 @@ the corresponding Fortran 95 codes are available in examples/fileread/ -
    +
    Figure 2: Setup and application of the default multi-level Schwarz preconditioner. @@ -207,7 +207,7 @@ and linked to the MLD2P4 library.

    -

    +
    @@ -239,7 +239,7 @@ Setup of a hybrid three-level Schwarz preconditioner.

    -

    +
    Figure 3: Setup of a hybrid three-level Schwarz preconditioner.
    @@ -271,7 +271,7 @@ Setup of an additive three-level Schwarz preconditioner.

    -

    +
    Figure 4: Setup of an additive three-level Schwarz preconditioner.
    diff --git a/docs/html/node16.html b/docs/html/node16.html index f3e6ca21..2e3e2353 100644 --- a/docs/html/node16.html +++ b/docs/html/node16.html @@ -90,8 +90,8 @@ i.e. WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" SRC="img21.png" ALT="$v$"> and $w$ involved in the preconditioner application 4.


    -
    +
    Figure 5: Setup of a one-level Schwarz preconditioner.
    Table 2: Parameters defining the type of multi-level preconditioner. @@ -181,7 +181,7 @@ Parameters defining the type of multi-level preconditioner.


    -
    +
    @@ -240,8 +240,8 @@ Parameters defining the one-level preconditioner used as smoother. @@ -120,8 +120,8 @@ and hence it is completely transparent to the user. @@ -148,28 +148,28 @@ and hence it is completely transparent to the user. --> $op(M^{-1}) = M^{-1}$; if trans = 'T','t' then $op(M^{-1}) = M^{-T}$ (transpose of $M^{-1})$; if trans = 'C','c' then $op(M^{-1}) = M^{-C}$ (conjugate transpose of $M^{-1})$. diff --git a/docs/html/node24.html b/docs/html/node24.html index 43030fb9..05ddcbbc 100644 --- a/docs/html/node24.html +++ b/docs/html/node24.html @@ -63,11 +63,11 @@ License

    The MLD2P4 is freely distributable under the following copyright terms:

     
    -                         MLD2P4  version 1.0
    +                         MLD2P4  version 1.1
     MultiLevel Domain Decomposition Parallel Preconditioners Package
                based on PSBLAS (Parallel Sparse BLAS version 2.3)
     
    -(C) Copyright 2008
    +(C) Copyright 2008, 2009
     
                         Salvatore Filippone  University of Rome Tor Vergata       
                         Alfredo Buttari      University of Rome Tor Vergata
    diff --git a/docs/html/node26.html b/docs/html/node26.html
    index 3f12c909..6f3e7f52 100644
    --- a/docs/html/node26.html
    +++ b/docs/html/node26.html
    @@ -67,7 +67,7 @@ Mathematics Department, Macquarie University, Sydney.
     The command line arguments were: 
    latex2html -noaddress -dir ../../html userhtml.tex

    -The translation was initiated by Salvatore Filippone on 2008-09-12 +The translation was initiated by Salvatore Filippone on 2009-03-13


    diff --git a/docs/html/node3.html b/docs/html/node3.html index 641f4ce7..530af21c 100644 --- a/docs/html/node3.html +++ b/docs/html/node3.html @@ -75,7 +75,7 @@ Ax=b, -->
    Table 3: Parameters defining the one-level preconditioner used as smoother. @@ -198,8 +198,8 @@ Parameters defining the one-level preconditioner used as smoother.
    mld_sub_ovr_ integer any int. num. $\ge 0$ 1 Number of overlap layers.
    mld_sub_fillin_ integer Any int. num. $\ge 0$ 0 Fill-in level mld_sub_iluthrs_ real(kind_parameter) Any real num. $\ge 0$ 0 Drop tolerance $t$ in the ILU(

    -
    +
    - - - + + + @@ -326,13 +327,13 @@ Parameters defining the aggregation algorithm. @@ -341,8 +342,8 @@ Parameters defining the aggregation algorithm. @@ -355,11 +356,11 @@ Parameters defining the aggregation algorithm. --> $4/(3\rho(D^{-1}A))$
    Table 4: Parameters defining the aggregation algorithm. @@ -304,20 +304,21 @@ Parameters defining the aggregation algorithm.
    mld_aggr_kind_ character(len=*)'SMOOTH' 'RAW''SMOOTH'Type of aggregation: smoothed, raw (i.e. using the tentative prolongator).'SMOOTHED' 'NONSMOOTHED''SMOOTHED'Type of aggregation: smoothed, nonsmoothed + (i.e. using the tentative prolongator).
    mld_aggr_thresh_ real(kind_parameter) Any real num. $\in [0, 1]$ 0 Threshold $\theta$ in the aggregation algorithm.
    mld_aggr_omega_alg_'EIG_EST' How the damping parameter $\omega$ in the smoothed aggregation should be computed: either via an estimate of the spectral radius of $D^{-1}A$, or explicily specified by the user.
    'A_NORMI' 'A_NORMI' How to estimate the spectral radius of $D^{-1}A$. Currently only the infinity norm estimate is available. Damping parameter $\omega$ in the smoothed aggregation algorithm. It must be set by the user if USER_CHOICE was specified for @@ -367,11 +368,11 @@ Parameters defining the aggregation algorithm. otherwise it is computed by the library, using the selected estimate of the spectral radius $\rho(D^{-1}A)$ of $D^{-1}A$.
    @@ -383,7 +384,7 @@ Parameters defining the aggregation algorithm.


    -
    +
    - - + -
    Table 5: Parameters defining the coarse-space correction at the coarsest @@ -440,8 +441,8 @@ level.
    mld_coarse_sweeps_ integer Any int. num. $> 0$ 4 Number of Block-Jacobi sweeps when 'BJAC' is used as @@ -450,8 +451,8 @@ level.
    mld_coarse_fillin_ integer Any int. num. $\ge 0$ 0 Fill-in level
    mld_coarse_iluthrs_ real(kind_parameter) Any real. num. $\ge 0$ 0 Drop tolerance $t$ in the ILU($p,t$) factorization.
    Note Defaults for +
    Note: defaults for mld_coarse_subsolve_ are chosen as
    Single precision version: 'SLU' if installed, 'ILU' otherwise
    single precision version: 'SLU' if installed, 'ILU' otherwise
    Double precision version: 'UMF' if installed, +
    double precision version: 'UMF' if installed, else 'SLU' if installed, 'ILU' otherwise
    diff --git a/docs/html/node20.html b/docs/html/node20.html index 40169803..7495a2bf 100644 --- a/docs/html/node20.html +++ b/docs/html/node20.html @@ -72,20 +72,20 @@ This routine computes $y = op(M^{-1})\, x$, where $M$ is a previously built preconditioner, stored into p, and $op$ denotes the preconditioner itself or its transpose, according to the value of trans. Note that, when MLD2P4 is used with a Krylov solver from PSBLAS, -mld_precaply is called within the PSBLAS routine mld_krylov +mld_precaply is called within the PSBLAS routine psb_krylov and hence it is completely transparent to the user.

    @@ -109,8 +109,8 @@ and hence it is completely transparent to the user.

      The local part of the vector $x$. Note that type and kind_parameter must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.
      The local part of the vector $y$. Note that type and kind_parameter must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.
    work
    \begin{displaymath}
 Ax=b,
@@ -151,7 +151,6 @@ On the other hand, the routines of the middle and lower layer can be used and ex
 by expert users to build new versions of multi-level Schwarz preconditioners.
 We provide here a description of the upper-layer routines, but not of the
 medium-layer ones.
-
 <P>
 This guide is organized as follows. General information on the distribution of the source code
 is reported in Section <A HREF=2, while details on the configuration diff --git a/docs/html/node8.html b/docs/html/node8.html index ce914467..d4232a05 100644 --- a/docs/html/node8.html +++ b/docs/html/node8.html @@ -75,7 +75,7 @@ be specified with an absolute path). The full set of options may be looked at by issuing the command ./configure --help, which produces:
    -`configure' configures MLD2P4 1.0 to adapt to many kinds of systems.
    +`configure' configures MLD2P4 1.1 to adapt to many kinds of systems.
     
     Usage: ./configure [OPTION]... [VAR=VALUE]...
     
    diff --git a/docs/html/userhtml.html b/docs/html/userhtml.html
    index 03db67c7..c433db6a 100644
    --- a/docs/html/userhtml.html
    +++ b/docs/html/userhtml.html
    @@ -65,9 +65,9 @@ University of Rome ``Tor Vergata'', Italy
     


    -Software version: 1.0 +Software version: 1.1
    -Sept. 9th, 2008 +March 13, 2009
    diff --git a/docs/mld2p4-1.0-guide.pdf b/docs/mld2p4-1.0-guide.pdf deleted file mode 100644 index 2c422320..00000000 --- a/docs/mld2p4-1.0-guide.pdf +++ /dev/null @@ -1,11793 +0,0 @@ -%PDF-1.4 -5 0 obj -<< /S /GoTo /D (title.0) >> -endobj -8 0 obj -(MLD2P4 User's and Reference Guide) -endobj -9 0 obj -<< /S /GoTo /D (section*.1) >> -endobj -12 0 obj -(Abstract) -endobj -13 0 obj -<< /S /GoTo /D (section.1) >> -endobj -16 0 obj -(1 General Overview) -endobj -17 0 obj -<< /S /GoTo /D (section.2) >> -endobj -20 0 obj -(2 Code Distribution) -endobj -21 0 obj -<< /S /GoTo /D (section.3) >> -endobj -24 0 obj -(3 Configuring and Building MLD2P4) -endobj -25 0 obj -<< /S /GoTo /D (subsection.3.1) >> -endobj -28 0 obj -(3.1 Prerequisites) -endobj -29 0 obj -<< /S /GoTo /D (subsection.3.2) >> -endobj -32 0 obj -(3.2 Optional third party libraries) -endobj -33 0 obj -<< /S /GoTo /D (subsection.3.3) >> -endobj -36 0 obj -(3.3 Configuration options) -endobj -37 0 obj -<< /S /GoTo /D (subsection.3.4) >> -endobj -40 0 obj -(3.4 Bug reporting) -endobj -41 0 obj -<< /S /GoTo /D (subsection.3.5) >> -endobj -44 0 obj -(3.5 Example and test programs) -endobj -45 0 obj -<< /S /GoTo /D (section.4) >> -endobj -48 0 obj -(4 Multi-level Domain Decomposition Background) -endobj -49 0 obj -<< /S /GoTo /D (subsection.4.1) >> -endobj -52 0 obj -(4.1 Multi-level Schwarz Preconditioners) -endobj -53 0 obj -<< /S /GoTo /D (subsection.4.2) >> -endobj -56 0 obj -(4.2 Smoothed Aggregation) -endobj -57 0 obj -<< /S /GoTo /D (section.5) >> -endobj -60 0 obj -(5 Getting Started) -endobj -61 0 obj -<< /S /GoTo /D (subsection.5.1) >> -endobj -64 0 obj -(5.1 Examples) -endobj -65 0 obj -<< /S /GoTo /D (section.6) >> -endobj -68 0 obj -(6 User Interface) -endobj -69 0 obj -<< /S /GoTo /D (subsection.6.1) >> -endobj -72 0 obj -(6.1 Subroutine mld\137precinit) -endobj -73 0 obj -<< /S /GoTo /D (subsection.6.2) >> -endobj -76 0 obj -(6.2 Subroutine mld\137precset) -endobj -77 0 obj -<< /S /GoTo /D (subsection.6.3) >> -endobj -80 0 obj -(6.3 Subroutine mld\137precbld) -endobj -81 0 obj -<< /S /GoTo /D (subsection.6.4) >> -endobj -84 0 obj -(6.4 Subroutine mld\137precaply) -endobj -85 0 obj -<< /S /GoTo /D (subsection.6.5) >> -endobj -88 0 obj -(6.5 Subroutine mld\137precfree) -endobj -89 0 obj -<< /S /GoTo /D (subsection.6.6) >> -endobj -92 0 obj -(6.6 Subroutine mld\137precdescr) -endobj -93 0 obj -<< /S /GoTo /D (section.7) >> -endobj -96 0 obj -(7 Error Handling) -endobj -97 0 obj -<< /S /GoTo /D (section.A) >> -endobj -100 0 obj -(A License) -endobj -101 0 obj -<< /S /GoTo /D (section*.3) >> -endobj -104 0 obj -(References) -endobj -105 0 obj -<< /S /GoTo /D [106 0 R /Fit ] >> -endobj -108 0 obj << -/Length 1831 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -1 0 0 1 -412.4511 -24.9066 cm -0 g 0 G -1 g 1 G -0 g 0 G -1 g 1 G -0 g 0 G -0 g 0 G -0 g 0 G -1 g 1 G -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G -0 g 0 G -0.25 g 0.25 G -0 g 0 G -0.5 g 0.5 G -0 g 0 G -1 0 0 1 295.4835 -96.2627 cm -0 g 0 G -0 g 0 G -1 0 0 1 -389.0837 -618.8325 cm -BT -/F19 24.7871 Tf 394.5382 618.8325 Td[(MLD2)-1(P)1(4)]TJ -229.0594 -27.0226 Td[(Us)1(e)-1(r')-1(s)-374(and)-375(Re)-1(f)1(e)-1(re)-1(nce)-375(Gui)-1(de)]TJ -ET -1 0 0 1 93.6002 573.5637 cm -0 0 412.4511 4.9813 re f -1 0 0 1 -93.6002 -573.5637 cm -BT -/F21 14.3462 Tf 192.1325 548.5855 Td[(A)-350(guide)-350(for)-349(the)-350(Multi-L)49(evel)-350(Domain)-350(D)-1(e)50(c)50(omp)50(osition)]TJ -5.5128 -17.2553 Td[(Par)50(al)-50(lel)-350(Pr)50(e)50(c)50(onditioner)1(s)-350(P)-1(ackage)-350(b)50(ase)50(d)-350(on)-350(PSB)-1(LAS)]TJ -ET -1 0 0 1 399.8094 451.9414 cm -0 g 0 G -0 g 0 G -1 0 0 1 -399.8094 -451.9414 cm -BT -/F19 11.9552 Tf 405.264 451.9414 Td[(P)32(asqua)-375(D'Am)31(br)-1(a)]TJ/F39 11.9552 Tf -31.5954 -13.9477 Td[(ICAR-C)-1(NR)1(,)-327(Na)1(ples)-1(,)-326(Ita)1(ly)]TJ/F19 11.9552 Tf 20.4345 -29.3898 Td[(Dani)-1(ela)-375(di)-376(Ser)-1(a)1(\014no)]TJ/F39 11.9552 Tf -62.7836 -13.9477 Td[(Second)-326(Univ)27(ersit)27(y)-326(o)1(f)-327(Na)1(ple)-1(s,)-326(Italy)]TJ/F19 11.9552 Tf 60.715 -29.3898 Td[(Salv)62(a)1(t)-1(or)-1(e)-375(Fi)-1(li)-1(pp)-31(o)-1(ne)]TJ/F39 11.9552 Tf -93.3271 -13.9477 Td[(Univ)27(ersit)28(y)-326(of)-327(R)1(ome)-326(\134T)82(or)-326(V)81(erg)1(ata)1(",)-326(Italy)]TJ -ET -1 0 0 1 393.5521 272.3948 cm -0 g 0 G -0 g 0 G -1 0 0 1 -393.5521 -272.3948 cm -BT -/F39 11.9552 Tf 399.0066 272.3948 Td[(Soft)28(w)27(are)-326(v)27(ersion:)-435(1)1(.0)]TJ 28.3545 -13.9477 Td[(Sept.)-435(9t)1(h,)-327(2)1(008)]TJ -ET -1 0 0 1 93.6002 91.6329 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -106 0 obj << -/Type /Page -/Contents 108 0 R -/Resources 107 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 120 0 R ->> endobj -109 0 obj << -/D [106 0 R /XYZ 93.6002 740.0018 null] ->> endobj -110 0 obj << -/D [106 0 R /XYZ 93.6002 715.0952 null] ->> endobj -6 0 obj << -/D [106 0 R /XYZ 93.6002 715.0952 null] ->> endobj -107 0 obj << -/Font << /F19 113 0 R /F21 116 0 R /F39 119 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -123 0 obj << -/Length 135 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -1 0 0 1 -412.4511 -648.3688 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -122 0 obj << -/Type /Page -/Contents 123 0 R -/Resources 121 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 120 0 R ->> endobj -124 0 obj << -/D [122 0 R /XYZ 86.3998 740.0018 null] ->> endobj -121 0 obj << -/ProcSet [ /PDF ] ->> endobj -127 0 obj << -/Length 4830 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -1 0 0 1 -93.6002 -740.0018 cm -BT -/F15 10.9091 Tf 503.021 740.0018 Td[(i)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -506.0513 -740.0018 cm -BT -/F19 14.3462 Tf 93.6002 704.1363 Td[(Abs)1(t)-1(ract)]TJ/F43 10.9091 Tf 0 -24.3522 Td[(MLD2P4)-514(\050Mul)66(ti-L)-1(e)1(v)-1(e)1(l)-515(Domain)-515(Decom)1(pos)1(i)-1(tion)-514(P)87(aral)-1(lel)-515(P)1(r)-1(e)1(cond)-1(itioners)]TJ 0 -13.5492 Td[(P)88(a)22(cka)22(ge)-370(based)-370(on)-370(PSBLAS)]TJ/F15 10.9091 Tf 149.304 0 Td[(\051)-326(is)-326(a)-326(pac)28(k)55(age)-326(of)-326(p)1(arall)1(e)-1(l)-326(al)1(ge)-1(b)1(raic)-326(m)27(u)1(lti-lev)28(e)-1(l)-325(prec)-1(on)1(di)1(-)]TJ -149.304 -13.5492 Td[(tion)1(e)-1(r)1(s)-1(.)-442(It)-327(im)-1(p)1(lem)-1(en)28(ts)-328(v)56(ar)1(ious)-328(v)28(ersions)-327(of)-327(one-)-1(l)1(e)-1(v)28(el)-327(addi)1(tiv)28(e)-328(an)1(d)-327(of)-327(m)27(u)1(lti-lev)28(e)-1(l)-327(add)1(itiv)28(e)]TJ 0 -13.5492 Td[(and)-338(h)28(yb)1(rid)-338(Sc)28(h)28(w)27(ar)1(z)-340(al)1(gorith)1(m)-1(s.)-461(In)-339(th)1(e)-340(m)28(ult)1(i-)-1(l)1(e)-1(v)28(el)-339(cas)-1(e,)-340(a)-339(pur)1(e)-1(l)1(y)-339(algebrai)1(c)-340(ap)1(proac)28(h)-339(is)]TJ 0 -13.5492 Td[(app)1(lied)-306(to)-307(ge)-1(n)1(e)-1(r)1(ate)-307(c)-1(oarse-)-1(lev)28(el)-307(correc)-1(ti)1(ons,)-312(s)-1(o)-307(t)1(hat)-307(n)1(o)-307(geom)-1(etric)-307(b)1(ac)27(kgrou)1(nd)-306(is)-307(needed)]TJ 0 -13.5492 Td[(conce)-1(rn)1(in)1(g)-348(the)-348(matri)1(x)-348(to)-347(b)-28(e)-348(pr)1(e)-1(cond)1(ition)1(e)-1(d)1(.)-488(Th)1(e)-348(m)-1(atr)1(ix)-348(i)1(s)-349(r)1(e)-1(q)1(uir)1(e)-1(d)-347(to)-348(b)-27(e)-348(s)-1(q)1(uare,)-351(real)]TJ 0 -13.5492 Td[(or)-333(com)-1(p)1(le)-1(x)1(,)-333(w)-1(i)1(th)-333(a)-334(symme)-1(tr)1(ic)-334(sparsit)28(y)-333(patt)1(e)-1(rn)1(.)]TJ 16.9365 -13.5492 Td[(MLD2P)1(4)-362(h)1(as)-362(b)-28(ee)-1(n)-361(d)1(e)-1(signed)-361(to)-362(p)1(ro)28(vid)1(e)-363(scalable)-362(an)1(d)-361(e)-1(asy-to-)-1(u)1(s)-1(e)-362(p)1(rec)-1(on)1(diti)1(oners)-362(in)]TJ -16.9365 -13.5492 Td[(th)1(e)-347(con)28(text)-345(of)-346(th)1(e)-346(PS)1(B)-1(LAS)-345(\050P)28(ar)1(allel)-346(S)1(parse)-346(Bas)-1(ic)-346(Lin)1(e)-1(ar)-345(Algebr)1(a)-346(Su)1(bp)1(rograms\051)-346(com)-1(-)]TJ 0 -13.5492 Td[(pu)1(tation)1(al)-357(f)1(rame)-1(w)28(ork)-356(and)-356(c)-1(an)-356(b)-27(e)-357(use)-1(d)-356(in)-356(conj)1(uction)-356(w)-1(i)1(th)-357(t)1(he)-357(Kry)1(lo)28(v)-357(solv)28(ers)-357(a)28(v)55(ai)1(lable)]TJ 0 -13.5492 Td[(in)-423(th)1(is)-424(framew)27(or)1(k.)-716(M)1(LD2P4)-423(e)-1(n)1(ables)-424(the)-424(u)1(s)-1(er)-424(t)1(o)-424(e)-1(asily)-423(s)-1(p)-27(ec)-1(if)1(y)-424(d)1(i\013e)-1(r)1(e)-1(n)28(t)-423(as)-1(p)-27(ec)-1(ts)-424(of)-423(a)]TJ 0 -13.5492 Td[(generic)-485(alge)-1(b)1(raic)-485(m)27(u)1(ltil)1(e)-1(v)28(el)-485(Sc)28(h)28(w)27(ar)1(z)-486(p)1(rec)-1(on)1(diti)1(oner,)-523(th)28(u)1(s)-486(al)1(lo)28(w)-1(i)1(ng)-485(to)-485(se)-1(arc)28(h)-485(f)1(or)-485(the)]TJ 0 -13.5492 Td[(\134b)-27(e)-1(st")-333(prec)-1(on)1(di)1(tioner)-333(for)-333(th)1(e)-334(p)1(robl)1(e)-1(m)-334(at)-333(h)1(and)1(.)]TJ 16.9365 -13.5492 Td[(The)-279(p)1(ac)27(k)56(age)-279(h)1(as)-279(b)-28(ee)-1(n)-277(des)-1(ign)1(e)-1(d)-278(emplo)28(yin)1(g)-279(ob)-55(j)1(e)-1(ct-orien)28(ted)-278(te)-1(c)28(hn)1(iqu)1(e)-1(s,)-290(u)1(s)-1(i)1(ng)-278(F)83(or)1(tran)]TJ -16.9365 -13.5492 Td[(95,)-485(with)-454(in)28(terf)1(ac)-1(es)-455(to)-455(add)1(ition)1(al)-455(th)1(ird)-454(par)1(t)28(y)-455(li)1(brar)1(ie)-1(s)-455(suc)28(h)-455(as)-455(UMF)1(P)83(A)28(CK,)-454(Sup)-27(erLU)]TJ 0 -13.5492 Td[(and)-365(Su)1(p)-28(erLU)]TJ -ET -1 0 0 1 158.4299 476.5462 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.2728 0.1992 l -S -Q -1 0 0 1 -158.4299 -476.5462 cm -BT -/F15 10.9091 Tf 161.7027 476.5462 Td[(Dist,)-374(th)1(at)-366(c)-1(an)-365(b)-28(e)-366(e)-1(x)1(ploit)1(e)-1(d)-366(i)1(n)-366(b)1(uild)1(in)1(g)-367(m)28(ul)1(ti-le)-1(v)28(el)-366(p)1(re)-1(cond)1(ition)1(e)-1(r)1(s)-1(.)-542(The)]TJ -68.1025 -13.5492 Td[(par)1(allel)-276(impl)1(e)-1(me)-1(n)29(tation)-276(i)1(s)-277(b)1(as)-1(ed)-276(on)-275(a)-276(Sin)1(gle)-276(Progr)1(am)-277(M)1(ult)1(iple)-276(Data)-276(\050S)1(PM)1(D\051)-276(par)1(adigm)]TJ 0 -13.5492 Td[(for)-266(d)1(is)-1(tr)1(ibu)1(ted-m)-1(emory)-266(arc)27(h)1(ite)-1(ctu)1(re)-1(s;)-289(t)1(he)-267(in)28(ter-pr)1(o)-28(ce)-1(ss)-267(data)-266(c)-1(omm)27(u)1(nication)-266(is)-267(b)1(as)-1(ed)-266(on)]TJ 0 -13.5492 Td[(MP)1(I)-334(an)1(d)-333(is)-334(managed)-333(mainl)1(y)-333(throu)1(gh)-333(PS)1(BLAS.)]TJ 16.9365 -13.5492 Td[(This)-353(guid)1(e)-354(pr)1(o)27(v)1(ides)-354(a)-354(b)1(rief)-353(des)-1(cri)1(ption)-353(of)-353(th)1(e)-354(fu)1(nction)1(alities)-354(and)-353(t)1(he)-354(u)1(s)-1(er)-354(i)1(n)28(terface)]TJ -16.9365 -13.5492 Td[(of)-333(MLD)1(2P4.)]TJ -ET -1 0 0 1 93.6002 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -126 0 obj << -/Type /Page -/Contents 127 0 R -/Resources 125 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 120 0 R ->> endobj -128 0 obj << -/D [126 0 R /XYZ 93.6002 740.0018 null] ->> endobj -10 0 obj << -/D [126 0 R /XYZ 93.6002 693.3333 null] ->> endobj -125 0 obj << -/Font << /F15 131 0 R /F19 113 0 R /F43 134 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -137 0 obj << -/Length 222 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(ii)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -412.4511 -648.3688 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -136 0 obj << -/Type /Page -/Contents 137 0 R -/Resources 135 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 120 0 R ->> endobj -138 0 obj << -/D [136 0 R /XYZ 86.3998 740.0018 null] ->> endobj -135 0 obj << -/Font << /F15 131 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -141 0 obj << -/Length 13097 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -1 0 0 1 -93.6002 -740.0018 cm -BT -/F15 10.9091 Tf 496.9604 740.0018 Td[(iii)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -506.0513 -740.0018 cm -BT -/F19 14.3462 Tf 93.6002 704.1363 Td[(Co)-1(n)31(te)-1(n)32(t)-1(s)]TJ -ET -1 0 0 1 93.6002 679.678 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -679.678 cm -BT -/F45 10.9091 Tf 93.6002 679.678 Td[(Abstract)]TJ -ET -1 0 0 1 141.6014 679.678 cm -0 g 0 G -1 0 0 1 -141.6014 -679.678 cm -BT -/F45 10.9091 Tf 502.5665 679.678 Td[(i)]TJ -ET -1 0 0 1 93.6002 655.2197 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -655.2197 cm -BT -/F45 10.9091 Tf 93.6002 655.2197 Td[(1)-925(General)-384(Ov)33(e)-1(r)1(vi)-1(ew)]TJ -ET -1 0 0 1 208.7587 655.2197 cm -0 g 0 G -1 0 0 1 -208.7587 -655.2197 cm -BT -/F45 10.9091 Tf 499.7786 655.2197 Td[(1)]TJ -ET -1 0 0 1 93.6002 630.7614 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -630.7614 cm -BT -/F45 10.9091 Tf 93.6002 630.7614 Td[(2)-925(Co)-31(de)-384(Distribution)]TJ -ET -1 0 0 1 209.6769 630.7614 cm -0 g 0 G -1 0 0 1 -209.6769 -630.7614 cm -BT -/F45 10.9091 Tf 499.7786 630.7614 Td[(3)]TJ -ET -1 0 0 1 93.6002 606.3031 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -606.3031 cm -BT -/F45 10.9091 Tf 93.6002 606.3031 Td[(3)-925(Con)1(\014guring)-383(and)-384(Buildi)-1(ng)-383(ML)1(D2P4)]TJ -ET -1 0 0 1 303.7126 606.3031 cm -0 g 0 G -1 0 0 1 -303.7126 -606.3031 cm -BT -/F45 10.9091 Tf 499.7786 606.3031 Td[(4)]TJ -ET -1 0 0 1 109.9639 592.7539 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -109.9639 -592.7539 cm -BT -/F15 10.9091 Tf 109.9639 592.7539 Td[(3.1)-1022(Pr)1(e)-1(r)1(e)-1(qu)1(isites)]TJ -ET -1 0 0 1 196.2974 592.7539 cm -0 g 0 G -1 0 0 1 -196.2974 -592.7539 cm -BT -/F15 10.9091 Tf 206.629 592.7539 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ -ET -1 0 0 1 500.5968 592.7539 cm -0 g 0 G -1 0 0 1 -500.5968 -592.7539 cm -BT -/F15 10.9091 Tf 500.5968 592.7539 Td[(4)]TJ -ET -1 0 0 1 506.0513 592.7539 cm -0 g 0 G -1 0 0 1 -396.0874 -13.5492 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -109.9639 -579.2047 cm -BT -/F15 10.9091 Tf 109.9639 579.2047 Td[(3.2)-1022(Op)1(tional)-333(th)1(ird)-332(part)28(y)-333(li)1(brar)1(ie)-1(s)]TJ -ET -1 0 0 1 275.2369 579.2047 cm -0 g 0 G -1 0 0 1 -275.2369 -579.2047 cm -BT -/F15 10.9091 Tf 282.9917 579.2047 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ -ET -1 0 0 1 500.5968 579.2047 cm -0 g 0 G -1 0 0 1 -500.5968 -579.2047 cm -BT -/F15 10.9091 Tf 500.5968 579.2047 Td[(5)]TJ -ET -1 0 0 1 506.0513 579.2047 cm -0 g 0 G -1 0 0 1 -396.0874 -13.5492 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -109.9639 -565.6555 cm -BT -/F15 10.9091 Tf 109.9639 565.6555 Td[(3.3)-1022(Con\014)1(gurat)1(ion)-333(opti)1(ons)]TJ -ET -1 0 0 1 238.7823 565.6555 cm -0 g 0 G -1 0 0 1 -238.7823 -565.6555 cm -BT -/F15 10.9091 Tf 249.0527 565.6555 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ -ET -1 0 0 1 500.5968 565.6555 cm -0 g 0 G -1 0 0 1 -500.5968 -565.6555 cm -BT -/F15 10.9091 Tf 500.5968 565.6555 Td[(5)]TJ -ET -1 0 0 1 506.0513 565.6555 cm -0 g 0 G -1 0 0 1 -396.0874 -13.5492 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -109.9639 -552.1063 cm -BT -/F15 10.9091 Tf 109.9639 552.1063 Td[(3.4)-1022(Bug)-333(rep)-28(or)1(ting)]TJ -ET -1 0 0 1 201.9338 552.1063 cm -0 g 0 G -1 0 0 1 -201.9338 -552.1063 cm -BT -/F15 10.9091 Tf 206.629 552.1063 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ -ET -1 0 0 1 500.5968 552.1063 cm -0 g 0 G -1 0 0 1 -500.5968 -552.1063 cm -BT -/F15 10.9091 Tf 500.5968 552.1063 Td[(8)]TJ -ET -1 0 0 1 506.0513 552.1063 cm -0 g 0 G -1 0 0 1 -396.0874 -13.5492 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -109.9639 -538.5571 cm -BT -/F15 10.9091 Tf 109.9639 538.5571 Td[(3.5)-1022(Ex)1(am)-1(p)1(le)-334(an)1(d)-333(te)-1(st)-333(pr)1(ograms)]TJ -ET -1 0 0 1 267.2066 538.5571 cm -0 g 0 G -1 0 0 1 -267.2066 -538.5571 cm -BT -/F15 10.9091 Tf 274.5069 538.5571 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ -ET -1 0 0 1 500.5968 538.5571 cm -0 g 0 G -1 0 0 1 -500.5968 -538.5571 cm -BT -/F15 10.9091 Tf 500.5968 538.5571 Td[(8)]TJ -ET -1 0 0 1 506.0513 538.5571 cm -0 g 0 G -1 0 0 1 -412.4511 -24.4583 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -514.0988 cm -BT -/F45 10.9091 Tf 93.6002 514.0988 Td[(4)-925(Multi)-1(-le)-1(v)32(el)-383(Dom)-1(ain)-383(Decom)-1(p)-32(os)1(i)-1(tion)-383(B)-1(ac)32(kgr)1(ound)]TJ -ET -1 0 0 1 371.8576 514.0988 cm -0 g 0 G -1 0 0 1 -371.8576 -514.0988 cm -BT -/F45 10.9091 Tf 499.7786 514.0988 Td[(9)]TJ -ET -1 0 0 1 109.9639 500.5496 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -109.9639 -500.5496 cm -BT -/F15 10.9091 Tf 109.9639 500.5496 Td[(4.1)-1022(Mu)1(lti-lev)28(e)-1(l)-333(S)1(c)27(h)28(w)28(arz)-334(P)1(rec)-1(on)1(diti)1(oners)]TJ -ET -1 0 0 1 306.2671 500.5496 cm -0 g 0 G -1 0 0 1 -306.2671 -500.5496 cm -BT -/F15 10.9091 Tf 316.9306 500.5496 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ -ET -1 0 0 1 495.1422 500.5496 cm -0 g 0 G -1 0 0 1 -495.1422 -500.5496 cm -BT -/F15 10.9091 Tf 495.1422 500.5496 Td[(10)]TJ -ET -1 0 0 1 506.0513 500.5496 cm -0 g 0 G -1 0 0 1 -396.0874 -13.5492 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -109.9639 -487.0004 cm -BT -/F15 10.9091 Tf 109.9639 487.0004 Td[(4.2)-1022(Smo)-28(oth)1(e)-1(d)-332(Aggre)-1(gat)1(ion)]TJ -ET -1 0 0 1 244.1762 487.0004 cm -0 g 0 G -1 0 0 1 -244.1762 -487.0004 cm -BT -/F15 10.9091 Tf 249.0527 487.0004 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ -ET -1 0 0 1 495.1422 487.0004 cm -0 g 0 G -1 0 0 1 -495.1422 -487.0004 cm -BT -/F15 10.9091 Tf 495.1422 487.0004 Td[(12)]TJ -ET -1 0 0 1 506.0513 487.0004 cm -0 g 0 G -1 0 0 1 -412.4511 -24.4583 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -462.5421 cm -BT -/F45 10.9091 Tf 93.6002 462.5421 Td[(5)-925(Gett)-1(ing)-383(Started)]TJ -ET -1 0 0 1 196.9557 462.5421 cm -0 g 0 G -1 0 0 1 -196.9557 -462.5421 cm -BT -/F45 10.9091 Tf 493.506 462.5421 Td[(15)]TJ -ET -1 0 0 1 109.9639 448.9929 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -109.9639 -448.9929 cm -BT -/F15 10.9091 Tf 109.9639 448.9929 Td[(5.1)-1022(Ex)1(am)-1(p)1(les)]TJ -ET -1 0 0 1 181.0246 448.9929 cm -0 g 0 G -1 0 0 1 -181.0246 -448.9929 cm -BT -/F15 10.9091 Tf 189.6596 448.9929 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ -ET -1 0 0 1 495.1422 448.9929 cm -0 g 0 G -1 0 0 1 -495.1422 -448.9929 cm -BT -/F15 10.9091 Tf 495.1422 448.9929 Td[(16)]TJ -ET -1 0 0 1 506.0513 448.9929 cm -0 g 0 G -1 0 0 1 -412.4511 -24.4583 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -424.5346 cm -BT -/F45 10.9091 Tf 93.6002 424.5346 Td[(6)-925(Us)1(er)-383(In)32(t)-1(er)1(f)-1(ace)]TJ -ET -1 0 0 1 188.0937 424.5346 cm -0 g 0 G -1 0 0 1 -188.0937 -424.5346 cm -BT -/F45 10.9091 Tf 493.506 424.5346 Td[(20)]TJ -ET -1 0 0 1 109.9639 410.9854 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -109.9639 -410.9854 cm -BT -/F15 10.9091 Tf 109.9639 410.9854 Td[(6.1)-1022(Su)1(br)1(outin)1(e)-334(mld)]TJ -ET -1 0 0 1 209.6792 410.9854 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.2728 0.1992 l -S -Q -1 0 0 1 -209.6792 -410.9854 cm -BT -/F15 10.9091 Tf 212.952 410.9854 Td[(pr)1(e)-1(cin)1(it)]TJ -ET -1 0 0 1 249.346 410.9854 cm -0 g 0 G -1 0 0 1 -249.346 -410.9854 cm -BT -/F15 10.9091 Tf 257.5375 410.9854 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ -ET -1 0 0 1 495.1422 410.9854 cm -0 g 0 G -1 0 0 1 -495.1422 -410.9854 cm -BT -/F15 10.9091 Tf 495.1422 410.9854 Td[(21)]TJ -ET -1 0 0 1 506.0513 410.9854 cm -0 g 0 G -1 0 0 1 -396.0874 -13.5492 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -109.9639 -397.4362 cm -BT -/F15 10.9091 Tf 109.9639 397.4362 Td[(6.2)-1022(Su)1(br)1(outin)1(e)-334(mld)]TJ -ET -1 0 0 1 209.6792 397.4362 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.2728 0.1992 l -S -Q -1 0 0 1 -209.6792 -397.4362 cm -BT -/F15 10.9091 Tf 212.952 397.4362 Td[(pr)1(e)-1(cs)-1(et)]TJ -ET -1 0 0 1 246.3762 397.4362 cm -0 g 0 G -1 0 0 1 -246.3762 -397.4362 cm -BT -/F15 10.9091 Tf 257.5375 397.4362 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ -ET -1 0 0 1 495.1422 397.4362 cm -0 g 0 G -1 0 0 1 -495.1422 -397.4362 cm -BT -/F15 10.9091 Tf 495.1422 397.4362 Td[(22)]TJ -ET -1 0 0 1 506.0513 397.4362 cm -0 g 0 G -1 0 0 1 -396.0874 -13.5492 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -109.9639 -383.887 cm -BT -/F15 10.9091 Tf 109.9639 383.887 Td[(6.3)-1022(Su)1(br)1(outin)1(e)-334(mld)]TJ -ET -1 0 0 1 209.6792 383.887 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.2728 0.1992 l -S -Q -1 0 0 1 -209.6792 -383.887 cm -BT -/F15 10.9091 Tf 212.952 383.887 Td[(pr)1(e)-1(cbl)1(d)]TJ -ET -1 0 0 1 248.1338 383.887 cm -0 g 0 G -1 0 0 1 -248.1338 -383.887 cm -BT -/F15 10.9091 Tf 257.5375 383.887 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ -ET -1 0 0 1 495.1422 383.887 cm -0 g 0 G -1 0 0 1 -495.1422 -383.887 cm -BT -/F15 10.9091 Tf 495.1422 383.887 Td[(27)]TJ -ET -1 0 0 1 506.0513 383.887 cm -0 g 0 G -1 0 0 1 -396.0874 -13.5492 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -109.9639 -370.3378 cm -BT -/F15 10.9091 Tf 109.9639 370.3378 Td[(6.4)-1022(Su)1(br)1(outin)1(e)-334(mld)]TJ -ET -1 0 0 1 209.6792 370.3378 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.2728 0.1992 l -S -Q -1 0 0 1 -209.6792 -370.3378 cm -BT -/F15 10.9091 Tf 212.952 370.3378 Td[(pr)1(e)-1(capl)1(y)]TJ -ET -1 0 0 1 253.2854 370.3378 cm -0 g 0 G -1 0 0 1 -253.2854 -370.3378 cm -BT -/F15 10.9091 Tf 257.5375 370.3378 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ -ET -1 0 0 1 495.1422 370.3378 cm -0 g 0 G -1 0 0 1 -495.1422 -370.3378 cm -BT -/F15 10.9091 Tf 495.1422 370.3378 Td[(28)]TJ -ET -1 0 0 1 506.0513 370.3378 cm -0 g 0 G -1 0 0 1 -396.0874 -13.5492 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -109.9639 -356.7886 cm -BT -/F15 10.9091 Tf 109.9639 356.7886 Td[(6.5)-1022(Su)1(br)1(outin)1(e)-334(mld)]TJ -ET -1 0 0 1 209.6792 356.7886 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.2728 0.1992 l -S -Q -1 0 0 1 -209.6792 -356.7886 cm -BT -/F15 10.9091 Tf 212.952 356.7886 Td[(pr)1(e)-1(cfr)1(e)-1(e)]TJ -ET -1 0 0 1 250.2853 356.7886 cm -0 g 0 G -1 0 0 1 -250.2853 -356.7886 cm -BT -/F15 10.9091 Tf 257.5375 356.7886 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ -ET -1 0 0 1 495.1422 356.7886 cm -0 g 0 G -1 0 0 1 -495.1422 -356.7886 cm -BT -/F15 10.9091 Tf 495.1422 356.7886 Td[(29)]TJ -ET -1 0 0 1 506.0513 356.7886 cm -0 g 0 G -1 0 0 1 -396.0874 -13.5492 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -109.9639 -343.2394 cm -BT -/F15 10.9091 Tf 109.9639 343.2394 Td[(6.6)-1022(Su)1(br)1(outin)1(e)-334(mld)]TJ -ET -1 0 0 1 209.6792 343.2394 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.2728 0.1992 l -S -Q -1 0 0 1 -209.6792 -343.2394 cm -BT -/F15 10.9091 Tf 212.952 343.2394 Td[(pr)1(e)-1(cdes)-1(cr)]TJ -ET -1 0 0 1 257.3156 343.2394 cm -0 g 0 G -1 0 0 1 -257.3156 -343.2394 cm -BT -/F15 10.9091 Tf 266.0222 343.2394 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ -ET -1 0 0 1 495.1422 343.2394 cm -0 g 0 G -1 0 0 1 -495.1422 -343.2394 cm -BT -/F15 10.9091 Tf 495.1422 343.2394 Td[(30)]TJ -ET -1 0 0 1 506.0513 343.2394 cm -0 g 0 G -1 0 0 1 -412.4511 -24.4583 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -318.7811 cm -BT -/F45 10.9091 Tf 93.6002 318.7811 Td[(7)-925(Er)1(ror)-383(Handling)]TJ -ET -1 0 0 1 194.2285 318.7811 cm -0 g 0 G -1 0 0 1 -194.2285 -318.7811 cm -BT -/F45 10.9091 Tf 493.506 318.7811 Td[(31)]TJ -ET -1 0 0 1 93.6002 294.3228 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -294.3228 cm -BT -/F45 10.9091 Tf 93.6002 294.3228 Td[(A)-631(License)]TJ -ET -1 0 0 1 149.9879 294.3228 cm -0 g 0 G -1 0 0 1 -149.9879 -294.3228 cm -BT -/F45 10.9091 Tf 493.506 294.3228 Td[(32)]TJ -ET -1 0 0 1 93.6002 269.8645 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -269.8645 cm -BT -/F45 10.9091 Tf 93.6002 269.8645 Td[(Re)-1(ferences)]TJ -ET -1 0 0 1 152.5029 269.8645 cm -0 g 0 G -1 0 0 1 -152.5029 -269.8645 cm -BT -/F45 10.9091 Tf 493.506 269.8645 Td[(33)]TJ -ET -1 0 0 1 93.6002 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -140 0 obj << -/Type /Page -/Contents 141 0 R -/Resources 139 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 120 0 R -/Annots [ 144 0 R 148 0 R 149 0 R 150 0 R 151 0 R 152 0 R 153 0 R 154 0 R 155 0 R 156 0 R 157 0 R 158 0 R 159 0 R 160 0 R 161 0 R 162 0 R 163 0 R 164 0 R 165 0 R 166 0 R 167 0 R 168 0 R 169 0 R 170 0 R ] ->> endobj -144 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 678.6818 142.5977 688.25] -/Subtype /Link -/A << /S /GoTo /D (section*.1) >> ->> endobj -148 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 654.2234 209.755 663.7917] -/Subtype /Link -/A << /S /GoTo /D (section.1) >> ->> endobj -149 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 629.7651 210.6731 639.3334] -/Subtype /Link -/A << /S /GoTo /D (section.2) >> ->> endobj -150 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 603.1856 304.7089 614.8751] -/Subtype /Link -/A << /S /GoTo /D (section.3) >> ->> endobj -151 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [108.9676 589.6364 197.2936 601.2047] -/Subtype /Link -/A << /S /GoTo /D (subsection.3.1) >> ->> endobj -152 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [108.9676 576.0872 276.2332 587.7767] -/Subtype /Link -/A << /S /GoTo /D (subsection.3.2) >> ->> endobj -153 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [108.9676 562.538 239.7786 574.2275] -/Subtype /Link -/A << /S /GoTo /D (subsection.3.3) >> ->> endobj -154 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [108.9676 548.9888 202.93 560.5571] -/Subtype /Link -/A << /S /GoTo /D (subsection.3.4) >> ->> endobj -155 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [108.9676 535.4396 268.2028 547.1291] -/Subtype /Link -/A << /S /GoTo /D (subsection.3.5) >> ->> endobj -156 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 510.9813 372.8539 522.6708] -/Subtype /Link -/A << /S /GoTo /D (section.4) >> ->> endobj -157 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [108.9676 499.5533 307.2634 509.1216] -/Subtype /Link -/A << /S /GoTo /D (subsection.4.1) >> ->> endobj -158 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [108.9676 483.8829 245.1725 495.5724] -/Subtype /Link -/A << /S /GoTo /D (subsection.4.2) >> ->> endobj -159 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 459.4246 197.952 471.1141] -/Subtype /Link -/A << /S /GoTo /D (section.5) >> ->> endobj -160 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [108.9676 445.8754 182.0209 457.5649] -/Subtype /Link -/A << /S /GoTo /D (subsection.5.1) >> ->> endobj -161 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 423.5383 189.09 433.1066] -/Subtype /Link -/A << /S /GoTo /D (section.6) >> ->> endobj -162 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [108.9676 407.8679 250.3422 419.5574] -/Subtype /Link -/A << /S /GoTo /D (subsection.6.1) >> ->> endobj -163 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [108.9676 394.3187 247.3725 406.0082] -/Subtype /Link -/A << /S /GoTo /D (subsection.6.2) >> ->> endobj -164 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [108.9676 380.7695 249.1301 392.459] -/Subtype /Link -/A << /S /GoTo /D (subsection.6.3) >> ->> endobj -165 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [108.9676 367.2203 254.2816 378.9098] -/Subtype /Link -/A << /S /GoTo /D (subsection.6.4) >> ->> endobj -166 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [108.9676 353.6711 251.2816 365.3606] -/Subtype /Link -/A << /S /GoTo /D (subsection.6.5) >> ->> endobj -167 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [108.9676 340.1219 258.3119 351.8114] -/Subtype /Link -/A << /S /GoTo /D (subsection.6.6) >> ->> endobj -168 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 315.6636 195.2248 327.3531] -/Subtype /Link -/A << /S /GoTo /D (section.7) >> ->> endobj -169 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 293.3265 150.9841 302.8948] -/Subtype /Link -/A << /S /GoTo /D (section.A) >> ->> endobj -170 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 268.8682 153.4992 278.4364] -/Subtype /Link -/A << /S /GoTo /D (section*.3) >> ->> endobj -142 0 obj << -/D [140 0 R /XYZ 93.6002 740.0018 null] ->> endobj -143 0 obj << -/D [140 0 R /XYZ 93.6002 693.3333 null] ->> endobj -139 0 obj << -/Font << /F15 131 0 R /F19 113 0 R /F45 147 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -173 0 obj << -/Length 222 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(iv)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -412.4511 -648.3688 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -172 0 obj << -/Type /Page -/Contents 173 0 R -/Resources 171 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 120 0 R ->> endobj -174 0 obj << -/D [172 0 R /XYZ 86.3998 740.0018 null] ->> endobj -171 0 obj << -/Font << /F15 131 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -177 0 obj << -/Length 11572 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(1)]TJ -ET -1 0 0 1 99.6305 740.0018 cm -0 g 0 G -1 0 0 1 -99.6305 -740.0018 cm -BT -/F43 10.9091 Tf 103.7516 740.0018 Td[(Genera)-1(l)-378(O)29(v)-1(e)1(r)88(view)]TJ/F15 10.9091 Tf 396.8452 0 Td[(1)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -506.0513 -740.0018 cm -BT -/F19 14.3462 Tf 93.6002 704.1363 Td[(1)-1125(G)-1(ener)-1(al)-375(Ov)31(ervi)-1(ew)]TJ/F15 10.9091 Tf 0 -24.3522 Td[(The)]TJ/F43 10.9091 Tf 23.4074 0 Td[(Mul)66(ti-Level)-473(Dom)1(a)-1(in)-473(Deco)1(mpo)1(sition)-473(P)88(ara)-1(llel)-473(Preco)1(n)-1(diti)-1(o)1(ners)-473(P)88(a)22(ck-)]TJ -23.4074 -13.5492 Td[(a)22(ge)-278(based)-278(o)1(n)-278(PSBLAS)-278(\050MLD2P4)]TJ/F15 10.9091 Tf 174.5401 0 Td[(\051)-238(p)1(ro)28(vid)1(e)-1(s)]TJ/F20 10.9091 Tf 48.9208 0 Td[(mu)1(lti-l)1(evel)-270(Schw)-1(ar)1(z)-270(pr)51(e)51(c)51(onditioners)]TJ/F15 10.9091 Tf 168.9902 0 Td[([)]TJ -ET -1 0 0 1 489.0816 666.2349 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -489.0816 -666.2349 cm -BT -/F15 10.9091 Tf 489.0816 666.2349 Td[(20)]TJ -ET -1 0 0 1 499.9907 666.2349 cm -0 g 0 G -1 0 0 1 -499.9907 -666.2349 cm -BT -/F15 10.9091 Tf 499.9907 666.2349 Td[(],)]TJ -406.3905 -13.5492 Td[(to)-333(b)-28(e)-333(use)-1(d)-333(i)1(n)-333(the)-334(i)1(te)-1(r)1(ativ)28(e)-334(solut)1(ions)-334(of)-332(s)-1(p)1(ars)-1(e)-333(lin)1(e)-1(ar)-333(sys)-1(t)1(e)-1(ms)-1(:)]TJ/F24 10.9091 Tf 186.9794 -23.1523 Td[(Ax)]TJ/F15 10.9091 Tf 17.4469 0 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(b;)]TJ -ET -1 0 0 1 492.1119 629.5334 cm -0 g 0 G -1 0 0 1 -492.1119 -629.5334 cm -BT -/F15 10.9091 Tf 492.1119 629.5334 Td[(\0501\051)]TJ -ET -1 0 0 1 506.0513 629.5334 cm -0 g 0 G -1 0 0 1 -506.0513 -629.5334 cm -BT -/F15 10.9091 Tf 93.6002 606.3811 Td[(where)]TJ/F24 10.9091 Tf 31.3179 0 Td[(A)]TJ/F15 10.9091 Tf 11.5907 0 Td[(is)-313(a)-312(s)-1(q)1(uare,)-316(re)-1(al)-312(or)-312(com)-1(p)1(le)-1(x)1(,)-317(spar)1(s)-1(e)-313(matri)1(x)-313(with)-312(a)-312(s)-1(y)1(m)-1(metric)-313(spar)1(s)-1(it)28(y)-312(pat)1(te)-1(r)1(n.)]TJ -42.9086 -13.5492 Td[(Thes)-1(e)-333(prec)-1(on)1(di)1(tioners)-334(h)1(a)28(v)28(e)-334(the)-333(foll)1(o)27(win)1(g)-334(general)-333(f)1(e)-1(atu)1(res)-1(:)]TJ -ET -1 0 0 1 93.6002 571.4462 cm -0 g 0 G -1 0 0 1 -93.6002 -571.4462 cm -BT -/F27 10.9091 Tf 109.9639 571.4462 Td[(\017)]TJ -ET -1 0 0 1 115.4185 571.4462 cm -0 g 0 G -1 0 0 1 -115.4185 -571.4462 cm -BT -/F15 10.9091 Tf 120.873 571.4462 Td[(b)-27(oth)]TJ/F20 10.9091 Tf 24.7943 0 Td[(additive)-276(a)-1(nd)-276(hybri)1(d)-277(mu)1(ltil)1(evel)]TJ/F15 10.9091 Tf 141.7891 0 Td[(v)56(arian)29(ts)-246(ar)1(e)-246(impl)1(e)-1(me)-1(n)29(te)-1(d)1(,)-263(i.)1(e)-1(.)-245(v)56(ar)1(ian)28(ts)-245(that)-245(ar)1(e)]TJ -166.5834 -13.5492 Td[(add)1(itiv)28(e)-226(among)-225(the)-226(lev)28(e)-1(l)1(s)-227(an)1(d)-225(inside)-226(eac)27(h)-225(lev)28(e)-1(l,)-247(an)1(d)-225(v)55(ar)1(ian)28(ts)-226(th)1(at)-226(are)-226(m)28(ulti)1(pli)1(c)-1(ativ)28(e)]TJ 0 -13.5492 Td[(among)-334(the)-334(lev)28(e)-1(ls)-334(and)-334(ad)1(di)1(tiv)28(e)-335(in)1(s)-1(i)1(de)-335(eac)27(h)-333(le)-1(v)28(el;)-334(the)-334(basic)-335(Ad)1(diti)1(v)28(e)-335(S)1(c)27(h)28(w)28(arz)-335(\050AS)1(\051)]TJ 0 -13.5492 Td[(pr)1(e)-1(cond)1(ition)1(e)-1(r)1(s)-334(are)-334(ob)1(tain)1(e)-1(d)-333(b)29(y)-334(consid)1(e)-1(r)1(ing)-333(onl)1(y)-334(on)1(e)-334(lev)28(e)-1(l)1(;)]TJ -ET -1 0 0 1 93.6002 508.7349 cm -0 g 0 G -1 0 0 1 -93.6002 -508.7349 cm -BT -/F27 10.9091 Tf 109.9639 508.7349 Td[(\017)]TJ -ET -1 0 0 1 115.4185 508.7349 cm -0 g 0 G -1 0 0 1 -115.4185 -508.7349 cm -BT -/F15 10.9091 Tf 120.873 508.7349 Td[(a)]TJ/F20 10.9091 Tf 10.3888 0 Td[(pur)52(ely)-467(al)1(gebr)51(aic)]TJ/F15 10.9091 Tf 80.6232 0 Td[(app)1(roac)28(h)-452(is)-453(u)1(s)-1(ed)-452(to)-452(ge)-1(n)1(e)-1(r)1(ate)-453(a)-452(s)-1(equence)-453(of)-452(coarse)-1(-lev)28(e)-1(l)-452(cor-)]TJ -91.012 -13.5492 Td[(rec)-1(t)1(ions)-415(to)-415(a)-415(b)1(as)-1(ic)-415(AS)-414(pr)1(e)-1(cond)1(ition)1(e)-1(r,)-435(wit)1(hout)-414(e)-1(xp)1(licitly)-414(using)-414(an)28(y)-415(in)1(for)1(m)-1(ati)1(on)]TJ 0 -13.5492 Td[(on)-373(the)-374(ge)-1(ometry)-374(of)-373(the)-374(ori)1(ginal)-373(prob)1(lem)-375(\050e.g.)-373(the)-374(disc)-1(r)1(e)-1(ti)1(z)-1(ati)1(on)-374(of)-373(a)-374(PDE)1(\051.)-374(The)]TJ/F20 10.9091 Tf 0 -13.5492 Td[(smo)51(othe)51(d)-313(aggr)51(e)52(ga)-1(ti)1(o)-1(n)]TJ/F15 10.9091 Tf 103.9531 0 Td[(tec)27(hn)1(iqu)1(e)-285(is)-285(ap)1(plied)-284(as)-285(algebrai)1(c)-285(c)-1(oar)1(s)-1(enin)1(g)-285(strategy)-284([)]TJ -ET -1 0 0 1 477.4929 468.0873 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -477.4929 -468.0873 cm -BT -/F15 10.9091 Tf 477.4929 468.0873 Td[(1)]TJ -ET -1 0 0 1 482.9474 468.0873 cm -0 g 0 G -1 0 0 1 -482.9474 -468.0873 cm -BT -/F15 10.9091 Tf 482.9474 468.0873 Td[(,)]TJ -ET -1 0 0 1 489.0816 468.0873 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -489.0816 -468.0873 cm -BT -/F15 10.9091 Tf 489.0816 468.0873 Td[(24)]TJ -ET -1 0 0 1 499.9907 468.0873 cm -0 g 0 G -1 0 0 1 -499.9907 -468.0873 cm -BT -/F15 10.9091 Tf 499.9907 468.0873 Td[(].)]TJ -389.454 -21.3857 Td[(The)-287(p)1(ac)27(k)56(age)-288(i)1(s)-287(w)-1(r)1(itten)-287(i)1(n)]TJ/F20 10.9091 Tf 122.3962 0 Td[(F)77(ortr)51(an)-315(95)]TJ/F15 10.9091 Tf 50.4226 0 Td[(,)-296(f)1(ollo)28(wing)-286(an)]TJ/F20 10.9091 Tf 66.4546 0 Td[(obje)51(ct-or)1(ient)-1(e)52(d)-315(ap)-1(pr)52(o)51(ach)]TJ/F15 10.9091 Tf 118.6351 0 Td[(th)1(rough)]TJ -374.845 -13.5492 Td[(th)1(e)-331(e)-1(xp)1(loitat)1(ion)-330(of)-330(featur)1(e)-1(s)-331(suc)28(h)-330(as)-331(abstract)-331(d)1(ata)-331(t)28(yp)-27(e)-331(creation,)-330(fun)1(c)-1(t)1(ional)-330(o)28(v)28(e)-1(r)1(loadi)1(ng)]TJ 0 -13.5492 Td[(and)-359(dy)1(namic)-361(mem)-1(or)1(y)-360(m)-1(an)1(age)-1(men)28(t.)-524(The)-360(paral)1(le)-1(l)-359(im)-1(p)1(lem)-1(en)28(tati)1(on)-360(is)-360(base)-1(d)-359(on)-360(a)-360(S)1(ingle)]TJ 0 -13.5492 Td[(Pr)1(ogram)-231(Mu)1(ltip)1(le)-231(Data)-230(\050SP)1(MD\051)-230(parad)1(igm)-231(f)1(or)-231(d)1(is)-1(t)1(rib)1(uted-m)-1(emory)-230(arc)27(h)1(itec)-1(tu)1(res)-1(.)-410(S)1(ingle)]TJ 0 -13.5492 Td[(and)-376(d)1(oubl)1(e)-378(p)1(rec)-1(ision)-376(impleme)-1(n)28(t)1(ations)-377(of)-376(MLD2P)1(4)-377(are)-377(a)28(v)55(ai)1(lable)-377(f)1(or)-377(b)-27(oth)-376(the)-377(real)-377(an)1(d)]TJ 0 -13.5492 Td[(th)1(e)-334(c)-1(ompl)1(e)-1(x)-333(cas)-1(e,)-333(that)-333(can)-333(b)-28(e)-333(use)-1(d)-333(th)1(rou)1(gh)-333(a)-334(sin)1(gle)-334(in)28(t)1(e)-1(rf)1(ac)-1(e.)]TJ 16.9365 -13.5492 Td[(MLD2P)1(4)-230(h)1(as)-230(b)-27(e)-1(en)-229(des)-1(i)1(gned)-229(to)-230(imp)1(le)-1(men)28(t)-230(scalable)-229(and)-229(eas)-1(y-to-use)-230(m)27(u)1(ltil)1(e)-1(v)28(el)-230(p)1(rec)-1(on)1(-)]TJ -16.9365 -13.5492 Td[(di)1(tioners)-348(in)-348(th)1(e)-349(c)-1(on)29(te)-1(x)1(t)-349(of)-347(the)]TJ/F20 10.9091 Tf 147.4316 0 Td[(PS)-1(B)1(L)-1(AS)-372(\050Par)51(al)-50(lel)-371(Sp)51(arse)-371(BLA)-1(S\051)-371(c)51(omputationa)-1(l)-371(f)1(r)51(ame-)]TJ -147.4316 -13.5492 Td[(wo)-1(r)1(k)]TJ/F15 10.9091 Tf 27.2865 0 Td[([)]TJ -ET -1 0 0 1 123.917 338.308 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -123.917 -338.308 cm -BT -/F15 10.9091 Tf 123.917 338.308 Td[(15)]TJ -ET -1 0 0 1 134.8261 338.308 cm -0 g 0 G -1 0 0 1 -134.8261 -338.308 cm -BT -/F15 10.9091 Tf 134.8261 338.308 Td[(].)-453(PS)1(B)-1(LAS)-336(i)1(s)-337(a)-337(l)1(ibr)1(ary)-336(origin)1(ally)-336(d)1(e)-1(v)28(elop)-27(e)-1(d)-336(to)-336(add)1(res)-1(s)-337(th)1(e)-337(par)1(allel)-336(im)-1(p)1(lem)-1(en-)]TJ -41.2259 -13.5492 Td[(tation)-441(of)-442(i)1(te)-1(r)1(ativ)28(e)-442(s)-1(olv)28(ers)-442(for)-441(s)-1(p)1(arse)-443(l)1(inear)-442(syste)-1(m,)-469(b)28(y)-441(pro)28(vi)1(din)1(g)-442(basic)-442(linear)-442(al)1(ge)-1(b)1(ra)]TJ 0 -13.5492 Td[(op)-27(e)-1(r)1(ators)-443(an)1(d)-442(dat)1(a)-443(manageme)-1(n)28(t)-442(f)1(ac)-1(il)1(ities)-443(f)1(or)-442(distri)1(but)1(e)-1(d)-442(spar)1(s)-1(e)-443(matr)1(ic)-1(es)-1(;)-496(it)-442(also)-442(in-)]TJ 0 -13.5492 Td[(clud)1(e)-1(s)-337(par)1(allel)-337(Kr)1(ylo)28(v)-337(solv)28(e)-1(r)1(s)-1(,)-337(bu)1(ilt)-337(on)-336(the)-337(top)-336(of)-337(th)1(e)-338(b)1(as)-1(i)1(c)-338(P)1(SBLAS)-337(k)28(ern)1(e)-1(ls.)-455(The)-337(pr)1(e)-1(-)]TJ 0 -13.5492 Td[(condi)1(tioners)-380(a)28(v)56(ailab)1(le)-380(in)-379(MLD)1(2P4)-380(can)-379(b)-27(e)-380(use)-1(d)-379(with)-379(th)1(e)-1(se)-380(Kry)1(lo)28(v)-380(solv)28(ers)-1(.)-582(T)-1(h)1(e)-380(c)27(h)1(oic)-1(e)]TJ 0 -13.5492 Td[(of)-361(PS)1(B)-1(LAS)-361(h)1(as)-363(b)-27(ee)-1(n)-361(mainl)1(y)-362(motiv)56(ate)-1(d)-361(b)28(y)-361(th)1(e)-363(n)1(e)-1(ed)-361(of)-362(h)1(a)28(vin)1(g)-362(a)-362(p)-27(ortab)1(le)-362(and)-361(e\016)-1(cien)28(t)]TJ 0 -13.5492 Td[(soft)28(w)27(ar)1(e)-313(in)1(frastru)1(c)-1(t)1(ure)-312(im)-1(p)1(lem)-1(en)28(tin)1(g)-312(\134de)-313(f)1(ac)-1(to")-312(stand)1(ard)-312(p)1(arallel)-312(s)-1(p)1(arse)-313(lin)1(e)-1(ar)-312(al)1(ge)-1(b)1(ra)]TJ 0 -13.5492 Td[(k)28(ernels,)-304(to)-297(p)1(ursue)-297(goal)1(s)-298(suc)28(h)-297(as)-297(p)-27(erfor)1(m)-1(an)1(c)-1(e,)-304(p)-27(ortab)1(ilit)28(y)84(,)-304(mo)-28(du)1(larit)28(y)-296(e)-1(d)-296(extensibil)1(it)28(y)-297(i)1(n)]TJ 0 -13.5492 Td[(th)1(e)-273(dev)28(e)-1(lop)1(me)-1(n)28(t)-272(of)-272(th)1(e)-273(precondi)1(tioner)-272(pac)28(k)55(age.)-424(On)-272(th)1(e)-273(other)-272(han)1(d,)-284(the)-272(im)-1(p)1(lem)-1(en)28(tati)1(on)]TJ 0 -13.5492 Td[(of)-378(MLD2P)1(4)-379(has)-379(led)-379(to)-378(s)-1(ome)-379(revis)-1(i)1(ons)-379(and)-378(exte)-1(n)29(tions)-379(of)-378(the)-379(P)1(SBLAS)-379(k)28(ern)1(e)-1(ls,)-390(leadi)1(ng)]TJ 0 -13.5492 Td[(to)-439(th)1(e)-440(r)1(e)-1(ce)-1(n)29(t)-439(PS)1(B)-1(LAS)-438(2.0)-438(v)28(e)-1(rsion)-438([)]TJ -ET -1 0 0 1 268.6586 202.8161 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -268.6586 -202.8161 cm -BT -/F15 10.9091 Tf 268.6586 202.8161 Td[(14)]TJ -ET -1 0 0 1 279.5677 202.8161 cm -0 g 0 G -1 0 0 1 -279.5677 -202.8161 cm -BT -/F15 10.9091 Tf 279.5677 202.8161 Td[(].)-761(Th)1(e)-440(i)1(n)28(te)-1(r)1(-)-1(p)1(ro)-28(ces)-1(s)-439(c)-1(om)28(un)1(ic)-1(at)1(ion)-439(r)1(e)-1(qu)1(ired)-438(b)28(y)]TJ -185.9675 -13.5492 Td[(MLD2P)1(4)-355(is)-355(encapsul)1(ate)-1(d)-354(in)29(to)-355(th)1(e)-355(PSBLAS)-354(rou)1(tines,)-360(e)-1(x)1(c)-1(ept)-354(few)-355(c)-1(ases)-356(wh)1(e)-1(r)1(e)-356(M)1(PI)-354([)]TJ -ET -1 0 0 1 492.1119 189.2669 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -492.1119 -189.2669 cm -BT -/F15 10.9091 Tf 492.1119 189.2669 Td[(21)]TJ -ET -1 0 0 1 503.021 189.2669 cm -0 g 0 G -1 0 0 1 -503.021 -189.2669 cm -BT -/F15 10.9091 Tf 503.021 189.2669 Td[(])]TJ -409.4208 -13.5492 Td[(is)-458(e)-1(x)1(pli)1(c)-1(itl)1(y)-458(called.)-818(Therefor)1(e)-1(,)-489(M)1(LD2P4)-458(can)-457(b)-28(e)-458(ru)1(n)-458(on)-457(an)28(y)-458(p)1(arall)1(e)-1(l)-457(m)-1(ac)28(hin)1(e)-459(wh)1(e)-1(re)]TJ 0 -13.5492 Td[(PS)1(BLAS)-333(and)-333(M)1(PI)-333(im)-1(p)1(lem)-1(en)28(tati)1(ons)-334(ar)1(e)-334(a)28(v)55(ai)1(lable.)]TJ 16.9365 -13.5492 Td[(MLD2P)1(4)-342(h)1(as)-342(a)-342(la)28(y)28(e)-1(r)1(e)-1(d)-341(an)1(d)-342(mo)-28(d)1(ular)-341(soft)28(w)27(ar)1(e)-342(arc)27(h)1(itec)-1(tu)1(re)-342(where)-342(th)1(re)-1(e)-342(main)-341(la)28(y)28(ers)]TJ -16.9365 -13.5492 Td[(can)-458(b)-27(e)-459(id)1(e)-1(n)28(t)1(i\014ed.)-818(The)-459(l)1(o)27(w)28(er)-458(la)28(y)28(e)-1(r)-457(c)-1(on)1(s)-1(ists)-459(of)-457(the)-458(PS)1(B)-1(LAS)-457(k)28(e)-1(r)1(nels,)-490(t)1(he)-458(m)-1(id)1(dl)1(e)-459(one)]TJ 0 -13.5492 Td[(impl)1(e)-1(me)-1(n)29(ts)-458(the)-458(constru)1(c)-1(t)1(ion)-457(and)-457(ap)1(pli)1(c)-1(ati)1(on)-457(phases)-458(of)-457(the)-458(p)1(rec)-1(on)1(dit)1(ioners,)-489(an)1(d)-457(the)]TJ -ET -1 0 0 1 93.6002 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -176 0 obj << -/Type /Page -/Contents 177 0 R -/Resources 175 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 195 0 R -/Annots [ 178 0 R 182 0 R 190 0 R 191 0 R 192 0 R 193 0 R 194 0 R ] ->> endobj -178 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 739.0056 100.6267 748.4526] -/Subtype /Link -/A << /S /GoTo /D (section.1) >> ->> endobj -182 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [488.0853 665.2387 500.987 674.2615] -/Subtype /Link -/A << /S /GoTo /D (cite.dd2_96) >> ->> endobj -190 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [476.4966 467.0911 483.9437 476.1139] -/Subtype /Link -/A << /S /GoTo /D (cite.BREZINA_VANEK) >> ->> endobj -191 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [488.0853 467.0911 500.987 476.1139] -/Subtype /Link -/A << /S /GoTo /D (cite.VANEK_MANDEL_BREZINA) >> ->> endobj -192 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [122.9207 337.3118 135.8224 346.3346] -/Subtype /Link -/A << /S /GoTo /D (cite.psblas_00) >> ->> endobj -193 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [267.6624 201.8198 280.564 210.8426] -/Subtype /Link -/A << /S /GoTo /D (cite.PSBLASGUIDE) >> ->> endobj -194 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [491.1157 188.2706 504.0173 197.2934] -/Subtype /Link -/A << /S /GoTo /D (cite.MPI1) >> ->> endobj -14 0 obj << -/D [176 0 R /XYZ 93.6002 715.0952 null] ->> endobj -183 0 obj << -/D [176 0 R /XYZ 280.5796 643.0826 null] ->> endobj -175 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F19 113 0 R /F20 181 0 R /F24 186 0 R /F27 189 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -204 0 obj << -/Length 6211 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(2)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -498.8509 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 704.1363 Td[(up)1(p)-27(e)-1(r)-310(on)1(e)-311(p)1(ro)28(vid)1(e)-1(s)-310(a)-310(un)1(ifor)1(m)-311(an)1(d)-310(eas)-1(y)1(-)-1(to-u)1(s)-1(e)-310(in)28(terf)1(ac)-1(e)-310(to)-310(all)-310(th)1(e)-311(p)1(rec)-1(on)1(diti)1(oners)-1(.)-436(This)]TJ 0 -13.5492 Td[(arc)28(hitecture)-446(allo)28(ws)-447(f)1(or)-446(di)1(\013)-1(eren)28(t)-446(lev)28(e)-1(ls)-446(of)-446(u)1(s)-1(e)-446(of)-446(th)1(e)-447(pac)28(k)55(age:)-670(f)1(e)-1(w)-446(bl)1(ac)27(k-b)-28(o)28(x)-446(r)1(outin)1(e)-1(s)]TJ 0 -13.5492 Td[(at)-384(th)1(e)-385(u)1(pp)-27(e)-1(r)-383(la)28(y)28(e)-1(r)-383(allo)28(w)-384(non-exp)-27(e)-1(rt)-383(use)-1(rs)-384(to)-384(eas)-1(il)1(y)-384(bu)1(ild)-383(an)28(y)-384(p)1(re)-1(cond)1(ition)1(e)-1(r)-383(a)28(v)55(ai)1(lable)]TJ 0 -13.5492 Td[(in)-364(MLD2P)1(4)-365(and)-364(to)-365(app)1(ly)-365(i)1(t)-365(withi)1(n)-365(a)-365(P)1(SBLAS)-364(Kryl)1(o)27(v)-364(s)-1(olv)28(er.)-539(O)1(n)-365(th)1(e)-366(ot)1(her)-365(h)1(and,)-372(the)]TJ 0 -13.5492 Td[(rou)1(tin)1(e)-1(s)-253(of)-253(the)-253(midd)1(le)-254(an)1(d)-253(lo)28(w)28(e)-1(r)-253(l)1(a)27(y)28(er)-253(can)-253(b)-27(e)-254(u)1(s)-1(ed)-253(an)1(d)-253(exte)-1(n)1(ded)-253(b)28(y)-252(e)-1(xp)-27(ert)-253(use)-1(r)1(s)-254(to)-253(b)1(uil)1(d)]TJ 0 -13.5492 Td[(new)-367(v)28(ersions)-367(of)-366(m)27(u)1(lti-lev)28(e)-1(l)-366(Sc)28(h)28(w)28(arz)-367(pr)1(e)-1(cond)1(ition)1(e)-1(rs.)-544(W)83(e)-367(p)1(ro)28(vid)1(e)-367(here)-367(a)-367(d)1(e)-1(sc)-1(r)1(ipt)1(ion)-366(of)]TJ 0 -13.5492 Td[(th)1(e)-334(up)1(p)-28(er-la)28(y)28(e)-1(r)-333(r)1(outi)1(nes)-1(,)-333(bu)1(t)-333(not)-333(of)-333(th)1(e)-334(m)-1(edi)1(um-)-1(l)1(a)27(y)28(er)-333(ones.)]TJ 16.9365 -13.5492 Td[(This)-380(gui)1(de)-380(is)-381(or)1(ganize)-1(d)-379(as)-381(f)1(ollo)28(ws)-1(.)-584(General)-380(in)1(for)1(m)-1(ati)1(on)-380(on)-380(t)1(he)-381(d)1(istrib)1(uti)1(on)-380(of)-380(th)1(e)]TJ -16.9365 -13.5492 Td[(source)-239(c)-1(o)-27(de)-239(is)-239(r)1(e)-1(p)-27(orted)-238(in)-238(S)1(e)-1(ction)]TJ -ET -1 0 0 1 244.6472 595.7428 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -244.6472 -595.7428 cm -BT -/F15 10.9091 Tf 244.6472 595.7428 Td[(2)]TJ -ET -1 0 0 1 250.1018 595.7428 cm -0 g 0 G -1 0 0 1 -250.1018 -595.7428 cm -BT -/F15 10.9091 Tf 250.1018 595.7428 Td[(,)-257(while)-239(d)1(e)-1(t)1(ails)-239(on)-238(th)1(e)-239(c)-1(on)1(\014gu)1(ration)-238(an)1(d)-238(installati)1(on)-238(of)]TJ -163.702 -13.5492 Td[(th)1(e)-281(p)1(ac)27(k)56(age)-281(ar)1(e)-281(gi)1(v)28(e)-1(n)-279(in)-279(Sec)-1(tion)]TJ -ET -1 0 0 1 239.9009 582.1936 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -239.9009 -582.1936 cm -BT -/F15 10.9091 Tf 239.9009 582.1936 Td[(3)]TJ -ET -1 0 0 1 245.3554 582.1936 cm -0 g 0 G -1 0 0 1 -245.3554 -582.1936 cm -BT -/F15 10.9091 Tf 245.3554 582.1936 Td[(.)-426(A)-280(des)-1(crip)1(tion)-279(of)-280(m)28(ult)1(i-)-1(l)1(e)-1(v)28(el)-280(S)1(c)27(h)28(w)28(arz)-280(precondi)1(tioners)]TJ -158.9556 -13.5492 Td[(based)-354(on)-353(s)-1(mo)-28(othed)-353(aggre)-1(gat)1(ion)-354(is)-354(pr)1(o)28(vided)-354(i)1(n)-354(S)1(e)-1(ction)]TJ -ET -1 0 0 1 348.7466 568.6444 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -348.7466 -568.6444 cm -BT -/F15 10.9091 Tf 348.7466 568.6444 Td[(4)]TJ -ET -1 0 0 1 354.2012 568.6444 cm -0 g 0 G -1 0 0 1 -354.2012 -568.6444 cm -BT -/F15 10.9091 Tf 354.2012 568.6444 Td[(,)-359(to)-354(h)1(e)-1(lp)-353(the)-354(u)1(s)-1(ers)-354(in)-354(c)28(ho)-28(osing)]TJ -267.8014 -13.5492 Td[(among)-339(the)-339(di\013e)-1(r)1(e)-1(n)29(t)-340(p)1(rec)-1(on)1(diti)1(oners)-340(imp)1(le)-1(men)28(te)-1(d)-338(in)-339(MLD2P)1(4.)-462(T)-1(h)1(e)-340(b)1(as)-1(ics)-340(f)1(or)-339(bui)1(ldi)1(ng)]TJ 0 -13.5492 Td[(and)-321(app)1(lyi)1(ng)-322(th)1(e)-323(p)1(rec)-1(on)1(diti)1(one)-1(r)1(s)-323(wit)1(h)-322(th)1(e)-323(Kr)1(ylo)28(v)-322(solv)28(ers)-322(im)-1(p)1(lem)-1(en)28(ted)-322(i)1(n)-322(PS)1(BLAS)-322(are)]TJ 0 -13.5492 Td[(rep)-27(orted)-390(in)-389(S)1(e)-1(ction)]TJ -ET -1 0 0 1 183.1562 527.9968 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -183.1562 -527.9968 cm -BT -/F15 10.9091 Tf 183.1562 527.9968 Td[(5)]TJ -ET -1 0 0 1 188.6108 527.9968 cm -0 g 0 G -1 0 0 1 -188.6108 -527.9968 cm -BT -/F15 10.9091 Tf 188.6108 527.9968 Td[(,)-404(wh)1(e)-1(re)-390(th)1(e)-390(F)83(ort)1(ran)-389(95)-390(c)-1(o)-27(des)-391(of)-389(a)-390(f)1(e)-1(w)-390(sam)-1(p)1(le)-390(pr)1(ograms)-391(ar)1(e)-390(als)-1(o)]TJ -102.211 -13.5492 Td[(sho)28(wn.)-637(A)-397(reference)-398(gui)1(de)-398(f)1(or)-397(the)-398(u)1(pp)-27(e)-1(r)1(-)-1(l)1(a)27(y)28(er)-397(rou)1(tines)-398(of)-397(MLD)1(2P4,)-413(that)-397(are)-398(t)1(he)-398(u)1(s)-1(er)]TJ 0 -13.5492 Td[(in)28(t)1(e)-1(rf)1(ac)-1(e,)-328(i)1(s)-327(pr)1(o)27(v)1(ided)-326(in)-326(Section)]TJ -ET -1 0 0 1 240.0994 500.8984 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -240.0994 -500.8984 cm -BT -/F15 10.9091 Tf 240.0994 500.8984 Td[(6)]TJ -ET -1 0 0 1 245.5539 500.8984 cm -0 g 0 G -1 0 0 1 -245.5539 -500.8984 cm -BT -/F15 10.9091 Tf 245.5539 500.8984 Td[(.)-442(The)-327(err)1(or)-326(hand)1(lin)1(g)-327(mec)27(han)1(ism)-327(use)-1(d)-326(b)29(y)-327(th)1(e)-327(pac)28(k)56(age)]TJ -159.1541 -13.5492 Td[(is)-359(b)1(rie\015y)-358(desc)-1(ri)1(b)-28(ed)-358(in)-358(Section)]TJ -ET -1 0 0 1 231.5912 487.3492 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -231.5912 -487.3492 cm -BT -/F15 10.9091 Tf 231.5912 487.3492 Td[(7)]TJ -ET -1 0 0 1 237.0457 487.3492 cm -0 g 0 G -1 0 0 1 -237.0457 -487.3492 cm -BT -/F15 10.9091 Tf 237.0457 487.3492 Td[(.)-520(The)-358(c)-1(op)28(y)1(righ)28(t)-358(terms)-359(c)-1(on)1(c)-1(erni)1(ng)-358(the)-359(d)1(is)-1(t)1(rib)1(ution)-358(an)1(d)]TJ -150.6459 -13.5492 Td[(mo)-28(di)1(\014cation)-333(of)-333(MLD)1(2P4)-333(are)-334(r)1(e)-1(p)-27(orted)-333(in)-333(Ap)1(p)-28(end)1(ix)]TJ -ET -1 0 0 1 333.6122 473.8 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -333.6122 -473.8 cm -BT -/F15 10.9091 Tf 333.6122 473.8 Td[(A)]TJ -ET -1 0 0 1 341.794 473.8 cm -0 g 0 G -1 0 0 1 -341.794 -473.8 cm -BT -/F15 10.9091 Tf 341.794 473.8 Td[(.)]TJ -ET -1 0 0 1 86.3998 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -203 0 obj << -/Type /Page -/Contents 204 0 R -/Resources 202 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 195 0 R -/Annots [ 205 0 R 206 0 R 207 0 R 208 0 R 209 0 R 210 0 R 211 0 R ] ->> endobj -205 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [243.651 592.6253 251.0981 604.3148] -/Subtype /Link -/A << /S /GoTo /D (section.2) >> ->> endobj -206 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [238.9046 579.0761 246.3517 590.7656] -/Subtype /Link -/A << /S /GoTo /D (section.3) >> ->> endobj -207 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [347.7504 565.5269 355.1975 577.2164] -/Subtype /Link -/A << /S /GoTo /D (section.4) >> ->> endobj -208 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [182.1599 524.8793 189.607 536.5688] -/Subtype /Link -/A << /S /GoTo /D (section.5) >> ->> endobj -209 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [239.1031 497.7809 246.5502 509.4704] -/Subtype /Link -/A << /S /GoTo /D (section.6) >> ->> endobj -210 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [230.5949 484.2317 238.042 495.9212] -/Subtype /Link -/A << /S /GoTo /D (section.7) >> ->> endobj -211 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [332.6159 470.6825 342.7903 482.372] -/Subtype /Link -/A << /S /GoTo /D (section.A) >> ->> endobj -202 0 obj << -/Font << /F15 131 0 R /F43 134 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -214 0 obj << -/Length 2099 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(2)]TJ -ET -1 0 0 1 99.6305 740.0018 cm -0 g 0 G -1 0 0 1 -99.6305 -740.0018 cm -BT -/F43 10.9091 Tf 103.7516 740.0018 Td[(Code)-378(Distribu)-1(tion)]TJ/F15 10.9091 Tf 396.8452 0 Td[(3)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -506.0513 -740.0018 cm -BT -/F19 14.3462 Tf 93.6002 704.1363 Td[(2)-1125(C)-1(o)-32(de)-375(Di)-1(str)-1(ibut)-1(io)-1(n)]TJ/F15 10.9091 Tf 0 -24.3522 Td[(MLD2P)1(4)-333(is)-334(a)28(v)56(ailabl)1(e)-334(fr)1(om)-334(th)1(e)-334(w)27(eb)-333(site)]TJ -ET -1 0 0 1 109.9639 657.2685 cm -0 g 0 G -1 0 0 1 21.8182 0 cm -0 g 0 G -1 0 0 1 -131.7821 -657.2685 cm -BT -/F46 10.9091 Tf 137.2367 657.2685 Td[(http://www.mld2p4.it)]TJ/F15 10.9091 Tf -43.6365 -22.5155 Td[(where)-334(con)28(tact)-333(p)-28(oin)29(ts)-334(for)-333(f)1(ur)1(ther)-333(inf)1(ormation)-333(can)-333(b)-27(e)-334(also)-334(f)1(oun)1(d.)]TJ 16.9365 -13.5492 Td[(The)-299(soft)28(w)28(are)-299(is)-299(a)28(v)56(ailab)1(le)-299(un)1(der)-299(a)-298(m)-1(o)-27(di\014)1(e)-1(d)-298(BSD)-298(lice)-1(n)1(s)-1(e,)-306(as)-299(sp)-27(e)-1(ci\014ed)-298(in)-298(App)-27(endi)1(x)]TJ -ET -1 0 0 1 494.8392 621.2038 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -494.8392 -621.2038 cm -BT -/F15 10.9091 Tf 494.8392 621.2038 Td[(A)]TJ -ET -1 0 0 1 503.021 621.2038 cm -0 g 0 G -1 0 0 1 -503.021 -621.2038 cm -BT -/F15 10.9091 Tf 503.021 621.2038 Td[(;)]TJ -409.4208 -13.5492 Td[(pl)1(e)-1(ase)-449(n)1(ote)-449(t)1(hat)-448(som)-1(e)-448(of)-448(th)1(e)-449(op)1(tion)1(al)-448(thi)1(rd)-448(p)1(art)28(y)-448(l)1(ibr)1(aries)-449(ma)28(y)-448(b)-27(e)-449(li)1(c)-1(ense)-1(d)-447(un)1(der)-448(a)]TJ 0 -13.5492 Td[(di)1(\013)-1(eren)28(t)-366(an)1(d)-366(more)-366(s)-1(tr)1(ingen)28(t)-366(l)1(ic)-1(ense,)-374(m)-1(ost)-366(n)1(otably)-365(the)-366(GP)1(L,)-366(and)-365(thi)1(s)-367(shou)1(ld)-365(b)-28(e)-366(tak)28(en)]TJ 0 -13.5492 Td[(in)28(t)1(o)-334(acc)-1(ou)1(n)28(t)-333(when)-333(treating)-333(d)1(e)-1(ri)1(v)28(e)-1(d)-333(w)28(orks.)]TJ -ET -1 0 0 1 93.6002 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -213 0 obj << -/Type /Page -/Contents 214 0 R -/Resources 212 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 195 0 R -/Annots [ 216 0 R 220 0 R ] ->> endobj -216 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 739.0056 100.6267 748.4526] -/Subtype /Link -/A << /S /GoTo /D (section.2) >> ->> endobj -220 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [493.8429 618.0863 504.0173 629.7758] -/Subtype /Link -/A << /S /GoTo /D (section.A) >> ->> endobj -215 0 obj << -/D [213 0 R /XYZ 93.6002 740.0018 null] ->> endobj -18 0 obj << -/D [213 0 R /XYZ 93.6002 715.0952 null] ->> endobj -212 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F19 113 0 R /F46 219 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -223 0 obj << -/Length 10655 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(4)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -498.8509 -740.0018 cm -BT -/F19 14.3462 Tf 86.3998 704.1363 Td[(3)-1125(C)-1(on\014g)-1(uri)-1(ng)-375(and)-375(Bui)-1(ldi)-1(ng)-375(MLD2)-1(P)1(4)]TJ/F15 10.9091 Tf 0 -24.5396 Td[(T)83(o)-324(bu)1(ild)-324(M)1(LD2P4)-324(it)-324(is)-324(nec)-1(es)-1(sary)-324(to)-324(se)-1(t)-324(u)1(p)-324(a)-324(Mak)28(e)-1(\014)1(le)-325(with)-323(app)1(ropr)1(iate)-325(v)56(alu)1(e)-1(s)-324(for)-324(y)28(ou)1(r)]TJ 0 -13.5492 Td[(sys)-1(tem;)-363(th)1(is)-354(i)1(s)-354(d)1(one)-354(b)29(y)-353(me)-1(an)1(s)-354(of)-353(t)1(he)]TJ/F46 10.9091 Tf 179.0991 0 Td[(configure)]TJ/F15 10.9091 Tf 55.3961 0 Td[(sc)-1(ri)1(pt.)-503(The)-353(distri)1(but)1(ion)-353(also)-353(in)1(c)-1(lu)1(des)]TJ -234.4952 -13.5492 Td[(th)1(e)-312(au)1(to)-28(conf)-310(and)-310(aut)1(om)-1(ak)28(e)-311(source)-1(s)-311(emplo)28(y)28(ed)-311(to)-310(ge)-1(n)1(e)-1(rat)1(e)-312(t)1(he)-311(s)-1(crip)1(t,)-315(bu)1(t)-311(u)1(s)-1(u)1(ally)-310(this)-311(is)]TJ 0 -13.5492 Td[(not)-333(n)1(e)-1(eded)-333(to)-333(bu)1(ild)-333(th)1(e)-334(s)-1(of)1(t)28(w)27(ar)1(e)-1(.)]TJ 16.9365 -13.6456 Td[(MLD2P)1(4)-479(is)-479(implem)-1(en)28(ted)-479(al)1(m)-1(ost)-479(e)-1(n)29(tirely)-479(i)1(n)-479(F)83(or)1(tran)-478(95,)-515(w)-1(i)1(th)-479(som)-1(e)-479(in)28(terf)1(ac)-1(es)-480(to)]TJ -16.9365 -13.5492 Td[(exte)-1(r)1(nal)-284(li)1(brar)1(ie)-1(s)-284(in)-284(C;)-285(t)1(he)-285(F)84(ortr)1(an)-284(c)-1(ompi)1(le)-1(r)-284(m)28(ust)-285(sup)1(p)-27(ort)-284(the)-285(F)84(ortr)1(an)-284(95)-285(stand)1(ard)-284(p)1(lus)]TJ 0 -13.5492 Td[(th)1(e)-354(extension)-352(T)-1(R15581,)-357(whic)28(h)-353(enh)1(ance)-1(s)-353(the)-353(u)1(s)-1(ab)1(ilit)28(y)-352(of)]TJ/F46 10.9091 Tf 271.4807 0 Td[(ALLOCATABLE)]TJ/F15 10.9091 Tf 66.848 0 Td[(v)56(ariab)1(les)-1(.)-503(M)1(os)-1(t)]TJ -338.3287 -13.5492 Td[(mo)-28(dern)-342(F)83(or)1(tran)-342(c)-1(ompil)1(e)-1(r)1(s)-344(sup)1(p)-28(or)1(t)-343(thi)1(s)-344(lan)1(guage)-343(lev)28(e)-1(l.)-473(In)-342(part)1(ic)-1(u)1(lar,)-345(th)1(is)-343(is)-344(sup)1(p)-27(orted)]TJ 0 -13.5492 Td[(b)28(y)-400(the)-401(G)1(NU)-401(F)83(or)1(tran)-400(com)-1(p)1(iler)-401(as)-401(of)-400(v)28(ersion)-400(4.2.0;)-434(ho)28(w)28(e)-1(v)28(er)-401(w)28(e)-401(rec)-1(omme)-1(n)1(d)-401(t)1(o)-401(use)-401(the)]TJ 0 -13.5492 Td[(lates)-1(t)-414(a)28(v)56(ailab)1(le)-415(releas)-1(e)-415(\0504.)1(3.1)-415(at)-414(th)1(e)-415(time)-415(of)-414(thi)1(s)-415(writi)1(ng\051.)-687(T)-1(h)1(e)-415(s)-1(of)1(t)28(w)27(ar)1(e)-415(de\014n)1(e)-1(s)-415(d)1(ata)]TJ 0 -13.5492 Td[(t)28(yp)-27(e)-1(s)-333(and)-333(in)29(te)-1(r)1(face)-1(s)-334(f)1(or)-333(real)-333(and)-333(com)-1(p)1(lex)-334(d)1(ata,)-333(in)-333(b)-27(oth)-333(singl)1(e)-334(and)-333(d)1(oub)1(le)-334(p)1(re)-1(cision.)]TJ/F19 11.9552 Tf 0 -29.7639 Td[(3.)-1(1)-1125(Pre)-1(re)-1(q)1(ui)-1(sit)-1(es)]TJ/F15 10.9091 Tf 0 -20.782 Td[(The)-334(f)1(ollo)28(win)1(g)-334(b)1(as)-1(e)-334(l)1(ibr)1(aries)-334(are)-333(nee)-1(d)1(e)-1(d)1(:)]TJ -ET -1 0 0 1 80.9452 470.561 cm -0 g 0 G -1 0 0 1 -80.9452 -470.561 cm -BT -/F45 10.9091 Tf 86.3998 470.561 Td[(BLAS)]TJ -ET -1 0 0 1 119.3238 470.561 cm -0 g 0 G -1 0 0 1 -119.3238 -470.561 cm -BT -/F15 10.9091 Tf 124.7784 470.561 Td[([)]TJ -ET -1 0 0 1 127.8087 470.561 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -127.8087 -470.561 cm -BT -/F15 10.9091 Tf 127.8087 470.561 Td[(10)]TJ -ET -1 0 0 1 138.7178 470.561 cm -0 g 0 G -1 0 0 1 -138.7178 -470.561 cm -BT -/F15 10.9091 Tf 138.7178 470.561 Td[(,)]TJ -ET -1 0 0 1 145.1884 470.561 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -145.1884 -470.561 cm -BT -/F15 10.9091 Tf 145.1884 470.561 Td[(11)]TJ -ET -1 0 0 1 156.0975 470.561 cm -0 g 0 G -1 0 0 1 -156.0975 -470.561 cm -BT -/F15 10.9091 Tf 156.0975 470.561 Td[(,)]TJ -ET -1 0 0 1 162.5682 470.561 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -162.5682 -470.561 cm -BT -/F15 10.9091 Tf 162.5682 470.561 Td[(17)]TJ -ET -1 0 0 1 173.4773 470.561 cm -0 g 0 G -1 0 0 1 -173.4773 -470.561 cm -BT -/F15 10.9091 Tf 173.4773 470.561 Td[(])-315(Man)28(y)-315(v)28(end)1(ors)-316(p)1(ro)28(vid)1(e)-316(opti)1(m)-1(i)1(z)-1(ed)-315(v)28(e)-1(r)1(s)-1(ion)1(s)-316(of)-315(th)1(e)-316(B)-1(asic)-316(Li)1(near)-315(Alge)-1(-)]TJ -59.8047 -13.5492 Td[(br)1(a)-229(Sub)1(pr)1(ograms)-1(;)-264(i)1(f)-229(no)-229(v)28(end)1(or)-229(v)28(e)-1(rsion)-229(i)1(s)-230(a)28(v)56(ailabl)1(e)-230(for)-229(a)-229(giv)28(en)-229(p)1(latfor)1(m)-1(,)-249(the)-230(A)84(TLAS)]TJ 0 -13.5492 Td[(soft)28(w)27(ar)1(e)-404(\050)]TJ/F46 10.9091 Tf 47.8218 0 Td[(http://math-atlas.sourceforge.net/)]TJ/F15 10.9091 Tf 194.7251 0 Td[(\051)-403(ma)27(y)-402(b)-28(e)-403(e)-1(mpl)1(o)27(y)28(ed.)-653(The)-404(r)1(e)-1(f)1(-)]TJ -242.5469 -13.5492 Td[(ere)-1(n)1(c)-1(e)-415(BLAS)-414(fr)1(om)-415(Ne)-1(t)1(lib)-414(\050)]TJ/F46 10.9091 Tf 132.3926 0 Td[(http://www.netlib.org/blas)]TJ/F15 10.9091 Tf 148.9074 0 Td[(\051)-414(are)-415(me)-1(an)28(t)-414(to)-415(d)1(e)-1(\014)1(ne)]TJ -281.3 -13.5492 Td[(th)1(e)-332(s)-1(tan)1(dard)-331(b)-27(eha)28(viou)1(r)-332(of)-331(th)1(e)-332(B)-1(LAS)-331(i)1(n)28(te)-1(r)1(face)-1(,)-331(s)-1(o)-331(they)-332(ar)1(e)-332(not)-331(optimize)-1(d)-331(f)1(or)-331(an)28(y)]TJ 0 -13.5492 Td[(par)1(ticular)-396(p)1(laft)1(orm,)-412(and)-396(shou)1(ld)-396(onl)1(y)-396(b)-28(e)-397(u)1(s)-1(ed)-396(as)-397(a)-396(last)-396(re)-1(sort.)-633(Note)-396(that)-396(BLAS)]TJ 0 -13.5492 Td[(com)-1(p)1(utati)1(ons)-223(for)1(m)-224(a)-222(re)-1(l)1(ativ)28(ely)-223(sm)-1(al)1(l)-223(par)1(t)-223(of)-222(the)-223(MLD2P)1(4/PS)1(B)-1(LAS)-222(com)-1(p)1(utat)1(ions;)]TJ 0 -13.5492 Td[(th)1(e)-1(y)-307(are)-308(ho)28(w)27(ev)28(er)-308(critical)-308(wh)1(e)-1(n)-307(usin)1(g)-308(pr)1(e)-1(cond)1(ition)1(e)-1(rs)-308(b)1(as)-1(ed)-308(on)-307(th)1(e)-309(UM)1(FP)84(A)27(CK)-307(or)]TJ 0 -13.5492 Td[(Su)1(p)-27(e)-1(rLU)-333(th)1(ird)-333(p)1(art)28(y)-333(lib)1(rari)1(e)-1(s.)]TJ -ET -1 0 0 1 80.9452 339.2661 cm -0 g 0 G -1 0 0 1 -80.9452 -339.2661 cm -BT -/F45 10.9091 Tf 86.3998 339.2661 Td[(MPI)]TJ -ET -1 0 0 1 111.6421 339.2661 cm -0 g 0 G -1 0 0 1 -111.6421 -339.2661 cm -BT -/F15 10.9091 Tf 117.0966 339.2661 Td[([)]TJ -ET -1 0 0 1 120.1269 339.2661 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -120.1269 -339.2661 cm -BT -/F15 10.9091 Tf 120.1269 339.2661 Td[(16)]TJ -ET -1 0 0 1 131.036 339.2661 cm -0 g 0 G -1 0 0 1 -131.036 -339.2661 cm -BT -/F15 10.9091 Tf 131.036 339.2661 Td[(,)]TJ -ET -1 0 0 1 137.7781 339.2661 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -137.7781 -339.2661 cm -BT -/F15 10.9091 Tf 137.7781 339.2661 Td[(21)]TJ -ET -1 0 0 1 148.6873 339.2661 cm -0 g 0 G -1 0 0 1 -148.6873 -339.2661 cm -BT -/F15 10.9091 Tf 148.6873 339.2661 Td[(])-340(A)-340(v)28(e)-1(r)1(s)-1(ion)-339(of)-340(MP)1(I)-341(is)-340(a)28(v)55(ai)1(lable)-340(on)-340(mos)-1(t)-340(hi)1(gh-p)-28(erf)1(ormance)-341(com)-1(p)1(utin)1(g)-340(s)-1(ys-)]TJ -35.0147 -13.5492 Td[(tem)-1(s;)-333(only)-333(v)28(ersion)-333(1.1)-333(is)-334(r)1(e)-1(q)1(uir)1(e)-1(d)1(.)]TJ -ET -1 0 0 1 80.9452 302.8156 cm -0 g 0 G -1 0 0 1 -80.9452 -302.8156 cm -BT -/F45 10.9091 Tf 86.3998 302.8156 Td[(BLA)32(CS)]TJ -ET -1 0 0 1 128.0359 302.8156 cm -0 g 0 G -1 0 0 1 -128.0359 -302.8156 cm -BT -/F15 10.9091 Tf 133.4904 302.8156 Td[([)]TJ -ET -1 0 0 1 136.5207 302.8156 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -136.5207 -302.8156 cm -BT -/F15 10.9091 Tf 136.5207 302.8156 Td[(12)]TJ -ET -1 0 0 1 147.4298 302.8156 cm -0 g 0 G -1 0 0 1 -147.4298 -302.8156 cm -BT -/F15 10.9091 Tf 147.4298 302.8156 Td[(])-342(The)-342(Bas)-1(i)1(c)-343(Lin)1(e)-1(ar)-341(Algebra)-342(Comm)27(u)1(nication)-341(Su)1(bp)1(rograms)-342(are)-343(a)28(v)56(ailab)1(le)-342(in)]TJ -33.7572 -13.5492 Td[(source)-297(f)1(orm)-297(f)1(rom)]TJ/F46 10.9091 Tf 83.7898 0 Td[(http://www.netlib.org/blacs)]TJ/F15 10.9091 Tf 154.6347 0 Td[(;)-308(s)-1(ome)-297(v)28(endor)1(s)-297(in)1(c)-1(lu)1(de)-297(t)1(hem)-297(in)]TJ -238.4245 -13.5492 Td[(th)1(e)-1(ir)-333(p)1(arall)1(e)-1(l)-333(com)-1(p)1(utin)1(g)-333(s)-1(u)1(pp)-27(ort)-333(lib)1(rari)1(e)-1(s.)]TJ -ET -1 0 0 1 80.9452 252.8158 cm -0 g 0 G -1 0 0 1 -80.9452 -252.8158 cm -BT -/F45 10.9091 Tf 86.3998 252.8158 Td[(PSBLAS)]TJ -ET -1 0 0 1 134.8692 252.8158 cm -0 g 0 G -1 0 0 1 -134.8692 -252.8158 cm -BT -/F15 10.9091 Tf 140.3237 252.8158 Td[([)]TJ -ET -1 0 0 1 143.354 252.8158 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -143.354 -252.8158 cm -BT -/F15 10.9091 Tf 143.354 252.8158 Td[(14)]TJ -ET -1 0 0 1 154.2631 252.8158 cm -0 g 0 G -1 0 0 1 -154.2631 -252.8158 cm -BT -/F15 10.9091 Tf 154.2631 252.8158 Td[(,)]TJ -ET -1 0 0 1 160.9298 252.8158 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -160.9298 -252.8158 cm -BT -/F15 10.9091 Tf 160.9298 252.8158 Td[(15)]TJ -ET -1 0 0 1 171.8389 252.8158 cm -0 g 0 G -1 0 0 1 -171.8389 -252.8158 cm -BT -/F15 10.9091 Tf 171.8389 252.8158 Td[(])-333(P)28(aral)1(le)-1(l)-333(S)1(par)1(s)-1(e)-334(BLAS)-333(is)-333(a)27(v)56(ail)1(able)-334(f)1(rom)]TJ/F46 10.9091 Tf -58.1663 -13.5492 Td[(http://www.ce.uniroma2.it/psblas)]TJ/F15 10.9091 Tf 183.2707 0 Td[(;)-339(v)28(e)-1(r)1(s)-1(ion)-337(2.)1(3)-338(\050or)-337(l)1(ate)-1(r)1(\051)-338(is)-337(re)-1(q)1(uir)1(e)-1(d)1(.)-457(In)1(dee)-1(d)1(,)]TJ -183.2707 -13.5492 Td[(all)-364(the)-364(prerequi)1(s)-1(it)1(e)-1(s)-365(li)1(s)-1(ted)-364(s)-1(o)-364(far)-364(are)-365(al)1(s)-1(o)-364(pr)1(e)-1(requ)1(is)-1(i)1(te)-1(s)-365(of)-364(P)1(SBLAS.)-364(T)83(o)-364(bui)1(ld)-364(the)]TJ 0 -13.5492 Td[(MLD2P)1(4)-443(li)1(brar)1(y)-443(it)-442(is)-443(nec)-1(es)-1(sary)-442(to)-443(ge)-1(t)-442(ac)-1(ce)-1(ss)-443(to)-443(th)1(e)-444(sour)1(c)-1(e)-443(PS)1(B)-1(LAS)-442(d)1(irec)-1(tor)1(y)]TJ 0 -13.5492 Td[(em)-1(p)1(lo)28(y)28(e)-1(d)-380(to)-381(bu)1(ild)-380(th)1(e)-382(v)28(ersion)-381(u)1(nd)1(e)-1(r)-380(use)-1(;)-404(aft)1(e)-1(r)-380(the)-381(MLD2P)1(4)-381(bu)1(ild)-380(pr)1(o)-28(c)-1(es)-1(s)-381(com)-1(-)]TJ 0 -13.5492 Td[(pl)1(e)-1(tes)-1(,)-367(onl)1(y)-361(th)1(e)-362(compil)1(e)-1(d)-360(for)1(m)-362(of)-360(th)1(e)-362(P)1(SBLAS)-360(lib)1(rary)-360(is)-361(nec)-1(es)-1(sary)-360(to)-361(b)1(uild)-360(u)1(s)-1(er)]TJ 0 -13.5492 Td[(app)1(lication)1(s)-1(.)]TJ -10.3363 -22.9013 Td[(Pl)1(e)-1(ase)-290(n)1(ote)-290(th)1(at)-289(the)-289(fou)1(r)-289(pr)1(e)-1(vi)1(ous)-290(l)1(ibr)1(aries)-290(m)28(ust)-289(ha)28(v)28(e)-290(F)84(ortr)1(an)-289(in)28(terf)1(ac)-1(es)-290(com)-1(p)1(atib)1(le)]TJ -16.9365 -13.5492 Td[(with)-299(MLD2P)1(4;)-311(usual)1(ly)-300(th)1(is)-300(m)-1(eans)-300(th)1(at)-300(th)1(e)-1(y)-299(s)-1(h)1(ould)-299(all)-299(b)-28(e)-300(b)1(uil)1(t)-300(with)-299(the)-300(sam)-1(e)-300(com)-1(p)1(iler)]TJ 0 -13.5492 Td[(as)-334(M)1(LD2P4.)]TJ -ET -1 0 0 1 86.3998 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -222 0 obj << -/Type /Page -/Contents 223 0 R -/Resources 221 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 195 0 R -/Annots [ 225 0 R 226 0 R 227 0 R 228 0 R 229 0 R 230 0 R 231 0 R 232 0 R ] ->> endobj -225 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [126.8124 469.5648 139.714 478.5876] -/Subtype /Link -/A << /S /GoTo /D (cite.blas3) >> ->> endobj -226 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [144.1922 469.5648 157.0938 478.5876] -/Subtype /Link -/A << /S /GoTo /D (cite.blas2) >> ->> endobj -227 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [161.5719 469.5648 174.4736 478.5876] -/Subtype /Link -/A << /S /GoTo /D (cite.blas1) >> ->> endobj -228 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [119.1307 338.2698 132.0323 347.2927] -/Subtype /Link -/A << /S /GoTo /D (cite.MPI2) >> ->> endobj -229 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [136.7819 338.2698 149.6835 347.2927] -/Subtype /Link -/A << /S /GoTo /D (cite.MPI1) >> ->> endobj -230 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [135.5245 301.8193 148.4261 310.8421] -/Subtype /Link -/A << /S /GoTo /D (cite.BLACS) >> ->> endobj -231 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [142.3578 251.8195 155.2594 260.8424] -/Subtype /Link -/A << /S /GoTo /D (cite.PSBLASGUIDE) >> ->> endobj -232 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [159.9335 251.8195 172.8352 260.8424] -/Subtype /Link -/A << /S /GoTo /D (cite.psblas_00) >> ->> endobj -224 0 obj << -/D [222 0 R /XYZ 86.3998 740.0018 null] ->> endobj -22 0 obj << -/D [222 0 R /XYZ 86.3998 715.0952 null] ->> endobj -26 0 obj << -/D [222 0 R /XYZ 86.3998 526.1673 null] ->> endobj -221 0 obj << -/Font << /F15 131 0 R /F43 134 0 R /F19 113 0 R /F46 219 0 R /F45 147 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -240 0 obj << -/Length 7822 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(3)]TJ -ET -1 0 0 1 99.6305 740.0018 cm -0 g 0 G -1 0 0 1 -99.6305 -740.0018 cm -BT -/F43 10.9091 Tf 103.7516 740.0018 Td[(Configuri)-1(ng)-378(an)-1(d)-378(Build)-1(ing)-378(ML)-1(D2)1(P4)]TJ/F15 10.9091 Tf 396.8452 0 Td[(5)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -506.0513 -740.0018 cm -BT -/F19 11.9552 Tf 93.6002 704.1363 Td[(3.)-1(2)-1125(Opt)-1(io)-1(nal)-375(t)-1(hir)-1(d)-375(part)31(y)-375(l)-1(ibr)-1(a)1(r)-1(ie)-1(s)]TJ/F15 10.9091 Tf 0 -20.5946 Td[(W)84(e)-427(pro)28(vi)1(de)-427(in)28(t)1(e)-1(rf)1(ac)-1(es)-427(to)-426(the)-427(f)1(ollo)28(wing)-426(thi)1(rd-par)1(t)28(y)-427(soft)28(w)28(are)-427(li)1(brar)1(ie)-1(s;)-473(not)1(e)-427(that)-426(thes)-1(e)]TJ 0 -13.5492 Td[(are)-370(op)1(tional)1(,)-379(bu)1(t)-370(if)-369(y)28(ou)-370(enab)1(le)-370(them)-370(s)-1(ome)-370(defau)1(lts)-370(for)-369(m)27(u)1(ltilev)28(el)-370(pr)1(e)-1(cond)1(ition)1(e)-1(r)1(s)-371(ma)28(y)]TJ 0 -13.5492 Td[(c)27(h)1(ange)-334(t)1(o)-334(r)1(e)-1(\015)1(e)-1(ct)-334(t)1(heir)-333(pr)1(e)-1(se)-1(n)1(c)-1(e.)]TJ -ET -1 0 0 1 88.1457 632.1523 cm -0 g 0 G -1 0 0 1 -88.1457 -632.1523 cm -BT -/F45 10.9091 Tf 93.6002 632.1523 Td[(UM)1(FP)96(A)31(C)1(K)]TJ -ET -1 0 0 1 158.615 632.1523 cm -0 g 0 G -1 0 0 1 -158.615 -632.1523 cm -BT -/F15 10.9091 Tf 164.0695 632.1523 Td[([)]TJ -ET -1 0 0 1 167.0998 632.1523 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -167.0998 -632.1523 cm -BT -/F15 10.9091 Tf 167.0998 632.1523 Td[(8)]TJ -ET -1 0 0 1 172.5544 632.1523 cm -0 g 0 G -1 0 0 1 -172.5544 -632.1523 cm -BT -/F15 10.9091 Tf 172.5544 632.1523 Td[(])-333(A)-333(s)-1(p)1(ars)-1(e)-333(dir)1(e)-1(ct)-333(factorization)-333(p)1(ac)27(k)56(age)-334(a)28(v)56(ailabl)1(e)-334(fr)1(om)]TJ/F46 10.9091 Tf -51.6814 -13.5492 Td[(http://www.cise.ufl.edu/research/sparse/umfpack/)]TJ/F15 10.9091 Tf 274.9061 0 Td[(;)-359(pro)28(vi)1(des)-352(serial)-350(factor-)]TJ -274.9061 -13.5492 Td[(ization)-274(and)-274(tri)1(angu)1(lar)-275(syste)-1(m)-275(solu)1(tion)-274(for)-274(dou)1(ble)-275(p)1(re)-1(cision)-274(real)-275(an)1(d)-275(com)-1(p)1(lex)-275(d)1(ata.)]TJ 0 -13.5492 Td[(W)84(e)-334(ha)28(v)28(e)-334(tes)-1(t)1(e)-1(d)-333(v)28(ersions)-333(4.4)-334(an)1(d)-333(5.1.)]TJ -ET -1 0 0 1 88.1457 569.3936 cm -0 g 0 G -1 0 0 1 -88.1457 -569.3936 cm -BT -/F45 10.9091 Tf 93.6002 569.3936 Td[(Sup)-32(er)1(LU)]TJ -ET -1 0 0 1 142.9711 569.3936 cm -0 g 0 G -1 0 0 1 -142.9711 -569.3936 cm -BT -/F15 10.9091 Tf 148.4257 569.3936 Td[([)]TJ -ET -1 0 0 1 151.456 569.3936 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -151.456 -569.3936 cm -BT -/F15 10.9091 Tf 151.456 569.3936 Td[(9)]TJ -ET -1 0 0 1 156.9105 569.3936 cm -0 g 0 G -1 0 0 1 -156.9105 -569.3936 cm -BT -/F15 10.9091 Tf 156.9105 569.3936 Td[(])-333(A)-333(s)-1(p)1(ars)-1(e)-333(dir)1(e)-1(ct)-333(factorization)-333(p)1(ac)27(k)56(age)-334(a)28(v)56(ailabl)1(e)-334(fr)1(om)]TJ/F46 10.9091 Tf -36.0375 -13.5492 Td[(http://crd.lbl.gov/~xiaoye/SuperLU/)]TJ/F15 10.9091 Tf 200.4524 0 Td[(;)-498(pr)1(o)27(v)1(ides)-444(s)-1(eri)1(al)-444(f)1(ac)-1(t)1(orization)-443(and)-443(t)1(ri-)]TJ -200.4524 -13.5492 Td[(angu)1(lar)-389(sys)-1(t)1(e)-1(m)-390(solu)1(tion)-389(for)-389(sin)1(gle)-390(an)1(d)-389(dou)1(ble)-390(p)1(rec)-1(i)1(s)-1(ion)1(,)-403(re)-1(al)-389(an)1(d)-389(c)-1(omp)1(le)-1(x)-389(d)1(ata.)]TJ 0 -13.5492 Td[(W)84(e)-334(ha)28(v)28(e)-334(tes)-1(t)1(e)-1(d)-333(v)28(ersions)-333(3.0)-334(an)1(d)-333(3.1.)]TJ -ET -1 0 0 1 88.1457 506.6349 cm -0 g 0 G -1 0 0 1 -88.1457 -506.6349 cm -BT -/F45 10.9091 Tf 93.6002 506.6349 Td[(Sup)-32(er)1(LU)]TJ -ET -1 0 0 1 143.7238 506.6349 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.7636 0.1992 l -S -Q -1 0 0 1 -143.7238 -506.6349 cm -BT -/F45 10.9091 Tf 147.4874 506.6349 Td[(Dist)]TJ -ET -1 0 0 1 170.4206 506.6349 cm -0 g 0 G -1 0 0 1 -170.4206 -506.6349 cm -BT -/F15 10.9091 Tf 175.8752 506.6349 Td[([)]TJ -ET -1 0 0 1 178.9055 506.6349 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -178.9055 -506.6349 cm -BT -/F15 10.9091 Tf 178.9055 506.6349 Td[(18)]TJ -ET -1 0 0 1 189.8146 506.6349 cm -0 g 0 G -1 0 0 1 -189.8146 -506.6349 cm -BT -/F15 10.9091 Tf 189.8146 506.6349 Td[(])-304(A)-303(s)-1(p)1(ars)-1(e)-304(d)1(irec)-1(t)-303(factorization)-303(pac)27(k)56(age)-304(a)28(v)56(ailabl)1(e)-305(f)1(rom)-304(th)1(e)-305(sam)-1(e)-304(site)]TJ -68.9416 -13.5492 Td[(as)-482(S)1(up)-27(erLU;)-481(pr)1(o)28(vides)-482(p)1(arall)1(e)-1(l)-481(f)1(ac)-1(tor)1(iz)-1(at)1(ion)-481(an)1(d)-481(tri)1(angul)1(ar)-481(s)-1(y)1(s)-1(tem)-482(solu)1(tion)-481(f)1(or)]TJ 0 -13.5492 Td[(dou)1(bl)1(e)-334(pr)1(e)-1(cis)-1(i)1(on)-333(real)-333(and)-333(com)-1(p)1(lex)-334(d)1(ata.)-444(W)83(e)-333(ha)28(v)28(e)-334(tes)-1(ted)-333(v)28(ers)-1(i)1(on)-333(2.1.)]TJ/F19 11.9552 Tf -27.2728 -29.0221 Td[(3.)-1(3)-1125(C)-1(on\014g)-1(urat)-1(io)-1(n)-375(opt)-1(io)-1(ns)]TJ/F15 10.9091 Tf 0 -20.5946 Td[(T)83(o)-302(bu)1(ild)-302(M)1(LD2P4)-302(th)1(e)-303(\014r)1(s)-1(t)-302(ste)-1(p)-301(is)-303(to)-302(use)-303(th)1(e)]TJ/F46 10.9091 Tf 214.002 0 Td[(configure)]TJ/F15 10.9091 Tf 54.842 0 Td[(sc)-1(ri)1(pt)-302(in)-302(t)1(he)-303(main)-302(d)1(irec)-1(t)1(ory)-302(to)]TJ -268.844 -13.5492 Td[(generate)-334(th)1(e)-334(nece)-1(ss)-1(ar)1(y)-334(mak)28(e\014le\050s\051.)]TJ 16.9365 -13.5492 Td[(As)-334(a)-333(minimal)-333(exam)-1(p)1(le)-334(consid)1(e)-1(r)-333(th)1(e)-334(fol)1(lo)28(w)-1(i)1(ng:)]TJ -ET -1 0 0 1 88.1457 381.3169 cm -0 g 0 G -0 g 0 G -1 0 0 1 -88.1457 -381.3169 cm -BT -/F46 10.9091 Tf 93.6002 381.3169 Td[(./configure)-525(--with-psblas=/home/user/PSBLAS/psblas-2.3)]TJ/F15 10.9091 Tf 0 -21.5044 Td[(whic)28(h)-272(as)-1(sume)-1(s)-273(th)1(at)-273(th)1(e)-273(v)56(ariou)1(s)-273(MPI)-272(c)-1(ompil)1(e)-1(r)1(s)-273(and)-272(s)-1(u)1(pp)-27(ort)-272(lib)1(raries)-273(are)-273(a)28(v)56(ailab)1(le)-273(in)-272(the)]TJ 0 -13.5492 Td[(stand)1(ard)-253(d)1(irec)-1(t)1(ories)-254(on)-252(the)-253(s)-1(ystem)-1(,)-269(an)1(d)-253(sp)-28(eci\014es)-254(on)1(ly)-253(th)1(e)-254(P)1(SBLAS)-253(b)1(uil)1(d)-253(di)1(rec)-1(tor)1(y)-253(\050note)]TJ 0 -13.5492 Td[(th)1(at)-250(the)-250(l)1(atte)-1(r)-249(di)1(re)-1(ctory)-249(m)27(u)1(s)-1(t)-249(b)-28(e)-250(sp)-28(eci\014ed)-250(wit)1(h)-250(an)]TJ/F20 10.9091 Tf 236.2479 0 Td[(absolu)1(t)-1(e)]TJ/F15 10.9091 Tf 40.6394 0 Td[(pat)1(h\051.)-416(The)-250(fu)1(ll)-250(se)-1(t)-249(of)-249(option)1(s)]TJ -276.8873 -13.5492 Td[(ma)27(y)-333(b)-27(e)-334(lo)-27(ok)28(e)-1(d)-333(at)-333(b)28(y)-333(issuin)1(g)-334(th)1(e)-334(com)-1(mand)]TJ/F46 10.9091 Tf 205.576 0 Td[(./configure)-525(--help)]TJ/F15 10.9091 Tf 103.0897 0 Td[(,)-333(whic)28(h)-333(pr)1(o)-28(du)1(c)-1(es)-1(:)]TJ -ET -1 0 0 1 88.1457 297.6604 cm -0 g 0 G -0 g 0 G -1 0 0 1 -88.1457 -297.6604 cm -BT -/F46 10.9091 Tf 93.6002 297.6604 Td[(`configure')-525(configures)-525(MLD2P4)-525(1.0)-525(to)-525(adapt)-525(to)-525(many)-525(kinds)-525(of)-525(systems.)]TJ 0 -27.0984 Td[(Usage:)-525(./configure)-525([OPTION]...)-525([VAR=VALUE]...)]TJ 0 -27.0984 Td[(To)-525(assign)-525(environment)-525(variables)-525(\050e.g.,)-525(CC,)-525(CFLAGS...\051,)-525(specify)-525(them)-525(as)]TJ 0 -13.5492 Td[(VAR=VALUE.)-1050(See)-525(below)-525(for)-525(descriptions)-525(of)-525(some)-525(of)-525(the)-525(useful)-525(variables.)]TJ 0 -27.0984 Td[(Defaults)-525(for)-525(the)-525(options)-525(are)-525(specified)-525(in)-525(brackets.)]TJ 0 -27.0984 Td[(Configuration:)]TJ 11.4544 -13.5492 Td[(-h,)-525(--help)-7350(display)-525(this)-525(help)-525(and)-525(exit)]TJ 22.9089 -13.5492 Td[(--help=short)-4200(display)-525(options)-525(specific)-525(to)-525(this)-525(package)]TJ 0 -13.5492 Td[(--help=recursive)-2100(display)-525(the)-525(short)-525(help)-525(of)-525(all)-525(the)-525(included)-525(packages)]TJ -22.9089 -13.5492 Td[(-V,)-525(--version)-5775(display)-525(version)-525(information)-525(and)-525(exit)]TJ -ET -1 0 0 1 93.6002 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -239 0 obj << -/Type /Page -/Contents 240 0 R -/Resources 238 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 195 0 R -/Annots [ 242 0 R 243 0 R 244 0 R 245 0 R ] ->> endobj -242 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 739.0056 100.6267 748.4526] -/Subtype /Link -/A << /S /GoTo /D (section.3) >> ->> endobj -243 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [166.1036 631.156 173.5506 640.1789] -/Subtype /Link -/A << /S /GoTo /D (cite.UMFPACK) >> ->> endobj -244 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [150.4597 568.3973 157.9068 577.4201] -/Subtype /Link -/A << /S /GoTo /D (cite.SUPERLU) >> ->> endobj -245 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [177.9092 505.6386 190.8109 514.6614] -/Subtype /Link -/A << /S /GoTo /D (cite.SUPERLUDIST) >> ->> endobj -241 0 obj << -/D [239 0 R /XYZ 93.6002 740.0018 null] ->> endobj -30 0 obj << -/D [239 0 R /XYZ 93.6002 715.0952 null] ->> endobj -34 0 obj << -/D [239 0 R /XYZ 93.6002 462.3409 null] ->> endobj -238 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F19 113 0 R /F45 147 0 R /F46 219 0 R /F20 181 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -251 0 obj << -/Length 4022 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(6)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -498.8509 -740.0018 cm -BT -/F46 10.9091 Tf 97.8542 704.1363 Td[(-q,)-525(--quiet,)-525(--silent)-1575(do)-525(not)-525(print)-525(`checking...')-525(messages)]TJ 22.9088 -13.5492 Td[(--cache-file=FILE)-1575(cache)-525(test)-525(results)-525(in)-525(FILE)-525([disabled])]TJ -22.9088 -13.5492 Td[(-C,)-525(--config-cache)-3150(alias)-525(for)-525(`--cache-file=config.cache')]TJ 0 -13.5492 Td[(-n,)-525(--no-create)-4725(do)-525(not)-525(create)-525(output)-525(files)]TJ 22.9088 -13.5492 Td[(--srcdir=DIR)-4200(find)-525(the)-525(sources)-525(in)-525(DIR)-525([configure)-525(dir)-525(or)-525(`..'])]TJ -34.3632 -27.0984 Td[(Installation)-525(directories:)]TJ 11.4544 -13.5492 Td[(--prefix=PREFIX)-4725(install)-525(architecture-independent)-525(files)-525(in)-525(PREFIX)]TJ 0 -13.5492 Td[([/usr/local])]TJ 0 -13.5492 Td[(--exec-prefix=EPREFIX)-1575(install)-525(architecture-dependent)-525(files)-525(in)-525(EPREFIX)]TJ 0 -13.5492 Td[([PREFIX])]TJ -11.4544 -27.0984 Td[(By)-525(default,)-525(`make)-525(install')-525(will)-525(install)-525(all)-525(the)-525(files)-525(in)]TJ 0 -13.5492 Td[(`/usr/local/bin',)-525(`/usr/local/lib')-525(etc.)-1050(You)-525(can)-525(specify)]TJ 0 -13.5492 Td[(an)-525(installation)-525(prefix)-525(other)-525(than)-525(`/usr/local')-525(using)-525(`--prefix',)]TJ 0 -13.5492 Td[(for)-525(instance)-525(`--prefix=$HOME'.)]TJ 0 -27.0984 Td[(For)-525(better)-525(control,)-525(use)-525(the)-525(options)-525(below.)]TJ 0 -27.0984 Td[(Fine)-525(tuning)-525(of)-525(the)-525(installation)-525(directories:)]TJ 11.4544 -13.5492 Td[(--bindir=DIR)-5775(user)-525(executables)-525([EPREFIX/bin])]TJ 0 -13.5492 Td[(--sbindir=DIR)-5250(system)-525(admin)-525(executables)-525([EPREFIX/sbin])]TJ 0 -13.5492 Td[(--libexecdir=DIR)-3675(program)-525(executables)-525([EPREFIX/libexec])]TJ 0 -13.5492 Td[(--sysconfdir=DIR)-3675(read-only)-525(single-machine)-525(data)-525([PREFIX/etc])]TJ 0 -13.5492 Td[(--sharedstatedir=DIR)-1575(modifiable)-525(architecture-independent)-525(data)-525([PREFIX/com])]TJ 0 -13.5492 Td[(--localstatedir=DIR)-2100(modifiable)-525(single-machine)-525(data)-525([PREFIX/var])]TJ 0 -13.5492 Td[(--libdir=DIR)-5775(object)-525(code)-525(libraries)-525([EPREFIX/lib])]TJ 0 -13.5492 Td[(--includedir=DIR)-3675(C)-525(header)-525(files)-525([PREFIX/include])]TJ 0 -13.5492 Td[(--oldincludedir=DIR)-2100(C)-525(header)-525(files)-525(for)-525(non-gcc)-525([/usr/include])]TJ 0 -13.5492 Td[(--datarootdir=DIR)-3150(read-only)-525(arch.-independent)-525(data)-525(root)-525([PREFIX/share])]TJ 0 -13.5492 Td[(--datadir=DIR)-5250(read-only)-525(architecture-independent)-525(data)-525([DATAROOTDIR])]TJ 0 -13.5492 Td[(--infodir=DIR)-5250(info)-525(documentation)-525([DATAROOTDIR/info])]TJ 0 -13.5492 Td[(--localedir=DIR)-4200(locale-dependent)-525(data)-525([DATAROOTDIR/locale])]TJ 0 -13.5492 Td[(--mandir=DIR)-5775(man)-525(documentation)-525([DATAROOTDIR/man])]TJ 0 -13.5492 Td[(--docdir=DIR)-5775(documentation)-525(root)-525([DATAROOTDIR/doc/mld2p4])]TJ 0 -13.5492 Td[(--htmldir=DIR)-5250(html)-525(documentation)-525([DOCDIR])]TJ 0 -13.5492 Td[(--dvidir=DIR)-5775(dvi)-525(documentation)-525([DOCDIR])]TJ 0 -13.5492 Td[(--pdfdir=DIR)-5775(pdf)-525(documentation)-525([DOCDIR])]TJ 0 -13.5492 Td[(--psdir=DIR)-6300(ps)-525(documentation)-525([DOCDIR])]TJ -11.4544 -27.0984 Td[(Optional)-525(Packages:)]TJ 11.4544 -13.5492 Td[(--with-PACKAGE[=ARG])-2100(use)-525(PACKAGE)-525([ARG=yes])]TJ 0 -13.5492 Td[(--without-PACKAGE)-3675(do)-525(not)-525(use)-525(PACKAGE)-525(\050same)-525(as)-525(--with-PACKAGE=no\051)]TJ 0 -13.5492 Td[(--with-psblas)-5775(The)-525(source)-525(directory)-525(for)-525(PSBLAS,)-525(for)-525(example,)]TJ -ET -1 0 0 1 86.3998 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -250 0 obj << -/Type /Page -/Contents 251 0 R -/Resources 249 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 195 0 R ->> endobj -252 0 obj << -/D [250 0 R /XYZ 86.3998 740.0018 null] ->> endobj -249 0 obj << -/Font << /F15 131 0 R /F43 134 0 R /F46 219 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -255 0 obj << -/Length 4193 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(3)]TJ -ET -1 0 0 1 99.6305 740.0018 cm -0 g 0 G -1 0 0 1 -99.6305 -740.0018 cm -BT -/F43 10.9091 Tf 103.7516 740.0018 Td[(Configuri)-1(ng)-378(an)-1(d)-378(Build)-1(ing)-378(ML)-1(D2)1(P4)]TJ/F15 10.9091 Tf 396.8452 0 Td[(7)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -506.0513 -740.0018 cm -BT -/F46 10.9091 Tf 242.5077 704.1363 Td[(--with-psblas=/opt/packages/psblas-2.3)]TJ -137.4531 -13.5492 Td[(--with-libs)-6825(List)-525(additional)-525(link)-525(flags)-525(here.)-525(For)-525(example,)]TJ 137.4531 -13.5492 Td[(--with-libs=-lspecial_system_lib)-525(or)]TJ 0 -13.5492 Td[(--with-libs=-L/path/to/libs)]TJ -137.4531 -13.5492 Td[(--with-clibs)-6300(additional)-525(CLIBS)-525(flags)-525(to)-525(be)-525(added:)-525(will)-525(prepend)]TJ 137.4531 -13.5492 Td[(to)-525(CLIBS)]TJ -137.4531 -13.5492 Td[(--with-flibs)-6300(additional)-525(FLIBS)-525(flags)-525(to)-525(be)-525(added:)-525(will)-525(prepend)]TJ 137.4531 -13.5492 Td[(to)-525(FLIBS)]TJ -137.4531 -13.5492 Td[(--with-library-path)-2625(additional)-525(LIBRARYPATH)-525(flags)-525(to)-525(be)-525(added:)-525(will)]TJ 137.4531 -13.5492 Td[(prepend)-525(to)-525(LIBRARYPATH)]TJ -137.4531 -13.5492 Td[(--with-include-path)-2625(additional)-525(INCLUDEPATH)-525(flags)-525(to)-525(be)-525(added:)-525(will)]TJ 137.4531 -13.5492 Td[(prepend)-525(to)-525(INCLUDEPATH)]TJ -137.4531 -13.5492 Td[(--with-module-path)-3150(additional)-525(MODULE_PATH)-525(flags)-525(to)-525(be)-525(added:)-525(will)]TJ 137.4531 -13.5492 Td[(prepend)-525(to)-525(MODULE_PATH)]TJ -137.4531 -13.5492 Td[(--with-umfpack=LIBNAME)-1050(Specify)-525(the)-525(library)-525(name)-525(for)-525(UMFPACK)-525(library.)]TJ 137.4531 -13.5492 Td[(Default:)-525("-lumfpack)-525(-lamd")]TJ -137.4531 -13.5492 Td[(--with-umfpackdir=DIR)-1575(Specify)-525(the)-525(directory)-525(for)-525(UMFPACK)-525(library)-525(and)]TJ 137.4531 -13.5492 Td[(includes.)]TJ -137.4531 -13.5492 Td[(--with-superlu=LIBNAME)-1050(Specify)-525(the)-525(library)-525(name)-525(for)-525(SUPERLU)-525(library.)]TJ 137.4531 -13.5492 Td[(Default:)-525("-lslu")]TJ -137.4531 -13.5492 Td[(--with-superludir=DIR)-1575(Specify)-525(the)-525(directory)-525(for)-525(SUPERLU)-525(library)-525(and)]TJ 137.4531 -13.5492 Td[(includes.)]TJ -137.4531 -13.5492 Td[(--with-superludist=LIBNAME)]TJ 137.4531 -13.5492 Td[(Specify)-525(the)-525(libname)-525(for)-525(SUPERLUDIST)-525(library.)]TJ 0 -13.5492 Td[(Requires)-525(you)-525(also)-525(specify)-525(SuperLU.)-525(Default:)-525("-lslud")]TJ -137.4531 -13.5492 Td[(--with-superludistdir=DIR)]TJ 137.4531 -13.5492 Td[(Specify)-525(the)-525(directory)-525(for)-525(SUPERLUDIST)-525(library)-525(and)]TJ 0 -13.5492 Td[(includes.)]TJ -148.9075 -27.0984 Td[(Some)-525(influential)-525(environment)-525(variables:)]TJ 11.4544 -13.5492 Td[(FC)-5250(Fortran)-525(compiler)-525(command)]TJ 0 -13.5492 Td[(FCFLAGS)-2625(Fortran)-525(compiler)-525(flags)]TJ 0 -13.5492 Td[(LDFLAGS)-2625(linker)-525(flags,)-525(e.g.)-525(-L)-525(if)-525(you)-525(have)-525(libraries)-525(in)-525(a)]TJ 68.7266 -13.5492 Td[(nonstandard)-525(directory)-525()]TJ -68.7266 -13.5492 Td[(LIBS)-4200(libraries)-525(to)-525(pass)-525(to)-525(the)-525(linker,)-525(e.g.)-525(-l)]TJ 0 -13.5492 Td[(CC)-5250(C)-525(compiler)-525(command)]TJ 0 -13.5492 Td[(CFLAGS)-3150(C)-525(compiler)-525(flags)]TJ 0 -13.5492 Td[(CPPFLAGS)-2100(C/C++/Objective)-525(C)-525(preprocessor)-525(flags,)-525(e.g.)-525(-I)-525(if)]TJ 68.7266 -13.5492 Td[(you)-525(have)-525(headers)-525(in)-525(a)-525(nonstandard)-525(directory)-525()]TJ -68.7266 -13.5492 Td[(CPP)-4725(C)-525(preprocessor)]TJ 0 -13.5492 Td[(MPICC)-3675(MPI)-525(C)-525(compiler)-525(command)]TJ -11.4544 -27.0984 Td[(Use)-525(these)-525(variables)-525(to)-525(override)-525(the)-525(choices)-525(made)-525(by)-525(`configure')-525(or)-525(to)-525(help)]TJ 0 -13.5492 Td[(it)-525(to)-525(find)-525(libraries)-525(and)-525(programs)-525(with)-525(nonstandard)-525(names/locations.)]TJ -ET -1 0 0 1 93.6002 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -254 0 obj << -/Type /Page -/Contents 255 0 R -/Resources 253 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 258 0 R -/Annots [ 257 0 R ] ->> endobj -257 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 739.0056 100.6267 748.4526] -/Subtype /Link -/A << /S /GoTo /D (section.3) >> ->> endobj -256 0 obj << -/D [254 0 R /XYZ 93.6002 740.0018 null] ->> endobj -253 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F46 219 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -261 0 obj << -/Length 6158 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(8)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -498.8509 -740.0018 cm -BT -/F46 10.9091 Tf 86.3998 690.5871 Td[(Report)-525(bugs)-525(to)-525(.)]TJ/F15 10.9091 Tf 0 -22.5155 Td[(Th)28(us,)-352(a)-348(sample)-348(bu)1(ild)-348(wit)1(h)-348(lib)1(rari)1(e)-1(s)-348(in)-348(in)1(s)-1(t)1(allation)-347(dir)1(e)-1(ctories)-349(sp)-27(e)-1(ci\014cs)-348(to)-348(the)-348(GNU)-348(4.3)]TJ 0 -13.5492 Td[(com)-1(p)1(iler)-333(s)-1(u)1(ite)-334(migh)28(t)-333(b)-27(e)-334(as)-334(f)1(ollo)28(ws)-1(,)-333(sp)-28(ec)-1(i)1(fyi)1(ng)-333(only)-333(th)1(e)-334(UMF)1(P)83(A)28(CK)-333(e)-1(x)1(te)-1(r)1(nal)-333(pac)28(k)55(age:)]TJ -ET -1 0 0 1 80.9452 632.0068 cm -0 g 0 G -0 g 0 G -1 0 0 1 -80.9452 -632.0068 cm -BT -/F46 10.9091 Tf 92.127 632.0068 Td[(./configure)-525(--with-psblas=/home/user/psblas-2.3/)-525(\134)]TJ 0 -13.5492 Td[(--with-libs="-L/usr/local/BLAS/gnu43)-525(-L/usr/local/BLACS/gnu43")-525(\134)]TJ 0 -13.5492 Td[(--with-blacs=-lmpiblacs)-1050(--with-umfpackdir=/usr/local/UMFPACK/gnu43)]TJ/F15 10.9091 Tf -5.7272 -22.5156 Td[(On)1(c)-1(e)-529(the)-530(con\014)1(gur)1(e)-530(sc)-1(ri)1(pt)-529(has)-529(c)-1(ompl)1(e)-1(ted)-529(exe)-1(cut)1(ion,)-578(it)-529(wil)1(l)-529(ha)28(v)28(e)-530(generated)-529(the)-529(\014le)]TJ/F46 10.9091 Tf 0 -13.5492 Td[(Make.inc)]TJ/F15 10.9091 Tf 49.454 0 Td[(whic)28(h)-333(will)-333(th)1(e)-1(n)-333(b)-27(e)-334(u)1(s)-1(ed)-333(b)28(y)-333(all)-333(Mak)28(e\014l)1(e)-1(s)-334(i)1(n)-333(the)-334(d)1(irectory)-333(tree)-1(.)]TJ -32.5175 -13.5492 Td[(T)83(o)-333(bu)1(ild)-333(th)1(e)-334(lib)1(rar)1(y)-334(t)1(he)-334(u)1(s)-1(er)-333(will)-333(no)28(w)-333(e)-1(n)28(ter)]TJ -ET -1 0 0 1 80.9452 532.7789 cm -0 g 0 G -0 g 0 G -1 0 0 1 -80.9452 -532.7789 cm -BT -/F46 10.9091 Tf 86.3998 532.7789 Td[(make)]TJ/F15 10.9091 Tf 0 -22.5156 Td[(fol)1(lo)28(w)27(ed)-333(\050opt)1(ionall)1(y\051)-333(b)28(y)]TJ -ET -1 0 0 1 80.9452 487.7477 cm -0 g 0 G -0 g 0 G -1 0 0 1 -80.9452 -487.7477 cm -BT -/F46 10.9091 Tf 86.3998 487.7477 Td[(make)-525(install)]TJ/F19 11.9552 Tf 0 -29.2128 Td[(3.)-1(4)-1125(Bug)-376(re)-1(p)-31(or)-1(ti)-1(ng)]TJ/F15 10.9091 Tf 0 -20.5946 Td[(If)-456(y)28(ou)-456(\014n)1(d)-457(an)29(y)-457(b)1(ugs)-457(in)-456(ou)1(r)-457(co)-28(d)1(e)-1(s,)-487(pleas)-1(e)-457(l)1(e)-1(t)-456(us)-457(kn)1(o)28(w)-457(at)]TJ/F46 10.9091 Tf 290.6423 0 Td[(bugreport@mld2p4.it)]TJ/F15 10.9091 Tf 118.7785 0 Td[(;)]TJ -409.4208 -13.5492 Td[(b)-27(e)-361(a)28(w)27(ar)1(e)-361(th)1(at)-360(the)-360(amoun)28(t)-360(of)-359(inf)1(ormation)-360(n)1(e)-1(eded)-360(to)-360(r)1(e)-1(p)1(ro)-28(d)1(uce)-361(a)-360(pr)1(oblem)-361(i)1(n)-360(a)-360(par)1(allel)]TJ 0 -13.5492 Td[(pr)1(ogram)-334(ma)28(y)-333(v)56(ary)-333(qui)1(te)-334(a)-333(lot.)]TJ/F19 11.9552 Tf 0 -29.2128 Td[(3.)-1(5)-1125(E)-1(xampl)-1(e)-375(and)-375(te)-1(s)1(t)-376(pro)-1(gr)-1(ams)]TJ/F15 10.9091 Tf 0 -20.5946 Td[(The)-419(pac)28(k)55(age)-419(con)28(tain)1(s)-420(th)1(e)]TJ/F46 10.9091 Tf 128.3385 0 Td[(examples)]TJ/F15 10.9091 Tf 50.3872 0 Td[(and)]TJ/F46 10.9091 Tf 22.1452 0 Td[(tests)]TJ/F15 10.9091 Tf 33.2055 0 Td[(di)1(rec)-1(tor)1(ie)-1(s;)-462(b)-27(oth)-418(of)-419(t)1(he)-1(m)-419(ar)1(e)-420(f)1(ur)1(ther)]TJ -234.0764 -13.5492 Td[(di)1(vid)1(e)-1(d)-333(in)29(to)]TJ/F46 10.9091 Tf 60.6061 0 Td[(fileread)]TJ/F15 10.9091 Tf 49.454 0 Td[(and)]TJ/F46 10.9091 Tf 21.2122 0 Td[(pdegen)]TJ/F15 10.9091 Tf 37.9996 0 Td[(sub)-27(dir)1(e)-1(ctories.)-445(Th)1(e)-1(ir)-333(p)1(ur)1(p)-28(ose)-334(is)-334(as)-333(foll)1(o)27(ws:)]TJ -ET -1 0 0 1 80.9452 324.9697 cm -0 g 0 G -1 0 0 1 -80.9452 -324.9697 cm -BT -/F46 10.9091 Tf 86.3998 324.9697 Td[(examples)]TJ -ET -1 0 0 1 132.2175 324.9697 cm -0 g 0 G -1 0 0 1 -132.2175 -324.9697 cm -BT -/F15 10.9091 Tf 137.672 324.9697 Td[(con)28(tain)1(s)-246(a)-244(s)-1(et)-245(of)-244(simple)-245(example)-245(p)1(rograms)-245(with)-244(a)-245(p)1(re)-1(d)1(e)-1(\014)1(ned)-244(c)27(hoi)1(c)-1(e)-245(of)-244(pr)1(e)-1(con-)]TJ -23.9994 -13.5492 Td[(di)1(tioners,)-294(se)-1(l)1(e)-1(ctable)-284(vi)1(a)-284(in)28(tege)-1(r)-283(v)55(al)1(ues)-1(.)-428(Th)1(e)-1(se)-285(ar)1(e)-285(in)29(te)-1(n)1(ded)-284(to)-284(get)-284(an)-283(ac)-1(qu)1(ain)28(tan)1(c)-1(e)]TJ 0 -13.5492 Td[(with)-333(th)1(e)-334(m)27(u)1(ltil)1(e)-1(v)28(el)-333(precondi)1(tioners.)]TJ -ET -1 0 0 1 80.9452 275.3557 cm -0 g 0 G -1 0 0 1 -80.9452 -275.3557 cm -BT -/F46 10.9091 Tf 86.3998 275.3557 Td[(tests)]TJ -ET -1 0 0 1 115.0358 275.3557 cm -0 g 0 G -1 0 0 1 -115.0358 -275.3557 cm -BT -/F15 10.9091 Tf 120.4904 275.3557 Td[(con)28(tain)1(s)-381(a)-380(set)-380(of)-380(more)-380(soph)1(is)-1(ti)1(c)-1(ated)-380(exampl)1(e)-1(s)-380(that)-379(w)-1(i)1(ll)-380(all)1(o)27(w)-380(th)1(e)-380(use)-1(r)1(,)-392(vi)1(a)-380(the)]TJ -6.8178 -13.5492 Td[(in)1(pu)1(t)-287(\014)1(le)-1(s)-286(in)-286(the)]TJ/F46 10.9091 Tf 80.4383 0 Td[(runs)]TJ/F15 10.9091 Tf 26.0336 0 Td[(sub)-27(dir)1(e)-1(ctories,)-296(to)-286(e)-1(xp)-27(erime)-1(n)29(t)-287(with)-286(t)1(he)-287(f)1(ull)-286(ran)1(ge)-287(of)-286(pr)1(e)-1(con-)]TJ -106.4719 -13.5492 Td[(di)1(tioners)-333(im)-1(p)1(lem)-1(en)28(ted)-333(in)-333(th)1(e)-334(lib)1(rar)1(y)83(.)]TJ -27.2728 -22.5155 Td[(The)]TJ/F46 10.9091 Tf 24.2391 0 Td[(fileread)]TJ/F15 10.9091 Tf 51.2688 0 Td[(di)1(rec)-1(tor)1(ie)-1(s)-500(con)28(tain)-499(sam)-1(p)1(le)-500(pr)1(ograms)-501(t)1(hat)-500(r)1(e)-1(ad)-499(sparse)-500(m)-1(at)1(rice)-1(s)-500(f)1(rom)]TJ -75.5079 -13.5492 Td[(\014l)1(e)-1(s,)-295(acc)-1(or)1(din)1(g)-285(to)-285(the)-285(Matri)1(x)-285(Mar)1(k)28(e)-1(t)-285(or)-285(th)1(e)-286(Har)1(w)27(ell-Bo)-28(e)-1(i)1(ng)-285(s)-1(t)1(orage)-286(f)1(ormat;)-301(the)]TJ/F46 10.9091 Tf 378.0878 0 Td[(pdegen)]TJ/F15 10.9091 Tf -378.0878 -13.5492 Td[(in)1(s)-1(tead)-272(generate)-272(matrice)-1(s)-272(in)-271(fu)1(ll)-272(par)1(allel)-272(mo)-28(de)-272(fr)1(om)-273(th)1(e)-273(d)1(isc)-1(r)1(e)-1(tization)-271(of)-272(a)-272(sample)-272(PDE)1(.)]TJ -ET -1 0 0 1 86.3998 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -260 0 obj << -/Type /Page -/Contents 261 0 R -/Resources 259 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 258 0 R ->> endobj -262 0 obj << -/D [260 0 R /XYZ 86.3998 740.0018 null] ->> endobj -38 0 obj << -/D [260 0 R /XYZ 86.3998 472.4826 null] ->> endobj -42 0 obj << -/D [260 0 R /XYZ 86.3998 393.4556 null] ->> endobj -259 0 obj << -/Font << /F15 131 0 R /F43 134 0 R /F46 219 0 R /F19 113 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -265 0 obj << -/Length 11558 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(4)]TJ -ET -1 0 0 1 99.6305 740.0018 cm -0 g 0 G -1 0 0 1 -99.6305 -740.0018 cm -BT -/F43 10.9091 Tf 103.7516 740.0018 Td[(Mul)66(ti-level)-378(Domain)-378(Decomp)1(osition)-378(Ba)22(ck)23(gr)22(oun)-1(d)]TJ/F15 10.9091 Tf 396.8452 0 Td[(9)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -506.0513 -740.0018 cm -BT -/F19 14.3462 Tf 93.6002 704.1363 Td[(4)-1125(M)-1(ult)-1(i-l)-1(ev)32(e)-1(l)-375(D)-1(om)-1(a)1(i)-1(n)-375(Deco)-1(mp)-32(osit)-1(io)-1(n)-375(Bac)32(kg)-1(ro)-1(und)]TJ/F20 10.9091 Tf 0 -25.25 Td[(Domain)-282(De)51(c)51(omp)52(o)-1(s)1(ition)]TJ/F15 10.9091 Tf 113.1712 0 Td[(\050DD\051)-250(prec)-1(on)1(di)1(tioners,)-267(c)-1(ou)1(pled)-251(with)-250(Kry)1(lo)28(v)-251(iterativ)28(e)-251(solv)28(e)-1(r)1(s)-1(,)-267(are)]TJ -113.1712 -13.5492 Td[(widely)-315(u)1(s)-1(ed)-315(in)-315(th)1(e)-316(p)1(arallel)-315(s)-1(ol)1(ution)-315(of)-314(large)-316(an)1(d)-315(sparse)-316(li)1(near)-315(s)-1(ystem)-1(s.)-438(T)-1(h)1(e)-1(se)-316(p)1(rec)-1(on)1(di-)]TJ 0 -13.5492 Td[(tion)1(e)-1(r)1(s)-286(ar)1(e)-286(b)1(as)-1(ed)-284(on)-285(th)1(e)-286(d)1(ivid)1(e)-285(and)-284(c)-1(on)1(quer)-285(tec)27(h)1(niq)1(ue:)-420(the)-285(matrix)-284(to)-285(b)-27(e)-286(p)1(rec)-1(on)1(diti)1(oned)]TJ 0 -13.5492 Td[(is)-423(d)1(ivid)1(e)-1(d)-422(in)28(t)1(o)-423(s)-1(u)1(bmatri)1(c)-1(es)-1(,)-444(a)-423(\134lo)-28(cal")-422(linear)-422(s)-1(ystem)-423(in)28(v)28(olv)1(ing)-422(e)-1(ac)27(h)-422(sub)1(m)-1(atr)1(ix)-422(is)-423(\050ap-)]TJ 0 -13.5492 Td[(pr)1(o)28(ximate)-1(l)1(y\051)-356(s)-1(ol)1(v)28(e)-1(d)1(,)-362(an)1(d)-356(th)1(e)-357(l)1(o)-28(c)-1(al)-355(s)-1(olu)1(tion)1(s)-357(ar)1(e)-357(u)1(s)-1(ed)-356(to)-356(b)1(ui)1(ld)-356(a)-356(p)1(rec)-1(on)1(diti)1(oner)-356(for)-355(the)]TJ 0 -13.5492 Td[(whole)-407(or)1(iginal)-406(m)-1(at)1(rix.)-664(T)-1(h)1(is)-407(pr)1(o)-28(c)-1(ess)-408(of)1(te)-1(n)-406(corres)-1(p)-27(ond)1(s)-407(to)-407(di)1(vid)1(ing)-407(a)-406(ph)28(ysical)-407(d)1(om)-1(ai)1(n)]TJ 0 -13.5492 Td[(ass)-1(o)-28(ciated)-299(to)-299(th)1(e)-300(ori)1(ginal)-298(m)-1(atr)1(ix)-299(in)28(t)1(o)-300(sub)-27(d)1(om)-1(ain)1(s)-1(,)-305(e)-1(.g.)-432(in)-299(a)-299(P)1(DE)-299(d)1(is)-1(cretization,)-305(to)-299(\050ap-)]TJ 0 -13.5492 Td[(pr)1(o)28(ximate)-1(l)1(y\051)-276(s)-1(olv)1(ing)-276(the)-276(s)-1(u)1(bpr)1(oblems)-277(c)-1(or)1(res)-1(p)-27(ond)1(ing)-276(to)-276(the)-276(s)-1(u)1(b)-28(d)1(om)-1(ai)1(ns)-277(an)1(d)-276(to)-276(bui)1(ldi)1(ng)]TJ 0 -13.5492 Td[(an)-333(ap)1(pro)28(xi)1(m)-1(ate)-333(s)-1(olu)1(tion)-333(of)-333(th)1(e)-334(ori)1(ginal)-333(p)1(robl)1(e)-1(m)-333(from)-333(the)-334(l)1(o)-28(c)-1(al)-333(solu)1(tions)-333([)]TJ -ET -1 0 0 1 445.1158 570.4927 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -445.1158 -570.4927 cm -BT -/F15 10.9091 Tf 445.1158 570.4927 Td[(6)]TJ -ET -1 0 0 1 450.5703 570.4927 cm -0 g 0 G -1 0 0 1 -450.5703 -570.4927 cm -BT -/F15 10.9091 Tf 450.5703 570.4927 Td[(,)]TJ -ET -1 0 0 1 457.237 570.4927 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -457.237 -570.4927 cm -BT -/F15 10.9091 Tf 457.237 570.4927 Td[(7)]TJ -ET -1 0 0 1 462.6915 570.4927 cm -0 g 0 G -1 0 0 1 -462.6915 -570.4927 cm -BT -/F15 10.9091 Tf 462.6915 570.4927 Td[(,)]TJ -ET -1 0 0 1 469.3582 570.4927 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -469.3582 -570.4927 cm -BT -/F15 10.9091 Tf 469.3582 570.4927 Td[(20)]TJ -ET -1 0 0 1 480.2673 570.4927 cm -0 g 0 G -1 0 0 1 -480.2673 -570.4927 cm -BT -/F15 10.9091 Tf 480.2673 570.4927 Td[(].)]TJ/F20 10.9091 Tf -369.7306 -14.0112 Td[(A)51(dditive)-468(Schw)-1(arz)]TJ/F15 10.9091 Tf 89.0587 0 Td[(pr)1(e)-1(cond)1(ition)1(e)-1(r)1(s)-454(are)-453(DD)-453(prec)-1(on)1(di)1(tioners)-453(using)-453(o)28(v)28(e)-1(r)1(lapp)1(ing)-453(sub)1(-)]TJ -105.9952 -13.5492 Td[(matrice)-1(s,)-403(i.)1(e)-1(.)-389(with)-388(s)-1(ome)-389(c)-1(omm)-1(on)-388(ro)28(ws)-1(,)-403(t)1(o)-389(c)-1(ou)1(ple)-389(the)-389(lo)-28(cal)-389(in)1(formation)-388(relate)-1(d)-388(to)-389(the)]TJ 0 -13.5492 Td[(submatr)1(ic)-1(es)-362(\050s)-1(ee)-1(,)-369(e.g.,)-368([)]TJ -ET -1 0 0 1 205.8126 529.3831 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -205.8126 -529.3831 cm -BT -/F15 10.9091 Tf 205.8126 529.3831 Td[(20)]TJ -ET -1 0 0 1 216.7217 529.3831 cm -0 g 0 G -1 0 0 1 -216.7217 -529.3831 cm -BT -/F15 10.9091 Tf 216.7217 529.3831 Td[(]\051.)-530(Th)1(e)-363(main)-361(m)-1(oti)1(v)55(at)1(ion)-362(f)1(or)-362(c)28(ho)-28(osing)-362(Ad)1(di)1(tiv)28(e)-362(Sc)27(h)29(w)27(arz)-362(p)1(re)-1(-)]TJ -123.1215 -13.5492 Td[(condi)1(tioners)-361(is)-362(t)1(heir)-361(in)29(trin)1(s)-1(ic)-361(par)1(allelism)-1(.)-527(A)-361(dr)1(a)27(wb)1(ac)27(k)-361(of)-361(th)1(e)-1(se)-362(p)1(rec)-1(on)1(dit)1(ioners)-361(is)-362(th)1(at)]TJ 0 -13.5492 Td[(th)1(e)-389(n)28(u)1(m)27(b)-27(e)-1(r)-388(of)-387(iteration)1(s)-389(of)-388(th)1(e)-389(p)1(rec)-1(on)1(diti)1(oned)-388(s)-1(ol)1(v)28(e)-1(r)1(s)-389(generally)-388(gr)1(o)27(ws)-388(w)-1(i)1(th)-388(th)1(e)-389(n)28(u)1(m)-1(-)]TJ 0 -13.5492 Td[(b)-27(e)-1(r)-370(of)-369(s)-1(u)1(bmatri)1(c)-1(es)-1(.)-554(T)-1(h)1(is)-370(m)-1(a)28(y)-370(b)-27(e)-371(a)-370(se)-1(r)1(ious)-370(limitation)-369(on)-370(p)1(arallel)-370(com)-1(p)1(uters,)-379(s)-1(in)1(c)-1(e)-370(the)]TJ 0 -13.5492 Td[(n)28(u)1(m)27(b)-27(e)-1(r)-403(of)-402(s)-1(u)1(bmatrices)-404(usual)1(ly)-403(m)-1(at)1(c)27(hes)-404(th)1(e)-404(n)28(u)1(m)27(b)-27(e)-1(r)-402(of)-403(a)28(v)55(ai)1(lable)-403(pr)1(o)-28(c)-1(ess)-1(ors.)-654(Op)1(timal)]TJ 0 -13.5492 Td[(con)28(v)28(e)-1(r)1(ge)-1(n)1(c)-1(e)-262(rates,)-276(i.e.)-262(it)1(e)-1(rati)1(on)-262(n)29(um)28(b)-28(ers)-262(in)1(dep)-28(end)1(e)-1(n)28(t)-261(of)-262(t)1(he)-262(n)28(um)28(b)-27(e)-1(r)-261(of)-262(sub)1(m)-1(at)1(rice)-1(s,)-276(can)]TJ 0 -13.5492 Td[(b)-27(e)-370(obtai)1(ned)-369(b)28(y)-369(c)-1(or)1(re)-1(ctin)1(g)-370(th)1(e)-370(pr)1(e)-1(cond)1(ition)1(e)-1(r)-369(th)1(rou)1(gh)-369(a)-370(suit)1(able)-370(ap)1(pr)1(o)27(x)1(im)-1(at)1(ion)-369(of)-369(the)]TJ 0 -13.5492 Td[(ori)1(ginal)-323(l)1(inear)-323(syste)-1(m)-323(in)-322(a)-323(c)-1(oar)1(s)-1(e)-323(s)-1(p)1(ac)-1(e,)-325(whi)1(c)27(h)-323(gl)1(oball)1(y)-323(c)-1(ou)1(ples)-323(the)-323(inf)1(ormation)-322(related)]TJ 0 -13.5492 Td[(to)-333(the)-333(s)-1(in)1(gle)-334(sub)1(m)-1(atr)1(ice)-1(s.)]TJ/F20 10.9091 Tf 16.9365 -14.0113 Td[(Two-l)1(evel)-308(S)-1(c)1(h)-1(warz)]TJ/F15 10.9091 Tf 91.5293 0 Td[(pr)1(e)-1(cond)1(ition)1(e)-1(r)1(s)-280(are)-280(obt)1(ained)-279(b)28(y)-280(com)27(b)1(in)1(ing)-279(basic)-280(\050one-le)-1(v)28(el\051)-279(Sc)28(h-)]TJ -108.4658 -13.5492 Td[(w)28(arz)-363(p)1(rec)-1(on)1(diti)1(oners)-363(with)-362(a)-362(coarse)-1(-lev)28(e)-1(l)-362(correction.)-531(In)-362(t)1(his)-362(c)-1(on)28(text,)-369(th)1(e)-363(one-le)-1(v)28(el)-362(pr)1(e)-1(-)]TJ 0 -13.5492 Td[(condi)1(tioner)-344(is)-345(of)1(te)-1(n)-344(called)-344(`sm)-1(o)-27(other'.)-477(Di\013e)-1(r)1(e)-1(n)29(t)-345(t)28(w)28(o-)-1(l)1(e)-1(v)28(el)-345(p)1(rec)-1(on)1(dit)1(ioners)-345(ar)1(e)-345(obtai)1(ned)]TJ 0 -13.5492 Td[(b)28(y)-370(v)55(ar)1(yin)1(g)-371(th)1(e)-372(c)28(hoice)-371(of)-371(t)1(he)-371(s)-1(mo)-28(oth)1(e)-1(r)-370(and)-370(of)-370(the)-371(coarse)-1(-lev)28(e)-1(l)-370(c)-1(or)1(re)-1(ction)1(,)-380(and)-370(th)1(e)-372(w)28(a)28(y)]TJ 0 -13.5492 Td[(th)1(e)-1(y)-373(are)-374(c)-1(om)28(bi)1(ned)-374([)]TJ -ET -1 0 0 1 189.4965 352.7814 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -189.4965 -352.7814 cm -BT -/F15 10.9091 Tf 189.4965 352.7814 Td[(20)]TJ -ET -1 0 0 1 200.4056 352.7814 cm -0 g 0 G -1 0 0 1 -200.4056 -352.7814 cm -BT -/F15 10.9091 Tf 200.4056 352.7814 Td[(].)-565(The)-374(sam)-1(e)-374(reasonin)1(g)-374(can)-374(b)-27(e)-374(app)1(lied)-373(s)-1(tar)1(ting)-373(from)-374(th)1(e)-374(c)-1(oar)1(s)-1(e-)]TJ -106.8054 -13.5492 Td[(lev)28(e)-1(l)-280(s)-1(y)1(s)-1(tem,)-291(i.e.)-281(a)-280(c)-1(oar)1(s)-1(e-)-1(space)-281(c)-1(or)1(rec)-1(tion)-280(can)-280(b)-28(e)-281(b)1(uil)1(t)-281(f)1(rom)-281(thi)1(s)-281(s)-1(ystem)-1(,)-291(th)29(us)-281(ob)1(taini)1(ng)]TJ/F20 10.9091 Tf 0 -13.5492 Td[(mu)1(lti-l)1(evel)]TJ/F15 10.9091 Tf 53.8299 0 Td[(pr)1(e)-1(cond)1(ition)1(e)-1(r)1(s)-1(.)]TJ -36.8934 -14.0113 Td[(It)-443(is)-444(w)27(or)1(th)-443(noti)1(ng)-443(that)-443(opt)1(im)-1(al)-443(p)1(rec)-1(on)1(diti)1(oners)-444(do)-443(not)-443(n)1(e)-1(ce)-1(ss)-1(ar)1(ily)-443(c)-1(or)1(res)-1(p)-27(ond)-443(to)]TJ -16.9365 -13.5492 Td[(mini)1(m)27(um)-480(e)-1(x)1(e)-1(cuti)1(on)-480(time)-1(s.)-885(Ind)1(e)-1(ed,)-516(to)-480(obtain)-479(e)-1(\013e)-1(ctiv)28(e)-480(m)27(ul)1(ti-le)-1(v)28(el)-480(pr)1(e)-1(cond)1(ition)1(e)-1(r)1(s)-481(a)]TJ 0 -13.5492 Td[(trad)1(e)-1(o\013)-381(b)-27(e)-1(t)28(w)28(e)-1(en)-381(opti)1(m)-1(al)1(it)28(y)-381(of)-381(c)-1(on)29(v)28(e)-1(r)1(ge)-1(n)1(c)-1(e)-382(an)1(d)-381(th)1(e)-382(cos)-1(t)-381(of)-381(b)1(uil)1(din)1(g)-382(an)1(d)-381(ap)1(plyi)1(ng)-381(the)]TJ 0 -13.5492 Td[(coars)-1(e-s)-1(p)1(ac)-1(e)-384(correc)-1(ti)1(ons)-384(m)27(u)1(s)-1(t)-383(b)-28(e)-384(ac)27(h)1(iev)28(e)-1(d)1(.)-596(The)-384(c)28(hoice)-384(of)-384(th)1(e)-384(n)28(um)28(b)-28(er)-384(of)-383(lev)28(e)-1(l)1(s)-1(,)-396(i.)1(e)-1(.)-383(of)]TJ 0 -13.5492 Td[(th)1(e)-380(coarse)-1(-space)-379(c)-1(orr)1(e)-1(ction)1(s)-1(,)-390(al)1(s)-1(o)-378(a\013)-1(ec)-1(ts)-379(th)1(e)-379(e)-1(\013ec)-1(tiv)28(eness)-380(of)-378(th)1(e)-379(pr)1(e)-1(condi)1(tioners.)-580(One)]TJ 0 -13.5492 Td[(more)-392(goal)-392(i)1(s)-392(to)-392(get)-392(con)28(v)28(e)-1(r)1(ge)-1(n)1(c)-1(e)-392(r)1(ate)-1(s)-392(as)-392(les)-1(s)-392(se)-1(n)1(s)-1(i)1(tiv)28(e)-392(as)-392(p)-28(ossible)-392(to)-391(v)56(ariation)1(s)-392(in)-391(the)]TJ 0 -13.5492 Td[(matrix)-333(co)-28(e\016)-1(cien)28(ts)-1(.)]TJ 16.9365 -14.0113 Td[(Tw)27(o)-303(main)-302(app)1(roac)27(h)1(e)-1(s)-303(c)-1(an)-302(b)-27(e)-304(u)1(s)-1(ed)-303(to)-303(b)1(ui)1(ld)-303(coarse)-1(-s)-1(p)1(ac)-1(e)-303(correc)-1(t)1(ions.)-434(T)-1(h)1(e)-304(geome)-1(tr)1(ic)]TJ -16.9365 -13.5492 Td[(app)1(roac)28(h)-412(app)1(lies)-413(c)-1(oar)1(s)-1(enin)1(g)-412(s)-1(tr)1(ate)-1(gies)-413(b)1(as)-1(ed)-412(on)-412(the)-412(kno)28(wledge)-413(of)-412(some)-413(ph)29(ys)-1(i)1(c)-1(al)-412(gri)1(d)]TJ 0 -13.5492 Td[(ass)-1(o)-28(ciated)-279(to)-280(th)1(e)-280(m)-1(at)1(rix)-279(and)-279(r)1(e)-1(qu)1(ires)-280(the)-280(u)1(s)-1(er)-279(to)-280(d)1(e)-1(\014)1(ne)-280(gr)1(id)-279(tran)1(s)-1(f)1(e)-1(r)-279(op)-27(e)-1(rat)1(ors)-280(fr)1(om)-280(the)]TJ 0 -13.5492 Td[(\014n)1(e)-394(to)-394(t)1(he)-394(coars)-1(e)-394(l)1(e)-1(v)28(els)-394(and)-393(v)1(ic)-1(e)-394(v)28(ersa.)-625(This)-394(ma)28(y)-394(r)1(e)-1(sul)1(t)-394(d)1(i\016)-1(cul)1(t)-394(f)1(or)-394(complex)-393(ge)-1(ome)-1(-)]TJ 0 -13.5492 Td[(tri)1(e)-1(s;)-464(f)1(urth)1(e)-1(r)1(m)-1(or)1(e)-1(,)-442(sui)1(table)-420(one-)-1(lev)28(el)-421(p)1(rec)-1(on)1(diti)1(oners)-421(ma)28(y)-420(b)-28(e)-421(r)1(e)-1(qu)1(ired)-420(to)-420(ge)-1(t)-420(e\016)-1(cien)28(t)]TJ 0 -13.5492 Td[(in)28(t)1(e)-1(rp)1(la)28(y)-381(b)-27(e)-1(t)28(w)28(e)-1(en)-381(\014n)1(e)-382(an)1(d)-381(coars)-1(e)-381(lev)28(e)-1(ls,)-393(e.g.)-381(when)-381(matrice)-1(s)-381(with)-381(h)1(ighl)1(y)-381(v)55(ar)1(yin)1(g)-381(c)-1(o)-28(ef-)]TJ 0 -13.5492 Td[(\014cien)28(ts)-417(are)-417(considered.)-694(The)-417(al)1(ge)-1(b)1(raic)-417(ap)1(proac)28(h)-417(b)1(ui)1(lds)-417(coarse)-1(-s)-1(p)1(ac)-1(e)-417(corr)1(e)-1(ctions)-417(u)1(s)-1(i)1(ng)]TJ 0 -13.5492 Td[(onl)1(y)-442(m)-1(at)1(rix)-442(i)1(nfor)1(m)-1(at)1(ion.)-770(It)-442(p)-28(erf)1(orms)-443(a)-442(f)1(ully)-441(automatic)-442(c)-1(oar)1(s)-1(enin)1(g)-442(and)-442(enf)1(orce)-1(s)-442(the)]TJ -ET -1 0 0 1 93.6002 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -264 0 obj << -/Type /Page -/Contents 265 0 R -/Resources 263 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 258 0 R -/Annots [ 267 0 R 268 0 R 269 0 R 270 0 R 271 0 R 272 0 R ] ->> endobj -267 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 739.0056 100.6267 748.4526] -/Subtype /Link -/A << /S /GoTo /D (section.4) >> ->> endobj -268 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [444.1195 569.4965 451.5666 578.5193] -/Subtype /Link -/A << /S /GoTo /D (cite.Cai_Widlund_92) >> ->> endobj -269 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [456.2407 569.4965 463.6878 578.5193] -/Subtype /Link -/A << /S /GoTo /D (cite.dd1_94) >> ->> endobj -270 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [468.3619 569.4965 481.2636 578.5193] -/Subtype /Link -/A << /S /GoTo /D (cite.dd2_96) >> ->> endobj -271 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [204.8163 528.3868 217.718 537.4096] -/Subtype /Link -/A << /S /GoTo /D (cite.dd2_96) >> ->> endobj -272 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [188.5003 351.7851 201.4019 360.808] -/Subtype /Link -/A << /S /GoTo /D (cite.dd2_96) >> ->> endobj -266 0 obj << -/D [264 0 R /XYZ 93.6002 740.0018 null] ->> endobj -46 0 obj << -/D [264 0 R /XYZ 93.6002 715.0952 null] ->> endobj -263 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F19 113 0 R /F20 181 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -277 0 obj << -/Length 18740 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(10)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -498.8509 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 704.1363 Td[(in)28(t)1(e)-1(rp)1(la)28(y)-352(b)-27(et)28(w)27(ee)-1(n)-351(th)1(e)-353(\014)1(ne)-352(an)1(d)-352(coarse)-352(le)-1(v)28(els)-352(b)28(y)-351(s)-1(u)1(itab)1(ly)-352(c)28(ho)-28(osin)1(g)-352(the)-352(coarse)-352(s)-1(p)1(ac)-1(e)-352(an)1(d)]TJ 0 -13.5492 Td[(th)1(e)-334(c)-1(oar)1(s)-1(e-)-1(t)1(o-)-1(\014)1(ne)-334(i)1(n)28(te)-1(r)1(p)-28(ol)1(ation)-333([)]TJ -ET -1 0 0 1 239.8545 690.5871 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -239.8545 -690.5871 cm -BT -/F15 10.9091 Tf 239.8545 690.5871 Td[(22)]TJ -ET -1 0 0 1 250.7636 690.5871 cm -0 g 0 G -1 0 0 1 -250.7636 -690.5871 cm -BT -/F15 10.9091 Tf 250.7636 690.5871 Td[(].)]TJ -147.4273 -13.6428 Td[(MLD2P)1(4)-255(uses)-256(a)-255(p)1(ur)1(e)-256(al)1(ge)-1(b)1(raic)-255(app)1(roac)27(h)-254(for)-254(bu)1(ild)1(ing)-255(t)1(he)-255(s)-1(equ)1(e)-1(n)1(c)-1(e)-255(of)-255(coarse)-256(matr)1(ic)-1(es)]TJ -16.9365 -13.5492 Td[(startin)1(g)-425(from)-425(the)-425(origi)1(nal)-425(matrix)1(.)-720(The)-426(al)1(ge)-1(b)1(raic)-425(app)1(roac)27(h)-425(i)1(s)-426(based)-425(on)-425(th)1(e)]TJ/F20 10.9091 Tf 369.2393 0 Td[(smo)51(othe)51(d)]TJ -369.2393 -13.5492 Td[(aggr)51(e)51(gation)]TJ/F15 10.9091 Tf 58.6124 0 Td[(algor)1(ithm)-402([)]TJ -ET -1 0 0 1 198.5216 649.8459 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -198.5216 -649.8459 cm -BT -/F15 10.9091 Tf 198.5216 649.8459 Td[(1)]TJ -ET -1 0 0 1 203.9761 649.8459 cm -0 g 0 G -1 0 0 1 -203.9761 -649.8459 cm -BT -/F15 10.9091 Tf 203.9761 649.8459 Td[(,)]TJ -ET -1 0 0 1 211.3946 649.8459 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -211.3946 -649.8459 cm -BT -/F15 10.9091 Tf 211.3946 649.8459 Td[(24)]TJ -ET -1 0 0 1 222.3037 649.8459 cm -0 g 0 G -1 0 0 1 -222.3037 -649.8459 cm -BT -/F15 10.9091 Tf 222.3037 649.8459 Td[(].)-651(A)-402(d)1(e)-1(coup)1(le)-1(d)-401(v)28(e)-1(rsion)-402(of)-401(this)-402(algorit)1(hm)-403(i)1(s)-403(impl)1(e)-1(me)-1(n)29(te)-1(d)1(,)]TJ -135.9039 -13.5492 Td[(where)-347(th)1(e)-348(smo)-28(othed)-346(aggregation)-346(is)-347(app)1(lied)-346(lo)-28(cally)-346(to)-347(eac)27(h)-346(s)-1(u)1(bmatri)1(x)-347([)]TJ -ET -1 0 0 1 422.9733 636.2967 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -422.9733 -636.2967 cm -BT -/F15 10.9091 Tf 422.9733 636.2967 Td[(23)]TJ -ET -1 0 0 1 433.8824 636.2967 cm -0 g 0 G -1 0 0 1 -433.8824 -636.2967 cm -BT -/F15 10.9091 Tf 433.8824 636.2967 Td[(].)-484(In)-346(the)-347(n)1(e)-1(xt)]TJ -347.4826 -13.5492 Td[(t)28(w)27(o)-248(s)-1(u)1(bse)-1(ction)1(s)-250(w)28(e)-249(pr)1(o)27(v)1(ide)-249(a)-249(b)1(rief)-248(des)-1(crip)1(tion)-248(of)-248(the)-249(m)28(ulti)1(-)-1(lev)28(el)-249(Sc)28(h)28(w)28(arz)-249(pr)1(e)-1(cond)1(ition)1(e)-1(rs)]TJ 0 -13.5492 Td[(and)-389(of)-389(th)1(e)-390(s)-1(mo)-28(oth)1(e)-1(d)-389(aggr)1(e)-1(gati)1(on)-389(te)-1(c)28(hni)1(que)-390(as)-390(i)1(m)-1(p)1(lem)-1(en)28(ted)-389(in)-389(MLD2P)1(4.)-613(F)83(or)-389(f)1(ur)1(ther)]TJ 0 -13.5492 Td[(detail)1(s)-334(the)-333(use)-1(r)-333(is)-333(re)-1(f)1(e)-1(r)1(red)-333(to)-333([)]TJ -ET -1 0 0 1 230.6423 595.6491 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -230.6423 -595.6491 cm -BT -/F15 10.9091 Tf 230.6423 595.6491 Td[(2)]TJ -ET -1 0 0 1 236.0969 595.6491 cm -0 g 0 G -1 0 0 1 -236.0969 -595.6491 cm -BT -/F15 10.9091 Tf 236.0969 595.6491 Td[(,)]TJ -ET -1 0 0 1 242.7635 595.6491 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -242.7635 -595.6491 cm -BT -/F15 10.9091 Tf 242.7635 595.6491 Td[(3)]TJ -ET -1 0 0 1 248.2181 595.6491 cm -0 g 0 G -1 0 0 1 -248.2181 -595.6491 cm -BT -/F15 10.9091 Tf 248.2181 595.6491 Td[(,)]TJ -ET -1 0 0 1 254.8848 595.6491 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -254.8848 -595.6491 cm -BT -/F15 10.9091 Tf 254.8848 595.6491 Td[(4)]TJ -ET -1 0 0 1 260.3393 595.6491 cm -0 g 0 G -1 0 0 1 -260.3393 -595.6491 cm -BT -/F15 10.9091 Tf 260.3393 595.6491 Td[(,)]TJ -ET -1 0 0 1 267.006 595.6491 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -267.006 -595.6491 cm -BT -/F15 10.9091 Tf 267.006 595.6491 Td[(20)]TJ -ET -1 0 0 1 277.9151 595.6491 cm -0 g 0 G -1 0 0 1 -277.9151 -595.6491 cm -BT -/F15 10.9091 Tf 277.9151 595.6491 Td[(].)]TJ/F19 11.9552 Tf -191.5153 -29.7481 Td[(4.)-1(1)-1125(M)-1(ult)-1(i-l)-1(ev)32(e)-1(l)-375(Sc)31(h)31(w)31(arz)-375(Pre)-1(condi)-1(ti)-1(oner)-1(s)]TJ/F15 10.9091 Tf 0 -20.7766 Td[(The)-270(Mu)1(ltil)1(e)-1(v)28(el)-270(p)1(rec)-1(on)1(diti)1(oners)-270(impleme)-1(n)28(ted)-269(in)-269(MLD2P)1(4)-270(are)-270(ob)1(tained)-269(b)28(y)-270(com)27(b)1(in)1(ing)-269(AS)]TJ 0 -13.5492 Td[(pr)1(e)-1(cond)1(ition)1(e)-1(r)1(s)-316(with)-314(c)-1(oar)1(s)-1(e-)-1(space)-316(corr)1(e)-1(ctions;)-321(th)1(e)-1(refor)1(e)-316(w)28(e)-316(\014)1(rst)-315(pro)28(vi)1(de)-315(a)-315(s)-1(k)28(etc)27(h)-315(of)-314(the)]TJ 0 -13.5492 Td[(AS)-333(p)1(re)-1(cond)1(ition)1(e)-1(r)1(s)-1(.)]TJ 16.9365 -13.6429 Td[(Giv)28(en)-302(th)1(e)-303(lin)1(e)-1(ar)-302(syste)-1(m)-302(\050)]TJ -ET -1 0 0 1 223.1205 504.3831 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -223.1205 -504.3831 cm -BT -/F15 10.9091 Tf 223.1205 504.3831 Td[(1)]TJ -ET -1 0 0 1 228.5751 504.3831 cm -0 g 0 G -1 0 0 1 -228.5751 -504.3831 cm -BT -/F15 10.9091 Tf 228.5751 504.3831 Td[(\051,)-308(where)]TJ/F24 10.9091 Tf 41.846 0 Td[(A)]TJ/F15 10.9091 Tf 11.2121 0 Td[(=)-278(\050)]TJ/F24 10.9091 Tf 15.7576 0 Td[(a)]TJ/F25 7.9701 Tf 5.7664 -1.6364 Td[(ij)]TJ/F15 10.9091 Tf 7.2653 1.6364 Td[(\051)]TJ/F27 10.9091 Tf 7.2727 0 Td[(2)-277(<)]TJ/F25 7.9701 Tf 18.1818 3.9588 Td[(n)]TJ/F28 7.9701 Tf 5.1382 0 Td[(\002)]TJ/F25 7.9701 Tf 6.5865 0 Td[(n)]TJ/F15 10.9091 Tf 8.9346 -3.9588 Td[(is)-303(a)-302(n)1(onsingu)1(lar)-302(s)-1(p)1(arse)-303(matrix)]TJ -270.1365 -13.5492 Td[(with)-321(a)-321(symme)-1(tr)1(ic)-322(n)1(onze)-1(r)1(o)-321(pattern)1(,)-324(let)]TJ/F24 10.9091 Tf 184.5267 0 Td[(G)]TJ/F15 10.9091 Tf 11.6075 0 Td[(=)-278(\050)]TJ/F24 10.9091 Tf 15.7575 0 Td[(W)27(;)-166(E)]TJ/F15 10.9091 Tf 23.5303 0 Td[(\051)-321(b)-27(e)-322(th)1(e)-322(ad)1(jace)-1(n)1(c)-1(y)-321(gr)1(aph)-320(of)]TJ/F24 10.9091 Tf 134.3786 0 Td[(A)]TJ/F15 10.9091 Tf 8.1818 0 Td[(,)-323(w)-1(h)1(e)-1(r)1(e)]TJ/F24 10.9091 Tf -377.9824 -13.5492 Td[(W)]TJ/F15 10.9091 Tf 15.4193 0 Td[(=)]TJ/F27 10.9091 Tf 12.0859 0 Td[(f)]TJ/F15 10.9091 Tf 5.4546 0 Td[(1)]TJ/F24 10.9091 Tf 5.4545 0 Td[(;)]TJ/F15 10.9091 Tf 4.8485 0 Td[(2)]TJ/F24 10.9091 Tf 5.4546 0 Td[(;)-166(:)-167(:)-166(:)-167(;)-166(n)]TJ/F27 10.9091 Tf 30.7903 0 Td[(g)]TJ/F15 10.9091 Tf 9.4334 0 Td[(and)]TJ/F24 10.9091 Tf 21.5546 0 Td[(E)]TJ/F15 10.9091 Tf 12.2829 0 Td[(=)]TJ/F27 10.9091 Tf 12.086 0 Td[(f)]TJ/F15 10.9091 Tf 5.4545 0 Td[(\050)]TJ/F24 10.9091 Tf 4.2425 0 Td[(i;)-166(j)]TJ/F15 10.9091 Tf 13.7236 0 Td[(\051)-330(:)]TJ/F24 10.9091 Tf 14.4749 0 Td[(a)]TJ/F25 7.9701 Tf 5.7665 -1.6364 Td[(ij)]TJ/F27 10.9091 Tf 10.8664 1.6364 Td[(6)]TJ/F15 10.9091 Tf 0 0 Td[(=)-330(0)]TJ/F27 10.9091 Tf 17.5405 0 Td[(g)]TJ/F15 10.9091 Tf 9.4334 0 Td[(are)-365(th)1(e)-365(v)28(e)-1(rt)1(e)-1(x)-364(s)-1(et)-365(an)1(d)-365(th)1(e)-365(e)-1(d)1(ge)-366(set)-365(of)]TJ/F24 10.9091 Tf 184.4767 0 Td[(G)]TJ/F15 10.9091 Tf 8.5772 0 Td[(,)]TJ -409.4208 -13.5492 Td[(res)-1(p)-27(ec)-1(ti)1(v)28(e)-1(ly)84(.)-466(T)-1(w)28(o)-341(v)28(erti)1(c)-1(es)-341(are)-341(c)-1(al)1(le)-1(d)-340(ad)1(jace)-1(n)28(t)-340(if)-340(there)-341(is)-341(an)-340(edge)-341(c)-1(on)1(nec)-1(t)1(ing)-340(them)-1(.)-466(F)84(or)]TJ 0 -13.5492 Td[(an)28(y)-238(in)29(te)-1(ger)]TJ/F24 10.9091 Tf 54.621 0 Td[(\016)-316(>)]TJ/F15 10.9091 Tf 19.8067 0 Td[(0,)-257(a)]TJ/F24 10.9091 Tf 19.3437 0 Td[(\016)]TJ/F15 10.9091 Tf 5.2614 0 Td[(-o)27(v)28(erl)1(ap)-238(par)1(tition)-237(of)]TJ/F24 10.9091 Tf 96.3406 0 Td[(W)]TJ/F15 10.9091 Tf 14.4165 0 Td[(can)-238(b)-28(e)-238(de\014n)1(e)-1(d)-237(re)-1(cur)1(s)-1(i)1(v)28(e)-1(ly)-238(as)-238(foll)1(o)27(ws.)-413(Gi)1(v)28(e)-1(n)]TJ -209.7899 -13.5492 Td[(a)-344(0-o)28(v)28(e)-1(r)1(lap)-343(\050or)-343(non-o)28(v)28(e)-1(r)1(lapp)1(in)1(g\051)-344(par)1(tition)-343(of)]TJ/F24 10.9091 Tf 216.2495 0 Td[(W)]TJ/F15 10.9091 Tf 11.8182 0 Td[(,)-346(i.e.)-343(a)-344(se)-1(t)-343(of)]TJ/F24 10.9091 Tf 63.3773 0 Td[(m)]TJ/F15 10.9091 Tf 13.3269 0 Td[(di)1(s)-1(j)1(oin)28(t)-343(nonempt)28(y)-343(s)-1(ets)]TJ/F24 10.9091 Tf -304.7719 -13.5492 Td[(W)]TJ/F22 7.9701 Tf 11.8182 3.9588 Td[(0)]TJ/F25 7.9701 Tf -1.5152 -7.0143 Td[(i)]TJ/F27 10.9091 Tf 9.2778 3.0555 Td[(\032)]TJ/F24 10.9091 Tf 11.5151 0 Td[(W)]TJ/F15 10.9091 Tf 14.8569 0 Td[(suc)27(h)-278(th)1(at)]TJ/F27 10.9091 Tf 47.047 0 Td[([)]TJ/F25 7.9701 Tf 7.2728 3.9588 Td[(m)]TJ 0 -7.0143 Td[(i)]TJ/F22 7.9701 Tf 2.8831 0 Td[(=1)]TJ/F24 10.9091 Tf 11.3188 3.0555 Td[(W)]TJ/F22 7.9701 Tf 11.8182 3.9588 Td[(0)]TJ/F25 7.9701 Tf -1.5151 -7.0143 Td[(i)]TJ/F15 10.9091 Tf 9.2777 3.0555 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(W)]TJ/F15 10.9091 Tf 11.8182 0 Td[(,)-289(a)]TJ/F24 10.9091 Tf 14.6817 0 Td[(\016)]TJ/F15 10.9091 Tf 5.2614 0 Td[(-o)27(v)28(erl)1(ap)-279(p)1(arti)1(tion)-278(of)]TJ/F24 10.9091 Tf 97.6615 0 Td[(W)]TJ/F15 10.9091 Tf 14.8569 0 Td[(is)-279(ob)1(tained)-278(b)28(y)-278(c)-1(on)1(s)-1(i)1(derin)1(g)]TJ -289.8501 -13.5492 Td[(th)1(e)-307(s)-1(ets)]TJ/F24 10.9091 Tf 39.5379 0 Td[(W)]TJ/F25 7.9701 Tf 11.8182 3.9588 Td[(\016)]TJ -1.5152 -7.0143 Td[(i)]TJ/F27 10.9091 Tf 9.0896 3.0555 Td[(\033)]TJ/F24 10.9091 Tf 11.5151 0 Td[(W)]TJ/F25 7.9701 Tf 11.8182 4.5878 Td[(\016)]TJ/F28 7.9701 Tf 4.046 0 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F25 7.9701 Tf -12.1477 -7.8446 Td[(i)]TJ/F15 10.9091 Tf 20.2247 3.2568 Td[(obt)1(ained)-306(b)28(y)-307(i)1(nclud)1(ing)-306(the)-307(v)28(erti)1(c)-1(es)-307(that)-306(are)-307(adj)1(ac)-1(en)28(t)-306(to)-307(an)28(y)-306(v)28(ertex)]TJ -100.9733 -13.5492 Td[(in)]TJ/F24 10.9091 Tf 12.7273 0 Td[(W)]TJ/F25 7.9701 Tf 11.8182 4.5878 Td[(\016)]TJ/F28 7.9701 Tf 4.046 0 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F25 7.9701 Tf -12.1477 -7.8446 Td[(i)]TJ/F15 10.9091 Tf 16.88 3.2568 Td[(.)]TJ -22.9738 -15.2694 Td[(Let)]TJ/F24 10.9091 Tf 18.79 0 Td[(n)]TJ/F25 7.9701 Tf 6.548 3.9588 Td[(\016)]TJ 0 -7.0143 Td[(i)]TJ/F15 10.9091 Tf 7.425 3.0555 Td[(b)-27(e)-265(th)1(e)-265(size)-265(of)]TJ/F24 10.9091 Tf 63.7053 0 Td[(W)]TJ/F25 7.9701 Tf 11.8182 3.9588 Td[(\016)]TJ -1.5152 -7.0143 Td[(i)]TJ/F15 10.9091 Tf 8.9402 3.0555 Td[(and)]TJ/F24 10.9091 Tf 20.4566 0 Td[(R)]TJ/F25 7.9701 Tf 8.3674 3.9588 Td[(\016)]TJ -0.0842 -7.0143 Td[(i)]TJ/F27 10.9091 Tf 7.6586 3.0555 Td[(2)-277(<)]TJ/F25 7.9701 Tf 18.1818 3.9588 Td[(n)]TJ/F26 5.9776 Tf 5.1382 2.8128 Td[(\016)]TJ 0 -5.395 Td[(i)]TJ/F28 7.9701 Tf 4.0895 2.5822 Td[(\002)]TJ/F25 7.9701 Tf 6.5865 0 Td[(n)]TJ/F15 10.9091 Tf 8.5172 -3.9588 Td[(th)1(e)-265(res)-1(t)1(riction)-264(op)-27(erator)-264(th)1(at)-264(maps)-265(a)-264(v)28(ec)-1(t)1(or)]TJ/F24 10.9091 Tf -211.5596 -14.9745 Td[(v)]TJ/F27 10.9091 Tf 8.9929 0 Td[(2)-303(<)]TJ/F25 7.9701 Tf 18.4651 3.9588 Td[(n)]TJ/F15 10.9091 Tf 9.4427 -3.9588 Td[(on)28(to)-349(t)1(he)-349(v)28(e)-1(ctor)]TJ/F24 10.9091 Tf 76.601 0 Td[(v)]TJ/F25 7.9701 Tf 5.6793 3.9588 Td[(\016)]TJ -0.3914 -7.0143 Td[(i)]TJ/F27 10.9091 Tf 8.2491 3.0555 Td[(2)-303(<)]TJ/F25 7.9701 Tf 18.4651 3.9588 Td[(n)]TJ/F26 5.9776 Tf 5.1382 2.8128 Td[(\016)]TJ 0 -5.395 Td[(i)]TJ/F15 10.9091 Tf 8.394 -1.3766 Td[(con)28(tain)1(ing)-349(th)1(e)-350(comp)-28(on)1(e)-1(n)29(ts)-350(of)]TJ/F24 10.9091 Tf 144.9832 0 Td[(v)]TJ/F15 10.9091 Tf 9.4857 0 Td[(corres)-1(p)-27(ond)1(in)1(g)-349(to)-349(the)]TJ -313.5049 -14.9745 Td[(v)28(ertice)-1(s)-369(in)]TJ/F24 10.9091 Tf 52.9901 0 Td[(W)]TJ/F25 7.9701 Tf 11.8182 3.9588 Td[(\016)]TJ -1.5152 -7.0143 Td[(i)]TJ/F15 10.9091 Tf 6.0593 3.0555 Td[(.)-551(The)-369(transp)-27(os)-1(e)-369(of)]TJ/F24 10.9091 Tf 94.0006 0 Td[(R)]TJ/F25 7.9701 Tf 8.3674 3.9588 Td[(\016)]TJ -0.0843 -7.0143 Td[(i)]TJ/F15 10.9091 Tf 8.6538 3.0555 Td[(is)-369(a)-369(pr)1(olongati)1(on)-369(op)-27(e)-1(r)1(ator)-369(fr)1(om)]TJ/F27 10.9091 Tf 155.4601 0 Td[(<)]TJ/F25 7.9701 Tf 7.8788 3.9588 Td[(n)]TJ/F26 5.9776 Tf 5.1382 2.8128 Td[(\016)]TJ 0 -5.395 Td[(i)]TJ/F15 10.9091 Tf 8.613 -1.3766 Td[(to)]TJ/F27 10.9091 Tf 13.7223 0 Td[(<)]TJ/F25 7.9701 Tf 7.8788 3.9588 Td[(n)]TJ/F15 10.9091 Tf 5.6363 -3.9588 Td[(.)-551(The)]TJ -384.6175 -14.9745 Td[(matrix)]TJ/F24 10.9091 Tf 35.1334 0 Td[(A)]TJ/F25 7.9701 Tf 8.1818 3.9588 Td[(\016)]TJ 0 -7.0143 Td[(i)]TJ/F15 10.9091 Tf 7.5744 3.0555 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(R)]TJ/F25 7.9701 Tf 8.3674 3.9588 Td[(\016)]TJ -0.0843 -7.0143 Td[(i)]TJ/F24 10.9091 Tf 4.6284 3.0555 Td[(A)]TJ/F15 10.9091 Tf 8.1818 0 Td[(\050)]TJ/F24 10.9091 Tf 4.2425 0 Td[(R)]TJ/F25 7.9701 Tf 8.3674 3.9588 Td[(\016)]TJ -0.0843 -7.0143 Td[(i)]TJ/F15 10.9091 Tf 4.6284 3.0555 Td[(\051)]TJ/F25 7.9701 Tf 4.2424 3.9588 Td[(T)]TJ/F27 10.9091 Tf 9.6348 -3.9588 Td[(2)-277(<)]TJ/F25 7.9701 Tf 18.1818 3.9588 Td[(n)]TJ/F26 5.9776 Tf 5.1382 2.8128 Td[(\016)]TJ 0 -5.395 Td[(i)]TJ/F28 7.9701 Tf 4.0895 2.5822 Td[(\002)]TJ/F25 7.9701 Tf 6.5865 0 Td[(n)]TJ/F26 5.9776 Tf 5.1382 2.8128 Td[(\016)]TJ 0 -5.395 Td[(i)]TJ/F15 10.9091 Tf 7.8725 -1.3766 Td[(can)-301(b)-27(e)-302(considered)-301(as)-302(a)-301(r)1(e)-1(striction)-300(of)]TJ/F24 10.9091 Tf 172.9636 0 Td[(A)]TJ/F15 10.9091 Tf 11.4666 0 Td[(corres)-1(p)-27(ond)1(in)1(g)]TJ -345.9661 -13.5492 Td[(to)-333(the)-333(s)-1(et)]TJ/F24 10.9091 Tf 49.1515 0 Td[(W)]TJ/F25 7.9701 Tf 11.8182 3.9588 Td[(\016)]TJ -1.5152 -7.0143 Td[(i)]TJ/F15 10.9091 Tf 6.0593 3.0555 Td[(.)]TJ -48.5774 -13.6429 Td[(The)]TJ/F20 10.9091 Tf 22.4243 0 Td[(class)1(ic)51(al)-357(o)-1(ne-l)1(evel)-357(A)-1(S)]TJ/F15 10.9091 Tf 106.7234 0 Td[(pr)1(e)-1(cond)1(ition)1(e)-1(r)-333(i)1(s)-334(de\014n)1(e)-1(d)-333(b)29(y)]TJ/F24 10.9091 Tf -4.7921 -32.5163 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5879 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F25 7.9701 Tf -7.7759 -8.022 Td[(AS)]TJ/F15 10.9091 Tf 15.5385 3.4341 Td[(=)]TJ/F25 7.9701 Tf 15.6487 13.6364 Td[(m)]TJ/F30 10.9091 Tf -4.1336 -3.2727 Td[(X)]TJ/F25 7.9701 Tf 1.0269 -23.4509 Td[(i)]TJ/F22 7.9701 Tf 2.8831 0 Td[(=1)]TJ/F15 10.9091 Tf 11.8476 13.0872 Td[(\050)]TJ/F24 10.9091 Tf 4.2424 0 Td[(R)]TJ/F25 7.9701 Tf 8.3675 4.5043 Td[(\016)]TJ -0.0843 -7.2012 Td[(i)]TJ/F15 10.9091 Tf 4.6284 2.6969 Td[(\051)]TJ/F25 7.9701 Tf 4.2424 4.5043 Td[(T)]TJ/F15 10.9091 Tf 6.6045 -4.5043 Td[(\050)]TJ/F24 10.9091 Tf 4.2425 0 Td[(A)]TJ/F25 7.9701 Tf 8.1818 4.5043 Td[(\016)]TJ 0 -7.2012 Td[(i)]TJ/F15 10.9091 Tf 4.5441 2.6969 Td[(\051)]TJ/F28 7.9701 Tf 4.2424 4.5043 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F24 10.9091 Tf 4.7323 -4.5043 Td[(R)]TJ/F25 7.9701 Tf 8.3675 4.5043 Td[(\016)]TJ -0.0843 -7.2012 Td[(i)]TJ/F24 10.9091 Tf 4.6284 2.6969 Td[(;)]TJ/F15 10.9091 Tf -268.1287 -35.9079 Td[(where)]TJ/F24 10.9091 Tf 32.3362 0 Td[(A)]TJ/F25 7.9701 Tf 8.1819 3.9588 Td[(\016)]TJ 0 -7.0143 Td[(i)]TJ/F15 10.9091 Tf 8.9712 3.0555 Td[(is)-406(ass)-1(u)1(m)-1(ed)-406(to)-405(b)-28(e)-406(non)1(s)-1(i)1(ngu)1(lar.)-662(Its)-406(ap)1(pli)1(c)-1(ation)-405(to)-406(a)-405(v)28(e)-1(ctor)]TJ/F24 10.9091 Tf 283.1864 0 Td[(v)]TJ/F27 10.9091 Tf 10.0275 0 Td[(2)-398(<)]TJ/F25 7.9701 Tf 19.4997 3.9588 Td[(n)]TJ/F15 10.9091 Tf 10.0635 -3.9588 Td[(with)1(in)-406(a)]TJ -372.2664 -13.5492 Td[(Kr)1(ylo)28(v)-333(s)-1(olv)28(er)-333(requ)1(ires)-334(the)-333(foll)1(o)27(win)1(g)-334(t)1(hree)-334(ste)-1(p)1(s)-1(:)]TJ -ET -1 0 0 1 86.3998 203.7409 cm -0 g 0 G -1 0 0 1 -86.3998 -203.7409 cm -BT -/F15 10.9091 Tf 99.7331 203.7409 Td[(1.)]TJ -ET -1 0 0 1 108.218 203.7409 cm -0 g 0 G -1 0 0 1 -108.218 -203.7409 cm -BT -/F15 10.9091 Tf 113.6726 203.7409 Td[(res)-1(t)1(riction)-333(of)]TJ/F24 10.9091 Tf 64.6667 0 Td[(v)]TJ/F15 10.9091 Tf 9.3157 0 Td[(as)]TJ/F24 10.9091 Tf 13.3939 0 Td[(v)]TJ/F25 7.9701 Tf 5.2879 -1.6364 Td[(i)]TJ/F15 10.9091 Tf 6.4115 1.6364 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(R)]TJ/F25 7.9701 Tf 8.3675 3.9588 Td[(\016)]TJ -0.0843 -7.0143 Td[(i)]TJ/F24 10.9091 Tf 4.6284 3.0555 Td[(v)]TJ/F15 10.9091 Tf 5.6793 0 Td[(,)]TJ/F24 10.9091 Tf 6.6667 0 Td[(i)]TJ/F15 10.9091 Tf 6.7885 0 Td[(=)-278(1)]TJ/F24 10.9091 Tf 16.9697 0 Td[(;)-166(:)-167(:)-166(:)-167(;)-166(m)]TJ/F15 10.9091 Tf 33.8206 0 Td[(;)]TJ -ET -1 0 0 1 86.3998 180.8506 cm -0 g 0 G -1 0 0 1 -86.3998 -180.8506 cm -BT -/F15 10.9091 Tf 99.7331 180.8506 Td[(2.)]TJ -ET -1 0 0 1 108.218 180.8506 cm -0 g 0 G -1 0 0 1 -108.218 -180.8506 cm -BT -/F15 10.9091 Tf 113.6726 180.8506 Td[(soluti)1(on)-333(of)-333(the)-333(linear)-333(sys)-1(tems)]TJ/F24 10.9091 Tf 143.3032 0 Td[(A)]TJ/F25 7.9701 Tf 8.1818 3.9588 Td[(\016)]TJ 0 -7.0143 Td[(i)]TJ/F24 10.9091 Tf 4.5441 3.0555 Td[(w)]TJ/F25 7.9701 Tf 7.81 -1.6364 Td[(i)]TJ/F15 10.9091 Tf 6.4115 1.6364 Td[(=)]TJ/F24 10.9091 Tf 11.5152 0 Td[(v)]TJ/F25 7.9701 Tf 5.2878 -1.6364 Td[(i)]TJ/F15 10.9091 Tf 3.3813 1.6364 Td[(,)]TJ/F24 10.9091 Tf 6.6667 0 Td[(i)]TJ/F15 10.9091 Tf 6.7886 0 Td[(=)-278(1)]TJ/F24 10.9091 Tf 16.9696 0 Td[(;)-166(:)-167(:)-166(:)-167(;)-166(m)]TJ/F15 10.9091 Tf 33.8206 0 Td[(;)]TJ -ET -1 0 0 1 86.3998 157.9603 cm -0 g 0 G -1 0 0 1 -86.3998 -157.9603 cm -BT -/F15 10.9091 Tf 99.7331 157.9603 Td[(3.)]TJ -ET -1 0 0 1 108.218 157.9603 cm -0 g 0 G -1 0 0 1 -108.218 -157.9603 cm -BT -/F15 10.9091 Tf 113.6726 157.9603 Td[(pr)1(olongat)1(ion)-333(and)-333(sum)-333(of)-333(the)]TJ/F24 10.9091 Tf 139.1819 0 Td[(w)]TJ/F25 7.9701 Tf 7.81 -1.6363 Td[(i)]TJ/F15 10.9091 Tf 3.3813 1.6363 Td[('s,)-333(i.e.)]TJ/F24 10.9091 Tf 32.7879 0 Td[(w)]TJ/F15 10.9091 Tf 11.1338 0 Td[(=)]TJ/F30 10.9091 Tf 11.5151 8.1819 Td[(P)]TJ/F25 7.9701 Tf 11.5152 -3.1548 Td[(m)]TJ 0 -8.2525 Td[(i)]TJ/F22 7.9701 Tf 2.8831 0 Td[(=1)]TJ/F15 10.9091 Tf 11.3189 3.2254 Td[(\050)]TJ/F24 10.9091 Tf 4.2424 0 Td[(R)]TJ/F25 7.9701 Tf 8.3674 3.9588 Td[(\016)]TJ -0.0843 -7.0143 Td[(i)]TJ/F15 10.9091 Tf 4.6284 3.0555 Td[(\051)]TJ/F25 7.9701 Tf 4.2425 3.9588 Td[(T)]TJ/F24 10.9091 Tf 6.6044 -3.9588 Td[(w)]TJ/F25 7.9701 Tf 7.81 -1.6364 Td[(i)]TJ/F15 10.9091 Tf 3.3813 1.6364 Td[(.)]TJ -297.9922 -22.8903 Td[(Note)-473(th)1(at)-473(th)1(e)-473(lin)1(e)-1(ar)-472(sys)-1(t)1(e)-1(ms)-473(at)-473(step)-472(2)-473(are)-473(u)1(s)-1(u)1(ally)-472(solv)28(e)-1(d)-472(ap)1(pr)1(o)27(x)1(im)-1(at)1(e)-1(ly)84(,)-507(e)-1(.)1(g.)-473(u)1(s)-1(i)1(ng)]TJ 0 -13.5492 Td[(in)1(c)-1(ompl)1(e)-1(te)-334(LU)-333(f)1(ac)-1(tor)1(iz)-1(ati)1(ons)-334(suc)28(h)-333(as)-334(ILU\050)]TJ/F24 10.9091 Tf 202.6366 0 Td[(p)]TJ/F15 10.9091 Tf 5.4886 0 Td[(\051,)-333(MILU\050)]TJ/F24 10.9091 Tf 44.091 0 Td[(p)]TJ/F15 10.9091 Tf 5.4886 0 Td[(\051)-333(and)-333(ILU\050)]TJ/F24 10.9091 Tf 52.2728 0 Td[(p;)-167(t)]TJ/F15 10.9091 Tf 14.2765 0 Td[(\051)-333([)]TJ -ET -1 0 0 1 421.563 121.5209 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -421.563 -121.5209 cm -BT -/F15 10.9091 Tf 421.563 121.5209 Td[(19)]TJ -ET -1 0 0 1 432.4721 121.5209 cm -0 g 0 G -1 0 0 1 -432.4721 -121.5209 cm -BT -/F15 10.9091 Tf 432.4721 121.5209 Td[(,)-333(Chap)1(te)-1(r)-333(10].)]TJ -ET -1 0 0 1 86.3998 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -276 0 obj << -/Type /Page -/Contents 277 0 R -/Resources 275 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 258 0 R -/Annots [ 279 0 R 280 0 R 281 0 R 282 0 R 283 0 R 284 0 R 285 0 R 286 0 R 287 0 R 306 0 R ] ->> endobj -279 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [238.8582 689.5909 251.7598 698.6137] -/Subtype /Link -/A << /S /GoTo /D (cite.StubenGMD69_99) >> ->> endobj -280 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [197.5253 648.8496 204.9724 657.8724] -/Subtype /Link -/A << /S /GoTo /D (cite.BREZINA_VANEK) >> ->> endobj -281 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [210.3983 648.8496 223.2999 657.8724] -/Subtype /Link -/A << /S /GoTo /D (cite.VANEK_MANDEL_BREZINA) >> ->> endobj -282 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [421.977 635.3004 434.8787 644.3232] -/Subtype /Link -/A << /S /GoTo /D (cite.TUMINARO_TONG) >> ->> endobj -283 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [229.6461 594.6528 237.0931 603.6756] -/Subtype /Link -/A << /S /GoTo /D (cite.para_04) >> ->> endobj -284 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [241.7673 594.6528 249.2144 603.6756] -/Subtype /Link -/A << /S /GoTo /D (cite.aaecc_07) >> ->> endobj -285 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [253.8885 594.6528 261.3356 603.6756] -/Subtype /Link -/A << /S /GoTo /D (cite.apnum_07) >> ->> endobj -286 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [266.0097 594.6528 278.9113 603.6756] -/Subtype /Link -/A << /S /GoTo /D (cite.dd2_96) >> ->> endobj -287 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [222.1242 500.6596 229.5713 513.5612] -/Subtype /Link -/A << /S /GoTo /D (equation.1) >> ->> endobj -306 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [420.5667 120.5246 433.4683 129.5474] -/Subtype /Link -/A << /S /GoTo /D (cite.Saad_book) >> ->> endobj -278 0 obj << -/D [276 0 R /XYZ 86.3998 740.0018 null] ->> endobj -50 0 obj << -/D [276 0 R /XYZ 86.3998 577.2151 null] ->> endobj -303 0 obj << -/D [276 0 R /XYZ 86.3998 219.8394 null] ->> endobj -304 0 obj << -/D [276 0 R /XYZ 86.3998 196.0148 null] ->> endobj -305 0 obj << -/D [276 0 R /XYZ 86.3998 173.1245 null] ->> endobj -275 0 obj << -/Font << /F15 131 0 R /F43 134 0 R /F20 181 0 R /F19 113 0 R /F24 186 0 R /F25 290 0 R /F27 189 0 R /F28 293 0 R /F22 296 0 R /F26 299 0 R /F30 302 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -315 0 obj << -/Length 16183 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(4)]TJ -ET -1 0 0 1 99.6305 740.0018 cm -0 g 0 G -1 0 0 1 -99.6305 -740.0018 cm -BT -/F43 10.9091 Tf 103.7516 740.0018 Td[(Mul)66(ti-level)-378(Domain)-378(Decomp)1(osition)-378(Ba)22(ck)23(gr)22(oun)-1(d)]TJ/F15 10.9091 Tf 391.3906 0 Td[(11)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -506.0513 -740.0018 cm -BT -/F15 10.9091 Tf 110.5367 704.1363 Td[(A)-318(v)56(ari)1(an)28(t)-318(of)-317(the)-318(class)-1(ical)-318(AS)-317(p)1(rec)-1(on)1(diti)1(oner)-318(th)1(at)-318(out)1(p)-28(erf)1(orms)-319(i)1(t)-318(in)-317(terms)-319(of)-317(con)28(v)28(e)-1(r)1(-)]TJ -16.9365 -13.5492 Td[(gence)-266(rate)-265(and)-265(of)-265(compu)1(tation)-265(an)1(d)-265(c)-1(omm)28(uni)1(c)-1(ati)1(on)-265(time)-266(on)-265(p)1(arallel)-265(di)1(s)-1(tr)1(ibu)1(te)-1(d)1(-m)-1(em)-1(or)1(y)]TJ 0 -13.5492 Td[(com)-1(p)1(uters)-387(is)-387(the)-387(s)-1(o-called)]TJ/F20 10.9091 Tf 129.2159 0 Td[(R)51(estricte)51(d)-407(AS)-408(\050)1(R)-1(AS\051)]TJ/F15 10.9091 Tf 105.9938 0 Td[(pr)1(e)-1(cond)1(ition)1(e)-1(r)-386([)]TJ -ET -1 0 0 1 404.6064 677.0379 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -404.6064 -677.0379 cm -BT -/F15 10.9091 Tf 404.6064 677.0379 Td[(5)]TJ -ET -1 0 0 1 410.0609 677.0379 cm -0 g 0 G -1 0 0 1 -410.0609 -677.0379 cm -BT -/F15 10.9091 Tf 410.0609 677.0379 Td[(,)]TJ -ET -1 0 0 1 417.3118 677.0379 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -417.3118 -677.0379 cm -BT -/F15 10.9091 Tf 417.3118 677.0379 Td[(13)]TJ -ET -1 0 0 1 428.2209 677.0379 cm -0 g 0 G -1 0 0 1 -428.2209 -677.0379 cm -BT -/F15 10.9091 Tf 428.2209 677.0379 Td[(].)-605(It)-387(i)1(s)-388(ob)1(tain)1(e)-1(d)]TJ -334.6207 -13.5492 Td[(b)28(y)-407(z)-1(eroi)1(ng)-408(t)1(he)-408(com)-1(p)-27(onen)28(ts)-408(of)]TJ/F24 10.9091 Tf 148.0779 0 Td[(w)]TJ/F25 7.9701 Tf 7.8101 -1.6363 Td[(i)]TJ/F15 10.9091 Tf 7.8271 1.6363 Td[(corres)-1(p)-27(ond)1(in)1(g)-408(to)-407(the)-408(o)28(v)28(e)-1(r)1(lapp)1(in)1(g)-408(v)28(ertice)-1(s)-408(wh)1(e)-1(n)-407(ap)1(-)]TJ -163.7151 -13.5492 Td[(pl)1(yin)1(g)-349(the)-349(pr)1(olongat)1(ion.)-490(T)-1(h)1(e)-1(r)1(e)-1(f)1(ore,)-353(RAS)-348(di\013e)-1(r)1(s)-349(from)-349(clas)-1(sical)-349(AS)-348(b)28(y)-349(t)1(he)-349(pr)1(olongati)1(on)]TJ 0 -13.5492 Td[(op)-27(e)-1(r)1(ators,)-401(whi)1(c)27(h)-387(ar)1(e)-388(s)-1(u)1(bstitu)1(te)-1(d)-386(b)28(y)-387(\050)]TJ 182.6914 2.7576 Td[(~)]TJ/F24 10.9091 Tf -2.3655 -2.7576 Td[(R)]TJ/F22 7.9701 Tf 8.3674 3.9588 Td[(0)]TJ/F25 7.9701 Tf -0.0843 -7.0143 Td[(i)]TJ/F15 10.9091 Tf 4.8166 3.0555 Td[(\051)]TJ/F25 7.9701 Tf 4.2425 3.9588 Td[(T)]TJ/F27 10.9091 Tf 10.6135 -3.9588 Td[(2)-367(<)]TJ/F25 7.9701 Tf 19.1606 3.9588 Td[(n)]TJ/F26 5.9776 Tf 5.1382 2.8128 Td[(\016)]TJ 0 -5.395 Td[(i)]TJ/F28 7.9701 Tf 4.0895 2.5822 Td[(\002)]TJ/F25 7.9701 Tf 6.5865 0 Td[(n)]TJ/F15 10.9091 Tf 5.6363 -3.9588 Td[(,)-400(w)-1(h)1(e)-1(r)1(e)]TJ 41.8991 2.7576 Td[(~)]TJ/F24 10.9091 Tf -2.3655 -2.7576 Td[(R)]TJ/F22 7.9701 Tf 8.3674 3.9588 Td[(0)]TJ/F25 7.9701 Tf -0.0843 -7.0143 Td[(i)]TJ/F15 10.9091 Tf 9.0403 3.0555 Td[(is)-387(obtain)1(e)-1(d)-386(b)28(y)-387(z)-1(eroi)1(ng)]TJ -305.7498 -13.5492 Td[(th)1(e)-334(ro)28(ws)-334(of)]TJ/F24 10.9091 Tf 56.4546 0 Td[(R)]TJ/F25 7.9701 Tf 8.3674 3.9588 Td[(\016)]TJ -0.0843 -7.0143 Td[(i)]TJ/F15 10.9091 Tf 8.2648 3.0555 Td[(corres)-1(p)-27(ond)1(in)1(g)-334(to)-333(th)1(e)-334(v)28(e)-1(r)1(tice)-1(s)-334(i)1(n)]TJ/F24 10.9091 Tf 154.4547 0 Td[(W)]TJ/F25 7.9701 Tf 11.8182 3.9588 Td[(\016)]TJ -1.5152 -7.0143 Td[(i)]TJ/F27 10.9091 Tf 6.0593 3.0555 Td[(n)]TJ/F24 10.9091 Tf 5.4546 0 Td[(W)]TJ/F22 7.9701 Tf 11.8182 3.9588 Td[(0)]TJ/F25 7.9701 Tf -1.5152 -7.0143 Td[(i)]TJ/F15 10.9091 Tf 6.2475 3.0555 Td[(:)]TJ/F24 10.9091 Tf -127.8046 -29.6348 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5879 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F25 7.9701 Tf -7.7758 -8.022 Td[(R)-6(AS)]TJ/F15 10.9091 Tf 21.8944 3.4341 Td[(=)]TJ/F25 7.9701 Tf 15.6487 13.6364 Td[(m)]TJ/F30 10.9091 Tf -4.1336 -3.2727 Td[(X)]TJ/F25 7.9701 Tf 1.0269 -23.4509 Td[(i)]TJ/F22 7.9701 Tf 2.8831 0 Td[(=1)]TJ/F15 10.9091 Tf 11.8476 13.0872 Td[(\050)]TJ 6.608 2.7576 Td[(~)]TJ/F24 10.9091 Tf -2.3655 -2.7576 Td[(R)]TJ/F22 7.9701 Tf 8.3674 4.5043 Td[(0)]TJ/F25 7.9701 Tf -0.0843 -7.2012 Td[(i)]TJ/F15 10.9091 Tf 4.8166 2.6969 Td[(\051)]TJ/F25 7.9701 Tf 4.2424 4.5043 Td[(T)]TJ/F15 10.9091 Tf 6.6045 -4.5043 Td[(\050)]TJ/F24 10.9091 Tf 4.2425 0 Td[(A)]TJ/F25 7.9701 Tf 8.1818 4.5043 Td[(\016)]TJ 0 -7.2012 Td[(i)]TJ/F15 10.9091 Tf 4.5441 2.6969 Td[(\051)]TJ/F28 7.9701 Tf 4.2424 4.5043 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F24 10.9091 Tf 4.7323 -4.5043 Td[(R)]TJ/F25 7.9701 Tf 8.3675 4.5043 Td[(\016)]TJ -0.0843 -7.2012 Td[(i)]TJ/F24 10.9091 Tf 4.6284 2.6969 Td[(:)]TJ/F15 10.9091 Tf -271.4008 -30.7803 Td[(Anal)1(ogously)83(,)-333(th)1(e)-334(AS)-333(v)56(ari)1(an)28(t)-333(c)-1(all)1(e)-1(d)]TJ/F20 10.9091 Tf 168.5759 0 Td[(AS)-358(w)-1(i)1(t)-1(h)-358(Harm)1(o)-1(ni)1(c)-358(extension)-358(\050AS)-1(H\051)]TJ/F15 10.9091 Tf 176.6079 0 Td[(is)-334(d)1(e)-1(\014)1(ned)-333(b)28(y)]TJ/F24 10.9091 Tf -207.7353 -29.3065 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5879 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F25 7.9701 Tf -7.7759 -8.022 Td[(AS)-56(H)]TJ/F15 10.9091 Tf 23.0374 3.4341 Td[(=)]TJ/F25 7.9701 Tf 15.6487 13.6364 Td[(m)]TJ/F30 10.9091 Tf -4.1335 -3.2727 Td[(X)]TJ/F25 7.9701 Tf 1.0268 -23.4509 Td[(i)]TJ/F22 7.9701 Tf 2.8832 0 Td[(=1)]TJ/F15 10.9091 Tf 11.8476 13.0872 Td[(\050)]TJ/F24 10.9091 Tf 4.2424 0 Td[(R)]TJ/F25 7.9701 Tf 8.3674 4.5043 Td[(\016)]TJ -0.0842 -7.2012 Td[(i)]TJ/F15 10.9091 Tf 4.6283 2.6969 Td[(\051)]TJ/F25 7.9701 Tf 4.2425 4.5043 Td[(T)]TJ/F15 10.9091 Tf 6.6045 -4.5043 Td[(\050)]TJ/F24 10.9091 Tf 4.2424 0 Td[(A)]TJ/F25 7.9701 Tf 8.1818 4.5043 Td[(\016)]TJ 0 -7.2012 Td[(i)]TJ/F15 10.9091 Tf 4.5441 2.6969 Td[(\051)]TJ/F28 7.9701 Tf 4.2425 4.5043 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F15 10.9091 Tf 7.0979 -1.7467 Td[(~)]TJ/F24 10.9091 Tf -2.3656 -2.7576 Td[(R)]TJ/F22 7.9701 Tf 8.3674 4.5043 Td[(0)]TJ/F25 7.9701 Tf -0.0842 -7.2012 Td[(i)]TJ/F24 10.9091 Tf 4.8165 2.6969 Td[(:)]TJ/F15 10.9091 Tf -271.9722 -30.1742 Td[(W)84(e)-336(n)1(ote)-335(that)-334(for)]TJ/F24 10.9091 Tf 83.4217 0 Td[(\016)]TJ/F15 10.9091 Tf 8.3157 0 Td[(=)-280(0)-334(the)-335(th)1(re)-1(e)-335(v)56(ari)1(an)28(ts)-335(of)-334(the)-335(AS)-334(pr)1(e)-1(cond)1(ition)1(e)-1(r)-334(are)-335(all)-334(e)-1(q)1(ual)-334(to)-335(th)1(e)]TJ -91.7375 -13.5492 Td[(bl)1(o)-28(c)27(k-Jacobi)-333(p)1(re)-1(cond)1(ition)1(e)-1(r)1(.)]TJ 16.9365 -13.5492 Td[(As)-359(al)1(re)-1(ad)1(y)-358(obse)-1(r)1(v)28(e)-1(d)1(,)-365(t)1(he)-359(con)28(v)28(erge)-1(n)1(c)-1(e)-358(rate)-358(of)-358(the)-358(one-)-1(lev)28(el)-358(Sc)27(h)29(w)27(arz)-358(precondi)1(tioned)]TJ -16.9365 -13.5492 Td[(iterati)1(v)28(e)-359(s)-1(ol)1(v)28(e)-1(rs)-358(dete)-1(r)1(iorates)-359(as)-359(t)1(he)-359(n)28(u)1(m)27(b)-27(er)]TJ/F24 10.9091 Tf 211.4221 0 Td[(m)]TJ/F15 10.9091 Tf 13.487 0 Td[(of)-358(p)1(artiti)1(ons)-359(of)]TJ/F24 10.9091 Tf 75.4535 0 Td[(W)]TJ/F15 10.9091 Tf 15.7269 0 Td[(in)1(c)-1(r)1(e)-1(ase)-1(s)-359([)]TJ -ET -1 0 0 1 458.5984 462.2978 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -458.5984 -462.2978 cm -BT -/F15 10.9091 Tf 458.5984 462.2978 Td[(7)]TJ -ET -1 0 0 1 464.0529 462.2978 cm -0 g 0 G -1 0 0 1 -464.0529 -462.2978 cm -BT -/F15 10.9091 Tf 464.0529 462.2978 Td[(,)]TJ -ET -1 0 0 1 470.9919 462.2978 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -470.9919 -462.2978 cm -BT -/F15 10.9091 Tf 470.9919 462.2978 Td[(20)]TJ -ET -1 0 0 1 481.901 462.2978 cm -0 g 0 G -1 0 0 1 -481.901 -462.2978 cm -BT -/F15 10.9091 Tf 481.901 462.2978 Td[(].)-519(T)83(o)]TJ -388.3008 -13.5492 Td[(redu)1(c)-1(e)-308(th)1(e)-309(d)1(e)-1(p)-27(e)-1(n)1(dency)-308(of)-307(the)-308(n)28(u)1(m)27(b)-27(e)-1(r)-307(of)-308(iterati)1(ons)-308(on)-308(th)1(e)-308(degre)-1(e)-308(of)-307(paral)1(le)-1(l)1(is)-1(m)-308(w)28(e)-309(ma)28(y)]TJ 0 -13.5492 Td[(in)28(t)1(ro)-28(d)1(uce)-276(a)-276(glob)1(al)-275(c)-1(ou)1(plin)1(g)-276(amon)1(g)-276(th)1(e)-276(o)27(v)28(erl)1(appi)1(ng)-275(part)1(ition)1(s)-276(b)28(y)-275(de\014ni)1(ng)-275(a)-276(coarse)-1(-s)-1(p)1(ac)-1(e)]TJ 0 -13.5492 Td[(app)1(ro)28(ximation)]TJ/F24 10.9091 Tf 72.1198 0 Td[(A)]TJ/F25 7.9701 Tf 8.1818 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 10.0953 1.6887 Td[(of)-274(the)-275(matrix)]TJ/F24 10.9091 Tf 64.7833 0 Td[(A)]TJ/F15 10.9091 Tf 8.1819 0 Td[(.)-425(In)-274(a)-275(pu)1(re)-275(algebrai)1(c)-276(se)-1(tt)1(ing,)]TJ/F24 10.9091 Tf 137.1498 0 Td[(A)]TJ/F25 7.9701 Tf 8.1818 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 10.0953 1.6887 Td[(is)-275(usual)1(ly)-275(b)1(uilt)-274(with)]TJ -318.789 -13.5492 Td[(a)-375(Gal)1(e)-1(r)1(kin)-374(appr)1(oac)27(h)1(.)-569(Giv)28(en)-374(a)-375(s)-1(et)]TJ/F24 10.9091 Tf 166.3185 0 Td[(W)]TJ/F25 7.9701 Tf 10.3031 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 11.1858 1.6887 Td[(of)]TJ/F20 10.9091 Tf 12.8769 0 Td[(c)51(o)51(arse)-395(vertic)51(es)]TJ/F15 10.9091 Tf 68.9977 0 Td[(,)-385(with)-374(s)-1(i)1(z)-1(e)]TJ/F24 10.9091 Tf 53.653 0 Td[(n)]TJ/F25 7.9701 Tf 6.5481 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 7.0968 1.6887 Td[(,)-385(and)-374(a)-375(suit)1(able)]TJ -336.9799 -13.5492 Td[(res)-1(t)1(riction)-333(op)-27(e)-1(r)1(ator)]TJ/F24 10.9091 Tf 96.2426 0 Td[(R)]TJ/F25 7.9701 Tf 8.2831 -1.6887 Td[(C)]TJ/F27 10.9091 Tf 10.1271 1.6887 Td[(2)-277(<)]TJ/F25 7.9701 Tf 18.1818 3.9588 Td[(n)]TJ/F26 5.9776 Tf 5.1382 -1.3394 Td[(C)]TJ/F28 7.9701 Tf 6.1942 1.3394 Td[(\002)]TJ/F25 7.9701 Tf 6.5865 0 Td[(n)]TJ/F15 10.9091 Tf 5.6363 -3.9588 Td[(,)]TJ/F24 10.9091 Tf 6.6667 0 Td[(A)]TJ/F25 7.9701 Tf 8.1818 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 10.7332 1.6887 Td[(is)-334(d)1(e)-1(\014)1(ned)-333(as)]TJ/F24 10.9091 Tf -10.1288 -20.9733 Td[(A)]TJ/F25 7.9701 Tf 8.1818 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 10.1271 1.6887 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(R)]TJ/F25 7.9701 Tf 8.2831 -1.6887 Td[(C)]TJ/F24 10.9091 Tf 7.0968 1.6887 Td[(AR)]TJ/F25 7.9701 Tf 16.5493 4.5043 Td[(T)]TJ -0.0843 -7.2012 Td[(C)]TJ/F15 10.9091 Tf -233.5116 -18.2764 Td[(and)-495(the)-497(coarse)-1(-lev)28(e)-1(l)-496(corr)1(e)-1(ction)-496(matri)1(x)-496(to)-497(b)-27(e)-497(com)27(b)1(ined)-496(with)-496(a)-496(generic)-496(one-)-1(lev)28(el)-496(AS)]TJ 0 -13.5492 Td[(pr)1(e)-1(cond)1(ition)1(e)-1(r)]TJ/F24 10.9091 Tf 72.1819 0 Td[(M)]TJ/F22 7.9701 Tf 10.5833 -1.6887 Td[(1)]TJ/F25 7.9701 Tf 4.2342 0 Td[(L)]TJ/F15 10.9091 Tf 9.8935 1.6887 Td[(is)-334(ob)1(tain)1(e)-1(d)-333(as)]TJ/F24 10.9091 Tf 63.8687 -20.9733 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5866 0 Td[(1)]TJ/F25 7.9701 Tf -7.7759 -8.0219 Td[(C)]TJ/F15 10.9091 Tf 15.5384 3.4341 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(R)]TJ/F25 7.9701 Tf 8.3675 4.5043 Td[(T)]TJ -0.0843 -7.2012 Td[(C)]TJ/F24 10.9091 Tf 7.0968 2.6969 Td[(A)]TJ/F28 7.9701 Tf 8.1818 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F25 7.9701 Tf -6.5865 -8.0219 Td[(C)]TJ/F24 10.9091 Tf 11.3188 3.4341 Td[(R)]TJ/F25 7.9701 Tf 8.2832 -1.6887 Td[(C)]TJ/F24 10.9091 Tf 7.0968 1.6887 Td[(;)]TJ/F15 10.9091 Tf -248.6591 -20.9733 Td[(where)]TJ/F24 10.9091 Tf 31.9095 0 Td[(A)]TJ/F25 7.9701 Tf 8.1818 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 11.0973 1.6887 Td[(is)-367(ass)-1(u)1(m)-1(ed)-366(to)-367(b)-27(e)-367(nonsin)1(gular)1(.)-545(The)-367(ap)1(pli)1(c)-1(ati)1(on)-367(of)]TJ/F24 10.9091 Tf 240.8833 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5866 0 Td[(1)]TJ/F25 7.9701 Tf -7.7759 -8.0219 Td[(C)]TJ/F15 10.9091 Tf 16.5086 3.4341 Td[(to)-367(a)-366(v)28(e)-1(ctor)]TJ/F24 10.9091 Tf 56.2741 0 Td[(v)]TJ/F15 10.9091 Tf 9.6797 0 Td[(corre-)]TJ -385.1177 -13.5492 Td[(sp)-28(on)1(ds)-325(to)-326(a)-325(r)1(e)-1(striction)1(,)-327(a)-325(soluti)1(on)-325(and)-324(a)-326(p)1(rolon)1(gation)-324(s)-1(tep;)-327(the)-326(solu)1(tion)-325(step,)-327(i)1(n)28(v)28(olvi)1(ng)]TJ 0 -13.5492 Td[(th)1(e)-334(m)-1(at)1(rix)]TJ/F24 10.9091 Tf 54.2728 0 Td[(A)]TJ/F25 7.9701 Tf 8.1818 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 7.0968 1.6887 Td[(,)-333(ma)27(y)-333(b)-27(e)-334(carri)1(e)-1(d)-333(ou)1(t)-334(al)1(s)-1(o)-333(app)1(ro)28(ximately)83(.)]TJ -52.6149 -13.5492 Td[(The)-309(c)-1(om)28(bin)1(ation)-309(of)]TJ/F24 10.9091 Tf 96.1762 0 Td[(M)]TJ/F25 7.9701 Tf 10.5833 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 10.4687 1.6887 Td[(and)]TJ/F24 10.9091 Tf 20.9476 0 Td[(M)]TJ/F22 7.9701 Tf 10.5833 -1.6887 Td[(1)]TJ/F25 7.9701 Tf 4.2342 0 Td[(L)]TJ/F15 10.9091 Tf 9.629 1.6887 Td[(ma)27(y)-308(b)-28(e)-309(p)-28(erf)1(orme)-1(d)-308(in)-309(eith)1(e)-1(r)-309(an)-308(add)1(itiv)28(e)-309(or)-309(a)-309(m)27(u)1(l-)]TJ -179.5588 -13.5492 Td[(tip)1(licativ)28(e)-275(framew)27(ork)1(.)-425(In)-275(th)1(e)-276(f)1(orme)-1(r)-274(c)-1(ase)-1(,)-286(the)]TJ/F20 10.9091 Tf 217.1915 0 Td[(tw)-1(o-l)1(evel)-304(additive)]TJ/F15 10.9091 Tf 85.1983 0 Td[(Sc)28(h)28(w)28(arz)-276(p)1(rec)-1(on)1(diti)1(oner)]TJ -302.3899 -13.5492 Td[(is)-334(ob)1(tain)1(e)-1(d)1(:)]TJ/F24 10.9091 Tf 153.9707 -13.5492 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5866 0 Td[(1)]TJ -7.7759 -8.0219 Td[(2)]TJ/F25 7.9701 Tf 4.2342 0 Td[(LA)]TJ/F15 10.9091 Tf 15.6304 3.4341 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F25 7.9701 Tf -7.7759 -8.0219 Td[(C)]TJ/F15 10.9091 Tf 14.9324 3.4341 Td[(+)]TJ/F24 10.9091 Tf 10.9091 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ -7.7759 -8.0219 Td[(1)]TJ/F25 7.9701 Tf 4.2342 0 Td[(L)]TJ/F24 10.9091 Tf 8.274 3.4341 Td[(:)]TJ/F15 10.9091 Tf -255.4501 -18.2575 Td[(App)1(lyi)1(ng)]TJ/F24 10.9091 Tf 48.2012 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5866 0 Td[(1)]TJ -7.7759 -8.0219 Td[(2)]TJ/F25 7.9701 Tf 4.2342 0 Td[(L)]TJ/F28 7.9701 Tf 5.759 0 Td[(\000)]TJ/F25 7.9701 Tf 6.5865 0 Td[(A)]TJ/F15 10.9091 Tf 11.4059 3.4341 Td[(to)-418(a)-419(v)28(ec)-1(tor)]TJ/F24 10.9091 Tf 57.9672 0 Td[(v)]TJ/F15 10.9091 Tf 10.2441 0 Td[(with)1(in)-418(a)-419(K)1(rylo)28(v)-418(s)-1(ol)1(v)28(e)-1(r)-418(corres)-1(p)-27(on)1(ds)-419(to)-418(app)1(lyin)1(g)]TJ/F24 10.9091 Tf 234.3781 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F25 7.9701 Tf -7.7759 -8.0219 Td[(C)]TJ/F15 10.9091 Tf -399.9429 -11.5506 Td[(and)]TJ/F24 10.9091 Tf 21.2121 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5866 0 Td[(1)]TJ -7.7759 -8.0219 Td[(1)]TJ/F25 7.9701 Tf 4.2342 0 Td[(L)]TJ/F15 10.9091 Tf 11.9103 3.4341 Td[(to)]TJ/F24 10.9091 Tf 13.3334 0 Td[(v)]TJ/F15 10.9091 Tf 9.3156 0 Td[(in)1(dep)-28(end)1(e)-1(n)29(tly)-333(and)-333(th)1(e)-1(n)-332(s)-1(u)1(m)-1(min)1(g)-334(u)1(p)-333(the)-333(re)-1(sul)1(ts)-1(.)]TJ -53.6525 -13.5492 Td[(In)-355(t)1(he)-355(m)27(u)1(ltip)1(licativ)28(e)-355(c)-1(ase)-1(,)-360(th)1(e)-356(com)27(b)1(in)1(ation)-355(can)-354(b)-28(e)-355(p)-27(e)-1(r)1(formed)-355(b)28(y)-354(\014rst)-355(ap)1(ply)1(ing)-355(th)1(e)]TJ -16.9365 -13.5492 Td[(sm)-1(o)-28(ot)1(her)]TJ/F24 10.9091 Tf 47.6667 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ -7.7758 -8.0219 Td[(1)]TJ/F25 7.9701 Tf 4.2341 0 Td[(L)]TJ/F15 10.9091 Tf 11.9104 3.4341 Td[(and)-332(then)-333(the)-333(c)-1(oarse-)-1(lev)28(el)-334(corr)1(e)-1(ction)-333(op)-27(e)-1(r)1(ator)]TJ/F24 10.9091 Tf 217.4851 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F25 7.9701 Tf -7.7759 -8.0219 Td[(C)]TJ/F15 10.9091 Tf 12.5082 3.4341 Td[(:)]TJ/F24 10.9091 Tf -164.4656 -21.5786 Td[(w)]TJ/F15 10.9091 Tf 11.1338 0 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ -7.7758 -8.0219 Td[(1)]TJ/F25 7.9701 Tf 4.2341 0 Td[(L)]TJ/F24 10.9091 Tf 8.274 3.4341 Td[(v)-36(;)]TJ -45.7404 -13.7889 Td[(z)]TJ/F15 10.9091 Tf 8.5833 0 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(w)]TJ/F15 10.9091 Tf 10.5278 0 Td[(+)]TJ/F24 10.9091 Tf 10.909 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F25 7.9701 Tf -7.7758 -8.0219 Td[(C)]TJ/F15 10.9091 Tf 12.5081 3.4341 Td[(\050)]TJ/F24 10.9091 Tf 4.2425 0 Td[(v)]TJ/F27 10.9091 Tf 8.1035 0 Td[(\000)]TJ/F24 10.9091 Tf 10.9091 0 Td[(Aw)]TJ/F15 10.9091 Tf 16.2854 0 Td[(\051;)]TJ -ET -1 0 0 1 93.6002 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -314 0 obj << -/Type /Page -/Contents 315 0 R -/Resources 313 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 258 0 R -/Annots [ 317 0 R 318 0 R 319 0 R 320 0 R 321 0 R ] ->> endobj -317 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 739.0056 100.6267 748.4526] -/Subtype /Link -/A << /S /GoTo /D (section.4) >> ->> endobj -318 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [403.6101 676.0417 411.0572 685.0645] -/Subtype /Link -/A << /S /GoTo /D (cite.CAI_SARKIS) >> ->> endobj -319 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [416.3156 676.0417 429.2172 685.0645] -/Subtype /Link -/A << /S /GoTo /D (cite.EFSTATHIOU) >> ->> endobj -320 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [457.6021 461.3016 465.0492 470.3244] -/Subtype /Link -/A << /S /GoTo /D (cite.dd1_94) >> ->> endobj -321 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [469.9956 461.3016 482.8973 470.3244] -/Subtype /Link -/A << /S /GoTo /D (cite.dd2_96) >> ->> endobj -316 0 obj << -/D [314 0 R /XYZ 93.6002 740.0018 null] ->> endobj -313 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F20 181 0 R /F24 186 0 R /F25 290 0 R /F22 296 0 R /F27 189 0 R /F26 299 0 R /F28 293 0 R /F30 302 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -326 0 obj << -/Length 14322 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(12)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -498.8509 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 704.1363 Td[(th)1(is)-279(corresp)-28(on)1(ds)-278(to)-279(t)1(he)-279(f)1(ollo)28(win)1(g)]TJ/F20 10.9091 Tf 156.3223 0 Td[(tw)-1(o-l)1(evel)-307(hy)1(brid)-307(pr)52(e-smo)51(othe)51(d)]TJ/F15 10.9091 Tf 143.0037 0 Td[(Sc)28(h)28(w)28(arz)-279(p)1(rec)-1(on)1(diti)1(oner:)]TJ/F24 10.9091 Tf -190.113 -24.5723 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ -7.7759 -8.0219 Td[(2)]TJ/F25 7.9701 Tf 4.2342 0 Td[(LH)]TJ/F28 7.9701 Tf 13.3293 0 Td[(\000)]TJ/F25 7.9701 Tf 6.5866 0 Td[(P)-147(R)-7(E)]TJ/F15 10.9091 Tf 23.1536 3.4341 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F25 7.9701 Tf -7.7759 -8.0219 Td[(C)]TJ/F15 10.9091 Tf 14.9324 3.4341 Td[(+)]TJ/F30 10.9091 Tf 10.9091 8.8364 Td[(\000)]TJ/F24 10.9091 Tf 5 -8.8364 Td[(I)]TJ/F27 10.9091 Tf 8.0757 0 Td[(\000)]TJ/F24 10.9091 Tf 10.9091 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F25 7.9701 Tf -7.7759 -8.0219 Td[(C)]TJ/F24 10.9091 Tf 12.5082 3.4341 Td[(A)]TJ/F30 10.9091 Tf 8.1818 8.8364 Td[(\001)]TJ/F24 10.9091 Tf 6.8182 -8.8364 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ -7.7759 -8.0219 Td[(1)]TJ/F25 7.9701 Tf 4.2342 0 Td[(L)]TJ/F24 10.9091 Tf 8.274 3.4341 Td[(:)]TJ/F15 10.9091 Tf -300.2078 -24.5724 Td[(On)-368(th)1(e)-369(other)-368(han)1(d,)-377(b)28(y)-368(app)1(lyi)1(ng)-369(t)1(he)-369(sm)-1(o)-27(other)-369(af)1(ter)-369(t)1(he)-369(coars)-1(e-le)-1(v)28(el)-368(c)-1(or)1(rec)-1(tion)1(,)-377(i.e.)-368(b)28(y)]TJ 0 -13.5492 Td[(com)-1(p)1(utin)1(g)]TJ/F24 10.9091 Tf 150.5056 -12.9058 Td[(w)]TJ/F15 10.9091 Tf 11.1338 0 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F25 7.9701 Tf -7.7758 -8.0219 Td[(C)]TJ/F24 10.9091 Tf 12.5081 3.4341 Td[(v)-36(;)]TJ -45.7404 -13.7889 Td[(z)]TJ/F15 10.9091 Tf 8.5833 0 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(w)]TJ/F15 10.9091 Tf 10.5278 0 Td[(+)]TJ/F24 10.9091 Tf 10.909 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5866 0 Td[(1)]TJ -7.7759 -8.0219 Td[(1)]TJ/F25 7.9701 Tf 4.2342 0 Td[(L)]TJ/F15 10.9091 Tf 8.274 3.4341 Td[(\050)]TJ/F24 10.9091 Tf 4.2424 0 Td[(v)]TJ/F27 10.9091 Tf 8.1035 0 Td[(\000)]TJ/F24 10.9091 Tf 10.9091 0 Td[(Aw)]TJ/F15 10.9091 Tf 16.2854 0 Td[(\051)]TJ/F24 10.9091 Tf 4.2424 0 Td[(;)]TJ/F15 10.9091 Tf -258.9152 -19.1875 Td[(th)1(e)]TJ/F20 10.9091 Tf 18.7879 0 Td[(tw)-1(o-l)1(evel)-357(h)-1(y)1(bri)1(d)-358(p)51(ost-smo)51(othe)51(d)]TJ/F15 10.9091 Tf 148.7565 0 Td[(Sc)28(h)28(w)28(arz)-334(p)1(re)-1(cond)1(ition)1(e)-1(r)-333(i)1(s)-334(obtai)1(ned:)]TJ/F24 10.9091 Tf -60.9726 -24.5723 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ -7.7759 -8.0219 Td[(2)]TJ/F25 7.9701 Tf 4.2342 0 Td[(LH)]TJ/F28 7.9701 Tf 13.3293 0 Td[(\000)]TJ/F25 7.9701 Tf 6.5866 0 Td[(P)-147(O)-30(S)-56(T)]TJ/F15 10.9091 Tf 28.4361 3.4341 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ -7.7759 -8.0219 Td[(1)]TJ/F25 7.9701 Tf 4.2342 0 Td[(L)]TJ/F15 10.9091 Tf 10.6982 3.4341 Td[(+)]TJ/F30 10.9091 Tf 10.9091 8.8364 Td[(\000)]TJ/F24 10.9091 Tf 5 -8.8364 Td[(I)]TJ/F27 10.9091 Tf 8.0757 0 Td[(\000)]TJ/F24 10.9091 Tf 10.9091 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ -7.7759 -8.0219 Td[(1)]TJ/F25 7.9701 Tf 4.2342 0 Td[(L)]TJ/F24 10.9091 Tf 8.274 3.4341 Td[(A)]TJ/F30 10.9091 Tf 8.1818 8.8364 Td[(\001)]TJ/F24 10.9091 Tf 6.8182 -8.8364 Td[(M)]TJ/F28 7.9701 Tf 11.7727 4.5878 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F25 7.9701 Tf -7.7759 -8.0219 Td[(C)]TJ/F24 10.9091 Tf 12.5082 3.4341 Td[(:)]TJ/F15 10.9091 Tf -302.8491 -24.5724 Td[(On)1(e)-223(more)-223(v)56(ari)1(an)28(t)-222(of)-222(t)28(w)27(o-lev)28(e)-1(l)-222(h)29(ybr)1(id)-222(p)1(re)-1(cond)1(ition)1(e)-1(r)-221(is)-223(ob)1(tained)-222(b)28(y)-222(ap)1(ply)1(ing)-222(th)1(e)-223(s)-1(mo)-28(oth)1(e)-1(r)]TJ 0 -13.5492 Td[(b)-27(e)-1(f)1(ore)-240(an)1(d)-239(aft)1(e)-1(r)-239(th)1(e)-240(coars)-1(e-le)-1(v)28(el)-239(correc)-1(ti)1(on.)-413(In)-239(th)1(is)-240(case)-1(,)-258(th)1(e)-240(p)1(re)-1(cond)1(ition)1(e)-1(r)-238(is)-240(symm)-1(etric)]TJ 0 -13.5492 Td[(if)]TJ/F24 10.9091 Tf 10 0 Td[(A)]TJ/F15 10.9091 Tf 8.1819 0 Td[(,)]TJ/F24 10.9091 Tf 6.6666 0 Td[(M)]TJ/F22 7.9701 Tf 10.5834 -1.6887 Td[(1)]TJ/F25 7.9701 Tf 4.2342 0 Td[(L)]TJ/F15 10.9091 Tf 9.8935 1.6887 Td[(and)]TJ/F24 10.9091 Tf 21.2121 0 Td[(M)]TJ/F25 7.9701 Tf 10.5834 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 10.7331 1.6887 Td[(are)-333(s)-1(ymme)-1(tr)1(ic)-1(.)]TJ -75.1517 -13.5706 Td[(As)-533(pr)1(e)-1(v)1(iously)-532(noted,)-582(on)-532(p)1(arallel)-532(c)-1(ompu)1(te)-1(r)1(s)-533(the)-533(n)29(um)27(b)-27(er)-532(of)-533(sub)1(matrice)-1(s)-533(u)1(s)-1(u)1(ally)]TJ -16.9365 -13.5492 Td[(matc)27(h)1(e)-1(s)-307(the)-307(n)28(u)1(m)27(b)-27(e)-1(r)-306(of)-307(a)28(v)56(ailab)1(le)-307(pr)1(o)-28(c)-1(ess)-1(ors.)-435(When)-307(th)1(e)-307(s)-1(ize)-307(of)-307(th)1(e)-307(s)-1(ystem)-308(to)-306(b)-28(e)-307(pr)1(e)-1(con-)]TJ 0 -13.5492 Td[(di)1(tioned)-300(i)1(s)-301(v)28(e)-1(r)1(y)-300(large,)-307(t)1(he)-301(u)1(s)-1(e)-300(of)-300(man)28(y)-300(p)1(ro)-28(ce)-1(ss)-1(or)1(s)-1(,)-306(i.e.)-300(of)-300(man)28(y)-300(sm)-1(all)-299(s)-1(u)1(bmatrice)-1(s,)-307(of)1(ten)]TJ 0 -13.5492 Td[(leads)-314(to)-314(a)-314(large)-314(coars)-1(e-le)-1(v)28(el)-314(sys)-1(t)1(e)-1(m,)-318(whose)-315(solu)1(tion)-314(ma)28(y)-314(b)-27(e)-315(comput)1(ational)1(ly)-314(exp)-28(ensiv)28(e.)]TJ 0 -13.5492 Td[(On)-384(th)1(e)-386(ot)1(her)-385(h)1(and)1(,)-398(th)1(e)-385(use)-385(of)-385(f)1(e)-1(w)-385(p)1(ro)-28(ces)-1(sors)-385(often)-384(le)-1(ad)1(s)-385(to)-385(lo)-27(c)-1(al)-384(s)-1(u)1(m)-1(at)1(rice)-1(s)-385(th)1(at)-385(are)]TJ 0 -13.5492 Td[(to)-28(o)-424(exp)-27(e)-1(n)1(s)-1(i)1(v)28(e)-425(to)-424(b)-27(e)-425(p)1(ro)-28(ces)-1(se)-1(d)-423(on)-424(single)-424(pr)1(o)-28(ce)-1(ss)-1(or)1(s)-1(,)-446(b)-28(ec)-1(au)1(s)-1(e)-424(of)-424(mem)-1(or)1(y)-424(and)1(/or)-424(com)-1(-)]TJ 0 -13.5492 Td[(pu)1(tin)1(g)-324(requi)1(re)-1(men)28(ts.)-442(Th)1(e)-1(r)1(e)-1(f)1(ore)-1(,)-325(it)-324(se)-1(ems)-325(n)1(atur)1(al)-324(to)-324(u)1(s)-1(e)-324(a)-324(rec)-1(u)1(rsiv)28(e)-324(appr)1(oac)27(h)1(,)-326(in)-323(whic)28(h)]TJ 0 -13.5492 Td[(th)1(e)-395(c)-1(oar)1(s)-1(e-)-1(l)1(e)-1(v)28(el)-394(c)-1(orr)1(e)-1(ction)-394(is)-394(re)-1(-ap)1(plied)-394(startin)1(g)-395(f)1(rom)-395(t)1(he)-395(curr)1(e)-1(n)29(t)-395(coarse)-1(-lev)28(e)-1(l)-394(sys)-1(t)1(e)-1(m.)]TJ 0 -13.5492 Td[(The)-321(c)-1(or)1(res)-1(p)-27(ond)1(ing)-321(p)1(rec)-1(on)1(dit)1(ioners,)-323(c)-1(all)1(e)-1(d)]TJ/F20 10.9091 Tf 202.455 0 Td[(mu)1(lti-l)1(evel)]TJ/F15 10.9091 Tf 53.6944 0 Td[(pr)1(e)-1(cond)1(ition)1(e)-1(r)1(s)-1(,)-323(can)-321(signi)1(\014can)28(tly)]TJ -256.1494 -13.5492 Td[(redu)1(c)-1(e)-282(the)-283(com)-1(p)1(utat)1(ional)-282(cos)-1(t)-282(of)-282(pr)1(e)-1(cond)1(ition)1(ing)-282(with)-282(r)1(e)-1(sp)-28(ec)-1(t)-282(to)-282(the)-282(t)28(w)27(o-lev)28(e)-1(l)-282(c)-1(ase)-283(\050se)-1(e)]TJ 0 -13.5492 Td[([)]TJ -ET -1 0 0 1 89.4301 370.2545 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -89.4301 -370.2545 cm -BT -/F15 10.9091 Tf 89.4301 370.2545 Td[(20)]TJ -ET -1 0 0 1 100.3392 370.2545 cm -0 g 0 G -1 0 0 1 -100.3392 -370.2545 cm -BT -/F15 10.9091 Tf 100.3392 370.2545 Td[(,)-320(Chap)1(te)-1(r)-317(3])1(\051.)-439(Add)1(itiv)28(e)-317(and)-316(h)28(ybr)1(id)-317(m)28(ult)1(ilev)28(e)-1(l)-317(p)1(re)-1(cond)1(ition)1(e)-1(r)1(s)-318(ar)1(e)-318(obt)1(ained)-317(as)-317(dir)1(e)-1(ct)]TJ -13.9394 -13.5492 Td[(exte)-1(n)1(s)-1(i)1(ons)-359(of)-359(th)1(e)-360(t)28(w)28(o-)-1(lev)28(el)-359(c)-1(ou)1(n)28(terpar)1(ts)-1(.)-521(F)84(or)-359(a)-359(detailed)-359(d)1(e)-1(sc)-1(r)1(ition)-358(of)-359(th)1(e)-1(m,)-365(the)-359(reader)]TJ 0 -13.5492 Td[(is)-321(referred)-321(to)-321([)]TJ -ET -1 0 0 1 153.7247 343.1561 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -153.7247 -343.1561 cm -BT -/F15 10.9091 Tf 153.7247 343.1561 Td[(20)]TJ -ET -1 0 0 1 164.6338 343.1561 cm -0 g 0 G -1 0 0 1 -164.6338 -343.1561 cm -BT -/F15 10.9091 Tf 164.6338 343.1561 Td[(,)-323(C)-1(h)1(apter)-321(3])1(.)-441(Th)1(e)-322(algor)1(ith)1(m)-322(f)1(or)-321(the)-321(app)1(lication)-320(of)-321(a)-321(m)27(u)1(lti-lev)28(e)-1(l)-320(h)28(ybr)1(id)]TJ -78.234 -13.5492 Td[(p)-27(os)-1(t-sm)-1(o)-28(ot)1(hed)-335(pr)1(e)-1(cond)1(ition)1(e)-1(r)]TJ/F24 10.9091 Tf 145.6758 0 Td[(M)]TJ/F15 10.9091 Tf 15.4287 0 Td[(to)-335(a)-335(v)28(e)-1(ctor)]TJ/F24 10.9091 Tf 55.2408 0 Td[(v)]TJ/F15 10.9091 Tf 5.6793 0 Td[(,)-335(i.e.)-335(for)-335(th)1(e)-336(comput)1(ation)-335(of)]TJ/F24 10.9091 Tf 135.9109 0 Td[(w)]TJ/F15 10.9091 Tf 11.1665 0 Td[(=)]TJ/F24 10.9091 Tf 11.5479 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 3.9588 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F24 10.9091 Tf 4.7323 -3.9588 Td[(v)]TJ/F15 10.9091 Tf 5.6793 0 Td[(,)]TJ -409.4208 -13.5492 Td[(is)-311(rep)-27(orted,)-315(f)1(or)-311(example,)-315(in)-310(Figu)1(re)]TJ -ET -1 0 0 1 252.6225 316.0577 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -252.6225 -316.0577 cm -BT -/F15 10.9091 Tf 252.6225 316.0577 Td[(1)]TJ -ET -1 0 0 1 258.077 316.0577 cm -0 g 0 G -1 0 0 1 -258.077 -316.0577 cm -BT -/F15 10.9091 Tf 258.077 316.0577 Td[(.)-437(Here)-311(th)1(e)-311(n)28(um)28(b)-28(er)-311(of)-310(lev)28(els)-311(is)-311(denoted)-310(b)28(y)]TJ/F24 10.9091 Tf 199.0322 0 Td[(nl)-20(ev)]TJ/F15 10.9091 Tf 24.1659 0 Td[(and)]TJ -394.8753 -13.5492 Td[(th)1(e)-360(le)-1(v)28(els)-360(ar)1(e)-360(n)28(um)28(b)-27(e)-1(red)-359(in)-359(i)1(ncre)-1(asin)1(g)-360(or)1(der)-360(start)1(ing)-359(fr)1(om)-360(the)-360(\014)1(nes)-1(t)-359(on)1(e)-1(,)-366(i)1(.e)-1(.)-359(th)1(e)-360(\014n)1(e)-1(st)]TJ 0 -13.5492 Td[(lev)28(e)-1(l)-392(is)-392(le)-1(v)28(el)-392(1;)-422(th)1(e)-393(c)-1(oar)1(s)-1(e)-392(m)-1(atr)1(ix)-392(and)-392(th)1(e)-393(corres)-1(p)-27(ond)1(in)1(g)-393(b)1(as)-1(ic)-392(prec)-1(on)1(di)1(tioner)-392(at)-392(e)-1(ac)28(h)]TJ 0 -13.5492 Td[(lev)28(e)-1(l)]TJ/F24 10.9091 Tf 24.8485 0 Td[(l)]TJ/F15 10.9091 Tf 7.106 0 Td[(are)-333(denoted)-333(b)28(y)]TJ/F24 10.9091 Tf 74.5759 0 Td[(A)]TJ/F25 7.9701 Tf 8.1818 -1.7772 Td[(l)]TJ/F15 10.9091 Tf 6.7566 1.7772 Td[(and)]TJ/F24 10.9091 Tf 21.2121 0 Td[(M)]TJ/F25 7.9701 Tf 10.5834 -1.7772 Td[(l)]TJ/F15 10.9091 Tf 3.1202 1.7772 Td[(,)-333(res)-1(p)-27(ec)-1(tiv)28(ely)84(,)-333(w)-1(i)1(th)]TJ/F24 10.9091 Tf 93.1213 0 Td[(A)]TJ/F22 7.9701 Tf 8.1818 -1.6363 Td[(1)]TJ/F15 10.9091 Tf 7.7626 1.6363 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(A)]TJ/F15 10.9091 Tf 8.1818 0 Td[(.)]TJ/F19 11.9552 Tf -285.1472 -29.3352 Td[(4.)-1(2)-1125(Sm)-1(o)-32(ot)-1(hed)-375(Agg)-1(reg)-1(ati)-1(on)]TJ/F15 10.9091 Tf 0 -20.6362 Td[(In)-411(or)1(der)-411(to)-411(d)1(e)-1(\014)1(ne)-411(the)-411(res)-1(tr)1(ic)-1(t)1(ion)-411(op)-27(e)-1(r)1(ator)]TJ/F24 10.9091 Tf 207.9903 0 Td[(R)]TJ/F25 7.9701 Tf 8.2832 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 7.0968 1.6887 Td[(,)-430(whic)28(h)-411(is)-411(use)-1(d)-410(to)-411(com)-1(p)1(ute)-411(the)-411(c)-1(oar)1(s)-1(e-)]TJ -223.3703 -13.5492 Td[(lev)28(e)-1(l)-280(m)-1(atr)1(ix)]TJ/F24 10.9091 Tf 59.1879 0 Td[(A)]TJ/F25 7.9701 Tf 8.1819 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 7.0968 1.6887 Td[(,)-291(MLD2P)1(4)-281(use)-1(s)-281(th)1(e)]TJ/F20 10.9091 Tf 93.5509 0 Td[(smo)51(othe)51(d)-310(aggr)52(e)51(gation)]TJ/F15 10.9091 Tf 103.8759 0 Td[(algor)1(ithm)-281(d)1(e)-1(sc)-1(r)1(ib)-28(ed)-280(in)-281([)]TJ -ET -1 0 0 1 470.3327 211.8895 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -470.3327 -211.8895 cm -BT -/F15 10.9091 Tf 470.3327 211.8895 Td[(1)]TJ -ET -1 0 0 1 475.7872 211.8895 cm -0 g 0 G -1 0 0 1 -475.7872 -211.8895 cm -BT -/F15 10.9091 Tf 475.7872 211.8895 Td[(,)]TJ -ET -1 0 0 1 481.8812 211.8895 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -481.8812 -211.8895 cm -BT -/F15 10.9091 Tf 481.8812 211.8895 Td[(24)]TJ -ET -1 0 0 1 492.7903 211.8895 cm -0 g 0 G -1 0 0 1 -492.7903 -211.8895 cm -BT -/F15 10.9091 Tf 492.7903 211.8895 Td[(].)]TJ -406.3905 -13.5492 Td[(The)-443(b)1(as)-1(ic)-443(id)1(e)-1(a)-442(of)-442(this)-443(al)1(gorith)1(m)-443(is)-443(to)-443(b)1(uil)1(d)-443(a)-442(c)-1(oar)1(s)-1(e)-443(se)-1(t)-442(of)-443(v)28(erti)1(c)-1(es)]TJ/F24 10.9091 Tf 335.9387 0 Td[(W)]TJ/F25 7.9701 Tf 10.3031 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 11.9257 1.6887 Td[(b)28(y)-442(s)-1(u)1(itab)1(ly)]TJ -358.1675 -13.5492 Td[(grou)1(pin)1(g)-330(th)1(e)-330(v)28(e)-1(r)1(tice)-1(s)-330(of)]TJ/F24 10.9091 Tf 116.0197 0 Td[(W)]TJ/F15 10.9091 Tf 15.414 0 Td[(in)28(t)1(o)-330(di)1(s)-1(j)1(oin)28(t)-329(s)-1(u)1(bse)-1(ts)-330(\050aggr)1(e)-1(gates)-1(\051,)-330(an)1(d)-329(to)-330(d)1(e)-1(\014)1(ne)-330(the)-330(coarse)-1(-)]TJ -131.4337 -13.5492 Td[(to-\014n)1(e)-254(s)-1(p)1(ac)-1(e)-254(tr)1(ansfer)-253(op)-28(erator)]TJ/F24 10.9091 Tf 144.0312 0 Td[(R)]TJ/F25 7.9701 Tf 8.3674 3.9588 Td[(T)]TJ -0.0842 -7.1916 Td[(C)]TJ/F15 10.9091 Tf 9.8621 3.2328 Td[(b)28(y)-253(app)1(lyi)1(ng)-254(a)-253(suitab)1(le)-254(sm)-1(o)-28(ot)1(her)-254(t)1(o)-254(a)-253(s)-1(impl)1(e)-254(piec)-1(ewise)]TJ -162.1765 -13.5492 Td[(constan)28(t)-333(prol)1(ongation)-332(op)-28(erator)1(,)-334(t)1(o)-334(imp)1(ro)28(v)28(e)-334(the)-333(qual)1(it)28(y)-333(of)-333(the)-334(coarse)-1(-space)-334(c)-1(or)1(rec)-1(ti)1(on.)]TJ 16.9365 -13.5706 Td[(Thr)1(e)-1(e)-334(main)-333(steps)-334(can)-333(b)-27(e)-334(iden)28(ti)1(\014ed)-333(in)-333(th)1(e)-334(s)-1(mo)-28(oth)1(e)-1(d)-333(aggr)1(e)-1(gati)1(on)-333(pr)1(o)-28(c)-1(edu)1(re:)]TJ -ET -1 0 0 1 86.3998 121.5209 cm -0 g 0 G -1 0 0 1 -86.3998 -121.5209 cm -BT -/F15 10.9091 Tf 99.7331 121.5209 Td[(1.)]TJ -ET -1 0 0 1 108.218 121.5209 cm -0 g 0 G -1 0 0 1 -108.218 -121.5209 cm -BT -/F15 10.9091 Tf 113.6726 121.5209 Td[(coars)-1(eni)1(ng)-333(of)-333(the)-333(v)28(e)-1(r)1(te)-1(x)-333(se)-1(t)]TJ/F24 10.9091 Tf 134.7274 0 Td[(W)]TJ/F15 10.9091 Tf 11.8182 0 Td[(,)-333(to)-333(obtain)]TJ/F24 10.9091 Tf 53.9395 0 Td[(W)]TJ/F25 7.9701 Tf 10.303 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 7.0968 1.6887 Td[(;)]TJ -ET -1 0 0 1 86.3998 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -325 0 obj << -/Type /Page -/Contents 326 0 R -/Resources 324 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 258 0 R -/Annots [ 328 0 R 329 0 R 330 0 R 331 0 R 332 0 R ] ->> endobj -328 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [88.4338 369.2582 101.3354 378.2811] -/Subtype /Link -/A << /S /GoTo /D (cite.dd2_96) >> ->> endobj -329 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [152.7285 342.1598 165.6301 351.1827] -/Subtype /Link -/A << /S /GoTo /D (cite.dd2_96) >> ->> endobj -330 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [251.6262 312.9402 259.0733 324.6297] -/Subtype /Link -/A << /S /GoTo /D (figure.1) >> ->> endobj -331 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [469.3364 210.8932 476.7835 219.9161] -/Subtype /Link -/A << /S /GoTo /D (cite.BREZINA_VANEK) >> ->> endobj -332 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [480.8849 210.8932 493.7865 219.9161] -/Subtype /Link -/A << /S /GoTo /D (cite.VANEK_MANDEL_BREZINA) >> ->> endobj -327 0 obj << -/D [325 0 R /XYZ 86.3998 740.0018 null] ->> endobj -54 0 obj << -/D [325 0 R /XYZ 86.3998 257.9228 null] ->> endobj -333 0 obj << -/D [325 0 R /XYZ 86.3998 137.4749 null] ->> endobj -324 0 obj << -/Font << /F15 131 0 R /F43 134 0 R /F20 181 0 R /F24 186 0 R /F28 293 0 R /F22 296 0 R /F25 290 0 R /F30 302 0 R /F27 189 0 R /F19 113 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -337 0 obj << -/Length 12841 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(4)]TJ -ET -1 0 0 1 99.6305 740.0018 cm -0 g 0 G -1 0 0 1 -99.6305 -740.0018 cm -BT -/F43 10.9091 Tf 103.7516 740.0018 Td[(Mul)66(ti-level)-378(Domain)-378(Decomp)1(osition)-378(Ba)22(ck)23(gr)22(oun)-1(d)]TJ/F15 10.9091 Tf 391.3906 0 Td[(13)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -412.4511 -24.9066 cm -0 g 0 G -1 0 0 1 66.6128 -138.7337 cm -0 g 0 G -0 g 0 G -1 0 0 1 5.4546 138.3352 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -268.3164 0.1992 l -S -Q -1 0 0 1 0 -271.2158 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 271.2158 l -S -Q -1 0 0 1 1.5691 259.8584 cm -0 g 0 G -0 g 0 G -1 0 0 1 -167.2367 -703.3393 cm -BT -/F24 9.9626 Tf 172.6912 694.2188 Td[(v)]TJ/F7 6.9738 Tf 4.8291 -1.4944 Td[(1)]TJ/F15 9.9626 Tf 7.2367 1.4944 Td[(=)]TJ/F24 9.9626 Tf 10.5161 0 Td[(v)]TJ/F15 9.9626 Tf 5.1866 0 Td[(;)]TJ/F45 9.9626 Tf -27.7685 -17.6244 Td[(for)]TJ/F24 9.9626 Tf 17.7666 0 Td[(l)]TJ/F15 9.9626 Tf 5.936 0 Td[(=)-278(2)]TJ/F24 9.9626 Tf 15.4974 0 Td[(;)-166(n)-1(l)-20(e)1(v)]TJ/F45 9.9626 Tf 27.2209 0 Td[(do)]TJ/F15 9.9626 Tf -56.4583 -14.7898 Td[(!)-444(tran)1(s)-1(f)1(e)-1(r)]TJ/F24 9.9626 Tf 44.1125 0 Td[(v)]TJ/F10 6.9738 Tf 4.8291 -1.4944 Td[(l)]TJ/F13 6.9738 Tf 2.5599 0 Td[(\000)]TJ/F7 6.9738 Tf 6.2266 0 Td[(1)]TJ/F15 9.9626 Tf 7.7903 1.4944 Td[(to)-333(the)-333(next)-333(c)-1(oarser)-333(le)-1(v)28(el)]TJ/F24 9.9626 Tf -65.5183 -11.9552 Td[(v)]TJ/F10 6.9738 Tf 4.8291 -1.4944 Td[(l)]TJ/F15 9.9626 Tf 5.8253 1.4944 Td[(=)]TJ/F24 9.9626 Tf 10.5161 0 Td[(R)]TJ/F10 6.9738 Tf 7.5645 -1.4944 Td[(l)]TJ/F24 9.9626 Tf 3.058 1.4944 Td[(v)]TJ/F10 6.9738 Tf 4.8291 -1.4944 Td[(l)]TJ/F13 6.9738 Tf 2.5599 0 Td[(\000)]TJ/F7 6.9738 Tf 6.2267 0 Td[(1)]TJ/F45 9.9626 Tf -55.3714 -13.2954 Td[(endfor)]TJ/F15 9.9626 Tf 0 -17.6244 Td[(!)-444(app)1(ly)-333(the)-333(c)-1(oarses)-1(t-lev)28(e)-1(l)-333(correc)-1(ti)1(on)]TJ/F24 9.9626 Tf 0 -15.1773 Td[(y)]TJ/F10 6.9738 Tf 4.8845 -1.4944 Td[(nl)-6(ev)]TJ/F15 9.9626 Tf 18.7654 1.4944 Td[(=)]TJ/F24 9.9626 Tf 10.5161 0 Td[(A)]TJ/F13 6.9738 Tf 7.472 4.2618 Td[(\000)]TJ/F7 6.9738 Tf 6.2267 0 Td[(1)]TJ/F10 6.9738 Tf -6.2267 -7.2671 Td[(nl)-6(ev)]TJ/F24 9.9626 Tf 15.9981 3.0053 Td[(v)]TJ/F10 6.9738 Tf 4.8291 -1.4944 Td[(nl)-6(ev)]TJ/F45 9.9626 Tf -62.4652 -16.13 Td[(for)]TJ/F24 9.9626 Tf 17.7666 0 Td[(l)]TJ/F15 9.9626 Tf 5.936 0 Td[(=)]TJ/F24 9.9626 Tf 10.5161 0 Td[(nl)-20(ev)]TJ/F27 9.9626 Tf 21.1879 0 Td[(\000)]TJ/F15 9.9626 Tf 9.9626 0 Td[(1)]TJ/F24 9.9626 Tf 4.9813 0 Td[(;)]TJ/F15 9.9626 Tf 4.4278 0 Td[(1)]TJ/F24 9.9626 Tf 4.9814 0 Td[(;)]TJ/F27 9.9626 Tf 4.4278 0 Td[(\000)]TJ/F15 9.9626 Tf 7.7487 0 Td[(1)]TJ/F45 9.9626 Tf 8.8003 0 Td[(do)]TJ/F15 9.9626 Tf -90.7739 -14.7898 Td[(!)-444(tran)1(s)-1(f)1(e)-1(r)]TJ/F24 9.9626 Tf 44.1124 0 Td[(y)]TJ/F10 6.9738 Tf 4.8845 -1.4944 Td[(l)]TJ/F7 6.9738 Tf 2.5599 0 Td[(+1)]TJ/F15 9.9626 Tf 13.9062 1.4944 Td[(to)-333(the)-333(next)-333(\014ner)-333(lev)28(e)-1(l)]TJ/F24 9.9626 Tf -65.463 -11.9674 Td[(y)]TJ/F10 6.9738 Tf 4.8845 -1.4944 Td[(l)]TJ/F15 9.9626 Tf 5.8253 1.4944 Td[(=)]TJ/F24 9.9626 Tf 10.5161 0 Td[(R)]TJ/F10 6.9738 Tf 7.6415 3.6153 Td[(T)]TJ -0.077 -6.4368 Td[(l)]TJ/F7 6.9738 Tf 2.5599 0 Td[(+1)]TJ/F24 9.9626 Tf 10.5854 2.8215 Td[(y)]TJ/F10 6.9738 Tf 4.8845 -1.4944 Td[(l)]TJ/F7 6.9738 Tf 2.5598 0 Td[(+1)]TJ/F15 9.9626 Tf 10.5854 1.4944 Td[(;)]TJ -59.9654 -14.855 Td[(!)-444(c)-1(ompu)1(te)-334(th)1(e)-334(res)-1(i)1(du)1(al)-334(at)-333(th)1(e)-334(c)-1(u)1(rr)1(e)-1(n)28(t)-333(lev)28(e)-1(l)]TJ/F24 9.9626 Tf 0 -12.3426 Td[(r)]TJ/F10 6.9738 Tf 4.4947 -1.4944 Td[(l)]TJ/F15 9.9626 Tf 5.8253 1.4944 Td[(=)]TJ/F24 9.9626 Tf 10.5161 0 Td[(v)]TJ/F10 6.9738 Tf 4.8291 -1.4944 Td[(l)]TJ/F27 9.9626 Tf 5.2719 1.4944 Td[(\000)]TJ/F24 9.9626 Tf 9.9626 0 Td[(A)]TJ/F13 6.9738 Tf 7.472 4.2618 Td[(\000)]TJ/F7 6.9738 Tf 6.2267 0 Td[(1)]TJ/F10 6.9738 Tf -6.2267 -7.2671 Td[(l)]TJ/F24 9.9626 Tf 10.696 3.0053 Td[(y)]TJ/F10 6.9738 Tf 4.8845 -1.4944 Td[(l)]TJ/F15 9.9626 Tf 3.058 1.4944 Td[(;)]TJ -67.0102 -14.7898 Td[(!)-444(app)1(ly)-333(the)-333(basic)-334(Sc)28(h)28(w)28(arz)-334(p)1(re)-1(cond)1(ition)1(e)-1(r)-333(to)-333(th)1(e)-334(res)-1(i)1(dual)]TJ/F24 9.9626 Tf 0 -12.3426 Td[(r)]TJ/F10 6.9738 Tf 4.4947 -1.4944 Td[(l)]TJ/F15 9.9626 Tf 5.8253 1.4944 Td[(=)]TJ/F24 9.9626 Tf 10.5161 0 Td[(M)]TJ/F13 6.9738 Tf 10.7513 4.2618 Td[(\000)]TJ/F7 6.9738 Tf 6.2267 0 Td[(1)]TJ/F10 6.9738 Tf -7.3128 -7.2671 Td[(l)]TJ/F24 9.9626 Tf 11.7822 3.0053 Td[(r)]TJ/F10 6.9738 Tf 4.4947 -1.4944 Td[(l)]TJ/F15 9.9626 Tf -46.7782 -13.2954 Td[(!)-444(up)-27(date)]TJ/F24 9.9626 Tf 40.6809 0 Td[(y)]TJ/F10 6.9738 Tf 4.8845 -1.4944 Td[(l)]TJ/F24 9.9626 Tf -45.5654 -10.4608 Td[(y)]TJ/F10 6.9738 Tf 4.8845 -1.4944 Td[(l)]TJ/F15 9.9626 Tf 5.8253 1.4944 Td[(=)]TJ/F24 9.9626 Tf 10.5161 0 Td[(y)]TJ/F10 6.9738 Tf 4.8845 -1.4944 Td[(l)]TJ/F15 9.9626 Tf 5.2719 1.4944 Td[(+)]TJ/F24 9.9626 Tf 9.9626 0 Td[(r)]TJ/F10 6.9738 Tf 4.4947 -1.4944 Td[(l)]TJ/F45 9.9626 Tf -55.8022 -10.4608 Td[(endfor)]TJ/F24 9.9626 Tf 0 -14.7898 Td[(w)]TJ/F15 9.9626 Tf 10.1678 0 Td[(=)]TJ/F24 9.9626 Tf 10.5161 0 Td[(y)]TJ/F7 6.9738 Tf 4.8845 -1.4944 Td[(1)]TJ/F15 9.9626 Tf 4.4694 1.4944 Td[(;)]TJ -ET -1 0 0 1 433.5855 443.4809 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 271.2158 l -S -Q -1 0 0 1 -267.9179 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -268.3164 0.1992 l -S -Q -1 0 0 1 -51.4935 -18.5347 cm -0 g 0 G -1 0 0 1 -114.1741 -424.5477 cm -BT -/F15 10.9091 Tf 114.1741 424.5477 Td[(Figu)1(re)-334(1:)-444(Ap)1(pli)1(c)-1(ation)-332(of)-333(the)-334(m)28(ul)1(ti-le)-1(v)28(el)-333(h)28(yb)1(rid)-333(p)-27(ost-)-1(smo)-28(othed)-333(pr)1(e)-1(cond)1(ition)1(e)-1(r)1(.)]TJ -ET -1 0 0 1 485.4775 424.5477 cm -0 g 0 G -1 0 0 1 -391.8773 -14.0763 cm -0 g 0 G -1 0 0 1 0 -32.1522 cm -0 g 0 G -1 0 0 1 -93.6002 -378.3192 cm -BT -/F15 10.9091 Tf 106.9336 378.3192 Td[(2.)]TJ -ET -1 0 0 1 115.4185 378.3192 cm -0 g 0 G -1 0 0 1 -115.4185 -378.3192 cm -BT -/F15 10.9091 Tf 120.873 378.3192 Td[(construction)-333(of)-332(the)-334(p)1(rolon)1(gator)]TJ/F24 10.9091 Tf 152.5759 0 Td[(R)]TJ/F25 7.9701 Tf 8.3675 3.9588 Td[(T)]TJ -0.0843 -7.1916 Td[(C)]TJ/F15 10.9091 Tf 7.0968 3.2328 Td[(;)]TJ -ET -1 0 0 1 93.6002 353.2676 cm -0 g 0 G -1 0 0 1 -93.6002 -353.2676 cm -BT -/F15 10.9091 Tf 106.9336 353.2676 Td[(3.)]TJ -ET -1 0 0 1 115.4185 353.2676 cm -0 g 0 G -1 0 0 1 -115.4185 -353.2676 cm -BT -/F15 10.9091 Tf 120.873 353.2676 Td[(app)1(lication)-333(of)]TJ/F24 10.9091 Tf 68.788 0 Td[(R)]TJ/F25 7.9701 Tf 8.2831 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 10.7332 1.6887 Td[(and)]TJ/F24 10.9091 Tf 21.2121 0 Td[(R)]TJ/F25 7.9701 Tf 8.3674 3.9588 Td[(T)]TJ -0.0842 -7.1916 Td[(C)]TJ/F15 10.9091 Tf 10.7331 3.2328 Td[(to)-333(bu)1(ild)]TJ/F24 10.9091 Tf 41.2122 0 Td[(A)]TJ/F25 7.9701 Tf 8.1818 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 7.0968 1.6887 Td[(.)]TJ -194.8598 -25.0516 Td[(T)83(o)-426(p)-28(erf)1(orm)-426(the)-427(coarse)-1(n)1(ing)-426(ste)-1(p)1(,)-449(w)27(e)-427(h)1(a)28(v)28(e)-427(impleme)-1(n)28(t)1(e)-1(d)-426(th)1(e)-427(aggregation)-426(al)1(gorith)1(m)]TJ -16.9365 -13.5492 Td[(sk)28(e)-1(tc)28(hed)-389(i)1(n)-388([)]TJ -ET -1 0 0 1 154.5615 314.6668 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -154.5615 -314.6668 cm -BT -/F15 10.9091 Tf 154.5615 314.6668 Td[(4)]TJ -ET -1 0 0 1 160.016 314.6668 cm -0 g 0 G -1 0 0 1 -160.016 -314.6668 cm -BT -/F15 10.9091 Tf 160.016 314.6668 Td[(].)-610(Accordi)1(ng)-388(to)-389([)]TJ -ET -1 0 0 1 242.1465 314.6668 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -242.1465 -314.6668 cm -BT -/F15 10.9091 Tf 242.1465 314.6668 Td[(24)]TJ -ET -1 0 0 1 253.0556 314.6668 cm -0 g 0 G -1 0 0 1 -253.0556 -314.6668 cm -BT -/F15 10.9091 Tf 253.0556 314.6668 Td[(],)-402(a)-388(m)-1(o)-27(di\014)1(c)-1(ati)1(on)-389(of)-388(t)1(his)-389(algor)1(ith)1(m)-389(has)-389(b)-27(e)-1(en)-388(actuall)1(y)]TJ -159.4554 -13.5492 Td[(considered,)-256(in)-237(whic)28(h)-237(e)-1(ac)28(h)-237(aggre)-1(gat)1(e)]TJ/F24 10.9091 Tf 169.0404 0 Td[(N)]TJ/F25 7.9701 Tf 8.7651 -1.6364 Td[(r)]TJ/F15 10.9091 Tf 7.1452 1.6364 Td[(is)-238(made)-237(of)-237(v)28(e)-1(rt)1(ic)-1(es)-238(of)]TJ/F24 10.9091 Tf 99.1645 0 Td[(W)]TJ/F15 10.9091 Tf 14.4087 0 Td[(th)1(at)-238(ar)1(e)]TJ/F20 10.9091 Tf 39.7567 0 Td[(str)51(ongly)-269(c)51(ou)1(ple)51(d)]TJ/F15 10.9091 Tf -338.2806 -13.5492 Td[(to)-333(a)-334(certain)-333(r)1(o)-28(ot)-333(v)28(e)-1(r)1(te)-1(x)]TJ/F24 10.9091 Tf 115.2426 0 Td[(r)]TJ/F27 10.9091 Tf 8.255 0 Td[(2)]TJ/F24 10.9091 Tf 10.303 0 Td[(W)]TJ/F15 10.9091 Tf 11.8182 0 Td[(,)-333(i.e.)]TJ/F24 10.9091 Tf -39.6838 -28.5239 Td[(N)]TJ/F25 7.9701 Tf 8.7651 -1.6364 Td[(r)]TJ/F15 10.9091 Tf 7.585 1.6364 Td[(=)]TJ/F30 10.9091 Tf 11.5151 12.1092 Td[(n)]TJ/F24 10.9091 Tf 7.2728 -12.1092 Td[(s)]TJ/F27 10.9091 Tf 8.1438 0 Td[(2)]TJ/F24 10.9091 Tf 10.303 0 Td[(W)]TJ/F15 10.9091 Tf 14.8485 0 Td[(:)]TJ/F27 10.9091 Tf 6.0605 0 Td[(j)]TJ/F24 10.9091 Tf 3.0303 0 Td[(a)]TJ/F25 7.9701 Tf 5.7664 -1.6364 Td[(r)-30(s)]TJ/F27 10.9091 Tf 8.4707 1.6364 Td[(j)]TJ/F24 10.9091 Tf 6.0606 0 Td[(>)-278(\022)]TJ/F30 10.9091 Tf 16.9393 9.8599 Td[(p)]TJ -ET -1 0 0 1 325.2054 268.9044 cm -q -[]0 d -0 J -0.4364 w -0 0.2182 m -34.5348 0.2182 l -S -Q -1 0 0 1 -325.2054 -268.9044 cm -BT -/F27 10.9091 Tf 325.2054 259.0445 Td[(j)]TJ/F24 10.9091 Tf 3.0303 0 Td[(a)]TJ/F25 7.9701 Tf 5.7664 -1.6364 Td[(r)-30(r)]TJ/F24 10.9091 Tf 8.6114 1.6364 Td[(a)]TJ/F25 7.9701 Tf 5.7664 -1.6364 Td[(ss)]TJ/F27 10.9091 Tf 8.33 1.6364 Td[(j)]TJ/F30 10.9091 Tf 3.0303 12.1091 Td[(o)]TJ/F27 10.9091 Tf 9.6969 -12.1091 Td[([)-222(f)]TJ/F24 10.9091 Tf 15.1515 0 Td[(r)]TJ/F27 10.9091 Tf 5.2248 0 Td[(g)]TJ/F24 10.9091 Tf 7.2727 0 Td[(;)]TJ/F15 10.9091 Tf -303.4859 -29.1301 Td[(for)-340(a)-341(giv)28(en)]TJ/F24 10.9091 Tf 54.5168 0 Td[(\022)]TJ/F27 10.9091 Tf 8.5901 0 Td[(2)]TJ/F15 10.9091 Tf 10.4386 0 Td[([0)]TJ/F24 10.9091 Tf 8.4849 0 Td[(;)]TJ/F15 10.9091 Tf 4.8484 0 Td[(1].)-466(Sin)1(c)-1(e)-341(th)1(is)-341(algorith)1(m)-341(has)-341(a)-341(se)-1(q)1(uen)28(tial)-340(natu)1(re)-1(,)-342(a)]TJ/F20 10.9091 Tf 242.9761 0 Td[(de)51(c)51(oupl)1(e)51(d)]TJ/F15 10.9091 Tf 49.1719 0 Td[(v)28(ers)-1(i)1(on)]TJ -379.0268 -13.5492 Td[(of)-398(it)-399(has)-399(b)-27(e)-1(en)-399(c)28(hose)-1(n)1(,)-415(w)-1(h)1(e)-1(r)1(e)-400(eac)27(h)-398(pro)-27(c)-1(es)-1(sor)]TJ/F24 10.9091 Tf 216.2363 0 Td[(i)]TJ/F15 10.9091 Tf 8.1102 0 Td[(in)1(dep)-28(end)1(e)-1(n)29(tly)-399(ap)1(pli)1(e)-1(s)-399(the)-399(algori)1(thm)-399(to)]TJ -224.3465 -13.5492 Td[(th)1(e)-422(se)-1(t)-420(of)-421(v)28(ertice)-1(s)]TJ/F24 10.9091 Tf 91.547 0 Td[(W)]TJ/F22 7.9701 Tf 11.8182 3.9589 Td[(0)]TJ/F25 7.9701 Tf -1.5152 -7.0144 Td[(i)]TJ/F15 10.9091 Tf 10.8388 3.0555 Td[(ass)-1(ign)1(e)-1(d)-420(to)-421(it)-420(in)-421(t)1(he)-421(ini)1(tial)-421(d)1(ata)-421(di)1(s)-1(tr)1(ibu)1(tion.)-706(T)-1(h)1(is)-421(v)28(e)-1(r)1(s)-1(ion)-420(is)]TJ -112.6888 -13.5492 Td[(em)27(bar)1(rass)-1(in)1(gly)-250(p)1(arallel,)-267(sin)1(c)-1(e)-250(it)-250(do)-28(es)-251(n)1(ot)-250(re)-1(q)1(uir)1(e)-251(an)28(y)-250(d)1(ata)-250(c)-1(omm)27(u)1(nication)1(.)-417(On)-249(the)-250(other)]TJ 0 -13.5492 Td[(han)1(d,)-311(it)-306(ma)27(y)-306(p)1(ro)-28(d)1(uce)-307(non)1(-)-1(u)1(ni)1(form)-306(aggregate)-1(s)-306(near)-306(b)-28(ou)1(nd)1(ary)-306(v)28(e)-1(r)1(tice)-1(s,)-312(i.)1(e)-1(.)-306(n)1(e)-1(ar)-306(v)28(ertice)-1(s)]TJ 0 -13.5492 Td[(adj)1(ac)-1(en)28(t)-403(to)-403(v)28(ertices)-404(in)-402(other)-403(pr)1(o)-28(c)-1(es)-1(sors,)-420(and)-403(i)1(s)-404(strongl)1(y)-403(dep)-28(end)1(e)-1(n)29(t)-403(on)-403(th)1(e)-404(n)28(u)1(m)27(b)-27(e)-1(r)-402(of)]TJ 0 -13.5492 Td[(pr)1(o)-28(ce)-1(ss)-1(or)1(s)-315(and)-313(on)-314(th)1(e)-315(in)1(itial)-313(parti)1(tioni)1(ng)-314(of)-314(th)1(e)-315(matri)1(x)]TJ/F24 10.9091 Tf 263.5655 0 Td[(A)]TJ/F15 10.9091 Tf 8.1818 0 Td[(.)-438(Nev)28(e)-1(r)1(theles)-1(s,)-318(thi)1(s)-315(algor)1(ithm)]TJ -271.7473 -13.5492 Td[(has)-260(b)-27(ee)-1(n)-259(c)27(h)1(os)-1(en)-259(for)-259(the)-260(imp)1(le)-1(men)28(tation)-259(in)-259(MLD)1(2P4,)-274(s)-1(i)1(nce)-261(i)1(t)-260(h)1(as)-260(b)-28(ee)-1(n)-259(sho)28(wn)-260(t)1(o)-260(pr)1(o)-28(du)1(c)-1(e)]TJ 0 -13.5492 Td[(go)-28(o)-28(d)-332(re)-1(sul)1(ts)-334(in)-333(p)1(ractice)-334([)]TJ -ET -1 0 0 1 211.964 121.5209 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -211.964 -121.5209 cm -BT -/F15 10.9091 Tf 211.964 121.5209 Td[(3)]TJ -ET -1 0 0 1 217.4185 121.5209 cm -0 g 0 G -1 0 0 1 -217.4185 -121.5209 cm -BT -/F15 10.9091 Tf 217.4185 121.5209 Td[(,)]TJ -ET -1 0 0 1 224.0852 121.5209 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -224.0852 -121.5209 cm -BT -/F15 10.9091 Tf 224.0852 121.5209 Td[(4)]TJ -ET -1 0 0 1 229.5397 121.5209 cm -0 g 0 G -1 0 0 1 -229.5397 -121.5209 cm -BT -/F15 10.9091 Tf 229.5397 121.5209 Td[(,)]TJ -ET -1 0 0 1 236.2064 121.5209 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -236.2064 -121.5209 cm -BT -/F15 10.9091 Tf 236.2064 121.5209 Td[(23)]TJ -ET -1 0 0 1 247.1155 121.5209 cm -0 g 0 G -1 0 0 1 -247.1155 -121.5209 cm -BT -/F15 10.9091 Tf 247.1155 121.5209 Td[(].)]TJ -ET -1 0 0 1 93.6002 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -336 0 obj << -/Type /Page -/Contents 337 0 R -/Resources 335 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 356 0 R -/Annots [ 339 0 R 351 0 R 352 0 R 353 0 R 354 0 R 355 0 R ] ->> endobj -339 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 739.0056 100.6267 748.4526] -/Subtype /Link -/A << /S /GoTo /D (section.4) >> ->> endobj -351 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [153.5652 313.6705 161.0123 322.6933] -/Subtype /Link -/A << /S /GoTo /D (cite.apnum_07) >> ->> endobj -352 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [241.1502 313.6705 254.0519 322.6933] -/Subtype /Link -/A << /S /GoTo /D (cite.VANEK_MANDEL_BREZINA) >> ->> endobj -353 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [210.9677 120.5246 218.4148 129.5474] -/Subtype /Link -/A << /S /GoTo /D (cite.aaecc_07) >> ->> endobj -354 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [223.0889 120.5246 230.536 129.5474] -/Subtype /Link -/A << /S /GoTo /D (cite.apnum_07) >> ->> endobj -355 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [235.2101 120.5246 248.1118 129.5474] -/Subtype /Link -/A << /S /GoTo /D (cite.TUMINARO_TONG) >> ->> endobj -338 0 obj << -/D [336 0 R /XYZ 93.6002 740.0018 null] ->> endobj -334 0 obj << -/D [336 0 R /XYZ 161.9317 438.097 null] ->> endobj -349 0 obj << -/D [336 0 R /XYZ 93.6002 389.2781 null] ->> endobj -350 0 obj << -/D [336 0 R /XYZ 93.6002 369.3352 null] ->> endobj -335 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F24 186 0 R /F7 342 0 R /F45 147 0 R /F10 345 0 R /F13 348 0 R /F27 189 0 R /F25 290 0 R /F20 181 0 R /F30 302 0 R /F22 296 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -359 0 obj << -/Length 5350 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(14)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -498.8509 -740.0018 cm -BT -/F15 10.9091 Tf 103.3363 704.1363 Td[(The)-277(pr)1(olongat)1(or)]TJ/F24 10.9091 Tf 80.0384 0 Td[(P)]TJ/F25 7.9701 Tf 7.0037 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 10.1271 1.6887 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(R)]TJ/F25 7.9701 Tf 8.3674 3.9588 Td[(T)]TJ -0.0842 -7.1916 Td[(C)]TJ/F15 10.9091 Tf 10.1159 3.2328 Td[(is)-277(bu)1(ilt)-276(s)-1(tar)1(ting)-276(from)-277(a)]TJ/F20 10.9091 Tf 109.5201 0 Td[(tent)-1(ative)-305(pr)51(olongator)]TJ/F24 10.9091 Tf 102.5945 0 Td[(P)]TJ/F27 10.9091 Tf 11.5492 0 Td[(2)-277(<)]TJ/F25 7.9701 Tf 18.1818 3.9588 Td[(n)]TJ/F28 7.9701 Tf 5.1382 0 Td[(\002)]TJ/F25 7.9701 Tf 6.5865 0 Td[(n)]TJ/F26 5.9776 Tf 5.1382 -1.3394 Td[(C)]TJ/F15 10.9091 Tf 6.6924 -2.6194 Td[(,)]TJ -409.4208 -13.5492 Td[(de\014n)1(e)-1(d)-332(as)]TJ/F24 10.9091 Tf 114.8185 -17.8186 Td[(P)]TJ/F15 10.9091 Tf 11.5491 0 Td[(=)-278(\050)]TJ/F24 10.9091 Tf 15.7576 0 Td[(p)]TJ/F25 7.9701 Tf 5.4886 -1.6364 Td[(ij)]TJ/F15 10.9091 Tf 7.2653 1.6364 Td[(\051)]TJ/F24 10.9091 Tf 4.2425 0 Td[(;)-1166(p)]TJ/F25 7.9701 Tf 21.2462 -1.6364 Td[(ij)]TJ/F15 10.9091 Tf 10.2955 1.6364 Td[(=)]TJ/F30 10.9091 Tf 11.5151 15.3819 Td[(\032)]TJ/F15 10.9091 Tf 13.1632 -9.1358 Td[(1)-1913(if)]TJ/F24 10.9091 Tf 35.7202 0 Td[(i)]TJ/F27 10.9091 Tf 6.7886 0 Td[(2)]TJ/F24 10.9091 Tf 10.3029 0 Td[(V)]TJ/F25 7.9701 Tf 8.7879 5.3073 Td[(j)]TJ -2.4242 -8.7414 Td[(C)]TJ/F15 10.9091 Tf -59.1754 -10.1151 Td[(0)-1913(otherwise)]TJ/F24 10.9091 Tf 79.2607 7.3031 Td[(:)]TJ -ET -1 0 0 1 484.9115 672.7685 cm -0 g 0 G -1 0 0 1 -484.9115 -672.7685 cm -BT -/F15 10.9091 Tf 484.9115 672.7685 Td[(\0502\051)]TJ -ET -1 0 0 1 498.8509 672.7685 cm -0 g 0 G -1 0 0 1 -498.8509 -672.7685 cm -BT -/F24 10.9091 Tf 86.3998 645.1545 Td[(P)]TJ/F25 7.9701 Tf 7.0038 -1.6886 Td[(C)]TJ/F15 10.9091 Tf 10.7331 1.6886 Td[(is)-334(ob)1(tain)1(e)-1(d)-333(b)29(y)-334(ap)1(pl)1(ying)-333(to)]TJ/F24 10.9091 Tf 128.8487 0 Td[(P)]TJ/F15 10.9091 Tf 12.1553 0 Td[(a)-333(s)-1(mo)-28(oth)1(e)-1(r)]TJ/F24 10.9091 Tf 56.7576 0 Td[(S)]TJ/F27 10.9091 Tf 10.3484 0 Td[(2)-277(<)]TJ/F25 7.9701 Tf 18.1818 3.9588 Td[(n)]TJ/F28 7.9701 Tf 5.1382 0 Td[(\002)]TJ/F25 7.9701 Tf 6.5865 0 Td[(n)]TJ/F15 10.9091 Tf 5.6363 -3.9588 Td[(:)]TJ/F24 10.9091 Tf -79.2239 -24.5081 Td[(P)]TJ/F25 7.9701 Tf 7.0038 -1.6887 Td[(C)]TJ/F15 10.9091 Tf 10.127 1.6887 Td[(=)]TJ/F24 10.9091 Tf 11.5152 0 Td[(S)-58(P)-28(;)]TJ -ET -1 0 0 1 484.9115 620.6464 cm -0 g 0 G -1 0 0 1 -484.9115 -620.6464 cm -BT -/F15 10.9091 Tf 484.9115 620.6464 Td[(\0503\051)]TJ -ET -1 0 0 1 498.8509 620.6464 cm -0 g 0 G -1 0 0 1 -498.8509 -620.6464 cm -BT -/F15 10.9091 Tf 86.3998 596.1383 Td[(in)-303(or)1(der)-303(to)-303(rem)-1(o)28(v)28(e)-303(os)-1(cillator)1(y)-303(c)-1(omp)-27(onen)28(ts)-304(f)1(rom)-303(the)-303(range)-303(of)-303(th)1(e)-304(pr)1(olongat)1(or)-303(and)-303(h)1(e)-1(n)1(c)-1(e)]TJ 0 -13.5492 Td[(to)-433(impro)28(v)28(e)-434(t)1(he)-434(con)28(v)28(ergence)-434(pr)1(op)-28(erties)-434(of)-433(th)1(e)-434(m)28(ulti)1(-)-1(lev)28(el)-434(S)1(c)27(h)28(w)28(arz)-433(m)-1(etho)-27(d)-433([)]TJ -ET -1 0 0 1 452.3671 582.5891 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -452.3671 -582.5891 cm -BT -/F15 10.9091 Tf 452.3671 582.5891 Td[(1)]TJ -ET -1 0 0 1 457.8216 582.5891 cm -0 g 0 G -1 0 0 1 -457.8216 -582.5891 cm -BT -/F15 10.9091 Tf 457.8216 582.5891 Td[(,)]TJ -ET -1 0 0 1 465.5789 582.5891 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -465.5789 -582.5891 cm -BT -/F15 10.9091 Tf 465.5789 582.5891 Td[(22)]TJ -ET -1 0 0 1 476.488 582.5891 cm -0 g 0 G -1 0 0 1 -476.488 -582.5891 cm -BT -/F15 10.9091 Tf 476.488 582.5891 Td[(].)-744(A)]TJ -390.0882 -13.5492 Td[(sim)-1(p)1(le)-334(c)28(hoice)-334(f)1(or)]TJ/F24 10.9091 Tf 83.1212 0 Td[(S)]TJ/F15 10.9091 Tf 10.9546 0 Td[(is)-334(t)1(he)-334(d)1(am)-1(p)-27(ed)-333(Jac)-1(ob)1(i)-333(s)-1(mo)-28(oth)1(e)-1(r)1(:)]TJ/F24 10.9091 Tf 71.2927 -24.5081 Td[(S)]TJ/F15 10.9091 Tf 10.3484 0 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(I)]TJ/F27 10.9091 Tf 8.0757 0 Td[(\000)]TJ/F24 10.9091 Tf 10.9091 0 Td[(!)-36(D)]TJ/F28 7.9701 Tf 16.5167 4.5043 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F24 10.9091 Tf 4.7323 -4.5043 Td[(A;)]TJ -ET -1 0 0 1 484.9115 544.5318 cm -0 g 0 G -1 0 0 1 -484.9115 -544.5318 cm -BT -/F15 10.9091 Tf 484.9115 544.5318 Td[(\0504\051)]TJ -ET -1 0 0 1 498.8509 544.5318 cm -0 g 0 G -1 0 0 1 -498.8509 -544.5318 cm -BT -/F15 10.9091 Tf 86.3998 520.0237 Td[(where)-305(the)-305(v)55(al)1(ue)-305(of)]TJ/F24 10.9091 Tf 89.7069 0 Td[(!)]TJ/F15 10.9091 Tf 10.5101 0 Td[(can)-305(b)-27(e)-306(c)27(h)1(os)-1(en)-305(u)1(s)-1(i)1(ng)-305(s)-1(ome)-305(e)-1(stimate)-306(of)-304(the)-305(s)-1(p)-27(e)-1(ctral)-304(radi)1(us)-306(of)]TJ/F24 10.9091 Tf 283.3986 0 Td[(D)]TJ/F28 7.9701 Tf 9.3349 3.9588 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F24 10.9091 Tf 4.7323 -3.9588 Td[(A)]TJ/F15 10.9091 Tf -404.2693 -13.5492 Td[([)]TJ -ET -1 0 0 1 89.4301 506.4745 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -89.4301 -506.4745 cm -BT -/F15 10.9091 Tf 89.4301 506.4745 Td[(1)]TJ -ET -1 0 0 1 94.8846 506.4745 cm -0 g 0 G -1 0 0 1 -94.8846 -506.4745 cm -BT -/F15 10.9091 Tf 94.8846 506.4745 Td[(].)]TJ -ET -1 0 0 1 86.3998 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -358 0 obj << -/Type /Page -/Contents 359 0 R -/Resources 357 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 356 0 R -/Annots [ 363 0 R 364 0 R 366 0 R ] ->> endobj -363 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [451.3708 581.5929 458.8179 590.6157] -/Subtype /Link -/A << /S /GoTo /D (cite.BREZINA_VANEK) >> ->> endobj -364 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [464.5827 581.5929 477.4843 590.6157] -/Subtype /Link -/A << /S /GoTo /D (cite.StubenGMD69_99) >> ->> endobj -366 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [88.4338 505.4783 95.8809 514.5011] -/Subtype /Link -/A << /S /GoTo /D (cite.BREZINA_VANEK) >> ->> endobj -360 0 obj << -/D [358 0 R /XYZ 86.3998 740.0018 null] ->> endobj -361 0 obj << -/D [358 0 R /XYZ 201.2182 686.3177 null] ->> endobj -362 0 obj << -/D [358 0 R /XYZ 268.5656 634.1956 null] ->> endobj -365 0 obj << -/D [358 0 R /XYZ 251.7683 558.081 null] ->> endobj -357 0 obj << -/Font << /F15 131 0 R /F43 134 0 R /F24 186 0 R /F25 290 0 R /F20 181 0 R /F27 189 0 R /F28 293 0 R /F26 299 0 R /F30 302 0 R /F22 296 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -369 0 obj << -/Length 13173 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(5)]TJ -ET -1 0 0 1 99.6305 740.0018 cm -0 g 0 G -1 0 0 1 -99.6305 -740.0018 cm -BT -/F43 10.9091 Tf 103.7516 740.0018 Td[(Getti)-1(ng)-378(St)67(a)-1(r)67(ted)]TJ/F15 10.9091 Tf 391.3906 0 Td[(15)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -506.0513 -740.0018 cm -BT -/F19 14.3462 Tf 93.6002 704.1363 Td[(5)-1125(G)-1(et)-1(ti)-1(ng)-375(St)-1(a)1(r)-1(te)-1(d)]TJ/F15 10.9091 Tf 0 -24.3522 Td[(W)84(e)-442(des)-1(crib)-27(e)-442(th)1(e)-442(basics)-442(for)-441(b)1(uil)1(din)1(g)-442(an)1(d)-441(app)1(lyin)1(g)-442(M)1(LD2P4)-441(one-le)-1(v)28(el)-441(and)-441(m)28(ult)1(i-)-1(l)1(e)-1(v)28(el)]TJ 0 -13.5492 Td[(Sc)28(h)28(w)28(arz)-314(p)1(rec)-1(on)1(diti)1(oners)-314(with)-312(the)-313(Kry)1(lo)28(v)-313(s)-1(olv)28(ers)-313(inclu)1(ded)-313(in)-313(P)1(SBLAS)-313([)]TJ -ET -1 0 0 1 430.5874 666.2349 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -430.5874 -666.2349 cm -BT -/F15 10.9091 Tf 430.5874 666.2349 Td[(14)]TJ -ET -1 0 0 1 441.4965 666.2349 cm -0 g 0 G -1 0 0 1 -441.4965 -666.2349 cm -BT -/F15 10.9091 Tf 441.4965 666.2349 Td[(].)-437(The)-314(f)1(ollo)28(w-)]TJ -347.8963 -13.5492 Td[(in)1(g)-334(steps)-334(ar)1(e)-334(requi)1(re)-1(d)1(:)]TJ -ET -1 0 0 1 93.6002 631.6256 cm -0 g 0 G -1 0 0 1 -93.6002 -631.6256 cm -BT -/F15 10.9091 Tf 106.9336 631.6256 Td[(1.)]TJ -ET -1 0 0 1 115.4185 631.6256 cm -0 g 0 G -1 0 0 1 -115.4185 -631.6256 cm -BT -/F20 10.9091 Tf 120.873 631.6256 Td[(De)51(cl)1(a)-1(r)52(e)-371(the)-371(pr)52(e)51(c)51(on)-1(di)1(t)-1(i)1(on)-1(er)-370(data)-371(structu)1(r)51(e)]TJ/F15 10.9091 Tf 195.4474 0 Td[(.)-486(It)-348(is)-347(a)-348(d)1(e)-1(r)1(iv)28(e)-1(d)-347(d)1(ata)-347(t)27(y)1(p)-28(e,)]TJ/F46 10.9091 Tf 131.8118 0 Td[(mld_)]TJ/F20 10.9091 Tf 22.9088 0 Td[(x)]TJ/F46 10.9091 Tf 6.3742 0 Td[(prec_)]TJ -356.5422 -13.5492 Td[(type)]TJ/F15 10.9091 Tf 22.9088 0 Td[(,)-321(w)-1(h)1(e)-1(r)1(e)]TJ/F20 10.9091 Tf 37.9221 0 Td[(x)]TJ/F15 10.9091 Tf 9.8494 0 Td[(ma)27(y)-318(b)-27(e)]TJ/F46 10.9091 Tf 38.1627 0 Td[(s)]TJ/F15 10.9091 Tf 5.7272 0 Td[(,)]TJ/F46 10.9091 Tf 6.5378 0 Td[(d)]TJ/F15 10.9091 Tf 5.7272 0 Td[(,)]TJ/F46 10.9091 Tf 6.5377 0 Td[(c)]TJ/F15 10.9091 Tf 9.2025 0 Td[(or)]TJ/F46 10.9091 Tf 13.2025 0 Td[(z)]TJ/F15 10.9091 Tf 5.7272 0 Td[(,)-321(ac)-1(cord)1(ing)-318(to)-319(th)1(e)-319(basic)-319(dat)1(a)-319(t)28(yp)-27(e)-319(of)-318(the)-319(spar)1(s)-1(e)]TJ -161.5051 -13.5492 Td[(matrix)-372(\050)]TJ/F46 10.9091 Tf 40.1533 0 Td[(s)]TJ/F15 10.9091 Tf 9.7896 0 Td[(=)-372(real)-372(s)-1(in)1(gle)-373(p)1(rec)-1(ision)1(;)]TJ/F46 10.9091 Tf 114.2202 0 Td[(d)]TJ/F15 10.9091 Tf 9.7896 0 Td[(=)-372(real)-372(doub)1(le)-373(p)1(rec)-1(ision)1(;)]TJ/F46 10.9091 Tf 119.0081 0 Td[(c)]TJ/F15 10.9091 Tf 9.7896 0 Td[(=)-372(c)-1(omp)1(le)-1(x)-372(singl)1(e)]TJ -302.7504 -13.5492 Td[(pr)1(e)-1(cision;)]TJ/F46 10.9091 Tf 48.8074 0 Td[(z)]TJ/F15 10.9091 Tf 9.5179 0 Td[(=)-347(c)-1(ompl)1(e)-1(x)-347(dou)1(ble)-347(prec)-1(i)1(s)-1(ion)1(\051.)-487(Th)1(is)-348(data)-347(s)-1(t)1(ructur)1(e)-348(is)-348(acc)-1(es)-1(se)-1(d)-347(b)29(y)-348(th)1(e)]TJ -58.3253 -13.5492 Td[(user)-333(only)-333(th)1(rough)-332(the)-334(M)1(LD2P4)-333(rou)1(tines,)-334(f)1(ollo)28(win)1(g)-334(an)-333(ob)-55(j)1(e)-1(ct-orien)28(ted)-333(app)1(roac)27(h)1(.)]TJ -ET -1 0 0 1 93.6002 555.4954 cm -0 g 0 G -1 0 0 1 -93.6002 -555.4954 cm -BT -/F15 10.9091 Tf 106.9336 555.4954 Td[(2.)]TJ -ET -1 0 0 1 115.4185 555.4954 cm -0 g 0 G -1 0 0 1 -115.4185 -555.4954 cm -BT -/F20 10.9091 Tf 120.873 555.4954 Td[(A)25(l)-50(lo)51(c)51(ate)-364(an)-1(d)-364(ini)1(t)-1(i)1(aliz)1(e)-365(the)-364(pr)51(e)51(c)52(o)-1(nditi)1(o)-1(ner)-364(data)-364(structur)52(e,)-365(a)-1(c)52(c)51(or)51(ding)-364(to)-364(a)-365(pr)52(e)51(c)51(ond)-1(i)1(-)]TJ 0 -13.5492 Td[(tioner)-376(typ)51(e)-375(cho)-1(s)1(en)-377(by)-375(the)-376(user)]TJ/F15 10.9091 Tf 144.0045 0 Td[(.)-503(This)-353(is)-354(p)-27(erfor)1(m)-1(ed)-353(b)29(y)-353(the)-353(rou)1(tin)1(e)]TJ/F46 10.9091 Tf 169.417 0 Td[(mld_precinit)]TJ/F15 10.9091 Tf 68.7265 0 Td[(,)]TJ -382.148 -13.5492 Td[(whic)28(h)-406(al)1(s)-1(o)-405(s)-1(ets)-406(defaul)1(ts)-406(for)-405(e)-1(ac)28(h)-406(p)1(rec)-1(on)1(diti)1(oner)-406(t)28(yp)-27(e)-406(s)-1(elec)-1(ted)-405(b)28(y)-406(th)1(e)-406(use)-1(r)1(.)-662(The)]TJ 0 -13.5492 Td[(defau)1(lts)-404(ass)-1(o)-28(ciated)-404(to)-403(e)-1(ac)28(h)-404(p)1(re)-1(cond)1(ition)1(e)-1(r)-403(t)28(yp)-27(e)-405(ar)1(e)-404(giv)28(e)-1(n)-403(in)-403(T)83(abl)1(e)]TJ -ET -1 0 0 1 445.5028 514.8478 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -445.5028 -514.8478 cm -BT -/F15 10.9091 Tf 445.5028 514.8478 Td[(1)]TJ -ET -1 0 0 1 450.9574 514.8478 cm -0 g 0 G -1 0 0 1 -450.9574 -514.8478 cm -BT -/F15 10.9091 Tf 450.9574 514.8478 Td[(,)-421(where)-404(the)]TJ -330.0844 -13.5492 Td[(strin)1(gs)-306(use)-1(d)-304(b)28(y)]TJ/F46 10.9091 Tf 74.4455 0 Td[(mld_precinit)]TJ/F15 10.9091 Tf 72.0568 0 Td[(to)-305(iden)28(ti)1(fy)-305(th)1(e)-306(pr)1(e)-1(cond)1(ition)1(e)-1(r)-305(t)28(yp)-27(es)-306(are)-306(al)1(s)-1(o)-305(giv)28(en.)]TJ -146.5023 -13.5492 Td[(Note)-353(th)1(at)-352(thes)-1(e)-352(s)-1(tr)1(ings)-353(ar)1(e)-353(v)56(alid)-352(al)1(s)-1(o)-352(if)-352(u)1(pp)-27(e)-1(r)1(c)-1(ase)-353(letters)-353(are)-352(s)-1(u)1(bstitu)1(te)-1(d)-352(b)29(y)-353(cor-)]TJ 0 -13.5492 Td[(res)-1(p)-27(on)1(din)1(g)-334(l)1(o)27(w)28(e)-1(r)1(c)-1(ase)-334(on)1(e)-1(s.)]TJ -ET -1 0 0 1 93.6002 452.2668 cm -0 g 0 G -1 0 0 1 -93.6002 -452.2668 cm -BT -/F15 10.9091 Tf 106.9336 452.2668 Td[(3.)]TJ -ET -1 0 0 1 115.4185 452.2668 cm -0 g 0 G -1 0 0 1 -115.4185 -452.2668 cm -BT -/F20 10.9091 Tf 120.873 452.2668 Td[(Mo)51(di)1(fy)-340(the)-341(sel)1(e)51(cte)51(d)-341(pr)51(e)52(c)51(on)-1(di)1(t)-1(i)1(on)-1(er)-340(typ)51(e,)-343(by)-340(pr)51(op)51(erl)1(y)-340(setting)-341(pr)51(e)52(c)51(on)-1(di)1(t)-1(i)1(on)-1(er)-340(p)51(ar)52(am-)]TJ 0 -13.5492 Td[(eters.)]TJ/F15 10.9091 Tf 30.6685 0 Td[(This)-266(i)1(s)-266(p)-28(erf)1(orme)-1(d)-265(b)28(y)-265(th)1(e)-266(routi)1(ne)]TJ/F46 10.9091 Tf 155.1693 0 Td[(mld_precset)]TJ/F15 10.9091 Tf 62.9993 0 Td[(.)-422(Th)1(is)-266(rou)1(tine)-266(m)28(ust)-266(b)-27(e)-266(called)]TJ -248.8371 -13.5492 Td[(onl)1(y)-365(i)1(f)-364(the)-365(u)1(s)-1(er)-364(w)27(an)28(ts)-365(t)1(o)-365(mo)-28(di)1(fy)-364(the)-365(d)1(e)-1(f)1(aul)1(t)-365(v)56(alu)1(e)-1(s)-365(of)-364(th)1(e)-365(paramete)-1(r)1(s)-365(as)-1(so)-28(ciated)]TJ 0 -13.5492 Td[(to)-468(t)1(he)-468(se)-1(lec)-1(t)1(e)-1(d)-467(pr)1(e)-1(cond)1(ition)1(e)-1(r)-467(t)28(yp)-27(e)-1(,)-501(to)-467(obtai)1(n)-468(a)-467(v)56(arian)28(t)-467(of)-467(the)-468(p)1(re)-1(cond)1(ition)1(e)-1(r)1(.)]TJ 0 -13.5492 Td[(Ex)1(am)-1(p)1(les)-396(of)-394(u)1(s)-1(e)-395(of)]TJ/F46 10.9091 Tf 95.9773 0 Td[(mld_precset)]TJ/F15 10.9091 Tf 67.3042 0 Td[(are)-395(giv)28(en)-394(in)-394(Sec)-1(t)1(ion)]TJ -ET -1 0 0 1 384.4348 398.07 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -384.4348 -398.07 cm -BT -/F15 10.9091 Tf 384.4348 398.07 Td[(5.1)]TJ -ET -1 0 0 1 398.3742 398.07 cm -0 g 0 G -1 0 0 1 -398.3742 -398.07 cm -BT -/F15 10.9091 Tf 398.3742 398.07 Td[(;)-425(a)-395(complete)-395(list)-395(of)-394(all)]TJ -277.5012 -13.5492 Td[(th)1(e)-304(p)1(rec)-1(on)1(diti)1(oner)-303(p)1(arame)-1(ters)-303(an)1(d)-303(th)1(e)-1(i)1(r)-303(all)1(o)27(w)28(e)-1(d)-302(an)1(d)-303(d)1(e)-1(f)1(ault)-302(v)56(alues)-303(is)-303(pro)28(vi)1(ded)-303(i)1(n)]TJ 0 -13.5492 Td[(Section)]TJ -ET -1 0 0 1 159.0549 370.9716 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -159.0549 -370.9716 cm -BT -/F15 10.9091 Tf 159.0549 370.9716 Td[(6)]TJ -ET -1 0 0 1 164.5094 370.9716 cm -0 g 0 G -1 0 0 1 -164.5094 -370.9716 cm -BT -/F15 10.9091 Tf 164.5094 370.9716 Td[(,)-333(T)83(abl)1(e)-1(s)]TJ -ET -1 0 0 1 205.4791 370.9716 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -205.4791 -370.9716 cm -BT -/F15 10.9091 Tf 205.4791 370.9716 Td[(2)]TJ -ET -1 0 0 1 210.9337 370.9716 cm -0 g 0 G -1 0 0 1 -210.9337 -370.9716 cm -BT -/F15 10.9091 Tf 210.9337 370.9716 Td[(-)]TJ -ET -1 0 0 1 214.57 370.9716 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -214.57 -370.9716 cm -BT -/F15 10.9091 Tf 214.57 370.9716 Td[(5)]TJ -ET -1 0 0 1 220.0246 370.9716 cm -0 g 0 G -1 0 0 1 -220.0246 -370.9716 cm -BT -/F15 10.9091 Tf 220.0246 370.9716 Td[(.)]TJ -ET -1 0 0 1 93.6002 349.0382 cm -0 g 0 G -1 0 0 1 -93.6002 -349.0382 cm -BT -/F15 10.9091 Tf 106.9336 349.0382 Td[(4.)]TJ -ET -1 0 0 1 115.4185 349.0382 cm -0 g 0 G -1 0 0 1 -115.4185 -349.0382 cm -BT -/F20 10.9091 Tf 120.873 349.0382 Td[(Bui)1(ld)-457(the)-457(pr)51(e)51(c)51(onditioner)-457(f)1(or)-457(a)-457(given)-457(matrix.)]TJ/F15 10.9091 Tf 223.3234 0 Td[(This)-441(is)-442(p)-27(erfor)1(m)-1(ed)-441(b)28(y)-441(th)1(e)-442(r)1(outin)1(e)]TJ/F46 10.9091 Tf -223.3234 -13.5492 Td[(mld_precbld)]TJ/F15 10.9091 Tf 62.9993 0 Td[(.)]TJ -ET -1 0 0 1 93.6002 313.5556 cm -0 g 0 G -1 0 0 1 -93.6002 -313.5556 cm -BT -/F15 10.9091 Tf 106.9336 313.5556 Td[(5.)]TJ -ET -1 0 0 1 115.4185 313.5556 cm -0 g 0 G -1 0 0 1 -115.4185 -313.5556 cm -BT -/F20 10.9091 Tf 120.873 313.5556 Td[(App)-1(l)1(y)-281(th)-1(e)-281(pr)51(e)51(c)51(onditioner)-281(at)-282(e)51(ach)-282(iter)52(at)-1(i)1(on)-282(of)-282(a)-281(Kryl)1(ov)-282(sol)1(ver.)]TJ/F15 10.9091 Tf 288.3113 0 Td[(This)-251(i)1(s)-251(p)-28(erf)1(orme)-1(d)-250(b)28(y)]TJ -288.3113 -13.5492 Td[(th)1(e)-341(rou)1(tine)]TJ/F46 10.9091 Tf 56.5445 0 Td[(mld_precaply)]TJ/F15 10.9091 Tf 68.7265 0 Td[(.)-465(Wh)1(e)-1(n)-339(using)-340(th)1(e)-341(PS)1(B)-1(LAS)-339(Kryl)1(o)27(v)-340(solv)28(ers,)-342(thi)1(s)-341(s)-1(t)1(e)-1(p)-340(i)1(s)]TJ -125.271 -13.5492 Td[(com)-1(p)1(le)-1(t)1(e)-1(ly)-301(tran)1(s)-1(p)1(aren)28(t)-302(to)-301(the)-302(u)1(s)-1(er,)-308(sin)1(c)-1(e)]TJ/F46 10.9091 Tf 196.4514 0 Td[(mld_precaply)]TJ/F15 10.9091 Tf 72.0175 0 Td[(is)-302(called)-302(b)29(y)-302(th)1(e)-302(PS)1(B)-1(LAS)]TJ -268.4689 -13.5492 Td[(rou)1(tin)1(e)-334(impleme)-1(n)28(ti)1(ng)-333(the)-333(Kryl)1(o)27(v)-333(solv)28(er)-333(\050)]TJ/F46 10.9091 Tf 195.9093 0 Td[(psb_krylov)]TJ/F15 10.9091 Tf 57.2721 0 Td[(\051.)]TJ -ET -1 0 0 1 93.6002 250.9746 cm -0 g 0 G -1 0 0 1 -93.6002 -250.9746 cm -BT -/F15 10.9091 Tf 106.9336 250.9746 Td[(6.)]TJ -ET -1 0 0 1 115.4185 250.9746 cm -0 g 0 G -1 0 0 1 -115.4185 -250.9746 cm -BT -/F20 10.9091 Tf 120.873 250.9746 Td[(F)77(r)51(e)51(e)-459(the)-459(pr)51(e)51(c)52(o)-1(nditi)1(o)-1(ner)-459(data)-459(structur)52(e)]TJ/F15 10.9091 Tf 183.9714 0 Td[(.)-775(Th)1(is)-444(is)-444(p)-27(e)-1(r)1(for)1(m)-1(ed)-443(b)28(y)-443(the)-444(r)1(outin)1(e)]TJ/F46 10.9091 Tf 178.2981 0 Td[(mld_)]TJ -362.2695 -13.5492 Td[(precfree)]TJ/F15 10.9091 Tf 45.8177 0 Td[(.)-501(T)-1(h)1(is)-353(step)-352(is)-353(com)-1(p)1(lem)-1(en)28(tary)-352(to)-352(ste)-1(p)-352(1)-352(and)-352(shou)1(ld)-352(b)-27(e)-353(p)-27(e)-1(r)1(formed)-352(w)-1(h)1(e)-1(n)]TJ -45.8177 -13.5492 Td[(th)1(e)-334(pr)1(e)-1(cond)1(ition)1(e)-1(r)-333(is)-333(no)-333(m)-1(or)1(e)-334(use)-1(d)1(.)]TJ -27.2728 -21.0602 Td[(A)-384(detail)1(e)-1(d)-384(d)1(e)-1(scrip)1(tion)-384(of)-383(the)-384(ab)-28(o)28(v)28(e)-384(rout)1(ines)-385(i)1(s)-385(giv)28(en)-384(in)-383(Sec)-1(ti)1(on)]TJ -ET -1 0 0 1 402.9592 202.8161 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -402.9592 -202.8161 cm -BT -/F15 10.9091 Tf 402.9592 202.8161 Td[(6)]TJ -ET -1 0 0 1 408.4137 202.8161 cm -0 g 0 G -1 0 0 1 -408.4137 -202.8161 cm -BT -/F15 10.9091 Tf 408.4137 202.8161 Td[(.)-596(Exampl)1(e)-1(s)-384(s)-1(h)1(o)27(win)1(g)]TJ -314.8135 -13.5492 Td[(th)1(e)-334(basic)-334(u)1(s)-1(e)-334(of)-332(MLD2P4)-333(are)-333(rep)-28(or)1(te)-1(d)-333(i)1(n)-333(Sec)-1(ti)1(on)]TJ -ET -1 0 0 1 331.2368 189.2669 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -331.2368 -189.2669 cm -BT -/F15 10.9091 Tf 331.2368 189.2669 Td[(5.1)]TJ -ET -1 0 0 1 345.1762 189.2669 cm -0 g 0 G -1 0 0 1 -345.1762 -189.2669 cm -BT -/F15 10.9091 Tf 345.1762 189.2669 Td[(.)]TJ -234.6395 -13.5492 Td[(Note)-422(th)1(at)-422(th)1(e)-422(F)84(ortran)-421(95)-421(m)-1(o)-27(du)1(le)]TJ/F46 10.9091 Tf 167.1941 0 Td[(mld_prec_mod)]TJ/F15 10.9091 Tf 68.7265 0 Td[(,)-443(c)-1(on)28(t)1(ainin)1(g)-422(t)1(he)-422(d)1(e)-1(\014)1(niti)1(on)-422(of)-421(t)1(he)]TJ -252.8571 -13.5492 Td[(pr)1(e)-1(cond)1(ition)1(e)-1(r)-350(data)-351(t)28(yp)-27(e)-351(and)-350(the)-351(in)28(terf)1(ac)-1(es)-351(to)-351(the)-351(rou)1(tin)1(e)-1(s)-351(of)-351(M)1(LD2P4,)-355(m)27(u)1(s)-1(t)-350(b)-28(e)-351(used)]TJ 0 -13.5492 Td[(in)-245(an)29(y)-245(progr)1(am)-246(callin)1(g)-245(s)-1(u)1(c)27(h)-245(rou)1(tin)1(e)-1(s.)-415(The)-246(mo)-28(d)1(ules)]TJ/F46 10.9091 Tf 240.4978 0 Td[(psb_base_mod)]TJ/F15 10.9091 Tf 68.7265 0 Td[(,)-263(f)1(or)-245(the)-245(s)-1(p)1(arse)-246(matrix)]TJ -309.2243 -13.5492 Td[(and)-405(comm)27(un)1(ication)-405(des)-1(cri)1(ptor)-405(dat)1(a)-406(t)28(yp)-27(e)-1(s,)-423(and)]TJ/F46 10.9091 Tf 231.165 0 Td[(psb_krylov_mod)]TJ/F15 10.9091 Tf 80.1809 0 Td[(,)-423(for)-405(in)28(terf)1(ac)-1(i)1(ng)-406(wit)1(h)]TJ -311.3459 -13.5492 Td[(th)1(e)-334(Kry)1(lo)28(v)-334(solv)28(ers,)-333(m)27(ust)-333(b)-28(e)-333(als)-1(o)-333(u)1(s)-1(ed)-333(\050s)-1(ee)-334(S)1(e)-1(ction)]TJ -ET -1 0 0 1 335.5398 121.5209 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -335.5398 -121.5209 cm -BT -/F15 10.9091 Tf 335.5398 121.5209 Td[(5.1)]TJ -ET -1 0 0 1 349.4792 121.5209 cm -0 g 0 G -1 0 0 1 -349.4792 -121.5209 cm -BT -/F15 10.9091 Tf 349.4792 121.5209 Td[(\051.)]TJ -ET -1 0 0 1 93.6002 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -368 0 obj << -/Type /Page -/Contents 369 0 R -/Resources 367 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 356 0 R -/Annots [ 371 0 R 372 0 R 375 0 R 377 0 R 378 0 R 379 0 R 380 0 R 384 0 R 385 0 R 386 0 R ] ->> endobj -371 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 739.0056 100.6267 748.4526] -/Subtype /Link -/A << /S /GoTo /D (section.5) >> ->> endobj -372 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [429.5912 665.2387 442.4928 674.2615] -/Subtype /Link -/A << /S /GoTo /D (cite.PSBLASGUIDE) >> ->> endobj -375 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [444.5065 511.7303 451.9536 523.4198] -/Subtype /Link -/A << /S /GoTo /D (table.1) >> ->> endobj -377 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [383.4386 394.6495 399.3705 406.642] -/Subtype /Link -/A << /S /GoTo /D (subsection.5.1) >> ->> endobj -378 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [158.0586 367.8541 165.5057 379.5436] -/Subtype /Link -/A << /S /GoTo /D (section.6) >> ->> endobj -379 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [204.4829 367.8541 211.9299 379.5436] -/Subtype /Link -/A << /S /GoTo /D (table.2) >> ->> endobj -380 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [213.5738 367.8541 221.0208 379.5436] -/Subtype /Link -/A << /S /GoTo /D (table.5) >> ->> endobj -384 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [401.9629 199.6986 409.41 211.3881] -/Subtype /Link -/A << /S /GoTo /D (section.6) >> ->> endobj -385 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [330.2405 186.1494 346.1725 197.8389] -/Subtype /Link -/A << /S /GoTo /D (subsection.5.1) >> ->> endobj -386 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [334.5436 117.7973 350.4755 130.699] -/Subtype /Link -/A << /S /GoTo /D (subsection.5.1) >> ->> endobj -370 0 obj << -/D [368 0 R /XYZ 93.6002 740.0018 null] ->> endobj -58 0 obj << -/D [368 0 R /XYZ 93.6002 715.0952 null] ->> endobj -373 0 obj << -/D [368 0 R /XYZ 93.6002 647.2457 null] ->> endobj -374 0 obj << -/D [368 0 R /XYZ 93.6002 571.1155 null] ->> endobj -376 0 obj << -/D [368 0 R /XYZ 93.6002 467.8869 null] ->> endobj -381 0 obj << -/D [368 0 R /XYZ 93.6002 364.6583 null] ->> endobj -382 0 obj << -/D [368 0 R /XYZ 93.6002 328.8727 null] ->> endobj -383 0 obj << -/D [368 0 R /XYZ 93.6002 265.9886 null] ->> endobj -367 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F19 113 0 R /F20 181 0 R /F46 219 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -392 0 obj << -/Length 12248 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(16)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -498.8509 -740.0018 cm -BT -/F45 10.9091 Tf 86.3998 690.5871 Td[(Re)-1(mark)-395(1.)]TJ/F15 10.9091 Tf 62.7789 0 Td[(The)-344(c)-1(oarses)-1(t-lev)28(e)-1(l)-344(solv)28(er)-344(use)-1(d)-343(b)28(y)-344(the)-344(defau)1(lt)-344(t)28(w)27(o-lev)28(e)-1(l)-344(p)1(rec)-1(on)1(diti)1(oner)-344(has)]TJ -62.7789 -13.5492 Td[(b)-27(e)-1(en)-432(c)28(hose)-1(n)-431(b)28(y)-431(takin)1(g)-432(in)28(to)-431(ac)-1(coun)28(t)-431(that,)-456(on)-431(par)1(allel)-432(mac)27(h)1(ines)-1(,)-456(it)-431(often)-431(le)-1(ad)1(s)-432(to)-432(the)]TJ 0 -13.5492 Td[(sm)-1(all)1(e)-1(st)-422(exec)-1(u)1(tion)-421(time)-422(w)-1(h)1(e)-1(n)-421(ap)1(pli)1(e)-1(d)-421(to)-422(l)1(inear)-421(s)-1(ystem)-1(s)-422(com)-1(i)1(ng)-422(f)1(rom)-422(\014)1(nite-di\013ere)-1(n)1(c)-1(e)]TJ 0 -13.5492 Td[(di)1(s)-1(cretizations)-376(of)-376(b)1(as)-1(ic)-376(ellip)1(tic)-376(PDE)-375(prob)1(lem)-1(s,)-387(consid)1(e)-1(red)-376(as)-376(s)-1(t)1(andar)1(d)-376(tes)-1(t)1(s)-377(f)1(or)-376(m)27(u)1(lti-)]TJ 0 -13.5492 Td[(lev)28(e)-1(l)-223(S)1(c)27(h)28(w)28(arz)-224(p)1(rec)-1(on)1(diti)1(oners)-224([)]TJ -ET -1 0 0 1 229.3164 636.3903 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -229.3164 -636.3903 cm -BT -/F15 10.9091 Tf 229.3164 636.3903 Td[(3)]TJ -ET -1 0 0 1 234.771 636.3903 cm -0 g 0 G -1 0 0 1 -234.771 -636.3903 cm -BT -/F15 10.9091 Tf 234.771 636.3903 Td[(,)]TJ -ET -1 0 0 1 240.2381 636.3903 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -240.2381 -636.3903 cm -BT -/F15 10.9091 Tf 240.2381 636.3903 Td[(4)]TJ -ET -1 0 0 1 245.6927 636.3903 cm -0 g 0 G -1 0 0 1 -245.6927 -636.3903 cm -BT -/F15 10.9091 Tf 245.6927 636.3903 Td[(].)-407(Ho)27(w)28(ev)28(e)-1(r,)-245(th)1(is)-224(solv)28(er)-223(do)-28(es)-224(not)-223(n)1(e)-1(ce)-1(ss)-1(ar)1(ily)-223(c)-1(or)1(res)-1(p)-27(ond)]TJ -159.2929 -13.5492 Td[(to)-446(the)-447(smalles)-1(t)-446(n)28(um)28(b)-27(e)-1(r)-446(of)-446(iteration)1(s)-447(of)-446(th)1(e)-447(precondi)1(tioned)-446(Kr)1(ylo)28(v)-446(m)-1(etho)-27(d,)-475(wh)1(ic)27(h)-446(is)]TJ 0 -13.5492 Td[(usual)1(ly)-334(obt)1(ained)-334(b)28(y)-334(ap)1(ply)1(ing)-334(a)-334(di)1(rec)-1(t)-334(solv)28(e)-1(r)-333(to)-334(the)-334(c)-1(oarses)-1(t-lev)28(e)-1(l)-334(syste)-1(m,)-334(e)-1(.)1(g.)-334(base)-1(d)-333(on)]TJ 0 -13.5492 Td[(th)1(e)-313(LU)-311(factorization)-311(\050s)-1(ee)-312(Sec)-1(ti)1(on)]TJ -ET -1 0 0 1 246.0725 595.7428 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -246.0725 -595.7428 cm -BT -/F15 10.9091 Tf 246.0725 595.7428 Td[(6)]TJ -ET -1 0 0 1 251.527 595.7428 cm -0 g 0 G -1 0 0 1 -251.527 -595.7428 cm -BT -/F15 10.9091 Tf 254.9282 595.7428 Td[(for)-311(th)1(e)-313(coarse)-1(st-le)-1(v)28(el)-312(solv)28(ers)-312(a)28(v)55(ai)1(labl)1(e)-313(i)1(n)-312(M)1(LD2P4\051.)]TJ/F45 10.9091 Tf -168.5284 -27.0984 Td[(Re)-1(mark)-420(2.)]TJ/F15 10.9091 Tf 63.7599 0 Td[(The)-366(in)1(c)-1(lu)1(de)-366(path)-365(f)1(or)-366(MLD2P)1(4)-366(m)27(u)1(s)-1(t)-365(o)27(v)28(err)1(ide)-366(th)1(os)-1(e)-366(for)-365(PS)1(B)-1(LAS)1(,)-366(i.)1(e)-1(.)-365(the)]TJ -63.7599 -13.5492 Td[(for)1(m)-1(er)-310(m)27(u)1(s)-1(t)-310(c)-1(ome)-311(\014r)1(s)-1(t)-310(in)-310(th)1(e)-312(sequence)-311(pass)-1(ed)-310(to)-311(th)1(e)-311(c)-1(omp)1(iler,)-315(as)-311(th)1(e)-311(MLD2P4)-310(v)28(e)-1(r)1(s)-1(i)1(on)]TJ 0 -13.5492 Td[(of)-483(the)-483(Kryl)1(o)27(v)-483(solv)28(e)-1(r)-483(in)29(te)-1(r)1(face)-1(s)-484(m)28(ust)-484(o)28(v)28(errid)1(e)-484(that)-483(of)-483(PS)1(B)-1(LAS)1(.)-483(T)-1(h)1(is)-484(will)-483(c)27(h)1(ange)-484(i)1(n)]TJ 0 -13.5492 Td[(th)1(e)-384(fut)1(ure)-384(wh)1(e)-1(n)-383(th)1(e)-384(s)-1(u)1(pp)-27(ort)-383(for)-383(the)]TJ/F46 10.9091 Tf 178.2279 0 Td[(class)]TJ/F15 10.9091 Tf 32.8201 0 Td[(state)-1(men)28(t)-384(b)-27(ec)-1(ome)-1(s)-384(wid)1(e)-1(spr)1(e)-1(ad)-383(in)-383(F)84(ortr)1(an)]TJ -211.048 -13.5492 Td[(com)-1(p)1(ilers.)]TJ -ET -1 0 0 1 86.3998 500.6644 cm -0 g 0 G -1 0 0 1 6.469 -139.6139 cm -0 g 0 G -0 g 0 G -1 0 0 1 5.4546 139.2154 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -388.604 0.1992 l -S -Q -1 0 0 1 -0.1993 -13.5492 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -98.1241 -486.7167 cm -BT -/F43 10.9091 Tf 104.3009 490.7815 Td[(type)]TJ -ET -1 0 0 1 195.8976 486.7167 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -195.8976 -486.7167 cm -BT -/F43 10.9091 Tf 202.0744 490.7815 Td[(strin)-1(g)]TJ -ET -1 0 0 1 253.6704 486.7167 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -253.6704 -486.7167 cm -BT -/F43 10.9091 Tf 259.8473 490.7815 Td[(def)89(a)22(ul)66(t)-378(preco)1(n)-1(diti)-1(o)1(n)-1(e)1(r)]TJ -ET -1 0 0 1 486.7281 486.7167 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -388.4047 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -388.604 0.1992 l -S -Q -1 0 0 1 -0.1993 -27.0984 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -98.1241 -459.2198 cm -BT -/F15 10.9091 Tf 104.3009 476.8338 Td[(No)-333(precondi)1(tioner)]TJ -ET -1 0 0 1 195.8976 459.2198 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -195.8976 -459.2198 cm -BT -/F46 10.9091 Tf 202.0744 476.8338 Td[('NOPREC')]TJ -ET -1 0 0 1 253.6704 459.2198 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -253.6704 -459.2198 cm -BT -/F15 10.9091 Tf 259.8473 476.8338 Td[(Considered)-507(on)1(ly)-507(to)-507(use)-508(th)1(e)-508(P)1(SBLAS)-507(Kr)1(ylo)28(v)]TJ 0 -13.5492 Td[(solv)28(e)-1(r)1(s)-334(with)-333(n)1(o)-334(p)1(rec)-1(on)1(diti)1(oner.)]TJ -ET -1 0 0 1 486.7281 459.2198 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -388.4047 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -388.604 0.1992 l -S -Q -1 0 0 1 -0.1993 -13.5492 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -98.1241 -445.2721 cm -BT -/F15 10.9091 Tf 104.3009 449.3369 Td[(Diagon)1(al)]TJ -ET -1 0 0 1 195.8976 445.2721 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -195.8976 -445.2721 cm -BT -/F46 10.9091 Tf 202.0744 449.3369 Td[('DIAG')]TJ -ET -1 0 0 1 253.6704 445.2721 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -253.6704 -445.2721 cm -BT -/F15 10.9091 Tf 259.8473 449.3369 Td[(|)]TJ -ET -1 0 0 1 486.7281 445.2721 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -388.4047 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -388.604 0.1992 l -S -Q -1 0 0 1 -0.1993 -13.5492 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -98.1241 -431.3244 cm -BT -/F15 10.9091 Tf 104.3009 435.3892 Td[(Blo)-28(c)27(k)-333(Jacobi)]TJ -ET -1 0 0 1 195.8976 431.3245 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -195.8976 -431.3245 cm -BT -/F46 10.9091 Tf 202.0744 435.3893 Td[('BJAC')]TJ -ET -1 0 0 1 253.6704 431.3245 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -253.6704 -431.3245 cm -BT -/F15 10.9091 Tf 259.8473 435.3893 Td[(Blo)-28(c)27(k)-333(Jacobi)-333(with)-332(I)-1(LU\050)1(0\051)-334(on)-333(t)1(he)-334(lo)-27(c)-1(al)-333(b)1(lo)-28(c)27(k)1(s)-1(.)]TJ -ET -1 0 0 1 486.7281 431.3245 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -388.4047 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -388.604 0.1992 l -S -Q -1 0 0 1 -0.1993 -27.0984 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -98.1241 -403.8276 cm -BT -/F15 10.9091 Tf 104.3009 421.4416 Td[(Add)1(itiv)28(e)-333(Sc)27(h)29(w)27(ar)1(z)]TJ -ET -1 0 0 1 195.8976 403.8276 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -195.8976 -403.8276 cm -BT -/F46 10.9091 Tf 202.0744 421.4416 Td[('AS')]TJ -ET -1 0 0 1 253.6704 403.8276 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -253.6704 -403.8276 cm -BT -/F15 10.9091 Tf 259.8473 421.4416 Td[(Re)-1(stri)1(c)-1(ted)-267(Add)1(itiv)28(e)-268(S)1(c)27(h)28(w)28(arz)-268(\050)1(R)-1(AS)1(\051,)-267(with)-267(o)28(v)28(e)-1(r)1(-)]TJ 0 -13.5492 Td[(lap)-333(1)-333(and)-332(I)-1(LU\050)1(0\051)-334(on)-333(t)1(he)-334(lo)-27(c)-1(al)-333(b)1(lo)-28(c)27(k)1(s)-1(.)]TJ -ET -1 0 0 1 486.7281 403.8276 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -388.4047 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -388.604 0.1992 l -S -Q -1 0 0 1 -0.1993 -176.1395 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 176.1395 l -S -Q -1 0 0 1 -98.1241 -227.2896 cm -BT -/F15 10.9091 Tf 104.3009 393.9447 Td[(Mu)1(ltil)1(e)-1(v)28(el)]TJ -ET -1 0 0 1 195.8976 227.2896 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 176.1395 l -S -Q -1 0 0 1 -195.8976 -227.2896 cm -BT -/F46 10.9091 Tf 202.0744 393.9447 Td[('ML')]TJ -ET -1 0 0 1 253.6704 227.2896 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 176.1395 l -S -Q -1 0 0 1 -253.6704 -227.2896 cm -BT -/F15 10.9091 Tf 259.8473 393.9447 Td[(Mu)1(lti-lev)28(e)-1(l)-377(h)28(y)1(bri)1(d)-377(pr)1(e)-1(cond)1(ition)1(e)-1(r)-377(\050ad)1(diti)1(v)28(e)-378(on)]TJ 0 -13.5492 Td[(th)1(e)-391(s)-1(ame)-391(lev)28(e)-1(l)-390(an)1(d)-390(m)27(ul)1(tipl)1(ic)-1(at)1(iv)28(e)-391(thr)1(ough)-390(th)1(e)]TJ 0 -13.5492 Td[(lev)28(e)-1(l)1(s)-1(\051,)-404(w)-1(i)1(th)-390(p)-28(ost-s)-1(mo)-28(oth)1(ing)-390(only)84(.)-616(Num)28(b)-27(e)-1(r)-390(of)]TJ 0 -13.5492 Td[(lev)28(e)-1(l)1(s)-1(:)-510(2.)-543(P)28(ost-s)-1(mo)-28(oth)1(e)-1(r)1(:)-510(RAS)-366(with)-366(o)28(v)28(e)-1(r)1(lap)-366(1)]TJ 0 -13.5492 Td[(and)-394(ILU\0500\051)-396(on)-394(the)-396(l)1(o)-28(c)-1(al)-395(b)1(lo)-28(c)28(ks)-1(.)-630(Aggr)1(e)-1(gati)1(on:)]TJ 0 -13.5492 Td[(decoupl)1(e)-1(d)-416(s)-1(mo)-28(oth)1(e)-1(d)-416(aggregation)-416(w)-1(i)1(th)-417(th)1(res)-1(h)1(-)]TJ 0 -13.5492 Td[(old)]TJ/F24 10.9091 Tf 17.6947 0 Td[(\022)]TJ/F15 10.9091 Tf 8.4545 0 Td[(=)-278(0.)-429(Coarse)-1(st)-289(matri)1(x:)-422(di)1(s)-1(tr)1(ibu)1(te)-1(d)-288(among)]TJ -26.1492 -13.5492 Td[(th)1(e)-340(p)1(ro)-28(ce)-1(ss)-1(or)1(s)-1(.)-461(Coarse)-1(st-)-1(l)1(e)-1(v)28(el)-339(solv)28(e)-1(r)1(:)-456(4)-339(sw)27(ee)-1(p)1(s)]TJ 0 -13.5492 Td[(of)-443(th)1(e)-444(blo)-27(c)27(k-Jac)-1(ob)1(i)-443(s)-1(olv)28(er,)-470(w)-1(i)1(th)-443(LU)-444(\050or)-443(ILU\051)]TJ 0 -13.5492 Td[(factori)1(z)-1(ati)1(on)-297(of)-297(the)-298(b)1(lo)-28(c)28(ks)-298(\050UMF)1(P)83(A)28(CK)-297(for)-297(th)1(e)]TJ 0 -13.5492 Td[(dou)1(bl)1(e)-330(pr)1(e)-1(cis)-1(i)1(on)-329(v)28(e)-1(r)1(s)-1(ion)1(s)-330(an)1(d)-329(Su)1(p)-28(erLU)-329(for)-329(th)1(e)]TJ 0 -13.5492 Td[(single)-291(prec)-1(i)1(s)-1(ion)-290(ones)-1(,)-300(i)1(f)-291(the)-292(p)1(ac)27(k)56(ages)-292(ha)28(v)28(e)-292(b)-27(e)-1(en)]TJ 0 -13.5492 Td[(in)1(s)-1(tal)1(le)-1(d)1(;)-333(ILU\0500\051,)-333(otherwise)-1(\051.)]TJ -ET -1 0 0 1 486.7281 227.2896 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 176.1395 l -S -Q -1 0 0 1 -388.4047 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -388.604 0.1992 l -S -Q -1 0 0 1 17.7866 -30.4898 cm -0 g 0 G -1 0 0 1 -116.11 -196.4013 cm -BT -/F15 10.9091 Tf 116.11 196.4013 Td[(T)83(ab)1(le)-334(1:)-444(Pr)1(e)-1(cond)1(ition)1(e)-1(r)-333(t)28(yp)-27(e)-1(s,)-333(c)-1(or)1(res)-1(p)-27(ond)1(ing)-333(strin)1(gs)-334(and)-332(defaul)1(t)-334(c)28(hoices)-1(.)]TJ -ET -1 0 0 1 469.1406 196.4013 cm -0 g 0 G -1 0 0 1 -382.7408 -2.1212 cm -0 g 0 G -1 0 0 1 -86.3998 -194.2801 cm -BT -/F19 11.9552 Tf 86.3998 155.6647 Td[(5.)-1(1)-1125(E)-1(xampl)-1(es)]TJ/F15 10.9091 Tf 0 -20.5946 Td[(The)-340(c)-1(o)-27(de)-340(re)-1(p)-27(ort)1(e)-1(d)-339(in)-340(F)1(igur)1(e)]TJ -ET -1 0 0 1 225.4896 135.0701 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -225.4896 -135.0701 cm -BT -/F15 10.9091 Tf 225.4896 135.0701 Td[(2)]TJ -ET -1 0 0 1 230.9441 135.0701 cm -0 g 0 G -1 0 0 1 -230.9441 -135.0701 cm -BT -/F15 10.9091 Tf 234.6529 135.0701 Td[(sho)28(ws)-341(h)1(o)27(w)-340(to)-340(se)-1(t)-339(and)-340(ap)1(pl)1(y)-340(the)-340(defau)1(lt)-340(m)28(ulti)1(-)-1(lev)28(el)-340(pr)1(e)-1(-)]TJ -148.2531 -13.5492 Td[(condi)1(tioner)-257(a)27(v)56(ail)1(able)-258(i)1(n)-258(th)1(e)-258(real)-258(d)1(oub)1(le)-258(pr)1(e)-1(cis)-1(i)1(on)-258(v)28(ersion)-257(of)-257(MLD2P)1(4)-258(\050se)-1(e)-258(T)83(ab)1(le)]TJ -ET -1 0 0 1 460.2777 121.5209 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -460.2777 -121.5209 cm -BT -/F15 10.9091 Tf 460.2777 121.5209 Td[(1)]TJ -ET -1 0 0 1 465.7322 121.5209 cm -0 g 0 G -1 0 0 1 -465.7322 -121.5209 cm -BT -/F15 10.9091 Tf 465.7322 121.5209 Td[(\051.)-419(Thi)1(s)]TJ -ET -1 0 0 1 86.3998 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -391 0 obj << -/Type /Page -/Contents 392 0 R -/Resources 390 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 356 0 R -/Annots [ 394 0 R 395 0 R 396 0 R 397 0 R 398 0 R ] ->> endobj -394 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [228.3202 635.3941 235.7672 644.4169] -/Subtype /Link -/A << /S /GoTo /D (cite.aaecc_07) >> ->> endobj -395 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [239.2418 635.3941 246.6889 644.4169] -/Subtype /Link -/A << /S /GoTo /D (cite.apnum_07) >> ->> endobj -396 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [245.0762 592.0192 252.5233 604.9208] -/Subtype /Link -/A << /S /GoTo /D (section.6) >> ->> endobj -397 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [224.4933 131.9526 231.9404 143.6421] -/Subtype /Link -/A << /S /GoTo /D (figure.2) >> ->> endobj -398 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [459.2814 117.7973 466.7285 130.699] -/Subtype /Link -/A << /S /GoTo /D (table.1) >> ->> endobj -393 0 obj << -/D [391 0 R /XYZ 86.3998 740.0018 null] ->> endobj -387 0 obj << -/D [391 0 R /XYZ 159.4434 209.9504 null] ->> endobj -62 0 obj << -/D [391 0 R /XYZ 86.3998 167.4912 null] ->> endobj -390 0 obj << -/Font << /F15 131 0 R /F43 134 0 R /F45 147 0 R /F46 219 0 R /F24 186 0 R /F19 113 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -402 0 obj << -/Length 13038 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(5)]TJ -ET -1 0 0 1 99.6305 740.0018 cm -0 g 0 G -1 0 0 1 -99.6305 -740.0018 cm -BT -/F43 10.9091 Tf 103.7516 740.0018 Td[(Getti)-1(ng)-378(St)67(a)-1(r)67(ted)]TJ/F15 10.9091 Tf 391.3906 0 Td[(17)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -506.0513 -740.0018 cm -BT -/F15 10.9091 Tf 93.6002 704.1363 Td[(pr)1(e)-1(cond)1(ition)1(e)-1(r)-237(is)-238(c)27(hosen)-238(b)28(y)-237(s)-1(i)1(m)-1(p)1(ly)-238(sp)-28(ecifyi)1(ng)]TJ/F46 10.9091 Tf 212.5393 0 Td[('ML')]TJ/F15 10.9091 Tf 25.5026 0 Td[(as)-238(s)-1(ec)-1(on)1(d)-238(ar)1(gume)-1(n)29(t)-238(of)]TJ/F46 10.9091 Tf 105.6827 0 Td[(mld_precinit)]TJ/F15 10.9091 Tf -343.7246 -13.5492 Td[(\050a)-359(c)-1(all)-359(to)]TJ/F46 10.9091 Tf 47.52 0 Td[(mld_precset)]TJ/F15 10.9091 Tf 66.9201 0 Td[(is)-360(n)1(ot)-359(nee)-1(d)1(e)-1(d)1(\051)-360(an)1(d)-359(is)-360(ap)1(plied)-359(with)-359(th)1(e)-360(BiCGST)83(AB)-359(s)-1(olv)28(er)-359(pr)1(o-)]TJ -114.4401 -13.5492 Td[(vid)1(e)-1(d)-300(b)28(y)-301(P)1(SBLAS.)-300(As)-302(p)1(re)-1(v)1(iously)-301(ob)1(s)-1(erv)28(ed,)-307(the)-301(mo)-28(du)1(les)]TJ/F46 10.9091 Tf 268.6135 0 Td[(psb_base_mod)]TJ/F15 10.9091 Tf 68.7265 0 Td[(,)]TJ/F46 10.9091 Tf 6.3846 0 Td[(mld_prec_mod)]TJ/F15 10.9091 Tf -343.7246 -13.5492 Td[(and)]TJ/F46 10.9091 Tf 21.2121 0 Td[(psb_krylov_mod)]TJ/F15 10.9091 Tf 83.8173 0 Td[(m)27(u)1(s)-1(t)-333(b)-27(e)-334(u)1(s)-1(ed)-333(b)28(y)-333(the)-333(e)-1(xamp)1(le)-334(pr)1(ogram.)]TJ -88.0929 -13.5492 Td[(The)-395(part)-394(of)-395(the)-395(c)-1(o)-27(de)-395(c)-1(on)1(c)-1(erni)1(ng)-395(th)1(e)-396(readi)1(ng)-395(and)-394(as)-1(se)-1(m)28(bl)1(ing)-395(of)-394(the)-395(s)-1(p)1(ars)-1(e)-395(matrix)]TJ -16.9365 -13.5492 Td[(and)-456(th)1(e)-458(r)1(igh)28(t-han)1(d)-456(s)-1(id)1(e)-457(v)28(e)-1(ctor,)-487(p)-28(erf)1(orme)-1(d)-456(thr)1(ough)-456(the)-457(P)1(SBLAS)-456(rout)1(ines)-457(for)-456(s)-1(p)1(ars)-1(e)]TJ 0 -13.5492 Td[(matrix)-385(an)1(d)-385(v)28(ec)-1(tor)-384(m)-1(an)1(age)-1(me)-1(n)29(t,)-398(is)-386(n)1(ot)-385(rep)-28(or)1(te)-1(d)-384(here)-386(f)1(or)-385(br)1(e)-1(v)1(it)28(y;)-411(th)1(e)-386(state)-1(men)28(ts)-386(con-)]TJ 0 -13.5492 Td[(ce)-1(rn)1(in)1(g)-265(the)-265(d)1(e)-1(al)1(lo)-28(cation)-264(of)-265(th)1(e)-265(PS)1(B)-1(LAS)-264(d)1(ata)-265(stru)1(c)-1(tu)1(re)-265(are)-265(neglec)-1(ted)-264(to)-28(o.)-421(The)-265(c)-1(omp)1(le)-1(te)]TJ 0 -13.5492 Td[(co)-28(de)-307(can)-306(b)-28(e)-306(foun)1(d)-306(in)-306(th)1(e)-307(e)-1(xamp)1(le)-307(pr)1(ogram)-307(\014)1(le)]TJ/F46 10.9091 Tf 223.4846 0 Td[(mld_dexample_ml.f90)]TJ/F15 10.9091 Tf 108.817 0 Td[(,)-312(i)1(n)-306(the)-307(d)1(irec)-1(tor)1(y)]TJ/F46 10.9091 Tf -332.3016 -13.5492 Td[(examples/fileread)]TJ/F15 10.9091 Tf 101.625 0 Td[(of)-390(the)-391(MLD)1(2P4)-391(tr)1(e)-1(e)-391(\050se)-1(e)-391(S)1(e)-1(ction)]TJ -ET -1 0 0 1 359.2243 582.1936 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -359.2243 -582.1936 cm -BT -/F15 10.9091 Tf 359.2243 582.1936 Td[(3.5)]TJ -ET -1 0 0 1 373.1637 582.1936 cm -0 g 0 G -1 0 0 1 -373.1637 -582.1936 cm -BT -/F15 10.9091 Tf 373.1637 582.1936 Td[(\051.)-616(F)83(or)-390(details)-391(on)-390(th)1(e)-392(u)1(s)-1(e)-391(of)]TJ -279.5635 -13.5492 Td[(th)1(e)-334(PS)1(B)-1(LAS)-333(r)1(outi)1(nes)-1(,)-333(se)-1(e)-334(th)1(e)-334(P)1(SBLAS)-333(Us)-1(er's)-333(Gui)1(de)-334([)]TJ -ET -1 0 0 1 353.3732 568.6444 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -353.3732 -568.6444 cm -BT -/F15 10.9091 Tf 353.3732 568.6444 Td[(14)]TJ -ET -1 0 0 1 364.2823 568.6444 cm -0 g 0 G -1 0 0 1 -364.2823 -568.6444 cm -BT -/F15 10.9091 Tf 364.2823 568.6444 Td[(].)]TJ -253.7456 -13.5492 Td[(The)-461(se)-1(tu)1(p)-460(and)-460(app)1(lication)-460(of)-460(the)-461(d)1(e)-1(f)1(ault)-460(m)27(u)1(lti-lev)28(e)-1(l)-460(p)1(re)-1(cond)1(ition)1(e)-1(r)1(s)-461(for)-460(the)-461(r)1(e)-1(al)]TJ -16.9365 -13.5492 Td[(single)-450(prec)-1(i)1(s)-1(ion)-450(an)1(d)-450(the)-450(c)-1(omplex,)-479(s)-1(in)1(gle)-451(an)1(d)-450(dou)1(ble)-451(p)1(rec)-1(ision)1(,)-480(v)28(ersions)-451(ar)1(e)-451(obtai)1(ned)]TJ 0 -13.5492 Td[(with)-352(straigh)28(t)1(forw)28(ard)-352(mo)-28(d)1(i\014cation)1(s)-353(of)-352(the)-353(p)1(revious)-353(exampl)1(e)-353(\050s)-1(ee)-353(Sec)-1(t)1(ion)]TJ -ET -1 0 0 1 441.6029 527.9968 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -441.6029 -527.9968 cm -BT -/F15 10.9091 Tf 441.6029 527.9968 Td[(6)]TJ -ET -1 0 0 1 447.0575 527.9968 cm -0 g 0 G -1 0 0 1 -447.0575 -527.9968 cm -BT -/F15 10.9091 Tf 450.9028 527.9968 Td[(for)-352(d)1(e)-1(tai)1(ls)-1(\051.)]TJ -357.3026 -13.5492 Td[(If)-502(thes)-1(e)-503(v)28(ersions)-503(are)-503(i)1(nstalled,)-545(th)1(e)-503(c)-1(or)1(re)-1(sp)-27(ond)1(ing)-502(F)83(ort)1(ran)-502(95)-503(co)-28(des)-503(are)-503(a)28(v)55(ai)1(lable)-503(i)1(n)]TJ/F46 10.9091 Tf 0 -13.5492 Td[(examples/fileread/)]TJ/F15 10.9091 Tf 103.0898 0 Td[(.)]TJ -86.1533 -13.5492 Td[(Di\013ere)-1(n)29(t)-270(v)28(ersions)-269(of)-269(m)27(ul)1(ti-le)-1(v)28(el)-269(pr)1(e)-1(cond)1(ition)1(e)-1(rs)-269(c)-1(an)-269(b)-27(e)-270(obtai)1(ned)-269(b)28(y)-269(c)27(han)1(gin)1(g)-270(th)1(e)-270(de-)]TJ -16.9365 -13.5492 Td[(fau)1(lt)-273(v)56(alu)1(e)-1(s)-273(of)-272(th)1(e)-274(p)1(rec)-1(on)1(dit)1(ioner)-273(p)1(arame)-1(ters.)-424(The)-273(co)-28(de)-273(rep)-27(orted)-273(i)1(n)-273(Fi)1(gure)]TJ -ET -1 0 0 1 447.8587 473.8 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -447.8587 -473.8 cm -BT -/F15 10.9091 Tf 447.8587 473.8 Td[(3)]TJ -ET -1 0 0 1 453.3132 473.8 cm -0 g 0 G -1 0 0 1 -453.3132 -473.8 cm -BT -/F15 10.9091 Tf 456.2883 473.8 Td[(sho)28(ws)-274(h)1(o)28(w)]TJ -362.6881 -13.5492 Td[(to)-281(s)-1(et)-282(a)-281(thr)1(e)-1(e-)-1(l)1(e)-1(v)28(el)-282(h)29(ybr)1(id)-281(Sc)28(h)28(w)27(ar)1(z)-282(pr)1(e)-1(cond)1(ition)1(e)-1(r,)-291(whic)28(h)-282(u)1(s)-1(es)-282(b)1(lo)-28(c)27(k)-281(Jacobi)-281(with)-281(ILU\0500\051)]TJ 0 -13.5492 Td[(on)-265(t)1(he)-265(lo)-28(cal)-265(bl)1(o)-28(c)27(ks)-265(as)-265(p)-28(ost-s)-1(mo)-28(oth)1(e)-1(r,)-278(h)1(as)-266(a)-265(coarse)-1(st)-265(matrix)-264(re)-1(p)1(licate)-1(d)-264(on)-265(t)1(he)-265(pro)-27(c)-1(es)-1(sors,)]TJ 0 -13.5492 Td[(and)-249(s)-1(olv)28(es)-251(th)1(e)-251(coarse)-1(st-le)-1(v)28(el)-250(s)-1(y)1(s)-1(tem)-251(with)-249(the)-250(LU)-251(f)1(ac)-1(tor)1(ization)-250(f)1(rom)-251(UM)1(FP)84(A)27(CK)-250([)]TJ -ET -1 0 0 1 471.202 433.1524 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -471.202 -433.1524 cm -BT -/F15 10.9091 Tf 471.202 433.1524 Td[(8)]TJ -ET -1 0 0 1 476.6566 433.1524 cm -0 g 0 G -1 0 0 1 -476.6566 -433.1524 cm -BT -/F15 10.9091 Tf 476.6566 433.1524 Td[(].)-416(T)-1(h)1(e)]TJ -383.0564 -13.5492 Td[(n)28(u)1(m)27(b)-27(e)-1(r)-362(of)-361(le)-1(v)28(els)-363(i)1(s)-363(s)-1(p)-27(ec)-1(i\014)1(e)-1(d)-361(b)28(y)-362(using)]TJ/F46 10.9091 Tf 182.1814 0 Td[(mld_precinit)]TJ/F15 10.9091 Tf 68.7266 0 Td[(;)-377(t)1(he)-363(oth)1(e)-1(r)-362(p)1(rec)-1(on)1(dit)1(ioner)-362(par)1(am)-1(-)]TJ -250.908 -13.5492 Td[(ete)-1(r)1(s)-352(ar)1(e)-351(s)-1(et)-351(b)28(y)-350(c)-1(al)1(ling)]TJ/F46 10.9091 Tf 112.0395 0 Td[(mld_precset)]TJ/F15 10.9091 Tf 62.9993 0 Td[(.)-496(Note)-351(that)-351(t)1(he)-351(t)28(yp)-27(e)-352(of)-350(m)28(ulti)1(le)-1(v)28(el)-351(f)1(rame)-1(w)28(ork)-350(\050i.e.)]TJ -175.0388 -13.5492 Td[(m)27(u)1(ltip)1(licativ)28(e)-279(am)-1(on)1(g)-280(th)1(e)-280(lev)28(els)-280(with)-279(p)-27(ost-)-1(smo)-28(othi)1(ng)-279(only)1(\051)-279(is)-280(n)1(ot)-280(sp)-27(e)-1(ci\014ed)-279(since)-280(it)-279(i)1(s)-280(the)]TJ 0 -13.5492 Td[(defau)1(lt)-333(s)-1(et)-333(b)28(y)]TJ/F46 10.9091 Tf 68.8486 0 Td[(mld_precinit)]TJ/F15 10.9091 Tf 68.7265 0 Td[(.)]TJ -120.6386 -13.5492 Td[(Figu)1(re)]TJ -ET -1 0 0 1 144.6065 365.4064 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -144.6065 -365.4064 cm -BT -/F15 10.9091 Tf 144.6065 365.4064 Td[(4)]TJ -ET -1 0 0 1 150.0611 365.4064 cm -0 g 0 G -1 0 0 1 -150.0611 -365.4064 cm -BT -/F15 10.9091 Tf 153.343 365.4064 Td[(sho)28(ws)-302(h)1(o)27(w)-301(t)1(o)-301(s)-1(et)-301(a)-301(th)1(ree)-1(-lev)28(e)-1(l)-300(addi)1(tiv)28(e)-301(Sc)28(h)28(w)27(ar)1(z)-302(p)1(rec)-1(on)1(diti)1(oner,)-307(whic)28(h)-301(u)1(s)-1(es)]TJ -59.7428 -13.5492 Td[(RAS,)-432(w)-1(i)1(th)-433(o)28(v)28(erlap)-432(1)-433(and)-432(ILU\0500\051)-433(on)-433(th)1(e)-433(blo)-28(c)28(ks,)-458(as)-433(pre-)-433(and)-432(p)-28(ost-s)-1(mo)-28(oth)1(e)-1(r)1(,)-458(and)-432(ap-)]TJ 0 -13.5492 Td[(pl)1(ie)-1(s)-340(\014v)28(e)-340(bl)1(o)-28(c)27(k-Jacobi)-339(s)-1(w)28(e)-1(eps,)-342(with)-339(the)-340(UMF)1(P)83(A)28(CK)-340(LU)-340(f)1(ac)-1(tor)1(iz)-1(at)1(ion)-340(on)-339(the)-340(blo)-27(c)27(ks,)-342(as)]TJ 0 -13.5492 Td[(di)1(s)-1(tr)1(ibu)1(te)-1(d)-402(coarse)-1(st-lev)28(e)-1(l)-402(s)-1(ol)1(v)28(e)-1(r.)-651(Again)1(,)]TJ/F46 10.9091 Tf 196.8657 0 Td[(mld_precset)]TJ/F15 10.9091 Tf 67.3899 0 Td[(is)-403(u)1(s)-1(ed)-402(only)-402(to)-402(s)-1(et)-402(non)1(-)-1(d)1(e)-1(f)1(ault)]TJ -264.2556 -13.5492 Td[(v)56(alues)-271(of)-270(the)-271(par)1(am)-1(eters)-271(\050se)-1(e)-271(T)83(abl)1(e)-1(s)]TJ -ET -1 0 0 1 265.8644 311.2096 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -265.8644 -311.2096 cm -BT -/F15 10.9091 Tf 265.8644 311.2096 Td[(2)]TJ -ET -1 0 0 1 271.319 311.2096 cm -0 g 0 G -1 0 0 1 -271.319 -311.2096 cm -BT -/F15 10.9091 Tf 271.319 311.2096 Td[(-)]TJ -ET -1 0 0 1 274.9553 311.2096 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -274.9553 -311.2096 cm -BT -/F15 10.9091 Tf 274.9553 311.2096 Td[(5)]TJ -ET -1 0 0 1 280.4099 311.2096 cm -0 g 0 G -1 0 0 1 -280.4099 -311.2096 cm -BT -/F15 10.9091 Tf 280.4099 311.2096 Td[(\051.)-423(In)-271(b)-27(oth)-270(c)-1(ases)-1(,)-283(th)1(e)-271(c)-1(on)1(s)-1(tr)1(uction)-270(and)-270(the)-271(ap)1(pli)1(-)]TJ -186.8097 -13.5492 Td[(cation)-268(of)-269(th)1(e)-269(precondi)1(tioner)-268(are)-269(c)-1(ar)1(ried)-268(out)-269(as)-269(f)1(or)-269(th)1(e)-269(defau)1(lt)-269(m)28(ulti)1(-)-1(lev)28(el)-269(p)1(re)-1(cond)1(ition)1(e)-1(r)1(.)]TJ 0 -13.5492 Td[(The)-368(c)-1(o)-27(de)-369(f)1(ragme)-1(n)29(ts)-369(sho)28(wn)-368(i)1(n)-368(in)-367(Figur)1(e)-1(s)]TJ -ET -1 0 0 1 291.4924 284.1112 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -291.4924 -284.1112 cm -BT -/F15 10.9091 Tf 291.4924 284.1112 Td[(3)]TJ -ET -1 0 0 1 296.947 284.1112 cm -0 g 0 G -1 0 0 1 -296.947 -284.1112 cm -BT -/F15 10.9091 Tf 296.947 284.1112 Td[(-)]TJ -ET -1 0 0 1 300.5833 284.1112 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -300.5833 -284.1112 cm -BT -/F15 10.9091 Tf 300.5833 284.1112 Td[(4)]TJ -ET -1 0 0 1 306.0379 284.1112 cm -0 g 0 G -1 0 0 1 -306.0379 -284.1112 cm -BT -/F15 10.9091 Tf 310.0527 284.1112 Td[(are)-368(in)1(c)-1(lu)1(ded)-368(in)-367(the)-368(e)-1(x)1(am)-1(p)1(le)-369(p)1(rogr)1(am)-369(\014)1(le)]TJ/F46 10.9091 Tf -216.4525 -13.5492 Td[(mld_dexample_ml.f90)]TJ/F15 10.9091 Tf 112.4534 0 Td[(to)-28(o.)]TJ -95.5169 -13.5492 Td[(Fin)1(ally)84(,)-295(Figu)1(re)]TJ -ET -1 0 0 1 183.2723 257.0128 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -183.2723 -257.0128 cm -BT -/F15 10.9091 Tf 183.2723 257.0128 Td[(5)]TJ -ET -1 0 0 1 188.7268 257.0128 cm -0 g 0 G -1 0 0 1 -188.7268 -257.0128 cm -BT -/F15 10.9091 Tf 191.8459 257.0128 Td[(sho)28(ws)-287(th)1(e)-287(setup)-285(of)-286(a)-286(on)1(e)-1(-lev)28(e)-1(l)-285(addi)1(tiv)28(e)-286(Sc)27(h)29(w)27(arz)-286(p)1(re)-1(cond)1(ition)1(e)-1(r)1(,)-295(i.e.)]TJ -98.2457 -13.5492 Td[(RAS)-231(with)-230(o)27(v)28(erl)1(ap)-231(2.)-410(T)-1(h)1(e)-232(corresp)-28(on)1(din)1(g)-231(e)-1(xamp)1(le)-232(p)1(rogram)-231(is)-232(a)28(v)56(ailab)1(le)-232(i)1(n)]TJ/F46 10.9091 Tf 337.9974 0 Td[(mld_dexample_)]TJ -337.9974 -13.5492 Td[(1lev.f90)]TJ/F15 10.9091 Tf 45.8177 0 Td[(.)]TJ -28.8812 -13.5492 Td[(F)84(or)-452(all)-452(th)1(e)-453(p)1(reviou)1(s)-453(p)1(re)-1(cond)1(ition)1(e)-1(r)1(s)-1(,)-481(e)-1(x)1(am)-1(p)1(le)-453(p)1(rogr)1(am)-1(s)-452(where)-453(t)1(he)-452(s)-1(p)1(ars)-1(e)-452(matrix)]TJ -16.9365 -13.5492 Td[(and)-370(th)1(e)-371(righ)29(t-)-1(h)1(and)-370(side)-371(ar)1(e)-371(ge)-1(n)1(e)-1(r)1(ate)-1(d)-370(b)28(y)-370(di)1(s)-1(cretiz)-1(i)1(ng)-370(a)-371(PD)1(E)-371(wit)1(h)-371(D)1(iric)28(hlet)-371(b)-27(ou)1(ndar)1(y)]TJ 0 -13.5492 Td[(condi)1(tions)-333(are)-334(also)-333(a)27(v)56(ail)1(able)-333(in)-333(the)-333(dir)1(e)-1(ctory)]TJ/F46 10.9091 Tf 215.0608 0 Td[(examples/pdegen)]TJ/F15 10.9091 Tf 85.9082 0 Td[(.)]TJ/F45 10.9091 Tf -300.969 -27.0984 Td[(Re)-1(mark)-318(3.)]TJ/F15 10.9091 Tf 61.3782 0 Td[(An)28(y)-277(P)1(SBLAS-based)-277(pr)1(ogram)-278(u)1(s)-1(i)1(ng)-277(th)1(e)-278(basic)-277(prec)-1(on)1(di)1(tioners)-277(implem)-1(en)28(ted)]TJ -61.3782 -13.5492 Td[(in)-269(P)1(SBLAS)-269(2.0,)-282(i.)1(e)-1(.)-269(th)1(e)-270(diagon)1(al)-269(and)-269(b)1(lo)-28(c)27(k)1(-)-1(Jacobi)-269(on)1(e)-1(s,)-282(c)-1(an)-268(use)-270(the)-270(d)1(iagon)1(al)-270(an)1(d)-269(bl)1(o)-28(c)27(k-)]TJ 0 -13.5492 Td[(Jacobi)-337(p)1(rec)-1(on)1(diti)1(oners)-337(implem)-1(en)28(ted)-337(i)1(n)-337(MLD)1(2P4)-337(with)1(out)-337(an)28(y)-336(c)27(han)1(ge)-337(in)-337(th)1(e)-338(co)-28(d)1(e)-1(.)-455(The)]TJ 0 -13.5492 Td[(PS)1(BLAS-base)-1(d)-333(p)1(rogram)-333(m)27(u)1(s)-1(t)-333(b)-27(e)-334(onl)1(y)-334(r)1(e)-1(compiled)-333(an)1(d)-333(lin)1(k)28(e)-1(d)-333(to)-333(th)1(e)-334(MLD2P)1(4)-334(l)1(ibr)1(ary)83(.)]TJ -ET -1 0 0 1 93.6002 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -401 0 obj << -/Type /Page -/Contents 402 0 R -/Resources 400 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 356 0 R -/Annots [ 404 0 R 405 0 R 406 0 R 407 0 R 408 0 R 409 0 R 410 0 R 411 0 R 412 0 R 413 0 R 414 0 R 415 0 R ] ->> endobj -404 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 739.0056 100.6267 748.4526] -/Subtype /Link -/A << /S /GoTo /D (section.5) >> ->> endobj -405 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [358.2281 578.47 374.16 591.3716] -/Subtype /Link -/A << /S /GoTo /D (subsection.3.5) >> ->> endobj -406 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [352.377 567.6481 365.2786 576.6709] -/Subtype /Link -/A << /S /GoTo /D (cite.PSBLASGUIDE) >> ->> endobj -407 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [440.6067 524.2732 448.0537 537.1748] -/Subtype /Link -/A << /S /GoTo /D (section.6) >> ->> endobj -408 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [446.8624 470.6825 454.3095 482.372] -/Subtype /Link -/A << /S /GoTo /D (figure.3) >> ->> endobj -409 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [470.2058 432.1561 477.6528 441.179] -/Subtype /Link -/A << /S /GoTo /D (cite.UMFPACK) >> ->> endobj -410 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [143.6103 362.2889 151.0573 373.9784] -/Subtype /Link -/A << /S /GoTo /D (figure.4) >> ->> endobj -411 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [264.8682 307.4861 272.3152 320.3877] -/Subtype /Link -/A << /S /GoTo /D (table.2) >> ->> endobj -412 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [273.9591 307.4861 281.4062 320.3877] -/Subtype /Link -/A << /S /GoTo /D (table.5) >> ->> endobj -413 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [290.4961 280.9938 297.9432 292.6832] -/Subtype /Link -/A << /S /GoTo /D (figure.3) >> ->> endobj -414 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [299.5871 280.9938 307.0341 292.6832] -/Subtype /Link -/A << /S /GoTo /D (figure.4) >> ->> endobj -415 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [182.276 253.8954 189.7231 265.5849] -/Subtype /Link -/A << /S /GoTo /D (figure.5) >> ->> endobj -403 0 obj << -/D [401 0 R /XYZ 93.6002 740.0018 null] ->> endobj -400 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F46 219 0 R /F45 147 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -421 0 obj << -/Length 3894 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(18)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -412.4511 -24.9066 cm -0 g 0 G -1 0 0 1 15.1693 -293.8024 cm -0 g 0 G -0 g 0 G -1 0 0 1 0 287.7141 cm -0 g 0 G -0 g 0 G -1 0 0 1 -101.5691 -709.0069 cm -BT -/F46 9.9626 Tf 117.4843 709.0069 Td[(use)-525(psb_base_mod)]TJ 0 -11.9552 Td[(use)-525(mld_prec_mod)]TJ 0 -11.9551 Td[(use)-525(psb_krylov_mod)]TJ -10.4607 -11.9552 Td[(...)-525(...)]TJ 0 -11.9552 Td[(!)]TJ 0 -11.9551 Td[(!)-525(sparse)-525(matrix)]TJ 10.4607 -11.9552 Td[(type\050psb_dspmat_type\051)-525(::)-525(A)]TJ -10.4607 -11.9552 Td[(!)-525(sparse)-525(matrix)-525(descriptor)]TJ 10.4607 -11.9551 Td[(type\050psb_desc_type\051)-1575(::)-525(desc_A)]TJ -10.4607 -11.9552 Td[(!)-525(preconditioner)]TJ 10.4607 -11.9552 Td[(type\050mld_dprec_type\051)-1050(::)-525(P)]TJ -10.4607 -11.9551 Td[(!)-525(right-hand)-525(side)-525(and)-525(solution)-525(vectors)]TJ 10.4607 -11.9552 Td[(real\050kind\0501.d0\051\051)-3150(::)-525(b\050:\051,)-525(x\050:\051)]TJ -10.4607 -11.9552 Td[(...)-525(...)]TJ 0 -11.9551 Td[(!)]TJ 0 -11.9552 Td[(!)-525(initialize)-525(the)-525(parallel)-525(environment)]TJ 10.4607 -11.9552 Td[(call)-525(psb_init\050ictxt\051)]TJ 0 -11.9551 Td[(call)-525(psb_info\050ictxt,iam,np\051)]TJ -10.4607 -11.9552 Td[(...)-525(...)]TJ 0 -11.9552 Td[(!)]TJ 0 -11.9551 Td[(!)-525(read)-525(and)-525(assemble)-525(the)-525(matrix)-525(A)-525(and)-525(the)-525(right-hand)-525(side)-525(b)]TJ 0 -11.9552 Td[(!)-525(using)-525(PSBLAS)-525(routines)-525(for)-525(sparse)-525(matrix)-525(/)-525(vector)-525(management)]TJ 0 -11.9552 Td[(...)-525(...)]TJ 0 -11.9551 Td[(!)]TJ 0 -11.9552 Td[(!)-525(initialize)-525(the)-525(default)-525(multi-level)-525(preconditioner,)-525(i.e.)-525(hybrid)]TJ 0 -11.9552 Td[(!)-525(Schwarz,)-525(using)-525(RAS)-525(\050with)-525(overlap)-525(1)-525(and)-525(ILU\0500\051)-525(on)-525(the)-525(blocks\051)]TJ 0 -11.9551 Td[(!)-525(as)-525(post-smoother)-525(and)-525(4)-525(block-Jacobi)-525(sweeps)-525(\050with)-525(UMFPACK)-525(LU)]TJ 0 -11.9552 Td[(!)-525(on)-525(the)-525(blocks\051)-525(as)-525(distributed)-525(coarse-level)-525(solver)]TJ 10.4607 -11.9552 Td[(call)-525(mld_precinit\050P,'ML',info\051)]TJ -10.4607 -11.9551 Td[(!)]TJ 0 -11.9552 Td[(!)-525(build)-525(the)-525(preconditioner)]TJ 10.4607 -11.9552 Td[(call)-525(mld_precbld\050A,desc_A,P,info\051)]TJ -10.4607 -11.9551 Td[(!)]TJ 0 -11.9552 Td[(!)-525(set)-525(the)-525(solver)-525(parameters)-525(and)-525(the)-525(initial)-525(guess)]TJ 10.4607 -11.9552 Td[(...)-525(...)]TJ -10.4607 -11.9551 Td[(!)]TJ 0 -11.9552 Td[(!)-525(solve)-525(Ax=b)-525(with)-525(preconditioned)-525(BiCGSTAB)]TJ 10.4607 -11.9552 Td[(call)-525(psb_krylov\050'BICGSTAB',A,P,b,x,tol,desc_A,info\051)]TJ 0 -11.9551 Td[(...)-525(...)]TJ -10.4607 -11.9552 Td[(!)]TJ 0 -11.9552 Td[(!)-525(deallocate)-525(the)-525(preconditioner)]TJ 10.4607 -11.9551 Td[(call)-525(mld_precfree\050P,info\051)]TJ -10.4607 -11.9552 Td[(!)]TJ 0 -11.9552 Td[(!)-525(deallocate)-525(other)-525(data)-525(structures)]TJ 10.4607 -11.9551 Td[(...)-525(...)]TJ -10.4607 -11.9552 Td[(!)]TJ 0 -11.9552 Td[(!)-525(exit)-525(the)-525(parallel)-525(environment)]TJ 10.4607 -11.9551 Td[(call)-525(psb_exit\050ictxt\051)]TJ 0 -11.9552 Td[(stop)]TJ -ET -1 0 0 1 94.4585 114.4103 cm -0 g 0 G -1 0 0 1 -94.4585 -114.4103 cm -BT -/F15 10.9091 Tf 94.4585 114.4103 Td[(Figu)1(re)-334(2:)-444(S)1(e)-1(tu)1(p)-333(and)-333(ap)1(pl)1(ic)-1(ati)1(on)-333(of)-333(the)-333(defau)1(lt)-333(m)27(ul)1(ti-le)-1(v)28(el)-333(Sc)28(h)28(w)27(ar)1(z)-334(pr)1(e)-1(cond)1(ition)1(e)-1(r)1(.)]TJ -ET -1 0 0 1 490.7922 114.4103 cm -0 g 0 G -1 0 0 1 -404.3924 -14.0764 cm -0 g 0 G -1 0 0 1 0 -8.701 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -420 0 obj << -/Type /Page -/Contents 421 0 R -/Resources 419 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 356 0 R ->> endobj -422 0 obj << -/D [420 0 R /XYZ 86.3998 740.0018 null] ->> endobj -399 0 obj << -/D [420 0 R /XYZ 142.2161 127.9595 null] ->> endobj -419 0 obj << -/Font << /F15 131 0 R /F43 134 0 R /F46 219 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -425 0 obj << -/Length 4082 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(5)]TJ -ET -1 0 0 1 99.6305 740.0018 cm -0 g 0 G -1 0 0 1 -99.6305 -740.0018 cm -BT -/F43 10.9091 Tf 103.7516 740.0018 Td[(Getti)-1(ng)-378(St)67(a)-1(r)67(ted)]TJ/F15 10.9091 Tf 391.3906 0 Td[(19)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -412.4511 -47.8206 cm -0 g 0 G -1 0 0 1 15.1693 -57.1482 cm -0 g 0 G -0 g 0 G -1 0 0 1 0 55.9029 cm -0 g 0 G -0 g 0 G -1 0 0 1 -108.7695 -690.9359 cm -BT -/F46 9.9626 Tf 114.224 690.9358 Td[(...)-525(...)]TJ 0 -11.9551 Td[(!)-525(set)-525(a)-525(three-level)-525(hybrid)-525(Schwarz)-525(preconditioner,)-525(which)-525(uses)]TJ 0 -11.9552 Td[(!)-525(block)-525(Jacobi)-525(\050with)-525(ILU\0500\051)-525(on)-525(the)-525(blocks\051)-525(as)-525(post-smoother,)]TJ 0 -11.9552 Td[(!)-525(a)-525(coarsest)-525(matrix)-525(replicated)-525(on)-525(the)-525(processors,)-525(and)-525(the)]TJ 0 -11.9551 Td[(!)-525(LU)-525(factorization)-525(from)-525(UMFPACK)-525(as)-525(coarse-level)-525(solver)]TJ 10.4607 -11.9552 Td[(call)-525(mld_precinit\050P,'ML',info,nlev=3\051)]TJ 0 -11.9552 Td[(call_mld_precset\050P,mld_smoother_type_,'BJAC',info\051)]TJ 0 -11.9551 Td[(call)-525(mld_precset\050P,mld_coarse_mat_,'REPL',info\051)]TJ 0 -11.9552 Td[(call)-525(mld_precset\050P,mld_coarse_solve_,'UMF',info\051)]TJ -10.4607 -11.9552 Td[(...)-525(...)]TJ -ET -1 0 0 1 149.2044 564.8047 cm -0 g 0 G -1 0 0 1 -149.2044 -564.8047 cm -BT -/F15 10.9091 Tf 149.2044 564.8047 Td[(Figu)1(re)-334(3:)-444(S)1(e)-1(tu)1(p)-333(of)-333(a)-333(h)28(yb)1(rid)-333(th)1(ree)-1(-lev)28(e)-1(l)-333(S)1(c)27(h)28(w)28(arz)-334(p)1(rec)-1(on)1(diti)1(oner.)]TJ -ET -1 0 0 1 450.4471 564.8047 cm -0 g 0 G -1 0 0 1 -356.8469 -14.0764 cm -0 g 0 G -1 0 0 1 0 -23.9103 cm -0 g 0 G -1 0 0 1 15.1693 -57.1482 cm -0 g 0 G -0 g 0 G -1 0 0 1 0 55.9029 cm -0 g 0 G -0 g 0 G -1 0 0 1 -108.7695 -525.5727 cm -BT -/F46 9.9626 Tf 114.224 525.5727 Td[(...)-525(...)]TJ 0 -11.9552 Td[(!)-525(set)-525(a)-525(three-level)-525(additive)-525(Schwarz)-525(preconditioner,)-525(which)-525(uses)]TJ 0 -11.9552 Td[(!)-525(RAS)-525(\050with)-525(overlap)-525(1)-525(and)-525(ILU\0500\051)-525(on)-525(the)-525(blocks\051)-525(as)-525(pre-)-525(and)]TJ 0 -11.9551 Td[(!)-525(post-smoother,)-525(and)-525(5)-525(block-Jacobi)-525(sweeps)-525(\050with)-525(UMFPACK)-525(LU)]TJ 0 -11.9552 Td[(!)-525(on)-525(the)-525(blocks\051)-525(as)-525(distributed)-525(coarsest-level)-525(solver)]TJ 10.4607 -11.9552 Td[(call)-525(mld_precinit\050P,'ML',info,nlev=3\051)]TJ 0 -11.9551 Td[(call)-525(mld_precset\050P,mld_ml_type_,'ADD',info\051)]TJ 0 -11.9552 Td[(call_mld_precset\050P,mld_smoother_pos_,'TWOSIDE',info\051)]TJ 0 -11.9552 Td[(call)-525(mld_precset\050P,mld_coarse_sweeps_,5,info\051)]TJ -10.4607 -11.9551 Td[(...)-525(...)]TJ -ET -1 0 0 1 142.5529 399.4415 cm -0 g 0 G -1 0 0 1 -142.5529 -399.4415 cm -BT -/F15 10.9091 Tf 142.5529 399.4415 Td[(Figu)1(re)-334(4:)-444(S)1(e)-1(tu)1(p)-333(of)-333(an)-333(ad)1(diti)1(v)28(e)-334(thr)1(e)-1(e-)-1(l)1(e)-1(v)28(el)-333(Sc)27(h)29(w)27(ar)1(z)-334(pr)1(e)-1(cond)1(ition)1(e)-1(r.)]TJ -ET -1 0 0 1 457.0986 399.4415 cm -0 g 0 G -1 0 0 1 -363.4984 -14.0764 cm -0 g 0 G -1 0 0 1 0 -23.9103 cm -0 g 0 G -1 0 0 1 15.1693 -27.2603 cm -0 g 0 G -0 g 0 G -1 0 0 1 0 26.0149 cm -0 g 0 G -0 g 0 G -1 0 0 1 -108.7695 -360.2094 cm -BT -/F46 9.9626 Tf 114.224 360.2094 Td[(...)-525(...)]TJ 0 -11.9551 Td[(!)-525(set)-525(RAS)-525(with)-525(overlap)-525(2)-525(and)-525(ILU\0500\051)-525(on)-525(the)-525(local)-525(blocks)]TJ 10.4607 -11.9552 Td[(call)-525(mld_precinit\050P,'AS',info\051)]TJ 0 -11.9552 Td[(call)-525(mld_precset\050P,mld_sub_ovr_,2,info\051)]TJ -10.4607 -11.9551 Td[(...)-525(...)]TJ -ET -1 0 0 1 170.4469 293.8541 cm -0 g 0 G -1 0 0 1 -170.4469 -293.8541 cm -BT -/F15 10.9091 Tf 170.4469 293.8541 Td[(Figu)1(re)-334(5:)-444(S)1(e)-1(tu)1(p)-333(of)-333(a)-333(one-)-1(l)1(e)-1(v)28(el)-333(Sc)27(h)29(w)27(arz)-333(precondi)1(tioner.)]TJ -ET -1 0 0 1 429.2047 293.8541 cm -0 g 0 G -1 0 0 1 -335.6045 -14.0764 cm -0 g 0 G -1 0 0 1 0 -188.1447 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -424 0 obj << -/Type /Page -/Contents 425 0 R -/Resources 423 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 428 0 R -/Annots [ 427 0 R ] ->> endobj -427 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 739.0056 100.6267 748.4526] -/Subtype /Link -/A << /S /GoTo /D (section.5) >> ->> endobj -426 0 obj << -/D [424 0 R /XYZ 93.6002 740.0018 null] ->> endobj -416 0 obj << -/D [424 0 R /XYZ 196.962 578.3539 null] ->> endobj -417 0 obj << -/D [424 0 R /XYZ 190.3105 412.9907 null] ->> endobj -418 0 obj << -/D [424 0 R /XYZ 218.2045 307.4033 null] ->> endobj -423 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F46 219 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -431 0 obj << -/Length 8713 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(20)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -498.8509 -740.0018 cm -BT -/F19 14.3462 Tf 86.3998 704.1363 Td[(6)-1125(User)-376(In)32(t)-1(er)-1(f)1(ace)]TJ/F15 10.9091 Tf 0 -24.3522 Td[(The)-396(basic)-397(u)1(s)-1(er)-396(in)29(te)-1(r)1(face)-397(of)-396(M)1(LD2P4)-396(consists)-397(of)-396(six)-396(r)1(outin)1(e)-1(s.)-632(T)-1(h)1(e)-397(f)1(our)-396(r)1(outin)1(e)-1(s)]TJ/F46 10.9091 Tf 389.5423 0 Td[(mld_)]TJ -389.5423 -13.5492 Td[(precinit)]TJ/F15 10.9091 Tf 45.8177 0 Td[(,)]TJ/F46 10.9091 Tf 6.0956 0 Td[(mld_precset)]TJ/F15 10.9091 Tf 62.9993 0 Td[(,)]TJ/F46 10.9091 Tf 6.0956 0 Td[(mld_precbld)]TJ/F15 10.9091 Tf 65.9218 0 Td[(and)]TJ/F46 10.9091 Tf 20.4983 0 Td[(mld_precaply)]TJ/F15 10.9091 Tf 71.649 0 Td[(encapsulate)-268(all)-267(the)-268(fu)1(nction-)]TJ -279.0773 -13.5492 Td[(alit)1(ie)-1(s)-323(f)1(or)-323(th)1(e)-323(s)-1(etup)-322(an)1(d)-323(t)1(he)-323(app)1(lication)-322(of)-322(an)28(y)-322(one-)-1(lev)28(el)-323(an)1(d)-323(m)28(ult)1(i-)-1(l)1(e)-1(v)28(el)-323(p)1(rec)-1(on)1(diti)1(oner)]TJ 0 -13.5492 Td[(impl)1(e)-1(me)-1(n)29(te)-1(d)-292(in)-292(th)1(e)-293(pac)27(k)56(age.)-431(The)-293(rou)1(tin)1(e)]TJ/F46 10.9091 Tf 198.5716 0 Td[(mld_precfree)]TJ/F15 10.9091 Tf 71.9188 0 Td[(deallo)-27(c)-1(ates)-293(the)-293(p)1(rec)-1(on)1(diti)1(oner)]TJ -270.4904 -13.5492 Td[(dat)1(a)-388(structu)1(re)-1(,)-400(w)-1(h)1(ile)]TJ/F46 10.9091 Tf 105.0723 0 Td[(mld_precdescr)]TJ/F15 10.9091 Tf 78.6811 0 Td[(pr)1(in)28(ts)-388(a)-387(des)-1(cri)1(ption)-387(of)-387(th)1(e)-388(pr)1(e)-1(cond)1(ition)1(e)-1(r)-387(s)-1(etu)1(p)]TJ -183.7534 -13.5492 Td[(b)28(y)-333(th)1(e)-334(use)-1(r)1(.)]TJ 16.9365 -13.5492 Td[(F)84(or)-222(e)-1(ac)28(h)-222(rou)1(tine,)-244(the)-222(s)-1(ame)-223(u)1(s)-1(er)-222(in)28(terf)1(ac)-1(e)-222(is)-223(o)28(v)28(e)-1(r)1(loaded)-222(with)-221(re)-1(sp)-27(e)-1(ct)-222(to)-222(the)-223(r)1(e)-1(al)1(/c)-1(omplex)]TJ -16.9365 -13.5492 Td[(cas)-1(e)-371(and)-370(th)1(e)-372(sin)1(gle)-1(/d)1(oub)1(le)-371(pr)1(e)-1(cis)-1(i)1(on;)-389(argu)1(m)-1(en)28(ts)-371(with)-370(app)1(rop)1(riate)-371(dat)1(a)-371(t)28(yp)-27(e)-1(s)-371(m)27(u)1(s)-1(t)-370(b)-28(e)]TJ 0 -13.5492 Td[(passe)-1(d)-333(to)-333(th)1(e)-334(rou)1(tine,)-333(i.e.)]TJ -ET -1 0 0 1 86.3998 548.875 cm -0 g 0 G -1 0 0 1 -86.3998 -548.875 cm -BT -/F27 10.9091 Tf 102.7635 548.875 Td[(\017)]TJ -ET -1 0 0 1 108.218 548.875 cm -0 g 0 G -1 0 0 1 -108.218 -548.875 cm -BT -/F15 10.9091 Tf 113.6726 548.875 Td[(th)1(e)-464(sparse)-464(matri)1(x)-463(data)-463(stru)1(c)-1(tu)1(re,)-496(con)28(tain)1(in)1(g)-464(t)1(he)-464(matr)1(ix)-463(to)-463(b)-27(e)-464(pr)1(e)-1(cond)1(ition)1(e)-1(d)1(,)]TJ 0 -13.5492 Td[(m)27(u)1(s)-1(t)-423(b)-28(e)-424(of)-423(t)28(yp)-28(e)]TJ/F46 10.9091 Tf 82.7978 0 Td[(mld_)]TJ/F20 10.9091 Tf 22.9088 0 Td[(x)]TJ/F46 10.9091 Tf 6.3742 0 Td[(spmat_type)]TJ/F15 10.9091 Tf 61.8958 0 Td[(with)]TJ/F20 10.9091 Tf 25.8358 0 Td[(x)]TJ/F15 10.9091 Tf 10.9979 0 Td[(=)]TJ/F46 10.9091 Tf 13.1085 0 Td[(s)]TJ/F15 10.9091 Tf 10.3509 0 Td[(for)-423(real)-424(singl)1(e)-425(p)1(rec)-1(ision)1(,)]TJ/F20 10.9091 Tf 121.0749 0 Td[(x)]TJ/F15 10.9091 Tf 10.9979 0 Td[(=)]TJ/F46 10.9091 Tf 13.1085 0 Td[(d)]TJ/F15 10.9091 Tf -379.4511 -13.5492 Td[(for)-370(real)-371(dou)1(ble)-371(pr)1(e)-1(cision,)]TJ/F20 10.9091 Tf 123.4131 0 Td[(x)]TJ/F15 10.9091 Tf 10.4215 0 Td[(=)]TJ/F46 10.9091 Tf 12.5322 0 Td[(c)]TJ/F15 10.9091 Tf 9.7744 0 Td[(for)-370(c)-1(ompl)1(e)-1(x)-371(sin)1(gle)-372(p)1(rec)-1(i)1(s)-1(ion)1(,)]TJ/F20 10.9091 Tf 140.1102 0 Td[(x)]TJ/F15 10.9091 Tf 10.4214 0 Td[(=)]TJ/F46 10.9091 Tf 12.5322 0 Td[(z)]TJ/F15 10.9091 Tf 9.7745 0 Td[(for)-370(c)-1(ompl)1(e)-1(x)]TJ -328.9795 -13.5492 Td[(dou)1(bl)1(e)-334(pr)1(e)-1(cis)-1(i)1(on;)]TJ -ET -1 0 0 1 86.3998 485.7118 cm -0 g 0 G -1 0 0 1 -86.3998 -485.7118 cm -BT -/F27 10.9091 Tf 102.7635 485.7118 Td[(\017)]TJ -ET -1 0 0 1 108.218 485.7118 cm -0 g 0 G -1 0 0 1 -108.218 -485.7118 cm -BT -/F15 10.9091 Tf 113.6726 485.7118 Td[(th)1(e)-338(p)1(re)-1(cond)1(ition)1(e)-1(r)-336(data)-337(stru)1(c)-1(tu)1(re)-337(m)27(u)1(s)-1(t)-337(b)-27(e)-338(of)-336(t)28(yp)-27(e)]TJ/F46 10.9091 Tf 241.7755 0 Td[(mld_)]TJ/F20 10.9091 Tf 22.9088 0 Td[(x)]TJ/F46 10.9091 Tf 6.3742 0 Td[(prec_type)]TJ/F15 10.9091 Tf 51.5449 0 Td[(,)-338(with)]TJ/F20 10.9091 Tf 31.6054 0 Td[(x)]TJ/F15 10.9091 Tf 10.0506 0 Td[(=)]TJ/F46 10.9091 Tf 12.1613 0 Td[(s)]TJ/F15 10.9091 Tf 5.7273 0 Td[(,)]TJ/F46 10.9091 Tf -382.148 -13.5492 Td[(d)]TJ/F15 10.9091 Tf 5.7272 0 Td[(,)]TJ/F46 10.9091 Tf 6.6667 0 Td[(c)]TJ/F15 10.9091 Tf 5.7272 0 Td[(,)]TJ/F46 10.9091 Tf 6.6666 0 Td[(z)]TJ/F15 10.9091 Tf 5.7272 0 Td[(,)-333(ac)-1(cord)1(ing)-333(to)-333(the)-333(s)-1(p)1(arse)-334(m)-1(at)1(rix)-333(dat)1(a)-334(stru)1(c)-1(tu)1(re;)]TJ -ET -1 0 0 1 86.3998 449.647 cm -0 g 0 G -1 0 0 1 -86.3998 -449.647 cm -BT -/F27 10.9091 Tf 102.7635 449.647 Td[(\017)]TJ -ET -1 0 0 1 108.218 449.647 cm -0 g 0 G -1 0 0 1 -108.218 -449.647 cm -BT -/F15 10.9091 Tf 113.6726 449.647 Td[(th)1(e)-322(arr)1(a)27(y)1(s)-322(con)28(tain)1(ing)-321(th)1(e)-322(v)28(ec)-1(t)1(ors)]TJ/F24 10.9091 Tf 159.8466 0 Td[(v)]TJ/F15 10.9091 Tf 9.1819 0 Td[(and)]TJ/F24 10.9091 Tf 21.0784 0 Td[(w)]TJ/F15 10.9091 Tf 11.6062 0 Td[(in)28(v)28(ol)1(v)28(e)-1(d)-320(in)-321(th)1(e)-322(p)1(rec)-1(on)1(diti)1(oner)-321(app)1(lica-)]TJ -201.7131 -13.5492 Td[(tion)]TJ/F24 10.9091 Tf 21.3155 0 Td[(w)]TJ/F15 10.9091 Tf 11.1338 0 Td[(=)]TJ/F24 10.9091 Tf 11.5151 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 3.9588 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F24 10.9091 Tf 4.7323 -3.9588 Td[(v)]TJ/F15 10.9091 Tf 8.2069 0 Td[(m)27(u)1(s)-1(t)-231(b)-27(e)-233(of)-231(t)28(yp)-27(e)]TJ/F20 10.9091 Tf 74.4135 0 Td[(typ)51(e)]TJ/F46 10.9091 Tf 19.7771 0 Td[(\050)]TJ/F20 10.9091 Tf 5.7272 0 Td[(kind)]TJ -ET -1 0 0 1 309.5948 436.0978 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.3455 0.1992 l -S -Q -1 0 0 1 -309.5948 -436.0978 cm -BT -/F20 10.9091 Tf 312.9403 436.0978 Td[(p)51(ar)51(ameter)]TJ/F46 10.9091 Tf 48.5678 0 Td[(\051)]TJ/F15 10.9091 Tf 5.7272 0 Td[(,)-252(with)]TJ/F20 10.9091 Tf 29.5194 0 Td[(typ)51(e)]TJ/F15 10.9091 Tf 22.3047 0 Td[(=)]TJ/F46 10.9091 Tf 11.0125 0 Td[(real)]TJ/F15 10.9091 Tf 22.9088 0 Td[(,)]TJ/F46 10.9091 Tf 5.7797 0 Td[(complex)]TJ/F15 10.9091 Tf -345.0879 -13.5492 Td[(and)]TJ/F20 10.9091 Tf 21.3918 0 Td[(kind)]TJ -ET -1 0 0 1 155.8059 422.5487 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.3455 0.1992 l -S -Q -1 0 0 1 -155.8059 -422.5487 cm -BT -/F20 10.9091 Tf 159.1514 422.5487 Td[(p)51(ar)51(ameter)]TJ/F15 10.9091 Tf 52.3838 0 Td[(=)]TJ/F46 10.9091 Tf 12.3008 0 Td[(kind\0501.e0\051)]TJ/F15 10.9091 Tf 57.2721 0 Td[(,)]TJ/F46 10.9091 Tf 6.8912 0 Td[(kind\0501.d0\051)]TJ/F15 10.9091 Tf 57.2721 0 Td[(,)-354(acc)-1(or)1(din)1(g)-350(to)-350(th)1(e)-350(s)-1(p)1(arse)-351(matri)1(x)]TJ -231.5989 -13.5492 Td[(and)-304(pr)1(e)-1(cond)1(ition)1(e)-1(r)-305(d)1(ata)-305(s)-1(tr)1(uctur)1(e)-1(;)-314(note)-305(th)1(at)-305(the)-305(PSBLAS)-305(mo)-28(d)1(ule)]TJ/F46 10.9091 Tf 316.4518 0 Td[(psb_base_mod)]TJ/F15 10.9091 Tf -316.4518 -13.5492 Td[(pr)1(o)28(vides)-334(th)1(e)-334(constan)28(ts)]TJ/F46 10.9091 Tf 110.2123 0 Td[(psb_spk_)]TJ/F15 10.9091 Tf 49.454 0 Td[(=)]TJ/F46 10.9091 Tf 12.1212 0 Td[(kind\0501.e0\051)]TJ/F15 10.9091 Tf 60.9085 0 Td[(and)]TJ/F46 10.9091 Tf 21.2121 0 Td[(psb_dpk_)]TJ/F15 10.9091 Tf 49.4541 0 Td[(=)]TJ/F46 10.9091 Tf 12.1212 0 Td[(kind\0501.d0\051)]TJ/F15 10.9091 Tf 57.2721 0 Td[(;)]TJ -ET -1 0 0 1 86.3998 372.9347 cm -0 g 0 G -1 0 0 1 -86.3998 -372.9347 cm -BT -/F27 10.9091 Tf 102.7635 372.9347 Td[(\017)]TJ -ET -1 0 0 1 108.218 372.9347 cm -0 g 0 G -1 0 0 1 -108.218 -372.9347 cm -BT -/F15 10.9091 Tf 113.6726 372.9347 Td[(real)-450(p)1(arame)-1(ters)-450(de\014n)1(ing)-450(th)1(e)-451(p)1(rec)-1(on)1(dit)1(ioner)-450(m)28(ust)-450(b)-28(e)-450(declared)-450(acc)-1(or)1(din)1(g)-450(to)-450(the)]TJ 0 -13.5492 Td[(pr)1(e)-1(cision)-245(of)-245(the)-245(s)-1(p)1(arse)-246(m)-1(atr)1(ix)-245(and)-245(p)1(rec)-1(on)1(diti)1(oner)-246(d)1(ata)-245(s)-1(tr)1(uctures)-246(\050se)-1(e)-245(Sec)-1(tion)]TJ -ET -1 0 0 1 477.6387 359.3855 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -477.6387 -359.3855 cm -BT -/F15 10.9091 Tf 477.6387 359.3855 Td[(6.2)]TJ -ET -1 0 0 1 491.5781 359.3855 cm -0 g 0 G -1 0 0 1 -491.5781 -359.3855 cm -BT -/F15 10.9091 Tf 491.5781 359.3855 Td[(\051.)]TJ -405.1783 -22.5156 Td[(A)-333(des)-1(crip)1(tion)-333(of)-333(eac)27(h)-333(r)1(outin)1(e)-334(is)-333(giv)28(e)-1(n)-333(i)1(n)-333(the)-333(re)-1(main)1(der)-333(of)-333(thi)1(s)-334(s)-1(ection.)]TJ -ET -1 0 0 1 86.3998 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -430 0 obj << -/Type /Page -/Contents 431 0 R -/Resources 429 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 428 0 R -/Annots [ 433 0 R ] ->> endobj -433 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [476.6425 355.662 492.5744 368.5636] -/Subtype /Link -/A << /S /GoTo /D (subsection.6.2) >> ->> endobj -432 0 obj << -/D [430 0 R /XYZ 86.3998 740.0018 null] ->> endobj -66 0 obj << -/D [430 0 R /XYZ 86.3998 715.0952 null] ->> endobj -429 0 obj << -/Font << /F15 131 0 R /F43 134 0 R /F19 113 0 R /F46 219 0 R /F27 189 0 R /F20 181 0 R /F24 186 0 R /F28 293 0 R /F22 296 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -436 0 obj << -/Length 4242 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(6)]TJ -ET -1 0 0 1 99.6305 740.0018 cm -0 g 0 G -1 0 0 1 -99.6305 -740.0018 cm -BT -/F43 10.9091 Tf 103.7516 740.0018 Td[(Use)1(r)-378(Interf)89(a)22(ce)]TJ/F15 10.9091 Tf 391.3906 0 Td[(21)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -506.0513 -740.0018 cm -BT -/F19 11.9552 Tf 93.6002 704.1363 Td[(6.)-1(1)-1125(Subr)-1(out)-1(ine)-376(ml)-1(d)]TJ -ET -1 0 0 1 216.6225 704.1363 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -4.0349 0.1992 l -S -Q -1 0 0 1 -216.6225 -704.1363 cm -BT -/F19 11.9552 Tf 220.6574 704.1363 Td[(pre)-1(cini)-1(t)]TJ -ET -1 0 0 1 219.9175 683.5417 cm -0 g 0 G -0 g 0 G -1 0 0 1 -219.9175 -683.5417 cm -BT -/F46 10.9091 Tf 225.372 683.5417 Td[(mld_precinit\050p,ptype,info\051)]TJ -14.318 -13.5492 Td[(mld_precinit\050p,ptype,info,nlev\051)]TJ/F15 10.9091 Tf -117.4538 -25.5044 Td[(This)-268(rou)1(tine)-268(allo)-28(cates)-269(and)-267(init)1(ialize)-1(s)-268(the)-269(p)1(rec)-1(on)1(dit)1(ioner)-268(data)-268(stru)1(c)-1(tu)1(re,)-281(ac)-1(cord)1(ing)-268(to)-268(the)]TJ 0 -13.5492 Td[(pr)1(e)-1(cond)1(ition)1(e)-1(r)-333(t)28(yp)-27(e)-334(c)28(hose)-1(n)-333(b)29(y)-334(t)1(he)-334(u)1(s)-1(er.)]TJ/F19 11.9552 Tf 0 -40.6476 Td[(Arg)-1(umen)31(t)-1(s)]TJ/F46 10.9091 Tf 22.9141 -12.8052 Td[(p)-3689(type\050mld_)]TJ/F20 10.9091 Tf 97.5157 0 Td[(x)]TJ/F46 10.9091 Tf 6.3742 0 Td[(prec_type\051,)-525(intent\050inout\051)]TJ/F15 10.9091 Tf 143.1803 0 Td[(.)]TJ -201.0994 -13.5492 Td[(The)-478(pr)1(e)-1(cond)1(ition)1(e)-1(r)-478(d)1(ata)-478(stru)1(c)-1(tu)1(re.)-879(Note)-478(th)1(at)]TJ/F20 10.9091 Tf 233.1081 0 Td[(x)]TJ/F15 10.9091 Tf 11.5884 0 Td[(m)27(u)1(s)-1(t)-477(b)-28(e)-478(c)27(h)1(os)-1(en)-478(ac-)]TJ -244.6965 -13.5492 Td[(cordi)1(ng)-269(to)-269(the)-270(r)1(e)-1(al/complex,)-282(singl)1(e)-1(/d)1(oub)1(le)-270(pr)1(e)-1(cision)-269(v)28(ers)-1(i)1(on)-269(of)-269(MLD2P)1(4)]TJ 0 -13.5492 Td[(un)1(der)-333(use)-1(.)]TJ/F46 10.9091 Tf -45.9708 -13.5492 Td[(ptype)-1589(character\050len=*\051,)-525(intent\050in\051)]TJ/F15 10.9091 Tf 206.3327 0 Td[(.)]TJ -160.3619 -13.5492 Td[(The)-334(t)28(y)1(p)-28(e)-334(of)-332(prec)-1(on)1(di)1(tioner.)-444(Its)-334(v)56(alu)1(e)-1(s)-334(ar)1(e)-334(sp)-28(ec)-1(i)1(\014ed)-333(in)-333(T)83(ab)1(le)]TJ -ET -1 0 0 1 451.849 509.7402 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -451.849 -509.7402 cm -BT -/F15 10.9091 Tf 451.849 509.7402 Td[(1)]TJ -ET -1 0 0 1 457.3035 509.7402 cm -0 g 0 G -1 0 0 1 -457.3035 -509.7402 cm -BT -/F15 10.9091 Tf 457.3035 509.7402 Td[(.)]TJ -294.8184 -13.5492 Td[(Note)-334(th)1(at)-333(the)-334(stri)1(ngs)-334(ar)1(e)-334(c)-1(ase)-334(in)1(s)-1(ensiti)1(v)28(e)-1(.)]TJ/F46 10.9091 Tf -45.9708 -13.5492 Td[(info)-2114(integer,)-525(intent\050out\051)]TJ/F15 10.9091 Tf 160.515 0 Td[(.)]TJ -114.5442 -13.5492 Td[(Er)1(ror)-333(co)-28(de.)-444(If)-333(no)-333(e)-1(r)1(ror,)-333(0)-333(is)-334(r)1(e)-1(tu)1(rn)1(e)-1(d)1(.)-445(S)1(e)-1(e)-333(Sec)-1(tion)]TJ -ET -1 0 0 1 403.2429 469.0926 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -403.2429 -469.0926 cm -BT -/F15 10.9091 Tf 403.2429 469.0926 Td[(7)]TJ -ET -1 0 0 1 408.6974 469.0926 cm -0 g 0 G -1 0 0 1 -408.6974 -469.0926 cm -BT -/F15 10.9091 Tf 412.3338 469.0926 Td[(for)-333(d)1(e)-1(t)1(ails.)]TJ/F46 10.9091 Tf -295.8195 -13.5492 Td[(nlev)-2114(integer,)-525(optional,)-525(intent\050in\051)]TJ/F15 10.9091 Tf 212.0599 0 Td[(.)]TJ -166.0891 -13.5492 Td[(The)-437(n)29(um)28(b)-28(er)-436(of)-436(lev)28(e)-1(ls)-436(of)-436(the)-437(m)28(ult)1(ilev)28(e)-1(l)-436(pr)1(e)-1(cond)1(ition)1(e)-1(r)1(.)-754(If)]TJ/F46 10.9091 Tf 284.637 0 Td[(nlev)]TJ/F15 10.9091 Tf 27.6692 0 Td[(is)-437(n)1(ot)]TJ -312.3062 -13.5492 Td[(pr)1(e)-1(se)-1(n)29(t)-418(an)1(d)]TJ/F46 10.9091 Tf 61.0162 0 Td[(ptype)]TJ/F15 10.9091 Tf 28.636 0 Td[(=)]TJ/F46 10.9091 Tf 8.4849 0 Td[('ML')]TJ/F15 10.9091 Tf 22.9088 0 Td[(,)]TJ/F46 10.9091 Tf 7.5838 0 Td[('ml')]TJ/F15 10.9091 Tf 22.9089 0 Td[(,)-438(then)]TJ/F46 10.9091 Tf 33.5787 0 Td[(nlev)]TJ/F15 10.9091 Tf 22.9089 0 Td[(=2)-417(is)-418(ass)-1(u)1(m)-1(ed.)-696(Oth)1(e)-1(r)1(w)-1(i)1(s)-1(e,)]TJ/F46 10.9091 Tf -208.0262 -13.5492 Td[(nlev)]TJ/F15 10.9091 Tf 26.5452 0 Td[(is)-334(i)1(gnored.)]TJ -ET -1 0 0 1 93.6002 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -435 0 obj << -/Type /Page -/Contents 436 0 R -/Resources 434 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 428 0 R -/Annots [ 438 0 R 439 0 R 440 0 R ] ->> endobj -438 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 739.0056 100.6267 748.4526] -/Subtype /Link -/A << /S /GoTo /D (section.6) >> ->> endobj -439 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [450.8527 504.6791 458.2998 518.3122] -/Subtype /Link -/A << /S /GoTo /D (table.1) >> ->> endobj -440 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [402.2466 464.0316 409.6937 477.6646] -/Subtype /Link -/A << /S /GoTo /D (section.7) >> ->> endobj -437 0 obj << -/D [435 0 R /XYZ 93.6002 740.0018 null] ->> endobj -70 0 obj << -/D [435 0 R /XYZ 93.6002 715.0952 null] ->> endobj -434 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F19 113 0 R /F46 219 0 R /F20 181 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -443 0 obj << -/Length 8453 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(22)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -498.8509 -740.0018 cm -BT -/F19 11.9552 Tf 86.3998 704.1363 Td[(6.)-1(2)-1125(Subr)-1(out)-1(ine)-376(ml)-1(d)]TJ -ET -1 0 0 1 209.422 704.1363 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -4.0349 0.1992 l -S -Q -1 0 0 1 -209.422 -704.1363 cm -BT -/F19 11.9552 Tf 213.4569 704.1363 Td[(pre)-1(cset)]TJ -ET -1 0 0 1 206.9898 683.5417 cm -0 g 0 G -0 g 0 G -1 0 0 1 -206.9898 -683.5417 cm -BT -/F46 10.9091 Tf 212.4444 683.5417 Td[(mld_precset\050p,what,val,info\051)]TJ/F15 10.9091 Tf -126.0446 -25.5044 Td[(This)-389(r)1(outin)1(e)-389(s)-1(ets)-389(the)-389(p)1(arame)-1(ters)-389(d)1(e)-1(\014)1(nin)1(g)-389(th)1(e)-389(precondi)1(tioner.)-610(Mor)1(e)-389(precis)-1(ely)84(,)-403(t)1(he)-389(pa-)]TJ 0 -13.5492 Td[(ramete)-1(r)-333(id)1(e)-1(n)29(ti\014ed)-333(b)28(y)]TJ/F46 10.9091 Tf 103.394 0 Td[(what)]TJ/F15 10.9091 Tf 26.5452 0 Td[(is)-334(assigned)-333(the)-333(v)55(al)1(ue)-334(con)28(tain)1(e)-1(d)-332(in)]TJ/F46 10.9091 Tf 163.2123 0 Td[(val)]TJ/F15 10.9091 Tf 17.1816 0 Td[(.)]TJ/F19 11.9552 Tf -310.3331 -40.6476 Td[(Arg)-1(umen)31(t)-1(s)]TJ/F46 10.9091 Tf 22.9141 -12.8052 Td[(p)-3689(type\050mld_)]TJ/F20 10.9091 Tf 97.5157 0 Td[(x)]TJ/F46 10.9091 Tf 6.3742 0 Td[(prec_type\051,)-525(intent\050inout\051)]TJ/F15 10.9091 Tf 143.1803 0 Td[(.)]TJ -201.0994 -13.5492 Td[(The)-478(pr)1(e)-1(cond)1(ition)1(e)-1(r)-478(d)1(ata)-478(stru)1(c)-1(tu)1(re.)-879(Note)-478(th)1(at)]TJ/F20 10.9091 Tf 233.1081 0 Td[(x)]TJ/F15 10.9091 Tf 11.5884 0 Td[(m)27(u)1(s)-1(t)-477(b)-28(e)-478(c)27(h)1(os)-1(en)-478(ac-)]TJ -244.6965 -13.5492 Td[(cordi)1(ng)-269(to)-269(the)-270(r)1(e)-1(al/complex,)-282(singl)1(e)-1(/d)1(oub)1(le)-270(pr)1(e)-1(cision)-269(v)28(ers)-1(i)1(on)-269(of)-269(MLD2P)1(4)]TJ 0 -13.5492 Td[(un)1(der)-333(use)-1(.)]TJ/F46 10.9091 Tf -45.9708 -13.5492 Td[(what)-2114(integer,)-525(intent\050in\051)]TJ/F15 10.9091 Tf 154.7878 0 Td[(.)]TJ -108.817 -13.5492 Td[(The)-324(n)28(u)1(m)27(b)-27(e)-1(r)-323(iden)28(tif)1(yin)1(g)-324(the)-324(p)1(arame)-1(ter)-324(to)-323(b)-28(e)-324(s)-1(et.)-441(A)-324(mnemonic)-324(c)-1(on)1(s)-1(t)1(an)28(t)]TJ 0 -13.5492 Td[(has)-300(b)-27(e)-1(en)-300(ass)-1(o)-27(c)-1(iat)1(e)-1(d)-299(to)-300(e)-1(ac)28(h)-300(of)-299(thes)-1(e)-300(n)28(u)1(m)27(b)-27(e)-1(r)1(s)-1(,)-306(as)-301(r)1(e)-1(p)-27(orted)-300(i)1(n)-300(T)83(ab)1(le)-1(s)]TJ -ET -1 0 0 1 477.8664 509.7402 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -477.8664 -509.7402 cm -BT -/F15 10.9091 Tf 477.8664 509.7402 Td[(2)]TJ -ET -1 0 0 1 483.3209 509.7402 cm -0 g 0 G -1 0 0 1 -483.3209 -509.7402 cm -BT -/F15 10.9091 Tf 483.3209 509.7402 Td[(-)]TJ -ET -1 0 0 1 486.9573 509.7402 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -486.9573 -509.7402 cm -BT -/F15 10.9091 Tf 486.9573 509.7402 Td[(5)]TJ -ET -1 0 0 1 492.4118 509.7402 cm -0 g 0 G -1 0 0 1 -492.4118 -509.7402 cm -BT -/F15 10.9091 Tf 492.4118 509.7402 Td[(.)]TJ/F46 10.9091 Tf -383.098 -13.5492 Td[(val)-2639(integer)]TJ/F20 10.9091 Tf 105.1364 0 Td[(or)]TJ/F46 10.9091 Tf 30.4249 0 Td[(character\050len=*\051)]TJ/F20 10.9091 Tf 110.7104 0 Td[(or)]TJ/F46 10.9091 Tf 30.425 0 Td[(real\050psb_spk_\051)]TJ/F20 10.9091 Tf 99.2559 0 Td[(or)]TJ/F46 10.9091 Tf -329.9817 -13.5492 Td[(real\050psb_dpk_\051)]TJ/F15 10.9091 Tf 80.1809 0 Td[(,)]TJ/F46 10.9091 Tf 6.6667 0 Td[(intent\050in\051)]TJ/F15 10.9091 Tf 57.2721 0 Td[(.)]TJ -144.1197 -13.5492 Td[(The)-306(v)56(alu)1(e)-307(of)-305(th)1(e)-306(paramete)-1(r)-305(to)-306(b)-27(e)-306(se)-1(t.)-435(The)-306(l)1(is)-1(t)-305(of)-305(allo)28(w)27(ed)-305(v)55(al)1(ues)-306(and)-305(the)]TJ 0 -13.5492 Td[(corres)-1(p)-27(ond)1(in)1(g)-392(dat)1(a)-392(t)28(yp)-27(e)-1(s)-392(i)1(s)-392(giv)28(en)-392(i)1(n)-391(T)83(ables)]TJ -ET -1 0 0 1 370.0301 455.5434 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -370.0301 -455.5434 cm -BT -/F15 10.9091 Tf 370.0301 455.5434 Td[(2)]TJ -ET -1 0 0 1 375.4847 455.5434 cm -0 g 0 G -1 0 0 1 -375.4847 -455.5434 cm -BT -/F15 10.9091 Tf 375.4847 455.5434 Td[(-)]TJ -ET -1 0 0 1 379.121 455.5434 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -379.121 -455.5434 cm -BT -/F15 10.9091 Tf 379.121 455.5434 Td[(5)]TJ -ET -1 0 0 1 384.5756 455.5434 cm -0 g 0 G -1 0 0 1 -384.5756 -455.5434 cm -BT -/F15 10.9091 Tf 384.5756 455.5434 Td[(.)-619(Wh)1(e)-1(n)-391(t)1(he)-392(v)56(alue)-391(is)-392(of)]TJ -229.2909 -13.5492 Td[(t)28(yp)-27(e)]TJ/F46 10.9091 Tf 24.5455 0 Td[(character\050len=*\051)]TJ/F15 10.9091 Tf 91.6353 0 Td[(,)-333(it)-333(is)-334(al)1(s)-1(o)-333(treate)-1(d)-332(as)-334(c)-1(ase)-334(in)1(s)-1(ensitiv)28(e.)]TJ/F46 10.9091 Tf -162.1517 -13.5492 Td[(info)-2114(integer,)-525(intent\050out\051)]TJ/F15 10.9091 Tf 160.5151 0 Td[(.)]TJ -114.5442 -13.5492 Td[(Er)1(ror)-333(co)-28(de.)-444(If)-333(no)-333(e)-1(r)1(ror,)-333(0)-333(is)-334(r)1(e)-1(tu)1(rn)1(e)-1(d)1(.)-445(S)1(e)-1(e)-333(Sec)-1(tion)]TJ -ET -1 0 0 1 396.0424 414.8958 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -396.0424 -414.8958 cm -BT -/F15 10.9091 Tf 396.0424 414.8958 Td[(7)]TJ -ET -1 0 0 1 401.497 414.8958 cm -0 g 0 G -1 0 0 1 -401.497 -414.8958 cm -BT -/F15 10.9091 Tf 405.1333 414.8958 Td[(for)-333(d)1(e)-1(t)1(ails.)]TJ -318.7335 -18.6102 Td[(A)-383(v)56(ari)1(e)-1(t)28(y)-383(of)-382(\050on)1(e)-1(-lev)28(e)-1(l)-383(an)1(d)-383(m)28(ul)1(ti-le)-1(v)28(el\051)-383(p)1(rec)-1(on)1(dit)1(ioners)-383(c)-1(an)-382(b)-27(e)-384(ob)1(tain)1(e)-1(d)-382(b)28(y)-383(a)-383(sui)1(table)]TJ 0 -13.5492 Td[(se)-1(tti)1(ng)-425(of)-425(th)1(e)-426(pr)1(e)-1(cond)1(ition)1(e)-1(r)-425(p)1(arame)-1(t)1(e)-1(rs.)-720(Thes)-1(e)-425(par)1(am)-1(ete)-1(r)1(s)-426(can)-425(b)-27(e)-426(logically)-425(d)1(ivi)1(ded)]TJ 0 -13.5492 Td[(in)28(t)1(o)-334(f)1(our)-333(grou)1(ps,)-333(i.e.)-333(paramete)-1(r)1(s)-334(de\014n)1(ing)]TJ -ET -1 0 0 1 86.3998 346.6716 cm -0 g 0 G -1 0 0 1 -86.3998 -346.6716 cm -BT -/F15 10.9091 Tf 99.7331 346.6716 Td[(1.)]TJ -ET -1 0 0 1 108.218 346.6716 cm -0 g 0 G -1 0 0 1 -108.218 -346.6716 cm -BT -/F15 10.9091 Tf 113.6726 346.6716 Td[(th)1(e)-334(t)28(yp)-27(e)-334(of)-333(m)27(u)1(lti-lev)28(e)-1(l)-333(p)1(rec)-1(on)1(diti)1(oner;)]TJ -ET -1 0 0 1 86.3998 324.1561 cm -0 g 0 G -1 0 0 1 -86.3998 -324.1561 cm -BT -/F15 10.9091 Tf 99.7331 324.1561 Td[(2.)]TJ -ET -1 0 0 1 108.218 324.1561 cm -0 g 0 G -1 0 0 1 -108.218 -324.1561 cm -BT -/F15 10.9091 Tf 113.6726 324.1561 Td[(th)1(e)-334(one-)-1(l)1(e)-1(v)28(el)-333(precondi)1(tioner)-333(used)-333(as)-334(s)-1(mo)-28(oth)1(e)-1(r)1(;)]TJ -ET -1 0 0 1 86.3998 301.6405 cm -0 g 0 G -1 0 0 1 -86.3998 -301.6405 cm -BT -/F15 10.9091 Tf 99.7331 301.6405 Td[(3.)]TJ -ET -1 0 0 1 108.218 301.6405 cm -0 g 0 G -1 0 0 1 -108.218 -301.6405 cm -BT -/F15 10.9091 Tf 113.6726 301.6405 Td[(th)1(e)-334(aggregation)-333(algor)1(ithm;)]TJ -ET -1 0 0 1 86.3998 279.1249 cm -0 g 0 G -1 0 0 1 -86.3998 -279.1249 cm -BT -/F15 10.9091 Tf 99.7331 279.1249 Td[(4.)]TJ -ET -1 0 0 1 108.218 279.1249 cm -0 g 0 G -1 0 0 1 -108.218 -279.1249 cm -BT -/F15 10.9091 Tf 113.6726 279.1249 Td[(th)1(e)-334(c)-1(oar)1(s)-1(e-)-1(space)-334(correction)-333(at)-333(the)-333(c)-1(oarses)-1(t)-333(lev)28(e)-1(l.)]TJ -27.2728 -22.5156 Td[(A)-313(list)-314(of)-313(t)1(he)-314(p)1(arame)-1(ters)-314(th)1(at)-313(c)-1(an)-313(b)-27(e)-314(se)-1(t,)-317(alon)1(g)-313(w)-1(i)1(th)-313(their)-313(allo)28(w)28(e)-1(d)-313(an)1(d)-313(defau)1(lt)-313(v)56(alues)-1(,)-317(is)]TJ 0 -13.5492 Td[(giv)28(en)-296(in)-295(T)83(ables)]TJ -ET -1 0 0 1 160.6958 243.0601 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -160.6958 -243.0601 cm -BT -/F15 10.9091 Tf 160.6958 243.0601 Td[(2)]TJ -ET -1 0 0 1 166.1504 243.0601 cm -0 g 0 G -1 0 0 1 -166.1504 -243.0601 cm -BT -/F15 10.9091 Tf 166.1504 243.0601 Td[(-)]TJ -ET -1 0 0 1 169.7867 243.0601 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -169.7867 -243.0601 cm -BT -/F15 10.9091 Tf 169.7867 243.0601 Td[(5)]TJ -ET -1 0 0 1 175.2413 243.0601 cm -0 g 0 G -1 0 0 1 -175.2413 -243.0601 cm -BT -/F15 10.9091 Tf 175.2413 243.0601 Td[(.)-432(F)84(or)-296(a)-296(detailed)-296(d)1(e)-1(sc)-1(r)1(ipt)1(ion)-296(of)-295(the)-296(m)-1(eanin)1(g)-296(of)-296(th)1(e)-297(p)1(arame)-1(ters,)-304(p)1(leas)-1(e)]TJ -88.8415 -13.5492 Td[(refer)-333(to)-333(Sec)-1(ti)1(on)]TJ -ET -1 0 0 1 163.1271 229.5109 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -163.1271 -229.5109 cm -BT -/F15 10.9091 Tf 163.1271 229.5109 Td[(4)]TJ -ET -1 0 0 1 168.5817 229.5109 cm -0 g 0 G -1 0 0 1 -168.5817 -229.5109 cm -BT -/F15 10.9091 Tf 168.5817 229.5109 Td[(.)]TJ -ET -1 0 0 1 86.3998 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -442 0 obj << -/Type /Page -/Contents 443 0 R -/Resources 441 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 428 0 R -/Annots [ 445 0 R 446 0 R 447 0 R 448 0 R 449 0 R 454 0 R 455 0 R 456 0 R ] ->> endobj -445 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [476.8701 504.6791 484.3172 518.3122] -/Subtype /Link -/A << /S /GoTo /D (table.2) >> ->> endobj -446 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [485.961 504.6791 493.4081 518.3122] -/Subtype /Link -/A << /S /GoTo /D (table.5) >> ->> endobj -447 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [369.0338 452.4259 376.4809 464.1154] -/Subtype /Link -/A << /S /GoTo /D (table.2) >> ->> endobj -448 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [378.1248 452.4259 385.5718 464.1154] -/Subtype /Link -/A << /S /GoTo /D (table.5) >> ->> endobj -449 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [395.0462 409.8348 402.4932 423.4679] -/Subtype /Link -/A << /S /GoTo /D (section.7) >> ->> endobj -454 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [159.6996 239.9427 167.1466 251.6322] -/Subtype /Link -/A << /S /GoTo /D (table.2) >> ->> endobj -455 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [168.7905 239.9427 176.2375 251.6322] -/Subtype /Link -/A << /S /GoTo /D (table.5) >> ->> endobj -456 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [162.1309 228.5147 169.5779 238.083] -/Subtype /Link -/A << /S /GoTo /D (section.4) >> ->> endobj -444 0 obj << -/D [442 0 R /XYZ 86.3998 740.0018 null] ->> endobj -74 0 obj << -/D [442 0 R /XYZ 86.3998 715.0952 null] ->> endobj -450 0 obj << -/D [442 0 R /XYZ 86.3998 362.5828 null] ->> endobj -451 0 obj << -/D [442 0 R /XYZ 86.3998 340.0672 null] ->> endobj -452 0 obj << -/D [442 0 R /XYZ 86.3998 317.5517 null] ->> endobj -453 0 obj << -/D [442 0 R /XYZ 86.3998 295.0361 null] ->> endobj -441 0 obj << -/Font << /F15 131 0 R /F43 134 0 R /F19 113 0 R /F46 219 0 R /F20 181 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -459 0 obj << -/Length 6002 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(6)]TJ -ET -1 0 0 1 99.6305 740.0018 cm -0 g 0 G -1 0 0 1 -99.6305 -740.0018 cm -BT -/F43 10.9091 Tf 103.7516 740.0018 Td[(Use)1(r)-378(Interf)89(a)22(ce)]TJ/F15 10.9091 Tf 391.3906 0 Td[(23)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -412.4511 -24.9066 cm -0 g 0 G -1 0 0 1 206.2256 0 cm - q 0 -1 1 0 0 0 cm -0 g 0 G -1 0 0 1 15.408 16.3055 cm -0 g 0 G -0 g 0 G -1 0 0 1 5.4545 71.071 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -551.8492 0.1992 l -S -Q -1 0 0 1 -0.1992 -13.5492 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -320.4891 -788.9225 cm -BT -/F46 10.9091 Tf 326.6659 792.9873 Td[(what)]TJ -ET -1 0 0 1 435.5341 788.9225 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -435.5341 -788.9225 cm -BT -/F43 10.9091 Tf 441.7109 792.9873 Td[(d)22(a)66(t)67(a)-378(t)-1(ype)]TJ -ET -1 0 0 1 539.1246 788.9225 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -539.1246 -788.9225 cm -BT -/F46 10.9091 Tf 545.3014 792.9873 Td[(val)]TJ -ET -1 0 0 1 607.7727 788.9225 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -607.7727 -788.9225 cm -BT -/F43 10.9091 Tf 613.9495 792.9873 Td[(def)89(a)22(ul)66(t)]TJ -ET -1 0 0 1 661.958 788.9225 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -661.958 -788.9225 cm -BT -/F43 10.9091 Tf 668.1348 792.9873 Td[(com)1(ments)]TJ -ET -1 0 0 1 872.3383 788.9225 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -551.65 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -551.8492 0.1992 l -S -Q -1 0 0 1 -0.1992 -40.6476 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -320.4891 -747.8764 cm -BT -/F46 10.9091 Tf 326.6659 779.0396 Td[(mld_ml_type_)]TJ -ET -1 0 0 1 435.5341 747.8764 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -435.5341 -747.8764 cm -BT -/F46 10.9091 Tf 441.7109 779.0396 Td[(character\050len=*\051)]TJ -ET -1 0 0 1 539.1246 747.8764 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -539.1246 -747.8764 cm -BT -/F46 10.9091 Tf 545.3014 779.0396 Td[('ADD')]TJ 0 -13.5492 Td[('MULT')]TJ -ET -1 0 0 1 607.7727 747.8764 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -607.7727 -747.8764 cm -BT -/F46 10.9091 Tf 613.9495 779.0396 Td[('MULT')]TJ -ET -1 0 0 1 661.958 747.8764 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -661.958 -747.8764 cm -BT -/F15 10.9091 Tf 668.1348 779.0396 Td[(Bas)-1(ic)-449(m)28(ulti)1(-)-1(lev)28(el)-449(fr)1(am)-1(ew)27(or)1(k:)-675(addi)1(tiv)28(e)-449(or)]TJ 0 -13.5492 Td[(m)27(u)1(ltip)1(licativ)28(e)-586(am)-1(on)1(g)-586(the)-586(le)-1(v)28(els)-586(\050alw)27(a)28(ys)]TJ 0 -13.5492 Td[(add)1(itiv)28(e)-333(insid)1(e)-334(a)-334(l)1(e)-1(v)28(el\051.)]TJ -ET -1 0 0 1 872.3383 747.8764 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -551.65 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -551.8492 0.1992 l -S -Q -1 0 0 1 -0.1992 -40.6475 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -320.4891 -706.8304 cm -BT -/F46 10.9091 Tf 326.6659 737.9936 Td[(mld_smoother_type_)]TJ -ET -1 0 0 1 435.5341 706.8304 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -435.5341 -706.8304 cm -BT -/F46 10.9091 Tf 441.7109 737.9936 Td[(character\050len=*\051)]TJ -ET -1 0 0 1 539.1246 706.8304 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -539.1246 -706.8304 cm -BT -/F46 10.9091 Tf 545.3014 737.9936 Td[('DIAG')]TJ 0 -13.5492 Td[('BJAC')]TJ 0 -13.5492 Td[('AS')]TJ -ET -1 0 0 1 607.7727 706.8304 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -607.7727 -706.8304 cm -BT -/F46 10.9091 Tf 613.9495 737.9936 Td[('AS')]TJ -ET -1 0 0 1 661.958 706.8304 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -661.958 -706.8304 cm -BT -/F15 10.9091 Tf 668.1348 737.9936 Td[(Bas)-1(ic)-1379(on)1(e)-1(-lev)28(e)-1(l)-1378(pr)1(e)-1(cond)1(ition)1(e)-1(r)-1378(\050i.e.)]TJ 0 -13.5492 Td[(sm)-1(o)-28(ot)1(her\051:)-444(diagon)1(al,)-333(bl)1(o)-28(c)27(k)-333(Jacobi,)-333(AS)1(.)]TJ -ET -1 0 0 1 872.3383 706.8304 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -551.65 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -551.8492 0.1992 l -S -Q -1 0 0 1 -0.1992 -40.6476 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -320.4891 -665.7843 cm -BT -/F46 10.9091 Tf 326.6659 696.9475 Td[(mld_smoother_pos_)]TJ -ET -1 0 0 1 435.5341 665.7843 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -435.5341 -665.7843 cm -BT -/F46 10.9091 Tf 441.7109 696.9475 Td[(character\050len=*\051)]TJ -ET -1 0 0 1 539.1246 665.7843 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -539.1246 -665.7843 cm -BT -/F46 10.9091 Tf 545.3014 696.9475 Td[('PRE')]TJ 0 -13.5492 Td[('POST')]TJ 0 -13.5492 Td[('TWOSIDE')]TJ -ET -1 0 0 1 607.7727 665.7843 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -607.7727 -665.7843 cm -BT -/F46 10.9091 Tf 613.9495 696.9475 Td[('POST')]TJ -ET -1 0 0 1 661.958 665.7843 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -661.958 -665.7843 cm -BT -/F15 10.9091 Tf 668.1348 696.9475 Td[(\134P)28(osition)1(")-234(of)-232(the)-234(sm)-1(o)-27(other:)-394(pr)1(e)-1(-s)-1(mo)-28(oth)1(e)-1(r)1(,)]TJ 0 -13.5492 Td[(p)-27(os)-1(t-sm)-1(o)-28(ot)1(her,)-333(pr)1(e)-1(-)-334(an)1(d)-333(p)-27(os)-1(t-sm)-1(o)-28(ot)1(her.)]TJ -ET -1 0 0 1 872.3383 665.7843 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -551.65 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -551.8492 0.1992 l -S -Q -1 0 0 1 111.97 -30.4898 cm -0 g 0 G -1 0 0 1 -432.6583 -634.896 cm -BT -/F15 10.9091 Tf 432.6583 634.896 Td[(T)83(ab)1(le)-334(2:)-444(P)28(aramete)-1(r)1(s)-334(de\014n)1(ing)-333(th)1(e)-334(t)28(yp)-27(e)-334(of)-333(m)27(u)1(lti-lev)28(e)-1(l)-333(p)1(rec)-1(on)1(diti)1(oner.)]TJ -ET -1 0 0 1 760.5676 634.896 cm -0 g 0 G -1 0 0 1 132.8325 80.1992 cm -0 g 0 G -1 0 0 1 -593.5743 0 cm - Q -1 0 0 1 -206.2256 -593.5743 cm -0 g 0 G -1 0 0 1 0 -29.8879 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -458 0 obj << -/Type /Page -/Contents 459 0 R -/Resources 457 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 428 0 R -/Annots [ 461 0 R ] ->> endobj -461 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 739.0056 100.6267 748.4526] -/Subtype /Link -/A << /S /GoTo /D (section.6) >> ->> endobj -460 0 obj << -/D [458 0 R /XYZ 93.6002 740.0018 null] ->> endobj -388 0 obj << -/D [458 0 R /XYZ 475.9916 648.4452 null] ->> endobj -457 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F46 219 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -464 0 obj << -/Length 12566 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(24)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -412.4511 -24.9066 cm -0 g 0 G -1 0 0 1 206.2255 0 cm - q 0 -1 1 0 0 0 cm -0 g 0 G -1 0 0 1 291.3327 163.5907 cm -0 g 0 G -0 g 0 G -1 0 0 1 -291.3327 -1.3948 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -614.6861 0.1992 l -S -Q -1 0 0 1 -0.1992 -13.5492 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -292.4261 -863.7419 cm -BT -/F46 10.9091 Tf 298.6029 867.8067 Td[(what)]TJ -ET -1 0 0 1 396.0166 863.7419 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -396.0166 -863.7419 cm -BT -/F43 10.9091 Tf 402.1935 867.8067 Td[(d)22(a)66(t)67(a)-378(t)-1(ype)]TJ -ET -1 0 0 1 514.99 863.7419 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -514.99 -863.7419 cm -BT -/F46 10.9091 Tf 521.1668 867.8067 Td[(val)]TJ -ET -1 0 0 1 617.6537 863.7419 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -617.6537 -863.7419 cm -BT -/F43 10.9091 Tf 623.8306 867.8067 Td[(def)89(a)22(ul)66(t)]TJ -ET -1 0 0 1 696.7318 863.7419 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -696.7318 -863.7419 cm -BT -/F43 10.9091 Tf 702.9086 867.8067 Td[(com)1(ments)]TJ -ET -1 0 0 1 907.1122 863.7419 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -614.4869 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -614.6861 0.1992 l -S -Q -1 0 0 1 -0.1992 -13.5492 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -292.4261 -849.7942 cm -BT -/F46 10.9091 Tf 298.6029 853.859 Td[(mld_sub_ovr_)]TJ -ET -1 0 0 1 396.0166 849.7943 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -396.0166 -849.7943 cm -BT -/F46 10.9091 Tf 402.1935 853.8591 Td[(integer)]TJ -ET -1 0 0 1 514.99 849.7943 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -514.99 -849.7943 cm -BT -/F15 10.9091 Tf 521.1668 853.8591 Td[(an)28(y)-333(in)29(t.)-333(n)28(um.)]TJ/F27 10.9091 Tf 67.8788 0 Td[(\025)]TJ/F15 10.9091 Tf 11.5152 0 Td[(0)]TJ -ET -1 0 0 1 617.6537 849.7943 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -617.6537 -849.7943 cm -BT -/F15 10.9091 Tf 623.8306 853.8591 Td[(1)]TJ -ET -1 0 0 1 696.7318 849.7943 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -696.7318 -849.7943 cm -BT -/F15 10.9091 Tf 702.9086 853.8591 Td[(Num)28(b)-27(e)-1(r)-333(of)-333(o)28(v)28(erlap)-333(la)28(y)28(ers.)]TJ -ET -1 0 0 1 907.1122 849.7943 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -614.4869 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -614.6861 0.1992 l -S -Q -1 0 0 1 -0.1992 -40.6476 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -292.4261 -808.7482 cm -BT -/F46 10.9091 Tf 298.6029 839.9114 Td[(mld_sub_restr_)]TJ -ET -1 0 0 1 396.0166 808.7482 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -396.0166 -808.7482 cm -BT -/F46 10.9091 Tf 402.1935 839.9114 Td[(character\050len=*\051)]TJ -ET -1 0 0 1 514.99 808.7482 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -514.99 -808.7482 cm -BT -/F46 10.9091 Tf 521.1668 839.9114 Td[('HALO')]TJ 0 -13.5492 Td[('NONE')]TJ -ET -1 0 0 1 617.6537 808.7482 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -617.6537 -808.7482 cm -BT -/F46 10.9091 Tf 623.8306 839.9114 Td[('HALO')]TJ -ET -1 0 0 1 696.7318 808.7482 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -696.7318 -808.7482 cm -BT -/F15 10.9091 Tf 702.9086 839.9114 Td[(T)28(yp)-28(e)-429(of)-429(res)-1(t)1(riction)-429(op)-27(e)-1(r)1(ator:)]TJ/F46 10.9091 Tf 146.3202 0 Td[('HALO')]TJ/F15 10.9091 Tf 39.0444 0 Td[(for)]TJ -185.3646 -13.5492 Td[(taki)1(ng)-478(in)29(to)-478(acc)-1(ou)1(n)28(t)-478(th)1(e)-479(o)28(v)28(erlap)1(,)]TJ/F46 10.9091 Tf 164.062 0 Td[('NONE')]TJ/F15 10.9091 Tf -164.062 -13.5492 Td[(for)-333(n)1(e)-1(gl)1(e)-1(ctin)1(g)-334(it)1(.)]TJ -ET -1 0 0 1 907.1122 808.7482 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -614.4869 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -614.6861 0.1992 l -S -Q -1 0 0 1 -0.1992 -40.6476 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -292.4261 -767.7021 cm -BT -/F46 10.9091 Tf 298.6029 798.8653 Td[(mld_sub_prol_)]TJ -ET -1 0 0 1 396.0166 767.7021 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -396.0166 -767.7021 cm -BT -/F46 10.9091 Tf 402.1935 798.8653 Td[(character\050len=*\051)]TJ -ET -1 0 0 1 514.99 767.7021 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -514.99 -767.7021 cm -BT -/F46 10.9091 Tf 521.1668 798.8653 Td[('SUM')]TJ 0 -13.5492 Td[('NONE')]TJ -ET -1 0 0 1 617.6537 767.7021 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -617.6537 -767.7021 cm -BT -/F46 10.9091 Tf 623.8306 798.8653 Td[('NONE')]TJ -ET -1 0 0 1 696.7318 767.7021 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -696.7318 -767.7021 cm -BT -/F15 10.9091 Tf 702.9086 798.8653 Td[(T)28(yp)-28(e)-342(of)-342(p)1(rolon)1(gation)-342(op)-27(e)-1(r)1(ator:)]TJ/F46 10.9091 Tf 152.9961 0 Td[('SUM')]TJ/F15 10.9091 Tf 32.3685 0 Td[(for)]TJ -185.3646 -13.5492 Td[(add)1(in)1(g)-252(the)-252(con)28(tr)1(ibu)1(tions)-252(f)1(rom)-252(th)1(e)-253(o)28(v)28(erlap)1(,)]TJ/F46 10.9091 Tf 0 -13.5492 Td[('NONE')]TJ/F15 10.9091 Tf 37.9997 0 Td[(for)-333(n)1(e)-1(gl)1(e)-1(ctin)1(g)-334(th)1(e)-1(m.)]TJ -ET -1 0 0 1 907.1122 767.7021 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -614.4869 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -614.6861 0.1992 l -S -Q -1 0 0 1 -0.1992 -67.746 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -292.4261 -699.5576 cm -BT -/F46 10.9091 Tf 298.6029 757.8192 Td[(mld_sub_solve_)]TJ -ET -1 0 0 1 396.0166 699.5577 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -396.0166 -699.5577 cm -BT -/F46 10.9091 Tf 402.1935 757.8192 Td[(character\050len=*\051)]TJ -ET -1 0 0 1 514.99 699.5577 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -514.99 -699.5577 cm -BT -/F46 10.9091 Tf 521.1668 757.8192 Td[('ILU')]TJ 0 -13.5492 Td[('MILU')]TJ 0 -13.5492 Td[('ILUT')]TJ 0 -13.5492 Td[('UMF')]TJ 0 -13.5492 Td[('SLU')]TJ -ET -1 0 0 1 617.6537 699.5577 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -617.6537 -699.5577 cm -BT -/F46 10.9091 Tf 623.8306 757.8192 Td[('ILU')]TJ -ET -1 0 0 1 696.7318 699.5577 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -696.7318 -699.5577 cm -BT -/F15 10.9091 Tf 702.9086 757.8192 Td[(Lo)-28(cal)-326(solv)28(e)-1(r)1(:)-441(ILU\050)]TJ/F24 10.9091 Tf 87.8474 0 Td[(p)]TJ/F15 10.9091 Tf 5.4886 0 Td[(\051,)-327(MILU\050)]TJ/F24 10.9091 Tf 44.0257 0 Td[(p)]TJ/F15 10.9091 Tf 5.4886 0 Td[(\051,)-327(ILU\050)]TJ/F24 10.9091 Tf 34.0257 0 Td[(p;)-167(t)]TJ/F15 10.9091 Tf 14.2765 0 Td[(\051,)]TJ -191.1524 -13.5492 Td[(LU)-411(fr)1(om)-412(UM)1(FP)84(A)27(CK,)-411(LU)-411(f)1(rom)-411(Sup)-27(erLU)]TJ 0 -13.5492 Td[(\050p)1(lus)-334(t)1(rian)1(gular)-333(solv)28(e\051.)]TJ -ET -1 0 0 1 907.1122 699.5577 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -614.4869 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -614.6861 0.1992 l -S -Q -1 0 0 1 -0.1992 -27.0984 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -292.4261 -672.0608 cm -BT -/F46 10.9091 Tf 298.6029 689.6748 Td[(mld_sub_fillin_)]TJ -ET -1 0 0 1 396.0166 672.0608 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -396.0166 -672.0608 cm -BT -/F46 10.9091 Tf 402.1935 689.6748 Td[(integer)]TJ -ET -1 0 0 1 514.99 672.0608 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -514.99 -672.0608 cm -BT -/F15 10.9091 Tf 521.1668 689.6748 Td[(An)28(y)-333(in)29(t.)-333(n)28(um.)]TJ/F27 10.9091 Tf 70.6061 0 Td[(\025)]TJ/F15 10.9091 Tf 11.5151 0 Td[(0)]TJ -ET -1 0 0 1 617.6537 672.0608 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -617.6537 -672.0608 cm -BT -/F15 10.9091 Tf 623.8306 689.6748 Td[(0)]TJ -ET -1 0 0 1 696.7318 672.0608 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -696.7318 -672.0608 cm -BT -/F15 10.9091 Tf 702.9086 689.6748 Td[(Fil)1(l-in)-276(lev)28(e)-1(l)]TJ/F24 10.9091 Tf 56.1769 0 Td[(p)]TJ/F15 10.9091 Tf 8.5013 0 Td[(of)-276(th)1(e)-277(in)1(c)-1(omp)1(le)-1(te)-276(LU)-276(factor-)]TJ -64.6781 -13.5492 Td[(ization)1(s)-1(.)]TJ -ET -1 0 0 1 907.1122 672.0608 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -614.4869 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -614.6861 0.1992 l -S -Q -1 0 0 1 -0.1992 -27.0984 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -292.4261 -644.5639 cm -BT -/F46 10.9091 Tf 298.6029 662.1779 Td[(mld_sub_iluthrs_)]TJ -ET -1 0 0 1 396.0166 644.5639 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -396.0166 -644.5639 cm -BT -/F46 10.9091 Tf 402.1935 662.1779 Td[(real\050)]TJ/F20 10.9091 Tf 28.636 0 Td[(kind)]TJ -ET -1 0 0 1 451.5712 662.1779 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.3455 0.1992 l -S -Q -1 0 0 1 -451.5712 -662.1779 cm -BT -/F20 10.9091 Tf 454.9166 662.1779 Td[(p)51(ar)51(ameter)]TJ/F46 10.9091 Tf 48.5678 0 Td[(\051)]TJ -ET -1 0 0 1 514.99 644.5639 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -514.99 -644.5639 cm -BT -/F15 10.9091 Tf 521.1668 662.1779 Td[(An)28(y)-333(real)-333(n)28(u)1(m)-1(.)]TJ/F27 10.9091 Tf 72.1516 0 Td[(\025)]TJ/F15 10.9091 Tf 11.5151 0 Td[(0)]TJ -ET -1 0 0 1 617.6537 644.5639 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -617.6537 -644.5639 cm -BT -/F15 10.9091 Tf 623.8306 662.1779 Td[(0)]TJ -ET -1 0 0 1 696.7318 644.5639 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -696.7318 -644.5639 cm -BT -/F15 10.9091 Tf 702.9086 662.1779 Td[(Drop)-256(t)1(ole)-1(r)1(ance)]TJ/F24 10.9091 Tf 72.7769 0 Td[(t)]TJ/F15 10.9091 Tf 6.7369 0 Td[(in)-256(th)1(e)-257(ILU\050)]TJ/F24 10.9091 Tf 53.0192 0 Td[(p;)-167(t)]TJ/F15 10.9091 Tf 14.2765 0 Td[(\051)-256(factoriza-)]TJ -146.8095 -13.5492 Td[(tion)1(.)]TJ -ET -1 0 0 1 907.1122 644.5639 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -614.4869 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -614.6861 0.1992 l -S -Q -1 0 0 1 -0.1992 -54.1968 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 54.1968 l -S -Q -1 0 0 1 -292.4261 -589.9686 cm -BT -/F46 10.9091 Tf 298.6029 634.681 Td[(mld_sub_ren_)]TJ -ET -1 0 0 1 396.0166 589.9686 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 54.1968 l -S -Q -1 0 0 1 -396.0166 -589.9686 cm -BT -/F46 10.9091 Tf 402.1935 634.681 Td[(character\050len=*\051)]TJ -ET -1 0 0 1 514.99 589.9686 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 54.1968 l -S -Q -1 0 0 1 -514.99 -589.9686 cm -BT -/F46 10.9091 Tf 521.1668 634.681 Td[('RENUM)]TJ -ET -1 0 0 1 556.2173 634.681 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.4364 0.1992 l -S -Q -1 0 0 1 -556.2173 -634.681 cm -BT -/F46 10.9091 Tf 559.6537 634.681 Td[(NONE')]TJ -38.4869 -13.5492 Td[('RENUM)]TJ -ET -1 0 0 1 556.2173 621.1318 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.4364 0.1992 l -S -Q -1 0 0 1 -556.2173 -621.1318 cm -BT -/F46 10.9091 Tf 559.6537 621.1318 Td[(GLOBAL')]TJ -ET -1 0 0 1 617.6537 589.9686 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 54.1968 l -S -Q -1 0 0 1 -617.6537 -589.9686 cm -BT -/F46 10.9091 Tf 623.8306 634.681 Td[('RENUM)]TJ -ET -1 0 0 1 658.8811 634.681 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.4364 0.1992 l -S -Q -1 0 0 1 -658.8811 -634.681 cm -BT -/F46 10.9091 Tf 662.3174 634.681 Td[(NONE')]TJ -ET -1 0 0 1 696.7318 589.9686 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 54.1968 l -S -Q -1 0 0 1 -696.7318 -589.9686 cm -BT -/F15 10.9091 Tf 702.9086 634.681 Td[(Ro)28(w)-468(and)-467(column)-467(reord)1(e)-1(ri)1(ng)-468(of)-467(th)1(e)-468(lo)-28(cal)]TJ 0 -13.5492 Td[(submatr)1(ic)-1(es)-1(:)-409(n)1(o)-264(reord)1(e)-1(r)1(ing,)-277(reord)1(e)-1(r)1(ing)-263(ac)-1(-)]TJ 0 -13.5492 Td[(cordi)1(ng)-540(to)-540(t)1(he)-540(global)-539(n)28(um)28(b)-27(e)-1(ri)1(ng)-540(of)-539(the)]TJ 0 -13.5492 Td[(ro)28(ws)-334(an)1(d)-333(c)-1(olu)1(mns)-334(of)-333(th)1(e)-334(whol)1(e)-334(m)-1(at)1(rix.)]TJ -ET -1 0 0 1 907.1122 589.9686 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 54.1968 l -S -Q -1 0 0 1 -614.4869 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -614.6861 0.1992 l -S -Q -1 0 0 1 112.7264 -30.4898 cm -0 g 0 G -1 0 0 1 -405.3517 -559.0803 cm -BT -/F15 10.9091 Tf 405.3518 559.0803 Td[(T)83(ab)1(le)-334(3:)-444(P)28(aramete)-1(r)1(s)-334(de\014n)1(ing)-333(th)1(e)-334(one-)-1(l)1(e)-1(v)28(el)-333(precondi)1(tioner)-333(used)-333(as)-334(s)-1(mo)-28(oth)1(e)-1(r)1(.)]TJ -ET -1 0 0 1 773.4733 559.0803 cm -0 g 0 G -1 0 0 1 112.7264 156.0149 cm -0 g 0 G -1 0 0 1 -593.5744 0 cm - Q -1 0 0 1 -206.2255 -593.5743 cm -0 g 0 G -1 0 0 1 0 -29.888 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -463 0 obj << -/Type /Page -/Contents 464 0 R -/Resources 462 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 428 0 R ->> endobj -465 0 obj << -/D [463 0 R /XYZ 86.3998 740.0018 null] ->> endobj -466 0 obj << -/D [463 0 R /XYZ 448.6851 572.6295 null] ->> endobj -462 0 obj << -/Font << /F15 131 0 R /F43 134 0 R /F46 219 0 R /F27 189 0 R /F24 186 0 R /F20 181 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -469 0 obj << -/Length 13114 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(6)]TJ -ET -1 0 0 1 99.6305 740.0018 cm -0 g 0 G -1 0 0 1 -99.6305 -740.0018 cm -BT -/F43 10.9091 Tf 103.7516 740.0018 Td[(Use)1(r)-378(Interf)89(a)22(ce)]TJ/F15 10.9091 Tf 391.3906 0 Td[(25)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -412.4511 -24.9066 cm -0 g 0 G -1 0 0 1 206.2256 0 cm - q 0 -1 1 0 0 0 cm -0 g 0 G -1 0 0 1 291.3326 170.166 cm -0 g 0 G -0 g 0 G -1 0 0 1 -291.3326 -1.3947 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -610.0989 0.1992 l -S -Q -1 0 0 1 -0.1993 -13.5492 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -299.6265 -870.3173 cm -BT -/F46 10.9091 Tf 305.8034 874.3821 Td[(what)]TJ -ET -1 0 0 1 420.3987 870.3173 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -420.3987 -870.3173 cm -BT -/F43 10.9091 Tf 426.5756 874.3821 Td[(d)22(a)66(t)67(a)-378(t)-1(ype)]TJ -ET -1 0 0 1 539.3721 870.3173 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -539.3721 -870.3173 cm -BT -/F46 10.9091 Tf 545.5489 874.3821 Td[(val)]TJ -ET -1 0 0 1 619.3586 870.3173 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -619.3586 -870.3173 cm -BT -/F43 10.9091 Tf 625.5354 874.3821 Td[(def)89(a)22(ul)66(t)]TJ -ET -1 0 0 1 699.345 870.3173 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -699.345 -870.3173 cm -BT -/F43 10.9091 Tf 705.5219 874.3821 Td[(com)1(ments)]TJ -ET -1 0 0 1 909.7254 870.3173 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -609.8996 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -610.0989 0.1992 l -S -Q -1 0 0 1 -0.1993 -27.0984 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -299.6265 -842.8204 cm -BT -/F46 10.9091 Tf 305.8034 860.4344 Td[(mld_aggr_alg_)]TJ -ET -1 0 0 1 420.3987 842.8204 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -420.3987 -842.8204 cm -BT -/F46 10.9091 Tf 426.5756 860.4344 Td[(character\050len=*\051)]TJ -ET -1 0 0 1 539.3721 842.8204 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -539.3721 -842.8204 cm -BT -/F46 10.9091 Tf 545.5489 860.4344 Td[('DEC')]TJ -ET -1 0 0 1 619.3586 842.8204 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -619.3586 -842.8204 cm -BT -/F46 10.9091 Tf 625.5354 860.4344 Td[('DEC')]TJ -ET -1 0 0 1 699.345 842.8204 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -699.345 -842.8204 cm -BT -/F15 10.9091 Tf 705.5219 860.4344 Td[(Aggregation)-520(algor)1(ithm.)-1006(Curr)1(e)-1(n)29(tly)83(,)-567(on)1(ly)]TJ 0 -13.5492 Td[(th)1(e)-334(dec)-1(ou)1(pled)-333(aggregation)-333(i)1(s)-334(a)28(v)55(ai)1(labl)1(e)-1(.)]TJ -ET -1 0 0 1 909.7254 842.8204 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -609.8996 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -610.0989 0.1992 l -S -Q -1 0 0 1 -0.1993 -27.0984 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -299.6265 -815.3235 cm -BT -/F46 10.9091 Tf 305.8034 832.9375 Td[(mld_aggr_kind_)]TJ -ET -1 0 0 1 420.3987 815.3235 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -420.3987 -815.3235 cm -BT -/F46 10.9091 Tf 426.5756 832.9375 Td[(character\050len=*\051)]TJ -ET -1 0 0 1 539.3721 815.3235 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -539.3721 -815.3235 cm -BT -/F46 10.9091 Tf 545.5489 832.9375 Td[('SMOOTH')]TJ 0 -13.5492 Td[('RAW')]TJ -ET -1 0 0 1 619.3586 815.3235 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -619.3586 -815.3235 cm -BT -/F46 10.9091 Tf 625.5354 832.9375 Td[('SMOOTH')]TJ -ET -1 0 0 1 699.345 815.3235 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -699.345 -815.3235 cm -BT -/F15 10.9091 Tf 705.5219 832.9375 Td[(T)28(yp)-28(e)-380(of)-379(aggr)1(e)-1(gati)1(on:)-537(sm)-1(o)-27(othed,)-391(r)1(a)27(w)-379(\050i.e.)]TJ 0 -13.5492 Td[(usin)1(g)-334(th)1(e)-334(ten)28(tativ)28(e)-333(prol)1(ongator)1(\051.)]TJ -ET -1 0 0 1 909.7254 815.3235 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -609.8996 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -610.0989 0.1992 l -S -Q -1 0 0 1 -0.1993 -27.0983 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -299.6265 -787.8267 cm -BT -/F46 10.9091 Tf 305.8034 805.4406 Td[(mld_aggr_thresh_)]TJ -ET -1 0 0 1 420.3987 787.8267 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -420.3987 -787.8267 cm -BT -/F46 10.9091 Tf 426.5756 805.4407 Td[(real\050)]TJ/F20 10.9091 Tf 28.636 0 Td[(kind)]TJ -ET -1 0 0 1 475.9532 805.4407 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.3455 0.1992 l -S -Q -1 0 0 1 -475.9532 -805.4407 cm -BT -/F20 10.9091 Tf 479.2987 805.4407 Td[(p)51(ar)51(ameter)]TJ/F46 10.9091 Tf 48.5678 0 Td[(\051)]TJ -ET -1 0 0 1 539.3721 787.8267 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -539.3721 -787.8267 cm -BT -/F15 10.9091 Tf 545.5489 805.4407 Td[(An)28(y)-311(r)1(e)-1(al)-311(n)28(u)1(m.)]TJ/F27 10.9091 Tf 0 -13.5492 Td[(2)]TJ/F15 10.9091 Tf 10.303 0 Td[([0)]TJ/F24 10.9091 Tf 8.4849 0 Td[(;)]TJ/F15 10.9091 Tf 4.8484 0 Td[(1])]TJ -ET -1 0 0 1 619.3586 787.8267 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -619.3586 -787.8267 cm -BT -/F15 10.9091 Tf 625.5354 805.4407 Td[(0)]TJ -ET -1 0 0 1 699.345 787.8267 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -699.345 -787.8267 cm -BT -/F15 10.9091 Tf 705.5219 805.4407 Td[(Thr)1(e)-1(shold)]TJ/F24 10.9091 Tf 51.2669 0 Td[(\022)]TJ/F15 10.9091 Tf 8.7213 0 Td[(in)-302(t)1(he)-303(aggr)1(e)-1(gati)1(on)-302(algori)1(thm.)]TJ -ET -1 0 0 1 909.7254 787.8267 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -609.8996 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -610.0989 0.1992 l -S -Q -1 0 0 1 -0.1993 -67.746 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -299.6265 -719.6822 cm -BT -/F46 10.9091 Tf 305.8034 777.9438 Td[(mld_aggr_omega_alg_)]TJ -ET -1 0 0 1 420.3987 719.6822 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -420.3987 -719.6822 cm -BT -/F46 10.9091 Tf 426.5756 777.9438 Td[(character\050len=*\051)]TJ -ET -1 0 0 1 539.3721 719.6822 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -539.3721 -719.6822 cm -BT -/F46 10.9091 Tf 545.5489 777.9438 Td[('EIG)]TJ -ET -1 0 0 1 569.145 777.9438 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.4364 0.1992 l -S -Q -1 0 0 1 -569.145 -777.9438 cm -BT -/F46 10.9091 Tf 572.5813 777.9438 Td[(EST')]TJ -27.0324 -13.5492 Td[('USER)]TJ -ET -1 0 0 1 574.8722 764.3946 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.4364 0.1992 l -S -Q -1 0 0 1 -574.8722 -764.3946 cm -BT -/F46 10.9091 Tf 578.3085 764.3946 Td[(CHOICE')]TJ -ET -1 0 0 1 619.3586 719.6822 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -619.3586 -719.6822 cm -BT -/F46 10.9091 Tf 625.5354 777.9438 Td[('EIG)]TJ -ET -1 0 0 1 649.1315 777.9438 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.4364 0.1992 l -S -Q -1 0 0 1 -649.1315 -777.9438 cm -BT -/F46 10.9091 Tf 652.5678 777.9438 Td[(EST')]TJ -ET -1 0 0 1 699.345 719.6822 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -699.345 -719.6822 cm -BT -/F15 10.9091 Tf 705.5219 777.9438 Td[(Ho)28(w)-625(th)1(e)-625(dampin)1(g)-625(p)1(arame)-1(ter)]TJ/F24 10.9091 Tf 153.3744 0 Td[(!)]TJ/F15 10.9091 Tf 13.9951 0 Td[(in)-624(th)1(e)]TJ -167.3695 -13.5492 Td[(sm)-1(o)-28(ot)1(hed)-738(aggregation)-738(shou)1(ld)-738(b)-27(e)-739(com)-1(-)]TJ 0 -13.5492 Td[(pu)1(ted:)-453(e)-1(i)1(ther)-338(vi)1(a)-338(an)-338(es)-1(ti)1(m)-1(ate)-338(of)-337(the)-338(sp)-28(ec)-1(-)]TJ 0 -13.5492 Td[(tral)-337(rad)1(iu)1(s)-338(of)]TJ/F24 10.9091 Tf 66.0164 0 Td[(D)]TJ/F28 7.9701 Tf 9.3348 3.9588 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F24 10.9091 Tf 4.7323 -3.9588 Td[(A)]TJ/F15 10.9091 Tf 8.1818 0 Td[(,)-338(or)-338(exp)1(licily)-337(s)-1(p)-27(ec)-1(i\014)1(e)-1(d)]TJ -94.8518 -13.5492 Td[(b)28(y)-333(th)1(e)-334(use)-1(r)1(.)]TJ -ET -1 0 0 1 909.7254 719.6822 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -609.8996 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -610.0989 0.1992 l -S -Q -1 0 0 1 -0.1993 -40.6476 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -299.6265 -678.6361 cm -BT -/F46 10.9091 Tf 305.8034 709.7993 Td[(mld_aggr_eig_)]TJ -ET -1 0 0 1 420.3987 678.6361 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -420.3987 -678.6361 cm -BT -/F46 10.9091 Tf 426.5756 709.7993 Td[(character\050len=*\051)]TJ -ET -1 0 0 1 539.3721 678.6361 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -539.3721 -678.6361 cm -BT -/F46 10.9091 Tf 545.5489 709.7993 Td[('A)]TJ -ET -1 0 0 1 557.6906 709.7993 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.4364 0.1992 l -S -Q -1 0 0 1 -557.6906 -709.7993 cm -BT -/F46 10.9091 Tf 561.1269 709.7993 Td[(NORMI')]TJ -ET -1 0 0 1 619.3586 678.6361 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -619.3586 -678.6361 cm -BT -/F46 10.9091 Tf 625.5354 709.7993 Td[('A)]TJ -ET -1 0 0 1 637.677 709.7993 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.4364 0.1992 l -S -Q -1 0 0 1 -637.677 -709.7993 cm -BT -/F46 10.9091 Tf 641.1134 709.7993 Td[(NORMI')]TJ -ET -1 0 0 1 699.345 678.6361 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -699.345 -678.6361 cm -BT -/F15 10.9091 Tf 705.5219 709.7993 Td[(Ho)28(w)-565(to)-565(es)-1(timate)-565(th)1(e)-566(sp)-28(ectral)-565(r)1(adiu)1(s)-565(of)]TJ/F24 10.9091 Tf 0 -13.5492 Td[(D)]TJ/F28 7.9701 Tf 9.3348 3.9588 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F24 10.9091 Tf 4.7323 -3.9588 Td[(A)]TJ/F15 10.9091 Tf 8.1819 0 Td[(.)-710(Curr)1(e)-1(n)28(t)1(ly)-422(onl)1(y)-422(the)-422(in)1(\014n)1(it)28(y)-422(nor)1(m)]TJ -28.8355 -13.5492 Td[(es)-1(timate)-334(i)1(s)-334(a)28(v)55(ai)1(labl)1(e)-1(.)]TJ -ET -1 0 0 1 909.7254 678.6361 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 40.6476 l -S -Q -1 0 0 1 -609.8996 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -610.0989 0.1992 l -S -Q -1 0 0 1 -0.1993 -94.8443 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 94.8444 l -S -Q -1 0 0 1 -299.6265 -583.3933 cm -BT -/F46 10.9091 Tf 305.8034 668.7532 Td[(mld_aggr_omega_val_)]TJ -ET -1 0 0 1 420.3987 583.3933 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 94.8444 l -S -Q -1 0 0 1 -420.3987 -583.3933 cm -BT -/F46 10.9091 Tf 426.5756 668.7532 Td[(real\050)]TJ/F20 10.9091 Tf 28.636 0 Td[(kind)]TJ -ET -1 0 0 1 475.9532 668.7532 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.3455 0.1992 l -S -Q -1 0 0 1 -475.9532 -668.7532 cm -BT -/F20 10.9091 Tf 479.2987 668.7532 Td[(p)51(ar)51(ameter)]TJ/F46 10.9091 Tf 48.5678 0 Td[(\051)]TJ -ET -1 0 0 1 539.3721 583.3933 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 94.8444 l -S -Q -1 0 0 1 -539.3721 -583.3933 cm -BT -/F15 10.9091 Tf 545.5489 668.7532 Td[(An)28(y)-486(n)1(onn)1(e)-1(ga-)]TJ 0 -13.5492 Td[(tiv)28(e)-333(re)-1(al)-333(n)29(um.)]TJ -ET -1 0 0 1 619.3586 583.3933 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 94.8444 l -S -Q -1 0 0 1 -619.3586 -583.3933 cm -BT -/F15 10.9091 Tf 625.5354 668.7532 Td[(4)]TJ/F24 10.9091 Tf 5.4546 0 Td[(=)]TJ/F15 10.9091 Tf 5.4545 0 Td[(\0503)]TJ/F24 10.9091 Tf 9.697 0 Td[(\032)]TJ/F15 10.9091 Tf 5.6402 0 Td[(\050)]TJ/F24 10.9091 Tf 4.2424 0 Td[(D)]TJ/F28 7.9701 Tf 9.3349 3.9588 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F24 10.9091 Tf 4.7323 -3.9588 Td[(A)]TJ/F15 10.9091 Tf 8.1818 0 Td[(\051\051)]TJ -ET -1 0 0 1 699.345 583.3933 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 94.8444 l -S -Q -1 0 0 1 -699.345 -583.3933 cm -BT -/F15 10.9091 Tf 705.5219 668.7532 Td[(Dampin)1(g)-535(p)1(arame)-1(t)1(e)-1(r)]TJ/F24 10.9091 Tf 103.6913 0 Td[(!)]TJ/F15 10.9091 Tf 13.0123 0 Td[(in)-534(th)1(e)-535(s)-1(mo)-28(oth)1(e)-1(d)]TJ -116.7036 -13.5492 Td[(aggregation)-576(al)1(gorith)1(m)-1(.)-1172(It)-577(m)28(ust)-576(b)-28(e)-576(s)-1(et)]TJ 0 -13.5492 Td[(b)28(y)-589(t)1(he)-589(use)-1(r)-588(if)]TJ/F46 10.9091 Tf 78.2151 0 Td[(USER_CHOICE)]TJ/F15 10.9091 Tf 69.4215 0 Td[(w)28(as)-590(sp)-28(ec)-1(i)1(-)]TJ -147.6366 -13.5492 Td[(\014ed)-353(f)1(or)]TJ/F46 10.9091 Tf 37.7332 0 Td[(mld_aggr_omega_alg_)]TJ/F15 10.9091 Tf 108.817 0 Td[(,)-358(oth)1(e)-1(r)1(w)-1(i)1(s)-1(e)]TJ -146.5502 -13.5492 Td[(it)-472(i)1(s)-473(com)-1(p)1(uted)-472(b)28(y)-471(the)-472(lib)1(rary)84(,)-507(u)1(s)-1(i)1(ng)-472(the)]TJ 0 -13.5492 Td[(se)-1(lec)-1(t)1(e)-1(d)-565(es)-1(timate)-566(of)-565(th)1(e)-566(s)-1(p)-27(e)-1(ctral)-565(rad)1(ius)]TJ/F24 10.9091 Tf 0 -13.5492 Td[(\032)]TJ/F15 10.9091 Tf 5.6402 0 Td[(\050)]TJ/F24 10.9091 Tf 4.2424 0 Td[(D)]TJ/F28 7.9701 Tf 9.3349 3.9588 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F24 10.9091 Tf 4.7323 -3.9588 Td[(A)]TJ/F15 10.9091 Tf 8.1818 0 Td[(\051)-333(of)]TJ/F24 10.9091 Tf 20.303 0 Td[(D)]TJ/F28 7.9701 Tf 9.3349 3.9588 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F24 10.9091 Tf 4.7323 -3.9588 Td[(A)]TJ/F15 10.9091 Tf 8.1818 0 Td[(.)]TJ -ET -1 0 0 1 909.7254 583.3933 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 94.8444 l -S -Q -1 0 0 1 -609.8996 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -610.0989 0.1992 l -S -Q -1 0 0 1 159.9537 -30.4898 cm -0 g 0 G -1 0 0 1 -459.7795 -552.505 cm -BT -/F15 10.9091 Tf 459.7795 552.505 Td[(T)83(ab)1(le)-334(4:)-444(P)28(aramete)-1(r)1(s)-334(de\014n)1(ing)-333(th)1(e)-334(aggregation)-333(algor)1(ithm.)]TJ -ET -1 0 0 1 733.4464 552.505 cm -0 g 0 G -1 0 0 1 159.9537 162.5903 cm -0 g 0 G -1 0 0 1 -593.5743 0 cm - Q -1 0 0 1 -206.2256 -593.5744 cm -0 g 0 G -1 0 0 1 0 -29.8879 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -468 0 obj << -/Type /Page -/Contents 469 0 R -/Resources 467 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 473 0 R -/Annots [ 471 0 R ] ->> endobj -471 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 739.0056 100.6267 748.4526] -/Subtype /Link -/A << /S /GoTo /D (section.6) >> ->> endobj -470 0 obj << -/D [468 0 R /XYZ 93.6002 740.0018 null] ->> endobj -472 0 obj << -/D [468 0 R /XYZ 503.1128 566.0541 null] ->> endobj -467 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F46 219 0 R /F20 181 0 R /F27 189 0 R /F24 186 0 R /F28 293 0 R /F22 296 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -476 0 obj << -/Length 13397 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(26)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -412.4511 -24.9066 cm -0 g 0 G -1 0 0 1 206.2255 0 cm - q 0 -1 1 0 0 0 cm -0 g 0 G -1 0 0 1 291.3327 183.9145 cm -0 g 0 G -0 g 0 G -1 0 0 1 -291.3327 -1.3948 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -612.7021 0.1992 l -S -Q -1 0 0 1 -0.1992 -13.5492 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -292.4261 -884.0657 cm -BT -/F46 10.9091 Tf 298.6029 888.1305 Td[(what)]TJ -ET -1 0 0 1 418.9255 884.0657 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -418.9255 -884.0657 cm -BT -/F43 10.9091 Tf 425.1023 888.1305 Td[(d)22(a)66(t)67(a)-378(t)-1(ype)]TJ -ET -1 0 0 1 537.8988 884.0657 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -537.8988 -884.0657 cm -BT -/F46 10.9091 Tf 544.0757 888.1305 Td[(val)]TJ -ET -1 0 0 1 640.5626 884.0657 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -640.5626 -884.0657 cm -BT -/F43 10.9091 Tf 646.7394 888.1305 Td[(def)89(a)22(ul)66(t)]TJ -ET -1 0 0 1 694.7478 884.0657 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -694.7478 -884.0657 cm -BT -/F43 10.9091 Tf 700.9247 888.1305 Td[(com)1(ments)]TJ -ET -1 0 0 1 905.1282 884.0657 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -612.5029 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -612.7021 0.1992 l -S -Q -1 0 0 1 -0.1992 -27.0984 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -292.4261 -856.5688 cm -BT -/F46 10.9091 Tf 298.6029 874.1828 Td[(mld_coarse_mat_)]TJ -ET -1 0 0 1 418.9255 856.5688 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -418.9255 -856.5688 cm -BT -/F46 10.9091 Tf 425.1023 874.1828 Td[(character\050len=*\051)]TJ -ET -1 0 0 1 537.8988 856.5688 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -537.8988 -856.5688 cm -BT -/F46 10.9091 Tf 544.0757 874.1828 Td[('DISTR')]TJ 0 -13.5492 Td[('REPL')]TJ -ET -1 0 0 1 640.5626 856.5688 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -640.5626 -856.5688 cm -BT -/F46 10.9091 Tf 646.7394 874.1828 Td[('DISTR')]TJ -ET -1 0 0 1 694.7478 856.5688 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -694.7478 -856.5688 cm -BT -/F15 10.9091 Tf 700.9247 874.1828 Td[(Coarse)-1(st)-483(matrix)1(:)-743(distrib)1(uted)-482(am)-1(on)1(g)-483(the)]TJ 0 -13.5492 Td[(pr)1(o)-28(ce)-1(ss)-1(or)1(s)-334(or)-333(repli)1(c)-1(ated)-333(on)-333(eac)27(h)-333(of)-333(th)1(e)-1(m.)]TJ -ET -1 0 0 1 905.1282 856.5688 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -612.5029 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -612.7021 0.1992 l -S -Q -1 0 0 1 -0.1992 -94.8443 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 94.8444 l -S -Q -1 0 0 1 -292.4261 -761.326 cm -BT -/F46 10.9091 Tf 298.6029 846.686 Td[(mld_coarse_solve_)]TJ -ET -1 0 0 1 418.9255 761.326 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 94.8444 l -S -Q -1 0 0 1 -418.9255 -761.326 cm -BT -/F46 10.9091 Tf 425.1023 846.686 Td[(character\050len=*\051)]TJ -ET -1 0 0 1 537.8988 761.326 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 94.8444 l -S -Q -1 0 0 1 -537.8988 -761.326 cm -BT -/F46 10.9091 Tf 544.0757 846.686 Td[('BJAC')]TJ 0 -13.5492 Td[('UMF')]TJ 0 -13.5492 Td[('SLU')]TJ 0 -13.5492 Td[('SLUDIST')]TJ -ET -1 0 0 1 640.5626 761.326 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 94.8444 l -S -Q -1 0 0 1 -640.5626 -761.326 cm -BT -/F46 10.9091 Tf 646.7394 846.686 Td[('BJAC')]TJ -ET -1 0 0 1 694.7478 761.326 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 94.8444 l -S -Q -1 0 0 1 -694.7478 -761.326 cm -BT -/F15 10.9091 Tf 700.9247 846.686 Td[(Sol)1(v)28(e)-1(r)-503(use)-1(d)-503(at)-504(the)-504(c)-1(oar)1(s)-1(es)-1(t)-503(le)-1(v)28(el:)-785(blo)-28(c)28(k)]TJ 0 -13.5492 Td[(Jacobi,)-517(se)-1(q)1(uen)28(tial)-480(LU)-480(from)-480(UMFP)84(A)28(CK,)]TJ 0 -13.5492 Td[(se)-1(qu)1(e)-1(n)29(tial)-369(LU)-368(from)-369(S)1(up)-27(e)-1(r)1(LU,)-369(d)1(is)-1(tr)1(ibu)1(ted)]TJ 0 -13.5492 Td[(LU)-513(f)1(rom)-513(S)1(up)-27(e)-1(r)1(LU)]TJ -ET -1 0 0 1 792.5225 806.0384 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.2728 0.1992 l -S -Q -1 0 0 1 -792.5225 -806.0384 cm -BT -/F15 10.9091 Tf 795.7953 806.0384 Td[(Dist.)]TJ/F46 10.9091 Tf 33.6602 0 Td[('SLUDIST')]TJ/F15 10.9091 Tf 57.1368 0 Td[(re-)]TJ -185.6676 -13.5492 Td[(qu)1(ires)-726(the)-726(coarse)-1(st)-725(m)-1(atr)1(ix)-725(to)-726(b)-27(e)-726(d)1(is)-1(-)]TJ 0 -13.5492 Td[(tri)1(bu)1(te)-1(d)1(,)-456(whi)1(le)]TJ/F46 10.9091 Tf 76.3739 0 Td[('UMF')]TJ/F15 10.9091 Tf 33.3398 0 Td[(and)]TJ/F46 10.9091 Tf 22.2807 0 Td[('SLU')]TJ/F15 10.9091 Tf 33.3398 0 Td[(requ)1(ire)]TJ -165.3342 -13.5492 Td[(it)-333(to)-333(b)-28(e)-333(replicated.)]TJ -ET -1 0 0 1 905.1282 761.326 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 94.8444 l -S -Q -1 0 0 1 -612.5029 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -612.7021 0.1992 l -S -Q -1 0 0 1 -0.1992 -67.746 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -292.4261 -693.1815 cm -BT -/F46 10.9091 Tf 298.6029 751.4431 Td[(mld_coarse_subsolve_)]TJ -ET -1 0 0 1 418.9255 693.1815 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -418.9255 -693.1815 cm -BT -/F46 10.9091 Tf 425.1023 751.4431 Td[(character\050len=*\051)]TJ -ET -1 0 0 1 537.8988 693.1815 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -537.8988 -693.1815 cm -BT -/F46 10.9091 Tf 544.0757 751.4431 Td[('ILU')]TJ 0 -13.5492 Td[('MILU')]TJ 0 -13.5492 Td[('ILUT')]TJ 0 -13.5492 Td[('UMF')]TJ 0 -13.5492 Td[('SLU')]TJ -ET -1 0 0 1 640.5626 693.1815 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -640.5626 -693.1815 cm -BT -/F15 10.9091 Tf 646.7394 751.4431 Td[(See)-334(n)1(ote)]TJ -ET -1 0 0 1 694.7478 693.1815 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -694.7478 -693.1815 cm -BT -/F15 10.9091 Tf 700.9247 751.4431 Td[(Sol)1(v)28(e)-1(r)-242(f)1(or)-243(th)1(e)-243(di)1(agonal)-242(bl)1(o)-28(c)27(ks)-243(of)-242(th)1(e)-243(coars)-1(e)]TJ 0 -13.5492 Td[(matrix)1(,)-610(i)1(n)-554(c)-1(ase)-555(th)1(e)-555(bl)1(o)-28(c)27(k)-554(Jacobi)-554(solv)28(er)]TJ 0 -13.5492 Td[(is)-360(c)27(hosen)-360(as)-361(coarse)-1(st-le)-1(v)28(el)-360(solv)28(e)-1(r)1(:)-498(ILU\050)]TJ/F24 10.9091 Tf 185.6638 0 Td[(p)]TJ/F15 10.9091 Tf 5.4886 0 Td[(\051,)]TJ -191.1524 -13.5492 Td[(MILU\050)]TJ/F24 10.9091 Tf 33.1819 0 Td[(p)]TJ/F15 10.9091 Tf 5.4886 0 Td[(\051,)-271(ILU\050)]TJ/F24 10.9091 Tf 33.4162 0 Td[(p;)-167(t)]TJ/F15 10.9091 Tf 14.2765 0 Td[(\051,)-271(LU)-256(fr)1(om)-257(UM)1(FP)84(A)27(CK,)]TJ -86.3632 -13.5492 Td[(LU)-333(from)-333(Su)1(p)-28(erLU,)-333(p)1(lus)-334(t)1(rian)1(gular)-333(solv)28(e.)]TJ -ET -1 0 0 1 905.1282 693.1815 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 67.746 l -S -Q -1 0 0 1 -612.5029 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -612.7021 0.1992 l -S -Q -1 0 0 1 -0.1992 -27.0984 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -292.4261 -665.6846 cm -BT -/F46 10.9091 Tf 298.6029 683.2986 Td[(mld_coarse_sweeps_)]TJ -ET -1 0 0 1 418.9255 665.6846 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -418.9255 -665.6846 cm -BT -/F46 10.9091 Tf 425.1023 683.2986 Td[(integer)]TJ -ET -1 0 0 1 537.8988 665.6846 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -537.8988 -665.6846 cm -BT -/F15 10.9091 Tf 544.0757 683.2986 Td[(An)28(y)-333(in)29(t.)-333(n)28(um.)]TJ/F24 10.9091 Tf 70.6061 0 Td[(>)]TJ/F15 10.9091 Tf 11.5151 0 Td[(0)]TJ -ET -1 0 0 1 640.5626 665.6846 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -640.5626 -665.6846 cm -BT -/F15 10.9091 Tf 646.7394 683.2986 Td[(4)]TJ -ET -1 0 0 1 694.7478 665.6846 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -694.7478 -665.6846 cm -BT -/F15 10.9091 Tf 700.9247 683.2986 Td[(Num)28(b)-27(e)-1(r)-766(of)-765(Blo)-28(c)27(k)1(-)-1(Jacobi)-765(s)-1(w)28(e)-1(eps)-766(when)]TJ 0 -13.5492 Td[('BJA)28(C')-334(i)1(s)-334(use)-1(d)-332(as)-334(c)-1(oar)1(s)-1(es)-1(t-lev)28(e)-1(l)-333(solv)28(er.)]TJ -ET -1 0 0 1 905.1282 665.6846 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -612.5029 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -612.7021 0.1992 l -S -Q -1 0 0 1 -0.1992 -27.0983 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -292.4261 -638.1878 cm -BT -/F46 10.9091 Tf 298.6029 655.8017 Td[(mld_coarse_fillin_)]TJ -ET -1 0 0 1 418.9255 638.1878 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -418.9255 -638.1878 cm -BT -/F46 10.9091 Tf 425.1023 655.8018 Td[(integer)]TJ -ET -1 0 0 1 537.8988 638.1878 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -537.8988 -638.1878 cm -BT -/F15 10.9091 Tf 544.0757 655.8018 Td[(An)28(y)-333(in)29(t.)-333(n)28(um.)]TJ/F27 10.9091 Tf 70.6061 0 Td[(\025)]TJ/F15 10.9091 Tf 11.5151 0 Td[(0)]TJ -ET -1 0 0 1 640.5626 638.1878 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -640.5626 -638.1878 cm -BT -/F15 10.9091 Tf 646.7394 655.8018 Td[(0)]TJ -ET -1 0 0 1 694.7478 638.1878 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -694.7478 -638.1878 cm -BT -/F15 10.9091 Tf 700.9247 655.8018 Td[(Fil)1(l-in)-276(lev)28(e)-1(l)]TJ/F24 10.9091 Tf 56.1768 0 Td[(p)]TJ/F15 10.9091 Tf 8.5013 0 Td[(of)-276(th)1(e)-277(in)1(c)-1(omp)1(le)-1(te)-276(LU)-276(factor-)]TJ -64.6781 -13.5492 Td[(ization)1(s)-1(.)]TJ -ET -1 0 0 1 905.1282 638.1878 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -612.5029 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -612.7021 0.1992 l -S -Q -1 0 0 1 -0.1992 -27.0984 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -292.4261 -610.6909 cm -BT -/F46 10.9091 Tf 298.6029 628.3049 Td[(mld_coarse_iluthrs_)]TJ -ET -1 0 0 1 418.9255 610.6909 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -418.9255 -610.6909 cm -BT -/F46 10.9091 Tf 425.1023 628.3049 Td[(real\050)]TJ/F20 10.9091 Tf 28.6361 0 Td[(kind)]TJ -ET -1 0 0 1 474.48 628.3049 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.3455 0.1992 l -S -Q -1 0 0 1 -474.48 -628.3049 cm -BT -/F20 10.9091 Tf 477.8255 628.3049 Td[(p)51(ar)51(ameter)]TJ/F46 10.9091 Tf 48.5678 0 Td[(\051)]TJ -ET -1 0 0 1 537.8988 610.6909 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -537.8988 -610.6909 cm -BT -/F15 10.9091 Tf 544.0757 628.3049 Td[(An)28(y)-289(r)1(e)-1(al.)-289(n)29(um.)]TJ/F27 10.9091 Tf 73.7389 0 Td[(\025)]TJ/F15 10.9091 Tf 11.5151 0 Td[(0)]TJ -ET -1 0 0 1 640.5626 610.6909 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -640.5626 -610.6909 cm -BT -/F15 10.9091 Tf 646.7394 628.3049 Td[(0)]TJ -ET -1 0 0 1 694.7478 610.6909 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -694.7478 -610.6909 cm -BT -/F15 10.9091 Tf 700.9247 628.3049 Td[(Drop)-256(t)1(ole)-1(r)1(ance)]TJ/F24 10.9091 Tf 72.7768 0 Td[(t)]TJ/F15 10.9091 Tf 6.7369 0 Td[(in)-256(th)1(e)-257(ILU\050)]TJ/F24 10.9091 Tf 53.0193 0 Td[(p;)-167(t)]TJ/F15 10.9091 Tf 14.2765 0 Td[(\051)-256(factoriza-)]TJ -146.8095 -13.5492 Td[(tion)1(.)]TJ -ET -1 0 0 1 905.1282 610.6909 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 27.0984 l -S -Q -1 0 0 1 -612.5029 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -612.7021 0.1992 l -S -Q -1 0 0 1 -0.1992 -13.5492 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -292.4261 -596.7432 cm -BT -/F45 10.9091 Tf 298.6029 600.808 Td[(Note)]TJ/F15 10.9091 Tf 30.3559 0 Td[(Defau)1(lts)-334(f)1(or)]TJ/F46 10.9091 Tf 59.9395 0 Td[(m)]TJ/F15 10.9091 Tf 5.7272 0 Td[(ld)]TJ -ET -1 0 0 1 404.3709 600.808 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.2728 0.1992 l -S -Q -1 0 0 1 -404.3709 -600.808 cm -BT -/F15 10.9091 Tf 407.6437 600.808 Td[(coars)-1(e)]TJ -ET -1 0 0 1 437.48 600.808 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.2728 0.1992 l -S -Q -1 0 0 1 -437.48 -600.808 cm -BT -/F15 10.9091 Tf 440.7528 600.808 Td[(subsolv)28(e)]TJ -ET -1 0 0 1 480.9225 600.808 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.2728 0.1992 l -S -Q -1 0 0 1 -480.9225 -600.808 cm -BT -/F15 10.9091 Tf 487.8316 600.808 Td[(are)-333(c)27(hose)-1(n)-332(as)]TJ -ET -1 0 0 1 905.1282 596.7432 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -612.7021 -13.5492 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -292.4261 -583.194 cm -BT -/F15 10.9091 Tf 298.6029 587.2588 Td[(Si)1(ngle)-333(prec)-1(i)1(s)-1(ion)-332(v)28(e)-1(rsion)1(:)-445(')1(SLU')-333(if)-333(i)1(nstalled,)-333('ILU')-333(oth)1(e)-1(rwise)]TJ -ET -1 0 0 1 905.1282 583.194 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -612.7021 -13.5492 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -292.4261 -569.6448 cm -BT -/F15 10.9091 Tf 298.6029 573.7096 Td[(Dou)1(ble)-334(p)1(rec)-1(i)1(s)-1(ion)-333(v)28(ersion)1(:)-445(')1(UMF')-333(if)-333(i)1(nstalled,)-333(els)-1(e)-333('SLU')-333(if)-333(i)1(nstalled,)-333('ILU')-333(oth)1(e)-1(r)1(w)-1(i)1(s)-1(e)]TJ -ET -1 0 0 1 905.1282 569.6449 cm -q -[]0 d -0 J -0.3985 w -0.1992 0 m -0.1992 13.5492 l -S -Q -1 0 0 1 -612.5029 -0.3985 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -612.7021 0.1992 l -S -Q -1 0 0 1 111.0143 -30.4899 cm -0 g 0 G -1 0 0 1 -403.6396 -538.7565 cm -BT -/F15 10.9091 Tf 403.6396 538.7565 Td[(T)83(ab)1(le)-334(5:)-444(P)28(aramete)-1(r)1(s)-334(de\014n)1(ing)-333(th)1(e)-334(c)-1(oar)1(s)-1(e-)-1(space)-334(correction)-333(at)-333(the)-333(c)-1(oarses)-1(t)-333(lev)28(e)-1(l.)]TJ -ET -1 0 0 1 775.1854 538.7565 cm -0 g 0 G -1 0 0 1 111.0143 176.3387 cm -0 g 0 G -1 0 0 1 -593.5744 0 cm - Q -1 0 0 1 -206.2255 -593.5743 cm -0 g 0 G -1 0 0 1 0 -29.888 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -475 0 obj << -/Type /Page -/Contents 476 0 R -/Resources 474 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 473 0 R ->> endobj -477 0 obj << -/D [475 0 R /XYZ 86.3998 740.0018 null] ->> endobj -389 0 obj << -/D [475 0 R /XYZ 446.973 552.3057 null] ->> endobj -474 0 obj << -/Font << /F15 131 0 R /F43 134 0 R /F46 219 0 R /F24 186 0 R /F27 189 0 R /F20 181 0 R /F45 147 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -480 0 obj << -/Length 4533 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(6)]TJ -ET -1 0 0 1 99.6305 740.0018 cm -0 g 0 G -1 0 0 1 -99.6305 -740.0018 cm -BT -/F43 10.9091 Tf 103.7516 740.0018 Td[(Use)1(r)-378(Interf)89(a)22(ce)]TJ/F15 10.9091 Tf 391.3906 0 Td[(27)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -506.0513 -740.0018 cm -BT -/F19 11.9552 Tf 93.6002 704.1363 Td[(6.)-1(3)-1125(Subr)-1(out)-1(ine)-376(ml)-1(d)]TJ -ET -1 0 0 1 216.6225 704.1363 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -4.0349 0.1992 l -S -Q -1 0 0 1 -216.6225 -704.1363 cm -BT -/F19 11.9552 Tf 220.6574 704.1363 Td[(pre)-1(cbld)]TJ -ET -1 0 0 1 214.1903 683.5417 cm -0 g 0 G -0 g 0 G -1 0 0 1 -214.1903 -683.5417 cm -BT -/F46 10.9091 Tf 219.6448 683.5417 Td[(mld_precbld\050a,desc_a,p,info\051)]TJ/F15 10.9091 Tf -126.0446 -25.5044 Td[(This)-318(routi)1(ne)-319(b)1(uild)1(s)-319(th)1(e)-319(prec)-1(on)1(di)1(tioner)-318(ac)-1(cord)1(ing)-318(to)-319(t)1(he)-319(requ)1(irem)-1(en)28(ts)-319(made)-318(b)28(y)-319(t)1(he)-319(u)1(s)-1(er)]TJ 0 -13.5492 Td[(th)1(rough)-333(t)1(he)-334(r)1(outin)1(e)-1(s)]TJ/F46 10.9091 Tf 101.9395 0 Td[(mld_precinit)]TJ/F15 10.9091 Tf 72.3629 0 Td[(and)]TJ/F46 10.9091 Tf 21.2121 0 Td[(mld_precset)]TJ/F15 10.9091 Tf 62.9993 0 Td[(.)]TJ/F19 11.9552 Tf -258.5138 -40.6476 Td[(Arg)-1(umen)31(t)-1(s)]TJ/F46 10.9091 Tf 22.9141 -12.8052 Td[(a)-3689(type\050psb_)]TJ/F20 10.9091 Tf 97.5157 0 Td[(x)]TJ/F46 10.9091 Tf 6.3742 0 Td[(spmat_type\051,)-525(intent\050in\051)]TJ/F15 10.9091 Tf 131.7258 0 Td[(.)]TJ -189.6449 -13.5492 Td[(The)-501(s)-1(p)1(arse)-502(matr)1(ix)-501(stru)1(c)-1(tu)1(re)-501(c)-1(on)28(t)1(ainin)1(g)-501(th)1(e)-502(lo)-27(c)-1(al)-500(part)-500(of)-501(th)1(e)-502(matri)1(x)]TJ 0 -13.5492 Td[(to)-470(b)-27(e)-470(precondi)1(tioned.)-853(Note)-470(that)]TJ/F20 10.9091 Tf 166.818 0 Td[(x)]TJ/F15 10.9091 Tf 11.4997 0 Td[(m)27(u)1(s)-1(t)-469(b)-28(e)-470(c)27(h)1(os)-1(en)-469(ac)-1(cordi)1(ng)-470(to)-469(the)]TJ -178.3177 -13.5492 Td[(real/com)-1(p)1(lex,)-534(sin)1(gle)-1(/d)1(oub)1(le)-494(pr)1(e)-1(cision)-493(v)28(e)-1(r)1(s)-1(ion)-493(of)-493(MLD)1(2P4)-494(u)1(nd)1(e)-1(r)-493(u)1(s)-1(e.)]TJ 0 -13.5492 Td[(See)-334(th)1(e)-334(PS)1(BLAS)-333(Us)-1(er's)-333(Guid)1(e)-334(f)1(or)-333(details)-334([)]TJ -ET -1 0 0 1 365.6823 536.8385 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -365.6823 -536.8385 cm -BT -/F15 10.9091 Tf 365.6823 536.8385 Td[(14)]TJ -ET -1 0 0 1 376.5914 536.8385 cm -0 g 0 G -1 0 0 1 -376.5914 -536.8385 cm -BT -/F15 10.9091 Tf 376.5914 536.8385 Td[(].)]TJ/F46 10.9091 Tf -260.0771 -13.5492 Td[(desc_a)-1064(type\050psb_desc_type\051,)-525(intent\050in\051)]TJ/F15 10.9091 Tf 223.5144 0 Td[(.)]TJ -177.5436 -13.5492 Td[(The)-354(c)-1(omm)28(uni)1(c)-1(ati)1(on)-354(d)1(e)-1(sc)-1(r)1(iptor)-353(of)]TJ/F46 10.9091 Tf 162.8355 0 Td[(a)]TJ/F15 10.9091 Tf 5.7272 0 Td[(.)-506(S)1(e)-1(e)-354(the)-354(P)1(SBLAS)-354(Use)-1(r)1('s)-354(Gui)1(de)-354(for)]TJ -168.5627 -13.5492 Td[(detail)1(s)-334([)]TJ -ET -1 0 0 1 200.1215 496.191 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -200.1215 -496.191 cm -BT -/F15 10.9091 Tf 200.1215 496.191 Td[(14)]TJ -ET -1 0 0 1 211.0306 496.191 cm -0 g 0 G -1 0 0 1 -211.0306 -496.191 cm -BT -/F15 10.9091 Tf 211.0306 496.191 Td[(].)]TJ/F46 10.9091 Tf -94.5163 -13.5492 Td[(p)-3689(type\050mld_)]TJ/F20 10.9091 Tf 97.5157 0 Td[(x)]TJ/F46 10.9091 Tf 6.3742 0 Td[(prec_type\051,)-525(intent\050inout\051)]TJ/F15 10.9091 Tf 143.1803 0 Td[(.)]TJ -201.0994 -13.5492 Td[(The)-478(pr)1(e)-1(cond)1(ition)1(e)-1(r)-478(d)1(ata)-478(stru)1(c)-1(tu)1(re.)-879(Note)-478(th)1(at)]TJ/F20 10.9091 Tf 233.1081 0 Td[(x)]TJ/F15 10.9091 Tf 11.5884 0 Td[(m)27(u)1(s)-1(t)-477(b)-28(e)-478(c)27(h)1(os)-1(en)-478(ac-)]TJ -244.6965 -13.5492 Td[(cordi)1(ng)-269(to)-269(the)-270(r)1(e)-1(al/complex,)-282(singl)1(e)-1(/d)1(oub)1(le)-270(pr)1(e)-1(cision)-269(v)28(ers)-1(i)1(on)-269(of)-269(MLD2P)1(4)]TJ 0 -13.5492 Td[(un)1(der)-333(use)-1(.)]TJ/F46 10.9091 Tf -45.9708 -13.5492 Td[(info)-2114(integer,)-525(intent\050out\051)]TJ/F15 10.9091 Tf 160.515 0 Td[(.)]TJ -114.5442 -13.5492 Td[(Er)1(ror)-333(co)-28(de.)-444(If)-333(no)-333(e)-1(r)1(ror,)-333(0)-333(is)-334(r)1(e)-1(tu)1(rn)1(e)-1(d)1(.)-445(S)1(e)-1(e)-333(Sec)-1(tion)]TJ -ET -1 0 0 1 403.2429 414.8958 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -403.2429 -414.8958 cm -BT -/F15 10.9091 Tf 403.2429 414.8958 Td[(7)]TJ -ET -1 0 0 1 408.6974 414.8958 cm -0 g 0 G -1 0 0 1 -408.6974 -414.8958 cm -BT -/F15 10.9091 Tf 412.3338 414.8958 Td[(for)-333(d)1(e)-1(t)1(ails.)]TJ -ET -1 0 0 1 93.6002 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -479 0 obj << -/Type /Page -/Contents 480 0 R -/Resources 478 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 473 0 R -/Annots [ 482 0 R 483 0 R 484 0 R 485 0 R ] ->> endobj -482 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 739.0056 100.6267 748.4526] -/Subtype /Link -/A << /S /GoTo /D (section.6) >> ->> endobj -483 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [364.686 535.8423 377.5877 544.8651] -/Subtype /Link -/A << /S /GoTo /D (cite.PSBLASGUIDE) >> ->> endobj -484 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [199.1253 495.1947 212.0269 504.2175] -/Subtype /Link -/A << /S /GoTo /D (cite.PSBLASGUIDE) >> ->> endobj -485 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [402.2466 409.8348 409.6937 423.4679] -/Subtype /Link -/A << /S /GoTo /D (section.7) >> ->> endobj -481 0 obj << -/D [479 0 R /XYZ 93.6002 740.0018 null] ->> endobj -78 0 obj << -/D [479 0 R /XYZ 93.6002 715.0952 null] ->> endobj -478 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F19 113 0 R /F46 219 0 R /F20 181 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -488 0 obj << -/Length 10566 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(28)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -498.8509 -740.0018 cm -BT -/F19 11.9552 Tf 86.3998 704.1363 Td[(6.)-1(4)-1125(Subr)-1(out)-1(ine)-376(ml)-1(d)]TJ -ET -1 0 0 1 209.422 704.1363 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -4.0349 0.1992 l -S -Q -1 0 0 1 -209.422 -704.1363 cm -BT -/F19 11.9552 Tf 213.4569 704.1363 Td[(pre)-1(caply)]TJ -ET -1 0 0 1 198.399 683.5417 cm -0 g 0 G -0 g 0 G -1 0 0 1 -198.399 -683.5417 cm -BT -/F46 10.9091 Tf 203.8536 683.5417 Td[(mld_precaply\050p,x,y,desc_a,info\051)]TJ -31.4997 -13.5492 Td[(mld_precaply\050p,x,y,desc_a,info,trans,work\051)]TJ/F15 10.9091 Tf -85.9541 -25.5044 Td[(This)-382(r)1(outin)1(e)-382(c)-1(ompu)1(te)-1(s)]TJ/F24 10.9091 Tf 112.644 0 Td[(y)]TJ/F15 10.9091 Tf 9.6497 0 Td[(=)]TJ/F24 10.9091 Tf 12.3947 0 Td[(op)]TJ/F15 10.9091 Tf 10.7765 0 Td[(\050)]TJ/F24 10.9091 Tf 4.2424 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 3.9588 Td[(\000)]TJ/F22 7.9701 Tf 6.5866 0 Td[(1)]TJ/F15 10.9091 Tf 4.7323 -3.9588 Td[(\051)]TJ/F24 10.9091 Tf 6.0606 0 Td[(x)]TJ/F15 10.9091 Tf 6.2348 0 Td[(,)-394(wh)1(e)-1(r)1(e)]TJ/F24 10.9091 Tf 39.3996 0 Td[(M)]TJ/F15 10.9091 Tf 15.9368 0 Td[(is)-382(a)-382(p)1(reviou)1(s)-1(ly)-381(bu)1(ilt)-381(prec)-1(on)1(di)1(tioner,)]TJ -240.4308 -13.5492 Td[(stored)-424(i)1(n)28(to)]TJ/F46 10.9091 Tf 56.9069 0 Td[(p)]TJ/F15 10.9091 Tf 5.7272 0 Td[(,)-446(an)1(d)]TJ/F24 10.9091 Tf 30.0922 0 Td[(op)]TJ/F15 10.9091 Tf 15.3966 0 Td[(denot)1(e)-1(s)-424(th)1(e)-424(pr)1(e)-1(cond)1(ition)1(e)-1(r)-423(itse)-1(l)1(f)-424(or)-423(i)1(ts)-424(tran)1(s)-1(p)-27(os)-1(e,)-446(acc)-1(or)1(din)1(g)-424(to)]TJ -108.1229 -13.5492 Td[(th)1(e)-497(v)56(alue)-496(of)]TJ/F46 10.9091 Tf 64.7192 0 Td[(trans)]TJ/F15 10.9091 Tf 28.6361 0 Td[(.)-932(Note)-497(th)1(at,)-537(wh)1(e)-1(n)-495(MLD2P4)-496(i)1(s)-497(u)1(s)-1(ed)-496(with)-495(a)-496(Kryl)1(o)27(v)-496(solv)28(er)-496(f)1(rom)]TJ -93.3553 -13.5492 Td[(PS)1(BLAS,)]TJ/F46 10.9091 Tf 49.3635 0 Td[(mld_precaply)]TJ/F15 10.9091 Tf 72.7869 0 Td[(is)-372(c)-1(all)1(e)-1(d)-372(with)1(in)-372(th)1(e)-373(P)1(SBLAS)-372(rou)1(tin)1(e)]TJ/F46 10.9091 Tf 180.6653 0 Td[(mld_krylov)]TJ/F15 10.9091 Tf 61.3325 0 Td[(and)-371(hence)]TJ -364.1482 -13.5492 Td[(it)-333(is)-334(completely)-333(tran)1(s)-1(p)1(are)-1(n)29(t)-334(t)1(o)-334(th)1(e)-334(user.)]TJ/F19 11.9552 Tf 0 -40.6476 Td[(Arg)-1(umen)31(t)-1(s)]TJ/F46 10.9091 Tf 22.9141 -12.8052 Td[(p)-3689(type\050mld_)]TJ/F20 10.9091 Tf 97.5157 0 Td[(x)]TJ/F46 10.9091 Tf 6.3742 0 Td[(prec_type\051,)-525(intent\050inout\051)]TJ/F15 10.9091 Tf 143.1803 0 Td[(.)]TJ -201.0994 -13.5492 Td[(The)-282(p)1(rec)-1(on)1(diti)1(oner)-282(d)1(ata)-282(stru)1(c)-1(tu)1(re,)-292(con)28(tain)1(ing)-281(the)-282(l)1(o)-28(c)-1(al)-281(p)1(art)-282(of)]TJ/F24 10.9091 Tf 297.967 0 Td[(M)]TJ/F15 10.9091 Tf 11.7727 0 Td[(.)-427(Note)]TJ -309.7397 -13.5492 Td[(th)1(at)]TJ/F20 10.9091 Tf 25.3623 0 Td[(x)]TJ/F15 10.9091 Tf 11.7365 0 Td[(m)27(u)1(s)-1(t)-491(b)-27(e)-492(c)27(hosen)-492(accordi)1(ng)-492(t)1(o)-492(th)1(e)-492(real/c)-1(ompl)1(e)-1(x,)-530(s)-1(in)1(gle/doub)1(le)]TJ -37.0988 -13.5492 Td[(pr)1(e)-1(cision)-333(v)28(ers)-1(i)1(on)-333(of)-333(MLD2P)1(4)-334(u)1(nd)1(e)-1(r)-333(u)1(s)-1(e.)]TJ/F46 10.9091 Tf -45.9708 -13.5492 Td[(x)]TJ/F20 10.9091 Tf 45.9708 0 Td[(typ)51(e)]TJ/F46 10.9091 Tf 19.7771 0 Td[(\050)]TJ/F20 10.9091 Tf 5.7272 0 Td[(kind)]TJ -ET -1 0 0 1 201.5306 482.6418 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.3455 0.1992 l -S -Q -1 0 0 1 -201.5306 -482.6418 cm -BT -/F20 10.9091 Tf 204.8761 482.6418 Td[(p)51(ar)51(ameter)]TJ/F46 10.9091 Tf 48.5678 0 Td[(\051,)-525(dimension\050:\051,)-525(intent\050in\051)]TJ/F15 10.9091 Tf 154.6347 0 Td[(.)]TJ -252.7939 -13.5492 Td[(The)-301(l)1(o)-28(c)-1(al)-300(p)1(art)-300(of)-300(th)1(e)-301(v)28(ec)-1(tor)]TJ/F24 10.9091 Tf 133.6555 0 Td[(x)]TJ/F15 10.9091 Tf 6.2348 0 Td[(.)-433(Note)-301(th)1(at)]TJ/F20 10.9091 Tf 57.0377 0 Td[(typ)51(e)]TJ/F15 10.9091 Tf 23.053 0 Td[(and)]TJ/F20 10.9091 Tf 20.8517 0 Td[(kind)]TJ -ET -1 0 0 1 416.859 469.0926 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.3455 0.1992 l -S -Q -1 0 0 1 -416.859 -469.0926 cm -BT -/F20 10.9091 Tf 420.2045 469.0926 Td[(p)51(ar)51(ameter)]TJ/F15 10.9091 Tf 51.8437 0 Td[(m)27(u)1(s)-1(t)]TJ -316.7635 -13.5492 Td[(b)-27(e)-264(c)27(h)1(os)-1(en)-263(acc)-1(or)1(din)1(g)-264(to)-263(th)1(e)-264(real/com)-1(p)1(lex,)-277(s)-1(i)1(ngle/dou)1(ble)-263(precis)-1(i)1(on)-263(v)28(e)-1(r)1(s)-1(ion)]TJ 0 -13.5492 Td[(of)-333(MLD)1(2P4)-333(un)1(der)-333(use)-1(.)]TJ/F46 10.9091 Tf -45.9708 -13.5492 Td[(y)]TJ/F20 10.9091 Tf 45.9708 0 Td[(typ)51(e)]TJ/F46 10.9091 Tf 19.7771 0 Td[(\050)]TJ/F20 10.9091 Tf 5.7272 0 Td[(kind)]TJ -ET -1 0 0 1 201.5306 428.445 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.3455 0.1992 l -S -Q -1 0 0 1 -201.5306 -428.445 cm -BT -/F20 10.9091 Tf 204.8761 428.445 Td[(p)51(ar)51(ameter)]TJ/F46 10.9091 Tf 48.5678 0 Td[(\051,)-525(dimension\050:\051,)-525(intent\050out\051)]TJ/F15 10.9091 Tf 160.3619 0 Td[(.)]TJ -258.5211 -13.5492 Td[(The)-305(l)1(o)-28(c)-1(al)-304(p)1(art)-304(of)-304(th)1(e)-305(v)28(ec)-1(tor)]TJ/F24 10.9091 Tf 133.9175 0 Td[(y)]TJ/F15 10.9091 Tf 5.7399 0 Td[(.)-435(Not)1(e)-305(that)]TJ/F20 10.9091 Tf 57.1396 0 Td[(typ)51(e)]TJ/F15 10.9091 Tf 23.0967 0 Td[(and)]TJ/F20 10.9091 Tf 20.8953 0 Td[(kind)]TJ -ET -1 0 0 1 416.8153 414.8958 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.3455 0.1992 l -S -Q -1 0 0 1 -416.8153 -414.8958 cm -BT -/F20 10.9091 Tf 420.1608 414.8958 Td[(p)51(ar)51(ameter)]TJ/F15 10.9091 Tf 51.8874 0 Td[(m)27(u)1(s)-1(t)]TJ -316.7635 -13.5492 Td[(b)-27(e)-264(c)27(h)1(os)-1(en)-263(acc)-1(or)1(din)1(g)-264(to)-263(th)1(e)-264(real/com)-1(p)1(lex,)-277(s)-1(i)1(ngle/dou)1(ble)-263(precis)-1(i)1(on)-263(v)28(e)-1(r)1(s)-1(ion)]TJ 0 -13.5492 Td[(of)-333(MLD)1(2P4)-333(un)1(der)-333(use)-1(.)]TJ/F46 10.9091 Tf -45.9708 -13.5492 Td[(desc_a)-1064(type\050psb_desc_type\051,)-525(intent\050in\051)]TJ/F15 10.9091 Tf 223.5143 0 Td[(.)]TJ -177.5435 -13.5492 Td[(The)-320(com)-1(m)28(un)1(ication)-319(des)-1(cri)1(ptor)-319(as)-1(so)-28(ciated)-319(to)-320(th)1(e)-320(matrix)-319(to)-319(b)-28(e)-320(p)1(rec)-1(on)1(di-)]TJ 0 -13.5492 Td[(tion)1(e)-1(d)1(.)]TJ/F46 10.9091 Tf -45.9708 -13.5491 Td[(info)-2114(integer,)-525(intent\050out\051)]TJ/F15 10.9091 Tf 160.515 0 Td[(.)]TJ -114.5442 -13.5492 Td[(Er)1(ror)-333(co)-28(de.)-444(If)-333(no)-333(e)-1(r)1(ror,)-333(0)-333(is)-334(r)1(e)-1(tu)1(rn)1(e)-1(d)1(.)-445(S)1(e)-1(e)-333(Sec)-1(tion)]TJ -ET -1 0 0 1 396.0424 320.0515 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -396.0424 -320.0515 cm -BT -/F15 10.9091 Tf 396.0424 320.0515 Td[(7)]TJ -ET -1 0 0 1 401.497 320.0515 cm -0 g 0 G -1 0 0 1 -401.497 -320.0515 cm -BT -/F15 10.9091 Tf 405.1333 320.0515 Td[(for)-333(d)1(e)-1(t)1(ails.)]TJ/F46 10.9091 Tf -295.8195 -13.5492 Td[(trans)-1589(character\050len=1\051,)-525(optional,)-525(intent\050in\051.)]TJ/F15 10.9091 Tf 45.9709 -13.5492 Td[(If)]TJ/F46 10.9091 Tf 13.6472 0 Td[(trans)]TJ/F15 10.9091 Tf 35.0105 0 Td[(=)]TJ/F46 10.9091 Tf 14.8593 0 Td[('N','n')]TJ/F15 10.9091 Tf 46.4649 0 Td[(th)1(e)-1(n)]TJ/F24 10.9091 Tf 27.5867 0 Td[(op)]TJ/F15 10.9091 Tf 10.7765 0 Td[(\050)]TJ/F24 10.9091 Tf 4.2424 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 3.9588 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F15 10.9091 Tf 4.7323 -3.9588 Td[(\051)-696(=)]TJ/F24 10.9091 Tf 27.9147 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 3.9588 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F15 10.9091 Tf 4.7323 -3.9588 Td[(;)-710(i)1(f)]TJ/F46 10.9091 Tf 23.5119 0 Td[(trans)]TJ/F15 10.9091 Tf 35.0105 0 Td[(=)]TJ/F46 10.9091 Tf 14.8593 0 Td[('T','t')]TJ/F15 10.9091 Tf -300.067 -13.5492 Td[(th)1(e)-1(n)]TJ/F24 10.9091 Tf 25.6956 0 Td[(op)]TJ/F15 10.9091 Tf 10.7766 0 Td[(\050)]TJ/F24 10.9091 Tf 4.2424 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 3.9588 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F15 10.9091 Tf 4.7323 -3.9588 Td[(\051)-407(=)]TJ/F24 10.9091 Tf 21.6115 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 3.9588 Td[(\000)]TJ/F25 7.9701 Tf 6.5865 0 Td[(T)]TJ/F15 10.9091 Tf 11.088 -3.9588 Td[(\050tr)1(ansp)-28(ose)-412(of)]TJ/F24 10.9091 Tf 67.3003 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 3.9588 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F15 10.9091 Tf 4.7323 -3.9588 Td[(\051;)-449(if)]TJ/F46 10.9091 Tf 23.0269 0 Td[(trans)]TJ/F15 10.9091 Tf 33.1195 0 Td[(=)]TJ/F46 10.9091 Tf 12.9684 0 Td[('C','c')]TJ/F15 10.9091 Tf 44.5739 0 Td[(th)1(e)-1(n)]TJ/F24 10.9091 Tf -318.9453 -13.5492 Td[(op)]TJ/F15 10.9091 Tf 10.7765 0 Td[(\050)]TJ/F24 10.9091 Tf 4.2424 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 3.9588 Td[(\000)]TJ/F22 7.9701 Tf 6.5866 0 Td[(1)]TJ/F15 10.9091 Tf 4.7323 -3.9588 Td[(\051)-278(=)]TJ/F24 10.9091 Tf 18.7878 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 3.9588 Td[(\000)]TJ/F25 7.9701 Tf 6.5865 0 Td[(C)]TJ/F15 10.9091 Tf 10.7332 -3.9588 Td[(\050conj)1(ugate)-334(tr)1(ansp)-28(ose)-334(of)]TJ/F24 10.9091 Tf 115.0001 0 Td[(M)]TJ/F28 7.9701 Tf 11.7727 3.9588 Td[(\000)]TJ/F22 7.9701 Tf 6.5865 0 Td[(1)]TJ/F15 10.9091 Tf 4.7323 -3.9588 Td[(\051.)]TJ/F46 10.9091 Tf -270.0532 -13.5492 Td[(work)]TJ/F20 10.9091 Tf 45.9709 0 Td[(typ)51(e)]TJ/F46 10.9091 Tf 19.7771 0 Td[(\050)]TJ/F20 10.9091 Tf 5.7272 0 Td[(kind)]TJ -ET -1 0 0 1 201.5306 252.3056 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.3455 0.1992 l -S -Q -1 0 0 1 -201.5306 -252.3056 cm -BT -/F20 10.9091 Tf 204.8761 252.3056 Td[(p)51(ar)51(ameter)]TJ/F46 10.9091 Tf 48.5678 0 Td[(\051,)-525(dimension\050:\051,)-525(optional,)-525(target)]TJ/F15 10.9091 Tf 188.998 0 Td[(.)]TJ -287.1572 -13.5492 Td[(W)84(orkspace)-1(.)-1532(Its)-697(size)-697(shou)1(ld)-696(b)-27(e)-697(at)-696(l)1(e)-1(ast)]TJ/F46 10.9091 Tf 219.886 0 Td[(4)-525(*)-525(psb_cd_get_local_)]TJ -219.886 -13.5492 Td[(cols\050desc_a\051)]TJ/F15 10.9091 Tf 73.9059 0 Td[(\050se)-1(e)-475(th)1(e)-476(P)1(SBLAS)-474(Us)-1(er's)-475(Gu)1(id)1(e)-1(\051.)-868(Note)-475(that)]TJ/F20 10.9091 Tf 223.7193 0 Td[(typ)51(e)]TJ/F15 10.9091 Tf 24.9565 0 Td[(and)]TJ/F20 10.9091 Tf -322.5817 -13.5492 Td[(kind)]TJ -ET -1 0 0 1 176.0263 211.658 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.3455 0.1992 l -S -Q -1 0 0 1 -176.0263 -211.658 cm -BT -/F20 10.9091 Tf 179.3718 211.658 Td[(p)51(ar)51(ameter)]TJ/F15 10.9091 Tf 54.6268 0 Td[(m)27(u)1(s)-1(t)-555(b)-27(e)-556(c)27(h)1(os)-1(en)-555(ac)-1(cord)1(ing)-555(to)-555(the)-556(r)1(e)-1(al/complex,)-611(sin)1(-)]TJ -78.7139 -13.5492 Td[(gle/dou)1(ble)-333(prec)-1(i)1(s)-1(ion)-332(v)28(e)-1(rsion)-333(of)-333(M)1(LD2P4)-333(un)1(der)-333(use)-1(.)]TJ -ET -1 0 0 1 86.3998 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -487 0 obj << -/Type /Page -/Contents 488 0 R -/Resources 486 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 473 0 R -/Annots [ 490 0 R ] ->> endobj -490 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [395.0462 314.9904 402.4932 328.6235] -/Subtype /Link -/A << /S /GoTo /D (section.7) >> ->> endobj -489 0 obj << -/D [487 0 R /XYZ 86.3998 740.0018 null] ->> endobj -82 0 obj << -/D [487 0 R /XYZ 86.3998 715.0952 null] ->> endobj -486 0 obj << -/Font << /F15 131 0 R /F43 134 0 R /F19 113 0 R /F46 219 0 R /F24 186 0 R /F28 293 0 R /F22 296 0 R /F20 181 0 R /F25 290 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -493 0 obj << -/Length 2326 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(6)]TJ -ET -1 0 0 1 99.6305 740.0018 cm -0 g 0 G -1 0 0 1 -99.6305 -740.0018 cm -BT -/F43 10.9091 Tf 103.7516 740.0018 Td[(Use)1(r)-378(Interf)89(a)22(ce)]TJ/F15 10.9091 Tf 391.3906 0 Td[(29)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -506.0513 -740.0018 cm -BT -/F19 11.9552 Tf 93.6002 704.1363 Td[(6.)-1(5)-1125(Subr)-1(out)-1(ine)-376(ml)-1(d)]TJ -ET -1 0 0 1 216.6225 704.1363 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -4.0349 0.1992 l -S -Q -1 0 0 1 -216.6225 -704.1363 cm -BT -/F19 11.9552 Tf 220.6574 704.1363 Td[(pre)-1(cfree)]TJ -ET -1 0 0 1 237.0991 683.5417 cm -0 g 0 G -0 g 0 G -1 0 0 1 -237.0991 -683.5417 cm -BT -/F46 10.9091 Tf 242.5537 683.5417 Td[(mld_precfree\050p,info\051)]TJ/F15 10.9091 Tf -148.9535 -25.5044 Td[(This)-333(rout)1(ine)-334(d)1(e)-1(al)1(lo)-28(cate)-1(s)-333(the)-334(p)1(rec)-1(on)1(diti)1(oner)-333(data)-333(s)-1(t)1(ructur)1(e)-1(.)]TJ/F19 11.9552 Tf 0 -40.6476 Td[(Arg)-1(umen)31(t)-1(s)]TJ/F46 10.9091 Tf 22.9141 -12.8052 Td[(p)-3689(type\050mld_)]TJ/F20 10.9091 Tf 97.5157 0 Td[(x)]TJ/F46 10.9091 Tf 6.3742 0 Td[(prec_type\051,)-525(intent\050inout\051)]TJ/F15 10.9091 Tf 143.1803 0 Td[(.)]TJ -201.0994 -13.5492 Td[(The)-267(prec)-1(on)1(di)1(tioner)-267(dat)1(a)-268(stru)1(c)-1(tu)1(re.)-422(Note)-268(th)1(at)]TJ/F20 10.9091 Tf 216.6391 0 Td[(x)]TJ/F15 10.9091 Tf 9.2894 0 Td[(m)27(u)1(s)-1(t)-267(b)-27(e)-268(c)28(hose)-1(n)]TJ -225.9285 -13.5492 Td[(acc)-1(ord)1(in)1(g)-352(to)-352(the)-352(real/c)-1(ompl)1(e)-1(x,)-356(single/dou)1(bl)1(e)-353(p)1(re)-1(cision)-352(v)28(ersion)]TJ 0 -13.5492 Td[(of)-333(MLD)1(2P4)-333(un)1(der)-333(use)-1(.)]TJ/F46 10.9091 Tf -45.9708 -13.5492 Td[(info)-2114(integer,)-525(intent\050out\051)]TJ/F15 10.9091 Tf 160.515 0 Td[(.)]TJ -114.5442 -13.5492 Td[(Er)1(ror)-307(c)-1(o)-28(d)1(e)-1(.)-435(If)-308(n)1(o)-308(e)-1(r)1(ror,)-313(0)-307(is)-308(re)-1(t)1(urn)1(e)-1(d)1(.)-436(See)-308(Sec)-1(ti)1(on)]TJ -ET -1 0 0 1 400.8906 536.8386 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -400.8906 -536.8386 cm -BT -/F15 10.9091 Tf 400.8906 536.8386 Td[(7)]TJ -ET -1 0 0 1 406.3452 536.8386 cm -0 g 0 G -1 0 0 1 -406.3452 -536.8386 cm -BT -/F15 10.9091 Tf 409.7037 536.8386 Td[(for)-307(details.)]TJ -ET -1 0 0 1 93.6002 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -492 0 obj << -/Type /Page -/Contents 493 0 R -/Resources 491 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 473 0 R -/Annots [ 495 0 R 496 0 R ] ->> endobj -495 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 739.0056 100.6267 748.4526] -/Subtype /Link -/A << /S /GoTo /D (section.6) >> ->> endobj -496 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [399.8944 531.7775 407.3414 545.4106] -/Subtype /Link -/A << /S /GoTo /D (section.7) >> ->> endobj -494 0 obj << -/D [492 0 R /XYZ 93.6002 740.0018 null] ->> endobj -86 0 obj << -/D [492 0 R /XYZ 93.6002 715.0952 null] ->> endobj -491 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F19 113 0 R /F46 219 0 R /F20 181 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -499 0 obj << -/Length 3084 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(30)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -498.8509 -740.0018 cm -BT -/F19 11.9552 Tf 86.3998 704.1363 Td[(6.)-1(6)-1125(Subr)-1(out)-1(ine)-376(ml)-1(d)]TJ -ET -1 0 0 1 209.422 704.1363 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -4.0349 0.1992 l -S -Q -1 0 0 1 -209.422 -704.1363 cm -BT -/F19 11.9552 Tf 213.4569 704.1363 Td[(pre)-1(cdescr)]TJ -ET -1 0 0 1 227.0351 683.5417 cm -0 g 0 G -0 g 0 G -1 0 0 1 -227.0351 -683.5417 cm -BT -/F46 10.9091 Tf 232.4896 683.5417 Td[(mld_precdescr\050p,info\051)]TJ -14.318 -13.5492 Td[(mld_precdescr\050p,info,iout\051)]TJ/F15 10.9091 Tf -131.7718 -25.5044 Td[(This)-364(rou)1(tine)-364(pri)1(n)28(ts)-365(a)-364(desc)-1(ri)1(ption)-363(of)-364(the)-364(prec)-1(on)1(di)1(tioner)-364(to)-364(the)-364(s)-1(tan)1(dar)1(d)-364(outp)1(ut)-364(or)-364(to)-364(a)]TJ 0 -13.5492 Td[(\014l)1(e)-1(.)-444(It)-333(m)27(u)1(s)-1(t)-333(b)-27(e)-334(c)-1(al)1(le)-1(d)-333(af)1(ter)]TJ/F46 10.9091 Tf 132.2122 0 Td[(mld_precbld)]TJ/F15 10.9091 Tf 66.6357 0 Td[(has)-333(b)-28(ee)-1(n)-332(c)-1(all)1(e)-1(d)1(.)]TJ/F19 11.9552 Tf -198.8479 -40.6476 Td[(Arg)-1(umen)31(t)-1(s)]TJ/F46 10.9091 Tf 22.9141 -12.8052 Td[(p)-3689(type\050mld_)]TJ/F20 10.9091 Tf 97.5157 0 Td[(x)]TJ/F46 10.9091 Tf 6.3742 0 Td[(prec_type\051,)-525(intent\050in\051)]TJ/F15 10.9091 Tf 125.9986 0 Td[(.)]TJ -183.9177 -13.5492 Td[(The)-478(pr)1(e)-1(cond)1(ition)1(e)-1(r)-478(d)1(ata)-478(stru)1(c)-1(tu)1(re.)-879(Note)-478(th)1(at)]TJ/F20 10.9091 Tf 233.1081 0 Td[(x)]TJ/F15 10.9091 Tf 11.5884 0 Td[(m)27(u)1(s)-1(t)-477(b)-28(e)-478(c)27(h)1(os)-1(en)-478(ac-)]TJ -244.6965 -13.5492 Td[(cordi)1(ng)-269(to)-269(the)-270(r)1(e)-1(al/complex,)-282(singl)1(e)-1(/d)1(oub)1(le)-270(pr)1(e)-1(cision)-269(v)28(ers)-1(i)1(on)-269(of)-269(MLD2P)1(4)]TJ 0 -13.5492 Td[(un)1(der)-333(use)-1(.)]TJ/F46 10.9091 Tf -45.9708 -13.5492 Td[(info)-2114(integer,)-525(intent\050out\051)]TJ/F15 10.9091 Tf 160.515 0 Td[(.)]TJ -114.5442 -13.5492 Td[(Er)1(ror)-333(co)-28(de.)-444(If)-333(no)-333(e)-1(r)1(ror,)-333(0)-333(is)-334(r)1(e)-1(tu)1(rn)1(e)-1(d)1(.)-445(S)1(e)-1(e)-333(Sec)-1(tion)]TJ -ET -1 0 0 1 396.0424 509.7402 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -396.0424 -509.7402 cm -BT -/F15 10.9091 Tf 396.0424 509.7402 Td[(7)]TJ -ET -1 0 0 1 401.497 509.7402 cm -0 g 0 G -1 0 0 1 -401.497 -509.7402 cm -BT -/F15 10.9091 Tf 405.1333 509.7402 Td[(for)-333(d)1(e)-1(t)1(ails.)]TJ/F46 10.9091 Tf -295.8195 -13.5492 Td[(iout)-2114(integer,)-525(intent\050in\051,)-525(optional)]TJ/F15 10.9091 Tf 212.06 0 Td[(.)]TJ -166.0891 -13.5492 Td[(The)-376(id)-375(of)-376(t)1(he)-376(\014le)-376(where)-376(th)1(e)-377(p)1(rec)-1(on)1(diti)1(oner)-376(d)1(e)-1(sc)-1(r)1(ipti)1(on)-376(wil)1(l)-376(b)-27(e)-377(p)1(rin)29(te)-1(d)1(;)]TJ 0 -13.5492 Td[(th)1(e)-334(defau)1(lt)-333(is)-334(th)1(e)-334(s)-1(t)1(andar)1(d)-333(outp)1(ut.)]TJ -ET -1 0 0 1 86.3998 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -498 0 obj << -/Type /Page -/Contents 499 0 R -/Resources 497 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 473 0 R -/Annots [ 501 0 R ] ->> endobj -501 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [395.0462 504.6791 402.4932 518.3122] -/Subtype /Link -/A << /S /GoTo /D (section.7) >> ->> endobj -500 0 obj << -/D [498 0 R /XYZ 86.3998 740.0018 null] ->> endobj -90 0 obj << -/D [498 0 R /XYZ 86.3998 715.0952 null] ->> endobj -497 0 obj << -/Font << /F15 131 0 R /F43 134 0 R /F19 113 0 R /F46 219 0 R /F20 181 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -504 0 obj << -/Length 2634 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -0 0 1 rg 0 0 1 RG -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(7)]TJ -ET -1 0 0 1 99.6305 740.0018 cm -0 g 0 G -1 0 0 1 -99.6305 -740.0018 cm -BT -/F43 10.9091 Tf 103.7516 740.0018 Td[(Err)22(o)1(r)-378(h)-1(and)-1(lin)-1(g)]TJ/F15 10.9091 Tf 391.3906 0 Td[(31)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -506.0513 -740.0018 cm -BT -/F19 14.3462 Tf 93.6002 704.1363 Td[(7)-1125(E)-1(rr)-1(or)-376(Ha)1(ndl)-1(ing)]TJ/F15 10.9091 Tf 0 -24.3522 Td[(The)-416(e)-1(rr)1(or)-416(han)1(dli)1(ng)-416(in)-416(M)1(LD2P4)-416(is)-416(base)-1(d)-416(on)-415(the)-417(P)1(SBLAS)-416(\050v)28(ersion)-416(2\051)-416(error)-415(hand)1(lin)1(g.)]TJ 0 -13.5492 Td[(Er)1(ror)-249(cond)1(ition)1(s)-250(ar)1(e)-250(signal)1(e)-1(d)-248(via)-249(an)-248(in)28(tege)-1(r)-248(argumen)28(t)]TJ/F46 10.9091 Tf 252.1874 0 Td[(info)]TJ/F15 10.9091 Tf 22.9088 0 Td[(;)-277(whenev)28(e)-1(r)-248(an)-249(error)-248(c)-1(on)1(diti)1(on)]TJ -275.0962 -13.5492 Td[(is)-316(d)1(e)-1(tecte)-1(d)1(,)-319(an)-315(e)-1(r)1(ror)-315(trace)-316(stac)27(k)-315(is)-316(b)1(uil)1(t)-316(b)29(y)-316(th)1(e)-316(lib)1(rar)1(y)-316(u)1(p)-315(to)-315(the)-316(top)1(-)-1(l)1(e)-1(v)28(el,)-319(u)1(s)-1(er-c)-1(al)1(lable)]TJ 0 -13.5492 Td[(rou)1(tin)1(e)-1(.)-552(This)-369(routi)1(ne)-370(wil)1(l)-370(t)1(hen)-369(dec)-1(id)1(e)-1(,)-378(acc)-1(or)1(din)1(g)-369(to)-370(t)1(he)-370(u)1(s)-1(er)-369(pr)1(e)-1(f)1(e)-1(rences)-1(,)-378(whether)-369(the)]TJ 0 -13.5492 Td[(error)-274(s)-1(h)1(ould)-274(b)-28(e)-275(han)1(dl)1(e)-1(d)-274(b)28(y)-275(terminati)1(ng)-275(th)1(e)-276(p)1(rogram)-275(or)-275(b)29(y)-275(retur)1(nin)1(g)-275(the)-275(error)-274(c)-1(on)1(diti)1(on)]TJ 0 -13.5492 Td[(to)-335(th)1(e)-335(use)-1(r)-334(c)-1(o)-27(de,)-335(whic)28(h)-335(will)-334(then)-334(tak)28(e)-335(ac)-1(ti)1(on,)-335(an)1(d)-335(wheth)1(e)-1(r)-334(an)-335(err)1(or)-335(me)-1(ssage)-336(shou)1(ld)-334(b)-28(e)]TJ 0 -13.5492 Td[(pr)1(in)28(ted.)-567(T)-1(h)1(e)-1(se)-375(opti)1(ons)-375(ma)28(y)-375(b)-27(e)-375(s)-1(et)-374(b)28(y)-374(using)-374(the)-375(P)1(SBLAS)-374(e)-1(r)1(ror)-374(han)1(dli)1(ng)-375(r)1(outi)1(nes)-1(;)-395(f)1(or)]TJ 0 -13.5492 Td[(fu)1(rth)1(e)-1(r)-333(d)1(e)-1(tai)1(ls)-334(se)-1(e)-334(t)1(he)-334(P)1(SBLAS)-333(Us)-1(er')1(s)-334(Gui)1(de)-334([)]TJ -ET -1 0 0 1 315.0702 584.9397 cm -1 0 0 rg 1 0 0 RG -1 0 0 1 -315.0702 -584.9397 cm -BT -/F15 10.9091 Tf 315.0702 584.9397 Td[(14)]TJ -ET -1 0 0 1 325.9793 584.9397 cm -0 g 0 G -1 0 0 1 -325.9793 -584.9397 cm -BT -/F15 10.9091 Tf 325.9793 584.9397 Td[(].)]TJ -ET -1 0 0 1 93.6002 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -503 0 obj << -/Type /Page -/Contents 504 0 R -/Resources 502 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 508 0 R -/Annots [ 506 0 R 507 0 R ] ->> endobj -506 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [92.604 739.0056 100.6267 748.4526] -/Subtype /Link -/A << /S /GoTo /D (section.7) >> ->> endobj -507 0 obj << -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 0] -/Rect [314.0739 583.9435 326.9755 592.9663] -/Subtype /Link -/A << /S /GoTo /D (cite.PSBLASGUIDE) >> ->> endobj -505 0 obj << -/D [503 0 R /XYZ 93.6002 740.0018 null] ->> endobj -94 0 obj << -/D [503 0 R /XYZ 93.6002 715.0952 null] ->> endobj -502 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F19 113 0 R /F46 219 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -511 0 obj << -/Length 4335 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(32)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -498.8509 -740.0018 cm -BT -/F19 14.3462 Tf 86.3998 704.1363 Td[(A)-1125(L)1(i)-1(cense)]TJ/F15 10.9091 Tf 0 -22.7582 Td[(The)-334(M)1(LD2P4)-333(is)-334(f)1(ree)-1(l)1(y)-334(d)1(istrib)1(utab)1(le)-334(u)1(nd)1(e)-1(r)-333(th)1(e)-334(fol)1(lo)28(w)-1(i)1(ng)-333(c)-1(op)28(y)1(righ)28(t)-333(terms)-1(:)]TJ -ET -1 0 0 1 80.9452 660.4566 cm -0 g 0 G -0 g 0 G -1 0 0 1 -80.9452 -660.4566 cm -BT -/F46 9.9626 Tf 217.1583 660.4566 Td[(MLD2P4)-1050(version)-525(1.0)]TJ -130.7585 -11.9552 Td[(MultiLevel)-525(Domain)-525(Decomposition)-525(Parallel)-525(Preconditioners)-525(Package)]TJ 57.5337 -11.9551 Td[(based)-525(on)-525(PSBLAS)-525(\050Parallel)-525(Sparse)-525(BLAS)-525(version)-525(2.3\051)]TJ -57.5337 -23.9104 Td[(\050C\051)-525(Copyright)-525(2008)]TJ 104.6068 -23.9103 Td[(Salvatore)-525(Filippone)-1050(University)-525(of)-525(Rome)-525(Tor)-525(Vergata)]TJ 0 -11.9552 Td[(Alfredo)-525(Buttari)-3150(University)-525(of)-525(Rome)-525(Tor)-525(Vergata)]TJ 0 -11.9551 Td[(Pasqua)-525(D'Ambra)-3675(ICAR-CNR,)-525(Naples)]TJ 0 -11.9552 Td[(Daniela)-525(di)-525(Serafino)-1050(Second)-525(University)-525(of)-525(Naples)]TJ -104.6068 -35.8655 Td[(Redistribution)-525(and)-525(use)-525(in)-525(source)-525(and)-525(binary)-525(forms,)-525(with)-525(or)-525(without)]TJ 0 -11.9552 Td[(modification,)-525(are)-525(permitted)-525(provided)-525(that)-525(the)-525(following)-525(conditions)]TJ 0 -11.9551 Td[(are)-525(met:)]TJ 10.4607 -11.9552 Td[(1.)-525(Redistributions)-525(of)-525(source)-525(code)-525(must)-525(retain)-525(the)-525(above)-525(copyright)]TJ 15.691 -11.9552 Td[(notice,)-525(this)-525(list)-525(of)-525(conditions)-525(and)-525(the)-525(following)-525(disclaimer.)]TJ -15.691 -11.9551 Td[(2.)-525(Redistributions)-525(in)-525(binary)-525(form)-525(must)-525(reproduce)-525(the)-525(above)-525(copyright)]TJ 15.691 -11.9552 Td[(notice,)-525(this)-525(list)-525(of)-525(conditions,)-525(and)-525(the)-525(following)-525(disclaimer)-525(in)-525(the)]TJ 0 -11.9552 Td[(documentation)-525(and/or)-525(other)-525(materials)-525(provided)-525(with)-525(the)-525(distribution.)]TJ -15.691 -11.9551 Td[(3.)-525(The)-525(name)-525(of)-525(the)-525(MLD2P4)-525(group)-525(or)-525(the)-525(names)-525(of)-525(its)-525(contributors)-525(may)]TJ 15.691 -11.9552 Td[(not)-525(be)-525(used)-525(to)-525(endorse)-525(or)-525(promote)-525(products)-525(derived)-525(from)-525(this)]TJ 0 -11.9552 Td[(software)-525(without)-525(specific)-525(written)-525(permission.)]TJ -26.1517 -23.9103 Td[(THIS)-525(SOFTWARE)-525(IS)-525(PROVIDED)-525(BY)-525(THE)-525(COPYRIGHT)-525(HOLDERS)-525(AND)-525(CONTRIBUTORS)]TJ 0 -11.9552 Td[(``AS)-525(IS'')-525(AND)-525(ANY)-525(EXPRESS)-525(OR)-525(IMPLIED)-525(WARRANTIES,)-525(INCLUDING,)-525(BUT)-525(NOT)-525(LIMITED)]TJ 0 -11.9551 Td[(TO,)-525(THE)-525(IMPLIED)-525(WARRANTIES)-525(OF)-525(MERCHANTABILITY)-525(AND)-525(FITNESS)-525(FOR)-525(A)-525(PARTICULAR)]TJ 0 -11.9552 Td[(PURPOSE)-525(ARE)-525(DISCLAIMED.)-525(IN)-525(NO)-525(EVENT)-525(SHALL)-525(THE)-525(MLD2P4)-525(GROUP)-525(OR)-525(ITS)-525(CONTRIBUTORS)]TJ 0 -11.9552 Td[(BE)-525(LIABLE)-525(FOR)-525(ANY)-525(DIRECT,)-525(INDIRECT,)-525(INCIDENTAL,)-525(SPECIAL,)-525(EXEMPLARY,)-525(OR)]TJ 0 -11.9551 Td[(CONSEQUENTIAL)-525(DAMAGES)-525(\050INCLUDING,)-525(BUT)-525(NOT)-525(LIMITED)-525(TO,)-525(PROCUREMENT)-525(OF)]TJ 0 -11.9552 Td[(SUBSTITUTE)-525(GOODS)-525(OR)-525(SERVICES;)-525(LOSS)-525(OF)-525(USE,)-525(DATA,)-525(OR)-525(PROFITS;)-525(OR)-525(BUSINESS)]TJ 0 -11.9552 Td[(INTERRUPTION\051)-525(HOWEVER)-525(CAUSED)-525(AND)-525(ON)-525(ANY)-525(THEORY)-525(OF)-525(LIABILITY,)-525(WHETHER)-525(IN)]TJ 0 -11.9551 Td[(CONTRACT,)-525(STRICT)-525(LIABILITY,)-525(OR)-525(TORT)-525(\050INCLUDING)-525(NEGLIGENCE)-525(OR)-525(OTHERWISE\051)]TJ 0 -11.9552 Td[(ARISING)-525(IN)-525(ANY)-525(WAY)-525(OUT)-525(OF)-525(THE)-525(USE)-525(OF)-525(THIS)-525(SOFTWARE,)-525(EVEN)-525(IF)-525(ADVISED)-525(OF)-525(THE)]TJ 0 -11.9552 Td[(POSSIBILITY)-525(OF)-525(SUCH)-525(DAMAGE.)]TJ -ET -1 0 0 1 86.3998 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -510 0 obj << -/Type /Page -/Contents 511 0 R -/Resources 509 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 508 0 R ->> endobj -512 0 obj << -/D [510 0 R /XYZ 86.3998 740.0018 null] ->> endobj -98 0 obj << -/D [510 0 R /XYZ 86.3998 715.0952 null] ->> endobj -509 0 obj << -/Font << /F15 131 0 R /F43 134 0 R /F19 113 0 R /F46 219 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -515 0 obj << -/Length 9878 ->> -stream -1 0 0 1 93.6002 740.0018 cm -0 g 0 G -1 0 0 1 -93.6002 -740.0018 cm -BT -/F43 10.9091 Tf 93.6002 740.0018 Td[(Ref)1(erenc)-1(e)1(s)]TJ/F15 10.9091 Tf 401.542 0 Td[(33)]TJ -ET -1 0 0 1 506.0513 740.0018 cm -0 g 0 G -1 0 0 1 -506.0513 -740.0018 cm -BT -/F19 14.3462 Tf 93.6002 704.1363 Td[(Refer)-1(ence)-1(s)]TJ -ET -1 0 0 1 93.6002 679.7841 cm -0 g 0 G -1 0 0 1 -93.6002 -679.7841 cm -BT -/F15 10.9091 Tf 99.0548 679.7841 Td[([1])]TJ -ET -1 0 0 1 110.5699 679.7841 cm -0 g 0 G -1 0 0 1 -110.5699 -679.7841 cm -BT -/F15 10.9091 Tf 116.0245 679.7841 Td[(M.)-271(B)-1(r)1(e)-1(zina,)-284(P)84(.)-272(V)84(an)28(\024)472(ek,)]TJ/F20 10.9091 Tf 106.4092 0 Td[(A)-302(Bl)1(ack-Box)-301(Iter)52(a)-1(ti)1(ve)-302(Solver)-301(Base)52(d)-302(on)-302(a)-301(Two-L)51(evel)-301(Schw)-1(ar)1(z)]TJ -106.4092 -13.5492 Td[(Metho)51(d)]TJ/F15 10.9091 Tf 34.5937 0 Td[(,)-333(Com)-1(p)1(uti)1(ng,)-333(63,)-333(1999,)-333(233{263.)]TJ -ET -1 0 0 1 93.6002 645.0456 cm -0 g 0 G -1 0 0 1 -93.6002 -645.0456 cm -BT -/F15 10.9091 Tf 99.0548 645.0456 Td[([2])]TJ -ET -1 0 0 1 110.5699 645.0456 cm -0 g 0 G -1 0 0 1 -110.5699 -645.0456 cm -BT -/F15 10.9091 Tf 116.0245 645.0456 Td[(A.)-306(Buttar)1(i,)-311(P)83(.)-306(D')1(Am)27(b)1(ra,)-312(D)1(.)-306(di)-306(S)1(e)-1(ra\014)1(no,)-311(S.)-306(F)1(ilip)1(p)-28(on)1(e)-1(,)]TJ/F20 10.9091 Tf 255.0876 0 Td[(Exten)-1(di)1(n)-1(g)-332(P)-1(SBLAS)-333(t)-1(o)-333(B)1(uil)1(d)]TJ -255.0876 -13.5492 Td[(Par)51(al)-51(l)1(el)-472(S)-1(chwarz)-472(P)-1(r)52(e)51(c)51(onditioners)]TJ/F15 10.9091 Tf 159.2054 0 Td[(,)-489(in)-457(,)-489(J.)-458(Dongar)1(ra,)-489(K.)-458(M)1(adse)-1(n)1(,)-489(J.)-458(W)84(as)-1(n)1(ie)-1(wski,)]TJ -159.2054 -13.5492 Td[(editor)1(s)-1(,)-318(Pro)-27(c)-1(ee)-1(d)1(ings)-315(of)-315(P)84(ARA)-315(04)-315(W)83(or)1(ks)-1(h)1(op)-315(on)-314(State)-315(of)-315(th)1(e)-316(Ar)1(t)-315(in)-315(S)1(c)-1(ien)28(ti\014)1(c)-316(Com-)]TJ 0 -13.5492 Td[(pu)1(tin)1(g,)-333(Le)-1(ctur)1(e)-334(Note)-1(s)-333(in)-333(Com)-1(p)1(uter)-333(Science)-1(,)-333(S)1(pri)1(nger,)-333(2005,)-333(593{602.)]TJ -ET -1 0 0 1 93.6002 583.2087 cm -0 g 0 G -1 0 0 1 -93.6002 -583.2087 cm -BT -/F15 10.9091 Tf 99.0548 583.2087 Td[([3])]TJ -ET -1 0 0 1 110.5699 583.2087 cm -0 g 0 G -1 0 0 1 -110.5699 -583.2087 cm -BT -/F15 10.9091 Tf 116.0245 583.2087 Td[(A.)-380(Buttar)1(i,)-392(P)84(.)-380(D')1(Am)27(br)1(a,)-392(D.)-380(d)1(i)-380(Sera\014)1(no,)-392(S)1(.)-380(Fil)1(ipp)-27(one,)]TJ/F20 10.9091 Tf 262.6214 0 Td[(2LE)-1(V-D2P4:)-546(a)-401(p)51(ackage)-401(of)]TJ -262.6214 -13.5492 Td[(high-p)51(er)1(formanc)51(e)-423(p)-1(r)52(e)51(c)51(onditioners)-423(for)-423(scienti\014c)-424(and)-424(engine)51(eri)1(n)-1(g)-423(ap)-1(pl)1(ic)51(ations)]TJ/F15 10.9091 Tf 364.5046 0 Td[(,)-423(Ap)1(-)]TJ -364.5046 -13.5492 Td[(pl)1(ic)-1(ab)1(le)-462(Algebr)1(a)-462(in)-461(En)1(gin)1(e)-1(erin)1(g,)-494(Comm)27(un)1(ications)-462(an)1(d)-461(C)-1(omp)1(utin)1(g,)-494(18,)-493(3,)-494(2007,)]TJ 0 -13.5492 Td[(223{239.)]TJ -ET -1 0 0 1 93.6002 521.3718 cm -0 g 0 G -1 0 0 1 -93.6002 -521.3718 cm -BT -/F15 10.9091 Tf 99.0548 521.3718 Td[([4])]TJ -ET -1 0 0 1 110.5699 521.3718 cm -0 g 0 G -1 0 0 1 -110.5699 -521.3718 cm -BT -/F15 10.9091 Tf 116.0245 521.3718 Td[(P)84(.)-367(D)1('Am)27(b)1(ra,)-375(S)1(.)-367(F)1(ilip)1(p)-28(on)1(e)-1(,)-374(D.)-367(d)1(i)-367(S)1(e)-1(r)1(a\014n)1(o,)]TJ/F20 10.9091 Tf 203.7832 0 Td[(On)-388(th)-1(e)-388(Development)-388(of)-388(P)-1(SBLAS)-1(-)1(b)51(ase)51(d)]TJ -203.7832 -13.5492 Td[(Par)51(al)-51(l)1(el)-380(T)1(w)-1(o-l)1(evel)-379(S)-1(chwarz)-380(Pr)52(e)51(c)51(on)-1(di)1(t)-1(i)1(on)-1(er)1(s)]TJ/F15 10.9091 Tf 206.4885 0 Td[(,)-363(App)1(lied)-357(Numerical)-357(Math)1(e)-1(matics)-1(,)-363(E)1(l-)]TJ -206.4885 -13.5492 Td[(se)-1(vi)1(e)-1(r)-333(S)1(c)-1(ience)-1(,)-333(57,)-333(11-12,)-333(2007,)-333(1181-)-1(1196.)]TJ -ET -1 0 0 1 93.6002 473.0841 cm -0 g 0 G -1 0 0 1 -93.6002 -473.0841 cm -BT -/F15 10.9091 Tf 99.0548 473.0841 Td[([5])]TJ -ET -1 0 0 1 110.5699 473.0841 cm -0 g 0 G -1 0 0 1 -110.5699 -473.0841 cm -BT -/F15 10.9091 Tf 116.0245 473.0841 Td[(X.)-410(C.)-410(Cai,)-429(M.)-410(Sar)1(kis,)]TJ/F20 10.9091 Tf 109.2505 0 Td[(A)-429(R)51(estricte)51(d)-428(A)51(d)-1(di)1(t)-1(i)1(ve)-429(Schw)-1(ar)1(z)-429(Pr)51(e)52(c)51(on)-1(di)1(t)-1(i)1(on)-1(er)-428(for)-428(G)1(en)-1(er)52(al)]TJ -109.2505 -13.5492 Td[(Sp)51(arse)-378(L)-1(i)1(ne)51(ar)-379(Sy)1(stems)]TJ/F15 10.9091 Tf 107.9356 0 Td[(,)-361(SIAM)-355(Jour)1(nal)-356(on)-355(Scien)28(ti\014)1(c)-357(Compu)1(tin)1(g,)-362(21,)-361(2,)-361(1999,)-361(792{)]TJ -107.9356 -13.5492 Td[(797.)]TJ -ET -1 0 0 1 93.6002 424.7964 cm -0 g 0 G -1 0 0 1 -93.6002 -424.7964 cm -BT -/F15 10.9091 Tf 99.0548 424.7964 Td[([6])]TJ -ET -1 0 0 1 110.5699 424.7964 cm -0 g 0 G -1 0 0 1 -110.5699 -424.7964 cm -BT -/F15 10.9091 Tf 116.0245 424.7964 Td[(X.)-234(C.)-234(Cai,)-254(O)1(.)-234(B.)-234(Wid)1(lun)1(d,)]TJ/F20 10.9091 Tf 124.0849 0 Td[(Domain)-266(De)51(c)51(omp)51(ositi)1(o)-1(n)-266(A)25(lgor)1(ithms)-266(for)-266(Inde\014n)-1(i)1(te)-267(El)-51(l)1(iptic)]TJ -124.0849 -13.5492 Td[(Pr)51(oblem)1(s)]TJ/F15 10.9091 Tf 43.2239 0 Td[(,)-292(SIAM)-282(Jou)1(rnal)-282(on)-282(S)1(c)-1(i)1(e)-1(n)28(ti)1(\014c)-283(an)1(d)-282(Stati)1(s)-1(ti)1(c)-1(al)-282(Com)-1(p)1(uti)1(ng,)-292(13,)-293(1,)-292(1992,)-292(243{)]TJ -43.2239 -13.5492 Td[(258.)]TJ -ET -1 0 0 1 93.6002 376.5086 cm -0 g 0 G -1 0 0 1 -93.6002 -376.5086 cm -BT -/F15 10.9091 Tf 99.0548 376.5086 Td[([7])]TJ -ET -1 0 0 1 110.5699 376.5086 cm -0 g 0 G -1 0 0 1 -110.5699 -376.5086 cm -BT -/F15 10.9091 Tf 116.0245 376.5086 Td[(T.)-316(Ch)1(an)-316(an)1(d)-315(T)-1(.)-315(Math)1(e)-1(w,)]TJ/F20 10.9091 Tf 123.6183 0 Td[(Domain)-341(De)51(c)51(omp)51(osition)-341(A)25(lgor)1(ithms)]TJ/F15 10.9091 Tf 165.71 0 Td[(,)-319(in)-315(A.)-315(Is)-1(erles)-1(,)-319(edi)1(tor,)]TJ -289.3283 -13.5492 Td[(Acta)-334(Nu)1(m)-1(eri)1(c)-1(a)-333(1994,)-333(61{143.)-333(C)-1(am)28(br)1(idge)-334(Un)1(iv)28(ersit)28(y)-333(Pres)-1(s.)]TJ -ET -1 0 0 1 93.6002 341.7701 cm -0 g 0 G -1 0 0 1 -93.6002 -341.7701 cm -BT -/F15 10.9091 Tf 99.0548 341.7701 Td[([8])]TJ -ET -1 0 0 1 110.5699 341.7701 cm -0 g 0 G -1 0 0 1 -110.5699 -341.7701 cm -BT -/F15 10.9091 Tf 116.0245 341.7701 Td[(T.A.)-444(Da)28(vis,)]TJ/F20 10.9091 Tf 61.721 0 Td[(A)25(l)1(gorithm)-460(832:)-664(UMF)1(P)76(A)25(C)1(K)-460(-)-459(a)-1(n)-459(U)-1(nsy)1(mmetric-)1(p)51(at)-1(tern)-460(M)1(ul)1(t)-1(i)1(fr)52(o)-1(ntal)]TJ -61.721 -13.5492 Td[(Metho)51(d)-307(w)-1(i)1(t)-1(h)-307(a)-307(Col)1(umn)-307(P)-1(r)52(e-or)51(der)1(ing)-307(S)-1(tr)52(a)-1(te)51(gy)]TJ/F15 10.9091 Tf 211.2457 0 Td[(,)-289(A)28(C)-1(M)-278(T)84(ransac)-1(t)1(ions)-279(on)-277(Mathematical)]TJ -211.2457 -13.5492 Td[(Sof)1(t)28(w)27(ar)1(e)-1(,)-333(30,)-333(2004,)-333(196{199.)-333(\050See)-334(also)]TJ/F46 10.9091 Tf 184.0304 0 Td[(http://www.cise.ufl.edu/)-525(davis/)]TJ/F15 10.9091 Tf 177.5436 0 Td[(\051)]TJ -ET -1 0 0 1 93.6002 293.4824 cm -0 g 0 G -1 0 0 1 -93.6002 -293.4824 cm -BT -/F15 10.9091 Tf 99.0548 293.4824 Td[([9])]TJ -ET -1 0 0 1 110.5699 293.4824 cm -0 g 0 G -1 0 0 1 -110.5699 -293.4824 cm -BT -/F15 10.9091 Tf 116.0245 293.4824 Td[(J.W)1(.)-423(De)-1(mme)-1(l,)-445(S.)1(C)-1(.)-423(E)1(ise)-1(n)1(s)-1(tat,)-445(J.R.)-423(G)1(ilb)-27(e)-1(r)1(t,)-446(X.)1(S.)-423(Li)-423(an)1(d)-423(J.W.)1(H.)-423(Liu,)-445(A)-423(s)-1(u)1(p)-27(e)-1(rn)1(-)]TJ 0 -13.5492 Td[(o)-28(d)1(al)-398(app)1(roac)27(h)-398(t)1(o)-399(spar)1(s)-1(e)-399(p)1(arti)1(al)-398(piv)28(oti)1(ng,)-414(SIAM)-398(Jou)1(rn)1(al)-398(on)-398(Matri)1(x)-398(Analy)1(s)-1(is)-398(and)]TJ 0 -13.5492 Td[(App)1(lication)1(s)-1(,)-333(20,)-333(3,)-333(1999,)-333(720{755.)]TJ -ET -1 0 0 1 93.6002 245.1947 cm -0 g 0 G -1 0 0 1 -93.6002 -245.1947 cm -BT -/F15 10.9091 Tf 93.6002 245.1947 Td[([10])]TJ -ET -1 0 0 1 110.5699 245.1947 cm -0 g 0 G -1 0 0 1 -110.5699 -245.1947 cm -BT -/F15 10.9091 Tf 116.0245 245.1947 Td[(J.)-443(J.)-443(Dongar)1(ra,)-471(J)1(.)-444(Du)-443(Cr)1(oz)-1(,)-471(I.)-443(S)1(.)-444(D)1(u\013,)-471(S.)-443(Hammarlin)1(g,)]TJ/F20 10.9091 Tf 279.0753 0 Td[(A)-459(set)-459(of)-459(L)51(evel)-459(3)-459(Basic)]TJ -279.0753 -13.5492 Td[(Line)51(ar)-459(A)25(lgebr)52(a)-460(Subpr)51(o)52(gr)51(ams)]TJ/F15 10.9091 Tf 135.9361 0 Td[(,)-471(A)27(CM)-444(T)84(ransac)-1(t)1(ions)-444(on)-444(M)1(athem)-1(ati)1(c)-1(al)-444(S)1(oft)28(w)28(are,)-472(16,)]TJ -135.9361 -13.5492 Td[(1990,)-333(1{17.)]TJ -ET -1 0 0 1 93.6002 196.907 cm -0 g 0 G -1 0 0 1 -93.6002 -196.907 cm -BT -/F15 10.9091 Tf 93.6002 196.907 Td[([11])]TJ -ET -1 0 0 1 110.5699 196.907 cm -0 g 0 G -1 0 0 1 -110.5699 -196.907 cm -BT -/F15 10.9091 Tf 116.0245 196.907 Td[(J.)-450(J.)-450(D)1(ongarr)1(a,)-479(J.)-450(Du)-450(Croz,)-479(S.)-450(Hammarlin)1(g,)-479(R.)-450(J.)-450(Han)1(s)-1(on)1(,)]TJ/F20 10.9091 Tf 298.3479 0 Td[(A)25(n)-465(exten)-1(de)51(d)-465(set)-465(of)]TJ -298.3479 -13.5492 Td[(F)26(OR)76(T)1(R)-1(AN)-356(Basi)1(c)-356(Li)1(n)-1(e)51(ar)-355(A)26(lgebr)51(a)-355(Subpr)51(o)51(gr)52(ams)]TJ/F15 10.9091 Tf 221.8021 0 Td[(,)-331(A)28(CM)-331(T)83(r)1(ansac)-1(tion)1(s)-331(on)-330(Mathemat-)]TJ -221.8021 -13.5492 Td[(ical)-333(Sof)1(t)27(w)28(are,)-333(14,)-333(1988,)-333(1{17.)]TJ -ET -1 0 0 1 93.6002 148.6193 cm -0 g 0 G -1 0 0 1 -93.6002 -148.6193 cm -BT -/F15 10.9091 Tf 93.6002 148.6193 Td[([12])]TJ -ET -1 0 0 1 110.5699 148.6193 cm -0 g 0 G -1 0 0 1 -110.5699 -148.6193 cm -BT -/F15 10.9091 Tf 116.0245 148.6193 Td[(J.)-379(J.)-379(Dongarr)1(a)-380(an)1(d)-379(R.)-380(C.)-379(Whal)1(e)-1(y)84(,)]TJ/F20 10.9091 Tf 169.1689 0 Td[(A)-401(User)1('s)-400(Gui)1(de)-401(to)-400(the)-401(BLA)25(C)1(S)-401(v.)-400(1.)1(1)]TJ/F15 10.9091 Tf 179.4704 0 Td[(,)-391(Lap)1(ac)27(k)]TJ -348.6393 -13.5492 Td[(W)84(orkin)1(g)-315(Note)-315(94,)-318(T)83(ec)27(h.)-314(Re)-1(p)1(.)-315(UT-CS-95-)-1(281,)-318(Un)1(iv)28(e)-1(r)1(s)-1(it)28(y)-314(of)-314(T)83(e)-1(n)1(nes)-1(se)-1(e,)-318(Marc)28(h)-314(1995)]TJ 0 -13.5492 Td[(\050u)1(p)-28(d)1(ate)-1(d)-333(M)1(a)28(y)-334(1997\051)1(.)]TJ -ET -1 0 0 1 93.6002 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -514 0 obj << -/Type /Page -/Contents 515 0 R -/Resources 513 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 508 0 R ->> endobj -516 0 obj << -/D [514 0 R /XYZ 93.6002 740.0018 null] ->> endobj -102 0 obj << -/D [514 0 R /XYZ 93.6002 693.3333 null] ->> endobj -197 0 obj << -/D [514 0 R /XYZ 93.6002 697.1534 null] ->> endobj -309 0 obj << -/D [514 0 R /XYZ 93.6002 660.2937 null] ->> endobj -310 0 obj << -/D [514 0 R /XYZ 93.6002 598.4567 null] ->> endobj -311 0 obj << -/D [514 0 R /XYZ 93.6002 538.741 null] ->> endobj -322 0 obj << -/D [514 0 R /XYZ 93.6002 488.3321 null] ->> endobj -273 0 obj << -/D [514 0 R /XYZ 93.6002 442.1656 null] ->> endobj -274 0 obj << -/D [514 0 R /XYZ 93.6002 393.8779 null] ->> endobj -246 0 obj << -/D [514 0 R /XYZ 93.6002 357.0182 null] ->> endobj -247 0 obj << -/D [514 0 R /XYZ 93.6002 308.1244 null] ->> endobj -233 0 obj << -/D [514 0 R /XYZ 93.6002 260.4427 null] ->> endobj -234 0 obj << -/D [514 0 R /XYZ 93.6002 212.155 null] ->> endobj -237 0 obj << -/D [514 0 R /XYZ 93.6002 163.8673 null] ->> endobj -513 0 obj << -/Font << /F43 134 0 R /F15 131 0 R /F19 113 0 R /F20 181 0 R /F46 219 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -519 0 obj << -/Length 9047 ->> -stream -1 0 0 1 86.3998 740.0018 cm -0 g 0 G -1 0 0 1 -86.3998 -740.0018 cm -BT -/F15 10.9091 Tf 86.3998 740.0018 Td[(34)]TJ/F43 10.9091 Tf 203.2648 0 Td[(MLD2P4)-377(User)67(')-1(s)-377(a)-1(nd)-378(Refe)1(r)-1(e)1(n)-1(ce)-377(G)-1(uid)-1(e)]TJ -ET -1 0 0 1 498.8509 740.0018 cm -0 g 0 G -1 0 0 1 -412.4511 -35.8655 cm -0 g 0 G -1 0 0 1 -86.3998 -704.1363 cm -BT -/F15 10.9091 Tf 86.3998 704.1363 Td[([13])]TJ -ET -1 0 0 1 103.3695 704.1363 cm -0 g 0 G -1 0 0 1 -103.3695 -704.1363 cm -BT -/F15 10.9091 Tf 108.824 704.1363 Td[(E.)-392(E)1(fstathi)1(ou,)-407(J.)-392(G.)-392(Gan)1(der,)]TJ/F20 10.9091 Tf 143.3316 0 Td[(Why)-412(R)51(estri)1(ct)-1(e)51(d)-412(A)51(dditive)-412(Schw)-1(ar)1(z)-412(Conver)51(ges)-412(F)77(aster)]TJ -143.3316 -13.5492 Td[(than)-358(A)50(dditi)1(ve)-358(Schw)-1(arz)]TJ/F15 10.9091 Tf 106.3811 0 Td[(,)-333(BI)-1(T)-333(Numerical)-333(Mathematics)-1(,)-333(43,)-333(2003,)-333(945{959.)]TJ -ET -1 0 0 1 86.3998 668.0716 cm -0 g 0 G -1 0 0 1 -86.3998 -668.0716 cm -BT -/F15 10.9091 Tf 86.3998 668.0716 Td[([14])]TJ -ET -1 0 0 1 103.3695 668.0716 cm -0 g 0 G -1 0 0 1 -103.3695 -668.0716 cm -BT -/F15 10.9091 Tf 108.824 668.0716 Td[(S.)-1203(Fi)1(lipp)-27(on)1(e)-1(,)-1421(A.)-1203(Buttar)1(i,)]TJ/F20 10.9091 Tf 163.6578 0 Td[(PS)-1(B)1(L)-1(AS-2.3)-1158(U)-1(s)1(er's)-1158(Gu)1(ide.)-1158(A)-1158(R)51(efer)52(en)-1(c)51(e)]TJ -163.6578 -13.5492 Td[(Gu)1(ide)-1084(for)-1083(t)-1(he)-1084(Par)51(al)-50(lel)-1083(S)-1(p)51(ar)1(se)-1084(BLA)-1(S)-1083(Libr)51(ar)1(y)]TJ/F15 10.9091 Tf 257.7373 0 Td[(,)-1320(2008,)-1320(a)28(v)56(ailab)1(le)-1123(fr)1(om)]TJ/F46 10.9091 Tf -257.7373 -13.5492 Td[(http://www.ce.uniroma2.it/psblas/)]TJ/F15 10.9091 Tf 188.998 0 Td[(.)]TJ -ET -1 0 0 1 86.3998 618.4576 cm -0 g 0 G -1 0 0 1 -86.3998 -618.4576 cm -BT -/F15 10.9091 Tf 86.3998 618.4576 Td[([15])]TJ -ET -1 0 0 1 103.3695 618.4576 cm -0 g 0 G -1 0 0 1 -103.3695 -618.4576 cm -BT -/F15 10.9091 Tf 108.824 618.4576 Td[(S.)-311(Fil)1(ipp)-27(one,)-316(M.)-311(Cola)-56(j)1(ann)1(i,)]TJ/F20 10.9091 Tf 133.243 0 Td[(PS)-1(B)1(L)-1(AS:)-338(A)-338(Libr)52(a)-1(r)1(y)-338(f)1(or)-338(Par)51(al)-51(l)1(el)-338(Line)51(ar)-337(A)25(lgebr)52(a)-338(Com-)]TJ -133.243 -13.5492 Td[(putation)-333(on)-333(Sp)51(arse)-332(Matric)52(es)]TJ/F15 10.9091 Tf 133.5747 0 Td[(,)-311(A)28(C)-1(M)-305(T)83(ran)1(s)-1(action)1(s)-307(on)-305(Mathematical)-306(Sof)1(t)28(w)27(ar)1(e)-1(,)-311(26,)-311(4,)]TJ -133.5747 -13.5492 Td[(2000,)-333(527{550.)]TJ -ET -1 0 0 1 86.3998 568.8436 cm -0 g 0 G -1 0 0 1 -86.3998 -568.8436 cm -BT -/F15 10.9091 Tf 86.3998 568.8436 Td[([16])]TJ -ET -1 0 0 1 103.3695 568.8436 cm -0 g 0 G -1 0 0 1 -103.3695 -568.8436 cm -BT -/F15 10.9091 Tf 108.824 568.8436 Td[(W.)-413(G)1(ropp)1(,)-433(S)1(.)-413(Huss)-1(-Lederman,)-433(A.)-412(Lums)-1(d)1(aine,)-433(E)1(.)-413(Lusk,)-433(B.)-413(Nit)1(z)-1(b)-27(e)-1(r)1(g,)-433(W.)-413(S)1(aph)1(ir,)]TJ 0 -13.5492 Td[(M.)-348(Sni)1(r,)]TJ/F20 10.9091 Tf 43.1417 0 Td[(MPI:)-371(The)-372(Compl)1(et)-1(e)-372(R)51(efer)52(enc)51(e.)-372(V)76(ol)1(ume)-372(2)-372(-)-372(The)-372(MPI-)1(2)-373(Extensions)]TJ/F15 10.9091 Tf 318.1869 0 Td[(,)-353(M)1(IT)]TJ -361.3286 -13.5492 Td[(Pr)1(e)-1(ss)-1(,)-333(1998.)]TJ -ET -1 0 0 1 86.3998 519.2297 cm -0 g 0 G -1 0 0 1 -86.3998 -519.2297 cm -BT -/F15 10.9091 Tf 86.3998 519.2297 Td[([17])]TJ -ET -1 0 0 1 103.3695 519.2297 cm -0 g 0 G -1 0 0 1 -103.3695 -519.2297 cm -BT -/F15 10.9091 Tf 108.824 519.2297 Td[(C.)-347(L.)-347(La)28(ws)-1(on)1(,)-350(R)-1(.)-346(J.)-347(Hanson,)-350(D.)-347(K)1(incaid)1(,)-351(F)1(.)-347(T.)-347(Krogh)1(,)]TJ/F20 10.9091 Tf 264.6704 0 Td[(Basic)-370(Line)51(ar)-370(A)25(l)1(gebr)51(a)-370(S)-1(u)1(b-)]TJ -264.6704 -13.5492 Td[(pr)51(o)51(gr)52(ams)-368(for)-367(F)25(O)1(R)76(TRAN)-369(u)1(sage)]TJ/F15 10.9091 Tf 148.4536 0 Td[(,)-347(A)28(CM)-344(T)83(ransactions)-345(on)-344(M)1(athematic)-1(al)-344(S)1(oft)28(w)28(are,)-347(5,)]TJ -148.4536 -13.5492 Td[(1979,)-333(308{323.)]TJ -ET -1 0 0 1 86.3998 469.6157 cm -0 g 0 G -1 0 0 1 -86.3998 -469.6157 cm -BT -/F15 10.9091 Tf 86.3998 469.6157 Td[([18])]TJ -ET -1 0 0 1 103.3695 469.6157 cm -0 g 0 G -1 0 0 1 -103.3695 -469.6157 cm -BT -/F15 10.9091 Tf 108.824 469.6157 Td[(X.)-408(S)1(.)-408(Li,)-426(J.)-408(W.)-408(Demm)-1(el,)]TJ/F20 10.9091 Tf 125.4472 0 Td[(Sup)51(erLU)]TJ -ET -1 0 0 1 276.5157 469.6157 cm -q -[]0 d -0 J -0.3985 w -0 0.1992 m -3.3455 0.1992 l -S -Q -1 0 0 1 -276.5157 -469.6157 cm -BT -/F20 10.9091 Tf 279.8612 469.6157 Td[(DIST)1(:)-426(A)-427(Sc)51(alable)-426(Distri)1(bute)51(d-mem)1(ory)-426(Sp)51(a)-1(r)1(se)]TJ -171.0372 -13.5492 Td[(Dir)52(e)51(ct)-343(Solver)-342(f)1(o)-1(r)-342(Unsymm)1(etric)-342(L)-1(i)1(ne)51(ar)-343(Sy)1(stems)]TJ/F15 10.9091 Tf 222.3826 0 Td[(,)-320(A)28(CM)-317(T)83(r)1(ansac)-1(ti)1(ons)-317(on)-316(Math)1(e)-1(mat-)]TJ -222.3825 -13.5492 Td[(ical)-333(Sof)1(t)27(w)28(are,)-333(29,)-333(2,)-333(2003,)-334(110{140.)]TJ -ET -1 0 0 1 86.3998 420.0017 cm -0 g 0 G -1 0 0 1 -86.3998 -420.0017 cm -BT -/F15 10.9091 Tf 86.3998 420.0017 Td[([19])]TJ -ET -1 0 0 1 103.3695 420.0017 cm -0 g 0 G -1 0 0 1 -103.3695 -420.0017 cm -BT -/F15 10.9091 Tf 108.824 420.0017 Td[(Y.)-333(Saad)1(,)]TJ/F20 10.9091 Tf 44.5455 0 Td[(Iter)52(at)-1(i)1(ve)-358(metho)51(ds)-358(for)-357(sp)51(arse)-357(line)51(ar)-357(systems)]TJ/F15 10.9091 Tf 202.9804 0 Td[(,)-333(2nd)-333(edi)1(tion,)-333(S)1(IAM,)-333(2003)]TJ -ET -1 0 0 1 86.3998 397.4862 cm -0 g 0 G -1 0 0 1 -86.3998 -397.4862 cm -BT -/F15 10.9091 Tf 86.3998 397.4862 Td[([20])]TJ -ET -1 0 0 1 103.3695 397.4862 cm -0 g 0 G -1 0 0 1 -103.3695 -397.4862 cm -BT -/F15 10.9091 Tf 108.824 397.4862 Td[(B.)-506(S)1(mith,)-548(P)84(.)-505(B)-1(j)1(orstad,)-548(W.)-505(Gr)1(opp,)]TJ/F20 10.9091 Tf 177.8706 0 Td[(Domain)-516(De)51(c)51(omp)51(osi)1(t)-1(i)1(on:)-777(Par)51(al)-51(l)1(el)-516(M)1(ultil)1(evel)]TJ -177.8706 -13.5492 Td[(Metho)51(ds)-432(for)-432(El)-51(l)1(iptic)-432(P)-1(ar)1(t)-1(i)1(al)-432(Di\013er)51(ential)-432(Equations)]TJ/F15 10.9091 Tf 244.3085 0 Td[(,)-434(C)-1(am)28(br)1(idge)-414(Univ)28(ersit)28(y)-414(Pr)1(e)-1(ss)-1(,)]TJ -244.3085 -13.5492 Td[(1996.)]TJ -ET -1 0 0 1 86.3998 347.8722 cm -0 g 0 G -1 0 0 1 -86.3998 -347.8722 cm -BT -/F15 10.9091 Tf 86.3998 347.8722 Td[([21])]TJ -ET -1 0 0 1 103.3695 347.8722 cm -0 g 0 G -1 0 0 1 -103.3695 -347.8722 cm -BT -/F15 10.9091 Tf 108.824 347.8722 Td[(M.)-317(S)1(nir)1(,)-321(S)1(.)-318(O)1(tto,)-321(S)1(.)-317(Huss)-1(-Le)-1(d)1(e)-1(r)1(m)-1(an)1(,)-321(D.)-317(W)84(alk)28(e)-1(r)1(,)-321(J)1(.)-318(Don)1(garra,)]TJ/F20 10.9091 Tf 295.0793 0 Td[(MPI:)-342(The)-343(Compl)1(et)-1(e)]TJ -295.0793 -13.5492 Td[(R)51(efer)51(enc)51(e.)-357(V)76(ol)1(ume)-358(1)-357(-)-358(The)-357(MPI)-358(C)1(or)51(e)]TJ/F15 10.9091 Tf 179.3563 0 Td[(,)-333(s)-1(econd)-333(editi)1(on,)-333(MIT)-333(Press)-1(,)-333(1998.)]TJ -ET -1 0 0 1 86.3998 311.8074 cm -0 g 0 G -1 0 0 1 -86.3998 -311.8074 cm -BT -/F15 10.9091 Tf 86.3998 311.8074 Td[([22])]TJ -ET -1 0 0 1 103.3695 311.8074 cm -0 g 0 G -1 0 0 1 -103.3695 -311.8074 cm -BT -/F15 10.9091 Tf 108.824 311.8074 Td[(K.)-546(St)-27()527(u)1(b)-28(en,)]TJ/F20 10.9091 Tf 60.6904 0 Td[(A)25(l)1(gebr)51(aic)-554(M)1(ulti)1(grid)-554(\050AMG)1(\051:)-554(an)-554(Intr)51(o)51(ducti)1(o)-1(n)-554(with)-554(A)-1(ppl)1(ic)51(ations)]TJ/F15 10.9091 Tf 310.6701 0 Td[(,)-600(in)]TJ -371.3605 -13.5492 Td[(A.)-493(Sc)28(h)-28()528(ul)1(le)-1(r)1(,)-534(U.)-493(T)83(r)1(otte)-1(n)29(b)-28(erg,)-533(C.)-493(Oos)-1(terlee,)-534(edi)1(tors,)-534(M)1(ulti)1(grid)1(,)-534(Academic)-494(Pr)1(e)-1(ss)-1(,)]TJ 0 -13.5492 Td[(2000.)]TJ -ET -1 0 0 1 86.3998 262.1935 cm -0 g 0 G -1 0 0 1 -86.3998 -262.1935 cm -BT -/F15 10.9091 Tf 86.3998 262.1935 Td[([23])]TJ -ET -1 0 0 1 103.3695 262.1935 cm -0 g 0 G -1 0 0 1 -103.3695 -262.1935 cm -BT -/F15 10.9091 Tf 108.824 262.1935 Td[(R.)-408(S.)-407(T)83(uminar)1(o,)-427(C.)-408(T)83(on)1(g,)]TJ/F20 10.9091 Tf 130.1241 0 Td[(Par)51(al)-51(l)1(el)-426(S)-1(m)1(o)51(o)-1(the)51(d)-426(A)50(ggr)52(e)51(gation)-427(Mu)1(ltigr)1(id:)-597(A)50(ggr)52(e)51(gation)]TJ -130.1241 -13.5492 Td[(Str)51(ate)51(gies)-369(on)-370(Massi)1(vely)-369(Pa)-1(r)52(al)-51(l)1(el)-370(M)1(achines)]TJ/F15 10.9091 Tf 200.3253 0 Td[(,)-349(in)-346(J.)-345(Donn)1(e)-1(ll)1(e)-1(y)84(,)-349(e)-1(d)1(itor,)-349(P)1(ro)-28(ce)-1(edin)1(gs)-347(of)]TJ -200.3253 -13.5492 Td[(Su)1(p)-27(e)-1(rCompu)1(tin)1(g)-334(2000,)-333(Dall)1(as)-1(,)-333(2000.)]TJ -ET -1 0 0 1 86.3998 212.5795 cm -0 g 0 G -1 0 0 1 -86.3998 -212.5795 cm -BT -/F15 10.9091 Tf 86.3998 212.5795 Td[([24])]TJ -ET -1 0 0 1 103.3695 212.5795 cm -0 g 0 G -1 0 0 1 -103.3695 -212.5795 cm -BT -/F15 10.9091 Tf 108.824 212.5795 Td[(P)84(.)-288(V)84(an)28(\024)472(ek,)-297(J)1(.)-288(M)1(andel)-287(and)-287(M.)-287(B)-1(r)1(e)-1(zin)1(a,)]TJ/F20 10.9091 Tf 178.101 0 Td[(A)25(l)1(gebr)51(aic)-315(Mul)1(tigri)1(d)-316(by)-315(S)-1(m)1(o)51(o)-1(the)51(d)-316(A)51(ggr)52(e)51(gat)-1(i)1(on)]TJ -178.101 -13.5492 Td[(for)-357(Se)51(c)51(on)-1(d)-357(a)-1(nd)-358(F)77(ou)1(rth)-358(Or)52(d)-1(er)-357(El)-51(li)1(pt)-1(i)1(c)-358(Pr)51(oblem)1(s)]TJ/F15 10.9091 Tf 223.3438 0 Td[(,)-333(Com)-1(p)1(uti)1(ng,)-333(56,)-333(1996,)-333(179-)-1(196.)]TJ -ET -1 0 0 1 86.3998 91.633 cm -0 g 0 G -1 0 0 1 412.4511 0 cm -0 g 0 G -endstream -endobj -518 0 obj << -/Type /Page -/Contents 519 0 R -/Resources 517 0 R -/MediaBox [0 0 595.2756 841.8898] -/Parent 508 0 R ->> endobj -520 0 obj << -/D [518 0 R /XYZ 86.3998 740.0018 null] ->> endobj -323 0 obj << -/D [518 0 R /XYZ 86.3998 715.0952 null] ->> endobj -200 0 obj << -/D [518 0 R /XYZ 86.3998 683.9827 null] ->> endobj -199 0 obj << -/D [518 0 R /XYZ 86.3998 634.0657 null] ->> endobj -236 0 obj << -/D [518 0 R /XYZ 86.3998 584.7548 null] ->> endobj -235 0 obj << -/D [518 0 R /XYZ 86.3998 535.1408 null] ->> endobj -248 0 obj << -/D [518 0 R /XYZ 86.3998 485.5269 null] ->> endobj -312 0 obj << -/D [518 0 R /XYZ 86.3998 435.9129 null] ->> endobj -196 0 obj << -/D [518 0 R /XYZ 86.3998 412.7913 null] ->> endobj -201 0 obj << -/D [518 0 R /XYZ 86.3998 365.9046 null] ->> endobj -307 0 obj << -/D [518 0 R /XYZ 86.3998 327.7186 null] ->> endobj -308 0 obj << -/D [518 0 R /XYZ 86.3998 280.2258 null] ->> endobj -198 0 obj << -/D [518 0 R /XYZ 86.3998 228.4907 null] ->> endobj -517 0 obj << -/Font << /F15 131 0 R /F43 134 0 R /F20 181 0 R /F46 219 0 R >> -/ProcSet [ /PDF /Text ] ->> endobj -347 0 obj << -/Length1 745 -/Length2 581 -/Length3 532 -/Length 1858 ->> -stream -%!PS-AdobeFont-1.1: CMSY7 1.0 -%%CreationDate: 1991 Aug 15 07:21:52 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSY7) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.035 def -/isFixedPitch false def -end readonly def -/FontName /LCEDCU+CMSY7 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 0 /minus put -readonly def -/FontBBox{-15 -951 1252 782}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª/ ùÈ­éÙÀX¸~›id}S5žQ!gt¤ê¡âµŽÃkÑJc;•r´NŒ^ô¢¬µŠ ¦X€5¿.ØSyƒŠ– þ+'êIÃqV˜œ…â:¿r㚉#,Ùô#È ždèBZ£¾÷ÞÖ *R’*"7Ù¨ÝyÝçÒQI¿e©ŒŸâ±ÏrZp(IJÿæ8»¦±#†Çó+£PÖ.¢Õ²NæÂÂCÍ;ý ð+[i-{'¾Ç)ïÜù/•ÝëPphÞ Qãì¸äCæ¾ -A¡øÈœ;Ák5,4C«of^¬^ Ä"ìüXáWeBL‘œ'>¢@¾{.•·‰Ñ'b[¼·>PPë.±Èåó­D§W­,Å=‘{ý #VX†î6ÐÃÝnz¢ïœÄÇñTž`šqÃÂæN&=`¥~Ÿ+GãH —Š¯c†Šê%Ú=TF{vÒð/€—Ò„ÚfwsjÏì «ñj›-$ô{f¶wˆkªxzØeµ÷Žä4ªG·°ñ$JB%ÜÆpý©"&âÆgÂ4B˜ÐW[ßx-–ƒnÊâ)Ç¡~(÷›'?òCE-¨…Š‹ËQeSO9–ËØÙsÛY=`lzü%ži$/neu¶…*­TVyæõBÜ¡ m¢MÉ/¿|ä‹8ySx{+Ë„s®Òߨ39ÓžôÝ:QXE'¬:“c *àÈœ?/úvwC±'káæHÕñ¨0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -endstream -endobj -348 0 obj << -/Type /Font -/Subtype /Type1 -/Encoding 521 0 R -/FirstChar 0 -/LastChar 0 -/Widths 522 0 R -/BaseFont /LCEDCU+CMSY7 -/FontDescriptor 346 0 R ->> endobj -346 0 obj << -/Ascent 750 -/CapHeight 683 -/Descent -194 -/FontName /LCEDCU+CMSY7 -/ItalicAngle -14.035 -/StemV 93 -/XHeight 431 -/FontBBox [-15 -951 1252 782] -/Flags 4 -/CharSet (/minus) -/FontFile 347 0 R ->> endobj -522 0 obj -[893 ] -endobj -521 0 obj << -/Type /Encoding -/Differences [ 0 /minus 1/.notdef] ->> endobj -344 0 obj << -/Length1 803 -/Length2 1857 -/Length3 532 -/Length 3192 ->> -stream -%!PS-AdobeFont-1.1: CMMI7 1.100 -%%CreationDate: 1996 Jul 23 07:53:53 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI7) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /DQRFRG+CMMI7 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 84 /T put -dup 101 /e put -dup 108 /l put -dup 110 /n put -dup 118 /v put -readonly def -/FontBBox{0 -250 1171 750}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª)s™§„̾…´™;.ëÞ;Ôr·ÏTeò…ji«–íK­/df5à¶A|Ç{S/…ØÇ )¡šSïcë\^ÈŸÆÂm‰çÙäp·+ïÚ#õßv¾¯Lé17¢íŠ©×Öýó~kÍàÙ ˜d#å– -]Ÿ»L•eVèßËúìGo£oÙ¥È\šõþÙÂÝÒkÜ ™9‹ŸM×v9ß2¤Ö#:œ¯i±QßÓ?À–.¬n>¿¸­%j”zGm >Nj›S]Éñ¾Ñ)Å7uÕÖ‡‡¥Œ“ŸÕÚU±•¹QhÈ4)½-‡‚×p#êz£™É{8YãаGP¸9 ññ¼)Ü"¼­PìÆ£Æ3ГzYèYåZùõgp_P÷C߬CÄçÜ”DÎþC'šý<|”(‰£Ròÿ€l/ø³ëIÕxªXÏüMYz©”í„»è²ntÔŸlõAv·)|Ú*iQ€P3|ºTxë˜LÝ" ®ÙʃÃ?¼ÈAwõ·pŸÆÒ‹:rï÷)ˆÁ6,ç›Nœ{?åˆé‚J¼oÑA剳‘Js¤(0T9†$ø“Õ¶Ã'§î'0ÞÞj—°œ%&Æ4öLŸ„wÍQcK¦HüpöYÉ ÀBÀÖ¶ŒÑß6Ö$ób¸ZXÖZŽmýX>ù§šB# µ9Žëxôµ¨šÒ¥à6IUJ½eG#˜ÿ݆>@P1o(ýß‹UøÖc˜Cо¤"‰ø[ØD‰´.ÇÅ)Ó>çè;@Ly›ŽŒˆ—‡ÍÅÍ—¿ˆ`50/¬—+Rª1›¯&e7ØH¿ê?ž¡Û6Ÿy÷@Vxžó™!+Ô ãÈSkä,ŒÆ×ýÎM8Ú±kp/ ñh(”Ç!:ÿÔŸÃH'5˜…²II,LIlí9°®ª#ozð)”‹ç®bÿúz“¼¡¡&õÚ2eöŠpDQ/‹T‘UÝ^ riFÅQdþ‹'@8¾„—¸ÑNL5‰`ññëNC§‡ø®Amÿ·îô3ÂIÒQûþ™AJ¼Ùqla_YÐ&¢ÆíP„èmj‹Naz!vœ¥×4à°÷%.™ª™Ý§„Çèã\Ö–ŒÝb`Û+#·ð`‹\ܠḄ¦FÒr=„Z -¬ŠšLç2-·Ãàêq; ]˜Æ¼®±n²l›²•,ÅLt4‹žœä–-`_ÛM¾ùÁ–yç檭õÁ -RBéÙŠ€1äjùý¼•GO._í=] Viæ°šlê@¦øÒå%fÀé½…YB1ëq4MèÅkºÛ—¥í$_’ÔêN>÷à‚B0¢}á\äSZh«–?sÈ€¯‚O“ËwJªXmQ¦6ž½²8›XN3A?¶Œ¾Â(Y}ND§$R{óÕ¿‚&è¦ ÝÕ\ËÔìëñ€šù\á‘z½Þº¿ˆmå—±*¶P äk«ð¯-‡ì£°‹›è´BÀF‘ *Íñ♹8ÊcýšlmÎþot‘÷g³J‚(OƒóÑlj^– Øðü~^&¹Y´üç0ìÜTI\žÍ1¬'6ÆØ“Bcx˜3|'ÅÞ]PxªTi\ú[¼`¼ßýß»,·Ï}Ìy*•ãÚ1PAÄ@H³1}c >­¾¦Iä|N¶_ŸDÅåkغãš^ï©~+($ÑïÙ65)øœ¾qAŒahˆÒJƒÒ¾ùU“¸Ð(Á¬qísš3F•ªjÃékXµìÖõ[;Õ8vâ;;ñ¨$=Nž™Ynú… \XÖ=ˆ(iv/…Á·Qg¦“¼_,\ðüç-÷]C 3­ÓˆG;¨öV-¾ˆòÑÚî|yn^ç4ÆÒÏ@Édx¬¬]Ö*Ú~Ð.|8îÿùÌD?,©ÕÀõ㋽ö»5¾©ØçÁÑ`aøû”0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -endstream -endobj -345 0 obj << -/Type /Font -/Subtype /Type1 -/Encoding 523 0 R -/FirstChar 84 -/LastChar 118 -/Widths 524 0 R -/BaseFont /DQRFRG+CMMI7 -/FontDescriptor 343 0 R ->> endobj -343 0 obj << -/Ascent 694 -/CapHeight 683 -/Descent -194 -/FontName /DQRFRG+CMMI7 -/ItalicAngle -14.04 -/StemV 81 -/XHeight 431 -/FontBBox [0 -250 1171 750] -/Flags 4 -/CharSet (/T/e/l/n/v) -/FontFile 344 0 R ->> endobj -524 0 obj -[675 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 542 0 0 0 0 0 0 361 0 706 0 0 0 0 0 0 0 571 ] -endobj -523 0 obj << -/Type /Encoding -/Differences [ 0 /.notdef 84/T 85/.notdef 101/e 102/.notdef 108/l 109/.notdef 110/n 111/.notdef 118/v 119/.notdef] ->> endobj -341 0 obj << -/Length1 752 -/Length2 1167 -/Length3 532 -/Length 2451 ->> -stream -%!PS-AdobeFont-1.1: CMR7 1.0 -%%CreationDate: 1991 Aug 20 16:39:21 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR7) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /XRXBPV+CMR7 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 43 /plus put -dup 49 /one put -readonly def -/FontBBox{-27 -250 1122 750}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª*Bg·N³ÀÓ½ ƒØ‘l¦ÊKq*Þ²Xú«šææwüsŠ¼|QÍFïq˜Õþæv`æšz¹XòšMyåp"÷ƒë»¶Ôôì5OÒÞË©”Y¤ÅðÆë¡P(DTçÜ!Á[v´Á›„67XFšlU‡…²&3!R˜q©ˆ4‡Ýw”’Ýσ~j‡¸+Ûño¼uú£ “þ\õ¸Ê»ŸülÃñé®2ò4ë`þ}ãI•±¬ÿRBŽ¢ ŽÔýsã“\ëÔ­pÀˆzEÈG®ÞA‘ÌÛ‹a4_Ðpý0ÄóuØAÝEG)¢Q³ö®|ˆ‚8B‚ýÖ*èîþÞdGWjú'¤‚©Ê×0Viäx²†ò#(ò®„ï=äœ@'q¢IªÁúT5i -(Ñ´t†`È ?á¿E<øG¢KO„d¦<ê섪"ý^t„~Bkh•}Ñõ -_2…áùXñÇðâoî|c™Ž¡2‹É„WÈ FÒÂü4bI¦dìû¢ÎP6Χ5ŸÊÀö†Ã»'îúEÕH÷½LæbjOƒÆŸé:S$:x6/0ŽÌ€Ý Iá7Íɬºã’‚âjzMŒ›•ò'½¢¢¯©ÚëóPC€²¢ÏŸë.š?³½>€ŸÆ)4‡§E^³¸yÒ´½F”+±$8–&G"ËYl?e½Y¹jt±+²šT¯I2! nþXKÀt`‰Ë±~h„]{> Qîäaãiσ\¾mFÇU#GŽvh2uöÙnÃ8½­WÕ;Rõ4¬ŸàEjÑ1‚B4²b¬ «¤;bëÚ9y[®lþ—V:Pªáñ•ˆ‡9òg`†©\šJ~ óO>%V‰0­ø ݬ;cJÔºjYr¤t’6Ïy«¤ql4˜QoÙ«~ØôoÁ†‹_=6xßqªw,ñ÷Ý",kñŽðÏ·§oÆÑ -Ó#ÁvI«7_ ÏÍfz°”âÇË!yÄ(3)Éä5ç¤*к Y³øb#a€³M?ÎØ3G%wºÍG*LÕÇ4}. f0ôFópË)¨@Cÿ™”Þê—,W š”€Ú'˜’Ó §—'—]8Ñ7¦Go´}yÈ-IõÞ‚Î%³Ðú ;ÂdŒÝ»í·‡ýƒyåï%‰•I«+³-tŒ7šóÊˬ'Åä$· ì;›9ð†ûWJ]µ.ôIùuŒò®Zò8CôpÛ-ÿ–ç$X‰ ÊÓ½„TÔÖ¶c+÷…DßEA1ñâ_oKC5³à—Ýö@Æâ‡Ç{®¡ !^þqñ‘ü¹©î‚RˆBÖ­ÍdºŠpÿ’ï=Ìþ‚?E‹‡­ „Á¶™OS°97õ­òºkøîúÖò,+³Ä©Iö^+͆S# -ia®s”1 +'_¥ÝÔm Ã'©ädº,ÁÒ]XÒé{&ßíØ41ú¼Y9HY‡_\½*2Õ|$Êg}å/MØ#ž9§]ržîZRaà^3cs!7烬y¡D6ÅÇ$1/Ñnh¨0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -endstream -endobj -342 0 obj << -/Type /Font -/Subtype /Type1 -/Encoding 525 0 R -/FirstChar 43 -/LastChar 49 -/Widths 526 0 R -/BaseFont /XRXBPV+CMR7 -/FontDescriptor 340 0 R ->> endobj -340 0 obj << -/Ascent 694 -/CapHeight 683 -/Descent -194 -/FontName /XRXBPV+CMR7 -/ItalicAngle 0 -/StemV 79 -/XHeight 431 -/FontBBox [-27 -250 1122 750] -/Flags 4 -/CharSet (/plus/one) -/FontFile 341 0 R ->> endobj -526 0 obj -[877 0 0 0 0 0 569 ] -endobj -525 0 obj << -/Type /Encoding -/Differences [ 0 /.notdef 43/plus 44/.notdef 49/one 50/.notdef] ->> endobj -301 0 obj << -/Length1 935 -/Length2 2339 -/Length3 532 -/Length 3806 ->> -stream -%!PS-AdobeFont-1.1: CMEX10 1.00 -%%CreationDate: 1992 Jul 23 21:22:48 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMEX10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /LGHYXF+CMEX10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 0 /parenleftbig put -dup 1 /parenrightbig put -dup 26 /braceleftbigg put -dup 80 /summationtext put -dup 88 /summationdisplay put -dup 110 /braceleftBig put -dup 111 /bracerightBig put -dup 112 /radicalbig put -readonly def -/FontBBox{-24 -2960 1454 772}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª*Bg·N³ÀÓ½ ƒØ‘l¦ÊKq*Þ²Xú«šææwüsŠ¼|QÍFïq˜Õþæv`æšz¹XòšMyåp"÷ƒë»¶Ôôì5OÒÞË©”Y¤ÅðÆë¡P(DTçÜ!Á[v´Á›„67XFšlU‡…²&3!R˜q©ˆ4‡Ýw”’Ýσ~j‡¸+Ûño¼uú£ “þ\õ¸ÊƧ¾µÐ"våÿ¯*áÞo$1”Ð|¬Ã#ó`ˆ¡ݧ’ó2Y†ý°«ßÈŽK@瘉!ÕQìgëÊDÀVWðÜ‘>{0¥óá3{i‡þ¼Eù‰ÈÜmÀ­W~?ÐÕB ®(Ç4ñ0Á3´„"¾Ô†9¢·NLòçâJ™óGàô9LæN¬µIWn‰NRê¾Y[ÉdmŒ+«IfN•|=‰ÄÇcÕèßú¬G5‚ÊàyJ©i,dRhŠt§¦§­ ¸©x<#^Áê!V&³1‚qEÞ1[nÁ³Ø¶{3#÷aêôÂ#»!LLk-(PAÐh1ŸIƒvØïºYˆK£1Œ[ÉV„òàYÀѲ¤Y*óa¸¬F®nH¼ ˆŽD‡hƒPé­PtîHH'ä¬ÃŒ¼=³(ÝÕ³A¯šf(º8J—‹˜H:cüÄXÐã¼æýƒ~ °Û˜zkc·F8üŸ!¥ŒhGž…"VpלÝå¬ wõ©”Êp _ñùÆ>ýà#5ðJ ر*àfvÃbª£•Íï -Ià3YeòûA˜I—™ÎÌȪ]%RdxLÓ ->‚•ˆŽû -Ý׺ÄZîîÍÿzG¨ŽiØLžW&Á¬i£K_ èîNߟJÞ‡h $ØÕ·>ðN­E—|¨­sÔÝEÞf£¸%†L5X€Ý& È–Ñ«†’YtŽ˜öqN$&žÕó(4Fd:ùñÎgÛ/]>§~ç4Ò¾Ö#ùsæ„ ­,<&fÝMÑÁÃ/‚c…å_ ÉHãuK{HƒÝ«û€RV·Ô—ôÓÙ-ÇR?J-" sèmk¸Û<3C"†©8&Ž vÙâ§ø$âq¼iÇB·Â³^ «;]5“8ìåf(!êœ(vo3švã Ø)W•]¤gn§ÓlÙ¾:j©tÏl+r÷ŒA”Á¼Ò¨¨ÁЩ‡¾N?€KF•òXød“qu€h ‚ì¬Ç]¯ò)yHcƒ"Q—ëS}D9É9AWÌ*”œJ®Å¼%·O¹™ðOÊÛÉŠ_v}ÊéKby é'²/\S!ÀÄ>G÷9¬)4:ЖãW¯¤ˆwuЮèz ­~sr»Ý ~)FáVã7rn_ã²¾h¼f±˜¯<¥Êž ÑÓ#ÓxEÙ,®uaÈøõç)~fŸ®#GÇùñÍÍ`ÞšÛ¥uÂi ˆÅßs”ƒ%ÛÂåΈ)Õû ÄP4ˆöÄZ؉8 -A _gPsB1uUÿ±÷8íIÏúuÐT† -Å…Ûþ_=½ -—-Øèz7ÔIœ¯"þ ‚=sy·´$%‡&sÅ«Ž =ôa±‚ò3-… æ•:%‘¾qqÀßiéù±_¦Ö¸ÐÛ¸™¸¤ -> wŸœ·æßL¬ÇDKâ×{gö& -4²N%pî.¯óh‹‡ìó7‰ãMHSF`ÐYv9Î>±m.(²çd®Fn˜ oè 53MT -«<çÃST Iµ¼<ÀW&à¹cúI>ðgàÞ »À Ë -§ÁCÄA‰ÛkmSù:…d_ŠQ=]MxY5œpÛÊöQÀâ…«wu)«rWØ)-nÒ[$‹q¸¡tóšR;¯ø…~æMè¤Ü‡´V Z¯Æ—kS…’uŽàMì(Õ+Ð<û0îž¹­Ìí—Z7_UïÉ>Ö÷_èul¼q$UƒŸê(³÷h(2:Sù2Â;ïÍÌÊGáoÿµÄ~9Õšç³}uVãÖ-«Ù^Ÿ­ÀÇ%äP vUöXKb…|«%–4ñ&‹‡¶ª¯ aŸ_œ0Tï—Ãù¢wñ}GßÀLPžÒR3ø­=Vgy K'òøCEÄCݽ½HÛV îÂxñEÁv}›Â=soÇ\{¡ëÚ¾Ž"™×c>QœF@òµ(í ÄþYð:©Üûe&ˆl`°ZÈ+I«ülrà^™Ë–¸N®€ë”G ÜЗDòasðô5õ1ŠÓ£ÿ»ÚÚì¦É ?–D}|éç^ÅME>¨®B˜R™ÊÈ’ö÷ýãq§ `4°ØI"h±¡oˆ=Ëy†`]W·«Ûð”Ž1`ÑžÕ{±t»rÒ§Äà‚ –’¨ôtŸv ›« -¤zFí9)[?h|)b•gÉä3Œ½×.&ìæŸïBºj: X3;™àáÓG¯÷k„š(´ƒB,ûÖvç0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -endstream -endobj -302 0 obj << -/Type /Font -/Subtype /Type1 -/Encoding 527 0 R -/FirstChar 0 -/LastChar 112 -/Widths 528 0 R -/BaseFont /LGHYXF+CMEX10 -/FontDescriptor 300 0 R ->> endobj -300 0 obj << -/Ascent 40 -/CapHeight 0 -/Descent -600 -/FontName /LGHYXF+CMEX10 -/ItalicAngle 0 -/StemV 47 -/XHeight 431 -/FontBBox [-24 -2960 1454 772] -/Flags 4 -/CharSet (/parenleftbig/parenrightbig/braceleftbigg/summationtext/summationdisplay/braceleftBig/bracerightBig/radicalbig) -/FontFile 301 0 R ->> endobj -528 0 obj -[458 458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1056 0 0 0 0 0 0 0 1444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 667 667 1000 ] -endobj -527 0 obj << -/Type /Encoding -/Differences [ 0 /parenleftbig/parenrightbig 2/.notdef 26/braceleftbigg 27/.notdef 80/summationtext 81/.notdef 88/summationdisplay 89/.notdef 110/braceleftBig/bracerightBig/radicalbig 113/.notdef] ->> endobj -298 0 obj << -/Length1 777 -/Length2 1473 -/Length3 532 -/Length 2782 ->> -stream -%!PS-AdobeFont-1.1: CMMI6 1.100 -%%CreationDate: 1996 Jul 23 07:53:52 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI6) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /GLBEVA+CMMI6 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 14 /delta put -dup 67 /C put -dup 105 /i put -readonly def -/FontBBox{11 -250 1241 750}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª)s™§„̾…´™;.ëÞ;Ôr·ÏTeò…ji«–íK­/df5à¶A|Ç{S/…ØÇ )¡šSïcë\^ÈŸÆÂm‰çÙäp·+ïÚ#õßv¾¯Lé17¢íŠ©×Öýó~kÍàÙ ˜d#å– -]Ÿ»L•eVèßËúìGo£oÙ¥È\šõþÙÂÝÒkÜ ™9‹ŸMÖ¨ð[G¯•ï(©ÅaÛܘÄ|õRPé6n¶ý=: ªbãÕÙ9s2m4{~ÜC‘ÉßD…¸ü˜Ô%Åx’Ýð4,¡C v•ƒjÖû-ÄÁ?x”vä„ynhQ¯`¦?°ÞfÕ\ñ -Ö[“BËhnVGXÉadÿ§±èÇ&óÇ»D»Òƒš¤gWGßaá0¥^)|¥ð*?ùZòõHqr@w©8~'‡š–I­_o3P¬¢f4½Î!ìÐãYåê^afRoëà 0 Ÿ½Á¼/›bïîăEª˜øЪT·¤€çBfQ†\ŽDNÛyŒ~ -öå§íˆeaÕ‰‹R†a}8ÒÎÉU‰Z ySráºq'tû©±5Òàã\ÿ~…¹å;ª (Ï?¯^ËAK®Þ”fñ¸êöÇ:*mÈVoö2˜ø¬õ)õA]«­³foþLÓ˜t\7¸g3&Ü5é#eªŒ5qeÿ];¨unwï¨E«ÿâ9È,}éïî#WºD‹=«Ö^ä'Ìžß›]J›q],Tˆm–« þ|Í>=V¾ÈDÕZ*Z±†ˆ4×£Ù†§âDó˜‚%Ý6öV½6ðá>Îñ" Ó¡[¼%Rëq2t5—·h]òQS2TšyIA@»Ò©cÖ'é÷ |œþ3Ý1ÎOd~ -ÉZTò³_Ãhï]ßá“Åâŵ÷¾ù -à^×µGºS76×ã1Ñz'ˆã²C½UHÕè g¡ G(µ¿ ô‚?â’W ûf±%™[*&¿TÀ”è&¿€õ":|6éóÊAæ $< UßD‰Ô5 >Ó0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -endstream -endobj -299 0 obj << -/Type /Font -/Subtype /Type1 -/Encoding 529 0 R -/FirstChar 14 -/LastChar 105 -/Widths 530 0 R -/BaseFont /GLBEVA+CMMI6 -/FontDescriptor 297 0 R ->> endobj -297 0 obj << -/Ascent 694 -/CapHeight 683 -/Descent -194 -/FontName /GLBEVA+CMMI6 -/ItalicAngle -14.04 -/StemV 85 -/XHeight 431 -/FontBBox [11 -250 1241 750] -/Flags 4 -/CharSet (/delta/C/i) -/FontFile 298 0 R ->> endobj -530 0 obj -[566 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 884 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 446 ] -endobj -529 0 obj << -/Type /Encoding -/Differences [ 0 /.notdef 14/delta 15/.notdef 67/C 68/.notdef 105/i 106/.notdef] ->> endobj -295 0 obj << -/Length1 786 -/Length2 1479 -/Length3 532 -/Length 2797 ->> -stream -%!PS-AdobeFont-1.1: CMR8 1.0 -%%CreationDate: 1991 Aug 20 16:39:40 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR8) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /NOMLPI+CMR8 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 61 /equal put -readonly def -/FontBBox{-36 -250 1070 750}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª*Bg·N³ÀÓ½ ƒØ‘l¦ÊKq*Þ²Xú«šææwüsŠ¼|QÍFïq˜Õþæv`æšz¹XòšMyåp"÷ƒë»¶Ôôì5OÒÞË©”Y¤ÅðÆë¡P(DTçÜ!Á[v´Á›„67XFšlU‡…²&3!R˜q©ˆ4‡Ýw”’Ýσ~j‡¸+Ûño¼uú£ “þ\ôéÒ@[œÕ6]nÎÕ×hÖmlha‹ŒH+4Œ£Ž›¹ºüú­œ/?Ð3¶&˜nÔ=œ“a6E¸#’ÕÊá|´~.‚ÜÔ…Ë¡w,ä"»rƒ­g[eH§êi¨ƒìª>žÎu†ÖÏ -ŒÕWÇåת>©~ºÓ–Ñ¿ÏJmdv‡Aíê -[û¿4|ܾ.×V–z¶ÛÄ_¢£1. F¥ýf« |Xÿîĸ9^Rw] -ü×ÛŠ³31S\D¤ËKZÍW`– äP”Š^êÝ3ê ’eÛŽÈ Í8`2?Òl;ˆÈŠ!eXxh -Dfú@=$»—*I¸BÁ€äÒXÉÔ!ÐWx-b1ƒ £™³ÅòòÝC; p™À}½âhÐÿíQi¼Ð=H²ðX­bØgŒbmÇ£óR,™º–>ù_ŠÑ¸°ÓQ! -äÂÅZØž¶Ar“]< £˜óîîÃQ–jt8ï?îB,mN3v լǵ+í˜Kú­6ï t‹Ð{äAJc—Q%ÒrúØ?væÿø60¾RmXsŤ+pú‘Ǹiñ:þUësõ‚ƒ‡“¸Ì)káÜÏPýWË\~Ú;’í” 7 T“.ÅN ¹„ü¤«}.¡‚¼ñ&:¢D°~ÀêzŸpŸ0C„Ë_§HòO­šzCÔêBy½AOve1k`ÃG|f2¾þ8—µŒ'j0&®òuk6sw,› I´Ù5¨&{oƒ¶®¤ÚÄõ³P}p2ªd -«ãC¤é½ÏAœ§!8ˆ²Zô⓪ÎÙ¦½ÇŽaÚBLeÌ…÷b¾±ls†ëLK›1B¹f/HÏ[UÜD&Ÿ—V{˜FB16³¥h¹X"·lñÍLÐÆMÅTÌ.„?³pSêþ˜Z˜Ïž@‡«+½/kb/t9{ä¾ú ÌQ£ 2l6TµåHµý[æ¿ý .ñ*”‰!9† ¦wm€ð·ÃéŽ4‘†Šk%glÝqðÛ×ÏQOc±[l~bï›â'ëDÌø‹‹_Ý¡^b—`ýê & O–°[écN™ÒåDObÂkº×frîɉH·ÙÈ®»·ÉË¡l½üY]zÓù&Q¶=PÌ~’ôélMârþéO¿å„9yÓh¼å7OonôXl«i—'w —¨h.uésƒ-4ý{´Žè -9âcÃO `+Þ÷‚§¼ñ‚Ëm†ãø.f›)K¾›ZÒœÑ/©ÝªÈ«M»f?ŒPG,|óϹ®q-ƒ³™‰÷Z‡¦ÈÏy#nžábòly@Jn¸zÅ2¢œGÉE]=̤Ž+&@ë<Ñ~ÆÄãõ³h'ßu Í&¾÷ÅBÐ3+*/hì¬:,•ÃñuvÞ½¹GƒCîb-øÈ÷Ĉí–izzÿeŽ«ÞõÔ =–‘•ÚôË»ài¬¿ºKŠ¢á_±ëxÌÆæjx¡Ð%¼­ZUí«L¹ˆà1ú„(Sܦe]/™­^åáìÀÇ ÙÃamaÏ[Š‘±a²`û¾ÙTQ)|F¨½ÍÇ‹•êú+•ìÏmCð›[êPß+¨<Âý!ˆw ÉfR”< àIFVpGž‘æjgÿn•œ¹ rÎ-îìbì¥béGÛ±l\¯hë|—è±í•ÓXÌ#;øˆhPjnð<*§ZÍMGœK²à8ÿõp~ƒ­> endobj -294 0 obj << -/Ascent 694 -/CapHeight 683 -/Descent -194 -/FontName /NOMLPI+CMR8 -/ItalicAngle 0 -/StemV 76 -/XHeight 431 -/FontBBox [-36 -250 1070 750] -/Flags 4 -/CharSet (/zero/one/two/equal) -/FontFile 295 0 R ->> endobj -532 0 obj -[531 531 531 0 0 0 0 0 0 0 0 0 0 826 ] -endobj -531 0 obj << -/Type /Encoding -/Differences [ 0 /.notdef 48/zero/one/two 51/.notdef 61/equal 62/.notdef] ->> endobj -292 0 obj << -/Length1 765 -/Length2 745 -/Length3 532 -/Length 2042 ->> -stream -%!PS-AdobeFont-1.1: CMSY8 1.0 -%%CreationDate: 1991 Aug 15 07:22:10 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSY8) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.035 def -/isFixedPitch false def -end readonly def -/FontName /ZFUDAN+CMSY8 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 0 /minus put -dup 2 /multiply put -readonly def -/FontBBox{-30 -955 1185 779}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª/ ùÈ­éÙÀX¸~›id}S5žQ!gt¤ê¡âµŽÃkÑJc;•r´NŒ^ô¢¬µŠ ¦X€5¿.ØSyƒŠ– þ+'êIÃqV˜œ…â:¿r㚉#,Ùô#È ždèBZ£¾÷ÞÖ *R’*"7Ù¨ÝyÝçÕü! ƒž[Rß»*|]Ž~Š [êCÖ¨ía¯[#Ô™ Ø÷«jY!4ØJÀ‡¦Í€õÝÙÒ"¬±Â3&§ejc\J$Í2Ëýø62¸ª6áwõIaàUÇI¯òränÌFB/€Ð“(Hp%#ûÚÌO.,ÊÕñsü¾nݸt­%\ÕåÀøb9?Ë_\ œ<+µˆn6ü<Ì!H<:Á“HZFéÒ+× ”äÔZÝ›ñÌ\ö¥ VT¬ àÚ=µc±8@º0÷.Qã¼€cˆºø<}93’¼¼"wqÍË—n“0%0ú?Kï4—Ô0*H8JÎÿÁU”bê_`Ü$^„™Øæ—²À”ÎíònáZƒr ìæOïA«èݧ¾5ñNºÔ ï¿ÃÎ{IÖþu-œñcNhÜĨ)ËCnm ’ƒK@øÜŠ‚-Bͱ{R{›9éɖη I_õ€¢Ó&þ8Í"–Ýù´Ç9 ÞCsû Hë¤'³o ý)©ìGÕm ‹`ŠOÆ/=õ™‹=~?0å´ÑΕ,Õ~\Tö%ëÌqK)èor89îrø±Ù¥ŽõBÈPüYÜÔ¥‚ T¿lÕpë4űêãI=+r¼p%«Æ ˜À!í»<¸Ê'y1# – ¶Šõ0æwªy»rÈ(X¸|ãX> endobj -291 0 obj << -/Ascent 750 -/CapHeight 683 -/Descent -194 -/FontName /ZFUDAN+CMSY8 -/ItalicAngle -14.035 -/StemV 89 -/XHeight 431 -/FontBBox [-30 -955 1185 779] -/Flags 4 -/CharSet (/minus/multiply) -/FontFile 292 0 R ->> endobj -534 0 obj -[826 0 826 ] -endobj -533 0 obj << -/Type /Encoding -/Differences [ 0 /minus 1/.notdef 2/multiply 3/.notdef] ->> endobj -289 0 obj << -/Length1 994 -/Length2 4891 -/Length3 532 -/Length 6417 ->> -stream -%!PS-AdobeFont-1.1: CMMI8 1.100 -%%CreationDate: 1996 Jul 23 07:53:54 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI8) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /HOJAWS+CMMI8 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 14 /delta put -dup 65 /A put -dup 67 /C put -dup 69 /E put -dup 72 /H put -dup 76 /L put -dup 79 /O put -dup 80 /P put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 105 /i put -dup 106 /j put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 114 /r put -dup 115 /s put -readonly def -/FontBBox{-24 -250 1110 750}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª)s™§„̾…´™;.ëÞ;Ôr·ÏTeò…ji«–íK­/df5à¶A|Ç{S/…ØÇ )¡šSïcë\^ÈŸÆÂm‰çÙäp·+ïÚ#õßv¾¯Lé17¢íŠ©×Öýó~kÍàÙ ˜d#å– -]Ÿ»L•eVèßËúìGo£oÙ¥È\šõþÙÂÝÒkÜ ™9‹ŸMÖ¨ð[G¯•ï(©ÅaÛܘÄ|õRPé6n¶ý=: ªbãÕÙ9s2m4{~ÜC‘ÉßD…¸ü˜Ô%Åx’Ý÷Sd,Õ&©jÎÚA x"±ÐŸ—”æmѬ,+;ÆþÅboB|Õ®œTÇ÷bÃoI³Âåæ*ûVÜî‡DZ©BÁJæÑþ©ÏŸª2a{YŒå‡ï0Qâ(÷/e@­™§AòGÆ€挄éÑп™ª]w}ˆ§ÓÎÒêgô®a輕çÚ8.‚ݲ° ÝcS,tã¾^ÅU ¼»j³‚†×q.’o†–ƒr¸!N›]@Ájß -ýGÄ“75uÆÊ‘ämˆÞ$æ‚ÞÄKWêŠøNWÔVF2PØ,KPË» 6™2aƒóÔbw;S³ÉæÛBÖ³ö{‚ Õu&D“C½ùúÏhN¾ã›e^±½L2Ib^ÇžY6þ2Ùò"CSò¤l5Xï!ok²£º÷R¾ì6ÄD UjïìôTº|»§S{ËëÂG3:‰‰6A…|Ùõžº °£ÙºJ 3•3kLÚK¦EnMpúÙ½«·òq¼lHÙßZo®xV ވ˘U§>ŽU©Ïó^îo°\WáóŽbY<&~…~S'_ZÁþ `¤žgקZW(U7ÛTg°4{{Ór§»ˆ ÷çsÄ^=ç²ò£Pé0ëœê¨Ð@õ._ßÌ^×–c]ÀDÉd0“š‹«ƒXžä,¡a÷<øä5Âݦ°u0ÅoHdêxÇwÄâÂôE}…g»í£/ú÷ è(Š ™ã¼:.‚ÙÈ€€Vj™{E§~$>>o !4;_Àú¸Hd¨[+öªhÜ)DÒn…çï«ï¨Ïý“ÀâH:B§øhV¿aK›õ’ 1ñºéxg LÔ”}w“¡ÑÂå“Zõ¿êŠ“Ú»›ÌµFê1GR !0n@0›nWJìTîwèïÅʳÅ'B-âÜM;xøùðëZ¤ŠO½ åYXÀÊ%55ðÖ’›qŽÂzÈ#ŽÝ!4=ÄôÏpËãÈ•4S¾Ý€„Õ2£öú2º/Ò‹jÙœÎÏÚftÁñ<ǨQ–ס»µÁÐ 6vû»»y²ø¬´˜eÑ8죵…CíJUÌx± ©ÏÕÍâ[‹Ĥ"\oM•I‘[KKŸ!t@WdT7’(Ä?Ÿù+¿¿O'³•É}«Ä“¢€"}Sí"ƒF€Åšsˆ³6ndïâaT4M!¿Ÿ…RVîÔeDg=ã}¢¦2´¬òžw;,§ŽÃEC^&?­ž~Î܉NGÝFï‹íøš–ù²Ge`&¶D(®ƒ¬N:=|•$ZÃäÀR1­n—¿†²ÈPÀÌ»À= °?¼¬_ÌxÙGoÒº¹à‡¯ VìmZC*X0…1>}Ãê\g`lИÜÍ6Ë`Ø]ð\;¨ +NÝ/ã˜$pjZVÆŠ^áØY>¨‹º>¥ü†—Ž,Û.'aòš0:_…ÁÃ8z瘱åβyr u¸Ñê¥t^žñ -›cb+¯Ð å1%b>а€§“h“-X?”®}°ú¦†ÃÿÌsk‘=p³n¼°Hãât(êóz.»éö Ç¥há4®í’Ž7r߇í’€—É=‹±=B;¥-½ ànsGË\7”1ß÷Ä\L Õ“«› µAÞ¸¡zŒo%ÉílÏJ³W@!ÊŸý;ø• À4r¨àM22|Ø`%*Ù:c˜¤'¾ ùËNùö¶f;UÏoÛkÛÌJ[ Š]-ñ‰º[ªLÉÃlΔûŠÏA:x» ÝEÃ1žè'BèÉ–ˆô`@Ýœ¿ -ëóqÑk3A"l=ñ^üþ§yןë}AŠdt´úÛÎù6j%¼Kƒü¤`‰t"Oâ¾k$ëc’I˜fU7;(G‘ €“F©×RòD@$t)|Le{U)ŠÙé½qŒÖGp‡V#Ä}ú¸—¿ïf2óÙ Þþ×m1Ó“¢ÑÓÆõ"‘qSU[(BæúÓl./µ}ôl'/Pþð(œ¨g8^`µ!¹æÁ™ˆ”´¥íWb´³>¹î“%$W£¶Ñ‹·AhW2ytƒ½ÈßÙjªº¨[Îkøµ¶B4ÖÍg¯ã¢ó•ÍwL¬y‡.Š‚I¡KlgÛ &ФÂÿ„bïˆõ›J Un±&žÏ}$ ’M@ÃìXlŒD²sk›†f×B›™> œ$L:B£±y\Æu‹¶7œ²”’] lThpÌš0G1ë‚T>_“æ<©S’5ÅÅŠ ¶b*¯ÌuIÛÈÆÈÉëVWÉ—‹U¯=A=×<ú¬IcÌðU_1Új{Ÿ”Ç0-z„ i‚&¢Ën;ùÙù:öƒûèRÀßEÓŸ;yÞ°Xº Û©h¹(šðh•&ƯÞW^ª[°`éÑèË¿ßq¢u·H[ÖXôµÓ?Æ硺¢¸Ò‰ µÄ&ª¤ëï;VqÍxÛ‰ ¥Q÷ +ªÇoç -.¤÷Å8iŒÇ5Ž~°{‹­øÝôäÜŸ½àãÂÝ“S›§p½ôói5ni*nêç@Õ*™g3ø¡ÂÒ(S`¨¬Ä"Ömÿ–|H»¦J ɽ­»Væ¯%ïébZžjA ²xM§äë—ËD¤LðâLaR(`,06ûÇƆôÉ·W‹Ç_ñUo¾ÅøJlÀüó/ÞGÉT6? ©©ù‡²xdR`qÚ ´x]…͵êHƒ¶(Ä §Q»@¼$LT•ãg9±åx+1û͵Æìlò:õÄÙ™ÞT¸XIGü;ìp 6)m¯n’¨äÉ·b¬D«úÔ)éú|ÕoìÛ -=פQ‡`°ŽZ™¥·¹k ²Þ«}ù^4}dç‘O.+1ÀoÍãð2’ô!WÒR…ÉÅt[¦ŸºÄ¢(bvÞ!®‹r{V¿.Åqa'Á¯åºŒŸxL -dÅi).[Võ;‘'c1:{å¾6@Ä]PZ×,Vciß6•å]´«(ÏfÚ9îÁq¶ÀŽÚ™¦,oÒ²ç‡ °BJ« exéù°@²©ãèþ¹èÿË©#Gïr ú¤èÑk¢œP8Lg/õðÓ·!¸<Š]ÛÕ"Êbò®X_ <ÎÈu°7÷‡÷²’ØœëÍ߇\Ál.ƒ&÷D“ÃÐ/uGîûŽN³,´ã(E¢ÞzR9Z>ÂÓ}ïÔƒqbäW„çÉŸ"ÏŸ@†0Þê‹Æy-γ¡#ô3j?¯$Ùùî<Çqôÿ¨•œoŠPj.9älMü¼ŠL‚Çq¤³¤åŠ6;Û&?±E´D)‰Û! çÑ]¹Mliå«£¼çÁ‹dgYJ -‚£}Ö=¢ÀlºÝ÷ ì¼æ}ùñ÷”á?ȃʗ¥‘hfÞrüæàÓɽXüDcÊ¡“ŒÈfEØÚŒÆw±moh)füpD†!hÝÁ‡ü¸DÒìâë÷¤‘PLµ&zY¸¾˜[ö9XõGËÞ FÝ ozµ¶ŸvƒäÏ.²ïW~j>Y´:6aéts½ØNrü»oÀ÷h8H`’2à›‹s~ƒ)Š×Óƒ½yooí2>¡Ò>†ÂYQðµóœW–u>;öÿÀ-Ùœ<ä,ïE3rÅÚý/gº.Š¼§ÖÃ#RÏ/ÃÆÅÀffÁ1㸺|zMæT!øDÔz—Ùü/x‡*úà)²;bkZkµá±ÒŽ1økLQŸ\œ“ ý°5µìÝ’ÃÉå/X¹Ð»WÒõ–ÝíbŒ~îE‚Ê.Câ6äµòcWS‰‚ñ©|Lµߦž "èãæ¢cž,¤/Tá2ɺSÙzóì¼=Œþ~ÌžgÑ+f)9A’XŠäÕ(3×™FY²9Óê[€'ÖvÍÀӒÄ„ÁÇ7k’5™z>›-ã¶ÕGh=UE¯Q#Ǹ“LñΞ÷–Þ< 9¸c@<Þ´‡mdkF²t¼TÐTá iŠ­w¤Xó-4á^;qK¹L}ºèï®IB¶¹÷R†Ä& HÔxç1ÙÐNwö ÈîÏò¨þv̸³¡§ËH>úi,œÐÕN~I’G£Å-PC½D•¦‹0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -endstream -endobj -290 0 obj << -/Type /Font -/Subtype /Type1 -/Encoding 535 0 R -/FirstChar 14 -/LastChar 115 -/Widths 536 0 R -/BaseFont /HOJAWS+CMMI8 -/FontDescriptor 288 0 R ->> endobj -288 0 obj << -/Ascent 694 -/CapHeight 683 -/Descent -194 -/FontName /HOJAWS+CMMI8 -/ItalicAngle -14.04 -/StemV 78 -/XHeight 431 -/FontBBox [-24 -250 1110 750] -/Flags 4 -/CharSet (/delta/A/C/E/H/L/O/P/R/S/T/i/j/l/m/n/r/s) -/FontFile 289 0 R ->> endobj -536 0 obj -[470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 796 0 757 0 779 0 0 873 0 0 0 723 0 0 806 674 0 800 646 619 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 362 430 0 317 940 645 0 0 0 479 491 ] -endobj -535 0 obj << -/Type /Encoding -/Differences [ 0 /.notdef 14/delta 15/.notdef 65/A 66/.notdef 67/C 68/.notdef 69/E 70/.notdef 72/H 73/.notdef 76/L 77/.notdef 79/O/P 81/.notdef 82/R/S/T 85/.notdef 105/i/j 107/.notdef 108/l/m/n 111/.notdef 114/r/s 116/.notdef] ->> endobj -218 0 obj << -/Length1 2088 -/Length2 13404 -/Length3 532 -/Length 16024 ->> -stream -%!PS-AdobeFont-1.1: CMTT10 1.00B -%%CreationDate: 1992 Apr 26 10:42:42 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMTT10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch true def -end readonly def -/FontName /XXRUBJ+CMTT10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 33 /exclam put -dup 34 /quotedbl put -dup 36 /dollar put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 42 /asterisk put -dup 43 /plus put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 56 /eight put -dup 57 /nine put -dup 58 /colon put -dup 59 /semicolon put -dup 60 /less put -dup 61 /equal put -dup 62 /greater put -dup 64 /at put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 74 /J put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 81 /Q put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 91 /bracketleft put -dup 92 /backslash put -dup 93 /bracketright put -dup 95 /underscore put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 126 /asciitilde put -readonly def -/FontBBox{-4 -235 731 800}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª*Bg·N³ÀÓ½ ƒØ‘l¦ÊKq*Þ²Xú«šææwüsŠ¼|QÍFïq˜Õþæv`æšz¹XòšMyåp"÷ƒë»¶Ôôì5OÒÞË©”Y¤ÅðÆë¡P(DTçÜ!Á[v´Á›„67XFšlU‡…²&3!R˜q©ˆ4‡Ýw”’Ýσ~j‡¸+Ûño¼uú£ “þ_ùc‹‚2BžØ·Ïj=‡š-8Ý\DgùÝŒ] ³¦¿/%b›®Á™®‹ÔºnÙ»÷Ú¿ÐáSº±ÁyÔüâ b*ÍçÇL(Ð9sWí«F Rë:E·¬Mks­ƒH…02§Eô”?›Oíe+ƒZ¤—'¨´zÿK΃µ¶…–оi‚·f Ë<àÂ,¬ÝE“òDÁNìZ|JÄ#’ø¼BWþ¯3ô¿ê‘ÿÏ—MÖìp¢ÄÁäó(¡ë%ä5%ûÀ~(Ì5öBk}Aêj „Ýc'S•¥ªéáÈ-8ŸÑ*!èi™yž$©”G.¡®w g ¾ ªÒJ0Ùn¥r -û;Òà¬Á¡ Kèr^×ã©o™x¼7p4Ù= C‘åyÃOùü#yËŸ[¾©â4éê¨9'nÀÙ*¹xÁxÛ/J}û¥oÖ¯†pë6OÞÊû¯e}hà1‘W6Ϋª‹¥À¬%(ƒi]I½‰«ïèiš -ãí…´ŠË""žb3™É=çÙ5sJÚÚzbÁÔJÕ>£[Wåеü H ä2"ÛŽüÕÓùº0O¨y9.à¼Àá¦t³¡ü:=×$E€Çª Æ]t¥þoŒ¿`% -Ì'EK¿—ÊKœƒ¥fr•‡RíK^yá†`vO^†ðžúŸv…òõ~ÈZwR‡³ iÞNMWçÐ3HS¢p+§T,q!s0Ï(عÆ;U–©´+3çÙ"”J8q3ƒÓdŠJñ`£°Èó7›¤7+âçêIªºu®îÅÝáØ¿hH<=!'€«¹TÌ–€2.«rá% -v ÈÚrdïä c[[ Hu,>’½àdÄ*,RŒŠ`8'ξðÉD À4ÚÙÁŸ²}³™½®â SYe8X|vŒ{ }"--Šó¦G<ÄÀÖÃàÛIŒëŒ›ÑÅÍHjPÚ¡ Ç}b†#UãòÒTâ|ÄBrŠ ®ÉÓñzéÎ2 1z,æ¶.R/½ó÷Ñ ‡…Nk³ß}~i‹±|Äk>dvIš—ª¼‡mD‰‰R•M&·ñ†OTÏ`Ü¡M”ßæõ aæXc¶:rNê…S؆–á'GSkˆ,¢åÛ Ä>a càÖµpeW¸1“J¾m=Ì6·dgae­Ÿ·R#¦¸l¶/`˜Nj5NENªžÄ~QJ—ÊÇSYm#ØÁM$Ú÷ã¨ÿéË_#ê8ˆÙ˜žw¶É 8H¿Èž2€'{’Gº× [þa%ºQ†E%1µº”l$ûks@+Ê¢·@óU³4ëx ®R3óO×ïè¿šš¦#0G ªL - G(‰‚»Å•!8BÂcÈÔzœí^‚¡í<õgC]µIœÑ’Œ$v´½Ô>4«8…ÇG‡`xÑ°N–¸çEò@ÌûPC@€aø9gà­.7ÒQ‡úŠÆ$à»hWøû¤J\àÚUÐ`Óz„¦§åõ›¿ ‰< )ÜÉQÅKÌtïX’cs[§)&:SÂ[Þ¬¢]+39n¨\q•¬¼“ñ¦xÖÒ†µ 3–Jœyó>Dg"^ݘ³X4dò{ åúãÓh‹s¿KA_”éË&ÁF05nÈ—=È:#Îãê7GÛ…Júp\ãSž=j¡é48Ä¿ìIÜgi'9óÓ)2+$„Þ¥ÃüÙ\±†Äš»Ò®'çÎÈ°;Ó cE§¿¾³ÜzŸMþhi®å#1“P]+îä>áûN\Úr®®€&fÁÄB¯ób­f›³šI) h[&€²]­Ú/òŠ4ù­¨Z¼¶îµãƒùYÐk0°&Àgv£r¶ï&×Ýtÿ¸AØgDÑ=Q:ÙÂt`{0ø¡Àa¬ª]ÇU$©qpÌH«ìs¢S@%%üÂ+tv ¶ñ Eÿu ð$ïåÇà`”óÐi ÷3SμƒúºíÃVÜï,Vw-a?vgª»)ô÷K}ko†üz|¯n«B 7mÆi”k 8Ø[ ô¡yôa ­·©6o!:zÙ~­üù4…]:1!jíôl0ËRlæ*aÓAƒÎ-d—~Ô‡ %Ë~ôØn†ó:†™ ‰•ÛqK‡V“Äs=ýÞ-0üчg#}œ$;ÿAKðhjP½ª#Ué^¡ÝŠí8¤u«¨fiåÒžæÄ6=]êŒL|ï¸\' Õ‹ŸOΓY©WîÛ}@<´~­c3zÃEc·!ï±ïN‘¥jÛHßÀÅß Ê7ägjð~Õ…Nø}Á¢8Áü`Lå–4_R±ã©ƒ`pJø[ -¦6>ùbE½©@¦ÝGG(è ›&¼â6GqL\#Ç¿{Ê'2¨:´ ›Ë¦•5§)!#øW:tÄ)à÷ï1¯%à“@¹gŽovØiåŸWv0Bƒ%‰±ºŽÀî¡ÁÁÕf©m§šLgìP$”Ô¾TGèhþÞ -†•þšwú|=ÏŠʼúh`@eã•’ýDË–­aûr&­|£[J ߀”ýæ ÷ìïO j®'þFÈÓÚ™3æu°ƒ¢Ð§¾¤;ôëÿLÆ/ËÛ7)]Ÿú4·ýAb r´3‰,Ì–‚ÒI’M’¥”¶.I‚v6Ãy,m²zɱ ~èúËŽþ»€MìT1ÈŒò©f…øÅ‹ƒŸªúèÏÍa¶ì€Ìíö:Šô¼/̼Ö±‘Èœ¨ 'sòÃ. -)G X’ÉÜJ»ñµÃytC÷KØ]˜n TM—ew©±–‡Ì%ša{zs:o óú;L“@ªð<¿tæ–"ÊC#6‘ÕñÒ– Vh8'yòo¶,c ‘/}bhM<Ë©ƒõ›K7_ˆœ2×9MX#›Ì†˜vXŽmíᘥsÉ|PÝ1ÂôŽð¬œÙæ£ibÅwKÔ‹¹ÙXŸÆ¤;^UCOqårò¬6ÂÈF3Ý>’u˜¡ÃýM‡0—§&á:óJ¦#n•ú©5„ºÑ‘çŽ}¸&»z÷]ö‚PÊ¡¯ð5#c¥°©Ü­´MØâ«ÍE³ôVIÃÅÊÄÚ„dè$”Šöt¯–ÆÇRIØQtñ,šž¿§½D%žö<³:´|–¬ÊÖîà(%IT 7ý©ñú1 ÅJLg3êþÝiˆnÔåîÂF&‚[Qáî^—rV_ŽWv4T=„°² †Æ°x\³é°@RªU©¢u'*äšþR¹.4¶€p˜»'‰·8G{ˆ)ů²ºùâÿ )¿µ“ þ/„¤On.¥ÃÑyQ+9i`ç¾·9£øܤ*ÛÝ–vWÈ¥ßÒ"ÞæÕ´–‘‰;Q$Ú¥óºWm˜‡Â2¶¶$o¶_YyÓ\Ø Ï;›S34zÍ2=õºQK+GOYéÂB©”µÒ¢ ó_qX¤û¬|’ïµù±½×.p|¼JôjšmÈÒ„ü´¤É¥¹ù î‘ÑèÊ´’õ.£7w«!J4°a]ùÖö¡¶o -BQ2^m¬ü†*(ïpð'™¥P3Zé8¾‡º«S¾cðJ*Tô§2d±P£”¾¢d µö…è5‡lÃúa*/òº Sßïõ:¹ÕS¯àíؾça¡| ÑÜìÝËÍ6ùÊ_ßf,üÈ—zÊ%Î3| Uù £zVÖ5áœð¤ªÓQ jq2# ®ÑT£_x$¤â¸[ii Šå4ªŒj¢£J>¥åËÇcÖ•:«"?uí[yŸÊF)Í•c²Oï;uQäë;·{ƒÅ£´Ëürú(­å¥½m„v/cøFxsíëGDXˆìmøß~ã¢ØÔ¶9,U‹nŒñÄ®CÝ’ùf™î>="#ŒˆøBÑÓ‰‘2%d¼h¶ ÿ—ÞºÒVH-„Q)?Š•<ÈÉ¿Þj®ýç‘æ°ŠñÌí03þ",éâƒ'?×æEœmôÇwß1ÜuHµ‡tu}|Õì–QBòWdàQf,á[Æ°¡š#dÃâ|°muVc è -‚™F%«ë†x‹íKØÆ•:8|s,È&D¹ŽQe;?ƒÝÖɯ` Þá^€÷é (4¶m/ ¾?p€µq6ûöváÛ£±èÔ}…¤®%=iLì÷[]ÓJ/2v×J8FÁËï¹ÇBá'ño®Û\÷ÓQJ”©jºÝïÿ.lGò×òt$À¤›*iT2´©ànÍ$ÇÌè]™KtËñîr‘ŽX¹Û!¨V}Âriçéܺ¸5D;sº_û>N¸òb8€ž¼ÄY¦opUN‘Uõ' >VàT ‚ùq˜ÁÝB1»g¯¼¤„oq»üùþé—uõhë¬~ö3tO3—÷iŽ4=«BÆ×ö]®Æ÷gì8D6ÿêæÔë©L|W~ÉK?LÔ\™ÞFç?iæ<;ŠJSýLS;.ax—ñ --ë¹eÀS±lSV"57Q§:•]-¥ÁÞIÄo-pÁÌUWøÑb;âùÖv—$]ÓFBØ3Óó°ƒ!~ƒÅäªâäGS )+C£¥P&œDqÁ݇ËÏÜýÎrƒEUž9¾¬?£ºký•ÕÊÝÑr$F+Ö)¦ßU)ÙŽ{x…gc'¿*5Å‹õ>èäv‚•c6¶õÿÐÏl%d‚ê=³ÎÆÏáN(2ÂåçGz0ÃGcÏ÷€ÎÂ>cX±”Á—GRßî„*/̸Nkë @á›ãÑókv”md¾Ðdz¾žýj£ù¤ÍÂ.é Á˜;+ÚÎ×K³¼3íð§3öþ'ìI15˜DŠ÷ª%øh›èw"RŒ§Ø'Ü¿ÿ{y2uÿÁwtÒþ¸uÌØÎî‹æs[M͵ó3Eœ:!Þ±ªw­¹'ëG #{•ú¼-{¸\‹qróäQQî7i¶ŽýÙ¼yµ¢g‚e÷rt“Šéß@ß -Ã?⿪òÈù‹™_ÿa‰z®†Åàˆ-L7„G×BÞÄDRlµ¡AîxCO0bz¥ Õ ¼AQ·ìY6>×Q¤RhCVâ$ÈÐʽòú»ðO#U[§ÕüÌ!â*°Rá_³ÿj­ow“YW«¤½dvÇÕªžÉ;:ãönæL…Í4ˆç–Bòl©¸‘ää3¿MìjçóSCüL+úa¤Û²Âéä±à©ôÊbu,Ú]ôÅ cp²©ÌT§É‰‚!Äõÿ𛃌'₲"Ú)ú{³ÆËOK'yz0'Ôo|.®X0Íq ãΑæë’™b jB±/h‚3B”à9tŽCùåO©Ý`É¥Mi“Tè€Áhýboæ›R¾sŤ -q;–TÁøôxOÓÁ¨ÙÒƲµêXCpƒ:€¥$ ÏÑBnÒ -m¡”´¿Ñ#·+V+J>ìÂ7kس[¶¾ÑóýQ_’cÒgŒÄ.ó’N#µ“'õüì Hò¥¿±Ö]K8?>b¼Õ`‹¬¦[zªŽþæ/ç3 䮀o£'¹*›I¤ œ,Æ€hì8Z¨ä¹ñúnË.c¢·¹²Ìį׺ª®×™#l·K½²˜÷¬g. -Œ4ã#d Kñ€X–ê+jν Fû¶­ßO鉎•çä¶Vmß››x„ÕSìõÉžW¡TÆœéý5Š–âå6wÁÊ®‘aztA¯”Ü‘;}?+.¶ú¯ÞûöÙ\¿ù䃻c-³JuG0xHÙ½9MªG"¬?’M‹í‚ Å| ®‚5h󀺽*ˆ™{Àso‘q÷•’Û[=ËûÕŠF{Wñ ¢„ ¡j%¦Ïòf_i »fùÿUÞ„¨sœùcp¡©¡<Ö¥TTX -‘«jNõ8h¿–ac]næßÕ}O}ndO÷ -±ŸÅÉùËîºÿô5Õn±O^µñíxQÓêTwÇŒÛÄÙË/twæ°ÔLÕöÔQÍ_ñÍra¸#¿9…¯5¥˜¬÷TÜÚøµÓ}Ð g7qtˆØ¡\ˆÙy}O|D•ðŸdˆpcç\AÚÐÛod#”2è§~¾³dÆ" ¯yÉ’Ee¾œ\“êBînq×ïçZ0JT[àÐÂ=Cž­ÛTò§¦ö³Õ/K -Wš0¡G¤­ Ï„G¸eјÒJ¤ôðÿWYÇK\¹›»„WB*j³Æž†$XBk‹z8'V«Qn`e¼“Æùó8‡’O ÞK?•…n'ðÁûz\M|¥CžK ÊâþnI ‘æ‚.2Ï&õr©:oã0%h^’Tÿ=™F583|H1ÃðJuR˜©8cÉë' õòœÿC]Ç$WH»Çħq-#ŒçT…;¿´l%{df‚¯jÔLÏiÙ›o7å/ ¸z)™Ý Páä…ÅôƒÒÚßF=W•(øÂÛõ@-Û -_zŽ7Q‹4Ü€EÕ׋Œ”Ò:hHèµY@5HSðŠx„’dò0—…c"ÇÚƒÝûóãž¿ý¾~ê}€/¶¨ÄN(¡R’{©ä¿Âµ¥ÆDHIöÆ"^>º•49éúNýþØWÙõ®£6‚>€PRËùáÅîåïtÃG ¸ˆÚ!GCÍÈnI£#E!‹?Ò FŒ5acÅÔåù,†E‚)Á~Ž};Ÿî‘ÇŒ Š<®HO’:±…/Ȇîø=[Á­Ñˆ‚«3·(Ъˋ§ËåãjÊ ³t[™ 9ÚOë†4ËÆõP˜=«þ1?«?“χRÆvz‹6  Θmq•â?döÎ{Ï‘X*û†HðìÖ€ì U¹ºwöÈÖc{‘E}+ø™ÚfäÕÏ’3ï¼ömcŠbC]ÉþSô™3ˆ á´-ôOÎDÄKŠÍŒ]T&HR7²2s: ÁB‡ÞÚ»`„î, -!³røáM\m#hÕÔ%/…]LÊ©Àx§” x`Hù9_*ÿî~WKôêJÜ;g-áEƒâ1[2¤²‚Õ+lвÇÃ'r±vŠ2/’mâIRøا0;Oï0«|èû¥Ú½ð'-hMqœ!ÏV1q†?þd˜—`7yÜ3rk‹\%f ’Œ&¸˜k¤„ìrè€Kòóf"ä,g *{µ÷›ú¼¸U6 paQsCÏ—ü}“ÎŒ™gÕn»&”ð1‹ƒ?êh¿Z˜ÇpKmâÇåètÁ_r'Ó§Ú ò­Â‹šKÒ) ÉM«ô[1„‚á°‚xèáwI’96KTì±H;.JJÒ ç–äãa¾0xà|«‹ò“Ö¡B!,\ÎÉÚ)w­ ðT%¨K#Dé§t°ø“YçAÙú=<,| -鎩+÷WœQE=ºì&àÿÉÕm‚ßõU#„üŽO¬‘,¿w‘ôŸóÔ+„Cƒš«C)]Âqî[øúù&§6„¶½SÛ A…L;µ ˜]Ù™éS½‰è Ä%8æHMz•ð—.?ë{ÅA\ÏÛýr(ÀââcNˆnÑåDhµÃ‘æ•äd -!'Š+Â)y5Èûb÷¥²HªâÌëQ:¯Sî•]º¿ê@Ë™ÇÐt”x B@TƒÇ+K _Om‘ã¯ÂõkP]û·D°‘ÁlÇñ)°C˜aÛ_îe©ñ .“QªcK]U ®ždõQ¢øvm¸yܵ¯òŸ? x_Uì„’™Ûüái™GÐŽ9(G‡NeðäŠÐ=½“Q5ƒéðj®’éÞ”£wA p6À®×K_¯{h2jeæ¾£ž| f­°‡ãm3:³ïÞŠ¨v"rŒäL-ãùiDG_à&´ö0ÑÜ„”f¡ÒŒŸ¿IŽ¢‹Ú=ñl­"á£s‰*s,µ72,àWQòýœ¢Å -±š+MÇÄM¸4t²“ͲDê"È:Ѹ/ᙀÉj¿vœ±La»Pì<ê5žLˆ-ÝŠñEWsl›êüm®&VåcŒÌ†àÔ2-f‘=›tŽÅùÙ0ûõʵ1½ðH*ÀÞ²¾VžÂ沨ÌHlWåHaª§ïǤº{v§1¼QVžvýŒ=ÀäKø« ­JÈšq/i&çì_—æb/ ‰ä»ˆJö¯ýÍMPšçg÷‰BÙÝþ ¾Œl 8”xÛØ¡¶/HaF­f3Z6΄ÎYÅgÿfÖö®hr€V@wjàËòžž¹^›2 áÚaÏ6Å•bpÔh“ÿ°ËÒ›%nuWçB.M6pÿ 2bª°Yoz׋.ai)‡lÕÌXu„qƒL6ïb%;34jDd±¹FG¶KÊšœ§%)‚³‹’·VÐqÌŒ¢cù°¿Ì&Áïö:ŒDuÝ9BšïgAñÉȳ½ƒi†&ݾk£1uQBs•(} Øžý½ÝHþ%X“¡ ÃqñB»Êh>¢]3ð#šGCeŸt• ±Ðˆ×ÅÁ…äWo¯P7L²°Æ0Ó¦k½E8¾o /2ö}‰6••rž•¬²ÁJŸ;£+ÎÓúðX1ݾ7šÈäsE -?|û4&$,دÒôP wtb×CëöMj—ôï6'€î¥ã)5p$AH‘ŸàQLÿAù_þÊ¥B3ÌFÎ9"l»¦:H”qøTuçãf5æ^1…í¯«£©µvÄ’Z\)Ã?aýâŽeáÕ#œB\›Oç”øðùöÀëA[äÿd£÷¹áë} Jc(²€“„ã‰øçr˜„R[Ø8¦›†cé|Ö¨²×óÅìÇ>0U¬)´ÉÔ—ë=Ç\ŽòÈì ŸŠþ9ÒüÖ»÷Vht Ú‚ÙŽ“!zêñÇÊ U¤÷Hª,¶Œ#"¬›ö‹®C£S -àËfûaC;}æd-KŽ¡ÂQ)9ÅOÑT³rpÑô40ã‘ÕW`ö"´B› àÖšãƒÅ°O 0íßµÅ0 ÿ?%˜\ šh‰.؇‚ÈìÿÄ°qŠ°Äž¾)Ï -6¤‡ ìÃy˜º–EŠÏ¦ÌUPDP:VVZÜÌ’<"5h²ÞÇ‘õ[Œœn¢?ÛtÈ5ƪ‰Ÿåþ@mÒl›p¹ЖA!’›XÙP;:ŤŽÂŽ´×áE‘p`p¯šùóÿ`Z³c<—ÂÞ õU!ýÒ¥ˆ ¾'ó(‘êͳ±ýœ»=ˆñ¨×—¥>³Ÿ8Ò¢Dïš¿?'ã½`lȱÖq%íî…åßíq·‹7PìlhuÝeöð™ Ó…ß# Ÿ¿Oiß+·j1¹«ø°ä¦šä;;l‘0ER|hòßa‹gó@g®=ìþ㟠;çäÏd“‹mà+)ê:òhí(t¬fc„¯qœ÷lÌ{}–çç7§§BTÞ¤¼¾­ÑKi7Ît{‡Dî2a;7Æ'èæý÷ Üö`ƒ Nj`ÇOV$F£xþTí.ôb¢pC…æÕ‡7gmœÚ\zb¨3ix<Ù¯ÁÚG»fB3ŽÇ(øûGçäy£2!b„ÛʬDس£ìüÖPI?Þa±¦È*B˜ÝYslºi^uˆ©MP A×çwjë/iwh‡-α‚°PÈ3Ù(yÐW>…7{äò’:¯ŒR¦«ï­…‰[S«Yj!ÎÀ¦ÔÌzf¨Á‡‡ `¬2,$&‡Dyç£7‘m¡^I©` t¨ö‚Ýé›ÝzŠÑÌ×!qKÃÇù`ÅT¬–·M±™É­¤7€>xäú¢Ñ­tð(™¨‚\ï}qpµ%^ [*ó½cöEt`뀾9K‡M–S(’^/,(Hz» µ$KÞr pyä»Ð3ìÁ¤¦|ÿ!D]ùÜô·@Té¸< -#ÁTn†pm¡ŒÏL%2þš*_‚dy…פ¼2 »ÿdvå²ìŠ²Ï-Z¯|—›Þ&ö‰ rðÒÃu¾†\î1fç¥ãÏØVò-dÙA{¼Nó0ŠÞ¡ÞþøÏÁ&YŸÓê}yÀaðsôð¼ÿñ™›=ÿ`³tÈ¡ÿa\Ê>flhΈó¦Ý,²Â‹Y4^ê‰*ÎôX}Î9׆׈ò‹&ÃÊq]Ê‘ÎþôŸàèÞôÞìŠ#鮥ijïç7=&t“Çf5/ÛfÐz:ÃU´Ù É[ä¬í¡m>ž°A-¼ÆT -õdÁÝÿv﯎®x—î«SÌî  S«æ^ÄÖgg\i è -‰³ãøB'¨º–8v’JðÈ "îÿS¼Ûžœu¹NÀ£t’D ²ŒÞ—Æi±¬jBókt¿~ÝÆ_(9ÃÎb`ƒbß?µ#mVß\æÒ”eЙÏèGj½Å¯©nwa|Oîøl·~z(• –7uZw“‰ñK¤%VsvO÷aåX7:­k%¡}GF^C±Ê0×σÁ~ Ó’×AuÞs‰YÅoIO`)¹Uøœƒ´‡!'í&‹ÈÒ7eIÑ¿¨ÇNçöF¥†C¸¶K4»’#_Vê)«•Ú›Gá”dǪðÕOR‹¯ûÃ¥ª~í -IÆóŠßTtòE½MÃX¯¹â h#8[Ȩ~ÒÈn$Ÿåƒ³o»úc>­h6;N‰ †f»±é<„ÇváT9 3S'QéL£ÙèÚZØ}Ì8zÙ_9Ï*<ÄWÇí&³.ùtÿì ‰ç±Ëc/òBŠµh gí £xèöÁ·MÉ?™Œ‰9g»ú1º*³ C½·Í|T‡~²wWg^½[?†M¸ÅŒæËÀ¯ƒ=º¬ýŠ.ù•ÅìÞp¯ÀZ¿Ñœ_ǦݴÀ/˜ûdm'ÿ;Ñéâq³îÉ‘'lMx!ÒîÚ²s,Ð £é>OBÑ+ò0u­«¤8/¸fÇ âR±\¶”L¥’ÙVG -åUÈHMÛ/Òï6ˆÚ¯f½§|œP(ùD™™íº ZGžÐìŠt;+UçCÌ#7 ? ˆ0¢º™é¤¥Ôd¬—¼±&—^lms -2†â³1Æ Ú‹'P5jhs$ò\ ¡ìÀlÏ _yâ¬bT‘®„l'kœ) _ ê…3M€Qk ÉQ&tzïÊÚcA_‘ÎΊ¹^šMb}®°gßM<íLš£EÄBwøýÔ:¶nqS7¯K ’‘ ^ü³„2ܦçßüFd.jR£%¾ÁèÛX­Ì/®Owº/_ ÷i!#s[ìôYÒ‡Mê³ûé Ôè¨ïL¡¨Ž8飳”ÁÕÈk½Q åÌæC¿Ö™Å\øëS¬iâ<*MÎûi6Èt2]ƊІ_ÁS‡û@@h&q$4zÿ«.þTÒãþ4s¹ÅrŠå¤6ø)„¢Ì÷_i8FÚAš ‚3 ÉS€%ô©àˆyw¨k~ëñÇn¼¸Ä5àŒ|—Y÷—Õøk™ÉefË¥•#¾šC_ºz …Q%Š“xÑÈ{éΊå­U®´Ño‚¯2BQwÌßúΠó†Ña]ºÇºã0 &%b*`ä<„™$Íæ´í€óg¡)_¿ZÇèPâ¶õ¡°*(P³D€™ÂŠŸ¦î†ª·ì†F㔢ŒzgX oÛÂñ2+®hÈ™›iÌ+’AHApDç]¡bÚ\öÊ=®ÓhO ÃÁȲâZ ¿9²Ô¼î5 >+óFø9†yÎì.ò>Ÿ¬uèë`]ÕºŽ?àT9ÿc¼‚ùÔ¾­±ÛòX UæW_ö -2ÞÿòmÀ,³;“(}#uß.ýZfüå9¼ñ‘Ì%E¦ßzà® û4ŽÛÕÅe$@BŠ(©ÇþøAb³¼¾þÃ5-o"²ÕÓWx‹ü3qÈìH¶›²> w+­p¨B<êÃÃË—¦×¸nFN´Oþ -"—}£®FÕìvc -™¢/W÷ÔóàY®Ûaû¿þ"^[Ë[´´¥†æ¤&O9y\¨"\¨ÒRÇï9òo­lújöFð­OåQÙžåò“úO{9Ô ‡~CÅ‹U4oK¨´_¤ ÙB…Á/"®ÕdÌ★#5<÷qÞÖQfÿ[/u2²9¯™=ãòìûF…Û,ŸJŒp5¢ {sG2wñB#@š­ÀXYq0;<í(¸}:屣̻Ž +R+ò\¯h±S2xæOPÇ‘‡ë;OLV©¤r`Èâ ù`0|²M$™¸Â -E/ÌîvðÓ{D,Yâ+#œЬܑ®iÙß:µìœñW=L\ç^¶ÐQ½†X%y¢œ¯4R§ëH«u⣄<ÇÖ' ö‚¹Ë«tC—.˜yšzuøÑŽ÷¢‹SP‚_ä€çy•‹(äÜ,­‚àDæXåÁko>Õ¼¨[:[7WžÑo×`8¦äinNÝt}®4ï2œ’¬ÊYr3šæ½ê .ÏI»¯kþaÏÕÐî:R141omLRodñè ÂV)–ˆfÊ!Þ‚¬PõBU-@*¹?á›ÿzcƒ[•ë÷€TÄÍAÜþ-­“Ïúx—âÖQç÷gP©IÿK}γ?È™ÎBóvv‹NUâ¸91‰6ôM™D>ªå‹pEMøæ¨?"¤š1Zj焸DN°÷ÝôÈS¥7VbÇRVñÒû‰³YÚ=Y2Ò2¯*(x‘š@)›”ÑÍá_í1Bebv[ºV~ï®æqÌÖB¥?„·%µKGU_¨7N2ïÉÚŸ×b…=‘åü†­}JˆˆÃ«¨¦¸»¹8É»ÅçºLç·"4}'Í¡¨Û‡ý¾E(§aJpö¹X5ÑQ¡øŽZÓTÂNë¿$‘‹dµûŒïW}¢I‹>„`œñhÌÜ+Ö×ù²ÉLÝZm]ÿI‚A­4Ä)«‘Ét"˜ü‰fÉ9väD­Wª4VRW|Á½ÀÜ,<Ⱥ%ò‹·PÚK(‘^?cZ\So>šÓÿT©E€†JÁ{éÏ[¹å‹÷ˆ*Kuö7Î÷{ hÂÌJQ…4Só3«5ÆÜÞ™3+V ß[2•'žñ<Œy•ÛI›j¥í«¹Ù[ 8ü ó±ò9IIì,`ôeTt¢“Ï.LçÎ$ȪwíS@†ßÿüÞÃÃÙœ$JèC (÷ÎÏQè þE;8Àî ElÄT ¿lB²”é(½€!`ó'IÇ”¿n— #I!þªÜÛ=´5žªÿê?SW_Ç%Ò^“Â"STD¡ÄºQwÞP‰ƒ7a_ ±ÊÅ!¥?ÀýRPa1è‹ëÌ•[Za_m˜õ’tànoöu^s%—Ùe­zFﯕ¹en¤D;BÚ·ö`6öwýŸRê—ž5{hh×3–á~G„t•ŒDq寃Äà›h!ÜÑÔRQ0²bOþã †§Ó™5jE‚C ]]X»›ƒZÁ2Xu¿u1’núáöé ÂVáÁ#ÌÝ决‹q2Fr…åºÅüê³±¼w¨íC©¿uôó$g3§,†æ̪¾2œÊE¢cüÁ(^]ÛsM{à…¨›G´Ô­XÀa¤aÒ¿“Ès¹+¾ipk^dÆ™”€ÖÈCu~·lñw\Ú$Ž`^øUé]$õXNp„ú,n¹q6æQØ•Ê*’LY{;Ìvú»>\RÌ…yemÅ’Š+“Í»ïN½*{êÞ®ÒËA ¤ªU–*­ -Øò$K[î!Ù.ÉݦØ~é!LnÈ$æÞ“ã;w¸[y¾º@H„X&Ëg«Ý"dút†¦ûÒo¸—G.I´Ë~§5®éó^=•²Üé‹ñax}¡ùfPìOå* ç¥ 6Zfíxwtxœ¸§)ü|o†Ošø®x…]´Ô~¼J»PtÝjɬ€£x0€\à4xC냫! -‘ô—‹s*ë½ „gÑR(÷=Ö“ ÕAÄáÍm mðu±ŠÔÝEÂ6V}þ.£òàáŒ×ɼÌä*Ce¢šY•N -Þ‚»Ó÷ÛÜïsÆ‹]Ô<5&uwét—½.¤ÓW ˆ°JíÓÁ0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -endstream -endobj -219 0 obj << -/Type /Font -/Subtype /Type1 -/Encoding 537 0 R -/FirstChar 33 -/LastChar 126 -/Widths 538 0 R -/BaseFont /XXRUBJ+CMTT10 -/FontDescriptor 217 0 R ->> endobj -217 0 obj << -/Ascent 611 -/CapHeight 611 -/Descent -222 -/FontName /XXRUBJ+CMTT10 -/ItalicAngle 0 -/StemV 69 -/XHeight 431 -/FontBBox [-4 -235 731 800] -/Flags 4 -/CharSet (/exclam/quotedbl/dollar/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/eight/nine/colon/semicolon/less/equal/greater/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/bracketleft/backslash/bracketright/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/asciitilde) -/FontFile 218 0 R ->> endobj -538 0 obj -[525 525 0 525 0 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 525 525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 0 525 ] -endobj -537 0 obj << -/Type /Encoding -/Differences [ 0 /.notdef 33/exclam/quotedbl 35/.notdef 36/dollar 37/.notdef 39/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five 54/.notdef 56/eight/nine/colon/semicolon/less/equal/greater 63/.notdef 64/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y 90/.notdef 91/bracketleft/backslash/bracketright 94/.notdef 95/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z 123/.notdef 126/asciitilde 127/.notdef] ->> endobj -188 0 obj << -/Length1 1016 -/Length2 2355 -/Length3 532 -/Length 3903 ->> -stream -%!PS-AdobeFont-1.1: CMSY10 1.0 -%%CreationDate: 1991 Aug 15 07:20:57 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMSY10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.035 def -/isFixedPitch false def -end readonly def -/FontName /CJDSHV+CMSY10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 0 /minus put -dup 15 /bullet put -dup 21 /greaterequal put -dup 26 /propersubset put -dup 27 /propersuperset put -dup 50 /element put -dup 54 /negationslash put -dup 60 /Rfractur put -dup 91 /union put -dup 102 /braceleft put -dup 103 /braceright put -dup 106 /bar put -dup 110 /backslash put -readonly def -/FontBBox{-29 -960 1116 775}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª/ ùÈ­éÙÀX¸~›id}S5žQ!gt¤ê¡âµŽÃkÑJc;•r´NŒ^ô¢¬µŠ ¦X€5¿.ØSyƒŠ– þ+'êIÃqV˜œ…â:¿r㚉#,Ùô#È ždèBZ£¾÷ÞÖ *R’*"7Ù¨ÝyÝçÓò¸—Ç=cîÍÚLIPsFŠ'Ñf> bôaöä -]fvÑÑ+QæAÁÔèâwdüOŒ¿[xìˆ"‡%ñÄS¦xõŠ~{×ÊpÒˆë¡õ|O -¿BÅÝÐÄÇâ/€G¾LÈã3hûÈ+N–g0Þ3²æ¸ËjäU±¯1‡ÿè¥~ø¦akœ·”Dìzq§»=÷U}.K¶˜Y碌à ֻ1?ÔÙCùŸ NÌŠ2Muµö–¸hŽë/åí4ÌÖÐG¤ã€m |Q]· -OaFþÁåÞ‹Åp4ò|ð¹ä¿dÒŠ=“fH1y¤äw&a%sA­Ï*¾ç'ËÞÇV¶jÓ_߶ã{ݬ¦ƒpæ@ã$lð÷¤c”¥+^4±á®P *óÏÕ$•²¾hš0P¤TŠpÓÿÏêÚ|Œ/‡‰dWÕVº£ÝQs&Å¥=*ÚìJa¾Bª´rÀ,°'‰£@jüe<ÃB½D! JÕ„Ü¥ÅYž·\?VVzÑ|½­ã!à£jIÒß5‘$ }+Ã>És$ß<}.Ìï)æ&:2&O‹Äò>mKOÔ‡1Aò5…Pã@© -xÔÅ@ØCõ¬ƒÛ1+,g­ØAªSpF¨Âñð+†ÿ: "[Ç .@€qÓ5t,GJ.ÔT'";ðÅ@_é,°Ã›Ù×·eã$<Æ8™•rÎP5• -=$AYÎ`-§‚C1$—ÉŒ› ¬èt©\jÑKŽÐ\D‘Ùµjé¥Ì?.™çB¨,ÆžVJÂZü(9ÂHêÜ¢³»FÂœY5› y…ÖÞSý)—“ÚÉs2¯‘0Ú¾‚œÉ61<œã&¬Cˆ.o¡øºŽÐc9€ýîWÄ”–dÞ\?G=€ÀV&’ôXŽ?Ye4ŸKw.e „º/›Ÿ ¦ -шC!Öý«î¶ ª¼Ž§—%¦ÎåvyúÈ|Ë–Rë¸ëÑâë©ötÆÜ/I¿EVÍà5AlÑ·XÊ!Í-íÀøëvEê šQðÀ6”„æNûh›†-´#iÄwGЀÑO§·JÎ}¶ÊùÊÚò™¨‘K¶ÛMéM¸P©¹Š‰VâUè2Ë8¿Fܶ]³Ü—ÒLÉj4mãpñ#Íx‹vlSŠQo]›#Õ#Í3ñ žw£Â¤kêÒÞɉQX|:©¦–RœíÄþ$´îÌ69¯ã ám¾lw=#,Z éIÝ3ZF«++Í–²¯+"ňUÙ-$°Â¶„„ÁÿH‰^yE3´„BP˜?ˆÍÛ«fñÕü&ÛIPS*rp©³7†Ös'® -ÿ²×Ȇn#à%¯ëMø/ndñ'ù¿J-ï‚Q͉ªãMË-½Z1*Šö|F:åµY¡´+çë‡ØLÂuhÂǖΨ°|Á¼Y—áûÝ÷é2HMšVîž:a§5qh~C{wW7x"”`›dþcF‰Øï ’£žV %v7”Mùv:MÄG=â@­ -ëQþkö隦ª%Α%Ö‹<«Ký‘ë˜q•&/ò—dÄÔ‘;òª…௽³Œ5kŽÅ¯‘m¾ÄÉS‰EmÏ€lÍ©m­'”´Š%ºÝ4q9ÞúгÉzJ™m¿A±!»±W‚KYf·¹ZÄK©BÝÛ -RËÙÍÂm*š¦­UÊÎÑxQ:ž7ëk5°2¥¿œ‘Ð6Ï8¢Mzê‡áñZ[Ålõô&éz#aE¿cB›Ê$=­95,ß?i2iCø‰ìy¢$ÿft0õwÓ" â¿,”¤š¾‹hCi‹@éÄ8q¹) @ç{Ý(µÍG}K¨U$¯ïÞ$ý””×0íÒWîc=^V_è0g¨‚’?Û]U -oSÔnp°#qþ·p®ÒßÐö Ó3˜6‹ÏÔ{·üÉ„ Ï``У6Õ–øA Ø榮ùå{ÀM°cþWHÄ.õvM Ÿ¨@ `4¦òÒdmY¯·i ×[¢ø¤co š‘ûàs™ÛÈ&ë2:Xx èÕÚös‘5Žd’’Ògû#tX…nnÿÓËçÿáU)ñ‰áG\ÁIìrš{òžÓc/\£]A„Ú•ÑcÐu0lª`¨ùUÇË©—¡Å—·dB“Ä€¾}aÆìawqòËq—¿ÈC…6¢"d›XÆÅ› ×bó]Ôì÷ðì««4ŪÁ͇ù.÷)~”ÑuÍÖïOÀ§íˆxË1$jœo &i•Ÿú I"aÐy\…Üv’¸*[Ñ5`Þmôzhê1íúíˆç…(lª -yµ‚ô£œþ[ gïI𬥦Påº,¾EHšJ¾z̘Z®Äoìõ¦k¹ûO3ƒè½ D&ò'à5÷îcÕCW¶…Å¡OKf^ÎTÕ/ñlíJ§ö±A­|6¬ þÿĬ`YüS@QÈ¿á†dEHºðÚ`ŒÙLä$Ý-bH¥3Ô•®þºSüMH7Iàb=Äae}ÆL*"Vô:­«ðÐá-õÂ<²þŸ7?†+›¸‡g„mJÛ -‚ „6Ùœ[°‚õœAñ#=š˜MdP'¬òV\'ÈÙC E4à« ©9\d{­ñ$eMqvƒ“¹¹bN6Õ«p–•E°È˜Œœ§$3c–ʨÇpRÆ]Z£<¥Ðt€ú*!'Ä›…À–4ÈÑÈa{K ¾£?J¾eRÓûraÀÎ&>6.å“ɯÜ*]Ì#ßO0¼ãË^ž»ÏN+k]üž¹¹1<«øÃÅ®ƒ*g×5]_$9Ï^6oMd§ÈGØð—âŸóèjô0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -endstream -endobj -189 0 obj << -/Type /Font -/Subtype /Type1 -/Encoding 539 0 R -/FirstChar 0 -/LastChar 110 -/Widths 540 0 R -/BaseFont /CJDSHV+CMSY10 -/FontDescriptor 187 0 R ->> endobj -187 0 obj << -/Ascent 750 -/CapHeight 683 -/Descent -194 -/FontName /CJDSHV+CMSY10 -/ItalicAngle -14.035 -/StemV 85 -/XHeight 431 -/FontBBox [-29 -960 1116 775] -/Flags 4 -/CharSet (/minus/bullet/greaterequal/propersubset/propersuperset/element/negationslash/Rfractur/union/braceleft/braceright/bar/backslash) -/FontFile 188 0 R ->> endobj -540 0 obj -[778 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 0 0 0 0 778 0 0 0 0 778 778 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 667 0 0 0 0 0 0 0 0 0 722 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 667 0 0 0 0 0 0 0 0 0 0 500 500 0 0 278 0 0 0 500 ] -endobj -539 0 obj << -/Type /Encoding -/Differences [ 0 /minus 1/.notdef 15/bullet 16/.notdef 21/greaterequal 22/.notdef 26/propersubset/propersuperset 28/.notdef 50/element 51/.notdef 54/negationslash 55/.notdef 60/Rfractur 61/.notdef 91/union 92/.notdef 102/braceleft/braceright 104/.notdef 106/bar 107/.notdef 110/backslash 111/.notdef] ->> endobj -185 0 obj << -/Length1 1315 -/Length2 8350 -/Length3 532 -/Length 10197 ->> -stream -%!PS-AdobeFont-1.1: CMMI10 1.100 -%%CreationDate: 1996 Jul 23 07:53:57 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /GLWPXW+CMMI10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 14 /delta put -dup 18 /theta put -dup 26 /rho put -dup 33 /omega put -dup 58 /period put -dup 59 /comma put -dup 61 /slash put -dup 62 /greater put -dup 65 /A put -dup 68 /D put -dup 69 /E put -dup 71 /G put -dup 73 /I put -dup 77 /M put -dup 78 /N put -dup 80 /P put -dup 82 /R put -dup 83 /S put -dup 86 /V put -dup 87 /W put -dup 97 /a put -dup 98 /b put -dup 101 /e put -dup 105 /i put -dup 106 /j put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -readonly def -/FontBBox{-32 -250 1048 750}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª)s™§„̾…´™;.ëÞ;Ôr·ÏTeò…ji«–íK­/df5à¶A|Ç{S/…ØÇ )¡šSïcë\^ÈŸÆÂm‰çÙäp·+ïÚ#õßv¾¯Lé17¢íŠ©×Öýó~kÍàÙ ˜d#å– -]Ÿ»L•eVèßËúìGo£oÙ¥È\šõþÙÂÝÒkÜ ™9‹ŸMÕ™=ü 0)xfáÍ -1›kÙXž9JS:6ÔV ™ =!™X>¹¸KMîãÑ)9ã!™ ÒI‚}–HWIUöª¡c©l=G¥e°ÂZ¿m>nÁ‡ä°Q‚k°Ð2=”1p·•%R`ùý%ò$ô]ûûÞ÷ÿ‹¿ïc{!®W+8›?v(+ë)Ì0ÓˆÇ!Yah“çtA?HÞ @‹ÆmÎ?á|¹øM X9Õ€Ö¨ˆ#Ù2 -é:ùm— ,MZ+²¸Ç’\Ex9YÄn<á¢ðêÄ¿‹›2^FC[Þ`¼T×+ȬµÀ£D¬‡]ǸFF£$¸oØãB!>;A\äT hŽÙÁÒxìh½|5úù«:6Òü;åÏ–UÇ·í§6~åƒkŽ.ìT*{8î¾K¬`yÐ8¬³ÇÉ'—dT|-Q—k«©K©†myñ9 •ª9°ð1 |½ôA¸ÅfŸr ¯(Kõ*)Æ%_ʬñtPû¢`.rY?¼¿Ânrnä®ù{v2¼O_5;\gþÒ>§R¤¥{ïñ×4‰_ -: áØã9pEz–~ÿ„öØGu E¸Ì[Ùn窙ÝÉài9ヽ¤u#=X­&>¿¯Â~J~П°ƒUöêtå0°t1Cò¨qs-bØ5±ŸÒÇýð„Õ 4AšÆG˧÷OE1Ü»Ú"®ê?»»@~ -ÌR½Æ ¢”ÌO“ë‹öÔ>›¨XÕO8‘ŠÈ' IVÕ‘ðTnPü¯¦ÛÐ ‘#õìÔ«3³ÛL®3z‰ŽÙ›oH9@ÉuDøˆêðËë JÀsÐf*¨+ ­5èx/…Jöl ÀþñÍÑdc!¹=2~SØŒ è%ú•ªW½q’›±ý§ ˒¯¹p½ s¸ÝFcà]@{âF»,Ì–:0ü -ÍZ^EÙ ûY‰;üøFŒpÜ'™÷*_°†ù*C]ËÔñ“«Òq+1Ÿ†Ä^mÜtùvÌüÍéß`Ö#Ô½Dצïå·=Ø.,µž »`CWÏt¾ ë U<ªA(>„…ÝÑbÎxk©Fã´ ŽÔ2Vaáu¾Oû"-¨’Fé UÈ/èIJÜpKâZˆ¿Wñý`»—cŠpÞCݪÇ`Í`Nmú\«G -üp¥¼ÏÿV³¿UX«ÍYm?q ƒ·òìjæöLœ}ö+:òR–žþ'˜ÂëëÏ:\LÐz -”ÜçÅŠeYè_góÌ #gª½|­:Œ I× ß{š¤6ÊCÀŒ*}VqƒGŽ(²)ѧ1ä2 fF\XnÅ(ÜV«½–<ÙÛú˜¡ä±öæÈgr”IpžõüKÊà921Ö6ÕY úŠ­Öþ¨æê)ßùvXýèýöØmK3–ÛÇp*{©oa¾v…&6 Æ.<Ã}mÏ¡–íi£ oxR˜Ò,z×`J«¸Ž!DÄ=¢es\%ÞQÒu•ÃÖ©Lß«õAPóƒž[9†JZ܃7Œ± pTIEj%[¤?³ØÓ•þôµ­€ê•6AË&Pt-àÐó¥ƒç#,Šo¹þ<›Ð8ŠÖî|¢ëg&ñ"ÑHóO ж¨‹sÉ°E(\®A´ØD.%]¨d1>‚ˆúîõcÛ@šˆJ%K_ T¼îs51H«<Ô¦,É~øíd(ðÿ¼„×Å(K£×o²9ÎóÀí;4?„ ŸÐÃ3ÁGg®F$õôTdóE ÓºŸ}Ì#ÉÉïmÇã«Óm½-î/Ò\ñ³?uG¤dï¢:ó"ÇþÑ’H+‡‚T•Üf#Tqªå Z¹L$éô„?Ë3-}¡nºN“—²‚ª}õ ͘–mP±í8sL/P½k,>Väb—9ù -º} —H”sù` -kE -Y怮Yo¾ÄQHívF£6+«ýì^¤@6ô€¥®Þ“|h‰¹`ó¨ìcrMïíÁ¨QW¤c¿j?~`¨ÿœoM†wóXß“…Þz5 -iÿ|ïDÒáQ’·G°Âzõ€˜â*6ù,± dÒqË(2¬Î^ôýŒï¤“Àux{ ÙØ…jä:<–ñ|·­0GÏ݈°Ë(¡Â×ιâx,ëñZB\1Ÿ4œž+!É -¨®æèÓÓDÃ…›ô¯F60NÛ¿Öc)!Bæ´ÌþK m·'°b ‘½xYïÖžÏÁ³5¡Wáܹ“Uz&Ì«¸5*ÏfÐY'P¦‰OÄUu×ky{ÇsXDËÅs};™û¤ÅÛãרè©sl(œ<½µZy,k"×¼cIÌÒZÏE¿`óUý‡™Ì÷×Á³2ßQrÎýÇU*^Í[èÇ hkvcÄ‘uœ¨Š¿ º ÉT7ÝdÄ™[r!Ì 8±!t Ù5X«ÇÿоäÄs…Oø­F™¼ÊtÛ¤â¶ÒL8n¡£Dó$r{é«T$v¼¤«¬ª<(8‹¢Õ›XI»ô_¤qÀ½?M!^ÐÑêÝÅU|Äs¼°„¡Õ×vª$µþ ƒðlm$ë»8œØtNå•f À‹Àª†Gl6Ý,,ëi4Rìi¡À.ݘ@œjipTÓ„Ÿ¯øvšæk¡¶µ½ü|×~w–Œ¥²l«,oy­¼s m¥.vçà¡óßT};»±Qa.Ó^yÁ{ÔI@“"`ùÝk~W V6u¦£u®ñ„¡)Ÿ“‚ÆjÁqÆ9lqÙf™=X³¾é®Dp÷™Êâþ³º:‹ú¶’,Ò„ 3íøÞ·8 msP˜•:<¡ŽÿFM:ÀñÉäߣ"Ú”¼“øGlõP†‚È«*Ó ÊŒl:ö€ŸCU¿9^½Uz²Rw¼vʵLË"ÆF.4„ϳ~«ÕÍŹ%^ºæDØ‚™ Œ„+ÀâÂäÔ?dêæ)~³%¨éû1ü¸š¦â¥e³Xd!xUhR#²Îg%bµ÷+ú%€"¸óa\üÌE8ÄSà††,¨ˆ±4Ðj¹áœÄF×­ö—9$ëØôZ§Á,è½ÈQ$ˆÜ±•m‹“ -ÊE˜9_ÕéÿLǸÀL$ÄyK¿fºKû|âk2î4ÚÖŽ§X{´ÎÙye½ -7Ô¯íHïÌqäÜdíùÃ-¤1–½ò›ñéò$½eÔT´ëîç¡ôÒ¡¿¸öù—•<ŸìøTÞ‡Œ/0¾‘R0¤Öß½wÓ÷TÃ9oi\ÎD`^Ïæî€!ôV6rÂηù[ºŒ„—³Ä-ã°ýÄÓ‚›kóÞ¡W\‡£3à‹&*ú~žñ -u-€}~1亂û³¤¢VÄÈᇤ$hVú;’áˆëQyûI¦ä3W suaúÒОÙ×UÑ£ƒH%6*!€´ðFcˆ|øñÔÚ³êv„ê¤Ìµ™ }×ã}ç  ØÝúÿ p²ßá–+ØDë¡Ô)Äë®êçí• %½‡>Æ̤ðθÿÂ~¿oEn& Dsñ(Ÿ YÙÖ§³Ñ¢ðwä÷‰gÑ” ºë‹ay|”aûIú -_?_2Å«®£³U}ÆlÎüÚïÜfcyÓa\~€P½2„]ªÓeùÛSÛÏ-陶 ¬çô9¦ vÓ`Øü”XþS)°¸žg£çÚÏ*iåjò¦6VeaÔBV¢¯…®­ 0ì|ÍÀÂÎ^†DVNñÜéYœÖ¼A;uoÂOØ xïy¾µËHo3øí«Ã·‚Z 9ÐÊéð(3àóS\úõ,Ø[ÓB©ªgºá´Ã¶ýÃ0xGÜÓòÇjœÂQ(ç¤ñâsLÓôQApQ^½Ä@(B¨8«˜GeØ2'¦ƒ0Á³úÃTj¿êäxm:ß ]HT¢ fEŠÞ„¥ð=%¼ÿ_—^ˆí­6Ò¿»9À¹T¹KI®V(/žê‹Â©*ií˜Â8¥N,Š|‘üÓ¦ n¸À?ƒá©nj˱#€¡±uJ¼S77T•òæîTZÞlôªnãf&[Õr¢âzæûMÉ:oýÚ÷A,ëß -Ïk¤"Wü¡UD.²B=E˜ -#QzâÀmú"â2v';W˜§³u-Pmóøñµl,"&L©¢yøÔ²8¿>ãrOÉokà£SÞD¯aÀm“ƒ«gÏ…_³YGtå˜"+.÷ËAkÆBý22MòtE3¶pɶ»4J·À¬œ -ÿ\m'È›Ë^£íµ6z¢„q»ìá3U-/núa:·þLŠèFxrÙ?£t8H%¹çho…Òt—W:öšgF° ‚ÐÙq{ÖãŸâ—TÖ(.Qþé¥k³cQ¦ßÄÊWOÂÇ8(pÛsAÑvïú¡Î%Œñ?¹0ØÐë×Ì"4à³X%W,M¡ÙºAà]ˆ6ôC4ô2ÚBTã(w+É,ʶ`¨b·‘œ7»üÇ -À‰Ì‰WRa ´$Â1¤'Ukç;+ûˆ>³¢`ìêT–èØ…“¤¯ó#xG*ʈ¸Ë¨ò9Ⱦ‘Šw4nC-5óãþic*tâˆÏ"ø<.é¥Ìj9½”h)/o¯^Ö*æ˜?Ä8ÓßÒzG7›â›ªÈƒõj›èåIÞrÿ‰1Î_íÄCðoäghÉOΛ"áòC HDx–%: -¢KÙËžÁè‹7=Y2ÊkãÝáÎtÃø >² f¸üäÇD\`åÜv„.äæ#×`5 ÍõL‹¼×Z™É4ó¹4wçÕ| m™ã -ô)‡Î4UüœíR¡I%a1ïçÕžöÃ[‚-¤Ëíuªe|iéÌߌt'Ñ’nL3½5gìÎÍU¥EÇ?aög-Ä4+Lün³kŸfáçÁ -U"`HE¦ÄΩ JqÑ~!œêèÙœ{i u›pÙЧ?6Ç&Ro˜Â±ºššóh6Ø".‘ÑEм íÖœ,fûµ ByÊÞ¾èRung¨ZÇc•Áì‡ Ì"‘p;¼syüŠ*“á¬ÞÁn ~ÚA•ÆØy)±T—¼†ò†sjB?Efxc…¨F ðkœ³ënPÝŽkÝG ©É3>»R -ðÊhýÑhÂkF24—ô4Ì[OÍrGMÁ”ç– &ì'¿«°›Áè®eoìÇ$ËÝÃ#”n ÕqaF¼ê T@9}áòÆ”)—2àAe9VO}3‡½T 2Rœ9cµºDBU¦~ï29 wº@2Òä3ôñ2Y÷W¦Rðõá`Ðt‡\¾÷ÝœY4ø"ŧ-6g/ÀWo‚QæØ5”eål‹ºè]_I°vu¶0 À½¾ÔKuï³ÄsרþÛLKgÞ’ “Am¢IšY„Éó£ïÞI}#ʸ;ÖEöiG˜ïåsZ™O¬V×ÿçÄ(HÖü -+7Ÿ·Õ~P´}J~“»µ3 j Å7K|/$)Šzë…t »…±Àž}±•aå^ŒÇÓ!ÃôJ¸Æt<íXÊÇu¹½½Kí[°WÄ gçúVfSÛòó?rs'„-Þƒ'L[>eúýïáõ!:²÷/&kö~†<9¦3K*àuÒdóIêßbR‚ì^Ó :Õ°ßÐœÔâe¢b©ç]$-Z;Þ,@(Ù‡oÝ$ëº/Ÿ!ÂÍåŽ]i—äú3†ÛÂX  ‡Q|t†{×Á€ À -š³É9–Î%ð©”Ø9P0–@~ÍÒ -Reœ'‚¬”ig:¶@ó?})®Mq¡²BÇL5.=¸~ã —ƒ«ÒT[£á2É¡¦¹èÿg¾ƒnâÞ/¦/ªoD4.à(‹1ŽZÑoWá§P ·Á8ø7õlø-”f&€ 7² •U­/ÐfñÐwKF>š­È½Éüs,Ú¦ÓÓVÑ)ù§ùF-ù,ËÙðÏØ^L'Ù¬'­(ž°OG‹ÿf«¨Ž{Ñ„ž¨r_”`¬­UNu._M)}&LEŽÁû…±òwi/oxÑü Dé*/ÓXní5è_¯ õZÔgfwÂïâ*ZéªGû",„Ú8o2wHe¿Ž«:yý¤Ñx~ .yºL%£8T¨ðó‰º.3mÂQ{b]Iêk5guTÌZYLz?=(øƒ*-åšxÑq+ìÁÞ ªiažôxŒnÝm‚5¯Z6L%ôàæ7·†låV/óKnp?¯†›½H˜aبmgwšÍöï]|ì•w~…ã¢ÌÉPvkôIß5 -š®0ëk,kP6Mš Ói€Ç‰¦DÈ÷j9]$Ì«•Hß[wtÖÜΖ>k>}åæ]‡µë¬ºØð5Eîʶ”ò™Âb<²Ëz3M|uÇ÷ÿaØ—‡ så ë¤8¢Dcv´–2”I^g­ÄÂEˇexšÜ¦‡£yÖé›.Þ>Ñu¶k¦d£ÍÁ€~ûŽ}ÆŸ°®EçÞìC ËôÝÇÂœÊ -’¦Ç»NÛkœš*~TÜäš¡ëZ?f9øR7}ö#‹ªÑ°Ò‰IÜþ"äöF££V‡“J7#|Ù©lJÎ7Áé3I+ ;‘L<ˆKËa7U „ -É”B“³$)Í»ïB&:n¯>®eڄ‘‚x.ÕZ IJÏÈÙ4‘ ÈFAªxIMÒÃ6¸l"Ê!¿K˜Yýº››‹3е‚Øë?â,@P:¬„ýÖ+¬–!.vveì‚þþ¶‡;¦§Éô@zé¹ÂÔÛə󆠽µ*‹ð‘b ×–È¡KOÔ±m¤¨7DýH{¤à–‹' ¹ÑßÐL#¥lb]VÅKã—ÅøÛBÐ"WFmú¹rÀ`l0IM³”»±£SÍ°û» -zø×r‹rjÀš–pä ăîÎ-“(ôb½y5½ž{ÍÆ;´ñÄÅÒˆ¹Ñ(|zˆà!µ„–1uw“^+‰‹R¦¶i4™ˆˆOƬ†5¬P2`Ž„ó§V• -$ÛŒúd.ÃÏ&›ˆ‚ÒÄ£ÖsÅìâÑ(b66;pó)´ M©‚謎 U‘lõ“Z¯ùXšyìûzO‘ù;±#Î -á²@220'£°n3àd­˜ /Yy€–hêRëžZ#@ïÞ¥ýX=ž¦«¸USç·ÑAþ¸e/~Aê5®š|KÔ}ÇeYMºÆf¼_àøKDÓºŠd•*ÝÖ£éj.¥cqŽ<§,ô¸ð¤\Y?¾¾Ëã2Ý,ÚPæÂ(I$¥Ž\ûžÚ'¤¦†÷Ìã4\ÈÃ㟋`ÞLù¹¶ ÙýyÆG Ã+À/ó'œôXÍz–n¦Ý‹xó‘ˆTÈ_ë»Ó×ÄãnWCôE: Ñu)‚ߎNSñò­ÞP›<䈌±9Ó* ö’«ÚŒâügÂXYæζ–2äíªN5èVOÈóp3ù”ßBcÉPiq,ǧýˆ3oIogùüâ…q½sï–—W8»Ç<ÅžÈå`Õ+ëw¿ºå (D²ê(\AûJ7¢:=Á©þ6ÂhŽ¯ž#ü@ÙŪÿPµ›%.Khk f>ŽÍ?-‘/‚éÁ§V”ŽzrF<ðXíŸï}ßÁÕµóhr.Ðûæát—EÎnˆØE¦Z–)|* -.”eØÂrwù&¿~8ÖÝ×*œŒÇÚ>eÓ•¼ÄÎPÐ`ŧgz:Y†U´ xr¾p?Eµ÷iý€°tš Ò\„&UË>SqcuGU«Ží•xÇ2²*£hÆëV9oÍ€è³*±ZT¸Päãy¯ó~ÕPÖÛ5Ç­ˆÎ“‡²8ûª±Â -›·ÖC=jz¾°.ÕpSr¨òA¿U¡¾Pb“EMçwvYµc$¿ÉÞsá;}M·GO,ÀRÉfÜKµk†Ï.áZͲ] ¦G§zÊÂR%Ð=–ÞŒyŽä.LŒ¥·H6Ç´>6UbñÏjæðâ>Q¯l‰Þ_î¥qd6Ý»3à³ -}HЃÀ›Ï†æã KrøR¦¹„,h›‘÷¾çèigQœû¯-‘Üx!|+XìZ´‰yÏB¦.ƒâ8„íîðr^“hóÚ¡)ô”Á}Ìé€æň*á¤UcW[ÀYØö}Àóðï¯aÿb7°îöc£b ÷¼ ߈¦$qæ½rbÂD¿6‚¨ä$'¸8+x}jØ3kÚ71“ö94Ͻ=À†}|¿BòŒèQr4ù£f žj¶p¬sûXMü§ØMq[>õ»€T`û¡T<³žÑÙýÎ;ü‰ëàg“ðu†gˆûÛ1KÚQýjýOÖ‚ƒÕBWÆ]¼ÀáÈ;Ýر†ýQ§í+ý£Zæz³¿;>~ÁS‹•Ï'3¥ò3Ö‚ÇÎÖ0µø÷5X@ÙΖ‘–T“Á~AÝÞ¹Á·ÂõÈÞÁlô;ÐÄæSx§6-œªâTîYã>xùC«S,ÉJ&vÇ êìøâ´Ôe´ÇhÅÐX-W{)&¾v~J¡ZY½%bµï^×ÛP)aZ')zþ&ÎŽì‘°ù&ŽJÚ:yÇ—êä ™QÝð}ɵì'_Úåþ¬b¢'DDb+Œ1˜tP¸XzNårØh·C¾(ÿ‹5ÿè¼l˯9^‚>m„óåáù^©ño(ñŒ†Ç¨¸I-*9BC—¶L}OÒöÛvËÊÓà]MGI/Òo ñõ‡< ¶/ÇéÝðP3·ú©!™oöá@Â3ˆ]`ëåªÌ¡£»×%Qɦģ#²Ëúß_RYˆÌÙuÑú÷_&jÄœîϲóñáž© KøØ)¥œŠ5v¸ÚÆ[›)67ŒR¤Æøi’uÙ8*¦3ÙH˜ý®ÚÉöéþ js€”2ZBµue!‰ÈMóø‚<Þ¨íÛ±Jº%aœì†@-õNð˜^…Á!!KIJ“üûŽ‚7^‡¯|VÖT Ðà&‘OŠ•U†XŒ’QÜå{ 8§ºû¬Í'Yþ¸A3•œ¦š]~Îëφ9³SPy~¿ótö­K^É$®dkXuäÙ7b+ÉuØò¸ï?7>l< ÷©ñž–¢øƒ C:ÑgÛu§ÙpÆÂàÌ*UûìAóTˆµ¾ðeƒŽ-æÌyt,©É¢{Lt[«®:ë¶ ;™ ÷Dì•Ù¼W¸ðÀ/J|»¤BØ|æ»==óL íÇ¡ò@È>ù™rÕ/Ûð¦Wœõãc2_¸Z£rŽûsY ï:¿—œKÃÆ0Ç쎓—½Ø ÇxÖ´C2°‘ÆÐä†ç|Lu<»4\ˆgªdhQ“`âT.HgyçÅѤk´¿=€ …†_sÿh!ðߥÛ-øo'§5ZCÑVcADšË«b§©‚pzmg7ܺÎ\®~÷Ež,Çwa’ÍDçKÛùÀ…íæä?]r]Ë€1"_Ž«¹EMÃÔ‰ÏÇîïëW)¢;D(†…œÙ5Lbc5!L°V7j²j/üOôÇÃRÄ\~ùèÐÒfò/ïW°­°*ë}ÀVÆš;uJþ”*ë]t0—§Þ aÓ¦Áª“•^kûØ«Ê=7åüDr…oAü=À<`µˆ^0´TåAå€@‚,â¥ë°$º†ð '942®8Ñ;ðd…,ñ‚D“u–MIXC³ÍüÁÑÖ£±Â–i~o&'”ÚÝ•ã áig™ Ñ0êL¿À³()C4ÞÀ”B”D~º¡N ×` &”©fÞvŸÒ$ÕkÑ£—Cx(ç],?Gœ)ñk‰ÂIº¸¼…»ÌÖ$Å=X40WÇÏ‹9X¨Ã±ëq9ªœÙ¦T‰]GÚ¯‰"þ#ÜrVálý6r´Fû&Ö à§ÃµaÐwœa]K8¨Š„Fe¤^qõq€Uó«vÓû>—‹ ÓÀ"x¬Byñ•uzR2ö9 ‚ M@ï,ăS\×~o<½ŽKVÇ›üûÉýŠx& ³XGTdøèA@PHŒ´Œ:IÌmô>æIºåà 7Ú½vS¼Š÷Ÿ1¹&ð…Ÿ813³ÛûMÉ#EL Âœ€I¿ºq½åê[úLsmw_ßRŸo™xRÔ)Ž˜#w3PN*¨°©.·Ùô3ÅÖ@kÙÀ?M°'~Ô=Sz«³6öQ0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -endstream -endobj -186 0 obj << -/Type /Font -/Subtype /Type1 -/Encoding 541 0 R -/FirstChar 14 -/LastChar 122 -/Widths 542 0 R -/BaseFont /GLWPXW+CMMI10 -/FontDescriptor 184 0 R ->> endobj -184 0 obj << -/Ascent 694 -/CapHeight 683 -/Descent -194 -/FontName /GLWPXW+CMMI10 -/ItalicAngle -14.04 -/StemV 72 -/XHeight 431 -/FontBBox [-32 -250 1048 750] -/Flags 4 -/CharSet (/delta/theta/rho/omega/period/comma/slash/greater/A/D/E/G/I/M/N/P/R/S/V/W/a/b/e/i/j/l/m/n/o/p/r/s/t/v/w/x/y/z) -/FontFile 185 0 R ->> endobj -542 0 obj -[444 0 0 0 469 0 0 0 0 0 0 0 517 0 0 0 0 0 0 622 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 278 0 500 778 0 0 750 0 0 828 738 0 786 0 440 0 0 0 970 803 0 642 0 759 613 0 0 583 944 0 0 0 0 0 0 0 0 0 529 429 0 0 466 0 0 0 345 412 0 298 878 600 485 503 0 451 469 361 0 485 716 572 490 465 ] -endobj -541 0 obj << -/Type /Encoding -/Differences [ 0 /.notdef 14/delta 15/.notdef 18/theta 19/.notdef 26/rho 27/.notdef 33/omega 34/.notdef 58/period/comma 60/.notdef 61/slash/greater 63/.notdef 65/A 66/.notdef 68/D/E 70/.notdef 71/G 72/.notdef 73/I 74/.notdef 77/M/N 79/.notdef 80/P 81/.notdef 82/R/S 84/.notdef 86/V/W 88/.notdef 97/a/b 99/.notdef 101/e 102/.notdef 105/i/j 107/.notdef 108/l/m/n/o/p 113/.notdef 114/r/s/t 117/.notdef 118/v/w/x/y/z 123/.notdef] ->> endobj -180 0 obj << -/Length1 1707 -/Length2 14054 -/Length3 532 -/Length 16293 ->> -stream -%!PS-AdobeFont-1.1: CMTI10 1.00B -%%CreationDate: 1992 Feb 19 19:56:16 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMTI10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /KEGOFM+CMTI10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 11 /ff put -dup 12 /fi put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 56 /eight put -dup 57 /nine put -dup 58 /colon put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -readonly def -/FontBBox{-163 -250 1146 969}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª)s™§„̾…´™;.ëÞ;Ôr·ÏTeò…ji«–íK­/df5à¶A|Ç{S/…ØÇ )¡šSïcë\^ÈŸÆÂm‰çÙäp·+ïÚ#õßv¾¯Lé17¢íŠ©×Öýó~kÍàÙ ˜d#å– -]Ÿ»L•eVèßËúìGo£oÙ¥È\šõþÙÂÝÒkÜ ™9‹ŸMÕ™=ü 0)xfáÍ -1›kÙXž9Hÿ°´ç!.ÉvÖP™ØN 7§§qÃjÒj7!ì6CžìàÉ«T´w.]Ê‚ÐÔ¬Çô/´“ª£¿JÖìá†1]¾œýËèÓè0'Í:ú Ôf¨èÊqdÏU³2úÔ4‚tÔ¡Ë?@Ë^g+‚ Øþ0ùð[ðõµÌ -K–îT•B/ºU¾é¿ÙFM˜zÄÒ7Âú† .UÎ{7‚£KÂ.=ãUÙ¯ñžI ŽC¸^ì訹…ƒ$ÒO7Ûù—-tæìG„rzÀ œJ:ÓÚ"½ia~ -ÚõT"ò*Ê^MÍMùüч¥f·ûf0EM ÖÆÅ -z8uÆËøìwió*?ÁÀrºÞÉw”Ôé5(*5nZœÙ«Ø -Ä4*RƒäX§&’RôT»dR³žÕM3m ’ŽœÑ«&­ƒë ž.ÇP¢d8;]»F |H!µòÉ%Té ã[-¿Í˜€šŽÉü‘Þž †E|p¬°Vëù$MÀ¥»ÔUá]n1€1RÏP°¿} -dó¡‚ -í¼.{®µIþQŒ7™Æà‰µÕÖ^N-+C ßú#̲]•\MØ…1 -pk2 -²\t,o)•2TúTÚ®æÔw‡}¼ÒŽšµv°êqý `×;líSãgs3c-ðh®ðþ}ûW9;Ú¤9¦¤Ã–ø`2©€ êá${}è;;ämò‰…˜ÿ^l¦•1'C*–~OÔÝ`ÖäšXúUnó0‘xµ|§cÏɾì'iD½ê%W‰ïNÍáêCîÛ•Uô.ÝÏ9®R*ÂÜR?nìLÊâW’·ˆs/[µÌç趡¡Û†±ê8ˆ>Hêµ@#íÙ»”çx î¥w­ªžf«}†´ ažyòBÏRæ¬ ®C1|P|Û'êŠrÔèÙæ,˜ß°IÇŠÑU`ÎD£•½kUQe ]A©ÕmÃ\‚"Gm¸‰F”O½ƒ À)2rIuW‚\ñSøâWäš,'Ëv¾ÙÏdy]eqXH0#~èZ²9À…±|pÅžäPæO£HŠ¯au`öÎþ©C—Ñï©àbÇ鬅<Êç=ï?t8é!½Ô-~œC0¯VŸØY-™¤ð…¢aht×`õrxK[3ÍÏ,Øðf @Ñ=Ê]ëw˜G2C#ÜŽŒ»þƒd‡ô5BYò¼I·Wu8]æµo\ Êà!~Å}SªJÿZÝ€$€ôªäc¼„ëýÈÖÔ̪÷…OàJŸ.ãkÓ0ÃFÁ¯‰)Lþ0GÉ´— MÚº45€óŸÙ’Èž‚““ŒÒ1–—•lÞÖ•ñ(4ô݃hæ‘8?CêLßÅ7ô¡ˆHã·H¢Ç·ähÂ+ À÷}$ âå¾DO.¥£ËÀZkJ[G¢tº×›å?T<´R¶Ê~s/Õ5+OSƒ6´5êPHMq¿ÒêhqýÏ|?"º¬x¦ÇVÓ4ï9"CœÒTaëüÒ¬p­c|¨¼Ì ÅCñ‡*B ;²t@þ^ä踦Lõ²-äL€©ËÞ œ>‰c»¶p˜À¬{ŽåÓönRÆ·¤½Ö›•WHÌWþÁŽÖ%Ї8Þ¸¨§Ôd -ë©7áßó®Pep¹_»¹=Š¢Rü‘(`9×p+²Ù+9+¦–†@dè˜W–„œ®‘¿óÍÐ4Ã…›5Á]—Ä•¬ÛóíB⯞ž¤ó¾dPkbÜ•ª¯æ'm4°v ¾šîLδS×*0\-ªÛJœUrƒ´ˆÎ%‡'–Túq~Í„\5ïËO?ƯûE6·¬Œ"ÑAØbe(§eSd87mäQ—ð—êïÑX7´I±R*tGPz%x¼¢¶!üvxJ+Þ#}ž€·’A|›?§­qIH¹ŒHÔÏje®6h2â†[›ˆãrò€"lŒË¦ü˜˜Ù1צþœöAf€Z§¢ÍGn懗¼Ü{“]Ô}%¶ÿ,ËÆŸ¹ñõ!@c©ÛÊÏ¿æ¹iù¡ Éðf&·ç€Œ]é ˆ ÑÔx¬¶RŽs;ò›¢AZÃÑ ³;åS:ÖÜÂÒ|$è8Hý*\”EîÏ•¥/Šž—ëîj=F~l’àRü›’¯ë‰!꿸dïq4*x(B®ù±¿"ZÑYâó4ãRN˜Þ óf²8«X»W^Úe¦Å„ïýiZNñ'Y¯ -Ç :1@ÉH9D0kq'S”§«·u‚‹¨|®#Η<º¸{¯8˜…Ýõt…Øž#DfQ_4¶­øpC±ß&òŠ‹ÔùÅD40<Äxì+´X²Ûð¼Ì%_o"UK zÄ¿•nûÒê­Vç{tÁ)ûí¬<ðhÛê|-¨´çÄQñV<$Ò¼½­ßÔY™gÓ²XqCx@µÞ…µ¾ÜñÉ2›Ð[¼¥›÷«¶ ƒ«9ðî‰c@êÊQ¾= œFeÛrlµZiúûþ× -ò  q5\ÊÑ‘pJyÓe3äuóq\»²IW‰Lf칯ª”ÒϯãW¾€X@•Ð ‚´Z¿—a물™È¾¼ô73Ÿ‹i×#ÒARl°ùóU þ¿ÏkêiR qÒllçŠ CD‘ŧ–_˜4-»qôþôã´xÜM’^C`¢Úå³Г76û»^h\^VÁ¦6^¢Ø¥Ô, é´Øä,ÅD¼GÓœ %“ÞÂOJn±MeeÔ1Ä}¤>à9o£‹ZÀ¨üBéÔ•œöñV4¹*š2÷t‘ë›ö -ÉÓ„/’SSËë¼—³%ž¦˜ÁÄÄ™whÂtB*úžmÂtÛå¸X>aO ˜Z»Öbž³‘âc&¨ŒsèYrw^&µe¿<ƒOŒrfŽáG#4‚U0†gÏÝ£ºÙCÔñW£ë‡8¿8òÅÉõÊå[Y¦|ÝsG¸n}³gíž‘NÑóùï .to²[P¦jFMü ×Æë…Zý°hFØ­üÓ).¾Â¯}·N€´£õ…ƒŽuL ‘û<ªSœp=ÝûB*½ùã|¤4Ï:(Û‹æÑO YºˆÂˆ„¢üíü+Õ^„*ûûë)y‹-/ÔÜíRw<—Bï¢ß8óÿûǹþAò¹ÏòYñëupèc_âëµÀ¼ÿ´E‚UÏQçÿÂÀðØ?¹)öòèé‡.†}D†Á" -«ì‹?·¶èÍÀÛAï6<’:õ5åÒ&¤¸…µ…Ö!¤2tóôu,]jÛ;@¼UÈ%­ÖÊ«%ár -=£:máq”ß=Æ̺Á¸#„¿ûƒ³€ÁÓÑ!ü¦#NtyôNkpÚŠÀ\º—‹õxàB»Þ±ú¡FNJꆒþ­fuáÁ £¾¦ý}UX%¯Û‹s“9+1+7W‚îð}Ã/m¹ú΋½Wk›ˆÓ@ Ô›ßŸ8`™hÚ±¨•üPˆ×XÇYþâ%eG«†DÒB¥Öü³Íøµˆ'PÀ7Ág`ì2v{¹ídLí$Z ³O§RíÍ X4€óMEñÿûp+¡Ûݲ@ôaT<4>˜»ÿÎ( 5Hì$!›òÞ(xJ­M P¸älºà†Ëy¾ëô€/6q¯c´è2Po§i²±½Ö¬c)ÎmX‡þŒ=^WèÊ“(Š“*ÖcKœe£žêqª^zyü¤áZ*¼:@¼ˆw¹øžö0ÿ€ù㢇³ˆ)_¬¼]?|v×l·üŽI·úÞy¸âüJ±;4Â5ÿ¢ü„ 71²:l¥.=êcôS(ä›CbÉ*â×Y³5¾²8µœ%DÜ<:TÛD$SÅÚ*o•=T5 Îç÷ÛòLÛ¾CÓ¶7ž•«‡;.tBÛ]þ±j;£vU‹C¿’zPÐÅaÿœF>v±b5tz7¡ÞHÔ‡µ—ÿ„žU¹Ž^¸ñÀ‘g@²§¬& -iOì{ˆ–¸ã£Ò&Æ3oñ‘ʇÒ1j6¯*‚˜37êAÙì^sº^P ®ŸIg0Ï6×Yþ»Ï:·—¸ ihî–¦\›öÐfoÖjH‚©ØNkÍ£$ ½xª+¿ é×ëX5‰Y)n¸Ù3N -aBxÌž¿Èû´é„?1š"^Ë ™È‹!Óý#°ó -Ô¡{“‚ëØ#ªöU¹Ó5À¼88®)[üïIÇ _7ö¤¹½àXø)n cá’M•tÔÄ#¿#Ž*)ä ê6iãêÁ’ÊÛ‹¡ åÚÛ‚Gb*×kßø°‚Ô»˜Qäç -Ì>’+9û ×’™ï+äH¹\¯ã†ãšüóño;Â.ž7`Žõ+He¤ì ·Í'mg>å".‹V7É!å=»€ó°ÿþ¿qýãýšlÝ7„ξìÒ»¾>äYÑ@„P\(IÜŸ1’“€ó:°ËÁ ÌöÃ9¿¥ý>í¨IŠsÿ†³ å„ ¯~ÏŠWuSŪ®|a+â‚¥K¥?öê 'jvà‘€6¬;Å`xþ(ÓT>Ôš6aH4 ¤Óˆ0Kœ[“ Ú(uã¾ÖO\hT3^ýývÆ-ü4’°@™Wï؈ÎqWq“¬Á)û'ìü4™í¾}¦PŒÍ¾€Òþ‘õâêï?˜/DÙù-}R~ gœ}³˜¿ÍBÈàÚéVhôٽǻ²%#ámO}6%U€B#lÛ˜§£Tš_•p[MÎ9¥Î‚MGr -ßgü1@NF!vÓ>ýLK¿²“ë`Š¨0Õ%3¹–ìSy)RXô˜0B7BK`3[eÆ{ÁÊcš!ì ×/ØTÝÖÞ[,S QlþÑ¢Ü*ö*ã™ÂOø[, ãø£¶øÇ^ã1ãT2^] îŸÊà.[„Lýy—öáPâ-H¬YxÍ3:ÿ…X@«™>x„惼Q`»Óº´ö~¤wrĵ½‚œ:õoŸ’¢0X‚8ªG9ͬõb®•)$nW­ «ëL‘4ÕÒ~˜ˆT-+A@Õg~»²™i ýQ J%|ë}¢€0'A»âzøUؼD·›ËD`I×`°Á$~t=rkí醌yl;h?róǬäõß“giòºGê)}ß+ @cdo] š“ bˆꄆì™Ö_×t³Œ0¸Ç£ŠøŒâÙ:OÎÕ¦"‚˜9\Iž.l«á°Ä’­Ôþ^&“¬TB¶@ˆ–öÔȄé§^Ùئ93Ì’£®6ÜÜý‚±åi"þSa̺1¡à -k$6@i0f.0=C5pð€÷bR n)ªüíÃô@—ŠG+ŸÚooWçܳÉŽ»eh5/H-š|ÝÒ˜¥z• /aÛ— 9ÏÅAëÚá~˜ï?þf<'«fœKõ–H7Œ(þ@Q 6–’?ïå¤6{ƒL(§+¦zDxôk=í¦aÌO²cöý* œ¼mÔâSäïý‡0 -KŽÖNÍyÚÒkH˜Êö´räx¶’Tc¢ŸÈ[šq ý9”šãæ%]Œi'Û¢äß R´ Š3ûr#SÎœBç}ú‚ZÛö•Q•¾6ñûH -Ñ›C£Ñ¼µT*§·±ƒ¾B£ÅLºàÙν¥èRô$?:¤R’*YP×m…ðÿybï‰í³&×Ëa‰(5±ú8Ò—ëÞp—ƒœÝþ1ÑÊ&`D+Ó'$e±( ŸŸ¾¯{šý:—š\.@Š#‚Ý\ÍЙs×ñù‘ï錃% £u;G‘Y% ºa“ßG‚ Só¤ð/AUrß8ÉV½RZ?îùT†³ù›¸¬T™*hVÇr J FØÚ0 §ØŸº—êmÿÉ“á‚gÖX9w4ÕeðÚöŽ+.ÀøP…ž -¥L$Ô͇}Ãc¢Uïv”?“fòþn@SÆÏâB$ÂÏÏNÈc‰…ˆäö cî·5$—x“†²-3‡,¬>h…"1®‚ŸÐu{dxI†ÇIø·Œ!Ý ¶ã}ôA¶ÇÒ Í€„ qÆmp¤µ˜¹¡T ŒIS5‰áìæ¥Z`_H0“‘ª³ÑéÌöè#Ì…“;©±ÖJšëŠÊ˜Hv¶.TGž°,}H.œÿà*½XœÌi»žPøp ºnM^:}ifṲ̂_Oñªú—ÂhûEð¦h>qÜÜÎ{¢ÈL°ÈY©Rz Óñ8â/ ›sîÄ«9ïˆuâÂ&=³J¼¹¡ƒÜÑäóÖ¢¦8Ñø8ÚWo»,´)µµvöLÎ ¥…Ë„'­Ô]×^U<dk‹.—K^}õ@þd½ÒÖþúº:sF»K%+šlvŒ_ÁÉWÑI]kcý¬{WU%*¨†€EšÙŽG}.kAH0ß¾Óbq‘¯ûäF®)kðÕïèÒò6óh!C©6¥öÙ1ûEÊ3¦Ö*<¡æ¹Y «à -‰Ùî•yÆcü¡•¿$š•lšÈHa>1AP%u»'ezÎHÐÓ¢O„¡¨F-ùŽË÷¬ˆ4t¡›¹ÈíoPøZêùéö¶‘íšÜ‹w¸@Lû{ ÂË`bÂiKà äÝ]z6ž”¡2h ük.‡’2ÌÃ¥bÞ …¤ãØ‹ô˜"!Å2Ó`IƒùšeŠ¶(>9Â5[Ù>¯ÇY–Ùû…sl~:”©¦L§‚ÿ*Ùv³{ÍÅ€Œxbp(úoÔ°}(î0oÞCaïÑêsl,ÙŠX¤·éŒèÛfCÿ’²S}Nô\…ì1ëœ~C8ÏôAYù.F÷æÛt(p­¨*5x ÞJø€5˜ÞÃ1’òHÞv2 þ¯cž(mA¸«ÌM…Õ319…Ïõ;‡vP”6hC>O ⇽;+_ø%Kê»`ž03Œ!'#›: ³®ëwË$…1&‘i«NN1H%~K𡜫ß/ÔµÒZ¼Ójjá»@¯±ï,!ÜH¿!Êrä±Î&U×0ÚŽÞe”ã,7 Íÿëdûë / -‹ì7¸!c†p9 -g¾±i½2» ÊÿXî×0¥c(ÏÒ2&M ¯5×®Ê++ååu;«×6ŸsN$_8PÇÎ1òä—ÝäJhâ OJzTd.nþ E‰1^§‡k×ý|h ûvÆãK3xŽ'&8ÚöAÒT]Jý,x™{C…vµÙç`׃PûcäÞ‡²›pÈš–̆3½ŸZŸº=Ô¸}…ØÕlUï÷o쵉²›—ã< ÷Ñ’T›ø¦Æ«÷ ³$” U){ÎñXßØ0ç),ä -0=ôì×D)²§7UAëhU¤¾ˆØ„­ŠV`“i‹ŠTÛüÓÖ«D>ò  ÇJ½¡S'@­¾êßð&Ýߨý„6æ ÕÊéY§Q’.¤s­ãFH±,È(Qýƒo>x›>AèuHIâþ£pŽ…ˆ7õÓ!2Êa®¹T†8 è.Ïg{ò}DÀ›¤¶|ÅqfŽl€ôô×>ÆÅDw_’¥À ðZù#Æç5GÖZªÕ~úcÁ%7Þ©Z!~a^ÏgÜטÐÚH/ºë+1}µ3=^Ä1¤~(0{;2€D6¶ŠJˆhÃïEµTclFwÛ“rÎ÷TTÜûWg1YyÀŒ´êíqEƒá5ÁaËð#/!OÓæ¥o¥}º0Ô…R¹‰5Ʋvëtè@f“¦F -ë‡0‡ˆõÇéxâÆ œÑÊKqÐÎ4øÜeþPQ0}GÍ7ñÞã!uyIGe(m?¼Æã½%7–:ÝÓ„}Ü„•·ÏŒ’L9Æ1ÆLÏÎ׊-“;ÉeN¹è¿À«YдØô£[•NÈ7e•ˆ×…y„ùº;‚=JõTMû¨«žãa¦X"øõåç>1WÓ×àºÓNó]¬mâ×tL¹0TÇBKHÎòVbíÒí§ƒ¥eÌæ°at‰mˆ£”ªr§úá$ÍøvöñvGßnq׫^>ÅâÆ­ÕzmŽ,•××Ì<Ì_ÓÖyŒ†Û©k]¨ç¸è6[Š5À<ü°HÈ@=o÷ÿ„çˆ2ïqIÃ8údŒ:1—Rz¸ÖÏ÷+=ï R#។NÒUè\yàVx}¥˜;Áƒ[[{û-˜³8´ _À>¤ýwº…RgÎl½™dX«×ï¦sCC‡tWïÝù So9ѧŽ„>X¡o;_V—ÜÕ7x½¨îêÎú¹ïô  {»éhL,W½Ð(RÍ,ÇH`M~‘­I™-ádKy-ØBTwŸIfcÜØÞƒõ-œØ“u£Ïl½þȉ³Ãåœ÷×EX×ÎyÐÎÕ‰+ozPõþ:R,#— ÂÔüPçO~½±¶Âh©”Ÿ8™tVÒ~.ÍR¬ä¹ £ ¬E²?Á¢uAïëé >´ÀU¼,0'ò¿'Ñ7Sý¢è‡½a$üŽ3© ÷ŸÑOêSlOšF´ -ŠykBçû}L1ìÞË>ëÃÊ«ËGX£In%¯lCeõÎA.(Ý@£Y™jóFŠbåÍÒ–)ù%ž,µ¡`ˆ…RÛ‡°£3Ôë€÷óˆlÓj:•J@xÛPQ¶_Û® ÏŠ¤Ýâ·5ˆ'ñ\iEA³¹â<÷%·Å=¢…ÐÀR3džß¿0ŽôqѨï„~÷KómKõ˜ÒÆ0!eŽÊᄃgq4’ÆŒ: Ü¡.@¥©–·¬‰Èu%}ó  _—@æÈ|e^Š»cÏí˜|ª2•MVDþt€¹ÇÎ˜ï• QÊhCˆk-2 £¨ë®•{€LŽÙöÆᘠ%  lÔOºbvá>ÙúF|˜Ýµ\·RÞ3Û‡8"¯ ú$©’™+zâ|--2t¨áÏfá‘‹öuÐænE™üÕ׳»w,eÂ<0:=0Ô(ò—ÁâþƒàQ*|Lt.2ûƒš³*pë‘S,¹fë+%J[Ë‘ -½d'-+ˆ1|cŸu÷z`ü÷NóL ÉEŠäƒÊç›I»A|A+øî¢Ôÿ&\¦ê}À&yŽmë÷<æÆòµ‚Ï] _À×að0\¤#çŽùY4ÀŠ¬z „ÎÔ/—¦k2Ø]?i -Ž}–^¹/2˜mšoeÄâáÐuõži¬Ýšz\Ï9ýUŠ¨gÆŠ£|Æw¢mÐH]5ßÜ#žfW_òD.sh“fùÛ…ÎcÚ\ÿ˜ãe`0t™lŨG®.f¶ &ÕòÑ7úE‹šòÓ– Âÿî÷’ƒÇ:Àá²Û&_¼´?Š?Ö,› f®Éç<fêNªúc×Ç…U1ÙH]¤ï]¾±O=mÆü‹ÕÙ$„ØÇ°§gÕ0߇ @ˆõY­Tˆq\Øí½ÔÙ1á×4èµæŸäÊ?ù}¨²£jõ}¡Ã¼n…J 0¥ rŸGž ÛÿŒ­€Ž žf²GšVþ,TÜ·ñk}<úëÃ3Ze„`ƒoÊsP}ãÄË7N X†@geçÆê&|¶Ôë­  n穱QÑBâ+t«ù' ÿÂùí0Í }X•”£ïë¨8Yd4L#fÆE9äÞ/½rºÂ‹ŸD+¬š08,”ï_ZQ1ÈèÝ]™æQbþxè©ëMÔSuëIÎÄC/•…*(¬TÖ ŽÆÄ&(/´ØjõËjæýNb8òûU çµ'«S­hVÆnj[‡œåÚ>ÜâÊC5€ð·åῪh«š ÏcX_H‰;€Þ ’Éh8'FíÍ<ëì!ÞL•äÿ±/ª§²±<ÜÛåÀÎÞxÍLVæ;ÿ¬^Ü–ö*”iéVø•I¿Æ]êä‚lÑdã°‰„5+@ -(o×ÀÙš›DWÜy¦Þ0‘°~†îSwtº3BaYi>m%ÝŠ| IÉîO’°©e×Z…zÚ¹— ¾Ô Fp™Ù=¬7© ŠõòΡ…Öoo×IÉ‘¦)-÷lV²Áüèw› ÏͨÚt™U¹ 15I²+O¥ÉýlJULæPà ì>¬Ò6еÿêAì˜G܈=òÅõIyF´€° ®Á-½êAé\g[&îÑ¿>± -S6éÔ'ÿ0<¾ïDCA  «Ú7êWé¶1À‹pb¦ÏS +­7èÐ¥>Ä€™gwJͬ–¶™îŒâÛú îm ó¶¯yô¬RbáyðÂ͹RõWØwòxþëÁ«¬3ø"RàX>$·˜ÏYOfVM}HO;×sH_—?~lRRŠ´­ô½'Òê⊓ÏSîÔËr—7oW½ëD™D_ZÚdO]he ¤gâÈ@¾brsÞªYŒÑðIØpíΘQjyÊsµähxâd$è'ØÝó)ˆËÚ˜Í6«ÇöB¶7QðŽh¥(‹×H™ÿAV™Dü}©åtG8Éì-BWiÆ–vì½Ï+ç•åpy7èò…fªé-O —xGÚCS›¸U=·öFü7…ÜjëW-›ô(" ÕÔH,éùÊØç-mð¡Ctùç\³[yî*«z7èuhDº™ïÕGzf ùλºÃgðŽ÷>Ž%ÔÁ„Эe5`SHm•½’XîfHbìàÈÊ!Î`¾çNæÇjߥU,ä:&z€¨Rƒ€%-ïÜ)â¾³®þb“"6ì§roð_ÔèpÃãã9Ûó6bç¬Nï6,øÀµ3Ï(êü$1ЃÖòz"d’ñ»Î¶H ‘(Ðî2—ªötyq ø’ƒ{ÍIfç1¬(}ËÑ=!–Œ¢á®t.¢Í“,»kQ2óî˜]€¹ø=êšÕ”‡±Û-¡PjX‘¬F0ÇûçŽÂu¾ê«€"xaB•+üŒ&è˜1žŸÊ,ˆÊšYuÄܸ¤–øÓè¸þ¯³‚Oý£ÚÌÏý;S@ꦎÇU÷:xÞ§¥GõN_ 2ùÑþÆ>­íõl^$U~]gÀØ$žiù8þSóÈ›k|–[ð2‚YÀÌY›^2T©1lƒÍÔ™ÁVÎnºs„õzg ‘ÙÑþéþ1BôI¥uÖÓ'g=Ì+Øxôh”X Ó’¬UUô¸|¨È¦vC tKg,æŸüÌ”²v+7d¡ÁæùYG%Ó€þXØÀÖ‚æ“ÁÎ…ÿÕ`¤)*z¯¢õÅçDöXQšö˺^G¬êÍ(f5¼Ë N6i{¦Â”«ú·ºÃà–ãMý™B†¶”Ý3'˜lÓÖ}“ë6Ÿ7›šŸ, QÐ9§L“ÁG¸°^¥¿—/Ë4†ò?µk{ÒN9tèBˆ§g5†Ü)ÅSé0ŠÞMq}c_§yâ­Lþú Žú JU‡éë9}לÁ‚ðŒÓÜ -œÓYOŽÝ™AÜ€ÆK¥|òQc@¾'=•ôikýhïÚ¬ HyÄžã üdÔEÎêà¡6°öã¸N¡Y¬wÉp¦ë"rAn@W(·†­k;Øफ़8èzev“Ý6ºýà4NÆ<#}¤dG›ˆIúÜw„‚¡højÔrsîóRY4½gõ?ò’ËËN9Ùî¤Òr¶¨Î18“—YBz„ÁãuQça6ò•¬ïö6~¡¶ ­ º? FŽŒ\:'Ù˜ôþ^_ôÄŒá_ñP¨ýç°‰NÒéÆñœŽLè#«òšh¬®¨#Š:ôÅ€Þ`vüñPfÑw1xaeh—pý¿3Bkx±èëz”§E#8s}‚)`Öšò¤×H˜ECaù ’Ý0 Ñüb8g¶ªÙ"Þ|òü·ÿ‡”× ‚×â7FàÓyø£±b™–\G‹Ç*ë®eÓ5_Š‡¼g“‚óÂ9²%^AÃWJ]‰‘èѶ†<²÷î¯'£ÿ¹ö6&35×µý˜ºöŸyÅF´´ìs×Jq‘²š‹¾ø3±š¯´DøÏ&™¹°ÿÒzZ›%põBØ{P>Í”¦ƒÑ¼¿V¹Ù™»4"’ÇèVM£LöWcä]R2ŒÐ‘Ôºª×J¥UW‡KoKw‡Sî.»ÈNoGÁfF¤HÁ«+y&Ê&d8·1ÓÏÒ‘¿m†â0G#¥fÓ&Õn,¢©ÉŒÍ1 F{'hLƒß¾~°ò¯º¦ÜÆþAöÚò.;Uømn®£gÜB«ü~²WHø‰`{…g´ØíËPŸkkÛŽbù+š/Š¼Á-ü‡Ú)»u¨îÃ;MÖÊÀ Ø@X:‡íÈÄ@“ž Bv¼Xëú¥=ïråò¦rZI«tO„ü„Í—M“ë~ÉW|28æ†Ð½UÅÁ¯8BÖÃC (')yÚKßÆä@òœ3ëøû*:ˆþ Ò¶D³§¼ú1¼•f’ÉdLÙï¨üùÐ<½ uù9C¸bºúCºMmEJ…u,%˜MKO’vF4œN¤;1½ ËkWE»í[.`™-Gª˜S7¥ƒÉÀ¹/ïEÖKU óGr,µ*3·ú×uh|É`±âúÜó¼#Zí»I¿K½(º„Ý5¤6éoÜOnä\¦¥×º ó™Èu”³ü†¼hYL<æ*>½O¤]önyá×ÌúÄöá‰+$&à…Ìmíß!ùúµ–xܸrŒ‘NªŒã‡¡[[×|¹‘®µG-Ö.WÛÃêHÚúD~ê¤Þå0ƒ®zÎË"-EÝ[ýõÏs¦ñÇ[hŽ—uûêÆ°<ÂŒÅÕ,³C¾eÏ“ÙQŠuæ•¥²n`yåÏ82ñO‚ÙekïKߪÊÜ2ñÉoÖ™0£äj–ªÅ Xç -›? ßŸ7Sv„îý…àºkŠœ‡e,霱(€Ì‚cÌ\BU¾¥íÂO,×»à?Çñš)rÆÍ•,a¾@í5«XÉ*Ë¢¯«L Ö{ËÁÿþ` 7ºƒênmu¨=”.˜ÎR˜n¬Mzáu…»j!ÄsàQ4£ÛŒªò—m–â³\ŸD‰€ëA¡½˜$¿ù¬sú\«1>-òê%¶ÌÀˆoÇ_AÐ^@h´Þ•›g³üzÒ3¸.«/¡ýe2„gNXÕ3®ÿ7àûZh1ŒžÂ§ÿ{l]2­îÄ€þ¼ñÇGýXWc¬~aPtFNFÖ‡9Ž Óâ[mz¶‰¬Êl ¬9]b±”â¦Dg×ëÀh3¥ç^¡6ºá©d»6CŠ@±µnð v~§Ü’#œNïµM©ßg?²}"&;ÌE.”_¤/øz/XÊY’Jòu—r¶77‰ÇÊvú¥’_'T-…pϵIÞÕÕ‹Ö°) 0¿nÎŒGè:ëáͧŸ BèXvE|¿)£d‡_iÑYÂ+è³€pgo=›pLb©É¶24«¹tê¬ ¯ñýæ¼v5C8[^C°/Zÿ;?q¨/AÒE’!|á\Ï%æÍ Rw0{\ú÷Ÿi(|„5ÎSFos55gCżRïÍ*Ü‚³v|ÝøäANàrO-;þ¢sн‹ÆrrÊL‰Êñ[[v«Þè.ÛAÍP\}8ø—\ ¸\÷|OTGÇ–äÆ9Že²7gt9 - d¢¶Á¨9ÙX^a—wÿ.4$-ÍìPý¯‘²ÊÁþíô{[±%§f¥f3¬ÛÅÁ²ŒzÀæ)}iÍL6z¼‚c?:±|:C÷‘”åã¢-ÁÿéJš¹íu¤é–Í2‹äÖ×;ì%Pþ¨­)…ýag -qúûâ¦ie3¾,UT_Ü!ãOöë$¾!4ÍjgP½B Š&aòàÖ=k_k+8¼­†ùùÂxd¸‚‚ í,Ž jã|¦×îä? ù%¼ÃÙQi`³P× : m8cÝA€ó M‚ßvÂãí€2Oý@Û-iz¸ y'& ü7Ðÿëˆ ùn -ç´rƒPýu3O ¶þàãÀÚ>B$@¨C†ÁA¾$Ð*‘0¯ÉúÇ+;õöŽý"¦výw1¶n©D<ªÛ£ëÔ9RZµYC‘‘«{e£>u¶¬ŠXYQ™ã‡c¾wϯ§n'd¦Ò¯LQ°ö_Ü Ø­Œ¥ùH–kš¥~1Œ“?IJ©}ï°æ®kÚx+Û†šK¡L¹óš¦C¸Æè(K…+ÇíüBg”\…”eÅ €åɽ·½þò—j.¸9ß)ÔyŠ³ûß7×Ý@ì¢ç›l‘¼«Ö£7½Tý¶‘»ä£‰ù›V„|‡p«:Ø}îŽã\Žü·8f:ؾ¶@;T§à@QnMSÓ@{;W®rN,©>žÌ÷"CÖ*„]1»ÿ‹i°¿™Ó„º|ÍXp¯Eý—€ãÁƒÝç%€µÔ lš‹A(¾Ez)‚U•¨rh=66¬'­‘Äl•6ö[4ÕàÊ.cÝtª†äq6˜êvfwŸ½êGÜoq -œˆ3ôh±æþä6·¿÷o n‡s.£##{>M%&|ÈŸ\ÅØ8;ï@PšØÉñ@8$Cr‡?FÀœol÷|+¬ÏéãºYOøÌ¡%ê(RÿV/ùQ†«Þk¥Ûÿ”ðÒ¼è,* ;Ÿe\Kü=.b&¥õà©Û+lÊt8˜EnT•M´QIzµXLjÆÈGSžåµ;ÅéI¹\@W.õ´ý ¾ñg4^òpw|YKƒÝF"ƒõN&á)ôG1‘íhq`NÇ(¨Y‘}Ú€+÷wM“€Ç?Pçáo]{Þ&ý2æþÜqR§†—ˆ(º5ZIp"y„vÙSDmhé{´Räúº¯íL.kSõ‹´ªê„WŽÝe8z Þm) Æ0ç*L¯þ³¸c-í/xÑæù4|m'*Ðû•]Öè¾"à¢\ìçdÃ…‘#’Žaï¥ÿy û2¾iÌÈ1h#¬uœ×g‡ËHdÇ^vÆâ$±HM–—‹æà»H›˜½x8ù‰±·€Íu/ñ44{ìºXmìÝ:×!S噓yÑÐO¥tŒâ^oT,òÌmÍBziÐ! D—ñ¹À­[@Ls+“žä-§ØpºØèZtøþ}4ܪLÝ^"M²×rgÎH—+ïýÙ[EŽ š]yÆ’ª—Ž=ÐJd”ýQt >×'Gv±À@Ú=²Ù¼KexÇ! 1¢Õ½×ükû‰xûh - -Ìe%žr¦sp{œ<Ëü&¶6ÌKÌç¾’xÊ$ðk µª÷tÔµˆA~ÄËjœÊ3Çp8" -À4eF÷M­Ó†ƒ*;ƒãü#?HäŒn×pŽo×Oq:ëŽy»’ ·Y9«,ÃÃßzÿ9¸îÒA{úÒ}V(ñNá”;ÕÚ‚OÜ$ƈú†l¼¨,$ûðÉ„ïË$×Õ®ׂkªÉM­%õá^é–4VPÏŒ‘ïàĉf»mÌ!Étëyû ‘øó]‡6²HáËÓ8ºÜ”ÊÀ¥N• áèõÁÏDdv"”C¹Oãî]]dÄPlWötôLPÃòÆp\ôr¶PÇ4˜ÒˆË2ÏvA †Ä(ªª¤É“_´ÇÎËM{9ü~ò3¬xûƒørìR9FgÜ™–ì3¤q5…Çgvçö­¹×ÍRƒ.îzQ6…üš˜ËÊíÆ>‚K‰VéfcKÙB6þT’çIÆNÆ%ů /\€¹97¢[ꄼÃM8eîì"ªÿŠïŒ|$ÜÑ«6ƒz‹˜xö ÅÊå×L⦲ü÷1®± À¡¢6§J2}°¨ÆpÕ_yÁW9rŠy‚Ør+‚kø@¯iœ¼­ÛïË=ɾ׸H­QÜO2'G‰[ÐS~ΫOn›ä%‡ wTí‘SÌ—ê—"´:Ýó %GSìŽÛ03Ö(øÂO†ÃùÜ£ŒhÔ®ðÓœõÌAOáúŠ'Ò…™ }ÃMóÞu)曜^÷ùìº2=+gé":¢cÚŽþ“ÇeYžÛ—ñì¹ûn™IƒS Çv¿Éü‡(7ù’(›ÓIUBf²¡ëv›`N™¦pÄ+†—È% €Ò5\O ãÐ< Ø$ö»Éf -ó©°l¤ú¾ˆÌ,Æ´A[Ȧþj)d6Dø#]Í<1OÂ&åìÁñv'^²à§…€ßp 0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -endstream -endobj -181 0 obj << -/Type /Font -/Subtype /Type1 -/Encoding 543 0 R -/FirstChar 11 -/LastChar 122 -/Widths 544 0 R -/BaseFont /KEGOFM+CMTI10 -/FontDescriptor 179 0 R ->> endobj -179 0 obj << -/Ascent 694 -/CapHeight 683 -/Descent -194 -/FontName /KEGOFM+CMTI10 -/ItalicAngle -14.04 -/StemV 68 -/XHeight 431 -/FontBBox [-163 -250 1146 969] -/Flags 4 -/CharSet (/ff/fi/quoteright/parenleft/parenright/comma/hyphen/period/one/two/three/four/five/eight/nine/colon/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/R/S/T/U/V/W/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) -/FontFile 180 0 R ->> endobj -544 0 obj -[613 562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 307 409 409 0 0 307 358 307 0 0 511 511 511 511 511 0 0 511 511 307 0 0 0 0 0 0 743 704 716 755 678 653 774 743 386 0 769 627 897 743 767 678 0 729 562 716 743 743 999 0 0 0 0 0 0 0 0 0 511 460 460 511 460 307 460 511 307 307 460 256 818 562 511 511 460 422 409 332 537 460 664 464 486 409 ] -endobj -543 0 obj << -/Type /Encoding -/Differences [ 0 /.notdef 11/ff/fi 13/.notdef 39/quoteright/parenleft/parenright 42/.notdef 44/comma/hyphen/period 47/.notdef 49/one/two/three/four/five 54/.notdef 56/eight/nine/colon 59/.notdef 65/A/B/C/D/E/F/G/H/I 74/.notdef 75/K/L/M/N/O/P 81/.notdef 82/R/S/T/U/V/W 88/.notdef 97/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z 123/.notdef] ->> endobj -146 0 obj << -/Length1 1482 -/Length2 9930 -/Length3 532 -/Length 11944 ->> -stream -%!PS-AdobeFont-1.1: CMBX10 1.00B -%%CreationDate: 1992 Feb 19 19:54:06 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMBX10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Bold) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /MTFOIX+CMBX10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 12 /fi put -dup 45 /hyphen put -dup 46 /period put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 57 /nine put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 82 /R put -dup 83 /S put -dup 85 /U put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 105 /i put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -readonly def -/FontBBox{-301 -250 1164 946}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª*Bg·N³ÀÓ½ ƒØ‘l¦ÊKq*Þ²Xú«šææwüsŠ¼|QÍFïq˜Õþæv`æšz¹XòšMyåp"÷ƒë»¶Ôôì5OÒÞË©”Y¤ÅðÆë¡P(DTçÜ!Á[v´Á›„67XFšlU‡…²&3!R˜q©ˆ4‡Ýw”’Ýσ~j‡¸+Ûño¼uú£ “þ_ùc‹‹sˆ×t Úí?‚}¹ß´7-95†ãžç¬Ÿ¶©µÎM/®ÀåZà+üFCxw¹ö\#㺴úãDÝÉ«<ËÀa‚Ø=ÇVùÕ¾þË-°ã™—òdÔ½oe¥~”ÉÈ„š²é Ï£¬Í‘ÿRJ­rb±QźдÍUÒãiöè6È,YáåÇ?Þ?£ÊÒrÆ|l¿C¶oä¸g}¯î¡’ˆBþ±ôªhz­mÛä2qNyœúIØ¡¡(ó.‹($¼€AñæNÎ@SÄŸ -ìišu¸'.Ÿ•‚m³öC3…€Ž3Š‰ –!vÏf¦.:ïm‘ÈŒ‡Þ°<æÌßO¶Q™†Ñt ñ!w=hwß…ß²i£Àz¦f½óÅ=¢1‹¡† -³N(ºÆè-ÛCå :Éß’w .BÀ÷½ÆÙ béw0$[ŽŽ‰¹"P˜œU£~NY®*ž6¶4Ÿ¢À›±õôC>NïÇ^?˜0ë^~o¾&f¬Z9Œ-ò(*ÏŸÊVV9 -ƒ|J™ì7@ØsÏï.$‹DÊF“§‚YMÐi+M¿ÄÍ즒ÄDý¾÷¼SW[ò'1ç÷qy4­qZÃ;]6y·„É@FæÍ< -ØÑöV&±N3ÏÚn²‚]ÄDúb a[Àsÿ½üÊKõ kÔƒý†9ùèÐ$[F=e ñ,&Ȩî)uv–Ãñ1DØêVIj­a©Iç#«µ…™“ò -5Ík~ ­…QÎäa’MÃjFJ¡±L3úû†.0ÆlÅVemÙ;Œ Ynžâ±ª´y÷ú£Ry­´h¦$¾&Õ'¿õíàgYŽ‹x¤¼û Qi-°¾»“ o —´7âŇka¥c¢g92ÂX3ú£]²*Þ#5ÕÜsJã¬^îfX×’ëbû¤Aõ>ÿ!ÙÔÄ‘òkèõLa\­wŒèi\î¯pã² dÔ³JKWpº²©tè˜ö+þñ2£~-ÊOCá=±<”ߨìâ·7H'®†4ú‰­ FÎÓD‹ôSüÙ¤ñ”údŸÀ—4»iËsCœ°ÝD§Áò•è3Mû¤`ÿ=eOŸ³7éžmfû¨z~¹Ê6ÈH3‡6&ÚUÔèPÓæö² çÉÖ(5†òÛX.:|å[èH"É‚7‘Säyê¶Zþº?a§c´tS[ålÝùDA\‘t96‡6a—ú´ðn,2šàºA?Õ"ÙÃ:Ø6›×ÜÉß™7xH/5ùe—=èvúá ªŠeŠ³ðØãÝÑ¥sòÕ% .ß,?RÓIGà–MŽ‰ö< ,œ9M&Ó^;×mN`¬†0\„@‘'‹tM“Š@/füñ¡+ûdÁø)9*CÊSeEÀ-ÖÓôê©&bqŸPQxVÆÀyŸÃ¯¯^—>×ðY­¶e[ï'¥¨ÍÉ@O&ÀIˆÓ˜­7_ØyãõÕ»¦ó§19qªˆxæavþÀœ’ʶ¶÷D”©\ÌBh°I±.¥ëfN2ÜiÇRÏÀëµC 0³5ùH-Ga—/Ë×qB_7Ue’>h¡Â];[MôgaJ>?»ê-ÿäØ.„}Ç6 -ªû Ö P^$Ñû0ùƒ -º>ÁB}|CR;0̦Fh2šÝÓi¼e(I:C±«xVtg½Žo›ç¾qÀ Ç™L6¹êíê„n‘õ zÎÑêrëWV¹_2;˜L6§ì¥‰¢\Ø—~=Vâisw›Ä·WEd21Ùg©xC<%J–¯•eüã«G@>O†@™DŸYíW:SêÑèƒL≖dÊ}¯/«F˜â‹™ø½«á§jô†Ü$ËšÏ Ô—8…SÿðQ‰ -ÎÂI£dÁ“l „§ -úFU"€-£¬Eó¬I\]…õT;‡/î‡nÇ•!b#»i`÷XŽc’üqlO’­µlñ!ì¼·×Mãšâ!Mö¶€c98úuÿb@Ùô ÀÖÝÖèš;¦F‹c"ïÞó¿”YÐÛ_¾¢HkÍhÀˆA¯ô˧éA( 0UË—äØ©ëøó}û³dÏÿä¥+IoŒQwe`",*ÌÉÚ•%ÙÐûo‹ÊiÔ"ö,ùG #pyÒVT™¸@¶"]KËÖƒ’¶Ææž0‚êMyuhv»ãž»|ÈÁeÔ“× œË±—0 iÔ”üxy¸.Ü/®›;/”c$ëÞ~ñûÄqŒGý›çMöŽE(_k˜-©ƒ1‹2´¿t£ËY|šŸB— òËýÐZtøÚâ’sss€Ÿ©=nó^¸Ü˜áúâäS ¿•š-—uâÜãÛ]ß“½n @¹­&x¤·wãŃLÎÅ8…¹üÖ†e½«×;áo9êÚS:§Pú¢.dŸûÑBz_¶UãÆèÖ©ìÏŒ}ZN”zÃLµE£ÎÓ¾ØZË…º„„[Ž±e®·KÖ·é<-u×Õý0èq ¿EŠº!;%·ö6×–…gÕI”韂DkÙæû-暬ý+¢H†¤ŠÕ9´TyÑŠîÇ⬬;\¿—i®K•/¯ž'dScf›eÃíLúÇm4 õã8¤‹”n.{Bpô‹Ëm<™‹¶ä[ÙÝf%õJ¤E UB,bDö.'IÐmÿ³ª.ƒ#yZ‰ˆWzgU~—Tö¡Ó4Û - vÐ@åñziÉ)ù2¥Û”e±zôˆ.»rìZ ,ü•¯ó½?Z.;5„‘¦<’wßÕ6¯¥D$Õª¦ÓYä=Þ¸^òW“7Öa;Éeª{žŠ³bÜ%jfàí÷yæ aÍiPnÑ´‹ü.lDù 5±ðÀr±b,b(¤ÍÜfh*båøÁeŒ¨ÅAd”[Y˜+ízSú[Ü» -üâžkõ äümᆜǣÀŠHþ“'+QGoçkáX+¬Ul†ÛB݉™ÕµÀå±ú"ÔGÂ7.¡óÇ»mœMƒ;‹áŤ†•ùºS‹÷7ƒº\w¹ª‡†!µs}£´—zñ’,™4`è)©±©–Åž›@4@BÇXrÀOm.c\è\Ã觺ßRc+k3âFWÙÑ,½–&efõj!‹ó>EPAÖÁð§qžäÂæÆwù¹®»]áVHxõÛ¢Lœ­(00zÀÿÞU°uŒ¸áª7êv¨n"ò¦vÝ/P»ù¸˜´œUÛcØÞ÷£¨–F [?&¢§„bÏRèf)‰UÀµ§Ç|BbÞjÏYŸ|(˜ °½›ü“SHÛžÆÿ¬‹-aqѤX©y¿BöãÙ¨P)îx|ˆ³Ö½ö½<Äí^´^ŒÑ~úÿÛÔ%@ý5G½ý¤SÝÄ= HÇ>SK~Ø(™áêìTïÚåËô˜Ú -À¨WB«º9©·p#MÇc¹ï»i·¹Rª¼!‚öŒ<«EwÑç6ØɆöˆçût¨Á2 .§< -1$ô;Ìåv\£AK¸ÐS|é] ®Ž²g¹5Å̃±ìŒäG)tá1@Lý¶@nÁƒ·Üb{¬ ¶Sb+½znvѪÀ ãõF`oÞµ) «ªŒÏ¥×ö-‹~ƒ›ÿräñ3ÒImyš¸³šcM8q,†ÈSê›MõÁ½cûi(·žÑd‡µçÏ¿ŽèA#¨t™§²Áâ“›ƒG(€þá!þ7è l§œù`çLñ(3~ÛïK8}Qðà”C]¶cX¿ °wsð*uí‡øÂUÀQŸµùѳ´Ü~§Ì«‘ÇL®ËX` -YNˆºöã½î[ìY¦Ï×SÅáv§iÉ5£n¬”Õ·nÔ…šŠ±6RFŽ„qF‰XÙ7Ô«¦Í׫˜?x{ÓªGá‚‘ÓdX0æc‚©š,«–+øÓ5îcåD¶hÈ3™Ü‚i½ê7ù ›Mz«ÑÊ*‡OîÔ™û´pã\¼pözW˜ ŒVp5»\Mœ¶Ê±ƒÍþO•¨ò/Ô·¹òâCLeHIÔÕCú¶0NÈ)cBuõ \>ÐÁ?Ö g¶-2kO~À­†ßfgÈ ´‘>Ê’»O »‘#b„Ö”$Et¶<£úÔ÷¦³c/¿›lõ6ïw¿^Kit×3ûƒ ™äBV ŒIµ#û¸›„Þ¤É:šz^º('«„âåc<Þ#»QŒQb™ÛïCê…þ¬ŸÕêñÌmĘ¯*Û‰ž›…ò€%FX%àã,Þ:b€6ø¼Ågj»ÊÍß×jc­ÐØr„4+°ÛÊ”õ6¹§œ[.d»ž<æQ¼ýs­ÝQ5yG¹qLê‹+3Ž+~ÜÕ ôc¥i]™§¾I¸|gYT|DõŸcËy ­þù€ÿ"ª.úA½î8ûz2aËê+ùÖÆ´Xz°F´ã¬‹`á‹ù¶=[4ŒEÈ€ÅGÇÈ«Ç)ÿ6 bë(Á™eY›«.@Ê°éY‡)™r[æf}© $Jv‡yëCSÚèÂãM_ÿýüò$Ùò.‹:,ÀÁºÛû˜Õm·Mz"Åõa5Óª°’¨Ôhø8¾a ‹¡€™ÝS¯Už}gýÓv®“4Õ§ÿ€½é9>r]hKâK¶8™L¸æN5ô€u|õþÕjãخǧËÌ° ™ ¡ m<í©©=]ÇÙ Ï©óRM)uD‘†hŠ×DLX“%búúó©ž {Á{ø¢™Gô"^ )!^,ˆ ’ë1*Žºæ®Ð¡ßÏ„ˆ¡9Þù/ÐöBÇÐø,쉌fªHT;Š®¥"¤“ýwÖEL%½`âpùEîßFºx þàºÈ¢ãj•w%!^D„öø8[æ—­®@P¡bRÈkyäHXjœdrå¢g¡Cä.`2ÎôàxåËÒzTÔà,H_BŸB~¢å“\>^o^°«¡ÖU”¶£VwyÞ(»â¥BM$©îžO'y;,— ¯9Åá‘o –, ÿ\Ô¬ÜÜ#þ½ý¸ªøÚ6°ÞÉ ê…†„1ÌgöeO-YÖÃp2Iš:Où¾Dí"5e €´aÿ¶36<ˆREzÅ%Z^®"Û.s¶3ÝtÎñ,>FΊZ!‡aœ®«bõn¾IbNý.¶B~ÿy%\)R/ÞŽü"Õ -ÝíFžRü?ñ¦­qN5ø;BÚ-+ÿô…J„ÂI¾6¡¡š©W§Àu&Mq4½ ªa¸âØÏaD_~÷ÔÔ’›4/w\,g±9ãáWËl?±É®N²æòá.¥%§?EعlÏðÄÏÙXöÔ¥„Gà‘ ?£ð4{¬‘ŸEý–ýƒhô^Åmò£T%äãà5–c±”´ûjù«îÎÀ€å{«+úkZRdCúøݬçö>ÌÓ*,6|î8Jû¹óÖ¾€ÝELÓî¶ñMi-u6“ c½¢ÉŒ·¨šÈ¤I Ã.~AþN‚2P,:ʃ´|ä‹õ«…àûGÑÂ-‰1b™cÅÇ[ /;1þr¸„_ä;”NahoÍ ÇÅ{¥Êì‘´£4*þ0\‹HEú^Y¬@IQœ ðkßÆõ -¶x€ÌïÔjL«6汊T¦m ‹A¬ª±šh©`yKwà‰bcÄh÷OP]ZgLÖ¸Y±v?Ž·†D“§A½JÕ->íÕñÐêV¹Ìê1úøXl–‹Jt3…4è–l™Ø¨}›X¬õ4žÒÄ£ÖV£Ç–ê$J0\ñIƈЮéðø:Óèi2î%kÞ%³õ»£1Vá—Ÿ-‹cWtG}/f®ô$N¼|ø×çÇ ³Ì­*Ð cðÅ€ºaUUgUuT!1AÊaÔg*EÅál¤U|%&‚"M £êòOƒmø‹å¢²ƒ^ôm½Î¸&–øÖƒšCšj©ã3óÿ—ãžX+JÈóVÍ/Mù¨–Û5@—©xäDñå#Åg(XÞîpfK†¦þd>I4ö\’¬)®EÍë~ÐÑg·¶…I!—Ãgxhšì˜ƒ©!c[24IFé¹­S¦ÐMdOCSýtîDûüXÍh˺ÙúåUVŠw§9$°°wíÅ Â~B˜mü¥6G¶£!x³kôù+Á-ý¶Ax}ÜÛ‹âíàß9CÜ“( VZM ﶦVèiHkå ruŽýûõØ™¯F–ðç&6vÄ^NËk”˜c( $#îÍ;êè õ½]£â³9k÷A¯u»‘*9n¢fk=v§-JÆ¿oQGgÄ¿æáZ½é„ÀÓƒtÛ”õ_Àxæ'ÂtÎòè>Î4»Ÿ²ü"x—…&“Ûî¢9u!&8ÓÓî¥òõ<´ÿ@ájXú¾0±ôÔº÷¦žÑ†Ø×ƺÇœ¹b\¾´gËBÁŽô¼¡°BFŽô2'2÷³W­£ö6¦áb &Rþ‘Ü @7¾RDö°•þ.µá³âãP½mÂåa7b DnòØ~˜•Y°^ "ÁÙ1п$èϸ¶-]J†¬²êiÿ涕&v”OªrúG>œJ3üδ»àUœR´•ÏKèbr¢«¤“¯8?H¯ØpW¼3]$ézŠT/áº)ÒÜÿ%4 -Ì×0®‡XáÀ°Ê‰ØQ„ù»ZÿZ/˜?8AmÊ{_£ )[é¶"‘ÅÚEþù%ãé‡4ôù…À¶Ú9øˆ+­ã¬{Ìñ©¡òÔÕôOCN¬ÌGá&ŽÙDÛO¤J}üÛ,¥„·€¡ëþù`ZJqZÄ1j&OYÅ¡¶å£þMf“"o03Hó5­ :9HB=`ïÖ¯sØÏ µ ö¯‰Ñ‰•{™+1`’PãÅñÀÔ$´ç¤ †Bï\˜ìHêô¥ + Ý8ÊÀU£¬ Ú5ÿ5¾Œ¤€~mº8¿‚¶Ã#PŠÏænöÖ£1Nh¡ÁçV¬ÄdÛOì#ŽÛÖÆ;TF‰¦,Í}ø’§kj©=ÿÓ‰¯ØÝa –=ÞÅ…™„0†aTûz‚]^æÂ9°#)Z›.ÄIUùÈLüÍö]¿±"±ôhk5ªDƒý̈ƒ€SòÒ…ÿG»èä9h8ÊðÛà µúUÝølù}’ ân>èÝ#`Jqv“2·~¾t¢º!áûmX¬r6ùB£º‰yQ=G‡MaÖ5±8 †žcw8¯ÃQ…¡+ÒÐZµË7&w¦&¨D"9 ŒÙUö·…i­®RP»^r>)TÓ…‚öh·Ñ·@sôð­%¨ä Æèqé™æ2³ëšÜvbæÑÉQ®‚]k¾î)5„Q.žé)ÿ×K3TOi{GŠ§›éß®BÓÁÊÆ[»@ xÊ;ÒÚŒæÍõ²h5V7¶®Å7ŽgïÀÛÊ zl+áz0·r~ã¯eWÕaO!Ü(Iû-Sò´Í«ÿ¹Òÿ6øÓÄÞ¾»¾„FàÊÅó*=߃!Ó|,Ò™f  Æ›Luæ*ôçn¾J'£{nŽ÷w„Îuõ„]áßÿ…׿¾  _ÕЮ:´šÈ`6×ï½w–8ñÈ`=õŽ…Á +YfXµ•nŽEÞäÓÚTuÖ,¶Ù‡ í³P³¨öX 3ÊÜ’…hÅÑš’ -Òº9‹Bõ­’_P±ß6e1ô¥ù䟦˜´¥Gbä +iè\á?•[Ù÷Ö…Y“N¦Vµ¸?TÎNdÊbš,?Ó;¼Šš Â@e¨sýâÒö¶4ÝRÖçöóÅTY!Œ’!±PÔ°FCØnùh¬–f¡î{G¸»“+ X-Ž_n¢›­‡lgÐÁÇ|§ *ô]åEÁ›är¯mi\Q¥#ÀHÑ÷%(<$u“Ííwv1"Úô{ºHÆ൱MÂ@ó -‡=õԾ맒¸ ïÊe¿±A(ÙÖ+@ñN ¼œí[ èóÖô:Tðo -Qþ9WÕü\Çç'ÜTü¼Â« ñü34)Ü\„áz3iaTêí¬×/W*ã]g-Îâ¾ øñ^*Ç´ŒŸnùÏÞ¶dÏ'õAŒňåj›©Ó”oþœÂu¦K%2Z×ËÔ+z?(F¬Áò!XSež¸l.ÊÞ WÏîsÄë«ó^àßNÀÆ_~ŠW>¾Ç½ôØêY`b79lŸßÞÙ£Ço;†©ŸaYeÿ§r: „fÊÇóß®G™á{^5éX­iµÔ—A7Ô‘CoœDCçù®Á}ȇw¢‰PJ^ +ÃLm€}æëªuå@=‰À‘ṌÕb ÁÜ¡D@¯Ž0$“vˆ#¦Hà¬qÓb1p€Â¼B¯ZƒÙ ËÚíB‹£Ä$bž[(ǯîš< ³( ‹¨ÓHúšup[!7T¡Ž[äW]BÄå-#*î÷¥9ÛŒ8]]óíû `Rûs5@Ý˹E3t-¯Ž^b‹´Û†(êt@…Ë£îpá'rýR_°‘/fï”ýrñÖv?0’­‹áVT`pãÝøHpø7©•ÙÂW0K§6¨¹ê‹ÍîSè×7 3¸í6Úö±8[”„¥ÂˆT“pYˆ 9S%ÐèÔº|´ÜÞl¡tÕF‡¦“­ƒât«Iæ%Ñíf1ÕÚê–m0ìÄ=ˆƒåÐiLFÕWBy± U;²î'ÎëN"âþfHãÙ§R —ûSluŸÅ„ìçâñç"es EÖl*eZ(ÜŠ«ºÆu l¦ŽïWCèÍsϪå3ž×Áªh#Û)hN'lá2šÒ¬d7í‡EwH­à†Qp™zc‹ZÛk§ˆ€Ã&è@ÔéQ¹Xú -Í’5Úé¼SY Õ9LÑ[ÑÙ}¸U¹´¸K!N~v?4ô·JMEµ³AU–¤Ÿuð½ê°:µ=¹~ÅB‘R8;›]±Ô(w‡³/s?u˜®û@ÂöëÊ@¤^ß³IŽ»œŠ˜·XAjaû -+qÕG1°95=z1À‰ °”ý ]å¸Ò < -«o$/•@ é±6Ž*µ‘Œ?%Y ýŽñ§%e¦ï’ ´ç™”‘˜,^k‰E¾ñš°«IýE<è‚ÎÑ!€ÜwlBpëúà£Aâ’páÃ/2së¨(ƒ´× &»B@¬°Ñ8cÜ©r-º:ª·VEMÎ7ð#4ð¦ =˜f³¼œ–9h¢°dŒ¾¼;k‹^ušS³TªÖïÙÏ5Ú ñŒMÄ`iêínS_/Ò*£,^š±òÁ|Äé@êòr›B™=qã:·#FÃÛ€®Ì›Â¤å=«¶äÓ‘Øf,möÞ¸wÁœòŒ3§ -–´ØQ:·¬"u8p×h1""üÙ5 žŸ]ÜaW²f÷³ÜÇÄ;Œr{Ë!áQ|Я¡*M÷|eú›oµ)FäÍ‹bÏL©9Åñÿ*ÅÍoX¬r6ϺgîJ8Ü‹R·Ð°9©T7Á¼2ÒÐÄÝ°Ï[†ó·Y)<‡ÿÁä´Õüï½R[’B‹îÜšà†XLä|‹)é"ne¨½‚ÓO?×1¿èä1‰3?TQ¾?;@ÕWeš±mÐ1sš%‚¸“¾Û¶¢3W:‰•e„/Lø@Šå²…`ÝxÚEŠ¤‘ý:ûû6wP€yKe—O4O¯Lå‰Â\ÑJÿX-‡êhÖ0 \­àåH íÃ7æPÈå,+ÙÚÆ'®©EÈXubû2;²ÈÆÕÕ§·²ÀöþÐvì¿x¢T¶€btîd¾ÌTyŠ¡‹‹^ýj¸ŽÃg“²>ý²°†vùDm[`FÇz<šbÒ{/ôÉA“°ûqn¦Í  gMVd+$Þrw·¯VP,;•r^|ùÕHÏË MýíÃ;6JÉË·§cê²ÈŒcwµçRL­ô3Ã]¼[¡!®‘Ç´Eah=p˜Ôì^ïëÜÓâù”çŠ -FNS¹ªíh*l2)R3óÔ–î¦Éšô¦ÄØï:¨4`b”_>I»œ=ÿQª Àn·)ŷǦ‹qøsh\Ñ~–ÔÖ¦Sþé„2'x©*ã#Æ‹¸? Ñ×t&s×kFÿ}‰’›ŽÊjHÚvrÚdsàëè‚ûrœã0~Ù -ñ§z«qÖ¹-„ðøöïè œÆ)Æ‹å@g k¡>¾?ˆ«Êï™wt¡ç²D¦E{qÆ|ÿÙôÖ¿f3‰{®CøÙ^vˆÊ=@^Aiÿ’X0ÕSÍu‰òê@'k™- UTW,Uëo\ ÍM$Áù¡?ë¯+ é€^CÔ,åå†ÊçÖ×R(è% ˆF.í´Òý -áQjÞÛ4èðÿDð÷´ÕÈT„È¿ &RÕaŠ×SÅE×uà0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -endstream -endobj -147 0 obj << -/Type /Font -/Subtype /Type1 -/Encoding 545 0 R -/FirstChar 12 -/LastChar 119 -/Widths 546 0 R -/BaseFont /MTFOIX+CMBX10 -/FontDescriptor 145 0 R ->> endobj -145 0 obj << -/Ascent 694 -/CapHeight 686 -/Descent -194 -/FontName /MTFOIX+CMBX10 -/ItalicAngle 0 -/StemV 114 -/XHeight 444 -/FontBBox [-301 -250 1164 946] -/Flags 4 -/CharSet (/fi/hyphen/period/zero/one/two/three/four/five/six/seven/nine/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/R/S/U/a/b/c/d/e/f/g/i/k/l/m/n/o/p/r/s/t/u/v/w) -/FontFile 146 0 R ->> endobj -546 0 obj -[639 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 383 319 0 575 575 575 575 575 575 575 575 0 575 0 0 0 0 0 0 0 869 818 831 882 756 724 904 900 436 0 901 692 1092 900 864 786 0 862 639 0 885 0 0 0 0 0 0 0 0 0 0 0 559 639 511 639 527 351 575 0 319 0 607 319 958 639 575 639 0 474 454 447 639 607 831 ] -endobj -545 0 obj << -/Type /Encoding -/Differences [ 0 /.notdef 12/fi 13/.notdef 45/hyphen/period 47/.notdef 48/zero/one/two/three/four/five/six/seven 56/.notdef 57/nine 58/.notdef 65/A/B/C/D/E/F/G/H/I 74/.notdef 75/K/L/M/N/O/P 81/.notdef 82/R/S 84/.notdef 85/U 86/.notdef 97/a/b/c/d/e/f/g 104/.notdef 105/i 106/.notdef 107/k/l/m/n/o/p 113/.notdef 114/r/s/t/u/v/w 120/.notdef] ->> endobj -133 0 obj << -/Length1 1432 -/Length2 8170 -/Length3 532 -/Length 10134 ->> -stream -%!PS-AdobeFont-1.1: CMCSC10 1.0 -%%CreationDate: 1991 Aug 18 17:46:49 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMCSC10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /XVWKSS+CMCSC10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 39 /quoteright put -dup 40 /parenleft put -dup 45 /hyphen put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 71 /G put -dup 73 /I put -dup 76 /L put -dup 77 /M put -dup 79 /O put -dup 80 /P put -dup 82 /R put -dup 83 /S put -dup 85 /U put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 121 /y put -readonly def -/FontBBox{14 -250 1077 750}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª)s™§„̾…´™;.ëÞ;Ôr·ÏTeò…ji«–íK­/df5à¶A|Ç{S/…ØÇ )¡šSïcë\^ÈŸÆÂm‰çÙäp·+ïÚ#õßv¾¯Lé17¢íŠ©×Öýó~kÍàÙ ˜d#å– -]Ÿ»L•eVèßËúìGo£oÙ¥È\šõþÙÂÝÒkÜ ™9‹ŸMÕ™=ü 0)xfáÍ -0ëv“7ϱ9 ¥ÀàE(O&k¡{ä‡Ç›”úÆÖHF„ſꇼÌwÔ -ÑR^•ãq&AŽÔ›hF‹8¡NˆæŠ&{˜o—i¥¯¼(^[Ž¬Ÿ’ol WÙÃ%®'5,Ù.V‰à!0‰½&¥äu%ËŽ«ªKx¡Zê4pX‰«:ÿ¸•;[4‚å+ú @c -ߌ -Â}s$)žé€èPòͶ'–/CÕ¦xÄBCÍéxS½Æ«Eý\ ­'M¯‰’ŸX<ÉÌÂKßÆ‹’U«¥òm-Æ|poq•wÖZçF¦ 0@æË$¹Í­‡®8¢ûðä«Ò§@ñçù]ÈÊPËØp-ŽVÐÙ/vÎ R«Û‘ã$8Ò»óæ¤ {_»CxÊÆí)–÷`mÉbÄýâÿ2'‚ÃCßDÎÅÿ¥\c é® Vsup“ýÍ°ÎÔŒýž C ìq6 ¾ 2T‰1ûe|jÔ²H*} t—‰.ž”-õŽˆÊðÈ"ók÷Ä5¿,h:J.ôËèX ¨­4†Z@0ºv)FÞöžÊE–ÖäÊ«ø@‘"©jKÇŠÐrþ·Y¦ŠD¾dc‹m•!Gî~,ìöf\ÛHÖA«Ó®´hc†éc”¹ç¾ÑÑ>SK‰}¹¦ìpkªàkâþÿúRX>›LÒÓfU—8dWNb‘䊌b ?g›~Ø8o|½R<)Cì©”ÊÎfxžg£mŠ.sAQìájE—bp]lyÙ'ý•˜'Í”±Ïž[tœ‹Ã›VÑt•{¼`ƒz -Dœ$V{ ¡êEë¿áV·|œ4-†<G"퓾.Ž?ךŸe\©^˜/ùfÍWn8Yìzÿ¬sö¯=õpÃ2΀.1Ápè€TÙxK(©Û¤Šçcœ” ]Ó?ÏÙ·ýÿc‡P'ã¶ÔeOzêÁ?Í.šÇ´‹B¹5ÀÉÒ™—Áo‚ŒS§ÿcfìaÑKŒè1šk‘€;G†/{›bœ28œ§˜m u- VG†?DÜpBý4ýHçvçG}èh‚UÀ¼ÆœüðoÔnÍÉŽzš –”¾Ïžëɵfv»Þ.YÌ83 ¥w.Š_£½n=m8–·÷Õ»š—Ì’JÜË2•-òðoјáöקx ®w.%(ôÃÑÖîàäºÊÈ7ö¼¢ä”›ãƒÐųZ®ûXTžÿ4 V¯®¤–€rÄ|1_¾ ™ÐÃ&¦B·(ÁŒ¼”äE™”:'µ«êNö@¹Äuuµç‘Ý°Œ_Çÿºõṉ̃+DÆ…’hªYõDë{Àôöã¡Ö®ú1°Dµ`'©hÛâ€àÁyzEË;½WÓ -zëx©Ž¨))?ˆˆªIñÕÀÁ½š®wu·Ï»RÉG924<ÄÓa¬®9æéì°v¾<‘¬F‹Œ'›gd݇+O»ƒôš0êKÈq˜®°Ê³EŽ#€ÖQ?ôzë;}”ÛïåÁîgËj…TÕ À™Ú„ü`Mï[ª¼$­F -ÖGwjpôÅŽŽ„Ýóp¼tg²-£ÓǤP%ùë_Î*´„Ü* ÑÈzø‘oÐ|³-æSd£J  -Ÿžo”9|§=Â.0|=³—*{õFªVÄL¯¤·)ù }Ó-#%ˆï!»-¼’ ÆA£Ç’™ÔÜ®ÕA}q‚˜R`C‡d¦ÿÀñÏL?› ûKZæý:Ôì#¤q_ãÊHœþàQ‡¨qÏÒ†<Q¬ŒMŸàmçùõ.QAé"ßKöóY••ÆCB[+vµv¾}”P'úãçëo6—é¶K[<•îàé0â­G¦ÅB¥.÷¸Šsc“÷ÔÔ–ÃÒµvA¸¬"†©^󃫸­ã“[ÒoÊ[ô´9ðä |ëTQÌ‹£÷)©¾­#‘§’¯ŽŒ"‰5ØŒ0ìŸC&Eï)!2†B…cB»¾öë9ÝsNf€¤üLa/š ÷£híÃ=JÆ!&Pk(©›«ÖfÛÊCÀL,GŠ‡–Ð!L~7Ÿ÷Ü[…Uœ‘°b……̬vÙ¢\6ÌM ¸X"êw&-p’Ô'Níb·hÔ‘¾XF¬Kª7w¹Ÿ§"eÔTU,SÒ•a?ãIJÁïϳä÷ßN¡²ÊéZ]ƒ“Ÿ âg\ü¾ Í^tXX¨¥Éî)Ž–ijŒÛ,¿ÖN9KÜúöbS9Æ® -Å”ÀÀ³`9–ô^#R›ù€1àNƒë‡ß>ØÄk|^qeEò­_’iÇdšÀwê¬îtð䀓†wç{Æ - ˆD1Ðæ–7Ìh"‹"ëÁŠJÅ"³å Œ!Ó¢ì`>±¶ÝðJ^UÁEºŠÅípòXáùåøù gU)S&³%Åâé]ãfsJ´]ç­·™b˜§Å‡;†±‰_/É¡À@š†æÎ2è©ŸLîtºÝK=Wi‘(D¡/cŒ¦v+mÊ) l_¦™8î - -•™Û îÒ¢îaÔÃøíYu1ö¦Ä¸Q®È”2‰ù5ÁÞ›ŸDzèLîS†ÜEMŒçrž0à$ß[/z¹ñTȈ § Ib ÍÚé “ä©Å{oÂgº‘; ýn":"ô)ÕøÚ[hHñÀwvG±•Wˆ«xÐB›ïxB™ÁÚÑ·Š&ɉ+…Þ× §Æ»PêdäŒaUýcˆ:q=Ûqô)ùßÒ®^:C–nuEä“õÍñgÐ1\Dc©eÙ¿–` CÆ| o¸þ¶V`w'ò®½Êch›ÒPՀڈܔ+íä’¯Ã˸ƒ~8$9ÜX¤¹Dc¬Vè¡™ûWÈpŸF{èÄÝ[ÑÛŒRÛ rÜ‘w×0ùÙàÔ ÃÏ’ÅxØùê–ôc…uÈòQm±ž#ÐtwjdÃ, îÝ³(ƒLvÉÓTzGÃßX…—tÕ c¾‰¥ås“W±ZOÌi}p—Šo?·ðx–¤´Âï{¤gí#§ú—|¼!À]«Äw†¤p…Ý›d »1Ë×NHÐK}Ô¨•aT}{’øòªzúd\n2ØD •ÁËW¬x®>ƒÓéª(C´™š\éßñˆð·vLGŽ÷:®¬Î^— „€‚zt8,f)s—Ó,¯zÎñävš¦qóÑRƒôyá­)÷ãÀÍã¿å}]?Tmܾ-èÅ ÚOÏOÚÍWs×Ђ*]l“û²L€ëâ}7C -û8S±ƒõŒWH§à§AÅ…{Κ\SÁ% ¬ÉÃ¥~~x£µòL„™ò¿È¤ð4Ò^"±ÊÜË2ç‚üqñù¨>ì9+\êä˜Òå݈ .)À«Àž¥Vj¬¤Z耕––þ 3ృΟ0»¨­«Õ©¢›ÛxÍD™*{=––ò Zì¡mÕHÞôQ¢u©A#ºe“Rîõ¶‡euÂ~Àö’›X%¯ðÚ¬ÒbfÚ*ˆK'«¥ÐcŽ¢¸$:¼*}˜ð´§Ï.¾ Šò¨&Æ)w¸¼G8¾aP·+-(CÓ|ý]"á ³c+[ H¯`¡eIÊúŸ‚â ÁÍÙṁÏ$¹©áLxlc17Ó-ÃëÁ£†÷•PY «#ÙÎ{0Jø·\"ÜÚ6„ -ƒÒκã=ÓˆšÐ¹áí‡Ìø2ž’VZc}î¾dé<ô¥8Öî´ÀÔ,e <‡TzYPK.EYÝG®º‹ ^°¤ @*ªã_yû¡Éâ0Ò¦v|ÚÑ͇Vû` ÐÔÐF©[D13Gˆ³vn -} µïG{H2”d¾é¼¸²ÉBî,É\Þ7¯Ñ|kq/+$ˆ-+¿árÃŽ -ÿ¯f#Ʀ`Aà–Óµ(0øì8w„„±CW®Öê5˜Ÿ-v¾'—?×ou¨Ë"{J°ÁrXù9yŸ'3Zl"²š/ÃuGØýCf <„^Ö9 sÞ²ð9ýx2†€EÁ¤iêŠí·‡³€¯ÏBL¢p;Ì9 ¥íÏ•kWú¡°ƒ×¸ÌÍûã*JÁ¦Ã´uÒׄÒüï8D«†1®Ÿ&û² adü±J'ñj£kÍ”×›w•µjÆ&ÑÏ\1‡Îªþñº‚ÎÅu|˾ÙÌ(ÇŸO»5þí>NIüÛº1– ’cb"4Øf 7™†'¼É³E=T9çð6Ü®lÏ:§l´t…&­š­9q5­Ëj‰Ì*O àÆ춇ÖIG#­ÿ¾n.=eƒlËTÍ_ÓóÊcQôFCY…•ÄK§±Ò^”=OF"ÜYÒ–è!ÙyM'üí}£Tç:P“û­  Ýj)N]îÎxhúô™óu"„-b7 -7ÈÞd4WmIh;êö×eU"²˜ÙŽÐsGÉ˜× -Íœò惊bÓbà@à -k©Z6µ¼Z‡3¨ƒlû¬-¿¿B¬üæV£©Ó×û6~Ï_c( ÏŽ1l+r*NüÅzûúûX!mW±¢é‚¸‡L“Š-Õø}:Â3×¾xÛña攎“ðè?Ü âáðà¼ü(ªdy­Å2ŸUýšÊ!üL-:‡·÷·NWòò [í¸c|«¬HcC`Óq‘Á& »çqÀáè‘Ô…—¼¾§ÿì9=w6 -‡Ã0%j¿ ÷ÿg·Âú½/ÖÊQõïâ%]4e4úp?s' 6@°pņH¢to+Óßr¬§Ý—­Yé ›ü - ~º˜ï¹h™å qÞRa¼ ‚ÑÏ,:}üAÐz=käÉYB> ŠÂ—ã×ßýë¢Dä¦X¨³ù¦V”@¿ç’ql…®¸£”Kùæ2©KÅíèÏ„ÓØ%wlz–¹Zš «:X¹,y‹'XÇÅŸ¾€¾óÖa“øø.'ð­mDþTq{/0P}tþ0>V[5•\¾l"3¹Ù"eOO 9qj:Óy!‡lÑÒ]AƒÝ—©!÷îâ¬õŽ°Qaž"dž[|ÑKÉÆŠ·'`Ë`dWý2/ÕˆûAÄìq¡s*Âàò"à™ÿ4w Ò’¶U¼Á»S™ eê&(Ê€EÛ¥Ø~ÑkÿZUç!Ÿk`dâç -Û·ál»a, % ¢hnª™« ’†ArlžaÛ_†ëÔ\1¡œ¡Á' h<_Çfjß”ŠÁ}µuù› NÊÄÏå—˲½ÉÐÝ{¼G™g† Ù•À·tvêk›( ?®Å§c£ä›¢fOF :òWw8¼à¦dçí´oN·ëVhù÷k”à˜³C‹9Š?»Ý è¡ÌtÿÔ¡d7‚ßÊŽL!ð!ËãdÛbP=ÊW²làãƒ!‹¼ +5°‡²ª&ÿ¤/¿§(Ò›ÔÔxºR:y,òxÏ=u”áyx½ãÒIÑ{LJ0é Ù¦1-9372úÞú -Ÿ«ÅÖ¡wy¶u¼Þ—xúÀcÎ_¼›ÊÁ<%+ÌÀð¿p×/f³Ìû«çÝÒÈ É­½UÞý3ZÙ‚e‹ ]bþë -}på ¶Nõœe2Ú÷®ž €ˆAØluüѺ¤í.wÞE ¾E“âýJVÄ­aÇ‘h£¯~å-Y|.¡¨îÄ 5 XbÍX•âŒt¯{w †o®VE¶f‰ !OWíÁÞO}ùÆÛŽwÝèóagg°ñ2@pÖè­¸@¡å7¿¢&=£Î®áK4å]7¢Ü‹>¯™ñû®€Ø—שI¸ Æ ÚË ÝÙµÔ­’NÌÀìüžž‚¸²ù^(‡Š¸>­˜E”ï52}n(á¬X•y-¦ÐkD˜ 2Š‚ø‹á g«³¿¨ÜjÝŸýgÒO[Lªs8çkùsZ¬”T>c½èƒß#£=Wsü`;ò’9P»Ë¾Úr3ú¡¨NjÄ¿©¤&wõ°Sš`š ûfÒ´ FBupbö:'Ž¹8ìÆoàU‘“¢ï±H<«³å³nýeWO»‰_…Øø¯ÚtU¿Æ{ßÑ] ÿîaÖXÇâ˜3j­–c'D¸=†d áÚK:¨]²h©×4‘žÇy<Œ½2 ¶OÈs'iµ vÛz .¼³[‹2£GúS¯‰NN¼ýáâç˜? K8¶"ãëÍ@9’tû®VÙÊ÷© -ªÌJZÅ­ê>qüÜ0ìƒÕ¨1,ÍA;A -g÷šHѱ6Æ‚QrìÀôœ¥Ú)­UF‹N+íVÈ—¼b­ßÝvMm±»¾2ú’*xbB( ßxO§ÙTÆŸvh»¤Ä¶mkèVê;ïoã -ð¢((‚lDhï.»Lx8Î÷)¤eÒ‚„ÎW\G’ÈJkÈr{à©¡ÎȲ¯ríÅògŸ=B%a²Ø«]çL–ɃzLØAg0-Í ²RÌ0ö¸Į罼pRXÃ>ž£à³3ÂX­€%F lÑP‡½ƒ\^Ž×DSc…ýqzUý¼“ÙŸó¨bË‹çsƒXQÔÂYA‡nùò PH?²ÇÂ/RpI>¹V«®&û‹øæùòÙlÀUú ì`ù[McaÆË´A{ƒ‰ÀLÆQ¨èª²6XJé(ö§šr"#÷(±ÅOU%tÏq™ÆXÕä Ú îº]Ë(5,¢îŸ¥›ª8‚”ƒnõs1MCò@ &WT³YÙÝ_ÒõUdônؼTn†9ñ‚U°¦ðím½q¼ˆø,&|©Bã0î]M\ÇpQ‹­¬ÎY ÞwÃç*2¯}ò¬ÁâÄ™Þ0çX2ÀDªûü™hÞa£”ÚCëëmAîØ߸?Í +:á{¡n51º—`ìKÏZîÔ -\­k=ë€@ÆRÔOCÀâÕ5nfcõPnÿ`‚ØëôEZ†ÌZGøÓDý–&/Ùnô¥Ö`Û¥Ñs+Ž4‹†êYßÓ¸”UÀÑ€˜@sP.ˆbPÐNcJ>ù~h爼¡ÅÍš—YI9ñ#o‚ÞY Ü,&¸T^y‡l.©¸öWP0E#¡TݼóËÜœEsT"K04£-ÎÃwbJ²ÀÅ9d›ü~Ž©>vZáƒ>ªíO¹çÑI奓ÚW™n,¼ðz«ºU‰!‰jÌë%àÍšÚXkiI%>œ‘döˆCu(d¸‚ʛ߽áeöà wö„èJœÝ^gHãà¹|ÁXì®þ ¡wsjÿ.ûø—3¹[u°MVtÄn³6=`ÞÔë{¿zl£¹Ûðt°9‹¯·ˆÕ OÁ„O½wE÷~Rr¹‹A/«(³XÇÊ ‡@¨w[ÕÄÎ?îZCü,÷ZÏ(¬A¯wÂ(LPßæÄ0È»NliV¶üêR\Z{¨þŒÙ#ù[¯äxÅ%Õœ)$ªâ* Gu3¤Iv+L ü2¯š…¡Ð™Uó ¿Ê0Þè-ÍõP+àŠ -'j-C°Ìès·ò$ÕSW`ÓÍ´'Ý"l0šg ðþw'Èž8ÇÖE‚ÝŸ1‘º¢“çåàJ®¿6¢Ì!ã£ó¾-xY?u!¦ÑmÅab/<@³ø¤-ªüòË9)nq^4¢ïýU!Ðòr‚*ö-×Í!ß#òÒOÌ5­›yÊd}–p¸vâ‡[¿š¬ïºÆz–ò*eKÕ—˜§ƒöè”FAÛúÇ!²ô+£ z„o}P:jz<6CÍ´?Ð%WùÄKÀ™ûLôJ¾]ÊfTe]*"­œbCD¸§p~¾­PQºi\Ö‡vÜ=êyÂ6ˆs • -¸ -'ZEœ„ çå¿×žŸû¯YĵÍfDB€/o´Hx~DýzÂ%æƒ)wUq†;‰êï´ynKs3tœ‚f¬eÃ2*"S×ü—gz=$ú5Ä°ð,XcˤÊÌ ´ÁS›Ló{g}üK|ÖWõg6iOD1 ðT¸¿úî×á•¿Üßn³@&¾ZÑ«>¤4{ä%ɶ”«áŒ¾tœE:@¤«È‡,À—NPß!y5bùŸžÀîqÑ4ƒŽš.} -'!â4šJÙLð·`€©$ìú·µ›í½—§",½§l”2Çn®6>dˆ{ëýN<Øpe Ñnß;§´ÒÏÿTF“5oÏ¥.³Ï&ýF ¡š8[IA1[“SCÜôig©Y^ôí°_GZ÷ÉÞñ¼øŦg*åU„‹ì°¹OzÊAw„¥}l/Ìš¿“¹G¿Áêžkÿ. KKÖÝŸ“ƒcÜò"YæÒÝþÔ¥ì\1Gl óíå÷i#Ùã*·°dÂg³ù¹ÖAcƒ°èÎ?Ö/£Ù¶®¦|ª!ÌžKn6XÏÊ×öÁUi)¹ –ßvƒpã§M×½Z¹v?Mn×+I;V`Ä=NÈ©EÜó¯4K+MÏ¿}B› ³ûkv‡Náï>Ç5&ÚæªtUR«ñT=¨O=hb0†C.`ÜëP(e$Ê^c}õè JÕ”o±3ePœÝ¾A}þÈM]gÜ#Œøñl?8Ú/ûÙG "ÔqD2п&N`ÍŽ¨™NôѼrjiŸÛ='÷£"+ÄjØO],€ûVýKå8¥ÈV”˜Ow)fÔ<ã³èÛŸ>?Ñ'½Þ‰kØm'·u³¡hp„Cì]ݳÁ -’:¥˜X0«$‘hë¶õVb ÒÒ…r«îÄ4C£|¥•ðO‡¨vÑnûñ.-nŸw —Ñ– -âa}Ì}ÇÖŸIf¡N¬C¤¡ñƒ -Úϳ6³}‹mÞ0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -endstream -endobj -134 0 obj << -/Type /Font -/Subtype /Type1 -/Encoding 547 0 R -/FirstChar 39 -/LastChar 121 -/Widths 548 0 R -/BaseFont /XVWKSS+CMCSC10 -/FontDescriptor 132 0 R ->> endobj -132 0 obj << -/Ascent 514 -/CapHeight 683 -/Descent 0 -/FontName /XVWKSS+CMCSC10 -/ItalicAngle 0 -/StemV 72 -/XHeight 431 -/FontBBox [14 -250 1077 750] -/Flags 4 -/CharSet (/quoteright/parenleft/hyphen/one/two/three/four/five/six/seven/A/B/C/D/E/G/I/L/M/O/P/R/S/U/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/u/v/w/y) -/FontFile 133 0 R ->> endobj -548 0 obj -[319 436 0 0 0 0 378 0 0 0 553 553 553 553 553 553 553 0 0 0 0 0 0 0 0 0 814 771 786 829 742 0 851 0 406 0 0 683 989 0 844 742 0 800 611 0 814 0 0 0 0 0 0 0 0 0 0 0 613 580 591 624 558 536 641 613 302 0 636 513 747 613 636 558 0 602 458 591 613 613 836 0 613 ] -endobj -547 0 obj << -/Type /Encoding -/Differences [ 0 /.notdef 39/quoteright/parenleft 41/.notdef 45/hyphen 46/.notdef 49/one/two/three/four/five/six/seven 56/.notdef 65/A/B/C/D/E 70/.notdef 71/G 72/.notdef 73/I 74/.notdef 76/L/M 78/.notdef 79/O/P 81/.notdef 82/R/S 84/.notdef 85/U 86/.notdef 97/a/b/c/d/e/f/g/h/i 106/.notdef 107/k/l/m/n/o/p 113/.notdef 114/r/s/t/u/v/w 120/.notdef 121/y 122/.notdef] ->> endobj -130 0 obj << -/Length1 2138 -/Length2 15267 -/Length3 532 -/Length 17937 ->> -stream -%!PS-AdobeFont-1.1: CMR10 1.00B -%%CreationDate: 1992 Feb 19 19:54:52 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /ERUVLL+CMR10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 11 /ff put -dup 12 /fi put -dup 13 /fl put -dup 14 /ffi put -dup 20 /caron put -dup 33 /exclam put -dup 34 /quotedblright put -dup 39 /quoteright put -dup 40 /parenleft put -dup 41 /parenright put -dup 43 /plus put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 47 /slash put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 56 /eight put -dup 57 /nine put -dup 58 /colon put -dup 59 /semicolon put -dup 61 /equal put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 74 /J put -dup 75 /K put -dup 76 /L put -dup 77 /M put -dup 78 /N put -dup 79 /O put -dup 80 /P put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 87 /W put -dup 88 /X put -dup 89 /Y put -dup 91 /bracketleft put -dup 92 /quotedblleft put -dup 93 /bracketright put -dup 96 /quoteleft put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 106 /j put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -dup 123 /endash put -dup 124 /emdash put -dup 126 /tilde put -dup 127 /dieresis put -readonly def -/FontBBox{-251 -250 1009 969}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª*Bg·N³ÀÓ½ ƒØ‘l¦ÊKq*Þ²Xú«šææwüsŠ¼|QÍFïq˜Õþæv`æšz¹XòšMyåp"÷ƒë»¶Ôôì5OÒÞË©”Y¤ÅðÆë¡P(DTçÜ!Á[v´Á›„67XFšlU‡…²&3!R˜q©ˆ4‡Ýw”’Ýσ~j‡¸+Ûño¼uú£ “þ\÷c¼3Râ*Rç?쨤‡±ÿÄȯ@› gSr æÚRÊIƒž†¯zE_ÑðÎEˆMvï,¹¼X!ý%6]Þ¦ä_3+_h¤JØ¥0ð’£o¬'ùzþê –ø9¢¼K“$à€ï|“t¡V\)Z! ¹j#ZÅš›Ðz1ôœUA~ -"p?”ÿ{u@š]A}¦s -iãújB)ü~Ob ÄÆ°Ê{z;þ¨Oí9ÌûmT[²¼Äž^—d«”UlÔð$ïW›h¶Ü:¯„ ?Æ‚(r6Ž;BtÝÊ6¯cFÁCÇrÌ$/;!,K×q¡§Lš”í“¥ûeWôàuG¯× ˜ì£¸®h˜7–åñIQß[u2¢0ý£µuZ8µç—*«Á# ™üøq¸Ûô•Pºêœñ¹|¿ÇÌ–IŽÌ“‹¶pe}é#¦YÛ‡W{ -Hs(çãùÃ}ˆ²„CE à¼îêäŒÍcˆóü;ïØÙÄ[e/SmV&±ÿ -i×2Ç¡ƒmc\0ÀkíC'sp)åºX0¹èŠ@$Ã2jÒóOGµG9´ˆ%­f™÷ÑêLJìD@¿mª™Þý2b5–\cdy!‚‹òiìÈz+Œ­lx¶åa°—¾+ÇÊ2´S@uöIéYÑö5F>qgžROEowK*øþóØÆ;/‹™þsºD³Ï¦G£Ç¡Íx=>´JÎå u›jLDfâØ÷džk­åß4ÒÆü‚ÉëÔØ.ä -vî¬Ë|Î1wªm·à% Q–iw½Œý½ôÐXDN}}‘xê™|¾E.gK{£Í ôTü¦ š >kµ&ÒÕµ2áÒ ±^S¼¸ãàg³ÒÝ,¹°m1"§7CSÔ-éƶ’kýDßÑDëíÿ K›Ò-syRbþêþ1ȧ!ÂÔj  h©— ñêO¡Vk–â!†JE¢JÚìcöŸÑƒvÓ˜DI¡ù˜Ã¨þ6ÐÕ¤–%;¶º>fÿA/j2C?ø½)hלä':ÐàÍÚQS¿ø¤j"Dù9JIÓ9÷cõ§A<)3k!Ì°#pZõ‰°x7cTþ6«]tN7‘‰ˆË[Ä„T‹ë ç(ŽæWê Ŭèèø$»a¤ 8«|G¸s‘aw’‹%e©;'¥sÀ]6íØò|²Ç“7©¹!µib€¥_,¶{d)>®¥¢CõoÐw<£]÷=(d<%! Î%ózP•Ö圯ÙÑÛ ~­ELFMöÿ]Ô#9yzå®Fp„UÀ9nèÆ6P²ýn&([ƒ,þn§é–e¢$É<lí&&9?³œÿ1ÒÞó{¹¸ƒ3OQêC3/áãü‘†LŠêy§&ù$¯ØO/Bûy_ÄÏüƒ\¹ã)GªK¸À\biß1麎!|Ûú×ÄÔ€ëÁë9`)ÍæÂ'£g­rƒK©U9Óš8ê £Ï#÷’Ï1[ª£‹¼¶ß¨ D“P%ó<6–ÚÖ ­õ„ÇË)å#êKÿÎó @"»¾ ©H>èêÀ}Xbg* f‘t‚½ ua¢cÀÀò@fûæ Qó»ògQAóûDWÌ*”¤‘ê -²¦ÏT »ˆ‡¶Þq^ÛAë¹Ð]JFrõ49{•)ï‡C¾ˆ»¡ à¤bY/*§¶8â œŠ:‚yw«X«÷R[á]¶lèé¸WU sµ…ß?§ R1ÄGÅrNs ú5íW#oXÊŽïZmÓ3·Ž‘ä×.ûý@¥¢&› ýŸ|48ÛXùKP~¹02ù™åñ]Ÿ]Œ°1»¿¼¨¡ZazÎÝç ÙÂÙî!Ÿ±zÙ´¿WzF™F‰Ñ¼ji…ÿ_ZgÖ™Âý(Ùå¼­TSîÅh({׸‡'&Œ҈´ÞÒ$k„5w4P¶åvRÏ.'ý°ÿûá,¡:Ïd4®ôµžÿ> ±è}5[U¬c1gZƒ£VÀwêæò÷ÑÝí0 ¤80¸O -jìV-0#'lYMYßo#{€µNºäˆ -ó8•k>;¸¼w‹àö}„“œ(x´>ªE¿âWò,(ÂÁHÿH„=+RbaHãʧE'¹òFÁ{Þ!Æçê´k¶ÙèIÍ2Ľž@Zÿã:¢®l%ê&¼#Ö‰†c“f¹œ‡5™ë·mqbªfzÞITбá€'úÂFŒ²þ¢VŽ#ÛÂ鶡¿!š‰ãç((²x\‹&7óh©>«EŸ€Pd5¾#¨S––ž*ÄàÖä°‹êÍIï‰BÁ¹hCDBC”³6õeÑb/Ëx;¼¢õJ(M ¤ávId¤­©îv‰°š0_È$Ÿ öc"àU·ùú‡9KÿE!ÈS~Ž³ü¤:N$Y=e5k–ÎœUÞÕhöÆ¢W`¿6#“Ÿ€"aTÈ8=a4±Elê62†"Aw>ÍTO2hH(ÿ1ÃÓžåý(·è4¬k§O!èÑšù¾]rhŸÛ†`Î\@ˆ”µÄSüMJ'Nl§ - µ’©oÖ—|Žƒ%mvƒÎäªß˜¤à]Ç;Ètº•ÖŶwTÔÕÍæbÀÚÕbè<ôN6ý@ (îDýTF;¨’_7Ò;k)8é> HtÿLÕIá…¸‹—À G\vàÛ`™±yrˆ Öv“Ž‰W„Öå$J«¿ ZÁj%Ñý-¦«è–-À‹å<0:¼xî,Q´»\ö"Oc+žgwpâw­OÕ#~‚ˆŸ:þ> Q99«ÁA£ÞªÁÛŠdƒþ¿ #Üt¼Ôe/MòrÛÍuŸÜ‚ÚÊû¶¿0ºßÃÕgÕ6œtô?d2W¹ê¬ÌO¶¨ï‚p­[)„ ˆz}- ÔC*EñBFaÂfê]Øâø(h$ É°µH°†å%U1X®¾Êà‚š^Q’“Ùm¹¢K¨ŽQú(6½j^RÄ¿É­V$a5é\˜úÞ3çM¼úº‡–pÞX!µW¥Ýœ“¢E”ªÀk,»1‹ì}wJ¸Õ l$µéñJ4ãï#u“ØaÁ8'ÍsheNö@â@»#¾l´ma¬ qËýEÞ0ë<²”½—é-|Nx«E#Y¶A…oó¿½ÁòNô¤©Ùp¶Ï[_)¤g®3"g=¤rN’ЄìºåæÒ øð“Ù>ú2ÆDñ §„ÈRÇ´ªv‘Ìõ' hslª™F.¦/5•†YL¡§˜ô´½®oÊF+ÿß=æ7u¶¡ÝI<ÚÙ ZÔ¨ÿëçuV &ûïóûÍÅhižÕü\fæqßÃÁaó^Õ84íY3Ý'óFÁ¬ƒÍâú…ó&Lœ2ÑSì=ƒ{‹Š ._~üfå4sÁ­ÒõÿŠ~35⺩s8ðF)í ¡4˜“¾$ täf@ôü*­Rª"£KŽ‡ ~i;¢ÛTšq´|o¨Wm -owmsÈfÚn0\R¦ÃU¿Í’*èý ~{–x£*•»Ço§Á0z9KA«Œ5sØF`­X+ã0Œ§g•ý3‚_en“ŠšÁ¬øÑÃtMÍü ‡Ø¦bó·ÇuêA<œGåŠfäŠúÙ߉GÓ™.òîø4ÞW òÔàÈ2~”u5”’Áß8íŽc'WŒAByØ/“hÜœ]?—îU`½7÷b& $ÂP'ð(Á÷¦*ºhkw®Oä½8lþGcšTæ$2 ¼b†Ê+(3[aØ^ ?çõz%ðmœÀz3Ï™#'^› I²Ë¤q$ûEÒ@ð{6¥pyçG2¸l¹=ã&²º43@w¯Ì¡cW´<™Ü),—¶Ø²`ZÕ ¯'ïì@´–ð´9©¹›ÌÅ\Ÿ@¬Îë'J’Ž¾I1S¡ò=1 ´¥›ô>3 -TÅ´ˆß /3ã•»¿©³>‡*FˆaäóÍï…5¯"Ë­Ú(t›µ/Nhjô5¹Ù£}EaÑEéOuÐv:Ͷgñˆì`³èLþ¸‡öK@‹m3-%#ÈÒn »Hmp,ví¸ÈRM‰¦„ùÞ?‰… † Z¬š|9Á Ýï³Ôª6‡ -æœu\Æï§à«dÕâÊEÐù4Bl:6A$ÀÞ„M¯ˆ©€{>ËJHÒ’ç³6ìúíJ«4L•T*GylÕM‚1‹zWW¸qhG¶ÕÉ#˜1NB!¡wÃA ¸ ½Ñ@¦²Õ‘í±”âWÐ2GßKå,?AÅ–•kÄ™Ñ+±ƒEÕPXxp–€·L÷^b ½@3 f*ÖÜ)u&|:1£ŒClÓäÃÅœ4ê"TðtÝ´ýêa{ ÈŽÜ˜x¦3ÃÒ$–ï[ -Êê6³  9éo®dW¡n‰g>Iêgzª€ÎØÊü#Š… ²B,âÔ*JÖJ¬] b„-†òx·wvqˆí£¹ˆD¨¬ü~†F -·áÜ>QMq>“Ö€MOÔiÓïiçªÀN}„O?èâs2J+(Á¨pí*$ÒTƒŠ 0\ÝÔcb×0=¤ÏÖÁ´«Àà;ïϘqå; ¸¼ŒØì 'Á$.ÃõáJÒÞSÀ('úO-Òï-^j¨¢÷ -³ ¬è$ò3gŠ¡?} š‹8˫ᆘ[\^)â~Vc”Hþ¸«àèí4Óás7bÿU¬‘¶…{M·•Û—XÀЇšuÜãõs1=ñWEwš ?”/Rp¨?åÝõ|ŠlÉ~êÍ]Dë²Ý=ØV»º[üKZâ»Øp&™N£’÷ÉÝ‚bô"‰l=šTÏÛêT˼ð`ƒ|Qò“à¬#ØòmU8zѱÐM"?¼Ž -’ë_Y?ãòʤ19 6+ÍÖà?²º]ãÄGÃ(ŸU§ï<­f6i:7Iš•Õm·ûÈ`©çµIÖìbs81E1[ŒÂ.¤Šÿ;Týú»3À¾…¸ž"˜—¯Í¤^ÖãTÏÕñ5D+Ú¡¦âZÞEÙQûsIiÚÿ²øoX#ºÁ-#ïèŒû‘0ˆ³`b t˜}Õ=…x©ì­ï}ʤ<ÕF—)s TY2äßQ¥t뾃ԥ a^¼ß`:p•äms4Q4U›\ùÿìµã"ÊÖ ÙÞJ žØÁÂd¾%&êWÆ,ržŽújkËnX4©ÌWÙß*g¸×9HsT²_¤÷uÄÅ¥EQ<} ]­„Äü˜µ¶*.ËcÃò¤r+@çÁOëgÅ}ùåQ÷™©Æzqvî5C¶¡©ËF³™j\ æ}oÉï$ö Ë(ß.tQú 0°Q­ð¾ª8#q ÿžæ›™HhtPèÙ´õÜ$)P‡ÈTç' ë#λ„Ÿ ͧO]†Ç„hèþ¢-±µÌk!Bv<í.#õ«ÏÄEªIûÕ\Ü&Cn•xÔ¿›æÄkÈÚLVkÜ—ZÖØwcx .$(õ,2Éy£îÁa… -70+* m’çQÔŸÚVµQJ€ýI„@»!×»ÉE>hàpùœ®&À.4ÇÞ!HÝÌž$¯ü‘‚‹ÉüQäå'>ù¦êrhÌDÉPäg„s'§¥¤þ,UFØ0Tö;Z^!+"ª‚]WõÉ–P2¸JoIr,°¡?½!Ø2hÿÔ¶…ƒÑ¢ž–# 0ÒØóË4ËŒŒ ’°>ô(¨Í…e&¡vËÖzeêçsQ#ì¬Z ]Í»8 §ŠåV¾Æ¿.»ö:`²åpaÆisæfÁ/£cÞj¯„_(¥T[ñùN±Mš‚i†ár}öO™Ýbe,OÉ¥Òœoíh經F;Óô3®ÙþÍ bƾ¥ß/Õ¦²mþ¿òÀ$ÃRЭ,¥K=¬ ä„} #[SúDF¦’K‰Stl#×jú#ö6,Ì~:VŠ…Ù kU—€ï„>¨ ßîýìÀ¯B]‹(r°@qá´eBý\äZõY\Žˆ`øŽ×”ù°‘˜UÖÿäÍÃïNŽxî÷*rcÝzîlC^ÇÌr]GÆ› =Œ[©ó¨MÞ°)žgd-Â$XT jdH0³:ˆºŒ1|¹ ­÷si6ЧXxè²ÑѶ5~‘0n1B¶úÚzmòÛŸÊoü‰`Þ[©–b:ƒ *6ÝÊú±ÿÇCéÊËæýæIÔ•nz$×:€˜]ëS«ßýèEJ?·ÚHœsO±1H¨V>·Ø6ª=M‡’Œ5BÒ½ª4'âkåï¸Ë|¥3í0zâúíOfN¨þÜ]SrBZK”Pvc·c+§%[P—9¿êÏÔ”0Ó¼ ü¸LÌVœ`U*¼¢zH¢ÏØ0£¦¶á¯Oâ„ÀH/|?¢ÒAm†«\n£<ö5A²¤¼êÏÂ÷оw -Þâ†Þ%g8äIí’X%Ç_½_ -:f®dŽhˆž£ß‘®¾*ùRÈNÆÍóþpw+d‡J¥ˆdÁ‰‡[)KZ¿%ÒþŸ2U³ÁÍ3FùA~♼ÅíÚvQ{—½9‹}¥*dT²Î”=ãr§v8ª.ïžíëÿG†«§4·"ç¾ ° È6¨/AĨ93à¶,2î¸|>aš$s¿9Õ j[& ³lZ Ì¿Q൑ 4ö*hï$„˓醜~‡¿¸‹Î=¸ö©Ÿ¸‘|dåìs¦’uð½Ï†sß]ÐM?òÀ§¨pm<õË5‰aô¢¨ÞKÞ)EO¯ËT6Íc+O=ñ±Æ'å{«¸4Ы‡`cªø¥6Æ„(äf³2«µç’eV(Â/Ùn>½,¨BÓ-Š²D±´j€ÑûWB¢@ˆŽéºïè -z'˜ÌRÎq¾ÎZùAåø–¬z!WP%RÄì¾'º{²·âËRVшšìPç9ŽXÚáÀ6ô´c€]ÔCäðؘМ¾Óþü…ÀÑ|cÒhz…ñë(0wŠv‘všØ¯Y˜yЪp—#¡»:<ÞŠ•v„“O% Á@¾èhßäûiÜ´wâI,‡Æ€*bxÀ\I P ÔjF‘¨oÇÐÈ{ã¼®{Ÿ»lÄ¥êDK÷>£ž ºZ¡tRý:°\S–«Ù…£(d1ô*¾”,œ=ãÚ ¥pôòWßMåöó ¬§íÔôvkr  QNIasì-/að'kÜLU=s{ì+Lã4±¢º­Qy"Î;Ð!DÀ [  ìãÙx˨Zæð=àBµ#(«–>sCs3¯“Ž³NQܧÙ%à¿aRïÈÝËLö¨¹cš ÿê  -7åÜ~ò©‡\Ûú45浃ýÜLâ—t‰ Oh$£ö¯×.arƒYº—7ÝÛ£nC[½/Ö´bd$òÜCÖ¨L›B&‘hÓžXo+`­pÙ<åŠâ¢šM…úîã'žÁ²ø»{˜ KHãÉP}[ϷΡâX2œ‰f^סE:B0~7.õÎY¦ïE¼Òxg‰i‰Ž=ÀÏæd8ø.H -r8 yçɃ< ÛjõÉ,Hàvm.º³’¡µ<ÿ -<=Œk-ö©b…€SEDŠÏøTçáÍ÷‰þ9Ìš¸¿jbê?l^ÆÚÚ8Äð⋶î”c¯gEx«:“MP‰õO˜•Ñ;z6âöMù¨á -l´ÔÄJt ãTÃYuÛ½Lüú›»BCJ­µ&) ÉtJ6L¢˜ëý:Ôs`ù(ÎçH£½žÉüÂDH“½;*º³5/Bá_›ì<ûWuj›s@Ýtñ6‹¦æÎYß4Q²à|Mý¾…á´6µÈvwįÕ-÷a“*ip•­’ߟtÖ}Û¿6¸Z¤õýå/-MÆmlD{ Wˆm_ð/?‘µ½íz˜øwI-î¹ ·Ù<¶ÁQ;,â*i´¹æ2Ký‰œhXÀEPzŸirE¯HÉÏLÂq|ƒêÀÄ!‚,W¢²6•õÆ`ÐBãÕ ^Q,Š90X$¢œt*xŸ¢g #0ÖŸ»Œó§2ÂmS½\9måäÔ|-™­¢þÓhfŸˆ±`¿}G2͘›„W@uƒOr ©ŠøDõáBØXÚœÑLh'-¸rƒ26§ÆliæH^Ý2@(©×ª‡'ϯyO–!®ÛÁŽ ósÆdN -ÚÞyÓ·ylÛ§µü†¨u5] —þ–zëy½ÐYiïáü'cV*°€d™ªîylÛqfÂgoŒp‚ÚËgœâIç"9vŸ·®ìE FøÞ Þ+ˆ>hü7ÆAP Á§Jˆw¸=iùy=ü‹cØ,rŒKcÚ@6 -«¥Jܺr·Ýºþ.±<7Â*¶™Ü³W‹€…¶ô·÷ý¿i<±:m1¡FG³öbëÞC‡€{‘ €*Çe0ÄR’_¿¯þ£¿ˆ;2N¿¡’0ä8¸?eU†šÍZÏød‡Ð§â;sl-%ôê¼L,ÆÒ3Jв.qž R°Ÿ‘Õ§Üâ<¶¬~TŠ8>¬1írKê€4aCt”˜ùá˜N‹ ÀgÎÞP-¸Zù‚òU‡Šê7‚¼º|ûN…\BÙ܃AE˜ßz!U9vù “RjD8€ÂŽ@Ô6'gç¨û¸4OÖüʶnj…Õq?gaŠÞ>®¿**ˆbm¥"ÜÉ`Dç´ö‚t÷¼‚º‰Sä'ßc]ã -<„öSÖA óÎïcßx€ŽöG¸]íZµikâ4PÌX̦²óÛ? - -cq5A³ƒc™°]­5ý…Iv´‹ŒCRD¦šˆ\óªJÚ>8ýüÿ—‘ ^§qr¸w4:3‡q*æ¥+ûÄ3—7<ó^Ã+K ƒ‡55?åòЯò^W¯è2Ä“WTÁ»kZØÖêYáü ô 2XÍ3íR¼IbÙÕíËlîËŸƒQóÐBÖ+±8ƒà^«ɽʓ¼8Ô×[ìÅeÆþ?Ó¡sržj87Ãöá|#GcGxŸ' ­9\Ñ]h -Jvy òÛóg+¸5œi'îLÀõ&…Dý2AÚ|ìáæbr´½Ðý†J×î{¤b¢6?’MÓËd#Ò‚è@ütø[¼fè>K䇛Ôd;­&œÿ¬”0œLºåÈ¥¤&oeêã³`#ðšØ@5'9 -{ ­Þ•5o¾>¨Ü²/KwÅ×)1N³I³Nå'Ë8Ô„ä"»åVÅDbO&—†ÇýÜ`ÀHªE|429»vÝöŽ$\¤E_>Ÿ@rµ#-~„‰Ml¹2qŸðbËØZ®f`‚1³u!LS…plRý{ÜS™÷©ølyȬhú»¸ê÷P)ewÕìùèªÎÅάþC ¡Gkض¡mAt„8¶gC¦½ÍŒñó=‘ñTÅQ¡ß&½¥týFÅ1l‹Ñc ÞÉYÇ=¯òk‚»<2F'RÄ€bõ1*{ -VÏ÷uÙIô=¶cøVt±ƒú‹C~JLGœ&æÕÀ÷o_µªR6jÛct†½(’ o@!›­ÿ㺼jÒW¶£O@¼¬ú>Ÿ–6u{Ó:›°@(¼õÔ6.|b0•G‡1‰Ï‰»+=¿ˆúd¿YÓ–â^³áªtjÛ&Ÿ×ŠéþØ’ð]®Ñ˸Ûꆆ‹;u»›šxJ«‹d‰'ïÌo¢û³¿2£~³] ÎÁ¦c,'Ý™ìødÜlQر€÷qogâ´ÖP) -‚Ò‹ÍËŽeF1õ†ÇC¡ ËÖÌGRõLÕ.OÉûN2¸3e¥:4O@]'13i’(Æ.(èÉRª’T†ò`Ŧ;8䥨m­ºÑœÀåæg’ÞÅ»Çá2΢ @“pR†ÿt}1[Üڮ(÷à'ÊÄ:®uZiò–“,½ÇOýZ¥t®nÂÇg†P̉+_ÉDE ˆj륅°ð¢¦±yÂ×¹cÑÍ wÇ;ªáÊØÉ—ç±½"äS7jxqÌ|ÃÑ3%ÛÍÙ®êRÜaÒ¯tÇ®¾çqY½B‘XpÊ™êL‹-å{å¾ülqÁ !}}ØÍmî_Û—/ì@žÌ|£âY–[ü†¥е•47 K” Ñ$´rõ__zä`á4Ѻ©N°)ô#l••ð‡«Ãú2Ü>$U|S‡´E‹kd@t7½Y‚¡ŒÍ+Ç1%ÕN ¢fÉÙ€³)‹¼É™vS¸2H§æ·µ Ë -æ„åUw|¬¼döÞU´ÍƒühéXRép)[û7F[}~71Äk;n´Š?J$,”Ïç‚y-]1‡ÕþqˆÉ¶¸?qh»9xp;îHì}Ìt‹õÙÈøèùŒÔ°IIûìoö'ˆººlFá¤NÕ/d^Ƽ¤d)NEÊ<¿ƒ°}ÖZÒ§[°à ³0U^êdº];¨ƒ¡£Š ¦öó«cGïàå¢ë×/!Ã/7 CÁ!RdŽ¢N`ÎF‘[¡35 Ë:ß|‚m\CÖõ#á Lä…t¿ÉgäÙ‰›TimK*h[rŠe­Bd,I®­×› NŒÅ7å&NÇaÐ -Î¥2ö¨Û€‚¢ÏêšZ¸ -Ú,˜“–ÂCQÌ<ƒ…euAª7R% ÿèèÎÿÝz5©†u3ù8(:@r”†°—â<­Æy]Ñþ/|"JY§G u?ÓŽc/®o¡©jx7eJ ¿û“óKíäN™Ä#¸UBhÁ=øѱ ~òbó˜yDrÝgãßiwÝ«…@ßS·UÊrøY%ŸË`´莊ö4•éuK÷W -aoÑÃÓ·Ñ€‹‘õΪ®Ó,eq‚ÎüÛ;e ½ŸÁ¸ 8`_l¬ -ÒÈ3Šjljáåþ¾R-³ÙîXó»´\èÕ€¬8}óáÎÅAõË;¹Æv  «òn”'þTÌѵ ¿ç£®]ÃqàìñŒÞ VÈEƒ ÀHgwÀ\¤NÉN‰cÖ7Îê–ð•BúTNÔÄõ÷ ÔîÈ02ÄÉÊóøòVÇÜæËT™Õq¼xyŠƒ¶äêÒ‹EKö¦O\;ëå±ØÁýàu?¸d^åÊJ-¸ -–6‰p‰º5Þ3+5MàáâU¿é~8ü™y{»» ƒÀ€5þ4` ËŠa¯Äa­c—XîûR@{›Y%×B^qØÆÀÀnÄ°™4TÏ&ÇѳÀã_õCMlt^îÁ‘MS¸ïÄRtÂLÀ;«ùœ ª|ÄãG™­PêX‘Àj6,ò&z½«Ð.žì§©x餡øÎ[5O‰Dýúˆ3'Ù +Ïæx@7ד—}HµŒ;{&ü¦lëéí^v}ÌYMJzEg*]Jµëزè XÐ}Î<^öH.8=Šrr¶.Và]Àw¿;ó—WÄ1žC¬¥× œÀs¤†™¦‘`–'w”ä¡€>‘[sI zË&‡®CYF=ªE±Ç€œ‘„ƒeÓXW²¾na‡.€#p‡³äͤ òÛå%8¯`úî¤àıãO¯¦Ucº7EFkšþËÏ¿’¿k2ݼC-ÇsÍt>cSÑW?›ÇþQðÕ†j¦Ø††¦ fÓbl·è¶ñ6š!¢~‚ˆ‘ôGšÂf‹Lú”:ë-³^Êàá£IKV ër‡B»0ùßÆz"Œ8«èº Áñi¡£û«ý*3žÃ„¼óg*¨ W7#èe‹øâ0¹O&}¡rø[¬¬çáÛ$À#Hhcë(Gp²eÆ“áÒø^°õ€ó«¸Ò67ST}Áâ§ÈTÉ•±£«‘#écÆ š®I?8´ûÅw9S’ÏA{!§\­V%ü+OñÐëï—ÙÚI)Ü’TÑ3ôòÉãSzÜ îŽbÌdÎÜ/8ͤ|mÌšÒLþ¦ìã ¸ 3ºK„ç(ùI>U¼í2ª®Ó<æüvæ­ê€iø·¤ÅÈ£¬”ŸqÓ[ A¯ææGa…&£ô"Ï]«&н¯9L¯´ª{ -"Ò.ÃBaš¬#-¢s‡ÀvæÔ8æZéÐ N¸¶¼#™´ZË‹ñ~ê²/ØârïⲪ,1Ï~þ7¢Ð}µ8—ïøöගq0¸öî3x¿ÀûAZ”øì–ÿŒ¯cY „?¬ÝÎ_:µTÁáJen°ÅN¾ÃyâEïf‚nž–19ï&W„€C(°o¡äÜ Ÿðqבq&¦Âãzj‚\± ˃w-¨Ó~Ø|*óøù:ºe¥ü±€¹t&y}@u·Õ­Ð † ñjß>j2ªð1ûM ö‘%òVÕŽ‡`£F=âÌÆ`¤tV·ŒÝ +K^Þ…)ÆÉP7BÖþ=¦R¯ºÀ´º@ÕWðϽx”·ðþ}‹¥ÂY1ú÷²‘s¥•êBh ‚^Âß朂nl%¤£²Î´Cî‰s½ý¤½‚] Õ°Q¥jÌŽ ÙºàuÆ¡]ÁEuèF Ðyç¤Ý®ˆ¨3£µzå£Àµ6µ](·çIõa·åfxÓéô':ü׫Ÿd@ -üÓ)Í`uAksèƒ2j†Ð"S[¥wg#Ašÿó‚ð@РGuðnÐÉb¬ƒÙ.=`ñ¤Yn©ÖŽÎ€îºvøλ t×/Ró=Ê,§¢’núˆiÀó¾a‡O(Äš+ôCèxØ`òÝhò´ßºo厜ÎæbÎn•2Úài³íqÜbD?ÜÜ"x}iVþ/¯—.o«ßYnË#1ëˆØ†[®¼^!> Õ_« ^F–ƉÒgÄ]—Óý»,›<Úòu6Y¾NÏüå4!"â\±8¿ƒÝÒ–Ê ˆÜý¡›V]‡±ÝÝZš l—¯]IDÀ¹FÉŒ<<ý%ð5Ò‚…ñZ‚9Ä~óý=¹µƒ‰£Ñ7›zò7eØDI”™Qó›*i˜Ø}±îdȨøªJ¾ºº¶¡ò+Ó¬L f˜aƒ2óµæ|#åkv`e”@öa© ^P†È⣷u å¾qä„KwRøhÊ“*vXÉ=!óâbbÞeØCè£ìw€Ì f÷1Ê#ÿŒ^«ÏtøÕÿœ/+>ƽÇM¸MqõáWzf¶IM3à>›žùÞþŽÞZum‚Ì‘ó)ÞisõýÅvÔü -&ÄÑ°vP<œ”ç+ ùeÿÖ6<ژѪ=‚ï²I%èXÛp`òÌ)˜\B0’ °®c“hž- ÈŠ°|VD•P‚í¸(A OX&æÖiÔ—á?SEr¬&4Phÿ€1Kh ˜Ñ¬gЉÜXÜVµo©ÇB#š’ŵp›ŸëTÀ“×O0kÏï,ñôÍg])Ã3îz¥6tȈnj&…µë!ÊîÔYŪ\ðê*„Rñ9®*)““×û},ŽZ¾uqKœÊzû0죢²óAìþÍ!Ã{g.©ÚˆBJïï¯IlªôÆmenY–•1‹ûŽ&Àµ;yÏjÔð„¦1Òm¨ëФÿÞ¬â¾YÚŒ5%l–z,i«í`^™±¦ -!‹4\ë.:O‡îŒÿ´õg­C¯Õ)N‘&üfZÜÚêøž¿´ùœ¨œÂÁž¯Le¤vZ¡…msL ¿Çv­Wà_2­!RS@te}d´>ü¡öÖ°xáwá4qÄc*#Ê)ݦ 8 ºv¹^'Û>ÿßL2h…¯ªºx„…Š`Ø~´÷›S0?ó¾ï<(dv Œh¨j$sôŽ½ÊÄ3dú¡­”éÁÏE‡ØR×múZÕ÷6z»À.­º}w7èpÆ 0¤XïÚ­tšDøqßLU¦"¦Ç3 -=¹å:¸ä.;Æ÷çeêP!Ëg6¨ˆwn¿å ÕA;¡)Q%•“¶¡Ü::-FEW<:œÛ=ilÄË Ø¤J$SÑVN’#Ë„ð4µ÷Ħ6°X˲ÅôRQöU¨ù îE$«©äÕb)ì­eö…œ#‘Z - -DÙR úB¶éé2y6_—<†¨~ ünŒÂ‰/3õÁï‘cOl ?xæJ»áÏà,-ÿÔ¨6ˆ'KVO-ìÀlòÞ~$/NÜÄ”£…ùò÷õ˜½ÕNc»®F&]ZÀ2ÜÁiâŠG€¥ÅzÈv¸ 3ÅèkÜMè¯©è ¾°j£DÙ\P§Ý¨ áºÌ×P€@U¡xwêD µõúøø*ýQœª‡ø,2ÀҌҠfLÝÈ’¸ö H¬Áêxûò,TÐÿ· ï{Eį́ú}åc[nË„—%;+¹ÜßøŽTXz«²OÝ®pÆQŸÏ–À“‡ôØ'ýB˜Èʘɫ«Ä 5då8ų}µ‚:@¡ýºòê*Ð7"Ý‘3 ,E†ÇØ, ËyCÍ:Áµëक़Zl›âìI¢+*í0G#ÜòúR?ÙH ú·ÀÔSÃ@,™ßíoéÿµÂš‚dÖÏD*(7T‚Á?ßKy ŠA7›±&KË^ <ŸÖ. ÂH·ˆ±³‰vÕïáÿ¾%Ùk²á¿úÝM@°4aÝM?)wïc‚Ó^ºu¸ -*cêùÈŒv({W@ñiÙUY-‚Ôþ•J¿èÐbCÕÝ•ëvžhh¤Ö¨>±)°“zÖê Kªd‹x­Ëg‘Œ>%û]­Å2`‰Ž†˜â#;IRQùÜ\Tte¢–‚†Å šv-nVÎ掟PwÂñ!Ñ@Ÿ­Wp$& ¬L§¶‹~êytÌ£hž-Ô$Ðp/¼GOÿýbŽRGµ—ZG/Mƒ»ÓC<™³%çbÐÂúç—À=è3Èè ª*nÑHؾ‚ÐN_ÊÔ’tdÏp#ißátùÆyãOG^*E¢,ˆum¦·Ý÷Ds”ì†|RÔyR!>ìÂæü! kÿ2Àa éœÓýEé\å(øþ4ÍhÙ9È&¾x{¤XHëéTjvG?‹¥¥ÐŸ*¾Z €¯fâÉŽÅ™3¢ãö%¤¸ä£Z³WH ã¿h~«öº',‰UM°[ÏïÉl¨sÖZ›unØB;t¾Øë -xìnH}ûÖÉÇô’Ab–k)5†À‹$ݘ>¹Wø²êýÀëzrÛä¢ó¼ÛX@yB1ZIãø{mB™öÐSÿÅ(§c‹Dþ¼ˆ›q#Áëõ _w!'k%+ò³Ù×»rÀ|ÞàÃá“’Ú Û¬k…Ä^¥Î<æ B5:(b€ˆ^¢Í!µ{“9°ð'y«ãau¹GWÂ\Æ -©úØp Y3åxóD®×¥ï²-ÇPdª)^ß5ØZ/ûok¯á•Àœ'ô:ÿ¯CUŸ¢+®*ÓžŠÖ*‘çËÓÙ¯sE³æ×ËMs¦>Øe2Ò£›rr´x,×ÞˆE0E8ÆŽ›P¡7Ëÿ5‹·ÆmÊœß#¬è)çruGíM’M ÌU­£¡ÚýX‘·Õ¤¿#o*-YðÙc¸1&"ÿ;hîÎ'©JkïA³$Ì Rä¥ó±G6FMÜ3G(`AÝz|=ëùöÚ\VʪÂhmí0-ºåeÃÁë§G©ïø3.¹=lÒclåi¥Ë>}úÝTÄ&«LûQ™›¹Ó ,¨gn¯ópÉê ¼^mdºÒåF6 ; /ĹžlT+M¿/OïG±%é JÉcG¬ -y"ÆÈ7ÒGopô°;…wµ÷¿®nÛdÙmjÃR¬²ìÄ>y”ê£Ï^4o8¾ÒÁzª\1R¾ÿ<“u¨z.†0ãŠ[ñž ã´HŽ4/à‡ A'U©Õk±£õµë¦Þ>åõÁØ°¶½ K€"oªQš£_ìédB'ã)0Þç§*á¸71êN?ñþBáœÅ&Í݉45öVýðÌäªÃ¦KÞ {© (ØðX¢˜è ‰½K7[ Ã]S}ļ?Ëeäa|9Õê®x&×ÀTê©1ZpÆô”n,Ùžþ˜°BoôÁ õõ»ÜãÔ“qZ?HZáĨQѱ[j·×L®ºÇ3¥q ¶2Ï`'íq/[E¼ï@(˜•2-›@^}ßwZ­žòj'‡ž<“¼yÛ¬7ºCÜè[ ø¶:¿Ï2¯@;3%¬:!Âà‹¾ Åã:•4©DÙt*“{;ÖEO”+Ü$/§nØq[*ÙÍ7Òxäÿ$ hHÙœMóæhB„^˜IJh0œ¯ùÌÚ¦q;øð³ÀÅ¥½BEF„X]qâg‚S¶æ*¡¿Ïú‘ÊÉBå¾ãµVuáÕŽÒx¯a[ë*• HL\VòÖriÆñnúÎ%L$ÝØ̲T@jL“Psv¡¶’wRFÕÈðYKg/¨¯ë?®â6¶…kvÊŸ -3þí½RGsb -oM¬VŠÿWpð2¹Û‰ ùd?ª†–‰°— ØäsÃð‘ÀÞƃ› Ƚ‚Øʼn´N?[׈«‡Kh9(­M±vᦖ_6º㮘#±Ãñ}Ü…sJb¥…W¼¶˜4‰VÁ]A†È±´¼`V=ù¥`Š2b²ƒ3 -‚·^›Mx º³7=ÉD/\¡ïO_:ÚRÃz\]àZÕaº}v°.hJ3 EáÜ£€H¯ÒûŠ‚ã‹Hšž{†q¿¢T–Ú:Œ{\üäa(í„CþÿŽ¬žáA)b@«/zâò²VöãöÕ=›´5]^ÆþìÂæœþ½¿Ü5G°µŽý„ën;ddš+”Žv/q¡ª:î¾ïÞXÐT–_8[pâ¯×S)éT7<&ÂÖ>5êav¼Ú«à @zu3ù„Y¶W>wåÆøkòR¤â¨XÅìoêÀ"l2 ¼%:12p=Eú$ß’"-ðÛÚ›ûÑï#`åDœ‹£“["»=ˆMæS¤˜0›¾"KòÍ3w>@“kˆja–µi¹×Óå¢TV½^|áŽ]ª›)–n·®m›s€ïÇé -±ú¸[wF PÁï±wœêQ× âWn§Ïº“ÎĬy G‚ìÖèŽ4ìÝGgHÊÐDNÈ:Aâxò?÷yÔ -—ð_RPc “f©ñœ¨¼:Ë_ñÍðW©LªˆH|£ËîþMÎDou§Í¤ËЬe·Q˶ˆ”9CmÕ¸ý‚ªÂ7d{†CüÇôÂÖú#³WS<ŽǨô]ʤ¿º³!l‘Ù•«n .j…o?¾L‰bO}Ò-²Ön$9€Óº ëjñƒaÐŒóµPÌæó™aOöΉâ}ðª‡V’ª®ßËuxŸ8 ÙwºßoC0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -endstream -endobj -131 0 obj << -/Type /Font -/Subtype /Type1 -/Encoding 549 0 R -/FirstChar 11 -/LastChar 127 -/Widths 550 0 R -/BaseFont /ERUVLL+CMR10 -/FontDescriptor 129 0 R ->> endobj -129 0 obj << -/Ascent 694 -/CapHeight 683 -/Descent -194 -/FontName /ERUVLL+CMR10 -/ItalicAngle 0 -/StemV 69 -/XHeight 431 -/FontBBox [-251 -250 1009 969] -/Flags 4 -/CharSet (/ff/fi/fl/ffi/caron/exclam/quotedblright/quoteright/parenleft/parenright/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/W/X/Y/bracketleft/quotedblleft/bracketright/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/tilde/dieresis) -/FontFile 130 0 R ->> endobj -550 0 obj -[583 556 556 833 0 0 0 0 0 500 0 0 0 0 0 0 0 0 0 0 0 0 278 500 0 0 0 0 278 389 389 0 778 278 333 278 500 500 500 500 500 500 500 500 500 500 500 278 278 0 778 0 0 0 750 708 722 764 681 653 785 750 361 514 778 625 917 750 778 681 0 736 556 722 750 750 1028 750 750 0 278 500 278 0 0 278 500 556 444 556 444 306 500 556 278 306 528 278 833 556 500 556 528 392 394 389 556 528 722 528 528 444 500 1000 0 500 500 ] -endobj -549 0 obj << -/Type /Encoding -/Differences [ 0 /.notdef 11/ff/fi/fl/ffi 15/.notdef 20/caron 21/.notdef 33/exclam/quotedblright 35/.notdef 39/quoteright/parenleft/parenright 42/.notdef 43/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon 60/.notdef 61/equal 62/.notdef 65/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P 81/.notdef 82/R/S/T/U/V/W/X/Y 90/.notdef 91/bracketleft/quotedblleft/bracketright 94/.notdef 96/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash 125/.notdef 126/tilde/dieresis 128/.notdef] ->> endobj -118 0 obj << -/Length1 1339 -/Length2 7048 -/Length3 532 -/Length 8919 ->> -stream -%!PS-AdobeFont-1.1: CMR12 1.0 -%%CreationDate: 1991 Aug 20 16:38:05 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR12) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /VJXMMQ+CMR12 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 34 /quotedblright put -dup 44 /comma put -dup 45 /hyphen put -dup 46 /period put -dup 48 /zero put -dup 49 /one put -dup 50 /two put -dup 56 /eight put -dup 57 /nine put -dup 58 /colon put -dup 65 /A put -dup 67 /C put -dup 73 /I put -dup 78 /N put -dup 82 /R put -dup 83 /S put -dup 84 /T put -dup 85 /U put -dup 86 /V put -dup 92 /quotedblleft put -dup 97 /a put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 118 /v put -dup 119 /w put -dup 121 /y put -readonly def -/FontBBox{-34 -251 988 750}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª*Bg·N³ÀÓ½ ƒØ‘l¦ÊKq*Þ²Xú«šææwüsŠ¼|QÍFïq˜Õþæv`æšz¹XòšMyåp"÷ƒë»¶Ôôì5OÒÞË©”Y¤ÅðÆë¡P(DTçÜ!Á[v´Á›„67XFšlU‡…²&3!R˜q©ˆ4‡Ýw”’Ýσ~j‡¸+Ûño¼uú£ “þ\ôéÒ@[œÕ6]nÎÕ×hÖmlha‹ŒH+4Œ£Ž›¹ºüú­œ/?Ð3¶&˜nÔ=œ“a6E¸#’ÕÊá|´~.‚ÜÔ…Ë Lw2.²æ§sÜNYÁ ¢Ú»›÷.,òVÝnµNìºX«Ù3µ|裠Ñk(Q×IOs mõ;Üf»ø–µ‡ß–C1}_a Ù˜Io#Ýà0÷²wÝ™\‹œ®œ™ŠÄáPÍü,fí’ë´Ì *ªŒábG¡3ZÓ2Ú©PÒ•§8L3ÿrê£[‰vnc_EÄÀh­~èg9°|¹M)ÿ }Yÿ™aÑ•©HãØ|1‚’•¥m!‡[A˜z¡XpPÃÇNCU»7òUÖ²7ΖòTg÷¡ž…x_ôh”œÌyòø®WÕ÷›¹ÅÏ^í]˜W¹–}›–ÍÏsÕÖ_÷Zú»fs@ºâdYr ÈŸÑsy&vJ“Ðx´ë)Œ‡Öî¢Ý±®ˆÅ~ÏïKqä -4•Ü5h¨LÉ#q§‰:4pPý¦ì÷?gÒ |GJS†nœˆæ^i2º‡§6†ê°“‰øM˜ Ęz0í”.²° ¿õ¼Ç ôâvÃ3›1¶ê»°xCj »7}0a¢ ¹‡–¸`~ì¼i”Eê¨fÃŽí}O>ÛÊ&*ö¤g¯Ï¿60ÉCúL͘Šsc÷·^¯X0°IF +3yˆñP¹.˜žwPŨ=óv…H?†Ñôtxˆ??jKv¥ª‰èñcšÝJ’ ÞŠO(WfÀn¨Yc›’ÌÍÊõ›+¸ÕˆÊuMW¿÷kS˜Mô“p“ªïy2¢šLûa }gH,H×ùèA ­ngV¶U4çŸÑNòN6ð9î<¯Šo±\îV·¡‹\;ùÊ­àÀåT!6é¨oÜïd"‰œ±Ç.JCȦŽ<^"ɶ2±¤î§4¿8ÓÏ[;OªÔD$Ã×ÐŒµÑ§¢o/0ìÀ¹OýxõPÉ®^[­ÌVZÍ)£8¡I:¹±u{Ñ÷$¬ÛxRlþ4sñÈ''ö DñœaqÑûpBÏÅFW|>í_ÜtaLúBûß&ÍÅŠPp®9ÒLŽŠù–\Ó‡ÔÞ_FÁ£X¦…nY`2–œ²n6C5A„Bk@r©uŸW¥Px -…ÕŠš=ŽY4\æ‰'Ë7BÐÀÀÉÓÒ'ÁL`ûÒÔ²k¿ Ú‹X݇ΡdøÜ;’³ÑÏêu›Îõ+µ7  Ò¯SJ´k¦! ú•¶ÈË+ ¡úNò±ª÷ë0ó‚ÈÚ"FQê–¨Ö†‹Â©T»ìqÙ\Ü?¿ø2î˜4ÆA(ПSKߎèüŸÂæf‹’Ì-æp–E®MnÏá¤Ø™zÀHc"¢Ë€êtn@Üîyq+^Œà¹Ò÷>[JóýgX6W'×8épä­El/¯7d9Ûz…/šü1ã•3«×ÁÛcÕ¥ôgœ×Rt³šŽ>Ð"RóU΂@œ÷Gå&Œ}kÊqû9eô×#r%oª§ -äyÑ -Ú -iÚj‰$y™E¿oè‰â¥û6uH1ž’W/܆y©¬7s¾u,/R>^Yâ3›¦H¶·èù=çæ“jß=Jî'@Rf„Cþ‘>Ì®rÐÂX'Ñ´_Yb‡w@ÿׇ1ûY‹ÑíÊ žEe{¦I‹|"/në,rÅ#§µl%‚eŠ½“Udþ¦Ÿ$·qQíúóÞC×ýÃ]Ä¿™®d‚äaÛksëÄ’>>ñŒ²è -goê¢]ž¹ ;u¡]z¹þ_(óÚëüýÍ8Ñ‘lŒ\Ìu 6 I‘ª Ï ¥¸­p§>5?øfш+Ëê“2•0H/^s°’Ëá“oÐÖ^AïÊLÐ ±KëØ…ïmÈ6lR»|ÒU_ÊWÝF¥0š¥*hXq„×ë pi~ÑôöRðXå2oW;7“ÊâÛžGɨ" ÇÿmïCf®p Á _o6¢æçÊÞ¹lvfªÏ9êèj®à=^¯÷gÿLVû›²D¼3Up¥¥AÈžº¶?>†n\Ê%ºgFa46U9G>NÑþF0«iÒùqÁ£Ž£±îŒ,ìÔ½Ú”i¥a·çù¡°Óº/&ËÑÚÆÂ÷Éà3~§è×|"W§Šßýhm†O°€´%#aôûðR­Å}üUƒ˜IZ²)ED8öÑ8*»3¹Æø.|Ãzæ爎\(‰71·÷‰ï¶ßÓ;‘’|n¶ŒÆp§UW·* ^þÂþ;á&¬zDÚϤB×—iÄ‚éÒ¥p›âŠ#‚_á/Õ¿rCø‚ç…Œ`8]øèó»Dx!óahŽ®´¾sQµÙègIÌúm¼x^ï…±ò¹×Åösç}üh*U Á|R¡Óì*3uпÐBŸïdóÊ^ŸÛ´‚VÈ^ %ÐÐl´«hbF·há);¹\N=Îéq^ìh뜳T’)w7¤DEÆì³™5‘»ߢ+«‰”m"¨&ž›þkým9C™†÷ÖkŠEæ#Ëß"ñ“5¢-{6î¤ôüJ½Ê£Ž©üü•~*.%ÛÿŸݧ¹Ó×/LŠùñ¯R~ >ç£9 òÛ׸EЛêfŽ §®àAµ­©µþ23ücã.öþ•~›È>Þ,›á4ÚØ]¸‡Â[¿tNÂ3C9y(„dÀk<¡•kt28N½lÇ úBs-è›ÔxÚÑ*n©\ÿŠß†uøòxêµu æ…ÁÌW6þŠNÉ?¸ç“ÚHL¥Fåµ<Óª)‰åAÿºeðmX Þ¨KÕ¢ûykìµ,XTßÇäk=I·wÓv×EÌ¿<4B¨Òâž?  Ïª"KW¥^½œ2ý™ÇN÷Šj×8?±Œx±”‰Ç›0óvÎPzr‚ÌîjŽÄ|wqßó€z×VGÿ4`rÍúªµÊ( \D³Î‹±œ`MÐKûõ‘°û…léÜÿ13Óaš²ÉºUõZÀª‘'¸cÕÖѵڸt«yd~᧤;v…å‰g.öß’Šú1;‹%øiÊ[j›1 ŒöïùêA×aÚu‡ÔË*¦Ðʾû–7£ ðÃX™sDÉT&x9t„»{$4CJ…Æ£ìÝÛUã݈hðžxò·G¡0òX¹8aHª ÔkoºH1[ú¦&"cñÊggå×}rˆ}DÓá]1ï0Teˆ7õO·œAt»€_Ö¸¾ ŸùÞX.xzï.2ìn¦D_Ú°ì4½ô¶•8^T!±ªåÈ2˜¾Ë>Nœ’?ôb¾šü@=kþÀ¦Ö&ŠœÑ{.ò¹«þØ{=4âÏÒ> úN¢sëAæÌk¡NÉ‹g2Ÿ_¶#£©ö9£t¤c×ôÔ©¶‡5[‡ð¬åXâ·˜5ž¦Îú׊ÐÎL£q3Õ™í”gÆ ¤ì£~–È2g}÷Áá&Lh //Z+Á”ø—´9ÞëWú…­‹e4M„FuF -6°G)=yÓ-Àúë,Ÿ5è! ˜=‘â€6È+¼€(‘IÕí>‰=d©`ܯËÝ\ð*1áSkRì>“Áæþp„G”°ÈÎÖVë -6ˆËz=d:ì%q3œ4HžÒåµIÔŒA=,§Ç·²ƒê§;ÿé_!0ŽemÇ—£<Ðø±õ;êµe4õÿòØ4Ú&çíÚ¶‡¥6ÞæDW(O:JI†Fؾ/ùü f~ÑgCrù[=â} yÅLö±sW£jµ¾dP€3­2ìèuv®'ÀÚaˆjònîgŽbª_ÍŸ^œÆ¬•Í‚RÝ7LgwêȤe¯^855/N‘»½¡f#š'e>õ1Ÿm4Õ,H=”9þ‹³a&ÒI4¸Vâ‰Oš©%Ag&Þ(šá£žðVg(ˆͻΣß#ÿèš);¯Sz1¿ÒÚ’‹«H¶­…_aŸŒâö‡ºk‚¾†È:sÄï"Ç£¥Ò)‡´Ð'߈9Ã…ï¤e/èÂLBöøæΓËþ}ÙB•j2¢\€ % KëãP|@’m…hstz¡uŒ}ƒÛÇl>ú§P2‘£>ZÐòÚ»y**¼ÈÒÆ,Vì…Quï:&ÂzÉ ÍB[Þ?}°˜]o dš Ba]Ñþº^ -ÉxøÍ|¡M +–ž* -Å•~YpIÍȻ찎‰‚³œètt¯ÈÔüßãµf©r^K:?ZÂQ®ãž˜m{bà)3´õˆâ Çèý -ÙÌ@}ÿR–Q)ßjŸŠ7ºë¸|áœdL¼ž¹!71(^°¥l\Âòùúüû pìäßcÃqT%ðçºz ›7¤¤ÄÅjéY~C\e¡K~ú¼NÝÆ×HظZQ±±ÐYñ/oX{QVGŠVØ‚Âõ>eíg©¾F ·OšC¸ohþJñ»E¯´û¢V Ò3óEçHöd´Vð™ÛŽ#-±“ø„Ûu5R¤<—ÊH®aê[¥ÂVëšAaeDÿ·o¯šFûžCô¾Oh¨'Ô‹ntŒÞpÙÆrzŸù£7pƒ2QÐó »¶•ŒCF3ÿ€¬è==iÞ -Ç_dà³@wO¨°Oái³ÞѨO6óñjŽÃÛsćQö=]qìò\ ª$¼Æöy$ì™"fõî&Óœ…h~7zBw™?¶onp6³K¡nÖF*Ë)mJ-mœ¦åæÑã <#¬Õûc¡swŸ¼åz‘[¹Pf‰[±{Z뤶£® 3tÆ톴T¸¶.y¬úÁãÖOŸþÑML6«;=„ŒÇW°üëÅyóW²5ì(Ú%VFžiÚ>ŒDœËÈéK4ßÝ¿öàß‚ŽSJÉLj¯.j8FQ·‚ÛbL¶!Æ© RYq`¿×U‹—Õ‘°ËÿÜ^oÐä™[ÇÒ0î¬ùgÏd‰Ppi6åªædA=“5 SÉeÙšrÉ?&¬Ž`T|¸XºOSgÚŒài¼1ÿ.pï3ý1›§`=Œ4R/‰‰8LyXàt+νλuÖõ’Æ2IpðûÕ|jSMÁ§å’ß[x^muÐ9æÄÒw(QjßÞI"J"’>R…1åµÞàïƒõúœåÍc0RÁFcø’SÅÄ/–—¦`LŒ6ap‚_6”nºü²áh85M%±sBfè:z÷â9–v壉‰LM–v«Àæߟ‘Ⱦÿ[•Å„Š<ªQafG -=’ÂD cs{€8áÑòÛpÎPÅðO§ËI{F]R6{ÀÆ0þ[!<”—Á5®7ü2ìoSü—R« /.Å)q$©y™G€ærûêË­1ÂèóÝ -*öUàw¤sûÓqãl2Ü»Ýß0‘CWµ#`R3FþfÔËo¨ —/ïC1=îW¤žîzò€ü4 IXœààu¬x¼ê£v PŸÖα#  `\w·q=Ük»}PÝ»ôa‰t‡ùgþz£ùT`á$ÅI5jtì|^û~ò“g€nSüvzÉð~–Jã1®3Pxþ&)K¼ÒqÒ¿š=eOÏ—¶“©æO|þ[M/Š=ì깞Û_ Ñ52`÷¿#¥µ©ÚH¥™.¡ù ÙiÅ`¿«?ngo°Ñ¢`“¨pƒ«°Å=ÉR²¸Ǻ›ñsþ…;§Óvö©Óƒß%ßP•ÇH’8ñî0ñ ÞϬÑ=0ø[XøðDò5ë‡Rj¦Dæ"²Nfø•Á’€ÛUM5Ôìcð Îv\@& ÜÜ^¶2í ,q>â†l2ðÚvŸ÷N^¸¤öA²VÉp“w‰ -êñœ±3Ó††Ãâ¼99h\cÂ7j©mÛË?‘+šôãÙйžÞ]M2/MÚ+`ô7oÎQ 6ʳÑØ1p¹ Ø ܪڊdCQRÆcˆR 5÷¦ÚÙ-F_Ó9CwYµ¶¦ç×ÂG!æÍõIȨ˜"‡EðÛþ«9¤ka¼@‡C?m$ý‡Rºînýt< ¿“0¢ Þp'4 -ÔIàÑnæàÅòò,.Íé>œ£•§þß÷QÑ-Ï£¸€ƒ¼Nü¢ú‘ ³˜_#ÚÇâ?AzŠvn'5çm¸iñ‹§Z‡ƒþk¢ì_¥¢¨óì„ŠšÛò£*ÏíɉÁûªS¡‡6¼xâøULˆ™µEýŒÛ⯰þ7¸ïCˆÉ3Yzü‡ÓÎ_'º)émpßø÷&"Œ¸âÖL¨*¾ ]´ºø”û‡1ë…f"üTjuN[”Ïy!ãfüeÇ ^Ô€þŸ%¿“ámÙ-ûî¤AJž "Bã›éª®x¶þJ!ÛË´ZGû¡ÝE0›~¸1vçÚ’^Mz¡åøüƒ'3ñKdk}ÉÑ´†è^^ƒÃ7µoµšfë%JýËw+Âïã÷™îƒ ÙÇ¿Ç6•Ž’[³¹ìŸx{Ã]€µéµ6Ž$çCSàµÚ­{f} †–ˆxHî`²Æ/Ãz÷þ_C—ŸÖps¸‚‘íëžMT‚±¼õ9‰¼ÛŒÛÅdÁY\cb$QÍ9‹[ÁH´PîÝr¼š=+¨#cá¸Ô§óÕÄZœ'Ædž‚ÄR*FÐáqX£Dšr‡ðÇ^ro±q¦ŸŠÚØ&³8Ø#½Ùh@aº“¢Ñú‹=iüÓ -(f›Y—ô%Ëh¼ÌV&ë*ÚÉ,L~~C3DÒDBRth“žþ)ß:ž]Á ý5”¯èSIR/¾ô³>ª–ÌŠEÂ}’ëÛ¤5zi~û ·@yo¯qØæTͶA‘9vMú._î/@wŽhîT -_Z”¥0YÏRP©íÄð`”žÉÈ?¸o®¿­aAuÑØ(Ù `i.xɉ¹hõ6›¼B¢™wCÚ:?ÙÐÀ³€ááN ß$ËÞ ²k“J…ù=¡2øhÇ× -¤9p²²}бíÿ·.ÝøHp(°Ðü6:‰)ËX÷Ï~¿ºZ*NðÏ'‚ú®%t½Gï«çødE-n Mejú±?Aü™Vê¡êJM"f=—ñUݬó9–ÌÛDÉ|¶•ÝNG›>zMÚ)”Â@¬t‰.ÁZ—yË9Æ èI¥Ñ—%óvʺsœxb> }vŸïoÕȆfák‹äÖý'-t|ÅÔ»¿€Cc_êÞi2…PìyþòJ”{rÆeÀ-@qé}J¨EŸÃ Ñp_ ±‚¿!]úm™5Jm0'Ų›¦ xx?³¥wq9ZϯY=Ü:ðÃâv]> endobj -117 0 obj << -/Ascent 694 -/CapHeight 683 -/Descent -194 -/FontName /VJXMMQ+CMR12 -/ItalicAngle 0 -/StemV 65 -/XHeight 431 -/FontBBox [-34 -251 988 750] -/Flags 4 -/CharSet (/quotedblright/comma/hyphen/period/zero/one/two/eight/nine/colon/A/C/I/N/R/S/T/U/V/quotedblleft/a/c/d/e/f/g/h/i/l/m/n/o/p/r/s/t/v/w/y) -/FontFile 118 0 R ->> endobj -552 0 obj -[490 0 0 0 0 0 0 0 0 0 272 326 272 0 490 490 490 0 0 0 0 0 490 490 272 0 0 0 0 0 0 734 0 707 0 0 0 0 0 353 0 0 0 0 734 0 0 0 721 544 707 734 734 0 0 0 0 0 490 0 0 0 0 490 0 435 544 435 299 490 544 272 0 0 272 816 544 490 544 0 381 386 381 0 517 707 0 517 ] -endobj -551 0 obj << -/Type /Encoding -/Differences [ 0 /.notdef 34/quotedblright 35/.notdef 44/comma/hyphen/period 47/.notdef 48/zero/one/two 51/.notdef 56/eight/nine/colon 59/.notdef 65/A 66/.notdef 67/C 68/.notdef 73/I 74/.notdef 78/N 79/.notdef 82/R/S/T/U/V 87/.notdef 92/quotedblleft 93/.notdef 97/a 98/.notdef 99/c/d/e/f/g/h/i 106/.notdef 108/l/m/n/o/p 113/.notdef 114/r/s/t 117/.notdef 118/v/w 120/.notdef 121/y 122/.notdef] ->> endobj -115 0 obj << -/Length1 1144 -/Length2 6097 -/Length3 532 -/Length 7773 ->> -stream -%!PS-AdobeFont-1.1: CMTI12 1.0 -%%CreationDate: 1991 Aug 18 21:06:53 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMTI12) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /OTAOFX+CMTI12 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 45 /hyphen put -dup 65 /A put -dup 66 /B put -dup 68 /D put -dup 76 /L put -dup 77 /M put -dup 80 /P put -dup 83 /S put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -readonly def -/FontBBox{-36 -251 1103 750}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª)s™§„̾…´™;.ëÞ;Ôr·ÏTeò…ji«–íK­/df5à¶A|Ç{S/…ØÇ )¡šSïcë\^ÈŸÆÂm‰çÙäp·+ïÚ#õßv¾¯Lé17¢íŠ©×Öýó~kÍàÙ ˜d#å– -]Ÿ»L•eVèßËúìGo£oÙ¥È\šõþÙÂÝÒkÜ ™9‹ŸMÖ¨ð[G¯•ï(©ÅaÛܘÄ|õRPóÛ忲è>f·ù}Ý|àî·Zx½’'¿5+jÛŠÅz3þÔïp…±â¹3Þ`/÷gìÕtJã8¯) &÷Óh¬o%̸‚Û{sCVa’½h~I"Y‚‚0'Ó¶g; ·§æ€¦‚¹€#Óœ®¥Õ¸g ¦lŠ ÛÈ;–¨O6¬jy·g½Ìà -H@nÎ… -l‰²þÜ2qÂŽwÞ—Me]õÿ}Aíþq}’Šˆ_o¦ÏäÒÀ€Ž“yà–íÑ£ºg€+JIua; 5m˺ÔڳŞp¤pXõ!cÑsäÑø|:Jç#¢<ýy†üO½9“Géõ”cTàØ`üDjÿ DõÚ'Ìw|–­³ˆÑè5ÝËá#ûQvy¹·ïin QQ âdpAÀO¨ZH󬧨>5Õº )j¼YNÊ,²~’þÙ[Y\!å¿ §$ÔaË7{Þ_¹Œ-l ÉŒ@ƒéec!¿ÄEÍoÌ-ïâ}ÖúгR#±§ÖwŸ9Ç“O,;rЮmŽ;Ôxx]®§JøÇTƒ·eSë‘ZÀ_hîTÂì.iQZZ,álÑѽŒãf,”ΡYï§ñ0€0® WmNÒ²@*W.”2Pz¾%(~²¾ð|T£á©[ŠY7€Y@å—6‡òRI…‰µH®zÙÆu 9ˆx@’M·ÁˈY?Ölz"V -Ïyü³wN‘l¡|Ê‹K°¼º}amÝ¥ÍmÐ¥4•E)ö?w2?!‘5éÎeµoá©}¬ï¦8—úŽ°3,˜M㪉°8/­þ­qÇJé#ùÂTî]ÀÅgJjÜ\a£í—§ã3‡UÉxªs 2dÄ…O‰¨¶6MãYy,“}2žæˆCÚµÏ?Î|\ì,Äg'Žêmÿó¼˜ð·:ngÿö¾7X n¥ÆsVÍJ.·ùºÐ¶ÚŸHt‡ä”Ù>y#æd‹½Ü Ázþ^œ™J -ç?Ǹ^~˜:‚m-¹äÏûÙ G™èVÏŒlq•vç»Òî†OVÍýL6HÝÝ)Z²}kû%/{ËM…[˜¡Æ®û“,Þ³¼Ä£ìêJh6¶L;æþò9bÊJ—Í2(ƒƒ#ón9‡ÈÐ8Ý‚gPãÎü÷åOïÀ‹HÌAÕ¿—‘g„®¡Å4¹úÔŒ§J¤m7‹R.IõÍ7-¾‹Ìàí‚ÒÆõaª -7§°^8¥óA[Q«ú%[ò&?y¥.ø6Î=Þ#1ÁLšpÞ—U»ÆboûÇá80ΈzÀ‡M¶éZL¶½w Ýd¾GãôI—–c”Ë2qxø6uÛ“ ÷߈w‹¬Q?Jc³”9ÝÙûÑÈȳ6÷ù!¸Õt [jí„¡§x -j×4Óq©š!n£ÌõXû·;T:¹£4(ƒyÌs’©ý”lÄAœ­$5úëYc;UTž¸¥„~=*I™>7ä!Qø³äêݵۙ”®ãS…4 ®°7 ˆ·è0ÿ­*ÿ:æ9Ùüž¯….›0ïüÒŠ¢ë­;ÖŒZ¼F¯È0._ý=üÊù -\ÇHo8žÁŒsüÿ“hd¯(5û™iÿhSüº»«m™TïÃÁUuÑÙá*Œ};íZŸò&3±„ê~ÜÚGö|µÇõxG뇊çÕÄ;ÝVÀ§ÂÔï|£§Hø„y*ÞŸš›'B¨åAn°€ûÐsQë${ -¨]»d RÞžö^kžk´—`_\iæ#–ÎÔk6S£ÌJ|‘”;ð0óè ~N˜Æ;BnÁž¶ˆî6A±[Û¹!!…Üû›òø‰Ui~„ž¬L Ø-µââyjLaWðð°¶ ™¥±¨IñˆãXý!å›ì{–pè•6™ÿ³KË®ÁGPyì@t·?C±,7ådi…¯õ Åú²ßG+×êYO¬†Ú ¦q»½K×ñ]ïãs䉸„L¦¼È¿CuŠö-íãÐwçéìz•Â‹5ÄRÅrç¼¼;ªx5£Æ5‡ó)ëaX§ÆÚê_oÊ@(>·b`œZÆYˆºø*0úG)bå?j>µ`D!M/¨ás¡zgÿîVÚ’nmœã»A"ÝÀÓÐ:õÙ\¦²á^FjE8§föAZÕï$Ô/ó!ÍJí pQ»|•mz‰Û×½½£~`«±ùÄ; RÉê/c”Œ°yœ_o.#¥±ÂÞåíZ%·._ "‘~ÞGzÀ3S{kU2di0î“Põg®WþÈLR9„¤t)gº_ü[H¬ÝR¤Fòü–ÅÓ7$£–Þé®U‹Jnf‘ƒà¿R:w­¼L•å«ž<ä#$iŠ¡·Riô…~Ë:Ø&©¾¶ïÖJÚz¹}L‚ÒÃDÇEq¸Ý[·ô+'ÝîÌð8E‡î$uÍé|æÃ@ýÌcçEN‰ó//±š è ¸ÍøÊæ×Ïg*]­Ì›i´Næñz>¾¡¾¬[Z–Ðf\HH[òŽ#“ÆÁ ¡^ûÚ‡¬Úsf)l®KcjÉàŒ¬ý^Íœ€Å¸+£«Z­×êå|1ʧ¥XÒ„]kB!@$r6çÀ1ïÖ/@b÷ŠìžÌ¹„]UŽ+Ÿ´"C “yÔJµÜ†^x‡óZù‘IhsŽ‚ ÞG½ÕüjwD0ØH<¥¦ÎÀE 13ËÁÑ.Á÷ -BÆÍÃļ…𒺎mi©±cõÞ»ŒÝ"5úÎÄpÐñAŽÿ »t&X–/_e‘Ø÷]´À¥T¢_…°>X/qwŽÃ¨ŒԨцë™!ÈÏdv/¬â–V²õza¾Úæa¶A256EËÆ>ùy|t.¬šYn¬y )IÇ¢§g”/!Žf˜c¤v.Ï¿[ñáKTãiïZØŽº½¯f+NÀä/©Gú&ÖUPd÷Ÿ öK“^½¶¤ ZDé78Î&óŸ˜$Þ³>›‡µ’ŽÄ4lŽìÿŸºf@8}© Rø/oï¶ÈôåçY®TÌç/r¨ÅÙ²òÊkÃ&(º'o‹Š¼è1‰ÿi¥$ºà{X¦Îdd‰Æ G -Á‰ÀCöç³£‘¸ZGÖ&ÝÛ«ÞŒÚ=Hx7@F¨ùa”ôçק#KçÆ^Ĭd¤õÅøÉæÔ½!šñi##{¦U,. QNSõOÄWÒù~¹:%d¿·^]X$°©.ÿhs³q*…vo $Çæ±fÜp7výÙmòÃb¯ñL…ï‹p+™9'°ðr&ìÄÆÞyÆgê`*©ÆN…É k<¢GŒ¼UÉô§¿«ÒãWÂá&åŠ\ïÞfÕÜ@b÷7—¢2>?(Åä8…äŒjwÿxäŽÁúû£ûÌ]ÐPsì@ì±vV/UÔ.åƚƬOkàËŽ›(ís-0‹|!Šé+Lf€ÛE4ÔeøgórZè‹H–Êc'„t 4Ú'ˆÌe³ÌŽ «ÊDíK±íëMdÛåÖÁ~äÓZÊ0ÜøL"ß;ö¯g/#éáÕæè½ ¿)æˆa ÿJ¤KõÿdO*õâµÐ¢:²ÓßXv O.ÂuôÇcbʓ⬫û–Òà²QÃ?+Q¢³üÍÚ—UZhC•ìðÇÈ'gÇ)§ÒŠäÚÆTµÅì¨jío¢ÿA;’ž´ƒªý¼¬’—ŽûoT.:Áô¡w0MD|šw9„´aífVŽ8Jøº“‹ñÕëå5 -¾0Œ†dY89ÑÛ äI">/úñ‘·ñ31X¡øó‰5hkPÎT)¹ |ˆßgº#ÐÑ–ŒRÃVH©³†8Ã϶iÆ“½¹ìùOªEë/Ö`Q# l·™·—1Lj/1@õÑ¥”»–ÑË|vÿ皢+H1¯}"ú?M_ -$vJ -•Jà^A™W8þØÍìÍ^ÁÚF+É%#ÙX,Í£ñÇ'„¹–Á‰Ðé3ü^­¼K`(Ævqi{>rKn@>÷}r†pM:º“ÌYN‚¥]—X»`ËéÎ2PæÂ1 D€_™D¥wŒSãe¤÷í+™™¹±¶ˆ3ò¤1|uæLÌôaqÊÐ:N¨Ê’\}–¡Â¨ë\4û¢Çþß"#Z™Ñóã¶Ã‰é~h) po:…ö‹h”ØÊO/„¬wúØ»ï×|­?‚½2SÕJ¢,ÇÚƒàƒ³¤«‡ÉdIš‡Ì"¢œÚoØ@húY~œg4!ñF7„<÷óxëÕÑçÜZ÷…>D“iŽ«r¡¼gñžÚ’ã#+Ý`"ÜwY; Q-76g§èfÞè¬øüùsG;m8&ü‡ >V»¬æêZ‹·P-Ú*ÊCüfgs#‰âÚ ¾?Þé•HÿÛWåWîEçe‰Þ a³Úf£<'>§S¤vj²÷ဟ-wDgZÇRß1["¨†U¬–Nsìä¶};f±ÆZj”ËU$çÃzòÌi‡P¹€ñÌ&¦:,.¾û§ÄçŒG4{NúuÞü©œhM'´•á»áÙþ´ä´ä”ɇø” -ßwÕˆQ… q~ÐG5â n °²ÍÐ=Ø”˜së±HÜJ¡,=)i²†G”»L;Žy° ŒÅ?zN›ûü3 -XÓ·º\C53Šež‘dBÔp5Ù´&‚n6C f÷|Ιú²ì¸ÆVÜ‹3+w6ã@¦«ÈY·£HDëO±b 1Îûšþ×”æÞ¼F>3—3Òçpì£Ë°ÃŸ½aÑH.XÛ¦ƒtœ€ÌcY’UõE˜R¸jd«m-C*ÜöÏ”Aì6¯”vŒ æSX…ó´€*1QPÓ1SŽ÷fÑ*:±bÿ´4\ò¹¿Î“gvß‹Ë~³etÇõ»¥ )³ 5)ëÅ|£ž³…Nè,ílæO¯±€þ‹+í,í2²Ñqâë¯=h¢S)ºö-í‹8…”Ÿ-SF|B^¶VM¢[áá!“ŽÒyÇ*§0)Å¢¤Ÿ|[÷^‚øªû¸ÉοbàZt.tƒí±ÕtšŸ†¡ò8ÎmDÍFgP³Blö}Ý'Ùšô¸Ù©?¸'ñœ Ä[{í9Žÿ[¾– ÞàßùeØDzöÌfŽÔ‰1® ¡qP•²ázž]¹í5D *ñ{Œyé¬(œé`öD̉Hž½öc=úL˜‡…F–cpæÙðÒ4æ -´wÔs™PJ)3õ*’½QÀ¢=ÑâëÏòÞòü Û6àZª*ql³o΄jw£±j¨z¹ägõ»sæ+;Yf¼r¢!Qþ@ $¬î“‘ ¸2y¢/ 6ÕYô1‡ƒŸÒzA¬ß3{×EÆ×EÇ -Œ¡þv²4Ø÷ä²®)ô8¶V¹^ (1*ÕŸ3aëUOÈñ'-ox¸ìÞ:CŒý®l€¥ Àн.'îÕîù8]àžÊÜœå=yÇ™´ÔYãè 4_”©Û*Í=ü - ±œ5Æí[å%€¨atÁ¸’¥æý…Lo*-g£ehAZéÔ€ÜåN~:öhÇ–Rã{>*_³Û›ñ®]Äewã³Â-£›#¼'úåU™N€Èvk›Û9%*\¶] ‹ÎÀ'ÕˆGÝ™±[*`Ð8HB".åÆJ·¦=uÓ&LöŽö{ªœxm‡Äd[­„1§˜°Üy h}ýÛâ’™—clœáÓ xî³P”7…%‚•„‹Óç<4éÏâÝ«žP䬪F…ÍAj™3È"¶™ Øm×8ZÚ}!ê•z÷(°ÅM ézµðCùìè°]½üka,¦îÿ¿«ã“[&*+¬ûS˜~Í9$@ÖJ.±9ð,!uàúÓ›^N‰ÍuOÇtl±¦fú%2u~#”²ÉÒš“?ã=ó¤¹*áâ½3{ÆÙhÕgyp‘#MRã ,ºÉÚ¿›Ãƒã[‹¼yz]žšSša½ã"ðàÄÌ1uÚÂêóýf©Þ^±Ç»Àäcš_¿Q$„GWèUI3¤†X}¯B×ÁùF1ÌÇáö³¼áO˜ ÈÁÜ„h¡»mò÷ܵ6ä ïa’U¨Êbfýï>]kÀ™=«ÿóO`L§ÍtR¶õÿdN>~évœ-Êw½C':‰x¦úd -6Â^j˜º¬s ¹u:(A–8vQTõ¶0ÐA¶„š‰’€fß(FNC»@jò”U’1™Å¾Ñò›P":µZCÊdÛÞ¸£mº¸$W¿çWØËÞ¶7—îÈ+X_÷K …yK5£R^ýÃX$‹œ1ÿV#ˆÒO2ÂÝ>™*絶Óêÿßph!Ýù‡¦{W.g~ƒØBX0tö"Ü!›»ÜŒIŽhªFŠäKpÙ0­ÆÒ\«¡i綀ú«^Uý¾&o¦¦e„G -Y|úa‰žfe‘F*¤ð}±Ã^ -˜GDðïÛ+„âY‡ž|jÅX…GíÛf- Z™ƒSRs Å« qñvî’[bõ=í¤áoˆ‘µrnúù´µüîËÓèãL€•RÛ¦DÆ7oìà0n*X<»ërS™¾â ^'×N‹”`8i›ÀÚ$)o/ŽŠ["8³4²Y®aØcßèqn T€¥2ç>³NÔ©åÜ9È Ȩ×ÀÛ•×ÆDsÒc¦žñµð0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -endstream -endobj -116 0 obj << -/Type /Font -/Subtype /Type1 -/Encoding 553 0 R -/FirstChar 45 -/LastChar 118 -/Widths 554 0 R -/BaseFont /OTAOFX+CMTI12 -/FontDescriptor 114 0 R ->> endobj -114 0 obj << -/Ascent 694 -/CapHeight 683 -/Descent -194 -/FontName /OTAOFX+CMTI12 -/ItalicAngle -14.04 -/StemV 63 -/XHeight 431 -/FontBBox [-36 -251 1103 750] -/Flags 4 -/CharSet (/hyphen/A/B/D/L/M/P/S/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/u/v) -/FontFile 115 0 R ->> endobj -554 0 obj -[350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 727 688 0 738 0 0 0 0 0 0 0 613 877 0 0 663 0 0 550 0 0 0 0 0 0 0 0 0 0 0 0 0 500 450 450 500 450 300 450 500 300 0 450 250 800 550 500 500 0 413 400 325 525 450 ] -endobj -553 0 obj << -/Type /Encoding -/Differences [ 0 /.notdef 45/hyphen 46/.notdef 65/A/B 67/.notdef 68/D 69/.notdef 76/L/M 78/.notdef 80/P 81/.notdef 83/S 84/.notdef 97/a/b/c/d/e/f/g/h/i 106/.notdef 107/k/l/m/n/o/p 113/.notdef 114/r/s/t/u/v 119/.notdef] ->> endobj -112 0 obj << -/Length1 1513 -/Length2 8660 -/Length3 532 -/Length 10705 ->> -stream -%!PS-AdobeFont-1.1: CMBX12 1.0 -%%CreationDate: 1991 Aug 20 16:34:54 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.0) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMBX12) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Bold) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /JKEXJJ+CMBX12 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 12 /fi put -dup 39 /quoteright put -dup 45 /hyphen put -dup 46 /period put -dup 49 /one put -dup 50 /two put -dup 51 /three put -dup 52 /four put -dup 53 /five put -dup 54 /six put -dup 55 /seven put -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 70 /F put -dup 71 /G put -dup 72 /H put -dup 73 /I put -dup 76 /L put -dup 77 /M put -dup 79 /O put -dup 80 /P put -dup 82 /R put -dup 83 /S put -dup 85 /U put -dup 97 /a put -dup 98 /b put -dup 99 /c put -dup 100 /d put -dup 101 /e put -dup 102 /f put -dup 103 /g put -dup 104 /h put -dup 105 /i put -dup 107 /k put -dup 108 /l put -dup 109 /m put -dup 110 /n put -dup 111 /o put -dup 112 /p put -dup 113 /q put -dup 114 /r put -dup 115 /s put -dup 116 /t put -dup 117 /u put -dup 118 /v put -dup 119 /w put -dup 120 /x put -dup 121 /y put -dup 122 /z put -readonly def -/FontBBox{-53 -251 1139 750}readonly def -currentdict end -currentfile eexec -ÙÖoc;„j—¶†©~E£Ðª*Bg·N³ÀÓ½ ƒØ‘l¦ÊKq*Þ²Xú«šææwüsŠ¼|QÍFïq˜Õþæv`æšz¹XòšMyåp"÷ƒë»¶Ôôì5OÒÞË©”Y¤ÅðÆë¡P(DTçÜ!Á[v´Á›„67XFšlU‡…²&3!R˜q©ˆ4‡Ýw”’Ýσ~j‡¸+Ûño¼uú£ “þ_dÍV`÷Kî–y ãZúÌ÷±€]¨Šãu M™YŽ­üb[Üœ1[lòŒ›Ô'ó,t\™®¾pÚ®Ôž¤ZùO4ªG‰J7 iŠº½¤!U±¯&Ï·Ý¢¼h`ZNöÌ£ÖhKGÿµˆz;íà´ÓŽº¿ ˜ #1&ë¯(›)$ÿJ3K…ÙÖ…Eý­´™s±èjF¥¯ˆfÀ"P$Õå†-IÞµØìË•ÙBƒÅ -6=h¤qDVð<ã` EŠkÀ³ªE“NrraÆŒJGø ×~Lò{6ö¶ó¬IŽE6ùà¯U'õãÌy 0„gK>&)o>2\U]$XWŠ‰ç-1f£Å×@³«±'ÏB 1mùW‡= LðÛ%§5t¤Þ.O-]NŽ CTÏ4Û>&wÁ”vN­XÅ…ôžñCþŸßÙf å ›×¢¨r™¼1žf×¹VãC¡›“È–~äqŸ0 þXfðÖÚ^Å^$Ó·ï£%ÔG7dé›È±\ò¬­úlFcè0…]g<銷_‚Ÿ¢&«Wð{>}N|ãÓ·ë 05ŨÙú4H4ý¨ãÜžlGž>îš TÉ_¤cÑœé6àYŽ1— §»nUÏÕïr®Á-š–u$zq1k.â¡s+6'ž¤FË2»âç‚Íð‰.r¶q5…#3|uç)p“Õ¾Àc ÜN•r3ì ùåÊp<~“„˜s„?ÆaàÈG:m+å-뢅¹¡Ì^dÒ­¹æG)q„„Q¢EÝöª;‚%鬎F0°ÿ2Öyì'¬­…Æ9N¦÷#¶`îˆ=‹gh7éë¤ä+¨óeC:éðèŠ&3ßËŽö¦Mˆ§ÔÐÙÃõÖÂüYÈn¾ñê;96†ÇWL¾öŠN(×^rºâ¼›†×ný±†Y#sýédB¤™1¬_èxóš/ŒuÂ!‡gcY';(/5t@ÌaY¾kYeËLYÄìREß©ÚÁÆz1Ж°o¤°/ÆÏÎö¸bXKä06P,Š¢ß)¯^Ñ^ÕÀŽ‰Ð"!Hý‰Ž¨ßª¦7„Aø3§vćýNíŒB"¶PÔÒij’.õŽ:„QéV§š8yJ¼Ÿ *ëTÛ€­ö»$F"yÛäL áXòêè‰;¾º¢ñ5:ÄE »ËGÉ¢|| UÝ¢u–É‚´ÉS‰ÐÏRâÇ·î‘û¯Rû Bäò,‰¯ ËfÏô’¯Vý6 >öï<=òb‘PÊO¿´§«ƒ£6˸t­ÐëêÄ9ìÁÓ|Ëþ¾ìbús»6ÌݳŸ´<îôšü³öùC´ëRCµ|˜ÃÅC¹ €#(2´ÇnOr&Ä=ÙFé)x‡Ö¾'âˆc0$Un€KƒÞ£l?óîZPò-} -0¢`ŸÞÁ3ø¼w=²'·~è½™¾"IÀv§ç“AµnŸVý¸oK$Õ¤Y¿ÕÛ*꬀QWã¸Í±„zµv½/î÷6¤êä±¢¥‚t–kf íR-˜+Õv¢V6A<Î -ˆd¦Wl³•Ó`™.b'vþ§ý-=† L€«èÂJã÷ƒáäd°›Ùd5qM÷«¦çÀc %s2p»Êšá¢?°Ö'ÜO¹ÆfÓKŽªo‹ˆÒ(í×ÿ'‡x­êm€1`…É1ëÚÔ{‡‘X¥?žœ­‘Ák>œºáôp:8€mªóïåz}Wî¾,nfÒ²èÃÇåtð¥5¶xmPÙ±2YoŽìAÛ“à¤Î1´B¥KÞ@ô”f¸e>ªÎÆ*\ª»Š†ðVµÙ F‡©ÐhàÈîsWŒ rÿÐY÷S´ùØÔú_˜ªHw-µ\%©¾ ѯˆ5ÞqBxüµëLYú^_ûÑöÁØÁÌ)›T1¾è"ý˜b" ¼0ÓrÜLýãóizù»ÇgØe8,±é´Ë®6¾fPò~曹 cù6ªKOè…h§œj9lé9Ö0–‘ã 7Eî\‘8J·0N( Z¾~eÄ=¯–+ã¢Ê¢i» ï—N“],Šž¥˜!Ç#Gÿ‘5tHX†ãSâÄ/ÿÏÕ´M {X‹rðµ8 ±½CYY^`ÌJ! øá³/:€ÄxÄ“ìÇQí9§`fº{ÎÑtÜm«”Fæ™QÜ¡Ø<úVhœ]P¬è»V%:G%H^z@‰Gw“w=Z é.%9UëÝô¹‚­òÔÏê^±+_É$J©*\bŽ¿®]J2Q.‘؉X dú;Ÿ‹ÏáÿR­\&õr–²ò {æƒ$}L[„”såý‚Û6TýHr _%ÆߪHGÙŠ¢FHm‰ŠBGNä¥38©‘é][Ò S6<ˆ©†ûà|‚•šžkTu@EhÆ|ætݳԱÂà÷G4t3 ùÚ$W2†)©Œd"*èBNëÙ#\”õÀæ ÖÓ- LBb>p9Öjÿô]«U²IøˆÄ‚¾ÖŽÌR•‰-“üC¨EÝT|Ac,[uµßϘe–%ÍÌBCâÎ[ Æä(ÚæZœo½(Ã-ì’p†ª«¾nö£ÖýÓ¹™JC0Þ¡©A;øcHK.eùiÑreÛìë°7û&‚®T‡œÚ]CÃÜð¢å--m…‡íÇëØàKžþ:wb˜öò ðùê›ÄSsáß’Fñ[²6o¦°qõõ{{Ý‚¸IvܯTÖ˜°öKjŒàj}ç)¬|àsí}çÑWD¦fM€ˆˆÌòÈ#¹ŒªU»‰Ù;/Ï´N¼'Ú¾AOT@Býú_3­€Ë„ÌŠ“¶jFnF?ŠW0惡Wâýé„ý¤îÎÀI]ìKe9TÔj¹õ‰E!#0XdfÀųØgpû=|½És¬®vhS£½Åpùà”rµ5˜#Ÿ×rõ¤nÐÐAž…„Fø˜®œˆNg}ã9ê’ÂXfcƒ¿zjNËd -ŠäÞè!A&RM˜Qfg 8§s˜]5—›c˾ûÕ«ó×Wdˆ¹Ø!{¬‡˜;9ƒ+“·U:{x±$Ôï¡SYÃR5A\7“šeÀ~×i‰:y™É2Ù36S¢K5™ÜUú_›ûJÓûÌàÒˆ‘ÆS©+Ä›{Ÿ.ÞÞ2„žŠ{ÔÚj-EQ€zñÊÓ|¿Èùõ¥\ÜfNáOÑ$zö¼>¿M"gÑ1äñº|®•lŽæç3˜÷eËãì¦#ƒ³ ç$^íË¥»ª¦0¹—87‡Ž´Ö'‡Ä•DìÂâèü²÷»cÛ¦åÑ…ë¸åûãRÎæˆö¯o8—ÓÛÉ¿ÔÐËßãl>Ÿ‚òqÀÆIbµµôB ¦°ª¾B¬Ì€_‰Ù1Ñ@݆T/]oÌû[*¯ÌFÒMö’E‹"f*±\*ñïe¨6^cßÞª¡•v§ÁfÇ•Ñ­kÌG ³F'ªïNãªi…®![r¢%bÆÏ‹¶®BÔ«ØPød~àcÇ#Y7‚±jïF±;R'‰Übg쿽¤À¨·_àÔ?åã’º¼‹[ýÄ50£–b‹œØßF…m}ÝWªì *‚óTZ‡õ² ¦ ÜéóŽeºp_ÁˆYŽ¤Ž®~€!dpÎL„þ±DÉÕbæÛ®Ž¨õƒÎž´ÌîÕ”ç‹RÁ‹Ô"^†Â9*î‚Jøwì¡ ´ã@Í{½­áPV· õª{&Ô!ÔN– ^þ=j'Š#…1VëóŠxǽږÓFåP¥H–Yá—‡H†ÌœBF^mÙ -Ù¸Da[v`qy¬ÙÇP„‰œ²YQ;{,Þ.â_¿U“¥\—dÞ0«ly&(—aÚʼn°½a¾r -‹Þ0gozÜØÐœ7oËŒŸ¹4þC=Þr¯ìzÄž™Öö4ls¢ürîµÚ>`÷K70·”9"w[JUÃRC¯*:éÇ'ÒŽŒBt7“€ªÝÕè˜6ÿÁâPÃüKyj!ž¨{Ù· H©%}9=K ˆY.¼ßà ݂!]E%_×ü¦ìbK×-;>h¢ å³IùÁI×:ŸªÍžùÂPØ€+š˜þ?0ZÝäšÚ¾¹+‘ö7 `c•ª±^TÝ {rÿO”êr³ž- ·ÍÒb(¢‹P`¥ÄYРV aÏl9V„Ká¿’òµ°Ø ÁUÿkéOo²gÔ÷ zÐýœ#¡gP·Å‘Ä­XÖáŽ`l¾ZòšZ_²ªÍ£Do—ºÙy²(IC•Âyâ bŠ«qOð(êÅü\sµÊê5–q­‹‡ÿ˜|kjâÁ(‡è> ÁVE b®Ð$½ÅCw-À¤ñÙ´$Æñ{êÚ -ŹõYÑár–eý* ~Ú¬°‡ ÄE -¢ÌjÚŒ'LçzÆyüèâß›Ñ/òéDåPÈN§-lQ¬"’IÃwð,_…oñ²wX°)A”Žxò¿¸wÅâ÷Àþ'§i Sû³Á¿-jz¯°Ð¯*xÏA’¢°ç«ø@*;í½_#åþ¯Ôµ%»K‡›SÕOžFµ›ŸÉ´ÒDÉÉî7Bï_çl~b’÷â®G¯Ûd5n/Ž ~Ã$3XïRmþ6ã;†ÏhÞc™ˆ;ó!‹ÚAè@E}|-„ä²»ûƒGž½¢… @É&·›é5¤Œ:+: }àj–¶7¨Ž-=ð/È2½ â:Iâ<,SF·À–”h"Î’tY[üš·k,ç -p®a’³I zEz›ÑœÌB['4}ÉAw.Ñ·Þ.o­K3®CJòß·µTMAõHA››OóXîuigAÈõD³Ö-Ž -ê‰S=²©s|Ýx2HàÕ‰M»6{ÜáûZ$ÀµÚ*v`?|Ãjô¸qÏ)/§­ò&\ô{g8ÃyLJI8SRç'úˆHÕe'´AyÁÈI>µ-v6a°Ô~±3‰üí7Òrz$Ð/mÞ"=di={g0s†µ¾ÖYwßl}xùyŸâðÖ±yhª8hÿäÀÉÙNOµAáÇ06ÂôòÖjGgé6nj{\!b¸#/Íg>k>`ª}‹–îžüÊCfáÚld8€4(ÚÇ©ïç“äÍÔéVÙiÎÈ]²}z«‰Wf\ £M.*ýì°;þ; -Á -âŸùÄæ"ø¹s‘»˜^]R9rÄkIþXAÔù"ïטØÛ>ØÐSìrñW¨Ç®5Â4XµÇ|BhFኳó&–7¶%Wtc$y²Ü èÈèVê;)òJ‰Æc6‹A\W¦ëÜÇ Åõ* AáoƒÍy¯ÊgÄ" ¶øù¿cêk×Ðz­Âl[°“OáiZ€pàï±Z™ÀG2{/Så‘MÊXdÂRØã\oç•Øb¸͹ĥ9hðS¬*¹E&FŠ‘8…êxÏ57ˆ’,ùEÏÈaR7¶ŸÐ02+ÎÊÖû'¼©:±p+–,C%‘xè0i²OØ7ýU9Z*Üã+i!ÄÄ+|cêZ*ÛóZ*B±æ §ô\A§ß‘îgæi³øë­ªâ1ûwÑŸ°NJ£'ªÄæˆ/‰ÁÀ¹u»îþ §fÛØÁ¨Ê!Ö(ÓNlÄ%¨Ëøx–FoBú¹Õüׯ‘·~ÔjdIÄ“pUG÷?Ó·ÜûIFn{[àeͶQ®Põ+®ÍV:êõ›‘ü«Jät¥f³ÄbPã|èœù‰)ª:æôS‘‹*ybÿ4ÖF# pÌʾV—®t¨Àø^}2¼ôDöò%r8.…>9S|8N¨Êϳè‡î ×e¬e—a²$_±ýÞç4Z‰äPÿW€J¤D`èà£!l~û§™–^fP_t ²CIÜNŸþrMeøQ¡¦ Â><†ì8=4oΆúÁ¢ý“§UÌ -}À²t|°h’Oû=šN{Ft“¨ªÁNqăÇx§Å€QHi"7K•ƒ\NÿÐæt_O÷\½Ÿ'¤4ífíÒ/&¥5Qª¿gǶþ÷·•KÊîø¦B—üø‘ µG£­` -ÔÄóU`£–K ½{@¤çáH8xA&çú³X„à'ù}à:WÜJ -«° içtHe÷,æá¸&}ïFwÉ9‘2 ŒÌý—55gY=l‹VÊ@é ¨ hËôC¸wçxäBkÈ’Ú[; -úá,™6°CÕ­Ôineµ6™óÍÏçzî'öJtšvå@šŽÿgñ›ÂÌ3ÝÅSNŽÒS~­c÷vГ‚Åê‘Œt -y Y¹0ÙðŒX¢÷ý—à(p¢rÞœüÐèò-¦š’²ú§AY×ôW &ßÒZP j#íám¾ëRÌ›èu‡o=–;mXÕ‡6r…—˜qAØÖ” Ž4\{SkjéŠÏŸ»ãnY‹l—݉f³Šh"ÃÒúpÌüµyà—8Í.[êÑLÀÿcdj©ÕÇ”ÀhœÔ>îyàæÆm€¦ã{ª''£uçSûK˜é瘿¼k–õ­£K†gˆ“ñ&¨ˆ‰É‰6•ƒ+’ß©rá`5ÔP•ßõ;„eÒï ωÝg•e8*RÅÁ>O -âêŒ:iC_Ûa&®N3–Þ »gPÙV7›uÞ*jl‰d¥bKYôMäl%¼<›Žª?:ø*3¾f„ÛPOûYcˆÉ|°‚L5îurT¶tH<$ÖQï¢Å£ìÿ³sÃa Þù¢-½=-Ѐ®y"T¶÷/»sóµÄ-ßÌó8À_ë.2RÎ{ J±|öÄõM?¢ù¯Ã º©“ùÀM† !ôÚ4¸ qÍ O ­ð -ÿÉyšã*<µ²FN͹(ƲíMßx÷lZ ü'!­&ÿžtI’\ØÍ ×Nüi]}JëYÿÌ~iåk|ÕR”óÿ¼’ Î ÑFÈÚá<À6rˆ*ØäG ¶€˜ç×á—öÃj8Mã•/oŠJKœF§™ç‡&•*pì{:s+>îG|ÆîW’Ú6”ÊC}Ìåzqó\7‡ŠÓ’Q–¶8ç£všÐƒžÎK<‹èê_Õ¨•@¼üð¦+épE?—LsáAyzÈ÷µ>J«tVA÷ëbj‚q -;âîªTú€|aïøÄÞmµQ²2ÍP#vwL@8—cjÚ³@ÍoYÙ ÍZEsv¡‹žÝ Äßøã.Fýþ^4!_’ÿÚó#<èa¬ì¶)B‚Ým)—Åòys¥QßµÏTµ2=RaáILg¡¹€b¥A¿(œ81¡¤½¸ñòn~Oxìà—p…ú\h›§…ú;ÂÜ—Ô˽òR¬,²R7žU¶®¥.¹ÿì+6Šý:˯šM -÷}½ÊàÛ¿×–ux¿š€¨ÍÃÊ?S$uÌ4Av!Ý `c~Ñ_IDáÇõpý‘5æ&N'ϯ‰>á> n…¹ù¦×=;${|óãÌZ6çÃIÁ`ë[Â8sÔª»ÀÈ9_u2ˆÅÆÇ_˜,ùB§.¹þʲ™9ÚÙ8xA¸Jz7rÃä&’Ì—µ£q-è/ )µ“¹=—àG¨B Î –¼ß$ŠÆx‹šº`Ç_&Ш¡ðn „f´{qÛ\¡cK-õØí2M]ÏÊÖz‡)vdQ¡q¨úź¿Úfe_¢ueí•4„/™+Á£9aõb`R¯ÈjT7¬È}?ÕIç7 ñöRpGS½ö/h³ß äã|"è©IÄB‰™ú‡Ó’æ›+ž)ÀNyµëó¯ÆJ³7îyqŽ -·—ª +OèÓ½:Gv‹ÁfVMû7èÚ}0ÒÒ„]ƒÿ£¦‘R褼ßY¸5ª-<—0§Ë‘Å -}aÈclÜ¿?‰Œ AþOK·:•¤7.mÓוAÁqŒZI!Ú-u»‰‹ÿLEœ~MÛ¨°òa“—Hó­ó…Å 6õÀK»A9Y*=åOåTF¾È7® hGÔr½=¿²ÔnFS“Ý~1]Œ€)ªÇ#Ÿ‚×›å5êñ£r -O;èT Gƒéu)–Š)yYœ\ ßz0;‘Ü^'DØ !Lf{¦Á΀¡s†Ìâ6õSÝÇgy.~Õé0ˆîÂTš<ÅÖÖ;ï‰ÌÏ ç$W¿õcë/nÔþw»ov„[½8é`¢ezµ¡>xÏŸ-ÿ–gõÍ)âðŽJõ~¬B‘jh<¬ÓËþäœçåQ–ѽ›¶ ìqC?*Ðó“¡#ÕŒ{ä ÓaëJrlrÛÔvþͤ©çeÌE9[UƒpüzÁ©Ù1oÐöcìž9êÌþŠ²ëšÁ -p•íÿû,d]¢ä'š :µÿB´ê•Y‹öƒÅ0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -endstream -endobj -113 0 obj << -/Type /Font -/Subtype /Type1 -/Encoding 555 0 R -/FirstChar 12 -/LastChar 122 -/Widths 556 0 R -/BaseFont /JKEXJJ+CMBX12 -/FontDescriptor 111 0 R ->> endobj -111 0 obj << -/Ascent 694 -/CapHeight 686 -/Descent -194 -/FontName /JKEXJJ+CMBX12 -/ItalicAngle 0 -/StemV 109 -/XHeight 444 -/FontBBox [-53 -251 1139 750] -/Flags 4 -/CharSet (/fi/quoteright/hyphen/period/one/two/three/four/five/six/seven/A/B/C/D/E/F/G/H/I/L/M/O/P/R/S/U/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) -/FontFile 112 0 R ->> endobj -556 0 obj -[625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 312 0 0 0 0 0 375 312 0 0 562 562 562 562 562 562 562 0 0 0 0 0 0 0 0 0 850 800 812 862 738 707 884 880 419 0 0 676 1067 0 845 769 0 839 625 0 865 0 0 0 0 0 0 0 0 0 0 0 547 625 500 625 513 344 562 625 312 0 594 312 937 625 562 625 594 459 444 437 625 594 812 594 594 500 ] -endobj -555 0 obj << -/Type /Encoding -/Differences [ 0 /.notdef 12/fi 13/.notdef 39/quoteright 40/.notdef 45/hyphen/period 47/.notdef 49/one/two/three/four/five/six/seven 56/.notdef 65/A/B/C/D/E/F/G/H/I 74/.notdef 76/L/M 78/.notdef 79/O/P 81/.notdef 82/R/S 84/.notdef 85/U 86/.notdef 97/a/b/c/d/e/f/g/h/i 106/.notdef 107/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z 123/.notdef] ->> endobj -120 0 obj << -/Type /Pages -/Count 6 -/Parent 557 0 R -/Kids [106 0 R 122 0 R 126 0 R 136 0 R 140 0 R 172 0 R] ->> endobj -195 0 obj << -/Type /Pages -/Count 6 -/Parent 557 0 R -/Kids [176 0 R 203 0 R 213 0 R 222 0 R 239 0 R 250 0 R] ->> endobj -258 0 obj << -/Type /Pages -/Count 6 -/Parent 557 0 R -/Kids [254 0 R 260 0 R 264 0 R 276 0 R 314 0 R 325 0 R] ->> endobj -356 0 obj << -/Type /Pages -/Count 6 -/Parent 557 0 R -/Kids [336 0 R 358 0 R 368 0 R 391 0 R 401 0 R 420 0 R] ->> endobj -428 0 obj << -/Type /Pages -/Count 6 -/Parent 557 0 R -/Kids [424 0 R 430 0 R 435 0 R 442 0 R 458 0 R 463 0 R] ->> endobj -473 0 obj << -/Type /Pages -/Count 6 -/Parent 557 0 R -/Kids [468 0 R 475 0 R 479 0 R 487 0 R 492 0 R 498 0 R] ->> endobj -508 0 obj << -/Type /Pages -/Count 4 -/Parent 558 0 R -/Kids [503 0 R 510 0 R 514 0 R 518 0 R] ->> endobj -557 0 obj << -/Type /Pages -/Count 36 -/Parent 559 0 R -/Kids [120 0 R 195 0 R 258 0 R 356 0 R 428 0 R 473 0 R] ->> endobj -558 0 obj << -/Type /Pages -/Count 4 -/Parent 559 0 R -/Kids [508 0 R] ->> endobj -559 0 obj << -/Type /Pages -/Count 40 -/Kids [557 0 R 558 0 R] ->> endobj -560 0 obj << -/Type /Outlines -/First 7 0 R -/Last 7 0 R -/Count 1 ->> endobj -103 0 obj << -/Title 104 0 R -/A 101 0 R -/Parent 7 0 R -/Prev 99 0 R ->> endobj -99 0 obj << -/Title 100 0 R -/A 97 0 R -/Parent 7 0 R -/Prev 95 0 R -/Next 103 0 R ->> endobj -95 0 obj << -/Title 96 0 R -/A 93 0 R -/Parent 7 0 R -/Prev 67 0 R -/Next 99 0 R ->> endobj -91 0 obj << -/Title 92 0 R -/A 89 0 R -/Parent 67 0 R -/Prev 87 0 R ->> endobj -87 0 obj << -/Title 88 0 R -/A 85 0 R -/Parent 67 0 R -/Prev 83 0 R -/Next 91 0 R ->> endobj -83 0 obj << -/Title 84 0 R -/A 81 0 R -/Parent 67 0 R -/Prev 79 0 R -/Next 87 0 R ->> endobj -79 0 obj << -/Title 80 0 R -/A 77 0 R -/Parent 67 0 R -/Prev 75 0 R -/Next 83 0 R ->> endobj -75 0 obj << -/Title 76 0 R -/A 73 0 R -/Parent 67 0 R -/Prev 71 0 R -/Next 79 0 R ->> endobj -71 0 obj << -/Title 72 0 R -/A 69 0 R -/Parent 67 0 R -/Next 75 0 R ->> endobj -67 0 obj << -/Title 68 0 R -/A 65 0 R -/Parent 7 0 R -/Prev 59 0 R -/Next 95 0 R -/First 71 0 R -/Last 91 0 R -/Count -6 ->> endobj -63 0 obj << -/Title 64 0 R -/A 61 0 R -/Parent 59 0 R ->> endobj -59 0 obj << -/Title 60 0 R -/A 57 0 R -/Parent 7 0 R -/Prev 47 0 R -/Next 67 0 R -/First 63 0 R -/Last 63 0 R -/Count -1 ->> endobj -55 0 obj << -/Title 56 0 R -/A 53 0 R -/Parent 47 0 R -/Prev 51 0 R ->> endobj -51 0 obj << -/Title 52 0 R -/A 49 0 R -/Parent 47 0 R -/Next 55 0 R ->> endobj -47 0 obj << -/Title 48 0 R -/A 45 0 R -/Parent 7 0 R -/Prev 23 0 R -/Next 59 0 R -/First 51 0 R -/Last 55 0 R -/Count -2 ->> endobj -43 0 obj << -/Title 44 0 R -/A 41 0 R -/Parent 23 0 R -/Prev 39 0 R ->> endobj -39 0 obj << -/Title 40 0 R -/A 37 0 R -/Parent 23 0 R -/Prev 35 0 R -/Next 43 0 R ->> endobj -35 0 obj << -/Title 36 0 R -/A 33 0 R -/Parent 23 0 R -/Prev 31 0 R -/Next 39 0 R ->> endobj -31 0 obj << -/Title 32 0 R -/A 29 0 R -/Parent 23 0 R -/Prev 27 0 R -/Next 35 0 R ->> endobj -27 0 obj << -/Title 28 0 R -/A 25 0 R -/Parent 23 0 R -/Next 31 0 R ->> endobj -23 0 obj << -/Title 24 0 R -/A 21 0 R -/Parent 7 0 R -/Prev 19 0 R -/Next 47 0 R -/First 27 0 R -/Last 43 0 R -/Count -5 ->> endobj -19 0 obj << -/Title 20 0 R -/A 17 0 R -/Parent 7 0 R -/Prev 15 0 R -/Next 23 0 R ->> endobj -15 0 obj << -/Title 16 0 R -/A 13 0 R -/Parent 7 0 R -/Prev 11 0 R -/Next 19 0 R ->> endobj -11 0 obj << -/Title 12 0 R -/A 9 0 R -/Parent 7 0 R -/Next 15 0 R ->> endobj -7 0 obj << -/Title 8 0 R -/A 5 0 R -/Parent 560 0 R -/First 11 0 R -/Last 103 0 R -/Count -10 ->> endobj -561 0 obj << -/Names [(Doc-Start) 110 0 R (Item.1) 303 0 R (Item.10) 381 0 R (Item.11) 382 0 R (Item.12) 383 0 R (Item.13) 450 0 R (Item.14) 451 0 R (Item.15) 452 0 R (Item.16) 453 0 R (Item.2) 304 0 R (Item.3) 305 0 R (Item.4) 333 0 R (Item.5) 349 0 R (Item.6) 350 0 R (Item.7) 373 0 R (Item.8) 374 0 R (Item.9) 376 0 R (cite.BLACS) 237 0 R (cite.BREZINA_VANEK) 197 0 R (cite.CAI_SARKIS) 322 0 R (cite.Cai_Widlund_92) 273 0 R (cite.EFSTATHIOU) 323 0 R (cite.MPI1) 201 0 R (cite.MPI2) 236 0 R (cite.PSBLASGUIDE) 200 0 R (cite.SUPERLU) 247 0 R (cite.SUPERLUDIST) 248 0 R (cite.Saad_book) 312 0 R (cite.StubenGMD69_99) 307 0 R (cite.TUMINARO_TONG) 308 0 R (cite.UMFPACK) 246 0 R (cite.VANEK_MANDEL_BREZINA) 198 0 R (cite.aaecc_07) 310 0 R (cite.apnum_07) 311 0 R (cite.blas1) 235 0 R (cite.blas2) 234 0 R (cite.blas3) 233 0 R (cite.dd1_94) 274 0 R (cite.dd2_96) 196 0 R (cite.para_04) 309 0 R (cite.psblas_00) 199 0 R (equation.1) 183 0 R (equation.2) 361 0 R (equation.3) 362 0 R (equation.4) 365 0 R (figure.1) 334 0 R (figure.2) 399 0 R (figure.3) 416 0 R (figure.4) 417 0 R (figure.5) 418 0 R (page.1) 109 0 R (page.10) 278 0 R (page.11) 316 0 R (page.12) 327 0 R (page.13) 338 0 R (page.14) 360 0 R (page.15) 370 0 R (page.16) 393 0 R (page.17) 403 0 R (page.18) 422 0 R (page.19) 426 0 R (page.2) 124 0 R (page.20) 432 0 R (page.21) 437 0 R (page.22) 444 0 R (page.23) 460 0 R (page.24) 465 0 R (page.25) 470 0 R (page.26) 477 0 R (page.27) 481 0 R (page.28) 489 0 R (page.29) 494 0 R (page.3) 215 0 R (page.30) 500 0 R (page.31) 505 0 R (page.32) 512 0 R (page.33) 516 0 R (page.34) 520 0 R (page.4) 224 0 R (page.5) 241 0 R (page.6) 252 0 R (page.7) 256 0 R (page.8) 262 0 R (page.9) 266 0 R (page.i) 128 0 R (page.ii) 138 0 R (page.iii) 142 0 R (page.iv) 174 0 R (section*.1) 10 0 R (section*.2) 143 0 R (section*.3) 102 0 R (section.1) 14 0 R (section.2) 18 0 R (section.3) 22 0 R (section.4) 46 0 R (section.5) 58 0 R (section.6) 66 0 R (section.7) 94 0 R (section.A) 98 0 R (subsection.3.1) 26 0 R (subsection.3.2) 30 0 R (subsection.3.3) 34 0 R (subsection.3.4) 38 0 R (subsection.3.5) 42 0 R (subsection.4.1) 50 0 R (subsection.4.2) 54 0 R (subsection.5.1) 62 0 R (subsection.6.1) 70 0 R (subsection.6.2) 74 0 R (subsection.6.3) 78 0 R (subsection.6.4) 82 0 R (subsection.6.5) 86 0 R (subsection.6.6) 90 0 R (table.1) 387 0 R (table.2) 388 0 R (table.3) 466 0 R (table.4) 472 0 R (table.5) 389 0 R (title.0) 6 0 R] -/Limits [(Doc-Start) (title.0)] ->> endobj -562 0 obj << -/Kids [561 0 R] ->> endobj -563 0 obj << -/Dests 562 0 R ->> endobj -564 0 obj << -/Type /Catalog -/Pages 559 0 R -/Outlines 560 0 R -/Names 563 0 R - /PageMode /UseOutlines /PageLabels << /Nums [0 << /S /D >> 2 << /S /r >> 6 << /S /D >> ] >> -/OpenAction 105 0 R ->> endobj -565 0 obj << - /Title (MultiLevel Domain Decomposition Parallel Preconditioners Package based on PSBLAS, V. 1.0) /Subject (MultiLevel Domain Decomposition Parallel Preconditioners Package) /Keywords (Parallel Numerical Software, Algebraic Multilevel Preconditioners, Sparse Iterative Solvers, PSBLAS, MPI) /Creator (pdfLaTeX) /Producer ($Id: userguide.tex 2008-04-08 Pasqua D'Ambra, Daniela di Serafino, Salvatore Filippone$) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords() -/CreationDate (D:20080912183651+02'00') -/PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4) ->> endobj -xref -0 566 -0000000001 65535 f -0000000002 00000 f -0000000003 00000 f -0000000004 00000 f -0000000000 00000 f -0000000009 00000 n -0000004494 00000 n -0000519137 00000 n -0000000052 00000 n -0000000103 00000 n -0000010147 00000 n -0000519065 00000 n -0000000149 00000 n -0000000176 00000 n -0000041822 00000 n -0000518979 00000 n -0000000222 00000 n -0000000259 00000 n -0000052399 00000 n -0000518893 00000 n -0000000305 00000 n -0000000343 00000 n -0000064810 00000 n -0000518770 00000 n -0000000389 00000 n -0000000441 00000 n -0000064872 00000 n -0000518696 00000 n -0000000492 00000 n -0000000528 00000 n -0000073802 00000 n -0000518609 00000 n -0000000579 00000 n -0000000632 00000 n -0000073864 00000 n -0000518522 00000 n -0000000683 00000 n -0000000727 00000 n -0000089538 00000 n -0000518435 00000 n -0000000778 00000 n -0000000814 00000 n -0000089600 00000 n -0000518361 00000 n -0000000865 00000 n -0000000913 00000 n -0000102585 00000 n -0000518238 00000 n -0000000959 00000 n -0000001023 00000 n -0000123456 00000 n -0000518164 00000 n -0000001074 00000 n -0000001132 00000 n -0000156796 00000 n -0000518090 00000 n -0000001183 00000 n -0000001226 00000 n -0000193211 00000 n -0000517967 00000 n -0000001272 00000 n -0000001308 00000 n -0000207167 00000 n -0000517906 00000 n -0000001359 00000 n -0000001390 00000 n -0000240961 00000 n -0000517783 00000 n -0000001436 00000 n -0000001471 00000 n -0000246185 00000 n -0000517709 00000 n -0000001522 00000 n -0000001571 00000 n -0000256378 00000 n -0000517622 00000 n -0000001622 00000 n -0000001670 00000 n -0000309478 00000 n -0000517535 00000 n -0000001721 00000 n -0000001769 00000 n -0000320650 00000 n -0000517448 00000 n -0000001820 00000 n -0000001869 00000 n -0000323796 00000 n -0000517361 00000 n -0000001920 00000 n -0000001969 00000 n -0000327486 00000 n -0000517287 00000 n -0000002020 00000 n -0000002070 00000 n -0000330895 00000 n -0000517201 00000 n -0000002116 00000 n -0000002151 00000 n -0000335647 00000 n -0000517113 00000 n -0000002197 00000 n -0000002226 00000 n -0000345942 00000 n -0000517037 00000 n -0000002274 00000 n -0000002304 00000 n -0000004246 00000 n -0000004555 00000 n -0000002356 00000 n -0000004368 00000 n -0000004431 00000 n -0000514841 00000 n -0000503874 00000 n -0000514679 00000 n -0000503130 00000 n -0000495095 00000 n -0000502968 00000 n -0000494062 00000 n -0000484882 00000 n -0000493901 00000 n -0000515896 00000 n -0000005032 00000 n -0000004847 00000 n -0000004653 00000 n -0000004969 00000 n -0000010209 00000 n -0000009962 00000 n -0000005073 00000 n -0000010084 00000 n -0000483331 00000 n -0000465132 00000 n -0000483170 00000 n -0000464124 00000 n -0000453727 00000 n -0000463961 00000 n -0000010773 00000 n -0000010588 00000 n -0000010307 00000 n -0000010710 00000 n -0000028239 00000 n -0000024001 00000 n -0000010845 00000 n -0000028113 00000 n -0000028176 00000 n -0000024327 00000 n -0000452677 00000 n -0000440471 00000 n -0000452515 00000 n -0000024480 00000 n -0000024633 00000 n -0000024787 00000 n -0000024941 00000 n -0000025102 00000 n -0000025263 00000 n -0000025423 00000 n -0000025582 00000 n -0000025743 00000 n -0000025897 00000 n -0000026058 00000 n -0000026219 00000 n -0000026372 00000 n -0000026533 00000 n -0000026685 00000 n -0000026846 00000 n -0000027007 00000 n -0000027167 00000 n -0000027328 00000 n -0000027489 00000 n -0000027650 00000 n -0000027804 00000 n -0000027958 00000 n -0000028803 00000 n -0000028618 00000 n -0000028337 00000 n -0000028740 00000 n -0000041948 00000 n -0000040506 00000 n -0000028875 00000 n -0000040696 00000 n -0000439320 00000 n -0000422764 00000 n -0000439158 00000 n -0000040850 00000 n -0000041884 00000 n -0000421675 00000 n -0000411216 00000 n -0000421513 00000 n -0000410282 00000 n -0000406118 00000 n -0000410121 00000 n -0000041007 00000 n -0000041172 00000 n -0000041343 00000 n -0000041504 00000 n -0000041666 00000 n -0000516013 00000 n -0000356615 00000 n -0000346005 00000 n -0000356867 00000 n -0000356300 00000 n -0000356237 00000 n -0000356678 00000 n -0000049633 00000 n -0000048355 00000 n -0000042085 00000 n -0000048545 00000 n -0000048700 00000 n -0000048856 00000 n -0000049012 00000 n -0000049167 00000 n -0000049323 00000 n -0000049478 00000 n -0000052461 00000 n -0000051876 00000 n -0000049718 00000 n -0000052336 00000 n -0000052026 00000 n -0000404685 00000 n -0000388398 00000 n -0000404523 00000 n -0000052180 00000 n -0000064934 00000 n -0000063286 00000 n -0000052572 00000 n -0000064747 00000 n -0000063484 00000 n -0000063640 00000 n -0000063797 00000 n -0000063954 00000 n -0000064110 00000 n -0000064266 00000 n -0000064423 00000 n -0000064586 00000 n -0000346571 00000 n -0000346634 00000 n -0000356426 00000 n -0000356363 00000 n -0000346696 00000 n -0000073926 00000 n -0000072939 00000 n -0000065058 00000 n -0000073739 00000 n -0000073105 00000 n -0000073259 00000 n -0000073417 00000 n -0000073576 00000 n -0000346445 00000 n -0000346508 00000 n -0000356489 00000 n -0000078329 00000 n -0000078144 00000 n -0000074063 00000 n -0000078266 00000 n -0000083038 00000 n -0000082679 00000 n -0000078427 00000 n -0000082975 00000 n -0000082821 00000 n -0000516130 00000 n -0000089662 00000 n -0000089353 00000 n -0000083136 00000 n -0000089475 00000 n -0000102647 00000 n -0000101390 00000 n -0000089773 00000 n -0000102522 00000 n -0000101572 00000 n -0000101726 00000 n -0000101892 00000 n -0000102050 00000 n -0000102208 00000 n -0000102365 00000 n -0000346319 00000 n -0000346382 00000 n -0000123707 00000 n -0000121557 00000 n -0000102758 00000 n -0000123393 00000 n -0000121771 00000 n -0000121937 00000 n -0000122102 00000 n -0000122274 00000 n -0000122438 00000 n -0000122597 00000 n -0000122757 00000 n -0000122917 00000 n -0000123075 00000 n -0000387632 00000 n -0000380955 00000 n -0000387471 00000 n -0000380614 00000 n -0000378316 00000 n -0000380456 00000 n -0000377934 00000 n -0000374879 00000 n -0000377775 00000 n -0000374340 00000 n -0000371298 00000 n -0000374179 00000 n -0000370493 00000 n -0000366427 00000 n -0000370332 00000 n -0000123518 00000 n -0000123581 00000 n -0000123644 00000 n -0000123232 00000 n -0000356741 00000 n -0000356804 00000 n -0000346068 00000 n -0000346131 00000 n -0000346194 00000 n -0000356552 00000 n -0000141182 00000 n -0000140151 00000 n -0000123909 00000 n -0000141119 00000 n -0000140325 00000 n -0000140479 00000 n -0000140641 00000 n -0000140803 00000 n -0000140961 00000 n -0000346256 00000 n -0000356174 00000 n -0000156921 00000 n -0000155752 00000 n -0000141371 00000 n -0000156733 00000 n -0000155926 00000 n -0000156083 00000 n -0000156241 00000 n -0000156396 00000 n -0000156561 00000 n -0000156858 00000 n -0000171225 00000 n -0000171414 00000 n -0000170010 00000 n -0000157110 00000 n -0000171162 00000 n -0000170192 00000 n -0000366083 00000 n -0000363374 00000 n -0000365924 00000 n -0000362912 00000 n -0000359460 00000 n -0000362751 00000 n -0000359155 00000 n -0000357041 00000 n -0000358997 00000 n -0000171288 00000 n -0000171351 00000 n -0000170346 00000 n -0000170506 00000 n -0000170678 00000 n -0000170838 00000 n -0000170997 00000 n -0000516247 00000 n -0000177943 00000 n -0000177037 00000 n -0000171628 00000 n -0000177689 00000 n -0000177752 00000 n -0000177816 00000 n -0000177195 00000 n -0000177360 00000 n -0000177880 00000 n -0000177526 00000 n -0000193651 00000 n -0000191364 00000 n -0000178132 00000 n -0000193148 00000 n -0000191578 00000 n -0000191732 00000 n -0000193273 00000 n -0000193336 00000 n -0000191895 00000 n -0000193399 00000 n -0000192049 00000 n -0000192209 00000 n -0000192365 00000 n -0000192519 00000 n -0000193462 00000 n -0000193525 00000 n -0000193588 00000 n -0000192673 00000 n -0000192827 00000 n -0000192988 00000 n -0000207103 00000 n -0000263236 00000 n -0000303809 00000 n -0000207229 00000 n -0000206082 00000 n -0000193775 00000 n -0000207040 00000 n -0000206256 00000 n -0000206416 00000 n -0000206576 00000 n -0000206732 00000 n -0000206887 00000 n -0000226873 00000 n -0000222624 00000 n -0000220463 00000 n -0000207366 00000 n -0000222561 00000 n -0000220693 00000 n -0000220847 00000 n -0000221004 00000 n -0000221166 00000 n -0000221322 00000 n -0000221476 00000 n -0000221634 00000 n -0000221789 00000 n -0000221943 00000 n -0000222097 00000 n -0000222252 00000 n -0000222407 00000 n -0000231535 00000 n -0000231598 00000 n -0000231662 00000 n -0000226937 00000 n -0000226688 00000 n -0000222735 00000 n -0000226810 00000 n -0000231726 00000 n -0000231176 00000 n -0000227035 00000 n -0000231472 00000 n -0000231318 00000 n -0000516364 00000 n -0000241023 00000 n -0000240596 00000 n -0000231824 00000 n -0000240898 00000 n -0000240738 00000 n -0000246247 00000 n -0000245500 00000 n -0000241199 00000 n -0000246122 00000 n -0000245658 00000 n -0000245812 00000 n -0000245966 00000 n -0000256692 00000 n -0000254883 00000 n -0000246371 00000 n -0000256315 00000 n -0000255081 00000 n -0000255235 00000 n -0000255388 00000 n -0000255542 00000 n -0000255696 00000 n -0000256440 00000 n -0000256503 00000 n -0000256566 00000 n -0000256629 00000 n -0000255852 00000 n -0000256006 00000 n -0000256160 00000 n -0000263300 00000 n -0000262877 00000 n -0000256816 00000 n -0000263173 00000 n -0000263019 00000 n -0000276272 00000 n -0000276023 00000 n -0000263398 00000 n -0000276145 00000 n -0000276208 00000 n -0000290005 00000 n -0000289582 00000 n -0000276409 00000 n -0000289878 00000 n -0000289724 00000 n -0000289941 00000 n -0000516481 00000 n -0000303872 00000 n -0000303624 00000 n -0000290168 00000 n -0000303746 00000 n -0000309540 00000 n -0000308614 00000 n -0000304022 00000 n -0000309415 00000 n -0000308780 00000 n -0000308934 00000 n -0000309096 00000 n -0000309259 00000 n -0000320712 00000 n -0000320289 00000 n -0000309664 00000 n -0000320587 00000 n -0000320431 00000 n -0000323858 00000 n -0000323273 00000 n -0000320888 00000 n -0000323733 00000 n -0000323423 00000 n -0000323577 00000 n -0000327548 00000 n -0000327125 00000 n -0000323982 00000 n -0000327423 00000 n -0000327267 00000 n -0000330957 00000 n -0000330365 00000 n -0000327672 00000 n -0000330832 00000 n -0000330515 00000 n -0000330669 00000 n -0000516598 00000 n -0000335709 00000 n -0000335462 00000 n -0000331068 00000 n -0000335584 00000 n -0000346759 00000 n -0000345757 00000 n -0000335820 00000 n -0000345879 00000 n -0000356930 00000 n -0000355989 00000 n -0000346883 00000 n -0000356111 00000 n -0000359386 00000 n -0000359362 00000 n -0000363220 00000 n -0000363120 00000 n -0000366324 00000 n -0000366286 00000 n -0000371062 00000 n -0000370797 00000 n -0000374759 00000 n -0000374549 00000 n -0000378203 00000 n -0000378147 00000 n -0000380860 00000 n -0000380830 00000 n -0000388132 00000 n -0000387872 00000 n -0000405595 00000 n -0000405221 00000 n -0000410876 00000 n -0000410610 00000 n -0000422299 00000 n -0000421985 00000 n -0000440085 00000 n -0000439715 00000 n -0000453349 00000 n -0000453012 00000 n -0000464729 00000 n -0000464451 00000 n -0000484307 00000 n -0000483879 00000 n -0000494663 00000 n -0000494389 00000 n -0000503616 00000 n -0000503392 00000 n -0000515529 00000 n -0000515182 00000 n -0000516699 00000 n -0000516817 00000 n -0000516894 00000 n -0000516964 00000 n -0000519235 00000 n -0000521703 00000 n -0000521742 00000 n -0000521780 00000 n -0000521979 00000 n -trailer -<< -/Size 566 -/Root 564 0 R -/Info 565 0 R -/ID [ ] ->> -startxref -522654 -%%EOF diff --git a/docs/mld2p4-1.1-guide.pdf b/docs/mld2p4-1.1-guide.pdf new file mode 100644 index 00000000..2ee87b72 --- /dev/null +++ b/docs/mld2p4-1.1-guide.pdf @@ -0,0 +1,8118 @@ +%PDF-1.4 +%ÐÔÅØ +5 0 obj +<< /S /GoTo /D (title.0) >> +endobj +8 0 obj +(MLD2P4 User's and Reference Guide) +endobj +9 0 obj +<< /S /GoTo /D (section*.1) >> +endobj +12 0 obj +(Abstract) +endobj +13 0 obj +<< /S /GoTo /D (section.1) >> +endobj +16 0 obj +(1 General Overview) +endobj +17 0 obj +<< /S /GoTo /D (section.2) >> +endobj +20 0 obj +(2 Code Distribution) +endobj +21 0 obj +<< /S /GoTo /D (section.3) >> +endobj +24 0 obj +(3 Configuring and Building MLD2P4) +endobj +25 0 obj +<< /S /GoTo /D (subsection.3.1) >> +endobj +28 0 obj +(3.1 Prerequisites) +endobj +29 0 obj +<< /S /GoTo /D (subsection.3.2) >> +endobj +32 0 obj +(3.2 Optional third party libraries) +endobj +33 0 obj +<< /S /GoTo /D (subsection.3.3) >> +endobj +36 0 obj +(3.3 Configuration options) +endobj +37 0 obj +<< /S /GoTo /D (subsection.3.4) >> +endobj +40 0 obj +(3.4 Bug reporting) +endobj +41 0 obj +<< /S /GoTo /D (subsection.3.5) >> +endobj +44 0 obj +(3.5 Example and test programs) +endobj +45 0 obj +<< /S /GoTo /D (section.4) >> +endobj +48 0 obj +(4 Multi-level Domain Decomposition Background) +endobj +49 0 obj +<< /S /GoTo /D (subsection.4.1) >> +endobj +52 0 obj +(4.1 Multi-level Schwarz Preconditioners) +endobj +53 0 obj +<< /S /GoTo /D (subsection.4.2) >> +endobj +56 0 obj +(4.2 Smoothed Aggregation) +endobj +57 0 obj +<< /S /GoTo /D (section.5) >> +endobj +60 0 obj +(5 Getting Started) +endobj +61 0 obj +<< /S /GoTo /D (subsection.5.1) >> +endobj +64 0 obj +(5.1 Examples) +endobj +65 0 obj +<< /S /GoTo /D (section.6) >> +endobj +68 0 obj +(6 User Interface) +endobj +69 0 obj +<< /S /GoTo /D (subsection.6.1) >> +endobj +72 0 obj +(6.1 Subroutine mld\137precinit) +endobj +73 0 obj +<< /S /GoTo /D (subsection.6.2) >> +endobj +76 0 obj +(6.2 Subroutine mld\137precset) +endobj +77 0 obj +<< /S /GoTo /D (subsection.6.3) >> +endobj +80 0 obj +(6.3 Subroutine mld\137precbld) +endobj +81 0 obj +<< /S /GoTo /D (subsection.6.4) >> +endobj +84 0 obj +(6.4 Subroutine mld\137precaply) +endobj +85 0 obj +<< /S /GoTo /D (subsection.6.5) >> +endobj +88 0 obj +(6.5 Subroutine mld\137precfree) +endobj +89 0 obj +<< /S /GoTo /D (subsection.6.6) >> +endobj +92 0 obj +(6.6 Subroutine mld\137precdescr) +endobj +93 0 obj +<< /S /GoTo /D (section.7) >> +endobj +96 0 obj +(7 Error Handling) +endobj +97 0 obj +<< /S /GoTo /D (appendix.A) >> +endobj +100 0 obj +(A License) +endobj +101 0 obj +<< /S /GoTo /D (section*.3) >> +endobj +104 0 obj +(References) +endobj +105 0 obj +<< /S /GoTo /D [106 0 R /Fit ] >> +endobj +108 0 obj << +/Length 1169 +>> +stream +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +BT +/F17 24.7871 Tf 394.538 618.833 Td [(MLD2P4)]TJ -229.059 -27.023 Td [(User's)-375(and)-375(Reference)-375(Guide)]TJ +ET +q +1 0 0 1 93.6 573.564 cm +0 0 412.451 4.981 re f +Q +BT +/F19 14.3462 Tf 192.132 548.586 Td [(A)-350(guide)-350(for)-350(the)-350(Multi-L)50(evel)-350(Domain)-350(De)50(c)50(omp)50(osition)]TJ -5.512 -17.256 Td [(Par)50(al)-50(lel)-350(Pr)50(e)50(c)50(onditioners)-350(Package)-350(b)50(ase)50(d)-350(on)-350(PSBLAS)]TJ +0 g 0 G +0 g 0 G +/F17 11.9552 Tf 218.644 -79.389 Td [(P)31(asqua)-375(D'Am)31(bra)]TJ/F37 11.9552 Tf -31.595 -13.947 Td [(ICAR-CNR,)-326(Naples,)-327(Italy)]TJ/F17 11.9552 Tf 20.434 -29.39 Td [(Daniela)-375(di)-375(Sera\014no)]TJ/F37 11.9552 Tf -62.784 -13.948 Td [(Second)-326(Univ)27(ersit)27(y)-326(of)-327(Na)1(ples,)-327(Italy)]TJ/F17 11.9552 Tf 60.715 -29.39 Td [(Salv)62(atore)-375(Filipp)-31(one)]TJ/F37 11.9552 Tf -93.327 -13.947 Td [(Univ)27(ersit)27(y)-326(of)-326(Rome)-327(\134T)82(or)-326(V)81(ergata",)-326(Italy)]TJ +0 g 0 G +0 g 0 G + 100.3 -78.924 Td [(Soft)27(w)28(are)-327(v)27(ersion)1(:)-436(1.1)]TJ 28.358 -13.948 Td [(Marc)27(h)-326(13,)-326(2009)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +106 0 obj << +/Type /Page +/Contents 108 0 R +/Resources 107 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 114 0 R +>> endobj +109 0 obj << +/D [106 0 R /XYZ 93.6 740.002 null] +>> endobj +110 0 obj << +/D [106 0 R /XYZ 93.6 715.095 null] +>> endobj +6 0 obj << +/D [106 0 R /XYZ 93.6 715.095 null] +>> endobj +107 0 obj << +/Font << /F17 111 0 R /F19 112 0 R /F37 113 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +117 0 obj << +/Length 32 +>> +stream +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +endstream +endobj +116 0 obj << +/Type /Page +/Contents 117 0 R +/Resources 115 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 114 0 R +>> endobj +118 0 obj << +/D [116 0 R /XYZ 86.4 740.002 null] +>> endobj +115 0 obj << +/ProcSet [ /PDF ] +>> endobj +121 0 obj << +/Length 3754 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 503.021 740.002 Td [(i)]TJ +0 g 0 G +/F17 14.3462 Tf -409.421 -35.866 Td [(Abstract)]TJ/F41 10.9091 Tf 0 -24.352 Td [(MLD2P4)-514(\050Mul)66(ti-Level)-514(Domain)-515(Decomposition)-514(P)87(arallel)-514(Preconditioners)]TJ 0 -13.549 Td [(P)88(a)22(cka)22(ge)-370(based)-370(on)-370(PSBLAS)]TJ/F15 10.9091 Tf 149.304 0 Td [(\051)-326(is)-326(a)-326(pac)28(k)55(age)-326(of)-326(parallel)-326(al)1(ge)-1(b)1(raic)-326(m)27(ulti-lev)28(el)-326(precondi-)]TJ -149.304 -13.549 Td [(tioners.)-442(It)-328(implemen)28(ts)-327(v)55(arious)-327(v)28(ers)-1(i)1(ons)-328(of)-327(one-lev)28(e)-1(l)-327(additiv)28(e)-327(and)-328(of)-327(m)28(ulti-lev)28(el)-328(additiv)28(e)]TJ 0 -13.549 Td [(and)-339(h)28(ybrid)-339(Sc)28(h)28(w)27(ar)1(z)-339(algorithms.)-462(In)-339(the)-339(m)28(ulti-lev)28(el)-339(case,)-341(a)-338(purely)-339(algebraic)-339(approac)28(h)-339(is)]TJ 0 -13.55 Td [(applied)-307(to)-306(ge)-1(n)1(e)-1(rat)1(e)-307(coarse-le)-1(v)28(el)-307(corrections,)-312(so)-307(th)1(at)-307(no)-307(geometric)-307(bac)28(kground)-307(is)-307(needed)]TJ 0 -13.549 Td [(concerning)-342(the)-342(matrix)-342(to)-341(b)-28(e)-342(preconditioned.)-470(The)-342(matrix)-342(is)-342(assumed)-341(to)-342(b)-28(e)-342(square,)-344(real)]TJ 0 -13.549 Td [(or)-333(complex,)-334(with)-333(a)-333(symmetric)-334(sparsit)28(y)-333(pattern.)]TJ 16.937 -13.549 Td [(MLD2P4)-362(has)-361(b)-28(een)-362(designed)-361(to)-362(pro)28(vide)-362(scalable)-361(and)-362(easy-to-use)-362(preconditioners)-361(in)]TJ -16.937 -13.549 Td [(the)-346(con)28(text)-346(of)-345(the)-346(PSBLAS)-345(\050P)27(arallel)-345(Sparse)-346(Basic)-346(Linear)-345(Algebra)-346(Subprograms\051)-345(com)-1(-)]TJ 0 -13.55 Td [(putational)-357(f)1(rame)-1(w)28(ork)-356(and)-357(can)-357(b)-27(e)-357(used)-357(in)-356(conjuction)-357(with)-357(the)-356(Krylo)28(v)-357(solv)28(ers)-357(a)28(v)55(ailable)]TJ 0 -13.549 Td [(in)-424(this)-423(framew)27(or)1(k.)-716(MLD2P4)-424(enab)1(le)-1(s)-423(the)-424(user)-424(to)-423(easily)-424(sp)-28(ecify)-423(di\013eren)27(t)-423(asp)-28(ects)-424(of)-424(a)]TJ 0 -13.549 Td [(generic)-485(algebraic)-485(m)28(ultilev)27(el)-485(Sc)28(h)28(w)28(arz)-485(preconditioner,)-523(th)28(us)-485(allo)27(wing)-485(to)-485(searc)28(h)-485(for)-485(the)]TJ 0 -13.549 Td [(\134b)-28(est")-333(preconditioner)-333(for)-334(the)-333(problem)-333(at)-334(h)1(and.)]TJ 16.937 -13.549 Td [(The)-278(pac)27(k)56(age)-278(has)-279(b)-28(een)-278(designed)-278(em)-1(p)1(lo)27(ying)-278(ob)-56(j)1(e)-1(ct-orien)28(ted)-278(tec)28(hniques,)-290(using)-278(F)83(ortran)]TJ -16.937 -13.55 Td [(95,)-485(with)-455(in)28(terfaces)-455(to)-455(addition)1(al)-455(third)-455(part)28(y)-455(libraries)-454(s)-1(u)1(c)27(h)-455(as)-454(UMFP)83(A)28(CK,)-455(Sup)-28(erLU)]TJ 0 -13.549 Td [(and)-366(Sup)-28(erLU)]TJ +ET +q +1 0 0 1 158.43 476.745 cm +[]0 d 0 J 0.398 w 0 0 m 3.273 0 l S +Q +BT +/F15 10.9091 Tf 161.703 476.546 Td [(Dist,)-374(that)-366(can)-366(b)-28(e)-366(exploited)-366(in)-366(building)-366(m)28(ulti-lev)28(el)-366(preconditioners.)-543(The)]TJ -68.103 -13.549 Td [(parallel)-276(implemen)28(tation)-276(is)-276(based)-276(on)-276(a)-276(Single)-276(Program)-276(Multiple)-276(Data)-276(\050SP)1(MD\051)-276(paradigm)]TJ 0 -13.549 Td [(for)-267(distri)1(buted-me)-1(mory)-266(arc)28(hitectures;)-289(the)-267(in)28(ter-pro)-28(cess)-267(d)1(ata)-267(comm)28(unication)-267(is)-267(based)-266(on)]TJ 0 -13.549 Td [(MPI)-333(and)-334(is)-333(managed)-333(mainly)-333(through)-334(PSBLAS.)]TJ 16.937 -13.55 Td [(This)-353(guide)-354(pro)28(vides)-353(a)-354(brief)-353(description)-354(of)-353(the)-354(fu)1(nctionalities)-354(and)-353(the)-354(user)-353(in)28(terface)]TJ -16.937 -13.549 Td [(of)-333(MLD2P4.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +120 0 obj << +/Type /Page +/Contents 121 0 R +/Resources 119 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 114 0 R +>> endobj +122 0 obj << +/D [120 0 R /XYZ 93.6 740.002 null] +>> endobj +10 0 obj << +/D [120 0 R /XYZ 93.6 693.333 null] +>> endobj +119 0 obj << +/Font << /F15 123 0 R /F17 111 0 R /F41 124 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +127 0 obj << +/Length 79 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(ii)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +ET +endstream +endobj +126 0 obj << +/Type /Page +/Contents 127 0 R +/Resources 125 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 114 0 R +>> endobj +128 0 obj << +/D [126 0 R /XYZ 86.4 740.002 null] +>> endobj +125 0 obj << +/Font << /F15 123 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +155 0 obj << +/Length 6438 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 496.96 740.002 Td [(iii)]TJ +0 g 0 G +/F17 14.3462 Tf -403.36 -35.866 Td [(Con)31(ten)31(ts)]TJ +0 0 1 rg 0 0 1 RG +/F43 10.9091 Tf 0 -24.458 Td [(Abstract)]TJ +0 g 0 G + 408.966 0 Td [(i)]TJ +0 0 1 rg 0 0 1 RG + -408.966 -24.458 Td [(1)-925(General)-383(Ov)32(erview)]TJ +0 g 0 G + [-26677(1)]TJ +0 0 1 rg 0 0 1 RG + 0 -24.459 Td [(2)-925(Co)-32(de)-383(Distribution)]TJ +0 g 0 G + [-26593(3)]TJ +0 0 1 rg 0 0 1 RG + 0 -24.458 Td [(3)-925(Con\014guring)-383(and)-384(Building)-383(MLD2P4)]TJ +0 g 0 G + [-17973(4)]TJ +0 0 1 rg 0 0 1 RG +/F15 10.9091 Tf 16.364 -13.549 Td [(3.1)-1022(Prerequisites)]TJ +0 g 0 G + [-947(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1781(4)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + 0 -13.549 Td [(3.2)-1022(Optional)-333(third)-334(par)1(t)27(y)-333(libraries)]TJ +0 g 0 G + [-711(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1781(5)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + 0 -13.549 Td [(3.3)-1022(Con\014guration)-333(options)]TJ +0 g 0 G + [-942(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1781(5)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + 0 -13.55 Td [(3.4)-1022(Bug)-334(r)1(e)-1(p)-27(orting)]TJ +0 g 0 G + [-431(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1780(8)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + 0 -13.549 Td [(3.5)-1022(Example)-333(and)-334(test)-333(programs)]TJ +0 g 0 G + [-669(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1780(8)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG +/F43 10.9091 Tf -16.364 -24.458 Td [(4)-925(Multi-lev)32(el)-384(Domain)-383(Decomp)-32(osition)-383(Bac)32(kground)]TJ +0 g 0 G + [-11727(9)]TJ +0 0 1 rg 0 0 1 RG +/F15 10.9091 Tf 16.364 -13.549 Td [(4.1)-1022(Multi-lev)28(el)-334(Sc)28(h)28(w)28(arz)-334(Preconditioners)]TJ +0 g 0 G + [-977(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ +0 g 0 G + [-1281(10)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + 0 -13.55 Td [(4.2)-1022(Smo)-28(othed)-333(Aggregation)]TJ +0 g 0 G + [-447(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1281(12)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG +/F43 10.9091 Tf -16.364 -24.458 Td [(5)-925(Getting)-383(Started)]TJ +0 g 0 G + [-27184(15)]TJ +0 0 1 rg 0 0 1 RG +/F15 10.9091 Tf 16.364 -13.549 Td [(5.1)-1022(Examples)]TJ +0 g 0 G + [-792(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1280(16)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG +/F43 10.9091 Tf -16.364 -24.458 Td [(6)-925(User)-383(In)32(terface)]TJ +0 g 0 G + [-27997(20)]TJ +0 0 1 rg 0 0 1 RG +/F15 10.9091 Tf 16.364 -13.55 Td [(6.1)-1022(Subroutine)-333(mld)]TJ +ET +q +1 0 0 1 209.679 411.185 cm +[]0 d 0 J 0.398 w 0 0 m 3.273 0 l S +Q +BT +/F15 10.9091 Tf 212.952 410.985 Td [(precinit)]TJ +0 g 0 G + [-751(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1281(21)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -102.988 -13.549 Td [(6.2)-1022(Subroutine)-333(mld)]TJ +ET +q +1 0 0 1 209.679 397.635 cm +[]0 d 0 J 0.398 w 0 0 m 3.273 0 l S +Q +BT +/F15 10.9091 Tf 212.952 397.436 Td [(precset)]TJ +0 g 0 G + [-1023(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1281(22)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -102.988 -13.549 Td [(6.3)-1022(Subroutine)-333(mld)]TJ +ET +q +1 0 0 1 209.679 384.086 cm +[]0 d 0 J 0.398 w 0 0 m 3.273 0 l S +Q +BT +/F15 10.9091 Tf 212.952 383.887 Td [(precbld)]TJ +0 g 0 G + [-862(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1281(27)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -102.988 -13.549 Td [(6.4)-1022(Subroutine)-333(mld)]TJ +ET +q +1 0 0 1 209.679 370.537 cm +[]0 d 0 J 0.398 w 0 0 m 3.273 0 l S +Q +BT +/F15 10.9091 Tf 212.952 370.338 Td [(precaply)]TJ +0 g 0 G + [-390(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1281(28)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -102.988 -13.549 Td [(6.5)-1022(Subroutine)-333(mld)]TJ +ET +q +1 0 0 1 209.679 356.988 cm +[]0 d 0 J 0.398 w 0 0 m 3.273 0 l S +Q +BT +/F15 10.9091 Tf 212.952 356.789 Td [(precfree)]TJ +0 g 0 G + [-665(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1281(29)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG + -102.988 -13.55 Td [(6.6)-1022(Subroutine)-333(mld)]TJ +ET +q +1 0 0 1 209.679 343.439 cm +[]0 d 0 J 0.398 w 0 0 m 3.273 0 l S +Q +BT +/F15 10.9091 Tf 212.952 343.239 Td [(precdescr)]TJ +0 g 0 G + [-798(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ +0 g 0 G + [-1281(30)]TJ +0 g 0 G +0 0 1 rg 0 0 1 RG +/F43 10.9091 Tf -119.352 -24.458 Td [(7)-925(Error)-383(Handling)]TJ +0 g 0 G + [-27434(31)]TJ +0 0 1 rg 0 0 1 RG + 0 -24.458 Td [(A)-631(License)]TJ +0 g 0 G + [-31489(32)]TJ +0 0 1 rg 0 0 1 RG + 0 -24.459 Td [(References)]TJ +0 g 0 G + [-31259(33)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +154 0 obj << +/Type /Page +/Contents 155 0 R +/Resources 153 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 114 0 R +/Annots [ 129 0 R 130 0 R 131 0 R 132 0 R 133 0 R 134 0 R 135 0 R 136 0 R 137 0 R 138 0 R 139 0 R 140 0 R 141 0 R 142 0 R 143 0 R 144 0 R 145 0 R 146 0 R 147 0 R 148 0 R 149 0 R 150 0 R 151 0 R 152 0 R ] +>> endobj +129 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 678.682 142.598 688.25] +/Subtype /Link +/A << /S /GoTo /D (section*.1) >> +>> endobj +130 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 654.223 209.755 663.792] +/Subtype /Link +/A << /S /GoTo /D (section.1) >> +>> endobj +131 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 629.765 210.673 639.333] +/Subtype /Link +/A << /S /GoTo /D (section.2) >> +>> endobj +132 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 603.186 304.709 614.875] +/Subtype /Link +/A << /S /GoTo /D (section.3) >> +>> endobj +133 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.968 589.636 197.294 601.205] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.1) >> +>> endobj +134 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.968 576.087 276.233 587.777] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.2) >> +>> endobj +135 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.968 562.538 239.779 574.228] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.3) >> +>> endobj +136 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.968 548.989 202.93 560.557] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.4) >> +>> endobj +137 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.968 535.44 268.203 547.129] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.5) >> +>> endobj +138 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 510.981 372.854 522.671] +/Subtype /Link +/A << /S /GoTo /D (section.4) >> +>> endobj +139 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.968 499.553 307.263 509.122] +/Subtype /Link +/A << /S /GoTo /D (subsection.4.1) >> +>> endobj +140 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.968 483.883 245.172 495.572] +/Subtype /Link +/A << /S /GoTo /D (subsection.4.2) >> +>> endobj +141 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 459.425 197.952 471.114] +/Subtype /Link +/A << /S /GoTo /D (section.5) >> +>> endobj +142 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.968 445.875 182.021 457.565] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.1) >> +>> endobj +143 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 423.538 189.09 433.107] +/Subtype /Link +/A << /S /GoTo /D (section.6) >> +>> endobj +144 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.968 407.868 250.342 419.557] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.1) >> +>> endobj +145 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.968 394.319 247.372 406.008] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.2) >> +>> endobj +146 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.968 380.77 249.13 392.459] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.3) >> +>> endobj +147 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.968 367.22 254.282 378.91] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.4) >> +>> endobj +148 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.968 353.671 251.282 365.361] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.5) >> +>> endobj +149 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.968 340.122 258.312 351.811] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.6) >> +>> endobj +150 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 315.664 195.225 327.353] +/Subtype /Link +/A << /S /GoTo /D (section.7) >> +>> endobj +151 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 293.326 150.984 302.895] +/Subtype /Link +/A << /S /GoTo /D (appendix.A) >> +>> endobj +152 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 268.868 153.499 278.436] +/Subtype /Link +/A << /S /GoTo /D (section*.3) >> +>> endobj +156 0 obj << +/D [154 0 R /XYZ 93.6 740.002 null] +>> endobj +157 0 obj << +/D [154 0 R /XYZ 93.6 693.333 null] +>> endobj +153 0 obj << +/Font << /F15 123 0 R /F17 111 0 R /F43 158 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +161 0 obj << +/Length 79 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(iv)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +ET +endstream +endobj +160 0 obj << +/Type /Page +/Contents 161 0 R +/Resources 159 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 114 0 R +>> endobj +162 0 obj << +/D [160 0 R /XYZ 86.4 740.002 null] +>> endobj +159 0 obj << +/Font << /F15 123 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +172 0 obj << +/Length 8043 +>> +stream +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F41 10.9091 Tf 93.6 740.002 Td [(1)]TJ +0 g 0 G + [-378(General)-378(O)30(ver)88(view)]TJ/F15 10.9091 Tf 406.997 0 Td [(1)]TJ +0 g 0 G +/F17 14.3462 Tf -406.997 -35.866 Td [(1)-1125(General)-375(Ov)31(erview)]TJ/F15 10.9091 Tf 0 -24.352 Td [(The)]TJ/F41 10.9091 Tf 23.408 0 Td [(Mul)67(ti-Level)-473(Domain)-472(Decomposition)-472(P)87(arallel)-472(Preconditioners)-473(P)88(a)22(ck-)]TJ -23.408 -13.549 Td [(a)22(ge)-278(based)-277(on)-278(PSBLAS)-278(\050MLD2P)1(4)]TJ/F15 10.9091 Tf 174.54 0 Td [(\051)-238(pro)28(vides)]TJ/F18 10.9091 Tf 48.921 0 Td [(multi-level)-270(Schwarz)-270(pr)51(e)51(c)51(onditioners)]TJ/F15 10.9091 Tf 168.99 0 Td [([)]TJ +1 0 0 rg 1 0 0 RG + [(20)]TJ +0 g 0 G + [(],)]TJ -392.451 -13.549 Td [(to)-333(b)-28(e)-333(used)-334(in)-333(the)-333(iterativ)27(e)-333(solutions)-333(of)-333(s)-1(p)1(arse)-334(linear)-333(systems:)]TJ/F22 10.9091 Tf 186.98 -23.153 Td [(Ax)]TJ/F15 10.9091 Tf 17.446 0 Td [(=)]TJ/F22 10.9091 Tf 11.516 0 Td [(b;)]TJ +0 g 0 G +/F15 10.9091 Tf 182.57 0 Td [(\0501\051)]TJ +0 g 0 G + -398.512 -23.152 Td [(where)]TJ/F22 10.9091 Tf 31.318 0 Td [(A)]TJ/F15 10.9091 Tf 11.591 0 Td [(is)-312(a)-313(square,)-317(real)-312(or)-312(c)-1(ompl)1(e)-1(x,)-316(sparse)-313(matrix)-312(with)-313(a)-312(symmetric)-313(sparsit)28(y)-312(pattern.)]TJ -42.909 -13.549 Td [(These)-333(preconditioners)-334(ha)28(v)28(e)-333(the)-334(follo)28(wing)-333(general)-334(f)1(e)-1(atu)1(res)-1(:)]TJ +0 g 0 G +/F25 10.9091 Tf 16.364 -21.386 Td [(\017)]TJ +0 g 0 G +/F15 10.9091 Tf 10.909 0 Td [(b)-28(oth)]TJ/F18 10.9091 Tf 24.794 0 Td [(additive)-277(and)-276(hybrid)-277(mu)1(ltilevel)]TJ/F15 10.9091 Tf 141.789 0 Td [(v)56(arian)27(ts)-245(are)-245(implemen)28(ted,)-263(i.e.)-245(v)56(arian)28(ts)-245(that)-245(are)]TJ -166.583 -13.549 Td [(additiv)28(e)-226(among)-226(th)1(e)-226(lev)28(e)-1(ls)-225(and)-226(inside)-226(eac)28(h)-226(lev)28(el,)-247(and)-226(v)56(arian)28(ts)-226(that)-226(are)-225(m)27(ultipl)1(ic)-1(ati)1(v)27(e)]TJ 0 -13.549 Td [(among)-334(the)-334(lev)27(els)-334(and)-334(additiv)28(e)-334(inside)-334(eac)27(h)-334(lev)28(el;)-335(the)-334(basic)-334(Additiv)28(e)-334(Sc)27(h)28(w)28(arz)-334(\050AS\051)]TJ 0 -13.549 Td [(preconditioners)-333(are)-334(obtai)1(ned)-334(b)28(y)-333(considering)-334(on)1(ly)-334(one)-333(lev)28(el;)]TJ +0 g 0 G +/F25 10.9091 Tf -10.909 -22.064 Td [(\017)]TJ +0 g 0 G +/F15 10.9091 Tf 10.909 0 Td [(a)]TJ/F18 10.9091 Tf 10.389 0 Td [(pur)51(ely)-467(algebr)51(aic)]TJ/F15 10.9091 Tf 80.623 0 Td [(approac)28(h)-452(is)-453(used)-452(to)-452(generate)-453(a)-452(sequence)-452(of)-453(coarse-lev)28(el)-452(cor-)]TJ -91.012 -13.549 Td [(rections)-415(to)-415(a)-415(basic)-415(AS)-414(preconditioner,)-435(without)-415(explicitly)-415(using)-415(an)28(y)-415(information)]TJ 0 -13.549 Td [(on)-374(the)-374(geometry)-374(of)-374(the)-373(original)-374(problem)-374(\050e.g.)-374(the)-374(discretization)-374(of)-374(a)-374(P)1(DE\051.)-374(The)]TJ/F18 10.9091 Tf 0 -13.55 Td [(smo)51(othe)51(d)-313(aggr)51(e)52(gation)]TJ/F15 10.9091 Tf 103.953 0 Td [(tec)28(hnique)-285(is)-284(applied)-285(as)-284(algebraic)-285(coarsening)-284(strategy)-285([)]TJ +1 0 0 rg 1 0 0 RG + [(1)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-284(24)]TJ +0 g 0 G + [(].)]TJ -114.289 -21.385 Td [(The)-287(pac)28(k)56(age)-287(is)-287(written)-286(in)]TJ/F18 10.9091 Tf 122.396 0 Td [(F)77(ortr)51(an)-315(95)]TJ/F15 10.9091 Tf 50.422 0 Td [(,)-296(follo)28(wing)-287(an)]TJ/F18 10.9091 Tf 66.455 0 Td [(obje)51(ct-oriente)51(d)-315(appr)52(o)51(ach)]TJ/F15 10.9091 Tf 118.635 0 Td [(through)]TJ -374.845 -13.55 Td [(the)-330(e)-1(xp)1(loitation)-331(of)-330(features)-331(suc)28(h)-330(as)-331(abstract)-330(data)-331(t)28(yp)-28(e)-330(creation,)-331(functional)-331(o)28(v)28(erloading)]TJ 0 -13.549 Td [(and)-360(dynamic)-360(memory)-360(managemen)28(t.)-525(The)-360(parallel)-360(implemen)28(tation)-360(is)-360(based)-360(on)-360(a)-360(Single)]TJ 0 -13.549 Td [(Program)-231(Mul)1(tiple)-231(Data)-231(\050SPMD\051)-230(paradigm)-231(for)-230(distributed-memory)-231(arc)28(hitectures.)-410(Single)]TJ 0 -13.549 Td [(and)-377(double)-376(precis)-1(i)1(on)-377(implemen)27(tat)1(ions)-377(of)-377(MLD2P4)-377(are)-377(a)28(v)56(ailable)-377(for)-377(b)-28(oth)-376(the)-377(real)-377(and)]TJ 0 -13.549 Td [(the)-333(complex)-334(case,)-333(that)-333(can)-334(b)-27(e)-334(used)-333(through)-333(a)-334(single)-333(in)28(terface.)]TJ 16.937 -13.549 Td [(MLD2P4)-229(has)-230(b)-27(e)-1(en)-229(designed)-229(to)-230(implemen)28(t)-230(scalable)-229(and)-229(easy-to-use)-230(m)28(ultilev)28(el)-230(precon-)]TJ -16.937 -13.55 Td [(ditioners)-348(in)-348(the)-349(con)28(text)-348(of)-348(the)]TJ/F18 10.9091 Tf 147.432 0 Td [(PSBLAS)-372(\050Par)52(al)-52(l)1(el)-372(Sp)51(arse)-371(BLAS\051)-372(c)51(omputational)-371(fr)51(ame-)]TJ -147.432 -13.549 Td [(work)]TJ/F15 10.9091 Tf 27.287 0 Td [([)]TJ +1 0 0 rg 1 0 0 RG + [(15)]TJ +0 g 0 G + [(].)-454(PSBLAS)-336(is)-336(a)-337(library)-336(originally)-336(dev)28(elop)-28(ed)-337(to)-336(address)-336(the)-337(parallel)-336(implemen-)]TJ -27.287 -13.549 Td [(tation)-442(of)-442(iterativ)28(e)-442(solv)28(ers)-442(for)-442(sparse)-442(linear)-442(system,)-469(b)28(y)-442(pro)28(viding)-442(basic)-442(linear)-442(algebra)]TJ 0 -13.549 Td [(op)-28(erators)-442(and)-442(data)-442(managemen)27(t)-442(facilities)-442(for)-442(distributed)-442(sparse)-443(matrices;)-496(it)-443(also)-442(in-)]TJ 0 -13.549 Td [(cludes)-337(parallel)-337(Krylo)28(v)-337(solv)28(ers,)-338(built)-337(on)-336(the)-337(top)-337(of)-337(the)-337(basic)-337(PSBLAS)-337(k)28(ernels.)-455(The)-337(pre-)]TJ 0 -13.55 Td [(conditioners)-379(a)27(v)56(ailable)-380(in)-379(MLD2P4)-380(can)-379(b)-28(e)-379(used)-380(with)-379(these)-380(Krylo)28(v)-380(solv)28(ers.)-583(The)-380(c)28(hoice)]TJ 0 -13.549 Td [(of)-362(PSBLAS)-361(has)-362(b)-28(een)-361(mainly)-362(motiv)56(ated)-362(b)28(y)-362(the)-362(need)-361(of)-362(ha)28(ving)-362(a)-361(p)-28(ortable)-362(and)-361(e\016cien)27(t)]TJ 0 -13.549 Td [(soft)28(w)28(are)-313(infrastructure)-312(implemen)28(ting)-312(\134de)-313(facto")-312(standard)-312(parallel)-312(sparse)-313(linear)-312(algebra)]TJ 0 -13.549 Td [(k)28(ernels,)-304(to)-297(pursue)-297(goals)-296(suc)27(h)-296(as)-297(p)-28(erformance,)-304(p)-28(or)1(tabilit)27(y)84(,)-304(mo)-28(dularit)28(y)-297(ed)-296(e)-1(xt)1(e)-1(nsib)1(ilit)27(y)-296(in)]TJ 0 -13.549 Td [(the)-272(dev)27(elopmen)28(t)-272(of)-273(the)-272(preconditioner)-272(pac)27(k)56(age.)-424(On)-273(the)-272(other)-272(hand,)-285(the)-272(implemen)27(tation)]TJ 0 -13.55 Td [(of)-379(MLD2P4)-378(has)-379(led)-379(to)-379(some)-379(revisions)-379(and)-378(exten)27(tion)1(s)-379(of)-379(the)-379(PSBLAS)-379(k)28(ernels,)-390(leading)]TJ 0 -13.549 Td [(to)-439(the)-439(recen)28(t)-439(PSBLAS)-439(2.0)-438(v)27(ersion)-438([)]TJ +1 0 0 rg 1 0 0 RG + [(14)]TJ +0 g 0 G + [(].)-761(The)-439(in)27(t)1(e)-1(r-p)1(ro)-28(cess)-439(com)27(uni)1(c)-1(ati)1(on)-439(required)-439(b)28(y)]TJ 0 -13.549 Td [(MLD2P4)-355(is)-354(encapsulated)-355(in)28(to)-355(the)-354(PSBLAS)-355(routines,)-360(except)-354(few)-355(cases)-355(where)-354(MPI)-355([)]TJ +1 0 0 rg 1 0 0 RG + [(21)]TJ +0 g 0 G + [(])]TJ 0 -13.549 Td [(is)-458(explicitly)-458(called.)-818(Therefore,)-489(MLD2P4)-458(can)-457(b)-28(e)-458(run)-458(on)-458(an)28(y)-458(parallel)-457(mac)27(hine)-458(where)]TJ 0 -13.549 Td [(PSBLAS)-333(and)-334(M)1(PI)-334(implemen)28(tations)-333(are)-334(a)28(v)56(ailable.)]TJ 16.937 -13.55 Td [(MLD2P4)-342(has)-341(a)-342(la)28(y)28(ered)-342(and)-342(mo)-27(dular)-342(soft)28(w)28(are)-342(arc)28(hitecture)-342(where)-342(th)1(ree)-342(main)-342(la)28(y)28(ers)]TJ -16.937 -13.549 Td [(can)-458(b)-28(e)-458(iden)28(ti\014ed.)-819(The)-458(lo)28(w)28(er)-458(la)27(y)28(er)-458(consists)-458(of)-458(the)-458(PSBLAS)-458(k)28(ernels,)-490(the)-458(middle)-458(one)]TJ 0 -13.549 Td [(implemen)28(ts)-458(the)-457(construction)-457(and)-458(application)-457(phases)-458(of)-457(the)-457(preconditioners,)-489(and)-457(the)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +171 0 obj << +/Type /Page +/Contents 172 0 R +/Resources 170 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 177 0 R +/Annots [ 169 0 R 163 0 R 164 0 R 165 0 R 166 0 R 167 0 R 168 0 R ] +>> endobj +169 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 739.006 100.627 748.453] +/Subtype /Link +/A << /S /GoTo /D (section.1) >> +>> endobj +163 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [488.085 665.239 500.987 674.261] +/Subtype /Link +/A << /S /GoTo /D (cite.dd2_96) >> +>> endobj +164 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [476.497 467.091 483.944 476.114] +/Subtype /Link +/A << /S /GoTo /D (cite.BREZINA_VANEK) >> +>> endobj +165 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [488.085 467.091 500.987 476.114] +/Subtype /Link +/A << /S /GoTo /D (cite.VANEK_MANDEL_BREZINA) >> +>> endobj +166 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [122.921 337.312 135.822 346.335] +/Subtype /Link +/A << /S /GoTo /D (cite.psblas_00) >> +>> endobj +167 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [267.662 201.82 280.564 210.843] +/Subtype /Link +/A << /S /GoTo /D (cite.PSBLASGUIDE) >> +>> endobj +168 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [491.116 188.271 504.017 197.293] +/Subtype /Link +/A << /S /GoTo /D (cite.MPI1) >> +>> endobj +14 0 obj << +/D [171 0 R /XYZ 93.6 715.095 null] +>> endobj +174 0 obj << +/D [171 0 R /XYZ 280.58 643.083 null] +>> endobj +170 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F17 111 0 R /F18 173 0 R /F22 175 0 R /F25 176 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +193 0 obj << +/Length 3833 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(2)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +/F15 10.9091 Tf -203.265 -35.866 Td [(upp)-28(er)-310(one)-310(pro)28(vides)-310(a)-310(uniform)-310(and)-310(easy-to-use)-310(in)28(terface)-310(to)-310(all)-310(the)-310(preconditioners.)-437(This)]TJ 0 -13.549 Td [(arc)28(hitecture)-446(allo)28(w)-1(s)-446(for)-446(di\013eren)28(t)-446(lev)28(els)-446(of)-447(use)-446(of)-446(the)-446(pac)28(k)55(age:)-670(few)-446(blac)28(k-b)-28(o)28(x)-446(routines)]TJ 0 -13.549 Td [(at)-384(the)-384(upp)-28(er)-384(la)28(y)28(er)-384(allo)28(w)-384(non-exp)-28(ert)-384(users)-384(to)-384(easily)-384(build)-384(an)28(y)-384(preconditioner)-384(a)28(v)56(ailable)]TJ 0 -13.549 Td [(in)-365(MLD2P4)-365(and)-364(to)-365(apply)-365(it)-365(within)-365(a)-364(PSBLAS)-365(Krylo)28(v)-365(solv)28(er.)-539(On)-365(the)-365(other)-365(hand,)-373(the)]TJ 0 -13.549 Td [(routines)-253(of)-253(the)-253(middle)-253(and)-253(lo)28(w)27(er)-253(la)28(y)28(er)-253(can)-253(b)-28(e)-253(used)-253(and)-253(extended)-253(b)27(y)-253(exp)-28(ert)-253(users)-253(to)-253(build)]TJ 0 -13.55 Td [(new)-367(v)28(ersions)-367(of)-366(m)28(ulti-lev)27(el)-366(Sc)28(h)27(w)28(arz)-366(prec)-1(on)1(ditioners.)-545(W)84(e)-367(pro)28(vide)-367(here)-366(a)-367(description)-367(of)]TJ 0 -13.549 Td [(the)-333(upp)-28(er-la)28(y)28(er)-334(routines,)-333(but)-333(not)-334(of)-333(the)-333(medium-la)28(y)27(er)-333(ones.)]TJ 16.936 -13.549 Td [(This)-380(guide)-380(is)-380(organized)-380(as)-380(follo)28(ws.)-585(General)-380(information)-380(on)-380(the)-380(distribution)-380(of)-380(the)]TJ -16.936 -13.549 Td [(source)-239(co)-27(de)-239(is)-238(rep)-28(orted)-239(in)-238(Section)]TJ +0 0 1 rg 0 0 1 RG + [-239(2)]TJ +0 g 0 G + [(,)-257(while)-238(details)-239(on)-238(the)-239(con\014guration)-238(and)-239(installati)1(on)-239(of)]TJ 0 -13.549 Td [(the)-280(pac)28(k)56(age)-280(are)-280(giv)28(e)-1(n)-279(in)-280(Section)]TJ +0 0 1 rg 0 0 1 RG + [-280(3)]TJ +0 g 0 G + [(.)-427(A)-279(desc)-1(r)1(iption)-280(of)-280(m)28(ulti-lev)28(e)-1(l)-279(Sc)27(h)28(w)28(arz)-280(preconditioners)]TJ 0 -13.55 Td [(based)-354(on)-354(smo)-28(othed)-354(aggregation)-354(is)-354(pr)1(o)27(vided)-354(in)-354(S)1(e)-1(ction)]TJ +0 0 1 rg 0 0 1 RG + [-353(4)]TJ +0 g 0 G + [(,)-360(to)-354(h)1(e)-1(l)1(p)-354(the)-354(users)-354(in)-354(c)27(ho)-27(osing)]TJ 0 -13.549 Td [(among)-339(the)-340(di\013eren)28(t)-339(preconditioners)-339(implemen)27(ted)-339(in)-339(MLD2P4.)-462(The)-340(basics)-339(for)-339(building)]TJ 0 -13.549 Td [(and)-322(applying)-322(the)-322(p)1(rec)-1(on)1(ditioners)-322(with)-322(the)-322(Krylo)28(v)-322(solv)28(ers)-322(implemen)27(ted)-322(in)-321(PSBLAS)-322(are)]TJ 0 -13.549 Td [(rep)-28(orted)-389(in)-390(Section)]TJ +0 0 1 rg 0 0 1 RG + [-390(5)]TJ +0 g 0 G + [(,)-404(where)-390(the)-389(F)83(ortran)-390(95)-389(co)-28(des)-390(of)-390(a)-390(few)-389(sample)-390(programs)-390(are)-390(also)]TJ 0 -13.549 Td [(sho)28(wn.)-637(A)-397(reference)-398(guide)-397(for)-397(the)-398(upp)-28(er-la)28(y)28(er)-397(routines)-398(of)-397(MLD2P4,)-414(that)-397(are)-397(the)-398(user)]TJ 0 -13.55 Td [(in)28(terface,)-328(is)-326(pro)27(vid)1(e)-1(d)-326(in)-326(Section)]TJ +0 0 1 rg 0 0 1 RG + [-327(6)]TJ +0 g 0 G + [(.)-442(The)-326(error)-327(handlin)1(g)-327(mec)28(hanism)-327(used)-326(b)28(y)-327(the)-326(pac)28(k)55(age)]TJ 0 -13.549 Td [(is)-359(b)1(rie\015y)-359(describ)-28(ed)-358(in)-359(Section)]TJ +0 0 1 rg 0 0 1 RG + [-358(7)]TJ +0 g 0 G + [(.)-520(The)-359(cop)28(yrigh)28(t)-358(terms)-359(concerning)-358(the)-359(distribution)-358(and)]TJ 0 -13.549 Td [(mo)-28(di\014cation)-333(of)-333(MLD2P4)-334(ar)1(e)-334(rep)-28(orted)-333(in)-333(App)-28(endix)]TJ +0 0 1 rg 0 0 1 RG + [-333(A)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +192 0 obj << +/Type /Page +/Contents 193 0 R +/Resources 191 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 177 0 R +/Annots [ 184 0 R 185 0 R 186 0 R 187 0 R 188 0 R 189 0 R 190 0 R ] +>> endobj +184 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [243.651 592.625 251.098 604.315] +/Subtype /Link +/A << /S /GoTo /D (section.2) >> +>> endobj +185 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [238.905 579.076 246.352 590.766] +/Subtype /Link +/A << /S /GoTo /D (section.3) >> +>> endobj +186 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [347.75 565.527 355.197 577.216] +/Subtype /Link +/A << /S /GoTo /D (section.4) >> +>> endobj +187 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [182.16 524.879 189.607 536.569] +/Subtype /Link +/A << /S /GoTo /D (section.5) >> +>> endobj +188 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [239.103 497.781 246.55 509.47] +/Subtype /Link +/A << /S /GoTo /D (section.6) >> +>> endobj +189 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [230.595 484.232 238.042 495.921] +/Subtype /Link +/A << /S /GoTo /D (section.7) >> +>> endobj +190 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [332.616 470.683 342.79 482.372] +/Subtype /Link +/A << /S /GoTo /D (appendix.A) >> +>> endobj +191 0 obj << +/Font << /F15 123 0 R /F41 124 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +198 0 obj << +/Length 1367 +>> +stream +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F41 10.9091 Tf 93.6 740.002 Td [(2)]TJ +0 g 0 G + [-378(Code)-378(D)1(istri)-1(bution)]TJ/F15 10.9091 Tf 406.997 0 Td [(3)]TJ +0 g 0 G +/F17 14.3462 Tf -406.997 -35.866 Td [(2)-1125(Co)-31(de)-375(Distribution)]TJ/F15 10.9091 Tf 0 -24.352 Td [(MLD2P4)-333(is)-334(a)28(v)56(ailable)-334(f)1(rom)-334(the)-333(w)28(eb)-334(site)]TJ +0 g 0 G +0 g 0 G +/F44 10.9091 Tf 43.637 -22.515 Td [(http://www.mld2p4.it)]TJ/F15 10.9091 Tf -43.637 -22.516 Td [(where)-333(con)27(tact)-333(p)-28(oin)28(ts)-333(for)-333(further)-334(information)-333(can)-333(b)-28(e)-333(also)-334(foun)1(d.)]TJ 16.937 -13.549 Td [(The)-299(soft)28(w)28(are)-299(is)-298(a)27(v)56(ailable)-298(under)-299(a)-299(mo)-27(di\014ed)-299(BSD)-298(lice)-1(n)1(s)-1(e,)-305(as)-299(sp)-28(eci\014ed)-298(in)-299(App)-27(endix)]TJ +0 0 1 rg 0 0 1 RG + [-299(A)]TJ +0 g 0 G + [(;)]TJ -16.937 -13.549 Td [(please)-448(note)-448(that)-448(some)-448(of)-448(the)-448(optional)-448(third)-448(part)28(y)-448(libraries)-448(ma)28(y)-448(b)-28(e)-448(licensed)-448(under)-448(a)]TJ 0 -13.55 Td [(di\013eren)28(t)-366(and)-366(more)-366(stringen)28(t)-366(license,)-374(most)-366(notably)-366(the)-366(GPL,)-366(and)-365(this)-366(should)-366(b)-28(e)-366(tak)28(en)]TJ 0 -13.549 Td [(in)28(to)-333(ac)-1(coun)28(t)-333(when)-333(treating)-334(deriv)28(ed)-333(w)28(orks.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +197 0 obj << +/Type /Page +/Contents 198 0 R +/Resources 196 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 177 0 R +/Annots [ 195 0 R 194 0 R ] +>> endobj +195 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 739.006 100.627 748.453] +/Subtype /Link +/A << /S /GoTo /D (section.2) >> +>> endobj +194 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [493.843 618.086 504.017 629.776] +/Subtype /Link +/A << /S /GoTo /D (appendix.A) >> +>> endobj +199 0 obj << +/D [197 0 R /XYZ 93.6 740.002 null] +>> endobj +18 0 obj << +/D [197 0 R /XYZ 93.6 715.095 null] +>> endobj +196 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F17 111 0 R /F44 200 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +211 0 obj << +/Length 6973 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(4)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +/F17 14.3462 Tf -203.265 -35.866 Td [(3)-1125(Con\014guring)-375(and)-375(Building)-375(MLD2P4)]TJ/F15 10.9091 Tf 0 -24.539 Td [(T)83(o)-324(build)-324(MLD2P4)-324(it)-324(is)-325(necessary)-324(to)-324(set)-324(up)-325(a)-324(Mak)28(e\014le)-324(with)-324(appropriate)-325(v)56(alues)-324(for)-324(y)27(our)]TJ 0 -13.549 Td [(system;)-363(this)-353(is)-353(done)-353(b)28(y)-353(means)-353(of)-353(the)]TJ/F44 10.9091 Tf 179.099 0 Td [(configure)]TJ/F15 10.9091 Tf 55.396 0 Td [(script.)-503(T)-1(h)1(e)-354(d)1(is)-1(tr)1(ibution)-353(also)-353(includes)]TJ -234.495 -13.55 Td [(the)-311(auto)-27(conf)-311(and)-311(automak)28(e)-311(sources)-311(emplo)28(y)28(ed)-311(to)-310(ge)-1(n)1(e)-1(r)1(ate)-311(the)-311(script,)-315(but)-311(usually)-310(this)-311(is)]TJ 0 -13.549 Td [(not)-333(needed)-334(to)-333(build)-333(the)-333(soft)27(w)28(are.)]TJ 16.936 -13.645 Td [(MLD2P4)-479(is)-479(implemen)28(ted)-479(almost)-479(en)28(tirely)-479(in)-479(F)83(ortran)-479(95,)-515(with)-479(some)-479(in)27(terfaces)-479(to)]TJ -16.936 -13.55 Td [(external)-284(libraries)-285(in)-284(C;)-284(the)-285(F)84(ortran)-285(compiler)-284(m)28(ust)-285(supp)-27(ort)-285(the)-284(F)83(ortran)-284(95)-284(standard)-284(plus)]TJ 0 -13.549 Td [(the)-353(extension)-353(TR15581,)-357(whic)27(h)-352(enhances)-353(the)-353(usabilit)28(y)-353(of)]TJ/F44 10.9091 Tf 271.48 0 Td [(ALLOCATABLE)]TJ/F15 10.9091 Tf 66.848 0 Td [(v)56(ariables.)-503(Most)]TJ -338.328 -13.549 Td [(mo)-28(dern)-343(F)84(ortran)-343(compilers)-343(supp)-28(ort)-343(this)-343(language)-343(lev)28(el.)-473(In)-343(particular,)-345(this)-343(is)-343(supp)-28(orted)]TJ 0 -13.549 Td [(b)28(y)-401(the)-400(GNU)-401(F)83(ortran)-400(compiler)-401(as)-401(of)-400(v)28(ersion)-401(4.2.0;)-434(ho)28(w)27(ev)28(er)-401(w)28(e)-401(recommend)-400(to)-401(use)-401(the)]TJ 0 -13.549 Td [(latest)-414(a)27(v)56(ailable)-414(releas)-1(e)-414(\0504.3.1)-414(at)-415(the)-414(time)-415(of)-414(this)-414(writing\051.)-688(The)-414(soft)27(w)28(are)-414(de\014nes)-415(data)]TJ 0 -13.55 Td [(t)28(yp)-28(es)-333(and)-334(in)28(terfaces)-333(for)-333(real)-334(and)-333(complex)-333(data,)-334(in)-333(b)-28(oth)-333(single)-333(and)-333(double)-334(precision.)]TJ/F17 11.9552 Tf 0 -29.764 Td [(3.1)-1125(Prerequisites)]TJ/F15 10.9091 Tf 0 -20.782 Td [(The)-333(follo)28(wing)-334(base)-333(libraries)-333(are)-334(needed:)]TJ +0 g 0 G +/F43 10.9091 Tf 0 -22.901 Td [(BLAS)]TJ +0 g 0 G +/F15 10.9091 Tf 38.378 0 Td [([)]TJ +1 0 0 rg 1 0 0 RG + [(10)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-315(11)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-316(17)]TJ +0 g 0 G + [(])-315(Man)28(y)-316(v)28(endors)-315(pro)28(vide)-316(opt)1(im)-1(i)1(z)-1(ed)-315(v)28(ersions)-316(of)-315(the)-315(Basic)-316(Linear)-315(Alge-)]TJ -11.105 -13.549 Td [(bra)-229(Subprograms;)-264(if)-229(no)-229(v)28(e)-1(n)1(dor)-230(v)28(ersion)-229(is)-229(a)27(v)56(ailable)-229(for)-229(a)-230(giv)28(en)-229(platform,)-250(the)-229(A)83(TLAS)]TJ 0 -13.549 Td [(soft)28(w)28(are)-404(\050)]TJ/F44 10.9091 Tf 47.821 0 Td [(http://math-atlas.sourceforge.net/)]TJ/F15 10.9091 Tf 194.726 0 Td [(\051)-403(ma)28(y)-403(b)-28(e)-403(emplo)27(y)28(ed.)-653(The)-404(ref-)]TJ -242.547 -13.55 Td [(erence)-415(BLAS)-414(from)-415(Netlib)-414(\050)]TJ/F44 10.9091 Tf 132.392 0 Td [(http://www.netlib.org/blas)]TJ/F15 10.9091 Tf 148.908 0 Td [(\051)-415(ar)1(e)-415(mean)28(t)-415(to)-414(de\014ne)]TJ -281.3 -13.549 Td [(the)-332(stand)1(ard)-332(b)-28(eha)28(viour)-331(of)-332(the)-331(BLAS)-332(in)28(terface,)-332(so)-332(they)-331(are)-332(not)-331(optimized)-332(for)-331(an)27(y)]TJ 0 -13.549 Td [(particular)-396(plaftorm,)-412(and)-396(should)-397(onl)1(y)-397(b)-28(e)-396(used)-396(as)-397(a)-396(last)-396(resort.)-634(Note)-396(that)-396(BLAS)]TJ 0 -13.549 Td [(computations)-223(form)-222(a)-223(relativ)28(e)-1(l)1(y)-223(small)-223(part)-223(of)-223(the)-222(MLD2P4/PSBLAS)-223(computations;)]TJ 0 -13.549 Td [(they)-308(are)-308(ho)28(w)28(ev)28(er)-308(critical)-308(when)-308(using)-307(preconditioners)-308(based)-308(on)-308(the)-307(UMFP)83(A)28(CK)-308(or)]TJ 0 -13.549 Td [(Sup)-28(erLU)-333(third)-333(part)28(y)-334(libr)1(aries)-1(.)]TJ +0 g 0 G +/F43 10.9091 Tf -27.273 -22.902 Td [(MPI)]TJ +0 g 0 G +/F15 10.9091 Tf 30.697 0 Td [([)]TJ +1 0 0 rg 1 0 0 RG + [(16)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-340(21)]TJ +0 g 0 G + [(])-340(A)-341(v)28(ersion)-340(of)-340(MPI)-340(is)-341(a)28(v)56(ailable)-341(on)-340(most)-340(high-p)-28(erformance)-340(computing)-340(sys-)]TJ -3.424 -13.549 Td [(tems;)-333(only)-334(v)28(ersion)-333(1.1)-333(is)-334(required.)]TJ +0 g 0 G +/F43 10.9091 Tf -27.273 -22.901 Td [(BLA)32(CS)]TJ +0 g 0 G +/F15 10.9091 Tf 47.09 0 Td [([)]TJ +1 0 0 rg 1 0 0 RG + [(12)]TJ +0 g 0 G + [(])-342(The)-342(Basic)-342(Linear)-342(Algebra)-342(Comm)28(unication)-342(Subprograms)-342(are)-342(a)28(v)56(ailable)-342(in)]TJ -19.817 -13.55 Td [(source)-296(form)-297(from)]TJ/F44 10.9091 Tf 83.789 0 Td [(http://www.netlib.org/blacs)]TJ/F15 10.9091 Tf 154.635 0 Td [(;)-309(some)-296(v)28(endors)-297(include)-296(them)-296(in)]TJ -238.424 -13.549 Td [(their)-333(parallel)-333(c)-1(ompu)1(ting)-334(supp)-27(ort)-334(libraries.)]TJ +0 g 0 G +/F43 10.9091 Tf -27.273 -22.901 Td [(PSBLAS)]TJ +0 g 0 G +/F15 10.9091 Tf 53.924 0 Td [([)]TJ +1 0 0 rg 1 0 0 RG + [(14)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-333(15)]TJ +0 g 0 G + [(])-334(P)28(arallel)-333(Sparse)-333(BLAS)-334(is)-333(a)28(v)55(ailable)-333(from)]TJ/F44 10.9091 Tf -26.651 -13.549 Td [(http://www.ce.uniroma2.it/psblas)]TJ/F15 10.9091 Tf 183.27 0 Td [(;)-339(v)27(ersion)-337(2.3)-337(\050or)-338(later\051)-337(is)-338(required.)-456(Indeed,)]TJ -183.27 -13.549 Td [(all)-364(the)-365(prerequisites)-364(listed)-365(so)-364(far)-365(are)-364(also)-365(prerequisites)-364(of)-365(PSBLAS.)-364(T)83(o)-364(build)-365(the)]TJ 0 -13.55 Td [(MLD2P4)-443(library)-442(it)-443(is)-443(necessary)-443(to)-443(get)-442(ac)-1(cess)-443(t)1(o)-443(the)-443(source)-443(PSBLAS)-443(di)1(re)-1(ctory)]TJ 0 -13.549 Td [(emplo)28(y)28(ed)-381(to)-381(build)-381(the)-381(v)28(ersion)-381(under)-380(use)-1(;)-404(after)-381(the)-381(MLD2P4)-381(bu)1(ild)-381(pro)-28(cess)-381(com-)]TJ 0 -13.549 Td [(pletes,)-368(only)-360(the)-361(compiled)-361(form)-361(of)-360(the)-361(PSBLAS)-361(library)-360(is)-361(necessary)-361(to)-361(build)-360(user)]TJ 0 -13.549 Td [(applications.)]TJ -10.337 -22.902 Td [(Please)-289(note)-289(that)-289(the)-290(fou)1(r)-290(pr)1(e)-1(vi)1(ous)-290(librar)1(ie)-1(s)-289(m)28(ust)-289(ha)28(v)28(e)-290(F)84(ortran)-289(in)28(terfaces)-290(compatible)]TJ -16.936 -13.549 Td [(with)-300(MLD2P4;)-311(usual)1(ly)-300(this)-300(means)-300(that)-300(th)1(e)-1(y)-299(should)-300(all)-300(b)-27(e)-300(built)-300(with)-300(the)-299(same)-300(compiler)]TJ 0 -13.549 Td [(as)-333(MLD2P4.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +210 0 obj << +/Type /Page +/Contents 211 0 R +/Resources 209 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 177 0 R +/Annots [ 201 0 R 202 0 R 203 0 R 204 0 R 205 0 R 206 0 R 207 0 R 208 0 R ] +>> endobj +201 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [126.812 469.565 139.714 478.588] +/Subtype /Link +/A << /S /GoTo /D (cite.blas3) >> +>> endobj +202 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [144.192 469.565 157.094 478.588] +/Subtype /Link +/A << /S /GoTo /D (cite.blas2) >> +>> endobj +203 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [161.572 469.565 174.474 478.588] +/Subtype /Link +/A << /S /GoTo /D (cite.blas1) >> +>> endobj +204 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [119.131 338.27 132.032 347.293] +/Subtype /Link +/A << /S /GoTo /D (cite.MPI2) >> +>> endobj +205 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [136.782 338.27 149.683 347.293] +/Subtype /Link +/A << /S /GoTo /D (cite.MPI1) >> +>> endobj +206 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [135.524 301.819 148.426 310.842] +/Subtype /Link +/A << /S /GoTo /D (cite.BLACS) >> +>> endobj +207 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [142.358 251.82 155.259 260.842] +/Subtype /Link +/A << /S /GoTo /D (cite.PSBLASGUIDE) >> +>> endobj +208 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [159.934 251.82 172.835 260.842] +/Subtype /Link +/A << /S /GoTo /D (cite.psblas_00) >> +>> endobj +212 0 obj << +/D [210 0 R /XYZ 86.4 740.002 null] +>> endobj +22 0 obj << +/D [210 0 R /XYZ 86.4 715.095 null] +>> endobj +26 0 obj << +/D [210 0 R /XYZ 86.4 526.167 null] +>> endobj +209 0 obj << +/Font << /F15 123 0 R /F41 124 0 R /F17 111 0 R /F44 200 0 R /F43 158 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +224 0 obj << +/Length 5602 +>> +stream +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F41 10.9091 Tf 93.6 740.002 Td [(3)]TJ +0 g 0 G + [-378(Configuring)-378(and)-377(B)-1(uilding)-377(MLD2P4)]TJ/F15 10.9091 Tf 406.997 0 Td [(5)]TJ +0 g 0 G +/F17 11.9552 Tf -406.997 -35.866 Td [(3.2)-1125(Optional)-375(third)-375(part)31(y)-375(libraries)]TJ/F15 10.9091 Tf 0 -20.594 Td [(W)83(e)-426(pro)28(vide)-427(in)28(terfaces)-427(to)-426(the)-427(follo)28(wing)-426(third-part)28(y)-427(soft)28(w)28(are)-427(libraries;)-473(note)-426(that)-427(these)]TJ 0 -13.549 Td [(are)-370(optional,)-379(but)-369(if)-370(y)28(ou)-370(enable)-370(them)-370(some)-370(default)1(s)-370(for)-370(m)28(ultilev)28(e)-1(l)-369(preconditioners)-370(ma)28(y)]TJ 0 -13.55 Td [(c)28(hange)-334(to)-333(re\015ect)-333(their)-334(pr)1(e)-1(sence.)]TJ +0 g 0 G +/F43 10.9091 Tf 0 -24.291 Td [(UMFP)96(A)32(CK)]TJ +0 g 0 G +/F15 10.9091 Tf 70.47 0 Td [([)]TJ +1 0 0 rg 1 0 0 RG + [(8)]TJ +0 g 0 G + [(])-333(A)-334(sparse)-333(direct)-333(factorization)-334(p)1(ac)27(k)56(age)-334(a)28(v)56(ailable)-333(from)]TJ/F44 10.9091 Tf -43.197 -13.549 Td [(http://www.cise.ufl.edu/research/sparse/umfpack/)]TJ/F15 10.9091 Tf 274.906 0 Td [(;)-359(pro)27(vides)-350(se)-1(r)1(ial)-351(factor-)]TJ -274.906 -13.549 Td [(ization)-275(and)-274(triangular)-275(system)-275(solution)-274(for)-275(double)-275(p)1(rec)-1(ision)-274(real)-275(and)-275(complex)-274(data.)]TJ 0 -13.549 Td [(W)83(e)-333(ha)28(v)28(e)-334(tested)-333(v)28(ersions)-334(4.4)-333(and)-333(5.1.)]TJ +0 g 0 G +/F43 10.9091 Tf -27.273 -22.111 Td [(Sup)-32(erLU)]TJ +0 g 0 G +/F15 10.9091 Tf 54.826 0 Td [([)]TJ +1 0 0 rg 1 0 0 RG + [(9)]TJ +0 g 0 G + [(])-333(A)-334(sparse)-333(direct)-333(factorization)-334(p)1(ac)27(k)56(age)-334(a)28(v)56(ailable)-333(from)]TJ/F44 10.9091 Tf -27.553 -13.55 Td [(http://crd.lbl.gov/~xiaoye/SuperLU/)]TJ/F15 10.9091 Tf 200.452 0 Td [(;)-498(pro)27(vides)-443(serial)-443(factorization)-444(and)-443(tri-)]TJ -200.452 -13.549 Td [(angular)-389(system)-390(solution)-389(for)-389(single)-390(and)-389(double)-389(precision,)-403(real)-390(and)-389(complex)-389(data.)]TJ 0 -13.549 Td [(W)83(e)-333(ha)28(v)28(e)-334(tested)-333(v)28(ersions)-334(3.0)-333(and)-333(3.1.)]TJ +0 g 0 G +/F43 10.9091 Tf -27.273 -22.111 Td [(Sup)-32(erLU)]TJ +ET +q +1 0 0 1 143.724 506.834 cm +[]0 d 0 J 0.398 w 0 0 m 3.764 0 l S +Q +BT +/F43 10.9091 Tf 147.487 506.635 Td [(Dist)]TJ +0 g 0 G +/F15 10.9091 Tf 28.388 0 Td [([)]TJ +1 0 0 rg 1 0 0 RG + [(18)]TJ +0 g 0 G + [(])-304(A)-304(sparse)-304(d)1(irec)-1(t)-303(factorization)-304(pac)28(k)55(age)-304(a)28(v)56(ailable)-304(from)-304(the)-304(same)-304(site)]TJ -55.002 -13.549 Td [(as)-481(Sup)-28(erLU;)-481(pro)28(vides)-481(parallel)-481(factorization)-481(and)-481(triangular)-481(system)-482(solution)-481(for)]TJ 0 -13.549 Td [(double)-333(precision)-334(r)1(e)-1(al)-333(and)-333(complex)-333(data.)-445(W)84(e)-334(ha)28(v)28(e)-334(tested)-333(v)28(ersion)-334(2.1.)]TJ/F17 11.9552 Tf -27.273 -29.023 Td [(3.3)-1125(Con\014guration)-375(options)]TJ/F15 10.9091 Tf 0 -20.594 Td [(T)83(o)-302(build)-302(MLD2P4)-302(the)-302(\014rst)-303(step)-302(is)-302(to)-302(use)-303(the)]TJ/F44 10.9091 Tf 214.002 0 Td [(configure)]TJ/F15 10.9091 Tf 54.842 0 Td [(script)-302(in)-302(the)-303(main)-302(directory)-302(to)]TJ -268.844 -13.549 Td [(generate)-333(the)-334(necessary)-333(mak)28(e\014le\050s\051.)]TJ 16.937 -13.55 Td [(As)-333(a)-334(minimal)-333(example)-333(consider)-334(the)-333(follo)28(wing:)]TJ +0 g 0 G +0 g 0 G +/F44 10.9091 Tf -16.937 -21.504 Td [(./configure)-525(--with-psblas=/home/user/PSBLAS/psblas-2.3)]TJ/F15 10.9091 Tf 0 -21.504 Td [(whic)28(h)-273(assumes)-273(that)-272(the)-273(v)56(arious)-273(MPI)-272(compilers)-273(and)-273(sup)1(p)-28(ort)-273(libraries)-272(are)-273(a)28(v)55(ailable)-272(in)-273(the)]TJ 0 -13.55 Td [(standard)-253(directories)-253(on)-253(the)-253(system,)-269(and)-253(sp)-28(eci\014es)-253(only)-253(the)-253(PSBLAS)-253(build)-253(directory)-253(\050note)]TJ 0 -13.549 Td [(that)-250(the)-249(latter)-250(directory)-250(m)28(ust)-250(b)-28(e)-249(sp)-28(eci\014ed)-250(with)-250(an)]TJ/F18 10.9091 Tf 236.248 0 Td [(absolute)]TJ/F15 10.9091 Tf 40.639 0 Td [(path\051.)-416(T)-1(h)1(e)-250(full)-250(set)-250(of)-249(options)]TJ -276.887 -13.549 Td [(ma)28(y)-334(b)-27(e)-334(lo)-27(ok)27(ed)-333(at)-333(b)28(y)-334(issuing)-333(the)-333(comm)-1(an)1(d)]TJ/F44 10.9091 Tf 205.576 0 Td [(./configure)-525(--help)]TJ/F15 10.9091 Tf 103.09 0 Td [(,)-333(whic)27(h)-333(pro)-28(d)1(uce)-1(s:)]TJ +0 g 0 G +0 g 0 G +/F44 10.9091 Tf -308.666 -21.505 Td [(`configure')-525(configures)-525(MLD2P4)-525(1.1)-525(to)-525(adapt)-525(to)-525(many)-525(kinds)-525(of)-525(systems.)]TJ 0 -27.098 Td [(Usage:)-525(./configure)-525([OPTION]...)-525([VAR=VALUE]...)]TJ 0 -27.098 Td [(To)-525(assign)-525(environment)-525(variables)-525(\050e.g.,)-525(CC,)-525(CFLAGS...\051,)-525(specify)-525(them)-525(as)]TJ 0 -13.549 Td [(VAR=VALUE.)-1050(See)-525(below)-525(for)-525(descriptions)-525(of)-525(some)-525(of)-525(the)-525(useful)-525(variables.)]TJ 0 -27.099 Td [(Defaults)-525(for)-525(the)-525(options)-525(are)-525(specified)-525(in)-525(brackets.)]TJ 0 -27.098 Td [(Configuration:)]TJ 11.455 -13.549 Td [(-h,)-525(--help)-7350(display)-525(this)-525(help)-525(and)-525(exit)]TJ 22.908 -13.55 Td [(--help=short)-4200(display)-525(options)-525(specific)-525(to)-525(this)-525(package)]TJ 0 -13.549 Td [(--help=recursive)-2100(display)-525(the)-525(short)-525(help)-525(of)-525(all)-525(the)-525(included)-525(packages)]TJ -22.908 -13.549 Td [(-V,)-525(--version)-5775(display)-525(version)-525(information)-525(and)-525(exit)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +223 0 obj << +/Type /Page +/Contents 224 0 R +/Resources 222 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 177 0 R +/Annots [ 221 0 R 218 0 R 219 0 R 220 0 R ] +>> endobj +221 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 739.006 100.627 748.453] +/Subtype /Link +/A << /S /GoTo /D (section.3) >> +>> endobj +218 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [166.104 631.156 173.551 640.179] +/Subtype /Link +/A << /S /GoTo /D (cite.UMFPACK) >> +>> endobj +219 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [150.46 568.397 157.907 577.42] +/Subtype /Link +/A << /S /GoTo /D (cite.SUPERLU) >> +>> endobj +220 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [177.909 505.639 190.811 514.661] +/Subtype /Link +/A << /S /GoTo /D (cite.SUPERLUDIST) >> +>> endobj +225 0 obj << +/D [223 0 R /XYZ 93.6 740.002 null] +>> endobj +30 0 obj << +/D [223 0 R /XYZ 93.6 715.095 null] +>> endobj +34 0 obj << +/D [223 0 R /XYZ 93.6 462.341 null] +>> endobj +222 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F17 111 0 R /F43 158 0 R /F44 200 0 R /F18 173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +231 0 obj << +/Length 3805 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(6)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +/F44 10.9091 Tf -191.811 -35.866 Td [(-q,)-525(--quiet,)-525(--silent)-1575(do)-525(not)-525(print)-525(`checking...')-525(messages)]TJ 22.909 -13.549 Td [(--cache-file=FILE)-1575(cache)-525(test)-525(results)-525(in)-525(FILE)-525([disabled])]TJ -22.909 -13.549 Td [(-C,)-525(--config-cache)-3150(alias)-525(for)-525(`--cache-file=config.cache')]TJ 0 -13.549 Td [(-n,)-525(--no-create)-4725(do)-525(not)-525(create)-525(output)-525(files)]TJ 22.909 -13.549 Td [(--srcdir=DIR)-4200(find)-525(the)-525(sources)-525(in)-525(DIR)-525([configure)-525(dir)-525(or)-525(`..'])]TJ -34.363 -27.099 Td [(Installation)-525(directories:)]TJ 11.454 -13.549 Td [(--prefix=PREFIX)-4725(install)-525(architecture-independent)-525(files)-525(in)-525(PREFIX)]TJ 0 -13.549 Td [([/usr/local])]TJ 0 -13.549 Td [(--exec-prefix=EPREFIX)-1575(install)-525(architecture-dependent)-525(files)-525(in)-525(EPREFIX)]TJ 0 -13.55 Td [([PREFIX])]TJ -11.454 -27.098 Td [(By)-525(default,)-525(`make)-525(install')-525(will)-525(install)-525(all)-525(the)-525(files)-525(in)]TJ 0 -13.549 Td [(`/usr/local/bin',)-525(`/usr/local/lib')-525(etc.)-1050(You)-525(can)-525(specify)]TJ 0 -13.549 Td [(an)-525(installation)-525(prefix)-525(other)-525(than)-525(`/usr/local')-525(using)-525(`--prefix',)]TJ 0 -13.55 Td [(for)-525(instance)-525(`--prefix=$HOME'.)]TJ 0 -27.098 Td [(For)-525(better)-525(control,)-525(use)-525(the)-525(options)-525(below.)]TJ 0 -27.098 Td [(Fine)-525(tuning)-525(of)-525(the)-525(installation)-525(directories:)]TJ 11.454 -13.55 Td [(--bindir=DIR)-5775(user)-525(executables)-525([EPREFIX/bin])]TJ 0 -13.549 Td [(--sbindir=DIR)-5250(system)-525(admin)-525(executables)-525([EPREFIX/sbin])]TJ 0 -13.549 Td [(--libexecdir=DIR)-3675(program)-525(executables)-525([EPREFIX/libexec])]TJ 0 -13.549 Td [(--sysconfdir=DIR)-3675(read-only)-525(single-machine)-525(data)-525([PREFIX/etc])]TJ 0 -13.549 Td [(--sharedstatedir=DIR)-1575(modifiable)-525(architecture-independent)-525(data)-525([PREFIX/com])]TJ 0 -13.549 Td [(--localstatedir=DIR)-2100(modifiable)-525(single-machine)-525(data)-525([PREFIX/var])]TJ 0 -13.55 Td [(--libdir=DIR)-5775(object)-525(code)-525(libraries)-525([EPREFIX/lib])]TJ 0 -13.549 Td [(--includedir=DIR)-3675(C)-525(header)-525(files)-525([PREFIX/include])]TJ 0 -13.549 Td [(--oldincludedir=DIR)-2100(C)-525(header)-525(files)-525(for)-525(non-gcc)-525([/usr/include])]TJ 0 -13.549 Td [(--datarootdir=DIR)-3150(read-only)-525(arch.-independent)-525(data)-525(root)-525([PREFIX/share])]TJ 0 -13.549 Td [(--datadir=DIR)-5250(read-only)-525(architecture-independent)-525(data)-525([DATAROOTDIR])]TJ 0 -13.55 Td [(--infodir=DIR)-5250(info)-525(documentation)-525([DATAROOTDIR/info])]TJ 0 -13.549 Td [(--localedir=DIR)-4200(locale-dependent)-525(data)-525([DATAROOTDIR/locale])]TJ 0 -13.549 Td [(--mandir=DIR)-5775(man)-525(documentation)-525([DATAROOTDIR/man])]TJ 0 -13.549 Td [(--docdir=DIR)-5775(documentation)-525(root)-525([DATAROOTDIR/doc/mld2p4])]TJ 0 -13.549 Td [(--htmldir=DIR)-5250(html)-525(documentation)-525([DOCDIR])]TJ 0 -13.55 Td [(--dvidir=DIR)-5775(dvi)-525(documentation)-525([DOCDIR])]TJ 0 -13.549 Td [(--pdfdir=DIR)-5775(pdf)-525(documentation)-525([DOCDIR])]TJ 0 -13.549 Td [(--psdir=DIR)-6300(ps)-525(documentation)-525([DOCDIR])]TJ -11.454 -27.098 Td [(Optional)-525(Packages:)]TJ 11.454 -13.55 Td [(--with-PACKAGE[=ARG])-2100(use)-525(PACKAGE)-525([ARG=yes])]TJ 0 -13.549 Td [(--without-PACKAGE)-3675(do)-525(not)-525(use)-525(PACKAGE)-525(\050same)-525(as)-525(--with-PACKAGE=no\051)]TJ 0 -13.549 Td [(--with-psblas)-5775(The)-525(source)-525(directory)-525(for)-525(PSBLAS,)-525(for)-525(example,)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +230 0 obj << +/Type /Page +/Contents 231 0 R +/Resources 229 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 177 0 R +>> endobj +232 0 obj << +/D [230 0 R /XYZ 86.4 740.002 null] +>> endobj +229 0 obj << +/Font << /F15 123 0 R /F41 124 0 R /F44 200 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +236 0 obj << +/Length 3870 +>> +stream +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F41 10.9091 Tf 93.6 740.002 Td [(3)]TJ +0 g 0 G + [-378(Configuring)-378(and)-377(B)-1(uilding)-377(MLD2P4)]TJ/F15 10.9091 Tf 406.997 0 Td [(7)]TJ +0 g 0 G +/F44 10.9091 Tf -258.089 -35.866 Td [(--with-psblas=/opt/packages/psblas-2.3)]TJ -137.453 -13.549 Td [(--with-libs)-6825(List)-525(additional)-525(link)-525(flags)-525(here.)-525(For)-525(example,)]TJ 137.453 -13.549 Td [(--with-libs=-lspecial_system_lib)-525(or)]TJ 0 -13.549 Td [(--with-libs=-L/path/to/libs)]TJ -137.453 -13.549 Td [(--with-clibs)-6300(additional)-525(CLIBS)-525(flags)-525(to)-525(be)-525(added:)-525(will)-525(prepend)]TJ 137.453 -13.55 Td [(to)-525(CLIBS)]TJ -137.453 -13.549 Td [(--with-flibs)-6300(additional)-525(FLIBS)-525(flags)-525(to)-525(be)-525(added:)-525(will)-525(prepend)]TJ 137.453 -13.549 Td [(to)-525(FLIBS)]TJ -137.453 -13.549 Td [(--with-library-path)-2625(additional)-525(LIBRARYPATH)-525(flags)-525(to)-525(be)-525(added:)-525(will)]TJ 137.453 -13.549 Td [(prepend)-525(to)-525(LIBRARYPATH)]TJ -137.453 -13.55 Td [(--with-include-path)-2625(additional)-525(INCLUDEPATH)-525(flags)-525(to)-525(be)-525(added:)-525(will)]TJ 137.453 -13.549 Td [(prepend)-525(to)-525(INCLUDEPATH)]TJ -137.453 -13.549 Td [(--with-module-path)-3150(additional)-525(MODULE_PATH)-525(flags)-525(to)-525(be)-525(added:)-525(will)]TJ 137.453 -13.549 Td [(prepend)-525(to)-525(MODULE_PATH)]TJ -137.453 -13.549 Td [(--with-umfpack=LIBNAME)-1050(Specify)-525(the)-525(library)-525(name)-525(for)-525(UMFPACK)-525(library.)]TJ 137.453 -13.55 Td [(Default:)-525("-lumfpack)-525(-lamd")]TJ -137.453 -13.549 Td [(--with-umfpackdir=DIR)-1575(Specify)-525(the)-525(directory)-525(for)-525(UMFPACK)-525(library)-525(and)]TJ 137.453 -13.549 Td [(includes.)]TJ -137.453 -13.549 Td [(--with-superlu=LIBNAME)-1050(Specify)-525(the)-525(library)-525(name)-525(for)-525(SUPERLU)-525(library.)]TJ 137.453 -13.549 Td [(Default:)-525("-lslu")]TJ -137.453 -13.55 Td [(--with-superludir=DIR)-1575(Specify)-525(the)-525(directory)-525(for)-525(SUPERLU)-525(library)-525(and)]TJ 137.453 -13.549 Td [(includes.)]TJ -137.453 -13.549 Td [(--with-superludist=LIBNAME)]TJ 137.453 -13.549 Td [(Specify)-525(the)-525(libname)-525(for)-525(SUPERLUDIST)-525(library.)]TJ 0 -13.549 Td [(Requires)-525(you)-525(also)-525(specify)-525(SuperLU.)-525(Default:)-525("-lslud")]TJ -137.453 -13.549 Td [(--with-superludistdir=DIR)]TJ 137.453 -13.55 Td [(Specify)-525(the)-525(directory)-525(for)-525(SUPERLUDIST)-525(library)-525(and)]TJ 0 -13.549 Td [(includes.)]TJ -148.908 -27.098 Td [(Some)-525(influential)-525(environment)-525(variables:)]TJ 11.455 -13.549 Td [(FC)-5250(Fortran)-525(compiler)-525(command)]TJ 0 -13.55 Td [(FCFLAGS)-2625(Fortran)-525(compiler)-525(flags)]TJ 0 -13.549 Td [(LDFLAGS)-2625(linker)-525(flags,)-525(e.g.)-525(-L)-525(if)-525(you)-525(have)-525(libraries)-525(in)-525(a)]TJ 68.726 -13.549 Td [(nonstandard)-525(directory)-525()]TJ -68.726 -13.549 Td [(LIBS)-4200(libraries)-525(to)-525(pass)-525(to)-525(the)-525(linker,)-525(e.g.)-525(-l)]TJ 0 -13.549 Td [(CC)-5250(C)-525(compiler)-525(command)]TJ 0 -13.55 Td [(CFLAGS)-3150(C)-525(compiler)-525(flags)]TJ 0 -13.549 Td [(CPPFLAGS)-2100(C/C++/Objective)-525(C)-525(preprocessor)-525(flags,)-525(e.g.)-525(-I)-525(if)]TJ 68.726 -13.549 Td [(you)-525(have)-525(headers)-525(in)-525(a)-525(nonstandard)-525(directory)-525()]TJ -68.726 -13.549 Td [(CPP)-4725(C)-525(preprocessor)]TJ 0 -13.549 Td [(MPICC)-3675(MPI)-525(C)-525(compiler)-525(command)]TJ -11.455 -27.099 Td [(Use)-525(these)-525(variables)-525(to)-525(override)-525(the)-525(choices)-525(made)-525(by)-525(`configure')-525(or)-525(to)-525(help)]TJ 0 -13.549 Td [(it)-525(to)-525(find)-525(libraries)-525(and)-525(programs)-525(with)-525(nonstandard)-525(names/locations.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +235 0 obj << +/Type /Page +/Contents 236 0 R +/Resources 234 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 238 0 R +/Annots [ 233 0 R ] +>> endobj +233 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 739.006 100.627 748.453] +/Subtype /Link +/A << /S /GoTo /D (section.3) >> +>> endobj +237 0 obj << +/D [235 0 R /XYZ 93.6 740.002 null] +>> endobj +234 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F44 200 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +241 0 obj << +/Length 4777 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(8)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +/F44 10.9091 Tf -203.265 -49.415 Td [(Report)-525(bugs)-525(to)-525(.)]TJ/F15 10.9091 Tf 0 -22.515 Td [(Th)28(us,)-352(a)-348(sample)-348(build)-348(with)-348(libraries)-348(in)-348(installation)-348(directories)-348(sp)-28(eci\014cs)-348(to)-348(the)-348(GNU)-348(4.3)]TJ 0 -13.55 Td [(compiler)-333(suite)-334(migh)28(t)-333(b)-28(e)-333(as)-334(follo)28(ws,)-333(sp)-28(ecifying)-333(only)-333(the)-334(UMFP)84(A)27(CK)-333(external)-333(pac)28(k)55(age:)]TJ +0 g 0 G +0 g 0 G +/F44 10.9091 Tf 5.727 -22.515 Td [(./configure)-525(--with-psblas=/home/user/psblas-2.3/)-525(\134)]TJ 0 -13.549 Td [(--with-libs="-L/usr/local/BLAS/gnu43)-525(-L/usr/local/BLACS/gnu43")-525(\134)]TJ 0 -13.55 Td [(--with-blacs=-lmpiblacs)-1050(--with-umfpackdir=/usr/local/UMFPACK/gnu43)]TJ/F15 10.9091 Tf -5.727 -22.515 Td [(Once)-529(the)-529(con\014gure)-530(script)-529(has)-529(completed)-529(execution,)-578(it)-530(will)-529(ha)28(v)28(e)-529(ge)-1(n)1(e)-1(r)1(ate)-1(d)-529(the)-529(\014le)]TJ/F44 10.9091 Tf 0 -13.549 Td [(Make.inc)]TJ/F15 10.9091 Tf 49.454 0 Td [(whic)28(h)-333(w)-1(i)1(ll)-334(then)-333(b)-28(e)-333(used)-334(b)28(y)-333(all)-333(Mak)28(e)-1(\014)1(les)-334(in)-333(the)-333(directory)-334(tree.)]TJ -32.518 -13.55 Td [(T)83(o)-333(build)-333(the)-334(li)1(brary)-334(the)-333(user)-333(will)-334(no)28(w)-333(en)28(ter)]TJ +0 g 0 G +0 g 0 G +/F44 10.9091 Tf -16.936 -22.515 Td [(make)]TJ/F15 10.9091 Tf 0 -22.516 Td [(follo)28(w)28(ed)-334(\050optionally\051)-333(b)28(y)]TJ +0 g 0 G +0 g 0 G +/F44 10.9091 Tf 0 -22.515 Td [(make)-525(install)]TJ/F17 11.9552 Tf 0 -29.213 Td [(3.4)-1125(Bug)-375(rep)-31(orting)]TJ/F15 10.9091 Tf 0 -20.595 Td [(If)-457(y)28(ou)-456(\014nd)-457(an)28(y)-456(bugs)-457(in)-456(our)-457(co)-28(des,)-487(please)-457(let)-456(us)-457(kno)28(w)-457(at)]TJ/F44 10.9091 Tf 290.642 0 Td [(bugreport@mld2p4.it)]TJ/F15 10.9091 Tf 118.779 0 Td [(;)]TJ -409.421 -13.549 Td [(b)-28(e)-360(a)28(w)28(are)-360(that)-360(the)-361(amoun)28(t)-360(of)-360(information)-360(needed)-360(to)-360(repro)-28(duce)-360(a)-360(problem)-360(in)-360(a)-360(parallel)]TJ 0 -13.549 Td [(program)-333(ma)28(y)-334(v)56(ary)-334(q)1(uite)-334(a)-333(lot.)]TJ/F17 11.9552 Tf 0 -29.213 Td [(3.5)-1125(Example)-375(and)-375(test)-375(programs)]TJ/F15 10.9091 Tf 0 -20.594 Td [(The)-419(pac)28(k)55(age)-418(con)27(tains)-418(the)]TJ/F44 10.9091 Tf 128.338 0 Td [(examples)]TJ/F15 10.9091 Tf 50.387 0 Td [(and)]TJ/F44 10.9091 Tf 22.146 0 Td [(tests)]TJ/F15 10.9091 Tf 33.205 0 Td [(directories;)-462(b)-27(oth)-419(of)-419(them)-419(are)-419(further)]TJ -234.076 -13.55 Td [(divided)-333(in)28(to)]TJ/F44 10.9091 Tf 60.606 0 Td [(fileread)]TJ/F15 10.9091 Tf 49.454 0 Td [(and)]TJ/F44 10.9091 Tf 21.212 0 Td [(pdegen)]TJ/F15 10.9091 Tf 38 0 Td [(sub)-28(directories.)-444(Their)-333(purp)-28(ose)-333(is)-334(as)-333(follo)28(ws:)]TJ +0 g 0 G +/F44 10.9091 Tf -169.272 -22.515 Td [(examples)]TJ +0 g 0 G +/F15 10.9091 Tf 51.272 0 Td [(con)28(tains)-245(a)-244(s)-1(et)-244(of)-245(simple)-245(example)-244(programs)-245(with)-244(a)-245(prede\014ned)-245(c)28(hoice)-245(of)-244(precon-)]TJ -23.999 -13.549 Td [(ditioners,)-294(selectable)-284(via)-284(in)28(teger)-284(v)56(alues.)-428(These)-284(are)-284(in)28(tended)-284(to)-284(get)-284(an)-284(acquain)28(tance)]TJ 0 -13.55 Td [(with)-333(the)-334(m)28(ultilev)28(el)-333(preconditioners.)]TJ +0 g 0 G +/F44 10.9091 Tf -27.273 -22.515 Td [(tests)]TJ +0 g 0 G +/F15 10.9091 Tf 34.09 0 Td [(con)28(tains)-380(a)-380(set)-380(of)-380(more)-380(sophi)1(s)-1(ticated)-379(examples)-380(that)-380(will)-380(allo)28(w)-380(the)-380(user,)-391(via)-380(the)]TJ -6.817 -13.549 Td [(input)-286(\014les)-287(in)-286(the)]TJ/F44 10.9091 Tf 80.438 0 Td [(runs)]TJ/F15 10.9091 Tf 26.034 0 Td [(sub)-28(directories,)-296(t)1(o)-287(exp)-28(erimen)28(t)-286(with)-287(the)-286(full)-286(range)-287(of)-286(precon-)]TJ -106.472 -13.55 Td [(ditioners)-333(implemen)28(te)-1(d)-333(in)-333(the)-333(library)83(.)]TJ -27.273 -22.515 Td [(The)]TJ/F44 10.9091 Tf 24.239 0 Td [(fileread)]TJ/F15 10.9091 Tf 51.269 0 Td [(directories)-500(con)28(tain)-500(sample)-499(programs)-500(that)-500(read)-499(sparse)-500(matrices)-500(from)]TJ -75.508 -13.549 Td [(\014les,)-295(according)-285(to)-285(the)-285(Matrix)-285(Mark)28(et)-285(or)-285(the)-285(Harw)27(ell-Bo)-27(eing)-286(storage)-285(format;)-301(the)]TJ/F44 10.9091 Tf 378.088 0 Td [(pdegen)]TJ/F15 10.9091 Tf -378.088 -13.55 Td [(instead)-272(generate)-272(matrices)-272(in)-272(full)-272(parallel)-272(mo)-28(d)1(e)-273(f)1(rom)-272(the)-272(discretization)-272(of)-272(a)-272(sample)-272(PDE.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +240 0 obj << +/Type /Page +/Contents 241 0 R +/Resources 239 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 238 0 R +>> endobj +242 0 obj << +/D [240 0 R /XYZ 86.4 740.002 null] +>> endobj +38 0 obj << +/D [240 0 R /XYZ 86.4 472.483 null] +>> endobj +42 0 obj << +/D [240 0 R /XYZ 86.4 393.456 null] +>> endobj +239 0 obj << +/Font << /F15 123 0 R /F41 124 0 R /F44 200 0 R /F17 111 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +252 0 obj << +/Length 8191 +>> +stream +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F41 10.9091 Tf 93.6 740.002 Td [(4)]TJ +0 g 0 G + [-378(Mul)67(ti-level)-378(Domain)-378(Decompo)1(siti)-1(o)1(n)-378(Ba)22(ck)22(gr)22(ound)]TJ/F15 10.9091 Tf 406.997 0 Td [(9)]TJ +0 g 0 G +/F17 14.3462 Tf -406.997 -35.866 Td [(4)-1125(Multi-lev)31(el)-375(Domain)-375(Decomp)-31(osition)-375(Bac)31(kground)]TJ/F18 10.9091 Tf 0 -25.25 Td [(Domain)-282(De)51(c)51(omp)51(osition)]TJ/F15 10.9091 Tf 113.171 0 Td [(\050DD\051)-251(preconditioners,)-267(coupled)-251(with)-251(Krylo)28(v)-251(iterativ)28(e)-251(solv)28(ers,)-268(are)]TJ -113.171 -13.549 Td [(widely)-315(used)-316(in)-315(the)-315(parallel)-315(solution)-315(of)-316(large)-315(and)-315(sparse)-316(l)1(inear)-316(systems.)-438(These)-316(precondi-)]TJ 0 -13.549 Td [(tioners)-285(are)-285(based)-285(on)-284(the)-285(divide)-285(and)-285(conquer)-285(tec)28(hnique:)-420(the)-285(matrix)-285(to)-284(b)-28(e)-285(preconditioned)]TJ 0 -13.549 Td [(is)-423(divided)-422(in)28(to)-423(submatrices,)-445(a)-423(\134lo)-27(cal")-423(linear)-423(system)-422(in)27(v)28(olving)-422(eac)27(h)-422(submatrix)-423(is)-422(\050ap-)]TJ 0 -13.549 Td [(pro)28(ximately\051)-356(solv)28(ed,)-362(and)-356(the)-356(lo)-27(cal)-356(solutions)-356(are)-356(used)-356(to)-356(build)-356(a)-356(preconditioner)-356(for)-356(the)]TJ 0 -13.55 Td [(whole)-407(original)-407(matr)1(ix.)-665(This)-407(pro)-28(cess)-407(often)-407(corresp)-27(onds)-407(to)-407(dividing)-407(a)-406(ph)28(ys)-1(i)1(c)-1(al)-406(domain)]TJ 0 -13.549 Td [(asso)-28(ciated)-299(to)-299(the)-299(original)-299(matrix)-299(in)28(to)-299(sub)-28(domains,)-306(e.g.)-433(in)-299(a)-299(PDE)-299(discretization,)-306(to)-299(\050ap-)]TJ 0 -13.549 Td [(pro)28(ximately\051)-276(s)-1(olv)1(ing)-277(the)-276(subproblems)-276(corresp)-28(onding)-276(to)-277(the)-276(sub)-28(domains)-276(and)-276(to)-277(building)]TJ 0 -13.549 Td [(an)-333(appro)28(ximate)-334(solution)-333(of)-333(the)-334(original)-333(problem)-333(from)-333(the)-334(lo)-27(c)-1(al)-333(solutions)-333([)]TJ +1 0 0 rg 1 0 0 RG + [(6)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-333(7)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-334(20)]TJ +0 g 0 G + [(].)]TJ/F18 10.9091 Tf 16.937 -14.011 Td [(A)51(dditive)-468(Schwarz)]TJ/F15 10.9091 Tf 89.058 0 Td [(preconditioners)-453(are)-453(DD)-454(precondition)1(e)-1(r)1(s)-454(using)-453(o)28(v)28(erlapping)-454(sub-)]TJ -105.995 -13.55 Td [(matrices,)-403(i.e.)-389(with)-389(some)-389(common)-389(ro)27(ws,)-403(to)-389(couple)-389(the)-389(lo)-28(cal)-389(information)-389(related)-389(to)-389(the)]TJ 0 -13.549 Td [(submatrices)-362(\050see,)-369(e.g.,)-369([)]TJ +1 0 0 rg 1 0 0 RG + [(20)]TJ +0 g 0 G + [(]\051.)-530(The)-362(main)-362(motiv)55(at)1(ion)-362(for)-362(c)28(ho)-28(osing)-362(Additiv)28(e)-362(Sc)28(h)28(w)27(arz)-362(pre-)]TJ 0 -13.549 Td [(conditioners)-361(is)-361(their)-361(in)28(trinsic)-361(parallelism.)-528(A)-361(dra)28(wbac)28(k)-362(of)-361(these)-361(preconditioners)-361(is)-361(that)]TJ 0 -13.549 Td [(the)-388(n)28(um)27(b)-27(er)-388(of)-389(iterations)-388(of)-388(the)-388(preconditioned)-388(solv)28(ers)-388(generally)-389(gro)28(ws)-388(with)-388(the)-388(n)28(um-)]TJ 0 -13.549 Td [(b)-28(er)-370(of)-370(submatrices.)-555(This)-370(ma)28(y)-370(b)-28(e)-370(a)-370(serious)-370(limitation)-370(on)-370(parallel)-370(computers,)-380(since)-370(the)]TJ 0 -13.55 Td [(n)28(um)28(b)-28(er)-403(of)-404(sub)1(m)-1(atr)1(ic)-1(es)-403(usually)-403(matc)28(hes)-403(the)-404(n)28(um)28(b)-28(er)-403(of)-403(a)28(v)55(ailable)-403(pro)-28(cessors.)-654(Optimal)]TJ 0 -13.549 Td [(con)28(v)28(ergence)-262(rates,)-276(i.e.)-262(iteration)-262(n)28(um)28(b)-28(ers)-262(indep)-27(enden)27(t)-261(of)-262(the)-262(n)28(um)28(b)-28(er)-262(of)-261(submatrices,)-277(can)]TJ 0 -13.549 Td [(b)-28(e)-369(obtained)-370(b)28(y)-369(correcting)-369(the)-370(preconditioner)-369(through)-369(a)-370(suitable)-369(appro)28(ximation)-370(of)-369(the)]TJ 0 -13.549 Td [(original)-323(linear)-323(system)-323(in)-323(a)-323(coarse)-323(space,)-325(whic)28(h)-323(globally)-323(couples)-323(the)-323(infor)1(m)-1(at)1(ion)-323(related)]TJ 0 -13.549 Td [(to)-333(the)-334(single)-333(submatrices.)]TJ/F18 10.9091 Tf 16.937 -14.012 Td [(Two-level)-308(Schwarz)]TJ/F15 10.9091 Tf 91.529 0 Td [(preconditioners)-279(are)-280(obtained)-279(b)27(y)-279(com)27(b)1(ining)-280(basic)-279(\050one-)-1(l)1(e)-1(v)28(el\051)-279(Sc)27(h)1(-)]TJ -108.466 -13.549 Td [(w)28(arz)-363(p)1(rec)-1(on)1(ditioners)-363(with)-362(a)-362(coarse-lev)28(el)-363(correction.)-531(In)-362(this)-362(con)28(text,)-370(the)-362(one-lev)28(el)-363(pre-)]TJ 0 -13.549 Td [(conditioner)-344(is)-345(often)-344(called)-345(`)1(s)-1(mo)-27(other'.)-478(Di\013eren)28(t)-345(t)28(w)28(o-lev)28(el)-345(preconditioners)-344(are)-344(obtained)]TJ 0 -13.549 Td [(b)28(y)-371(v)56(arying)-371(the)-371(c)28(hoice)-371(of)-370(the)-371(smo)-28(other)-371(and)-370(of)-371(the)-371(coarse-lev)28(el)-371(correction,)-380(and)-371(the)-370(w)27(a)28(y)]TJ 0 -13.549 Td [(they)-374(are)-373(com)27(bined)-373([)]TJ +1 0 0 rg 1 0 0 RG + [(20)]TJ +0 g 0 G + [(].)-566(The)-373(same)-374(reasoning)-374(can)-373(b)-28(e)-374(applied)-373(s)-1(tar)1(ting)-374(from)-374(the)-373(coarse)-1(-)]TJ 0 -13.55 Td [(lev)28(el)-281(system,)-291(i.e.)-281(a)-280(coarse-)-1(space)-280(correction)-281(can)-280(b)-28(e)-281(built)-280(from)-281(this)-280(s)-1(y)1(s)-1(tem,)-291(th)28(us)-281(ob)1(taining)]TJ/F18 10.9091 Tf 0 -13.549 Td [(multi-level)]TJ/F15 10.9091 Tf 53.83 0 Td [(preconditioners.)]TJ -36.893 -14.011 Td [(It)-443(is)-444(w)28(orth)-443(noting)-444(that)-443(optimal)-443(preconditioners)-444(do)-443(not)-444(n)1(e)-1(cessarily)-443(corresp)-28(ond)-443(to)]TJ -16.937 -13.549 Td [(minim)28(um)-480(exec)-1(u)1(tion)-481(times.)-885(Indeed,)-517(to)-480(obtain)-480(e\013ectiv)28(e)-481(m)28(ulti-lev)28(el)-480(preconditioners)-480(a)]TJ 0 -13.549 Td [(tradeo\013)-381(b)-28(et)28(w)28(e)-1(en)-381(optimalit)28(y)-381(of)-381(con)28(v)27(ergence)-381(and)-381(the)-381(cost)-382(of)-381(building)-381(and)-381(applying)-381(the)]TJ 0 -13.55 Td [(coarse-space)-384(corrections)-384(m)28(ust)-384(b)-28(e)-383(ac)27(hiev)28(ed.)-596(The)-383(c)27(hoice)-383(of)-384(the)-384(n)28(um)28(b)-28(er)-384(of)-383(le)-1(v)28(els,)-396(i.e.)-384(of)]TJ 0 -13.549 Td [(the)-379(coarse-space)-379(corrections,)-390(also)-378(a\013ects)-379(the)-379(e\013ectiv)28(eness)-379(of)-378(the)-379(preconditioners.)-580(One)]TJ 0 -13.549 Td [(more)-392(goal)-391(is)-392(to)-392(get)-391(con)27(v)28(ergence)-391(rates)-392(as)-392(less)-392(sensitiv)28(e)-392(as)-391(p)-28(ossible)-392(to)-391(v)55(ariations)-391(in)-392(the)]TJ 0 -13.549 Td [(matrix)-333(co)-28(e\016cien)28(ts.)]TJ 16.937 -14.012 Td [(Tw)28(o)-303(main)-303(approac)28(hes)-303(can)-303(b)-28(e)-303(used)-303(to)-303(build)-303(coarse-space)-303(corrections.)-434(The)-303(geometric)]TJ -16.937 -13.549 Td [(approac)28(h)-412(applies)-413(coarsening)-412(strategies)-413(based)-412(on)-412(the)-413(kn)1(o)27(wledge)-412(of)-412(some)-413(ph)28(ysical)-412(grid)]TJ 0 -13.549 Td [(asso)-28(ciated)-279(to)-280(the)-279(m)-1(atr)1(ix)-280(and)-279(requires)-280(the)-279(use)-1(r)-279(to)-280(de\014n)1(e)-280(grid)-280(t)1(ransfer)-280(op)-28(erators)-279(from)-280(the)]TJ 0 -13.549 Td [(\014ne)-394(to)-393(the)-394(coarse)-393(lev)27(els)-393(and)-394(vice)-393(v)28(ersa.)-626(Thi)1(s)-394(ma)28(y)-394(result)-393(di\016cult)-394(for)-393(complex)-394(geome-)]TJ 0 -13.549 Td [(tries;)-464(furthermore,)-442(suitable)-420(one-lev)27(el)-420(preconditioners)-420(ma)28(y)-421(b)-28(e)-420(required)-420(to)-421(get)-420(e\016cien)28(t)]TJ 0 -13.549 Td [(in)28(terpla)28(y)-381(b)-28(et)28(w)27(een)-381(\014ne)-381(and)-381(coarse)-381(lev)27(els,)-393(e.g.)-381(when)-381(matrices)-381(with)-381(highly)-381(v)55(arying)-381(co)-28(ef-)]TJ 0 -13.55 Td [(\014cien)28(ts)-417(are)-417(considered.)-694(The)-417(al)1(ge)-1(br)1(aic)-417(approac)28(h)-417(builds)-416(coarse-)-1(space)-416(corrections)-417(using)]TJ 0 -13.549 Td [(only)-442(matrix)-442(information.)-770(It)-443(p)-27(erforms)-442(a)-442(fully)-442(automatic)-442(coarsening)-442(and)-442(enforces)-443(th)1(e)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +251 0 obj << +/Type /Page +/Contents 252 0 R +/Resources 250 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 238 0 R +/Annots [ 249 0 R 243 0 R 244 0 R 245 0 R 246 0 R 247 0 R ] +>> endobj +249 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 739.006 100.627 748.453] +/Subtype /Link +/A << /S /GoTo /D (section.4) >> +>> endobj +243 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [444.119 569.496 451.567 578.519] +/Subtype /Link +/A << /S /GoTo /D (cite.Cai_Widlund_92) >> +>> endobj +244 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [456.241 569.496 463.688 578.519] +/Subtype /Link +/A << /S /GoTo /D (cite.dd1_94) >> +>> endobj +245 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [468.362 569.496 481.264 578.519] +/Subtype /Link +/A << /S /GoTo /D (cite.dd2_96) >> +>> endobj +246 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [204.816 528.387 217.718 537.41] +/Subtype /Link +/A << /S /GoTo /D (cite.dd2_96) >> +>> endobj +247 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [188.5 351.785 201.402 360.808] +/Subtype /Link +/A << /S /GoTo /D (cite.dd2_96) >> +>> endobj +253 0 obj << +/D [251 0 R /XYZ 93.6 740.002 null] +>> endobj +46 0 obj << +/D [251 0 R /XYZ 93.6 715.095 null] +>> endobj +250 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F17 111 0 R /F18 173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +269 0 obj << +/Length 14865 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(10)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +/F15 10.9091 Tf -203.265 -35.866 Td [(in)28(terpla)28(y)-352(b)-28(et)28(w)28(een)-352(the)-352(\014ne)-351(and)-352(coarse)-352(lev)28(els)-352(b)28(y)-351(suitably)-352(c)28(ho)-28(osing)-352(the)-351(coarse)-352(space)-352(and)]TJ 0 -13.549 Td [(the)-333(coarse-to-\014ne)-334(in)28(terp)-28(olation)-333([)]TJ +1 0 0 rg 1 0 0 RG + [(22)]TJ +0 g 0 G + [(].)]TJ 16.936 -13.643 Td [(MLD2P4)-255(uses)-255(a)-255(pur)1(e)-255(algebraic)-255(approac)28(h)-255(for)-255(building)-255(the)-254(sequence)-255(of)-255(coarse)-255(matrices)]TJ -16.936 -13.549 Td [(starting)-425(from)-425(the)-425(original)-425(matrix.)-720(The)-426(al)1(ge)-1(b)1(raic)-426(approac)28(h)-425(is)-425(based)-425(on)-425(the)]TJ/F18 10.9091 Tf 369.239 0 Td [(smo)51(othe)51(d)]TJ -369.239 -13.549 Td [(aggr)51(e)51(gation)]TJ/F15 10.9091 Tf 58.612 0 Td [(algorithm)-402([)]TJ +1 0 0 rg 1 0 0 RG + [(1)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-402(24)]TJ +0 g 0 G + [(].)-651(A)-403(decoupled)-402(v)28(ersion)-402(of)-402(this)-403(algorithm)-402(is)-402(implemen)28(ted,)]TJ -58.612 -13.549 Td [(where)-347(the)-346(smo)-28(othed)-347(aggregation)-346(is)-347(applied)-347(l)1(o)-28(cally)-347(to)-347(eac)28(h)-346(submatrix)-347([)]TJ +1 0 0 rg 1 0 0 RG + [(23)]TJ +0 g 0 G + [(].)-484(In)-347(the)-347(n)1(e)-1(xt)]TJ 0 -13.549 Td [(t)28(w)28(o)-249(subsections)-249(w)28(e)-249(pro)28(vide)-249(a)-248(brief)-249(description)-249(of)-248(the)-249(m)28(ulti-lev)28(el)-249(Sc)28(h)27(w)28(arz)-249(p)1(rec)-1(on)1(ditioners)]TJ 0 -13.55 Td [(and)-389(of)-390(the)-389(smo)-28(othed)-390(aggregation)-389(tec)28(hnique)-390(as)-389(implemen)27(ted)-389(in)-390(M)1(LD2P4.)-613(F)83(or)-389(further)]TJ 0 -13.549 Td [(details)-333(the)-334(reader)-333(is)-333(referred)-334(to)-333([)]TJ +1 0 0 rg 1 0 0 RG + [(2)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-333(3)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-334(4)]TJ +0 g 0 G + [(,)]TJ/F43 10.9091 Tf 190.879 0 Td [(?)]TJ/F15 10.9091 Tf 5.924 0 Td [(,)]TJ +1 0 0 rg 1 0 0 RG + [-333(20)]TJ +0 g 0 G + [(].)]TJ/F17 11.9552 Tf -196.803 -29.748 Td [(4.1)-1125(Multi-lev)31(el)-375(Sc)31(h)32(w)31(arz)-375(Preconditioners)]TJ/F15 10.9091 Tf 0 -20.777 Td [(The)-270(Multilev)28(el)-270(p)1(rec)-1(on)1(ditioners)-270(implemen)28(ted)-270(in)-270(MLD2P4)-269(are)-270(obtained)-269(b)27(y)-269(com)27(binin)1(g)-270(AS)]TJ 0 -13.549 Td [(preconditioners)-315(with)-315(coarse-space)-315(corrections;)-321(therefore)-315(w)27(e)-315(\014rst)-315(pro)28(vide)-315(a)-315(sk)28(etc)27(h)-315(of)-315(the)]TJ 0 -13.549 Td [(AS)-333(preconditioners.)]TJ 16.936 -13.643 Td [(Giv)28(en)-303(the)-302(linear)-302(system)-303(\050)]TJ +0 0 1 rg 0 0 1 RG + [(1)]TJ +0 g 0 G + [(\051,)-308(where)]TJ/F22 10.9091 Tf 167.085 0 Td [(A)]TJ/F15 10.9091 Tf 11.212 0 Td [(=)-278(\050)]TJ/F22 10.9091 Tf 15.758 0 Td [(a)]TJ/F23 7.9701 Tf 5.766 -1.636 Td [(ij)]TJ/F15 10.9091 Tf 7.265 1.636 Td [(\051)]TJ/F25 10.9091 Tf 7.273 0 Td [(2)-278(<)]TJ/F23 7.9701 Tf 18.182 3.959 Td [(n)]TJ/F26 7.9701 Tf 5.138 0 Td [(\002)]TJ/F23 7.9701 Tf 6.587 0 Td [(n)]TJ/F15 10.9091 Tf 8.934 -3.959 Td [(is)-302(a)-303(nonsingular)-302(sparse)-302(matrix)]TJ -270.136 -13.549 Td [(with)-321(a)-321(symmetric)-321(nonzero)-321(pattern,)-324(let)]TJ/F22 10.9091 Tf 184.526 0 Td [(G)]TJ/F15 10.9091 Tf 11.608 0 Td [(=)-278(\050)]TJ/F22 10.9091 Tf 15.757 0 Td [(W)28(;)-167(E)]TJ/F15 10.9091 Tf 23.531 0 Td [(\051)-321(b)-28(e)-321(the)-321(adjacency)-321(graph)-321(of)]TJ/F22 10.9091 Tf 134.378 0 Td [(A)]TJ/F15 10.9091 Tf 8.182 0 Td [(,)-324(wh)1(e)-1(re)]TJ/F22 10.9091 Tf -377.982 -13.549 Td [(W)]TJ/F15 10.9091 Tf 15.419 0 Td [(=)]TJ/F25 10.9091 Tf 12.086 0 Td [(f)]TJ/F15 10.9091 Tf 5.455 0 Td [(1)]TJ/F22 10.9091 Tf 5.454 0 Td [(;)]TJ/F15 10.9091 Tf 4.849 0 Td [(2)]TJ/F22 10.9091 Tf 5.454 0 Td [(;)-167(:)-166(:)-167(:)-167(;)-166(n)]TJ/F25 10.9091 Tf 30.79 0 Td [(g)]TJ/F15 10.9091 Tf 9.434 0 Td [(and)]TJ/F22 10.9091 Tf 21.554 0 Td [(E)]TJ/F15 10.9091 Tf 12.283 0 Td [(=)]TJ/F25 10.9091 Tf 12.086 0 Td [(f)]TJ/F15 10.9091 Tf 5.455 0 Td [(\050)]TJ/F22 10.9091 Tf 4.242 0 Td [(i;)-167(j)]TJ/F15 10.9091 Tf 13.724 0 Td [(\051)-330(:)]TJ/F22 10.9091 Tf 14.475 0 Td [(a)]TJ/F23 7.9701 Tf 5.766 -1.637 Td [(ij)]TJ/F25 10.9091 Tf 10.867 1.637 Td [(6)]TJ/F15 10.9091 Tf 0 0 Td [(=)-330(0)]TJ/F25 10.9091 Tf 17.54 0 Td [(g)]TJ/F15 10.9091 Tf 9.434 0 Td [(are)-365(the)-364(v)27(ertex)-364(set)-365(and)-365(the)-365(edge)-364(set)-365(of)]TJ/F22 10.9091 Tf 184.476 0 Td [(G)]TJ/F15 10.9091 Tf 8.578 0 Td [(,)]TJ -409.421 -13.549 Td [(resp)-28(ectiv)28(ely)83(.)-466(Tw)28(o)-341(v)28(ertices)-341(are)-341(called)-340(adjacen)27(t)-340(if)-341(there)-340(is)-341(an)-341(edge)-341(conn)1(e)-1(ctin)1(g)-341(them.)-467(F)84(or)]TJ 0 -13.55 Td [(an)28(y)-238(in)28(te)-1(ger)]TJ/F22 10.9091 Tf 54.621 0 Td [(\016)-316(>)]TJ/F15 10.9091 Tf 19.806 0 Td [(0,)-257(a)]TJ/F22 10.9091 Tf 19.344 0 Td [(\016)]TJ/F15 10.9091 Tf 5.262 0 Td [(-o)28(v)28(erlap)-239(p)1(artition)-239(of)]TJ/F22 10.9091 Tf 96.34 0 Td [(W)]TJ/F15 10.9091 Tf 14.417 0 Td [(can)-238(b)-28(e)-238(de\014ned)-238(recursiv)28(ely)-239(as)-238(follo)28(ws.)-413(Giv)28(en)]TJ -209.79 -13.549 Td [(a)-344(0-o)28(v)28(erlap)-344(\050or)-343(non-o)28(v)27(erlapp)1(ing\051)-344(partition)-343(of)]TJ/F22 10.9091 Tf 216.249 0 Td [(W)]TJ/F15 10.9091 Tf 11.818 0 Td [(,)-346(i.e.)-344(a)-343(se)-1(t)-343(of)]TJ/F22 10.9091 Tf 63.378 0 Td [(m)]TJ/F15 10.9091 Tf 13.327 0 Td [(disjoin)28(t)-344(nonempt)28(y)-343(se)-1(ts)]TJ/F22 10.9091 Tf -304.772 -13.549 Td [(W)]TJ/F20 7.9701 Tf 11.818 3.959 Td [(0)]TJ/F23 7.9701 Tf -1.515 -7.015 Td [(i)]TJ/F25 10.9091 Tf 9.278 3.056 Td [(\032)]TJ/F22 10.9091 Tf 11.515 0 Td [(W)]TJ/F15 10.9091 Tf 14.857 0 Td [(suc)28(h)-279(that)]TJ/F25 10.9091 Tf 47.047 0 Td [([)]TJ/F23 7.9701 Tf 7.272 3.959 Td [(m)]TJ 0 -7.015 Td [(i)]TJ/F20 7.9701 Tf 2.884 0 Td [(=1)]TJ/F22 10.9091 Tf 11.318 3.056 Td [(W)]TJ/F20 7.9701 Tf 11.819 3.959 Td [(0)]TJ/F23 7.9701 Tf -1.516 -7.015 Td [(i)]TJ/F15 10.9091 Tf 9.278 3.056 Td [(=)]TJ/F22 10.9091 Tf 11.515 0 Td [(W)]TJ/F15 10.9091 Tf 11.818 0 Td [(,)-290(a)]TJ/F22 10.9091 Tf 14.682 0 Td [(\016)]TJ/F15 10.9091 Tf 5.262 0 Td [(-o)28(v)28(erlap)-279(partition)-278(of)]TJ/F22 10.9091 Tf 97.661 0 Td [(W)]TJ/F15 10.9091 Tf 14.857 0 Td [(is)-279(obtai)1(ned)-279(b)28(y)-279(considering)]TJ -289.85 -13.549 Td [(the)-307(sets)]TJ/F22 10.9091 Tf 39.538 0 Td [(W)]TJ/F23 7.9701 Tf 11.818 3.959 Td [(\016)]TJ -1.515 -7.015 Td [(i)]TJ/F25 10.9091 Tf 9.089 3.056 Td [(\033)]TJ/F22 10.9091 Tf 11.515 0 Td [(W)]TJ/F23 7.9701 Tf 11.819 4.588 Td [(\016)]TJ/F26 7.9701 Tf 4.046 0 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F23 7.9701 Tf -12.147 -7.845 Td [(i)]TJ/F15 10.9091 Tf 20.224 3.257 Td [(obtained)-307(b)28(y)-306(including)-307(the)-306(v)28(e)-1(r)1(tice)-1(s)-306(that)-307(are)-306(adjacen)28(t)-307(to)-307(an)28(y)-306(v)27(ertex)]TJ -100.973 -13.549 Td [(in)]TJ/F22 10.9091 Tf 12.727 0 Td [(W)]TJ/F23 7.9701 Tf 11.818 4.587 Td [(\016)]TJ/F26 7.9701 Tf 4.046 0 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ/F23 7.9701 Tf -12.148 -7.844 Td [(i)]TJ/F15 10.9091 Tf 16.88 3.257 Td [(.)]TJ -22.974 -15.27 Td [(Let)]TJ/F22 10.9091 Tf 18.79 0 Td [(n)]TJ/F23 7.9701 Tf 6.548 3.959 Td [(\016)]TJ 0 -7.014 Td [(i)]TJ/F15 10.9091 Tf 7.425 3.055 Td [(b)-28(e)-264(the)-264(size)-264(of)]TJ/F22 10.9091 Tf 63.706 0 Td [(W)]TJ/F23 7.9701 Tf 11.818 3.959 Td [(\016)]TJ -1.515 -7.014 Td [(i)]TJ/F15 10.9091 Tf 8.94 3.055 Td [(and)]TJ/F22 10.9091 Tf 20.456 0 Td [(R)]TJ/F23 7.9701 Tf 8.368 3.959 Td [(\016)]TJ -0.084 -7.014 Td [(i)]TJ/F25 10.9091 Tf 7.658 3.055 Td [(2)-278(<)]TJ/F23 7.9701 Tf 18.182 3.959 Td [(n)]TJ/F24 5.9776 Tf 5.138 2.813 Td [(\016)]TJ 0 -5.395 Td [(i)]TJ/F26 7.9701 Tf 4.09 2.582 Td [(\002)]TJ/F23 7.9701 Tf 6.586 0 Td [(n)]TJ/F15 10.9091 Tf 8.517 -3.959 Td [(the)-264(restriction)-264(op)-28(erator)-264(that)-264(maps)-264(a)-264(v)28(ector)]TJ/F22 10.9091 Tf -211.559 -14.974 Td [(v)]TJ/F25 10.9091 Tf 8.993 0 Td [(2)-304(<)]TJ/F23 7.9701 Tf 18.465 3.959 Td [(n)]TJ/F15 10.9091 Tf 9.443 -3.959 Td [(on)28(to)-349(the)-349(v)28(ector)]TJ/F22 10.9091 Tf 76.601 0 Td [(v)]TJ/F23 7.9701 Tf 5.679 3.959 Td [(\016)]TJ -0.392 -7.015 Td [(i)]TJ/F25 10.9091 Tf 8.25 3.056 Td [(2)-304(<)]TJ/F23 7.9701 Tf 18.465 3.959 Td [(n)]TJ/F24 5.9776 Tf 5.138 2.812 Td [(\016)]TJ 0 -5.395 Td [(i)]TJ/F15 10.9091 Tf 8.394 -1.376 Td [(con)28(taining)-349(the)-349(comp)-28(onen)28(ts)-349(of)]TJ/F22 10.9091 Tf 144.983 0 Td [(v)]TJ/F15 10.9091 Tf 9.486 0 Td [(corresp)-28(onding)-349(to)-348(the)]TJ -313.505 -14.975 Td [(v)28(ertices)-369(in)]TJ/F22 10.9091 Tf 52.99 0 Td [(W)]TJ/F23 7.9701 Tf 11.818 3.959 Td [(\016)]TJ -1.515 -7.014 Td [(i)]TJ/F15 10.9091 Tf 6.059 3.055 Td [(.)-551(The)-369(transp)-28(ose)-369(of)]TJ/F22 10.9091 Tf 94.001 0 Td [(R)]TJ/F23 7.9701 Tf 8.367 3.959 Td [(\016)]TJ -0.084 -7.014 Td [(i)]TJ/F15 10.9091 Tf 8.654 3.055 Td [(is)-369(a)-369(prolongation)-369(op)-27(e)-1(rat)1(or)-369(from)]TJ/F25 10.9091 Tf 155.46 0 Td [(<)]TJ/F23 7.9701 Tf 7.879 3.959 Td [(n)]TJ/F24 5.9776 Tf 5.138 2.813 Td [(\016)]TJ 0 -5.395 Td [(i)]TJ/F15 10.9091 Tf 8.613 -1.377 Td [(to)]TJ/F25 10.9091 Tf 13.722 0 Td [(<)]TJ/F23 7.9701 Tf 7.879 3.959 Td [(n)]TJ/F15 10.9091 Tf 5.636 -3.959 Td [(.)-551(The)]TJ -384.617 -14.974 Td [(matrix)]TJ/F22 10.9091 Tf 35.133 0 Td [(A)]TJ/F23 7.9701 Tf 8.182 3.959 Td [(\016)]TJ 0 -7.015 Td [(i)]TJ/F15 10.9091 Tf 7.574 3.056 Td [(=)]TJ/F22 10.9091 Tf 11.516 0 Td [(R)]TJ/F23 7.9701 Tf 8.367 3.959 Td [(\016)]TJ -0.084 -7.015 Td [(i)]TJ/F22 10.9091 Tf 4.628 3.056 Td [(A)]TJ/F15 10.9091 Tf 8.182 0 Td [(\050)]TJ/F22 10.9091 Tf 4.242 0 Td [(R)]TJ/F23 7.9701 Tf 8.368 3.959 Td [(\016)]TJ -0.084 -7.015 Td [(i)]TJ/F15 10.9091 Tf 4.628 3.056 Td [(\051)]TJ/F23 7.9701 Tf 4.242 3.959 Td [(T)]TJ/F25 10.9091 Tf 9.635 -3.959 Td [(2)-278(<)]TJ/F23 7.9701 Tf 18.182 3.959 Td [(n)]TJ/F24 5.9776 Tf 5.138 2.812 Td [(\016)]TJ 0 -5.395 Td [(i)]TJ/F26 7.9701 Tf 4.09 2.583 Td [(\002)]TJ/F23 7.9701 Tf 6.586 0 Td [(n)]TJ/F24 5.9776 Tf 5.138 2.812 Td [(\016)]TJ 0 -5.395 Td [(i)]TJ/F15 10.9091 Tf 7.873 -1.376 Td [(can)-301(b)-28(e)-301(considered)-301(as)-301(a)-301(restriction)-301(of)]TJ/F22 10.9091 Tf 172.963 0 Td [(A)]TJ/F15 10.9091 Tf 11.467 0 Td [(corresp)-28(onding)]TJ -345.966 -13.549 Td [(to)-333(the)-334(set)]TJ/F22 10.9091 Tf 49.151 0 Td [(W)]TJ/F23 7.9701 Tf 11.819 3.958 Td [(\016)]TJ -1.515 -7.014 Td [(i)]TJ/F15 10.9091 Tf 6.059 3.056 Td [(.)]TJ -48.578 -13.643 Td [(The)]TJ/F18 10.9091 Tf 22.425 0 Td [(classic)51(al)-357(on)-1(e-)1(level)-358(AS)]TJ/F15 10.9091 Tf 106.723 0 Td [(preconditioner)-333(is)-334(de\014n)1(e)-1(d)-333(b)28(y)]TJ/F22 10.9091 Tf -4.792 -32.517 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F23 7.9701 Tf -7.776 -8.022 Td [(AS)]TJ/F15 10.9091 Tf 15.539 3.434 Td [(=)]TJ/F23 7.9701 Tf 15.649 13.637 Td [(m)]TJ/F28 10.9091 Tf -4.134 -3.273 Td [(X)]TJ/F23 7.9701 Tf 1.027 -23.451 Td [(i)]TJ/F20 7.9701 Tf 2.883 0 Td [(=1)]TJ/F15 10.9091 Tf 11.848 13.087 Td [(\050)]TJ/F22 10.9091 Tf 4.242 0 Td [(R)]TJ/F23 7.9701 Tf 8.367 4.505 Td [(\016)]TJ -0.084 -7.201 Td [(i)]TJ/F15 10.9091 Tf 4.629 2.696 Td [(\051)]TJ/F23 7.9701 Tf 4.242 4.505 Td [(T)]TJ/F15 10.9091 Tf 6.604 -4.505 Td [(\050)]TJ/F22 10.9091 Tf 4.243 0 Td [(A)]TJ/F23 7.9701 Tf 8.182 4.505 Td [(\016)]TJ 0 -7.201 Td [(i)]TJ/F15 10.9091 Tf 4.544 2.696 Td [(\051)]TJ/F26 7.9701 Tf 4.242 4.505 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ/F22 10.9091 Tf 4.732 -4.505 Td [(R)]TJ/F23 7.9701 Tf 8.368 4.505 Td [(\016)]TJ -0.085 -7.201 Td [(i)]TJ/F22 10.9091 Tf 4.629 2.696 Td [(;)]TJ/F15 10.9091 Tf -268.129 -35.907 Td [(where)]TJ/F22 10.9091 Tf 32.336 0 Td [(A)]TJ/F23 7.9701 Tf 8.182 3.958 Td [(\016)]TJ 0 -7.014 Td [(i)]TJ/F15 10.9091 Tf 8.971 3.056 Td [(is)-406(assumed)-406(to)-406(b)-27(e)-406(nonsingular.)-662(Its)-406(application)-405(to)-406(a)-406(v)28(ector)]TJ/F22 10.9091 Tf 283.187 0 Td [(v)]TJ/F25 10.9091 Tf 10.027 0 Td [(2)-399(<)]TJ/F23 7.9701 Tf 19.5 3.958 Td [(n)]TJ/F15 10.9091 Tf 10.063 -3.958 Td [(within)-406(a)]TJ -372.266 -13.55 Td [(Krylo)28(v)-333(solv)27(er)-333(requires)-333(the)-334(follo)28(wing)-333(three)-333(steps:)]TJ +0 g 0 G + 13.333 -22.89 Td [(1.)]TJ +0 g 0 G + [-500(restriction)-333(of)]TJ/F22 10.9091 Tf 78.606 0 Td [(v)]TJ/F15 10.9091 Tf 9.316 0 Td [(as)]TJ/F22 10.9091 Tf 13.394 0 Td [(v)]TJ/F23 7.9701 Tf 5.288 -1.636 Td [(i)]TJ/F15 10.9091 Tf 6.411 1.636 Td [(=)]TJ/F22 10.9091 Tf 11.516 0 Td [(R)]TJ/F23 7.9701 Tf 8.367 3.959 Td [(\016)]TJ -0.084 -7.014 Td [(i)]TJ/F22 10.9091 Tf 4.628 3.055 Td [(v)]TJ/F15 10.9091 Tf 5.679 0 Td [(,)]TJ/F22 10.9091 Tf 6.667 0 Td [(i)]TJ/F15 10.9091 Tf 6.789 0 Td [(=)-278(1)]TJ/F22 10.9091 Tf 16.969 0 Td [(;)-167(:)-166(:)-167(:)-167(;)-166(m)]TJ/F15 10.9091 Tf 33.821 0 Td [(;)]TJ +0 g 0 G + -207.367 -22.89 Td [(2.)]TJ +0 g 0 G + [-500(solution)-333(of)-334(th)1(e)-334(linear)-333(systems)]TJ/F22 10.9091 Tf 157.243 0 Td [(A)]TJ/F23 7.9701 Tf 8.182 3.959 Td [(\016)]TJ 0 -7.015 Td [(i)]TJ/F22 10.9091 Tf 4.544 3.056 Td [(w)]TJ/F23 7.9701 Tf 7.81 -1.637 Td [(i)]TJ/F15 10.9091 Tf 6.411 1.637 Td [(=)]TJ/F22 10.9091 Tf 11.516 0 Td [(v)]TJ/F23 7.9701 Tf 5.287 -1.637 Td [(i)]TJ/F15 10.9091 Tf 3.382 1.637 Td [(,)]TJ/F22 10.9091 Tf 6.666 0 Td [(i)]TJ/F15 10.9091 Tf 6.789 0 Td [(=)-278(1)]TJ/F22 10.9091 Tf 16.97 0 Td [(;)-167(:)-166(:)-167(:)-167(;)-166(m)]TJ/F15 10.9091 Tf 33.82 0 Td [(;)]TJ +0 g 0 G + -268.62 -22.89 Td [(3.)]TJ +0 g 0 G + [-500(prolongation)-333(and)-333(sum)-334(of)-333(the)]TJ/F22 10.9091 Tf 153.122 0 Td [(w)]TJ/F23 7.9701 Tf 7.81 -1.637 Td [(i)]TJ/F15 10.9091 Tf 3.381 1.637 Td [('s,)-333(i.e.)]TJ/F22 10.9091 Tf 32.788 0 Td [(w)]TJ/F15 10.9091 Tf 11.134 0 Td [(=)]TJ/F28 10.9091 Tf 11.515 8.181 Td [(P)]TJ/F23 7.9701 Tf 11.515 -3.154 Td [(m)]TJ 0 -8.253 Td [(i)]TJ/F20 7.9701 Tf 2.883 0 Td [(=1)]TJ/F15 10.9091 Tf 11.319 3.226 Td [(\050)]TJ/F22 10.9091 Tf 4.242 0 Td [(R)]TJ/F23 7.9701 Tf 8.368 3.958 Td [(\016)]TJ -0.084 -7.014 Td [(i)]TJ/F15 10.9091 Tf 4.628 3.056 Td [(\051)]TJ/F23 7.9701 Tf 4.242 3.958 Td [(T)]TJ/F22 10.9091 Tf 6.605 -3.958 Td [(w)]TJ/F23 7.9701 Tf 7.81 -1.637 Td [(i)]TJ/F15 10.9091 Tf 3.381 1.637 Td [(.)]TJ -297.992 -22.891 Td [(Note)-473(th)1(at)-473(the)-472(linear)-473(systems)-473(at)-472(step)-473(2)-472(are)-473(usually)-472(solv)28(ed)-473(appro)28(ximately)83(,)-507(e.g.)-472(using)]TJ 0 -13.549 Td [(incomplete)-333(LU)-334(factorizations)-333(suc)28(h)-334(as)-333(ILU\050)]TJ/F22 10.9091 Tf 202.637 0 Td [(p)]TJ/F15 10.9091 Tf 5.488 0 Td [(\051,)-333(MILU\050)]TJ/F22 10.9091 Tf 44.091 0 Td [(p)]TJ/F15 10.9091 Tf 5.489 0 Td [(\051)-333(and)-334(ILU\050)]TJ/F22 10.9091 Tf 52.273 0 Td [(p;)-167(t)]TJ/F15 10.9091 Tf 14.276 0 Td [(\051)-333([)]TJ +1 0 0 rg 1 0 0 RG + [(19)]TJ +0 g 0 G + [(,)-334(Chapter)-333(10].)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +268 0 obj << +/Type /Page +/Contents 269 0 R +/Resources 267 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 238 0 R +/Annots [ 248 0 R 256 0 R 257 0 R 258 0 R 259 0 R 260 0 R 261 0 R 262 0 R 263 0 R 264 0 R ] +>> endobj +248 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [238.858 689.591 251.76 698.614] +/Subtype /Link +/A << /S /GoTo /D (cite.StubenGMD69_99) >> +>> endobj +256 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [197.525 648.85 204.972 657.872] +/Subtype /Link +/A << /S /GoTo /D (cite.BREZINA_VANEK) >> +>> endobj +257 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [210.398 648.85 223.3 657.872] +/Subtype /Link +/A << /S /GoTo /D (cite.VANEK_MANDEL_BREZINA) >> +>> endobj +258 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [421.977 635.3 434.879 644.323] +/Subtype /Link +/A << /S /GoTo /D (cite.TUMINARO_TONG) >> +>> endobj +259 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [239.919 594.653 247.366 603.676] +/Subtype /Link +/A << /S /GoTo /D (cite.para_04) >> +>> endobj +260 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [252.04 594.653 259.487 603.676] +/Subtype /Link +/A << /S /GoTo /D (cite.aaecc_07) >> +>> endobj +261 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [264.161 594.653 271.608 603.676] +/Subtype /Link +/A << /S /GoTo /D (cite.apnum_07) >> +>> endobj +262 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [288.873 594.653 301.775 603.676] +/Subtype /Link +/A << /S /GoTo /D (cite.dd2_96) >> +>> endobj +263 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [222.124 500.66 229.571 513.561] +/Subtype /Link +/A << /S /GoTo /D (equation.1) >> +>> endobj +264 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [420.567 120.525 433.468 129.547] +/Subtype /Link +/A << /S /GoTo /D (cite.Saad_book) >> +>> endobj +270 0 obj << +/D [268 0 R /XYZ 86.4 740.002 null] +>> endobj +50 0 obj << +/D [268 0 R /XYZ 86.4 577.215 null] +>> endobj +276 0 obj << +/D [268 0 R /XYZ 86.4 219.839 null] +>> endobj +277 0 obj << +/D [268 0 R /XYZ 86.4 196.015 null] +>> endobj +278 0 obj << +/D [268 0 R /XYZ 86.4 173.125 null] +>> endobj +267 0 obj << +/Font << /F15 123 0 R /F41 124 0 R /F18 173 0 R /F43 158 0 R /F17 111 0 R /F22 175 0 R /F23 271 0 R /F25 176 0 R /F26 272 0 R /F20 273 0 R /F24 274 0 R /F28 275 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +290 0 obj << +/Length 13845 +>> +stream +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F41 10.9091 Tf 93.6 740.002 Td [(4)]TJ +0 g 0 G + [-378(Mul)67(ti-level)-378(Domain)-378(Decompo)1(siti)-1(o)1(n)-378(Ba)22(ck)22(gr)22(ound)]TJ/F15 10.9091 Tf 401.542 0 Td [(11)]TJ +0 g 0 G + -384.605 -35.866 Td [(A)-318(v)56(arian)28(t)-318(of)-318(the)-317(classic)-1(al)-317(AS)-318(preconditioner)-317(that)-318(outp)-28(erforms)-318(it)-317(in)-318(terms)-318(of)-317(con)27(v)28(er-)]TJ -16.937 -13.549 Td [(gence)-265(rate)-266(and)-265(of)-265(computation)-265(and)-265(comm)27(un)1(ic)-1(ati)1(on)-266(time)-265(on)-265(parallel)-265(distributed-memory)]TJ 0 -13.549 Td [(computers)-387(is)-387(the)-387(so-called)]TJ/F18 10.9091 Tf 129.216 0 Td [(R)51(estricte)51(d)-407(AS)-407(\050RAS\051)]TJ/F15 10.9091 Tf 105.994 0 Td [(preconditioner)-387([)]TJ +1 0 0 rg 1 0 0 RG + [(5)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-387(13)]TJ +0 g 0 G + [(].)-605(It)-387(is)-386(obtained)]TJ -235.21 -13.549 Td [(b)28(y)-408(zeroing)-407(the)-408(comp)-28(onen)28(ts)-407(of)]TJ/F22 10.9091 Tf 148.078 0 Td [(w)]TJ/F23 7.9701 Tf 7.81 -1.637 Td [(i)]TJ/F15 10.9091 Tf 7.827 1.637 Td [(corresp)-28(onding)-407(to)-408(the)-407(o)28(v)27(erlapping)-407(v)28(ertices)-408(when)-407(ap-)]TJ -163.715 -13.549 Td [(plying)-349(the)-349(p)1(rolongation.)-491(Therefore,)-353(RAS)-349(di\013ers)-348(from)-349(classical)-349(AS)-349(b)28(y)-349(the)-349(prolongation)]TJ 0 -13.55 Td [(op)-28(erators,)-400(whic)27(h)-387(are)-387(substituted)-387(b)28(y)-387(\050)]TJ 182.692 2.758 Td [(~)]TJ/F22 10.9091 Tf -2.366 -2.758 Td [(R)]TJ/F20 7.9701 Tf 8.367 3.959 Td [(0)]TJ/F23 7.9701 Tf -0.084 -7.014 Td [(i)]TJ/F15 10.9091 Tf 4.817 3.055 Td [(\051)]TJ/F23 7.9701 Tf 4.242 3.959 Td [(T)]TJ/F25 10.9091 Tf 10.614 -3.959 Td [(2)-367(<)]TJ/F23 7.9701 Tf 19.16 3.959 Td [(n)]TJ/F24 5.9776 Tf 5.139 2.813 Td [(\016)]TJ 0 -5.395 Td [(i)]TJ/F26 7.9701 Tf 4.089 2.582 Td [(\002)]TJ/F23 7.9701 Tf 6.587 0 Td [(n)]TJ/F15 10.9091 Tf 5.636 -3.959 Td [(,)-401(where)]TJ 41.899 2.758 Td [(~)]TJ/F22 10.9091 Tf -2.366 -2.758 Td [(R)]TJ/F20 7.9701 Tf 8.368 3.959 Td [(0)]TJ/F23 7.9701 Tf -0.084 -7.014 Td [(i)]TJ/F15 10.9091 Tf 9.04 3.055 Td [(is)-387(obtained)-387(b)28(y)-388(zeroing)]TJ -305.75 -13.549 Td [(the)-333(ro)27(ws)-333(of)]TJ/F22 10.9091 Tf 56.455 0 Td [(R)]TJ/F23 7.9701 Tf 8.367 3.959 Td [(\016)]TJ -0.084 -7.014 Td [(i)]TJ/F15 10.9091 Tf 8.265 3.055 Td [(corresp)-28(onding)-333(to)-333(the)-334(v)28(ertices)-333(in)]TJ/F22 10.9091 Tf 154.454 0 Td [(W)]TJ/F23 7.9701 Tf 11.819 3.959 Td [(\016)]TJ -1.516 -7.014 Td [(i)]TJ/F25 10.9091 Tf 6.06 3.055 Td [(n)]TJ/F22 10.9091 Tf 5.454 0 Td [(W)]TJ/F20 7.9701 Tf 11.818 3.959 Td [(0)]TJ/F23 7.9701 Tf -1.515 -7.014 Td [(i)]TJ/F15 10.9091 Tf 6.248 3.055 Td [(:)]TJ/F22 10.9091 Tf -127.805 -29.635 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F23 7.9701 Tf -7.775 -8.022 Td [(R)-6(AS)]TJ/F15 10.9091 Tf 21.894 3.434 Td [(=)]TJ/F23 7.9701 Tf 15.649 13.637 Td [(m)]TJ/F28 10.9091 Tf -4.134 -3.273 Td [(X)]TJ/F23 7.9701 Tf 1.027 -23.451 Td [(i)]TJ/F20 7.9701 Tf 2.883 0 Td [(=1)]TJ/F15 10.9091 Tf 11.848 13.087 Td [(\050)]TJ 6.608 2.758 Td [(~)]TJ/F22 10.9091 Tf -2.366 -2.758 Td [(R)]TJ/F20 7.9701 Tf 8.368 4.505 Td [(0)]TJ/F23 7.9701 Tf -0.085 -7.201 Td [(i)]TJ/F15 10.9091 Tf 4.817 2.696 Td [(\051)]TJ/F23 7.9701 Tf 4.242 4.505 Td [(T)]TJ/F15 10.9091 Tf 6.605 -4.505 Td [(\050)]TJ/F22 10.9091 Tf 4.242 0 Td [(A)]TJ/F23 7.9701 Tf 8.182 4.505 Td [(\016)]TJ 0 -7.201 Td [(i)]TJ/F15 10.9091 Tf 4.544 2.696 Td [(\051)]TJ/F26 7.9701 Tf 4.243 4.505 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F22 10.9091 Tf 4.732 -4.505 Td [(R)]TJ/F23 7.9701 Tf 8.368 4.505 Td [(\016)]TJ -0.084 -7.201 Td [(i)]TJ/F22 10.9091 Tf 4.628 2.696 Td [(:)]TJ/F15 10.9091 Tf -271.401 -30.78 Td [(Analogously)83(,)-333(the)-333(AS)-334(v)56(arian)28(t)-333(called)]TJ/F18 10.9091 Tf 168.576 0 Td [(AS)-358(with)-358(Harmonic)-357(extension)-358(\050ASH\051)]TJ/F15 10.9091 Tf 176.608 0 Td [(is)-333(de\014ned)-334(b)28(y)]TJ/F22 10.9091 Tf -207.735 -29.306 Td [(M)]TJ/F26 7.9701 Tf 11.772 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ/F23 7.9701 Tf -7.776 -8.022 Td [(AS)-56(H)]TJ/F15 10.9091 Tf 23.037 3.434 Td [(=)]TJ/F23 7.9701 Tf 15.649 13.636 Td [(m)]TJ/F28 10.9091 Tf -4.133 -3.273 Td [(X)]TJ/F23 7.9701 Tf 1.026 -23.451 Td [(i)]TJ/F20 7.9701 Tf 2.884 0 Td [(=1)]TJ/F15 10.9091 Tf 11.847 13.088 Td [(\050)]TJ/F22 10.9091 Tf 4.243 0 Td [(R)]TJ/F23 7.9701 Tf 8.367 4.504 Td [(\016)]TJ -0.084 -7.201 Td [(i)]TJ/F15 10.9091 Tf 4.628 2.697 Td [(\051)]TJ/F23 7.9701 Tf 4.243 4.504 Td [(T)]TJ/F15 10.9091 Tf 6.604 -4.504 Td [(\050)]TJ/F22 10.9091 Tf 4.242 0 Td [(A)]TJ/F23 7.9701 Tf 8.182 4.504 Td [(\016)]TJ 0 -7.201 Td [(i)]TJ/F15 10.9091 Tf 4.544 2.697 Td [(\051)]TJ/F26 7.9701 Tf 4.243 4.504 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F15 10.9091 Tf 7.098 -1.747 Td [(~)]TJ/F22 10.9091 Tf -2.365 -2.757 Td [(R)]TJ/F20 7.9701 Tf 8.367 4.504 Td [(0)]TJ/F23 7.9701 Tf -0.084 -7.201 Td [(i)]TJ/F22 10.9091 Tf 4.816 2.697 Td [(:)]TJ/F15 10.9091 Tf -271.972 -30.174 Td [(W)83(e)-334(note)-335(that)-335(for)]TJ/F22 10.9091 Tf 83.422 0 Td [(\016)]TJ/F15 10.9091 Tf 8.316 0 Td [(=)-280(0)-335(the)-334(three)-335(v)56(arian)28(ts)-335(of)-335(the)-334(AS)-335(preconditioner)-335(are)-334(all)-335(equal)-334(to)-335(the)]TJ -91.738 -13.55 Td [(blo)-28(c)28(k-Jacobi)-333(preconditioner.)]TJ 16.937 -13.549 Td [(As)-358(already)-358(observ)27(ed,)-364(the)-358(con)27(v)28(ergence)-358(rate)-358(of)-359(the)-358(one-lev)28(el)-358(Sc)27(h)28(w)28(arz)-358(preconditioned)]TJ -16.937 -13.549 Td [(iterativ)28(e)-359(solv)28(ers)-358(deteriorates)-358(as)-359(the)-358(n)28(um)28(b)-28(er)]TJ/F22 10.9091 Tf 211.422 0 Td [(m)]TJ/F15 10.9091 Tf 13.487 0 Td [(of)-358(partitions)-358(of)]TJ/F22 10.9091 Tf 75.454 0 Td [(W)]TJ/F15 10.9091 Tf 15.727 0 Td [(increases)-358([)]TJ +1 0 0 rg 1 0 0 RG + [(7)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-359(20)]TJ +0 g 0 G + [(].)-519(T)83(o)]TJ -316.09 -13.549 Td [(reduce)-308(the)-308(dep)-28(endency)-307(of)-308(the)-308(n)28(um)27(b)-27(er)-308(of)-308(iterations)-308(on)-308(the)-308(degree)-308(of)-308(parallelism)-308(w)28(e)-308(ma)28(y)]TJ 0 -13.549 Td [(in)28(tro)-28(duce)-275(a)-276(global)-275(coupling)-276(among)-275(the)-276(o)28(v)28(erlapping)-275(partitions)-276(b)28(y)-275(de\014ning)-276(a)-275(coarse-space)]TJ 0 -13.55 Td [(appro)28(ximation)]TJ/F22 10.9091 Tf 72.12 0 Td [(A)]TJ/F23 7.9701 Tf 8.182 -1.688 Td [(C)]TJ/F15 10.9091 Tf 10.095 1.688 Td [(of)-275(the)-275(matrix)]TJ/F22 10.9091 Tf 64.783 0 Td [(A)]TJ/F15 10.9091 Tf 8.182 0 Td [(.)-425(In)-275(a)-275(pure)-274(algebraic)-275(setting,)]TJ/F22 10.9091 Tf 137.15 0 Td [(A)]TJ/F23 7.9701 Tf 8.182 -1.688 Td [(C)]TJ/F15 10.9091 Tf 10.095 1.688 Td [(is)-275(usually)-275(built)-274(with)]TJ -318.789 -13.549 Td [(the)-321(Galerkin)-322(approac)28(h.)-440(Giv)28(en)-322(a)-321(set)]TJ/F22 10.9091 Tf 171.697 0 Td [(W)]TJ/F23 7.9701 Tf 10.303 -1.689 Td [(C)]TJ/F15 10.9091 Tf 10.602 1.689 Td [(of)]TJ/F18 10.9091 Tf 12.294 0 Td [(c)51(o)51(arse)-346(vertic)51(es)]TJ/F15 10.9091 Tf 68.461 0 Td [(,)-324(with)-321(size)]TJ/F22 10.9091 Tf 51.815 0 Td [(n)]TJ/F23 7.9701 Tf 6.549 -1.689 Td [(C)]TJ/F15 10.9091 Tf 7.096 1.689 Td [(,)-324(and)-321(a)-321(suitable)]TJ -338.817 -13.549 Td [(restriction)-333(op)-28(erator)]TJ/F22 10.9091 Tf 96.243 0 Td [(R)]TJ/F23 7.9701 Tf 8.283 -1.689 Td [(C)]TJ/F25 10.9091 Tf 10.127 1.689 Td [(2)-278(<)]TJ/F23 7.9701 Tf 18.182 3.959 Td [(n)]TJ/F24 5.9776 Tf 5.138 -1.34 Td [(C)]TJ/F26 7.9701 Tf 6.194 1.34 Td [(\002)]TJ/F23 7.9701 Tf 6.587 0 Td [(n)]TJ/F15 10.9091 Tf 5.636 -3.959 Td [(,)]TJ/F22 10.9091 Tf 6.667 0 Td [(A)]TJ/F23 7.9701 Tf 8.182 -1.689 Td [(C)]TJ/F15 10.9091 Tf 10.733 1.689 Td [(is)-333(de\014ned)-334(as)]TJ/F22 10.9091 Tf -10.129 -20.973 Td [(A)]TJ/F23 7.9701 Tf 8.182 -1.689 Td [(C)]TJ/F15 10.9091 Tf 10.127 1.689 Td [(=)]TJ/F22 10.9091 Tf 11.515 0 Td [(R)]TJ/F23 7.9701 Tf 8.283 -1.689 Td [(C)]TJ/F22 10.9091 Tf 7.097 1.689 Td [(AR)]TJ/F23 7.9701 Tf 16.549 4.504 Td [(T)]TJ -0.084 -7.201 Td [(C)]TJ/F15 10.9091 Tf -233.512 -18.277 Td [(and)-496(the)-496(c)-1(oar)1(s)-1(e-lev)28(el)-496(correction)-496(matrix)-497(to)-496(b)-28(e)-496(com)28(bined)-496(with)-497(a)-496(generic)-496(one-lev)28(el)-497(AS)]TJ 0 -13.549 Td [(preconditioner)]TJ/F22 10.9091 Tf 72.182 0 Td [(M)]TJ/F20 7.9701 Tf 10.583 -1.688 Td [(1)]TJ/F23 7.9701 Tf 4.235 0 Td [(L)]TJ/F15 10.9091 Tf 9.893 1.688 Td [(is)-333(obtained)-334(as)]TJ/F22 10.9091 Tf 63.869 -20.973 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F23 7.9701 Tf -7.776 -8.022 Td [(C)]TJ/F15 10.9091 Tf 15.539 3.434 Td [(=)]TJ/F22 10.9091 Tf 11.515 0 Td [(R)]TJ/F23 7.9701 Tf 8.367 4.504 Td [(T)]TJ -0.084 -7.201 Td [(C)]TJ/F22 10.9091 Tf 7.097 2.697 Td [(A)]TJ/F26 7.9701 Tf 8.182 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F23 7.9701 Tf -6.586 -8.022 Td [(C)]TJ/F22 10.9091 Tf 11.318 3.434 Td [(R)]TJ/F23 7.9701 Tf 8.284 -1.689 Td [(C)]TJ/F22 10.9091 Tf 7.096 1.689 Td [(;)]TJ/F15 10.9091 Tf -248.659 -20.973 Td [(where)]TJ/F22 10.9091 Tf 31.91 0 Td [(A)]TJ/F23 7.9701 Tf 8.182 -1.689 Td [(C)]TJ/F15 10.9091 Tf 11.097 1.689 Td [(is)-367(assumed)-367(t)1(o)-367(b)-28(e)-367(nonsingular)1(.)-545(The)-367(application)-366(of)]TJ/F22 10.9091 Tf 240.883 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F23 7.9701 Tf -7.775 -8.022 Td [(C)]TJ/F15 10.9091 Tf 16.508 3.434 Td [(to)-367(a)-366(v)27(ector)]TJ/F22 10.9091 Tf 56.274 0 Td [(v)]TJ/F15 10.9091 Tf 9.68 0 Td [(corre-)]TJ -385.118 -13.549 Td [(sp)-28(onds)-325(to)-325(a)-325(restriction,)-327(a)-325(solution)-325(and)-325(a)-325(prolongation)-325(step;)-328(the)-325(solution)-325(step,)-327(in)28(v)27(olvi)1(ng)]TJ 0 -13.55 Td [(the)-333(matrix)]TJ/F22 10.9091 Tf 54.273 0 Td [(A)]TJ/F23 7.9701 Tf 8.182 -1.688 Td [(C)]TJ/F15 10.9091 Tf 7.097 1.688 Td [(,)-333(ma)27(y)-333(b)-28(e)-333(carried)-333(out)-334(also)-333(appro)28(ximately)83(.)]TJ -52.615 -13.549 Td [(The)-309(com)28(bination)-309(of)]TJ/F22 10.9091 Tf 96.176 0 Td [(M)]TJ/F23 7.9701 Tf 10.583 -1.689 Td [(C)]TJ/F15 10.9091 Tf 10.469 1.689 Td [(and)]TJ/F22 10.9091 Tf 20.948 0 Td [(M)]TJ/F20 7.9701 Tf 10.583 -1.689 Td [(1)]TJ/F23 7.9701 Tf 4.234 0 Td [(L)]TJ/F15 10.9091 Tf 9.629 1.689 Td [(ma)28(y)-309(b)-28(e)-309(p)-28(erformed)-309(in)-309(either)-309(an)-309(additiv)28(e)-309(or)-309(a)-309(m)27(ul-)]TJ -179.559 -13.549 Td [(tiplicativ)28(e)-275(framew)28(ork.)-425(In)-275(the)-275(former)-275(c)-1(ase,)-286(the)]TJ/F18 10.9091 Tf 217.192 0 Td [(two-level)-304(additive)]TJ/F15 10.9091 Tf 85.198 0 Td [(Sc)28(h)28(w)27(arz)-275(preconditioner)]TJ -302.39 -13.549 Td [(is)-333(obtained:)]TJ/F22 10.9091 Tf 153.971 -13.549 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.587 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ -7.776 -8.022 Td [(2)]TJ/F23 7.9701 Tf 4.234 0 Td [(LA)]TJ/F15 10.9091 Tf 15.631 3.435 Td [(=)]TJ/F22 10.9091 Tf 11.515 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.587 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F23 7.9701 Tf -7.776 -8.022 Td [(C)]TJ/F15 10.9091 Tf 14.933 3.435 Td [(+)]TJ/F22 10.9091 Tf 10.909 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.587 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ -7.776 -8.022 Td [(1)]TJ/F23 7.9701 Tf 4.234 0 Td [(L)]TJ/F22 10.9091 Tf 8.274 3.435 Td [(:)]TJ/F15 10.9091 Tf -255.45 -18.258 Td [(Applying)]TJ/F22 10.9091 Tf 48.201 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ -7.776 -8.022 Td [(2)]TJ/F23 7.9701 Tf 4.234 0 Td [(L)]TJ/F26 7.9701 Tf 5.759 0 Td [(\000)]TJ/F23 7.9701 Tf 6.587 0 Td [(A)]TJ/F15 10.9091 Tf 11.405 3.434 Td [(to)-418(a)-419(v)28(ector)]TJ/F22 10.9091 Tf 57.968 0 Td [(v)]TJ/F15 10.9091 Tf 10.244 0 Td [(within)-418(a)-419(Krylo)28(v)-418(solv)27(er)-418(corresp)-28(onds)-418(to)-419(appl)1(ying)]TJ/F22 10.9091 Tf 234.378 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F23 7.9701 Tf -7.776 -8.022 Td [(C)]TJ/F15 10.9091 Tf -399.943 -11.551 Td [(and)]TJ/F22 10.9091 Tf 21.212 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ -7.776 -8.022 Td [(1)]TJ/F23 7.9701 Tf 4.234 0 Td [(L)]TJ/F15 10.9091 Tf 11.91 3.434 Td [(to)]TJ/F22 10.9091 Tf 13.334 0 Td [(v)]TJ/F15 10.9091 Tf 9.315 0 Td [(indep)-28(enden)28(tly)-333(and)-333(then)-334(summing)-333(up)-333(the)-334(results.)]TJ -53.652 -13.549 Td [(In)-355(the)-355(m)28(ultiplicativ)28(e)-355(case,)-360(the)-355(com)28(bination)-355(can)-355(b)-28(e)-355(p)-27(erformed)-355(b)28(y)-355(\014rst)-355(applying)-355(the)]TJ -16.937 -13.549 Td [(smo)-28(other)]TJ/F22 10.9091 Tf 47.667 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ -7.776 -8.022 Td [(1)]TJ/F23 7.9701 Tf 4.234 0 Td [(L)]TJ/F15 10.9091 Tf 11.911 3.434 Td [(and)-333(then)-334(th)1(e)-334(coarse-lev)28(el)-334(correction)-333(op)-28(erator)]TJ/F22 10.9091 Tf 217.485 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F23 7.9701 Tf -7.776 -8.022 Td [(C)]TJ/F15 10.9091 Tf 12.508 3.434 Td [(:)]TJ/F22 10.9091 Tf -164.465 -21.579 Td [(w)]TJ/F15 10.9091 Tf 11.134 0 Td [(=)]TJ/F22 10.9091 Tf 11.515 0 Td [(M)]TJ/F26 7.9701 Tf 11.772 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ -7.776 -8.022 Td [(1)]TJ/F23 7.9701 Tf 4.234 0 Td [(L)]TJ/F22 10.9091 Tf 8.274 3.434 Td [(v)-36(;)]TJ -45.74 -13.789 Td [(z)]TJ/F15 10.9091 Tf 8.583 0 Td [(=)]TJ/F22 10.9091 Tf 11.515 0 Td [(w)]TJ/F15 10.9091 Tf 10.528 0 Td [(+)]TJ/F22 10.9091 Tf 10.909 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F23 7.9701 Tf -7.776 -8.022 Td [(C)]TJ/F15 10.9091 Tf 12.509 3.434 Td [(\050)]TJ/F22 10.9091 Tf 4.242 0 Td [(v)]TJ/F25 10.9091 Tf 8.103 0 Td [(\000)]TJ/F22 10.9091 Tf 10.91 0 Td [(Aw)]TJ/F15 10.9091 Tf 16.285 0 Td [(\051;)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +289 0 obj << +/Type /Page +/Contents 290 0 R +/Resources 288 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 238 0 R +/Annots [ 287 0 R 265 0 R 266 0 R 285 0 R 286 0 R ] +>> endobj +287 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 739.006 100.627 748.453] +/Subtype /Link +/A << /S /GoTo /D (section.4) >> +>> endobj +265 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [403.61 676.042 411.057 685.065] +/Subtype /Link +/A << /S /GoTo /D (cite.CAI_SARKIS) >> +>> endobj +266 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [416.316 676.042 429.217 685.065] +/Subtype /Link +/A << /S /GoTo /D (cite.EFSTATHIOU) >> +>> endobj +285 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [457.602 461.302 465.049 470.324] +/Subtype /Link +/A << /S /GoTo /D (cite.dd1_94) >> +>> endobj +286 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [469.996 461.302 482.897 470.324] +/Subtype /Link +/A << /S /GoTo /D (cite.dd2_96) >> +>> endobj +291 0 obj << +/D [289 0 R /XYZ 93.6 740.002 null] +>> endobj +288 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F18 173 0 R /F22 175 0 R /F23 271 0 R /F20 273 0 R /F25 176 0 R /F24 274 0 R /F26 272 0 R /F28 275 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +301 0 obj << +/Length 11340 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(12)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +/F15 10.9091 Tf -203.265 -35.866 Td [(this)-278(corresp)-28(onds)-278(to)-278(the)-278(follo)28(wing)]TJ/F18 10.9091 Tf 156.322 0 Td [(two-level)-307(hybrid)-307(pr)51(e-smo)52(o)-1(the)52(d)]TJ/F15 10.9091 Tf 143.004 0 Td [(Sc)28(h)28(w)27(arz)-278(preconditioner:)]TJ/F22 10.9091 Tf -190.113 -25.536 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.587 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ -7.776 -8.022 Td [(2)]TJ/F23 7.9701 Tf 4.234 0 Td [(LH)]TJ/F26 7.9701 Tf 13.33 0 Td [(\000)]TJ/F23 7.9701 Tf 6.586 0 Td [(P)-148(R)-6(E)]TJ/F15 10.9091 Tf 23.154 3.435 Td [(=)]TJ/F22 10.9091 Tf 11.515 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.587 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F23 7.9701 Tf -7.776 -8.022 Td [(C)]TJ/F15 10.9091 Tf 14.933 3.435 Td [(+)]TJ/F28 10.9091 Tf 10.909 8.836 Td [(\000)]TJ/F22 10.9091 Tf 5 -8.836 Td [(I)]TJ/F25 10.9091 Tf 8.075 0 Td [(\000)]TJ/F22 10.9091 Tf 10.91 0 Td [(M)]TJ/F26 7.9701 Tf 11.772 4.587 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ/F23 7.9701 Tf -7.776 -8.021 Td [(C)]TJ/F22 10.9091 Tf 12.508 3.434 Td [(A)]TJ/F28 10.9091 Tf 8.182 8.836 Td [(\001)]TJ/F22 10.9091 Tf 6.818 -8.836 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.587 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ -7.776 -8.021 Td [(1)]TJ/F23 7.9701 Tf 4.235 0 Td [(L)]TJ/F22 10.9091 Tf 8.274 3.434 Td [(:)]TJ/F15 10.9091 Tf -300.208 -25.537 Td [(On)-368(the)-369(other)-368(hand,)-377(b)27(y)-368(applying)-368(the)-369(smo)-28(other)-368(after)-369(the)-368(coarse-lev)27(el)-368(correction,)-377(i.e.)-369(b)28(y)]TJ 0 -13.549 Td [(computing)]TJ/F22 10.9091 Tf 150.505 -13.871 Td [(w)]TJ/F15 10.9091 Tf 11.134 0 Td [(=)]TJ/F22 10.9091 Tf 11.515 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ/F23 7.9701 Tf -7.776 -8.022 Td [(C)]TJ/F22 10.9091 Tf 12.508 3.434 Td [(v)-36(;)]TJ -45.741 -13.789 Td [(z)]TJ/F15 10.9091 Tf 8.584 0 Td [(=)]TJ/F22 10.9091 Tf 11.515 0 Td [(w)]TJ/F15 10.9091 Tf 10.528 0 Td [(+)]TJ/F22 10.9091 Tf 10.909 0 Td [(M)]TJ/F26 7.9701 Tf 11.772 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ -7.776 -8.022 Td [(1)]TJ/F23 7.9701 Tf 4.234 0 Td [(L)]TJ/F15 10.9091 Tf 8.274 3.434 Td [(\050)]TJ/F22 10.9091 Tf 4.243 0 Td [(v)]TJ/F25 10.9091 Tf 8.103 0 Td [(\000)]TJ/F22 10.9091 Tf 10.909 0 Td [(Aw)]TJ/F15 10.9091 Tf 16.286 0 Td [(\051)]TJ/F22 10.9091 Tf 4.242 0 Td [(;)]TJ/F15 10.9091 Tf -258.915 -20.312 Td [(the)]TJ/F18 10.9091 Tf 18.788 0 Td [(two-level)-358(hybrid)-357(p)51(ost-smo)51(othe)51(d)]TJ/F15 10.9091 Tf 148.756 0 Td [(Sc)28(h)28(w)27(arz)-333(preconditioner)-333(is)-334(ob)1(tained:)]TJ/F22 10.9091 Tf -60.972 -25.537 Td [(M)]TJ/F26 7.9701 Tf 11.772 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ -7.776 -8.022 Td [(2)]TJ/F23 7.9701 Tf 4.234 0 Td [(LH)]TJ/F26 7.9701 Tf 13.329 0 Td [(\000)]TJ/F23 7.9701 Tf 6.587 0 Td [(P)-148(O)-29(S)-56(T)]TJ/F15 10.9091 Tf 28.436 3.434 Td [(=)]TJ/F22 10.9091 Tf 11.515 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ -7.775 -8.022 Td [(1)]TJ/F23 7.9701 Tf 4.234 0 Td [(L)]TJ/F15 10.9091 Tf 10.698 3.434 Td [(+)]TJ/F28 10.9091 Tf 10.909 8.836 Td [(\000)]TJ/F22 10.9091 Tf 5 -8.836 Td [(I)]TJ/F25 10.9091 Tf 8.076 0 Td [(\000)]TJ/F22 10.9091 Tf 10.909 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ -7.776 -8.022 Td [(1)]TJ/F23 7.9701 Tf 4.234 0 Td [(L)]TJ/F22 10.9091 Tf 8.274 3.434 Td [(A)]TJ/F28 10.9091 Tf 8.182 8.836 Td [(\001)]TJ/F22 10.9091 Tf 6.818 -8.836 Td [(M)]TJ/F26 7.9701 Tf 11.773 4.588 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ/F23 7.9701 Tf -7.776 -8.022 Td [(C)]TJ/F22 10.9091 Tf 12.508 3.434 Td [(:)]TJ/F15 10.9091 Tf -302.849 -25.537 Td [(One)-222(more)-222(v)55(arian)28(t)-222(of)-222(t)27(w)28(o-lev)28(el)-222(h)27(yb)1(rid)-223(precondi)1(tioner)-223(is)-222(obtained)-222(b)28(y)-222(applying)-222(the)-223(smo)-27(other)]TJ 0 -13.549 Td [(b)-28(efore)-239(and)-239(after)-239(the)-240(coarse-lev)28(el)-239(correction.)-413(In)-239(this)-240(case,)-258(the)-239(preconditioner)-239(is)-239(symme)-1(tr)1(ic)]TJ 0 -13.549 Td [(if)]TJ/F22 10.9091 Tf 10 0 Td [(A)]TJ/F15 10.9091 Tf 8.182 0 Td [(,)]TJ/F22 10.9091 Tf 6.666 0 Td [(M)]TJ/F20 7.9701 Tf 10.584 -1.689 Td [(1)]TJ/F23 7.9701 Tf 4.234 0 Td [(L)]TJ/F15 10.9091 Tf 9.893 1.689 Td [(and)]TJ/F22 10.9091 Tf 21.213 0 Td [(M)]TJ/F23 7.9701 Tf 10.583 -1.689 Td [(C)]TJ/F15 10.9091 Tf 10.733 1.689 Td [(are)-333(symmetric.)]TJ -75.152 -13.892 Td [(As)-533(previou)1(s)-1(l)1(y)-533(noted,)-582(on)-533(parallel)-532(computers)-533(the)-532(n)28(um)27(b)-27(er)-533(of)-532(submatrices)-533(usually)]TJ -16.936 -13.549 Td [(matc)28(hes)-307(the)-307(n)28(um)28(b)-28(er)-307(of)-307(a)28(v)56(ailable)-307(pro)-28(cessors.)-436(When)-307(t)1(he)-307(size)-307(of)-307(the)-307(system)-307(to)-307(b)-28(e)-306(precon-)]TJ 0 -13.55 Td [(ditioned)-300(is)-300(v)28(ery)-300(large,)-307(the)-300(use)-301(of)-300(man)28(y)-300(pro)-28(cessors,)-307(i.e.)-300(of)-300(man)28(y)-300(small)-300(submatrices,)-307(often)]TJ 0 -13.549 Td [(leads)-314(to)-314(a)-314(large)-314(coarse-lev)28(el)-314(syste)-1(m,)-317(whose)-314(s)-1(olu)1(tion)-314(ma)27(y)-314(b)-27(e)-314(com)-1(p)1(utationally)-314(exp)-28(ensiv)28(e.)]TJ 0 -13.549 Td [(On)-385(the)-384(other)-385(hand,)-397(the)-385(use)-385(of)-384(few)-385(pro)-28(cessors)-385(often)-384(leads)-385(to)-385(lo)-27(cal)-385(sumatrices)-385(that)-384(are)]TJ 0 -13.549 Td [(to)-28(o)-424(exp)-28(ensiv)28(e)-424(to)-424(b)-28(e)-424(pro)-27(cesse)-1(d)-423(on)-424(single)-424(pro)-28(cessors,)-447(b)-28(ecause)-424(of)-424(memory)-424(and/or)-424(com-)]TJ 0 -13.549 Td [(puting)-324(requiremen)28(ts.)-441(Therefore,)-326(it)-324(seems)-324(natural)-324(to)-324(use)-324(a)-323(rec)-1(u)1(rs)-1(i)1(v)27(e)-324(approac)28(h,)-326(i)1(n)-324(whic)27(h)]TJ 0 -13.55 Td [(the)-394(coarse-)-1(l)1(e)-1(v)28(el)-394(correction)-395(is)-394(re-applied)-394(starting)-395(from)-394(the)-394(curren)27(t)-394(coarse-lev)28(el)-395(system.)]TJ 0 -13.549 Td [(The)-321(corresp)-28(onding)-320(preconditioners,)-324(called)]TJ/F18 10.9091 Tf 202.455 0 Td [(multi-level)]TJ/F15 10.9091 Tf 53.694 0 Td [(preconditioners,)-323(can)-321(signi\014can)28(tly)]TJ -256.149 -13.549 Td [(reduce)-282(the)-283(computational)-282(cost)-282(of)-283(preconditioning)-282(with)-282(resp)-28(ect)-283(to)-282(the)-282(t)28(w)27(o-lev)28(el)-282(case)-283(\050see)]TJ 0 -13.549 Td [([)]TJ +1 0 0 rg 1 0 0 RG + [(20)]TJ +0 g 0 G + [(,)-320(Chapter)-317(3]\051.)-439(Additiv)28(e)-318(and)-317(h)28(ybrid)-317(m)28(ultilev)28(el)-317(preconditioners)-317(are)-317(obtained)-317(as)-318(direct)]TJ 0 -13.549 Td [(extensions)-359(of)-359(the)-359(t)28(w)27(o-lev)28(el)-359(coun)28(terparts.)-522(F)84(or)-359(a)-359(detailed)-359(descrition)-359(of)-359(them,)-366(the)-359(reader)]TJ 0 -13.55 Td [(is)-321(referred)-321(to)-321([)]TJ +1 0 0 rg 1 0 0 RG + [(20)]TJ +0 g 0 G + [(,)-324(Ch)1(apter)-321(3].)-441(The)-321(algorithm)-321(for)-321(the)-321(application)-321(of)-321(a)-321(m)28(ulti-lev)28(el)-321(h)28(ybrid)]TJ 0 -13.549 Td [(p)-28(ost-smo)-28(othed)-335(preconditioner)]TJ/F22 10.9091 Tf 145.676 0 Td [(M)]TJ/F15 10.9091 Tf 15.428 0 Td [(to)-335(a)-335(v)28(e)-1(ctor)]TJ/F22 10.9091 Tf 55.241 0 Td [(v)]TJ/F15 10.9091 Tf 5.68 0 Td [(,)-336(i.)1(e)-1(.)-335(for)-335(the)-335(computation)-335(of)]TJ/F22 10.9091 Tf 135.91 0 Td [(w)]TJ/F15 10.9091 Tf 11.167 0 Td [(=)]TJ/F22 10.9091 Tf 11.548 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 3.959 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F22 10.9091 Tf 4.732 -3.959 Td [(v)]TJ/F15 10.9091 Tf 5.68 0 Td [(,)]TJ -409.421 -13.549 Td [(is)-425(rep)-28(orted,)-448(for)-425(example,)-448(in)-425(Figure)]TJ +0 0 1 rg 0 0 1 RG + [-425(1)]TJ +0 g 0 G + [(.)-720(Here)-425(the)-425(n)28(um)27(b)-27(er)-425(of)-425(le)-1(v)28(els)-425(is)-425(denoted)-425(b)28(y)]TJ/F22 10.9091 Tf 391.674 0 Td [(nl)-20(ev)]TJ/F15 10.9091 Tf -391.674 -13.549 Td [(and)-410(the)-411(lev)28(els)-411(are)-410(n)28(um)27(b)-27(ered)-411(in)-410(increasing)-411(order)-410(starting)-411(from)-410(the)-411(\014n)1(e)-1(st)-410(one,)-430(i.e.)-410(the)]TJ 0 -13.549 Td [(\014nest)-361(lev)28(el)-361(is)-362(l)1(e)-1(v)28(el)-361(1;)-375(the)-361(coarse)-361(matrix)-361(and)-361(the)-361(corresp)-28(onding)-361(basic)-361(preconditioner)-361(at)]TJ 0 -13.55 Td [(eac)28(h)-415(lev)28(el)]TJ/F22 10.9091 Tf 51.17 0 Td [(l)]TJ/F15 10.9091 Tf 7.994 0 Td [(are)-415(denoted)-415(b)28(y)]TJ/F22 10.9091 Tf 77.241 0 Td [(A)]TJ/F23 7.9701 Tf 8.182 -1.777 Td [(l)]TJ/F15 10.9091 Tf 7.644 1.777 Td [(and)]TJ/F22 10.9091 Tf 22.101 0 Td [(M)]TJ/F23 7.9701 Tf 10.583 -1.777 Td [(l)]TJ/F15 10.9091 Tf 3.12 1.777 Td [(,)-435(resp)-28(ectiv)28(ely)83(,)-435(with)]TJ/F22 10.9091 Tf 96.23 0 Td [(A)]TJ/F20 7.9701 Tf 8.182 -1.636 Td [(1)]TJ/F15 10.9091 Tf 9.243 1.636 Td [(=)]TJ/F22 10.9091 Tf 12.995 0 Td [(A)]TJ/F15 10.9091 Tf 8.182 0 Td [(,)-435(while)-415(the)-415(related)]TJ -322.867 -13.549 Td [(restriction)-333(op)-28(erator)-333(is)-334(denoted)-333(b)28(y)]TJ/F22 10.9091 Tf 163.576 0 Td [(R)]TJ/F23 7.9701 Tf 8.283 -1.777 Td [(l)]TJ/F15 10.9091 Tf 3.12 1.777 Td [(.)]TJ/F17 11.9552 Tf -174.979 -31.172 Td [(4.2)-1125(Smo)-31(othed)-375(Aggregation)]TJ/F15 10.9091 Tf 0 -21.261 Td [(In)-411(order)-411(to)-411(de\014ne)-411(the)-411(restriction)-411(op)-27(erator)]TJ/F22 10.9091 Tf 207.99 0 Td [(R)]TJ/F23 7.9701 Tf 8.283 -1.689 Td [(C)]TJ/F15 10.9091 Tf 7.097 1.689 Td [(,)-430(whic)27(h)-411(is)-411(used)-411(to)-411(compu)1(te)-412(th)1(e)-411(c)-1(oar)1(s)-1(e-)]TJ -223.37 -13.549 Td [(lev)28(el)-281(matrix)]TJ/F22 10.9091 Tf 59.188 0 Td [(A)]TJ/F23 7.9701 Tf 8.182 -1.689 Td [(C)]TJ/F15 10.9091 Tf 7.096 1.689 Td [(,)-291(MLD2P4)-281(uses)-281(the)]TJ/F18 10.9091 Tf 93.551 0 Td [(smo)51(othe)51(d)-309(aggr)51(e)51(gation)]TJ/F15 10.9091 Tf 103.876 0 Td [(algorithm)-281(describ)-28(ed)-280(in)-281([)]TJ +1 0 0 rg 1 0 0 RG + [(1)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-281(24)]TJ +0 g 0 G + [(].)]TJ -271.893 -13.549 Td [(The)-443(basic)-442(idea)-443(of)-443(this)-442(algorithm)-443(is)-442(to)-443(build)-443(a)-442(coarse)-443(set)-443(of)-442(v)27(erti)1(c)-1(es)]TJ/F22 10.9091 Tf 335.939 0 Td [(W)]TJ/F23 7.9701 Tf 10.303 -1.689 Td [(C)]TJ/F15 10.9091 Tf 11.925 1.689 Td [(b)28(y)-443(suitably)]TJ -358.167 -13.55 Td [(grouping)-329(the)-330(v)28(ertices)-330(of)]TJ/F22 10.9091 Tf 116.02 0 Td [(W)]TJ/F15 10.9091 Tf 15.414 0 Td [(in)28(to)-330(disjoin)28(t)-329(subsets)-330(\050aggregates\051,)-331(an)1(d)-330(to)-330(de\014ne)-329(the)-330(coarse-)]TJ -131.434 -13.549 Td [(to-\014ne)-253(space)-254(transfer)-253(op)-28(erator)]TJ/F22 10.9091 Tf 144.031 0 Td [(R)]TJ/F23 7.9701 Tf 8.367 3.959 Td [(T)]TJ -0.084 -7.192 Td [(C)]TJ/F15 10.9091 Tf 9.862 3.233 Td [(b)28(y)-254(applyin)1(g)-254(a)-253(s)-1(u)1(itable)-254(smo)-28(other)-253(to)-254(a)-253(simple)-254(piecewise)]TJ -162.176 -13.549 Td [(constan)28(t)-334(p)1(rolongation)-334(op)-27(erator,)-334(to)-333(impro)28(v)28(e)-334(the)-333(qualit)28(y)-333(of)-334(the)-333(coarse-space)-334(correction.)]TJ 16.936 -13.892 Td [(Three)-333(main)-334(steps)-333(can)-333(b)-28(e)-334(id)1(e)-1(n)28(ti\014ed)-333(in)-333(the)-334(smo)-27(othed)-334(aggregation)-333(pro)-28(cedure:)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +300 0 obj << +/Type /Page +/Contents 301 0 R +/Resources 299 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 238 0 R +/Annots [ 294 0 R 295 0 R 296 0 R 297 0 R 298 0 R ] +>> endobj +294 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [88.434 362.989 101.335 372.012] +/Subtype /Link +/A << /S /GoTo /D (cite.dd2_96) >> +>> endobj +295 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [152.728 335.891 165.63 344.914] +/Subtype /Link +/A << /S /GoTo /D (cite.dd2_96) >> +>> endobj +296 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [259.518 306.671 266.965 318.361] +/Subtype /Link +/A << /S /GoTo /D (figure.1) >> +>> endobj +297 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [469.336 188.614 476.783 197.636] +/Subtype /Link +/A << /S /GoTo /D (cite.BREZINA_VANEK) >> +>> endobj +298 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [480.885 188.614 493.787 197.636] +/Subtype /Link +/A << /S /GoTo /D (cite.VANEK_MANDEL_BREZINA) >> +>> endobj +302 0 obj << +/D [300 0 R /XYZ 86.4 740.002 null] +>> endobj +54 0 obj << +/D [300 0 R /XYZ 86.4 236.589 null] +>> endobj +299 0 obj << +/Font << /F15 123 0 R /F41 124 0 R /F18 173 0 R /F22 175 0 R /F26 272 0 R /F20 273 0 R /F23 271 0 R /F28 275 0 R /F25 176 0 R /F17 111 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +312 0 obj << +/Length 10473 +>> +stream +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F41 10.9091 Tf 93.6 740.002 Td [(4)]TJ +0 g 0 G + [-378(Mul)67(ti-level)-378(Domain)-378(Decompo)1(siti)-1(o)1(n)-378(Ba)22(ck)22(gr)22(ound)]TJ/F15 10.9091 Tf 401.542 0 Td [(13)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +/F22 9.9626 Tf -322.451 -45.783 Td [(v)]TJ/F7 6.9738 Tf 4.829 -1.495 Td [(1)]TJ/F15 9.9626 Tf 7.237 1.495 Td [(=)]TJ/F22 9.9626 Tf 10.516 0 Td [(v)]TJ/F15 9.9626 Tf 5.187 0 Td [(;)]TJ/F43 9.9626 Tf -27.769 -17.625 Td [(for)]TJ/F22 9.9626 Tf 17.767 0 Td [(l)]TJ/F15 9.9626 Tf 5.936 0 Td [(=)-278(2)]TJ/F22 9.9626 Tf 15.497 0 Td [(;)-167(nl)-19(ev)]TJ/F43 9.9626 Tf 27.221 0 Td [(do)]TJ/F15 9.9626 Tf -56.458 -14.789 Td [(!)-444(transfer)]TJ/F22 9.9626 Tf 44.112 0 Td [(v)]TJ/F10 6.9738 Tf 4.829 -1.495 Td [(l)]TJ/F13 6.9738 Tf 2.56 0 Td [(\000)]TJ/F7 6.9738 Tf 6.227 0 Td [(1)]TJ/F15 9.9626 Tf 7.79 1.495 Td [(to)-333(the)-334(next)-333(coarser)-333(lev)27(el)]TJ/F22 9.9626 Tf -65.518 -11.956 Td [(v)]TJ/F10 6.9738 Tf 4.829 -1.494 Td [(l)]TJ/F15 9.9626 Tf 5.825 1.494 Td [(=)]TJ/F22 9.9626 Tf 10.516 0 Td [(R)]TJ/F10 6.9738 Tf 7.565 -1.494 Td [(l)]TJ/F22 9.9626 Tf 3.058 1.494 Td [(v)]TJ/F10 6.9738 Tf 4.829 -1.494 Td [(l)]TJ/F13 6.9738 Tf 2.56 0 Td [(\000)]TJ/F7 6.9738 Tf 6.227 0 Td [(1)]TJ/F43 9.9626 Tf -55.372 -13.295 Td [(endfor)]TJ/F15 9.9626 Tf 0 -17.625 Td [(!)-444(apply)-334(the)-333(coarsest-lev)28(el)-334(correction)]TJ/F22 9.9626 Tf 0 -15.177 Td [(y)]TJ/F10 6.9738 Tf 4.885 -1.494 Td [(nl)-6(ev)]TJ/F15 9.9626 Tf 18.765 1.494 Td [(=)]TJ/F22 9.9626 Tf 10.516 0 Td [(A)]TJ/F13 6.9738 Tf 7.472 4.262 Td [(\000)]TJ/F7 6.9738 Tf 6.227 0 Td [(1)]TJ/F10 6.9738 Tf -6.227 -7.267 Td [(nl)-6(ev)]TJ/F22 9.9626 Tf 15.998 3.005 Td [(v)]TJ/F10 6.9738 Tf 4.829 -1.494 Td [(nl)-6(ev)]TJ/F43 9.9626 Tf -62.465 -16.131 Td [(for)]TJ/F22 9.9626 Tf 17.767 0 Td [(l)]TJ/F15 9.9626 Tf 5.936 0 Td [(=)]TJ/F22 9.9626 Tf 10.516 0 Td [(nl)-20(ev)]TJ/F25 9.9626 Tf 21.188 0 Td [(\000)]TJ/F15 9.9626 Tf 9.962 0 Td [(1)]TJ/F22 9.9626 Tf 4.982 0 Td [(;)]TJ/F15 9.9626 Tf 4.428 0 Td [(1)]TJ/F22 9.9626 Tf 4.981 0 Td [(;)]TJ/F25 9.9626 Tf 4.428 0 Td [(\000)]TJ/F15 9.9626 Tf 7.749 0 Td [(1)]TJ/F43 9.9626 Tf 8.8 0 Td [(do)]TJ/F15 9.9626 Tf -90.774 -14.789 Td [(!)-444(transfer)]TJ/F22 9.9626 Tf 44.112 0 Td [(y)]TJ/F10 6.9738 Tf 4.885 -1.495 Td [(l)]TJ/F7 6.9738 Tf 2.56 0 Td [(+1)]TJ/F15 9.9626 Tf 13.906 1.495 Td [(to)-333(the)-334(next)-333(\014ner)-333(lev)28(e)-1(l)]TJ/F22 9.9626 Tf -65.463 -11.968 Td [(y)]TJ/F10 6.9738 Tf 4.884 -1.494 Td [(l)]TJ/F15 9.9626 Tf 5.826 1.494 Td [(=)]TJ/F22 9.9626 Tf 10.516 0 Td [(R)]TJ/F10 6.9738 Tf 7.641 3.616 Td [(T)]TJ -0.077 -6.437 Td [(l)]TJ/F7 6.9738 Tf 2.56 0 Td [(+1)]TJ/F22 9.9626 Tf 10.586 2.821 Td [(y)]TJ/F10 6.9738 Tf 4.884 -1.494 Td [(l)]TJ/F7 6.9738 Tf 2.56 0 Td [(+1)]TJ/F15 9.9626 Tf 10.585 1.494 Td [(;)]TJ -59.965 -14.855 Td [(!)-444(com)-1(p)1(ute)-334(the)-333(residual)-333(at)-334(the)-333(curren)28(t)-334(lev)28(el)]TJ/F22 9.9626 Tf 0 -12.342 Td [(r)]TJ/F10 6.9738 Tf 4.495 -1.495 Td [(l)]TJ/F15 9.9626 Tf 5.825 1.495 Td [(=)]TJ/F22 9.9626 Tf 10.516 0 Td [(v)]TJ/F10 6.9738 Tf 4.829 -1.495 Td [(l)]TJ/F25 9.9626 Tf 5.272 1.495 Td [(\000)]TJ/F22 9.9626 Tf 9.963 0 Td [(A)]TJ/F13 6.9738 Tf 7.472 4.262 Td [(\000)]TJ/F7 6.9738 Tf 6.226 0 Td [(1)]TJ/F10 6.9738 Tf -6.226 -7.268 Td [(l)]TJ/F22 9.9626 Tf 10.696 3.006 Td [(y)]TJ/F10 6.9738 Tf 4.884 -1.495 Td [(l)]TJ/F15 9.9626 Tf 3.058 1.495 Td [(;)]TJ -67.01 -14.79 Td [(!)-444(apply)-334(the)-333(basic)-333(Sc)27(h)28(w)28(arz)-333(preconditioner)-334(to)-333(the)-333(residual)]TJ/F22 9.9626 Tf 0 -12.343 Td [(r)]TJ/F10 6.9738 Tf 4.495 -1.494 Td [(l)]TJ/F15 9.9626 Tf 5.825 1.494 Td [(=)]TJ/F22 9.9626 Tf 10.516 0 Td [(M)]TJ/F13 6.9738 Tf 10.751 4.262 Td [(\000)]TJ/F7 6.9738 Tf 6.227 0 Td [(1)]TJ/F10 6.9738 Tf -7.313 -7.267 Td [(l)]TJ/F22 9.9626 Tf 11.782 3.005 Td [(r)]TJ/F10 6.9738 Tf 4.495 -1.494 Td [(l)]TJ/F15 9.9626 Tf -46.778 -13.295 Td [(!)-444(up)-28(date)]TJ/F22 9.9626 Tf 40.681 0 Td [(y)]TJ/F10 6.9738 Tf 4.884 -1.495 Td [(l)]TJ/F22 9.9626 Tf -45.565 -10.461 Td [(y)]TJ/F10 6.9738 Tf 4.884 -1.494 Td [(l)]TJ/F15 9.9626 Tf 5.826 1.494 Td [(=)]TJ/F22 9.9626 Tf 10.516 0 Td [(y)]TJ/F10 6.9738 Tf 4.884 -1.494 Td [(l)]TJ/F15 9.9626 Tf 5.272 1.494 Td [(+)]TJ/F22 9.9626 Tf 9.963 0 Td [(r)]TJ/F10 6.9738 Tf 4.495 -1.494 Td [(l)]TJ/F43 9.9626 Tf -55.803 -10.461 Td [(endfor)]TJ/F22 9.9626 Tf 0 -14.79 Td [(w)]TJ/F15 9.9626 Tf 10.168 0 Td [(=)]TJ/F22 9.9626 Tf 10.516 0 Td [(y)]TJ/F7 6.9738 Tf 4.885 -1.494 Td [(1)]TJ/F15 9.9626 Tf 4.469 1.494 Td [(;)]TJ +ET +q +1 0 0 1 165.668 714.896 cm +[]0 d 0 J 0.398 w 0 0 m 268.316 0 l S +Q +q +1 0 0 1 165.867 443.282 cm +[]0 d 0 J 0.398 w 0 0 m 0 271.614 l S +Q +q +1 0 0 1 433.785 443.282 cm +[]0 d 0 J 0.398 w 0 0 m 0 271.614 l S +Q +q +1 0 0 1 165.668 443.282 cm +[]0 d 0 J 0.398 w 0 0 m 268.316 0 l S +Q +0 g 0 G +BT +/F15 10.9091 Tf 114.174 424.548 Td [(Figure)-333(1:)-445(Application)-333(of)-333(the)-333(m)27(ulti-lev)28(el)-333(h)28(ybrid)-334(p)-27(ost-smo)-28(othed)-334(p)1(re)-1(cond)1(itioner.)]TJ +0 g 0 G +0 g 0 G +0 g 0 G + -7.24 -42.981 Td [(1.)]TJ +0 g 0 G + [-500(coarsening)-333(of)-334(the)-333(v)28(ertex)-333(se)-1(t)]TJ/F22 10.9091 Tf 148.666 0 Td [(W)]TJ/F15 10.9091 Tf 11.819 0 Td [(,)-333(to)-334(obtain)]TJ/F22 10.9091 Tf 53.939 0 Td [(W)]TJ/F23 7.9701 Tf 10.303 -1.689 Td [(C)]TJ/F15 10.9091 Tf 7.097 1.689 Td [(;)]TJ +0 g 0 G + -231.824 -21.526 Td [(2.)]TJ +0 g 0 G + [-500(construction)-333(of)-333(the)-334(prolongator)]TJ/F22 10.9091 Tf 166.515 0 Td [(R)]TJ/F23 7.9701 Tf 8.367 3.959 Td [(T)]TJ -0.084 -7.192 Td [(C)]TJ/F15 10.9091 Tf 7.097 3.233 Td [(;)]TJ +0 g 0 G + -181.895 -21.526 Td [(3.)]TJ +0 g 0 G + [-500(application)-333(of)]TJ/F22 10.9091 Tf 82.727 0 Td [(R)]TJ/F23 7.9701 Tf 8.283 -1.689 Td [(C)]TJ/F15 10.9091 Tf 10.733 1.689 Td [(and)]TJ/F22 10.9091 Tf 21.212 0 Td [(R)]TJ/F23 7.9701 Tf 8.368 3.959 Td [(T)]TJ -0.084 -7.192 Td [(C)]TJ/F15 10.9091 Tf 10.733 3.233 Td [(to)-333(build)]TJ/F22 10.9091 Tf 41.212 0 Td [(A)]TJ/F23 7.9701 Tf 8.182 -1.689 Td [(C)]TJ/F15 10.9091 Tf 7.097 1.689 Td [(.)]TJ -194.86 -20.041 Td [(T)83(o)-426(p)-28(erform)-426(the)-426(coarsening)-426(s)-1(tep,)-449(w)28(e)-427(ha)28(v)28(e)-426(implemen)27(ted)-426(the)-426(aggregation)-426(algorithm)]TJ -16.937 -13.549 Td [(sk)28(etc)27(hed)-388(in)-388([)]TJ +1 0 0 rg 1 0 0 RG + [(4)]TJ +0 g 0 G + [(].)-610(According)-389(to)-388([)]TJ +1 0 0 rg 1 0 0 RG + [(24)]TJ +0 g 0 G + [(],)-403(a)-388(mo)-28(di\014cation)-388(of)-389(this)-388(algorithm)-389(h)1(as)-389(b)-28(een)-388(actually)]TJ 0 -13.55 Td [(considered,)-257(in)-237(whic)28(h)-238(eac)28(h)-237(aggregate)]TJ/F22 10.9091 Tf 169.041 0 Td [(N)]TJ/F23 7.9701 Tf 8.765 -1.636 Td [(r)]TJ/F15 10.9091 Tf 7.145 1.636 Td [(is)-237(m)-1(ad)1(e)-238(of)-237(v)27(ertices)-237(of)]TJ/F22 10.9091 Tf 99.164 0 Td [(W)]TJ/F15 10.9091 Tf 14.409 0 Td [(that)-237(are)]TJ/F18 10.9091 Tf 39.757 0 Td [(str)51(ongly)-269(c)51(ouple)51(d)]TJ/F15 10.9091 Tf -338.281 -13.549 Td [(to)-333(a)-334(certain)-333(ro)-28(ot)-333(v)28(ertex)]TJ/F22 10.9091 Tf 115.243 0 Td [(r)]TJ/F25 10.9091 Tf 8.255 0 Td [(2)]TJ/F22 10.9091 Tf 10.303 0 Td [(W)]TJ/F15 10.9091 Tf 11.818 0 Td [(,)-333(i.e.)]TJ/F22 10.9091 Tf -39.684 -23.653 Td [(N)]TJ/F23 7.9701 Tf 8.765 -1.636 Td [(r)]TJ/F15 10.9091 Tf 7.585 1.636 Td [(=)]TJ/F28 10.9091 Tf 11.515 12.11 Td [(n)]TJ/F22 10.9091 Tf 7.273 -12.11 Td [(s)]TJ/F25 10.9091 Tf 8.144 0 Td [(2)]TJ/F22 10.9091 Tf 10.303 0 Td [(W)]TJ/F15 10.9091 Tf 14.848 0 Td [(:)]TJ/F25 10.9091 Tf 6.061 0 Td [(j)]TJ/F22 10.9091 Tf 3.03 0 Td [(a)]TJ/F23 7.9701 Tf 5.767 -1.636 Td [(r)-29(s)]TJ/F25 10.9091 Tf 8.47 1.636 Td [(j)]TJ/F22 10.9091 Tf 6.061 0 Td [(>)-278(\022)]TJ/F28 10.9091 Tf 16.939 9.86 Td [(p)]TJ +ET +q +1 0 0 1 325.205 264.251 cm +[]0 d 0 J 0.436 w 0 0 m 34.535 0 l S +Q +BT +/F25 10.9091 Tf 325.205 254.173 Td [(j)]TJ/F22 10.9091 Tf 3.031 0 Td [(a)]TJ/F23 7.9701 Tf 5.766 -1.636 Td [(r)-29(r)]TJ/F22 10.9091 Tf 8.611 1.636 Td [(a)]TJ/F23 7.9701 Tf 5.767 -1.636 Td [(ss)]TJ/F25 10.9091 Tf 8.33 1.636 Td [(j)]TJ/F28 10.9091 Tf 3.03 12.109 Td [(o)]TJ/F25 10.9091 Tf 9.697 -12.109 Td [([)-222(f)]TJ/F22 10.9091 Tf 15.152 0 Td [(r)]TJ/F25 10.9091 Tf 5.224 0 Td [(g)]TJ/F22 10.9091 Tf 7.273 0 Td [(;)]TJ/F15 10.9091 Tf -303.486 -24.259 Td [(for)-341(a)-341(giv)28(en)]TJ/F22 10.9091 Tf 54.517 0 Td [(\022)]TJ/F25 10.9091 Tf 8.59 0 Td [(2)]TJ/F15 10.9091 Tf 10.439 0 Td [([0)]TJ/F22 10.9091 Tf 8.485 0 Td [(;)]TJ/F15 10.9091 Tf 4.848 0 Td [(1].)-467(Since)-341(th)1(is)-341(algorithm)-341(has)-341(a)-341(sequen)28(tial)-341(natu)1(re,)-343(a)]TJ/F18 10.9091 Tf 242.976 0 Td [(de)51(c)51(ouple)51(d)]TJ/F15 10.9091 Tf 49.172 0 Td [(v)28(ersion)]TJ -379.027 -13.549 Td [(of)-399(it)-399(has)-399(b)-27(ee)-1(n)-398(c)27(hosen,)-415(where)-399(eac)28(h)-399(pro)-28(cessor)]TJ/F22 10.9091 Tf 216.236 0 Td [(i)]TJ/F15 10.9091 Tf 8.111 0 Td [(indep)-28(enden)28(tly)-399(applies)-399(the)-398(algorithm)-399(to)]TJ -224.347 -13.549 Td [(the)-421(set)-421(of)-421(v)28(ertices)]TJ/F22 10.9091 Tf 91.547 0 Td [(W)]TJ/F20 7.9701 Tf 11.818 3.959 Td [(0)]TJ/F23 7.9701 Tf -1.515 -7.014 Td [(i)]TJ/F15 10.9091 Tf 10.839 3.055 Td [(assigned)-421(to)-421(it)-421(in)-420(the)-421(initial)-421(data)-421(distribution.)-707(This)-420(v)27(ersion)-421(i)1(s)]TJ -112.689 -13.549 Td [(em)28(barrassingly)-250(parallel,)-267(since)-250(it)-251(do)-27(es)-251(not)-250(require)-250(an)28(y)-250(data)-251(comm)28(unication.)-416(On)-251(the)-250(other)]TJ 0 -13.549 Td [(hand,)-312(it)-306(ma)28(y)-306(pro)-28(duce)-306(non-uniform)-307(aggr)1(e)-1(gates)-306(near)-306(b)-28(oundary)-306(v)28(ertices,)-312(i.e.)-306(near)-307(v)28(ertices)]TJ 0 -13.55 Td [(adjacen)28(t)-403(to)-403(v)27(ertices)-403(in)-403(other)-403(pro)-28(cessors,)-420(and)-403(is)-404(strongly)-403(dep)-27(enden)27(t)-403(on)-403(the)-403(n)28(um)28(b)-28(er)-403(of)]TJ 0 -13.549 Td [(pro)-28(cessors)-314(and)-314(on)-314(the)-314(initial)-314(partitioning)-314(of)-314(the)-314(matrix)]TJ/F22 10.9091 Tf 263.566 0 Td [(A)]TJ/F15 10.9091 Tf 8.181 0 Td [(.)-438(Nev)28(ertheless,)-318(this)-314(algorithm)]TJ -271.747 -13.549 Td [(has)-260(b)-27(een)-260(c)28(hosen)-260(for)-260(th)1(e)-260(implemen)28(tation)-260(in)-260(MLD)1(2P4,)-275(since)-260(i)1(t)-260(has)-260(b)-27(e)-1(en)-259(sho)28(wn)-260(to)-260(pro)-27(duce)]TJ 0 -13.549 Td [(go)-28(o)-28(d)-333(results)-333(in)-333(practice)-334([)]TJ +1 0 0 rg 1 0 0 RG + [(3)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-333(4)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-333(23)]TJ +0 g 0 G + [(].)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +311 0 obj << +/Type /Page +/Contents 312 0 R +/Resources 310 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 320 0 R +/Annots [ 309 0 R 304 0 R 305 0 R 306 0 R 307 0 R 308 0 R ] +>> endobj +309 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 739.006 100.627 748.453] +/Subtype /Link +/A << /S /GoTo /D (section.4) >> +>> endobj +304 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [153.565 303.928 161.012 312.951] +/Subtype /Link +/A << /S /GoTo /D (cite.apnum_07) >> +>> endobj +305 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [241.15 303.928 254.052 312.951] +/Subtype /Link +/A << /S /GoTo /D (cite.VANEK_MANDEL_BREZINA) >> +>> endobj +306 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [210.968 120.525 218.415 129.547] +/Subtype /Link +/A << /S /GoTo /D (cite.aaecc_07) >> +>> endobj +307 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [223.089 120.525 230.536 129.547] +/Subtype /Link +/A << /S /GoTo /D (cite.apnum_07) >> +>> endobj +308 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [235.21 120.525 248.112 129.547] +/Subtype /Link +/A << /S /GoTo /D (cite.TUMINARO_TONG) >> +>> endobj +313 0 obj << +/D [311 0 R /XYZ 93.6 740.002 null] +>> endobj +303 0 obj << +/D [311 0 R /XYZ 161.932 438.097 null] +>> endobj +317 0 obj << +/D [311 0 R /XYZ 93.6 392.526 null] +>> endobj +318 0 obj << +/D [311 0 R /XYZ 93.6 375.457 null] +>> endobj +319 0 obj << +/D [311 0 R /XYZ 93.6 352.82 null] +>> endobj +310 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F22 175 0 R /F7 314 0 R /F43 158 0 R /F10 315 0 R /F13 316 0 R /F25 176 0 R /F23 271 0 R /F18 173 0 R /F28 275 0 R /F20 273 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +326 0 obj << +/Length 3876 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(14)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +/F15 10.9091 Tf -186.329 -35.866 Td [(The)-277(prolongator)]TJ/F22 10.9091 Tf 80.039 0 Td [(P)]TJ/F23 7.9701 Tf 7.003 -1.688 Td [(C)]TJ/F15 10.9091 Tf 10.127 1.688 Td [(=)]TJ/F22 10.9091 Tf 11.516 0 Td [(R)]TJ/F23 7.9701 Tf 8.367 3.959 Td [(T)]TJ -0.084 -7.191 Td [(C)]TJ/F15 10.9091 Tf 10.116 3.232 Td [(is)-277(built)-276(starting)-277(from)-277(a)]TJ/F18 10.9091 Tf 109.52 0 Td [(tentative)-306(pr)51(olongator)]TJ/F22 10.9091 Tf 102.594 0 Td [(P)]TJ/F25 10.9091 Tf 11.55 0 Td [(2)-278(<)]TJ/F23 7.9701 Tf 18.181 3.959 Td [(n)]TJ/F26 7.9701 Tf 5.138 0 Td [(\002)]TJ/F23 7.9701 Tf 6.587 0 Td [(n)]TJ/F24 5.9776 Tf 5.138 -1.339 Td [(C)]TJ/F15 10.9091 Tf 6.693 -2.62 Td [(,)]TJ -409.421 -13.549 Td [(de\014ned)-333(as)]TJ/F22 10.9091 Tf 114.818 -17.818 Td [(P)]TJ/F15 10.9091 Tf 11.549 0 Td [(=)-278(\050)]TJ/F22 10.9091 Tf 15.758 0 Td [(p)]TJ/F23 7.9701 Tf 5.489 -1.637 Td [(ij)]TJ/F15 10.9091 Tf 7.265 1.637 Td [(\051)]TJ/F22 10.9091 Tf 4.242 0 Td [(;)-1167(p)]TJ/F23 7.9701 Tf 21.247 -1.637 Td [(ij)]TJ/F15 10.9091 Tf 10.295 1.637 Td [(=)]TJ/F28 10.9091 Tf 11.515 15.381 Td [(\032)]TJ/F15 10.9091 Tf 13.163 -9.135 Td [(1)-1913(if)]TJ/F22 10.9091 Tf 35.721 0 Td [(i)]TJ/F25 10.9091 Tf 6.788 0 Td [(2)]TJ/F22 10.9091 Tf 10.303 0 Td [(V)]TJ/F23 7.9701 Tf 8.788 5.307 Td [(j)]TJ -2.424 -8.741 Td [(C)]TJ/F15 10.9091 Tf -59.176 -10.116 Td [(0)-1913(otherwise)]TJ/F22 10.9091 Tf 79.261 7.304 Td [(:)]TJ +0 g 0 G +/F15 10.9091 Tf 103.909 0 Td [(\0502\051)]TJ +0 g 0 G +/F22 10.9091 Tf -398.511 -27.614 Td [(P)]TJ/F23 7.9701 Tf 7.003 -1.689 Td [(C)]TJ/F15 10.9091 Tf 10.734 1.689 Td [(is)-333(obtained)-334(b)28(y)-333(applying)-333(to)]TJ/F22 10.9091 Tf 128.848 0 Td [(P)]TJ/F15 10.9091 Tf 12.156 0 Td [(a)-333(smo)-28(other)]TJ/F22 10.9091 Tf 56.757 0 Td [(S)]TJ/F25 10.9091 Tf 10.349 0 Td [(2)-278(<)]TJ/F23 7.9701 Tf 18.181 3.958 Td [(n)]TJ/F26 7.9701 Tf 5.139 0 Td [(\002)]TJ/F23 7.9701 Tf 6.586 0 Td [(n)]TJ/F15 10.9091 Tf 5.636 -3.958 Td [(:)]TJ/F22 10.9091 Tf -79.223 -24.508 Td [(P)]TJ/F23 7.9701 Tf 7.003 -1.689 Td [(C)]TJ/F15 10.9091 Tf 10.127 1.689 Td [(=)]TJ/F22 10.9091 Tf 11.516 0 Td [(S)-58(P)-27(;)]TJ +0 g 0 G +/F15 10.9091 Tf 187.699 0 Td [(\0503\051)]TJ +0 g 0 G + -398.511 -24.509 Td [(in)-303(order)-303(to)-303(remo)27(v)28(e)-303(oscillatory)-303(comp)-28(onen)28(ts)-303(from)-304(th)1(e)-304(range)-303(of)-303(the)-303(prolongator)-303(and)-303(hence)]TJ 0 -13.549 Td [(to)-433(impro)28(v)27(e)-433(the)-433(con)27(v)28(ergence)-433(prop)-28(erties)-433(of)-433(the)-434(m)28(ulti-lev)28(el)-433(Sc)27(h)28(w)28(arz)-433(me)-1(th)1(o)-28(d)-434([)]TJ +1 0 0 rg 1 0 0 RG + [1(1)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-434(22)]TJ +0 g 0 G + [(].)-744(A)]TJ 0 -13.549 Td [(simple)-333(c)27(hoice)-333(for)]TJ/F22 10.9091 Tf 83.121 0 Td [(S)]TJ/F15 10.9091 Tf 10.954 0 Td [(is)-333(the)-334(damp)-27(ed)-334(Jacobi)-333(smo)-28(other:)]TJ/F22 10.9091 Tf 71.293 -24.508 Td [(S)]TJ/F15 10.9091 Tf 10.349 0 Td [(=)]TJ/F22 10.9091 Tf 11.515 0 Td [(I)]TJ/F25 10.9091 Tf 8.075 0 Td [(\000)]TJ/F22 10.9091 Tf 10.91 0 Td [(!)-36(D)]TJ/F26 7.9701 Tf 16.516 4.504 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ/F22 10.9091 Tf 4.732 -4.504 Td [(A;)]TJ +0 g 0 G +/F15 10.9091 Tf 164.459 0 Td [(\0504\051)]TJ +0 g 0 G + -398.511 -24.508 Td [(where)-305(the)-305(v)55(alue)-305(of)]TJ/F22 10.9091 Tf 89.707 0 Td [(!)]TJ/F15 10.9091 Tf 10.51 0 Td [(can)-305(b)-28(e)-305(c)28(hosen)-305(using)-305(some)-306(estimate)-305(of)-305(the)-305(sp)-28(ectral)-305(radius)-305(of)]TJ/F22 10.9091 Tf 283.398 0 Td [(D)]TJ/F26 7.9701 Tf 9.335 3.959 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ/F22 10.9091 Tf 4.732 -3.959 Td [(A)]TJ/F15 10.9091 Tf -404.269 -13.549 Td [([)]TJ +1 0 0 rg 1 0 0 RG + [(1)]TJ +0 g 0 G + [(].)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +325 0 obj << +/Type /Page +/Contents 326 0 R +/Resources 324 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 320 0 R +/Annots [ 321 0 R 322 0 R 323 0 R ] +>> endobj +321 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [451.371 581.593 458.818 590.616] +/Subtype /Link +/A << /S /GoTo /D (cite.BREZINA_VANEK) >> +>> endobj +322 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [464.583 581.593 477.484 590.616] +/Subtype /Link +/A << /S /GoTo /D (cite.StubenGMD69_99) >> +>> endobj +323 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [88.434 505.478 95.881 514.501] +/Subtype /Link +/A << /S /GoTo /D (cite.BREZINA_VANEK) >> +>> endobj +327 0 obj << +/D [325 0 R /XYZ 86.4 740.002 null] +>> endobj +328 0 obj << +/D [325 0 R /XYZ 201.218 686.318 null] +>> endobj +329 0 obj << +/D [325 0 R /XYZ 268.566 634.196 null] +>> endobj +330 0 obj << +/D [325 0 R /XYZ 251.768 558.081 null] +>> endobj +324 0 obj << +/Font << /F15 123 0 R /F41 124 0 R /F22 175 0 R /F23 271 0 R /F18 173 0 R /F25 176 0 R /F26 272 0 R /F24 274 0 R /F28 275 0 R /F20 273 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +346 0 obj << +/Length 8885 +>> +stream +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F41 10.9091 Tf 93.6 740.002 Td [(5)]TJ +0 g 0 G + [-378(Getting)-378(St)67(ar)67(ted)]TJ/F15 10.9091 Tf 401.542 0 Td [(15)]TJ +0 g 0 G +/F17 14.3462 Tf -401.542 -35.866 Td [(5)-1125(Getting)-375(Started)]TJ/F15 10.9091 Tf 0 -24.352 Td [(W)83(e)-441(describ)-28(e)-441(the)-442(basics)-441(for)-441(building)-442(and)-441(applying)-441(MLD2P4)-441(one-lev)27(el)-441(and)-441(m)27(ult)1(i-)-1(l)1(e)-1(v)28(el)]TJ 0 -13.549 Td [(Sc)28(h)28(w)27(arz)-313(preconditioners)-313(with)-313(the)-313(Krylo)28(v)-313(solv)27(ers)-313(included)-313(in)-313(PSBLAS)-313([)]TJ +1 0 0 rg 1 0 0 RG + [(14)]TJ +0 g 0 G + [(].)-438(Th)1(e)-314(follo)28(w-)]TJ 0 -13.549 Td [(ing)-333(steps)-334(are)-333(required:)]TJ +0 g 0 G + 13.334 -21.06 Td [(1.)]TJ +0 g 0 G +/F18 10.9091 Tf 13.939 0 Td [(De)51(clar)51(e)-370(the)-371(pr)51(e)51(c)51(onditioner)-370(data)-371(structur)51(e)]TJ/F15 10.9091 Tf 195.447 0 Td [(.)-487(It)-347(is)-347(a)-348(deriv)28(ed)-347(data)-348(t)28(yp)-28(e,)]TJ/F44 10.9091 Tf 131.812 0 Td [(mld_)]TJ/F18 10.9091 Tf 22.909 0 Td [(x)]TJ/F44 10.9091 Tf 6.374 0 Td [(prec_)]TJ -356.542 -13.55 Td [(type)]TJ/F15 10.9091 Tf 22.909 0 Td [(,)-321(w)-1(h)1(e)-1(r)1(e)]TJ/F18 10.9091 Tf 37.922 0 Td [(x)]TJ/F15 10.9091 Tf 9.849 0 Td [(ma)28(y)-319(b)-28(e)]TJ/F44 10.9091 Tf 38.163 0 Td [(s)]TJ/F15 10.9091 Tf 5.727 0 Td [(,)]TJ/F44 10.9091 Tf 6.538 0 Td [(d)]TJ/F15 10.9091 Tf 5.727 0 Td [(,)]TJ/F44 10.9091 Tf 6.538 0 Td [(c)]TJ/F15 10.9091 Tf 9.202 0 Td [(or)]TJ/F44 10.9091 Tf 13.203 0 Td [(z)]TJ/F15 10.9091 Tf 5.727 0 Td [(,)-322(accordi)1(ng)-319(to)-319(the)-318(basic)-319(data)-318(t)28(yp)-28(e)-319(of)-318(the)-319(sparse)]TJ -161.505 -13.549 Td [(matrix)-372(\050)]TJ/F44 10.9091 Tf 40.153 0 Td [(s)]TJ/F15 10.9091 Tf 9.79 0 Td [(=)-372(real)-373(single)-372(precision;)]TJ/F44 10.9091 Tf 114.22 0 Td [(d)]TJ/F15 10.9091 Tf 9.79 0 Td [(=)-372(real)-373(double)-372(precision;)]TJ/F44 10.9091 Tf 119.008 0 Td [(c)]TJ/F15 10.9091 Tf 9.789 0 Td [(=)-372(complex)-373(single)]TJ -302.75 -13.549 Td [(precision;)]TJ/F44 10.9091 Tf 48.807 0 Td [(z)]TJ/F15 10.9091 Tf 9.518 0 Td [(=)-347(c)-1(omplex)-347(double)-347(precision\051.)-487(This)-348(data)-347(structure)-348(is)-347(accessed)-348(b)28(y)-347(the)]TJ -58.325 -13.549 Td [(user)-333(only)-334(throu)1(gh)-334(the)-333(MLD2P4)-333(routines,)-334(foll)1(o)27(wing)-333(an)-333(ob)-56(ject-orien)28(ted)-333(approac)27(h)1(.)]TJ +0 g 0 G + -13.939 -21.934 Td [(2.)]TJ +0 g 0 G +/F18 10.9091 Tf 13.939 0 Td [(A)26(l)-52(l)1(o)51(c)51(ate)-364(and)-365(ini)1(t)-1(i)1(alize)-364(t)-1(he)-364(pr)52(e)51(c)51(onditioner)-364(data)-364(structur)51(e,)-366(ac)51(c)51(or)51(ding)-364(to)-364(a)-364(pr)51(e)51(c)51(ondi-)]TJ 0 -13.549 Td [(tioner)-376(typ)51(e)-376(chosen)-375(by)-376(the)-376(user)]TJ/F15 10.9091 Tf 144.005 0 Td [(.)-503(This)-353(is)-353(p)-28(erformed)-353(b)28(y)-353(the)-353(routine)]TJ/F44 10.9091 Tf 169.416 0 Td [(mld_precinit)]TJ/F15 10.9091 Tf 68.727 0 Td [(,)]TJ -382.148 -13.549 Td [(whic)28(h)-406(also)-406(sets)-406(d)1(e)-1(f)1(aults)-406(for)-406(eac)28(h)-406(preconditioner)-405(t)27(yp)-27(e)-406(selected)-406(b)28(y)-406(the)-406(user.)-661(The)]TJ 0 -13.549 Td [(defaults)-404(asso)-28(ciated)-403(to)-404(eac)27(h)-403(preconditioner)-404(t)28(yp)-28(e)-404(are)-404(giv)28(en)-404(in)-403(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-404(1)]TJ +0 g 0 G + [(,)-421(where)-404(the)]TJ 0 -13.549 Td [(strings)-305(used)-306(b)28(y)]TJ/F44 10.9091 Tf 74.446 0 Td [(mld_precinit)]TJ/F15 10.9091 Tf 72.056 0 Td [(to)-305(iden)28(tify)-306(the)-305(preconditioner)-305(t)28(yp)-28(es)-305(are)-306(also)-305(giv)28(en.)]TJ -146.502 -13.55 Td [(Note)-352(that)-353(these)-352(strings)-352(are)-353(v)56(alid)-352(also)-353(if)-352(upp)-28(ercase)-352(letters)-352(are)-353(substituted)-352(b)28(y)-352(c)-1(or)1(-)]TJ 0 -13.549 Td [(resp)-28(onding)-333(lo)28(w)28(ercas)-1(e)-333(ones.)]TJ +0 g 0 G + -13.939 -21.933 Td [(3.)]TJ +0 g 0 G +/F18 10.9091 Tf 13.939 0 Td [(Mo)51(dify)-340(the)-341(sele)51(cte)52(d)-341(pr)51(e)51(c)51(onditioner)-340(typ)51(e,)-344(by)-340(pr)51(op)51(erly)-340(setting)-341(pr)51(e)52(c)51(onditioner)-341(p)51(ar)51(am-)]TJ 0 -13.549 Td [(eters.)]TJ/F15 10.9091 Tf 30.668 0 Td [(This)-266(is)-265(p)-28(erformed)-265(b)27(y)-265(the)-266(routine)]TJ/F44 10.9091 Tf 155.17 0 Td [(mld_precset)]TJ/F15 10.9091 Tf 62.999 0 Td [(.)-422(This)-265(routine)-266(m)28(ust)-266(b)-27(e)-266(called)]TJ -248.837 -13.55 Td [(only)-364(if)-365(the)-364(user)-365(w)28(an)28(ts)-365(to)-364(mo)-28(dify)-365(t)1(he)-365(default)-364(v)55(alues)-364(of)-365(the)-364(parameters)-365(asso)-28(ciated)]TJ 0 -13.549 Td [(to)-468(the)-467(selected)-468(preconditioner)-467(t)27(yp)-27(e,)-502(to)-467(obtain)-468(a)-467(v)55(arian)28(t)-468(of)-467(the)-468(preconditioner.)]TJ 0 -13.549 Td [(Examples)-395(of)-394(use)-395(of)]TJ/F44 10.9091 Tf 95.977 0 Td [(mld_precset)]TJ/F15 10.9091 Tf 67.304 0 Td [(are)-395(giv)28(en)-394(in)-395(Section)]TJ +0 0 1 rg 0 0 1 RG + [-395(5.1)]TJ +0 g 0 G + [(;)-425(a)-394(com)-1(p)1(le)-1(t)1(e)-395(list)-395(of)-394(all)]TJ -163.281 -13.549 Td [(the)-303(preconditioner)-302(parameters)-303(and)-303(their)-302(allo)27(w)28(ed)-303(and)-302(default)-303(v)56(alues)-303(is)-303(pro)28(vided)-303(in)]TJ 0 -13.549 Td [(Section)]TJ +0 0 1 rg 0 0 1 RG + [-333(6)]TJ +0 g 0 G + [(,)-334(T)84(ables)]TJ +0 0 1 rg 0 0 1 RG + [-334(2)]TJ +0 g 0 G + [(-)]TJ +0 0 1 rg 0 0 1 RG + [(5)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G + -13.939 -21.934 Td [(4.)]TJ +0 g 0 G +/F18 10.9091 Tf 13.939 0 Td [(Build)-457(the)-457(pr)51(e)51(c)51(onditioner)-457(for)-457(a)-457(given)-457(matrix.)]TJ/F15 10.9091 Tf 223.323 0 Td [(This)-441(is)-442(p)-27(erformed)-441(b)27(y)-441(the)-441(routine)]TJ/F44 10.9091 Tf -223.323 -13.549 Td [(mld_precbld)]TJ/F15 10.9091 Tf 62.999 0 Td [(.)]TJ +0 g 0 G + -76.938 -21.933 Td [(5.)]TJ +0 g 0 G +/F18 10.9091 Tf 13.939 0 Td [(Apply)-282(the)-281(pr)51(e)51(c)51(onditioner)-281(at)-282(e)51(ach)-282(iter)52(ation)-282(of)-282(a)-281(Krylov)-282(solver.)]TJ/F15 10.9091 Tf 288.311 0 Td [(This)-251(is)-250(p)-28(erformed)-250(b)27(y)]TJ -288.311 -13.55 Td [(the)-340(routine)]TJ/F44 10.9091 Tf 56.544 0 Td [(mld_precaply)]TJ/F15 10.9091 Tf 68.727 0 Td [(.)-465(When)-340(using)-340(the)-341(PSBLAS)-340(Krylo)28(v)-340(solv)28(ers,)-342(this)-341(step)-340(is)]TJ -125.271 -13.549 Td [(completely)-302(transparen)28(t)-301(to)-302(the)-302(user,)-308(since)]TJ/F44 10.9091 Tf 196.451 0 Td [(mld_precaply)]TJ/F15 10.9091 Tf 72.018 0 Td [(is)-302(called)-301(b)27(y)-301(the)-302(PSBLAS)]TJ -268.469 -13.549 Td [(routine)-333(implemen)28(ting)-334(the)-333(Krylo)28(v)-334(solv)28(er)-333(\050)]TJ/F44 10.9091 Tf 195.909 0 Td [(psb_krylov)]TJ/F15 10.9091 Tf 57.272 0 Td [(\051.)]TJ +0 g 0 G + -267.12 -21.933 Td [(6.)]TJ +0 g 0 G +/F18 10.9091 Tf 13.939 0 Td [(F)77(r)51(e)51(e)-459(the)-459(pr)51(e)51(c)51(onditioner)-459(data)-459(structur)51(e)]TJ/F15 10.9091 Tf 183.971 0 Td [(.)-775(This)-443(is)-444(p)-28(erfor)1(m)-1(ed)-443(b)28(y)-444(the)-443(routine)]TJ/F44 10.9091 Tf 178.298 0 Td [(mld_)]TJ -362.269 -13.55 Td [(precfree)]TJ/F15 10.9091 Tf 45.818 0 Td [(.)-501(This)-353(step)-352(is)-353(complemen)28(tary)-352(to)-353(step)-352(1)-352(and)-353(should)-352(b)-28(e)-352(p)-28(erformed)-352(when)]TJ -45.818 -13.549 Td [(the)-333(preconditioner)-334(i)1(s)-334(no)-333(more)-334(u)1(s)-1(ed.)]TJ -27.273 -21.06 Td [(A)-384(detailed)-384(description)-384(of)-384(the)-384(ab)-28(o)28(v)28(e)-384(routines)-384(is)-384(giv)27(en)-384(in)-384(Section)]TJ +0 0 1 rg 0 0 1 RG + [-384(6)]TJ +0 g 0 G + [(.)-596(Examples)-384(sho)28(w)-1(i)1(ng)]TJ 0 -13.549 Td [(the)-333(basic)-334(use)-333(of)-333(MLD2P4)-334(are)-333(rep)-28(orted)-333(in)-333(Section)]TJ +0 0 1 rg 0 0 1 RG + [-334(5.1)]TJ +0 g 0 G + [(.)]TJ 16.937 -13.549 Td [(Note)-421(that)-422(the)-421(F)83(ortran)-421(95)-422(mo)-28(dule)]TJ/F44 10.9091 Tf 167.194 0 Td [(mld_prec_mod)]TJ/F15 10.9091 Tf 68.726 0 Td [(,)-444(con)28(taining)-421(the)-422(de\014n)1(ition)-422(of)-421(the)]TJ -252.857 -13.549 Td [(preconditioner)-351(data)-351(t)28(yp)-28(e)-351(an)1(d)-351(the)-351(in)28(terfaces)-351(to)-351(the)-351(routines)-351(of)-351(MLD2P4,)-355(m)28(ust)-351(b)-28(e)-351(used)]TJ 0 -13.55 Td [(in)-245(an)28(y)-246(progr)1(am)-246(calling)-245(suc)28(h)-245(routines.)-415(The)-246(mo)-27(dules)]TJ/F44 10.9091 Tf 240.498 0 Td [(psb_base_mod)]TJ/F15 10.9091 Tf 68.726 0 Td [(,)-263(for)-245(the)-245(sparse)-246(matrix)]TJ -309.224 -13.549 Td [(and)-405(c)-1(omm)28(unication)-405(descriptor)-406(data)-405(t)28(yp)-28(es,)-424(and)]TJ/F44 10.9091 Tf 231.165 0 Td [(psb_krylov_mod)]TJ/F15 10.9091 Tf 80.181 0 Td [(,)-424(for)-405(in)28(terfacing)-406(with)]TJ -311.346 -13.549 Td [(the)-333(Krylo)28(v)-334(solv)28(ers,)-333(m)27(ust)-333(b)-28(e)-333(also)-333(used)-334(\050see)-333(Section)]TJ +0 0 1 rg 0 0 1 RG + [-334(5.)1(1)]TJ +0 g 0 G + [(\051.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +345 0 obj << +/Type /Page +/Contents 346 0 R +/Resources 344 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 320 0 R +/Annots [ 343 0 R 331 0 R 332 0 R 333 0 R 334 0 R 335 0 R 336 0 R 337 0 R 338 0 R 339 0 R ] +>> endobj +343 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 739.006 100.627 748.453] +/Subtype /Link +/A << /S /GoTo /D (section.5) >> +>> endobj +331 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [429.591 665.239 442.493 674.261] +/Subtype /Link +/A << /S /GoTo /D (cite.PSBLASGUIDE) >> +>> endobj +332 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [444.507 511.73 451.954 523.42] +/Subtype /Link +/A << /S /GoTo /D (table.1) >> +>> endobj +333 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [383.439 394.65 399.37 406.642] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.1) >> +>> endobj +334 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [158.059 367.854 165.506 379.544] +/Subtype /Link +/A << /S /GoTo /D (section.6) >> +>> endobj +335 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [204.483 367.854 211.93 379.544] +/Subtype /Link +/A << /S /GoTo /D (table.2) >> +>> endobj +336 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [213.574 367.854 221.021 379.544] +/Subtype /Link +/A << /S /GoTo /D (table.5) >> +>> endobj +337 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [401.963 199.699 409.41 211.388] +/Subtype /Link +/A << /S /GoTo /D (section.6) >> +>> endobj +338 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [330.241 186.149 346.172 197.839] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.1) >> +>> endobj +339 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [334.544 117.797 350.475 130.699] +/Subtype /Link +/A << /S /GoTo /D (subsection.5.1) >> +>> endobj +347 0 obj << +/D [345 0 R /XYZ 93.6 740.002 null] +>> endobj +58 0 obj << +/D [345 0 R /XYZ 93.6 715.095 null] +>> endobj +348 0 obj << +/D [345 0 R /XYZ 93.6 647.246 null] +>> endobj +349 0 obj << +/D [345 0 R /XYZ 93.6 571.115 null] +>> endobj +350 0 obj << +/D [345 0 R /XYZ 93.6 467.887 null] +>> endobj +351 0 obj << +/D [345 0 R /XYZ 93.6 364.658 null] +>> endobj +352 0 obj << +/D [345 0 R /XYZ 93.6 328.873 null] +>> endobj +353 0 obj << +/D [345 0 R /XYZ 93.6 265.989 null] +>> endobj +344 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F17 111 0 R /F18 173 0 R /F44 200 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +361 0 obj << +/Length 8615 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(16)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +/F43 10.9091 Tf -203.265 -49.415 Td [(Remark)-396(1.)]TJ/F15 10.9091 Tf 62.779 0 Td [(The)-344(coarsest-lev)27(el)-344(solv)28(er)-344(used)-344(b)27(y)-344(the)-344(default)-344(t)28(w)28(o-le)-1(v)28(el)-344(preconditioner)-344(has)]TJ -62.779 -13.549 Td [(b)-28(een)-432(c)28(hosen)-432(b)28(y)-432(tak)1(ing)-432(in)28(to)-432(accoun)28(t)-432(that,)-456(on)-432(parallel)-432(mac)28(hines,)-456(it)-432(often)-432(leads)-432(to)-432(th)1(e)]TJ 0 -13.549 Td [(smallest)-422(execution)-421(time)-422(when)-422(applied)-421(to)-422(linear)-421(systems)-422(coming)-422(from)-421(\014nite-di\013erence)]TJ 0 -13.549 Td [(discretizations)-376(of)-376(basic)-376(elliptic)-376(PDE)-376(problems,)-387(considered)-376(as)-376(standard)-376(tests)-376(for)-376(m)28(ulti-)]TJ 0 -13.55 Td [(lev)28(el)-224(Sc)28(h)28(w)28(arz)-224(precondition)1(e)-1(r)1(s)-224([)]TJ +1 0 0 rg 1 0 0 RG + [(3)]TJ +0 g 0 G + [(,)]TJ +1 0 0 rg 1 0 0 RG + [-223(4)]TJ +0 g 0 G + [(].)-408(Ho)28(w)28(ev)27(er,)-245(this)-223(solv)27(er)-223(do)-28(es)-223(not)-224(n)1(e)-1(cessarily)-223(corresp)-28(ond)]TJ 0 -13.549 Td [(to)-446(the)-447(smallest)-446(n)27(um)28(b)-28(er)-446(of)-446(iterations)-447(of)-446(the)-447(preconditioned)-446(Krylo)28(v)-447(metho)-27(d,)-475(whic)28(h)-447(is)]TJ 0 -13.549 Td [(usually)-334(obtained)-334(b)28(y)-334(applying)-334(a)-334(direct)-335(solv)28(er)-334(to)-334(the)-334(coarsest-lev)27(el)-334(system,)-334(e.g.)-334(based)-335(on)]TJ 0 -13.549 Td [(the)-312(LU)-312(f)1(ac)-1(t)1(orization)-312(\050see)-312(Section)]TJ +0 0 1 rg 0 0 1 RG + [-312(6)]TJ +0 g 0 G + [-312(for)-311(the)-312(coarsest-lev)28(e)-1(l)-311(solv)27(ers)-311(a)27(v)56(ailable)-312(in)-311(MLD2P4\051.)]TJ/F43 10.9091 Tf 0 -27.099 Td [(Remark)-421(2.)]TJ/F15 10.9091 Tf 63.76 0 Td [(The)-366(include)-366(path)-365(for)-366(MLD2P4)-366(m)28(ust)-366(o)28(v)28(e)-1(r)1(ride)-366(those)-366(for)-366(PSBLAS,)-366(i.e.)-366(the)]TJ -63.76 -13.549 Td [(former)-311(m)28(ust)-310(come)-311(\014rst)-311(in)-310(the)-311(sequence)-310(passed)-311(to)-310(the)-311(compiler,)-315(as)-311(the)-310(MLD2P4)-311(v)28(ersion)]TJ 0 -13.549 Td [(of)-483(the)-484(Krylo)28(v)-484(solv)28(er)-483(in)27(terf)1(ac)-1(es)-483(m)28(ust)-484(o)28(v)28(erride)-484(that)-483(of)-484(PSBLAS.)-483(This)-484(will)-483(c)28(hange)-484(in)]TJ 0 -13.549 Td [(the)-384(f)1(uture)-384(when)-383(the)-384(supp)-28(ort)-383(for)-384(the)]TJ/F44 10.9091 Tf 178.228 0 Td [(class)]TJ/F15 10.9091 Tf 32.82 0 Td [(statemen)28(t)-384(b)-28(ecomes)-383(widespread)-384(in)-383(F)83(ortran)]TJ -211.048 -13.549 Td [(compilers.)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +ET +q +1 0 0 1 98.323 500.465 cm +[]0 d 0 J 0.398 w 0 0 m 388.604 0 l S +Q +q +1 0 0 1 98.323 486.717 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F41 10.9091 Tf 104.301 490.782 Td [(type)]TJ +ET +q +1 0 0 1 196.097 486.717 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F41 10.9091 Tf 202.074 490.782 Td [(string)]TJ +ET +q +1 0 0 1 253.87 486.717 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F41 10.9091 Tf 259.847 490.782 Td [(def)89(a)22(ul)67(t)-378(preconditioner)]TJ +ET +q +1 0 0 1 486.927 486.717 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +q +1 0 0 1 98.323 486.517 cm +[]0 d 0 J 0.398 w 0 0 m 388.604 0 l S +Q +q +1 0 0 1 98.323 459.22 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 104.301 476.834 Td [(No)-333(preconditioner)]TJ +ET +q +1 0 0 1 196.097 459.22 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 202.074 476.834 Td [('NOPREC')]TJ +ET +q +1 0 0 1 253.87 459.22 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 259.847 476.834 Td [(Considered)-507(only)-507(to)-507(use)-508(th)1(e)-508(PSBLAS)-507(Kr)1(ylo)27(v)]TJ 0 -13.549 Td [(solv)28(ers)-334(with)-333(no)-333(preconditioner.)]TJ +ET +q +1 0 0 1 486.927 459.22 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +q +1 0 0 1 98.323 459.021 cm +[]0 d 0 J 0.398 w 0 0 m 388.604 0 l S +Q +q +1 0 0 1 98.323 445.272 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F15 10.9091 Tf 104.301 449.337 Td [(Diagonal)]TJ +ET +q +1 0 0 1 196.097 445.272 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F44 10.9091 Tf 202.074 449.337 Td [('DIAG')]TJ +ET +q +1 0 0 1 253.87 445.272 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F15 10.9091 Tf 259.847 449.337 Td [(|)]TJ +ET +q +1 0 0 1 486.927 445.272 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +q +1 0 0 1 98.323 445.073 cm +[]0 d 0 J 0.398 w 0 0 m 388.604 0 l S +Q +q +1 0 0 1 98.323 431.324 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F15 10.9091 Tf 104.301 435.389 Td [(Blo)-28(c)28(k)-333(Jacobi)]TJ +ET +q +1 0 0 1 196.097 431.324 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F44 10.9091 Tf 202.074 435.389 Td [('BJAC')]TJ +ET +q +1 0 0 1 253.87 431.324 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F15 10.9091 Tf 259.847 435.389 Td [(Blo)-28(c)28(k)-333(Jacobi)-334(with)-333(ILU\0500\051)-333(on)-334(the)-333(lo)-28(cal)-333(blo)-28(c)28(ks.)]TJ +ET +q +1 0 0 1 486.927 431.324 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +q +1 0 0 1 98.323 431.125 cm +[]0 d 0 J 0.398 w 0 0 m 388.604 0 l S +Q +q +1 0 0 1 98.323 403.828 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 104.301 421.442 Td [(Additiv)28(e)-333(Sc)27(h)28(w)28(arz)]TJ +ET +q +1 0 0 1 196.097 403.828 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 202.074 421.442 Td [('AS')]TJ +ET +q +1 0 0 1 253.87 403.828 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 259.847 421.442 Td [(Restricted)-268(Ad)1(ditiv)27(e)-267(Sc)28(h)28(w)27(arz)-267(\050RAS\051,)-268(wit)1(h)-268(o)28(v)28(er-)]TJ 0 -13.55 Td [(lap)-333(1)-334(and)-333(ILU\0500\051)-333(on)-333(the)-334(lo)-28(cal)-333(blo)-28(c)28(ks.)]TJ +ET +q +1 0 0 1 486.927 403.828 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +q +1 0 0 1 98.323 403.628 cm +[]0 d 0 J 0.398 w 0 0 m 388.604 0 l S +Q +q +1 0 0 1 98.323 227.29 cm +[]0 d 0 J 0.398 w 0 0 m 0 176.14 l S +Q +BT +/F15 10.9091 Tf 104.301 393.945 Td [(Multilev)28(el)]TJ +ET +q +1 0 0 1 196.097 227.29 cm +[]0 d 0 J 0.398 w 0 0 m 0 176.14 l S +Q +BT +/F44 10.9091 Tf 202.074 393.945 Td [('ML')]TJ +ET +q +1 0 0 1 253.87 227.29 cm +[]0 d 0 J 0.398 w 0 0 m 0 176.14 l S +Q +BT +/F15 10.9091 Tf 259.847 393.945 Td [(Multi-lev)28(el)-378(h)28(ybrid)-377(preconditioner)-377(\050additiv)28(e)-378(on)]TJ 0 -13.549 Td [(the)-390(s)-1(ame)-390(lev)28(el)-391(and)-390(m)28(ultiplicativ)28(e)-391(through)-390(the)]TJ 0 -13.55 Td [(lev)28(els\051,)-405(with)-391(p)-27(ost-s)-1(mo)-27(othing)-391(only)84(.)-616(Num)27(b)-27(er)-391(of)]TJ 0 -13.549 Td [(lev)28(els:)-511(2.)-543(P)28(ost-smo)-28(other:)-510(RAS)-366(with)-366(o)28(v)27(erlap)-366(1)]TJ 0 -13.549 Td [(and)-395(ILU\0500\051)-395(on)-396(the)-395(lo)-28(cal)-395(blo)-28(c)28(ks.)-630(Aggregation:)]TJ 0 -13.549 Td [(decoupled)-417(smo)-28(othed)-417(aggregation)-416(w)-1(i)1(th)-417(thresh-)]TJ 0 -13.549 Td [(old)]TJ/F22 10.9091 Tf 17.695 0 Td [(\022)]TJ/F15 10.9091 Tf 8.454 0 Td [(=)-278(0.)-429(Coarsest)-289(matrix:)-422(distributed)-289(among)]TJ -26.149 -13.55 Td [(the)-339(pro)-28(cessors.)-461(Coarses)-1(t-lev)28(el)-339(solv)28(er:)-456(4)-339(sw)28(eeps)]TJ 0 -13.549 Td [(of)-290(the)-289(blo)-28(c)28(k-Jacobi)-290(solv)28(er,)-299(with)-289(LU)-290(or)-289(ILU)-290(fac-)]TJ 0 -13.549 Td [(torization)-506(of)-505(the)-506(blo)-28(c)28(ks)-506(\050UMFP)84(A)27(CK)-505(for)-506(the)]TJ 0 -13.549 Td [(double)-329(precision)-330(v)28(ersions)-329(and)-329(Sup)-28(erLU)-329(for)-330(the)]TJ 0 -13.549 Td [(single)-291(precision)-292(ones,)-300(if)-291(the)-291(pac)27(k)56(ages)-292(h)1(a)27(v)28(e)-291(b)-28(een)]TJ 0 -13.55 Td [(installed;)-333(ILU\0500\051,)-334(otherwise\051.)]TJ +ET +q +1 0 0 1 486.927 227.29 cm +[]0 d 0 J 0.398 w 0 0 m 0 176.14 l S +Q +q +1 0 0 1 98.323 227.09 cm +[]0 d 0 J 0.398 w 0 0 m 388.604 0 l S +Q +0 g 0 G +BT +/F15 10.9091 Tf 116.11 196.401 Td [(T)83(able)-333(1:)-444(Preconditioner)-334(t)28(yp)-28(es,)-333(corresp)-28(onding)-333(strings)-333(and)-333(default)-334(c)28(hoices.)]TJ +0 g 0 G +0 g 0 G +/F17 11.9552 Tf -29.71 -40.736 Td [(5.1)-1125(Examples)]TJ/F15 10.9091 Tf 0 -20.595 Td [(The)-340(co)-28(de)-340(rep)-28(or)1(te)-1(d)-339(in)-340(Figure)]TJ +0 0 1 rg 0 0 1 RG + [-340(2)]TJ +0 g 0 G + [-340(sho)28(ws)-341(h)1(o)27(w)-340(to)-340(set)-340(and)-340(apply)-339(the)-340(default)-340(m)27(u)1(lti-le)-1(v)28(el)-340(pre-)]TJ 0 -13.549 Td [(conditioner)-257(a)27(v)56(ailable)-258(in)-257(the)-258(real)-258(d)1(ouble)-258(precision)-258(v)28(ersion)-257(of)-258(MLD2P4)-258(\050see)-257(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-258(1)]TJ +0 g 0 G + [(\051.)-419(This)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +360 0 obj << +/Type /Page +/Contents 361 0 R +/Resources 359 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 320 0 R +/Annots [ 340 0 R 341 0 R 342 0 R 357 0 R 358 0 R ] +>> endobj +340 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [228.32 635.394 235.767 644.417] +/Subtype /Link +/A << /S /GoTo /D (cite.aaecc_07) >> +>> endobj +341 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [239.242 635.394 246.689 644.417] +/Subtype /Link +/A << /S /GoTo /D (cite.apnum_07) >> +>> endobj +342 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [245.076 592.019 252.523 604.921] +/Subtype /Link +/A << /S /GoTo /D (section.6) >> +>> endobj +357 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [224.493 131.953 231.94 143.642] +/Subtype /Link +/A << /S /GoTo /D (figure.2) >> +>> endobj +358 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [459.281 117.797 466.728 130.699] +/Subtype /Link +/A << /S /GoTo /D (table.1) >> +>> endobj +362 0 obj << +/D [360 0 R /XYZ 86.4 740.002 null] +>> endobj +354 0 obj << +/D [360 0 R /XYZ 159.443 209.95 null] +>> endobj +62 0 obj << +/D [360 0 R /XYZ 86.4 167.491 null] +>> endobj +359 0 obj << +/Font << /F15 123 0 R /F41 124 0 R /F43 158 0 R /F44 200 0 R /F22 175 0 R /F17 111 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +378 0 obj << +/Length 8948 +>> +stream +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F41 10.9091 Tf 93.6 740.002 Td [(5)]TJ +0 g 0 G + [-378(Getting)-378(St)67(ar)67(ted)]TJ/F15 10.9091 Tf 401.542 0 Td [(17)]TJ +0 g 0 G + -401.542 -35.866 Td [(preconditioner)-238(is)-238(c)28(hosen)-238(b)28(y)-238(simply)-238(sp)-27(ecifying)]TJ/F44 10.9091 Tf 212.539 0 Td [('ML')]TJ/F15 10.9091 Tf 25.503 0 Td [(as)-238(second)-238(argumen)28(t)-238(of)]TJ/F44 10.9091 Tf 105.683 0 Td [(mld_precinit)]TJ/F15 10.9091 Tf -343.725 -13.549 Td [(\050a)-359(call)-360(to)]TJ/F44 10.9091 Tf 47.52 0 Td [(mld_precset)]TJ/F15 10.9091 Tf 66.92 0 Td [(is)-359(not)-360(needed\051)-359(and)-360(is)-359(applied)-359(with)-360(the)-359(BiCGST)83(AB)-359(solv)28(er)-360(pro-)]TJ -114.44 -13.549 Td [(vided)-301(b)28(y)-301(PSBLAS.)-301(As)-301(previously)-301(observ)28(ed,)-308(the)-301(mo)-27(dules)]TJ/F44 10.9091 Tf 268.614 0 Td [(psb_base_mod)]TJ/F15 10.9091 Tf 68.726 0 Td [(,)]TJ/F44 10.9091 Tf 6.385 0 Td [(mld_prec_mod)]TJ/F15 10.9091 Tf -343.725 -13.549 Td [(and)]TJ/F44 10.9091 Tf 21.212 0 Td [(psb_krylov_mod)]TJ/F15 10.9091 Tf 83.818 0 Td [(m)28(ust)-334(b)-27(e)-334(used)-333(b)28(y)-333(the)-334(example)-333(program.)]TJ -88.093 -13.549 Td [(The)-395(part)-395(of)-395(the)-395(co)-28(de)-395(concerning)-395(the)-395(reading)-395(and)-395(assem)27(b)1(ling)-395(of)-396(th)1(e)-396(sparse)-395(matrix)]TJ -16.937 -13.55 Td [(and)-457(the)-456(righ)27(t-hand)-456(side)-457(v)28(ector,)-488(p)-28(erformed)-456(through)-457(the)-457(PSBLAS)-456(routines)-457(for)-457(sparse)]TJ 0 -13.549 Td [(matrix)-385(and)-385(v)28(ector)-386(managemen)28(t,)-398(is)-385(not)-385(rep)-28(orted)-385(here)-385(for)-385(brevit)27(y)1(;)-412(th)1(e)-386(statemen)28(ts)-385(con-)]TJ 0 -13.549 Td [(cerning)-265(the)-264(deallo)-28(cation)-265(of)-264(the)-265(PSBLAS)-265(d)1(ata)-265(structure)-265(are)-264(negle)-1(cted)-264(to)-28(o.)-422(The)-264(complete)]TJ 0 -13.549 Td [(co)-28(de)-306(can)-307(b)-28(e)-306(found)-306(in)-307(the)-306(example)-307(program)-306(\014le)]TJ/F44 10.9091 Tf 223.485 0 Td [(mld_dexample_ml.f90)]TJ/F15 10.9091 Tf 108.817 0 Td [(,)-312(in)-306(the)-307(directory)]TJ/F44 10.9091 Tf -332.302 -13.549 Td [(examples/fileread)]TJ/F15 10.9091 Tf 101.625 0 Td [(of)-391(the)-390(MLD2P4)-391(tree)-391(\050see)-391(Section)]TJ +0 0 1 rg 0 0 1 RG + [-390(3.5)]TJ +0 g 0 G + [(\051.)-617(F)83(or)-390(details)-391(on)-391(the)-390(use)-391(of)]TJ -101.625 -13.55 Td [(the)-333(PSBLAS)-334(rout)1(ines)-1(,)-333(see)-333(the)-334(PSBLAS)-333(User's)-333(Guide)-334([)]TJ +1 0 0 rg 1 0 0 RG + [(14)]TJ +0 g 0 G + [(].)]TJ 16.937 -13.549 Td [(The)-461(setup)-460(and)-461(application)-460(of)-461(the)-460(default)-461(m)28(ulti-lev)28(el)-461(preconditioners)-460(for)-461(the)-460(real)]TJ -16.937 -13.549 Td [(single)-450(precis)-1(i)1(on)-451(and)-450(the)-451(complex,)-479(single)-451(and)-450(double)-451(precision,)-479(v)27(ersion)1(s)-451(are)-450(obtained)]TJ 0 -13.549 Td [(with)-352(straigh)27(tforw)28(ard)-352(mo)-28(di\014cations)-352(of)-353(the)-352(previous)-353(example)-352(\050see)-353(Section)]TJ +0 0 1 rg 0 0 1 RG + [-352(6)]TJ +0 g 0 G + [-353(for)-352(details\051.)]TJ 0 -13.549 Td [(If)-503(these)-502(v)27(ersions)-502(are)-503(installed,)-545(the)-503(corresp)-28(on)1(ding)-503(F)83(ortran)-502(95)-503(co)-28(des)-503(ar)1(e)-503(a)28(v)55(ailable)-503(i)1(n)]TJ/F44 10.9091 Tf 0 -13.55 Td [(examples/fileread/)]TJ/F15 10.9091 Tf 103.09 0 Td [(.)]TJ -86.153 -13.549 Td [(Di\013eren)28(t)-270(v)28(ersions)-269(of)-270(m)28(ulti-lev)28(el)-270(precondi)1(tioners)-270(can)-269(b)-28(e)-270(obtai)1(ned)-270(b)28(y)-269(c)27(hanging)-269(the)-269(de-)]TJ -16.937 -13.549 Td [(fault)-273(v)56(alues)-273(of)-272(the)-273(preconditioner)-273(parameters.)-424(The)-273(co)-28(de)-272(rep)-28(orted)-273(in)-272(Figure)]TJ +0 0 1 rg 0 0 1 RG + [-273(3)]TJ +0 g 0 G + [-273(sho)28(ws)-273(ho)28(w)]TJ 0 -13.549 Td [(to)-282(set)-281(a)-282(three-lev)28(el)-281(h)27(ybri)1(d)-282(Sc)28(h)28(w)27(arz)-281(preconditioner,)-292(whic)28(h)-282(u)1(s)-1(es)-281(blo)-28(c)28(k)-282(Jacobi)-281(with)-282(ILU\0500\051)]TJ 0 -13.549 Td [(on)-265(the)-265(lo)-28(cal)-265(blo)-27(c)27(ks)-265(as)-265(p)-27(ost-smo)-28(other,)-279(has)-265(a)-265(coarsest)-265(matrix)-265(replicated)-265(on)-264(the)-265(pro)-28(cessors,)]TJ 0 -13.55 Td [(and)-250(solv)28(es)-251(the)-250(coarsest-lev)28(el)-251(system)-250(with)-250(the)-250(LU)-250(factorization)-251(fr)1(om)-251(UMFP)84(A)27(CK)-250([)]TJ +1 0 0 rg 1 0 0 RG + [(8)]TJ +0 g 0 G + [(].)-416(The)]TJ 0 -13.549 Td [(n)28(um)28(b)-28(er)-362(of)-363(lev)28(els)-362(is)-363(sp)-27(eci\014ed)-363(b)28(y)-362(using)]TJ/F44 10.9091 Tf 182.182 0 Td [(mld_precinit)]TJ/F15 10.9091 Tf 68.726 0 Td [(;)-377(the)-362(other)-362(preconditioner)-362(param-)]TJ -250.908 -13.549 Td [(eters)-351(are)-351(set)-350(b)27(y)-350(calling)]TJ/F44 10.9091 Tf 112.04 0 Td [(mld_precset)]TJ/F15 10.9091 Tf 62.999 0 Td [(.)-497(Note)-350(that)-351(the)-351(t)28(yp)-28(e)-350(of)-351(m)28(ultilev)28(e)-1(l)-350(framew)28(ork)-351(\050i.e.)]TJ -175.039 -13.549 Td [(m)28(ultiplicativ)28(e)-280(among)-279(the)-279(lev)28(els)-280(with)-279(p)-28(ost-smo)-27(othing)-280(only\051)-279(is)-279(not)-279(sp)-28(eci\014ed)-279(since)-280(it)-279(is)-279(the)]TJ 0 -13.549 Td [(default)-333(set)-334(b)28(y)]TJ/F44 10.9091 Tf 68.849 0 Td [(mld_precinit)]TJ/F15 10.9091 Tf 68.726 0 Td [(.)]TJ -120.638 -13.549 Td [(Figure)]TJ +0 0 1 rg 0 0 1 RG + [-301(4)]TJ +0 g 0 G + [-301(sho)28(ws)-301(ho)28(w)-301(to)-301(set)-300(a)-301(three-lev)27(el)-300(additiv)27(e)-300(Sc)27(h)28(w)28(arz)-301(preconditioner,)-307(whic)28(h)-301(uses)]TJ -16.937 -13.55 Td [(RAS,)-433(with)-433(o)28(v)28(erlap)-433(1)-433(and)-433(ILU\0500\051)-433(on)-433(the)-433(b)1(lo)-28(c)27(k)1(s)-1(,)-457(as)-433(pre-)-433(and)-433(p)-28(ost-smo)-28(other,)-457(and)-433(ap-)]TJ 0 -13.549 Td [(plies)-340(\014v)28(e)-340(blo)-28(c)28(k-Jacobi)-340(sw)28(eeps,)-342(with)-340(the)-340(UMFP)83(A)28(CK)-340(LU)-340(factorization)-340(on)-340(th)1(e)-340(blo)-28(c)28(ks,)-342(as)]TJ 0 -13.549 Td [(distributed)-402(coarsest-lev)27(el)-402(solv)28(er.)-652(Again,)]TJ/F44 10.9091 Tf 196.866 0 Td [(mld_precset)]TJ/F15 10.9091 Tf 67.39 0 Td [(is)-402(use)-1(d)-402(only)-402(to)-403(set)-402(non-default)]TJ -264.256 -13.549 Td [(v)56(alues)-271(of)-271(the)-271(p)1(arame)-1(ters)-270(\050see)-271(T)83(ables)]TJ +0 0 1 rg 0 0 1 RG + [-271(2)]TJ +0 g 0 G + [(-)]TJ +0 0 1 rg 0 0 1 RG + [(5)]TJ +0 g 0 G + [(\051.)-423(In)-271(b)-27(oth)-271(cases,)-284(t)1(he)-271(construction)-271(and)-270(the)-271(appli-)]TJ 0 -13.549 Td [(cation)-269(of)-268(the)-269(preconditioner)-269(are)-268(carried)-269(out)-269(as)-269(f)1(or)-269(the)-269(default)-268(m)27(ulti-lev)28(el)-269(preconditi)1(one)-1(r)1(.)]TJ 0 -13.55 Td [(The)-368(co)-28(de)-368(fragmen)28(ts)-368(sho)28(wn)-368(in)-368(in)-368(Figures)]TJ +0 0 1 rg 0 0 1 RG + [-368(3)]TJ +0 g 0 G + [(-)]TJ +0 0 1 rg 0 0 1 RG + [(4)]TJ +0 g 0 G + [-368(are)-368(included)-368(in)-368(the)-368(example)-368(program)-368(\014le)]TJ/F44 10.9091 Tf 0 -13.549 Td [(mld_dexample_ml.f90)]TJ/F15 10.9091 Tf 112.453 0 Td [(to)-28(o.)]TJ -95.516 -13.549 Td [(Finally)84(,)-296(Figure)]TJ +0 0 1 rg 0 0 1 RG + [-286(5)]TJ +0 g 0 G + [-286(sho)28(ws)-286(the)-286(setup)-286(of)-285(a)-286(one-lev)27(el)-286(addi)1(tiv)27(e)-286(Sc)28(h)28(w)28(arz)-286(preconditioner,)-295(i.e.)]TJ -16.937 -13.549 Td [(RAS)-231(with)-231(o)28(v)27(erlap)-231(2.)-410(The)-231(corresp)-28(onding)-231(example)-231(program)-231(is)-232(a)28(v)56(ailable)-231(in)]TJ/F44 10.9091 Tf 337.997 0 Td [(mld_dexample_)]TJ -337.997 -13.549 Td [(1lev.f90)]TJ/F15 10.9091 Tf 45.818 0 Td [(.)]TJ -28.881 -13.55 Td [(F)83(or)-452(all)-452(the)-452(previou)1(s)-453(pr)1(e)-1(cond)1(itioners,)-482(example)-452(programs)-452(where)-452(the)-452(sparse)-452(matrix)]TJ -16.937 -13.549 Td [(and)-370(the)-371(righ)28(t-hand)-371(side)-370(are)-371(generated)-370(b)27(y)-370(discretizing)-371(a)-370(PDE)-371(with)-370(Diric)28(hlet)-371(b)-28(oundary)]TJ 0 -13.549 Td [(conditions)-333(are)-334(also)-333(a)28(v)55(ailabl)1(e)-334(in)-333(the)-333(directory)]TJ/F44 10.9091 Tf 215.061 0 Td [(examples/pdegen)]TJ/F15 10.9091 Tf 85.908 0 Td [(.)]TJ/F43 10.9091 Tf -300.969 -27.098 Td [(Remark)-319(3.)]TJ/F15 10.9091 Tf 61.378 0 Td [(An)28(y)-277(PSBLAS-based)-277(program)-277(using)-278(th)1(e)-278(basic)-277(preconditioners)-277(implemen)28(ted)]TJ -61.378 -13.55 Td [(in)-269(PSBLAS)-270(2.0,)-282(i.e.)-269(the)-269(diagonal)-270(and)-269(blo)-28(c)28(k-Jacobi)-269(ones,)-283(can)-269(use)-269(the)-270(diagonal)-269(and)-269(blo)-28(c)28(k-)]TJ 0 -13.549 Td [(Jacobi)-337(preconditioners)-337(implemen)28(ted)-337(in)-337(MLD2P4)-337(without)-336(an)27(y)-337(c)28(hange)-337(in)-337(the)-337(co)-27(de.)-456(The)]TJ 0 -13.549 Td [(PSBLAS-based)-333(program)-334(m)28(ust)-333(b)-28(e)-333(only)-333(rec)-1(ompil)1(e)-1(d)-333(and)-333(link)28(ed)-334(to)-333(the)-333(MLD2P4)-333(library)83(.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +377 0 obj << +/Type /Page +/Contents 378 0 R +/Resources 376 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 320 0 R +/Annots [ 375 0 R 364 0 R 365 0 R 366 0 R 367 0 R 368 0 R 369 0 R 370 0 R 371 0 R 372 0 R 373 0 R 374 0 R ] +>> endobj +375 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 739.006 100.627 748.453] +/Subtype /Link +/A << /S /GoTo /D (section.5) >> +>> endobj +364 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [358.228 578.47 374.16 591.372] +/Subtype /Link +/A << /S /GoTo /D (subsection.3.5) >> +>> endobj +365 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [352.377 567.648 365.279 576.671] +/Subtype /Link +/A << /S /GoTo /D (cite.PSBLASGUIDE) >> +>> endobj +366 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [440.607 524.273 448.054 537.175] +/Subtype /Link +/A << /S /GoTo /D (section.6) >> +>> endobj +367 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [446.862 470.683 454.309 482.372] +/Subtype /Link +/A << /S /GoTo /D (figure.3) >> +>> endobj +368 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [470.206 432.156 477.653 441.179] +/Subtype /Link +/A << /S /GoTo /D (cite.UMFPACK) >> +>> endobj +369 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [143.61 362.289 151.057 373.978] +/Subtype /Link +/A << /S /GoTo /D (figure.4) >> +>> endobj +370 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [264.868 307.486 272.315 320.388] +/Subtype /Link +/A << /S /GoTo /D (table.2) >> +>> endobj +371 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [273.959 307.486 281.406 320.388] +/Subtype /Link +/A << /S /GoTo /D (table.5) >> +>> endobj +372 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [290.496 280.994 297.943 292.683] +/Subtype /Link +/A << /S /GoTo /D (figure.3) >> +>> endobj +373 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [299.587 280.994 307.034 292.683] +/Subtype /Link +/A << /S /GoTo /D (figure.4) >> +>> endobj +374 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [182.276 253.895 189.723 265.585] +/Subtype /Link +/A << /S /GoTo /D (figure.5) >> +>> endobj +379 0 obj << +/D [377 0 R /XYZ 93.6 740.002 null] +>> endobj +376 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F44 200 0 R /F43 158 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +385 0 obj << +/Length 3387 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(18)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +/F44 9.9626 Tf -172.181 -30.995 Td [(use)-525(psb_base_mod)]TJ 0 -11.955 Td [(use)-525(mld_prec_mod)]TJ 0 -11.955 Td [(use)-525(psb_krylov_mod)]TJ -10.46 -11.956 Td [(...)-525(...)]TJ 0 -11.955 Td [(!)]TJ 0 -11.955 Td [(!)-525(sparse)-525(matrix)]TJ 10.46 -11.955 Td [(type\050psb_dspmat_type\051)-525(::)-525(A)]TJ -10.46 -11.955 Td [(!)-525(sparse)-525(matrix)-525(descriptor)]TJ 10.46 -11.955 Td [(type\050psb_desc_type\051)-1575(::)-525(desc_A)]TJ -10.46 -11.956 Td [(!)-525(preconditioner)]TJ 10.46 -11.955 Td [(type\050mld_dprec_type\051)-1050(::)-525(P)]TJ -10.46 -11.955 Td [(!)-525(right-hand)-525(side)-525(and)-525(solution)-525(vectors)]TJ 10.46 -11.955 Td [(real\050kind\0501.d0\051\051)-3150(::)-525(b\050:\051,)-525(x\050:\051)]TJ -10.46 -11.955 Td [(...)-525(...)]TJ 0 -11.955 Td [(!)]TJ 0 -11.956 Td [(!)-525(initialize)-525(the)-525(parallel)-525(environment)]TJ 10.46 -11.955 Td [(call)-525(psb_init\050ictxt\051)]TJ 0 -11.955 Td [(call)-525(psb_info\050ictxt,iam,np\051)]TJ -10.46 -11.955 Td [(...)-525(...)]TJ 0 -11.955 Td [(!)]TJ 0 -11.955 Td [(!)-525(read)-525(and)-525(assemble)-525(the)-525(matrix)-525(A)-525(and)-525(the)-525(right-hand)-525(side)-525(b)]TJ 0 -11.956 Td [(!)-525(using)-525(PSBLAS)-525(routines)-525(for)-525(sparse)-525(matrix)-525(/)-525(vector)-525(management)]TJ 0 -11.955 Td [(...)-525(...)]TJ 0 -11.955 Td [(!)]TJ 0 -11.955 Td [(!)-525(initialize)-525(the)-525(default)-525(multi-level)-525(preconditioner,)-525(i.e.)-525(hybrid)]TJ 0 -11.955 Td [(!)-525(Schwarz,)-525(using)-525(RAS)-525(\050with)-525(overlap)-525(1)-525(and)-525(ILU\0500\051)-525(on)-525(the)-525(blocks\051)]TJ 0 -11.956 Td [(!)-525(as)-525(post-smoother)-525(and)-525(4)-525(block-Jacobi)-525(sweeps)-525(\050with)-525(UMFPACK)-525(LU)]TJ 0 -11.955 Td [(!)-525(on)-525(the)-525(blocks\051)-525(as)-525(distributed)-525(coarse-level)-525(solver)]TJ 10.46 -11.955 Td [(call)-525(mld_precinit\050P,'ML',info\051)]TJ -10.46 -11.955 Td [(!)]TJ 0 -11.955 Td [(!)-525(build)-525(the)-525(preconditioner)]TJ 10.46 -11.955 Td [(call)-525(mld_precbld\050A,desc_A,P,info\051)]TJ -10.46 -11.956 Td [(!)]TJ 0 -11.955 Td [(!)-525(set)-525(the)-525(solver)-525(parameters)-525(and)-525(the)-525(initial)-525(guess)]TJ 10.46 -11.955 Td [(...)-525(...)]TJ -10.46 -11.955 Td [(!)]TJ 0 -11.955 Td [(!)-525(solve)-525(Ax=b)-525(with)-525(preconditioned)-525(BiCGSTAB)]TJ 10.46 -11.955 Td [(call)-525(psb_krylov\050'BICGSTAB',A,P,b,x,tol,desc_A,info\051)]TJ 0 -11.956 Td [(...)-525(...)]TJ -10.46 -11.955 Td [(!)]TJ 0 -11.955 Td [(!)-525(deallocate)-525(the)-525(preconditioner)]TJ 10.46 -11.955 Td [(call)-525(mld_precfree\050P,info\051)]TJ -10.46 -11.955 Td [(!)]TJ 0 -11.955 Td [(!)-525(deallocate)-525(other)-525(data)-525(structures)]TJ 10.46 -11.956 Td [(...)-525(...)]TJ -10.46 -11.955 Td [(!)]TJ 0 -11.955 Td [(!)-525(exit)-525(the)-525(parallel)-525(environment)]TJ 10.46 -11.955 Td [(call)-525(psb_exit\050ictxt\051)]TJ 0 -11.955 Td [(stop)]TJ +0 g 0 G +/F15 10.9091 Tf -23.026 -20.749 Td [(Figure)-333(2:)-445(Setup)-333(and)-333(application)-333(of)-334(the)-333(default)-333(m)28(ulti-lev)27(el)-333(Sc)28(h)28(w)27(arz)-333(preconditioner.)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +ET +endstream +endobj +384 0 obj << +/Type /Page +/Contents 385 0 R +/Resources 383 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 320 0 R +>> endobj +386 0 obj << +/D [384 0 R /XYZ 86.4 740.002 null] +>> endobj +363 0 obj << +/D [384 0 R /XYZ 142.216 127.96 null] +>> endobj +383 0 obj << +/Font << /F15 123 0 R /F41 124 0 R /F44 200 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +390 0 obj << +/Length 3024 +>> +stream +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F41 10.9091 Tf 93.6 740.002 Td [(5)]TJ +0 g 0 G + [-378(Getting)-378(St)67(ar)67(ted)]TJ/F15 10.9091 Tf 401.542 0 Td [(19)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +/F44 9.9626 Tf -380.918 -49.066 Td [(...)-525(...)]TJ 0 -11.955 Td [(!)-525(set)-525(a)-525(three-level)-525(hybrid)-525(Schwarz)-525(preconditioner,)-525(which)-525(uses)]TJ 0 -11.955 Td [(!)-525(block)-525(Jacobi)-525(\050with)-525(ILU\0500\051)-525(on)-525(the)-525(blocks\051)-525(as)-525(post-smoother,)]TJ 0 -11.956 Td [(!)-525(a)-525(coarsest)-525(matrix)-525(replicated)-525(on)-525(the)-525(processors,)-525(and)-525(the)]TJ 0 -11.955 Td [(!)-525(LU)-525(factorization)-525(from)-525(UMFPACK)-525(as)-525(coarse-level)-525(solver)]TJ 10.461 -11.955 Td [(call)-525(mld_precinit\050P,'ML',info,nlev=3\051)]TJ 0 -11.955 Td [(call_mld_precset\050P,mld_smoother_type_,'BJAC',info\051)]TJ 0 -11.955 Td [(call)-525(mld_precset\050P,mld_coarse_mat_,'REPL',info\051)]TJ 0 -11.956 Td [(call)-525(mld_precset\050P,mld_coarse_solve_,'UMF',info\051)]TJ -10.461 -11.955 Td [(...)-525(...)]TJ +0 g 0 G +/F15 10.9091 Tf 34.98 -18.534 Td [(Figure)-333(3:)-445(Setup)-333(of)-333(a)-334(h)28(ybrid)-333(three-lev)28(el)-334(Sc)28(h)28(w)28(arz)-334(p)1(re)-1(cond)1(itioner.)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +/F44 9.9626 Tf -34.98 -39.232 Td [(...)-525(...)]TJ 0 -11.956 Td [(!)-525(set)-525(a)-525(three-level)-525(additive)-525(Schwarz)-525(preconditioner,)-525(which)-525(uses)]TJ 0 -11.955 Td [(!)-525(RAS)-525(\050with)-525(overlap)-525(1)-525(and)-525(ILU\0500\051)-525(on)-525(the)-525(blocks\051)-525(as)-525(pre-)-525(and)]TJ 0 -11.955 Td [(!)-525(post-smoother,)-525(and)-525(5)-525(block-Jacobi)-525(sweeps)-525(\050with)-525(UMFPACK)-525(LU)]TJ 0 -11.955 Td [(!)-525(on)-525(the)-525(blocks\051)-525(as)-525(distributed)-525(coarsest-level)-525(solver)]TJ 10.461 -11.955 Td [(call)-525(mld_precinit\050P,'ML',info,nlev=3\051)]TJ 0 -11.955 Td [(call)-525(mld_precset\050P,mld_ml_type_,'ADD',info\051)]TJ 0 -11.956 Td [(call_mld_precset\050P,mld_smoother_pos_,'TWOSIDE',info\051)]TJ 0 -11.955 Td [(call)-525(mld_precset\050P,mld_coarse_sweeps_,5,info\051)]TJ -10.461 -11.955 Td [(...)-525(...)]TJ +0 g 0 G +/F15 10.9091 Tf 28.329 -18.535 Td [(Figure)-333(4:)-445(Setup)-333(of)-333(an)-333(additiv)27(e)-333(three-lev)28(el)-334(Sc)28(h)28(w)28(arz)-334(p)1(re)-1(cond)1(itioner.)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +/F44 9.9626 Tf -28.329 -39.232 Td [(...)-525(...)]TJ 0 -11.955 Td [(!)-525(set)-525(RAS)-525(with)-525(overlap)-525(2)-525(and)-525(ILU\0500\051)-525(on)-525(the)-525(local)-525(blocks)]TJ 10.461 -11.955 Td [(call)-525(mld_precinit\050P,'AS',info\051)]TJ 0 -11.955 Td [(call)-525(mld_precset\050P,mld_sub_ovr_,2,info\051)]TJ -10.461 -11.955 Td [(...)-525(...)]TJ +0 g 0 G +/F15 10.9091 Tf 56.223 -18.535 Td [(Figure)-333(5:)-445(Setup)-333(of)-333(a)-334(on)1(e)-1(-lev)28(el)-333(Sc)28(h)27(w)28(arz)-333(preconditioner.)]TJ +0 g 0 G +0 g 0 G +0 g 0 G +0 g 0 G +ET +endstream +endobj +389 0 obj << +/Type /Page +/Contents 390 0 R +/Resources 388 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 392 0 R +/Annots [ 387 0 R ] +>> endobj +387 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 739.006 100.627 748.453] +/Subtype /Link +/A << /S /GoTo /D (section.5) >> +>> endobj +391 0 obj << +/D [389 0 R /XYZ 93.6 740.002 null] +>> endobj +380 0 obj << +/D [389 0 R /XYZ 196.962 578.354 null] +>> endobj +381 0 obj << +/D [389 0 R /XYZ 190.311 412.991 null] +>> endobj +382 0 obj << +/D [389 0 R /XYZ 218.204 307.403 null] +>> endobj +388 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F44 200 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +396 0 obj << +/Length 6908 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(20)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +/F17 14.3462 Tf -203.265 -35.866 Td [(6)-1125(User)-375(In)31(terface)]TJ/F15 10.9091 Tf 0 -24.352 Td [(The)-396(basic)-396(user)-396(in)28(terface)-397(of)-396(MLD2P4)-396(consists)-396(of)-396(six)-396(routines.)-633(The)-396(four)-396(routines)]TJ/F44 10.9091 Tf 389.542 0 Td [(mld_)]TJ -389.542 -13.549 Td [(precinit)]TJ/F15 10.9091 Tf 45.817 0 Td [(,)]TJ/F44 10.9091 Tf 6.096 0 Td [(mld_precset)]TJ/F15 10.9091 Tf 62.999 0 Td [(,)]TJ/F44 10.9091 Tf 6.096 0 Td [(mld_precbld)]TJ/F15 10.9091 Tf 65.922 0 Td [(and)]TJ/F44 10.9091 Tf 20.498 0 Td [(mld_precaply)]TJ/F15 10.9091 Tf 71.649 0 Td [(encapsulate)-268(all)-268(the)-268(function-)]TJ -279.077 -13.549 Td [(alities)-323(for)-322(the)-323(setup)-323(an)1(d)-323(the)-323(application)-322(of)-323(an)28(y)-323(one-lev)28(el)-323(and)-322(m)28(ulti-lev)27(el)-322(preconditioner)]TJ 0 -13.549 Td [(implemen)28(ted)-293(in)-292(the)-293(pac)28(k)55(age.)-431(The)-292(routine)]TJ/F44 10.9091 Tf 198.571 0 Td [(mld_precfree)]TJ/F15 10.9091 Tf 71.919 0 Td [(deallo)-28(cates)-293(th)1(e)-293(preconditioner)]TJ -270.49 -13.55 Td [(data)-387(structure,)-401(while)]TJ/F44 10.9091 Tf 105.072 0 Td [(mld_precdescr)]TJ/F15 10.9091 Tf 78.681 0 Td [(prin)28(ts)-388(a)-387(description)-388(of)-387(the)-388(p)1(re)-1(cond)1(itioner)-388(setup)]TJ -183.753 -13.549 Td [(b)28(y)-333(the)-334(user.)]TJ 16.936 -13.549 Td [(F)83(or)-222(eac)28(h)-222(routine,)-245(the)-222(same)-222(user)-222(in)27(terface)-222(is)-222(o)28(v)27(erloaded)-222(with)-222(resp)-28(ect)-222(to)-222(the)-222(real/complex)]TJ -16.936 -13.549 Td [(case)-371(and)-371(t)1(he)-371(single/double)-371(precision;)-389(argumen)28(ts)-371(with)-371(appropriate)-370(data)-371(t)28(yp)-28(es)-371(m)28(ust)-371(b)-28(e)]TJ 0 -13.549 Td [(passed)-333(to)-334(the)-333(routine,)-333(i.e.)]TJ +0 g 0 G +/F25 10.9091 Tf 16.363 -22.516 Td [(\017)]TJ +0 g 0 G +/F15 10.9091 Tf 10.91 0 Td [(the)-463(sparse)-463(matrix)-463(data)-463(structure,)-496(con)28(taining)-463(the)-463(matrix)-463(to)-463(b)-28(e)-463(preconditioned,)]TJ 0 -13.549 Td [(m)28(ust)-424(b)-28(e)-424(of)-423(t)27(yp)-27(e)]TJ/F44 10.9091 Tf 82.797 0 Td [(mld_)]TJ/F18 10.9091 Tf 22.909 0 Td [(x)]TJ/F44 10.9091 Tf 6.374 0 Td [(spmat_type)]TJ/F15 10.9091 Tf 61.896 0 Td [(with)]TJ/F18 10.9091 Tf 25.836 0 Td [(x)]TJ/F15 10.9091 Tf 10.998 0 Td [(=)]TJ/F44 10.9091 Tf 13.108 0 Td [(s)]TJ/F15 10.9091 Tf 10.351 0 Td [(for)-424(real)-424(single)-423(precision,)]TJ/F18 10.9091 Tf 121.075 0 Td [(x)]TJ/F15 10.9091 Tf 10.998 0 Td [(=)]TJ/F44 10.9091 Tf 13.109 0 Td [(d)]TJ/F15 10.9091 Tf -379.451 -13.549 Td [(for)-371(real)-371(double)-371(precision,)]TJ/F18 10.9091 Tf 123.413 0 Td [(x)]TJ/F15 10.9091 Tf 10.421 0 Td [(=)]TJ/F44 10.9091 Tf 12.532 0 Td [(c)]TJ/F15 10.9091 Tf 9.775 0 Td [(for)-371(complex)-371(single)-371(precision,)]TJ/F18 10.9091 Tf 140.11 0 Td [(x)]TJ/F15 10.9091 Tf 10.421 0 Td [(=)]TJ/F44 10.9091 Tf 12.533 0 Td [(z)]TJ/F15 10.9091 Tf 9.774 0 Td [(for)-371(complex)]TJ -328.979 -13.55 Td [(double)-333(precision;)]TJ +0 g 0 G +/F25 10.9091 Tf -10.91 -22.515 Td [(\017)]TJ +0 g 0 G +/F15 10.9091 Tf 10.91 0 Td [(the)-337(preconditioner)-337(data)-337(structure)-337(m)28(ust)-337(b)-28(e)-337(of)-337(t)28(yp)-28(e)]TJ/F44 10.9091 Tf 241.775 0 Td [(mld_)]TJ/F18 10.9091 Tf 22.909 0 Td [(x)]TJ/F44 10.9091 Tf 6.374 0 Td [(prec_type)]TJ/F15 10.9091 Tf 51.545 0 Td [(,)-338(with)]TJ/F18 10.9091 Tf 31.605 0 Td [(x)]TJ/F15 10.9091 Tf 10.051 0 Td [(=)]TJ/F44 10.9091 Tf 12.161 0 Td [(s)]TJ/F15 10.9091 Tf 5.728 0 Td [(,)]TJ/F44 10.9091 Tf -382.148 -13.549 Td [(d)]TJ/F15 10.9091 Tf 5.727 0 Td [(,)]TJ/F44 10.9091 Tf 6.666 0 Td [(c)]TJ/F15 10.9091 Tf 5.728 0 Td [(,)]TJ/F44 10.9091 Tf 6.666 0 Td [(z)]TJ/F15 10.9091 Tf 5.728 0 Td [(,)-333(according)-334(to)-333(the)-333(sparse)-334(matrix)-333(data)-333(structure;)]TJ +0 g 0 G +/F25 10.9091 Tf -41.425 -22.516 Td [(\017)]TJ +0 g 0 G +/F15 10.9091 Tf 10.91 0 Td [(the)-321(arra)28(ys)-321(con)27(t)1(aining)-321(the)-322(v)28(ectors)]TJ/F22 10.9091 Tf 159.846 0 Td [(v)]TJ/F15 10.9091 Tf 9.182 0 Td [(and)]TJ/F22 10.9091 Tf 21.078 0 Td [(w)]TJ/F15 10.9091 Tf 11.607 0 Td [(in)28(v)28(olv)27(ed)-321(in)-321(the)-321(precondition)1(e)-1(r)-321(app)1(lica-)]TJ -201.713 -13.549 Td [(tion)]TJ/F22 10.9091 Tf 21.315 0 Td [(w)]TJ/F15 10.9091 Tf 11.134 0 Td [(=)]TJ/F22 10.9091 Tf 11.515 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 3.959 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F22 10.9091 Tf 4.733 -3.959 Td [(v)]TJ/F15 10.9091 Tf 8.206 0 Td [(m)28(ust)-232(b)-28(e)-231(of)-232(t)28(yp)-28(e)]TJ/F18 10.9091 Tf 74.414 0 Td [(typ)51(e)]TJ/F44 10.9091 Tf 19.777 0 Td [(\050)]TJ/F18 10.9091 Tf 5.727 0 Td [(kind)]TJ +ET +q +1 0 0 1 309.595 436.297 cm +[]0 d 0 J 0.398 w 0 0 m 3.345 0 l S +Q +BT +/F18 10.9091 Tf 312.94 436.098 Td [(p)51(ar)51(ameter)]TJ/F44 10.9091 Tf 48.568 0 Td [(\051)]TJ/F15 10.9091 Tf 5.727 0 Td [(,)-252(with)]TJ/F18 10.9091 Tf 29.52 0 Td [(typ)51(e)]TJ/F15 10.9091 Tf 22.304 0 Td [(=)]TJ/F44 10.9091 Tf 11.013 0 Td [(real)]TJ/F15 10.9091 Tf 22.909 0 Td [(,)]TJ/F44 10.9091 Tf 5.779 0 Td [(complex)]TJ/F15 10.9091 Tf -345.087 -13.549 Td [(and)]TJ/F18 10.9091 Tf 21.391 0 Td [(kind)]TJ +ET +q +1 0 0 1 155.806 422.748 cm +[]0 d 0 J 0.398 w 0 0 m 3.345 0 l S +Q +BT +/F18 10.9091 Tf 159.151 422.549 Td [(p)51(ar)51(ameter)]TJ/F15 10.9091 Tf 52.384 0 Td [(=)]TJ/F44 10.9091 Tf 12.301 0 Td [(kind\0501.e0\051)]TJ/F15 10.9091 Tf 57.272 0 Td [(,)]TJ/F44 10.9091 Tf 6.891 0 Td [(kind\0501.d0\051)]TJ/F15 10.9091 Tf 57.272 0 Td [(,)-354(according)-350(to)-349(the)-350(sparse)-350(matrix)]TJ -231.598 -13.55 Td [(and)-305(preconditioner)-305(data)-305(structure;)-314(note)-306(t)1(hat)-306(th)1(e)-306(PSBLAS)-305(mo)-27(dule)]TJ/F44 10.9091 Tf 316.451 0 Td [(psb_base_mod)]TJ/F15 10.9091 Tf -316.451 -13.549 Td [(pro)28(vides)-333(the)-334(constan)28(ts)]TJ/F44 10.9091 Tf 110.212 0 Td [(psb_spk_)]TJ/F15 10.9091 Tf 49.454 0 Td [(=)]TJ/F44 10.9091 Tf 12.121 0 Td [(kind\0501.e0\051)]TJ/F15 10.9091 Tf 60.908 0 Td [(and)]TJ/F44 10.9091 Tf 21.213 0 Td [(psb_dpk_)]TJ/F15 10.9091 Tf 49.454 0 Td [(=)]TJ/F44 10.9091 Tf 12.121 0 Td [(kind\0501.d0\051)]TJ/F15 10.9091 Tf 57.272 0 Td [(;)]TJ +0 g 0 G +/F25 10.9091 Tf -383.665 -22.515 Td [(\017)]TJ +0 g 0 G +/F15 10.9091 Tf 10.91 0 Td [(real)-450(parameters)-450(de\014ning)-450(the)-450(preconditioner)-450(m)28(ust)-450(b)-27(e)-450(dec)-1(l)1(are)-1(d)-449(acc)-1(or)1(ding)-450(to)-450(the)]TJ 0 -13.549 Td [(precision)-245(of)-246(the)-245(sparse)-246(matrix)-245(and)-245(preconditioner)-246(data)-245(structures)-245(\050see)-246(Section)]TJ +0 0 1 rg 0 0 1 RG + [-245(6.2)]TJ +0 g 0 G + [(\051.)]TJ -27.273 -22.516 Td [(A)-333(description)-334(of)-333(eac)28(h)-333(routine)-334(is)-333(giv)28(en)-334(in)-333(the)-333(remainder)-333(of)-334(this)-333(section.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +395 0 obj << +/Type /Page +/Contents 396 0 R +/Resources 394 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 392 0 R +/Annots [ 393 0 R ] +>> endobj +393 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [476.642 355.662 492.574 368.564] +/Subtype /Link +/A << /S /GoTo /D (subsection.6.2) >> +>> endobj +397 0 obj << +/D [395 0 R /XYZ 86.4 740.002 null] +>> endobj +66 0 obj << +/D [395 0 R /XYZ 86.4 715.095 null] +>> endobj +394 0 obj << +/Font << /F15 123 0 R /F41 124 0 R /F17 111 0 R /F44 200 0 R /F25 176 0 R /F18 173 0 R /F22 175 0 R /F26 272 0 R /F20 273 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +403 0 obj << +/Length 3089 +>> +stream +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F41 10.9091 Tf 93.6 740.002 Td [(6)]TJ +0 g 0 G + [-378(User)-377(Interf)88(a)23(ce)]TJ/F15 10.9091 Tf 401.542 0 Td [(21)]TJ +0 g 0 G +/F17 11.9552 Tf -401.542 -35.866 Td [(6.1)-1125(Subroutine)-375(mld)]TJ +ET +q +1 0 0 1 216.622 704.336 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F17 11.9552 Tf 220.657 704.136 Td [(precinit)]TJ +0 g 0 G +0 g 0 G +/F44 10.9091 Tf 4.715 -20.594 Td [(mld_precinit\050p,ptype,info\051)]TJ -14.318 -13.549 Td [(mld_precinit\050p,ptype,info,nlev\051)]TJ/F15 10.9091 Tf -117.454 -25.505 Td [(This)-268(routine)-268(allo)-28(cates)-268(and)-269(initi)1(alize)-1(s)-268(the)-268(preconditioner)-268(data)-268(structure,)-281(ac)-1(cord)1(ing)-269(to)-268(the)]TJ 0 -13.549 Td [(preconditioner)-333(t)28(yp)-28(e)-333(c)27(hosen)-333(b)28(y)-334(the)-333(user.)]TJ/F17 11.9552 Tf 0 -40.648 Td [(Argumen)31(ts)]TJ/F44 10.9091 Tf 22.914 -12.805 Td [(p)-3689(type\050mld_)]TJ/F18 10.9091 Tf 97.516 0 Td [(x)]TJ/F44 10.9091 Tf 6.374 0 Td [(prec_type\051,)-525(intent\050inout\051)]TJ/F15 10.9091 Tf 143.18 0 Td [(.)]TJ -201.099 -13.549 Td [(The)-478(preconditioner)-478(data)-478(structure.)-878(Note)-478(that)]TJ/F18 10.9091 Tf 233.108 0 Td [(x)]TJ/F15 10.9091 Tf 11.589 0 Td [(m)28(ust)-478(b)-28(e)-478(c)28(hosen)-478(ac-)]TJ -244.697 -13.549 Td [(cording)-269(to)-269(the)-270(real/complex,)-282(single/double)-269(precision)-269(v)27(ersion)-269(of)-269(MLD2P4)]TJ 0 -13.549 Td [(under)-333(use.)]TJ/F44 10.9091 Tf -45.971 -13.55 Td [(ptype)-1589(character\050len=*\051,)-525(intent\050in\051)]TJ/F15 10.9091 Tf 206.333 0 Td [(.)]TJ -160.362 -13.549 Td [(The)-333(t)27(yp)-27(e)-334(of)-333(preconditioner.)-444(Its)-334(v)56(alues)-333(are)-334(sp)-28(eci\014ed)-333(in)-333(T)83(able)]TJ +0 0 1 rg 0 0 1 RG + [-333(1)]TJ +0 g 0 G + [(.)]TJ 0 -13.549 Td [(Note)-333(that)-334(the)-333(strings)-333(are)-334(case)-333(insensitiv)28(e.)]TJ/F44 10.9091 Tf -45.971 -13.549 Td [(info)-2114(integer,)-525(intent\050out\051)]TJ/F15 10.9091 Tf 160.515 0 Td [(.)]TJ -114.544 -13.549 Td [(Error)-333(co)-28(de.)-444(If)-334(no)-333(error,)-333(0)-334(is)-333(returned.)-444(See)-334(Section)]TJ +0 0 1 rg 0 0 1 RG + [-333(7)]TJ +0 g 0 G + [-333(for)-334(details.)]TJ/F44 10.9091 Tf -45.971 -13.55 Td [(nlev)-2114(integer,)-525(optional,)-525(intent\050in\051)]TJ/F15 10.9091 Tf 212.06 0 Td [(.)]TJ -166.089 -13.549 Td [(The)-436(n)27(um)28(b)-28(er)-436(of)-436(lev)28(els)-437(of)-436(the)-437(m)28(ultilev)28(el)-436(preconditioner.)-754(If)]TJ/F44 10.9091 Tf 284.637 0 Td [(nlev)]TJ/F15 10.9091 Tf 27.669 0 Td [(is)-436(not)]TJ -312.306 -13.549 Td [(presen)28(t)-418(and)]TJ/F44 10.9091 Tf 61.016 0 Td [(ptype)]TJ/F15 10.9091 Tf 28.636 0 Td [(=)]TJ/F44 10.9091 Tf 8.485 0 Td [('ML')]TJ/F15 10.9091 Tf 22.909 0 Td [(,)]TJ/F44 10.9091 Tf 7.584 0 Td [('ml')]TJ/F15 10.9091 Tf 22.909 0 Td [(,)-438(then)]TJ/F44 10.9091 Tf 33.578 0 Td [(nlev)]TJ/F15 10.9091 Tf 22.909 0 Td [(=2)-417(is)-418(assumed.)-697(Oth)1(e)-1(r)1(w)-1(i)1(s)-1(e,)]TJ/F44 10.9091 Tf -208.026 -13.549 Td [(nlev)]TJ/F15 10.9091 Tf 26.545 0 Td [(is)-333(ignored.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +402 0 obj << +/Type /Page +/Contents 403 0 R +/Resources 401 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 392 0 R +/Annots [ 400 0 R 398 0 R 399 0 R ] +>> endobj +400 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 739.006 100.627 748.453] +/Subtype /Link +/A << /S /GoTo /D (section.6) >> +>> endobj +398 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [450.853 504.679 458.3 518.312] +/Subtype /Link +/A << /S /GoTo /D (table.1) >> +>> endobj +399 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [402.247 464.032 409.694 477.665] +/Subtype /Link +/A << /S /GoTo /D (section.7) >> +>> endobj +404 0 obj << +/D [402 0 R /XYZ 93.6 740.002 null] +>> endobj +70 0 obj << +/D [402 0 R /XYZ 93.6 715.095 null] +>> endobj +401 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F17 111 0 R /F44 200 0 R /F18 173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +415 0 obj << +/Length 5118 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(22)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +/F17 11.9552 Tf -203.265 -35.866 Td [(6.2)-1125(Subroutine)-375(mld)]TJ +ET +q +1 0 0 1 209.422 704.336 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F17 11.9552 Tf 213.457 704.136 Td [(precset)]TJ +0 g 0 G +0 g 0 G +/F44 10.9091 Tf -1.013 -20.594 Td [(mld_precset\050p,what,val,info\051)]TJ/F15 10.9091 Tf -126.044 -25.505 Td [(This)-389(routin)1(e)-389(sets)-389(the)-389(parameters)-388(de\014ning)-389(the)-388(preconditioner.)-611(More)-388(precisely)83(,)-402(the)-389(pa-)]TJ 0 -13.549 Td [(rameter)-333(iden)27(ti)1(\014ed)-334(b)28(y)]TJ/F44 10.9091 Tf 103.394 0 Td [(what)]TJ/F15 10.9091 Tf 26.545 0 Td [(is)-333(assigned)-334(the)-333(v)56(alue)-334(con)28(tained)-333(in)]TJ/F44 10.9091 Tf 163.212 0 Td [(val)]TJ/F15 10.9091 Tf 17.182 0 Td [(.)]TJ/F17 11.9552 Tf -310.333 -40.647 Td [(Argumen)31(ts)]TJ/F44 10.9091 Tf 22.914 -12.806 Td [(p)-3689(type\050mld_)]TJ/F18 10.9091 Tf 97.516 0 Td [(x)]TJ/F44 10.9091 Tf 6.374 0 Td [(prec_type\051,)-525(intent\050inout\051)]TJ/F15 10.9091 Tf 143.18 0 Td [(.)]TJ -201.099 -13.549 Td [(The)-478(preconditioner)-478(data)-478(structure.)-878(Note)-478(that)]TJ/F18 10.9091 Tf 233.108 0 Td [(x)]TJ/F15 10.9091 Tf 11.588 0 Td [(m)28(ust)-478(b)-28(e)-478(c)28(hosen)-478(ac-)]TJ -244.696 -13.549 Td [(cording)-269(to)-269(the)-270(real/complex,)-282(single/double)-269(precision)-269(v)27(ersion)-269(of)-269(MLD2P4)]TJ 0 -13.549 Td [(under)-333(use.)]TJ/F44 10.9091 Tf -45.971 -13.549 Td [(what)-2114(integer,)-525(intent\050in\051)]TJ/F15 10.9091 Tf 154.788 0 Td [(.)]TJ -108.817 -13.55 Td [(The)-324(n)28(um)28(b)-28(er)-324(iden)28(tifying)-324(the)-324(parameter)-323(to)-324(b)-28(e)-324(set.)-441(A)-324(mnemonic)-324(constan)28(t)]TJ 0 -13.549 Td [(has)-300(b)-28(een)-300(asso)-28(ciated)-299(to)-300(eac)27(h)-300(of)-300(th)1(e)-1(se)-300(n)28(um)28(b)-28(ers,)-306(as)-300(rep)-28(orted)-300(in)-300(T)83(ables)]TJ +0 0 1 rg 0 0 1 RG + [-300(2)]TJ +0 g 0 G + [(-)]TJ +0 0 1 rg 0 0 1 RG + [(5)]TJ +0 g 0 G + [(.)]TJ/F44 10.9091 Tf -45.971 -13.549 Td [(val)-2639(integer)]TJ/F18 10.9091 Tf 105.136 0 Td [(or)]TJ/F44 10.9091 Tf 30.425 0 Td [(character\050len=*\051)]TJ/F18 10.9091 Tf 110.711 0 Td [(or)]TJ/F44 10.9091 Tf 30.424 0 Td [(real\050psb_spk_\051)]TJ/F18 10.9091 Tf 99.256 0 Td [(or)]TJ/F44 10.9091 Tf -329.981 -13.549 Td [(real\050psb_dpk_\051)]TJ/F15 10.9091 Tf 80.181 0 Td [(,)]TJ/F44 10.9091 Tf 6.666 0 Td [(intent\050in\051)]TJ/F15 10.9091 Tf 57.272 0 Td [(.)]TJ -144.119 -13.549 Td [(The)-306(v)56(alue)-306(of)-305(the)-306(parameter)-306(to)-305(b)-28(e)-306(set.)-435(The)-306(list)-305(of)-306(allo)28(w)28(ed)-306(v)55(al)1(ues)-306(and)-306(the)]TJ 0 -13.55 Td [(corresp)-28(onding)-391(data)-392(t)28(yp)-28(es)-391(is)-392(giv)28(en)-391(in)-392(T)84(ables)]TJ +0 0 1 rg 0 0 1 RG + [-392(2)]TJ +0 g 0 G + [(-)]TJ +0 0 1 rg 0 0 1 RG + [(5)]TJ +0 g 0 G + [(.)-619(When)-391(the)-392(v)56(alue)-392(is)-391(of)]TJ 0 -13.549 Td [(t)28(yp)-28(e)]TJ/F44 10.9091 Tf 24.545 0 Td [(character\050len=*\051)]TJ/F15 10.9091 Tf 91.636 0 Td [(,)-333(it)-334(is)-333(also)-333(treated)-334(as)-333(case)-333(insensitiv)27(e.)]TJ/F44 10.9091 Tf -162.152 -13.549 Td [(info)-2114(integer,)-525(intent\050out\051)]TJ/F15 10.9091 Tf 160.515 0 Td [(.)]TJ -114.544 -13.549 Td [(Error)-333(co)-28(de.)-444(If)-334(no)-333(error,)-333(0)-334(is)-333(returned.)-444(See)-334(Section)]TJ +0 0 1 rg 0 0 1 RG + [-333(7)]TJ +0 g 0 G + [-333(for)-334(d)1(e)-1(tail)1(s)-1(.)]TJ -68.885 -18.61 Td [(A)-383(v)56(ariet)28(y)-383(of)-383(\050one-lev)28(el)-383(and)-383(m)28(ulti-lev)28(el\051)-383(preconditioners)-383(can)-383(b)-27(e)-383(obtained)-383(b)28(y)-383(a)-383(suitable)]TJ 0 -13.55 Td [(setting)-425(of)-425(the)-426(p)1(re)-1(cond)1(itioner)-426(parameters.)-720(These)-425(parameters)-425(can)-425(b)-28(e)-425(logically)-426(di)1(vided)]TJ 0 -13.549 Td [(in)28(to)-333(four)-334(groups,)-333(i.e.)-333(parameters)-334(de\014nin)1(g)]TJ +0 g 0 G + 13.333 -22.515 Td [(1.)]TJ +0 g 0 G + [-500(the)-333(t)27(yp)-27(e)-334(of)-333(m)28(ulti-lev)28(el)-334(preconditioner;)]TJ +0 g 0 G + 0 -22.516 Td [(2.)]TJ +0 g 0 G + [-500(the)-333(one-lev)27(el)-333(preconditioner)-333(used)-333(as)-334(smo)-28(other;)]TJ +0 g 0 G + 0 -22.515 Td [(3.)]TJ +0 g 0 G + [-500(the)-333(aggregation)-334(algorith)1(m;)]TJ +0 g 0 G + 0 -22.516 Td [(4.)]TJ +0 g 0 G + [-500(the)-333(coarse-space)-334(correction)-333(at)-334(th)1(e)-334(coarsest)-333(lev)27(el.)]TJ -13.333 -22.516 Td [(A)-313(list)-314(of)-313(the)-313(parameters)-314(that)-313(can)-313(b)-28(e)-314(set,)-317(along)-313(with)-314(their)-313(allo)28(w)28(ed)-314(and)-313(default)-313(v)55(alues,)-317(is)]TJ 0 -13.549 Td [(giv)28(en)-296(in)-296(T)83(ables)]TJ +0 0 1 rg 0 0 1 RG + [-296(2)]TJ +0 g 0 G + [(-)]TJ +0 0 1 rg 0 0 1 RG + [(5)]TJ +0 g 0 G + [(.)-432(F)83(or)-296(a)-296(detailed)-296(description)-296(of)-296(the)-296(meaning)-296(of)-296(the)-296(parameters,)-304(please)]TJ 0 -13.549 Td [(refer)-333(to)-334(Section)]TJ +0 0 1 rg 0 0 1 RG + [-333(4)]TJ +0 g 0 G + [(.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +414 0 obj << +/Type /Page +/Contents 415 0 R +/Resources 413 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 392 0 R +/Annots [ 405 0 R 406 0 R 407 0 R 408 0 R 409 0 R 410 0 R 411 0 R 412 0 R ] +>> endobj +405 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [476.87 504.679 484.317 518.312] +/Subtype /Link +/A << /S /GoTo /D (table.2) >> +>> endobj +406 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [485.961 504.679 493.408 518.312] +/Subtype /Link +/A << /S /GoTo /D (table.5) >> +>> endobj +407 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [369.034 452.426 376.481 464.115] +/Subtype /Link +/A << /S /GoTo /D (table.2) >> +>> endobj +408 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [378.125 452.426 385.572 464.115] +/Subtype /Link +/A << /S /GoTo /D (table.5) >> +>> endobj +409 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [395.046 409.835 402.493 423.468] +/Subtype /Link +/A << /S /GoTo /D (section.7) >> +>> endobj +410 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [159.7 239.943 167.147 251.632] +/Subtype /Link +/A << /S /GoTo /D (table.2) >> +>> endobj +411 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [168.79 239.943 176.238 251.632] +/Subtype /Link +/A << /S /GoTo /D (table.5) >> +>> endobj +412 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [162.131 228.515 169.578 238.083] +/Subtype /Link +/A << /S /GoTo /D (section.4) >> +>> endobj +416 0 obj << +/D [414 0 R /XYZ 86.4 740.002 null] +>> endobj +74 0 obj << +/D [414 0 R /XYZ 86.4 715.095 null] +>> endobj +417 0 obj << +/D [414 0 R /XYZ 86.4 362.583 null] +>> endobj +418 0 obj << +/D [414 0 R /XYZ 86.4 340.067 null] +>> endobj +419 0 obj << +/D [414 0 R /XYZ 86.4 317.552 null] +>> endobj +420 0 obj << +/D [414 0 R /XYZ 86.4 295.036 null] +>> endobj +413 0 obj << +/Font << /F15 123 0 R /F41 124 0 R /F17 111 0 R /F44 200 0 R /F18 173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +424 0 obj << +/Length 4357 +>> +stream +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F41 10.9091 Tf 93.6 740.002 Td [(6)]TJ +0 g 0 G + [-378(User)-377(Interf)88(a)23(ce)]TJ/F15 10.9091 Tf 401.542 0 Td [(23)]TJ +0 g 0 G +0 g 0 G +ET +1 0 0 1 299.826 121.521 cm +q +0 1 -1 0 0 0 cm +0 g 0 G +0 g 0 G +0 g 0 G +q +1 0 0 1 20.862 87.576 cm +[]0 d 0 J 0.398 w 0 0 m 551.849 0 l S +Q +q +1 0 0 1 20.862 73.827 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +1 0 0 1 -299.826 -121.521 cm +BT +/F44 10.9091 Tf 326.666 199.413 Td [(what)]TJ +ET +q +1 0 0 1 435.733 195.348 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F41 10.9091 Tf 441.711 199.413 Td [(d)22(a)67(t)66(a)-377(type)]TJ +ET +q +1 0 0 1 539.324 195.348 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F44 10.9091 Tf 545.301 199.413 Td [(val)]TJ +ET +q +1 0 0 1 607.972 195.348 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F41 10.9091 Tf 613.95 199.413 Td [(def)89(a)22(ul)67(t)]TJ +ET +q +1 0 0 1 662.157 195.348 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F41 10.9091 Tf 668.135 199.413 Td [(comments)]TJ +ET +q +1 0 0 1 872.538 195.348 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +q +1 0 0 1 320.688 195.149 cm +[]0 d 0 J 0.398 w 0 0 m 551.849 0 l S +Q +q +1 0 0 1 320.688 154.302 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 326.666 185.465 Td [(mld_ml_type_)]TJ +ET +q +1 0 0 1 435.733 154.302 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 441.711 185.465 Td [(character\050len=*\051)]TJ +ET +q +1 0 0 1 539.324 154.302 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 545.301 185.465 Td [('ADD')]TJ 0 -13.549 Td [('MULT')]TJ +ET +q +1 0 0 1 607.972 154.302 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 613.95 185.465 Td [('MULT')]TJ +ET +q +1 0 0 1 662.157 154.302 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F15 10.9091 Tf 668.135 185.465 Td [(Basic)-449(m)28(ulti-lev)28(el)-449(framew)27(ork:)-675(additiv)28(e)-449(or)]TJ 0 -13.549 Td [(m)28(ultiplicativ)28(e)-586(among)-587(the)-586(lev)28(els)-586(\050alw)28(a)27(ys)]TJ 0 -13.549 Td [(additiv)28(e)-333(inside)-334(a)-333(lev)28(el\051.)]TJ +ET +q +1 0 0 1 872.538 154.302 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +q +1 0 0 1 320.688 154.103 cm +[]0 d 0 J 0.398 w 0 0 m 551.849 0 l S +Q +q +1 0 0 1 320.688 113.256 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 326.666 144.419 Td [(mld_smoother_type_)]TJ +ET +q +1 0 0 1 435.733 113.256 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 441.711 144.419 Td [(character\050len=*\051)]TJ +ET +q +1 0 0 1 539.324 113.256 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 545.301 144.419 Td [('DIAG')]TJ 0 -13.549 Td [('BJAC')]TJ 0 -13.549 Td [('AS')]TJ +ET +q +1 0 0 1 607.972 113.256 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 613.95 144.419 Td [('AS')]TJ +ET +q +1 0 0 1 662.157 113.256 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F15 10.9091 Tf 668.135 144.419 Td [(Basic)-1379(one-lev)28(el)-1379(preconditioner)-1378(\050i.e.)]TJ 0 -13.549 Td [(smo)-28(other\051:)-444(diagonal,)-333(blo)-28(c)28(k)-334(Jacobi,)-333(AS.)]TJ +ET +q +1 0 0 1 872.538 113.256 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +q +1 0 0 1 320.688 113.057 cm +[]0 d 0 J 0.398 w 0 0 m 551.849 0 l S +Q +q +1 0 0 1 320.688 72.21 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 326.666 103.373 Td [(mld_smoother_pos_)]TJ +ET +q +1 0 0 1 435.733 72.21 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 441.711 103.373 Td [(character\050len=*\051)]TJ +ET +q +1 0 0 1 539.324 72.21 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 545.301 103.373 Td [('PRE')]TJ 0 -13.549 Td [('POST')]TJ 0 -13.549 Td [('TWOSIDE')]TJ +ET +q +1 0 0 1 607.972 72.21 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 613.95 103.373 Td [('POST')]TJ +ET +q +1 0 0 1 662.157 72.21 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F15 10.9091 Tf 668.135 103.373 Td [(\134P)28(osition")-233(of)-234(the)-233(smo)-28(other:)-394(pre-smo)-28(other,)]TJ 0 -13.549 Td [(p)-28(ost-smo)-28(other,)-333(pre-)-333(and)-333(p)-28(ost-smo)-28(other.)]TJ +ET +q +1 0 0 1 872.538 72.21 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +q +1 0 0 1 320.688 72.011 cm +[]0 d 0 J 0.398 w 0 0 m 551.849 0 l S +Q +0 g 0 G +BT +/F15 10.9091 Tf 432.658 41.322 Td [(T)83(able)-333(2:)-444(P)27(arameters)-333(de\014ning)-333(the)-334(t)28(yp)-27(e)-334(of)-333(m)28(ulti-lev)27(el)-333(preconditioner.)]TJ +0 g 0 G +0 g 0 G +ET +1 0 0 1 299.826 121.521 cm +Q +0 g 0 G +0 g 0 G +0 g 0 G +endstream +endobj +423 0 obj << +/Type /Page +/Contents 424 0 R +/Resources 422 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 392 0 R +/Annots [ 421 0 R ] +>> endobj +421 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 739.006 100.627 748.453] +/Subtype /Link +/A << /S /GoTo /D (section.6) >> +>> endobj +425 0 obj << +/D [423 0 R /XYZ 93.6 740.002 null] +>> endobj +355 0 obj << +/D [423 0 R /XYZ 366.469 4378.384 null] +>> endobj +422 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F44 200 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +428 0 obj << +/Length 9704 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(24)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +0 g 0 G +ET +1 0 0 1 292.625 715.095 cm +q +0 -1 1 0 0 0 cm +0 g 0 G +0 g 0 G +0 g 0 G +q +1 0 0 1 0 162.395 cm +[]0 d 0 J 0.398 w 0 0 m 614.686 0 l S +Q +q +1 0 0 1 0 148.647 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +1 0 0 1 -292.625 -715.095 cm +BT +/F44 10.9091 Tf 298.603 867.807 Td [(what)]TJ +ET +q +1 0 0 1 396.216 863.742 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F41 10.9091 Tf 402.193 867.807 Td [(d)22(a)67(t)66(a)-377(type)]TJ +ET +q +1 0 0 1 515.189 863.742 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F44 10.9091 Tf 521.167 867.807 Td [(val)]TJ +ET +q +1 0 0 1 617.853 863.742 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F41 10.9091 Tf 623.831 867.807 Td [(def)89(a)22(ul)67(t)]TJ +ET +q +1 0 0 1 696.931 863.742 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F41 10.9091 Tf 702.909 867.807 Td [(comments)]TJ +ET +q +1 0 0 1 907.311 863.742 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +q +1 0 0 1 292.625 863.543 cm +[]0 d 0 J 0.398 w 0 0 m 614.686 0 l S +Q +q +1 0 0 1 292.625 849.794 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F44 10.9091 Tf 298.603 853.859 Td [(mld_sub_ovr_)]TJ +ET +q +1 0 0 1 396.216 849.794 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F44 10.9091 Tf 402.193 853.859 Td [(integer)]TJ +ET +q +1 0 0 1 515.189 849.794 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F15 10.9091 Tf 521.167 853.859 Td [(an)28(y)-333(in)27(t.)-333(n)28(um.)]TJ/F25 10.9091 Tf 67.879 0 Td [(\025)]TJ/F15 10.9091 Tf 11.515 0 Td [(0)]TJ +ET +q +1 0 0 1 617.853 849.794 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F15 10.9091 Tf 623.831 853.859 Td [(1)]TJ +ET +q +1 0 0 1 696.931 849.794 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F15 10.9091 Tf 702.909 853.859 Td [(Num)28(b)-28(er)-333(of)-334(o)28(v)28(erlap)-333(la)28(y)27(ers.)]TJ +ET +q +1 0 0 1 907.311 849.794 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +q +1 0 0 1 292.625 849.595 cm +[]0 d 0 J 0.398 w 0 0 m 614.686 0 l S +Q +q +1 0 0 1 292.625 808.748 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 298.603 839.911 Td [(mld_sub_restr_)]TJ +ET +q +1 0 0 1 396.216 808.748 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 402.193 839.911 Td [(character\050len=*\051)]TJ +ET +q +1 0 0 1 515.189 808.748 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 521.167 839.911 Td [('HALO')]TJ 0 -13.549 Td [('NONE')]TJ +ET +q +1 0 0 1 617.853 808.748 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 623.831 839.911 Td [('HALO')]TJ +ET +q +1 0 0 1 696.931 808.748 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F15 10.9091 Tf 702.909 839.911 Td [(T)28(yp)-28(e)-429(of)-429(restriction)-429(op)-28(erator:)]TJ/F44 10.9091 Tf 146.32 0 Td [('HALO')]TJ/F15 10.9091 Tf 39.044 0 Td [(for)]TJ -185.364 -13.549 Td [(taking)-478(in)28(to)-478(accoun)28(t)-478(the)-477(o)27(v)28(erlap,)]TJ/F44 10.9091 Tf 164.062 0 Td [('NONE')]TJ/F15 10.9091 Tf -164.062 -13.549 Td [(for)-333(neglecting)-334(it.)]TJ +ET +q +1 0 0 1 907.311 808.748 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +q +1 0 0 1 292.625 808.549 cm +[]0 d 0 J 0.398 w 0 0 m 614.686 0 l S +Q +q +1 0 0 1 292.625 767.702 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 298.603 798.865 Td [(mld_sub_prol_)]TJ +ET +q +1 0 0 1 396.216 767.702 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 402.193 798.865 Td [(character\050len=*\051)]TJ +ET +q +1 0 0 1 515.189 767.702 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 521.167 798.865 Td [('SUM')]TJ 0 -13.549 Td [('NONE')]TJ +ET +q +1 0 0 1 617.853 767.702 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 623.831 798.865 Td [('NONE')]TJ +ET +q +1 0 0 1 696.931 767.702 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F15 10.9091 Tf 702.909 798.865 Td [(T)28(yp)-28(e)-342(of)-342(prolongation)-342(op)-28(erator:)]TJ/F44 10.9091 Tf 152.996 0 Td [('SUM')]TJ/F15 10.9091 Tf 32.368 0 Td [(for)]TJ -185.364 -13.549 Td [(adding)-251(the)-252(con)28(tributions)-252(from)-252(th)1(e)-252(o)28(v)27(erlap,)]TJ/F44 10.9091 Tf 0 -13.549 Td [('NONE')]TJ/F15 10.9091 Tf 37.999 0 Td [(for)-333(neglecting)-334(them.)]TJ +ET +q +1 0 0 1 907.311 767.702 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +q +1 0 0 1 292.625 767.503 cm +[]0 d 0 J 0.398 w 0 0 m 614.686 0 l S +Q +q +1 0 0 1 292.625 699.558 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +BT +/F44 10.9091 Tf 298.603 757.819 Td [(mld_sub_solve_)]TJ +ET +q +1 0 0 1 396.216 699.558 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +BT +/F44 10.9091 Tf 402.193 757.819 Td [(character\050len=*\051)]TJ +ET +q +1 0 0 1 515.189 699.558 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +BT +/F44 10.9091 Tf 521.167 757.819 Td [('ILU')]TJ 0 -13.549 Td [('MILU')]TJ 0 -13.549 Td [('ILUT')]TJ 0 -13.549 Td [('UMF')]TJ 0 -13.55 Td [('SLU')]TJ +ET +q +1 0 0 1 617.853 699.558 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +BT +/F44 10.9091 Tf 623.831 757.819 Td [('ILU')]TJ +ET +q +1 0 0 1 696.931 699.558 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +BT +/F15 10.9091 Tf 702.909 757.819 Td [(Lo)-28(cal)-326(solv)28(er:)-441(ILU\050)]TJ/F22 10.9091 Tf 87.847 0 Td [(p)]TJ/F15 10.9091 Tf 5.489 0 Td [(\051,)-327(MILU\050)]TJ/F22 10.9091 Tf 44.025 0 Td [(p)]TJ/F15 10.9091 Tf 5.489 0 Td [(\051,)-327(ILU\050)]TJ/F22 10.9091 Tf 34.026 0 Td [(p;)-167(t)]TJ/F15 10.9091 Tf 14.276 0 Td [(\051,)]TJ -191.152 -13.549 Td [(LU)-411(from)-411(UMFP)83(A)28(CK,)-411(LU)-411(from)-411(Sup)-28(erLU)]TJ 0 -13.549 Td [(\050plus)-333(triangular)-333(solv)27(e\051.)]TJ +ET +q +1 0 0 1 907.311 699.558 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +q +1 0 0 1 292.625 699.358 cm +[]0 d 0 J 0.398 w 0 0 m 614.686 0 l S +Q +q +1 0 0 1 292.625 672.061 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 298.603 689.675 Td [(mld_sub_fillin_)]TJ +ET +q +1 0 0 1 396.216 672.061 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 402.193 689.675 Td [(integer)]TJ +ET +q +1 0 0 1 515.189 672.061 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 521.167 689.675 Td [(An)28(y)-333(in)27(t.)-333(n)28(um.)]TJ/F25 10.9091 Tf 70.606 0 Td [(\025)]TJ/F15 10.9091 Tf 11.515 0 Td [(0)]TJ +ET +q +1 0 0 1 617.853 672.061 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 623.831 689.675 Td [(0)]TJ +ET +q +1 0 0 1 696.931 672.061 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 702.909 689.675 Td [(Fill-in)-276(lev)28(el)]TJ/F22 10.9091 Tf 56.176 0 Td [(p)]TJ/F15 10.9091 Tf 8.502 0 Td [(of)-276(the)-276(incomplete)-276(LU)-277(f)1(ac)-1(tor)1(-)]TJ -64.678 -13.549 Td [(izations.)]TJ +ET +q +1 0 0 1 907.311 672.061 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +q +1 0 0 1 292.625 671.862 cm +[]0 d 0 J 0.398 w 0 0 m 614.686 0 l S +Q +q +1 0 0 1 292.625 644.564 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 298.603 662.178 Td [(mld_sub_iluthrs_)]TJ +ET +q +1 0 0 1 396.216 644.564 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 402.193 662.178 Td [(real\050)]TJ/F18 10.9091 Tf 28.637 0 Td [(kind)]TJ +ET +q +1 0 0 1 451.571 662.377 cm +[]0 d 0 J 0.398 w 0 0 m 3.345 0 l S +Q +BT +/F18 10.9091 Tf 454.917 662.178 Td [(p)51(ar)51(ameter)]TJ/F44 10.9091 Tf 48.567 0 Td [(\051)]TJ +ET +q +1 0 0 1 515.189 644.564 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 521.167 662.178 Td [(An)28(y)-333(real)-334(n)28(um.)]TJ/F25 10.9091 Tf 72.151 0 Td [(\025)]TJ/F15 10.9091 Tf 11.516 0 Td [(0)]TJ +ET +q +1 0 0 1 617.853 644.564 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 623.831 662.178 Td [(0)]TJ +ET +q +1 0 0 1 696.931 644.564 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 702.909 662.178 Td [(Drop)-256(tolerance)]TJ/F22 10.9091 Tf 72.776 0 Td [(t)]TJ/F15 10.9091 Tf 6.737 0 Td [(in)-256(the)-257(ILU\050)]TJ/F22 10.9091 Tf 53.02 0 Td [(p;)-167(t)]TJ/F15 10.9091 Tf 14.276 0 Td [(\051)-256(factoriza-)]TJ -146.809 -13.549 Td [(tion.)]TJ +ET +q +1 0 0 1 907.311 644.564 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +q +1 0 0 1 292.625 644.365 cm +[]0 d 0 J 0.398 w 0 0 m 614.686 0 l S +Q +q +1 0 0 1 292.625 589.969 cm +[]0 d 0 J 0.398 w 0 0 m 0 54.197 l S +Q +BT +/F44 10.9091 Tf 298.603 634.681 Td [(mld_sub_ren_)]TJ +ET +q +1 0 0 1 396.216 589.969 cm +[]0 d 0 J 0.398 w 0 0 m 0 54.197 l S +Q +BT +/F44 10.9091 Tf 402.193 634.681 Td [(character\050len=*\051)]TJ +ET +q +1 0 0 1 515.189 589.969 cm +[]0 d 0 J 0.398 w 0 0 m 0 54.197 l S +Q +BT +/F44 10.9091 Tf 521.167 634.681 Td [('RENUM)]TJ +ET +q +1 0 0 1 556.217 634.88 cm +[]0 d 0 J 0.398 w 0 0 m 3.436 0 l S +Q +BT +/F44 10.9091 Tf 559.654 634.681 Td [(NONE')]TJ -38.487 -13.549 Td [('RENUM)]TJ +ET +q +1 0 0 1 556.217 621.331 cm +[]0 d 0 J 0.398 w 0 0 m 3.436 0 l S +Q +BT +/F44 10.9091 Tf 559.654 621.132 Td [(GLOBAL')]TJ +ET +q +1 0 0 1 617.853 589.969 cm +[]0 d 0 J 0.398 w 0 0 m 0 54.197 l S +Q +BT +/F44 10.9091 Tf 623.831 634.681 Td [('RENUM)]TJ +ET +q +1 0 0 1 658.881 634.88 cm +[]0 d 0 J 0.398 w 0 0 m 3.436 0 l S +Q +BT +/F44 10.9091 Tf 662.317 634.681 Td [(NONE')]TJ +ET +q +1 0 0 1 696.931 589.969 cm +[]0 d 0 J 0.398 w 0 0 m 0 54.197 l S +Q +BT +/F15 10.9091 Tf 702.909 634.681 Td [(Ro)28(w)-468(and)-467(column)-468(reordering)-467(of)-468(the)-468(lo)-27(cal)]TJ 0 -13.549 Td [(submatrices:)-410(n)1(o)-264(reordering,)-277(reordering)-264(ac-)]TJ 0 -13.549 Td [(cording)-540(to)-540(th)1(e)-540(global)-540(n)28(um)28(b)-28(ering)-540(of)-540(the)]TJ 0 -13.55 Td [(ro)28(ws)-334(and)-333(columns)-333(of)-333(the)-334(whole)-333(matrix.)]TJ +ET +q +1 0 0 1 907.311 589.969 cm +[]0 d 0 J 0.398 w 0 0 m 0 54.197 l S +Q +q +1 0 0 1 292.625 589.769 cm +[]0 d 0 J 0.398 w 0 0 m 614.686 0 l S +Q +0 g 0 G +BT +/F15 10.9091 Tf 405.352 559.08 Td [(T)83(able)-333(3:)-444(P)27(arameters)-333(de\014ning)-333(the)-334(on)1(e)-1(-lev)28(el)-333(preconditioner)-333(used)-334(as)-333(smo)-28(other.)]TJ +0 g 0 G +0 g 0 G +ET +1 0 0 1 292.625 715.095 cm +Q +0 g 0 G +0 g 0 G +0 g 0 G +endstream +endobj +427 0 obj << +/Type /Page +/Contents 428 0 R +/Resources 426 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 392 0 R +>> endobj +429 0 obj << +/D [427 0 R /XYZ 86.4 740.002 null] +>> endobj +430 0 obj << +/D [427 0 R /XYZ -3930.538 559.035 null] +>> endobj +426 0 obj << +/Font << /F15 123 0 R /F41 124 0 R /F44 200 0 R /F25 176 0 R /F22 175 0 R /F18 173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +434 0 obj << +/Length 10230 +>> +stream +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F41 10.9091 Tf 93.6 740.002 Td [(6)]TJ +0 g 0 G + [-378(User)-377(Interf)88(a)23(ce)]TJ/F15 10.9091 Tf 401.542 0 Td [(25)]TJ +0 g 0 G +0 g 0 G +ET +1 0 0 1 299.826 121.521 cm +q +0 1 -1 0 0 0 cm +0 g 0 G +0 g 0 G +0 g 0 G +q +1 0 0 1 0 175.745 cm +[]0 d 0 J 0.398 w 0 0 m 610.099 0 l S +Q +q +1 0 0 1 0 161.997 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +1 0 0 1 -299.826 -121.521 cm +BT +/F44 10.9091 Tf 305.803 287.582 Td [(what)]TJ +ET +q +1 0 0 1 420.598 283.518 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F41 10.9091 Tf 426.576 287.582 Td [(d)22(a)67(t)67(a)-378(type)]TJ +ET +q +1 0 0 1 539.571 283.518 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F44 10.9091 Tf 545.549 287.582 Td [(val)]TJ +ET +q +1 0 0 1 619.558 283.518 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F41 10.9091 Tf 625.535 287.582 Td [(def)89(a)22(ul)67(t)]TJ +ET +q +1 0 0 1 699.544 283.518 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F41 10.9091 Tf 705.522 287.582 Td [(comments)]TJ +ET +q +1 0 0 1 909.925 283.518 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +q +1 0 0 1 299.826 283.318 cm +[]0 d 0 J 0.398 w 0 0 m 610.099 0 l S +Q +q +1 0 0 1 299.826 256.021 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 305.803 273.635 Td [(mld_aggr_alg_)]TJ +ET +q +1 0 0 1 420.598 256.021 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 426.576 273.635 Td [(character\050len=*\051)]TJ +ET +q +1 0 0 1 539.571 256.021 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 545.549 273.635 Td [('DEC')]TJ +ET +q +1 0 0 1 619.558 256.021 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 625.535 273.635 Td [('DEC')]TJ +ET +q +1 0 0 1 699.544 256.021 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 705.522 273.635 Td [(Aggregation)-521(algorit)1(hm.)-1007(Curren)28(tly)83(,)-567(only)]TJ 0 -13.55 Td [(the)-333(decoupled)-334(aggregation)-333(is)-333(a)28(v)55(ailable.)]TJ +ET +q +1 0 0 1 909.925 256.021 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +q +1 0 0 1 299.826 255.821 cm +[]0 d 0 J 0.398 w 0 0 m 610.099 0 l S +Q +q +1 0 0 1 299.826 214.975 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 305.803 246.138 Td [(mld_aggr_kind_)]TJ +ET +q +1 0 0 1 420.598 214.975 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 426.576 246.138 Td [(character\050len=*\051)]TJ +ET +q +1 0 0 1 539.571 214.975 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 545.549 246.138 Td [('SMOOTHED')]TJ 0 -13.549 Td [('NONSMOOTHED')]TJ +ET +q +1 0 0 1 619.558 214.975 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 625.535 246.138 Td [('SMOOTHED')]TJ +ET +q +1 0 0 1 699.544 214.975 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F15 10.9091 Tf 705.522 246.138 Td [(T)28(yp)-28(e)-626(of)-626(aggregation:)-1029(smo)-28(othed,)-699(nons-)]TJ 0 -13.549 Td [(mo)-28(othed)-414(\050i.e.)-414(u)1(s)-1(in)1(g)-414(the)-414(ten)28(tativ)27(e)-414(prol)1(on-)]TJ 0 -13.55 Td [(gator\051.)]TJ +ET +q +1 0 0 1 909.925 214.975 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +q +1 0 0 1 299.826 214.775 cm +[]0 d 0 J 0.398 w 0 0 m 610.099 0 l S +Q +q +1 0 0 1 299.826 187.478 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 305.803 205.092 Td [(mld_aggr_thresh_)]TJ +ET +q +1 0 0 1 420.598 187.478 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 426.576 205.092 Td [(real\050)]TJ/F18 10.9091 Tf 28.636 0 Td [(kind)]TJ +ET +q +1 0 0 1 475.953 205.291 cm +[]0 d 0 J 0.398 w 0 0 m 3.345 0 l S +Q +BT +/F18 10.9091 Tf 479.299 205.092 Td [(p)51(ar)51(ameter)]TJ/F44 10.9091 Tf 48.568 0 Td [(\051)]TJ +ET +q +1 0 0 1 539.571 187.478 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 545.549 205.092 Td [(An)28(y)-311(real)-311(n)27(um.)]TJ/F25 10.9091 Tf 0 -13.549 Td [(2)]TJ/F15 10.9091 Tf 10.303 0 Td [([0)]TJ/F22 10.9091 Tf 8.485 0 Td [(;)]TJ/F15 10.9091 Tf 4.848 0 Td [(1])]TJ +ET +q +1 0 0 1 619.558 187.478 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 625.535 205.092 Td [(0)]TJ +ET +q +1 0 0 1 699.544 187.478 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 705.522 205.092 Td [(Threshold)]TJ/F22 10.9091 Tf 51.267 0 Td [(\022)]TJ/F15 10.9091 Tf 8.721 0 Td [(in)-302(the)-302(aggregation)-303(algorit)1(hm.)]TJ +ET +q +1 0 0 1 909.925 187.478 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +q +1 0 0 1 299.826 187.278 cm +[]0 d 0 J 0.398 w 0 0 m 610.099 0 l S +Q +q +1 0 0 1 299.826 119.333 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +BT +/F44 10.9091 Tf 305.803 177.595 Td [(mld_aggr_omega_alg_)]TJ +ET +q +1 0 0 1 420.598 119.333 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +BT +/F44 10.9091 Tf 426.576 177.595 Td [(character\050len=*\051)]TJ +ET +q +1 0 0 1 539.571 119.333 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +BT +/F44 10.9091 Tf 545.549 177.595 Td [('EIG)]TJ +ET +q +1 0 0 1 569.145 177.794 cm +[]0 d 0 J 0.398 w 0 0 m 3.436 0 l S +Q +BT +/F44 10.9091 Tf 572.581 177.595 Td [(EST')]TJ -27.032 -13.549 Td [('USER)]TJ +ET +q +1 0 0 1 574.872 164.245 cm +[]0 d 0 J 0.398 w 0 0 m 3.436 0 l S +Q +BT +/F44 10.9091 Tf 578.309 164.046 Td [(CHOICE')]TJ +ET +q +1 0 0 1 619.558 119.333 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +BT +/F44 10.9091 Tf 625.535 177.595 Td [('EIG)]TJ +ET +q +1 0 0 1 649.131 177.794 cm +[]0 d 0 J 0.398 w 0 0 m 3.436 0 l S +Q +BT +/F44 10.9091 Tf 652.568 177.595 Td [(EST')]TJ +ET +q +1 0 0 1 699.544 119.333 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +BT +/F15 10.9091 Tf 705.522 177.595 Td [(Ho)28(w)-625(the)-624(damping)-625(parameter)]TJ/F22 10.9091 Tf 153.374 0 Td [(!)]TJ/F15 10.9091 Tf 13.995 0 Td [(in)-625(th)1(e)]TJ -167.369 -13.549 Td [(smo)-28(othed)-738(aggregation)-738(should)-738(b)-28(e)-738(com-)]TJ 0 -13.55 Td [(puted:)-453(either)-338(via)-338(an)-338(estimate)-338(of)-338(the)-337(s)-1(p)-27(ec-)]TJ 0 -13.549 Td [(tral)-337(radius)-338(of)]TJ/F22 10.9091 Tf 66.016 0 Td [(D)]TJ/F26 7.9701 Tf 9.335 3.959 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ/F22 10.9091 Tf 4.732 -3.959 Td [(A)]TJ/F15 10.9091 Tf 8.182 0 Td [(,)-339(or)-337(explicily)-338(sp)-27(eci\014ed)]TJ -94.852 -13.549 Td [(b)28(y)-333(the)-334(user.)]TJ +ET +q +1 0 0 1 909.925 119.333 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +q +1 0 0 1 299.826 119.134 cm +[]0 d 0 J 0.398 w 0 0 m 610.099 0 l S +Q +q +1 0 0 1 299.826 78.287 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 305.803 109.45 Td [(mld_aggr_eig_)]TJ +ET +q +1 0 0 1 420.598 78.287 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 426.576 109.45 Td [(character\050len=*\051)]TJ +ET +q +1 0 0 1 539.571 78.287 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 545.549 109.45 Td [('A)]TJ +ET +q +1 0 0 1 557.691 109.65 cm +[]0 d 0 J 0.398 w 0 0 m 3.436 0 l S +Q +BT +/F44 10.9091 Tf 561.127 109.45 Td [(NORMI')]TJ +ET +q +1 0 0 1 619.558 78.287 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F44 10.9091 Tf 625.535 109.45 Td [('A)]TJ +ET +q +1 0 0 1 637.677 109.65 cm +[]0 d 0 J 0.398 w 0 0 m 3.436 0 l S +Q +BT +/F44 10.9091 Tf 641.113 109.45 Td [(NORMI')]TJ +ET +q +1 0 0 1 699.544 78.287 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +BT +/F15 10.9091 Tf 705.522 109.45 Td [(Ho)28(w)-565(to)-565(estimate)-565(the)-565(sp)-27(ec)-1(tr)1(al)-565(radius)-565(of)]TJ/F22 10.9091 Tf 0 -13.549 Td [(D)]TJ/F26 7.9701 Tf 9.335 3.959 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F22 10.9091 Tf 4.733 -3.959 Td [(A)]TJ/F15 10.9091 Tf 8.181 0 Td [(.)-710(Curren)27(tly)-422(onl)1(y)-422(the)-422(in\014nit)27(y)-422(n)1(orm)]TJ -28.835 -13.549 Td [(estimate)-333(is)-334(a)28(v)56(ailable.)]TJ +ET +q +1 0 0 1 909.925 78.287 cm +[]0 d 0 J 0.398 w 0 0 m 0 40.648 l S +Q +q +1 0 0 1 299.826 78.088 cm +[]0 d 0 J 0.398 w 0 0 m 610.099 0 l S +Q +q +1 0 0 1 299.826 -16.956 cm +[]0 d 0 J 0.398 w 0 0 m 0 94.844 l S +Q +BT +/F44 10.9091 Tf 305.803 68.404 Td [(mld_aggr_omega_val_)]TJ +ET +q +1 0 0 1 420.598 -16.956 cm +[]0 d 0 J 0.398 w 0 0 m 0 94.844 l S +Q +BT +/F44 10.9091 Tf 426.576 68.404 Td [(real\050)]TJ/F18 10.9091 Tf 28.636 0 Td [(kind)]TJ +ET +q +1 0 0 1 475.953 68.604 cm +[]0 d 0 J 0.398 w 0 0 m 3.345 0 l S +Q +BT +/F18 10.9091 Tf 479.299 68.404 Td [(p)51(ar)51(ameter)]TJ/F44 10.9091 Tf 48.568 0 Td [(\051)]TJ +ET +q +1 0 0 1 539.571 -16.956 cm +[]0 d 0 J 0.398 w 0 0 m 0 94.844 l S +Q +BT +/F15 10.9091 Tf 545.549 68.404 Td [(An)28(y)-486(nonnega-)]TJ 0 -13.549 Td [(tiv)28(e)-334(real)-333(n)28(um.)]TJ +ET +q +1 0 0 1 619.558 -16.956 cm +[]0 d 0 J 0.398 w 0 0 m 0 94.844 l S +Q +BT +/F15 10.9091 Tf 625.535 68.404 Td [(4)]TJ/F22 10.9091 Tf 5.455 0 Td [(=)]TJ/F15 10.9091 Tf 5.454 0 Td [(\0503)]TJ/F22 10.9091 Tf 9.697 0 Td [(\032)]TJ/F15 10.9091 Tf 5.641 0 Td [(\050)]TJ/F22 10.9091 Tf 4.242 0 Td [(D)]TJ/F26 7.9701 Tf 9.335 3.959 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F22 10.9091 Tf 4.733 -3.959 Td [(A)]TJ/F15 10.9091 Tf 8.182 0 Td [(\051\051)]TJ +ET +q +1 0 0 1 699.544 -16.956 cm +[]0 d 0 J 0.398 w 0 0 m 0 94.844 l S +Q +BT +/F15 10.9091 Tf 705.522 68.404 Td [(Damping)-534(parameter)]TJ/F22 10.9091 Tf 103.691 0 Td [(!)]TJ/F15 10.9091 Tf 13.012 0 Td [(in)-534(the)-535(smo)-28(othed)]TJ -116.703 -13.549 Td [(aggregation)-576(algorithm.)-1173(It)-576(m)27(u)1(s)-1(t)-576(b)-27(e)-577(set)]TJ 0 -13.549 Td [(b)28(y)-589(the)-589(user)-589(if)]TJ/F44 10.9091 Tf 78.215 0 Td [(USER_CHOICE)]TJ/F15 10.9091 Tf 69.421 0 Td [(w)28(as)-589(sp)-28(eci-)]TJ -147.636 -13.549 Td [(\014ed)-353(for)]TJ/F44 10.9091 Tf 37.733 0 Td [(mld_aggr_omega_alg_)]TJ/F15 10.9091 Tf 108.817 0 Td [(,)-358(otherwise)]TJ -146.55 -13.549 Td [(it)-472(is)-472(computed)-472(b)28(y)-472(the)-472(library)83(,)-506(using)-472(the)]TJ 0 -13.55 Td [(selected)-566(estimate)-565(of)-566(the)-565(s)-1(p)-27(ectral)-566(radius)]TJ/F22 10.9091 Tf 0 -13.549 Td [(\032)]TJ/F15 10.9091 Tf 5.64 0 Td [(\050)]TJ/F22 10.9091 Tf 4.242 0 Td [(D)]TJ/F26 7.9701 Tf 9.335 3.959 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ/F22 10.9091 Tf 4.732 -3.959 Td [(A)]TJ/F15 10.9091 Tf 8.182 0 Td [(\051)-333(of)]TJ/F22 10.9091 Tf 20.303 0 Td [(D)]TJ/F26 7.9701 Tf 9.335 3.959 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F22 10.9091 Tf 4.733 -3.959 Td [(A)]TJ/F15 10.9091 Tf 8.181 0 Td [(.)]TJ +ET +q +1 0 0 1 909.925 -16.956 cm +[]0 d 0 J 0.398 w 0 0 m 0 94.844 l S +Q +q +1 0 0 1 299.826 -17.155 cm +[]0 d 0 J 0.398 w 0 0 m 610.099 0 l S +Q +0 g 0 G +BT +/F15 10.9091 Tf 459.779 -47.844 Td [(T)83(able)-333(4:)-444(P)27(arameters)-333(de\014ning)-333(the)-334(aggregation)-333(algorithm.)]TJ +0 g 0 G +0 g 0 G +ET +1 0 0 1 299.826 121.521 cm +Q +0 g 0 G +0 g 0 G +0 g 0 G +endstream +endobj +433 0 obj << +/Type /Page +/Contents 434 0 R +/Resources 432 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 437 0 R +/Annots [ 431 0 R ] +>> endobj +431 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 739.006 100.627 748.453] +/Subtype /Link +/A << /S /GoTo /D (section.6) >> +>> endobj +435 0 obj << +/D [433 0 R /XYZ 93.6 740.002 null] +>> endobj +436 0 obj << +/D [433 0 R /XYZ 455.641 324.808 null] +>> endobj +432 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F44 200 0 R /F18 173 0 R /F25 176 0 R /F22 175 0 R /F26 272 0 R /F20 273 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +440 0 obj << +/Length 10389 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(26)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +0 g 0 G +ET +1 0 0 1 292.625 715.095 cm +q +0 -1 1 0 0 0 cm +0 g 0 G +0 g 0 G +0 g 0 G +q +1 0 0 1 0 182.719 cm +[]0 d 0 J 0.398 w 0 0 m 612.702 0 l S +Q +q +1 0 0 1 0 168.971 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +1 0 0 1 -292.625 -715.095 cm +BT +/F44 10.9091 Tf 298.603 888.131 Td [(what)]TJ +ET +q +1 0 0 1 419.125 884.066 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F41 10.9091 Tf 425.102 888.131 Td [(d)22(a)67(t)66(a)-377(type)]TJ +ET +q +1 0 0 1 538.098 884.066 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F44 10.9091 Tf 544.076 888.131 Td [(val)]TJ +ET +q +1 0 0 1 640.762 884.066 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F41 10.9091 Tf 646.739 888.131 Td [(def)89(a)22(ul)67(t)]TJ +ET +q +1 0 0 1 694.947 884.066 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F41 10.9091 Tf 700.925 888.131 Td [(comments)]TJ +ET +q +1 0 0 1 905.327 884.066 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +q +1 0 0 1 292.625 883.867 cm +[]0 d 0 J 0.398 w 0 0 m 612.702 0 l S +Q +q +1 0 0 1 292.625 856.569 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 298.603 874.183 Td [(mld_coarse_mat_)]TJ +ET +q +1 0 0 1 419.125 856.569 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 425.102 874.183 Td [(character\050len=*\051)]TJ +ET +q +1 0 0 1 538.098 856.569 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 544.076 874.183 Td [('DISTR')]TJ 0 -13.549 Td [('REPL')]TJ +ET +q +1 0 0 1 640.762 856.569 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 646.739 874.183 Td [('DISTR')]TJ +ET +q +1 0 0 1 694.947 856.569 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 700.925 874.183 Td [(Coarsest)-483(matrix:)-743(distributed)-483(among)-483(the)]TJ 0 -13.549 Td [(pro)-28(cessors)-333(or)-333(re)-1(p)1(licate)-1(d)-333(on)-333(eac)28(h)-334(of)-333(them.)]TJ +ET +q +1 0 0 1 905.327 856.569 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +q +1 0 0 1 292.625 856.37 cm +[]0 d 0 J 0.398 w 0 0 m 612.702 0 l S +Q +q +1 0 0 1 292.625 761.326 cm +[]0 d 0 J 0.398 w 0 0 m 0 94.844 l S +Q +BT +/F44 10.9091 Tf 298.603 846.686 Td [(mld_coarse_solve_)]TJ +ET +q +1 0 0 1 419.125 761.326 cm +[]0 d 0 J 0.398 w 0 0 m 0 94.844 l S +Q +BT +/F44 10.9091 Tf 425.102 846.686 Td [(character\050len=*\051)]TJ +ET +q +1 0 0 1 538.098 761.326 cm +[]0 d 0 J 0.398 w 0 0 m 0 94.844 l S +Q +BT +/F44 10.9091 Tf 544.076 846.686 Td [('BJAC')]TJ 0 -13.549 Td [('UMF')]TJ 0 -13.549 Td [('SLU')]TJ 0 -13.55 Td [('SLUDIST')]TJ +ET +q +1 0 0 1 640.762 761.326 cm +[]0 d 0 J 0.398 w 0 0 m 0 94.844 l S +Q +BT +/F44 10.9091 Tf 646.739 846.686 Td [('BJAC')]TJ +ET +q +1 0 0 1 694.947 761.326 cm +[]0 d 0 J 0.398 w 0 0 m 0 94.844 l S +Q +BT +/F15 10.9091 Tf 700.925 846.686 Td [(Solv)28(er)-504(used)-504(at)-504(the)-504(coarsest)-504(lev)28(el:)-786(blo)-28(c)28(k)]TJ 0 -13.549 Td [(Jacobi,)-517(sequen)28(tial)-481(LU)-480(from)-480(UMFP)83(A)28(CK,)]TJ 0 -13.549 Td [(sequen)28(tial)-369(LU)-369(from)-368(Sup)-28(erLU,)-369(distributed)]TJ 0 -13.55 Td [(LU)-513(fr)1(om)-513(Sup)-28(erLU)]TJ +ET +q +1 0 0 1 792.523 806.238 cm +[]0 d 0 J 0.398 w 0 0 m 3.273 0 l S +Q +BT +/F15 10.9091 Tf 795.795 806.038 Td [(Dist.)]TJ/F44 10.9091 Tf 33.661 0 Td [('SLUDIST')]TJ/F15 10.9091 Tf 57.136 0 Td [(re-)]TJ -185.667 -13.549 Td [(quires)-725(the)-726(coarsest)-725(m)-1(atr)1(ix)-726(to)-725(b)-28(e)-726(dis-)]TJ 0 -13.549 Td [(tributed,)-456(whil)1(e)]TJ/F44 10.9091 Tf 76.374 0 Td [('UMF')]TJ/F15 10.9091 Tf 33.339 0 Td [(and)]TJ/F44 10.9091 Tf 22.281 0 Td [('SLU')]TJ/F15 10.9091 Tf 33.34 0 Td [(require)]TJ -165.334 -13.549 Td [(it)-333(to)-334(b)-27(e)-334(replicated.)]TJ +ET +q +1 0 0 1 905.327 761.326 cm +[]0 d 0 J 0.398 w 0 0 m 0 94.844 l S +Q +q +1 0 0 1 292.625 761.127 cm +[]0 d 0 J 0.398 w 0 0 m 612.702 0 l S +Q +q +1 0 0 1 292.625 693.182 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +BT +/F44 10.9091 Tf 298.603 751.443 Td [(mld_coarse_subsolve_)]TJ +ET +q +1 0 0 1 419.125 693.182 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +BT +/F44 10.9091 Tf 425.102 751.443 Td [(character\050len=*\051)]TJ +ET +q +1 0 0 1 538.098 693.182 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +BT +/F44 10.9091 Tf 544.076 751.443 Td [('ILU')]TJ 0 -13.549 Td [('MILU')]TJ 0 -13.549 Td [('ILUT')]TJ 0 -13.549 Td [('UMF')]TJ 0 -13.55 Td [('SLU')]TJ +ET +q +1 0 0 1 640.762 693.182 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +BT +/F15 10.9091 Tf 646.739 751.443 Td [(See)-333(note)]TJ +ET +q +1 0 0 1 694.947 693.182 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +BT +/F15 10.9091 Tf 700.925 751.443 Td [(Solv)28(er)-243(for)-242(the)-242(diagonal)-243(blo)-28(c)28(ks)-242(of)-243(the)-242(coarse)]TJ 0 -13.549 Td [(matrix,)-609(in)-555(case)-554(the)-554(blo)-28(c)28(k)-554(Jacobi)-555(solv)28(er)]TJ 0 -13.549 Td [(is)-360(c)28(hosen)-361(as)-360(coarsest-lev)28(el)-360(solv)27(er:)-498(ILU\050)]TJ/F22 10.9091 Tf 185.663 0 Td [(p)]TJ/F15 10.9091 Tf 5.489 0 Td [(\051,)]TJ -191.152 -13.549 Td [(MILU\050)]TJ/F22 10.9091 Tf 33.182 0 Td [(p)]TJ/F15 10.9091 Tf 5.488 0 Td [(\051,)-271(ILU\050)]TJ/F22 10.9091 Tf 33.416 0 Td [(p;)-167(t)]TJ/F15 10.9091 Tf 14.277 0 Td [(\051,)-271(LU)-256(from)-256(UMFP)83(A)28(CK,)]TJ -86.363 -13.55 Td [(LU)-333(from)-334(Sup)-27(erLU,)-334(plu)1(s)-334(triangular)-333(solv)28(e.)]TJ +ET +q +1 0 0 1 905.327 693.182 cm +[]0 d 0 J 0.398 w 0 0 m 0 67.746 l S +Q +q +1 0 0 1 292.625 692.982 cm +[]0 d 0 J 0.398 w 0 0 m 612.702 0 l S +Q +q +1 0 0 1 292.625 665.685 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 298.603 683.299 Td [(mld_coarse_sweeps_)]TJ +ET +q +1 0 0 1 419.125 665.685 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 425.102 683.299 Td [(integer)]TJ +ET +q +1 0 0 1 538.098 665.685 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 544.076 683.299 Td [(An)28(y)-333(in)27(t.)-333(n)28(um.)]TJ/F22 10.9091 Tf 70.606 0 Td [(>)]TJ/F15 10.9091 Tf 11.515 0 Td [(0)]TJ +ET +q +1 0 0 1 640.762 665.685 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 646.739 683.299 Td [(4)]TJ +ET +q +1 0 0 1 694.947 665.685 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 700.925 683.299 Td [(Num)28(b)-28(er)-766(of)-766(Blo)-28(c)28(k-Jacobi)-766(sw)28(eeps)-766(when)]TJ 0 -13.55 Td [('BJA)28(C')-334(is)-333(used)-333(as)-334(coarsest-lev)28(el)-333(solv)27(er.)]TJ +ET +q +1 0 0 1 905.327 665.685 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +q +1 0 0 1 292.625 665.485 cm +[]0 d 0 J 0.398 w 0 0 m 612.702 0 l S +Q +q +1 0 0 1 292.625 638.188 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 298.603 655.802 Td [(mld_coarse_fillin_)]TJ +ET +q +1 0 0 1 419.125 638.188 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 425.102 655.802 Td [(integer)]TJ +ET +q +1 0 0 1 538.098 638.188 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 544.076 655.802 Td [(An)28(y)-333(in)27(t.)-333(n)28(um.)]TJ/F25 10.9091 Tf 70.606 0 Td [(\025)]TJ/F15 10.9091 Tf 11.515 0 Td [(0)]TJ +ET +q +1 0 0 1 640.762 638.188 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 646.739 655.802 Td [(0)]TJ +ET +q +1 0 0 1 694.947 638.188 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 700.925 655.802 Td [(Fill-in)-276(lev)28(el)]TJ/F22 10.9091 Tf 56.177 0 Td [(p)]TJ/F15 10.9091 Tf 8.501 0 Td [(of)-276(the)-276(incomplete)-276(LU)-277(f)1(ac)-1(tor)1(-)]TJ -64.678 -13.549 Td [(izations.)]TJ +ET +q +1 0 0 1 905.327 638.188 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +q +1 0 0 1 292.625 637.989 cm +[]0 d 0 J 0.398 w 0 0 m 612.702 0 l S +Q +q +1 0 0 1 292.625 610.691 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 298.603 628.305 Td [(mld_coarse_iluthrs_)]TJ +ET +q +1 0 0 1 419.125 610.691 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F44 10.9091 Tf 425.102 628.305 Td [(real\050)]TJ/F18 10.9091 Tf 28.636 0 Td [(kind)]TJ +ET +q +1 0 0 1 474.48 628.504 cm +[]0 d 0 J 0.398 w 0 0 m 3.345 0 l S +Q +BT +/F18 10.9091 Tf 477.825 628.305 Td [(p)51(ar)51(ameter)]TJ/F44 10.9091 Tf 48.568 0 Td [(\051)]TJ +ET +q +1 0 0 1 538.098 610.691 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 544.076 628.305 Td [(An)28(y)-289(real.)-290(n)28(um.)]TJ/F25 10.9091 Tf 73.739 0 Td [(\025)]TJ/F15 10.9091 Tf 11.515 0 Td [(0)]TJ +ET +q +1 0 0 1 640.762 610.691 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 646.739 628.305 Td [(0)]TJ +ET +q +1 0 0 1 694.947 610.691 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +BT +/F15 10.9091 Tf 700.925 628.305 Td [(Drop)-256(tolerance)]TJ/F22 10.9091 Tf 72.777 0 Td [(t)]TJ/F15 10.9091 Tf 6.736 0 Td [(in)-256(the)-257(ILU\050)]TJ/F22 10.9091 Tf 53.02 0 Td [(p;)-167(t)]TJ/F15 10.9091 Tf 14.276 0 Td [(\051)-256(factoriza-)]TJ -146.809 -13.549 Td [(tion.)]TJ +ET +q +1 0 0 1 905.327 610.691 cm +[]0 d 0 J 0.398 w 0 0 m 0 27.098 l S +Q +q +1 0 0 1 292.625 610.492 cm +[]0 d 0 J 0.398 w 0 0 m 612.702 0 l S +Q +q +1 0 0 1 292.625 596.743 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F43 10.9091 Tf 298.603 600.808 Td [(Note:)]TJ/F15 10.9091 Tf 35.053 0 Td [(defaults)-333(for)]TJ/F44 10.9091 Tf 57.666 0 Td [(m)]TJ/F15 10.9091 Tf 5.728 0 Td [(ld)]TJ +ET +q +1 0 0 1 406.795 601.007 cm +[]0 d 0 J 0.398 w 0 0 m 3.273 0 l S +Q +BT +/F15 10.9091 Tf 410.068 600.808 Td [(coarse)]TJ +ET +q +1 0 0 1 439.904 601.007 cm +[]0 d 0 J 0.398 w 0 0 m 3.273 0 l S +Q +BT +/F15 10.9091 Tf 443.177 600.808 Td [(subsolv)28(e)]TJ +ET +q +1 0 0 1 483.347 601.007 cm +[]0 d 0 J 0.398 w 0 0 m 3.273 0 l S +Q +BT +/F15 10.9091 Tf 490.256 600.808 Td [(are)-333(c)27(hosen)-333(as)]TJ +ET +q +1 0 0 1 905.327 596.743 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +q +1 0 0 1 292.625 583.194 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F15 10.9091 Tf 298.603 587.259 Td [(single)-333(precision)-334(v)28(ersion:)-444('SLU')-334(i)1(f)-334(installed,)-333('ILU')-333(otherwise)]TJ +ET +q +1 0 0 1 905.327 583.194 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +q +1 0 0 1 292.625 569.645 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +BT +/F15 10.9091 Tf 298.603 573.71 Td [(double)-333(precision)-334(v)28(ersion:)-444('UMF')-333(if)-334(installed,)-333(else)-333('SLU')-334(if)-333(installed,)-333('ILU')-333(otherwise)]TJ +ET +q +1 0 0 1 905.327 569.645 cm +[]0 d 0 J 0.398 w 0 0 m 0 13.549 l S +Q +q +1 0 0 1 292.625 569.446 cm +[]0 d 0 J 0.398 w 0 0 m 612.702 0 l S +Q +0 g 0 G +BT +/F15 10.9091 Tf 403.64 538.757 Td [(T)83(able)-333(5:)-444(P)27(arameters)-333(de\014ning)-333(the)-334(coarse-space)-333(correction)-333(at)-334(the)-333(coarsest)-334(l)1(e)-1(v)28(el.)]TJ +0 g 0 G +0 g 0 G +ET +1 0 0 1 292.625 715.095 cm +Q +0 g 0 G +0 g 0 G +0 g 0 G +endstream +endobj +439 0 obj << +/Type /Page +/Contents 440 0 R +/Resources 438 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 437 0 R +>> endobj +441 0 obj << +/D [439 0 R /XYZ 86.4 740.002 null] +>> endobj +356 0 obj << +/D [439 0 R /XYZ 129.836 560.748 null] +>> endobj +438 0 obj << +/Font << /F15 123 0 R /F41 124 0 R /F44 200 0 R /F22 175 0 R /F25 176 0 R /F18 173 0 R /F43 158 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +448 0 obj << +/Length 3122 +>> +stream +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F41 10.9091 Tf 93.6 740.002 Td [(6)]TJ +0 g 0 G + [-378(User)-377(Interf)88(a)23(ce)]TJ/F15 10.9091 Tf 401.542 0 Td [(27)]TJ +0 g 0 G +/F17 11.9552 Tf -401.542 -35.866 Td [(6.3)-1125(Subroutine)-375(mld)]TJ +ET +q +1 0 0 1 216.622 704.336 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F17 11.9552 Tf 220.657 704.136 Td [(precbld)]TJ +0 g 0 G +0 g 0 G +/F44 10.9091 Tf -1.012 -20.594 Td [(mld_precbld\050a,desc_a,p,info\051)]TJ/F15 10.9091 Tf -126.045 -25.505 Td [(This)-319(r)1(outine)-319(builds)-318(the)-319(preconditioner)-318(according)-319(t)1(o)-319(the)-318(requiremen)27(ts)-318(made)-319(b)28(y)-318(the)-319(user)]TJ 0 -13.549 Td [(through)-333(the)-334(r)1(outines)]TJ/F44 10.9091 Tf 101.94 0 Td [(mld_precinit)]TJ/F15 10.9091 Tf 72.363 0 Td [(and)]TJ/F44 10.9091 Tf 21.212 0 Td [(mld_precset)]TJ/F15 10.9091 Tf 62.999 0 Td [(.)]TJ/F17 11.9552 Tf -258.514 -40.647 Td [(Argumen)31(ts)]TJ/F44 10.9091 Tf 22.914 -12.806 Td [(a)-3689(type\050psb_)]TJ/F18 10.9091 Tf 97.516 0 Td [(x)]TJ/F44 10.9091 Tf 6.374 0 Td [(spmat_type\051,)-525(intent\050in\051)]TJ/F15 10.9091 Tf 131.726 0 Td [(.)]TJ -189.645 -13.549 Td [(The)-501(sparse)-501(matrix)-501(structure)-501(con)28(taining)-501(th)1(e)-501(lo)-28(cal)-501(part)-501(of)-501(the)-501(matrix)]TJ 0 -13.549 Td [(to)-470(b)-28(e)-469(preconditioned.)-854(Note)-470(that)]TJ/F18 10.9091 Tf 166.818 0 Td [(x)]TJ/F15 10.9091 Tf 11.5 0 Td [(m)28(ust)-470(b)-28(e)-470(c)28(hosen)-470(according)-470(to)-469(the)]TJ -178.318 -13.549 Td [(real/complex,)-534(single/doubl)1(e)-494(precision)-494(v)28(ersion)-493(of)-494(MLD2P4)-493(under)-494(use.)]TJ 0 -13.549 Td [(See)-333(the)-334(PSBLAS)-333(User's)-333(Guide)-334(for)-333(details)-333([)]TJ +1 0 0 rg 1 0 0 RG + [(14)]TJ +0 g 0 G + [(].)]TJ/F44 10.9091 Tf -45.971 -13.55 Td [(desc_a)-1064(type\050psb_desc_type\051,)-525(intent\050in\051)]TJ/F15 10.9091 Tf 223.515 0 Td [(.)]TJ -177.544 -13.549 Td [(The)-354(comm)28(unication)-354(descriptor)-354(of)]TJ/F44 10.9091 Tf 162.836 0 Td [(a)]TJ/F15 10.9091 Tf 5.727 0 Td [(.)-506(See)-354(the)-354(PSBLAS)-354(User's)-353(Guide)-354(for)]TJ -168.563 -13.549 Td [(details)-333([)]TJ +1 0 0 rg 1 0 0 RG + [(14)]TJ +0 g 0 G + [(].)]TJ/F44 10.9091 Tf -45.971 -13.549 Td [(p)-3689(type\050mld_)]TJ/F18 10.9091 Tf 97.516 0 Td [(x)]TJ/F44 10.9091 Tf 6.374 0 Td [(prec_type\051,)-525(intent\050inout\051)]TJ/F15 10.9091 Tf 143.18 0 Td [(.)]TJ -201.099 -13.549 Td [(The)-478(preconditioner)-478(data)-478(structure.)-878(Note)-478(that)]TJ/F18 10.9091 Tf 233.108 0 Td [(x)]TJ/F15 10.9091 Tf 11.589 0 Td [(m)28(ust)-478(b)-28(e)-478(c)28(hosen)-478(ac-)]TJ -244.697 -13.55 Td [(cording)-269(to)-269(the)-270(real/complex,)-282(single/double)-269(precision)-269(v)27(ersion)-269(of)-269(MLD2P4)]TJ 0 -13.549 Td [(under)-333(use.)]TJ/F44 10.9091 Tf -45.971 -13.549 Td [(info)-2114(integer,)-525(intent\050out\051)]TJ/F15 10.9091 Tf 160.515 0 Td [(.)]TJ -114.544 -13.549 Td [(Error)-333(co)-28(de.)-444(If)-334(no)-333(error,)-333(0)-334(is)-333(returned.)-444(See)-334(Section)]TJ +0 0 1 rg 0 0 1 RG + [-333(7)]TJ +0 g 0 G + [-333(for)-334(details.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +447 0 obj << +/Type /Page +/Contents 448 0 R +/Resources 446 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 437 0 R +/Annots [ 445 0 R 442 0 R 443 0 R 444 0 R ] +>> endobj +445 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 739.006 100.627 748.453] +/Subtype /Link +/A << /S /GoTo /D (section.6) >> +>> endobj +442 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [364.686 535.842 377.588 544.865] +/Subtype /Link +/A << /S /GoTo /D (cite.PSBLASGUIDE) >> +>> endobj +443 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [199.125 495.195 212.027 504.218] +/Subtype /Link +/A << /S /GoTo /D (cite.PSBLASGUIDE) >> +>> endobj +444 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [402.247 409.835 409.694 423.468] +/Subtype /Link +/A << /S /GoTo /D (section.7) >> +>> endobj +449 0 obj << +/D [447 0 R /XYZ 93.6 740.002 null] +>> endobj +78 0 obj << +/D [447 0 R /XYZ 93.6 715.095 null] +>> endobj +446 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F17 111 0 R /F44 200 0 R /F18 173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +453 0 obj << +/Length 9096 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(28)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +/F17 11.9552 Tf -203.265 -35.866 Td [(6.4)-1125(Subroutine)-375(mld)]TJ +ET +q +1 0 0 1 209.422 704.336 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F17 11.9552 Tf 213.457 704.136 Td [(precaply)]TJ +0 g 0 G +0 g 0 G +/F44 10.9091 Tf -9.603 -20.594 Td [(mld_precaply\050p,x,y,desc_a,info\051)]TJ -31.5 -13.549 Td [(mld_precaply\050p,x,y,desc_a,info,trans,work\051)]TJ/F15 10.9091 Tf -85.954 -25.505 Td [(This)-382(routine)-381(computes)]TJ/F22 10.9091 Tf 112.644 0 Td [(y)]TJ/F15 10.9091 Tf 9.65 0 Td [(=)]TJ/F22 10.9091 Tf 12.394 0 Td [(op)]TJ/F15 10.9091 Tf 10.777 0 Td [(\050)]TJ/F22 10.9091 Tf 4.242 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 3.959 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F15 10.9091 Tf 4.733 -3.959 Td [(\051)]TJ/F22 10.9091 Tf 6.06 0 Td [(x)]TJ/F15 10.9091 Tf 6.235 0 Td [(,)-394(where)]TJ/F22 10.9091 Tf 39.4 0 Td [(M)]TJ/F15 10.9091 Tf 15.937 0 Td [(is)-382(a)-381(previously)-382(built)-382(precondi)1(tioner,)]TJ -240.431 -13.549 Td [(stored)-423(in)27(to)]TJ/F44 10.9091 Tf 56.907 0 Td [(p)]TJ/F15 10.9091 Tf 5.727 0 Td [(,)-446(and)]TJ/F22 10.9091 Tf 30.092 0 Td [(op)]TJ/F15 10.9091 Tf 15.397 0 Td [(denotes)-424(th)1(e)-424(preconditioner)-423(itself)-424(or)-423(its)-424(transp)-28(ose,)-446(according)-423(to)]TJ -108.123 -13.549 Td [(the)-496(v)56(alue)-496(of)]TJ/F44 10.9091 Tf 64.719 0 Td [(trans)]TJ/F15 10.9091 Tf 28.636 0 Td [(.)-933(Note)-496(that,)-536(when)-496(MLD2P4)-496(is)-496(used)-496(with)-496(a)-496(Krylo)27(v)-496(solv)28(er)-496(from)]TJ -93.355 -13.549 Td [(PSBLAS,)]TJ/F44 10.9091 Tf 49.363 0 Td [(mld_precaply)]TJ/F15 10.9091 Tf 72.787 0 Td [(is)-372(called)-372(within)-373(th)1(e)-373(PSBLAS)-372(routine)]TJ/F44 10.9091 Tf 180.666 0 Td [(psb_krylov)]TJ/F15 10.9091 Tf 61.332 0 Td [(and)-372(hence)]TJ -364.148 -13.55 Td [(it)-333(is)-334(completely)-333(transparen)28(t)-333(to)-334(the)-333(user.)]TJ/F17 11.9552 Tf 0 -40.647 Td [(Argumen)31(ts)]TJ/F44 10.9091 Tf 22.914 -12.805 Td [(p)-3689(type\050mld_)]TJ/F18 10.9091 Tf 97.516 0 Td [(x)]TJ/F44 10.9091 Tf 6.374 0 Td [(prec_type\051,)-525(intent\050inout\051)]TJ/F15 10.9091 Tf 143.18 0 Td [(.)]TJ -201.099 -13.55 Td [(The)-282(p)1(re)-1(cond)1(itioner)-282(data)-281(structure,)-292(con)28(taining)-282(the)-281(lo)-28(cal)-282(part)-281(of)]TJ/F22 10.9091 Tf 297.967 0 Td [(M)]TJ/F15 10.9091 Tf 11.773 0 Td [(.)-427(Note)]TJ -309.74 -13.549 Td [(that)]TJ/F18 10.9091 Tf 25.362 0 Td [(x)]TJ/F15 10.9091 Tf 11.737 0 Td [(m)28(ust)-492(b)-27(e)-492(c)28(hosen)-492(according)-491(to)-492(the)-491(real/com)-1(p)1(lex,)-532(single/dou)1(ble)]TJ -37.099 -13.549 Td [(precision)-333(v)28(e)-1(rsion)-333(of)-333(MLD2P4)-333(under)-334(use.)]TJ/F44 10.9091 Tf -45.971 -13.549 Td [(x)]TJ/F18 10.9091 Tf 45.971 0 Td [(typ)51(e)]TJ/F44 10.9091 Tf 19.777 0 Td [(\050)]TJ/F18 10.9091 Tf 5.727 0 Td [(kind)]TJ +ET +q +1 0 0 1 201.531 482.841 cm +[]0 d 0 J 0.398 w 0 0 m 3.345 0 l S +Q +BT +/F18 10.9091 Tf 204.876 482.642 Td [(p)51(ar)51(ameter)]TJ/F44 10.9091 Tf 48.568 0 Td [(\051,)-525(dimension\050:\051,)-525(intent\050in\051)]TJ/F15 10.9091 Tf 154.635 0 Td [(.)]TJ -252.794 -13.549 Td [(The)-300(lo)-28(cal)-300(part)-301(of)-300(the)-300(v)28(ector)]TJ/F22 10.9091 Tf 133.655 0 Td [(x)]TJ/F15 10.9091 Tf 6.235 0 Td [(.)-433(Note)-301(that)]TJ/F18 10.9091 Tf 57.038 0 Td [(typ)51(e)]TJ/F15 10.9091 Tf 23.053 0 Td [(and)]TJ/F18 10.9091 Tf 20.851 0 Td [(kind)]TJ +ET +q +1 0 0 1 416.859 469.292 cm +[]0 d 0 J 0.398 w 0 0 m 3.345 0 l S +Q +BT +/F18 10.9091 Tf 420.204 469.093 Td [(p)51(ar)51(ameter)]TJ/F15 10.9091 Tf 51.844 0 Td [(m)28(ust)]TJ -316.763 -13.55 Td [(b)-28(e)-263(c)28(hosen)-264(accordi)1(ng)-264(to)-263(the)-263(real/complex,)-277(single/double)-264(pr)1(e)-1(cision)-263(v)28(ersion)]TJ 0 -13.549 Td [(of)-333(MLD2P4)-334(u)1(nder)-334(use.)]TJ/F44 10.9091 Tf -45.971 -13.549 Td [(y)]TJ/F18 10.9091 Tf 45.971 0 Td [(typ)51(e)]TJ/F44 10.9091 Tf 19.777 0 Td [(\050)]TJ/F18 10.9091 Tf 5.727 0 Td [(kind)]TJ +ET +q +1 0 0 1 201.531 428.644 cm +[]0 d 0 J 0.398 w 0 0 m 3.345 0 l S +Q +BT +/F18 10.9091 Tf 204.876 428.445 Td [(p)51(ar)51(ameter)]TJ/F44 10.9091 Tf 48.568 0 Td [(\051,)-525(dimension\050:\051,)-525(intent\050out\051)]TJ/F15 10.9091 Tf 160.362 0 Td [(.)]TJ -258.521 -13.549 Td [(The)-304(lo)-28(cal)-304(part)-305(of)-304(the)-304(v)28(ector)]TJ/F22 10.9091 Tf 133.917 0 Td [(y)]TJ/F15 10.9091 Tf 5.74 0 Td [(.)-435(Note)-304(that)]TJ/F18 10.9091 Tf 57.14 0 Td [(typ)51(e)]TJ/F15 10.9091 Tf 23.096 0 Td [(and)]TJ/F18 10.9091 Tf 20.896 0 Td [(kind)]TJ +ET +q +1 0 0 1 416.815 415.095 cm +[]0 d 0 J 0.398 w 0 0 m 3.345 0 l S +Q +BT +/F18 10.9091 Tf 420.161 414.896 Td [(p)51(ar)51(ameter)]TJ/F15 10.9091 Tf 51.887 0 Td [(m)28(ust)]TJ -316.763 -13.549 Td [(b)-28(e)-263(c)28(hosen)-264(accordi)1(ng)-264(to)-263(the)-263(real/complex,)-277(single/double)-264(pr)1(e)-1(cision)-263(v)28(ersion)]TJ 0 -13.55 Td [(of)-333(MLD2P4)-334(u)1(nder)-334(use.)]TJ/F44 10.9091 Tf -45.971 -13.549 Td [(desc_a)-1064(type\050psb_desc_type\051,)-525(intent\050in\051)]TJ/F15 10.9091 Tf 223.514 0 Td [(.)]TJ -177.543 -13.549 Td [(The)-319(c)-1(omm)28(unication)-319(descriptor)-320(asso)-28(ciated)-319(to)-320(th)1(e)-320(matrix)-319(to)-320(b)-28(e)-319(precondi-)]TJ 0 -13.549 Td [(tioned.)]TJ/F44 10.9091 Tf -45.971 -13.549 Td [(info)-2114(integer,)-525(intent\050out\051)]TJ/F15 10.9091 Tf 160.515 0 Td [(.)]TJ -114.544 -13.549 Td [(Error)-333(co)-28(de.)-444(If)-334(no)-333(error,)-333(0)-334(is)-333(returned.)-444(See)-334(Section)]TJ +0 0 1 rg 0 0 1 RG + [-333(7)]TJ +0 g 0 G + [-333(for)-334(d)1(e)-1(tail)1(s)-1(.)]TJ/F44 10.9091 Tf -45.971 -13.55 Td [(trans)-1589(character\050len=1\051,)-525(optional,)-525(intent\050in\051.)]TJ/F15 10.9091 Tf 45.971 -13.549 Td [(If)]TJ/F44 10.9091 Tf 13.647 0 Td [(trans)]TJ/F15 10.9091 Tf 35.01 0 Td [(=)]TJ/F44 10.9091 Tf 14.86 0 Td [('N','n')]TJ/F15 10.9091 Tf 46.465 0 Td [(then)]TJ/F22 10.9091 Tf 27.586 0 Td [(op)]TJ/F15 10.9091 Tf 10.777 0 Td [(\050)]TJ/F22 10.9091 Tf 4.242 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 3.959 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F15 10.9091 Tf 4.733 -3.959 Td [(\051)-696(=)]TJ/F22 10.9091 Tf 27.914 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 3.959 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ/F15 10.9091 Tf 4.732 -3.959 Td [(;)-710(if)]TJ/F44 10.9091 Tf 23.512 0 Td [(trans)]TJ/F15 10.9091 Tf 35.01 0 Td [(=)]TJ/F44 10.9091 Tf 14.86 0 Td [('T','t')]TJ/F15 10.9091 Tf -300.067 -13.549 Td [(then)]TJ/F22 10.9091 Tf 25.695 0 Td [(op)]TJ/F15 10.9091 Tf 10.777 0 Td [(\050)]TJ/F22 10.9091 Tf 4.242 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 3.959 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ/F15 10.9091 Tf 4.732 -3.959 Td [(\051)-407(=)]TJ/F22 10.9091 Tf 21.611 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 3.959 Td [(\000)]TJ/F23 7.9701 Tf 6.587 0 Td [(T)]TJ/F15 10.9091 Tf 11.087 -3.959 Td [(\050transp)-28(ose)-411(of)]TJ/F22 10.9091 Tf 67.301 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 3.959 Td [(\000)]TJ/F20 7.9701 Tf 6.586 0 Td [(1)]TJ/F15 10.9091 Tf 4.732 -3.959 Td [(\051;)-450(if)]TJ/F44 10.9091 Tf 23.027 0 Td [(trans)]TJ/F15 10.9091 Tf 33.12 0 Td [(=)]TJ/F44 10.9091 Tf 12.968 0 Td [('C','c')]TJ/F15 10.9091 Tf 44.574 0 Td [(then)]TJ/F22 10.9091 Tf -318.945 -13.549 Td [(op)]TJ/F15 10.9091 Tf 10.776 0 Td [(\050)]TJ/F22 10.9091 Tf 4.243 0 Td [(M)]TJ/F26 7.9701 Tf 11.772 3.959 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ/F15 10.9091 Tf 4.732 -3.959 Td [(\051)-278(=)]TJ/F22 10.9091 Tf 18.788 0 Td [(M)]TJ/F26 7.9701 Tf 11.773 3.959 Td [(\000)]TJ/F23 7.9701 Tf 6.586 0 Td [(C)]TJ/F15 10.9091 Tf 10.733 -3.959 Td [(\050conjugate)-333(transp)-28(ose)-333(of)]TJ/F22 10.9091 Tf 115.001 0 Td [(M)]TJ/F26 7.9701 Tf 11.772 3.959 Td [(\000)]TJ/F20 7.9701 Tf 6.587 0 Td [(1)]TJ/F15 10.9091 Tf 4.732 -3.959 Td [(\051.)]TJ/F44 10.9091 Tf -270.053 -13.549 Td [(work)]TJ/F18 10.9091 Tf 45.971 0 Td [(typ)51(e)]TJ/F44 10.9091 Tf 19.777 0 Td [(\050)]TJ/F18 10.9091 Tf 5.727 0 Td [(kind)]TJ +ET +q +1 0 0 1 201.531 252.505 cm +[]0 d 0 J 0.398 w 0 0 m 3.345 0 l S +Q +BT +/F18 10.9091 Tf 204.876 252.306 Td [(p)51(ar)51(ameter)]TJ/F44 10.9091 Tf 48.568 0 Td [(\051,)-525(dimension\050:\051,)-525(optional,)-525(target)]TJ/F15 10.9091 Tf 188.998 0 Td [(.)]TJ -287.157 -13.55 Td [(W)83(orkspace.)-1532(Its)-696(size)-697(shou)1(ld)-696(b)-28(e)-696(at)-696(least)]TJ/F44 10.9091 Tf 219.886 0 Td [(4)-525(*)-525(psb_cd_get_local_)]TJ -219.886 -13.549 Td [(cols\050desc_a\051)]TJ/F15 10.9091 Tf 73.906 0 Td [(\050see)-475(the)-475(PSBLAS)-474(User's)-475(Guide\051.)-869(Note)-475(th)1(at)]TJ/F18 10.9091 Tf 223.719 0 Td [(typ)51(e)]TJ/F15 10.9091 Tf 24.956 0 Td [(and)]TJ/F18 10.9091 Tf -322.581 -13.549 Td [(kind)]TJ +ET +q +1 0 0 1 176.026 211.857 cm +[]0 d 0 J 0.398 w 0 0 m 3.345 0 l S +Q +BT +/F18 10.9091 Tf 179.372 211.658 Td [(p)51(ar)51(ameter)]TJ/F15 10.9091 Tf 54.627 0 Td [(m)28(ust)-556(b)-27(e)-556(c)28(hosen)-555(ac)-1(cordi)1(ng)-556(to)-555(the)-556(real/complex,)-611(sin-)]TJ -78.714 -13.549 Td [(gle/double)-333(precision)-334(v)28(ersion)-333(of)-333(MLD2P4)-334(und)1(e)-1(r)-333(use.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +452 0 obj << +/Type /Page +/Contents 453 0 R +/Resources 451 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 437 0 R +/Annots [ 450 0 R ] +>> endobj +450 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [395.046 314.99 402.493 328.624] +/Subtype /Link +/A << /S /GoTo /D (section.7) >> +>> endobj +454 0 obj << +/D [452 0 R /XYZ 86.4 740.002 null] +>> endobj +82 0 obj << +/D [452 0 R /XYZ 86.4 715.095 null] +>> endobj +451 0 obj << +/Font << /F15 123 0 R /F41 124 0 R /F17 111 0 R /F44 200 0 R /F22 175 0 R /F26 272 0 R /F20 273 0 R /F18 173 0 R /F23 271 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +459 0 obj << +/Length 1564 +>> +stream +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F41 10.9091 Tf 93.6 740.002 Td [(6)]TJ +0 g 0 G + [-378(User)-377(Interf)88(a)23(ce)]TJ/F15 10.9091 Tf 401.542 0 Td [(29)]TJ +0 g 0 G +/F17 11.9552 Tf -401.542 -35.866 Td [(6.5)-1125(Subroutine)-375(mld)]TJ +ET +q +1 0 0 1 216.622 704.336 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F17 11.9552 Tf 220.657 704.136 Td [(precfree)]TJ +0 g 0 G +0 g 0 G +/F44 10.9091 Tf 21.897 -20.594 Td [(mld_precfree\050p,info\051)]TJ/F15 10.9091 Tf -148.954 -25.505 Td [(This)-333(routine)-334(deallo)-27(cates)-334(the)-333(preconditioner)-333(data)-334(structur)1(e)-1(.)]TJ/F17 11.9552 Tf 0 -40.647 Td [(Argumen)31(ts)]TJ/F44 10.9091 Tf 22.914 -12.805 Td [(p)-3689(type\050mld_)]TJ/F18 10.9091 Tf 97.516 0 Td [(x)]TJ/F44 10.9091 Tf 6.374 0 Td [(prec_type\051,)-525(intent\050inout\051)]TJ/F15 10.9091 Tf 143.18 0 Td [(.)]TJ -201.099 -13.55 Td [(The)-267(preconditioner)-267(data)-268(stru)1(c)-1(tu)1(re.)-423(Note)-267(that)]TJ/F18 10.9091 Tf 216.639 0 Td [(x)]TJ/F15 10.9091 Tf 9.29 0 Td [(m)28(ust)-267(b)-28(e)-267(c)27(hosen)]TJ -225.929 -13.549 Td [(according)-352(to)-352(the)-352(real/complex,)-357(single/double)-352(precision)-352(v)28(ersion)]TJ 0 -13.549 Td [(of)-333(MLD2P4)-334(un)1(der)-334(use.)]TJ/F44 10.9091 Tf -45.971 -13.549 Td [(info)-2114(integer,)-525(intent\050out\051)]TJ/F15 10.9091 Tf 160.515 0 Td [(.)]TJ -114.544 -13.549 Td [(Error)-308(co)-28(de.)-435(If)-308(no)-308(error,)-313(0)-308(is)-308(returned.)-436(See)-308(S)1(e)-1(ction)]TJ +0 0 1 rg 0 0 1 RG + [-307(7)]TJ +0 g 0 G + [-308(for)-308(details.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +458 0 obj << +/Type /Page +/Contents 459 0 R +/Resources 457 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 437 0 R +/Annots [ 456 0 R 455 0 R ] +>> endobj +456 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 739.006 100.627 748.453] +/Subtype /Link +/A << /S /GoTo /D (section.6) >> +>> endobj +455 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [399.894 531.778 407.341 545.411] +/Subtype /Link +/A << /S /GoTo /D (section.7) >> +>> endobj +460 0 obj << +/D [458 0 R /XYZ 93.6 740.002 null] +>> endobj +86 0 obj << +/D [458 0 R /XYZ 93.6 715.095 null] +>> endobj +457 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F17 111 0 R /F44 200 0 R /F18 173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +464 0 obj << +/Length 2271 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(30)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +/F17 11.9552 Tf -203.265 -35.866 Td [(6.6)-1125(Subroutine)-375(mld)]TJ +ET +q +1 0 0 1 209.422 704.336 cm +[]0 d 0 J 0.398 w 0 0 m 4.035 0 l S +Q +BT +/F17 11.9552 Tf 213.457 704.136 Td [(precdescr)]TJ +0 g 0 G +0 g 0 G +/F44 10.9091 Tf 19.033 -20.594 Td [(mld_precdescr\050p,info\051)]TJ -14.318 -13.549 Td [(mld_precdescr\050p,info,iout\051)]TJ/F15 10.9091 Tf -131.772 -25.505 Td [(This)-364(routine)-364(prin)28(ts)-365(a)-364(description)-364(of)-364(the)-365(preconditioner)-364(to)-364(the)-364(standard)-364(output)-365(or)-364(to)-364(a)]TJ 0 -13.549 Td [(\014le.)-444(It)-334(m)28(ust)-333(b)-28(e)-333(called)-334(after)]TJ/F44 10.9091 Tf 132.212 0 Td [(mld_precbld)]TJ/F15 10.9091 Tf 66.636 0 Td [(has)-333(b)-28(een)-333(called.)]TJ/F17 11.9552 Tf -198.848 -40.648 Td [(Argumen)31(ts)]TJ/F44 10.9091 Tf 22.914 -12.805 Td [(p)-3689(type\050mld_)]TJ/F18 10.9091 Tf 97.516 0 Td [(x)]TJ/F44 10.9091 Tf 6.374 0 Td [(prec_type\051,)-525(intent\050in\051)]TJ/F15 10.9091 Tf 125.998 0 Td [(.)]TJ -183.917 -13.549 Td [(The)-478(preconditioner)-478(data)-478(structure.)-878(Note)-478(that)]TJ/F18 10.9091 Tf 233.108 0 Td [(x)]TJ/F15 10.9091 Tf 11.588 0 Td [(m)28(ust)-478(b)-28(e)-478(c)28(hosen)-478(ac-)]TJ -244.696 -13.549 Td [(cording)-269(to)-269(the)-270(real/complex,)-282(single/double)-269(precision)-269(v)27(ersion)-269(of)-269(MLD2P4)]TJ 0 -13.549 Td [(under)-333(use.)]TJ/F44 10.9091 Tf -45.971 -13.55 Td [(info)-2114(integer,)-525(intent\050out\051)]TJ/F15 10.9091 Tf 160.515 0 Td [(.)]TJ -114.544 -13.549 Td [(Error)-333(co)-28(de.)-444(If)-334(no)-333(error,)-333(0)-334(is)-333(returned.)-444(See)-334(Section)]TJ +0 0 1 rg 0 0 1 RG + [-333(7)]TJ +0 g 0 G + [-333(for)-334(d)1(e)-1(tail)1(s)-1(.)]TJ/F44 10.9091 Tf -45.971 -13.549 Td [(iout)-2114(integer,)-525(intent\050in\051,)-525(optional)]TJ/F15 10.9091 Tf 212.06 0 Td [(.)]TJ -166.089 -13.549 Td [(The)-376(id)-376(of)-375(the)-376(\014le)-376(where)-376(the)-376(p)1(rec)-1(on)1(ditioner)-376(description)-376(will)-376(b)-27(e)-376(prin)28(ted;)]TJ 0 -13.549 Td [(the)-333(default)-334(i)1(s)-334(the)-333(standard)-333(output.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +463 0 obj << +/Type /Page +/Contents 464 0 R +/Resources 462 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 437 0 R +/Annots [ 461 0 R ] +>> endobj +461 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [395.046 504.679 402.493 518.312] +/Subtype /Link +/A << /S /GoTo /D (section.7) >> +>> endobj +465 0 obj << +/D [463 0 R /XYZ 86.4 740.002 null] +>> endobj +90 0 obj << +/D [463 0 R /XYZ 86.4 715.095 null] +>> endobj +462 0 obj << +/Font << /F15 123 0 R /F41 124 0 R /F17 111 0 R /F44 200 0 R /F18 173 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +470 0 obj << +/Length 1804 +>> +stream +0 g 0 G +0 0 1 rg 0 0 1 RG +BT +/F41 10.9091 Tf 93.6 740.002 Td [(7)]TJ +0 g 0 G + [-378(Err)22(o)1(r)-378(handling)]TJ/F15 10.9091 Tf 401.542 0 Td [(31)]TJ +0 g 0 G +/F17 14.3462 Tf -401.542 -35.866 Td [(7)-1125(Error)-375(Handling)]TJ/F15 10.9091 Tf 0 -24.352 Td [(The)-416(error)-416(handling)-416(in)-417(MLD2P)1(4)-417(is)-416(based)-416(on)-416(the)-417(PS)1(B)-1(LAS)-416(\050v)28(ersion)-416(2\051)-416(error)-416(handling.)]TJ 0 -13.549 Td [(Error)-249(conditions)-249(are)-249(signaled)-249(via)-249(an)-249(in)28(teger)-249(argumen)28(t)]TJ/F44 10.9091 Tf 252.188 0 Td [(info)]TJ/F15 10.9091 Tf 22.908 0 Td [(;)-277(whenev)28(er)-249(an)-249(error)-249(condition)]TJ -275.096 -13.549 Td [(is)-315(dete)-1(cted,)-319(an)-315(error)-315(trace)-316(stac)28(k)-315(is)-316(built)-315(b)28(y)-316(the)-315(library)-315(up)-316(to)-315(the)-316(top-lev)28(el,)-319(user-callable)]TJ 0 -13.549 Td [(routine.)-552(This)-370(routin)1(e)-370(will)-369(then)-369(decide,)-379(according)-369(to)-369(the)-370(user)-369(preferences,)-378(whether)-370(the)]TJ 0 -13.55 Td [(error)-275(should)-275(b)-28(e)-275(han)1(dled)-275(b)27(y)-275(t)1(e)-1(rmin)1(ating)-275(the)-275(program)-275(or)-275(b)28(y)-275(returning)-275(the)-275(error)-275(condition)]TJ 0 -13.549 Td [(to)-335(the)-334(use)-1(r)-334(co)-28(de,)-335(whic)28(h)-335(will)-335(then)-334(tak)27(e)-334(action,)-335(and)-335(whether)-335(an)-335(error)-334(message)-335(should)-335(b)-28(e)]TJ 0 -13.549 Td [(prin)28(ted.)-568(These)-375(options)-374(ma)28(y)-375(b)-28(e)-374(set)-375(b)28(y)-375(using)-374(the)-375(PS)1(B)-1(LAS)-374(error)-374(handling)-375(routines;)-395(for)]TJ 0 -13.549 Td [(further)-333(details)-334(see)-333(the)-333(PSBLAS)-334(User's)-333(Guide)-333([)]TJ +1 0 0 rg 1 0 0 RG + [(14)]TJ +0 g 0 G + [(].)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +469 0 obj << +/Type /Page +/Contents 470 0 R +/Resources 468 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 472 0 R +/Annots [ 467 0 R 466 0 R ] +>> endobj +467 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [92.604 739.006 100.627 748.453] +/Subtype /Link +/A << /S /GoTo /D (section.7) >> +>> endobj +466 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 0] +/Rect [314.074 583.943 326.976 592.966] +/Subtype /Link +/A << /S /GoTo /D (cite.PSBLASGUIDE) >> +>> endobj +471 0 obj << +/D [469 0 R /XYZ 93.6 740.002 null] +>> endobj +94 0 obj << +/D [469 0 R /XYZ 93.6 715.095 null] +>> endobj +468 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F17 111 0 R /F44 200 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +475 0 obj << +/Length 4010 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(32)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +/F17 14.3462 Tf -203.265 -35.866 Td [(A)-1125(License)]TJ/F15 10.9091 Tf 0 -22.758 Td [(The)-333(MLD2P4)-334(is)-333(freely)-333(distributable)-333(under)-334(the)-333(follo)28(wing)-333(cop)27(yri)1(gh)27(t)-333(terms:)]TJ +0 g 0 G +0 g 0 G +/F44 9.9626 Tf 130.758 -20.921 Td [(MLD2P4)-1050(version)-525(1.1)]TJ -130.758 -11.956 Td [(MultiLevel)-525(Domain)-525(Decomposition)-525(Parallel)-525(Preconditioners)-525(Package)]TJ 57.534 -11.955 Td [(based)-525(on)-525(PSBLAS)-525(\050Parallel)-525(Sparse)-525(BLAS)-525(version)-525(2.3\051)]TJ -57.534 -23.91 Td [(\050C\051)-525(Copyright)-525(2008,)-525(2009)]TJ 104.607 -23.91 Td [(Salvatore)-525(Filippone)-1050(University)-525(of)-525(Rome)-525(Tor)-525(Vergata)]TJ 0 -11.956 Td [(Alfredo)-525(Buttari)-3150(University)-525(of)-525(Rome)-525(Tor)-525(Vergata)]TJ 0 -11.955 Td [(Pasqua)-525(D'Ambra)-3675(ICAR-CNR,)-525(Naples)]TJ 0 -11.955 Td [(Daniela)-525(di)-525(Serafino)-1050(Second)-525(University)-525(of)-525(Naples)]TJ -104.607 -35.865 Td [(Redistribution)-525(and)-525(use)-525(in)-525(source)-525(and)-525(binary)-525(forms,)-525(with)-525(or)-525(without)]TJ 0 -11.956 Td [(modification,)-525(are)-525(permitted)-525(provided)-525(that)-525(the)-525(following)-525(conditions)]TJ 0 -11.955 Td [(are)-525(met:)]TJ 10.46 -11.955 Td [(1.)-525(Redistributions)-525(of)-525(source)-525(code)-525(must)-525(retain)-525(the)-525(above)-525(copyright)]TJ 15.691 -11.955 Td [(notice,)-525(this)-525(list)-525(of)-525(conditions)-525(and)-525(the)-525(following)-525(disclaimer.)]TJ -15.691 -11.955 Td [(2.)-525(Redistributions)-525(in)-525(binary)-525(form)-525(must)-525(reproduce)-525(the)-525(above)-525(copyright)]TJ 15.691 -11.955 Td [(notice,)-525(this)-525(list)-525(of)-525(conditions,)-525(and)-525(the)-525(following)-525(disclaimer)-525(in)-525(the)]TJ 0 -11.956 Td [(documentation)-525(and/or)-525(other)-525(materials)-525(provided)-525(with)-525(the)-525(distribution.)]TJ -15.691 -11.955 Td [(3.)-525(The)-525(name)-525(of)-525(the)-525(MLD2P4)-525(group)-525(or)-525(the)-525(names)-525(of)-525(its)-525(contributors)-525(may)]TJ 15.691 -11.955 Td [(not)-525(be)-525(used)-525(to)-525(endorse)-525(or)-525(promote)-525(products)-525(derived)-525(from)-525(this)]TJ 0 -11.955 Td [(software)-525(without)-525(specific)-525(written)-525(permission.)]TJ -26.151 -23.911 Td [(THIS)-525(SOFTWARE)-525(IS)-525(PROVIDED)-525(BY)-525(THE)-525(COPYRIGHT)-525(HOLDERS)-525(AND)-525(CONTRIBUTORS)]TJ 0 -11.955 Td [(``AS)-525(IS'')-525(AND)-525(ANY)-525(EXPRESS)-525(OR)-525(IMPLIED)-525(WARRANTIES,)-525(INCLUDING,)-525(BUT)-525(NOT)-525(LIMITED)]TJ 0 -11.955 Td [(TO,)-525(THE)-525(IMPLIED)-525(WARRANTIES)-525(OF)-525(MERCHANTABILITY)-525(AND)-525(FITNESS)-525(FOR)-525(A)-525(PARTICULAR)]TJ 0 -11.955 Td [(PURPOSE)-525(ARE)-525(DISCLAIMED.)-525(IN)-525(NO)-525(EVENT)-525(SHALL)-525(THE)-525(MLD2P4)-525(GROUP)-525(OR)-525(ITS)-525(CONTRIBUTORS)]TJ 0 -11.955 Td [(BE)-525(LIABLE)-525(FOR)-525(ANY)-525(DIRECT,)-525(INDIRECT,)-525(INCIDENTAL,)-525(SPECIAL,)-525(EXEMPLARY,)-525(OR)]TJ 0 -11.955 Td [(CONSEQUENTIAL)-525(DAMAGES)-525(\050INCLUDING,)-525(BUT)-525(NOT)-525(LIMITED)-525(TO,)-525(PROCUREMENT)-525(OF)]TJ 0 -11.956 Td [(SUBSTITUTE)-525(GOODS)-525(OR)-525(SERVICES;)-525(LOSS)-525(OF)-525(USE,)-525(DATA,)-525(OR)-525(PROFITS;)-525(OR)-525(BUSINESS)]TJ 0 -11.955 Td [(INTERRUPTION\051)-525(HOWEVER)-525(CAUSED)-525(AND)-525(ON)-525(ANY)-525(THEORY)-525(OF)-525(LIABILITY,)-525(WHETHER)-525(IN)]TJ 0 -11.955 Td [(CONTRACT,)-525(STRICT)-525(LIABILITY,)-525(OR)-525(TORT)-525(\050INCLUDING)-525(NEGLIGENCE)-525(OR)-525(OTHERWISE\051)]TJ 0 -11.955 Td [(ARISING)-525(IN)-525(ANY)-525(WAY)-525(OUT)-525(OF)-525(THE)-525(USE)-525(OF)-525(THIS)-525(SOFTWARE,)-525(EVEN)-525(IF)-525(ADVISED)-525(OF)-525(THE)]TJ 0 -11.955 Td [(POSSIBILITY)-525(OF)-525(SUCH)-525(DAMAGE.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +474 0 obj << +/Type /Page +/Contents 475 0 R +/Resources 473 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 472 0 R +>> endobj +476 0 obj << +/D [474 0 R /XYZ 86.4 740.002 null] +>> endobj +98 0 obj << +/D [474 0 R /XYZ 86.4 715.095 null] +>> endobj +473 0 obj << +/Font << /F15 123 0 R /F41 124 0 R /F17 111 0 R /F44 200 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +479 0 obj << +/Length 6658 +>> +stream +0 g 0 G +BT +/F41 10.9091 Tf 93.6 740.002 Td [(References)]TJ/F15 10.9091 Tf 401.542 0 Td [(33)]TJ +0 g 0 G +/F17 14.3462 Tf -401.542 -35.866 Td [(References)]TJ +0 g 0 G +/F15 10.9091 Tf 5.455 -24.352 Td [([1])]TJ +0 g 0 G + [-500(M.)-272(Brezina,)-284(P)83(.)-272(V)84(an)27(\024)473(ek,)]TJ/F18 10.9091 Tf 123.379 0 Td [(A)-301(Black-Box)-302(I)1(ter)51(ative)-302(Solver)-301(Base)51(d)-301(on)-302(a)-301(Two-L)51(evel)-301(Schwarz)]TJ -106.41 -13.549 Td [(Metho)51(d)]TJ/F15 10.9091 Tf 34.594 0 Td [(,)-333(Computing,)-334(63,)-333(1999,)-333(233{263.)]TJ +0 g 0 G + -51.563 -21.189 Td [([2])]TJ +0 g 0 G + [-500(A.)-306(Buttari,)-312(P)84(.)-306(D'Am)27(bra,)-311(D.)-306(di)-306(Sera\014no,)-312(S.)-306(Filipp)-28(one,)]TJ/F18 10.9091 Tf 272.057 0 Td [(Extending)-333(PSBLAS)-333(to)-333(Bui)1(ld)]TJ -255.088 -13.55 Td [(Par)51(al)-51(lel)-472(Schwarz)-473(Pr)51(e)51(c)51(onditioners)]TJ/F15 10.9091 Tf 159.206 0 Td [(,)-489(in)-458(,)-489(J.)-458(Dongarra,)-490(K.)-458(Mad)1(s)-1(en,)-489(J.)-458(W)84(asniewski,)]TJ -159.206 -13.549 Td [(editors,)-319(Pro)-27(ce)-1(edin)1(gs)-316(of)-315(P)84(ARA)-315(04)-315(W)83(orkshop)-315(on)-315(State)-315(of)-315(the)-315(Art)-315(in)-315(Scien)28(ti\014c)-316(Com-)]TJ 0 -13.549 Td [(puting,)-333(Lecture)-334(Notes)-333(in)-333(Computer)-334(Science,)-333(Springer,)-333(2005,)-333(593{602.)]TJ +0 g 0 G + -16.969 -21.189 Td [([3])]TJ +0 g 0 G + [-500(A.)-380(Buttari,)-392(P)84(.)-381(D')1(Am)27(bra,)-391(D.)-381(di)-380(Sera\014no,)-391(S.)-380(Filipp)-28(one,)]TJ/F18 10.9091 Tf 279.591 0 Td [(2LEV-D2P4:)-546(a)-401(p)51(ackage)-401(of)]TJ -262.622 -13.549 Td [(high-p)51(erformanc)51(e)-423(pr)51(e)51(c)51(onditioners)-424(for)-423(scienti\014c)-424(and)-424(engine)52(ering)-424(applic)51(ations)]TJ/F15 10.9091 Tf 364.505 0 Td [(,)-423(Ap-)]TJ -364.505 -13.55 Td [(plicable)-462(Algebra)-461(in)-462(Engineering,)-493(Comm)27(uni)1(c)-1(ation)1(s)-462(and)-462(Computing,)-493(18,)-494(3,)-494(2007,)]TJ 0 -13.549 Td [(223{239.)]TJ +0 g 0 G + -16.969 -21.189 Td [([4])]TJ +0 g 0 G + [-500(P)83(.)-366(D'Am)28(bra,)-375(S.)-367(Filipp)-27(one,)-375(D.)-367(di)-366(Sera\014no,)]TJ/F18 10.9091 Tf 220.753 0 Td [(On)-388(the)-389(Development)-388(of)-388(PS)-1(B)1(L)-1(AS-b)52(ase)51(d)]TJ -203.784 -13.549 Td [(Par)51(al)-51(lel)-380(Two-level)-379(Schwarz)-380(Pr)51(e)51(c)51(onditioners)]TJ/F15 10.9091 Tf 206.489 0 Td [(,)-363(Applied)-357(Numerical)-358(Mathematics,)-363(El-)]TJ -206.489 -13.55 Td [(sevier)-333(Science)-1(,)-333(57,)-333(11-12,)-333(2007,)-334(1181-1196.)]TJ +0 g 0 G + -16.969 -21.189 Td [([5])]TJ +0 g 0 G + [-500(X.)-410(C.)-410(Cai,)-430(M.)-410(Sarkis,)]TJ/F18 10.9091 Tf 126.22 0 Td [(A)-428(R)51(estricte)51(d)-429(A)51(dditive)-428(Schwarz)-429(Pr)51(e)52(c)51(onditioner)-429(for)-428(Gener)51(al)]TJ -109.251 -13.549 Td [(Sp)51(arse)-378(Line)51(ar)-379(Systems)]TJ/F15 10.9091 Tf 107.936 0 Td [(,)-361(SIAM)-356(Journal)-356(on)-356(Scien)28(ti\014c)-356(Computing,)-361(21,)-361(2,)-362(1999,)-361(792{)]TJ -107.936 -13.549 Td [(797.)]TJ +0 g 0 G + -16.969 -21.19 Td [([6])]TJ +0 g 0 G + [-500(X.)-234(C.)-234(Cai,)-254(O.)-234(B.)-234(Widlund,)]TJ/F18 10.9091 Tf 141.054 0 Td [(Domain)-266(De)51(c)51(omp)51(osition)-266(A)25(lgorithms)-266(for)-267(I)1(n)-1(de\014nite)-266(El)-51(liptic)]TJ -124.085 -13.549 Td [(Pr)51(oblems)]TJ/F15 10.9091 Tf 43.224 0 Td [(,)-293(SIAM)-282(Journal)-282(on)-282(Scien)27(ti\014)1(c)-283(and)-282(Statistical)-282(Com)-1(p)1(uting,)-293(13,)-292(1,)-293(1992,)-293(243{)]TJ -43.224 -13.549 Td [(258.)]TJ +0 g 0 G + -16.969 -21.189 Td [([7])]TJ +0 g 0 G + [-500(T.)-316(Chan)-315(and)-316(T.)-315(Mathew,)]TJ/F18 10.9091 Tf 140.588 0 Td [(Domain)-341(De)51(c)51(omp)51(osition)-342(A)26(lgorithms)]TJ/F15 10.9091 Tf 165.71 0 Td [(,)-319(in)-316(A.)-315(Iserles,)-320(editor,)]TJ -289.329 -13.55 Td [(Acta)-333(Numerica)-334(1994,)-333(61{143.)-333(Cam)27(bridge)-333(Univ)28(ersit)28(y)-334(Press.)]TJ +0 g 0 G + -16.969 -21.189 Td [([8])]TJ +0 g 0 G + [-500(T.A.)-444(Da)28(vis,)]TJ/F18 10.9091 Tf 78.69 0 Td [(A)25(l)1(gorithm)-460(832:)-664(UMFP)77(A)25(CK)-460(-)-459(an)-460(Unsymmetric-p)51(attern)-460(Mu)1(ltifr)51(ontal)]TJ -61.721 -13.549 Td [(Metho)51(d)-307(with)-307(a)-308(Col)1(umn)-308(Pr)52(e-or)51(dering)-307(St)-1(r)52(ate)51(gy)]TJ/F15 10.9091 Tf 211.246 0 Td [(,)-289(A)27(CM)-278(T)83(ran)1(s)-1(action)1(s)-279(on)-278(Mathematical)]TJ -211.246 -13.549 Td [(Soft)28(w)28(are,)-334(30,)-333(2004,)-333(196{199.)-334(\050See)-333(also)]TJ/F44 10.9091 Tf 184.031 0 Td [(http://www.cise.ufl.edu/)-525(davis/)]TJ/F15 10.9091 Tf 177.543 0 Td [(\051)]TJ +0 g 0 G + -378.543 -21.19 Td [([9])]TJ +0 g 0 G + [-500(J.W.)-423(Demmel,)-446(S.C.)-423(Eisenstat,)-445(J.R.)-424(Gilb)-27(ert,)-446(X.S.)-423(Li)-423(and)-423(J.W.H.)-423(Liu,)-446(A)-423(sup)-28(ern-)]TJ 16.969 -13.549 Td [(o)-28(dal)-398(approac)28(h)-398(to)-399(sparse)-398(partial)-398(piv)28(oting,)-415(S)1(IAM)-399(Journal)-398(on)-398(Matrix)-398(Analysis)-398(and)]TJ 0 -13.549 Td [(Applications,)-333(20,)-334(3,)-333(1999,)-333(720{755.)]TJ +0 g 0 G + -22.424 -21.189 Td [([10])]TJ +0 g 0 G + [-500(J.)-443(J.)-444(Dongarra,)-470(J.)-444(Du)-443(Croz,)-471(I.)-443(S.)-444(Du\013,)-471(S.)-443(Hammarling,)]TJ/F18 10.9091 Tf 301.5 0 Td [(A)-459(set)-459(of)-459(L)51(evel)-459(3)-459(Basic)]TJ -279.076 -13.549 Td [(Line)51(ar)-460(A)26(lgebr)51(a)-459(Subpr)51(o)51(gr)51(ams)]TJ/F15 10.9091 Tf 135.936 0 Td [(,)-472(A)28(CM)-444(T)83(ran)1(s)-1(action)1(s)-445(on)-444(Math)1(e)-1(matical)-444(Sof)1(t)27(w)28(are,)-472(16,)]TJ -135.936 -13.55 Td [(1990,)-333(1{17.)]TJ +0 g 0 G + -22.424 -21.189 Td [([11])]TJ +0 g 0 G + [-500(J.)-450(J.)-450(Dongarra,)-479(J.)-450(Du)-450(Croz,)-480(S.)-450(Hammarling,)-479(R.)-450(J.)-450(Hanson,)]TJ/F18 10.9091 Tf 320.772 0 Td [(A)26(n)-466(extende)51(d)-465(set)-465(of)]TJ -298.348 -13.549 Td [(F)26(OR)76(TRAN)-355(Basic)-355(L)-1(i)1(ne)51(ar)-356(A)26(lgebr)51(a)-355(Subpr)51(o)51(gr)51(ams)]TJ/F15 10.9091 Tf 221.802 0 Td [(,)-331(A)28(CM)-331(T)83(ransactions)-331(on)-330(Mathemat-)]TJ -221.802 -13.549 Td [(ical)-333(Soft)28(w)27(are,)-333(14,)-333(1988,)-334(1{17.)]TJ +0 g 0 G + -22.424 -21.19 Td [([12])]TJ +0 g 0 G + [-500(J.)-379(J.)-380(Dongarra)-379(and)-380(R.)-379(C.)-380(Whaley)84(,)]TJ/F18 10.9091 Tf 191.593 0 Td [(A)-400(User's)-400(Guide)-401(to)-400(the)-400(BLA)25(CS)-400(v.)-400(1.1)]TJ/F15 10.9091 Tf 179.471 0 Td [(,)-391(Lapac)28(k)]TJ -348.64 -13.549 Td [(W)83(orking)-314(Note)-315(94,)-318(T)83(ec)28(h.)-315(Rep.)-315(UT-CS-95-281,)-318(Univ)28(ersit)28(y)-315(of)-315(T)84(e)-1(n)1(nes)-1(see,)-318(Marc)28(h)-315(1995)]TJ 0 -13.549 Td [(\050up)-28(dated)-333(Ma)28(y)-333(1997\051.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +478 0 obj << +/Type /Page +/Contents 479 0 R +/Resources 477 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 472 0 R +>> endobj +480 0 obj << +/D [478 0 R /XYZ 93.6 740.002 null] +>> endobj +102 0 obj << +/D [478 0 R /XYZ 93.6 693.333 null] +>> endobj +179 0 obj << +/D [478 0 R /XYZ 93.6 697.153 null] +>> endobj +281 0 obj << +/D [478 0 R /XYZ 93.6 660.294 null] +>> endobj +282 0 obj << +/D [478 0 R /XYZ 93.6 598.457 null] +>> endobj +283 0 obj << +/D [478 0 R /XYZ 93.6 538.741 null] +>> endobj +292 0 obj << +/D [478 0 R /XYZ 93.6 488.332 null] +>> endobj +254 0 obj << +/D [478 0 R /XYZ 93.6 442.166 null] +>> endobj +255 0 obj << +/D [478 0 R /XYZ 93.6 393.878 null] +>> endobj +226 0 obj << +/D [478 0 R /XYZ 93.6 357.018 null] +>> endobj +227 0 obj << +/D [478 0 R /XYZ 93.6 308.124 null] +>> endobj +213 0 obj << +/D [478 0 R /XYZ 93.6 260.443 null] +>> endobj +214 0 obj << +/D [478 0 R /XYZ 93.6 212.155 null] +>> endobj +217 0 obj << +/D [478 0 R /XYZ 93.6 163.867 null] +>> endobj +477 0 obj << +/Font << /F41 124 0 R /F15 123 0 R /F17 111 0 R /F18 173 0 R /F44 200 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +483 0 obj << +/Length 6077 +>> +stream +0 g 0 G +BT +/F15 10.9091 Tf 86.4 740.002 Td [(34)]TJ/F41 10.9091 Tf 203.265 0 Td [(MLD2P4)-378(User)67('s)-378(and)-378(Ref)1(erence)-378(Guide)]TJ +0 g 0 G +0 g 0 G +/F15 10.9091 Tf -203.265 -35.866 Td [([13])]TJ +0 g 0 G + [-500(E.)-392(Efstathiou,)-407(J.)-393(G.)-392(Gander,)]TJ/F18 10.9091 Tf 165.756 0 Td [(Why)-412(R)51(estricte)51(d)-412(A)51(dditive)-412(Schwarz)-412(Conver)51(ges)-412(F)77(aster)]TJ -143.332 -13.549 Td [(than)-358(A)51(dditive)-357(Sch)-1(warz)]TJ/F15 10.9091 Tf 106.381 0 Td [(,)-333(BIT)-334(Numerical)-333(Mathematics,)-333(43,)-334(2003,)-333(945{959.)]TJ +0 g 0 G + -128.805 -22.515 Td [([14])]TJ +0 g 0 G + [-500(S.)-1203(Filipp)-28(one,)-1421(A.)-1204(Buttar)1(i,)]TJ/F18 10.9091 Tf 186.082 0 Td [(PSBLAS-2.3)-1158(User's)-1159(Guide.)-1158(A)-1157(R)51(efer)51(enc)51(e)]TJ -163.658 -13.55 Td [(Guide)-1084(for)-1084(the)-1084(Par)51(al)-51(lel)-1084(Sp)51(ar)1(se)-1084(BLAS)-1084(Libr)51(ar)1(y)]TJ/F15 10.9091 Tf 257.737 0 Td [(,)-1320(2008,)-1320(a)28(v)55(ailable)-1122(from)]TJ/F44 10.9091 Tf -257.737 -13.549 Td [(http://www.ce.uniroma2.it/psblas/)]TJ/F15 10.9091 Tf 188.998 0 Td [(.)]TJ +0 g 0 G + -211.422 -22.515 Td [([15])]TJ +0 g 0 G + [-500(S.)-312(Filip)1(p)-28(one,)-316(M.)-312(Cola)-56(j)1(anni,)]TJ/F18 10.9091 Tf 155.667 0 Td [(PSBLAS:)-338(A)-338(Libr)51(ary)-338(for)-337(Par)51(al)-51(lel)-338(Line)51(ar)-338(A)26(lgebr)51(a)-338(Com-)]TJ -133.243 -13.55 Td [(putation)-333(on)-332(Sp)51(arse)-333(Matric)52(es)]TJ/F15 10.9091 Tf 133.575 0 Td [(,)-311(A)27(CM)-306(T)84(ransactions)-306(on)-306(Mathematical)-306(Soft)28(w)28(are,)-312(26,)-311(4,)]TJ -133.575 -13.549 Td [(2000,)-333(527{550.)]TJ +0 g 0 G + -22.424 -22.515 Td [([16])]TJ +0 g 0 G + [-500(W.)-413(Gropp,)-433(S.)-413(Huss-Lederman,)-433(A.)-413(Lumsdaine,)-433(E)1(.)-413(Lusk,)-433(B.)-413(Nitzb)-28(erg,)-433(W.)-413(Saphir,)]TJ 22.424 -13.55 Td [(M.)-349(Snir,)]TJ/F18 10.9091 Tf 43.142 0 Td [(MPI:)-372(The)-372(Complete)-372(R)51(efer)51(enc)51(e.)-372(V)77(olume)-372(2)-373(-)-372(The)-372(MPI-2)-372(Extensions)]TJ/F15 10.9091 Tf 318.187 0 Td [(,)-353(MIT)]TJ -361.329 -13.549 Td [(Press,)-333(1998.)]TJ +0 g 0 G + -22.424 -22.515 Td [([17])]TJ +0 g 0 G + [-500(C.)-347(L.)-347(La)28(wson,)-351(R.)-347(J.)-347(Hanson,)-350(D.)-347(Kincaid,)-350(F.)-347(T.)-347(Krogh,)]TJ/F18 10.9091 Tf 287.094 0 Td [(Basic)-370(Line)51(ar)-371(A)26(lgebr)51(a)-370(Sub-)]TJ -264.67 -13.55 Td [(pr)51(o)51(gr)51(ams)-368(for)-367(F)25(OR)77(TRAN)-368(usage)]TJ/F15 10.9091 Tf 148.454 0 Td [(,)-347(A)28(CM)-345(T)84(ransactions)-345(on)-344(Mathematical)-345(Sof)1(t)27(w)28(are,)-347(5,)]TJ -148.454 -13.549 Td [(1979,)-333(308{323.)]TJ +0 g 0 G + -22.424 -22.515 Td [([18])]TJ +0 g 0 G + [-500(X.)-408(S.)-408(Li,)-427(J.)-408(W)1(.)-408(De)-1(mmel,)]TJ/F18 10.9091 Tf 147.871 0 Td [(Sup)51(erLU)]TJ +ET +q +1 0 0 1 276.516 469.815 cm +[]0 d 0 J 0.398 w 0 0 m 3.345 0 l S +Q +BT +/F18 10.9091 Tf 279.861 469.616 Td [(DIST:)-426(A)-427(Sc)51(alable)-426(Distribute)51(d-memory)-426(Sp)51(arse)]TJ -171.037 -13.549 Td [(Dir)51(e)51(ct)-342(Solver)-343(for)-342(Unsymmetric)-342(Line)51(ar)-343(Systems)]TJ/F15 10.9091 Tf 222.383 0 Td [(,)-320(A)28(CM)-317(T)83(ran)1(s)-1(actions)-316(on)-317(Mathemat-)]TJ -222.383 -13.55 Td [(ical)-333(Soft)28(w)27(are,)-333(29,)-333(2,)-334(2003,)-333(110{140.)]TJ +0 g 0 G + -22.424 -22.515 Td [([19])]TJ +0 g 0 G + [-500(Y.)-333(Saad,)]TJ/F18 10.9091 Tf 66.97 0 Td [(Iter)51(ative)-358(metho)52(ds)-358(for)-358(sp)51(arse)-358(l)1(ine)51(ar)-358(systems)]TJ/F15 10.9091 Tf 202.98 0 Td [(,)-333(2nd)-334(editi)1(on,)-334(SIAM,)-333(2003)]TJ +0 g 0 G + -269.95 -22.516 Td [([20])]TJ +0 g 0 G + [-500(B.)-505(Smith,)-549(P)84(.)-506(Bjorstad,)-548(W.)-506(Gropp,)]TJ/F18 10.9091 Tf 200.295 0 Td [(Domain)-516(De)51(c)51(omp)51(osition:)-776(Par)51(al)-51(lel)-516(Multilevel)]TJ -177.871 -13.549 Td [(Metho)51(ds)-432(for)-432(El)-51(liptic)-433(Partial)-432(Di\013er)51(ential)-432(Equations)]TJ/F15 10.9091 Tf 244.309 0 Td [(,)-434(Cam)27(bridge)-414(Univ)28(ersit)28(y)-415(P)1(re)-1(ss,)]TJ -244.309 -13.549 Td [(1996.)]TJ +0 g 0 G + -22.424 -22.516 Td [([21])]TJ +0 g 0 G + [-500(M.)-317(Snir,)-321(S.)-317(Otto,)-321(S.)-317(Huss-Lederman,)-321(D.)-317(W)83(alk)28(er,)-321(J.)-317(Dongarra,)]TJ/F18 10.9091 Tf 317.503 0 Td [(MPI:)-343(The)-343(Complete)]TJ -295.079 -13.549 Td [(R)51(efer)51(enc)51(e.)-357(V)76(olume)-357(1)-358(-)-358(The)-358(MPI)-357(Cor)51(e)]TJ/F15 10.9091 Tf 179.356 0 Td [(,)-333(second)-334(edition,)-333(MIT)-333(Press,)-334(1998.)]TJ +0 g 0 G + -201.78 -22.516 Td [([22])]TJ +0 g 0 G + [-500(K.)-547(S)1(t)-28()528(ub)-28(en,)]TJ/F18 10.9091 Tf 83.114 0 Td [(A)25(l)1(gebr)51(aic)-554(Multigrid)-554(\050AMG\051:)-554(an)-554(Intr)51(o)51(duction)-554(with)-554(Applic)51(ations)]TJ/F15 10.9091 Tf 310.671 0 Td [(,)-600(in)]TJ -371.361 -13.549 Td [(A.)-493(Sc)27(h)-27()527(uller,)-533(U.)-493(T)83(rotten)28(b)-28(erg,)-534(C.)-493(Oosterlee,)-534(editors,)-533(Multigrid,)-533(Academic)-494(Press,)]TJ 0 -13.549 Td [(2000.)]TJ +0 g 0 G + -22.424 -22.515 Td [([23])]TJ +0 g 0 G + [-500(R.)-408(S.)-408(T)83(uminaro,)-427(C.)-408(T)84(ong,)]TJ/F18 10.9091 Tf 152.548 0 Td [(Par)51(al)-51(lel)-426(Smo)51(othe)51(d)-427(A)51(ggr)51(e)51(gati)1(on)-427(Multigrid:)-597(A)51(ggr)51(e)51(gation)]TJ -130.124 -13.55 Td [(Str)51(ate)51(gies)-369(on)-370(Massively)-369(Par)51(al)-51(lel)-370(Machines)]TJ/F15 10.9091 Tf 200.325 0 Td [(,)-349(in)-346(J.)-347(Donn)1(e)-1(l)1(le)-1(y)84(,)-349(e)-1(d)1(itor,)-350(Pro)-27(c)-1(eedin)1(gs)-347(of)]TJ -200.325 -13.549 Td [(Sup)-28(erComputing)-333(2000,)-333(Dallas,)-334(2000.)]TJ +0 g 0 G + -22.424 -22.515 Td [([24])]TJ +0 g 0 G + [-500(P)83(.)-287(V)83(an)28(\024)472(ek,)-297(J)1(.)-288(Mandel)-288(and)-287(M.)-288(Brezina,)]TJ/F18 10.9091 Tf 200.525 0 Td [(A)26(lgebr)51(aic)-316(Multigrid)-315(by)-316(Smo)51(othe)51(d)-316(A)51(gg)1(r)51(e)51(gation)]TJ -178.101 -13.55 Td [(for)-358(Se)51(c)51(ond)-357(and)-358(F)77(ourth)-358(Or)51(der)-358(El)-51(liptic)-357(P)-1(r)52(oblems)]TJ/F15 10.9091 Tf 223.344 0 Td [(,)-333(Computing,)-334(56,)-333(1996,)-333(179-196.)]TJ +0 g 0 G +0 g 0 G +ET +endstream +endobj +482 0 obj << +/Type /Page +/Contents 483 0 R +/Resources 481 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 472 0 R +>> endobj +484 0 obj << +/D [482 0 R /XYZ 86.4 740.002 null] +>> endobj +293 0 obj << +/D [482 0 R /XYZ 86.4 715.095 null] +>> endobj +182 0 obj << +/D [482 0 R /XYZ 86.4 683.983 null] +>> endobj +181 0 obj << +/D [482 0 R /XYZ 86.4 634.066 null] +>> endobj +216 0 obj << +/D [482 0 R /XYZ 86.4 584.755 null] +>> endobj +215 0 obj << +/D [482 0 R /XYZ 86.4 535.141 null] +>> endobj +228 0 obj << +/D [482 0 R /XYZ 86.4 485.527 null] +>> endobj +284 0 obj << +/D [482 0 R /XYZ 86.4 435.913 null] +>> endobj +178 0 obj << +/D [482 0 R /XYZ 86.4 412.791 null] +>> endobj +183 0 obj << +/D [482 0 R /XYZ 86.4 365.905 null] +>> endobj +279 0 obj << +/D [482 0 R /XYZ 86.4 327.719 null] +>> endobj +280 0 obj << +/D [482 0 R /XYZ 86.4 280.226 null] +>> endobj +180 0 obj << +/D [482 0 R /XYZ 86.4 228.491 null] +>> endobj +481 0 obj << +/Font << /F15 123 0 R /F41 124 0 R /F18 173 0 R /F44 200 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +485 0 obj +[892.9] +endobj +486 0 obj +[674.8 778.2 674.6 1074.4 936.9 671.5 778.4 462.3 462.3 462.3 1138.9 1138.9 478.2 619.7 502.4 510.5 594.7 542 557.1 557.3 668.8 404.2 472.7 607.3 361.3 1013.7 706.2 563.9 588.9 523.6 530.4 539.2 431.6 675.4 571.4] +endobj +487 0 obj +[877 323.4 384.9 323.4 569.5 569.5 569.5] +endobj +488 0 obj +[458.3 458.3 416.7 416.7 472.2 472.2 472.2 472.2 583.3 583.3 472.2 472.2 333.3 555.6 577.8 577.8 597.2 597.2 736.1 736.1 527.8 527.8 583.3 583.3 583.3 583.3 750 750 750 750 1044.4 1044.4 791.7 791.7 583.3 583.3 638.9 638.9 638.9 638.9 805.6 805.6 805.6 805.6 1277.8 1277.8 811.1 811.1 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 888.9 888.9 888.9 888.9 888.9 888.9 666.7 875 875 875 875 611.1 611.1 833.3 1111.1 472.2 555.6 1111.1 1511.1 1111.1 1511.1 1111.1 1511.1 1055.6 944.4 472.2 833.3 833.3 833.3 833.3 833.3 1444.4 1277.8 555.6 1111.1 1111.1 1111.1 1111.1 1111.1 944.4 1277.8 555.6 1000 1444.4 555.6 1000 1444.4 472.2 472.2 527.8 527.8 527.8 527.8 666.7 666.7 1000] +endobj +489 0 obj +[566.2 523.3 571.8 644 590.3 466.4 725.7 736.1 750 621.5 571.8 726.7 639 716.5 582.1 689.8 742.1 767.4 819.4 779.9 586.7 750.7 1021.9 639 487.8 811.6 1222.2 1222.2 1222.2 1222.2 379.6 379.6 638.9 638.9 638.9 638.9 638.9 638.9 638.9 638.9 638.9 638.9 638.9 638.9 379.6 379.6 963 638.9 963 638.9 658.7 924.1 926.6 883.7 998.3 899.8 775 952.9 999.5 547.7 681.6 1025.7 846.3 1161.6 967.1 934.1 780 966.5 922.1 756.7 731.1 838.1 729.6 1150.9 1001.4 726.4 837.7 509.3 509.3 509.3 1222.2 1222.2 518.5 674.9 547.7 559.1 642.5 589 600.7 607.7 725.7 445.6] +endobj +490 0 obj +[531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 295.1 826.4] +endobj +491 0 obj +[826.4 295.1 826.4] +endobj +492 0 obj +[470.1 429.5 467 533.2 495.7 376.2 612.3 619.8 639.2 522.3 467 610.1 544.1 607.2 471.5 576.4 631.6 659.7 694.5 660.7 490.6 632.1 882.1 544.1 388.9 692.4 1062.5 1062.5 1062.5 1062.5 295.1 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 826.4 531.3 826.4 531.3 559.7 795.8 801.4 757.3 871.7 778.7 672.4 827.9 872.8 460.7 580.4 896 722.6 1020.4 843.3 806.2 673.6 835.7 800.2 646.2 618.6 718.8 618.8 1002.4 873.9 615.8 720 413.2 413.2 413.2 1062.5 1062.5 434 564.4 454.5 460.2 546.7 492.9 510.4 505.6 612.3 361.7 429.7 553.2 317.1 939.8 644.7 513.5 534.8 474.4 479.5 491.3] +endobj +493 0 obj +[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] +endobj +494 0 obj +[777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 500 500 611.1 500] +endobj +495 0 obj +[444.4 405.9 437.5 496.5 469.4 353.9 576.2 583.3 602.5 494 437.5 570 517 571.4 437.2 540.3 595.8 625.7 651.4 622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.2 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.7 361.1 572.5 484.7 715.9 571.5 490.3 465] +endobj +496 0 obj +[613.3 562.2 587.8 881.7 894.4 306.7 332.2 511.1 511.1 511.1 511.1 511.1 831.3 460 536.7 715.6 715.6 511.1 882.8 985 766.7 255.6 306.7 514.4 817.8 769.1 817.8 766.7 306.7 408.9 408.9 511.1 766.7 306.7 357.8 306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9 485.6 408.9] +endobj +497 0 obj +[638.9 638.9 958.3 958.3 319.4 351.4 575 575 575 575 575 869.4 511.1 597.2 830.6 894.4 575 1041.7 1169.4 894.4 319.4 350 602.8 958.3 575 958.3 894.4 319.4 447.2 447.2 575 894.4 319.4 383.3 319.4 575 575 575 575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4 869.4 818.1 830.6 881.9 755.5 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6] +endobj +498 0 obj +[319.4 436.1 436.1 552.8 844.4 319.4 377.8 319.4 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 319.4 319.4 844.4 844.4 844.4 523.6 844.4 813.9 770.8 786.1 829.2 741.7 712.5 851.4 813.9 405.6 566.7 843 683.3 988.9 813.9 844.4 741.7 844.4 800 611.1 786.1 813.9 813.9 1105.5 813.9 813.9 669.4 319.4 552.8 319.4 552.8 319.4 319.4 613.3 580 591.1 624.4 557.8 535.6 641.1 613.3 302.2 424.4 635.6 513.3 746.7 613.3 635.6 557.8 635.6 602.2 457.8 591.1 613.3 613.3 835.6 613.3 613.3] +endobj +499 0 obj +[583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500 500 500] +endobj +500 0 obj +[489.6 816 489.6 816 761.6 272 380.8 380.8 489.6 761.6 272 326.4 272 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 272 761.6 462.4 462.4 761.6 734 693.4 707.2 747.8 666.2 639 768.3 734 353.2 503 761.2 611.8 897.2 734 761.6 666.2 761.6 720.6 544 707.2 734 734 1006 734 734 598.4 272 489.6 272 489.6 272 272 489.6 544 435.2 544 435.2 299.2 489.6 544 272 299.2 516.8 272 816 544 489.6 544 516.8 380.8 386.2 380.8 544 516.8 707.2 516.8 516.8] +endobj +501 0 obj +[350 300 500 500 500 500 500 500 500 500 500 500 500 300 300 300 750 500 500 750 726.9 688.4 700 738.4 663.4 638.4 756.7 726.9 376.9 513.4 751.9 613.4 876.9 726.9 750 663.4 750 713.4 550 700 726.9 726.9 976.9 726.9 726.9 600 300 500 300 500 300 300 500 450 450 500 450 300 450 500 300 300 450 250 800 550 500 500 450 412.5 400 325 525 450] +endobj +502 0 obj +[625 625 937.5 937.5 312.5 343.7 562.5 562.5 562.5 562.5 562.5 849.5 500 574.1 812.5 875 562.5 1018.5 1143.5 875 312.5 342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.2 531.2 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7 593.7 500] +endobj +503 0 obj << +/Length1 1521 +/Length2 10204 +/Length3 0 +/Length 11725 +>> +stream +%!PS-AdobeFont-1.1: CMBX10 1.00B +%%CreationDate: 1992 Feb 19 19:54:06 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMBX10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Bold) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /APBVBO+CMBX10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 65 /A put +dup 66 /B put +dup 67 /C put +dup 68 /D put +dup 69 /E put +dup 70 /F put +dup 71 /G put +dup 72 /H put +dup 73 /I put +dup 75 /K put +dup 76 /L put +dup 77 /M put +dup 78 /N put +dup 79 /O put +dup 80 /P put +dup 82 /R put +dup 83 /S put +dup 85 /U put +dup 97 /a put +dup 98 /b put +dup 99 /c put +dup 58 /colon put +dup 100 /d put +dup 101 /e put +dup 102 /f put +dup 12 /fi put +dup 53 /five put +dup 52 /four put +dup 103 /g put +dup 45 /hyphen put +dup 105 /i put +dup 107 /k put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 57 /nine put +dup 111 /o put +dup 49 /one put +dup 112 /p put +dup 46 /period put +dup 63 /question put +dup 114 /r put +dup 115 /s put +dup 55 /seven put +dup 54 /six put +dup 116 /t put +dup 51 /three put +dup 50 /two put +dup 117 /u put +dup 118 /v put +dup 119 /w put +dup 48 /zero put +readonly def +/FontBBox{-301 -250 1164 946}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª*Bg·N³ÀÓ½ ƒØ‘l¦ÊKq*Þ²Xú«šææwüsŠ¼|QÍFïq˜Õþæv`æšz¹XòšMyåp"÷ƒë»¶Ôôì5OÒÞË©”Y¤ÅðÆë¡P(DTçÜ!Á[v´Á›„67XFšlU‡…²&3!R˜q©ˆ4‡Ýw”’Ýσ~j‡¸+Ûño¼uú£ “þ_ùc‹‹sˆ×t Úí?‚}¹ß´7-95†ãžç¬Ÿ¶©µÎM/®ÀåZà+üFCxw¹ö\#㺴úãDÝÉ«<ËÀa‚Ø=ÇVùÕ¾þË-°ã™—òdÔ½oe¥~”ÉÈ„š²é Ï£¬Í‘ÿRJ­rb±QźдÍUÒãiöè6È,YáåÇ?Þ?£ÊÒrÆ|l¿C¶oä¸g}¯î¡’ˆBþ±ôªhz­mÛä2qNyœúIØ¡¡(ó.‹($¼€AñæNÎ@SÄŸ +ìišu¸'.Ÿ•‚m³öC3…€Ž3Š‰ –!vÏf¦.:ïm‘ÈŒ‡Þ°<æÌßO¶Q™†Ñt ñ!w=hwß…ß²i£Àz¦f½óÅ=¢1‹¡† +³N(ºÆè-ÛCå :Éß’w .BÀ÷½ÆÙ béw0$[ŽŽ‰¹"P˜œU£~NY®*ž6¶4Ÿ¢À›±õôC>NïÇ^?˜0ë^~o¾&f¬Z9Œ-ò(*ÏŸÊVV9 +ƒ|J™ì7@ØsÏï.$‹DÊF“§‚YMÐi+M¿ÄÍ즒ÄDý¾÷¼SW[ò'1ç÷qy4­qZÃ;]6y·„É@FæÍ< +ØÑöV&±N3ÏÚn²‚]ÄDúb a[Àsÿ½üÊKõ kÔƒý†9ùèÐ$[F=e ñ,&Ȩî)uv–Ãñ1DØêVIj­a©Iç#«µ…™“ò +5Ík~ ­…QÎäa’MÃjFJ¡±L3úû†.0ÆlÅVemÙ;Œ Ynžâ±ª´y÷ú£Ry­´h¦$¾&Õ'¿õíàgYŽ‹x¤¼û Qi-°¾»“ o —´7âŇka¥c¢g92ÂX3ú£]²*Þ#5ÕÜsJã¬^îfX×’ëbû¤Aõ>ÿ!ÙÔÄ‘òkèõLa\­wŒèi\î¯pã² dÔ³JKWpº²©tè˜ö+þñ2£~-ÊOCá=±<”ߨìâ·7H'®†4ú‰­ FÎÓD‹ôSüÙ¤ñ”údŸÀ—4»iËsCœ°ÝD§Áò•è3Mû¤`ÿ=eOŸ³7éžmfû¨z~¹Ê6ÈH3‡6&ÚUÔèPÓæö² çÉÖ(5†òÛX.:|å[èH"É‚7‘Säyê¶Zþº?a§c´tS[ålÝùDA\‘t96‡6a—ú´ðn,2šàºA?Õ"ÙÃ:Ø6›×ÜÉß™7xH/5ùe—=èvúá ªŠeŠ³ðØãÝÑ¥sòÕ% .ß,?RÓIGà–MŽ‰ö< ,œ9M&Ó^;×mN`¬†0\„@‘'‹tM“Š@/füñ¡+ûdÁø)9*CÊSeEÀ-ÖÓôê©&bqŸPQxVÆÀyŸÃ¯¯^—>×ðY­¶e[ï'¥¨ÍÉ@O&ÀIˆÓ˜­7_ØyãõÕ»¦ó§19qªˆxæavþÀœ’ʶ¶÷D”©\ÌBh°I±.¥ëfN2ÜiÇRÏÀëµC 0³5ùH-Ga—/Ë×qB_7Ue’>h¡Â];[MôgaJ>?»ê-ÿäØ.„}Ç6 +ªû Ö P^$Ñû0ùƒ +º>ÁB}|CR;0̦Fh2šÝÓi¼e(I:C±«xVtg½Žo›ç¾qÀ Ç™L6¹êíê„n‘õ zÎÑêrëWV¹_2;˜L6§ì¥‰¢\Ø—~=Vâisw›Ä·WEd21Ùg©xC<%J–¯•eüã«G@>O†@™DŸYíW:SêÑèƒL≖dÊ}¯/«F˜â‹™ø½«á§jô†Ü$ËšÏ Ô—8…SÿðQ‰ +ÎÂI£dÁ“l „§ +úFU"€-£¬Eó¬I\]…õT;‡/î‡nÇ•!b#»i`÷XŽc’üqlO’­µlñ!ì¼·×Mãšâ!Mö¶€c98úuÿb@Ùô ÀÖÝÖèš;¦F‹c"ïÞó¿”YÐÛ_¾¢HkÍhÀˆA¯ô˧éA( 0UË—äØ©ëøó}û³dÏÿä¥+IoŒQwe`",*ÌÉÚ•%ÙÐûo‹ÊiÔ"ö,ùG #pyÒVT™¸@¶"]KËÖƒ’¶Ææž0‚êMyuhv»ãž»|ÈÁeÔ“× œË±—0 iÔ”üxy¸.Ü/®›;/”c$ëÞ~ñûÄqŒGý›çMöŽE(_k˜-©ƒ1‹2´¿t£ËY|šŸB— òËýÐZtøÚâ’sss€Ÿ©=nó^¸Ü˜áúâäS ¿•š-—uâÜãÛ]ß“½n @¹­&x¤·wãŃLÎÅ8…¹üÖ†e½«×;áo9êÚS:§Pú¢.dŸûÑBz_¶UãÆèÖ©îäpy…’mÊ&ú‰wŒP¢_ÑHfé@妜kœfÒÿi¿œ™ð­•Ë[²6ž«~&8r-Otx3l†’3ÁW£½#¹‚Ü›÷úSt +•°†Ý®ßœ@µ›Bv•'ôôAZs‚ô$H'“8»Ëb„%ÞLk_7¼ZõÎïËNÿY3Ã{Ÿ¾õéo6Vâû4r³$0‘‰?jSæë’Ý8G`9” ƒÿîêæpf§Bžø¯ÕÀþ|ÿ¢¶9áÓ• qK(™ äÖ§ò}ïW+üq7íúYã=h{F¬Ònà ½`ò̱‡Z„6†:#1âP£$ɹæ×QJQÍ€/’ÐV0ç3 ™Éó ‡ôÑÖçæÛÍói¶æ—©€{ŸZ¬¸³`màŠ²FH×–{fáÍž?¢ÓÊ,9wºß*ã´ØÏ}Ú8NoˆƒrÞ­¥=Z½3}©ÈwELÔAü–Dæ:søe_gCõ •—×u´ Ä~í–½Žç©¿Ö~éßùÊ#P©§„´¯E¹h XDíÑRÿçþÞ’'¹R&O~ %}€¶eiw¶c¡OzO–ú‘O´…GL*@+ÎK`*E­PA¤*©`ª"µ{ŨP­BóIë¡BÑ'[©/êðொY.Yæ9;h¹~´ûÏ«ˆxXPV ˜-7Õ%4³ÅÈ”ƒUõnˆéB] îé6Òúõ‚#¾}›ë"üe-…¦árRø—‹XÒBî€i{© ×È$é¬kÜWJöC‚ä$ÜE¼"Ž©þЮïYÐצ¹lÁ œ†»}&S¥UyU€Ó¢ËÉÕ™ùò+°u°1¬…¡ø‰.ã¡r槦d›¦²‹a˜C–ÐD$nÀ”E«°4yc´z#¯lV’œ•ÿñJ÷}ݯæîY­Óq50Þ^í~"TáIg¼%LÔ㙞ø~}0ì%]ŠwQ‹,Ôêà)Ïúbát»Üôô^€?Ň.ùIŸ•ÉnÀ/œ­ÕC0gy GÓôB‰¯›éZëç5ÓÞÇ×ØÈyØ•»ßá™j‹Rø^!œWÏUˆ|¡/¥šBò]s/©DjxÞÕu«rWÐÝ3!s# þ8×°ËÂÔ¶ª?,üHhÒÉŠÔi¢Ã´ «±\EÉÈ°E X$ óGÌ ux žå #ÓÂÄîûÏ/€s²3BzÁÚ5Ê·'Š—¾ÔÃ6a Ì¥8ÖÑR#1 ¼é×í…HØzÆ›pmlÚ9x\4Šz¥ +yN•) +ý# 'Y“‘æ$sÝwô•Æ®1c^BTþÓ…Õ×ë5I²ä‚Gà·é¢ŒLj.Ú)Üo°') +îí¬› ì?:ø,üµb=Æ~rµ‰³öWÎ$Êðf¡ÁØsZÛKûŒ]‚tP6íçÜÊ]9éß©÷Ü1å!p-ÿÈÛËÂáìÑ­ +ÿM +"xÐœ³ó( ÷Kãœ8bƒg´P‰ŠŸ— äá)þÕÌr% (kY&ÅêÐÉœúRx:Ü•U’XtN±½ÖwT¹î)Œ"¿éS½¦ºßßï{;Øè½ z8÷Š.§÷qÓXX*I_Ìt¼c©ðufe3¦;b›ÉX]?*ªŒom䢄Kð¦€X7¦äZhøàÍ1Tbd@éºñÞdëÒh•¡ƒg›NÇ67ùæCgw…û`Ëá‰2ú)^>ÞbP÷ôn%ÿÎætÆ·ûô ‡0=q¢ÊOWþ?ÅtO:è®Áx®J pk+2UÛjt„Ú{¶AãO§xá(í%ÒP¦ƒ®o*3ô|Œè +Ý%1ÇùJ ©Q<>ê<¡ ^½ß¢I,ó(„ɵGQi®-Þ¢<™y¾$¦Á 9ˆø'@êÛ¶¢~'¯â©üœ‰hG&/¿ê”ûkJµ°ã”ûK&ĀΠ®2uX‰§$ 8•Â0°8ó4¯½vùºD^þ™-ÔipÊØ0N·’ÎÉ“ì%`œ—YÇ‚k£]Aæ©ZJ8œ áÒèïÇ¢P{—’§|Ii­á,ë{aqÓ› lñ=ˆ²h³ÿÖ·mÐê¸Î,+qÙD44ï0vœ-h`íÆ ˜fȘž_êpG (Oôd¨³iæe™ ÌõœX~|’àëº Íp-å öú1·ß%~ãqXJåRÅXs5Jó,MŸÆº>«G¯ëhø9Wºçä ×Æë¿î!(54óAs¯ì7ÕF<ȯî½5öÔ "«n +Ñÿ3ÍOëÿ ræ^Ǥ¬öÍû’ý®9, ¸Ü=ôwÞ`ä.«…à“½i[µÐ)7VÔ%ÒØýEcIêã:<ѤÆjŠ9IÉÀfüj//•ÂUóDJ02..ÃJ!m¾!*o)˜@‹×ð/Î1…´²Êa‘}ˆ+äÿAÊ0ïêç sH:A‰0!hQ×ÆZ-+ ]FÝ9ˆF­D£ãº´Ã:6@'®Ic1*ëüo±>yhaásCAÜÛˆ‡xL"®4Ò bŒ(#Ó}¢ Ž®æ}0½Òâ@õý°D' ½„óXž¥'ÜÌј]¸jºáô¶Æ +ù½>ŒúÐä‡9&Ó %´sšÇ†€-BAWQŽyQ†Tù: 8 *ï€ã6 M>÷ä$_Š;˜&OWIiÎ¥¦/úæ?ׂ”`)>XÕªƒãÈØþ<]ÿ«ì+üýß?ÉÚyêjÆÁû(ówÔÆd¤‰Š‚xMFó.  ™T^Ï¥d‰Ü(än‰dwÕê=z,'”¬Zé5äO1ƒ}»"G¡w<2ëÔ¹.ÏŠ°]Ðü|| dÌqœ4E÷är>؆½}Þ·-anEvHõø”ÏXõ9NºGOWr'e<’˜5¸ÎYWS%m­ë›øI`ëÎ<1z1µïe+ +­(Í©úï'»#3nÇïFîƒP!Ôw¬˜?±»Ùq~‘³WƆ½ø.zÄÐ-ˆµñÍ…2²ˆÃJÏ5šHÀ%;É—Q‹¿ÖGƒ`ñ‚2~ðie%"ÁÜÃSÐTšnôyÿ=|Ó²øˆþ~!¯00¢ˆ!’:ÈÊ]ÖÛIÌorv{à dã)NÂ…‘róï.«vAÁ7`H‚ÿMªl\X ¤è>HÙþ+1í¥žþLÉKW¦§žÎ’= dÌd›¬'dÚäMÔÔ¾Y:»$Q™î,ÞØ0(Ý£EŠIrQÇÆ4}Eå¶fؼ@PÊÚÑ ŽÈ¯–¸*!†²|“%{Yt‰Y¹ µ®§')ív¤4/ßq£ò*ý¤%ÇøöŠ#qÆ4XIê4XˆÒØ3üÞjfœ*·ÀG"¥¥üdº%¨¶çêžAó“Ž7 +RŠÆÿW€‚‹4*XQ-ç0¾ÇËs~†/ ¼®UÄü(&èWθ8½¥wB/¸‡Ë_†‘‡Ï4éúe¨ñv;â³Ìç +ÖYÂÙ¹E& a]¯$Áÿã>±^p¾íŸ"êÑË)ßV;œ?(êQ²(ÏÒwÅ5nŒñÄ®n~ Ä÷ W@³Ìªdª‰h{š}¬Ê”¾51—æ÷î; 9ZÏ<"ïÔîVèÏÆ¡¢5T=oƒc(;ñf7û‰"æ ‡ã‡­µwÊ"œ’2C®´±Z9‹)Y³QŽ'/S–Ÿ”MãÙ†ñ1·­kž/ ¨{üšg"~@É'·W:¸«Ý’”nl´2ªµ D2¤P’h}ILuw¯«­5öæš5±-ðDÔ$yô9öõw7d}úRâáåsã\¹+é„z3½ß^&c²¡ms¾Î‡ pøÀЀ¡ÍšÄʈI³Äk™ëWL“mÀ)BrÎIŽ§YóEÖ¦î|¤{Jëuз˜Ìî~œ%Ë-Õ¶3mrÖÍë:[kwıÔÖqЪ׀õ ¬(Ì™¢¬HÖ¥öª²z©ž—M¤Æž2Ty1hÜ,ºÒ[‚¹ä£¤ìo†„ìH=GF_Šê·:]ûªü*FžY~÷•øZò<»ŒÖú·ýu6ñêè؆ ‡†e Yþ·_ÍõXø“&ÛO'•Ì:}ö£• `ÀÿUX»ÝòT¯7\  žá/@ÁÎ9ãz“4ý¯ãÖn… þL¾<ãWS” +HbPø$JþlŽ;p¼™BŽS’7\‡y îDÌœäLØå®þ=þ~dÕV_ç^ú¦%?4‚1 QÉÐRßf2ÐIDìŒ]Dï>Ô S£¹¦¼™×˜·ÿ˜ÉŸ ·W>?N_ý\jöM#ðRl7ŠsR ìñ6‘BêË’q2B,P›ÉÖ©åÅ"û”ޖÀ9«еàS6›Ô(þ]¡,†üç ç똱ðwoG +°€¢);ßF7sÝïON•È`]%ßíÇõlÐvÚï2 Ð Ø»åƒG1CœÃHfeØX?#åªäÿ"–rüL:…a‡,»ŠÈV°rAÏt—K²Î¶¤P°0ÊæäJ Ï•y?r/8`ŠæäúÛzž¦ýÂ0Û])<Î9²¢)¾feFÊàÍvR¼ÛX„£…’Eáþ^šp娖§[¤\Á!s]ÕËÅ^2vMy€u>®€û‡& Vzóž,K2Pûw—â³)èÕËïCÕv÷#ñ'@Ä ·¶.ÎúŠ¦D)aè’XwcQõû]î ™I‰­ÉÎÃ,oÿ+[IUX8¡×Ð`D°#„ g ÃʆҠ<üž! b53ë!°ÞÎ,ß›¢ž&¦¦} '€Êr~­EÖ“vdö¥ç¯jN-ÕN4¹rlâݹ6(ñµÀæo.ÏøäI„ˆa¯Ý/cÉ;®ŸO€TŽcët¦Q¬µ$¥|ƒ6D`þPÕ °¼0%ŒAñ *V½@ä®ÖþFæ5j[^ÛsøËÌÍq\¯Ü†A±w¹^8U +Àة丘ØÍu[2¥O:ÿKÓ°pnô1²Wüíšï¬ØO3‚}p"ztDîu]Ñp(° +÷@Á–³ß‚êró£bQAE¿M ï¶}Æñ3wiñÕy?e.8](bVÒzž@õ\¤69,b>>ÝIÃF¾ŠcÐNÞ ÝÄÓ ¦ÂÂKê ¥}’_|CRö «“EÓ<ó"¨\Ï“œšp™ñA;¹…ü3A´ÐÈè«weªî\Üù½Ž$Ў϶ĭ,û®ÿDŽó[™3§—×NêÇöÁ2õÍ`Q“ ÿ#ý[Qû¿4._^} d‡q2-¹ÿľ»SÂÙ9ÝÕç"‹W$¹¨·¢ŠœCöc…½–†x뽺ؗΕå“k¸ŽC‡7ÈŒpâîÛF°!?½}½ƒ•Ì‰4g×sª¥js DÛÖóCÚfOz­û¢=±Â’®­hË»v<8Þd©´ÑÉ;T ë²Îü*áÌã…ýÑûÎD.Å{ëN +ĸо7ˆÉ®i°õ+öŠöü€¤I‘4‹O }(û’îñP=æ íå£ùVfCVFãrÅgèx s ’¸¨R†-"ã½cC ²É%¡?éÚŠðµŽr\%§)t»âOLDºÈ>áë ²ó¹£×õR¶K”׿D9³[ùei=£)Úôð½gažöµ +%x»mK1˜š­Üßžñim! Ú¤Í0›·cRÈÅÄm…²b»K“’FLÈÔP¶YŠ³ £ê`Çc_g¹ÿ©QÐ Ú‹ÖÿÖ›1CâË+x^(â8è ¹´Šg·YŒ +§Š;alx)?¾¡qÏŸ ßùÙGuC›¹ÐûÝÑ/jJWl|¨4ijgfNÌGCwÍP© +âä|¨çy3ßüŸg£Þ³H` ·×Mõwl~ tµçÊåQ¸ëÏ°¯Ká_¢ËC'Ì¢`ÅÝ:]äUQ‰†ÿ:HÞO€u’Ël¨!¯g”9ü·mµ4í.VIU± ú ùWW®`ªô Hª7Ô @Î3QAéÕ;»r|ÉÓp"Im%±Qq§Â¤]N’$tâæ2"cÖ5ÐÐê²Þò„x.v’-hª}G9ÊØì»_¹Ë” $4«o®âó;óÄÆÔh3V¦V‹*&yüPw…☨î!è)¾óëÞȱ‚Ô6¹ ß%küúµyxCÂ[ªWI΢-=R]¹©¸§LùÐÃ*n¯öEº’&vüÏf—Rù]%\S—Cd*ÆÞŒlWóaMÍ1¯D¤–Q%NpA ǽ1è>Gzêþh$H·lÏs_Ø#¡¶¨Ü,/]fœÐõÆžÝn¢¶”#×#ó`ªr1L*ÒºEÒT°¼N˜œø²(Õ3ËéjýA‡9ieLŒsû[&u¡8ìýƬÄU\.xÖ¨ç8( n"ù#©’Lï½»Nv3RÉŧÇ,4zÄ„§ˆ9e2ý„¸§ýçø)"A`¸³ÎÎ=ŒåÑ£@p­ï¥ãwµŸPjXÉAsìÄNE¹sÝYò®/ø´1nl(ÑtJR‹v¾jÀÉt—6/7‘¬oRîB>ðr†œPá<ô»WÑöã͸˓êu­ýˆð;ù\+òuA{á>8ºïÞöL·~è½Þ€c|çù^]þ‡Gvl °¨Ä…ìÖD9—\ÕwÄ(fß"ùƒÑä&»˜n4{ÜùݼÔ'Ž‰h°ãÍñùwï½å±¢lÊòJv;T{>) uÀò”DMTµÿf\fà•@@Û‰QÎõ o!•Dô +ï¼ß²€îa"ŠwO':[jÄŒ5 f²]ë»àü@\AÖ‘e—-ÇZyÛ§À³˜Å×55»m–ŠÊûxkÅ ûåhž³í' ÞOW¡föáÜqtA+uÏìAŽWmÕ…B%œ¢ž[žsPµZ伜ÖMC ! #¶¶åëX$ˆï ô—)à²öl“AТ1bUï­þ»‹+„>ÀT¾J|²ù f%CVôs¦5p +;.ÙùÓ(×;GxÍ RUö+þ·J<#Ø}ÁÝ^UY¦÷ëç"©èz¯ïGûâ_¨G@½a6?·MHtF>Aå&ï´¡î×F¾SD²Âã;Ë…¤ší±G7û×]6†œÒòqMþ®d³Õ64‹ì½9Ÿâ©T[”Í3À<&¬"Qèé‘uLé(Œi€ß…ÌÄÉɦÄ5À…‘Öð-å^yJ˜Á=hHói`Ü úâŠa þâÓt.´]$žüÊË!¯-¾G㤀âû…®ãVÔ•Eƺ"J6ZÞoƒ) @ e·.…å4ðÐ)ô_®ÓB$gÇr«I‹õ›)Q;ÔI*¼þHºò/ÒÏ{§NŒ¥×™‘®·2à©Ÿþж+ u¹z2²ª$\‹%ˆшç7c¯K*«‡Ä&>‘Èmð4{ÃÓ J4:šƒ/ßé¨5"ã1Ì•æ?HáÒ‰¶ppa?KÎçÍâÆolœ6ôXN4ëC£.jkpðŒ°£p-ÆW¶H:„º ~/j lÿ5«+&¥6ÿýëøP^ô€6ã6š=I6ïD2oãÉã>Ôñû㬎;‰úc¥‹vÿD9IÅ"‚tzÒm÷ÙZG¡º+Ì‘__Ëø½k¦£öWÄfo Tïç×J ‹ñcP±ÉÖŸ#‰¥O»µ‘ýì¨ûS–çÿ:M„Ý{(Œý†Ò5‚„¿2¡vìWÞ×Äìç†Å¯´Ä¨P“Ä¦÷v{¼Ä\û³/î‚°åx\"@7°*†ç¡kÀ¾úWU¬üæN«}ˆd¡JÐFcoçûžhÇ¢«—>©Ez~ˆ¶“¦â£ÅŽë‚ 'n^at”ù »þ÷.¡ÔÐÛ†³ô”lÿl³ÄH%|ÎYÁX{núl{üIç)¡/wÓè”ZGHv>¹c‹4¸AüX–©ñ†~BïF‹gµ‹>£òYr¦g(´b;$îr->?0x?">±ÒŠ•ãï5C9JäÚ²š’R­ìr´~ó&&Q¥B¶ +j²?‚¡óÐ@´L« +®I^)¥Ô¨äöŒFL›˜Æ¤tþLkúˆ{™ªÞí¹X‚sZì4íä `ª]ŸØþZàOƒ}„Ki½t¼pâç»!Ê›—¤kcwCÞŠÉE)ø#ˆ–ožÎh¬+Mçå ÁƒyÑ #û¿®SöðŸ[¢ÔOËå‹±Ê ºú³+Íé~C =·Hè ŠÝL͆GRÙZÀÏhØó£ù¦‹!²T?󳋻¶–™`ÆÁðOKe6¼t#ýË!þ’+{Ëft[O™YƒÖK!UÀg­ g-0ŠO=D]îtÖï—&¶ZT¡.# P÷÷¹ÅY[#aã;ÏË+I•ÖמaŸð˜—Ìl'•]~㺞mæižhq¨åéê?HÕèôŠC¦7^¼Û|bí¯Y/UÓ^fNïüXBº.ü/MFÏÕ ¶=ç‹€ôÎz¤j¶ºò•¹{šºšÑ27 +‚2&QÂ.›t|ÝðZ¿U”Œ •O·«Ô¶D¾XqðˆtЦ²W{‰÷â¿a…µ£bäÈä’6 ¤Ú$Ë ”×å3bÑ’F7½šg}ÓöƒÓâc`;»¾n‡I©ðÁ’ ÚtF¬­߉žè²¯ÙVž9új÷ÐåÚô¸ã¸8sõôDaX× Š.Wf—’ e]ÈàÄ°—Ò`¡ÔkL¸ðaŽI/Tí‘êºUL/r-*<7%[@{·v‡‹G5½¡L{ÜÚâÉí”y.¶ÅHÂRÎ…øÇN– +a¼¡¤p‘°TŽ˜aY¡Í÷MP)7VÛÏœ[P‘sì½;Ó9C™zðªÁÊ÷¹!Ès_ÚšWoÿ—t)pê4¶$dD“o©KPdÿ‹_&xQ€…LèZå™ÿ.öy²ÃŠÿ&pŽS†¿bËEþI<%ò/ðá6P G·ÿ‡‹>—ìÓ1ôÝb™‰ü¦.µ ”À ñË•¾Ù³dÿ(Nm‚ +:}ßü,%4ÀG;´>û';­òQW¡jɧ‹YçÊ^º|õDZçü-ì +‰™ÌŠñÓ¹ú§N³5‡1 ”½çGòå'†-2¨“ä^~ĽsÞÍKv¾0@WÜ„‚GÞ.õ¡½] /Žóa Ju^—RLX~ ä +EŠ¿ÍJ8h8št=÷ƒ°îøy°5­sJv M ±25šÎbvŒ™E¤—añd]ø=¤V82£pøÿìy/.‚tÛoѨ«ú['(ÏÇæÌÍf¨zš\û¥3B +˜Åÿ´Ìö0O{C´eFs˃ř>´Í)ϯ¥™«‹-ÐyþoÖ´;¶þ³¬_ZÙ€¬—Š cI¾-VŽ8Ÿ‘ô>\m âø…×÷uAݵ²£óŸ5[ìüþÅó1¶ÐåK*^žŽ.sY˜Ê„šñ¦dˆæby`!ŒH¯a¡\wš=ˆÊ.âCgܱ+Eætl3í«Ë{^”‹Ñ&Ì©=:_"‚B»›°ØŽ^<øY­P½ÿí_£hV¡ÐÜÕ +endstream +endobj +504 0 obj << +/Type /FontDescriptor +/FontName /APBVBO+CMBX10 +/Flags 4 +/FontBBox [-301 -250 1164 946] +/Ascent 694 +/CapHeight 686 +/Descent -194 +/ItalicAngle 0 +/StemV 114 +/XHeight 444 +/CharSet (/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/R/S/U/a/b/c/colon/d/e/f/fi/five/four/g/hyphen/i/k/l/m/n/nine/o/one/p/period/question/r/s/seven/six/t/three/two/u/v/w/zero) +/FontFile 503 0 R +>> endobj +505 0 obj << +/Length1 1513 +/Length2 8660 +/Length3 0 +/Length 10173 +>> +stream +%!PS-AdobeFont-1.1: CMBX12 1.0 +%%CreationDate: 1991 Aug 20 16:34:54 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMBX12) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Bold) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /VZSPNB+CMBX12 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 65 /A put +dup 66 /B put +dup 67 /C put +dup 68 /D put +dup 69 /E put +dup 70 /F put +dup 71 /G put +dup 72 /H put +dup 73 /I put +dup 76 /L put +dup 77 /M put +dup 79 /O put +dup 80 /P put +dup 82 /R put +dup 83 /S put +dup 85 /U put +dup 97 /a put +dup 98 /b put +dup 99 /c put +dup 100 /d put +dup 101 /e put +dup 102 /f put +dup 12 /fi put +dup 53 /five put +dup 52 /four put +dup 103 /g put +dup 104 /h put +dup 45 /hyphen put +dup 105 /i put +dup 107 /k put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 111 /o put +dup 49 /one put +dup 112 /p put +dup 46 /period put +dup 113 /q put +dup 39 /quoteright put +dup 114 /r put +dup 115 /s put +dup 55 /seven put +dup 54 /six put +dup 116 /t put +dup 51 /three put +dup 50 /two put +dup 117 /u put +dup 118 /v put +dup 119 /w put +dup 120 /x put +dup 121 /y put +dup 122 /z put +readonly def +/FontBBox{-53 -251 1139 750}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª*Bg·N³ÀÓ½ ƒØ‘l¦ÊKq*Þ²Xú«šææwüsŠ¼|QÍFïq˜Õþæv`æšz¹XòšMyåp"÷ƒë»¶Ôôì5OÒÞË©”Y¤ÅðÆë¡P(DTçÜ!Á[v´Á›„67XFšlU‡…²&3!R˜q©ˆ4‡Ýw”’Ýσ~j‡¸+Ûño¼uú£ “þ_dÍV`÷Kî–y ãZúÌ÷±€]¨Šãu M™YŽ­üb[Üœ1[lòŒ›Ô'ó,t\™®¾pÚ®Ôž¤ZùO4ªG‰J7 iŠº½¤!U±¯&Ï·Ý¢¼h`ZNöÌ£ÖhKGÿµˆz;íà´ÓŽº¿ ˜ #1&ë¯(›)$ÿJ3K…ÙÖ…Eý­´™s±èjF¥¯ˆfÀ"P$Õå†-IÞµØìË•ÙBƒÅ +6=h¤qDVð<ã` EŠkÀ³ªE“NrraÆŒJGø ×~Lò{6ö¶ó¬IŽE6ùà¯U'õãÌy 0„gK>&)o>2\U]$XWŠ‰ç-1f£Å×@³«±'ÏB 1mùW‡= LðÛ%§5t¤Þ.O-]NŽ CTÏ4Û>&wÁ”vN­XÅ…ôžñCþŸßÙf å ›×¢¨r™¼1žf×¹VãC¡›“È–~äqŸ0 þXfðÖÚ^Å^$Ó·ï£%ÔG7dé›È±\ò¬­úlFcè0…]g<銷_‚Ÿ¢&«Wð{>}N|ãÓ·ë 05ŨÙú4H4ý¨ãÜžlGž>îš TÉ_¤cÑœé6àYŽ1— §»nUÏÕïr®Á-š–u$zq1k.â¡s+6'ž¤FË2»âç‚Íð‰.r¶q5…#3|uç)p“Õ¾Àc ÜN•r3ì ùåÊp<~“„˜s„?ÆaàÈG:m+å-뢅¹¡Ì^dÒ­¹æG)q„„Q¢EÝöª;‚%鬎F0°ÿ2Öyì'¬­…Æ9N¦÷#¶`îˆ=‹gh7éë¤ä+¨óeC:éðèŠ&3ßËŽö¦Mˆ§ÔÐÙÃõÖÂüYÈn¾ñê;96†ÇWL¾öŠN(×^rºâ¼›†×ný±†Y#sýédB¤™1¬_èxóš/ŒuÂ!‡gcY';(/5t@ÌaY¾kYeËLYÄìREß©ÚÁÆz1Ж°o¤°/ÆÏÎö¸bXKä06P,Š¢ß)¯^Ñ^ÕÀŽ‰Ð"!Hý‰Ž¨ßª¦7„Aø3§vćýNíŒB"¶PÔÒij’.õŽ:„QéV§š8yJ¼Ÿ *ëTÛ€­ö»$F"yÛäL áXòêè‰;¾º¢ñ5:ÄE »ËGÉ¢|| UÝ¢u–É‚´ÉS‰ÐÏRâÇ·î‘û¯Rû Bäò,‰¯ ËfÏô’¯Vý6 >öï<=òb‘PÊO¿´§«ƒ£6˸t­ÐëêÄ9ìÁÓ|Ëþ¾ìbús»6ÌݳŸ´<îôšü³öùC´ëRCµ|˜ÃÅC¹ €#(2´ÇnOr&Ä=ÙFé)x‡Ö¾'âˆc0$Un€KƒÞ£l?óîZPò-} +0¢`ŸÞÁ3ø¼w=²'·~è½™¾"IÀv§ç“AµnŸVý¸oK$Õ¤Y¿ÕÛ*꬀QWã¸Í±„zµv½/î÷6¤êä±¢¥‚t–kf íR-˜+Õv¢V6A<Î +ˆd¦Wl³•Ó`™.b'vþ§ý-=† L€«èÂJã÷ƒáäd°›Ùd5qM÷«¦çÀc %s2p»Êšá¢?°Ö'ÜO¹ÆfÓKŽªo‹ˆÒ(í×ÿ'‡x­êm€1`…É1ëÚÔ{‡‘X¥?žœ­‘Ák>œºáôp:8€mªóïåz}Wî¾,nfÒ²èÃÇåtð¥5¶xmPÙ±2YoŽìAÛ“à¤Î1´B¥KÞ@ô”f¸e>ªÎÆ*\ª»Š†ðVµÙ F‡©ÐhàÈîsWŒ rÿÐY÷S´ùØÔú_˜ªHw-µ\%©¾ ѯˆ5ÞqBxüµëLYú^_ûÑöÁØÁÌ)›T1¾è"ý˜b" ¼0ÓrÜLýãóizù»ÇgØe8,±é´Ë®6¾fPò~曹 cù6ªKOè…h§œj9lé9Ö0–‘ã 7Eî\‘8J·0N( Z¾~eÄ=¯–+ã¢Ê¢i» ï—N“],Šž¥˜!Ç#Gÿ‘5tHX†ãSâÄ/ÿÏÕ´M {X‹rðµ8 ±½CYY^`ÌJ! øá³/:€ÄxÄ“ìÇQí9§`fº{ÎÑtÜm«”Fæ™QÜ¡Ø<úVhœ]P¬è»V%:G%H^z@‰Gw“w=Z é.%9UëÝô¹‚­òÔÏê^±+_É$J©*\bŽ¿®]J2Q.‘؉X dú;Ÿ‹ÏáÿR­\&õr–²ò {æƒ$}L[„”såý‚Û6TýHr _%ÆߪHGÙŠ¢FHm‰ŠBGNä¥38©‘é][Ò S6<ˆ©†ûà|‚•šžkTu@EhÆ|ætݳԱÂà÷G4t3 ùÚ$W2†)©Œd"*èBNëÙ#\”õÀæ ÖÓ- LBb>p9Öjÿô]«U²IøˆÄ‚¾ÖŽÌR•‰-“üC¨EÝT|Ac,[uµßϘe–%ÍÌBCâÎ[ Æä(ÚæZœo½(Ã-ì’p†ª«¾nö£ÖýÓ¹™JC0Þ¡©A;øcHK.eùiÑreÛìë°7û&‚®T‡œÚ]CÃÜð¢å--m…‡íÇëØàKžþ:wb˜öò ðùê›ÄSsáß’Fñ[²6o¦°qõõ{{Ý‚¸IvܯTÖ˜°öKjŒàj}ç)¬|àsí}çÑWD¦fM€ˆˆÌòÈ#¹ŒªU»‰Ù;/Ï´N¼'Ú¾AOT@Býú_3­€Ë„ÌŠ“¶jFnF?ŠW0惡Wâýé„ý¤îÎÀI]ìKe9TÔj¹õ‰E!#0XdfÀųØgpû=|½És¬®vhS£½Åpùà”rµ5˜#Ÿ×rõ¤nÐÐAž…„Fø˜®œˆNg}ã9ê’ÂXfcƒ¿zjNËd +ŠäÞè!A&RM˜Qfg 8§s˜]5—›c˾ûÕ«ó×Wdˆ¹Ø!{¬‡˜;9ƒ+“·U:{x±$Ôï¡SYÃR5A\7“šeÀ~×i‰:y™É2Ù36S¢K5™ÜUú_›ûJÓûÌàÒˆ‘ÆS©+Ä›{Ÿ.ÞÞ2„žŠ{ÔÚj-EQ€zñÊÓ|¿Èùõ¥\ÜfNáOÑ$zö¼>¿M"gÑ1äñº|®•lŽæç3˜÷eËãì¦#ƒ³ ç$^íË¥»ª¦0¹—87‡Ž´Ö'‡Ä•DìÂâèü²÷»cÛ¦åÑ…ë¸åûãRÎæˆö¯o8—ÓÛÉ¿ÔÐËßãl>Ÿ‚òqÀÆIbµµôB ¦°ª¾B¬Ì€_‰Ù1Ñ@݆T/]oÌû[*¯ÌFÒMö’E‹"f*±\*ñïe¨6^cßÞª¡•v§ÁfÇ•Ñ­kÌG ³F'ªïNãªi…®![r¢%bÆÏ‹¶®BÔ«ØPød~àcÇ#Y7‚±jïF±;R'‰Übg쿽¤À¨·_àÔ?åã’º¼‹[ýÄ50£–b‹œØßF…m}ÝWªì *‚óTZ‡õ² ¦ ÜéóŽeºp_ÁˆYŽ¤Ž®~€!dpÎL„þ±DÉÕbæÛ®Ž¨õƒÎž´ÌîÕ”ç‹RÁ‹Ô"^†Â9*î‚Jøwì¡ ´ã@Í{½­áPV· õª{&Ô!ÔN– ^þ=j'Š#…1VëóŠxǽږÓFåP¥H–Yá—‡H†ÌœBF^mÙ +Ù¸Da[v`qy¬ÙÇP„‰œ²YQ;{,Þ.â_¿U“¥\—dÞ0«ly&(—aÚʼn°½a¾r +‹Þ0gozÜØÐœ7oËŒŸ¹4þC=Þr¯ìzÄž™Öö4ls¢ürîµÚ>`÷K70·”9"w[JUÃRC¯*:éÇ'ÒŽŒBt7“€ªÝÕè˜6ÿÁâPÃüKyj!ž¨{Ù· H©%}9=K ˆY.¼ßà ݂!]E%_×ü¦ìbK×-;>h¢ å³IùÁI×:ŸªÍžùÂPØ€+š˜þ?0ZÝäšÚ¾¹+‘ö7 `c•ª±^TÝ {rÿO”êr³ž- ·ÍÒb(¢‹P`¥ÄYРV aÏl9V„Ká¿’òµ°Ø ÁUÿkéOo²gÔ÷ zÐýœ#¡gP·Å‘Ä­XÖáŽ`l¾ZòšZ_²ªÍ£Do—ºÙy²(IC•Âyâ bŠ«qOð(êÅü\sµÊê5–q­‹‡ÿ˜|kjâÁ(‡è> ÁVE b®Ð$½ÅCw-À¤ñÙ´$Æñ{êÚ +ŹõYÑár–eý* ~Ú¬°‡ ÄE +¢ÌjÚŒ'LçzÆyüèâß›Ñ/òéDåPÈN§-lQ¬"’IÃwð,_…oñ²wX°)A”Žxò¿¸wÅâ÷Àþ'§i Sû³Á¿-jz¯°Ð¯*xÏA’¢°ç«ø@*;í½_#åþ¯Ôµ%»K‡›SÕOžFµ›ŸÉ´ÒDÉÉî7Bï_çl~b’÷â®G¯Ûd5n/Ž ~Ã$3XïRmþ6ã;†ÏhÞc™ˆ;ó!‹ÚAè@E}|-„ä²»ûƒGž½¢… @É&·›é5¤Œ:+: }àj–¶7¨Ž-=ð/È2½ â:Iâ<,SF·À–”h"Î’tY[üš·k,ç +p®a’³I zEz›ÑœÌB['4}ÉAw.Ñ·Þ.o­K3®CJòß·µTMAõHA››OóXîuigAÈõD³Ö-Ž +ê‰S=²©s|Ýx2HàÕ‰M»6{ÜáûZ$ÀµÚ*v`?|Ãjô¸qÏ)/§­ò&\ô{g8ÃyLJI8SRç'úˆHÕe'´AyÁÈI>µ-v6a°Ô~±3‰üí7Òrz$Ð/mÞ"=di={g0s†µ¾ÖYwßl}xùyŸâðÖ±yhª8hÿäÀÉÙNOµAáÇ06ÂôòÖjGgé6nj{\!b¸#/Íg>k>`ª}‹–îžüÊCfáÚld8€4(ÚÇ©ïç“äÍÔéVÙiÎÈ]²}z«‰Wf\ £M.*ýì°;þ; +Á +âŸùÄæ"ø¹s‘»˜^]R9rÄkIþXAÔù"ïטØÛ>ØÐSìrñW¨Ç®5Â4XµÇ|BhFኳó&–7¶%Wtc$y²Ü èÈèVê;)òJ‰Æc6‹A\W¦ëÜÇ Åõ* AáoƒÍy¯ÊgÄ" ¶øù¿cêk×Ðz­Âl[°“OáiZ€pàï±Z™ÀG2{/Så‘MÊXdÂRØã\oç•Øb¸͹ĥ9hðS¬*¹E&FŠ‘8…êxÏ57ˆ’,ùEÏÈaR7¶ŸÐ02+ÎÊÖû'¼©:±p+–,C%‘xè0i²OØ7ýU9Z*Üã+i!ÄÄ+|cêZ*ÛóZ*B±æ §ô\A§ß‘îgæi³øë­ªâ1ûwÑŸ°NJ£'ªÄæˆ/‰ÁÀ¹u»îþ §fÛØÁ¨Ê!Ö(ÓNlÄ%¨Ëøx–FoBú¹Õüׯ‘·~ÔjdIÄ“pUG÷?Ó·ÜûIFn{[àeͶQ®Põ+®ÍV:êõ›‘ü«Jät¥f³ÄbPã|èœù‰)ª:æôS‘‹*ybÿ4ÖF# pÌʾV—®t¨Àø^}2¼ôDöò%r8.…>9S|8N¨Êϳè‡î ×e¬e—a²$_±ýÞç4Z‰äPÿW€J¤D`èà£!l~û§™–^fP_t ²CIÜNŸþrMeøQ¡¦ Â><†ì8=4oΆúÁ¢ý“§UÌ +}À²t|°h’Oû=šN{Ft“¨ªÁNqăÇx§Å€QHi"7K•ƒ\NÿÐæt_O÷\½Ÿ'¤4ífíÒ/&¥5Qª¿gǶþ÷·•KÊîø¦B—üø‘ µG£­` -ÔÄóU`£–K ½{@¤çáH8xA&çú³X„à'ù}à:WÜJ +«° içtHe÷,æá¸&}ïFwÉ9‘2 ŒÌý—55gY=l‹VÊ@é ¨ hËôC¸wçxäBkÈ’Ú[; +úá,™6°CÕ­Ôineµ6™óÍÏçzî'öJtšvå@šŽÿgñ›ÂÌ3ÝÅSNŽÒS~­c÷vГ‚Åê‘Œt +y Y¹0ÙðŒX¢÷ý—à(p¢rÞœüÐèò-¦š’²ú§AY×ôW &ßÒZP j#íám¾ëRÌ›èu‡o=–;mXÕ‡6r…—˜qAØÖ” Ž4\{SkjéŠÏŸ»ãnY‹l—݉f³Šh"ÃÒúpÌüµyà—8Í.[êÑLÀÿcdj©ÕÇ”ÀhœÔ>îyàæÆm€¦ã{ª''£uçSûK˜é瘿¼k–õ­£K†gˆ“ñ&¨ˆ‰É‰6•ƒ+’ß©rá`5ÔP•ßõ;„eÒï ωÝg•e8*RÅÁ>O +âêŒ:iC_Ûa&®N3–Þ »gPÙV7›uÞ*jl‰d¥bKYôMäl%¼<›Žª?:ø*3¾f„ÛPOûYcˆÉ|°‚L5îurT¶tH<$ÖQï¢Å£ìÿ³sÃa Þù¢-½=-Ѐ®y"T¶÷/»sóµÄ-ßÌó8À_ë.2RÎ{ J±|öÄõM?¢ù¯Ã º©“ùÀM† !ôÚ4¸ qÍ O ­ð +ÿÉyšã*<µ²FN͹(ƲíMßx÷lZ ü'!­&ÿžtI’\ØÍ ×Nüi]}JëYÿÌ~iåk|ÕR”óÿ¼’ Î ÑFÈÚá<À6rˆ*ØäG ¶€˜ç×á—öÃj8Mã•/oŠJKœF§™ç‡&•*pì{:s+>îG|ÆîW’Ú6”ÊC}Ìåzqó\7‡ŠÓ’Q–¶8ç£všÐƒžÎK<‹èê_Õ¨•@¼üð¦+épE?—LsáAyzÈ÷µ>J«tVA÷ëbj‚q +;âîªTú€|aïøÄÞmµQ²2ÍP#vwL@8—cjÚ³@ÍoYÙ ÍZEsv¡‹žÝ Äßøã.Fýþ^4!_’ÿÚó#<èa¬ì¶)B‚Ým)—Åòys¥QßµÏTµ2=RaáILg¡¹€b¥A¿(œ81¡¤½¸ñòn~Oxìà—p…ú\h›§…ú;ÂÜ—Ô˽òR¬,²R7žU¶®¥.¹ÿì+6Šý:˯šM +÷}½ÊàÛ¿×–ux¿š€¨ÍÃÊ?S$uÌ4Av!Ý `c~Ñ_IDáÇõpý‘5æ&N'ϯ‰>á> n…¹ù¦×=;${|óãÌZ6çÃIÁ`ë[Â8sÔª»ÀÈ9_u2ˆÅÆÇ_˜,ùB§.¹þʲ™9ÚÙ8xA¸Jz7rÃä&’Ì—µ£q-è/ )µ“¹=—àG¨B Î –¼ß$ŠÆx‹šº`Ç_&Ш¡ðn „f´{qÛ\¡cK-õØí2M]ÏÊÖz‡)vdQ¡q¨úź¿Úfe_¢ueí•4„/™+Á£9aõb`R¯ÈjT7¬È}?ÕIç7 ñöRpGS½ö/h³ß äã|"è©IÄB‰™ú‡Ó’æ›+ž)ÀNyµëó¯ÆJ³7îyqŽ +·—ª +OèÓ½:Gv‹ÁfVMû7èÚ}0ÒÒ„]ƒÿ£¦‘R褼ßY¸5ª-<—0§Ë‘Å +}aÈclÜ¿?‰Œ AþOK·:•¤7.mÓוAÁqŒZI!Ú-u»‰‹ÿLEœ~MÛ¨°òa“—Hó­ó…Å 6õÀK»A9Y*=åOåTF¾È7® hGÔr½=¿²ÔnFS“Ý~1]Œ€)ªÇ#Ÿ‚×›å5êñ£r +O;èT Gƒéu)–Š)yYœ\ ßz0;‘Ü^'DØ !Lf{¦Á΀¡s†Ìâ6õSÝÇgy.~Õé0ˆîÂTš<ÅÖÖ;ï‰ÌÏ ç$W¿õcë/nÔþw»ov„[½8é`¢ezµ¡>xÏŸ-ÿ–gõÍ)âðŽJõ~¬B‘jh<¬ÓËþäœçåQ–ѽ›¶ ìqC?*Ðó“¡#ÕŒ{ä ÓaëJrlrÛÔvþͤ©çeÌE9[UƒpüzÁ©Ù1oÐöcìž9êÌþŠ²ëšÁ +p•íÿû,d]¢ä'š :µÿB´ê•Y‹öƒÅ +endstream +endobj +506 0 obj << +/Type /FontDescriptor +/FontName /VZSPNB+CMBX12 +/Flags 4 +/FontBBox [-53 -251 1139 750] +/Ascent 694 +/CapHeight 686 +/Descent -194 +/ItalicAngle 0 +/StemV 109 +/XHeight 444 +/CharSet (/A/B/C/D/E/F/G/H/I/L/M/O/P/R/S/U/a/b/c/d/e/f/fi/five/four/g/h/hyphen/i/k/l/m/n/o/one/p/period/q/quoteright/r/s/seven/six/t/three/two/u/v/w/x/y/z) +/FontFile 505 0 R +>> endobj +507 0 obj << +/Length1 1432 +/Length2 8170 +/Length3 0 +/Length 9602 +>> +stream +%!PS-AdobeFont-1.1: CMCSC10 1.0 +%%CreationDate: 1991 Aug 18 17:46:49 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMCSC10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /WARYBH+CMCSC10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 65 /A put +dup 66 /B put +dup 67 /C put +dup 68 /D put +dup 69 /E put +dup 71 /G put +dup 73 /I put +dup 76 /L put +dup 77 /M put +dup 79 /O put +dup 80 /P put +dup 82 /R put +dup 83 /S put +dup 85 /U put +dup 97 /a put +dup 98 /b put +dup 99 /c put +dup 100 /d put +dup 101 /e put +dup 102 /f put +dup 53 /five put +dup 52 /four put +dup 103 /g put +dup 104 /h put +dup 45 /hyphen put +dup 105 /i put +dup 107 /k put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 111 /o put +dup 49 /one put +dup 112 /p put +dup 40 /parenleft put +dup 39 /quoteright put +dup 114 /r put +dup 115 /s put +dup 55 /seven put +dup 54 /six put +dup 116 /t put +dup 51 /three put +dup 50 /two put +dup 117 /u put +dup 118 /v put +dup 119 /w put +dup 121 /y put +readonly def +/FontBBox{14 -250 1077 750}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª)s™§„̾…´™;.ëÞ;Ôr·ÏTeò…ji«–íK­/df5à¶A|Ç{S/…ØÇ )¡šSïcë\^ÈŸÆÂm‰çÙäp·+ïÚ#õßv¾¯Lé17¢íŠ©×Öýó~kÍàÙ ˜d#å– +]Ÿ»L•eVèßËúìGo£oÙ¥È\šõþÙÂÝÒkÜ ™9‹ŸMÕ™=ü 0)xfáÍ +0ëv“7ϱ9 ¥ÀàE(O&k¡{ä‡Ç›”úÆÖHF„ſꇼÌwÔ +ÑR^•ãq&AŽÔ›hF‹8¡NˆæŠ&{˜o—i¥¯¼(^[Ž¬Ÿ’ol WÙÃ%®'5,Ù.V‰à!0‰½&¥äu%ËŽ«ªKx¡Zê4pX‰«:ÿ¸•;[4‚å+ú @c +ߌ +Â}s$)žé€èPòͶ'–/CÕ¦xÄBCÍéxS½Æ«Eý\ ­'M¯‰’ŸX<ÉÌÂKßÆ‹’U«¥òm-Æ|poq•wÖZçF¦ 0@æË$¹Í­‡®8¢ûðä«Ò§@ñçù]ÈÊPËØp-ŽVÐÙ/vÎ R«Û‘ã$8Ò»óæ¤ {_»CxÊÆí)–÷`mÉbÄýâÿ2'‚ÃCßDÎÅÿ¥\c é® Vsup“ýÍ°ÎÔŒýž C ìq6 ¾ 2T‰1ûe|jÔ²H*} t—‰.ž”-õŽˆÊðÈ"ók÷Ä5¿,h:J.ôËèX ¨­4†Z@0ºv)FÞöžÊE–ÖäÊ«ø@‘"©jKÇŠÐrþ·Y¦ŠD¾dc‹m•!Gî~,ìöf\ÛHÖA«Ó®´hc†éc”¹ç¾ÑÑ>SK‰}¹¦ìpkªàkâþÿúRX>›LÒÓfU—8dWNb‘䊌b ?g›~Ø8o|½R<)Cì©”ÊÎfxžg£mŠ.sAQìájE—bp]lyÙ'ý•˜'Í”±Ïž[tœ‹Ã›VÑt•{¼`ƒz +Dœ$V{ ¡êEë¿áV·|œ4-†<G"퓾.Ž?ךŸe\©^˜/ùfÍWn8Yìzÿ¬sö¯=õpÃ2΀.1Ápè€TÙxK(©Û¤Šçcœ” ]Ó?ÏÙ·ýÿc‡P'ã¶ÔeOzêÁ?Í.šÇ´‹B¹5ÀÉÒ™—Áo‚ŒS§ÿcfìaÑKŒè1šk‘€;G†/{›bœ28œ§˜m u- VG†?DÜpBý4ýHçvçG}èh‚UÀ¼ÆœüðoÔnÍÉŽzš –”¾Ïžëɵfv»Þ.YÌ83 ¥w.Š_£½n=m8–·÷Õ»š—Ì’JÜË2•-òðoјáöקx ®w.%(ôÃÑÖîàäºÊÈ7ö¼¢ä”›ãƒÐųZ®ûXTžÿ4 V¯®¤–€rÄ|1_¾ ™ÐÃ&¦B·(ÁŒ¼”äE™”:'µ«êNö@¹Äuuµç‘Ý°Œ_Çÿºõṉ̃+DÆ…’hªYõDë{Àôöã¡Ö®ú1°Dµ`'©hÛâ€àÁyzEË;½WÓ +zëx©Ž¨))?ˆˆªIñÕÀÁ½š®wu·Ï»RÉG924<ÄÓa¬®9æéì°v¾<‘¬F‹Œ'›gd݇+O»ƒôš0êKÈq˜®°Ê³EŽ#€ÖQ?ôzë;}”ÛïåÁîgËj…TÕ À™Ú„ü`Mï[ª¼$­F +ÖGwjpôÅŽŽ„Ýóp¼tg²-£ÓǤP%ùë_Î*´„Ü* ÑÈzø‘oÐ|³-æSd£J  -Ÿžo”9|§=Â.0|=³—*{õFªVÄL¯¤·)ù }Ó-#%ˆï!»-¼’ ÆA£Ç’™ÔÜ®ÕA}q‚˜R`C‡d¦ÿÀñÏL?› ûKZæý:Ôì#¤q_ãÊHœþàQ‡¨qÏÒ†<Q¬ŒMŸàmçùõ.QAé"ßKöóY••ÆCB[+vµv¾}”P'úãçëo6—é¶K[<•îàé0â­G¦ÅB¥.÷¸Šsc“÷ÔÔ–ÃÒµvA¸¬"†©^󃫸­ã“[ÒoÊ[ô´9ðä |ëTQÌ‹£÷)©¾­#‘§’¯ŽŒ"‰5ØŒ0ìŸC&Eï)!2†B…cB»¾öë9ÝsNf€¤üLa/š ÷£híÃ=JÆ!&Pk(©›«ÖfÛÊCÀL,GŠ‡–Ð!L~7Ÿ÷Ü[…Uœ‘°b……̬vÙ¢\6ÌM ¸X"êw&-p’Ô'Níb·hÔ‘¾XF¬Kª7w¹Ÿ§"eÔTU,SÒ•a?ãIJÁïϳä÷ßN¡²ÊéZ]ƒ“Ÿ âg\ü¾ Í^tXX¨¥Éî)Ž–ijŒÛ,¿ÖN9KÜúöbS9Æ® +Å”ÀÀ³`9–ô^#R›ù€1àNƒë‡ß>ØÄk|^qeEò­_’iÇdšÀwê¬îtð䀓†wç{Æ + ˆD1Ðæ–7Ìh"‹"ëÁŠJÅ"³å Œ!Ó¢ì`>±¶ÝðJ^UÁEºŠÅípòXáùåøù gU)S&³%Åâé]ãfsJ´]ç­·™b˜§Å‡;†±‰_/É¡À@š†æÎ2è©ŸLîtºÝK=Wi‘(D¡/cŒ¦v+mÊ) l_¦™8î + +•™Û îÒ¢îaÔÃøíYu1ö¦Ä¸Q®È”2‰ù5ÁÞ›ŸDzèLîS†ÜEMŒçrž0à$ß[/z¹ñTȈ § Ib ÍÚé “ä©Å{oÂgº‘; ýn":"ô)ÕøÚ[hHñÀwvG±•Wˆ«xÐB›ïxB™ÁÚÑ·Š&ɉ+…Þ× §Æ»PêdäŒaUýcˆ:q=Ûqô)ùßÒ®^:C–nuEä“õÍñgÐ1\Dc©eÙ¿–` CÆ| o¸þ¶V`w'ò®½Êch›ÒPՀڈܔ+íä’¯Ã˸ƒ~8$9ÜX¤¹Dc¬Vè¡™ûWÈpŸF{èÄÝ[ÑÛŒRÛ rÜ‘w×0ùÙàÔ ÃÏ’ÅxØùê–ôc…uÈòQm±ž#ÐtwjdÃ, îÝ³(ƒLvÉÓTzGÃßX…—tÕ c¾‰¥ås“W±ZOÌi}p—Šo?·ðx–¤´Âï{¤gí#§ú—|¼!À]«Äw†¤p…Ý›d »1Ë×NHÐK}Ô¨•aT}{’øòªzúd\n2ØD •ÁËW¬x®>ƒÓéª(C´™š\éßñˆð·vLGŽ÷:®¬Î^— „€‚zt8,f)s—Ó,¯zÎñävš¦qóÑRƒôyá­)÷ãÀÍã¿å}]?Tmܾ-èÅ ÚOÏOÚÍWs×Ђ*]l“û²L€ëâ}7C +û8S±ƒõŒWH§à§AÅ…{Κ\SÁ% ¬ÉÃ¥~~x£µòL„™ò¿È¤ð4Ò^"±ÊÜË2ç‚üqñù¨>ì9+\êä˜Òå݈ .)À«Àž¥Vj¬¤Z耕––þ 3ృΟ0»¨­«Õ©¢›ÛxÍD™*{=––ò Zì¡mÕHÞôQ¢u©A#ºe“Rîõ¶‡euÂ~Àö’›X%¯ðÚ¬ÒbfÚ*ˆK'«¥ÐcŽ¢¸$:¼*}˜ð´§Ï.¾ Šò¨&Æ)w¸¼G8¾aP·+-(CÓ|ý]"á ³c+[ H¯`¡eIÊúŸ‚â ÁÍÙṁÏ$¹©áLxlc17Ó-ÃëÁ£†÷•PY «#ÙÎ{0Jø·\"ÜÚ6„ +ƒÒκã=ÓˆšÐ¹áí‡Ìø2ž’VZc}î¾dé<ô¥8Öî´ÀÔ,e <‡TzYPK.EYÝG®º‹ ^°¤ @*ªã_yû¡Éâ0Ò¦v|ÚÑ͇Vû` ÐÔÐF©[D13Gˆ³vn +} µïG{H2”d¾é¼¸²ÉBî,É\Þ7¯Ñ|kq/+$ˆ-+¿árÃŽ +ÿ¯f#Ʀ`Aà–Óµ(0øì8w„„±CW®Öê5˜Ÿ-v¾'—?×ou¨Ë"{J°ÁrXù9yŸ'3Zl"²š/ÃuGØýCf <„^Ö9 sÞ²ð9ýx2†€EÁ¤iêŠí·‡³€¯ÏBL¢p;Ì9 ¥íÏ•kWú¡°ƒ×¸ÌÍûã*JÁ¦Ã´uÒׄÒüï8D«†1®Ÿ&û² adü±J'ñj£kÍ”×›w•µjÆ&ÑÏ\1‡Îªþñº‚ÎÅu|˾ÙÌ(ÇŸO»5þí>NIüÛº1– ’cb"4Øf 7™†'¼É³E=T9çð6Ü®lÏ:§l´t…&­š­9q5­Ëj‰Ì*O àÆ춇ÖIG#­ÿ¾n.=eƒlËTÍ_ÓóÊcQôFCY…•ÄK§±Ò^”=OF"ÜYÒ–è!ÙyM'üí}£Tç:P“û­  Ýj)N]îÎxhúô™óu"„-b7 +7ÈÞd4WmIh;êö×eU"²˜ÙŽÐsGÉ˜× +Íœò惊bÓbà@à +k©Z6µ¼Z‡3¨ƒlû¬-¿¿B¬üæV£©Ó×û6~Ï_c( ÏŽ1l+r*NüÅzûúûX!mW±¢é‚¸‡L“Š-Õø}:Â3×¾xÛña攎“ðè?Ü âáðà¼ü(ªdy­Å2ŸUýšÊ!üL-:‡·÷·NWòò [í¸c|«¬HcC`Óq‘Á& »çqÀáè‘Ô…—¼¾§ÿì9=w6 +‡Ã0%j¿ ÷ÿg·Âú½/ÖÊQõïâ%]4e4úp?s' 6@°pņH¢to+Óßr¬§Ý—­Yé ›ü + ~º˜ï¹h™å qÞRa¼ ‚ÑÏ,:}üAÐz=käÉYB> ŠÂ—ã×ßýë¢Dä¦X¨³ù¦V”@¿ç’ql…®¸£”Kùæ2©KÅíèÏ„ÓØ%wlz–¹Zš «:X¹,y‹'XÇÅŸ¾€¾óÖa“øø.'ð­mDþTq{/0P}tþ0>V[5•\¾l"3¹Ù"eOO 9qj:Óy!‡lÑÒ]AƒÝ—©!÷îâ¬õŽ°Qaž"dž[|ÑKÉÆŠ·'`Ë`dWý2/ÕˆûAÄìq¡s*Âàò"à™ÿ4w Ò’¶U¼Á»S™ eê&(Ê€EÛ¥Ø~ÑkÿZUç!Ÿk`dâç +Û·ál»a, % ¢hnª™« ’†ArlžaÛ_†ëÔ\1¡œ¡Á' h<_Çfjß”ŠÁ}µuù› NÊÄÏå—˲½ÉÐÝ{¼G™g† Ù•À·tvêk›( ?®Å§c£ä›¢fOF :òWw8¼à¦dçí´oN·ëVhù÷k”à˜³C‹9Š?»Ý è¡ÌtÿÔ¡d7‚ßÊŽL!ð!ËãdÛbP=ÊW²làãƒ!‹¼ +5°‡²ª&ÿ¤/¿§(Ò›ÔÔxºR:y,òxÏ=u”áyx½ãÒIÑ{LJ0é Ù¦1-9372úÞú +Ÿ«ÅÖ¡wy¶u¼Þ—xúÀcÎ_¼›ÊÁ<%+ÌÀð¿p×/f³Ìû«çÝÒÈ É­½UÞý3ZÙ‚e‹ ]bþë +}på ¶Nõœe2Ú÷®ž €ˆAØluüѺ¤í.wÞE ¾E“âýJVÄ­aÇ‘h£¯~å-Y|.¡¨îÄ 5 XbÍX•âŒt¯{w †o®VE¶f‰ !OWíÁÞO}ùÆÛŽwÝèóagg°ñ2@pÖè­¸@¡å7¿¢&=£Î®áK4å]7¢Ü‹>¯™ñû®€Ø—שI¸ Æ ÚË ÝÙµÔ­’NÌÀìüžž‚¸²ù^(‡Š¸>­˜E”ï52}n(á¬X•y-¦ÐkD˜ 2Š‚ø‹á g«³¿¨ÜjÝŸýgÒO[Lªs8çkùsZ¬”T>c½èƒß#£=Wsü`;ò’9P»Ë¾Úr3ú¡¨NjÄ¿©¤&wõ°Sš`š ûfÒ´ FBupbö:'Ž¹8ìÆoàU‘“¢ï±H<«³å³nýeWO»‰_…Øø¯ÚtU¿Æ{ßÑ] ÿîaÖXÇâ˜3j­–c'D¸=†d áÚK:¨]²h©×4‘žÇy<Œ½2 ¶OÈs'iµ vÛz .¼³[‹2£GúS¯‰NN¼ýáâç˜? K8¶"ãëÍ@9’tû®VÙÊ÷© +ªÌJZÅ­ê>qüÜ0ìƒÕ¨1,ÍA;A +g÷šHѱ6Æ‚QrìÀôœ¥Ú)­UF‹N+íVÈ—¼b­ßÝvMm±»¾2ú’*xbB( ßxO§ÙTÆŸvh»¤Ä¶mkèVê;ïoã +ð¢((‚lDhï.»Lx8Î÷)¤eÒ‚„ÎW\G’ÈJkÈr{à©¡ÎȲ¯ríÅògŸ=B%a²Ø«]çL–ɃzLØAg0-Í ²RÌ0ö¸Į罼pRXÃ>ž£à³3ÂX­€%F lÑP‡½ƒ\^Ž×DSc…ýqzUý¼“ÙŸó¨bË‹çsƒXQÔÂYA‡nùò PH?²ÇÂ/RpI>¹V«®&û‹øæùòÙlÀUú ì`ù[McaÆË´A{ƒ‰ÀLÆQ¨èª²6XJé(ö§šr"#÷(±ÅOU%tÏq™ÆXÕä Ú îº]Ë(5,¢îŸ¥›ª8‚”ƒnõs1MCò@ &WT³YÙÝ_ÒõUdônؼTn†9ñ‚U°¦ðím½q¼ˆø,&|©Bã0î]M\ÇpQ‹­¬ÎY ÞwÃç*2¯}ò¬ÁâÄ™Þ0çX2ÀDªûü™hÞa£”ÚCëëmAîØ߸?Í +:á{¡n51º—`ìKÏZîÔ +\­k=ë€@ÆRÔOCÀâÕ5nfcõPnÿ`‚ØëôEZ†ÌZGøÓDý–&/Ùnô¥Ö`Û¥Ñs+Ž4‹†êYßÓ¸”UÀÑ€˜@sP.ˆbPÐNcJ>ù~h爼¡ÅÍš—YI9ñ#o‚ÞY Ü,&¸T^y‡l.©¸öWP0E#¡TݼóËÜœEsT"K04£-ÎÃwbJ²ÀÅ9d›ü~Ž©>vZáƒ>ªíO¹çÑI奓ÚW™n,¼ðz«ºU‰!‰jÌë%àÍšÚXkiI%>œ‘döˆCu(d¸‚ʛ߽áeöà wö„èJœÝ^gHãà¹|ÁXì®þ ¡wsjÿ.ûø—3¹[u°MVtÄn³6=`ÞÔë{¿zl£¹Ûðt°9‹¯·ˆÕ OÁ„O½wE÷~Rr¹‹A/«(³XÇÊ ‡@¨w[ÕÄÎ?îZCü,÷ZÏ(¬A¯wÂ(LPßæÄ0È»NliV¶üêR\Z{¨þŒÙ#ù[¯äxÅ%Õœ)$ªâ* Gu3¤Iv+L ü2¯š…¡Ð™Uó ¿Ê0Þè-ÍõP+àŠ +'j-C°Ìès·ò$ÕSW`ÓÍ´'Ý"l0šg ðþw'Èž8ÇÖE‚ÝŸ1‘º¢“çåàJ®¿6¢Ì!ã£ó¾-xY?u!¦ÑmÅab/<@³ø¤-ªüòË9)nq^4¢ïýU!Ðòr‚*ö-×Í!ß#òÒOÌ5­›yÊd}–p¸vâ‡[¿š¬ïºÆz–ò*eKÕ—˜§ƒöè”FAÛúÇ!²ô+£ z„o}P:jz<6CÍ´?Ð%WùÄKÀ™ûLôJ¾]ÊfTe]*"­œbCD¸§p~¾­PQºi\Ö‡vÜ=êyÂ6ˆs • +¸ +'ZEœ„ çå¿×žŸû¯YĵÍfDB€/o´Hx~DýzÂ%æƒ)wUq†;‰êï´ynKs3tœ‚f¬eÃ2*"S×ü—gz=$ú5Ä°ð,XcˤÊÌ ´ÁS›Ló{g}üK|ÖWõg6iOD1 ðT¸¿úî×á•¿Üßn³@&¾ZÑ«>¤4{ä%ɶ”«áŒ¾tœE:@¤«È‡,À—NPß!y5bùŸžÀîqÑ4ƒŽš.} +'!â4šJÙLð·`€©$ìú·µ›í½—§",½§l”2Çn®6>dˆ{ëýN<Øpe Ñnß;§´ÒÏÿTF“5oÏ¥.³Ï&ýF ¡š8[IA1[“SCÜôig©Y^ôí°_GZ÷ÉÞñ¼øŦg*åU„‹ì°¹OzÊAw„¥}l/Ìš¿“¹G¿Áêžkÿ. KKÖÝŸ“ƒcÜò"YæÒÝþÔ¥ì\1Gl óíå÷i#Ùã*·°dÂg³ù¹ÖAcƒ°èÎ?Ö/£Ù¶®¦|ª!ÌžKn6XÏÊ×öÁUi)¹ –ßvƒpã§M×½Z¹v?Mn×+I;V`Ä=NÈ©EÜó¯4K+MÏ¿}B› ³ûkv‡Náï>Ç5&ÚæªtUR«ñT=¨O=hb0†C.`ÜëP(e$Ê^c}õè JÕ”o±3ePœÝ¾A}þÈM]gÜ#Œøñl?8Ú/ûÙG "ÔqD2п&N`ÍŽ¨™NôѼrjiŸÛ='÷£"+ÄjØO],€ûVýKå8¥ÈV”˜Ow)fÔ<ã³èÛŸ>?Ñ'½Þ‰kØm'·u³¡hp„Cì]ݳÁ +’:¥˜X0«$‘hë¶õVb ÒÒ…r«îÄ4C£|¥•ðO‡¨vÑnûñ.-nŸw —Ñ– +âa}Ì}ÇÖŸIf¡N¬C¤¡ñƒ +Úϳ6³}‹mÞ +endstream +endobj +508 0 obj << +/Type /FontDescriptor +/FontName /WARYBH+CMCSC10 +/Flags 4 +/FontBBox [14 -250 1077 750] +/Ascent 514 +/CapHeight 683 +/Descent 0 +/ItalicAngle 0 +/StemV 72 +/XHeight 431 +/CharSet (/A/B/C/D/E/G/I/L/M/O/P/R/S/U/a/b/c/d/e/f/five/four/g/h/hyphen/i/k/l/m/n/o/one/p/parenleft/quoteright/r/s/seven/six/t/three/two/u/v/w/y) +/FontFile 507 0 R +>> endobj +509 0 obj << +/Length1 935 +/Length2 2339 +/Length3 0 +/Length 3274 +>> +stream +%!PS-AdobeFont-1.1: CMEX10 1.00 +%%CreationDate: 1992 Jul 23 21:22:48 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMEX10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /QZSJAN+CMEX10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 110 /braceleftBig put +dup 26 /braceleftbigg put +dup 111 /bracerightBig put +dup 0 /parenleftbig put +dup 1 /parenrightbig put +dup 112 /radicalbig put +dup 88 /summationdisplay put +dup 80 /summationtext put +readonly def +/FontBBox{-24 -2960 1454 772}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª*Bg·N³ÀÓ½ ƒØ‘l¦ÊKq*Þ²Xú«šææwüsŠ¼|QÍFïq˜Õþæv`æšz¹XòšMyåp"÷ƒë»¶Ôôì5OÒÞË©”Y¤ÅðÆë¡P(DTçÜ!Á[v´Á›„67XFšlU‡…²&3!R˜q©ˆ4‡Ýw”’Ýσ~j‡¸+Ûño¼uú£ “þ\õ¸ÊƧ¾µÐ"våÿ¯*áÞo$1”Ð|¬Ã#ó`ˆ¡ݧ’ó2Y†ý°«ßÈŽK@瘉!ÕQìgëÊDÀVWðÜ‘>{0¥óá3{i‡þ¼Eù‰ÈÜmÀ­W~?ÐÕB ®(Ç4ñ0Á3´„"¾Ô†9¢·NLòçâJ™óGàô9LæN¬µIWn‰NRê¾Y[ÉdmŒ+«IfN•|=‰ÄÇcÕèßú¬G5‚ÊàyJ©i,dRhŠt§¦§­ ¸©x<#^Áê!V&³1‚qEÞ1[nÁ³Ø¶{3#÷aêôÂ#»!LLk-(PAÐh1ŸIƒvØïºYˆK£1Œ[ÉV„òàYÀѲ¤Y*óa¸¬F®nH¼ ˆŽD‡hƒPé­PtîHH'ä¬ÃŒ¼=³(ÝÕ³A¯šf(º8J—‹˜H:cüÄXÐã¼æýƒ~ °Û˜zkc·F8üŸ!¥ŒhGž…"VpלÝå¬ wõ©”Êp _ñùÆ>ýà#5ðJ ر*àfvÃbª£•Íï +Ià3YeòûA˜I—™ÎÌȪ]%RdxLÓ +>‚•ˆŽû +Ý׺ÄZîîÍÿzG¨ŽiØLžW&Á¬i£K_ èîNߟJÞ‡h $ØÕ·>ðN­E—|¨­sÔÝEÞf£¸%†L5X€Ý& È–Ñ«†’YtŽ˜öqN$&žÕó(4Fd:ùñÎgÛ/]>§~ç4Ò¾Ö#ùsæ„ ­,<&fÝMÑÁÃ/‚c…å_ ÉHãuK{HƒÝ«û€RV·Ô—ôÓÙ-ÇR?J-" sèmk¸Û<3C"†©8&Ž vÙâ§ø$âq¼iÇB·Â³^ «;]5“8ìåf(!êœ(vo3švã Ø)W•]¤gn§ÓlÙ¾:j©tÏl+r÷ŒA”Á¼Ò¨¨ÁЩ‡¾N?€KF•òXød“qu€h ‚ì¬Ç]¯ò)yHcƒ"Q—ëS}D9É9AWÌ*”œJ®Å¼%·O¹™ðOÊÛÉŠ_v}ÊéKby é'²/\S!ÀÄ>G÷9¬)4:ЖãW¯¤ˆwuЮèz ­~sr»Ý ~)FáVã7rn_ã²¾h¼f±˜¯<¥Êž ÑÓ#ÓxEÙ,®uaÈøõç)~fŸ®#GÇùñÍÍ`ÞšÛ¥uÂi ˆÅßs”ƒ%ÛÂåΈ)Õû ÄP4ˆöÄZ؉8 +A _gPsB1uUÿ±÷8íIÏúuÐT† +Å…Ûþ_=½ +—-Øèz7ÔIœ¯"þ ‚=sy·´$%‡&sÅ«Ž =ôa±‚ò3-… æ•:%‘¾qqÀßiéù±_¦Ö¸ÐÛ¸™¸¤ +> wŸœ·æßL¬ÇDKâ×{gö& +4²N%pî.¯óh‹‡ìó7‰ãMHSF`ÐYv9Î>±m.(²çd®Fn˜ oè 53MT +«<çÃST Iµ¼<ÀW&à¹cúI>ðgàÞ »À Ë +§ÁCÄA‰ÛkmSù:…d_ŠQ=]MxY5œpÛÊöQÀâ…«wu)«rWØ)-nÒ[$‹q¸¡tóšR;¯ø…~æMè¤Ü‡´V Z¯Æ—kS…’uŽàMì(Õ+Ð<û0îž¹­Ìí—Z7_UïÉ>Ö÷_èul¼q$UƒŸê(³÷h(2:Sù2Â;ïÍÌÊGáoÿµÄ~9Õšç³}uVãÖ-«Ù^Ÿ­ÀÇ%äP vUöXKb…|«%–4ñ&‹‡¶ª¯ aŸ_œ0Tï—Ãù¢wñ}GßÀLPžÒR3ø­=Vgy K'òøCEÄCݽ½HÛV îÂxñEÁv}›Â=soÇ\{¡ëÚ¾Ž"™×c>QœF@òµ(í ÄþYð:©Üûe&ˆl`°ZÈ+I«ülrà^™Ë–¸N®€ë”G ÜЗDòasðô5õ1ŠÓ£ÿ»ÚÚì¦É ?–D}|éç^ÅME>¨®B˜R™ÊÈ’ö÷ýãq§ `4°ØI"h±¡oˆ=Ëy†`]W·«Ûð”Ž1`ÑžÕ{±t»rÒ§Äà‚ –’¨ôtŸv ›« +¤zFí9)[?h|)b•gÉä3Œ½×.&ìæŸïBºj: X3;™àáÓG¯÷k„š(´ƒB,ûÖvç +endstream +endobj +510 0 obj << +/Type /FontDescriptor +/FontName /QZSJAN+CMEX10 +/Flags 4 +/FontBBox [-24 -2960 1454 772] +/Ascent 40 +/CapHeight 0 +/Descent -600 +/ItalicAngle 0 +/StemV 47 +/XHeight 431 +/CharSet (/braceleftBig/braceleftbigg/bracerightBig/parenleftbig/parenrightbig/radicalbig/summationdisplay/summationtext) +/FontFile 509 0 R +>> endobj +511 0 obj << +/Length1 1315 +/Length2 8350 +/Length3 0 +/Length 9665 +>> +stream +%!PS-AdobeFont-1.1: CMMI10 1.100 +%%CreationDate: 1996 Jul 23 07:53:57 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /SQUASS+CMMI10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 65 /A put +dup 68 /D put +dup 69 /E put +dup 71 /G put +dup 73 /I put +dup 77 /M put +dup 78 /N put +dup 80 /P put +dup 82 /R put +dup 83 /S put +dup 86 /V put +dup 87 /W put +dup 97 /a put +dup 98 /b put +dup 59 /comma put +dup 14 /delta put +dup 101 /e put +dup 62 /greater put +dup 105 /i put +dup 106 /j put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 111 /o put +dup 33 /omega put +dup 112 /p put +dup 58 /period put +dup 114 /r put +dup 26 /rho put +dup 115 /s put +dup 61 /slash put +dup 116 /t put +dup 18 /theta put +dup 118 /v put +dup 119 /w put +dup 120 /x put +dup 121 /y put +dup 122 /z put +readonly def +/FontBBox{-32 -250 1048 750}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª)s™§„̾…´™;.ëÞ;Ôr·ÏTeò…ji«–íK­/df5à¶A|Ç{S/…ØÇ )¡šSïcë\^ÈŸÆÂm‰çÙäp·+ïÚ#õßv¾¯Lé17¢íŠ©×Öýó~kÍàÙ ˜d#å– +]Ÿ»L•eVèßËúìGo£oÙ¥È\šõþÙÂÝÒkÜ ™9‹ŸMÕ™=ü 0)xfáÍ +1›kÙXž9JS:6ÔV ™ =!™X>¹¸KMîãÑ)9ã!™ ÒI‚}–HWIUöª¡c©l=G¥e°ÂZ¿m>nÁ‡ä°Q‚k°Ð2=”1p·•%R`ùý%ò$ô]ûûÞ÷ÿ‹¿ïc{!®W+8›?v(+ë)Ì0ÓˆÇ!Yah“çtA?HÞ @‹ÆmÎ?á|¹øM X9Õ€Ö¨ˆ#Ù2 +é:ùm— ,MZ+²¸Ç’\Ex9YÄn<á¢ðêÄ¿‹›2^FC[Þ`¼T×+ȬµÀ£D¬‡]ǸFF£$¸oØãB!>;A\äT hŽÙÁÒxìh½|5úù«:6Òü;åÏ–UÇ·í§6~åƒkŽ.ìT*{8î¾K¬`yÐ8¬³ÇÉ'—dT|-Q—k«©K©†myñ9 •ª9°ð1 |½ôA¸ÅfŸr ¯(Kõ*)Æ%_ʬñtPû¢`.rY?¼¿Ânrnä®ù{v2¼O_5;\gþÒ>§R¤¥{ïñ×4‰_ +: áØã9pEz–~ÿ„öØGu E¸Ì[Ùn窙ÝÉài9ヽ¤u#=X­&>¿¯Â~J~П°ƒUöêtå0°t1Cò¨qs-bØ5±ŸÒÇýð„Õ 4AšÆG˧÷OE1Ü»Ú"®ê?»»@~ +ÌR½Æ ¢”ÌO“ë‹öÔ>›¨XÕO8‘ŠÈ' IVÕ‘ðTnPü¯¦ÛÐ ‘#õìÔ«3³ÛL®3z‰ŽÙ›oH9@ÉuDøˆêðËë JÀsÐf*¨+ ­5èx/…Jöl ÀþñÍÑdc!¹=2~SØŒ è%ú•ªW½q’›±ý§ ˒¯¹p½ s¸ÝFcà]@{âF»,Ì–:0ü +ÍZ^EÙ ûY‰;üøFŒpÜ'™÷*_°†ù*C]ËÔñ“«Òq+1Ÿ†Ä^mÜtùvÌüÍéß`Ö#Ô½Dצïå·=Ø.,µž »`CWÏt¾ ë U<ªA(>„…ÝÑbÎxk©Fã´ ŽÔ2Vaáu¾Oû"-¨’Fé UÈ/èIJÜpKâZˆ¿Wñý`»—cŠpÞCݪÇ`Í`Nmú\«G +üp¥¼ÏÿV³¿UX«ÍYm?q ƒ·òìjæöLœ}ö+:òR–žþ'˜ÂëëÏ:\LÐz +”ÜçÅŠeYè_góÌ #gª½|­:Œ I× ß{š¤6ÊCÀŒ*}VqƒGŽ(²)ѧ1ä2 fF\XnÅ(ÜV«½–<ÙÛú˜¡ä±öæÈgr”IpžõüKÊà921Ö6ÕY úŠ­Öþ¨æê)ßùvXýèýöØmK3–ÛÇp*{©oa¾v…&6 Æ.<Ã}mÏ¡–íi£ oxR˜Ò,z×`J«¸Ž!DÄ=¢es\%ÞQÒu•ÃÖ©Lß«õAPóƒž[9†JZ܃7Œ± pTIEj%[¤?³ØÓ•þôµ­€ê•6AË&Pt-àÐó¥ƒç#,Šo¹þ<›Ð8ŠÖî|¢ëg&ñ"ÑHóO ж¨‹sÉ°E(\®A´ØD.%]¨d1>‚ˆúîõcÛ@šˆJ%K_ T¼îs51H«<Ô¦,É~øíd(ðÿ¼„×Å(K£×o²9ÎóÀí;4?„ ŸÐÃ3ÁGg®F$õôTdóE ÓºŸ}Ì#ÉÉïmÇã«Óm½-î/Ò\ñ³?uG¤dï¢:ó"ÇþÑ’H+‡‚T•Üf#Tqªå Z¹L$éô„?Ë3-}¡nºN“—²‚ª}õ ͘–mP±í8sL/P½k,>Väb—9ù +º} —H”sù` +kE +Y怮Yo¾ÄQHívF£6+«ýì^¤@6ô€¥®Þ“|h‰¹`ó¨ìcrMïíÁ¨QW¤c¿j?~`¨ÿœoM†wóXß“…Þz5 +iÿ|ïDÒáQ’·G°Âzõ€˜â*6ù,± dÒqË(2¬Î^ôýŒï¤“Àux{ ÙØ…jä:<–ñ|·­0GÏ݈°Ë(¡Â×ιâx,ëñZB\1Ÿ4œž+!É +¨®æèÓÓDÃ…›ô¯F60NÛ¿Öc)!Bæ´ÌþK m·'°b ‘½xYïÖžÏÁ³5¡Wáܹ“Uz&Ì«¸5*ÏfÐY'P¦‰OÄUu×ky{ÇsXDËÅs};™û¤ÅÛãרè©sl(œ<½µZy,k"×¼cIÌÒZÏE¿`óUý‡™Ì÷×Á³2ßQrÎýÇU*^Í[èÇ hkvcÄ‘uœ¨Š¿ º ÉT7ÝdÄ™[r!Ì 8±!t Ù5X«ÇÿоäÄs…Oø­F™¼ÊtÛ¤â¶ÒL8n¡£Dó$r{é«T$v¼¤«¬ª<(8‹¢Õ›XI»ô_¤qÀ½?M!^ÐÑêÝÅU|Äs¼°„¡Õ×vª$µþ ƒðlm$ë»8œØtNå•f À‹Àª†Gl6Ý,,ëi4Rìi¡À.ݘ@œjipTÓ„Ÿ¯øvšæk¡¶µ½ü|×~w–Œ¥²l«,oy­¼s m¥.vçà¡óßT};»±Qa.Ó^yÁ{ÔI@“"`ùÝk~W V6u¦£u®ñ„¡)Ÿ“‚ÆjÁqÆ9lqÙf™=X³¾é®Dp÷™Êâþ³º:‹ú¶’,Ò„ 3íøÞ·8 msP˜•:<¡ŽÿFM:ÀñÉäߣ"Ú”¼“øGlõP†‚È«*Ó ÊŒl:ö€ŸCU¿9^½Uz²Rw¼vʵLË"ÆF.4„ϳ~«ÕÍŹ%^ºæDØ‚™ Œ„+ÀâÂäÔ?dêæ)~³%¨éû1ü¸š¦â¥e³Xd!xUhR#²Îg%bµ÷+ú%€"¸óa\üÌE8ÄSà††,¨ˆ±4Ðj¹áœÄF×­ö—9$ëØôZ§Á,è½ÈQ$ˆÜ±•m‹“ +ÊE˜9_ÕéÿLǸÀL$ÄyK¿fºKû|âk2î4ÚÖŽ§X{´ÎÙye½ -7Ô¯íHïÌqäÜdíùÃ-¤1–½ò›ñéò$½eÔT´ëîç¡ôÒ¡¿¸öù—•<ŸìøTÞ‡Œ/0¾‘R0¤Öß½wÓ÷TÃ9oi\ÎD`^Ïæî€!ôV6rÂηù[ºŒ„—³Ä-ã°ýÄÓ‚›kóÞ¡W\‡£3à‹&*ú~žñ +u-€}~1亂û³¤¢VÄÈᇤ$hVú;’áˆëQyûI¦ä3W suaúÒОÙ×UÑ£ƒH%6*!€´ðFcˆ|øñÔÚ³êv„ê¤Ìµ™ }×ã}ç  ØÝúÿ p²ßá–+ØDë¡Ô)Äë®êçí• %½‡>Æ̤ðθÿÂ~¿oEn& Dsñ(Ÿ YÙÖ§³Ñ¢ðwä÷‰gÑ” ºë‹ay|”aûIú +_?_2Å«®£³U}ÆlÎüÚïÜfcyÓa\~€P½2„]ªÓeùÛSÛÏ-陶 ¬çô9¦ vÓ`Øü”XþS)°¸žg£çÚÏ*iåjò¦6VeaÔBV¢¯…®­ 0ì|ÍÀÂÎ^†DVNñÜéYœÖ¼A;uoÂOØ xïy¾µËHo3øí«Ã·‚Z 9ÐÊéð(3àóS\úõ,Ø[ÓB©ªgºá´Ã¶ýÃ0xGÜÓòÇjœÂQ(ç¤ñâsLÓôQApQ^½Ä@(B¨8«˜GeØ2'¦ƒ0Á³úÃTj¿êäxm:ß ]HT¢ fEŠÞ„¥ð=%¼ÿ_—^ˆí­6Ò¿»9À¹T¹KI®V(/žê‹Â©*ií˜Â8¥N,Š|‘üÓ¦ n¸À?ƒá©nj˱#€¡±uJ¼S77T•òæîTZÞlôªnãf&[Õr¢âzæûMÉ:oýÚ÷A,ëß +Ïk¤"Wü¡UD.²B=E˜ +#QzâÀmú"â2v';W˜§³u-Pmóøñµl,"&L©¢yøÔ²8¿>ãrOÉokà£SÞD¯aÀm“ƒ«gÏ…_³YGtå˜"+.÷ËAkÆBý22MòtE3¶pɶ»4J·À¬œ +ÿ\m'È›Ë^£íµ6z¢„q»ìá3U-/núa:·þLŠèFxrÙ?£t8H%¹çho…Òt—W:öšgF° ‚ÐÙq{ÖãŸâ—TÖ(.Qþé¥k³cQ¦ßÄÊWOÂÇ8(pÛsAÑvïú¡Î%Œñ?¹0ØÐë×Ì"4à³X%W,M¡ÙºAà]ˆ6ôC4ô2ÚBTã(w+É,ʶ`¨b·‘œ7»üÇ +À‰Ì‰WRa ´$Â1¤'Ukç;+ûˆ>³¢`ìêT–èØ…“¤¯ó#xG*ʈ¸Ë¨ò9Ⱦ‘Šw4nC-5óãþic*tâˆÏ"ø<.é¥Ìj9½”h)/o¯^Ö*æ˜?Ä8ÓßÒzG7›â›ªÈƒõj›èåIÞrÿ‰1Î_íÄCðoäghÉOΛ"áòC HDx–%: +¢KÙËžÁè‹7=Y2ÊkãÝáÎtÃø >² f¸üäÇD\`åÜv„.äæ#×`5 ÍõL‹¼×Z™É4ó¹4wçÕ| m™ã +ô)‡Î4UüœíR¡I%a1ïçÕžöÃ[‚-¤Ëíuªe|iéÌߌt'Ñ’nL3½5gìÎÍU¥EÇ?aög-Ä4+Lün³kŸfáçÁ +U"`HE¦ÄΩ JqÑ~!œêèÙœ{i u›pÙЧ?6Ç&Ro˜Â±ºššóh6Ø".‘ÑEм íÖœ,fûµ ByÊÞ¾èRung¨ZÇc•Áì‡ Ì"‘p;¼syüŠ*“á¬ÞÁn ~ÚA•ÆØy)±T—¼†ò†sjB?Efxc…¨F ðkœ³ënPÝŽkÝG ©É3>»R +ðÊhýÑhÂkF24—ô4Ì[OÍrGMÁ”ç– &ì'¿«°›Áè®eoìÇ$ËÝÃ#”n ÕqaF¼ê T@9}áòÆ”)—2àAe9VO}3‡½T 2Rœ9cµºDBU¦~ï29 wº@2Òä3ôñ2Y÷W¦Rðõá`Ðt‡\¾÷ÝœY4ø"ŧ-6g/ÀWo‚QæØ5”eål‹ºè]_I°vu¶0 À½¾ÔKuï³ÄsרþÛLKgÞ’ “Am¢IšY„Éó£ïÞI}#ʸ;ÖEöiG˜ïåsZ™O¬V×ÿçÄ(HÖü ++7Ÿ·Õ~P´}J~“»µ3 j Å7K|/$)Šzë…t »…±Àž}±•aå^ŒÇÓ!ÃôJ¸Æt<íXÊÇu¹½½Kí[°WÄ gçúVfSÛòó?rs'„-Þƒ'L[>eúýïáõ!:²÷/&kö~†<9¦3K*àuÒdóIêßbR‚ì^Ó :Õ°ßÐœÔâe¢b©ç]$-Z;Þ,@(Ù‡oÝ$ëº/Ÿ!ÂÍåŽ]i—äú3†ÛÂX  ‡Q|t†{×Á€ À +š³É9–Î%ð©”Ø9P0–@~ÍÒ +Reœ'‚¬”ig:¶@ó?})®Mq¡²BÇL5.=¸~ã —ƒ«ÒT[£á2É¡¦¹èÿg¾ƒnâÞ/¦/ªoD4.à(‹1ŽZÑoWá§P ·Á8ø7õlø-”f&€ 7² •U­/ÐfñÐwKF>š­È½Éüs,Ú¦ÓÓVÑ)ù§ùF-ù,ËÙðÏØ^L'Ù¬'­(ž°OG‹ÿf«¨Ž{Ñ„ž¨r_”`¬­UNu._M)}&LEŽÁû…±òwi/oxÑü Dé*/ÓXní5è_¯ õZÔgfwÂïâ*ZéªGû",„Ú8o2wHe¿Ž«:yý¤Ñx~ .yºL%£8T¨ðó‰º.3mÂQ{b]Iêk5guTÌZYLz?=(øƒ*-åšxÑq+ìÁÞ ªiažôxŒnÝm‚5¯Z6L%ôàæ7·†låV/óKnp?¯†›½H˜aبmgwšÍöï]|ì•w~…ã¢ÌÉPvkôIß5 +š®0ëk,kP6Mš Ói€Ç‰¦DÈ÷j9]$Ì«•Hß[wtÖÜΖ>k>}åæ]‡µë¬ºØð5Eîʶ”ò™Âb<²Ëz3M|uÇ÷ÿaØ—‡ så ë¤8¢Dcv´–2”I^g­ÄÂEˇexšÜ¦‡£yÖé›.Þ>Ñu¶k¦d£ÍÁ€~ûŽ}ÆŸ°®EçÞìC ËôÝÇÂœÊ +’¦Ç»NÛkœš*~TÜäš¡ëZ?f9øR7}ö#‹ªÑ°Ò‰IÜþ"äöF££V‡“J7#|Ù©lJÎ7Áé3I+ ;‘L<ˆKËa7U „ +É”B“³$)Í»ïB&:n¯>®eڄ‘‚x.ÕZ IJÏÈÙ4‘ ÈFAªxIMÒÃ6¸l"Ê!¿K˜Yýº››‹3е‚Øë?â,@P:¬„ýÖ+¬–!.vveì‚þþ¶‡;¦§Éô@zé¹ÂÔÛə󆠽µ*‹ð‘b ×–È¡KOÔ±m¤¨7DýH{¤à–‹' ¹ÑßÐL#¥lb]VÅKã—ÅøÛBÐ"WFmú¹rÀ`l0IM³”»±£SÍ°û» +zø×r‹rjÀš–pä ăîÎ-“(ôb½y5½ž{ÍÆ;´ñÄÅÒˆ¹Ñ(|zˆà!µ„–1uw“^+‰‹R¦¶i4™ˆˆOƬ†5¬P2`Ž„ó§V• +$ÛŒúd.ÃÏ&›ˆ‚ÒÄ£ÖsÅìâÑ(b66;pó)´ M©‚謎 U‘lõ“Z¯ùXšyìûzO‘ù;±#Î +á²@220'£°n3àd­˜ /Yy€–hêRëžZ#@ïÞ¥ýX=ž¦«¸USç·ÑAþ¸e/~Aê5®š|KÔ}ÇeYMºÆf¼_àøKDÓºŠd•*ÝÖ£éj.¥cqŽ<§,ô¸ð¤\Y?¾¾Ëã2Ý,ÚPæÂ(I$¥Ž\ûžÚ'¤¦†÷Ìã4\ÈÃ㟋`ÞLù¹¶ ÙýyÆG Ã+À/ó'œôXÍz–n¦Ý‹xó‘ˆTÈ_ë»Ó×ÄãnWCôE: Ñu)‚ߎNSñò­ÞP›<䈌±9Ó* ö’«ÚŒâügÂXYæζ–2äíªN5èVOÈóp3ù”ßBcÉPiq,ǧýˆ3oIogùüâ…q½sï–—W8»Ç<ÅžÈå`Õ+ëw¿ºå (D²ê(\AûJ7¢:=Á©þ6ÂhŽ¯ž#ü@ÙŪÿPµ›%.Khk f>ŽÍ?-‘/‚éÁ§V”ŽzrF<ðXíŸï}ßÁÕµóhr.Ðûæát—EÎnˆØE¦Z–)|* +.”eØÂrwù&¿~8ÖÝ×*œŒÇÚ>eÓ•¼ÄÎPÐ`ŧgz:Y†U´ xr¾p?Eµ÷iý€°tš Ò\„&UË>SqcuGU«Ží•xÇ2²*£hÆëV9oÍ€è³*±ZT¸Päãy¯ó~ÕPÖÛ5Ç­ˆÎ“‡²8ûª±Â +›·ÖC=jz¾°.ÕpSr¨òA¿U¡¾Pb“EMçwvYµc$¿ÉÞsá;}M·GO,ÀRÉfÜKµk†Ï.áZͲ] ¦G§zÊÂR%Ð=–ÞŒyŽä.LŒ¥·H6Ç´>6UbñÏjæðâ>Q¯l‰Þ_î¥qd6Ý»3à³ +}HЃÀ›Ï†æã KrøR¦¹„,h›‘÷¾çèigQœû¯-‘Üx!|+XìZ´‰yÏB¦.ƒâ8„íîðr^“hóÚ¡)ô”Á}Ìé€æň*á¤UcW[ÀYØö}Àóðï¯aÿb7°îöc£b ÷¼ ߈¦$qæ½rbÂD¿6‚¨ä$'¸8+x}jØ3kÚ71“ö94Ͻ=À†}|¿BòŒèQr4ù£f žj¶p¬sûXMü§ØMq[>õ»€T`û¡T<³žÑÙýÎ;ü‰ëàg“ðu†gˆûÛ1KÚQýjýOÖ‚ƒÕBWÆ]¼ÀáÈ;Ýر†ýQ§í+ý£Zæz³¿;>~ÁS‹•Ï'3¥ò3Ö‚ÇÎÖ0µø÷5X@ÙΖ‘–T“Á~AÝÞ¹Á·ÂõÈÞÁlô;ÐÄæSx§6-œªâTîYã>xùC«S,ÉJ&vÇ êìøâ´Ôe´ÇhÅÐX-W{)&¾v~J¡ZY½%bµï^×ÛP)aZ')zþ&ÎŽì‘°ù&ŽJÚ:yÇ—êä ™QÝð}ɵì'_Úåþ¬b¢'DDb+Œ1˜tP¸XzNårØh·C¾(ÿ‹5ÿè¼l˯9^‚>m„óåáù^©ño(ñŒ†Ç¨¸I-*9BC—¶L}OÒöÛvËÊÓà]MGI/Òo ñõ‡< ¶/ÇéÝðP3·ú©!™oöá@Â3ˆ]`ëåªÌ¡£»×%Qɦģ#²Ëúß_RYˆÌÙuÑú÷_&jÄœîϲóñáž© KøØ)¥œŠ5v¸ÚÆ[›)67ŒR¤Æøi’uÙ8*¦3ÙH˜ý®ÚÉöéþ js€”2ZBµue!‰ÈMóø‚<Þ¨íÛ±Jº%aœì†@-õNð˜^…Á!!KIJ“üûŽ‚7^‡¯|VÖT Ðà&‘OŠ•U†XŒ’QÜå{ 8§ºû¬Í'Yþ¸A3•œ¦š]~Îëφ9³SPy~¿ótö­K^É$®dkXuäÙ7b+ÉuØò¸ï?7>l< ÷©ñž–¢øƒ C:ÑgÛu§ÙpÆÂàÌ*UûìAóTˆµ¾ðeƒŽ-æÌyt,©É¢{Lt[«®:ë¶ ;™ ÷Dì•Ù¼W¸ðÀ/J|»¤BØ|æ»==óL íÇ¡ò@È>ù™rÕ/Ûð¦Wœõãc2_¸Z£rŽûsY ï:¿—œKÃÆ0Ç쎓—½Ø ÇxÖ´C2°‘ÆÐä†ç|Lu<»4\ˆgªdhQ“`âT.HgyçÅѤk´¿=€ …†_sÿh!ðߥÛ-øo'§5ZCÑVcADšË«b§©‚pzmg7ܺÎ\®~÷Ež,Çwa’ÍDçKÛùÀ…íæä?]r]Ë€1"_Ž«¹EMÃÔ‰ÏÇîïëW)¢;D(†…œÙ5Lbc5!L°V7j²j/üOôÇÃRÄ\~ùèÐÒfò/ïW°­°*ë}ÀVÆš;uJþ”*ë]t0—§Þ aÓ¦Áª“•^kûØ«Ê=7åüDr…oAü=À<`µˆ^0´TåAå€@‚,â¥ë°$º†ð '942®8Ñ;ðd…,ñ‚D“u–MIXC³ÍüÁÑÖ£±Â–i~o&'”ÚÝ•ã áig™ Ñ0êL¿À³()C4ÞÀ”B”D~º¡N ×` &”©fÞvŸÒ$ÕkÑ£—Cx(ç],?Gœ)ñk‰ÂIº¸¼…»ÌÖ$Å=X40WÇÏ‹9X¨Ã±ëq9ªœÙ¦T‰]GÚ¯‰"þ#ÜrVálý6r´Fû&Ö à§ÃµaÐwœa]K8¨Š„Fe¤^qõq€Uó«vÓû>—‹ ÓÀ"x¬Byñ•uzR2ö9 ‚ M@ï,ăS\×~o<½ŽKVÇ›üûÉýŠx& ³XGTdøèA@PHŒ´Œ:IÌmô>æIºåà 7Ú½vS¼Š÷Ÿ1¹&ð…Ÿ813³ÛûMÉ#EL Âœ€I¿ºq½åê[úLsmw_ßRŸo™xRÔ)Ž˜#w3PN*¨°©.·Ùô3ÅÖ@kÙÀ?M°'~Ô=Sz«³6öQ +endstream +endobj +512 0 obj << +/Type /FontDescriptor +/FontName /SQUASS+CMMI10 +/Flags 4 +/FontBBox [-32 -250 1048 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 72 +/XHeight 431 +/CharSet (/A/D/E/G/I/M/N/P/R/S/V/W/a/b/comma/delta/e/greater/i/j/l/m/n/o/omega/p/period/r/rho/s/slash/t/theta/v/w/x/y/z) +/FontFile 511 0 R +>> endobj +513 0 obj << +/Length1 777 +/Length2 1473 +/Length3 0 +/Length 2250 +>> +stream +%!PS-AdobeFont-1.1: CMMI6 1.100 +%%CreationDate: 1996 Jul 23 07:53:52 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI6) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /OFGSEC+CMMI6 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 67 /C put +dup 14 /delta put +dup 105 /i put +readonly def +/FontBBox{11 -250 1241 750}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª)s™§„̾…´™;.ëÞ;Ôr·ÏTeò…ji«–íK­/df5à¶A|Ç{S/…ØÇ )¡šSïcë\^ÈŸÆÂm‰çÙäp·+ïÚ#õßv¾¯Lé17¢íŠ©×Öýó~kÍàÙ ˜d#å– +]Ÿ»L•eVèßËúìGo£oÙ¥È\šõþÙÂÝÒkÜ ™9‹ŸMÖ¨ð[G¯•ï(©ÅaÛܘÄ|õRPé6n¶ý=: ªbãÕÙ9s2m4{~ÜC‘ÉßD…¸ü˜Ô%Åx’Ýð4,¡C v•ƒjÖû-ÄÁ?x”vä„ynhQ¯`¦?°ÞfÕ\ñ +Ö[“BËhnVGXÉadÿ§±èÇ&óÇ»D»Òƒš¤gWGßaá0¥^)|¥ð*?ùZòõHqr@w©8~'‡š–I­_o3P¬¢f4½Î!ìÐãYåê^afRoëà 0 Ÿ½Á¼/›bïîăEª˜øЪT·¤€çBfQ†\ŽDNÛyŒ~ +öå§íˆeaÕ‰‹R†a}8ÒÎÉU‰Z ySráºq'tû©±5Òàã\ÿ~…¹å;ª (Ï?¯^ËAK®Þ”fñ¸êöÇ:*mÈVoö2˜ø¬õ)õA]«­³foþLÓ˜t\7¸g3&Ü5é#eªŒ5qeÿ];¨unwï¨E«ÿâ9È,}éïî#WºD‹=«Ö^ä'Ìžß›]J›q],Tˆm–« þ|Í>=V¾ÈDÕZ*Z±†ˆ4×£Ù†§âDó˜‚%Ý6öV½6ðá>Îñ" Ó¡[¼%Rëq2t5—·h]òQS2TšyIA@»Ò©cÖ'é÷ |œþ3Ý1ÎOd~ +ÉZTò³_Ãhï]ßá“Åâŵ÷¾ù +à^×µGºS76×ã1Ñz'ˆã²C½UHÕè g¡ G(µ¿ ô‚?â’W ûf±%™[*&¿TÀ”è&¿€õ":|6éóÊAæ $< UßD‰Ô5 >Ó +endstream +endobj +514 0 obj << +/Type /FontDescriptor +/FontName /OFGSEC+CMMI6 +/Flags 4 +/FontBBox [11 -250 1241 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 85 +/XHeight 431 +/CharSet (/C/delta/i) +/FontFile 513 0 R +>> endobj +515 0 obj << +/Length1 803 +/Length2 1857 +/Length3 0 +/Length 2660 +>> +stream +%!PS-AdobeFont-1.1: CMMI7 1.100 +%%CreationDate: 1996 Jul 23 07:53:53 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI7) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CFAIUE+CMMI7 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 84 /T put +dup 101 /e put +dup 108 /l put +dup 110 /n put +dup 118 /v put +readonly def +/FontBBox{0 -250 1171 750}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª)s™§„̾…´™;.ëÞ;Ôr·ÏTeò…ji«–íK­/df5à¶A|Ç{S/…ØÇ )¡šSïcë\^ÈŸÆÂm‰çÙäp·+ïÚ#õßv¾¯Lé17¢íŠ©×Öýó~kÍàÙ ˜d#å– +]Ÿ»L•eVèßËúìGo£oÙ¥È\šõþÙÂÝÒkÜ ™9‹ŸM×v9ß2¤Ö#:œ¯i±QßÓ?À–.¬n>¿¸­%j”zGm >Nj›S]Éñ¾Ñ)Å7uÕÖ‡‡¥Œ“ŸÕÚU±•¹QhÈ4)½-‡‚×p#êz£™É{8YãаGP¸9 ññ¼)Ü"¼­PìÆ£Æ3ГzYèYåZùõgp_P÷C߬CÄçÜ”DÎþC'šý<|”(‰£Ròÿ€l/ø³ëIÕxªXÏüMYz©”í„»è²ntÔŸlõAv·)|Ú*iQ€P3|ºTxë˜LÝ" ®ÙʃÃ?¼ÈAwõ·pŸÆÒ‹:rï÷)ˆÁ6,ç›Nœ{?åˆé‚J¼oÑA剳‘Js¤(0T9†$ø“Õ¶Ã'§î'0ÞÞj—°œ%&Æ4öLŸ„wÍQcK¦HüpöYÉ ÀBÀÖ¶ŒÑß6Ö$ób¸ZXÖZŽmýX>ù§šB# µ9Žëxôµ¨šÒ¥à6IUJ½eG#˜ÿ݆>@P1o(ýß‹UøÖc˜Cо¤"‰ø[ØD‰´.ÇÅ)Ó>çè;@Ly›ŽŒˆ—‡ÍÅÍ—¿ˆ`50/¬—+Rª1›¯&e7ØH¿ê?ž¡Û6Ÿy÷@Vxžó™!+Ô ãÈSkä,ŒÆ×ýÎM8Ú±kp/ ñh(”Ç!:ÿÔŸÃH'5˜…²II,LIlí9°®ª#ozð)”‹ç®bÿúz“¼¡¡&õÚ2eöŠpDQ/‹T‘UÝ^ riFÅQdþ‹'@8¾„—¸ÑNL5‰`ññëNC§‡ø®Amÿ·îô3ÂIÒQûþ™AJ¼Ùqla_YÐ&¢ÆíP„èmj‹Naz!vœ¥×4à°÷%.™ª™Ý§„Çèã\Ö–ŒÝb`Û+#·ð`‹\ܠḄ¦FÒr=„Z +¬ŠšLç2-·Ãàêq; ]˜Æ¼®±n²l›²•,ÅLt4‹žœä–-`_ÛM¾ùÁ–yç檭õÁ +RBéÙŠ€1äjùý¼•GO._í=] Viæ°šlê@¦øÒå%fÀé½…YB1ëq4MèÅkºÛ—¥í$_’ÔêN>÷à‚B0¢}á\äSZh«–?sÈ€¯‚O“ËwJªXmQ¦6ž½²8›XN3A?¶Œ¾Â(Y}ND§$R{óÕ¿‚&è¦ ÝÕ\ËÔìëñ€šù\á‘z½Þº¿ˆmå—±*¶P äk«ð¯-‡ì£°‹›è´BÀF‘ *Íñ♹8ÊcýšlmÎþot‘÷g³J‚(OƒóÑlj^– Øðü~^&¹Y´üç0ìÜTI\žÍ1¬'6ÆØ“Bcx˜3|'ÅÞ]PxªTi\ú[¼`¼ßýß»,·Ï}Ìy*•ãÚ1PAÄ@H³1}c >­¾¦Iä|N¶_ŸDÅåkغãš^ï©~+($ÑïÙ65)øœ¾qAŒahˆÒJƒÒ¾ùU“¸Ð(Á¬qísš3F•ªjÃékXµìÖõ[;Õ8vâ;;ñ¨$=Nž™Ynú… \XÖ=ˆ(iv/…Á·Qg¦“¼_,\ðüç-÷]C 3­ÓˆG;¨öV-¾ˆòÑÚî|yn^ç4ÆÒÏ@Édx¬¬]Ö*Ú~Ð.|8îÿùÌD?,©ÕÀõ㋽ö»5¾©ØçÁÑ`aøû” +endstream +endobj +516 0 obj << +/Type /FontDescriptor +/FontName /CFAIUE+CMMI7 +/Flags 4 +/FontBBox [0 -250 1171 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 81 +/XHeight 431 +/CharSet (/T/e/l/n/v) +/FontFile 515 0 R +>> endobj +517 0 obj << +/Length1 994 +/Length2 4891 +/Length3 0 +/Length 5885 +>> +stream +%!PS-AdobeFont-1.1: CMMI8 1.100 +%%CreationDate: 1996 Jul 23 07:53:54 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI8) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /VCFHMD+CMMI8 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 65 /A put +dup 67 /C put +dup 69 /E put +dup 72 /H put +dup 76 /L put +dup 79 /O put +dup 80 /P put +dup 82 /R put +dup 83 /S put +dup 84 /T put +dup 14 /delta put +dup 105 /i put +dup 106 /j put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 114 /r put +dup 115 /s put +readonly def +/FontBBox{-24 -250 1110 750}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª)s™§„̾…´™;.ëÞ;Ôr·ÏTeò…ji«–íK­/df5à¶A|Ç{S/…ØÇ )¡šSïcë\^ÈŸÆÂm‰çÙäp·+ïÚ#õßv¾¯Lé17¢íŠ©×Öýó~kÍàÙ ˜d#å– +]Ÿ»L•eVèßËúìGo£oÙ¥È\šõþÙÂÝÒkÜ ™9‹ŸMÖ¨ð[G¯•ï(©ÅaÛܘÄ|õRPé6n¶ý=: ªbãÕÙ9s2m4{~ÜC‘ÉßD…¸ü˜Ô%Åx’Ý÷Sd,Õ&©jÎÚA x"±ÐŸ—”æmѬ,+;ÆþÅboB|Õ®œTÇ÷bÃoI³Âåæ*ûVÜî‡DZ©BÁJæÑþ©ÏŸª2a{YŒå‡ï0Qâ(÷/e@­™§AòGÆ€挄éÑп™ª]w}ˆ§ÓÎÒêgô®a輕çÚ8.‚ݲ° ÝcS,tã¾^ÅU ¼»j³‚†×q.’o†–ƒr¸!N›]@Ájß +ýGÄ“75uÆÊ‘ämˆÞ$æ‚ÞÄKWêŠøNWÔVF2PØ,KPË» 6™2aƒóÔbw;S³ÉæÛBÖ³ö{‚ Õu&D“C½ùúÏhN¾ã›e^±½L2Ib^ÇžY6þ2Ùò"CSò¤l5Xï!ok²£º÷R¾ì6ÄD UjïìôTº|»§S{ËëÂG3:‰‰6A…|Ùõžº °£ÙºJ 3•3kLÚK¦EnMpúÙ½«·òq¼lHÙßZo®xV ވ˘U§>ŽU©Ïó^îo°\WáóŽbY<&~…~S'_ZÁþ `¤žgקZW(U7ÛTg°4{{Ór§»ˆ ÷çsÄ^=ç²ò£Pé0ëœê¨Ð@õ._ßÌ^×–c]ÀDÉd0“š‹«ƒXžä,¡a÷<øä5Âݦ°u0ÅoHdêxÇwÄâÂôE}…g»í£/ú÷ è(Š ™ã¼:.‚ÙÈ€€Vj™{E§~$>>o !4;_Àú¸Hd¨[+öªhÜ)DÒn…çï«ï¨Ïý“ÀâH:B§øhV¿aK›õ’ 1ñºéxg LÔ”}w“¡ÑÂå“Zõ¿êŠ“Ú»›ÌµFê1GR !0n@0›nWJìTîwèïÅʳÅ'B-âÜM;xøùðëZ¤ŠO½ åYXÀÊ%55ðÖ’›qŽÂzÈ#ŽÝ!4=ÄôÏpËãÈ•4S¾Ý€„Õ2£öú2º/Ò‹jÙœÎÏÚftÁñ<ǨQ–ס»µÁÐ 6vû»»y²ø¬´˜eÑ8죵…CíJUÌx± ©ÏÕÍâ[‹Ĥ"\oM•I‘[KKŸ!t@WdT7’(Ä?Ÿù+¿¿O'³•É}«Ä“¢€"}Sí"ƒF€Åšsˆ³6ndïâaT4M!¿Ÿ…RVîÔeDg=ã}¢¦2´¬òžw;,§ŽÃEC^&?­ž~Î܉NGÝFï‹íøš–ù²Ge`&¶D(®ƒ¬N:=|•$ZÃäÀR1­n—¿†²ÈPÀÌ»À= °?¼¬_ÌxÙGoÒº¹à‡¯ VìmZC*X0…1>}Ãê\g`lИÜÍ6Ë`Ø]ð\;¨ +NÝ/ã˜$pjZVÆŠ^áØY>¨‹º>¥ü†—Ž,Û.'aòš0:_…ÁÃ8z瘱åβyr u¸Ñê¥t^žñ +›cb+¯Ð å1%b>а€§“h“-X?”®}°ú¦†ÃÿÌsk‘=p³n¼°Hãât(êóz.»éö Ç¥há4®í’Ž7r߇í’€—É=‹±=B;¥-½ ànsGË\7”1ß÷Ä\L Õ“«› µAÞ¸¡zŒo%ÉílÏJ³W@!ÊŸý;ø• À4r¨àM22|Ø`%*Ù:c˜¤'¾ ùËNùö¶f;UÏoÛkÛÌJ[ Š]-ñ‰º[ªLÉÃlΔûŠÏA:x» ÝEÃ1žè'BèÉ–ˆô`@Ýœ¿ +ëóqÑk3A"l=ñ^üþ§yןë}AŠdt´úÛÎù6j%¼Kƒü¤`‰t"Oâ¾k$ëc’I˜fU7;(G‘ €“F©×RòD@$t)|Le{U)ŠÙé½qŒÖGp‡V#Ä}ú¸—¿ïf2óÙ Þþ×m1Ó“¢ÑÓÆõ"‘qSU[(BæúÓl./µ}ôl'/Pþð(œ¨g8^`µ!¹æÁ™ˆ”´¥íWb´³>¹î“%$W£¶Ñ‹·AhW2ytƒ½ÈßÙjªº¨[Îkøµ¶B4ÖÍg¯ã¢ó•ÍwL¬y‡.Š‚I¡KlgÛ &ФÂÿ„bïˆõ›J Un±&žÏ}$ ’M@ÃìXlŒD²sk›†f×B›™> œ$L:B£±y\Æu‹¶7œ²”’] lThpÌš0G1ë‚T>_“æ<©S’5ÅÅŠ ¶b*¯ÌuIÛÈÆÈÉëVWÉ—‹U¯=A=×<ú¬IcÌðU_1Új{Ÿ”Ç0-z„ i‚&¢Ën;ùÙù:öƒûèRÀßEÓŸ;yÞ°Xº Û©h¹(šðh•&ƯÞW^ª[°`éÑèË¿ßq¢u·H[ÖXôµÓ?Æ硺¢¸Ò‰ µÄ&ª¤ëï;VqÍxÛ‰ ¥Q÷ +ªÇoç -.¤÷Å8iŒÇ5Ž~°{‹­øÝôäÜŸ½àãÂÝ“S›§p½ôói5ni*nêç@Õ*™g3ø¡ÂÒ(S`¨¬Ä"Ömÿ–|H»¦J ɽ­»Væ¯%ïébZžjA ²xM§äë—ËD¤LðâLaR(`,06ûÇƆôÉ·W‹Ç_ñUo¾ÅøJlÀüó/ÞGÉT6? ©©ù‡²xdR`qÚ ´x]…͵êHƒ¶(Ä §Q»@¼$LT•ãg9±åx+1û͵Æìlò:õÄÙ™ÞT¸XIGü;ìp 6)m¯n’¨äÉ·b¬D«úÔ)éú|ÕoìÛ +=פQ‡`°ŽZ™¥·¹k ²Þ«}ù^4}dç‘O.+1ÀoÍãð2’ô!WÒR…ÉÅt[¦ŸºÄ¢(bvÞ!®‹r{V¿.Åqa'Á¯åºŒŸxL +dÅi).[Võ;‘'c1:{å¾6@Ä]PZ×,Vciß6•å]´«(ÏfÚ9îÁq¶ÀŽÚ™¦,oÒ²ç‡ °BJ« exéù°@²©ãèþ¹èÿË©#Gïr ú¤èÑk¢œP8Lg/õðÓ·!¸<Š]ÛÕ"Êbò®X_ <ÎÈu°7÷‡÷²’ØœëÍ߇\Ál.ƒ&÷D“ÃÐ/uGîûŽN³,´ã(E¢ÞzR9Z>ÂÓ}ïÔƒqbäW„çÉŸ"ÏŸ@†0Þê‹Æy-γ¡#ô3j?¯$Ùùî<Çqôÿ¨•œoŠPj.9älMü¼ŠL‚Çq¤³¤åŠ6;Û&?±E´D)‰Û! çÑ]¹Mliå«£¼çÁ‹dgYJ +‚£}Ö=¢ÀlºÝ÷ ì¼æ}ùñ÷”á?ȃʗ¥‘hfÞrüæàÓɽXüDcÊ¡“ŒÈfEØÚŒÆw±moh)füpD†!hÝÁ‡ü¸DÒìâë÷¤‘PLµ&zY¸¾˜[ö9XõGËÞ FÝ ozµ¶ŸvƒäÏ.²ïW~j>Y´:6aéts½ØNrü»oÀ÷h8H`’2à›‹s~ƒ)Š×Óƒ½yooí2>¡Ò>†ÂYQðµóœW–u>;öÿÀ-Ùœ<ä,ïE3rÅÚý/gº.Š¼§ÖÃ#RÏ/ÃÆÅÀffÁ1㸺|zMæT!øDÔz—Ùü/x‡*úà)²;bkZkµá±ÒŽ1økLQŸ\œ“ ý°5µìÝ’ÃÉå/X¹Ð»WÒõ–ÝíbŒ~îE‚Ê.Câ6äµòcWS‰‚ñ©|Lµߦž "èãæ¢cž,¤/Tá2ɺSÙzóì¼=Œþ~ÌžgÑ+f)9A’XŠäÕ(3×™FY²9Óê[€'ÖvÍÀӒÄ„ÁÇ7k’5™z>›-ã¶ÕGh=UE¯Q#Ǹ“LñΞ÷–Þ< 9¸c@<Þ´‡mdkF²t¼TÐTá iŠ­w¤Xó-4á^;qK¹L}ºèï®IB¶¹÷R†Ä& HÔxç1ÙÐNwö ÈîÏò¨þv̸³¡§ËH>úi,œÐÕN~I’G£Å-PC½D•¦‹ +endstream +endobj +518 0 obj << +/Type /FontDescriptor +/FontName /VCFHMD+CMMI8 +/Flags 4 +/FontBBox [-24 -250 1110 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 78 +/XHeight 431 +/CharSet (/A/C/E/H/L/O/P/R/S/T/delta/i/j/l/m/n/r/s) +/FontFile 517 0 R +>> endobj +519 0 obj << +/Length1 2138 +/Length2 15267 +/Length3 0 +/Length 17405 +>> +stream +%!PS-AdobeFont-1.1: CMR10 1.00B +%%CreationDate: 1992 Feb 19 19:54:52 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /KZBLKD+CMR10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 65 /A put +dup 66 /B put +dup 67 /C put +dup 68 /D put +dup 69 /E put +dup 70 /F put +dup 71 /G put +dup 72 /H put +dup 73 /I put +dup 74 /J put +dup 75 /K put +dup 76 /L put +dup 77 /M put +dup 78 /N put +dup 79 /O put +dup 80 /P put +dup 82 /R put +dup 83 /S put +dup 84 /T put +dup 85 /U put +dup 86 /V put +dup 87 /W put +dup 88 /X put +dup 89 /Y put +dup 97 /a put +dup 98 /b put +dup 91 /bracketleft put +dup 93 /bracketright put +dup 99 /c put +dup 20 /caron put +dup 58 /colon put +dup 44 /comma put +dup 100 /d put +dup 127 /dieresis put +dup 101 /e put +dup 56 /eight put +dup 124 /emdash put +dup 123 /endash put +dup 61 /equal put +dup 33 /exclam put +dup 102 /f put +dup 11 /ff put +dup 14 /ffi put +dup 12 /fi put +dup 53 /five put +dup 13 /fl put +dup 52 /four put +dup 103 /g put +dup 104 /h put +dup 45 /hyphen put +dup 105 /i put +dup 106 /j put +dup 107 /k put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 57 /nine put +dup 111 /o put +dup 49 /one put +dup 112 /p put +dup 40 /parenleft put +dup 41 /parenright put +dup 46 /period put +dup 43 /plus put +dup 113 /q put +dup 92 /quotedblleft put +dup 34 /quotedblright put +dup 96 /quoteleft put +dup 39 /quoteright put +dup 114 /r put +dup 115 /s put +dup 59 /semicolon put +dup 55 /seven put +dup 54 /six put +dup 47 /slash put +dup 116 /t put +dup 51 /three put +dup 126 /tilde put +dup 50 /two put +dup 117 /u put +dup 118 /v put +dup 119 /w put +dup 120 /x put +dup 121 /y put +dup 122 /z put +dup 48 /zero put +readonly def +/FontBBox{-251 -250 1009 969}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª*Bg·N³ÀÓ½ ƒØ‘l¦ÊKq*Þ²Xú«šææwüsŠ¼|QÍFïq˜Õþæv`æšz¹XòšMyåp"÷ƒë»¶Ôôì5OÒÞË©”Y¤ÅðÆë¡P(DTçÜ!Á[v´Á›„67XFšlU‡…²&3!R˜q©ˆ4‡Ýw”’Ýσ~j‡¸+Ûño¼uú£ “þ\÷c¼3Râ*Rç?쨤‡±ÿÄȯ@› gSr æÚRÊIƒž†¯zE_ÑðÎEˆMvï,¹¼X!ý%6]Þ¦ä_3+_h¤JØ¥0ð’£o¬'ùzþê –ø9¢¼K“$à€ï|“t¡V\)Z! ¹j#ZÅš›Ðz1ôœUA~ +"p?”ÿ{u@š]A}¦s +iãújB)ü~Ob ÄÆ°Ê{z;þ¨Oí9ÌûmT[²¼Äž^—d«”UlÔð$ïW›h¶Ü:¯„ ?Æ‚(r6Ž;BtÝÊ6¯cFÁCÇrÌ$/;!,K×q¡§Lš”í“¥ûeWôàuG¯× ˜ì£¸®h˜7–åñIQß[u2¢0ý£µuZ8µç—*«Á# ™üøq¸Ûô•Pºêœñ¹|¿ÇÌ–IŽÌ“‹¶pe}é#¦YÛ‡W{ +Hs(çãùÃ}ˆ²„CE à¼îêäŒÍcˆóü;ïØÙÄ[e/SmV&±ÿ +i×2Ç¡ƒmc\0ÀkíC'sp)åºX0¹èŠ@$Ã2jÒóOGµG9´ˆ%­f™÷ÑêLJìD@¿mª™Þý2b5–\cdy!‚‹òiìÈz+Œ­lx¶åa°—¾+ÇÊ2´S@uöIéYÑö5F>qgžROEowK*øþóØÆ;/‹™þsºD³Ï¦G£Ç¡Íx=>´JÎå u›jLDfâØ÷džk­åß4ÒÆü‚ÉëÔØ.ä +vî¬Ë|Î1wªm·à% Q–iw½Œý½ôÐXDN}}‘xê™|¾E.gK{£Í ôTü¦ š >kµ&ÒÕµ2áÒ ±^S¼¸ãàg³ÒÝ,¹°m1"§7CSÔ-éƶ’kýDßÑDëíÿ K›Ò-syRbþêþ1ȧ!ÂÔj  h©— ñêO¡Vk–â!†JE¢JÚìcöŸÑƒvÓ˜DI¡ù˜Ã¨þ6ÐÕ¤–%;¶º>fÿA/j2C?ø½)hלä':ÐàÍÚQS¿ø¤j"Dù9JIÓ9÷cõ§A<)3k!Ì°#pZõ‰°x7cTþ6«]tN7‘‰ˆË[Ä„T‹ë ç(ŽæWê Ŭèèø$»a¤ 8«|G¸s‘aw’‹%e©;'¥sÀ]6íØò|²Ç“7©¹!µib€¥_,¶{d)>®¥¢CõoÐw<£]÷=(d<%! Î%ózP•Ö圯ÙÑÛ ~­ELFMöÿ]Ô#9yzå®Fp„UÀ9nèÆ6P²ýn&([ƒ,þn§é–e¢$É<lí&&9?³œÿ1ÒÞó{¹¸ƒ3OQêC3/áãü‘†LŠêy§&ù$¯ØO/Bûy_ÄÏüƒ\¹ã)GªK¸À\biß1麎!|Ûú×ÄÔ€ëÁë9`)ÍæÂ'£g­rƒK©U9Óš8ê £Ï#÷’Ï1[ª£‹¼¶ß¨ D“P%ó<6–ÚÖ ­õ„ÇË)å#êKÿÎó @"»¾ ©H>èêÀ}Xbg* f‘t‚½ ua¢cÀÀò@fûæ Qó»ògQAóûDWÌ*”¤‘ê +²¦ÏT »ˆ‡¶Þq^ÛAë¹Ð]JFrõ49{•)ï‡C¾ˆ»¡ à¤bY/*§¶8â œŠ:‚yw«X«÷R[á]¶lèé¸WU sµ…ß?§ R1ÄGÅrNs ú5íW#oXÊŽïZmÓ3·Ž‘ä×.ûý@¥¢&› ýŸ|48ÛXùKP~¹02ù™åñ]Ÿ]Œ°1»¿¼¨¡ZazÎÝç ÙÂÙî!Ÿ±zÙ´¿WzF™F‰Ñ¼ji…ÿ_ZgÖ™Âý(Ùå¼­TSîÅh({׸‡'&Œ҈´ÞÒ$k„5w4P¶åvRÏ.'ý°ÿûá,¡:Ïd4®ôµžÿ> ±è}5[U¬c1gZƒ£VÀwêæò÷ÑÝí0 ¤80¸O +jìV-0#'lYMYßo#{€µNºäˆ +ó8•k>;¸¼w‹àö}„“œ(x´>ªE¿âWò,(ÂÁHÿH„=+RbaHãʧE'¹òFÁ{Þ!Æçê´k¶ÙèIÍ2Ľž@Zÿã:¢®l%ê&¼#Ö‰†c“f¹œ‡5™ë·mqbªfzÞITбá€'úÂFŒ²þ¢VŽ#ÛÂ鶡¿!š‰ãç((²x\‹&7óh©>«EŸ€Pd5¾#¨S––ž*ÄàÖä°‹êÍIï‰BÁ¹hCDBC”³6õeÑb/Ëx;¼¢õJ(M ¤ávId¤­©îv‰°š0_È$Ÿ öc"àU·ùú‡9KÿE!ÈS~Ž³ü¤:N$Y=e5k–ÎœUÞÕhöÆ¢W`¿6#“Ÿ€"aTÈ8=a4±Elê62†"Aw>ÍTO2hH(ÿ1ÃÓžåý(·è4¬k§O!èÑšù¾]rhŸÛ†`Î\@ˆ”µÄSüMJ'Nl§ + µ’©oÖ—|Žƒ%mvƒÎäªß˜¤à]Ç;Ètº•ÖŶwTÔÕÍæbÀÚÕbè<ôN6ý@ (îDýTF;¨’_7Ò;k)8é> HtÿLÕIá…¸‹—À G\vàÛ`™±yrˆ Öv“Ž‰W„Öå$J«¿ ZÁj%Ñý-¦«è–-À‹å<0:¼xî,Q´»\ö"Oc+žgwpâw­OÕ#~‚ˆŸ:þ> Q99«ÁA£ÞªÁÛŠdƒþ¿ #Üt¼Ôe/MòrÛÍuŸÜ‚ÚÊû¶¿0ºßÃÕgÕ6œtô?d2W¹ê¬ÌO¶¨ï‚p­[)„ ˆz}- ÔC*EñBFaÂfê]Øâø(h$ É°µH°†å%U1X®¾Êà‚š^Q’“Ùm¹¢K¨ŽQú(6½j^RÄ¿É­V$a5é\˜úÞ3çM¼úº‡–pÞX!µW¥Ýœ“¢E”ªÀk,»1‹ì}wJ¸Õ l$µéñJ4ãï#u“ØaÁ8'ÍsheNö@â@»#¾l´ma¬ qËýEÞ0ë<²”½—é-|Nx«E#Y¶A…oó¿½ÁòNô¤©Ùp¶Ï[_)¤g®3"g=¤rN’ЄìºåæÒ øð“Ù>ú2ÆDñ §„ÈRÇ´ªv‘Ìõ' hslª™F.¦/5•†YL¡§˜ô´½®oÊF+ÿß=æ7u¶¡ÝI<ÚÙ ZÔ¨ÿëçuV &ûïóûÍÅhižÕü\fæqßÃÁaó^Õ84íY3Ý'óFÁ¬ƒÍâú…ó&Lœ2ÑSì=ƒ{‹Š ._~üfå4sÁ­ÒõÿŠ~35⺩s8ðF)í ¡4˜“¾$ täf@ôü*­Rª"£KŽ‡ ~i;¢ÛTšq´|o¨Wm +owmsÈfÚn0\R¦ÃU¿Í’*èý ~{–x£*•»Ço§Á0z9KA«Œ5sØF`­X+ã0Œ§g•ý3‚_en“ŠšÁ¬øÑÃtMÍü ‡Ø¦bó·ÇuêA<œGåŠfäŠúÙ߉GÓ™.òîø4ÞW òÔàÈ2~”u5”’Áß8íŽc'WŒAByØ/“hÜœ]?—îU`½7÷b& $ÂP'ð(Á÷¦*ºhkw®Oä½8lþGcšTæ$2 ¼b†Ê+(3[aØ^ ?çõz%ðmœÀz3Ï™#'^› I²Ë¤q$ûEÒ@ð{6¥pyçG2¸l¹=ã&²º43@w¯Ì¡cW´<™Ü),—¶Ø²`ZÕ ¯'ïì@´–ð´9©¹›ÌÅ\Ÿ@¬Îë'J’Ž¾I1S¡ò=1 ´¥›ô>3 +TÅ´ˆß /3ã•»¿©³>‡*FˆaäóÍï…5¯"Ë­Ú(t›µ/Nhjô5¹Ù£}EaÑEéOuÐv:Ͷgñˆì`³èLþ¸‡öK@‹m3-%#ÈÒn »Hmp,ví¸ÈRM‰¦„ùÞ?‰… † Z¬š|9Á Ýï³Ôª6‡ +æœu\Æï§à«dÕâÊEÐù4Bl:6A$ÀÞ„M¯ˆ©€{>ËJHÒ’ç³6ìúíJ«4L•T*GylÕM‚1‹zWW¸qhG¶ÕÉ#˜1NB!¡wÃA ¸ ½Ñ@¦²Õ‘í±”âWÐ2GßKå,?AÅ–•kÄ™Ñ+±ƒEÕPXxp–€·L÷^b ½@3 f*ÖÜ)u&|:1£ŒClÓäÃÅœ4ê"TðtÝ´ýêa{ ÈŽÜ˜x¦3ÃÒ$–ï[ +Êê6³  9éo®dW¡n‰g>Iêgzª€ÎØÊü#Š… ²B,âÔ*JÖJ¬] b„-†òx·wvqˆí£¹ˆD¨¬ü~†F +·áÜ>QMq>“Ö€MOÔiÓïiçªÀN}„O?èâs2J+(Á¨pí*$ÒTƒŠ 0\ÝÔcb×0=¤ÏÖÁ´«Àà;ïϘqå; ¸¼ŒØì 'Á$.ÃõáJÒÞSÀ('úO-Òï-^j¨¢÷ +³ ¬è$ò3gŠ¡?} š‹8˫ᆘ[\^)â~Vc”Hþ¸«àèí4Óás7bÿU¬‘¶…{M·•Û—XÀЇšuÜãõs1=ñWEwš ?”/Rp¨?åÝõ|ŠlÉ~êÍ]Dë²Ý=ØV»º[üKZâ»Øp&™N£’÷ÉÝ‚bô"‰l=šTÏÛêT˼ð`ƒ|Qò“à¬#ØòmU8zѱÐM"?¼Ž +’ë_Y?ãòʤ19 6+ÍÖà?²º]ãÄGÃ(ŸU§ï<­f6i:7Iš•Õm·ûÈ`©çµIÖìbs81E1[ŒÂ.¤Šÿ;Týú»3À¾…¸ž"˜—¯Í¤^ÖãTÏÕñ5D+Ú¡¦âZÞEÙQûsIiÚÿ²øoX#ºÁ-#ïèŒû‘0ˆ³`b t˜}Õ=…x©ì­ï}ʤ<ÕF—)s TY2äßQ¥t뾃ԥ a^¼ß`:p•äms4Q4U›\ùÿìµã"ÊÖ ÙÞJ žØÁÂd¾%&êWÆ,ržŽújkËnX4©ÌWÙß*g¸×9HsT²_¤÷uÄÅ¥EQ<} ]­„Äü˜µ¶*.ËcÃò¤r+@çÁOëgÅ}ùåQ÷™©Æzqvî5C¶¡©ËF³™j\ æ}oÉï$ö Ë(ß.tQú 0°Q­ð¾ª8#q ÿžæ›™HhtPèÙ´õÜ$)P‡ÈTç' ë#λ„Ÿ ͧO]†Ç„hèþ¢-±µÌk!Bv<í.#õ«ÏÄEªIûÕ\Ü&Cn•xÔ¿›æÄkÈÚLVkÜ—ZÖØwcx .$(õ,2Éy£îÁa… +70+* m’çQÔŸÚVµQJ€ýI„@»!×»ÉE>hàpùœ®&À.4ÇÞ!HÝÌž$¯ü‘‚‹ÉüQäå'>ù¦êrhÌDÉPäg„s'§¥¤þ,UFØ0Tö;Z^!+"ª‚]WõÉ–P2¸JoIr,°¡?½!Ø2hÿÔ¶…ƒÑ¢ž–# 0ÒØóË4ËŒŒ ’°>ô(¨Í…e&¡vËÖzeêçsQ#ì¬Z ]Í»8 §ŠåV¾Æ¿.»ö:`²åpaÆisæfÁ/£cÞj¯„_(¥T[ñùN±Mš‚i†ár}öO™Ýbe,OÉ¥Òœoíh經F;Óô3®ÙþÍ bƾ¥ß/Õ¦²mþ¿òÀ$ÃRЭ,¥K=¬ ä„} #[SúDF¦’K‰Stl#×jú#ö6,Ì~:VŠ…Ù kU—€ï„>¨ ßîýìÀ¯B]‹(r°@qá´eBý\äZõY\Žˆ`øŽ×”ù°‘˜UÖÿäÍÃïNŽxî÷*rcÝzîlC^ÇÌr]GÆ› =Œ[©ó¨MÞ°)žgd-Â$XT jdH0³:ˆºŒ1|¹ ­÷si6ЧXxè²ÑѶ5~‘0n1B¶úÚzmòÛŸÊoü‰`Þ[©–b:ƒ *6ÝÊú±ÿÇCéÊËæýæIÔ•nz$×:€˜]ëS«ßýèEJ?·ÚHœsO±1H¨V>·Ø6ª=M‡’Œ5BÒ½ª4'âkåï¸Ë|¥3í0zâúíOfN¨þÜ]SrBZK”Pvc·c+§%[P—9¿êÏÔ”0Ó¼ ü¸LÌVœ`U*¼¢zH¢ÏØ0£¦¶á¯Oâ„ÀH/|?¢ÒAm†«\n£<ö5A²¤¼êÏÂ÷оw +Þâ†Þ%g8äIí’X%Ç_½_ +:f®dŽhˆž£ß‘®¾*ùRÈNÆÍóþpw+d‡J¥ˆdÁ‰‡[)KZ¿%ÒþŸ2U³ÁÍ3FùA~♼ÅíÚvQ{—½9‹}¥*dT²Î”=ãr§v8ª.ïžíëÿG†«§4·"ç¾ ° È6¨/AĨ93à¶,2î¸|>aš$s¿9Õ j[& ³lZ Ì¿Q൑ 4ö*hï$„˓醜~‡¿¸‹Î=¸ö©Ÿ¸‘|dåìs¦’uð½Ï†sß]ÐM?òÀ§¨pm<õË5‰aô¢¨ÞKÞ)EO¯ËT6Íc+O=ñ±Æ'å{«¸4Ы‡`cªø¥6Æ„(äf³2«µç’eV(Â/Ùn>½,¨BÓ-Š²D±´j€ÑûWB¢@ˆŽéºïè +z'˜ÌRÎq¾ÎZùAåø–¬z!WP%RÄì¾'º{²·âËRVшšìPç9ŽXÚáÀ6ô´c€]ÔCäðؘМ¾Óþü…ÀÑ|cÒhz…ñë(0wŠv‘všØ¯Y˜yЪp—#¡»:<ÞŠ•v„“O% Á@¾èhßäûiÜ´wâI,‡Æ€*bxÀ\I P ÔjF‘¨oÇÐÈ{ã¼®{Ÿ»lÄ¥êDK÷>£ž ºZ¡tRý:°\S–«Ù…£(d1ô*¾”,œ=ãÚ ¥pôòWßMåöó ¬§íÔôvkr  QNIasì-/að'kÜLU=s{ì+Lã4±¢º­Qy"Î;Ð!DÀ [  ìãÙx˨Zæð=àBµ#(«–>sCs3¯“Ž³NQܧÙ%à¿aRïÈÝËLö¨¹cš ÿê  +7åÜ~ò©‡\Ûú45浃ýÜLâ—t‰ Oh$£ö¯×.arƒYº—7ÝÛ£nC[½/Ö´bd$òÜCÖ¨L›B&‘hÓžXo+`­pÙ<åŠâ¢šM…úîã'žÁ²ø»{˜ KHãÉP}[ϷΡâX2œ‰f^סE:B0~7.õÎY¦ïE¼Òxg‰i‰Ž=ÀÏæd8ø.H +r8 yçɃ< ÛjõÉ,Hàvm.º³’¡µ<ÿ +<=Œk-ö©b…€SEDŠÏøTçáÍ÷‰þ9Ìš¸¿jbê?l^ÆÚÚ8Äð⋶î”c¯gEx«:“MP‰õO˜•Ñ;z6âöMù¨á +l´ÔÄJt ãTÃYuÛ½Lüú›»BCJ­µ&) ÉtJ6L¢˜ëý:Ôs`ù(ÎçH£½žÉüÂDH“½;*º³5/Bá_›ì<ûWuj›s@Ýtñ6‹¦æÎYß4Q²à|Mý¾…á´6µÈvwįÕ-÷a“*ip•­’ߟtÖ}Û¿6¸Z¤õýå/-MÆmlD{ Wˆm_ð/?‘µ½íz˜øwI-î¹ ·Ù<¶ÁQ;,â*i´¹æ2Ký‰œhXÀEPzŸirE¯HÉÏLÂq|ƒêÀÄ!‚,W¢²6•õÆ`ÐBãÕ ^Q,Š90X$¢œt*xŸ¢g #0ÖŸ»Œó§2ÂmS½\9måäÔ|-™­¢þÓhfŸˆ±`¿}G2͘›„W@uƒOr ©ŠøDõáBØXÚœÑLh'-¸rƒ26§ÆliæH^Ý2@(©×ª‡'ϯyO–!®ÛÁŽ ósÆdN +ÚÞyÓ·ylÛ§µü†¨u5] —þ–zëy½ÐYiïáü'cV*°€d™ªîylÛqfÂgoŒp‚ÚËgœâIç"9vŸ·®ìE FøÞ Þ+ˆ>hü7ÆAP Á§Jˆw¸=iùy=ü‹cØ,rŒKcÚ@6 +«¥Jܺr·Ýºþ.±<7Â*¶™Ü³W‹€…¶ô·÷ý¿i<±:m1¡FG³öbëÞC‡€{‘ €*Çe0ÄR’_¿¯þ£¿ˆ;2N¿¡’0ä8¸?eU†šÍZÏød‡Ð§â;sl-%ôê¼L,ÆÒ3Jв.qž R°Ÿ‘Õ§Üâ<¶¬~TŠ8>¬1írKê€4aCt”˜ùá˜N‹ ÀgÎÞP-¸Zù‚òU‡Šê7‚¼º|ûN…\BÙ܃AE˜ßz!U9vù “RjD8€ÂŽ@Ô6'gç¨û¸4OÖüʶnj…Õq?gaŠÞ>®¿**ˆbm¥"ÜÉ`Dç´ö‚t÷¼‚º‰Sä'ßc]ã +<„öSÖA óÎïcßx€ŽöG¸]íZµikâ4PÌX̦²óÛ? + +cq5A³ƒc™°]­5ý…Iv´‹ŒCRD¦šˆ\óªJÚ>8ýüÿ—‘ ^§qr¸w4:3‡q*æ¥+ûÄ3—7<ó^Ã+K ƒ‡55?åòЯò^W¯è2Ä“WTÁ»kZØÖêYáü ô 2XÍ3íR¼IbÙÕíËlîËŸƒQóÐBÖ+±8ƒà^«ɽʓ¼8Ô×[ìÅeÆþ?Ó¡sržj87Ãöá|#GcGxŸ' ­9\Ñ]h +Jvy òÛóg+¸5œi'îLÀõ&…Dý2AÚ|ìáæbr´½Ðý†J×î{¤b¢6?’MÓËd#Ò‚è@ütø[¼fè>K䇛Ôd;­&œÿ¬”0œLºåÈ¥¤&oeêã³`#ðšØ@5'9 +{ ­Þ•5o¾>¨Ü²/KwÅ×)1N³I³Nå'Ë8Ô„ä"»åVÅDbO&—†ÇýÜ`ÀHªE|429»vÝöŽ$\¤E_>Ÿ@rµ#-~„‰Ml¹2qŸðbËØZ®f`‚1³u!LS…plRý{ÜS™÷©ølyȬhú»¸ê÷P)ewÕìùèªÎÅάþC ¡Gkض¡mAt„8¶gC¦½ÍŒñó=‘ñTÅQ¡ß&½¥týFÅ1l‹Ñc ÞÉYÇ=¯òk‚»<2F'RÄ€bõ1*{ +VÏ÷uÙIô=¶cøVt±ƒú‹C~JLGœ&æÕÀ÷o_µªR6jÛct†½(’ o@!›­ÿ㺼jÒW¶£O@¼¬ú>Ÿ–6u{Ó:›°@(¼õÔ6.|b0•G‡1‰Ï‰»+=¿ˆúd¿YÓ–â^³áªtjÛ&Ÿ×ŠéþØ’ð]®Ñ˸Ûꆆ‹;u»›šxJ«‹d‰'ïÌo¢û³¿2£~³] ÎÁ¦c,'Ý™ìødÜlQر€÷qogâ´ÖP) +‚Ò‹ÍËŽeF1õ†ÇC¡ ËÖÌGRõLÕ.OÉûN2¸3e¥:4O@]'13i’(Æ.(èÉRª’T†ò`Ŧ;8䥨m­ºÑœÀåæg’ÞÅ»Çá2΢ @“pR†ÿt}1[Üڮ(÷à'ÊÄ:®uZiò–“,½ÇOýZ¥t®nÂÇg†P̉+_ÉDE ˆj륅°ð¢¦±yÂ×¹cÑÍ wÇ;ªáÊØÉ—ç±½"äS7jxqÌ|ÃÑ3%ÛÍÙ®êRÜaÒ¯tÇ®¾çqY½B‘XpÊ™êL‹-å{å¾ülqÁ !}}ØÍmî_Û—/ì@žÌ|£âY–[ü†¥е•47 K” Ñ$´rõ__zä`á4Ѻ©N°)ô#l••ð‡«Ãú2Ü>$U|S‡´E‹kd@t7½Y‚¡ŒÍ+Ç1%ÕN ¢fÉÙ€³)‹¼É™vS¸2H§æ·µ Ë +æ„åUw|¬¼döÞU´ÍƒühéXRép)[û7F[}~71Äk;n´Š?J$,”Ïç‚y-]1‡ÕþqˆÉ¶¸?qh»9xp;îHì}Ìt‹õÙÈøèùŒÔ°IIûìoö'ˆººlFá¤NÕ/d^Ƽ¤d)NEÊ<¿ƒ°}ÖZÒ§[°à ³0U^êdº];¨ƒ¡£Š ¦öó«cGïàå¢ë×/!Ã/7 CÁ!RdŽ¢N`ÎF‘[¡35 Ë:ß|‚m\CÖõ#á Lä…t¿ÉgäÙ‰›TimK*h[rŠe­Bd,I®­×› NŒÅ7å&NÇaÐ +Î¥2ö¨Û€‚¢ÏêšZ¸ +Ú,˜“–ÂCQÌ<ƒ…euAª7R% ÿèèÎÿÝz5©†u3ù8(:@r”†°—â<­Æy]Ñþ/|"JY§G u?ÓŽc/®o¡©jx7eJ ¿û“óKíäN™Ä#¸UBhÁ=øѱ ~òbó˜yDrÝgãßiwÝ«…@ßS·UÊrøY%ŸË`´莊ö4•éuK÷W +aoÑÃÓ·Ñ€‹‘õΪ®Ó,eq‚ÎüÛ;e ½ŸÁ¸ 8`_l¬ +ÒÈ3Šjljáåþ¾R-³ÙîXó»´\èÕ€¬8}óáÎÅAõË;¹Æv  «òn”'þTÌѵ ¿ç£®]ÃqàìñŒÞ VÈEƒ ÀHgwÀ\¤NÉN‰cÖ7Îê–ð•BúTNÔÄõ÷ ÔîÈ02ÄÉÊóøòVÇÜæËT™Õq¼xyŠƒ¶äêÒ‹EKö¦O\;ëå±ØÁýàu?¸d^åÊJ-¸ +–6‰p‰º5Þ3+5MàáâU¿é~8ü™y{»» ƒÀ€5þ4` ËŠa¯Äa­c—XîûR@{›Y%×B^qØÆÀÀnÄ°™4TÏ&ÇѳÀã_õCMlt^îÁ‘MS¸ïÄRtÂLÀ;«ùœ ª|ÄãG™­PêX‘Àj6,ò&z½«Ð.žì§©x餡øÎ[5O‰Dýúˆ3'Ù +Ïæx@7ד—}HµŒ;{&ü¦lëéí^v}ÌYMJzEg*]Jµëزè XÐ}Î<^öH.8=Šrr¶.Và]Àw¿;ó—WÄ1žC¬¥× œÀs¤†™¦‘`–'w”ä¡€>‘[sI zË&‡®CYF=ªE±Ç€œ‘„ƒeÓXW²¾na‡.€#p‡³äͤ òÛå%8¯`úî¤àıãO¯¦Ucº7EFkšþËÏ¿’¿k2ݼC-ÇsÍt>cSÑW?›ÇþQðÕ†j¦Ø††¦ fÓbl·è¶ñ6š!¢~‚ˆ‘ôGšÂf‹Lú”:ë-³^Êàá£IKV ër‡B»0ùßÆz"Œ8«èº Áñi¡£û«ý*3žÃ„¼óg*¨ W7#èe‹øâ0¹O&}¡rø[¬¬çáÛ$À#Hhcë(Gp²eÆ“áÒø^°õ€ó«¸Ò67ST}Áâ§ÈTÉ•±£«‘#écÆ š®I?8´ûÅw9S’ÏA{!§\­V%ü+OñÐëï—ÙÚI)Ü’TÑ3ôòÉãSzÜ îŽbÌdÎÜ/8ͤ|mÌšÒLþ¦ìã ¸ 3ºK„ç(ùI>U¼í2ª®Ó<æüvæ­ê€iø·¤ÅÈ£¬”ŸqÓ[ A¯ææGa…&£ô"Ï]«&н¯9L¯´ª{ +"Ò.ÃBaš¬#-¢s‡ÀvæÔ8æZéÐ N¸¶¼#™´ZË‹ñ~ê²/ØârïⲪ,1Ï~þ7¢Ð}µ8—ïøöගq0¸öî3x¿ÀûAZ”øì–ÿŒ¯cY „?¬ÝÎ_:µTÁáJen°ÅN¾ÃyâEïf‚nž–19ï&W„€C(°o¡äÜ Ÿðqבq&¦Âãzj‚\± ˃w-¨Ó~Ø|*óøù:ºe¥ü±€¹t&y}@u·Õ­Ð † ñjß>j2ªð1ûM ö‘%òVÕŽ‡`£F=âÌÆ`¤tV·ŒÝ +K^Þ…)ÆÉP7BÖþ=¦R¯ºÀ´º@ÕWðϽx”·ðþ}‹¥ÂY1ú÷²‘s¥•êBh ‚^Âß朂nl%¤£²Î´Cî‰s½ý¤½‚] Õ°Q¥jÌŽ ÙºàuÆ¡]ÁEuèF Ðyç¤Ý®ˆ¨3£µzå£Àµ6µ](·çIõa·åfxÓéô':ü׫Ÿd@ +üÓ)Í`uAksèƒ2j†Ð"S[¥wg#Ašÿó‚ð@РGuðnÐÉb¬ƒÙ.=`ñ¤Yn©ÖŽÎ€îºvøλ t×/Ró=Ê,§¢’núˆiÀó¾a‡O(Äš+ôCèxØ`òÝhò´ßºo厜ÎæbÎn•2Úài³íqÜbD?ÜÜ"x}iVþ/¯—.o«ßYnË#1ëˆØ†[®¼^!> Õ_« ^F–ƉÒgÄ]—Óý»,›<Úòu6Y¾NÏüå4!"â\±8¿ƒÝÒ–Ê ˆÜý¡›V]‡±ÝÝZš l—¯]IDÀ¹FÉŒ<<ý%ð5Ò‚…ñZ‚9Ä~óý=¹µƒ‰£Ñ7›zò7eØDI”™Qó›*i˜Ø}±îdȨøªJ¾ºº¶¡ò+Ó¬L f˜aƒ2óµæ|#åkv`e”@öa© ^P†È⣷u å¾qä„KwRøhÊ“*vXÉ=!óâbbÞeØCè£ìw€Ì f÷1Ê#ÿŒ^«ÏtøÕÿœ/+>ƽÇM¸MqõáWzf¶IM3à>›žùÞþŽÞZum‚Ì‘ó)ÞisõýÅvÔü +&ÄÑ°vP<œ”ç+ ùeÿÖ6<ژѪ=‚ï²I%èXÛp`òÌ)˜\B0’ °®c“hž- ÈŠ°|VD•P‚í¸(A OX&æÖiÔ—á?SEr¬&4Phÿ€1Kh ˜Ñ¬gЉÜXÜVµo©ÇB#š’ŵp›ŸëTÀ“×O0kÏï,ñôÍg])Ã3îz¥6tȈnj&…µë!ÊîÔYŪ\ðê*„Rñ9®*)““×û},ŽZ¾uqKœÊzû0죢²óAìþÍ!Ã{g.©ÚˆBJïï¯IlªôÆmenY–•1‹ûŽ&Àµ;yÏjÔð„¦1Òm¨ëФÿÞ¬â¾YÚŒ5%l–z,i«í`^™±¦ +!‹4\ë.:O‡îŒÿ´õg­C¯Õ)N‘&üfZÜÚêøž¿´ùœ¨œÂÁž¯Le¤vZ¡…msL ¿Çv­Wà_2­!RS@te}d´>ü¡öÖ°xáwá4qÄc*#Ê)ݦ 8 ºv¹^'Û>ÿßL2h…¯ªºx„…Š`Ø~´÷›S0?ó¾ï<(dv Œh¨j$sôŽ½ÊÄ3dú¡­”éÁÏE‡ØR×múZÕ÷6z»À.­º}w7èpÆ 0¤XïÚ­tšDøqßLU¦"¦Ç3 +=¹å:¸ä.;Æ÷çeêP!Ëg6¨ˆwn¿å ÕA;¡)Q%•“¶¡Ü::-FEW<:œÛ=ilÄË Ø¤J$SÑVN’#Ë„ð4µ÷Ħ6°X˲ÅôRQöU¨ù îE$«©äÕb)ì­eö…œ#‘Z + +DÙR úB¶éé2y6_—<†¨~ ünŒÂ‰/3õÁï‘cOl ?xæJ»áÏà,-ÿÔ¨6ˆ'KVO-ìÀlòÞ~$/NÜÄ”£…ùò÷õ˜½ÕNc»®F&]ZÀ2ÜÁiâŠG€¥ÅzÈv¸ 3ÅèkÜMè¯©è ¾°j£DÙ\P§Ý¨ áºÌ×P€@U¡xwêD µõúøø*ýQœª‡ø,2ÀҌҠfLÝÈ’¸ö H¬Áêxûò,TÐÿ· ï{Eį́ú}åc[nË„—%;+¹ÜßøŽTXz«²OÝ®pÆQŸÏ–À“‡ôØ'ýB˜Èʘɫ«Ä 5då8ų}µ‚:@¡ýºòê*Ð7"Ý‘3 ,E†ÇØ, ËyCÍ:Áµëक़Zl›âìI¢+*í0G#ÜòúR?ÙH ú·ÀÔSÃ@,™ßíoéÿµÂš‚dÖÏD*(7T‚Á?ßKy ŠA7›±&KË^ <ŸÖ. ÂH·ˆ±³‰vÕïáÿ¾%Ùk²á¿úÝM@°4aÝM?)wïc‚Ó^ºu¸ +*cêùÈŒv({W@ñiÙUY-‚Ôþ•J¿èÐbCÕÝ•ëvžhh¤Ö¨>±)°“zÖê Kªd‹x­Ëg‘Œ>%û]­Å2`‰Ž†˜â#;IRQùÜ\Tte¢–‚†Å šv-nVÎ掟PwÂñ!Ñ@Ÿ­Wp$& ¬L§¶‹~êytÌ£hž-Ô$Ðp/¼GOÿýbŽRGµ—ZG/Mƒ»ÓC<™³%çbÐÂúç—À=è3Èè ª*nÑHؾ‚ÐN_ÊÔ’tdÏp#ißátùÆyãOG^*E¢,ˆum¦·Ý÷Ds”ì†|RÔyR!>ìÂæü! kÿ2Àa éœÓýEé\å(øþ4ÍhÙ9È&¾x{¤XHëéTjvG?‹¥¥ÐŸ*¾Z €¯fâÉŽÅ™3¢ãö%¤¸ä£Z³WH ã¿h~«öº',‰UM°[ÏïÉl¨sÖZ›unØB;t¾Øë +xìnH}ûÖÉÇô’Ab–k)5†À‹$ݘ>¹Wø²êýÀëzrÛä¢ó¼ÛX@yB1ZIãø{mB™öÐSÿÅ(§c‹Dþ¼ˆ›q#Áëõ _w!'k%+ò³Ù×»rÀ|ÞàÃá“’Ú Û¬k…Ä^¥Î<æ B5:(b€ˆ^¢Í!µ{“9°ð'y«ãau¹GWÂ\Æ +©úØp Y3åxóD®×¥ï²-ÇPdª)^ß5ØZ/ûok¯á•Àœ'ô:ÿ¯CUŸ¢+®*ÓžŠÖ*‘çËÓÙ¯sE³æ×ËMs¦>Øe2Ò£›rr´x,×ÞˆE0E8ÆŽ›P¡7Ëÿ5‹·ÆmÊœß#¬è)çruGíM’M ÌU­£¡ÚýX‘·Õ¤¿#o*-YðÙc¸1&"ÿ;hîÎ'©JkïA³$Ì Rä¥ó±G6FMÜ3G(`AÝz|=ëùöÚ\VʪÂhmí0-ºåeÃÁë§G©ïø3.¹=lÒclåi¥Ë>}úÝTÄ&«LûQ™›¹Ó ,¨gn¯ópÉê ¼^mdºÒåF6 ; /ĹžlT+M¿/OïG±%é JÉcG¬ +y"ÆÈ7ÒGopô°;…wµ÷¿®nÛdÙmjÃR¬²ìÄ>y”ê£Ï^4o8¾ÒÁzª\1R¾ÿ<“u¨z.†0ãŠ[ñž ã´HŽ4/à‡ A'U©Õk±£õµë¦Þ>åõÁØ°¶½ K€"oªQš£_ìédB'ã)0Þç§*á¸71êN?ñþBáœÅ&Í݉45öVýðÌäªÃ¦KÞ {© (ØðX¢˜è ‰½K7[ Ã]S}ļ?Ëeäa|9Õê®x&×ÀTê©1ZpÆô”n,Ùžþ˜°BoôÁ õõ»ÜãÔ“qZ?HZáĨQѱ[j·×L®ºÇ3¥q ¶2Ï`'íq/[E¼ï@(˜•2-›@^}ßwZ­žòj'‡ž<“¼yÛ¬7ºCÜè[ ø¶:¿Ï2¯@;3%¬:!Âà‹¾ Åã:•4©DÙt*“{;ÖEO”+Ü$/§nØq[*ÙÍ7Òxäÿ$ hHÙœMóæhB„^˜IJh0œ¯ùÌÚ¦q;øð³ÀÅ¥½BEF„X]qâg‚S¶æ*¡¿Ïú‘ÊÉBå¾ãµVuáÕŽÒx¯a[ë*• HL\VòÖriÆñnúÎ%L$ÝØ̲T@jL“Psv¡¶’wRFÕÈðYKg/¨¯ë?®â6¶…kvÊŸ +3þí½RGsb +oM¬VŠÿWpð2¹Û‰ ùd?ª†–‰°— ØäsÃð‘ÀÞƃ› Ƚ‚Øʼn´N?[׈«‡Kh9(­M±vᦖ_6º㮘#±Ãñ}Ü…sJb¥…W¼¶˜4‰VÁ]A†È±´¼`V=ù¥`Š2b²ƒ3 +‚·^›Mx º³7=ÉD/\¡ïO_:ÚRÃz\]àZÕaº}v°.hJ3 EáÜ£€H¯ÒûŠ‚ã‹Hšž{†q¿¢T–Ú:Œ{\üäa(í„CþÿŽ¬žáA)b@«/zâò²VöãöÕ=›´5]^ÆþìÂæœþ½¿Ü5G°µŽý„ën;ddš+”Žv/q¡ª:î¾ïÞXÐT–_8[pâ¯×S)éT7<&ÂÖ>5êav¼Ú«à @zu3ù„Y¶W>wåÆøkòR¤â¨XÅìoêÀ"l2 ¼%:12p=Eú$ß’"-ðÛÚ›ûÑï#`åDœ‹£“["»=ˆMæS¤˜0›¾"KòÍ3w>@“kˆja–µi¹×Óå¢TV½^|áŽ]ª›)–n·®m›s€ïÇé +±ú¸[wF PÁï±wœêQ× âWn§Ïº“ÎĬy G‚ìÖèŽ4ìÝGgHÊÐDNÈ:Aâxò?÷yÔ +—ð_RPc “f©ñœ¨¼:Ë_ñÍðW©LªˆH|£ËîþMÎDou§Í¤ËЬe·Q˶ˆ”9CmÕ¸ý‚ªÂ7d{†CüÇôÂÖú#³WS<ŽǨô]ʤ¿º³!l‘Ù•«n .j…o?¾L‰bO}Ò-²Ön$9€Óº ëjñƒaÐŒóµPÌæó™aOöΉâ}ðª‡V’ª®ßËuxŸ8 ÙwºßoC +endstream +endobj +520 0 obj << +/Type /FontDescriptor +/FontName /KZBLKD+CMR10 +/Flags 4 +/FontBBox [-251 -250 1009 969] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/StemV 69 +/XHeight 431 +/CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/W/X/Y/a/b/bracketleft/bracketright/c/caron/colon/comma/d/dieresis/e/eight/emdash/endash/equal/exclam/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/period/plus/q/quotedblleft/quotedblright/quoteleft/quoteright/r/s/semicolon/seven/six/slash/t/three/tilde/two/u/v/w/x/y/z/zero) +/FontFile 519 0 R +>> endobj +521 0 obj << +/Length1 1353 +/Length2 7264 +/Length3 0 +/Length 8617 +>> +stream +%!PS-AdobeFont-1.1: CMR12 1.0 +%%CreationDate: 1991 Aug 20 16:38:05 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR12) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /GKTJSV+CMR12 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 65 /A put +dup 67 /C put +dup 73 /I put +dup 77 /M put +dup 78 /N put +dup 82 /R put +dup 83 /S put +dup 84 /T put +dup 85 /U put +dup 86 /V put +dup 97 /a put +dup 99 /c put +dup 58 /colon put +dup 44 /comma put +dup 100 /d put +dup 101 /e put +dup 102 /f put +dup 103 /g put +dup 104 /h put +dup 45 /hyphen put +dup 105 /i put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 57 /nine put +dup 111 /o put +dup 49 /one put +dup 112 /p put +dup 46 /period put +dup 92 /quotedblleft put +dup 34 /quotedblright put +dup 114 /r put +dup 115 /s put +dup 116 /t put +dup 51 /three put +dup 50 /two put +dup 118 /v put +dup 119 /w put +dup 121 /y put +dup 48 /zero put +readonly def +/FontBBox{-34 -251 988 750}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª*Bg·N³ÀÓ½ ƒØ‘l¦ÊKq*Þ²Xú«šææwüsŠ¼|QÍFïq˜Õþæv`æšz¹XòšMyåp"÷ƒë»¶Ôôì5OÒÞË©”Y¤ÅðÆë¡P(DTçÜ!Á[v´Á›„67XFšlU‡…²&3!R˜q©ˆ4‡Ýw”’Ýσ~j‡¸+Ûño¼uú£ “þ\ôéÒ@[œÕ6]nÎÕ×hÖmlha‹ŒH+4Œ£Ž›¹ºüú­œ/?Ð3¶&˜nÔ=œ“a6E¸#’ÕÊá|´~.‚ÜÔ…Ë Lw2.²æ§sÜNYÁ ¢Ú»›÷.,òVÝnµNìºX«Ù3µ|裠Ñk(Q×IOs mõ;Üf»ø–µ‡ß–C1}_a Ù˜Io#Ýà0÷²wÝ™\‹œ®œ™ŠÄáPÍü,fí’ë´Ì *ªŒábG¡3ZÓ2Ú©PÒ•§8L3ÿrê£[‰vnc_EÄÀh­~èg9°|¹M)ÿ }Yÿ™aÑ•©HãØ|1‚’•¥m!‡[A˜z¡XpPÃÇNCU»7òUÖ²7ΖòTg÷¡ž…x_ôh”œÌyòø®WÕ÷›¹ÅÏ^í]˜W¹–}›–ÍÏsÕÖ_÷Zú»fs@ºâdYr ÈŸÑsy&vJ“Ðx´ë)Œ‡Öî¢Ý±®ˆÅ~ÏïKqä +4•Ü5h¨LÉ#q§‰:4pPý¦ì÷?gÒ |GJS†nœˆæ^i2º‡§6†ê°“‰øM˜ Ęz0í”.²° ¿õ¼Ç ôâvÃ3›1¶ê»°xCj »7}0a¢ ¹‡–¸`~ì¼i”Eê¨fÃŽí}O>ÛÊ&*ö¤g¯Ï¿60ÉCúL͘Šsc÷·^¯X0°IF +3yˆñP¹.˜žwPŨ=óv…H?†Ñôtxˆ??jKv¥ª‰èñcšÝJ’ ÞŠO(WfÀn¨Yc›’ÌÍÊõ›+¸ÕˆÊuMW¿÷kS˜Mô“p“ªïy2¢šLûa }gH,H×ùèA ­ngV¶U4çŸÑNòN7¾Âz3À¤´…=Ê¿ìM1É(°2¹iznl™7ÙÞÆ ÖJ¶íó[­ïÿ7Ò»DÿHåÞ]˜WU©¨M”ÚòļÓiª­á)£¤¶h—ˆÁ«iw©uPÞ‡¡þëJ”v +ëï]¯‚™À/X°äöNÂk¶n|´™Ï?«¡¬Á4Ò«fÍ kÿEÜ{'ÿ©ÇºW1 os!è·w#±v. +¹Ršþ¦Gágñkx¼¤Å0S"ôíÇM¶î‹€‘B$ê0ƒköSÞlÂk®¦ÐÝ6C‚)R`´+…­<öC2J™4ÈW_,6ÞtÈ%?q£¹³cQ2Ú¥Ø ¤‹h®¤×¹qœVV€ž@ÿ^¼PÓäpûùS3}Å×}1蛨W±ªo"\uX°¦BiOCÙ6ÙîE‰¼èXý!ÏѾ¤¶W¹i~ûœ3¢\J˜ƒüí0¢0Í ¾\†î#‹ßm—Öi‡ÔV’̺çÆ(Õ='·ºb·OþÚfìîg +ŸJ§¬ÀÉ©Ž¸1“4u§lR‡h‘+¨$ƒL·¡þÌHÊ-è‰?èxM6ÖÉmkþ]FËìàËÝsvN ¬“VI +È&º½Œ‹£gº¾µÇ‰Óá‘¢_5»ºs$¯÷¹ U…å“$;Ç|Q|ÎnèûºÃœ2 @%Ú“¢˜qPï½ñ ªc ‚Ó »¢šTÏÚÞªOe[Ä»H__âi´ã:&òÔg&AüÏõ`²ïÕܧ%¥2‘ö¹ ïîV=ÿ©° §ê&„÷+³#hòOSV(â{è.“’4_öcÌR“~]ˆc—û„x)S7±–.î×)*øe³¼¬I®¢a­Î4CÔ€œ•óÌwŸ¶ïˆ­ÉôÙ«uÕ1¤XîU¡%«Í€O¥Znl:}"Õ‹ÁbšNKOY]3ûd¾¬qwαŠœR즰ÏÂ}ÒHÚŸÎ °'!:[%eDðú¾|”Ž”ŒvñneÙ LLJÅÌáñÊÞ4|“*ƒ‹^Õz?#@i‰èN“ +Å©ÀÙµ^¼«Í“ulÇêJÉváþ~-Xr”.È¥í³ƒX\L…¢¿’'Œ^½!9J ©îdÊ:ê뺂0†ñ«´MË/&a§1ÔKçáì–.ÚˆLpüª ½~xဦ®&{;”†.3)K彄OÝ©K‹‘N:Z•×ÉŽ¯¯MP¥ZøeÏ˃ÙqìDw…úçÂ+O¥Nƒã°Ê_ʼl· ÞS1cN™yä±€Y¡œ“Ç’ÆMÇÛ&¯;ÍuV Ú¶| ÷¿¥-š’q| L›¼S™ú€½s¾GéŸköNbè-ŸmÁn­‘gÝoYL¡£|¯G¨T7K6tP¼ÝcN¼5¡`íu纕 +ˆús ù,ÀÖ¹GÝ]½òXɈ{ Û×þÅ÷ÙÚÐ; ‡Õ®¥Ýã˜4œšÇéÜ­ °”:»ô»ÿ\½ŒN‡Æì?Üñ5å ô%Íž/Æ%ƒ·mZVL]¾ÃeXÓŒRÕ#ߎ¦‹eŠ¥SWÒNÔŠ¾Ä8Aw·†²Aâ%‘뜊;—\4;±ÎÂ" •íËþ±ˆžn»Ðüñ\©þþG쯮7 2"T·ÁÄôDʼAxlÕkáª÷£í;YÂÚÌZÞI÷ç#i-¿ŒZ>tß" +·![+=¸ÜžT`t‡.%íöÀd…rÓª¥ÖpG œ¨~ö˜Ù|Ì8ãúFb,æX»d@¯÷Þž‚„üi(Ýj^ïŠxA”æä¥Vû´A 4¡#Ϩ}ܺ‰ŒZáÍ_oiUUà-uŸ­ŽÖŸ Ð(öÕ?w²VݯŽg‡ŸRàõôvÌü[°·¯¬ásägÜçÞSÄfŸú5w.ÚF|§zQøÈpÛTæV$ÃÉ3M×uþªÏ;^éQ26²%‰DÃQgQ….ª¼–¿̺žhà…¬“=Áˆzî þZ§çt>÷*¸ÆíÏëûOÇ9¹6ËéÁ1»ÃXUçÍ(„"œ–8éÐÙ‘T"á±$Y»É£;Úf$¯ÎAÒ¨U¾Ö*šêZµÆÉÄY™u ÈÄmY%¾;&—jùå’t&³ceXß{ŠÛÍ$Ocç_QЀ[õ‡Pά,Ò.÷¶Ü&‘Ýîè].¸6³f`|–Í5ëzšuÚ†ÛOrzÝ+/¦“‡Eøë +8h¿…nSH”k‡wî¾åè]9ÌÀíÄxd¾Ú&­ã@ @é«:߀íßSºp@7ë{¡ÀÅþZ”´Š4Ö6Ö½cë}hpPI‰4Yä¢Í-Qô=>Xï¯}‰qöJb{ýFKåçDRLS40 ýñ»¢Ícc¯œ¤, QDø4$ª×éEnçÁ£^ÑñB¿nð 4`$µ7yúÒoK]Üoï[”¢gÌ^ó’!Y¢zΖ|Ô¤)MƒMk(r0ÿÂÒ©Å*ÀkμHf‡O!C\ãåId4‰Nü:Ä3Ö9ÉÛŽ Ø7Æ¢Ë`\)ÚóötÛVJÎMܔ߯lGž]cH˜ø\ MÚÝggËJc³¸ÃÃ<Ó‡œÈDôñ4µÞÐ…ƒ¢èQ4RMûÔšLiÂy–·+7·a~»]êŠ1YæÇøÌ>¯Ÿ¨úUÑký{\d0œ•°•:˜B˜² ’7c"Û!í¬F¡ùS:ð廊_‘LŒàðî<?ë2°ÿòç–ú>šÅ©(PJ”fQ‹·™Þ[5ä-õOr£æ±•Ú{£œèuîm?h^I½š]ÔRf<6Çèz©˜ò±hh0 w£TŒ— ñÏÕ·€+žº3lƒ=’[¹ÿšpòE¦PCôF„Éfféª{Å/u&V„¨SLÑçÁ4*„›ï¡ÂkƲ:(þ‚57À‡yÓW\ß +n5 …žQÜý5ö¥¾^å ¯º—ø¼Ÿ¡¡äþ³©½÷o“÷t«-à ¡8xŒ"t1DZ¤Ì±²ôè\ͯ"wBY]Õe²g×É¥?(Ÿ^®‡’¦µõÙ’ý2±Xeñ×røÎJd¢Ù”që,ÿÄ\ž®A!¾þ NóÉ7Ò ÀÒÚ«Îãðu{â#Fôƒb à|ต"S!ˆ;;ZË¿~†ÓxL‚¹aOÿ1Ðk%Æn›[¹µÆî_üv¥³D àJÓâsþÚtú»Ý÷zfùi£³Ð­±½äù„È‘¸Âr £ê¤FGWc¢gZ2Fb´YCê$,Ú”z0ÔËÁëÀÄø,çü3ëI]rø¿7pŽìéi0§C²ÒïH9²C–Îi5SY°g_9mˆÈ5Sši‚ß ž{Òíwùmãv´äÍÈš‡Çð\Ú£«ÿh6jŽ¶aÔsY)KÀw´áä_'9JS££’×:T£4(_´K>–çÊýĆ`Äùt|+ qd[m£gHd¶ÖQÆš4é¸Ë ` –'i…WEX–/ø"Ÿ­GÇ„OÎwµWÓã×ÑПRÚÂ[äÅm<½.f…ÖxÜ ”ophu F÷S®]‰š§h6?s·£ƒ,õÞ +Ï虈3øL7ÜPë7:<¹[ügÛjUtØûv,±ÀK¸×åÚC]Ã@`ÎCô²CO\ba7Ž^š‘A€Þ­Ñ9å­U[©ì­ù5Û¿ ½<¥|nu³^y­¨¾+yÎÃ_ÔªCî/ó°ëaÀ" +<*ƒƒÃØO‘ÇŸv"й&¿D *’—﮾´‚rnô«ÓåѸà”QÁ%àÚÃê›âYàÿë¶LX*«ò +Göð}NóL(j–øÞý®j<ßhäKÕQõ¶à a¥ã/h¥¶$›(”B,³aúž­E£÷¬ªý‚}9 ^ß©åâï4j‰¶!›öòlÄ…Aó¬ø½Ãq]:œQQä!¸C7üÔÓ®Õ«>ç<㠑ጿ-œª¬òtQ‘¯‚Å0œÐÔkskøÔ/ZW»jû¥þgÒæ£ëø¹Ê<·8b¦¸J‡MÉGÕ¸ÿR¨ÃÞÑš{å{Ýè7É{›1þq¦ƒŠT è 6ŸV¨=bf¡ò £#xóË„R£ãŽÛVW:ø­œE(C»ZØ@†šUUØK:|'æuì4<ÇûÏ®èÿC0±æT8 ÒÂ_®ë‹ä‰Á–&íôÌíš }HSˆ¼ ƒ¶PK=ýw`˜½2®í@HfüÌÝ,ˆªsîUZ?®‰;ú¢N°iµÚ^ÚP ò(ùʆ—të{ì“Tç²X+z»fÑî3°J›¥Ù xVuCWh6Y7KÔ•´Ïü•Í‚Öt\*)Ÿhue¦s,«€•¡Ê³ r\=(¤3:ŒŸ•-šcq-õ#`,f?ÓG•[½ªúfÊjÝ.JE¾3÷·iÄázÒKÉæ„©|5J}7?ëU8!Z»öh¼¯¢üOÀ¿rÂ`™?í¶©Ö ¨OT²K±7RÚÇ´ xÎL=­VÌQø3ËO ˜ÆýwÙjypä¼\QŒhoæ©Ü =&ŒiíÙ9@ˆ˜]5a¹¸AmQ±®y+OôAuP,\¼øw9I[X†Ç“uÑ´¦2àO•ûóÙgf–g¿7ï£5ØOÜ"ø=t‡M¥½±eIëqK´5’ÌÛÓµ™8Òœ5 ÆBôU)­—Üœ4ÅòQÄOà×<¹2h;±yy+wEBV•°á´3hq¨ÿ1)(®×ZNZ¥“°ËSj¿,ÄñÝ)u&öºµ*é9âq&ÙˆVÀ£F7¼¸í¾—!€‘²ÿÝeƒ“8®bš-À× ê'•E7¹‚ncGAóÕÕŸ ¨j´”;9žƒ¬’7o¶ø†;L:Ÿ¾ÆTAÀ…ƒtÃC¶CI¼ ryã%Þh"8—PpmÇ÷·\#_%Ái%UÆöÁÌä¼€8iqíá2Àí ãÅ?óž`(¯™f*ï @µ^­ìÈ#Ïû& µ„Ìһσ"_&=¬1G²ÛߊϞuœýõ´„Vtcþï8"ä°Èk—8+™N†ˆp×E¥ÍìESžØÄ‚W{Æû9¶¥ìÝo +2¾¡^Ã{Ú€±»?,ÐJ‡8àYnbjÈl-[€êñ¨a â°Ç”Ùä 4 ¹Ú›¯}x-=6 v ù~ëoQŒe !c…Y‰+âù’Ž‹ÉÖö[Ä *«DõêùQySäèÊziø”ê=Ý+óúÒ¾Š‰Ç¾•71‰ÅάaüY]jKñ=ÖjùäH—ŽÒ¨Žƒâµ!AÊKtÿº°4‰eį¡îÙbWÝÜÎvôÙªeQÊŒ€7z2?a¸×ÜÒ„¶qñÌ®´¥ÌÜ0·YhÔÒ¿=èTH¼Âdâj¢RûGºî (i%ôsí1߀8¢.?¡‘µ‡9%Kãõ‹dÑ­Z!yÖÚDš¹EÔŽêí°´p¾7çAÁ%b‡÷åSq4{@@Ãäò“ úÛÜœ¤hc …“ó7lE`4Èçà%Ó'•|ߣº@82æ_óÍ Ç\t¬p½¦M”ödÞC³‡~¿óÙÈÕwv^ø–$µFd”“+iÅÑ%cU(l[v' G±ˆ~?hðÙo—7‡ä>U¨ü¯åû\ûz­A¡Ômn?‹5‡Ê=:¼6ÞóœB@„Å>‡Úr›FChsB"ùjº2Q(¢€‹ÿ)ç_ ŒaŒ:±æLÀÒxTÁò7„EY<{0>ݪøKÄ|ÄÔx€Í?9ÖmÃ÷ž]å‹k¼?5ýÄüÉuåÅEÃ%BÓé¾F5ŠÏŽ£Ž§0œ–k'[ë¸àáÇ®šGÇýËħ¥Š×.&Q·îC ÌßZBÞªX¸ÜU·Ûû£•‘î¡ö6ý‹3g{Ôsº¢Ÿ'ÌÓ.Î\îêä[TX­F™ªg;&œ¹6Ùók`•ûòÕµ„_-À.Ä4 …ÿb +²Z_¯«‰€_©PZÈ~ئ´b—Ø +耹MÏ×…bÍÖCæúÚ“‘vóº&Å}PçkÜëùKd$“Ôü™õÅ Û³'¯jùúmæLþ•Ê,¼vClÐ_<5‡xó@Ðî ÙF½Ç^¦CiÆñZ+3Î…µ(hž-äܶP8b$9ù ½:QRáó fnH/Ö¹=ê' Aôld +ˆÿ=w: RkdÔ_©`ØIøçŽûûO0`œ/a¤©ò%ôe†@±´úN¥´©ŸdVúJ­CŸÞ‚›¼T{‚Šp¢ QnÝͶµr¿=ì½½î/Ðr؆º©Ÿ5£¾5pí5š¶Oú|´VŠ›¨(QbÚ~}%bO‚[?„ëžS*²Óè}RíSŸ<ôoÍunÛ|»ƒ½¬å²ô7=c¦ ! ºjÂÊJFe¯Ú’¾¿£ŸªlðØ 6ÅPÌé»#>4*íiLøU({j”é"†·É¢£Ür©Ê“V”õ£²[G‰f †æ"ªïäÑz[&̲ÙÿYK°Ê¬ÚcÉîþž± $Æd1¦å Ó=n±„ðAÛsi] FHÎB¡J±®œËÉç†g§1>•°÷#¬j7Ž½<†¾Kt; +'-3£Ä…úaˆã Ô³VW¤Õ»ï5Øl|Ì>‹XÌ‹uŸâo§Áu·z »Ô»ÛôÚDL´‰Ñ‚¾ÌXƒa˜¢x$‚ +|PB ¥½¯îQ³DpŒGùG-µ#P xXFC] »Ó'&wùj%W@Uò†þ~ö‘èªÔD‚üõ‚ɱ·‘Ù—ØÖô1/ÁÖ—“ÊðÇD1€£J§g´´ŠoL6I’烮?ìÌ2}m¼Æ„å©HœAÆW!‹]ïø&:¹“M[z¯Õ¿çþ;÷B÷­aiîB‡78¼¢dOIó!v¬Tí!ˆïf9·?IV½£ç²lr„C:dËÃiK=ŸÕooÕy7+Ç"›÷;#®„O´o+_0ö3"V]Ú'.ÿïµMÕ¼N˜‰x¤0`ÝÓÑÄUú³òäjMë}?Q$÷ƒåx øÄßÅŒjEM˜½7 À·!CHƽ™Û½bk|y&a§åÄ+™àgxÈLTÈ‘‹`µÔ£ÿÌi +endstream +endobj +522 0 obj << +/Type /FontDescriptor +/FontName /GKTJSV+CMR12 +/Flags 4 +/FontBBox [-34 -251 988 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/StemV 65 +/XHeight 431 +/CharSet (/A/C/I/M/N/R/S/T/U/V/a/c/colon/comma/d/e/f/g/h/hyphen/i/l/m/n/nine/o/one/p/period/quotedblleft/quotedblright/r/s/t/three/two/v/w/y/zero) +/FontFile 521 0 R +>> endobj +523 0 obj << +/Length1 752 +/Length2 1167 +/Length3 0 +/Length 1919 +>> +stream +%!PS-AdobeFont-1.1: CMR7 1.0 +%%CreationDate: 1991 Aug 20 16:39:21 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR7) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /TQVOAL+CMR7 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 49 /one put +dup 43 /plus put +readonly def +/FontBBox{-27 -250 1122 750}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª*Bg·N³ÀÓ½ ƒØ‘l¦ÊKq*Þ²Xú«šææwüsŠ¼|QÍFïq˜Õþæv`æšz¹XòšMyåp"÷ƒë»¶Ôôì5OÒÞË©”Y¤ÅðÆë¡P(DTçÜ!Á[v´Á›„67XFšlU‡…²&3!R˜q©ˆ4‡Ýw”’Ýσ~j‡¸+Ûño¼uú£ “þ\õ¸Ê»ŸülÃñé®2ò4ë`þ}ãI•±¬ÿRBŽ¢ ŽÔýsã“\ëÔ­pÀˆzEÈG®ÞA‘ÌÛ‹a4_Ðpý0ÄóuØAÝEG)¢Q³ö®|ˆ‚8B‚ýÖ*èîþÞdGWjú'¤‚©Ê×0Viäx²†ò#(ò®„ï=äœ@'q¢IªÁúT5i +(Ñ´t†`È ?á¿E<øG¢KO„d¦<ê섪"ý^t„~Bkh•}Ñõ +_2…áùXñÇðâoî|c™Ž¡2‹É„WÈ FÒÂü4bI¦dìû¢ÎP6Χ5ŸÊÀö†Ã»'îúEÕH÷½LæbjOƒÆŸé:S$:x6/0ŽÌ€Ý Iá7Íɬºã’‚âjzMŒ›•ò'½¢¢¯©ÚëóPC€²¢ÏŸë.š?³½>€ŸÆ)4‡§E^³¸yÒ´½F”+±$8–&G"ËYl?e½Y¹jt±+²šT¯I2! nþXKÀt`‰Ë±~h„]{> Qîäaãiσ\¾mFÇU#GŽvh2uöÙnÃ8½­WÕ;Rõ4¬ŸàEjÑ1‚B4²b¬ «¤;bëÚ9y[®lþ—V:Pªáñ•ˆ‡9òg`†©\šJ~ óO>%V‰0­ø ݬ;cJÔºjYr¤t’6Ïy«¤ql4˜QoÙ«~ØôoÁ†‹_=6xßqªw,ñ÷Ý",kñŽðÏ·§oÆÑ +Ó#ÁvI«7_ ÏÍfz°”âÇË!yÄ(3)Éä5ç¤*к Y³øb#a€³M?ÎØ3G%wºÍG*LÕÇ4}. f0ôFópË)¨@Cÿ™”Þê—,W š”€Ú'˜’Ó §—'—]8Ñ7¦Go´}yÈ-IõÞ‚Î%³Ðú ;ÂdŒÝ»í·‡ýƒyåï%‰•I«+³-tŒ7šóÊˬ'Åä$· ì;›9ð†ûWJ]µ.ôIùuŒò®Zò8CôpÛ-ÿ–ç$X‰ ÊÓ½„TÔÖ¶c+÷…DßEA1ñâ_oKC5³à—Ýö@Æâ‡Ç{®¡ !^þqñ‘ü¹©î‚RˆBÖ­ÍdºŠpÿ’ï=Ìþ‚?E‹‡­ „Á¶™OS°97õ­òºkøîúÖò,+³Ä©Iö^+͆S# +ia®s”1 +'_¥ÝÔm Ã'©ädº,ÁÒ]XÒé{&ßíØ41ú¼Y9HY‡_\½*2Õ|$Êg}å/MØ#ž9§]ržîZRaà^3cs!7烬y¡D6ÅÇ$1/Ñnh¨ +endstream +endobj +524 0 obj << +/Type /FontDescriptor +/FontName /TQVOAL+CMR7 +/Flags 4 +/FontBBox [-27 -250 1122 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/StemV 79 +/XHeight 431 +/CharSet (/one/plus) +/FontFile 523 0 R +>> endobj +525 0 obj << +/Length1 786 +/Length2 1479 +/Length3 0 +/Length 2265 +>> +stream +%!PS-AdobeFont-1.1: CMR8 1.0 +%%CreationDate: 1991 Aug 20 16:39:40 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR8) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /CGCFOU+CMR8 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 61 /equal put +dup 49 /one put +dup 50 /two put +dup 48 /zero put +readonly def +/FontBBox{-36 -250 1070 750}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª*Bg·N³ÀÓ½ ƒØ‘l¦ÊKq*Þ²Xú«šææwüsŠ¼|QÍFïq˜Õþæv`æšz¹XòšMyåp"÷ƒë»¶Ôôì5OÒÞË©”Y¤ÅðÆë¡P(DTçÜ!Á[v´Á›„67XFšlU‡…²&3!R˜q©ˆ4‡Ýw”’Ýσ~j‡¸+Ûño¼uú£ “þ\ôéÒ@[œÕ6]nÎÕ×hÖmlha‹ŒH+4Œ£Ž›¹ºüú­œ/?Ð3¶&˜nÔ=œ“a6E¸#’ÕÊá|´~.‚ÜÔ…Ë¡w,ä"»rƒ­g[eH§êi¨ƒìª>žÎu†ÖÏ +ŒÕWÇåת>©~ºÓ–Ñ¿ÏJmdv‡Aíê +[û¿4|ܾ.×V–z¶ÛÄ_¢£1. F¥ýf« |Xÿîĸ9^Rw] +ü×ÛŠ³31S\D¤ËKZÍW`– äP”Š^êÝ3ê ’eÛŽÈ Í8`2?Òl;ˆÈŠ!eXxh +Dfú@=$»—*I¸BÁ€äÒXÉÔ!ÐWx-b1ƒ £™³ÅòòÝC; p™À}½âhÐÿíQi¼Ð=H²ðX­bØgŒbmÇ£óR,™º–>ù_ŠÑ¸°ÓQ! +äÂÅZØž¶Ar“]< £˜óîîÃQ–jt8ï?îB,mN3v լǵ+í˜Kú­6ï t‹Ð{äAJc—Q%ÒrúØ?væÿø60¾RmXsŤ+pú‘Ǹiñ:þUësõ‚ƒ‡“¸Ì)káÜÏPýWË\~Ú;’í” 7 T“.ÅN ¹„ü¤«}.¡‚¼ñ&:¢D°~ÀêzŸpŸ0C„Ë_§HòO­šzCÔêBy½AOve1k`ÃG|f2¾þ8—µŒ'j0&®òuk6sw,› I´Ù5¨&{oƒ¶®¤ÚÄõ³P}p2ªd +«ãC¤é½ÏAœ§!8ˆ²Zô⓪ÎÙ¦½ÇŽaÚBLeÌ…÷b¾±ls†ëLK›1B¹f/HÏ[UÜD&Ÿ—V{˜FB16³¥h¹X"·lñÍLÐÆMÅTÌ.„?³pSêþ˜Z˜Ïž@‡«+½/kb/t9{ä¾ú ÌQ£ 2l6TµåHµý[æ¿ý .ñ*”‰!9† ¦wm€ð·ÃéŽ4‘†Šk%glÝqðÛ×ÏQOc±[l~bï›â'ëDÌø‹‹_Ý¡^b—`ýê & O–°[écN™ÒåDObÂkº×frîɉH·ÙÈ®»·ÉË¡l½üY]zÓù&Q¶=PÌ~’ôélMârþéO¿å„9yÓh¼å7OonôXl«i—'w —¨h.uésƒ-4ý{´Žè +9âcÃO `+Þ÷‚§¼ñ‚Ëm†ãø.f›)K¾›ZÒœÑ/©ÝªÈ«M»f?ŒPG,|óϹ®q-ƒ³™‰÷Z‡¦ÈÏy#nžábòly@Jn¸zÅ2¢œGÉE]=̤Ž+&@ë<Ñ~ÆÄãõ³h'ßu Í&¾÷ÅBÐ3+*/hì¬:,•ÃñuvÞ½¹GƒCîb-øÈ÷Ĉí–izzÿeŽ«ÞõÔ =–‘•ÚôË»ài¬¿ºKŠ¢á_±ëxÌÆæjx¡Ð%¼­ZUí«L¹ˆà1ú„(Sܦe]/™­^åáìÀÇ ÙÃamaÏ[Š‘±a²`û¾ÙTQ)|F¨½ÍÇ‹•êú+•ìÏmCð›[êPß+¨<Âý!ˆw ÉfR”< àIFVpGž‘æjgÿn•œ¹ rÎ-îìbì¥béGÛ±l\¯hë|—è±í•ÓXÌ#;øˆhPjnð<*§ZÍMGœK²à8ÿõp~ƒ­> endobj +527 0 obj << +/Length1 1016 +/Length2 2355 +/Length3 0 +/Length 3371 +>> +stream +%!PS-AdobeFont-1.1: CMSY10 1.0 +%%CreationDate: 1991 Aug 15 07:20:57 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.035 def +/isFixedPitch false def +end readonly def +/FontName /WYYAGH+CMSY10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 60 /Rfractur put +dup 110 /backslash put +dup 106 /bar put +dup 102 /braceleft put +dup 103 /braceright put +dup 15 /bullet put +dup 50 /element put +dup 21 /greaterequal put +dup 0 /minus put +dup 54 /negationslash put +dup 26 /propersubset put +dup 27 /propersuperset put +dup 91 /union put +readonly def +/FontBBox{-29 -960 1116 775}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª/ ùÈ­éÙÀX¸~›id}S5žQ!gt¤ê¡âµŽÃkÑJc;•r´NŒ^ô¢¬µŠ ¦X€5¿.ØSyƒŠ– þ+'êIÃqV˜œ…â:¿r㚉#,Ùô#È ždèBZ£¾÷ÞÖ *R’*"7Ù¨ÝyÝçÓò¸—Ç=cîÍÚLIPsFŠ'Ñf> bôaöä +]fvÑÑ+QæAÁÔèâwdüOŒ¿[xìˆ"‡%ñÄS¦xõŠ~{×ÊpÒˆë¡õ|O +¿BÅÝÐÄÇâ/€G¾LÈã3hûÈ+N–g0Þ3²æ¸ËjäU±¯1‡ÿè¥~ø¦akœ·”Dìzq§»=÷U}.K¶˜Y碌à ֻ1?ÔÙCùŸ NÌŠ2Muµö–¸hŽë/åí4ÌÖÐG¤ã€m |Q]· +OaFþÁåÞ‹Åp4ò|ð¹ä¿dÒŠ=“fH1y¤äw&a%sA­Ï*¾ç'ËÞÇV¶jÓ_߶ã{ݬ¦ƒpæ@ã$lð÷¤c”¥+^4±á®P *óÏÕ$•²¾hš0P¤TŠpÓÿÏêÚ|Œ/‡‰dWÕVº£ÝQs&Å¥=*ÚìJa¾Bª´rÀ,°'‰£@jüe<ÃB½D! JÕ„Ü¥ÅYž·\?VVzÑ|½­ã!à£jIÒß5‘$ }+Ã>És$ß<}.Ìï)æ&:2&O‹Äò>mKOÔ‡1Aò5…Pã@© +xÔÅ@ØCõ¬ƒÛ1+,g­ØAªSpF¨Âñð+†ÿ: "[Ç .@€qÓ5t,GJ.ÔT'";ðÅ@_é,°Ã›Ù×·eã$<Æ8™•rÎP5• +=$AYÎ`-§‚C1$—ÉŒ› ¬èt©\jÑKŽÐ\D‘Ùµjé¥Ì?.™çB¨,ÆžVJÂZü(9ÂHêÜ¢³»FÂœY5› y…ÖÞSý)—“ÚÉs2¯‘0Ú¾‚œÉ61<œã&¬Cˆ.o¡øºŽÐc9€ýîWÄ”–dÞ\?G=€ÀV&’ôXŽ?Ye4ŸKw.e „º/›Ÿ ¦ +шC!Öý«î¶ ª¼Ž§—%¦ÎåvyúÈ|Ë–Rë¸ëÑâë©ötÆÜ/I¿EVÍà5AlÑ·XÊ!Í-íÀøëvEê šQðÀ6”„æNûh›†-´#iÄwGЀÑO§·JÎ}¶ÊùÊÚò™¨‘K¶ÛMéM¸P©¹Š‰VâUè2Ë8¿Fܶ]³Ü—ÒLÉj4mãpñ#Íx‹vlSŠQo]›#Õ#Í3ñ žw£Â¤kêÒÞɉQX|:©¦–RœíÄþ$´îÌ69¯ã ám¾lw=#,Z éIÝ3ZF«++Í–²¯+"ňUÙ-$°Â¶„„ÁÿH‰^yE3´„BP˜?ˆÍÛ«fñÕü&ÛIPS*rp©³7†Ös'® +ÿ²×Ȇn#à%¯ëMø/ndñ'ù¿J-ï‚Q͉ªãMË-½Z1*Šö|F:åµY¡´+çë‡ØLÂuhÂǖΨ°|Á¼Y—áûÝ÷é2HMšVîž:a§5qh~C{wW7x"”`›dþcF‰Øï ’£žV %v7”Mùv:MÄG=â@­ +ëQþkö隦ª%Α%Ö‹<«Ký‘ë˜q•&/ò—dÄÔ‘;òª…௽³Œ5kŽÅ¯‘m¾ÄÉS‰EmÏ€lÍ©m­'”´Š%ºÝ4q9ÞúгÉzJ™m¿A±!»±W‚KYf·¹ZÄK©BÝÛ +RËÙÍÂm*š¦­UÊÎÑxQ:ž7ëk5°2¥¿œ‘Ð6Ï8¢Mzê‡áñZ[Ålõô&éz#aE¿cB›Ê$=­95,ß?i2iCø‰ìy¢$ÿft0õwÓ" â¿,”¤š¾‹hCi‹@éÄ8q¹) @ç{Ý(µÍG}K¨U$¯ïÞ$ý””×0íÒWîc=^V_è0g¨‚’?Û]U +oSÔnp°#qþ·p®ÒßÐö Ó3˜6‹ÏÔ{·üÉ„ Ï``У6Õ–øA Ø榮ùå{ÀM°cþWHÄ.õvM Ÿ¨@ `4¦òÒdmY¯·i ×[¢ø¤co š‘ûàs™ÛÈ&ë2:Xx èÕÚös‘5Žd’’Ògû#tX…nnÿÓËçÿáU)ñ‰áG\ÁIìrš{òžÓc/\£]A„Ú•ÑcÐu0lª`¨ùUÇË©—¡Å—·dB“Ä€¾}aÆìawqòËq—¿ÈC…6¢"d›XÆÅ› ×bó]Ôì÷ðì««4ŪÁ͇ù.÷)~”ÑuÍÖïOÀ§íˆxË1$jœo &i•Ÿú I"aÐy\…Üv’¸*[Ñ5`Þmôzhê1íúíˆç…(lª -yµ‚ô£œþ[ gïI𬥦Påº,¾EHšJ¾z̘Z®Äoìõ¦k¹ûO3ƒè½ D&ò'à5÷îcÕCW¶…Å¡OKf^ÎTÕ/ñlíJ§ö±A­|6¬ þÿĬ`YüS@QÈ¿á†dEHºðÚ`ŒÙLä$Ý-bH¥3Ô•®þºSüMH7Iàb=Äae}ÆL*"Vô:­«ðÐá-õÂ<²þŸ7?†+›¸‡g„mJÛ +‚ „6Ùœ[°‚õœAñ#=š˜MdP'¬òV\'ÈÙC E4à« ©9\d{­ñ$eMqvƒ“¹¹bN6Õ«p–•E°È˜Œœ§$3c–ʨÇpRÆ]Z£<¥Ðt€ú*!'Ä›…À–4ÈÑÈa{K ¾£?J¾eRÓûraÀÎ&>6.å“ɯÜ*]Ì#ßO0¼ãË^ž»ÏN+k]üž¹¹1<«øÃÅ®ƒ*g×5]_$9Ï^6oMd§ÈGØð—âŸóèjô +endstream +endobj +528 0 obj << +/Type /FontDescriptor +/FontName /WYYAGH+CMSY10 +/Flags 4 +/FontBBox [-29 -960 1116 775] +/Ascent 750 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 85 +/XHeight 431 +/CharSet (/Rfractur/backslash/bar/braceleft/braceright/bullet/element/greaterequal/minus/negationslash/propersubset/propersuperset/union) +/FontFile 527 0 R +>> endobj +529 0 obj << +/Length1 745 +/Length2 581 +/Length3 0 +/Length 1326 +>> +stream +%!PS-AdobeFont-1.1: CMSY7 1.0 +%%CreationDate: 1991 Aug 15 07:21:52 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY7) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.035 def +/isFixedPitch false def +end readonly def +/FontName /PXBGHL+CMSY7 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /minus put +readonly def +/FontBBox{-15 -951 1252 782}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª/ ùÈ­éÙÀX¸~›id}S5žQ!gt¤ê¡âµŽÃkÑJc;•r´NŒ^ô¢¬µŠ ¦X€5¿.ØSyƒŠ– þ+'êIÃqV˜œ…â:¿r㚉#,Ùô#È ždèBZ£¾÷ÞÖ *R’*"7Ù¨ÝyÝçÒQI¿e©ŒŸâ±ÏrZp(IJÿæ8»¦±#†Çó+£PÖ.¢Õ²NæÂÂCÍ;ý ð+[i-{'¾Ç)ïÜù/•ÝëPphÞ Qãì¸äCæ¾ +A¡øÈœ;Ák5,4C«of^¬^ Ä"ìüXáWeBL‘œ'>¢@¾{.•·‰Ñ'b[¼·>PPë.±Èåó­D§W­,Å=‘{ý #VX†î6ÐÃÝnz¢ïœÄÇñTž`šqÃÂæN&=`¥~Ÿ+GãH —Š¯c†Šê%Ú=TF{vÒð/€—Ò„ÚfwsjÏì «ñj›-$ô{f¶wˆkªxzØeµ÷Žä4ªG·°ñ$JB%ÜÆpý©"&âÆgÂ4B˜ÐW[ßx-–ƒnÊâ)Ç¡~(÷›'?òCE-¨…Š‹ËQeSO9–ËØÙsÛY=`lzü%ži$/neu¶…*­TVyæõBÜ¡ m¢MÉ/¿|ä‹8ySx{+Ë„s®Òߨ39ÓžôÝ:QXE'¬:“c *àÈœ?/úvwC±'káæHÕñ¨ +endstream +endobj +530 0 obj << +/Type /FontDescriptor +/FontName /PXBGHL+CMSY7 +/Flags 4 +/FontBBox [-15 -951 1252 782] +/Ascent 750 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 93 +/XHeight 431 +/CharSet (/minus) +/FontFile 529 0 R +>> endobj +531 0 obj << +/Length1 765 +/Length2 745 +/Length3 0 +/Length 1510 +>> +stream +%!PS-AdobeFont-1.1: CMSY8 1.0 +%%CreationDate: 1991 Aug 15 07:22:10 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMSY8) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.035 def +/isFixedPitch false def +end readonly def +/FontName /VOEFGO+CMSY8 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /minus put +dup 2 /multiply put +readonly def +/FontBBox{-30 -955 1185 779}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª/ ùÈ­éÙÀX¸~›id}S5žQ!gt¤ê¡âµŽÃkÑJc;•r´NŒ^ô¢¬µŠ ¦X€5¿.ØSyƒŠ– þ+'êIÃqV˜œ…â:¿r㚉#,Ùô#È ždèBZ£¾÷ÞÖ *R’*"7Ù¨ÝyÝçÕü! ƒž[Rß»*|]Ž~Š [êCÖ¨ía¯[#Ô™ Ø÷«jY!4ØJÀ‡¦Í€õÝÙÒ"¬±Â3&§ejc\J$Í2Ëýø62¸ª6áwõIaàUÇI¯òränÌFB/€Ð“(Hp%#ûÚÌO.,ÊÕñsü¾nݸt­%\ÕåÀøb9?Ë_\ œ<+µˆn6ü<Ì!H<:Á“HZFéÒ+× ”äÔZÝ›ñÌ\ö¥ VT¬ àÚ=µc±8@º0÷.Qã¼€cˆºø<}93’¼¼"wqÍË—n“0%0ú?Kï4—Ô0*H8JÎÿÁU”bê_`Ü$^„™Øæ—²À”ÎíònáZƒr ìæOïA«èݧ¾5ñNºÔ ï¿ÃÎ{IÖþu-œñcNhÜĨ)ËCnm ’ƒK@øÜŠ‚-Bͱ{R{›9éɖη I_õ€¢Ó&þ8Í"–Ýù´Ç9 ÞCsû Hë¤'³o ý)©ìGÕm ‹`ŠOÆ/=õ™‹=~?0å´ÑΕ,Õ~\Tö%ëÌqK)èor89îrø±Ù¥ŽõBÈPüYÜÔ¥‚ T¿lÕpë4űêãI=+r¼p%«Æ ˜À!í»<¸Ê'y1# – ¶Šõ0æwªy»rÈ(X¸|ãX> endobj +533 0 obj << +/Length1 1707 +/Length2 14054 +/Length3 0 +/Length 15761 +>> +stream +%!PS-AdobeFont-1.1: CMTI10 1.00B +%%CreationDate: 1992 Feb 19 19:56:16 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMTI10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CXHZKE+CMTI10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 65 /A put +dup 66 /B put +dup 67 /C put +dup 68 /D put +dup 69 /E put +dup 70 /F put +dup 71 /G put +dup 72 /H put +dup 73 /I put +dup 75 /K put +dup 76 /L put +dup 77 /M put +dup 78 /N put +dup 79 /O put +dup 80 /P put +dup 82 /R put +dup 83 /S put +dup 84 /T put +dup 85 /U put +dup 86 /V put +dup 87 /W put +dup 97 /a put +dup 98 /b put +dup 99 /c put +dup 58 /colon put +dup 44 /comma put +dup 100 /d put +dup 101 /e put +dup 56 /eight put +dup 102 /f put +dup 11 /ff put +dup 12 /fi put +dup 53 /five put +dup 52 /four put +dup 103 /g put +dup 104 /h put +dup 45 /hyphen put +dup 105 /i put +dup 106 /j put +dup 107 /k put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 57 /nine put +dup 111 /o put +dup 49 /one put +dup 112 /p put +dup 40 /parenleft put +dup 41 /parenright put +dup 46 /period put +dup 113 /q put +dup 39 /quoteright put +dup 114 /r put +dup 115 /s put +dup 116 /t put +dup 51 /three put +dup 50 /two put +dup 117 /u put +dup 118 /v put +dup 119 /w put +dup 120 /x put +dup 121 /y put +dup 122 /z put +readonly def +/FontBBox{-163 -250 1146 969}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª)s™§„̾…´™;.ëÞ;Ôr·ÏTeò…ji«–íK­/df5à¶A|Ç{S/…ØÇ )¡šSïcë\^ÈŸÆÂm‰çÙäp·+ïÚ#õßv¾¯Lé17¢íŠ©×Öýó~kÍàÙ ˜d#å– +]Ÿ»L•eVèßËúìGo£oÙ¥È\šõþÙÂÝÒkÜ ™9‹ŸMÕ™=ü 0)xfáÍ +1›kÙXž9Hÿ°´ç!.ÉvÖP™ØN 7§§qÃjÒj7!ì6CžìàÉ«T´w.]Ê‚ÐÔ¬Çô/´“ª£¿JÖìá†1]¾œýËèÓè0'Í:ú Ôf¨èÊqdÏU³2úÔ4‚tÔ¡Ë?@Ë^g+‚ Øþ0ùð[ðõµÌ +K–îT•B/ºU¾é¿ÙFM˜zÄÒ7Âú† .UÎ{7‚£KÂ.=ãUÙ¯ñžI ŽC¸^ì訹…ƒ$ÒO7Ûù—-tæìG„rzÀ œJ:ÓÚ"½ia~ +ÚõT"ò*Ê^MÍMùüч¥f·ûf0EM ÖÆÅ +z8uÆËøìwió*?ÁÀrºÞÉw”Ôé5(*5nZœÙ«Ø +Ä4*RƒäX§&’RôT»dR³žÕM3m ’ŽœÑ«&­ƒë ž.ÇP¢d8;]»F |H!µòÉ%Té ã[-¿Í˜€šŽÉü‘Þž †E|p¬°Vëù$MÀ¥»ÔUá]n1€1RÏP°¿} +dó¡‚ +í¼.{®µIþQŒ7™Æà‰µÕÖ^N-+C ßú#̲]•\MØ…1 +pk2 +²\t,o)•2TúTÚ®æÔw‡}¼ÒŽšµv°êqý `×;líSãgs3c-ðh®ðþ}ûW9;Ú¤9¦¤Ã–ø`2©€ êá${}è;;ämò‰…˜ÿ^l¦•1'C*–~OÔÝ`ÖäšXúUnó0‘xµ|§cÏɾì'iD½ê%W‰ïNÍáêCîÛ•Uô.ÝÏ9®R*ÂÜR?nìLÊâW’·ˆs/[µÌç趡¡Û†±ê8ˆ>Hêµ@#íÙ»”çx î¥w­ªžf«}†´ ažyòBÏRæ¬ ®C1|P|Û'êŠrÔèÙæ,˜ß°IÇŠÑU`ÎD£•½kUQe ]A©ÕmÃ\‚"Gm¸‰F”O½ƒ À)2rIuW‚\ñSøâWäš,'Ëv¾ÙÏdy]eqXH0#~èZ²9À…±|pÅžäPæO£HŠ¯au`öÎþ©C—Ñï©àbÇ鬅<Êç=ï?t8é!½Ô-~œC0¯VŸØY-™¤ð…¢aht×`õrxK[3ÍÏ,Øðf @Ñ=Ê]ëw˜G2C#ÜŽŒ»þƒd‡ô5BYò¼I·Wu8]æµo\ Êà!~Å}SªJÿZÝ€$€ôªäc¼„ëýÈÖÔ̪÷…OàJŸ.ãkÓ0ÃFÁ¯‰)Lþ0GÉ´— MÚº45€óŸÙ’Èž‚““ŒÒ1–—•lÞÖ•ñ(4ô݃hæ‘8?CêLßÅ7ô¡ˆHã·H¢Ç·ähÂ+ À÷}$ âå¾DO.¥£ËÀZkJ[G¢tº×›å?T<´R¶Ê~s/Õ5+OSƒ6´5êPHMq¿ÒêhqýÏ|?"º¬x¦ÇVÓ4ï9"CœÒTaëüÒ¬p­c|¨¼Ì ÅCñ‡*B ;²t@þ^ä踦Lõ²-äL€©ËÞ œ>‰c»¶p˜À¬{ŽåÓönRÆ·¤½Ö›•WHÌWþÁŽÖ%Ї8Þ¸¨§Ôd +ë©7áßó®Pep¹_»¹=Š¢Rü‘(`9×p+²Ù+9+¦–†@dè˜W–„œ®‘¿óÍÐ4Ã…›5Á]—Ä•¬ÛóíB⯞ž¤ó¾dPkbÜ•ª¯æ'm4°v ¾šîLδS×*0\-ªÛJœUrƒ´ˆÎ%‡'–Túq~Í„\5ïËO?ƯûE6·¬Œ"ÑAØbe(§eSd87mäQ—ð—êïÑX7´I±R*tGPz%x¼¢¶!üvxJ+Þ#}ž€·’A|›?§­qIH¹ŒHÔÏje®6h2â†[›ˆãrò€"lŒË¦ü˜˜Ù1צþœöAf€Z§¢ÍGn懗¼Ü{“]Ô}%¶ÿ,ËÆŸ¹ñõ!@c©ÛÊÏ¿æ¹iù¡ Éðf&·ç€Œ]é ˆ ÑÔx¬¶RŽs;ò›¢AZÃÑ ³;åS:ÖÜÂÒ|$è8Hý*\”EîÏ•¥/Šž—ëîj=F~l’àRü›’¯ë‰!꿸dïq4*x(B®ù±¿"ZÑYâó4ãRN˜Þ óf²8«X»W^Úe¦Å„ïýiZNñ'Y¯ +Ç :1@ÉH9D0kq'S”§«·u‚‹¨|®#Η<º¸{¯8˜…Ýõt…Øž#DfQ_4¶­øpC±ß&òŠ‹ÔùÅD40<Äxì+´X²Ûð¼Ì%_o"UK zÄ¿•nûÒê­Vç{tÁ)ûí¬<ðhÛê|-¨´çÄQñV<$Ò¼½­ßÔY™gÓ²XqCx@µÞ…µ¾ÜñÉ2›Ð[¼¥›÷«¶ ƒ«9ðî‰c@êÊQ¾= œFeÛrlµZiúûþ× +ò  q5\ÊÑ‘pJyÓe3äuóq\»²IW‰Lf칯ª”ÒϯãW¾€X@•Ð ‚´Z¿—a물™È¾¼ô73Ÿ‹i×#ÒARl°ùóU þ¿ÏkêiR qÒllçŠ CD‘ŧ–_˜4-»qôþôã´xÜM’^C`¢Úå³Г76û»^h\^VÁ¦6^¢Ø¥Ô, é´Øä,ÅD¼GÓœ %“ÞÂOJn±MeeÔ1Ä}¤>à9o£‹ZÀ¨üBéÔ•œöñV4¹*š2÷t‘ë›ö +ÉÓ„/’SSËë¼—³%ž¦˜ÁÄÄ™whÂtB*úžmÂtÛå¸X>aO ˜Z»Öbž³‘âc&¨ŒsèYrw^&µe¿<ƒOŒrfŽáG#4‚U0†gÏÝ£ºÙCÔñW£ë‡8¿8òÅÉõÊå[Y¦|ÝsG¸n}³gíž‘NÑóùï .to²[P¦jFMü ×Æë…Zý°hFØ­üÓ).¾Â¯}·N€´£õ…ƒŽuL ‘û<ªSœp=ÝûB*½ùã|¤4Ï:(Û‹æÑO YºˆÂˆ„¢üíü+Õ^„*ûûë)y‹-/ÔÜíRw<—Bï¢ß8óÿûǹþAò¹ÏòYñëupèc_âëµÀ¼ÿ´E‚UÏQçÿÂÀðØ?¹)öòèé‡.†}D†Á" +«ì‹?·¶èÍÀÛAï6<’:õ5åÒ&¤¸…µ…Ö!¤2tóôu,]jÛ;@¼UÈ%­ÖÊ«%ár +=£:máq”ß=Æ̺Á¸#„¿ûƒ³€ÁÓÑ!ü¦#NtyôNkpÚŠÀ\º—‹õxàB»Þ±ú¡FNJꆒþ­fuáÁ £¾¦ý}UX%¯Û‹s“9+1+7W‚îð}Ã/m¹ú΋½Wk›ˆÓ@ Ô›ßŸ8`™hÚ±¨•üPˆ×XÇYþâ%eG«†DÒB¥Öü³Íøµˆ'PÀ7Ág`ì2v{¹ídLí$Z ³O§RíÍ X4€óMEñÿûp+¡Ûݲ@ôaT<4>˜»ÿÎ( 5Hì$!›òÞ(xJ­M P¸älºà†Ëy¾ëô€/6q¯c´è2Po§i²±½Ö¬c)ÎmX‡þŒ=^WèÊ“(Š“*ÖcKœe£žêqª^zyü¤áZ*¼:@¼ˆw¹øžö0ÿ€ù㢇³ˆ)_¬¼]?|v×l·üŽI·úÞy¸âüJ±;4Â5ÿ¢ü„ 71²:l¥.=êcôS(ä›CbÉ*â×Y³5¾²8µœ%DÜ<:TÛD$SÅÚ*o•=T5 Îç÷ÛòLÛ¾CÓ¶7ž•«‡;.tBÛ]þ±j;£vU‹C¿’zPÐÅaÿœF>v±b5tz7¡ÞHÔ‡µ—ÿ„žU¹Ž^¸ñÀ‘g@²§¬& +iOì{ˆ–¸ã£Ò&Æ3oñ‘ʇÒ1j6¯*‚˜37êAÙì^sº^P ®ŸIg0Ï6×Yþ»Ï:·—¸ ihî–¦\›öÐfoÖjH‚©ØNkÍ£$ ½xª+¿ é×ëX5‰Y)n¸Ù3N +aBxÌž¿Èû´é„?1š"^Ë ™È‹!Óý#°ó +Ô¡{“‚ëØ#ªöU¹Ó5À¼88®)[üïIÇ _7ö¤¹½àXø)n cá’M•tÔÄ#¿#Ž*)ä ê6iãêÁ’ÊÛ‹¡ åÚÛ‚Gb*×kßø°‚Ô»˜Qäç +Ì>’+9û ×’™ï+äH¹\¯ã†ãšüóño;Â.ž7`Žõ+He¤ì ·Í'mg>å".‹V7É!å=»€ó°ÿþ¿qýãýšlÝ7„ξìÒ»¾>äYÑ@„P\(IÜŸ1’“€ó:°ËÁ ÌöÃ9¿¥ý>í¨IŠsÿ†³ å„ ¯~ÏŠWuSŪ®|a+â‚¥K¥?öê 'jvà‘€6¬;Å`xþ(ÓT>Ôš6aH4 ¤Óˆ0Kœ[“ Ú(uã¾ÖO\hT3^ýývÆ-ü4’°@™Wï؈ÎqWq“¬Á)û'ìü4™í¾}¦PŒÍ¾€Òþ‘õâêï?˜/DÙù-}R~ gœ}³˜¿ÍBÈàÚéVhôٽǻ²%#ámO}6%U€B#lÛ˜§£Tš_•p[MÎ9¥Î‚MGr +ßgü1@NF!vÓ>ýLK¿²“ë`Š¨0Õ%3¹–ìSy)RXô˜0B7BK`3[eÆ{ÁÊcš!ì ×/ØTÝÖÞ[,S QlþÑ¢Ü*ö*ã™ÂOø[, ãø£¶øÇ^ã1ãT2^] îŸÊà.[„Lýy—öáPâ-H¬YxÍ3:ÿ…X@«™>x„惼Q`»Óº´ö~¤wrĵ½‚œ:õoŸ’¢0X‚8ªG9ͬõb®•)$nW­ «ëL‘4ÕÒ~˜ˆT-+A@Õg~»²™i ýQ J%|ë}¢€0'A»âzøUؼD·›ËD`I×`°Á$~t=rkí醌yl;h?róǬäõß“giòºGê)}ß+ @cdo] š“ bˆꄆì™Ö_×t³Œ0¸Ç£ŠøŒâÙ:OÎÕ¦"‚˜9\Iž.l«á°Ä’­Ôþ^&“¬TB¶@ˆ–öÔȄé§^Ùئ93Ì’£®6ÜÜý‚±åi"þSa̺1¡à +k$6@i0f.0=C5pð€÷bR n)ªüíÃô@—ŠG+ŸÚooWçܳÉŽ»eh5/H-š|ÝÒ˜¥z• /aÛ— 9ÏÅAëÚá~˜ï?þf<'«fœKõ–H7Œ(þ@Q 6–’?ïå¤6{ƒL(§+¦zDxôk=í¦aÌO²cöý* œ¼mÔâSäïý‡0 +KŽÖNÍyÚÒkH˜Êö´räx¶’Tc¢ŸÈ[šq ý9”šãæ%]Œi'Û¢äß R´ Š3ûr#SÎœBç}ú‚ZÛö•Q•¾6ñûH +Ñ›C£Ñ¼µT*§·±ƒ¾B£ÅLºàÙν¥èRô$?:¤R’*YP×m…ðÿybï‰í³&×Ëa‰(5±ú8Ò—ëÞp—ƒœÝþ1ÑÊ&`D+Ó'$e±( ŸŸ¾¯{šý:—š\.@Š#‚Ý\ÍЙs×ñù‘ï錃% £u;G‘Y% ºa“ßG‚ Só¤ð/AUrß8ÉV½RZ?îùT†³ù›¸¬T™*hVÇr J FØÚ0 §ØŸº—êmÿÉ“á‚gÖX9w4ÕeðÚöŽ+.ÀøP…ž +¥L$Ô͇}Ãc¢Uïv”?“fòþn@SÆÏâB$ÂÏÏNÈc‰…ˆäö cî·5$—x“†²-3‡,¬>h…"1®‚ŸÐu{dxI†ÇIø·Œ!Ý ¶ã}ôA¶ÇÒ Í€„ qÆmp¤µ˜¹¡T ŒIS5‰áìæ¥Z`_H0“‘ª³ÑéÌöè#Ì…“;©±ÖJšëŠÊ˜Hv¶.TGž°,}H.œÿà*½XœÌi»žPøp ºnM^:}ifṲ̂_Oñªú—ÂhûEð¦h>qÜÜÎ{¢ÈL°ÈY©Rz Óñ8â/ ›sîÄ«9ïˆuâÂ&=³J¼¹¡ƒÜÑäóÖ¢¦8Ñø8ÚWo»,´)µµvöLÎ ¥…Ë„'­Ô]×^U<dk‹.—K^}õ@þd½ÒÖþúº:sF»K%+šlvŒ_ÁÉWÑI]kcý¬{WU%*¨†€EšÙŽG}.kAH0ß¾Óbq‘¯ûäF®)kðÕïèÒò6óh!C©6¥öÙ1ûEÊ3¦Ö*<¡æ¹Y «à +‰Ùî•yÆcü¡•¿$š•lšÈHa>1AP%u»'ezÎHÐÓ¢O„¡¨F-ùŽË÷¬ˆ4t¡›¹ÈíoPøZêùéö¶‘íšÜ‹w¸@Lû{ ÂË`bÂiKà äÝ]z6ž”¡2h ük.‡’2ÌÃ¥bÞ …¤ãØ‹ô˜"!Å2Ó`IƒùšeŠ¶(>9Â5[Ù>¯ÇY–Ùû…sl~:”©¦L§‚ÿ*Ùv³{ÍÅ€Œxbp(úoÔ°}(î0oÞCaïÑêsl,ÙŠX¤·éŒèÛfCÿ’²S}Nô\…ì1ëœ~C8ÏôAYù.F÷æÛt(p­¨*5x ÞJø€5˜ÞÃ1’òHÞv2 þ¯cž(mA¸«ÌM…Õ319…Ïõ;‡vP”6hC>O ⇽;+_ø%Kê»`ž03Œ!'#›: ³®ëwË$…1&‘i«NN1H%~K𡜫ß/ÔµÒZ¼Ójjá»@¯±ï,!ÜH¿!Êrä±Î&U×0ÚŽÞe”ã,7 Íÿëdûë / +‹ì7¸!c†p9 +g¾±i½2» ÊÿXî×0¥c(ÏÒ2&M ¯5×®Ê++ååu;«×6ŸsN$_8PÇÎ1òä—ÝäJhâ OJzTd.nþ E‰1^§‡k×ý|h ûvÆãK3xŽ'&8ÚöAÒT]Jý,x™{C…vµÙç`׃PûcäÞ‡²›pÈš–̆3½ŸZŸº=Ô¸}…ØÕlUï÷o쵉²›—ã< ÷Ñ’T›ø¦Æ«÷ ³$” U){ÎñXßØ0ç),ä +0=ôì×D)²§7UAëhU¤¾ˆØ„­ŠV`“i‹ŠTÛüÓÖ«D>ò  ÇJ½¡S'@­¾êßð&Ýߨý„6æ ÕÊéY§Q’.¤s­ãFH±,È(Qýƒo>x›>AèuHIâþ£pŽ…ˆ7õÓ!2Êa®¹T†8 è.Ïg{ò}DÀ›¤¶|ÅqfŽl€ôô×>ÆÅDw_’¥À ðZù#Æç5GÖZªÕ~úcÁ%7Þ©Z!~a^ÏgÜטÐÚH/ºë+1}µ3=^Ä1¤~(0{;2€D6¶ŠJˆhÃïEµTclFwÛ“rÎ÷TTÜûWg1YyÀŒ´êíqEƒá5ÁaËð#/!OÓæ¥o¥}º0Ô…R¹‰5Ʋvëtè@f“¦F +ë‡0‡ˆõÇéxâÆ œÑÊKqÐÎ4øÜeþPQ0}GÍ7ñÞã!uyIGe(m?¼Æã½%7–:ÝÓ„}Ü„•·ÏŒ’L9Æ1ÆLÏÎ׊-“;ÉeN¹è¿À«YдØô£[•NÈ7e•ˆ×…y„ùº;‚=JõTMû¨«žãa¦X"øõåç>1WÓ×àºÓNó]¬mâ×tL¹0TÇBKHÎòVbíÒí§ƒ¥eÌæ°at‰mˆ£”ªr§úá$ÍøvöñvGßnq׫^>ÅâÆ­ÕzmŽ,•××Ì<Ì_ÓÖyŒ†Û©k]¨ç¸è6[Š5À<ü°HÈ@=o÷ÿ„çˆ2ïqIÃ8údŒ:1—Rz¸ÖÏ÷+=ï R#។NÒUè\yàVx}¥˜;Áƒ[[{û-˜³8´ _À>¤ýwº…RgÎl½™dX«×ï¦sCC‡tWïÝù So9ѧŽ„>X¡o;_V—ÜÕ7x½¨îêÎú¹ïô  {»éhL,W½Ð(RÍ,ÇH`M~‘­I™-ádKy-ØBTwŸIfcÜØÞƒõ-œØ“u£Ïl½þȉ³Ãåœ÷×EX×ÎyÐÎÕ‰+ozPõþ:R,#— ÂÔüPçO~½±¶Âh©”Ÿ8™tVÒ~.ÍR¬ä¹ £ ¬E²?Á¢uAïëé >´ÀU¼,0'ò¿'Ñ7Sý¢è‡½a$üŽ3© ÷ŸÑOêSlOšF´ +ŠykBçû}L1ìÞË>ëÃÊ«ËGX£In%¯lCeõÎA.(Ý@£Y™jóFŠbåÍÒ–)ù%ž,µ¡`ˆ…RÛ‡°£3Ôë€÷óˆlÓj:•J@xÛPQ¶_Û® ÏŠ¤Ýâ·5ˆ'ñ\iEA³¹â<÷%·Å=¢…ÐÀR3džß¿0ŽôqѨï„~÷KómKõ˜ÒÆ0!eŽÊᄃgq4’ÆŒ: Ü¡.@¥©–·¬‰Èu%}ó  _—@æÈ|e^Š»cÏí˜|ª2•MVDþt€¹ÇÎ˜ï• QÊhCˆk-2 £¨ë®•{€LŽÙöÆᘠ%  lÔOºbvá>ÙúF|˜Ýµ\·RÞ3Û‡8"¯ ú$©’™+zâ|--2t¨áÏfá‘‹öuÐænE™üÕ׳»w,eÂ<0:=0Ô(ò—ÁâþƒàQ*|Lt.2ûƒš³*pë‘S,¹fë+%J[Ë‘ +½d'-+ˆ1|cŸu÷z`ü÷NóL ÉEŠäƒÊç›I»A|A+øî¢Ôÿ&\¦ê}À&yŽmë÷<æÆòµ‚Ï] _À×að0\¤#çŽùY4ÀŠ¬z „ÎÔ/—¦k2Ø]?i +Ž}–^¹/2˜mšoeÄâáÐuõži¬Ýšz\Ï9ýUŠ¨gÆŠ£|Æw¢mÐH]5ßÜ#žfW_òD.sh“fùÛ…ÎcÚ\ÿ˜ãe`0t™lŨG®.f¶ &ÕòÑ7úE‹šòÓ– Âÿî÷’ƒÇ:Àá²Û&_¼´?Š?Ö,› f®Éç<fêNªúc×Ç…U1ÙH]¤ï]¾±O=mÆü‹ÕÙ$„ØÇ°§gÕ0߇ @ˆõY­Tˆq\Øí½ÔÙ1á×4èµæŸäÊ?ù}¨²£jõ}¡Ã¼n…J 0¥ rŸGž ÛÿŒ­€Ž žf²GšVþ,TÜ·ñk}<úëÃ3Ze„`ƒoÊsP}ãÄË7N X†@geçÆê&|¶Ôë­  n穱QÑBâ+t«ù' ÿÂùí0Í }X•”£ïë¨8Yd4L#fÆE9äÞ/½rºÂ‹ŸD+¬š08,”ï_ZQ1ÈèÝ]™æQbþxè©ëMÔSuëIÎÄC/•…*(¬TÖ ŽÆÄ&(/´ØjõËjæýNb8òûU çµ'«S­hVÆnj[‡œåÚ>ÜâÊC5€ð·åῪh«š ÏcX_H‰;€Þ ’Éh8'FíÍ<ëì!ÞL•äÿ±/ª§²±<ÜÛåÀÎÞxÍLVæ;ÿ¬^Ü–ö*”iéVø•I¿Æ]êä‚lÑdã°‰„5+@ +(o×ÀÙš›DWÜy¦Þ0‘°~†îSwtº3BaYi>m%ÝŠ| IÉîO’°©e×Z…zÚ¹— ¾Ô Fp™Ù=¬7© ŠõòΡ…Öoo×IÉ‘¦)-÷lV²Áüèw› ÏͨÚt™U¹ 15I²+O¥ÉýlJULæPà ì>¬Ò6еÿêAì˜G܈=òÅõIyF´€° ®Á-½êAé\g[&îÑ¿>± +S6éÔ'ÿ0<¾ïDCA  «Ú7êWé¶1À‹pb¦ÏS +­7èÐ¥>Ä€™gwJͬ–¶™îŒâÛú îm ó¶¯yô¬RbáyðÂ͹RõWØwòxþëÁ«¬3ø"RàX>$·˜ÏYOfVM}HO;×sH_—?~lRRŠ´­ô½'Òê⊓ÏSîÔËr—7oW½ëD™D_ZÚdO]he ¤gâÈ@¾brsÞªYŒÑðIØpíΘQjyÊsµähxâd$è'ØÝó)ˆËÚ˜Í6«ÇöB¶7QðŽh¥(‹×H™ÿAV™Dü}©åtG8Éì-BWiÆ–vì½Ï+ç•åpy7èò…fªé-O —xGÚCS›¸U=·öFü7…ÜjëW-›ô(" ÕÔH,éùÊØç-mð¡Ctùç\³[yî*«z7èuhDº™ïÕGzf ùλºÃgðŽ÷>Ž%ÔÁ„Эe5`SHm•½’XîfHbìàÈÊ!Î`¾çNæÇjߥU,ä:&z€¨Rƒ€%-ïÜ)â¾³®þb“"6ì§roð_ÔèpÃãã9Ûó6bç¬Nï6,øÀµ3Ï(êü$1ЃÖòz"d’ñ»Î¶H ‘(Ðî2—ªötyq ø’ƒ{ÍIfç1¬(}ËÑ=!–Œ¢á®t.¢Í“,»kQ2óî˜]€¹ø=êšÕ”‡±Û-¡PjX‘¬F0ÇûçŽÂu¾ê«€"xaB•+üŒ&è˜1žŸÊ,ˆÊšYuÄܸ¤–øÓè¸þ¯³‚Oý£ÚÌÏý;S@ꦎÇU÷:xÞ§¥GõN_ 2ùÑþÆ>­íõl^$U~]gÀØ$žiù8þSóÈ›k|–[ð2‚YÀÌY›^2T©1lƒÍÔ™ÁVÎnºs„õzg ‘ÙÑþéþ1BôI¥uÖÓ'g=Ì+Øxôh”X Ó’¬UUô¸|¨È¦vC tKg,æŸüÌ”²v+7d¡ÁæùYG%Ó€þXØÀÖ‚æ“ÁÎ…ÿÕ`¤)*z¯¢õÅçDöXQšö˺^G¬êÍ(f5¼Ë N6i{¦Â”«ú·ºÃà–ãMý™B†¶”Ý3'˜lÓÖ}“ë6Ÿ7›šŸ, QÐ9§L“ÁG¸°^¥¿—/Ë4†ò?µk{ÒN9tèBˆ§g5†Ü)ÅSé0ŠÞMq}c_§yâ­Lþú Žú JU‡éë9}לÁ‚ðŒÓÜ +œÓYOŽÝ™AÜ€ÆK¥|òQc@¾'=•ôikýhïÚ¬ HyÄžã üdÔEÎêà¡6°öã¸N¡Y¬wÉp¦ë"rAn@W(·†­k;Øफ़8èzev“Ý6ºýà4NÆ<#}¤dG›ˆIúÜw„‚¡højÔrsîóRY4½gõ?ò’ËËN9Ùî¤Òr¶¨Î18“—YBz„ÁãuQça6ò•¬ïö6~¡¶ ­ º? FŽŒ\:'Ù˜ôþ^_ôÄŒá_ñP¨ýç°‰NÒéÆñœŽLè#«òšh¬®¨#Š:ôÅ€Þ`vüñPfÑw1xaeh—pý¿3Bkx±èëz”§E#8s}‚)`Öšò¤×H˜ECaù ’Ý0 Ñüb8g¶ªÙ"Þ|òü·ÿ‡”× ‚×â7FàÓyø£±b™–\G‹Ç*ë®eÓ5_Š‡¼g“‚óÂ9²%^AÃWJ]‰‘èѶ†<²÷î¯'£ÿ¹ö6&35×µý˜ºöŸyÅF´´ìs×Jq‘²š‹¾ø3±š¯´DøÏ&™¹°ÿÒzZ›%põBØ{P>Í”¦ƒÑ¼¿V¹Ù™»4"’ÇèVM£LöWcä]R2ŒÐ‘Ôºª×J¥UW‡KoKw‡Sî.»ÈNoGÁfF¤HÁ«+y&Ê&d8·1ÓÏÒ‘¿m†â0G#¥fÓ&Õn,¢©ÉŒÍ1 F{'hLƒß¾~°ò¯º¦ÜÆþAöÚò.;Uømn®£gÜB«ü~²WHø‰`{…g´ØíËPŸkkÛŽbù+š/Š¼Á-ü‡Ú)»u¨îÃ;MÖÊÀ Ø@X:‡íÈÄ@“ž Bv¼Xëú¥=ïråò¦rZI«tO„ü„Í—M“ë~ÉW|28æ†Ð½UÅÁ¯8BÖÃC (')yÚKßÆä@òœ3ëøû*:ˆþ Ò¶D³§¼ú1¼•f’ÉdLÙï¨üùÐ<½ uù9C¸bºúCºMmEJ…u,%˜MKO’vF4œN¤;1½ ËkWE»í[.`™-Gª˜S7¥ƒÉÀ¹/ïEÖKU óGr,µ*3·ú×uh|É`±âúÜó¼#Zí»I¿K½(º„Ý5¤6éoÜOnä\¦¥×º ó™Èu”³ü†¼hYL<æ*>½O¤]önyá×ÌúÄöá‰+$&à…Ìmíß!ùúµ–xܸrŒ‘NªŒã‡¡[[×|¹‘®µG-Ö.WÛÃêHÚúD~ê¤Þå0ƒ®zÎË"-EÝ[ýõÏs¦ñÇ[hŽ—uûêÆ°<ÂŒÅÕ,³C¾eÏ“ÙQŠuæ•¥²n`yåÏ82ñO‚ÙekïKߪÊÜ2ñÉoÖ™0£äj–ªÅ Xç +›? ßŸ7Sv„îý…àºkŠœ‡e,霱(€Ì‚cÌ\BU¾¥íÂO,×»à?Çñš)rÆÍ•,a¾@í5«XÉ*Ë¢¯«L Ö{ËÁÿþ` 7ºƒênmu¨=”.˜ÎR˜n¬Mzáu…»j!ÄsàQ4£ÛŒªò—m–â³\ŸD‰€ëA¡½˜$¿ù¬sú\«1>-òê%¶ÌÀˆoÇ_AÐ^@h´Þ•›g³üzÒ3¸.«/¡ýe2„gNXÕ3®ÿ7àûZh1ŒžÂ§ÿ{l]2­îÄ€þ¼ñÇGýXWc¬~aPtFNFÖ‡9Ž Óâ[mz¶‰¬Êl ¬9]b±”â¦Dg×ëÀh3¥ç^¡6ºá©d»6CŠ@±µnð v~§Ü’#œNïµM©ßg?²}"&;ÌE.”_¤/øz/XÊY’Jòu—r¶77‰ÇÊvú¥’_'T-…pϵIÞÕÕ‹Ö°) 0¿nÎŒGè:ëáͧŸ BèXvE|¿)£d‡_iÑYÂ+è³€pgo=›pLb©É¶24«¹tê¬ ¯ñýæ¼v5C8[^C°/Zÿ;?q¨/AÒE’!|á\Ï%æÍ Rw0{\ú÷Ÿi(|„5ÎSFos55gCżRïÍ*Ü‚³v|ÝøäANàrO-;þ¢sн‹ÆrrÊL‰Êñ[[v«Þè.ÛAÍP\}8ø—\ ¸\÷|OTGÇ–äÆ9Že²7gt9 + d¢¶Á¨9ÙX^a—wÿ.4$-ÍìPý¯‘²ÊÁþíô{[±%§f¥f3¬ÛÅÁ²ŒzÀæ)}iÍL6z¼‚c?:±|:C÷‘”åã¢-ÁÿéJš¹íu¤é–Í2‹äÖ×;ì%Pþ¨­)…ýag +qúûâ¦ie3¾,UT_Ü!ãOöë$¾!4ÍjgP½B Š&aòàÖ=k_k+8¼­†ùùÂxd¸‚‚ í,Ž jã|¦×îä? ù%¼ÃÙQi`³P× : m8cÝA€ó M‚ßvÂãí€2Oý@Û-iz¸ y'& ü7Ðÿëˆ ùn +ç´rƒPýu3O ¶þàãÀÚ>B$@¨C†ÁA¾$Ð*‘0¯ÉúÇ+;õöŽý"¦výw1¶n©D<ªÛ£ëÔ9RZµYC‘‘«{e£>u¶¬ŠXYQ™ã‡c¾wϯ§n'd¦Ò¯LQ°ö_Ü Ø­Œ¥ùH–kš¥~1Œ“?IJ©}ï°æ®kÚx+Û†šK¡L¹óš¦C¸Æè(K…+ÇíüBg”\…”eÅ €åɽ·½þò—j.¸9ß)ÔyŠ³ûß7×Ý@ì¢ç›l‘¼«Ö£7½Tý¶‘»ä£‰ù›V„|‡p«:Ø}îŽã\Žü·8f:ؾ¶@;T§à@QnMSÓ@{;W®rN,©>žÌ÷"CÖ*„]1»ÿ‹i°¿™Ó„º|ÍXp¯Eý—€ãÁƒÝç%€µÔ lš‹A(¾Ez)‚U•¨rh=66¬'­‘Äl•6ö[4ÕàÊ.cÝtª†äq6˜êvfwŸ½êGÜoq +œˆ3ôh±æþä6·¿÷o n‡s.£##{>M%&|ÈŸ\ÅØ8;ï@PšØÉñ@8$Cr‡?FÀœol÷|+¬ÏéãºYOøÌ¡%ê(RÿV/ùQ†«Þk¥Ûÿ”ðÒ¼è,* ;Ÿe\Kü=.b&¥õà©Û+lÊt8˜EnT•M´QIzµXLjÆÈGSžåµ;ÅéI¹\@W.õ´ý ¾ñg4^òpw|YKƒÝF"ƒõN&á)ôG1‘íhq`NÇ(¨Y‘}Ú€+÷wM“€Ç?Pçáo]{Þ&ý2æþÜqR§†—ˆ(º5ZIp"y„vÙSDmhé{´Räúº¯íL.kSõ‹´ªê„WŽÝe8z Þm) Æ0ç*L¯þ³¸c-í/xÑæù4|m'*Ðû•]Öè¾"à¢\ìçdÃ…‘#’Žaï¥ÿy û2¾iÌÈ1h#¬uœ×g‡ËHdÇ^vÆâ$±HM–—‹æà»H›˜½x8ù‰±·€Íu/ñ44{ìºXmìÝ:×!S噓yÑÐO¥tŒâ^oT,òÌmÍBziÐ! D—ñ¹À­[@Ls+“žä-§ØpºØèZtøþ}4ܪLÝ^"M²×rgÎH—+ïýÙ[EŽ š]yÆ’ª—Ž=ÐJd”ýQt >×'Gv±À@Ú=²Ù¼KexÇ! 1¢Õ½×ükû‰xûh + +Ìe%žr¦sp{œ<Ëü&¶6ÌKÌç¾’xÊ$ðk µª÷tÔµˆA~ÄËjœÊ3Çp8" -À4eF÷M­Ó†ƒ*;ƒãü#?HäŒn×pŽo×Oq:ëŽy»’ ·Y9«,ÃÃßzÿ9¸îÒA{úÒ}V(ñNá”;ÕÚ‚OÜ$ƈú†l¼¨,$ûðÉ„ïË$×Õ®ׂkªÉM­%õá^é–4VPÏŒ‘ïàĉf»mÌ!Étëyû ‘øó]‡6²HáËÓ8ºÜ”ÊÀ¥N• áèõÁÏDdv"”C¹Oãî]]dÄPlWötôLPÃòÆp\ôr¶PÇ4˜ÒˆË2ÏvA †Ä(ªª¤É“_´ÇÎËM{9ü~ò3¬xûƒørìR9FgÜ™–ì3¤q5…Çgvçö­¹×ÍRƒ.îzQ6…üš˜ËÊíÆ>‚K‰VéfcKÙB6þT’çIÆNÆ%ů /\€¹97¢[ꄼÃM8eîì"ªÿŠïŒ|$ÜÑ«6ƒz‹˜xö ÅÊå×L⦲ü÷1®± À¡¢6§J2}°¨ÆpÕ_yÁW9rŠy‚Ør+‚kø@¯iœ¼­ÛïË=ɾ׸H­QÜO2'G‰[ÐS~ΫOn›ä%‡ wTí‘SÌ—ê—"´:Ýó %GSìŽÛ03Ö(øÂO†ÃùÜ£ŒhÔ®ðÓœõÌAOáúŠ'Ò…™ }ÃMóÞu)曜^÷ùìº2=+gé":¢cÚŽþ“ÇeYžÛ—ñì¹ûn™IƒS Çv¿Éü‡(7ù’(›ÓIUBf²¡ëv›`N™¦pÄ+†—È% €Ò5\O ãÐ< Ø$ö»Éf +ó©°l¤ú¾ˆÌ,Æ´A[Ȧþj)d6Dø#]Í<1OÂ&åìÁñv'^²à§…€ßp +endstream +endobj +534 0 obj << +/Type /FontDescriptor +/FontName /CXHZKE+CMTI10 +/Flags 4 +/FontBBox [-163 -250 1146 969] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 68 +/XHeight 431 +/CharSet (/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/R/S/T/U/V/W/a/b/c/colon/comma/d/e/eight/f/ff/fi/five/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/quoteright/r/s/t/three/two/u/v/w/x/y/z) +/FontFile 533 0 R +>> endobj +535 0 obj << +/Length1 1144 +/Length2 6097 +/Length3 0 +/Length 7241 +>> +stream +%!PS-AdobeFont-1.1: CMTI12 1.0 +%%CreationDate: 1991 Aug 18 21:06:53 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.0) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMTI12) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /BABWJL+CMTI12 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 65 /A put +dup 66 /B put +dup 68 /D put +dup 76 /L put +dup 77 /M put +dup 80 /P put +dup 83 /S put +dup 97 /a put +dup 98 /b put +dup 99 /c put +dup 100 /d put +dup 101 /e put +dup 102 /f put +dup 103 /g put +dup 104 /h put +dup 45 /hyphen put +dup 105 /i put +dup 107 /k put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 111 /o put +dup 112 /p put +dup 114 /r put +dup 115 /s put +dup 116 /t put +dup 117 /u put +dup 118 /v put +readonly def +/FontBBox{-36 -251 1103 750}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª)s™§„̾…´™;.ëÞ;Ôr·ÏTeò…ji«–íK­/df5à¶A|Ç{S/…ØÇ )¡šSïcë\^ÈŸÆÂm‰çÙäp·+ïÚ#õßv¾¯Lé17¢íŠ©×Öýó~kÍàÙ ˜d#å– +]Ÿ»L•eVèßËúìGo£oÙ¥È\šõþÙÂÝÒkÜ ™9‹ŸMÖ¨ð[G¯•ï(©ÅaÛܘÄ|õRPóÛ忲è>f·ù}Ý|àî·Zx½’'¿5+jÛŠÅz3þÔïp…±â¹3Þ`/÷gìÕtJã8¯) &÷Óh¬o%̸‚Û{sCVa’½h~I"Y‚‚0'Ó¶g; ·§æ€¦‚¹€#Óœ®¥Õ¸g ¦lŠ ÛÈ;–¨O6¬jy·g½Ìà +H@nÎ… +l‰²þÜ2qÂŽwÞ—Me]õÿ}Aíþq}’Šˆ_o¦ÏäÒÀ€Ž“yà–íÑ£ºg€+JIua; 5m˺ÔڳŞp¤pXõ!cÑsäÑø|:Jç#¢<ýy†üO½9“Géõ”cTàØ`üDjÿ DõÚ'Ìw|–­³ˆÑè5ÝËá#ûQvy¹·ïin QQ âdpAÀO¨ZH󬧨>5Õº )j¼YNÊ,²~’þÙ[Y\!å¿ §$ÔaË7{Þ_¹Œ-l ÉŒ@ƒéec!¿ÄEÍoÌ-ïâ}ÖúгR#±§ÖwŸ9Ç“O,;rЮmŽ;Ôxx]®§JøÇTƒ·eSë‘ZÀ_hîTÂì.iQZZ,álÑѽŒãf,”ΡYï§ñ0€0® WmNÒ²@*W.”2Pz¾%(~²¾ð|T£á©[ŠY7€Y@å—6‡òRI…‰µH®zÙÆu 9ˆx@’M·ÁˈY?Ölz"V +Ïyü³wN‘l¡|Ê‹K°¼º}amÝ¥ÍmÐ¥4•E)ö?w2?!‘5éÎeµoá©}¬ï¦8—úŽ°3,˜M㪉°8/­þ­qÇJé#ùÂTî]ÀÅgJjÜ\a£í—§ã3‡UÉxªs 2dÄ…O‰¨¶6MãYy,“}2žæˆCÚµÏ?Î|\ì,Äg'Žêmÿó¼˜ð·:ngÿö¾7X n¥ÆsVÍJ.·ùºÐ¶ÚŸHt‡ä”Ù>y#æd‹½Ü Ázþ^œ™J -ç?Ǹ^~˜:‚m-¹äÏûÙ G™èVÏŒlq•vç»Òî†OVÍýL6HÝÝ)Z²}kû%/{ËM…[˜¡Æ®û“,Þ³¼Ä£ìêJh6¶L;æþò9bÊJ—Í2(ƒƒ#ón9‡ÈÐ8Ý‚gPãÎü÷åOïÀ‹HÌAÕ¿—‘g„®¡Å4¹úÔŒ§J¤m7‹R.IõÍ7-¾‹Ìàí‚ÒÆõaª +7§°^8¥óA[Q«ú%[ò&?y¥.ø6Î=Þ#1ÁLšpÞ—U»ÆboûÇá80ΈzÀ‡M¶éZL¶½w Ýd¾GãôI—–c”Ë2qxø6uÛ“ ÷߈w‹¬Q?Jc³”9ÝÙûÑÈȳ6÷ù!¸Õt [jí„¡§x +j×4Óq©š!n£ÌõXû·;T:¹£4(ƒyÌs’©ý”lÄAœ­$5úëYc;UTž¸¥„~=*I™>7ä!Qø³äêݵۙ”®ãS…4 ®°7 ˆ·è0ÿ­*ÿ:æ9Ùüž¯….›0ïüÒŠ¢ë­;ÖŒZ¼F¯È0._ý=üÊù +\ÇHo8žÁŒsüÿ“hd¯(5û™iÿhSüº»«m™TïÃÁUuÑÙá*Œ};íZŸò&3±„ê~ÜÚGö|µÇõxG뇊çÕÄ;ÝVÀ§ÂÔï|£§Hø„y*ÞŸš›'B¨åAn°€ûÐsQë${ +¨]»d RÞžö^kžk´—`_\iæ#–ÎÔk6S£ÌJ|‘”;ð0óè ~N˜Æ;BnÁž¶ˆî6A±[Û¹!!…Üû›òø‰Ui~„ž¬L Ø-µââyjLaWðð°¶ ™¥±¨IñˆãXý!å›ì{–pè•6™ÿ³KË®ÁGPyì@t·?C±,7ådi…¯õ Åú²ßG+×êYO¬†Ú ¦q»½K×ñ]ïãs䉸„L¦¼È¿CuŠö-íãÐwçéìz•Â‹5ÄRÅrç¼¼;ªx5£Æ5‡ó)ëaX§ÆÚê_oÊ@(>·b`œZÆYˆºø*0úG)bå?j>µ`D!M/¨ás¡zgÿîVÚ’nmœã»A"ÝÀÓÐ:õÙ\¦²á^FjE8§föAZÕï$Ô/ó!ÍJí pQ»|•mz‰Û×½½£~`«±ùÄ; RÉê/c”Œ°yœ_o.#¥±ÂÞåíZ%·._ "‘~ÞGzÀ3S{kU2di0î“Põg®WþÈLR9„¤t)gº_ü[H¬ÝR¤Fòü–ÅÓ7$£–Þé®U‹Jnf‘ƒà¿R:w­¼L•å«ž<ä#$iŠ¡·Riô…~Ë:Ø&©¾¶ïÖJÚz¹}L‚ÒÃDÇEq¸Ý[·ô+'ÝîÌð8E‡î$uÍé|æÃ@ýÌcçEN‰ó//±š è ¸ÍøÊæ×Ïg*]­Ì›i´Næñz>¾¡¾¬[Z–Ðf\HH[òŽ#“ÆÁ ¡^ûÚ‡¬Úsf)l®KcjÉàŒ¬ý^Íœ€Å¸+£«Z­×êå|1ʧ¥XÒ„]kB!@$r6çÀ1ïÖ/@b÷ŠìžÌ¹„]UŽ+Ÿ´"C “yÔJµÜ†^x‡óZù‘IhsŽ‚ ÞG½ÕüjwD0ØH<¥¦ÎÀE 13ËÁÑ.Á÷ +BÆÍÃļ…𒺎mi©±cõÞ»ŒÝ"5úÎÄpÐñAŽÿ »t&X–/_e‘Ø÷]´À¥T¢_…°>X/qwŽÃ¨ŒԨцë™!ÈÏdv/¬â–V²õza¾Úæa¶A256EËÆ>ùy|t.¬šYn¬y )IÇ¢§g”/!Žf˜c¤v.Ï¿[ñáKTãiïZØŽº½¯f+NÀä/©Gú&ÖUPd÷Ÿ öK“^½¶¤ ZDé78Î&óŸ˜$Þ³>›‡µ’ŽÄ4lŽìÿŸºf@8}© Rø/oï¶ÈôåçY®TÌç/r¨ÅÙ²òÊkÃ&(º'o‹Š¼è1‰ÿi¥$ºà{X¦Îdd‰Æ G +Á‰ÀCöç³£‘¸ZGÖ&ÝÛ«ÞŒÚ=Hx7@F¨ùa”ôçק#KçÆ^Ĭd¤õÅøÉæÔ½!šñi##{¦U,. QNSõOÄWÒù~¹:%d¿·^]X$°©.ÿhs³q*…vo $Çæ±fÜp7výÙmòÃb¯ñL…ï‹p+™9'°ðr&ìÄÆÞyÆgê`*©ÆN…É k<¢GŒ¼UÉô§¿«ÒãWÂá&åŠ\ïÞfÕÜ@b÷7—¢2>?(Åä8…äŒjwÿxäŽÁúû£ûÌ]ÐPsì@ì±vV/UÔ.åƚƬOkàËŽ›(ís-0‹|!Šé+Lf€ÛE4ÔeøgórZè‹H–Êc'„t 4Ú'ˆÌe³ÌŽ «ÊDíK±íëMdÛåÖÁ~äÓZÊ0ÜøL"ß;ö¯g/#éáÕæè½ ¿)æˆa ÿJ¤KõÿdO*õâµÐ¢:²ÓßXv O.ÂuôÇcbʓ⬫û–Òà²QÃ?+Q¢³üÍÚ—UZhC•ìðÇÈ'gÇ)§ÒŠäÚÆTµÅì¨jío¢ÿA;’ž´ƒªý¼¬’—ŽûoT.:Áô¡w0MD|šw9„´aífVŽ8Jøº“‹ñÕëå5 +¾0Œ†dY89ÑÛ äI">/úñ‘·ñ31X¡øó‰5hkPÎT)¹ |ˆßgº#ÐÑ–ŒRÃVH©³†8Ã϶iÆ“½¹ìùOªEë/Ö`Q# l·™·—1Lj/1@õÑ¥”»–ÑË|vÿ皢+H1¯}"ú?M_ +$vJ +•Jà^A™W8þØÍìÍ^ÁÚF+É%#ÙX,Í£ñÇ'„¹–Á‰Ðé3ü^­¼K`(Ævqi{>rKn@>÷}r†pM:º“ÌYN‚¥]—X»`ËéÎ2PæÂ1 D€_™D¥wŒSãe¤÷í+™™¹±¶ˆ3ò¤1|uæLÌôaqÊÐ:N¨Ê’\}–¡Â¨ë\4û¢Çþß"#Z™Ñóã¶Ã‰é~h) po:…ö‹h”ØÊO/„¬wúØ»ï×|­?‚½2SÕJ¢,ÇÚƒàƒ³¤«‡ÉdIš‡Ì"¢œÚoØ@húY~œg4!ñF7„<÷óxëÕÑçÜZ÷…>D“iŽ«r¡¼gñžÚ’ã#+Ý`"ÜwY; Q-76g§èfÞè¬øüùsG;m8&ü‡ >V»¬æêZ‹·P-Ú*ÊCüfgs#‰âÚ ¾?Þé•HÿÛWåWîEçe‰Þ a³Úf£<'>§S¤vj²÷ဟ-wDgZÇRß1["¨†U¬–Nsìä¶};f±ÆZj”ËU$çÃzòÌi‡P¹€ñÌ&¦:,.¾û§ÄçŒG4{NúuÞü©œhM'´•á»áÙþ´ä´ä”ɇø” +ßwÕˆQ… q~ÐG5â n °²ÍÐ=Ø”˜së±HÜJ¡,=)i²†G”»L;Žy° ŒÅ?zN›ûü3 +XÓ·º\C53Šež‘dBÔp5Ù´&‚n6C f÷|Ιú²ì¸ÆVÜ‹3+w6ã@¦«ÈY·£HDëO±b 1Îûšþ×”æÞ¼F>3—3Òçpì£Ë°ÃŸ½aÑH.XÛ¦ƒtœ€ÌcY’UõE˜R¸jd«m-C*ÜöÏ”Aì6¯”vŒ æSX…ó´€*1QPÓ1SŽ÷fÑ*:±bÿ´4\ò¹¿Î“gvß‹Ë~³etÇõ»¥ )³ 5)ëÅ|£ž³…Nè,ílæO¯±€þ‹+í,í2²Ñqâë¯=h¢S)ºö-í‹8…”Ÿ-SF|B^¶VM¢[áá!“ŽÒyÇ*§0)Å¢¤Ÿ|[÷^‚øªû¸ÉοbàZt.tƒí±ÕtšŸ†¡ò8ÎmDÍFgP³Blö}Ý'Ùšô¸Ù©?¸'ñœ Ä[{í9Žÿ[¾– ÞàßùeØDzöÌfŽÔ‰1® ¡qP•²ázž]¹í5D *ñ{Œyé¬(œé`öD̉Hž½öc=úL˜‡…F–cpæÙðÒ4æ +´wÔs™PJ)3õ*’½QÀ¢=ÑâëÏòÞòü Û6àZª*ql³o΄jw£±j¨z¹ägõ»sæ+;Yf¼r¢!Qþ@ $¬î“‘ ¸2y¢/ 6ÕYô1‡ƒŸÒzA¬ß3{×EÆ×EÇ +Œ¡þv²4Ø÷ä²®)ô8¶V¹^ (1*ÕŸ3aëUOÈñ'-ox¸ìÞ:CŒý®l€¥ Àн.'îÕîù8]àžÊÜœå=yÇ™´ÔYãè 4_”©Û*Í=ü + ±œ5Æí[å%€¨atÁ¸’¥æý…Lo*-g£ehAZéÔ€ÜåN~:öhÇ–Rã{>*_³Û›ñ®]Äewã³Â-£›#¼'úåU™N€Èvk›Û9%*\¶] ‹ÎÀ'ÕˆGÝ™±[*`Ð8HB".åÆJ·¦=uÓ&LöŽö{ªœxm‡Äd[­„1§˜°Üy h}ýÛâ’™—clœáÓ xî³P”7…%‚•„‹Óç<4éÏâÝ«žP䬪F…ÍAj™3È"¶™ Øm×8ZÚ}!ê•z÷(°ÅM ézµðCùìè°]½üka,¦îÿ¿«ã“[&*+¬ûS˜~Í9$@ÖJ.±9ð,!uàúÓ›^N‰ÍuOÇtl±¦fú%2u~#”²ÉÒš“?ã=ó¤¹*áâ½3{ÆÙhÕgyp‘#MRã ,ºÉÚ¿›Ãƒã[‹¼yz]žšSša½ã"ðàÄÌ1uÚÂêóýf©Þ^±Ç»Àäcš_¿Q$„GWèUI3¤†X}¯B×ÁùF1ÌÇáö³¼áO˜ ÈÁÜ„h¡»mò÷ܵ6ä ïa’U¨Êbfýï>]kÀ™=«ÿóO`L§ÍtR¶õÿdN>~évœ-Êw½C':‰x¦úd +6Â^j˜º¬s ¹u:(A–8vQTõ¶0ÐA¶„š‰’€fß(FNC»@jò”U’1™Å¾Ñò›P":µZCÊdÛÞ¸£mº¸$W¿çWØËÞ¶7—îÈ+X_÷K …yK5£R^ýÃX$‹œ1ÿV#ˆÒO2ÂÝ>™*絶Óêÿßph!Ýù‡¦{W.g~ƒØBX0tö"Ü!›»ÜŒIŽhªFŠäKpÙ0­ÆÒ\«¡i綀ú«^Uý¾&o¦¦e„G +Y|úa‰žfe‘F*¤ð}±Ã^ +˜GDðïÛ+„âY‡ž|jÅX…GíÛf- Z™ƒSRs Å« qñvî’[bõ=í¤áoˆ‘µrnúù´µüîËÓèãL€•RÛ¦DÆ7oìà0n*X<»ërS™¾â ^'×N‹”`8i›ÀÚ$)o/ŽŠ["8³4²Y®aØcßèqn T€¥2ç>³NÔ©åÜ9È Ȩ×ÀÛ•×ÆDsÒc¦žñµð +endstream +endobj +536 0 obj << +/Type /FontDescriptor +/FontName /BABWJL+CMTI12 +/Flags 4 +/FontBBox [-36 -251 1103 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 63 +/XHeight 431 +/CharSet (/A/B/D/L/M/P/S/a/b/c/d/e/f/g/h/hyphen/i/k/l/m/n/o/p/r/s/t/u/v) +/FontFile 535 0 R +>> endobj +537 0 obj << +/Length1 2088 +/Length2 13404 +/Length3 0 +/Length 15492 +>> +stream +%!PS-AdobeFont-1.1: CMTT10 1.00B +%%CreationDate: 1992 Apr 26 10:42:42 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMTT10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch true def +end readonly def +/FontName /FRDBIF+CMTT10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 65 /A put +dup 66 /B put +dup 67 /C put +dup 68 /D put +dup 69 /E put +dup 70 /F put +dup 71 /G put +dup 72 /H put +dup 73 /I put +dup 74 /J put +dup 75 /K put +dup 76 /L put +dup 77 /M put +dup 78 /N put +dup 79 /O put +dup 80 /P put +dup 81 /Q put +dup 82 /R put +dup 83 /S put +dup 84 /T put +dup 85 /U put +dup 86 /V put +dup 87 /W put +dup 88 /X put +dup 89 /Y put +dup 97 /a put +dup 126 /asciitilde put +dup 42 /asterisk put +dup 64 /at put +dup 98 /b put +dup 92 /backslash put +dup 91 /bracketleft put +dup 93 /bracketright put +dup 99 /c put +dup 58 /colon put +dup 44 /comma put +dup 100 /d put +dup 36 /dollar put +dup 101 /e put +dup 56 /eight put +dup 61 /equal put +dup 33 /exclam put +dup 102 /f put +dup 53 /five put +dup 52 /four put +dup 103 /g put +dup 62 /greater put +dup 104 /h put +dup 45 /hyphen put +dup 105 /i put +dup 106 /j put +dup 107 /k put +dup 108 /l put +dup 60 /less put +dup 109 /m put +dup 110 /n put +dup 57 /nine put +dup 111 /o put +dup 49 /one put +dup 112 /p put +dup 40 /parenleft put +dup 41 /parenright put +dup 46 /period put +dup 43 /plus put +dup 113 /q put +dup 34 /quotedbl put +dup 96 /quoteleft put +dup 39 /quoteright put +dup 114 /r put +dup 115 /s put +dup 59 /semicolon put +dup 47 /slash put +dup 116 /t put +dup 51 /three put +dup 50 /two put +dup 117 /u put +dup 95 /underscore put +dup 118 /v put +dup 119 /w put +dup 120 /x put +dup 121 /y put +dup 122 /z put +dup 48 /zero put +readonly def +/FontBBox{-4 -235 731 800}readonly def +currentdict end +currentfile eexec +ÙÖoc;„j—¶†©~E£Ðª*Bg·N³ÀÓ½ ƒØ‘l¦ÊKq*Þ²Xú«šææwüsŠ¼|QÍFïq˜Õþæv`æšz¹XòšMyåp"÷ƒë»¶Ôôì5OÒÞË©”Y¤ÅðÆë¡P(DTçÜ!Á[v´Á›„67XFšlU‡…²&3!R˜q©ˆ4‡Ýw”’Ýσ~j‡¸+Ûño¼uú£ “þ_ùc‹‚2BžØ·Ïj=‡š-8Ý\DgùÝŒ] ³¦¿/%b›®Á™®‹ÔºnÙ»÷Ú¿ÐáSº±ÁyÔüâ b*ÍçÇL(Ð9sWí«F Rë:E·¬Mks­ƒH…02§Eô”?›Oíe+ƒZ¤—'¨´zÿK΃µ¶…–оi‚·f Ë<àÂ,¬ÝE“òDÁNìZ|JÄ#’ø¼BWþ¯3ô¿ê‘ÿÏ—MÖìp¢ÄÁäó(¡ë%ä5%ûÀ~(Ì5öBk}Aêj „Ýc'S•¥ªéáÈ-8ŸÑ*!èi™yž$©”G.¡®w g ¾ ªÒJ0Ùn¥r +û;Òà¬Á¡ Kèr^×ã©o™x¼7p4Ù= C‘åyÃOùü#yËŸ[¾©â4éê¨9'nÀÙ*¹xÁxÛ/J}û¥oÖ¯†pë6OÞÊû¯e}hà1‘W6Ϋª‹¥À¬%(ƒi]I½‰«ïèiš +ãí…´ŠË""žb3™É=çÙ5sJÚÚzbÁÔJÕ>£[Wåеü H ä2"ÛŽüÕÓùº0O¨y9.à¼Àá¦t³¡ü:=×$E€Çª Æ]t¥þoŒ¿`% +Ì'EK¿—ÊKœƒ¥fr•‡RíK^yá†`vO^†ðžúŸv…òõ~ÈZwR‡³ iÞNMWçÐ3HS¢p+§T,q!s0Ï(عÆ;U–©´+3çÙ"”J8q3ƒÓdŠJñ`£°Èó7›¤7+âçêIªºu®îÅÝáØ¿hH<=!'€«¹TÌ–€2.«rá% +v ÈÚrdïä c[[ Hu,>’½àdÄ*,RŒŠ`8'ξðÉD À4ÚÙÁŸ²}³™½®â SYe8X|vŒ{ }"--Šó¦G<ÄÀÖÃàÛIŒëŒ›ÑÅÍHjPÚ¡ Ç}b†#UãòÒTâ|ÄBrŠ ®ÉÓñzéÎ2 1z,æ¶.R/½ó÷Ñ ‡…Nk³ß}~i‹±|Äk>dvIš—ª¼‡mD‰‰R•M&·ñ†OTÏ`Ü¡M”ßæõ aæXc¶:rNê…S؆–á'GSkˆ,¢åÛ Ä>a càÖµpeW¸1“J¾m=Ì6·dgae­Ÿ·R#¦¸l¶/`˜Nj5NENªžÄ~QJ—ÊÇSYm#ØÁM$Ú÷ã¨ÿéË_#ê8ˆÙ˜žw¶É 8H¿Èž2€'{’Gº× [þa%ºQ†E%1µº”l$ûks@+Ê¢·@óU³4ëx ®R3óO×ïè¿šš¦#0G ªL + G(‰‚»Å•!8BÂcÈÔzœí^‚¡í<õgC]µIœÑ’Œ$v´½Ô>4«8…ÇG‡`xÑ°N–¸çEò@ÌûPC@€aø9gà­.7ÒQ‡úŠÆ$à»hWøû¤J\àÚUÐ`Óz„¦§åõ›¿ ‰< )ÜÉQÅKÌtïX’cs[§)&:SÂ[Þ¬¢]+39n¨\q•¬¼“ñ¦xÖÒ†µ 3–Jœyó>Dg"^ݘ³X4dò{ åúãÓh‹s¿KA_”éË&ÁF05nÈ—=È:#Îãê7GÛ…Júp\ãSž=j¡é48Ä¿ìIÜgi'9óÓ)2+$„Þ¥ÃüÙ\±†Äš»Ò®'çÎÈ°;Ó cE§¿¾³ÜzŸMþhi®å#1“P]+îä>áûN\Úr®®€&fÁÄB¯ób­f›³šI) h[&€²]­Ú/òŠ4ù­¨Z¼¶îµãƒùYÐk0°&Àgv£r¶ï&×Ýtÿ¸AØgDÑ=Q:ÙÂt`{0ø¡Àa¬ª]ÇU$©qpÌH«ìs¢S@%%üÂ+tv ¶ñ Eÿu ð$ïåÇà`”óÐi ÷3SμƒúºíÃVÜï,Vw-a?vgª»)ô÷K}ko†üz|¯n«B 7mÆi”k 8Ø[ ô¡yôa ­·©6o!:zÙ~­üù4…]:1!jíôl0ËRlæ*aÓAƒÎ-d—~Ô‡ %Ë~ôØn†ó:†™ ‰•ÛqK‡V“Äs=ýÞ-0üчg#}œ$;ÿAKðhjP½ª#Ué^¡ÝŠí8¤u«¨fiåÒžæÄ6=]êŒL|ï¸\' Õ‹ŸOΓY©WîÛ}@<´~­c3zÃEc·!ï±ïN‘¥jÛHßÀÅß Ê7ägjð~Õ…Nø}Á¢8Áü`Lå–4_R±ã©ƒ`pJø[ +¦6>ùbE½©@¦ÝGG(è ›&¼â6GqL\#Ç¿{Ê'2¨:´ ›Ë¦•5§)!#øW:tÄ)à÷ï1¯%à“@¹gŽovØiåŸWv0Bƒ%‰±ºŽÀî¡ÁÁÕf©m§šLgìP$”Ô¾TGèhþÞ +†•þšwú|=ÏŠʼúh`@eã•’ýDË–­aûr&­|£[J ߀”ýæ ÷ìïO j®'þFÈÓÚ™3æu°ƒ¢Ð§¾¤;ôëÿLÆ/ËÛ7)]Ÿú4·ýAb r´3‰,Ì–‚ÒI’M’¥”¶.I‚v6Ãy,m²zɱ ~èúËŽþ»€MìT1ÈŒò©f…øÅ‹ƒŸªúèÏÍa¶ì€Ìíö:Šô¼/̼Ö±‘Èœ¨ 'sòÃ. +)G X’ÉÜJ»ñµÃytC÷KØ]˜n TM—ew©±–‡Ì%ša{zs:o óú;L“@ªð<¿tæ–"ÊC#6‘ÕñÒ– Vh8'yòo¶,c ‘/}bhM<Ë©ƒõ›K7_ˆœ2×9MX#›Ì†˜vXŽmíᘥsÉ|PÝ1ÂôŽð¬œÙæ£ibÅwKÔ‹¹ÙXŸÆ¤;^UCOqårò¬6ÂÈF3Ý>’u˜¡ÃýM‡0—§&á:óJ¦#n•ú©5„ºÑ‘çŽ}¸&»z÷]ö‚PÊ¡¯ð5#c¥°©Ü­´MØâ«ÍE³ôVIÃÅÊÄÚ„dè$”Šöt¯–ÆÇRIØQtñ,šž¿§½D%žö<³:´|–¬ÊÖîà(%IT 7ý©ñú1 ÅJLg3êþÝiˆnÔåîÂF&‚[Qáî^—rV_ŽWv4T=„°² †Æ°x\³é°@RªU©¢u'*äšþR¹.4¶€p˜»'‰·8G{ˆ)ů²ºùâÿ )¿µ“ þ/„¤On.¥ÃÑyQ+9i`ç¾·9£øܤ*ÛÝ–vWÈ¥ßÒ"ÞæÕ´–‘‰;Q$Ú¥óºWm˜‡Â2¶¶$o¶_YyÓ\Ø Ï;›S34zÍ2=õºQK+GOYéÂB©”µÒ¢ ó_qX¤û¬|’ïµù±½×.p|¼JôjšmÈÒ„ü´¤É¥¹ù î‘ÑèÊ´’õ.£7w«!J4°a]ùÖö¡¶o +BQ2^m¬ü†*(ïpð'™¥P3Zé8¾‡º«S¾cðJ*Tô§2d±P£”¾¢d µö…è5‡lÃúa*/òº Sßïõ:¹ÕS¯àíؾça¡| ÑÜìÝËÍ6ùÊ_ßf,üÈ—zÊ%Î3| Uù £zVÖ5áœð¤ªÓQ jq2# ®ÑT£_x$¤â¸[ii Šå4ªŒj¢£J>¥åËÇcÖ•:«"?uí[yŸÊF)Í•c²Oï;uQäë;·{ƒÅ£´Ëürú(­å¥½m„v/cøFxsíëGDXˆìmøß~ã¢ØÔ¶9,U‹nŒñÄ®CÝ’ùf™î>="#ŒˆøBÑÓ‰‘2%d¼h¶ ÿ—ÞºÒVH-„Q)?Š•<ÈÉ¿Þj®ýç‘æ°ŠñÌí03þ",éâƒ'?×æEœmôÇwß1ÜuHµ‡tu}|Õì–QBòWdàQf,á[Æ°¡š#dÃâ|°muVc è +‚™F%«ë†x‹íKØÆ•:8|s,È&D¹ŽQe;?ƒÝÖɯ` Þá^€÷é (4¶m/ ¾?p€µq6ûöváÛ£±èÔ}…¤®%=iLì÷[]ÓJ/2v×J8FÁËï¹ÇBá'ño®Û\÷ÓQJ”©jºÝïÿ.lGò×òt$À¤›*iT2´©ànÍ$ÇÌè]™KtËñîr‘ŽX¹Û!¨V}Âriçéܺ¸5D;sº_û>N¸òb8€ž¼ÄY¦opUN‘Uõ' >VàT ‚ùq˜ÁÝB1»g¯¼¤„oq»üùþé—uõhë¬~ö3tO3—÷iŽ4=«BÆ×ö]®Æ÷gì8D6ÿêæÔë©L|W~ÉK?LÔ\™ÞFç?iæ<;ŠJSýLS;.ax—ñ +-ë¹eÀS±lSV"57Q§:•]-¥ÁÞIÄo-pÁÌUWøÑb;âùÖv—$]ÓFBØ3Óó°ƒ!~ƒÅäªâäGS )+C£¥P&œDqÁ݇ËÏÜýÎrƒEUž9¾¬?£ºký•ÕÊÝÑr$F+Ö)¦ßU)ÙŽ{x…gc'¿*5Å‹õ>èäv‚•c6¶õÿÐÏl%d‚ê=³ÎÆÏáN(2ÂåçGz0ÃGcÏ÷€ÎÂ>cX±”Á—GRßî„*/̸Nkë @á›ãÑókv”md¾Ðdz¾žýj£ù¤ÍÂ.é Á˜;+ÚÎ×K³¼3íð§3öþ'ìI15˜DŠ÷ª%øh›èw"RŒ§Ø'Ü¿ÿ{y2uÿÁwtÒþ¸uÌØÎî‹æs[M͵ó3Eœ:!Þ±ªw­¹'ëG #{•ú¼-{¸\‹qróäQQî7i¶ŽýÙ¼yµ¢g‚e÷rt“Šéß@ß +Ã?⿪òÈù‹™_ÿa‰z®†Åàˆ-L7„G×BÞÄDRlµ¡AîxCO0bz¥ Õ ¼AQ·ìY6>×Q¤RhCVâ$ÈÐʽòú»ðO#U[§ÕüÌ!â*°Rá_³ÿj­ow“YW«¤½dvÇÕªžÉ;:ãönæL…Í4ˆç–Bòl©¸‘ää3¿MìjçóSCüL+úa¤Û²Âéä±à©ôÊbu,Ú]ôÅ cp²©ÌT§É‰‚!Äõÿ𛃌'₲"Ú)ú{³ÆËOK'yz0'Ôo|.®X0Íq ãΑæë’™b jB±/h‚3B”à9tŽCùåO©Ý`É¥Mi“Tè€Áhýboæ›R¾sŤ +q;–TÁøôxOÓÁ¨ÙÒƲµêXCpƒ:€¥$ ÏÑBnÒ +m¡”´¿Ñ#·+V+J>ìÂ7kس[¶¾ÑóýQ_’cÒgŒÄ.ó’N#µ“'õüì Hò¥¿±Ö]K8?>b¼Õ`‹¬¦[zªŽþæ/ç3 䮀o£'¹*›I¤ œ,Æ€hì8Z¨ä¹ñúnË.c¢·¹²Ìį׺ª®×™#l·K½²˜÷¬g. +Œ4ã#d Kñ€X–ê+jν Fû¶­ßO鉎•çä¶Vmß››x„ÕSìõÉžW¡TÆœéý5Š–âå6wÁÊ®‘aztA¯”Ü‘;}?+.¶ú¯ÞûöÙ\¿ù䃻c-³JuG0xHÙ½9MªG"¬?’M‹í‚ Å| ®‚5h󀺽*ˆ™{Àso‘q÷•’Û[=ËûÕŠF{Wñ ¢„ ¡j%¦Ïòf_i »fùÿUÞ„¨sœùcp¡©¡<Ö¥TTX +‘«jNõ8h¿–ac]næßÕ}O}ndO÷ +±ŸÅÉùËîºÿô5Õn±O^µñíxQÓêTwÇŒÛÄÙË/twæ°ÔLÕöÔQÍ_ñÍra¸#¿9…¯5¥˜¬÷TÜÚøµÓ}Ð g7qtˆØ¡\ˆÙy}O|D•ðŸdˆpcç\AÚÐÛod#”2è§~¾³dÆ" ¯yÉ’Ee¾œ\“êBînq×ïçZ0JT[àÐÂ=Cž­ÛTò§¦ö³Õ/K +Wš0¡G¤­ Ï„G¸eјÒJ¤ôðÿWYÇK\¹›»„WB*j³Æž†$XBk‹z8'V«Qn`e¼“Æùó8‡’O ÞK?•…n'ðÁûz\M|¥CžK ÊâþnI ‘æ‚.2Ï&õr©:oã0%h^’Tÿ=™F583|H1ÃðJuR˜©8cÉë' õòœÿC]Ç$WH»Çħq-#ŒçT…;¿´l%{df‚¯jÔLÏiÙ›o7å/ ¸z)™Ý Páä…ÅôƒÒÚßF=W•(øÂÛõ@-Û +_zŽ7Q‹4Ü€EÕ׋Œ”Ò:hHèµY@5HSðŠx„’dò0—…c"ÇÚƒÝûóãž¿ý¾~ê}€/¶¨ÄN(¡R’{©ä¿Âµ¥ÆDHIöÆ"^>º•49éúNýþØWÙõ®£6‚>€PRËùáÅîåïtÃG ¸ˆÚ!GCÍÈnI£#E!‹?Ò FŒ5acÅÔåù,†E‚)Á~Ž};Ÿî‘ÇŒ Š<®HO’:±…/Ȇîø=[Á­Ñˆ‚«3·(Ъˋ§ËåãjÊ ³t[™ 9ÚOë†4ËÆõP˜=«þ1?«?“χRÆvz‹6  Θmq•â?döÎ{Ï‘X*û†HðìÖ€ì U¹ºwöÈÖc{‘E}+ø™ÚfäÕÏ’3ï¼ömcŠbC]ÉþSô™3ˆ á´-ôOÎDÄKŠÍŒ]T&HR7²2s: ÁB‡ÞÚ»`„î, +!³røáM\m#hÕÔ%/…]LÊ©Àx§” x`Hù9_*ÿî~WKôêJÜ;g-áEƒâ1[2¤²‚Õ+lвÇÃ'r±vŠ2/’mâIRøا0;Oï0«|èû¥Ú½ð'-hMqœ!ÏV1q†?þd˜—`7yÜ3rk‹\%f ’Œ&¸˜k¤„ìrè€Kòóf"ä,g *{µ÷›ú¼¸U6 paQsCÏ—ü}“ÎŒ™gÕn»&”ð1‹ƒ?êh¿Z˜ÇpKmâÇåètÁ_r'Ó§Ú ò­Â‹šKÒ) ÉM«ô[1„‚á°‚xèáwI’96KTì±H;.JJÒ ç–äãa¾0xà|«‹ò“Ö¡B!,\ÎÉÚ)w­ ðT%¨K#Dé§t°ø“YçAÙú=<,| +鎩+÷WœQE=ºì&àÿÉÕm‚ßõU#„üŽO¬‘,¿w‘ôŸóÔ+„Cƒš«C)]Âqî[øúù&§6„¶½SÛ A…L;µ ˜]Ù™éS½‰è Ä%8æHMz•ð—.?ë{ÅA\ÏÛýr(ÀââcNˆnÑåDhµÃ‘æ•äd +!'Š+Â)y5Èûb÷¥²HªâÌëQ:¯Sî•]º¿ê@Ë™ÇÐt”x B@TƒÇ+K _Om‘ã¯ÂõkP]û·D°‘ÁlÇñ)°C˜aÛ_îe©ñ .“QªcK]U ®ždõQ¢øvm¸yܵ¯òŸ? x_Uì„’™Ûüái™GÐŽ9(G‡NeðäŠÐ=½“Q5ƒéðj®’éÞ”£wA p6À®×K_¯{h2jeæ¾£ž| f­°‡ãm3:³ïÞŠ¨v"rŒäL-ãùiDG_à&´ö0ÑÜ„”f¡ÒŒŸ¿IŽ¢‹Ú=ñl­"á£s‰*s,µ72,àWQòýœ¢Å +±š+MÇÄM¸4t²“ͲDê"È:Ѹ/ᙀÉj¿vœ±La»Pì<ê5žLˆ-ÝŠñEWsl›êüm®&VåcŒÌ†àÔ2-f‘=›tŽÅùÙ0ûõʵ1½ðH*ÀÞ²¾VžÂ沨ÌHlWåHaª§ïǤº{v§1¼QVžvýŒ=ÀäKø« ­JÈšq/i&çì_—æb/ ‰ä»ˆJö¯ýÍMPšçg÷‰BÙÝþ ¾Œl 8”xÛØ¡¶/HaF­f3Z6΄ÎYÅgÿfÖö®hr€V@wjàËòžž¹^›2 áÚaÏ6Å•bpÔh“ÿ°ËÒ›%nuWçB.M6pÿ 2bª°Yoz׋.ai)‡lÕÌXu„qƒL6ïb%;34jDd±¹FG¶KÊšœ§%)‚³‹’·VÐqÌŒ¢cù°¿Ì&Áïö:ŒDuÝ9BšïgAñÉȳ½ƒi†&ݾk£1uQBs•(} Øžý½ÝHþ%X“¡ ÃqñB»Êh>¢]3ð#šGCeŸt• ±Ðˆ×ÅÁ…äWo¯P7L²°Æ0Ó¦k½E8¾o /2ö}‰6••rž•¬²ÁJŸ;£+ÎÓúðX1ݾ7šÈäsE +?|û4&$,دÒôP wtb×CëöMj—ôï6'€î¥ã)5p$AH‘ŸàQLÿAù_þÊ¥B3ÌFÎ9"l»¦:H”qøTuçãf5æ^1…í¯«£©µvÄ’Z\)Ã?aýâŽeáÕ#œB\›Oç”øðùöÀëA[äÿd£÷¹áë} Jc(²€“„ã‰øçr˜„R[Ø8¦›†cé|Ö¨²×óÅìÇ>0U¬)´ÉÔ—ë=Ç\ŽòÈì ŸŠþ9ÒüÖ»÷Vht Ú‚ÙŽ“!zêñÇÊ U¤÷Hª,¶Œ#"¬›ö‹®C£S +àËfûaC;}æd-KŽ¡ÂQ)9ÅOÑT³rpÑô40ã‘ÕW`ö"´B› àÖšãƒÅ°O 0íßµÅ0 ÿ?%˜\ šh‰.؇‚ÈìÿÄ°qŠ°Äž¾)Ï +6¤‡ ìÃy˜º–EŠÏ¦ÌUPDP:VVZÜÌ’<"5h²ÞÇ‘õ[Œœn¢?ÛtÈ5ƪ‰Ÿåþ@mÒl›p¹ЖA!’›XÙP;:ŤŽÂŽ´×áE‘p`p¯šùóÿ`Z³c<—ÂÞ õU!ýÒ¥ˆ ¾'ó(‘êͳ±ýœ»=ˆñ¨×—¥>³Ÿ8Ò¢Dïš¿?'ã½`lȱÖq%íî…åßíq·‹7PìlhuÝeöð™ Ó…ß# Ÿ¿Oiß+·j1¹«ø°ä¦šä;;l‘0ER|hòßa‹gó@g®=ìþ㟠;çäÏd“‹mà+)ê:òhí(t¬fc„¯qœ÷lÌ{}–çç7§§BTÞ¤¼¾­ÑKi7Ît{‡Dî2a;7Æ'èæý÷ Üö`ƒ Nj`ÇOV$F£xþTí.ôb¢pC…æÕ‡7gmœÚ\zb¨3ix<Ù¯ÁÚG»fB3ŽÇ(øûGçäy£2!b„ÛʬDس£ìüÖPI?Þa±¦È*B˜ÝYslºi^uˆ©MP A×çwjë/iwh‡-α‚°PÈ3Ù(yÐW>…7{äò’:¯ŒR¦«ï­…‰[S«Yj!ÎÀ¦ÔÌzf¨Á‡‡ `¬2,$&‡Dyç£7‘m¡^I©` t¨ö‚Ýé›ÝzŠÑÌ×!qKÃÇù`ÅT¬–·M±™É­¤7€>xäú¢Ñ­tð(™¨‚\ï}qpµ%^ [*ó½cöEt`뀾9K‡M–S(’^/,(Hz» µ$KÞr pyä»Ð3ìÁ¤¦|ÿ!D]ùÜô·@Té¸< +#ÁTn†pm¡ŒÏL%2þš*_‚dy…פ¼2 »ÿdvå²ìŠ²Ï-Z¯|—›Þ&ö‰ rðÒÃu¾†\î1fç¥ãÏØVò-dÙA{¼Nó0ŠÞ¡ÞþøÏÁ&YŸÓê}yÀaðsôð¼ÿñ™›=ÿ`³tÈ¡ÿa\Ê>flhΈó¦Ý,²Â‹Y4^ê‰*ÎôX}Î9׆׈ò‹&ÃÊq]Ê‘ÎþôŸàèÞôÞìŠ#鮥ijïç7=&t“Çf5/ÛfÐz:ÃU´Ù É[ä¬í¡m>ž°A-¼ÆT +õdÁÝÿv﯎®x—î«SÌî  S«æ^ÄÖgg\i è +‰³ãøB'¨º–8v’JðÈ "îÿS¼Ûžœu¹NÀ£t’D ²ŒÞ—Æi±¬jBókt¿~ÝÆ_(9ÃÎb`ƒbß?µ#mVß\æÒ”eЙÏèGj½Å¯©nwa|Oîøl·~z(• –7uZw“‰ñK¤%VsvO÷aåX7:­k%¡}GF^C±Ê0×σÁ~ Ó’×AuÞs‰YÅoIO`)¹Uøœƒ´‡!'í&‹ÈÒ7eIÑ¿¨ÇNçöF¥†C¸¶K4»’#_Vê)«•Ú›Gá”dǪðÕOR‹¯ûÃ¥ª~í +IÆóŠßTtòE½MÃX¯¹â h#8[Ȩ~ÒÈn$Ÿåƒ³o»úc>­h6;N‰ †f»±é<„ÇváT9 3S'QéL£ÙèÚZØ}Ì8zÙ_9Ï*<ÄWÇí&³.ùtÿì ‰ç±Ëc/òBŠµh gí £xèöÁ·MÉ?™Œ‰9g»ú1º*³ C½·Í|T‡~²wWg^½[?†M¸ÅŒæËÀ¯ƒ=º¬ýŠ.ù•ÅìÞp¯ÀZ¿Ñœ_ǦݴÀ/˜ûdm'ÿ;Ñéâq³îÉ‘'lMx!ÒîÚ²s,Ð £é>OBÑ+ò0u­«¤8/¸fÇ âR±\¶”L¥’ÙVG +åUÈHMÛ/Òï6ˆÚ¯f½§|œP(ùD™™íº ZGžÐìŠt;+UçCÌ#7 ? ˆ0¢º™é¤¥Ôd¬—¼±&—^lms +2†â³1Æ Ú‹'P5jhs$ò\ ¡ìÀlÏ _yâ¬bT‘®„l'kœ) _ ê…3M€Qk ÉQ&tzïÊÚcA_‘ÎΊ¹^šMb}®°gßM<íLš£EÄBwøýÔ:¶nqS7¯K ’‘ ^ü³„2ܦçßüFd.jR£%¾ÁèÛX­Ì/®Owº/_ ÷i!#s[ìôYÒ‡Mê³ûé Ôè¨ïL¡¨Ž8飳”ÁÕÈk½Q åÌæC¿Ö™Å\øëS¬iâ<*MÎûi6Èt2]ƊІ_ÁS‡û@@h&q$4zÿ«.þTÒãþ4s¹ÅrŠå¤6ø)„¢Ì÷_i8FÚAš ‚3 ÉS€%ô©àˆyw¨k~ëñÇn¼¸Ä5àŒ|—Y÷—Õøk™ÉefË¥•#¾šC_ºz …Q%Š“xÑÈ{éΊå­U®´Ño‚¯2BQwÌßúΠó†Ña]ºÇºã0 &%b*`ä<„™$Íæ´í€óg¡)_¿ZÇèPâ¶õ¡°*(P³D€™ÂŠŸ¦î†ª·ì†F㔢ŒzgX oÛÂñ2+®hÈ™›iÌ+’AHApDç]¡bÚ\öÊ=®ÓhO ÃÁȲâZ ¿9²Ô¼î5 >+óFø9†yÎì.ò>Ÿ¬uèë`]ÕºŽ?àT9ÿc¼‚ùÔ¾­±ÛòX UæW_ö +2ÞÿòmÀ,³;“(}#uß.ýZfüå9¼ñ‘Ì%E¦ßzà® û4ŽÛÕÅe$@BŠ(©ÇþøAb³¼¾þÃ5-o"²ÕÓWx‹ü3qÈìH¶›²> w+­p¨B<êÃÃË—¦×¸nFN´Oþ +"—}£®FÕìvc +™¢/W÷ÔóàY®Ûaû¿þ"^[Ë[´´¥†æ¤&O9y\¨"\¨ÒRÇï9òo­lújöFð­OåQÙžåò“úO{9Ô ‡~CÅ‹U4oK¨´_¤ ÙB…Á/"®ÕdÌ★#5<÷qÞÖQfÿ[/u2²9¯™=ãòìûF…Û,ŸJŒp5¢ {sG2wñB#@š­ÀXYq0;<í(¸}:屣̻Ž +R+ò\¯h±S2xæOPÇ‘‡ë;OLV©¤r`Èâ ù`0|²M$™¸Â +E/ÌîvðÓ{D,Yâ+#œЬܑ®iÙß:µìœñW=L\ç^¶ÐQ½†X%y¢œ¯4R§ëH«u⣄<ÇÖ' ö‚¹Ë«tC—.˜yšzuøÑŽ÷¢‹SP‚_ä€çy•‹(äÜ,­‚àDæXåÁko>Õ¼¨[:[7WžÑo×`8¦äinNÝt}®4ï2œ’¬ÊYr3šæ½ê .ÏI»¯kþaÏÕÐî:R141omLRodñè ÂV)–ˆfÊ!Þ‚¬PõBU-@*¹?á›ÿzcƒ[•ë÷€TÄÍAÜþ-­“Ïúx—âÖQç÷gP©IÿK}γ?È™ÎBóvv‹NUâ¸91‰6ôM™D>ªå‹pEMøæ¨?"¤š1Zj焸DN°÷ÝôÈS¥7VbÇRVñÒû‰³YÚ=Y2Ò2¯*(x‘š@)›”ÑÍá_í1Bebv[ºV~ï®æqÌÖB¥?„·%µKGU_¨7N2ïÉÚŸ×b…=‘åü†­}JˆˆÃ«¨¦¸»¹8É»ÅçºLç·"4}'Í¡¨Û‡ý¾E(§aJpö¹X5ÑQ¡øŽZÓTÂNë¿$‘‹dµûŒïW}¢I‹>„`œñhÌÜ+Ö×ù²ÉLÝZm]ÿI‚A­4Ä)«‘Ét"˜ü‰fÉ9väD­Wª4VRW|Á½ÀÜ,<Ⱥ%ò‹·PÚK(‘^?cZ\So>šÓÿT©E€†JÁ{éÏ[¹å‹÷ˆ*Kuö7Î÷{ hÂÌJQ…4Só3«5ÆÜÞ™3+V ß[2•'žñ<Œy•ÛI›j¥í«¹Ù[ 8ü ó±ò9IIì,`ôeTt¢“Ï.LçÎ$ȪwíS@†ßÿüÞÃÃÙœ$JèC (÷ÎÏQè þE;8Àî ElÄT ¿lB²”é(½€!`ó'IÇ”¿n— #I!þªÜÛ=´5žªÿê?SW_Ç%Ò^“Â"STD¡ÄºQwÞP‰ƒ7a_ ±ÊÅ!¥?ÀýRPa1è‹ëÌ•[Za_m˜õ’tànoöu^s%—Ùe­zFﯕ¹en¤D;BÚ·ö`6öwýŸRê—ž5{hh×3–á~G„t•ŒDq寃Äà›h!ÜÑÔRQ0²bOþã †§Ó™5jE‚C ]]X»›ƒZÁ2Xu¿u1’núáöé ÂVáÁ#ÌÝ决‹q2Fr…åºÅüê³±¼w¨íC©¿uôó$g3§,†æ̪¾2œÊE¢cüÁ(^]ÛsM{à…¨›G´Ô­XÀa¤aÒ¿“Ès¹+¾ipk^dÆ™”€ÖÈCu~·lñw\Ú$Ž`^øUé]$õXNp„ú,n¹q6æQØ•Ê*’LY{;Ìvú»>\RÌ…yemÅ’Š+“Í»ïN½*{êÞ®ÒËA ¤ªU–*­ +Øò$K[î!Ù.ÉݦØ~é!LnÈ$æÞ“ã;w¸[y¾º@H„X&Ëg«Ý"dút†¦ûÒo¸—G.I´Ë~§5®éó^=•²Üé‹ñax}¡ùfPìOå* ç¥ 6Zfíxwtxœ¸§)ü|o†Ošø®x…]´Ô~¼J»PtÝjɬ€£x0€\à4xC냫! +‘ô—‹s*ë½ „gÑR(÷=Ö“ ÕAÄáÍm mðu±ŠÔÝEÂ6V}þ.£òàáŒ×ɼÌä*Ce¢šY•N +Þ‚»Ó÷ÛÜïsÆ‹]Ô<5&uwét—½.¤ÓW ˆ°JíÓÁ +endstream +endobj +538 0 obj << +/Type /FontDescriptor +/FontName /FRDBIF+CMTT10 +/Flags 4 +/FontBBox [-4 -235 731 800] +/Ascent 611 +/CapHeight 611 +/Descent -222 +/ItalicAngle 0 +/StemV 69 +/XHeight 431 +/CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/a/asciitilde/asterisk/at/b/backslash/bracketleft/bracketright/c/colon/comma/d/dollar/e/eight/equal/exclam/f/five/four/g/greater/h/hyphen/i/j/k/l/less/m/n/nine/o/one/p/parenleft/parenright/period/plus/q/quotedbl/quoteleft/quoteright/r/s/semicolon/slash/t/three/two/u/underscore/v/w/x/y/z/zero) +/FontFile 537 0 R +>> endobj +158 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /APBVBO+CMBX10 +/FontDescriptor 504 0 R +/FirstChar 12 +/LastChar 119 +/Widths 497 0 R +>> endobj +111 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /VZSPNB+CMBX12 +/FontDescriptor 506 0 R +/FirstChar 12 +/LastChar 122 +/Widths 502 0 R +>> endobj +124 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /WARYBH+CMCSC10 +/FontDescriptor 508 0 R +/FirstChar 39 +/LastChar 121 +/Widths 498 0 R +>> endobj +275 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /QZSJAN+CMEX10 +/FontDescriptor 510 0 R +/FirstChar 0 +/LastChar 112 +/Widths 488 0 R +>> endobj +175 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /SQUASS+CMMI10 +/FontDescriptor 512 0 R +/FirstChar 14 +/LastChar 122 +/Widths 495 0 R +>> endobj +274 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /OFGSEC+CMMI6 +/FontDescriptor 514 0 R +/FirstChar 14 +/LastChar 105 +/Widths 489 0 R +>> endobj +315 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /CFAIUE+CMMI7 +/FontDescriptor 516 0 R +/FirstChar 84 +/LastChar 118 +/Widths 486 0 R +>> endobj +271 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /VCFHMD+CMMI8 +/FontDescriptor 518 0 R +/FirstChar 14 +/LastChar 115 +/Widths 492 0 R +>> endobj +123 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /KZBLKD+CMR10 +/FontDescriptor 520 0 R +/FirstChar 11 +/LastChar 127 +/Widths 499 0 R +>> endobj +113 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /GKTJSV+CMR12 +/FontDescriptor 522 0 R +/FirstChar 34 +/LastChar 121 +/Widths 500 0 R +>> endobj +314 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /TQVOAL+CMR7 +/FontDescriptor 524 0 R +/FirstChar 43 +/LastChar 49 +/Widths 487 0 R +>> endobj +273 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /CGCFOU+CMR8 +/FontDescriptor 526 0 R +/FirstChar 48 +/LastChar 61 +/Widths 490 0 R +>> endobj +176 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /WYYAGH+CMSY10 +/FontDescriptor 528 0 R +/FirstChar 0 +/LastChar 110 +/Widths 494 0 R +>> endobj +316 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /PXBGHL+CMSY7 +/FontDescriptor 530 0 R +/FirstChar 0 +/LastChar 0 +/Widths 485 0 R +>> endobj +272 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /VOEFGO+CMSY8 +/FontDescriptor 532 0 R +/FirstChar 0 +/LastChar 2 +/Widths 491 0 R +>> endobj +173 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /CXHZKE+CMTI10 +/FontDescriptor 534 0 R +/FirstChar 11 +/LastChar 122 +/Widths 496 0 R +>> endobj +112 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /BABWJL+CMTI12 +/FontDescriptor 536 0 R +/FirstChar 45 +/LastChar 118 +/Widths 501 0 R +>> endobj +200 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /FRDBIF+CMTT10 +/FontDescriptor 538 0 R +/FirstChar 33 +/LastChar 126 +/Widths 493 0 R +>> endobj +114 0 obj << +/Type /Pages +/Count 6 +/Parent 539 0 R +/Kids [106 0 R 116 0 R 120 0 R 126 0 R 154 0 R 160 0 R] +>> endobj +177 0 obj << +/Type /Pages +/Count 6 +/Parent 539 0 R +/Kids [171 0 R 192 0 R 197 0 R 210 0 R 223 0 R 230 0 R] +>> endobj +238 0 obj << +/Type /Pages +/Count 6 +/Parent 539 0 R +/Kids [235 0 R 240 0 R 251 0 R 268 0 R 289 0 R 300 0 R] +>> endobj +320 0 obj << +/Type /Pages +/Count 6 +/Parent 539 0 R +/Kids [311 0 R 325 0 R 345 0 R 360 0 R 377 0 R 384 0 R] +>> endobj +392 0 obj << +/Type /Pages +/Count 6 +/Parent 539 0 R +/Kids [389 0 R 395 0 R 402 0 R 414 0 R 423 0 R 427 0 R] +>> endobj +437 0 obj << +/Type /Pages +/Count 6 +/Parent 539 0 R +/Kids [433 0 R 439 0 R 447 0 R 452 0 R 458 0 R 463 0 R] +>> endobj +472 0 obj << +/Type /Pages +/Count 4 +/Parent 540 0 R +/Kids [469 0 R 474 0 R 478 0 R 482 0 R] +>> endobj +539 0 obj << +/Type /Pages +/Count 36 +/Parent 541 0 R +/Kids [114 0 R 177 0 R 238 0 R 320 0 R 392 0 R 437 0 R] +>> endobj +540 0 obj << +/Type /Pages +/Count 4 +/Parent 541 0 R +/Kids [472 0 R] +>> endobj +541 0 obj << +/Type /Pages +/Count 40 +/Kids [539 0 R 540 0 R] +>> endobj +542 0 obj << +/Type /Outlines +/First 7 0 R +/Last 7 0 R +/Count 1 +>> endobj +103 0 obj << +/Title 104 0 R +/A 101 0 R +/Parent 7 0 R +/Prev 99 0 R +>> endobj +99 0 obj << +/Title 100 0 R +/A 97 0 R +/Parent 7 0 R +/Prev 95 0 R +/Next 103 0 R +>> endobj +95 0 obj << +/Title 96 0 R +/A 93 0 R +/Parent 7 0 R +/Prev 67 0 R +/Next 99 0 R +>> endobj +91 0 obj << +/Title 92 0 R +/A 89 0 R +/Parent 67 0 R +/Prev 87 0 R +>> endobj +87 0 obj << +/Title 88 0 R +/A 85 0 R +/Parent 67 0 R +/Prev 83 0 R +/Next 91 0 R +>> endobj +83 0 obj << +/Title 84 0 R +/A 81 0 R +/Parent 67 0 R +/Prev 79 0 R +/Next 87 0 R +>> endobj +79 0 obj << +/Title 80 0 R +/A 77 0 R +/Parent 67 0 R +/Prev 75 0 R +/Next 83 0 R +>> endobj +75 0 obj << +/Title 76 0 R +/A 73 0 R +/Parent 67 0 R +/Prev 71 0 R +/Next 79 0 R +>> endobj +71 0 obj << +/Title 72 0 R +/A 69 0 R +/Parent 67 0 R +/Next 75 0 R +>> endobj +67 0 obj << +/Title 68 0 R +/A 65 0 R +/Parent 7 0 R +/Prev 59 0 R +/Next 95 0 R +/First 71 0 R +/Last 91 0 R +/Count -6 +>> endobj +63 0 obj << +/Title 64 0 R +/A 61 0 R +/Parent 59 0 R +>> endobj +59 0 obj << +/Title 60 0 R +/A 57 0 R +/Parent 7 0 R +/Prev 47 0 R +/Next 67 0 R +/First 63 0 R +/Last 63 0 R +/Count -1 +>> endobj +55 0 obj << +/Title 56 0 R +/A 53 0 R +/Parent 47 0 R +/Prev 51 0 R +>> endobj +51 0 obj << +/Title 52 0 R +/A 49 0 R +/Parent 47 0 R +/Next 55 0 R +>> endobj +47 0 obj << +/Title 48 0 R +/A 45 0 R +/Parent 7 0 R +/Prev 23 0 R +/Next 59 0 R +/First 51 0 R +/Last 55 0 R +/Count -2 +>> endobj +43 0 obj << +/Title 44 0 R +/A 41 0 R +/Parent 23 0 R +/Prev 39 0 R +>> endobj +39 0 obj << +/Title 40 0 R +/A 37 0 R +/Parent 23 0 R +/Prev 35 0 R +/Next 43 0 R +>> endobj +35 0 obj << +/Title 36 0 R +/A 33 0 R +/Parent 23 0 R +/Prev 31 0 R +/Next 39 0 R +>> endobj +31 0 obj << +/Title 32 0 R +/A 29 0 R +/Parent 23 0 R +/Prev 27 0 R +/Next 35 0 R +>> endobj +27 0 obj << +/Title 28 0 R +/A 25 0 R +/Parent 23 0 R +/Next 31 0 R +>> endobj +23 0 obj << +/Title 24 0 R +/A 21 0 R +/Parent 7 0 R +/Prev 19 0 R +/Next 47 0 R +/First 27 0 R +/Last 43 0 R +/Count -5 +>> endobj +19 0 obj << +/Title 20 0 R +/A 17 0 R +/Parent 7 0 R +/Prev 15 0 R +/Next 23 0 R +>> endobj +15 0 obj << +/Title 16 0 R +/A 13 0 R +/Parent 7 0 R +/Prev 11 0 R +/Next 19 0 R +>> endobj +11 0 obj << +/Title 12 0 R +/A 9 0 R +/Parent 7 0 R +/Next 15 0 R +>> endobj +7 0 obj << +/Title 8 0 R +/A 5 0 R +/Parent 542 0 R +/First 11 0 R +/Last 103 0 R +/Count -10 +>> endobj +543 0 obj << +/Names [(Doc-Start) 110 0 R (Item.1) 276 0 R (Item.10) 351 0 R (Item.11) 352 0 R (Item.12) 353 0 R (Item.13) 417 0 R] +/Limits [(Doc-Start) (Item.13)] +>> endobj +544 0 obj << +/Names [(Item.14) 418 0 R (Item.15) 419 0 R (Item.16) 420 0 R (Item.2) 277 0 R (Item.3) 278 0 R (Item.4) 317 0 R] +/Limits [(Item.14) (Item.4)] +>> endobj +545 0 obj << +/Names [(Item.5) 318 0 R (Item.6) 319 0 R (Item.7) 348 0 R (Item.8) 349 0 R (Item.9) 350 0 R (appendix.A) 98 0 R] +/Limits [(Item.5) (appendix.A)] +>> endobj +546 0 obj << +/Names [(cite.BLACS) 217 0 R (cite.BREZINA_VANEK) 179 0 R (cite.CAI_SARKIS) 292 0 R (cite.Cai_Widlund_92) 254 0 R (cite.EFSTATHIOU) 293 0 R (cite.MPI1) 183 0 R] +/Limits [(cite.BLACS) (cite.MPI1)] +>> endobj +547 0 obj << +/Names [(cite.MPI2) 216 0 R (cite.PSBLASGUIDE) 182 0 R (cite.SUPERLU) 227 0 R (cite.SUPERLUDIST) 228 0 R (cite.Saad_book) 284 0 R (cite.StubenGMD69_99) 279 0 R] +/Limits [(cite.MPI2) (cite.StubenGMD69_99)] +>> endobj +548 0 obj << +/Names [(cite.TUMINARO_TONG) 280 0 R (cite.UMFPACK) 226 0 R (cite.VANEK_MANDEL_BREZINA) 180 0 R (cite.aaecc_07) 282 0 R (cite.apnum_07) 283 0 R (cite.blas1) 215 0 R] +/Limits [(cite.TUMINARO_TONG) (cite.blas1)] +>> endobj +549 0 obj << +/Names [(cite.blas2) 214 0 R (cite.blas3) 213 0 R (cite.dd1_94) 255 0 R (cite.dd2_96) 178 0 R (cite.para_04) 281 0 R (cite.psblas_00) 181 0 R] +/Limits [(cite.blas2) (cite.psblas_00)] +>> endobj +550 0 obj << +/Names [(equation.1) 174 0 R (equation.2) 328 0 R (equation.3) 329 0 R (equation.4) 330 0 R (figure.1) 303 0 R (figure.2) 363 0 R] +/Limits [(equation.1) (figure.2)] +>> endobj +551 0 obj << +/Names [(figure.3) 380 0 R (figure.4) 381 0 R (figure.5) 382 0 R (page.1) 109 0 R (page.10) 270 0 R (page.11) 291 0 R] +/Limits [(figure.3) (page.11)] +>> endobj +552 0 obj << +/Names [(page.12) 302 0 R (page.13) 313 0 R (page.14) 327 0 R (page.15) 347 0 R (page.16) 362 0 R (page.17) 379 0 R] +/Limits [(page.12) (page.17)] +>> endobj +553 0 obj << +/Names [(page.18) 386 0 R (page.19) 391 0 R (page.2) 118 0 R (page.20) 397 0 R (page.21) 404 0 R (page.22) 416 0 R] +/Limits [(page.18) (page.22)] +>> endobj +554 0 obj << +/Names [(page.23) 425 0 R (page.24) 429 0 R (page.25) 435 0 R (page.26) 441 0 R (page.27) 449 0 R (page.28) 454 0 R] +/Limits [(page.23) (page.28)] +>> endobj +555 0 obj << +/Names [(page.29) 460 0 R (page.3) 199 0 R (page.30) 465 0 R (page.31) 471 0 R (page.32) 476 0 R (page.33) 480 0 R] +/Limits [(page.29) (page.33)] +>> endobj +556 0 obj << +/Names [(page.34) 484 0 R (page.4) 212 0 R (page.5) 225 0 R (page.6) 232 0 R (page.7) 237 0 R (page.8) 242 0 R] +/Limits [(page.34) (page.8)] +>> endobj +557 0 obj << +/Names [(page.9) 253 0 R (page.i) 122 0 R (page.ii) 128 0 R (page.iii) 156 0 R (page.iv) 162 0 R (section*.1) 10 0 R] +/Limits [(page.9) (section*.1)] +>> endobj +558 0 obj << +/Names [(section*.2) 157 0 R (section*.3) 102 0 R (section.1) 14 0 R (section.2) 18 0 R (section.3) 22 0 R (section.4) 46 0 R] +/Limits [(section*.2) (section.4)] +>> endobj +559 0 obj << +/Names [(section.5) 58 0 R (section.6) 66 0 R (section.7) 94 0 R (subsection.3.1) 26 0 R (subsection.3.2) 30 0 R (subsection.3.3) 34 0 R] +/Limits [(section.5) (subsection.3.3)] +>> endobj +560 0 obj << +/Names [(subsection.3.4) 38 0 R (subsection.3.5) 42 0 R (subsection.4.1) 50 0 R (subsection.4.2) 54 0 R (subsection.5.1) 62 0 R (subsection.6.1) 70 0 R] +/Limits [(subsection.3.4) (subsection.6.1)] +>> endobj +561 0 obj << +/Names [(subsection.6.2) 74 0 R (subsection.6.3) 78 0 R (subsection.6.4) 82 0 R (subsection.6.5) 86 0 R (subsection.6.6) 90 0 R (table.1) 354 0 R] +/Limits [(subsection.6.2) (table.1)] +>> endobj +562 0 obj << +/Names [(table.2) 355 0 R (table.3) 430 0 R (table.4) 436 0 R (table.5) 356 0 R (title.0) 6 0 R] +/Limits [(table.2) (title.0)] +>> endobj +563 0 obj << +/Kids [543 0 R 544 0 R 545 0 R 546 0 R 547 0 R 548 0 R] +/Limits [(Doc-Start) (cite.blas1)] +>> endobj +564 0 obj << +/Kids [549 0 R 550 0 R 551 0 R 552 0 R 553 0 R 554 0 R] +/Limits [(cite.blas2) (page.28)] +>> endobj +565 0 obj << +/Kids [555 0 R 556 0 R 557 0 R 558 0 R 559 0 R 560 0 R] +/Limits [(page.29) (subsection.6.1)] +>> endobj +566 0 obj << +/Kids [561 0 R 562 0 R] +/Limits [(subsection.6.2) (title.0)] +>> endobj +567 0 obj << +/Kids [563 0 R 564 0 R 565 0 R 566 0 R] +/Limits [(Doc-Start) (title.0)] +>> endobj +568 0 obj << +/Dests 567 0 R +>> endobj +569 0 obj << +/Type /Catalog +/Pages 541 0 R +/Outlines 542 0 R +/Names 568 0 R + /PageMode/UseOutlines/PageLabels << /Nums [0 << /S /D >> 2 << /S /r >> 6 << /S /D >> ] >> +/OpenAction 105 0 R +>> endobj +570 0 obj << + /Title (MultiLevel Domain Decomposition Parallel Preconditioners Package based on PSBLAS, V. 1.1) /Subject (MultiLevel Domain Decomposition Parallel Preconditioners Package) /Keywords (Parallel Numerical Software, Algebraic Multilevel Preconditioners, Sparse Iterative Solvers, PSBLAS, MPI) /Creator (pdfLaTeX) /Producer ($Id: userguide.tex 2008-04-08 Pasqua D'Ambra, Daniela di Serafino, Salvatore Filippone$) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.3)/Keywords() +/CreationDate (D:20090313172526+01'00') +/ModDate (D:20090313172526+01'00') +/Trapped /False +/PTEX.Fullbanner (This is pdfTeX using libpoppler, Version 3.141592-1.40.3-2.2 (Web2C 7.5.6) kpathsea version 3.5.6) +>> endobj +xref +0 571 +0000000001 65535 f +0000000002 00000 f +0000000003 00000 f +0000000004 00000 f +0000000000 00000 f +0000000015 00000 n +0000003828 00000 n +0000425772 00000 n +0000000058 00000 n +0000000109 00000 n +0000008284 00000 n +0000425700 00000 n +0000000155 00000 n +0000000182 00000 n +0000029345 00000 n +0000425614 00000 n +0000000228 00000 n +0000000265 00000 n +0000036761 00000 n +0000425528 00000 n +0000000311 00000 n +0000000349 00000 n +0000045444 00000 n +0000425405 00000 n +0000000395 00000 n +0000000447 00000 n +0000045502 00000 n +0000425331 00000 n +0000000498 00000 n +0000000534 00000 n +0000052185 00000 n +0000425244 00000 n +0000000585 00000 n +0000000638 00000 n +0000052243 00000 n +0000425157 00000 n +0000000689 00000 n +0000000733 00000 n +0000065968 00000 n +0000425070 00000 n +0000000784 00000 n +0000000820 00000 n +0000066026 00000 n +0000424996 00000 n +0000000871 00000 n +0000000919 00000 n +0000075609 00000 n +0000424873 00000 n +0000000965 00000 n +0000001029 00000 n +0000092546 00000 n +0000424799 00000 n +0000001080 00000 n +0000001138 00000 n +0000120508 00000 n +0000424725 00000 n +0000001189 00000 n +0000001232 00000 n +0000148672 00000 n +0000424602 00000 n +0000001278 00000 n +0000001314 00000 n +0000158936 00000 n +0000424541 00000 n +0000001365 00000 n +0000001396 00000 n +0000185182 00000 n +0000424418 00000 n +0000001442 00000 n +0000001477 00000 n +0000189229 00000 n +0000424344 00000 n +0000001528 00000 n +0000001577 00000 n +0000196042 00000 n +0000424257 00000 n +0000001628 00000 n +0000001676 00000 n +0000237253 00000 n +0000424170 00000 n +0000001727 00000 n +0000001775 00000 n +0000246939 00000 n +0000424083 00000 n +0000001826 00000 n +0000001875 00000 n +0000249305 00000 n +0000423996 00000 n +0000001926 00000 n +0000001975 00000 n +0000252167 00000 n +0000423922 00000 n +0000002026 00000 n +0000002076 00000 n +0000254728 00000 n +0000423836 00000 n +0000002122 00000 n +0000002157 00000 n +0000259144 00000 n +0000423748 00000 n +0000002204 00000 n +0000002233 00000 n +0000266208 00000 n +0000423672 00000 n +0000002281 00000 n +0000002311 00000 n +0000003591 00000 n +0000003885 00000 n +0000002363 00000 n +0000003710 00000 n +0000003769 00000 n +0000420103 00000 n +0000422243 00000 n +0000421251 00000 n +0000422531 00000 n +0000004252 00000 n +0000004074 00000 n +0000003983 00000 n +0000004193 00000 n +0000008342 00000 n +0000008106 00000 n +0000004293 00000 n +0000008225 00000 n +0000421108 00000 n +0000420247 00000 n +0000008756 00000 n +0000008578 00000 n +0000008440 00000 n +0000008697 00000 n +0000015648 00000 n +0000015799 00000 n +0000015950 00000 n +0000016101 00000 n +0000016252 00000 n +0000016409 00000 n +0000016566 00000 n +0000016723 00000 n +0000016879 00000 n +0000017035 00000 n +0000017186 00000 n +0000017343 00000 n +0000017500 00000 n +0000017651 00000 n +0000017808 00000 n +0000017958 00000 n +0000018115 00000 n +0000018272 00000 n +0000018427 00000 n +0000018582 00000 n +0000018739 00000 n +0000018896 00000 n +0000019047 00000 n +0000019199 00000 n +0000019469 00000 n +0000015325 00000 n +0000008828 00000 n +0000019351 00000 n +0000019410 00000 n +0000419959 00000 n +0000019883 00000 n +0000019705 00000 n +0000019567 00000 n +0000019824 00000 n +0000028395 00000 n +0000028549 00000 n +0000028710 00000 n +0000028878 00000 n +0000029035 00000 n +0000029193 00000 n +0000028244 00000 n +0000029464 00000 n +0000028057 00000 n +0000019955 00000 n +0000422099 00000 n +0000029403 00000 n +0000420535 00000 n +0000421676 00000 n +0000422648 00000 n +0000273826 00000 n +0000266267 00000 n +0000274062 00000 n +0000273531 00000 n +0000273472 00000 n +0000273885 00000 n +0000033680 00000 n +0000033832 00000 n +0000033984 00000 n +0000034135 00000 n +0000034286 00000 n +0000034436 00000 n +0000034588 00000 n +0000034740 00000 n +0000033493 00000 n +0000029601 00000 n +0000036549 00000 n +0000036398 00000 n +0000036819 00000 n +0000036251 00000 n +0000034825 00000 n +0000036702 00000 n +0000422387 00000 n +0000044157 00000 n +0000044310 00000 n +0000044463 00000 n +0000044616 00000 n +0000044767 00000 n +0000044918 00000 n +0000045071 00000 n +0000045229 00000 n +0000045560 00000 n +0000043962 00000 n +0000036930 00000 n +0000045385 00000 n +0000266798 00000 n +0000266857 00000 n +0000273649 00000 n +0000273590 00000 n +0000266916 00000 n +0000051659 00000 n +0000051814 00000 n +0000051967 00000 n +0000051508 00000 n +0000052301 00000 n +0000051345 00000 n +0000045684 00000 n +0000052126 00000 n +0000266680 00000 n +0000266739 00000 n +0000273708 00000 n +0000056480 00000 n +0000056302 00000 n +0000052438 00000 n +0000056421 00000 n +0000060646 00000 n +0000060856 00000 n +0000060507 00000 n +0000056578 00000 n +0000060797 00000 n +0000422765 00000 n +0000066084 00000 n +0000065790 00000 n +0000060954 00000 n +0000065909 00000 n +0000074775 00000 n +0000074937 00000 n +0000075091 00000 n +0000075245 00000 n +0000075398 00000 n +0000090913 00000 n +0000074624 00000 n +0000075667 00000 n +0000074445 00000 n +0000066195 00000 n +0000075550 00000 n +0000266562 00000 n +0000266621 00000 n +0000091074 00000 n +0000091234 00000 n +0000091399 00000 n +0000091558 00000 n +0000091713 00000 n +0000091868 00000 n +0000092024 00000 n +0000092178 00000 n +0000092330 00000 n +0000107222 00000 n +0000107379 00000 n +0000092781 00000 n +0000090702 00000 n +0000075778 00000 n +0000092487 00000 n +0000420965 00000 n +0000421959 00000 n +0000421535 00000 n +0000420679 00000 n +0000420392 00000 n +0000092604 00000 n +0000092663 00000 n +0000092722 00000 n +0000273944 00000 n +0000274003 00000 n +0000266326 00000 n +0000266385 00000 n +0000266444 00000 n +0000273767 00000 n +0000107537 00000 n +0000107691 00000 n +0000107071 00000 n +0000107904 00000 n +0000106900 00000 n +0000092996 00000 n +0000107845 00000 n +0000266503 00000 n +0000273413 00000 n +0000119663 00000 n +0000119816 00000 n +0000119969 00000 n +0000120120 00000 n +0000120281 00000 n +0000120566 00000 n +0000119492 00000 n +0000108093 00000 n +0000120449 00000 n +0000132471 00000 n +0000131617 00000 n +0000131773 00000 n +0000131940 00000 n +0000132096 00000 n +0000132252 00000 n +0000131466 00000 n +0000132709 00000 n +0000131287 00000 n +0000120755 00000 n +0000132412 00000 n +0000421394 00000 n +0000420822 00000 n +0000421819 00000 n +0000132533 00000 n +0000132592 00000 n +0000132651 00000 n +0000422882 00000 n +0000137013 00000 n +0000137174 00000 n +0000137336 00000 n +0000137740 00000 n +0000136858 00000 n +0000132923 00000 n +0000137495 00000 n +0000137554 00000 n +0000137616 00000 n +0000137678 00000 n +0000147235 00000 n +0000147394 00000 n +0000147542 00000 n +0000147697 00000 n +0000147849 00000 n +0000147998 00000 n +0000148148 00000 n +0000148299 00000 n +0000148456 00000 n +0000158053 00000 n +0000158208 00000 n +0000158364 00000 n +0000147084 00000 n +0000149084 00000 n +0000146873 00000 n +0000137929 00000 n +0000148613 00000 n +0000148730 00000 n +0000148789 00000 n +0000148848 00000 n +0000148907 00000 n +0000148966 00000 n +0000149025 00000 n +0000158875 00000 n +0000201225 00000 n +0000233017 00000 n +0000158516 00000 n +0000158666 00000 n +0000158994 00000 n +0000157882 00000 n +0000149208 00000 n +0000158816 00000 n +0000173985 00000 n +0000168516 00000 n +0000168671 00000 n +0000168830 00000 n +0000168982 00000 n +0000169133 00000 n +0000169288 00000 n +0000169438 00000 n +0000169588 00000 n +0000169738 00000 n +0000169889 00000 n +0000170040 00000 n +0000168365 00000 n +0000170250 00000 n +0000168138 00000 n +0000159131 00000 n +0000170191 00000 n +0000177576 00000 n +0000177638 00000 n +0000177700 00000 n +0000174046 00000 n +0000173807 00000 n +0000170361 00000 n +0000173926 00000 n +0000177366 00000 n +0000177762 00000 n +0000177227 00000 n +0000174144 00000 n +0000177517 00000 n +0000422999 00000 n +0000184966 00000 n +0000185240 00000 n +0000184827 00000 n +0000177860 00000 n +0000185123 00000 n +0000188870 00000 n +0000189018 00000 n +0000188719 00000 n +0000189287 00000 n +0000188564 00000 n +0000185416 00000 n +0000189170 00000 n +0000194783 00000 n +0000194932 00000 n +0000195082 00000 n +0000195232 00000 n +0000195382 00000 n +0000195534 00000 n +0000195682 00000 n +0000195831 00000 n +0000196336 00000 n +0000194588 00000 n +0000189411 00000 n +0000195983 00000 n +0000196100 00000 n +0000196159 00000 n +0000196218 00000 n +0000196277 00000 n +0000201015 00000 n +0000201288 00000 n +0000200876 00000 n +0000196460 00000 n +0000201166 00000 n +0000211391 00000 n +0000211149 00000 n +0000201386 00000 n +0000211268 00000 n +0000211327 00000 n +0000221956 00000 n +0000222228 00000 n +0000221817 00000 n +0000211528 00000 n +0000222107 00000 n +0000222166 00000 n +0000423116 00000 n +0000233079 00000 n +0000232839 00000 n +0000222391 00000 n +0000232958 00000 n +0000236724 00000 n +0000236883 00000 n +0000237042 00000 n +0000236573 00000 n +0000237311 00000 n +0000236410 00000 n +0000233229 00000 n +0000237194 00000 n +0000246729 00000 n +0000246997 00000 n +0000246590 00000 n +0000237435 00000 n +0000246880 00000 n +0000249094 00000 n +0000248943 00000 n +0000249363 00000 n +0000248796 00000 n +0000247173 00000 n +0000249246 00000 n +0000251956 00000 n +0000252225 00000 n +0000251817 00000 n +0000249487 00000 n +0000252108 00000 n +0000254510 00000 n +0000254359 00000 n +0000254786 00000 n +0000254212 00000 n +0000252349 00000 n +0000254669 00000 n +0000423233 00000 n +0000259202 00000 n +0000258966 00000 n +0000254897 00000 n +0000259085 00000 n +0000266975 00000 n +0000266030 00000 n +0000259313 00000 n +0000266149 00000 n +0000274121 00000 n +0000273235 00000 n +0000267099 00000 n +0000273354 00000 n +0000274232 00000 n +0000274257 00000 n +0000274488 00000 n +0000274547 00000 n +0000275243 00000 n +0000275807 00000 n +0000275910 00000 n +0000275947 00000 n +0000276576 00000 n +0000276971 00000 n +0000277607 00000 n +0000278228 00000 n +0000278897 00000 n +0000279512 00000 n +0000280024 00000 n +0000280668 00000 n +0000281152 00000 n +0000281509 00000 n +0000282150 00000 n +0000293975 00000 n +0000294347 00000 n +0000304619 00000 n +0000304982 00000 n +0000314683 00000 n +0000315032 00000 n +0000318404 00000 n +0000318730 00000 n +0000328494 00000 n +0000328823 00000 n +0000331171 00000 n +0000331399 00000 n +0000334157 00000 n +0000334384 00000 n +0000340367 00000 n +0000340626 00000 n +0000358131 00000 n +0000358701 00000 n +0000367417 00000 n +0000367768 00000 n +0000369785 00000 n +0000370010 00000 n +0000372373 00000 n +0000372608 00000 n +0000376078 00000 n +0000376424 00000 n +0000377847 00000 n +0000378072 00000 n +0000379679 00000 n +0000379913 00000 n +0000395774 00000 n +0000396188 00000 n +0000403528 00000 n +0000403809 00000 n +0000419401 00000 n +0000423334 00000 n +0000423452 00000 n +0000423529 00000 n +0000423599 00000 n +0000425870 00000 n +0000426043 00000 n +0000426209 00000 n +0000426378 00000 n +0000426597 00000 n +0000426825 00000 n +0000427058 00000 n +0000427264 00000 n +0000427452 00000 n +0000427625 00000 n +0000427795 00000 n +0000427964 00000 n +0000428134 00000 n +0000428303 00000 n +0000428467 00000 n +0000428640 00000 n +0000428825 00000 n +0000429025 00000 n +0000429245 00000 n +0000429452 00000 n +0000429602 00000 n +0000429716 00000 n +0000429828 00000 n +0000429944 00000 n +0000430028 00000 n +0000430123 00000 n +0000430161 00000 n +0000430358 00000 n +trailer +<< /Size 571 +/Root 569 0 R +/Info 570 0 R +/ID [<46B6C1E45B76A007F16EBD3E03EDC9C5> <46B6C1E45B76A007F16EBD3E03EDC9C5>] >> +startxref +431101 +%%EOF diff --git a/docs/src/Makefile b/docs/src/Makefile index 19d31d2d..fdf28fc7 100644 --- a/docs/src/Makefile +++ b/docs/src/Makefile @@ -139,7 +139,7 @@ PDF = $(join $(BASEFILE),.pdf) PS = $(join $(BASEFILE),.ps) GXS = $(join $(BASEFILE),.gxs) GLX = $(join $(BASEFILE),.glx) -TARGETPDF= ../mld2p4-1.0-guide.pdf +TARGETPDF= ../mld2p4-1.1-guide.pdf BASEHTML = $(patsubst %.tex,%,$(HTMLFILE)) HTML = $(join $(HTMLFILE),.html) HTMLDIR = ../html diff --git a/docs/src/abstract.tex b/docs/src/abstract.tex index 45856568..35d05a9a 100644 --- a/docs/src/abstract.tex +++ b/docs/src/abstract.tex @@ -5,7 +5,7 @@ PSBLAS}) is a package of parallel algebraic multi-level preconditioners. It implements various versions of one-level additive and of multi-level additive and hybrid Schwarz algorithms. In the multi-level case, a purely algebraic approach is applied to generate coarse-level corrections, so that no geometric background is needed -concerning the matrix to be preconditioned. The matrix is required to be square, real +concerning the matrix to be preconditioned. The matrix is assumed to be square, real or complex, with a symmetric sparsity pattern. MLD2P4 has been designed to provide scalable and easy-to-use preconditioners in the diff --git a/docs/src/background.tex b/docs/src/background.tex index 52e7674b..ee2f39e5 100644 --- a/docs/src/background.tex +++ b/docs/src/background.tex @@ -62,8 +62,8 @@ aggregation} algorithm \cite{BREZINA_VANEK,VANEK_MANDEL_BREZINA}. A decoupled ve of this algorithm is implemented, where the smoothed aggregation is applied locally to each submatrix \cite{TUMINARO_TONG}. In the next two subsections we provide a brief description of the multi-level Schwarz preconditioners and of the smoothed -aggregation technique as implemented in MLD2P4. For further details the user -is referred to \cite{para_04,aaecc_07,apnum_07,dd2_96}. +aggregation technique as implemented in MLD2P4. For further details the reader +is referred to \cite{para_04,aaecc_07,apnum_07,MLD2P4_TOMS,dd2_96}. \subsection{Multi-level Schwarz Preconditioners\label{sec:multilevel}} @@ -144,7 +144,7 @@ of the number of iterations on the degree of parallelism we may introduce a global coupling among the overlapping partitions by defining a coarse-space approximation $A_C$ of the matrix $A$. In a pure algebraic setting, $A_C$ is usually built with -a Galerkin approach. Given a set $W_C$ of \emph{coarse vertices}, +the Galerkin approach. Given a set $W_C$ of \emph{coarse vertices}, with size $n_C$, and a suitable restriction operator $R_C \in \Re^{n_C \times n}$, $A_C$ is defined as \[ @@ -225,7 +225,8 @@ example, in Figure~\ref{fig:mlhpost_alg}. Here the number of levels is denoted by $nlev$ and the levels are numbered in increasing order starting from the finest one, i.e.\ the finest level is level 1; the coarse matrix and the corresponding basic preconditioner at each level $l$ are denoted by $A_l$ and -$M_l$, respectively, with $A_1=A$. +$M_l$, respectively, with $A_1=A$, while the related restriction operator is +denoted by $R_l$. % \begin{figure}[t] \begin{center} diff --git a/docs/src/bibliography.tex b/docs/src/bibliography.tex index b68ae5e9..1c48cd4b 100644 --- a/docs/src/bibliography.tex +++ b/docs/src/bibliography.tex @@ -69,7 +69,14 @@ T.~Chan and T.~Mathew, {\em Domain Decomposition Algorithms}, in A.~Iserles, editor, Acta Numerica 1994, 61--143. Cambridge University Press. -% +% +%% \bibitem{MLD2P4_TOMS} +%% P.~D'Ambra, D.~di~Serafino, S.~Filippone, +%% \emph{MLD2P4: a Package of Parallel Multilevel +%% Algebraic Domain Decomposition Preconditioners +%% in Fortran 95}, +%% COMPLETARE. +% \bibitem{UMFPACK} T.A.~Davis, {\em Algorithm 832: UMFPACK - an Unsymmetric-pattern Multifrontal diff --git a/docs/src/building.tex b/docs/src/building.tex index 613cc93c..fce90eb8 100644 --- a/docs/src/building.tex +++ b/docs/src/building.tex @@ -96,7 +96,7 @@ be specified with an {\em absolute} path). The full set of options may be looked at by issuing the command \verb|./configure --help|, which produces: \begin{verbatim} -`configure' configures MLD2P4 1.0 to adapt to many kinds of systems. +`configure' configures MLD2P4 1.1 to adapt to many kinds of systems. Usage: ./configure [OPTION]... [VAR=VALUE]... diff --git a/docs/src/gettingstarted.tex b/docs/src/gettingstarted.tex index 6766ec5b..ff6510b1 100644 --- a/docs/src/gettingstarted.tex +++ b/docs/src/gettingstarted.tex @@ -94,7 +94,7 @@ Multilevel &\verb|'ML'| & Multi-level hybrid preconditioner (additive Coarsest matrix: distributed among the processors. Coarsest-level solver: 4 sweeps of the block-Jacobi solver, - with LU (or ILU) factorization of the blocks + with LU or ILU factorization of the blocks (UMFPACK for the double precision versions and SuperLU for the single precision ones, if the packages have been installed; ILU(0), otherwise). \\ diff --git a/docs/src/license.tex b/docs/src/license.tex index 005ffa08..edb5e9e5 100644 --- a/docs/src/license.tex +++ b/docs/src/license.tex @@ -5,11 +5,11 @@ The MLD2P4 is freely distributable under the following copyright terms: {\small \begin{verbatim} - MLD2P4 version 1.0 + MLD2P4 version 1.1 MultiLevel Domain Decomposition Parallel Preconditioners Package based on PSBLAS (Parallel Sparse BLAS version 2.3) -(C) Copyright 2008 +(C) Copyright 2008, 2009 Salvatore Filippone University of Rome Tor Vergata Alfredo Buttari University of Rome Tor Vergata @@ -41,4 +41,4 @@ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \end{verbatim} -} \ No newline at end of file +} diff --git a/docs/src/overview.tex b/docs/src/overview.tex index d4537981..1d7e2e57 100644 --- a/docs/src/overview.tex +++ b/docs/src/overview.tex @@ -69,7 +69,8 @@ build any preconditioner available in MLD2P4 and to apply it within a PSBLAS Kry On the other hand, the routines of the middle and lower layer can be used and extended by expert users to build new versions of multi-level Schwarz preconditioners. We provide here a description of the upper-layer routines, but not of the -medium-layer ones. +medium-layer ones.%% For a detailed description of the overall software architecture +%% of MLD2P4 the reader is referred to~\cite{MLD2P4_TOMS}. This guide is organized as follows. General information on the distribution of the source code is reported in Section~\ref{sec:distribution}, while details on the configuration diff --git a/docs/src/userguide.tex b/docs/src/userguide.tex index 8dd43182..e98993b4 100644 --- a/docs/src/userguide.tex +++ b/docs/src/userguide.tex @@ -27,7 +27,7 @@ \pdfcompresslevel=0 %-- 0 = none, 9 = best \pdfinfo{ %-- Info dictionary of PDF output /Author (PD, DdS, SF) /Title (MultiLevel Domain Decomposition Parallel Preconditioners Package - based on PSBLAS, V. 1.0) + based on PSBLAS, V. 1.1) /Subject (MultiLevel Domain Decomposition Parallel Preconditioners Package) /Keywords (Parallel Numerical Software, Algebraic Multilevel Preconditioners, Sparse Iterative Solvers, PSBLAS, MPI) /Creator (pdfLaTeX) @@ -125,9 +125,9 @@ based on PSBLAS} \vspace{\stretch{1}} \noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth} \flushright -\large Software version: 1.0\\ +\large Software version: 1.1\\ %\today -\large Sept. 9th, 2008 +\large March 13, 2009 \end{minipage}} %\addtolength{\textwidth}{\centeroffset} \vspace{\stretch{2}} diff --git a/docs/src/userhtml.tex b/docs/src/userhtml.tex index 0f575c24..0e072c88 100644 --- a/docs/src/userhtml.tex +++ b/docs/src/userhtml.tex @@ -102,9 +102,9 @@ based on PSBLAS}\\[3ex] University of Rome ``Tor Vergata'', Italy\\[2ex] %\\[10ex] %\today -Software version: 1.0\\ +Software version: 1.1\\ %\today -Sept. 9th, 2008 +March 13, 2009 \clearpage \ \\ \thispagestyle{empty} diff --git a/docs/src/userinterface.tex b/docs/src/userinterface.tex index 19e49401..cfaf3d5f 100644 --- a/docs/src/userinterface.tex +++ b/docs/src/userinterface.tex @@ -228,9 +228,10 @@ refer to Section~\ref{sec:background}. & Aggregation algorithm. Currently, only the decoupled aggregation is available. \\ \hline \verb|mld_aggr_kind_| & \verb|character(len=*)| - & \texttt{'SMOOTH'} \hspace{2.5cm} \texttt{'RAW'} - & \texttt{'SMOOTH'} - & Type of aggregation: smoothed, raw (i.e.\ using the tentative prolongator). \\ \hline + & \texttt{'SMOOTHED'} \hspace{2.5cm} \texttt{'NONSMOOTHED'} + & \texttt{'SMOOTHED'} + & Type of aggregation: smoothed, nonsmoothed + (i.e.\ using the tentative prolongator). \\ \hline \verb|mld_aggr_thresh_| & \verb|real(|\emph{kind\_parameter}\verb|)| & Any~real~num. $\in [0, 1]$ & 0 @@ -312,10 +313,10 @@ refer to Section~\ref{sec:background}. & 0 & Drop tolerance $t$ in the ILU($p,t$) factorization. \\ \hline -\multicolumn{5}{|l|}{{\bfseries Note} Defaults for +\multicolumn{5}{|l|}{{\bfseries Note:} defaults for {\texttt mld\_coarse\_subsolve\_} are chosen as }\\ -\multicolumn{5}{|l|}{Single precision version: 'SLU' if installed, 'ILU' otherwise}\\ -\multicolumn{5}{|l|}{Double precision version: 'UMF' if installed, +\multicolumn{5}{|l|}{single precision version: 'SLU' if installed, 'ILU' otherwise}\\ +\multicolumn{5}{|l|}{double precision version: 'UMF' if installed, else 'SLU' if installed, 'ILU' otherwise}\\ \hline \end{tabular} @@ -379,7 +380,7 @@ preconditioner, stored into \verb|p|, and $op$ denotes the preconditioner itself or its transpose, according to the value of \verb|trans|. Note that, when MLD2P4 is used with a Krylov solver from PSBLAS, -\verb|mld_precaply| is called within the PSBLAS routine \verb|mld_krylov| +\verb|mld_precaply| is called within the PSBLAS routine \verb|psb_krylov| and hence it is completely transparent to the user. {\vskip2\baselineskip\noindent\large\bfseries Arguments} diff --git a/examples/fileread/data_input.f90 b/examples/fileread/data_input.f90 index 9a3c145b..19349aee 100644 --- a/examples/fileread/data_input.f90 +++ b/examples/fileread/data_input.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/examples/fileread/mld_cexample_1lev.f90 b/examples/fileread/mld_cexample_1lev.f90 index e839dd1c..d5987a4c 100644 --- a/examples/fileread/mld_cexample_1lev.f90 +++ b/examples/fileread/mld_cexample_1lev.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/examples/fileread/mld_cexample_ml.f90 b/examples/fileread/mld_cexample_ml.f90 index e297ddb5..e63ae994 100644 --- a/examples/fileread/mld_cexample_ml.f90 +++ b/examples/fileread/mld_cexample_ml.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/examples/fileread/mld_dexample_1lev.f90 b/examples/fileread/mld_dexample_1lev.f90 index 0b8f4179..b2bb7552 100644 --- a/examples/fileread/mld_dexample_1lev.f90 +++ b/examples/fileread/mld_dexample_1lev.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/examples/fileread/mld_dexample_ml.f90 b/examples/fileread/mld_dexample_ml.f90 index b94147c1..4c289846 100644 --- a/examples/fileread/mld_dexample_ml.f90 +++ b/examples/fileread/mld_dexample_ml.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/examples/fileread/mld_sexample_1lev.f90 b/examples/fileread/mld_sexample_1lev.f90 index d2db0dc6..dd19b9f2 100644 --- a/examples/fileread/mld_sexample_1lev.f90 +++ b/examples/fileread/mld_sexample_1lev.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/examples/fileread/mld_sexample_ml.f90 b/examples/fileread/mld_sexample_ml.f90 index 0df93e68..98c39603 100644 --- a/examples/fileread/mld_sexample_ml.f90 +++ b/examples/fileread/mld_sexample_ml.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/examples/fileread/mld_zexample_1lev.f90 b/examples/fileread/mld_zexample_1lev.f90 index 05ae2ec0..173e05c1 100644 --- a/examples/fileread/mld_zexample_1lev.f90 +++ b/examples/fileread/mld_zexample_1lev.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/examples/fileread/mld_zexample_ml.f90 b/examples/fileread/mld_zexample_ml.f90 index bfea0f50..f16decf8 100644 --- a/examples/fileread/mld_zexample_ml.f90 +++ b/examples/fileread/mld_zexample_ml.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/examples/pdegen/data_input.f90 b/examples/pdegen/data_input.f90 index 9a3c145b..19349aee 100644 --- a/examples/pdegen/data_input.f90 +++ b/examples/pdegen/data_input.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/examples/pdegen/mld_dexample_1lev.f90 b/examples/pdegen/mld_dexample_1lev.f90 index 5197c4db..d89f45b5 100644 --- a/examples/pdegen/mld_dexample_1lev.f90 +++ b/examples/pdegen/mld_dexample_1lev.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/examples/pdegen/mld_dexample_ml.f90 b/examples/pdegen/mld_dexample_ml.f90 index 5e33ad40..f260a322 100644 --- a/examples/pdegen/mld_dexample_ml.f90 +++ b/examples/pdegen/mld_dexample_ml.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/examples/pdegen/mld_sexample_1lev.f90 b/examples/pdegen/mld_sexample_1lev.f90 index 2c79ffad..5970ccdd 100644 --- a/examples/pdegen/mld_sexample_1lev.f90 +++ b/examples/pdegen/mld_sexample_1lev.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/examples/pdegen/mld_sexample_ml.f90 b/examples/pdegen/mld_sexample_ml.f90 index 3cf35faa..9252810e 100644 --- a/examples/pdegen/mld_sexample_ml.f90 +++ b/examples/pdegen/mld_sexample_ml.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/krylov/psb_prec_mod.F90 b/krylov/psb_prec_mod.F90 index b88bf3ca..b21d2c40 100644 --- a/krylov/psb_prec_mod.F90 +++ b/krylov/psb_prec_mod.F90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_caggrmap_bld.f90 b/mlprec/mld_caggrmap_bld.f90 index 2b1a3d54..0bff5de2 100644 --- a/mlprec/mld_caggrmap_bld.f90 +++ b/mlprec/mld_caggrmap_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -68,14 +68,14 @@ ! the fine-level matrix. ! desc_a - type(psb_desc_type), input. ! The communication descriptor of the fine-level matrix. -! nlaggr - integer, dimension(:), allocatable. -! nlaggr(i) contains the aggregates held by process i. ! ilaggr - integer, dimension(:), allocatable. ! The mapping between the row indices of the coarse-level ! matrix and the row indices of the fine-level matrix. ! ilaggr(i)=j means that node i in the adjacency graph ! of the fine-level matrix is mapped onto node j in the ! adjacency graph of the coarse-level matrix. +! nlaggr - integer, dimension(:), allocatable. +! nlaggr(i) contains the aggregates held by process i. ! info - integer, output. ! Error code. ! @@ -86,7 +86,7 @@ subroutine mld_caggrmap_bld(aggr_type,theta,a,desc_a,ilaggr,nlaggr,info) implicit none -! Arguments + ! Arguments integer, intent(in) :: aggr_type real(psb_spk_), intent(in) :: theta type(psb_cspmat_type), intent(in) :: a @@ -94,7 +94,7 @@ subroutine mld_caggrmap_bld(aggr_type,theta,a,desc_a,ilaggr,nlaggr,info) integer, allocatable, intent(out) :: ilaggr(:),nlaggr(:) integer, intent(out) :: info -! Local variables + ! Local variables integer, allocatable :: ils(:), neigh(:) integer :: icnt,nlp,k,n,ia,isz,nr, naggr,i,j,m type(psb_cspmat_type) :: atmp, atrans @@ -131,7 +131,7 @@ subroutine mld_caggrmap_bld(aggr_type,theta,a,desc_a,ilaggr,nlaggr,info) atmp%m=nr atmp%k=nr if (info == 0) call psb_sp_free(atrans,info) - if (info == 0) call psb_ipcoo2csr(atmp,info) + if (info == 0) call psb_spcnv(atmp,info,afmt='csr') if (info == 0) call mld_dec_map_bld(theta,atmp,desc_a,nlaggr,ilaggr,info) if (info == 0) call psb_sp_free(atmp,info) @@ -161,8 +161,6 @@ subroutine mld_caggrmap_bld(aggr_type,theta,a,desc_a,ilaggr,nlaggr,info) contains - - subroutine mld_dec_map_bld(theta,a,desc_a,nlaggr,ilaggr,info) use psb_base_mod @@ -337,7 +335,7 @@ contains ! isz = nr+1 ia = -1 - cpling = 0.0 + cpling = szero call psb_sp_getrow(i,a,nz,irow,icol,val,info) if (info/=0) then info=4010 @@ -384,7 +382,7 @@ contains if (ia>naggr) then info=4001 - call psb_errpush(info,name,a_err='loc_Aggregate: n > naggr 4? ') + call psb_errpush(info,name,a_err='loc_Aggregate: n > naggr ? ') goto 9999 end if ils(ia) = ils(ia) + 1 diff --git a/mlprec/mld_caggrmat_asb.f90 b/mlprec/mld_caggrmat_asb.f90 index 9898e3ef..eea67e7c 100644 --- a/mlprec/mld_caggrmat_asb.f90 +++ b/mlprec/mld_caggrmat_asb.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,7 +42,7 @@ ! Version: complex ! ! This routine builds a coarse-level matrix A_C from a fine-level matrix A -! by using a Galerkin approach, i.e. +! by using the Galerkin approach, i.e. ! ! A_C = P_C^T A P_C, ! @@ -50,18 +50,18 @@ ! ! A mapping from the nodes of the adjacency graph of A to the nodes of the ! adjacency graph of A_C has been computed by the mld_aggrmap_bld subroutine. -! The prolongator P_C is built here from this mapping, according to the +! The prolongator P_C is built here from this mapping, according to the ! value of p%iprcparm(mld_aggr_kind_), specified by the user through ! mld_cprecinit and mld_cprecset. ! ! Currently three different prolongators are implemented, corresponding to ! three aggregation algorithms: -! 1. raw aggregation, +! 1. non-smoothed aggregation, ! 2. smoothed aggregation, ! 3. "bizarre" aggregation. -! 1. The raw aggregation uses as prolongator the piecewise constant interpolation -! operator corresponding to the fine-to-coarse level mapping built by -! mld_aggrmap_bld. This is called tentative prolongator. +! 1. The non-smoothed aggregation uses as prolongator the piecewise constant +! interpolation operator corresponding to the fine-to-coarse level mapping built +! by mld_aggrmap_bld. This is called tentative prolongator. ! 2. The smoothed aggregation uses as prolongator the operator obtained by applying ! a damped Jacobi smoother to the tentative prolongator. ! 3. The "bizarre" aggregation uses a prolongator proposed by the authors of MLD2P4. @@ -84,9 +84,17 @@ ! desc_a - type(psb_desc_type), input. ! The communication descriptor of the fine-level matrix. ! p - type(mld_conelev_type), input/output. -! The one-level preconditioner data structure containing the local -! part of the base preconditioner to be built as well as the -! aggregate matrices. +! The 'one-level' data structure that will contain the local +! part of the matrix to be built as well as the information +! concerning the prolongator and its transpose. +! ilaggr - integer, dimension(:), allocatable. +! The mapping between the row indices of the coarse-level +! matrix and the row indices of the fine-level matrix. +! ilaggr(i)=j means that node i in the adjacency graph +! of the fine-level matrix is mapped onto node j in the +! adjacency graph of the coarse-level matrix. +! nlaggr - integer, dimension(:), allocatable. +! nlaggr(i) contains the aggregates held by process i. ! info - integer, output. ! Error code. ! diff --git a/mlprec/mld_caggrmat_nosmth_asb.F90 b/mlprec/mld_caggrmat_nosmth_asb.F90 index b57cd292..2f1ec538 100644 --- a/mlprec/mld_caggrmat_nosmth_asb.F90 +++ b/mlprec/mld_caggrmat_nosmth_asb.F90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,7 +42,7 @@ ! Version: complex ! ! This routine builds a coarse-level matrix A_C from a fine-level matrix A -! by using a Galerkin approach, i.e. +! by using the Galerkin approach, i.e. ! ! A_C = P_C^T A P_C, ! @@ -67,9 +67,17 @@ ! desc_a - type(psb_desc_type), input. ! The communication descriptor of the fine-level matrix. ! p - type(mld_conelev_type), input/output. -! The one-level preconditioner data structure containing the local -! part of the base preconditioner to be built as well as the -! aggregate matrices. +! The 'one-level' data structure that will contain the local +! part of the matrix to be built as well as the information +! concerning the prolongator and its transpose. +! ilaggr - integer, dimension(:), allocatable. +! The mapping between the row indices of the coarse-level +! matrix and the row indices of the fine-level matrix. +! ilaggr(i)=j means that node i in the adjacency graph +! of the fine-level matrix is mapped onto node j in the +! adjacency graph of the coarse-level matrix. +! nlaggr - integer, dimension(:), allocatable. +! nlaggr(i) contains the aggregates held by process i. ! info - integer, output. ! Error code. ! diff --git a/mlprec/mld_caggrmat_smth_asb.F90 b/mlprec/mld_caggrmat_smth_asb.F90 index 8ddff5d8..e4c4ce65 100644 --- a/mlprec/mld_caggrmat_smth_asb.F90 +++ b/mlprec/mld_caggrmat_smth_asb.F90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,7 +42,7 @@ ! Version: complex ! ! This routine builds a coarse-level matrix A_C from a fine-level matrix A -! by using a Galerkin approach, i.e. +! by using the Galerkin approach, i.e. ! ! A_C = P_C^T A P_C, ! @@ -59,7 +59,7 @@ ! of A, and omega is a suitable smoothing parameter. An estimate of the spectral ! radius of D^(-1)A, to be used in the computation of omega, is provided, ! according to the value of p%iprcparm(mld_aggr_omega_alg_), specified by the user -! through mld_dprecinit and mld_dprecset. +! through mld_cprecinit and mld_cprecset. ! ! This routine can also build A_C according to a "bizarre" aggregation algorithm, ! using a "naive" prolongator proposed by the authors of MLD2P4. However, this @@ -68,7 +68,7 @@ ! ! The coarse-level matrix A_C is distributed among the parallel processes or ! replicated on each of them, according to the value of p%iprcparm(mld_coarse_mat_), -! specified by the user through mld_dprecinit and mld_dprecset. +! specified by the user through mld_cprecinit and mld_cprecset. ! ! For more details see ! M. Brezina and P. Vanek, A black-box iterative solver based on a @@ -84,9 +84,17 @@ ! desc_a - type(psb_desc_type), input. ! The communication descriptor of the fine-level matrix. ! p - type(mld_conelev_type), input/output. -! The one-level preconditioner data structure containing the local -! part of the base preconditioner to be built as well as the -! aggregate matrices. +! The 'one-level' data structure that will contain the local +! part of the matrix to be built as well as the information +! concerning the prolongator and its transpose. +! ilaggr - integer, dimension(:), allocatable. +! The mapping between the row indices of the coarse-level +! matrix and the row indices of the fine-level matrix. +! ilaggr(i)=j means that node i in the adjacency graph +! of the fine-level matrix is mapped onto node j in the +! adjacency graph of the coarse-level matrix. +! nlaggr - integer, dimension(:), allocatable. +! nlaggr(i) contains the aggregates held by process i. ! info - integer, output. ! Error code. ! @@ -116,10 +124,10 @@ subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) & naggr, nzl,naggrm1,naggrp1, i, j, k, jd, icolF integer ::ictxt,np,me, err_act, icomm character(len=20) :: name - type(psb_cspmat_type) :: am1,am2, AF + type(psb_cspmat_type) :: am1,am2, af type(psb_cspmat_type) :: am3,am4 complex(psb_spk_), allocatable :: adiag(:) - logical :: ml_global_nmb + logical :: ml_global_nmb, filter_mat integer :: debug_level, debug_unit integer, parameter :: ncmax=16 real(psb_spk_) :: omega, anorm, tmp, dg, theta @@ -168,6 +176,8 @@ subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) & ( (p%iprcparm(mld_aggr_kind_) == mld_biz_prol_).and.& & (p%iprcparm(mld_coarse_mat_) == mld_repl_mat_)) ) + filter_mat = (p%iprcparm(mld_aggr_filter_) == mld_filter_mat_) + if (ml_global_nmb) then ilaggr(1:nrow) = ilaggr(1:nrow) + naggrm1 call psb_halo(ilaggr,desc_a,info) @@ -190,11 +200,11 @@ subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) goto 9999 end if - ! Get diagonal D + ! Get the diagonal D call psb_sp_getdiag(a,adiag,info) if (info == 0) & & call psb_halo(adiag,desc_a,info) - + if(info /= 0) then call psb_errpush(4010,name,a_err='sp_getdiag') goto 9999 @@ -243,45 +253,44 @@ subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) & write(debug_unit,*) me,' ',trim(name),& & ' Initial copies done.' + if (filter_mat) then + ! + ! Build the filtered matrix Af from A + ! + call psb_spcnv(a,af,info,afmt='csr',dupl=psb_dupl_add_) - !********************************+ - ! building the filtered matrix af from A - ! - ! - call psb_spcnv(a,af,info,afmt='csr',dupl=psb_dupl_add_) - - do i=1,nrow - tmp = czero - jd = -1 - do j=af%ia2(i),af%ia2(i+1)-1 - if (af%ia1(j) == i) jd = j - if (abs(af%aspk(j)) < theta*sqrt(abs(adiag(i)*adiag(af%ia1(j))))) then - tmp=tmp+af%aspk(j) - af%aspk(j)=czero - endif + do i=1,nrow + tmp = czero + jd = -1 + do j=af%ia2(i),af%ia2(i+1)-1 + if (af%ia1(j) == i) jd = j + if (abs(af%aspk(j)) < theta*sqrt(abs(adiag(i)*adiag(af%ia1(j))))) then + tmp=tmp+af%aspk(j) + af%aspk(j)=czero + endif + enddo + if (jd == -1) then + write(0,*) 'Wrong input: we need the diagonal!!!!', i + else + af%aspk(jd)=af%aspk(jd)-tmp + end if enddo - if (jd == -1) then - write(0,*) 'Wrong input: we need the diagonal!!!!' - else - af%aspk(jd)=af%aspk(jd)-tmp - end if - enddo - ! Ora eliminiamo i termini che sono stato azzerati - call psb_spcnv(af,info,afmt='coo') - k = 0 - do j=1,psb_sp_get_nnzeros(af) - if ((af%aspk(j) /= czero) .or. (af%ia1(j)==af%ia2(j))) then - k = k + 1 - af%aspk(k) = af%aspk(j) - af%ia1(k) = af%ia1(j) - af%ia2(k) = af%ia2(j) - end if - end do + ! Take out zeroed terms + call psb_spcnv(af,info,afmt='coo') + k = 0 + do j=1,psb_sp_get_nnzeros(af) + if ((af%aspk(j) /= czero) .or. (af%ia1(j)==af%ia2(j))) then + k = k + 1 + af%aspk(k) = af%aspk(j) + af%ia1(k) = af%ia1(j) + af%ia2(k) = af%ia2(j) + end if + end do !!$ write(debug_unit,*) me,' ',trim(name),' Non zeros from filtered matrix:',k,af%m,af%k - call psb_sp_setifld(k,psb_nnz_,af,info) - call psb_spcnv(af,info,afmt='csr') - + call psb_sp_setifld(k,psb_nnz_,af,info) + call psb_spcnv(af,info,afmt='csr') + end if do i=1,size(adiag) @@ -291,10 +300,13 @@ subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) adiag(i) = cone end if end do - call psb_sp_scal(af,adiag,info) + + if (filter_mat) call psb_sp_scal(af,adiag,info) + call psb_sp_scal(am3,adiag,info) if (info /= 0) goto 9999 - !******************************************* + + if (p%iprcparm(mld_aggr_omega_alg_) == mld_eig_est_) then if (p%iprcparm(mld_aggr_eig_) == mld_max_norm_) then @@ -302,7 +314,7 @@ subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) if (p%iprcparm(mld_aggr_kind_) == mld_biz_prol_) then ! - ! This only works with CSR. + ! This only works with CSR ! if (psb_toupper(am3%fida)=='CSR') then anorm = szero @@ -352,43 +364,88 @@ subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) goto 9999 end if - ! % - if (psb_toupper(af%fida)=='CSR') then - do i=1,af%m - do j=af%ia2(i),af%ia2(i+1)-1 - if (af%ia1(j) == i) then - af%aspk(j) = cone - omega*af%aspk(j) - else - af%aspk(j) = - omega*af%aspk(j) - end if + if (filter_mat) then + ! + ! Build the smoothed prolongator using the filtered matrix + ! + if (psb_toupper(af%fida)=='CSR') then + do i=1,af%m + do j=af%ia2(i),af%ia2(i+1)-1 + if (af%ia1(j) == i) then + af%aspk(j) = cone - omega*af%aspk(j) + else + af%aspk(j) = - omega*af%aspk(j) + end if + end do end do - end do - else - call psb_errpush(4001,name,a_err='Invalid AF storage format') - goto 9999 - end if + else + call psb_errpush(4001,name,a_err='Invalid AF storage format') + goto 9999 + end if - if (debug_level >= psb_debug_outer_) & - & write(debug_unit,*) me,' ',trim(name),& - & 'Done gather, going for SYMBMM 1' - ! - ! Symbmm90 does the allocation for its result. - ! - ! am1 = (i-wDA)Ptilde - ! Doing it this way means to consider diag(Ai) - ! - ! - call psb_symbmm(af,am4,am1,info) - if(info /= 0) then - call psb_errpush(4010,name,a_err='symbmm 1') - goto 9999 - end if + if (debug_level >= psb_debug_outer_) & + & write(debug_unit,*) me,' ',trim(name),& + & 'Done gather, going for SYMBMM 1' + ! + ! Symbmm90 does the allocation for its result. + ! + ! am1 = (I-w*D*Af)Ptilde + ! Doing it this way means to consider diag(Af_i) + ! + ! + call psb_symbmm(af,am4,am1,info) + if(info /= 0) then + call psb_errpush(4010,name,a_err='symbmm 1') + goto 9999 + end if - call psb_numbmm(af,am4,am1) + call psb_numbmm(af,am4,am1) - if (debug_level >= psb_debug_outer_) & - & write(debug_unit,*) me,' ',trim(name),& - & 'Done NUMBMM 1' + if (debug_level >= psb_debug_outer_) & + & write(debug_unit,*) me,' ',trim(name),& + & 'Done NUMBMM 1' + else + ! + ! Build the smoothed prolongator using the original matrix + ! + if (psb_toupper(am3%fida)=='CSR') then + do i=1,am3%m + do j=am3%ia2(i),am3%ia2(i+1)-1 + if (am3%ia1(j) == i) then + am3%aspk(j) = cone - omega*am3%aspk(j) + else + am3%aspk(j) = - omega*am3%aspk(j) + end if + end do + end do + else + call psb_errpush(4001,name,a_err='Invalid AM3 storage format') + goto 9999 + end if + + if (debug_level >= psb_debug_outer_) & + & write(debug_unit,*) me,' ',trim(name),& + & 'Done gather, going for SYMBMM 1' + ! + ! Symbmm90 does the allocation for its result. + ! + ! am1 = (I-w*D*A)Ptilde + ! Doing it this way means to consider diag(A_i) + ! + ! + call psb_symbmm(am3,am4,am1,info) + if(info /= 0) then + call psb_errpush(4010,name,a_err='symbmm 1') + goto 9999 + end if + + call psb_numbmm(am3,am4,am1) + + if (debug_level >= psb_debug_outer_) & + & write(debug_unit,*) me,' ',trim(name),& + & 'Done NUMBMM 1' + + end if call psb_sp_free(am4,info) if(info /= 0) then diff --git a/mlprec/mld_cas_aply.f90 b/mlprec/mld_cas_aply.f90 index 6538da81..86e216b4 100644 --- a/mlprec/mld_cas_aply.f90 +++ b/mlprec/mld_cas_aply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_cas_bld.f90 b/mlprec/mld_cas_bld.f90 index 33debf10..1327d807 100644 --- a/mlprec/mld_cas_bld.f90 +++ b/mlprec/mld_cas_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_cbaseprec_aply.f90 b/mlprec/mld_cbaseprec_aply.f90 index 506fa7a1..59a5e651 100644 --- a/mlprec/mld_cbaseprec_aply.f90 +++ b/mlprec/mld_cbaseprec_aply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -163,7 +163,7 @@ subroutine mld_cbaseprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) case(mld_bjac_,mld_as_) ! - ! Additive Schwarz preconditioner + ! Additive Schwarz preconditioner (including block-Jacobi as special case) ! call mld_as_aply(alpha,prec,x,beta,y,desc_data,trans_,work,info) if(info /= 0) then diff --git a/mlprec/mld_cbaseprec_bld.f90 b/mlprec/mld_cbaseprec_bld.f90 index bf23a30e..d14e7ec7 100644 --- a/mlprec/mld_cbaseprec_bld.f90 +++ b/mlprec/mld_cbaseprec_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -46,7 +46,7 @@ ! base preconditioner at each level. ! ! Details on the base preconditioner to be built are stored in the iprcparm -! field of the preconditioner data structure (for a description of this +! field of the base preconditioner data structure (for a description of this ! data structure see mld_prec_type.f90). ! ! diff --git a/mlprec/mld_ccoarse_bld.f90 b/mlprec/mld_ccoarse_bld.f90 index 8c1b8397..08cefda7 100644 --- a/mlprec/mld_ccoarse_bld.f90 +++ b/mlprec/mld_ccoarse_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -41,11 +41,15 @@ ! Subroutine: mld_ccoarse_bld ! Version: complex ! -! This routine builds the preconditioner corresponding to the current -! level of the multilevel preconditioner. The routine first builds the -! (coarse) matrix associated to the current level from the (fine) matrix -! associated to the previous level, then builds the related base preconditioner. -! Note that this routine is only ever called on levels >= 2. +! This routine builds the matrix associated to the current level of the +! multilevel preconditioner from the matrix associated to the previous level, +! by using a smoothed aggregation technique (therefore, it also builds the +! prolongation and restriction operators mapping the current level to the +! previous one and vice versa). Then the routine builds the base preconditioner +! at the current level. +! The current level is regarded as the coarse one, while the previous as +! the fine one. This is in agreement with the fact that the routine is called, +! by mld_mlprec_bld, only on levels >=2. ! ! ! Arguments: @@ -55,8 +59,9 @@ ! desc_a - type(psb_desc_type), input. ! The communication descriptor of a. ! p - type(mld_conelev_type), input/output. -! The preconditioner data structure containing the local -! part of the one-level preconditioner to be built. +! The 'one-level' data structure containing the local part +! of the base preconditioner to be built as well as +! information concerning the prolongator and its transpose. ! info - integer, output. ! Error code. ! @@ -100,6 +105,8 @@ subroutine mld_ccoarse_bld(a,desc_a,p,info) & mld_smooth_prol_,is_legal_ml_aggr_kind) call mld_check_def(p%iprcparm(mld_coarse_mat_),'Coarse matrix',& & mld_distr_mat_,is_legal_ml_coarse_mat) + call mld_check_def(p%iprcparm(mld_aggr_filter_),'Use filtered matrix',& + & mld_no_filter_mat_,is_legal_aggr_filter) call mld_check_def(p%iprcparm(mld_smoother_pos_),'smooth_pos',& & mld_pre_smooth_,is_legal_ml_smooth_pos) call mld_check_def(p%iprcparm(mld_aggr_omega_alg_),'Omega Alg.',& @@ -124,7 +131,7 @@ subroutine mld_ccoarse_bld(a,desc_a,p,info) end if ! - ! Build the coarse-level matrix from the fine level one, starting from + ! Build the coarse-level matrix from the fine-level one, starting from ! the mapping defined by mld_aggrmap_bld and applying the aggregation ! algorithm specified by p%iprcparm(mld_aggr_kind_) ! diff --git a/mlprec/mld_cdiag_bld.f90 b/mlprec/mld_cdiag_bld.f90 index 63bd33ba..7dd5e8e7 100644 --- a/mlprec/mld_cdiag_bld.f90 +++ b/mlprec/mld_cdiag_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_cfact_bld.f90 b/mlprec/mld_cfact_bld.f90 index 90253993..f485f887 100644 --- a/mlprec/mld_cfact_bld.f90 +++ b/mlprec/mld_cfact_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -41,10 +41,10 @@ ! Subroutine: mld_cfact_bld ! Version: complex ! -! This routine computes an LU or incomplete LU (ILU) factorization of the diagonal -! blocks of a distributed matrix, according to the value of -! p%iprcparm(iprcparm(sub_solve_), set by the user through -! mld_dprecinit or mld_dprecset. +! This routine computes an LU or incomplete LU (ILU) factorization of the +! diagonal blocks of a distributed matrix, according to the value of +! p%iprcparm(iprcparm(sub_solve_), set by the user through mld_cprecinit +! or mld_cprecset. ! It may also compute an LU factorization of a distributed matrix, or split ! a distributed matrix into its block-diagonal and off block-diagonal parts, ! for the future application of multiple block-Jacobi sweeps. @@ -60,8 +60,8 @@ ! More precisely, the routine performs one of the following tasks: ! ! 1. LU or ILU factorization of the diagonal blocks of the distributed matrix -! for the construction of a block-Jacobi or AS preconditioners -! (allowed at any level of a multilevel preconditioner); +! for the construction of block-Jacobi or AS preconditioners (allowed at +! any level of a multilevel preconditioner); ! ! 2. setup of block-Jacobi sweeps to compute an approximate solution of a ! linear system diff --git a/mlprec/mld_cilu0_fact.f90 b/mlprec/mld_cilu0_fact.f90 index c219edb4..8097edbf 100644 --- a/mlprec/mld_cilu0_fact.f90 +++ b/mlprec/mld_cilu0_fact.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,11 +42,11 @@ ! Version: complex ! Contains: mld_cilu0_factint, ilu_copyin ! -! This routine computes either the ILU(0) or the MILU(0) factorization of the -! diagonal blocks of a distributed matrix. These factorizations -! are used to build the 'base preconditioner' (block-Jacobi preconditioner/solver, -! Additive Schwarz preconditioner) corresponding to a given level of a multilevel -! preconditioner. +! This routine computes either the ILU(0) or the MILU(0) factorization of +! the diagonal blocks of a distributed matrix. These factorizations are used +! to build the 'base preconditioner' (block-Jacobi preconditioner/solver, +! Additive Schwarz preconditioner) corresponding to a given level of a +! multilevel preconditioner. ! ! Details on the above factorizations can be found in ! Y. Saad, Iterative Methods for Sparse Linear Systems, Second Edition, diff --git a/mlprec/mld_cilu_bld.f90 b/mlprec/mld_cilu_bld.f90 index 89c0d1ee..6cfe882b 100644 --- a/mlprec/mld_cilu_bld.f90 +++ b/mlprec/mld_cilu_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_ciluk_fact.f90 b/mlprec/mld_ciluk_fact.f90 index edf12d6e..d28d9932 100644 --- a/mlprec/mld_ciluk_fact.f90 +++ b/mlprec/mld_ciluk_fact.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -43,10 +43,10 @@ ! Contains: mld_ciluk_factint, iluk_copyin, iluk_fact, iluk_copyout ! ! This routine computes either the ILU(k) or the MILU(k) factorization of the -! diagonal blocks of a distributed matrix. These factorizations are used to build -! the 'base preconditioner' (block-Jacobi preconditioner/solver, -! Additive Schwarz preconditioner) corresponding to a certain level of a multilevel -! preconditioner. +! diagonal blocks of a distributed matrix. These factorizations are used to +! build the 'base preconditioner' (block-Jacobi preconditioner/solver, +! Additive Schwarz preconditioner) corresponding to a certain level of a +! multilevel preconditioner. ! ! Details on the above factorizations can be found in ! Y. Saad, Iterative Methods for Sparse Linear Systems, Second Edition, @@ -284,7 +284,6 @@ contains integer, allocatable :: uplevs(:), rowlevs(:),idxs(:) complex(psb_spk_), allocatable :: row(:) type(psb_int_heap) :: heap - logical,parameter :: debug=.false. type(psb_cspmat_type) :: trw character(len=20), parameter :: name='mld_ciluk_factint' character(len=20) :: ch_err diff --git a/mlprec/mld_cilut_fact.f90 b/mlprec/mld_cilut_fact.f90 index cbd78e78..da5943f8 100644 --- a/mlprec/mld_cilut_fact.f90 +++ b/mlprec/mld_cilut_fact.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,8 +42,8 @@ ! Version: real ! Contains: mld_cilut_factint, ilut_copyin, ilut_fact, ilut_copyout ! -! This routine computes the ILU(k,t) factorization of the diagonal blocks of a -! distributed matrix. This factorization is used to build the 'base +! This routine computes the ILU(k,t) factorization of the diagonal blocks +! of a distributed matrix. This factorization is used to build the 'base ! preconditioner' (block-Jacobi preconditioner/solver, Additive Schwarz ! preconditioner) corresponding to a certain level of a multilevel preconditioner. ! @@ -51,11 +51,11 @@ ! Y. Saad, Iterative Methods for Sparse Linear Systems, Second Edition, ! SIAM, 2003, Chapter 10. ! -! The local matrix is stored into a and blck, as specified in -! the description of the arguments below. The storage format for both the L and -! U factors is CSR. The diagonal of the U factor is stored separately (actually, -! the inverse of the diagonal entries is stored; this is then managed in the solve -! stage associated to the ILU(k,t) factorization). +! The local matrix is stored into a and blck, as specified in the description +! of the arguments below. The storage format for both the L and U factors is +! CSR. The diagonal of the U factor is stored separately (actually, the +! inverse of the diagonal entries is stored; this is then managed in the +! solve stage associated to the ILU(k,t) factorization). ! ! ! Arguments: diff --git a/mlprec/mld_cmlprec_aply.f90 b/mlprec/mld_cmlprec_aply.f90 index de543166..d961aeeb 100644 --- a/mlprec/mld_cmlprec_aply.f90 +++ b/mlprec/mld_cmlprec_aply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -46,7 +46,7 @@ ! Y = beta*Y + alpha*op(M^(-1))*X, ! where ! - M is a multilevel domain decomposition (Schwarz) preconditioner associated -! to a certain matrix A and stored in the array precv, +! to a certain matrix A and stored in p, ! - op(M^(-1)) is M^(-1) or its transpose, according to the value of trans, ! - X and Y are vectors, ! - alpha and beta are scalars. @@ -55,9 +55,11 @@ ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! -! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', -! each representing the part of the preconditioner associated to a certain level. -! For each level ilev, the preconditioner K(ilev) is stored in precv(ilev) +! A multilevel preconditioner is regarded as an array of 'one-level' data structures, +! each containing the part of the preconditioner associated to a certain level +! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). +! For each level ilev, the 'base preconditioner' K(ilev) is stored in +! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -79,42 +81,40 @@ ! alpha - complex(psb_spk_), input. ! The scalar alpha. ! p - type(mld_cprec_type), input. -! The array of one-level preconditioner data structures containing the -! local parts of the preconditioners to be applied at each level. +! The multilevel preconditioner data structure containing the +! local part of the preconditioner to be applied. ! Note that nlev = size(p%precv) = number of levels. -! p%precv(ilev)%prec - type(psb_cbaseprec_type) -! The "base" preconditioner for the current level +! p%precv(ilev)%prec - type(psb_cbaseprec_type) +! The 'base preconditioner' for the current level ! p%precv(ilev)%ac - type(psb_cspmat_type) -! The local part of the matrix A(ilev). +! The local part of the matrix A(ilev). ! p%precv(ilev)%desc_ac - type(psb_desc_type). -! The communication descriptor associated to the sparse -! matrix A(ilev) -! p%precv(ilev)%map - type(psb_inter_desc_type) -! Stores the linear operators mapping between levels -! (ilev-1) and (ilev). These are the restriction and -! prolongation operators described in the sequel. +! The communication descriptor associated to the sparse +! matrix A(ilev) +! p%precv(ilev)%map - type(psb_inter_desc_type) +! Stores the linear operators mapping level (ilev-1) +! to (ilev) and vice versa. These are the restriction +! and prolongation operators described in the sequel. ! p%precv(ilev)%iprcparm - integer, dimension(:), allocatable. -! The integer parameters defining the multilevel -! strategy +! The integer parameters defining the multilevel +! strategy ! p%precv(ilev)%rprcparm - real(psb_spk_), dimension(:), allocatable. -! The real parameters defining the multilevel strategy +! The real parameters defining the multilevel strategy ! p%precv(ilev)%mlia - integer, dimension(:), allocatable. -! The aggregation map (ilev-1) --> (ilev). -! In case of non-smoothed aggregation, it is used -! instead of mld_sm_pr_. +! The aggregation map (ilev-1) --> (ilev). ! p%precv(ilev)%nlaggr - integer, dimension(:), allocatable. -! The number of aggregates (rows of A(ilev)) on the -! various processes. +! The number of aggregates (rows of A(ilev)) on the +! various processes. ! p%precv(ilev)%base_a - type(psb_cspmat_type), pointer. -! Pointer (really a pointer!) to the base matrix of -! the current level, i.e. the local part of A(ilev); -! so we have a unified treatment of residuals. We -! need this to avoid passing explicitly the matrix -! A(ilev) to the routine which applies the -! preconditioner. +! Pointer (really a pointer!) to the base matrix of +! the current level, i.e. the local part of A(ilev); +! so we have a unified treatment of residuals. We +! need this to avoid passing explicitly the matrix +! A(ilev) to the routine which applies the +! preconditioner. ! p%precv(ilev)%base_desc - type(psb_desc_type), pointer. -! Pointer to the communication descriptor associated -! to the sparse matrix pointed by base_a. +! Pointer to the communication descriptor associated +! to the sparse matrix pointed by base_a. ! ! x - complex(psb_spk_), dimension(:), input. ! The local part of the vector X. @@ -272,7 +272,7 @@ contains ! Y = beta*Y + alpha*op(M^(-1))*X, ! where ! - M is an additive multilevel domain decomposition (Schwarz) preconditioner - ! associated to a certain matrix A and stored in the array p%precv, + ! associated to a certain matrix A and stored in p, ! - op(M^(-1)) is M^(-1) or its (conjugate) transpose, according to ! the value of trans, ! - X and Y are vectors, @@ -285,9 +285,11 @@ contains ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! - ! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', - ! each representing the part of the preconditioner associated to a certain level. - ! For each level ilev, the base preconditioner K(ilev) is stored in p%precv(ilev) + ! The multilevel preconditioner is regarded as an array of 'one-level' data structures, + ! each containing the part of the preconditioner associated to a certain level + ! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). + ! For each level ilev, the 'base preconditioner' K(ilev) is stored in + ! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -303,10 +305,10 @@ contains ! ! For a description of the arguments see mld_cmlprec_aply. ! - ! A sketch of the algorithm implemented in this routine is provided below - ! (AV(ilev; sm_pr_) denotes the smoothed prolongator from level ilev to - ! level ilev-1, while AV(ilev; sm_pr_t_) denotes its transpose, i.e. the - ! corresponding restriction operator from level ilev-1 to level ilev). + ! A sketch of the algorithm implemented in this routine is provided below. + ! (P(ilev) denotes the smoothed prolongator from level ilev to level + ! ilev-1, while PT(ilev) denotes its transpose, i.e. the corresponding + ! restriction operator from level ilev-1 to level ilev). ! ! 1. ! Apply the base preconditioner at level 1. ! ! The sum over the subdomains is carried out in the @@ -317,7 +319,7 @@ contains ! 2. DO ilev=2,nlev ! ! ! Transfer X(ilev-1) to the next coarser level. - ! X(ilev) = AV(ilev; sm_pr_t_)*X(ilev-1) + ! X(ilev) = PT(ilev)*X(ilev-1) ! ! ! Apply the base preconditioner at the current level. ! ! The sum over the subdomains is carried out in the @@ -329,7 +331,7 @@ contains ! 3. DO ilev=nlev-1,1,-1 ! ! ! Transfer Y(ilev+1) to the next finer level. - ! Y(ilev) = AV(ilev+1; sm_pr_)*Y(ilev+1) + ! Y(ilev) = P(ilev+1)*Y(ilev+1) ! ! ENDDO ! @@ -419,7 +421,7 @@ contains goto 9999 end if - ! Apply prolongator transpose, i.e. restriction + ! Apply the prolongator transpose, i.e. the restriction call psb_map_X2Y(cone,mlprec_wrk(ilev-1)%x2l,& & czero,mlprec_wrk(ilev)%x2l,& & p%precv(ilev)%map,info,work=work) @@ -449,7 +451,7 @@ contains nr2l = psb_cd_get_local_rows(p%precv(ilev)%base_desc) ! - ! Apply prolongator + ! Apply the prolongator ! call psb_map_Y2X(cone,mlprec_wrk(ilev)%y2l,& & cone,mlprec_wrk(ilev-1)%y2l,& @@ -500,7 +502,7 @@ contains ! Y = beta*Y + alpha*op(M^(-1))*X, ! where ! - M is a hybrid multilevel domain decomposition (Schwarz) preconditioner - ! associated to a certain matrix A and stored in the array p%precv, + ! associated to a certain matrix A and stored in p, ! - op(M^(-1)) is M^(-1) or its (conjugate) transpose, according to ! the value of trans, ! - X and Y are vectors, @@ -513,9 +515,11 @@ contains ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! - ! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', - ! each representing the part of the preconditioner associated to a certain level. - ! For each level ilev, the base preconditioner K(ilev) is stored in p%precv(ilev) + ! The multilevel preconditioner is regarded as an array of 'one-level' data structures, + ! each containing the part of the preconditioner associated to a certain level + ! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). + ! For each level ilev, the 'base preconditioner' K(ilev) is stored in + ! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -531,10 +535,10 @@ contains ! ! For a description of the arguments see mld_cmlprec_aply. ! - ! A sketch of the algorithm implemented in this routine is provided below - ! (AV(ilev; sm_pr_) denotes the smoothed prolongator from level ilev to - ! level ilev-1, while AV(ilev; sm_pr_t_) denotes its transpose, i.e. the - ! corresponding restriction operator from level ilev-1 to level ilev). + ! A sketch of the algorithm implemented in this routine is provided below. + ! (P(ilev) denotes the smoothed prolongator from level ilev to level + ! ilev-1, while PT(ilev) denotes its transpose, i.e. the corresponding + ! restriction operator from level ilev-1 to level ilev). ! ! 1. X(1) = Xext ! @@ -547,7 +551,7 @@ contains ! 4. DO ilev=2, nlev ! ! ! Transfer the residual to the current (coarser) level. - ! X(ilev) = AV(ilev; sm_pr_t_)*TX(ilev-1) + ! X(ilev) = PT(ilev)*TX(ilev-1) ! ! ! Apply the base preconditioner at the current level. ! ! The sum over the subdomains is carried out in the @@ -564,7 +568,7 @@ contains ! 5. DO ilev=nlev-1,1,-1 ! ! ! Transfer Y(ilev+1) to the next finer level - ! Y(ilev) = Y(ilev) + AV(ilev+1; sm_pr_)*Y(ilev+1) + ! Y(ilev) = Y(ilev) + P(ilev+1)*Y(ilev+1) ! ! ENDDO ! @@ -680,7 +684,7 @@ contains goto 9999 end if - ! Apply prolongator transpose, i.e. restriction + ! Apply the prolongator transpose, i.e. the restriction call psb_map_X2Y(cone,mlprec_wrk(ilev-1)%tx,& & czero,mlprec_wrk(ilev)%x2l,& & p%precv(ilev)%map,info,work=work) @@ -718,7 +722,7 @@ contains ! do ilev = nlev-1, 1, -1 ! - ! Apply prolongator + ! Apply the prolongator ! call psb_map_Y2X(cone,mlprec_wrk(ilev+1)%y2l,& & cone,mlprec_wrk(ilev)%y2l,& @@ -782,9 +786,11 @@ contains ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! - ! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', - ! each representing the part of the preconditioner associated to a certain level. - ! For each level ilev, the base preconditioner K(ilev) is stored in p%precv(ilev) + ! The multilevel preconditioner is regarded as an array of 'one-level' data structures, + ! each containing the part of the preconditioner associated to a certain level + ! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). + ! For each level ilev, the 'base preconditioner' K(ilev) is stored in + ! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -800,16 +806,16 @@ contains ! For a description of the arguments see mld_cmlprec_aply. ! ! A sketch of the algorithm implemented in this routine is provided below. - ! (AV(ilev; sm_pr_) denotes the smoothed prolongator from level ilev to - ! level ilev-1, while AV(ilev; sm_pr_t_) denotes its transpose, i.e. the - ! corresponding restriction operator from level ilev-1 to level ilev). + ! (P(ilev) denotes the smoothed prolongator from level ilev to level + ! ilev-1, while PT(ilev) denotes its transpose, i.e. the corresponding + ! restriction operator from level ilev-1 to level ilev). ! ! 1. X(1) = Xext ! ! 2. DO ilev=2, nlev ! ! ! Transfer X(ilev-1) to the next coarser level. - ! X(ilev) = AV(ilev; sm_pr_t_)*X(ilev-1) + ! X(ilev) = PT(ilev)*X(ilev-1) ! ! ENDDO ! @@ -819,7 +825,7 @@ contains ! 4. DO ilev=nlev-1,1,-1 ! ! ! Transfer Y(ilev+1) to the next finer level. - ! Y(ilev) = AV(ilev+1; sm_pr_)*Y(ilev+1) + ! Y(ilev) = P(ilev+1)*Y(ilev+1) ! ! ! Compute the residual at the current level and apply to it the ! ! base preconditioner. The sum over the subdomains is carried out @@ -926,7 +932,7 @@ contains goto 9999 end if - ! Apply prolongator transpose, i.e. restriction + ! Apply the prolongator transpose, i.e. the restriction call psb_map_X2Y(cone,mlprec_wrk(ilev-1)%x2l,& & czero,mlprec_wrk(ilev)%x2l,& & p%precv(ilev)%map,info,work=work) @@ -979,7 +985,7 @@ contains & ' starting down sweep',ilev ! - ! Apply prolongator + ! Apply the prolongator ! call psb_map_Y2X(cone,mlprec_wrk(ilev+1)%y2l,& & czero,mlprec_wrk(ilev)%y2l,& @@ -1069,9 +1075,11 @@ contains ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! - ! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', - ! each representing the part of the preconditioner associated to a certain level. - ! For each level ilev, the base preconditioner K(ilev) is stored in p%precv(ilev) + ! The multilevel preconditioner is regarded as an array of 'one-level' data structures, + ! each containing the part of the preconditioner associated to a certain level + ! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). + ! For each level ilev, the 'base preconditioner' K(ilev) is stored in + ! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -1088,9 +1096,9 @@ contains ! For a description of the arguments see mld_cmlprec_aply. ! ! A sketch of the algorithm implemented in this routine is provided below. - ! (AV(ilev; sm_pr_) denotes the smoothed prolongator from level ilev to - ! level ilev-1, while AV(ilev; sm_pr_t_) denotes its transpose, i.e. the - ! corresponding restriction operator from level ilev-1 to level ilev). + ! (P(ilev) denotes the smoothed prolongator from level ilev to level + ! ilev-1, while PT(ilev) denotes its transpose, i.e. the corresponding + ! restriction operator from level ilev-1 to level ilev). ! ! 1. X(1) = Xext ! @@ -1103,7 +1111,7 @@ contains ! 4. DO ilev=2, nlev ! ! ! Transfer the residual to the current (coarser) level - ! X(ilev) = AV(ilev; sm_pr_t)*TX(ilev-1) + ! X(ilev) = PT(ilev)*TX(ilev-1) ! ! ! Apply the base preconditioner at the current level. ! ! The sum over the subdomains is carried out in the @@ -1111,14 +1119,17 @@ contains ! Y(ilev) = (K(ilev)^(-1))*X(ilev) ! ! ! Compute the residual at the current level - ! TX(ilev) = (X(ilev)-A(ilev)*Y(ilev)) + ! ! (except for ilev=nlev) + ! if(ilev < nlev)then + ! TX(ilev) = (X(ilev)-A(ilev)*Y(ilev)) + ! endif ! ! ENDDO ! ! 5. DO ilev=NLEV-1,1,-1 ! ! ! Transfer Y(ilev+1) to the next finer level - ! Y(ilev) = Y(ilev) + AV(ilev+1; sm_pr_)*Y(ilev+1) + ! Y(ilev) = Y(ilev) + P(ilev+1)*Y(ilev+1) ! ! ! Compute the residual at the current level and apply to it the ! ! base preconditioner. The sum over the subdomains is carried out @@ -1237,7 +1248,7 @@ contains goto 9999 end if - ! Apply prolongator transpose, i.e. restriction + ! Apply the prolongator transpose, i.e. the restriction call psb_map_X2Y(cone,mlprec_wrk(ilev-1)%ty,& & czero,mlprec_wrk(ilev)%x2l,& & p%precv(ilev)%map,info,work=work) @@ -1279,7 +1290,7 @@ contains do ilev=nlev-1, 1, -1 ! - ! Apply prolongator + ! Apply the prolongator ! call psb_map_Y2X(cone,mlprec_wrk(ilev+1)%y2l,& & cone,mlprec_wrk(ilev)%y2l,& diff --git a/mlprec/mld_cmlprec_bld.f90 b/mlprec/mld_cmlprec_bld.f90 index 7a76dbad..9dd21b54 100644 --- a/mlprec/mld_cmlprec_bld.f90 +++ b/mlprec/mld_cmlprec_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -45,10 +45,11 @@ ! This routine builds the preconditioner according to the requirements made by ! the user trough the subroutines mld_precinit and mld_precset. ! -! A multilevel preconditioner is regarded as an array of 'base preconditioners', -! each representing the part of the preconditioner associated to a certain level. -! The levels are numbered in increasing order starting from the finest one, i.e. -! level 1 is the finest level. +! A multilevel preconditioner is regarded as an array of 'one-level' data structures, +! each containing the part of the preconditioner associated to a certain level, +! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). +! The levels are numbered in increasing order starting from the finest one, i.e. +! level 1 is the finest level. No transfer operators are associated to level 1. ! ! ! Arguments: @@ -150,8 +151,8 @@ subroutine mld_cmlprec_bld(a,desc_a,p,info) if (iszv > 1) then ! - ! Build the base preconditioners corresponding to the remaining - ! levels + ! Build the matrix and the transfer operators corresponding + ! to the remaining levels ! ! ! Check on the iprcparm contents: they should be the same @@ -210,7 +211,8 @@ subroutine mld_cmlprec_bld(a,desc_a,p,info) & write(debug_unit,*) me,' ',trim(name),& & 'Calling mlprcbld at level ',i ! - ! Build the mapping between levels (i-1) and (i) + ! Build the mapping between levels i-1 and i and the matrix + ! at level i ! call init_baseprec_av(p%precv(i)%prec,info) if (info == 0) call mld_coarse_bld(p%precv(i-1)%base_a,& @@ -287,7 +289,9 @@ subroutine mld_cmlprec_bld(a,desc_a,p,info) end if do i=1, iszv - + ! + ! build the base preconditioner at level i + ! if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Calling mlprcbld at level ',i @@ -383,4 +387,3 @@ contains end subroutine check_coarse_lev end subroutine mld_cmlprec_bld - diff --git a/mlprec/mld_cprecaply.f90 b/mlprec/mld_cprecaply.f90 index 8c91397e..792884cf 100644 --- a/mlprec/mld_cprecaply.f90 +++ b/mlprec/mld_cprecaply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -56,9 +56,9 @@ ! The preconditioner data structure containing the local part ! of the preconditioner to be applied. ! x - complex(psb_spk_), dimension(:), input. -! The local part of the vector X in Y := op(M^(-1)) * X. +! The local part of the vector X in Y = op(M^(-1)) * X. ! y - complex(psb_spk_), dimension(:), output. -! The local part of the vector Y in Y := op(M^(-1)) * X. +! The local part of the vector Y in Y = op(M^(-1)) * X. ! desc_data - type(psb_desc_type), input. ! The communication descriptor associated to the matrix to be ! preconditioned. @@ -126,7 +126,10 @@ subroutine mld_cprecaply(prec,x,y,desc_data,info,trans,work) call psb_errpush(info,name) goto 9999 end if - if (size(prec%precv) >1) then + if (size(prec%precv) >1) then + ! + ! Number of levels > 1: apply the multilevel preconditioner + ! call mld_mlprec_aply(cone,prec,x,czero,y,desc_data,trans_,work_,info) if(info /= 0) then call psb_errpush(4010,name,a_err='mld_cmlprec_aply') @@ -134,6 +137,9 @@ subroutine mld_cprecaply(prec,x,y,desc_data,info,trans,work) end if else if (size(prec%precv) == 1) then + ! + ! Number of levels = 1: apply the base preconditioner + ! call mld_baseprec_aply(cone,prec%precv(1)%prec,x,czero,y,desc_data,trans_, work_,info) else info = 4013 diff --git a/mlprec/mld_cprecbld.f90 b/mlprec/mld_cprecbld.f90 index 21e426d3..7e06a171 100644 --- a/mlprec/mld_cprecbld.f90 +++ b/mlprec/mld_cprecbld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -43,12 +43,7 @@ ! Contains: subroutine init_baseprec_av ! ! This routine builds the preconditioner according to the requirements made by -! the user trough the subroutines mld_precinit and mld_precset. -! -! A multilevel preconditioner is regarded as an array of 'base preconditioners', -! each representing the part of the preconditioner associated to a certain level. -! The levels are numbered in increasing order starting from the finest one, i.e. -! level 1 is the finest level. +! the user through the subroutines mld_precinit and mld_precset. ! ! ! Arguments: @@ -147,6 +142,9 @@ subroutine mld_cprecbld(a,desc_a,p,info) goto 9999 end if + ! + ! Number of levels = 1 + ! if (iszv == 1) then ! ! Check on the iprcparm contents: they should be the same @@ -160,7 +158,7 @@ subroutine mld_cprecbld(a,desc_a,p,info) p%precv(1)%iprcparm(:) = ipv(:) end if ! - ! Finest level first; remember to fix base_a and base_desc + ! Remember to fix base_a and base_desc ! call init_baseprec_av(p%precv(1)%prec,info) p%precv(1)%base_a => a @@ -170,6 +168,9 @@ subroutine mld_cprecbld(a,desc_a,p,info) call psb_errpush(4001,name,a_err='Base level precbuild.') goto 9999 end if + ! + ! Build the base preconditioner + ! select case(p%precv(1)%prec%iprcparm(mld_sub_solve_)) case(mld_ilu_n_,mld_milu_n_) call mld_check_def(p%precv(1)%prec%iprcparm(mld_sub_fillin_),& @@ -189,8 +190,13 @@ subroutine mld_cprecbld(a,desc_a,p,info) goto 9999 endif - else if (iszv > 1) then - + ! + ! Number of levels > 1 + ! + else if (iszv > 1) then + ! + ! Build the multilevel preconditioner + ! call mld_mlprec_bld(a,desc_a,p,info) if (info /= 0) then diff --git a/mlprec/mld_cprecinit.F90 b/mlprec/mld_cprecinit.F90 index 76e7893b..5e4c0337 100644 --- a/mlprec/mld_cprecinit.F90 +++ b/mlprec/mld_cprecinit.F90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -252,6 +252,7 @@ subroutine mld_cprecinit(p,ptype,info,nlev) p%precv(ilev_)%iprcparm(mld_smoother_pos_) = mld_post_smooth_ p%precv(ilev_)%iprcparm(mld_aggr_omega_alg_) = mld_eig_est_ p%precv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_ + p%precv(ilev_)%iprcparm(mld_aggr_filter_) = mld_no_filter_mat_ p%precv(ilev_)%rprcparm(mld_aggr_omega_val_) = szero p%precv(ilev_)%rprcparm(mld_aggr_thresh_) = szero end do @@ -285,6 +286,7 @@ subroutine mld_cprecinit(p,ptype,info,nlev) p%precv(ilev_)%iprcparm(mld_smoother_pos_) = mld_post_smooth_ p%precv(ilev_)%iprcparm(mld_aggr_omega_alg_) = mld_eig_est_ p%precv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_ + p%precv(ilev_)%iprcparm(mld_aggr_filter_) = mld_no_filter_mat_ p%precv(ilev_)%rprcparm(mld_aggr_omega_val_) = szero p%precv(ilev_)%rprcparm(mld_aggr_thresh_) = szero diff --git a/mlprec/mld_cprecset.f90 b/mlprec/mld_cprecset.f90 index eb2d4d65..b9aed36b 100644 --- a/mlprec/mld_cprecset.f90 +++ b/mlprec/mld_cprecset.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -57,10 +57,10 @@ ! what - integer, input. ! The number identifying the parameter to be set. ! A mnemonic constant has been associated to each of these -! numbers, as reported in MLD2P4 user's guide. +! numbers, as reported in the MLD2P4 User's and Reference Guide. ! val - integer, input. ! The value of the parameter to be set. The list of allowed -! values is reported in MLD2P4 user's guide. +! values is reported in the MLD2P4 User's and Reference Guide. ! info - integer, output. ! Error code. ! ilev - integer, optional, input. @@ -90,7 +90,7 @@ subroutine mld_cprecseti(p,what,val,info,ilev) integer, intent(out) :: info integer, optional, intent(in) :: ilev -! Local variables + ! Local variables integer :: ilev_, nlev_ character(len=*), parameter :: name='mld_precseti' @@ -302,7 +302,6 @@ end subroutine mld_cprecseti ! ! Subroutine: mld_cprecsetc ! Version: complex -! Contains: mld_stringval ! ! This routine sets the character parameters defining the preconditioner. More ! precisely, the character parameter identified by 'what' is assigned the value @@ -320,10 +319,10 @@ end subroutine mld_cprecseti ! what - integer, input. ! The number identifying the parameter to be set. ! A mnemonic constant has been associated to each of these -! numbers, as reported in MLD2P4 user's guide. +! numbers, as reported in the MLD2P4 User's and Reference Guide. ! string - character(len=*), input. ! The value of the parameter to be set. The list of allowed -! values is reported in MLD2P4 user's guide. +! values is reported in the MLD2P4 User's and Reference Guide. ! info - integer, output. ! Error code. ! ilev - integer, optional, input. @@ -356,7 +355,7 @@ subroutine mld_cprecsetc(p,what,string,info,ilev) ! Local variables integer :: ilev_, nlev_,val - character(len=*), parameter :: name='mld_precseti' + character(len=*), parameter :: name='mld_precsetc' info = 0 @@ -411,10 +410,10 @@ end subroutine mld_cprecsetc ! what - integer, input. ! The number identifying the parameter to be set. ! A mnemonic constant has been associated to each of these -! numbers, as reported in MLD2P4 user's guide. +! numbers, as reported in the MLD2P4 User's and Reference Guide. ! val - real(psb_spk_), input. ! The value of the parameter to be set. The list of allowed -! values is reported in MLD2P4 user's guide. +! values is reported in the MLD2P4 User's and Reference Guide. ! info - integer, output. ! Error code. ! ilev - integer, optional, input. @@ -447,7 +446,7 @@ subroutine mld_cprecsetr(p,what,val,info,ilev) ! Local variables integer :: ilev_,nlev_ - character(len=*), parameter :: name='mld_precsetd' + character(len=*), parameter :: name='mld_precsetr' info = 0 diff --git a/mlprec/mld_cslu_bld.f90 b/mlprec/mld_cslu_bld.f90 index dcc63a85..d96a8de8 100644 --- a/mlprec/mld_cslu_bld.f90 +++ b/mlprec/mld_cslu_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -44,7 +44,7 @@ ! This routine computes the LU factorization of the local part of the matrix ! stored into a, by using SuperLU. ! -! The matrix to be factorized is +! The local matrix to be factorized is ! - either a submatrix of the distributed matrix corresponding to any level ! of a multilevel preconditioner, and its factorization is used to build ! the 'base preconditioner' corresponding to that level, diff --git a/mlprec/mld_cslu_interface.c b/mlprec/mld_cslu_interface.c index f2913de7..7bf3b516 100644 --- a/mlprec/mld_cslu_interface.c +++ b/mlprec/mld_cslu_interface.c @@ -1,12 +1,12 @@ /* * - * MLD2P4 version 1.0 + * MLD2P4 version 1.1 * MultiLevel Domain Decomposition Parallel Preconditioners Package - * based on PSBLAS (Parallel Sparse BLAS version 2.2) + * based on PSBLAS (Parallel Sparse BLAS version 2.3.1) * - * (C) Copyright 2008 + * (C) Copyright 2008,2009 * - * Salvatore Filippone University of Rome Tor Vergata + * Salvatore Filippone University of Rome Tor Vergata * Alfredo Buttari University of Rome Tor Vergata * Pasqua D'Ambra ICAR-CNR, Naples * Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_cslud_bld.f90 b/mlprec/mld_cslud_bld.f90 index ee1ecc87..66f78ae1 100644 --- a/mlprec/mld_cslud_bld.f90 +++ b/mlprec/mld_cslud_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -44,7 +44,7 @@ ! This routine computes the LU factorization of of a distributed matrix, ! by using SuperLU_DIST. ! -! The matrix to be factorized is the coarsest level matrix of a multilevel +! The matrix to be factorized is the coarsest-level matrix of a multilevel ! preconditioner and is distributed among the processes. Its factorization ! is used to build the 'base preconditioner' corresponding to the coarsest ! level. @@ -147,4 +147,3 @@ subroutine mld_csludist_bld(a,desc_a,p,info) return end subroutine mld_csludist_bld - diff --git a/mlprec/mld_cslud_interface.c b/mlprec/mld_cslud_interface.c index 02572795..5cccdfd1 100644 --- a/mlprec/mld_cslud_interface.c +++ b/mlprec/mld_cslud_interface.c @@ -1,12 +1,12 @@ /* * - * MLD2P4 version 1.0 + * MLD2P4 version 1.1 * MultiLevel Domain Decomposition Parallel Preconditioners Package - * based on PSBLAS (Parallel Sparse BLAS version 2.2) + * based on PSBLAS (Parallel Sparse BLAS version 2.3.1) * - * (C) Copyright 2008 + * (C) Copyright 2008,2009 * - * Salvatore Filippone University of Rome Tor Vergata + * Salvatore Filippone University of Rome Tor Vergata * Alfredo Buttari University of Rome Tor Vergata * Pasqua D'Ambra ICAR-CNR, Naples * Daniela di Serafino Second University of Naples @@ -99,7 +99,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define HANDLE_SIZE 8 /* kind of integer to hold a pointer. Use int. This might need to be changed on 64-bit systems. */ -#ifdef LargeFptr +#ifdef Ptr64Bits typedef long long fptr; #else typedef int fptr; /* 32-bit by default */ diff --git a/mlprec/mld_csp_renum.f90 b/mlprec/mld_csp_renum.f90 index eb367d18..f4110c6a 100644 --- a/mlprec/mld_csp_renum.f90 +++ b/mlprec/mld_csp_renum.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_csub_aply.f90 b/mlprec/mld_csub_aply.f90 index 4f011277..8ab6e410 100644 --- a/mlprec/mld_csub_aply.f90 +++ b/mlprec/mld_csub_aply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -94,17 +94,18 @@ ! preconditioner. ! ! Tasks 1, 3 and 4 may be selected when prec%iprcparm(mld_smoother_sweeps_) = 1, -! while task 2 is selected when prec%iprcparm(mld_smoother_sweeps_) > 1. Furthermore -! Tasks 1, 2 and 3 may be performed when the matrix A is -! distributed among the processes (prec%iprcparm(mld_coarse_mat_) = mld_distr_mat_), -! while task 4 may be performed when A is replicated on the processes -! (prec%iprcparm(mld_coarse_mat_) = mld_repl_mat_). Note that the matrix A is -! distributed among the processes at each level of the multilevel preconditioner, -! except the coarsest one, where it may be either distributed or replicated on -! the processes. Tasks 2, 3 and 4 are performed only at the coarsest level. -! Note also that this routine manages implicitly the fact that -! the matrix is distributed or replicated, i.e. it does not make any explicit -! reference to the value of prec%iprcparm(mld_coarse_mat_). +! while task 2 is selected when prec%iprcparm(mld_smoother_sweeps_) > 1. +! Furthermore, tasks 1, 2 and 3 may be performed when the matrix A is distributed +! among the processes (p%precv(ilev)%iprcparm(mld_coarse_mat_) = mld_distr_mat_, +! where p%precv(ilev) is the one-level data structure associated to the level +! ilev at which mld_sub_aply is called), while task 4 may be performed when A +! is replicated on the processes (p%precv(ilev)%iprcparm(mld_coarse_mat_) = +! mld_repl_mat_). Note that the matrix A is distributed among the processes +! at each level of the multilevel preconditioner, except the coarsest one, where +! it may be either distributed or replicated on the processes. Tasks 2, 3 and 4 +! are performed only at the coarsest level. Note also that this routine manages +! implicitly the fact that the matrix is distributed or replicated, i.e. it does not +! make any explicit reference to the value of p%precv(ilev)%iprcparm(mld_coarse_mat_). ! ! Arguments: ! @@ -141,14 +142,14 @@ subroutine mld_csub_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) implicit none ! Arguments - type(psb_desc_type), intent(in) :: desc_data - type(mld_cbaseprec_type), intent(in) :: prec + type(psb_desc_type), intent(in) :: desc_data + type(mld_cbaseprec_type), intent(in) :: prec complex(psb_spk_),intent(in) :: x(:) complex(psb_spk_),intent(inout) :: y(:) complex(psb_spk_),intent(in) :: alpha,beta - character(len=1), intent(in) :: trans + character(len=1), intent(in) :: trans complex(psb_spk_),target, intent(inout) :: work(:) - integer, intent(out) :: info + integer, intent(out) :: info ! Local variables integer :: n_row,n_col @@ -293,4 +294,3 @@ subroutine mld_csub_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) return end subroutine mld_csub_aply - diff --git a/mlprec/mld_csub_solve.f90 b/mlprec/mld_csub_solve.f90 index ccc2dda3..7f4a1bbb 100644 --- a/mlprec/mld_csub_solve.f90 +++ b/mlprec/mld_csub_solve.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -60,8 +60,8 @@ ! ! A*Y = X, ! -! by using the L and U factors computed with an ILU (incomplete LU) factorization -! of A. In this case K = L*U ~ A, alpha = 1 and beta = 0. The factors L and U +! by using the L and U factors computed with an ILU factorization of A. +! In this case K = L*U ~ A, alpha = 1 and beta = 0. The factors L and U ! (and the matrix A) are either distributed and block-diagonal or replicated. ! ! 2. Solution of a linear system @@ -322,4 +322,3 @@ subroutine mld_csub_solve(alpha,prec,x,beta,y,desc_data,trans,work,info) return end subroutine mld_csub_solve - diff --git a/mlprec/mld_cumf_bld.f90 b/mlprec/mld_cumf_bld.f90 index c00c5ac7..b42e26d5 100644 --- a/mlprec/mld_cumf_bld.f90 +++ b/mlprec/mld_cumf_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -44,7 +44,7 @@ ! This routine computes the LU factorization of the local part of the matrix ! stored into a, by using UMFPACK. ! -! The matrix to be factorized is +! The local matrix to be factorized is ! - either a submatrix of the distributed matrix corresponding to any level ! of a multilevel preconditioner, and its factorization is used to build ! the 'base preconditioner' corresponding to that level, diff --git a/mlprec/mld_cumf_interface.c b/mlprec/mld_cumf_interface.c index 67231cd3..75ed8cb6 100644 --- a/mlprec/mld_cumf_interface.c +++ b/mlprec/mld_cumf_interface.c @@ -1,12 +1,12 @@ /* * - * MLD2P4 version 1.0 + * MLD2P4 version 1.1 * MultiLevel Domain Decomposition Parallel Preconditioners Package - * based on PSBLAS (Parallel Sparse BLAS version 2.2) + * based on PSBLAS (Parallel Sparse BLAS version 2.3.1) * - * (C) Copyright 2008 + * (C) Copyright 2008,2009 * - * Salvatore Filippone University of Rome Tor Vergata + * Salvatore Filippone University of Rome Tor Vergata * Alfredo Buttari University of Rome Tor Vergata * Pasqua D'Ambra ICAR-CNR, Naples * Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_daggrmap_bld.f90 b/mlprec/mld_daggrmap_bld.f90 index 12ce5d3b..9bb4b006 100644 --- a/mlprec/mld_daggrmap_bld.f90 +++ b/mlprec/mld_daggrmap_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -68,14 +68,14 @@ ! the fine-level matrix. ! desc_a - type(psb_desc_type), input. ! The communication descriptor of the fine-level matrix. -! nlaggr - integer, dimension(:), allocatable. -! nlaggr(i) contains the aggregates held by process i. ! ilaggr - integer, dimension(:), allocatable. ! The mapping between the row indices of the coarse-level ! matrix and the row indices of the fine-level matrix. ! ilaggr(i)=j means that node i in the adjacency graph ! of the fine-level matrix is mapped onto node j in the ! adjacency graph of the coarse-level matrix. +! nlaggr - integer, dimension(:), allocatable. +! nlaggr(i) contains the aggregates held by process i. ! info - integer, output. ! Error code. ! @@ -335,7 +335,7 @@ contains ! isz = nr+1 ia = -1 - cpling = 0.0d0 + cpling = dzero call psb_sp_getrow(i,a,nz,irow,icol,val,info) if (info/=0) then info=4010 @@ -382,7 +382,7 @@ contains if (ia>naggr) then info=4001 - call psb_errpush(info,name,a_err='loc_Aggregate: n > naggr 4? ') + call psb_errpush(info,name,a_err='loc_Aggregate: n > naggr ? ') goto 9999 end if ils(ia) = ils(ia) + 1 diff --git a/mlprec/mld_daggrmat_asb.f90 b/mlprec/mld_daggrmat_asb.f90 index 50aba56e..2c4fb063 100644 --- a/mlprec/mld_daggrmat_asb.f90 +++ b/mlprec/mld_daggrmat_asb.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,7 +42,7 @@ ! Version: real ! ! This routine builds a coarse-level matrix A_C from a fine-level matrix A -! by using a Galerkin approach, i.e. +! by using the Galerkin approach, i.e. ! ! A_C = P_C^T A P_C, ! @@ -50,18 +50,18 @@ ! ! A mapping from the nodes of the adjacency graph of A to the nodes of the ! adjacency graph of A_C has been computed by the mld_aggrmap_bld subroutine. -! The prolongator P_C is built here from this mapping, according to the +! The prolongator P_C is built here from this mapping, according to the ! value of p%iprcparm(mld_aggr_kind_), specified by the user through ! mld_dprecinit and mld_dprecset. ! ! Currently three different prolongators are implemented, corresponding to ! three aggregation algorithms: -! 1. raw aggregation, +! 1. non-smoothed aggregation, ! 2. smoothed aggregation, ! 3. "bizarre" aggregation. -! 1. The raw aggregation uses as prolongator the piecewise constant interpolation -! operator corresponding to the fine-to-coarse level mapping built by -! mld_aggrmap_bld. This is called tentative prolongator. +! 1. The non-smoothed aggregation uses as prolongator the piecewise constant +! interpolation operator corresponding to the fine-to-coarse level mapping built +! by mld_aggrmap_bld. This is called tentative prolongator. ! 2. The smoothed aggregation uses as prolongator the operator obtained by applying ! a damped Jacobi smoother to the tentative prolongator. ! 3. The "bizarre" aggregation uses a prolongator proposed by the authors of MLD2P4. @@ -84,9 +84,17 @@ ! desc_a - type(psb_desc_type), input. ! The communication descriptor of the fine-level matrix. ! p - type(mld_donelev_type), input/output. -! The one-level preconditioner data structure containing the local -! part of the base preconditioner to be built as well as the -! aggregate matrices. +! The 'one-level' data structure that will contain the local +! part of the matrix to be built as well as the information +! concerning the prolongator and its transpose. +! ilaggr - integer, dimension(:), allocatable. +! The mapping between the row indices of the coarse-level +! matrix and the row indices of the fine-level matrix. +! ilaggr(i)=j means that node i in the adjacency graph +! of the fine-level matrix is mapped onto node j in the +! adjacency graph of the coarse-level matrix. +! nlaggr - integer, dimension(:), allocatable. +! nlaggr(i) contains the aggregates held by process i. ! info - integer, output. ! Error code. ! @@ -101,7 +109,7 @@ subroutine mld_daggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info) type(psb_dspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a integer, intent(inout) :: ilaggr(:), nlaggr(:) - type(mld_donelev_type), intent(inout), target :: p + type(mld_donelev_type), intent(inout), target :: p integer, intent(out) :: info ! Local variables diff --git a/mlprec/mld_daggrmat_nosmth_asb.F90 b/mlprec/mld_daggrmat_nosmth_asb.F90 index af686e5c..2f052774 100644 --- a/mlprec/mld_daggrmat_nosmth_asb.F90 +++ b/mlprec/mld_daggrmat_nosmth_asb.F90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,7 +42,7 @@ ! Version: real ! ! This routine builds a coarse-level matrix A_C from a fine-level matrix A -! by using a Galerkin approach, i.e. +! by using the Galerkin approach, i.e. ! ! A_C = P_C^T A P_C, ! @@ -67,9 +67,17 @@ ! desc_a - type(psb_desc_type), input. ! The communication descriptor of the fine-level matrix. ! p - type(mld_donelev_type), input/output. -! The one-level preconditioner data structure containing the local -! part of the base preconditioner to be built as well as the -! aggregate matrices. +! The 'one-level' data structure that will contain the local +! part of the matrix to be built as well as the information +! concerning the prolongator and its transpose. +! ilaggr - integer, dimension(:), allocatable. +! The mapping between the row indices of the coarse-level +! matrix and the row indices of the fine-level matrix. +! ilaggr(i)=j means that node i in the adjacency graph +! of the fine-level matrix is mapped onto node j in the +! adjacency graph of the coarse-level matrix. +! nlaggr - integer, dimension(:), allocatable. +! nlaggr(i) contains the aggregates held by process i. ! info - integer, output. ! Error code. ! diff --git a/mlprec/mld_daggrmat_smth_asb.F90 b/mlprec/mld_daggrmat_smth_asb.F90 index acfbfc8f..8357ba43 100644 --- a/mlprec/mld_daggrmat_smth_asb.F90 +++ b/mlprec/mld_daggrmat_smth_asb.F90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,7 +42,7 @@ ! Version: real ! ! This routine builds a coarse-level matrix A_C from a fine-level matrix A -! by using a Galerkin approach, i.e. +! by using the Galerkin approach, i.e. ! ! A_C = P_C^T A P_C, ! @@ -84,9 +84,17 @@ ! desc_a - type(psb_desc_type), input. ! The communication descriptor of the fine-level matrix. ! p - type(mld_donelev_type), input/output. -! The one-level preconditioner data structure containing the local -! part of the base preconditioner to be built as well as the -! aggregate matrices. +! The 'one-level' data structure that will contain the local +! part of the matrix to be built as well as the information +! concerning the prolongator and its transpose. +! ilaggr - integer, dimension(:), allocatable. +! The mapping between the row indices of the coarse-level +! matrix and the row indices of the fine-level matrix. +! ilaggr(i)=j means that node i in the adjacency graph +! of the fine-level matrix is mapped onto node j in the +! adjacency graph of the coarse-level matrix. +! nlaggr - integer, dimension(:), allocatable. +! nlaggr(i) contains the aggregates held by process i. ! info - integer, output. ! Error code. ! @@ -102,24 +110,24 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) include 'mpif.h' #endif -! Arguments - type(psb_dspmat_type), intent(in) :: a - type(psb_desc_type), intent(in) :: desc_a - integer, intent(inout) :: ilaggr(:), nlaggr(:) + ! Arguments + type(psb_dspmat_type), intent(in) :: a + type(psb_desc_type), intent(in) :: desc_a + integer, intent(inout) :: ilaggr(:), nlaggr(:) type(mld_donelev_type), intent(inout), target :: p - integer, intent(out) :: info + integer, intent(out) :: info -! Local variables + ! Local variables type(psb_dspmat_type) :: b integer, allocatable :: nzbr(:), idisp(:) integer :: nrow, nglob, ncol, ntaggr, nzac, ip, ndx,& & naggr, nzl,naggrm1,naggrp1, i, j, k, jd, icolF integer ::ictxt,np,me, err_act, icomm character(len=20) :: name - type(psb_dspmat_type) :: am1,am2, AF + type(psb_dspmat_type) :: am1,am2, af type(psb_dspmat_type) :: am3,am4 real(psb_dpk_), allocatable :: adiag(:) - logical :: ml_global_nmb + logical :: ml_global_nmb, filter_mat integer :: debug_level, debug_unit integer, parameter :: ncmax=16 real(psb_dpk_) :: omega, anorm, tmp, dg, theta @@ -168,6 +176,8 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) & ( (p%iprcparm(mld_aggr_kind_) == mld_biz_prol_).and.& & (p%iprcparm(mld_coarse_mat_) == mld_repl_mat_)) ) + filter_mat = (p%iprcparm(mld_aggr_filter_) == mld_filter_mat_) + if (ml_global_nmb) then ilaggr(1:nrow) = ilaggr(1:nrow) + naggrm1 call psb_halo(ilaggr,desc_a,info) @@ -190,11 +200,11 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) goto 9999 end if - ! Get diagonal D + ! Get the diagonal D call psb_sp_getdiag(a,adiag,info) if (info == 0) & & call psb_halo(adiag,desc_a,info) - + if(info /= 0) then call psb_errpush(4010,name,a_err='sp_getdiag') goto 9999 @@ -243,45 +253,44 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) & write(debug_unit,*) me,' ',trim(name),& & ' Initial copies done.' + if (filter_mat) then + ! + ! Build the filtered matrix Af from A + ! + call psb_spcnv(a,af,info,afmt='csr',dupl=psb_dupl_add_) - !********************************+ - ! building the filtered matrix af from A - ! - ! - call psb_spcnv(a,af,info,afmt='csr',dupl=psb_dupl_add_) - - do i=1,nrow - tmp = dzero - jd = -1 - do j=af%ia2(i),af%ia2(i+1)-1 - if (af%ia1(j) == i) jd = j - if (abs(af%aspk(j)) < theta*sqrt(abs(adiag(i)*adiag(af%ia1(j))))) then - tmp=tmp+af%aspk(j) - af%aspk(j)=dzero - endif + do i=1,nrow + tmp = dzero + jd = -1 + do j=af%ia2(i),af%ia2(i+1)-1 + if (af%ia1(j) == i) jd = j + if (abs(af%aspk(j)) < theta*sqrt(abs(adiag(i)*adiag(af%ia1(j))))) then + tmp=tmp+af%aspk(j) + af%aspk(j)=dzero + endif + enddo + if (jd == -1) then + write(0,*) 'Wrong input: we need the diagonal!!!!', i + else + af%aspk(jd)=af%aspk(jd)-tmp + end if enddo - if (jd == -1) then - write(0,*) 'Wrong input: we need the diagonal!!!!' - else - af%aspk(jd)=af%aspk(jd)-tmp - end if - enddo - ! Ora eliminiamo i termini che sono stato azzerati - call psb_spcnv(af,info,afmt='coo') - k = 0 - do j=1,psb_sp_get_nnzeros(af) - if ((af%aspk(j) /= dzero) .or. (af%ia1(j)==af%ia2(j))) then - k = k + 1 - af%aspk(k) = af%aspk(j) - af%ia1(k) = af%ia1(j) - af%ia2(k) = af%ia2(j) - end if - end do + ! Take out zeroed terms + call psb_spcnv(af,info,afmt='coo') + k = 0 + do j=1,psb_sp_get_nnzeros(af) + if ((af%aspk(j) /= dzero) .or. (af%ia1(j)==af%ia2(j))) then + k = k + 1 + af%aspk(k) = af%aspk(j) + af%ia1(k) = af%ia1(j) + af%ia2(k) = af%ia2(j) + end if + end do !!$ write(debug_unit,*) me,' ',trim(name),' Non zeros from filtered matrix:',k,af%m,af%k - call psb_sp_setifld(k,psb_nnz_,af,info) - call psb_spcnv(af,info,afmt='csr') - + call psb_sp_setifld(k,psb_nnz_,af,info) + call psb_spcnv(af,info,afmt='csr') + end if do i=1,size(adiag) @@ -291,10 +300,13 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) adiag(i) = done end if end do - call psb_sp_scal(af,adiag,info) + + if (filter_mat) call psb_sp_scal(af,adiag,info) + call psb_sp_scal(am3,adiag,info) if (info /= 0) goto 9999 - !******************************************* + + if (p%iprcparm(mld_aggr_omega_alg_) == mld_eig_est_) then if (p%iprcparm(mld_aggr_eig_) == mld_max_norm_) then @@ -302,7 +314,7 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) if (p%iprcparm(mld_aggr_kind_) == mld_biz_prol_) then ! - ! This only works with CSR. + ! This only works with CSR ! if (psb_toupper(am3%fida)=='CSR') then anorm = dzero @@ -352,43 +364,88 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) goto 9999 end if - ! % - if (psb_toupper(af%fida)=='CSR') then - do i=1,af%m - do j=af%ia2(i),af%ia2(i+1)-1 - if (af%ia1(j) == i) then - af%aspk(j) = done - omega*af%aspk(j) - else - af%aspk(j) = - omega*af%aspk(j) - end if + if (filter_mat) then + ! + ! Build the smoothed prolongator using the filtered matrix + ! + if (psb_toupper(af%fida)=='CSR') then + do i=1,af%m + do j=af%ia2(i),af%ia2(i+1)-1 + if (af%ia1(j) == i) then + af%aspk(j) = done - omega*af%aspk(j) + else + af%aspk(j) = - omega*af%aspk(j) + end if + end do end do - end do - else - call psb_errpush(4001,name,a_err='Invalid AF storage format') - goto 9999 - end if + else + call psb_errpush(4001,name,a_err='Invalid AF storage format') + goto 9999 + end if - if (debug_level >= psb_debug_outer_) & - & write(debug_unit,*) me,' ',trim(name),& - & 'Done gather, going for SYMBMM 1' - ! - ! Symbmm90 does the allocation for its result. - ! - ! am1 = (i-wDA)Ptilde - ! Doing it this way means to consider diag(Ai) - ! - ! - call psb_symbmm(af,am4,am1,info) - if(info /= 0) then - call psb_errpush(4010,name,a_err='symbmm 1') - goto 9999 - end if + if (debug_level >= psb_debug_outer_) & + & write(debug_unit,*) me,' ',trim(name),& + & 'Done gather, going for SYMBMM 1' + ! + ! Symbmm90 does the allocation for its result. + ! + ! am1 = (I-w*D*Af)Ptilde + ! Doing it this way means to consider diag(Af_i) + ! + ! + call psb_symbmm(af,am4,am1,info) + if(info /= 0) then + call psb_errpush(4010,name,a_err='symbmm 1') + goto 9999 + end if - call psb_numbmm(af,am4,am1) + call psb_numbmm(af,am4,am1) - if (debug_level >= psb_debug_outer_) & - & write(debug_unit,*) me,' ',trim(name),& - & 'Done NUMBMM 1' + if (debug_level >= psb_debug_outer_) & + & write(debug_unit,*) me,' ',trim(name),& + & 'Done NUMBMM 1' + else + ! + ! Build the smoothed prolongator using the original matrix + ! + if (psb_toupper(am3%fida)=='CSR') then + do i=1,am3%m + do j=am3%ia2(i),am3%ia2(i+1)-1 + if (am3%ia1(j) == i) then + am3%aspk(j) = done - omega*am3%aspk(j) + else + am3%aspk(j) = - omega*am3%aspk(j) + end if + end do + end do + else + call psb_errpush(4001,name,a_err='Invalid AM3 storage format') + goto 9999 + end if + + if (debug_level >= psb_debug_outer_) & + & write(debug_unit,*) me,' ',trim(name),& + & 'Done gather, going for SYMBMM 1' + ! + ! Symbmm90 does the allocation for its result. + ! + ! am1 = (I-w*D*A)Ptilde + ! Doing it this way means to consider diag(A_i) + ! + ! + call psb_symbmm(am3,am4,am1,info) + if(info /= 0) then + call psb_errpush(4010,name,a_err='symbmm 1') + goto 9999 + end if + + call psb_numbmm(am3,am4,am1) + + if (debug_level >= psb_debug_outer_) & + & write(debug_unit,*) me,' ',trim(name),& + & 'Done NUMBMM 1' + + end if call psb_sp_free(am4,info) if(info /= 0) then @@ -412,7 +469,7 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) call psb_errpush(4001,name,a_err='Halo of am1') goto 9999 end if - + call psb_symbmm(a,am1,am3,info) if(info /= 0) then call psb_errpush(4010,name,a_err='symbmm 2') diff --git a/mlprec/mld_das_aply.f90 b/mlprec/mld_das_aply.f90 index 4c622f48..8ac76593 100644 --- a/mlprec/mld_das_aply.f90 +++ b/mlprec/mld_das_aply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_das_bld.f90 b/mlprec/mld_das_bld.f90 index 4eaa2da3..fa348086 100644 --- a/mlprec/mld_das_bld.f90 +++ b/mlprec/mld_das_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_dbaseprec_aply.f90 b/mlprec/mld_dbaseprec_aply.f90 index b2ce5425..4dba8a23 100644 --- a/mlprec/mld_dbaseprec_aply.f90 +++ b/mlprec/mld_dbaseprec_aply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -159,7 +159,7 @@ subroutine mld_dbaseprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) case(mld_bjac_,mld_as_) ! - ! Additive Schwarz preconditioner + ! Additive Schwarz preconditioner (including block-Jacobi as special case) ! call mld_as_aply(alpha,prec,x,beta,y,desc_data,trans_,work,info) if(info /= 0) then diff --git a/mlprec/mld_dbaseprec_bld.f90 b/mlprec/mld_dbaseprec_bld.f90 index a6278288..bf018aef 100644 --- a/mlprec/mld_dbaseprec_bld.f90 +++ b/mlprec/mld_dbaseprec_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -46,7 +46,7 @@ ! base preconditioner at each level. ! ! Details on the base preconditioner to be built are stored in the iprcparm -! field of the preconditioner data structure (for a description of this +! field of the base preconditioner data structure (for a description of this ! data structure see mld_prec_type.f90). ! ! diff --git a/mlprec/mld_dcoarse_bld.f90 b/mlprec/mld_dcoarse_bld.f90 index 3b48d352..0e825de3 100644 --- a/mlprec/mld_dcoarse_bld.f90 +++ b/mlprec/mld_dcoarse_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -41,22 +41,27 @@ ! Subroutine: mld_dcoarse_bld ! Version: real ! -! This routine builds the preconditioner corresponding to the current -! level of the multilevel preconditioner. The routine first builds the -! (coarse) matrix associated to the current level from the (fine) matrix -! associated to the previous level, then builds the related base preconditioner. -! Note that this routine is only ever called on levels >= 2. +! This routine builds the matrix associated to the current level of the +! multilevel preconditioner from the matrix associated to the previous level, +! by using a smoothed aggregation technique (therefore, it also builds the +! prolongation and restriction operators mapping the current level to the +! previous one and vice versa). Then the routine builds the base preconditioner +! at the current level. +! The current level is regarded as the coarse one, while the previous as +! the fine one. This is in agreement with the fact that the routine is called, +! by mld_mlprec_bld, only on levels >=2. ! ! ! Arguments: ! a - type(psb_dspmat_type). ! The sparse matrix structure containing the local part of the -! matrix to be preconditioned. +! fine-level matrix. ! desc_a - type(psb_desc_type), input. ! The communication descriptor of a. ! p - type(mld_donelev_type), input/output. -! The preconditioner data structure containing the local -! part of the one-level preconditioner to be built. +! The 'one-level' data structure containing the local part +! of the base preconditioner to be built as well as +! information concerning the prolongator and its transpose. ! info - integer, output. ! Error code. ! @@ -100,6 +105,8 @@ subroutine mld_dcoarse_bld(a,desc_a,p,info) & mld_smooth_prol_,is_legal_ml_aggr_kind) call mld_check_def(p%iprcparm(mld_coarse_mat_),'Coarse matrix',& & mld_distr_mat_,is_legal_ml_coarse_mat) + call mld_check_def(p%iprcparm(mld_aggr_filter_),'Use filtered matrix',& + & mld_no_filter_mat_,is_legal_aggr_filter) call mld_check_def(p%iprcparm(mld_smoother_pos_),'smooth_pos',& & mld_pre_smooth_,is_legal_ml_smooth_pos) call mld_check_def(p%iprcparm(mld_aggr_omega_alg_),'Omega Alg.',& @@ -124,7 +131,7 @@ subroutine mld_dcoarse_bld(a,desc_a,p,info) end if ! - ! Build the coarse-level matrix from the fine level one, starting from + ! Build the coarse-level matrix from the fine-level one, starting from ! the mapping defined by mld_aggrmap_bld and applying the aggregation ! algorithm specified by p%iprcparm(mld_aggr_kind_) ! diff --git a/mlprec/mld_ddiag_bld.f90 b/mlprec/mld_ddiag_bld.f90 index a774bbf8..757178c6 100644 --- a/mlprec/mld_ddiag_bld.f90 +++ b/mlprec/mld_ddiag_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_dfact_bld.f90 b/mlprec/mld_dfact_bld.f90 index e27d750e..200799c0 100644 --- a/mlprec/mld_dfact_bld.f90 +++ b/mlprec/mld_dfact_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -41,10 +41,10 @@ ! Subroutine: mld_dfact_bld ! Version: real ! -! This routine computes an LU or incomplete LU (ILU) factorization of the diagonal -! blocks of a distributed matrix, according to the value of -! p%iprcparm(iprcparm(sub_solve_), set by the user through -! mld_dprecinit or mld_dprecset. +! This routine computes an LU or incomplete LU (ILU) factorization of the +! diagonal blocks of a distributed matrix, according to the value of +! p%iprcparm(iprcparm(sub_solve_), set by the user through mld_dprecinit +! or mld_dprecset. ! It may also compute an LU factorization of a distributed matrix, or split ! a distributed matrix into its block-diagonal and off block-diagonal parts, ! for the future application of multiple block-Jacobi sweeps. @@ -60,8 +60,8 @@ ! More precisely, the routine performs one of the following tasks: ! ! 1. LU or ILU factorization of the diagonal blocks of the distributed matrix -! for the construction of a block-Jacobi or AS preconditioners -! (allowed at any level of a multilevel preconditioner); +! for the construction of block-Jacobi or AS preconditioners (allowed at +! any level of a multilevel preconditioner); ! ! 2. setup of block-Jacobi sweeps to compute an approximate solution of a ! linear system diff --git a/mlprec/mld_dilu0_fact.f90 b/mlprec/mld_dilu0_fact.f90 index 84c8d5c8..43cf83f3 100644 --- a/mlprec/mld_dilu0_fact.f90 +++ b/mlprec/mld_dilu0_fact.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,11 +42,11 @@ ! Version: real ! Contains: mld_dilu0_factint, ilu_copyin ! -! This routine computes either the ILU(0) or the MILU(0) factorization of the -! diagonal blocks of a distributed matrix. These factorizations -! are used to build the 'base preconditioner' (block-Jacobi preconditioner/solver, -! Additive Schwarz preconditioner) corresponding to a given level of a multilevel -! preconditioner. +! This routine computes either the ILU(0) or the MILU(0) factorization of +! the diagonal blocks of a distributed matrix. These factorizations are used +! to build the 'base preconditioner' (block-Jacobi preconditioner/solver, +! Additive Schwarz preconditioner) corresponding to a given level of a +! multilevel preconditioner. ! ! Details on the above factorizations can be found in ! Y. Saad, Iterative Methods for Sparse Linear Systems, Second Edition, diff --git a/mlprec/mld_dilu_bld.f90 b/mlprec/mld_dilu_bld.f90 index f6c37354..13454a54 100644 --- a/mlprec/mld_dilu_bld.f90 +++ b/mlprec/mld_dilu_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_diluk_fact.f90 b/mlprec/mld_diluk_fact.f90 index 993d8772..e669f093 100644 --- a/mlprec/mld_diluk_fact.f90 +++ b/mlprec/mld_diluk_fact.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -43,10 +43,10 @@ ! Contains: mld_diluk_factint, iluk_copyin, iluk_fact, iluk_copyout. ! ! This routine computes either the ILU(k) or the MILU(k) factorization of the -! diagonal blocks of a distributed matrix. These factorizations are used to build -! the 'base preconditioner' (block-Jacobi preconditioner/solver, -! Additive Schwarz preconditioner) corresponding to a certain level of a multilevel -! preconditioner. +! diagonal blocks of a distributed matrix. These factorizations are used to +! build the 'base preconditioner' (block-Jacobi preconditioner/solver, +! Additive Schwarz preconditioner) corresponding to a certain level of a +! multilevel preconditioner. ! ! Details on the above factorizations can be found in ! Y. Saad, Iterative Methods for Sparse Linear Systems, Second Edition, diff --git a/mlprec/mld_dilut_fact.f90 b/mlprec/mld_dilut_fact.f90 index ebe48889..6fd33954 100644 --- a/mlprec/mld_dilut_fact.f90 +++ b/mlprec/mld_dilut_fact.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,8 +42,8 @@ ! Version: real ! Contains: mld_dilut_factint, ilut_copyin, ilut_fact, ilut_copyout ! -! This routine computes the ILU(k,t) factorization of the diagonal blocks of a -! distributed matrix. This factorization is used to build the 'base +! This routine computes the ILU(k,t) factorization of the diagonal blocks +! of a distributed matrix. This factorization is used to build the 'base ! preconditioner' (block-Jacobi preconditioner/solver, Additive Schwarz ! preconditioner) corresponding to a certain level of a multilevel preconditioner. ! @@ -51,11 +51,11 @@ ! Y. Saad, Iterative Methods for Sparse Linear Systems, Second Edition, ! SIAM, 2003, Chapter 10. ! -! The local matrix is stored into a and blck, as specified in -! the description of the arguments below. The storage format for both the L and -! U factors is CSR. The diagonal of the U factor is stored separately (actually, -! the inverse of the diagonal entries is stored; this is then managed in the solve -! stage associated to the ILU(k,t) factorization). +! The local matrix is stored into a and blck, as specified in the description +! of the arguments below. The storage format for both the L and U factors is +! CSR. The diagonal of the U factor is stored separately (actually, the +! inverse of the diagonal entries is stored; this is then managed in the +! solve stage associated to the ILU(k,t) factorization). ! ! ! Arguments: diff --git a/mlprec/mld_dmlprec_aply.f90 b/mlprec/mld_dmlprec_aply.f90 index 33b5772f..26b83901 100644 --- a/mlprec/mld_dmlprec_aply.f90 +++ b/mlprec/mld_dmlprec_aply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -46,7 +46,7 @@ ! Y = beta*Y + alpha*op(M^(-1))*X, ! where ! - M is a multilevel domain decomposition (Schwarz) preconditioner associated -! to a certain matrix A and stored in the array p%precv, +! to a certain matrix A and stored in p, ! - op(M^(-1)) is M^(-1) or its transpose, according to the value of trans, ! - X and Y are vectors, ! - alpha and beta are scalars. @@ -55,9 +55,11 @@ ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! -! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', -! each representing the part of the preconditioner associated to a certain level. -! For each level ilev, the preconditioner K(ilev) is stored in p%precv(ilev) +! A multilevel preconditioner is regarded as an array of 'one-level' data structures, +! each containing the part of the preconditioner associated to a certain level +! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). +! For each level ilev, the 'base preconditioner' K(ilev) is stored in +! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -79,42 +81,40 @@ ! alpha - real(psb_dpk_), input. ! The scalar alpha. ! p - type(mld_dprec_type), input. -! The array of one-level preconditioner data structures containing the -! local parts of the preconditioners to be applied at each level. +! The multilevel preconditioner data structure containing the +! local part of the preconditioner to be applied. ! Note that nlev = size(p%precv) = number of levels. -! p%precv(ilev)%prec - type(psb_dbaseprec_type) -! The "base" preconditioner for the current level +! p%precv(ilev)%prec - type(psb_dbaseprec_type) +! The 'base preconditioner' for the current level ! p%precv(ilev)%ac - type(psb_dspmat_type) -! The local part of the matrix A(ilev). +! The local part of the matrix A(ilev). ! p%precv(ilev)%desc_ac - type(psb_desc_type). -! The communication descriptor associated to the sparse -! matrix A(ilev) -! p%precv(ilev)%map - type(psb_inter_desc_type) -! Stores the linear operators mapping between levels -! (ilev-1) and (ilev). These are the restriction and -! prolongation operators described in the sequel. +! The communication descriptor associated to the sparse +! matrix A(ilev) +! p%precv(ilev)%map - type(psb_inter_desc_type) +! Stores the linear operators mapping level (ilev-1) +! to (ilev) and vice versa. These are the restriction +! and prolongation operators described in the sequel. ! p%precv(ilev)%iprcparm - integer, dimension(:), allocatable. -! The integer parameters defining the multilevel -! strategy +! The integer parameters defining the multilevel +! strategy ! p%precv(ilev)%rprcparm - real(psb_dpk_), dimension(:), allocatable. -! The real parameters defining the multilevel strategy +! The real parameters defining the multilevel strategy ! p%precv(ilev)%mlia - integer, dimension(:), allocatable. -! The aggregation map (ilev-1) --> (ilev). -! In case of non-smoothed aggregation, it is used -! instead of mld_sm_pr_. +! The aggregation map (ilev-1) --> (ilev). ! p%precv(ilev)%nlaggr - integer, dimension(:), allocatable. -! The number of aggregates (rows of A(ilev)) on the -! various processes. +! The number of aggregates (rows of A(ilev)) on the +! various processes. ! p%precv(ilev)%base_a - type(psb_dspmat_type), pointer. -! Pointer (really a pointer!) to the base matrix of -! the current level, i.e. the local part of A(ilev); -! so we have a unified treatment of residuals. We -! need this to avoid passing explicitly the matrix -! A(ilev) to the routine which applies the -! preconditioner. +! Pointer (really a pointer!) to the base matrix of +! the current level, i.e. the local part of A(ilev); +! so we have a unified treatment of residuals. We +! need this to avoid passing explicitly the matrix +! A(ilev) to the routine which applies the +! preconditioner. ! p%precv(ilev)%base_desc - type(psb_desc_type), pointer. -! Pointer to the communication descriptor associated -! to the sparse matrix pointed by base_a. +! Pointer to the communication descriptor associated +! to the sparse matrix pointed by base_a. ! ! x - real(psb_dpk_), dimension(:), input. ! The local part of the vector X. @@ -149,7 +149,6 @@ subroutine mld_dmlprec_aply(alpha,p,x,beta,y,desc_data,trans,work,info) ! Arguments type(psb_desc_type),intent(in) :: desc_data type(mld_dprec_type), intent(in) :: p -!!$ type(mld_donelev_type), intent(in) :: precv(:) real(psb_dpk_),intent(in) :: alpha,beta real(psb_dpk_),intent(in) :: x(:) real(psb_dpk_),intent(inout) :: y(:) @@ -273,7 +272,7 @@ contains ! Y = beta*Y + alpha*op(M^(-1))*X, ! where ! - M is an additive multilevel domain decomposition (Schwarz) preconditioner - ! associated to a certain matrix A and stored in the array precv, + ! associated to a certain matrix A and stored in p, ! - op(M^(-1)) is M^(-1) or its transpose, according to the value of trans, ! - X and Y are vectors, ! - alpha and beta are scalars. @@ -285,9 +284,11 @@ contains ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! - ! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', - ! each representing the part of the preconditioner associated to a certain level. - ! For each level ilev, the base preconditioner K(ilev) is stored in precv(ilev) + ! The multilevel preconditioner is regarded as an array of 'one-level' data structures, + ! each containing the part of the preconditioner associated to a certain level + ! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). + ! For each level ilev, the 'base preconditioner' K(ilev) is stored in + ! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -303,10 +304,10 @@ contains ! ! For a description of the arguments see mld_dmlprec_aply. ! - ! A sketch of the algorithm implemented in this routine is provided below - ! (AV(ilev; sm_pr_) denotes the smoothed prolongator from level ilev to - ! level ilev-1, while AV(ilev; sm_pr_t_) denotes its transpose, i.e. the - ! corresponding restriction operator from level ilev-1 to level ilev). + ! A sketch of the algorithm implemented in this routine is provided below. + ! (P(ilev) denotes the smoothed prolongator from level ilev to level + ! ilev-1, while PT(ilev) denotes its transpose, i.e. the corresponding + ! restriction operator from level ilev-1 to level ilev). ! ! 1. ! Apply the base preconditioner at level 1. ! ! The sum over the subdomains is carried out in the @@ -317,7 +318,7 @@ contains ! 2. DO ilev=2,nlev ! ! ! Transfer X(ilev-1) to the next coarser level. - ! X(ilev) = AV(ilev; sm_pr_t_)*X(ilev-1) + ! X(ilev) = PT(ilev)*X(ilev-1) ! ! ! Apply the base preconditioner at the current level. ! ! The sum over the subdomains is carried out in the @@ -329,7 +330,7 @@ contains ! 3. DO ilev=nlev-1,1,-1 ! ! ! Transfer Y(ilev+1) to the next finer level. - ! Y(ilev) = AV(ilev+1; sm_pr_)*Y(ilev+1) + ! Y(ilev) = P(ilev+1)*Y(ilev+1) ! ! ENDDO ! @@ -342,7 +343,6 @@ contains ! Arguments type(psb_desc_type),intent(in) :: desc_data type(mld_dprec_type), intent(in) :: p -!!$ type(mld_donelev_type), intent(in) :: precv(:) real(psb_dpk_),intent(in) :: alpha,beta real(psb_dpk_),intent(in) :: x(:) real(psb_dpk_),intent(inout) :: y(:) @@ -420,7 +420,7 @@ contains goto 9999 end if - ! Apply prolongator transpose, i.e. restriction + ! Apply the prolongator transpose, i.e. the restriction call psb_map_X2Y(done,mlprec_wrk(ilev-1)%x2l,& & dzero,mlprec_wrk(ilev)%x2l,& & p%precv(ilev)%map,info,work=work) @@ -450,7 +450,7 @@ contains nr2l = psb_cd_get_local_rows(p%precv(ilev)%base_desc) ! - ! Apply prolongator + ! Apply the prolongator ! call psb_map_Y2X(done,mlprec_wrk(ilev)%y2l,& & done,mlprec_wrk(ilev-1)%y2l,& @@ -501,7 +501,7 @@ contains ! Y = beta*Y + alpha*op(M^(-1))*X, ! where ! - M is a hybrid multilevel domain decomposition (Schwarz) preconditioner - ! associated to a certain matrix A and stored in the array p%precv, + ! associated to a certain matrix A and stored in the array p%precv, ! - op(M^(-1)) is M^(-1) or its transpose, according to the value of trans, ! - X and Y are vectors, ! - alpha and beta are scalars. @@ -513,9 +513,11 @@ contains ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! - ! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', - ! each representing the part of the preconditioner associated to a certain level. - ! For each level ilev, the base preconditioner K(ilev) is stored in p%precv(ilev) + ! The multilevel preconditioner is regarded as an array of 'one-level' data structures, + ! each containing the part of the preconditioner associated to a certain level + ! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). + ! For each level ilev, the 'base preconditioner' K(ilev) is stored in + ! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -531,10 +533,10 @@ contains ! ! For a description of the arguments see mld_dmlprec_aply. ! - ! A sketch of the algorithm implemented in this routine is provided below - ! (AV(ilev; sm_pr_) denotes the smoothed prolongator from level ilev to - ! level ilev-1, while AV(ilev; sm_pr_t_) denotes its transpose, i.e. the - ! corresponding restriction operator from level ilev-1 to level ilev). + ! A sketch of the algorithm implemented in this routine is provided below. + ! (P(ilev) denotes the smoothed prolongator from level ilev to level + ! ilev-1, while PT(ilev) denotes its transpose, i.e. the corresponding + ! restriction operator from level ilev-1 to level ilev). ! ! 1. X(1) = Xext ! @@ -547,7 +549,7 @@ contains ! 4. DO ilev=2, nlev ! ! ! Transfer the residual to the current (coarser) level. - ! X(ilev) = AV(ilev; sm_pr_t_)*TX(ilev-1) + ! X(ilev) = PT(ilev)*TX(ilev-1) ! ! ! Apply the base preconditioner at the current level. ! ! The sum over the subdomains is carried out in the @@ -564,7 +566,7 @@ contains ! 5. DO ilev=nlev-1,1,-1 ! ! ! Transfer Y(ilev+1) to the next finer level - ! Y(ilev) = Y(ilev) + AV(ilev+1; sm_pr_)*Y(ilev+1) + ! Y(ilev) = Y(ilev) + P(ilev+1)*Y(ilev+1) ! ! ENDDO ! @@ -578,7 +580,6 @@ contains ! Arguments type(psb_desc_type),intent(in) :: desc_data type(mld_dprec_type), intent(in) :: p -!!$ type(mld_donelev_type), intent(in) :: precv(:) real(psb_dpk_),intent(in) :: alpha,beta real(psb_dpk_),intent(in) :: x(:) real(psb_dpk_),intent(inout) :: y(:) @@ -681,7 +682,7 @@ contains goto 9999 end if - ! Apply prolongator transpose, i.e. restriction + ! Apply the prolongator transpose, i.e. the restriction call psb_map_X2Y(done,mlprec_wrk(ilev-1)%tx,& & dzero,mlprec_wrk(ilev)%x2l,& & p%precv(ilev)%map,info,work=work) @@ -719,7 +720,7 @@ contains ! do ilev = nlev-1, 1, -1 ! - ! Apply prolongator + ! Apply the prolongator ! call psb_map_Y2X(done,mlprec_wrk(ilev+1)%y2l,& & done,mlprec_wrk(ilev)%y2l,& @@ -782,9 +783,11 @@ contains ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! - ! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', - ! each representing the part of the preconditioner associated to a certain level. - ! For each level ilev, the base preconditioner K(ilev) is stored in p%precv(ilev) + ! The multilevel preconditioner is regarded as an array of 'one-level' data structures, + ! each containing the part of the preconditioner associated to a certain level + ! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). + ! For each level ilev, the 'base preconditioner' K(ilev) is stored in + ! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -800,16 +803,16 @@ contains ! For a description of the arguments see mld_dmlprec_aply. ! ! A sketch of the algorithm implemented in this routine is provided below. - ! (AV(ilev; sm_pr_) denotes the smoothed prolongator from level ilev to - ! level ilev-1, while AV(ilev; sm_pr_t_) denotes its transpose, i.e. the - ! corresponding restriction operator from level ilev-1 to level ilev). + ! (P(ilev) denotes the smoothed prolongator from level ilev to level + ! ilev-1, while PT(ilev) denotes its transpose, i.e. the corresponding + ! restriction operator from level ilev-1 to level ilev). ! ! 1. X(1) = Xext ! ! 2. DO ilev=2, nlev ! ! ! Transfer X(ilev-1) to the next coarser level. - ! X(ilev) = AV(ilev; sm_pr_t_)*X(ilev-1) + ! X(ilev) = PT(ilev)*X(ilev-1) ! ! ENDDO ! @@ -819,7 +822,7 @@ contains ! 4. DO ilev=nlev-1,1,-1 ! ! ! Transfer Y(ilev+1) to the next finer level. - ! Y(ilev) = AV(ilev+1; sm_pr_)*Y(ilev+1) + ! Y(ilev) = P(ilev+1)*Y(ilev+1) ! ! ! Compute the residual at the current level and apply to it the ! ! base preconditioner. The sum over the subdomains is carried out @@ -838,7 +841,6 @@ contains ! Arguments type(psb_desc_type),intent(in) :: desc_data type(mld_dprec_type), intent(in) :: p -!!$ type(mld_donelev_type), intent(in) :: precv(:) real(psb_dpk_),intent(in) :: alpha,beta real(psb_dpk_),intent(in) :: x(:) real(psb_dpk_),intent(inout) :: y(:) @@ -927,7 +929,7 @@ contains goto 9999 end if - ! Apply prolongator transpose, i.e. restriction + ! Apply the prolongator transpose, i.e. the restriction call psb_map_X2Y(done,mlprec_wrk(ilev-1)%x2l,& & dzero,mlprec_wrk(ilev)%x2l,& & p%precv(ilev)%map,info,work=work) @@ -980,7 +982,7 @@ contains & ' starting down sweep',ilev ! - ! Apply prolongator + ! Apply the prolongator ! call psb_map_Y2X(done,mlprec_wrk(ilev+1)%y2l,& & dzero,mlprec_wrk(ilev)%y2l,& @@ -1069,9 +1071,11 @@ contains ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! - ! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', - ! each representing the part of the preconditioner associated to a certain level. - ! For each level ilev, the base preconditioner K(ilev) is stored in p%precv(ilev) + ! The multilevel preconditioner is regarded as an array of 'one-level' data structures, + ! each containing the part of the preconditioner associated to a certain level + ! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). + ! For each level ilev, the 'base preconditioner' K(ilev) is stored in + ! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -1088,9 +1092,9 @@ contains ! For a description of the arguments see mld_dmlprec_aply. ! ! A sketch of the algorithm implemented in this routine is provided below. - ! (AV(ilev; sm_pr_) denotes the smoothed prolongator from level ilev to - ! level ilev-1, while AV(ilev; sm_pr_t_) denotes its transpose, i.e. the - ! corresponding restriction operator from level ilev-1 to level ilev). + ! (P(ilev) denotes the smoothed prolongator from level ilev to level + ! ilev-1, while PT(ilev) denotes its transpose, i.e. the corresponding + ! restriction operator from level ilev-1 to level ilev). ! ! 1. X(1) = Xext ! @@ -1103,7 +1107,7 @@ contains ! 4. DO ilev=2, nlev ! ! ! Transfer the residual to the current (coarser) level - ! X(ilev) = AV(ilev; sm_pr_t)*TX(ilev-1) + ! X(ilev) = PT(ilev)*TX(ilev-1) ! ! ! Apply the base preconditioner at the current level. ! ! The sum over the subdomains is carried out in the @@ -1111,14 +1115,17 @@ contains ! Y(ilev) = (K(ilev)^(-1))*X(ilev) ! ! ! Compute the residual at the current level - ! TX(ilev) = (X(ilev)-A(ilev)*Y(ilev)) + ! ! (except for ilev=nlev) + ! if(ilev < nlev)then + ! TX(ilev) = (X(ilev)-A(ilev)*Y(ilev)) + ! endif ! ! ENDDO ! ! 5. DO ilev=NLEV-1,1,-1 ! ! ! Transfer Y(ilev+1) to the next finer level - ! Y(ilev) = Y(ilev) + AV(ilev+1; sm_pr_)*Y(ilev+1) + ! Y(ilev) = Y(ilev) + P(ilev+1)*Y(ilev+1) ! ! ! Compute the residual at the current level and apply to it the ! ! base preconditioner. The sum over the subdomains is carried out @@ -1136,7 +1143,6 @@ contains ! Arguments type(psb_desc_type),intent(in) :: desc_data type(mld_dprec_type), intent(in) :: p -!!$ type(mld_donelev_type), intent(in) :: p%precv(:) real(psb_dpk_),intent(in) :: alpha,beta real(psb_dpk_),intent(in) :: x(:) real(psb_dpk_),intent(inout) :: y(:) @@ -1238,7 +1244,7 @@ contains goto 9999 end if - ! Apply prolongator transpose, i.e. restriction + ! Apply the prolongator transpose, i.e. the restriction call psb_map_X2Y(done,mlprec_wrk(ilev-1)%ty,& & dzero,mlprec_wrk(ilev)%x2l,& & p%precv(ilev)%map,info,work=work) @@ -1280,7 +1286,7 @@ contains do ilev=nlev-1, 1, -1 ! - ! Apply prolongator + ! Apply the prolongator ! call psb_map_Y2X(done,mlprec_wrk(ilev+1)%y2l,& & done,mlprec_wrk(ilev)%y2l,& diff --git a/mlprec/mld_dmlprec_bld.f90 b/mlprec/mld_dmlprec_bld.f90 index ebff9538..aa1142bf 100644 --- a/mlprec/mld_dmlprec_bld.f90 +++ b/mlprec/mld_dmlprec_bld.f90 @@ -1,12 +1,12 @@ +m!!$ !!$ -!!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -45,10 +45,11 @@ ! This routine builds the preconditioner according to the requirements made by ! the user trough the subroutines mld_precinit and mld_precset. ! -! A multilevel preconditioner is regarded as an array of 'base preconditioners', -! each representing the part of the preconditioner associated to a certain level. -! The levels are numbered in increasing order starting from the finest one, i.e. -! level 1 is the finest level. +! A multilevel preconditioner is regarded as an array of 'one-level' data structures, +! each containing the part of the preconditioner associated to a certain level, +! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). +! The levels are numbered in increasing order starting from the finest one, i.e. +! level 1 is the finest level. No transfer operators are associated to level 1. ! ! ! Arguments: @@ -150,8 +151,8 @@ subroutine mld_dmlprec_bld(a,desc_a,p,info) if (iszv > 1) then ! - ! Build the base preconditioners corresponding to the remaining - ! levels + ! Build the matrix and the transfer operators corresponding + ! to the remaining levels ! ! ! Check on the iprcparm contents: they should be the same @@ -210,7 +211,8 @@ subroutine mld_dmlprec_bld(a,desc_a,p,info) & write(debug_unit,*) me,' ',trim(name),& & 'Calling mlprcbld at level ',i ! - ! Build the mapping between levels (i-1) and (i) + ! Build the mapping between levels i-1 and i and the matrix + ! at level i ! call init_baseprec_av(p%precv(i)%prec,info) if (info == 0) call mld_coarse_bld(p%precv(i-1)%base_a,& @@ -287,7 +289,9 @@ subroutine mld_dmlprec_bld(a,desc_a,p,info) end if do i=1, iszv - + ! + ! build the base preconditioner at level i + ! if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Calling mlprcbld at level ',i @@ -383,4 +387,3 @@ contains end subroutine check_coarse_lev end subroutine mld_dmlprec_bld - diff --git a/mlprec/mld_dprecaply.f90 b/mlprec/mld_dprecaply.f90 index 3fa7ba00..76800706 100644 --- a/mlprec/mld_dprecaply.f90 +++ b/mlprec/mld_dprecaply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -56,9 +56,9 @@ ! The preconditioner data structure containing the local part ! of the preconditioner to be applied. ! x - real(psb_dpk_), dimension(:), input. -! The local part of the vector X in Y := op(M^(-1)) * X. +! The local part of the vector X in Y=op(M^(-1))*X. ! y - real(psb_dpk_), dimension(:), output. -! The local part of the vector Y in Y := op(M^(-1)) * X. +! The local part of the vector Y in Y=op(M^(-1))*X. ! desc_data - type(psb_desc_type), input. ! The communication descriptor associated to the matrix to be ! preconditioned. @@ -126,14 +126,20 @@ subroutine mld_dprecaply(prec,x,y,desc_data,info,trans,work) call psb_errpush(info,name) goto 9999 end if - if (size(prec%precv) >1) then + if (size(prec%precv) >1) then + ! + ! Number of levels > 1: apply the multilevel preconditioner + ! call mld_mlprec_aply(done,prec,x,dzero,y,desc_data,trans_,work_,info) if(info /= 0) then call psb_errpush(4010,name,a_err='mld_dmlprec_aply') goto 9999 end if - else if (size(prec%precv) == 1) then + else if (size(prec%precv) == 1) then + ! + ! Number of levels = 1: apply the base preconditioner + ! call mld_baseprec_aply(done,prec%precv(1)%prec,x,dzero,y,desc_data,trans_, work_,info) else info = 4013 diff --git a/mlprec/mld_dprecbld.f90 b/mlprec/mld_dprecbld.f90 index ba5ddba4..d41f70ff 100644 --- a/mlprec/mld_dprecbld.f90 +++ b/mlprec/mld_dprecbld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -43,12 +43,7 @@ ! Contains: subroutine init_baseprec_av ! ! This routine builds the preconditioner according to the requirements made by -! the user trough the subroutines mld_precinit and mld_precset. -! -! A multilevel preconditioner is regarded as an array of 'base preconditioners', -! each representing the part of the preconditioner associated to a certain level. -! The levels are numbered in increasing order starting from the finest one, i.e. -! level 1 is the finest level. +! the user through the subroutines mld_precinit and mld_precset. ! ! ! Arguments: @@ -104,7 +99,7 @@ subroutine mld_dprecbld(a,desc_a,p,info) & write(debug_unit,*) me,' ',trim(name),& & 'Entering ',desc_a%matrix_data(:) ! - ! For the time being we are commenting out the UPDATE argument + ! For the time being we are commenting out the UPDATE argument; ! we plan to resurrect it later. !!$ if (present(upd)) then !!$ if (debug_level >= psb_debug_outer_) & @@ -147,6 +142,9 @@ subroutine mld_dprecbld(a,desc_a,p,info) goto 9999 end if + ! + ! Number of levels = 1 + ! if (iszv == 1) then ! ! Check on the iprcparm contents: they should be the same @@ -160,7 +158,7 @@ subroutine mld_dprecbld(a,desc_a,p,info) p%precv(1)%iprcparm(:) = ipv(:) end if ! - ! Finest level first; remember to fix base_a and base_desc + ! Remember to fix base_a and base_desc ! call init_baseprec_av(p%precv(1)%prec,info) p%precv(1)%base_a => a @@ -170,6 +168,9 @@ subroutine mld_dprecbld(a,desc_a,p,info) call psb_errpush(4001,name,a_err='Base level precbuild.') goto 9999 end if + ! + ! Build the base preconditioner + ! select case(p%precv(1)%prec%iprcparm(mld_sub_solve_)) case(mld_ilu_n_,mld_milu_n_) call mld_check_def(p%precv(1)%prec%iprcparm(mld_sub_fillin_),& @@ -189,8 +190,13 @@ subroutine mld_dprecbld(a,desc_a,p,info) goto 9999 endif - else if (iszv > 1) then - + ! + ! Number of levels > 1 + ! + else if (iszv > 1) then + ! + ! Build the multilevel preconditioner + ! call mld_mlprec_bld(a,desc_a,p,info) if (info /= 0) then @@ -232,4 +238,3 @@ contains end subroutine init_baseprec_av end subroutine mld_dprecbld - diff --git a/mlprec/mld_dprecinit.F90 b/mlprec/mld_dprecinit.F90 index 42f3fad1..353076d3 100644 --- a/mlprec/mld_dprecinit.F90 +++ b/mlprec/mld_dprecinit.F90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -252,6 +252,7 @@ subroutine mld_dprecinit(p,ptype,info,nlev) p%precv(ilev_)%iprcparm(mld_smoother_pos_) = mld_post_smooth_ p%precv(ilev_)%iprcparm(mld_aggr_omega_alg_) = mld_eig_est_ p%precv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_ + p%precv(ilev_)%iprcparm(mld_aggr_filter_) = mld_no_filter_mat_ p%precv(ilev_)%rprcparm(mld_aggr_omega_val_) = dzero p%precv(ilev_)%rprcparm(mld_aggr_thresh_) = dzero end do @@ -287,6 +288,7 @@ subroutine mld_dprecinit(p,ptype,info,nlev) p%precv(ilev_)%iprcparm(mld_smoother_pos_) = mld_post_smooth_ p%precv(ilev_)%iprcparm(mld_aggr_omega_alg_) = mld_eig_est_ p%precv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_ + p%precv(ilev_)%iprcparm(mld_aggr_filter_) = mld_no_filter_mat_ p%precv(ilev_)%rprcparm(mld_aggr_omega_val_) = dzero p%precv(ilev_)%rprcparm(mld_aggr_thresh_) = dzero diff --git a/mlprec/mld_dprecset.f90 b/mlprec/mld_dprecset.f90 index ccd9ad10..5eb0868b 100644 --- a/mlprec/mld_dprecset.f90 +++ b/mlprec/mld_dprecset.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -57,10 +57,10 @@ ! what - integer, input. ! The number identifying the parameter to be set. ! A mnemonic constant has been associated to each of these -! numbers, as reported in MLD2P4 user's guide. +! numbers, as reported in the MLD2P4 User's and Reference Guide. ! val - integer, input. ! The value of the parameter to be set. The list of allowed -! values is reported in MLD2P4 user's guide. +! values is reported in the MLD2P4 User's and Reference Guide. ! info - integer, output. ! Error code. ! ilev - integer, optional, input. @@ -302,7 +302,6 @@ end subroutine mld_dprecseti ! ! Subroutine: mld_dprecsetc ! Version: real -! Contains: mld_stringval ! ! This routine sets the character parameters defining the preconditioner. More ! precisely, the character parameter identified by 'what' is assigned the value @@ -320,10 +319,10 @@ end subroutine mld_dprecseti ! what - integer, input. ! The number identifying the parameter to be set. ! A mnemonic constant has been associated to each of these -! numbers, as reported in MLD2P4 user's guide. +! numbers, as reported in the MLD2P4 User's and Reference Guide. ! string - character(len=*), input. ! The value of the parameter to be set. The list of allowed -! values is reported in MLD2P4 user's guide. +! values is reported in the MLD2P4 User's and Reference Guide. ! info - integer, output. ! Error code. ! ilev - integer, optional, input. @@ -409,10 +408,10 @@ end subroutine mld_dprecsetc ! what - integer, input. ! The number identifying the parameter to be set. ! A mnemonic constant has been associated to each of these -! numbers, as reported in MLD2P4 user's guide. +! numbers, as reported in the MLD2P4 User's and Reference Guide. ! val - real(psb_dpk_), input. ! The value of the parameter to be set. The list of allowed -! values is reported in MLD2P4 user's guide. +! values is reported in the MLD2P4 User's and Reference Guide. ! info - integer, output. ! Error code. ! ilev - integer, optional, input. @@ -444,7 +443,7 @@ subroutine mld_dprecsetr(p,what,val,info,ilev) ! Local variables integer :: ilev_,nlev_ - character(len=*), parameter :: name='mld_precsetd' + character(len=*), parameter :: name='mld_precsetr' info = 0 diff --git a/mlprec/mld_dslu_bld.f90 b/mlprec/mld_dslu_bld.f90 index 85d17917..a169a782 100644 --- a/mlprec/mld_dslu_bld.f90 +++ b/mlprec/mld_dslu_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -44,7 +44,7 @@ ! This routine computes the LU factorization of the local part of the matrix ! stored into a, by using SuperLU. ! -! The matrix to be factorized is +! The local matrix to be factorized is ! - either a submatrix of the distributed matrix corresponding to any level ! of a multilevel preconditioner, and its factorization is used to build ! the 'base preconditioner' corresponding to that level, diff --git a/mlprec/mld_dslu_interface.c b/mlprec/mld_dslu_interface.c index eb24f075..22cba39b 100644 --- a/mlprec/mld_dslu_interface.c +++ b/mlprec/mld_dslu_interface.c @@ -1,12 +1,12 @@ /* * - * MLD2P4 version 1.0 + * MLD2P4 version 1.1 * MultiLevel Domain Decomposition Parallel Preconditioners Package - * based on PSBLAS (Parallel Sparse BLAS version 2.2) + * based on PSBLAS (Parallel Sparse BLAS version 2.3.1) * - * (C) Copyright 2008 + * (C) Copyright 2008,2009 * - * Salvatore Filippone University of Rome Tor Vergata + * Salvatore Filippone University of Rome Tor Vergata * Alfredo Buttari University of Rome Tor Vergata * Pasqua D'Ambra ICAR-CNR, Naples * Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_dslud_bld.f90 b/mlprec/mld_dslud_bld.f90 index a31ac388..47a2fffd 100644 --- a/mlprec/mld_dslud_bld.f90 +++ b/mlprec/mld_dslud_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -44,7 +44,7 @@ ! This routine computes the LU factorization of of a distributed matrix, ! by using SuperLU_DIST. ! -! The matrix to be factorized is the coarsest level matrix of a multilevel +! The matrix to be factorized is the coarsest-level matrix of a multilevel ! preconditioner and is distributed among the processes. Its factorization ! is used to build the 'base preconditioner' corresponding to the coarsest ! level. diff --git a/mlprec/mld_dslud_interface.c b/mlprec/mld_dslud_interface.c index 5aae452d..73bc9186 100644 --- a/mlprec/mld_dslud_interface.c +++ b/mlprec/mld_dslud_interface.c @@ -1,12 +1,12 @@ /* * - * MLD2P4 version 1.0 + * MLD2P4 version 1.1 * MultiLevel Domain Decomposition Parallel Preconditioners Package - * based on PSBLAS (Parallel Sparse BLAS version 2.2) + * based on PSBLAS (Parallel Sparse BLAS version 2.3.1) * - * (C) Copyright 2008 + * (C) Copyright 2008,2009 * - * Salvatore Filippone University of Rome Tor Vergata + * Salvatore Filippone University of Rome Tor Vergata * Alfredo Buttari University of Rome Tor Vergata * Pasqua D'Ambra ICAR-CNR, Naples * Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_dsp_renum.f90 b/mlprec/mld_dsp_renum.f90 index 4e48d445..b3c8f61f 100644 --- a/mlprec/mld_dsp_renum.f90 +++ b/mlprec/mld_dsp_renum.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -250,7 +250,7 @@ contains ! Note: internal subroutine of mld_dsp_renum ! ! Compute a renumbering of the row and column indices of a sparse matrix - ! according to the Gibbs-Poole-Stockmeyer band reduction algorithm. The + ! according to the Gibbs-Poole-Stockmeyer band reduction algorithm. The ! matrix is stored in CSR format. ! ! This routine has been obtained by adapting ACM TOMS Algorithm 582. diff --git a/mlprec/mld_dsub_aply.f90 b/mlprec/mld_dsub_aply.f90 index 5d37b5ee..0032f739 100644 --- a/mlprec/mld_dsub_aply.f90 +++ b/mlprec/mld_dsub_aply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -94,17 +94,18 @@ ! preconditioner. ! ! Tasks 1, 3 and 4 may be selected when prec%iprcparm(mld_smoother_sweeps_) = 1, -! while task 2 is selected when prec%iprcparm(mld_smoother_sweeps_) > 1. Furthermore -! Tasks 1, 2 and 3 may be performed when the matrix A is -! distributed among the processes (prec%iprcparm(mld_coarse_mat_) = mld_distr_mat_), -! while task 4 may be performed when A is replicated on the processes -! (prec%iprcparm(mld_coarse_mat_) = mld_repl_mat_). Note that the matrix A is -! distributed among the processes at each level of the multilevel preconditioner, -! except the coarsest one, where it may be either distributed or replicated on -! the processes. Tasks 2, 3 and 4 are performed only at the coarsest level. -! Note also that this routine manages implicitly the fact that -! the matrix is distributed or replicated, i.e. it does not make any explicit -! reference to the value of prec%iprcparm(mld_coarse_mat_). +! while task 2 is selected when prec%iprcparm(mld_smoother_sweeps_) > 1. +! Furthermore, tasks 1, 2 and 3 may be performed when the matrix A is distributed +! among the processes (p%precv(ilev)%iprcparm(mld_coarse_mat_) = mld_distr_mat_, +! where p%precv(ilev) is the one-level data structure associated to the level +! ilev at which mld_sub_aply is called), while task 4 may be performed when A +! is replicated on the processes (p%precv(ilev)%iprcparm(mld_coarse_mat_) = +! mld_repl_mat_). Note that the matrix A is distributed among the processes +! at each level of the multilevel preconditioner, except the coarsest one, where +! it may be either distributed or replicated on the processes. Tasks 2, 3 and 4 +! are performed only at the coarsest level. Note also that this routine manages +! implicitly the fact that the matrix is distributed or replicated, i.e. it does not +! make any explicit reference to the value of p%precv(ilev)%iprcparm(mld_coarse_mat_). ! ! Arguments: ! @@ -140,14 +141,14 @@ subroutine mld_dsub_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) implicit none ! Arguments - type(psb_desc_type), intent(in) :: desc_data - type(mld_dbaseprec_type), intent(in) :: prec + type(psb_desc_type), intent(in) :: desc_data + type(mld_dbaseprec_type), intent(in) :: prec real(psb_dpk_),intent(in) :: x(:) real(psb_dpk_),intent(inout) :: y(:) real(psb_dpk_),intent(in) :: alpha,beta - character(len=1),intent(in) :: trans + character(len=1),intent(in) :: trans real(psb_dpk_),target, intent(inout) :: work(:) - integer, intent(out) :: info + integer, intent(out) :: info ! Local variables integer :: n_row,n_col @@ -293,4 +294,3 @@ subroutine mld_dsub_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) return end subroutine mld_dsub_aply - diff --git a/mlprec/mld_dsub_solve.f90 b/mlprec/mld_dsub_solve.f90 index 6b4c32d1..7608e280 100644 --- a/mlprec/mld_dsub_solve.f90 +++ b/mlprec/mld_dsub_solve.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -60,8 +60,8 @@ ! ! A*Y = X, ! -! by using the L and U factors computed with an ILU (incomplete LU) factorization -! of A. In this case K = L*U ~ A, alpha = 1 and beta = 0. The factors L and U +! by using the L and U factors computed with an ILU factorization of A. +! In this case K = L*U ~ A, alpha = 1 and beta = 0. The factors L and U ! (and the matrix A) are either distributed and block-diagonal or replicated. ! ! 2. Solution of a linear system @@ -309,4 +309,3 @@ subroutine mld_dsub_solve(alpha,prec,x,beta,y,desc_data,trans,work,info) return end subroutine mld_dsub_solve - diff --git a/mlprec/mld_dumf_bld.f90 b/mlprec/mld_dumf_bld.f90 index 05e8e977..2df2a38b 100644 --- a/mlprec/mld_dumf_bld.f90 +++ b/mlprec/mld_dumf_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -44,7 +44,7 @@ ! This routine computes the LU factorization of the local part of the matrix ! stored into a, by using UMFPACK. ! -! The matrix to be factorized is +! The local matrix to be factorized is ! - either a submatrix of the distributed matrix corresponding to any level ! of a multilevel preconditioner, and its factorization is used to build ! the 'base preconditioner' corresponding to that level, diff --git a/mlprec/mld_dumf_interface.c b/mlprec/mld_dumf_interface.c index 1e498f73..9701acf3 100644 --- a/mlprec/mld_dumf_interface.c +++ b/mlprec/mld_dumf_interface.c @@ -1,12 +1,12 @@ /* * - * MLD2P4 version 1.0 + * MLD2P4 version 1.1 * MultiLevel Domain Decomposition Parallel Preconditioners Package - * based on PSBLAS (Parallel Sparse BLAS version 2.2) + * based on PSBLAS (Parallel Sparse BLAS version 2.3.1) * - * (C) Copyright 2008 + * (C) Copyright 2008,2009 * - * Salvatore Filippone University of Rome Tor Vergata + * Salvatore Filippone University of Rome Tor Vergata * Alfredo Buttari University of Rome Tor Vergata * Pasqua D'Ambra ICAR-CNR, Naples * Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_inner_mod.f90 b/mlprec/mld_inner_mod.f90 index c13d6d79..00d8e050 100644 --- a/mlprec/mld_inner_mod.f90 +++ b/mlprec/mld_inner_mod.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -36,6 +36,14 @@ !!$ POSSIBILITY OF SUCH DAMAGE. !!$ !!$ +! File: mld_inner_mod.f90 +! +! Module: mld_inner_mod +! +! This module defines the interfaces to the real/complex, single/double +! precision versions of the MLD2P4 routines, except those of the user level, +! whose interfaces are defined in mld_prec_mod.f90. +! module mld_inner_mod use mld_prec_type use mld_move_alloc_mod diff --git a/mlprec/mld_move_alloc_mod.F90 b/mlprec/mld_move_alloc_mod.F90 index 6374eab2..470d442b 100644 --- a/mlprec/mld_move_alloc_mod.F90 +++ b/mlprec/mld_move_alloc_mod.F90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -38,22 +38,10 @@ !!$ ! File: mld_move_alloc_mod.f90 ! -! Package: mld_prec_type -! Data structure(s) for sparse matrices +! Module: mld_move_alloc_mod ! -! This module defines: -! - the mld_prec_type data structure containing the preconditioner; -! - character constants describing the preconditioner, used by the routine -! printing out a preconditioner description; -! - the interfaces to the routines for the management of the preconditioner -! data structure (see below). -! -! It contains: -! - mld_dprec_sizeof, mld_dbaseprec_sizeof, mld_out_prec_descr, mld_file_prec_descr, -! mld_icheck_def, mld_dcheck_def, mld_dbase_precfree, mld_nullify_dbaseprec, -! is_legal_..._..., and their complex versions (if applicable). -! These routines check if the preconditioner is correctly defined, print a -! description of the preconditioner, and deallocate its data structure. +! This module defines move_alloc-like routines, and related interfaces, +! for the preconditioner data structures. . ! module mld_move_alloc_mod diff --git a/mlprec/mld_prec_mod.f90 b/mlprec/mld_prec_mod.f90 index d276f03f..9b355bf5 100644 --- a/mlprec/mld_prec_mod.f90 +++ b/mlprec/mld_prec_mod.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -40,8 +40,8 @@ ! ! Module: mld_prec_mod ! -! This module defines the interfaces to the real and complex versions of the -! MLD2P4 routines. +! This module defines the interfaces to the real/complex, single/double +! precision versions of the user-level MLD2P4 routines. ! module mld_prec_mod diff --git a/mlprec/mld_prec_type.f90 b/mlprec/mld_prec_type.f90 index 7fdc5c13..799beade 100644 --- a/mlprec/mld_prec_type.f90 +++ b/mlprec/mld_prec_type.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -38,22 +38,23 @@ !!$ ! File: mld_prec_type.f90 ! -! Package: mld_prec_type -! Data structure(s) for sparse matrices +! Module: mld_prec_type ! ! This module defines: -! - the mld_prec_type data structure containing the preconditioner; -! - character constants describing the preconditioner, used by the routine -! printing out a preconditioner description; +! - the mld_prec_type data structure containing the preconditioner and related +! data structures; +! - integer constants defining the preconditioner; +! - character constants describing the preconditioner (used by the routines +! printing out a preconditioner description); ! - the interfaces to the routines for the management of the preconditioner ! data structure (see below). ! -! It contains: -! - mld_dprec_sizeof, mld_dbaseprec_sizeof, mld_out_prec_descr, mld_file_prec_descr, -! mld_icheck_def, mld_dcheck_def, mld_dbase_precfree, mld_nullify_dbaseprec, -! is_legal_..._..., and their complex versions (if applicable). -! These routines check if the preconditioner is correctly defined, print a -! description of the preconditioner, and deallocate its data structure. +! It contains routines for +! - converting character constants defining the preconditioner into integer +! constants; +! - checking if the preconditioner is correctly defined; +! - printing a description of the preconditioner; +! - deallocating the preconditioner data structure. ! module mld_prec_type @@ -75,75 +76,95 @@ module mld_prec_type & psb_cd_get_context, psb_info ! - ! Type: mld_dprec_type, mld_zprec_type, mld_sprec_type, mld_cprec_type + ! Type: mld_Tprec_type. ! - ! mld_dprec_type and friends are the real and complex preconditioner - ! data structures. In the following description 'd', 's', 'c' and 'z' - ! are mostly omitted. + ! It is the data type containing all the information about the multilevel + ! preconditioner (here and in the following 'T' denotes 'd', 's', 'c' and + ! 'z', according to the real/complex, single/double precision version of + ! MLD2P4). It consists of an array of 'one-level' intermediate data structures + ! of type mld_Tonelev_type, each containing the information needed to apply + ! the smoothing and the coarse-space correction at a generic level. ! - ! The multilevel preconditioner data structure, mld_Xprec_type, consists - ! of an array of 'one-level preconditioner' data structures, mld_Xonelev_type, - ! each containing the local part of the preconditioner associated to a - ! certain level. For each level ilev, the base preconditioner K(ilev) is - ! built from a matrix A(ilev), which is obtained by 'tranferring' the - ! original matrix A (i.e. the matrix to be preconditioned) to level ilev, - ! through smoothed aggregation. + ! type mld_Tprec_type + ! type(mld_Tonelev_type), allocatable :: precv(:) + ! end type mld_Tprec_type + ! + ! Note that the levels are numbered in increasing order starting from + ! the finest one and the number of levels is given by size(precv(:)). ! - ! The levels are numbered in increasing order starting from the finest - ! one, i.e. level 1 is the finest level and A(1) is the matrix A. ! - !| type mld_Xprec_type - !| type(mld_Xonelev_type), allocatable :: precv(:) - !| end type mld_Xprec_type - !| - ! - ! precv(ilev) is the preconditioner at level ilev. - ! The number of levels is given by size(precv(:)). + ! Type: mld_Tonelev_type. + ! + ! It is the data type containing the necessary items for the current + ! level (essentially, the base preconditioner, the current-level matrix + ! and the restriction and prolongation operators). + ! + ! type mld_Tonelev_type + ! type(mld_Tbaseprec_type) :: prec + ! integer, allocatable :: iprcparm(:) + ! real(psb_Tpk_), allocatable :: rprcparm(:) + ! type(psb_Tspmat_type) :: ac + ! type(psb_desc_type) :: desc_ac + ! type(psb_Tspmat_type), pointer :: base_a => null() + ! type(psb_desc_type), pointer :: base_desc => null() + ! type(psb_Tlinmap_type) :: map + ! end type mld_Tonelev_type ! - ! Type: mld_Xonelev_type. - ! The data type containing necessary items for the current level. + ! Note that psb_Tpk denotes the kind of the real data type to be chosen + ! according to single/double precision version of MLD2P4. ! - ! type(mld_Xbaseprec_type) - prec + ! prec - type(mld_Tbaseprec_type). ! The current level preconditioner (aka smoother). - ! ac - The local part of the matrix A(ilev). - ! desc_ac - type(psb_desc_type). - ! The communication descriptor associated to the sparse matrix - ! A(ilev), stored in ac. ! iprcparm - integer, dimension(:), allocatable. - ! The integer parameters defining the multilevel strategy + ! The integer parameters defining the multilevel strategy. ! rprcparm - real(psb_Ypk_), dimension(:), allocatable. - ! The real parameters defining the multilevel strategy - ! mlia - integer, dimension(:), allocatable. - ! The aggregation map (ilev-1) --> (ilev). - ! In case of non-smoothed aggregation, it is used instead of - ! mld_sm_pr_. - ! nlaggr - integer, dimension(:), allocatable. - ! The number of aggregates (rows of A(ilev)) on the - ! various processes. - ! map - Stores the mapping between indices from level(ilev-1) to (ilev). - ! Unused at level 1 (finest). + ! The real parameters defining the multilevel strategy. + ! ac - The local part of the current-level matrix, built by + ! coarsening the previous-level matrix. + ! desc_ac - type(psb_desc_type). + ! The communication descriptor associated to the matrix + ! stored in ac. ! base_a - type(psb_zspmat_type), pointer. - ! Pointer (really a pointer!) to the local part of the base matrix - ! of the current level, i.e. A(ilev); so we have a unified treatment - ! of residuals. We need this to avoid passing explicitly the matrix - ! A(ilev) to the routine which applies the preconditioner. + ! Pointer (really a pointer!) to the local part of the current + ! matrix (so we have a unified treatment of residuals). + ! We need this to avoid passing explicitly the current matrix + ! to the routine which applies the preconditioner. ! base_desc - type(psb_desc_type), pointer. - ! Pointer to the communication descriptor associated to the sparse - ! matrix pointed by base_a. - ! Type: mld_Xbaseprec_type - ! The smoother. + ! Pointer to the communication descriptor associated to the + ! matrix pointed by base_a. + ! map - Stores the maps (restriction and prolongation) between the + ! vector spaces associated to the index spaces of the previous + ! and current levels. ! - ! av - type(psb_Xspmat_type), dimension(:), allocatable(:). + ! + ! Type: mld_Tbaseprec_type. + ! + ! It holds the smoother (base preconditioner) at a single level. + ! + ! type mld_Tbaseprec_type + ! type(psb_Tspmat_type), allocatable :: av(:) + ! IntrType(psb_Tpk_), allocatable :: d(:) + ! type(psb_desc_type) :: desc_data + ! integer, allocatable :: iprcparm(:) + ! real(psb_Tpk_), allocatable :: rprcparm(:) + ! integer, allocatable :: perm(:), invperm(:) + ! end type mld_sbaseprec_type + ! + ! Note that IntrType denotes the real or complex data type, and psb_Tpk denotes + ! the kind of the real or complex type, according to the real/complex, single/double + ! precision version of MLD2P4. + ! + ! av - type(psb_Tspmat_type), dimension(:), allocatable(:). ! The sparse matrices needed to apply the preconditioner at ! the current level ilev. ! av(mld_l_pr_) - The L factor of the ILU factorization of the local - ! diagonal block of A(ilev). + ! diagonal block of the current-level matrix A(ilev). ! av(mld_u_pr_) - The U factor of the ILU factorization of the local ! diagonal block of A(ilev), except its diagonal entries ! (stored in d). ! av(mld_ap_nd_) - The entries of the local part of A(ilev) outside ! the diagonal block, for block-Jacobi sweeps. - ! d - real/complex(psb_Ypk_), dimension(:), allocatable. + ! d - real/complex(psb_Tpk_), dimension(:), allocatable. ! The diagonal entries of the U factor in the ILU factorization ! of A(ilev). ! desc_data - type(psb_desc_type). @@ -153,7 +174,7 @@ module mld_prec_type ! iprcparm - integer, dimension(:), allocatable. ! The integer parameters defining the base preconditioner K(ilev) ! (the iprcparm entries and values are specified below). - ! rprcparm - real(psb_Ypk_), dimension(:), allocatable. + ! rprcparm - real(psb_Tpk_), dimension(:), allocatable. ! The real parameters defining the base preconditioner K(ilev) ! (the rprcparm entries and values are specified below). ! perm - integer, dimension(:), allocatable. @@ -162,10 +183,11 @@ module mld_prec_type ! invperm - integer, dimension(:), allocatable. ! The inverse of the permutation stored in perm. ! - ! Note that when the LU factorization of the matrix A(ilev) is computed instead of - ! the ILU one, by using UMFPACK or SuperLU_dist, the corresponding L and U factors - ! are stored in data structures provided by UMFPACK or SuperLU_dist and pointed by - ! prec%iprcparm(mld_umf_ptr) or prec%iprcparm(mld_slu_ptr), respectively. + ! Note that when the LU factorization of the (local part of the) matrix A(ilev) is + ! computed instead of the ILU one, by using UMFPACK, SuperLU or SuperLU_dist, the + ! corresponding L and U factors are stored in data structures provided by those + ! packages and pointed by prec%iprcparm(mld_umf_ptr), prec%iprcparm(mld_slu_ptr) + ! or prec%iprcparm(mld_slud_ptr). ! type mld_sbaseprec_type @@ -286,7 +308,7 @@ module mld_prec_type integer, parameter :: mld_slud_ptr_ = 16 integer, parameter :: mld_prec_status_ = 18 ! - ! These are in onelev_prec + ! These are in onelev ! integer, parameter :: mld_ml_type_ = 20 integer, parameter :: mld_smoother_pos_ = 21 @@ -294,11 +316,12 @@ module mld_prec_type integer, parameter :: mld_aggr_alg_ = 23 integer, parameter :: mld_aggr_omega_alg_ = 24 integer, parameter :: mld_aggr_eig_ = 25 - integer, parameter :: mld_coarse_mat_ = 26 - integer, parameter :: mld_coarse_solve_ = 27 - integer, parameter :: mld_coarse_sweeps_ = 28 - integer, parameter :: mld_coarse_fillin_ = 29 - integer, parameter :: mld_coarse_subsolve_ = 30 + integer, parameter :: mld_aggr_filter_ = 26 + integer, parameter :: mld_coarse_mat_ = 27 + integer, parameter :: mld_coarse_solve_ = 28 + integer, parameter :: mld_coarse_sweeps_ = 29 + integer, parameter :: mld_coarse_fillin_ = 30 + integer, parameter :: mld_coarse_subsolve_ = 31 integer, parameter :: mld_ifpsz_ = 32 ! @@ -333,13 +356,18 @@ module mld_prec_type integer, parameter :: mld_no_smooth_=0, mld_smooth_prol_=1, mld_biz_prol_=2 ! Disabling biz_prol for the time being. integer, parameter :: mld_max_aggr_kind_=mld_smooth_prol_ + ! + ! Legal values for entry: mld_aggr_filter_ + ! + integer, parameter :: mld_no_filter_mat_=0, mld_filter_mat_=1 + integer, parameter :: mld_max_filter_mat_=mld_no_filter_mat_ ! ! Legal values for entry: mld_aggr_alg_ ! integer, parameter :: mld_dec_aggr_=0, mld_sym_dec_aggr_=1 integer, parameter :: mld_glb_aggr_=2, mld_new_dec_aggr_=3 integer, parameter :: mld_new_glb_aggr_=4 - integer, parameter :: mld_max_aggr_alg_=mld_new_glb_aggr_ + integer, parameter :: mld_max_aggr_alg_=mld_dec_aggr_ ! ! Legal values for entry: mld_aggr_omega_alg_ @@ -384,8 +412,8 @@ module mld_prec_type & smooth_names(1:3)=(/'pre-smoothing ','post-smoothing ',& & 'pre/post-smoothing'/) character(len=15), parameter, private :: & - & aggr_kinds(0:2)=(/'no smoother ','omega smoother',& - & 'bizr. smoother'/) + & aggr_kinds(0:2)=(/'nonsmoothed ','smoothed ',& + & 'bizr. smoothed'/) character(len=15), parameter, private :: & & matrix_names(0:1)=(/'distributed ','replicated '/) character(len=18), parameter, private :: & @@ -514,9 +542,9 @@ contains val = mld_repl_mat_ case('DIST') val = mld_distr_mat_ - case('RAW') + case('NONSMOOTHED') val = mld_no_smooth_ - case('SMOOTH') + case('SMOOTHED') val = mld_smooth_prol_ case('PRE') val = mld_pre_smooth_ @@ -544,6 +572,10 @@ contains val = mld_user_choice_ case('EIG_EST') val = mld_eig_est_ + case('FILTER') + val = mld_filter_mat_ + case('NO_FILTER') + val = mld_no_filter_mat_ case default val = -1 info = -1 @@ -907,7 +939,7 @@ contains & smooth_names(iprcparm(mld_smoother_pos_)) write(iout,*) ' Aggregation: ', & & aggr_names(iprcparm(mld_aggr_alg_)) - write(iout,*) ' Aggregation smoothing: ', & + write(iout,*) ' Aggregation type: ', & & aggr_kinds(iprcparm(mld_aggr_kind_)) if (present(rprcparm)) then write(iout,*) ' Aggregation threshold: ', & @@ -1676,6 +1708,14 @@ contains is_legal_ml_coarse_mat = ((ip>=0).and.(ip<=mld_max_coarse_mat_)) return end function is_legal_ml_coarse_mat + function is_legal_aggr_filter(ip) + implicit none + integer, intent(in) :: ip + logical :: is_legal_aggr_filter + + is_legal_aggr_filter = ((ip>=0).and.(ip<=mld_max_filter_mat_)) + return + end function is_legal_aggr_filter function is_distr_ml_coarse_mat(ip) implicit none integer, intent(in) :: ip @@ -1811,6 +1851,20 @@ contains end if end subroutine mld_dcheck_def + ! + ! Subroutines: mld_Tbase_precfree, mld_T_onelev_precfree, mld_Tprec_free + ! Version: real/complex + ! + ! These routines deallocate the mld_Tbaseprec_type, mld_Tonelev_type and + ! mld_Tprec_type data structures. + ! + ! Arguments: + ! p - type(mld_Tbaseprec_type/mld_Tonelev_type/mld_Tprec_type), input. + ! The data structure to be deallocated. + ! info - integer, output. + ! error code. + ! + subroutine mld_sbase_precfree(p,info) implicit none diff --git a/mlprec/mld_saggrmap_bld.f90 b/mlprec/mld_saggrmap_bld.f90 index 1d9b2d25..ed7694f9 100644 --- a/mlprec/mld_saggrmap_bld.f90 +++ b/mlprec/mld_saggrmap_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -68,14 +68,14 @@ ! the fine-level matrix. ! desc_a - type(psb_desc_type), input. ! The communication descriptor of the fine-level matrix. -! nlaggr - integer, dimension(:), allocatable. -! nlaggr(i) contains the aggregates held by process i. ! ilaggr - integer, dimension(:), allocatable. ! The mapping between the row indices of the coarse-level ! matrix and the row indices of the fine-level matrix. ! ilaggr(i)=j means that node i in the adjacency graph ! of the fine-level matrix is mapped onto node j in the ! adjacency graph of the coarse-level matrix. +! nlaggr - integer, dimension(:), allocatable. +! nlaggr(i) contains the aggregates held by process i. ! info - integer, output. ! Error code. ! @@ -335,7 +335,7 @@ contains ! isz = nr+1 ia = -1 - cpling = 0.0 + cpling = szero call psb_sp_getrow(i,a,nz,irow,icol,val,info) if (info/=0) then info=4010 @@ -382,7 +382,7 @@ contains if (ia>naggr) then info=4001 - call psb_errpush(info,name,a_err='loc_Aggregate: n > naggr 4? ') + call psb_errpush(info,name,a_err='loc_Aggregate: n > naggr ? ') goto 9999 end if ils(ia) = ils(ia) + 1 diff --git a/mlprec/mld_saggrmat_asb.f90 b/mlprec/mld_saggrmat_asb.f90 index d5588df5..d73e3637 100644 --- a/mlprec/mld_saggrmat_asb.f90 +++ b/mlprec/mld_saggrmat_asb.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,7 +42,7 @@ ! Version: real ! ! This routine builds a coarse-level matrix A_C from a fine-level matrix A -! by using a Galerkin approach, i.e. +! by using the Galerkin approach, i.e. ! ! A_C = P_C^T A P_C, ! @@ -50,18 +50,18 @@ ! ! A mapping from the nodes of the adjacency graph of A to the nodes of the ! adjacency graph of A_C has been computed by the mld_aggrmap_bld subroutine. -! The prolongator P_C is built here from this mapping, according to the +! The prolongator P_C is built here from this mapping, according to the ! value of p%iprcparm(mld_aggr_kind_), specified by the user through ! mld_sprecinit and mld_sprecset. ! ! Currently three different prolongators are implemented, corresponding to ! three aggregation algorithms: -! 1. raw aggregation, +! 1. non-smoothed aggregation, ! 2. smoothed aggregation, ! 3. "bizarre" aggregation. -! 1. The raw aggregation uses as prolongator the piecewise constant interpolation -! operator corresponding to the fine-to-coarse level mapping built by -! mld_aggrmap_bld. This is called tentative prolongator. +! 1. The non-smoothed aggregation uses as prolongator the piecewise constant +! interpolation operator corresponding to the fine-to-coarse level mapping built +! by mld_aggrmap_bld. This is called tentative prolongator. ! 2. The smoothed aggregation uses as prolongator the operator obtained by applying ! a damped Jacobi smoother to the tentative prolongator. ! 3. The "bizarre" aggregation uses a prolongator proposed by the authors of MLD2P4. @@ -84,9 +84,17 @@ ! desc_a - type(psb_desc_type), input. ! The communication descriptor of the fine-level matrix. ! p - type(mld_sonelev_type), input/output. -! The one-level preconditioner data structure containing the local -! part of the base preconditioner to be built as well as the -! aggregate matrices. +! The 'one-level' data structure that will contain the local +! part of the matrix to be built as well as the information +! concerning the prolongator and its transpose. +! ilaggr - integer, dimension(:), allocatable. +! The mapping between the row indices of the coarse-level +! matrix and the row indices of the fine-level matrix. +! ilaggr(i)=j means that node i in the adjacency graph +! of the fine-level matrix is mapped onto node j in the +! adjacency graph of the coarse-level matrix. +! nlaggr - integer, dimension(:), allocatable. +! nlaggr(i) contains the aggregates held by process i. ! info - integer, output. ! Error code. ! diff --git a/mlprec/mld_saggrmat_nosmth_asb.F90 b/mlprec/mld_saggrmat_nosmth_asb.F90 index 4f84f3a9..ea0287b7 100644 --- a/mlprec/mld_saggrmat_nosmth_asb.F90 +++ b/mlprec/mld_saggrmat_nosmth_asb.F90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,7 +42,7 @@ ! Version: real ! ! This routine builds a coarse-level matrix A_C from a fine-level matrix A -! by using a Galerkin approach, i.e. +! by using the Galerkin approach, i.e. ! ! A_C = P_C^T A P_C, ! @@ -67,9 +67,17 @@ ! desc_a - type(psb_desc_type), input. ! The communication descriptor of the fine-level matrix. ! p - type(mld_sonelev_type), input/output. -! The one-level preconditioner data structure containing the local -! part of the base preconditioner to be built as well as the -! aggregate matrices. +! The 'one-level' data structure that will contain the local +! part of the matrix to be built as well as the information +! concerning the prolongator and its transpose. +! ilaggr - integer, dimension(:), allocatable. +! The mapping between the row indices of the coarse-level +! matrix and the row indices of the fine-level matrix. +! ilaggr(i)=j means that node i in the adjacency graph +! of the fine-level matrix is mapped onto node j in the +! adjacency graph of the coarse-level matrix. +! nlaggr - integer, dimension(:), allocatable. +! nlaggr(i) contains the aggregates held by process i. ! info - integer, output. ! Error code. ! diff --git a/mlprec/mld_saggrmat_smth_asb.F90 b/mlprec/mld_saggrmat_smth_asb.F90 index 1ed2fae5..390da85b 100644 --- a/mlprec/mld_saggrmat_smth_asb.F90 +++ b/mlprec/mld_saggrmat_smth_asb.F90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,7 +42,7 @@ ! Version: real ! ! This routine builds a coarse-level matrix A_C from a fine-level matrix A -! by using a Galerkin approach, i.e. +! by using the Galerkin approach, i.e. ! ! A_C = P_C^T A P_C, ! @@ -84,9 +84,17 @@ ! desc_a - type(psb_desc_type), input. ! The communication descriptor of the fine-level matrix. ! p - type(mld_sonelev_type), input/output. -! The one-level preconditioner data structure containing the local -! part of the base preconditioner to be built as well as the -! aggregate matrices. +! The 'one-level' data structure that will contain the local +! part of the matrix to be built as well as the information +! concerning the prolongator and its transpose. +! ilaggr - integer, dimension(:), allocatable. +! The mapping between the row indices of the coarse-level +! matrix and the row indices of the fine-level matrix. +! ilaggr(i)=j means that node i in the adjacency graph +! of the fine-level matrix is mapped onto node j in the +! adjacency graph of the coarse-level matrix. +! nlaggr - integer, dimension(:), allocatable. +! nlaggr(i) contains the aggregates held by process i. ! info - integer, output. ! Error code. ! @@ -119,7 +127,7 @@ subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) type(psb_sspmat_type) :: am1,am2, af type(psb_sspmat_type) :: am3,am4 real(psb_spk_), allocatable :: adiag(:) - logical :: ml_global_nmb + logical :: ml_global_nmb, filter_mat integer :: debug_level, debug_unit integer, parameter :: ncmax=16 real(psb_spk_) :: omega, anorm, tmp, dg, theta @@ -168,6 +176,8 @@ subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) & ( (p%iprcparm(mld_aggr_kind_) == mld_biz_prol_).and.& & (p%iprcparm(mld_coarse_mat_) == mld_repl_mat_)) ) + filter_mat = (p%iprcparm(mld_aggr_filter_) == mld_filter_mat_) + if (ml_global_nmb) then ilaggr(1:nrow) = ilaggr(1:nrow) + naggrm1 call psb_halo(ilaggr,desc_a,info) @@ -190,11 +200,11 @@ subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) goto 9999 end if - ! Get diagonal D + ! Get the diagonal D call psb_sp_getdiag(a,adiag,info) if (info == 0) & & call psb_halo(adiag,desc_a,info) - + if(info /= 0) then call psb_errpush(4010,name,a_err='sp_getdiag') goto 9999 @@ -243,45 +253,44 @@ subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) & write(debug_unit,*) me,' ',trim(name),& & ' Initial copies done.' + if (filter_mat) then + ! + ! Build the filtered matrix Af from A + ! + call psb_spcnv(a,af,info,afmt='csr',dupl=psb_dupl_add_) - !********************************+ - ! building the filtered matrix af from A - ! - ! - call psb_spcnv(a,af,info,afmt='csr',dupl=psb_dupl_add_) - - do i=1,nrow - tmp = szero - jd = -1 - do j=af%ia2(i),af%ia2(i+1)-1 - if (af%ia1(j) == i) jd = j - if (abs(af%aspk(j)) < theta*sqrt(abs(adiag(i)*adiag(af%ia1(j))))) then - tmp=tmp+af%aspk(j) - af%aspk(j)=szero - endif + do i=1,nrow + tmp = szero + jd = -1 + do j=af%ia2(i),af%ia2(i+1)-1 + if (af%ia1(j) == i) jd = j + if (abs(af%aspk(j)) < theta*sqrt(abs(adiag(i)*adiag(af%ia1(j))))) then + tmp=tmp+af%aspk(j) + af%aspk(j)=szero + endif + enddo + if (jd == -1) then + write(0,*) 'Wrong input: we need the diagonal!!!!', i + else + af%aspk(jd)=af%aspk(jd)-tmp + end if enddo - if (jd == -1) then - write(0,*) 'Wrong input: we need the diagonal!!!!' - else - af%aspk(jd)=af%aspk(jd)-tmp - end if - enddo - ! Ora eliminiamo i termini che sono stato azzerati - call psb_spcnv(af,info,afmt='coo') - k = 0 - do j=1,psb_sp_get_nnzeros(af) - if ((af%aspk(j) /= szero) .or. (af%ia1(j)==af%ia2(j))) then - k = k + 1 - af%aspk(k) = af%aspk(j) - af%ia1(k) = af%ia1(j) - af%ia2(k) = af%ia2(j) - end if - end do + ! Take out zeroed terms + call psb_spcnv(af,info,afmt='coo') + k = 0 + do j=1,psb_sp_get_nnzeros(af) + if ((af%aspk(j) /= szero) .or. (af%ia1(j)==af%ia2(j))) then + k = k + 1 + af%aspk(k) = af%aspk(j) + af%ia1(k) = af%ia1(j) + af%ia2(k) = af%ia2(j) + end if + end do !!$ write(debug_unit,*) me,' ',trim(name),' Non zeros from filtered matrix:',k,af%m,af%k - call psb_sp_setifld(k,psb_nnz_,af,info) - call psb_spcnv(af,info,afmt='csr') - + call psb_sp_setifld(k,psb_nnz_,af,info) + call psb_spcnv(af,info,afmt='csr') + end if do i=1,size(adiag) @@ -291,10 +300,13 @@ subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) adiag(i) = sone end if end do - call psb_sp_scal(af,adiag,info) + + if (filter_mat) call psb_sp_scal(af,adiag,info) + call psb_sp_scal(am3,adiag,info) if (info /= 0) goto 9999 - !******************************************* + + if (p%iprcparm(mld_aggr_omega_alg_) == mld_eig_est_) then if (p%iprcparm(mld_aggr_eig_) == mld_max_norm_) then @@ -302,7 +314,7 @@ subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) if (p%iprcparm(mld_aggr_kind_) == mld_biz_prol_) then ! - ! This only works with CSR. + ! This only works with CSR ! if (psb_toupper(am3%fida)=='CSR') then anorm = szero @@ -352,43 +364,88 @@ subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) goto 9999 end if - ! % - if (psb_toupper(af%fida)=='CSR') then - do i=1,af%m - do j=af%ia2(i),af%ia2(i+1)-1 - if (af%ia1(j) == i) then - af%aspk(j) = sone - omega*af%aspk(j) - else - af%aspk(j) = - omega*af%aspk(j) - end if + if (filter_mat) then + ! + ! Build the smoothed prolongator using the filtered matrix + ! + if (psb_toupper(af%fida)=='CSR') then + do i=1,af%m + do j=af%ia2(i),af%ia2(i+1)-1 + if (af%ia1(j) == i) then + af%aspk(j) = sone - omega*af%aspk(j) + else + af%aspk(j) = - omega*af%aspk(j) + end if + end do end do - end do - else - call psb_errpush(4001,name,a_err='Invalid AF storage format') - goto 9999 - end if + else + call psb_errpush(4001,name,a_err='Invalid AF storage format') + goto 9999 + end if - if (debug_level >= psb_debug_outer_) & - & write(debug_unit,*) me,' ',trim(name),& - & 'Done gather, going for SYMBMM 1' - ! - ! Symbmm90 does the allocation for its result. - ! - ! am1 = (i-wDA)Ptilde - ! Doing it this way means to consider diag(Ai) - ! - ! - call psb_symbmm(af,am4,am1,info) - if(info /= 0) then - call psb_errpush(4010,name,a_err='symbmm 1') - goto 9999 - end if + if (debug_level >= psb_debug_outer_) & + & write(debug_unit,*) me,' ',trim(name),& + & 'Done gather, going for SYMBMM 1' + ! + ! Symbmm90 does the allocation for its result. + ! + ! am1 = (I-w*D*Af)Ptilde + ! Doing it this way means to consider diag(Af_i) + ! + ! + call psb_symbmm(af,am4,am1,info) + if(info /= 0) then + call psb_errpush(4010,name,a_err='symbmm 1') + goto 9999 + end if - call psb_numbmm(af,am4,am1) + call psb_numbmm(af,am4,am1) - if (debug_level >= psb_debug_outer_) & - & write(debug_unit,*) me,' ',trim(name),& - & 'Done NUMBMM 1' + if (debug_level >= psb_debug_outer_) & + & write(debug_unit,*) me,' ',trim(name),& + & 'Done NUMBMM 1' + else + ! + ! Build the smoothed prolongator using the original matrix + ! + if (psb_toupper(am3%fida)=='CSR') then + do i=1,am3%m + do j=am3%ia2(i),am3%ia2(i+1)-1 + if (am3%ia1(j) == i) then + am3%aspk(j) = sone - omega*am3%aspk(j) + else + am3%aspk(j) = - omega*am3%aspk(j) + end if + end do + end do + else + call psb_errpush(4001,name,a_err='Invalid AM3 storage format') + goto 9999 + end if + + if (debug_level >= psb_debug_outer_) & + & write(debug_unit,*) me,' ',trim(name),& + & 'Done gather, going for SYMBMM 1' + ! + ! Symbmm90 does the allocation for its result. + ! + ! am1 = (I-w*D*A)Ptilde + ! Doing it this way means to consider diag(A_i) + ! + ! + call psb_symbmm(am3,am4,am1,info) + if(info /= 0) then + call psb_errpush(4010,name,a_err='symbmm 1') + goto 9999 + end if + + call psb_numbmm(am3,am4,am1) + + if (debug_level >= psb_debug_outer_) & + & write(debug_unit,*) me,' ',trim(name),& + & 'Done NUMBMM 1' + + end if call psb_sp_free(am4,info) if(info /= 0) then diff --git a/mlprec/mld_sas_aply.f90 b/mlprec/mld_sas_aply.f90 index 918c14fa..a7a8cc00 100644 --- a/mlprec/mld_sas_aply.f90 +++ b/mlprec/mld_sas_aply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_sas_bld.f90 b/mlprec/mld_sas_bld.f90 index f99fd9b3..25550824 100644 --- a/mlprec/mld_sas_bld.f90 +++ b/mlprec/mld_sas_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_sbaseprec_aply.f90 b/mlprec/mld_sbaseprec_aply.f90 index 769b3fba..ce10ec6c 100644 --- a/mlprec/mld_sbaseprec_aply.f90 +++ b/mlprec/mld_sbaseprec_aply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -159,7 +159,7 @@ subroutine mld_sbaseprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) case(mld_bjac_,mld_as_) ! - ! Additive Schwarz preconditioner + ! Additive Schwarz preconditioner (including block-Jacobi as special case) ! call mld_as_aply(alpha,prec,x,beta,y,desc_data,trans_,work,info) if(info /= 0) then diff --git a/mlprec/mld_sbaseprec_bld.f90 b/mlprec/mld_sbaseprec_bld.f90 index a053bc49..060d0dcd 100644 --- a/mlprec/mld_sbaseprec_bld.f90 +++ b/mlprec/mld_sbaseprec_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -46,7 +46,7 @@ ! base preconditioner at each level. ! ! Details on the base preconditioner to be built are stored in the iprcparm -! field of the preconditioner data structure (for a description of this +! field of the base preconditioner data structure (for a description of this ! data structure see mld_prec_type.f90). ! ! diff --git a/mlprec/mld_scoarse_bld.f90 b/mlprec/mld_scoarse_bld.f90 index a30cde2e..22fb7b45 100644 --- a/mlprec/mld_scoarse_bld.f90 +++ b/mlprec/mld_scoarse_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -41,11 +41,15 @@ ! Subroutine: mld_scoarse_bld ! Version: real ! -! This routine builds the preconditioner corresponding to the current -! level of the multilevel preconditioner. The routine first builds the -! (coarse) matrix associated to the current level from the (fine) matrix -! associated to the previous level, then builds the related base preconditioner. -! Note that this routine is only ever called on levels >= 2. +! This routine builds the matrix associated to the current level of the +! multilevel preconditioner from the matrix associated to the previous level, +! by using a smoothed aggregation technique (therefore, it also builds the +! prolongation and restriction operators mapping the current level to the +! previous one and vice versa). Then the routine builds the base preconditioner +! at the current level. +! The current level is regarded as the coarse one, while the previous as +! the fine one. This is in agreement with the fact that the routine is called, +! by mld_mlprec_bld, only on levels >=2. ! ! ! Arguments: @@ -55,8 +59,9 @@ ! desc_a - type(psb_desc_type), input. ! The communication descriptor of a. ! p - type(mld_sonelev_type), input/output. -! The preconditioner data structure containing the local -! part of the one-level preconditioner to be built. +! The 'one-level' data structure containing the local part +! of the base preconditioner to be built as well as +! information concerning the prolongator and its transpose. ! info - integer, output. ! Error code. ! @@ -100,6 +105,8 @@ subroutine mld_scoarse_bld(a,desc_a,p,info) & mld_smooth_prol_,is_legal_ml_aggr_kind) call mld_check_def(p%iprcparm(mld_coarse_mat_),'Coarse matrix',& & mld_distr_mat_,is_legal_ml_coarse_mat) + call mld_check_def(p%iprcparm(mld_aggr_filter_),'Use filtered matrix',& + & mld_no_filter_mat_,is_legal_aggr_filter) call mld_check_def(p%iprcparm(mld_smoother_pos_),'smooth_pos',& & mld_pre_smooth_,is_legal_ml_smooth_pos) call mld_check_def(p%iprcparm(mld_aggr_omega_alg_),'Omega Alg.',& @@ -124,7 +131,7 @@ subroutine mld_scoarse_bld(a,desc_a,p,info) end if ! - ! Build the coarse-level matrix from the fine level one, starting from + ! Build the coarse-level matrix from the fine-level one, starting from ! the mapping defined by mld_aggrmap_bld and applying the aggregation ! algorithm specified by p%iprcparm(mld_aggr_kind_) ! diff --git a/mlprec/mld_sdiag_bld.f90 b/mlprec/mld_sdiag_bld.f90 index 59117598..e9f068a2 100644 --- a/mlprec/mld_sdiag_bld.f90 +++ b/mlprec/mld_sdiag_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_sfact_bld.f90 b/mlprec/mld_sfact_bld.f90 index c5063a41..5b38cbdc 100644 --- a/mlprec/mld_sfact_bld.f90 +++ b/mlprec/mld_sfact_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -41,10 +41,10 @@ ! Subroutine: mld_sfact_bld ! Version: real ! -! This routine computes an LU or incomplete LU (ILU) factorization of the diagonal -! blocks of a distributed matrix, according to the value of -! p%iprcparm(iprcparm(sub_solve_), set by the user through -! mld_sprecinit or mld_sprecset. +! This routine computes an LU or incomplete LU (ILU) factorization of the +! diagonal blocks of a distributed matrix, according to the value of +! p%iprcparm(iprcparm(sub_solve_), set by the user through mld_sprecinit +! or mld_sprecset. ! It may also compute an LU factorization of a distributed matrix, or split ! a distributed matrix into its block-diagonal and off block-diagonal parts, ! for the future application of multiple block-Jacobi sweeps. @@ -60,8 +60,8 @@ ! More precisely, the routine performs one of the following tasks: ! ! 1. LU or ILU factorization of the diagonal blocks of the distributed matrix -! for the construction of a block-Jacobi or AS preconditioners -! (allowed at any level of a multilevel preconditioner); +! for the construction of block-Jacobi or AS preconditioners (allowed at +! any level of a multilevel preconditioner); ! ! 2. setup of block-Jacobi sweeps to compute an approximate solution of a ! linear system diff --git a/mlprec/mld_silu0_fact.f90 b/mlprec/mld_silu0_fact.f90 index 593bbc7b..05a423a5 100644 --- a/mlprec/mld_silu0_fact.f90 +++ b/mlprec/mld_silu0_fact.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,11 +42,11 @@ ! Version: real ! Contains: mld_silu0_factint, ilu_copyin ! -! This routine computes either the ILU(0) or the MILU(0) factorization of the -! diagonal blocks of a distributed matrix. These factorizations -! are used to build the 'base preconditioner' (block-Jacobi preconditioner/solver, -! Additive Schwarz preconditioner) corresponding to a given level of a multilevel -! preconditioner. +! This routine computes either the ILU(0) or the MILU(0) factorization of +! the diagonal blocks of a distributed matrix. These factorizations are used +! to build the 'base preconditioner' (block-Jacobi preconditioner/solver, +! Additive Schwarz preconditioner) corresponding to a given level of a +! multilevel preconditioner. ! ! Details on the above factorizations can be found in ! Y. Saad, Iterative Methods for Sparse Linear Systems, Second Edition, diff --git a/mlprec/mld_silu_bld.f90 b/mlprec/mld_silu_bld.f90 index 58758ab4..27f51891 100644 --- a/mlprec/mld_silu_bld.f90 +++ b/mlprec/mld_silu_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_siluk_fact.f90 b/mlprec/mld_siluk_fact.f90 index 29e138e7..17c2a4ab 100644 --- a/mlprec/mld_siluk_fact.f90 +++ b/mlprec/mld_siluk_fact.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -43,10 +43,10 @@ ! Contains: mld_siluk_factint, iluk_copyin, iluk_fact, iluk_copyout. ! ! This routine computes either the ILU(k) or the MILU(k) factorization of the -! diagonal blocks of a distributed matrix. These factorizations are used to build -! the 'base preconditioner' (block-Jacobi preconditioner/solver, -! Additive Schwarz preconditioner) corresponding to a certain level of a multilevel -! preconditioner. +! diagonal blocks of a distributed matrix. These factorizations are used to +! build the 'base preconditioner' (block-Jacobi preconditioner/solver, +! Additive Schwarz preconditioner) corresponding to a certain level of a +! multilevel preconditioner. ! ! Details on the above factorizations can be found in ! Y. Saad, Iterative Methods for Sparse Linear Systems, Second Edition, diff --git a/mlprec/mld_silut_fact.f90 b/mlprec/mld_silut_fact.f90 index 511c05a1..96b6a60f 100644 --- a/mlprec/mld_silut_fact.f90 +++ b/mlprec/mld_silut_fact.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,8 +42,8 @@ ! Version: real ! Contains: mld_silut_factint, ilut_copyin, ilut_fact, ilut_copyout ! -! This routine computes the ILU(k,t) factorization of the diagonal blocks of a -! distributed matrix. This factorization is used to build the 'base +! This routine computes the ILU(k,t) factorization of the diagonal blocks +! of a distributed matrix. This factorization is used to build the 'base ! preconditioner' (block-Jacobi preconditioner/solver, Additive Schwarz ! preconditioner) corresponding to a certain level of a multilevel preconditioner. ! @@ -51,11 +51,11 @@ ! Y. Saad, Iterative Methods for Sparse Linear Systems, Second Edition, ! SIAM, 2003, Chapter 10. ! -! The local matrix is stored into a and blck, as specified in -! the description of the arguments below. The storage format for both the L and -! U factors is CSR. The diagonal of the U factor is stored separately (actually, -! the inverse of the diagonal entries is stored; this is then managed in the solve -! stage associated to the ILU(k,t) factorization). +! The local matrix is stored into a and blck, as specified in the description +! of the arguments below. The storage format for both the L and U factors is +! CSR. The diagonal of the U factor is stored separately (actually, the +! inverse of the diagonal entries is stored; this is then managed in the +! solve stage associated to the ILU(k,t) factorization). ! ! ! Arguments: diff --git a/mlprec/mld_smlprec_aply.f90 b/mlprec/mld_smlprec_aply.f90 index 78db23d1..45221b68 100644 --- a/mlprec/mld_smlprec_aply.f90 +++ b/mlprec/mld_smlprec_aply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -46,7 +46,7 @@ ! Y = beta*Y + alpha*op(M^(-1))*X, ! where ! - M is a multilevel domain decomposition (Schwarz) preconditioner associated -! to a certain matrix A and stored in the array p%precv, +! to a certain matrix A and stored in p, ! - op(M^(-1)) is M^(-1) or its transpose, according to the value of trans, ! - X and Y are vectors, ! - alpha and beta are scalars. @@ -55,9 +55,10 @@ ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! -! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', -! each representing the part of the preconditioner associated to a certain level. -! For each level ilev, the preconditioner K(ilev) is stored in p%precv(ilev) +! A multilevel preconditioner is regarded as an array of 'one-level' data structures, +! each containing the part of the preconditioner associated to a certain level +! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). +! For each level ilev, the 'base preconditioner' K(ilev) is stored in p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -79,42 +80,40 @@ ! alpha - real(psb_spk_), input. ! The scalar alpha. ! p - type(mld_sprec_type), input. -! The array of one-level preconditioner data structures containing the -! local parts of the preconditioners to be applied at each level. +! The multilevel preconditioner data structure containing the +! local part of the preconditioner to be applied. ! Note that nlev = size(p%precv) = number of levels. ! p%precv(ilev)%prec - type(psb_sbaseprec_type) -! The "base" preconditioner for the current level +! The 'base preconditioner' for the current level ! p%precv(ilev)%ac - type(psb_sspmat_type) ! The local part of the matrix A(ilev). ! p%precv(ilev)%desc_ac - type(psb_desc_type). -! The communication descriptor associated to the sparse -! matrix A(ilev) -! p%precv(ilev)%map - type(psb_inter_desc_type) -! Stores the linear operators mapping between levels -! (ilev-1) and (ilev). These are the restriction and -! prolongation operators described in the sequel. +! The communication descriptor associated to the sparse +! matrix A(ilev) +! p%precv(ilev)%map - type(psb_inter_desc_type) +! Stores the linear operators mapping level (ilev-1) +! to (ilev) and vice versa. These are the restriction +! and prolongation operators described in the sequel. ! p%precv(ilev)%iprcparm - integer, dimension(:), allocatable. -! The integer parameters defining the multilevel -! strategy +! The integer parameters defining the multilevel +! strategy ! p%precv(ilev)%rprcparm - real(psb_spk_), dimension(:), allocatable. -! The real parameters defining the multilevel strategy +! The real parameters defining the multilevel strategy ! p%precv(ilev)%mlia - integer, dimension(:), allocatable. -! The aggregation map (ilev-1) --> (ilev). -! In case of non-smoothed aggregation, it is used -! instead of mld_sm_pr_. +! The aggregation map (ilev-1) --> (ilev). ! p%precv(ilev)%nlaggr - integer, dimension(:), allocatable. -! The number of aggregates (rows of A(ilev)) on the -! various processes. +! The number of aggregates (rows of A(ilev)) on the +! various processes. ! p%precv(ilev)%base_a - type(psb_sspmat_type), pointer. -! Pointer (really a pointer!) to the base matrix of -! the current level, i.e. the local part of A(ilev); -! so we have a unified treatment of residuals. We -! need this to avoid passing explicitly the matrix -! A(ilev) to the routine which applies the -! preconditioner. +! Pointer (really a pointer!) to the base matrix of +! the current level, i.e. the local part of A(ilev); +! so we have a unified treatment of residuals. We +! need this to avoid passing explicitly the matrix +! A(ilev) to the routine which applies the +! preconditioner. ! p%precv(ilev)%base_desc - type(psb_desc_type), pointer. -! Pointer to the communication descriptor associated -! to the sparse matrix pointed by base_a. +! Pointer to the communication descriptor associated +! to the sparse matrix pointed by base_a. ! ! x - real(psb_spk_), dimension(:), input. ! The local part of the vector X. @@ -272,7 +271,7 @@ contains ! Y = beta*Y + alpha*op(M^(-1))*X, ! where ! - M is an additive multilevel domain decomposition (Schwarz) preconditioner - ! associated to a certain matrix A and stored in the array p%precv, + ! associated to a certain matrix A and stored in p, ! - op(M^(-1)) is M^(-1) or its transpose, according to the value of trans, ! - X and Y are vectors, ! - alpha and beta are scalars. @@ -284,9 +283,11 @@ contains ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! - ! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', - ! each representing the part of the preconditioner associated to a certain level. - ! For each level ilev, the base preconditioner K(ilev) is stored in p%precv(ilev) + ! The multilevel preconditioner is regarded as an array of 'one-level' data structures, + ! each containing the part of the preconditioner associated to a certain level + ! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). + ! For each level ilev, the 'base preconditioner' K(ilev) is stored in + ! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -302,10 +303,10 @@ contains ! ! For a description of the arguments see mld_smlprec_aply. ! - ! A sketch of the algorithm implemented in this routine is provided below - ! (AV(ilev; sm_pr_) denotes the smoothed prolongator from level ilev to - ! level ilev-1, while AV(ilev; sm_pr_t_) denotes its transpose, i.e. the - ! corresponding restriction operator from level ilev-1 to level ilev). + ! A sketch of the algorithm implemented in this routine is provided below. + ! (P(ilev) denotes the smoothed prolongator from level ilev to level + ! ilev-1, while PT(ilev) denotes its transpose, i.e. the corresponding + ! restriction operator from level ilev-1 to level ilev). ! ! 1. ! Apply the base preconditioner at level 1. ! ! The sum over the subdomains is carried out in the @@ -316,7 +317,7 @@ contains ! 2. DO ilev=2,nlev ! ! ! Transfer X(ilev-1) to the next coarser level. - ! X(ilev) = AV(ilev; sm_pr_t_)*X(ilev-1) + ! X(ilev) = PT(ilev)*X(ilev-1) ! ! ! Apply the base preconditioner at the current level. ! ! The sum over the subdomains is carried out in the @@ -328,7 +329,7 @@ contains ! 3. DO ilev=nlev-1,1,-1 ! ! ! Transfer Y(ilev+1) to the next finer level. - ! Y(ilev) = AV(ilev+1; sm_pr_)*Y(ilev+1) + ! Y(ilev) = P(ilev+1)*Y(ilev+1) ! ! ENDDO ! @@ -418,7 +419,7 @@ contains goto 9999 end if - ! Apply prolongator transpose, i.e. restriction + ! Apply the prolongator transpose, i.e. the restriction call psb_map_X2Y(sone,mlprec_wrk(ilev-1)%x2l,& & szero,mlprec_wrk(ilev)%x2l,& & p%precv(ilev)%map,info,work=work) @@ -448,7 +449,7 @@ contains nr2l = psb_cd_get_local_rows(p%precv(ilev)%base_desc) ! - ! Apply prolongator + ! Apply the prolongator ! call psb_map_Y2X(sone,mlprec_wrk(ilev)%y2l,& & sone,mlprec_wrk(ilev-1)%y2l,& @@ -511,9 +512,11 @@ contains ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! - ! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', - ! each representing the part of the preconditioner associated to a certain level. - ! For each level ilev, the base preconditioner K(ilev) is stored in p%precv(ilev) + ! The multilevel preconditioner is regarded as an array of 'one-level' data structures, + ! each containing the part of the preconditioner associated to a certain level + ! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). + ! For each level ilev, the 'base preconditioner' K(ilev) is stored in + ! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -529,10 +532,10 @@ contains ! ! For a description of the arguments see mld_smlprec_aply. ! - ! A sketch of the algorithm implemented in this routine is provided below - ! (AV(ilev; sm_pr_) denotes the smoothed prolongator from level ilev to - ! level ilev-1, while AV(ilev; sm_pr_t_) denotes its transpose, i.e. the - ! corresponding restriction operator from level ilev-1 to level ilev). + ! A sketch of the algorithm implemented in this routine is provided below. + ! (P(ilev) denotes the smoothed prolongator from level ilev to level + ! ilev-1, while PT(ilev) denotes its transpose, i.e. the corresponding + ! restriction operator from level ilev-1 to level ilev). ! ! 1. X(1) = Xext ! @@ -545,7 +548,7 @@ contains ! 4. DO ilev=2, nlev ! ! ! Transfer the residual to the current (coarser) level. - ! X(ilev) = AV(ilev; sm_pr_t_)*TX(ilev-1) + ! X(ilev) = PT(ilev)*TX(ilev-1) ! ! ! Apply the base preconditioner at the current level. ! ! The sum over the subdomains is carried out in the @@ -562,7 +565,7 @@ contains ! 5. DO ilev=nlev-1,1,-1 ! ! ! Transfer Y(ilev+1) to the next finer level - ! Y(ilev) = Y(ilev) + AV(ilev+1; sm_pr_)*Y(ilev+1) + ! Y(ilev) = Y(ilev) + P(ilev+1)*Y(ilev+1) ! ! ENDDO ! @@ -678,7 +681,7 @@ contains goto 9999 end if - ! Apply prolongator transpose, i.e. restriction + ! Apply the prolongator transpose, i.e. the restriction call psb_map_X2Y(sone,mlprec_wrk(ilev-1)%tx,& & szero,mlprec_wrk(ilev)%x2l,& & p%precv(ilev)%map,info,work=work) @@ -716,7 +719,7 @@ contains ! do ilev = nlev-1, 1, -1 ! - ! Apply prolongator + ! Apply the prolongator ! call psb_map_Y2X(sone,mlprec_wrk(ilev+1)%y2l,& & sone,mlprec_wrk(ilev)%y2l,& @@ -779,9 +782,11 @@ contains ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! - ! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', - ! each representing the part of the preconditioner associated to a certain level. - ! For each level ilev, the base preconditioner K(ilev) is stored in p%precv(ilev) + ! The multilevel preconditioner is regarded as an array of 'one-level' data structures, + ! each containing the part of the preconditioner associated to a certain level + ! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). + ! For each level ilev, the 'base preconditioner' K(ilev) is stored in + ! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -797,16 +802,16 @@ contains ! For a description of the arguments see mld_smlprec_aply. ! ! A sketch of the algorithm implemented in this routine is provided below. - ! (AV(ilev; sm_pr_) denotes the smoothed prolongator from level ilev to - ! level ilev-1, while AV(ilev; sm_pr_t_) denotes its transpose, i.e. the - ! corresponding restriction operator from level ilev-1 to level ilev). + ! (P(ilev) denotes the smoothed prolongator from level ilev to level + ! ilev-1, while PT(ilev) denotes its transpose, i.e. the corresponding + ! restriction operator from level ilev-1 to level ilev). ! ! 1. X(1) = Xext ! ! 2. DO ilev=2, nlev ! ! ! Transfer X(ilev-1) to the next coarser level. - ! X(ilev) = AV(ilev; sm_pr_t_)*X(ilev-1) + ! X(ilev) = PT(ilev)*X(ilev-1) ! ! ENDDO ! @@ -816,7 +821,7 @@ contains ! 4. DO ilev=nlev-1,1,-1 ! ! ! Transfer Y(ilev+1) to the next finer level. - ! Y(ilev) = AV(ilev+1; sm_pr_)*Y(ilev+1) + ! Y(ilev) = P(ilev+1)*Y(ilev+1) ! ! ! Compute the residual at the current level and apply to it the ! ! base preconditioner. The sum over the subdomains is carried out @@ -923,7 +928,7 @@ contains goto 9999 end if - ! Apply prolongator transpose, i.e. restriction + ! Apply the prolongator transpose, i.e. the restriction call psb_map_X2Y(sone,mlprec_wrk(ilev-1)%x2l,& & szero,mlprec_wrk(ilev)%x2l,& & p%precv(ilev)%map,info,work=work) @@ -976,7 +981,7 @@ contains & ' starting down sweep',ilev ! - ! Apply prolongator + ! Apply the prolongator ! call psb_map_Y2X(sone,mlprec_wrk(ilev+1)%y2l,& & szero,mlprec_wrk(ilev)%y2l,& @@ -1065,9 +1070,11 @@ contains ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! - ! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', - ! each representing the part of the preconditioner associated to a certain level. - ! For each level ilev, the base preconditioner K(ilev) is stored in p%precv(ilev) + ! The multilevel preconditioner is regarded as an array of 'one-level' data structures, + ! each containing the part of the preconditioner associated to a certain level + ! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). + ! For each level ilev, the 'base preconditioner' K(ilev) is stored in + ! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -1084,9 +1091,9 @@ contains ! For a description of the arguments see mld_smlprec_aply. ! ! A sketch of the algorithm implemented in this routine is provided below. - ! (AV(ilev; sm_pr_) denotes the smoothed prolongator from level ilev to - ! level ilev-1, while AV(ilev; sm_pr_t_) denotes its transpose, i.e. the - ! corresponding restriction operator from level ilev-1 to level ilev). + ! (P(ilev) denotes the smoothed prolongator from level ilev to level + ! ilev-1, while PT(ilev) denotes its transpose, i.e. the corresponding + ! restriction operator from level ilev-1 to level ilev). ! ! 1. X(1) = Xext ! @@ -1099,7 +1106,7 @@ contains ! 4. DO ilev=2, nlev ! ! ! Transfer the residual to the current (coarser) level - ! X(ilev) = AV(ilev; sm_pr_t)*TX(ilev-1) + ! X(ilev) = PT(ilev)*TX(ilev-1) ! ! ! Apply the base preconditioner at the current level. ! ! The sum over the subdomains is carried out in the @@ -1107,14 +1114,17 @@ contains ! Y(ilev) = (K(ilev)^(-1))*X(ilev) ! ! ! Compute the residual at the current level - ! TX(ilev) = (X(ilev)-A(ilev)*Y(ilev)) + ! ! (except for ilev=nlev) + ! if(ilev < nlev)then + ! TX(ilev) = (X(ilev)-A(ilev)*Y(ilev)) + ! endif ! ! ENDDO ! ! 5. DO ilev=NLEV-1,1,-1 ! ! ! Transfer Y(ilev+1) to the next finer level - ! Y(ilev) = Y(ilev) + AV(ilev+1; sm_pr_)*Y(ilev+1) + ! Y(ilev) = Y(ilev) + P(ilev+1)*Y(ilev+1) ! ! ! Compute the residual at the current level and apply to it the ! ! base preconditioner. The sum over the subdomains is carried out @@ -1233,7 +1243,7 @@ contains goto 9999 end if - ! Apply prolongator transpose, i.e. restriction + ! Apply the prolongator transpose, i.e. the restriction call psb_map_X2Y(sone,mlprec_wrk(ilev-1)%ty,& & szero,mlprec_wrk(ilev)%x2l,& & p%precv(ilev)%map,info,work=work) @@ -1275,7 +1285,7 @@ contains do ilev=nlev-1, 1, -1 ! - ! Apply prolongator + ! Apply the prolongator ! call psb_map_Y2X(sone,mlprec_wrk(ilev+1)%y2l,& & sone,mlprec_wrk(ilev)%y2l,& diff --git a/mlprec/mld_smlprec_bld.f90 b/mlprec/mld_smlprec_bld.f90 index 0e5a965c..7cdc4ae2 100644 --- a/mlprec/mld_smlprec_bld.f90 +++ b/mlprec/mld_smlprec_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -45,10 +45,11 @@ ! This routine builds the preconditioner according to the requirements made by ! the user trough the subroutines mld_precinit and mld_precset. ! -! A multilevel preconditioner is regarded as an array of 'base preconditioners', -! each representing the part of the preconditioner associated to a certain level. -! The levels are numbered in increasing order starting from the finest one, i.e. -! level 1 is the finest level. +! A multilevel preconditioner is regarded as an array of 'one-level' data structures, +! each containing the part of the preconditioner associated to a certain level, +! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). +! The levels are numbered in increasing order starting from the finest one, i.e. +! level 1 is the finest level. No transfer operators are associated to level 1. ! ! ! Arguments: @@ -150,8 +151,8 @@ subroutine mld_smlprec_bld(a,desc_a,p,info) if (iszv > 1) then ! - ! Build the base preconditioners corresponding to the remaining - ! levels + ! Build the matrix and the transfer operators corresponding + ! to the remaining levels ! ! ! Check on the iprcparm contents: they should be the same @@ -210,7 +211,8 @@ subroutine mld_smlprec_bld(a,desc_a,p,info) & write(debug_unit,*) me,' ',trim(name),& & 'Calling mlprcbld at level ',i ! - ! Build the mapping between levels (i-1) and (i) + ! Build the mapping between levels i-1 and i and the matrix + ! at level i ! call init_baseprec_av(p%precv(i)%prec,info) if (info == 0) call mld_coarse_bld(p%precv(i-1)%base_a,& @@ -287,7 +289,9 @@ subroutine mld_smlprec_bld(a,desc_a,p,info) end if do i=1, iszv - + ! + ! build the base preconditioner at level i + ! if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Calling mlprcbld at level ',i @@ -383,4 +387,3 @@ contains end subroutine check_coarse_lev end subroutine mld_smlprec_bld - diff --git a/mlprec/mld_sprecaply.f90 b/mlprec/mld_sprecaply.f90 index 4877ad84..ce9000f6 100644 --- a/mlprec/mld_sprecaply.f90 +++ b/mlprec/mld_sprecaply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -56,9 +56,9 @@ ! The preconditioner data structure containing the local part ! of the preconditioner to be applied. ! x - real(psb_spk_), dimension(:), input. -! The local part of the vector X in Y := op(M^(-1)) * X. +! The local part of the vector X in Y = op(M^(-1)) * X. ! y - real(psb_spk_), dimension(:), output. -! The local part of the vector Y in Y := op(M^(-1)) * X. +! The local part of the vector Y in Y = op(M^(-1)) * X. ! desc_data - type(psb_desc_type), input. ! The communication descriptor associated to the matrix to be ! preconditioned. @@ -126,14 +126,20 @@ subroutine mld_sprecaply(prec,x,y,desc_data,info,trans,work) call psb_errpush(info,name) goto 9999 end if - if (size(prec%precv) >1) then + if (size(prec%precv) >1) then + ! + ! Number of levels > 1: apply the multilevel preconditioner + ! call mld_mlprec_aply(sone,prec,x,szero,y,desc_data,trans_,work_,info) if(info /= 0) then call psb_errpush(4010,name,a_err='mld_smlprec_aply') goto 9999 end if - else if (size(prec%precv) == 1) then + else if (size(prec%precv) == 1) then + ! + ! Number of levels = 1: apply the base preconditioner + ! call mld_baseprec_aply(sone,prec%precv(1)%prec,x,szero,y,desc_data,trans_, work_,info) else info = 4013 diff --git a/mlprec/mld_sprecbld.f90 b/mlprec/mld_sprecbld.f90 index 4f858ce7..78624a53 100644 --- a/mlprec/mld_sprecbld.f90 +++ b/mlprec/mld_sprecbld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -43,12 +43,7 @@ ! Contains: subroutine init_baseprec_av ! ! This routine builds the preconditioner according to the requirements made by -! the user trough the subroutines mld_precinit and mld_precset. -! -! A multilevel preconditioner is regarded as an array of 'base preconditioners', -! each representing the part of the preconditioner associated to a certain level. -! The levels are numbered in increasing order starting from the finest one, i.e. -! level 1 is the finest level. +! the user through the subroutines mld_precinit and mld_precset. ! ! ! Arguments: @@ -147,6 +142,9 @@ subroutine mld_sprecbld(a,desc_a,p,info) goto 9999 end if + ! + ! Number of levels = 1 + ! if (iszv == 1) then ! ! Check on the iprcparm contents: they should be the same @@ -160,7 +158,7 @@ subroutine mld_sprecbld(a,desc_a,p,info) p%precv(1)%iprcparm(:) = ipv(:) end if ! - ! Finest level first; remember to fix base_a and base_desc + ! Remember to fix base_a and base_desc ! call init_baseprec_av(p%precv(1)%prec,info) p%precv(1)%base_a => a @@ -170,6 +168,9 @@ subroutine mld_sprecbld(a,desc_a,p,info) call psb_errpush(4001,name,a_err='Base level precbuild.') goto 9999 end if + ! + ! Build the base preconditioner + ! select case(p%precv(1)%prec%iprcparm(mld_sub_solve_)) case(mld_ilu_n_,mld_milu_n_) call mld_check_def(p%precv(1)%prec%iprcparm(mld_sub_fillin_),& @@ -189,8 +190,13 @@ subroutine mld_sprecbld(a,desc_a,p,info) goto 9999 endif - else if (iszv > 1) then - + ! + ! Number of levels > 1 + ! + else if (iszv > 1) then + ! + ! Build the multilevel preconditioner + ! call mld_mlprec_bld(a,desc_a,p,info) if (info /= 0) then diff --git a/mlprec/mld_sprecinit.F90 b/mlprec/mld_sprecinit.F90 index fa81e99d..d5785cae 100644 --- a/mlprec/mld_sprecinit.F90 +++ b/mlprec/mld_sprecinit.F90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -252,6 +252,7 @@ subroutine mld_sprecinit(p,ptype,info,nlev) p%precv(ilev_)%iprcparm(mld_smoother_pos_) = mld_post_smooth_ p%precv(ilev_)%iprcparm(mld_aggr_omega_alg_) = mld_eig_est_ p%precv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_ + p%precv(ilev_)%iprcparm(mld_aggr_filter_) = mld_no_filter_mat_ p%precv(ilev_)%rprcparm(mld_aggr_omega_val_) = szero p%precv(ilev_)%rprcparm(mld_aggr_thresh_) = szero end do @@ -285,6 +286,7 @@ subroutine mld_sprecinit(p,ptype,info,nlev) p%precv(ilev_)%iprcparm(mld_smoother_pos_) = mld_post_smooth_ p%precv(ilev_)%iprcparm(mld_aggr_omega_alg_) = mld_eig_est_ p%precv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_ + p%precv(ilev_)%iprcparm(mld_aggr_filter_) = mld_no_filter_mat_ p%precv(ilev_)%rprcparm(mld_aggr_omega_val_) = szero p%precv(ilev_)%rprcparm(mld_aggr_thresh_) = szero diff --git a/mlprec/mld_sprecset.f90 b/mlprec/mld_sprecset.f90 index f5190d95..4e389964 100644 --- a/mlprec/mld_sprecset.f90 +++ b/mlprec/mld_sprecset.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -57,10 +57,10 @@ ! what - integer, input. ! The number identifying the parameter to be set. ! A mnemonic constant has been associated to each of these -! numbers, as reported in MLD2P4 user's guide. +! numbers, as reported in the MLD2P4 User's and Reference Guide. ! val - integer, input. ! The value of the parameter to be set. The list of allowed -! values is reported in MLD2P4 user's guide. +! values is reported in the MLD2P4 User's and Reference Guide. ! info - integer, output. ! Error code. ! ilev - integer, optional, input. @@ -90,7 +90,7 @@ subroutine mld_sprecseti(p,what,val,info,ilev) integer, intent(out) :: info integer, optional, intent(in) :: ilev -! Local variables + ! Local variables integer :: ilev_, nlev_ character(len=*), parameter :: name='mld_precseti' @@ -302,7 +302,6 @@ end subroutine mld_sprecseti ! ! Subroutine: mld_sprecsetc ! Version: real -! Contains: mld_stringval ! ! This routine sets the character parameters defining the preconditioner. More ! precisely, the character parameter identified by 'what' is assigned the value @@ -320,10 +319,10 @@ end subroutine mld_sprecseti ! what - integer, input. ! The number identifying the parameter to be set. ! A mnemonic constant has been associated to each of these -! numbers, as reported in MLD2P4 user's guide. +! numbers, as reported in the MLD2P4 User's and Reference Guide. ! string - character(len=*), input. ! The value of the parameter to be set. The list of allowed -! values is reported in MLD2P4 user's guide. +! values is reported in the MLD2P4 User's and Reference Guide. ! info - integer, output. ! Error code. ! ilev - integer, optional, input. @@ -354,9 +353,9 @@ subroutine mld_sprecsetc(p,what,string,info,ilev) integer, intent(out) :: info integer, optional, intent(in) :: ilev -! Local variables + ! Local variables integer :: ilev_, nlev_,val - character(len=*), parameter :: name='mld_precseti' + character(len=*), parameter :: name='mld_precsetc' info = 0 @@ -410,10 +409,10 @@ end subroutine mld_sprecsetc ! what - integer, input. ! The number identifying the parameter to be set. ! A mnemonic constant has been associated to each of these -! numbers, as reported in MLD2P4 user's guide. +! numbers, as reported in the MLD2P4 User's and Reference Guide. ! val - real(psb_spk_), input. ! The value of the parameter to be set. The list of allowed -! values is reported in MLD2P4 user's guide. +! values is reported in the MLD2P4 User's and Reference Guide. ! info - integer, output. ! Error code. ! ilev - integer, optional, input. @@ -446,7 +445,7 @@ subroutine mld_sprecsetr(p,what,val,info,ilev) ! Local variables integer :: ilev_,nlev_ - character(len=*), parameter :: name='mld_precsetd' + character(len=*), parameter :: name='mld_precsetr' info = 0 diff --git a/mlprec/mld_sslu_bld.f90 b/mlprec/mld_sslu_bld.f90 index b3434560..353baca5 100644 --- a/mlprec/mld_sslu_bld.f90 +++ b/mlprec/mld_sslu_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -44,7 +44,7 @@ ! This routine computes the LU factorization of the local part of the matrix ! stored into a, by using SuperLU. ! -! The matrix to be factorized is +! The local matrix to be factorized is ! - either a submatrix of the distributed matrix corresponding to any level ! of a multilevel preconditioner, and its factorization is used to build ! the 'base preconditioner' corresponding to that level, diff --git a/mlprec/mld_sslu_interface.c b/mlprec/mld_sslu_interface.c index 5356e438..5e572625 100644 --- a/mlprec/mld_sslu_interface.c +++ b/mlprec/mld_sslu_interface.c @@ -1,12 +1,12 @@ /* * - * MLD2P4 version 1.0 + * MLD2P4 version 1.1 * MultiLevel Domain Decomposition Parallel Preconditioners Package - * based on PSBLAS (Parallel Sparse BLAS version 2.2) + * based on PSBLAS (Parallel Sparse BLAS version 2.3.1) * - * (C) Copyright 2008 + * (C) Copyright 2008,2009 * - * Salvatore Filippone University of Rome Tor Vergata + * Salvatore Filippone University of Rome Tor Vergata * Alfredo Buttari University of Rome Tor Vergata * Pasqua D'Ambra ICAR-CNR, Naples * Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_sslud_bld.f90 b/mlprec/mld_sslud_bld.f90 index a9302afd..cd95f4f7 100644 --- a/mlprec/mld_sslud_bld.f90 +++ b/mlprec/mld_sslud_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -44,7 +44,7 @@ ! This routine computes the LU factorization of of a distributed matrix, ! by using SuperLU_DIST. ! -! The matrix to be factorized is the coarsest level matrix of a multilevel +! The matrix to be factorized is the coarsest-level matrix of a multilevel ! preconditioner and is distributed among the processes. Its factorization ! is used to build the 'base preconditioner' corresponding to the coarsest ! level. diff --git a/mlprec/mld_sslud_interface.c b/mlprec/mld_sslud_interface.c index 3229dc52..aa57ddbb 100644 --- a/mlprec/mld_sslud_interface.c +++ b/mlprec/mld_sslud_interface.c @@ -1,12 +1,12 @@ /* * - * MLD2P4 version 1.0 + * MLD2P4 version 1.1 * MultiLevel Domain Decomposition Parallel Preconditioners Package - * based on PSBLAS (Parallel Sparse BLAS version 2.2) + * based on PSBLAS (Parallel Sparse BLAS version 2.3.1) * - * (C) Copyright 2008 + * (C) Copyright 2008,2009 * - * Salvatore Filippone University of Rome Tor Vergata + * Salvatore Filippone University of Rome Tor Vergata * Alfredo Buttari University of Rome Tor Vergata * Pasqua D'Ambra ICAR-CNR, Naples * Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_ssp_renum.f90 b/mlprec/mld_ssp_renum.f90 index 4ed382f0..1c5d23f8 100644 --- a/mlprec/mld_ssp_renum.f90 +++ b/mlprec/mld_ssp_renum.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_ssub_aply.f90 b/mlprec/mld_ssub_aply.f90 index 55c9d30a..ec743406 100644 --- a/mlprec/mld_ssub_aply.f90 +++ b/mlprec/mld_ssub_aply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -94,17 +94,18 @@ ! preconditioner. ! ! Tasks 1, 3 and 4 may be selected when prec%iprcparm(mld_smoother_sweeps_) = 1, -! while task 2 is selected when prec%iprcparm(mld_smoother_sweeps_) > 1. Furthermore -! Tasks 1, 2 and 3 may be performed when the matrix A is -! distributed among the processes (prec%iprcparm(mld_coarse_mat_) = mld_distr_mat_), -! while task 4 may be performed when A is replicated on the processes -! (prec%iprcparm(mld_coarse_mat_) = mld_repl_mat_). Note that the matrix A is -! distributed among the processes at each level of the multilevel preconditioner, -! except the coarsest one, where it may be either distributed or replicated on -! the processes. Tasks 2, 3 and 4 are performed only at the coarsest level. -! Note also that this routine manages implicitly the fact that -! the matrix is distributed or replicated, i.e. it does not make any explicit -! reference to the value of prec%iprcparm(mld_coarse_mat_). +! while task 2 is selected when prec%iprcparm(mld_smoother_sweeps_) > 1. +! Furthermore, tasks 1, 2 and 3 may be performed when the matrix A is distributed +! among the processes (p%precv(ilev)%iprcparm(mld_coarse_mat_) = mld_distr_mat_, +! where p%precv(ilev) is the one-level data structure associated to the level +! ilev at which mld_sub_aply is called), while task 4 may be performed when A +! is replicated on the processes (p%precv(ilev)%iprcparm(mld_coarse_mat_) = +! mld_repl_mat_). Note that the matrix A is distributed among the processes +! at each level of the multilevel preconditioner, except the coarsest one, where +! it may be either distributed or replicated on the processes. Tasks 2, 3 and 4 +! are performed only at the coarsest level. Note also that this routine manages +! implicitly the fact that the matrix is distributed or replicated, i.e. it does not +! make any explicit reference to the value of p%precv(ilev)%iprcparm(mld_coarse_mat_). ! ! Arguments: ! @@ -140,14 +141,14 @@ subroutine mld_ssub_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) implicit none ! Arguments - type(psb_desc_type), intent(in) :: desc_data - type(mld_sbaseprec_type), intent(in) :: prec + type(psb_desc_type), intent(in) :: desc_data + type(mld_sbaseprec_type), intent(in) :: prec real(psb_spk_),intent(in) :: x(:) real(psb_spk_),intent(inout) :: y(:) real(psb_spk_),intent(in) :: alpha,beta - character(len=1),intent(in) :: trans + character(len=1),intent(in) :: trans real(psb_spk_),target, intent(inout) :: work(:) - integer, intent(out) :: info + integer, intent(out) :: info ! Local variables integer :: n_row,n_col diff --git a/mlprec/mld_ssub_solve.f90 b/mlprec/mld_ssub_solve.f90 index 9e588a74..d09ae340 100644 --- a/mlprec/mld_ssub_solve.f90 +++ b/mlprec/mld_ssub_solve.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -60,8 +60,8 @@ ! ! A*Y = X, ! -! by using the L and U factors computed with an ILU (incomplete LU) factorization -! of A. In this case K = L*U ~ A, alpha = 1 and beta = 0. The factors L and U +! by using the L and U factors computed with an ILU factorization of A. +! In this case K = L*U ~ A, alpha = 1 and beta = 0. The factors L and U ! (and the matrix A) are either distributed and block-diagonal or replicated. ! ! 2. Solution of a linear system diff --git a/mlprec/mld_sumf_bld.f90 b/mlprec/mld_sumf_bld.f90 index c9c61567..fe6fa169 100644 --- a/mlprec/mld_sumf_bld.f90 +++ b/mlprec/mld_sumf_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -44,7 +44,7 @@ ! This routine computes the LU factorization of the local part of the matrix ! stored into a, by using UMFPACK. ! -! The matrix to be factorized is +! The local matrix to be factorized is ! - either a submatrix of the distributed matrix corresponding to any level ! of a multilevel preconditioner, and its factorization is used to build ! the 'base preconditioner' corresponding to that level, diff --git a/mlprec/mld_sumf_interface.c b/mlprec/mld_sumf_interface.c index a72b499a..2e71232a 100644 --- a/mlprec/mld_sumf_interface.c +++ b/mlprec/mld_sumf_interface.c @@ -1,12 +1,12 @@ /* * - * MLD2P4 version 1.0 + * MLD2P4 version 1.1 * MultiLevel Domain Decomposition Parallel Preconditioners Package - * based on PSBLAS (Parallel Sparse BLAS version 2.2) + * based on PSBLAS (Parallel Sparse BLAS version 2.3.1) * - * (C) Copyright 2008 + * (C) Copyright 2008,2009 * - * Salvatore Filippone University of Rome Tor Vergata + * Salvatore Filippone University of Rome Tor Vergata * Alfredo Buttari University of Rome Tor Vergata * Pasqua D'Ambra ICAR-CNR, Naples * Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_zaggrmap_bld.f90 b/mlprec/mld_zaggrmap_bld.f90 index de48d572..0f9371b5 100644 --- a/mlprec/mld_zaggrmap_bld.f90 +++ b/mlprec/mld_zaggrmap_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -68,14 +68,14 @@ ! the fine-level matrix. ! desc_a - type(psb_desc_type), input. ! The communication descriptor of the fine-level matrix. -! nlaggr - integer, dimension(:), allocatable. -! nlaggr(i) contains the aggregates held by process i. ! ilaggr - integer, dimension(:), allocatable. ! The mapping between the row indices of the coarse-level ! matrix and the row indices of the fine-level matrix. ! ilaggr(i)=j means that node i in the adjacency graph ! of the fine-level matrix is mapped onto node j in the ! adjacency graph of the coarse-level matrix. +! nlaggr - integer, dimension(:), allocatable. +! nlaggr(i) contains the aggregates held by process i. ! info - integer, output. ! Error code. ! @@ -86,7 +86,7 @@ subroutine mld_zaggrmap_bld(aggr_type,theta,a,desc_a,ilaggr,nlaggr,info) implicit none -! Arguments + ! Arguments integer, intent(in) :: aggr_type real(psb_dpk_), intent(in) :: theta type(psb_zspmat_type), intent(in) :: a @@ -94,7 +94,7 @@ subroutine mld_zaggrmap_bld(aggr_type,theta,a,desc_a,ilaggr,nlaggr,info) integer, allocatable, intent(out) :: ilaggr(:),nlaggr(:) integer, intent(out) :: info -! Local variables + ! Local variables integer, allocatable :: ils(:), neigh(:) integer :: icnt,nlp,k,n,ia,isz,nr, naggr,i,j,m type(psb_zspmat_type) :: atmp, atrans @@ -131,7 +131,7 @@ subroutine mld_zaggrmap_bld(aggr_type,theta,a,desc_a,ilaggr,nlaggr,info) atmp%m=nr atmp%k=nr if (info == 0) call psb_sp_free(atrans,info) - if (info == 0) call psb_ipcoo2csr(atmp,info) + if (info == 0) call psb_spcnv(atmp,info,afmt='csr') if (info == 0) call mld_dec_map_bld(theta,atmp,desc_a,nlaggr,ilaggr,info) if (info == 0) call psb_sp_free(atmp,info) @@ -161,8 +161,6 @@ subroutine mld_zaggrmap_bld(aggr_type,theta,a,desc_a,ilaggr,nlaggr,info) contains - - subroutine mld_dec_map_bld(theta,a,desc_a,nlaggr,ilaggr,info) use psb_base_mod @@ -337,7 +335,7 @@ contains ! isz = nr+1 ia = -1 - cpling = 0.0d0 + cpling = dzero call psb_sp_getrow(i,a,nz,irow,icol,val,info) if (info/=0) then info=4010 @@ -384,7 +382,7 @@ contains if (ia>naggr) then info=4001 - call psb_errpush(info,name,a_err='loc_Aggregate: n > naggr 4? ') + call psb_errpush(info,name,a_err='loc_Aggregate: n > naggr ? ') goto 9999 end if ils(ia) = ils(ia) + 1 diff --git a/mlprec/mld_zaggrmat_asb.f90 b/mlprec/mld_zaggrmat_asb.f90 index 5f3e5fad..9c75b38a 100644 --- a/mlprec/mld_zaggrmat_asb.f90 +++ b/mlprec/mld_zaggrmat_asb.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,7 +42,7 @@ ! Version: complex ! ! This routine builds a coarse-level matrix A_C from a fine-level matrix A -! by using a Galerkin approach, i.e. +! by using the Galerkin approach, i.e. ! ! A_C = P_C^T A P_C, ! @@ -50,18 +50,18 @@ ! ! A mapping from the nodes of the adjacency graph of A to the nodes of the ! adjacency graph of A_C has been computed by the mld_aggrmap_bld subroutine. -! The prolongator P_C is built here from this mapping, according to the +! The prolongator P_C is built here from this mapping, according to the ! value of p%iprcparm(mld_aggr_kind_), specified by the user through ! mld_zprecinit and mld_zprecset. ! ! Currently three different prolongators are implemented, corresponding to ! three aggregation algorithms: -! 1. raw aggregation, +! 1. non-smoothed aggregation, ! 2. smoothed aggregation, ! 3. "bizarre" aggregation. -! 1. The raw aggregation uses as prolongator the piecewise constant interpolation -! operator corresponding to the fine-to-coarse level mapping built by -! mld_aggrmap_bld. This is called tentative prolongator. +! 1. The non-smoothed aggregation uses as prolongator the piecewise constant +! interpolation operator corresponding to the fine-to-coarse level mapping built +! by mld_aggrmap_bld. This is called tentative prolongator. ! 2. The smoothed aggregation uses as prolongator the operator obtained by applying ! a damped Jacobi smoother to the tentative prolongator. ! 3. The "bizarre" aggregation uses a prolongator proposed by the authors of MLD2P4. @@ -84,9 +84,17 @@ ! desc_a - type(psb_desc_type), input. ! The communication descriptor of the fine-level matrix. ! p - type(mld_zonelev_type), input/output. -! The one-level preconditioner data structure containing the local -! part of the base preconditioner to be built as well as the -! aggregate matrices. +! The 'one-level' data structure that will contain the local +! part of the matrix to be built as well as the information +! concerning the prolongator and its transpose. +! ilaggr - integer, dimension(:), allocatable. +! The mapping between the row indices of the coarse-level +! matrix and the row indices of the fine-level matrix. +! ilaggr(i)=j means that node i in the adjacency graph +! of the fine-level matrix is mapped onto node j in the +! adjacency graph of the coarse-level matrix. +! nlaggr - integer, dimension(:), allocatable. +! nlaggr(i) contains the aggregates held by process i. ! info - integer, output. ! Error code. ! diff --git a/mlprec/mld_zaggrmat_nosmth_asb.F90 b/mlprec/mld_zaggrmat_nosmth_asb.F90 index 699b5a61..c707edf9 100644 --- a/mlprec/mld_zaggrmat_nosmth_asb.F90 +++ b/mlprec/mld_zaggrmat_nosmth_asb.F90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,7 +42,7 @@ ! Version: complex ! ! This routine builds a coarse-level matrix A_C from a fine-level matrix A -! by using a Galerkin approach, i.e. +! by using the Galerkin approach, i.e. ! ! A_C = P_C^T A P_C, ! @@ -67,9 +67,17 @@ ! desc_a - type(psb_desc_type), input. ! The communication descriptor of the fine-level matrix. ! p - type(mld_zonelev_type), input/output. -! The one-level preconditioner data structure containing the local -! part of the base preconditioner to be built as well as the -! aggregate matrices. +! The 'one-level' data structure that will contain the local +! part of the matrix to be built as well as the information +! concerning the prolongator and its transpose. +! ilaggr - integer, dimension(:), allocatable. +! The mapping between the row indices of the coarse-level +! matrix and the row indices of the fine-level matrix. +! ilaggr(i)=j means that node i in the adjacency graph +! of the fine-level matrix is mapped onto node j in the +! adjacency graph of the coarse-level matrix. +! nlaggr - integer, dimension(:), allocatable. +! nlaggr(i) contains the aggregates held by process i. ! info - integer, output. ! Error code. ! diff --git a/mlprec/mld_zaggrmat_smth_asb.F90 b/mlprec/mld_zaggrmat_smth_asb.F90 index c5c10f2a..12e8a935 100644 --- a/mlprec/mld_zaggrmat_smth_asb.F90 +++ b/mlprec/mld_zaggrmat_smth_asb.F90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,7 +42,7 @@ ! Version: complex ! ! This routine builds a coarse-level matrix A_C from a fine-level matrix A -! by using a Galerkin approach, i.e. +! by using the Galerkin approach, i.e. ! ! A_C = P_C^T A P_C, ! @@ -59,7 +59,7 @@ ! of A, and omega is a suitable smoothing parameter. An estimate of the spectral ! radius of D^(-1)A, to be used in the computation of omega, is provided, ! according to the value of p%iprcparm(mld_aggr_omega_alg_), specified by the user -! through mld_dprecinit and mld_dprecset. +! through mld_zprecinit and mld_zprecset. ! ! This routine can also build A_C according to a "bizarre" aggregation algorithm, ! using a "naive" prolongator proposed by the authors of MLD2P4. However, this @@ -68,7 +68,7 @@ ! ! The coarse-level matrix A_C is distributed among the parallel processes or ! replicated on each of them, according to the value of p%iprcparm(mld_coarse_mat_), -! specified by the user through mld_dprecinit and mld_dprecset. +! specified by the user through mld_zprecinit and mld_zprecset. ! ! For more details see ! M. Brezina and P. Vanek, A black-box iterative solver based on a @@ -84,9 +84,17 @@ ! desc_a - type(psb_desc_type), input. ! The communication descriptor of the fine-level matrix. ! p - type(mld_zonelev_type), input/output. -! The one-level preconditioner data structure containing the local -! part of the base preconditioner to be built as well as the -! aggregate matrices. +! The 'one-level' data structure that will contain the local +! part of the matrix to be built as well as the information +! concerning the prolongator and its transpose. +! ilaggr - integer, dimension(:), allocatable. +! The mapping between the row indices of the coarse-level +! matrix and the row indices of the fine-level matrix. +! ilaggr(i)=j means that node i in the adjacency graph +! of the fine-level matrix is mapped onto node j in the +! adjacency graph of the coarse-level matrix. +! nlaggr - integer, dimension(:), allocatable. +! nlaggr(i) contains the aggregates held by process i. ! info - integer, output. ! Error code. ! @@ -102,24 +110,24 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) include 'mpif.h' #endif -! Arguments + ! Arguments type(psb_zspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a integer, intent(inout) :: ilaggr(:), nlaggr(:) type(mld_zonelev_type), intent(inout), target :: p integer, intent(out) :: info -! Local variables + ! Local variables type(psb_zspmat_type) :: b integer, allocatable :: nzbr(:), idisp(:) integer :: nrow, nglob, ncol, ntaggr, nzac, ip, ndx,& & naggr, nzl,naggrm1,naggrp1, i, j, k, jd, icolF integer ::ictxt,np,me, err_act, icomm character(len=20) :: name - type(psb_zspmat_type) :: am1,am2, AF + type(psb_zspmat_type) :: am1,am2, af type(psb_zspmat_type) :: am3,am4 complex(psb_dpk_), allocatable :: adiag(:) - logical :: ml_global_nmb + logical :: ml_global_nmb, filter_mat integer :: debug_level, debug_unit integer, parameter :: ncmax=16 real(psb_dpk_) :: omega, anorm, tmp, dg, theta @@ -168,6 +176,8 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) & ( (p%iprcparm(mld_aggr_kind_) == mld_biz_prol_).and.& & (p%iprcparm(mld_coarse_mat_) == mld_repl_mat_)) ) + filter_mat = (p%iprcparm(mld_aggr_filter_) == mld_filter_mat_) + if (ml_global_nmb) then ilaggr(1:nrow) = ilaggr(1:nrow) + naggrm1 call psb_halo(ilaggr,desc_a,info) @@ -190,11 +200,11 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) goto 9999 end if - ! Get diagonal D + ! Get the diagonal D call psb_sp_getdiag(a,adiag,info) if (info == 0) & & call psb_halo(adiag,desc_a,info) - + if(info /= 0) then call psb_errpush(4010,name,a_err='sp_getdiag') goto 9999 @@ -243,45 +253,44 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) & write(debug_unit,*) me,' ',trim(name),& & ' Initial copies done.' + if (filter_mat) then + ! + ! Build the filtered matrix Af from A + ! + call psb_spcnv(a,af,info,afmt='csr',dupl=psb_dupl_add_) - !********************************+ - ! building the filtered matrix af from A - ! - ! - call psb_spcnv(a,af,info,afmt='csr',dupl=psb_dupl_add_) - - do i=1,nrow - tmp = zzero - jd = -1 - do j=af%ia2(i),af%ia2(i+1)-1 - if (af%ia1(j) == i) jd = j - if (abs(af%aspk(j)) < theta*sqrt(abs(adiag(i)*adiag(af%ia1(j))))) then - tmp=tmp+af%aspk(j) - af%aspk(j)=zzero - endif + do i=1,nrow + tmp = zzero + jd = -1 + do j=af%ia2(i),af%ia2(i+1)-1 + if (af%ia1(j) == i) jd = j + if (abs(af%aspk(j)) < theta*sqrt(abs(adiag(i)*adiag(af%ia1(j))))) then + tmp=tmp+af%aspk(j) + af%aspk(j)=zzero + endif + enddo + if (jd == -1) then + write(0,*) 'Wrong input: we need the diagonal!!!!', i + else + af%aspk(jd)=af%aspk(jd)-tmp + end if enddo - if (jd == -1) then - write(0,*) 'Wrong input: we need the diagonal!!!!' - else - af%aspk(jd)=af%aspk(jd)-tmp - end if - enddo - ! Ora eliminiamo i termini che sono stato azzerati - call psb_spcnv(af,info,afmt='coo') - k = 0 - do j=1,psb_sp_get_nnzeros(af) - if ((af%aspk(j) /= zzero) .or. (af%ia1(j)==af%ia2(j))) then - k = k + 1 - af%aspk(k) = af%aspk(j) - af%ia1(k) = af%ia1(j) - af%ia2(k) = af%ia2(j) - end if - end do + ! Take out zeroed terms + call psb_spcnv(af,info,afmt='coo') + k = 0 + do j=1,psb_sp_get_nnzeros(af) + if ((af%aspk(j) /= zzero) .or. (af%ia1(j)==af%ia2(j))) then + k = k + 1 + af%aspk(k) = af%aspk(j) + af%ia1(k) = af%ia1(j) + af%ia2(k) = af%ia2(j) + end if + end do !!$ write(debug_unit,*) me,' ',trim(name),' Non zeros from filtered matrix:',k,af%m,af%k - call psb_sp_setifld(k,psb_nnz_,af,info) - call psb_spcnv(af,info,afmt='csr') - + call psb_sp_setifld(k,psb_nnz_,af,info) + call psb_spcnv(af,info,afmt='csr') + end if do i=1,size(adiag) @@ -291,18 +300,21 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) adiag(i) = zone end if end do - call psb_sp_scal(af,adiag,info) + + if (filter_mat) call psb_sp_scal(af,adiag,info) + call psb_sp_scal(am3,adiag,info) if (info /= 0) goto 9999 - !******************************************* + + if (p%iprcparm(mld_aggr_omega_alg_) == mld_eig_est_) then if (p%iprcparm(mld_aggr_eig_) == mld_max_norm_) then - + if (p%iprcparm(mld_aggr_kind_) == mld_biz_prol_) then - + ! - ! This only works with CSR. + ! This only works with CSR ! if (psb_toupper(am3%fida)=='CSR') then anorm = dzero @@ -319,7 +331,7 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) end do anorm = max(anorm,tmp/dg) enddo - + call psb_amx(ictxt,anorm) else info = 4001 @@ -341,7 +353,7 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) call psb_errpush(info,name,a_err='invalid mld_aggr_eig_') goto 9999 end if - + else if (p%iprcparm(mld_aggr_omega_alg_) == mld_user_choice_) then omega = p%rprcparm(mld_aggr_omega_val_) @@ -352,43 +364,88 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) goto 9999 end if - ! %% - if (psb_toupper(af%fida)=='CSR') then - do i=1,af%m - do j=af%ia2(i),af%ia2(i+1)-1 - if (af%ia1(j) == i) then - af%aspk(j) = zone - omega*af%aspk(j) - else - af%aspk(j) = - omega*af%aspk(j) - end if + if (filter_mat) then + ! + ! Build the smoothed prolongator using the filtered matrix + ! + if (psb_toupper(af%fida)=='CSR') then + do i=1,af%m + do j=af%ia2(i),af%ia2(i+1)-1 + if (af%ia1(j) == i) then + af%aspk(j) = zone - omega*af%aspk(j) + else + af%aspk(j) = - omega*af%aspk(j) + end if + end do end do - end do - else - call psb_errpush(4001,name,a_err='Invalid AF storage format') - goto 9999 - end if + else + call psb_errpush(4001,name,a_err='Invalid AF storage format') + goto 9999 + end if - if (debug_level >= psb_debug_outer_) & - & write(debug_unit,*) me,' ',trim(name),& - & 'Done gather, going for SYMBMM 1' - ! - ! Symbmm90 does the allocation for its result. - ! - ! am1 = (i-wDA)Ptilde - ! Doing it this way means to consider diag(Ai) - ! - ! - call psb_symbmm(af,am4,am1,info) - if(info /= 0) then - call psb_errpush(4010,name,a_err='symbmm 1') - goto 9999 - end if + if (debug_level >= psb_debug_outer_) & + & write(debug_unit,*) me,' ',trim(name),& + & 'Done gather, going for SYMBMM 1' + ! + ! Symbmm90 does the allocation for its result. + ! + ! am1 = (I-w*D*Af)Ptilde + ! Doing it this way means to consider diag(Af_i) + ! + ! + call psb_symbmm(af,am4,am1,info) + if(info /= 0) then + call psb_errpush(4010,name,a_err='symbmm 1') + goto 9999 + end if - call psb_numbmm(af,am4,am1) + call psb_numbmm(af,am4,am1) - if (debug_level >= psb_debug_outer_) & - & write(debug_unit,*) me,' ',trim(name),& - & 'Done NUMBMM 1' + if (debug_level >= psb_debug_outer_) & + & write(debug_unit,*) me,' ',trim(name),& + & 'Done NUMBMM 1' + else + ! + ! Build the smoothed prolongator using the original matrix + ! + if (psb_toupper(am3%fida)=='CSR') then + do i=1,am3%m + do j=am3%ia2(i),am3%ia2(i+1)-1 + if (am3%ia1(j) == i) then + am3%aspk(j) = zone - omega*am3%aspk(j) + else + am3%aspk(j) = - omega*am3%aspk(j) + end if + end do + end do + else + call psb_errpush(4001,name,a_err='Invalid AM3 storage format') + goto 9999 + end if + + if (debug_level >= psb_debug_outer_) & + & write(debug_unit,*) me,' ',trim(name),& + & 'Done gather, going for SYMBMM 1' + ! + ! Symbmm90 does the allocation for its result. + ! + ! am1 = (I-w*D*A)Ptilde + ! Doing it this way means to consider diag(A_i) + ! + ! + call psb_symbmm(am3,am4,am1,info) + if(info /= 0) then + call psb_errpush(4010,name,a_err='symbmm 1') + goto 9999 + end if + + call psb_numbmm(am3,am4,am1) + + if (debug_level >= psb_debug_outer_) & + & write(debug_unit,*) me,' ',trim(name),& + & 'Done NUMBMM 1' + + end if call psb_sp_free(am4,info) if(info /= 0) then @@ -412,7 +469,7 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) call psb_errpush(4001,name,a_err='Halo of am1') goto 9999 end if - + call psb_symbmm(a,am1,am3,info) if(info /= 0) then call psb_errpush(4010,name,a_err='symbmm 2') diff --git a/mlprec/mld_zas_aply.f90 b/mlprec/mld_zas_aply.f90 index 7e7620e9..1efe0102 100644 --- a/mlprec/mld_zas_aply.f90 +++ b/mlprec/mld_zas_aply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_zas_bld.f90 b/mlprec/mld_zas_bld.f90 index 8f25bd9b..9733b6a0 100644 --- a/mlprec/mld_zas_bld.f90 +++ b/mlprec/mld_zas_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_zbaseprec_aply.f90 b/mlprec/mld_zbaseprec_aply.f90 index d1b81bd0..c8747419 100644 --- a/mlprec/mld_zbaseprec_aply.f90 +++ b/mlprec/mld_zbaseprec_aply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -163,7 +163,7 @@ subroutine mld_zbaseprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) case(mld_bjac_,mld_as_) ! - ! Additive Schwarz preconditioner + ! Additive Schwarz preconditioner (including block-Jacobi as special case) ! call mld_as_aply(alpha,prec,x,beta,y,desc_data,trans_,work,info) if(info /= 0) then diff --git a/mlprec/mld_zbaseprec_bld.f90 b/mlprec/mld_zbaseprec_bld.f90 index 357ad364..290c119a 100644 --- a/mlprec/mld_zbaseprec_bld.f90 +++ b/mlprec/mld_zbaseprec_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -46,7 +46,7 @@ ! base preconditioner at each level. ! ! Details on the base preconditioner to be built are stored in the iprcparm -! field of the preconditioner data structure (for a description of this +! field of the base preconditioner data structure (for a description of this ! data structure see mld_prec_type.f90). ! ! diff --git a/mlprec/mld_zcoarse_bld.f90 b/mlprec/mld_zcoarse_bld.f90 index 22a96a12..2c70499e 100644 --- a/mlprec/mld_zcoarse_bld.f90 +++ b/mlprec/mld_zcoarse_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -41,11 +41,15 @@ ! Subroutine: mld_zcoarse_bld ! Version: complex ! -! This routine builds the preconditioner corresponding to the current -! level of the multilevel preconditioner. The routine first builds the -! (coarse) matrix associated to the current level from the (fine) matrix -! associated to the previous level, then builds the related base preconditioner. -! Note that this routine is only ever called on levels >= 2. +! This routine builds the matrix associated to the current level of the +! multilevel preconditioner from the matrix associated to the previous level, +! by using a smoothed aggregation technique (therefore, it also builds the +! prolongation and restriction operators mapping the current level to the +! previous one and vice versa). Then the routine builds the base preconditioner +! at the current level. +! The current level is regarded as the coarse one, while the previous as +! the fine one. This is in agreement with the fact that the routine is called, +! by mld_mlprec_bld, only on levels >=2. ! ! ! Arguments: @@ -55,8 +59,9 @@ ! desc_a - type(psb_desc_type), input. ! The communication descriptor of a. ! p - type(mld_zonelev_type), input/output. -! The preconditioner data structure containing the local -! part of the one-level preconditioner to be built. +! The 'one-level' data structure containing the local part +! of the base preconditioner to be built as well as +! information concerning the prolongator and its transpose. ! info - integer, output. ! Error code. ! @@ -100,6 +105,8 @@ subroutine mld_zcoarse_bld(a,desc_a,p,info) & mld_smooth_prol_,is_legal_ml_aggr_kind) call mld_check_def(p%iprcparm(mld_coarse_mat_),'Coarse matrix',& & mld_distr_mat_,is_legal_ml_coarse_mat) + call mld_check_def(p%iprcparm(mld_aggr_filter_),'Use filtered matrix',& + & mld_no_filter_mat_,is_legal_aggr_filter) call mld_check_def(p%iprcparm(mld_smoother_pos_),'smooth_pos',& & mld_pre_smooth_,is_legal_ml_smooth_pos) call mld_check_def(p%iprcparm(mld_aggr_omega_alg_),'Omega Alg.',& @@ -124,7 +131,7 @@ subroutine mld_zcoarse_bld(a,desc_a,p,info) end if ! - ! Build the coarse-level matrix from the fine level one, starting from + ! Build the coarse-level matrix from the fine-level one, starting from ! the mapping defined by mld_aggrmap_bld and applying the aggregation ! algorithm specified by p%iprcparm(mld_aggr_kind_) ! diff --git a/mlprec/mld_zdiag_bld.f90 b/mlprec/mld_zdiag_bld.f90 index 99de78b0..1f6e8f83 100644 --- a/mlprec/mld_zdiag_bld.f90 +++ b/mlprec/mld_zdiag_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_zfact_bld.f90 b/mlprec/mld_zfact_bld.f90 index 313bfbac..58a56af7 100644 --- a/mlprec/mld_zfact_bld.f90 +++ b/mlprec/mld_zfact_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -41,10 +41,10 @@ ! Subroutine: mld_zfact_bld ! Version: complex ! -! This routine computes an LU or incomplete LU (ILU) factorization of the diagonal -! blocks of a distributed matrix, according to the value of -! p%iprcparm(iprcparm(sub_solve_), set by the user through -! mld_dprecinit or mld_dprecset. +! This routine computes an LU or incomplete LU (ILU) factorization of the +! diagonal blocks of a distributed matrix, according to the value of +! p%iprcparm(iprcparm(sub_solve_), set by the user through mld_zprecinit +! or mld_zprecset. ! It may also compute an LU factorization of a distributed matrix, or split ! a distributed matrix into its block-diagonal and off block-diagonal parts, ! for the future application of multiple block-Jacobi sweeps. @@ -60,8 +60,8 @@ ! More precisely, the routine performs one of the following tasks: ! ! 1. LU or ILU factorization of the diagonal blocks of the distributed matrix -! for the construction of a block-Jacobi or AS preconditioners -! (allowed at any level of a multilevel preconditioner); +! for the construction of block-Jacobi or AS preconditioners (allowed at +! any level of a multilevel preconditioner); ! ! 2. setup of block-Jacobi sweeps to compute an approximate solution of a ! linear system diff --git a/mlprec/mld_zilu0_fact.f90 b/mlprec/mld_zilu0_fact.f90 index 82382058..30116733 100644 --- a/mlprec/mld_zilu0_fact.f90 +++ b/mlprec/mld_zilu0_fact.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,11 +42,11 @@ ! Version: complex ! Contains: mld_zilu0_factint, ilu_copyin ! -! This routine computes either the ILU(0) or the MILU(0) factorization of the -! diagonal blocks of a distributed matrix. These factorizations -! are used to build the 'base preconditioner' (block-Jacobi preconditioner/solver, -! Additive Schwarz preconditioner) corresponding to a given level of a multilevel -! preconditioner. +! This routine computes either the ILU(0) or the MILU(0) factorization of +! the diagonal blocks of a distributed matrix. These factorizations are used +! to build the 'base preconditioner' (block-Jacobi preconditioner/solver, +! Additive Schwarz preconditioner) corresponding to a given level of a +! multilevel preconditioner. ! ! Details on the above factorizations can be found in ! Y. Saad, Iterative Methods for Sparse Linear Systems, Second Edition, diff --git a/mlprec/mld_zilu_bld.f90 b/mlprec/mld_zilu_bld.f90 index 3c61940d..5d0bd18a 100644 --- a/mlprec/mld_zilu_bld.f90 +++ b/mlprec/mld_zilu_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_ziluk_fact.f90 b/mlprec/mld_ziluk_fact.f90 index 26499979..b5fd7d1a 100644 --- a/mlprec/mld_ziluk_fact.f90 +++ b/mlprec/mld_ziluk_fact.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -43,10 +43,10 @@ ! Contains: mld_ziluk_factint, iluk_copyin, iluk_fact, iluk_copyout ! ! This routine computes either the ILU(k) or the MILU(k) factorization of the -! diagonal blocks of a distributed matrix. These factorizations are used to build -! the 'base preconditioner' (block-Jacobi preconditioner/solver, -! Additive Schwarz preconditioner) corresponding to a certain level of a multilevel -! preconditioner. +! diagonal blocks of a distributed matrix. These factorizations are used to +! build the 'base preconditioner' (block-Jacobi preconditioner/solver, +! Additive Schwarz preconditioner) corresponding to a certain level of a +! multilevel preconditioner. ! ! Details on the above factorizations can be found in ! Y. Saad, Iterative Methods for Sparse Linear Systems, Second Edition, @@ -284,7 +284,6 @@ contains integer, allocatable :: uplevs(:), rowlevs(:),idxs(:) complex(psb_dpk_), allocatable :: row(:) type(psb_int_heap) :: heap - logical,parameter :: debug=.false. type(psb_zspmat_type) :: trw character(len=20), parameter :: name='mld_ziluk_factint' character(len=20) :: ch_err diff --git a/mlprec/mld_zilut_fact.f90 b/mlprec/mld_zilut_fact.f90 index 23cbe052..8959f3f6 100644 --- a/mlprec/mld_zilut_fact.f90 +++ b/mlprec/mld_zilut_fact.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -42,8 +42,8 @@ ! Version: real ! Contains: mld_zilut_factint, ilut_copyin, ilut_fact, ilut_copyout ! -! This routine computes the ILU(k,t) factorization of the diagonal blocks of a -! distributed matrix. This factorization is used to build the 'base +! This routine computes the ILU(k,t) factorization of the diagonal blocks +! of a distributed matrix. This factorization is used to build the 'base ! preconditioner' (block-Jacobi preconditioner/solver, Additive Schwarz ! preconditioner) corresponding to a certain level of a multilevel preconditioner. ! @@ -51,11 +51,11 @@ ! Y. Saad, Iterative Methods for Sparse Linear Systems, Second Edition, ! SIAM, 2003, Chapter 10. ! -! The local matrix is stored into a and blck, as specified in -! the description of the arguments below. The storage format for both the L and -! U factors is CSR. The diagonal of the U factor is stored separately (actually, -! the inverse of the diagonal entries is stored; this is then managed in the solve -! stage associated to the ILU(k,t) factorization). +! The local matrix is stored into a and blck, as specified in the description +! of the arguments below. The storage format for both the L and U factors is +! CSR. The diagonal of the U factor is stored separately (actually, the +! inverse of the diagonal entries is stored; this is then managed in the +! solve stage associated to the ILU(k,t) factorization). ! ! ! Arguments: diff --git a/mlprec/mld_zmlprec_aply.f90 b/mlprec/mld_zmlprec_aply.f90 index 24740569..5053e668 100644 --- a/mlprec/mld_zmlprec_aply.f90 +++ b/mlprec/mld_zmlprec_aply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -46,7 +46,7 @@ ! Y = beta*Y + alpha*op(M^(-1))*X, ! where ! - M is a multilevel domain decomposition (Schwarz) preconditioner associated -! to a certain matrix A and stored in the array precv, +! to a certain matrix A and stored in p, ! - op(M^(-1)) is M^(-1) or its transpose, according to the value of trans, ! - X and Y are vectors, ! - alpha and beta are scalars. @@ -55,9 +55,11 @@ ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! -! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', -! each representing the part of the preconditioner associated to a certain level. -! For each level ilev, the preconditioner K(ilev) is stored in precv(ilev) +! A multilevel preconditioner is regarded as an array of 'one-level' data structures, +! each containing the part of the preconditioner associated to a certain level +! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). +! For each level ilev, the 'base preconditioner' K(ilev) is stored in +! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -79,42 +81,40 @@ ! alpha - complex(psb_dpk_), input. ! The scalar alpha. ! p - type(mld_zprec_type), input. -! The array of one-level preconditioner data structures containing the -! local parts of the preconditioners to be applied at each level. +! The multilevel preconditioner data structure containing the +! local part of the preconditioner to be applied. ! Note that nlev = size(p%precv) = number of levels. -! p%p%precv(ilev)%prec - type(psb_zbaseprec_type) -! The "base" preconditioner for the current level +! p%precv(ilev)%prec - type(psb_zbaseprec_type) +! The 'base preconditioner' for the current level ! p%precv(ilev)%ac - type(psb_zspmat_type) -! The local part of the matrix A(ilev). +! The local part of the matrix A(ilev). ! p%precv(ilev)%desc_ac - type(psb_desc_type). -! The communication descriptor associated to the sparse -! matrix A(ilev) -! p%precv(ilev)%map - type(psb_inter_desc_type) -! Stores the linear operators mapping between levels -! (ilev-1) and (ilev). These are the restriction and -! prolongation operators described in the sequel. +! The communication descriptor associated to the sparse +! matrix A(ilev) +! p%precv(ilev)%map - type(psb_inter_desc_type) +! Stores the linear operators mapping level (ilev-1) +! to (ilev) and vice versa. These are the restriction +! and prolongation operators described in the sequel. ! p%precv(ilev)%iprcparm - integer, dimension(:), allocatable. -! The integer parameters defining the multilevel -! strategy +! The integer parameters defining the multilevel +! strategy ! p%precv(ilev)%rprcparm - real(psb_dpk_), dimension(:), allocatable. -! The real parameters defining the multilevel strategy +! The real parameters defining the multilevel strategy ! p%precv(ilev)%mlia - integer, dimension(:), allocatable. -! The aggregation map (ilev-1) --> (ilev). -! In case of non-smoothed aggregation, it is used -! instead of mld_sm_pr_. +! The aggregation map (ilev-1) --> (ilev). ! p%precv(ilev)%nlaggr - integer, dimension(:), allocatable. -! The number of aggregates (rows of A(ilev)) on the -! various processes. +! The number of aggregates (rows of A(ilev)) on the +! various processes. ! p%precv(ilev)%base_a - type(psb_zspmat_type), pointer. -! Pointer (really a pointer!) to the base matrix of -! the current level, i.e. the local part of A(ilev); -! so we have a unified treatment of residuals. We -! need this to avoid passing explicitly the matrix -! A(ilev) to the routine which applies the -! preconditioner. +! Pointer (really a pointer!) to the base matrix of +! the current level, i.e. the local part of A(ilev); +! so we have a unified treatment of residuals. We +! need this to avoid passing explicitly the matrix +! A(ilev) to the routine which applies the +! preconditioner. ! p%precv(ilev)%base_desc - type(psb_desc_type), pointer. -! Pointer to the communication descriptor associated -! to the sparse matrix pointed by base_a. +! Pointer to the communication descriptor associated +! to the sparse matrix pointed by base_a. ! ! x - complex(psb_dpk_), dimension(:), input. ! The local part of the vector X. @@ -272,7 +272,7 @@ contains ! Y = beta*Y + alpha*op(M^(-1))*X, ! where ! - M is an additive multilevel domain decomposition (Schwarz) preconditioner - ! associated to a certain matrix A and stored in the array p%precv, + ! associated to a certain matrix A and stored in p, ! - op(M^(-1)) is M^(-1) or its (conjugate) transpose, according to ! the value of trans, ! - X and Y are vectors, @@ -285,9 +285,11 @@ contains ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! - ! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', - ! each representing the part of the preconditioner associated to a certain level. - ! For each level ilev, the base preconditioner K(ilev) is stored in p%precv(ilev) + ! The multilevel preconditioner is regarded as an array of 'one-level' data structures, + ! each containing the part of the preconditioner associated to a certain level + ! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). + ! For each level ilev, the 'base preconditioner' K(ilev) is stored in + ! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -303,10 +305,10 @@ contains ! ! For a description of the arguments see mld_zmlprec_aply. ! - ! A sketch of the algorithm implemented in this routine is provided below - ! (AV(ilev; sm_pr_) denotes the smoothed prolongator from level ilev to - ! level ilev-1, while AV(ilev; sm_pr_t_) denotes its transpose, i.e. the - ! corresponding restriction operator from level ilev-1 to level ilev). + ! A sketch of the algorithm implemented in this routine is provided below. + ! (P(ilev) denotes the smoothed prolongator from level ilev to level + ! ilev-1, while PT(ilev) denotes its transpose, i.e. the corresponding + ! restriction operator from level ilev-1 to level ilev). ! ! 1. ! Apply the base preconditioner at level 1. ! ! The sum over the subdomains is carried out in the @@ -317,7 +319,7 @@ contains ! 2. DO ilev=2,nlev ! ! ! Transfer X(ilev-1) to the next coarser level. - ! X(ilev) = AV(ilev; sm_pr_t_)*X(ilev-1) + ! X(ilev) = PT(ilev)*X(ilev-1) ! ! ! Apply the base preconditioner at the current level. ! ! The sum over the subdomains is carried out in the @@ -329,7 +331,7 @@ contains ! 3. DO ilev=nlev-1,1,-1 ! ! ! Transfer Y(ilev+1) to the next finer level. - ! Y(ilev) = AV(ilev+1; sm_pr_)*Y(ilev+1) + ! Y(ilev) = P(ilev+1)*Y(ilev+1) ! ! ENDDO ! @@ -419,7 +421,7 @@ contains goto 9999 end if - ! Apply prolongator transpose, i.e. restriction + ! Apply the prolongator transpose, i.e. the restriction call psb_map_X2Y(zone,mlprec_wrk(ilev-1)%x2l,& & zzero,mlprec_wrk(ilev)%x2l,& & p%precv(ilev)%map,info,work=work) @@ -449,7 +451,7 @@ contains nr2l = psb_cd_get_local_rows(p%precv(ilev)%base_desc) ! - ! Apply prolongator + ! Apply the prolongator ! call psb_map_Y2X(zone,mlprec_wrk(ilev)%y2l,& & zone,mlprec_wrk(ilev-1)%y2l,& @@ -513,9 +515,11 @@ contains ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! - ! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', - ! each representing the part of the preconditioner associated to a certain level. - ! For each level ilev, the base preconditioner K(ilev) is stored in p%precv(ilev) + ! The multilevel preconditioner is regarded as an array of 'one-level' data structures, + ! each containing the part of the preconditioner associated to a certain level + ! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). + ! For each level ilev, the 'base preconditioner' K(ilev) is stored in + ! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -531,10 +535,10 @@ contains ! ! For a description of the arguments see mld_zmlprec_aply. ! - ! A sketch of the algorithm implemented in this routine is provided below - ! (AV(ilev; sm_pr_) denotes the smoothed prolongator from level ilev to - ! level ilev-1, while AV(ilev; sm_pr_t_) denotes its transpose, i.e. the - ! corresponding restriction operator from level ilev-1 to level ilev). + ! A sketch of the algorithm implemented in this routine is provided below. + ! (P(ilev) denotes the smoothed prolongator from level ilev to level + ! ilev-1, while PT(ilev) denotes its transpose, i.e. the corresponding + ! restriction operator from level ilev-1 to level ilev). ! ! 1. X(1) = Xext ! @@ -547,7 +551,7 @@ contains ! 4. DO ilev=2, nlev ! ! ! Transfer the residual to the current (coarser) level. - ! X(ilev) = AV(ilev; sm_pr_t_)*TX(ilev-1) + ! X(ilev) = PT(ilev)*TX(ilev-1) ! ! ! Apply the base preconditioner at the current level. ! ! The sum over the subdomains is carried out in the @@ -564,7 +568,7 @@ contains ! 5. DO ilev=nlev-1,1,-1 ! ! ! Transfer Y(ilev+1) to the next finer level - ! Y(ilev) = Y(ilev) + AV(ilev+1; sm_pr_)*Y(ilev+1) + ! Y(ilev) = Y(ilev) + P(ilev+1)*Y(ilev+1) ! ! ENDDO ! @@ -680,7 +684,7 @@ contains goto 9999 end if - ! Apply prolongator transpose, i.e. restriction + ! Apply the prolongator transpose, i.e. the restriction call psb_map_X2Y(zone,mlprec_wrk(ilev-1)%tx,& & zzero,mlprec_wrk(ilev)%x2l,& & p%precv(ilev)%map,info,work=work) @@ -718,7 +722,7 @@ contains ! do ilev = nlev-1, 1, -1 ! - ! Apply prolongator + ! Apply the prolongator ! call psb_map_Y2X(zone,mlprec_wrk(ilev+1)%y2l,& & zone,mlprec_wrk(ilev)%y2l,& @@ -782,9 +786,11 @@ contains ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! - ! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', - ! each representing the part of the preconditioner associated to a certain level. - ! For each level ilev, the base preconditioner K(ilev) is stored in p%precv(ilev) + ! The multilevel preconditioner is regarded as an array of 'one-level' data structures, + ! each containing the part of the preconditioner associated to a certain level + ! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). + ! For each level ilev, the 'base preconditioner' K(ilev) is stored in + ! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -800,16 +806,16 @@ contains ! For a description of the arguments see mld_zmlprec_aply. ! ! A sketch of the algorithm implemented in this routine is provided below. - ! (AV(ilev; sm_pr_) denotes the smoothed prolongator from level ilev to - ! level ilev-1, while AV(ilev; sm_pr_t_) denotes its transpose, i.e. the - ! corresponding restriction operator from level ilev-1 to level ilev). + ! (P(ilev) denotes the smoothed prolongator from level ilev to level + ! ilev-1, while PT(ilev) denotes its transpose, i.e. the corresponding + ! restriction operator from level ilev-1 to level ilev). ! ! 1. X(1) = Xext ! ! 2. DO ilev=2, nlev ! ! ! Transfer X(ilev-1) to the next coarser level. - ! X(ilev) = AV(ilev; sm_pr_t_)*X(ilev-1) + ! X(ilev) = PT(ilev)*X(ilev-1) ! ! ENDDO ! @@ -819,7 +825,7 @@ contains ! 4. DO ilev=nlev-1,1,-1 ! ! ! Transfer Y(ilev+1) to the next finer level. - ! Y(ilev) = AV(ilev+1; sm_pr_)*Y(ilev+1) + ! Y(ilev) = P(ilev+1)*Y(ilev+1) ! ! ! Compute the residual at the current level and apply to it the ! ! base preconditioner. The sum over the subdomains is carried out @@ -926,7 +932,7 @@ contains goto 9999 end if - ! Apply prolongator transpose, i.e. restriction + ! Apply the prolongator transpose, i.e. the restriction call psb_map_X2Y(zone,mlprec_wrk(ilev-1)%x2l,& & zzero,mlprec_wrk(ilev)%x2l,& & p%precv(ilev)%map,info,work=work) @@ -979,7 +985,7 @@ contains & ' starting down sweep',ilev ! - ! Apply prolongator + ! Apply the prolongator ! call psb_map_Y2X(zone,mlprec_wrk(ilev+1)%y2l,& & zzero,mlprec_wrk(ilev)%y2l,& @@ -1069,9 +1075,11 @@ contains ! level where we might have a replicated index space) and each process takes care ! of one submatrix. ! - ! The multilevel preconditioner M is regarded as an array of 'one-level preconditioners', - ! each representing the part of the preconditioner associated to a certain level. - ! For each level ilev, the base preconditioner K(ilev) is stored in p%precv(ilev) + ! The multilevel preconditioner is regarded as an array of 'one-level' data structures, + ! each containing the part of the preconditioner associated to a certain level + ! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). + ! For each level ilev, the 'base preconditioner' K(ilev) is stored in + ! p%precv(ilev)%prec ! and is associated to a matrix A(ilev), obtained by 'tranferring' the original ! matrix A (i.e. the matrix to be preconditioned) to the level ilev, through smoothed ! aggregation. @@ -1088,9 +1096,9 @@ contains ! For a description of the arguments see mld_zmlprec_aply. ! ! A sketch of the algorithm implemented in this routine is provided below. - ! (AV(ilev; sm_pr_) denotes the smoothed prolongator from level ilev to - ! level ilev-1, while AV(ilev; sm_pr_t_) denotes its transpose, i.e. the - ! corresponding restriction operator from level ilev-1 to level ilev). + ! (P(ilev) denotes the smoothed prolongator from level ilev to level + ! ilev-1, while PT(ilev) denotes its transpose, i.e. the corresponding + ! restriction operator from level ilev-1 to level ilev). ! ! 1. X(1) = Xext ! @@ -1103,7 +1111,7 @@ contains ! 4. DO ilev=2, nlev ! ! ! Transfer the residual to the current (coarser) level - ! X(ilev) = AV(ilev; sm_pr_t)*TX(ilev-1) + ! X(ilev) = PT(ilev)*TX(ilev-1) ! ! ! Apply the base preconditioner at the current level. ! ! The sum over the subdomains is carried out in the @@ -1111,14 +1119,17 @@ contains ! Y(ilev) = (K(ilev)^(-1))*X(ilev) ! ! ! Compute the residual at the current level - ! TX(ilev) = (X(ilev)-A(ilev)*Y(ilev)) + ! ! (except for ilev=nlev) + ! if(ilev < nlev)then + ! TX(ilev) = (X(ilev)-A(ilev)*Y(ilev)) + ! endif ! ! ENDDO ! ! 5. DO ilev=NLEV-1,1,-1 ! ! ! Transfer Y(ilev+1) to the next finer level - ! Y(ilev) = Y(ilev) + AV(ilev+1; sm_pr_)*Y(ilev+1) + ! Y(ilev) = Y(ilev) + P(ilev+1)*Y(ilev+1) ! ! ! Compute the residual at the current level and apply to it the ! ! base preconditioner. The sum over the subdomains is carried out @@ -1237,7 +1248,7 @@ contains goto 9999 end if - ! Apply prolongator transpose, i.e. restriction + ! Apply the prolongator transpose, i.e. the restriction call psb_map_X2Y(zone,mlprec_wrk(ilev-1)%ty,& & zzero,mlprec_wrk(ilev)%x2l,& & p%precv(ilev)%map,info,work=work) @@ -1279,7 +1290,7 @@ contains do ilev=nlev-1, 1, -1 ! - ! Apply prolongator + ! Apply the prolongator ! call psb_map_Y2X(zone,mlprec_wrk(ilev+1)%y2l,& & zone,mlprec_wrk(ilev)%y2l,& diff --git a/mlprec/mld_zmlprec_bld.f90 b/mlprec/mld_zmlprec_bld.f90 index dc1d627b..61277604 100644 --- a/mlprec/mld_zmlprec_bld.f90 +++ b/mlprec/mld_zmlprec_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -45,10 +45,11 @@ ! This routine builds the preconditioner according to the requirements made by ! the user trough the subroutines mld_precinit and mld_precset. ! -! A multilevel preconditioner is regarded as an array of 'base preconditioners', -! each representing the part of the preconditioner associated to a certain level. -! The levels are numbered in increasing order starting from the finest one, i.e. -! level 1 is the finest level. +! A multilevel preconditioner is regarded as an array of 'one-level' data structures, +! each containing the part of the preconditioner associated to a certain level, +! (for more details see the description of mld_Tonelev_type in mld_prec_type.f90). +! The levels are numbered in increasing order starting from the finest one, i.e. +! level 1 is the finest level. No transfer operators are associated to level 1. ! ! ! Arguments: @@ -150,8 +151,8 @@ subroutine mld_zmlprec_bld(a,desc_a,p,info) if (iszv > 1) then ! - ! Build the base preconditioners corresponding to the remaining - ! levels + ! Build the matrix and the transfer operators corresponding + ! to the remaining levels ! ! ! Check on the iprcparm contents: they should be the same @@ -210,7 +211,8 @@ subroutine mld_zmlprec_bld(a,desc_a,p,info) & write(debug_unit,*) me,' ',trim(name),& & 'Calling mlprcbld at level ',i ! - ! Build the mapping between levels (i-1) and (i) + ! Build the mapping between levels i-1 and i and the matrix + ! at level i ! call init_baseprec_av(p%precv(i)%prec,info) if (info == 0) call mld_coarse_bld(p%precv(i-1)%base_a,& @@ -287,7 +289,9 @@ subroutine mld_zmlprec_bld(a,desc_a,p,info) end if do i=1, iszv - + ! + ! build the base preconditioner at level i + ! if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Calling mlprcbld at level ',i @@ -383,4 +387,3 @@ contains end subroutine check_coarse_lev end subroutine mld_zmlprec_bld - diff --git a/mlprec/mld_zprecaply.f90 b/mlprec/mld_zprecaply.f90 index 3b40308d..978c6ed0 100644 --- a/mlprec/mld_zprecaply.f90 +++ b/mlprec/mld_zprecaply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -56,9 +56,9 @@ ! The preconditioner data structure containing the local part ! of the preconditioner to be applied. ! x - complex(psb_dpk_), dimension(:), input. -! The local part of the vector X in Y := op(M^(-1)) * X. +! The local part of the vector X in Y = op(M^(-1)) * X. ! y - complex(psb_dpk_), dimension(:), output. -! The local part of the vector Y in Y := op(M^(-1)) * X. +! The local part of the vector Y in Y = op(M^(-1)) * X. ! desc_data - type(psb_desc_type), input. ! The communication descriptor associated to the matrix to be ! preconditioned. @@ -126,14 +126,20 @@ subroutine mld_zprecaply(prec,x,y,desc_data,info,trans,work) call psb_errpush(info,name) goto 9999 end if - if (size(prec%precv) >1) then + if (size(prec%precv) >1) then + ! + ! Number of levels > 1: apply the multilevel preconditioner + ! call mld_mlprec_aply(zone,prec,x,zzero,y,desc_data,trans_,work_,info) if(info /= 0) then call psb_errpush(4010,name,a_err='mld_zmlprec_aply') goto 9999 end if - else if (size(prec%precv) == 1) then + else if (size(prec%precv) == 1) then + ! + ! Number of levels = 1: apply the base preconditioner + ! call mld_baseprec_aply(zone,prec%precv(1)%prec,x,zzero,y,desc_data,trans_, work_,info) else info = 4013 diff --git a/mlprec/mld_zprecbld.f90 b/mlprec/mld_zprecbld.f90 index cd6f1e67..c1705238 100644 --- a/mlprec/mld_zprecbld.f90 +++ b/mlprec/mld_zprecbld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -43,12 +43,7 @@ ! Contains: subroutine init_baseprec_av ! ! This routine builds the preconditioner according to the requirements made by -! the user trough the subroutines mld_precinit and mld_precset. -! -! A multilevel preconditioner is regarded as an array of 'base preconditioners', -! each representing the part of the preconditioner associated to a certain level. -! The levels are numbered in increasing order starting from the finest one, i.e. -! level 1 is the finest level. +! the user through the subroutines mld_precinit and mld_precset. ! ! ! Arguments: @@ -147,6 +142,9 @@ subroutine mld_zprecbld(a,desc_a,p,info) goto 9999 end if + ! + ! Number of levels = 1 + ! if (iszv == 1) then ! ! Check on the iprcparm contents: they should be the same @@ -160,7 +158,7 @@ subroutine mld_zprecbld(a,desc_a,p,info) p%precv(1)%iprcparm(:) = ipv(:) end if ! - ! Finest level first; remember to fix base_a and base_desc + ! Remember to fix base_a and base_desc ! call init_baseprec_av(p%precv(1)%prec,info) p%precv(1)%base_a => a @@ -170,6 +168,9 @@ subroutine mld_zprecbld(a,desc_a,p,info) call psb_errpush(4001,name,a_err='Base level precbuild.') goto 9999 end if + ! + ! Build the base preconditioner + ! select case(p%precv(1)%prec%iprcparm(mld_sub_solve_)) case(mld_ilu_n_,mld_milu_n_) call mld_check_def(p%precv(1)%prec%iprcparm(mld_sub_fillin_),& @@ -189,8 +190,13 @@ subroutine mld_zprecbld(a,desc_a,p,info) goto 9999 endif - else if (iszv > 1) then - + ! + ! Number of levels > 1 + ! + else if (iszv > 1) then + ! + ! Build the multilevel preconditioner + ! call mld_mlprec_bld(a,desc_a,p,info) if (info /= 0) then diff --git a/mlprec/mld_zprecinit.F90 b/mlprec/mld_zprecinit.F90 index c3c3bd02..043b8245 100644 --- a/mlprec/mld_zprecinit.F90 +++ b/mlprec/mld_zprecinit.F90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -252,6 +252,7 @@ subroutine mld_zprecinit(p,ptype,info,nlev) p%precv(ilev_)%iprcparm(mld_smoother_pos_) = mld_post_smooth_ p%precv(ilev_)%iprcparm(mld_aggr_omega_alg_) = mld_eig_est_ p%precv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_ + p%precv(ilev_)%iprcparm(mld_aggr_filter_) = mld_no_filter_mat_ p%precv(ilev_)%rprcparm(mld_aggr_omega_val_) = dzero p%precv(ilev_)%rprcparm(mld_aggr_thresh_) = dzero end do @@ -287,6 +288,7 @@ subroutine mld_zprecinit(p,ptype,info,nlev) p%precv(ilev_)%iprcparm(mld_smoother_pos_) = mld_post_smooth_ p%precv(ilev_)%iprcparm(mld_aggr_omega_alg_) = mld_eig_est_ p%precv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_ + p%precv(ilev_)%iprcparm(mld_aggr_filter_) = mld_no_filter_mat_ p%precv(ilev_)%rprcparm(mld_aggr_omega_val_) = dzero p%precv(ilev_)%rprcparm(mld_aggr_thresh_) = dzero diff --git a/mlprec/mld_zprecset.f90 b/mlprec/mld_zprecset.f90 index 957a8216..03961945 100644 --- a/mlprec/mld_zprecset.f90 +++ b/mlprec/mld_zprecset.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -57,10 +57,10 @@ ! what - integer, input. ! The number identifying the parameter to be set. ! A mnemonic constant has been associated to each of these -! numbers, as reported in MLD2P4 user's guide. +! numbers, as reported in the MLD2P4 User's and Reference Guide. ! val - integer, input. ! The value of the parameter to be set. The list of allowed -! values is reported in MLD2P4 user's guide. +! values is reported in the MLD2P4 User's and Reference Guide. ! info - integer, output. ! Error code. ! ilev - integer, optional, input. @@ -91,7 +91,7 @@ subroutine mld_zprecseti(p,what,val,info,ilev) integer, intent(out) :: info integer, optional, intent(in) :: ilev -! Local variables + ! Local variables integer :: ilev_, nlev_ character(len=*), parameter :: name='mld_precseti' @@ -303,7 +303,6 @@ end subroutine mld_zprecseti ! ! Subroutine: mld_zprecsetc ! Version: complex -! Contains: mld_stringval ! ! This routine sets the character parameters defining the preconditioner. More ! precisely, the character parameter identified by 'what' is assigned the value @@ -321,10 +320,10 @@ end subroutine mld_zprecseti ! what - integer, input. ! The number identifying the parameter to be set. ! A mnemonic constant has been associated to each of these -! numbers, as reported in MLD2P4 user's guide. +! numbers, as reported in the MLD2P4 User's and Reference Guide. ! string - character(len=*), input. ! The value of the parameter to be set. The list of allowed -! values is reported in MLD2P4 user's guide. +! values is reported in the MLD2P4 User's and Reference Guide. ! info - integer, output. ! Error code. ! ilev - integer, optional, input. @@ -355,9 +354,9 @@ subroutine mld_zprecsetc(p,what,string,info,ilev) integer, intent(out) :: info integer, optional, intent(in) :: ilev -! Local variables + ! Local variables integer :: ilev_, nlev_,val - character(len=*), parameter :: name='mld_precseti' + character(len=*), parameter :: name='mld_precsetc' info = 0 @@ -412,10 +411,10 @@ end subroutine mld_zprecsetc ! what - integer, input. ! The number identifying the parameter to be set. ! A mnemonic constant has been associated to each of these -! numbers, as reported in MLD2P4 user's guide. +! numbers, as reported in the MLD2P4 User's and Reference Guide. ! val - real(psb_dpk_), input. ! The value of the parameter to be set. The list of allowed -! values is reported in MLD2P4 user's guide. +! values is reported in the MLD2P4 User's and Reference Guide. ! info - integer, output. ! Error code. ! ilev - integer, optional, input. @@ -448,7 +447,7 @@ subroutine mld_zprecsetr(p,what,val,info,ilev) ! Local variables integer :: ilev_,nlev_ - character(len=*), parameter :: name='mld_precsetd' + character(len=*), parameter :: name='mld_precsetr' info = 0 diff --git a/mlprec/mld_zslu_bld.f90 b/mlprec/mld_zslu_bld.f90 index be16a512..d67205d2 100644 --- a/mlprec/mld_zslu_bld.f90 +++ b/mlprec/mld_zslu_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -44,7 +44,7 @@ ! This routine computes the LU factorization of the local part of the matrix ! stored into a, by using SuperLU. ! -! The matrix to be factorized is +! The local matrix to be factorized is ! - either a submatrix of the distributed matrix corresponding to any level ! of a multilevel preconditioner, and its factorization is used to build ! the 'base preconditioner' corresponding to that level, diff --git a/mlprec/mld_zslu_interface.c b/mlprec/mld_zslu_interface.c index 4b14cf23..39304401 100644 --- a/mlprec/mld_zslu_interface.c +++ b/mlprec/mld_zslu_interface.c @@ -1,12 +1,12 @@ /* * - * MLD2P4 version 1.0 + * MLD2P4 version 1.1 * MultiLevel Domain Decomposition Parallel Preconditioners Package - * based on PSBLAS (Parallel Sparse BLAS version 2.2) + * based on PSBLAS (Parallel Sparse BLAS version 2.3.1) * - * (C) Copyright 2008 + * (C) Copyright 2008,2009 * - * Salvatore Filippone University of Rome Tor Vergata + * Salvatore Filippone University of Rome Tor Vergata * Alfredo Buttari University of Rome Tor Vergata * Pasqua D'Ambra ICAR-CNR, Naples * Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_zslud_bld.f90 b/mlprec/mld_zslud_bld.f90 index a1f0a61c..c9775854 100644 --- a/mlprec/mld_zslud_bld.f90 +++ b/mlprec/mld_zslud_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -44,7 +44,7 @@ ! This routine computes the LU factorization of of a distributed matrix, ! by using SuperLU_DIST. ! -! The matrix to be factorized is the coarsest level matrix of a multilevel +! The matrix to be factorized is the coarsest-level matrix of a multilevel ! preconditioner and is distributed among the processes. Its factorization ! is used to build the 'base preconditioner' corresponding to the coarsest ! level. diff --git a/mlprec/mld_zslud_interface.c b/mlprec/mld_zslud_interface.c index 21d27671..a02a03fc 100644 --- a/mlprec/mld_zslud_interface.c +++ b/mlprec/mld_zslud_interface.c @@ -1,12 +1,12 @@ /* * - * MLD2P4 version 1.0 + * MLD2P4 version 1.1 * MultiLevel Domain Decomposition Parallel Preconditioners Package - * based on PSBLAS (Parallel Sparse BLAS version 2.2) + * based on PSBLAS (Parallel Sparse BLAS version 2.3.1) * - * (C) Copyright 2008 + * (C) Copyright 2008,2009 * - * Salvatore Filippone University of Rome Tor Vergata + * Salvatore Filippone University of Rome Tor Vergata * Alfredo Buttari University of Rome Tor Vergata * Pasqua D'Ambra ICAR-CNR, Naples * Daniela di Serafino Second University of Naples @@ -94,7 +94,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define HANDLE_SIZE 8 /* kind of integer to hold a pointer. Use int. This might need to be changed on 64-bit systems. */ -#ifdef LargeFptr +#ifdef Ptr64Bits typedef long long fptr; #else typedef int fptr; /* 32-bit by default */ diff --git a/mlprec/mld_zsp_renum.f90 b/mlprec/mld_zsp_renum.f90 index 393e4133..c04f945b 100644 --- a/mlprec/mld_zsp_renum.f90 +++ b/mlprec/mld_zsp_renum.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/mlprec/mld_zsub_aply.f90 b/mlprec/mld_zsub_aply.f90 index ab77149f..a688a9ed 100644 --- a/mlprec/mld_zsub_aply.f90 +++ b/mlprec/mld_zsub_aply.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -94,17 +94,18 @@ ! preconditioner. ! ! Tasks 1, 3 and 4 may be selected when prec%iprcparm(mld_smoother_sweeps_) = 1, -! while task 2 is selected when prec%iprcparm(mld_smoother_sweeps_) > 1. Furthermore -! Tasks 1, 2 and 3 may be performed when the matrix A is -! distributed among the processes (prec%iprcparm(mld_coarse_mat_) = mld_distr_mat_), -! while task 4 may be performed when A is replicated on the processes -! (prec%iprcparm(mld_coarse_mat_) = mld_repl_mat_). Note that the matrix A is -! distributed among the processes at each level of the multilevel preconditioner, -! except the coarsest one, where it may be either distributed or replicated on -! the processes. Tasks 2, 3 and 4 are performed only at the coarsest level. -! Note also that this routine manages implicitly the fact that -! the matrix is distributed or replicated, i.e. it does not make any explicit -! reference to the value of prec%iprcparm(mld_coarse_mat_). +! while task 2 is selected when prec%iprcparm(mld_smoother_sweeps_) > 1. +! Furthermore, tasks 1, 2 and 3 may be performed when the matrix A is distributed +! among the processes (p%precv(ilev)%iprcparm(mld_coarse_mat_) = mld_distr_mat_, +! where p%precv(ilev) is the one-level data structure associated to the level +! ilev at which mld_sub_aply is called), while task 4 may be performed when A +! is replicated on the processes (p%precv(ilev)%iprcparm(mld_coarse_mat_) = +! mld_repl_mat_). Note that the matrix A is distributed among the processes +! at each level of the multilevel preconditioner, except the coarsest one, where +! it may be either distributed or replicated on the processes. Tasks 2, 3 and 4 +! are performed only at the coarsest level. Note also that this routine manages +! implicitly the fact that the matrix is distributed or replicated, i.e. it does not +! make any explicit reference to the value of p%precv(ilev)%iprcparm(mld_coarse_mat_). ! ! Arguments: ! @@ -141,14 +142,14 @@ subroutine mld_zsub_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) implicit none ! Arguments - type(psb_desc_type), intent(in) :: desc_data - type(mld_zbaseprec_type), intent(in) :: prec + type(psb_desc_type), intent(in) :: desc_data + type(mld_zbaseprec_type), intent(in) :: prec complex(psb_dpk_),intent(in) :: x(:) complex(psb_dpk_),intent(inout) :: y(:) complex(psb_dpk_),intent(in) :: alpha,beta - character(len=1), intent(in) :: trans + character(len=1), intent(in) :: trans complex(psb_dpk_),target, intent(inout) :: work(:) - integer, intent(out) :: info + integer, intent(out) :: info ! Local variables integer :: n_row,n_col diff --git a/mlprec/mld_zsub_solve.f90 b/mlprec/mld_zsub_solve.f90 index ab0c9d67..ffeeaa27 100644 --- a/mlprec/mld_zsub_solve.f90 +++ b/mlprec/mld_zsub_solve.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -60,8 +60,8 @@ ! ! A*Y = X, ! -! by using the L and U factors computed with an ILU (incomplete LU) factorization -! of A. In this case K = L*U ~ A, alpha = 1 and beta = 0. The factors L and U +! by using the L and U factors computed with an ILU factorization of A. +! In this case K = L*U ~ A, alpha = 1 and beta = 0. The factors L and U ! (and the matrix A) are either distributed and block-diagonal or replicated. ! ! 2. Solution of a linear system diff --git a/mlprec/mld_zumf_bld.f90 b/mlprec/mld_zumf_bld.f90 index e7efa592..8a066c5e 100644 --- a/mlprec/mld_zumf_bld.f90 +++ b/mlprec/mld_zumf_bld.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples @@ -44,7 +44,7 @@ ! This routine computes the LU factorization of the local part of the matrix ! stored into a, by using UMFPACK. ! -! The matrix to be factorized is +! The local matrix to be factorized is ! - either a submatrix of the distributed matrix corresponding to any level ! of a multilevel preconditioner, and its factorization is used to build ! the 'base preconditioner' corresponding to that level, diff --git a/mlprec/mld_zumf_interface.c b/mlprec/mld_zumf_interface.c index 9ba1f667..7838789c 100644 --- a/mlprec/mld_zumf_interface.c +++ b/mlprec/mld_zumf_interface.c @@ -1,12 +1,12 @@ /* * - * MLD2P4 version 1.0 + * MLD2P4 version 1.1 * MultiLevel Domain Decomposition Parallel Preconditioners Package - * based on PSBLAS (Parallel Sparse BLAS version 2.2) + * based on PSBLAS (Parallel Sparse BLAS version 2.3.1) * - * (C) Copyright 2008 + * (C) Copyright 2008,2009 * - * Salvatore Filippone University of Rome Tor Vergata + * Salvatore Filippone University of Rome Tor Vergata * Alfredo Buttari University of Rome Tor Vergata * Pasqua D'Ambra ICAR-CNR, Naples * Daniela di Serafino Second University of Naples diff --git a/tests/fileread/cf_sample.f90 b/tests/fileread/cf_sample.f90 index fd6b5f47..ad885272 100644 --- a/tests/fileread/cf_sample.f90 +++ b/tests/fileread/cf_sample.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/tests/fileread/data_input.f90 b/tests/fileread/data_input.f90 index 9a3c145b..19349aee 100644 --- a/tests/fileread/data_input.f90 +++ b/tests/fileread/data_input.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/tests/fileread/df_sample.f90 b/tests/fileread/df_sample.f90 index 939c1121..4a7a2766 100644 --- a/tests/fileread/df_sample.f90 +++ b/tests/fileread/df_sample.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/tests/fileread/runs/dfs.inp b/tests/fileread/runs/dfs.inp index 7eb92eb7..53ffd983 100644 --- a/tests/fileread/runs/dfs.inp +++ b/tests/fileread/runs/dfs.inp @@ -1,23 +1,23 @@ -thm200x120.mtx !young1r.mtx ! This matrix (and others) from: http://math.nist.gov/MatrixMarket/ or +fidap011.rua !young1r.mtx ! This matrix (and others) from: http://math.nist.gov/MatrixMarket/ or NONE ! rhs | http://www.cise.ufl.edu/research/sparse/matrices/index.html -MM ! File format: MM (Matrix Market) HB (Harwell-Boeing). +HB ! File format: MM (Matrix Market) HB (Harwell-Boeing). BICGSTAB ! Iterative method: BiCGSTAB BiCG CGS RGMRES BiCGSTABL CG CSR ! Storage format: CSR COO JAD -0 ! IPART (partition method): 0 (block) 2 (graph, with Metis) +2 ! IPART (partition method): 0 (block) 2 (graph, with Metis) 2 ! ISTOPC 01000 ! ITMAX --1 ! ITRACE +02 ! ITRACE 30 ! IRST (restart for RGMRES and BiCGSTABL) -1.d-5 ! EPS -3L-M-RAS-I-D4 ! Longer descriptive name for preconditioner (up to 20 chars) -ML ! Preconditioner type: NONE DIAG BJAC AS ML -0 ! Number of overlap layers for AS preconditioner +1.d-6 ! EPS +2L-M-RAS-U-D4 ! Longer descriptive name for preconditioner (up to 20 chars) +AS ! Preconditioner type: NONE DIAG BJAC AS ML +1 ! Number of overlap layers for AS preconditioner HALO ! AS restriction operator: NONE HALO NONE ! AS prolongation operator: NONE SUM AVG -ILU ! AS subdomain solver: ILU MILU ILUT UMF SLU +UMF ! AS subdomain solver: ILU MILU ILUT UMF SLU 1 ! Fill level P for ILU(P) and ILU(T,P) 1.d-4 ! Threshold T for ILU(T,P) -3 ! Number of levels in a multilevel preconditioner +2 ! Number of levels in a multilevel preconditioner SMOOTH ! Type of aggregation: SMOOTH RAW DEC ! Type of aggregation: DEC MULT ! Type of multilevel correction: ADD MULT diff --git a/tests/fileread/sf_sample.f90 b/tests/fileread/sf_sample.f90 index d39243ae..c0cd937f 100644 --- a/tests/fileread/sf_sample.f90 +++ b/tests/fileread/sf_sample.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/tests/fileread/zf_sample.f90 b/tests/fileread/zf_sample.f90 index d8951322..f9506886 100644 --- a/tests/fileread/zf_sample.f90 +++ b/tests/fileread/zf_sample.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/tests/pdegen/data_input.f90 b/tests/pdegen/data_input.f90 index 9a3c145b..19349aee 100644 --- a/tests/pdegen/data_input.f90 +++ b/tests/pdegen/data_input.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/tests/pdegen/ppde.f90 b/tests/pdegen/ppde.f90 index fd2d7464..85ca60e8 100644 --- a/tests/pdegen/ppde.f90 +++ b/tests/pdegen/ppde.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples diff --git a/tests/pdegen/runs/ppde.inp b/tests/pdegen/runs/ppde.inp index f82525b6..a08c9129 100644 --- a/tests/pdegen/runs/ppde.inp +++ b/tests/pdegen/runs/ppde.inp @@ -1,28 +1,28 @@ BICGSTAB ! Iterative method: BiCGSTAB BiCG CGS RGMRES BiCGSTABL CG CSR ! Storage format CSR COO JAD -30 ! IDIM; domain size is idim**3 +90 ! IDIM; domain size is idim**3 2 ! ISTOPC 00800 ! ITMAX 01 ! ITRACE 30 ! IRST (restart for RGMRES and BiCGSTABL) 1.d-6 ! EPS -3L-M-RAS-S-D4 ! Longer descriptive name for preconditioner (up to 20 chars) +3L-M-RAS-I-D4 ! Longer descriptive name for preconditioner (up to 20 chars) ML ! Preconditioner NONE DIAG BJAC AS ML 0 ! Number of overlap layers for AS preconditioner at finest level HALO ! Restriction operator NONE HALO NONE ! Prolongation operator NONE SUM AVG ILU ! Subdomain solver ILU MILU ILUT UMF SLU -1 ! Level-set N for ILU(N) +0 ! Level-set N for ILU(N) 1.d-4 ! Threshold T for ILU(T,P) -3 ! Number of levels in a multilevel preconditioner +4 ! Number of levels in a multilevel preconditioner SMOOTH ! Kind of aggregation: RAW, SMOOTH DEC ! Type of aggregation DEC SYMDEC GLB MULT ! Type of multilevel correction: ADD MULT POST ! Side of multiplicative correction PRE POST BOTH (ignored for ADD) DIST ! Coarse level: matrix distribution DIST REPL BJAC ! Coarse level: solver BJAC UMF SLU SLUDIST -UMF ! Coarse level: subsolver ILU UMF SLU SLUDIST -0 ! Coarse level: Level-set N for ILU(N) +ILU ! Coarse level: subsolver ILU UMF SLU SLUDIST +1 ! Coarse level: Level-set N for ILU(N) 1.d-4 ! Coarse level: Threshold T for ILU(T,P) 4 ! Coarse level: Number of Jacobi sweeps 0.10d0 ! Smoother Aggregation Threshold: >= 0.0 diff --git a/tests/pdegen/spde.f90 b/tests/pdegen/spde.f90 index 0caf2e9f..3c4d363b 100644 --- a/tests/pdegen/spde.f90 +++ b/tests/pdegen/spde.f90 @@ -1,12 +1,12 @@ !!$ !!$ -!!$ MLD2P4 version 1.0 +!!$ MLD2P4 version 1.1 !!$ MultiLevel Domain Decomposition Parallel Preconditioners Package -!!$ based on PSBLAS (Parallel Sparse BLAS version 2.2) +!!$ based on PSBLAS (Parallel Sparse BLAS version 2.3.1) !!$ -!!$ (C) Copyright 2008 +!!$ (C) Copyright 2008,2009 !!$ -!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Salvatore Filippone University of Rome Tor Vergata !!$ Alfredo Buttari University of Rome Tor Vergata !!$ Pasqua D'Ambra ICAR-CNR, Naples !!$ Daniela di Serafino Second University of Naples