diff --git a/bob/bio/gmm/algorithm/GMM.py b/bob/bio/gmm/algorithm/GMM.py index 6b48096fdf6c11114843000f143de8451aaecd77..fc9400071f8fd337e9192cd9452c15a663631fbd 100644 --- a/bob/bio/gmm/algorithm/GMM.py +++ b/bob/bio/gmm/algorithm/GMM.py @@ -15,21 +15,21 @@ import logging logger = logging.getLogger("bob.bio.gmm") class GMM (Algorithm): - """Algorithm for computing Universal Background Models and Gaussian Mixture Models of the features""" + """Algorithm for computing Universal Background Models and Gaussian Mixture Models of the features. + Features must be normalized to zero mean and unit standard deviation.""" def __init__( self, # parameters for the GMM number_of_gaussians, # parameters of UBM training - k_means_training_iterations = 500, # Maximum number of iterations for K-Means - gmm_training_iterations = 500, # Maximum number of iterations for ML GMM Training + kmeans_training_iterations = 25, # Maximum number of iterations for K-Means + gmm_training_iterations = 25, # Maximum number of iterations for ML GMM Training training_threshold = 5e-4, # Threshold to end the ML training variance_threshold = 5e-4, # Minimum value that a variance can reach update_weights = True, update_means = True, update_variances = True, - normalize_before_k_means = True, # Normalize the input features before running K-Means # parameters of the GMM enrollment relevance_factor = 4, # Relevance factor as described in Reynolds paper gmm_enroll_iterations = 1, # Number of iterations for the enrollment phase @@ -47,14 +47,13 @@ class GMM (Algorithm): use_projected_features_for_enrollment = False, number_of_gaussians = number_of_gaussians, - k_means_training_iterations = k_means_training_iterations, + kmeans_training_iterations = kmeans_training_iterations, gmm_training_iterations = gmm_training_iterations, training_threshold = training_threshold, variance_threshold = variance_threshold, update_weights = update_weights, update_means = update_means, update_variances = update_variances, - normalize_before_k_means = normalize_before_k_means, relevance_factor = relevance_factor, gmm_enroll_iterations = gmm_enroll_iterations, responsibility_threshold = responsibility_threshold, @@ -67,14 +66,13 @@ class GMM (Algorithm): # copy parameters self.gaussians = number_of_gaussians - self.k_means_training_iterations = k_means_training_iterations + self.kmeans_training_iterations = kmeans_training_iterations self.gmm_training_iterations = gmm_training_iterations self.training_threshold = training_threshold self.variance_threshold = variance_threshold self.update_weights = update_weights self.update_means = update_means self.update_variances = update_variances - self.normalize_before_k_means = normalize_before_k_means self.relevance_factor = relevance_factor self.gmm_enroll_iterations = gmm_enroll_iterations self.init_seed = INIT_SEED @@ -83,6 +81,8 @@ class GMM (Algorithm): self.scoring_function = scoring_function self.ubm = None + self.kmeans_trainer = bob.learn.em.KMeansTrainer() + self.ubm_trainer = bob.learn.em.ML_GMMTrainer(self.update_means, self.update_variances, self.update_weights, self.responsibility_threshold) def _check_feature(self, feature): @@ -94,42 +94,6 @@ class GMM (Algorithm): - ####################################################### - ################ UBM training ######################### - def _normalize_std_array(self, array): - """Applies a unit variance normalization to an array""" - - # Initializes variables - n_samples = array.shape[0] - length = array.shape[1] - mean = numpy.zeros((length,)) - std = numpy.zeros((length,)) - - # Computes mean and variance - for k in range(n_samples): - x = array[k,:].astype('float64') - mean += x - std += (x ** 2) - - mean /= n_samples - std /= n_samples - std -= (mean ** 2) - std = std ** 0.5 # sqrt(std) - - ar_std_list = [] - for k in range(n_samples): - ar_std_list.append(array[k,:].astype('float64') / std) - ar_std = numpy.vstack(ar_std_list) - - return (ar_std,std) - - - def _multiply_vectors_by_factors(self, matrix, vector): - """Used to unnormalize some data""" - for i in range(0, matrix.shape[0]): - for j in range(0, matrix.shape[1]): - matrix[i, j] *= vector[j] - ####################################################### ################ UBM training ######################### @@ -141,35 +105,18 @@ class GMM (Algorithm): # Computes input size input_size = array.shape[1] - # Normalizes the array if required - logger.debug(" .... Normalizing the array") - if not self.normalize_before_k_means: - normalized_array = array - else: - normalized_array, std_array = self._normalize_std_array(array) - - # Creates the machines (KMeans and GMM) logger.debug(" .... Creating machines") kmeans = bob.learn.em.KMeansMachine(self.gaussians, input_size) self.ubm = bob.learn.em.GMMMachine(self.gaussians, input_size) - # Creates the KMeansTrainer - kmeans_trainer = bob.learn.em.KMeansTrainer() - # Trains using the KMeansTrainer logger.info(" -> Training K-Means") - bob.learn.em.train(kmeans_trainer, kmeans, normalized_array, self.gmm_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, bob.core.random.mt19937(self.init_seed)) - variances, weights = kmeans.get_variances_and_weights_for_each_cluster(normalized_array) + variances, weights = kmeans.get_variances_and_weights_for_each_cluster(array) means = kmeans.means - # Undoes the normalization - if self.normalize_before_k_means: - logger.debug(" .... Undoing normalization") - self._multiply_vectors_by_factors(means, std_array) - self._multiply_vectors_by_factors(variances, std_array ** 2) - # Initializes the GMM self.ubm.means = means self.ubm.variances = variances @@ -178,8 +125,7 @@ class GMM (Algorithm): # Trains the GMM logger.info(" -> Training GMM") - trainer = bob.learn.em.ML_GMMTrainer(self.update_means, self.update_variances, self.update_weights) - bob.learn.em.train(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, bob.core.random.mt19937(self.init_seed)) def _save_projector(self, projector_file): @@ -219,7 +165,7 @@ class GMM (Algorithm): self.load_ubm(projector_file) # prepare MAP_GMM_Trainer kwargs = dict(mean_var_update_responsibilities_threshold=self.responsibility_threshold) if self.responsibility_threshold > 0. else dict() - self.trainer = bob.learn.em.MAP_GMMTrainer(self.ubm, relevance_factor = self.relevance_factor, update_means = True, update_variances = False, **kwargs) + self.enroll_trainer = bob.learn.em.MAP_GMMTrainer(self.ubm, relevance_factor = self.relevance_factor, update_means = True, update_variances = False, **kwargs) self.rng = bob.core.random.mt19937(self.init_seed) @@ -252,7 +198,7 @@ class GMM (Algorithm): gmm = bob.learn.em.GMMMachine(self.ubm) gmm.set_variance_thresholds(self.variance_threshold) - bob.learn.em.train(self.trainer, gmm, array, self.gmm_enroll_iterations, self.training_threshold, self.rng) + bob.learn.em.train(self.enroll_trainer, gmm, array, self.gmm_enroll_iterations, self.training_threshold, self.rng) return gmm def enroll(self, feature_arrays): diff --git a/bob/bio/gmm/config/algorithm/gmm.py b/bob/bio/gmm/config/algorithm/gmm.py index e251a4d987fc4784ca669cad70f4b1f47ef9a7e5..592b30e63d760dfcef8a505a941c7da45d49869e 100644 --- a/bob/bio/gmm/config/algorithm/gmm.py +++ b/bob/bio/gmm/config/algorithm/gmm.py @@ -5,6 +5,4 @@ import numpy algorithm = bob.bio.gmm.algorithm.GMM( number_of_gaussians = 512, - # by default, features are expected to be normalized and, hence, we don't need to re-normalize them - normalize_before_k_means = False ) diff --git a/bob/bio/gmm/config/algorithm/isv.py b/bob/bio/gmm/config/algorithm/isv.py index ce5efb8e2a3af606a94ec1f1ab832bfeb070c684..24a8be4cc02ec2bb1a3b68e943f92ed3017ebd03 100644 --- a/bob/bio/gmm/config/algorithm/isv.py +++ b/bob/bio/gmm/config/algorithm/isv.py @@ -7,7 +7,5 @@ algorithm = bob.bio.gmm.algorithm.ISV( # ISV parameters subspace_dimension_of_u = 160, # GMM parameters - number_of_gaussians = 512, - # by default, our features are normalized, so it does not need to be done here - normalize_before_k_means = False + number_of_gaussians = 512 ) diff --git a/bob/bio/gmm/script/__init__.py b/bob/bio/gmm/script/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/bob/bio/gmm/script/verify_gmm.py b/bob/bio/gmm/script/verify_gmm.py new file mode 100644 index 0000000000000000000000000000000000000000..f04d228a1a14998c787c4362ab9c82b4e0b9f2a9 --- /dev/null +++ b/bob/bio/gmm/script/verify_gmm.py @@ -0,0 +1,300 @@ +#!/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) + + # 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', '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', 'projection', 'enroller-training', 'enrollment', 'score-computation', 'concatenation', 'calibration'] + ) + + args.skip_projector_training = True + + # and add the GMM-related parameters + tools.initialize_parallel_gmm(args) + + # assert that the algorithm is a GMM + if args.algorithm.__class__ not in (algorithm.GMM, algorithm.GMMRegular): + raise ValueError("The given algorithm %s is not a (pure) GMM algorithm" % type(args.algorithm)) + + return args + +def add_gmm_jobs(args, job_ids, deps, submitter): + """Adds all GMM-related jobs.""" + + # KMeans + if not args.skip_kmeans: + # initialization + if not args.kmeans_start_iteration: + job_ids['kmeans-init'] = submitter.submit( + '--sub-task kmeans-init', + name = 'k-init', + dependencies = deps, + **args.grid.training_queue) + deps.append(job_ids['kmeans-init']) + + # several iterations of E and M steps + for iteration in range(args.kmeans_start_iteration, args.algorithm.kmeans_training_iterations): + # E-step + job_ids['kmeans-e-step'] = submitter.submit( + '--sub-task kmeans-e-step --iteration %d' % iteration, + name='k-e-%d' % iteration, + number_of_parallel_jobs = args.grid.number_of_projection_jobs, + dependencies = [job_ids['kmeans-m-step']] if iteration != args.kmeans_start_iteration else deps, + **args.grid.projection_queue) + + # M-step + job_ids['kmeans-m-step'] = submitter.submit( + '--sub-task kmeans-m-step --iteration %d' % iteration, + name='k-m-%d' % iteration, + dependencies = [job_ids['kmeans-e-step']], + **args.grid.training_queue) + + # add dependence to the last m step + deps.append(job_ids['kmeans-m-step']) + + # GMM + if not args.skip_gmm: + # initialization + if not args.gmm_start_iteration: + job_ids['gmm-init'] = submitter.submit( + '--sub-task gmm-init', + name = 'g-init', + dependencies = deps, + **args.grid.training_queue) + deps.append(job_ids['gmm-init']) + + # several iterations of E and M steps + for iteration in range(args.gmm_start_iteration, args.algorithm.gmm_training_iterations): + # E-step + job_ids['gmm-e-step'] = submitter.submit( + '--sub-task gmm-e-step --iteration %d' % iteration, + name='g-e-%d' % iteration, + number_of_parallel_jobs = args.grid.number_of_projection_jobs, + dependencies = [job_ids['gmm-m-step']] if iteration != args.gmm_start_iteration else deps, + **args.grid.projection_queue) + + # M-step + job_ids['gmm-m-step'] = submitter.submit( + '--sub-task gmm-m-step --iteration %d' % iteration, + name='g-m-%d' % iteration, + dependencies = [job_ids['gmm-e-step']], + **args.grid.training_queue) + + # add dependence to the last m step + deps.append(job_ids['gmm-m-step']) + return job_ids, deps + + + +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. + 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 bob.bio.base.script.verify.execute(args): + return True + + # now, check what we can do + + # the file selector object + fs = tools.FileSelector.instance() + + # train the feature projector + if args.sub_task == 'kmeans-init': + tools.kmeans_initialize( + args.algorithm, + args.extractor, + args.limit_training_data, + force = args.force) + + # train the feature projector + elif args.sub_task == 'kmeans-e-step': + tools.kmeans_estep( + args.algorithm, + args.extractor, + args.iteration, + 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 == 'kmeans-m-step': + tools.kmeans_mstep( + args.algorithm, + args.iteration, + number_of_parallel_jobs = args.grid.number_of_projection_jobs, + clean = args.clean_intermediate, + force = args.force) + + elif args.sub_task == 'gmm-init': + tools.gmm_initialize( + args.algorithm, + args.extractor, + args.limit_training_data, + force = args.force) + + # train the feature projector + elif args.sub_task == 'gmm-e-step': + tools.gmm_estep( + args.algorithm, + args.extractor, + args.iteration, + 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 == 'gmm-m-step': + tools.gmm_mstep( + args.algorithm, + args.iteration, + number_of_parallel_jobs = args.grid.number_of_projection_jobs, + clean = args.clean_intermediate, + 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_gmm.py', first_fake_job_id = 0) if args.grid else None + retval = add_jobs(args, submitter) + 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/scores-nonorm-gmm-dev b/bob/bio/gmm/test/data/scores-nonorm-gmm-dev new file mode 100644 index 0000000000000000000000000000000000000000..f2ef723305823d8a0cc4020387cf2244268667f7 --- /dev/null +++ b/bob/bio/gmm/test/data/scores-nonorm-gmm-dev @@ -0,0 +1,2000 @@ +3 3 s3/1 12.12236988 +3 3 s3/3 9.84751712 +3 3 s3/6 4.75518987 +3 3 s3/8 7.34467862 +3 3 s3/10 5.84208782 +3 4 s4/1 3.09607379 +3 4 s4/3 2.48938722 +3 4 s4/6 2.63333268 +3 4 s4/8 1.40062007 +3 4 s4/10 2.58779227 +3 7 s7/1 0.03026203 +3 7 s7/3 0.05371084 +3 7 s7/6 0.73314783 +3 7 s7/8 1.25630276 +3 7 s7/10 0.16822658 +3 8 s8/1 5.81056890 +3 8 s8/3 5.75233918 +3 8 s8/6 6.44847608 +3 8 s8/8 5.69238999 +3 8 s8/10 5.86999901 +3 9 s9/1 5.45359187 +3 9 s9/3 5.17747819 +3 9 s9/6 5.73711804 +3 9 s9/8 4.93655799 +3 9 s9/10 2.85098127 +3 13 s13/1 5.62485853 +3 13 s13/3 4.69495514 +3 13 s13/6 3.55635679 +3 13 s13/8 2.59760528 +3 13 s13/10 2.37059830 +3 15 s15/1 -1.70142152 +3 15 s15/3 -1.69356476 +3 15 s15/6 -1.33033951 +3 15 s15/8 -1.35860584 +3 15 s15/10 6.49832495 +3 18 s18/1 2.23807146 +3 18 s18/3 4.27006211 +3 18 s18/6 4.47229746 +3 18 s18/8 4.50382677 +3 18 s18/10 6.00976544 +3 19 s19/1 -1.07694589 +3 19 s19/3 -1.03747000 +3 19 s19/6 2.72020773 +3 19 s19/8 0.96846425 +3 19 s19/10 1.74247871 +3 22 s22/1 1.23767092 +3 22 s22/3 0.24627610 +3 22 s22/6 2.31421591 +3 22 s22/8 0.30195020 +3 22 s22/10 3.69811398 +3 23 s23/1 1.87687045 +3 23 s23/3 3.38952498 +3 23 s23/6 5.66120676 +3 23 s23/8 -0.53659900 +3 23 s23/10 2.28668652 +3 25 s25/1 8.43491331 +3 25 s25/3 7.06857340 +3 25 s25/6 9.62841626 +3 25 s25/8 8.23245817 +3 25 s25/10 6.86464951 +3 28 s28/1 5.78842083 +3 28 s28/3 5.00928434 +3 28 s28/6 5.48259408 +3 28 s28/8 3.34580887 +3 28 s28/10 2.90811181 +3 30 s30/1 -2.46934002 +3 30 s30/3 -1.07156951 +3 30 s30/6 -2.99083500 +3 30 s30/8 -6.39106288 +3 30 s30/10 -1.99549819 +3 31 s31/1 2.16230888 +3 31 s31/3 -0.31403369 +3 31 s31/6 4.22185543 +3 31 s31/8 2.87972682 +3 31 s31/10 -0.96237951 +3 32 s32/1 -0.41005064 +3 32 s32/3 0.22072282 +3 32 s32/6 -0.31322589 +3 32 s32/8 -0.38468649 +3 32 s32/10 -1.16069031 +3 35 s35/1 6.48789082 +3 35 s35/3 7.06172847 +3 35 s35/6 5.38267714 +3 35 s35/8 5.91408998 +3 35 s35/10 3.16072775 +3 37 s37/1 6.88137952 +3 37 s37/3 6.51478058 +3 37 s37/6 -2.13029191 +3 37 s37/8 1.14910469 +3 37 s37/10 5.53095492 +3 38 s38/1 4.72993506 +3 38 s38/3 6.77363523 +3 38 s38/6 4.18609363 +3 38 s38/8 2.61193852 +3 38 s38/10 5.90203072 +3 40 s40/1 2.71932160 +3 40 s40/3 2.83708560 +3 40 s40/6 3.26368573 +3 40 s40/8 4.49616501 +3 40 s40/10 4.71234296 +4 3 s3/1 2.14633635 +4 3 s3/3 3.43836674 +4 3 s3/6 1.81796493 +4 3 s3/8 1.42857864 +4 3 s3/10 5.49964400 +4 4 s4/1 3.44423972 +4 4 s4/3 2.74693646 +4 4 s4/6 4.95646739 +4 4 s4/8 3.80919552 +4 4 s4/10 8.42730408 +4 7 s7/1 0.72550812 +4 7 s7/3 0.38360469 +4 7 s7/6 -1.27798288 +4 7 s7/8 -0.89127053 +4 7 s7/10 3.18020438 +4 8 s8/1 -6.30166153 +4 8 s8/3 -0.41695038 +4 8 s8/6 -0.62568098 +4 8 s8/8 -0.42030610 +4 8 s8/10 0.41426749 +4 9 s9/1 6.73357661 +4 9 s9/3 5.79707766 +4 9 s9/6 3.47787722 +4 9 s9/8 4.62326299 +4 9 s9/10 6.96542511 +4 13 s13/1 1.95627863 +4 13 s13/3 1.44557635 +4 13 s13/6 5.13007786 +4 13 s13/8 2.40118494 +4 13 s13/10 2.42616788 +4 15 s15/1 -3.75928152 +4 15 s15/3 -4.44046589 +4 15 s15/6 -4.48329267 +4 15 s15/8 -2.14354789 +4 15 s15/10 3.02743713 +4 18 s18/1 8.68887021 +4 18 s18/3 4.84982311 +4 18 s18/6 6.15058873 +4 18 s18/8 5.37553075 +4 18 s18/10 7.30939083 +4 19 s19/1 -5.46084252 +4 19 s19/3 -4.17043309 +4 19 s19/6 -7.15933673 +4 19 s19/8 -6.07549806 +4 19 s19/10 -7.82279417 +4 22 s22/1 -3.29075641 +4 22 s22/3 -2.79237217 +4 22 s22/6 -5.13501428 +4 22 s22/8 -4.16592807 +4 22 s22/10 -4.35606651 +4 23 s23/1 2.77162088 +4 23 s23/3 5.64497363 +4 23 s23/6 3.31175580 +4 23 s23/8 6.29312862 +4 23 s23/10 2.61790109 +4 25 s25/1 9.02085606 +4 25 s25/3 8.29029453 +4 25 s25/6 7.69843159 +4 25 s25/8 3.33075168 +4 25 s25/10 9.26556371 +4 28 s28/1 1.04484479 +4 28 s28/3 1.51622883 +4 28 s28/6 2.44827156 +4 28 s28/8 5.70362238 +4 28 s28/10 0.20465073 +4 30 s30/1 1.38313021 +4 30 s30/3 1.24099580 +4 30 s30/6 1.28233788 +4 30 s30/8 -1.66643285 +4 30 s30/10 -0.13060615 +4 31 s31/1 5.04735575 +4 31 s31/3 -0.04719649 +4 31 s31/6 3.89818395 +4 31 s31/8 5.06259339 +4 31 s31/10 -0.62961374 +4 32 s32/1 -0.71615729 +4 32 s32/3 -1.77514581 +4 32 s32/6 -5.46498422 +4 32 s32/8 -4.41508652 +4 32 s32/10 -6.12257110 +4 35 s35/1 4.55881482 +4 35 s35/3 2.72453290 +4 35 s35/6 4.17078509 +4 35 s35/8 4.70268133 +4 35 s35/10 4.17056749 +4 37 s37/1 5.07741428 +4 37 s37/3 3.69439910 +4 37 s37/6 -4.26914583 +4 37 s37/8 -4.71648813 +4 37 s37/10 2.69876437 +4 38 s38/1 -0.13974573 +4 38 s38/3 -1.88109055 +4 38 s38/6 -0.54019782 +4 38 s38/8 3.58774193 +4 38 s38/10 -0.23426222 +4 40 s40/1 3.80375617 +4 40 s40/3 8.28320297 +4 40 s40/6 1.27045133 +4 40 s40/8 1.25964064 +4 40 s40/10 -1.45372071 +7 3 s3/1 3.75518788 +7 3 s3/3 5.86717866 +7 3 s3/6 0.02417393 +7 3 s3/8 -0.77358095 +7 3 s3/10 6.13018925 +7 4 s4/1 -3.41375408 +7 4 s4/3 -5.45204357 +7 4 s4/6 -0.73605232 +7 4 s4/8 -3.29416109 +7 4 s4/10 3.27374037 +7 7 s7/1 11.51230138 +7 7 s7/3 10.17243609 +7 7 s7/6 7.29552684 +7 7 s7/8 8.10823412 +7 7 s7/10 12.48549597 +7 8 s8/1 -5.90842164 +7 8 s8/3 -1.22152565 +7 8 s8/6 -0.75739272 +7 8 s8/8 -3.59316797 +7 8 s8/10 0.13129681 +7 9 s9/1 1.56602724 +7 9 s9/3 2.18801549 +7 9 s9/6 -3.66592407 +7 9 s9/8 0.13617017 +7 9 s9/10 4.65325900 +7 13 s13/1 -2.40040551 +7 13 s13/3 -6.73006139 +7 13 s13/6 1.01206644 +7 13 s13/8 0.01131685 +7 13 s13/10 0.13642123 +7 15 s15/1 1.33242405 +7 15 s15/3 0.47671019 +7 15 s15/6 0.46520151 +7 15 s15/8 -0.66353349 +7 15 s15/10 -3.54814683 +7 18 s18/1 4.48691850 +7 18 s18/3 -3.17398773 +7 18 s18/6 0.43405970 +7 18 s18/8 -2.83738074 +7 18 s18/10 0.87391190 +7 19 s19/1 -1.46868957 +7 19 s19/3 -2.45563513 +7 19 s19/6 -2.79088734 +7 19 s19/8 1.00433470 +7 19 s19/10 -5.61999477 +7 22 s22/1 -2.85135254 +7 22 s22/3 -3.02374119 +7 22 s22/6 -1.64652315 +7 22 s22/8 -3.26385053 +7 22 s22/10 -3.58439575 +7 23 s23/1 -2.04776269 +7 23 s23/3 1.54382822 +7 23 s23/6 -3.72400439 +7 23 s23/8 4.61334647 +7 23 s23/10 -1.88687329 +7 25 s25/1 -0.85040058 +7 25 s25/3 0.87771205 +7 25 s25/6 -1.41713816 +7 25 s25/8 -5.25862489 +7 25 s25/10 0.54527292 +7 28 s28/1 -1.16191462 +7 28 s28/3 -3.56341724 +7 28 s28/6 -1.53402050 +7 28 s28/8 7.59204177 +7 28 s28/10 -5.70258525 +7 30 s30/1 -4.98441565 +7 30 s30/3 -6.73289956 +7 30 s30/6 -3.87116321 +7 30 s30/8 -7.79836598 +7 30 s30/10 -6.15587851 +7 31 s31/1 -1.33378233 +7 31 s31/3 -6.07696399 +7 31 s31/6 -1.60252289 +7 31 s31/8 -1.28997866 +7 31 s31/10 -6.83049143 +7 32 s32/1 1.62235251 +7 32 s32/3 -5.06507131 +7 32 s32/6 -0.41465693 +7 32 s32/8 -0.73554336 +7 32 s32/10 -0.78023096 +7 35 s35/1 -0.57154946 +7 35 s35/3 2.20724692 +7 35 s35/6 -0.11133322 +7 35 s35/8 1.55870819 +7 35 s35/10 6.13485110 +7 37 s37/1 5.26084168 +7 37 s37/3 3.83668505 +7 37 s37/6 -0.17215411 +7 37 s37/8 -1.47668584 +7 37 s37/10 5.40939502 +7 38 s38/1 -6.68927109 +7 38 s38/3 -7.59316113 +7 38 s38/6 -6.42202021 +7 38 s38/8 -2.08418409 +7 38 s38/10 -2.97404077 +7 40 s40/1 0.58339586 +7 40 s40/3 5.23370798 +7 40 s40/6 -3.80110253 +7 40 s40/8 -0.99333590 +7 40 s40/10 -8.09836174 +8 3 s3/1 7.49411768 +8 3 s3/3 -1.32784013 +8 3 s3/6 6.83639293 +8 3 s3/8 8.38846729 +8 3 s3/10 -5.18715122 +8 4 s4/1 5.17434589 +8 4 s4/3 4.34899166 +8 4 s4/6 2.38508100 +8 4 s4/8 1.90162863 +8 4 s4/10 -9.42026732 +8 7 s7/1 -1.83584725 +8 7 s7/3 0.22975707 +8 7 s7/6 2.72556825 +8 7 s7/8 2.63319614 +8 7 s7/10 -12.46211342 +8 8 s8/1 37.37890757 +8 8 s8/3 27.92833224 +8 8 s8/6 29.17673544 +8 8 s8/8 27.93190905 +8 8 s8/10 25.53497654 +8 9 s9/1 3.81532410 +8 9 s9/3 3.11770367 +8 9 s9/6 13.07162236 +8 9 s9/8 7.54098582 +8 9 s9/10 -6.63861835 +8 13 s13/1 4.77239564 +8 13 s13/3 7.67479954 +8 13 s13/6 -2.92405050 +8 13 s13/8 0.72052261 +8 13 s13/10 -0.72782556 +8 15 s15/1 -1.71406789 +8 15 s15/3 -1.02367827 +8 15 s15/6 -0.97382873 +8 15 s15/8 0.57501778 +8 15 s15/10 7.42550568 +8 18 s18/1 -14.89570602 +8 18 s18/3 1.06488064 +8 18 s18/6 -2.08880054 +8 18 s18/8 -0.93702943 +8 18 s18/10 -1.03016423 +8 19 s19/1 0.96390516 +8 19 s19/3 0.17081438 +8 19 s19/6 6.23012109 +8 19 s19/8 16.08816265 +8 19 s19/10 7.98854383 +8 22 s22/1 2.11019614 +8 22 s22/3 2.14781630 +8 22 s22/6 0.50128417 +8 22 s22/8 2.68408319 +8 22 s22/10 4.60839718 +8 23 s23/1 9.90542352 +8 23 s23/3 1.26572524 +8 23 s23/6 7.73225390 +8 23 s23/8 -8.03718207 +8 23 s23/10 8.26295876 +8 25 s25/1 7.19658127 +8 25 s25/3 3.84868721 +8 25 s25/6 10.95554396 +8 25 s25/8 13.46073090 +8 25 s25/10 3.86642400 +8 28 s28/1 11.91551446 +8 28 s28/3 10.12640141 +8 28 s28/6 10.75201534 +8 28 s28/8 -7.12091131 +8 28 s28/10 9.29803262 +8 30 s30/1 2.19166531 +8 30 s30/3 4.81297228 +8 30 s30/6 0.35013771 +8 30 s30/8 1.35580352 +8 30 s30/10 4.66461170 +8 31 s31/1 2.22375034 +8 31 s31/3 -0.73477548 +8 31 s31/6 4.82317385 +8 31 s31/8 2.92013059 +8 31 s31/10 -2.45266643 +8 32 s32/1 0.92021326 +8 32 s32/3 -0.45753756 +8 32 s32/6 5.80292845 +8 32 s32/8 1.18168340 +8 32 s32/10 3.55596388 +8 35 s35/1 5.31623385 +8 35 s35/3 6.15974826 +8 35 s35/6 4.20984556 +8 35 s35/8 3.69171793 +8 35 s35/10 -10.28807492 +8 37 s37/1 -2.62861992 +8 37 s37/3 -1.09689950 +8 37 s37/6 5.81870107 +8 37 s37/8 8.88998176 +8 37 s37/10 -0.93256550 +8 38 s38/1 19.22370514 +8 38 s38/3 16.99283991 +8 38 s38/6 18.64628608 +8 38 s38/8 7.39774540 +8 38 s38/10 12.36258318 +8 40 s40/1 -10.32622496 +8 40 s40/3 -18.26777314 +8 40 s40/6 2.63709467 +8 40 s40/8 -0.25447359 +8 40 s40/10 8.87083316 +9 3 s3/1 3.79800741 +9 3 s3/3 3.60278331 +9 3 s3/6 3.77792929 +9 3 s3/8 4.78211979 +9 3 s3/10 5.26848773 +9 4 s4/1 4.92662979 +9 4 s4/3 3.48391640 +9 4 s4/6 5.13453312 +9 4 s4/8 3.61088516 +9 4 s4/10 5.06086758 +9 7 s7/1 1.03113042 +9 7 s7/3 1.15712812 +9 7 s7/6 0.58803947 +9 7 s7/8 1.20144122 +9 7 s7/10 1.64969151 +9 8 s8/1 3.31832764 +9 8 s8/3 7.00232344 +9 8 s8/6 7.69509197 +9 8 s8/8 5.80230700 +9 8 s8/10 6.97464171 +9 9 s9/1 7.91189317 +9 9 s9/3 7.53811456 +9 9 s9/6 7.36123789 +9 9 s9/8 7.97922977 +9 9 s9/10 6.82482124 +9 13 s13/1 3.30465615 +9 13 s13/3 2.84578848 +9 13 s13/6 5.02948949 +9 13 s13/8 2.58568964 +9 13 s13/10 3.20212639 +9 15 s15/1 -3.85893323 +9 15 s15/3 -4.24062470 +9 15 s15/6 -4.21448234 +9 15 s15/8 -1.65023029 +9 15 s15/10 5.36424524 +9 18 s18/1 3.78611030 +9 18 s18/3 3.51864412 +9 18 s18/6 5.11510105 +9 18 s18/8 3.49665466 +9 18 s18/10 6.20128024 +9 19 s19/1 -4.45649491 +9 19 s19/3 -4.21719609 +9 19 s19/6 -3.09877045 +9 19 s19/8 -1.74140482 +9 19 s19/10 -4.31101905 +9 22 s22/1 -4.05616040 +9 22 s22/3 -3.05111631 +9 22 s22/6 -6.06142274 +9 22 s22/8 -4.40601170 +9 22 s22/10 -4.84080452 +9 23 s23/1 6.39829259 +9 23 s23/3 6.55093721 +9 23 s23/6 5.50333780 +9 23 s23/8 5.07457060 +9 23 s23/10 5.26524250 +9 25 s25/1 9.98349440 +9 25 s25/3 8.59576339 +9 25 s25/6 8.80970150 +9 25 s25/8 6.74665575 +9 25 s25/10 8.57811335 +9 28 s28/1 4.71944233 +9 28 s28/3 4.10498044 +9 28 s28/6 5.68644421 +9 28 s28/8 4.98774857 +9 28 s28/10 0.82161698 +9 30 s30/1 1.38688035 +9 30 s30/3 1.45569031 +9 30 s30/6 1.31033079 +9 30 s30/8 -2.76463565 +9 30 s30/10 0.12384040 +9 31 s31/1 7.52148561 +9 31 s31/3 -2.30167897 +9 31 s31/6 5.98665233 +9 31 s31/8 7.37855391 +9 31 s31/10 -2.31612902 +9 32 s32/1 -1.60144422 +9 32 s32/3 -2.91474045 +9 32 s32/6 -5.53223529 +9 32 s32/8 -4.09443354 +9 32 s32/10 -6.12957151 +9 35 s35/1 5.52125041 +9 35 s35/3 5.76262772 +9 35 s35/6 4.63090844 +9 35 s35/8 6.21640621 +9 35 s35/10 3.86218833 +9 37 s37/1 5.96999085 +9 37 s37/3 5.48442434 +9 37 s37/6 -4.23932428 +9 37 s37/8 -3.50951658 +9 37 s37/10 3.61871274 +9 38 s38/1 4.68931324 +9 38 s38/3 1.37639637 +9 38 s38/6 4.10367097 +9 38 s38/8 5.24927570 +9 38 s38/10 2.77291045 +9 40 s40/1 1.18041650 +9 40 s40/3 5.42009718 +9 40 s40/6 2.14870012 +9 40 s40/8 2.26278786 +9 40 s40/10 0.06986980 +13 3 s3/1 8.17113703 +13 3 s3/3 5.43470587 +13 3 s3/6 3.19800016 +13 3 s3/8 2.57103363 +13 3 s3/10 2.96193422 +13 4 s4/1 4.27921032 +13 4 s4/3 3.70893744 +13 4 s4/6 5.76365349 +13 4 s4/8 3.66633540 +13 4 s4/10 4.04569379 +13 7 s7/1 0.24571570 +13 7 s7/3 0.97354166 +13 7 s7/6 0.58142332 +13 7 s7/8 0.34198424 +13 7 s7/10 1.00864721 +13 8 s8/1 -0.05447741 +13 8 s8/3 0.96186454 +13 8 s8/6 0.44728317 +13 8 s8/8 3.10729640 +13 8 s8/10 1.43611738 +13 9 s9/1 3.49948360 +13 9 s9/3 3.27313194 +13 9 s9/6 4.25264610 +13 9 s9/8 4.83744524 +13 9 s9/10 1.61894345 +13 13 s13/1 11.57234517 +13 13 s13/3 10.46538546 +13 13 s13/6 9.36219462 +13 13 s13/8 7.87959105 +13 13 s13/10 7.92463370 +13 15 s15/1 0.95998424 +13 15 s15/3 0.36414428 +13 15 s15/6 1.77520131 +13 15 s15/8 0.00145794 +13 15 s15/10 4.94911932 +13 18 s18/1 7.88699265 +13 18 s18/3 11.84523913 +13 18 s18/6 10.92408004 +13 18 s18/8 12.32654466 +13 18 s18/10 11.44685746 +13 19 s19/1 4.82549387 +13 19 s19/3 6.28011002 +13 19 s19/6 6.38226763 +13 19 s19/8 1.59925463 +13 19 s19/10 4.23796233 +13 22 s22/1 2.60760986 +13 22 s22/3 0.57662599 +13 22 s22/6 3.86638374 +13 22 s22/8 0.96386184 +13 22 s22/10 4.58659714 +13 23 s23/1 1.04305059 +13 23 s23/3 2.85490518 +13 23 s23/6 5.92963348 +13 23 s23/8 -0.66588901 +13 23 s23/10 1.39029236 +13 25 s25/1 9.37918380 +13 25 s25/3 8.07558660 +13 25 s25/6 9.65717512 +13 25 s25/8 8.76862756 +13 25 s25/10 7.68650445 +13 28 s28/1 4.57866227 +13 28 s28/3 3.13677149 +13 28 s28/6 3.60361585 +13 28 s28/8 2.35708032 +13 28 s28/10 3.58932530 +13 30 s30/1 -2.96538983 +13 30 s30/3 -1.98702377 +13 30 s30/6 -3.35418550 +13 30 s30/8 -4.63392083 +13 30 s30/10 -2.12449946 +13 31 s31/1 -1.96917284 +13 31 s31/3 0.00747775 +13 31 s31/6 -1.70467607 +13 31 s31/8 -1.13816607 +13 31 s31/10 -0.67926705 +13 32 s32/1 7.78372408 +13 32 s32/3 9.26846691 +13 32 s32/6 3.26354153 +13 32 s32/8 7.80322057 +13 32 s32/10 3.55024153 +13 35 s35/1 8.72566614 +13 35 s35/3 8.60970021 +13 35 s35/6 6.12516327 +13 35 s35/8 7.03513879 +13 35 s35/10 4.80918921 +13 37 s37/1 5.49358291 +13 37 s37/3 6.05809095 +13 37 s37/6 -1.12987258 +13 37 s37/8 1.06313085 +13 37 s37/10 5.55503670 +13 38 s38/1 1.19353026 +13 38 s38/3 4.28720365 +13 38 s38/6 1.05266687 +13 38 s38/8 1.15115509 +13 38 s38/10 2.33182914 +13 40 s40/1 4.09887660 +13 40 s40/3 6.07180768 +13 40 s40/6 5.20933634 +13 40 s40/8 5.91438573 +13 40 s40/10 7.05763220 +15 3 s3/1 5.40249470 +15 3 s3/3 3.93507554 +15 3 s3/6 0.03044782 +15 3 s3/8 1.61825154 +15 3 s3/10 -2.34318652 +15 4 s4/1 7.50412890 +15 4 s4/3 6.11684958 +15 4 s4/6 -1.90214523 +15 4 s4/8 5.21381744 +15 4 s4/10 -4.01247472 +15 7 s7/1 -3.20257834 +15 7 s7/3 -2.72157612 +15 7 s7/6 -1.29771090 +15 7 s7/8 -4.38174815 +15 7 s7/10 -1.41082928 +15 8 s8/1 9.19597048 +15 8 s8/3 -2.66683454 +15 8 s8/6 -3.02206722 +15 8 s8/8 -1.57633000 +15 8 s8/10 -4.44308200 +15 9 s9/1 4.84262794 +15 9 s9/3 4.68463107 +15 9 s9/6 5.77241764 +15 9 s9/8 4.84183188 +15 9 s9/10 0.77988084 +15 13 s13/1 4.84591192 +15 13 s13/3 5.27100401 +15 13 s13/6 0.39937088 +15 13 s13/8 -0.42453510 +15 13 s13/10 0.35707243 +15 15 s15/1 5.94433287 +15 15 s15/3 5.59997658 +15 15 s15/6 6.92246992 +15 15 s15/8 6.82229668 +15 15 s15/10 18.49637146 +15 18 s18/1 -4.89143542 +15 18 s18/3 5.52474136 +15 18 s18/6 0.59830730 +15 18 s18/8 5.20942296 +15 18 s18/10 1.02892074 +15 19 s19/1 -0.19799725 +15 19 s19/3 1.24621097 +15 19 s19/6 0.89843340 +15 19 s19/8 1.35972201 +15 19 s19/10 -0.41911823 +15 22 s22/1 2.60331869 +15 22 s22/3 2.68155662 +15 22 s22/6 -1.35065712 +15 22 s22/8 1.64050469 +15 22 s22/10 3.96278318 +15 23 s23/1 -0.65663820 +15 23 s23/3 5.60690944 +15 23 s23/6 8.23387874 +15 23 s23/8 -4.19184105 +15 23 s23/10 -2.54671022 +15 25 s25/1 9.58867597 +15 25 s25/3 6.14639338 +15 25 s25/6 13.66893600 +15 25 s25/8 11.39281269 +15 25 s25/10 5.64220934 +15 28 s28/1 -0.84900786 +15 28 s28/3 -0.01914164 +15 28 s28/6 0.24181488 +15 28 s28/8 -4.94694820 +15 28 s28/10 -2.44583029 +15 30 s30/1 3.94599836 +15 30 s30/3 6.30790341 +15 30 s30/6 1.68319639 +15 30 s30/8 5.68196254 +15 30 s30/10 4.91448169 +15 31 s31/1 6.66098709 +15 31 s31/3 17.71482555 +15 31 s31/6 7.19048924 +15 31 s31/8 6.72683988 +15 31 s31/10 17.85183817 +15 32 s32/1 6.77788169 +15 32 s32/3 12.71467222 +15 32 s32/6 1.71547194 +15 32 s32/8 6.40300983 +15 32 s32/10 2.32277409 +15 35 s35/1 14.61692584 +15 35 s35/3 16.61785841 +15 35 s35/6 6.39353026 +15 35 s35/8 8.44906080 +15 35 s35/10 6.30972411 +15 37 s37/1 -2.77389047 +15 37 s37/3 -1.80142615 +15 37 s37/6 0.90577764 +15 37 s37/8 2.86992430 +15 37 s37/10 -4.27479771 +15 38 s38/1 2.85301728 +15 38 s38/3 4.35813307 +15 38 s38/6 3.05785595 +15 38 s38/8 -0.38554545 +15 38 s38/10 2.34493042 +15 40 s40/1 3.64606229 +15 40 s40/3 0.20333863 +15 40 s40/6 7.45950758 +15 40 s40/8 5.97538102 +15 40 s40/10 11.93624936 +18 3 s3/1 9.52902925 +18 3 s3/3 8.75054482 +18 3 s3/6 3.02773550 +18 3 s3/8 2.91247402 +18 3 s3/10 6.75261833 +18 4 s4/1 4.60275235 +18 4 s4/3 3.76673459 +18 4 s4/6 6.90398527 +18 4 s4/8 4.34959083 +18 4 s4/10 10.43207575 +18 7 s7/1 1.38577344 +18 7 s7/3 2.51814402 +18 7 s7/6 1.07638030 +18 7 s7/8 0.39797873 +18 7 s7/10 5.89734397 +18 8 s8/1 -7.49139379 +18 8 s8/3 -4.38979487 +18 8 s8/6 -5.61330953 +18 8 s8/8 -1.43701724 +18 8 s8/10 -2.72737362 +18 9 s9/1 6.60762459 +18 9 s9/3 6.40394199 +18 9 s9/6 3.50878848 +18 9 s9/8 4.76093995 +18 9 s9/10 7.29505616 +18 13 s13/1 9.47298275 +18 13 s13/3 8.32082286 +18 13 s13/6 11.87707850 +18 13 s13/8 7.06944235 +18 13 s13/10 6.96745159 +18 15 s15/1 0.05909740 +18 15 s15/3 -0.94061289 +18 15 s15/6 0.12333702 +18 15 s15/8 -0.89326882 +18 15 s15/10 6.98206198 +18 18 s18/1 16.63748816 +18 18 s18/3 13.99003049 +18 18 s18/6 14.99062350 +18 18 s18/8 15.37885012 +18 18 s18/10 15.58739461 +18 19 s19/1 2.96835330 +18 19 s19/3 5.12997240 +18 19 s19/6 3.24237345 +18 19 s19/8 -2.95668717 +18 19 s19/10 0.29072515 +18 22 s22/1 -3.00995439 +18 22 s22/3 -4.23366195 +18 22 s22/6 -0.71278872 +18 22 s22/8 -4.75466499 +18 22 s22/10 -2.00933430 +18 23 s23/1 0.40262337 +18 23 s23/3 7.66416184 +18 23 s23/6 6.04356485 +18 23 s23/8 4.37340799 +18 23 s23/10 0.14355413 +18 25 s25/1 12.87622195 +18 25 s25/3 12.18567135 +18 25 s25/6 13.35832611 +18 25 s25/8 8.67718141 +18 25 s25/10 12.20496172 +18 28 s28/1 2.10286430 +18 28 s28/3 2.06262134 +18 28 s28/6 1.72373226 +18 28 s28/8 7.04162560 +18 28 s28/10 1.52392309 +18 30 s30/1 -2.09840847 +18 30 s30/3 -1.59629678 +18 30 s30/6 -3.41767012 +18 30 s30/8 -6.10831435 +18 30 s30/10 -2.81487185 +18 31 s31/1 0.46976124 +18 31 s31/3 3.07960143 +18 31 s31/6 2.49387698 +18 31 s31/8 0.93082407 +18 31 s31/10 4.20265652 +18 32 s32/1 10.77495169 +18 32 s32/3 11.40195337 +18 32 s32/6 3.37297549 +18 32 s32/8 9.11061742 +18 32 s32/10 3.90420358 +18 35 s35/1 10.11273871 +18 35 s35/3 8.91286971 +18 35 s35/6 8.20008091 +18 35 s35/8 9.80211481 +18 35 s35/10 9.80675326 +18 37 s37/1 9.24280488 +18 37 s37/3 8.57802332 +18 37 s37/6 -3.71803249 +18 37 s37/8 -2.83933573 +18 37 s37/10 6.95002500 +18 38 s38/1 -3.33467225 +18 38 s38/3 -0.99126818 +18 38 s38/6 -2.59176655 +18 38 s38/8 -0.75153895 +18 38 s38/10 -0.38553636 +18 40 s40/1 7.85963315 +18 40 s40/3 13.18419065 +18 40 s40/6 5.21910698 +18 40 s40/8 6.97448325 +18 40 s40/10 4.62290522 +19 3 s3/1 1.55829893 +19 3 s3/3 -3.71336598 +19 3 s3/6 -0.16239568 +19 3 s3/8 -2.55635490 +19 3 s3/10 -7.42773110 +19 4 s4/1 0.06402258 +19 4 s4/3 0.52428913 +19 4 s4/6 0.79089315 +19 4 s4/8 0.43689904 +19 4 s4/10 -6.65349214 +19 7 s7/1 0.58830774 +19 7 s7/3 2.85973687 +19 7 s7/6 2.69790577 +19 7 s7/8 1.27673534 +19 7 s7/10 -4.31562152 +19 8 s8/1 12.39522784 +19 8 s8/3 8.20495132 +19 8 s8/6 7.09594242 +19 8 s8/8 11.70342094 +19 8 s8/10 8.12209054 +19 9 s9/1 -2.31168383 +19 9 s9/3 -1.92306729 +19 9 s9/6 0.04343073 +19 9 s9/8 -1.67761092 +19 9 s9/10 -7.80143360 +19 13 s13/1 4.93443942 +19 13 s13/3 5.39146419 +19 13 s13/6 -1.17290781 +19 13 s13/8 3.05106652 +19 13 s13/10 -0.64105025 +19 15 s15/1 4.35625752 +19 15 s15/3 4.50137012 +19 15 s15/6 5.35612526 +19 15 s15/8 3.12659086 +19 15 s15/10 0.13718495 +19 18 s18/1 -3.51250955 +19 18 s18/3 3.55203837 +19 18 s18/6 0.61707635 +19 18 s18/8 3.27101597 +19 18 s18/10 -0.28874357 +19 19 s19/1 12.95150495 +19 19 s19/3 13.55183252 +19 19 s19/6 14.16015030 +19 19 s19/8 14.03672348 +19 19 s19/10 13.27640464 +19 22 s22/1 2.31145728 +19 22 s22/3 0.76072862 +19 22 s22/6 3.92560445 +19 22 s22/8 1.81733580 +19 22 s22/10 2.88192925 +19 23 s23/1 0.05607406 +19 23 s23/3 -1.29996944 +19 23 s23/6 0.32776178 +19 23 s23/8 -6.65849346 +19 23 s23/10 -0.78829832 +19 25 s25/1 -0.94158553 +19 25 s25/3 -1.21713677 +19 25 s25/6 1.89493196 +19 25 s25/8 1.89001625 +19 25 s25/10 -1.37613143 +19 28 s28/1 -0.56878630 +19 28 s28/3 -1.03943875 +19 28 s28/6 -3.04299950 +19 28 s28/8 -5.77539586 +19 28 s28/10 3.34234821 +19 30 s30/1 -2.27180970 +19 30 s30/3 -2.05386246 +19 30 s30/6 -3.80539396 +19 30 s30/8 -0.43840327 +19 30 s30/10 0.13882335 +19 31 s31/1 -8.13324795 +19 31 s31/3 1.82223737 +19 31 s31/6 -5.02633374 +19 31 s31/8 -7.27853755 +19 31 s31/10 -0.27576727 +19 32 s32/1 9.24179167 +19 32 s32/3 11.01504485 +19 32 s32/6 11.47475129 +19 32 s32/8 11.85683480 +19 32 s32/10 10.12246931 +19 35 s35/1 2.05429028 +19 35 s35/3 2.68927771 +19 35 s35/6 1.34049490 +19 35 s35/8 1.19454077 +19 35 s35/10 -5.64931846 +19 37 s37/1 -7.06361621 +19 37 s37/3 -6.57617653 +19 37 s37/6 5.76027345 +19 37 s37/8 6.66035516 +19 37 s37/10 -1.80445496 +19 38 s38/1 1.01821545 +19 38 s38/3 4.92699074 +19 38 s38/6 2.72530835 +19 38 s38/8 -1.99615987 +19 38 s38/10 1.67522246 +19 40 s40/1 -5.12058357 +19 40 s40/3 -11.05641617 +19 40 s40/6 0.47997925 +19 40 s40/8 -0.47033161 +19 40 s40/10 3.81458138 +22 3 s3/1 -2.39135653 +22 3 s3/3 -2.05530713 +22 3 s3/6 -5.60092787 +22 3 s3/8 -1.59737565 +22 3 s3/10 -5.67248675 +22 4 s4/1 -0.85107065 +22 4 s4/3 0.31230964 +22 4 s4/6 -11.51766270 +22 4 s4/8 -1.82139924 +22 4 s4/10 -11.76419105 +22 7 s7/1 -4.67133944 +22 7 s7/3 -6.17987314 +22 7 s7/6 -3.25026750 +22 7 s7/8 -6.51252681 +22 7 s7/10 -5.05322327 +22 8 s8/1 6.83250426 +22 8 s8/3 -9.04719074 +22 8 s8/6 -8.13272684 +22 8 s8/8 -10.35458609 +22 8 s8/10 -12.49183020 +22 9 s9/1 -5.29646834 +22 9 s9/3 -6.04047203 +22 9 s9/6 -3.76234897 +22 9 s9/8 -5.43208462 +22 9 s9/10 -7.68824788 +22 13 s13/1 -5.23505083 +22 13 s13/3 -5.91668906 +22 13 s13/6 -9.74888145 +22 13 s13/8 -7.79461959 +22 13 s13/10 -5.62148878 +22 15 s15/1 6.73286586 +22 15 s15/3 6.96647669 +22 15 s15/6 7.77765072 +22 15 s15/8 6.80634958 +22 15 s15/10 8.83988680 +22 18 s18/1 -16.16116840 +22 18 s18/3 -9.29962630 +22 18 s18/6 -14.31952413 +22 18 s18/8 -11.42206140 +22 18 s18/10 -14.68082847 +22 19 s19/1 -3.43711526 +22 19 s19/3 -4.80280696 +22 19 s19/6 -2.82458473 +22 19 s19/8 -1.39053037 +22 19 s19/10 -0.47581489 +22 22 s22/1 11.04092508 +22 22 s22/3 12.16142162 +22 22 s22/6 6.23912960 +22 22 s22/8 12.25599722 +22 22 s22/10 11.83743811 +22 23 s23/1 -8.02972446 +22 23 s23/3 -5.99428152 +22 23 s23/6 -2.12890830 +22 23 s23/8 -8.86878506 +22 23 s23/10 -8.14182213 +22 25 s25/1 -7.02894066 +22 25 s25/3 -8.62984245 +22 25 s25/6 -3.63671023 +22 25 s25/8 -1.23475028 +22 25 s25/10 -8.66557096 +22 28 s28/1 -4.86102637 +22 28 s28/3 -2.28562385 +22 28 s28/6 -3.37799557 +22 28 s28/8 -9.65127974 +22 28 s28/10 -2.18468858 +22 30 s30/1 6.40028745 +22 30 s30/3 9.35327217 +22 30 s30/6 3.68419437 +22 30 s30/8 10.78881304 +22 30 s30/10 6.91368141 +22 31 s31/1 3.51346316 +22 31 s31/3 15.08079213 +22 31 s31/6 2.86896786 +22 31 s31/8 3.08210528 +22 31 s31/10 14.46682392 +22 32 s32/1 -6.57921472 +22 32 s32/3 2.89229122 +22 32 s32/6 -2.47766149 +22 32 s32/8 -3.62293133 +22 32 s32/10 -0.16211834 +22 35 s35/1 3.13026927 +22 35 s35/3 3.36494136 +22 35 s35/6 -1.02214768 +22 35 s35/8 -1.50862792 +22 35 s35/10 0.09501480 +22 37 s37/1 -10.27266848 +22 37 s37/3 -9.17236164 +22 37 s37/6 4.62581280 +22 37 s37/8 6.69281568 +22 37 s37/10 -9.75328577 +22 38 s38/1 1.97005783 +22 38 s38/3 3.44279508 +22 38 s38/6 0.93378672 +22 38 s38/8 -2.17599904 +22 38 s38/10 -0.30380280 +22 40 s40/1 1.27973151 +22 40 s40/3 -7.19781378 +22 40 s40/6 4.70558588 +22 40 s40/8 1.85210542 +22 40 s40/10 10.08913296 +23 3 s3/1 2.10995251 +23 3 s3/3 1.71585762 +23 3 s3/6 3.61282805 +23 3 s3/8 3.48767968 +23 3 s3/10 2.29822726 +23 4 s4/1 4.53763476 +23 4 s4/3 4.25264351 +23 4 s4/6 6.23067964 +23 4 s4/8 3.88160808 +23 4 s4/10 4.98321727 +23 7 s7/1 -0.69570917 +23 7 s7/3 -0.47211750 +23 7 s7/6 -1.29386594 +23 7 s7/8 -1.04228691 +23 7 s7/10 -1.56414526 +23 8 s8/1 2.27224705 +23 8 s8/3 5.48204429 +23 8 s8/6 4.86760543 +23 8 s8/8 7.62559326 +23 8 s8/10 6.43286472 +23 9 s9/1 3.93168028 +23 9 s9/3 3.98304382 +23 9 s9/6 7.30800715 +23 9 s9/8 5.63315808 +23 9 s9/10 4.11709484 +23 13 s13/1 5.53423369 +23 13 s13/3 7.82668654 +23 13 s13/6 6.09709917 +23 13 s13/8 4.70769912 +23 13 s13/10 4.08883072 +23 15 s15/1 -2.39589955 +23 15 s15/3 -2.94447883 +23 15 s15/6 -2.63788790 +23 15 s15/8 -1.40559431 +23 15 s15/10 3.80347508 +23 18 s18/1 5.76709732 +23 18 s18/3 8.84015280 +23 18 s18/6 8.63692161 +23 18 s18/8 8.94937090 +23 18 s18/10 8.86309366 +23 19 s19/1 0.23493638 +23 19 s19/3 1.42167854 +23 19 s19/6 0.38963191 +23 19 s19/8 -0.94953172 +23 19 s19/10 0.10896858 +23 22 s22/1 -3.59333782 +23 22 s22/3 -3.19230518 +23 22 s22/6 -4.49837797 +23 22 s22/8 -4.34387064 +23 22 s22/10 -4.20339907 +23 23 s23/1 5.60553923 +23 23 s23/3 5.38567200 +23 23 s23/6 7.34084276 +23 23 s23/8 3.39351389 +23 23 s23/10 5.28722122 +23 25 s25/1 8.40560502 +23 25 s25/3 7.09297790 +23 25 s25/6 6.91658482 +23 25 s25/8 9.93168181 +23 25 s25/10 7.37693565 +23 28 s28/1 4.68194186 +23 28 s28/3 4.12269572 +23 28 s28/6 4.75674132 +23 28 s28/8 3.79269024 +23 28 s28/10 3.59608482 +23 30 s30/1 0.81501379 +23 30 s30/3 1.52789664 +23 30 s30/6 0.59835040 +23 30 s30/8 -0.28021222 +23 30 s30/10 0.47873522 +23 31 s31/1 3.66633409 +23 31 s31/3 2.00242394 +23 31 s31/6 4.04043137 +23 31 s31/8 3.74345221 +23 31 s31/10 2.07158319 +23 32 s32/1 4.16362087 +23 32 s32/3 3.69680843 +23 32 s32/6 -0.65638542 +23 32 s32/8 1.62060409 +23 32 s32/10 -0.91236678 +23 35 s35/1 4.80023994 +23 35 s35/3 5.50107024 +23 35 s35/6 5.01259554 +23 35 s35/8 5.51633500 +23 35 s35/10 3.15756036 +23 37 s37/1 4.11765005 +23 37 s37/3 4.61791777 +23 37 s37/6 -2.23300437 +23 37 s37/8 -2.30697582 +23 37 s37/10 2.62005449 +23 38 s38/1 4.74123575 +23 38 s38/3 1.95403793 +23 38 s38/6 4.90143893 +23 38 s38/8 3.48512668 +23 38 s38/10 1.76854010 +23 40 s40/1 1.45109412 +23 40 s40/3 3.78477604 +23 40 s40/6 2.51206038 +23 40 s40/8 2.31031226 +23 40 s40/10 3.49349578 +25 3 s3/1 12.87923947 +25 3 s3/3 6.69503424 +25 3 s3/6 5.83227159 +25 3 s3/8 5.37580677 +25 3 s3/10 0.75627777 +25 4 s4/1 11.40647797 +25 4 s4/3 9.65275132 +25 4 s4/6 6.61842766 +25 4 s4/8 9.09615793 +25 4 s4/10 3.64473094 +25 7 s7/1 -3.99295431 +25 7 s7/3 -1.91782999 +25 7 s7/6 -1.80305228 +25 7 s7/8 -3.69158579 +25 7 s7/10 -3.57704950 +25 8 s8/1 11.78201936 +25 8 s8/3 6.47781727 +25 8 s8/6 5.52365263 +25 8 s8/8 10.32547082 +25 8 s8/10 6.05749074 +25 9 s9/1 9.92552682 +25 9 s9/3 8.89903635 +25 9 s9/6 11.94152021 +25 9 s9/8 9.93993214 +25 9 s9/10 3.34427983 +25 13 s13/1 13.27396293 +25 13 s13/3 14.68187705 +25 13 s13/6 8.13525037 +25 13 s13/8 6.31983308 +25 13 s13/10 5.58822370 +25 15 s15/1 0.33139193 +25 15 s15/3 -0.28141249 +25 15 s15/6 1.36665236 +25 15 s15/8 2.05841216 +25 15 s15/10 17.75092821 +25 18 s18/1 5.80446681 +25 18 s18/3 16.91115744 +25 18 s18/6 12.31911827 +25 18 s18/8 17.04287361 +25 18 s18/10 13.72721306 +25 19 s19/1 2.07363763 +25 19 s19/3 5.42999619 +25 19 s19/6 4.27675094 +25 19 s19/8 3.03410589 +25 19 s19/10 2.61834747 +25 22 s22/1 -0.18236414 +25 22 s22/3 -1.57142948 +25 22 s22/6 -1.27685631 +25 22 s22/8 -2.50931033 +25 22 s22/10 2.69010089 +25 23 s23/1 5.48586606 +25 23 s23/3 10.35672597 +25 23 s23/6 14.05591888 +25 23 s23/8 -2.08549102 +25 23 s23/10 3.54211167 +25 25 s25/1 20.80489825 +25 25 s25/3 16.29589827 +25 25 s25/6 24.27835164 +25 25 s25/8 19.46616095 +25 25 s25/10 16.59377455 +25 28 s28/1 6.03909565 +25 28 s28/3 5.72685552 +25 28 s28/6 6.23407161 +25 28 s28/8 -1.27239970 +25 28 s28/10 4.69094117 +25 30 s30/1 1.45504551 +25 30 s30/3 4.30041207 +25 30 s30/6 -1.12299487 +25 30 s30/8 0.09619428 +25 30 s30/10 2.74431736 +25 31 s31/1 4.81872230 +25 31 s31/3 12.33068417 +25 31 s31/6 7.63943273 +25 31 s31/8 5.71796980 +25 31 s31/10 11.83700583 +25 32 s32/1 12.06118671 +25 32 s32/3 16.01769022 +25 32 s32/6 5.84043812 +25 32 s32/8 9.71182628 +25 32 s32/10 4.56334111 +25 35 s35/1 17.74694624 +25 35 s35/3 17.87490453 +25 35 s35/6 11.24983997 +25 35 s35/8 12.92863671 +25 35 s35/10 4.60248919 +25 37 s37/1 3.42901287 +25 37 s37/3 3.66865736 +25 37 s37/6 -1.25898904 +25 37 s37/8 1.79268711 +25 37 s37/10 2.06928208 +25 38 s38/1 7.55112434 +25 38 s38/3 9.71210594 +25 38 s38/6 7.95322905 +25 38 s38/8 3.57607026 +25 38 s38/10 6.10871771 +25 40 s40/1 4.69012632 +25 40 s40/3 3.02720354 +25 40 s40/6 8.98700291 +25 40 s40/8 7.71064298 +25 40 s40/10 14.26300704 +28 3 s3/1 1.85285024 +28 3 s3/3 -1.08300766 +28 3 s3/6 1.26401710 +28 3 s3/8 -2.51490399 +28 3 s3/10 -4.54140086 +28 4 s4/1 -0.66830726 +28 4 s4/3 0.10322233 +28 4 s4/6 2.19826779 +28 4 s4/8 0.14872226 +28 4 s4/10 -0.59312819 +28 7 s7/1 0.06096237 +28 7 s7/3 1.64610888 +28 7 s7/6 -0.65120735 +28 7 s7/8 -1.98347760 +28 7 s7/10 -2.32717114 +28 8 s8/1 4.26722356 +28 8 s8/3 2.34795284 +28 8 s8/6 0.23313988 +28 8 s8/8 6.06299649 +28 8 s8/10 2.84303854 +28 9 s9/1 -2.88751543 +28 9 s9/3 -2.46459243 +28 9 s9/6 0.92982192 +28 9 s9/8 -1.12033432 +28 9 s9/10 -3.86209438 +28 13 s13/1 3.67078626 +28 13 s13/3 5.90072090 +28 13 s13/6 3.53924493 +28 13 s13/8 4.21972964 +28 13 s13/10 1.86477489 +28 15 s15/1 4.26524973 +28 15 s15/3 4.27737896 +28 15 s15/6 4.18761520 +28 15 s15/8 2.73364331 +28 15 s15/10 -0.61258998 +28 18 s18/1 2.82794025 +28 18 s18/3 8.83291044 +28 18 s18/6 4.68756333 +28 18 s18/8 8.40788894 +28 18 s18/10 4.14162990 +28 19 s19/1 7.15243835 +28 19 s19/3 8.71442723 +28 19 s19/6 4.87504546 +28 19 s19/8 5.69634795 +28 19 s19/10 5.62212832 +28 22 s22/1 1.44617860 +28 22 s22/3 0.71052755 +28 22 s22/6 1.33890294 +28 22 s22/8 0.96157735 +28 22 s22/10 0.99602528 +28 23 s23/1 0.18092272 +28 23 s23/3 1.27458734 +28 23 s23/6 2.87970326 +28 23 s23/8 -3.13735790 +28 23 s23/10 0.82350484 +28 25 s25/1 0.65951607 +28 25 s25/3 0.96088333 +28 25 s25/6 2.31274742 +28 25 s25/8 4.59619371 +28 25 s25/10 1.21099826 +28 28 s28/1 1.95841587 +28 28 s28/3 -0.42318206 +28 28 s28/6 0.37546400 +28 28 s28/8 -2.17290673 +28 28 s28/10 1.38989178 +28 30 s30/1 -0.60093275 +28 30 s30/3 -1.02452444 +28 30 s30/6 -1.01177809 +28 30 s30/8 2.61182427 +28 30 s30/10 1.35354012 +28 31 s31/1 -5.08585564 +28 31 s31/3 6.77228204 +28 31 s31/6 -3.07627789 +28 31 s31/8 -4.77580703 +28 31 s31/10 7.46335289 +28 32 s32/1 13.45697840 +28 32 s32/3 12.95345591 +28 32 s32/6 10.70571122 +28 32 s32/8 13.01781654 +28 32 s32/10 10.62716988 +28 35 s35/1 2.40384459 +28 35 s35/3 1.61296463 +28 35 s35/6 1.83416815 +28 35 s35/8 1.56837541 +28 35 s35/10 -0.19181211 +28 37 s37/1 -1.65434092 +28 37 s37/3 -0.57714127 +28 37 s37/6 7.85820979 +28 37 s37/8 7.15856035 +28 37 s37/10 0.89290007 +28 38 s38/1 1.08898745 +28 38 s38/3 1.69223447 +28 38 s38/6 2.02591514 +28 38 s38/8 -2.51263356 +28 38 s38/10 -0.73298462 +28 40 s40/1 -1.89967357 +28 40 s40/3 -4.39614628 +28 40 s40/6 1.66086155 +28 40 s40/8 0.95435857 +28 40 s40/10 4.19531468 +30 3 s3/1 -7.98507389 +30 3 s3/3 -7.59461241 +30 3 s3/6 -4.42148053 +30 3 s3/8 -4.52580195 +30 3 s3/10 -9.11021586 +30 4 s4/1 3.22747139 +30 4 s4/3 4.49220906 +30 4 s4/6 -4.92986130 +30 4 s4/8 2.80236955 +30 4 s4/10 -6.92303761 +30 7 s7/1 -8.11883033 +30 7 s7/3 -7.89115244 +30 7 s7/6 -5.66157145 +30 7 s7/8 -8.65832919 +30 7 s7/10 -7.65957270 +30 8 s8/1 4.11155853 +30 8 s8/3 -8.93700949 +30 8 s8/6 -10.05321407 +30 8 s8/8 -7.15844487 +30 8 s8/10 -11.12179918 +30 9 s9/1 -3.34598121 +30 9 s9/3 -4.17365741 +30 9 s9/6 0.67207683 +30 9 s9/8 -2.53101823 +30 9 s9/10 -5.10106843 +30 13 s13/1 -1.38358946 +30 13 s13/3 2.22791831 +30 13 s13/6 -4.39278860 +30 13 s13/8 -4.18383017 +30 13 s13/10 -2.42765660 +30 15 s15/1 4.46327888 +30 15 s15/3 5.01762583 +30 15 s15/6 5.18109859 +30 15 s15/8 5.53551648 +30 15 s15/10 8.50639028 +30 18 s18/1 -8.85305021 +30 18 s18/3 1.09596255 +30 18 s18/6 -5.42642189 +30 18 s18/8 -0.25269621 +30 18 s18/10 -6.62993395 +30 19 s19/1 -1.21516373 +30 19 s19/3 -0.22201779 +30 19 s19/6 -3.16564325 +30 19 s19/8 -3.32372929 +30 19 s19/10 -0.67857428 +30 22 s22/1 2.52461041 +30 22 s22/3 4.08139660 +30 22 s22/6 -0.95589377 +30 22 s22/8 3.28213251 +30 22 s22/10 2.56991514 +30 23 s23/1 -2.17205072 +30 23 s23/3 -0.32696018 +30 23 s23/6 2.80442591 +30 23 s23/8 -5.49810034 +30 23 s23/10 -3.17348122 +30 25 s25/1 -1.66933643 +30 25 s25/3 -3.92016529 +30 25 s25/6 0.78328226 +30 25 s25/8 3.66052428 +30 25 s25/10 -2.92928885 +30 28 s28/1 -3.76145278 +30 28 s28/3 -1.54064730 +30 28 s28/6 -2.32849480 +30 28 s28/8 -9.65813762 +30 28 s28/10 -1.01255976 +30 30 s30/1 8.65070097 +30 30 s30/3 10.42794069 +30 30 s30/6 6.97445205 +30 30 s30/8 15.49461356 +30 30 s30/10 9.06344855 +30 31 s31/1 4.18462844 +30 31 s31/3 16.31043615 +30 31 s31/6 3.33264149 +30 31 s31/8 3.27040203 +30 31 s31/10 17.46561886 +30 32 s32/1 3.09289595 +30 32 s32/3 9.87548970 +30 32 s32/6 1.86983832 +30 32 s32/8 4.70383911 +30 32 s32/10 3.62599589 +30 35 s35/1 2.39815009 +30 35 s35/3 2.42530623 +30 35 s35/6 -1.10249313 +30 35 s35/8 -1.19590187 +30 35 s35/10 -1.81232109 +30 37 s37/1 -8.53426378 +30 37 s37/3 -6.90985767 +30 37 s37/6 2.79862722 +30 37 s37/8 2.02895337 +30 37 s37/10 -9.66527365 +30 38 s38/1 2.29948488 +30 38 s38/3 1.55357507 +30 38 s38/6 2.42314726 +30 38 s38/8 -1.09987115 +30 38 s38/10 -1.77350546 +30 40 s40/1 1.11208885 +30 40 s40/3 -5.20986105 +30 40 s40/6 5.16296278 +30 40 s40/8 1.30580308 +30 40 s40/10 10.02375231 +31 3 s3/1 -1.02835066 +31 3 s3/3 -1.48291061 +31 3 s3/6 -2.65018694 +31 3 s3/8 -3.38562927 +31 3 s3/10 -6.07587869 +31 4 s4/1 3.57300287 +31 4 s4/3 4.17771020 +31 4 s4/6 -4.33632871 +31 4 s4/8 3.30596680 +31 4 s4/10 -4.04579661 +31 7 s7/1 -6.29258764 +31 7 s7/3 -5.71615635 +31 7 s7/6 -6.33938170 +31 7 s7/8 -10.99699685 +31 7 s7/10 -2.20677876 +31 8 s8/1 -0.11240038 +31 8 s8/3 -9.97279077 +31 8 s8/6 -12.59310131 +31 8 s8/8 -5.64586194 +31 8 s8/10 -11.56171171 +31 9 s9/1 -1.34593300 +31 9 s9/3 -0.87451666 +31 9 s9/6 1.69406148 +31 9 s9/8 -1.55885078 +31 9 s9/10 -0.77859795 +31 13 s13/1 -1.91110070 +31 13 s13/3 1.59247453 +31 13 s13/6 -2.67573349 +31 13 s13/8 -2.56186003 +31 13 s13/10 -4.06331498 +31 15 s15/1 7.80112570 +31 15 s15/3 7.15370642 +31 15 s15/6 8.19321142 +31 15 s15/8 8.60296495 +31 15 s15/10 14.69125120 +31 18 s18/1 -3.32451676 +31 18 s18/3 4.55233135 +31 18 s18/6 -2.64986235 +31 18 s18/8 3.95293541 +31 18 s18/10 -3.50016925 +31 19 s19/1 2.00707081 +31 19 s19/3 4.78513490 +31 19 s19/6 -1.71837439 +31 19 s19/8 -3.04192856 +31 19 s19/10 -1.02637195 +31 22 s22/1 2.98206375 +31 22 s22/3 4.21937822 +31 22 s22/6 -2.23876532 +31 22 s22/8 1.58132995 +31 22 s22/10 2.46128655 +31 23 s23/1 -4.66216830 +31 23 s23/3 4.14379366 +31 23 s23/6 6.54303483 +31 23 s23/8 -4.25149976 +31 23 s23/10 -5.45987050 +31 25 s25/1 3.33272459 +31 25 s25/3 1.57552886 +31 25 s25/6 7.26031753 +31 25 s25/8 7.39792819 +31 25 s25/10 0.79933250 +31 28 s28/1 -6.87154380 +31 28 s28/3 -5.44875611 +31 28 s28/6 -5.48288457 +31 28 s28/8 -8.69931526 +31 28 s28/10 -4.55635941 +31 30 s30/1 5.73857908 +31 30 s30/3 7.58976481 +31 30 s30/6 3.89055406 +31 30 s30/8 12.61428357 +31 30 s30/10 6.78381619 +31 31 s31/1 6.60567576 +31 31 s31/3 29.72307398 +31 31 s31/6 8.70725079 +31 31 s31/8 6.43183209 +31 31 s31/10 30.55291378 +31 32 s32/1 9.50610333 +31 32 s32/3 18.01728952 +31 32 s32/6 2.03520925 +31 32 s32/8 6.49874374 +31 32 s32/10 2.97347382 +31 35 s35/1 11.32070362 +31 35 s35/3 11.28758378 +31 35 s35/6 4.49434327 +31 35 s35/8 5.31132354 +31 35 s35/10 7.31182215 +31 37 s37/1 -9.02410436 +31 37 s37/3 -8.19687476 +31 37 s37/6 3.70694087 +31 37 s37/8 2.72214448 +31 37 s37/10 -9.19314801 +31 38 s38/1 -1.88910913 +31 38 s38/3 -2.14093649 +31 38 s38/6 -0.57276637 +31 38 s38/8 -5.74675519 +31 38 s38/10 -4.26821010 +31 40 s40/1 2.18951747 +31 40 s40/3 -0.76815274 +31 40 s40/6 3.76908348 +31 40 s40/8 2.05256854 +31 40 s40/10 9.52559672 +32 3 s3/1 5.86076702 +32 3 s3/3 0.47417089 +32 3 s3/6 -1.39921836 +32 3 s3/8 -5.17871158 +32 3 s3/10 -7.36172928 +32 4 s4/1 1.26531993 +32 4 s4/3 1.56752395 +32 4 s4/6 -0.37541976 +32 4 s4/8 1.22442475 +32 4 s4/10 -2.38396872 +32 7 s7/1 -0.49454325 +32 7 s7/3 2.30065400 +32 7 s7/6 1.29445140 +32 7 s7/8 -2.49877038 +32 7 s7/10 -0.79359720 +32 8 s8/1 3.41117140 +32 8 s8/3 -6.34045807 +32 8 s8/6 -8.89396829 +32 8 s8/8 -0.75334009 +32 8 s8/10 -5.65090756 +32 9 s9/1 -3.31487037 +32 9 s9/3 -2.64512582 +32 9 s9/6 -2.04235749 +32 9 s9/8 -3.36143425 +32 9 s9/10 -5.65573294 +32 13 s13/1 9.73046303 +32 13 s13/3 9.96095711 +32 13 s13/6 5.65219339 +32 13 s13/8 5.09805520 +32 13 s13/10 3.54566581 +32 15 s15/1 9.99671402 +32 15 s15/3 9.56366672 +32 15 s15/6 11.36844096 +32 15 s15/8 5.94136959 +32 15 s15/10 5.36175373 +32 18 s18/1 5.36573281 +32 18 s18/3 15.25936788 +32 18 s18/6 8.50905103 +32 18 s18/8 14.89629090 +32 18 s18/10 7.10178042 +32 19 s19/1 14.00949917 +32 19 s19/3 16.59826986 +32 19 s19/6 13.59581350 +32 19 s19/8 8.50581897 +32 19 s19/10 11.58416281 +32 22 s22/1 3.85585062 +32 22 s22/3 1.15272606 +32 22 s22/6 7.95437422 +32 22 s22/8 2.18135007 +32 22 s22/10 6.26131552 +32 23 s23/1 -5.05499575 +32 23 s23/3 2.13517339 +32 23 s23/6 3.21423078 +32 23 s23/8 -7.08799135 +32 23 s23/10 -5.73258079 +32 25 s25/1 3.69772736 +32 25 s25/3 2.39473808 +32 25 s25/6 8.65367544 +32 25 s25/8 6.25512030 +32 25 s25/10 2.57053659 +32 28 s28/1 -1.89249555 +32 28 s28/3 -3.00758119 +32 28 s28/6 -4.00901828 +32 28 s28/8 -5.73883498 +32 28 s28/10 1.02030401 +32 30 s30/1 -1.64473946 +32 30 s30/3 -0.19822132 +32 30 s30/6 -4.42159272 +32 30 s30/8 2.41553859 +32 30 s30/10 0.59468808 +32 31 s31/1 -10.08613329 +32 31 s31/3 12.79709975 +32 31 s31/6 -5.57937689 +32 31 s31/8 -9.57278338 +32 31 s31/10 14.25709868 +32 32 s32/1 24.40373364 +32 32 s32/3 27.08604920 +32 32 s32/6 20.26998772 +32 32 s32/8 26.47541275 +32 32 s32/10 21.13025817 +32 35 s35/1 7.34210606 +32 35 s35/3 8.67419700 +32 35 s35/6 3.69094411 +32 35 s35/8 4.95927432 +32 35 s35/10 2.24941135 +32 37 s37/1 -4.10222490 +32 37 s37/3 -2.74789849 +32 37 s37/6 9.02225697 +32 37 s37/8 8.67493354 +32 37 s37/10 -0.97595167 +32 38 s38/1 -4.13110488 +32 38 s38/3 1.95529781 +32 38 s38/6 -2.22783547 +32 38 s38/8 -6.90006213 +32 38 s38/10 -2.48800062 +32 40 s40/1 2.20021184 +32 40 s40/3 -2.70509595 +32 40 s40/6 5.06548880 +32 40 s40/8 4.42477323 +32 40 s40/10 11.92761680 +35 3 s3/1 10.31614007 +35 3 s3/3 7.95073585 +35 3 s3/6 2.33033877 +35 3 s3/8 3.72779770 +35 3 s3/10 3.76685098 +35 4 s4/1 7.21130224 +35 4 s4/3 5.69069864 +35 4 s4/6 3.01136504 +35 4 s4/8 5.82809211 +35 4 s4/10 3.54159036 +35 7 s7/1 -0.73206936 +35 7 s7/3 -0.30803946 +35 7 s7/6 -0.86961903 +35 7 s7/8 -3.24782379 +35 7 s7/10 3.62366739 +35 8 s8/1 0.99602708 +35 8 s8/3 -2.54907959 +35 8 s8/6 -3.48311876 +35 8 s8/8 -0.18273054 +35 8 s8/10 -2.92894425 +35 9 s9/1 6.72606339 +35 9 s9/3 6.48963368 +35 9 s9/6 6.69891384 +35 9 s9/8 6.24532519 +35 9 s9/10 5.69037442 +35 13 s13/1 7.51429039 +35 13 s13/3 6.59226199 +35 13 s13/6 5.52145753 +35 13 s13/8 4.03967198 +35 13 s13/10 3.09173770 +35 15 s15/1 2.77539737 +35 15 s15/3 1.40806417 +35 15 s15/6 3.54374055 +35 15 s15/8 3.67773435 +35 15 s15/10 16.08088802 +35 18 s18/1 5.93227590 +35 18 s18/3 9.49542311 +35 18 s18/6 7.02673539 +35 18 s18/8 9.79345478 +35 18 s18/10 8.01504193 +35 19 s19/1 1.20278227 +35 19 s19/3 3.61291973 +35 19 s19/6 1.41887995 +35 19 s19/8 -0.78922205 +35 19 s19/10 -1.09625571 +35 22 s22/1 1.10650108 +35 22 s22/3 0.47638206 +35 22 s22/6 -1.01320824 +35 22 s22/8 -1.13417453 +35 22 s22/10 2.52842642 +35 23 s23/1 -0.52323085 +35 23 s23/3 7.74247421 +35 23 s23/6 8.92721319 +35 23 s23/8 0.12090196 +35 23 s23/10 -1.73262256 +35 25 s25/1 14.30368159 +35 25 s25/3 11.75208898 +35 25 s25/6 16.60182461 +35 25 s25/8 11.61299263 +35 25 s25/10 10.88021298 +35 28 s28/1 -0.47628293 +35 28 s28/3 0.22322034 +35 28 s28/6 0.20569975 +35 28 s28/8 0.05311013 +35 28 s28/10 -0.92839664 +35 30 s30/1 -0.12975824 +35 30 s30/3 1.94343591 +35 30 s30/6 -1.64231219 +35 30 s30/8 -0.70406138 +35 30 s30/10 0.15673616 +35 31 s31/1 6.08124368 +35 31 s31/3 14.74735513 +35 31 s31/6 7.74910864 +35 31 s31/8 6.67515094 +35 31 s31/10 13.95245746 +35 32 s32/1 7.38508684 +35 32 s32/3 12.73280793 +35 32 s32/6 -0.64754820 +35 32 s32/8 4.73215442 +35 32 s32/10 -0.68905052 +35 35 s35/1 16.52997045 +35 35 s35/3 17.79323089 +35 35 s35/6 10.08368745 +35 35 s35/8 12.58936806 +35 35 s35/10 11.49467639 +35 37 s37/1 2.25215263 +35 37 s37/3 1.82654587 +35 37 s37/6 -3.36248524 +35 37 s37/8 -1.18215092 +35 37 s37/10 1.28493251 +35 38 s38/1 -0.71846530 +35 38 s38/3 0.59697089 +35 38 s38/6 0.07036049 +35 38 s38/8 -1.04343794 +35 38 s38/10 0.48099009 +35 40 s40/1 5.96672631 +35 40 s40/3 8.17183718 +35 40 s40/6 5.91549379 +35 40 s40/8 6.30091273 +35 40 s40/10 8.23523694 +37 3 s3/1 3.17236360 +37 3 s3/3 1.29436938 +37 3 s3/6 1.49596797 +37 3 s3/8 0.26385047 +37 3 s3/10 -0.96129107 +37 4 s4/1 -1.25254623 +37 4 s4/3 -1.06722556 +37 4 s4/6 0.25529310 +37 4 s4/8 -1.43851674 +37 4 s4/10 -0.04643413 +37 7 s7/1 1.01011143 +37 7 s7/3 1.95217439 +37 7 s7/6 1.02007925 +37 7 s7/8 0.53667989 +37 7 s7/10 -0.69214775 +37 8 s8/1 4.54734882 +37 8 s8/3 2.45138394 +37 8 s8/6 2.15139904 +37 8 s8/8 2.65724922 +37 8 s8/10 1.98393269 +37 9 s9/1 -1.05515587 +37 9 s9/3 -0.96731298 +37 9 s9/6 0.61016348 +37 9 s9/8 0.20561517 +37 9 s9/10 -1.51966545 +37 13 s13/1 1.50176252 +37 13 s13/3 1.60037187 +37 13 s13/6 2.55449496 +37 13 s13/8 1.47876031 +37 13 s13/10 1.73657381 +37 15 s15/1 1.90824607 +37 15 s15/3 2.04220827 +37 15 s15/6 1.75448742 +37 15 s15/8 0.68680988 +37 15 s15/10 -0.61740719 +37 18 s18/1 0.45886136 +37 18 s18/3 3.52759951 +37 18 s18/6 2.02251784 +37 18 s18/8 3.13360441 +37 18 s18/10 2.15728207 +37 19 s19/1 0.67048809 +37 19 s19/3 0.83928647 +37 19 s19/6 0.21702791 +37 19 s19/8 3.04467929 +37 19 s19/10 0.67822287 +37 22 s22/1 1.49382552 +37 22 s22/3 1.23940576 +37 22 s22/6 1.74308156 +37 22 s22/8 1.87935892 +37 22 s22/10 1.89225170 +37 23 s23/1 0.23099705 +37 23 s23/3 0.26746810 +37 23 s23/6 0.60207399 +37 23 s23/8 -1.56424673 +37 23 s23/10 0.64914296 +37 25 s25/1 0.82774098 +37 25 s25/3 0.85576488 +37 25 s25/6 2.13533140 +37 25 s25/8 1.80840153 +37 25 s25/10 0.68806797 +37 28 s28/1 3.66776698 +37 28 s28/3 1.42297809 +37 28 s28/6 3.09590997 +37 28 s28/8 -0.08811523 +37 28 s28/10 0.77553631 +37 30 s30/1 -0.19276266 +37 30 s30/3 -0.44984045 +37 30 s30/6 -0.25397082 +37 30 s30/8 0.15101245 +37 30 s30/10 0.60809591 +37 31 s31/1 -2.07605328 +37 31 s31/3 0.55682335 +37 31 s31/6 -1.49163630 +37 31 s31/8 -2.12383777 +37 31 s31/10 1.69828271 +37 32 s32/1 6.28122867 +37 32 s32/3 4.22789362 +37 32 s32/6 5.64265901 +37 32 s32/8 6.05461623 +37 32 s32/10 5.92030853 +37 35 s35/1 0.71565023 +37 35 s35/3 -0.13906855 +37 35 s35/6 0.37926573 +37 35 s35/8 0.50791845 +37 35 s35/10 -0.05255231 +37 37 s37/1 2.20234390 +37 37 s37/3 2.92023018 +37 37 s37/6 5.81586987 +37 37 s37/8 5.60921411 +37 37 s37/10 2.27292034 +37 38 s38/1 2.18359060 +37 38 s38/3 1.71030051 +37 38 s38/6 1.83910012 +37 38 s38/8 -0.24087097 +37 38 s38/10 0.86737670 +37 40 s40/1 -1.54818900 +37 40 s40/3 -2.42601751 +37 40 s40/6 1.05303073 +37 40 s40/8 0.62565037 +37 40 s40/10 2.07614335 +38 3 s3/1 3.46730646 +38 3 s3/3 1.08880387 +38 3 s3/6 3.29880458 +38 3 s3/8 5.46879410 +38 3 s3/10 -0.12088150 +38 4 s4/1 3.48962077 +38 4 s4/3 3.80447056 +38 4 s4/6 2.24217546 +38 4 s4/8 2.07380328 +38 4 s4/10 -2.57994849 +38 7 s7/1 -2.80021666 +38 7 s7/3 -2.17793605 +38 7 s7/6 0.23618421 +38 7 s7/8 1.43432725 +38 7 s7/10 -7.85014961 +38 8 s8/1 14.08497723 +38 8 s8/3 12.54890679 +38 8 s8/6 13.97698871 +38 8 s8/8 12.08811098 +38 8 s8/10 11.53765554 +38 9 s9/1 3.73302610 +38 9 s9/3 2.92916706 +38 9 s9/6 6.30519118 +38 9 s9/8 4.40377511 +38 9 s9/10 -2.81192345 +38 13 s13/1 3.90965788 +38 13 s13/3 5.08660894 +38 13 s13/6 -0.58267255 +38 13 s13/8 0.67562704 +38 13 s13/10 0.56104340 +38 15 s15/1 -3.42797299 +38 15 s15/3 -2.38171853 +38 15 s15/6 -2.95622725 +38 15 s15/8 -1.72699749 +38 15 s15/10 2.96918039 +38 18 s18/1 -6.21353392 +38 18 s18/3 0.40645838 +38 18 s18/6 0.15300366 +38 18 s18/8 -0.10233360 +38 18 s18/10 1.06063495 +38 19 s19/1 -1.68111233 +38 19 s19/3 -2.50852626 +38 19 s19/6 2.61342782 +38 19 s19/8 4.44083704 +38 19 s19/10 3.76886641 +38 22 s22/1 0.93168642 +38 22 s22/3 0.62447348 +38 22 s22/6 0.23387020 +38 22 s22/8 1.57244835 +38 22 s22/10 2.30607134 +38 23 s23/1 5.45330367 +38 23 s23/3 -0.00403526 +38 23 s23/6 4.09633618 +38 23 s23/8 -2.60934150 +38 23 s23/10 5.17359582 +38 25 s25/1 4.30094002 +38 25 s25/3 2.60635613 +38 25 s25/6 4.48507136 +38 25 s25/8 6.74572167 +38 25 s25/10 2.40165440 +38 28 s28/1 7.05502471 +38 28 s28/3 7.39303765 +38 28 s28/6 6.97487131 +38 28 s28/8 0.00752808 +38 28 s28/10 6.28906477 +38 30 s30/1 1.51435093 +38 30 s30/3 2.83558865 +38 30 s30/6 0.47567746 +38 30 s30/8 -1.50285388 +38 30 s30/10 2.38301246 +38 31 s31/1 1.35874611 +38 31 s31/3 -5.48904978 +38 31 s31/6 1.74779787 +38 31 s31/8 1.83470344 +38 31 s31/10 -7.26659070 +38 32 s32/1 -6.05081350 +38 32 s32/3 -4.94600291 +38 32 s32/6 -0.67165995 +38 32 s32/8 -3.89238423 +38 32 s32/10 -1.53971359 +38 35 s35/1 1.16177337 +38 35 s35/3 0.77281183 +38 35 s35/6 1.31267163 +38 35 s35/8 0.30084735 +38 35 s35/10 -6.79944142 +38 37 s37/1 1.82758266 +38 37 s37/3 2.44828785 +38 37 s37/6 0.08515907 +38 37 s37/8 2.70327720 +38 37 s37/10 0.81480488 +38 38 s38/1 11.21390064 +38 38 s38/3 11.79151598 +38 38 s38/6 9.91395738 +38 38 s38/8 7.05715539 +38 38 s38/10 8.65961618 +38 40 s40/1 -1.94846005 +38 40 s40/3 -6.63052055 +38 40 s40/6 3.11288978 +38 40 s40/8 1.49631884 +38 40 s40/10 5.61652434 +40 3 s3/1 10.82433067 +40 3 s3/3 9.24866655 +40 3 s3/6 4.21898802 +40 3 s3/8 6.23310525 +40 3 s3/10 5.73377692 +40 4 s4/1 7.80438564 +40 4 s4/3 6.44874100 +40 4 s4/6 5.35481695 +40 4 s4/8 5.82825989 +40 4 s4/10 5.26300621 +40 7 s7/1 0.02831988 +40 7 s7/3 0.56686252 +40 7 s7/6 0.73421262 +40 7 s7/8 -0.20718127 +40 7 s7/10 2.68950833 +40 8 s8/1 1.88565934 +40 8 s8/3 0.60457345 +40 8 s8/6 0.46327107 +40 8 s8/8 2.13228957 +40 8 s8/10 1.14584010 +40 9 s9/1 7.08041779 +40 9 s9/3 7.08540396 +40 9 s9/6 9.17887243 +40 9 s9/8 8.56820330 +40 9 s9/10 6.56824861 +40 13 s13/1 10.43746985 +40 13 s13/3 10.42346677 +40 13 s13/6 9.17140696 +40 13 s13/8 6.04159869 +40 13 s13/10 6.51267003 +40 15 s15/1 1.16592438 +40 15 s15/3 0.27102452 +40 15 s15/6 1.87905493 +40 15 s15/8 1.38874313 +40 15 s15/10 13.42311036 +40 18 s18/1 6.91200112 +40 18 s18/3 12.92521672 +40 18 s18/6 11.39925800 +40 18 s18/8 12.98214544 +40 18 s18/10 12.24333383 +40 19 s19/1 0.55292134 +40 19 s19/3 2.12658207 +40 19 s19/6 3.08304706 +40 19 s19/8 -1.14966457 +40 19 s19/10 0.34812988 +40 22 s22/1 -1.95139199 +40 22 s22/3 -2.46703841 +40 22 s22/6 -2.41202429 +40 22 s22/8 -3.52509124 +40 22 s22/10 -0.53175639 +40 23 s23/1 3.11010917 +40 23 s23/3 9.25446907 +40 23 s23/6 11.38670941 +40 23 s23/8 1.68499229 +40 23 s23/10 2.31182738 +40 25 s25/1 14.94280645 +40 25 s25/3 12.45529785 +40 25 s25/6 15.33050633 +40 25 s25/8 15.29934819 +40 25 s25/10 11.24689671 +40 28 s28/1 5.03841427 +40 28 s28/3 4.19604192 +40 28 s28/6 5.44305640 +40 28 s28/8 4.62623406 +40 28 s28/10 1.13970074 +40 30 s30/1 -0.55191509 +40 30 s30/3 1.24931240 +40 30 s30/6 -1.98487971 +40 30 s30/8 -3.36764962 +40 30 s30/10 -0.89774872 +40 31 s31/1 5.63128801 +40 31 s31/3 7.91909879 +40 31 s31/6 6.78444412 +40 31 s31/8 6.02023372 +40 31 s31/10 8.61689461 +40 32 s32/1 8.18926435 +40 32 s32/3 10.54103127 +40 32 s32/6 0.92660953 +40 32 s32/8 7.09400519 +40 32 s32/10 1.71218211 +40 35 s35/1 13.78385924 +40 35 s35/3 17.21805658 +40 35 s35/6 9.07611553 +40 35 s35/8 11.79700146 +40 35 s35/10 11.31701381 +40 37 s37/1 8.26287834 +40 37 s37/3 8.90924483 +40 37 s37/6 -3.44960998 +40 37 s37/8 -1.50381455 +40 37 s37/10 5.09678518 +40 38 s38/1 3.44112473 +40 38 s38/3 3.02263250 +40 38 s38/6 3.50656839 +40 38 s38/8 1.90254314 +40 38 s38/10 2.53591423 +40 40 s40/1 6.76816746 +40 40 s40/3 9.73580787 +40 40 s40/6 7.36224931 +40 40 s40/8 8.32007360 +40 40 s40/10 10.19680594 diff --git a/bob/bio/gmm/test/data/scores-ztnorm-gmm-dev b/bob/bio/gmm/test/data/scores-ztnorm-gmm-dev new file mode 100644 index 0000000000000000000000000000000000000000..699b19d3f936ef9678475ae247b2ee945c2ab1b0 --- /dev/null +++ b/bob/bio/gmm/test/data/scores-ztnorm-gmm-dev @@ -0,0 +1,2000 @@ +3 3 s3/1 2.39928264 +3 3 s3/3 2.09842713 +3 3 s3/6 1.39228085 +3 3 s3/8 2.03851800 +3 3 s3/10 1.16002398 +3 4 s4/1 -0.41142503 +3 4 s4/3 -0.57545021 +3 4 s4/6 -0.18119323 +3 4 s4/8 -1.14695856 +3 4 s4/10 0.12421173 +3 7 s7/1 -0.38882064 +3 7 s7/3 -0.55798407 +3 7 s7/6 -0.35746427 +3 7 s7/8 0.08184540 +3 7 s7/10 -0.25831871 +3 8 s8/1 0.15789471 +3 8 s8/3 0.54990164 +3 8 s8/6 0.69412664 +3 8 s8/8 0.35459538 +3 8 s8/10 0.60629870 +3 9 s9/1 0.76382572 +3 9 s9/3 0.74730927 +3 9 s9/6 0.60765682 +3 9 s9/8 0.53236545 +3 9 s9/10 0.20468889 +3 13 s13/1 0.31700154 +3 13 s13/3 -0.17561649 +3 13 s13/6 -0.17338799 +3 13 s13/8 -0.50527729 +3 13 s13/10 -0.54299451 +3 15 s15/1 -1.28487635 +3 15 s15/3 -1.18865219 +3 15 s15/6 -1.20002226 +3 15 s15/8 -1.40174327 +3 15 s15/10 0.13191942 +3 18 s18/1 -0.13488752 +3 18 s18/3 -0.54588619 +3 18 s18/6 -0.05189005 +3 18 s18/8 -0.39611376 +3 18 s18/10 0.30507639 +3 19 s19/1 -1.04672268 +3 19 s19/3 -1.16298660 +3 19 s19/6 -0.08153599 +3 19 s19/8 -0.50881981 +3 19 s19/10 -0.21066163 +3 22 s22/1 -0.26197083 +3 22 s22/3 -0.48329772 +3 22 s22/6 0.24270414 +3 22 s22/8 -0.35737367 +3 22 s22/10 0.35282707 +3 23 s23/1 -0.26629930 +3 23 s23/3 -0.37319835 +3 23 s23/6 0.34812352 +3 23 s23/8 -0.45769578 +3 23 s23/10 0.05721004 +3 25 s25/1 0.66678198 +3 25 s25/3 0.62790246 +3 25 s25/6 0.78302586 +3 25 s25/8 0.62035577 +3 25 s25/10 0.58566067 +3 28 s28/1 0.99054885 +3 28 s28/3 1.04097595 +3 28 s28/6 0.95156535 +3 28 s28/8 0.48906812 +3 28 s28/10 0.20883764 +3 30 s30/1 -1.44482365 +3 30 s30/3 -1.09871889 +3 30 s30/6 -1.45314900 +3 30 s30/8 -1.63542425 +3 30 s30/10 -1.36550933 +3 31 s31/1 -0.10603469 +3 31 s31/3 -0.96413238 +3 31 s31/6 0.33267910 +3 31 s31/8 0.04668021 +3 31 s31/10 -1.00913945 +3 32 s32/1 -1.33052404 +3 32 s32/3 -1.22833792 +3 32 s32/6 -0.88571583 +3 32 s32/8 -1.13749534 +3 32 s32/10 -1.02702660 +3 35 s35/1 0.07984444 +3 35 s35/3 0.16877909 +3 35 s35/6 0.55500668 +3 35 s35/8 0.36908157 +3 35 s35/10 -0.12875133 +3 37 s37/1 1.19631492 +3 37 s37/3 1.14799980 +3 37 s37/6 -1.04441714 +3 37 s37/8 -0.49039682 +3 37 s37/10 1.05255937 +3 38 s38/1 0.39722626 +3 38 s38/3 0.93755241 +3 38 s38/6 0.23167545 +3 38 s38/8 0.21134458 +3 38 s38/10 1.32401972 +3 40 s40/1 0.05264166 +3 40 s40/3 0.14065083 +3 40 s40/6 -0.53985289 +3 40 s40/8 0.58824475 +3 40 s40/10 -0.24433506 +4 3 s3/1 -0.53254605 +4 3 s3/3 0.31011862 +4 3 s3/6 0.36105073 +4 3 s3/8 0.08192003 +4 3 s3/10 1.29783115 +4 4 s4/1 0.44700984 +4 4 s4/3 0.33216236 +4 4 s4/6 1.41769735 +4 4 s4/8 1.04566816 +4 4 s4/10 1.96453268 +4 7 s7/1 0.33758803 +4 7 s7/3 0.13306970 +4 7 s7/6 -0.25805732 +4 7 s7/8 0.09528859 +4 7 s7/10 0.78662833 +4 8 s8/1 -1.40530933 +4 8 s8/3 -0.30610877 +4 8 s8/6 -0.25282065 +4 8 s8/8 -0.53800081 +4 8 s8/10 -0.14059643 +4 9 s9/1 1.50215599 +4 9 s9/3 1.33827871 +4 9 s9/6 0.13807489 +4 9 s9/8 0.86850416 +4 9 s9/10 1.62155084 +4 13 s13/1 -0.66607626 +4 13 s13/3 -0.80488969 +4 13 s13/6 0.79447295 +4 13 s13/8 0.27320151 +4 13 s13/10 0.46676098 +4 15 s15/1 -1.06079533 +4 15 s15/3 -1.12812163 +4 15 s15/6 -1.25445835 +4 15 s15/8 -0.81211498 +4 15 s15/10 -0.45541270 +4 18 s18/1 1.35336589 +4 18 s18/3 -0.05558663 +4 18 s18/6 0.65466733 +4 18 s18/8 0.10656575 +4 18 s18/10 0.78660141 +4 19 s19/1 -1.39548943 +4 19 s19/3 -1.22739431 +4 19 s19/6 -1.96871146 +4 19 s19/8 -1.48137247 +4 19 s19/10 -1.84980173 +4 22 s22/1 -0.87640892 +4 22 s22/3 -0.62475724 +4 22 s22/6 -1.17400687 +4 22 s22/8 -0.82049729 +4 22 s22/10 -1.24786684 +4 23 s23/1 0.77867581 +4 23 s23/3 1.31891403 +4 23 s23/6 -0.23965683 +4 23 s23/8 1.95372741 +4 23 s23/10 0.87459389 +4 25 s25/1 0.85922854 +4 25 s25/3 1.12806826 +4 25 s25/6 0.26613711 +4 25 s25/8 -0.73908929 +4 25 s25/10 1.42945310 +4 28 s28/1 -0.21632897 +4 28 s28/3 0.14175598 +4 28 s28/6 0.28075101 +4 28 s28/8 1.37914273 +4 28 s28/10 -0.16417191 +4 30 s30/1 0.42085407 +4 30 s30/3 0.14714079 +4 30 s30/6 0.65696241 +4 30 s30/8 -0.17688279 +4 30 s30/10 -0.09832232 +4 31 s31/1 0.98710908 +4 31 s31/3 -0.56712946 +4 31 s31/6 0.62034808 +4 31 s31/8 0.97951973 +4 31 s31/10 -0.60163072 +4 32 s32/1 -0.91990986 +4 32 s32/3 -1.15212762 +4 32 s32/6 -1.33252405 +4 32 s32/8 -1.36283390 +4 32 s32/10 -1.38460428 +4 35 s35/1 -0.26728825 +4 35 s35/3 -0.77745928 +4 35 s35/6 0.47203239 +4 35 s35/8 0.25177992 +4 35 s35/10 0.47482763 +4 37 s37/1 0.93395644 +4 37 s37/3 0.61847451 +4 37 s37/6 -0.86232010 +4 37 s37/8 -1.23509028 +4 37 s37/10 0.56045809 +4 38 s38/1 -0.45698587 +4 38 s38/3 -0.99612212 +4 38 s38/6 -0.63616366 +4 38 s38/8 1.15964110 +4 38 s38/10 -0.46842877 +4 40 s40/1 0.96155369 +4 40 s40/3 1.35519378 +4 40 s40/6 -0.72842824 +4 40 s40/8 -0.67776177 +4 40 s40/10 -1.49028624 +7 3 s3/1 0.43782321 +7 3 s3/3 1.48544043 +7 3 s3/6 0.52659028 +7 3 s3/8 0.04139768 +7 3 s3/10 1.87748869 +7 4 s4/1 -1.52238159 +7 4 s4/3 -2.22297346 +7 4 s4/6 0.02802630 +7 4 s4/8 -1.32282882 +7 4 s4/10 1.20071059 +7 7 s7/1 3.14690813 +7 7 s7/3 2.92166239 +7 7 s7/6 2.84312327 +7 7 s7/8 2.80613687 +7 7 s7/10 2.87088703 +7 8 s8/1 -1.03580144 +7 8 s8/3 -0.09238824 +7 8 s8/6 0.04147944 +7 8 s8/8 -0.71144255 +7 8 s8/10 0.15333691 +7 9 s9/1 0.50327212 +7 9 s9/3 0.79283504 +7 9 s9/6 -1.66876784 +7 9 s9/8 -0.06210024 +7 9 s9/10 1.52859967 +7 13 s13/1 -1.48265554 +7 13 s13/3 -2.66841946 +7 13 s13/6 0.15336769 +7 13 s13/8 0.11947107 +7 13 s13/10 0.34938878 +7 15 s15/1 0.60603747 +7 15 s15/3 0.45919089 +7 15 s15/6 0.33245783 +7 15 s15/8 0.17277360 +7 15 s15/10 -1.40870884 +7 18 s18/1 0.95026227 +7 18 s18/3 -1.52770534 +7 18 s18/6 -0.20939234 +7 18 s18/8 -1.29105012 +7 18 s18/10 -0.17823976 +7 19 s19/1 -0.01391541 +7 19 s19/3 -0.40157368 +7 19 s19/6 -0.44609843 +7 19 s19/8 0.37993840 +7 19 s19/10 -0.87920218 +7 22 s22/1 -0.19035760 +7 22 s22/3 -0.13757635 +7 22 s22/6 0.25968518 +7 22 s22/8 -0.11156235 +7 22 s22/10 -0.52485025 +7 23 s23/1 -0.18237954 +7 23 s23/3 0.40916325 +7 23 s23/6 -2.33854640 +7 23 s23/8 2.01652778 +7 23 s23/10 0.00938264 +7 25 s25/1 -0.98319188 +7 25 s25/3 -0.34489727 +7 25 s25/6 -1.51611707 +7 25 s25/8 -2.61173422 +7 25 s25/10 -0.41004181 +7 28 s28/1 -0.24961188 +7 28 s28/3 -0.98211375 +7 28 s28/6 -0.34741673 +7 28 s28/8 2.21157989 +7 28 s28/10 -1.59436546 +7 30 s30/1 -0.67290167 +7 30 s30/3 -1.23146936 +7 30 s30/6 -0.16287162 +7 30 s30/8 -0.79541584 +7 30 s30/10 -1.06191339 +7 31 s31/1 0.02128545 +7 31 s31/3 -1.08446207 +7 31 s31/6 -0.29677260 +7 31 s31/8 -0.02650263 +7 31 s31/10 -1.11062551 +7 32 s32/1 -0.15980755 +7 32 s32/3 -1.31842756 +7 32 s32/6 -0.06771980 +7 32 s32/8 -0.41929736 +7 32 s32/10 -0.11638291 +7 35 s35/1 -1.17336088 +7 35 s35/3 -0.40148802 +7 35 s35/6 -0.78706788 +7 35 s35/8 -0.20057085 +7 35 s35/10 1.33871789 +7 37 s37/1 1.41111573 +7 37 s37/3 1.15515483 +7 37 s37/6 0.26791239 +7 37 s37/8 -0.13868553 +7 37 s37/10 1.81721953 +7 38 s38/1 -1.46590134 +7 38 s38/3 -1.82467278 +7 38 s38/6 -1.57947590 +7 38 s38/8 -0.03811930 +7 38 s38/10 -0.66881098 +7 40 s40/1 0.59246481 +7 40 s40/3 1.16315485 +7 40 s40/6 -2.31157077 +7 40 s40/8 -0.78014714 +7 40 s40/10 -2.58854735 +8 3 s3/1 -0.29983601 +8 3 s3/3 -0.93246796 +8 3 s3/6 0.89228235 +8 3 s3/8 0.80457720 +8 3 s3/10 -0.64774685 +8 4 s4/1 -0.19538475 +8 4 s4/3 -0.18938962 +8 4 s4/6 -0.25870632 +8 4 s4/8 -0.59780743 +8 4 s4/10 -1.23478074 +8 7 s7/1 -0.13207374 +8 7 s7/3 -0.05582201 +8 7 s7/6 0.35121711 +8 7 s7/8 0.50041984 +8 7 s7/10 -1.01760524 +8 8 s8/1 1.85544705 +8 8 s8/3 1.82862677 +8 8 s8/6 1.81696945 +8 8 s8/8 1.72054938 +8 8 s8/10 1.68034745 +8 9 s9/1 -0.22873221 +8 9 s9/3 -0.30496486 +8 9 s9/6 0.91410690 +8 9 s9/8 0.25401189 +8 9 s9/10 -0.92869143 +8 13 s13/1 -0.75050125 +8 13 s13/3 -0.28744789 +8 13 s13/6 -1.36304133 +8 13 s13/8 -0.94992348 +8 13 s13/10 -1.22779832 +8 15 s15/1 -0.48689438 +8 15 s15/3 -0.34123618 +8 15 s15/6 -0.45633346 +8 15 s15/8 -0.28575945 +8 15 s15/10 -0.46815762 +8 18 s18/1 -1.51689360 +8 18 s18/3 -1.27575286 +8 18 s18/6 -1.14642239 +8 18 s18/8 -1.35105292 +8 18 s18/10 -1.03511602 +8 19 s19/1 -0.17190186 +8 19 s19/3 -0.42555221 +8 19 s19/6 0.26585515 +8 19 s19/8 1.19275142 +8 19 s19/10 0.56697917 +8 22 s22/1 0.12170507 +8 22 s22/3 0.20727447 +8 22 s22/6 0.06990522 +8 22 s22/8 0.31546833 +8 22 s22/10 0.22568429 +8 23 s23/1 1.26359001 +8 23 s23/3 -1.11171173 +8 23 s23/6 -0.32593448 +8 23 s23/8 -0.72004639 +8 23 s23/10 1.14447900 +8 25 s25/1 -0.59970638 +8 25 s25/3 -0.79007140 +8 25 s25/6 -0.51690568 +8 25 s25/8 -0.01454574 +8 25 s25/10 -0.76661638 +8 28 s28/1 1.06566292 +8 28 s28/3 1.19266442 +8 28 s28/6 0.97889829 +8 28 s28/8 -0.75252838 +8 28 s28/10 1.25525376 +8 30 s30/1 0.19320449 +8 30 s30/3 0.26922293 +8 30 s30/6 0.20839743 +8 30 s30/8 0.11301486 +8 30 s30/10 0.36333230 +8 31 s31/1 -0.03278481 +8 31 s31/3 -0.67703375 +8 31 s31/6 0.03857291 +8 31 s31/8 -0.01604624 +8 31 s31/10 -0.73438261 +8 32 s32/1 -0.80814831 +8 32 s32/3 -0.98814566 +8 32 s32/6 0.02882867 +8 32 s32/8 -0.63307378 +8 32 s32/10 -0.14243187 +8 35 s35/1 -1.03394520 +8 35 s35/3 -0.86573583 +8 35 s35/6 -1.06909817 +8 35 s35/8 -1.14941095 +8 35 s35/10 -1.65698602 +8 37 s37/1 -0.62039043 +8 37 s37/3 -0.58991932 +8 37 s37/6 0.32589021 +8 37 s37/8 0.47979398 +8 37 s37/10 -0.43128656 +8 38 s38/1 1.57704856 +8 38 s38/3 1.26638354 +8 38 s38/6 1.64601887 +8 38 s38/8 0.94586612 +8 38 s38/10 1.42723017 +8 40 s40/1 -1.92042656 +8 40 s40/3 -1.56439408 +8 40 s40/6 -1.02571239 +8 40 s40/8 -1.91643145 +8 40 s40/10 -0.19791313 +9 3 s3/1 -0.39298393 +9 3 s3/3 0.04514191 +9 3 s3/6 0.85940415 +9 3 s3/8 0.88355347 +9 3 s3/10 0.97957081 +9 4 s4/1 0.58823000 +9 4 s4/3 0.16072355 +9 4 s4/6 1.04378940 +9 4 s4/8 0.40447669 +9 4 s4/10 0.88220458 +9 7 s7/1 0.15415207 +9 7 s7/3 0.04868415 +9 7 s7/6 -0.03588232 +9 7 s7/8 0.33813294 +9 7 s7/10 0.28305632 +9 8 s8/1 -0.21738852 +9 8 s8/3 0.72347756 +9 8 s8/6 0.82280661 +9 8 s8/8 0.34402413 +9 8 s8/10 0.75124209 +9 9 s9/1 1.50649087 +9 9 s9/3 1.53457443 +9 9 s9/6 1.12851129 +9 9 s9/8 1.70960396 +9 9 s9/10 1.30848805 +9 13 s13/1 -0.58794194 +9 13 s13/3 -0.72069458 +9 13 s13/6 0.41023441 +9 13 s13/8 -0.17760770 +9 13 s13/10 0.28055185 +9 15 s15/1 -1.33983680 +9 15 s15/3 -1.33077765 +9 15 s15/6 -1.44055213 +9 15 s15/8 -0.98118604 +9 15 s15/10 -0.19812484 +9 18 s18/1 0.28058886 +9 18 s18/3 -0.67568992 +9 18 s18/6 0.13967276 +9 18 s18/8 -0.58907925 +9 18 s18/10 0.28994013 +9 19 s19/1 -1.41451016 +9 19 s19/3 -1.47080932 +9 19 s19/6 -1.27656487 +9 19 s19/8 -0.82212750 +9 19 s19/10 -1.32020254 +9 22 s22/1 -1.36758947 +9 22 s22/3 -0.96750186 +9 22 s22/6 -1.68679771 +9 22 s22/8 -1.12755903 +9 22 s22/10 -1.63321939 +9 23 s23/1 1.66149616 +9 23 s23/3 1.20946988 +9 23 s23/6 0.21061770 +9 23 s23/8 1.35475140 +9 23 s23/10 1.41939452 +9 25 s25/1 0.80835166 +9 25 s25/3 0.89132520 +9 25 s25/6 0.25114673 +9 25 s25/8 -0.07446538 +9 25 s25/10 0.91750288 +9 28 s28/1 0.58940382 +9 28 s28/3 0.70181547 +9 28 s28/6 0.98234947 +9 28 s28/8 0.96306597 +9 28 s28/10 -0.36068298 +9 30 s30/1 0.12548320 +9 30 s30/3 -0.07285909 +9 30 s30/6 0.35437655 +9 30 s30/8 -0.53176767 +9 30 s30/10 -0.31856478 +9 31 s31/1 1.28358556 +9 31 s31/3 -1.02657098 +9 31 s31/6 0.87384962 +9 31 s31/8 1.25305410 +9 31 s31/10 -0.96297176 +9 32 s32/1 -1.26732436 +9 32 s32/3 -1.49995625 +9 32 s32/6 -1.53634611 +9 32 s32/8 -1.48876452 +9 32 s32/10 -1.56973607 +9 35 s35/1 -0.32305721 +9 35 s35/3 -0.29921164 +9 35 s35/6 0.08244716 +9 35 s35/8 0.39648430 +9 35 s35/10 0.14957570 +9 37 s37/1 0.87462106 +9 37 s37/3 0.78262393 +9 37 s37/6 -1.05649426 +9 37 s37/8 -1.21199025 +9 37 s37/10 0.50102131 +9 38 s38/1 0.41144016 +9 38 s38/3 -0.47866080 +9 38 s38/6 0.27641295 +9 38 s38/8 1.33322728 +9 38 s38/10 0.17600191 +9 40 s40/1 -0.21949340 +9 40 s40/3 0.67953094 +9 40 s40/6 -0.86587304 +9 40 s40/8 -0.76100345 +9 40 s40/10 -1.38704760 +13 3 s3/1 0.56869427 +13 3 s3/3 0.23662001 +13 3 s3/6 -0.31839647 +13 3 s3/8 -0.43426030 +13 3 s3/10 0.13014594 +13 4 s4/1 -0.20486722 +13 4 s4/3 -0.30326759 +13 4 s4/6 0.86809335 +13 4 s4/8 -0.19850427 +13 4 s4/10 0.33570257 +13 7 s7/1 -0.40056600 +13 7 s7/3 -0.38380266 +13 7 s7/6 -0.52944998 +13 7 s7/8 -0.29623526 +13 7 s7/10 -0.14191091 +13 8 s8/1 -0.92786574 +13 8 s8/3 -0.52861669 +13 8 s8/6 -0.51014731 +13 8 s8/8 -0.36074897 +13 8 s8/10 -0.41476882 +13 9 s9/1 -0.30726014 +13 9 s9/3 -0.36293702 +13 9 s9/6 -0.44940364 +13 9 s9/8 0.05678480 +13 9 s9/10 -0.30950849 +13 13 s13/1 2.27616745 +13 13 s13/3 1.49147581 +13 13 s13/6 1.52579019 +13 13 s13/8 1.92278652 +13 13 s13/10 2.27426317 +13 15 s15/1 -0.59545958 +13 15 s15/3 -0.67021366 +13 15 s15/6 -0.43594063 +13 15 s15/8 -1.00169343 +13 15 s15/10 -0.54102213 +13 18 s18/1 0.85387600 +13 18 s18/3 1.29976912 +13 18 s18/6 1.38087427 +13 18 s18/8 1.35232377 +13 18 s18/10 1.33470267 +13 19 s19/1 0.40548090 +13 19 s19/3 0.54413131 +13 19 s19/6 0.68743296 +13 19 s19/8 -0.45863973 +13 19 s19/10 0.26418990 +13 22 s22/1 0.00681297 +13 22 s22/3 -0.47378896 +13 22 s22/6 0.50686959 +13 22 s22/8 -0.26629189 +13 22 s22/10 0.36837636 +13 23 s23/1 -0.81162672 +13 23 s23/3 -1.00939535 +13 23 s23/6 -0.06549309 +13 23 s23/8 -0.54275113 +13 23 s23/10 -0.54819588 +13 25 s25/1 0.50447141 +13 25 s25/3 0.52308550 +13 25 s25/6 0.29961908 +13 25 s25/8 0.29629567 +13 25 s25/10 0.43346998 +13 28 s28/1 0.15899633 +13 28 s28/3 -0.20062007 +13 28 s28/6 -0.15675203 +13 28 s28/8 0.05369755 +13 28 s28/10 0.19701367 +13 30 s30/1 -1.55295421 +13 30 s30/3 -1.36760275 +13 30 s30/6 -1.50134201 +13 30 s30/8 -1.19151542 +13 30 s30/10 -1.38749676 +13 31 s31/1 -1.28484605 +13 31 s31/3 -0.94719901 +13 31 s31/6 -1.71286979 +13 31 s31/8 -1.18843414 +13 31 s31/10 -0.98423002 +13 32 s32/1 0.21026990 +13 32 s32/3 0.27433687 +13 32 s32/6 -0.22626900 +13 32 s32/8 0.30514739 +13 32 s32/10 -0.15438379 +13 35 s35/1 0.39987990 +13 35 s35/3 0.22356681 +13 35 s35/6 0.33527981 +13 35 s35/8 0.34537604 +13 35 s35/10 0.09458972 +13 37 s37/1 0.51327309 +13 37 s37/3 0.66003681 +13 37 s37/6 -0.82752553 +13 37 s37/8 -0.60849681 +13 37 s37/10 0.72451964 +13 38 s38/1 -0.78093823 +13 38 s38/3 -0.07855292 +13 38 s38/6 -0.93041900 +13 38 s38/8 -0.58151427 +13 38 s38/10 -0.47637961 +13 40 s40/1 0.29631120 +13 40 s40/3 0.61231949 +13 40 s40/6 0.17504406 +13 40 s40/8 0.92452378 +13 40 s40/10 0.13543382 +15 3 s3/1 -0.29578426 +15 3 s3/3 -0.11945952 +15 3 s3/6 -1.48063151 +15 3 s3/8 -0.42392124 +15 3 s3/10 -0.68263706 +15 4 s4/1 0.96230307 +15 4 s4/3 0.68810680 +15 4 s4/6 -1.54972197 +15 4 s4/8 0.59361667 +15 4 s4/10 -1.11129283 +15 7 s7/1 -0.67036926 +15 7 s7/3 -0.77637262 +15 7 s7/6 -0.55072230 +15 7 s7/8 -0.85636659 +15 7 s7/10 -0.26175682 +15 8 s8/1 0.31767938 +15 8 s8/3 -0.78679199 +15 8 s8/6 -0.70272464 +15 8 s8/8 -0.89639619 +15 8 s8/10 -0.99138389 +15 9 s9/1 0.18236109 +15 9 s9/3 0.20298656 +15 9 s9/6 0.07587286 +15 9 s9/8 0.08178226 +15 9 s9/10 -0.20841290 +15 13 s13/1 -0.43736631 +15 13 s13/3 -0.34211645 +15 13 s13/6 -1.07051186 +15 13 s13/8 -1.61837881 +15 13 s13/10 -1.28543231 +15 15 s15/1 0.62546561 +15 15 s15/3 0.60531376 +15 15 s15/6 0.71648498 +15 15 s15/8 0.92101689 +15 15 s15/10 1.77567224 +15 18 s18/1 -1.09343368 +15 18 s18/3 -0.49213219 +15 18 s18/6 -0.97760867 +15 18 s18/8 -0.47277534 +15 18 s18/10 -0.91232434 +15 19 s19/1 -0.47524103 +15 19 s19/3 -0.38948176 +15 19 s19/6 -0.42095031 +15 19 s19/8 -0.27535118 +15 19 s19/10 -0.48270542 +15 22 s22/1 0.20895227 +15 22 s22/3 0.30175506 +15 22 s22/6 -0.44968023 +15 22 s22/8 0.15437258 +15 22 s22/10 0.28244607 +15 23 s23/1 -0.83885892 +15 23 s23/3 0.23959962 +15 23 s23/6 0.59614846 +15 23 s23/8 -0.78929800 +15 23 s23/10 -1.25624537 +15 25 s25/1 0.21772465 +15 25 s25/3 -0.15759647 +15 25 s25/6 0.73109438 +15 25 s25/8 0.55655520 +15 25 s25/10 -0.24224293 +15 28 s28/1 -1.15685729 +15 28 s28/3 -0.93018584 +15 28 s28/6 -0.89476705 +15 28 s28/8 -1.04227355 +15 28 s28/10 -1.47833857 +15 30 s30/1 0.54877396 +15 30 s30/3 0.74845725 +15 30 s30/6 0.32675241 +15 30 s30/8 0.61495758 +15 30 s30/10 0.60718355 +15 31 s31/1 0.75193713 +15 31 s31/3 1.17961702 +15 31 s31/6 0.76274226 +15 31 s31/8 0.74166533 +15 31 s31/10 1.14151426 +15 32 s32/1 -0.07985071 +15 32 s32/3 0.48787173 +15 32 s32/6 -0.34325912 +15 32 s32/8 -0.01863382 +15 32 s32/10 -0.23930584 +15 35 s35/1 1.43241457 +15 35 s35/3 1.53534479 +15 35 s35/6 0.25871549 +15 35 s35/8 0.53847680 +15 35 s35/10 0.37589196 +15 37 s37/1 -1.00539560 +15 37 s37/3 -1.00997005 +15 37 s37/6 -0.17656259 +15 37 s37/8 -0.05962671 +15 37 s37/10 -1.42905705 +15 38 s38/1 -0.18652904 +15 38 s38/3 -0.00780448 +15 38 s38/6 -0.19086043 +15 38 s38/8 -0.57545310 +15 38 s38/10 -0.17899539 +15 40 s40/1 0.27700378 +15 40 s40/3 -0.22137315 +15 40 s40/6 1.11529855 +15 40 s40/8 0.77265369 +15 40 s40/10 0.94689579 +18 3 s3/1 0.34694387 +18 3 s3/3 0.68184142 +18 3 s3/6 -0.37436456 +18 3 s3/8 -0.24713058 +18 3 s3/10 0.79932173 +18 4 s4/1 -0.25974800 +18 4 s4/3 -0.35218229 +18 4 s4/6 0.83662094 +18 4 s4/8 -0.02563463 +18 4 s4/10 1.39149772 +18 7 s7/1 0.04036663 +18 7 s7/3 0.09668983 +18 7 s7/6 -0.12311528 +18 7 s7/8 -0.01264810 +18 7 s7/10 0.69778359 +18 8 s8/1 -1.51833453 +18 8 s8/3 -1.03253878 +18 8 s8/6 -1.02009797 +18 8 s8/8 -0.92897130 +18 8 s8/10 -0.80579000 +18 9 s9/1 0.39112253 +18 9 s9/3 0.41766809 +18 9 s9/6 -0.77821616 +18 9 s9/8 -0.18542767 +18 9 s9/10 0.84315375 +18 13 s13/1 0.57808423 +18 13 s13/3 0.15556601 +18 13 s13/6 1.40047372 +18 13 s13/8 0.83000549 +18 13 s13/10 1.02087752 +18 15 s15/1 -0.54834133 +18 15 s15/3 -0.64156638 +18 15 s15/6 -0.58364357 +18 15 s15/8 -0.84682287 +18 15 s15/10 -0.35151269 +18 18 s18/1 1.69077358 +18 18 s18/3 0.89827718 +18 18 s18/6 1.41685081 +18 18 s18/8 1.09606831 +18 18 s18/10 1.33756735 +18 19 s19/1 -0.03195194 +18 19 s19/3 0.12588508 +18 19 s19/6 -0.11832084 +18 19 s19/8 -1.01326815 +18 19 s19/10 -0.44585019 +18 22 s22/1 -1.01692829 +18 22 s22/3 -1.11190220 +18 22 s22/6 -0.40717410 +18 22 s22/8 -1.03669766 +18 22 s22/10 -0.93673907 +18 23 s23/1 -0.68249411 +18 23 s23/3 0.60289671 +18 23 s23/6 -0.45273720 +18 23 s23/8 0.76388799 +18 23 s23/10 -0.62520795 +18 25 s25/1 0.57724574 +18 25 s25/3 0.86307658 +18 25 s25/6 0.38966371 +18 25 s25/8 -0.32128893 +18 25 s25/10 0.89782905 +18 28 s28/1 -0.57195552 +18 28 s28/3 -0.48401077 +18 28 s28/6 -0.65976500 +18 28 s28/8 0.89821206 +18 28 s28/10 -0.43749401 +18 30 s30/1 -0.77477468 +18 30 s30/3 -0.82599945 +18 30 s30/6 -0.83482765 +18 30 s30/8 -0.89213134 +18 30 s30/10 -1.00468003 +18 31 s31/1 -0.44045988 +18 31 s31/3 -0.47240417 +18 31 s31/6 -0.37748463 +18 31 s31/8 -0.44049794 +18 31 s31/10 -0.32971292 +18 32 s32/1 0.30229243 +18 32 s32/3 0.17300048 +18 32 s32/6 -0.21053699 +18 32 s32/8 0.18823291 +18 32 s32/10 -0.12677711 +18 35 s35/1 0.10294261 +18 35 s35/3 -0.22009658 +18 35 s35/6 0.60282530 +18 35 s35/8 0.60311056 +18 35 s35/10 0.79117417 +18 37 s37/1 0.95401335 +18 37 s37/3 0.87054987 +18 37 s37/6 -0.87551364 +18 37 s37/8 -1.02615232 +18 37 s37/10 0.77422135 +18 38 s38/1 -1.38102894 +18 38 s38/3 -1.10772180 +18 38 s38/6 -1.41122313 +18 38 s38/8 -0.78591371 +18 38 s38/10 -1.04009456 +18 40 s40/1 1.07095922 +18 40 s40/3 1.31697780 +18 40 s40/6 -0.21145328 +18 40 s40/8 0.79552151 +18 40 s40/10 -0.67145209 +19 3 s3/1 -0.68147727 +19 3 s3/3 -1.27373454 +19 3 s3/6 -0.56052504 +19 3 s3/8 -0.98406382 +19 3 s3/10 -1.16754161 +19 4 s4/1 -0.80206358 +19 4 s4/3 -0.49352095 +19 4 s4/6 -0.10053573 +19 4 s4/8 -0.42076930 +19 4 s4/10 -1.15983761 +19 7 s7/1 0.36937786 +19 7 s7/3 0.66399422 +19 7 s7/6 0.85445230 +19 7 s7/8 0.66597491 +19 7 s7/10 -0.35386518 +19 8 s8/1 0.84700630 +19 8 s8/3 0.85106252 +19 8 s8/6 0.71005864 +19 8 s8/8 1.14593673 +19 8 s8/10 0.87353775 +19 9 s9/1 -1.05451827 +19 9 s9/3 -0.97737504 +19 9 s9/6 -0.96160238 +19 9 s9/8 -1.23048178 +19 9 s9/10 -1.37616179 +19 13 s13/1 0.14162374 +19 13 s13/3 0.15721882 +19 13 s13/6 -0.92828394 +19 13 s13/8 0.42819335 +19 13 s13/10 -0.82115595 +19 15 s15/1 0.68873862 +19 15 s15/3 0.75357465 +19 15 s15/6 0.77426980 +19 15 s15/8 0.54832508 +19 15 s15/10 -0.99714266 +19 18 s18/1 -0.58530083 +19 18 s18/3 -0.49380322 +19 18 s18/6 -0.58671889 +19 18 s18/8 -0.46598088 +19 18 s18/10 -0.77320938 +19 19 s19/1 2.15016529 +19 19 s19/3 1.94799486 +19 19 s19/6 2.29925172 +19 19 s19/8 2.00958141 +19 19 s19/10 2.14470980 +19 22 s22/1 0.56811295 +19 22 s22/3 0.33325783 +19 22 s22/6 1.00575000 +19 22 s22/8 0.55703261 +19 22 s22/10 0.45845978 +19 23 s23/1 -0.04526789 +19 23 s23/3 -1.39377853 +19 23 s23/6 -1.38135364 +19 23 s23/8 -0.80574331 +19 23 s23/10 -0.13957840 +19 25 s25/1 -1.34578017 +19 25 s25/3 -1.28122380 +19 25 s25/6 -1.22076935 +19 25 s25/8 -1.17483424 +19 25 s25/10 -1.29605114 +19 28 s28/1 -0.55129648 +19 28 s28/3 -0.58501163 +19 28 s28/6 -1.17256005 +19 28 s28/8 -0.77494276 +19 28 s28/10 0.90509554 +19 30 s30/1 -0.28446084 +19 30 s30/3 -0.42556674 +19 30 s30/6 -0.37380470 +19 30 s30/8 0.10710346 +19 30 s30/10 0.06981034 +19 31 s31/1 -1.44610693 +19 31 s31/3 -0.31441054 +19 31 s31/6 -1.34963067 +19 31 s31/8 -1.42192181 +19 31 s31/10 -0.49223417 +19 32 s32/1 0.49646060 +19 32 s32/3 0.48269277 +19 32 s32/6 1.24911222 +19 32 s32/8 0.89291213 +19 32 s32/10 1.03642193 +19 35 s35/1 -1.03615684 +19 35 s35/3 -0.84612219 +19 35 s35/6 -1.08546503 +19 35 s35/8 -1.10775818 +19 35 s35/10 -1.32524272 +19 37 s37/1 -1.34475996 +19 37 s37/3 -1.49329573 +19 37 s37/6 0.79417980 +19 37 s37/8 0.84829693 +19 37 s37/10 -0.43057172 +19 38 s38/1 -0.14315165 +19 38 s38/3 0.46535129 +19 38 s38/6 0.15093047 +19 38 s38/8 -0.42048955 +19 38 s38/10 0.19247419 +19 40 s40/1 -1.32332479 +19 40 s40/3 -1.37449625 +19 40 s40/6 -0.99427887 +19 40 s40/8 -1.46114146 +19 40 s40/10 -0.28446562 +22 3 s3/1 -0.82779837 +22 3 s3/3 -0.28308475 +22 3 s3/6 -1.23585552 +22 3 s3/8 0.11731410 +22 3 s3/10 -0.16798298 +22 4 s4/1 -0.17572606 +22 4 s4/3 0.28698020 +22 4 s4/6 -2.13998470 +22 4 s4/8 -0.11248948 +22 4 s4/10 -1.11425541 +22 7 s7/1 0.11412894 +22 7 s7/3 -0.23731563 +22 7 s7/6 0.28915457 +22 7 s7/8 -0.01827075 +22 7 s7/10 0.09047329 +22 8 s8/1 0.38016865 +22 8 s8/3 -0.70214188 +22 8 s8/6 -0.50306702 +22 8 s8/8 -1.08907207 +22 8 s8/10 -1.00759631 +22 9 s9/1 -0.83598263 +22 9 s9/3 -0.99072710 +22 9 s9/6 -1.03215688 +22 9 s9/8 -1.18034422 +22 9 s9/10 -0.54742155 +22 13 s13/1 -1.60706353 +22 13 s13/3 -1.57558206 +22 13 s13/6 -1.78202581 +22 13 s13/8 -1.86571090 +22 13 s13/10 -1.21610515 +22 15 s15/1 1.31597764 +22 15 s15/3 1.36974676 +22 15 s15/6 1.34857744 +22 15 s15/8 1.55615818 +22 15 s15/10 0.53974005 +22 18 s18/1 -1.42868105 +22 18 s18/3 -2.02038676 +22 18 s18/6 -2.18934205 +22 18 s18/8 -2.10458990 +22 18 s18/10 -2.16073179 +22 19 s19/1 -0.05720757 +22 19 s19/3 -0.40837426 +22 19 s19/6 -0.10776962 +22 19 s19/8 0.09527324 +22 19 s19/10 0.33722331 +22 22 s22/1 2.35133735 +22 22 s22/3 2.49839705 +22 22 s22/6 1.70032960 +22 22 s22/8 2.36457050 +22 22 s22/10 2.12020362 +22 23 s23/1 -1.00826855 +22 23 s23/3 -1.60494588 +22 23 s23/6 -1.14563527 +22 23 s23/8 -0.32850148 +22 23 s23/10 -0.91138684 +22 25 s25/1 -1.66741229 +22 25 s25/3 -1.85286587 +22 25 s25/6 -1.60715020 +22 25 s25/8 -1.20785233 +22 25 s25/10 -1.84368116 +22 28 s28/1 -0.67018332 +22 28 s28/3 -0.00995443 +22 28 s28/6 -0.37880357 +22 28 s28/8 -0.60493836 +22 28 s28/10 0.21733896 +22 30 s30/1 1.68965425 +22 30 s30/3 1.76201125 +22 30 s30/6 1.57592013 +22 30 s30/8 1.50733286 +22 30 s30/10 1.59466970 +22 31 s31/1 0.86590594 +22 31 s31/3 0.98171805 +22 31 s31/6 0.68440692 +22 31 s31/8 0.78916670 +22 31 s31/10 0.89370124 +22 32 s32/1 -1.03634890 +22 32 s32/3 -0.23130407 +22 32 s32/6 -0.18357236 +22 32 s32/8 -0.58461653 +22 32 s32/10 0.06341945 +22 35 s35/1 -0.34807358 +22 35 s35/3 -0.34659462 +22 35 s35/6 -0.84238527 +22 35 s35/8 -1.00590416 +22 35 s35/10 0.10285718 +22 37 s37/1 -1.03202198 +22 37 s37/3 -1.07148917 +22 37 s37/6 0.86523732 +22 37 s37/8 1.03583146 +22 37 s37/10 -1.05628094 +22 38 s38/1 0.42678308 +22 38 s38/3 0.54448548 +22 38 s38/6 0.28732729 +22 38 s38/8 0.34814525 +22 38 s38/10 0.39662289 +22 40 s40/1 0.77325476 +22 40 s40/3 -0.33346757 +22 40 s40/6 1.42849963 +22 40 s40/8 0.82125703 +22 40 s40/10 0.99508293 +23 3 s3/1 -1.03260460 +23 3 s3/3 -0.67384512 +23 3 s3/6 0.57488929 +23 3 s3/8 0.29491579 +23 3 s3/10 0.15440268 +23 4 s4/1 0.39253047 +23 4 s4/3 0.42421086 +23 4 s4/6 1.59247133 +23 4 s4/8 0.41887530 +23 4 s4/10 0.87073149 +23 7 s7/1 -0.53554918 +23 7 s7/3 -0.65611613 +23 7 s7/6 -1.03887473 +23 7 s7/8 -0.58081782 +23 7 s7/10 -0.61919109 +23 8 s8/1 -0.45133259 +23 8 s8/3 0.49979649 +23 8 s8/6 0.40068498 +23 8 s8/8 0.77627161 +23 8 s8/10 0.72549273 +23 9 s9/1 0.17921558 +23 9 s9/3 0.26339395 +23 9 s9/6 1.32600115 +23 9 s9/8 0.88653000 +23 9 s9/10 0.61592201 +23 13 s13/1 0.28844676 +23 13 s13/3 1.06931859 +23 13 s13/6 0.82966109 +23 13 s13/8 0.80801395 +23 13 s13/10 0.63918319 +23 15 s15/1 -1.41343675 +23 15 s15/3 -1.47056878 +23 15 s15/6 -1.49957605 +23 15 s15/8 -1.33567852 +23 15 s15/10 -0.58999715 +23 18 s18/1 0.66926576 +23 18 s18/3 0.89611216 +23 18 s18/6 1.18233876 +23 18 s18/8 0.89031619 +23 18 s18/10 1.08468002 +23 19 s19/1 -0.61434381 +23 19 s19/3 -0.45018309 +23 19 s19/6 -0.72142352 +23 19 s19/8 -0.95054601 +23 19 s19/10 -0.61306088 +23 22 s22/1 -1.79098555 +23 22 s22/3 -1.49905856 +23 22 s22/6 -1.87277533 +23 22 s22/8 -1.63158976 +23 22 s22/10 -2.01966369 +23 23 s23/1 1.44468715 +23 23 s23/3 0.75879039 +23 23 s23/6 1.26084096 +23 23 s23/8 0.84112013 +23 23 s23/10 1.46490812 +23 25 s25/1 0.64134230 +23 25 s25/3 0.63077735 +23 25 s25/6 -0.10021570 +23 25 s25/8 1.22045814 +23 25 s25/10 0.75717919 +23 28 s28/1 0.56349621 +23 28 s28/3 0.63886619 +23 28 s28/6 0.66308139 +23 28 s28/8 0.63949907 +23 28 s28/10 0.59416297 +23 30 s30/1 -0.28421910 +23 30 s30/3 -0.25189596 +23 30 s30/6 -0.12781739 +23 30 s30/8 -0.33531811 +23 30 s30/10 -0.50129389 +23 31 s31/1 0.35184571 +23 31 s31/3 -0.53638712 +23 31 s31/6 0.29553906 +23 31 s31/8 0.33256907 +23 31 s31/10 -0.48595285 +23 32 s32/1 -0.29742419 +23 32 s32/3 -0.52265310 +23 32 s32/6 -0.91526102 +23 32 s32/8 -0.68899187 +23 32 s32/10 -0.92512141 +23 35 s35/1 -0.54074969 +23 35 s35/3 -0.32569092 +23 35 s35/6 0.31917998 +23 35 s35/8 0.18052859 +23 35 s35/10 -0.10102705 +23 37 s37/1 0.41325502 +23 37 s37/3 0.54657165 +23 37 s37/6 -1.00789245 +23 37 s37/8 -1.32498918 +23 37 s37/10 0.08189913 +23 38 s38/1 0.41662074 +23 38 s38/3 -0.51129985 +23 38 s38/6 0.48542799 +23 38 s38/8 0.62680650 +23 38 s38/10 -0.42640625 +23 40 s40/1 -0.39670451 +23 40 s40/3 0.36162551 +23 40 s40/6 -0.98178590 +23 40 s40/8 -1.13860312 +23 40 s40/10 -0.60915915 +25 3 s3/1 0.38788836 +25 3 s3/3 -0.25864690 +25 3 s3/6 -0.27786114 +25 3 s3/8 -0.27066846 +25 3 s3/10 -0.58532625 +25 4 s4/1 0.90349694 +25 4 s4/3 0.58878418 +25 4 s4/6 0.00616744 +25 4 s4/8 0.64317801 +25 4 s4/10 -0.22703330 +25 7 s7/1 -1.14418389 +25 7 s7/3 -1.03870819 +25 7 s7/6 -1.18472572 +25 7 s7/8 -1.10111072 +25 7 s7/10 -0.87583107 +25 8 s8/1 0.14702127 +25 8 s8/3 -0.03989814 +25 8 s8/6 -0.07505656 +25 8 s8/8 0.19617332 +25 8 s8/10 -0.05746089 +25 9 s9/1 0.48568916 +25 9 s9/3 0.33423703 +25 9 s9/6 0.65267902 +25 9 s9/8 0.45271495 +25 9 s9/10 -0.27827417 +25 13 s13/1 0.74679592 +25 13 s13/3 0.86691242 +25 13 s13/6 -0.07069389 +25 13 s13/8 -0.34840016 +25 13 s13/10 -0.47831092 +25 15 s15/1 -0.87129230 +25 15 s15/3 -0.88294480 +25 15 s15/6 -0.74843755 +25 15 s15/8 -0.71268857 +25 15 s15/10 0.79842283 +25 18 s18/1 -0.05676750 +25 18 s18/3 0.79822372 +25 18 s18/6 0.41795924 +25 18 s18/8 0.78978664 +25 18 s18/10 0.52072639 +25 19 s19/1 -0.56077629 +25 19 s19/3 -0.22848570 +25 19 s19/6 -0.36333825 +25 19 s19/8 -0.47052536 +25 19 s19/10 -0.44681034 +25 22 s22/1 -0.87805640 +25 22 s22/3 -0.98951483 +25 22 s22/6 -0.89298038 +25 22 s22/8 -0.98290752 +25 22 s22/10 -0.51204244 +25 23 s23/1 -0.02148167 +25 23 s23/3 0.52170257 +25 23 s23/6 1.06072874 +25 23 s23/8 -0.79986579 +25 23 s23/10 -0.36079736 +25 25 s25/1 1.29936907 +25 25 s25/3 1.00279252 +25 25 s25/6 1.67218019 +25 25 s25/8 1.21615536 +25 25 s25/10 1.08995361 +25 28 s28/1 -0.26075740 +25 28 s28/3 -0.17618488 +25 28 s28/6 -0.19360973 +25 28 s28/8 -0.79604979 +25 28 s28/10 -0.24602389 +25 30 s30/1 -0.52116403 +25 30 s30/3 -0.21786640 +25 30 s30/6 -0.78278031 +25 30 s30/8 -0.40987337 +25 30 s30/10 -0.40218368 +25 31 s31/1 -0.13524391 +25 31 s31/3 0.14503692 +25 31 s31/6 0.10237478 +25 31 s31/8 -0.05675683 +25 31 s31/10 0.10485587 +25 32 s32/1 0.07267514 +25 32 s32/3 0.31236126 +25 32 s32/6 -0.22628334 +25 32 s32/8 -0.08690554 +25 32 s32/10 -0.35558310 +25 35 s35/1 0.99836321 +25 35 s35/3 0.78791812 +25 35 s35/6 0.61676515 +25 35 s35/8 0.59642364 +25 35 s35/10 -0.47653397 +25 37 s37/1 -0.41995907 +25 37 s37/3 -0.50693617 +25 37 s37/6 -0.81744558 +25 37 s37/8 -0.67095192 +25 37 s37/10 -0.65829547 +25 38 s38/1 0.03009282 +25 38 s38/3 0.28166168 +25 38 s38/6 0.07730638 +25 38 s38/8 -0.31010045 +25 38 s38/10 -0.06040958 +25 40 s40/1 -0.23938114 +25 40 s40/3 -0.22977219 +25 40 s40/6 0.16248276 +25 40 s40/8 -0.16861445 +25 40 s40/10 0.51569872 +28 3 s3/1 -0.75788220 +28 3 s3/3 -1.11628312 +28 3 s3/6 -0.32205602 +28 3 s3/8 -1.64401303 +28 3 s3/10 -1.23539112 +28 4 s4/1 -1.57217599 +28 4 s4/3 -1.07596909 +28 4 s4/6 0.15646502 +28 4 s4/8 -1.01849042 +28 4 s4/10 -0.36374443 +28 7 s7/1 0.04287176 +28 7 s7/3 0.30585728 +28 7 s7/6 -0.27764777 +28 7 s7/8 -0.37296925 +28 7 s7/10 -0.40877734 +28 8 s8/1 0.02128638 +28 8 s8/3 0.06599131 +28 8 s8/6 -0.21941329 +28 8 s8/8 0.54327031 +28 8 s8/10 0.18264756 +28 9 s9/1 -1.81578851 +28 9 s9/3 -1.73810417 +28 9 s9/6 -1.00455875 +28 9 s9/8 -1.61381829 +28 9 s9/10 -1.20486963 +28 13 s13/1 -0.18873329 +28 13 s13/3 0.51359419 +28 13 s13/6 0.17299236 +28 13 s13/8 0.95601789 +28 13 s13/10 -0.09988486 +28 15 s15/1 0.72898461 +28 15 s15/3 0.77069852 +28 15 s15/6 0.62337372 +28 15 s15/8 0.40248672 +28 15 s15/10 -1.39331763 +28 18 s18/1 0.22893293 +28 18 s18/3 0.92199237 +28 18 s18/6 0.22597911 +28 18 s18/8 0.77867086 +28 18 s18/10 0.00580139 +28 19 s19/1 1.41477856 +28 19 s19/3 1.51085715 +28 19 s19/6 0.76180256 +28 19 s19/8 0.86281213 +28 19 s19/10 1.02504215 +28 22 s22/1 0.22895101 +28 22 s22/3 0.10751780 +28 22 s22/6 0.33695890 +28 22 s22/8 0.22798274 +28 22 s22/10 -0.07912421 +28 23 s23/1 -0.37534063 +28 23 s23/3 -0.84148985 +28 23 s23/6 -0.62897315 +28 23 s23/8 -0.64925576 +28 23 s23/10 0.00470522 +28 25 s25/1 -1.26563354 +28 25 s25/3 -1.04351210 +28 25 s25/6 -1.23238843 +28 25 s25/8 -0.47258391 +28 25 s25/10 -0.95047392 +28 28 s28/1 -0.09323523 +28 28 s28/3 -0.87096352 +28 28 s28/6 -0.62692037 +28 28 s28/8 -0.55673524 +28 28 s28/10 0.07839421 +28 30 s30/1 -0.28378672 +28 30 s30/3 -0.57361675 +28 30 s30/6 -0.17396619 +28 30 s30/8 0.43573395 +28 30 s30/10 0.13635153 +28 31 s31/1 -1.52300760 +28 31 s31/3 0.33605604 +28 31 s31/6 -1.49852436 +28 31 s31/8 -1.57734323 +28 31 s31/10 0.42415751 +28 32 s32/1 1.58810886 +28 32 s32/3 1.16396025 +28 32 s32/6 1.54091210 +28 32 s32/8 1.51689525 +28 32 s32/10 1.47707127 +28 35 s35/1 -1.05672491 +28 35 s35/3 -1.19839290 +28 35 s35/6 -1.16283270 +28 35 s35/8 -1.23185320 +28 35 s35/10 -0.65403866 +28 37 s37/1 -0.77421177 +28 37 s37/3 -0.65286760 +28 37 s37/6 1.33139600 +28 37 s37/8 1.15737948 +28 37 s37/10 -0.09334576 +28 38 s38/1 -0.30460191 +28 38 s38/3 -0.26125923 +28 38 s38/6 -0.10381703 +28 38 s38/8 -1.17751540 +28 38 s38/10 -0.87983850 +28 40 s40/1 -1.07969926 +28 40 s40/3 -0.93655184 +28 40 s40/6 -0.81366367 +28 40 s40/8 -1.26661212 +28 40 s40/10 -0.15606157 +30 3 s3/1 -2.16750068 +30 3 s3/3 -1.60095894 +30 3 s3/6 -1.57542744 +30 3 s3/8 -0.96098217 +30 3 s3/10 -1.04160134 +30 4 s4/1 0.66444254 +30 4 s4/3 1.22997273 +30 4 s4/6 -1.15961251 +30 4 s4/8 0.97667249 +30 4 s4/10 -0.80344739 +30 7 s7/1 -0.71256811 +30 7 s7/3 -0.87487378 +30 7 s7/6 -0.54321020 +30 7 s7/8 -0.76501764 +30 7 s7/10 -0.50416116 +30 8 s8/1 0.11814166 +30 8 s8/3 -0.98090571 +30 8 s8/6 -0.95501285 +30 8 s8/8 -1.03537550 +30 8 s8/10 -1.20680089 +30 9 s9/1 -0.83192296 +30 9 s9/3 -1.03474797 +30 9 s9/6 -0.33414610 +30 9 s9/8 -0.92687538 +30 9 s9/10 -0.50258883 +30 13 s13/1 -1.11159012 +30 13 s13/3 -0.23077196 +30 13 s13/6 -1.20193626 +30 13 s13/8 -1.44329721 +30 13 s13/10 -0.77968286 +30 15 s15/1 0.94886151 +30 15 s15/3 1.06963974 +30 15 s15/6 0.96835781 +30 15 s15/8 1.31784583 +30 15 s15/10 0.54420521 +30 18 s18/1 -0.98151844 +30 18 s18/3 -0.65195143 +30 18 s18/6 -1.28526723 +30 18 s18/8 -0.77911616 +30 18 s18/10 -1.45731737 +30 19 s19/1 0.03617678 +30 19 s19/3 -0.00090444 +30 19 s19/6 -0.41256704 +30 19 s19/8 -0.36470026 +30 19 s19/10 0.13110394 +30 22 s22/1 0.91300062 +30 22 s22/3 1.23321662 +30 22 s22/6 0.40663586 +30 22 s22/8 1.06651526 +30 22 s22/10 0.68027846 +30 23 s23/1 -0.14105187 +30 23 s23/3 -0.50072135 +30 23 s23/6 -0.08619171 +30 23 s23/8 -0.17693715 +30 23 s23/10 -0.25905089 +30 25 s25/1 -1.14780816 +30 25 s25/3 -1.42531430 +30 25 s25/6 -1.11804200 +30 25 s25/8 -0.46452487 +30 25 s25/10 -1.21731939 +30 28 s28/1 -0.83938484 +30 28 s28/3 -0.19833564 +30 28 s28/6 -0.51266612 +30 28 s28/8 -1.01709964 +30 28 s28/10 0.14806997 +30 30 s30/1 2.09714917 +30 30 s30/3 2.01837451 +30 30 s30/6 2.11806697 +30 30 s30/8 2.11386599 +30 30 s30/10 1.98653228 +30 31 s31/1 0.89260239 +30 31 s31/3 1.23046196 +30 31 s31/6 0.65744798 +30 31 s31/8 0.72582047 +30 31 s31/10 1.28005322 +30 32 s32/1 -0.12012636 +30 32 s32/3 0.46030084 +30 32 s32/6 0.17178306 +30 32 s32/8 0.17560884 +30 32 s32/10 0.38338587 +30 35 s35/1 -0.61689608 +30 35 s35/3 -0.60561057 +30 35 s35/6 -1.36577757 +30 35 s35/8 -1.28777915 +30 35 s35/10 -0.36135616 +30 37 s37/1 -1.19134777 +30 37 s37/3 -1.12492013 +30 37 s37/6 0.59081535 +30 37 s37/8 0.37166470 +30 37 s37/10 -1.54389909 +30 38 s38/1 0.35727797 +30 38 s38/3 0.13813327 +30 38 s38/6 0.39065063 +30 38 s38/8 0.26576583 +30 38 s38/10 -0.22460976 +30 40 s40/1 0.54640457 +30 40 s40/3 -0.36316052 +30 40 s40/6 1.48549116 +30 40 s40/8 0.21744666 +30 40 s40/10 1.08354087 +31 3 s3/1 -1.06706142 +31 3 s3/3 -0.64515655 +31 3 s3/6 -1.18508902 +31 3 s3/8 -0.85140136 +31 3 s3/10 -0.58371449 +31 4 s4/1 0.16492851 +31 4 s4/3 0.48892666 +31 4 s4/6 -1.14083410 +31 4 s4/8 0.47635156 +31 4 s4/10 -0.41931559 +31 7 s7/1 -0.44939804 +31 7 s7/3 -0.55200814 +31 7 s7/6 -0.71228485 +31 7 s7/8 -1.04035233 +31 7 s7/10 0.09297649 +31 8 s8/1 -0.42500663 +31 8 s8/3 -1.03494506 +31 8 s8/6 -1.10898671 +31 8 s8/8 -0.88478341 +31 8 s8/10 -1.15713679 +31 9 s9/1 -0.63300827 +31 9 s9/3 -0.53639629 +31 9 s9/6 -0.50311159 +31 9 s9/8 -0.95037462 +31 9 s9/10 0.02050913 +31 13 s13/1 -1.50181111 +31 13 s13/3 -0.73769813 +31 13 s13/6 -1.01450337 +31 13 s13/8 -1.19255677 +31 13 s13/10 -1.57824426 +31 15 s15/1 1.02571671 +31 15 s15/3 0.97340933 +31 15 s15/6 0.97931127 +31 15 s15/8 1.32661171 +31 15 s15/10 0.84435982 +31 18 s18/1 -0.38610377 +31 18 s18/3 -0.43889352 +31 18 s18/6 -0.96823906 +31 18 s18/8 -0.44439639 +31 18 s18/10 -1.08309599 +31 19 s19/1 0.26877783 +31 19 s19/3 0.40560264 +31 19 s19/6 -0.34448519 +31 19 s19/8 -0.43471275 +31 19 s19/10 -0.09915299 +31 22 s22/1 0.64008470 +31 22 s22/3 0.87405931 +31 22 s22/6 0.01223460 +31 22 s22/8 0.52399836 +31 22 s22/10 0.34761248 +31 23 s23/1 -0.87604819 +31 23 s23/3 0.20347451 +31 23 s23/6 0.24965216 +31 23 s23/8 -0.05220992 +31 23 s23/10 -0.91618755 +31 25 s25/1 -0.65272879 +31 25 s25/3 -0.69296554 +31 25 s25/6 -0.45917418 +31 25 s25/8 -0.26997268 +31 25 s25/10 -0.79167808 +31 28 s28/1 -1.53769991 +31 28 s28/3 -1.33594161 +31 28 s28/6 -1.32282836 +31 28 s28/8 -0.81811236 +31 28 s28/10 -0.94625592 +31 30 s30/1 1.10826455 +31 30 s30/3 1.06368656 +31 30 s30/6 1.11780063 +31 30 s30/8 1.36188316 +31 30 s30/10 1.10481970 +31 31 s31/1 0.85868502 +31 31 s31/3 1.83304606 +31 31 s31/6 1.09807888 +31 31 s31/8 0.81811015 +31 31 s31/10 1.80665314 +31 32 s32/1 0.27120858 +31 32 s32/3 0.81823762 +31 32 s32/6 -0.02469287 +31 32 s32/8 0.08201189 +31 32 s32/10 0.07556043 +31 35 s35/1 0.49813485 +31 35 s35/3 0.33502351 +31 35 s35/6 -0.02874230 +31 35 s35/8 -0.13132304 +31 35 s35/10 0.63336458 +31 37 s37/1 -1.20860061 +31 37 s37/3 -1.31534180 +31 37 s37/6 0.44157748 +31 37 s37/8 0.20120143 +31 37 s37/10 -1.37562074 +31 38 s38/1 -0.49484525 +31 38 s38/3 -0.64703602 +31 38 s38/6 -0.38072081 +31 38 s38/8 -0.88922830 +31 38 s38/10 -0.95141053 +31 40 s40/1 0.39117273 +31 40 s40/3 0.01597769 +31 40 s40/6 0.15512843 +31 40 s40/8 -0.24554279 +31 40 s40/10 0.42993887 +32 3 s3/1 -0.34979288 +32 3 s3/3 -0.63492301 +32 3 s3/6 -1.36563614 +32 3 s3/8 -1.53546874 +32 3 s3/10 -0.93584904 +32 4 s4/1 -0.83840331 +32 4 s4/3 -0.61089502 +32 4 s4/6 -0.68060131 +32 4 s4/8 -0.60775676 +32 4 s4/10 -0.42733627 +32 7 s7/1 0.05173331 +32 7 s7/3 0.26564861 +32 7 s7/6 0.24133020 +32 7 s7/8 -0.08425436 +32 7 s7/10 0.05008996 +32 8 s8/1 -0.31000833 +32 8 s8/3 -0.83646455 +32 8 s8/6 -0.90921143 +32 8 s8/8 -0.58387164 +32 8 s8/10 -0.75000376 +32 9 s9/1 -1.28205476 +32 9 s9/3 -1.19987908 +32 9 s9/6 -1.62451489 +32 9 s9/8 -1.69904320 +32 9 s9/10 -0.84828107 +32 13 s13/1 0.40557279 +32 13 s13/3 0.31295431 +32 13 s13/6 0.04809257 +32 13 s13/8 0.27907837 +32 13 s13/10 0.03473994 +32 15 s15/1 0.99177727 +32 15 s15/3 0.97114796 +32 15 s15/6 1.06104258 +32 15 s15/8 0.56932194 +32 15 s15/10 -0.55814658 +32 18 s18/1 0.26431378 +32 18 s18/3 0.68359679 +32 18 s18/6 0.19901341 +32 18 s18/8 0.61969323 +32 18 s18/10 -0.05538931 +32 19 s19/1 1.45468377 +32 19 s19/3 1.48637428 +32 19 s19/6 1.31740366 +32 19 s19/8 0.62010680 +32 19 s19/10 1.13866785 +32 22 s22/1 0.45899245 +32 22 s22/3 0.16331324 +32 22 s22/6 1.14342348 +32 22 s22/8 0.34312470 +32 22 s22/10 0.56399758 +32 23 s23/1 -1.26921448 +32 23 s23/3 -0.77985492 +32 23 s23/6 -1.05890858 +32 23 s23/8 -0.66186334 +32 23 s23/10 -1.28344535 +32 25 s25/1 -0.88139160 +32 25 s25/3 -0.87571363 +32 25 s25/6 -0.59951290 +32 25 s25/8 -0.82875805 +32 25 s25/10 -0.82938247 +32 28 s28/1 -0.95908445 +32 28 s28/3 -1.17120835 +32 28 s28/6 -1.35144984 +32 28 s28/8 -0.63742662 +32 28 s28/10 -0.14458260 +32 30 s30/1 -0.24835364 +32 30 s30/3 -0.24714202 +32 30 s30/6 -0.42207877 +32 30 s30/8 0.25277493 +32 30 s30/10 -0.05740314 +32 31 s31/1 -1.42467000 +32 31 s31/3 0.32767148 +32 31 s31/6 -1.31324625 +32 31 s31/8 -1.48798622 +32 31 s31/10 0.42114287 +32 32 s32/1 1.40916892 +32 32 s32/3 1.30849730 +32 32 s32/6 1.48979159 +32 32 s32/8 1.60489921 +32 32 s32/10 1.51985312 +32 35 s35/1 -0.55206922 +32 35 s35/3 -0.37641895 +32 35 s35/6 -0.95248365 +32 35 s35/8 -0.69914407 +32 35 s35/10 -0.25853623 +32 37 s37/1 -0.78476851 +32 37 s37/3 -0.77459291 +32 37 s37/6 0.74252719 +32 37 s37/8 0.61360420 +32 37 s37/10 -0.39296201 +32 38 s38/1 -1.00675333 +32 38 s38/3 -0.35790249 +32 38 s38/6 -0.87699895 +32 38 s38/8 -1.38537718 +32 38 s38/10 -0.93881970 +32 40 s40/1 0.03970604 +32 40 s40/3 -0.32881842 +32 40 s40/6 -0.11159893 +32 40 s40/8 -0.15369992 +32 40 s40/10 0.40635884 +35 3 s3/1 0.58989713 +35 3 s3/3 0.56545325 +35 3 s3/6 -0.81300133 +35 3 s3/8 -0.07321430 +35 3 s3/10 0.26722823 +35 4 s4/1 0.59041271 +35 4 s4/3 0.25647226 +35 4 s4/6 -0.32863454 +35 4 s4/8 0.50390428 +35 4 s4/10 0.14809285 +35 7 s7/1 -0.40123177 +35 7 s7/3 -0.49670708 +35 7 s7/6 -0.67335549 +35 7 s7/8 -0.82731196 +35 7 s7/10 0.35781055 +35 8 s8/1 -0.68846413 +35 8 s8/3 -0.89799396 +35 8 s8/6 -0.87448650 +35 8 s8/8 -0.83440570 +35 8 s8/10 -0.92217502 +35 9 s9/1 0.44356109 +35 9 s9/3 0.46029490 +35 9 s9/6 0.10101832 +35 9 s9/8 0.25049809 +35 9 s9/10 0.56185807 +35 13 s13/1 0.09690011 +35 13 s13/3 -0.22258693 +35 13 s13/6 -0.03568070 +35 13 s13/8 -0.27438274 +35 13 s13/10 -0.53421069 +35 15 s15/1 -0.12436037 +35 15 s15/3 -0.31110086 +35 15 s15/6 -0.04473106 +35 15 s15/8 0.04509418 +35 15 s15/10 1.24433931 +35 18 s18/1 0.30125024 +35 18 s18/3 0.13567176 +35 18 s18/6 0.06190413 +35 18 s18/8 0.21586980 +35 18 s18/10 0.15400327 +35 19 s19/1 -0.38961735 +35 19 s19/3 -0.13950656 +35 19 s19/6 -0.49393461 +35 19 s19/8 -0.77366700 +35 19 s19/10 -0.76366576 +35 22 s22/1 -0.29511096 +35 22 s22/3 -0.32271415 +35 22 s22/6 -0.57376226 +35 22 s22/8 -0.52446628 +35 22 s22/10 -0.16873978 +35 23 s23/1 -1.06751386 +35 23 s23/3 0.69152995 +35 23 s23/6 0.55792842 +35 23 s23/8 -0.11606231 +35 23 s23/10 -1.29919153 +35 25 s25/1 0.96193260 +35 25 s25/3 0.88806249 +35 25 s25/6 1.18018935 +35 25 s25/8 0.43012403 +35 25 s25/10 0.72685643 +35 28 s28/1 -1.30052825 +35 28 s28/3 -1.14125274 +35 28 s28/6 -1.15193454 +35 28 s28/8 -0.32750619 +35 28 s28/10 -1.30474359 +35 30 s30/1 -0.49245824 +35 30 s30/3 -0.25555783 +35 30 s30/6 -0.60572032 +35 30 s30/8 -0.31816842 +35 30 s30/10 -0.53832367 +35 31 s31/1 0.49782820 +35 31 s31/3 0.78214911 +35 31 s31/6 0.70630187 +35 31 s31/8 0.57545705 +35 31 s31/10 0.66889594 +35 32 s32/1 -0.11026438 +35 32 s32/3 0.39838657 +35 32 s32/6 -0.80583976 +35 32 s32/8 -0.34566925 +35 32 s32/10 -0.77149188 +35 35 s35/1 1.71835138 +35 35 s35/3 1.63548337 +35 35 s35/6 1.55981318 +35 35 s35/8 1.61280916 +35 35 s35/10 1.15735073 +35 37 s37/1 -0.26496896 +35 37 s37/3 -0.46146913 +35 37 s37/6 -0.93501624 +35 37 s37/8 -0.86769733 +35 37 s37/10 -0.43366404 +35 38 s38/1 -1.02572670 +35 38 s38/3 -0.90396688 +35 38 s38/6 -0.99620148 +35 38 s38/8 -1.00473538 +35 38 s38/10 -0.93592886 +35 40 s40/1 0.64222792 +35 40 s40/3 0.72710532 +35 40 s40/6 0.08210817 +35 40 s40/8 0.50397195 +35 40 s40/10 0.04518286 +37 3 s3/1 0.47219917 +37 3 s3/3 -0.18494703 +37 3 s3/6 0.51516789 +37 3 s3/8 -0.68869941 +37 3 s3/10 -0.76562795 +37 4 s4/1 -2.72176081 +37 4 s4/3 -2.42085204 +37 4 s4/6 -0.76908485 +37 4 s4/8 -2.94846302 +37 4 s4/10 -0.38980712 +37 7 s7/1 0.39500319 +37 7 s7/3 0.78799778 +37 7 s7/6 0.42092690 +37 7 s7/8 0.29808531 +37 7 s7/10 -0.35460909 +37 8 s8/1 0.72635376 +37 8 s8/3 0.45594843 +37 8 s8/6 0.37367807 +37 8 s8/8 0.34891108 +37 8 s8/10 0.31394390 +37 9 s9/1 -1.79461485 +37 9 s9/3 -1.80113673 +37 9 s9/6 -1.09705665 +37 9 s9/8 -1.22308663 +37 9 s9/10 -1.19032548 +37 13 s13/1 -0.61873551 +37 13 s13/3 -0.53330548 +37 13 s13/6 0.58440893 +37 13 s13/8 0.09806870 +37 13 s13/10 0.56294169 +37 15 s15/1 0.52126916 +37 15 s15/3 0.63422318 +37 15 s15/6 0.36279055 +37 15 s15/8 -0.14980172 +37 15 s15/10 -1.69000511 +37 18 s18/1 -0.23490304 +37 18 s18/3 0.39221543 +37 18 s18/6 -0.02873877 +37 18 s18/8 0.19249650 +37 18 s18/10 -0.03735739 +37 19 s19/1 -0.10992435 +37 19 s19/3 -0.20628188 +37 19 s19/6 -0.48343370 +37 19 s19/8 0.89184930 +37 19 s19/10 -0.08800241 +37 22 s22/1 0.54129747 +37 22 s22/3 0.45930609 +37 22 s22/6 0.81116710 +37 22 s22/8 0.81984665 +37 22 s22/10 0.54733597 +37 23 s23/1 -0.48572898 +37 23 s23/3 -1.44934215 +37 23 s23/6 -1.64291584 +37 23 s23/8 -0.85445313 +37 23 s23/10 -0.01479549 +37 25 s25/1 -1.14206972 +37 25 s25/3 -0.97109701 +37 25 s25/6 -0.80015492 +37 25 s25/8 -0.90317406 +37 25 s25/10 -1.05482111 +37 28 s28/1 1.66369888 +37 28 s28/3 0.29330947 +37 28 s28/6 1.36150930 +37 28 s28/8 -0.22662029 +37 28 s28/10 -0.06674577 +37 30 s30/1 -0.39682523 +37 30 s30/3 -0.70790118 +37 30 s30/6 -0.20968900 +37 30 s30/8 -0.06075101 +37 30 s30/10 -0.04487605 +37 31 s31/1 -1.49754713 +37 31 s31/3 -0.56566274 +37 31 s31/6 -1.69153169 +37 31 s31/8 -1.65417809 +37 31 s31/10 -0.19266182 +37 32 s32/1 1.44071355 +37 32 s32/3 0.39929143 +37 32 s32/6 1.65575343 +37 32 s32/8 1.37189811 +37 32 s32/10 1.70812405 +37 35 s35/1 -1.52818795 +37 35 s35/3 -1.87332918 +37 35 s35/6 -2.15017969 +37 35 s35/8 -1.69986494 +37 35 s35/10 -0.77739253 +37 37 s37/1 0.61005264 +37 37 s37/3 1.02215096 +37 37 s37/6 2.07598022 +37 37 s37/8 2.04743906 +37 37 s37/10 0.86473816 +37 38 s38/1 0.42815479 +37 38 s38/3 0.07949971 +37 38 s38/6 0.24504357 +37 38 s38/8 -0.67158273 +37 38 s38/10 -0.16071124 +37 40 s40/1 -1.73873427 +37 40 s40/3 -1.17338443 +37 40 s40/6 -0.83416912 +37 40 s40/8 -1.42797254 +37 40 s40/10 -0.26652993 +38 3 s3/1 -0.34986413 +38 3 s3/3 -0.43848506 +38 3 s3/6 0.87604416 +38 3 s3/8 1.23647577 +38 3 s3/10 -0.06218902 +38 4 s4/1 0.19190085 +38 4 s4/3 0.49143269 +38 4 s4/6 0.16951195 +38 4 s4/8 -0.02890485 +38 4 s4/10 -0.67905989 +38 7 s7/1 -0.45305140 +38 7 s7/3 -0.49972328 +38 7 s7/6 0.09974224 +38 7 s7/8 0.56828499 +38 7 s7/10 -1.20288344 +38 8 s8/1 1.20257875 +38 8 s8/3 1.56296338 +38 8 s8/6 1.67856412 +38 8 s8/8 1.36753916 +38 8 s8/10 1.44907864 +38 9 s9/1 0.33477489 +38 9 s9/3 0.16399122 +38 9 s9/6 0.82206288 +38 9 s9/8 0.49694815 +38 9 s9/10 -0.73387133 +38 13 s13/1 -0.20317228 +38 13 s13/3 0.08540785 +38 13 s13/6 -1.03480155 +38 13 s13/8 -0.71830549 +38 13 s13/10 -0.67801143 +38 15 s15/1 -0.96641174 +38 15 s15/3 -0.66787338 +38 15 s15/6 -0.90327629 +38 15 s15/8 -0.72646828 +38 15 s15/10 -0.59758064 +38 18 s18/1 -1.22808034 +38 18 s18/3 -1.25450703 +38 18 s18/6 -0.83183284 +38 18 s18/8 -1.22054720 +38 18 s18/10 -0.67272463 +38 19 s19/1 -0.56510266 +38 19 s19/3 -0.87673226 +38 19 s19/6 0.18256720 +38 19 s19/8 0.51212517 +38 19 s19/10 0.53526685 +38 22 s22/1 0.13907734 +38 22 s22/3 0.14989023 +38 22 s22/6 0.11947468 +38 22 s22/8 0.40114674 +38 22 s22/10 0.25685977 +38 23 s23/1 1.43004802 +38 23 s23/3 -1.27651650 +38 23 s23/6 -0.21007844 +38 23 s23/8 -0.30382056 +38 23 s23/10 1.50216225 +38 25 s25/1 -0.43345213 +38 25 s25/3 -0.58403337 +38 25 s25/6 -0.74390289 +38 25 s25/8 -0.02651065 +38 25 s25/10 -0.61220585 +38 28 s28/1 1.37123154 +38 28 s28/3 2.00482870 +38 28 s28/6 1.46026208 +38 28 s28/8 0.04231748 +38 28 s28/10 1.83954626 +38 30 s30/1 0.33794990 +38 30 s30/3 0.39139063 +38 30 s30/6 0.34120431 +38 30 s30/8 -0.17142861 +38 30 s30/10 0.40667002 +38 31 s31/1 0.05644954 +38 31 s31/3 -1.27272131 +38 31 s31/6 -0.08964086 +38 31 s31/8 0.10124706 +38 31 s31/10 -1.40039358 +38 32 s32/1 -1.79019670 +38 32 s32/3 -1.60918385 +38 32 s32/6 -0.52069776 +38 32 s32/8 -1.25764940 +38 32 s32/10 -0.62417347 +38 35 s35/1 -1.39942528 +38 35 s35/3 -1.36550208 +38 35 s35/6 -1.39690969 +38 35 s35/8 -1.64817588 +38 35 s35/10 -1.89374635 +38 37 s37/1 0.08342767 +38 37 s37/3 0.15969474 +38 37 s37/6 -0.11885445 +38 37 s37/8 0.16820096 +38 37 s37/10 -0.05410606 +38 38 s38/1 1.87471089 +38 38 s38/3 1.95141077 +38 38 s38/6 1.74221205 +38 38 s38/8 1.98588432 +38 38 s38/10 2.17910838 +38 40 s40/1 -0.87799651 +38 40 s40/3 -1.08762577 +38 40 s40/6 -0.05492982 +38 40 s40/8 -0.81392371 +38 40 s40/10 0.07995599 +40 3 s3/1 0.51637170 +40 3 s3/3 0.64860899 +40 3 s3/6 -0.44882742 +40 3 s3/8 0.34932772 +40 3 s3/10 0.43240206 +40 4 s4/1 0.46063527 +40 4 s4/3 0.16012312 +40 4 s4/6 0.05840162 +40 4 s4/8 0.09479120 +40 4 s4/10 0.26872669 +40 7 s7/1 -0.50236994 +40 7 s7/3 -0.57872182 +40 7 s7/6 -0.59928377 +40 7 s7/8 -0.48562501 +40 7 s7/10 0.03356254 +40 8 s8/1 -0.72784396 +40 8 s8/3 -0.65408256 +40 8 s8/6 -0.55713994 +40 8 s8/8 -0.68363972 +40 8 s8/10 -0.55258401 +40 9 s9/1 0.27685346 +40 9 s9/3 0.34761244 +40 9 s9/6 0.55505748 +40 9 s9/8 0.67307236 +40 9 s9/10 0.53172221 +40 13 s13/1 0.70340455 +40 13 s13/3 0.52593826 +40 13 s13/6 0.63664529 +40 13 s13/8 0.08482371 +40 13 s13/10 0.45244872 +40 15 s15/1 -0.66389232 +40 15 s15/3 -0.75706607 +40 15 s15/6 -0.57126486 +40 15 s15/8 -0.73886211 +40 15 s15/10 0.65767569 +40 18 s18/1 0.29566919 +40 18 s18/3 0.67309669 +40 18 s18/6 0.73171759 +40 18 s18/8 0.66533830 +40 18 s18/10 0.75856716 +40 19 s19/1 -0.74247110 +40 19 s19/3 -0.60461426 +40 19 s19/6 -0.40514610 +40 19 s19/8 -1.05700303 +40 19 s19/10 -0.74010129 +40 22 s22/1 -1.24034127 +40 22 s22/3 -1.20724395 +40 22 s22/6 -1.15241364 +40 22 s22/8 -1.23961818 +40 22 s22/10 -1.03323511 +40 23 s23/1 -0.36911005 +40 23 s23/3 0.90003946 +40 23 s23/6 1.12396583 +40 23 s23/8 -0.05257356 +40 23 s23/10 -0.47946578 +40 25 s25/1 0.95728858 +40 25 s25/3 0.87260529 +40 25 s25/6 0.79021455 +40 25 s25/8 1.14483428 +40 25 s25/10 0.62533388 +40 28 s28/1 -0.17709624 +40 28 s28/3 -0.26499071 +40 28 s28/6 -0.03606273 +40 28 s28/8 0.28904512 +40 28 s28/10 -1.05740439 +40 30 s30/1 -0.86565854 +40 30 s30/3 -0.63496678 +40 30 s30/6 -0.99308896 +40 30 s30/8 -0.85236767 +40 30 s30/10 -1.03225981 +40 31 s31/1 0.22223696 +40 31 s31/3 -0.07162090 +40 31 s31/6 0.27550795 +40 31 s31/8 0.25100159 +40 31 s31/10 0.01844171 +40 32 s32/1 -0.13234639 +40 32 s32/3 0.01938321 +40 32 s32/6 -0.76468913 +40 32 s32/8 -0.16907488 +40 32 s32/10 -0.61437985 +40 35 s35/1 0.89543358 +40 35 s35/3 1.40488718 +40 35 s35/6 0.68117396 +40 35 s35/8 1.09961333 +40 35 s35/10 0.97750186 +40 37 s37/1 0.65609166 +40 37 s37/3 0.79906075 +40 37 s37/6 -1.16413966 +40 37 s37/8 -1.14823398 +40 37 s37/10 0.15681889 +40 38 s38/1 -0.46298136 +40 38 s38/3 -0.66460668 +40 38 s38/6 -0.52422730 +40 38 s38/8 -0.54380387 +40 38 s38/10 -0.70446398 +40 40 s40/1 0.58579289 +40 40 s40/3 0.81726897 +40 40 s40/6 0.27813296 +40 40 s40/8 1.06201365 +40 40 s40/10 0.26558685 diff --git a/bob/bio/gmm/test/dummy/__init__.py b/bob/bio/gmm/test/dummy/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..51221aece573a248182e22ab578666896b3d84ca --- /dev/null +++ b/bob/bio/gmm/test/dummy/__init__.py @@ -0,0 +1 @@ +from . import extractor diff --git a/bob/bio/gmm/test/dummy/extractor.py b/bob/bio/gmm/test/dummy/extractor.py new file mode 100644 index 0000000000000000000000000000000000000000..2c585579747097d8634d2029158431e7060a9654 --- /dev/null +++ b/bob/bio/gmm/test/dummy/extractor.py @@ -0,0 +1,27 @@ +import numpy +import bob.io.base + +from bob.bio.base.extractor import Extractor + +_data = [0., 1., 2., 3., 4.] + +class DummyExtractor (Extractor): + def __init__(self): + Extractor.__init__(self, requires_training=True) + self.model = False + + def train(self, train_data, extractor_file): + assert isinstance(train_data, list) + bob.io.base.save(_data, extractor_file) + + def load(self, extractor_file): + data = bob.io.base.load(extractor_file) + assert (_data == data).all() + self.model = True + + def __call__(self, data): + """Does nothing, simply converts the data type of the data, ignoring any annotation.""" + assert self.model + return data.astype(numpy.float) + +extractor = DummyExtractor() diff --git a/bob/bio/gmm/test/test_algorithms.py b/bob/bio/gmm/test/test_algorithms.py index 5bac224a0b7666a35de007a2e0d92ba210e21912..03613b11e9fd754969c90c38347c8486587fbbe6 100644 --- a/bob/bio/gmm/test/test_algorithms.py +++ b/bob/bio/gmm/test/test_algorithms.py @@ -81,7 +81,7 @@ def test_gmm(): # create smaller GMM object gmm2 = bob.bio.gmm.algorithm.GMM( number_of_gaussians = 2, - k_means_training_iterations = 1, + kmeans_training_iterations = 1, gmm_training_iterations = 1, INIT_SEED = seed_value, ) @@ -138,7 +138,7 @@ def test_gmm_regular(): # create smaller GMM object gmm2 = bob.bio.gmm.algorithm.GMMRegular( number_of_gaussians = 2, - k_means_training_iterations = 1, + kmeans_training_iterations = 1, gmm_training_iterations = 1, INIT_SEED = seed_value, ) @@ -193,7 +193,7 @@ def test_isv(): isv2 = bob.bio.gmm.algorithm.ISV( number_of_gaussians = 2, subspace_dimension_of_u = 10, - k_means_training_iterations = 1, + kmeans_training_iterations = 1, gmm_training_iterations = 1, isv_training_iterations = 1, INIT_SEED = seed_value @@ -260,7 +260,7 @@ def test_jfa(): number_of_gaussians = 2, subspace_dimension_of_u = 2, subspace_dimension_of_v = 2, - k_means_training_iterations = 1, + kmeans_training_iterations = 1, gmm_training_iterations = 1, jfa_training_iterations = 1, INIT_SEED = seed_value diff --git a/bob/bio/gmm/test/test_scripts.py b/bob/bio/gmm/test/test_scripts.py new file mode 100644 index 0000000000000000000000000000000000000000..18f39f7be534d293a20605214fdfc3ae09c0888a --- /dev/null +++ b/bob/bio/gmm/test/test_scripts.py @@ -0,0 +1,105 @@ + + +from __future__ import print_function + +import bob.measure + +import os +import sys +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 + +import pkg_resources + +regenerate_reference = False + +from bob.bio.base.script.verify import main + +data_dir = pkg_resources.resource_filename('bob.bio.gmm', 'test/data') + +def _verify(parameters, test_dir, sub_dir, ref_modifier="", score_modifier=('scores',''), executable = main): + try: + executable([sys.argv[0]] + parameters) + + # assert that the score file exists + score_files = [os.path.join(test_dir, sub_dir, 'Default', norm, '%s-dev%s'%score_modifier) for norm in ('nonorm', 'ztnorm')] + assert os.path.exists(score_files[0]), "Score file %s does not exist" % score_files[0] + assert os.path.exists(score_files[1]), "Score file %s does not exist" % score_files[1] + + # also assert that the scores are still the same -- though they have no real meaning + reference_files = [os.path.join(data_dir, 'scores-%s%s-dev'%(norm, ref_modifier)) for norm in ('nonorm', 'ztnorm')] + + if regenerate_reference: + for i in (0,1): + shutil.copy(score_files[i], reference_files[i]) + + for i in (0,1): + d = [] + # read reference and new data + for score_file in (score_files[i], reference_files[i]): + f = bob.measure.load.open_file(score_file) + d_ = [] + for line in f: + if isinstance(line, bytes): line = line.decode('utf-8') + d_.append(line.rstrip().split()) + d.append(numpy.array(d_)) + + assert d[0].shape == d[1].shape + # assert that the data order is still correct + assert (d[0][:,0:3] == d[1][:, 0:3]).all() + # assert that the values are OK + assert numpy.allclose(d[0][:,3].astype(float), d[1][:,3].astype(float), 1e-5) + + finally: + shutil.rmtree(test_dir) + + +def test_gmm_base(): + test_dir = tempfile.mkdtemp(prefix='frltest_') + # define dummy parameters + parameters = [ + '-d', 'dummy', + '-p', 'dummy', + '-e', 'dummy', + '-a', 'bob.bio.gmm.algorithm.GMM(2, 2, 2)', '--import', 'bob.bio.gmm', + '--zt-norm', + '-s', 'test_gmm_sequential', '-vv', + '--temp-directory', test_dir, + '--result-directory', test_dir + ] + + print (bob.bio.base.tools.command_line(parameters)) + + _verify(parameters, test_dir, 'test_gmm_sequential', ref_modifier='-gmm') + + +def test_gmm_parallel(): + from bob.bio.gmm.script.verify_gmm import main + test_dir = tempfile.mkdtemp(prefix='frltest_') + test_database = os.path.join(test_dir, "submitted.sql3") + # define dummy parameters + parameters = [ + '-d', 'dummy', + '-p', 'dummy', + '-e', 'dummy', + '-a', 'bob.bio.gmm.algorithm.GMM(2, 2, 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_gmm_parallel', '-vv', + '--temp-directory', test_dir, + '--result-directory', test_dir, + ] + + print (bob.bio.base.tools.command_line(parameters)) + + _verify(parameters, test_dir, 'test_gmm_parallel', executable=main, ref_modifier='-gmm') diff --git a/bob/bio/gmm/tools/__init__.py b/bob/bio/gmm/tools/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..1903eb6d546039803703d15ad842f5d217886267 --- /dev/null +++ b/bob/bio/gmm/tools/__init__.py @@ -0,0 +1,2 @@ +from .command_line import * +from .gmm import * diff --git a/bob/bio/gmm/tools/command_line.py b/bob/bio/gmm/tools/command_line.py new file mode 100644 index 0000000000000000000000000000000000000000..e81c358814b39b918971392036d9fa70c34efbcc --- /dev/null +++ b/bob/bio/gmm/tools/command_line.py @@ -0,0 +1,65 @@ +import os +import sys +import types + +import bob.core +logger = bob.core.log.setup("bob.bio.gmm") + +from bob.bio.base.tools import FileSelector + +def add_parallel_gmm_options(parsers, additional_functions = ['gmm']): + """Add the options for parallel UBM training to the given parsers.""" + + flag_group = parsers['flag'] + flag_group.add_argument('-l', '--limit-training-data', type=int, + help = 'Limit the number of training examples used for KMeans initialization and the GMM initialization') + + flag_group.add_argument('-k', '--kmeans-start-iteration', type=int, default=0, + help = 'Specify the first iteration for the KMeans training (i.e. to restart from there)') + flag_group.add_argument('-m', '--gmm-start-iteration', type=int, default=0, + help = 'Specify the first iteration for the GMM training (i.e. to restart from there)') + flag_group.add_argument('-C', '--clean-intermediate', action='store_true', + help = 'Clean up temporary files of older iterations?') + + sub_dir_group = parsers['sub-dir'] + sub_dir_group.add_argument('--kmeans-directory', default = 'kmeans_temp', + help = 'The sub-directory (relative to --temp-directory), where intermediate kmeans files should be stored') + 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') + + + +# 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') + +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)) + +def _gmm_intermediate_file(self, round): + return os.path.join(self.gmm_temp_directory, '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)) + + +def initialize_parallel_gmm(args): + # 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 '.' + sub_dir = protocol if args.database.training_depends_on_protocol else '.' + + 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) diff --git a/bob/bio/gmm/tools/gmm.py b/bob/bio/gmm/tools/gmm.py new file mode 100644 index 0000000000000000000000000000000000000000..6c443c46ecb6b72b2194096ddedd140ee4e771df --- /dev/null +++ b/bob/bio/gmm/tools/gmm.py @@ -0,0 +1,278 @@ +import bob.io.base +import bob.learn.em +import shutil +import numpy +import os + +import logging +logger = logging.getLogger("bob.bio.gmm") + +from bob.bio.base.tools.FileSelector import FileSelector +from bob.bio.base import utils, tools + + +def kmeans_initialize(algorithm, extractor, limit_data = None, force = False): + """Initializes the K-Means training (non-parallel).""" + fs = FileSelector.instance() + + output_file = fs.kmeans_intermediate_file(0) + + if utils.check_file(output_file, force, 1000): + logger.info("UBM training: Skipping KMeans initialization since the file '%s' already exists", output_file) + else: + # read data + logger.info("UBM training: initializing kmeans") + training_list = utils.selected_elements(fs.training_list('extracted', 'train_projector'), limit_data) + data = numpy.vstack([extractor.read_feature(feature_file) for feature_file in training_list]) + + # Perform KMeans initialization + kmeans_machine = bob.learn.em.KMeansMachine(algorithm.gaussians, data.shape[1]) + # Creates the KMeansTrainer and call the initialization procedure + algorithm.kmeans_trainer.initialize(kmeans_machine, data) + bob.io.base.create_directories_safe(os.path.dirname(output_file)) + kmeans_machine.save(bob.io.base.HDF5File(output_file, 'w')) + logger.info("UBM training: saved initial KMeans machine to '%s'", output_file) + + +def kmeans_estep(algorithm, extractor, iteration, indices, force=False): + """Performs a single E-step of the K-Means algorithm (parallel)""" + if indices[0] > indices[1]: + return + + fs = FileSelector.instance() + + # check if we need to compute this step + stats_file = fs.kmeans_stats_file(iteration, indices[0], indices[1]) + new_machine_file = fs.kmeans_intermediate_file(iteration + 1) + + if utils.check_file(stats_file, force, 1000) or utils.check_file(new_machine_file, force, 1000): + logger.info("UBM training: Skipping KMeans E-Step since the file '%s' or '%s' already exists", stats_file, new_machine_file) + else: + training_list = fs.training_list('extracted', 'train_projector') + last_machine_file = fs.kmeans_intermediate_file(iteration) + kmeans_machine = bob.learn.em.KMeansMachine(bob.io.base.HDF5File(last_machine_file)) + + logger.info("UBM training: KMeans E-Step round %d from range(%d, %d)", iteration, *indices) + + # read data + data = numpy.vstack([extractor.read_feature(training_list[index]) for index in range(indices[0], indices[1])]) + + # Performs the E-step + trainer = algorithm.kmeans_trainer + trainer.e_step(kmeans_machine, data) + + # write results to file + dist = numpy.array(trainer.average_min_distance) + nsamples = numpy.array([indices[1] - indices[0]], dtype=numpy.float64) + + # write statistics + bob.io.base.create_directories_safe(os.path.dirname(stats_file)) + hdf5 = bob.io.base.HDF5File(stats_file, 'w') + hdf5.set('zeros', trainer.zeroeth_order_statistics) + hdf5.set('first', trainer.first_order_statistics) + hdf5.set('dist', dist * nsamples) + hdf5.set('nsamples', nsamples) + + logger.info("UBM training: Wrote Stats file '%s'", stats_file) + + + +def _read_stats(filename): + """Reads accumulated K-Means statistics from file""" + logger.debug("UBM training: Reading stats file '%s'", filename) + hdf5 = bob.io.base.HDF5File(filename) + zeroeth = hdf5.read('zeros') + first = hdf5.read('first') + nsamples = hdf5.read('nsamples') + dist = hdf5.read('dist') + return (zeroeth, first, nsamples, dist) + +def _accumulate(filenames): + zeroeth, first, nsamples, dist = _read_stats(filenames[0]) + for stat in filenames[1:]: + zeroeth_, first_, nsamples_, dist_ = _read_stats(filenames[1]) + zeroeth += zeroeth_ + first += first_ + nsamples += nsamples_ + dist += dist_ + return (zeroeth, first, nsamples, dist) + +def kmeans_mstep(algorithm, iteration, number_of_parallel_jobs, force=False, clean=False): + """Performs a single M-step of the K-Means algorithm (non-parallel)""" + fs = FileSelector.instance() + + old_machine_file = fs.kmeans_intermediate_file(iteration) + new_machine_file = fs.kmeans_intermediate_file(iteration+1) + + if utils.check_file(new_machine_file, force, 1000): + logger.info("UBM training: Skipping KMeans M-Step since the file '%s' already exists", new_machine_file) + else: + # get the files from e-step + training_list = fs.training_list('extracted', 'train_projector') + + # try if there is one file containing all data + if os.path.exists(fs.kmeans_stats_file(iteration, 0, len(training_list))): + stats_file = fs.kmeans_stats_file(iteration, 0, len(training_list)) + # load stats file + statistics = _read_stats(stats_file) + else: + # load several files + filenames = [] + for job in range(number_of_parallel_jobs): + job_indices = tools.indices(training_list, number_of_parallel_jobs, job+1) + if job_indices[-1] >= job_indices[0]: + filenames.append(fs.kmeans_stats_file(iteration, job_indices[0], job_indices[-1])) + statistics = _accumulate(filenames) + + # Creates the KMeansMachine + kmeans_machine = bob.learn.em.KMeansMachine(bob.io.base.HDF5File(old_machine_file)) + trainer = algorithm.kmeans_trainer + trainer.reset_accumulators(kmeans_machine) + + trainer.zeroeth_order_statistics = statistics[0] + trainer.first_order_statistics = statistics[1] + trainer.average_min_distance = statistics[3] + error = statistics[3] / statistics[2] + + # Performs the M-step + trainer.m_step(kmeans_machine, None) # data is not used in M-step + logger.info("UBM training: Performed M step %d with result %f" % (iteration, error)) + + # Save the K-Means model + bob.io.base.create_directories_safe(os.path.dirname(new_machine_file)) + kmeans_machine.save(bob.io.base.HDF5File(new_machine_file, 'w')) + + # copy the k_means file in any case + if iteration == algorithm.kmeans_training_iterations-1: + shutil.copy(new_machine_file, fs.kmeans_file) + logger.info("UBM training: Wrote new KMeans machine '%s'", fs.kmeans_file) + + if clean and iteration > 0: + old_dir = os.path.dirname(fs.kmeans_intermediate_file(iteration-1)) + logger.info("Removing old intermediate directory '%s'", old_dir) + shutil.rmtree(old_dir) + + + +def gmm_initialize(algorithm, extractor, limit_data = None, force = False): + """Initializes the GMM calculation with the result of the K-Means algorithm (non-parallel). + This might require a lot of memory.""" + fs = FileSelector.instance() + + output_file = fs.gmm_intermediate_file(0) + + if utils.check_file(output_file, force, 800): + logger.info("UBM Training: Skipping GMM initialization since '%s' already exists", output_file) + else: + logger.info("UBM Training: Initializing GMM") + + # read features + training_list = utils.selected_elements(fs.training_list('extracted', 'train_projector'), limit_data) + data = numpy.vstack([extractor.read_feature(feature_file) for feature_file in training_list]) + + # get means and variances of kmeans result + kmeans_machine = bob.learn.em.KMeansMachine(bob.io.base.HDF5File(fs.kmeans_file)) + [variances, weights] = kmeans_machine.get_variances_and_weights_for_each_cluster(data) + + # Create initial GMM Machine + gmm_machine = bob.learn.em.GMMMachine(algorithm.gaussians, data.shape[1]) + + # Initializes the GMM + gmm_machine.means = kmeans_machine.means + gmm_machine.variances = variances + gmm_machine.weights = weights + gmm_machine.set_variance_thresholds(algorithm.variance_threshold) + + # write gmm machine to file + bob.io.base.create_directories_safe(os.path.dirname(output_file)) + gmm_machine.save(bob.io.base.HDF5File(output_file, 'w')) + logger.info("UBM Training: Wrote GMM file '%s'", output_file) + + +def gmm_estep(algorithm, extractor, iteration, indices, force=False): + """Performs a single E-step of the GMM training (parallel).""" + if indices[0] > indices[1]: + return + fs = FileSelector.instance() + + stats_file = fs.gmm_stats_file(iteration, indices[0], indices[1]) + new_machine_file = fs.gmm_intermediate_file(iteration + 1) + + if utils.check_file(stats_file, force, 1000) or utils.check_file(new_machine_file, force, 1000): + loggerinfo("UBM training: Skipping GMM E-Step since the file '%s' or '%s' already exists", stats_file, new_machine_file) + else: + training_list = fs.training_list('extracted', 'train_projector') + last_machine_file = fs.gmm_intermediate_file(iteration) + gmm_machine = bob.learn.em.GMMMachine(bob.io.base.HDF5File(last_machine_file)) + + logger.info("UBM training: GMM E-Step from range(%d, %d)", indices) + + # read data + data = numpy.vstack([extractor.read_feature(training_list[index]) for index in range(indices[0], indices[1])]) + trainer = algorithm.ubm_trainer + trainer.initialize(gmm_machine, None) + + # Calls the E-step and extracts the GMM statistics + algorithm.ubm_trainer.e_step(gmm_machine, data) + gmm_stats = algorithm.ubm_trainer.gmm_statistics + + # Saves the GMM statistics to the file + bob.io.base.create_directories_safe(os.path.dirname(stats_file)) + gmm_stats.save(bob.io.base.HDF5File(stats_file, 'w')) + logger.info("UBM training: Wrote GMM stats '%s'", stats_file) + + +def gmm_mstep(algorithm, iteration, number_of_parallel_jobs, force=False, clean=False): + """Performs a single M-step of the GMM training (non-parallel)""" + fs = FileSelector.instance() + + old_machine_file = fs.gmm_intermediate_file(iteration) + new_machine_file = fs.gmm_intermediate_file(iteration + 1) + + if utils.check_file(new_machine_file, force, 1000): + logger.info("UBM training: Skipping GMM M-Step since the file '%s' already exists", new_machine_file) + else: + # get the files from e-step + training_list = fs.training_list('extracted', 'train_projector') + + # try if there is one file containing all data + if os.path.exists(fs.gmm_stats_file(iteration, 0, len(training_list))): + stats_file = fs.gmm_stats_file(iteration, 0, len(training_list)) + # load stats file + gmm_stats = bob.learn.em.GMMStats(bob.io.base.HDF5File(stats_file)) + else: + # load several files + stats_files = [] + for job in range(number_of_parallel_jobs): + job_indices = tools.indices(training_list, number_of_parallel_jobs, job+1) + if job_indices[-1] >= job_indices[0]: + stats_files.append(fs.gmm_stats_file(iteration, job_indices[0], job_indices[-1])) + + # read all stats files + gmm_stats = bob.learn.em.GMMStats(bob.io.base.HDF5File(stats_files[0])) + for stats_file in stats_files[1:]: + gmm_stats += bob.learn.em.GMMStats(bob.io.base.HDF5File(stats_file)) + + # load the old gmm machine + gmm_machine = bob.learn.em.GMMMachine(bob.io.base.HDF5File(old_machine_file)) + + # initialize the trainer + trainer = algorithm.ubm_trainer + trainer.initialize(gmm_machine) + trainer.gmm_statistics = gmm_stats + + # Calls M-step (no data required) + trainer.m_step(gmm_machine) + + # Saves the GMM statistics to the file + bob.io.base.create_directories_safe(os.path.dirname(new_machine_file)) + 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) + + if clean and iteration > 0: + old_dir = os.path.dirname(fs.gmm_intermediate_file(iteration-1)) + logger.info("Removing old intermediate directory '%s'", old_dir) + shutil.rmtree(old_dir) diff --git a/setup.py b/setup.py index eeb46e9726ee1daa8cb64ebab77b2bdd67387306..0ed1518e2de1fb936174ad1035ee133bec7d7ab8 100644 --- a/setup.py +++ b/setup.py @@ -102,6 +102,7 @@ setup( # scripts should be declared using this entry: 'console_scripts' : [ + 'verify_gmm.py = bob.bio.gmm.script.verify_gmm:main', ], 'bob.bio.database': [ @@ -111,6 +112,7 @@ setup( ], 'bob.bio.extractor': [ + 'dummy = bob.bio.gmm.test.dummy.extractor:extractor', # for test purposes only ], 'bob.bio.algorithm': [