File

services/math.service.ts

Index

Methods

Methods

getModelInfo
getModelInfo(model: NshmId, availableModels: Parameter[])

Returns the model info for a specific model.

Parameters :
Name Type Optional Description
model NshmId No

The NSHM

availableModels Parameter[] No

The available models

Returns : Parameter
Private percentDifference
percentDifference(x0: number, x1: number)

Calculate the percent difference of two values.

Parameters :
Name Type Optional Description
x0 number No

First value

x1 number No

Second value

Returns : any
percentDifferences
percentDifferences(x0: number[], x1: number[])

Calculate the percent difference for two arrays.

Parameters :
Name Type Optional Description
x0 number[] No

First pair of values

x1 number[] No

Second pair of values

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));
  }
}

results matching ""

    No results matching ""