Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tree (octree) #1

Open
szaghi opened this issue Dec 29, 2015 · 6 comments
Open

Tree (octree) #1

szaghi opened this issue Dec 29, 2015 · 6 comments

Comments

@szaghi
Copy link
Member

szaghi commented Dec 29, 2015

Hi Chris,

great project, my best compliments!

I would like to contribute if you like. In the past I have developed a generic container (based on an unlimited polymorphic class) with an octree structure (it was an hash table with single linked list for resolving keys conflicts on the single slot). I would like to contribute to your FIAT working on trees, how can I do?

Do you have some contributing guidelines?
Do you have some references for the trees you want to implement?
Do you have a preferred collaborative model (e.g. fork/pull-request)?

In my modest opinion, one of the worst lack of Fortran is the absence of generic containers, your FIAT is very appreciated.

My best regards.

@cmacmackin
Copy link
Collaborator

Hi @szaghi. Sorry I never got back to you about this. I've only now managed to do enough ground work to get a feel as to how I want this project to go. If you take a look at the wiki you'll see answers to most of these questions. In response to the specific question of an octree, I'm sure that could be useful. At present I don't actually know all that much about trees though and, in any case, my first priority is to get the linear data structures like stacks, queues, and lists working.

@szaghi
Copy link
Member Author

szaghi commented Feb 14, 2016

@cmacmackin do not worry. Great work.

One key feature of trees is a list data structure, so I will study your work before trying to add an octree.

See you soon.

@cmacmackin
Copy link
Collaborator

Not much work to study, I'm afraid. The only final product (as opposed to things I'll need internally in FIAT) which I've built is a stack, but it hasn't been tested and I've since decided that the interface will need to be redesigned somewhat.

@SourcerersApprentice
Copy link

Hi Chris,

I would recommend taking a look at how the .Net Framework implements interfaces for classes like List, Stack and Queue. They have a well thought out high level interface that provides natural and informative method naming. While you might not want to adopt everything there, it could provide a good set of basics that would translate well to Fortran. Having done lists in both Fortran and C#, I find using methods like Index(), ToArray() and Contains() more handy than lower level methods that walk lists.

@cmacmackin
Copy link
Collaborator

Thanks, I'll take a look at that sometime. I did borrow a bit from the Vala library gee, which I suspect is similar. I'm not sure why I missed methods like index() and contains(). ToArray() might be difficult because of Fortran's really poor features for generic programming, unfortunately.

@cmacmackin
Copy link
Collaborator

I've added various methods inspired by the .Net Framework implementations now. As I say, I'm not sure if I'll be able to get something like ToArray() to work. Never say never though--I have some vague ideas which might be worth a try.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants