Advertisement
Mikescher

T-SQL Mandelbrot

Jan 30th, 2014
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 13.61 KB | None | 0 0
  1. -- AUTHOR: GRAEME JOB
  2. -- CREATED: 12-OCT-2008
  3. -- BECAUSE: SINGLE SQL COMMAND < 50 LINES. JUST BECAUSE.
  4. WITH
  5.       XGEN(X, IX) AS (              -- X DIM GENERATOR
  6.             SELECT CAST(-2.2 AS FLOAT) AS X, 0 AS IX UNION ALL
  7.             SELECT CAST(X + 0.031 AS FLOAT) AS X, IX + 1 AS IX
  8.             FROM XGEN
  9.             WHERE IX < 100
  10.       ),
  11.       YGEN(Y, IY) AS (              -- Y DIM GENERATOR
  12.             SELECT CAST(-1.5 AS FLOAT) AS Y, 0 AS IY UNION ALL
  13.             SELECT CAST(Y + 0.031 AS FLOAT) AS Y, IY + 1 AS IY
  14.             FROM YGEN
  15.             WHERE IY < 100
  16.       ),
  17.       Z(IX, IY, CX, CY, X, Y, I) AS (           -- Z POINT ITERATOR
  18.             SELECT IX, IY, X, Y, X, Y, 0
  19.             FROM XGEN, YGEN  
  20.             UNION ALL
  21.             SELECT IX, IY, CX, CY, X * X - Y * Y + CX AS X, Y * X * 2 + CY, I + 1
  22.             FROM Z
  23.             WHERE X * X + Y * Y < 16
  24.             AND I < 100
  25.       )
  26. SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
  27.       REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
  28.       REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
  29.       (X0+X1+X2+X3+X4+X5+X6+X7+X8+X9+X10+X11+X12+X13+X14+X15+X16+X17+X18+X19+
  30.       X20+X21+X22+X23+X24+X25+X26+X27+X28+X29+X30+X31+X32+X33+X34+X35+X36+X37+X38+X39+
  31.       X40+X41+X42+X43+X44+X45+X46+X47+X48+X49+X50+X51+X52+X53+X54+X55+X56+X57+X58+X59+
  32.       X60+X61+X62+X63+X64+X65+X66+X67+X68+X69+X70+X71+X72+X73+X74+X75+X76+X77+X78+X79+
  33.       X80+X81+X82+X83+X84+X85+X86+X87+X88+X89+X90+X91+X92+X93+X94+X95+X96+X97+X98+X99),
  34.       'A',' '),   'B','.'),   'C',','),   'D',','),   'E',','),   'F','-'),   'G','-'),
  35.       'H','-'),   'I','-'),   'J','-'),   'K','+'),   'L','+'),   'M','+'),   'N','+'),
  36.       'O','%'),   'P','%'),   'Q','%'),   'R','%'),   'S','@'),   'T','@'),   'U','@'),
  37.       'V','@'),   'W','#'),   'X','#'),   'Y','#'),   'Z',' ')
  38. FROM (
  39.       SELECT 'X' + CAST(IX AS VARCHAR) AS IX,
  40.       IY,   SUBSTRING('ABCDEFGHIJKLMNOPQRSTUVWXYZ', ISNULL(NULLIF(I, 0), 1), 1) AS I
  41.       FROM Z) ZT
  42. PIVOT (
  43.       MAX(I) FOR IX IN (
  44.       X0,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14,X15,X16,X17,X18,X19,
  45.       X20,X21,X22,X23,X24,X25,X26,X27,X28,X29,X30,X31,X32,X33,X34,X35,X36,X37,X38,X39,
  46.       X40,X41,X42,X43,X44,X45,X46,X47,X48,X49,X50,X51,X52,X53,X54,X55,X56,X57,X58,X59,
  47.       X60,X61,X62,X63,X64,X65,X66,X67,X68,X69,X70,X71,X72,X73,X74,X75,X76,X77,X78,X79,
  48.       X80,X81,X82,X83,X84,X85,X86,X87,X88,X89,X90,X91,X92,X93,X94,X95,X96,X97,X98,X99)
  49. ) AS PZT
  50.  
  51.  
  52. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  53.                                                       RESULT
  54. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  55.  
  56. --              ....................................................................................  
  57. --             .......................................................................................
  58. --            .........................................................................................
  59. --           ..........................................................................................
  60. --         ....................................................,,,,,,,,,...............................
  61. --        ................................................,,,,,,,,,,,,,,,,,,...........................
  62. --       ..............................................,,,,,,,,,,,,,,,,,,,,,,,,........................
  63. --      ............................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,......................
  64. --      ..........................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....................
  65. --     .........................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..................
  66. --    ........................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................
  67. --   .......................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...............
  68. --  .......................................,,,,,,,,,,,,,,,,,,,,,,,,--,,,,,,,,,,,,,,,,,,,,..............
  69. -- ......................................,,,,,,,,,,,,,,,,,,,,,,,,,,-+--,,,,,,,,,,,,,,,,,,,.............
  70. -- ....................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----,,,,,,,,,,,,,,,,,,,............
  71. -- ...................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,--- -----,,,,,,,,,,,,,,,,,...........
  72. -- .................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---++--++,,,,,,,,,,,,,,,,,,..........
  73. -- ................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----%++---,,,,,,,,,,,,,,,,,..........
  74. -- ..............................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----+%----,,,,,,,,,,,,,,,,,,.........
  75. -- .............................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----- %%+----,,,,,,,,,,,,,,,,,,........
  76. -- ...........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---%-+%   ----,,,,,,,,,,,,,,,,,,,.......
  77. -- ..........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---+ + #  %+%---,,,,,,,,,,,,,,,,,,.......
  78. -- ........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----#      # +---,,,,,,,,,,,,,,,,,,......
  79. -- .......................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------%       %-----,,,,,,,,,,,,,,,,,......
  80. -- .....................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------+         ------,,,,,,,,,,,,,,,,,.....
  81. -- ....................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------+@       +-----------,,,,,,,,,,,,.....
  82. -- ..................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----@-------++       ++-----------,,,,,,,,,,,,....
  83. -- .................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--+@% ---+ +@%%@     %%+@+@%------+-,,,,,,,,,,,....
  84. -- ................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----  # ++%               % @-----++--,,,,,,,,,,,...
  85. -- ..............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----+    %                  %%++ %+%@-,,,,,,,,,,,...
  86. -- .............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----+                         %    ++-,,,,,,,,,,,,..
  87. -- ............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------+                             @---,,,,,,,,,,,,..
  88. -- ..........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------++%                             ---,,,,,,,,,,,,..
  89. -- .........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------+ +                             %+---,,,,,,,,,,,,,.
  90. -- ........,,,,,,,,,,,,,,,,,,,,,--------------------@                                +----,,,,,,,,,,,,.
  91. -- .......,,,,,,,,,,,,,,,,,,,,,,- +-----------------+                                 ----,,,,,,,,,,,,.
  92. -- .......,,,,,,,,,,,,,,,,,,,,,--++------+---------+%                                 +++--,,,,,,,,,,,,
  93. -- ......,,,,,,,,,,,,,,,,,,,,,,--%+-----++---------                                     #+-,,,,,,,,,,,,
  94. -- .....,,,,,,,,,,,,,,,,,,,,,,----#%++--+@ -+-----+%                                     --,,,,,,,,,,,,
  95. -- .....,,,,,,,,,,,,,,,,,,,,,,-----+## ++@ + +----%                                    +--,,,,,,,,,,,,,
  96. -- ....,,,,,,,,,,,,,,,,,,,,,,------+@  @     @@++++#                                   +--,,,,,,,,,,,,,
  97. -- ....,,,,,,,,,,,,,,,,,,,,,-------%           #++%                                      -,,,,,,,,,,,,,
  98. -- ...,,,,,,,,,,,,,,,,,,,,,------++%#           %%@                                     %-,,,,,,,,,,,,,
  99. -- ...,,,,,,,,,,,,,,,,,,,--------+               %                                     +--,,,,,,,,,,,,,
  100. -- ...,,,,,,,,,,,,,,,,,,-----+--++@              #                                      --,,,,,,,,,,,,,
  101. -- ..,,,,,,,,,,,,,,,,,-------%+++%                                                    @--,,,,,,,,,,,,,,
  102. -- ..,,,,,,,,,,,-------------+ @ @                                                    ---,,,,,,,,,,,,,,
  103. -- ..,,,,,,,,,---@--------@-+%                                                       +---,,,,,,,,,,,,,,
  104. -- ..,,,,,------- +-++++-+%%%                                                       +----,,,,,,,,,,,,,,
  105. -- ..,,,,,,------%--------++%                                                       +----,,,,,,,,,,,,,,
  106. -- ..,,,,,,,,,,--+----------++#                                                       ---,,,,,,,,,,,,,,
  107. -- ..,,,,,,,,,,,,------------+@@@%                                                    +--,,,,,,,,,,,,,,
  108. -- ..,,,,,,,,,,,,,,,,,------- +++%                                                    %--,,,,,,,,,,,,,,
  109. -- ...,,,,,,,,,,,,,,,,,,---------+@              @                                      --,,,,,,,,,,,,,
  110. -- ...,,,,,,,,,,,,,,,,,,,,------- #              %@                                    +--,,,,,,,,,,,,,
  111. -- ...,,,,,,,,,,,,,,,,,,,,,-------++@           %+                                      %-,,,,,,,,,,,,,
  112. -- ....,,,,,,,,,,,,,,,,,,,,,-------            %++%                                     %-,,,,,,,,,,,,,
  113. -- ....,,,,,,,,,,,,,,,,,,,,,,------+#  %#   #@ ++++                                    +--,,,,,,,,,,,,,
  114. -- .....,,,,,,,,,,,,,,,,,,,,,,-----+ %%++% +@+----+                                    +--,,,,,,,,,,,,,
  115. -- .....,,,,,,,,,,,,,,,,,,,,,,,---%+++--+#+--------%                                    #--,,,,,,,,,,,,
  116. -- ......,,,,,,,,,,,,,,,,,,,,,,--++-----%%---------                                    @#--,,,,,,,,,,,,
  117. -- .......,,,,,,,,,,,,,,,,,,,,,---------------------+@                                +-++,,,,,,,,,,,,.
  118. -- ........,,,,,,,,,,,,,,,,,,,,,--------------------+                                 ----,,,,,,,,,,,,.
  119. -- .........,,,,,,,,,,,,,,,,,,,,----,,,-------------                                #+----,,,,,,,,,,,,.
  120. -- ..........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------+ +                              +---,,,,,,,,,,,,,.
  121. -- ...........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------+%#                           #---,,,,,,,,,,,,..
  122. -- ............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------+#                        @   @---,,,,,,,,,,,,..
  123. -- .............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----+#                        +    @--,,,,,,,,,,,,..
  124. -- ..............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---+%   %+@                 %+-+ +++%-,,,,,,,,,,,...
  125. -- ................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----% %@++              # %  -----++-,,,,,,,,,,,,...
  126. -- .................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-- ++ ---+ + +%@     %++++++------%-,,,,,,,,,,,....
  127. -- ...................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---- -------++       +------------,,,,,,,,,,,,....
  128. -- ....................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----------+%       +--------,,,,,,,,,,,,,,,.....
  129. -- ......................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------+         -----,,,,,,,,,,,,,,,,,,.....
  130. -- .......................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------+        ----,,,,,,,,,,,,,,,,,,......
  131. -- .........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----+%      %#---,,,,,,,,,,,,,,,,,,,......
  132. -- ..........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---+%+%@  %+%%--,,,,,,,,,,,,,,,,,,.......
  133. -- ............................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---+-+%  %----,,,,,,,,,,,,,,,,,,........
  134. -- .............................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----+%@+---,,,,,,,,,,,,,,,,,,,........
  135. -- ...............................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----+%----,,,,,,,,,,,,,,,,,,.........
  136. -- ................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----%+ +--,,,,,,,,,,,,,,,,,..........
  137. -- ..................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---++----,,,,,,,,,,,,,,,,,...........
  138. -- ...................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,---@-----,,,,,,,,,,,,,,,,,...........
  139. -- .....................................,,,,,,,,,,,,,,,,,,,,,,,,,,,-----,,,,,,,,,,,,,,,,,,,............
  140. --  .....................................,,,,,,,,,,,,,,,,,,,,,,,,,,--%,,,,,,,,,,,,,,,,,,,,.............
  141. --  .......................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...............
  142. --   ........................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................
  143. --    ........................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................
  144. --     .........................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..................
  145. --      ..........................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....................
  146. --       ............................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,......................
  147. --        .............................................,,,,,,,,,,,,,,,,,,,,,,,,........................
  148. --         ................................................,,,,,,,,,,,,,,,,,...........................
  149. --          .....................................................,,,,..................................
  150. --           ..........................................................................................
  151. --            .........................................................................................
  152. --             ......................................................................................  
  153. --              ....................................................................................  
  154. --                .................................................................................    
  155. --                 ..............................................................................      
  156. --                   ...........................................................................
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement