JuliaApproximation / JuliaApproximation/DomainSets.jl

Roadmap for future development of DomainSets

Open
#150 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
79
Forks
12
Avg merge
6d 22h
Merged PRs (30d)
2

Description

Here are a few areas I'm thinking of to improve DomainSets. I'm linking to existing issues.

  1. Factor out the map code. It has no place in this package, and there is a lot of overlap with other packages. The main motivation originally for writing new code was to allow rectangular maps, which you need to map e.g. from 1D to 3D. At the time most existing packages assume that maps are invertible, square or both. (#92, #87)
  2. Integrate better with existing packages that define domains, in orde to reuse them. A proof of concept using package extensions is in https://github.com/daanhb/DomainSetsExtensions.jl (#149)
  3. Write documentation. Even the basic syntax for primitives is not documented. The mechanism of associating domains with canonical domains is very versatile and potentially useful if it were known how to use it (#101)
  4. Avoid type piracy. A lot has improved already, but there are some remnants of operators from Base and LinearAlgebra being overloaded simply because they look nice. This will likely take another breaking release, but it should be done. (#148, #67)
  5. Come up with a good implementation of approximate in (or approx_in), using atol and rtol arguments. It's important to get this right, since we've been so careful about distinguishing between open and closed domains as well. (#124)
  6. Implement fewer concrete domains. We've been using IntervalSets for intervals. I'm reluctant to expand the implementation of simplices and hyperfaces because other packages already do this, both better and with more focus. (#100, #142)

I've been playing with a DomainSetsCore package, but I don't think it is essential to move forward so it's not on the list.

Ideally, these improvements make DomainSets smaller and yet more functional.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the linked issues (#92, #87, #149, #101, #148, #67, #124, #100, and #142) to identify one independently scoped improvement. The issue names no files or tests and covers architecture, integration, documentation, API cleanup, numerical behavior, and domain implementations, so completion criteria must be defined in a narrower follow-up issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
developer-experience, documentation
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.