services/math.service.ts
Methods |
getModelInfo | ||||||||||||
getModelInfo(model: NshmId, availableModels: Parameter[])
|
||||||||||||
Defined in services/math.service.ts:15
|
||||||||||||
Returns the model info for a specific model.
Parameters :
Returns :
Parameter
|
Private percentDifference |
percentDifference(x0: number, x1: number)
|
Defined in services/math.service.ts:43
|
Calculate the percent difference of two values.
Returns :
any
|
percentDifferences | ||||||||||||
percentDifferences(x0: number[], x1: number[])
|
||||||||||||
Defined in services/math.service.ts:29
|
||||||||||||
Calculate the percent difference for two arrays.
Parameters :
Returns :
any
|
import {Injectable} from '@angular/core';
import {NshmId} from '@ghsc/nshmp-utils-ts/libs/nshmp-lib/nshm';
import {Parameter} from '@ghsc/nshmp-utils-ts/libs/nshmp-ws-utils/metadata';
@Injectable({
providedIn: 'root',
})
export class MathService {
/**
* Returns the model info for a specific model.
*
* @param model The NSHM
* @param availableModels The available models
*/
getModelInfo(model: NshmId, availableModels: Parameter[]): Parameter {
const modelInfo = availableModels.find(
service => service.value === model.toString(),
);
return modelInfo;
}
/**
* Calculate the percent difference for two arrays.
*
* @param x0 First pair of values
* @param x1 Second pair of values
*/
percentDifferences(x0: number[], x1: number[]) {
if (x0.length !== x1.length) {
throw new Error('Arrays lengths must be the same');
}
return x0.map((x, i) => this.percentDifference(x, x1[i]));
}
/**
* Calculate the percent difference of two values.
*
* @param x0 First value
* @param x1 Second value
*/
private percentDifference(x0: number, x1: number) {
const x = ((x0 - x1) / ((x0 + x1) / 2)) * 100.0;
return Number(x.toFixed(4));
}
}