Skip to content

Instantly share code, notes, and snippets.

@palladin
Created May 19, 2019 15:43
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save palladin/d50e89bf75cc84ec14c474708ba9326a to your computer and use it in GitHub Desktop.
Save palladin/d50e89bf75cc84ec14c474708ba9326a to your computer and use it in GitHub Desktop.
Stream fusion output
let f (x0 : int []) =
let x1 = ref 0
let x2 = ref true
let x3 = ref false
let x4 = ref 0
let x5 = ref 0
let x6 = ref true
let x7 = ref true
let x8 = ref 0
let x9 = ref 0
let x10 = ref 0
let x11 = ref true
let x12 = ref true
let x13 = ref 0
let x14 = ref 0
let x15 = ref 0
while ( !x7 && !x12 ) do
if !x2 then
if !x6 then
if not (( !x9 < x0.Length ) ) then
x7 := false
else
let x16 = x0.[!x9]
x8 := x16;
x6 := false
x9 := ( !x9 + 1 )
else
if ( !x10 < x0.Length ) then
let x16 = x0.[!x10]
let x17 = x16
x4 := ( !x8 * x17 );
x2 := false;
x3 := true
x10 := ( !x10 + 1 )
else
x10 := 0;
x6 := true
if !x3 then
if !x11 then
if not ( !x14 < x0.Length ) then
x12 := false
else
let x16 = x0.[!x14]
x13 := x16;
x11 := false;
x14 := ( !x14 + 1 )
else
if ( !x15 < x0.Length ) then
let x16 = x0.[!x15]
let x17 = x16
x5 := ( !x13 * x17 );
x3 := false;
x15 := ( !x15 + 1 );
else
x15 := 0;
x11 := true;
if ( not !x2 && not !x3 ) then
x1 := ( ( !x4 * !x5 ) + !x1 );
x2 := true
!x1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment