In-Place Basis Matrix and funeval

Aperta
#60 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
45/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
julia
Ambito
backend

Direzione di ricerca

Inizia esaminando complete_polynomials! e gli altri metodi di Basis che ricreano matrici di basi valutate, quindi confronta il loro comportamento con il notebook di NK-model collegato. Il lavoro è completato quando i tipi di Basis applicabili possono aggiornare una matrice di basi in place per l'interpolazione ripetuta nei punti della griglia, evitando le allocazioni aggiuntive descritte.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

I could be wrong, but my impression is that, aside from complete_polynomials!, there is no way to update a basis matrix in place (i.e. the matrix of basis functions evaluated at specific nodes). All other methods recreate the basis matrix from scratch. In general, this is fine, but in the special case where you are just interpolating the same number of grid points in every dimension, this results in extra allocations because you could have just worked directly in-place. The notebook for solving an NK model globally in Julia is able to avoid this problem when interpolating for the future values of S, F, and C by updating the basis matrix in place. Other Basis types don't appear to have such functionality.

Please let me know if I've overlooked parts of the code! I'm still relatively new to the package.

If not, then I'm happy to work on it. The refactoring should be relatively mild.

Lingua principale
Julia
Stelle
33
Fork
20
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di QuantEcon/BasisMatrices.jl

Tutte le issue di QuantEcon/BasisMatrices.jl

Issue simili

Altre issue su Julia

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.