]> https://gitweb.dealii.org/ - dealii.git/log
dealii.git
9 years agoExtend the error message for ExcIndexRange. 914/head
Wolfgang Bangerth [Thu, 7 May 2015 22:57:04 +0000 (17:57 -0500)]
Extend the error message for ExcIndexRange.

I must have had half a dozen students this semester who were unable to
decipher what this error message really means:

An error occurred in line <1183> of file
<../include/deal.II/lac/vector.h> in function
    Number &dealii::Vector<double>::operator()(const size_type) [number
= double]
The violated condition was:
    i<vec_size
The name and call sequence of the exception was:
    ExcIndexRangeType<size_type>(i,0,vec_size)
Additional Information:
Index 0 is not in [0,0[

This commit simply provides them with some more information.

9 years agoMerge pull request #910 from fsonner/paramloopfix
Wolfgang Bangerth [Thu, 7 May 2015 16:22:36 +0000 (11:22 -0500)]
Merge pull request #910 from fsonner/paramloopfix

Remove unused function from MultipleParameterLoop::UserClass

9 years agoRemove unused function from param loop UserClass 910/head
fsonner [Thu, 7 May 2015 14:08:35 +0000 (16:08 +0200)]
Remove unused function from param loop UserClass

9 years agoMerge pull request #907 from tamiko/fix_condition
Timo Heister [Thu, 7 May 2015 11:46:43 +0000 (07:46 -0400)]
Merge pull request #907 from tamiko/fix_condition

Bugfix: Fix misplaced brackets in condition

9 years agoMerge pull request #908 from tamiko/fix_warnings
Martin Kronbichler [Thu, 7 May 2015 09:53:50 +0000 (11:53 +0200)]
Merge pull request #908 from tamiko/fix_warnings

silence a warning, part 2

9 years agosilence a warning, part 2 908/head
Matthias Maier [Thu, 7 May 2015 08:20:32 +0000 (10:20 +0200)]
silence a warning, part 2

9 years agoMerge pull request #906 from tamiko/fix_warnings
Martin Kronbichler [Thu, 7 May 2015 08:05:57 +0000 (10:05 +0200)]
Merge pull request #906 from tamiko/fix_warnings

silence a warning

9 years agoBugfix: Fix misplaced brackets in condition 907/head
Matthias Maier [Thu, 7 May 2015 08:03:57 +0000 (10:03 +0200)]
Bugfix: Fix misplaced brackets in condition

9 years agosilence a warning 906/head
Matthias Maier [Thu, 7 May 2015 07:50:33 +0000 (09:50 +0200)]
silence a warning

9 years agoMerge pull request #883 from Rombur/serial_vector
Wolfgang Bangerth [Tue, 5 May 2015 21:01:37 +0000 (18:01 -0300)]
Merge pull request #883 from Rombur/serial_vector

[RFC] deprecate Trilinos and PETSc wrappers of serial vectors

9 years agoDon't throw an exception recommanding to use mpirun -np 1 in the tutorials. 883/head
Bruno Turcksin [Tue, 5 May 2015 18:57:33 +0000 (13:57 -0500)]
Don't throw an exception recommanding to use mpirun -np 1 in the tutorials.

9 years agoFix double entry in changes.h
Bruno Turcksin [Mon, 4 May 2015 15:09:08 +0000 (10:09 -0500)]
Fix double entry in changes.h

9 years agoDeprecate TrilinosWrappers constructors instead of the whole class to silence warnings.
Bruno Turcksin [Mon, 4 May 2015 14:33:44 +0000 (09:33 -0500)]
Deprecate TrilinosWrappers constructors instead of the whole class to silence warnings.

9 years agoDeprecate the serial TrilinosWrappers and PETScWrappers classes instead of the constr...
Bruno Turcksin [Fri, 1 May 2015 17:43:32 +0000 (12:43 -0500)]
Deprecate the serial TrilinosWrappers and PETScWrappers classes instead of the constructor. Use complete_set_index in the tutorials.

9 years agoThrow an exception when one tries to use in parallel tutorials that are serial. Consi...
Bruno Turcksin [Thu, 30 Apr 2015 16:14:44 +0000 (11:14 -0500)]
Throw an exception when one tries to use in parallel tutorials that are serial. Consistently use MPI_COMM_WORLD with reinit(IndesSet, MPI_Comm) in the tutorials.

9 years agoReplace PETScWrappers::Vector by PETScWrappers::MPI::Vector in step-36.
Bruno Turcksin [Mon, 27 Apr 2015 18:54:56 +0000 (13:54 -0500)]
Replace PETScWrappers::Vector by PETScWrappers::MPI::Vector in step-36.

9 years agoFix a conflict in step-17.
Bruno Turcksin [Sun, 26 Apr 2015 22:50:14 +0000 (17:50 -0500)]
Fix a conflict in step-17.

9 years agoUpdate changes.h
Bruno Turcksin [Sun, 26 Apr 2015 22:46:12 +0000 (17:46 -0500)]
Update changes.h

9 years agoDeprecate PETScWrappers::Vector and PETScWrappers::BlockVector and update the tutorials.
Bruno Turcksin [Sun, 26 Apr 2015 21:59:58 +0000 (16:59 -0500)]
Deprecate PETScWrappers::Vector and PETScWrappers::BlockVector and update the tutorials.

9 years agoDeprecate TrilinosWrappers::Vector and TrilinosWrappers::BlockVector and update the...
Bruno Turcksin [Sat, 25 Apr 2015 00:17:56 +0000 (19:17 -0500)]
Deprecate TrilinosWrappers::Vector and TrilinosWrappers::BlockVector and update the tutorials.

9 years agoMerge pull request #904 from nicolacavallini/master
Wolfgang Bangerth [Tue, 5 May 2015 17:04:38 +0000 (14:04 -0300)]
Merge pull request #904 from nicolacavallini/master

multiple polynomials_bernstein instantiation, in polynomials_bernstein.c...

9 years agomultiple polynomials_bernstein instantiation, in polynomials_bernstein.cc and fe_bern... 904/head
Nicola Cavallini [Tue, 5 May 2015 16:24:20 +0000 (18:24 +0200)]
multiple polynomials_bernstein instantiation, in polynomials_bernstein.cc and fe_bernstein.cc

9 years agoMerge pull request #900 from masterleinad/branch_fix_half_hyper_shell
Wolfgang Bangerth [Tue, 5 May 2015 12:55:18 +0000 (09:55 -0300)]
Merge pull request #900 from masterleinad/branch_fix_half_hyper_shell

Fixed colorization for GridGenerator::half_hyper_shell

9 years agoFixed colorization for GridGenerator::half_hyper_shell 900/head
Daniel Arndt [Tue, 5 May 2015 08:30:07 +0000 (10:30 +0200)]
Fixed colorization for GridGenerator::half_hyper_shell

9 years agoMerge pull request #901 from luca-heltai/fix-dyn-sparsity
Luca Heltai [Tue, 5 May 2015 12:24:33 +0000 (14:24 +0200)]
Merge pull request #901 from luca-heltai/fix-dyn-sparsity

Fix Dynamic Sparsity Pattern bug on Macs

9 years agoCloses #889 901/head
Luca Heltai [Tue, 5 May 2015 11:15:57 +0000 (13:15 +0200)]
Closes #889

9 years agoMerge pull request #896 from masterleinad/branch_add_point_gradient
Wolfgang Bangerth [Tue, 5 May 2015 02:43:55 +0000 (23:43 -0300)]
Merge pull request #896 from masterleinad/branch_add_point_gradient

Implement point_gradient similarly to point_value

9 years agoMerge pull request #899 from tamiko/add_two_small_comments
Wolfgang Bangerth [Tue, 5 May 2015 02:24:08 +0000 (23:24 -0300)]
Merge pull request #899 from tamiko/add_two_small_comments

add two comments

9 years agoadd two comments 899/head
Matthias Maier [Mon, 4 May 2015 23:07:13 +0000 (01:07 +0200)]
add two comments

9 years agoMerge pull request #897 from tamiko/move_constructors
Wolfgang Bangerth [Mon, 4 May 2015 22:34:09 +0000 (19:34 -0300)]
Merge pull request #897 from tamiko/move_constructors

A bunch of bugfixes for move operators

9 years agoRemove move operators and constructors from PETSc variants 897/head
Matthias Maier [Mon, 4 May 2015 12:39:04 +0000 (14:39 +0200)]
Remove move operators and constructors from PETSc variants

9 years agofixup
Matthias Maier [Mon, 4 May 2015 11:53:12 +0000 (13:53 +0200)]
fixup

9 years agoBugfix: Do not reinitialize in move operator
Matthias Maier [Mon, 4 May 2015 11:04:40 +0000 (13:04 +0200)]
Bugfix: Do not reinitialize in move operator

9 years agoBugfix: Implement BlockIndices::swap correctly
Matthias Maier [Mon, 4 May 2015 10:37:05 +0000 (12:37 +0200)]
Bugfix: Implement BlockIndices::swap correctly

9 years agoBugfix: Implement PETScWrappers::BlockVector::swap for different block sizes
Matthias Maier [Mon, 4 May 2015 08:30:48 +0000 (10:30 +0200)]
Bugfix: Implement PETScWrappers::BlockVector::swap for different block sizes

9 years agoBugfix: Correctly set up object in move constructor
Matthias Maier [Mon, 4 May 2015 08:25:47 +0000 (10:25 +0200)]
Bugfix: Correctly set up object in move constructor

9 years agoBugfix: Implement TrilinosWrappers::BlockVector::swap for different block sizes
Matthias Maier [Mon, 4 May 2015 08:19:41 +0000 (10:19 +0200)]
Bugfix: Implement TrilinosWrappers::BlockVector::swap for different block sizes

9 years agoBugfix: Correctly set up object in move constructor
Matthias Maier [Mon, 4 May 2015 08:15:56 +0000 (10:15 +0200)]
Bugfix: Correctly set up object in move constructor

9 years agoBugfix: Implement BlockVector<number>::swap for different block sizes
Matthias Maier [Mon, 4 May 2015 07:36:52 +0000 (09:36 +0200)]
Bugfix: Implement BlockVector<number>::swap for different block sizes

9 years agoBugfix: Correctly set up object in move constructor
Matthias Maier [Mon, 4 May 2015 07:29:37 +0000 (09:29 +0200)]
Bugfix: Correctly set up object in move constructor

9 years agoBugfix: Correctly set up object in move constructor
Matthias Maier [Mon, 4 May 2015 07:20:39 +0000 (09:20 +0200)]
Bugfix: Correctly set up object in move constructor

9 years agoAdd an entry to changes.h and reduce the number of actual implementations for point_v... 896/head
Daniel Arndt [Sun, 3 May 2015 22:42:30 +0000 (00:42 +0200)]
Add an entry to changes.h and reduce the number of actual implementations for point_value and point_gradient

9 years agoImplement point_gradient similarly to point_value
Daniel Arndt [Sun, 26 Apr 2015 21:19:54 +0000 (23:19 +0200)]
Implement point_gradient similarly to point_value

9 years agoMerge pull request #893 from tamiko/move_semantic
Wolfgang Bangerth [Sun, 3 May 2015 20:51:33 +0000 (17:51 -0300)]
Merge pull request #893 from tamiko/move_semantic

Add move constructor and operator to Vector and BlockVector

9 years agoreindent 893/head
Matthias Maier [Sat, 2 May 2015 10:21:13 +0000 (12:21 +0200)]
reindent

9 years agoDo not clear vectors in move operators/constructors for distributed data structures
Matthias Maier [Sat, 2 May 2015 08:10:57 +0000 (10:10 +0200)]
Do not clear vectors in move operators/constructors for distributed data structures

9 years agoAdd tests for native deal variants and TrilinosWrappers::MPI
Matthias Maier [Fri, 1 May 2015 22:50:33 +0000 (00:50 +0200)]
Add tests for native deal variants and TrilinosWrappers::MPI

9 years agoadd a changes.h entry
Matthias Maier [Fri, 1 May 2015 21:01:02 +0000 (23:01 +0200)]
add a changes.h entry

9 years agoAdd move constructor and operator to PETScWrappers::MPI::Vector and PETScWrappers...
Matthias Maier [Fri, 1 May 2015 21:15:31 +0000 (23:15 +0200)]
Add move constructor and operator to PETScWrappers::MPI::Vector and PETScWrappers::MPI::BlockVector

9 years agoAdd move constructor and operator to TrilinosWrappers::MPI::Vector and TrilinosWrappe...
Matthias Maier [Fri, 1 May 2015 20:19:21 +0000 (22:19 +0200)]
Add move constructor and operator to TrilinosWrappers::MPI::Vector and TrilinosWrappers::MPI::BlockVector

9 years agoAdd move constructor and operator to Vector and BlockVector
Matthias Maier [Fri, 1 May 2015 19:47:51 +0000 (21:47 +0200)]
Add move constructor and operator to Vector and BlockVector

9 years agoMerge pull request #890 from tjhei/blockwise-mg
Timo Heister [Thu, 30 Apr 2015 20:50:59 +0000 (16:50 -0400)]
Merge pull request #890 from tjhei/blockwise-mg

multigrid block_wise renumbering

9 years agoadd changelog entry 890/head
Timo Heister [Thu, 30 Apr 2015 20:35:51 +0000 (16:35 -0400)]
add changelog entry

9 years agoextend test
Timo Heister [Thu, 30 Apr 2015 15:02:38 +0000 (11:02 -0400)]
extend test

9 years agoadd serial test for DoFRenumbering::block_wise for MG
Timo Heister [Wed, 29 Apr 2015 20:34:52 +0000 (16:34 -0400)]
add serial test for DoFRenumbering::block_wise for MG

9 years agoRemove is_active check in dof renumbering
fsonner [Sat, 25 Apr 2015 14:50:17 +0000 (16:50 +0200)]
Remove is_active check in dof renumbering

9 years agoCondense locally-owned conditions for renumbering
fsonner [Sat, 25 Apr 2015 14:24:29 +0000 (16:24 +0200)]
Condense locally-owned conditions for renumbering

9 years agoAdd spacedim parameter to renumbering function
fsonner [Fri, 24 Apr 2015 16:00:04 +0000 (18:00 +0200)]
Add spacedim parameter to renumbering function

9 years agoFix block-wise dof renumbering for multigrid
fsonner [Fri, 24 Apr 2015 14:56:20 +0000 (16:56 +0200)]
Fix block-wise dof renumbering for multigrid

Re-adds a version of DoFRenumbering::block_wise working on a single
multigrid level. For this an internal helper function is changed to
work with non-active cells.

9 years agoMerge pull request #887 from drwells/consistent-logical-operators
Timo Heister [Wed, 29 Apr 2015 17:43:16 +0000 (13:43 -0400)]
Merge pull request #887 from drwells/consistent-logical-operators

Consistent logical operators

9 years agoUpdate to match the current style guide. 887/head
David Wells [Tue, 28 Apr 2015 02:23:16 +0000 (22:23 -0400)]
Update to match the current style guide.

9 years agoAdd a style guideline for "&&", "||", and "!".
David Wells [Tue, 28 Apr 2015 02:22:41 +0000 (22:22 -0400)]
Add a style guideline for "&&", "||", and "!".

9 years agoMerge pull request #886 from fsonner/gmresfix
Wolfgang Bangerth [Tue, 28 Apr 2015 13:54:14 +0000 (10:54 -0300)]
Merge pull request #886 from fsonner/gmresfix

Remove duplicate memory freeing in GMRES

9 years agoAdd test for double memory freeing bug in GMRES 886/head
fsonner [Tue, 28 Apr 2015 07:43:28 +0000 (09:43 +0200)]
Add test for double memory freeing bug in GMRES

9 years agoRemove duplicate memory freeing in GMRES
fsonner [Mon, 27 Apr 2015 16:09:59 +0000 (18:09 +0200)]
Remove duplicate memory freeing in GMRES

9 years agoMerge pull request #884 from Rombur/muelu_periodicity_64bit
Wolfgang Bangerth [Sun, 26 Apr 2015 23:38:57 +0000 (20:38 -0300)]
Merge pull request #884 from Rombur/muelu_periodicity_64bit

The muelu_periodicity tests should not be run with 64bit indices.

9 years agoMerge pull request #880 from tamiko/update_documentation
Wolfgang Bangerth [Sun, 26 Apr 2015 23:37:53 +0000 (20:37 -0300)]
Merge pull request #880 from tamiko/update_documentation

Documentation update, minor fixes Changes:

9 years agoThe muelu_periodicity tests should not be run with 64bit indices. 884/head
Bruno Turcksin [Sun, 26 Apr 2015 23:15:18 +0000 (18:15 -0500)]
The muelu_periodicity tests should not be run with 64bit indices.

9 years agoMerge pull request #881 from bangerth/fix-warning
Timo Heister [Sun, 26 Apr 2015 20:34:54 +0000 (16:34 -0400)]
Merge pull request #881 from bangerth/fix-warning

Fix a warning about an unused variable.

9 years agoFix a warning about an unused variable. 881/head
Wolfgang Bangerth [Sun, 26 Apr 2015 19:50:54 +0000 (14:50 -0500)]
Fix a warning about an unused variable.

9 years agoProvide template default arguments 880/head
Matthias Maier [Sun, 26 Apr 2015 12:51:20 +0000 (14:51 +0200)]
Provide template default arguments

9 years agoUpdate documentation
Matthias Maier [Sun, 26 Apr 2015 12:06:05 +0000 (14:06 +0200)]
Update documentation

9 years agoAdd operator*=(number) variant to LinearOperator
Matthias Maier [Sun, 26 Apr 2015 11:36:36 +0000 (13:36 +0200)]
Add operator*=(number) variant to LinearOperator

9 years agoMerge pull request #878 from drwells/remove-stl-references
Matthias Maier [Sun, 26 Apr 2015 17:18:07 +0000 (19:18 +0200)]
Merge pull request #878 from drwells/remove-stl-references

Remove STL references

9 years agoUpdate copyright years. 878/head
David Wells [Sat, 25 Apr 2015 17:14:20 +0000 (13:14 -0400)]
Update copyright years.

9 years agoUpdate the estimated memory consumption comment.
David Wells [Sat, 25 Apr 2015 17:13:31 +0000 (13:13 -0400)]
Update the estimated memory consumption comment.
This one had a sentence fragment and mentioned the STL.

9 years agoRemove compatability with EGCS 1.1.
David Wells [Sat, 25 Apr 2015 15:58:58 +0000 (11:58 -0400)]
Remove compatability with EGCS 1.1.
Chances are GCC has been patched in the last sixteen years to fix this
issue.

9 years agoRemove references to the STL.
David Wells [Sat, 25 Apr 2015 15:57:29 +0000 (11:57 -0400)]
Remove references to the STL.
These comments should refer to the C++ standard instead, which now
includes the STL (standard template library).

9 years agoMerge pull request #867 from bangerth/remove-deprecated-row-iterators
Matthias Maier [Sun, 26 Apr 2015 14:28:02 +0000 (16:28 +0200)]
Merge pull request #867 from bangerth/remove-deprecated-row-iterators

Remove deprecated row iterators

9 years agoMerge pull request #877 from tamiko/silence_warnings
Wolfgang Bangerth [Sat, 25 Apr 2015 11:51:17 +0000 (06:51 -0500)]
Merge pull request #877 from tamiko/silence_warnings

Silence extra diagnostics in the testsuite

9 years agoSilence extra diagnostics in the testsuite 877/head
Matthias Maier [Sat, 25 Apr 2015 09:53:14 +0000 (11:53 +0200)]
Silence extra diagnostics in the testsuite

9 years agoMerge pull request #864 from ian-r-rose/new_mpi_sum_utilities
Timo Heister [Sat, 25 Apr 2015 02:11:29 +0000 (22:11 -0400)]
Merge pull request #864 from ian-r-rose/new_mpi_sum_utilities

Add collective MPI sums for tensorial objects

9 years agoAdd collective MPI sums to tensorial objects 864/head
Ian Rose [Wed, 22 Apr 2015 23:20:57 +0000 (16:20 -0700)]
Add collective MPI sums to tensorial objects

Fix indentation

indentation

Move functions to mpi.h, address other comments

Try to avoid variable length array declaration

Add entry to changelog

Fix slash

9 years agoMerge pull request #873 from mtezzele/fe_tools-with-fe_bernstein
Wolfgang Bangerth [Fri, 24 Apr 2015 14:12:29 +0000 (09:12 -0500)]
Merge pull request #873 from mtezzele/fe_tools-with-fe_bernstein

Added FE_Bernstein in fe_tools.cc.

9 years agoadded FE_Bernstein in tests/fe/fe_tools_01.cc 873/head
Marco Tezzele [Fri, 24 Apr 2015 13:38:06 +0000 (15:38 +0200)]
added FE_Bernstein in tests/fe/fe_tools_01.cc

9 years agoAdded fe_bernstein in fe_tools.cc. Now get_fe_from_name works.
Marco Tezzele [Fri, 24 Apr 2015 10:04:40 +0000 (12:04 +0200)]
Added fe_bernstein in fe_tools.cc. Now get_fe_from_name works.

9 years agoMerge pull request #874 from tjhei/doxygen_fixes
Matthias Maier [Fri, 24 Apr 2015 13:42:48 +0000 (15:42 +0200)]
Merge pull request #874 from tjhei/doxygen_fixes

doxygen fixes

9 years agoremove @tref 874/head
Timo Heister [Fri, 24 Apr 2015 13:28:03 +0000 (09:28 -0400)]
remove @tref

9 years agodoxygen fixes
Timo Heister [Fri, 24 Apr 2015 13:14:11 +0000 (09:14 -0400)]
doxygen fixes

- Looks like \footnotesize is not valid in MathJax
- escape _ in linear_operator.h

9 years agoMerge pull request #869 from bangerth/doc-update-24
Timo Heister [Fri, 24 Apr 2015 01:35:50 +0000 (21:35 -0400)]
Merge pull request #869 from bangerth/doc-update-24

Update documentation in one of the examples.

9 years agoDon't compare floating point numbers directly, but via std::fabs. 869/head
Wolfgang Bangerth [Fri, 24 Apr 2015 01:24:27 +0000 (20:24 -0500)]
Don't compare floating point numbers directly, but via std::fabs.

9 years agoUpdate documentation in one of the examples.
Wolfgang Bangerth [Thu, 23 Apr 2015 13:32:39 +0000 (08:32 -0500)]
Update documentation in one of the examples.

I tripped over this place the other day because we were setting
boundary indicators without checking that the face is actually
at the boundary. One of my students used the code as the
template to build his own and promptly proceeded to set the
boundary indicator of an internal face.

9 years agoRemove deprecated row_iterator type and corresponding functions row_begin() and row_e... 867/head
Wolfgang Bangerth [Wed, 22 Apr 2015 12:14:23 +0000 (07:14 -0500)]
Remove deprecated row_iterator type and corresponding functions row_begin() and row_end() from sparsity pattern classes.

9 years agoAvoid using the deprecated row_iterator types of sparsity patterns. Replace them...
Wolfgang Bangerth [Wed, 22 Apr 2015 12:12:31 +0000 (07:12 -0500)]
Avoid using the deprecated row_iterator types of sparsity patterns. Replace them with uses of regular iterators.

9 years agoAvoid using the deprecated row_iterator types of sparsity patterns. Replace them...
Wolfgang Bangerth [Wed, 22 Apr 2015 12:12:21 +0000 (07:12 -0500)]
Avoid using the deprecated row_iterator types of sparsity patterns. Replace them with uses of regular iterators.

9 years agoAvoid using the deprecated row_iterator types of sparsity patterns. Replace them...
Wolfgang Bangerth [Wed, 22 Apr 2015 12:12:20 +0000 (07:12 -0500)]
Avoid using the deprecated row_iterator types of sparsity patterns. Replace them with uses of regular iterators.

9 years agoAvoid using the deprecated row_iterator types of sparsity patterns. Replace them...
Wolfgang Bangerth [Wed, 22 Apr 2015 12:12:20 +0000 (07:12 -0500)]
Avoid using the deprecated row_iterator types of sparsity patterns. Replace them with uses of regular iterators.

9 years agoAvoid using the deprecated row_iterator types of sparsity patterns. Replace them...
Wolfgang Bangerth [Wed, 22 Apr 2015 12:12:19 +0000 (07:12 -0500)]
Avoid using the deprecated row_iterator types of sparsity patterns. Replace them with uses of regular iterators.

9 years agoAvoid using the deprecated row_iterator types of sparsity patterns. Replace them...
Wolfgang Bangerth [Wed, 22 Apr 2015 12:12:19 +0000 (07:12 -0500)]
Avoid using the deprecated row_iterator types of sparsity patterns. Replace them with uses of regular iterators.

9 years agoAvoid using the deprecated row_iterator types of sparsity patterns. Replace them...
Wolfgang Bangerth [Wed, 22 Apr 2015 12:12:19 +0000 (07:12 -0500)]
Avoid using the deprecated row_iterator types of sparsity patterns. Replace them with uses of regular iterators.


In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.