4 ms·
I'm confused by the claims.. You try to compute something that supercomputer can't - by not computing it? Instead the formula is stored in a data structure. Bu
by schobi 9mo ago
I'm confused by the claims..
You try to compute something that supercomputer can't - by not computing it? Instead the formula is stored in a data structure.
But once you need to access all the values you still have something that does not fit the memory and needs to be computed.
I can't judge on the Java side, but suggest to pick a better example on how this can be useful.
- DanexCodr 9mo agoit only compute what was needed on the right time. See this output for example: Enter file path or press Enter for default [/storage/emulated/0/JavaNIDE/Programming-Language/Coderive/executables/LazyLoop.cod]: > Using default file: /storage/emulated/0/JavaNIDE/Programming-Language/Coderive/executables/LazyLoop.cod Testing timer() function: Timer resolution: 0.023616 ms Testing condition evaluation: 2 % 2 = 0 2 % 2 == 0 = true 3 % 2 = 1 3 % 2 == 0 = false 24000 % 2 = 0.0 24000 % 2 == 0 = true Conditional formula creation time: 2.657539 ms Results: arr[2] = even arr[3] = odd arr[24000] = even arr[24001] = odd === Testing 2-statement pattern optimization === Pattern optimization time: 0.137 ms arr2[3] = 14 (should be 33 + 5 = 14) arr2[5] = 30 (should be 55 + 5 = 30) arr2[10] = 105 (should be 1010 + 5 = 105) Variable substitution time: 0.064384 ms arr3[4] = 1 (should be 42 - 7 = 1) arr3[8] = 9 (should be 82 - 7 = 9) === Testing conditional + 2-statement === Mixed optimization time: 3.253846 ms arr4[30] = 30 (should be 30) arr4[60] = 121 (should be 602 + 1 = 121) === All tests completed === --- From: unit test share LazyLoop { share main() { // Test timer() first - simplified outln("Testing timer() function:") t1 := timer() t2 := timer() outln("Timer resolution: " + (t2 - t1) + " ms") outln() arr := [0 to 1Qi] // Test the condition directly outln("Testing condition evaluation:") outln("2 % 2 = " + (2 % 2)) outln("2 % 2 == 0 = " + (2 % 2 == 0)) outln("3 % 2 = " + (3 % 2)) outln("3 % 2 == 0 = " + (3 % 2 == 0)) // Also test with larger numbers outln("24000 % 2 = " + (24K % 2)) outln("24000 % 2 == 0 = " + (24K % 2 == 0)) // Time the loop optimization start := timer() for i in [0 to 1Qi] { if i % 2 == 0 { arr[i] = "even" } elif i % 2 == 1 { arr[i] = "odd" } } loop_time := timer() - start outln("\nConditional formula creation time: " + loop_time + " ms") outln("\nResults:") outln("arr[2] = " + arr[2]) outln("arr[3] = " + arr[3]) outln("arr[24000] = " + arr[24K]) outln("arr[24001] = " + arr[24001]) // Test the 2-statement pattern optimization with timing outln("\n=== Testing 2-statement pattern optimization ===") arr2 := [0 to 1Qi] start = timer() for i in arr2 { squared := i * i arr2[i] = squared + 5 } pattern_time := timer() - start outln("Pattern optimization time: " + pattern_time + " ms") outln("arr2[3] = " + arr2[3] + " (should be 3*3 + 5 = 14)") outln("arr2[5] = " + arr2[5] + " (should be 5*5 + 5 = 30)") outln("arr2[10] = " + arr2[10] + " (should be 10*10 + 5 = 105)") // Test with different variable names arr3 := [0 to 1Qi] start = timer() for i in arr3 { temp := i * 2 arr3[i] = temp - 7 } var_time := timer() - start outln("\nVariable substitution time: " + var_time + " ms") outln("arr3[4] = " + arr3[4] + " (should be 4*2 - 7 = 1)") outln("arr3[8] = " + arr3[8] + " (should be 8*2 - 7 = 9)") // Test that it still works with conditional outln("\n=== Testing conditional + 2-statement ===") arr4 := [0 to 100] start = timer() for i in arr4 { if i > 50 { doubled := i * 2 arr4[i] = doubled + 1 } else { arr4[i] = i } } mixed_time := timer() - start outln("Mixed optimization time: " + mixed_time + " ms") outln("arr4[30] = " + arr4[30] + " (should be 30)") outln("arr4[60] = " + arr4[60] + " (should be 60*2 + 1 = 121)") outln("\n=== All tests completed ===") } }
- DanexCodr 9mo agoMost languages force you to choose: either compute everything upfront (O(n) memory) or write complex lazy evaluation code. Coderive gives you declarative intent with automatic optimization. You write what you mean (for i in [0 to 1Qi]), and the runtime figures out the optimal execution strategy. This is like having a JIT compiler that understands mathematical patterns, not just bytecode."