[root] / trunk / math / mathcore / inc / Math / Minimizer.h Repository:
ViewVC logotype

Log of /trunk/math/mathcore/inc/Math/Minimizer.h

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

Revision 49112 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Apr 6 20:38:56 2013 UTC (21 months, 2 weeks ago) by moneta
File length: 20351 byte(s)
Diff to previous 49063
suppress some error messages since some functiona are always called for all minimizers

Revision 49063 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 2 14:36:02 2013 UTC (21 months, 3 weeks ago) by moneta
File length: 20766 byte(s)
Diff to previous 48992
Fix unused variables by adding a MATH_UNUSED macro in Math/Util.h
This fixes problem with documentation reported in https://savannah.cern.ch/bugs/?100622
Add also an error message for the not implemented methods

Revision 48992 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 28 15:26:26 2013 UTC (21 months, 3 weeks ago) by rdm
File length: 17645 byte(s)
Diff to previous 46495
From Lifeng Sun:
The attached patchset fixes a bunch of typo in the source:
0001-succes-success.patch
0002-preceed-preced.patch
0003-informations-information.patch
0004-childs-children.patch
0005-avaliable-available.patch
0006-writeable-writable.patch
0007-comand-command.patch
0008-unkown-unknown.patch
0009-wierd-weird.patch
0010-wheter-whether.patch
0011-unecessary-unnecessary.patch
0012-splitted-split.patch
0013-registerd-registered.patch
0014-recieve-receive.patch
0015-processsing-processing.patch
0016-ouput-output.patch
0017-mutiple-multiple.patch
0018-lenght-length.patch
0019-interupted-interrupted.patch
0020-independant-independent.patch
0021-inconsistant-inconsistent.patch
0022-expresion-expression.patch
0023-explicitely-explicitly.patch
0024-enviroment-environment.patch
0025-deafult-default.patch
0026-continous-continuous.patch
0027-completly-completely.patch
0028-commited-committed.patch
0029-choosen-chosen.patch
0030-backgroud-background.patch
0031-auxilliary-auxiliary.patch
0032-authentification-authentication.patch
0033-appropiate-appropriate.patch
0034-an-other-another.patch
0035-environement-environment.patch
0036-targetting-targeting.patch
0037-suppported-supported.patch
0038-paramater-parameter.patch

Revision 46495 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 12 14:04:24 2012 UTC (2 years, 3 months ago) by moneta
File length: 17644 byte(s)
Diff to previous 39382
Improve Minimizer class by adding some additional methods to set variable properties and query them

Factorize out common functionality of GSLMinimizer class in a new common abstract class (BasicMinimizer) which can be re-used for 
new minimizer implementations

Fix some problems discovered with GSLSimAnMinimizer

Revision 39382 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 26 08:31:43 2011 UTC (3 years, 8 months ago) by moneta
File length: 15894 byte(s)
Diff to previous 36905
- Add new version of Fitter class with vorious improvements: 

 - add possibility to just evaluate FCN one time (EvalFCN) and fill the result 
 (see request https://savannah.cern.ch/bugs/?75896 )
  using the FitConfig information for parameter values and errors
  This required adding a ctor of FitResult from FitConfig

- Add SetFCN methos in Fitter class 

- Update the configuration (FitCOnfig) after a fit with FitResult values 
  So next fit will use improved parameter values. This can be switched on 
 by using FitConfig::SetUpdateAfterFit(on/off)

- Add possibility to run Hesse (Fitter:::CalculateHessErrors) without having done the minimization 

- Add support  for weighted  likelihood fits by adding method Fitter::ApplyWeightCorrection()
  which corrects covariance matrix for weights 

- Add support for weights in binned (Poisson) likelihood 
  (see request https://savannah.cern.ch/bugs/?79754 )

- Change default tolerance in MinimizerOptions from 0.0001 to 0.01

Revision 36905 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 24 15:44:34 2010 UTC (4 years, 2 months ago) by moneta
File length: 14997 byte(s)
Diff to previous 36798
- apply a fix in copy ctor of MinimizerOptions (did not copy name) 
 - make some methods in Minimizer const

- add support to the Brent classes to perform a grid search in log bins

Revision 36798 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 19 17:44:03 2010 UTC (4 years, 2 months ago) by moneta
File length: 14985 byte(s)
Diff to previous 36796
fix compilation error on Solaris

Revision 36796 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 19 17:33:27 2010 UTC (4 years, 2 months ago) by moneta
File length: 15021 byte(s)
Diff to previous 36519
- adapt Minimizer options to use the new option class

Revision 36519 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 5 15:51:47 2010 UTC (4 years, 2 months ago) by moneta
File length: 14586 byte(s)
Diff to previous 31604
- use default option values at construction time which are specified in MinimizerOptions class
- add also a SetOptions and SetDefaultOptions methods

Revision 31604 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Dec 7 19:04:33 2009 UTC (5 years, 1 month ago) by moneta
File length: 14054 byte(s)
Diff to previous 31180
- fix a problem returning the covariance matrix when fit failed. Now all minimizer implements CovMatrixStatus() when they calculate the covariance matrix. Add in FitResult method to return covariance matrix status 
- Add a flag in interface of Minimizer::GetMinosError to do separatly positive or negative errors 
- fix usage of  default minimizer from what is defined in etc/system.rootrc

- improve comment in TH1::Fit and TGraph::Fit for usage of TFitResultPtr

Revision 31180 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 16 10:54:05 2009 UTC (5 years, 2 months ago) by moneta
File length: 13752 byte(s)
Diff to previous 30749
merge chenages from  https://root.cern.ch/svn/root/branches/dev/mathDev/math/mathcore  up to revision 31170 : 

 - add from David a class to represent binnned sparse data (SparseData) which merges the empty bins. 
   This allows an efficient likelihood fit of the THnSparse histograms
 - add in BinData and in FitUtil the support for normalization according to the bin volume 
 - add in Minimizer a SetPrecision method and a method to retrieve the index or name of a parameter
- FitResult : make the function pointer temporary (for I/O), fix default constructor intizialization and print the result also when fit is invalid

Revision 30749 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 15 16:33:04 2009 UTC (5 years, 3 months ago) by brun
File length: 13026 byte(s)
Diff to previous 28946
From Matthew Strait:
This patch fixes the spelling of "function" in the root source code
and documentation, which is misspelled (sometimes as part of larger
"function"-based words) at least 152 times:

* "funciton" 48 times
* "funcion" 36 times
* "funtion" 23 times
* "fucntion" 17 times
* "functionn" 6 times
* "fuction" 6 times
* "fuunction" 4 times
* "functioin" 3 times
* "fonction" 3 times
* "funstion" twice
* "fnuction" once
* "functiom" once
* "functio" once
* "funcition" once

Revision 28946 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jun 11 15:39:14 2009 UTC (5 years, 7 months ago) by moneta
File length: 13026 byte(s)
Diff to previous 28592
merge changes fromdevelopment branch for 
 mathcore,  minuit, minuit2

Mathcore: 
 -    improve Fitter class by adding methods for calculating errors
	after fitting
 - add support in configuration to specify parameters on which Minos must be run
 - fix some bugs found by Alfio in FitResult when running Minos
 - store in the resul a map for the parameter index and minos errors 

- add Hess() method to Minimizer to calculate the full covariance matrix
  (implemented using Minuit and Minuit2)

- add in MInimizer method to retrieve the status of covariance matrix (for Minuit and Minuit2)

Minuit2: 
  - set tolerance for contours to 0.01
  - apply changes in MinuitMinimizer required by base class 
  - remove some assert when defining the parameters 

Minuit: 
  - various improvements, thanks to Alfio
  - add SEEK as new method

Integrator: 
  use const reference in the template methods instead of passing the function object 
by value

Revision 28592 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed May 13 09:37:39 2009 UTC (5 years, 8 months ago) by moneta
File length: 12679 byte(s)
Diff to previous 26866
- apply various small improvement to minimizer classes, in particular: 

  - implement NCalls() for TMinuit (thanks to Alfio) and fix cases when SetFunction has not been called
  - when calling SetLimitedVariables on minimizer who do not support bounds return false instead of 
   setting unbound variables 
  - improve handling of errors for GSLMinimizer
    (see http://root.cern.ch/phpBB2/viewtopic.php?t=8492 )

Revision 26866 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 12 10:50:07 2008 UTC (6 years, 1 month ago) by moneta
File length: 12712 byte(s)
Diff to previous 26014
import lates changes from math development branch 
(from rev 26842) 

The main changes are: 
- add support for drawing Scan and Contour plot from FitPanel
- improve Minimizer interface by adding methods for contours and scan.  
  implement them using Minuit  and Minuit2

Mathcore: 
- improve Fitter class
  mantain now after fitting a reference to the Minimizer and Objective funciton which can be used later for performing the contour and scans      
  - avoid a copy of FitResult class 
 - add new methods in Minimizer for re-setting the variable values 
 - fix the bin fitting using the bin function integral in combination with the gradient or with Fumili 
 - add dictionary for Fit method functions 


Minuit2: 
 remove limit on number of scan points 
 implement scan and contour in Minuit2Minimizer

Minuit
 implement scan and contour in TMinuitMinimizer

SMatrix: 

 Change implementation of SMatrix::Invert (and Inverse) to use the 
 direct Cramer method only for 2x2 (not up to 5x5)
 Add SMatrix::InvertFast using Cramer method up to 5x5 
 (this is having now same behavior as before)

hist: 
 TBackCompFitter: 
 improve class due to change in Fitter. Use now the minimizer reference and 
 there is no need to re-create it
  Add interface for scan and contour in TBackCompFitter
 Add methods to retrieve FitResult and FitConfig

mathmore
 fix a memory leak
 implement changes in Minimizer 

fitpanel
 new dialog for the advanced drawing option with two tabs one for 
 drawing contour the other for drawing scan plots
  fixed some meory leaks and other small problems

Revision 26014 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Oct 29 16:37:28 2008 UTC (6 years, 2 months ago) by moneta
File length: 11419 byte(s)
Diff to previous 25501
- import changes in development branch for mathcore and minuit2 from 25740 to HEAD revision. 
For mathcore fix some small bugs, in particular when using Fitter::FitFCN

- for minuit2 add ifdef statement to be able to parallelize gradient calculation using openMP

Revision 25501 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 22 20:55:57 2008 UTC (6 years, 4 months ago) by moneta
File length: 11155 byte(s)
Diff to previous 25486
- fix a problem in using gMinuit after having called TH1::Fit. Now in the class TMinuitMinimizer a static TMinuit is not deleted and the static instance is used. 
- for Minuit provide printing of results in the old way
- use MinimizerOptions class for default parameter of TVirtualFitter

Revision 25486 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 22 12:43:03 2008 UTC (6 years, 4 months ago) by moneta
File length: 11072 byte(s)
Diff to previous 24403
import changes from math development branches for subdirectory math. List of changes in detail: 

mathcore: 
---------
  MinimizerOptions: 
	new  class for storing Minimizer option, with static default values that can be 
	changed by the user

  FitConfig: 
   	- use default values from MinimizerOption class
   	- rename method to create parameter settings from a function

  FitUtil.cxx:   
    	improve the derivative calculations used in the effective chi2 and in Fumili and 
	fix a bug for evaluation of likelihood or chi2 terms. 
	In  EvaluatePdf() work and return  the log of the pdf. 
      
  FitResult:
	- improve the class by adding extra information like, num. of free parameters, 
	minimizer status, global correlation coefficients, information about fixed 
	and bound parameters. 
   	- add method for getting fit confidence intervals 
  	- improve print method   

  DataRange: 
	add method SetRange to distinguish from AddRange. SetRange deletes the existing 
	ranges. 

  ParamsSettings: make few methods const

  FCN functions (Chi2FCN, LogLikelihoodFCN, etc..) 
	move some common methods and data members in base class (FitMethodFunction)

  RootFinder: add template Solve() for any callable function.  

mathmore:
--------
  minimizer classes: fill status information
  GSLNLSMinimizer: return error and covariance matrix 

minuit2: 
-------
  Minuit2Minimizer: fill  status information 
  DavidonErrorUpdator: check that delgam or gvg are not zero ( can happen when dg = 0)
  FumiliFCNAdapter: work on the log of pdf

minuit:
------- 
  TLinearMinimizer: add support for robust fitting
  TMinuitMinimizer: fill status information and fix a bug in filling the correlation matrix. 
 fumili:
 ------ 
  add TFumiliMinimizer: 
	wrapper class for TFumili using Minimizer interface

Revision 24403 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 20 08:31:10 2008 UTC (6 years, 7 months ago) by moneta
File length: 10522 byte(s)
Diff to previous 23657
sync with dev brunch (rev: 24397). 
Main changes are: 

- improve integrator interface adding template functions taking as imput any C++ callable object for evaluation 
  of the integrals
- use ROOT convention for enumeration names (start with k, like kADAPTIVE for the integration type). Change for 
  Integration types, Interpolation types (in MathMore) and Minimizer1D types. Change all classes and tests using this 
  enumeration name  
- improve RichardsonDerivator class (used by TF1::Derivative). Remove an un-needed function call
  Fix also a bug in calculation of the error returned by TF1::DerivativeError
- change interface for the function interfaced used for fitting (IParamFunction function and IParamGrad function)
  Requires now that the parameter values are passed when evaluating the function and the gradient and make the method
  operator()(double *x, double *p) const. Derived class must implement DoEvalPar (and not DoEval as before) 
  for implementing this interface. This change makes the caching of parameter not hidden and the interface is now 
  thread-safe.  In the IParamGradFunction interface remove the funcitonality for gradient of the coordinates (x) 
  since it is not needed. Define only the parameter gradient. 
- improve also the ParamFunction class used by the concrete function like Polynomial. Adapt Polynomial class to new 
  parameteric function interface
- improve Fit Result class with function to get parameter correlations after the fit and to fill any generic matrix 
with covariance or correlation result. 
- add method also in the minimizer interface to get correlation values 
- add strategy in the minimizer control parameters
- increase timing of stressMathCore and stressMathMore

Revision 23657 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 6 09:13:15 2008 UTC (6 years, 8 months ago) by moneta
File length: 10165 byte(s)
Diff to previous 23655
- fix compilaiton problem on Solaris
- add comments in TMinuitMinimizer class fixing the  coding convention violation

Revision 23655 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 6 07:58:46 2008 UTC (6 years, 8 months ago) by moneta
File length: 10163 byte(s)
Diff to previous 22885
- merge  changes with development branch (up to rev 23650). 
Main changes are: 

  TMath: 

        from David: The following methods now have additional interface working with Iterators as well:  
		MinElement
		MaxElement
		LocMin
		LocMax
		Mean
		GeomMean
		RMS
		BinarySearch
		Sort -> (changed to SortItr)
       	- use now std in binary search algorithm. Old algorithm failed some tests and it is found to be a 
           little bit slower 
       	- do not use std instead in LocMin and LocMax since generic std algorithm is slower on 64 bit arch. 
       	- TMath::PoissonI 
            fix a problem for large values, by using directly the TMath::Poisson implementation
       	- TMath::Landau and TMath::Landau
  		remove duplications by using directly ROOT::Math::landau_pdf and ROOT::Math::landau_cdf
	- TMath::Prob
   		use ROOT::Math::chisquared_cdf_c  (gives also less rounding errors  for small values)
	- TMath::GammaDist
   		use ROOT::Math::gamma_pdf , implementation now returns correct value, 0,  for large values of 
		shape parameter instead of nan
	- TMath::LogNormal:   
  		use ROOT::Math::lognormal_pdf 

	- compile TMath dictionary with -O2 
	- fix a warning in -Wshadow      

        - TMath.h is now  reordered by functionality and alphabetical order

  test: 
	various improvement from David, see http://root.cern.ch/viewcvs?rev=22880&root=root&view=rev	

  - add dictionary for the enumeration used in the Integration class 
  
  - from David: some clean up of Minimizer class (remove typedef definitions)

Revision 22885 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 28 13:57:25 2008 UTC (6 years, 9 months ago) by rdm
File length: 10172 byte(s)
Diff to previous 22518
move the following directories under the new "math" meta directory:
   mathcore
   mathmore
   fftw
   foam
   fumili
   genvector
   matrix
   minuit
   minuit2
   mlp
   physics
   smatrix
   splot
   unuran
   quadp

Revision 22518 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 7 15:40:22 2008 UTC (6 years, 10 months ago) by moneta
Original Path: trunk/mathcore/inc/Math/Minimizer.h
File length: 10172 byte(s)
Diff to previous 22419
Syncronize with the Math develoment branch: 
 
- merge classes from math (TMath, TComplex and TRandom) in libMathCore
- change various functions of TMath (work from David ):
	- make a single template functions for all the various types (like Sort or Binart Search) 
        - use std implementations for Sort, BinarySearch, LocMin
        - use mathcore special functions for Gamma and Beta functions 

- remove genvector from mathcore
- add classes for integration, derivation and root findings using the algorithms of TF1
-  use the plug-in manager to instantiates different implementations of the same classes in MathMore

Revision 22419 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 3 00:25:01 2008 UTC (6 years, 10 months ago) by rdm
Original Path: trunk/mathcore/inc/Math/Minimizer.h
File length: 9710 byte(s)
Diff to previous 21503
From Andrew Savchenko:
ROOT can not be compiled with gcc-4.3.
Some ROOT source files doesn't contain required #include directives,
for example, they use strlen(), but #include <string.h> is missed or
malloc() is used and #include <stdlib.h> is missed. 

Earlier versions of gcc allowed some headers to be included implicitly,
but issued a warning (-Wimplicit-function-declaration). Newer one,
gcc-4.3 denies such silly behaviour: all required headers must be explicitly
included. 

Attached patch fixes this. Also it fixes another issue, which disallows
ROOT to compile under gcc-4.3: C functions don't belong to namespace std,
so expressions like std::memcpy() are no longer valid and plain memcpy()
should be used instead.

Revision 21503 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 19 17:34:54 2007 UTC (7 years, 1 month ago) by moneta
Original Path: trunk/mathcore/inc/Math/Minimizer.h
File length: 9691 byte(s)
Diff to previous 21185
- update doc in mathcore and mathmore by adding the tag for THtml. 
  Take the occasion to correct and update some of the doc. 
  Fix also some indentation problems and  SVN keywords with some files
  add dictionary for some missing classes

Revision 21185 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 4 14:56:12 2007 UTC (7 years, 1 month ago) by moneta
Original Path: trunk/mathcore/inc/Math/Minimizer.h
File length: 8372 byte(s)
Diff to previous 21114
- fix coding convention violation
- generate dictionaries for main Minuit2 classes
- add strategy to the propriety of Minimizer class 
- update standalone builds for mathcore/mathmore/smatrix/minuit2

Revision 21114 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Nov 29 17:16:45 2007 UTC (7 years, 1 month ago) by moneta
Original Path: trunk/mathcore/inc/Math/Minimizer.h
File length: 8172 byte(s)
Diff to previous 20882
- syncronize mathcore, mathmore, minuit2 and test/stressMathCore with development branches

- main changes are: 

-  move some remaining pdf (like	beta and landau) from mathmore to mathcore
- add missing landau_cdf
- fix a precision error with normal_cdf (and normal_cdf_c) for small x (large x). Use the correct erf or erfc function according to x
- move majority of quantiles functions from mathmore to mathcore ( implementation is based on inverse functions from Cephes, implemented in SpecFuncCephesInv.cxx) 

- add method to create Minimizer concreate classes via the plugin manager
- add possibility to use multi-dim funciton type in one dim integration

- minuit2: add some missing include cassert

Revision 20882 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:31:26 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/mathcore/inc/Math/Minimizer.h
File length: 7996 byte(s)
Diff to previous 20696
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.

Revision 20696 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 7 10:19:16 2007 UTC (7 years, 2 months ago) by moneta
Original Path: trunk/mathcore/inc/Math/Minimizer.h
File length: 7996 byte(s)
Diff to previous 20231
- syncronize math, mathcore and mathmore with development branch
 
 - math:      remove the const in ParamFunctor::operator()(double *x, double *p)
  
 - mathcore:     
              - improve integration interface, have now two separate classes : 
              one for 1D the other for multi-dim functions. Rename class IntegratorMultiDim to AdaptiveIntegratorMultiDim
             - clean up of IFunction by removing the un-necessary Dim template parameter
             - add from Cephes inverse functions for normal, beta and gamma functions 
             - improve error reporting

 - mathmore: improve simulated annealing class and ad a test program taken from GSL: simanTSP
             fix problem with dictionary of concrete function classes (like Polynomial) on Windows

Revision 20231 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 5 14:36:37 2007 UTC (7 years, 3 months ago) by moneta
Original Path: trunk/mathcore/inc/Math/Minimizer.h
File length: 7996 byte(s)
Copied from: branches/dev/mathDev/mathcore/inc/Math/Minimizer.h revision 20211
Diff to previous 20067
- port changes from development branch (mathDev): 

  - add interface class for minimization and for fitting method function
  - add multi-dim integration class (CERNLIB algorithm)
  - add implementation for special functions from Cephes (gamma, error function,    incomplete gamma and incomplete beta) 
  - move all the cumulative distribution from MathMore to MathCore 
    (they can be implemented in therm of the inc beta and inc gamma)
  - update documentation making  mathcore, mathmore separate groups which can be combined together

Revision 20067 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 24 14:56:40 2007 UTC (7 years, 4 months ago) by moneta
Original Path: branches/dev/mathDev/mathcore/inc/Math/Minimizer.h
File length: 7996 byte(s)
Diff to previous 19998
- retrieve in configure the GSLVERSION number and define a compiler flags using this version number. 
- implement the BFGS2 minimizer only for version >= 1.9

Revision 19998 - (view) (download) (as text) (annotate) - [select for diffs]
Added Fri Sep 21 16:16:53 2007 UTC (7 years, 4 months ago) by moneta
Original Path: branches/dev/mathDev/mathcore/inc/Math/Minimizer.h
File length: 8047 byte(s)
add in branch new GSL minimization files + required interfaces

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

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9