/*- * Copyright 2015 Diamond Light Source Ltd. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package uk.ac.diamond.scisoft.xpdf.views; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import org.eclipse.dawnsci.nexus.NXentry; import org.eclipse.dawnsci.nexus.NXsample; import org.eclipse.dawnsci.nexus.NXshape; import org.eclipse.dawnsci.nexus.NexusException; import org.eclipse.dawnsci.nexus.NexusNodeFactory; import org.eclipse.dawnsci.nexus.builder.NexusFileBuilder; import org.eclipse.january.MetadataException; import org.eclipse.january.dataset.Dataset; import org.eclipse.january.dataset.DatasetFactory; import org.eclipse.january.dataset.DoubleDataset; import org.eclipse.january.dataset.Maths; import org.eclipse.january.metadata.AxesMetadata; import org.eclipse.january.metadata.MetadataFactory; import uk.ac.diamond.scisoft.xpdf.XPDFComponentCylinder; import uk.ac.diamond.scisoft.xpdf.XPDFComponentForm; import uk.ac.diamond.scisoft.xpdf.XPDFComponentGeometry; import uk.ac.diamond.scisoft.xpdf.XPDFComponentPlate; import uk.ac.diamond.scisoft.xpdf.XPDFComposition; import uk.ac.diamond.scisoft.xpdf.XPDFSubstance; import uk.ac.diamond.scisoft.xpdf.XPDFTargetComponent; /** * Holds the data relating to a sample. * @author Timothy Spain, timothy.spain@diamond.ac.uk * */ class XPDFSampleParameters { private int id; private List<XPDFPhase> phases; private List<Double> fractions; // mass fractions for the above phases. private XPDFTargetComponent component; private static final int nDim = 3; /** * default ctor */ public XPDFSampleParameters() { this.component = new XPDFTargetComponent(); this.phases = new ArrayList<XPDFPhase>(); this.fractions = new ArrayList<Double>(); } /** * Construct a new sample parameters designated as an actual sample. * @param isSample */ public XPDFSampleParameters(boolean isSample) { this(); this.component.setSample(isSample); } /** * Copy constructor */ public XPDFSampleParameters(XPDFSampleParameters inSamp) { this.component = new XPDFTargetComponent(inSamp.component); this.phases = new ArrayList<XPDFPhase>(inSamp.phases); this.fractions = new ArrayList<Double>(inSamp.fractions); } /** * @return the name of the sample */ public String getName() { return component.getName(); } /** * @param name * the name of the sample to set */ public void setName(String name) { component.setName(name); } /** * @return the id */ public int getId() { return id; } /** * @param id the id to set */ public void setId(int id) { this.id = id; } /** * @return the phases present in the sample */ public List<XPDFPhase> getPhases() { return phases; } /** * @param phases sets the phases present in the sample */ public void setPhases(List<XPDFPhase> phases) { this.phases = phases; } public void clearPhases() { this.phases = new ArrayList<XPDFPhase>(); this.fractions = new ArrayList<Double>(); } public void addPhase(XPDFPhase phase) { this.addPhase(phase, 1.0); } public void addPhase(XPDFPhase phase, double weighting) { phases.add(phase); fractions.add(phases.indexOf(phase), weighting); } public List<Double> getPhaseWeightings() { return fractions; } public void setPhaseWeightings(List<Double> weightings) { fractions = weightings; } public void setPhaseWeighting(XPDFPhase phase, double weighting) { if (phases.contains(phase)) { fractions.add(phases.indexOf(phase), weighting); } } public double getPhaseWeighting(XPDFPhase phase) { if (phases.contains(phase)) return fractions.get(phases.indexOf(phase)); else return 0.0; } /** * @return the isSample */ public boolean isSample() { return component.isSample(); } /** * Sets the object as representing a sample */ public void setAsSample() { component.setSample(true); } /** * Sets the object as a container */ public void setAsContainer() { component.setSample(false); } /** * @return the substance */ public XPDFSubstance getSubstance() { return getForm().getSubstance(); } /** * @param substance the substance to set */ public void setSubstance(XPDFSubstance substance) { getForm().setMatName(substance.getMaterialName()); } // Getters and setters for the properties of the substance /** * @return the ASCII formula of the substance */ public String getComposition() { if (phases.isEmpty()) { if (component.getForm() == null || component.getForm().getSubstance().getComposition() == null) return "-"; else return component.getForm().getSubstance().getComposition().getHallNotation(true); } else { List<XPDFComposition> phaseCompositions = new ArrayList<XPDFComposition>(); for (XPDFPhase phase : phases) phaseCompositions.add(phase.getComposition()); double totalWeight = 0.0; for (double weight : fractions) totalWeight += weight; for (XPDFComposition compo : phaseCompositions) compo.weight(fractions.get(phaseCompositions.indexOf(compo))/totalWeight); XPDFComposition totalComposition = new XPDFComposition(""); for (XPDFComposition compo : phaseCompositions) totalComposition.add(compo); return totalComposition.getHallNotation(true); } } /** * @param compoString * the composition to be set */ public void setComposition(String compoString) { if (phases.isEmpty()) getForm().setMatName(compoString); // set the typical powder packing fraction getForm().setPackingFraction(0.6); } /** * @return the crystallographic density of the material in g/cm³. */ public double getDensity() { if (phases.isEmpty()) { if (component != null && component.getForm() != null) return component.getForm().getDensity(); else return 0.0; } else { // Weighted density of all phases // TODO: check the weighting double overallDensity = 0; double totalWeight = 0.0; for (double weight : fractions) totalWeight += weight; for (XPDFPhase phase : phases) overallDensity += phase.getDensity()*getPhaseWeighting(phase)/totalWeight; return overallDensity; } } /** * @param density * the crystallographic density of the material in g/cm³. */ public void setDensity(double density) { getForm().setDensity(density); } /** * @return the powder packing fraction (probably 0.6). */ public double getPackingFraction() { return getForm().getPackingFraction(); } /** * @param fraction * the powder packing fraction to set. */ public void setPackingFraction(double fraction) { getForm().setPackingFraction(fraction); } // /** // * @return the attenuation coefficient at the suggested beam energy. // */ // public double getMu(double beamEnergy) { // return getForm().getAttenuationCoefficient(beamEnergy); // } // /** // * @return the chosen container description. // */ // public String getContainer() { // return container; // } // /** // * @param container // * the container description to set. // */ // public void setContainer(String container) { // this.container = container; // } /** * Gets the name of the shape of the sample or container. * @return the name of the shape. */ public String getShapeName() { if (getForm().getGeom() == null) return "Defined by container"; else if (getForm().getGeom() instanceof XPDFComponentCylinder) return "Cylinder"; else return "Plate"; } /** * Sets the shape of the sample of container by name. * @param shapeName name of the shape. */ public void setShape(String shapeName) { if (shapeName == null) getForm().setGeom(null); else switch(shapeName.toLowerCase()) { case("cylinder") : getForm().setGeom((getForm().getGeom() == null) ? new XPDFComponentCylinder() : new XPDFComponentCylinder(getForm().getGeom())); break; case("plate") : getForm().setGeom((getForm().getGeom() == null) ? new XPDFComponentPlate() : new XPDFComponentPlate(getForm().getGeom())); break; default: getForm().setGeom(null); } } /** * Gets the dimensions of the sample or container. * @return Size of the container as a 2-element array of floating point * numbers. */ public double[] getDimensions() { if (getForm().getGeom() == null) return null; else return getForm().getGeom().getDistances(); } /** * Sets the dimensions of the sample or container. * @param dims * dimensions of the container as a pair of floating point * numbers. */ public void setDimensions(double[] dims) { if (dims != null) { if (dims.length == 1) { getForm().getGeom().setDistances(0, dims[0]); } else if (dims.length > 1) { getForm().getGeom().setDistances(dims[0], dims[1]); } } } /** * Sets the dimensions of the sample or container. * @param inDim * inner radius (cylinder) or up-stream distance (plate). * @param outDim * outer radius (cylinder) or down-stream distance (plate). */ public void setDimensions(double inDim, double outDim) { getForm().getGeom().setDistances(inDim, outDim); } @Override public String toString() { String dataString = id + ": " + getName() + ", " + getForm().getMaterialName() + " " + getDensity() + " " + getPackingFraction(); if (getForm().getGeom() == null) dataString += " shape defined by container."; else dataString += " " + getShapeName() + " of " + getDimensions() + " mm."; return dataString; } /** * Creates a NeXus data structure from the sample. * <p> * Creates an XPDF NeXus data structure, using the supplied Nexus File * Builder, as specified. Only works for samples, for now. * @param builder * the {@link NexusFileBuilder} to write the sample data to */ public NXsample getNXsample(NexusFileBuilder builder) { // if (!isSample()) return null; NXsample sample = NexusNodeFactory.createNXsample(); NXentry sampleEntry; try { sampleEntry = builder.newEntry("entry1").getNXentry(); } catch (NexusException nE) { System.err.println("Failed to create new entry with NeXus file builder: " + nE.toString()); return null; } sampleEntry.setSample(sample); // begin building sample.setNameScalar(getName()); // sample.setShort_titleScalar(getName()); sample.setDescriptionScalar(getName() + ", " + getComposition() + ", " + getShapeName()); // comments // QR code // components int nComp = phases.size(); // Use Java 8 streams to get the contents of the phases from the list of phases sample.setComponent(DatasetFactory.createFromList(phases.stream().map(a -> a.getName()).collect(Collectors.toList()))); sample.setChemical_formula(DatasetFactory.createFromObject(phases.stream().map(a -> a.getComposition().getHallNotation(false)).collect(Collectors.toList()), nComp, 1)); sample.setField("chemical_formula_weight", DatasetFactory.createFromObject(phases.stream().map(a -> a.getComposition().getFormulaMass()).collect(Collectors.toList()))); // Only samples are crystalline, so only they have unit cell parameters if (isSample()) { // TODO: z_formula_per_unit_cell // Unit cell parameters; is there a way to make an array of arrays into a Dataset? double [] unitCellParams = new double[nComp * 2*nDim]; for (int i = 0; i < phases.size(); i++) for (int j = 0; j < nDim; j++) { unitCellParams[i * 2*nDim + j] = phases.get(i).getUnitCellLength(j); unitCellParams[i * 2*nDim + j + nDim] = phases.get(i).getUnitCellAngle(j); } sample.setUnit_cell(DatasetFactory.createFromObject(unitCellParams, nComp, 2*nDim)); String aa = "angstrom", oo = "degrees"; sample.setAttribute("unit_cell", "units", DatasetFactory.createFromObject(new String[]{aa, aa, aa, oo, oo, oo})); sample.setAttribute("unit_cell", "signal", 0); sample.setUnit_cell_volume(DatasetFactory.createFromList(phases.stream().map(a -> a.getUnitCellVolume()).collect(Collectors.toList()))); sample.setAttribute("unit_cell_volume", "units", aa+"³"); sample.setUnit_cell_class(DatasetFactory.createFromList(phases.stream().map(a -> a.getCrystalSystem().getName()).collect(Collectors.toList()))); sample.setUnit_cell_group(DatasetFactory.createFromList(phases.stream().map(a -> a.getSpaceGroup().getNumber() + ": " + a.getSpaceGroup().getName()).collect(Collectors.toList()))); // TODO: Crystal structure } // Densities and volume fractions and concentrations DoubleDataset theoreticalDensities = DatasetFactory.createFromList(DoubleDataset.class, phases.stream().map(a -> a.getDensity()).collect(Collectors.toList())); sample.setField("theoretical_density", theoreticalDensities); sample.setAttribute("theoretical_density", "units", "g cm⁻³"); // Assuming volume fraction of the total volume, not the non-void volume. // TODO: sort out mass versus volume fractions // mass fractions of the non-void matter DoubleDataset massFractions = DatasetFactory.createFromList(DoubleDataset.class, fractions); // The overall density of the powder is the sum of masses divided by the sum of masses divided by densities double overallDensity = ((double) massFractions.sum()) / ((double) Maths.divide(massFractions, theoreticalDensities).sum()); // The net density is the density of the powder times the volume fraction sample.setDensityScalar(overallDensity * this.getPackingFraction()); // volume fraction of the phase in the powder DoubleDataset volumeFractions = (DoubleDataset) Maths.multiply(Maths.divide(massFractions, theoreticalDensities), overallDensity); // volume fraction of the overall volume volumeFractions.imultiply(this.getPackingFraction()); // concentrations: mass divided by total volume DoubleDataset concentrations = (DoubleDataset) Maths.multiply(theoreticalDensities, volumeFractions); sample.setConcentration(concentrations); sample.setVolume_fraction(volumeFractions); // total mass of the sample // Actual beam added during data collection, proposed beam not contained in this class { // TODO: Theoretical PDF not yet calculable } // add a shape to the sample, if the geometry is not null. if (component.getForm().getGeom() != null) { NXshape shape = NexusNodeFactory.createNXshape(); XPDFComponentGeometry geom = component.getForm().getGeom(); switch (geom.getShape().toLowerCase()) { case ("cylinder") : shape.setShapeScalar("nxcylinder"); break; case ("plate") : shape.setShapeScalar("nxbox"); break; } sample.addGroupNode("shape", shape); } // Dark frame added during data collection // Calibration added during data collection (at least of the calibration) // Mask added during data collection // Sample images added during data collection return sample; } // Simulate the pair distribution function of that this sample parameterizes public Dataset getSimulatedPDF() { // TODO Make this actually simulate a PDF Dataset r = DatasetFactory.createRange(DoubleDataset.class, 0.01, 50.0, 0.02); Dataset ceria = DatasetFactory.createFromList(Arrays.asList(new Double[] { -0.051018955, -0.14392168, -0.21143420, -0.24290696, -0.23565999, -0.19560127, -0.13595894, -0.074397602, -0.029142807, -0.014957260, -0.039850182, -0.10324699, -0.19603303, -0.30247881, -0.40364252, -0.48151786, -0.52302439, -0.52296111, -0.48526083, -0.42224711, -0.35202960, -0.29458426, -0.26736157, -0.28138217, -0.33868693, -0.43172488, -0.54484657, -0.65761097, -0.74921198, -0.80307361, -0.81061042, -0.77331549, -0.70268941, -0.61798534, -0.54221839, -0.49726864, -0.49911180, -0.55419493, -0.65773729, -0.79433115, -0.94073036, -1.0702532, -1.1578907, -1.1850721, -1.1431315, -1.0348069, -0.87353643, -0.68078045, -0.48200395, -0.30219915, -0.16187523, -0.074278203, -0.044279620, -0.068968073, -0.13959259, -0.24423227, -0.37046522, -0.50739877, -0.64667192, -0.78237802, -0.91018835, -1.0261925, -1.1260450, -1.2048960, -1.2583144, -1.2840582, -1.2842072, -1.2669480, -1.2472656, -1.2459789, -1.2869303, -1.3926212, -1.5790544, -1.8508842, -2.1980720, -2.5950610, -3.0030242, -3.3751043, -3.6638719, -3.8296592, -3.8481067, -3.7153008, -3.4492780, -3.0873815, -2.6798141, -2.2805662, -1.9375141, -1.6837242, -1.5318099, -1.4725702, -1.4782408, -1.5096778, -1.5259157, -1.4939805, -1.3967451, -1.2370131, -1.0368347, -0.83212149, -0.66369730, -0.56676134, -0.56115098, -0.64467233, -0.79113562, -0.95372159, -1.0731361, -1.0889446, -0.95175365, -0.63369237, -0.13498928, 0.51473392, 1.2607044, 2.0318595, 2.7524579, 3.3540458, 3.7853998, 4.0186056, 4.0503653, 3.8987153, 3.5963424, 3.1823536, 2.6945551, 2.1639826, 1.6126974, 1.0549170, 0.50062576, -0.039844647, -0.55199892, -1.0155944, -1.4060734, -1.6988709, -1.8755449, -1.9300221, -1.8730438, -1.7332203, -1.5538835, -1.3859926, -1.2784312, -1.2678375, -1.3704249, -1.5779434, -1.8590642, -2.1662054, -2.4464728, -2.6542852, -2.7626903, -2.7705273, -2.7034534, -2.6082639, -2.5415668, -2.5553377, -2.6828067, -2.9282491, -3.2634965, -3.6324840, -3.9632282, -4.1847425, -4.2450005, -4.1255365, -3.8488004, -3.4759067, -3.0946209, -2.7998275, -2.6707361, -2.7502109, -3.0314986, -3.4562326, -3.9251446, -4.3199287, -4.5318480, -4.4906387, -4.1865941, -3.6796660, -3.0919071, -2.5831382, -2.3136385, -2.4010428, -2.8807084, -3.6789998, -4.6070631, -5.3789822, -5.6533835, -5.0925554, -3.4290085, -0.52704872, 3.5730423, 8.6381051, 14.257734, 19.891803, 24.943215, 28.844216, 31.141714, 31.566819, 30.076364, 26.859091, 22.305424, 16.946288, 11.371828, 6.1442653, 1.7197961, -1.6077109, -3.7328225, -4.7319016, -4.8271867, -4.3301518, -3.5759193, -2.8612879, -2.3972877, -2.2835334, -2.5068727, -2.9619237, -3.4870697, -3.9070762, -4.0730810, -3.8922186, -3.3421001, -2.4690404, -1.3724599, -0.18054088, 0.97650859, 1.9894972, 2.7851169, 3.3306010, 3.6288000, 3.7065167, 3.6002291, 3.3434584, 2.9590588, 2.4579710, 1.8439627, 1.1221432, 0.30800953, -0.56629121, -1.4509301, -2.2834922, -2.9992898, -3.5444133, -3.8881174, -4.0311279, -4.0073525, -3.8780790, -3.7196302, -3.6071543, -3.5983021, -3.7207138, -3.9664239, -4.2946919, -4.6427408, -4.9419382, -5.1355541, -5.1937376, -5.1219035, -4.9602118, -4.7739084, -4.6365019, -4.6095538, -4.7238215, -4.9663793, -5.2771466, -5.5562421, -5.6811891, -5.5307660, -5.0107286, -4.0760808, -2.7451640, -1.1024500, 0.71079825, 2.5163899, 4.1258938, 5.3691589, 6.1194341, 6.3106849, 5.9443881, 5.0852390, 3.8473462, 2.3741665, 0.81632668, -0.68854920, -2.0307613, -3.1364074, -3.9680767, -4.5197120, -4.8079743, -4.8627613, -4.7191753, -4.4123860, -3.9757433, -3.4414905, -2.8427523, -2.2152864, -1.5977897, -1.0302059, -0.55028241, -0.18929300, 0.031796000, 0.10451787, 0.032727960, -0.16994399, -0.48426160, -0.88988159, -1.3687550, -1.9063189, -2.4900805, -3.1061028, -3.7347366, -4.3474344, -4.9064293, -5.3684215, -5.6922890, -5.8495054, -5.8347541, -5.6735471, -5.4237565, -5.1689398, -5.0030689, -5.0084181, -5.2304478, -5.6550156, -6.1937002, -6.6822016, -6.8947007, -6.5740455, -5.4742508, -3.4087526, -0.29584553, 3.8077293, 8.6927431, 14.007693, 19.293820, 24.040909, 27.755773, 30.032563, 30.613167, 29.427314, 26.605225, 22.460352, 17.444884, 12.085442, 6.9096919, 2.3760007, -1.1826382, -3.5920533, -4.8436775, -5.0754912, -4.5324286, -3.5147921, -2.3246635, -1.2197639, -0.38192479, 0.096149275, 0.20602762, 0.0042890612, -0.41508930, -0.94973662, -1.5129991, -2.0488126, -2.5356707, -2.9807697, -3.4075997, -3.8414135, -4.2969560, -4.7716848, -5.2458269, -5.6885172, -6.0675211, -6.3590761, -6.5544504, -6.6608488, -6.6960279, -6.6779346, -6.6123407, -6.4823449, -6.2434947, -5.8271157, -5.1524800, -4.1461404, -2.7646667, -1.0156690, 1.0282457, 3.2269266, 5.3837893, 7.2700488, 8.6586646, 9.3622390, 9.2678286, 8.3617394, 6.7389147, 4.5942284, 2.1963478, -0.15182913, -2.1595022, -3.5929800, -4.3113910, -4.2867433, -3.6048354, -2.4470341, -1.0564485, 0.30515512, 1.4017564, 2.0607865, 2.1975581, 1.8224960, 1.0305844, -0.024171337, -1.1637060, -2.2230718, -3.0824062, -3.6874740, -4.0549618, -4.2617903, -4.4209041, -4.6486841, -5.0307984, -5.5936677, -6.2876961, -6.9862217, -7.5011741, -7.6132396, -7.1115168, -5.8357068, -3.7131815, -0.78393947, 2.7916095, 6.7442373, 10.725781, 14.353078, 17.259260, 19.144346, 19.817103, 19.221503, 17.443598, 14.697822, 11.295102, 7.5980454, 3.9704998, 0.72949540, -1.8930340, -3.7732510, -4.9003944, -5.3641472, -5.3277646, -4.9925695, -4.5605633, -4.2017541, -4.0314537, -4.1005409, -4.3989940, -4.8704125, -5.4332754, -6.0037009, -6.5146344, -6.9276136, -7.2352474, -7.4548280, -7.6155746, -7.7434133, -7.8476401, -7.9132063, -7.9008734, -7.7554523, -7.4202698, -6.8543606, -6.0480719, -5.0329834, -3.8832462, -2.7073681, -1.6316720, -0.77862797, -0.24453731, -0.081326402, -0.28641037, -0.80288183, -1.5300535, -2.3421433, -3.1111515, -3.7291447, -4.1254153, -4.2752705, -4.1991960, -3.9533703, -3.6144225, -3.2624765, -2.9666193, -2.7759716, -2.7177631, -2.8016964, -3.0279907, -3.3953424, -3.9049863, -4.5581522, -5.3462628, -6.2357102, -7.1513277, -7.9640993, -8.4887218, -8.4951843, -7.7357237, -5.9849006, -3.0868999, 0.99863596, 6.1621200, 12.129893, 18.476522, 24.664983, 30.110841, 34.261380, 36.676978, 37.100527, 35.501970, 32.088861, 27.279703, 21.643506, 15.815268, 10.401693, 5.8934049, 2.5987598, 0.61038415, -0.19060605, -0.094782995, 0.50237820, 1.1808351, 1.5743942, 1.4327601, 0.65659545, -0.69923960, -2.4525867, -4.3434612, -6.0944681, -7.4690679, -8.3159303, -8.5913405, -8.3568427, -7.7548257, -6.9693566, -6.1822844, -5.5349505, -5.1037966, -4.8943335, -4.8532729, -4.8942674, -4.9296390, -4.8994057, -4.7900175, -4.6381619, -4.5190328, -4.5225670, -4.7243125, -5.1590438, -5.8046017, -6.5808816, -7.3650238, -8.0196323, -8.4272951, -8.5227005, -8.3137637, -7.8854408, -7.3838279, -6.9828457, -6.8402025, -7.0523653, -7.6191800, -8.4272886, -9.2578252, -9.8187972, -9.7971470, -8.9209350, -7.0194056, -4.0685292, -0.21205158, 4.2473370, 8.8863020, 13.222400, 16.787973, 19.203025, 20.233826, 19.826761, 18.111665, 15.374720, 12.006629, 8.4361812, 5.0616349, 2.1921885, 0.0092914624, -1.4466634, -2.2637822, -2.6245792, -2.7583555, -2.8899233, -3.1944025, -3.7658266, -4.6040232, -5.6204283, -6.6599553, -7.5334329, -8.0538433, -8.0697312, -7.4904830, -6.3002775, -4.5598412, -2.3972226, 0.0097310959, 2.4557968, 4.7323013, 6.6496640, 8.0564227, 8.8533549, 9.0018876, 8.5263666, 7.5100171, 6.0847044, 4.4150460, 2.6780847, 1.0405633, -0.36334112, -1.4504139, -2.1995037, -2.6526043, -2.9046411, -3.0827043, -3.3177008, -3.7133434, -4.3185703, -5.1094892, -5.9856130, -6.7826289, -7.3006450, -7.3434525, -6.7615704, -5.4903820, -3.5749745, -1.1754186, 1.4501379, 3.9827359, 6.0940551, 7.5025729, 8.0234888, 7.6022503, 6.3244792, 4.3997092, 2.1216762, -0.18717590, -2.2358625, -3.8174218, -4.8430187, -5.3505103, -5.4857684, -5.4608855, -5.4984306, -5.7740459, -6.3701669, -7.2513553, -8.2671022, -9.1819743, -9.7269166, -9.6607403, -8.8283666, -7.2028558, -4.9015651, -2.1722579, 0.64853763, 3.1965601, 5.1475649, 6.2775221, 6.5024937, 5.8897199, 4.6376371, 3.0292856, 1.3693871, -0.081017760, -1.1578851, -1.8235365, -2.1654060, -2.3642505, -2.6387359, -3.1787201, -4.0823595, -5.3117129, -6.6778833, -7.8606476, -8.4602567, -8.0721698, -6.3703747, -3.1827279, 1.4571041, 7.2922253, 13.864173, 20.570731, 26.750052, 31.776304, 35.150012, 36.567512, 35.958092, 33.483600, 29.502269, 24.504800, 19.035285, 13.611363, 8.6570877, 4.4585424, 1.1471861, -1.2896253, -2.9764403, -4.1046815, -4.8848989, -5.5055348, -6.1047915, -6.7585470, -7.4834969, -8.2516346, -9.0104253, -9.7028073, -10.282340, -10.720961, -11.009254, -11.151265, -11.157135, -11.036982, -10.798551, -10.449505, -10.003372, -9.4866393, -8.9437307, -8.4368614, -8.0390231, -7.8202443, -7.8293666, -8.0752866, -8.5124675, -9.0352342, -9.4839240, -9.6636227, -9.3734877, -8.4421194, -6.7627065, -4.3211364, -1.2111222, 2.3674821, 6.1280267, 9.7316604, 12.831885, 15.121856, 16.376635, 16.483457, 15.455210, 13.425311, 10.625365, 7.3498882, 3.9143321, 0.61345134, -2.3134927, -4.7058105, -6.4902495, -7.6757652, -8.3366876, -8.5884725, -8.5610125, -8.3743051, -8.1202669, -7.8529301, -7.5875041, -7.3071799, -6.9753663, -6.5504242, -5.9999348, -5.3120055, -4.5019143, -3.6133287, -2.7142276, -1.8883812, -1.2237400, -0.79935115, -0.67249189, -0.86763264, -1.3686680, -2.1155841, -3.0063720, -3.9045260, -4.6518815, -5.0858634, -5.0595136, -4.4620309, -3.2371368, -1.3964934, 0.97426415, 3.7185341, 6.6212850, 9.4302263, 11.883323, 13.739213, 14.806424, 14.967214, 14.192540, 12.545865, 10.175200, 7.2945621, 4.1576436, 1.0276443, -1.8523099, -4.2840034, -6.1310260, -7.3259976, -7.8680819, -7.8123459, -7.2537386, -6.3090896, -5.1004743, -3.7426055, -2.3357593, -0.96437098, 0.29985796, 1.3924694, 2.2509485, 2.8120343, 3.0133548, 2.7999856, 2.1352448, 1.0138383, -0.52539534, -2.3902396, -4.4321949, -6.4519204, -8.2137343, -9.4683561, -9.9815515, -9.5651036, -8.1057851, -5.5879096, -2.1056298, 2.1376281, 6.8435095, 11.645854, 16.147716, 19.963877, 22.763486, 24.307256, 24.474261, 23.274677, 20.846755, 17.438467, 13.376409, 9.0263509, 4.7509003, 0.87006725, -2.3701067, -4.8170691, -6.4175991, -7.2103197, -7.3072713, -6.8684833, -6.0742820, -5.0999962, -4.0968081, -3.1809527, -2.4315970, -1.8959303, -1.5986154, -1.5520780, -1.7642682, -2.2414692, -2.9852407, -3.9843186, -5.2038605, -6.5754529, -7.9915207, -9.3071269, -10.350704, -10.943330, -10.924125, -10.177673, -8.6584526, -6.4072861, -3.5559326, -0.31788374, 3.0341257, 6.2009055, 8.8949088, 10.877539, 11.989579, 12.169822, 11.459066, 9.9892567, 7.9601634, 5.6081135, 3.1724619, 0.86555255, -1.1491421, -2.7679453, -3.9465645, -4.6902326, -5.0380197, -5.0457540, -4.7717599, -4.2684340, -3.5808404, -2.7514724, -1.8285754, -0.87439593, 0.030353904, 0.78860459, 1.2966938, 1.4607755, 1.2168752, 0.55019845, -0.49113544, -1.7920847, -3.1788527, -4.4392897, -5.3529954, -5.7263545, -5.4263630, -4.4069186, -2.7223325, -0.52500929, 1.9529077, 4.4311531, 6.6209664, 8.2659839, 9.1774504, 9.2579362, 8.5099705, 7.0288628, 4.9818977, 2.5784701, 0.037106640, -2.4445423, -4.7117439, -6.6637941, -8.2537425, -9.4786930, -10.364455, -10.949138, -11.269999, -11.356504, -11.230639, -10.913294, -10.433796, -9.8386403, -9.1955498, -8.5900757, -8.1139229, -7.8464541, -7.8329598, -8.0646972, -8.4660321, -8.8931096, -9.1464625, -8.9972050, -8.2235268, -6.6517156, -4.1944406, -0.87891070, 3.1411454, 7.5931391, 12.112999, 16.288807, 19.714237, 22.043421, 23.038504, 22.602258, 20.790702, 17.804008, 13.957612, 9.6386219, 5.2547756, 1.1839763, -2.2681768, -4.8973554, -6.6131334, -7.4353716, -7.4770326, -6.9178881, -5.9743113, -4.8699980, -3.8112552, -2.9688122, -2.4664022, -2.3750488, -2.7113396, -3.4380658, -4.4663200, -5.6591703, -6.8379885, -7.7930343, -8.2997226, -8.1410787, -7.1353558, -5.1659999, -2.2095621, 1.6437651, 6.1821992, 11.080930, 15.928752, 20.271238, 23.665718, 25.740594, 26.249927, 25.114149, 22.439396, 18.510999, 13.760841, 8.7125842, 3.9126835, -0.14237302, -3.0712987, -4.6556019, -4.8623329, -3.8389629, -1.8820408, 0.61442366, 3.2217392, 5.5399044, 7.2514507, 8.1578613, 8.1941745, 7.4214610, 6.0007224, 4.1546799, 2.1254078, 0.13562874, -1.6401225, -3.0909149, -4.1709359, -4.8894486, -5.2935439, -5.4488717, -5.4231202, -5.2755514, -5.0538163, -4.7971155, -4.5430589, -4.3347143, -4.2244856, -4.2725553, -4.5393485, -5.0733779, -5.8974084, -6.9967297, -8.3132010, -9.7476441, -11.171328, -12.445143, -13.443098, -14.075463, -14.306549, -14.162931, -13.729646, -13.134315, -12.521636, -12.022837, -11.725901, -11.652512, -11.746586, -11.877194, -11.856053, -11.467015, -10.502787, -8.8027000, -6.2851358, -2.9691176, 1.0185709, 5.4519554, 10.028811, 14.404454, 18.231371, 21.199054, 23.068725, 23.698702, 23.057731, 21.225386, 18.380308, 14.778399, 10.723990, 6.5374415, 2.5226858, -1.0620394, -4.0274799, -6.2684693, -7.7693507, -8.5990343, -8.8959654, -8.8443597, -8.6441959, -8.4785121, -8.4823363, -8.7178765, -9.1602364, -9.6968057, -10.141665, -10.264040, -9.8273814, -8.6335066, -6.5647824, -3.6170143, 0.083369703, 4.2820903, 8.6208890, 12.680114, 16.034274, 18.312264, 19.252756, 18.745611, 16.852197, 13.800765, 9.9570861, 5.7746466, 1.7320517, -1.7325972, -4.2801824, -5.7130337, -5.9952800, -5.2487177, -3.7258232, -1.7651050, 0.26347118, 2.0141243, 3.2135017, 3.6948043, 3.4137673, 2.4455795, 0.96478673, -0.78743110, -2.5428157, -4.0462580, -5.0911291, -5.5454499, -5.3663347, -4.6019148, -3.3815268, -1.8961797, -0.37213362, 0.95913101, 1.8911373, 2.2695003, 2.0128358, 1.1249287, -0.30367856, -2.1055084, -4.0569284, -5.9079517, -7.4176088, -8.3901664, -8.7067185, -8.3467148, -7.3949783, -6.0316941, -4.5055002, -3.0927967, -2.0491595, -1.5607522, -1.7043795, -2.4240422, -3.5295333, -4.7190576, -5.6236495, -5.8670578, -5.1315556, -3.2184872, -0.092690400, 4.0977414, 9.0308927, 14.249225, 19.221055, 23.415635, 26.379628, 27.802365, 27.559178, 25.725836, 22.562150, 18.468075, 13.920272, 9.4001816, 5.3257164, 1.9975688, -0.43191397, -1.9636176, -2.7313804, -2.9618892, -2.9231595, -2.8713719, -3.0053607, -3.4359519, -4.1741327, -5.1383834, -6.1781180, -7.1076654, -7.7439344, -7.9409704, -7.6158449, -6.7623738, -5.4515594, -3.8199169, -2.0486121, -0.33737044, 1.1226260, 2.1730478, 2.7070076, 2.6801064, 2.1132250, 1.0873251, -0.26869615, -1.7954762, -3.3239331, -4.6969418, -5.7894131, -6.5242470, -6.8818688, -6.9016333, -6.6743161, -6.3261666, -5.9964196, -5.8115174, -5.8602763, -6.1745751, -6.7196446, -7.3966671, -8.0582978, -8.5352437, -8.6696477, -8.3492393, -7.5354845, -6.2795503, -4.7218186, -3.0736470, -1.5835668, -0.49342670, 0.0075569950, -0.17811109, -1.0321636, -2.4172693, -4.0963549, -5.7720088, -7.1392700, -7.9420845, -8.0225005, -7.3526155, -6.0422800, -4.3200942, -2.4904396, -0.87414807, 0.25606993, 0.73288593, 0.53276723, -0.21266877, -1.2355361, -2.1781828, -2.6592772, -2.3474623, -1.0288251, 1.3446906, 4.6354440, 8.5331371, 12.598969, 16.333365, 19.255365, 20.979588, 21.277209, 20.110312, 17.633990, 14.166392, 10.132778, 5.9941161, 2.1733552, -1.0075000, -3.3687194, -4.8861066, -5.6750739, -5.9498496, -5.9666099, -5.9620437, -6.0993698, -6.4320889, -6.8921540, -7.3044854, -7.4247481, -6.9929623, -5.7926169, -3.7039878, -0.74146810, 2.9323444, 7.0188430, 11.120215, 14.794794, 17.621635, 19.263382, 19.516804, 18.342582, 15.869514, 12.372756, 8.2301571, 3.8644473, -0.31867510, -3.9860078, -6.9166857, -9.0202232, -10.330658, -10.979109, -11.151004, -11.036966, -10.787396, -10.479841, -10.105636, -9.5783084, -8.7617925, -7.5123899, -5.7254131, -3.3762954, -0.54680864, 2.5701506, 5.6895117, 8.4741742, 10.589319, 11.760662, 11.825196, 10.764081, 8.7105221, 5.9303266, 2.7781911, -0.36225456, -3.1432022, -5.3095925, -6.7369769, -7.4428069, -7.5690039, -7.3395696, -7.0022312, -6.7665565, -6.7518690, -6.9563802, -7.2545930, -7.4240808, -7.1964424, -6.3219078, -4.6338759, -2.0993254, 1.1563114, 4.8560970, 8.6100862, 11.978469, 14.547179, 16.000970, 16.179300, 15.103702, 12.971161, 10.114903, 6.9407526, 3.8521067, 1.1788371, -0.87564941, -2.2589797, -3.0619792, -3.4813619, -3.7621171, -4.1329327, -4.7492060, -5.6561876, -6.7800613, -7.9483431, -8.9343236, -9.5148627, -9.5278860, -8.9160657, -7.7463742, -6.2007349, -4.5396129, -3.0466022, -1.9664612, -1.4506386, -1.5227470, -2.0720344, -2.8766567, -3.6518734, -4.1126699, -4.0370262, -3.3158352, -1.9783914, -0.18776108, 1.7929878, 3.6562695, 5.1149604, 5.9625943, 6.1156047, 5.6284858, 4.6787884, 3.5255598, 2.4506822, 1.6962542, 1.4118936, 1.6234655, 2.2298261, 3.0278397, 3.7596139, 4.1710244, 4.0682527, 3.3597388, 2.0744679, 0.35304061, -1.5857644, -3.4946712, -5.1519749, -6.4073268, -7.2086776, -7.6043704, -7.7202825, -7.7178279, -7.7431791, -7.8801997, -8.1188191, -8.3470841, -8.3696973, -7.9497253, -6.8647243, -4.9650184, -2.2210742, 1.2509738, 5.1920489, 9.2315427, 12.941767, 15.904961, 17.779791, 18.354510, 17.576880, 15.555923, 12.536407, 8.8524368, 4.8704202, 0.93318209, -2.6840388, -5.7983319, -8.3219572, -10.245697, -11.609299, -12.467999, -12.864241, -12.811680, -12.294881, -11.283788, -9.7580816, -7.7339303, -5.2849619, -2.5506944, 0.27122368, 2.9485642, 5.2494567, 6.9813274, 8.0252000, 8.3575026, 8.0541649, 7.2756671, 6.2359176, 5.1614184, 4.2492948, 3.6329528, 3.3623497, 3.4025465, 3.6501327, 3.9632023, 4.1977077, 4.2418422, 4.0408419, 3.6070321, 3.0134825, 2.3734356, 1.8108626, 1.4293575, 1.2867179, 1.3809962, 1.6509436, 1.9903241, 2.2723586, 2.3783155, 2.2235039, 1.7747663, 1.0557843, 0.13952654, -0.86975055, -1.8601328, -2.7353195, -3.4318665, -3.9264301, -4.2316868, -4.3825278, -4.4166242, -4.3549098, -4.1875890, -3.8699341, -3.3297104, -2.4851463, -1.2696384, 0.34248538, 2.3153925, 4.5417278, 6.8463812, 9.0043625, 10.770075, 11.912815, 12.251974, 11.685437, 10.206099, 7.9038101, 4.9529858, 1.5888147, -1.9230433, -5.3175681, -8.3570618, -10.849701, -12.658454, -13.701163, -13.944424, -13.394888, -12.091526, -10.101334, -7.5192648, -4.4713103, -1.1181108, 2.3442428, 5.6893236, 8.6732763, 11.055490, 12.624859, 13.227621, 12.791678, 11.342328, 9.0054941, 5.9966180, 2.5960367, -0.88577357, -4.1476640, -6.9355712, -9.0723784, -10.475117, -11.157078, -11.215157, -10.805401, -10.111693, -9.3134813, -8.5582775, -7.9433212, -7.5088084, -7.2426723, -7.0947152, -6.9962741, -6.8808597, -6.7014248, -6.4409726, -6.1148316, -5.7647420, -5.4465327, -5.2143242, -5.1046822, -5.1239483, -5.2411860, -5.3880243, -5.4654006, -5.3560503, -4.9407402, -4.1157996, -2.8094644, -0.99486877, 1.3019357, 3.9998767, 6.9669278, 10.029955, 12.989398, 15.637380, 17.777492, 19.244284, 19.920374, 19.749262, 18.742218, 16.978210, 14.596614, 11.783343, 8.7519409, 5.7219273, 2.8971256, 0.44675652, -1.5083508, -2.9028748, -3.7269665, -4.0197257, -3.8578382, -3.3416652, -2.5812513, -1.6843962, -0.74821746, 0.14532221, 0.93039804, 1.5560202, 1.9839855, 2.1875041, 2.1513958, 1.8739628, 1.3698358, 0.67247511, -0.16521486, -1.0734424, -1.9718514, -2.7792266, -3.4251884, -3.8617055, -4.0719394, -4.0742152, -3.9197637, -3.6841517, -3.4537247, -3.3096004, -3.3124723, -3.4914922, -3.8397592, -4.3175691, -4.8628611, -5.4066148, -5.8896965, -6.2771455, -6.5662830, -6.7862863, -6.9887463, -7.2308301, -7.5545365, -7.9667193, -8.4247718, -8.8320094, -9.0449895, -8.8926210, -8.2044155, -6.8431506, -4.7359973, -1.8980910, 1.5563559, 5.4181978, 9.4028605, 13.182565, 16.426355, 18.841658, 20.210907, 20.417706, 19.458964, 17.441840, 14.566877, 11.100791, 7.3436757, 3.5957567, 0.12822024, -2.8386371, -5.1483879, -6.7127024, -7.5082792, -7.5687052, -6.9736124, -5.8371023, -4.2966789, -2.5031356, -0.61121173, 1.2294407, 2.8833396, 4.2382424, 5.2135806, 5.7671518, 5.8987397, 5.6495006, 5.0965140, 4.3427397, 3.5035544, 2.6918238, 2.0038825, 1.5087185, 1.2420744, 1.2061994, 1.3748336, 1.7019385, 2.1319745, 2.6093215, 3.0848195, 3.5182638, 3.8768305, 4.1305488, 4.2467837, 4.1860407, 3.9011316, 3.3409148, 2.4586140, 1.2234231, -0.36697128, -2.2758934, -4.4220678, -6.6809949, -8.8941218, -10.885064, -12.480653, -13.533499, -13.942322, -13.666595, -12.733018, -11.232815, -9.3104408, -7.1457613, -4.9327490, -2.8581003, -1.0828615, 0.27072430, 1.1261383, 1.4535056, 1.2657434, 0.61173838, -0.43160150, -1.7669790, -3.2832910, -4.8611911, -6.3782544, -7.7146113, -8.7597482, -9.4206407, -9.6306517, -9.3579190, -8.6114962, -7.4434854, -5.9458498, -4.2414846, -2.4702491, -0.77178224, 0.73224246, 1.9534348, 2.8468777, 3.4143549, 3.7000743, 3.7797798, 3.7454181, 3.6883580, 3.6843503, 3.7829420, 4.0030094, 4.3347002, 4.7466855, 5.1965317, 5.6414582, 6.0468577, 6.3906949, 6.6630650, 6.8615117, 6.9838468, 7.0209022, 6.9517083, 6.7430134, 6.3539627, 5.7454062, 4.8920254, 3.7945612, 2.4891258, 1.0509726, -0.40888794, -1.7544167, -2.8412831, -3.5369834, -3.7409323, -3.4010192, -2.5237206, -1.1760185, 0.52114746, 2.4066984, 4.2981345, 6.0121329, 7.3839733, 8.2832773, 8.6244956, 8.3716770, 7.5380587, 6.1817038, 4.3986636, 2.3149781, 0.078336980, -2.1503692, -4.2058853, -5.9283189, -7.1741267, -7.8282389, -7.8165075, -7.1169478, -5.7677544, -3.8699932, -1.5833027, 0.88613620, 3.3048350, 5.4365439, 7.0690443, 8.0394128, 8.2539247, 7.6994160, 6.4441831, 4.6281646, 2.4438838, 0.11112239, -2.1507464, -4.1485963, -5.7358818, -6.8249142, -7.3900331, -7.4622120, -7.1169941, -6.4585361, -5.6028143, -4.6627145, -3.7369187, -2.9034287, -2.2174937, -1.7128605, -1.4048134, -1.2934641, -1.3661510, -1.5984528, -1.9540402, -2.3841727, -2.8279471, -3.2143582, -3.4668421, -3.5103615, -3.2803924, -2.7325748, -1.8514257, -0.65647431, 0.79552578, 2.4130797, 4.0771795, 5.6525855, 7.0018521, 8.0003904, 8.5507350, 8.5943102, 8.1193363, 7.1639836, 5.8144091, 4.1978127, 2.4711042, 0.80615013, -0.62712021, -1.6782301, -2.2326098, -2.2252476, -1.6498807, -0.56234521, 0.92280278, 2.6425774, 4.4020878, 5.9957134, 7.2305370, 7.9490996, 8.0483885, 7.4923079, 6.3156904, 4.6191024, 2.5550795, 0.30777569, -1.9309462, -3.9854027, -5.7164462, -7.0354575, -7.9103123, -8.3630819, -8.4606346, -8.3004008, -7.9941568, -7.6526590, -7.3733640, -7.2324729, -7.2813794, -7.5465861, -8.0315094, -8.7184806, -9.5696821, -10.526593, -11.508536, -12.411803, -13.111316, -13.466696, -13.333835, -12.581862, -11.113829, -8.8880771, -5.9363000, -2.3741238, 1.5992139, 5.7139556, 9.6553627, 13.099014, 15.751090, 17.387506, 17.885497, 17.242119, 15.576156, 13.112608, 10.151915, 7.0287210, 4.0667846, 1.5372815, -0.37295211, -1.5785436, -2.0960742, -2.0289079, -1.5400313, -0.81848176, -0.045723786, 0.63213104, 1.1219155, 1.3887585, 1.4496782, 1.3581580, 1.1839761, 0.99310874, 0.83201765, 0.71925655, 0.64542377, 0.58049765, 0.48595817, 0.32816362, 0.089389345, -0.22628136, -0.59360974, -0.97309465, -1.3222206, -1.6080704, -1.8179287, -1.9649253, -2.0868824, -2.2380998, -2.4754706, -2.8417134, -3.3493252, -3.9689268, -4.6249691, -5.2004354, -5.5504779, -5.5232003, -4.9843815, -3.8420843, -2.0669712, 0.29524478, 3.1215638, 6.2204293, 9.3504703, 12.246786, 14.651200, 16.342390, 17.161864, 17.032443, 15.966959, 14.066259, 11.506974, 8.5208217, 5.3681573, 2.3091453, -0.42392919, -2.6499287, -4.2550696, -5.2003653, -5.5197361, -5.3094044, -4.7102996, -3.8860774, -2.9998938, -2.1931769, -1.5692813, -1.1841259, -1.0448030, -1.1158811, -1.3318937, -1.6135344, -1.8845280, -2.0861355, -2.1867877, -2.1853370, -2.1076903, -1.9978895, -1.9057888, -1.8741108, -1.9277228, -2.0674332, -2.2695802, -2.4913888, -2.6807767, -2.7882883, -2.7783518, -2.6371999, -2.3755568, -2.0254074, -1.6315645, -1.2400199, -0.88591007, -0.58413461, -0.32516322, -0.077445449, 0.20367885, 0.56224621, 1.0260730, 1.5929362, 2.2220688, 2.8336001, 3.3170230, 3.5478831, 3.4100511, 2.8195612, 1.7453739, 0.22272864, -1.6440522, -3.6905695, -5.7122305, -7.4920008, -8.8314720, -9.5799921, -9.6568928, -9.0630649, -7.8800372, -6.2569331, -4.3877749, -2.4831852, -0.74131162, 0.67734119, 1.6674700, 2.1868145, 2.2540236, 1.9380268, 1.3416748, 0.58304755, -0.22226584, -0.97531847, -1.6029033, -2.0613314, -2.3356725, -2.4358977, -2.3915338, -2.2461550, -2.0524401, -1.8678412, -1.7503609, -1.7537083, -1.9212718, -2.2788781, -2.8270448, -3.5341602, -4.3324954, -5.1189795, -5.7621593, -6.1157519, -6.0378699, -5.4136076, -4.1775556, -2.3322309, 0.041424403, 2.7843771, 5.6719528, 8.4376673, 10.805650, 12.527172, 13.415781, 13.375494, 12.417332, 10.661271, 8.3229008, 5.6865269, 3.0686094, 0.77690738, -0.92867466, -1.8679302, -1.9605430, -1.2321991, 0.19359558, 2.1160841, 4.2866056, 6.4420955, 8.3378813, 9.7754425, 10.621925, 10.819680, 10.385648, 9.4017953, 7.9988293, 6.3359808, 4.5797283, 2.8840548, 1.3742591, 0.13565453, -0.79220792, -1.4157667, -1.7825955, -1.9723027, -2.0842837, -2.2236211, -2.4865568, -2.9470355, -3.6457935, -4.5833227, -5.7177210, -6.9679631, -8.2224894, -9.3523086, -10.227121, -10.732433, -10.785350, -10.346785, -9.4282188, -8.0919027, -6.4443037, -4.6236190, -2.7830809, -1.0724095, 0.37996028, 1.4814050, 2.1844654, 2.4899267, 2.4435025, 2.1269419, 1.6451370, 1.1112689, 0.63213674, 0.29558771, 0.16146963, 0.25688766, 0.57587680, 1.0830233, 1.7201534, 2.4149906, 3.0906501, 3.6749403, 4.1086186, 4.3519384, 4.3889923, 4.2294950, 3.9077729, 3.4788838, 3.0119984, 2.5814701, 2.2563790, 2.0897019, 2.1085689, 2.3072038, 2.6440425, 3.0441240, 3.4071648, 3.6208391, 3.5778230, 3.1943020, 2.4270740, 1.2862426, -0.15911044, -1.7839870, -3.4196748, -4.8739984, -5.9570755, -6.5089172, -6.4246367, -5.6731555, -4.3061261, -2.4552215, -0.31775036, 1.8675716, 3.8512395, 5.4054427, 6.3535526, 6.5922330, 6.1029862, 4.9516699, 3.2764449, 1.2664215, -0.86536311, -2.9102924, -4.6895542, -6.0730386, -6.9895404, -7.4276530, -7.4283075, -7.0711786, -6.4579323, -5.6954353, -4.8816121, -4.0957593, -3.3940283, -2.8096983, -2.3570169, -2.0369106, -1.8428419, -1.7654391, -1.7951393, -1.9227797, -2.1386625, -2.4309750, -2.7844921, -3.1802418, -3.5963739, -4.0099700, -4.3991390, -4.7445662, -5.0298041, -5.2399720, -5.3590878, -5.3668272, -5.2359205, -4.9315167, -4.4135896, -3.6428402, -2.5896841, -1.2449814, 0.36960084, 2.1940960, 4.1279886, 6.0348940, 7.7546817, 9.1221118, 9.9896097, 10.250666, 9.8597914, 8.8451379, 7.3108568, 5.4278587, 3.4136150, 1.5036277, -0.081184211, -1.1660042, -1.6473377, -1.5076355, -0.81673546, 0.28025200, 1.5866755, 2.8857570, 3.9744524, 4.6941502, 4.9532195, 4.7379177, 4.1102486, 3.1936473, 2.1494235, 1.1483638, 0.34252172, -0.15806745, -0.30012992, -0.091436264, 0.40535528, 1.0874666, 1.8321964, 2.5186822, 3.0474253, 3.3545149, 3.4186976, 3.2608592, 2.9368226, 2.5253880, 2.1140852, 1.7851416, 1.6037573, 1.6100643, 1.8153303, 2.2022152, 2.7283544, 3.3322710, 3.9406114, 4.4758679, 4.8639936, 5.0415206, 4.9618884, 4.6006585, 3.9591710, 3.0660773, 1.9761523, 0.76594195, -0.47384123, -1.6487146, -2.6725308, -3.4796389, -4.0351003, -4.3409604, -4.4369965, -4.3951797, -4.3081804, -4.2734193, -4.3751783, -4.6679044, -5.1639031, -5.8280477, -6.5810053, -7.3109656, -7.8922423, -8.2077098, -8.1711311, -7.7452300, -6.9519450, -5.8725847, -4.6373735, -3.4058088, -2.3409835, -1.5822228, -1.2208142, -1.2831689, -1.7245210, -2.4344596, -3.2535379, -3.9982724, -4.4904010, -4.5855472, -4.1965780, -3.3078864, -1.9784025, -0.33303948, 1.4558236, 3.1936666, 4.6918367, 5.7938721, 6.3962532, 6.4607685, 6.0171400, 5.1561132, 4.0146263, 2.7557114, 1.5463203, 0.53627208, -0.15894714, -0.46961596, -0.37651461, 0.090961699, 0.86238550, 1.8380310, 2.9028836, 3.9409990, 4.8484748, 5.5436629, 5.9737128, 6.1170488, 5.9818720, 5.6012230, 5.0254993, 4.3135766, 3.5238098, 2.7061745, 1.8966353, 1.1145106, 0.36315289, -0.36625159, -1.0884881, -1.8168878, -2.5561127, -3.2966330, -4.0121601, -4.6608177, -5.1901791, -5.5455528, -5.6802123, -5.5657698, -5.2006943, -4.6151402, -3.8707753, -3.0551060, -2.2707602, -1.6211340, -1.1945638, -1.0495971, -1.2039158, -1.6289902, -2.2516869, -2.9629422, -3.6324430, -4.1272276, -4.3314037, -4.1639259, -3.5916131, -2.6353014, -1.3680891, 0.094118452, 1.6083418, 3.0241212, 4.2039519, 5.0414290, 5.4743563, 5.4909066, 5.1280487, 4.4627081, 3.5972915, 2.6420979, 1.6976140, 0.83967393, 0.10995063, -0.48667382, -0.97750051, -1.4110701, -1.8419114, -2.3138145, -2.8447996, -3.4167549, -3.9720022, -4.4179104, -4.6392954, -4.5169463, -3.9494270, -2.8745463, -1.2867115, 0.75316272, 3.1174642, 5.6221886, 8.0468119, 10.161167, 11.755473, 12.668982, 12.812728, 12.182670, 10.860942, 9.0047770, 6.8246644, 4.5550118, 2.4218554, 0.61261772, -0.74742338, -1.6084258, -1.9972268, -2.0067440, -1.7756911, -1.4623180, -1.2167674, -1.1567071, -1.3501549, -1.8080036, -2.4869542, -3.3016992, -4.1436181, -4.9022161, -5.4852377, -5.8338435, -5.9303340, -5.7974239, -5.4897011, -5.0793503, -4.6392112, -4.2266147, -3.8711534, -3.5686695, -3.2824888, -2.9515212, -2.5035752, -1.8713092, -1.0078265, 0.10094249, 1.4292821, 2.9113678, 4.4476180, 5.9166415, 7.1908188, 8.1530374, 8.7120226, 8.8140273, 8.4493020, 7.6526197, 6.4980301, 5.0888368, 3.5443984, 1.9857012, 0.52169862, -0.76181645, -1.8094841, -2.5990746, -3.1395476, -3.4650508, -3.6259747, -3.6785539, -3.6746730, -3.6534623, -3.6359709, -3.6237074, -3.6012030, -3.5420729, -3.4174277, -3.2050284, -2.8973768, -2.5070426, -2.0679587, -1.6321162, -1.2619474, -1.0195568, -0.95467284, -1.0936017, -1.4314571, -1.9294866, -2.5184690, -3.1080554, -3.6007639, -3.9083468, -3.9676325, -3.7528496, -3.2819270, -2.6152568, -1.8467551, -1.0884994, -0.45149218, -0.025933047, 0.13539638, 0.027495821, -0.30480595, -0.77368102, -1.2629283, -1.6478439, -1.8167770, -1.6904709, -1.2356901, -0.47070180, 0.53828262, 1.6889007, 2.8603225, 3.9334130 })); try { AxesMetadata theRAxis = MetadataFactory.createMetadata(AxesMetadata.class, 1); theRAxis.setAxis(0, r); ceria.setMetadata(theRAxis); } catch (MetadataException e) { // do nothing } return ceria; } private XPDFComponentForm getForm() { if (component.getForm() == null) component.setForm(new XPDFComponentForm()); return component.getForm(); } }