Skip to content

[Merged by Bors] - feat: add circle averages#24427

Closed
kebekus wants to merge 16 commits intomasterfrom
kebekus/circleAverage
Closed

[Merged by Bors] - feat: add circle averages#24427
kebekus wants to merge 16 commits intomasterfrom
kebekus/circleAverage

Conversation

@kebekus
Copy link
Copy Markdown
Collaborator

@kebekus kebekus commented Apr 28, 2025

For a function f on the complex plane, introduce the notation circleAverage f c R as a shorthand for the average of f on the circle with center c and radius R. Averages of this form are typically used in analysis of one complex variable.

Raison d'Être

Like IntervalAverage, this notion exists as a convenience. It avoids the hassle of manually eliminating 2 * π every time an average is computed. At least for the moment, it seems that the simplifier is not built to cancel repeating factors in non-trivial formulas.

Why not use IntervalAverage?

Two reasons:

  • Length: circleAverage is shorter and easier to read than the interval average of f (circleMap c R θ), taken over the interval 0..2 * π. This is an issue in computations, where splitting the circle average of a sum into a sum of circle averages quickly leads for lengthy formulas unfit for human consumption.

  • Ease of use: Manipulating IntervalAverages by applying standard theorems from mathlib often leads to expressions of the form (f + g) (circleMap c R θ), f (circleMap c R θ) + g (circleMap c R θ) and (f + g) ∘ (circleMap c R) that are not equal enough for tactics like rw.


Open in Gitpod

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 28, 2025

PR summary 9cdc811252

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

No declarations were harmed in the making of this PR! 🐙

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for script/declarations_diff.sh contains some details about this script.


No changes to technical debt.

You can run this locally as

./scripts/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@github-actions github-actions bot added the t-measure-probability Measure theory / Probability theory label Apr 28, 2025
@kebekus kebekus requested review from grunweg and pfaffelh April 28, 2025 05:52
@sgouezel sgouezel added the awaiting-author A reviewer has asked the author a question or requested changes. label May 1, 2025
@kebekus kebekus removed the awaiting-author A reviewer has asked the author a question or requested changes. label May 3, 2025
@sgouezel sgouezel added the awaiting-author A reviewer has asked the author a question or requested changes. label May 3, 2025
kebekus and others added 3 commits May 4, 2025 07:23
Co-authored-by: Sebastien Gouezel <sebastien.gouezel@univ-rennes1.fr>
@kebekus kebekus removed the awaiting-author A reviewer has asked the author a question or requested changes. label May 4, 2025
kebekus and others added 2 commits May 5, 2025 08:00
Co-authored-by: Sebastien Gouezel <sebastien.gouezel@univ-rennes1.fr>
@kebekus
Copy link
Copy Markdown
Collaborator Author

kebekus commented May 5, 2025

@sgouezel Thank you for the improvements. All implemented.

Copy link
Copy Markdown
Contributor

@sgouezel sgouezel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bors d+
Thanks!

@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented May 9, 2025

✌️ kebekus can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

@ghost ghost added the delegated This pull request has been delegated to the PR author (or occasionally another non-maintainer). label May 9, 2025
kebekus and others added 3 commits May 9, 2025 14:44
@kebekus
Copy link
Copy Markdown
Collaborator Author

kebekus commented May 9, 2025

@sgouezel @pfaffelh Thanks for your help!

bors r+

mathlib-bors bot pushed a commit that referenced this pull request May 9, 2025
For a function `f` on the complex plane, introduce the notation `circleAverage f c R` as a shorthand for the average of `f` on the circle with center `c` and radius `R`. Averages of this form are typically used in analysis of one complex variable. 

### Raison d'Être

Like `IntervalAverage,` this notion exists as a convenience. It avoids the hassle of manually eliminating `2 * π` every time an average is computed. At least for the moment, it seems that the simplifier is not built to cancel repeating factors in non-trivial formulas.

### Why not use `IntervalAverage`?

Two reasons:

- Length: `circleAverage` is shorter and easier to read than the interval average of `f (circleMap c R θ)`, taken over the interval `0..2 * π`. This is an issue in computations, where splitting the circle average of a sum into a sum of circle averages quickly leads for lengthy formulas unfit for human consumption.

- Ease of use: Manipulating `IntervalAverage`s by applying standard theorems from mathlib often leads to expressions of the form  `(f + g) (circleMap c R θ)`, `f (circleMap c R θ) + g (circleMap c R θ) ` and `(f + g) ∘ (circleMap c R)` that are not equal enough for tactics like `rw`.
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented May 9, 2025

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat: add circle averages [Merged by Bors] - feat: add circle averages May 9, 2025
@mathlib-bors mathlib-bors bot closed this May 9, 2025
@mathlib-bors mathlib-bors bot deleted the kebekus/circleAverage branch May 9, 2025 13:22
tannerduve pushed a commit that referenced this pull request May 13, 2025
For a function `f` on the complex plane, introduce the notation `circleAverage f c R` as a shorthand for the average of `f` on the circle with center `c` and radius `R`. Averages of this form are typically used in analysis of one complex variable. 

### Raison d'Être

Like `IntervalAverage,` this notion exists as a convenience. It avoids the hassle of manually eliminating `2 * π` every time an average is computed. At least for the moment, it seems that the simplifier is not built to cancel repeating factors in non-trivial formulas.

### Why not use `IntervalAverage`?

Two reasons:

- Length: `circleAverage` is shorter and easier to read than the interval average of `f (circleMap c R θ)`, taken over the interval `0..2 * π`. This is an issue in computations, where splitting the circle average of a sum into a sum of circle averages quickly leads for lengthy formulas unfit for human consumption.

- Ease of use: Manipulating `IntervalAverage`s by applying standard theorems from mathlib often leads to expressions of the form  `(f + g) (circleMap c R θ)`, `f (circleMap c R θ) + g (circleMap c R θ) ` and `(f + g) ∘ (circleMap c R)` that are not equal enough for tactics like `rw`.
bwehlin pushed a commit to bwehlin/mathlib4 that referenced this pull request May 31, 2025
For a function `f` on the complex plane, introduce the notation `circleAverage f c R` as a shorthand for the average of `f` on the circle with center `c` and radius `R`. Averages of this form are typically used in analysis of one complex variable. 

### Raison d'Être

Like `IntervalAverage,` this notion exists as a convenience. It avoids the hassle of manually eliminating `2 * π` every time an average is computed. At least for the moment, it seems that the simplifier is not built to cancel repeating factors in non-trivial formulas.

### Why not use `IntervalAverage`?

Two reasons:

- Length: `circleAverage` is shorter and easier to read than the interval average of `f (circleMap c R θ)`, taken over the interval `0..2 * π`. This is an issue in computations, where splitting the circle average of a sum into a sum of circle averages quickly leads for lengthy formulas unfit for human consumption.

- Ease of use: Manipulating `IntervalAverage`s by applying standard theorems from mathlib often leads to expressions of the form  `(f + g) (circleMap c R θ)`, `f (circleMap c R θ) + g (circleMap c R θ) ` and `(f + g) ∘ (circleMap c R)` that are not equal enough for tactics like `rw`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

delegated This pull request has been delegated to the PR author (or occasionally another non-maintainer). t-measure-probability Measure theory / Probability theory

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants