<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Abstract+Alchemi</id>
	<title>Second Life Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Abstract+Alchemi"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Abstract_Alchemi"/>
	<updated>2026-07-24T10:23:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Abstract_Alchemi&amp;diff=714182</id>
		<title>User:Abstract Alchemi</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Abstract_Alchemi&amp;diff=714182"/>
		<updated>2010-01-30T02:52:27Z</updated>

		<summary type="html">&lt;p&gt;Abstract Alchemi: Finished my progress!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Scripts==&lt;br /&gt;
Out of some interest in [http://en.wikipedia.org/wiki/Base_(mathematics) Bases], I wanted to make something that could convert from [http://en.wikipedia.org/wiki/Decimal Base-10] to any other base. Here are my results!&lt;br /&gt;
==Base-N (1 &amp;lt; N &amp;lt; 67)==&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
string integertobase(integer base, integer int){&lt;br /&gt;
    int = llAbs(int); if(base &amp;gt; 66||base &amp;lt; 1||base == 10) return &amp;quot;-1&amp;quot;;&lt;br /&gt;
    string code = &amp;quot;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&amp;quot;;&lt;br /&gt;
    string baseInteger;&lt;br /&gt;
    while(int &amp;gt; base){&lt;br /&gt;
        integer mod = int%base;&lt;br /&gt;
        int = (integer)llList2String(llParseString2List((string)(int/base),[&amp;quot;.&amp;quot;],[]),0);&lt;br /&gt;
        baseInteger += llGetSubString(code,mod,mod);&lt;br /&gt;
    }&lt;br /&gt;
    if(int != 0) baseInteger += llGetSubString(code,int,int); string str; integer i;&lt;br /&gt;
    for(i = llStringLength(baseInteger)-1; i &amp;gt;= 0; i--) str += llGetSubString(baseInteger,i,i);&lt;br /&gt;
    return str;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
integer basetointeger(integer base, string src){&lt;br /&gt;
    if(base &amp;gt; 66||base &amp;lt; 1||base == 10) return -1;&lt;br /&gt;
    integer baseInteger; integer i;&lt;br /&gt;
    string code = &amp;quot;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&amp;quot;;&lt;br /&gt;
    for(i = 0; i &amp;lt; llStringLength(src);i++){&lt;br /&gt;
        if(llSubStringIndex(code,llGetSubString(src,i,i)) == -1) return -1;&lt;br /&gt;
        baseInteger += llSubStringIndex(code,llGetSubString(src,i,i))*(integer)llPow(base,llAbs(i-llStringLength(src)+1));&lt;br /&gt;
    } &lt;br /&gt;
    return baseInteger;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
{{skills&lt;br /&gt;
|Architect=&lt;br /&gt;
|Builder=*&lt;br /&gt;
|Machinima=&lt;br /&gt;
|Scenographer=&lt;br /&gt;
|Scripter=*&lt;br /&gt;
|SLogistician=&lt;br /&gt;
|Terraformer=&lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Abstract Alchemi</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Abstract_Alchemi&amp;diff=711253</id>
		<title>User:Abstract Alchemi</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Abstract_Alchemi&amp;diff=711253"/>
		<updated>2010-01-22T04:41:28Z</updated>

		<summary type="html">&lt;p&gt;Abstract Alchemi: Another minor issue fixed.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Scripts==&lt;br /&gt;
Out of some interest in [http://en.wikipedia.org/wiki/Base_(mathematics) Bases], I wanted to make something that could convert from [http://en.wikipedia.org/wiki/Decimal Base-10] to any other base. I started off reading documentation on how to do so, and I decided i&#039;d try just to convert from Base-23 to [http://en.wikipedia.org/wiki/Decimal Base-10]. Here are my results!&lt;br /&gt;
==Base-23 and [http://en.wikipedia.org/wiki/Decimal Base-10]==&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
string IntegerToBase23(integer int){&lt;br /&gt;
    string code = &amp;quot;0123456789ABCDEFGHIJKLMNOPQRSTUVW&amp;quot;;&lt;br /&gt;
    string base23;&lt;br /&gt;
    if(int &amp;lt; 23) return llGetSubString(code,int,int);&lt;br /&gt;
    while(int &amp;gt; 23){&lt;br /&gt;
        integer mod = int%23;&lt;br /&gt;
        int = int/23;&lt;br /&gt;
        base23 += llGetSubString(code,mod,mod);&lt;br /&gt;
    }&lt;br /&gt;
    if(int != 0) base23 += llGetSubString(code,int,int); string str; integer i;&lt;br /&gt;
    for(i = llStringLength(base23)-1; i &amp;gt;= 0; i--) str += llGetSubString(base23,i,i);&lt;br /&gt;
    return str;&lt;br /&gt;
}&lt;br /&gt;
integer Base23ToInteger(string src){&lt;br /&gt;
    integer base23; integer i;&lt;br /&gt;
    string code = &amp;quot;0123456789ABCDEFGHIJKLMNOPQRSTUVW&amp;quot;;&lt;br /&gt;
    for(i = 0; i &amp;lt; llStringLength(src);i++){&lt;br /&gt;
        if(llSubStringIndex(code,llGetSubString(src,i,i)) == -1) return -1;&lt;br /&gt;
        base23 += llSubStringIndex(code,llGetSubString(src,i,i))*(integer)llPow(23,llAbs(i-llStringLength(src)+1));&lt;br /&gt;
    } &lt;br /&gt;
    return base23;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default{&lt;br /&gt;
    state_entry(){&lt;br /&gt;
        integer num = 10;&lt;br /&gt;
        llSay(0,(string)IntegerToBase23(num)+&amp;quot; == &amp;quot;+(string)Base23ToInteger(IntegerToBase23(num)));&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
{{skills&lt;br /&gt;
|Architect=&lt;br /&gt;
|Builder=*&lt;br /&gt;
|Machinima=&lt;br /&gt;
|Scenographer=&lt;br /&gt;
|Scripter=*&lt;br /&gt;
|SLogistician=&lt;br /&gt;
|Terraformer=&lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Abstract Alchemi</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Abstract_Alchemi&amp;diff=711233</id>
		<title>User:Abstract Alchemi</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Abstract_Alchemi&amp;diff=711233"/>
		<updated>2010-01-22T04:30:05Z</updated>

		<summary type="html">&lt;p&gt;Abstract Alchemi: Fixed, an error!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Scripts==&lt;br /&gt;
Out of some interest in [http://en.wikipedia.org/wiki/Base_(mathematics) Bases], I wanted to make something that could convert from [http://en.wikipedia.org/wiki/Decimal Base-10] to any other bases. I started off reading documentation on how to do so, and I decided i&#039;d try just to convert from Base-23 to [http://en.wikipedia.org/wiki/Decimal Base-10]. Here are my results!&lt;br /&gt;
==Base-23 and [http://en.wikipedia.org/wiki/Decimal Base-10]==&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
string IntegerToBase23(integer int){&lt;br /&gt;
    string code = &amp;quot;0123456789ABCDEFGHIJKLMNOPQRSTUVW&amp;quot;;&lt;br /&gt;
    string base23;&lt;br /&gt;
    if(int &amp;lt; 23) return llGetSubString(code,int,int);&lt;br /&gt;
    while(int &amp;gt; 23){&lt;br /&gt;
        integer mod = int%23;&lt;br /&gt;
        int = int/23;&lt;br /&gt;
        base23 += llGetSubString(code,mod,mod);&lt;br /&gt;
    }&lt;br /&gt;
    if(int != 0) base23 += llGetSubString(code,int,int); string str; integer i;&lt;br /&gt;
    for(i = llStringLength(base23)-1; i &amp;gt;= 0; i--) str += llGetSubString(base23,i,i);&lt;br /&gt;
    return str;&lt;br /&gt;
}&lt;br /&gt;
integer Base23ToInteger(string src){&lt;br /&gt;
    integer base23; integer i;&lt;br /&gt;
    string code = &amp;quot;0123456789ABCDEFGHIJKLMNOPQRSTUVW&amp;quot;;&lt;br /&gt;
    for(i = 0; i &amp;lt; llStringLength(src);i++){&lt;br /&gt;
        if(llSubStringIndex(code,llGetSubString(src,i,i)) == -1) return -1;&lt;br /&gt;
        base23 += llSubStringIndex(code,llGetSubString(src,i,i))*(integer)llPow(23,llAbs(i-llStringLength(src)+1));&lt;br /&gt;
    } &lt;br /&gt;
    return base23;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default{&lt;br /&gt;
    state_entry(){&lt;br /&gt;
        integer num = 10;&lt;br /&gt;
        llSay(0,(string)IntegerToBase23(num)+&amp;quot; == &amp;quot;+(string)Base23ToInteger(IntegerToBase23(num)));&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
{{skills&lt;br /&gt;
|Architect=&lt;br /&gt;
|Builder=*&lt;br /&gt;
|Machinima=&lt;br /&gt;
|Scenographer=&lt;br /&gt;
|Scripter=*&lt;br /&gt;
|SLogistician=&lt;br /&gt;
|Terraformer=&lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Abstract Alchemi</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Abstract_Alchemi&amp;diff=711223</id>
		<title>User:Abstract Alchemi</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Abstract_Alchemi&amp;diff=711223"/>
		<updated>2010-01-22T04:24:32Z</updated>

		<summary type="html">&lt;p&gt;Abstract Alchemi: I wanted to post my script here, and expand on it later, and possiably post it in the LSL Portal when I get it more developed, but for now it goes here!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Scripts==&lt;br /&gt;
Out of some interest in [http://en.wikipedia.org/wiki/Base_(mathematics) Bases], I wanted to make something that could convert from [http://en.wikipedia.org/wiki/Decimal Base-10] to any other bases. I started off reading documentation on how to do so, and I decided i&#039;d try just to convert from Base-23 to [http://en.wikipedia.org/wiki/Decimal Base-10]. Here are my results!&lt;br /&gt;
==Base-23 and [http://en.wikipedia.org/wiki/Decimal Base-10]==&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
string IntegerToBase23(integer int){&lt;br /&gt;
    string code = &amp;quot;0123456789ABCDEFGHIJKLMNOPQRSTUVW&amp;quot;;&lt;br /&gt;
    string base23;&lt;br /&gt;
    if(int &amp;lt; 23) return llGetSubString(code,int-1,int-1);&lt;br /&gt;
    while(int &amp;gt; 23){&lt;br /&gt;
        integer mod = int%23;&lt;br /&gt;
        int = int/23;&lt;br /&gt;
        base23 += llGetSubString(code,mod,mod);&lt;br /&gt;
    }&lt;br /&gt;
    if(int != 0) base23 += llGetSubString(code,int,int); string str; integer i;&lt;br /&gt;
    for(i = llStringLength(base23)-1; i &amp;gt;= 0; i--) str += llGetSubString(base23,i,i);&lt;br /&gt;
    return str;&lt;br /&gt;
}&lt;br /&gt;
integer Base23ToInteger(string src){&lt;br /&gt;
    integer base23; integer i;&lt;br /&gt;
    string code = &amp;quot;0123456789ABCDEFGHIJKLMNOPQRSTUVW&amp;quot;;&lt;br /&gt;
    for(i = 0; i &amp;lt; llStringLength(src);i++){&lt;br /&gt;
        if(llSubStringIndex(code,llGetSubString(src,i,i)) == -1) return -1;&lt;br /&gt;
        base23 += llSubStringIndex(code,llGetSubString(src,i,i))*(integer)llPow(23,llAbs(i-llStringLength(src)+1));&lt;br /&gt;
    } &lt;br /&gt;
    return base23;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default{&lt;br /&gt;
    state_entry(){&lt;br /&gt;
        integer num = 10;&lt;br /&gt;
        llSay(0,(string)IntegerToBase23(num)+&amp;quot; == &amp;quot;+(string)Base23ToInteger(IntegerToBase23(num)));&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
{{skills&lt;br /&gt;
|Architect=&lt;br /&gt;
|Builder=*&lt;br /&gt;
|Machinima=&lt;br /&gt;
|Scenographer=&lt;br /&gt;
|Scripter=*&lt;br /&gt;
|SLogistician=&lt;br /&gt;
|Terraformer=&lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Abstract Alchemi</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Strife_Onizuka&amp;diff=709962</id>
		<title>User:Strife Onizuka</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Strife_Onizuka&amp;diff=709962"/>
		<updated>2010-01-21T04:08:34Z</updated>

		<summary type="html">&lt;p&gt;Abstract Alchemi: /* Float {{LSL_VR|-Union-}} Integer */ I fixed a compiling error, added a &amp;quot;;&amp;quot; to the end of a returning function&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right;&amp;quot;&amp;gt;&amp;lt;videoflash&amp;gt;hTIsIjZCvHk&amp;lt;/videoflash&amp;gt;&amp;lt;/div&amp;gt;{{RightToc|clear:right;}}&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; {{prettytable|style=float:right; clear:right; margin:0;}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! | Updates:&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Preview&lt;br /&gt;
{{/Grid|DMZ}}&lt;br /&gt;
{{/Grid|Agni}}&lt;br /&gt;
{{/Grid|Colo|strike=*}}&lt;br /&gt;
{{/Grid|Siva}}&lt;br /&gt;
{{/Grid|Durga}}&lt;br /&gt;
{{/Grid|Aditi}}&lt;br /&gt;
{{/Grid|Soma}}&lt;br /&gt;
{{/Grid|Ganga}}&lt;br /&gt;
{{/Grid|Uma}}&lt;br /&gt;
{{/Grid|Shakti}}&lt;br /&gt;
{{/Grid|Vaak}}&lt;br /&gt;
{{/Grid|Mohini}}&lt;br /&gt;
{{/Grid|Yami}}&lt;br /&gt;
{{/Grid|Nandi}}&lt;br /&gt;
{{/Grid|Mitra}}&lt;br /&gt;
{{/Grid|Radha}}&lt;br /&gt;
{{/Grid|Ravi}}&lt;br /&gt;
{{/Grid|Aruna}}&lt;br /&gt;
{{/Grid|Damballah}}&lt;br /&gt;
{{/Grid|Bharati}}&lt;br /&gt;
{{/Grid|Chandra}}&lt;br /&gt;
{{/Grid|Danu}}&lt;br /&gt;
{{/Grid|Parvati}}&lt;br /&gt;
{{/Grid|Skanda}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== About Strife ==&lt;br /&gt;
&lt;br /&gt;
=== Synopses ===&lt;br /&gt;
&lt;br /&gt;
Strife is an avid scripter, wiki author and SL forum denizen. Not content in selfish information gathering, he shares what he knows through various mediums, so that others may benefit and learn. He volunteers his time to work on many public projects which include: giving scripting advice, writing LSL documentation, providing and improving LSL scripts and libraries.&lt;br /&gt;
&lt;br /&gt;
=== SL Status ===&lt;br /&gt;
&lt;br /&gt;
Strife has relocated to the Boston area in search of work, if none can be found... the relocation will be temporary. The computer has been rebuilt from scratch with all new parts (but using the old HDD, I didn&#039;t trust the one Igor was proffering; I don&#039;t know why I let him talk me into a wired keyboard and mouse). I should be able to get in-world now, though I still need to buy a new video card, Intel isn&#039;t know for decent graphics chips.&lt;br /&gt;
&lt;br /&gt;
Things were going well on the house painting front until I stepped off a fire escape and landed in the hospital with a broken leg and a fractured vertebra. No worries, I&#039;m insured and am on great pain pills (but the itchiness is annoying and the novelty of hallucinations has worn off). As you can guess my house painting days are over, don&#039;t you just love it when life gives you a gentle nudge when it thinks you are going in the wrong direction? Anyway on the computer front, I&#039;m almost finished building the new one, just need to order the CPU, the rest is already to assembled. After expenses, including the computer, I might just break even on this trip. *sigh*&lt;br /&gt;
&lt;br /&gt;
=== Honors ===&lt;br /&gt;
&lt;br /&gt;
Through his public works Strife became a pillar of the SL community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- please see http://en.wikipedia.org/wiki/Wikipedia:Barnstars for the motivation here --&amp;gt;&lt;br /&gt;
Strife is a Hippo award winner, [http://blog.secondlife.com/2007/08/25/innovation-award-winners-announced/ awarded &amp;quot;Best Community Organizer&amp;quot; in the 2007 Linden Lab Innovation Awards], and here is [[Linden Lab Innovation Awards|his mention as a runner-up in the 2008 &amp;quot;Best Documentation&amp;quot; category:]] &amp;quot;Last year&#039;s winner, Strife Onizuka, continued to be insanely prolific, with thousands of edits over the past year.... Anyone learning LSL is almost certainly indebted to Strife&#039;s work in some way.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Own Words ===&lt;br /&gt;
&lt;br /&gt;
I&#039;m an immigrant from URU. Was in all 3 of it&#039;s beta&#039;s.&lt;br /&gt;
&lt;br /&gt;
Wiki Gnome (causing drama isn&#039;t why I&#039;m here).&lt;br /&gt;
&lt;br /&gt;
I have a webpage but haven&#039;t updated it in a few months...&lt;br /&gt;
&lt;br /&gt;
Wiki&#039;s are the way of the future when it comes to making documentation Ad-hoc but eventually become static as graffiti grows with popularity as a way of controlling it.&lt;br /&gt;
&lt;br /&gt;
also contribute to some other wiki&#039;s&lt;br /&gt;
*[http://history.secondserver.net/index.php/Main_Page History Wiki]&lt;br /&gt;
*[http://www.AviSynth.org/BlindWanderer AviSynth:BlindWanderer]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/User:BlindWanderer Wikipedia:BlindWanderer]&lt;br /&gt;
&lt;br /&gt;
When it comes to writing I tend to go towards concise. A short accurate description is better then a long equally accurate description; less to get confused with, easier to find the important information (because it is &#039;&#039;all&#039;&#039; important).&lt;br /&gt;
&lt;br /&gt;
{{Jira Reporter}}&lt;br /&gt;
{{skills&lt;br /&gt;
|Builder=*&lt;br /&gt;
|Scripter=*&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
== Scite/ESL == &lt;br /&gt;
My config files: &#039;&#039;Comcast finally woke up and realized my account name was &amp;quot;mailerdaemon&amp;quot; and killed it so I&#039;ll be moving the files soon, sorry for the inconvenience.&#039;&#039; -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 17:26, 24 March 2009 (UTC)&lt;br /&gt;
*[http://mailerdaemon.home.comcast.net/lsl.api lsl.api]&lt;br /&gt;
*[http://mailerdaemon.home.comcast.net/lsl.properties lsl.properties]&lt;br /&gt;
*[http://mailerdaemon.home.comcast.net/stripper.zip stripper.zip - Whitespace stripper]&lt;br /&gt;
*[http://mailerdaemon.home.comcast.net/clipboard.zip clipboard - copies text to clipboard]&lt;br /&gt;
*[http://mailerdaemon.home.comcast.net/patch.esl patch.esl - make lslint not choke on new keywords]&lt;br /&gt;
*[http://w-hat.com/lslint lslint]&lt;br /&gt;
*[http://gnuwin32.sourceforge.net/packages/indent.htm indent - code beautifier] (picks up where the whitespace stripper leaves off)&lt;br /&gt;
*[http://msdn.microsoft.com/vstudio/express/visualc/ MSVC Express]&lt;br /&gt;
&lt;br /&gt;
==TightList==&lt;br /&gt;
See [[TightList]]&lt;br /&gt;
&lt;br /&gt;
==Float {{LSL_VR|-Union-}} Integer==&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
integer fui(float a)//Mono Safe, LSO Safe, Doubles Unsupported, LSLEditor Unsafe&lt;br /&gt;
{//union float to integer&lt;br /&gt;
    if((a)){//is it non zero?&lt;br /&gt;
        integer b = (a &amp;lt; 0) &amp;lt;&amp;lt; 31;//the sign, but later this variable is reused to store the shift&lt;br /&gt;
        if((a = llFabs(a)) &amp;lt; 2.3509887016445750159374730744445e-38)//Denormalized range check &amp;amp; last stirde of normalized range&lt;br /&gt;
            return b | (integer)(a / 1.4012984643248170709237295832899e-45);//the math overlaps; saves cpu time.&lt;br /&gt;
        integer c = llFloor((llLog(a) / 0.69314718055994530941723212145818));//extremes will error towards extremes. following yuch corrects it.&lt;br /&gt;
        return (0x7FFFFF &amp;amp; (integer)(a * (0x1000000 &amp;gt;&amp;gt; b))) | (((c + 126 + (b = ((integer)a - (3 &amp;lt;= (a /= (float)(&amp;quot;0x1p&amp;quot;+(string)(c -= ((c &amp;gt;&amp;gt; 31) | 1)))))))) &amp;lt;&amp;lt; 23 ) | b);&lt;br /&gt;
    }//for grins, detect the sign on zero. it&#039;s not pretty but it works. the previous requires alot of unwinding to understand it.&lt;br /&gt;
    return ((string)a == (string)(-0.0)) &amp;lt;&amp;lt; 31;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
float iuf(integer a)&lt;br /&gt;
{//union integer to float&lt;br /&gt;
    return ((float)(&amp;quot;0x1p&amp;quot;+(string)((a | !a) - 150))) * ((!!(a = (0xff &amp;amp; (a &amp;gt;&amp;gt; 23))) &amp;lt;&amp;lt; 23) | ((a &amp;amp; 0x7fffff))) * (1 | (a &amp;gt;&amp;gt; 31));&lt;br /&gt;
}//will crash if the raw exponent == 0xff; reason for crash deviates from float standard; though a crash is warented.&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As a specialized mode of transport, this is faster the [[Float2Hex]] and just as lossless.&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
string fuis(float a){//float union to base64ed integer&lt;br /&gt;
    if(a){//is it non zero?&lt;br /&gt;
        integer b = (a &amp;lt; 0) &amp;lt;&amp;lt; 31;//the sign, but later this variable is reused to store the shift&lt;br /&gt;
        if((a = llFabs(a)) &amp;lt; 2.3509887016445750159374730744445e-38)//Denormalized range check &amp;amp; last stirde of normalized range&lt;br /&gt;
            b = b | (integer)(a / 1.4012984643248170709237295832899e-45);//the math overlaps; saves cpu time.&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            integer c = llFloor(llLog(a) / 0.69314718055994530941723212145818);//extremes will error towards extremes. following yuch corrects it.&lt;br /&gt;
            b = (0x7FFFFF &amp;amp; (integer)(a * (0x1000000 &amp;gt;&amp;gt; b))) | (((c + 126 + (b = ((integer)a - (3 &amp;lt;= (a /= (float)(&amp;quot;0x1p&amp;quot;+(string)(c -= (c == 128)))))))) &amp;lt;&amp;lt; 23 ) | b);&lt;br /&gt;
        }&lt;br /&gt;
        return llGetSubString(llIntegerToBase64(b),0,5);&lt;br /&gt;
    }//for grins, detect the sign on zero. it&#039;s not pretty but it works. the previous requires alot of unwinding to understand it.&lt;br /&gt;
    if((string)a == (string)(0.0))&lt;br /&gt;
        return &amp;quot;AAAAAA&amp;quot;;&lt;br /&gt;
    return &amp;quot;gAAAAA&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
float siuf(string b)&lt;br /&gt;
{//base64ed integer union to float&lt;br /&gt;
    integer a = llBase64ToInteger(b);&lt;br /&gt;
    return ((float)(&amp;quot;0x1p&amp;quot;+(string)((a | !a) - 150))) * ((!!(a = (0xff &amp;amp; (a &amp;gt;&amp;gt; 23))) &amp;lt;&amp;lt; 23) | ((a &amp;amp; 0x7fffff))) * (1 | (a &amp;gt;&amp;gt; 31));&lt;br /&gt;
}//will crash if the raw exponent == 0xff; reason for crash deviates from float standard; though a crash is warented.&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Float Compare==&lt;br /&gt;
&amp;lt;lsl&amp;gt;integer FloatCompare(float a, float b, integer c)&lt;br /&gt;
{//compare floats and allow for a margin of error, requires fui().&lt;br /&gt;
    if(a - b)//(c) Strife Onizuka 2006 &lt;br /&gt;
    {//they are not equal&lt;br /&gt;
        //First we convert the floats to integer form, as they would be in memory;&lt;br /&gt;
        integer a_i = fui(a);&lt;br /&gt;
        integer b_i = fui(b);&lt;br /&gt;
        integer a_e = (a_i &amp;gt;&amp;gt; 23) &amp;amp; 0xff;&lt;br /&gt;
        integer b_e = (b_i &amp;gt;&amp;gt; 23) &amp;amp; 0xff;&lt;br /&gt;
        if(!(a_e || b_e) || //to disable the +/- roll under support put a // just before the !&lt;br /&gt;
            ((a_i &amp;amp; 0x80000000) == (b_i &amp;amp; 0x80000000)))//sign match check&lt;br /&gt;
        {//start by getting and testing the difference, this is what limits c&lt;br /&gt;
            integer diff = a_e - b_e;//ugly is fast, basicly, it gets the mantissa, sets the sign on the mantisa,&lt;br /&gt;
            if(diff &amp;gt;= -1 || diff &amp;lt;= 1)//shifts it depending on exponent, finaly executes the test.&lt;br /&gt;
                if(llAbs(((((a_i &amp;amp; 0x7FFFFF) | (!!a_e &amp;lt;&amp;lt; 23)) * ((a_i &amp;gt;&amp;gt; 31) | 1)) &amp;gt;&amp;gt; !~-diff) - &lt;br /&gt;
                         ((((b_i &amp;amp; 0x7FFFFF) | (!!b_e &amp;lt;&amp;lt; 23)) * ((b_i &amp;gt;&amp;gt; 31) | 1)) &amp;gt;&amp;gt; !~diff)) &amp;lt;= c)&lt;br /&gt;
                    jump out;&lt;br /&gt;
        }&lt;br /&gt;
        return (a &amp;gt; b) - (a &amp;lt; b);&lt;br /&gt;
    }&lt;br /&gt;
    @out;&lt;br /&gt;
    return 0;&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FUI2HexFloat ==&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
string FUI2HexFloat(integer b)&lt;br /&gt;
{//Dump FUI float-integer to a hex-float string&lt;br /&gt;
    string c = &amp;quot;&amp;quot;;&lt;br /&gt;
    integer d = 0;&lt;br /&gt;
    integer e = 0xff &amp;amp; (b &amp;gt;&amp;gt; 23);&lt;br /&gt;
    string f = &amp;quot;0x&amp;quot;+(string)(!!e) + &amp;quot;.&amp;quot;;&lt;br /&gt;
    if(b &amp;amp; 0x80000000)&lt;br /&gt;
        f = &amp;quot;-&amp;quot;+ f;&lt;br /&gt;
    if(e ^ 127) c = &amp;quot;p&amp;quot; + (string)((e | !e) - 127);&lt;br /&gt;
    if((e = 0xfffffe &amp;amp; (b &amp;lt;&amp;lt; 1)))&lt;br /&gt;
    {&lt;br /&gt;
        while(!((e &amp;gt;&amp;gt; d) &amp;amp; 0xf))&lt;br /&gt;
            d+=4;&lt;br /&gt;
        while(d &amp;lt; 24)&lt;br /&gt;
        {&lt;br /&gt;
            c = llGetSubString(hexc, b = 0xf &amp;amp; (e &amp;gt;&amp;gt; d), b) + c;&lt;br /&gt;
            d += 4;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    return f + c;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
string Float2Hex(float a)&lt;br /&gt;
{//Another way to do Float2Hex, i wrote this for the heck of it; not because it&#039;s a good idea.&lt;br /&gt;
    return FUI2HexFloat(fui(a));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BitCount==&lt;br /&gt;
&amp;lt;lsl&amp;gt;integer bitcount(integer n)&lt;br /&gt;
{//MIT Hackmem 169, modified to work in LSL&lt;br /&gt;
    integer tmp = n - ((n &amp;gt;&amp;gt; 1) &amp;amp; 0x5B6DB6DB)//modified mask&lt;br /&gt;
                    - ((n &amp;gt;&amp;gt; 2) &amp;amp; 0x49249249);&lt;br /&gt;
    return (((tmp + (tmp &amp;gt;&amp;gt; 3)) &amp;amp; 0xC71C71C7) % 63) - (n &amp;gt;&amp;gt; 31);&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UnicodeIntegerToUTF8==&lt;br /&gt;
&amp;lt;lsl&amp;gt;string UnicodeIntegerToUTF8(integer input)//Mono Safe, LSLEditor Safe, LSO Incomplete&lt;br /&gt;
{//LSO allows for the older UTF-8 range, this function only supports the new UTF-16 range.&lt;br /&gt;
    if(input &amp;gt; 0)&lt;br /&gt;
    {&lt;br /&gt;
        if(input &amp;lt;= 0x7FF)&lt;br /&gt;
        {&lt;br /&gt;
            if(input &amp;lt;= 0x7F)&lt;br /&gt;
                return llBase64ToString(llIntegerToBase64(input &amp;lt;&amp;lt; 24));&lt;br /&gt;
            return llBase64ToString(llIntegerToBase64(0xC0800000 | ((input &amp;lt;&amp;lt; 18) &amp;amp; 0x1F000000) | ((input &amp;lt;&amp;lt; 16) &amp;amp; 0x3F0000)));&lt;br /&gt;
        }&lt;br /&gt;
        if(input &amp;lt;= 0xFFFF)&lt;br /&gt;
            return llBase64ToString(llIntegerToBase64(0xE0808000 | ((input &amp;lt;&amp;lt; 12) &amp;amp; 0x0F000000) | ((input &amp;lt;&amp;lt; 10) &amp;amp; 0x3F0000) | ((input &amp;lt;&amp;lt; 8) &amp;amp; 0x3F00)));&lt;br /&gt;
        if(input &amp;lt;= 0x10FFFF)&lt;br /&gt;
            return llBase64ToString(llIntegerToBase64(0xF0808080 | ((input &amp;lt;&amp;lt; 06) &amp;amp; 0x0E000000) | ((input &amp;lt;&amp;lt; 04) &amp;amp; 0x3F0000) | ((input &amp;lt;&amp;lt; 2) &amp;amp; 0x3F00) | (input &amp;amp; 0x3F)));&lt;br /&gt;
    }&lt;br /&gt;
    return &amp;quot;&amp;quot;;&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
{{visl&lt;br /&gt;
|name=Strife Onizuka&lt;br /&gt;
|Greeters=&lt;br /&gt;
|Helpers=&lt;br /&gt;
|Instructors=&lt;br /&gt;
|Mentors=&lt;br /&gt;
|LSL=*&lt;br /&gt;
|i18n=&lt;br /&gt;
|l10n=&lt;br /&gt;
|SL4B=&lt;br /&gt;
|}}&lt;br /&gt;
[[Category:SL Certification Participant|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Abstract Alchemi</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Abstract_Alchemi&amp;diff=700942</id>
		<title>User:Abstract Alchemi</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Abstract_Alchemi&amp;diff=700942"/>
		<updated>2010-01-11T00:26:02Z</updated>

		<summary type="html">&lt;p&gt;Abstract Alchemi: Created page with &amp;#039;{{skills |Architect= |Builder=* |Machinima= |Scenographer= |Scripter=* |SLogistician= |Terraformer= |}}&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{skills&lt;br /&gt;
|Architect=&lt;br /&gt;
|Builder=*&lt;br /&gt;
|Machinima=&lt;br /&gt;
|Scenographer=&lt;br /&gt;
|Scripter=*&lt;br /&gt;
|SLogistician=&lt;br /&gt;
|Terraformer=&lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Abstract Alchemi</name></author>
	</entry>
</feed>