Changed squiggle display heights to be more reasonable
This commit is contained in:
		
							parent
							
								
									d4535df712
								
							
						
					
					
						commit
						67c478b4c0
					
				|  | @ -26,6 +26,7 @@ export interface SquiggleEditorProps { | |||
|   diagramStart?: number; | ||||
|   /** If the result is a function, where the function ends */ | ||||
|   diagramStop?: number; | ||||
|   height?: number; | ||||
|   /** If the result is a function, how many points along the function it samples */ | ||||
|   diagramCount?: number; | ||||
|   /** when the environment changes. Used again for notebook magic*/ | ||||
|  | @ -51,6 +52,7 @@ export let SquiggleEditor: React.FC<SquiggleEditorProps> = ({ | |||
|   diagramStart = 0, | ||||
|   diagramStop = 10, | ||||
|   diagramCount = 20, | ||||
|   height = 200, | ||||
|   onChange, | ||||
|   bindings = defaultBindings, | ||||
|   jsImports = defaultImports, | ||||
|  | @ -78,6 +80,7 @@ export let SquiggleEditor: React.FC<SquiggleEditorProps> = ({ | |||
|         </div> | ||||
|         <SquiggleChart | ||||
|           width={width} | ||||
|           height={height} | ||||
|           environment={environment} | ||||
|           squiggleString={expression} | ||||
|           chartSettings={chartSettings} | ||||
|  |  | |||
|  | @ -22,22 +22,26 @@ If both values are above zero, a `lognormal` distribution is used. If not, a `no | |||
|     When <code>5 to 10</code> is entered, both numbers are positive, so it | ||||
|     generates a lognormal distribution with 5th and 95th percentiles at 5 and | ||||
|     10. | ||||
|     <SquiggleEditor initialSquiggleString="5 to 10" /> | ||||
|     <SquiggleEditor initialSquiggleString="5 to 10" height={60} /> | ||||
|   </TabItem> | ||||
|   <TabItem value="ex3" label="to(5,10)"> | ||||
|     <code>5 to 10</code> does the same thing as <code>to(5,10)</code>. | ||||
|     <SquiggleEditor initialSquiggleString="to(5,10)" /> | ||||
|     <SquiggleEditor initialSquiggleString="to(5,10)" height={60} width={600} /> | ||||
|   </TabItem> | ||||
|   <TabItem value="ex2" label="-5 to 5"> | ||||
|     When <code>-5 to 5</code> is entered, there's negative values, so it | ||||
|     generates a normal distribution. This has 5th and 95th percentiles at 5 and | ||||
|     10. | ||||
|     <SquiggleEditor initialSquiggleString="-5 to -3" /> | ||||
|     <SquiggleEditor initialSquiggleString="-5 to -3" height={60} width={600} /> | ||||
|   </TabItem> | ||||
|   <TabItem value="ex4" label="1 to 10000"> | ||||
|     It's very easy to generate distributions with very long tails. If this | ||||
|     happens, you can click the "log x scale" box to view this using a log scale. | ||||
|     <SquiggleEditor initialSquiggleString="1 to 10000" /> | ||||
|     <SquiggleEditor | ||||
|       initialSquiggleString="1 to 10000" | ||||
|       height={60} | ||||
|       width={600} | ||||
|     /> | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 
 | ||||
|  | @ -76,16 +80,31 @@ The `mixture` mixes combines multiple distributions to create a mixture. You can | |||
| 
 | ||||
| <Tabs> | ||||
|   <TabItem value="ex1" label="Simple" default> | ||||
|     <SquiggleEditor initialSquiggleString="mixture(1 to 2, 5 to 8, 9 to 10)" /> | ||||
|     <SquiggleEditor | ||||
|       initialSquiggleString="mixture(1 to 2, 5 to 8, 9 to 10)" | ||||
|       height={60} | ||||
|     /> | ||||
|   </TabItem> | ||||
|   <TabItem value="ex2" label="With Weights"> | ||||
|     <SquiggleEditor initialSquiggleString="mixture(1 to 2, 5 to 8, 9 to 10, [0.1, 0.1, 0.8])" /> | ||||
|     <SquiggleEditor | ||||
|       initialSquiggleString="mixture(1 to 2, 5 to 8, 9 to 10, [0.1, 0.1, 0.8])" | ||||
|       height={60} | ||||
|       width={600} | ||||
|     /> | ||||
|   </TabItem> | ||||
|   <TabItem value="ex3" label="With Continuous and Discrete Inputs"> | ||||
|     <SquiggleEditor initialSquiggleString="mixture(1 to 5, 8 to 10, 1, 3, 20)" /> | ||||
|     <SquiggleEditor | ||||
|       initialSquiggleString="mixture(1 to 5, 8 to 10, 1, 3, 20)" | ||||
|       height={60} | ||||
|       width={600} | ||||
|     /> | ||||
|   </TabItem> | ||||
|   <TabItem value="ex4" label="Array of Distributions Input"> | ||||
|     <SquiggleEditor initialSquiggleString="mx([1 to 2, exponential(1)], [1,1])" /> | ||||
|     <SquiggleEditor | ||||
|       initialSquiggleString="mx([1 to 2, exponential(1)], [1,1])" | ||||
|       height={60} | ||||
|       width={600} | ||||
|     /> | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 
 | ||||
|  | @ -113,7 +132,7 @@ The `mixture` mixes combines multiple distributions to create a mixture. You can | |||
|   <SquiggleEditor | ||||
|     initialSquiggleString={`hours_the_project_will_take = 5 to 20 | ||||
| chance_of_doing_anything = 0.8 | ||||
| mx(hours_the_project_will_take, 0, [chance_of_doing_anything, 1 - chance_of_doing_anything])`} | ||||
| mx(hours_the_project_will_take, 0, [chance_of_doing_anything, 1 - chance_of_doing_anything])`} height={60} | ||||
|   /> | ||||
| </details> | ||||
| 
 | ||||
|  | @ -128,7 +147,7 @@ mx(hours_the_project_will_take, 0, [chance_of_doing_anything, 1 - chance_of_doin | |||
|   initialSquiggleString={`forecast = 3 to 30 | ||||
| chance_completely_wrong = 0.05 | ||||
| forecast_if_completely_wrong = -100 to 200 | ||||
| mx(forecast, forecast_if_completely_wrong, [1-chance_completely_wrong, chance_completely_wrong])`} | ||||
| mx(forecast, forecast_if_completely_wrong, [1-chance_completely_wrong, chance_completely_wrong])`} height={60} | ||||
| /> | ||||
| 
 | ||||
| </details> | ||||
|  | @ -141,10 +160,14 @@ Creates a [normal distribution](https://en.wikipedia.org/wiki/Normal_distributio | |||
| 
 | ||||
| <Tabs> | ||||
|   <TabItem value="ex1" label="normal(5,1)" default> | ||||
|     <SquiggleEditor initialSquiggleString="normal(5, 1)" /> | ||||
|     <SquiggleEditor initialSquiggleString="normal(5, 1)" height={60} /> | ||||
|   </TabItem> | ||||
|   <TabItem value="ex2" label="normal(100000000000, 100000000000)"> | ||||
|     <SquiggleEditor initialSquiggleString="normal(100000000000, 100000000000)" /> | ||||
|     <SquiggleEditor | ||||
|       initialSquiggleString="normal(100000000000, 100000000000)" | ||||
|       height={60} | ||||
|       width={600} | ||||
|     /> | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 
 | ||||
|  | @ -165,7 +188,7 @@ Creates a [log-normal distribution](https://en.wikipedia.org/wiki/Log-normal_dis | |||
| you take the log of our lognormal distribution. They can be difficult to directly reason about. | ||||
| Because of this complexity, we recommend typically using the <a href="#to">to</a> syntax instead of estimating `mu` and `sigma` directly. | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="lognormal(0, 0.7)" /> | ||||
| <SquiggleEditor initialSquiggleString="lognormal(0, 0.7)" height={60} /> | ||||
| 
 | ||||
| ### Arguments | ||||
| 
 | ||||
|  | @ -189,7 +212,8 @@ Because of this complexity, we recommend typically using the <a href="#to">to</a | |||
| normalStdDev = 2 | ||||
| logOfLognormal = log(lognormal(normalMean, normalStdDev)) | ||||
| [logOfLognormal, normal(normalMean, normalStdDev)]`} | ||||
|   /> | ||||
|   />{" "} | ||||
|   height={60} | ||||
| </details> | ||||
| 
 | ||||
| ## Uniform | ||||
|  | @ -198,7 +222,7 @@ logOfLognormal = log(lognormal(normalMean, normalStdDev)) | |||
| 
 | ||||
| Creates a [uniform distribution](<https://en.wikipedia.org/wiki/Uniform_distribution_(continuous)>) with the given low and high values. | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="uniform(3,7)" /> | ||||
| <SquiggleEditor initialSquiggleString="uniform(3,7)" height={60} /> | ||||
| 
 | ||||
| ### Arguments | ||||
| 
 | ||||
|  | @ -236,19 +260,35 @@ with values at 1 and 2. Therefore, this is the same as `mixture(pointMass(1),poi | |||
| 
 | ||||
| <Tabs> | ||||
|   <TabItem value="ex1" label="pointMass(3)" default> | ||||
|     <SquiggleEditor initialSquiggleString="pointMass(3)" /> | ||||
|     <SquiggleEditor initialSquiggleString="pointMass(3)" height={60} /> | ||||
|   </TabItem> | ||||
|   <TabItem value="ex3" label="mixture(1,3,5)"> | ||||
|     <SquiggleEditor initialSquiggleString="mixture(1,3,5)" /> | ||||
|     <SquiggleEditor | ||||
|       initialSquiggleString="mixture(1,3,5)" | ||||
|       height={60} | ||||
|       width={600} | ||||
|     /> | ||||
|   </TabItem> | ||||
|   <TabItem value="ex2" label="normal(5,2) * 6"> | ||||
|     <SquiggleEditor initialSquiggleString="normal(5,2) * 6" /> | ||||
|     <SquiggleEditor | ||||
|       initialSquiggleString="normal(5,2) * 6" | ||||
|       height={60} | ||||
|       width={600} | ||||
|     /> | ||||
|   </TabItem> | ||||
|   <TabItem value="ex4" label="dotAdd(normal(5,2), 6)"> | ||||
|     <SquiggleEditor initialSquiggleString="dotAdd(normal(5,2), 6)" /> | ||||
|     <SquiggleEditor | ||||
|       initialSquiggleString="dotAdd(normal(5,2), 6)" | ||||
|       height={60} | ||||
|       width={600} | ||||
|     /> | ||||
|   </TabItem> | ||||
|   <TabItem value="ex5" label="dotMultiply(normal(5,2), 6)"> | ||||
|     <SquiggleEditor initialSquiggleString="dotMultiply(normal(5,2), 6)" /> | ||||
|     <SquiggleEditor | ||||
|       initialSquiggleString="dotMultiply(normal(5,2), 6)" | ||||
|       height={60} | ||||
|       width={600} | ||||
|     /> | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 
 | ||||
|  | @ -264,19 +304,35 @@ Creates a [beta distribution](https://en.wikipedia.org/wiki/Beta_distribution) w | |||
| 
 | ||||
| <Tabs> | ||||
|   <TabItem value="ex1" label="beta(10, 20)" default> | ||||
|     <SquiggleEditor initialSquiggleString="beta(10,20)" /> | ||||
|     <SquiggleEditor initialSquiggleString="beta(10,20)" height={60} /> | ||||
|   </TabItem> | ||||
|   <TabItem value="ex2" label="beta(1000, 1000)"> | ||||
|     <SquiggleEditor initialSquiggleString="beta(1000, 2000)" /> | ||||
|     <SquiggleEditor | ||||
|       initialSquiggleString="beta(1000, 2000)" | ||||
|       height={60} | ||||
|       width={600} | ||||
|     /> | ||||
|   </TabItem> | ||||
|   <TabItem value="ex3" label="beta(1, 10)"> | ||||
|     <SquiggleEditor initialSquiggleString="beta(1, 10)" /> | ||||
|     <SquiggleEditor | ||||
|       initialSquiggleString="beta(1, 10)" | ||||
|       height={60} | ||||
|       width={600} | ||||
|     /> | ||||
|   </TabItem> | ||||
|   <TabItem value="ex4" label="beta(10, 1)"> | ||||
|     <SquiggleEditor initialSquiggleString="beta(10, 1)" /> | ||||
|     <SquiggleEditor | ||||
|       initialSquiggleString="beta(10, 1)" | ||||
|       height={60} | ||||
|       width={600} | ||||
|     /> | ||||
|   </TabItem> | ||||
|   <TabItem value="ex5" label="beta(0.8, 0.8)"> | ||||
|     <SquiggleEditor initialSquiggleString="beta(0.8, 0.8)" /> | ||||
|     <SquiggleEditor | ||||
|       initialSquiggleString="beta(0.8, 0.8)" | ||||
|       height={60} | ||||
|       width={600} | ||||
|     /> | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 
 | ||||
|  | @ -295,16 +351,28 @@ Creates a [beta distribution](https://en.wikipedia.org/wiki/Beta_distribution) w | |||
|     <summary>Examples</summary> | ||||
|     <Tabs> | ||||
|       <TabItem value="ex1" label="beta(0.3, 0.3)" default> | ||||
|         <SquiggleEditor initialSquiggleString="beta(0.3, 0.3)" /> | ||||
|         <SquiggleEditor initialSquiggleString="beta(0.3, 0.3)" height={60} /> | ||||
|       </TabItem> | ||||
|       <TabItem value="ex2" label="beta(0.5, 0.5)"> | ||||
|         <SquiggleEditor initialSquiggleString="beta(0.5, 0.5)" /> | ||||
|         <SquiggleEditor | ||||
|           initialSquiggleString="beta(0.5, 0.5)" | ||||
|           height={60} | ||||
|           width={600} | ||||
|         /> | ||||
|       </TabItem> | ||||
|       <TabItem value="ex3" label="beta(0.8, 0.8)"> | ||||
|         <SquiggleEditor initialSquiggleString="beta(.8,.8)" /> | ||||
|         <SquiggleEditor | ||||
|           initialSquiggleString="beta(.8,.8)" | ||||
|           height={60} | ||||
|           width={600} | ||||
|         /> | ||||
|       </TabItem> | ||||
|       <TabItem value="ex4" label="beta(0.9, 0.9)"> | ||||
|         <SquiggleEditor initialSquiggleString="beta(.9,.9)" /> | ||||
|         <SquiggleEditor | ||||
|           initialSquiggleString="beta(.9,.9)" | ||||
|           height={60} | ||||
|           width={600} | ||||
|         /> | ||||
|       </TabItem> | ||||
|     </Tabs> | ||||
|   </details> | ||||
|  | @ -316,7 +384,7 @@ Creates a [beta distribution](https://en.wikipedia.org/wiki/Beta_distribution) w | |||
| 
 | ||||
| Creates an [exponential distribution](https://en.wikipedia.org/wiki/Exponential_distribution) with the given rate. | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="exponential(4)" /> | ||||
| <SquiggleEditor initialSquiggleString="exponential(4)" height={60} /> | ||||
| 
 | ||||
| ### Arguments | ||||
| 
 | ||||
|  | @ -334,7 +402,7 @@ Creates a [triangular distribution](https://en.wikipedia.org/wiki/Triangular_dis | |||
| - `mode`: Number greater than `low` | ||||
| - `high`: Number greater than `mode` | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="triangular(1, 2, 4)" /> | ||||
| <SquiggleEditor initialSquiggleString="triangular(1, 2, 4)" height={60} /> | ||||
| 
 | ||||
| ## FromSamples | ||||
| 
 | ||||
|  | @ -342,7 +410,10 @@ Creates a [triangular distribution](https://en.wikipedia.org/wiki/Triangular_dis | |||
| 
 | ||||
| Creates a sample set distribution using an array of samples. | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="fromSamples([1,2,3,4,6,5,5,5])" /> | ||||
| <SquiggleEditor | ||||
|   initialSquiggleString="fromSamples([1,2,3,4,6,5,5,5])" | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| ### Arguments | ||||
| 
 | ||||
|  |  | |||
|  | @ -19,6 +19,7 @@ chosen from the second distribution. | |||
|   initialSquiggleString={`dist1 = 1 to 10 | ||||
| dist2 = triangular(1,2,3) | ||||
| dist1 + dist2`} | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| ### Subtraction | ||||
|  | @ -31,6 +32,7 @@ the value of one random sample chosen from the second distribution. | |||
|   initialSquiggleString={`dist1 = 1 to 10 | ||||
| dist2 = triangular(1,2,3) | ||||
| dist1 - dist2`} | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| ### Multiplication | ||||
|  | @ -43,12 +45,9 @@ chosen from the second distribution. | |||
|   initialSquiggleString={`dist1 = 1 to 10 | ||||
| dist2 = triangular(1,2,3) | ||||
| dist1 * dist2`} | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| We also provide concatenation of two distributions as a syntax sugar for `*` | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="(0.1 to 1) triangular(1,2,3)" /> | ||||
| 
 | ||||
| ### Division | ||||
| 
 | ||||
| A proportional scaling (normally a shrinking if the second distribution has values higher than 1). | ||||
|  | @ -61,6 +60,7 @@ tends to be particularly unstable. | |||
|   initialSquiggleString={`dist1 = 1 to 10 | ||||
| dist2 = triangular(1,2,3) | ||||
| dist1 / dist2`} | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| ### Exponentiation | ||||
|  | @ -69,13 +69,14 @@ A projection over a contracted x-axis. The exponentiation operation represents t | |||
| the exponentiation of the value of one random sample chosen from the first distribution to the power of | ||||
| the value one random sample chosen from the second distribution. | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString={`(0.1 to 1) ^ beta(2, 3)`} /> | ||||
| <SquiggleEditor initialSquiggleString={`(0.1 to 1) ^ beta(2, 3)`} height={60} /> | ||||
| 
 | ||||
| ### Taking the base `e` exponential | ||||
| 
 | ||||
| <SquiggleEditor | ||||
|   initialSquiggleString={`dist = triangular(1,2,3) | ||||
| exp(dist)`} | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| ### Taking logarithms | ||||
|  | @ -85,19 +86,22 @@ A projection over a stretched x-axis. | |||
| <SquiggleEditor | ||||
|   initialSquiggleString={`dist = triangular(1,2,3) | ||||
| log(dist)`} | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| <SquiggleEditor | ||||
|   initialSquiggleString={`dist = beta(1,2) | ||||
|   initialSquiggleString={`dist = beta(1,2)+1 | ||||
| log10(dist)`} | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| Base `x` | ||||
| 
 | ||||
| <SquiggleEditor | ||||
|   initialSquiggleString={`x = 2 | ||||
| dist = beta(2,3) | ||||
| dist = beta(2,3)+1 | ||||
| log(dist, x)`} | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| #### Validity | ||||
|  | @ -111,22 +115,20 @@ For every point on the x-axis, operate the corresponding points in the y axis of | |||
| 
 | ||||
| **Pointwise operations are done with `PointSetDist` internals rather than `SampleSetDist` internals**. | ||||
| 
 | ||||
| TODO: this isn't in the new interpreter/parser yet. | ||||
| 
 | ||||
| <SquiggleEditor | ||||
|   initialSquiggleString={`dist1 = 1 to 10 | ||||
| dist2 = triangular(1,2,3) | ||||
| dist1 .+ dist2`} | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| ### Pointwise subtraction | ||||
| 
 | ||||
| TODO: this isn't in the new interpreter/parser yet. | ||||
| 
 | ||||
| <SquiggleEditor | ||||
|   initialSquiggleString={`dist1 = 1 to 10 | ||||
| dist2 = triangular(1,2,3) | ||||
| dist1 .- dist2`} | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| ### Pointwise multiplication | ||||
|  | @ -135,6 +137,7 @@ dist1 .- dist2`} | |||
|   initialSquiggleString={`dist1 = 1 to 10 | ||||
| dist2 = triangular(1,2,3) | ||||
| dist1 .* dist2`} | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| ### Pointwise division | ||||
|  | @ -143,6 +146,7 @@ dist1 .* dist2`} | |||
|   initialSquiggleString={`dist1 = uniform(0,20) | ||||
| dist2 = normal(10,8) | ||||
| dist1 ./ dist2`} | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| ### Pointwise exponentiation | ||||
|  | @ -151,6 +155,7 @@ dist1 ./ dist2`} | |||
|   initialSquiggleString={`dist1 = 1 to 10 | ||||
| dist2 = triangular(1,2,3) | ||||
| dist1 .^ dist2`} | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| ## Standard functions on distributions | ||||
|  | @ -160,7 +165,7 @@ dist1 .^ dist2`} | |||
| The `pdf(dist, x)` function returns the density of a distribution at the | ||||
| given point x. | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="pdf(normal(0,1),0)" /> | ||||
| <SquiggleEditor initialSquiggleString="pdf(normal(0,1),0)" height={60} /> | ||||
| 
 | ||||
| #### Validity | ||||
| 
 | ||||
|  | @ -172,7 +177,7 @@ given point x. | |||
| The `cdf(dist, x)` gives the cumulative probability of the distribution | ||||
| or all values lower than x. It is the inverse of `quantile`. | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="cdf(normal(0,1),0)" /> | ||||
| <SquiggleEditor initialSquiggleString="cdf(normal(0,1),0)" height={60} /> | ||||
| 
 | ||||
| #### Validity | ||||
| 
 | ||||
|  | @ -185,7 +190,7 @@ The `quantile(dist, prob)` gives the value x or which the probability for all va | |||
| lower than x is equal to prob. It is the inverse of `cdf`. In the literature, it | ||||
| is also known as the quantiles function. | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="quantile(normal(0,1),0.5)" /> | ||||
| <SquiggleEditor initialSquiggleString="quantile(normal(0,1),0.5)" height={60} /> | ||||
| 
 | ||||
| #### Validity | ||||
| 
 | ||||
|  | @ -196,29 +201,35 @@ is also known as the quantiles function. | |||
| 
 | ||||
| The `mean(distribution)` function gives the mean (expected value) of a distribution. | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="mean(normal(5, 10))" /> | ||||
| <SquiggleEditor initialSquiggleString="mean(normal(5, 10))" height={60} /> | ||||
| 
 | ||||
| ### Sampling a distribution | ||||
| 
 | ||||
| The `sample(distribution)` samples a given distribution. | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="sample(normal(0, 10))" /> | ||||
| <SquiggleEditor initialSquiggleString="sample(normal(0, 10))" height={60} /> | ||||
| 
 | ||||
| ## Converting between distribution formats | ||||
| 
 | ||||
| Recall the [three formats of distributions](https://develop--squiggle-documentation.netlify.app/docs/Discussions/Three-Types-Of-Distributions). We can force any distribution into `SampleSet` format | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="toSampleSet(normal(5, 10))" /> | ||||
| <SquiggleEditor | ||||
|   initialSquiggleString="toSampleSet(normal(5, 10))" | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| Or `PointSet` format | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="toPointSet(normal(5, 10))" /> | ||||
| <SquiggleEditor initialSquiggleString="toPointSet(normal(5, 10))" height={60} /> | ||||
| 
 | ||||
| ### `toSampleSet` has two signatures | ||||
| 
 | ||||
| Above, we saw the unary `toSampleSet`, which uses an internal hardcoded number of samples. If you'd like to provide the number of samples, it has a binary signature as well (floored) | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="[toSampleSet(0.1 to 1, 100.1), toSampleSet(0.1 to 1, 5000), toSampleSet(0.1 to 1, 20000)]" /> | ||||
| <SquiggleEditor | ||||
|   initialSquiggleString="[toSampleSet(0.1 to 1, 100.1), toSampleSet(0.1 to 1, 5000), toSampleSet(0.1 to 1, 20000)]" | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| #### Validity | ||||
| 
 | ||||
|  | @ -230,13 +241,19 @@ Some distribution operations (like horizontal shift) return an unnormalized dist | |||
| 
 | ||||
| We provide a `normalize` function | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="normalize((0.1 to 1) + triangular(0.1, 1, 10))" /> | ||||
| <SquiggleEditor | ||||
|   initialSquiggleString="normalize((0.1 to 1) + triangular(0.1, 1, 10))" | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| #### Validity - Input to `normalize` must be a dist | ||||
| 
 | ||||
| We provide a predicate `isNormalized`, for when we have simple control flow | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="isNormalized((0.1 to 1) * triangular(0.1, 1, 10))" /> | ||||
| <SquiggleEditor | ||||
|   initialSquiggleString="isNormalized((0.1 to 1) * triangular(0.1, 1, 10))" | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| #### Validity | ||||
| 
 | ||||
|  | @ -246,20 +263,28 @@ We provide a predicate `isNormalized`, for when we have simple control flow | |||
| 
 | ||||
| You may like to debug by right clicking your browser and using the _inspect_ functionality on the webpage, and viewing the _console_ tab. Then, wrap your squiggle output with `inspect` to log an internal representation. | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="inspect(toSampleSet(0.1 to 1, 100))" /> | ||||
| <SquiggleEditor | ||||
|   initialSquiggleString="inspect(toSampleSet(0.1 to 1, 100))" | ||||
|   height={60} | ||||
| /> | ||||
| 
 | ||||
| Save for a logging side effect, `inspect` does nothing to input and returns it. | ||||
| 
 | ||||
| ## Truncate | ||||
| 
 | ||||
| You can cut off from the left | ||||
| You can truncate the left side, the right side, or both. | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="truncateLeft(0.1 to 1, 0.5)" /> | ||||
| <SquiggleEditor | ||||
|   initialSquiggleString="truncateLeft(0.1 to 1, 0.5)" | ||||
|   height={40} | ||||
| /> | ||||
| 
 | ||||
| You can cut off from the right | ||||
| <SquiggleEditor | ||||
|   initialSquiggleString="truncateRight(0.1 to 1, 0.5)" | ||||
|   height={40} | ||||
| /> | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="truncateRight(0.1 to 1, 0.5)" /> | ||||
| 
 | ||||
| You can cut off from both sides | ||||
| 
 | ||||
| <SquiggleEditor initialSquiggleString="truncate(0.1 to 1, 0.5, 1.5)" /> | ||||
| <SquiggleEditor | ||||
|   initialSquiggleString="truncate(0.1 to 1, 0.5, 1.5)" | ||||
|   height={40} | ||||
| /> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user