From 5e240088bc59223de1f1714c5bc2639c5c7503f7 Mon Sep 17 00:00:00 2001 From: Manuel Guenther <manuel.guenther@idiap.ch> Date: Mon, 11 May 2015 17:02:11 +0200 Subject: [PATCH] Added parallel ISV; corrected test data for UBM training --- bob/bio/gmm/algorithm/GMM.py | 20 +- bob/bio/gmm/algorithm/ISV.py | 19 +- bob/bio/gmm/script/verify_gmm.py | 48 +- bob/bio/gmm/script/verify_isv.py | 180 ++ bob/bio/gmm/test/data/gmm_model.hdf5 | Bin 11176 -> 11176 bytes bob/bio/gmm/test/data/gmm_projected.hdf5 | Bin 5280 -> 5280 bytes bob/bio/gmm/test/data/gmm_projector.hdf5 | Bin 11176 -> 11176 bytes bob/bio/gmm/test/data/isv_model.hdf5 | Bin 2864 -> 2864 bytes bob/bio/gmm/test/data/isv_projected.hdf5 | Bin 7280 -> 7280 bytes bob/bio/gmm/test/data/isv_projector.hdf5 | Bin 20904 -> 20904 bytes bob/bio/gmm/test/data/jfa_enroller.hdf5 | Bin 5744 -> 5744 bytes bob/bio/gmm/test/data/jfa_model.hdf5 | Bin 2880 -> 2880 bytes bob/bio/gmm/test/data/scores-nonorm-isv-dev | 2000 +++++++++++++++++++ bob/bio/gmm/test/data/scores-ztnorm-isv-dev | 2000 +++++++++++++++++++ bob/bio/gmm/test/test_algorithms.py | 8 +- bob/bio/gmm/test/test_scripts.py | 56 +- bob/bio/gmm/tools/__init__.py | 2 + bob/bio/gmm/tools/command_line.py | 33 +- bob/bio/gmm/tools/gmm.py | 4 +- bob/bio/gmm/tools/isv.py | 55 + bob/bio/gmm/tools/utils.py | 47 + setup.py | 1 + 22 files changed, 4376 insertions(+), 97 deletions(-) create mode 100644 bob/bio/gmm/script/verify_isv.py create mode 100644 bob/bio/gmm/test/data/scores-nonorm-isv-dev create mode 100644 bob/bio/gmm/test/data/scores-ztnorm-isv-dev create mode 100644 bob/bio/gmm/tools/isv.py create mode 100644 bob/bio/gmm/tools/utils.py diff --git a/bob/bio/gmm/algorithm/GMM.py b/bob/bio/gmm/algorithm/GMM.py index fc94000..d412abb 100644 --- a/bob/bio/gmm/algorithm/GMM.py +++ b/bob/bio/gmm/algorithm/GMM.py @@ -98,7 +98,7 @@ class GMM (Algorithm): ####################################################### ################ UBM training ######################### - def _train_projector_using_array(self, array): + def train_ubm(self, array): logger.debug(" .... Training with %d feature vectors", array.shape[0]) @@ -112,7 +112,7 @@ class GMM (Algorithm): # Trains using the KMeansTrainer logger.info(" -> Training K-Means") - bob.learn.em.train(self.kmeans_trainer, kmeans, array, self.kmeans_training_iterations, self.training_threshold, bob.core.random.mt19937(self.init_seed)) + bob.learn.em.train(self.kmeans_trainer, kmeans, array, self.kmeans_training_iterations, self.training_threshold, self.rng) variances, weights = kmeans.get_variances_and_weights_for_each_cluster(array) means = kmeans.means @@ -125,10 +125,10 @@ class GMM (Algorithm): # Trains the GMM logger.info(" -> Training GMM") - bob.learn.em.train(self.ubm_trainer, self.ubm, array, self.gmm_training_iterations, self.training_threshold, bob.core.random.mt19937(self.init_seed)) + bob.learn.em.train(self.ubm_trainer, self.ubm, array, self.gmm_training_iterations, self.training_threshold, self.rng) - def _save_projector(self, projector_file): + def save_ubm(self, projector_file): """Save projector to file""" # Saves the UBM to file logger.debug(" .... Saving model to file '%s'", projector_file) @@ -144,9 +144,9 @@ class GMM (Algorithm): # Loads the data into an array array = numpy.vstack(train_features) - self._train_projector_using_array(array) + self.train_ubm(array) - self._save_projector(projector_file) + self.save_ubm(projector_file) ####################################################### @@ -169,7 +169,7 @@ class GMM (Algorithm): self.rng = bob.core.random.mt19937(self.init_seed) - def _project_using_array(self, array): + def project_ubm(self, array): logger.debug(" .... Projecting %d feature vectors" % array.shape[0]) # Accumulates statistics gmm_stats = bob.learn.em.GMMStats(self.ubm.shape[0], self.ubm.shape[1]) @@ -182,7 +182,7 @@ class GMM (Algorithm): def project(self, feature): """Computes GMM statistics against a UBM, given an input 2D numpy.ndarray of feature vectors""" self._check_feature(feature) - return self._project_using_array(feature) + return self.project_ubm(feature) def read_gmm_stats(self, gmm_stats_file): @@ -193,7 +193,7 @@ class GMM (Algorithm): """Read the type of features that we require, namely GMM_Stats""" return self.read_gmm_stats(feature_file) - def _enroll_using_array(self, array): + def enroll_gmm(self, array): logger.debug(" .... Enrolling with %d feature vectors", array.shape[0]) gmm = bob.learn.em.GMMMachine(self.ubm) @@ -206,7 +206,7 @@ class GMM (Algorithm): [self._check_feature(feature) for feature in feature_arrays] array = numpy.vstack(feature_arrays) # Use the array to train a GMM and return it - return self._enroll_using_array(array) + return self.enroll_gmm(array) ###################################################### diff --git a/bob/bio/gmm/algorithm/ISV.py b/bob/bio/gmm/algorithm/ISV.py index bcd28de..e0cf0ea 100644 --- a/bob/bio/gmm/algorithm/ISV.py +++ b/bob/bio/gmm/algorithm/ISV.py @@ -56,15 +56,15 @@ class ISV (GMM): self.subspace_dimension_of_u = subspace_dimension_of_u self.isv_training_iterations = isv_training_iterations self.isv_enroll_iterations = isv_enroll_iterations - self.trainer = bob.learn.em.ISVTrainer(self.relevance_factor) + self.isv_trainer = bob.learn.em.ISVTrainer(self.relevance_factor) - def _train_isv(self, data): + def train_isv(self, data): """Train the ISV model given a dataset""" logger.info(" -> Training ISV enroller") self.isvbase = bob.learn.em.ISVBase(self.ubm, self.subspace_dimension_of_u) # train ISV model - bob.learn.em.train(self.trainer, self.isvbase, data, self.isv_training_iterations, rng=self.rng) + bob.learn.em.train(self.isv_trainer, self.isvbase, data, self.isv_training_iterations, rng=self.rng) def train_projector(self, train_features, projector_file): @@ -72,21 +72,16 @@ class ISV (GMM): [self._check_feature(feature) for client in train_features for feature in client] data1 = numpy.vstack([feature for client in train_features for feature in client]) - GMM._train_projector_using_array(self, data1) + self.train_ubm(data1) # to save some memory, we might want to delete these data del data1 # project training data logger.info(" -> Projecting training data") - data = [] - for client_features in train_features: - list = [] - for feature in client_features: - list.append(GMM.project(self, feature)) - data.append(list) + data = [[self.project_ubm(feature) for feature in client] for client in train_features] # train ISV - self._train_isv(data) + self.train_isv(data) # Save the ISV base AND the UBM into the same file self.save_projector(projector_file) @@ -164,7 +159,7 @@ class ISV (GMM): for feature in enroll_features: assert isinstance(feature, bob.learn.em.GMMStats) machine = bob.learn.em.ISVMachine(self.isvbase) - self.trainer.enroll(machine, enroll_features, self.isv_enroll_iterations) + self.isv_trainer.enroll(machine, enroll_features, self.isv_enroll_iterations) # return the resulting gmm return machine diff --git a/bob/bio/gmm/script/verify_gmm.py b/bob/bio/gmm/script/verify_gmm.py index f04d228..830f07e 100644 --- a/bob/bio/gmm/script/verify_gmm.py +++ b/bob/bio/gmm/script/verify_gmm.py @@ -128,52 +128,6 @@ def add_gmm_jobs(args, job_ids, deps, submitter): -def add_jobs(args, submitter): - """Adds all (desired) jobs of the tool chain to the grid, or to the local list to be executed.""" - - assert args.grid is not None - - # Here, we use the default bob.bio.base add_jobs function, but intercept it for adding the training - SKIPS = ['preprocessing', 'extractor_training', 'extraction', 'projector_training', 'projection', 'enroller_training', 'enrollment', 'score_computation', 'concatenation', 'calibration'] - original_skips = {key : args.__dict__["skip_%s" % key] for key in SKIPS} - - # first, submit preprocessing and feature extraction; skip all others - for key in SKIPS[3:]: - setattr(args, "skip_%s" % key, True) - - job_ids = bob.bio.base.script.verify.add_jobs(args, submitter) - - for key in SKIPS[3:]: - setattr(args, "skip_%s" % key, original_skips[key]) - - # reset skips - args.skip_preprocessing = original_skips['preprocessing'] - args.skip_extractor_training = original_skips['extractor_training'] - args.skip_extraction = original_skips['extraction'] - - # if there are any external dependencies, we need to respect them - deps = args.external_dependencies[:] - # also, we depend on all previous steps - for n in ['preprocessing', 'extractor-training', 'extraction']: - if n in job_ids: - deps.append(job_ids[n]) - - # now, add our jobs - job_ids, deps = add_gmm_jobs(args, job_ids, deps, submitter) - - # alright, finish the remaining bits - for key in SKIPS[:4]: - setattr(args, "skip_%s" % key, True) - - args.external_dependencies = deps - job_ids.update(bob.bio.base.script.verify.add_jobs(args, submitter)) - - # alright, finish the remaining bits - for key in SKIPS[:4]: - setattr(args, "skip_%s" % key, original_skips[key]) - - return job_ids - def execute(args): """Run the desired job of the tool chain that is specified on command line. @@ -267,7 +221,7 @@ def verify(args, command_line_parameters, external_fake_job_id = 0): else: # add jobs submitter = base_tools.GridSubmission(args, command_line_parameters, executable = 'verify_gmm.py', first_fake_job_id = 0) if args.grid else None - retval = add_jobs(args, submitter) + retval = tools.add_jobs(args, submitter, local_job_adder = add_gmm_jobs) base_tools.write_info(args, command_line_parameters) if args.grid.is_local() and args.run_local_scheduler: diff --git a/bob/bio/gmm/script/verify_isv.py b/bob/bio/gmm/script/verify_isv.py new file mode 100644 index 0000000..b01d15a --- /dev/null +++ b/bob/bio/gmm/script/verify_isv.py @@ -0,0 +1,180 @@ +#!/usr/bin/env python +# vim: set fileencoding=utf-8 : +# Manuel Guenther <Manuel.Guenther@idiap.ch> +from __future__ import print_function + +import sys +import argparse + +import logging +logger = logging.getLogger("bob.bio.gmm") + +import bob.bio.base +from .. import tools, algorithm +from bob.bio.base import tools as base_tools + + +def parse_arguments(command_line_parameters, exclude_resources_from = []): + """This function parses the given options (which by default are the command line options). If exclude_resources_from is specified (as a list), the resources from the given packages are not listed in the help message.""" + # set up command line parser + parsers = base_tools.command_line_parser(exclude_resources_from = exclude_resources_from) + + # add GMM-related options + tools.add_parallel_gmm_options(parsers, sub_module = 'isv') + + # override some parameters + parsers['config'].add_argument('-g', '--grid', metavar = 'x', nargs = '+', required=True, + help = 'Configuration for the grid setup; required for the parallel execution script.') + + parsers['config'].add_argument('-a', '--algorithm', metavar = 'x', nargs = '+', default = ['gmm'], + help = 'Face recognition; only GMM-related algorithms are allowed') + + + # Add sub-tasks that can be executed by this script + parser = parsers['main'] + parser.add_argument('--sub-task', + choices = ('preprocess', 'train-extractor', 'extract', 'normalize-features', 'kmeans-init', 'kmeans-e-step', 'kmeans-m-step', 'gmm-init', 'gmm-e-step', 'gmm-m-step', 'gmm-project', 'isv-train', 'project', 'enroll', 'compute-scores', 'concatenate'), + help = argparse.SUPPRESS) #'Executes a subtask (FOR INTERNAL USE ONLY!!!)' + parser.add_argument('--iteration', type = int, + help = argparse.SUPPRESS) #'Which type of models to generate (Normal or TModels)' + parser.add_argument('--model-type', choices = ['N', 'T'], + help = argparse.SUPPRESS) #'Which type of models to generate (Normal or TModels)' + parser.add_argument('--score-type', choices = ['A', 'B', 'C', 'D', 'Z'], + help = argparse.SUPPRESS) #'The type of scores that should be computed' + parser.add_argument('--group', + help = argparse.SUPPRESS) #'The group for which the current action should be performed' + + # now that we have set up everything, get the command line arguments + args = base_tools.initialize(parsers, command_line_parameters, + skips = ['preprocessing', 'extractor-training', 'extraction', 'normalization', 'kmeans', 'gmm', 'isv', 'projection', 'enroller-training', 'enrollment', 'score-computation', 'concatenation', 'calibration'] + ) + + args.skip_projector_training = True + + # and add the GMM-related parameters + tools.initialize_parallel_gmm(args, sub_module = 'isv') + + # assert that the algorithm is a GMM + if args.algorithm.__class__ != algorithm.ISV: + raise ValueError("The given algorithm %s is not a (pure) ISV algorithm" % type(args.algorithm)) + + return args + +from .verify_gmm import add_gmm_jobs + +def add_isv_jobs(args, job_ids, deps, submitter): + """Adds all GMM-related jobs.""" + + # first, add gmm jobs + job_ids, deps = add_gmm_jobs(args, job_ids, deps, submitter) + + # now, add two extra steps for ISV + if not args.skip_isv: + # gmm projection + job_ids['gmm-projection'] = submitter.submit( + '--sub-task gmm-project', + name = 'pro-gmm', + number_of_parallel_jobs = args.grid.number_of_projection_jobs, + dependencies = deps, + **args.grid.projection_queue) + deps.append(job_ids['gmm-projection']) + + job_ids['isv-training'] = submitter.submit( + '--sub-task isv-train', + name = 'train-isv', + dependencies = deps, + **args.grid.training_queue) + deps.append(job_ids['isv-training']) + + return job_ids, deps + + +from .verify_gmm import execute as gmm_execute + + +def execute(args): + """Run the desired job of the tool chain that is specified on command line. + This job might be executed either in the grid, or locally.""" + + # first, let the base script decide if it knows how to execute the job + if gmm_execute(args): + return True + + # now, check what we can do + + # the file selector object + fs = tools.FileSelector.instance() + + if args.sub_task == 'gmm-project': + tools.gmm_project( + args.algorithm, + args.extractor, + indices = base_tools.indices(fs.training_list('extracted', 'train_projector'), args.grid.number_of_projection_jobs), + force = args.force) + + # train the feature projector + elif args.sub_task == 'isv-train': + tools.isv_training( + args.algorithm, + force = args.force) + + else: + # Not our keyword... + return False + return True + + + +def verify(args, command_line_parameters, external_fake_job_id = 0): + """This is the main entry point for computing verification experiments. + You just have to specify configurations for any of the steps of the toolchain, which are: + -- the database + -- the preprocessing + -- feature extraction + -- the recognition algorithm + -- and the grid configuration. + Additionally, you can skip parts of the toolchain by selecting proper --skip-... parameters. + If your probe files are not too big, you can also specify the --preload-probes switch to speed up the score computation. + If files should be re-generated, please specify the --force option (might be combined with the --skip-... options).""" + + + # as the main entry point, check whether the sub-task is specified + if args.sub_task is not None: + # execute the desired sub-task + if not execute(args): + raise ValueError("The specified --sub-task '%s' is not known to the system" % args.sub_task) + return {} + else: + # add jobs + submitter = base_tools.GridSubmission(args, command_line_parameters, executable = 'verify_isv.py', first_fake_job_id = 0) if args.grid else None + retval = tools.add_jobs(args, submitter, local_job_adder = add_isv_jobs) + base_tools.write_info(args, command_line_parameters) + + if args.grid.is_local() and args.run_local_scheduler: + if args.dry_run: + print ("Would have started the local scheduler to run the experiments with parallel jobs") + else: + # start the jman local deamon + submitter.execute_local() + return {} + + else: + # return job ids as a dictionary + return retval + + +def main(command_line_parameters = sys.argv): + """Executes the main function""" + try: + # do the command line parsing + args = parse_arguments(command_line_parameters[1:]) + + # perform face verification test + verify(args, command_line_parameters) + except Exception as e: + # track any exceptions as error logs (i.e., to get a time stamp) + logger.error("During the execution, an exception was raised: %s" % e) + raise + +if __name__ == "__main__": + main() diff --git a/bob/bio/gmm/test/data/gmm_model.hdf5 b/bob/bio/gmm/test/data/gmm_model.hdf5 index 8c01d07a45d332393a8f8261811472371b1899f9..71a14c7f318639c17a7f78cf5056ac755bf9ee5f 100644 GIT binary patch delta 1693 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 OoUPv@f~=K)<j(J#7X*j^ delta 1693 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 HukZW={lg8l diff --git a/bob/bio/gmm/test/data/gmm_projected.hdf5 b/bob/bio/gmm/test/data/gmm_projected.hdf5 index 8f6c44ebb6a636efc1342277d708a9f09f2fccad..2c27bc5f14f0488ab035f135881286329c8a142c 100644 GIT binary patch delta 1575 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 delta 1575 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 diff --git a/bob/bio/gmm/test/data/gmm_projector.hdf5 b/bob/bio/gmm/test/data/gmm_projector.hdf5 index 1a5e4fd776d97bef951cf2e72d6e98aef25b818a..40d263c91c0e9b8048f2c76afa9bdb3594098080 100644 GIT binary patch delta 1693 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 Or`;#SZo9jG=gwa?3IDtR delta 1693 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 Mpa{3^`ptL#3oKU!$^ZZW diff --git a/bob/bio/gmm/test/data/isv_model.hdf5 b/bob/bio/gmm/test/data/isv_model.hdf5 index 28cf7b7c0244ddbba0fe515fbb1112cebf72903f..2fcf9425127838bcdc059e31e905c6d83a9951a3 100644 GIT binary patch delta 742 zcmV<C0vY|V7O)nutOEn4!ceoX1F-~uTh3nz^n}kp%!ZAF2zjhOpOM{D^jEk)Eu#OH z?fSGox{w=Y*L=G_#c8rP5Jb1Xjl>nUk`=l?#q4-;CCr{b+`axs&nRiXzTH5>TKKcS z9f9?XN#D=E63}+l%yXYVzHq4|lc=pfjcFPei(JM(@!ANL&2!Vg!Ti;gcsYW9KUlbJ zOk<C^Katqgp{~l!KRQU%#q_bkKW7Fo2ME?tzZ?8Mdgds)zt=sgJHJ)9Kb;P>`Q>N2 zzx2|uO=R!3zi|f8=hq*#KYQUrmDXdxKgtv9DQ*?WKkT-P6in5}KkX~F7RipzKaeRW z<vnt=KLd1WCeGG}KhIP;^W$!Rj=%qJK_Yx##y@U;_qG4o#lPQVUt?WHsXwzLzabGL zzrQzwx@E9`vA?e7Ui1~TwZE8yuqm6SwZC99_VjmBqQ47;j}KJBg+J?w+7zaew!i)7 zwp%4au|N41bH2>R(m!80lhb=kb-(%OLA}>#vp*aZnrP}TxxZVG5s(&tn3g|K2a^(H zKC(Yup0tjkp}#+4<;C8lMZUk8P2a|L#fHD|QGvBF!neP<XDmt;&9guMV|-+=Xxl%* z7Jmu=M7+PCOr^DnAe+AuSM##XYQev6@nRJKPqM#EoZ`?S1(ZLm1nG+=J-EMe5J=!< z<+nda+CXZ}JGws>FR#6Sv#6RsB1o90-_6HAvB3p84<gLJ@GyxFc8k3~hW$iSmB4ww zFSNFj;Gwp^kh?rIbfK3&YOxkSq;A2#ZE9TpCT_65!C;*h`qsNYP9ThkZ??uiZ}EP; zK<co+;&~>a9N@4&z81-E$osj!Oa`_4@t35(C8099Z6?9LYaY5)1f8U=zgZwgd+fKc zzoS&=;P02OKRuBo^NRwrKc_WWovb^vzkgN7O=@bIzn5udBomaazrM9z_3E0?Ki{1K YW_X{hzk8qjR9$O<Kl8l6X!S6VzfJ#%`v3p{ delta 742 zcmV<C0vY|V7O)nutOElKpi8r_1F-~u)-XRPxscF5-}1$pE9tC1Ip!md7{#_fZncN( z8F92f%T|_s=8C*Oz!~d%fr_`k^jT|R=6Jh55_p<zkZPenCP0hL4vuQSl%Tg12W_*z z1)nSzBKXh0{y6s<I+dS4NeZYRJC~|I-UXQG!>`3Z^DZ@C5ggOM64+~7Qd)w4KaKH# z3YxsTKXg^_G|BDEKW6k!6nOB!KN*w`=qLPNzb2|?vl^JYzX~kzxFyxPKZ}0DZ0EkY zzYk8@?$j^0zZOr4G`VK9Ka65AbWd)-Ki1?du)U|rKfQ`z_ag+zKg&)OJ^ND5KLh@6 zg6TE3KOoRrqZZD3Kch;#iGI+3jK3)n+cH|<#y>Pe$W0|&#lN2cI8ZF&sy|dWiA(u2 zzQ0p&O?ET<ufI;0B_7=&x4)43V)idLw!a^fuJf9No4+Bqwlg^pdOx<jsFC-Ox4$%O zEib;_u|KDtzBy85(?8b%njaD5cE8p%b2GjVvp*Le_7hYGxxd*d)}vQ{%9TGzMLW|( z)v-S-UF~5?DZf8e$^9NFqrSf~*?v?7N{heaJ3~2D&bPn8J?Mqn3$#B8nCz{;G}}M- z0`!gGQM|vLysRqVO`N~Zh%`{ikHNo~wN;}ad$GU641pezK#)K8MOg_TKe)fAPR}ko ziMKy9TyNjpDY`$@>p?_+!$h4wL$2e_X|~5d;11sGq4mqZ{5caM5G%bun=~M$-$-`9 z(|q4jz?8VZAy=!`v;dVqt5d-NKq|q%aq+l`#SpN+X_t}jNdvq;D>Lt2O`^v?QHxy_ zasjcwc_d>TDNC_GC0q`efB(3@x*K;>VD+ZIUjZuG?J>c>Z{W05HJ_KTzvsZDt=;Ib zzu35pZ7Bk-KR{v`fNz_#Ki;gjKplRuztl?0w6XG;zh`gp{?2x+zaXyU3=*5rKVX9! Yhsyu0zg2=MtOUAqKi70~9prb7zh7#0e*gdg diff --git a/bob/bio/gmm/test/data/isv_projected.hdf5 b/bob/bio/gmm/test/data/isv_projected.hdf5 index 382b5ed1b10587ed02135527210df54196f225c1..ff9cdf0ae0636d6e652d688ea541430b2dbeb3ef 100644 GIT binary patch delta 2302 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 Z`LbUL4wp%KZC3IWQ_R@GJLccu{{rNATV((M delta 2302 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 b44#!w|5=SM&Kt04_APj0x$x-Tl~Mc;@(VpB diff --git a/bob/bio/gmm/test/data/isv_projector.hdf5 b/bob/bio/gmm/test/data/isv_projector.hdf5 index b8fb97eee6e8556319a46340a2d71ee84230defc..135e8dfce76c867becf61a6209ed1e9c433ade53 100644 GIT binary patch delta 9705 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 delta 9705 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 diff --git a/bob/bio/gmm/test/data/jfa_enroller.hdf5 b/bob/bio/gmm/test/data/jfa_enroller.hdf5 index a5588e79fe00440f040bcd1acadaf5bedaaf2f09..4dbcd81860ed003ecc5f19fe315dc6c5bc7adc00 100644 GIT binary patch delta 3673 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 delta 3673 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 diff --git a/bob/bio/gmm/test/data/jfa_model.hdf5 b/bob/bio/gmm/test/data/jfa_model.hdf5 index 24e912a43b2dfa905493ebc4b3c3855e658cf6df..afaa7ddb21bdb5734b795da5fb4b3480a87cbdcd 100644 GIT binary patch delta 770 zcmV+d1O5EK7Qhy;tOEn_!ceoX162Y8@xoA(uLFUxz}NwQLnH<r28+nQ#FWp|i$S|T zYt>pUn-tE!<xlpKxTd<lICtpTd@4b|`{n2J156x0Qeu0ojTLvlB=VOq(>ch$bBBFN zHL}FNj2dh5UL3POU}&5!qR*#432=sI(B`2(!Gx}d)oYl)NWTasr4qWo60dgChuj{& z*3Fvl$4|e1zk%q33G$|_zmkRgh=_oJKZ3pT=z>L<zXwO$F+mfdzuZ2sCDt^uzkd(< zzM5pOzro;A2<T_fzue<qfS1&4KP+t>4R8V!zsd}XG1?BnzvKM?uQ}OTKf&xx(pMpz zKb~by^@+oDKasUw9O7rvKZ!p~B>{cGzo?ifhb$R?RzEMIvQ8(;u)iHn<Q}J1qCagh ziyklC)xX=xwhe4@&p(*9<+HNwl)ru_S`w0n)4zi;jV02P!#_nBTc++hML%+WQi01= zC%+WvZDZkP#y>R|?2u-NfWK*G%k}q*t-sPD)9oplt3N`f%brab!N1wUC?8|&s6RiM z^@Fj0%dWo_!_<L4cc8ybuCpFr<10VXg{Z`a`<}m(hGoJ!m6<<f+c=Aq0@^<rgmb52 zai_ll@J7@q4VOP=d)Ja7V#B}eOZ>&-B&<I)rGJ2KO2@w*-{_=NUShwyJ&FA8+mS!- zE4@R;AG$xs03INeRmndRvf?tk+g?9?y1_PopWc4Ih<mR3vCfviZ2#8mh~BzCR3FAn zN)N%m;!P9$XGy?6p;-sf>GrHYAX%Ril2)TX8<PKxf78rAhy*o0XO^75dSYZuG{Ve3 z3RwuDrN4wfKh8<o1>BN9y{N#rrUib#jDV^);kL6sb#~>N8<WXDCMjn9V3vwM&lqQA z+)|R!KPrJ#F_`nCKlw|F4(v<CzcJ0)tN;6yKOSF}Mst6(KllKXO4{66Kh1HbI(n9g zKcb?3uHQtPzcguG21%N{ztLnEJ$W{VziG>l^#YQZzcYM)i#64AKRx{xV<hCiKP)<o AH2?qr delta 770 zcmV+d1O5EK7Qhy;tOEnXZA`PT162Y8!);8HuLFUxz}NwQ#vQ>@!jZ_ou^6(4x3juG zJ{)+Qta{DAcan|W<tVnl0PekBrfOEdk1|4M9h4bAj4Uj~{NsGT3#O*Jtl-DLG+{GV zRNceBPSAUr8Bwu6<l5(&I&q^v240nu4y2Vohh<}^o0FHniG$=iVqLhu{+AT*pXnOE zU*Kx3zd68vzj$|^t45Zvzt2ivqA22VKV<}>EpE<=zs>x@hQnQ<zho)y@Ob&CzxeNo zz8xW~zkt3exl;+zzi7D?=+=B<KbjS<+9NDLzv{IA5*PHqzssG?l#HQOKR^KpMq<LD zKT|c<U;jgGKToUp!{_bOKgoF^z6V6WzZ91AD5H^oNIzv0TIt2RtiP5emgV}smOsgv zD?yK=)xU}L%lTz0&OdqDQ1k_dl)rrp9RmLA(Z4MubaIq<!#_QlA}T&eP(RP;)0$G~ zM?Yt(#*Yf%#y{Ig;X#{dbHAaA{Jv+cvA@kb7y)1Ys6WZB;%!uS!oRH42}yJ4kUvUS zx!|{dcdx%;0_5yXkfgs1;CSma+9E&4tF2I`XQ01Gqu@DtVW>abHbx9HnA<-N^<jp8 zW~RSvHTurfVv|1yNS1|8_QSsj*{?^uW~x6Che%%EoyNZeg$+N^)>Xez79TxUYKA{D z6dbA@QNBNeZcsA_<HbL~43TABb6Y<h9Z`vY=)iZs{QP|pE5MV#+T}bH0eHJVDOcY- ziYLOq67`;CkDk6i@wIz6M02b^M2AFuCRC?CB8YF&(*Ddp=x$z)@5-;gOv>!RJq*o1 zwgFV>?J#>kbmWPPmBgDrU0a7En5%=ohQ-`_D95osL8oKJhBd@L9MhD%;tGa8m?~Oj z!>M}FKj^XMYRDX;KhB@lV`*^3zn*LMb)UbMKTAGlC^fmRKg8!Leori9KRk<Or;m1i zKdw$<TV7qEzo+-@kUfFEzYM(M?sO7>zZ>Zxt+Vc{zubM44tlh7KQp7W!_l9>KR2k3 AasU7T diff --git a/bob/bio/gmm/test/data/scores-nonorm-isv-dev b/bob/bio/gmm/test/data/scores-nonorm-isv-dev new file mode 100644 index 0000000..43e0972 --- /dev/null +++ b/bob/bio/gmm/test/data/scores-nonorm-isv-dev @@ -0,0 +1,2000 @@ +3 3 s3/1 1.62594110 +3 3 s3/3 2.02770584 +3 3 s3/6 1.00599519 +3 3 s3/8 2.37602396 +3 3 s3/10 1.55214336 +3 4 s4/1 1.74439417 +3 4 s4/3 2.07567164 +3 4 s4/6 0.60449699 +3 4 s4/8 1.42865445 +3 4 s4/10 0.85554314 +3 7 s7/1 -1.90793004 +3 7 s7/3 -2.01759288 +3 7 s7/6 -1.37308185 +3 7 s7/8 -1.06626693 +3 7 s7/10 -1.32754912 +3 8 s8/1 1.26423480 +3 8 s8/3 0.98978071 +3 8 s8/6 0.94752052 +3 8 s8/8 0.94551799 +3 8 s8/10 0.51337591 +3 9 s9/1 2.54566567 +3 9 s9/3 2.28044990 +3 9 s9/6 2.09100198 +3 9 s9/8 1.52882713 +3 9 s9/10 0.97927353 +3 13 s13/1 2.26912603 +3 13 s13/3 0.71111773 +3 13 s13/6 1.27218129 +3 13 s13/8 0.12985782 +3 13 s13/10 0.34550740 +3 15 s15/1 -1.12607978 +3 15 s15/3 -0.81388725 +3 15 s15/6 -0.89193418 +3 15 s15/8 -0.01312844 +3 15 s15/10 3.08249503 +3 18 s18/1 0.97757109 +3 18 s18/3 0.90120781 +3 18 s18/6 0.65718492 +3 18 s18/8 1.22941335 +3 18 s18/10 1.39428165 +3 19 s19/1 0.06605139 +3 19 s19/3 0.14138691 +3 19 s19/6 1.74004476 +3 19 s19/8 -0.95864076 +3 19 s19/10 1.40590782 +3 22 s22/1 0.66348485 +3 22 s22/3 0.96282832 +3 22 s22/6 -0.29877864 +3 22 s22/8 0.41374832 +3 22 s22/10 0.92793592 +3 23 s23/1 0.78540820 +3 23 s23/3 0.94225752 +3 23 s23/6 1.87866039 +3 23 s23/8 0.21008856 +3 23 s23/10 0.76083243 +3 25 s25/1 2.47253848 +3 25 s25/3 1.99887047 +3 25 s25/6 2.73304058 +3 25 s25/8 2.03510319 +3 25 s25/10 2.28174787 +3 28 s28/1 0.13509099 +3 28 s28/3 1.07283701 +3 28 s28/6 0.20019713 +3 28 s28/8 0.54827331 +3 28 s28/10 0.69206469 +3 30 s30/1 0.84372631 +3 30 s30/3 1.30491745 +3 30 s30/6 0.36062869 +3 30 s30/8 -0.66565891 +3 30 s30/10 0.80175593 +3 31 s31/1 2.79802542 +3 31 s31/3 0.95873342 +3 31 s31/6 2.65323537 +3 31 s31/8 2.94601223 +3 31 s31/10 0.31116303 +3 32 s32/1 -1.70140390 +3 32 s32/3 0.53838777 +3 32 s32/6 -1.89068826 +3 32 s32/8 -1.19521653 +3 32 s32/10 -2.63642717 +3 35 s35/1 2.24751187 +3 35 s35/3 1.66100088 +3 35 s35/6 1.98838605 +3 35 s35/8 2.14567394 +3 35 s35/10 0.54591192 +3 37 s37/1 0.73459582 +3 37 s37/3 0.37631065 +3 37 s37/6 -2.28095042 +3 37 s37/8 -1.27246275 +3 37 s37/10 0.31060548 +3 38 s38/1 1.16980854 +3 38 s38/3 2.82496428 +3 38 s38/6 1.07310538 +3 38 s38/8 1.91648320 +3 38 s38/10 1.86978713 +3 40 s40/1 1.09419923 +3 40 s40/3 1.06355308 +3 40 s40/6 1.32359222 +3 40 s40/8 1.22364905 +3 40 s40/10 1.37702581 +4 3 s3/1 0.74177744 +4 3 s3/3 1.11493511 +4 3 s3/6 1.13637400 +4 3 s3/8 1.07909058 +4 3 s3/10 1.49654821 +4 4 s4/1 3.09505311 +4 4 s4/3 2.84798332 +4 4 s4/6 2.56720548 +4 4 s4/8 3.01718473 +4 4 s4/10 3.01064914 +4 7 s7/1 -1.90185778 +4 7 s7/3 -1.65201100 +4 7 s7/6 -1.56538379 +4 7 s7/8 -1.79571961 +4 7 s7/10 -0.65570932 +4 8 s8/1 -0.02061274 +4 8 s8/3 -0.29333210 +4 8 s8/6 -0.44165989 +4 8 s8/8 -0.07145038 +4 8 s8/10 -0.55881709 +4 9 s9/1 2.55832809 +4 9 s9/3 1.81867221 +4 9 s9/6 3.14663253 +4 9 s9/8 2.82070128 +4 9 s9/10 1.83381668 +4 13 s13/1 1.96261780 +4 13 s13/3 1.84228783 +4 13 s13/6 1.65169075 +4 13 s13/8 0.90543639 +4 13 s13/10 1.32185998 +4 15 s15/1 -1.58013021 +4 15 s15/3 -1.71150086 +4 15 s15/6 -1.68042483 +4 15 s15/8 -0.15377817 +4 15 s15/10 3.42859865 +4 18 s18/1 1.95055072 +4 18 s18/3 2.67972253 +4 18 s18/6 2.19300281 +4 18 s18/8 3.05939614 +4 18 s18/10 3.01780702 +4 19 s19/1 -3.42367289 +4 19 s19/3 -2.55326859 +4 19 s19/6 -4.41278428 +4 19 s19/8 -2.73656996 +4 19 s19/10 -4.03212344 +4 22 s22/1 -0.15823768 +4 22 s22/3 0.39207858 +4 22 s22/6 -1.26369681 +4 22 s22/8 -0.32546511 +4 22 s22/10 -0.05038751 +4 23 s23/1 1.61568891 +4 23 s23/3 2.61234295 +4 23 s23/6 2.71665406 +4 23 s23/8 0.81947009 +4 23 s23/10 1.39494025 +4 25 s25/1 5.25425093 +4 25 s25/3 4.24954849 +4 25 s25/6 5.12503668 +4 25 s25/8 2.85746572 +4 25 s25/10 4.71002758 +4 28 s28/1 1.38103611 +4 28 s28/3 1.26602011 +4 28 s28/6 2.23276328 +4 28 s28/8 0.50217322 +4 28 s28/10 0.78320859 +4 30 s30/1 2.02453025 +4 30 s30/3 2.55928528 +4 30 s30/6 1.79116191 +4 30 s30/8 1.79793259 +4 30 s30/10 1.51718730 +4 31 s31/1 3.44785494 +4 31 s31/3 2.87337626 +4 31 s31/6 2.65880364 +4 31 s31/8 3.39467154 +4 31 s31/10 2.77020822 +4 32 s32/1 -1.13821196 +4 32 s32/3 0.62539329 +4 32 s32/6 -2.89354058 +4 32 s32/8 -1.59245651 +4 32 s32/10 -2.54363149 +4 35 s35/1 3.60962165 +4 35 s35/3 2.67990237 +4 35 s35/6 2.30421760 +4 35 s35/8 2.32388228 +4 35 s35/10 1.38723515 +4 37 s37/1 1.87738609 +4 37 s37/3 1.37032725 +4 37 s37/6 -1.51713467 +4 37 s37/8 -1.51925633 +4 37 s37/10 0.04032798 +4 38 s38/1 1.18640564 +4 38 s38/3 0.70770177 +4 38 s38/6 0.85248974 +4 38 s38/8 2.25115498 +4 38 s38/10 0.54998810 +4 40 s40/1 1.55296133 +4 40 s40/3 2.64566001 +4 40 s40/6 1.97589619 +4 40 s40/8 1.05563145 +4 40 s40/10 1.41024924 +7 3 s3/1 -0.55651612 +7 3 s3/3 -1.36823884 +7 3 s3/6 -0.67479423 +7 3 s3/8 -1.56692613 +7 3 s3/10 -0.70231798 +7 4 s4/1 -1.47682579 +7 4 s4/3 -1.80152870 +7 4 s4/6 -1.01480799 +7 4 s4/8 -1.34139482 +7 4 s4/10 -1.05930728 +7 7 s7/1 3.44595877 +7 7 s7/3 3.58645440 +7 7 s7/6 2.94546612 +7 7 s7/8 2.88504621 +7 7 s7/10 2.75018308 +7 8 s8/1 -0.96521345 +7 8 s8/3 -0.48282252 +7 8 s8/6 -0.85465755 +7 8 s8/8 -0.00437613 +7 8 s8/10 0.27075336 +7 9 s9/1 -1.76638252 +7 9 s9/3 -1.63816108 +7 9 s9/6 -1.69302758 +7 9 s9/8 -1.50486503 +7 9 s9/10 -1.66066501 +7 13 s13/1 -1.25223867 +7 13 s13/3 -0.63807820 +7 13 s13/6 -1.28435063 +7 13 s13/8 -0.49116436 +7 13 s13/10 -0.47370720 +7 15 s15/1 1.30146477 +7 15 s15/3 1.26504202 +7 15 s15/6 1.11677603 +7 15 s15/8 0.27879676 +7 15 s15/10 -3.02390505 +7 18 s18/1 -0.76428063 +7 18 s18/3 -0.75197891 +7 18 s18/6 -0.24515888 +7 18 s18/8 -1.00552723 +7 18 s18/10 -1.05962360 +7 19 s19/1 1.88465824 +7 19 s19/3 1.47250719 +7 19 s19/6 1.05683881 +7 19 s19/8 1.15553295 +7 19 s19/10 0.78868921 +7 22 s22/1 -1.37637314 +7 22 s22/3 -1.71854318 +7 22 s22/6 -0.10405771 +7 22 s22/8 -1.64787124 +7 22 s22/10 -1.20821143 +7 23 s23/1 -0.59878384 +7 23 s23/3 0.10878619 +7 23 s23/6 -1.04945946 +7 23 s23/8 -0.59947878 +7 23 s23/10 -0.48825780 +7 25 s25/1 -2.45081117 +7 25 s25/3 -1.80290481 +7 25 s25/6 -2.37486553 +7 25 s25/8 -1.48551775 +7 25 s25/10 -2.02144298 +7 28 s28/1 -0.38449215 +7 28 s28/3 -1.32971805 +7 28 s28/6 -0.87159585 +7 28 s28/8 0.31201623 +7 28 s28/10 -0.90285555 +7 30 s30/1 -1.48018759 +7 30 s30/3 -2.01442361 +7 30 s30/6 -1.22408486 +7 30 s30/8 -0.17755339 +7 30 s30/10 -1.46624861 +7 31 s31/1 -2.46261735 +7 31 s31/3 -0.61716312 +7 31 s31/6 -1.63168663 +7 31 s31/8 -2.50854452 +7 31 s31/10 -0.61053178 +7 32 s32/1 2.06945524 +7 32 s32/3 0.08935623 +7 32 s32/6 3.24910746 +7 32 s32/8 2.40716532 +7 32 s32/10 3.52740318 +7 35 s35/1 -2.13629472 +7 35 s35/3 -0.65890584 +7 35 s35/6 -1.72397558 +7 35 s35/8 -1.51163572 +7 35 s35/10 0.30970107 +7 37 s37/1 0.29124345 +7 37 s37/3 0.35495637 +7 37 s37/6 1.94446768 +7 37 s37/8 0.92360410 +7 37 s37/10 0.56511451 +7 38 s38/1 -1.44452424 +7 38 s38/3 -1.66701334 +7 38 s38/6 -0.96762307 +7 38 s38/8 -1.78667034 +7 38 s38/10 -1.52302030 +7 40 s40/1 -1.03563252 +7 40 s40/3 -0.97761458 +7 40 s40/6 -1.72788826 +7 40 s40/8 -1.07193263 +7 40 s40/10 -1.28348542 +8 3 s3/1 1.27767435 +8 3 s3/3 0.56349677 +8 3 s3/6 1.89423212 +8 3 s3/8 2.30414602 +8 3 s3/10 0.34930700 +8 4 s4/1 0.09395949 +8 4 s4/3 0.00617714 +8 4 s4/6 -0.00132582 +8 4 s4/8 -0.41773336 +8 4 s4/10 -0.92952640 +8 7 s7/1 -0.24545361 +8 7 s7/3 -0.57720942 +8 7 s7/6 -1.34403753 +8 7 s7/8 -1.12245110 +8 7 s7/10 -1.46417275 +8 8 s8/1 6.37984625 +8 8 s8/3 7.15190697 +8 8 s8/6 7.14673984 +8 8 s8/8 6.03034291 +8 8 s8/10 6.86638229 +8 9 s9/1 2.41032051 +8 9 s9/3 2.88654823 +8 9 s9/6 2.85230678 +8 9 s9/8 1.32174557 +8 9 s9/10 1.68148222 +8 13 s13/1 -2.49172153 +8 13 s13/3 -2.54087071 +8 13 s13/6 -1.57419415 +8 13 s13/8 -1.74120936 +8 13 s13/10 -2.36825687 +8 15 s15/1 -0.90460636 +8 15 s15/3 -0.81374404 +8 15 s15/6 -1.37081560 +8 15 s15/8 0.21456746 +8 15 s15/10 1.03709110 +8 18 s18/1 -2.56286129 +8 18 s18/3 -2.64580197 +8 18 s18/6 -3.25017618 +8 18 s18/8 -3.43992166 +8 18 s18/10 -2.74572804 +8 19 s19/1 -1.92097994 +8 19 s19/3 -2.16916944 +8 19 s19/6 -1.36789855 +8 19 s19/8 0.35625444 +8 19 s19/10 -1.19600587 +8 22 s22/1 0.58889165 +8 22 s22/3 1.35720190 +8 22 s22/6 -0.67115456 +8 22 s22/8 0.23058073 +8 22 s22/10 0.50192270 +8 23 s23/1 2.28246451 +8 23 s23/3 1.03964803 +8 23 s23/6 0.99149742 +8 23 s23/8 1.17692220 +8 23 s23/10 2.50862736 +8 25 s25/1 0.11143963 +8 25 s25/3 0.20215666 +8 25 s25/6 0.89090552 +8 25 s25/8 0.92008246 +8 25 s25/10 0.81905383 +8 28 s28/1 0.14451316 +8 28 s28/3 0.69735124 +8 28 s28/6 0.31785404 +8 28 s28/8 -1.01066381 +8 28 s28/10 -1.18093688 +8 30 s30/1 1.40744526 +8 30 s30/3 1.41712724 +8 30 s30/6 1.12897367 +8 30 s30/8 0.23853575 +8 30 s30/10 1.17636933 +8 31 s31/1 3.60449716 +8 31 s31/3 1.93391381 +8 31 s31/6 3.77181320 +8 31 s31/8 3.59931013 +8 31 s31/10 2.02379913 +8 32 s32/1 -2.07036756 +8 32 s32/3 -3.06947831 +8 32 s32/6 -3.28492121 +8 32 s32/8 -4.05903332 +8 32 s32/10 -4.37270875 +8 35 s35/1 0.88246513 +8 35 s35/3 0.51159042 +8 35 s35/6 0.58122754 +8 35 s35/8 0.75264708 +8 35 s35/10 -1.41097903 +8 37 s37/1 -2.21758011 +8 37 s37/3 -2.22890489 +8 37 s37/6 0.73879677 +8 37 s37/8 0.67741597 +8 37 s37/10 -1.33795191 +8 38 s38/1 3.44934304 +8 38 s38/3 1.49216101 +8 38 s38/6 3.29515282 +8 38 s38/8 1.25405136 +8 38 s38/10 1.25530167 +8 40 s40/1 -3.60103582 +8 40 s40/3 -3.01137244 +8 40 s40/6 -2.29045910 +8 40 s40/8 -2.31350795 +8 40 s40/10 -2.51962541 +9 3 s3/1 1.33017819 +9 3 s3/3 1.03557312 +9 3 s3/6 1.38416887 +9 3 s3/8 1.48966216 +9 3 s3/10 1.32285549 +9 4 s4/1 3.41450464 +9 4 s4/3 2.86471175 +9 4 s4/6 1.99021615 +9 4 s4/8 2.78302220 +9 4 s4/10 1.43794531 +9 7 s7/1 -1.85958173 +9 7 s7/3 -1.50714863 +9 7 s7/6 -1.61714022 +9 7 s7/8 -1.79926465 +9 7 s7/10 -0.55814425 +9 8 s8/1 1.58332499 +9 8 s8/3 1.85077110 +9 8 s8/6 1.83105630 +9 8 s8/8 1.57657375 +9 8 s8/10 1.61559949 +9 9 s9/1 3.81370815 +9 9 s9/3 3.62974542 +9 9 s9/6 3.41849293 +9 9 s9/8 3.37712323 +9 9 s9/10 2.50275238 +9 13 s13/1 1.54803548 +9 13 s13/3 0.93935579 +9 13 s13/6 1.67153167 +9 13 s13/8 0.52226471 +9 13 s13/10 0.67583955 +9 15 s15/1 -1.04392244 +9 15 s15/3 -1.09395012 +9 15 s15/6 -1.10591948 +9 15 s15/8 0.39184078 +9 15 s15/10 4.04438437 +9 18 s18/1 1.18396927 +9 18 s18/3 1.55997276 +9 18 s18/6 1.12206752 +9 18 s18/8 1.46275584 +9 18 s18/10 1.50307919 +9 19 s19/1 -1.47055560 +9 19 s19/3 -1.04757214 +9 19 s19/6 -0.84678654 +9 19 s19/8 -1.70076255 +9 19 s19/10 -1.38607686 +9 22 s22/1 -0.67107786 +9 22 s22/3 0.03214677 +9 22 s22/6 -1.84567325 +9 22 s22/8 -0.78332485 +9 22 s22/10 -0.46010088 +9 23 s23/1 2.66231087 +9 23 s23/3 3.04122797 +9 23 s23/6 3.15843763 +9 23 s23/8 1.36386847 +9 23 s23/10 1.91386695 +9 25 s25/1 4.59705308 +9 25 s25/3 3.77895821 +9 25 s25/6 4.55825156 +9 25 s25/8 2.96138915 +9 25 s25/10 3.86177835 +9 28 s28/1 0.73962004 +9 28 s28/3 1.01582600 +9 28 s28/6 1.33337892 +9 28 s28/8 0.27025161 +9 28 s28/10 -0.44913225 +9 30 s30/1 1.99822598 +9 30 s30/3 2.25844872 +9 30 s30/6 1.40313162 +9 30 s30/8 0.52460304 +9 30 s30/10 1.52300129 +9 31 s31/1 4.55922592 +9 31 s31/3 2.12962553 +9 31 s31/6 3.83011539 +9 31 s31/8 4.51862290 +9 31 s31/10 2.43645465 +9 32 s32/1 -1.16221552 +9 32 s32/3 0.60594384 +9 32 s32/6 -3.56315855 +9 32 s32/8 -1.87125973 +9 32 s32/10 -3.56972921 +9 35 s35/1 3.60474175 +9 35 s35/3 3.07701965 +9 35 s35/6 2.27161321 +9 35 s35/8 2.83384220 +9 35 s35/10 1.47887837 +9 37 s37/1 0.54133188 +9 37 s37/3 0.22003596 +9 37 s37/6 -2.06722316 +9 37 s37/8 -1.48630659 +9 37 s37/10 -0.29613020 +9 38 s38/1 2.06014692 +9 38 s38/3 1.94108649 +9 38 s38/6 1.91066851 +9 38 s38/8 2.17920509 +9 38 s38/10 1.40584896 +9 40 s40/1 0.87408290 +9 40 s40/3 2.26474069 +9 40 s40/6 1.55496927 +9 40 s40/8 1.24232826 +9 40 s40/10 1.10871527 +13 3 s3/1 1.78467628 +13 3 s3/3 1.21585058 +13 3 s3/6 0.24920474 +13 3 s3/8 -0.23997173 +13 3 s3/10 0.87718386 +13 4 s4/1 2.26551103 +13 4 s4/3 2.38421805 +13 4 s4/6 1.63063225 +13 4 s4/8 2.35145986 +13 4 s4/10 0.80427620 +13 7 s7/1 -1.23644379 +13 7 s7/3 -1.25584941 +13 7 s7/6 -0.77375988 +13 7 s7/8 -0.49373258 +13 7 s7/10 -0.48112218 +13 8 s8/1 -2.61376865 +13 8 s8/3 -2.22981959 +13 8 s8/6 -2.22120312 +13 8 s8/8 -1.74057479 +13 8 s8/10 -2.43638831 +13 9 s9/1 1.78255263 +13 9 s9/3 0.81706375 +13 9 s9/6 0.70499564 +13 9 s9/8 1.60732136 +13 9 s9/10 -0.78052222 +13 13 s13/1 5.42238113 +13 13 s13/3 3.75925316 +13 13 s13/6 3.28234251 +13 13 s13/8 3.16660339 +13 13 s13/10 3.54485663 +13 15 s15/1 -0.43196592 +13 15 s15/3 -0.17985712 +13 15 s15/6 0.19050337 +13 15 s15/8 -0.28452276 +13 15 s15/10 1.65614750 +13 18 s18/1 2.53189622 +13 18 s18/3 3.62372925 +13 18 s18/6 2.80736718 +13 18 s18/8 3.75205504 +13 18 s18/10 3.12144215 +13 19 s19/1 1.66545963 +13 19 s19/3 2.28752114 +13 19 s19/6 2.68411410 +13 19 s19/8 -0.66955276 +13 19 s19/10 2.17035805 +13 22 s22/1 1.72854247 +13 22 s22/3 1.28513364 +13 22 s22/6 0.78984394 +13 22 s22/8 1.72546160 +13 22 s22/10 2.50811516 +13 23 s23/1 0.05461626 +13 23 s23/3 0.26072066 +13 23 s23/6 2.46613392 +13 23 s23/8 -1.06051537 +13 23 s23/10 0.29518395 +13 25 s25/1 3.13627789 +13 25 s25/3 2.40192037 +13 25 s25/6 2.61624533 +13 25 s25/8 1.88220136 +13 25 s25/10 2.48606814 +13 28 s28/1 1.52981959 +13 28 s28/3 1.35417058 +13 28 s28/6 1.29017667 +13 28 s28/8 0.85995936 +13 28 s28/10 1.32499508 +13 30 s30/1 -0.36369950 +13 30 s30/3 -0.22372683 +13 30 s30/6 -0.40277568 +13 30 s30/8 -1.30954026 +13 30 s30/10 -0.04291302 +13 31 s31/1 -0.03900527 +13 31 s31/3 -2.44301341 +13 31 s31/6 -1.49021492 +13 31 s31/8 0.24818536 +13 31 s31/10 -3.58745917 +13 32 s32/1 -0.08173012 +13 32 s32/3 2.46352130 +13 32 s32/6 -0.34066688 +13 32 s32/8 1.32895110 +13 32 s32/10 -0.26766015 +13 35 s35/1 2.66903500 +13 35 s35/3 1.87126868 +13 35 s35/6 1.53681608 +13 35 s35/8 1.53729715 +13 35 s35/10 0.41793397 +13 37 s37/1 2.22749289 +13 37 s37/3 2.16136497 +13 37 s37/6 -2.35457147 +13 37 s37/8 -0.36156960 +13 37 s37/10 2.28475113 +13 38 s38/1 0.55591958 +13 38 s38/3 3.50296328 +13 38 s38/6 0.11473581 +13 38 s38/8 1.75598487 +13 38 s38/10 1.72573178 +13 40 s40/1 3.50067432 +13 40 s40/3 2.53920391 +13 40 s40/6 3.76373220 +13 40 s40/8 3.48075192 +13 40 s40/10 3.94937880 +15 3 s3/1 0.81508715 +15 3 s3/3 2.08386975 +15 3 s3/6 1.11396243 +15 3 s3/8 2.15629524 +15 3 s3/10 1.19636784 +15 4 s4/1 3.99937033 +15 4 s4/3 3.18177714 +15 4 s4/6 0.07587784 +15 4 s4/8 3.10658120 +15 4 s4/10 0.58904156 +15 7 s7/1 -2.77935294 +15 7 s7/3 -2.83897509 +15 7 s7/6 -2.27176326 +15 7 s7/8 -2.60704518 +15 7 s7/10 -0.32197261 +15 8 s8/1 0.88831150 +15 8 s8/3 -0.62053754 +15 8 s8/6 -0.68212676 +15 8 s8/8 -1.03224168 +15 8 s8/10 -1.74376893 +15 9 s9/1 3.25792491 +15 9 s9/3 3.18700252 +15 9 s9/6 2.86347968 +15 9 s9/8 3.49254236 +15 9 s9/10 2.56572052 +15 13 s13/1 1.00950772 +15 13 s13/3 0.46230090 +15 13 s13/6 1.09856684 +15 13 s13/8 -0.47047604 +15 13 s13/10 -0.02909511 +15 15 s15/1 0.52543966 +15 15 s15/3 0.46512677 +15 15 s15/6 0.45328319 +15 15 s15/8 2.18390545 +15 15 s15/10 8.01864513 +15 18 s18/1 0.16585416 +15 18 s18/3 1.19065172 +15 18 s18/6 0.73898294 +15 18 s18/8 1.95532590 +15 18 s18/10 1.54215967 +15 19 s19/1 -2.90263986 +15 19 s19/3 -2.24374661 +15 19 s19/6 -2.48673165 +15 19 s19/8 -2.78166397 +15 19 s19/10 -2.86809605 +15 22 s22/1 1.98709961 +15 22 s22/3 2.34138725 +15 22 s22/6 -0.50773947 +15 22 s22/8 1.79141192 +15 22 s22/10 2.64086778 +15 23 s23/1 1.08340613 +15 23 s23/3 2.03019375 +15 23 s23/6 3.33081782 +15 23 s23/8 0.28754449 +15 23 s23/10 0.29323222 +15 25 s25/1 4.91917152 +15 25 s25/3 3.98469866 +15 25 s25/6 5.51048669 +15 25 s25/8 4.22674818 +15 25 s25/10 3.31852367 +15 28 s28/1 -0.38157658 +15 28 s28/3 0.45249883 +15 28 s28/6 0.60854411 +15 28 s28/8 -0.84515492 +15 28 s28/10 -2.07590731 +15 30 s30/1 2.35032486 +15 30 s30/3 3.04358984 +15 30 s30/6 2.06937939 +15 30 s30/8 2.24018482 +15 30 s30/10 2.79872954 +15 31 s31/1 6.09812095 +15 31 s31/3 6.50878011 +15 31 s31/6 4.95012918 +15 31 s31/8 6.06910391 +15 31 s31/10 7.31302378 +15 32 s32/1 -0.90860503 +15 32 s32/3 1.49935397 +15 32 s32/6 -3.95841719 +15 32 s32/8 -2.51360486 +15 32 s32/10 -3.98980690 +15 35 s35/1 6.12890547 +15 35 s35/3 5.44620797 +15 35 s35/6 3.04737618 +15 35 s35/8 3.53172158 +15 35 s35/10 4.13379325 +15 37 s37/1 0.04858304 +15 37 s37/3 0.22827950 +15 37 s37/6 -1.24379118 +15 37 s37/8 -0.74835149 +15 37 s37/10 -1.85928094 +15 38 s38/1 1.47385864 +15 38 s38/3 2.28004246 +15 38 s38/6 1.06983367 +15 38 s38/8 1.34289374 +15 38 s38/10 1.41176846 +15 40 s40/1 1.88853006 +15 40 s40/3 3.31764917 +15 40 s40/6 2.41317735 +15 40 s40/8 1.89740105 +15 40 s40/10 2.43666527 +18 3 s3/1 0.54855241 +18 3 s3/3 1.12381438 +18 3 s3/6 0.38257384 +18 3 s3/8 1.15108376 +18 3 s3/10 1.93358993 +18 4 s4/1 2.63343417 +18 4 s4/3 2.92560650 +18 4 s4/6 2.62542845 +18 4 s4/8 2.69678608 +18 4 s4/10 3.62817470 +18 7 s7/1 -1.52809624 +18 7 s7/3 -0.73758090 +18 7 s7/6 0.03599235 +18 7 s7/8 -0.05935077 +18 7 s7/10 0.32228929 +18 8 s8/1 -2.61058669 +18 8 s8/3 -3.52386160 +18 8 s8/6 -3.85777674 +18 8 s8/8 -2.22910761 +18 8 s8/10 -3.34917978 +18 9 s9/1 1.52711896 +18 9 s9/3 0.87830147 +18 9 s9/6 1.48891595 +18 9 s9/8 1.33315517 +18 9 s9/10 1.22676709 +18 13 s13/1 3.96702323 +18 13 s13/3 3.13482986 +18 13 s13/6 3.91330173 +18 13 s13/8 1.82731125 +18 13 s13/10 2.30825651 +18 15 s15/1 -0.93763363 +18 15 s15/3 -0.85233105 +18 15 s15/6 -0.79435480 +18 15 s15/8 -0.43344402 +18 15 s15/10 2.87570741 +18 18 s18/1 5.17041966 +18 18 s18/3 4.19777949 +18 18 s18/6 4.78197498 +18 18 s18/8 5.07360616 +18 18 s18/10 5.08970063 +18 19 s19/1 1.46650197 +18 19 s19/3 1.82151138 +18 19 s19/6 2.11048131 +18 19 s19/8 -1.76289037 +18 19 s19/10 1.53889387 +18 22 s22/1 -2.34325009 +18 22 s22/3 -2.23833364 +18 22 s22/6 -1.28272420 +18 22 s22/8 -2.68439760 +18 22 s22/10 -2.16347921 +18 23 s23/1 0.55020775 +18 23 s23/3 2.42402842 +18 23 s23/6 2.33581593 +18 23 s23/8 0.83571331 +18 23 s23/10 -0.08727650 +18 25 s25/1 4.27291989 +18 25 s25/3 3.82850790 +18 25 s25/6 3.95204496 +18 25 s25/8 2.87561879 +18 25 s25/10 3.89281356 +18 28 s28/1 0.67374378 +18 28 s28/3 1.25210674 +18 28 s28/6 0.46746669 +18 28 s28/8 2.34344527 +18 28 s28/10 1.75840809 +18 30 s30/1 0.92849183 +18 30 s30/3 1.13474427 +18 30 s30/6 -0.00580822 +18 30 s30/8 -0.45027675 +18 30 s30/10 0.45329700 +18 31 s31/1 0.99715896 +18 31 s31/3 0.66382339 +18 31 s31/6 1.27221510 +18 31 s31/8 0.97443746 +18 31 s31/10 1.22786382 +18 32 s32/1 1.13220022 +18 32 s32/3 4.04034981 +18 32 s32/6 0.83701829 +18 32 s32/8 3.39850748 +18 32 s32/10 1.63406913 +18 35 s35/1 2.89601366 +18 35 s35/3 1.69220380 +18 35 s35/6 2.66793959 +18 35 s35/8 2.99545472 +18 35 s35/10 2.34164734 +18 37 s37/1 3.88853994 +18 37 s37/3 3.58875673 +18 37 s37/6 -3.12730276 +18 37 s37/8 -3.01687625 +18 37 s37/10 2.00267538 +18 38 s38/1 -1.30930422 +18 38 s38/3 0.30933567 +18 38 s38/6 -0.93245877 +18 38 s38/8 0.78574927 +18 38 s38/10 -0.16275989 +18 40 s40/1 4.23476966 +18 40 s40/3 4.55465517 +18 40 s40/6 3.82472069 +18 40 s40/8 3.50952359 +18 40 s40/10 3.09853645 +19 3 s3/1 0.09818726 +19 3 s3/3 -0.94025379 +19 3 s3/6 -0.89518604 +19 3 s3/8 -1.07037097 +19 3 s3/10 -1.11244625 +19 4 s4/1 -2.44147198 +19 4 s4/3 -1.86546678 +19 4 s4/6 -0.54235845 +19 4 s4/8 -1.82105300 +19 4 s4/10 -1.32921852 +19 7 s7/1 1.64677300 +19 7 s7/3 2.22296720 +19 7 s7/6 1.92559577 +19 7 s7/8 2.06867609 +19 7 s7/10 0.51421556 +19 8 s8/1 -0.48386526 +19 8 s8/3 0.92661985 +19 8 s8/6 0.88201534 +19 8 s8/8 1.21442334 +19 8 s8/10 1.61417869 +19 9 s9/1 -1.79702873 +19 9 s9/3 -1.33241652 +19 9 s9/6 -1.98394275 +19 9 s9/8 -1.98231882 +19 9 s9/10 -1.80982844 +19 13 s13/1 -0.00070958 +19 13 s13/3 -0.21942028 +19 13 s13/6 -0.41712263 +19 13 s13/8 0.59169280 +19 13 s13/10 -0.25186511 +19 15 s15/1 0.72024790 +19 15 s15/3 0.93043252 +19 15 s15/6 0.84421131 +19 15 s15/8 -0.31649302 +19 15 s15/10 -4.08854645 +19 18 s18/1 -0.33075774 +19 18 s18/3 -1.31283472 +19 18 s18/6 -0.59985061 +19 18 s18/8 -1.33697683 +19 18 s18/10 -1.27305387 +19 19 s19/1 4.99085809 +19 19 s19/3 4.33146914 +19 19 s19/6 5.98217107 +19 19 s19/8 3.65953449 +19 19 s19/10 5.36089281 +19 22 s22/1 -0.88899755 +19 22 s22/3 -1.47178062 +19 22 s22/6 0.67652322 +19 22 s22/8 -1.10199980 +19 22 s22/10 -1.43222194 +19 23 s23/1 -0.49868089 +19 23 s23/3 -0.97543078 +19 23 s23/6 -1.86033693 +19 23 s23/8 -0.61655987 +19 23 s23/10 -0.30194120 +19 25 s25/1 -3.37938088 +19 25 s25/3 -2.55051990 +19 25 s25/6 -3.58700289 +19 25 s25/8 -2.62843510 +19 25 s25/10 -2.65950419 +19 28 s28/1 -0.71106610 +19 28 s28/3 -0.96611158 +19 28 s28/6 -1.73455262 +19 28 s28/8 0.69545951 +19 28 s28/10 -0.13991690 +19 30 s30/1 -2.46821571 +19 30 s30/3 -3.62441528 +19 30 s30/6 -2.25547110 +19 30 s30/8 -3.15210011 +19 30 s30/10 -2.24997202 +19 31 s31/1 -3.97745474 +19 31 s31/3 -4.04033739 +19 31 s31/6 -3.20007398 +19 31 s31/8 -3.84109011 +19 31 s31/10 -4.62856702 +19 32 s32/1 0.97259263 +19 32 s32/3 0.75289863 +19 32 s32/6 3.47529061 +19 32 s32/8 3.30553936 +19 32 s32/10 3.09533056 +19 35 s35/1 -2.79990368 +19 35 s35/3 -2.10228544 +19 35 s35/6 -1.69296255 +19 35 s35/8 -1.20944575 +19 35 s35/10 -1.38552109 +19 37 s37/1 -0.43170369 +19 37 s37/3 -0.37431488 +19 37 s37/6 0.95847988 +19 37 s37/8 1.23229400 +19 37 s37/10 1.36186804 +19 38 s38/1 -1.59235640 +19 38 s38/3 -0.57953918 +19 38 s38/6 -0.99252956 +19 38 s38/8 -1.35648938 +19 38 s38/10 -0.67040131 +19 40 s40/1 -1.13219869 +19 40 s40/3 -2.24126287 +19 40 s40/6 -1.07631631 +19 40 s40/8 -0.55254316 +19 40 s40/10 -2.09243509 +22 3 s3/1 0.16857284 +22 3 s3/3 1.36315425 +22 3 s3/6 -0.21386030 +22 3 s3/8 1.52373847 +22 3 s3/10 1.40557431 +22 4 s4/1 -0.57391237 +22 4 s4/3 -0.31819275 +22 4 s4/6 -2.45853932 +22 4 s4/8 -0.78089486 +22 4 s4/10 -0.81909528 +22 7 s7/1 -1.02402922 +22 7 s7/3 -2.18896749 +22 7 s7/6 -2.41223290 +22 7 s7/8 -3.25552000 +22 7 s7/10 -0.38648476 +22 8 s8/1 -0.44398214 +22 8 s8/3 -1.42351169 +22 8 s8/6 -1.38786300 +22 8 s8/8 -1.32190107 +22 8 s8/10 -2.47623921 +22 9 s9/1 -0.87060768 +22 9 s9/3 -1.05494234 +22 9 s9/6 -0.33487108 +22 9 s9/8 -0.40696340 +22 9 s9/10 -0.15292638 +22 13 s13/1 -1.32166368 +22 13 s13/3 -1.59058352 +22 13 s13/6 -0.63238187 +22 13 s13/8 -0.97521152 +22 13 s13/10 -0.31391480 +22 15 s15/1 1.17547758 +22 15 s15/3 0.73012867 +22 15 s15/6 1.19498929 +22 15 s15/8 1.84189628 +22 15 s15/10 3.59782258 +22 18 s18/1 -1.31141168 +22 18 s18/3 -1.44099165 +22 18 s18/6 -2.10900854 +22 18 s18/8 -1.56280537 +22 18 s18/10 -1.53482860 +22 19 s19/1 -2.31249859 +22 19 s19/3 -2.38454336 +22 19 s19/6 -2.91873952 +22 19 s19/8 -2.83699889 +22 19 s19/10 -1.74398400 +22 22 s22/1 6.68442070 +22 22 s22/3 7.28794077 +22 22 s22/6 2.42701325 +22 22 s22/8 6.82845140 +22 22 s22/10 5.95228847 +22 23 s23/1 -2.56722889 +22 23 s23/3 -2.10186871 +22 23 s23/6 -0.12637866 +22 23 s23/8 -1.09624222 +22 23 s23/10 -1.66836951 +22 25 s25/1 -0.65296183 +22 25 s25/3 -0.61710110 +22 25 s25/6 -0.32293746 +22 25 s25/8 1.53529039 +22 25 s25/10 -0.66940965 +22 28 s28/1 -0.53025262 +22 28 s28/3 0.25654839 +22 28 s28/6 -0.00042533 +22 28 s28/8 -1.33640859 +22 28 s28/10 0.12097342 +22 30 s30/1 1.74964065 +22 30 s30/3 3.28066002 +22 30 s30/6 1.30933319 +22 30 s30/8 2.94427656 +22 30 s30/10 1.96460268 +22 31 s31/1 3.55514586 +22 31 s31/3 6.62831940 +22 31 s31/6 2.93965394 +22 31 s31/8 3.55837042 +22 31 s31/10 6.17235303 +22 32 s32/1 -2.25879160 +22 32 s32/3 0.38840189 +22 32 s32/6 -4.23002659 +22 32 s32/8 -4.71271775 +22 32 s32/10 -3.71916935 +22 35 s35/1 3.15268903 +22 35 s35/3 2.08335832 +22 35 s35/6 2.30558849 +22 35 s35/8 1.87851535 +22 35 s35/10 3.49414217 +22 37 s37/1 -2.29735422 +22 37 s37/3 -2.07039060 +22 37 s37/6 1.27418144 +22 37 s37/8 2.02518918 +22 37 s37/10 -1.98953348 +22 38 s38/1 1.08267936 +22 38 s38/3 0.25520871 +22 38 s38/6 0.45551754 +22 38 s38/8 -0.13331499 +22 38 s38/10 -0.61819885 +22 40 s40/1 0.20919427 +22 40 s40/3 1.06261284 +22 40 s40/6 1.35553426 +22 40 s40/8 0.94334892 +22 40 s40/10 2.12922615 +23 3 s3/1 0.49553492 +23 3 s3/3 1.01425436 +23 3 s3/6 1.19573381 +23 3 s3/8 0.92023818 +23 3 s3/10 0.93501957 +23 4 s4/1 2.18406345 +23 4 s4/3 1.81329615 +23 4 s4/6 1.70637982 +23 4 s4/8 1.81783965 +23 4 s4/10 1.75963426 +23 7 s7/1 -0.61694701 +23 7 s7/3 -0.72017224 +23 7 s7/6 -1.19831572 +23 7 s7/8 -1.23780121 +23 7 s7/10 -0.37491415 +23 8 s8/1 0.72410118 +23 8 s8/3 0.88587428 +23 8 s8/6 0.78257308 +23 8 s8/8 0.94720095 +23 8 s8/10 0.69316803 +23 9 s9/1 2.10875614 +23 9 s9/3 1.95576282 +23 9 s9/6 2.11417391 +23 9 s9/8 2.15440269 +23 9 s9/10 1.71177284 +23 13 s13/1 1.46553609 +23 13 s13/3 0.77985485 +23 13 s13/6 1.64001651 +23 13 s13/8 0.56069658 +23 13 s13/10 1.14694556 +23 15 s15/1 -0.78837652 +23 15 s15/3 -0.81936650 +23 15 s15/6 -0.90744648 +23 15 s15/8 0.07965161 +23 15 s15/10 1.98666809 +23 18 s18/1 1.78498795 +23 18 s18/3 1.59654926 +23 18 s18/6 1.55540346 +23 18 s18/8 1.69981652 +23 18 s18/10 1.75424177 +23 19 s19/1 -0.98483637 +23 19 s19/3 -0.73614736 +23 19 s19/6 -1.08264827 +23 19 s19/8 -1.37399144 +23 19 s19/10 -1.16838101 +23 22 s22/1 -0.67318028 +23 22 s22/3 -0.26805982 +23 22 s22/6 -1.42981938 +23 22 s22/8 -0.81487229 +23 22 s22/10 -0.70329642 +23 23 s23/1 2.06743727 +23 23 s23/3 2.07589670 +23 23 s23/6 2.43562916 +23 23 s23/8 1.47963201 +23 23 s23/10 1.62845176 +23 25 s25/1 3.01208651 +23 25 s25/3 2.33692327 +23 25 s25/6 2.65970509 +23 25 s25/8 2.32693516 +23 25 s25/10 2.51848351 +23 28 s28/1 1.14831339 +23 28 s28/3 1.07025452 +23 28 s28/6 1.31680115 +23 28 s28/8 1.32605858 +23 28 s28/10 -0.00008428 +23 30 s30/1 1.23644025 +23 30 s30/3 1.48872803 +23 30 s30/6 0.99484703 +23 30 s30/8 0.88432765 +23 30 s30/10 1.17299651 +23 31 s31/1 2.61025171 +23 31 s31/3 1.53314850 +23 31 s31/6 2.29958044 +23 31 s31/8 2.56785749 +23 31 s31/10 1.70438586 +23 32 s32/1 -0.47358699 +23 32 s32/3 0.55497229 +23 32 s32/6 -1.72305845 +23 32 s32/8 -0.68055522 +23 32 s32/10 -1.40603980 +23 35 s35/1 2.43217815 +23 35 s35/3 1.81868240 +23 35 s35/6 1.35521393 +23 35 s35/8 1.59819911 +23 35 s35/10 1.11320850 +23 37 s37/1 0.86426451 +23 37 s37/3 0.87886432 +23 37 s37/6 -0.94603051 +23 37 s37/8 -0.65678748 +23 37 s37/10 0.39870196 +23 38 s38/1 1.39401574 +23 38 s38/3 1.19751336 +23 38 s38/6 1.29541383 +23 38 s38/8 1.43213431 +23 38 s38/10 0.69282310 +23 40 s40/1 1.12121739 +23 40 s40/3 1.86049035 +23 40 s40/6 1.29666542 +23 40 s40/8 0.93394001 +23 40 s40/10 0.90359420 +25 3 s3/1 2.10950624 +25 3 s3/3 2.08355593 +25 3 s3/6 2.25710651 +25 3 s3/8 2.74084647 +25 3 s3/10 1.98084416 +25 4 s4/1 5.67365121 +25 4 s4/3 4.84259007 +25 4 s4/6 2.69224050 +25 4 s4/8 4.90438456 +25 4 s4/10 3.27511880 +25 7 s7/1 -3.44173289 +25 7 s7/3 -3.24709830 +25 7 s7/6 -2.72777728 +25 7 s7/8 -2.58963877 +25 7 s7/10 -1.13976465 +25 8 s8/1 0.79042655 +25 8 s8/3 -0.34814650 +25 8 s8/6 -0.50311648 +25 8 s8/8 -0.33361781 +25 8 s8/10 -1.18926269 +25 9 s9/1 4.73019968 +25 9 s9/3 3.93120931 +25 9 s9/6 4.81455438 +25 9 s9/8 4.77940885 +25 9 s9/10 3.37845323 +25 13 s13/1 4.13014705 +25 13 s13/3 2.76396145 +25 13 s13/6 3.34158993 +25 13 s13/8 1.42251921 +25 13 s13/10 2.00710762 +25 15 s15/1 -2.03709119 +25 15 s15/3 -2.04141613 +25 15 s15/6 -1.90088832 +25 15 s15/8 0.40185313 +25 15 s15/10 7.69224021 +25 18 s18/1 3.05294207 +25 18 s18/3 4.03787347 +25 18 s18/6 3.46578373 +25 18 s18/8 4.87788854 +25 18 s18/10 4.68231062 +25 19 s19/1 -2.96964788 +25 19 s19/3 -1.73200410 +25 19 s19/6 -2.23905078 +25 19 s19/8 -3.30338995 +25 19 s19/10 -2.76460122 +25 22 s22/1 0.35324506 +25 22 s22/3 0.68379912 +25 22 s22/6 -1.30996297 +25 22 s22/8 -0.13643764 +25 22 s22/10 1.43193860 +25 23 s23/1 2.94389984 +25 23 s23/3 3.85577144 +25 23 s23/6 4.98058869 +25 23 s23/8 0.82763693 +25 23 s23/10 1.75918781 +25 25 s25/1 8.45854794 +25 25 s25/3 6.66541517 +25 25 s25/6 8.60732510 +25 25 s25/8 5.61310939 +25 25 s25/10 6.73339245 +25 28 s28/1 1.11451539 +25 28 s28/3 1.36598367 +25 28 s28/6 2.00687003 +25 28 s28/8 0.28539785 +25 28 s28/10 -0.38365250 +25 30 s30/1 2.40769119 +25 30 s30/3 3.13147834 +25 30 s30/6 1.83154945 +25 30 s30/8 1.26192820 +25 30 s30/10 2.33071108 +25 31 s31/1 6.23107529 +25 31 s31/3 4.49541538 +25 31 s31/6 5.02676804 +25 31 s31/8 6.28055115 +25 31 s31/10 4.63956339 +25 32 s32/1 -1.16359690 +25 32 s32/3 2.36252993 +25 32 s32/6 -3.65837572 +25 32 s32/8 -1.47794147 +25 32 s32/10 -3.98085127 +25 35 s35/1 6.77722694 +25 35 s35/3 6.14889709 +25 35 s35/6 3.87872311 +25 35 s35/8 4.70411156 +25 35 s35/10 3.43630916 +25 37 s37/1 2.02508349 +25 37 s37/3 1.66515816 +25 37 s37/6 -3.63550144 +25 37 s37/8 -2.67369065 +25 37 s37/10 -0.05713393 +25 38 s38/1 1.68961093 +25 38 s38/3 2.97710835 +25 38 s38/6 1.42905949 +25 38 s38/8 3.17407047 +25 38 s38/10 1.79704389 +25 40 s40/1 3.35836924 +25 40 s40/3 4.86859905 +25 40 s40/6 3.22565862 +25 40 s40/8 2.36466229 +25 40 s40/10 2.97309470 +28 3 s3/1 0.44557882 +28 3 s3/3 -0.05789320 +28 3 s3/6 0.64910537 +28 3 s3/8 -1.03865385 +28 3 s3/10 -0.64463651 +28 4 s4/1 -2.29927759 +28 4 s4/3 -1.80167414 +28 4 s4/6 0.46820240 +28 4 s4/8 -1.61115550 +28 4 s4/10 0.79020712 +28 7 s7/1 2.22917384 +28 7 s7/3 2.44793297 +28 7 s7/6 0.48153490 +28 7 s7/8 0.16731251 +28 7 s7/10 0.81422179 +28 8 s8/1 -0.25747924 +28 8 s8/3 0.73581652 +28 8 s8/6 0.24777803 +28 8 s8/8 0.82843832 +28 8 s8/10 0.72885857 +28 9 s9/1 -1.89148262 +28 9 s9/3 -1.76821096 +28 9 s9/6 -0.66038634 +28 9 s9/8 -0.89915111 +28 9 s9/10 -1.00776568 +28 13 s13/1 -1.15718096 +28 13 s13/3 -0.58893123 +28 13 s13/6 1.05875304 +28 13 s13/8 0.64143137 +28 13 s13/10 0.44717413 +28 15 s15/1 1.67342898 +28 15 s15/3 1.85610729 +28 15 s15/6 1.08929335 +28 15 s15/8 1.22454380 +28 15 s15/10 -2.77090006 +28 18 s18/1 0.38595101 +28 18 s18/3 0.63688406 +28 18 s18/6 -0.15165249 +28 18 s18/8 0.25670038 +28 18 s18/10 -0.27679024 +28 19 s19/1 0.77368986 +28 19 s19/3 0.43833210 +28 19 s19/6 -0.94075689 +28 19 s19/8 0.80294166 +28 19 s19/10 -0.25354454 +28 22 s22/1 0.89706626 +28 22 s22/3 0.73510065 +28 22 s22/6 0.28134282 +28 22 s22/8 0.74595845 +28 22 s22/10 -0.15157276 +28 23 s23/1 0.10415613 +28 23 s23/3 0.84356796 +28 23 s23/6 -0.22399488 +28 23 s23/8 0.21886776 +28 23 s23/10 0.70106557 +28 25 s25/1 -1.46969770 +28 25 s25/3 -0.87633515 +28 25 s25/6 -1.38827652 +28 25 s25/8 -0.53401843 +28 25 s25/10 -1.02657451 +28 28 s28/1 1.66719488 +28 28 s28/3 -0.44417281 +28 28 s28/6 1.14586570 +28 28 s28/8 1.40775861 +28 28 s28/10 -1.02328202 +28 30 s30/1 -0.28094112 +28 30 s30/3 -1.33859919 +28 30 s30/6 0.03565925 +28 30 s30/8 1.04623272 +28 30 s30/10 0.46015881 +28 31 s31/1 -1.97396815 +28 31 s31/3 1.48688128 +28 31 s31/6 -2.08502022 +28 31 s31/8 -2.11859371 +28 31 s31/10 2.26104696 +28 32 s32/1 2.51110334 +28 32 s32/3 1.28600007 +28 32 s32/6 3.68656927 +28 32 s32/8 3.76775608 +28 32 s32/10 4.17807000 +28 35 s35/1 0.01760985 +28 35 s35/3 -0.48111611 +28 35 s35/6 -1.26907915 +28 35 s35/8 -0.88043912 +28 35 s35/10 0.23739203 +28 37 s37/1 1.36780641 +28 37 s37/3 2.04326616 +28 37 s37/6 5.35564556 +28 37 s37/8 4.52529712 +28 37 s37/10 2.26105657 +28 38 s38/1 0.01649024 +28 38 s38/3 -1.56400313 +28 38 s38/6 -0.08178891 +28 38 s38/8 -1.08348184 +28 38 s38/10 -1.81030944 +28 40 s40/1 -0.89851465 +28 40 s40/3 -1.43881235 +28 40 s40/6 -0.07498321 +28 40 s40/8 -0.26878960 +28 40 s40/10 -0.96708118 +30 3 s3/1 -0.47170657 +30 3 s3/3 0.80868352 +30 3 s3/6 0.68843504 +30 3 s3/8 0.47748552 +30 3 s3/10 0.48279552 +30 4 s4/1 1.38266163 +30 4 s4/3 1.23929348 +30 4 s4/6 0.03981755 +30 4 s4/8 1.04071178 +30 4 s4/10 0.99877897 +30 7 s7/1 -0.95897978 +30 7 s7/3 -1.43213544 +30 7 s7/6 -1.81983352 +30 7 s7/8 -2.40587871 +30 7 s7/10 -0.01258109 +30 8 s8/1 0.14004953 +30 8 s8/3 -1.43652958 +30 8 s8/6 -1.55275364 +30 8 s8/8 -1.64391493 +30 8 s8/10 -2.27948784 +30 9 s9/1 0.58387974 +30 9 s9/3 0.17591426 +30 9 s9/6 1.18696937 +30 9 s9/8 1.05159854 +30 9 s9/10 1.36813725 +30 13 s13/1 -0.43475041 +30 13 s13/3 -0.10543433 +30 13 s13/6 0.85522411 +30 13 s13/8 -0.46563020 +30 13 s13/10 0.33377378 +30 15 s15/1 0.45215947 +30 15 s15/3 0.15965395 +30 15 s15/6 0.18348134 +30 15 s15/8 1.07544328 +30 15 s15/10 3.52243327 +30 18 s18/1 0.33924399 +30 18 s18/3 1.35069049 +30 18 s18/6 0.32003513 +30 18 s18/8 1.18657847 +30 18 s18/10 0.72097380 +30 19 s19/1 -3.69116624 +30 19 s19/3 -3.28162524 +30 19 s19/6 -5.14328532 +30 19 s19/8 -2.91110946 +30 19 s19/10 -4.51837032 +30 22 s22/1 1.36933584 +30 22 s22/3 1.91443369 +30 22 s22/6 -0.16500444 +30 22 s22/8 1.37522958 +30 22 s22/10 1.49754054 +30 23 s23/1 -0.06551355 +30 23 s23/3 0.98255675 +30 23 s23/6 1.33326450 +30 23 s23/8 0.51874831 +30 23 s23/10 -0.13383796 +30 25 s25/1 2.25779810 +30 25 s25/3 1.65478657 +30 25 s25/6 2.64062452 +30 25 s25/8 2.07875390 +30 25 s25/10 1.64414816 +30 28 s28/1 0.55242947 +30 28 s28/3 0.59524325 +30 28 s28/6 1.26893605 +30 28 s28/8 -0.42363808 +30 28 s28/10 -0.79863900 +30 30 s30/1 2.18788791 +30 30 s30/3 2.94458329 +30 30 s30/6 2.29976590 +30 30 s30/8 3.95064826 +30 30 s30/10 2.42576545 +30 31 s31/1 3.09986239 +30 31 s31/3 5.10235755 +30 31 s31/6 2.72258531 +30 31 s31/8 2.86838076 +30 31 s31/10 5.95095903 +30 32 s32/1 0.52192949 +30 32 s32/3 0.53245247 +30 32 s32/6 -1.90057400 +30 32 s32/8 -1.24253973 +30 32 s32/10 -1.23957138 +30 35 s35/1 2.46858721 +30 35 s35/3 2.13037540 +30 35 s35/6 1.14883078 +30 35 s35/8 1.11405625 +30 35 s35/10 2.34538943 +30 37 s37/1 0.42371048 +30 37 s37/3 0.72055620 +30 37 s37/6 0.84416372 +30 37 s37/8 0.09624175 +30 37 s37/10 -0.84486741 +30 38 s38/1 0.88928377 +30 38 s38/3 -0.72370594 +30 38 s38/6 0.43510458 +30 38 s38/8 0.33473529 +30 38 s38/10 -0.62534493 +30 40 s40/1 0.79668486 +30 40 s40/3 1.78385308 +30 40 s40/6 1.24030550 +30 40 s40/8 0.40110918 +30 40 s40/10 1.81807700 +31 3 s3/1 0.12005325 +31 3 s3/3 1.02864844 +31 3 s3/6 1.27426465 +31 3 s3/8 1.62237237 +31 3 s3/10 0.76980047 +31 4 s4/1 1.14180555 +31 4 s4/3 0.58758663 +31 4 s4/6 -1.10981324 +31 4 s4/8 0.60655320 +31 4 s4/10 0.93687921 +31 7 s7/1 -1.32177550 +31 7 s7/3 -1.25202039 +31 7 s7/6 -2.24800581 +31 7 s7/8 -3.62823390 +31 7 s7/10 0.92469683 +31 8 s8/1 0.62602170 +31 8 s8/3 -0.26812679 +31 8 s8/6 -0.87153961 +31 8 s8/8 0.02432832 +31 8 s8/10 -1.97474106 +31 9 s9/1 0.66314784 +31 9 s9/3 1.06036356 +31 9 s9/6 2.19840506 +31 9 s9/8 1.79779862 +31 9 s9/10 3.00915675 +31 13 s13/1 -3.59640126 +31 13 s13/3 -2.18940151 +31 13 s13/6 -0.31740674 +31 13 s13/8 -2.00890135 +31 13 s13/10 -1.73431239 +31 15 s15/1 1.37486934 +31 15 s15/3 1.01629411 +31 15 s15/6 0.66965018 +31 15 s15/8 3.25084421 +31 15 s15/10 7.14767937 +31 18 s18/1 -0.64776847 +31 18 s18/3 -0.65713044 +31 18 s18/6 -1.03395364 +31 18 s18/8 -0.02285022 +31 18 s18/10 -0.48502189 +31 19 s19/1 -4.15692882 +31 19 s19/3 -3.51691255 +31 19 s19/6 -6.11964166 +31 19 s19/8 -3.65478022 +31 19 s19/10 -5.52850879 +31 22 s22/1 3.27329393 +31 22 s22/3 4.18939367 +31 22 s22/6 -0.10302939 +31 22 s22/8 2.66763322 +31 22 s22/10 2.85073542 +31 23 s23/1 0.05156436 +31 23 s23/3 2.24804578 +31 23 s23/6 2.39728348 +31 23 s23/8 0.45098525 +31 23 s23/10 -0.35903724 +31 25 s25/1 3.28557939 +31 25 s25/3 2.98503344 +31 25 s25/6 4.60043205 +31 25 s25/8 4.03700101 +31 25 s25/10 1.69562773 +31 28 s28/1 -0.50463465 +31 28 s28/3 -1.47228009 +31 28 s28/6 0.62610131 +31 28 s28/8 -1.43433835 +31 28 s28/10 -3.36438092 +31 30 s30/1 3.01721630 +31 30 s30/3 3.51812048 +31 30 s30/6 2.96635848 +31 30 s30/8 4.82318229 +31 30 s30/10 3.42143669 +31 31 s31/1 6.99994537 +31 31 s31/3 13.15407979 +31 31 s31/6 6.94888837 +31 31 s31/8 6.84522483 +31 31 s31/10 14.29430450 +31 32 s32/1 0.03884037 +31 32 s32/3 1.91540930 +31 32 s32/6 -3.60325217 +31 32 s32/8 -3.29855376 +31 32 s32/10 -3.23875644 +31 35 s35/1 6.37533343 +31 35 s35/3 5.18327323 +31 35 s35/6 2.45818118 +31 35 s35/8 3.22205563 +31 35 s35/10 5.85292557 +31 37 s37/1 -0.96356797 +31 37 s37/3 -0.62712716 +31 37 s37/6 2.76508547 +31 37 s37/8 1.67356297 +31 37 s37/10 -2.71970779 +31 38 s38/1 0.69074592 +31 38 s38/3 -1.87811484 +31 38 s38/6 0.52382720 +31 38 s38/8 -0.90285846 +31 38 s38/10 -1.89301779 +31 40 s40/1 -0.80691079 +31 40 s40/3 2.28785128 +31 40 s40/6 0.17570244 +31 40 s40/8 -0.29583530 +31 40 s40/10 -0.09076511 +32 3 s3/1 0.35159077 +32 3 s3/3 -0.63456940 +32 3 s3/6 -0.76604593 +32 3 s3/8 -1.65919759 +32 3 s3/10 -0.86398114 +32 4 s4/1 -1.79898324 +32 4 s4/3 -1.32927532 +32 4 s4/6 -0.24977808 +32 4 s4/8 -1.48592583 +32 4 s4/10 0.47063885 +32 7 s7/1 1.68077350 +32 7 s7/3 2.17515389 +32 7 s7/6 1.95277903 +32 7 s7/8 1.73841668 +32 7 s7/10 1.38890226 +32 8 s8/1 -3.20956642 +32 8 s8/3 -3.38041480 +32 8 s8/6 -3.70438038 +32 8 s8/8 -2.71051455 +32 8 s8/10 -2.80487414 +32 9 s9/1 -2.65700126 +32 9 s9/3 -2.79748716 +32 9 s9/6 -2.33469026 +32 9 s9/8 -2.05104426 +32 9 s9/10 -1.79321750 +32 13 s13/1 1.19931299 +32 13 s13/3 1.22339664 +32 13 s13/6 1.85757689 +32 13 s13/8 1.28671597 +32 13 s13/10 1.20394193 +32 15 s15/1 1.22974092 +32 15 s15/3 1.54458383 +32 15 s15/6 1.52582960 +32 15 s15/8 0.49793926 +32 15 s15/10 -2.96215517 +32 18 s18/1 2.04666453 +32 18 s18/3 2.21453872 +32 18 s18/6 2.12340969 +32 18 s18/8 2.25210947 +32 18 s18/10 1.38719536 +32 19 s19/1 3.81792550 +32 19 s19/3 3.50437350 +32 19 s19/6 4.05727561 +32 19 s19/8 1.40241603 +32 19 s19/10 3.69464300 +32 22 s22/1 -0.44915358 +32 22 s22/3 -1.34059123 +32 22 s22/6 1.04977822 +32 22 s22/8 -0.82226625 +32 22 s22/10 -0.76465070 +32 23 s23/1 -1.23392386 +32 23 s23/3 0.16039408 +32 23 s23/6 -1.28454657 +32 23 s23/8 -0.97590221 +32 23 s23/10 -1.53418112 +32 25 s25/1 -1.15734758 +32 25 s25/3 -1.10077375 +32 25 s25/6 -1.28121286 +32 25 s25/8 -1.76046793 +32 25 s25/10 -1.46544590 +32 28 s28/1 0.20614386 +32 28 s28/3 -1.10357989 +32 28 s28/6 -0.67666585 +32 28 s28/8 0.68655708 +32 28 s28/10 0.07705141 +32 30 s30/1 -2.15843836 +32 30 s30/3 -2.73980501 +32 30 s30/6 -1.70054937 +32 30 s30/8 -0.73641338 +32 30 s30/10 -1.53909008 +32 31 s31/1 -4.35445273 +32 31 s31/3 -1.73794302 +32 31 s31/6 -3.69886515 +32 31 s31/8 -4.52998313 +32 31 s31/10 -1.09296166 +32 32 s32/1 4.03881700 +32 32 s32/3 3.70940356 +32 32 s32/6 6.42332465 +32 32 s32/8 7.25344221 +32 32 s32/10 6.89106798 +32 35 s35/1 -2.27268326 +32 35 s35/3 -0.87615388 +32 35 s35/6 -1.60963244 +32 35 s35/8 -0.70453931 +32 35 s35/10 0.40596483 +32 37 s37/1 1.78721932 +32 37 s37/3 2.01697684 +32 37 s37/6 2.10589671 +32 37 s37/8 1.52097545 +32 37 s37/10 2.47084998 +32 38 s38/1 -3.12389559 +32 38 s38/3 -2.14089822 +32 38 s38/6 -2.65174473 +32 38 s38/8 -2.01092762 +32 38 s38/10 -2.10017005 +32 40 s40/1 1.20714606 +32 40 s40/3 0.38663301 +32 40 s40/6 0.33835287 +32 40 s40/8 0.29862581 +32 40 s40/10 0.62836443 +35 3 s3/1 1.51561167 +35 3 s3/3 1.33812661 +35 3 s3/6 1.08311661 +35 3 s3/8 2.37637319 +35 3 s3/10 1.98440005 +35 4 s4/1 4.00038998 +35 4 s4/3 3.51702362 +35 4 s4/6 1.11300351 +35 4 s4/8 3.64691036 +35 4 s4/10 2.25919214 +35 7 s7/1 -2.67558135 +35 7 s7/3 -2.27743746 +35 7 s7/6 -1.75939958 +35 7 s7/8 -2.27005231 +35 7 s7/10 0.12584468 +35 8 s8/1 -0.84362291 +35 8 s8/3 -1.34596319 +35 8 s8/6 -1.58944960 +35 8 s8/8 -0.71773974 +35 8 s8/10 -2.15426757 +35 9 s9/1 2.84988343 +35 9 s9/3 2.13359013 +35 9 s9/6 3.34911792 +35 9 s9/8 3.12510600 +35 9 s9/10 2.49780289 +35 13 s13/1 2.52042040 +35 13 s13/3 1.80461558 +35 13 s13/6 1.81133297 +35 13 s13/8 1.00376020 +35 13 s13/10 1.14409693 +35 15 s15/1 -0.93472712 +35 15 s15/3 -1.20967423 +35 15 s15/6 -0.76110825 +35 15 s15/8 1.02231480 +35 15 s15/10 7.09691877 +35 18 s18/1 2.42373154 +35 18 s18/3 2.57398115 +35 18 s18/6 2.26306657 +35 18 s18/8 3.21307608 +35 18 s18/10 3.11714587 +35 19 s19/1 -1.64497948 +35 19 s19/3 -0.57115695 +35 19 s19/6 -1.49732617 +35 19 s19/8 -3.02476181 +35 19 s19/10 -1.68881658 +35 22 s22/1 1.61890203 +35 22 s22/3 2.05948905 +35 22 s22/6 -0.41919746 +35 22 s22/8 1.17219629 +35 22 s22/10 2.18559293 +35 23 s23/1 0.94168638 +35 23 s23/3 2.70298965 +35 23 s23/6 3.73634239 +35 23 s23/8 0.11725334 +35 23 s23/10 0.23705451 +35 25 s25/1 6.40681214 +35 25 s25/3 5.37679723 +35 25 s25/6 6.49531994 +35 25 s25/8 4.87677453 +35 25 s25/10 4.85833821 +35 28 s28/1 -0.34539112 +35 28 s28/3 0.53552435 +35 28 s28/6 0.40079428 +35 28 s28/8 -0.31742013 +35 28 s28/10 -0.67986854 +35 30 s30/1 1.83279806 +35 30 s30/3 2.64731310 +35 30 s30/6 1.37267333 +35 30 s30/8 1.62034368 +35 30 s30/10 1.74360104 +35 31 s31/1 5.58735155 +35 31 s31/3 6.36588591 +35 31 s31/6 5.20199426 +35 31 s31/8 5.68544347 +35 31 s31/10 6.24588853 +35 32 s32/1 -0.99453501 +35 32 s32/3 3.03245854 +35 32 s32/6 -3.74698461 +35 32 s32/8 -2.02823033 +35 32 s32/10 -3.70373903 +35 35 s35/1 6.45704252 +35 35 s35/3 6.06806590 +35 35 s35/6 4.03841850 +35 35 s35/8 4.91298773 +35 35 s35/10 5.44613965 +35 37 s37/1 0.88839755 +35 37 s37/3 0.51446319 +35 37 s37/6 -2.77389720 +35 37 s37/8 -1.93743319 +35 37 s37/10 -0.67540186 +35 38 s38/1 0.57476743 +35 38 s38/3 1.13816992 +35 38 s38/6 0.64087650 +35 38 s38/8 1.38880276 +35 38 s38/10 0.10701308 +35 40 s40/1 2.63853351 +35 40 s40/3 4.67027724 +35 40 s40/6 2.87429290 +35 40 s40/8 2.15018313 +35 40 s40/10 2.49627954 +37 3 s3/1 0.58256344 +37 3 s3/3 0.18831854 +37 3 s3/6 0.58134001 +37 3 s3/8 -0.55845372 +37 3 s3/10 -0.37968094 +37 4 s4/1 -1.76839521 +37 4 s4/3 -1.24024327 +37 4 s4/6 0.01884738 +37 4 s4/8 -1.41152177 +37 4 s4/10 0.44938655 +37 7 s7/1 1.11026758 +37 7 s7/3 1.36080357 +37 7 s7/6 0.12674490 +37 7 s7/8 -0.20265950 +37 7 s7/10 0.23627260 +37 8 s8/1 0.00645584 +37 8 s8/3 0.54276448 +37 8 s8/6 0.22896185 +37 8 s8/8 0.52787580 +37 8 s8/10 0.34488462 +37 9 s9/1 -1.25314790 +37 9 s9/3 -1.24405578 +37 9 s9/6 -0.33437696 +37 9 s9/8 -0.60709108 +37 9 s9/10 -0.68339474 +37 13 s13/1 -1.18661015 +37 13 s13/3 -0.62615515 +37 13 s13/6 0.44024626 +37 13 s13/8 0.05538406 +37 13 s13/10 -0.01184913 +37 15 s15/1 1.06564093 +37 15 s15/3 1.30071327 +37 15 s15/6 0.71725184 +37 15 s15/8 0.86749987 +37 15 s15/10 -1.40939223 +37 18 s18/1 -0.24097033 +37 18 s18/3 0.39360536 +37 18 s18/6 -0.43835428 +37 18 s18/8 0.17140357 +37 18 s18/10 -0.42002464 +37 19 s19/1 -0.17582033 +37 19 s19/3 -0.33611242 +37 19 s19/6 -1.47378029 +37 19 s19/8 0.24601713 +37 19 s19/10 -0.87164118 +37 22 s22/1 0.86087592 +37 22 s22/3 0.92489616 +37 22 s22/6 0.08252465 +37 22 s22/8 0.85878751 +37 22 s22/10 0.18247482 +37 23 s23/1 -0.23293415 +37 23 s23/3 0.57390828 +37 23 s23/6 -0.22474759 +37 23 s23/8 -0.08511014 +37 23 s23/10 0.26836114 +37 25 s25/1 -0.76000985 +37 25 s25/3 -0.39844787 +37 25 s25/6 -0.40997049 +37 25 s25/8 -0.57270450 +37 25 s25/10 -0.56756858 +37 28 s28/1 1.26940208 +37 28 s28/3 -0.28532628 +37 28 s28/6 1.03075551 +37 28 s28/8 0.48345870 +37 28 s28/10 -0.69148199 +37 30 s30/1 0.13856345 +37 30 s30/3 -0.50168222 +37 30 s30/6 0.49839496 +37 30 s30/8 1.29880269 +37 30 s30/10 0.60298464 +37 31 s31/1 -0.97648081 +37 31 s31/3 1.75126080 +37 31 s31/6 -0.84138922 +37 31 s31/8 -1.16065662 +37 31 s31/10 2.29238262 +37 32 s32/1 1.68746395 +37 32 s32/3 0.73103293 +37 32 s32/6 2.05003891 +37 32 s32/8 2.14035394 +37 32 s32/10 2.31869824 +37 35 s35/1 -0.21248832 +37 35 s35/3 -0.54762719 +37 35 s35/6 -0.93623393 +37 35 s35/8 -0.69814156 +37 35 s35/10 0.05132493 +37 37 s37/1 1.22218811 +37 37 s37/3 1.60177375 +37 37 s37/6 4.23599812 +37 37 s37/8 3.46718382 +37 37 s37/10 1.45681293 +37 38 s38/1 0.08887763 +37 38 s38/3 -1.34919162 +37 38 s38/6 -0.06821662 +37 38 s38/8 -0.52448005 +37 38 s38/10 -1.13257428 +37 40 s40/1 -1.20034476 +37 40 s40/3 -1.47237941 +37 40 s40/6 -0.30801995 +37 40 s40/8 -0.66476019 +37 40 s40/10 -0.62926694 +38 3 s3/1 1.20088334 +38 3 s3/3 2.05381709 +38 3 s3/6 0.68967068 +38 3 s3/8 1.49892580 +38 3 s3/10 1.08170361 +38 4 s4/1 1.64350464 +38 4 s4/3 1.89271725 +38 4 s4/6 0.84708049 +38 4 s4/8 1.34323869 +38 4 s4/10 0.01541648 +38 7 s7/1 -1.68889541 +38 7 s7/3 -1.69381532 +38 7 s7/6 -0.99894727 +38 7 s7/8 -0.39798474 +38 7 s7/10 -1.78899217 +38 8 s8/1 1.40716981 +38 8 s8/3 1.90032549 +38 8 s8/6 2.15357319 +38 8 s8/8 1.55357316 +38 8 s8/10 1.69966264 +38 9 s9/1 2.58183585 +38 9 s9/3 2.58559909 +38 9 s9/6 1.73449320 +38 9 s9/8 1.77954436 +38 9 s9/10 0.35545367 +38 13 s13/1 2.06725597 +38 13 s13/3 0.72239507 +38 13 s13/6 0.52188341 +38 13 s13/8 0.35215903 +38 13 s13/10 0.18197813 +38 15 s15/1 -0.88775766 +38 15 s15/3 -0.24127602 +38 15 s15/6 -0.52544286 +38 15 s15/8 -0.06216808 +38 15 s15/10 1.80910807 +38 18 s18/1 -0.31976156 +38 18 s18/3 0.26753783 +38 18 s18/6 0.00043219 +38 18 s18/8 0.41597015 +38 18 s18/10 0.56004050 +38 19 s19/1 -0.34887359 +38 19 s19/3 -0.35743809 +38 19 s19/6 1.33424860 +38 19 s19/8 -0.06542102 +38 19 s19/10 1.11368704 +38 22 s22/1 0.51898254 +38 22 s22/3 0.64500970 +38 22 s22/6 -0.59031152 +38 22 s22/8 0.91682306 +38 22 s22/10 0.85292414 +38 23 s23/1 1.14267710 +38 23 s23/3 0.23863795 +38 23 s23/6 1.52912659 +38 23 s23/8 0.12363643 +38 23 s23/10 1.34599114 +38 25 s25/1 1.45262399 +38 25 s25/3 1.19272950 +38 25 s25/6 1.26418956 +38 25 s25/8 1.06242779 +38 25 s25/10 0.99290345 +38 28 s28/1 0.66083160 +38 28 s28/3 1.55821102 +38 28 s28/6 0.74624455 +38 28 s28/8 1.00767085 +38 28 s28/10 0.29067028 +38 30 s30/1 0.45355097 +38 30 s30/3 0.57011105 +38 30 s30/6 0.35449644 +38 30 s30/8 -1.29210348 +38 30 s30/10 0.61041384 +38 31 s31/1 1.72054024 +38 31 s31/3 -1.40363188 +38 31 s31/6 1.22094730 +38 31 s31/8 1.92014565 +38 31 s31/10 -2.43176826 +38 32 s32/1 -2.92993754 +38 32 s32/3 -1.02056979 +38 32 s32/6 -2.59900866 +38 32 s32/8 -1.94281348 +38 32 s32/10 -2.82627470 +38 35 s35/1 1.21471226 +38 35 s35/3 0.88092923 +38 35 s35/6 0.63210192 +38 35 s35/8 0.41829240 +38 35 s35/10 -1.13285494 +38 37 s37/1 0.49197866 +38 37 s37/3 0.36311277 +38 37 s37/6 -1.66262709 +38 37 s37/8 -0.24623286 +38 37 s37/10 0.15647107 +38 38 s38/1 2.21881583 +38 38 s38/3 4.04768644 +38 38 s38/6 1.73580008 +38 38 s38/8 2.44377849 +38 38 s38/10 3.20263497 +38 40 s40/1 0.59623207 +38 40 s40/3 -0.16959524 +38 40 s40/6 1.15553086 +38 40 s40/8 0.97460891 +38 40 s40/10 1.13497059 +40 3 s3/1 1.82525366 +40 3 s3/3 1.88011376 +40 3 s3/6 1.10352547 +40 3 s3/8 1.83986781 +40 3 s3/10 1.90499412 +40 4 s4/1 4.50665375 +40 4 s4/3 4.01499641 +40 4 s4/6 1.62112818 +40 4 s4/8 4.02789400 +40 4 s4/10 1.80905526 +40 7 s7/1 -2.34683653 +40 7 s7/3 -1.79915165 +40 7 s7/6 -1.11085444 +40 7 s7/8 -1.15597157 +40 7 s7/10 0.13986808 +40 8 s8/1 -1.25230883 +40 8 s8/3 -1.52804949 +40 8 s8/6 -1.61038951 +40 8 s8/8 -1.45668349 +40 8 s8/10 -1.91200673 +40 9 s9/1 3.60620134 +40 9 s9/3 2.90986290 +40 9 s9/6 2.93635890 +40 9 s9/8 3.58666385 +40 9 s9/10 1.94235423 +40 13 s13/1 3.87750056 +40 13 s13/3 2.41751564 +40 13 s13/6 3.04369951 +40 13 s13/8 1.52346814 +40 13 s13/10 1.85933901 +40 15 s15/1 -0.39945219 +40 15 s15/3 -0.13683972 +40 15 s15/6 0.07414757 +40 15 s15/8 1.25365050 +40 15 s15/10 6.17151462 +40 18 s18/1 2.67857475 +40 18 s18/3 3.66075417 +40 18 s18/6 3.16944692 +40 18 s18/8 4.06220007 +40 18 s18/10 3.71136005 +40 19 s19/1 -0.12375713 +40 19 s19/3 0.50499007 +40 19 s19/6 1.33505840 +40 19 s19/8 -2.31070978 +40 19 s19/10 0.39070083 +40 22 s22/1 0.28708598 +40 22 s22/3 0.48180240 +40 22 s22/6 -1.18087100 +40 22 s22/8 0.31436715 +40 22 s22/10 1.05830870 +40 23 s23/1 1.85607315 +40 23 s23/3 3.46209312 +40 23 s23/6 4.23705320 +40 23 s23/8 0.32664371 +40 23 s23/10 0.96588601 +40 25 s25/1 5.84321111 +40 25 s25/3 4.97018077 +40 25 s25/6 5.74057487 +40 25 s25/8 4.70503925 +40 25 s25/10 4.15432920 +40 28 s28/1 0.43610666 +40 28 s28/3 0.97417104 +40 28 s28/6 0.81649323 +40 28 s28/8 0.93214483 +40 28 s28/10 -1.02296154 +40 30 s30/1 1.58311933 +40 30 s30/3 1.95596545 +40 30 s30/6 0.79311632 +40 30 s30/8 0.46886780 +40 30 s30/10 1.69149557 +40 31 s31/1 4.41622901 +40 31 s31/3 3.40331167 +40 31 s31/6 3.77518926 +40 31 s31/8 4.54775619 +40 31 s31/10 3.80807491 +40 32 s32/1 -0.10387150 +40 32 s32/3 3.33038657 +40 32 s32/6 -2.05924067 +40 32 s32/8 0.72470796 +40 32 s32/10 -1.63365830 +40 35 s35/1 5.54674624 +40 35 s35/3 5.57024899 +40 35 s35/6 2.99768199 +40 35 s35/8 3.96713457 +40 35 s35/10 4.70364363 +40 37 s37/1 1.93099794 +40 37 s37/3 1.83794335 +40 37 s37/6 -2.59211198 +40 37 s37/8 -1.36408507 +40 37 s37/10 0.55248086 +40 38 s38/1 0.98037636 +40 38 s38/3 2.96084840 +40 38 s38/6 0.96641049 +40 38 s38/8 1.87717245 +40 38 s38/10 1.28755687 +40 40 s40/1 3.66199302 +40 40 s40/3 5.07978906 +40 40 s40/6 3.76205421 +40 40 s40/8 3.48506110 +40 40 s40/10 3.84439003 diff --git a/bob/bio/gmm/test/data/scores-ztnorm-isv-dev b/bob/bio/gmm/test/data/scores-ztnorm-isv-dev new file mode 100644 index 0000000..8210202 --- /dev/null +++ b/bob/bio/gmm/test/data/scores-ztnorm-isv-dev @@ -0,0 +1,2000 @@ +3 3 s3/1 1.27796116 +3 3 s3/3 1.82072037 +3 3 s3/6 0.10584301 +3 3 s3/8 1.76499010 +3 3 s3/10 1.46578240 +3 4 s4/1 0.40065256 +3 4 s4/3 0.79853082 +3 4 s4/6 -0.51473958 +3 4 s4/8 0.27883385 +3 4 s4/10 -0.38135237 +3 7 s7/1 -1.09553501 +3 7 s7/3 -1.14473132 +3 7 s7/6 -0.91204789 +3 7 s7/8 -0.64592276 +3 7 s7/10 -1.39324764 +3 8 s8/1 0.50179828 +3 8 s8/3 0.26670868 +3 8 s8/6 0.30402151 +3 8 s8/8 0.22770373 +3 8 s8/10 0.09002110 +3 9 s9/1 1.06171919 +3 9 s9/3 1.00146621 +3 9 s9/6 0.78777057 +3 9 s9/8 0.28829231 +3 9 s9/10 0.06210179 +3 13 s13/1 0.84256910 +3 13 s13/3 -0.16451735 +3 13 s13/6 0.02446593 +3 13 s13/8 -0.86899699 +3 13 s13/10 -0.72823615 +3 15 s15/1 -1.27434871 +3 15 s15/3 -1.07420223 +3 15 s15/6 -1.17523907 +3 15 s15/8 -1.18295050 +3 15 s15/10 0.63822478 +3 18 s18/1 -0.09281994 +3 18 s18/3 -0.39001359 +3 18 s18/6 -0.35975961 +3 18 s18/8 -0.09504707 +3 18 s18/10 0.19115281 +3 19 s19/1 -0.08703325 +3 19 s19/3 -0.12615380 +3 19 s19/6 0.65802132 +3 19 s19/8 -0.49929795 +3 19 s19/10 0.57843250 +3 22 s22/1 -0.18988731 +3 22 s22/3 -0.04859968 +3 22 s22/6 -0.54001083 +3 22 s22/8 -0.28805747 +3 22 s22/10 0.00886430 +3 23 s23/1 -0.18779359 +3 23 s23/3 -0.62648633 +3 23 s23/6 0.48459513 +3 23 s23/8 -0.81456789 +3 23 s23/10 -0.14209639 +3 25 s25/1 0.41887087 +3 25 s25/3 0.34076556 +3 25 s25/6 0.54995012 +3 25 s25/8 0.45848517 +3 25 s25/10 0.61739778 +3 28 s28/1 -1.11930946 +3 28 s28/3 0.64453237 +3 28 s28/6 -1.35263456 +3 28 s28/8 -0.33750533 +3 28 s28/10 0.60781155 +3 30 s30/1 -0.17971670 +3 30 s30/3 0.23478483 +3 30 s30/6 -0.72878797 +3 30 s30/8 -1.23563502 +3 30 s30/10 -0.36559876 +3 31 s31/1 0.61203742 +3 31 s31/3 -0.42291861 +3 31 s31/6 0.69761641 +3 31 s31/8 0.68562153 +3 31 s31/10 -0.65046734 +3 32 s32/1 -1.24929912 +3 32 s32/3 -0.67267028 +3 32 s32/6 -0.73049683 +3 32 s32/8 -0.74188430 +3 32 s32/10 -0.99503251 +3 35 s35/1 0.24974405 +3 35 s35/3 -0.03167662 +3 35 s35/6 0.90029928 +3 35 s35/8 0.85334310 +3 35 s35/10 -0.81203155 +3 37 s37/1 -0.34952710 +3 37 s37/3 -0.70772005 +3 37 s37/6 -1.12792737 +3 37 s37/8 -0.99157418 +3 37 s37/10 -0.38147893 +3 38 s38/1 0.27855837 +3 38 s38/3 1.34771564 +3 38 s38/6 0.29489319 +3 38 s38/8 1.15516956 +3 38 s38/10 1.17688504 +3 40 s40/1 0.10759230 +3 40 s40/3 -0.15151494 +3 40 s40/6 0.10155783 +3 40 s40/8 0.23009588 +3 40 s40/10 0.26720514 +4 3 s3/1 -0.90211630 +4 3 s3/3 -0.42097147 +4 3 s3/6 -0.19922158 +4 3 s3/8 -0.19287434 +4 3 s3/10 0.35069921 +4 4 s4/1 0.68429919 +4 4 s4/3 0.68162037 +4 4 s4/6 1.41434115 +4 4 s4/8 0.89792560 +4 4 s4/10 1.63227203 +4 7 s7/1 -0.62076457 +4 7 s7/3 -0.55090068 +4 7 s7/6 -0.55498385 +4 7 s7/8 -0.58007232 +4 7 s7/10 -0.54330345 +4 8 s8/1 -0.28299686 +4 8 s8/3 -0.33538946 +4 8 s8/6 -0.31753891 +4 8 s8/8 -0.33897333 +4 8 s8/10 -0.30870056 +4 9 s9/1 0.43626392 +4 9 s9/3 0.17853892 +4 9 s9/6 0.83683865 +4 9 s9/8 0.73554824 +4 9 s9/10 0.47484747 +4 13 s13/1 0.19458060 +4 13 s13/3 0.53081232 +4 13 s13/6 -0.07588326 +4 13 s13/8 -0.04339623 +4 13 s13/10 0.17018434 +4 15 s15/1 -1.03604383 +4 15 s15/3 -1.15065362 +4 15 s15/6 -1.17382857 +4 15 s15/8 -1.07863070 +4 15 s15/10 0.25776201 +4 18 s18/1 0.35510790 +4 18 s18/3 0.63706032 +4 18 s18/6 0.52891255 +4 18 s18/8 0.69970794 +4 18 s18/10 0.85829519 +4 19 s19/1 -1.14613201 +4 19 s19/3 -1.05265173 +4 19 s19/6 -1.27682917 +4 19 s19/8 -0.85769826 +4 19 s19/10 -1.28199297 +4 22 s22/1 -0.65236691 +4 22 s22/3 -0.45384535 +4 22 s22/6 -0.85057306 +4 22 s22/8 -0.62448496 +4 22 s22/10 -0.66507769 +4 23 s23/1 0.36231687 +4 23 s23/3 0.73493796 +4 23 s23/6 0.47222401 +4 23 s23/8 0.09496270 +4 23 s23/10 0.27020069 +4 25 s25/1 1.03702601 +4 25 s25/3 1.05776878 +4 25 s25/6 0.96275645 +4 25 s25/8 0.38303127 +4 25 s25/10 1.30517518 +4 28 s28/1 0.25411991 +4 28 s28/3 0.40840719 +4 28 s28/6 1.16160763 +4 28 s28/8 -0.43080872 +4 28 s28/10 0.55753518 +4 30 s30/1 0.59688295 +4 30 s30/3 0.63890377 +4 30 s30/6 0.57202425 +4 30 s30/8 0.28892634 +4 30 s30/10 0.06652434 +4 31 s31/1 0.36072461 +4 31 s31/3 0.04565025 +4 31 s31/6 0.20468162 +4 31 s31/8 0.34142151 +4 31 s31/10 -0.00827981 +4 32 s32/1 -0.58809003 +4 32 s32/3 -0.65507484 +4 32 s32/6 -0.63943582 +4 32 s32/8 -0.59132961 +4 32 s32/10 -0.55787267 +4 35 s35/1 0.38510232 +4 35 s35/3 0.14655454 +4 35 s35/6 0.46888787 +4 35 s35/8 0.23817682 +4 35 s35/10 -0.35949170 +4 37 s37/1 0.34120880 +4 37 s37/3 -0.03380872 +4 37 s37/6 -0.53298722 +4 37 s37/8 -0.74822255 +4 37 s37/10 -0.48242861 +4 38 s38/1 0.00218344 +4 38 s38/3 -0.30474059 +4 38 s38/6 -0.17431053 +4 38 s38/8 0.74844239 +4 38 s38/10 -0.13717176 +4 40 s40/1 0.15099243 +4 40 s40/3 0.46685685 +4 40 s40/6 0.19885851 +4 40 s40/8 -0.29753412 +4 40 s40/10 -0.07931457 +7 3 s3/1 -0.63835639 +7 3 s3/3 -1.96421757 +7 3 s3/6 -0.73818048 +7 3 s3/8 -1.40105591 +7 3 s3/10 -0.83358868 +7 4 s4/1 -0.98869321 +7 4 s4/3 -1.44154279 +7 4 s4/6 -0.91420834 +7 4 s4/8 -1.04326358 +7 4 s4/10 -1.27416885 +7 7 s7/1 2.17267552 +7 7 s7/3 2.11046020 +7 7 s7/6 2.36268613 +7 7 s7/8 2.36181835 +7 7 s7/10 2.44520704 +7 8 s8/1 -0.10474796 +7 8 s8/3 0.16108883 +7 8 s8/6 0.04037864 +7 8 s8/8 0.41456253 +7 8 s8/10 0.62420439 +7 9 s9/1 -1.21143615 +7 9 s9/3 -1.06350631 +7 9 s9/6 -1.57317379 +7 9 s9/8 -1.45641614 +7 9 s9/10 -1.36917519 +7 13 s13/1 -0.72174633 +7 13 s13/3 -0.19870597 +7 13 s13/6 -1.57442767 +7 13 s13/8 0.05687264 +7 13 s13/10 -0.07007682 +7 15 s15/1 1.47818903 +7 15 s15/3 1.40182522 +7 15 s15/6 1.50033610 +7 15 s15/8 0.71503580 +7 15 s15/10 -1.55630368 +7 18 s18/1 -0.53267496 +7 18 s18/3 -0.73415072 +7 18 s18/6 -0.00077178 +7 18 s18/8 -0.89424376 +7 18 s18/10 -0.88450145 +7 19 s19/1 1.33448721 +7 19 s19/3 1.23915198 +7 19 s19/6 0.82579940 +7 19 s19/8 1.40530292 +7 19 s19/10 0.81704049 +7 22 s22/1 -0.65941314 +7 22 s22/3 -0.92637129 +7 22 s22/6 0.80779081 +7 22 s22/8 -0.72394099 +7 22 s22/10 -0.60945755 +7 23 s23/1 -0.28719173 +7 23 s23/3 -0.03924569 +7 23 s23/6 -1.50414374 +7 23 s23/8 0.16367020 +7 23 s23/10 -0.07223971 +7 25 s25/1 -1.66057829 +7 25 s25/3 -1.64477213 +7 25 s25/6 -1.69654438 +7 25 s25/8 -1.55353727 +7 25 s25/10 -1.65735083 +7 28 s28/1 0.04725485 +7 28 s28/3 -1.37784351 +7 28 s28/6 -0.83112770 +7 28 s28/8 0.93195690 +7 28 s28/10 0.28248862 +7 30 s30/1 -1.33067777 +7 30 s30/3 -1.31924438 +7 30 s30/6 -0.97536136 +7 30 s30/8 0.11666041 +7 30 s30/10 -1.49489652 +7 31 s31/1 -1.34573051 +7 31 s31/3 -0.54363296 +7 31 s31/6 -0.99278693 +7 31 s31/8 -1.34804251 +7 31 s31/10 -0.49175214 +7 32 s32/1 1.43606185 +7 32 s32/3 0.05722358 +7 32 s32/6 1.50313540 +7 32 s32/8 1.12105568 +7 32 s32/10 1.48980875 +7 35 s35/1 -1.86006682 +7 35 s35/3 -0.99276701 +7 35 s35/6 -1.64028857 +7 35 s35/8 -1.73902784 +7 35 s35/10 0.05632715 +7 37 s37/1 0.48437174 +7 37 s37/3 0.48436476 +7 37 s37/6 0.92398881 +7 37 s37/8 0.65823711 +7 37 s37/10 0.77720914 +7 38 s38/1 -0.96189360 +7 38 s38/3 -0.90017066 +7 38 s38/6 -0.54721809 +7 38 s38/8 -1.48984147 +7 38 s38/10 -0.69525810 +7 40 s40/1 -0.62242707 +7 40 s40/3 -0.69597784 +7 40 s40/6 -1.78854190 +7 40 s40/8 -0.97938789 +7 40 s40/10 -1.04625953 +8 3 s3/1 0.74438756 +8 3 s3/3 -0.14089763 +8 3 s3/6 1.76096403 +8 3 s3/8 1.18059408 +8 3 s3/10 -0.16087696 +8 4 s4/1 -0.36715452 +8 4 s4/3 -0.47898071 +8 4 s4/6 -0.33357326 +8 4 s4/8 -0.63809459 +8 4 s4/10 -1.43294433 +8 7 s7/1 0.25258151 +8 7 s7/3 0.11615882 +8 7 s7/6 -0.01989235 +8 7 s7/8 0.11398888 +8 7 s7/10 -0.38746480 +8 8 s8/1 2.46305661 +8 8 s8/3 2.32938027 +8 8 s8/6 2.35450772 +8 8 s8/8 2.22899866 +8 8 s8/10 2.24713853 +8 9 s9/1 0.60044868 +8 9 s9/3 0.95211854 +8 9 s9/6 0.90370570 +8 9 s9/8 0.15185278 +8 9 s9/10 0.81646462 +8 13 s13/1 -1.27570015 +8 13 s13/3 -1.67379755 +8 13 s13/6 -1.91202618 +8 13 s13/8 -1.31247429 +8 13 s13/10 -1.92936697 +8 15 s15/1 -0.18214960 +8 15 s15/3 -0.19423629 +8 15 s15/6 -0.39563825 +8 15 s15/8 -0.09870644 +8 15 s15/10 -0.26791426 +8 18 s18/1 -1.83815217 +8 18 s18/3 -2.09398473 +8 18 s18/6 -2.00854716 +8 18 s18/8 -2.24298927 +8 18 s18/10 -1.93212602 +8 19 s19/1 -0.26974164 +8 19 s19/3 -0.45382848 +8 19 s19/6 -0.11634814 +8 19 s19/8 0.62195014 +8 19 s19/10 -0.07020284 +8 22 s22/1 0.08754703 +8 22 s22/3 0.28935150 +8 22 s22/6 0.08441166 +8 22 s22/8 0.02463633 +8 22 s22/10 0.05057092 +8 23 s23/1 1.38275460 +8 23 s23/3 -0.12763973 +8 23 s23/6 -0.34634715 +8 23 s23/8 1.35918709 +8 23 s23/10 1.72710934 +8 25 s25/1 -0.64323805 +8 25 s25/3 -0.67442459 +8 25 s25/6 -0.44023372 +8 25 s25/8 -0.35696560 +8 25 s25/10 -0.31720290 +8 28 s28/1 -0.11431558 +8 28 s28/3 0.65764154 +8 28 s28/6 -0.09868513 +8 28 s28/8 -0.82588036 +8 28 s28/10 -0.21304667 +8 30 s30/1 0.61679776 +8 30 s30/3 0.36503895 +8 30 s30/6 0.59479065 +8 30 s30/8 -0.06364306 +8 30 s30/10 0.35899659 +8 31 s31/1 0.50445416 +8 31 s31/3 -0.06709728 +8 31 s31/6 0.71616937 +8 31 s31/8 0.49967653 +8 31 s31/10 -0.06115627 +8 32 s32/1 -0.48218167 +8 32 s32/3 -2.04370300 +8 32 s32/6 -0.39112792 +8 32 s32/8 -0.82908079 +8 32 s32/10 -0.60705422 +8 35 s35/1 -0.54770936 +8 35 s35/3 -0.68571235 +8 35 s35/6 -0.20608767 +8 35 s35/8 -0.36688824 +8 35 s35/10 -1.33721721 +8 37 s37/1 -1.68729830 +8 37 s37/3 -1.56560695 +8 37 s37/6 0.21956641 +8 37 s37/8 0.18732764 +8 37 s37/10 -0.62653054 +8 38 s38/1 1.70346478 +8 38 s38/3 0.35556813 +8 38 s38/6 2.00424475 +8 38 s38/8 0.50033231 +8 38 s38/10 0.69455416 +8 40 s40/1 -2.09176412 +8 40 s40/3 -1.71213440 +8 40 s40/6 -2.07659539 +8 40 s40/8 -2.05099193 +8 40 s40/10 -1.82283516 +9 3 s3/1 -0.24187995 +9 3 s3/3 -0.67609926 +9 3 s3/6 0.01592437 +9 3 s3/8 0.06010107 +9 3 s3/10 -0.08889726 +9 4 s4/1 0.87215281 +9 4 s4/3 0.70199937 +9 4 s4/6 0.76220840 +9 4 s4/8 0.76014476 +9 4 s4/10 -0.13084590 +9 7 s7/1 -0.73131545 +9 7 s7/3 -0.61424199 +9 7 s7/6 -0.71659026 +9 7 s7/8 -0.72643809 +9 7 s7/10 -0.62446435 +9 8 s8/1 0.38829310 +9 8 s8/3 0.44265457 +9 8 s8/6 0.49387559 +9 8 s8/8 0.33276715 +9 8 s8/10 0.43858544 +9 9 s9/1 1.11947130 +9 9 s9/3 1.18040236 +9 9 s9/6 1.05224567 +9 9 s9/8 1.16196000 +9 9 s9/10 0.98179485 +9 13 s13/1 -0.04029822 +9 13 s13/3 -0.21587068 +9 13 s13/6 -0.12867076 +9 13 s13/8 -0.52216893 +9 13 s13/10 -0.53180153 +9 15 s15/1 -0.91860609 +9 15 s15/3 -0.99471526 +9 15 s15/6 -1.02686436 +9 15 s15/8 -0.78606289 +9 15 s15/10 0.48508724 +9 18 s18/1 -0.25139280 +9 18 s18/3 -0.18755972 +9 18 s18/6 -0.22597353 +9 18 s18/8 -0.28844634 +9 18 s18/10 -0.15609965 +9 19 s19/1 -0.62209664 +9 19 s19/3 -0.60953354 +9 19 s19/6 -0.36011615 +9 19 s19/8 -0.60023771 +9 19 s19/10 -0.56501811 +9 22 s22/1 -1.03251256 +9 22 s22/3 -0.71785586 +9 22 s22/6 -1.41107116 +9 22 s22/8 -0.96794587 +9 22 s22/10 -1.01797940 +9 23 s23/1 1.28340647 +9 23 s23/3 1.19229040 +9 23 s23/6 0.86259545 +9 23 s23/8 0.63055989 +9 23 s23/10 0.69620006 +9 25 s25/1 0.84174235 +9 25 s25/3 0.85332066 +9 25 s25/6 0.79844399 +9 25 s25/8 0.46201518 +9 25 s25/10 0.91951114 +9 28 s28/1 -0.51301056 +9 28 s28/3 -0.08951523 +9 28 s28/6 -0.00193863 +9 28 s28/8 -0.79288835 +9 28 s28/10 -0.73190124 +9 30 s30/1 0.53145493 +9 30 s30/3 0.45765015 +9 30 s30/6 0.14108663 +9 30 s30/8 -0.41795542 +9 30 s30/10 -0.00766263 +9 31 s31/1 0.78597084 +9 31 s31/3 -0.18350124 +9 31 s31/6 0.68272848 +9 31 s31/8 0.76477682 +9 31 s31/10 -0.09715530 +9 32 s32/1 -0.70893529 +9 32 s32/3 -0.76749056 +9 32 s32/6 -0.92079210 +9 32 s32/8 -0.76136149 +9 32 s32/10 -0.90731958 +9 35 s35/1 0.41936292 +9 35 s35/3 0.40790993 +9 35 s35/6 0.42357189 +9 35 s35/8 0.62577045 +9 35 s35/10 -0.36171915 +9 37 s37/1 -0.73441976 +9 37 s37/3 -0.91418539 +9 37 s37/6 -0.76687438 +9 37 s37/8 -0.84455191 +9 37 s37/10 -0.78432490 +9 38 s38/1 0.55077894 +9 38 s38/3 0.24526965 +9 38 s38/6 0.61158684 +9 38 s38/8 0.66561079 +9 38 s38/10 0.32012196 +9 40 s40/1 -0.35234276 +9 40 s40/3 0.25665960 +9 40 s40/6 -0.18768168 +9 40 s40/8 -0.23757270 +9 40 s40/10 -0.36274374 +13 3 s3/1 0.65488428 +13 3 s3/3 -0.27575414 +13 3 s3/6 -1.67201973 +13 3 s3/8 -1.38037644 +13 3 s3/10 -0.65161994 +13 4 s4/1 0.35097399 +13 4 s4/3 0.50598351 +13 4 s4/6 0.51981458 +13 4 s4/8 0.58695937 +13 4 s4/10 -0.72941109 +13 7 s7/1 -0.49336347 +13 7 s7/3 -0.51704915 +13 7 s7/6 -0.32878721 +13 7 s7/8 -0.13893937 +13 7 s7/10 -0.55315899 +13 8 s8/1 -1.63547412 +13 8 s8/3 -1.21534003 +13 8 s8/6 -1.12427243 +13 8 s8/8 -1.20949769 +13 8 s8/10 -1.13761724 +13 9 s9/1 0.08969782 +13 9 s9/3 -0.36844437 +13 9 s9/6 -0.76269264 +13 9 s9/8 -0.05685169 +13 9 s9/10 -1.72118313 +13 13 s13/1 2.06132911 +13 13 s13/3 2.14707502 +13 13 s13/6 1.60769700 +13 13 s13/8 2.12863732 +13 13 s13/10 2.37550005 +13 15 s15/1 -0.55550310 +13 15 s15/3 -0.46300321 +13 15 s15/6 -0.20741232 +13 15 s15/8 -1.32198141 +13 15 s15/10 -0.27095521 +13 18 s18/1 0.87961127 +13 18 s18/3 1.50122205 +13 18 s18/6 1.05554786 +13 18 s18/8 1.30153460 +13 18 s18/10 1.08720101 +13 19 s19/1 0.52813749 +13 19 s19/3 0.78607904 +13 19 s19/6 0.76342944 +13 19 s19/8 -0.15823447 +13 19 s19/10 0.68093783 +13 22 s22/1 0.30311344 +13 22 s22/3 -0.02996266 +13 22 s22/6 0.34177079 +13 22 s22/8 0.36854898 +13 22 s22/10 0.79222297 +13 23 s23/1 -1.12159128 +13 23 s23/3 -1.69792992 +13 23 s23/6 0.41264887 +13 23 s23/8 -2.52198456 +13 23 s23/10 -0.84029333 +13 25 s25/1 0.30868411 +13 25 s25/3 0.14990191 +13 25 s25/6 0.03711465 +13 25 s25/8 -0.14847236 +13 25 s25/10 0.25232673 +13 28 s28/1 0.45382176 +13 28 s28/3 0.57043437 +13 28 s28/6 0.10525799 +13 28 s28/8 -0.14858677 +13 28 s28/10 1.05647521 +13 30 s30/1 -1.52081022 +13 30 s30/3 -0.96604364 +13 30 s30/6 -1.52117468 +13 30 s30/8 -1.37538176 +13 30 s30/10 -1.39849994 +13 31 s31/1 -0.85558482 +13 31 s31/3 -1.63296460 +13 31 s31/6 -1.48083157 +13 31 s31/8 -0.73584878 +13 31 s31/10 -1.76654109 +13 32 s32/1 -0.25932177 +13 32 s32/3 0.56074681 +13 32 s32/6 -0.07152530 +13 32 s32/8 0.18394646 +13 32 s32/10 -0.07764431 +13 35 s35/1 0.04034766 +13 35 s35/3 -0.28084136 +13 35 s35/6 -0.03779120 +13 35 s35/8 -0.29823560 +13 35 s35/10 -0.96980184 +13 37 s37/1 0.69550916 +13 37 s37/3 0.57287116 +13 37 s37/6 -0.85004886 +13 37 s37/8 -0.43911779 +13 37 s37/10 0.77242064 +13 38 s38/1 -0.45913707 +13 38 s38/3 1.14672632 +13 38 s38/6 -0.84937231 +13 38 s38/8 0.44182987 +13 38 s38/10 0.62609869 +13 40 s40/1 1.52866478 +13 40 s40/3 0.50738512 +13 40 s40/6 1.81114278 +13 40 s40/8 1.97925455 +13 40 s40/10 1.84622648 +15 3 s3/1 -1.02977350 +15 3 s3/3 0.22817178 +15 3 s3/6 -0.57310869 +15 3 s3/8 0.31162887 +15 3 s3/10 -0.50109875 +15 4 s4/1 0.71939153 +15 4 s4/3 0.48790849 +15 4 s4/6 -1.17362816 +15 4 s4/8 0.55411768 +15 4 s4/10 -1.04748756 +15 7 s7/1 -0.71951766 +15 7 s7/3 -0.74232678 +15 7 s7/6 -0.64639105 +15 7 s7/8 -0.68424162 +15 7 s7/10 -0.34308023 +15 8 s8/1 0.03885455 +15 8 s8/3 -0.40758363 +15 8 s8/6 -0.35184817 +15 8 s8/8 -0.65764123 +15 8 s8/10 -0.60026861 +15 9 s9/1 0.44734008 +15 9 s9/3 0.55223381 +15 9 s9/6 0.27191975 +15 9 s9/8 0.69749568 +15 9 s9/10 0.62846333 +15 13 s13/1 -0.34561369 +15 13 s13/3 -0.52377982 +15 13 s13/6 -0.76223854 +15 13 s13/8 -1.13798515 +15 13 s13/10 -0.99568629 +15 15 s15/1 -0.03474593 +15 15 s15/3 -0.10864691 +15 15 s15/6 -0.05254190 +15 15 s15/8 0.44761404 +15 15 s15/10 1.16575138 +15 18 s18/1 -0.88713301 +15 18 s18/3 -0.54601344 +15 18 s18/6 -0.48407926 +15 18 s18/8 -0.18085809 +15 18 s18/10 -0.27336084 +15 19 s19/1 -0.77882684 +15 19 s19/3 -0.76417916 +15 19 s19/6 -0.59189183 +15 19 s19/8 -0.65276472 +15 19 s19/10 -0.73449998 +15 22 s22/1 0.18825253 +15 22 s22/3 0.21971254 +15 22 s22/6 -0.33879562 +15 22 s22/8 0.18796181 +15 22 s22/10 0.47435111 +15 23 s23/1 -0.30110417 +15 23 s23/3 -0.25975656 +15 23 s23/6 0.40861304 +15 23 s23/8 -0.62125936 +15 23 s23/10 -0.80521827 +15 25 s25/1 0.50333970 +15 25 s25/3 0.46583847 +15 25 s25/6 0.65709349 +15 25 s25/8 0.68090156 +15 25 s25/10 0.23319018 +15 28 s28/1 -1.36070543 +15 28 s28/3 -0.76511473 +15 28 s28/6 -0.85775691 +15 28 s28/8 -1.42146542 +15 28 s28/10 -1.54334339 +15 30 s30/1 0.46338047 +15 30 s30/3 0.55796722 +15 30 s30/6 0.43945290 +15 30 s30/8 0.27799516 +15 30 s30/10 0.66994897 +15 31 s31/1 0.82298013 +15 31 s31/3 0.70947986 +15 31 s31/6 0.67947380 +15 31 s31/8 0.80830997 +15 31 s31/10 0.75547695 +15 32 s32/1 -0.43520658 +15 32 s32/3 -0.31442186 +15 32 s32/6 -0.69483152 +15 32 s32/8 -0.69379133 +15 32 s32/10 -0.69601827 +15 35 s35/1 0.96436796 +15 35 s35/3 1.13241927 +15 35 s35/6 0.54730799 +15 35 s35/8 0.58710548 +15 35 s35/10 0.73582437 +15 37 s37/1 -0.96724473 +15 37 s37/3 -0.80766247 +15 37 s37/6 -0.39842902 +15 37 s37/8 -0.45372935 +15 37 s37/10 -1.27039043 +15 38 s38/1 -0.00893405 +15 38 s38/3 0.20957076 +15 38 s38/6 -0.17608783 +15 38 s38/8 -0.14231487 +15 38 s38/10 0.20869635 +15 40 s40/1 0.11712175 +15 40 s40/3 0.45756832 +15 40 s40/6 0.15070118 +15 40 s40/8 0.07689824 +15 40 s40/10 0.26606863 +18 3 s3/1 -1.37032469 +18 3 s3/3 -0.64587961 +18 3 s3/6 -1.52048848 +18 3 s3/8 -0.29310464 +18 3 s3/10 0.62452927 +18 4 s4/1 0.30063010 +18 4 s4/3 0.52494799 +18 4 s4/6 1.14548844 +18 4 s4/8 0.49984193 +18 4 s4/10 1.86112720 +18 7 s7/1 -0.48630118 +18 7 s7/3 -0.26702146 +18 7 s7/6 0.04895236 +18 7 s7/8 0.07356453 +18 7 s7/10 -0.12418778 +18 8 s8/1 -1.37968371 +18 8 s8/3 -1.47452427 +18 8 s8/6 -1.49531664 +18 8 s8/8 -1.23316944 +18 8 s8/10 -1.24474782 +18 9 s9/1 -0.20069161 +18 9 s9/3 -0.41216468 +18 9 s9/6 -0.37410602 +18 9 s9/8 -0.44087989 +18 9 s9/10 -0.15037775 +18 13 s13/1 0.92846057 +18 13 s13/3 1.19869984 +18 13 s13/6 1.54375223 +18 13 s13/8 0.53197457 +18 13 s13/10 0.77396158 +18 15 s15/1 -0.72723450 +18 15 s15/3 -0.73734205 +18 15 s15/6 -0.70811731 +18 15 s15/8 -1.35941618 +18 15 s15/10 -0.01992205 +18 18 s18/1 2.19802398 +18 18 s18/3 1.36761381 +18 18 s18/6 1.85086788 +18 18 s18/8 1.57205812 +18 18 s18/10 1.83680792 +18 19 s19/1 0.36673988 +18 19 s19/3 0.46491462 +18 19 s19/6 0.46895798 +18 19 s19/8 -0.47339560 +18 19 s19/10 0.37143700 +18 22 s22/1 -1.66831870 +18 22 s22/3 -1.62714106 +18 22 s22/6 -0.86025229 +18 22 s22/8 -1.66724129 +18 22 s22/10 -1.74888419 +18 23 s23/1 -0.70423050 +18 23 s23/3 0.24889339 +18 23 s23/6 -0.07292836 +18 23 s23/8 -0.09397787 +18 23 s23/10 -1.19410471 +18 25 s25/1 0.47421578 +18 25 s25/3 0.60461915 +18 25 s25/6 0.32243815 +18 25 s25/8 0.18762895 +18 25 s25/10 0.66694454 +18 28 s28/1 -0.57841717 +18 28 s28/3 0.12356617 +18 28 s28/6 -1.04164698 +18 28 s28/8 0.88285839 +18 28 s28/10 1.18963466 +18 30 s30/1 -0.45450426 +18 30 s30/3 -0.24412206 +18 30 s30/6 -1.09925956 +18 30 s30/8 -0.84162135 +18 30 s30/10 -0.97121002 +18 31 s31/1 -0.52331384 +18 31 s31/3 -0.64430734 +18 31 s31/6 -0.39617338 +18 31 s31/8 -0.52158358 +18 31 s31/10 -0.45036494 +18 32 s32/1 0.15964834 +18 32 s32/3 1.14377649 +18 32 s32/6 0.21126632 +18 32 s32/8 0.61800970 +18 32 s32/10 0.33977079 +18 35 s35/1 -0.10709404 +18 35 s35/3 -0.59674951 +18 35 s35/6 0.49895613 +18 35 s35/8 0.47651450 +18 35 s35/10 0.02361292 +18 37 s37/1 1.47465680 +18 37 s37/3 1.15498637 +18 37 s37/6 -0.89708362 +18 37 s37/8 -1.17563748 +18 37 s37/10 0.40456634 +18 38 s38/1 -1.65263427 +18 38 s38/3 -0.55102203 +18 38 s38/6 -1.60049533 +18 38 s38/8 -0.47873854 +18 38 s38/10 -0.62334738 +18 40 s40/1 1.51442059 +18 40 s40/3 1.19732305 +18 40 s40/6 1.28390390 +18 40 s40/8 1.42326265 +18 40 s40/10 0.80376142 +19 3 s3/1 0.41892218 +19 3 s3/3 -0.92020544 +19 3 s3/6 -0.78103389 +19 3 s3/8 -0.59534387 +19 3 s3/10 -1.14738632 +19 4 s4/1 -1.20399299 +19 4 s4/3 -1.11315825 +19 4 s4/6 -0.11747579 +19 4 s4/8 -1.05700940 +19 4 s4/10 -1.19877120 +19 7 s7/1 1.10843421 +19 7 s7/3 1.20825832 +19 7 s7/6 1.47681356 +19 7 s7/8 1.57420684 +19 7 s7/10 0.81980984 +19 8 s8/1 0.23156704 +19 8 s8/3 0.71107888 +19 8 s8/6 0.74971292 +19 8 s8/8 0.88870842 +19 8 s8/10 1.02313752 +19 9 s9/1 -0.92081782 +19 9 s9/3 -0.61341163 +19 9 s9/6 -1.38328180 +19 9 s9/8 -1.42678242 +19 9 s9/10 -1.04553888 +19 13 s13/1 0.02960266 +19 13 s13/3 0.21211254 +19 13 s13/6 -0.46817254 +19 13 s13/8 1.05236155 +19 13 s13/10 0.20859794 +19 15 s15/1 0.90852243 +19 15 s15/3 0.95879773 +19 15 s15/6 1.07834346 +19 15 s15/8 0.10154084 +19 15 s15/10 -1.53723800 +19 18 s18/1 -0.09703975 +19 18 s18/3 -0.95762469 +19 18 s18/6 -0.20521007 +19 18 s18/8 -0.89925859 +19 18 s18/10 -0.80496890 +19 19 s19/1 2.04600496 +19 19 s19/3 2.01776808 +19 19 s19/6 2.01866652 +19 19 s19/8 2.12218105 +19 19 s19/10 2.06477767 +19 22 s22/1 -0.21132580 +19 22 s22/3 -0.54724516 +19 22 s22/6 1.23127063 +19 22 s22/8 -0.21908024 +19 22 s22/10 -0.51741180 +19 23 s23/1 -0.06644610 +19 23 s23/3 -1.19368494 +19 23 s23/6 -1.87080890 +19 23 s23/8 0.33225353 +19 23 s23/10 0.19852911 +19 25 s25/1 -1.67162692 +19 25 s25/3 -1.70049992 +19 25 s25/6 -1.82898833 +19 25 s25/8 -1.92324701 +19 25 s25/10 -1.61267088 +19 28 s28/1 -0.18655844 +19 28 s28/3 -0.35636365 +19 28 s28/6 -1.49327776 +19 28 s28/8 1.07960483 +19 28 s28/10 1.15722491 +19 30 s30/1 -1.70940098 +19 30 s30/3 -1.78440057 +19 30 s30/6 -1.50309254 +19 30 s30/8 -1.28912849 +19 30 s30/10 -1.72551572 +19 31 s31/1 -1.54339134 +19 31 s31/3 -1.45924917 +19 31 s31/6 -1.35502577 +19 31 s31/8 -1.47922637 +19 31 s31/10 -1.43304092 +19 32 s32/1 0.74014581 +19 32 s32/3 0.37693287 +19 32 s32/6 1.23810931 +19 32 s32/8 1.08533230 +19 32 s32/10 1.06818977 +19 35 s35/1 -1.81040721 +19 35 s35/3 -1.72727619 +19 35 s35/6 -1.19806600 +19 35 s35/8 -1.15044376 +19 35 s35/10 -1.00714546 +19 37 s37/1 -0.14723697 +19 37 s37/3 -0.11373014 +19 37 s37/6 0.47992381 +19 37 s37/8 0.61595174 +19 37 s37/10 1.02577365 +19 38 s38/1 -0.73762583 +19 38 s38/3 -0.14464725 +19 38 s38/6 -0.33259614 +19 38 s38/8 -0.71791705 +19 38 s38/10 0.11272561 +19 40 s40/1 -0.48214246 +19 40 s40/3 -1.16446670 +19 40 s40/6 -0.86581488 +19 40 s40/8 -0.28058279 +19 40 s40/10 -1.28654775 +22 3 s3/1 -0.50317481 +22 3 s3/3 0.66107454 +22 3 s3/6 -0.81996491 +22 3 s3/8 0.65775558 +22 3 s3/10 1.20563603 +22 4 s4/1 -0.62844086 +22 4 s4/3 -0.62617027 +22 4 s4/6 -2.39638296 +22 4 s4/8 -0.80814979 +22 4 s4/10 -1.30726443 +22 7 s7/1 0.04314503 +22 7 s7/3 -0.30535689 +22 7 s7/6 -0.35910329 +22 7 s7/8 -0.57002487 +22 7 s7/10 0.06579447 +22 8 s8/1 -0.03895940 +22 8 s8/3 -0.32700622 +22 8 s8/6 -0.24400864 +22 8 s8/8 -0.38903837 +22 8 s8/10 -0.51386439 +22 9 s9/1 -0.76589371 +22 9 s9/3 -0.76852254 +22 9 s9/6 -0.78821743 +22 9 s9/8 -0.82837992 +22 9 s9/10 -0.34652455 +22 13 s13/1 -0.80665571 +22 13 s13/3 -1.08071711 +22 13 s13/6 -1.19965844 +22 13 s13/8 -0.73934755 +22 13 s13/10 -0.42517253 +22 15 s15/1 0.68454363 +22 15 s15/3 0.45136487 +22 15 s15/6 0.77596762 +22 15 s15/8 0.99089350 +22 15 s15/10 0.38566604 +22 18 s18/1 -1.10250562 +22 18 s18/3 -1.38591392 +22 18 s18/6 -1.38111010 +22 18 s18/8 -1.31013914 +22 18 s18/10 -1.27356080 +22 19 s19/1 -0.36003266 +22 19 s19/3 -0.50207223 +22 19 s19/6 -0.46142622 +22 19 s19/8 -0.36258449 +22 19 s19/10 -0.19903891 +22 22 s22/1 2.51097948 +22 22 s22/3 2.52288916 +22 22 s22/6 1.59696983 +22 22 s22/8 2.54360157 +22 22 s22/10 2.42815936 +22 23 s23/1 -2.11900466 +22 23 s23/3 -2.67577917 +22 23 s23/6 -1.08245176 +22 23 s23/8 -0.90734329 +22 23 s23/10 -1.46193139 +22 25 s25/1 -0.88281990 +22 25 s25/3 -1.02962276 +22 25 s25/6 -0.83601354 +22 25 s25/8 -0.04751777 +22 25 s25/10 -0.94172737 +22 28 s28/1 -0.63181554 +22 28 s28/3 0.19843201 +22 28 s28/6 -0.38572202 +22 28 s28/8 -1.02707291 +22 28 s28/10 0.73992670 +22 30 s30/1 0.84587891 +22 30 s30/3 1.19497507 +22 30 s30/6 0.72593128 +22 30 s30/8 1.02493918 +22 30 s30/10 0.91586195 +22 31 s31/1 0.48032650 +22 31 s31/3 1.05040453 +22 31 s31/6 0.44663444 +22 31 s31/8 0.47813613 +22 31 s31/10 0.79608331 +22 32 s32/1 -0.52193692 +22 32 s32/3 -0.30090741 +22 32 s32/6 -0.56167853 +22 32 s32/8 -0.95100790 +22 32 s32/10 -0.46822446 +22 35 s35/1 0.32221416 +22 35 s35/3 0.09802238 +22 35 s35/6 0.81060926 +22 35 s35/8 0.31793730 +22 35 s35/10 1.01566513 +22 37 s37/1 -1.70114680 +22 37 s37/3 -1.45085622 +22 37 s37/6 0.33079364 +22 37 s37/8 0.53827644 +22 37 s37/10 -0.88770809 +22 38 s38/1 0.39688601 +22 38 s38/3 -0.11971954 +22 38 s38/6 0.15223420 +22 38 s38/8 -0.35350413 +22 38 s38/10 -0.23520290 +22 40 s40/1 -0.14683140 +22 40 s40/3 0.01728764 +22 40 s40/6 0.22005504 +22 40 s40/8 0.21196753 +22 40 s40/10 0.73458681 +23 3 s3/1 -1.40618909 +23 3 s3/3 -0.24506759 +23 3 s3/6 0.44657120 +23 3 s3/8 -0.17619557 +23 3 s3/10 -0.22839876 +23 4 s4/1 0.76438131 +23 4 s4/3 0.54983398 +23 4 s4/6 1.28518499 +23 4 s4/8 0.66039083 +23 4 s4/10 1.12869547 +23 7 s7/1 -0.49294111 +23 7 s7/3 -0.56689471 +23 7 s7/6 -0.93946461 +23 7 s7/8 -0.89493661 +23 7 s7/10 -0.76840092 +23 8 s8/1 0.06465102 +23 8 s8/3 0.16405795 +23 8 s8/6 0.16302069 +23 8 s8/8 0.18507030 +23 8 s8/10 0.14572749 +23 9 s9/1 0.72510792 +23 9 s9/3 0.73444124 +23 9 s9/6 0.83168896 +23 9 s9/8 1.00314461 +23 9 s9/10 0.95136869 +23 13 s13/1 0.22644420 +23 13 s13/3 -0.17259266 +23 13 s13/6 0.52105604 +23 13 s13/8 -0.40404899 +23 13 s13/10 0.31384499 +23 15 s15/1 -1.15494616 +23 15 s15/3 -1.23018628 +23 15 s15/6 -1.36069952 +23 15 s15/8 -1.22571431 +23 15 s15/10 0.09965582 +23 18 s18/1 0.78353429 +23 18 s18/3 0.34710916 +23 18 s18/6 0.52354298 +23 18 s18/8 0.33307898 +23 18 s18/10 0.54684040 +23 19 s19/1 -0.73426174 +23 19 s19/3 -0.74901987 +23 19 s19/6 -0.69203760 +23 19 s19/8 -0.88835046 +23 19 s19/10 -0.79740692 +23 22 s22/1 -1.36157724 +23 22 s22/3 -1.06192811 +23 22 s22/6 -1.82449032 +23 22 s22/8 -1.33978040 +23 22 s22/10 -1.52757076 +23 23 s23/1 1.63086389 +23 23 s23/3 1.19213068 +23 23 s23/6 1.25599442 +23 23 s23/8 1.60070736 +23 23 s23/10 1.11876377 +23 25 s25/1 0.80858153 +23 25 s25/3 0.66273622 +23 25 s25/6 0.54062817 +23 25 s25/8 0.77579951 +23 25 s25/10 0.85152811 +23 28 s28/1 0.35835603 +23 28 s28/3 0.52533788 +23 28 s28/6 0.63494771 +23 28 s28/8 0.66579526 +23 28 s28/10 -0.53172363 +23 30 s30/1 0.27965865 +23 30 s30/3 0.37262109 +23 30 s30/6 0.07584049 +23 30 s30/8 -0.08207084 +23 30 s30/10 0.07888008 +23 31 s31/1 0.54115532 +23 31 s31/3 -0.16625195 +23 31 s31/6 0.50494112 +23 31 s31/8 0.51337884 +23 31 s31/10 -0.09217639 +23 32 s32/1 -0.63922619 +23 32 s32/3 -0.74510901 +23 32 s32/6 -0.76374753 +23 32 s32/8 -0.60210081 +23 32 s32/10 -0.63273856 +23 35 s35/1 0.41872890 +23 35 s35/3 0.11883603 +23 35 s35/6 0.13846023 +23 35 s35/8 0.18924306 +23 35 s35/10 -0.33498037 +23 37 s37/1 -0.28145362 +23 37 s37/3 -0.25644321 +23 37 s37/6 -0.67543816 +23 37 s37/8 -0.77150145 +23 37 s37/10 -0.39397926 +23 38 s38/1 0.48218504 +23 38 s38/3 0.10024572 +23 38 s38/6 0.52502396 +23 38 s38/8 0.54011986 +23 38 s38/10 -0.03920927 +23 40 s40/1 0.08386935 +23 40 s40/3 0.49734763 +23 40 s40/6 0.02217157 +23 40 s40/8 -0.24107596 +23 40 s40/10 -0.30402628 +25 3 s3/1 -0.35755798 +25 3 s3/3 -0.41368234 +25 3 s3/6 -0.04949359 +25 3 s3/8 0.19246265 +25 3 s3/10 -0.34201561 +25 4 s4/1 0.89372164 +25 4 s4/3 0.75102534 +25 4 s4/6 0.33967817 +25 4 s4/8 0.89151195 +25 4 s4/10 0.47930006 +25 7 s7/1 -0.84831027 +25 7 s7/3 -0.80824660 +25 7 s7/6 -0.76906987 +25 7 s7/8 -0.66285814 +25 7 s7/10 -0.73005685 +25 8 s8/1 -0.16038990 +25 8 s8/3 -0.41450005 +25 8 s8/6 -0.37884240 +25 8 s8/8 -0.52129780 +25 8 s8/10 -0.49040879 +25 9 s9/1 0.60420629 +25 9 s9/3 0.46326656 +25 9 s9/6 0.70826831 +25 9 s9/8 0.80652701 +25 9 s9/10 0.59275604 +25 13 s13/1 0.43978134 +25 13 s13/3 0.33997348 +25 13 s13/6 0.19762246 +25 13 s13/8 -0.23806120 +25 13 s13/10 -0.04899258 +25 15 s15/1 -1.06293963 +25 15 s15/3 -1.11326725 +25 15 s15/6 -1.09829753 +25 15 s15/8 -0.95679729 +25 15 s15/10 0.70682771 +25 18 s18/1 0.23087819 +25 18 s18/3 0.46497337 +25 18 s18/6 0.43548824 +25 18 s18/8 0.65868142 +25 18 s18/10 0.75770828 +25 19 s19/1 -0.76804444 +25 19 s19/3 -0.63912027 +25 19 s19/6 -0.53799722 +25 19 s19/8 -0.76078504 +25 19 s19/10 -0.69022904 +25 22 s22/1 -0.59300822 +25 22 s22/3 -0.54907162 +25 22 s22/6 -0.78209471 +25 22 s22/8 -0.64203620 +25 22 s22/10 -0.27384947 +25 23 s23/1 0.43303473 +25 23 s23/3 0.43083807 +25 23 s23/6 0.74758271 +25 23 s23/8 -0.56080481 +25 23 s23/10 -0.18534130 +25 25 s25/1 1.08748873 +25 25 s25/3 1.02239021 +25 25 s25/6 1.10574572 +25 25 s25/8 0.76280917 +25 25 s25/10 1.05778065 +25 28 s28/1 -0.61943056 +25 28 s28/3 -0.40275762 +25 28 s28/6 -0.18259638 +25 28 s28/8 -0.92642939 +25 28 s28/10 -0.58110803 +25 30 s30/1 0.03045665 +25 30 s30/3 0.23687223 +25 30 s30/6 -0.16601370 +25 30 s30/8 -0.31020586 +25 30 s30/10 -0.13260187 +25 31 s31/1 0.51030677 +25 31 s31/3 0.00484071 +25 31 s31/6 0.36672844 +25 31 s31/8 0.51785809 +25 31 s31/10 0.00679950 +25 32 s32/1 -0.55625749 +25 32 s32/3 -0.24342170 +25 32 s32/6 -0.59741723 +25 32 s32/8 -0.50411211 +25 32 s32/10 -0.64663788 +25 35 s35/1 0.68827239 +25 35 s35/3 0.84728791 +25 35 s35/6 0.48097823 +25 35 s35/8 0.64334690 +25 35 s35/10 0.01119259 +25 37 s37/1 -0.22615904 +25 37 s37/3 -0.37918363 +25 37 s37/6 -0.82937705 +25 37 s37/8 -0.91891804 +25 37 s37/10 -0.66581828 +25 38 s38/1 -0.21625947 +25 38 s38/3 0.16805988 +25 38 s38/6 -0.30745892 +25 38 s38/8 0.44691748 +25 38 s38/10 0.09282380 +25 40 s40/1 0.40777846 +25 40 s40/3 0.63882758 +25 40 s40/6 0.12961741 +25 40 s40/8 -0.08628772 +25 40 s40/10 0.12328158 +28 3 s3/1 -0.05856618 +28 3 s3/3 -0.94162025 +28 3 s3/6 0.53180083 +28 3 s3/8 -1.55681548 +28 3 s3/10 -2.13682818 +28 4 s4/1 -1.97100182 +28 4 s4/3 -1.97080374 +28 4 s4/6 0.19318699 +28 4 s4/8 -1.82332800 +28 4 s4/10 0.37206170 +28 7 s7/1 1.29098642 +28 7 s7/3 1.29755839 +28 7 s7/6 0.64396975 +28 7 s7/8 0.52906701 +28 7 s7/10 0.69285177 +28 8 s8/1 -0.08895992 +28 8 s8/3 0.42680242 +28 8 s8/6 0.24660245 +28 8 s8/8 0.49541108 +28 8 s8/10 0.51107429 +28 9 s9/1 -1.74929008 +28 9 s9/3 -1.63130459 +28 9 s9/6 -1.26416171 +28 9 s9/8 -1.52020792 +28 9 s9/10 -1.38985560 +28 13 s13/1 -1.08377443 +28 13 s13/3 -0.80619800 +28 13 s13/6 0.38468412 +28 13 s13/8 0.56875111 +28 13 s13/10 0.20175845 +28 15 s15/1 1.25429146 +28 15 s15/3 1.32467361 +28 15 s15/6 0.96395462 +28 15 s15/8 0.98562584 +28 15 s15/10 -1.72430748 +28 18 s18/1 -0.10624505 +28 18 s18/3 -0.09190975 +28 18 s18/6 -0.50274218 +28 18 s18/8 -0.44130841 +28 18 s18/10 -0.79787324 +28 19 s19/1 0.54517001 +28 19 s19/3 0.38285510 +28 19 s19/6 -0.18170860 +28 19 s19/8 0.87115002 +28 19 s19/10 0.09697629 +28 22 s22/1 0.37397610 +28 22 s22/3 0.16761203 +28 22 s22/6 0.56704519 +28 22 s22/8 0.34434539 +28 22 s22/10 -0.34092378 +28 23 s23/1 -0.26640269 +28 23 s23/3 0.01557418 +28 23 s23/6 -1.34747274 +28 23 s23/8 0.38016360 +28 23 s23/10 0.55050328 +28 25 s25/1 -1.49453799 +28 25 s25/3 -1.46062247 +28 25 s25/6 -1.52469743 +28 25 s25/8 -1.32867832 +28 25 s25/10 -1.43333474 +28 28 s28/1 1.79848817 +28 28 s28/3 -1.01619702 +28 28 s28/6 1.22832996 +28 28 s28/8 1.38548857 +28 28 s28/10 -0.64668937 +28 30 s30/1 -0.75386431 +28 30 s30/3 -1.31421992 +28 30 s30/6 -0.29225072 +28 30 s30/8 0.46462763 +28 30 s30/10 -0.05562745 +28 31 s31/1 -1.42411549 +28 31 s31/3 0.00838427 +28 31 s31/6 -1.55959271 +28 31 s31/8 -1.46894537 +28 31 s31/10 0.24706528 +28 32 s32/1 1.30415137 +28 32 s32/3 0.46271800 +28 32 s32/6 1.40998308 +28 32 s32/8 1.34539059 +28 32 s32/10 1.46486561 +28 35 s35/1 -0.93389063 +28 35 s35/3 -1.40162293 +28 35 s35/6 -1.84793572 +28 35 s35/8 -1.78187253 +28 35 s35/10 -0.53899847 +28 37 s37/1 0.84706458 +28 37 s37/3 1.34856930 +28 37 s37/6 1.82378133 +28 37 s37/8 1.88060929 +28 37 s37/10 1.47352961 +28 38 s38/1 -0.26551258 +28 38 s38/3 -1.25594071 +28 38 s38/6 -0.33194325 +28 38 s38/8 -1.45809454 +28 38 s38/10 -1.47326364 +28 40 s40/1 -1.06520396 +28 40 s40/3 -1.47314705 +28 40 s40/6 -0.79706467 +28 40 s40/8 -0.84207012 +28 40 s40/10 -1.36574833 +30 3 s3/1 -2.05973893 +30 3 s3/3 -0.13915791 +30 3 s3/6 -0.08672542 +30 3 s3/8 -0.27765252 +30 3 s3/10 -0.45598197 +30 4 s4/1 0.14490933 +30 4 s4/3 0.08358490 +30 4 s4/6 -0.74612835 +30 4 s4/8 0.02918282 +30 4 s4/10 0.10555846 +30 7 s7/1 -0.19719660 +30 7 s7/3 -0.39998681 +30 7 s7/6 -0.57990760 +30 7 s7/8 -0.77742431 +30 7 s7/10 -0.01292477 +30 8 s8/1 -0.01223562 +30 8 s8/3 -0.67217297 +30 8 s8/6 -0.64237655 +30 8 s8/8 -0.92290511 +30 8 s8/10 -0.87666905 +30 9 s9/1 -0.30460370 +30 9 s9/3 -0.45012260 +30 9 s9/6 -0.04461033 +30 9 s9/8 -0.09341524 +30 9 s9/10 0.58863900 +30 13 s13/1 -0.74695334 +30 13 s13/3 -0.56424332 +30 13 s13/6 -0.29704692 +30 13 s13/8 -0.90299884 +30 13 s13/10 -0.27453558 +30 15 s15/1 0.22796222 +30 15 s15/3 0.01203653 +30 15 s15/6 0.09983382 +30 15 s15/8 0.38199123 +30 15 s15/10 0.56642422 +30 18 s18/1 -0.42089907 +30 18 s18/3 0.14707027 +30 18 s18/6 -0.35379942 +30 18 s18/8 -0.04928832 +30 18 s18/10 -0.25751083 +30 19 s19/1 -1.25037451 +30 19 s19/3 -1.32079628 +30 19 s19/6 -1.54959845 +30 19 s19/8 -0.90527365 +30 19 s19/10 -1.48300264 +30 22 s22/1 0.38569938 +30 22 s22/3 0.56217267 +30 22 s22/6 0.04093587 +30 22 s22/8 0.45251314 +30 22 s22/10 0.49319329 +30 23 s23/1 -0.74270702 +30 23 s23/3 -0.32388105 +30 23 s23/6 -0.15326577 +30 23 s23/8 0.33921011 +30 23 s23/10 -0.76342678 +30 25 s25/1 0.14821314 +30 25 s25/3 0.00672975 +30 25 s25/6 0.28111657 +30 25 s25/8 0.33926807 +30 25 s25/10 0.06100192 +30 28 s28/1 -0.05666325 +30 28 s28/3 0.20128387 +30 28 s28/6 0.74123039 +30 28 s28/8 -0.89720099 +30 28 s28/10 -0.53142822 +30 30 s30/1 1.32641549 +30 30 s30/3 1.29632758 +30 30 s30/6 1.66733155 +30 30 s30/8 1.80671963 +30 30 s30/10 1.49862072 +30 31 s31/1 0.52630644 +30 31 s31/3 1.01778341 +30 31 s31/6 0.52725555 +30 31 s31/8 0.43583363 +30 31 s31/10 1.10548600 +30 32 s32/1 0.19098069 +30 32 s32/3 -0.40761433 +30 32 s32/6 -0.35858052 +30 32 s32/8 -0.42897987 +30 32 s32/10 -0.19950595 +30 35 s35/1 0.20639152 +30 35 s35/3 0.24582969 +30 35 s35/6 0.06001349 +30 35 s35/8 -0.22686275 +30 35 s35/10 0.62820194 +30 37 s37/1 -0.34707829 +30 37 s37/3 -0.11344778 +30 37 s37/6 0.19350492 +30 37 s37/8 -0.09698141 +30 37 s37/10 -0.77746770 +30 38 s38/1 0.17019968 +30 38 s38/3 -0.81659457 +30 38 s38/6 -0.11702959 +30 38 s38/8 -0.33361832 +30 38 s38/10 -0.63729365 +30 40 s40/1 0.01750990 +30 40 s40/3 0.36802622 +30 40 s40/6 0.09334222 +30 40 s40/8 -0.43839696 +30 40 s40/10 0.63734977 +31 3 s3/1 -1.12662590 +31 3 s3/3 -0.40638911 +31 3 s3/6 0.00755584 +31 3 s3/8 0.13254581 +31 3 s3/10 -0.46928344 +31 4 s4/1 -0.24953289 +31 4 s4/3 -0.49220720 +31 4 s4/6 -1.41021081 +31 4 s4/8 -0.42704073 +31 4 s4/10 -0.41304944 +31 7 s7/1 -0.07502763 +31 7 s7/3 -0.09473874 +31 7 s7/6 -0.26685559 +31 7 s7/8 -0.53603113 +31 7 s7/10 0.30589447 +31 8 s8/1 0.11723981 +31 8 s8/3 -0.09692516 +31 8 s8/6 -0.16264102 +31 8 s8/8 -0.08417081 +31 8 s8/10 -0.35444549 +31 9 s9/1 -0.39937042 +31 9 s9/3 -0.17769735 +31 9 s9/6 -0.00784144 +31 9 s9/8 -0.11524512 +31 9 s9/10 0.85226039 +31 13 s13/1 -1.49513572 +31 13 s13/3 -1.37345160 +31 13 s13/6 -1.25478178 +31 13 s13/8 -1.43014937 +31 13 s13/10 -1.45050914 +31 15 s15/1 0.42399701 +31 15 s15/3 0.26512772 +31 15 s15/6 0.24788647 +31 15 s15/8 1.04515194 +31 15 s15/10 0.69179207 +31 18 s18/1 -0.90144254 +31 18 s18/3 -1.11696179 +31 18 s18/6 -0.93064789 +31 18 s18/8 -0.79842396 +31 18 s18/10 -0.91091783 +31 19 s19/1 -0.68612835 +31 19 s19/3 -0.70839922 +31 19 s19/6 -0.93509581 +31 19 s19/8 -0.46602381 +31 19 s19/10 -0.91081488 +31 22 s22/1 0.62807471 +31 22 s22/3 0.76289344 +31 22 s22/6 0.15762582 +31 22 s22/8 0.51180800 +31 22 s22/10 0.54614474 +31 23 s23/1 -0.58593462 +31 23 s23/3 -0.00794417 +31 23 s23/6 -0.14383845 +31 23 s23/8 0.04460486 +31 23 s23/10 -0.75626203 +31 25 s25/1 -0.04726297 +31 25 s25/3 0.00818727 +31 25 s25/6 0.22604736 +31 25 s25/8 0.43562240 +31 25 s25/10 -0.33235884 +31 28 s28/1 -0.88121452 +31 28 s28/3 -1.73296983 +31 28 s28/6 -0.39733211 +31 28 s28/8 -1.16367259 +31 28 s28/10 -1.44703492 +31 30 s30/1 0.84706144 +31 30 s30/3 0.67765960 +31 30 s30/6 1.01733407 +31 30 s30/8 1.08073061 +31 30 s30/10 0.97584945 +31 31 s31/1 0.79188094 +31 31 s31/3 1.67125164 +31 31 s31/6 0.97509506 +31 31 s31/8 0.75420099 +31 31 s31/10 1.60424143 +31 32 s32/1 0.01285353 +31 32 s32/3 -0.02914021 +31 32 s32/6 -0.34704267 +31 32 s32/8 -0.56345612 +31 32 s32/10 -0.30879157 +31 35 s35/1 0.73357553 +31 35 s35/3 0.72465887 +31 35 s35/6 0.24415341 +31 35 s35/8 0.33243582 +31 35 s35/10 1.18178542 +31 37 s37/1 -1.05204645 +31 37 s37/3 -0.84539244 +31 37 s37/6 0.39039605 +31 37 s37/8 0.21104691 +31 37 s37/10 -1.09825401 +31 38 s38/1 -0.17285065 +31 38 s38/3 -0.92980477 +31 38 s38/6 -0.19821433 +31 38 s38/8 -0.97334607 +31 38 s38/10 -0.85692066 +31 40 s40/1 -0.78657595 +31 40 s40/3 0.08018607 +31 40 s40/6 -0.83456616 +31 40 s40/8 -0.90516669 +31 40 s40/10 -0.71565764 +32 3 s3/1 0.01241309 +32 3 s3/3 -1.08631254 +32 3 s3/6 -1.21752041 +32 3 s3/8 -1.30629684 +32 3 s3/10 -1.40850679 +32 4 s4/1 -1.04904785 +32 4 s4/3 -1.01797672 +32 4 s4/6 -0.31627889 +32 4 s4/8 -1.06667306 +32 4 s4/10 0.04888051 +32 7 s7/1 0.88685649 +32 7 s7/3 0.95227200 +32 7 s7/6 1.19826891 +32 7 s7/8 1.17083677 +32 7 s7/10 0.91341886 +32 8 s8/1 -0.99838549 +32 8 s8/3 -0.89300783 +32 8 s8/6 -0.91292538 +32 8 s8/8 -0.82930490 +32 8 s8/10 -0.57056289 +32 9 s9/1 -1.44694360 +32 9 s9/3 -1.46544100 +32 9 s9/6 -1.75907549 +32 9 s9/8 -1.66437909 +32 9 s9/10 -1.26866341 +32 13 s13/1 0.27371857 +32 13 s13/3 0.75347330 +32 13 s13/6 0.84402434 +32 13 s13/8 1.07598333 +32 13 s13/10 0.87873108 +32 15 s15/1 0.83579376 +32 15 s15/3 0.91937659 +32 15 s15/6 1.07193158 +32 15 s15/8 0.28711656 +32 15 s15/10 -1.25396704 +32 18 s18/1 0.97556406 +32 18 s18/3 0.85602155 +32 18 s18/6 0.98965828 +32 18 s18/8 0.68416928 +32 18 s18/10 0.40125849 +32 19 s19/1 1.38076956 +32 19 s19/3 1.39780126 +32 19 s19/6 1.23513049 +32 19 s19/8 1.05023527 +32 19 s19/10 1.28647100 +32 22 s22/1 -0.22506115 +32 22 s22/3 -0.65233103 +32 22 s22/6 1.07952722 +32 22 s22/8 -0.28508742 +32 22 s22/10 -0.39725048 +32 23 s23/1 -1.01218587 +32 23 s23/3 -0.62209578 +32 23 s23/6 -1.71383789 +32 23 s23/8 -0.57139758 +32 23 s23/10 -1.21445728 +32 25 s25/1 -0.97786658 +32 25 s25/3 -1.15036124 +32 25 s25/6 -1.08346127 +32 25 s25/8 -1.60114537 +32 25 s25/10 -1.19521158 +32 28 s28/1 0.16013570 +32 28 s28/3 -1.02305631 +32 28 s28/6 -0.80807642 +32 28 s28/8 0.58189866 +32 28 s28/10 0.89588522 +32 30 s30/1 -1.68164696 +32 30 s30/3 -1.42910903 +32 30 s30/6 -1.30954825 +32 30 s30/8 -0.35625878 +32 30 s30/10 -1.42147905 +32 31 s31/1 -1.67357030 +32 31 s31/3 -0.90247733 +32 31 s31/6 -1.57273274 +32 31 s31/8 -1.70126595 +32 31 s31/10 -0.66606714 +32 32 s32/1 1.46569340 +32 32 s32/3 1.54988039 +32 32 s32/6 1.62954076 +32 32 s32/8 1.74420695 +32 32 s32/10 1.61580817 +32 35 s35/1 -1.69088617 +32 35 s35/3 -1.25742843 +32 35 s35/6 -1.37345806 +32 35 s35/8 -1.10435819 +32 35 s35/10 -0.32058314 +32 37 s37/1 0.88173327 +32 37 s37/3 0.92016696 +32 37 s37/6 0.57345981 +32 37 s37/8 0.49264207 +32 37 s37/10 1.18115198 +32 38 s38/1 -1.82504915 +32 38 s38/3 -0.97428741 +32 38 s38/6 -1.75934302 +32 38 s38/8 -1.40399151 +32 38 s38/10 -0.88799192 +32 40 s40/1 0.50922856 +32 40 s40/3 -0.14917563 +32 40 s40/6 -0.24019341 +32 40 s40/8 -0.04163380 +32 40 s40/10 0.07599658 +35 3 s3/1 -0.50600058 +35 3 s3/3 -0.68958446 +35 3 s3/6 -0.85582368 +35 3 s3/8 0.30192253 +35 3 s3/10 0.18989572 +35 4 s4/1 0.61562204 +35 4 s4/3 0.52383527 +35 4 s4/6 -0.49746166 +35 4 s4/8 0.69056821 +35 4 s4/10 0.15099426 +35 7 s7/1 -0.72761550 +35 7 s7/3 -0.63437163 +35 7 s7/6 -0.53146846 +35 7 s7/8 -0.62277973 +35 7 s7/10 -0.24252377 +35 8 s8/1 -0.62683788 +35 8 s8/3 -0.66976822 +35 8 s8/6 -0.66101257 +35 8 s8/8 -0.60958062 +35 8 s8/10 -0.75714010 +35 9 s9/1 0.18620979 +35 9 s9/3 0.01450953 +35 9 s9/6 0.38924056 +35 9 s9/8 0.35936651 +35 9 s9/10 0.44196206 +35 13 s13/1 0.12291414 +35 13 s13/3 0.10954957 +35 13 s13/6 -0.42169155 +35 13 s13/8 -0.27707993 +35 13 s13/10 -0.33380772 +35 15 s15/1 -0.67961488 +35 15 s15/3 -0.83546293 +35 15 s15/6 -0.65427434 +35 15 s15/8 -0.42936726 +35 15 s15/10 0.85750249 +35 18 s18/1 0.20676118 +35 18 s18/3 0.07108884 +35 18 s18/6 0.16037637 +35 18 s18/8 0.28305199 +35 18 s18/10 0.38726599 +35 19 s19/1 -0.49613941 +35 19 s19/3 -0.32867086 +35 19 s19/6 -0.40811913 +35 19 s19/8 -0.76346436 +35 19 s19/10 -0.48354665 +35 22 s22/1 -0.03731574 +35 22 s22/3 0.03378717 +35 22 s22/6 -0.38116162 +35 22 s22/8 -0.11752423 +35 22 s22/10 0.18557467 +35 23 s23/1 -0.54318719 +35 23 s23/3 0.07811502 +35 23 s23/6 0.49976249 +35 23 s23/8 -0.96843803 +35 23 s23/10 -0.98766709 +35 25 s25/1 0.86659462 +35 25 s25/3 0.93458488 +35 25 s25/6 0.86803381 +35 25 s25/8 0.85649549 +35 25 s25/10 0.74393539 +35 28 s28/1 -1.47068798 +35 28 s28/3 -0.88359891 +35 28 s28/6 -1.22646123 +35 28 s28/8 -1.18876811 +35 28 s28/10 -0.70463649 +35 30 s30/1 -0.02042139 +35 30 s30/3 0.28345511 +35 30 s30/6 -0.19506410 +35 30 s30/8 -0.04652136 +35 30 s30/10 -0.20099677 +35 31 s31/1 0.60796737 +35 31 s31/3 0.60382110 +35 31 s31/6 0.66746678 +35 31 s31/8 0.62860999 +35 31 s31/10 0.47914118 +35 32 s32/1 -0.50748482 +35 32 s32/3 0.29851747 +35 32 s32/6 -0.67612881 +35 32 s32/8 -0.62359305 +35 32 s32/10 -0.66491025 +35 35 s35/1 0.96835222 +35 35 s35/3 1.28172879 +35 35 s35/6 0.95612353 +35 35 s35/8 1.22596451 +35 35 s35/10 1.20214914 +35 37 s37/1 -0.60957907 +35 37 s37/3 -0.76216336 +35 37 s37/6 -0.72702877 +35 37 s37/8 -0.78798158 +35 37 s37/10 -0.85267748 +35 38 s38/1 -0.58584271 +35 38 s38/3 -0.29066350 +35 38 s38/6 -0.56803829 +35 38 s38/8 -0.24315283 +35 38 s38/10 -0.50759422 +35 40 s40/1 0.36317105 +35 40 s40/3 0.88946262 +35 40 s40/6 0.27991460 +35 40 s40/8 0.09134836 +35 40 s40/10 0.17260349 +37 3 s3/1 0.73506963 +37 3 s3/3 -0.32799588 +37 3 s3/6 0.98421646 +37 3 s3/8 -1.22798733 +37 3 s3/10 -1.79152563 +37 4 s4/1 -2.06174144 +37 4 s4/3 -1.88483382 +37 4 s4/6 -0.33764182 +37 4 s4/8 -2.08959194 +37 4 s4/10 0.23215304 +37 7 s7/1 1.01672830 +37 7 s7/3 1.09281621 +37 7 s7/6 0.51150866 +37 7 s7/8 0.31812250 +37 7 s7/10 0.41347824 +37 8 s8/1 0.10205328 +37 8 s8/3 0.47010311 +37 8 s8/6 0.31143686 +37 8 s8/8 0.47995116 +37 8 s8/10 0.42259098 +37 9 s9/1 -1.62733788 +37 9 s9/3 -1.58165997 +37 9 s9/6 -1.05335316 +37 9 s9/8 -1.42814157 +37 9 s9/10 -1.28623094 +37 13 s13/1 -1.36945400 +37 13 s13/3 -1.03312172 +37 13 s13/6 -0.06321916 +37 13 s13/8 -0.01227605 +37 13 s13/10 -0.27058480 +37 15 s15/1 1.17857741 +37 15 s15/3 1.34842098 +37 15 s15/6 0.94884363 +37 15 s15/8 1.04619535 +37 15 s15/10 -1.37536409 +37 18 s18/1 -0.71720015 +37 18 s18/3 -0.11445567 +37 18 s18/6 -0.84801099 +37 18 s18/8 -0.40862019 +37 18 s18/10 -1.01569987 +37 19 s19/1 0.12783957 +37 19 s19/3 -0.03740205 +37 19 s19/6 -0.58490534 +37 19 s19/8 0.66970340 +37 19 s19/10 -0.28262736 +37 22 s22/1 0.61608034 +37 22 s22/3 0.55234852 +37 22 s22/6 0.48191318 +37 22 s22/8 0.66864528 +37 22 s22/10 -0.01035055 +37 23 s23/1 -0.70724607 +37 23 s23/3 0.04587020 +37 23 s23/6 -1.38640151 +37 23 s23/8 -0.07843484 +37 23 s23/10 0.22154764 +37 25 s25/1 -1.25663423 +37 25 s25/3 -1.19280297 +37 25 s25/6 -1.06181037 +37 25 s25/8 -1.50510869 +37 25 s25/10 -1.23898604 +37 28 s28/1 2.03001346 +37 28 s28/3 -0.84539657 +37 28 s28/6 1.79127566 +37 28 s28/8 0.62715272 +37 28 s28/10 -0.52532595 +37 30 s30/1 -0.16701718 +37 30 s30/3 -0.81405226 +37 30 s30/6 0.55825334 +37 30 s30/8 1.01408306 +37 30 s30/10 0.45893051 +37 31 s31/1 -1.13160728 +37 31 s31/3 0.41309133 +37 31 s31/6 -1.07912022 +37 31 s31/8 -1.23080594 +37 31 s31/10 0.59493403 +37 32 s32/1 1.26863302 +37 32 s32/3 0.30333852 +37 32 s32/6 1.17464307 +37 32 s32/8 1.10323522 +37 32 s32/10 1.20638937 +37 35 s35/1 -1.09617741 +37 35 s35/3 -1.59080588 +37 35 s35/6 -1.84285445 +37 35 s35/8 -1.82861505 +37 35 s35/10 -0.62279091 +37 37 s37/1 1.24023233 +37 37 s37/3 1.58646495 +37 37 s37/6 2.04953448 +37 37 s37/8 2.05873360 +37 37 s37/10 1.36938213 +37 38 s38/1 -0.11854877 +37 38 s38/3 -1.43215609 +37 38 s38/6 -0.28732559 +37 38 s38/8 -1.05633536 +37 38 s38/10 -1.25520478 +37 40 s40/1 -1.66675225 +37 40 s40/3 -1.86868125 +37 40 s40/6 -1.10300696 +37 40 s40/8 -1.52326378 +37 40 s40/10 -1.24506991 +38 3 s3/1 0.89283944 +38 3 s3/3 2.30634788 +38 3 s3/6 -0.02086379 +38 3 s3/8 0.95347620 +38 3 s3/10 0.92374085 +38 4 s4/1 0.50735074 +38 4 s4/3 0.84315515 +38 4 s4/6 0.31112660 +38 4 s4/8 0.43612587 +38 4 s4/10 -1.32094627 +38 7 s7/1 -0.80038360 +38 7 s7/3 -0.80707800 +38 7 s7/6 -0.47280437 +38 7 s7/8 -0.03531651 +38 7 s7/10 -1.49674040 +38 8 s8/1 0.77428772 +38 8 s8/3 0.94696822 +38 8 s8/6 1.14180576 +38 8 s8/8 0.80909746 +38 8 s8/10 0.90011050 +38 9 s9/1 1.26153628 +38 9 s9/3 1.43767654 +38 9 s9/6 0.66286214 +38 9 s9/8 0.82227511 +38 9 s9/10 -0.37048890 +38 13 s13/1 0.86021234 +38 13 s13/3 0.14739257 +38 13 s13/6 -0.65370957 +38 13 s13/8 -0.19171157 +38 13 s13/10 -0.57150373 +38 15 s15/1 -0.84045049 +38 15 s15/3 -0.38833091 +38 15 s15/6 -0.59611079 +38 15 s15/8 -0.88078107 +38 15 s15/10 0.12174637 +38 18 s18/1 -1.19124181 +38 18 s18/3 -0.78073175 +38 18 s18/6 -0.73729325 +38 18 s18/8 -0.60009539 +38 18 s18/10 -0.37959559 +38 19 s19/1 -0.15106257 +38 19 s19/3 -0.24794491 +38 19 s19/6 0.58662560 +38 19 s19/8 0.21003089 +38 19 s19/10 0.55831264 +38 22 s22/1 -0.09484903 +38 22 s22/3 -0.08799775 +38 22 s22/6 -0.53439920 +38 22 s22/8 0.27527889 +38 22 s22/10 0.16432732 +38 23 s23/1 0.66373016 +38 23 s23/3 -1.30383394 +38 23 s23/6 0.34394110 +38 23 s23/8 -0.44223607 +38 23 s23/10 1.08588693 +38 25 s25/1 -0.06720318 +38 25 s25/3 -0.13904146 +38 25 s25/6 -0.22895301 +38 25 s25/8 -0.24062265 +38 25 s25/10 -0.23113798 +38 28 s28/1 0.09101672 +38 28 s28/3 2.14402846 +38 28 s28/6 0.13436131 +38 28 s28/8 0.62874002 +38 28 s28/10 0.43114118 +38 30 s30/1 -0.33859107 +38 30 s30/3 -0.17221077 +38 30 s30/6 -0.35602758 +38 30 s30/8 -1.47697129 +38 30 s30/10 -0.26436819 +38 31 s31/1 0.16168023 +38 31 s31/3 -1.37192989 +38 31 s31/6 -0.01355955 +38 31 s31/8 0.26493991 +38 31 s31/10 -1.61714533 +38 32 s32/1 -1.74766105 +38 32 s32/3 -1.87466782 +38 32 s32/6 -0.86628640 +38 32 s32/8 -0.91478004 +38 32 s32/10 -0.93401793 +38 35 s35/1 -0.33370576 +38 35 s35/3 -0.53497188 +38 35 s35/6 -0.34527071 +38 35 s35/8 -0.86023123 +38 35 s35/10 -2.07709763 +38 37 s37/1 -0.32041119 +38 37 s37/3 -0.43879940 +38 37 s37/6 -0.75145885 +38 37 s37/8 -0.32970972 +38 37 s37/10 -0.27878233 +38 38 s38/1 1.62362796 +38 38 s38/3 2.38753401 +38 38 s38/6 1.42088441 +38 38 s38/8 2.04485295 +38 38 s38/10 2.65261281 +38 40 s40/1 -0.11882883 +38 40 s40/3 -0.92110976 +38 40 s40/6 0.20084145 +38 40 s40/8 0.23826678 +38 40 s40/10 0.27650420 +40 3 s3/1 -0.43603279 +40 3 s3/3 -0.40084500 +40 3 s3/6 -1.26835846 +40 3 s3/8 -0.18045683 +40 3 s3/10 -0.18273123 +40 4 s4/1 0.90563566 +40 4 s4/3 0.82663526 +40 4 s4/6 -0.31621029 +40 4 s4/8 0.95238470 +40 4 s4/10 -0.41863438 +40 7 s7/1 -0.90934205 +40 7 s7/3 -0.74537186 +40 7 s7/6 -0.57584682 +40 7 s7/8 -0.52534064 +40 7 s7/10 -0.45045869 +40 8 s8/1 -1.04696653 +40 8 s8/3 -0.97425455 +40 8 s8/6 -0.91872241 +40 8 s8/8 -1.14109199 +40 8 s8/10 -0.95028812 +40 9 s9/1 0.51694013 +40 9 s9/3 0.31585519 +40 9 s9/6 0.16507650 +40 9 s9/8 0.65191596 +40 9 s9/10 -0.02276764 +40 13 s13/1 0.66234050 +40 13 s13/3 0.37550186 +40 13 s13/6 0.40816911 +40 13 s13/8 -0.13075537 +40 13 s13/10 -0.01190915 +40 15 s15/1 -0.72721456 +40 15 s15/3 -0.65578877 +40 15 s15/6 -0.54141976 +40 15 s15/8 -0.50398817 +40 15 s15/10 0.77057661 +40 18 s18/1 0.29679893 +40 18 s18/3 0.69726324 +40 18 s18/6 0.60686179 +40 18 s18/8 0.74492100 +40 18 s18/10 0.73003619 +40 19 s19/1 -0.26645334 +40 19 s19/3 -0.16139666 +40 19 s19/6 0.13255027 +40 19 s19/8 -0.85131453 +40 19 s19/10 -0.10739114 +40 22 s22/1 -0.73680099 +40 22 s22/3 -0.70491177 +40 22 s22/6 -1.09723933 +40 22 s22/8 -0.61603530 +40 22 s22/10 -0.43814793 +40 23 s23/1 -0.08264126 +40 23 s23/3 0.70820623 +40 23 s23/6 0.94118503 +40 23 s23/8 -1.26436495 +40 23 s23/10 -0.75397897 +40 25 s25/1 0.84848788 +40 25 s25/3 0.90731162 +40 25 s25/6 0.78437774 +40 25 s25/8 0.91335850 +40 25 s25/10 0.53874091 +40 28 s28/1 -1.26267884 +40 28 s28/3 -0.84703947 +40 28 s28/6 -1.24074566 +40 28 s28/8 -0.63620469 +40 28 s28/10 -1.45598422 +40 30 s30/1 -0.36455870 +40 30 s30/3 -0.10113275 +40 30 s30/6 -0.88747181 +40 30 s30/8 -0.67029154 +40 30 s30/10 -0.41531352 +40 31 s31/1 0.36554526 +40 31 s31/3 -0.05405135 +40 31 s31/6 0.28548285 +40 31 s31/8 0.40389417 +40 31 s31/10 0.02543310 +40 32 s32/1 -0.42715416 +40 32 s32/3 0.45479259 +40 32 s32/6 -0.54264840 +40 32 s32/8 -0.15520306 +40 32 s32/10 -0.45625365 +40 35 s35/1 0.80140491 +40 35 s35/3 1.26083259 +40 35 s35/6 0.36464563 +40 35 s35/8 0.77367750 +40 35 s35/10 0.99934721 +40 37 s37/1 -0.15735343 +40 37 s37/3 -0.21495410 +40 37 s37/6 -0.89835345 +40 37 s37/8 -0.85266223 +40 37 s37/10 -0.54982542 +40 38 s38/1 -0.58354578 +40 38 s38/3 0.35819201 +40 38 s38/6 -0.61575653 +40 38 s38/8 -0.09514153 +40 38 s38/10 -0.11471385 +40 40 s40/1 0.89405923 +40 40 s40/3 1.19425984 +40 40 s40/6 0.86949211 +40 40 s40/8 0.99603519 +40 40 s40/10 0.93328583 diff --git a/bob/bio/gmm/test/test_algorithms.py b/bob/bio/gmm/test/test_algorithms.py index 03613b1..b358496 100644 --- a/bob/bio/gmm/test/test_algorithms.py +++ b/bob/bio/gmm/test/test_algorithms.py @@ -118,7 +118,7 @@ def test_gmm(): # compare model with probe probe = gmm1.read_probe(pkg_resources.resource_filename('bob.bio.gmm.test', 'data/gmm_projected.hdf5')) - reference_score = -0.02335195 + reference_score = -0.01676570 assert abs(gmm1.score(model, probe) - reference_score) < 1e-5, "The scores differ: %3.8f, %3.8f" % (gmm1.score(model, probe), reference_score) assert abs(gmm1.score_for_multiple_probes(model, [probe, probe]) - reference_score) < 1e-5 @@ -171,7 +171,7 @@ def test_gmm_regular(): probe = utils.random_array((20,45), -5., 5., seed=84) # compare model with probe - reference_score = -0.41556023 + reference_score = -0.40840148 assert abs(gmm1.score(model, probe) - reference_score) < 1e-5, "The scores differ: %3.8f, %3.8f" % (gmm1.score(model, probe), reference_score) # TODO: not implemented #assert abs(gmm1.score_for_multiple_probes(model, [probe, probe]) - reference_score) < 1e-5 @@ -236,7 +236,7 @@ def test_isv(): # compare model with probe probe = isv1.read_probe(pkg_resources.resource_filename('bob.bio.gmm.test', 'data/isv_projected.hdf5')) - reference_score = 0.01732122 + reference_score = 0.02136784 assert abs(isv1.score(model, probe) - reference_score) < 1e-5, "The scores differ: %3.8f, %3.8f" % (isv1.score(model, probe), reference_score) # assert abs(isv1.score_for_multiple_probes(model, [probe]*4) - reference_score) < 1e-5, isv1.score_for_multiple_probes(model, [probe, probe]) # TODO: Why is the score not identical for multiple copies of the same probe? @@ -320,7 +320,7 @@ def test_jfa(): # compare model with probe probe = jfa1.read_probe(pkg_resources.resource_filename('bob.bio.gmm.test', 'data/gmm_projected.hdf5')) - reference_score = 0.01763115 + reference_score = 0.02225812 assert abs(jfa1.score(model, probe) - reference_score) < 1e-5, "The scores differ: %3.8f, %3.8f" % (jfa1.score(model, probe), reference_score) # TODO: implement that # assert abs(jfa1.score_for_multiple_probes(model, [probe, probe]) - reference_score) < 1e-5, jfa1.score_for_multiple_probes(model, [probe, probe]) diff --git a/bob/bio/gmm/test/test_scripts.py b/bob/bio/gmm/test/test_scripts.py index 18f39f7..f175f2a 100644 --- a/bob/bio/gmm/test/test_scripts.py +++ b/bob/bio/gmm/test/test_scripts.py @@ -1,5 +1,3 @@ - - from __future__ import print_function import bob.measure @@ -10,11 +8,9 @@ import shutil import tempfile import numpy -import bob.io.base.test_utils import bob.io.image import bob.bio.base import bob.bio.gmm -from . import utils from nose.plugins.skip import SkipTest @@ -63,8 +59,8 @@ def _verify(parameters, test_dir, sub_dir, ref_modifier="", score_modifier=('sco shutil.rmtree(test_dir) -def test_gmm_base(): - test_dir = tempfile.mkdtemp(prefix='frltest_') +def test_gmm_sequential(): + test_dir = tempfile.mkdtemp(prefix='bobtest_') # define dummy parameters parameters = [ '-d', 'dummy', @@ -72,7 +68,7 @@ def test_gmm_base(): '-e', 'dummy', '-a', 'bob.bio.gmm.algorithm.GMM(2, 2, 2)', '--import', 'bob.bio.gmm', '--zt-norm', - '-s', 'test_gmm_sequential', '-vv', + '-s', 'test_gmm_sequential', '--temp-directory', test_dir, '--result-directory', test_dir ] @@ -84,7 +80,7 @@ def test_gmm_base(): def test_gmm_parallel(): from bob.bio.gmm.script.verify_gmm import main - test_dir = tempfile.mkdtemp(prefix='frltest_') + test_dir = tempfile.mkdtemp(prefix='bobtest_') test_database = os.path.join(test_dir, "submitted.sql3") # define dummy parameters parameters = [ @@ -95,7 +91,7 @@ def test_gmm_parallel(): '-g', 'bob.bio.base.grid.Grid(grid = "local", number_of_parallel_processes = 2, scheduler_sleep_time = 0.1)', '-G', test_database, '--run-local-scheduler', '-R', '--clean-intermediate', '--zt-norm', - '-s', 'test_gmm_parallel', '-vv', + '-s', 'test_gmm_parallel', '--temp-directory', test_dir, '--result-directory', test_dir, ] @@ -103,3 +99,45 @@ def test_gmm_parallel(): print (bob.bio.base.tools.command_line(parameters)) _verify(parameters, test_dir, 'test_gmm_parallel', executable=main, ref_modifier='-gmm') + + +def test_isv_sequential(): + test_dir = tempfile.mkdtemp(prefix='bobtest_') + # define dummy parameters + parameters = [ + '-d', 'dummy', + '-p', 'dummy', + '-e', 'dummy', + '-a', 'bob.bio.gmm.algorithm.ISV(10, number_of_gaussians=2, kmeans_training_iterations=2, gmm_training_iterations=2, isv_training_iterations=2)', '--import', 'bob.bio.gmm', + '--zt-norm', + '-s', 'test_isv_sequential', + '--temp-directory', test_dir, + '--result-directory', test_dir + ] + + print (bob.bio.base.tools.command_line(parameters)) + + _verify(parameters, test_dir, 'test_isv_sequential', ref_modifier='-isv') + + +def test_isv_parallel(): + from bob.bio.gmm.script.verify_isv import main + test_dir = tempfile.mkdtemp(prefix='bobtest_') + test_database = os.path.join(test_dir, "submitted.sql3") + # define dummy parameters + parameters = [ + '-d', 'dummy', + '-p', 'dummy', + '-e', 'dummy', + '-a', 'bob.bio.gmm.algorithm.ISV(10, number_of_gaussians=2, kmeans_training_iterations=2, gmm_training_iterations=2, isv_training_iterations=2)', '--import', 'bob.bio.gmm', 'bob.io.image', + '-g', 'bob.bio.base.grid.Grid(grid = "local", number_of_parallel_processes = 2, scheduler_sleep_time = 0.1)', '-G', test_database, '--run-local-scheduler', '-R', + '--clean-intermediate', + '--zt-norm', + '-s', 'test_isv_parallel', + '--temp-directory', test_dir, + '--result-directory', test_dir, + ] + + print (bob.bio.base.tools.command_line(parameters)) + + _verify(parameters, test_dir, 'test_isv_parallel', executable=main, ref_modifier='-isv') diff --git a/bob/bio/gmm/tools/__init__.py b/bob/bio/gmm/tools/__init__.py index 1903eb6..581eaba 100644 --- a/bob/bio/gmm/tools/__init__.py +++ b/bob/bio/gmm/tools/__init__.py @@ -1,2 +1,4 @@ +from .utils import * from .command_line import * from .gmm import * +from .isv import * diff --git a/bob/bio/gmm/tools/command_line.py b/bob/bio/gmm/tools/command_line.py index e81c358..8673398 100644 --- a/bob/bio/gmm/tools/command_line.py +++ b/bob/bio/gmm/tools/command_line.py @@ -7,7 +7,7 @@ logger = bob.core.log.setup("bob.bio.gmm") from bob.bio.base.tools import FileSelector -def add_parallel_gmm_options(parsers, additional_functions = ['gmm']): +def add_parallel_gmm_options(parsers, sub_module = None): """Add the options for parallel UBM training to the given parsers.""" flag_group = parsers['flag'] @@ -27,23 +27,27 @@ def add_parallel_gmm_options(parsers, additional_functions = ['gmm']): sub_dir_group.add_argument('--gmm-directory', default = 'gmm_temp', help = 'The sub-directory (relative to --temp-directory), where intermediate gmm files should be stored') + if sub_module == 'isv': + sub_dir_group.add_argument('--isv-directory', default = 'isv_temp', + help = 'The sub-directory (relative to --temp-directory), where intermediate isv training files should be stored') + # Functions to be added to the FileSelector class, once it is instantiated def _kmeans_intermediate_file(self, round): - return os.path.join(self.kmeans_temp_directory, 'round_%05d' % round, 'kmeans.hdf5') + return os.path.join(self.directories['kmeans'], 'round_%05d' % round, 'kmeans.hdf5') def _kmeans_stats_file(self, round, start_index, end_index): - return os.path.join(self.kmeans_temp_directory, 'round_%05d' % round, 'stats-%05d-%95d.hdf5' % (start_index, end_index)) + return os.path.join(self.directories['kmeans'], 'round_%05d' % round, 'stats-%05d-%95d.hdf5' % (start_index, end_index)) def _gmm_intermediate_file(self, round): - return os.path.join(self.gmm_temp_directory, 'round_%05d' % round, 'gmm.hdf5') + return os.path.join(self.directories['gmm'], 'round_%05d' % round, 'gmm.hdf5') def _gmm_stats_file(self, round, start_index, end_index): - return os.path.join(self.gmm_temp_directory, 'round_%05d' % round, 'stats-%05d-%95d.hdf5' % (start_index, end_index)) + return os.path.join(self.directories['gmm'], 'round_%05d' % round, 'stats-%05d-%95d.hdf5' % (start_index, end_index)) -def initialize_parallel_gmm(args): +def initialize_parallel_gmm(args, sub_module = None): # get the relevant sub_directory, which depends on the database and the prorocol protocol = 'None' if args.database.protocol is None else args.database.protocol extractor_sub_dir = protocol if args.database.training_depends_on_protocol and args.extractor.requires_training else '.' @@ -51,15 +55,18 @@ def initialize_parallel_gmm(args): fs = FileSelector.instance() - # add relevant directories to file selector object - fs.kmeans_temp_directory = os.path.join(args.temp_directory, sub_dir, args.kmeans_directory) - fs.kmeans_file = os.path.join(args.temp_directory, sub_dir, "kmeans.hdf5") - fs.gmm_temp_directory = os.path.join(args.temp_directory, sub_dir, args.gmm_directory) -# fs.gmm_file = os.path.join(args.temp_directory, sub_dir, "gmm.hdf5") - fs.gmm_file = fs.projector_file - # add relevant **functions** to file selector object fs.kmeans_intermediate_file = types.MethodType(_kmeans_intermediate_file, fs) fs.kmeans_stats_file = types.MethodType(_kmeans_stats_file, fs) fs.gmm_intermediate_file = types.MethodType(_gmm_intermediate_file, fs) fs.gmm_stats_file = types.MethodType(_gmm_stats_file, fs) + + # add relevant directories to file selector object + fs.directories['kmeans'] = os.path.join(args.temp_directory, sub_dir, args.kmeans_directory) + fs.kmeans_file = os.path.join(args.temp_directory, sub_dir, "kmeans.hdf5") + fs.directories['gmm'] = os.path.join(args.temp_directory, sub_dir, args.gmm_directory) + if sub_module is None: + fs.ubm_file = fs.projector_file + else: + fs.ubm_file = os.path.join(args.temp_directory, sub_dir, "ubm.hdf5") + fs.directories['isv'] = os.path.join(args.temp_directory, sub_dir, args.isv_directory) diff --git a/bob/bio/gmm/tools/gmm.py b/bob/bio/gmm/tools/gmm.py index 6c443c4..951e6c0 100644 --- a/bob/bio/gmm/tools/gmm.py +++ b/bob/bio/gmm/tools/gmm.py @@ -269,8 +269,8 @@ def gmm_mstep(algorithm, iteration, number_of_parallel_jobs, force=False, clean= gmm_machine.save(bob.io.base.HDF5File(new_machine_file, 'w')) if iteration == algorithm.gmm_training_iterations-1: - shutil.copy(new_machine_file, fs.gmm_file) - logger.info("UBM training: Wrote new GMM machine '%s'", fs.gmm_file) + shutil.copy(new_machine_file, fs.ubm_file) + logger.info("UBM training: Wrote new GMM machine '%s'", fs.ubm_file) if clean and iteration > 0: old_dir = os.path.dirname(fs.gmm_intermediate_file(iteration-1)) diff --git a/bob/bio/gmm/tools/isv.py b/bob/bio/gmm/tools/isv.py new file mode 100644 index 0000000..8ec7f54 --- /dev/null +++ b/bob/bio/gmm/tools/isv.py @@ -0,0 +1,55 @@ +import logging +logger = logging.getLogger("bob.bio.gmm") + +import bob.io.base +import os + +from bob.bio.base.tools.FileSelector import FileSelector +from bob.bio.base import utils, tools + +def gmm_project(algorithm, extractor, indices, force=False): + """Performs GMM projection""" + fs = FileSelector.instance() + + algorithm.load_ubm(fs.ubm_file) + + feature_files = fs.training_list('extracted', 'train_projector') + projected_files = fs.training_list('isv', 'train_projector') + + logger.info("ISV training: Project features range (%d, %d) from '%s' to '%s'", indices, fs.directories['extracted'], fs.directories['isv']) + + # extract the features + for i in range(indices[0], indices[1]): + feature_file = feature_files[i] + projected_file = projected_files[i] + + if not utils.check_file(projected_file, force): + # load feature + feature = extractor.read_feature(feature_file) + # project feature + projected = algorithm.project_ubm(feature) + # write it + bob.io.base.create_directories_safe(os.path.dirname(projected_file)) + bob.bio.base.save(projected, projected_file) + + +def isv_training(algorithm, force=False): + """Finally, the UBM is used to train the ISV projector/enroller.""" + fs = FileSelector.instance() + + if utils.check_file(fs.projector_file, force, 800): + logger.info("ISV training: Skipping ISV training since '%s' already exists", fs.isv_file) + else: + # read UBM into the ISV class + algorithm.load_ubm(fs.ubm_file) + + # read training data + training_list = fs.training_list('isv', 'train_projector', arrange_by_client = True) + train_gmm_stats = [[algorithm.read_gmm_stats(filename) for filename in client_files] for client_files in training_list] + + # perform ISV training + logger.info("ISV training: training ISV with %d clients", len(train_gmm_stats)) + algorithm.train_isv(train_gmm_stats) + # save result + bob.io.base.create_directories_safe(os.path.dirname(fs.projector_file)) + algorithm.save_projector(fs.projector_file) diff --git a/bob/bio/gmm/tools/utils.py b/bob/bio/gmm/tools/utils.py new file mode 100644 index 0000000..df76c4b --- /dev/null +++ b/bob/bio/gmm/tools/utils.py @@ -0,0 +1,47 @@ +import bob.bio.base + +def add_jobs(args, submitter, local_job_adder): + """Adds all (desired) jobs of the tool chain to the grid, or to the local list to be executed.""" + + assert args.grid is not None + + # Here, we use the default bob.bio.base add_jobs function, but intercept it for adding the training + SKIPS = ['preprocessing', 'extractor_training', 'extraction', 'projector_training', 'projection', 'enroller_training', 'enrollment', 'score_computation', 'concatenation', 'calibration'] + original_skips = {key : args.__dict__["skip_%s" % key] for key in SKIPS} + + # first, submit preprocessing and feature extraction; skip all others + for key in SKIPS[3:]: + setattr(args, "skip_%s" % key, True) + + job_ids = bob.bio.base.script.verify.add_jobs(args, submitter) + + for key in SKIPS[3:]: + setattr(args, "skip_%s" % key, original_skips[key]) + + # reset skips + args.skip_preprocessing = original_skips['preprocessing'] + args.skip_extractor_training = original_skips['extractor_training'] + args.skip_extraction = original_skips['extraction'] + + # if there are any external dependencies, we need to respect them + deps = args.external_dependencies[:] + # also, we depend on all previous steps + for n in ['preprocessing', 'extractor-training', 'extraction']: + if n in job_ids: + deps.append(job_ids[n]) + + # now, add our jobs + job_ids, deps = local_job_adder(args, job_ids, deps, submitter) + + # alright, finish the remaining bits + for key in SKIPS[:4]: + setattr(args, "skip_%s" % key, True) + + args.external_dependencies = deps + job_ids.update(bob.bio.base.script.verify.add_jobs(args, submitter)) + + # alright, finish the remaining bits + for key in SKIPS[:4]: + setattr(args, "skip_%s" % key, original_skips[key]) + + return job_ids diff --git a/setup.py b/setup.py index 0ed1518..6b18015 100644 --- a/setup.py +++ b/setup.py @@ -103,6 +103,7 @@ setup( # scripts should be declared using this entry: 'console_scripts' : [ 'verify_gmm.py = bob.bio.gmm.script.verify_gmm:main', + 'verify_isv.py = bob.bio.gmm.script.verify_isv:main', ], 'bob.bio.database': [ -- GitLab