Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
8168fdd
docstrings and comments
mmatera Jan 20, 2022
b540779
more annotations
mmatera Jan 20, 2022
8f759d4
more comments
mmatera Jan 20, 2022
d13f5eb
more details
mmatera Jan 22, 2022
15076d3
docstrings and comments
mmatera Jan 20, 2022
52cf1dc
more annotations
mmatera Jan 20, 2022
e5623e5
more comments
mmatera Jan 20, 2022
fd0f4a5
more details
mmatera Jan 22, 2022
27ffa7a
Merge remote-tracking branch 'origin/master' into commented-evaluatio…
mmatera Jan 23, 2022
5ffcf65
Merge remote-tracking branch 'origin/master' into commented-evaluatio…
mmatera Jan 23, 2022
b421cf2
Merge remote-tracking branch 'origin/commented-evaluation-process' in…
mmatera Jan 23, 2022
2b00669
merge
mmatera Jan 24, 2022
1ef583f
docstrings and comments
mmatera Jan 20, 2022
362b6fd
more annotations
mmatera Jan 20, 2022
3d1d40d
more comments
mmatera Jan 20, 2022
a84d50d
more details
mmatera Jan 22, 2022
544f61c
Merge remote-tracking branch 'origin/master' into commented-evaluatio…
mmatera Jan 25, 2022
ea28027
Merge remote-tracking branch 'origin/commented-evaluation-process' in…
mmatera Jan 25, 2022
8e1c44f
more comments about evaluate_next
mmatera Jan 25, 2022
9b5e090
adding some tests for apply_N
mmatera Feb 1, 2022
19a0202
* `apply_N`-> `eval_N` and `apply_nvalues` -> `apply_N`
mmatera Feb 1, 2022
9e35db9
merge
mmatera Feb 4, 2022
7aea55e
more verbose comments for apply_N
mmatera Feb 4, 2022
6d1fbbe
improving SameQ, numerify and the corresponding documentation. improv…
mmatera Feb 4, 2022
c4fe552
Administrivia: Add builtin.atomic
rocky Feb 7, 2022
39a9b62
Another module listed in setup.py
rocky Feb 7, 2022
aed5ded
Improving NumericQ (#149)
mmatera Feb 7, 2022
117a2fe
First step in evaluation refactor...
rocky Feb 12, 2022
862b582
Tweak docstrings
rocky Feb 13, 2022
3bc39f9
Merge pull request #155 from Mathics3/rewrite-eval-apply-refactor
rocky Feb 13, 2022
299f9c4
Start encorporating "glossary" terms as docstring
rocky Feb 13, 2022
725c850
Round 2 incorporating glossary.rst into docstrings
rocky Feb 13, 2022
4de63ae
Small tweaks in working and format
rocky Feb 14, 2022
e897cf1
Merge pull request #156 from Mathics3/add-some-important-class-docstr…
rocky Feb 14, 2022
77098ef
Start converting leaves -> elements
rocky Feb 20, 2022
51c71a5
leaf -> element replacement
rocky Feb 20, 2022
3e8f427
More leaf/leaves -> element(s)
rocky Feb 20, 2022
71af8dc
More leaf/leaves -> element(s) conversion
rocky Feb 20, 2022
123519e
Another round of leave->elements conversion
rocky Feb 20, 2022
b56ff6e
Merge branch 'master' into commented-evaluation-process
rocky Feb 20, 2022
3ca34e6
Keep get_leaves() compatibility for now.
rocky Feb 20, 2022
84c011a
Merge pull request #157 from Mathics3/leaves-to-elements
rocky Feb 20, 2022
7eeada5
Merge branch 'master' into commented-evaluation-process
rocky Feb 20, 2022
57ab474
fixup: Format Python code with Black
rocky Feb 20, 2022
13cbb87
merge hell
rocky Feb 20, 2022
b38c27f
sanity test to pass in a more aggressive sympy translation
mmatera Feb 20, 2022
8feea93
Fix153 (#158)
mmatera Feb 20, 2022
a7cc6d3
Merge pull request #124 from Mathics3/commented-evaluation-process
rocky Feb 20, 2022
6aa397c
fix test
mmatera Feb 20, 2022
dceb97a
merge
mmatera Feb 20, 2022
81754ce
rebase
mmatera Feb 20, 2022
d4f1559
small remaining fix
mmatera Feb 20, 2022
ff69059
Merge pull request #160 from Mathics3/rebase-PR90
rocky Feb 20, 2022
feb2cfa
Merge pull request #159 from Mathics3/test_for_sympy_translation
rocky Feb 20, 2022
258efa0
{leaf,leaves}->element{s}, part 2
rocky Feb 20, 2022
6872983
leaf_{count{,s},index} -> element_*
rocky Feb 21, 2022
649e5bb
Pytest evaluators2 (#150)
mmatera Feb 21, 2022
2cc0376
Merge branch 'master' into leaves-element-rename-part2
mmatera Feb 21, 2022
04316bd
Merge pull request #161 from Mathics3/leaves-element-rename-part2
rocky Feb 21, 2022
4f58d68
Create CODE_OF_CONDUCT.md
rocky Feb 21, 2022
399befa
Mostly better code documentation...
rocky Feb 21, 2022
c439134
Revise an evaluation comment.
rocky Feb 21, 2022
34bddc1
Merge pull request #163 from Mathics3/add-code-of-conduct-1
rocky Feb 21, 2022
036bcc9
Note mmatera's observation ...
rocky Feb 21, 2022
33385f7
timing TraceEvaluation
mmatera Feb 21, 2022
ca0a9d0
Fold in a few of mmatera's comments in another PR
rocky Feb 21, 2022
05965aa
Merge pull request #164 from Mathics3/documentation-tweaks
rocky Feb 21, 2022
acd16ac
Adding the option System`ShowTimeBySteps for TraceEvaluation
mmatera Feb 21, 2022
f754b46
leaf -> element more places
rocky Feb 21, 2022
400009a
Merge pull request #168 from Mathics3/leaves-to-elements-part3
rocky Feb 22, 2022
cde3850
Merge pull request #166 from Mathics3/time-in-TraceEvaluation
rocky Feb 22, 2022
6c71426
Small compresssions/corrections to CHANGES.rst
rocky Feb 22, 2022
29155b8
partial merge
mmatera Feb 22, 2022
ec07af2
merge
mmatera Feb 22, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 12 additions & 6 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,23 @@ Documentation
New Builtins
============
* Support for ``SeriesData`` operations was improved.
* ``TraceEvaluation[]`` shows expression name calls and return values of it argument. The variable ``$TraceEvalution`` when set True will show all expression evaluations.
* ``TraceEvaluation[]`` shows expression name calls and return values of it argument.
Pass option ``ShowTimeBySteps``, to show accumulated time before each setp
The variable ``$TraceEvalution`` when set True will show all expression evaluations.
* ``FindRoot`` was improved for supporting numerical derivatives (issue 67), as well as the use of scipy libraries when are available.
* ``FindRoot`` (for the ``newton`` method) partially supports ``EvaluationMonitor`` and ``StepMonitor`` options.
* ``FindMinimum`` and ``FindMaximum`` now have a minimal implementation for 1D problems and the use of scipy libraries when are available.
* ``$Echo`` (Issue #42).
* Now, ``D`` can act over ``Integrate`` and ``NIntegrate`` (fix issue #130).

* ``NumericFunction``

Internals
=========
* ``Definition`` has a new property ``is_numeric``.
* ``Symbol.is_numeric`` and ``Expression.is_numeric`` now uses the attribute ``Definition.is_numeric`` to determine the returned value.
* ``NIntegrate`` internal algorithms and interfaces to ``scipy`` were moved to ``mathics.algorithm.integrators`` and ``mathics.builtin.scipy_utils.integrators`` respectively.
* To speed up attributes read, and RAM usage, attributes are now stored in a bitset instead of a tuple of strings.
* Definitions for symbols ``CurrentContext`` and ``ContextPath[]`` are mirrored in the ``mathics.core.definitions.Definitions`` object for faster access.
* To speed up attributes read, and RAM usage, attributes are now stored in a bitset instead of a tuple of strings.
* To speed up the lookup of symbols names, `Definitions` object now have two properties: `current_context` and `context_path`. These properties stores the values of the corresponding symbols in the `builtin` definitions.
* ``FullForm[List[...]]`` now is shown as ``{...}`` according to the WL standard.
* ``Expression.is_numeric()`` accepts an ``Evaluation`` object as a parameter; the definitions attribute of that is used.
Expand All @@ -46,12 +49,15 @@ Internals
* Improved support for ``Series`` Issue #46.
* ``Cylinder`` rendering is implemented in Asymptote.
* `N[_,_,Method->method]` was reworked (Issue #137).

* Ranaming of internal methods: `apply_N`->`eval_N`, `apply_nvalues`-> `apply_N` following the conventions in the rest of the code.

Compatibility
+++++++++++++

- ``ScriptCommandLine`` now returns, as the first element, the name of the script file (when available), for compatibility with WMA (issue #132).

- Improving `Expression.numerify` in a way to obtain a behavior closer to WMA.
- ``NumericQ`` lhs expressions are now handled as a special case in assignment. For example ``NumericQ[a]=True`` tells the interpreter that `a` must be considered
a numeric quantity, so ``NumericQ[Sin[a]]`` evaluates to ``True``.

Bugs
++++
Expand All @@ -60,7 +66,7 @@ Bugs
* ``N`` now handles arbitrary precision numbers when the number of digits is not specified.
* ``Set*``: fixed issue #128.
* ``SameQ``: comparison with MachinePrecision only needs to be exact within the last bit Issue #148.

* Fix a bug in `Simplify` that produced expressions of the form ``ConditionalExpression[_,{True}]``.

4.0.1
-----
Expand Down
128 changes: 128 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
4 changes: 2 additions & 2 deletions mathics/algorithm/integrators.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,8 +178,8 @@ def apply_D_to_Integral(func, domain, var, evaluation, options, head):
# if the integration is along several variables, take the integration of the inner
# variables as func.
if domain._head is SymbolSequence:
func = Expression(head, func, *(domain._leaves[:-1]), *options)
domain = domain._leaves[-1]
func = Expression(head, func, *(domain._elements[:-1]), *options)
domain = domain._elements[-1]

terms = []
# Evaluates the derivative regarding the integrand:
Expand Down
Loading