/[escript]/branches/arrexp_2137_win_merge/escript/src/DataEmpty.h
ViewVC logotype

Log of /branches/arrexp_2137_win_merge/escript/src/DataEmpty.h

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Sticky Revision:

Revision 2213 - (view) (annotate) - [select for diffs]
Modified Wed Jan 14 00:23:39 2009 UTC (10 years, 7 months ago) by jfenwick
File length: 4196 byte(s)
Diff to previous 2212
In preparation for merging to trunk


Revision 2212 - (view) (annotate) - [select for diffs]
Modified Wed Jan 14 00:15:00 2009 UTC (10 years, 7 months ago) by jfenwick
Original Path: branches/arrexp_2137_win/escript/src/DataEmpty.h
File length: 4196 byte(s)
Diff to previous 2202
Executive summary:

This commit adds copy on write checks to operations involving shared data. 

Changes:

new #defines:
~~~~~~~~~~~~~
Data.cpp has ASSIGNMENT_MEANS_DEEPCOPY (defaults to undefined).
Defining this will put the data = operator back to making deep copies instead
of sharing data (now the default.)

Data:
~~~~~
. Added exclusiveWrite method to copy the underlying data if it is shared.
. Some operators which took python objects now call the c++ versions intead of duplicating code.

DataAbstract and offspring:
~~~~~~~~~~~~~~~~~~~~~~~~~~~
. Added method to determine whether the data is currently shared.
. Added getVectorRO to children of DataReady.
. Added getTagRO.

. Operations which modify values in place (or return modifiable pointers) now use
a macro to check for sharing. In the case where a modification attempt is detected, it throws an exception. In the future, I will enable this only for debugging.

. This shold not really have been required but the compiler was not choosing the use the const version as I would have liked. Besides, this makes things explict.

. Moved (and de-inlined) getVector in DataConstant (It was virtual in a parent class).

Unit tests:
~~~~~~~~~~~
Added both python and c++ unit tests to check known cases of sharing and "inplace"
modification operations.

General:
~~~~~~~~
Removed some commented out code.


Revision 2202 - (view) (annotate) - [select for diffs]
Modified Fri Jan 9 01:28:32 2009 UTC (10 years, 7 months ago) by jfenwick
Original Path: branches/arrexp_2137_win/escript/src/DataEmpty.h
File length: 4115 byte(s)
Diff to previous 2111
Branching the array experiments from version 2137.
The idea is to make the changes required for the c++ changes to compile 
on windows without bringing in the later python changes.



Revision 2111 - (view) (annotate) - [select for diffs]
Modified Mon Dec 1 01:16:18 2008 UTC (10 years, 8 months ago) by jfenwick
Original Path: branches/arrexp_trunk2098/escript/src/DataEmpty.h
File length: 4115 byte(s)
Diff to previous 2005
Doin' some experiments


Revision 2005 - (view) (annotate) - [select for diffs]
Modified Mon Nov 10 01:21:39 2008 UTC (10 years, 9 months ago) by jfenwick
Original Path: trunk/escript/src/DataEmpty.h
File length: 4115 byte(s)
Diff to previous 1811
Bringing all changes across from schroedinger.
(Note this does not mean development is done, just that it will happen
on the trunk for now).
If anyone notices any problems please contact me.



Revision 1811 - (view) (annotate) - [select for diffs]
Modified Thu Sep 25 23:11:13 2008 UTC (10 years, 10 months ago) by ksteube
Original Path: trunk/escript/src/DataEmpty.h
File length: 3967 byte(s)
Diff to previous 1803
Copyright updated in all files


Revision 1803 - (view) (annotate) - [select for diffs]
Modified Wed Sep 24 06:20:29 2008 UTC (10 years, 10 months ago) by jfenwick
Original Path: trunk/escript/src/DataEmpty.h
File length: 4002 byte(s)
Diff to previous 1799
All about making DataEmpty instances throw.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Exposed getDim from AbstractDomain to python to fix bug.

Added isEmpty member to DataAbstract to allow it to throw is queries are 
made about a DataEmpty instance.


Added exceptions to DataAbstract, DataEmpty and Data to prevent calls 
being made against DataEmpty objects.
The following still work as expected on DataEmpty instances

copy, getDomain, getFunctionSpace, isEmpty, isExpanded, isProtected, 
isTagged, setprotection.

You can also call interpolate, however it should throw if you try to 
change FunctionSpaces.



Revision 1799 - (view) (annotate) - [select for diffs]
Modified Wed Sep 17 06:33:18 2008 UTC (10 years, 11 months ago) by jfenwick
Original Path: trunk/escript/src/DataEmpty.h
File length: 3951 byte(s)
Diff to previous 1796
Added Data::copySelf() [Note: this is exposed as copy() in python].
This method returns a pointer to a deep copy of the target.
There are c++ tests but no python tests for this yet.

All DataAbstracts now have a deepCopy() which simplifies the 
implementation of the compy methods.



Revision 1796 - (view) (annotate) - [select for diffs]
Modified Wed Sep 17 01:45:46 2008 UTC (10 years, 11 months ago) by jfenwick
Original Path: trunk/escript/src/DataEmpty.h
File length: 3826 byte(s)
Diff to previous 1388
Merged noarrayview branch onto trunk.



Revision 1388 - (view) (annotate) - [select for diffs]
Modified Fri Jan 11 07:45:58 2008 UTC (11 years, 7 months ago) by trankine
Original Path: trunk/escript/src/DataEmpty.h
File length: 3582 byte(s)
Diff to previous 1387
And get the *(&(*&(* name right

Revision 1387 - (view) (annotate) - [select for diffs]
Modified Fri Jan 11 07:45:26 2008 UTC (11 years, 7 months ago) by trankine
Original Path: temp/escript/src/DataEmpty.h
File length: 3582 byte(s)
Diff to previous 1384
Restore the trunk that existed before the windows changes were committed to the (now moved to branches) old trunk.

Revision 1384 - (view) (annotate) - [select for diffs]
Modified Fri Jan 11 02:29:38 2008 UTC (11 years, 7 months ago) by phornby
Original Path: temp_trunk_copy/escript/src/DataEmpty.h
File length: 3582 byte(s)
Diff to previous 1312
Make a temp copy of the trunk before checking in the windows changes



Revision 1312 - (view) (annotate) - [select for diffs]
Modified Mon Sep 24 06:18:44 2007 UTC (11 years, 10 months ago) by ksteube
Original Path: trunk/escript/src/DataEmpty.h
File length: 3582 byte(s)
Diff to previous 854
The MPI branch is hereby closed. All future work should be in trunk.

Previously in revision 1295 I merged the latest changes to trunk into trunk-mpi-branch.
In this revision I copied all files from trunk-mpi-branch over the corresponding
trunk files. I did not use 'svn merge', it was a copy.


Revision 854 - (view) (annotate) - [select for diffs]
Modified Thu Sep 21 05:29:42 2006 UTC (12 years, 11 months ago) by gross
Original Path: trunk/escript/src/DataEmpty.h
File length: 3715 byte(s)
Diff to previous 757
Some modifications to the binary operations +,-,*/, pow. 
The code is a bit simpler now and more efficient has there is
no reseising required now. the resizing method has been removed as
it is very, very inefficient. Even serial code should be faster now.
It is now forbidden to do an inplace update of scalar data object with an object 
of rank >0 as this is very slow (and does not make much sense). 



Revision 757 - (view) (annotate) - [select for diffs]
Modified Mon Jun 26 13:12:56 2006 UTC (13 years, 1 month ago) by woo409
Original Path: trunk/escript/src/DataEmpty.h
File length: 4066 byte(s)
Diff to previous 615
+ Merge of intelc_win32 branch (revision 741:755) with trunk. Tested on iVEC altix (run_tests and py_tests all pass)


Revision 615 - (view) (annotate) - [select for diffs]
Modified Wed Mar 22 02:12:00 2006 UTC (13 years, 5 months ago) by elspeth
Original Path: trunk/escript/src/DataEmpty.h
File length: 3880 byte(s)
Diff to previous 474
More copyright information.


Revision 474 - (view) (annotate) - [select for diffs]
Modified Mon Jan 30 04:23:44 2006 UTC (13 years, 6 months ago) by jgs
Original Path: trunk/escript/src/DataEmpty.h
File length: 4202 byte(s)
Copied from: trunk/escript/src/Data/DataEmpty.h revision 469
Diff to previous 155
restructure escript source tree
move src/Data/* -> src
remove inc
modify #includes and cpppath settings accordingly


Revision 155 - (view) (annotate) - [select for diffs]
Modified Wed Nov 9 02:02:19 2005 UTC (13 years, 9 months ago) by jgs
Original Path: trunk/escript/src/Data/DataEmpty.h
File length: 4202 byte(s)
Diff to previous 121
move all directories from trunk/esys2 into trunk and remove esys2


Revision 121 - (view) (annotate) - [select for diffs]
Modified Fri May 6 04:26:16 2005 UTC (14 years, 3 months ago) by jgs
Original Path: trunk/esys2/escript/src/Data/DataEmpty.h
File length: 4202 byte(s)
Diff to previous 102
Merge of development branch back to main trunk on 2005-05-06


Revision 102 - (view) (annotate) - [select for diffs]
Modified Wed Dec 15 07:08:39 2004 UTC (14 years, 8 months ago) by jgs
Original Path: trunk/esys2/escript/src/Data/DataEmpty.h
File length: 3945 byte(s)
Diff to previous 100
*** empty log message ***


Revision 100 - (view) (annotate) - [select for diffs]
Modified Wed Dec 15 03:48:48 2004 UTC (14 years, 8 months ago) by jgs
Original Path: trunk/esys2/escript/src/Data/DataEmpty.h
File length: 3637 byte(s)
Diff to previous 97
*** empty log message ***


Revision 97 - (view) (annotate) - [select for diffs]
Modified Tue Dec 14 05:39:33 2004 UTC (14 years, 8 months ago) by jgs
Original Path: trunk/esys2/escript/src/Data/DataEmpty.h
File length: 3945 byte(s)
Diff to previous 82
*** empty log message ***


Revision 82 - (view) (annotate) - [select for diffs]
Added Tue Oct 26 06:53:54 2004 UTC (14 years, 9 months ago) by jgs
Original Path: trunk/esys2/escript/src/Data/DataEmpty.h
File length: 3637 byte(s)
Initial revision


This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

  ViewVC Help
Powered by ViewVC 1.1.26