linalg: export numeric constants
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- fortran
- Área
- backend
Línea de trabajo
The issue gives no implementation files or tests; start by reading the numeric constant definitions and the linear algebra code that uses them, then compare the existing codata API and prior work in #800 and #902. Decide how constants should be exported for both users and fypp-generated routines, and document the chosen API and generated values; the issue does not specify tests.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Motivation
As pointed out in #902, it is often tedious to read through templated numeric constants through the code.
Prior Art
#800
Additional Information
- For the user API, maybe all needed is a consistent way to export them? One way this is present in stdlib (
codatamodule) is to use amoldparameter and function. - For development (linear algebra routines will be easier to read), maybe the best approach would be to template them directly in fypp? this works well:
#! Return the unitary numeric constant for a given type and kind
#!
#! Args:
#! type (string): an intrinsic type (complex, real, integer)
#!
#! Returns:
#! Parameter value string
#!
#! E.g.,
#! one('complex(dp)') -> (1.0_dp, 0.0_dp)
#! one('real(sp)') -> 1.0_sp
#! one('integer') -> 1
#!
#:def one(type)
#:assert 'integer' in type or 'real' in type or 'complex' in type
#:if '(' in type and ')' in type
#:set kind="_" + type.split('(')[1].split(')')[0]
#:else
#:set kind=""
#:endif
#:if 'integer' in type
${"1"+kind}$
#:elif 'real' in type
${"1.0"+kind}$
#:elif 'complex' in type
${"(1.0"+kind+",0.0"+kind+')'}$
#:endif
#:enddef
- Lenguaje dominante
- Fortran
- Estrellas
- 1.4k
- Forks
- 233
- Merge medio
- 4 d 11 h
- PR fusionados (30 d)
- 5
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de fortran-lang/stdlib
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
fortran-lang/stdlib#1193 · 1 comentario ·
-
Cannot compile example_mnorm.f90Abiertobug
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
fortran-lang/stdlib#1224 · 2 comentarios ·
-
LAPACK upgradesAbiertoidea topic: linalg
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
fortran-lang/stdlib#1199 · 1 reacción ·
-
Support meson build systemAbiertoidea
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
fortran-lang/stdlib#1181 · 2 comentarios · 1 reacción ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 49/100
fortran-lang/stdlib#1178 · 3 comentarios ·
Todos los issues de fortran-lang/stdlib
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
backend bug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
PoCInnovation/Distribox#255 ·
Los mantenedores suelen responder en 1 día
-
bug-report bug-report-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Codeinwp/wp-menu-icons#354 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
google/langextract#598 ·
Los mantenedores suelen responder en 1 día