From: <be...@us...> - 2012-06-25 16:41:41
|
Revision: 10693 http://octave.svn.sourceforge.net/octave/?rev=10693&view=rev Author: benjf5 Date: 2012-06-25 16:41:32 +0000 (Mon, 25 Jun 2012) Log Message: ----------- The fast methods run, still need to correlate their results with the reference. Modified Paths: -------------- trunk/octave-forge/extra/lssa/fastlscomplex.cc trunk/octave-forge/extra/lssa/fastlsreal.cc trunk/octave-forge/extra/lssa/lombnormcoeff.m Modified: trunk/octave-forge/extra/lssa/fastlscomplex.cc =================================================================== --- trunk/octave-forge/extra/lssa/fastlscomplex.cc 2012-06-25 16:27:17 UTC (rev 10692) +++ trunk/octave-forge/extra/lssa/fastlscomplex.cc 2012-06-25 16:41:32 UTC (rev 10693) @@ -15,7 +15,18 @@ double maxfreq , int octaves , int coefficients); -DEFUN_DLD(fastlscomplex,args,nargout, "fastlscomplex(time,magnitude,maximum_frequency,octaves,coefficients)") { +DEFUN_DLD(fastlscomplex,args,nargout, + "-*- texinfo -*-\n" +"@deftypefn {Function File} { C = } fastlscomplex" + "(@var{time},@var{magnitude},@var{maximum_frequency},@var{octaves},@var{coefficients})\n" +"\n" +"Return the complex least squares transform of the (@var{time},@var{magnitude}) series\n\ +supplied, using the fast algorithm.\n" +"\n" +"@seealso{lscomplex}\n" +"@seealso{fastlsreal}\n" +"\n" +"@end deftypefn") { if ( args.length() != 5 ) { print_usage(); return octave_value_list (); Modified: trunk/octave-forge/extra/lssa/fastlsreal.cc =================================================================== --- trunk/octave-forge/extra/lssa/fastlsreal.cc 2012-06-25 16:27:17 UTC (rev 10692) +++ trunk/octave-forge/extra/lssa/fastlsreal.cc 2012-06-25 16:41:32 UTC (rev 10693) @@ -107,6 +107,7 @@ complex_record_current = complex_record_current->next; iota_record_current = iota_record_current->next; } + // Error's past this point complex_record_tail = complex_record_current; iota_record_tail = iota_record_current; complex_record_current = complex_precomp_records_head; @@ -119,7 +120,6 @@ for ( int j = 0 ; j < 12 ; j++ ) { complex_record_current->power_series[j] = std::complex<double> ( 0 , 0 ); } // To avoid any trouble down the line, although it is an annoyance. - // Error is traced this far. Time to see if it's in this loop. while ( (k < n) && (abs(tvec(k)-tau_h) <= delta_tau) ) { double p; for ( int j = 0 ; j < 12 ; j++ ) { @@ -164,7 +164,7 @@ tau_h = tau_0; for( ; iota_record_current != 0 ; iota_record_current = iota_record_current->next ) { for ( int j = 0 ; j < 12 ; j++ ) { - complex_record_current->power_series[j] = std::complex<double> ( 0 , 0 ); + iota_record_current->power_series[j] = std::complex<double> ( 0 , 0 ); } while( ( k < n ) && (abs(tvec(k)-tau_h) <= delta_tau) ) { double comps[12]; @@ -188,6 +188,7 @@ } } iota_record_current->stored_data = true; + std::cout << "Precomputed " << iota_record_current << std::endl; k++; } tau_h += ( 2 * delta_tau ); @@ -237,7 +238,7 @@ zeta_imag_part = zeta_imag_part + ( zeta_exp_term.imag() * zeta_real_part_accumulator + zeta_exp_term.real() * zeta_imag_part_accumulator ); } for ( iota_record_current = iota_precomp_records_head; iota_record_current ; - iota_record_current = iota_record_current->next, iota_exp_term = iota_exp_multiplier ) { + iota_record_current = iota_record_current->next, iota_exp_term *= iota_exp_multiplier ) { for ( int array_iter = 0 ; array_iter < 12 ; array_iter++ ) { i_accumulator = ( pow(omega_working,array_iter) * iota_record_current->power_series[array_iter] ); iota_real_part_accumulator += i_accumulator.real(); Modified: trunk/octave-forge/extra/lssa/lombnormcoeff.m =================================================================== --- trunk/octave-forge/extra/lssa/lombnormcoeff.m 2012-06-25 16:27:17 UTC (rev 10692) +++ trunk/octave-forge/extra/lssa/lombnormcoeff.m 2012-06-25 16:41:32 UTC (rev 10693) @@ -13,12 +13,14 @@ ## You should have received a copy of the GNU General Public License along with ## this program; if not, see <http://www.gnu.org/licenses/>. -## -*-texinfo-*- +## -*- texinfo -*- ## @deftypefn {Function File} {c =} lombnormcoeff (time, mag, freq) ## ## Return the coefficient of the Lomb Normalised Periodogram at the ## specified @var{frequency} of the periodogram applied to the ## (@var{time}, @var{mag}) series. +## +## @end deftypefn function coeff = lombnormcoeff(T,X,omega) tau = atan2( sum( sin( 2.*omega.*T)), sum(cos(2.*omega.*T))) / 2; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |