Comments (12)
@NevinBR I'll be happy to help if that's helpful.
from swift-numerics.
Actually, I'll go ahead and do the basic module setup for you on main and drop a rotate implementation in to seed it, since I already have a pretty good idea what a first cut of that should look like, and then folks can put smaller PRs up adding individual features.
from swift-numerics.
Is bit reverse fit on this?
The FFT algorithm required bit reversal
https://en.wikipedia.org/wiki/Bit-reversal_permutation
https://github.com/apple/swift-numerics/blob/796a0dc3f74a60f102937f61cc363644513671d1/Sources/Accelerate/bit_reverse.swift
from swift-numerics.
Definitely!
from swift-numerics.
Would basic number-theory functions be in scope for this module?
- gcd
- lcm
- Bézout coefficients
- Modular inverse
from swift-numerics.
Yes, absolutely.
from swift-numerics.
I’d like to start working on this. What’s the recommended process?
Should there be a dedicate branch for work on this module?
from swift-numerics.
The first step is just to make a branch in your own clone of the repo. Once you have some initial work, we can either merge it to main or create a branch if it's going to be a longer term project to get a coherent API.
from swift-numerics.
from swift-numerics.
What’s our file-naming strategy?
I see you’ve created “Rotated.swift”. Do we want all files to be that small and single-purpose, or should we rename it something like “BitwiseOperations.swift”?
The first function I’d like to add to this module is gcd
(using the binary GCD algorithm), and I’m wondering if the filename should be “GCD.swift” or something broader like “ModularArithmetic.swift”?
from swift-numerics.
I'm not too worried about that; file naming is not public API so we can move them around. If it's only going to contain a GCD initially, let's name it "GCD.swift".
(Also, a GCD is useful outside of modular arithmetic contexts, so it feels misleading to stuff it in a ModularArithmetic.swift).
from swift-numerics.
Integer division and shifts with rounding: #203
from swift-numerics.
Related Issues (20)
- Meaning of pre‐semantic versioning? HOT 7
- Missing required module HOT 7
- Add a script to generate the CMakeLists files? HOT 1
- Feature request for "relaxed" floating-point semantics HOT 2
- Floating point exponent `pow` returns NaN for integer exponents HOT 2
- Possible improvement in 'pow' Elementary Function when operands are zero HOT 5
- Should complex multiplication use augmented arithmetic? HOT 1
- Warnings in `Double.testIntegerExponent()` HOT 1
- [BigInt] Using tests from “Violet - Python VM written in Swift” HOT 5
- Duplicate symbols on Windows
- "^=" xor function code was incorrect. HOT 1
- Improve String init() execution time and fix Violet bugs
- Change default branch from `Quaternions` to `main`
- `** ARCHIVE FAILED **` due to `_NumericsShims` missing HOT 4
- Crash in `DoubleWidth` HOT 4
- Variadic GCD and LCM
- Feature request: GCD for floating-point HOT 7
- Error in Swift Playgrounds HOT 1
- Issues with CMake support HOT 3
- [FR]: Support Apple Privacy Manifest HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from swift-numerics.