lt.monarch.chart.spc.math
Class CpkValuesCalculator

java.lang.Object
  extended by lt.monarch.chart.spc.math.ValuesCalculator
      extended by lt.monarch.chart.spc.math.HistogramValuesCalculator
          extended by lt.monarch.chart.spc.math.CpkValuesCalculator

public class CpkValuesCalculator
extends HistogramValuesCalculator

Calculates values for Cpk chart. Values are calculated using formulas: http://www.singleton-labs.com/doc/mcharts/guide/#guide/chart-types/4.6.1.html


Field Summary
Modifier and Type Field and Description
 
Fields inherited from class lt.monarch.chart.spc.math.ValuesCalculator
nullName
 
Constructor Summary
Constructor and Description
CpkValuesCalculator()
           
 
Method Summary
Modifier and Type Method and Description
protected  double averageRange(ChartDataModel dataModel)
          copied form range
 double CND(double X)
          Cumulative normal distribution formula
static double erf(double d)
           
static double erfc(double d)
           
static double erfcx(double d)
           
 java.lang.Double getActualDPM(ChartDataModel dataModel, java.lang.Double lsl, java.lang.Double usl)
          Calculates Actual DPM (defects per million)
 java.lang.Double getCP(ChartDataModel dataModel, java.lang.Double lsl, java.lang.Double usl)
          Calculates Cp value.
 java.lang.Double getCPK(ChartDataModel dataModel, java.lang.Double lsl, java.lang.Double usl)
          Calculates Cpk value.
 java.lang.Double getCPL(ChartDataModel dataModel, java.lang.Double lsl)
          Calculates CpL value.
 java.lang.Double getCPM(ChartDataModel dataModel, java.lang.Double lsl, java.lang.Double usl, java.lang.Double t)
          Calculates Cpm value.
 java.lang.Double getCPU(ChartDataModel dataModel, java.lang.Double usl)
          Calculates CpU value.
 java.lang.Double getDefectsPercent(ChartDataModel dataModel, java.lang.Double lsl, java.lang.Double usl)
          Calculates defects percent.
 java.lang.Double getDPM(ChartDataModel dataModel, java.lang.Double lsl, java.lang.Double usl)
          Calculates (Expected) DPM (defects per million)
 java.lang.Double getDPMPercent(ChartDataModel dataModel, java.lang.Double lsl, java.lang.Double usl)
          Calculates (Expected) DPM (defects per million) percentage
static double getInvCDF(double d, boolean highPrecision)
           
 java.lang.Double getMax(ChartDataModel dataModel)
          Finds the largest value in the data
 java.lang.Double getMedian(ChartDataModel dataModel)
          Finds the median value in the data
 java.lang.Double getMin(ChartDataModel dataModel)
          Finds the smallest value in the data
 java.lang.Double getMode(ChartDataModel dataModel)
          Finds the mode value in the data
protected  int getN(ChartDataModel dataModel)
          Return count of value data in the given data model
static ChartDataModel getNormalDistributionModel(double from, double to, double step, double mean, double std)
          Constructs normal distribution model according parameters.
 java.lang.Double getPP(ChartDataModel dataModel, java.lang.Double lsl, java.lang.Double usl)
          Calculates Pp value.
 java.lang.Double getPPK(ChartDataModel dataModel, java.lang.Double lsl, java.lang.Double usl)
          Calculates Ppk value.
 java.lang.Double getPPL(ChartDataModel dataModel, java.lang.Double lsl)
          Calculates PpL value.
 java.lang.Double getPPU(ChartDataModel dataModel, java.lang.Double usl)
          Calculates PpU value.
protected  double getRange(java.util.List<java.lang.Object> data)
          Returns data range from the given data list
 java.lang.Double getSigmaCapability(ChartDataModel dataModel, java.lang.Double lsl, java.lang.Double usl)
          Calculates Sigma capability
 java.lang.Double getZBench(ChartDataModel dataModel, java.lang.Double lsl, java.lang.Double usl)
          Calculates Z bench (Sigma Level)
 java.lang.Double getZTarget(ChartDataModel dataModel, java.lang.Double lsl, java.lang.Double usl, java.lang.Double target)
          Calculates Z target
static double refine(double x, double d)
           
 double sq(double x)
          Square value.
 double standardDeviation(java.util.List<java.lang.Object> values)
          from sigma
 void validateDataModel(ChartDataModel dataModel)
          Checks if cpk data satisfies the minimal requirements.
 
Methods inherited from class lt.monarch.chart.spc.math.HistogramValuesCalculator
getCount, getDataModel, getMean, getNormalDistributionModel, getStdDev
 
Methods inherited from class lt.monarch.chart.spc.math.ValuesCalculator
average, fill, fill, fillColumn, fillColumn, fillConstant, fillConstant, getAverage, getc4, getColumn, getd2, getd3, getD3, getD4, getDouble, getE, getF, getG, getH, isEmpty, isNconstant, validateDataModel, validateDataModel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CpkValuesCalculator

public CpkValuesCalculator()
Method Detail

getPP

public java.lang.Double getPP(ChartDataModel dataModel,
                              java.lang.Double lsl,
                              java.lang.Double usl)
                       throws DataFormatException
Calculates Pp value.

Parameters:
dataModel - input data.
lsl - lower specification limit
usl - upper specification limit
Returns:
Pp value.
Throws:
DataFormatException - when invalid data is provided in the data model

getPPL

public java.lang.Double getPPL(ChartDataModel dataModel,
                               java.lang.Double lsl)
                        throws DataFormatException
Calculates PpL value.

Parameters:
dataModel - input data.
lsl - lower specification limit
Returns:
PpL value.
Throws:
DataFormatException - when invalid data is provided in the data model

getPPU

public java.lang.Double getPPU(ChartDataModel dataModel,
                               java.lang.Double usl)
                        throws DataFormatException
Calculates PpU value.

Parameters:
dataModel - input data.
usl - upper specification limit
Returns:
PpU value.
Throws:
DataFormatException - when invalid data is provided in the data model

getPPK

public java.lang.Double getPPK(ChartDataModel dataModel,
                               java.lang.Double lsl,
                               java.lang.Double usl)
                        throws DataFormatException
Calculates Ppk value.

Parameters:
dataModel - input data.
lsl - lower specification limit
usl - upper specification limit
Returns:
Ppk value.
Throws:
DataFormatException - when invalid data is provided in the data model

getCP

public java.lang.Double getCP(ChartDataModel dataModel,
                              java.lang.Double lsl,
                              java.lang.Double usl)
                       throws DataFormatException
Calculates Cp value.

Parameters:
dataModel - input data.
lsl - lower specification limit
usl - upper specification limit
Returns:
Cp value.
Throws:
DataFormatException - when invalid data is provided in the data model

getCPU

public java.lang.Double getCPU(ChartDataModel dataModel,
                               java.lang.Double usl)
                        throws DataFormatException
Calculates CpU value.

Parameters:
dataModel - input data.
usl - upper specification limit
Returns:
CpU value.
Throws:
DataFormatException - when invalid data is provided in the data model

getCPL

public java.lang.Double getCPL(ChartDataModel dataModel,
                               java.lang.Double lsl)
                        throws DataFormatException
Calculates CpL value.

Parameters:
dataModel - input data.
lsl - lower specification limit
Returns:
CpL value.
Throws:
DataFormatException - when invalid data is provided in the data model

getCPK

public java.lang.Double getCPK(ChartDataModel dataModel,
                               java.lang.Double lsl,
                               java.lang.Double usl)
                        throws DataFormatException
Calculates Cpk value.

Parameters:
dataModel - input data.
lsl - lower specification limit
usl - upper specification limit
Returns:
Cpk value.
Throws:
DataFormatException - when invalid data is provided in the data model

getCPM

public java.lang.Double getCPM(ChartDataModel dataModel,
                               java.lang.Double lsl,
                               java.lang.Double usl,
                               java.lang.Double t)
                        throws DataFormatException
Calculates Cpm value.

Parameters:
dataModel - input data.
lsl - lower specification limit
usl - upper specification limit
t - target value (if null, t is calculated as (usl + lsl) / 2)
Returns:
Cpm value. if usl or lsl is null, returns null.
Throws:
DataFormatException - when invalid data is provided in the data model

getActualDPM

public java.lang.Double getActualDPM(ChartDataModel dataModel,
                                     java.lang.Double lsl,
                                     java.lang.Double usl)
                              throws DataFormatException
Calculates Actual DPM (defects per million)

Parameters:
dataModel - input data.
lsl - lower specification limit
usl - upper specification limit
Returns:
Actual DPM value. if usl and lsl is null, returns 0.
Throws:
DataFormatException - when invalid data is provided in the data model

getDefectsPercent

public java.lang.Double getDefectsPercent(ChartDataModel dataModel,
                                          java.lang.Double lsl,
                                          java.lang.Double usl)
                                   throws DataFormatException
Calculates defects percent.

Parameters:
dataModel - input data.
lsl - lower specification limit
usl - upper specification limit
Returns:
Defects count. if usl and lsl is null, returns 0.
Throws:
DataFormatException - when invalid data is provided in the data model

getDPM

public java.lang.Double getDPM(ChartDataModel dataModel,
                               java.lang.Double lsl,
                               java.lang.Double usl)
                        throws DataFormatException
Calculates (Expected) DPM (defects per million)

Parameters:
dataModel - input data.
lsl - lower specification limit
usl - upper specification limit
Returns:
(Expected) DPM value. if usl and lsl is null, returns 0.
Throws:
DataFormatException - when invalid data is provided in the data model

getDPMPercent

public java.lang.Double getDPMPercent(ChartDataModel dataModel,
                                      java.lang.Double lsl,
                                      java.lang.Double usl)
                               throws DataFormatException
Calculates (Expected) DPM (defects per million) percentage

Parameters:
dataModel - input data.
lsl - lower specification limit
usl - upper specification limit
Returns:
(Expected) DPM percentage. if usl and lsl is null, returns 0.
Throws:
DataFormatException - when invalid data is provided in the data model

getZBench

public java.lang.Double getZBench(ChartDataModel dataModel,
                                  java.lang.Double lsl,
                                  java.lang.Double usl)
                           throws DataFormatException
Calculates Z bench (Sigma Level)

Parameters:
dataModel - input data.
lsl - lower specification limit
usl - upper specification limit
Returns:
Z bench value
Throws:
DataFormatException - when invalid data is provided in the data model

getZTarget

public java.lang.Double getZTarget(ChartDataModel dataModel,
                                   java.lang.Double lsl,
                                   java.lang.Double usl,
                                   java.lang.Double target)
                            throws DataFormatException
Calculates Z target

Parameters:
dataModel - input data.
lsl - lower specification limit
usl - upper specification limit
target - target value (if null, t is calculated as (usl + lsl) / 2)
Returns:
Z target value
Throws:
DataFormatException - when invalid data is provided in the data model

getSigmaCapability

public java.lang.Double getSigmaCapability(ChartDataModel dataModel,
                                           java.lang.Double lsl,
                                           java.lang.Double usl)
                                    throws DataFormatException
Calculates Sigma capability

Parameters:
dataModel - input data.
lsl - lower specification limit
usl - upper specification limit
Returns:
Sigma capability value
Throws:
DataFormatException - when invalid data is provided in the data model

getMin

public java.lang.Double getMin(ChartDataModel dataModel)
                        throws DataFormatException
Finds the smallest value in the data

Parameters:
dataModel - input data.
Throws:
DataFormatException - when invalid data is provided in the data model

getMax

public java.lang.Double getMax(ChartDataModel dataModel)
                        throws DataFormatException
Finds the largest value in the data

Parameters:
dataModel - input data.
Throws:
DataFormatException - when invalid data is provided in the data model

getMedian

public java.lang.Double getMedian(ChartDataModel dataModel)
                           throws DataFormatException
Finds the median value in the data

Parameters:
dataModel - input data.
Throws:
DataFormatException - when invalid data is provided in the data model

getMode

public java.lang.Double getMode(ChartDataModel dataModel)
                         throws DataFormatException
Finds the mode value in the data

Parameters:
dataModel - input data.
Throws:
DataFormatException - when invalid data is provided in the data model

sq

public double sq(double x)
Square value.


getNormalDistributionModel

public static ChartDataModel getNormalDistributionModel(double from,
                                                        double to,
                                                        double step,
                                                        double mean,
                                                        double std)
Constructs normal distribution model according parameters. Draws a normal distribution from starting point to the end point with specified step.

Parameters:
from - start x position
to - end x position
step - step size
mean - distribution mean
std - distribution standard deviation
Returns:
data model filled with normal distribution values.

validateDataModel

public void validateDataModel(ChartDataModel dataModel)
                       throws DataFormatException
Checks if cpk data satisfies the minimal requirements. Data should contain at least 2 data values.

Overrides:
validateDataModel in class HistogramValuesCalculator
Parameters:
dataModel - input chart data model.
Throws:
DataFormatException - when the data is invalid.

averageRange

protected double averageRange(ChartDataModel dataModel)
                       throws DataFormatException
copied form range

Parameters:
dataModel -
Returns:
Throws:
DataFormatException

getRange

protected double getRange(java.util.List<java.lang.Object> data)
                   throws DataFormatException
Returns data range from the given data list

Parameters:
data -
Returns:
Throws:
DataFormatException

getN

protected int getN(ChartDataModel dataModel)
Return count of value data in the given data model

Parameters:
dataModel -
Returns:

standardDeviation

public double standardDeviation(java.util.List<java.lang.Object> values)
                         throws DataFormatException
from sigma

Parameters:
values -
Returns:
Throws:
DataFormatException

CND

public double CND(double X)
Cumulative normal distribution formula


getInvCDF

public static double getInvCDF(double d,
                               boolean highPrecision)

erf

public static double erf(double d)

erfc

public static double erfc(double d)

erfcx

public static double erfcx(double d)

refine

public static double refine(double x,
                            double d)