flozz/StackBlur

Why the maximum value of radius can't be more than 180?

flexeo opened this issue · 3 comments

Why the maximum value of radius can't be more than 180?

If we use a value greater than 180 it returns a transparent canvas.

StackBlur.canvasRGBA(canvas, 0, 0, canvas.width, canvas.height, 181);

The script is using precalculated values to speed up processing as described here:
https://medium.com/mobile-app-development-publication/blurring-image-algorithm-example-in-android-cec81911cd5e

Maybe they never thought that one would use radius values larger than 180 so they only included the precalculated values up to a radius size of 180 (it's the mulTable and shgTable arrays).

You could add more precalculated values to the mulTable and shgTable arrays so you can use values higher than 180.
Here are the values up to a radius size of 3000:

var mulTable = [512,128,114,64,82,114,335,64,405,82,271,114,97,335,73,64,227,405,91,82,149,271,124,114,105,97,90,335,78,73,273,64,241,227,107,405,383,91,345,82,78,149,71,271,259,124,475,114,437,105,101,97,187,90,347,335,323,78,151,73,141,273,265,64,497,241,117,227,441,107,417,405,197,383,373,91,177,345,337,82,80,78,305,149,291,71,139,271,265,259,507,124,485,475,465,114,223,437,107,105,103,101,99,97,381,187,367,90,177,347,341,335,329,323,159,78,307,151,297,73,287,141,139,273,269,265,261,64,505,497,489,241,475,117,461,227,447,441,435,107,211,417,411,405,399,197,389,383,189,373,92,91,359,177,175,345,341,337,83,82,81,80,79,78,309,305,301,149,147,291,287,71,281,139,137,271,67,265,131,259,257,507,501,124,491,485,120,475,235,465,115,114,451,223,221,437,433,107,106,105,104,103,102,101,100,99,98,97,385,381,377,187,185,367,363,90,357,177,175,347,86,341,169,335,83,329,163,323,80,159,315,78,155,307,76,151,299,297,147,73,289,287,285,141,70,139,275,273,271,269,267,265,263,261,259,64,509,505,501,497,493,489,243,241,239,475,471,117,116,461,457,227,451,447,111,441,219,435,108,107,425,211,419,417,207,411,102,405,201,399,397,197,391,389,193,383,381,189,94,373,371,92,183,91,361,359,357,177,88,175,347,345,343,341,339,337,167,83,165,82,163,81,161,80,159,79,157,78,155,309,307,305,303,301,299,149,74,147,73,291,289,287,143,71,141,281,279,139,69,137,273,271,135,67,267,265,66,131,261,259,129,257,255,507,126,501,499,124,493,491,122,485,483,120,239,475,473,235,117,465,463,115,229,114,453,451,449,223,111,221,439,437,435,433,431,107,213,106,211,105,209,104,207,103,205,102,203,101,201,100,199,99,197,98,195,97,193,385,383,381,379,377,94,187,93,185,369,367,365,363,181,90,179,357,355,177,88,175,349,347,173,86,171,341,339,169,84,335,333,83,165,329,82,163,325,323,161,80,319,159,79,315,157,78,311,155,77,307,153,76,303,151,75,299,149,297,295,147,293,73,291,289,72,287,143,285,283,141,281,70,279,139,277,275,137,273,68,271,135,269,67,267,133,265,66,263,131,261,65,259,129,64,511,509,507,505,503,501,499,497,495,493,491,489,487,243,121,241,120,239,477,475,473,471,469,117,233,116,231,461,459,457,114,227,113,451,449,447,223,111,443,441,439,219,109,435,433,108,215,107,427,425,106,211,421,419,209,417,415,207,103,411,409,102,203,405,101,201,401,399,199,397,395,197,393,391,195,389,387,193,385,383,191,381,95,189,377,94,375,373,93,371,185,92,367,183,365,91,181,361,90,359,179,357,355,177,353,88,351,175,349,347,173,345,86,343,171,341,85,339,169,337,335,167,333,83,331,165,329,82,327,163,325,81,323,161,321,80,319,159,317,79,315,157,313,78,311,155,155,309,77,307,153,305,76,303,151,301,75,299,299,149,297,74,295,147,293,73,73,291,145,289,72,287,287,143,285,71,283,141,141,281,70,279,139,139,277,69,275,137,137,273,68,271,271,135,269,67,67,267,133,265,265,66,263,131,131,261,65,259,259,129,257,257,511,255,127,507,253,126,503,501,125,499,497,124,495,493,123,491,489,122,487,485,121,483,241,120,479,239,119,475,237,473,471,235,469,117,233,465,116,463,231,115,459,229,457,114,227,453,113,451,225,449,447,223,445,111,443,221,441,439,219,437,109,435,217,433,108,431,215,107,427,213,425,106,423,211,421,105,419,209,417,104,415,207,413,103,411,205,409,102,407,203,405,101,403,201,401,100,399,199,397,99,395,197,393,98,391,195,389,97,387,193,193,385,96,383,191,381,95,379,189,377,94,94,375,187,373,93,371,185,369,369,92,367,183,365,91,363,363,181,361,90,359,179,179,357,89,355,177,177,353,88,351,175,175,349,87,347,173,173,345,86,343,171,171,341,85,339,339,169,337,84,84,335,167,333,333,83,331,165,165,329,82,82,327,163,325,325,81,323,323,161,321,80,80,319,159,159,317,79,79,315,157,157,313,78,78,311,155,155,309,77,77,307,153,153,305,76,76,303,151,151,301,75,75,299,299,149,297,297,74,295,295,147,147,293,73,73,291,291,145,289,289,72,72,287,143,143,285,285,71,283,283,141,141,281,281,70,279,279,139,139,277,277,69,275,275,137,137,273,273,68,68,271,271,135,269,269,67,67,267,267,133,133,265,265,66,66,263,263,131,131,261,261,65,65,259,259,129,129,257,64,64,511,255,509,127,507,253,505,126,503,251,501,125,499,249,497,124,495,247,493,123,491,245,489,122,487,487,243,485,121,483,241,481,120,479,239,477,477,119,475,237,473,118,471,235,469,469,117,467,233,465,116,463,231,231,461,115,459,229,457,457,114,455,227,453,113,113,451,225,449,112,447,447,223,445,111,443,443,221,441,110,439,439,219,437,109,435,435,217,433,108,108,431,215,429,107,107,427,213,425,425,106,423,211,211,421,105,419,419,209,417,417,104,415,207,207,413,103,411,411,205,409,409,102,407,203,203,405,101,101,403,201,201,401,100,399,399,199,397,397,99,395,395,197,393,393,98,391,391,195,389,389,97,387,387,193,385,385,96,383,383,191,191,381,95,95,379,189,189,377,94,94,375,375,187,373,373,93,371,371,185,185,369,92,92,367,367,183,365,365,91,91,363,181,181,361,361,90,359,359,179,179,357,357,89,355,355,177,177,353,88,88,351,351,175,175,349,349,87,347,347,173,173,345,345,86,86,343,171,171,341,341,85,85,339,339,169,169,337,337,84,335,335,167,167,333,333,83,83,331,331,165,165,329,329,82,82,327,327,163,163,325,325,81,81,323,323,161,161,321,321,80,80,319,319,159,159,317,317,79,79,315,315,157,157,313,313,78,78,311,311,155,155,155,309,309,77,77,307,307,153,153,305,305,76,76,76,303,303,151,151,301,301,75,75,299,299,299,149,149,297,297,74,74,74,295,295,147,147,293,293,73,73,73,291,291,145,145,289,289,289,72,72,287,287,287,143,143,285,285,71,71,71,283,283,141,141,141,281,281,70,70,70,279,279,139,139,139,277,277,69,69,69,275,275,137,137,137,273,273,68,68,68,271,271,271,135,135,269,269,269,67,67,67,267,267,133,133,133,265,265,265,66,66,263,263,263,131,131,131,261,261,65,65,65,259,259,259,129,129,129,257,257,257,64,511,255,255,509,127,127,507,253,253,505,126,126,503,251,501,501,125,499,499,249,497,497,124,495,495,247,493,493,123,491,491,245,489,489,122,487,487,243,485,485,121,483,483,241,241,481,120,120,479,239,239,477,119,119,475,475,237,473,473,118,471,471,235,235,469,117,117,467,233,233,465,465,116,463,463,231,231,461,115,115,459,459,229,457,457,114,114,455,227,227,453,453,113,451,451,225,225,449,449,112,447,447,223,223,445,445,111,443,443,221,221,441,441,110,439,439,219,219,437,437,109,109,435,217,217,433,433,108,108,431,431,215,215,429,107,107,427,427,213,213,425,425,106,106,423,423,211,211,421,105,105,419,419,209,209,417,417,104,104,415,415,207,207,413,413,103,103,411,411,205,205,409,409,102,102,407,407,203,203,405,405,101,101,403,403,201,201,401,401,100,100,399,399,199,199,397,397,99,99,395,395,197,197,393,393,393,98,98,391,391,195,195,389,389,97,97,387,387,193,193,193,385,385,96,96,383,383,191,191,381,381,95,95,95,379,379,189,189,377,377,94,94,94,375,375,187,187,373,373,93,93,93,371,371,185,185,369,369,369,92,92,367,367,183,183,183,365,365,91,91,363,363,363,181,181,361,361,361,90,90,359,359,179,179,179,357,357,89,89,89,355,355,177,177,177,353,353,88,88,88,351,351,175,175,175,349,349,87,87,87,347,347,173,173,173,345,345,86,86,86,343,343,171,171,171,341,341,341,85,85,339,339,339,169,169,337,337,337,84,84,84,335,335,167,167,167,333,333,333,83,83,83,331,331,165,165,165,329,329,329,82,82,82,327,327,163,163,163,325,325,325,81,81,81,323,323,323,161,161,321,321,321,80,80,80,319,319,319,159,159,159,317,317,317,79,79,79,315,315,315,157,157,157,313,313,313,78,78,78,311,311,311,155,155,155,309,309,309,77,77,77,307,307,307,153,153,153,305,305,305,76,76,76,303,303,303,151,151,151,301,301,301,75,75,75,75,299,299,299,149,149,149,297,297,297,74,74,74,295,295,295,295,147,147,147,293,293,293,73,73,73,291,291,291,291,145,145,145,289,289,289,72,72,72,72,287,287,287,143,143,143,143,285,285,285,71,71,71,283,283,283,283,141,141,141,281,281,281,281,70,70,70,279,279,279,279,139,139,139,277,277,277,277,69,69,69,275,275,275,275,137,137,137,137,273,273,273,68,68,68,68,271,271,271,271,135,135,135,269,269,269,269,67,67,67,67,267,267,267,267,133,133,133,265,265,265,265,66,66,66,66,263,263,263,263,131,131,131,131,261,261,261,261,65,65,65,65,259,259,259,259,129,129,129,129,257,257,257,64,64,64,511,511,255,255,509,509,127,127,507,507,253,253,505,505,126,126,503,503,251,251,501,501,125,125,499,499,249,249,497,497,124,124,495,495,247,247,247,493,493,123,123,491,491,245,245,489,489,122,122,487,487,487,243,243,485,485,121,121,483,483,241,241,481,481,481,120,120,479,479,239,239,477,477,477,119,119,475,475,237,237,473,473,473,118,118,471,471,235,235,469,469,469,117,117,467,467,233,233,233,465,465,116,116,463,463,231,231,231,461,461,115,115,115,459,459,229,229,457,457,457,114,114,455,455,227,227,227,453,453,113,113,113,451,451,225,225,449,449,449,112,112,447,447,447,223,223,445,445,445,111,111,443,443,443,221,221,441,441,441,110,110,439,439,439,219,219,437,437,437,109,109,435,435,435,217,217,217,433,433,108,108,108,431,431,215,215,215,429,429,107,107,107,427,427,427,213,213,425,425,425,106,106,106,423,423,211,211,211,421,421,421,105,105,419,419,419,209,209,209,417,417,417,104,104,415,415,415,207,207,207,413,413,413,103,103,411,411,411,205,205,205,409,409,409,102,102,102,407,407,203,203,203,405,405,405,101,101,101,403,403,403,201,201,201,401,401,401,100,100,399,399,399,199,199,199,397,397,397,99,99,99,395,395,395,197,197,197,393,393,393,98,98,98,391,391,391,195,195,195,389,389,389,97,97,97,387,387,387,193,193,193,385,385,385,96,96,96,383,383,383,383,191,191,191,381,381,381,95,95,95,379,379,379,189,189,189,377,377,377,94,94,94,94,375,375,375,187,187,187,373,373,373,93,93,93,371,371,371,371,185,185,185,369,369,369,92,92,92,367,367,367,367,183,183,183,365,365,365,91,91,91,91,363,363,363,181,181,181,361,361,361,361,90,90,90,359,359,359,359,179,179,179,357,357,357,357,89,89,89,355,355,355,177,177,177,177,353,353,353,88,88,88,88,351,351,351,351,175,175,175,349,349,349,349,87,87,87,347,347,347,347,173,173,173,345,345,345,345,86,86,86,86,343,343,343,171,171,171,171,341,341,341,341,85,85,85,339,339,339,339,169,169,169,169,337,337,337,337,84,84,84,335,335,335,335,167,167,167,167,333,333,333,333,83,83,83,83,331,331,331,165,165,165,165,329,329,329,329,82,82,82,82,327,327,327,327,163,163,163,163,325,325,325,325,81,81,81,81,323,323,323,323,161,161,161,161,321,321,321,321,80,80,80,80,319,319,319,319,159,159,159,159,317,317,317,317,79,79,79,79,79,315,315,315,315,157,157,157,157,313,313,313,313,78,78,78,78,311,311,311,311,155,155,155,155,155,309,309,309,309,77,77,77,77,307,307,307,307,307,153,153,153,153,305,305,305,305,76,76,76,76,76,303,303,303,303,151,151,151,151,151,301,301,301,301,75,75,75,75,299,299,299,299,299,149,149,149,149,297,297,297,297,297,74,74,74,74,74,295,295,295,295,147,147,147,147,147,293,293,293,293,73,73,73,73,73,291,291,291,291,291,145,145,145,145,289,289,289,289,289,72,72,72,72,72,287,287,287,287,287,143,143,143,143,143,285,285,285,285,71,71,71,71,71,283,283,283,283,283,141,141,141,141,141,281,281,281,281,281,70,70,70,70,70,279,279,279,279,279,139,139,139,139,139,277,277,277,277,277,69,69,69,69,69,275,275,275,275,275,137,137,137,137,137,273,273,273,273,273,68,68,68,68,68,68,271,271,271,271,271,135,135,135,135,135,269,269,269,269,269,67,67,67,67,67,67,267,267,267,267,267,133,133,133,133,133,265,265,265,265,265,265,66,66,66,66,66,263,263,263,263,263,131,131,131,131,131,131,261,261,261,261,261,65,65,65,65,65,65,259,259,259,259,259,259,129,129,129,129,129,257,257,257,257,257,257,64,64,64,511,511,255,255,255,509,509,509,127,127,127,507,507,507,253,253,253,505,505,505,126,126,126,503,503,503,251,251,501,501,501,125,125,125,499,499,499,249,249,249,497,497,497,124,124,124,495,495,495,247,247,247,493,493,493,123,123,123,491,491,491,245,245,245,489,489,489,122,122,122,487,487,487,243,243,243,485,485,485,121,121,121,483,483,483,483,241,241,241,481,481,481,120,120,120,479,479,479,239,239,239,477];

var shgTable = [9,9,10,10,11,12,14,12,15,13,15,14,14,16,14,14,16,17,15,15,16,17,16,16,16,16,16,18,16,16,18,16,18,18,17,19,19,17,19,17,17,18,17,19,19,18,20,18,20,18,18,18,19,18,20,20,20,18,19,18,19,20,20,18,21,20,19,20,21,19,21,21,20,21,21,19,20,21,21,19,19,19,21,20,21,19,20,21,21,21,22,20,22,22,22,20,21,22,20,20,20,20,20,20,22,21,22,20,21,22,22,22,22,22,21,20,22,21,22,20,22,21,21,22,22,22,22,20,23,23,23,22,23,21,23,22,23,23,23,21,22,23,23,23,23,22,23,23,22,23,21,21,23,22,22,23,23,23,21,21,21,21,21,21,23,23,23,22,22,23,23,21,23,22,22,23,21,23,22,23,23,24,24,22,24,24,22,24,23,24,22,22,24,23,23,24,24,22,22,22,22,22,22,22,22,22,22,22,24,24,24,23,23,24,24,22,24,23,23,24,22,24,23,24,22,24,23,24,22,23,24,22,23,24,22,23,24,24,23,22,24,24,24,23,22,23,24,24,24,24,24,24,24,24,24,22,25,25,25,25,25,25,24,24,24,25,25,23,23,25,25,24,25,25,23,25,24,25,23,23,25,24,25,25,24,25,23,25,24,25,25,24,25,25,24,25,25,24,23,25,25,23,24,23,25,25,25,24,23,24,25,25,25,25,25,25,24,23,24,23,24,23,24,23,24,23,24,23,24,25,25,25,25,25,25,24,23,24,23,25,25,25,24,23,24,25,25,24,23,24,25,25,24,23,25,25,23,24,25,25,24,25,25,26,24,26,26,24,26,26,24,26,26,24,25,26,26,25,24,26,26,24,25,24,26,26,26,25,24,25,26,26,26,26,26,24,25,24,25,24,25,24,25,24,25,24,25,24,25,24,25,24,25,24,25,24,25,26,26,26,26,26,24,25,24,25,26,26,26,26,25,24,25,26,26,25,24,25,26,26,25,24,25,26,26,25,24,26,26,24,25,26,24,25,26,26,25,24,26,25,24,26,25,24,26,25,24,26,25,24,26,25,24,26,25,26,26,25,26,24,26,26,24,26,25,26,26,25,26,24,26,25,26,26,25,26,24,26,25,26,24,26,25,26,24,26,25,26,24,26,25,24,27,27,27,27,27,27,27,27,27,27,27,27,27,26,25,26,25,26,27,27,27,27,27,25,26,25,26,27,27,27,25,26,25,27,27,27,26,25,27,27,27,26,25,27,27,25,26,25,27,27,25,26,27,27,26,27,27,26,25,27,27,25,26,27,25,26,27,27,26,27,27,26,27,27,26,27,27,26,27,27,26,27,25,26,27,25,27,27,25,27,26,25,27,26,27,25,26,27,25,27,26,27,27,26,27,25,27,26,27,27,26,27,25,27,26,27,25,27,26,27,27,26,27,25,27,26,27,25,27,26,27,25,27,26,27,25,27,26,27,25,27,26,27,25,27,26,26,27,25,27,26,27,25,27,26,27,25,27,27,26,27,25,27,26,27,25,25,27,26,27,25,27,27,26,27,25,27,26,26,27,25,27,26,26,27,25,27,26,26,27,25,27,27,26,27,25,25,27,26,27,27,25,27,26,26,27,25,27,27,26,27,27,28,27,26,28,27,26,28,28,26,28,28,26,28,28,26,28,28,26,28,28,26,28,27,26,28,27,26,28,27,28,28,27,28,26,27,28,26,28,27,26,28,27,28,26,27,28,26,28,27,28,28,27,28,26,28,27,28,28,27,28,26,28,27,28,26,28,27,26,28,27,28,26,28,27,28,26,28,27,28,26,28,27,28,26,28,27,28,26,28,27,28,26,28,27,28,26,28,27,28,26,28,27,28,26,28,27,28,26,28,27,27,28,26,28,27,28,26,28,27,28,26,26,28,27,28,26,28,27,28,28,26,28,27,28,26,28,28,27,28,26,28,27,27,28,26,28,27,27,28,26,28,27,27,28,26,28,27,27,28,26,28,27,27,28,26,28,28,27,28,26,26,28,27,28,28,26,28,27,27,28,26,26,28,27,28,28,26,28,28,27,28,26,26,28,27,27,28,26,26,28,27,27,28,26,26,28,27,27,28,26,26,28,27,27,28,26,26,28,27,27,28,26,26,28,28,27,28,28,26,28,28,27,27,28,26,26,28,28,27,28,28,26,26,28,27,27,28,28,26,28,28,27,27,28,28,26,28,28,27,27,28,28,26,28,28,27,27,28,28,26,26,28,28,27,28,28,26,26,28,28,27,27,28,28,26,26,28,28,27,27,28,28,26,26,28,28,27,27,28,26,26,29,28,29,27,29,28,29,27,29,28,29,27,29,28,29,27,29,28,29,27,29,28,29,27,29,29,28,29,27,29,28,29,27,29,28,29,29,27,29,28,29,27,29,28,29,29,27,29,28,29,27,29,28,28,29,27,29,28,29,29,27,29,28,29,27,27,29,28,29,27,29,29,28,29,27,29,29,28,29,27,29,29,28,29,27,29,29,28,29,27,27,29,28,29,27,27,29,28,29,29,27,29,28,28,29,27,29,29,28,29,29,27,29,28,28,29,27,29,29,28,29,29,27,29,28,28,29,27,27,29,28,28,29,27,29,29,28,29,29,27,29,29,28,29,29,27,29,29,28,29,29,27,29,29,28,29,29,27,29,29,28,28,29,27,27,29,28,28,29,27,27,29,29,28,29,29,27,29,29,28,28,29,27,27,29,29,28,29,29,27,27,29,28,28,29,29,27,29,29,28,28,29,29,27,29,29,28,28,29,27,27,29,29,28,28,29,29,27,29,29,28,28,29,29,27,27,29,28,28,29,29,27,27,29,29,28,28,29,29,27,29,29,28,28,29,29,27,27,29,29,28,28,29,29,27,27,29,29,28,28,29,29,27,27,29,29,28,28,29,29,27,27,29,29,28,28,29,29,27,27,29,29,28,28,29,29,27,27,29,29,28,28,28,29,29,27,27,29,29,28,28,29,29,27,27,27,29,29,28,28,29,29,27,27,29,29,29,28,28,29,29,27,27,27,29,29,28,28,29,29,27,27,27,29,29,28,28,29,29,29,27,27,29,29,29,28,28,29,29,27,27,27,29,29,28,28,28,29,29,27,27,27,29,29,28,28,28,29,29,27,27,27,29,29,28,28,28,29,29,27,27,27,29,29,29,28,28,29,29,29,27,27,27,29,29,28,28,28,29,29,29,27,27,29,29,29,28,28,28,29,29,27,27,27,29,29,29,28,28,28,29,29,29,27,30,29,29,30,28,28,30,29,29,30,28,28,30,29,30,30,28,30,30,29,30,30,28,30,30,29,30,30,28,30,30,29,30,30,28,30,30,29,30,30,28,30,30,29,29,30,28,28,30,29,29,30,28,28,30,30,29,30,30,28,30,30,29,29,30,28,28,30,29,29,30,30,28,30,30,29,29,30,28,28,30,30,29,30,30,28,28,30,29,29,30,30,28,30,30,29,29,30,30,28,30,30,29,29,30,30,28,30,30,29,29,30,30,28,30,30,29,29,30,30,28,28,30,29,29,30,30,28,28,30,30,29,29,30,28,28,30,30,29,29,30,30,28,28,30,30,29,29,30,28,28,30,30,29,29,30,30,28,28,30,30,29,29,30,30,28,28,30,30,29,29,30,30,28,28,30,30,29,29,30,30,28,28,30,30,29,29,30,30,28,28,30,30,29,29,30,30,28,28,30,30,29,29,30,30,30,28,28,30,30,29,29,30,30,28,28,30,30,29,29,29,30,30,28,28,30,30,29,29,30,30,28,28,28,30,30,29,29,30,30,28,28,28,30,30,29,29,30,30,28,28,28,30,30,29,29,30,30,30,28,28,30,30,29,29,29,30,30,28,28,30,30,30,29,29,30,30,30,28,28,30,30,29,29,29,30,30,28,28,28,30,30,29,29,29,30,30,28,28,28,30,30,29,29,29,30,30,28,28,28,30,30,29,29,29,30,30,28,28,28,30,30,29,29,29,30,30,30,28,28,30,30,30,29,29,30,30,30,28,28,28,30,30,29,29,29,30,30,30,28,28,28,30,30,29,29,29,30,30,30,28,28,28,30,30,29,29,29,30,30,30,28,28,28,30,30,30,29,29,30,30,30,28,28,28,30,30,30,29,29,29,30,30,30,28,28,28,30,30,30,29,29,29,30,30,30,28,28,28,30,30,30,29,29,29,30,30,30,28,28,28,30,30,30,29,29,29,30,30,30,28,28,28,30,30,30,29,29,29,30,30,30,28,28,28,28,30,30,30,29,29,29,30,30,30,28,28,28,30,30,30,30,29,29,29,30,30,30,28,28,28,30,30,30,30,29,29,29,30,30,30,28,28,28,28,30,30,30,29,29,29,29,30,30,30,28,28,28,30,30,30,30,29,29,29,30,30,30,30,28,28,28,30,30,30,30,29,29,29,30,30,30,30,28,28,28,30,30,30,30,29,29,29,29,30,30,30,28,28,28,28,30,30,30,30,29,29,29,30,30,30,30,28,28,28,28,30,30,30,30,29,29,29,30,30,30,30,28,28,28,28,30,30,30,30,29,29,29,29,30,30,30,30,28,28,28,28,30,30,30,30,29,29,29,29,30,30,30,28,28,28,31,31,30,30,31,31,29,29,31,31,30,30,31,31,29,29,31,31,30,30,31,31,29,29,31,31,30,30,31,31,29,29,31,31,30,30,30,31,31,29,29,31,31,30,30,31,31,29,29,31,31,31,30,30,31,31,29,29,31,31,30,30,31,31,31,29,29,31,31,30,30,31,31,31,29,29,31,31,30,30,31,31,31,29,29,31,31,30,30,31,31,31,29,29,31,31,30,30,30,31,31,29,29,31,31,30,30,30,31,31,29,29,29,31,31,30,30,31,31,31,29,29,31,31,30,30,30,31,31,29,29,29,31,31,30,30,31,31,31,29,29,31,31,31,30,30,31,31,31,29,29,31,31,31,30,30,31,31,31,29,29,31,31,31,30,30,31,31,31,29,29,31,31,31,30,30,30,31,31,29,29,29,31,31,30,30,30,31,31,29,29,29,31,31,31,30,30,31,31,31,29,29,29,31,31,30,30,30,31,31,31,29,29,31,31,31,30,30,30,31,31,31,29,29,31,31,31,30,30,30,31,31,31,29,29,31,31,31,30,30,30,31,31,31,29,29,29,31,31,30,30,30,31,31,31,29,29,29,31,31,31,30,30,30,31,31,31,29,29,31,31,31,30,30,30,31,31,31,29,29,29,31,31,31,30,30,30,31,31,31,29,29,29,31,31,31,30,30,30,31,31,31,29,29,29,31,31,31,30,30,30,31,31,31,29,29,29,31,31,31,31,30,30,30,31,31,31,29,29,29,31,31,31,30,30,30,31,31,31,29,29,29,29,31,31,31,30,30,30,31,31,31,29,29,29,31,31,31,31,30,30,30,31,31,31,29,29,29,31,31,31,31,30,30,30,31,31,31,29,29,29,29,31,31,31,30,30,30,31,31,31,31,29,29,29,31,31,31,31,30,30,30,31,31,31,31,29,29,29,31,31,31,30,30,30,30,31,31,31,29,29,29,29,31,31,31,31,30,30,30,31,31,31,31,29,29,29,31,31,31,31,30,30,30,31,31,31,31,29,29,29,29,31,31,31,30,30,30,30,31,31,31,31,29,29,29,31,31,31,31,30,30,30,30,31,31,31,31,29,29,29,31,31,31,31,30,30,30,30,31,31,31,31,29,29,29,29,31,31,31,30,30,30,30,31,31,31,31,29,29,29,29,31,31,31,31,30,30,30,30,31,31,31,31,29,29,29,29,31,31,31,31,30,30,30,30,31,31,31,31,29,29,29,29,31,31,31,31,30,30,30,30,31,31,31,31,29,29,29,29,29,31,31,31,31,30,30,30,30,31,31,31,31,29,29,29,29,31,31,31,31,30,30,30,30,30,31,31,31,31,29,29,29,29,31,31,31,31,31,30,30,30,30,31,31,31,31,29,29,29,29,29,31,31,31,31,30,30,30,30,30,31,31,31,31,29,29,29,29,31,31,31,31,31,30,30,30,30,31,31,31,31,31,29,29,29,29,29,31,31,31,31,30,30,30,30,30,31,31,31,31,29,29,29,29,29,31,31,31,31,31,30,30,30,30,31,31,31,31,31,29,29,29,29,29,31,31,31,31,31,30,30,30,30,30,31,31,31,31,29,29,29,29,29,31,31,31,31,31,30,30,30,30,30,31,31,31,31,31,29,29,29,29,29,31,31,31,31,31,30,30,30,30,30,31,31,31,31,31,29,29,29,29,29,31,31,31,31,31,30,30,30,30,30,31,31,31,31,31,29,29,29,29,29,29,31,31,31,31,31,30,30,30,30,30,31,31,31,31,31,29,29,29,29,29,29,31,31,31,31,31,30,30,30,30,30,31,31,31,31,31,31,29,29,29,29,29,31,31,31,31,31,30,30,30,30,30,30,31,31,31,31,31,29,29,29,29,29,29,31,31,31,31,31,31,30,30,30,30,30,31,31,31,31,31,31,29,29,29,32,32,31,31,31,32,32,32,30,30,30,32,32,32,31,31,31,32,32,32,30,30,30,32,32,32,31,31,32,32,32,30,30,30,32,32,32,31,31,31,32,32,32,30,30,30,32,32,32,31,31,31,32,32,32,30,30,30,32,32,32,31,31,31,32,32,32,30,30,30,32,32,32,31,31,31,32,32,32,30,30,30,32,32,32,32,31,31,31,32,32,32,30,30,30,32,32,32,31,31,31,32];

The table contains 255 values, so the maximum radius should be 254 but it breaks when exceeding 180. I debugged this and found out that this is because of the sign-propagating right shift operator >>. When using a radius larger than 180 then numbers get so large that bit 31 is set so the number is interpreted as a negative number. So the result gets negative which breaks everything. As far as I can tell the shifted value is never negative so the unsigned right shift operator >>> should be used instead. I changed this in the code and was successfully able to use a radius of up to 254.

Is it possible to publish the patch here?