Summary: 441 instances, 361 unique Text Count // FIXME find a way to allow an inner stride if packet_traits::size==1 1 m_R.reserve(2*mat.nonZeros()); //FIXME Get a more accurate estimation through symbolic factorization with the etree 1 # TODO: Check if saturation/overflows are handled. 1 // FIXME need to implement output for triangularViews (Bug 885) 1 // FIXME is there some kind of cuda::swap? 1 // TODO We have no unit test covering this code path, do not modify 1 // TODO: use arg2 or arg3 dimensions if they are known at compile time. 1 // TODO hanlde complex cases 1 // TODO: use a HouseholderSequence 2 // TODO this should better be moved to NumTraits 1 const unsigned int EvalBeforeAssigningBit = 0x4; // FIXME deprecated 1 // TODO: Ask for more sensible default iteration parameters 1 currentLabels[labels[id]] = 1; // TODO: Figure something elegant instead of casting 1 EIGEN_DEVICE_FUNC OuterStride(Index v) : Base(v,0) {} // FIXME making this explicit could break valid code 1 (EIGEN_PLAIN_ENUM_MIN(evaluator::Alignment, evaluator::Alignment)>0)) // FIXME should be compared to the required alignment 1 // // FIXME not sure that's the best way to implement it! 1 | // FIXME | instead of || to please GCC 4.4.0 stupid warning "suggest parentheses around &&". 1 # TODO : For assign node :: fix this after discussing with Aseem; hack right now. 1 // FIXME: what is the purpose of this EIGEN_ALIGN_DEFAULT ?? 1 // FIXME this loop get vectorized by the compiler ! 3 # TODO : Do this in somewhat better way. 1 // FIXME is it still needed ?? 1 // FIXME: tval -= tdot * m_Q.col(curIdx) should amount to the same (need to check/add support for efficient "dense ?= sparse") 1 //TODO : Add an option to scale the values beforehand 1 //TODO: What about normalization 1 // TODO: Check if already exists on the rest API 1 // TODO: Rewrite this call to use space just the allocated for @out, 1 // TODO find a reliable way to get the actual amount of cache per core to use for 2nd level blocking, that is: 1 // TODO move this code to SelfAdjointView 2 // class InnerIterator; // FIXME apparently never used 1 // TODO: cleanly disable those functions that are not supported on Array (numext::real_ref, internal::random, internal::isApprox...) 1 // TODO: find a way to factorize this piece of code with gemv_selector since the logic is exactly the same. 1 || (int(internal::evaluator::Alignment)>0) // FIXME Alignment)>0 might not be enough 1 // FIXME this line involves temporaries 1 // FIXME: could probably be removed as we do not support gcc 3.x anymore 1 getLogger().warning("TODO: Fix this if condition") 1 Alignment = 0 // FIXME it is not very clear why alignment is necessarily lost... 1 // TODO: use left impl instead if right impl dimensions are known at compile time. 1 EIGEN_DEVICE_FUNC InnerStride(Index v) : Base(0, v) {} // FIXME making this explicit could break valid code 1 // TODO enable vectorization for Select 1 # TODO : Right now in the current implementation, the dataType being passed to the node is being ignored by SeeDot. 1 // FIXME having to check whether ArgType is sparse here i not very nice. 1 //FIXME CHeck if the factorization was correctly done (nonsingular matrix) 1 * FIXME Do not accept duplicates 1 #TODO: Shift to common.py 1 // FIXME: gcc 4.3 generates bad code when strict-aliasing is enabled 1 // TODO: pfor (or map) and vectorize 1 Scalar saved, temp; // FIXME These were double instead of Scalar. Was there a reason for that? 1 // TODO: use then or else impl instead if they happen to be known at compile time. 1 // FIXME shall we handle nested_eval here? 3 // FIXME: No intrinsic yet 4 // TODO: part of this blocking strategy is now implemented within the kernel itself, so the L1-based heuristic here should be obsolete. 1 # TODO: Remove the TreeSum buffer variable from the list of variables to be allocated from the scratch space, because the TreeSum variable is not used in the M3 codegen. 1 // TODO replace this by a binary search. make sure the binary search is safe for partially sorted elements 1 // TODO: the following specialization is to address a regression from 3.2 to 3.3 1 // TODO: mkl_?omatcopy doesn't seem to work. 1 // FIXME estimate number of non zeros 1 # TODO: Introduce a post-processing pass to merge consecutive scale adjustments hence generated. 1 // TODO: update the hyperParams.iter to *= sqrt(ntrain). 1 // FIXME: 1 // FIXME could also be called SelfAdjointWrapper to be consistent with DiagonalWrapper ?? 1 // FIXME The following might be optimized using _mm256_movedup_pd 1 # TODO : Not implemented operator Shape() from the C++ implementation. 1 // TODO: This evaluator does not actually use the child evaluator; 1 // TODO: magnetometer integration 2 // TODO use the evaluator mechanism 1 // TODO: extend the code to support aligned loads whenever possible when LhsPacketSize > 4. 2 // FIXME: shall we keep the const version of coeffRef? 1 /* TODO: if eigen provides a triangular storage, use it here */ 1 // TODO nested<> does not exist anymore in Eigen/Core, and it thus has to be removed in favor of ref_selector. 1 # TODO: Do I need to update varDeclarations or is it handled already? 1 // FIXME shall we remove it ? 2 // FIXME Check for happy breakdown 1 // TODO try to call _mm_mul_epu32 directly 1 // TODO: Support isApprox function 1 //FIXME This should be handled outside. 2 // FIXME check the Has* 6 // FIXME: why is this ok? why isn't the simply implementation working as expected? 1 # TODO : There has to be some way to take range, understand the dimensions for SeeDot 1 # TODO : Parse other options and make sure backend is consuming those. 1 // TODO: should check for smaller packet types once we can handle multi-sized packet types 2 //FIXME : find a way to avoid this ... 1 return vec_cts(x, 0); // TODO: check clang version. 1 // TODO optimize the uncompressed mode to avoid moving and allocating the data twice 1 // TODO: It has been detected with win64 builds (amd64), so let's check whether it also happens in 32bits+SSE mode 1 // TODO: Use that A is upper triangular 1 typedef typename MatrixType::PlainObject ReturnType; // FIXME shall it be a BandMatrix? 1 /* TODO This class is only used by MatrixPower, so it should be nested 1 // TODO: Think about const-correctness 1 // TODO write a small kernel handling this (can be shared with trsv) 1 # TODO: Use AST.decl for defining a tensor. If used as a parameter for Reshape then we don't need it for now. 1 // TODO vectorize mixed sum 1 // TODO implement twists in a more evaluator friendly fashion 1 # TODO: Remove float_data. 1 // FIXME sunstudio is not friendly with the above friend... 1 // FIXME : maybe the "inner product" could return a Scalar 1 # TODO : Since the axis of concat is constant, therefore, its known here - the input's sizes along that dim should be 1 // TODO make the sort optional ? 1 // TODO optimize this copy by swapping when possible (be careful with alignment, etc.) 2 TODO: Clustering fails due to singularity error if projecting upwards 1 // TODO we should apply that rule if that's really helpful 1 SparseMatrixBase() : m_isRValue(false) { /* TODO check flags */ } 1 m_lhsImpl(m_lhs), // FIXME the creation of the evaluator objects should result in a no-op, but check that! 1 // TODO deflation44 is still broken and not properly tested 1 // TODO: figure out what these actually do 2 // FIXME: NVCC used to complain about the template keyword, but we have to check whether this is still the case. 1 # TODO: If need arises, change everything to byte array. 1 // TODO: get gradient fucntions here 1 //FIXME we don't propagate the max sizes !!! 1 // TODO we should not remove DirectAccessBit and rather find an elegant way to query the alignment offset at runtime from the evaluator 1 * FIXME This can be unnecessarily expensive since only the inner indices have to be sorted 1 // TODO Avoid this copy. Currently it is necessary to suppress bogus values when determining maxCoeff and for computing the eigenvectors later 1 * TODO: this seems possible when the result is a vector 1 // TODO: Assign and construct from another EulerAngles (with different system) 1 // FIXME: why are these operator already alvailable ??? 1 // FIXME currently we need same types, but in the future the next rule should be the one 1 // FIXME add a stride to Map, so that the following mapping becomes easier, 1 // FIXME if rows is large enough, then it might be useful to make sure that rhs is sequentially stored 1 /* TODO extract L, extract U, compute det, etc... */ 1 // TODO check whether this is the right place to perform these checks: 2 // TODO: won't yield much gain, but could just use currently unused shared mem 1 // FIXME: check that the dimensions of other match the dimensions of *this. 2 // TODO: Implement it in a faster way for quaternions 1 // TODO: Fix this code and importModel to work with sparse V,W,Z,Theta flags 1 # TODO Override the __all__ variable for the package 1 * FIXME: The values should not be considered here 1 // FIXME add .noalias() once the triangular product can work inplace 1 # TODO: When is this triggered and why is this required? 1 // FIXME perhaps the PlainObjectType could be provided by Derived::PlainObject ? 1 // TODO handle complex cases 1 // TODO directly evaluate into dst; 1 // TODO implement twists in a more evaluator friendly fashion 1 // TODO code generating macros could be moved to Macros.h and could include generation of documentation 1 // FIXME with the always_inline attribute, 1 // FIXME we need an is_same for expression that is not sensitive to constness. For instance 1 (//[&model.params.Z, &data.Ytrain, &model.params.B, &data.Xtrain, &model.hyperParams] TODO: Figure out the elegant way of getting this to work 1 // FIXME: only needed by GeneralMatrixMatrixTriangular 1 enum { CoeffReadCost = HugeCost, Flags = Rhs::Flags&RowMajorBit, Alignment = 0 }; // FIXME CoeffReadCost & Flags 1 // TODO distinguish between linear traversal and inner-traversals 1 //FIXME Sparse Case : Allocate space for the jacobian 1 // FIXME force unaligned load, this is a temporary fix 1 TODO: Make this a separate class if needed 2 // TODO enable vectorization for mixed types 1 // TODO exploit the work buffer 3 // TODO currently a selfadjoint expression has the form SelfAdjointView<.,.> 2 //TODO : introduce --operator 1 // TODO: Fix this code and exportModel to work with sparse V,W,Z,Theta flags 1 // FIXME introduce nonzeroPivots() and use it here. and more generally, 1 // FIXME how to better check for errors ??? 2 // TODO: Finalize port to new regime; ReturnByValue should not exist in the expression world 1 // // FIXME add .noalias() once the triangular product can work inplace 1 // FIXME currently we still have to handle DirectAccessBit at the expression level to handle DenseCoeffsBase<> 1 // FIXME let's make sure sizeof(long int) == sizeof(size_t) 1 Alignment = 0 // FIXME this will need to be improved once PartialReduxExpr is vectorized 1 // FIXME we could probably enable these rules for any product, i.e., not only Dense and DefaultProduct 1 * TODO: 1 //FIXME the block does not exist, Insert it !!!!!!!!! 1 // TODO factorize the following code to reduce code generation 1 // FIXME the transpose variable is only needed to properly split 1 // TODO: attempt to speed this up. The integer divisions and modulo are slow 1 // FIXME NEON has 16 quad registers, but since the current register allocator 1 & (~(PacketAccessBit | DirectAccessBit | LinearAccessBit)) // FIXME these flags should be preserved 1 // TODO currently a triangular expression has the form TriangularView<.,.> 1 // TODO: we could enable them for different scalar types when the product is not vectorized. 1 // FIXME: we should allow that: z += -bb * C.row(i); 1 // FIXME this step should call the Householder module. 1 // FIXME this has to be fine tuned 1 # TODO : Hack -- fix this later after discussing with Aseem. 1 householderU.applyThisOnTheLeft(m_matrixU); // FIXME this line involves a temporary buffer 1 /** Don't require alignment for the matrix itself (the array of coefficients, if dynamically allocated, may still be requested to be aligned) */ // FIXME --- clarify the situation 1 // FIXME after the corner() API change, this was not needed anymore, except by AlignedBox 1 m_mat.uncompress(); //NOTE: The effect of this command is only to create the InnerNonzeros pointers. FIXME : This vector is filled but not subsequently used. 1 Packet Bi = ploadu(rhsIt); rhsIt += PacketSize; // FIXME should be aligned in most cases 1 //FIXME There is no solve in place for sparse triangularView 1 // FIXME this is a copy-paste of the base-class member to add the isInitialized assertion. 2 // TODO: accommodate different arrangements of sent data (ONLY default supported now) 18 typedef Sparse StorageKind; // FIXME Where is it used ?? 1 # TODO: Incorporate this in a more lucid way. 1 # TODO: These statements are redundant after self.validInit call 1 // TODO: find out what to do with that. Adapt the AlignedBox API ? 1 // FIXME: the following test is not correct, we should probably take iperm_c into account and pivrow is not directly the row pivot. 1 // TODO find a simple way not to have to copy/paste this function from generic_dense_assignment_kernel, by simple I mean no CRTP (Gael) 1 * TODO: add support for more types of expressions, in particular expressions 1 // FIXME this does not automatically transpose vectors if necessary 1 //FIXME The ordering interface should define a class of possible errors 1 // FIXME is it still needed 1 // FIXME if it is really guaranteed that the eigenvalues are already sorted, 1 // TODO find a way to unify the two following variants 1 // TODO optimize it for NEON 2 return derived(); // FIXME This should not work but apparently is never used 2 // TODO: Unify with the implementation in the non blocking thread pool. 1 // FIXME this line involves temporaries 2 // TODO : use a PermutationMatrix once lmpar is no more: 1 // FIXME to be consitent with the rest this could be implemented as a static Through function ?? 1 #ifndef EIGEN_EULERANGLESCLASS_H// TODO: Fix previous "EIGEN_EULERANGLES_H" definition? 1 // FIXME compute a reference value to filter zeros 1 // FIXME storage order do not match evaluator storage order 1 /* TODO Implement AVX512 for integers 1 // TODO: gamma() is not directly implemented in Eigen. 1 // FIXME: uncomment the following in case we drop the internal imag and real functions. 1 return 3; // TODO: proper error code for no memory 2 // FIXME is it needed? 1 //FIXME Check first if the matrix is singular ... zero diagonal 1 // TODO vectorize mixed product 1 # TODO : Remove usage of this. 1 #TODO: Refactor this later. Also part of paramBuilder file. 1 // FIXME Maybe the EIGEN_DENSE_PUBLIC_INTERFACE could be removed as importing PacketScalar is rarely needed 1 // TODO it would be nice to be able to exploit our *_assign_op functors for that purpose 1 // FIXME for a matrix with nearly symmetric pattern, mat2+mat1 is the appropriate choice. 1 // TODO smart realloc 1 // FIXME add .noalias() once the triangular product can work inplace 1 # TODO: Use MAX_VAL_EXP. 1 // FIXME find a way to allow an inner stride on the result if packet_traits::size==1 3 // FIXME could we unify Transpositions and Permutation into a single "shape"?? 1 // TODO: Get rid of m_innerDim if known at compile time 1 // FIXME quick workaround around current limitation of result_of 1 # TODO: The size given below is for C++. For Python the sizes are different. 1 // TODO: Fix this, dont automatically cast to dense 1 // FIXME not sure that's the best way to implement it! 3 // FIXME should be int 3 { //FIXME This should not be needed if the empty permutation is handled transparently 1 // FIXME investigate how to allow lazy evaluation of this product when possible 2 // FIXME DirectAccessBit should not be handled by expressions 1 // TODO(rmlarsen): FIXME: For now, this is just a copy of the CPU cost 1 /* TODO check flags */ 1 // FIXME enable DirectAccess with negative strides? 2 Cost = functor_traits >::Cost // TODO measure cost of log1p 1 // FIXME should this function be called multiplicativeInverse and conjugate() be called inverse() or opposite() ?? 1 //FIXME Should free if already allocated 1 // TODO: gamma is not directly implemented in Eigen. 1 // FIXME to be efficient the following would requires a triangular reduxion code 1 // TODO: replace false, false with conjugate values? 1 // META-FIXME there is no 'friend' keyword around here. Is this obsolete? 1 // FIXME should be written like this: tmp += rhsIt.value() * lhs.col(rhsIt.index()) 1 enum { CoeffReadCost = HugeCost, Flags = Lhs::Flags&RowMajorBit, Alignment = 0 }; // FIXME CoeffReadCost & Flags 1 // FIXME force unaligned store, this is a temporary fix 1 // TODO check if rowPrefix, rowSuffix or rowSeparator contains a newline 1 // TODO: Add transpose flag for output 2 // m_fjac.reserve(VectorXi::Constant(n,5)); // FIXME Find a better alternative 1 // TODO disable scaling if not needed, i.e., if it is roughly uniform? (this will make solve() faster) 1 // FIXME this loop get vectorized by the compiler ! 1 // TODO forceAlignedAccess is temporarily disabled 1 // TODO that's not very nice to have to propagate all these traits. They are currently only needed to handle outer,inner indices. 1 // if the data cannot be aligned (TODO add some compile time tests when possible, e.g. for floats) 2 // FIXME: Should be device and kernel specific. 1 // FIXME should we keep that possibility 2 // TODO : avoid this: 1 // FIXME shall we handle nested_eval here?, 1 // FIXME: should depend on NumberOfRegisters 2 // TODO generalize the scalar type of 'other' 1 // FIXME in C++11 mode this could be replaced by a proper RValue constructor 1 // TODO: populate mkdir 1 * TODO: add a usage example 1 // TODO : once unit tests cover this part,: 1 // TODO: for the 3.3 release, this should be turned to an internal assertion, but let's keep it as is for the beta lifetime 1 # TODO : Remove usage of this. 1 // FIXME not very good if rhs is real and lhs complex while alpha is real too 1 // TODO: pfor (or map) and saxpy 1 // FIXME StorageIndex defined in EIGEN_GENERIC_PUBLIC_INTERFACE should be int 2 // FIXME only store the 2 first elements ? 2 const char *const fromModel) // TODO: Fill them with elegance 1 // TODO look for PlanKey(nfft, ! inverse) and conjugate the twiddles 1 raise RuntimeError("FIXME: Traced RNNs don't support backward") 1 // TODO optimize it for SSE3 and 4 2 // FIXME when we get triangularView-for-rectangular-matrices, this can be simplified 1 // TODO: not sure we have to keep that one, but it helps porting current code to new evaluator mechanism. 1 if((PacketSize%4)==0) // TODO enable vectorized transposition for PacketSize==2 ?? 1 // TODO: is this too much memory to allocate? This simplifies coding a lot, but is wasteful. 1 // FIXME: what is the purpose of the following specialization? Is it for the BlockedSparse format? 1 // if(PacketSize==8) // TODO enbale vectorized transposition for PacketSize==4 1 // FIXME this line involves a temporary matrix 1 // TODO if rhs is large enough it might be beneficial to make sure that dest is sequentially stored in memory, otherwise use a temp 1 # TODO: Implement defragmentation procedure. 1 * FIXME: I don't understand why we need this specialization: isn't this taken care of by the EvalBeforeNestingBit ?? 1 // TODO: let's check whether there does not exist a better fix, like adding a pset0() function. (it crashed on pset1(0)). 1 // FIXME I'm not sure the current mapping is the ideal one. 1 // TODO : this path is not tested by Eigen unit tests 1 void BVIntersect(const BVH1 &tree1, const BVH2 &tree2, Intersector &intersector) //TODO: tandem descent when it makes sense 1 # TODO: Update the scale and intv of expr_out based on in_A and in_B. 1 // TODO: K is int16_t because K is usually very high and int8_t will overflow in 8-bit code. 2 /* FIXME handle mkl_domain_get_max_threads */ \ 1 DiagonalPacketLoadMode = EIGEN_PLAIN_ENUM_MIN(LoadMode,((InnerSize%16) == 0) ? int(Aligned16) : int(evaluator::Alignment)) // FIXME hardcoded 16!! 1 // TODO: maybe the copy could be handled by generic_product_impl so that these overloads would not be needed anymore 1 // FIXME shall we introduce a safe quotient expression in cas 1/lu.coeff(k,k) 1 // FIXME check which version exhibits this issue 1 // FIXME use insertBack 1 // FIXME: do we want such methods ? 1 // TODO: can i trade bank conflicts for coalesced writes? 1 if(scale > 0) scaledMat /= scale; // TODO for scale==0 we could save the remaining operations 1 // TODO: shrB is int32_t because in 8-bit/16-bit code, shrB is usually very high and int8_t/int16_t will overflow. 3 // FIXME shall we introduce a general evaluatior_ref that we can specialize for any sparse object once, and thus remove this copy-pasta thing... 1 // FIXME use sparse vectors ? 1 # TODO: The totalSize calculated below seems inaccurate because empty list in python is itself 64 bytes, 1 Alignment = 0 // FIXME in some rare cases, Alignment could be preserved, like a Vector4f. 1 // FIXME Number of rows in the current block 1 # TODO : softmax or implement here ? 1 Flags = (unsigned int)_MatrixTypeNested::Flags & (RowMajorBit | MaskLvalueBit | DirectAccessBit) & ~RowMajorBit, // FIXME DirectAccessBit should not be handled by expressions 1 // FIXME not very good if lhs is real and rhs complex while alpha is real too 1 // TODO: Get @mat parameter in form that avoids double evaluation. 1 * TODO: extend it to matrices for x abd b */ 1 * FIXME This algorithm will be modified such that the diagonal elements are permuted on the diagonal. 1 # TODO: Add defragmentation call. 1 // FIXME add a generic "prune/filter" expression for both dense and sparse object to sparse 1 // TODO: vectorized path is currently limited to LargestPacketSize x LargestPacketSize cases only. 1 /*m_det_pq = (number_of_transpositions%2) ? -1 : 1; // TODO: It's not needed now; fix upon availability in Eigen */ \ 1 // TODO try to find a way to avoid the need of a temporary register 1 // FIXME if StorageOrder == RowMajor this operation is not very efficient 1 //the two halves, and adds their parent node. TODO: a cache-friendlier layout 1 * TODO: document the storage layout 2 // TODO find a way to avoid the needs of the original expression 1 // TODO this check could be enabled for internal debugging only 1 // TODO returns an expression 1 householderV.applyThisOnTheLeft(m_matrixV); // FIXME this line involves a temporary buffer 1 # TODO: Introduce a post-processing pass to merge consecutive scale adjustments hence generated. 2 // TODO if the maxCoeff is much much smaller than the current scale, 1 // FIXME the .toDenseMatrix() should not be needed... 1 TODO: Return estimate of Z (prototype labels) based on cluster centroids 1 // FIXME reserve nnz non zeros 1 //TODO It is possible as in SuperLU to compute row and columns scaling vectors to equilibrate the matrix mat. 1 Flags = traits<_MatrixTypeNested>::Flags & (RowMajorBit | FlagsLvalueBit | DirectAccessBit), // FIXME DirectAccessBit should not be handled by expressions 1 // FIXME not sure about this one: 1 // FIXME (a bit overkill maybe ?) 1 // TODO this seems almost identical to plain_matrix_type 1 if (m_curs_id->d_type == DT_DIR) continue; //FIXME This may not be available on non BSD systems 1 // FIXME the above copy could be merged with that pass 1 // TODO: use right impl instead if right impl dimensions are known at compile time. 1 // TODO : we should do this only if the size is not already known 1 // TODO: we should also enable direct offsets for the Rhs case. 1 // TODO: This case (2-by-2 blocks with complex conjugate eigenvalues) is probably hidden somewhere 1 // FIXME is it sure we never have to align a Packet1cd? 4 // FIXME omp_get_num_threads()>1 only works for openmp, what if the user does not use openmp? 1 // TODO to ease compiler job, we could specialize product/quotient with a scalar 1 // FIXME: this is not very clean, perhaps this information should be provided by the kernel? 3 // FIXME we could factorize some code with packet(i,j) 1 // FIXME is it still needed ? 1 // TODO implement mixed real-scalar rotations 1 // FIXME the following is not very accurate 2 # TODO : generalize -- remove usage of Declare. 1 # TODO for training : Below is not correct. 1 // TODO optimize it for AltiVec 3 // FIXME here we could return an expression of the sum 1 # TODO : This below thing is the right way of implementing the operator 1 // TODO VectorXi is not necessarily big enough! 1 [minVal, maxVal] = self.mutableVarsProfile[0] # TODO: This function may not work for multiple loops in a code. 1 // TODO : move this to GivensQR once there's such a thing in Eigen 1 // TODO: packing could be faster sometimes if we supported row major tensor mappers 1 // TODO Opportunities for optimization: better root finding algo, better stopping criterion, better 1 * FIXME This class will be modified such that it can be use in the course 1 // FIXME if cols is large enough, then it might be useful to make sure that lhs is sequentially stored 1 // TODO: experiment with a recursive assignment procedure splitting the current 1 // TODO : once qrsolv2 is removed, use ColPivHouseholderQR or PermutationMatrix instead of ipvt 1 // TODO when EIGEN_USE_BLAS is defined, 1 // FIXME implement faster sorting algorithms for very small nnz 1 // FIXME find a way to avoid this copy 1 // TODO use a better sort algorithm !! 1 // FIXME add support for symmetric complex matrix 2 // TODO we should apply that rule only if that's really helpful 1 | // FIXME | instead of || to please GCC 4.4.0 stupid warning "suggest parentheses around &&". 1 self.out.printf('++) {\n') # TODO: What if --? 2 AlignmentMatch = (int(traits::Alignment)==int(Unaligned)) || (DerivedAlignment >= int(Alignment)), // FIXME the first condition is not very clear, it should be replaced by the required alignment 1 * TODO Use modified QuickSplit or std::nth_element to get the smallest values 1