¿Hay una biblioteca utilizable en Fortran, lo que permite el uso de matrices dinámicas Disperso (de hash/Diccionario similares), además de la Judy arrays?-estructura de datos Hash-como dinámico en Fortran
Respuesta
no he visto uno incorporado, pero Google devuelve algunos:
FLIBS: http://flibs.sourceforge.net/
Hash Tables: http://burtleburtle.net/bob/hash/evahash.html y http://www.cris.com/~Ttwang/tech/inthash.htm.
Muchas gracias, tenía FLib en el radar, pero de alguna manera el diccionario proporcionado por él, me llamó la atención. De lo contrario, mis búsquedas en su mayoría terminaron con algunas cosas de C++, de las que realmente no quiero depender ... – haraldkl
@Haraldkl: Espero que una versión estandarizada pueda venir en el futuro. – SOUser
También encontré una implementación de árbol rojo-negro en https://www.myroms.org/blog/ y alguna implementación de trie en https://github.com/ned14/nedtries, sin embargo, todos necesitan más trabajo para usar ellos en Fortran y especialmente en mi escenario. Por lo tanto, creo que no hay una biblioteca genérica simplemente utilizable. – haraldkl
He creado un diccionario abstraída en FORTRAN que podría satisfacer sus necesidades.
Ver: https://github.com/zerothi/fdict
Básicamente se le permite hacer
type(dict) :: dic, dic2
dic = ('KEY'.kv.1)
dic = dic //('next'.kv. (/3.,5.,6./))
dic = dic //('string'.kv.'Hello world')
dic2 = ('string2'.kv.'Test')
dic = dic // ('dic2'.kvp.dic2)
donde puede guardar todos los tipos intrínsecos y que se puede ampliar fácilmente para contener otros tipos de datos, el valor predeterminado para contener inicialmente como otro valor (la última línea conserva un diccionario como puntero)
Tiene una designación .kv. == key : value
que es una copia profunda, y .kvp. == key : pointer
que es una copia de referencia. De esta manera puede almacenar datos enormes sin tener que duplicar datos y recuperar el puntero en algún momento posterior.
Para profundizar en la idea, todos los datos se almacenan como punteros de dirección utilizando una llamada transfer
de un tipo derivado que contiene el puntero de datos. De esta forma, engañas al compilador para que te proporcione la dirección del tipo fortran derivado, pero te obliga a recuperarlo de la misma manera.
Por .kv.
un puntero del tipo de datos se ha asignado y, posteriormente, apuntado por el contenedor de datos, a continuación, después el puntero asignado es nullify
IED y perdió lo que obliga al usuario a saber lo que están haciendo (no hay basura -collector en él;)). Por .kvp.
el puntero se guarda directamente sin duplicar ninguna memoria.
Lo bueno es que es compatible con Fortran90.
Esta es casi una respuesta de solo enlace. ¿Podría escribir algo sobre lo que la biblioteca puede y no puede hacer? ¿Para qué sirve? ¿Qué versión de Fortran requiere? –
Hice algo similar para mi propio propósito usando polimorfismo ilimitado. ¿Utiliza esto el polimorfismo paramétrico? ¿Depende de 'transfer()'? –
¿Qué tal ahora? Creo que explicar una parte más grande de la API no tiene sentido? ¿No? – zeroth
- 1. Cómo anular un constructor de estructura en fortran
- 2. Estructura de datos en evolución
- 3. Estructura de datos para representar un laberinto
- 4. Dormir en Fortran
- 5. ¿Qué significa "%" en Fortran?
- 6. Función privada en Fortran
- 7. ¿Tipo de datos de estructura en Mathematica?
- 8. Estructura de datos para datos espaciales
- 9. Clase vs estructura de datos
- 10. RESTful estructura de datos patrones
- 11. ¿Qué estructura de datos usar?
- 12. ¿Cómo mostrar la estructura de datos planos en una estructura de datos jerárquica (Java)?
- 13. estructura de datos Diccionario en I
- 14. Rendimiento en la estructura de datos recursiva
- 15. ¿Estructura el tipo de datos en php?
- 16. Un rompecabezas en la estructura de datos
- 17. Estructura de datos para niveles en juegos
- 18. Java pregunta estructura de datos
- 19. java.util.Stack estructura de datos adecuada?
- 20. Estructura de datos utilizada para la estructura de directorios?
- 21. software de conversión para fortran 77 a fortran 90
- 22. estructura Externo en C
- 23. ¿Cómo leer datos de IO en la estructura de datos y luego procesar la estructura de datos?
- 24. Estructura de la base de datos para estructura de datos de árbol
- 25. ¿Cómo se utilizan datos del módulo Fortran 90?
- 26. almacenar algunos datos en la estructura inode
- 27. Estructura de datos de búsqueda de IPv6
- 28. Lista de Javascript como estructura de datos?
- 29. Brushup de estructura de datos (Java)
- 30. Estructura de la base de datos SQL
+1 por la primera pregunta fortran que he visto! –
@Preet Sangha - http://stackoverflow.com/tags/fortran – Rook