From cad043513a64ab916fd49ce005105e3c715aed95 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Mon, 21 Oct 2024 22:47:54 +0000 Subject: [PATCH] build based on 703684d --- dev/.documenter-siteinfo.json | 2 +- dev/90-contributing/index.html | 2 +- dev/91-developer/index.html | 2 +- dev/api/index.html | 2 +- dev/index.html | 2 +- dev/objects.inv | Bin 1042 -> 1037 bytes dev/search_index.js | 2 +- dev/tutorial/index.html | 2 +- 8 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index acfb63e..5ab913e 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.11.1","generation_timestamp":"2024-10-21T19:50:46","documenter_version":"1.7.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.11.1","generation_timestamp":"2024-10-21T22:47:50","documenter_version":"1.7.0"}} \ No newline at end of file diff --git a/dev/90-contributing/index.html b/dev/90-contributing/index.html index a75279e..7de830c 100644 --- a/dev/90-contributing/index.html +++ b/dev/90-contributing/index.html @@ -1,2 +1,2 @@ -Contributor's guide · DedekindCutArithmetic.jl

Contributor's guide

First of all, huge thanks for your interest in the package! ✨

This page has some tips and guidelines on how to contribute.

We welcome all kinds of contribution, including, but not limited to code, documentation, examples, bug reports, feature requests etc.

All interactions should folow the Code of Conduct. In a nutshell, be polite and respectful.

Tip

Feel free to ping us after a few days if there are no responses.

Discussions

If you need help using DedekindCutArithmetic.jl, you can use the helpdesk category to ask for help. This is preferable over issues, which are meant for bugs and feature requests, because discussions do not get closed once fixed and remain browsable for others.

There is also a show and tell category to share with the world your work using DedekindCutArithmetic.jl. If your work involves a new application of DedekindCutArithmetic.jl and you also want it featured in the Applications section in the documentation, let us know (in the element chat or in an issue). You will get help with the workflow and setup, but you are expected to do the writing 😃 .

Opening issues

If you think you found a bug, feel free to open an issue. Issues to suggest new features are welcome too.

Opening pull requests

We follow the ColPrac guide for collaborative practices. New contributors should make sure to read that guide before opening their first pull request.

If you found an issue that interests you, comment on that issue what your plans are. If the solution to the issue is clear, you can immediately create a pull request. Otherwise, say what yourfollow proposed solution is and wait for a discussion around it.

For small changes (typos, trivial bug fixes) it is ok to open a PR directly even without an associated issue. For non-trivial changes, please open an issue first.

More technical details and tips on how work with git, run tests, build documentation etc. can be found in the developer's guide.

+Contributor's guide · DedekindCutArithmetic.jl

Contributor's guide

First of all, huge thanks for your interest in the package! ✨

This page has some tips and guidelines on how to contribute.

We welcome all kinds of contribution, including, but not limited to code, documentation, examples, bug reports, feature requests etc.

All interactions should folow the Code of Conduct. In a nutshell, be polite and respectful.

Tip

Feel free to ping us after a few days if there are no responses.

Discussions

If you need help using DedekindCutArithmetic.jl, you can use the helpdesk category to ask for help. This is preferable over issues, which are meant for bugs and feature requests, because discussions do not get closed once fixed and remain browsable for others.

There is also a show and tell category to share with the world your work using DedekindCutArithmetic.jl. If your work involves a new application of DedekindCutArithmetic.jl and you also want it featured in the Applications section in the documentation, let us know (in the element chat or in an issue). You will get help with the workflow and setup, but you are expected to do the writing 😃 .

Opening issues

If you think you found a bug, feel free to open an issue. Issues to suggest new features are welcome too.

Opening pull requests

We follow the ColPrac guide for collaborative practices. New contributors should make sure to read that guide before opening their first pull request.

If you found an issue that interests you, comment on that issue what your plans are. If the solution to the issue is clear, you can immediately create a pull request. Otherwise, say what yourfollow proposed solution is and wait for a discussion around it.

For small changes (typos, trivial bug fixes) it is ok to open a PR directly even without an associated issue. For non-trivial changes, please open an issue first.

More technical details and tips on how work with git, run tests, build documentation etc. can be found in the developer's guide.

diff --git a/dev/91-developer/index.html b/dev/91-developer/index.html index 32b1434..257be1c 100644 --- a/dev/91-developer/index.html +++ b/dev/91-developer/index.html @@ -7,4 +7,4 @@ pkg> test

Working on a new issue

We try to keep a linear history in this repo, so it is important to keep your branches up-to-date.

  1. Fetch from the remote and fast-forward your local main

    git fetch upstream
     git switch main
     git merge --ff-only upstream/main
  2. Branch from main to address the issue (see below for naming)

    git switch -c 42-add-answer-universe
  3. Push the new local branch to your personal remote repository

    git push -u origin 42-add-answer-universe
  4. Create a pull request to merge your remote branch into the org main.

Branch naming

Commit message

Before creating a pull request

Atomic git commits

Try to create "atomic git commits" (recommended reading: The Utopic Git History).

Building and viewing the documentation locally

To build the documentation locally, simply run

julia docs/liveserver.jl

This will build the documentation and open a preview in your browser. Whenever you make some changes in the documentation files, the preview will also update live.

Making a new release

To create a new release, you can follow these simple steps:

After that, you only need to wait and verify:

+git rebase upstream/main BRANCH_NAME
  • Then you can open a pull request and work with the reviewer to address any issues.

  • Building and viewing the documentation locally

    To build the documentation locally, simply run

    julia docs/liveserver.jl

    This will build the documentation and open a preview in your browser. Whenever you make some changes in the documentation files, the preview will also update live.

    Making a new release

    To create a new release, you can follow these simple steps:

    After that, you only need to wait and verify:

    diff --git a/dev/api/index.html b/dev/api/index.html index 4429622..f1d3095 100644 --- a/dev/api/index.html +++ b/dev/api/index.html @@ -1,2 +1,2 @@ -API · DedekindCutArithmetic.jl

    Reference

    Contents

    Index

    DedekindCutArithmetic.DedekindCutType

    Representation of a real number $x$ as a dedekind cut.

    Fields

    • low : function approximating the number from below. Evaluates to true for every number $< x$.
    • high : function approximating the number from above. Evaluates to true for every number $> x$.
    • mpa : Cached most precise approximation computed so far. This is a dyadic interval bound $x$ which is updated every time the cut is refined to a higher precision.
    source
    DedekindCutArithmetic.DyadicIntervalType

    Represents an interval with lower and uppper bound expressed as dyadic numbers. Note this is a generalized interval, that is, the lower bound can be greater than the upper bound.

    source
    DedekindCutArithmetic.RationalCauchyCutType

    This represents a dyadic interval [(m-1)/2^e, (m+1)/2^e] approximating a non-dyadic rational number.

    This is a special-case of Dedekind cut representing a rational number for which we do not need iterative refinement

    source
    DedekindCutArithmetic.make_precMethod

    Given precision p and interval i, compute a precision which is better thanpand is suitable for working with intervals of widthi`.

    Taken from: https://github.com/andrejbauer/marshall/blob/c9f1f6466e879e8db11a12b9bc030e62b07d8bd2/src/eval.ml#L22-L26

    source
    DedekindCutArithmetic.refine!Method

    Refine the given cut to give an approximation with precision bits of accuracy. If the required accuracy cannot be achieved within max_iter iterations, return the current estimate with a warning.

    source
    DedekindCutArithmetic.@cutMacro

    Macro to construct a DedekindCut.

    A cut is defined using the following syntax

    @cut x ∈ [a, b], low, high

    This defines a real number $x$ in the interval $[a, b]$ which is approximated by the inequality $φ(x)$ from below and $ψ(x)$ from above.

    $φ$ and $ψ$ can be any julia expression, also referring to variables in the scope where the macro is called.

    Similarly, $a$ and $b$ can also be julia expressions, but they cannot depend on $x$.

    source
    +API · DedekindCutArithmetic.jl

    Reference

    Index

    DedekindCutArithmetic.DedekindCutType

    Representation of a real number $x$ as a dedekind cut.

    Fields

    • low : function approximating the number from below. Evaluates to true for every number $< x$.
    • high : function approximating the number from above. Evaluates to true for every number $> x$.
    • mpa : Cached most precise approximation computed so far. This is a dyadic interval bound $x$ which is updated every time the cut is refined to a higher precision.
    source
    DedekindCutArithmetic.DyadicIntervalType

    Represents an interval with lower and uppper bound expressed as dyadic numbers. Note this is a generalized interval, that is, the lower bound can be greater than the upper bound.

    source
    DedekindCutArithmetic.RationalCauchyCutType

    This represents a dyadic interval [(m-1)/2^e, (m+1)/2^e] approximating a non-dyadic rational number.

    This is a special-case of Dedekind cut representing a rational number for which we do not need iterative refinement

    source
    DedekindCutArithmetic.make_precMethod

    Given precision p and interval i, compute a precision which is better thanpand is suitable for working with intervals of widthi`.

    Taken from: https://github.com/andrejbauer/marshall/blob/c9f1f6466e879e8db11a12b9bc030e62b07d8bd2/src/eval.ml#L22-L26

    source
    DedekindCutArithmetic.refine!Method

    Refine the given cut to give an approximation with precision bits of accuracy. If the required accuracy cannot be achieved within max_iter iterations, return the current estimate with a warning.

    source
    DedekindCutArithmetic.@cutMacro

    Macro to construct a DedekindCut.

    A cut is defined using the following syntax

    @cut x ∈ [a, b], low, high

    This defines a real number $x$ in the interval $[a, b]$ which is approximated by the inequality $φ(x)$ from below and $ψ(x)$ from above.

    $φ$ and $ψ$ can be any julia expression, also referring to variables in the scope where the macro is called.

    Similarly, $a$ and $b$ can also be julia expressions, but they cannot depend on $x$.

    source
    diff --git a/dev/index.html b/dev/index.html index 2cf6252..6ca9478 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,2 @@ -Home · DedekindCutArithmetic.jl
    +Home · DedekindCutArithmetic.jl
    diff --git a/dev/objects.inv b/dev/objects.inv index 2b286ac0a82c0397cfe24618b4e4dff3ed33efe3..b0aa73bd013b1d002e6977d316833f46276c8b19 100644 GIT binary patch delta 892 zcmV-?1B3jM2#pAkjelKl+cp$^=dWO~8hweHj}}YPr^fb*1?aFM$gszNCU0Xd6seI^ z9AhX@U@!fh`z5;)Wks?biB9Ab&?M45!I4rN5dKh|j&TlBwpG z)w@G_UHu{~lT8bJJfs(2F3I^(!j1M;&T=pHZPRA$(;=O#o_~yeYB9(&r*l@wSP!3s+9S<7*7&a7>XGBh#^zycEgzL+_08TSDZA2B>gEaz6q2lP{}dC`#3;+t%n@=qqClcN=9 zS1{PnQp2lC)m3>Yn3}Mh&zEQ!Ehq4dPL69u8(cxg7{~2fmnj^2k;Pj_>{Kje7Ars9 z#jL&-O&lF`Oh|bAOHLDZx!T)UVjGlj9b$!e)Rrm^vlWU>}+)Qu8son zUGo0W%r5a7%8Zj9b`oi^V!7L2Et>p;l|#B2<97>Y#mgqmI?qlmoLR`M;dtxczym&% zyTy9FBSduY^jAJ*cW{FsUO7hLKfgbq&&OnZ3kqp3Eg+Aw{E>mqI) zLu6eAO|}1=x#ESqzAJKvw^NA|%4w<{DsL(M%{#j@R}C?3?|6Vq0+ zTXModA0(N0`+a}W?ROMA1N~fDv3-GyPFj;=r(0lSo!VhP;JJTRhH6}YZWdDbJsy+r S0~QR_M`IbY!~GBaYs1XM)4I$6 delta 915 zcmV;E18n?_2$BepjelEj+cp$_=da+<8heSF%ZeuLQ)7F<0&G|jr08S7kS8%0iquFd zjxiJ{u$TVM{gNGtvMTu^(TV(KN$30cohy%}7Vt!!7axS-G&!d9H!2 zcSx_RUxa0{X@QT2^!(E$d4H5}qrH{4xtIFBX|wX_kWQ9Q#()0o=zT5)koU)lfJaa! z1KR>O-XGFwZGxZk6trhv8coJiRXT|>oPQ~`=y9v!DzjH{QRHfuA+5N` zHCA+Qs1jn~4lHO68{>Yp{91>x*=+IAY_^#rUyLnV06h;~PzJkOX@#NaVd#SrL)HdS zmzqt(Xk*vDnJ$=+{0eYJ{-r+nMFzA{i(4=o`yb({5xI&W5IIxHb)G5sC!BwY9bq4t z`dYGppMM##Wa(oVosQcaqtofugU@fBw~YIMi1!$tB&Ktt05y8M&L z=;Ub0+2srtwAAoZrRu6|3Z^D3=d%S`M#~92qm$!W(Hd8fF~({9#$^g;Vr24G5j!PI znfdaZ?qpV9iz1G8x+X6qMbpRB7QT%ytdIYF|9`h~@?0;1dd98k7C(A>H2U>qbapm6 z`=#~*@m=yhYi1XCOJ&AM4?Bspn6cdLFBeVz!O|h!E#nV!X2r`U%_`4MC7fBvtl_v6 z+`tn)l&i;Tz9U3*@bqUsWe;$JAYL7e!r#3;pwEoQ3L73@@`bS#ADQ;>+DB2XO|@a_ z3V*jr+&YH33Yu&$xC&A!GJ`Ac{=(TlVX$b<)@%H=nqTBB%b_V*Hv|{rD7ag=F$4R@44j|6k%k(&4NgVx4Hw> # Press ]\npkg> activate\npkg> add JuliaFormatter","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"To install pre-commit, we recommend using pipx as follows:","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"# Install pipx following the link\npipx install pre-commit","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"With pre-commit installed, activate it as a pre-commit hook:","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"pre-commit install","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"To run the linting and formatting manually, enter the command below:","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"pre-commit run -a","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"Now, you can only commit if all the pre-commit tests pass.","category":"page"},{"location":"91-developer/#Testing","page":"Developer documentation","title":"Testing","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"As with most Julia packages, you can just open Julia in the repository folder, activate the environment, and run test:","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"julia> # press ]\npkg> activate .\npkg> test","category":"page"},{"location":"91-developer/#Working-on-a-new-issue","page":"Developer documentation","title":"Working on a new issue","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"We try to keep a linear history in this repo, so it is important to keep your branches up-to-date.","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"Fetch from the remote and fast-forward your local main\ngit fetch upstream\ngit switch main\ngit merge --ff-only upstream/main\nBranch from main to address the issue (see below for naming)\ngit switch -c 42-add-answer-universe\nPush the new local branch to your personal remote repository\ngit push -u origin 42-add-answer-universe\nCreate a pull request to merge your remote branch into the org main.","category":"page"},{"location":"91-developer/#Branch-naming","page":"Developer documentation","title":"Branch naming","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"If there is an associated issue, add the issue number.\nIf there is no associated issue, and the changes are small, add a prefix such as \"typo\", \"hotfix\", \"small-refactor\", according to the type of update.\nIf the changes are not small and there is no associated issue, then create the issue first, so we can properly discuss the changes.\nUse dash separated imperative wording related to the issue (e.g., 14-add-tests, 15-fix-model, 16-remove-obsolete-files).","category":"page"},{"location":"91-developer/#Commit-message","page":"Developer documentation","title":"Commit message","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"Use imperative or present tense, for instance: Add feature or Fix bug.\nHave informative titles.\nWhen necessary, add a body with details.\nIf there are breaking changes, add the information to the commit message.","category":"page"},{"location":"91-developer/#Before-creating-a-pull-request","page":"Developer documentation","title":"Before creating a pull request","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"tip: Atomic git commits\nTry to create \"atomic git commits\" (recommended reading: The Utopic Git History).","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"Make sure the tests pass.\nMake sure the pre-commit tests pass.\nFetch any main updates from upstream and rebase your branch, if necessary:\ngit fetch upstream\ngit rebase upstream/main BRANCH_NAME\nThen you can open a pull request and work with the reviewer to address any issues.","category":"page"},{"location":"91-developer/#Building-and-viewing-the-documentation-locally","page":"Developer documentation","title":"Building and viewing the documentation locally","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"To build the documentation locally, simply run","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"julia docs/liveserver.jl","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"This will build the documentation and open a preview in your browser. Whenever you make some changes in the documentation files, the preview will also update live.","category":"page"},{"location":"91-developer/#Making-a-new-release","page":"Developer documentation","title":"Making a new release","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"To create a new release, you can follow these simple steps:","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"Create a branch release-x.y.z\nUpdate version in Project.toml\nUpdate the CHANGELOG.md:\nRename the section \"Unreleased\" to \"[x.y.z] - yyyy-mm-dd\" (i.e., version under brackets, dash, and date in ISO format)\nAdd a new section on top of it named \"Unreleased\"\nAdd a new link in the bottom for version \"x.y.z\"\nChange the \"[unreleased]\" link to use the latest version - end of line, vx.y.z ... HEAD.\nCreate a commit \"Release vx.y.z\", push, create a PR, wait for it to pass, merge the PR.\nGo back to main screen and click on the latest commit (link: https://github.com/lucaferranti/DedekindCutArithmetic.jl/commit/main)\nAt the bottom, write @JuliaRegistrator register","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"After that, you only need to wait and verify:","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"Wait for the bot to comment (should take < 1m) with a link to a PR to the registry\nFollow the link and wait for a comment on the auto-merge\nThe comment should said all is well and auto-merge should occur shortly\nAfter the merge happens, TagBot will trigger and create a new GitHub tag. Check on https://github.com/lucaferranti/DedekindCutArithmetic.jl/releases\nAfter the release is create, a \"docs\" GitHub action will start for the tag.\nAfter it passes, a deploy action will run.\nAfter that runs, the stable docs should be updated. Check them and look for the version number.","category":"page"},{"location":"90-contributing/#contributing","page":"Contributor's guide","title":"Contributor's guide","text":"","category":"section"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"First of all, huge thanks for your interest in the package! ✨","category":"page"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"This page has some tips and guidelines on how to contribute.","category":"page"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"We welcome all kinds of contribution, including, but not limited to code, documentation, examples, bug reports, feature requests etc.","category":"page"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"All interactions should folow the Code of Conduct. In a nutshell, be polite and respectful.","category":"page"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"tip: Tip\nFeel free to ping us after a few days if there are no responses.","category":"page"},{"location":"90-contributing/#Discussions","page":"Contributor's guide","title":"Discussions","text":"","category":"section"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"If you need help using DedekindCutArithmetic.jl, you can use the helpdesk category to ask for help. This is preferable over issues, which are meant for bugs and feature requests, because discussions do not get closed once fixed and remain browsable for others.","category":"page"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"There is also a show and tell category to share with the world your work using DedekindCutArithmetic.jl. If your work involves a new application of DedekindCutArithmetic.jl and you also want it featured in the Applications section in the documentation, let us know (in the element chat or in an issue). You will get help with the workflow and setup, but you are expected to do the writing 😃 .","category":"page"},{"location":"90-contributing/#Opening-issues","page":"Contributor's guide","title":"Opening issues","text":"","category":"section"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"If you think you found a bug, feel free to open an issue. Issues to suggest new features are welcome too.","category":"page"},{"location":"90-contributing/#Opening-pull-requests","page":"Contributor's guide","title":"Opening pull requests","text":"","category":"section"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"We follow the ColPrac guide for collaborative practices. New contributors should make sure to read that guide before opening their first pull request.","category":"page"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"If you found an issue that interests you, comment on that issue what your plans are. If the solution to the issue is clear, you can immediately create a pull request. Otherwise, say what yourfollow proposed solution is and wait for a discussion around it.","category":"page"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"For small changes (typos, trivial bug fixes) it is ok to open a PR directly even without an associated issue. For non-trivial changes, please open an issue first.","category":"page"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"More technical details and tips on how work with git, run tests, build documentation etc. can be found in the developer's guide.","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = DedekindCutArithmetic","category":"page"},{"location":"#DedekindCutArithmetic","page":"Home","title":"DedekindCutArithmetic","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Documentation for DedekindCutArithmetic.","category":"page"}] +[{"location":"api/#reference","page":"API","title":"Reference","text":"","category":"section"},{"location":"api/#Index","page":"API","title":"Index","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Pages = [\"api.md\"]","category":"page"},{"location":"api/","page":"API","title":"API","text":"Modules = [DedekindCutArithmetic]","category":"page"},{"location":"api/#DedekindCutArithmetic.DedekindCutArithmetic","page":"API","title":"DedekindCutArithmetic.DedekindCutArithmetic","text":"DedekindCutArithmetic\n\nJulia library implementing exact real arithmetic using Dedekind cuts and abstract stone duality.\n\n\n\n\n\n","category":"module"},{"location":"api/#DedekindCutArithmetic.AbstractCut","page":"API","title":"DedekindCutArithmetic.AbstractCut","text":"Abstract type for a generic cut.\n\n\n\n\n\n","category":"type"},{"location":"api/#DedekindCutArithmetic.AbstractDedekindReal","page":"API","title":"DedekindCutArithmetic.AbstractDedekindReal","text":"Abstract type representing a generic real number.\n\n\n\n\n\n","category":"type"},{"location":"api/#DedekindCutArithmetic.AbstractDyadic","page":"API","title":"DedekindCutArithmetic.AbstractDyadic","text":"Represents a dyadic number or a dyadic interval.\n\n\n\n\n\n","category":"type"},{"location":"api/#DedekindCutArithmetic.BinaryCompositeCut","page":"API","title":"DedekindCutArithmetic.BinaryCompositeCut","text":"Composite cut lazily representing the result of applying an arithmetic binary operation f to child1 and child2.\n\n\n\n\n\n","category":"type"},{"location":"api/#DedekindCutArithmetic.DedekindCut","page":"API","title":"DedekindCutArithmetic.DedekindCut","text":"Representation of a real number x as a dedekind cut.\n\nFields\n\nlow : function approximating the number from below. Evaluates to true for every number x.\nhigh : function approximating the number from above. Evaluates to true for every number x.\nmpa : Cached most precise approximation computed so far. This is a dyadic interval bound x which is updated every time the cut is refined to a higher precision.\n\n\n\n\n\n","category":"type"},{"location":"api/#DedekindCutArithmetic.DyadicInterval","page":"API","title":"DedekindCutArithmetic.DyadicInterval","text":"Represents an interval with lower and uppper bound expressed as dyadic numbers. Note this is a generalized interval, that is, the lower bound can be greater than the upper bound.\n\n\n\n\n\n","category":"type"},{"location":"api/#DedekindCutArithmetic.DyadicReal","page":"API","title":"DedekindCutArithmetic.DyadicReal","text":"Represents a dyadic number in the form fracm2^-e, with d ℤ and e ℕ.\n\n\n\n\n\n","category":"type"},{"location":"api/#DedekindCutArithmetic.RationalCauchyCut","page":"API","title":"DedekindCutArithmetic.RationalCauchyCut","text":"This represents a dyadic interval [(m-1)/2^e, (m+1)/2^e] approximating a non-dyadic rational number.\n\nThis is a special-case of Dedekind cut representing a rational number for which we do not need iterative refinement\n\n\n\n\n\n","category":"type"},{"location":"api/#DedekindCutArithmetic.UnaryCompositeCut","page":"API","title":"DedekindCutArithmetic.UnaryCompositeCut","text":"Composite cut lazily representing the result of applying an arithmetic unary operation f to child.\n\n\n\n\n\n","category":"type"},{"location":"api/#Base.split-Tuple{DyadicInterval}","page":"API","title":"Base.split","text":"Split the interval in two halves.\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.dual-Tuple{DyadicInterval}","page":"API","title":"DedekindCutArithmetic.dual","text":"Given the interval a b, return its dual b a.\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.exists-Tuple{DyadicInterval, Function}","page":"API","title":"DedekindCutArithmetic.exists","text":"Check whether x dom prop(x)\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.forall-Tuple{DyadicInterval, Function}","page":"API","title":"DedekindCutArithmetic.forall","text":"Check whether x dom prop(x)\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.high-Tuple{DedekindCutArithmetic.AbstractDedekindReal}","page":"API","title":"DedekindCutArithmetic.high","text":"Lower bound of the real number approximated by the cut\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.isbackward-Tuple{DyadicInterval}","page":"API","title":"DedekindCutArithmetic.isbackward","text":"Returns true if the lower bound is strictly bigger than the upper bound.\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.isforward-Tuple{DyadicInterval}","page":"API","title":"DedekindCutArithmetic.isforward","text":"Returns true if the lower bound is smaller or equal of the upper bound.\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.low-Tuple{DedekindCutArithmetic.AbstractDedekindReal}","page":"API","title":"DedekindCutArithmetic.low","text":"Lower bound of the real number approximated by the cut\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.make_prec-Tuple{Int64, DyadicInterval}","page":"API","title":"DedekindCutArithmetic.make_prec","text":"Given precision p and interval i, compute a precision which is better thanpand is suitable for working with intervals of widthi`.\n\nTaken from: https://github.com/andrejbauer/marshall/blob/c9f1f6466e879e8db11a12b9bc030e62b07d8bd2/src/eval.ml#L22-L26\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.midpoint-Tuple{DedekindCutArithmetic.AbstractDedekindReal}","page":"API","title":"DedekindCutArithmetic.midpoint","text":"Midpoint of the current most precise approximation of the cut\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.overlaps-Tuple{DedekindCutArithmetic.AbstractDedekindReal, DedekindCutArithmetic.AbstractDedekindReal}","page":"API","title":"DedekindCutArithmetic.overlaps","text":"Whether or not two cuts are overlapping in the current precision\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.preprocess_expression-Tuple{Any}","page":"API","title":"DedekindCutArithmetic.preprocess_expression","text":"Transformations on the expression before being processed by @cut\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.radius-Tuple{DedekindCutArithmetic.AbstractDedekindReal}","page":"API","title":"DedekindCutArithmetic.radius","text":"Width of the current precise appoximation of t mosthe cut\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.refine!-Tuple{DedekindCutArithmetic.AbstractDedekindReal}","page":"API","title":"DedekindCutArithmetic.refine!","text":"Refine the given cut to give an approximation with precision bits of accuracy. If the required accuracy cannot be achieved within max_iter iterations, return the current estimate with a warning.\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.refine!-Tuple{RationalCauchyCut}","page":"API","title":"DedekindCutArithmetic.refine!","text":"Evaluate the Cauchy sequence representing a rational number with n bits of precision.\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.thirds-Tuple{DyadicInterval}","page":"API","title":"DedekindCutArithmetic.thirds","text":"Return two points that divide the interval in three parts with ratio 1/4, 1/2, 1/2\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.width-Tuple{DedekindCutArithmetic.AbstractDedekindReal}","page":"API","title":"DedekindCutArithmetic.width","text":"Width of the current precise appoximation of t mosthe cut\n\n\n\n\n\n","category":"method"},{"location":"api/#DedekindCutArithmetic.@cut-Tuple{Any}","page":"API","title":"DedekindCutArithmetic.@cut","text":"Macro to construct a DedekindCut.\n\nA cut is defined using the following syntax\n\n@cut x ∈ [a, b], low, high\n\nThis defines a real number x in the interval a b which is approximated by the inequality φ(x) from below and ψ(x) from above.\n\nφ and ψ can be any julia expression, also referring to variables in the scope where the macro is called.\n\nSimilarly, a and b can also be julia expressions, but they cannot depend on x.\n\n\n\n\n\n","category":"macro"},{"location":"api/#DedekindCutArithmetic.@∀-Tuple{Any}","page":"API","title":"DedekindCutArithmetic.@∀","text":"Check whether x dom prop(x)\n\n\n\n\n\n","category":"macro"},{"location":"api/#DedekindCutArithmetic.@∃-Tuple{Any}","page":"API","title":"DedekindCutArithmetic.@∃","text":"Check whether x dom prop(x)\n\n\n\n\n\n","category":"macro"},{"location":"91-developer/#dev_docs","page":"Developer documentation","title":"Developer documentation","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"note: Contributing guidelines\nIf you haven't, please read the Contributing guidelines first.","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"If you want to make contributions to this package that involves code, then this guide is for you.","category":"page"},{"location":"91-developer/#First-time-clone","page":"Developer documentation","title":"First time clone","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"tip: If you have writing rights\nIf you have writing rights, you don't have to fork. Instead, simply clone and skip ahead. Whenever upstream is mentioned, use origin instead.","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"If this is the first time you work with this repository, follow the instructions below to clone the repository.","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"Fork this repo\nClone your repo (this will create a git remote called origin)\nAdd this repo as a remote:\ngit remote add upstream https://github.com/lucaferranti/DedekindCutArithmetic.jl","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"This will ensure that you have two remotes in your git: origin and upstream. You will create branches and push to origin, and you will fetch and update your local main branch from upstream.","category":"page"},{"location":"91-developer/#Linting-and-formatting","page":"Developer documentation","title":"Linting and formatting","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"Install a plugin on your editor to use EditorConfig. This will ensure that your editor is configured with important formatting settings.","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"We use https://pre-commit.com to run the linters and formatters. In particular, the Julia code is formatted using JuliaFormatter.jl, so please install it globally first:","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"julia> # Press ]\npkg> activate\npkg> add JuliaFormatter","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"To install pre-commit, we recommend using pipx as follows:","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"# Install pipx following the link\npipx install pre-commit","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"With pre-commit installed, activate it as a pre-commit hook:","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"pre-commit install","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"To run the linting and formatting manually, enter the command below:","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"pre-commit run -a","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"Now, you can only commit if all the pre-commit tests pass.","category":"page"},{"location":"91-developer/#Testing","page":"Developer documentation","title":"Testing","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"As with most Julia packages, you can just open Julia in the repository folder, activate the environment, and run test:","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"julia> # press ]\npkg> activate .\npkg> test","category":"page"},{"location":"91-developer/#Working-on-a-new-issue","page":"Developer documentation","title":"Working on a new issue","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"We try to keep a linear history in this repo, so it is important to keep your branches up-to-date.","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"Fetch from the remote and fast-forward your local main\ngit fetch upstream\ngit switch main\ngit merge --ff-only upstream/main\nBranch from main to address the issue (see below for naming)\ngit switch -c 42-add-answer-universe\nPush the new local branch to your personal remote repository\ngit push -u origin 42-add-answer-universe\nCreate a pull request to merge your remote branch into the org main.","category":"page"},{"location":"91-developer/#Branch-naming","page":"Developer documentation","title":"Branch naming","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"If there is an associated issue, add the issue number.\nIf there is no associated issue, and the changes are small, add a prefix such as \"typo\", \"hotfix\", \"small-refactor\", according to the type of update.\nIf the changes are not small and there is no associated issue, then create the issue first, so we can properly discuss the changes.\nUse dash separated imperative wording related to the issue (e.g., 14-add-tests, 15-fix-model, 16-remove-obsolete-files).","category":"page"},{"location":"91-developer/#Commit-message","page":"Developer documentation","title":"Commit message","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"Use imperative or present tense, for instance: Add feature or Fix bug.\nHave informative titles.\nWhen necessary, add a body with details.\nIf there are breaking changes, add the information to the commit message.","category":"page"},{"location":"91-developer/#Before-creating-a-pull-request","page":"Developer documentation","title":"Before creating a pull request","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"tip: Atomic git commits\nTry to create \"atomic git commits\" (recommended reading: The Utopic Git History).","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"Make sure the tests pass.\nMake sure the pre-commit tests pass.\nFetch any main updates from upstream and rebase your branch, if necessary:\ngit fetch upstream\ngit rebase upstream/main BRANCH_NAME\nThen you can open a pull request and work with the reviewer to address any issues.","category":"page"},{"location":"91-developer/#Building-and-viewing-the-documentation-locally","page":"Developer documentation","title":"Building and viewing the documentation locally","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"To build the documentation locally, simply run","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"julia docs/liveserver.jl","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"This will build the documentation and open a preview in your browser. Whenever you make some changes in the documentation files, the preview will also update live.","category":"page"},{"location":"91-developer/#Making-a-new-release","page":"Developer documentation","title":"Making a new release","text":"","category":"section"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"To create a new release, you can follow these simple steps:","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"Create a branch release-x.y.z\nUpdate version in Project.toml\nUpdate the CHANGELOG.md:\nRename the section \"Unreleased\" to \"[x.y.z] - yyyy-mm-dd\" (i.e., version under brackets, dash, and date in ISO format)\nAdd a new section on top of it named \"Unreleased\"\nAdd a new link in the bottom for version \"x.y.z\"\nChange the \"[unreleased]\" link to use the latest version - end of line, vx.y.z ... HEAD.\nCreate a commit \"Release vx.y.z\", push, create a PR, wait for it to pass, merge the PR.\nGo back to main screen and click on the latest commit (link: https://github.com/lucaferranti/DedekindCutArithmetic.jl/commit/main)\nAt the bottom, write @JuliaRegistrator register","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"After that, you only need to wait and verify:","category":"page"},{"location":"91-developer/","page":"Developer documentation","title":"Developer documentation","text":"Wait for the bot to comment (should take < 1m) with a link to a PR to the registry\nFollow the link and wait for a comment on the auto-merge\nThe comment should said all is well and auto-merge should occur shortly\nAfter the merge happens, TagBot will trigger and create a new GitHub tag. Check on https://github.com/lucaferranti/DedekindCutArithmetic.jl/releases\nAfter the release is create, a \"docs\" GitHub action will start for the tag.\nAfter it passes, a deploy action will run.\nAfter that runs, the stable docs should be updated. Check them and look for the version number.","category":"page"},{"location":"90-contributing/#contributing","page":"Contributor's guide","title":"Contributor's guide","text":"","category":"section"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"First of all, huge thanks for your interest in the package! ✨","category":"page"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"This page has some tips and guidelines on how to contribute.","category":"page"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"We welcome all kinds of contribution, including, but not limited to code, documentation, examples, bug reports, feature requests etc.","category":"page"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"All interactions should folow the Code of Conduct. In a nutshell, be polite and respectful.","category":"page"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"tip: Tip\nFeel free to ping us after a few days if there are no responses.","category":"page"},{"location":"90-contributing/#Discussions","page":"Contributor's guide","title":"Discussions","text":"","category":"section"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"If you need help using DedekindCutArithmetic.jl, you can use the helpdesk category to ask for help. This is preferable over issues, which are meant for bugs and feature requests, because discussions do not get closed once fixed and remain browsable for others.","category":"page"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"There is also a show and tell category to share with the world your work using DedekindCutArithmetic.jl. If your work involves a new application of DedekindCutArithmetic.jl and you also want it featured in the Applications section in the documentation, let us know (in the element chat or in an issue). You will get help with the workflow and setup, but you are expected to do the writing 😃 .","category":"page"},{"location":"90-contributing/#Opening-issues","page":"Contributor's guide","title":"Opening issues","text":"","category":"section"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"If you think you found a bug, feel free to open an issue. Issues to suggest new features are welcome too.","category":"page"},{"location":"90-contributing/#Opening-pull-requests","page":"Contributor's guide","title":"Opening pull requests","text":"","category":"section"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"We follow the ColPrac guide for collaborative practices. New contributors should make sure to read that guide before opening their first pull request.","category":"page"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"If you found an issue that interests you, comment on that issue what your plans are. If the solution to the issue is clear, you can immediately create a pull request. Otherwise, say what yourfollow proposed solution is and wait for a discussion around it.","category":"page"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"For small changes (typos, trivial bug fixes) it is ok to open a PR directly even without an associated issue. For non-trivial changes, please open an issue first.","category":"page"},{"location":"90-contributing/","page":"Contributor's guide","title":"Contributor's guide","text":"More technical details and tips on how work with git, run tests, build documentation etc. can be found in the developer's guide.","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = DedekindCutArithmetic","category":"page"},{"location":"#DedekindCutArithmetic","page":"Home","title":"DedekindCutArithmetic","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Documentation for DedekindCutArithmetic.","category":"page"}] } diff --git a/dev/tutorial/index.html b/dev/tutorial/index.html index a49e72c..9ba623f 100644 --- a/dev/tutorial/index.html +++ b/dev/tutorial/index.html @@ -1,2 +1,2 @@ -Tutorial · DedekindCutArithmetic.jl
    +Tutorial · DedekindCutArithmetic.jl