亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gsl-design.texi

?? 用于VC.net的gsl的lib庫文件包
?? TEXI
?? 第 1 頁 / 共 4 頁
字號:
@c @item Cellular automata

@c @end itemize

@node What routines are not implemented, Design of  Numerical Libraries, What routines are implemented, Design
@section What routines are not implemented

@itemize @bullet
@item anything which already exists as a high-quality GPL'ed package.

@item anything which is too big
 -- i.e. an application in its own right rather than a subroutine

For example, partial differential equation solvers are often huge and
very specialized applications (since there are so many types of PDEs,
types of solution, types of grid, etc).  This sort of thing should
remain separate.  It is better to point people to the good applications
which exist.

@item anything which is independent and useful separately.

Arguably functions for manipulating date and time, or financial
functions might be included in a "scientific" library.  However, these
sorts of modules could equally well be used independently in other
programs, so it makes sense for them to be separate libraries.
@end itemize

@node  Design of  Numerical Libraries, Code Reuse, What routines are not implemented, Design
@section  Design of  Numerical Libraries

In writing a numerical library there is a unavoidable conflict between
completeness and simplicity.  Completeness refers to the ability to
perform operations on different objects so that the group is
"closed". In mathematics objects can be combined and operated on in an
infinite number of ways.  For example, I can take the derivative of a
scalar field wrt a vector and the derivative of a vector field wrt a
scalar (along a path).

There is a definite tendency to unconsciously try to reproduce all these
possibilities in a numerical library, by adding new features one by
one. After all, it is always easy enough to support just one more
feature.... so why not?

Looking at the big picture, no-one would start out by saying "I want to
be able to represent every possible mathematical object and operation
using C structs" -- this is a strategy which is doomed to fail.  There
is a limited amount of complexity which can be represented in a
programming language like C.  Attempts to reproduce the complexity of
mathematics within such a language would just lead to a morass of
unmaintainable code.  However, it's easy to go down that road if you
don't think about it ahead of time.

It is better to choose simplicity over completeness.  In designing new
parts of the library keep modules independent where possible. If
interdependencies between modules are introduced be sure about where you
are going to draw the line.

Whenever possible choose algorithms which scale well and always remember
to handle asymptotic cases.  This is particularly relevant for functions
with integer arguments.  It is tempting to implement these using the
simple @math{O(n)} algorithms used to define the functions, such as the
many recurrence relations found in Abramowitz and Stegun.  While such
methods might be acceptable for @math{n=O(10-100)} they will not be
satisfactory for a user who needs to compute the same function for
@math{n=1000000}.

@node Code Reuse, Standards and conventions, Design of  Numerical Libraries, Design
@section Code Reuse

It is useful if people can grab a single source file and include it in
their own programs without needing the whole library.  Try to allow
standalone files like this whenever it is reasonable.  Obviously the
user might need to define a few macros, such as GSL_ERROR, to compile
the file but that is ok.  Examples where this can be done: grabbing a
single random number generator.

@node Standards and conventions, Background and Preparation, Code Reuse, Design
@section Standards and conventions

The people who kick off this project should set the coding standards and
conventions.  In order of precedence the  standards that we follow are,

@itemize @bullet
@item We follow the GNU Coding Standards.
@item We follow the conventions of the ANSI Standard C Library.
@item We follow the conventions of the GNU C Library.
@item We follow the conventions of the glib GTK support Library.
@end itemize

The references for these standards are the @cite{GNU Coding Standards}
document, Harbison and Steele @cite{C: A Reference Manual}, the
@cite{GNU C Library Manual} (version 2), and the Glib source code.

For mathematical formulas, always follow the conventions in Abramowitz &
Stegun, the @cite{Handbook of Mathematical Functions}, since it is the
definitive reference and also in the public domain.

If the project has a philosophy it is to "Think in C".  Since we are
working in C we should only do what is natural in C, rather than trying
to simulate features of other languages.  If there is something which is
unnatural in C and has to be simulated then we avoid using it. If this
means leaving something out of the library, or only offering a limited
version then so be it.  It is not worthwhile making the library
over-complicated.  There are numerical libraries in other languages, and
if people need the features of those languages it would be sensible for
them to use the corresponding libraries, rather than coercing a C
library into doing that job.  

It should be borne in mind at all time that C is a macro-assembler.  If
you are in doubt about something being too complicated ask yourself the
question "Would I try to write this in macro-assembler?" If the answer
is obviously "No" then do not try to include it in GSL. [BJG]

It will be useful to read the following paper,

@itemize @asis
@item 
Kiem-Phong Vo, ``The Discipline and Method Architecture for Reusable
Libraries'', Software - Practice & Experience, v.30, pp.107-128, 2000.
@end itemize
@noindent
It is available from
@url{http://www.research.att.com/sw/tools/sfio/dm-spe.ps} or the earlier
technical report Kiem-Phong Vo, "An Architecture for Reusable Libraries"
@url{http://citeseer.nj.nec.com/48973.html}.

There are associated papers on Vmalloc, SFIO, and CDT which are also
relevant to the design of portable C libraries.

@itemize @asis
@item
Kiem-Phong Vo, ``Vmalloc: A General and Efficient Memory
Allocator''. Software Practice & Experience, 26:1--18, 1996.

@url{http://www.research.att.com/sw/tools/vmalloc/vmalloc.ps}
@item
Kiem-Phong Vo. ``Cdt: A Container Data Type Library''. Soft. Prac. &
Exp., 27:1177--1197, 1997

@url{http://www.research.att.com/sw/tools/cdt/cdt.ps}
@item
David G. Korn and Kiem-Phong Vo, ``Sfio: Safe/Fast String/File IO'',
Proceedings of the Summer '91 Usenix Conference, pp.  235-256, 1991.

@url{http://citeseer.nj.nec.com/korn91sfio.html}
@end itemize

Source code should be indented according to the GNU Coding Standards,
with spaces not tabs. For example, by using the @code{indent} command:

@example
indent -gnu -nut *.c *.h
@end example
@noindent
The @code{-nut} option converts tabs into spaces.

@node Background and Preparation, Documentation, Standards and conventions, Design
@section Background and Preparation

Before implementing something be sure to research the subject
thoroughly!  This will save a lot of time in the long-run.  The two most
important steps are,

@enumerate
@item
to determine whether there is already a free library (GPL or
GPL-compatible) which does the job.  If so, there is no need to
reimplement it.  Carry out a search on Netlib, GAMs, na-net,
sci.math.num-analysis and the web in general. This should also provide
you with a list of existing proprietary libraries which are relevant,
keep a note of these for future reference in step 2.

@item 
make a comparative survey of existing implementations in the
commercial/free libraries. Examine the typical APIs, methods of
communication between program and subroutine, and classify them so that
you are familiar with the key concepts or features that an
implementation may or may not have, depending on the relevant tradeoffs
chosen.  Be sure to review the documentation of existing libraries for
useful references.

@item
read up on the subject and determine the state-of-the-art.  Find the
latest review papers.  A search of the following journals should be
undertaken.

@itemize @asis
@item ACM Transactions on Mathematical Software
@item Numerische Mathematik
@item Journal of Computation and Applied Mathematics
@item Computer Physics Communications
@item SIAM Journal of Numerical Analysis
@item SIAM Journal of Scientific Computing
@end itemize
@end enumerate

@node Documentation, Namespace, Background and Preparation, Design
@section Documentation
Documentation: the project leaders should give examples of how things
are to be documented.  High quality documentation is absolutely
mandatory, so documentation should introduce the topic, and give careful
reference for the provided functions. The priority is to provide
reference documentation for each function. It is not necessary to
provide tutorial documentation.

Use free software, such as GNU Plotutils, to produce the graphs in the
manual.

Some of the graphs have been made with gnuplot which is not truly free
(or GNU) software, and some have been made with proprietary
programs. These should be replaced with output from GNU plotutils.

When citing references be sure to use the standard, definitive and best
reference books in the field, rather than lesser known text-books or
introductory books which happen to be available (e.g. from undergraduate
studies).  For example, references concerning algorithms should be to
Knuth, references concerning statistics should be to Kendall & Stuart,
references concerning special functions should be to Abramowitz & Stegun
(Handbook of Mathematical Functions AMS-55), etc.

The standard references have a better chance of being available in an
accessible library for the user.  If they are not available and the user
decides to buy a copy in order to look up the reference then this also
gives them the best quality book which should also cover the largest
number of other references in the GSL Manual.  If many different books
were to be referenced this would be an expensive and inefficient use of
resources for a user who needs to look up the details of the algorithms.
Reference books also stay in print much longer than text books, which
are often out-of-print after a few years.

Similarly, cite original papers wherever possible.  Be sure to keep
copies of these for your own reference (e.g. when dealing with bug
reports) or to pass on to future maintainers.

If you need help in tracking down references, ask on the
@code{gsl-discuss} mailing list.  There is a group of volunteers with
access to good libraries who have offered to help GSL developers get
copies of papers.

[JT section: written by James Theiler

And we furthermore promise to try as hard as possible to document
the software: this will ideally involve discussion of why you might want
to use it, what precisely it does, how precisely to invoke it, 
how more-or-less it works, and where we learned about the algorithm,
and (unless we wrote it from scratch) where we got the code.
We do not plan to write this entire package from scratch, but to cannibalize
existing mathematical freeware, just as we expect our own software to
be cannibalized.]

@node Namespace, Header files, Documentation, Design
@section Namespace

Use @code{gsl_} as a prefix for all exported functions and variables.

Use @code{GSL_} as a prefix for all exported macros.

All exported header files should have a filename with the prefix @code{gsl_}.

All installed libraries should have a name like libgslhistogram.a

Any installed executables (utility programs etc) should have the prefix
@code{gsl-} (with a hyphen, not an underscore).

All function names, variables, etc should be in lower case.  Macros and
preprocessor variables should be in upper case.

@node Header files, Target system, Namespace, Design
@section Header files

Installed header files should be idempotent, i.e. surround them by the
preprocessor conditionals like the following,

@example
#ifndef __GSL_HISTOGRAM_H__
#define __GSL_HISTOGRAM_H__
...
#endif /* __GSL_HISTOGRAM_H__ */
@end example

@node Target system, Function Names, Header files, Design
@section Target system

The target system is ANSI C, with a full Standard C Library, and IEEE
arithmetic.

@node Function Names, Object-orientation, Target system, Design
@section Function Names

Each module has a name, which prefixes any function names in that
module, e.g. the module gsl_fft has function names like
gsl_fft_init. The modules correspond to subdirectories of the library
source tree.

@node Object-orientation, Comments, Function Names, Design
@section Object-orientation

The algorithms should be object oriented, but only to the extent that is
easy in portable ANSI C.  The use of casting or other tricks to simulate
inheritance is not desirable, and the user should not have to be aware
of anything like that.  This means many types of patterns are ruled
out.  However, this is not considered a problem -- they are too
complicated for the library.  

Note: it is possible to define an abstract base class easily in C, using
function pointers.  See the rng directory for an example. 

When reimplementing public domain fortran code, please try to introduce
the appropriate object concepts as structs, rather than translating the
code literally in terms of arrays.  The structs can be useful just
within the file, you don't need to export them to the user.

For example, if a fortran program repeatedly uses a subroutine like,

@example
SUBROUTINE  RESIZE (X, K, ND, K1)
@end example
@noindent
where X(K,D) represents a grid to be resized to X(K1,D) you can make
this more readable by introducing a struct,

@smallexample
struct grid @{
    int nd;  /* number of dimensions */
    int k;   /* number of bins */
    double * x;   /* partition of axes, array of size x[k][nd] */
@}

void
resize_grid (struct grid * g, int k_new)
@{
...
@}
@end smallexample
@noindent

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久丝袜美腿综合| 大胆亚洲人体视频| 欧美在线视频全部完| 一区二区三区不卡视频| 色综合久久久网| 亚洲成人久久影院| 欧美一区二区三区啪啪| 黄网站免费久久| 中文字幕一区二区三区在线不卡| 91成人免费在线视频| 亚洲五码中文字幕| 欧美大白屁股肥臀xxxxxx| 国产在线精品一区二区不卡了| 国产精品久久午夜夜伦鲁鲁| 91麻豆6部合集magnet| 偷拍与自拍一区| 久久久99精品免费观看| 成人av片在线观看| 亚洲第四色夜色| 久久综合99re88久久爱| 成人久久18免费网站麻豆| 亚洲美女精品一区| 日韩一区二区三区电影在线观看| 国产精品一区二区在线观看不卡 | 美国三级日本三级久久99| 久久网站最新地址| 97精品视频在线观看自产线路二| 亚洲福利视频一区二区| 久久噜噜亚洲综合| 一本色道亚洲精品aⅴ| 亚洲国产精品久久久久秋霞影院| 26uuu国产在线精品一区二区| 成人av影视在线观看| 亚洲一区二三区| 亚洲大片在线观看| 久久免费看少妇高潮| 在线一区二区三区| 国产麻豆精品一区二区| 亚洲成在人线免费| 国产精品入口麻豆九色| 欧美精品少妇一区二区三区| 国产成人av一区| 日韩电影在线一区二区| 国产精品久久久久精k8 | 在线欧美日韩国产| 国产一区二区三区久久久 | 久久国产日韩欧美精品| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产亚洲精品久| 欧美欧美午夜aⅴ在线观看| 国产一区二区免费在线| 午夜精品久久久久久久久 | 亚洲日本丝袜连裤袜办公室| 精品日韩av一区二区| 色哟哟一区二区| 成人激情免费网站| 国产一区二区福利视频| 奇米影视一区二区三区| 亚洲精品福利视频网站| 国产精品网站一区| 久久久久国色av免费看影院| 日韩色视频在线观看| 欧美欧美欧美欧美| 欧美三日本三级三级在线播放| av成人动漫在线观看| 国产乱人伦精品一区二区在线观看| 日韩精品乱码av一区二区| 亚洲欧美激情在线| 国产精品久久久久久久蜜臀| 久久亚洲捆绑美女| 精品剧情在线观看| 欧美精品一区二区不卡| 欧美一级高清片在线观看| 欧美日本乱大交xxxxx| 欧美日韩精品一区二区天天拍小说| 色综合婷婷久久| 91农村精品一区二区在线| 91蝌蚪porny九色| 色综合天天综合在线视频| av资源网一区| 一本一道久久a久久精品| 色综合久久中文综合久久97| 91豆麻精品91久久久久久| 色哟哟在线观看一区二区三区| 色婷婷综合久久久久中文一区二区 | 亚洲va欧美va人人爽午夜| 亚洲日本一区二区| 亚洲综合一区二区三区| 亚洲自拍偷拍欧美| 天堂蜜桃一区二区三区| 免播放器亚洲一区| 国产一区二区不卡在线| 国产成人在线视频免费播放| 丁香婷婷综合色啪| a在线播放不卡| 91丨porny丨国产| 欧美艳星brazzers| 欧美一区二区网站| 国产欧美一区二区精品婷婷| 亚洲三级电影网站| 水蜜桃久久夜色精品一区的特点| 久久不见久久见免费视频7| 国产不卡免费视频| 91成人免费在线视频| 日韩欧美国产综合一区 | 国产精品欧美久久久久一区二区 | 欧美日韩精品欧美日韩精品一| 日韩一区二区三区电影在线观看 | 国产乱人伦精品一区二区在线观看| 成人av在线影院| 欧美日韩和欧美的一区二区| 欧美videos大乳护士334| 国产精品久久三区| 日韩二区三区四区| 成人性生交大片免费看中文| 在线视频一区二区三| 精品国产伦一区二区三区免费| 亚洲欧洲另类国产综合| 丝袜亚洲精品中文字幕一区| 国产凹凸在线观看一区二区| 欧美人与性动xxxx| 国产精品久久久久一区| 日本成人在线一区| 色综合久久中文综合久久97| 亚洲精品在线网站| 亚洲福利一二三区| 白白色 亚洲乱淫| 欧美成人在线直播| 亚洲福利一区二区三区| 成人午夜激情在线| 日韩午夜av一区| 一区二区三区在线视频播放| 国产成人av一区二区| 日韩午夜在线影院| 一个色在线综合| 不卡av在线免费观看| 日韩欧美一级在线播放| 一区二区在线免费观看| 国产成人亚洲精品青草天美| 日韩一区二区电影| 亚洲成人福利片| 色先锋久久av资源部| 国产精品免费久久久久| 精品中文av资源站在线观看| 欧美日韩综合一区| 亚洲精品你懂的| 97久久精品人人澡人人爽| 国产三级一区二区| 欧美一级夜夜爽| 婷婷亚洲久悠悠色悠在线播放| 成+人+亚洲+综合天堂| 欧美韩国日本不卡| 国产露脸91国语对白| 欧美成人一级视频| 免费久久99精品国产| 91麻豆精品国产91久久久久久 | 在线不卡一区二区| 亚洲黄色av一区| 色噜噜狠狠成人中文综合| 国产精品久线在线观看| 福利一区二区在线| 欧美国产成人在线| 成人免费黄色在线| 中文字幕不卡在线观看| 国产成人免费视频精品含羞草妖精| 欧美大片顶级少妇| 精品一区二区三区视频在线观看 | 欧美日韩国产小视频| 一区二区三区国产| 欧美网站一区二区| 日韩一区精品字幕| 91精品国产综合久久福利软件 | 国产欧美日韩视频在线观看| 国产在线视频一区二区三区| 久久精品亚洲精品国产欧美| 国产传媒一区在线| 中文子幕无线码一区tr| 99久久精品一区二区| 亚洲欧美日韩在线播放| 91九色最新地址| 午夜电影网亚洲视频| 日韩三级精品电影久久久 | 精品美女一区二区三区| 精品在线免费视频| 国产视频一区不卡| 91蜜桃视频在线| 天天色天天爱天天射综合| 日韩一区二区三| 国产二区国产一区在线观看| 国产精品国产三级国产三级人妇 | 一本一道波多野结衣一区二区| 亚洲高清一区二区三区| 欧美一区二区日韩一区二区| 久久99在线观看| 中文字幕一区三区| 正在播放一区二区| 国产不卡在线视频| 亚洲精品国产无天堂网2021 | 国产精品国产自产拍高清av| 欧美熟乱第一页|