typocomath/src/Complex/relational.ts

16 lines
461 B
TypeScript

import {Complex} from './type.js'
import {BBinary, ImpType, Dependency} from '../core/Dispatcher.js'
declare module "./type" {
interface ComplexReturn<Params> {
equal: Params extends BBinary<infer B>
? B extends Complex<any> ? boolean : never
: never
}
}
export const equal =
<T>(dep: Dependency<'equal', [T,T]>):
ImpType<'equal', [Complex<T>, Complex<T>]> =>
(w, z) => dep.equal(w.re, z.re) && dep.equal(w.im, z.im)