mirror of
https://github.com/KoboldAI/KoboldAI-Client.git
synced 2025-06-05 21:59:24 +02:00
Userscripts reorganizing
Moved examples to their own example directory, treating folders we didn't add as a unofficial folder, anything in examples gets submitted in commits. Because I want people to learn that kaipreset_ should only be used if a file should be part of KoboldAI's official scripts the examples do not have kaipreset_ in the name.
This commit is contained in:
91
userscripts/examples/haxe_transcend/Main.hx
Normal file
91
userscripts/examples/haxe_transcend/Main.hx
Normal file
@ -0,0 +1,91 @@
|
||||
/*
|
||||
* This file is part of KoboldAI.
|
||||
*
|
||||
* KoboldAI is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import haxe.exceptions.PosException;
|
||||
import lua.Lua;
|
||||
|
||||
@:expose class Main {
|
||||
public static final kobold:KoboldLib = untyped __lua__("_G.kobold");
|
||||
public static final exampleConfig = "return true";
|
||||
|
||||
public static var shouldRun:Bool;
|
||||
|
||||
public static var f:BigInt = -2;
|
||||
public static var e:BigInt = 4;
|
||||
public static var s:BigInt = 8;
|
||||
public static var t:BigInt = 1;
|
||||
public static var i:BigInt = 0;
|
||||
public static var v:BigInt = 1;
|
||||
public static var a:BigInt = 6;
|
||||
public static var l:BigInt = 1;
|
||||
|
||||
public static function inmod() {
|
||||
if (!shouldRun) return;
|
||||
kobold.halt_generation();
|
||||
}
|
||||
|
||||
public static function outmod() {
|
||||
if (!shouldRun) return;
|
||||
|
||||
// Gibbons, Jeremy. (2004). Unbounded Spigot Algorithms for the Digits
|
||||
// of Pi. American Mathematical Monthly. 113. 10.2307/27641917.
|
||||
|
||||
while (true) {
|
||||
var x = i/v;
|
||||
if (x == (i + t)/v) {
|
||||
trace(x);
|
||||
kobold.outputs[1] = Std.string(x);
|
||||
t *= 10;
|
||||
i -= x*v;
|
||||
i *= 10;
|
||||
break;
|
||||
}
|
||||
else {
|
||||
v *= s*a;
|
||||
i *= s;
|
||||
s += 8;
|
||||
i += e * t;
|
||||
e += 4;
|
||||
i *= a;
|
||||
a += 4;
|
||||
t *= f*l;
|
||||
l += 2;
|
||||
f -= 4;
|
||||
}
|
||||
}
|
||||
|
||||
kobold.restart_generation(1);
|
||||
}
|
||||
|
||||
public static function main() {
|
||||
var f = kobold.get_config_file();
|
||||
f.seek("set");
|
||||
if (f.read(1) == null) f.write(exampleConfig);
|
||||
f.seek("set");
|
||||
|
||||
var a = f.read("a");
|
||||
f.close();
|
||||
var result = Lua.load(a);
|
||||
trace(result);
|
||||
if (result.message != null) throw new PosException(result.message);
|
||||
shouldRun = switch result.func() {
|
||||
case false: false;
|
||||
case null: false;
|
||||
default: true;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user