Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add balancing options for eigenvector calculations #5428

Merged
merged 1 commit into from
Jan 25, 2014
Merged

Conversation

andreasnoack
Copy link
Member

I have wrapped the expert drivers for general eigenvalue calculations and made balance options in the eig functions.

@jiahao
Copy link
Member

jiahao commented Jan 17, 2014

I just read this post last month about how automatic balancing can be bad.


Compute the eigenvalue decomposition of ``A`` and return an ``Eigen`` object. If ``F`` is the factorization object, the eigenvalues can be accessed with ``F[:values]`` and the eigenvectors with ``F[:vectors]``. The following functions are available for ``Eigen`` objects: ``inv``, ``det``.
Compute the eigenvalue decomposition of ``A`` and return an ``Eigen`` object. If ``F`` is the factorization object, the eigenvalues can be accessed with ``F[:values]`` and the eigenvectors with ``F[:vectors]``. The following functions are available for ``Eigen`` objects: ``inv``, ``det``. For general non-symmetric matrices it is possible to specify how the matrix is balanced before the eigenvector calculation. Possible values are ``:balance``(default), ``:permute``,``:diagonal`` and ``nobalance``.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing colon: :nobalance?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you.

@andreasnoack
Copy link
Member Author

@jiahao That was also my inspiration for adding the option.

@andreasnoack
Copy link
Member Author

I have updated the pull request so I think it is ready for merge.

jiahao added a commit that referenced this pull request Jan 25, 2014
Add balancing options for eigenvector calculations
@jiahao jiahao merged commit 61004d6 into master Jan 25, 2014
@jiahao jiahao deleted the anj/balance branch January 26, 2014 00:04
jiahao added a commit that referenced this pull request Jan 26, 2014
- Include issue number in NEWS.md
- Added missing colons in error message
- More detailed explanation of balance options and what they do in the help text.
@ViralBShah
Copy link
Member

Using a symbol seems really weird for this interface. Why not just make it a boolean - eigfact(A, balance=True)?

@andreasnoack
Copy link
Member Author

There are four balancing options.

@ViralBShah
Copy link
Member

I do see that now. I keep wishing we had a nicer way to do this, that is as compact, but maybe this is just fine.

@andreasnoack
Copy link
Member Author

Actually the options are the product of two binary options, diagonal scaling and permuting, so we could have permute::Bool and diagscale::Bool instead.

@StefanKarpinski
Copy link
Sponsor Member

I like the idea of two orthogonal boolean options rather than one four-way option. Not super thrilled about the name diagscale – would scale be sufficiently clear?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants