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

26 lines
785 B

import { $, Term, _, _l, g, n, _r as ref } from './core';
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._(ref('bool', 'True'))._(ref('bool', 'False'))._(ref('bool', 'False')))
._(r._(ref('bool', 'False'))._(ref('bool', 'True'))._(ref('bool', 'False')))
._(r._(ref('bool', 'False'))._(ref('bool', 'False'))._(ref('bool', '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());