X{      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~portableunstableclaudiusmaximus@goto10.org Safe-InferredStrict  type. portableunstableclaudiusmaximus@goto10.orgNone  Complex number type without the  constraint. Extract the real part. Extract the imaginary part. Complex conjugate. Complex magnitude squared. Complex magnitude. Complex phase. 3Complex number with the given magnitude and phase. 5Complex number with magnitude 1 and the given phase. Convert to polar form.      portableunstableclaudiusmaximus@goto10.orgNone Iteration output. Iteration state. Iteration mode. "Iteration initial state. #Iteration engine. $Iterate over a list.   !"#$  !"#$#!  "#$ ! "#$portableunstableclaudiusmaximus@goto10.orgNone %Image bounds and coordinates. &Channels in an image. ' in [-pi,pi] (normalized to pixel spacing )continuous dwell *Render an image with the !$ algorithm. The iteration count is J doubled until the image is good enough, or the fixed maximum iteration  count is reached. W putStr . unicode $ simpleImage (coordinates 100 100 ((-1.861):+0) (0.001)) 1000000000 +Render an image with the $ algorithm. The iteration count is J doubled until the image is good enough, or the fixed maximum iteration 9 count is reached. The output values are converted to . a putStr . unicode . border $ complexImage (coordinates 100 100 ((-1.861):+0) (0.001)) 1000000000 ,Image rendering loop. -;The parameter plane coordinates for an image, with bounds. .@Convert a distance estimate image to a near-boundary bit array. / The input image must have a DistanceEstimate' channel. /'Convert a bit array to ascii graphics. 0/Convert a bit array to unicode block graphics. Strict version of  modifySTRef. %&'()* coordinates max iterations image + coordinates max iterations image ,  escapees output array max iterations  iterations prior escapees iterations this phase  iterates output callback output array as given -width height center size .image /image ascii 0image  unicode %&'()*+,-./0 *+,-/0&)('%. %&)('*+,-./0portableunstableclaudiusmaximus@goto10.orgNone1?Given the period and approximate location, successively refine  this estimate to a nucleus. 'The algorithm is based on Robert Munafo's page  Newton-Raphson method   3http://mrob.com/pub/muency/newtonraphsonmethod.html. 2@Given the period and nucleus, find succesive refinements to the ) bond point at a given internal angle. %The algorithm is based on ideas from   *http://mrob.com/pub/muency/derivative.html. 3IGiven the period and nucleus, find an interior point at a given internal  angle and radius in (0,1]. 4>Find the period of the lowest period nucleus inside a square. 'The algorithm is based on Robert Munafo's page,  Finding the Period of a mu-Atom   &http://mrob.com/pub/muency/period.html. 1period  estimate 2period  nucleus angle 3period  nucleus radius angle 4maximum period radius center 123441231234portableunstableclaudiusmaximus@goto10.org Safe-Inferred*5AAngled internal addresses have angles between each integer in an  internal address. 8CInternal addresses are a non-empty sequence of strictly increasing  integers beginning with '1'. :#Kneading sequences. Note that the > case has an infinite list. ? Elements of kneading sequences. 1Binary representation of a (pre-)periodic angle. C2Angle as a fraction of a turn, usually in [0, 1). D Convert to human readable form. E Convert to human readable form. FWrap an angle into [0, 1). GAngle doubling map. -Convert an angle from binary representation. &Convert a list of bits to an integer. +Convert an angle to binary representation. >Tuning transformation for binary represented periodic angles. = Probably only valid for angle pairs presenting ray pairs. "Tuning transformation for angles. H Knead character representation. I$Kneading sequence as a string. The > case is truncated arbitrarily. J-The kneading sequence for an external angle. K&The period of a kneading sequence, or  when it isn' t periodic. L0Unwrap a kneading sequence to an infinite list. MInternal address as a string. NConstruct a valid 8, checking the precondition. O"Extract the sequence of integers. P Construct an 8 from a kneading sequence. Q!A star-periodic kneading sequence's upper and lower associated  kneading sequences. R(The upper associated kneading sequence. S(The lower associated kneading sequence. T%Angled internal address as a string. UBuilds a valid 5 from a list, checking the # precondition that only the last ' Maybe Angle' should be ,  and the  must be strictly increasing. V Convert an 5 to a list. W@The angled internal address corresponding to an external angle. X5Split an angled internal address at the last island. YThe inverse of X. Z*The period of an angled internal address. [4Discard angle information from an internal address. \?The pair of external angles whose rays land at the root of the B hyperbolic component described by the angled internal address. ]Parse an angle. ^Parse a list of angles. _Parse a kneading element. `)Parse a non-aperiodic kneading sequence. aParse an internal address. b=Parse an angled internal address, accepting some unambiguous  abbreviations. P56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab.56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab.CGFDE?BA@H:>=<;IJKLQRS89MPNO576TWUV\[XYZ]^_`abD57689:>=<;?BA@CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abportableunstableclaudiusmaximus@goto10.orgNonec<Compute the external ray for an external angle with a given : accuracy, sharpness and starting radius. For example:  # externalRay 1e-10 8 (2**24) (1/3) )The algorithm is based on Tomoki Kawahira's paper  8An algorithm to draw external rays of the Mandelbrot set   Bhttp://www.math.nagoya-u.ac.jp/~kawahira/programs/mandel-exray.pdf. d@Compute the external ray outwards from a given parameter value.  If the result rs satisfies:   c = last rs  magnitude c > radius $then the external angle is given by t:  a = phase c / (2 * pi)  t = a - fromIntegral (floor a) c accuracy  sharpness radius external angle d iterations  epsilon  accuracy  sharpness radius  parameter cdcdcdportableunstableclaudiusmaximus@goto10.orgNone eProgress updates for . qProgress updates for . Progress updates for . Mu-atom properties. 1Try to find an atom, providing progress updates. -Find the first success in the progress list. Find an atom from its address. 4Try to find an address, providing progress updates. -Find the first success in the progress list. Find an address for a mu-atom. GTry to find an atom close to a coordinate, providing progress updates. -Find the first success in the progress list. $Find an atom close to a coordinate. ?efghijklmnopqrstuvwxyz{|}~center radius 9efghijklmnopqrstuvwxyz{|}~9q~}|{zyxwvutsreponmlkjihgfe ponmlkjihgfq ~}|{zyxwvutsr       !"#$%&'()*+,-./0(123456789:;<=>??@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ruff-0.3.2Fractal.RUFF.Types.TupleFractal.RUFF.Types.ComplexFractal.RUFF.Mandelbrot.IterateFractal.RUFF.Mandelbrot.ImageFractal.RUFF.Mandelbrot.NucleusFractal.RUFF.Mandelbrot.AddressFractal.RUFF.Mandelbrot.RayFractal.RUFF.Mandelbrot.AtomTuple2Complex:+realPartimagPart conjugate magnitude2 magnitudephasemkPolarcispolarOutputOutDistanceEstimatedistanceEstimate OutEscapeTime escapeTime finalAngle OutSimpleoutUserIterateIterDistanceEstimateitdzIterEscapeTimeitn IterSimpleitcitziterUserModeDistanceEstimate EscapeTimeSimpleinitialiterateiterates CoordinatesChannel FinalAngleDistanceEstimate' simpleImage complexImage imageLoop coordinatesborderasciiunicode findNucleusfindBond findInternal findPeriodAngledInternalAddressAngledUnangledInternalAddressKneadingPeriodic StarPeriodic PrePeriodic AperiodicKneadStarOneZeroAngle prettyAngle prettyAngleswrapdouble kneadCharprettyKneadingkneadingperiodunwrapprettyInternalAddressinternalFromListinternalToListinternalAddress associatedupperlowerprettyAngledInternalAddressangledFromList angledToListangledInternalAddress splitAddress joinAddress addressPeriod stripAnglesexternalAngles parseAngle parseAngles parseKnead parseKneadingparseInternalAddressparseAngledInternalAddress externalRayexternalRayOutLocate LocateFailed LocateSuccessLocateBondDone LocateBondLocateBondTodoLocateNucleusDone LocateNucleusLocateNucleusTodoLocateScanDone LocateScanLocateScanTodo FindAddress AddressFailedAddressSuccessAddressAddressTodoAddressExternalDoneAddressExternalTodoAddressRayOutDone AddressRayOutAddressRayOutTodoAddressDwellDone AddressDwellAddressDwellTodoAddressCuspDoneAddressCuspTodoFindAtom AtomFailed AtomSuccess AtomBondDoneAtomBond AtomBondTodoAtomNucleusDone AtomNucleusAtomNucleusTodo AtomRayDoneAtomRay AtomRayTodoAtomAnglesDoneAtomAnglesTodo AtomSplitDone AtomSplitTodoMuAtom muNucleusmuSizemuOrientmuPeriodfindAtom findAtom' findAtom_ findAddress findAddress' findAddress_locatelocate'locate_base GHC.Float RealFloat$fNearZeroComplex$fFloatingComplex$fFractionalComplex $fNumComplexghc-prim GHC.TypesFloat modifySTRef'straddlesOrigin positiveRealBinAngleunbinarybitsbinarybtunetune Data.MaybeNothing integer-gmpGHC.Integer.TypeIntegerParseTokenFractionNumberrhoorbit address'inf address'peraddress'unsafeAngledFromList denominators numeratorsexternalAngles'wakeeschunk2genericElemIndexsafeGenericIndex unFractionunNumberparserpTokenspToken pFractionpNumberpSpacepOptionalSpacepKnead pKneading isAtomSuccessfromAtomSuccessisAddressSuccessfromAddressSuccessisLocateSuccessfromLocateSuccess