Ț„bonds€Źcell_resultsȚeÙ$71829343-22e9-4f5f-8c54-afd4dffa826aŠŠqueued€logs§runningŠoutput†€bodyÚE

We see that the datetime2julian function takes a single input parameter of type DateTime object (provided by the Dates module) and returns a variable of type Float64. How do we make a DateTime object? Pluto offers a convenient way to view the documentation for a function (or type, module, etc.). Click on the DateTime in the cell below and then open the Live Docs panel (probably in the bottom right of your browser).

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YÜđł°persist_js_state·has_pluto_hook_features§cell_idÙ$71829343-22e9-4f5f-8c54-afd4dffa826ačdepends_on_disabled_cells§runtimeλ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$6cc68a61-2c5a-4870-848d-122ac388daf1ŠŠqueued€logs§runningŠoutput†€body €mimeȘtext/plainŹrootassigneeÀČlast_run_timestampËAÚ,–’ m°persist_js_state·has_pluto_hook_features§cell_idÙ$6cc68a61-2c5a-4870-848d-122ac388daf1čdepends_on_disabled_cells§runtimeÎ0Hò”published_object_keysždepends_on_skipped_cells§erroredÂÙ$398433fa-69a1-497b-8248-041a180596e0ŠŠqueued€logs§runningŠoutput†€bodyÚ

Visualizing the Results

Now, we'd like to compare the results of the two algorithms. It will be helpful to visualize the difference as a function of the number of samples. Therefore, we'll make a function to generate a random data set with N samples and a specified true_mean for the distribution the samples are drawn from. Here true_mean is an optional, named arguement that defaults to zero.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yéΰpersist_js_state·has_pluto_hook_features§cell_idÙ$398433fa-69a1-497b-8248-041a180596e0čdepends_on_disabled_cells§runtimeÎëæ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$bfdd8ecf-5f05-4056-a9d8-f3404774ff52ŠŠqueued€logs§runningŠoutput†€bodyÚPŸ €mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–• dé°persist_js_state·has_pluto_hook_features§cell_idÙ$bfdd8ecf-5f05-4056-a9d8-f3404774ff52čdepends_on_disabled_cells§runtimeÍ/Ò”published_object_keysždepends_on_skipped_cells§erroredÂÙ$1d44aa99-26b1-47cd-9d19-64f4d0daf0fcŠŠqueued€logs§runningŠoutput†€body…Šprefix§Float64šelementsš’’©2.45946e6Ștext/plain’’©2.45946e6Ștext/plain’’©2.45946e6Ștext/plain’’©2.45946e6Ștext/plain’’©2.45946e6Ștext/plain’’©2.45946e6Ștext/plain’’©2.45946e6Ștext/plain’’©2.45946e6Ștext/plain’ ’©2.45946e6Ștext/plain’ ’©2.45946e6Ștext/plain€type„ArrayŹprefix_short šobjectid°bbade93a51f59273€mimeÙ!application/vnd.pluto.tree+objectŹrootassigneeÀČlast_run_timestampËAÚ,–’À/°persist_js_state·has_pluto_hook_features§cell_idÙ$1d44aa99-26b1-47cd-9d19-64f4d0daf0fcčdepends_on_disabled_cells§runtimeΊ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$8588be85-c656-4239-a2f8-f0535d15e55eŠŠqueued€logs§runningŠoutput†€bodyÙ­

Missing Response

The variable response_1d is still set to missing.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–“3쉰persist_js_state·has_pluto_hook_features§cell_idÙ$8588be85-c656-4239-a2f8-f0535d15e55ečdepends_on_disabled_cells§runtimeÍÎŐ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$af508570-b20f-4dd3-a995-36c79fc41823ŠŠqueued€logs§runningŠoutput†€bodyÙ/check_type_eq (generic function with 2 methods)€mimeȘtext/plainŹrootassigneeÀČlast_run_timestampËAÚ,–‘’ƒí°persist_js_state·has_pluto_hook_features§cell_idÙ$af508570-b20f-4dd3-a995-36c79fc41823čdepends_on_disabled_cells§runtimeÎ ­#”published_object_keysždepends_on_skipped_cells§erroredÂÙ$3393a0a1-c202-4fb1-b752-275595303502ŠŠqueued€logs§runningŠoutput†€bodyÙb

Under what circumstance would it be a good/poor choice to use?

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YéóZ°persist_js_state·has_pluto_hook_features§cell_idÙ$3393a0a1-c202-4fb1-b752-275595303502čdepends_on_disabled_cells§runtimeÎ,&”published_object_keysždepends_on_skipped_cells§erroredÂÙ$47104686-c7f2-44c1-be4c-7bb2497aafbfŠŠqueued€logs§runningŠoutput†€bodyÚA
 @isdefined var_one_pass
€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–“persist_js_state·has_pluto_hook_features§cell_idÙ$47104686-c7f2-44c1-be4c-7bb2497aafbfčdepends_on_disabled_cells§runtimeÎßU”published_object_keys‘Ù5ffb28f94-8543-11f0-120d-b33132eb5b69/eeaeaa7a973499cfždepends_on_skipped_cells§erroredÂÙ$723c95f7-b751-490d-968a-fe15559416ddŠŠqueued€logs§runningŠoutput†€bodyٜ

Keep working on it!

The answer is not quite right.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–”‡ó°persist_js_state·has_pluto_hook_features§cell_idÙ$723c95f7-b751-490d-968a-fe15559416ddčdepends_on_disabled_cells§runtimeΑkő”published_object_keysždepends_on_skipped_cells§erroredÂÙ$f16fa36b-9bed-4a37-a424-a56c717eaf9aŠŠqueued€logs§runningŠoutput†€bodyÚ'

Next, I'd like to compute the corresponding Julian date. The Dates module provides a function, datetime2julian to do that for us. Let's check how to call that function.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YܱŒ°persist_js_state·has_pluto_hook_features§cell_idÙ$f16fa36b-9bed-4a37-a424-a56c717eaf9ačdepends_on_disabled_cells§runtimeÎaž”published_object_keysždepends_on_skipped_cells§erroredÂÙ$7c0b516d-4e98-452e-8203-7d5988631af6ŠŠqueued€logs§runningŠoutput†€bodył2021-09-01T00:00:00€mimeȘtext/plainŹrootassigneeȘsept1_2021Člast_run_timestampËAÚ,–’‚hU°persist_js_state·has_pluto_hook_features§cell_idÙ$7c0b516d-4e98-452e-8203-7d5988631af6čdepends_on_disabled_cells§runtimeÍ:1”published_object_keysždepends_on_skipped_cells§erroredÂÙ$1313e06f-4e28-402c-b29f-04d97cca66c1ŠŠqueued€logs§runningŠoutput†€bodyÙÔ

c. How large are the differences? Are they significant relative to the true values? Why is the difference for one quantity a larger fraction of its true value than the other?

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Y〰persist_js_state·has_pluto_hook_features§cell_idÙ$1313e06f-4e28-402c-b29f-04d97cca66c1čdepends_on_disabled_cells§runtimeÎSè”published_object_keysždepends_on_skipped_cells§erroredÂÙ$1f304a1e-935c-4ccc-8331-6f389ae3c7b2ŠŠqueued€logs§runningŠoutput†€bodyÚì

Calling Functions

A key principle of writing code for non-trivial tasks is to organize one's code into many small functions, each of which do one thing (hopefully well). High-level languages typically come with numerous functions that allow developers to accomplish common tasks without reinventing the wheel. For example, the function sqrt(x) computes the square root of x.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YŰŽl°persist_js_state·has_pluto_hook_features§cell_idÙ$1f304a1e-935c-4ccc-8331-6f389ae3c7b2čdepends_on_disabled_cells§runtimeÎï$”published_object_keysždepends_on_skipped_cells§erroredÂÙ$51ced48f-0aab-47fd-ab59-7b0acea6097aŠŠqueued€logs§runningŠoutput†€bodyÚ)^
length(methods(var_one_pass, [Array])) >= 1 length(methods(, [Array])) >= 1 length(methods(, [])) >= 1 length(methods(, )) >= 1 length(# 1 method for generic function var_one_pass from Main.var"workspace#5":) >= 1 >= 1
€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–”4°G°persist_js_state·has_pluto_hook_features§cell_idÙ$51ced48f-0aab-47fd-ab59-7b0acea6097ačdepends_on_disabled_cells§runtimeÎwź”published_object_keys•Ù5ffb28f94-8543-11f0-120d-b33132eb5b69/4ca3b5c4a320921cÙ5ffb28f94-8543-11f0-120d-b33132eb5b69/39c23046f871a392Ù5ffb28f94-8543-11f0-120d-b33132eb5b69/9a1bd7151b59fd77Ù5ffb28f94-8543-11f0-120d-b33132eb5b69/6df1bddaf94020bfÙ5ffb28f94-8543-11f0-120d-b33132eb5b69/eeaeaa7a973499cfždepends_on_skipped_cells§erroredÂÙ$217e0561-9724-4fd2-ab8c-e19d767ed305ŠŠqueued€logs§runningŠoutput†€body«0.9770084f0€mimeȘtext/plainŹrootassignee§s_32bitČlast_run_timestampËAÚ,–“00#°persist_js_state·has_pluto_hook_features§cell_idÙ$217e0561-9724-4fd2-ab8c-e19d767ed305čdepends_on_disabled_cells§runtimeÍGÆ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$ca8166f2-fd5b-4915-b856-c1d32a3cd5eeŠŠqueued€logs§runningŠoutput†€body”-0.015425682423456433€mimeȘtext/plainŹrootassigneeŁÎ”sČlast_run_timestampËAÚ,–“0îî°persist_js_state·has_pluto_hook_features§cell_idÙ$ca8166f2-fd5b-4915-b856-c1d32a3cd5eečdepends_on_disabled_cells§runtimeÍ<–”published_object_keysždepends_on_skipped_cells§erroredÂÙ$0cd929dc-f9b6-4dad-8de4-93cf4abd200eŠŠqueued€logs§runningŠoutput†€bodyÙ­

Missing Response

The variable response_2h is still set to missing.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–”ăę*°persist_js_state·has_pluto_hook_features§cell_idÙ$0cd929dc-f9b6-4dad-8de4-93cf4abd200ečdepends_on_disabled_cells§runtimeÍÆ-”published_object_keysždepends_on_skipped_cells§erroredÂÙ$bfca0183-ef43-4858-8305-2e669ba14d94ŠŠqueued€logs§runningŠoutput†€bodyÚ=

If you suceeded above, then Pluto will soon display a plot showing the absolute value of the difference between the two variance estimates below as a function of the number of observation dates in the sample. First, make a prediction for what you expect such a plot to look like.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YéXh°persist_js_state·has_pluto_hook_features§cell_idÙ$bfca0183-ef43-4858-8305-2e669ba14d94čdepends_on_disabled_cells§runtimeÎźŸ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$6347a9de-1795-4980-be61-ec83f7b6c95aŠŠqueued€logs§runningŠoutput†€body§missing€mimeȘtext/plainŹrootassignee«response_1eČlast_run_timestampËAÚ,–“4=°persist_js_state·has_pluto_hook_features§cell_idÙ$6347a9de-1795-4980-be61-ec83f7b6c95ačdepends_on_disabled_cells§runtimeÍ0č”published_object_keysždepends_on_skipped_cells§erroredÂÙ$4697b219-94a8-4053-9ab6-35875c05b55cŠŠqueued€logs§runningŠoutput†€bodyŁ2.0€mimeȘtext/plainŹrootassigneeÀČlast_run_timestampËAÚ,–’)Âă°persist_js_state·has_pluto_hook_features§cell_idÙ$4697b219-94a8-4053-9ab6-35875c05b55cčdepends_on_disabled_cells§runtimeÍ2h”published_object_keysždepends_on_skipped_cells§erroredÂÙ$1b7665b7-c25e-46ac-bcad-f4b8d0607693ŠŠqueued€logs§runningŠoutput†€body €mimeȘtext/plainŹrootassigneeÀČlast_run_timestampËAÚ,–”Úyްpersist_js_state·has_pluto_hook_features§cell_idÙ$1b7665b7-c25e-46ac-bcad-f4b8d0607693čdepends_on_disabled_cells§runtimeÎ`YÏ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$fd31f33f-641c-47a1-9ad8-fbfb728959c2ŠŠqueued€logs§runningŠoutput†€bodyٖ

e. What lessons does this exercise illustrate that could be important when writing similar code for your research?

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yăß+°persist_js_state·has_pluto_hook_features§cell_idÙ$fd31f33f-641c-47a1-9ad8-fbfb728959c2čdepends_on_disabled_cells§runtimeÎU”published_object_keysždepends_on_skipped_cells§erroredÂÙ$de78cc1c-444e-4308-adb5-d93afdc57682ŠŠqueued€logs§runningŠoutput†€body €mimeȘtext/plainŹrootassigneeÀČlast_run_timestampËAÚ,–”Úż©°persist_js_state·has_pluto_hook_features§cell_idÙ$de78cc1c-444e-4308-adb5-d93afdc57682čdepends_on_disabled_cells§runtimeÎ$›”published_object_keysždepends_on_skipped_cells§erroredÂÙ$b760fedd-41ea-4784-845f-ede0163c0d12ŠŠqueued€logs§runningŠoutput†€bodyÙB

Helper Code

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YêP°persist_js_state·has_pluto_hook_features§cell_idÙ$b760fedd-41ea-4784-845f-ede0163c0d12čdepends_on_disabled_cells§runtimeÎ `”published_object_keysždepends_on_skipped_cells§erroredÂÙ$2ca37a14-1e12-41ab-b85a-b8d6e9a28ab6ŠŠqueued€logs§runningŠoutput†€bodyČ0.9615827199241083€mimeȘtext/plainŹrootassignee§s_64bitČlast_run_timestampËAÚ,–“+ÜÆ°persist_js_state·has_pluto_hook_features§cell_idÙ$2ca37a14-1e12-41ab-b85a-b8d6e9a28ab6čdepends_on_disabled_cells§runtimeÍE”published_object_keysždepends_on_skipped_cells§erroredÂÙ$af2bd92f-a67f-4fe3-965e-d337d57a2368ŠŠqueued€logs§runningŠoutput†€body§missing€mimeȘtext/plainŹrootassignee«response_2gČlast_run_timestampËAÚ,–”á_é°persist_js_state·has_pluto_hook_features§cell_idÙ$af2bd92f-a67f-4fe3-965e-d337d57a2368čdepends_on_disabled_cells§runtimeÍHh”published_object_keysždepends_on_skipped_cells§erroredÂÙ$f0c73fc1-8da9-4579-a369-a3c907fc56f4ŠŠqueued€logs§runningŠoutput†€bodyÙĐ

e. Consider the online 1-pass algorithm below for calculating the sample variance given below and then compare its results to the other algorithms for different data sets.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YéŚR°persist_js_state·has_pluto_hook_features§cell_idÙ$f0c73fc1-8da9-4579-a369-a3c907fc56f4čdepends_on_disabled_cells§runtimeÎWđ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$ca9cf926-0102-4d89-875d-8c86ec841794ŠŠqueued€logs§runningŠoutput†€body§missing€mimeȘtext/plainŹrootassignee«response_1aČlast_run_timestampËAÚ,–’Ëcú°persist_js_state·has_pluto_hook_features§cell_idÙ$ca9cf926-0102-4d89-875d-8c86ec841794čdepends_on_disabled_cells§runtimeÍGć”published_object_keysždepends_on_skipped_cells§erroredÂÙ$a9b3f568-c421-409f-9fcb-1f9b4b8e0345ŠŠqueued€logs§runningŠoutput†€body €mimeȘtext/plainŹrootassigneeÀČlast_run_timestampËAÚ,–”Ś J°persist_js_state·has_pluto_hook_features§cell_idÙ$a9b3f568-c421-409f-9fcb-1f9b4b8e0345čdepends_on_disabled_cells§runtimeÍô*”published_object_keysždepends_on_skipped_cells§erroredÂÙ$e0f22e5f-ce24-4d78-8b21-d5ba9b31d536ŠŠqueued€logs§runningŠoutput†€bodyÚü

Computing Variances

Next, you will compute the variance of the above data using multiple algorithms and compare their relative merits. Algebraically, the sample mean is calculated via $m = 1/N \times \sum_{i=1}^{N} y_i$ and the sample variance can be written two ways $s^2 = 1/(N-1) \times \sum_{i=1}^N (y_i-m)^2$ or $s^2 = 1/(N-1) \times \left[ \left( \sum_{i=1}^N y_i^2 \right) - N m^2 \right] = 1/(N-1) \times \left[ \left( \sum_{i=1}^N y_i^2 \right) - \left(\sum_{i=1}^N y_i\right)^2 /N \right]$.

In this exercise, you will consider how to calculate the sample variance accurately and efficiently. First, you'll try writing a function yourself. To get help with syntax, you can hover your mouse over the following tip boxes below. The example in the first hint box demonstrates how to write a function with a for loop and how to access elements of an array in Julia. The second hint box demonstrates using a two function calls.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YäȰpersist_js_state·has_pluto_hook_features§cell_idÙ$e0f22e5f-ce24-4d78-8b21-d5ba9b31d536čdepends_on_disabled_cells§runtimeÎ@†”published_object_keysždepends_on_skipped_cells§erroredÂÙ$3f18862c-64e1-4e21-84a6-a0d2094448a7ŠŠqueued€logs§runningŠoutput†€body§missing€mimeȘtext/plainŹrootassignee«response_2eČlast_run_timestampËAÚ,–”Ț"W°persist_js_state·has_pluto_hook_features§cell_idÙ$3f18862c-64e1-4e21-84a6-a0d2094448a7čdepends_on_disabled_cells§runtimeÍ9K”published_object_keysždepends_on_skipped_cells§erroredÂÙ$0f7fb357-e4db-41bd-a24f-e156fcb9016aŠŠqueued€logs§runningŠoutput†€bodył0.14000194845721126€mimeȘtext/plainŹrootassigneeŁÎ”mČlast_run_timestampËAÚ,–“*ŚË°persist_js_state·has_pluto_hook_features§cell_idÙ$0f7fb357-e4db-41bd-a24f-e156fcb9016ačdepends_on_disabled_cells§runtimeÍ=!”published_object_keysždepends_on_skipped_cells§erroredÂÙ$de8df98a-48ce-4f6f-b725-880dfaf445b9ŠŠqueued€logs§runningŠoutput†€bodyÚ+
datetime2julian(dt::DateTime) -> Float64

Take the given DateTime and return the number of Julian calendar days since the julian epoch -4713-11-24T12:00:00 as a Float64.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–’q*k°persist_js_state·has_pluto_hook_features§cell_idÙ$de8df98a-48ce-4f6f-b725-880dfaf445b9čdepends_on_disabled_cells§runtimeÎmް”published_object_keysždepends_on_skipped_cells§erroredÂÙ$441d3823-5003-4e48-b24f-ba09e10735ffŠŠqueued€logs§runningŠoutput†€bodyÚY

First, let's review the code in the cell above. The first line is a "docstring", it describes what the function below does both for developers reading the code and for users who might get the same information from Pluto's LiveDocs featuore or a website with documentation automatically extracted from the package's docstrings (using the Documenter.jl package and a GitHub Action).

The rest of the cell defines a function that takes two input parameters and returns a 1-d array of random variables. The first parameter (N) is required and must be some form of an integer. The second parameter (true_mean) could have any type and has a default value of zero. The third parameter (after the ;) is a named parameter (i.e., you must specify the name of the parameter when calling the function, instead of just using its position). Because it has a default value it is optional.

Each time the function is called, it will begin by seeding a pseudo-random number generator. This is important so that results will be reproducible when run multiple times. The function randn returns a 1-d array of standard random variables (i.e., drawn from a normal distribution with zero mean and unit variance) drawn using Julia's default pseudo-random number generator. Then the function returns the variable sample.

When you execute the code block above, julia parses the function, but does not compile or execute the code. That will only happen once the function is called. Since the last line of the cell is the end of the function, the output of the cell is the function. By ending the line with a ;, we tell Julia not to display the output. Now let's try out using this function.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YâŠa°persist_js_state·has_pluto_hook_features§cell_idÙ$441d3823-5003-4e48-b24f-ba09e10735ffčdepends_on_disabled_cells§runtimeÎ çÌ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$610f1c19-a2ea-40b1-9faa-d47ed60d17b1ŠŠqueued€logs§runningŠoutput†€bodyÚș

Hint

"Calculate mean value of an array using a simple for loop."
function mean_demo_verbose(y::Array)  # the syntax ::Array specifies that this function can only be applied if argument is an array.
   n = length(y)              # get the number of elements in the array y
   sum = zero(first(y))       # set sum to zero.  Using zero(first(y)) makes sum have the same data type as the first element of y
   for i in 1:n               # In Julia and Fortran, arrays start a 1, not 0 (like in C arrays and Python lists)
      sum += y[i]             # Short-hand for sum += sum + y[i]
   end
   return sum/n               # return isn't necessary since functions return the last value by default
end
€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–“8°persist_js_state·has_pluto_hook_features§cell_idÙ$610f1c19-a2ea-40b1-9faa-d47ed60d17b1čdepends_on_disabled_cells§runtimeÎrxÏ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$a83d07b9-d7b7-4274-929a-9a3474e44f08ŠŠqueued€logs‘ˆ€lineÿŁmsg’ÙÓTest Failed at /home/runner/work/lab1/lab1/ex2.jl#==#a83d07b9-d7b7-4274-929a-9a3474e44f08:1 Expression: var_one_pass([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) ≈ 11 Evaluated: Ștext/plain§cell_idÙ$a83d07b9-d7b7-4274-929a-9a3474e44f08ŠkwargsąidŽPlutoRunner_d1acb81e€fileÙP/home/runner/.julia/packages/Pluto/LhTfp/src/runner/PlutoRunner/src/io/stdout.jl„groupŠstdout„levelźLogLevel(-555)§runningŠoutput†€bodyڍ
var_one_pass([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) ≈ 11 var_one_pass() ≈ 11 ≈ 11
€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–”ƒ‘C°persist_js_state·has_pluto_hook_features§cell_idÙ$a83d07b9-d7b7-4274-929a-9a3474e44f08čdepends_on_disabled_cells§runtimeÎ9 <ö”published_object_keys’Ù5ffb28f94-8543-11f0-120d-b33132eb5b69/7ccb0078dcd6bfa1Ù5ffb28f94-8543-11f0-120d-b33132eb5b69/b8855b077021025aždepends_on_skipped_cells§erroredÂÙ$b4d6143c-42ad-460d-8af3-a36dae1a8879ŠŠqueued€logs§runningŠoutput†€bodyÚ6

Broadcasting

Look more closely at the function generate_sample above. Note the syntax .+ that tells julia the programmer wants to "broadcast" the scalar true_mean to have the same dimensions as the result of randn(...). What do you think would happen if you replaced this with true_mean+randn(N)? Try it. How does the behavior compare to what you expected?

Restore the code in generate_sample and execute the cell again, so the rest of the lab works as intended.

b. What is the advantage of julia having different syntax for arithmetic on variables with compatible dimensions from arithmetic on variables with different dimensions?

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yâûß°persist_js_state·has_pluto_hook_features§cell_idÙ$b4d6143c-42ad-460d-8af3-a36dae1a8879čdepends_on_disabled_cells§runtimeΰ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$58d4e72a-aed5-4b8f-846e-bb63e4cc54c7ŠŠqueued€logs§runningŠoutput†€bodyÚ‡
Curious to learn more?

Pro Tip

Normally, we'd use the Test module for the @test macro. Julia has a large set of modules and packages, that range from very basic functionality to complex science codes. The quality also varries widely. Several modules (like Test) are included in Julia standard library, so they're already installed for us.

However, inside Pluto, it can be helpful to instead import PlutoTest, since it displays the results particularly nicely. (It's an external package and it's still experimental, so if things break in the future, then we can revert to just using Test.

Below, I pick one based on whether we are inside a Pluto notebook session.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–”–Àϰpersist_js_state·has_pluto_hook_features§cell_idÙ$58d4e72a-aed5-4b8f-846e-bb63e4cc54c7čdepends_on_disabled_cells§runtimeÎe—[”published_object_keysždepends_on_skipped_cells§erroredÂÙ$65ef6abf-460d-49ac-80e1-1ecc1d0250ddŠŠqueued€logs§runningŠoutput†€bodyÚù

Pluto: A Reactive Notebook Experience

Some of you may have experience using Jupyter notebooks. Indeed, Jupyter notebooks are a useful and commonly used for small Astronomy and Data Science projects. One big disadvantage of Jupyter notebooks is that the notebook doesn't provide a complete description of the kernel state. That's a fancy way of saying that you can run cells out of order, or change a cell and not recalculate something that depended on the results of that cell. It's suprisingly easy to confuse yourself. Indeed, the first time Astro 528 was offered, we used Jupyter notebooks for nearly all the assignments. When students encountered trouble, the most common advice they got was "Restart your notebook and step through the notebook, one cell at a time until you find where it breaks." In contrast, Pluto keeps track of all dependancies across cells. When you update a cell, it recalculates all the cells that depend on it!

Pluto can also be useful for making interactive visualizations. In the example below, we'll make a plot that depends on a variable true_mean_plt defined below. When you change the value of true_mean_plt, the plots below should automatically update itself. Try setting it to a value of 10 or 100 times larger or smaller and observed how the difference in the estimates of the sample standard deviation change.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yé€Ű°persist_js_state·has_pluto_hook_features§cell_idÙ$65ef6abf-460d-49ac-80e1-1ecc1d0250ddčdepends_on_disabled_cells§runtimeÎ)ç”published_object_keysždepends_on_skipped_cells§erroredÂÙ$838f871a-2346-4d27-a6a1-1705c9b3b833ŠŠqueued€logs§runningŠoutput†€bodyٜ

We see that there are several different constructors to construct a DateTime object. We'll pick one below.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YĘ?°persist_js_state·has_pluto_hook_features§cell_idÙ$838f871a-2346-4d27-a6a1-1705c9b3b833čdepends_on_disabled_cells§runtimeÎ7Ș”published_object_keysždepends_on_skipped_cells§erroredÂÙ$c63db04d-5fc8-4bee-8594-5d033b2f7a09ŠŠqueued€logs§runningŠoutput†€body§missing€mimeȘtext/plainŹrootassignee«response_2dČlast_run_timestampËAÚ,–”ÙPœ°persist_js_state·has_pluto_hook_features§cell_idÙ$c63db04d-5fc8-4bee-8594-5d033b2f7a09čdepends_on_disabled_cells§runtimeÍ1‹”published_object_keysždepends_on_skipped_cells§erroredÂÙ$ac593093-eebb-49df-9b9b-74ed388d3a2bŠŠqueued€logs§runningŠoutput†€bodyÙ­

Missing Response

The variable response_1e is still set to missing.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–“5kv°persist_js_state·has_pluto_hook_features§cell_idÙ$ac593093-eebb-49df-9b9b-74ed388d3a2bčdepends_on_disabled_cells§runtimeÍčÇ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$6134acc4-4b96-4001-ad49-37fd7d6e040eŠŠqueued€logs§runningŠoutput†€bodyÙ­

Missing Response

The variable response_2e is still set to missing.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–”Țîț°persist_js_state·has_pluto_hook_features§cell_idÙ$6134acc4-4b96-4001-ad49-37fd7d6e040ečdepends_on_disabled_cells§runtimeÍÿ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$65190391-e0fc-4db0-8fdd-092bcd58a588ŠŠqueued€logs§runningŠoutput†€bodyÚń

Example Function

Consider an astronomer analyzing data from a large survey or simulation. A common task is to compute the mean value ($m$) and sample variance ($s^2$) of a data set ($y_i$) with $i=1...N$. The data might be of observations of some quantity or the results of performing a Monte Carlo integration. In principle, this seems very simple. In practice, floating point arithmetic can result in some suprising behavior. In this example, you will investigate some of the potential complications of performing even basic mathematical calculations.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yâ:°persist_js_state·has_pluto_hook_features§cell_idÙ$65190391-e0fc-4db0-8fdd-092bcd58a588čdepends_on_disabled_cells§runtimeÎú<”published_object_keysždepends_on_skipped_cells§erroredÂÙ$29637138-4260-4fba-9258-dfa62c214088ŠŠqueued€logs§runningŠoutput†€body§missing€mimeȘtext/plainŹrootassignee«response_1dČlast_run_timestampËAÚ,–“3“°persist_js_state·has_pluto_hook_features§cell_idÙ$29637138-4260-4fba-9258-dfa62c214088čdepends_on_disabled_cells§runtimeÍ3”published_object_keysždepends_on_skipped_cells§erroredÂÙ$d7e3e30e-e46c-498f-8ec3-0ba403e03f15ŠŠqueued€logs§runningŠoutput†€bodyٜ

Keep working on it!

The answer is not quite right.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–”Ąްpersist_js_state·has_pluto_hook_features§cell_idÙ$d7e3e30e-e46c-498f-8ec3-0ba403e03f15čdepends_on_disabled_cells§runtimeÎ[+:”published_object_keysždepends_on_skipped_cells§erroredÂÙ$569df89d-5039-4a63-8396-ab595811584cŠŠqueued€logs§runningŠoutput†€bodyÙ­

Missing Response

The variable response_2c is still set to missing.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–”ŰŸČ°persist_js_state·has_pluto_hook_features§cell_idÙ$569df89d-5039-4a63-8396-ab595811584cčdepends_on_disabled_cells§runtimeÍĂț”published_object_keysždepends_on_skipped_cells§erroredÂÙ$a387d515-82d6-4211-8934-b5f0d3b062dcŠŠqueued€logs§runningŠoutput†€bodyÚő

h. I've written some tests in 'test/test2.jl'. Because of Pluto's reactivity, it's tricky to run a file from inside a notebook. Instead, run julia --project test/runtests2.jl to run the code in this Pluto notebook and then the tests in 'test/test2.jl'. First, check that your functions pass my tests. If not, is it because your function has a bug? If so, fix your functions. Or is there another explanation? It may help to look at the source code for the tests to see what it means to have "passed".

Can you suggest additional tests for such functions? Feel free to add them to the tests in 'test/test2.jl' and check that your code still passes.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yê2{°persist_js_state·has_pluto_hook_features§cell_idÙ$a387d515-82d6-4211-8934-b5f0d3b062dcčdepends_on_disabled_cells§runtimeÎÇš”published_object_keysždepends_on_skipped_cells§erroredÂÙ$b77abd33-0214-46f4-9fde-8b38afafd224ŠŠqueued€logs§runningŠoutput†€bodyÙ­

Missing Response

The variable response_1a is still set to missing.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–’Öf^°persist_js_state·has_pluto_hook_features§cell_idÙ$b77abd33-0214-46f4-9fde-8b38afafd224čdepends_on_disabled_cells§runtimeÎî°Î”published_object_keysždepends_on_skipped_cells§erroredÂÙ$72474fca-4bc7-471e-9116-c48023f147ddŠŠqueued€logs§runningŠoutput†€bodyÙ|

Your code should pass the following tests. If it doesn't, fix your code so it does.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YèÚM°persist_js_state·has_pluto_hook_features§cell_idÙ$72474fca-4bc7-471e-9116-c48023f147ddčdepends_on_disabled_cells§runtimeÎtš”published_object_keysždepends_on_skipped_cells§erroredÂÙ$da5572db-5df8-4753-876f-e1b3a186f8a8ŠŠqueued€logs§runningŠoutput†€body«2.4594582f6€mimeȘtext/plainŹrootassignee§m_32bitČlast_run_timestampËAÚ,–“)Ᏸpersist_js_state·has_pluto_hook_features§cell_idÙ$da5572db-5df8-4753-876f-e1b3a186f8a8čdepends_on_disabled_cells§runtime͗V”published_object_keysždepends_on_skipped_cells§erroredÂÙ$a200eb3c-7041-47e4-89d2-d077dccc18c2ŠŠqueued€logs§runningŠoutput†€bodyÙ­

Missing Response

The variable response_1c is still set to missing.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–“2qó°persist_js_state·has_pluto_hook_features§cell_idÙ$a200eb3c-7041-47e4-89d2-d077dccc18c2čdepends_on_disabled_cells§runtimeÍÈ#”published_object_keysždepends_on_skipped_cells§erroredÂÙ$86a442a6-fb6e-45c7-9ab9-83aee71b028cŠŠqueued€logs§runningŠoutput†€bodyÙ-var_two_pass (generic function with 1 method)€mimeȘtext/plainŹrootassigneeÀČlast_run_timestampËAÚ,–”Ÿ›ö°persist_js_state·has_pluto_hook_features§cell_idÙ$86a442a6-fb6e-45c7-9ab9-83aee71b028cčdepends_on_disabled_cells§runtimeΕ†”published_object_keysždepends_on_skipped_cells§erroredÂÙ$27667e0a-8ebc-4397-8ac3-33a0f19f6987ŠŠqueued€logs§runningŠoutput†€bodyÙȚ

Astro 528, Lab 1, Exercise 2

Introduction to Julia & Floating Point Arithmetic

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YŐ0°persist_js_state·has_pluto_hook_features§cell_idÙ$27667e0a-8ebc-4397-8ac3-33a0f19f6987čdepends_on_disabled_cells§runtimeΓ™”published_object_keysždepends_on_skipped_cells§erroredÂÙ$48a888f3-7067-4524-b818-279e3ed2ffdcŠŠqueued€logs§runningŠoutput†€bodyÙ­

Missing Response

The variable response_2f is still set to missing.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–”à”Ż°persist_js_state·has_pluto_hook_features§cell_idÙ$48a888f3-7067-4524-b818-279e3ed2ffdcčdepends_on_disabled_cells§runtimeÍ֞”published_object_keysždepends_on_skipped_cells§erroredÂÙ$a802faec-6745-4f9d-820a-bb8c1aa25fc1ŠŠqueued€logs§runningŠoutput†€body«2.4594585e6€mimeȘtext/plainŹrootassignee­true_mean_pltČlast_run_timestampËAÚ,–”ԝаpersist_js_state·has_pluto_hook_features§cell_idÙ$a802faec-6745-4f9d-820a-bb8c1aa25fc1čdepends_on_disabled_cells§runtimeÍ0A”published_object_keysždepends_on_skipped_cells§erroredÂÙ$60dc2204-db4f-4038-8158-d0694dd720baŠŠqueued€logs§runningŠoutput†€bodyÚ1

The first time you execute any command in Julia (or start up a notebook), you'll notice a delay while the Julia kernel starts. Then, the first time you import a module, Julia will parse the code in the module and compile some functions. The next you import the same module it will be mucuh faster, as it won't need to reparse and recompile some of that module's code (as long as the module hasn't changed, e.g., you modify the module's code directly or due to the package being updated).

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yڞé°persist_js_state·has_pluto_hook_features§cell_idÙ$60dc2204-db4f-4038-8158-d0694dd720bačdepends_on_disabled_cells§runtimeΙ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$a4a9b516-5473-478e-a390-9e4f715310ebŠŠqueued€logs§runningŠoutput†€bodyÚđ

Tip

Note the cell above returns a NamedTuple that contains two Float64's. Naming the two elements of the Tuple can be useful for preventing silly mistakes when order is the only way to distinguish the two numbers.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–’ü˰persist_js_state·has_pluto_hook_features§cell_idÙ$a4a9b516-5473-478e-a390-9e4f715310ebčdepends_on_disabled_cells§runtimeÎJ9‚”published_object_keysždepends_on_skipped_cells§erroredÂÙ$cd09046b-753e-4843-a4e4-3be0b0c7fb97ŠŠqueued€logs§runningŠoutput†€body €mimeȘtext/plainŹrootassigneeÀČlast_run_timestampËAÚ,–”Ęoă°persist_js_state·has_pluto_hook_features§cell_idÙ$cd09046b-753e-4843-a4e4-3be0b0c7fb97čdepends_on_disabled_cells§runtimeÎٱ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$48d96e9d-b34b-4899-a976-a92602156981ŠŠqueued€logs§runningŠoutput†€bodyÙ­

Missing Response

The variable response_2d is still set to missing.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–”Ú.ðpersist_js_state·has_pluto_hook_features§cell_idÙ$48d96e9d-b34b-4899-a976-a92602156981čdepends_on_disabled_cells§runtimeÍĂô”published_object_keysždepends_on_skipped_cells§erroredÂÙ$339639fc-77d8-4e88-85f3-59c7821cd01fŠŠqueued€logs§runningŠoutput†€bodyÙò

g. Don't forget that we should test your functions for accuracy. Should we expect all of these functions to return the exact same value? How can we test functions that return floating point values?

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yê°persist_js_state·has_pluto_hook_features§cell_idÙ$339639fc-77d8-4e88-85f3-59c7821cd01fčdepends_on_disabled_cells§runtimeÎsś”published_object_keysždepends_on_skipped_cells§erroredÂÙ$3cb23c2a-2611-47e6-9ee5-4d1d4f0a84dcŠŠqueued€logs§runningŠoutput†€bodyƒšelements’’ąÎŒ’©2.45946e6Ștext/plain’ąÏƒ’š0.961583Ștext/plain€typeȘNamedTuplešobjectid°f32d049edb257754€mimeÙ!application/vnd.pluto.tree+objectŹrootassigneeÀČlast_run_timestampËAÚ,–’ôđ°persist_js_state·has_pluto_hook_features§cell_idÙ$3cb23c2a-2611-47e6-9ee5-4d1d4f0a84dcčdepends_on_disabled_cells§runtimeÎFy”published_object_keysždepends_on_skipped_cells§erroredÂÙ$66d9bc94-3e61-41e8-a81d-88e307d97653ŠŠqueued€logs§runningŠoutput†€bodyٙ

d. What considerations would affect the decision of whether to use the one-pass algorithm or the two-pass algorithm?

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yéșаpersist_js_state·has_pluto_hook_features§cell_idÙ$66d9bc94-3e61-41e8-a81d-88e307d97653čdepends_on_disabled_cells§runtimeΝ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$61503eb8-8a70-4ff7-b5bb-0a73c501d6c7ŠŠqueued€logs§runningŠoutput†€bodyÚĘ

Calculating basic summary statistics

Now, we're going to generate a much larger sample of numbers and compute their mean and standard deviations using multiple different methods. You will compare the results. The goal is to help you to understand when floating point arithmetic is likely to be problematic, so you can anticipate potential pitfalls that might affect your own research.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yă~°persist_js_state·has_pluto_hook_features§cell_idÙ$61503eb8-8a70-4ff7-b5bb-0a73c501d6c7čdepends_on_disabled_cells§runtimeΠ­”published_object_keysždepends_on_skipped_cells§erroredÂÙ$731f047f-0f26-4ab7-8810-398659642b0cŠŠqueued€logs§runningŠoutput†€bodyÙć

Change the value of the variable num_obs defined in a cell above to smaller and larger values. How does the mangitude of the differnces depend on the number of observation dates?

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YăÁì°persist_js_state·has_pluto_hook_features§cell_idÙ$731f047f-0f26-4ab7-8810-398659642b0cčdepends_on_disabled_cells§runtimeΩ””published_object_keysždepends_on_skipped_cells§erroredÂÙ$0b768a24-e97a-47e8-925f-b9e75601ceaeŠŠqueued€logs§runningŠoutput†€bodyÚȚ

Hint

The above could also be written more succinctly as

"Calculate mean value of an array using sum and length functions."
mean_demo_concise(y::Array) = sum(y)/length(y);

Indeed, Julia's function Statistics.mean() that is written almost identically to this.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–“8UX°persist_js_state·has_pluto_hook_features§cell_idÙ$0b768a24-e97a-47e8-925f-b9e75601ceaečdepends_on_disabled_cells§runtimeΖ*”published_object_keysždepends_on_skipped_cells§erroredÂÙ$8b3572b8-e571-43b7-ab45-68eabecace69ŠŠqueued€logs§runningŠoutput†€body €mimeȘtext/plainŹrootassigneeÀČlast_run_timestampËAÚ,–”«Ò °persist_js_state·has_pluto_hook_features§cell_idÙ$8b3572b8-e571-43b7-ab45-68eabecace69čdepends_on_disabled_cells§runtimeÎóŸ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$4ab6efe2-271c-4574-898e-ce0817fc5033ŠŠqueued€logs§runningŠoutput†€bodyÙ-var_one_pass (generic function with 1 method)€mimeȘtext/plainŹrootassigneeÀČlast_run_timestampËAÚ,–“@Ń«°persist_js_state·has_pluto_hook_features§cell_idÙ$4ab6efe2-271c-4574-898e-ce0817fc5033čdepends_on_disabled_cells§runtimeÎțï”published_object_keysždepends_on_skipped_cells§erroredÂÙ$58d0e74a-d4f6-4aab-97aa-18d305e888e1ŠŠqueued€logs§runningŠoutput†€bodyÚ>

b. Write a function named var_two_pass take takes input similar to mean_demo_verbose and provides a two-pass algorithm to calculate the variance more accurately than the one pass algoritihm by using two loops over the $y_i$'s.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yèûj°persist_js_state·has_pluto_hook_features§cell_idÙ$58d0e74a-d4f6-4aab-97aa-18d305e888e1čdepends_on_disabled_cells§runtimeΆ/”published_object_keysždepends_on_skipped_cells§erroredÂÙ$c337d59a-cb1c-4542-ae16-830bf8a2afc5ŠŠqueued€logs§runningŠoutput†€bodyÚ

a. Write a function named var_one_pass that takes inputs similar to mean_demo_verbose and implements a one-pass algorithm to calculate the variance, reading each value of y from the computer's main memory only once. Note that using the same element of an array repeatedly (i.e., before accessing the any other elements of the array) only counts as a single pass, since it can be reused without repeatedly copying the data from main memory.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yè©Ê°persist_js_state·has_pluto_hook_features§cell_idÙ$c337d59a-cb1c-4542-ae16-830bf8a2afc5čdepends_on_disabled_cells§runtimeÎo2”published_object_keysždepends_on_skipped_cells§erroredÂÙ$32831892-6da7-4f85-80ff-73c60a638382ŠŠqueued€logs§runningŠoutput†€bodyÚś

The cell above assigns multiple variables. When writing Pluto notebooks, any cell that assigns multiple variables must be wrapped inside a begin...end block (or split into multiple cells). Note that this is different from Jupyter notebooks. The final line calls the functions mean and std (that were exported by the Statistics package) to compute the mean and standard deviation of our sample.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yă=\°persist_js_state·has_pluto_hook_features§cell_idÙ$32831892-6da7-4f85-80ff-73c60a638382čdepends_on_disabled_cells§runtimeÎo„”published_object_keysždepends_on_skipped_cells§erroredÂÙ$a1699fca-90ec-418b-a675-3982dd4c11ffŠŠqueued€logs§runningŠoutput†€body €mimeȘtext/plainŹrootassigneeÀČlast_run_timestampËAÚ,–’rš=°persist_js_state·has_pluto_hook_features§cell_idÙ$a1699fca-90ec-418b-a675-3982dd4c11ffčdepends_on_disabled_cells§runtimeÍ,§”published_object_keysždepends_on_skipped_cells§erroredÂÙ$76cd6fbe-9be4-4e29-a3e9-4fac87d1a0c8ŠŠqueued€logs§runningŠoutput†€bodyÙȚ

Once you've completed the questions above and made your prediction, click this box:

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–”ÇԄ°persist_js_state·has_pluto_hook_features§cell_idÙ$76cd6fbe-9be4-4e29-a3e9-4fac87d1a0c8čdepends_on_disabled_cells§runtime΃N”published_object_keysždepends_on_skipped_cells§erroredÂÙ$192e6360-5eba-4a4d-b203-363caba8af64ŠŠqueued€logs‘ˆ€lineÿŁmsg’ÙžTest Failed at /home/runner/work/lab1/lab1/ex2.jl#==#192e6360-5eba-4a4d-b203-363caba8af64:1 Expression: var_one_pass(ones(10)) ≈ 0 Evaluated: Ștext/plain§cell_idÙ$192e6360-5eba-4a4d-b203-363caba8af64ŠkwargsąidŽPlutoRunner_d1acb81e€fileÙP/home/runner/.julia/packages/Pluto/LhTfp/src/runner/PlutoRunner/src/io/stdout.jl„groupŠstdout„levelźLogLevel(-555)§runningŠoutput†€bodyÚp
var_one_pass(ones(10)) ≈ 0 var_one_pass() ≈ 0 ≈ 0
€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–”oç°°persist_js_state·has_pluto_hook_features§cell_idÙ$192e6360-5eba-4a4d-b203-363caba8af64čdepends_on_disabled_cells§runtimeÎ9Ž”published_object_keys’Ù5ffb28f94-8543-11f0-120d-b33132eb5b69/b8855b077021025aÙ5ffb28f94-8543-11f0-120d-b33132eb5b69/68f5b93b27601d16ždepends_on_skipped_cells§erroredÂÙ$84f0ce6c-9ae0-4016-91e2-d436d4385366ŠŠqueued€logs§runningŠoutput†€bodyÚ

Using the same mean and std function as before, compute (and report) the sample mean and sample variance for each of these arrays. Compare the results by subtracting each of the results computed using Float64's and Float32's

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yă{p°persist_js_state·has_pluto_hook_features§cell_idÙ$84f0ce6c-9ae0-4016-91e2-d436d4385366čdepends_on_disabled_cells§runtimeÎt[”published_object_keysždepends_on_skipped_cells§erroredÂÙ$119e51ef-ed7b-4f9b-b7dd-67ae70bf934aŠŠqueued€logs§runningŠoutput†€body €mimeȘtext/plainŹrootassigneeÀČlast_run_timestampËAÚ,–”ÓÜè°persist_js_state·has_pluto_hook_features§cell_idÙ$119e51ef-ed7b-4f9b-b7dd-67ae70bf934ačdepends_on_disabled_cells§runtimeÎ_4”published_object_keysždepends_on_skipped_cells§erroredÂÙ$10dca248-2004-4719-9e30-eb3025da0513ŠŠqueued€logs§runningŠoutput†€body§missing€mimeȘtext/plainŹrootassignee«response_2cČlast_run_timestampËAÚ,–”ŚÆÁ°persist_js_state·has_pluto_hook_features§cell_idÙ$10dca248-2004-4719-9e30-eb3025da0513čdepends_on_disabled_cells§runtimeÍ63”published_object_keysždepends_on_skipped_cells§erroredÂÙ$8c2cddbf-3a02-4969-952e-4d76ca23f95bŠŠqueued€logs§runningŠoutput†€body§missing€mimeȘtext/plainŹrootassignee«response_1bČlast_run_timestampËAÚ,–’Ś“°persist_js_state·has_pluto_hook_features§cell_idÙ$8c2cddbf-3a02-4969-952e-4d76ca23f95bčdepends_on_disabled_cells§runtimeÍT”published_object_keysždepends_on_skipped_cells§erroredÂÙ$c9b2756d-46cf-43a1-81a7-2aecf50fd69eŠŠqueued€logs§runningŠoutput†€bodyÙź

Generate an array of simulated data using the following function:

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yâpm°persist_js_state·has_pluto_hook_features§cell_idÙ$c9b2756d-46cf-43a1-81a7-2aecf50fd69ečdepends_on_disabled_cells§runtimeÎżX”published_object_keysždepends_on_skipped_cells§erroredÂÙ$66a5de37-ff4c-40f6-99fc-624ca571b881ŠŠqueued€logs§runningŠoutput†€bodyÚ•

The above code calls the function generate_sample, asking it to compute 10 random variables with true mean equal to the julian date for September 1, 2021. The output will be a list of floating point numbers enclosed in square brackets to denote that it's a vector, which is equivalent to a 1-dimensional array.

Look at the results above. Are the output consistent with your expectations? (If not, then try changing the inputs to generate_sample to see what happens.) Write your responce as Markdown text in the cell below and store the result as a variable named response_1a.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YâϞ°persist_js_state·has_pluto_hook_features§cell_idÙ$66a5de37-ff4c-40f6-99fc-624ca571b881čdepends_on_disabled_cells§runtimeÎòW”published_object_keysždepends_on_skipped_cells§erroredÂÙ$0c9c629c-cb43-4fa7-8322-0b47718f2a9aŠŠqueued€logs§runningŠoutput†€body €mimeȘtext/plainŹrootassigneeÀČlast_run_timestampËAÚ,–‘WGú°persist_js_state·has_pluto_hook_features§cell_idÙ$0c9c629c-cb43-4fa7-8322-0b47718f2a9ačdepends_on_disabled_cells§runtimeÎbds”published_object_keysždepends_on_skipped_cells§erroredÂÙ$9ca08091-8906-4b2e-b965-f8dbc385623dŠŠqueued€logs§runningŠoutput†€bodyÚ6 €mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–”ïĄä°persist_js_state·has_pluto_hook_features§cell_idÙ$9ca08091-8906-4b2e-b965-f8dbc385623dčdepends_on_disabled_cells§runtimeÎj B”published_object_keysždepends_on_skipped_cells§erroredÂÙ$37b12cb7-377b-48ba-b3ff-2457aa2c44a9ŠŠqueued€logs§runningŠoutput†€bodyÚ‡

Finite precision arithmetic

By default, Julia uses 64 bits of memory to store each floating point value. Often this is referred to as "double precission" (for historical reasons, although technically this is machine dependent and thus less precise) to differentiate it from "single precission" floating point values typically stored with 32 bits. To explore the effects of floating point arithmetic, let us convert the array of y values into arrays of floating point values that use fewer bits to store each value using the following code.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yă]Ù°persist_js_state·has_pluto_hook_features§cell_idÙ$37b12cb7-377b-48ba-b3ff-2457aa2c44a9čdepends_on_disabled_cells§runtimeÎ| ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$a6cfeba5-d7c7-4493-aeae-379569932ef0ŠŠqueued€logs§runningŠoutput†€bodyÚ#

Tip

Julia allows unicode characters for variable and function names. This can be very useful for mathematical work. However, some programs don't display unicode characters correctly.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–’ęưpersist_js_state·has_pluto_hook_features§cell_idÙ$a6cfeba5-d7c7-4493-aeae-379569932ef0čdepends_on_disabled_cells§runtimeÎo–”published_object_keysždepends_on_skipped_cells§erroredÂÙ$1907ec31-4b3f-4db6-a42f-fffb3b722d7eŠŠqueued€logs§runningŠoutput†€body €mimeȘtext/plainŹrootassigneeÀČlast_run_timestampËAÚ,–Á뎰persist_js_state·has_pluto_hook_features§cell_idÙ$1907ec31-4b3f-4db6-a42f-fffb3b722d7ečdepends_on_disabled_cells§runtimeÎ’…”published_object_keysždepends_on_skipped_cells§erroredÂÙ$64dcecf3-1561-411a-8759-a4ccb219e303ŠŠqueued€logs§runningŠoutput†€body§missing€mimeȘtext/plainŹrootassignee«response_2fČlast_run_timestampËAÚ,–”ß©3°persist_js_state·has_pluto_hook_features§cell_idÙ$64dcecf3-1561-411a-8759-a4ccb219e303čdepends_on_disabled_cells§runtimeÍ9Š”published_object_keysždepends_on_skipped_cells§erroredÂÙ$d470aea9-b69e-4f02-bbaf-4d61cb5244b9ŠŠqueued€logs§runningŠoutput†€bodyÚ

c. Compare the accuracy of the results using data sets of different sizes and values of the true sample mean. Under what conditions do they give results that differ by an ammount that is potentially scientifically significant?

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yéń°persist_js_state·has_pluto_hook_features§cell_idÙ$d470aea9-b69e-4f02-bbaf-4d61cb5244b9čdepends_on_disabled_cells§runtimeΔÁ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$43f717de-f5c8-43b5-9229-254b9cb89ca7ŠŠqueued€logs§runningŠoutput†€bodyÙÙ

To make Plots we'll import the Plots package. (If you're interested, you can click the eyeball to the left of the plot cells to see the plotting code.)

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–Yé;~°persist_js_state·has_pluto_hook_features§cell_idÙ$43f717de-f5c8-43b5-9229-254b9cb89ca7čdepends_on_disabled_cells§runtimeÎŒ¶”published_object_keysždepends_on_skipped_cells§erroredÂÙ$98861118-c1c1-48d3-bb7b-1dc8f8e52604ŠŠqueued€logs§runningŠoutput†€bodyÚZ

Writing Functions

It will be very useful to write and organize your code into many small functions. I strongly recommend you develop a habit of writing code in the form of functions. A good rule of thumb is that each function should do one specific thing. Another rule of thumb is to try to keep each function to no more than can fit on one page of paper (or one screen), even when it's complicated. If nothing else, this makes it easier for humans to debug the function. The code for most functions is considerably smaller, but sometimes a hard scientific problem demands a longer function. Often, after writing a complex function, one can refactor the code into multiple smaller functions, resulting in code that is easier to read, debug, maintain and optimize. Julia provides multiple syntaxes for writing functions, as described in the Julia manual. (I suggest stopping before the subsection on "Operators Are Functions" for now.)

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YĘm+°persist_js_state·has_pluto_hook_features§cell_idÙ$98861118-c1c1-48d3-bb7b-1dc8f8e52604čdepends_on_disabled_cells§runtimeΔ"”published_object_keysždepends_on_skipped_cells§erroredÂÙ$a11ffb3d-310f-4e28-b8f2-724aab7006a0ŠŠqueued€logs§runningŠoutput†€body§missing€mimeȘtext/plainŹrootassignee«response_2hČlast_run_timestampËAÚ,–”ăű°persist_js_state·has_pluto_hook_features§cell_idÙ$a11ffb3d-310f-4e28-b8f2-724aab7006a0čdepends_on_disabled_cells§runtimeÍJ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$9f4c6a89-754d-4dee-813f-b2d902439ea1ŠŠqueued€logs§runningŠoutput†€body§Float64€mimeȘtext/plainŹrootassigneeÀČlast_run_timestampËAÚ,–’œˆ”°persist_js_state·has_pluto_hook_features§cell_idÙ$9f4c6a89-754d-4dee-813f-b2d902439ea1čdepends_on_disabled_cells§runtimeÍ/e”published_object_keysždepends_on_skipped_cells§erroredÂÙ$8b757575-9b7e-4154-8222-d024cb62f08fŠŠqueued€logs§runningŠoutput†€body«2.4594585e6€mimeȘtext/plainŹrootassignee­jd_sept1_2021Člast_run_timestampËAÚ,–’…‰D°persist_js_state·has_pluto_hook_features§cell_idÙ$8b757575-9b7e-4154-8222-d024cb62f08fčdepends_on_disabled_cells§runtimeÍ=ô”published_object_keysždepends_on_skipped_cells§erroredÂÙ$29ab9da1-2130-4ea1-aa4d-af08f8011bd0ŠŠqueued€logs§runningŠoutput†€bodyÚĆ

It's often good to double check the return type of a function you call to make sure it's what you expected. For functions in Base Julia, this can usually be looked up in the function documentation, either in the Julia manual or using the Live Docs feature of Pluto. If you want to check a variable's type, the typeof function is quite useful.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YĘC°persist_js_state·has_pluto_hook_features§cell_idÙ$29ab9da1-2130-4ea1-aa4d-af08f8011bd0čdepends_on_disabled_cells§runtimeÎ#”published_object_keysždepends_on_skipped_cells§erroredÂÙ$691632b7-3435-4c0d-aff4-3bdc87d77e7bŠŠqueued€logs§runningŠoutput†€body…Šprefix§Float32šelementsÜ’’©2.45946f6Ștext/plain’’©2.45946f6Ștext/plain’’©2.45946f6Ștext/plain’’©2.45946f6Ștext/plain’’©2.45946f6Ștext/plain’’©2.45946f6Ștext/plain’’©2.45946f6Ștext/plain’’©2.45946f6Ștext/plain’ ’©2.45946f6Ștext/plain’ ’©2.45946f6Ștext/plain’ ’©2.45946f6Ștext/plain’ ’©2.45946f6Ștext/plain’ ’©2.45946f6Ștext/plain’’©2.45946f6Ștext/plain’’©2.45946f6Ștext/plain’’©2.45946f6Ștext/plain’’©2.45946f6Ștext/plain’’©2.45946f6Ștext/plain’’©2.45946f6Ștext/plain’’©2.45946f6Ștext/plain€more’[’©2.45946f6Ștext/plain’\’©2.45946f6Ștext/plain’]’©2.45946f6Ștext/plain’^’©2.45946f6Ștext/plain’_’©2.45946f6Ștext/plain’`’©2.45946f6Ștext/plain’a’©2.45946f6Ștext/plain’b’©2.45946f6Ștext/plain’c’©2.45946f6Ștext/plain’d’©2.45946f6Ștext/plain€type„ArrayŹprefix_short šobjectid°992a5a6f8e0d0a20€mimeÙ!application/vnd.pluto.tree+objectŹrootassignee§y_32bitČlast_run_timestampËAÚ,–“üă°persist_js_state·has_pluto_hook_features§cell_idÙ$691632b7-3435-4c0d-aff4-3bdc87d77e7bčdepends_on_disabled_cells§runtimeÎżÒ›”published_object_keysždepends_on_skipped_cells§erroredÂÙ$f362498a-fe8e-440d-afab-c817545b3144ŠŠqueued€logs§runningŠoutput†€bodyÙ­

Missing Response

The variable response_2g is still set to missing.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–”âLn°persist_js_state·has_pluto_hook_features§cell_idÙ$f362498a-fe8e-440d-afab-c817545b3144čdepends_on_disabled_cells§runtimeÍè1”published_object_keysždepends_on_skipped_cells§erroredÂÙ$5bcf3076-f31b-47e8-8297-8cf406ff71abŠŠqueued€logs§runningŠoutput†€bodyŽ2.4594583900019485e6€mimeȘtext/plainŹrootassignee§m_64bitČlast_run_timestampËAÚ,–“>°persist_js_state·has_pluto_hook_features§cell_idÙ$5bcf3076-f31b-47e8-8297-8cf406ff71abčdepends_on_disabled_cells§runtimeÍvN”published_object_keysždepends_on_skipped_cells§erroredÂÙ$9ad35a1b-3cc1-475a-afd6-8f340a86cdd0ŠŠqueued€logs§runningŠoutput†€bodyÚœ

Using Packages

The Julia language includes many powerful features. While many of the most commonly used functions and macros are available by default (such as sqrt above), other functions are only avaliable if you import a module. For the first part of this exercise, we'll be using the Dates, Random and Statistics modules. (The Dates, Random, and Statistics are part of Julia's standard library, a set of modules that are distributed with Julia.)

To be able to access functions in a module, you execute import MyModule and then execute MyModule.fn(x) to call a function named fn with parameter x. Alternatively, using MyModule will import all the functions that the Module module has specified should be exported by default. Basically, this means you don't have to write MyModule. before every call to a function that MyModule intends for end users to call. Often, using is very convenient. For very common functions names (e.g., mean, apply) using risks creating confusion about which module is being reference. In these caeses import provides more control of exactly which functions are loaded into the current namespace.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–YÚiưpersist_js_state·has_pluto_hook_features§cell_idÙ$9ad35a1b-3cc1-475a-afd6-8f340a86cdd0čdepends_on_disabled_cells§runtimeÎ mÚ”published_object_keysždepends_on_skipped_cells§erroredÂÙ$fe4601cb-0cc3-4ac1-ae18-aa5fc7c35bb5ŠŠqueued€logs§runningŠoutput†€body§missing€mimeȘtext/plainŹrootassignee«response_1cČlast_run_timestampËAÚ,–“1™x°persist_js_state·has_pluto_hook_features§cell_idÙ$fe4601cb-0cc3-4ac1-ae18-aa5fc7c35bb5čdepends_on_disabled_cells§runtimeÍ0ș”published_object_keysždepends_on_skipped_cells§erroredÂÙ$5f84a3cc-dab6-4ad0-9644-7ea803f43475ŠŠqueued€logs§runningŠoutput†€bodyÙ­

Missing Response

The variable response_1b is still set to missing.

€mime©text/htmlŹrootassigneeÀČlast_run_timestampËAÚ,–’Śêæ°persist_js_state·has_pluto_hook_features§cell_idÙ$5f84a3cc-dab6-4ad0-9644-7ea803f43475čdepends_on_disabled_cells§runtimeÍŐK”published_object_keysždepends_on_skipped_cells§erroredÂÙ$ba1bac88-5b7d-4b21-991e-948fb00fc2bbŠŠqueued€logs§runningŠoutput†€bodyŁ100€mimeȘtext/plainŹrootassignee§num_obsČlast_run_timestampËAÚ,–’ßmç°persist_js_state·has_pluto_hook_features§cell_idÙ$ba1bac88-5b7d-4b21-991e-948fb00fc2bbčdepends_on_disabled_cells§runtimeÍ2Ö”published_object_keysždepends_on_skipped_cells§errored±cell_dependenciesȚeÙ$71829343-22e9-4f5f-8c54-afd4dffa826a„Žprecedence_heuristic §cell_idÙ$71829343-22e9-4f5f-8c54-afd4dffa826aŽdownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$6cc68a61-2c5a-4870-848d-122ac388daf1„Žprecedence_heuristic §cell_idÙ$6cc68a61-2c5a-4870-848d-122ac388daf1Ždownstream_cells_mapŻgenerate_sample”Ù$1d44aa99-26b1-47cd-9d19-64f4d0daf0fcÙ$3cb23c2a-2611-47e6-9ee5-4d1d4f0a84dcÙ$8b3572b8-e571-43b7-ab45-68eabecace69Ù$de78cc1c-444e-4308-adb5-d93afdc57682Čupstream_cells_mapŠ€@doc„randn„TupleŠRandom‘Ù$1907ec31-4b3f-4db6-a42f-fffb3b722d7eĄ+„Unionș#___this_pluto_module_nameŁAny§IntegerŹRandom.seed!Ù$398433fa-69a1-497b-8248-041a180596e0„Žprecedence_heuristic §cell_idÙ$398433fa-69a1-497b-8248-041a180596e0Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$bfdd8ecf-5f05-4056-a9d8-f3404774ff52„Žprecedence_heuristic §cell_idÙ$bfdd8ecf-5f05-4056-a9d8-f3404774ff52Ždownstream_cells_map€Čupstream_cells_mapŻTableOfContentsÙ$1d44aa99-26b1-47cd-9d19-64f4d0daf0fc„Žprecedence_heuristic §cell_idÙ$1d44aa99-26b1-47cd-9d19-64f4d0daf0fcŽdownstream_cells_map€Čupstream_cells_map‚Żgenerate_sample‘Ù$6cc68a61-2c5a-4870-848d-122ac388daf1­jd_sept1_2021‘Ù$8b757575-9b7e-4154-8222-d024cb62f08fÙ$8588be85-c656-4239-a2f8-f0535d15e55e„Žprecedence_heuristic §cell_idÙ$8588be85-c656-4239-a2f8-f0535d15e55eŽdownstream_cells_map€Čupstream_cells_map„źcheck_type_isałdisplay_msg_if_fail«response_1d‘Ù$29637138-4260-4fba-9258-dfa62c214088šMarkdownÙ$af508570-b20f-4dd3-a995-36c79fc41823„Žprecedence_heuristic§cell_idÙ$af508570-b20f-4dd3-a995-36c79fc41823Ždownstream_cells_mapƒ§PlutoUI©PlutoTest”Ù$47104686-c7f2-44c1-be4c-7bb2497aafbfÙ$51ced48f-0aab-47fd-ab59-7b0acea6097aÙ$192e6360-5eba-4a4d-b203-363caba8af64Ù$a83d07b9-d7b7-4274-929a-9a3474e44f08ČPlutoTeachingToolsČupstream_cells_map„€Metačcode_for_check_type_funcsȘMeta.parse€evalÙ$3393a0a1-c202-4fb1-b752-275595303502„Žprecedence_heuristic §cell_idÙ$3393a0a1-c202-4fb1-b752-275595303502Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$47104686-c7f2-44c1-be4c-7bb2497aafbf„Žprecedence_heuristic §cell_idÙ$47104686-c7f2-44c1-be4c-7bb2497aafbfŽdownstream_cells_map‚¶#569#julia_test_result±#568#pluto_resultČupstream_cells_mapȚ€Core·PlutoTest.Test.ReturnedłPlutoTest.WrongCallșPlutoTest.Base.catch_stack±PlutoTest.rethrowŹvar_one_pass‘Ù$4ab6efe2-271c-4574-898e-ce0817fc5033„@testŻPlutoTest.push!čPlutoTest.catch_backtrace­PlutoTest.===łPlutoTest.ErrorCallŽPlutoTest.Test.Threw¶PlutoTest.Test.do_testčPlutoTest.unwrap_computedŻPlutoTest.throw»PlutoTest.CapturedException©PlutoTest‘Ù$af508570-b20f-4dd3-a995-36c79fc41823Ș@isdefinedČPlutoTest.Computed”PlutoTest.CorrectCallŽPlutoTest.stacktrace­PlutoTest.isaÙ#PlutoTest.PartialEvaluatedExceptionźPlutoTest.lastȘCore._exprÙ$723c95f7-b751-490d-968a-fe15559416dd„Žprecedence_heuristic §cell_idÙ$723c95f7-b751-490d-968a-fe15559416ddŽdownstream_cells_map€Čupstream_cells_mapŁâ‰ˆ§methodsĄ!Ș@isdefined€ones©ismissingŠlength§correctŹkeep_working°func_not_definedŹvar_one_pass‘Ù$4ab6efe2-271c-4574-898e-ce0817fc5033ą>=„ArrayÙ$f16fa36b-9bed-4a37-a424-a56c717eaf9a„Žprecedence_heuristic §cell_idÙ$f16fa36b-9bed-4a37-a424-a56c717eaf9aŽdownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$7c0b516d-4e98-452e-8203-7d5988631af6„Žprecedence_heuristic §cell_idÙ$7c0b516d-4e98-452e-8203-7d5988631af6Ždownstream_cells_mapȘsept1_2021‘Ù$8b757575-9b7e-4154-8222-d024cb62f08fČupstream_cells_mapšDateTimeÙ$1313e06f-4e28-402c-b29f-04d97cca66c1„Žprecedence_heuristic §cell_idÙ$1313e06f-4e28-402c-b29f-04d97cca66c1Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$1f304a1e-935c-4ccc-8331-6f389ae3c7b2„Žprecedence_heuristic §cell_idÙ$1f304a1e-935c-4ccc-8331-6f389ae3c7b2Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$51ced48f-0aab-47fd-ab59-7b0acea6097a„Žprecedence_heuristic §cell_idÙ$51ced48f-0aab-47fd-ab59-7b0acea6097aŽdownstream_cells_map‚¶#519#julia_test_result±#518#pluto_resultČupstream_cells_mapȚ€Core·PlutoTest.Test.ReturnedłPlutoTest.WrongCallșPlutoTest.Base.catch_stackŠlength±PlutoTest.rethrowŹvar_one_pass‘Ù$4ab6efe2-271c-4574-898e-ce0817fc5033„@testŻPlutoTest.push!čPlutoTest.catch_backtrace­PlutoTest.===łPlutoTest.ErrorCallŽPlutoTest.Test.Threw¶PlutoTest.Test.do_test§methodsčPlutoTest.unwrap_computedŻPlutoTest.throw»PlutoTest.CapturedException©PlutoTest‘Ù$af508570-b20f-4dd3-a995-36c79fc41823ČPlutoTest.Computed”PlutoTest.CorrectCallŽPlutoTest.stacktraceą>=„Array­PlutoTest.isaÙ#PlutoTest.PartialEvaluatedExceptionźPlutoTest.lastȘCore._exprÙ$217e0561-9724-4fd2-ab8c-e19d767ed305„Žprecedence_heuristic §cell_idÙ$217e0561-9724-4fd2-ab8c-e19d767ed305Ždownstream_cells_map§s_32bit‘Ù$ca8166f2-fd5b-4915-b856-c1d32a3cd5eeČupstream_cells_map‚§y_32bit‘Ù$691632b7-3435-4c0d-aff4-3bdc87d77e7bŁstdÙ$ca8166f2-fd5b-4915-b856-c1d32a3cd5ee„Žprecedence_heuristic §cell_idÙ$ca8166f2-fd5b-4915-b856-c1d32a3cd5eeŽdownstream_cells_mapŁÎ”sČupstream_cells_mapƒĄ-§s_32bit‘Ù$217e0561-9724-4fd2-ab8c-e19d767ed305§s_64bit‘Ù$2ca37a14-1e12-41ab-b85a-b8d6e9a28ab6Ù$0cd929dc-f9b6-4dad-8de4-93cf4abd200e„Žprecedence_heuristic §cell_idÙ$0cd929dc-f9b6-4dad-8de4-93cf4abd200eŽdownstream_cells_map€Čupstream_cells_map„źcheck_type_isa«response_2h‘Ù$a11ffb3d-310f-4e28-b8f2-724aab7006a0łdisplay_msg_if_failšMarkdownÙ$bfca0183-ef43-4858-8305-2e669ba14d94„Žprecedence_heuristic §cell_idÙ$bfca0183-ef43-4858-8305-2e669ba14d94Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$6347a9de-1795-4980-be61-ec83f7b6c95a„Žprecedence_heuristic §cell_idÙ$6347a9de-1795-4980-be61-ec83f7b6c95aŽdownstream_cells_map«response_1e‘Ù$ac593093-eebb-49df-9b9b-74ed388d3a2bČupstream_cells_map§missingÙ$4697b219-94a8-4053-9ab6-35875c05b55c„Žprecedence_heuristic §cell_idÙ$4697b219-94a8-4053-9ab6-35875c05b55cŽdownstream_cells_map€Čupstream_cells_map€sqrtÙ$1b7665b7-c25e-46ac-bcad-f4b8d0607693„Žprecedence_heuristic §cell_idÙ$1b7665b7-c25e-46ac-bcad-f4b8d0607693Ždownstream_cells_mapȘvar_online‘Ù$de78cc1c-444e-4308-adb5-d93afdc57682Čupstream_cells_mapŽ€@doc€zeroĄ:„Tuple„firstș#___this_pluto_module_nameŠlengthĄ-Ą/Ą^Ą+„Union„ArrayĄ*Ù$fd31f33f-641c-47a1-9ad8-fbfb728959c2„Žprecedence_heuristic §cell_idÙ$fd31f33f-641c-47a1-9ad8-fbfb728959c2Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$de78cc1c-444e-4308-adb5-d93afdc57682„Žprecedence_heuristic §cell_idÙ$de78cc1c-444e-4308-adb5-d93afdc57682Ždownstream_cells_mapžcompare_var_calcs_online‘Ù$cd09046b-753e-4843-a4e4-3be0b0c7fb97Čupstream_cells_map‡ŁabsȘvar_online‘Ù$1b7665b7-c25e-46ac-bcad-f4b8d0607693Źvar_two_pass‘Ù$86a442a6-fb6e-45c7-9ab9-83aee71b028cĄ-Żgenerate_sample‘Ù$6cc68a61-2c5a-4870-848d-122ac388daf1§Integer€RealÙ$b760fedd-41ea-4784-845f-ede0163c0d12„Žprecedence_heuristic §cell_idÙ$b760fedd-41ea-4784-845f-ede0163c0d12Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$2ca37a14-1e12-41ab-b85a-b8d6e9a28ab6„Žprecedence_heuristic §cell_idÙ$2ca37a14-1e12-41ab-b85a-b8d6e9a28ab6Ždownstream_cells_map§s_64bit‘Ù$ca8166f2-fd5b-4915-b856-c1d32a3cd5eeČupstream_cells_map‚Ąy‘Ù$3cb23c2a-2611-47e6-9ee5-4d1d4f0a84dcŁstdÙ$af2bd92f-a67f-4fe3-965e-d337d57a2368„Žprecedence_heuristic §cell_idÙ$af2bd92f-a67f-4fe3-965e-d337d57a2368Ždownstream_cells_map«response_2g‘Ù$f362498a-fe8e-440d-afab-c817545b3144Čupstream_cells_map§missingÙ$f0c73fc1-8da9-4579-a369-a3c907fc56f4„Žprecedence_heuristic §cell_idÙ$f0c73fc1-8da9-4579-a369-a3c907fc56f4Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$ca9cf926-0102-4d89-875d-8c86ec841794„Žprecedence_heuristic §cell_idÙ$ca9cf926-0102-4d89-875d-8c86ec841794Ždownstream_cells_map«response_1a‘Ù$b77abd33-0214-46f4-9fde-8b38afafd224Čupstream_cells_map§missingÙ$a9b3f568-c421-409f-9fcb-1f9b4b8e0345„Žprecedence_heuristic §cell_idÙ$a9b3f568-c421-409f-9fcb-1f9b4b8e0345Ždownstream_cells_map€Čupstream_cells_map‹Ą:±compare_var_calcs‘Ù$8b3572b8-e571-43b7-ab45-68eabecace69Ą!©ismissing§xlabel!­true_mean_plt‘Ù$a802faec-6745-4f9d-820a-bb8c1aa25fc1§scatterŠtitle!Ą^­ready_to_plot‘Ù$76cd6fbe-9be4-4e29-a3e9-4fac87d1a0c8§ylabel!Ù$e0f22e5f-ce24-4d78-8b21-d5ba9b31d536„Žprecedence_heuristic §cell_idÙ$e0f22e5f-ce24-4d78-8b21-d5ba9b31d536Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$3f18862c-64e1-4e21-84a6-a0d2094448a7„Žprecedence_heuristic §cell_idÙ$3f18862c-64e1-4e21-84a6-a0d2094448a7Ždownstream_cells_map«response_2e‘Ù$6134acc4-4b96-4001-ad49-37fd7d6e040eČupstream_cells_map§missingÙ$0f7fb357-e4db-41bd-a24f-e156fcb9016a„Žprecedence_heuristic §cell_idÙ$0f7fb357-e4db-41bd-a24f-e156fcb9016aŽdownstream_cells_mapŁÎ”mČupstream_cells_mapƒĄ-§m_64bit‘Ù$5bcf3076-f31b-47e8-8297-8cf406ff71ab§m_32bit‘Ù$da5572db-5df8-4753-876f-e1b3a186f8a8Ù$de8df98a-48ce-4f6f-b725-880dfaf445b9„Žprecedence_heuristic §cell_idÙ$de8df98a-48ce-4f6f-b725-880dfaf445b9Ždownstream_cells_map€Čupstream_cells_mapƒŻdatetime2julianšDocs.doc€DocsÙ$441d3823-5003-4e48-b24f-ba09e10735ff„Žprecedence_heuristic §cell_idÙ$441d3823-5003-4e48-b24f-ba09e10735ffŽdownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$610f1c19-a2ea-40b1-9faa-d47ed60d17b1„Žprecedence_heuristic §cell_idÙ$610f1c19-a2ea-40b1-9faa-d47ed60d17b1Ždownstream_cells_map€Čupstream_cells_mapƒ§@md_str€hintšgetindexÙ$a83d07b9-d7b7-4274-929a-9a3474e44f08„Žprecedence_heuristic §cell_idÙ$a83d07b9-d7b7-4274-929a-9a3474e44f08Ždownstream_cells_map‚¶#434#julia_test_result±#433#pluto_resultČupstream_cells_mapȚ€Core·PlutoTest.Test.ReturnedłPlutoTest.WrongCallșPlutoTest.Base.catch_stack±PlutoTest.rethrowŹvar_one_pass‘Ù$4ab6efe2-271c-4574-898e-ce0817fc5033„@testŻPlutoTest.push!čPlutoTest.catch_backtrace­PlutoTest.===łPlutoTest.ErrorCallŽPlutoTest.Test.ThrewŁâ‰ˆčPlutoTest.unwrap_computed¶PlutoTest.Test.do_testŻPlutoTest.throw»PlutoTest.CapturedException©PlutoTest‘Ù$af508570-b20f-4dd3-a995-36c79fc41823ČPlutoTest.Computed”PlutoTest.CorrectCallŽPlutoTest.stacktrace­PlutoTest.isaÙ#PlutoTest.PartialEvaluatedExceptionźPlutoTest.lastȘCore._exprÙ$b4d6143c-42ad-460d-8af3-a36dae1a8879„Žprecedence_heuristic §cell_idÙ$b4d6143c-42ad-460d-8af3-a36dae1a8879Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$58d4e72a-aed5-4b8f-846e-bb63e4cc54c7„Žprecedence_heuristic §cell_idÙ$58d4e72a-aed5-4b8f-846e-bb63e4cc54c7Ždownstream_cells_map€Čupstream_cells_mapƒ§@md_strŠprotipšgetindexÙ$65ef6abf-460d-49ac-80e1-1ecc1d0250dd„Žprecedence_heuristic §cell_idÙ$65ef6abf-460d-49ac-80e1-1ecc1d0250ddŽdownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$838f871a-2346-4d27-a6a1-1705c9b3b833„Žprecedence_heuristic §cell_idÙ$838f871a-2346-4d27-a6a1-1705c9b3b833Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$c63db04d-5fc8-4bee-8594-5d033b2f7a09„Žprecedence_heuristic §cell_idÙ$c63db04d-5fc8-4bee-8594-5d033b2f7a09Ždownstream_cells_map«response_2d‘Ù$48d96e9d-b34b-4899-a976-a92602156981Čupstream_cells_map§missingÙ$ac593093-eebb-49df-9b9b-74ed388d3a2b„Žprecedence_heuristic §cell_idÙ$ac593093-eebb-49df-9b9b-74ed388d3a2bŽdownstream_cells_map€Čupstream_cells_map„źcheck_type_isałdisplay_msg_if_fail«response_1e‘Ù$6347a9de-1795-4980-be61-ec83f7b6c95ašMarkdownÙ$6134acc4-4b96-4001-ad49-37fd7d6e040e„Žprecedence_heuristic §cell_idÙ$6134acc4-4b96-4001-ad49-37fd7d6e040eŽdownstream_cells_map€Čupstream_cells_map„źcheck_type_isałdisplay_msg_if_failšMarkdown«response_2e‘Ù$3f18862c-64e1-4e21-84a6-a0d2094448a7Ù$65190391-e0fc-4db0-8fdd-092bcd58a588„Žprecedence_heuristic §cell_idÙ$65190391-e0fc-4db0-8fdd-092bcd58a588Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$29637138-4260-4fba-9258-dfa62c214088„Žprecedence_heuristic §cell_idÙ$29637138-4260-4fba-9258-dfa62c214088Ždownstream_cells_map«response_1d‘Ù$8588be85-c656-4239-a2f8-f0535d15e55eČupstream_cells_map§missingÙ$d7e3e30e-e46c-498f-8ec3-0ba403e03f15„Žprecedence_heuristic §cell_idÙ$d7e3e30e-e46c-498f-8ec3-0ba403e03f15Ždownstream_cells_map€Čupstream_cells_mapŁâ‰ˆ§methodsŹvar_two_pass‘Ù$86a442a6-fb6e-45c7-9ab9-83aee71b028cĄ!Ș@isdefined€ones©ismissingŠlength§correctŹkeep_working°func_not_definedą>=„ArrayÙ$569df89d-5039-4a63-8396-ab595811584c„Žprecedence_heuristic §cell_idÙ$569df89d-5039-4a63-8396-ab595811584cŽdownstream_cells_map€Čupstream_cells_map„źcheck_type_isałdisplay_msg_if_fail«response_2c‘Ù$10dca248-2004-4719-9e30-eb3025da0513šMarkdownÙ$a387d515-82d6-4211-8934-b5f0d3b062dc„Žprecedence_heuristic §cell_idÙ$a387d515-82d6-4211-8934-b5f0d3b062dcŽdownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$b77abd33-0214-46f4-9fde-8b38afafd224„Žprecedence_heuristic §cell_idÙ$b77abd33-0214-46f4-9fde-8b38afafd224Ždownstream_cells_map€Čupstream_cells_map„źcheck_type_isałdisplay_msg_if_fail«response_1a‘Ù$ca9cf926-0102-4d89-875d-8c86ec841794šMarkdownÙ$72474fca-4bc7-471e-9116-c48023f147dd„Žprecedence_heuristic §cell_idÙ$72474fca-4bc7-471e-9116-c48023f147ddŽdownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$da5572db-5df8-4753-876f-e1b3a186f8a8„Žprecedence_heuristic §cell_idÙ$da5572db-5df8-4753-876f-e1b3a186f8a8Ždownstream_cells_map§m_32bit‘Ù$0f7fb357-e4db-41bd-a24f-e156fcb9016aČupstream_cells_map‚§y_32bit‘Ù$691632b7-3435-4c0d-aff4-3bdc87d77e7b€meanÙ$a200eb3c-7041-47e4-89d2-d077dccc18c2„Žprecedence_heuristic §cell_idÙ$a200eb3c-7041-47e4-89d2-d077dccc18c2Ždownstream_cells_map€Čupstream_cells_map„źcheck_type_isałdisplay_msg_if_fail«response_1c‘Ù$fe4601cb-0cc3-4ac1-ae18-aa5fc7c35bb5šMarkdownÙ$86a442a6-fb6e-45c7-9ab9-83aee71b028c„Žprecedence_heuristic §cell_idÙ$86a442a6-fb6e-45c7-9ab9-83aee71b028cŽdownstream_cells_mapŹvar_two_pass“Ù$d7e3e30e-e46c-498f-8ec3-0ba403e03f15Ù$8b3572b8-e571-43b7-ab45-68eabecace69Ù$de78cc1c-444e-4308-adb5-d93afdc57682Čupstream_cells_map‚§missing„ArrayÙ$27667e0a-8ebc-4397-8ac3-33a0f19f6987„Žprecedence_heuristic §cell_idÙ$27667e0a-8ebc-4397-8ac3-33a0f19f6987Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$48a888f3-7067-4524-b818-279e3ed2ffdc„Žprecedence_heuristic §cell_idÙ$48a888f3-7067-4524-b818-279e3ed2ffdcŽdownstream_cells_map€Čupstream_cells_map„źcheck_type_isa«response_2f‘Ù$64dcecf3-1561-411a-8759-a4ccb219e303łdisplay_msg_if_failšMarkdownÙ$a802faec-6745-4f9d-820a-bb8c1aa25fc1„Žprecedence_heuristic §cell_idÙ$a802faec-6745-4f9d-820a-bb8c1aa25fc1Ždownstream_cells_map­true_mean_plt‘Ù$a9b3f568-c421-409f-9fcb-1f9b4b8e0345Čupstream_cells_map­jd_sept1_2021‘Ù$8b757575-9b7e-4154-8222-d024cb62f08fÙ$60dc2204-db4f-4038-8158-d0694dd720ba„Žprecedence_heuristic §cell_idÙ$60dc2204-db4f-4038-8158-d0694dd720baŽdownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$a4a9b516-5473-478e-a390-9e4f715310eb„Žprecedence_heuristic §cell_idÙ$a4a9b516-5473-478e-a390-9e4f715310ebŽdownstream_cells_map€Čupstream_cells_mapƒ§@md_strŁtipšgetindexÙ$cd09046b-753e-4843-a4e4-3be0b0c7fb97„Žprecedence_heuristic §cell_idÙ$cd09046b-753e-4843-a4e4-3be0b0c7fb97Ždownstream_cells_map€Čupstream_cells_mapĄ:±compare_var_calcs‘Ù$8b3572b8-e571-43b7-ab45-68eabecace69Ą!©ismissing§xlabel!­jd_sept1_2021‘Ù$8b757575-9b7e-4154-8222-d024cb62f08f€plotĄ^Štitle!žcompare_var_calcs_online‘Ù$de78cc1c-444e-4308-adb5-d93afdc57682­ready_to_plot‘Ù$76cd6fbe-9be4-4e29-a3e9-4fac87d1a0c8šscatter!§ylabel!Ù$48d96e9d-b34b-4899-a976-a92602156981„Žprecedence_heuristic §cell_idÙ$48d96e9d-b34b-4899-a976-a92602156981Ždownstream_cells_map€Čupstream_cells_map„źcheck_type_isałdisplay_msg_if_fail«response_2d‘Ù$c63db04d-5fc8-4bee-8594-5d033b2f7a09šMarkdownÙ$339639fc-77d8-4e88-85f3-59c7821cd01f„Žprecedence_heuristic §cell_idÙ$339639fc-77d8-4e88-85f3-59c7821cd01fŽdownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$3cb23c2a-2611-47e6-9ee5-4d1d4f0a84dc„Žprecedence_heuristic §cell_idÙ$3cb23c2a-2611-47e6-9ee5-4d1d4f0a84dcŽdownstream_cells_mapĄy“Ù$691632b7-3435-4c0d-aff4-3bdc87d77e7bÙ$5bcf3076-f31b-47e8-8297-8cf406ff71abÙ$2ca37a14-1e12-41ab-b85a-b8d6e9a28ab6Čupstream_cells_map…Żgenerate_sample‘Ù$6cc68a61-2c5a-4870-848d-122ac388daf1§num_obs‘Ù$ba1bac88-5b7d-4b21-991e-948fb00fc2bb€mean­jd_sept1_2021‘Ù$8b757575-9b7e-4154-8222-d024cb62f08fŁstdÙ$66d9bc94-3e61-41e8-a81d-88e307d97653„Žprecedence_heuristic §cell_idÙ$66d9bc94-3e61-41e8-a81d-88e307d97653Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$61503eb8-8a70-4ff7-b5bb-0a73c501d6c7„Žprecedence_heuristic §cell_idÙ$61503eb8-8a70-4ff7-b5bb-0a73c501d6c7Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$731f047f-0f26-4ab7-8810-398659642b0c„Žprecedence_heuristic §cell_idÙ$731f047f-0f26-4ab7-8810-398659642b0cŽdownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$0b768a24-e97a-47e8-925f-b9e75601ceae„Žprecedence_heuristic §cell_idÙ$0b768a24-e97a-47e8-925f-b9e75601ceaeŽdownstream_cells_map€Čupstream_cells_mapƒ§@md_str€hintšgetindexÙ$8b3572b8-e571-43b7-ab45-68eabecace69„Žprecedence_heuristic §cell_idÙ$8b3572b8-e571-43b7-ab45-68eabecace69Ždownstream_cells_map±compare_var_calcs“Ù$119e51ef-ed7b-4f9b-b7dd-67ae70bf934aÙ$a9b3f568-c421-409f-9fcb-1f9b4b8e0345Ù$cd09046b-753e-4843-a4e4-3be0b0c7fb97Čupstream_cells_mapȚŹvar_two_pass‘Ù$86a442a6-fb6e-45c7-9ab9-83aee71b028c§@assert„isnanĄ>Żgenerate_sample‘Ù$6cc68a61-2c5a-4870-848d-122ac388daf1ŠislessĄ!§Integer€Real„isinfĄ<Ą-„throwŹvar_one_pass‘Ù$4ab6efe2-271c-4574-898e-ce0817fc5033źAssertionErrorŁabsÙ$4ab6efe2-271c-4574-898e-ce0817fc5033„Žprecedence_heuristic §cell_idÙ$4ab6efe2-271c-4574-898e-ce0817fc5033Ždownstream_cells_mapŹvar_one_pass–Ù$47104686-c7f2-44c1-be4c-7bb2497aafbfÙ$51ced48f-0aab-47fd-ab59-7b0acea6097aÙ$192e6360-5eba-4a4d-b203-363caba8af64Ù$a83d07b9-d7b7-4274-929a-9a3474e44f08Ù$723c95f7-b751-490d-968a-fe15559416ddÙ$8b3572b8-e571-43b7-ab45-68eabecace69Čupstream_cells_map‚§missing„ArrayÙ$58d0e74a-d4f6-4aab-97aa-18d305e888e1„Žprecedence_heuristic §cell_idÙ$58d0e74a-d4f6-4aab-97aa-18d305e888e1Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$c337d59a-cb1c-4542-ae16-830bf8a2afc5„Žprecedence_heuristic §cell_idÙ$c337d59a-cb1c-4542-ae16-830bf8a2afc5Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$32831892-6da7-4f85-80ff-73c60a638382„Žprecedence_heuristic §cell_idÙ$32831892-6da7-4f85-80ff-73c60a638382Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$a1699fca-90ec-418b-a675-3982dd4c11ff„Žprecedence_heuristic §cell_idÙ$a1699fca-90ec-418b-a675-3982dd4c11ffŽdownstream_cells_map€Čupstream_cells_mapšDateTimeÙ$76cd6fbe-9be4-4e29-a3e9-4fac87d1a0c8„Žprecedence_heuristic §cell_idÙ$76cd6fbe-9be4-4e29-a3e9-4fac87d1a0c8Ždownstream_cells_map­ready_to_plot“Ù$119e51ef-ed7b-4f9b-b7dd-67ae70bf934aÙ$a9b3f568-c421-409f-9fcb-1f9b4b8e0345Ù$cd09046b-753e-4843-a4e4-3be0b0c7fb97Čupstream_cells_mapŠ€Core§@md_str€Base·PlutoRunner.create_bond«PlutoRunneršCheckBoxŻCore.applicable„@bindšBase.getšgetindexÙ$192e6360-5eba-4a4d-b203-363caba8af64„Žprecedence_heuristic §cell_idÙ$192e6360-5eba-4a4d-b203-363caba8af64Ždownstream_cells_map‚±#475#pluto_result¶#476#julia_test_resultČupstream_cells_mapȚ€Core·PlutoTest.Test.ReturnedłPlutoTest.WrongCallșPlutoTest.Base.catch_stack±PlutoTest.rethrowŹvar_one_pass‘Ù$4ab6efe2-271c-4574-898e-ce0817fc5033„@testŻPlutoTest.push!čPlutoTest.catch_backtrace­PlutoTest.===łPlutoTest.ErrorCallŽPlutoTest.Test.ThrewŁâ‰ˆčPlutoTest.unwrap_computed¶PlutoTest.Test.do_testŻPlutoTest.throw»PlutoTest.CapturedException©PlutoTest‘Ù$af508570-b20f-4dd3-a995-36c79fc41823€onesČPlutoTest.Computed”PlutoTest.CorrectCallŽPlutoTest.stacktrace­PlutoTest.isaÙ#PlutoTest.PartialEvaluatedExceptionźPlutoTest.lastȘCore._exprÙ$84f0ce6c-9ae0-4016-91e2-d436d4385366„Žprecedence_heuristic §cell_idÙ$84f0ce6c-9ae0-4016-91e2-d436d4385366Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$119e51ef-ed7b-4f9b-b7dd-67ae70bf934a„Žprecedence_heuristic §cell_idÙ$119e51ef-ed7b-4f9b-b7dd-67ae70bf934aŽdownstream_cells_map€Čupstream_cells_map‹Ą:±compare_var_calcs‘Ù$8b3572b8-e571-43b7-ab45-68eabecace69Ą!©ismissing§xlabel!­jd_sept1_2021‘Ù$8b757575-9b7e-4154-8222-d024cb62f08f§scatterŠtitle!Ą^­ready_to_plot‘Ù$76cd6fbe-9be4-4e29-a3e9-4fac87d1a0c8§ylabel!Ù$10dca248-2004-4719-9e30-eb3025da0513„Žprecedence_heuristic §cell_idÙ$10dca248-2004-4719-9e30-eb3025da0513Ždownstream_cells_map«response_2c‘Ù$569df89d-5039-4a63-8396-ab595811584cČupstream_cells_map§missingÙ$8c2cddbf-3a02-4969-952e-4d76ca23f95b„Žprecedence_heuristic §cell_idÙ$8c2cddbf-3a02-4969-952e-4d76ca23f95bŽdownstream_cells_map«response_1b‘Ù$5f84a3cc-dab6-4ad0-9644-7ea803f43475Čupstream_cells_map§missingÙ$c9b2756d-46cf-43a1-81a7-2aecf50fd69e„Žprecedence_heuristic §cell_idÙ$c9b2756d-46cf-43a1-81a7-2aecf50fd69eŽdownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$66a5de37-ff4c-40f6-99fc-624ca571b881„Žprecedence_heuristic §cell_idÙ$66a5de37-ff4c-40f6-99fc-624ca571b881Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$0c9c629c-cb43-4fa7-8322-0b47718f2a9a„Žprecedence_heuristic§cell_idÙ$0c9c629c-cb43-4fa7-8322-0b47718f2a9aŽdownstream_cells_map„PlotsČupstream_cells_map€Ù$9ca08091-8906-4b2e-b965-f8dbc385623d„Žprecedence_heuristic §cell_idÙ$9ca08091-8906-4b2e-b965-f8dbc385623dŽdownstream_cells_map€Čupstream_cells_map­WidthOverDocsÙ$37b12cb7-377b-48ba-b3ff-2457aa2c44a9„Žprecedence_heuristic §cell_idÙ$37b12cb7-377b-48ba-b3ff-2457aa2c44a9Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$a6cfeba5-d7c7-4493-aeae-379569932ef0„Žprecedence_heuristic §cell_idÙ$a6cfeba5-d7c7-4493-aeae-379569932ef0Ždownstream_cells_map€Čupstream_cells_mapƒ§@md_strŁtipšgetindexÙ$1907ec31-4b3f-4db6-a42f-fffb3b722d7e„Žprecedence_heuristic§cell_idÙ$1907ec31-4b3f-4db6-a42f-fffb3b722d7eŽdownstream_cells_mapƒȘStatistics„DatesŠRandom‘Ù$6cc68a61-2c5a-4870-848d-122ac388daf1Čupstream_cells_map€Ù$64dcecf3-1561-411a-8759-a4ccb219e303„Žprecedence_heuristic §cell_idÙ$64dcecf3-1561-411a-8759-a4ccb219e303Ždownstream_cells_map«response_2f‘Ù$48a888f3-7067-4524-b818-279e3ed2ffdcČupstream_cells_map§missingÙ$d470aea9-b69e-4f02-bbaf-4d61cb5244b9„Žprecedence_heuristic §cell_idÙ$d470aea9-b69e-4f02-bbaf-4d61cb5244b9Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$43f717de-f5c8-43b5-9229-254b9cb89ca7„Žprecedence_heuristic §cell_idÙ$43f717de-f5c8-43b5-9229-254b9cb89ca7Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$98861118-c1c1-48d3-bb7b-1dc8f8e52604„Žprecedence_heuristic §cell_idÙ$98861118-c1c1-48d3-bb7b-1dc8f8e52604Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$a11ffb3d-310f-4e28-b8f2-724aab7006a0„Žprecedence_heuristic §cell_idÙ$a11ffb3d-310f-4e28-b8f2-724aab7006a0Ždownstream_cells_map«response_2h‘Ù$0cd929dc-f9b6-4dad-8de4-93cf4abd200eČupstream_cells_map§missingÙ$9f4c6a89-754d-4dee-813f-b2d902439ea1„Žprecedence_heuristic §cell_idÙ$9f4c6a89-754d-4dee-813f-b2d902439ea1Ždownstream_cells_map€Čupstream_cells_map‚Štypeof­jd_sept1_2021‘Ù$8b757575-9b7e-4154-8222-d024cb62f08fÙ$8b757575-9b7e-4154-8222-d024cb62f08f„Žprecedence_heuristic §cell_idÙ$8b757575-9b7e-4154-8222-d024cb62f08fŽdownstream_cells_map­jd_sept1_2021–Ù$9f4c6a89-754d-4dee-813f-b2d902439ea1Ù$1d44aa99-26b1-47cd-9d19-64f4d0daf0fcÙ$3cb23c2a-2611-47e6-9ee5-4d1d4f0a84dcÙ$119e51ef-ed7b-4f9b-b7dd-67ae70bf934aÙ$a802faec-6745-4f9d-820a-bb8c1aa25fc1Ù$cd09046b-753e-4843-a4e4-3be0b0c7fb97Čupstream_cells_map‚Żdatetime2julianȘsept1_2021‘Ù$7c0b516d-4e98-452e-8203-7d5988631af6Ù$29ab9da1-2130-4ea1-aa4d-af08f8011bd0„Žprecedence_heuristic §cell_idÙ$29ab9da1-2130-4ea1-aa4d-af08f8011bd0Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$691632b7-3435-4c0d-aff4-3bdc87d77e7b„Žprecedence_heuristic §cell_idÙ$691632b7-3435-4c0d-aff4-3bdc87d77e7bŽdownstream_cells_map§y_32bit’Ù$da5572db-5df8-4753-876f-e1b3a186f8a8Ù$217e0561-9724-4fd2-ab8c-e19d767ed305Čupstream_cells_map‚§Float32Ąy‘Ù$3cb23c2a-2611-47e6-9ee5-4d1d4f0a84dcÙ$f362498a-fe8e-440d-afab-c817545b3144„Žprecedence_heuristic §cell_idÙ$f362498a-fe8e-440d-afab-c817545b3144Ždownstream_cells_map€Čupstream_cells_map„źcheck_type_isałdisplay_msg_if_fail«response_2g‘Ù$af2bd92f-a67f-4fe3-965e-d337d57a2368šMarkdownÙ$5bcf3076-f31b-47e8-8297-8cf406ff71ab„Žprecedence_heuristic §cell_idÙ$5bcf3076-f31b-47e8-8297-8cf406ff71abŽdownstream_cells_map§m_64bit‘Ù$0f7fb357-e4db-41bd-a24f-e156fcb9016aČupstream_cells_map‚€meanĄy‘Ù$3cb23c2a-2611-47e6-9ee5-4d1d4f0a84dcÙ$9ad35a1b-3cc1-475a-afd6-8f340a86cdd0„Žprecedence_heuristic §cell_idÙ$9ad35a1b-3cc1-475a-afd6-8f340a86cdd0Ždownstream_cells_map€Čupstream_cells_map‚§@md_stršgetindexÙ$fe4601cb-0cc3-4ac1-ae18-aa5fc7c35bb5„Žprecedence_heuristic §cell_idÙ$fe4601cb-0cc3-4ac1-ae18-aa5fc7c35bb5Ždownstream_cells_map«response_1c‘Ù$a200eb3c-7041-47e4-89d2-d077dccc18c2Čupstream_cells_map§missingÙ$5f84a3cc-dab6-4ad0-9644-7ea803f43475„Žprecedence_heuristic §cell_idÙ$5f84a3cc-dab6-4ad0-9644-7ea803f43475Ždownstream_cells_map€Čupstream_cells_map„źcheck_type_isałdisplay_msg_if_fail«response_1b‘Ù$8c2cddbf-3a02-4969-952e-4d76ca23f95bšMarkdownÙ$ba1bac88-5b7d-4b21-991e-948fb00fc2bb„Žprecedence_heuristic §cell_idÙ$ba1bac88-5b7d-4b21-991e-948fb00fc2bbŽdownstream_cells_map§num_obs‘Ù$3cb23c2a-2611-47e6-9ee5-4d1d4f0a84dcČupstream_cells_map€Žcell_execution_orderÜeÙ$1907ec31-4b3f-4db6-a42f-fffb3b722d7eÙ$0c9c629c-cb43-4fa7-8322-0b47718f2a9aÙ$af508570-b20f-4dd3-a995-36c79fc41823Ù$27667e0a-8ebc-4397-8ac3-33a0f19f6987Ù$1f304a1e-935c-4ccc-8331-6f389ae3c7b2Ù$4697b219-94a8-4053-9ab6-35875c05b55cÙ$9ad35a1b-3cc1-475a-afd6-8f340a86cdd0Ù$60dc2204-db4f-4038-8158-d0694dd720baÙ$f16fa36b-9bed-4a37-a424-a56c717eaf9aÙ$de8df98a-48ce-4f6f-b725-880dfaf445b9Ù$71829343-22e9-4f5f-8c54-afd4dffa826aÙ$a1699fca-90ec-418b-a675-3982dd4c11ffÙ$838f871a-2346-4d27-a6a1-1705c9b3b833Ù$7c0b516d-4e98-452e-8203-7d5988631af6Ù$8b757575-9b7e-4154-8222-d024cb62f08fÙ$29ab9da1-2130-4ea1-aa4d-af08f8011bd0Ù$9f4c6a89-754d-4dee-813f-b2d902439ea1Ù$98861118-c1c1-48d3-bb7b-1dc8f8e52604Ù$65190391-e0fc-4db0-8fdd-092bcd58a588Ù$c9b2756d-46cf-43a1-81a7-2aecf50fd69eÙ$6cc68a61-2c5a-4870-848d-122ac388daf1Ù$441d3823-5003-4e48-b24f-ba09e10735ffÙ$1d44aa99-26b1-47cd-9d19-64f4d0daf0fcÙ$66a5de37-ff4c-40f6-99fc-624ca571b881Ù$ca9cf926-0102-4d89-875d-8c86ec841794Ù$b77abd33-0214-46f4-9fde-8b38afafd224Ù$b4d6143c-42ad-460d-8af3-a36dae1a8879Ù$8c2cddbf-3a02-4969-952e-4d76ca23f95bÙ$5f84a3cc-dab6-4ad0-9644-7ea803f43475Ù$61503eb8-8a70-4ff7-b5bb-0a73c501d6c7Ù$ba1bac88-5b7d-4b21-991e-948fb00fc2bbÙ$3cb23c2a-2611-47e6-9ee5-4d1d4f0a84dcÙ$32831892-6da7-4f85-80ff-73c60a638382Ù$a4a9b516-5473-478e-a390-9e4f715310ebÙ$a6cfeba5-d7c7-4493-aeae-379569932ef0Ù$37b12cb7-377b-48ba-b3ff-2457aa2c44a9Ù$691632b7-3435-4c0d-aff4-3bdc87d77e7bÙ$84f0ce6c-9ae0-4016-91e2-d436d4385366Ù$5bcf3076-f31b-47e8-8297-8cf406ff71abÙ$da5572db-5df8-4753-876f-e1b3a186f8a8Ù$0f7fb357-e4db-41bd-a24f-e156fcb9016aÙ$2ca37a14-1e12-41ab-b85a-b8d6e9a28ab6Ù$217e0561-9724-4fd2-ab8c-e19d767ed305Ù$ca8166f2-fd5b-4915-b856-c1d32a3cd5eeÙ$1313e06f-4e28-402c-b29f-04d97cca66c1Ù$fe4601cb-0cc3-4ac1-ae18-aa5fc7c35bb5Ù$a200eb3c-7041-47e4-89d2-d077dccc18c2Ù$731f047f-0f26-4ab7-8810-398659642b0cÙ$29637138-4260-4fba-9258-dfa62c214088Ù$8588be85-c656-4239-a2f8-f0535d15e55eÙ$fd31f33f-641c-47a1-9ad8-fbfb728959c2Ù$6347a9de-1795-4980-be61-ec83f7b6c95aÙ$ac593093-eebb-49df-9b9b-74ed388d3a2bÙ$e0f22e5f-ce24-4d78-8b21-d5ba9b31d536Ù$c337d59a-cb1c-4542-ae16-830bf8a2afc5Ù$610f1c19-a2ea-40b1-9faa-d47ed60d17b1Ù$0b768a24-e97a-47e8-925f-b9e75601ceaeÙ$4ab6efe2-271c-4574-898e-ce0817fc5033Ù$72474fca-4bc7-471e-9116-c48023f147ddÙ$47104686-c7f2-44c1-be4c-7bb2497aafbfÙ$51ced48f-0aab-47fd-ab59-7b0acea6097aÙ$192e6360-5eba-4a4d-b203-363caba8af64Ù$a83d07b9-d7b7-4274-929a-9a3474e44f08Ù$723c95f7-b751-490d-968a-fe15559416ddÙ$58d4e72a-aed5-4b8f-846e-bb63e4cc54c7Ù$58d0e74a-d4f6-4aab-97aa-18d305e888e1Ù$86a442a6-fb6e-45c7-9ab9-83aee71b028cÙ$d7e3e30e-e46c-498f-8ec3-0ba403e03f15Ù$398433fa-69a1-497b-8248-041a180596e0Ù$8b3572b8-e571-43b7-ab45-68eabecace69Ù$43f717de-f5c8-43b5-9229-254b9cb89ca7Ù$bfca0183-ef43-4858-8305-2e669ba14d94Ù$76cd6fbe-9be4-4e29-a3e9-4fac87d1a0c8Ù$119e51ef-ed7b-4f9b-b7dd-67ae70bf934aÙ$65ef6abf-460d-49ac-80e1-1ecc1d0250ddÙ$a802faec-6745-4f9d-820a-bb8c1aa25fc1Ù$a9b3f568-c421-409f-9fcb-1f9b4b8e0345Ù$d470aea9-b69e-4f02-bbaf-4d61cb5244b9Ù$10dca248-2004-4719-9e30-eb3025da0513Ù$569df89d-5039-4a63-8396-ab595811584cÙ$66d9bc94-3e61-41e8-a81d-88e307d97653Ù$c63db04d-5fc8-4bee-8594-5d033b2f7a09Ù$48d96e9d-b34b-4899-a976-a92602156981Ù$f0c73fc1-8da9-4579-a369-a3c907fc56f4Ù$1b7665b7-c25e-46ac-bcad-f4b8d0607693Ù$de78cc1c-444e-4308-adb5-d93afdc57682Ù$cd09046b-753e-4843-a4e4-3be0b0c7fb97Ù$3f18862c-64e1-4e21-84a6-a0d2094448a7Ù$6134acc4-4b96-4001-ad49-37fd7d6e040eÙ$3393a0a1-c202-4fb1-b752-275595303502Ù$64dcecf3-1561-411a-8759-a4ccb219e303Ù$48a888f3-7067-4524-b818-279e3ed2ffdcÙ$339639fc-77d8-4e88-85f3-59c7821cd01fÙ$af2bd92f-a67f-4fe3-965e-d337d57a2368Ù$f362498a-fe8e-440d-afab-c817545b3144Ù$a387d515-82d6-4211-8934-b5f0d3b062dcÙ$a11ffb3d-310f-4e28-b8f2-724aab7006a0Ù$0cd929dc-f9b6-4dad-8de4-93cf4abd200eÙ$b760fedd-41ea-4784-845f-ede0163c0d12Ù$9ca08091-8906-4b2e-b965-f8dbc385623dÙ$bfdd8ecf-5f05-4056-a9d8-f3404774ff52Žlast_hot_reload_timeË©shortpathŠex2.jlźprocess_status„ready€pathÙ"/home/runner/work/lab1/lab1/ex2.jl­pluto_versionšv0.20.17źlast_save_timeËAÚ,–X·e|Șcell_orderÜeÙ$27667e0a-8ebc-4397-8ac3-33a0f19f6987Ù$1f304a1e-935c-4ccc-8331-6f389ae3c7b2Ù$4697b219-94a8-4053-9ab6-35875c05b55cÙ$9ad35a1b-3cc1-475a-afd6-8f340a86cdd0Ù$1907ec31-4b3f-4db6-a42f-fffb3b722d7eÙ$60dc2204-db4f-4038-8158-d0694dd720baÙ$f16fa36b-9bed-4a37-a424-a56c717eaf9aÙ$de8df98a-48ce-4f6f-b725-880dfaf445b9Ù$71829343-22e9-4f5f-8c54-afd4dffa826aÙ$a1699fca-90ec-418b-a675-3982dd4c11ffÙ$838f871a-2346-4d27-a6a1-1705c9b3b833Ù$7c0b516d-4e98-452e-8203-7d5988631af6Ù$8b757575-9b7e-4154-8222-d024cb62f08fÙ$29ab9da1-2130-4ea1-aa4d-af08f8011bd0Ù$9f4c6a89-754d-4dee-813f-b2d902439ea1Ù$98861118-c1c1-48d3-bb7b-1dc8f8e52604Ù$65190391-e0fc-4db0-8fdd-092bcd58a588Ù$c9b2756d-46cf-43a1-81a7-2aecf50fd69eÙ$6cc68a61-2c5a-4870-848d-122ac388daf1Ù$441d3823-5003-4e48-b24f-ba09e10735ffÙ$1d44aa99-26b1-47cd-9d19-64f4d0daf0fcÙ$66a5de37-ff4c-40f6-99fc-624ca571b881Ù$ca9cf926-0102-4d89-875d-8c86ec841794Ù$b77abd33-0214-46f4-9fde-8b38afafd224Ù$b4d6143c-42ad-460d-8af3-a36dae1a8879Ù$8c2cddbf-3a02-4969-952e-4d76ca23f95bÙ$5f84a3cc-dab6-4ad0-9644-7ea803f43475Ù$61503eb8-8a70-4ff7-b5bb-0a73c501d6c7Ù$ba1bac88-5b7d-4b21-991e-948fb00fc2bbÙ$3cb23c2a-2611-47e6-9ee5-4d1d4f0a84dcÙ$32831892-6da7-4f85-80ff-73c60a638382Ù$a4a9b516-5473-478e-a390-9e4f715310ebÙ$a6cfeba5-d7c7-4493-aeae-379569932ef0Ù$37b12cb7-377b-48ba-b3ff-2457aa2c44a9Ù$691632b7-3435-4c0d-aff4-3bdc87d77e7bÙ$84f0ce6c-9ae0-4016-91e2-d436d4385366Ù$5bcf3076-f31b-47e8-8297-8cf406ff71abÙ$da5572db-5df8-4753-876f-e1b3a186f8a8Ù$0f7fb357-e4db-41bd-a24f-e156fcb9016aÙ$2ca37a14-1e12-41ab-b85a-b8d6e9a28ab6Ù$217e0561-9724-4fd2-ab8c-e19d767ed305Ù$ca8166f2-fd5b-4915-b856-c1d32a3cd5eeÙ$1313e06f-4e28-402c-b29f-04d97cca66c1Ù$fe4601cb-0cc3-4ac1-ae18-aa5fc7c35bb5Ù$a200eb3c-7041-47e4-89d2-d077dccc18c2Ù$731f047f-0f26-4ab7-8810-398659642b0cÙ$29637138-4260-4fba-9258-dfa62c214088Ù$8588be85-c656-4239-a2f8-f0535d15e55eÙ$fd31f33f-641c-47a1-9ad8-fbfb728959c2Ù$6347a9de-1795-4980-be61-ec83f7b6c95aÙ$ac593093-eebb-49df-9b9b-74ed388d3a2bÙ$e0f22e5f-ce24-4d78-8b21-d5ba9b31d536Ù$c337d59a-cb1c-4542-ae16-830bf8a2afc5Ù$610f1c19-a2ea-40b1-9faa-d47ed60d17b1Ù$0b768a24-e97a-47e8-925f-b9e75601ceaeÙ$4ab6efe2-271c-4574-898e-ce0817fc5033Ù$72474fca-4bc7-471e-9116-c48023f147ddÙ$47104686-c7f2-44c1-be4c-7bb2497aafbfÙ$51ced48f-0aab-47fd-ab59-7b0acea6097aÙ$192e6360-5eba-4a4d-b203-363caba8af64Ù$a83d07b9-d7b7-4274-929a-9a3474e44f08Ù$723c95f7-b751-490d-968a-fe15559416ddÙ$58d4e72a-aed5-4b8f-846e-bb63e4cc54c7Ù$58d0e74a-d4f6-4aab-97aa-18d305e888e1Ù$86a442a6-fb6e-45c7-9ab9-83aee71b028cÙ$d7e3e30e-e46c-498f-8ec3-0ba403e03f15Ù$398433fa-69a1-497b-8248-041a180596e0Ù$8b3572b8-e571-43b7-ab45-68eabecace69Ù$43f717de-f5c8-43b5-9229-254b9cb89ca7Ù$0c9c629c-cb43-4fa7-8322-0b47718f2a9aÙ$bfca0183-ef43-4858-8305-2e669ba14d94Ù$76cd6fbe-9be4-4e29-a3e9-4fac87d1a0c8Ù$119e51ef-ed7b-4f9b-b7dd-67ae70bf934aÙ$65ef6abf-460d-49ac-80e1-1ecc1d0250ddÙ$a802faec-6745-4f9d-820a-bb8c1aa25fc1Ù$a9b3f568-c421-409f-9fcb-1f9b4b8e0345Ù$d470aea9-b69e-4f02-bbaf-4d61cb5244b9Ù$10dca248-2004-4719-9e30-eb3025da0513Ù$569df89d-5039-4a63-8396-ab595811584cÙ$66d9bc94-3e61-41e8-a81d-88e307d97653Ù$c63db04d-5fc8-4bee-8594-5d033b2f7a09Ù$48d96e9d-b34b-4899-a976-a92602156981Ù$f0c73fc1-8da9-4579-a369-a3c907fc56f4Ù$1b7665b7-c25e-46ac-bcad-f4b8d0607693Ù$de78cc1c-444e-4308-adb5-d93afdc57682Ù$cd09046b-753e-4843-a4e4-3be0b0c7fb97Ù$3f18862c-64e1-4e21-84a6-a0d2094448a7Ù$6134acc4-4b96-4001-ad49-37fd7d6e040eÙ$3393a0a1-c202-4fb1-b752-275595303502Ù$64dcecf3-1561-411a-8759-a4ccb219e303Ù$48a888f3-7067-4524-b818-279e3ed2ffdcÙ$339639fc-77d8-4e88-85f3-59c7821cd01fÙ$af2bd92f-a67f-4fe3-965e-d337d57a2368Ù$f362498a-fe8e-440d-afab-c817545b3144Ù$a387d515-82d6-4211-8934-b5f0d3b062dcÙ$a11ffb3d-310f-4e28-b8f2-724aab7006a0Ù$0cd929dc-f9b6-4dad-8de4-93cf4abd200eÙ$b760fedd-41ea-4784-845f-ede0163c0d12Ù$9ca08091-8906-4b2e-b965-f8dbc385623dÙ$af508570-b20f-4dd3-a995-36c79fc41823Ù$bfdd8ecf-5f05-4056-a9d8-f3404774ff52±published_objectsˆÙ5ffb28f94-8543-11f0-120d-b33132eb5b69/4ca3b5c4a320921c„ArrayÙ5ffb28f94-8543-11f0-120d-b33132eb5b69/7ccb0078dcd6bfa1…Šprefix„Int64šelements›’’Ą0Ștext/plain’’Ą1Ștext/plain’’Ą2Ștext/plain’’Ą3Ștext/plain’’Ą4Ștext/plain’’Ą5Ștext/plain’’Ą6Ștext/plain’’Ą7Ștext/plain’ ’Ą8Ștext/plain’ ’Ą9Ștext/plain’ ’ą10Ștext/plain€type„ArrayŹprefix_short šobjectid°94852de507a8bf29Ù5ffb28f94-8543-11f0-120d-b33132eb5b69/39c23046f871a392Ù-var_one_pass (generic function with 1 method)Ù5ffb28f94-8543-11f0-120d-b33132eb5b69/9a1bd7151b59fd77…ŠprefixšUnionAllšelements‘’’„ArrayȘtext/plain€type„ArrayŹprefix_short šobjectid°37b22e5ecb2d5638Ù5ffb28f94-8543-11f0-120d-b33132eb5b69/b8855b077021025a§missingÙ5ffb28f94-8543-11f0-120d-b33132eb5b69/68f5b93b27601d16…Šprefix§Float64šelementsš’’Ł1.0Ștext/plain’’Ł1.0Ștext/plain’’Ł1.0Ștext/plain’’Ł1.0Ștext/plain’’Ł1.0Ștext/plain’’Ł1.0Ștext/plain’’Ł1.0Ștext/plain’’Ł1.0Ștext/plain’ ’Ł1.0Ștext/plain’ ’Ł1.0Ștext/plain€type„ArrayŹprefix_short šobjectid°23496eecdc2845cbÙ5ffb28f94-8543-11f0-120d-b33132eb5b69/eeaeaa7a973499cf€trueÙ5ffb28f94-8543-11f0-120d-b33132eb5b69/6df1bddaf94020bfĄ1„nbpkgŠŻinstall_time_nsÏ*îŠÛăŹinstantiatedĂČinstalled_versions‡„DatesŠstdlibȘStatisticsŠstdlib§PlutoUIŠ0.7.70„Plots§1.40.19©PlutoTest„0.2.2ŠRandomŠstdlibČPlutoTeachingTools„0.4.5°terminal_outputsˆȘStatisticsÚ@Ë Resolving... ===  Installed GR_jll ─────────────────────── v0.73.17+0 Installed JpegTurbo_jll ──────────────── v3.1.2+0  Installed LERC_jll ───────────────────── v4.0.1+0  Installed Opus_jll ───────────────────── v1.5.2+0  Installed x265_jll ───────────────────── v4.1.0+0  Installed libdecor_jll ───────────────── v0.2.2+0  Installed libfdk_aac_jll ─────────────── v2.0.4+0  Installed Libmount_jll ───────────────── v2.41.1+0  Installed Grisu ──────────────────────── v1.0.2  Installed Measures ───────────────────── v0.3.2  Installed Xorg_xkbcomp_jll ───────────── v1.4.7+0  Installed Hyperscript ────────────────── v0.0.5  Installed Unitful ────────────────────── v1.24.0  Installed Xorg_xcb_util_wm_jll ───────── v0.4.2+0  Installed Xorg_xcb_util_image_jll ────── v0.4.1+0  Installed Contour ────────────────────── v0.6.3  Installed RecipesPipeline ────────────── v0.6.12  Installed PlotUtils ──────────────────── v1.4.3  Installed Xorg_libSM_jll ─────────────── v1.2.6+0  Installed DelimitedFiles ─────────────── v1.9.1  Installed Cairo_jll ──────────────────── v1.18.5+0  Installed Fontconfig_jll ─────────────── v2.17.1+0  Installed Xorg_xcb_util_jll ──────────── v0.4.1+0  Installed Xorg_libxkbfile_jll ────────── v1.1.3+0  Installed Statistics ─────────────────── v1.11.1  Installed PlutoUI ────────────────────── v0.7.70  Installed Xorg_libXinerama_jll ───────── v1.1.6+0  Installed EpollShim_jll ──────────────── v0.0.20230411+1  Installed Xorg_libXau_jll ────────────── v1.0.13+0  Installed Missings ───────────────────── v1.2.0  Installed FFMPEG ─────────────────────── v0.4.4  Installed IrrationalConstants ────────── v0.2.4  Installed Showoff ────────────────────── v1.0.3  Installed Pango_jll ──────────────────── v1.56.3+0  Installed PtrArrays ──────────────────── v1.3.0  Installed xkbcommon_jll ──────────────── v1.9.2+0  Installed Bzip2_jll ──────────────────── v1.0.9+0  Installed Xorg_xcb_util_keysyms_jll ──── v0.4.1+0  Installed XZ_jll ─────────────────────── v5.8.1+0  Installed HarfBuzz_jll ───────────────── v8.5.1+0  Installed NaNMath ────────────────────── v1.1.3  Installed PlotThemes ─────────────────── v3.3.0  Installed x264_jll ───────────────────── v10164.0.1+0  Installed FriBidi_jll ────────────────── v1.0.17+0  Installed UnicodeFun ─────────────────── v0.4.1  Installed GLFW_jll ───────────────────── v3.4.0+2  Installed fzf_jll ────────────────────── v0.61.1+0  Installed LZO_jll ────────────────────── v2.10.3+0  Installed FreeType2_jll ──────────────── v2.13.4+0  Installed JLFzf ──────────────────────── v0.1.11  Installed StatsAPI ───────────────────── v1.7.1  Installed ColorSchemes ───────────────── v3.30.0  Installed StatsBase ──────────────────── v0.34.6  Installed Colors ─────────────────────── v0.13.1  Installed DataStructures ─────────────── v0.19.0  Installed GR ─────────────────────────── v0.73.17  Installed libpng_jll ─────────────────── v1.6.50+0  Installed Xorg_libxcb_jll ────────────── v1.17.1+0  Installed mtdev_jll ──────────────────── v1.1.7+0  Installed libaom_jll ─────────────────── v3.12.1+0  Installed Dbus_jll ───────────────────── v1.16.2+0  Installed ColorTypes ─────────────────── v0.12.1  Installed PlutoTeachingTools ─────────── v0.4.5  Installed eudev_jll ──────────────────── v3.2.14+0  Installed Xorg_libXext_jll ───────────── v1.3.7+0  Installed Zstd_jll ───────────────────── v1.5.7+1  Installed TensorCore ─────────────────── v0.1.1  Installed Libtiff_jll ────────────────── v4.7.1+0  Installed Xorg_xcb_util_cursor_jll ───── v0.1.5+0  Installed Plots ──────────────────────── v1.40.19  Installed Format ─────────────────────── v1.3.7  Installed libevdev_jll ───────────────── v1.13.4+0  Installed libinput_jll ───────────────── v1.28.1+0  Installed Xorg_libXrender_jll ────────── v0.9.12+0  Installed Libffi_jll ─────────────────── v3.4.7+0  Installed ColorVectorSpace ───────────── v0.11.0  Installed Xorg_libXi_jll ─────────────── v1.8.3+0  Installed Ogg_jll ────────────────────── v1.3.6+0  Installed Qt6ShaderTools_jll ─────────── v6.8.2+1  Installed Vulkan_Loader_jll ──────────── v1.3.243+0  Installed Reexport ───────────────────── v1.2.2  Installed Xorg_libXcursor_jll ────────── v1.2.4+0  Installed Qt6Declarative_jll ─────────── v6.8.2+1  Installed LogExpFunctions ────────────── v0.3.29  Installed AliasTables ────────────────── v1.1.3  Installed MacroTools ─────────────────── v0.5.16  Installed Libuuid_jll ────────────────── v2.41.1+0  Installed DocStringExtensions ────────── v0.9.5  Installed Xorg_libICE_jll ────────────── v1.1.2+0  Installed Xorg_xcb_util_renderutil_jll ─ v0.3.10+0  Installed StableRNGs ─────────────────── v1.0.3  Installed libass_jll ─────────────────── v0.17.4+0  Installed Graphite2_jll ──────────────── v1.3.15+0  Installed Pixman_jll ─────────────────── v0.44.2+0  Installed Wayland_jll ────────────────── v1.24.0+0  Installed Xorg_xkeyboard_config_jll ──── v2.44.0+0  Installed FFMPEG_jll ─────────────────── v7.1.1+0  Installed Xorg_xtrans_jll ────────────── v1.6.0+0  Installed IOCapture ──────────────────── v0.2.5  Installed Latexify ───────────────────── v0.16.9  Installed LLVMOpenMP_jll ─────────────── v18.1.8+0  Installed FixedPointNumbers ──────────── v0.8.5  Installed Xorg_libXrandr_jll ─────────── v1.5.5+0  Installed Qt6Wayland_jll ─────────────── v6.8.2+1  Installed Qt6Base_jll ────────────────── v6.8.2+1  Installed LAME_jll ───────────────────── v3.100.3+0  Installed GettextRuntime_jll ─────────── v0.22.4+0  Installed Xorg_libXfixes_jll ─────────── v6.0.1+0  Installed RecipesBase ────────────────── v1.3.4  Installed LaTeXStrings ───────────────── v1.4.0  Installed libvorbis_jll ──────────────── v1.3.8+0  Installed Glib_jll ───────────────────── v2.84.3+0  Installed Xorg_libXdmcp_jll ──────────── v1.1.6+0  Installed Libglvnd_jll ───────────────── v1.7.1+1  Installed Xorg_libX11_jll ────────────── v1.8.12+0  Installed Unzip ──────────────────────── v0.2.0  Installed UnitfulLatexify ────────────── v1.7.0  Installed PlutoTest ──────────────────── v0.2.2  Installed SortingAlgorithms ──────────── v1.2.2  No Changes to `/tmp/jl_yrPLos/Project.toml`   Updating `/tmp/jl_yrPLos/Manifest.toml` [05823500] ↑ OpenLibm_jll v0.8.1+2 ⇒ v0.8.5+0 Instantiating... === Precompiling... ===  Activating project at `/tmp/jl_yrPLos` Precompiling project... 124 dependencies successfully precompiled in 179 seconds. 63 already precompiled.„DatesÚ@Ë Resolving... ===  Installed GR_jll ─────────────────────── v0.73.17+0 Installed JpegTurbo_jll ──────────────── v3.1.2+0  Installed LERC_jll ───────────────────── v4.0.1+0  Installed Opus_jll ───────────────────── v1.5.2+0  Installed x265_jll ───────────────────── v4.1.0+0  Installed libdecor_jll ───────────────── v0.2.2+0  Installed libfdk_aac_jll ─────────────── v2.0.4+0  Installed Libmount_jll ───────────────── v2.41.1+0  Installed Grisu ──────────────────────── v1.0.2  Installed Measures ───────────────────── v0.3.2  Installed Xorg_xkbcomp_jll ───────────── v1.4.7+0  Installed Hyperscript ────────────────── v0.0.5  Installed Unitful ────────────────────── v1.24.0  Installed Xorg_xcb_util_wm_jll ───────── v0.4.2+0  Installed Xorg_xcb_util_image_jll ────── v0.4.1+0  Installed Contour ────────────────────── v0.6.3  Installed RecipesPipeline ────────────── v0.6.12  Installed PlotUtils ──────────────────── v1.4.3  Installed Xorg_libSM_jll ─────────────── v1.2.6+0  Installed DelimitedFiles ─────────────── v1.9.1  Installed Cairo_jll ──────────────────── v1.18.5+0  Installed Fontconfig_jll ─────────────── v2.17.1+0  Installed Xorg_xcb_util_jll ──────────── v0.4.1+0  Installed Xorg_libxkbfile_jll ────────── v1.1.3+0  Installed Statistics ─────────────────── v1.11.1  Installed PlutoUI ────────────────────── v0.7.70  Installed Xorg_libXinerama_jll ───────── v1.1.6+0  Installed EpollShim_jll ──────────────── v0.0.20230411+1  Installed Xorg_libXau_jll ────────────── v1.0.13+0  Installed Missings ───────────────────── v1.2.0  Installed FFMPEG ─────────────────────── v0.4.4  Installed IrrationalConstants ────────── v0.2.4  Installed Showoff ────────────────────── v1.0.3  Installed Pango_jll ──────────────────── v1.56.3+0  Installed PtrArrays ──────────────────── v1.3.0  Installed xkbcommon_jll ──────────────── v1.9.2+0  Installed Bzip2_jll ──────────────────── v1.0.9+0  Installed Xorg_xcb_util_keysyms_jll ──── v0.4.1+0  Installed XZ_jll ─────────────────────── v5.8.1+0  Installed HarfBuzz_jll ───────────────── v8.5.1+0  Installed NaNMath ────────────────────── v1.1.3  Installed PlotThemes ─────────────────── v3.3.0  Installed x264_jll ───────────────────── v10164.0.1+0  Installed FriBidi_jll ────────────────── v1.0.17+0  Installed UnicodeFun ─────────────────── v0.4.1  Installed GLFW_jll ───────────────────── v3.4.0+2  Installed fzf_jll ────────────────────── v0.61.1+0  Installed LZO_jll ────────────────────── v2.10.3+0  Installed FreeType2_jll ──────────────── v2.13.4+0  Installed JLFzf ──────────────────────── v0.1.11  Installed StatsAPI ───────────────────── v1.7.1  Installed ColorSchemes ───────────────── v3.30.0  Installed StatsBase ──────────────────── v0.34.6  Installed Colors ─────────────────────── v0.13.1  Installed DataStructures ─────────────── v0.19.0  Installed GR ─────────────────────────── v0.73.17  Installed libpng_jll ─────────────────── v1.6.50+0  Installed Xorg_libxcb_jll ────────────── v1.17.1+0  Installed mtdev_jll ──────────────────── v1.1.7+0  Installed libaom_jll ─────────────────── v3.12.1+0  Installed Dbus_jll ───────────────────── v1.16.2+0  Installed ColorTypes ─────────────────── v0.12.1  Installed PlutoTeachingTools ─────────── v0.4.5  Installed eudev_jll ──────────────────── v3.2.14+0  Installed Xorg_libXext_jll ───────────── v1.3.7+0  Installed Zstd_jll ───────────────────── v1.5.7+1  Installed TensorCore ─────────────────── v0.1.1  Installed Libtiff_jll ────────────────── v4.7.1+0  Installed Xorg_xcb_util_cursor_jll ───── v0.1.5+0  Installed Plots ──────────────────────── v1.40.19  Installed Format ─────────────────────── v1.3.7  Installed libevdev_jll ───────────────── v1.13.4+0  Installed libinput_jll ───────────────── v1.28.1+0  Installed Xorg_libXrender_jll ────────── v0.9.12+0  Installed Libffi_jll ─────────────────── v3.4.7+0  Installed ColorVectorSpace ───────────── v0.11.0  Installed Xorg_libXi_jll ─────────────── v1.8.3+0  Installed Ogg_jll ────────────────────── v1.3.6+0  Installed Qt6ShaderTools_jll ─────────── v6.8.2+1  Installed Vulkan_Loader_jll ──────────── v1.3.243+0  Installed Reexport ───────────────────── v1.2.2  Installed Xorg_libXcursor_jll ────────── v1.2.4+0  Installed Qt6Declarative_jll ─────────── v6.8.2+1  Installed LogExpFunctions ────────────── v0.3.29  Installed AliasTables ────────────────── v1.1.3  Installed MacroTools ─────────────────── v0.5.16  Installed Libuuid_jll ────────────────── v2.41.1+0  Installed DocStringExtensions ────────── v0.9.5  Installed Xorg_libICE_jll ────────────── v1.1.2+0  Installed Xorg_xcb_util_renderutil_jll ─ v0.3.10+0  Installed StableRNGs ─────────────────── v1.0.3  Installed libass_jll ─────────────────── v0.17.4+0  Installed Graphite2_jll ──────────────── v1.3.15+0  Installed Pixman_jll ─────────────────── v0.44.2+0  Installed Wayland_jll ────────────────── v1.24.0+0  Installed Xorg_xkeyboard_config_jll ──── v2.44.0+0  Installed FFMPEG_jll ─────────────────── v7.1.1+0  Installed Xorg_xtrans_jll ────────────── v1.6.0+0  Installed IOCapture ──────────────────── v0.2.5  Installed Latexify ───────────────────── v0.16.9  Installed LLVMOpenMP_jll ─────────────── v18.1.8+0  Installed FixedPointNumbers ──────────── v0.8.5  Installed Xorg_libXrandr_jll ─────────── v1.5.5+0  Installed Qt6Wayland_jll ─────────────── v6.8.2+1  Installed Qt6Base_jll ────────────────── v6.8.2+1  Installed LAME_jll ───────────────────── v3.100.3+0  Installed GettextRuntime_jll ─────────── v0.22.4+0  Installed Xorg_libXfixes_jll ─────────── v6.0.1+0  Installed RecipesBase ────────────────── v1.3.4  Installed LaTeXStrings ───────────────── v1.4.0  Installed libvorbis_jll ──────────────── v1.3.8+0  Installed Glib_jll ───────────────────── v2.84.3+0  Installed Xorg_libXdmcp_jll ──────────── v1.1.6+0  Installed Libglvnd_jll ───────────────── v1.7.1+1  Installed Xorg_libX11_jll ────────────── v1.8.12+0  Installed Unzip ──────────────────────── v0.2.0  Installed UnitfulLatexify ────────────── v1.7.0  Installed PlutoTest ──────────────────── v0.2.2  Installed SortingAlgorithms ──────────── v1.2.2  No Changes to `/tmp/jl_yrPLos/Project.toml`   Updating `/tmp/jl_yrPLos/Manifest.toml` [05823500] ↑ OpenLibm_jll v0.8.1+2 ⇒ v0.8.5+0 Instantiating... === Precompiling... ===  Activating project at `/tmp/jl_yrPLos` Precompiling project... 124 dependencies successfully precompiled in 179 seconds. 63 already precompiled.Șnbpkg_syncÚ@Ë Resolving... ===  Installed GR_jll ─────────────────────── v0.73.17+0 Installed JpegTurbo_jll ──────────────── v3.1.2+0  Installed LERC_jll ───────────────────── v4.0.1+0  Installed Opus_jll ───────────────────── v1.5.2+0  Installed x265_jll ───────────────────── v4.1.0+0  Installed libdecor_jll ───────────────── v0.2.2+0  Installed libfdk_aac_jll ─────────────── v2.0.4+0  Installed Libmount_jll ───────────────── v2.41.1+0  Installed Grisu ──────────────────────── v1.0.2  Installed Measures ───────────────────── v0.3.2  Installed Xorg_xkbcomp_jll ───────────── v1.4.7+0  Installed Hyperscript ────────────────── v0.0.5  Installed Unitful ────────────────────── v1.24.0  Installed Xorg_xcb_util_wm_jll ───────── v0.4.2+0  Installed Xorg_xcb_util_image_jll ────── v0.4.1+0  Installed Contour ────────────────────── v0.6.3  Installed RecipesPipeline ────────────── v0.6.12  Installed PlotUtils ──────────────────── v1.4.3  Installed Xorg_libSM_jll ─────────────── v1.2.6+0  Installed DelimitedFiles ─────────────── v1.9.1  Installed Cairo_jll ──────────────────── v1.18.5+0  Installed Fontconfig_jll ─────────────── v2.17.1+0  Installed Xorg_xcb_util_jll ──────────── v0.4.1+0  Installed Xorg_libxkbfile_jll ────────── v1.1.3+0  Installed Statistics ─────────────────── v1.11.1  Installed PlutoUI ────────────────────── v0.7.70  Installed Xorg_libXinerama_jll ───────── v1.1.6+0  Installed EpollShim_jll ──────────────── v0.0.20230411+1  Installed Xorg_libXau_jll ────────────── v1.0.13+0  Installed Missings ───────────────────── v1.2.0  Installed FFMPEG ─────────────────────── v0.4.4  Installed IrrationalConstants ────────── v0.2.4  Installed Showoff ────────────────────── v1.0.3  Installed Pango_jll ──────────────────── v1.56.3+0  Installed PtrArrays ──────────────────── v1.3.0  Installed xkbcommon_jll ──────────────── v1.9.2+0  Installed Bzip2_jll ──────────────────── v1.0.9+0  Installed Xorg_xcb_util_keysyms_jll ──── v0.4.1+0  Installed XZ_jll ─────────────────────── v5.8.1+0  Installed HarfBuzz_jll ───────────────── v8.5.1+0  Installed NaNMath ────────────────────── v1.1.3  Installed PlotThemes ─────────────────── v3.3.0  Installed x264_jll ───────────────────── v10164.0.1+0  Installed FriBidi_jll ────────────────── v1.0.17+0  Installed UnicodeFun ─────────────────── v0.4.1  Installed GLFW_jll ───────────────────── v3.4.0+2  Installed fzf_jll ────────────────────── v0.61.1+0  Installed LZO_jll ────────────────────── v2.10.3+0  Installed FreeType2_jll ──────────────── v2.13.4+0  Installed JLFzf ──────────────────────── v0.1.11  Installed StatsAPI ───────────────────── v1.7.1  Installed ColorSchemes ───────────────── v3.30.0  Installed StatsBase ──────────────────── v0.34.6  Installed Colors ─────────────────────── v0.13.1  Installed DataStructures ─────────────── v0.19.0  Installed GR ─────────────────────────── v0.73.17  Installed libpng_jll ─────────────────── v1.6.50+0  Installed Xorg_libxcb_jll ────────────── v1.17.1+0  Installed mtdev_jll ──────────────────── v1.1.7+0  Installed libaom_jll ─────────────────── v3.12.1+0  Installed Dbus_jll ───────────────────── v1.16.2+0  Installed ColorTypes ─────────────────── v0.12.1  Installed PlutoTeachingTools ─────────── v0.4.5  Installed eudev_jll ──────────────────── v3.2.14+0  Installed Xorg_libXext_jll ───────────── v1.3.7+0  Installed Zstd_jll ───────────────────── v1.5.7+1  Installed TensorCore ─────────────────── v0.1.1  Installed Libtiff_jll ────────────────── v4.7.1+0  Installed Xorg_xcb_util_cursor_jll ───── v0.1.5+0  Installed Plots ──────────────────────── v1.40.19  Installed Format ─────────────────────── v1.3.7  Installed libevdev_jll ───────────────── v1.13.4+0  Installed libinput_jll ───────────────── v1.28.1+0  Installed Xorg_libXrender_jll ────────── v0.9.12+0  Installed Libffi_jll ─────────────────── v3.4.7+0  Installed ColorVectorSpace ───────────── v0.11.0  Installed Xorg_libXi_jll ─────────────── v1.8.3+0  Installed Ogg_jll ────────────────────── v1.3.6+0  Installed Qt6ShaderTools_jll ─────────── v6.8.2+1  Installed Vulkan_Loader_jll ──────────── v1.3.243+0  Installed Reexport ───────────────────── v1.2.2  Installed Xorg_libXcursor_jll ────────── v1.2.4+0  Installed Qt6Declarative_jll ─────────── v6.8.2+1  Installed LogExpFunctions ────────────── v0.3.29  Installed AliasTables ────────────────── v1.1.3  Installed MacroTools ─────────────────── v0.5.16  Installed Libuuid_jll ────────────────── v2.41.1+0  Installed DocStringExtensions ────────── v0.9.5  Installed Xorg_libICE_jll ────────────── v1.1.2+0  Installed Xorg_xcb_util_renderutil_jll ─ v0.3.10+0  Installed StableRNGs ─────────────────── v1.0.3  Installed libass_jll ─────────────────── v0.17.4+0  Installed Graphite2_jll ──────────────── v1.3.15+0  Installed Pixman_jll ─────────────────── v0.44.2+0  Installed Wayland_jll ────────────────── v1.24.0+0  Installed Xorg_xkeyboard_config_jll ──── v2.44.0+0  Installed FFMPEG_jll ─────────────────── v7.1.1+0  Installed Xorg_xtrans_jll ────────────── v1.6.0+0  Installed IOCapture ──────────────────── v0.2.5  Installed Latexify ───────────────────── v0.16.9  Installed LLVMOpenMP_jll ─────────────── v18.1.8+0  Installed FixedPointNumbers ──────────── v0.8.5  Installed Xorg_libXrandr_jll ─────────── v1.5.5+0  Installed Qt6Wayland_jll ─────────────── v6.8.2+1  Installed Qt6Base_jll ────────────────── v6.8.2+1  Installed LAME_jll ───────────────────── v3.100.3+0  Installed GettextRuntime_jll ─────────── v0.22.4+0  Installed Xorg_libXfixes_jll ─────────── v6.0.1+0  Installed RecipesBase ────────────────── v1.3.4  Installed LaTeXStrings ───────────────── v1.4.0  Installed libvorbis_jll ──────────────── v1.3.8+0  Installed Glib_jll ───────────────────── v2.84.3+0  Installed Xorg_libXdmcp_jll ──────────── v1.1.6+0  Installed Libglvnd_jll ───────────────── v1.7.1+1  Installed Xorg_libX11_jll ────────────── v1.8.12+0  Installed Unzip ──────────────────────── v0.2.0  Installed UnitfulLatexify ────────────── v1.7.0  Installed PlutoTest ──────────────────── v0.2.2  Installed SortingAlgorithms ──────────── v1.2.2  No Changes to `/tmp/jl_yrPLos/Project.toml`   Updating `/tmp/jl_yrPLos/Manifest.toml` [05823500] ↑ OpenLibm_jll v0.8.1+2 ⇒ v0.8.5+0 Instantiating... === Precompiling... ===  Activating project at `/tmp/jl_yrPLos` Precompiling project... 124 dependencies successfully precompiled in 179 seconds. 63 already precompiled.§PlutoUIÚ@Ë Resolving... ===  Installed GR_jll ─────────────────────── v0.73.17+0 Installed JpegTurbo_jll ──────────────── v3.1.2+0  Installed LERC_jll ───────────────────── v4.0.1+0  Installed Opus_jll ───────────────────── v1.5.2+0  Installed x265_jll ───────────────────── v4.1.0+0  Installed libdecor_jll ───────────────── v0.2.2+0  Installed libfdk_aac_jll ─────────────── v2.0.4+0  Installed Libmount_jll ───────────────── v2.41.1+0  Installed Grisu ──────────────────────── v1.0.2  Installed Measures ───────────────────── v0.3.2  Installed Xorg_xkbcomp_jll ───────────── v1.4.7+0  Installed Hyperscript ────────────────── v0.0.5  Installed Unitful ────────────────────── v1.24.0  Installed Xorg_xcb_util_wm_jll ───────── v0.4.2+0  Installed Xorg_xcb_util_image_jll ────── v0.4.1+0  Installed Contour ────────────────────── v0.6.3  Installed RecipesPipeline ────────────── v0.6.12  Installed PlotUtils ──────────────────── v1.4.3  Installed Xorg_libSM_jll ─────────────── v1.2.6+0  Installed DelimitedFiles ─────────────── v1.9.1  Installed Cairo_jll ──────────────────── v1.18.5+0  Installed Fontconfig_jll ─────────────── v2.17.1+0  Installed Xorg_xcb_util_jll ──────────── v0.4.1+0  Installed Xorg_libxkbfile_jll ────────── v1.1.3+0  Installed Statistics ─────────────────── v1.11.1  Installed PlutoUI ────────────────────── v0.7.70  Installed Xorg_libXinerama_jll ───────── v1.1.6+0  Installed EpollShim_jll ──────────────── v0.0.20230411+1  Installed Xorg_libXau_jll ────────────── v1.0.13+0  Installed Missings ───────────────────── v1.2.0  Installed FFMPEG ─────────────────────── v0.4.4  Installed IrrationalConstants ────────── v0.2.4  Installed Showoff ────────────────────── v1.0.3  Installed Pango_jll ──────────────────── v1.56.3+0  Installed PtrArrays ──────────────────── v1.3.0  Installed xkbcommon_jll ──────────────── v1.9.2+0  Installed Bzip2_jll ──────────────────── v1.0.9+0  Installed Xorg_xcb_util_keysyms_jll ──── v0.4.1+0  Installed XZ_jll ─────────────────────── v5.8.1+0  Installed HarfBuzz_jll ───────────────── v8.5.1+0  Installed NaNMath ────────────────────── v1.1.3  Installed PlotThemes ─────────────────── v3.3.0  Installed x264_jll ───────────────────── v10164.0.1+0  Installed FriBidi_jll ────────────────── v1.0.17+0  Installed UnicodeFun ─────────────────── v0.4.1  Installed GLFW_jll ───────────────────── v3.4.0+2  Installed fzf_jll ────────────────────── v0.61.1+0  Installed LZO_jll ────────────────────── v2.10.3+0  Installed FreeType2_jll ──────────────── v2.13.4+0  Installed JLFzf ──────────────────────── v0.1.11  Installed StatsAPI ───────────────────── v1.7.1  Installed ColorSchemes ───────────────── v3.30.0  Installed StatsBase ──────────────────── v0.34.6  Installed Colors ─────────────────────── v0.13.1  Installed DataStructures ─────────────── v0.19.0  Installed GR ─────────────────────────── v0.73.17  Installed libpng_jll ─────────────────── v1.6.50+0  Installed Xorg_libxcb_jll ────────────── v1.17.1+0  Installed mtdev_jll ──────────────────── v1.1.7+0  Installed libaom_jll ─────────────────── v3.12.1+0  Installed Dbus_jll ───────────────────── v1.16.2+0  Installed ColorTypes ─────────────────── v0.12.1  Installed PlutoTeachingTools ─────────── v0.4.5  Installed eudev_jll ──────────────────── v3.2.14+0  Installed Xorg_libXext_jll ───────────── v1.3.7+0  Installed Zstd_jll ───────────────────── v1.5.7+1  Installed TensorCore ─────────────────── v0.1.1  Installed Libtiff_jll ────────────────── v4.7.1+0  Installed Xorg_xcb_util_cursor_jll ───── v0.1.5+0  Installed Plots ──────────────────────── v1.40.19  Installed Format ─────────────────────── v1.3.7  Installed libevdev_jll ───────────────── v1.13.4+0  Installed libinput_jll ───────────────── v1.28.1+0  Installed Xorg_libXrender_jll ────────── v0.9.12+0  Installed Libffi_jll ─────────────────── v3.4.7+0  Installed ColorVectorSpace ───────────── v0.11.0  Installed Xorg_libXi_jll ─────────────── v1.8.3+0  Installed Ogg_jll ────────────────────── v1.3.6+0  Installed Qt6ShaderTools_jll ─────────── v6.8.2+1  Installed Vulkan_Loader_jll ──────────── v1.3.243+0  Installed Reexport ───────────────────── v1.2.2  Installed Xorg_libXcursor_jll ────────── v1.2.4+0  Installed Qt6Declarative_jll ─────────── v6.8.2+1  Installed LogExpFunctions ────────────── v0.3.29  Installed AliasTables ────────────────── v1.1.3  Installed MacroTools ─────────────────── v0.5.16  Installed Libuuid_jll ────────────────── v2.41.1+0  Installed DocStringExtensions ────────── v0.9.5  Installed Xorg_libICE_jll ────────────── v1.1.2+0  Installed Xorg_xcb_util_renderutil_jll ─ v0.3.10+0  Installed StableRNGs ─────────────────── v1.0.3  Installed libass_jll ─────────────────── v0.17.4+0  Installed Graphite2_jll ──────────────── v1.3.15+0  Installed Pixman_jll ─────────────────── v0.44.2+0  Installed Wayland_jll ────────────────── v1.24.0+0  Installed Xorg_xkeyboard_config_jll ──── v2.44.0+0  Installed FFMPEG_jll ─────────────────── v7.1.1+0  Installed Xorg_xtrans_jll ────────────── v1.6.0+0  Installed IOCapture ──────────────────── v0.2.5  Installed Latexify ───────────────────── v0.16.9  Installed LLVMOpenMP_jll ─────────────── v18.1.8+0  Installed FixedPointNumbers ──────────── v0.8.5  Installed Xorg_libXrandr_jll ─────────── v1.5.5+0  Installed Qt6Wayland_jll ─────────────── v6.8.2+1  Installed Qt6Base_jll ────────────────── v6.8.2+1  Installed LAME_jll ───────────────────── v3.100.3+0  Installed GettextRuntime_jll ─────────── v0.22.4+0  Installed Xorg_libXfixes_jll ─────────── v6.0.1+0  Installed RecipesBase ────────────────── v1.3.4  Installed LaTeXStrings ───────────────── v1.4.0  Installed libvorbis_jll ──────────────── v1.3.8+0  Installed Glib_jll ───────────────────── v2.84.3+0  Installed Xorg_libXdmcp_jll ──────────── v1.1.6+0  Installed Libglvnd_jll ───────────────── v1.7.1+1  Installed Xorg_libX11_jll ────────────── v1.8.12+0  Installed Unzip ──────────────────────── v0.2.0  Installed UnitfulLatexify ────────────── v1.7.0  Installed PlutoTest ──────────────────── v0.2.2  Installed SortingAlgorithms ──────────── v1.2.2  No Changes to `/tmp/jl_yrPLos/Project.toml`   Updating `/tmp/jl_yrPLos/Manifest.toml` [05823500] ↑ OpenLibm_jll v0.8.1+2 ⇒ v0.8.5+0 Instantiating... === Precompiling... ===  Activating project at `/tmp/jl_yrPLos` Precompiling project... 124 dependencies successfully precompiled in 179 seconds. 63 already precompiled.„PlotsÚ@Ë Resolving... ===  Installed GR_jll ─────────────────────── v0.73.17+0 Installed JpegTurbo_jll ──────────────── v3.1.2+0  Installed LERC_jll ───────────────────── v4.0.1+0  Installed Opus_jll ───────────────────── v1.5.2+0  Installed x265_jll ───────────────────── v4.1.0+0  Installed libdecor_jll ───────────────── v0.2.2+0  Installed libfdk_aac_jll ─────────────── v2.0.4+0  Installed Libmount_jll ───────────────── v2.41.1+0  Installed Grisu ──────────────────────── v1.0.2  Installed Measures ───────────────────── v0.3.2  Installed Xorg_xkbcomp_jll ───────────── v1.4.7+0  Installed Hyperscript ────────────────── v0.0.5  Installed Unitful ────────────────────── v1.24.0  Installed Xorg_xcb_util_wm_jll ───────── v0.4.2+0  Installed Xorg_xcb_util_image_jll ────── v0.4.1+0  Installed Contour ────────────────────── v0.6.3  Installed RecipesPipeline ────────────── v0.6.12  Installed PlotUtils ──────────────────── v1.4.3  Installed Xorg_libSM_jll ─────────────── v1.2.6+0  Installed DelimitedFiles ─────────────── v1.9.1  Installed Cairo_jll ──────────────────── v1.18.5+0  Installed Fontconfig_jll ─────────────── v2.17.1+0  Installed Xorg_xcb_util_jll ──────────── v0.4.1+0  Installed Xorg_libxkbfile_jll ────────── v1.1.3+0  Installed Statistics ─────────────────── v1.11.1  Installed PlutoUI ────────────────────── v0.7.70  Installed Xorg_libXinerama_jll ───────── v1.1.6+0  Installed EpollShim_jll ──────────────── v0.0.20230411+1  Installed Xorg_libXau_jll ────────────── v1.0.13+0  Installed Missings ───────────────────── v1.2.0  Installed FFMPEG ─────────────────────── v0.4.4  Installed IrrationalConstants ────────── v0.2.4  Installed Showoff ────────────────────── v1.0.3  Installed Pango_jll ──────────────────── v1.56.3+0  Installed PtrArrays ──────────────────── v1.3.0  Installed xkbcommon_jll ──────────────── v1.9.2+0  Installed Bzip2_jll ──────────────────── v1.0.9+0  Installed Xorg_xcb_util_keysyms_jll ──── v0.4.1+0  Installed XZ_jll ─────────────────────── v5.8.1+0  Installed HarfBuzz_jll ───────────────── v8.5.1+0  Installed NaNMath ────────────────────── v1.1.3  Installed PlotThemes ─────────────────── v3.3.0  Installed x264_jll ───────────────────── v10164.0.1+0  Installed FriBidi_jll ────────────────── v1.0.17+0  Installed UnicodeFun ─────────────────── v0.4.1  Installed GLFW_jll ───────────────────── v3.4.0+2  Installed fzf_jll ────────────────────── v0.61.1+0  Installed LZO_jll ────────────────────── v2.10.3+0  Installed FreeType2_jll ──────────────── v2.13.4+0  Installed JLFzf ──────────────────────── v0.1.11  Installed StatsAPI ───────────────────── v1.7.1  Installed ColorSchemes ───────────────── v3.30.0  Installed StatsBase ──────────────────── v0.34.6  Installed Colors ─────────────────────── v0.13.1  Installed DataStructures ─────────────── v0.19.0  Installed GR ─────────────────────────── v0.73.17  Installed libpng_jll ─────────────────── v1.6.50+0  Installed Xorg_libxcb_jll ────────────── v1.17.1+0  Installed mtdev_jll ──────────────────── v1.1.7+0  Installed libaom_jll ─────────────────── v3.12.1+0  Installed Dbus_jll ───────────────────── v1.16.2+0  Installed ColorTypes ─────────────────── v0.12.1  Installed PlutoTeachingTools ─────────── v0.4.5  Installed eudev_jll ──────────────────── v3.2.14+0  Installed Xorg_libXext_jll ───────────── v1.3.7+0  Installed Zstd_jll ───────────────────── v1.5.7+1  Installed TensorCore ─────────────────── v0.1.1  Installed Libtiff_jll ────────────────── v4.7.1+0  Installed Xorg_xcb_util_cursor_jll ───── v0.1.5+0  Installed Plots ──────────────────────── v1.40.19  Installed Format ─────────────────────── v1.3.7  Installed libevdev_jll ───────────────── v1.13.4+0  Installed libinput_jll ───────────────── v1.28.1+0  Installed Xorg_libXrender_jll ────────── v0.9.12+0  Installed Libffi_jll ─────────────────── v3.4.7+0  Installed ColorVectorSpace ───────────── v0.11.0  Installed Xorg_libXi_jll ─────────────── v1.8.3+0  Installed Ogg_jll ────────────────────── v1.3.6+0  Installed Qt6ShaderTools_jll ─────────── v6.8.2+1  Installed Vulkan_Loader_jll ──────────── v1.3.243+0  Installed Reexport ───────────────────── v1.2.2  Installed Xorg_libXcursor_jll ────────── v1.2.4+0  Installed Qt6Declarative_jll ─────────── v6.8.2+1  Installed LogExpFunctions ────────────── v0.3.29  Installed AliasTables ────────────────── v1.1.3  Installed MacroTools ─────────────────── v0.5.16  Installed Libuuid_jll ────────────────── v2.41.1+0  Installed DocStringExtensions ────────── v0.9.5  Installed Xorg_libICE_jll ────────────── v1.1.2+0  Installed Xorg_xcb_util_renderutil_jll ─ v0.3.10+0  Installed StableRNGs ─────────────────── v1.0.3  Installed libass_jll ─────────────────── v0.17.4+0  Installed Graphite2_jll ──────────────── v1.3.15+0  Installed Pixman_jll ─────────────────── v0.44.2+0  Installed Wayland_jll ────────────────── v1.24.0+0  Installed Xorg_xkeyboard_config_jll ──── v2.44.0+0  Installed FFMPEG_jll ─────────────────── v7.1.1+0  Installed Xorg_xtrans_jll ────────────── v1.6.0+0  Installed IOCapture ──────────────────── v0.2.5  Installed Latexify ───────────────────── v0.16.9  Installed LLVMOpenMP_jll ─────────────── v18.1.8+0  Installed FixedPointNumbers ──────────── v0.8.5  Installed Xorg_libXrandr_jll ─────────── v1.5.5+0  Installed Qt6Wayland_jll ─────────────── v6.8.2+1  Installed Qt6Base_jll ────────────────── v6.8.2+1  Installed LAME_jll ───────────────────── v3.100.3+0  Installed GettextRuntime_jll ─────────── v0.22.4+0  Installed Xorg_libXfixes_jll ─────────── v6.0.1+0  Installed RecipesBase ────────────────── v1.3.4  Installed LaTeXStrings ───────────────── v1.4.0  Installed libvorbis_jll ──────────────── v1.3.8+0  Installed Glib_jll ───────────────────── v2.84.3+0  Installed Xorg_libXdmcp_jll ──────────── v1.1.6+0  Installed Libglvnd_jll ───────────────── v1.7.1+1  Installed Xorg_libX11_jll ────────────── v1.8.12+0  Installed Unzip ──────────────────────── v0.2.0  Installed UnitfulLatexify ────────────── v1.7.0  Installed PlutoTest ──────────────────── v0.2.2  Installed SortingAlgorithms ──────────── v1.2.2  No Changes to `/tmp/jl_yrPLos/Project.toml`   Updating `/tmp/jl_yrPLos/Manifest.toml` [05823500] ↑ OpenLibm_jll v0.8.1+2 ⇒ v0.8.5+0 Instantiating... === Precompiling... ===  Activating project at `/tmp/jl_yrPLos` Precompiling project... 124 dependencies successfully precompiled in 179 seconds. 63 already precompiled.ŠRandomÚ@Ë Resolving... ===  Installed GR_jll ─────────────────────── v0.73.17+0 Installed JpegTurbo_jll ──────────────── v3.1.2+0  Installed LERC_jll ───────────────────── v4.0.1+0  Installed Opus_jll ───────────────────── v1.5.2+0  Installed x265_jll ───────────────────── v4.1.0+0  Installed libdecor_jll ───────────────── v0.2.2+0  Installed libfdk_aac_jll ─────────────── v2.0.4+0  Installed Libmount_jll ───────────────── v2.41.1+0  Installed Grisu ──────────────────────── v1.0.2  Installed Measures ───────────────────── v0.3.2  Installed Xorg_xkbcomp_jll ───────────── v1.4.7+0  Installed Hyperscript ────────────────── v0.0.5  Installed Unitful ────────────────────── v1.24.0  Installed Xorg_xcb_util_wm_jll ───────── v0.4.2+0  Installed Xorg_xcb_util_image_jll ────── v0.4.1+0  Installed Contour ────────────────────── v0.6.3  Installed RecipesPipeline ────────────── v0.6.12  Installed PlotUtils ──────────────────── v1.4.3  Installed Xorg_libSM_jll ─────────────── v1.2.6+0  Installed DelimitedFiles ─────────────── v1.9.1  Installed Cairo_jll ──────────────────── v1.18.5+0  Installed Fontconfig_jll ─────────────── v2.17.1+0  Installed Xorg_xcb_util_jll ──────────── v0.4.1+0  Installed Xorg_libxkbfile_jll ────────── v1.1.3+0  Installed Statistics ─────────────────── v1.11.1  Installed PlutoUI ────────────────────── v0.7.70  Installed Xorg_libXinerama_jll ───────── v1.1.6+0  Installed EpollShim_jll ──────────────── v0.0.20230411+1  Installed Xorg_libXau_jll ────────────── v1.0.13+0  Installed Missings ───────────────────── v1.2.0  Installed FFMPEG ─────────────────────── v0.4.4  Installed IrrationalConstants ────────── v0.2.4  Installed Showoff ────────────────────── v1.0.3  Installed Pango_jll ──────────────────── v1.56.3+0  Installed PtrArrays ──────────────────── v1.3.0  Installed xkbcommon_jll ──────────────── v1.9.2+0  Installed Bzip2_jll ──────────────────── v1.0.9+0  Installed Xorg_xcb_util_keysyms_jll ──── v0.4.1+0  Installed XZ_jll ─────────────────────── v5.8.1+0  Installed HarfBuzz_jll ───────────────── v8.5.1+0  Installed NaNMath ────────────────────── v1.1.3  Installed PlotThemes ─────────────────── v3.3.0  Installed x264_jll ───────────────────── v10164.0.1+0  Installed FriBidi_jll ────────────────── v1.0.17+0  Installed UnicodeFun ─────────────────── v0.4.1  Installed GLFW_jll ───────────────────── v3.4.0+2  Installed fzf_jll ────────────────────── v0.61.1+0  Installed LZO_jll ────────────────────── v2.10.3+0  Installed FreeType2_jll ──────────────── v2.13.4+0  Installed JLFzf ──────────────────────── v0.1.11  Installed StatsAPI ───────────────────── v1.7.1  Installed ColorSchemes ───────────────── v3.30.0  Installed StatsBase ──────────────────── v0.34.6  Installed Colors ─────────────────────── v0.13.1  Installed DataStructures ─────────────── v0.19.0  Installed GR ─────────────────────────── v0.73.17  Installed libpng_jll ─────────────────── v1.6.50+0  Installed Xorg_libxcb_jll ────────────── v1.17.1+0  Installed mtdev_jll ──────────────────── v1.1.7+0  Installed libaom_jll ─────────────────── v3.12.1+0  Installed Dbus_jll ───────────────────── v1.16.2+0  Installed ColorTypes ─────────────────── v0.12.1  Installed PlutoTeachingTools ─────────── v0.4.5  Installed eudev_jll ──────────────────── v3.2.14+0  Installed Xorg_libXext_jll ───────────── v1.3.7+0  Installed Zstd_jll ───────────────────── v1.5.7+1  Installed TensorCore ─────────────────── v0.1.1  Installed Libtiff_jll ────────────────── v4.7.1+0  Installed Xorg_xcb_util_cursor_jll ───── v0.1.5+0  Installed Plots ──────────────────────── v1.40.19  Installed Format ─────────────────────── v1.3.7  Installed libevdev_jll ───────────────── v1.13.4+0  Installed libinput_jll ───────────────── v1.28.1+0  Installed Xorg_libXrender_jll ────────── v0.9.12+0  Installed Libffi_jll ─────────────────── v3.4.7+0  Installed ColorVectorSpace ───────────── v0.11.0  Installed Xorg_libXi_jll ─────────────── v1.8.3+0  Installed Ogg_jll ────────────────────── v1.3.6+0  Installed Qt6ShaderTools_jll ─────────── v6.8.2+1  Installed Vulkan_Loader_jll ──────────── v1.3.243+0  Installed Reexport ───────────────────── v1.2.2  Installed Xorg_libXcursor_jll ────────── v1.2.4+0  Installed Qt6Declarative_jll ─────────── v6.8.2+1  Installed LogExpFunctions ────────────── v0.3.29  Installed AliasTables ────────────────── v1.1.3  Installed MacroTools ─────────────────── v0.5.16  Installed Libuuid_jll ────────────────── v2.41.1+0  Installed DocStringExtensions ────────── v0.9.5  Installed Xorg_libICE_jll ────────────── v1.1.2+0  Installed Xorg_xcb_util_renderutil_jll ─ v0.3.10+0  Installed StableRNGs ─────────────────── v1.0.3  Installed libass_jll ─────────────────── v0.17.4+0  Installed Graphite2_jll ──────────────── v1.3.15+0  Installed Pixman_jll ─────────────────── v0.44.2+0  Installed Wayland_jll ────────────────── v1.24.0+0  Installed Xorg_xkeyboard_config_jll ──── v2.44.0+0  Installed FFMPEG_jll ─────────────────── v7.1.1+0  Installed Xorg_xtrans_jll ────────────── v1.6.0+0  Installed IOCapture ──────────────────── v0.2.5  Installed Latexify ───────────────────── v0.16.9  Installed LLVMOpenMP_jll ─────────────── v18.1.8+0  Installed FixedPointNumbers ──────────── v0.8.5  Installed Xorg_libXrandr_jll ─────────── v1.5.5+0  Installed Qt6Wayland_jll ─────────────── v6.8.2+1  Installed Qt6Base_jll ────────────────── v6.8.2+1  Installed LAME_jll ───────────────────── v3.100.3+0  Installed GettextRuntime_jll ─────────── v0.22.4+0  Installed Xorg_libXfixes_jll ─────────── v6.0.1+0  Installed RecipesBase ────────────────── v1.3.4  Installed LaTeXStrings ───────────────── v1.4.0  Installed libvorbis_jll ──────────────── v1.3.8+0  Installed Glib_jll ───────────────────── v2.84.3+0  Installed Xorg_libXdmcp_jll ──────────── v1.1.6+0  Installed Libglvnd_jll ───────────────── v1.7.1+1  Installed Xorg_libX11_jll ────────────── v1.8.12+0  Installed Unzip ──────────────────────── v0.2.0  Installed UnitfulLatexify ────────────── v1.7.0  Installed PlutoTest ──────────────────── v0.2.2  Installed SortingAlgorithms ──────────── v1.2.2  No Changes to `/tmp/jl_yrPLos/Project.toml`   Updating `/tmp/jl_yrPLos/Manifest.toml` [05823500] ↑ OpenLibm_jll v0.8.1+2 ⇒ v0.8.5+0 Instantiating... === Precompiling... ===  Activating project at `/tmp/jl_yrPLos` Precompiling project... 124 dependencies successfully precompiled in 179 seconds. 63 already precompiled.©PlutoTestÚ@Ë Resolving... ===  Installed GR_jll ─────────────────────── v0.73.17+0 Installed JpegTurbo_jll ──────────────── v3.1.2+0  Installed LERC_jll ───────────────────── v4.0.1+0  Installed Opus_jll ───────────────────── v1.5.2+0  Installed x265_jll ───────────────────── v4.1.0+0  Installed libdecor_jll ───────────────── v0.2.2+0  Installed libfdk_aac_jll ─────────────── v2.0.4+0  Installed Libmount_jll ───────────────── v2.41.1+0  Installed Grisu ──────────────────────── v1.0.2  Installed Measures ───────────────────── v0.3.2  Installed Xorg_xkbcomp_jll ───────────── v1.4.7+0  Installed Hyperscript ────────────────── v0.0.5  Installed Unitful ────────────────────── v1.24.0  Installed Xorg_xcb_util_wm_jll ───────── v0.4.2+0  Installed Xorg_xcb_util_image_jll ────── v0.4.1+0  Installed Contour ────────────────────── v0.6.3  Installed RecipesPipeline ────────────── v0.6.12  Installed PlotUtils ──────────────────── v1.4.3  Installed Xorg_libSM_jll ─────────────── v1.2.6+0  Installed DelimitedFiles ─────────────── v1.9.1  Installed Cairo_jll ──────────────────── v1.18.5+0  Installed Fontconfig_jll ─────────────── v2.17.1+0  Installed Xorg_xcb_util_jll ──────────── v0.4.1+0  Installed Xorg_libxkbfile_jll ────────── v1.1.3+0  Installed Statistics ─────────────────── v1.11.1  Installed PlutoUI ────────────────────── v0.7.70  Installed Xorg_libXinerama_jll ───────── v1.1.6+0  Installed EpollShim_jll ──────────────── v0.0.20230411+1  Installed Xorg_libXau_jll ────────────── v1.0.13+0  Installed Missings ───────────────────── v1.2.0  Installed FFMPEG ─────────────────────── v0.4.4  Installed IrrationalConstants ────────── v0.2.4  Installed Showoff ────────────────────── v1.0.3  Installed Pango_jll ──────────────────── v1.56.3+0  Installed PtrArrays ──────────────────── v1.3.0  Installed xkbcommon_jll ──────────────── v1.9.2+0  Installed Bzip2_jll ──────────────────── v1.0.9+0  Installed Xorg_xcb_util_keysyms_jll ──── v0.4.1+0  Installed XZ_jll ─────────────────────── v5.8.1+0  Installed HarfBuzz_jll ───────────────── v8.5.1+0  Installed NaNMath ────────────────────── v1.1.3  Installed PlotThemes ─────────────────── v3.3.0  Installed x264_jll ───────────────────── v10164.0.1+0  Installed FriBidi_jll ────────────────── v1.0.17+0  Installed UnicodeFun ─────────────────── v0.4.1  Installed GLFW_jll ───────────────────── v3.4.0+2  Installed fzf_jll ────────────────────── v0.61.1+0  Installed LZO_jll ────────────────────── v2.10.3+0  Installed FreeType2_jll ──────────────── v2.13.4+0  Installed JLFzf ──────────────────────── v0.1.11  Installed StatsAPI ───────────────────── v1.7.1  Installed ColorSchemes ───────────────── v3.30.0  Installed StatsBase ──────────────────── v0.34.6  Installed Colors ─────────────────────── v0.13.1  Installed DataStructures ─────────────── v0.19.0  Installed GR ─────────────────────────── v0.73.17  Installed libpng_jll ─────────────────── v1.6.50+0  Installed Xorg_libxcb_jll ────────────── v1.17.1+0  Installed mtdev_jll ──────────────────── v1.1.7+0  Installed libaom_jll ─────────────────── v3.12.1+0  Installed Dbus_jll ───────────────────── v1.16.2+0  Installed ColorTypes ─────────────────── v0.12.1  Installed PlutoTeachingTools ─────────── v0.4.5  Installed eudev_jll ──────────────────── v3.2.14+0  Installed Xorg_libXext_jll ───────────── v1.3.7+0  Installed Zstd_jll ───────────────────── v1.5.7+1  Installed TensorCore ─────────────────── v0.1.1  Installed Libtiff_jll ────────────────── v4.7.1+0  Installed Xorg_xcb_util_cursor_jll ───── v0.1.5+0  Installed Plots ──────────────────────── v1.40.19  Installed Format ─────────────────────── v1.3.7  Installed libevdev_jll ───────────────── v1.13.4+0  Installed libinput_jll ───────────────── v1.28.1+0  Installed Xorg_libXrender_jll ────────── v0.9.12+0  Installed Libffi_jll ─────────────────── v3.4.7+0  Installed ColorVectorSpace ───────────── v0.11.0  Installed Xorg_libXi_jll ─────────────── v1.8.3+0  Installed Ogg_jll ────────────────────── v1.3.6+0  Installed Qt6ShaderTools_jll ─────────── v6.8.2+1  Installed Vulkan_Loader_jll ──────────── v1.3.243+0  Installed Reexport ───────────────────── v1.2.2  Installed Xorg_libXcursor_jll ────────── v1.2.4+0  Installed Qt6Declarative_jll ─────────── v6.8.2+1  Installed LogExpFunctions ────────────── v0.3.29  Installed AliasTables ────────────────── v1.1.3  Installed MacroTools ─────────────────── v0.5.16  Installed Libuuid_jll ────────────────── v2.41.1+0  Installed DocStringExtensions ────────── v0.9.5  Installed Xorg_libICE_jll ────────────── v1.1.2+0  Installed Xorg_xcb_util_renderutil_jll ─ v0.3.10+0  Installed StableRNGs ─────────────────── v1.0.3  Installed libass_jll ─────────────────── v0.17.4+0  Installed Graphite2_jll ──────────────── v1.3.15+0  Installed Pixman_jll ─────────────────── v0.44.2+0  Installed Wayland_jll ────────────────── v1.24.0+0  Installed Xorg_xkeyboard_config_jll ──── v2.44.0+0  Installed FFMPEG_jll ─────────────────── v7.1.1+0  Installed Xorg_xtrans_jll ────────────── v1.6.0+0  Installed IOCapture ──────────────────── v0.2.5  Installed Latexify ───────────────────── v0.16.9  Installed LLVMOpenMP_jll ─────────────── v18.1.8+0  Installed FixedPointNumbers ──────────── v0.8.5  Installed Xorg_libXrandr_jll ─────────── v1.5.5+0  Installed Qt6Wayland_jll ─────────────── v6.8.2+1  Installed Qt6Base_jll ────────────────── v6.8.2+1  Installed LAME_jll ───────────────────── v3.100.3+0  Installed GettextRuntime_jll ─────────── v0.22.4+0  Installed Xorg_libXfixes_jll ─────────── v6.0.1+0  Installed RecipesBase ────────────────── v1.3.4  Installed LaTeXStrings ───────────────── v1.4.0  Installed libvorbis_jll ──────────────── v1.3.8+0  Installed Glib_jll ───────────────────── v2.84.3+0  Installed Xorg_libXdmcp_jll ──────────── v1.1.6+0  Installed Libglvnd_jll ───────────────── v1.7.1+1  Installed Xorg_libX11_jll ────────────── v1.8.12+0  Installed Unzip ──────────────────────── v0.2.0  Installed UnitfulLatexify ────────────── v1.7.0  Installed PlutoTest ──────────────────── v0.2.2  Installed SortingAlgorithms ──────────── v1.2.2  No Changes to `/tmp/jl_yrPLos/Project.toml`   Updating `/tmp/jl_yrPLos/Manifest.toml` [05823500] ↑ OpenLibm_jll v0.8.1+2 ⇒ v0.8.5+0 Instantiating... === Precompiling... ===  Activating project at `/tmp/jl_yrPLos` Precompiling project... 124 dependencies successfully precompiled in 179 seconds. 63 already precompiled.ČPlutoTeachingToolsÚ@Ë Resolving... ===  Installed GR_jll ─────────────────────── v0.73.17+0 Installed JpegTurbo_jll ──────────────── v3.1.2+0  Installed LERC_jll ───────────────────── v4.0.1+0  Installed Opus_jll ───────────────────── v1.5.2+0  Installed x265_jll ───────────────────── v4.1.0+0  Installed libdecor_jll ───────────────── v0.2.2+0  Installed libfdk_aac_jll ─────────────── v2.0.4+0  Installed Libmount_jll ───────────────── v2.41.1+0  Installed Grisu ──────────────────────── v1.0.2  Installed Measures ───────────────────── v0.3.2  Installed Xorg_xkbcomp_jll ───────────── v1.4.7+0  Installed Hyperscript ────────────────── v0.0.5  Installed Unitful ────────────────────── v1.24.0  Installed Xorg_xcb_util_wm_jll ───────── v0.4.2+0  Installed Xorg_xcb_util_image_jll ────── v0.4.1+0  Installed Contour ────────────────────── v0.6.3  Installed RecipesPipeline ────────────── v0.6.12  Installed PlotUtils ──────────────────── v1.4.3  Installed Xorg_libSM_jll ─────────────── v1.2.6+0  Installed DelimitedFiles ─────────────── v1.9.1  Installed Cairo_jll ──────────────────── v1.18.5+0  Installed Fontconfig_jll ─────────────── v2.17.1+0  Installed Xorg_xcb_util_jll ──────────── v0.4.1+0  Installed Xorg_libxkbfile_jll ────────── v1.1.3+0  Installed Statistics ─────────────────── v1.11.1  Installed PlutoUI ────────────────────── v0.7.70  Installed Xorg_libXinerama_jll ───────── v1.1.6+0  Installed EpollShim_jll ──────────────── v0.0.20230411+1  Installed Xorg_libXau_jll ────────────── v1.0.13+0  Installed Missings ───────────────────── v1.2.0  Installed FFMPEG ─────────────────────── v0.4.4  Installed IrrationalConstants ────────── v0.2.4  Installed Showoff ────────────────────── v1.0.3  Installed Pango_jll ──────────────────── v1.56.3+0  Installed PtrArrays ──────────────────── v1.3.0  Installed xkbcommon_jll ──────────────── v1.9.2+0  Installed Bzip2_jll ──────────────────── v1.0.9+0  Installed Xorg_xcb_util_keysyms_jll ──── v0.4.1+0  Installed XZ_jll ─────────────────────── v5.8.1+0  Installed HarfBuzz_jll ───────────────── v8.5.1+0  Installed NaNMath ────────────────────── v1.1.3  Installed PlotThemes ─────────────────── v3.3.0  Installed x264_jll ───────────────────── v10164.0.1+0  Installed FriBidi_jll ────────────────── v1.0.17+0  Installed UnicodeFun ─────────────────── v0.4.1  Installed GLFW_jll ───────────────────── v3.4.0+2  Installed fzf_jll ────────────────────── v0.61.1+0  Installed LZO_jll ────────────────────── v2.10.3+0  Installed FreeType2_jll ──────────────── v2.13.4+0  Installed JLFzf ──────────────────────── v0.1.11  Installed StatsAPI ───────────────────── v1.7.1  Installed ColorSchemes ───────────────── v3.30.0  Installed StatsBase ──────────────────── v0.34.6  Installed Colors ─────────────────────── v0.13.1  Installed DataStructures ─────────────── v0.19.0  Installed GR ─────────────────────────── v0.73.17  Installed libpng_jll ─────────────────── v1.6.50+0  Installed Xorg_libxcb_jll ────────────── v1.17.1+0  Installed mtdev_jll ──────────────────── v1.1.7+0  Installed libaom_jll ─────────────────── v3.12.1+0  Installed Dbus_jll ───────────────────── v1.16.2+0  Installed ColorTypes ─────────────────── v0.12.1  Installed PlutoTeachingTools ─────────── v0.4.5  Installed eudev_jll ──────────────────── v3.2.14+0  Installed Xorg_libXext_jll ───────────── v1.3.7+0  Installed Zstd_jll ───────────────────── v1.5.7+1  Installed TensorCore ─────────────────── v0.1.1  Installed Libtiff_jll ────────────────── v4.7.1+0  Installed Xorg_xcb_util_cursor_jll ───── v0.1.5+0  Installed Plots ──────────────────────── v1.40.19  Installed Format ─────────────────────── v1.3.7  Installed libevdev_jll ───────────────── v1.13.4+0  Installed libinput_jll ───────────────── v1.28.1+0  Installed Xorg_libXrender_jll ────────── v0.9.12+0  Installed Libffi_jll ─────────────────── v3.4.7+0  Installed ColorVectorSpace ───────────── v0.11.0  Installed Xorg_libXi_jll ─────────────── v1.8.3+0  Installed Ogg_jll ────────────────────── v1.3.6+0  Installed Qt6ShaderTools_jll ─────────── v6.8.2+1  Installed Vulkan_Loader_jll ──────────── v1.3.243+0  Installed Reexport ───────────────────── v1.2.2  Installed Xorg_libXcursor_jll ────────── v1.2.4+0  Installed Qt6Declarative_jll ─────────── v6.8.2+1  Installed LogExpFunctions ────────────── v0.3.29  Installed AliasTables ────────────────── v1.1.3  Installed MacroTools ─────────────────── v0.5.16  Installed Libuuid_jll ────────────────── v2.41.1+0  Installed DocStringExtensions ────────── v0.9.5  Installed Xorg_libICE_jll ────────────── v1.1.2+0  Installed Xorg_xcb_util_renderutil_jll ─ v0.3.10+0  Installed StableRNGs ─────────────────── v1.0.3  Installed libass_jll ─────────────────── v0.17.4+0  Installed Graphite2_jll ──────────────── v1.3.15+0  Installed Pixman_jll ─────────────────── v0.44.2+0  Installed Wayland_jll ────────────────── v1.24.0+0  Installed Xorg_xkeyboard_config_jll ──── v2.44.0+0  Installed FFMPEG_jll ─────────────────── v7.1.1+0  Installed Xorg_xtrans_jll ────────────── v1.6.0+0  Installed IOCapture ──────────────────── v0.2.5  Installed Latexify ───────────────────── v0.16.9  Installed LLVMOpenMP_jll ─────────────── v18.1.8+0  Installed FixedPointNumbers ──────────── v0.8.5  Installed Xorg_libXrandr_jll ─────────── v1.5.5+0  Installed Qt6Wayland_jll ─────────────── v6.8.2+1  Installed Qt6Base_jll ────────────────── v6.8.2+1  Installed LAME_jll ───────────────────── v3.100.3+0  Installed GettextRuntime_jll ─────────── v0.22.4+0  Installed Xorg_libXfixes_jll ─────────── v6.0.1+0  Installed RecipesBase ────────────────── v1.3.4  Installed LaTeXStrings ───────────────── v1.4.0  Installed libvorbis_jll ──────────────── v1.3.8+0  Installed Glib_jll ───────────────────── v2.84.3+0  Installed Xorg_libXdmcp_jll ──────────── v1.1.6+0  Installed Libglvnd_jll ───────────────── v1.7.1+1  Installed Xorg_libX11_jll ────────────── v1.8.12+0  Installed Unzip ──────────────────────── v0.2.0  Installed UnitfulLatexify ────────────── v1.7.0  Installed PlutoTest ──────────────────── v0.2.2  Installed SortingAlgorithms ──────────── v1.2.2  No Changes to `/tmp/jl_yrPLos/Project.toml`   Updating `/tmp/jl_yrPLos/Manifest.toml` [05823500] ↑ OpenLibm_jll v0.8.1+2 ⇒ v0.8.5+0 Instantiating... === Precompiling... ===  Activating project at `/tmp/jl_yrPLos` Precompiling project... 124 dependencies successfully precompiled in 179 seconds. 63 already precompiled.§enabledĂ·restart_recommended_msgÀŽrestart_required_msgÀ­busy_packages¶waiting_for_permissionÂÙ,waiting_for_permission_but_probably_disabled«cell_inputsȚeÙ$71829343-22e9-4f5f-8c54-afd4dffa826a„§cell_idÙ$71829343-22e9-4f5f-8c54-afd4dffa826a€codeÚÆ md""" We see that the `datetime2julian` function takes a single input parameter of *type* `DateTime` object (provided by the `Dates` module) and returns a variable of type `Float64`. How do we make a `DateTime` object? Pluto offers a convenient way to view the documentation for a function (or type, module, etc.). Click on the `DateTime` in the cell below and then open the *Live Docs* panel (probably in the bottom right of your browser). """ šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$6cc68a61-2c5a-4870-848d-122ac388daf1„§cell_idÙ$6cc68a61-2c5a-4870-848d-122ac388daf1€codeÚj"Generate a reproducible sample of N random variables from a Normal distribution with specified true mean." function generate_sample(N::Integer, true_mean = 0.0; seed::Integer = 42) Random.seed!(seed) # reseed the pseudo-random number generator # so that results will be reproducible sample = true_mean .+ randn(N) return sample end;šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$398433fa-69a1-497b-8248-041a180596e0„§cell_idÙ$398433fa-69a1-497b-8248-041a180596e0€codeÚŁmd""" ### Visualizing the Results Now, we'd like to compare the results of the two algorithms. It will be helpful to visualize the difference as a function of the number of samples. Therefore, we'll make a function to generate a random data set with `N` samples and a specified `true_mean` for the distribution the samples are drawn from. Here `true_mean` is an optional, named arguement that defaults to zero. """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$bfdd8ecf-5f05-4056-a9d8-f3404774ff52„§cell_idÙ$bfdd8ecf-5f05-4056-a9d8-f3404774ff52€code±TableOfContents()šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$1d44aa99-26b1-47cd-9d19-64f4d0daf0fc„§cell_idÙ$1d44aa99-26b1-47cd-9d19-64f4d0daf0fc€codeÙ"generate_sample(10, jd_sept1_2021)šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$8588be85-c656-4239-a2f8-f0535d15e55e„§cell_idÙ$8588be85-c656-4239-a2f8-f0535d15e55e€codeÙJdisplay_msg_if_fail(check_type_isa(:response_1d,response_1d,Markdown.MD)) šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$af508570-b20f-4dd3-a995-36c79fc41823„§cell_idÙ$af508570-b20f-4dd3-a995-36c79fc41823€codeÙdbegin using PlutoUI, PlutoTeachingTools, PlutoTest eval(Meta.parse(code_for_check_type_funcs)) endšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$3393a0a1-c202-4fb1-b752-275595303502„§cell_idÙ$3393a0a1-c202-4fb1-b752-275595303502€codeÙBmd"Under what circumstance would it be a good/poor choice to use?"šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$47104686-c7f2-44c1-be4c-7bb2497aafbf„§cell_idÙ$47104686-c7f2-44c1-be4c-7bb2497aafbf€codeœ@test @isdefined var_one_passšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$723c95f7-b751-490d-968a-fe15559416dd„§cell_idÙ$723c95f7-b751-490d-968a-fe15559416dd€codeÚ0if !@isdefined(var_one_pass) func_not_defined(:var_one_pass) else let if length(methods(var_one_pass,[Array])) >= 1 && !ismissing(var_one_pass(ones(10))) && var_one_pass(ones(10)) ≈ 0 && var_one_pass([0,1,2,3,4,5,6,7,8,9,10]) ≈ 11 correct() else keep_working() end end endšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$f16fa36b-9bed-4a37-a424-a56c717eaf9a„§cell_idÙ$f16fa36b-9bed-4a37-a424-a56c717eaf9a€codeÙć md""" Next, I'd like to compute the corresponding [Julian date](https://en.wikipedia.org/wiki/Julian_day). The `Dates` module provides a function, `datetime2julian` to do that for us. Let's check how to call that function. """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$7c0b516d-4e98-452e-8203-7d5988631af6„§cell_idÙ$7c0b516d-4e98-452e-8203-7d5988631af6€codeÙ#sept1_2021 = DateTime(2021, 09, 1) šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$1313e06f-4e28-402c-b29f-04d97cca66c1„§cell_idÙ$1313e06f-4e28-402c-b29f-04d97cca66c1€codeÙŽmd"c. How large are the differences? Are they significant relative to the true values? Why is the difference for one quantity a larger fraction of its true value than the other?"šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$1f304a1e-935c-4ccc-8331-6f389ae3c7b2„§cell_idÙ$1f304a1e-935c-4ccc-8331-6f389ae3c7b2€codeÚ‹md""" ## Calling Functions A key principle of writing code for non-trivial tasks is to organize one's code into many small functions, each of which do one thing (hopefully well). High-level languages typically come with numerous functions that allow developers to accomplish common tasks without reinventing the wheel. For example, the function `sqrt(x)` computes the square root of `x`. """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$51ced48f-0aab-47fd-ab59-7b0acea6097a„§cell_idÙ$51ced48f-0aab-47fd-ab59-7b0acea6097a€codeÙ0@test length(methods(var_one_pass,[Array])) >= 1šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$217e0561-9724-4fd2-ab8c-e19d767ed305„§cell_idÙ$217e0561-9724-4fd2-ab8c-e19d767ed305€code¶s_32bit = std(y_32bit)šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$ca8166f2-fd5b-4915-b856-c1d32a3cd5ee„§cell_idÙ$ca8166f2-fd5b-4915-b856-c1d32a3cd5ee€code·Î”s = s_64bit - s_32bitšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$0cd929dc-f9b6-4dad-8de4-93cf4abd200e„§cell_idÙ$0cd929dc-f9b6-4dad-8de4-93cf4abd200e€codeÙJdisplay_msg_if_fail(check_type_isa(:response_2h,response_2h,Markdown.MD)) šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$bfca0183-ef43-4858-8305-2e669ba14d94„§cell_idÙ$bfca0183-ef43-4858-8305-2e669ba14d94€codeÚ!md"""If you suceeded above, then Pluto will soon display a plot showing the absolute value of the difference between the two variance estimates below as a function of the number of observation dates in the sample. First, make a prediction for what you expect such a plot to look like. """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$6347a9de-1795-4980-be61-ec83f7b6c95a„§cell_idÙ$6347a9de-1795-4980-be61-ec83f7b6c95a€code”response_1e = missingšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$4697b219-94a8-4053-9ab6-35875c05b55c„§cell_idÙ$4697b219-94a8-4053-9ab6-35875c05b55c€code§sqrt(4)šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$1b7665b7-c25e-46ac-bcad-f4b8d0607693„§cell_idÙ$1b7665b7-c25e-46ac-bcad-f4b8d0607693€codeÚF"Compute the sample variance of an array using an online 1-pass algorithm" function var_online(y::Array) n = length(y) sum1 = zero(first(y)) mean = zero(first(y)) M2 = zero(first(y)) for i in 1:n diff_by_i = (y[i]-mean)/i mean += diff_by_i M2 += (i-1)*diff_by_i^2+(y[i]-mean)^2 end variance = M2/(n-1) end;šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$fd31f33f-641c-47a1-9ad8-fbfb728959c2„§cell_idÙ$fd31f33f-641c-47a1-9ad8-fbfb728959c2€codeÙvmd"e. What lessons does this exercise illustrate that could be important when writing similar code for your research?"šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$de78cc1c-444e-4308-adb5-d93afdc57682„§cell_idÙ$de78cc1c-444e-4308-adb5-d93afdc57682€codeÙŽfunction compare_var_calcs_online(N::Integer, true_mean::Real = 0.0) input_data = generate_sample(N,true_mean) Δvar = abs(var_online(input_data) - var_two_pass(input_data)) end;šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$b760fedd-41ea-4784-845f-ede0163c0d12„§cell_idÙ$b760fedd-41ea-4784-845f-ede0163c0d12€codeČmd"## Helper Code"šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$2ca37a14-1e12-41ab-b85a-b8d6e9a28ab6„§cell_idÙ$2ca37a14-1e12-41ab-b85a-b8d6e9a28ab6€code°s_64bit = std(y)šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$af2bd92f-a67f-4fe3-965e-d337d57a2368„§cell_idÙ$af2bd92f-a67f-4fe3-965e-d337d57a2368€code”response_2g = missingšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$f0c73fc1-8da9-4579-a369-a3c907fc56f4„§cell_idÙ$f0c73fc1-8da9-4579-a369-a3c907fc56f4€codeÙ°md"e. Consider the online 1-pass algorithm below for calculating the sample variance given below and then compare its results to the other algorithms for different data sets."šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$ca9cf926-0102-4d89-875d-8c86ec841794„§cell_idÙ$ca9cf926-0102-4d89-875d-8c86ec841794€codeÙeresponse_1a = missing # REPLACE missing with your responces as Markdown text like md"your response" šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$a9b3f568-c421-409f-9fcb-1f9b4b8e0345„§cell_idÙ$a9b3f568-c421-409f-9fcb-1f9b4b8e0345€codeÚNif ready_to_plot && !ismissing(compare_var_calcs(3)) local N_list = [2^n for n in 2:20] local plt = scatter(N_list, compare_var_calcs.(N_list,true_mean_plt), x_scale=:log10, legend=:none) xlabel!(plt,"Number of observation dates") ylabel!(plt,"|Δ Estimated Sample Var| (daysÂČ)") title!(plt,"Sample mean = $true_mean_plt") endšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$e0f22e5f-ce24-4d78-8b21-d5ba9b31d536„§cell_idÙ$e0f22e5f-ce24-4d78-8b21-d5ba9b31d536€codeÚĆmd""" ### Computing Variances Next, you will compute the variance of the above data using multiple algorithms and compare their relative merits. Algebraically, the sample mean is calculated via $m = 1/N \times \sum_{i=1}^{N} y_i$ and the sample variance can be written two ways $$s^2 = 1/(N-1) \times \sum_{i=1}^N (y_i-m)^2$$ or $$s^2 = 1/(N-1) \times \left[ \left( \sum_{i=1}^N y_i^2 \right) - N m^2 \right] = 1/(N-1) \times \left[ \left( \sum_{i=1}^N y_i^2 \right) - \left(\sum_{i=1}^N y_i\right)^2 /N \right]$$. In this exercise, you will consider how to calculate the sample variance accurately and efficiently. First, you'll try writing a function yourself. To get help with syntax, you can hover your mouse over the following tip boxes below. The example in the first hint box demonstrates how to write a function with a *for loop* and how to access elements of an array in Julia. The second hint box demonstrates using a two function calls. """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$3f18862c-64e1-4e21-84a6-a0d2094448a7„§cell_idÙ$3f18862c-64e1-4e21-84a6-a0d2094448a7€code”response_2e = missingšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$0f7fb357-e4db-41bd-a24f-e156fcb9016a„§cell_idÙ$0f7fb357-e4db-41bd-a24f-e156fcb9016a€code·Î”m = m_64bit - m_32bitšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$de8df98a-48ce-4f6f-b725-880dfaf445b9„§cell_idÙ$de8df98a-48ce-4f6f-b725-880dfaf445b9€codečDocs.doc(datetime2julian)šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$441d3823-5003-4e48-b24f-ba09e10735ff„§cell_idÙ$441d3823-5003-4e48-b24f-ba09e10735ff€codeڝmd""" First, let's review the code in the cell above. The first line is a "docstring", it describes what the function below does both for developers reading the code and for users who might get the same information from Pluto's LiveDocs featuore or a website with documentation automatically extracted from the package's docstrings (using the Documenter.jl package and a GitHub Action). The rest of the cell defines a function that takes two input parameters and returns a 1-d array of random variables. The first parameter (`N`) is required and must be some form of an integer. The second parameter (`true_mean`) could have any type and has a default value of zero. The third parameter (after the `;`) is a named parameter (i.e., you must specify the name of the parameter when calling the function, instead of just using its position). Because it has a default value it is optional. Each time the function is called, it will begin by seeding a pseudo-random number generator. This is important so that results will be reproducible when run multiple times. The function `randn` returns a 1-d array of standard random variables (i.e., drawn from a normal distribution with zero mean and unit variance) drawn using Julia's default pseudo-random number generator. Then the function returns the variable `sample`. When you execute the code block above, julia parses the function, but does not compile or execute the code. That will only happen once the function is called. Since the last line of the cell is the end of the function, the output of the cell is the function. By ending the line with a `;`, we tell Julia not to display the output. Now let's try out using this function. """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$610f1c19-a2ea-40b1-9faa-d47ed60d17b1„§cell_idÙ$610f1c19-a2ea-40b1-9faa-d47ed60d17b1€codeÚĐhint(md""" ```julia "Calculate mean value of an array using a simple for loop." function mean_demo_verbose(y::Array) # the syntax ::Array specifies that this function can only be applied if argument is an array. n = length(y) # get the number of elements in the array y sum = zero(first(y)) # set sum to zero. Using zero(first(y)) makes sum have the same data type as the first element of y for i in 1:n # In Julia and Fortran, arrays start a 1, not 0 (like in C arrays and Python lists) sum += y[i] # Short-hand for sum += sum + y[i] end return sum/n # return isn't necessary since functions return the last value by default end ``` """)šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$a83d07b9-d7b7-4274-929a-9a3474e44f08„§cell_idÙ$a83d07b9-d7b7-4274-929a-9a3474e44f08€codeÙ3@test var_one_pass([0,1,2,3,4,5,6,7,8,9,10]) ≈ 11šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$b4d6143c-42ad-460d-8af3-a36dae1a8879„§cell_idÙ$b4d6143c-42ad-460d-8af3-a36dae1a8879€codeÚ•md""" ### Broadcasting Look more closely at the function `generate_sample` above. Note the syntax `.+` that tells julia the programmer wants to "broadcast" the scalar `true_mean` to have the same dimensions as the result of `randn(...)`. What do you think would happen if you replaced this with `true_mean+randn(N)`? Try it. How does the behavior compare to what you expected? Restore the code in `generate_sample` and execute the cell again, so the rest of the lab works as intended. b. What is the advantage of julia having different syntax for arithmetic on variables with compatible dimensions from arithmetic on variables with different dimensions? """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$58d4e72a-aed5-4b8f-846e-bb63e4cc54c7„§cell_idÙ$58d4e72a-aed5-4b8f-846e-bb63e4cc54c7€codeÚ™protip(md"Normally, we'd use the `Test` module for the `@test` macro. Julia has a large set of modules and packages, that range from very basic functionality to complex science codes. The quality also varries widely. Several modules (like `Test`) are included in Julia standard library, so they're already installed for us. However, inside Pluto, it can be helpful to instead import `PlutoTest`, since it displays the results particularly nicely. (It's an external package and it's still experimental, so if things break in the future, then we can revert to just using `Test`. Below, I pick one based on whether we are inside a Pluto notebook session.")šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$65ef6abf-460d-49ac-80e1-1ecc1d0250dd„§cell_idÙ$65ef6abf-460d-49ac-80e1-1ecc1d0250dd€codeÚhmd""" ### Pluto: A **Reactive** Notebook Experience Some of you may have experience using Jupyter notebooks. Indeed, Jupyter notebooks are a useful and commonly used for small Astronomy and Data Science projects. One big disadvantage of Jupyter notebooks is that the notebook doesn't provide a complete description of the kernel state. That's a fancy way of saying that you can run cells out of order, or change a cell and not recalculate something that depended on the results of that cell. It's suprisingly easy to confuse yourself. Indeed, the first time Astro 528 was offered, we used Jupyter notebooks for nearly all the assignments. When students encountered trouble, the most common advice they got was "Restart your notebook and step through the notebook, one cell at a time until you find where it breaks." In contrast, Pluto keeps track of all dependancies across cells. When you update a cell, it recalculates all the cells that depend on it! Pluto can also be useful for making interactive visualizations. In the example below, we'll make a plot that depends on a variable `true_mean_plt` defined below. When you change the value of `true_mean_plt`, the plots below should automatically update itself. Try setting it to a value of 10 or 100 times larger or smaller and observed how the difference in the estimates of the sample standard deviation change. """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$838f871a-2346-4d27-a6a1-1705c9b3b833„§cell_idÙ$838f871a-2346-4d27-a6a1-1705c9b3b833€codeÙx md""" We see that there are several different *constructors* to construct a DateTime object. We'll pick one below. """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$c63db04d-5fc8-4bee-8594-5d033b2f7a09„§cell_idÙ$c63db04d-5fc8-4bee-8594-5d033b2f7a09€code”response_2d = missingšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$ac593093-eebb-49df-9b9b-74ed388d3a2b„§cell_idÙ$ac593093-eebb-49df-9b9b-74ed388d3a2b€codeÙJdisplay_msg_if_fail(check_type_isa(:response_1e,response_1e,Markdown.MD)) šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$6134acc4-4b96-4001-ad49-37fd7d6e040e„§cell_idÙ$6134acc4-4b96-4001-ad49-37fd7d6e040e€codeÙJdisplay_msg_if_fail(check_type_isa(:response_2e,response_2e,Markdown.MD)) šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$65190391-e0fc-4db0-8fdd-092bcd58a588„§cell_idÙ$65190391-e0fc-4db0-8fdd-092bcd58a588€codeÚ= 1 && !ismissing(var_two_pass(ones(10))) && var_two_pass(ones(10)) ≈ 0 && var_two_pass([0,1,2,3,4,5,6,7,8,9,10]) ≈ 11 correct() else keep_working() end end endšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$569df89d-5039-4a63-8396-ab595811584c„§cell_idÙ$569df89d-5039-4a63-8396-ab595811584c€codeÙJdisplay_msg_if_fail(check_type_isa(:response_2c,response_2c,Markdown.MD)) šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$a387d515-82d6-4211-8934-b5f0d3b062dc„§cell_idÙ$a387d515-82d6-4211-8934-b5f0d3b062dc€codeÚœmd""" h. I've written some tests in 'test/test2.jl'. Because of Pluto's reactivity, it's tricky to run a file from inside a notebook. Instead, run `julia --project test/runtests2.jl` to run the code in this Pluto notebook and then the tests in 'test/test2.jl'. First, check that your functions pass my tests. If not, is it because your function has a bug? If so, fix your functions. Or is there another explanation? It may help to look at the source code for the tests to see what it means to have "passed". Can you suggest additional tests for such functions? Feel free to add them to the tests in 'test/test2.jl' and check that your code still passes. """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$b77abd33-0214-46f4-9fde-8b38afafd224„§cell_idÙ$b77abd33-0214-46f4-9fde-8b38afafd224€codeÙJdisplay_msg_if_fail(check_type_isa(:response_1a,response_1a,Markdown.MD)) šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$72474fca-4bc7-471e-9116-c48023f147dd„§cell_idÙ$72474fca-4bc7-471e-9116-c48023f147dd€codeÙ^md""" Your code should pass the following tests. If it doesn't, fix your code so it does. """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$da5572db-5df8-4753-876f-e1b3a186f8a8„§cell_idÙ$da5572db-5df8-4753-876f-e1b3a186f8a8€code·m_32bit = mean(y_32bit)šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$a200eb3c-7041-47e4-89d2-d077dccc18c2„§cell_idÙ$a200eb3c-7041-47e4-89d2-d077dccc18c2€codeÙJdisplay_msg_if_fail(check_type_isa(:response_1c,response_1c,Markdown.MD)) šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$86a442a6-fb6e-45c7-9ab9-83aee71b028c„§cell_idÙ$86a442a6-fb6e-45c7-9ab9-83aee71b028c€codeÙSfunction var_two_pass(y::Array) # INSERT CODE for var_two_pass return missing endšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$27667e0a-8ebc-4397-8ac3-33a0f19f6987„§cell_idÙ$27667e0a-8ebc-4397-8ac3-33a0f19f6987€codeÙ^md""" # Astro 528, Lab 1, Exercise 2 ## Introduction to Julia & Floating Point Arithmetic """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$48a888f3-7067-4524-b818-279e3ed2ffdc„§cell_idÙ$48a888f3-7067-4524-b818-279e3ed2ffdc€codeÙJdisplay_msg_if_fail(check_type_isa(:response_2f,response_2f,Markdown.MD)) šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$a802faec-6745-4f9d-820a-bb8c1aa25fc1„§cell_idÙ$a802faec-6745-4f9d-820a-bb8c1aa25fc1€codeœtrue_mean_plt = jd_sept1_2021šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$60dc2204-db4f-4038-8158-d0694dd720ba„§cell_idÙ$60dc2204-db4f-4038-8158-d0694dd720ba€codeÚómd""" The first time you execute any command in Julia (or start up a notebook), you'll notice a delay while the Julia kernel starts. Then, the first time you import a module, Julia will parse the code in the module and compile some functions. The next you import the same module it will be mucuh faster, as it won't need to reparse and recompile some of that module's code (as long as the module hasn't changed, e.g., you modify the module's code directly or due to the package being updated). """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$a4a9b516-5473-478e-a390-9e4f715310eb„§cell_idÙ$a4a9b516-5473-478e-a390-9e4f715310eb€codeÚ_tip(md"Note the cell above returns a [`NamedTuple`](https://docs.julialang.org/en/v1/base/base/#Core.NamedTuple) that contains two Float64's. Naming the two elements of the [`Tuple`](https://docs.julialang.org/en/v1/manual/types/#Tuple-Types) can be useful for preventing silly mistakes when order is the only way to distinguish the two numbers. ")šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$cd09046b-753e-4843-a4e4-3be0b0c7fb97„§cell_idÙ$cd09046b-753e-4843-a4e4-3be0b0c7fb97€codeÚƒif ready_to_plot && !ismissing(compare_var_calcs(3)) && !ismissing(compare_var_calcs_online(3)) local N_list = [2^n for n in 2:20] local plt = plot() local true_mean = jd_sept1_2021 local label_1 = "1-pass minus 2-pass" local label_online ="online minus 2-pass" scatter!(plt,N_list, compare_var_calcs.(N_list,true_mean), x_scale=:log10, color=:red,label=label_1, legend=:topleft) scatter!(plt,N_list, compare_var_calcs_online.(N_list,true_mean), x_scale=:log10,color=:green,label=label_online) xlabel!(plt,"Number of observation dates") ylabel!(plt,"|Δ Estimated Sample Var| (daysÂČ)") title!(plt,"Sample mean = $true_mean") endšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$48d96e9d-b34b-4899-a976-a92602156981„§cell_idÙ$48d96e9d-b34b-4899-a976-a92602156981€codeÙJdisplay_msg_if_fail(check_type_isa(:response_2d,response_2d,Markdown.MD)) šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$339639fc-77d8-4e88-85f3-59c7821cd01f„§cell_idÙ$339639fc-77d8-4e88-85f3-59c7821cd01f€codeÙÔmd""" g. Don't forget that we should test your functions for accuracy. Should we expect all of these functions to return the exact same value? How can we test functions that return floating point values? """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$3cb23c2a-2611-47e6-9ee5-4d1d4f0a84dc„§cell_idÙ$3cb23c2a-2611-47e6-9ee5-4d1d4f0a84dc€codeÙSbegin y = generate_sample(num_obs, jd_sept1_2021) (ÎŒ = mean(y), σ = std(y)) endšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$66d9bc94-3e61-41e8-a81d-88e307d97653„§cell_idÙ$66d9bc94-3e61-41e8-a81d-88e307d97653€codeÙymd"d. What considerations would affect the decision of whether to use the one-pass algorithm or the two-pass algorithm?"šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$61503eb8-8a70-4ff7-b5bb-0a73c501d6c7„§cell_idÙ$61503eb8-8a70-4ff7-b5bb-0a73c501d6c7€codeڐmd""" ### Calculating basic summary statistics Now, we're going to generate a much larger sample of numbers and compute their mean and standard deviations using multiple different methods. You will compare the results. The goal is to help you to understand when floating point arithmetic is likely to be problematic, so you can anticipate potential pitfalls that might affect your own research. """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$731f047f-0f26-4ab7-8810-398659642b0c„§cell_idÙ$731f047f-0f26-4ab7-8810-398659642b0c€codeÙżmd""" Change the value of the variable `num_obs` defined in a cell above to smaller and larger values. How does the mangitude of the differnces depend on the number of observation dates?"""šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$0b768a24-e97a-47e8-925f-b9e75601ceae„§cell_idÙ$0b768a24-e97a-47e8-925f-b9e75601ceae€codeÚhint(md""" The above could also be written more succinctly as ```julia "Calculate mean value of an array using sum and length functions." mean_demo_concise(y::Array) = sum(y)/length(y); ``` Indeed, Julia's function `Statistics.mean()` that is written almost identically to this. """) šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$8b3572b8-e571-43b7-ab45-68eabecace69„§cell_idÙ$8b3572b8-e571-43b7-ab45-68eabecace69€codeÙôfunction compare_var_calcs(N::Integer, true_mean::Real = 0.0) @assert N > 2 @assert !isnan(true_mean) @assert !isinf(true_mean) input_data = generate_sample(N,true_mean) Δvar = abs(var_one_pass(input_data) - var_two_pass(input_data)) end;šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$4ab6efe2-271c-4574-898e-ce0817fc5033„§cell_idÙ$4ab6efe2-271c-4574-898e-ce0817fc5033€codeÙ3function var_one_pass(y::Array) return missing endšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$58d0e74a-d4f6-4aab-97aa-18d305e888e1„§cell_idÙ$58d0e74a-d4f6-4aab-97aa-18d305e888e1€codeÙïmd"""b. Write a function named `var_two_pass` take takes input similar to `mean_demo_verbose` and provides a two-pass algorithm to calculate the variance more accurately than the one pass algoritihm by using two loops over the $y_i$'s."""šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$c337d59a-cb1c-4542-ae16-830bf8a2afc5„§cell_idÙ$c337d59a-cb1c-4542-ae16-830bf8a2afc5€codeÚÉmd"""a. Write a function named `var_one_pass` that takes inputs similar to `mean_demo_verbose` and implements a **one-pass algorithm** to calculate the variance, reading each value of y from the computer's main memory only once. Note that using the same element of an array repeatedly (i.e., before accessing the any other elements of the array) only counts as a single pass, since it can be reused without repeatedly copying the data from main memory."""šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$32831892-6da7-4f85-80ff-73c60a638382„§cell_idÙ$32831892-6da7-4f85-80ff-73c60a638382€codeÚ md"""The cell above assigns multiple variables. When writing Pluto notebooks, any cell that assigns multiple variables must be wrapped inside a `begin`...`end` block (or split into multiple cells). Note that this is different from Jupyter notebooks. The final line calls the functions `mean` and `std` (that were exported by the Statistics package) to compute the mean and standard deviation of our sample. """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$a1699fca-90ec-418b-a675-3982dd4c11ff„§cell_idÙ$a1699fca-90ec-418b-a675-3982dd4c11ff€code©DateTime;šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$76cd6fbe-9be4-4e29-a3e9-4fac87d1a0c8„§cell_idÙ$76cd6fbe-9be4-4e29-a3e9-4fac87d1a0c8€codeÙ}md"Once you've completed the questions above and made your prediction, **click this box**: $(@bind ready_to_plot CheckBox())"šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$192e6360-5eba-4a4d-b203-363caba8af64„§cell_idÙ$192e6360-5eba-4a4d-b203-363caba8af64€codeÙ"@test var_one_pass(ones(10)) ≈ 0šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$84f0ce6c-9ae0-4016-91e2-d436d4385366„§cell_idÙ$84f0ce6c-9ae0-4016-91e2-d436d4385366€codeÙćmd"Using the same mean and std function as before, compute (and report) the sample mean and sample variance for each of these arrays. Compare the results by subtracting each of the results computed using Float64's and Float32's"šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$119e51ef-ed7b-4f9b-b7dd-67ae70bf934a„§cell_idÙ$119e51ef-ed7b-4f9b-b7dd-67ae70bf934a€codeÚuif ready_to_plot && !ismissing(compare_var_calcs(3)) local N_list = [2^n for n in 2:20] local true_mean = jd_sept1_2021 local plt = scatter(N_list, compare_var_calcs.(N_list,true_mean), x_scale=:log10, legend=:none) xlabel!(plt,"Number of observation dates") ylabel!(plt,"|Δ Estimated Sample Var| (daysÂČ)") title!(plt,"Sample mean = $true_mean (Static Plot)") endšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$10dca248-2004-4719-9e30-eb3025da0513„§cell_idÙ$10dca248-2004-4719-9e30-eb3025da0513€code”response_2c = missingšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$8c2cddbf-3a02-4969-952e-4d76ca23f95b„§cell_idÙ$8c2cddbf-3a02-4969-952e-4d76ca23f95b€code”response_1b = missingšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$c9b2756d-46cf-43a1-81a7-2aecf50fd69e„§cell_idÙ$c9b2756d-46cf-43a1-81a7-2aecf50fd69e€codeÙOmd""" ### Generate an array of simulated data using the following function: """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$66a5de37-ff4c-40f6-99fc-624ca571b881„§cell_idÙ$66a5de37-ff4c-40f6-99fc-624ca571b881€codeÚRmd"""The above code calls the function generate_sample, asking it to compute 10 random variables with true mean equal to the julian date for September 1, 2021. The output will be a list of floating point numbers enclosed in square brackets to denote that it's a vector, which is equivalent to a 1-dimensional array. Look at the results above. Are the output consistent with your expectations? (If not, then try changing the inputs to `generate_sample` to see what happens.) Write your responce as Markdown text in the cell below and store the result as a variable named `response_1a`. """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$0c9c629c-cb43-4fa7-8322-0b47718f2a9a„§cell_idÙ$0c9c629c-cb43-4fa7-8322-0b47718f2a9a€code«using Plotsšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$9ca08091-8906-4b2e-b965-f8dbc385623d„§cell_idÙ$9ca08091-8906-4b2e-b965-f8dbc385623d€codeŻWidthOverDocs()šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$37b12cb7-377b-48ba-b3ff-2457aa2c44a9„§cell_idÙ$37b12cb7-377b-48ba-b3ff-2457aa2c44a9€codeÚ*md""" ## Finite precision arithmetic By default, Julia uses 64 bits of memory to store each floating point value. Often this is referred to as "double precission" (for historical reasons, although technically this is machine dependent and thus less precise) to differentiate it from "single precission" floating point values typically stored with 32 bits. To explore the effects of floating point arithmetic, let us convert the array of y values into arrays of floating point values that use fewer bits to store each value using the following code."""šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$a6cfeba5-d7c7-4493-aeae-379569932ef0„§cell_idÙ$a6cfeba5-d7c7-4493-aeae-379569932ef0€codeÙœtip(md"Julia allows unicode characters for variable and function names. This can be very useful for mathematical work. However, some programs don't display unicode characters correctly.")šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$1907ec31-4b3f-4db6-a42f-fffb3b722d7e„§cell_idÙ$1907ec31-4b3f-4db6-a42f-fffb3b722d7e€codeżusing Dates, Random, Statisticsšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$64dcecf3-1561-411a-8759-a4ccb219e303„§cell_idÙ$64dcecf3-1561-411a-8759-a4ccb219e303€code”response_2f = missingšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$d470aea9-b69e-4f02-bbaf-4d61cb5244b9„§cell_idÙ$d470aea9-b69e-4f02-bbaf-4d61cb5244b9€codeÙémd"c. Compare the accuracy of the results using data sets of different sizes and values of the true sample mean. Under what conditions do they give results that differ by an ammount that is potentially scientifically significant?"šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$43f717de-f5c8-43b5-9229-254b9cb89ca7„§cell_idÙ$43f717de-f5c8-43b5-9229-254b9cb89ca7€codeٞmd"To make Plots we'll import the `Plots` package. (If you're interested, you can click the eyeball to the left of the plot cells to see the plotting code.)"šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$98861118-c1c1-48d3-bb7b-1dc8f8e52604„§cell_idÙ$98861118-c1c1-48d3-bb7b-1dc8f8e52604€codeÚúmd""" ## Writing Functions It will be very useful to write and organize your code into many small functions. I strongly recommend you develop a habit of writing code in the form of functions. A good rule of thumb is that each function should do one specific thing. Another rule of thumb is to try to keep each function to no more than can fit on one page of paper (or one screen), even when it's complicated. If nothing else, this makes it easier for humans to debug the function. The code for most functions is considerably smaller, but sometimes a hard scientific problem demands a longer function. Often, after writing a complex function, one can refactor the code into multiple smaller functions, resulting in code that is easier to read, debug, maintain and optimize. Julia provides multiple syntaxes for writing functions, [as described in the Julia manual](https://docs.julialang.org/en/v1/manual/functions/index.html). (I suggest stopping before the subsection on "Operators Are Functions" for now.) """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$a11ffb3d-310f-4e28-b8f2-724aab7006a0„§cell_idÙ$a11ffb3d-310f-4e28-b8f2-724aab7006a0€code”response_2h = missingšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$9f4c6a89-754d-4dee-813f-b2d902439ea1„§cell_idÙ$9f4c6a89-754d-4dee-813f-b2d902439ea1€code”typeof(jd_sept1_2021)šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$8b757575-9b7e-4154-8222-d024cb62f08f„§cell_idÙ$8b757575-9b7e-4154-8222-d024cb62f08f€codeÙ+jd_sept1_2021 = datetime2julian(sept1_2021)šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$29ab9da1-2130-4ea1-aa4d-af08f8011bd0„§cell_idÙ$29ab9da1-2130-4ea1-aa4d-af08f8011bd0€codeÚˆmd""" It's often good to double check the return type of a function you call to make sure it's what you expected. For functions in Base Julia, this can usually be looked up in the function documentation, either in the [Julia manual](https://docs.julialang.org/en/v1/) or using the Live Docs feature of Pluto. If you want to check a variable's type, the `typeof` function is quite useful."""šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$691632b7-3435-4c0d-aff4-3bdc87d77e7b„§cell_idÙ$691632b7-3435-4c0d-aff4-3bdc87d77e7b€code”y_32bit = Float32.(y)šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$f362498a-fe8e-440d-afab-c817545b3144„§cell_idÙ$f362498a-fe8e-440d-afab-c817545b3144€codeÙJdisplay_msg_if_fail(check_type_isa(:response_2g,response_2g,Markdown.MD)) šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$5bcf3076-f31b-47e8-8297-8cf406ff71ab„§cell_idÙ$5bcf3076-f31b-47e8-8297-8cf406ff71ab€code±m_64bit = mean(y)šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$9ad35a1b-3cc1-475a-afd6-8f340a86cdd0„§cell_idÙ$9ad35a1b-3cc1-475a-afd6-8f340a86cdd0€codeÚ™md""" ## Using Packages The Julia language includes many powerful features. While many of the most commonly used functions and macros are available by default (such as `sqrt` above), other functions are only avaliable if you *import* a module. For the first part of this exercise, we'll be using the Dates, Random and Statistics modules. (The Dates, Random, and Statistics are part of Julia's standard library, a set of modules that are distributed with Julia.) To be able to access functions in a module, you execute `import MyModule` and then execute `MyModule.fn(x)` to call a function named `fn` with parameter `x`. Alternatively, `using MyModule` will import all the functions that the Module module has specified should be *exported* by default. Basically, this means you don't have to write `MyModule.` before every call to a function that `MyModule` intends for end users to call. Often, `using` is very convenient. For very common functions names (e.g., `mean`, `apply`) `using` risks creating confusion about which module is being reference. In these caeses `import` provides more control of exactly which functions are loaded into the current namespace. """šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedĂÙ$fe4601cb-0cc3-4ac1-ae18-aa5fc7c35bb5„§cell_idÙ$fe4601cb-0cc3-4ac1-ae18-aa5fc7c35bb5€code”response_1c = missingšmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$5f84a3cc-dab6-4ad0-9644-7ea803f43475„§cell_idÙ$5f84a3cc-dab6-4ad0-9644-7ea803f43475€codeÙJdisplay_msg_if_fail(check_type_isa(:response_1b,response_1b,Markdown.MD)) šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_foldedÂÙ$ba1bac88-5b7d-4b21-991e-948fb00fc2bb„§cell_idÙ$ba1bac88-5b7d-4b21-991e-948fb00fc2bb€code­num_obs = 100šmetadataƒ©show_logsĂšdisabledÂźskip_as_script«code_folded«notebook_idÙ$ffb28f94-8543-11f0-120d-b33132eb5b69«in_temp_diršmetadata€