Transformer architecture implemented in TypeScript with WebGPU.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
nn/src/ord.ts

27 lines
677 B

import { $, Term, _, _l, g, n } from './core';
import { False, True } from './bool';
n('ord');
export const enum NOrd {
LT,
EQ,
GT,
};
export const LT = g('LT', _l(lt => _l(_ => _l(_ => lt))));
export const EQ = g('EQ', _l(_ => _l(eq => _l(_ => eq))));
export const GT = g('GT', _l(_ => _l(_ => _l(gt => gt))));
export const eq = g('eq', _l(l => _l(r => l
._(r._(True)._(False)._(False))
._(r._(False)._(True)._(False))
._(r._(False)._(False)._(True)))));
export const fromNOrd: (o: NOrd) => Term
= o => o === NOrd.LT ? LT : o === NOrd.EQ ? EQ : GT;
export const toNOrd: (o: Term) => NOrd
= o => $(o._(_(NOrd.LT))._(_(NOrd.EQ))._(_(NOrd.GT)).reduce());