Open GoogleCodeExporter opened 8 years ago
6) Many illustrations are also out of date as the visualization has been
improved in v. 1.4
Original comment by heartofm...@gmail.com
on 22 Mar 2013 at 6:06
For item 3) - the changes are now in Kirills branch for issue 36, they are
expected to be reintegrated into trunk this week.
For item 6) the changes are in Ilya's branch for issue 38, also expecting the
changes in the trunk very soon.
Original comment by heartofm...@gmail.com
on 22 Mar 2013 at 12:28
7) Fix the following misprints in the manual
Misprint in 2.2.12 equation
Misprint in equation 2.2.11, it must look like this
//P = sqrt(<l, Q1 l>)/sqrt(<l, Q2 l>)
//Q = (1 - (1/P)) Q1 + (1 - P) Q2
For item 4) - see the article attached to Issue 12
Original comment by heartofm...@gmail.com
on 25 Mar 2013 at 2:45
Original comment by heartofm...@gmail.com
on 26 Mar 2013 at 9:27
1)Algorithms of S matrix calculation I should paste on page 11, don't I?
2)I can't find equation with these numbers. Can you tell me section\chapter
number?
Original comment by irizk...@gmail.com
on 26 Mar 2013 at 8:58
3)Method distance didn't work.There is problem with variable's name.
I talked with Vitaly about it and just renamed one variable.
Original comment by irizk...@gmail.com
on 27 Mar 2013 at 8:55
1) Yes
2) That's because the equations in the current version of the manual are
numbered incorrectly, we need x.y.z format, not x.y. (compare with the manual
available at the from page http://code.google.com/p/ellipsoids/. Please fix
this.
3) Ok
Also I found that you used epstopdf package incorrectly and PDFTexify generated
a document without a figures. This could indicate that you continue using just
Texify or some other method of compiling the document. Please use WinEdt and
only PDFTexify method of compiling. Other method of compiling CANNOT be used.
Thanks.
Original comment by heartofm...@gmail.com
on 28 Mar 2013 at 8:12
1)There is a list of methods that haven't desciptions in manual:
Ellipsoid methods
1)rm_bad_directions
2)regularize
3)contains
4)plot3
5)my_color_table
6)isbigger
7)isbaddirectionmat
8)getproperty
9)ellunion_ea
10)ellunion_ia
11)ellconstraint
12)getNplot3dPoints
13)getNplot2dPoints
14)getabstol
Hyperplane methods
1)getabstol
Which of them I should add to manual?
2)How do I know which methods support multi-dimensional arrays?I tried to find
this information in documentation to each method, but didn't find anything.
Original comment by irizk...@gmail.com
on 28 Mar 2013 at 3:04
10*)ellintersection_ia
Original comment by irizk...@gmail.com
on 28 Mar 2013 at 3:54
1) See ellipsoid.m, there at the end of class definition some of these methods
are defined as private, you must not describe any private methods.
Please remove ellconstraint method alltogether.
plot3 should not be described right now. It is deleted in Ilya's branch.
The rest of the methods should be described.
hyperplane.getabstol should also be described.
2) You should check the "Input" section of each help header for the input
argument description. If you something like this :
% Input:
% regular:
% myEllArr: ellipsoid [nDims1,nDims2,...,nDimsN] - array of ellipsoids.
% objArr: ellipsoid / hyperplane /
% / polytope [nDims1,nDims2,...,nDimsN] - array of ellipsoids or
% hyperplanes or polytopes of the same sizes.
%
% optional:
% mode: char[1, 1] - 'u' or 'i', go to description.
%
% note: If mode == 'u', then mRows, nCols should be equal to 1.
this means that myEllArr and objArr can be multi-dimensional arrays.
Original comment by heartofm...@gmail.com
on 28 Mar 2013 at 4:09
1)Should I paste examples for newly added methods?
2)Where I can find information about the systems with uncertainty?
Original comment by irizk...@gmail.com
on 30 Mar 2013 at 6:25
1) Yes, please
2) I'll send you the article
3) I think we need to rename all the variables in all the code snippets to
comply with our convention (see
http://code.google.com/p/ellipsoids/wiki/Coding_policy).
For instance the variable E needs to be replace to either ell (for scalar
array) or ellArr (for array).
4) We need to some-how extract the method descriptions from the classes
themselves (help headers). Please check matlabcentral for the tools that would
allow this. Anyway, even if this process is manual, we need to change the
method descriptions in pdf document to match the descriptions (including the
size/type information for input parameters) in the help headers.
5) in doc folder there are a few tex files that seem to contain some parts of
the manual. Please compare them with the manual and see if they are newer. If
so - please update the manual and then have them deleted.
Original comment by heartofm...@gmail.com
on 1 Apr 2013 at 6:00
I've just committed the initial version of the help collector tool. Run
elltool.doc.run_helpcollector to generate "functions.tex" file in doc folder.
This file is self sufficient (doesn't depend on the main manual text) but
requires config.sty. What you need to do is
1) Modify run_helpcollector so that it generates a text file that can be
included (via \include) into the ET_TechReport_Draft.tex (btw - please rename
ET_TechReport_Draft.tex into elltoolmanual.tex)
2) Modify run_helpcollector and collecthelp (if necessary) so that they
generate a nicely formatted help header list by removing % symbols, make lines
shorter (this probably needs to be done in m files) so that the help headers
fit the page width in the resulting pdf.
Original comment by heartofm...@gmail.com
on 1 Apr 2013 at 3:14
Regarding 5) - even if a content of those tex files matches the content of
ET_TechReport_Draft, please partition the latter into the separate files
included (via \include) into the main elltool_manual tex file.
Original comment by heartofm...@gmail.com
on 1 Apr 2013 at 3:21
1)About variables' rename:I must rename all variables in manual too, right?
Original comment by irizk...@gmail.com
on 1 Apr 2013 at 8:43
Yes
Original comment by heartofm...@gmail.com
on 1 Apr 2013 at 9:07
[deleted comment]
1)About run_helpcollector.m
Command help doesn't work for private methods. Should I delete them from list
2)I compared information in tex files and in manual. In separeted tex files
there are bqsic theory about system with disturbance. I added it, but i amn't
shure it is necessary
Original comment by irizk...@gmail.com
on 3 Apr 2013 at 5:17
1) Ok, how do you identify the private methods?
2) I'm not sure what you did exactly. Have you extracted the theory from the
method descriptions and put it in a separate section? Or have you just updated
the help headers?
3) Have you reduced the length of help headers so that they fit the page?
Original comment by heartofm...@gmail.com
on 3 Apr 2013 at 11:43
1)There are list of private methods at the end of ellipsoids.m
I compared this list and FuncData with empty "help" field.
2)I separated manual in separate tex files. I updated appropriate files.
There are following differences:
a)In tex files there are subsections:Maximum Volume Ellipsoids, Minimum Volume Ellipsoids and Checking if $\EE(q_1,Q_1)\subseteq\EE(q_2,Q_2)$. I din't find this information in manual and added it.
b)In tex files there are following definitions:(i couldn't find then in manual too)the volume of ellipsoid, distanse between two ellipsoids using QCQP. So I added them.
c)In tex files there are subsections describing different methods(polytope, zenotope, etc..)In manual this information contains in Introduction. So i used introduction from manual and didn't add sections from tex files.
d)In section Reachability tere are information about system with disturbance.
\dot{x(t)} = f(x, t, u)..(in this form)
There is no such theory in manual.
In manual we began with system's definition
\dot{x}(t) = A(t)x(t) + B(t)u + G(t)v.
Basic definitions of these sections are the same. I took these section from separated tex files.
The rest of sections are identical.
3)I'll do it today \ tomorrow. And i must add examples to help headers, right?
Original comment by irizk...@gmail.com
on 3 Apr 2013 at 2:04
[deleted comment]
4)About your comment to revision.
I'm going to write function of structures' concatenate.
Should i invent something else or it's ok?
Original comment by irizk...@gmail.com
on 3 Apr 2013 at 7:23
1) I'm just trying to understand, have you modified the help collector to
handle private methods or you just excluded the private methods of ellipsoid
class manually? If the latter - how are you going to deal with
elltool.reach.ReachContinuous class which has methods located within a single
file?
2) Thanks a lot for this comparison work, good job.
3) You need to make all help headers more narrow. Please figure out what is the
maximum line length allowed for a good fitting within a page in the resulting
pdf file and tell me that number. I'll make sure that every documentation that
is written in the future complies with this limitation. As for existing
documentation - you have two choices a) manually update the help headers b)
write a simple tool that does this. I think it would be faster to do a)
4) Use this function modgen.struct.unionstructsalongdim
My English is not perfect but yours could sometimes be better as well... Could
you please read http://www.ega-math.narod.ru/Quant/ABS.htm and re-check what
you wrote in the manual? Thanks a lot.
Original comment by heartofm...@gmail.com
on 3 Apr 2013 at 8:08
1) a) Some time ago you said, that I must not describe any private methods in
manual. So I'll delete them from List of all functions.
b) I must separated elltool.reach.ReachContinuous or what?
There are several files with the same structure(for example ellipsoid/contents,
hyperplane/contents).
What will you advise?
c)There are several functions without any descriptions, only author's
information. Is it ok?
Original comment by irizk...@gmail.com
on 3 Apr 2013 at 9:57
1)
a) You have to filter out the private methods automatically i.e. in Matlab
s_coolecthelp tool, not manually via filtering the resulting tex file. The
reason is that we need to be able to run the tool on a regular basis (every 1-2
weeks to update the method documentation.
b) No, it is not necessary, you can extract help for public methods for a class
even when all the methods in a single file. Below is the example of how this
should be done. Currently information about classes is collected from the files
located in a folders with @ prefix (see helpcollect function). I suggest to
change this approach by redesigning the help collector tool based on the
example below so that the information is gathered for the specified list of
classes and packages like this;
FuncData=elltool.doc.newcollecthelp({'ellipsoid','hyperplane'},{'elltool','gras'
,'modgen'},{'test'}); %the last input defines the names of ignored subpackages.
The function newcollecthelp would scan the classes and packages (for scripts,
classes and functions) and return FuncData. For scanning the classes use the
example from below. For scanning the packages use a similar approach, for
instance
meta.package.fromName('elltool') would return an object of meta.package. It
contains the following fields
Name: 'elltool'
ClassList: [0x1 meta.class]
FunctionList: [4x1 meta.method]
PackageList: [9x1 meta.package]
ContainingPackage: []
You then fill FuncData with information from FunctionList field, then from
ClassList (based on the example below), and finally - recursively scan
PackageList field.
old collecthelp function needs to be deleted.
function helpgatherexample()
% funcName: cell[nElems,1] - list of function names
% dirName: cell[nElems,1] - list of directory names
% help: cell[nElems,1] - list of help headers
% isClassMethod: logical[nElems,1] - a vector of "is class"
% indicators
% isScript: logical[nElems,1] - a vector of "is script" indicators
SFunc1Info=extractHelpFromClass('elltool.reach.ReachContinuous');
SFunc2Info=extractHelpFromClass('ellipsoid');
SFuncInfo=modgen.struct.unionstructsalongdim(1,SFunc1Info,SFunc2Info);
strucdisp(SFuncInfo);
end
function SFuncInfo=extractHelpFromClass(className)
PUBLIC_ACCESS_MOD='public';
mc=meta.class.fromName(className);
if isempty(mc)
SFuncInfo=struct();
else
methodVec=mc.MethodList;
isPublicVec=arrayfun(@(x)isequal(x.Access,PUBLIC_ACCESS_MOD),...
methodVec);
publicMethodVec=methodVec(isPublicVec);
fullNameList=arrayfun(@(x)[className,'.',x.Name],publicMethodVec,...
'UniformOutput',false);
helpList=cellfun(@help,fullNameList,'UniformOutput',false);
SFuncInfo.funcName=fullNameList;
SFuncInfo.help=helpList;
end
end
c) In depends on a function/method. We need to have all public methods of
ellipsoid,
hyperplane,
elltool.reach.ReachContinuous,
elltool.reach.ReachDiscrete,
elltool.linsys.LinSysDiscrete,
elltool.linsys.LinSysContinuous
elltool.core.GenEllipsoid
elltool.conf.Properties
and function from elltool (such as setconf etc)
documented.
The rest is not important right now. If you discover an undocumented method in
one of these functions - please have it fixed (the author information can be
extracted from svn).
Original comment by heartofm...@gmail.com
on 4 Apr 2013 at 1:29
1)I think to delete methods with empty help out of final list(automatically of
course)
Is it wrong idea?
3)I updated all help headers. For my opinion the maximum line length allowed
for a good fitting within a page is 60-61 symbols.
Original comment by irizk...@gmail.com
on 4 Apr 2013 at 9:05
1) I think you shouldn't do this - all public methods from elltool package and
ellipsoid/hyperplane cases should be documented. On the opposite, we must keep
all such methods to be able to see that we still have to write a documentation
for them.
3) Ok, thanks.
Original comment by heartofm...@gmail.com
on 5 Apr 2013 at 12:53
As part of your commit you've broken elltool.logging.Log4jConfigurator class
(try to run s_install). Have you used any kind of automatic processing to
modify the help headers or done this all manually?
Original comment by heartofm...@gmail.com
on 5 Apr 2013 at 5:11
1)Ok, i will try to implement something else.
I noticed it,but at 3 am I had no opportunity to fix this problem.
All headers were changed manually.
Original comment by irizk...@gmail.com
on 5 Apr 2013 at 7:40
1) Ok, thanks. I think you should concentrate now on refactoring the help
collector according to comment #25 (i.e. use meta.class and meta.package
classes to scan all the code for help as opposed to scanning the directory tree)
Original comment by heartofm...@gmail.com
on 5 Apr 2013 at 7:44
4) You will have to replace the section for ellOptions struction with a
different section describing the toolbox configuration via toolbox
configurations (see
http://code.google.com/p/ellipsoids/wiki/Toolbox_configuration_management).
Also please mention elltool.conf.Properties static class that have setters and
getters for some configuraiton parameters.
Original comment by heartofm...@gmail.com
on 5 Apr 2013 at 9:10
5) No need to make either the copyright statements or the author information
lines fit 60 symbol limit - we do not need them in the resulting tex file
anyways.
Original comment by heartofm...@gmail.com
on 7 Apr 2013 at 7:52
1)s_chapter07_section 01_snippet02 failed with this bug:
Error using gras.la.ismatposdef (line 32)
input matrix must be symmetric.
2)Where should I add the information about mpt?In section installation?
Original comment by irizk...@gmail.com
on 8 Apr 2013 at 2:28
1) I can't find any script with such name, please make sure that you specified
it correctly
2) Into section 4.1 (Additional software). All the section needs to be updated
as we do not currently use Yalmip, we use CVX instead (see the project front
web page).
3) Can you please attach the compiled pdf to the ticket and update it after
each update. This way I'll be able to answer you much more quickly as I won't
have to re-compile the document every time. Sometimes I use a computer without
Tex/WinEdt being installed so your attachment will be the only way I can see
the latest pdf.
4) When I compile the document I get 50 warnings and 8 bad boxes. All these
need to be fixed (please note that there are some undefined references). We
need 0 warnings and 0 bad boxes.
Original comment by heartofm...@gmail.com
on 8 Apr 2013 at 2:55
1)Oh,yes:s_chapter07_section02_snippet01
Original comment by irizk...@gmail.com
on 8 Apr 2013 at 3:17
Attachments:
Ok. thanks. When you have the manual with the automatically processed help
headers - please let me know.
Original comment by heartofm...@gmail.com
on 8 Apr 2013 at 3:39
2)I updated this section.
I should change section about installation too, right? Can I take as a model
instructions from wiki?
4)Warnings related with bad boxes were solved.
For my opinion bugs related with undefined references appeared because of
separation elltoolmanual.tex(part of them - exactly).
I compiled old version of manual. There were no errors.
Original comment by irizk...@gmail.com
on 8 Apr 2013 at 8:27
Attachments:
1) It is not sufficient to replace "Yalmip" with "CVX" in implementation.tex,
you need to change the description as well (similarly to what you did in
install.tex). Please read http://cvxr.com/cvx/.
The default solver used in the toolbox used for CVX is SeDuMi.
2) Something tells me that you haven't attached the latest pdf (I've compared
the changes to tex files with what I see in pdf document).
Original comment by heartofm...@gmail.com
on 8 Apr 2013 at 8:36
1)Ok. In install.tex is it all right?
2)a)I added one example.
b)Changed section implementation.tex
c)Changed section install.tex
What else?Did I forget something?
Original comment by irizk...@gmail.com
on 8 Apr 2013 at 8:54
Attachments:
1) Section 4.1 needs to be more detailed and structured (some misprints need to
be fixed as well). Basically you need to use itemize and have a separate item
for both mpt and cvx. Both toolboxes need to be described in greater details.
Finally those 4 methods are not the only once that require cvx, the methods
that require mpt need to be listed as well. You need to explain what you need
mpt for.
2) section 4.2, item 1 - this link need to be change to the project url. Also,
please include "todonotes" package and create a note in this section for item 2
that would remind us to create a zip archive with the latest version and upload
it to the project web site. Btw - you can easily disable the notes later with
"disable" option like this:
\usepackage[disable]{todonotes}
3) Page 7 - please make sure that the list of chapters is up to date and make a
note that reminds to keep this list that way.
4) There are still 36 warnings, they all should be eliminated.
Original comment by heartofm...@gmail.com
on 8 Apr 2013 at 9:47
4)I have an idea(I tested it at p.tex from trunk)
If we change Tex Options(dvi->ps->pdf instead default) and create a correct bib
file, everything will be ok.
Is it wrong idea?
Original comment by irizk...@gmail.com
on 8 Apr 2013 at 9:59
*must be ok
Original comment by irizk...@gmail.com
on 8 Apr 2013 at 10:05
It can work but I suspect that all the warnings can be dealt with without
changing tex options.
What do you mean by correct bib file? If the file is incorrect making it
correct is a good idea anyways.
Original comment by heartofm...@gmail.com
on 9 Apr 2013 at 6:57
In my branch there wasn't bib file for elltoolmanual.tex We just used the
environment{thebibliography}
I had to change et.bib
I use dvi->ps->pdf options. There is 1 warning:
Package epstopdf Warning: Drivers other than `pdftex.def' are not supported.
In internet there isn't solution of this problem. Usually offered to use
\usepackage{graphicx, epstopdf}. It didn't help.
Original comment by irizk...@gmail.com
on 9 Apr 2013 at 3:18
1) I resolved the problem that caused the warnings in pure pdf mode( without
ps), please switch back to pdftex and confirm that an amount of warnings is
zero. Also, I checked the beginning of the console output (bibtex warnings
doesn't add up to the final warning count):
Command Line: bibtex.exe "elltoolmanual"
Startup Folder: D:\SVN_Local\EllToolBoxTrunk\doc
This is BibTeX, Version 0.99d (MiKTeX 2.9)
The top-level auxiliary file: elltoolmanual.aux
The style file: plain.bst
Database file #1: et.bib
Warning--to sort, need author or key in mpt
Warning--to sort, need author or key in cdd
Warning--to sort, need author or key in ddt
Warning--to sort, need author or key in matisse
Warning--to sort, need author or key in zonotool
Warning--to sort, need author or key in checkmate
Warning--to sort, need author or key in levelset
Warning--to sort, need author or key in requiem
Name 1 in "A. A. Kurzhanskiy, and P. Varaiya" has a comma at the end for entry
pvak
while executing---line 1049 of file plain.bst
Name 1 in "L. Ros, and A. Sabater and F. Thomas" has a comma at the end for
entry fusion
while executing---line 1049 of file plain.bst
Warning--to sort, need author or key in cvxhp
Warning--to sort, need author or key in sedumihp
Warning--to sort, need author or key in sdpt
Warning--to sort, need author or key in gbt2
Name 1 in "A. A. Kurzhanskiy, and P. Varaiya" has a comma at the end for entry
pvak
while executing---line 1090 of file plain.bst
Warning--empty publisher in xiaotian
Name 1 in "L. Ros, and A. Sabater and F. Thomas" has a comma at the end for
entry fusion
while executing---line 1090 of file plain.bst
(There were 4 error messages)
Please have these 4 errors fixed.
2) Section 4.1.1 - "distance" and other methods are not "routines". Please
refer to them as methods of ellipsoid class.
3) In section 4.2, item 1, url should be published via hyperref packge so that
it is displayed in blue color.
Once you fix all this please work on the help collector tool.
Original comment by heartofm...@gmail.com
on 9 Apr 2013 at 3:50
4) Section 6.1 - names of parameters are incorrect - you can see the correct
names in xml file (type elltool.editconf('default')). Also when you type class
name or package name you should use the same font as everywhere {\tt ... }.
Finally you typed "Elltool", it should be "elltool"
5) All references to EllOptions should be correctly and very carefully replaced
with the references to Properties class (elltool.conf.Properties). Also, please
note that elltool.reach.ReachContinuous/ReachDiscrete, ellipsoid and hyperplane
classes have their own copies of some property values stored within the objects
and available via getters. For instance ellipsoid class has getAbsTol,
getRelTol getters etc.
So in a context of ellipsoid class for properties that now exist in ellipsoid
objects you need to replace the references to EllOptions with getters for these
properties. Same for hyperplane and elltool.reach.ReachContinuous classes
Use references to Properties only when ellipsoid/hyperplane/reach classes are
not mentioned in the context
6) Section 6 needs to be updated to account for new class names (and possible -
new syntax). Just read it and see what needs to be updated.
Original comment by heartofm...@gmail.com
on 9 Apr 2013 at 7:26
4-5)Ok, i gonna fix this.
6)In subsection Linsys i add information about
Linsys.Continuous,Linsys.Discrete, right?Should i paste info about
LinSys.Factory?
7)I started to write new help collector. I decided to begin with simple example:
FuncData=elltool.doc.newcollecthelp({'ellipsoid','hyperplane'},{'test'}).
As model I took your example.
At the first glance everything is working correctly.
But there are some things, which I don't understand.
In resulting pdf some methods appeared. For example,
ellipsoid.delete/hyperplane.delete,
ellipsoid.findobj/hyperplane.findobj, hyperplane.gt, etc...
These methods don't have descriptions in @ellipsoid, @hyperplane.
How do we get these methods?
Original comment by irizk...@gmail.com
on 9 Apr 2013 at 8:34
6) yes. Factory as well please.
7) There are methods defined in the superclass of ellipsoid class (ellipsoid is
inherited from handle class). In Matlab if you want to define a class passed by
reference you need to specify "handle" class as a super class
(http://www.mathworks.com/help/matlab/matlab_oop/the-handle-superclass.html).
This is exactly what is done in ellipsoid.m (see classdef ellipsoid<handle). I
think you need to check if a class is inherited from handle class and if it is
- use the following approach:
handleClassMethodNameList=arrayfun(@(x)x.Name,...
meta.class.fromName('handle').MethodList,'UniformOutput',false);
%
className='elltool.linsys.LinSysDiscrete';
mc= meta.class.fromName(className);
methodMetaVec=mc.MethodList;
curClassMethodNameList=arrayfun(@(x)x.Name,...
methodMetaVec,'UniformOutput',false);
emptyObj=eval([className,'.empty(0,0)']);
isHandleClass=isa(emptyObj,'handle');
%
if isHandleClass
isHandleMethodVec=ismember(curClassMethodNameList,...
handleClassMethodNameList);
methodMetaVec=methodMetaVec(~isHandleMethodVec);
end
disp({methodMetaVec.Name});
Original comment by heartofm...@gmail.com
on 9 Apr 2013 at 9:07
I tried to fix problems 4-6.
How do you think, we need subsections in reach\linsys?
I thought to separate these sections. But there are a lot of the text's
repetition.
Original comment by irizk...@gmail.com
on 10 Apr 2013 at 8:24
Attachments:
Original issue reported on code.google.com by
heartofm...@gmail.com
on 22 Mar 2013 at 5:57