forked from github-linguist/linguist
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
195 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,195 @@ | ||
* factor an arbitrarily large positive integer | ||
* | ||
* Copyright (C) 1999 by Brian Raiter | ||
* under the GNU General Public License | ||
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>- | ||
* | ||
* read in the number | ||
* | ||
<<<<<<<<<+ | ||
[-[>>>>>>>>>>][-]<<<<<<<<<<[[->>>>>>>>>>+<<<<<<<<<<]<<<<<<<<<<] | ||
>>>>>>>>>>,----------] | ||
>>>>>>>>>>[------------------------------------->>>>>>>>>->] | ||
<[+>[>>>>>>>>>+>]<-<<<<<<<<<<]- | ||
* | ||
* display the number and initialize the loop variable to two | ||
* | ||
[>++++++++++++++++++++++++++++++++++++++++++++++++. | ||
------------------------------------------------<<<<<<<<<<<] | ||
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. | ||
--------------------------.[-] | ||
>>>>>>>>>>>>++<<<<+ | ||
* | ||
* the main loop | ||
* | ||
[ [-]>> | ||
* | ||
* make copies of the number and the loop variable | ||
* | ||
[>>>>[-]>[-]>[-]>[-] | ||
>[-]>[-] | ||
<<<<<<<[->>>+>+<<<<]>>>>>>>>] | ||
<<<<<<<<<<[>>>>>>[-<<<<+>>>>]<<<<<<<<<<<<<<<<]>>>>>>>>>> | ||
[>[->>>+>>+<<<<<]>>>>>>>>>] | ||
<<<<<<<<<<[>>>>>>[-<<<<<+>>>>>]<<<<<<<<<<<<<<<<]>>>>>>>>>> | ||
* | ||
* divide the number by the loop variable | ||
* | ||
[>>>[-]>>>[-]>[-]>>>] initialize | ||
<<<<<<<<<<[<<<<<<<<<<] | ||
>>>>>>>>>[-]>>>>>>>+<<<<<<<<[+]+ | ||
[ ->> double divisor until above dividend | ||
[>>>>>>[->++<]>>>>]<<<<<<<<<< | ||
[>>>>>>>>[-]>[-] | ||
<<<<[->>>++<<<]<<<<<<<<<<<<<<<]>>>>>>>>>> | ||
[>>>>>>>>[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+< | ||
[->--------->>>>>>>>>+<<<<<<<<<<[->+<]]]]]]]]]]]>>] | ||
<<<<<<<<<<[>>>>>>>>>[-<+<<<+>>>>]<<<<<<<<<<<<<<<<<<<]>>>>>>>>>> | ||
[>>>>>>>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+> | ||
[-<--------->>>>>>>>>>>+<<<<<<<<<<[-<+>]]]]]]]]]]]>>>] | ||
<<<<<<<<<< | ||
[>>>>[->>>+>>+<<<<<]<<<<<<<<<<<<<<] | ||
>>>>>>>>>>[>>>>>>>[-<<<+>>>]>>>]<<<<<<<<<< | ||
[>>>>>>>>[->-<]> | ||
[<<<<<<<<<[<[-]>>>>>>>>>>[-<<<<<<<<<<+>>>>>>>>>>]<<<<<<<<<<<<<<<<<<<] | ||
>>>>>>>>>>>>>>>>>>>] | ||
<<<<<<<<<<<<<<<<<<<] | ||
>>>>>>>>>[+[+[+[+[+[+[+[+[+[+[[-]<+>]]]]]]]]]]]< | ||
] | ||
>>>>>>>> | ||
[ subtract divisor from dividend | ||
<<<<<< | ||
[>>>>>>>>[-]>[-]<<<<<[->>>+>+<<<<]>>>>>>]<<<<<<<<<< | ||
[>>>>>>>>[-<<<<+>>>>]<<<[->>>+>+<<<<]<<<<<<<<<<<<<<<]>>>>>>>>>> | ||
[>>>>>>>>>[-<<<<+>>>>]>]<<<<<<<<<< | ||
[>>>>>>>>[-<->]<<<<<<<<<<<<<<<<<<]>>>>>>>>>> | ||
[>>>>>>>[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+< | ||
[++++++++++[+>-<]>>>>>>>>>>-<<<<<<<<<<]]]]]]]]]]]>>>] | ||
>>>>>>>+ | ||
[ if difference is nonnegative then | ||
[-]<<<<<<<<<<<<<<<<< replace dividend and increment quotient | ||
[>>>>[-]>>>>[-<<<<+>>>>]<<[->>+<<]<<<<<<<<<<<<<<<<]>>>>>>>>>> | ||
[>>>>>>>>[->+<<<+>>]>>]<<<<<<<<<< | ||
[>>>[->>>>>>+<<<<<<]<<<<<<<<<<<<<]>>>>>>>>>> | ||
[>>>>>>>>>[-<<<<<<+>>>>>>[-<<<<<<+>>>>>> | ||
[-<<<<<<+>>>>>>[-<<<<<<+>>>>>> | ||
[-<<<<<<+>>>>>>[-<<<<<<+>>>>>> | ||
[-<<<<<<+>>>>>>[-<<<<<<+>>>>>> | ||
[-<<<<<<+>>>>>>[-<<<<<<--------->>>>>>>>>>>>>>>>+<<<<<<<<<< | ||
[-<<<<<<+>>>>>>]]]]]]]]]]]>] | ||
>>>>>>> | ||
] halve divisor and loop until zero | ||
<<<<<<<<<<<<<<<<<[<<<<<<<<<<]>>>>>>>>>> | ||
[>>>>>>>>[-]<<[->+<]<[->>>+<<<]>>>>>]<<<<<<<<<< | ||
[+>>>>>>>[-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> | ||
[-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> | ||
[-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> | ||
[-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> | ||
[-<<<<<<<+>>>>>>>]]]]]]]]]<<<<<<< | ||
[->>>>>>>+<<<<<<<]-<<<<<<<<<<] | ||
>>>>>>> | ||
[-<<<<<<<<<<<+>>>>>>>>>>>] | ||
>>>[>>>>>>>[-<<<<<<<<<<<+++++>>>>>>>>>>>]>>>]<<<<<<<<<< | ||
[+>>>>>>>>[-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> | ||
[-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> | ||
[-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> | ||
[-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> | ||
[-<<<<<<<<+>>>>>>>>]]]]]]]]]<<<<<<<< | ||
[->>>>>>>>+<<<<<<<<]-<<<<<<<<<<] | ||
>>>>>>>>[-<<<<<<<<<<<<<+>>>>>>>>>>>>>]>> | ||
[>>>>>>>>[-<<<<<<<<<<<<<+++++>>>>>>>>>>>>>]>>]<<<<<<<<<< | ||
[<<<<<<<<<<]>>>>>>>>>> | ||
>>>>>> | ||
] | ||
<<<<<< | ||
* | ||
* make copies of the loop variable and the quotient | ||
* | ||
[>>>[->>>>+>+<<<<<]>>>>>>>] | ||
<<<<<<<<<< | ||
[>>>>>>>[-<<<<+>>>>]<<<<<[->>>>>+>>+<<<<<<<]<<<<<<<<<<<<] | ||
>>>>>>>>>>[>>>>>>>[-<<<<<+>>>>>]>>>]<<<<<<<<<< | ||
* | ||
* break out of the loop if the quotient is larger than the loop variable | ||
* | ||
[>>>>>>>>>[-<->]< | ||
[<<<<<<<< | ||
[<<[-]>>>>>>>>>>[-<<<<<<<<<<+>>>>>>>>>>]<<<<<<<<<<<<<<<<<<] | ||
>>>>>>>>>>>>>>>>>>]<<<<<<<<<<<<<<<<<<] | ||
>>>>>>>>[>-<[+[+[+[+[+[+[+[+[+[[-]>+<]]]]]]]]]]]>+ | ||
[ [-] | ||
* | ||
* partially increment the loop variable | ||
* | ||
<[-]+>>>>+>>>>>>>>[>>>>>>>>>>]<<<<<<<<<< | ||
* | ||
* examine the remainder for nonzero digits | ||
* | ||
[<<<<<<[<<<<[<<<<<<<<<<]>>>>+<<<<<<<<<<]<<<<] | ||
>>>>>>>>>>>>>>>>>>>>[>>>>>>>>>>]<<<<<<<<<<[<<<<<<<<<<] | ||
>>>>- | ||
[ [+] | ||
* | ||
* decrement the loop variable and replace the number with the quotient | ||
* | ||
>>>>>>>>-<<[>[-]>>[-<<+>>]>>>>>>>]<<<<<<<<<< | ||
* | ||
* display the loop variable | ||
* | ||
[+>>[>>>>>>>>+>>]<<-<<<<<<<<<<]- | ||
[>>++++++++++++++++++++++++++++++++++++++++++++++++. | ||
------------------------------------------------<<<<<<<<<<<<] | ||
++++++++++++++++++++++++++++++++.[-]>>>> | ||
] | ||
* | ||
* normalize the loop variable | ||
* | ||
>>>>>> | ||
[>>[->>>>>+<<<<<[->>>>>+<<<<< | ||
[->>>>>+<<<<<[->>>>>+<<<<< | ||
[->>>>>+<<<<<[->>>>>+<<<<< | ||
[->>>>>+<<<<<[->>>>>+<<<<< | ||
[->>>>>+<<<<<[->>>>>--------->>>>>+<<<<<<<<<< | ||
[->>>>>+<<<<<]]]]]]]]]]]>>>>>>>>] | ||
<<<<<<<<<<[>>>>>>>[-<<<<<+>>>>>]<<<<<<<<<<<<<<<<<] | ||
>>>>>>>>> | ||
]< | ||
]>> | ||
* | ||
* display the number and end | ||
* | ||
[>>>>>>>>>>]<<<<<<<<<<[+>[>>>>>>>>>+>]<-<<<<<<<<<<]- | ||
[>++++++++++++++++++++++++++++++++++++++++++++++++.<<<<<<<<<<<] | ||
++++++++++. |