QonQon

SineRiderSolver.py

Apr 6th, 2015
339
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 13.83 KB | None | 0 0
  1. # SideRiderSolver by Qon
  2. # This is Free Open Source Software! Please be so kind and copy left (GPLv3) :>
  3.  
  4. ROUNDING = 6 # round output numbers to 6 digits. I tried 4 with a really, really long solution sequence and there was no noticable error at all. Using 6 for now though. 2 to 4 might be reasonable numbers.
  5.  
  6. import re
  7. def bend(var, pos, k):
  8.     return (str(round(k, ROUNDING)) +
  9.         (
  10.             "*(" + var
  11.             +("" if pos == 0 else ("-"+str(round(pos, ROUNDING))))
  12.             +"+|"+var
  13.             +("" if pos == 0 else ("-"+str(round(pos, ROUNDING))))
  14.             +"|)" if not k == 0 else ""
  15.         )
  16.     )
  17. def bendMulti(var, list):
  18.     first = True
  19.     bstr = ""
  20.     for b in list:
  21.         tpos, kval = b
  22.         if first:
  23.             bstr += bend(var, tpos, kval)
  24.         else:
  25.             _, prevkval = prevb
  26.             bstr += "+" if (kval-prevkval >= 0) else ""
  27.             bstr += bend(var, tpos, kval - prevkval)
  28.         first = False
  29.         prevb = b
  30.     return "("+bstr+")/2"
  31. def posMulti(list, func='x^8'):
  32.     first = True
  33.     xstr = ""
  34.     ystr = ""
  35.     time = 0
  36.     previtem = (0,0,0)
  37.     retxlist, retylist = [], []
  38.     for item in list:
  39.         xpos, ypos, delay = item
  40.         prevxpos, prevypos, prevdelay = previtem
  41.         retxlist.append( (time, (xpos-prevxpos)/delay) )
  42.         retylist.append( (time, (ypos-prevypos)/delay) )
  43.         time += delay
  44.         previtem = item
  45.     x_movement = bendMulti('t', retxlist)
  46.     y_movement = bendMulti('t', retylist)
  47.     return re.sub(r"(?<![a-zA-Z])x(?![a-zA-Z])", "(x- " + x_movement +")",func) + " + " + y_movement
  48. def bendSmoothTanh(var, b):
  49.     # (-1*(tanh(x+2)+1) +3*(tanh(x-6)+1))/2
  50.     # (-1*(tanh(x*4-2)+1) )/2
  51.     timeStart, delay, posStart, posEnd = b
  52.     timeEnd = timeStart + delay
  53.     return str(posEnd - posStart) + (
  54.         "*(tanh( (" + var + "-" + str(round(timeStart + delay/2, ROUNDING)) + ")/" + str(round(delay/4, ROUNDING)) + ")+1)" if not posEnd == posStart else ""
  55.     )
  56. def bendMultiSmooth(var, list):
  57.     first = True
  58.     bstr = ""
  59.     for b in list:
  60.         if first:
  61.             bstr += bendSmoothTanh(var, b)
  62.         else:
  63.             _,_,posStart,posEnd = b
  64.             bstr += "+" if (posEnd >= posStart) else ""
  65.             bstr += bendSmoothTanh(var, b)
  66.         first = False
  67.         prevb = b
  68.     return "("+bstr+")/2"
  69. def posMultiSmooth(list, func='x^8'):
  70.     first = True
  71.     x_movement ,y_movement = '', ''
  72.     retxlist, retylist = [], []
  73.     prevx, prevy = 0, 0
  74.     time = 0
  75.     for item in list:
  76.         xpos, ypos, delay = item
  77.         retxlist.append( (time, delay, prevx, xpos) )
  78.         retylist.append( (time, delay, prevy, ypos) )
  79.         time += delay
  80.         prevx, prevy = xpos, ypos
  81.         first = False
  82.     x_movement = bendMultiSmooth('t', retxlist)
  83.     y_movement = bendMultiSmooth('t', retylist)
  84.     return re.sub(r"(?<![a-zA-Z])x(?![a-zA-Z])", "(x- " + x_movement +")",func) + " + " + y_movement
  85.  
  86. print("    Uncategorized_A 1.8s\n" + posMulti([(0,-8, .01), (8,-8, 1.7), (8,0, .2)]))
  87. print("    Uncategorized_B 2.2s\n" + posMulti([(0,-8, .01), (8,-8, 1.7), (-8,-8, .5), (-8,-8, 1)]))
  88. print("    Uncategorized_C 7.1s\n" + posMulti([(-4,-4,1.7), (8,8,1), (-12,-12,3), (12,12,1.5)]))
  89. print("    Uncategorized_D 4.8s\n" + posMulti([(0,-8,1.7), (8,0,1), (-8,0,1.3), (0,8,1)]))
  90. print("    Uncategorized_D 3.3s\n" + posMulti([(0,-8,1.7), (8,0,.5), (-9,-128,.7), (-9,-1,.001), (0,8,.5)]))
  91. print("    Uncategorized_E 3.7s\n" + posMulti([(0,-8,0.01), (8,-8,1.5), (16,-8,1), (24,-16,1.3)]))
  92. print("    Uncategorized_F 4.2s\n" + posMulti([(16,-4,1.3), (0,-8,1.3), (16,-12,1.7)]))
  93. print("    Uncategorized_G 1.3s\n" + posMulti([(16,0,1), (8,4,0.4)]))
  94. print("    Uncategorized_H 1.8s\n" + posMulti([(16,-8,1), (8,-8,.8)]))
  95. print("    Uncategorized_I 4.5s\n" + posMulti([(0,2.5,.2), (0,-8,1.4), (0,6.5,.5), (0,-4,1)]))
  96. print("    Uncategorized_J 7.9s\n" + "x^2*t/5-9")
  97. # print("    Uncategorized_K 4.2s\n" + posMulti([(8,-8,1.8), (8,-2,0.3), (-8,-8,1.8), (-8,-2,.3)]))
  98. print("    Uncategorized_K Smooth 4.1s\n" + posMultiSmooth([(8,-8,1.8), (8,-2,0.3), (-8,-8,1.8), (-8,-2,.3)]))
  99. print()
  100. # print("    Qonvergence_0 2.2s\n" + "x^2*t/10")
  101. print("    Qonvergence_0 1.6s\n" + "x^2*t/10+t^6")
  102. print("    Qonvergence_1 1.5s\n" + "x^2*t/10+t*10")
  103. print("    Qonvergence_2 4.6s\n" + "x^2/200-30+x^4/100000")
  104. print("    Qonvergence_3 3.6s\n" + "-cos(x/16)*16+cos(x/4)*2+x^2/100")
  105. print("    Qonvergence_4 3.4s\n" + "-10+sin(x/2.3+0.2)+x/10+x^2*t/40")
  106. print("    Qonvergence_5 3.1s\n" + "((7<x)*(x<9)*(abs(x-8)*7)*(t<1.2) + (-17<x)*(x<-14)*(abs(x+16)*(7+t*150))*(t<.3)) +x^2*t/10")
  107. print()
  108. print("    OutOfOrder_0 1.7s\n" + posMulti([(0,2,.1), (16,0,1), (8,0,.7)]))
  109. print("    OutOfOrder_1 3.2s\n" + posMulti([(24,0,1), (24,0,.5), (16,1.5,.5), (8,-1,.8), (16,-2,.4)]))
  110. print("    OutOfOrder_2 7.9s\n" + posMulti([(12,2,1), (24,0,1), (16,2,1), (8,0,1.2), (20,1,1), (32,0,1.2), (16,0,1.6)]))
  111. print("    OutOfOrder_3 9.1s\n" + posMulti([(-2,3,.2), (-16,0,2), (0,4,2), (16,0,2), (-8,0,3)]))
  112. print()
  113. print("    Pause_0 8.0s\n" + posMulti([(0,8,.01), (0,8,8)]))
  114. # print("    Pause_1 9.8s\n" + "(16*(t+abs(t))-16*(t-0.2+abs(t-0.2))-16*(t-4.2+abs(t-4.2))+16*(t-4.65+abs(t-4.65)))/2")
  115. print("    Pause_1 8.9s\n" + posMulti([(0,4.5,.01), (0,4.5,3.1), (0,-5,0.1), (0,-5,10)]))
  116. print("    Pause_2 8.1s\n" + posMulti([(0,4,.01), (0,4,8.02), (0,8,.03), (0,8,.03)], ''))
  117. # # print("    Pause_3 13.3s\n" + "-(+sin(t/3)-sin(t/3)^3/2+sin(t/3)^5/6-sin(t/3)^7/10)*7+(x-8)^9.5-x/2")
  118. # print("    Pause_3 7.3s\n" + posMulti([(8,0, .5),(8,.5, 2), (8,-8, 0.01), (8,-8, 3)]))
  119. print("    Pause_3 7.2s Smooth\n" + posMulti([(8,-1.5, .4),(8,.5, 2.05), (8,-8, 0.01), (8,-8, 3)]))
  120. print()
  121. # sineridergame.com/SineRider.html?p=AAAAAy=0e=px=0py=0cp=0ci=0ca=0cs=0o=ox=0.1oy=3.485285od=0ot=0oi=1o=ox=10.7oy=10.58529od=0ot=0oi=0o=ox=5.9oy=1.185285od=0ot=0oi=1o=ox=3.9oy=5.785285od=0ot=0oi=1o=ox=2oy=4.685285od=0ot=0oi=1o=ox=5.9oy=6.885285od=0ot=0oi=1o=ox=9.9oy=3.285285od=0ot=0oi=1o=ox=7.9oy=2.185285od=0ot=0oi=1o=ox=10.9oy=5.285285od=0ot=0oi=1o=ox=6.8oy=8.885284od=0ot=0oi=1o=ox=7.7oy=10.78528od=0ot=0oi=1o=ox=11.8oy=7.285285od=0ot=0oi=1o=ox=-2oy=2.285285od=0ot=0oi=1o=ox=-2oy=0.185285od=0ot=0oi=1o=ox=-2oy=-1.914715od=0ot=5oi=1o=ox=0.2oy=-2.014715od=0ot=0oi=1o=ox=2.4oy=-2.114715od=0ot=0oi=1o=ox=4.5oy=-1.014715od=0ot=0oi=1o=ox=14.1oy=12.18528od=0ot=0oi=0o=ox=17.7oy=13.58529od=0ot=0oi=0o=ox=19.3oy=10.88528od=0ot=5oi=0
  122. print("    Qave\n" + posMulti([(7,4,1.5), (12,11, 2), (17,13, 1), (19,10, 1), (19,10, 4.3), (12,5,3), (2,-3,3), (-2,-2,2), (-2,-2,4.5), (-2,2,1), (7,7,2), (8,11,1), (8,11,1)]))
  123. # sineridergame.com/SineRider.html?p=AAAAAy=0e=o=ox=0oy=2.999019od=0ot=0oi=8o=ox=2oy=2.999019od=0ot=0oi=1o=ox=-2oy=2.999019od=0ot=0oi=3o=ox=0oy=4.999019od=0ot=0oi=5o=ox=2oy=4.999019od=0ot=0oi=6o=ox=-2oy=4.999019od=0ot=0oi=7o=ox=0oy=6.999019od=0ot=0oi=0o=ox=2oy=6.999019od=0ot=0oi=2o=ox=-2oy=6.999019od=0ot=0oi=4
  124. print("    Square\n" + posMulti([(-5,0,2), (-5,9,2), (0,9,2), (0,7,2),  (0,9,2), (5,9,2), (5,2,2), (2,2,2),  (5,2,2), (5,7,2), (2,7,2),  (0,9,2), (-5,9,2), (-5,2,2), (-2,2,2),  (-5,2,2), (-5,7,2), (0,7,2),  (0,5,2), (2,5,2), (-2,5,2), (0,3,2), (0,3,2)]))
  125. print("    SquareSmooth\n" + posMultiSmooth([(-5,0,2), (-5,9,2), (0,9,2), (0,7,2),  (0,9,2), (5,9,2), (5,2,2), (2,2,2),  (5,2,2), (5,7,2), (2,7,2),  (0,9,2), (-5,9,2), (-5,2,2), (-2,2,2),  (-5,2,2), (-5,7,2), (0,7,2),  (0,5,2), (2,5,2), (-2,5,2), (0,3,2), (0,3,2)]))
  126. # http://www.reddit.com/r/SineRider/comments/2j1nru/fun_with_waves_custom_puzzle/
  127. # http://sineridergame.com/SineRider.html?p=AAAAAy=0e=o=ox=5oy=0od=0ot=0oi=-1o=ox=11oy=3od=0ot=0oi=-1o=ox=17oy=-4od=0ot=0oi=-1o=ox=30oy=2od=0ot=0oi=-1o=ox=46oy=-7od=0ot=0oi=-1o=ox=61oy=0od=0ot=0oi=-1
  128. print("    FunWithWaves\n" + posMulti([(5,-.3,1), (11,3,1), (17,-4,1.3), (30,2,2), (46,-7,2), (61,0,1.9)], 'x^2/3'))
  129.  
  130. # Program output:
  131. #     Uncategorized_A 1.8s
  132. # (x- (0.0+4.705882*(t-0.01+|t-0.01|)-4.705882*(t-1.71+|t-1.71|))/2)^8 + (-800.0*(t+|t|)+800.0*(t-0.01+|t-0.01|)+40.0*(t-1.71+|t-1.71|))/2
  133. #     Uncategorized_B 2.2s
  134. # (x- (0.0+4.705882*(t-0.01+|t-0.01|)-36.705882*(t-1.71+|t-1.71|)+32.0*(t-2.21+|t-2.21|))/2)^8 + (-800.0*(t+|t|)+800.0*(t-0.01+|t-0.01|)+0.0+0.0)/2
  135. #     Uncategorized_C 7.1s
  136. # (x- (-2.352941*(t+|t|)+14.352941*(t-1.7+|t-1.7|)-18.666667*(t-2.7+|t-2.7|)+22.666667*(t-5.7+|t-5.7|))/2)^8 + (-2.352941*(t+|t|)+14.352941*(t-1.7+|t-1.7|)-18.666667*(t-2.7+|t-2.7|)+22.666667*(t-5.7+|t-5.7|))/2
  137. #     Uncategorized_D 4.8s
  138. # (x- (0.0+8.0*(t-1.7+|t-1.7|)-20.307692*(t-2.7+|t-2.7|)+20.307692*(t-4.0+|t-4.0|))/2)^8 + (-4.705882*(t+|t|)+12.705882*(t-1.7+|t-1.7|)-8.0*(t-2.7+|t-2.7|)+8.0*(t-4.0+|t-4.0|))/2
  139. #     Uncategorized_D 3.3s
  140. # (x- (0.0+16.0*(t-1.7+|t-1.7|)-40.285714*(t-2.2+|t-2.2|)+24.285714*(t-2.9+|t-2.9|)+18.0*(t-2.901+|t-2.901|))/2)^8 + (-4.705882*(t+|t|)+20.705882*(t-1.7+|t-1.7|)-198.857143*(t-2.2+|t-2.2|)+127182.857143*(t-2.9+|t-2.9|)-126982.0*(t-2.901+|t-2.901|))/2
  141. #     Uncategorized_E 3.7s
  142. # (x- (0.0+5.333333*(t-0.01+|t-0.01|)+2.666667*(t-1.51+|t-1.51|)-1.846154*(t-2.51+|t-2.51|))/2)^8 + (-800.0*(t+|t|)+800.0*(t-0.01+|t-0.01|)+0.0-6.153846*(t-2.51+|t-2.51|))/2
  143. #     Uncategorized_F 4.2s
  144. # (x- (12.307692*(t+|t|)-24.615385*(t-1.3+|t-1.3|)+21.719457*(t-2.6+|t-2.6|))/2)^8 + (-3.076923*(t+|t|)+0.0+0.723982*(t-2.6+|t-2.6|))/2
  145. #     Uncategorized_G 1.3s
  146. # (x- (16.0*(t+|t|)-36.0*(t-1+|t-1|))/2)^8 + (0.0+10.0*(t-1+|t-1|))/2
  147. #     Uncategorized_H 1.8s
  148. # (x- (16.0*(t+|t|)-26.0*(t-1+|t-1|))/2)^8 + (-8.0*(t+|t|)+8.0*(t-1+|t-1|))/2
  149. #     Uncategorized_I 4.5s
  150. # (x- (0.0+0.0+0.0+0.0)/2)^8 + (12.5*(t+|t|)-20.0*(t-0.2+|t-0.2|)+36.5*(t-1.6+|t-1.6|)-39.5*(t-2.1+|t-2.1|))/2
  151. #     Uncategorized_J 7.9s
  152. # x^2*t/5-9
  153. #     Uncategorized_K Smooth 4.1s
  154. # (x- (8*(tanh( (t-0.9)/0.45)+1)+0-16*(tanh( (t-3.0)/0.45)+1)+0)/2)^8 + (-8*(tanh( (t-0.9)/0.45)+1)+6*(tanh( (t-1.95)/0.075)+1)-6*(tanh( (t-3.0)/0.45)+1)+6*(tanh( (t-4.05)/0.075)+1))/2
  155.  
  156. #     Qonvergence_0 1.6s
  157. # x^2*t/10+t^6
  158. #     Qonvergence_1 1.5s
  159. # x^2*t/10+t*10
  160. #     Qonvergence_2 4.6s
  161. # x^2/200-30+x^4/100000
  162. #     Qonvergence_3 3.6s
  163. # -cos(x/16)*16+cos(x/4)*2+x^2/100
  164. #     Qonvergence_4 3.4s
  165. # -10+sin(x/2.3+0.2)+x/10+x^2*t/40
  166. #     Qonvergence_5 3.1s
  167. # ((7<x)*(x<9)*(abs(x-8)*7)*(t<1.2) + (-17<x)*(x<-14)*(abs(x+16)*(7+t*150))*(t<.3)) +x^2*t/10
  168.  
  169. #     OutOfOrder_0 1.7s
  170. # (x- (0.0+16.0*(t-0.1+|t-0.1|)-27.428571*(t-1.1+|t-1.1|))/2)^8 + (20.0*(t+|t|)-22.0*(t-0.1+|t-0.1|)+2.0*(t-1.1+|t-1.1|))/2
  171. #     OutOfOrder_1 3.2s
  172. # (x- (24.0*(t+|t|)-24.0*(t-1+|t-1|)-16.0*(t-1.5+|t-1.5|)+6.0*(t-2.0+|t-2.0|)+30.0*(t-2.8+|t-2.8|))/2)^8 + (0.0+0.0+3.0*(t-1.5+|t-1.5|)-6.125*(t-2.0+|t-2.0|)+0.625*(t-2.8+|t-2.8|))/2
  173. #     OutOfOrder_2 7.9s
  174. # (x- (12.0*(t+|t|)+0.0-20.0*(t-2+|t-2|)+1.333333*(t-3+|t-3|)+18.666667*(t-4.2+|t-4.2|)-2.0*(t-5.2+|t-5.2|)-20.0*(t-6.4+|t-6.4|))/2)^8 + (2.0*(t+|t|)-4.0*(t-1+|t-1|)+4.0*(t-2+|t-2|)-3.666667*(t-3+|t-3|)+2.666667*(t-4.2+|t-4.2|)-1.833333*(t-5.2+|t-5.2|)+0.833333*(t-6.4+|t-6.4|))/2
  175. #     OutOfOrder_3 9.1s
  176. # (x- (-10.0*(t+|t|)+3.0*(t-0.2+|t-0.2|)+15.0*(t-2.2+|t-2.2|)+0.0-16.0*(t-6.2+|t-6.2|))/2)^8 + (15.0*(t+|t|)-16.5*(t-0.2+|t-0.2|)+3.5*(t-2.2+|t-2.2|)-4.0*(t-4.2+|t-4.2|)+2.0*(t-6.2+|t-6.2|))/2
  177.  
  178. #     Pause_0 8.0s
  179. # (x- (0.0+0.0)/2)^8 + (800.0*(t+|t|)-800.0*(t-0.01+|t-0.01|))/2
  180. #     Pause_1 8.9s
  181. # (x- (0.0+0.0+0.0+0.0)/2)^8 + (450.0*(t+|t|)-450.0*(t-0.01+|t-0.01|)-95.0*(t-3.11+|t-3.11|)+95.0*(t-3.21+|t-3.21|))/2
  182. #     Pause_2 8.1s
  183. #  + (400.0*(t+|t|)-400.0*(t-0.01+|t-0.01|)+133.333333*(t-8.03+|t-8.03|)-133.333333*(t-8.06+|t-8.06|))/2
  184. #     Pause_3 7.2s Smooth
  185. # (x- (20.0*(t+|t|)-20.0*(t-0.4+|t-0.4|)+0.0+0.0)/2)^8 + (-3.75*(t+|t|)+4.72561*(t-0.4+|t-0.4|)-850.97561*(t-2.45+|t-2.45|)+850.0*(t-2.46+|t-2.46|))/2
  186.  
  187. #     Qave
  188. # (x- (4.666667*(t+|t|)-2.166667*(t-1.5+|t-1.5|)+2.5*(t-3.5+|t-3.5|)-3.0*(t-4.5+|t-4.5|)-2.0*(t-5.5+|t-5.5|)-2.333333*(t-9.8+|t-9.8|)-1.0*(t-12.8+|t-12.8|)+1.333333*(t-15.8+|t-15.8|)+2.0*(t-17.8+|t-17.8|)+0.0+4.5*(t-23.3+|t-23.3|)-3.5*(t-25.3+|t-25.3|)-1.0*(t-26.3+|t-26.3|))/2)^8 + (2.666667*(t+|t|)+0.833333*(t-1.5+|t-1.5|)-1.5*(t-3.5+|t-3.5|)-5.0*(t-4.5+|t-4.5|)+3.0*(t-5.5+|t-5.5|)-1.666667*(t-9.8+|t-9.8|)-1.0*(t-12.8+|t-12.8|)+3.166667*(t-15.8+|t-15.8|)-0.5*(t-17.8+|t-17.8|)+4.0*(t-22.3+|t-22.3|)-1.5*(t-23.3+|t-23.3|)+1.5*(t-25.3+|t-25.3|)-4.0*(t-26.3+|t-26.3|))/2
  189. #     Square
  190. # (x- (-2.5*(t+|t|)+2.5*(t-2+|t-2|)+2.5*(t-4+|t-4|)-2.5*(t-6+|t-6|)+0.0+2.5*(t-10+|t-10|)-2.5*(t-12+|t-12|)-1.5*(t-14+|t-14|)+3.0*(t-16+|t-16|)-1.5*(t-18+|t-18|)-1.5*(t-20+|t-20|)+0.5*(t-22+|t-22|)-1.5*(t-24+|t-24|)+2.5*(t-26+|t-26|)+1.5*(t-28+|t-28|)-3.0*(t-30+|t-30|)+1.5*(t-32+|t-32|)+2.5*(t-34+|t-34|)-2.5*(t-36+|t-36|)+1.0*(t-38+|t-38|)-3.0*(t-40+|t-40|)+3.0*(t-42+|t-42|)-1.0*(t-44+|t-44|))/2)^8 + (0.0+4.5*(t-2+|t-2|)-4.5*(t-4+|t-4|)-1.0*(t-6+|t-6|)+2.0*(t-8+|t-8|)-1.0*(t-10+|t-10|)-3.5*(t-12+|t-12|)+3.5*(t-14+|t-14|)+0.0+2.5*(t-18+|t-18|)-2.5*(t-20+|t-20|)+1.0*(t-22+|t-22|)-1.0*(t-24+|t-24|)-3.5*(t-26+|t-26|)+3.5*(t-28+|t-28|)+0.0+2.5*(t-32+|t-32|)-2.5*(t-34+|t-34|)-1.0*(t-36+|t-36|)+1.0*(t-38+|t-38|)+0.0-1.0*(t-42+|t-42|)+1.0*(t-44+|t-44|))/2
  191. #     SquareSmooth
  192. # (x- (-5*(tanh( (t-1.0)/0.5)+1)+0+5*(tanh( (t-5.0)/0.5)+1)+0+0+5*(tanh( (t-11.0)/0.5)+1)+0-3*(tanh( (t-15.0)/0.5)+1)+3*(tanh( (t-17.0)/0.5)+1)+0-3*(tanh( (t-21.0)/0.5)+1)-2*(tanh( (t-23.0)/0.5)+1)-5*(tanh( (t-25.0)/0.5)+1)+0+3*(tanh( (t-29.0)/0.5)+1)-3*(tanh( (t-31.0)/0.5)+1)+0+5*(tanh( (t-35.0)/0.5)+1)+0+2*(tanh( (t-39.0)/0.5)+1)-4*(tanh( (t-41.0)/0.5)+1)+2*(tanh( (t-43.0)/0.5)+1)+0)/2)^8 + (0+9*(tanh( (t-3.0)/0.5)+1)+0-2*(tanh( (t-7.0)/0.5)+1)+2*(tanh( (t-9.0)/0.5)+1)+0-7*(tanh( (t-13.0)/0.5)+1)+0+0+5*(tanh( (t-19.0)/0.5)+1)+0+2*(tanh( (t-23.0)/0.5)+1)+0-7*(tanh( (t-27.0)/0.5)+1)+0+0+5*(tanh( (t-33.0)/0.5)+1)+0-2*(tanh( (t-37.0)/0.5)+1)+0+0-2*(tanh( (t-43.0)/0.5)+1)+0)/2
  193. #     FunWithWaves
  194. # (x- (5.0*(t+|t|)+1.0*(t-1+|t-1|)-1.384615*(t-2+|t-2|)+1.884615*(t-3.3+|t-3.3|)+1.5*(t-5.3+|t-5.3|)-0.105263*(t-7.3+|t-7.3|))/2)^2/3 + (-0.3*(t+|t|)+3.6*(t-1+|t-1|)-8.684615*(t-2+|t-2|)+8.384615*(t-3.3+|t-3.3|)-7.5*(t-5.3+|t-5.3|)+8.184211*(t-7.3+|t-7.3|))/2
Add Comment
Please, Sign In to add comment