[Suggestion] This package may be highly benefitted from SystemC fixed-point arithmetics
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 20/100
Direzione di ricerca
Non vengono nominati file, test o punti di ingresso. Inizia esaminando la semantica a virgola fissa di SystemC in IEEE 1666-2011 Sezione 7.10 e l'ambito attuale del package, quindi definisci l'API Julia desiderata, le operazioni supportate e il comportamento delle conversioni prima dell'implementazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I've been using SystemC for modelling systems with fixed-point arithmetics for a while. It focuses on describing hardware systems with C++ language and it's been pretty mature, with an IEEE Standard (https://standards.ieee.org/standard/1666-2011.html)
Section 7.10 of the standard approaches fixed-point types and their characteristics. In general, a fixed-point number can be represented and used as:
sc_fixed_fast<8, 1, SC_RND, SC_SAT> x = 0.5; //round and saturate
sc_fixed_fast<9, 2, SC_TRN, SC_WRAP> y = 0.5; //truncate and wraparound overflow
One of the useful applications of this type system is you can have 'wide' variables to do a series of calculations and store a given value, then create a <8, 1> type to round and saturate the input to your interface. The error from converting a wide type (for example, <32, 8> storing some multiplication) to a smaller type is expected and is part of the whole analysis for the system application.
Apparently, sc_fixed_fast types always store 32/64 bit numbers, but only operate on their given number of bits. They are fast because they don't try to store and odd number of bits (such as 9) in the memory, although they obviously use more memory than necessary.
A bunch of useful operations are defined, such as bitwise AND and OR and bitshift operators (<<, >>, <<<, >>>).
Although this type system from SystemC is pretty useful, I think Julia could offer a much wider world of opportunities.
If all this sounds reasonable, I'd be glad to help. If it's not the scope of the project, it's understandable.
- Lingua principale
- Julia
- Stelle
- 95
- Fork
- 38
- Merge medio
- 16h 31m
- PR unite (30g)
- 9
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JuliaMath/FixedPointNumbers.jl
-
bug
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
JuliaMath/FixedPointNumbers.jl#343 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 62/100
JuliaMath/FixedPointNumbers.jl#342 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
JuliaMath/FixedPointNumbers.jl#337 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 42/100
JuliaMath/FixedPointNumbers.jl#331 · 7 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
needs comments
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
JuliaMath/FixedPointNumbers.jl#318 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di JuliaMath/FixedPointNumbers.jl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
`default_linear_interpolation` is called with its arguments swapped, so its opt-outs never applyAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
SciML/OrdinaryDiffEq.jl#4684 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
SciML/Evolutionary.jl#182 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
jmejia8/Metaheuristics.jl#130 ·