[Bf-blender-cvs] [e6c58df] master: OpenNL: replace SuperLU by Eigen SparseLU solver.
Brecht Van Lommel
noreply at git.blender.org
Sun Nov 22 22:54:38 CET 2015
Commit: e6c58df74e1fe8e7921048bc145b6318322541f2
Author: Brecht Van Lommel
Date: Sun Nov 22 02:29:31 2015 +0100
Branches: master
https://developer.blender.org/rBe6c58df74e1fe8e7921048bc145b6318322541f2
OpenNL: replace SuperLU by Eigen SparseLU solver.
Performance is roughly the same because it's using the same COLAMD ordering
and supernodal LU factorization algorithms. Solve results also appear to be
identical.
===================================================================
M intern/opennl/CMakeLists.txt
M intern/opennl/SConscript
D intern/opennl/doc/OpenNL_License.txt
D intern/opennl/doc/OpenNL_Readme.txt
D intern/opennl/doc/SuperLU_License.txt
D intern/opennl/doc/SuperLU_Readme.txt
M intern/opennl/extern/ONL_opennl.h
M intern/opennl/intern/opennl.cpp
D intern/opennl/superlu/Cnames.h
D intern/opennl/superlu/get_perm_c.c
D intern/opennl/superlu/heap_relax_snode.c
D intern/opennl/superlu/lsame.c
D intern/opennl/superlu/memory.c
D intern/opennl/superlu/mmd.c
D intern/opennl/superlu/relax_snode.c
D intern/opennl/superlu/scolumn_bmod.c
D intern/opennl/superlu/scolumn_dfs.c
D intern/opennl/superlu/scopy_to_ucol.c
D intern/opennl/superlu/sgssv.c
D intern/opennl/superlu/sgstrf.c
D intern/opennl/superlu/sgstrs.c
D intern/opennl/superlu/smemory.c
D intern/opennl/superlu/smyblas2.c
D intern/opennl/superlu/sp_coletree.c
D intern/opennl/superlu/sp_ienv.c
D intern/opennl/superlu/sp_preorder.c
D intern/opennl/superlu/spanel_bmod.c
D intern/opennl/superlu/spanel_dfs.c
D intern/opennl/superlu/spivotL.c
D intern/opennl/superlu/spruneL.c
D intern/opennl/superlu/ssnode_bmod.c
D intern/opennl/superlu/ssnode_dfs.c
D intern/opennl/superlu/ssp_blas2.c
D intern/opennl/superlu/ssp_blas3.c
D intern/opennl/superlu/ssp_defs.h
D intern/opennl/superlu/strsv.c
D intern/opennl/superlu/superlu_timer.c
D intern/opennl/superlu/supermatrix.h
D intern/opennl/superlu/sutil.c
D intern/opennl/superlu/util.c
D intern/opennl/superlu/util.h
D intern/opennl/superlu/xerbla.c
===================================================================
diff --git a/intern/opennl/CMakeLists.txt b/intern/opennl/CMakeLists.txt
index 32bd438..9416bc2 100644
--- a/intern/opennl/CMakeLists.txt
+++ b/intern/opennl/CMakeLists.txt
@@ -43,51 +43,16 @@ add_definitions(
set(INC
extern
- superlu
)
set(INC_SYS
../../extern/colamd/Include
+ ../../extern/Eigen3
)
set(SRC
intern/opennl.cpp
- superlu/get_perm_c.c
- superlu/heap_relax_snode.c
- superlu/lsame.c
- superlu/memory.c
- superlu/mmd.c
- superlu/relax_snode.c
- superlu/scolumn_bmod.c
- superlu/scolumn_dfs.c
- superlu/scopy_to_ucol.c
- superlu/sgssv.c
- superlu/sgstrf.c
- superlu/sgstrs.c
- superlu/smemory.c
- superlu/smyblas2.c
- superlu/sp_coletree.c
- superlu/sp_ienv.c
- superlu/sp_preorder.c
- superlu/spanel_bmod.c
- superlu/spanel_dfs.c
- superlu/spivotL.c
- superlu/spruneL.c
- superlu/ssnode_bmod.c
- superlu/ssnode_dfs.c
- superlu/ssp_blas2.c
- superlu/ssp_blas3.c
- superlu/strsv.c
- superlu/superlu_timer.c
- superlu/sutil.c
- superlu/util.c
- superlu/xerbla.c
-
extern/ONL_opennl.h
- superlu/Cnames.h
- superlu/ssp_defs.h
- superlu/supermatrix.h
- superlu/util.h
)
blender_add_lib(bf_intern_opennl "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/intern/opennl/SConscript b/intern/opennl/SConscript
index dcd9ea4..99df29b 100644
--- a/intern/opennl/SConscript
+++ b/intern/opennl/SConscript
@@ -27,9 +27,9 @@
Import ('env')
-sources = env.Glob('intern/*.cpp') + env.Glob('superlu/*.c')
+sources = env.Glob('intern/*.cpp')
-incs = 'extern superlu ../../extern/colamd/Include'
+incs = 'extern ../../extern/colamd/Include ../../extern/Eigen3'
env.BlenderLib ('bf_intern_opennl', sources, Split(incs), [], libtype=['intern','player'], priority=[100,90] )
diff --git a/intern/opennl/doc/OpenNL_License.txt b/intern/opennl/doc/OpenNL_License.txt
deleted file mode 100644
index 4e8d97f..0000000
--- a/intern/opennl/doc/OpenNL_License.txt
+++ /dev/null
@@ -1,341 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to i
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list