f7
f7 is a spreadsheet formula execution library
git clone https://git.vogt.world/f7.git
Log | Files | README.md | LICENSE.md
← All files
name: src/main/js/formulas/math/COT.ts
-rw-r--r--
895
 1import { DivException } from "../../errors/DivException";
 2import { SheetColumnRowKey } from "../../models/common/SheetColumnRowKey";
 3import { Complex } from "../../models/common/Types";
 4import { Converters } from "../../utils/Converters";
 5import { Numbers } from "../../utils/Numbers";
 6import { AbstractFormula } from "../AbstractFormula";
 7import { FormulaName } from "../FormulaName";
 8
 9export class COT extends AbstractFormula {
10  static SELF: COT = new COT();
11  NAME = FormulaName.COT;
12
13  internal(origin: SheetColumnRowKey, ...values: Array<Complex>) {
14    AbstractFormula.checkLength(values.length, 1, this.NAME);
15    const divisor = Math.tan(
16      Converters.toNumber(Converters.first(this.collateralLookup(origin, values[0])))
17    );
18    if (Numbers.isZero(divisor)) {
19      return new DivException("Evaluation of COT caused a divide by zero error.");
20    }
21    return 1 / divisor;
22  }
23}