On Jan 9, 2013, at 4:02 PM, Thiago Macieira wrote: > I'm not sure it's out of scope for Qt. In fact, I don't know yet whether it > should be part of Qt Core or not. I guess I am the person to make that > particular call.
I'm very glad to hear that you are willing to consider it. > So what I need from Glen is, at least, the proposed API docs with some > proposed examples of how it will work. Back when (2 years ago?) I was trying to document this using doxygen I created examples/basic_example/basic_example.cpp and tried to include it in the class explanation, but really I recommend you look at sandbox/sandbox.cpp for some examples of how it will work. I apologize that the docs aren't in better shape, but I will improve them. > I need to review that to decide whether it fits Qt Core's purpose in life. > >> So, I agree that too much *could* be put into QNDArray, and *that* would be >> inappropriate for the Qt project, in my mostly-outsider opinion. > > Indeed. If I look at https://codereview.qt-project.org/#change,44016, I'll > reject immediately. Let's start with the presence of C source files, Python > scripts, something called ".template" which has never been seen before, > examples inside the source tree instead of in the examples tree, files with > uppercase letters in the name. > > To be accepted in QtCore, the contribution must be of a handful[*] of files > in > src/corelib/tools, including the documentation, with examples in examples/, > tests in tests/auto/corelib/tools/qndarray. > > [*] by "handful", I mean it literally: counted with the fingers of one hand. > And I do not mean binary counting (2⁵ = 32 files). Yes, well, that is all fair and I myself am surprised at how the effort has "grown" over the years. I'd like to believe that it hasn't sprawled, but I can't claim to be objective on that point. In my own defense, I'm glad that we're having this discussion here and now, and it *appeared* to me that it was the actual push (flawed though it was!) that really started this thread. And I tried to apologize for some of these things in advance, as well as indicate that it is a Work In Progress -- and I trust that 'git mv' maneuvers are easy enough to do. I hope that the hardest parts are done -- but an author once told me that getting the book published is harder than writing it -- so I guess we'll see how these discussions go. I'd like to think that some of the irregularities are explainable even if they don't (yet) conform to policy. Like the file gen_qfloat16_tables.c which produces the lookup tables used by qfloat16. Until a couple of weeks ago that datatype was called just float16 and there were no dependencies on Qt at all (okay, there still aren't really any). That's because I plan to post it elsewhere on the internet as a separate project if Qt doesn't want it, since I couldn't find something comparable that didn't have strings attached when I looked. The rename to qfloat16 was just to make it more cutesy. So, gen_qfloat16_tables.c was somehow a weird product of "create a very minimal program to create the tables" effort in the most portable way possible. And it doesn't *ever* need to be compiled into *any* application -- only the output file, qfloat16_tables.cpp, should be (yes, it's probably missing the license headers -- sorry) but only in an application where you actually instantiate a qfloat16. The python file autogen/autogen_files.py and the .template files are also easy targets for ridicule and I'll take it, too. If there is a policy on "code that generates code" for Qt I missed it in the Style Guidelines … and I couldn't seem to engage a discussion of that matter on this list, so I just pushed the issue, literally. Sorry. I'm still too excited about this silly container class to wait around any longer; I've got too much invested in it. I hope that after taking a peek at the contents of the .template files you'll empathize with my approach, and I'm happy to change the file extension if that would help, and I reiterate my original offer to rewrite the python script in C++ if that will make things more palatable. However, it doesn't answer the dilemma of where that code-generating-code should reside, so for now it remains in autogen/ . Recommendations are welcome. >> But I'm not proposing that the kitchen sink be put in, only the container >> class itself, and a few very basic mathematical operations like sin, cos, >> exp. In fact, I probably should have down-sized the number of functions >> that were included in the QNDAMath namespace before I pushed. > > That makes sense. > > We'll need to rename the class and namespace, btw. "QND" does not mean > anything. Is 3D meaningful? Surely N-dimensional is less recognizable, but it is undoubtably a widespread generalization. The NDArray part is a direct knock-off from the Numpy nomenclature for their array class, numpy.ndarray . Prepending with a Q and capitalizing was the best I could do to conform … but I would love to hear any alternatives. It does seem to be intuitive enough that boost.ndarray appeared, and I only recently became aware of this project: http://code.google.com/p/ndarray which also doesn't seem to find the name confusing, but I'm sure it depends a lot on the audience. Anyway, thanks for listening -- Glen _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development