hddc_toolbox/0000755000175000001440000000000010673440706013075 5ustar charlesusershddc_toolbox/source/0000755000175000001440000000000010526622635014375 5ustar charlesusershddc_toolbox/source/hddc_learn_fast.mexglx.gcc-4.x0000755000175000001440000004045410526621723022074 0ustar charlesusersELF� 4ˆ14 (ì+ì+ì+ì;ì;LP,<<Qåtd%-+(',%!$ # " * &)H  �  ä) * è+ì;ô;ü;0=8=ÇÎ_Ó93 Ùñÿ„i¿ g¤)  PAõ&n?:‹_¸Y€£”,ž<QX'Lg3É¥f! ZC¶"à5±==2uC0f `|ª __gmon_start____cxa_finalize_Jv_RegisterClassesmxGetStringmexErrMsgTxtsqrtdsyrk_memcpydsyev_dsyevx_dgemm_memsetlogexprandommxMallocmexPrintfmxFreemexFunctionmxGetMmxGetNmxGetPrmxGetScalarmxGetClassIDmxCreateStructMatrixmxCreateDoubleMatrixmxSetFieldByNumbermxCreateNumericMatrixmxGetDatamxCreateCellMatrixmxSetCellgettimeofdaymexVersionlibmx.solibmex.solibmat.solibm.so.6libstdc++.so.6libpthread.so.0libc.so.6hddc_learn_fast.mexglxMEXGLIBC_2.0v7.0GLIBC_2.1.3H6¨QÙ� ii Ý{ šç¸0si ìii Ýršç%JˆÂÉbiƒÁȽLô;·ÕôÅ¸æ ¾ „!˜! ""a"m"Ì"ù" #<#”#¦#¸#Ê#$D$t$¤$Ð$ü$%%%$%.%’)›)¨)ä+0=4=î"*‰!�!Ñ"þ"Õ$"Î#&)n (Í"?&:&Q&d+’+©+ë++*+ +YÝ¢['ë Z!e)§!$·!Ç!a$Á$¯%þ%¤&õ&•'Å')Ø! &# Y# Ù# .$ À" T%#„%Ó%y&Ê&‡'·'ó(§%*ö%*M&*œ&*í&*4'**&'í''U&û' '%<)‰)!="=)=,(=",=,U‰åƒìè=èÈèSÉÃÿ³ÿ£ÿ£ héàÿÿÿÿ£héÐÿÿÿU‰åSƒìè[�À0‹“üÿÿÿ…ÒtèÎÿÿÿX[ÉÃ����������U‰åSèŽ�ÃS0ƒì€»u8‹ƒôÿÿÿ…Àt‹ƒ‰$è}ÿÿÿë ƒÀ‰ƒÿÒ‹ƒ‹…ÒuéÆƒƒÄ[]Ã�´&U‰åSè.�Ãó/ƒì‹“àþÿÿ…Òt‹“øÿÿÿ…Òt �ƒàþÿÿ‰$ÿÒƒÄ[]Ë$Ã�����U‰åWVSƒì ÇEìƒ}~|‹EÁà‰Eð‹}ǾÇEì‹EÝð»ƒ} ~2‹Eð‰Eè‰ú¹»ÝÝáßàžvÝÙ‰ËëÝØƒÁUè9M uäÝØëÝØ�S‹E9°tƒE쉰ƒÆƒÇ9uuž‹EìƒÄ [^_]ÃU‰åSƒìTÇD$2�EʉD$‹E‰$èüÿÿÿ…Àt Ç$*èüÿÿÿ¶UÊ»„ÒtI»�Mʸ€úat*¸€úft ¸€úbt¸€údt €úp”À¶ÀÁà öQƒÁ„Òu¿‰ØƒÄT[]ÃU‰åWVS�ì|‰…øþÿÿ‰•ôþÿÿ‰M¼ÝEÝ�èþÿÿk]#‰]ìƒ}8u‰Ð¯E‹U‰U8� ‰M‹U‰Ñ¯Ê�Í‹uƉµxÿÿÿð‰…|ÿÿÿ�؉]€‹…ôþÿÿ¯Â�É…pÿÿÿƒ}<u‹…ôþÿÿ¯Á‹½pÿÿÿ‰}<� lj�pÿÿÿ‹�pÿÿÿ�Ó‰]„‹E¼ÁàÉ]ˆ¯Â؉EŒ‹…ôþÿÿÁà‹uŒƉu�Ɖµtÿÿÿƒ}(u ‰u(�0‰…tÿÿÿƒ}$u"‰ÐÁèÐÑø¯…ôþÿÿ‹½tÿÿÿ‰}$�lj•tÿÿÿƒ½ôþÿÿ ÙîÙÀÙÁÙÂéÅÇE ‹M‰M”¯M ‰M¤‰ÈÁà‹]€É�8ÿÿÿE8‰…<ÿÿÿ‹M¼…É ÙîÝ�0ÿÿÿë1‹E ¯Á‹U �ºÙîÝ�0ÿÿÿÝ…0ÿÿÿÜÝ�0ÿÿÿƒÂƒÀ9Ñuè‹E ‰…lÿÿÿÝ…0ÿÿÿ‹U�ÝÂöEtƒ}4t2Û…ôþÿÿÜ= +‹E ‹U4ÝÂëƒ}4tÛE¼Ü½0ÿÿÿ‹�lÿÿÿ‹]4ÝË‹M…É~[¾‹U¼‰ð¯Â‹½øþÿÿ�Ç‹E ¯Â‹} � ÇÙî…Ò~ÝØÙî¸ÝÃÜ ÁÞÁƒÀ9ÂuñÝ…0ÿÿÿÞù‹…<ÿÿÿÝðƒÆ‹M9ñª‹E¼‹U ¯Ð‹] �Ó‰•@ÿÿÿ‰Â¯Ñ‹}ˆ�4×…À~>»‰ß‹…@ÿÿÿÝDØøÙÀÙúÝàßàžztÝØëÝØÝ$èüÿÿÿëÝÙÝ\þø‰ØƒÃ;E¼|ǃ}Ž>‹•øþÿÿ‹Mˆ»ëÝÜ ÆÝÁƒÂƒÀ9E¼í� ÁƒÃ9]~ ¸ƒ}¼×ëëƒ}Žù»º¹à?‰•Øþÿÿ‰�ÜþÿÿÝ…Øþÿÿ‹U¼‰Ø¯Â‹µøþÿÿ� ÆÙî…Ò~ÝØ¸ÙîÝÁ‹½@ÿÿÿÜ ÇÞÁƒÀ9ÂuëÝ…0ÿÿÿØÊ‹…<ÿÿÿÜ ØÞá‹•pÿÿÿÝÚƒÃ9]§ÝØ‹]…Û~vÇE˜‹E˜Áà‹�<ÿÿÿÁ‰�üþÿÿ‹½pÿÿÿÇ‹�pÿÿÿ‹•<ÿÿÿ¾‹E˜¯Ã�Ý‹�üþÿÿÜ ÝÜ ÞÁ‹]ÝÃÆ‹]ƒÁƒÂ9óщ؉ڃE˜;U˜~…À~óë‘Ý…0ÿÿÿÜ= +Ý]Ø�u‰t$$‹}‰|$ �U؉T$�E¼‰D$‹Mˆ‰L$‰T$‰D$ ‰t$ÇD$p*Ç${*èüÿÿÿ‹MÙî…É~ÝØ�Í‹EºÙî܃ÂØ9Êuõ‹µlÿÿÿ‹}ŒÝ÷‹E¯ÀÁà‰D$‹E‰D$‹•xÿÿÿ‰$èüÿÿÿ�Eè‰D$ �Eì‰D$‹�|ÿÿÿ‰L$‹�8ÿÿÿ‰\$�u‰t$‹½xÿÿÿ‰|$ ‰t$ÇD${*Ç$�*èüÿÿÿ‹E0öE…²ÙîØ=ˆ+‹M‰ÈÁèȉÃÑû…Û~+‹•8ÿÿÿ�4ʺÝFøÜfðÝáßàžvÝÙëÝØƒÂƒî9Úuã‰Þƒîx_‰È)ðÜ�èþÿÿ‹•8ÿÿÿÝDÂøÜdÂðÝéßàžvÝØë‰ÈƒÁÝÜ`øÝéßàžvÝØ‰Ö�Fë)‰È)Ø‹•8ÿÿÿ�L‰òƒê‰Ø)ðƒè9ÂuÈÝØëÝØ¸ÿÿÿÿ‹M ‹],‰‹‰ã‹U‰Ö)ƉðƒÀ‰Eè‰UäÇEÈÇEÌð¿�’�•ƒâð)Ô�L$_ƒáð‹E¼�…ƒàð)Ä�D$_ƒàð�U؉T$L‰D$H‰L$D�Eì‰D$@‹½|ÿÿÿ‰|$<�E‰D$8‹E”¯E¤‹U<�‰D$4‹�8ÿÿÿ‰L$0�Eà‰D$,�EȉD$(�Eä‰D$$�Eè‰D$ �EЉD$‰D$�u‰t$‹}‰|$‰t$ ÇD${*ÇD$Œ*Ç$›*èüÿÿÿ‰ÜƒE ‹U 9•ôþÿÿ……úÿÿÇEœÙîÙÀÙÁÙ‹Mƒá‰�äþÿÿ‹Eœ¯E‹]€�É…Dÿÿÿ‹}œ‹E,‹4¸‰½hÿÿÿ‹U�ÝúÙî…ö~FÝØÙ½äþÿÿ‹�DÿÿÿÝÙÜÁ…ÿt‰ñ)Ù‹U‰ÐÁèÐÑø¯EœÁ‹E$Ý\ÈøëÝØƒÃ9ÞuÉöEtÙÀØÊÞÅVÛ$�d$ØÊÞÃë7öEu1…ö~-VÛ$�d$Øù‰ñ‹U‰ÐÁèÐÑø¯Eœ�‹U$ÝTÂøƒéuáÝØöEt%‹�hÿÿÿ‹]ŒÝËÞáØÉÞÅ‹E)ðPÛ$�d$ÞÉÞÂë%ÝÙ‹½hÿÿÿ‹EŒÝøÞá‹E)ðPÛ$�d$Þù‹U(ÝúƒEœ‹Mœ9�ôþÿÿ…ØþÿÿöEtaÞú¿ƒ½ôþÿÿ<ÝÙëUÙɉÁ)Ù‹U‰ÐÁèÐÑø¯ÇÁ‹E$ÝTÈøƒÃ‹U,‹²9Ø׃Ç9½ôþÿÿtÙɉþ‹M,‹¹»…À·ÙÉëÞÝØÝÙëÝØöEt+Þùƒ½ôþÿÿŽÅ¸‹](ÝÃÀ9…ôþÿÿ„šëéÝØÝØƒ½ôþÿÿ�‰é•‹µ,ÿÿÿ‹},‹·‰]Ø‹E(ÝðÝ�Hÿÿÿ‹E�ÝðÝ�Pÿÿÿ‹U‰ñ¯Ê‰Ð¯Á‹u<�Ɖ…Xÿÿÿ‹}8� ω�\ÿÿÿ‹E¼‹M„� Á‰�`ÿÿÿ¯Ð‹uˆ�Ö‰•dÿÿÿ¾…Û*ëJÝ‹½\ÿÿÿÜ ÇÞÁƒÀƒÂ9Èué‹…tÿÿÿÝðƒÆ9uØ~"‹MÙî…É~æÝ؉ð¯Á‹�Xÿÿÿ�øÙîë¶‹E‹µXÿÿÿ‰µÔþÿÿ¿…À2ëQÝ‹µtÿÿÿÜ ÆÞÁƒÀÊ9Ãuê‹…pÿÿÿÝøƒÇ‹Eƒ…Ôþÿÿ9ø~!‹]ØÙî…Û~ÝÝØ� Å‹•Ôþÿÿ¸Ùîë¯ÇEÐÇEÔÇEÈÇEÌð?�]¼‰\$0‹Uˆ‰T$,�MЉL$(�u‰t$$‹½Xÿÿÿ‰|$ ‰\$‹…øþÿÿ‰D$�}ȉ|$‰t$�u؉t$ ‰\$ÇD$¨*Ç$¨*èüÿÿÿ‰\$0‹�dÿÿÿ‰L$,�EЉD$(�U‰T$$‹�Xÿÿÿ‰L$ ‰\$‹Eˆ‰D$‰|$‰t$‰T$ ‰\$ÇD$p*Ç$¨*èüÿÿÿ‹E¼Áà‰D$ÇD$‹M„‰ $èüÿÿÿƒ}Ø~d¾‹U¼‰ð¯Â‹]ˆ�<Ã…Ò~E»‰ÙÝDßø‹…tÿÿÿÜ$ðØÈ‹U‰ÐÁèÐÑø¯…,ÿÿÿ�‹U$Ü4‹E„ÜDØøÝ\ØøƒÃ;M¼|ÀƒÆ9uØ¡‹U…Ò~o¾‹U¼‰ð¯ÂÁà‹�øþÿÿË�dÿÿÿÁ‹½pÿÿÿÝ÷‹…\ÿÿÿÜ$ð…Ò~-º‰ÐÝDÓøÜdÑøØÁØÈ‹½`ÿÿÿÜD×øÝ\×øƒÂ;E¼|ÜÝØëÝØƒÆ‹U9ò–öE„›‹UØ…ÒÙîÝ]¨ë=»ÙîÝ]¨‹U‰ÐÁèÐÑø¯…,ÿÿÿØ‹U$ÝÂÝ$èüÿÿÿÜE¨Ý]¨ƒÃ‹UØ9ÚÍ‹E)ÐPÛ$�d$Ý]°Ý…HÿÿÿÝ$èüÿÿÿÝ�ÿÿÿÛE¼Ü½PÿÿÿÝ$èüÿÿÿÝE°Ü�ÿÿÿÜE¨ÙÉØ Œ+ÞÁéŠÛEØÝ�ÿÿÿ‰ÐÁèÐÑø¯…,ÿÿÿ‹U$ÝÂÝ$èüÿÿÿÝ�ÿÿÿ‹E+EØPÛ$�d$Ý�ÿÿÿÝ…HÿÿÿÝ$èüÿÿÿÝ� ÿÿÿÛE¼Ü½PÿÿÿÝ$èüÿÿÿÝ…ÿÿÿÜ�ÿÿÿÝ…ÿÿÿÜ� ÿÿÿÞÁÙÉØ Œ+ÞÁ‹E¼…À~:º‰Á¯…,ÿÿÿÐÝ…Hÿÿÿ‹�`ÿÿÿÜ<Ó‹u„ÜÖØÁ‹} Ýǃ‰È9ÑÑÝØëÝØƒ…,ÿÿÿ‹…,ÿÿÿ9…ôþÿÿ~é~ûÿÿÝØÇ…,ÿÿÿémûÿÿÝØ�eô[^_]ÃU‰åWVSƒì\‰e¨‹U �Õƒàð)Ä�D$ƒàð‰E¤ÛEÜ ¨+Ý]°Ç$ÇD$ðèüÿÿÿÝ]ȃ}Že‹]‰]Ø‹E‰EÜÙîÝ]ÀÇE¬é Ù�+ÜÜE°ÝEÀÙÉÝáßàÝÙžvÝUÀÝ$èüÿÿÿ‹E¤ÝØÜE¸Ý]¸ƒÃþ9] uÆÝEÀÝEÈÙÉÚéßàžwÙîÝE¸Úéßàžu'z%ƒ} Ž«‹EÁà‰Eà‹U܉UÔ‹}ØÇEäë^ݰ+ÝE¸Úéßàžw˃} WëxÝØÝÜ'Ø �+Ý$èüÿÿÿÜEèÝUèƒÃuà9] uÛÜ= +‹EÔ݃Eä‹UàЉEÔ׋]ä9] t2‹uØ»ÙîÝ]èë­‹MÁá‹EܺÝE¸‹]¤Ü<Ó݃ÂÈ9U uëƒE¬ƒE؃EÜ‹E¬9Et(ƒ}  ÙîÝ]¸é ÿÿÿ‹}Áç‹uØ»ÙîÝ]¸é¸þÿÿ‹e¨�eô[^_]ÃU‰åWVSƒì,‹}‹u ‹M…Ét …öé…»…ö]ëzºWÛ$�d$Ù”+ÙÁÜ ÑÙ}î·Eî€äó€Ìf‰EìÙmìÙüÙmîÝ]ØÝEØØáÙ}Ö·EÖ´ f‰EÔ‹EÙmÔÛ�ÙmÖƒÂ9Ötë¸èüÿÿÿ‰ÂÁú÷ÿ‹E‰˜ƒÃ9ÞuçëÝØÝØƒÄ,[^_]ÃU‰åWVSƒìl‹uÝE Ý]ÈÝE,Ý]À‹]@‹M M‹E ¯E�@#¯E‹U¯Ö��PU ‹EÁèEÑø¯E ÂɯMM‹} �yEÂÁâ‰$èüÿÿÿ‰EÜ…ÛtD…ö~2ºÙ”+Ù}î·Eî´ f‰EìÝÓØá‹E8ÙmìÛ�ÙmîƒÂ9ÖuèÝØÇ$·*èüÿÿÿë)‹E<‰D$ ‹U8‰T$‰t$‹M ‰ $è~þÿÿÇ$Ñ*èüÿÿÿ‹} ¯þ�ý‰\$ÇD$‹E‰$èüÿÿÿ‰\$ÇD$‹U‰$èüÿÿÿ…ö~"ºÙè‰ð‹M8¯‘�‹MÝÁƒÂ9ÖuçÝØ‹E\‰D$4‹UX‰T$0‹MT‰L$,‹EP‰D$(‹UL‰T$$‹MH‰L$ ‹ED‰D$‹U‰T$‹M܉L$‹E4‰D$ÝEÀÝ\$‹E‰D$‹U‰$‰ñ‹U ‹Eèªîÿÿƒ}(Ž)»ÙîÝ]ЋE(‰D$‰\$Ç$í*èüÿÿÿ‹U‰T$‹M‰L$ ‹E‰D$‹U ‰T$‰4$è™ûÿÿ‹M\‰L$4‹EX‰D$0‹UT‰T$,‹MP‰L$(‹EL‰D$$‹UH‰T$ ‹MD‰L$‹E‰D$‹U܉T$‹M4‰L$ÝEÀÝ\$‹E‰D$‹U‰$‰ñ‹U ‹EèôíÿÿÙî…ÿ~ÝØ¸Ùî‹MÝÁ‹UÜ ÂÞÁƒÀ9ÇuëØ �+Ý]à‹M8‰L$ ‹E‰D$‹U ‰T$‰4$è~ìÿÿ‰Â…Û~ÝEàÜeÐÙáÝEàÙáÜMÈÚéßàžw…ÒtƒÃÝEàÝ]Ð9](…áþÿÿ‹E‰D$‹U‰T$ ‹M‰L$‹} ‰|$‰4$è‘úÿÿ‹E8‰D$ ‹U‰T$‰|$‰4$è ìÿÿ‹M܉ $èüÿÿÿƒÄl[^_]ÃU‰åWVS�ìÌ‹]ƒ}~öEtÇ$(*èüÿÿÿëƒ}t Ç$+èüÿÿÿ‹‰$èüÿÿÿ‰…Œþÿÿ‹‰$èüÿÿÿ‰…�þÿÿ‹‰$èüÿÿÿ‰…¬þÿÿ‹C‰$èüÿÿÿÙ½îþÿÿ·…îþÿÿ´ f‰…ìþÿÿÙ­ìþÿÿÛ�”þÿÿÙ­îþÿÿƒ}Oݸ+Ý�˜þÿÿÝÀ+Ý� þÿÿÇ…¨þÿÿÇ…°þÿÿÇ…´þÿÿÇ…¸þÿÿÇ…¼þÿÿé�‰�Üþÿÿݸ+Ý�˜þÿÿÝÀ+Ý� þÿÿÇ…¨þÿÿÇ…°þÿÿÇ…´þÿÿÇ…¸þÿÿÇ…¼þÿÿÇ…Àþÿÿ‹�Üþÿÿ‹C‰$èüÿÿÿƒøt Ç$ +èüÿÿÿÇD$�…ðþÿÿ‰D$‹C‰$èüÿÿÿ…Àt Ç$P*èüÿÿÿ�µðþÿÿ¿7+¹üó¦—Â’À8Âu‹C ‰$èüÿÿÿÝ�˜þÿÿé¤�µðþÿÿ¿<+¹üó¦—Â’À8Âu8‹C ‰$èüÿÿÿÙ½îþÿÿ·…îþÿÿ´ f‰…ìþÿÿÙ­ìþÿÿÛ�¨þÿÿÙ­îþÿÿéO¶•ðþÿÿ¶D+9Âun¶•ñþÿÿ¶E+9Âu\¶•òþÿÿ¶F+9ÂuJ¶•óþÿÿ¶G+9Âu8‹C ‰$èüÿÿÿÙ½îþÿÿ·…îþÿÿ´ f‰…ìþÿÿÙ­ìþÿÿÛ�¼þÿÿÙ­îþÿÿéÏ�µðþÿÿ¿H+¹üó¦—Â’À8Âu‹C ‰$èüÿÿÿÝ� þÿÿéœ�µðþÿÿ¿N+¹ üó¦—Â’À8Âu‹C ‰$èüÿÿÿ‰…´þÿÿël�µðþÿÿ¿Y+¹üó¦—Â’À8Âu‹C ‰$èhéÿÿ‰…°þÿÿë<�µðþÿÿ¿`+¹üó¦—Â’À8Âu‹C ‰$èüÿÿÿ‰…¸þÿÿë Ç$e+èüÿÿÿƒ…Àþÿÿƒ…Üþÿÿ‹…Àþÿÿ9E�½ýÿÿÇ…ðþÿÿ{+Ç…ôþÿÿ}+Ç…øþÿÿ5+Ç…üþÿÿ+Ç…ÿÿÿF+Ç…ÿÿÿ„+�…ðþÿÿ‰D$ ÇD$ÇD$Ç$èüÿÿÿ‹U ‰ÇD$‹…”þÿÿ‰D$‹…�þÿÿÁè…�þÿÿÑø‰$èüÿÿÿ‰Ã‰D$ ÇD$ÇD$‹U ‹‰$èüÿÿÿ‰$èüÿÿÿ‰…ÄþÿÿÇD$‹…”þÿÿ‰D$Ç$èüÿÿÿ‰Ã‰D$ ÇD$ÇD$‹U ‹‰$èüÿÿÿ‰$èüÿÿÿ‰…ÈþÿÿÇD$ ÇD$ ‹…”þÿÿ‰D$Ç$èüÿÿÿ‰Ã‰D$ ÇD$ÇD$‹U ‹‰$èüÿÿÿ‰$èüÿÿÿ‰…ÔþÿÿÇD$‹…”þÿÿ‰D$Ç$èüÿÿÿ‰Ã‰D$ ÇD$ÇD$‹U ‹‰$èüÿÿÿ‰$èüÿÿÿ‰…ÌþÿÿÇD$‹…”þÿÿ‰D$‹•�þÿÿ‰$èüÿÿÿ‰Ã‰D$ ÇD$ÇD$‹U ‹‰$èüÿÿÿ‰$èüÿÿÿ‰Ç‹…”þÿÿ‰D$Ç$èüÿÿÿ‰…àþÿÿ‰D$ ÇD$ÇD$‹U ‹‰$èüÿÿÿ‹…�þÿÿ¯À‰…ˆþÿÿ‹…”þÿÿ¯…ˆþÿÿÁà‰$èüÿÿÿ‰…Ðþÿÿ‰…ØþÿÿÇD$‹•”þÿÿ‰T$‹…Œþÿÿ‰$èüÿÿÿ‹U ‰B ‰$èüÿÿÿ‰ÆÇD$‹…”þÿÿ‰D$‹•Œþÿÿ‰$èüÿÿÿ‹U ‰B‰$èüÿÿÿ‰ÃÇD$ ÇD$ ÇD$‹…Œþÿÿ‰$èüÿÿÿ‹U ‰B‰$èüÿÿÿ‹•Ðþÿÿ‰T$T‰|$P‹•Ìþÿÿ‰T$L‹•¼þÿÿ‰T$H‹•Ôþÿÿ‰T$D‹•Èþÿÿ‰T$@‹•Äþÿÿ‰T$<‹•¸þÿÿ‰T$8‹•´þÿÿ‰T$4‰D$0‹…°þÿÿ‰D$,Ý… þÿÿÝ\$$‹…¨þÿÿ‰D$ Ý…˜þÿÿÝ\$‰t$‰\$‹…�þÿÿ‰D$ ‹•Œþÿÿ‰T$‹…”þÿÿ‰D$‹•¬þÿÿ‰$è…õÿÿƒ½”þÿÿŽ›‹…ˆþÿÿÁà‰…äþÿÿ¿ÇD$‹•Ôþÿÿ‹º‰D$‹…�þÿÿ‰$èüÿÿÿ‰Æ‹•Ôþÿÿ‹ºÁã¯��þÿÿ‰$èüÿÿÿ‰\$‹•Øþÿÿ‰T$‰$èüÿÿÿ‰t$‰|$‹…àþÿÿ‰$èüÿÿÿƒÇ‹•äþÿÿ•Øþÿÿ9½”þÿÿ…yÿÿÿ‹…Ðþÿÿ‰$èüÿÿÿ�ÄÌ[^_]ÃU‰åƒìÇD$�Eø‰$èüÿÿÿÛEøØ ˜+ÛEüÜ È+ÞÁÉÃ�U‰å¡ä+]Ã��U‰åVSè�ãÿÿ�Ãb�ƒÔþÿÿ�Pü‹@üƒøÿt‰ÖÿЋFüƒîƒøÿuó[^]ÃU‰åSƒìè[�Ã,èÄâÿÿY[ÉÃCould not convert common's string data.even nb of input arguments required.Could not convert string data.TransposedUpperNo vectorsIndexed valuesVectors alsoNot transposed* User initialization ! * Random initialization ! * Iteration %d / %d 3 output arguments required.variable name requireddiffmaxiterdimseuilrand_inputcommoninitunknown variable nameabpropW€¿À¿€?zDð?œ¾dÈñgí¿ÿÿÿÿÿÿï�íµ ÷ư>š™™™™™¹?ü©ñÒMbP?MATLAB R14 nativeÐ+ÿÿÿÿÿÿÿÿr{…�™¨¸ H ä)´Ô ø =8 ðHüÿÿo(ýÿÿoþÿÿo`ÿÿÿoðÿÿoÌúÿÿo;<v † 0=ø;GCC: (GNU) 4.1.0 (SUSE Linux)GCC: (GNU) 4.1.0 (SUSE Linux)GCC: (GNU) 4.1.0 (SUSE Linux)GCC: (GNU) 4.1.0 (SUSE Linux)GCC: (GNU) 4.1.0 (SUSE Linux)GCC: (GNU) 4.1.0 (SUSE Linux),ä)H � &$€ü)] |/usr/src/packages/BUILD/glibc-2.4/cc-nptl/csu/crti.S/usr/src/packages/BUILD/glibc-2.4/csuGNU AS 2.16.91.0.5€|™/usr/src/packages/BUILD/glibc-2.4/cc-nptl/csu/crtn.S/usr/src/packages/BUILD/glibc-2.4/csuGNU AS 2.16.91.0.5€%%•Kû /usr/src/packages/BUILD/glibc-2.4/cc-nptl/csucrti.Sä)3!/!=Z!H #!/=�  !/!=Z!gg//Z!!!sKû /usr/src/packages/BUILD/glibc-2.4/cc-nptl/csucrtn.Sü)!!!]  !.symtab.strtab.shstrtab.hash.dynsym.dynstr.gnu.version.gnu.version_d.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame.ctors.dtors.jcr.dynamic.got.got.plt.data.bss.comment.debug_aranges.debug_info.debug_abbrev.debug_line´´P! Ð )ÔÔø1ÿÿÿoÌÌZ>ýÿÿo((8Mþÿÿo``�\ ððHe 8 8  nH H i` ` 0t� � Tzä)ä)€**èˆè+è+’ì;ì+™ô;ô+ ü;ü+¥<,®=- ³=-¼0=0-Â8=8-Ç8-ºÐø-XßP.ëP/ ùp/€0`6pE Ð<\´ÔÌ(`ð8 H  `  �  ä) * è+ì;ô;ü;<==0=8=ñÿ ñÿA�  Qñÿ\ì;jô;xü;…8=”4=›À  ±  Qñÿ½ð;Êø;×è+åü;ñ°) ñÿñÿ<ñÿNŒ>  ]ñÿjä+ r8. zý � ‹Œ¬ –<ñÿŸ` � ­0=ºH  À8=ñÿÌt)/ Ùä) ß8=ñÿæW  ý=ñÿ<=ñÿÊ 'Î9@9S cñÿgiy ‡¤)  ’A¢&½Ä:×_æYó£,<&'8gHÉZf! fC~¶"š5µ=Â2ÛCí0  %`>ªM initfini.c/usr/src/packages/BUILD/glibc-2.4/cc-nptl/csu/crti.Scall_gmon_startcrtstuff.c__CTOR_LIST____DTOR_LIST____JCR_LIST__completed.5751p.5749__do_global_dtors_auxframe_dummy__CTOR_END____DTOR_END____FRAME_END____JCR_END____do_global_ctors_aux/usr/src/packages/BUILD/glibc-2.4/cc-nptl/csu/crtn.Shddc_learn_fast.ccompute_paramsmexversion.cversionem_hddcinterpret_commonrandsample_DYNAMICcompute_class__dso_handle_init__bss_startgetMilliSecs_fini_edata__i686.get_pc_thunk.bx_GLOBAL_OFFSET_TABLE__endcompute_probasmxGetScalar@@v7.0dsyev_mxGetClassID@@v7.0mxGetData@@v7.0MEXrandom@@GLIBC_2.0mxGetPr@@v7.0mexVersionmxSetCell@@v7.0mxCreateDoubleMatrix@@v7.0dgemm_mexErrMsgTxt@@v7.0mxMalloc@@v7.0mxGetN@@v7.0exp@@GLIBC_2.0mexPrintf@@v7.0mxFree@@v7.0dsyrk_memcpy@@GLIBC_2.0sqrt@@GLIBC_2.0mxGetString@@v7.0mexFunctiongettimeofday@@GLIBC_2.0__cxa_finalize@@GLIBC_2.1.3mxCreateStructMatrix@@v7.0mxGetM@@v7.0mxCreateCellMatrix@@v7.0memset@@GLIBC_2.0mxCreateNumericMatrix@@v7.0dsyevx__Jv_RegisterClassesmxSetFieldByNumber@@v7.0log@@GLIBC_2.0__gmon_start__hddc_toolbox/source/hddc_learn_fast.c0000600000175000001440000004610310375105645017634 0ustar charlesusers#include #include #include "mex.h" #include #include /* // export PATH=$PATH:/softs/stow/matlab-14/bin setenv PATH ${PATH}:/softs/stow/matlab-14/bin mex CFLAGS=-Wall em_hdda_c.c cp em_hdda_c.mexglx .. */ /******************************************************** * prototypes for BLAS and LAPACK functions */ #define doublereal double #define integer int extern int dsyev_(char *jobz, char *uplo, integer *n, doublereal *a, integer *lda, doublereal *w, doublereal *work, integer *lwork, integer *info); extern int dsyevx_(char *jobz, char *range, char *uplo, integer *n, doublereal *a, integer *lda, doublereal *vl, doublereal *vu, integer * il, integer *iu, doublereal *abstol, integer *m, doublereal *w, doublereal *z__, integer *ldz, doublereal *work, integer *lwork, integer *iwork, integer *ifail, integer *info); extern int dgemm_(char* transA, char* transB, integer* M, integer* N, integer* K, doublereal* alpha, doublereal* A, integer* lda, doublereal* B, integer* ldb, doublereal* beta, doublereal* C, integer* ldc); extern int dsyrk_(char* uplo, char* trans, integer* N, integer* K, doublereal* alpha, doublereal* A, integer* lda, doublereal* beta, doublereal* C, integer* ldc); #undef doublereal #undef integer /******************************************************** * some useful definitions */ /* #define NEWA(type,n) (type*)mxMalloc((printf("mall %d %d %d\n",n,sizeof(type),__LINE__),sizeof(type)*(n))) */ #define NEWA(type,n) (type*)mxMalloc(sizeof(type)*(n)) #define FREE(p) mxFree(p) #define ASSERT(v,comment) mxAssert(v,comment) double getMilliSecs() { struct timeval tv; gettimeofday(&tv,NULL); return tv.tv_sec*1e3+tv.tv_usec*1e-3; } #define TICXX lines[n_t]=__LINE__; times[n_t++]+=getMilliSecs() #define TIC /******************************************************** * Subfunctions */ #define MAXD ((p)/2) /* common flags * any combination of the 3 is acceptable */ #define Common_a 1 #define Common_b 2 #define Common_d 4 #define Common_p 8 #define Free_a 16 /* samples k values among 0..n-1 with replacement * result in cls(k) */ void randsample(int n,int k,int *cls,double *rand_input) { int i; if(rand_input) for(i=0;ival) { ind=j; val=sc_j; } } for(j=(MAXD-1);j>-1;j--){ sc_j=LL(j)-LL(j+1); if(sc_j>seuil*val) { d_i=j+1; break; } } #undef LL } //if(d_i==0) //printf("In em_hdda_c_fast: d_i is %d\n",d_i); //if(dims) dims[i]=d_i; //TIC; { /* compute corresponding eigenvecs */ int il=p-d_i+1,iu=p; /* eigenvecs nos il to iu (ascending, inclusive) */ double dminusone=-1,dunused; int iunused; int iwork[5*p]; int ifail[n]; int info; dsyevx_("Vectors also","Indexed values","Upper", &p,sigma_i,&p,&dunused,&dunused,&il,&iu,&dminusone, &iunused,eigenvals,eigenvecs,&p,work_eig,&lwork_eig,iwork, ifail,&info); ASSERT(info==0,"dsyevx_ error"); } //TIC; } { /* * %%%%%%%%%%%%%%%%%%%% Compute estimators %%%%%%%%%%%%%%%%%%%% * all models handled in 2 loops */ double sum_n_s1,sum_n_s2,sum_n_pd,sum_n_d; sum_n_s1=sum_n_s2=sum_n_pd=sum_n_d=0; for(i=0;imaxpow) maxpow=powi; clusterprobas[i]=exp(powi); accu=accu+clusterprobas[i]; } if(maxpow>limitpow || accu==0 || accu>=HUGE_VAL){ for(i=0;ival) { val=T(j,l); ind=l; } if(cls[j]!=ind+1) { n_chg++; cls[j]=ind+1; } } return n_chg; } /* the main algorithm * (see previous functions for explanation of parameters) */ void em_hddc(double *data,int k,int n,int p,double *t,double *s, double diff,int maxiter,double seuil,int common, int *cls,double *rand_in, double *init, double *a,double *b, int *dims,int dim, double *prop, double *m,double *w) { int i,j; int it; double q_it_prev=0; //double *s=NEWA(double,n*k); int lwork=compute_params_lwork(k,n,p); double *work=NEWA(double,lwork); //double *ktable=NEWA(double,k); double times[50]; //int lines[50]; //int n_t=0; for(i=0;i<50;i++) times[i]=0; { /* initialization */ if(init){ for(i=0;iHUGE_VAL: %d \n",exp(1000.0)>=HUGE_VAL); printf("Check overflow Inf0 && (fabs(q_it-q_it_prev)š™™™™™¹?TransposedUpperNo vectorsIndexed valuesVectors alsoNot transposed* User initialization ! * Random initialization ! * Iteration %d / %d abpropmW3 output arguments required.variable name requireddiffmaxiterseuilrand_inputcommoninitunknown variable nameCould not convert common's string data.even nb of input arguments required.Could not convert string data.+&-&j&/&4&6&MATLAB R14 nativeÿÿÿÿÿÿÿÿkt~ˆ’¡± ì 0%´À ñ t8ä Ôüÿÿo ýÿÿoþÿÿoDÿÿÿoðÿÿo²úÿÿo9`7 „8X74'GCC: (GNU) 3.3.3 20040412 (Red Hat Linux 3.3.3-7)GCC: (GNU) 3.3.3 20040412 (Red Hat Linux 3.3.3-7)GCC: (GNU) 3.3.3 20040412 (Red Hat Linux 3.3.3-7)GCC: (GNU) 3.3.3 20040412 (Red Hat Linux 3.3.3-7)GCC: (GNU) 3.3.3 20040412 (Red Hat Linux 3.3.3-7)GCC: (GNU) 3.3.3 20040412 (Red Hat Linux 3.3.3-7).symtab.strtab.shstrtab.hash.dynsym.dynstr.gnu.version.gnu.version_d.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame.ctors.dtors.jcr.dynamic.got.got.plt.data.bss.comment´´L! À )ÀÀñ1ÿÿÿo²²X>ýÿÿo  8MþÿÿoDD�\ ÔÔe ä ä  nì ì i  t$ $ z0%0%€P%P%öˆH'H'’L7L'™T7T' \7\'¥`7`'®h8h( ³t8t(¼„8„( Â�8�(Ç�(2Â)ÐÌ.à= ¬4Í´À² DÔä ì    $  0% P% H'L7T7\7`7h8t8„8�8$  ñÿL7*T78\7Eˆ8I�8UH  k°  ñÿwP7„X7‘H'Ÿ\7«ü$ ÁñÿÓ® K èù 8  ÷ñÿŒ8 RÊ w % › 0`7ñÿ9Üv G„8Tì  Z�8ñÿfì ' s0% y�8ñÿ€t8ñÿ–”8ñÿ›1« ªÎ¼Ã9Ö æñÿêaü  ð$  A%&@G:Z_iYv¤…,•<¢©y¹ÉË“[ ×:ï˜" 5&=32LC^0z‚ –`¯š¾ call_gmon_startcrtstuff.c__CTOR_LIST____DTOR_LIST____JCR_LIST__p.0completed.1__do_global_dtors_auxframe_dummy__CTOR_END____DTOR_END____FRAME_END____JCR_END____do_global_ctors_auxhddc_learn_fast.ccompute_params_lworkcompute_paramsmexversion.cversionem_hddcinterpret_commonrandsample_DYNAMICcompute_class__dso_handle_init__bss_startgetMilliSecs_fini_edata_GLOBAL_OFFSET_TABLE__endcompute_probasmxGetScalar@@v7.0dsyev_mxGetClassID@@v7.0mxGetData@@v7.0MEXrandom@@GLIBC_2.0mxGetPr@@v7.0mexVersionmxSetCell@@v7.0mxCreateDoubleMatrix@@v7.0dgemm_mexErrMsgTxt@@v7.0mxMalloc@@v7.0mxGetN@@v7.0exp@@GLIBC_2.0mexPrintf@@v7.0mxFree@@v7.0dsyrk_sqrt@@GLIBC_2.0mxGetString@@v7.0mexFunctiongettimeofday@@GLIBC_2.0__cxa_finalize@@GLIBC_2.1.3mxCreateStructMatrix@@v7.0mxGetM@@v7.0mxCreateCellMatrix@@v7.0memset@@GLIBC_2.0mxCreateNumericMatrix@@v7.0dsyevx__Jv_RegisterClassesmxSetFieldByNumber@@v7.0log@@GLIBC_2.0__gmon_start__hddc_toolbox/source/hddc_learn.c0000644000175000001440000004110010375105560016613 0ustar charlesusers#include #include #include "mex.h" #include #include /* // export PATH=$PATH:/softs/stow/matlab-14/bin setenv PATH ${PATH}:/softs/stow/matlab-14/bin mex CFLAGS=-Wall em_hdda_c.c cp em_hdda_c.mexglx .. */ /******************************************************** * prototypes for BLAS and LAPACK functions */ #define doublereal double #define integer int extern int dsyev_(char *jobz, char *uplo, integer *n, doublereal *a, integer *lda, doublereal *w, doublereal *work, integer *lwork, integer *info); extern int dsyevx_(char *jobz, char *range, char *uplo, integer *n, doublereal *a, integer *lda, doublereal *vl, doublereal *vu, integer * il, integer *iu, doublereal *abstol, integer *m, doublereal *w, doublereal *z__, integer *ldz, doublereal *work, integer *lwork, integer *iwork, integer *ifail, integer *info); extern int dgemm_(char* transA, char* transB, integer* M, integer* N, integer* K, doublereal* alpha, doublereal* A, integer* lda, doublereal* B, integer* ldb, doublereal* beta, doublereal* C, integer* ldc); extern int dsyrk_(char* uplo, char* trans, integer* N, integer* K, doublereal* alpha, doublereal* A, integer* lda, doublereal* beta, doublereal* C, integer* ldc); #undef doublereal #undef integer /******************************************************** * some useful definitions */ /* #define NEWA(type,n) (type*)mxMalloc((printf("mall %d %d %d\n",n,sizeof(type),__LINE__),sizeof(type)*(n))) */ #define NEWA(type,n) (type*)mxMalloc(sizeof(type)*(n)) #define FREE(p) mxFree(p) #define ASSERT(v,comment) mxAssert(v,comment) double getMilliSecs() { struct timeval tv; gettimeofday(&tv,NULL); return tv.tv_sec*1e3+tv.tv_usec*1e-3; } /******************************************************** * Subfunctions */ /* common flags * any combination of the 3 is acceptable */ #define Common_a 1 #define Common_b 2 #define Common_d 4 #define Common_p 8 /* samples k values among 0..n-1 with replacement * result in cls(k) */ void randsample(int n,int k,int *cls,double *rand_input) { int i; if(rand_input) for(i=0;ival) { ind=j; val=sc_j; } if(j>ind && sc_j=p/2) { d_i=p/2; } #undef LL } if(dims) dims[i]=d_i; TIC; { /* compute corresponding eigenvecs */ int il=p-d_i+1,iu=p; /* eigenvecs nos il to iu (ascending, inclusive) */ double dminusone=-1,dunused; int iunused; int iwork[5*p]; int ifail[n]; int info; dsyevx_("Vectors also","Indexed values","Upper", &p,sigma_i,&p,&dunused,&dunused,&il,&iu,&dminusone, &iunused,eigenvals,eigenvecs,&p,work_eig,&lwork_eig,iwork, ifail,&info); ASSERT(info==0,"dsyevx_ error"); } TIC; } { /* * %%%%%%%%%%%%%%%%%%%% Compute estimators %%%%%%%%%%%%%%%%%%%% * all models handled in 2 loops */ double sum_n_s1,sum_n_s2,sum_n_pd,sum_n_d; sum_n_s1=sum_n_s2=sum_n_pd=sum_n_d=0; for(i=0;ival) { val=T(j,l); ind=l; } if(cls[j]!=ind+1) { n_chg++; cls[j]=ind+1; } } return n_chg; } /* the main algorithm * (see previous functions for explanation of parameters) */ void em_hddc(double *data,int k,int n,int p,double *t,double *s, double diff,int maxiter,double seuil,int common, int *cls,double *rand_in, double *init, double *a,double *b, int *dims,int dim, double *prop, double *m,double *w) { int i,j; int it; double q_it_prev=0; //double *s=NEWA(double,n*k); int lwork=compute_params_lwork(k,n,p); double *work=NEWA(double,lwork); { /* initialization */ if(init){ for(i=0;i0 && (fabs(q_it-q_it_prev)»‰ß‹…@ÿÿÿÝDØøÙÀÙúÝàßàžztÝØëÝØÝ$èüÿÿÿëÝÙÝ\þø‰ØƒÃ;E¼|ǃ}Ž>‹•øþÿÿ‹Mˆ»ëÝÜ ÆÝÁƒÂƒÀ9E¼í� ÁƒÃ9]~ ¸ƒ}¼×ëëƒ}Žù»º¹à?‰•Øþÿÿ‰�ÜþÿÿÝ…Øþÿÿ‹U¼‰Ø¯Â‹µøþÿÿ� ÆÙî…Ò~ÝØ¸ÙîÝÁ‹½@ÿÿÿÜ ÇÞÁƒÀ9ÂuëÝ…0ÿÿÿØÊ‹…<ÿÿÿÜ ØÞá‹•pÿÿÿÝÚƒÃ9]§ÝØ‹]…Û~vÇE˜‹E˜Áà‹�<ÿÿÿÁ‰�üþÿÿ‹½pÿÿÿÇ‹�pÿÿÿ‹•<ÿÿÿ¾‹E˜¯Ã�Ý‹�üþÿÿÜ ÝÜ ÞÁ‹]ÝÃÆ‹]ƒÁƒÂ9óщ؉ڃE˜;U˜~…À~óë‘Ý…0ÿÿÿÜ= +Ý]Ø�u‰t$$‹}‰|$ �U؉T$�E¼‰D$‹Mˆ‰L$‰T$‰D$ ‰t$ÇD$p*Ç${*èüÿÿÿ‹MÙî…É~ÝØ�Í‹EºÙî܃ÂØ9Êuõ‹µlÿÿÿ‹}ŒÝ÷‹E¯ÀÁà‰D$‹E‰D$‹•xÿÿÿ‰$èüÿÿÿ�Eè‰D$ �Eì‰D$‹�|ÿÿÿ‰L$‹�8ÿÿÿ‰\$�u‰t$‹½xÿÿÿ‰|$ ‰t$ÇD${*Ç$�*èüÿÿÿ‹E0öE…²ÙîØ=ˆ+‹M‰ÈÁèȉÃÑû…Û~+‹•8ÿÿÿ�4ʺÝFøÜfðÝáßàžvÝÙëÝØƒÂƒî9Úuã‰Þƒîx_‰È)ðÜ�èþÿÿ‹•8ÿÿÿÝDÂøÜdÂðÝéßàžvÝØë‰ÈƒÁÝÜ`øÝéßàžvÝØ‰Ö�Fë)‰È)Ø‹•8ÿÿÿ�L‰òƒê‰Ø)ðƒè9ÂuÈÝØëÝØ¸ÿÿÿÿ‹M ‹],‰‹‰ã‹U‰Ö)ƉðƒÀ‰Eè‰UäÇEÈÇEÌð¿�’�•ƒâð)Ô�L$_ƒáð‹E¼�…ƒàð)Ä�D$_ƒàð�U؉T$L‰D$H‰L$D�Eì‰D$@‹½|ÿÿÿ‰|$<�E‰D$8‹E”¯E¤‹U<�‰D$4‹�8ÿÿÿ‰L$0�Eà‰D$,�EȉD$(�Eä‰D$$�Eè‰D$ �EЉD$‰D$�u‰t$‹}‰|$‰t$ ÇD${*ÇD$Œ*Ç$›*èüÿÿÿ‰ÜƒE ‹U 9•ôþÿÿ……úÿÿÇEœÙîÙÀÙÁÙ‹Mƒá‰�äþÿÿ‹Eœ¯E‹]€�É…Dÿÿÿ‹}œ‹E,‹4¸‰½hÿÿÿ‹U�ÝúÙî…ö~FÝØÙ½äþÿÿ‹�DÿÿÿÝÙÜÁ…ÿt‰ñ)Ù‹U‰ÐÁèÐÑø¯EœÁ‹E$Ý\ÈøëÝØƒÃ9ÞuÉöEtÙÀØÊÞÅVÛ$�d$ØÊÞÃë7öEu1…ö~-VÛ$�d$Øù‰ñ‹U‰ÐÁèÐÑø¯Eœ�‹U$ÝTÂøƒéuáÝØöEt%‹�hÿÿÿ‹]ŒÝËÞáØÉÞÅ‹E)ðPÛ$�d$ÞÉÞÂë%ÝÙ‹½hÿÿÿ‹EŒÝøÞá‹E)ðPÛ$�d$Þù‹U(ÝúƒEœ‹Mœ9�ôþÿÿ…ØþÿÿöEtaÞú¿ƒ½ôþÿÿ<ÝÙëUÙɉÁ)Ù‹U‰ÐÁèÐÑø¯ÇÁ‹E$ÝTÈøƒÃ‹U,‹²9Ø׃Ç9½ôþÿÿtÙɉþ‹M,‹¹»…À·ÙÉëÞÝØÝÙëÝØöEt+Þùƒ½ôþÿÿŽÅ¸‹](ÝÃÀ9…ôþÿÿ„šëéÝØÝØƒ½ôþÿÿ�‰é•‹µ,ÿÿÿ‹},‹·‰]Ø‹E(ÝðÝ�Hÿÿÿ‹E�ÝðÝ�Pÿÿÿ‹U‰ñ¯Ê‰Ð¯Á‹u<�Ɖ…Xÿÿÿ‹}8� ω�\ÿÿÿ‹E¼‹M„� Á‰�`ÿÿÿ¯Ð‹uˆ�Ö‰•dÿÿÿ¾…Û*ëJÝ‹½\ÿÿÿÜ ÇÞÁƒÀƒÂ9Èué‹…tÿÿÿÝðƒÆ9uØ~"‹MÙî…É~æÝ؉ð¯Á‹�Xÿÿÿ�øÙîë¶‹E‹µXÿÿÿ‰µÔþÿÿ¿…À2ëQÝ‹µtÿÿÿÜ ÆÞÁƒÀÊ9Ãuê‹…pÿÿÿÝøƒÇ‹Eƒ…Ôþÿÿ9ø~!‹]ØÙî…Û~ÝÝØ� Å‹•Ôþÿÿ¸Ùîë¯ÇEÐÇEÔÇEÈÇEÌð?�]¼‰\$0‹Uˆ‰T$,�MЉL$(�u‰t$$‹½Xÿÿÿ‰|$ ‰\$‹…øþÿÿ‰D$�}ȉ|$‰t$�u؉t$ ‰\$ÇD$¨*Ç$¨*èüÿÿÿ‰\$0‹�dÿÿÿ‰L$,�EЉD$(�U‰T$$‹�Xÿÿÿ‰L$ ‰\$‹Eˆ‰D$‰|$‰t$‰T$ ‰\$ÇD$p*Ç$¨*èüÿÿÿ‹E¼Áà‰D$ÇD$‹M„‰ $èüÿÿÿƒ}Ø~d¾‹U¼‰ð¯Â‹]ˆ�<Ã…Ò~E»‰ÙÝDßø‹…tÿÿÿÜ$ðØÈ‹U‰ÐÁèÐÑø¯…,ÿÿÿ�‹U$Ü4‹E„ÜDØøÝ\ØøƒÃ;M¼|ÀƒÆ9uØ¡‹U…Ò~o¾‹U¼‰ð¯ÂÁà‹�øþÿÿË�dÿÿÿÁ‹½pÿÿÿÝ÷‹…\ÿÿÿÜ$ð…Ò~-º‰ÐÝDÓøÜdÑøØÁØÈ‹½`ÿÿÿÜD×øÝ\×øƒÂ;E¼|ÜÝØëÝØƒÆ‹U9ò–öE„›‹UØ…ÒÙîÝ]¨ë=»ÙîÝ]¨‹U‰ÐÁèÐÑø¯…,ÿÿÿØ‹U$ÝÂÝ$èüÿÿÿÜE¨Ý]¨ƒÃ‹UØ9ÚÍ‹E)ÐPÛ$�d$Ý]°Ý…HÿÿÿÝ$èüÿÿÿÝ�ÿÿÿÛE¼Ü½PÿÿÿÝ$èüÿÿÿÝE°Ü�ÿÿÿÜE¨ÙÉØ Œ+ÞÁéŠÛEØÝ�ÿÿÿ‰ÐÁèÐÑø¯…,ÿÿÿ‹U$ÝÂÝ$èüÿÿÿÝ�ÿÿÿ‹E+EØPÛ$�d$Ý�ÿÿÿÝ…HÿÿÿÝ$èüÿÿÿÝ� ÿÿÿÛE¼Ü½PÿÿÿÝ$èüÿÿÿÝ…ÿÿÿÜ�ÿÿÿÝ…ÿÿÿÜ� ÿÿÿÞÁÙÉØ Œ+ÞÁ‹E¼…À~:º‰Á¯…,ÿÿÿÐÝ…Hÿÿÿ‹�`ÿÿÿÜ<Ó‹u„ÜÖØÁ‹} Ýǃ‰È9ÑÑÝØëÝØƒ…,ÿÿÿ‹…,ÿÿÿ9…ôþÿÿ~é~ûÿÿÝØÇ…,ÿÿÿémûÿÿÝØ�eô[^_]ÃU‰åWVSƒì\‰e¨‹U �Õƒàð)Ä�D$ƒàð‰E¤ÛEÜ ¨+Ý]°Ç$ÇD$ðèüÿÿÿÝ]ȃ}Že‹]‰]Ø‹E‰EÜÙîÝ]ÀÇE¬é Ù�+ÜÜE°ÝEÀÙÉÝáßàÝÙžvÝUÀÝ$èüÿÿÿ‹E¤ÝØÜE¸Ý]¸ƒÃþ9] uÆÝEÀÝEÈÙÉÚéßàžwÙîÝE¸Úéßàžu'z%ƒ} Ž«‹EÁà‰Eà‹U܉UÔ‹}ØÇEäë^ݰ+ÝE¸Úéßàžw˃} WëxÝØÝÜ'Ø �+Ý$èüÿÿÿÜEèÝUèƒÃuà9] uÛÜ= +‹EÔ݃Eä‹UàЉEÔ׋]ä9] t2‹uØ»ÙîÝ]èë­‹MÁá‹EܺÝE¸‹]¤Ü<Ó݃ÂÈ9U uëƒE¬ƒE؃EÜ‹E¬9Et(ƒ}  ÙîÝ]¸é ÿÿÿ‹}Áç‹uØ»ÙîÝ]¸é¸þÿÿ‹e¨�eô[^_]ÃU‰åWVSƒì,‹}‹u ‹M…Ét …öé…»…ö]ëzºWÛ$�d$Ù”+ÙÁÜ ÑÙ}î·Eî€äó€Ìf‰EìÙmìÙüÙmîÝ]ØÝEØØáÙ}Ö·EÖ´ f‰EÔ‹EÙmÔÛ�ÙmÖƒÂ9Ötë¸èüÿÿÿ‰ÂÁú÷ÿ‹E‰˜ƒÃ9ÞuçëÝØÝØƒÄ,[^_]ÃU‰åWVSƒìl‹uÝE Ý]ÈÝE,Ý]À‹]@‹M M‹E ¯E�@#¯E‹U¯Ö��PU ‹EÁèEÑø¯E ÂɯMM‹} �yEÂÁâ‰$èüÿÿÿ‰EÜ…ÛtD…ö~2ºÙ”+Ù}î·Eî´ f‰EìÝÓØá‹E8ÙmìÛ�ÙmîƒÂ9ÖuèÝØÇ$·*èüÿÿÿë)‹E<‰D$ ‹U8‰T$‰t$‹M ‰ $è~þÿÿÇ$Ñ*èüÿÿÿ‹} ¯þ�ý‰\$ÇD$‹E‰$èüÿÿÿ‰\$ÇD$‹U‰$èüÿÿÿ…ö~"ºÙè‰ð‹M8¯‘�‹MÝÁƒÂ9ÖuçÝØ‹E\‰D$4‹UX‰T$0‹MT‰L$,‹EP‰D$(‹UL‰T$$‹MH‰L$ ‹ED‰D$‹U‰T$‹M܉L$‹E4‰D$ÝEÀÝ\$‹E‰D$‹U‰$‰ñ‹U ‹Eèªîÿÿƒ}(Ž)»ÙîÝ]ЋE(‰D$‰\$Ç$í*èüÿÿÿ‹U‰T$‹M‰L$ ‹E‰D$‹U ‰T$‰4$è™ûÿÿ‹M\‰L$4‹EX‰D$0‹UT‰T$,‹MP‰L$(‹EL‰D$$‹UH‰T$ ‹MD‰L$‹E‰D$‹U܉T$‹M4‰L$ÝEÀÝ\$‹E‰D$‹U‰$‰ñ‹U ‹EèôíÿÿÙî…ÿ~ÝØ¸Ùî‹MÝÁ‹UÜ ÂÞÁƒÀ9ÇuëØ �+Ý]à‹M8‰L$ ‹E‰D$‹U ‰T$‰4$è~ìÿÿ‰Â…Û~ÝEàÜeÐÙáÝEàÙáÜMÈÚéßàžw…ÒtƒÃÝEàÝ]Ð9](…áþÿÿ‹E‰D$‹U‰T$ ‹M‰L$‹} ‰|$‰4$è‘úÿÿ‹E8‰D$ ‹U‰T$‰|$‰4$è ìÿÿ‹M܉ $èüÿÿÿƒÄl[^_]ÃU‰åWVS�ìÌ‹]ƒ}~öEtÇ$(*èüÿÿÿëƒ}t Ç$+èüÿÿÿ‹‰$èüÿÿÿ‰…Œþÿÿ‹‰$èüÿÿÿ‰…�þÿÿ‹‰$èüÿÿÿ‰…¬þÿÿ‹C‰$èüÿÿÿÙ½îþÿÿ·…îþÿÿ´ f‰…ìþÿÿÙ­ìþÿÿÛ�”þÿÿÙ­îþÿÿƒ}Oݸ+Ý�˜þÿÿÝÀ+Ý� þÿÿÇ…¨þÿÿÇ…°þÿÿÇ…´þÿÿÇ…¸þÿÿÇ…¼þÿÿé�‰�Üþÿÿݸ+Ý�˜þÿÿÝÀ+Ý� þÿÿÇ…¨þÿÿÇ…°þÿÿÇ…´þÿÿÇ…¸þÿÿÇ…¼þÿÿÇ…Àþÿÿ‹�Üþÿÿ‹C‰$èüÿÿÿƒøt Ç$ +èüÿÿÿÇD$�…ðþÿÿ‰D$‹C‰$èüÿÿÿ…Àt Ç$P*èüÿÿÿ�µðþÿÿ¿7+¹üó¦—Â’À8Âu‹C ‰$èüÿÿÿÝ�˜þÿÿé¤�µðþÿÿ¿<+¹üó¦—Â’À8Âu8‹C ‰$èüÿÿÿÙ½îþÿÿ·…îþÿÿ´ f‰…ìþÿÿÙ­ìþÿÿÛ�¨þÿÿÙ­îþÿÿéO¶•ðþÿÿ¶D+9Âun¶•ñþÿÿ¶E+9Âu\¶•òþÿÿ¶F+9ÂuJ¶•óþÿÿ¶G+9Âu8‹C ‰$èüÿÿÿÙ½îþÿÿ·…îþÿÿ´ f‰…ìþÿÿÙ­ìþÿÿÛ�¼þÿÿÙ­îþÿÿéÏ�µðþÿÿ¿H+¹üó¦—Â’À8Âu‹C ‰$èüÿÿÿÝ� þÿÿéœ�µðþÿÿ¿N+¹ üó¦—Â’À8Âu‹C ‰$èüÿÿÿ‰…´þÿÿël�µðþÿÿ¿Y+¹üó¦—Â’À8Âu‹C ‰$èhéÿÿ‰…°þÿÿë<�µðþÿÿ¿`+¹üó¦—Â’À8Âu‹C ‰$èüÿÿÿ‰…¸þÿÿë Ç$e+èüÿÿÿƒ…Àþÿÿƒ…Üþÿÿ‹…Àþÿÿ9E�½ýÿÿÇ…ðþÿÿ{+Ç…ôþÿÿ}+Ç…øþÿÿ5+Ç…üþÿÿ+Ç…ÿÿÿF+Ç…ÿÿÿ„+�…ðþÿÿ‰D$ ÇD$ÇD$Ç$èüÿÿÿ‹U ‰ÇD$‹…”þÿÿ‰D$‹…�þÿÿÁè…�þÿÿÑø‰$èüÿÿÿ‰Ã‰D$ ÇD$ÇD$‹U ‹‰$èüÿÿÿ‰$èüÿÿÿ‰…ÄþÿÿÇD$‹…”þÿÿ‰D$Ç$èüÿÿÿ‰Ã‰D$ ÇD$ÇD$‹U ‹‰$èüÿÿÿ‰$èüÿÿÿ‰…ÈþÿÿÇD$ ÇD$ ‹…”þÿÿ‰D$Ç$èüÿÿÿ‰Ã‰D$ ÇD$ÇD$‹U ‹‰$èüÿÿÿ‰$èüÿÿÿ‰…ÔþÿÿÇD$‹…”þÿÿ‰D$Ç$èüÿÿÿ‰Ã‰D$ ÇD$ÇD$‹U ‹‰$èüÿÿÿ‰$èüÿÿÿ‰…ÌþÿÿÇD$‹…”þÿÿ‰D$‹•�þÿÿ‰$èüÿÿÿ‰Ã‰D$ ÇD$ÇD$‹U ‹‰$èüÿÿÿ‰$èüÿÿÿ‰Ç‹…”þÿÿ‰D$Ç$èüÿÿÿ‰…àþÿÿ‰D$ ÇD$ÇD$‹U ‹‰$èüÿÿÿ‹…�þÿÿ¯À‰…ˆþÿÿ‹…”þÿÿ¯…ˆþÿÿÁà‰$èüÿÿÿ‰…Ðþÿÿ‰…ØþÿÿÇD$‹•”þÿÿ‰T$‹…Œþÿÿ‰$èüÿÿÿ‹U ‰B ‰$èüÿÿÿ‰ÆÇD$‹…”þÿÿ‰D$‹•Œþÿÿ‰$èüÿÿÿ‹U ‰B‰$èüÿÿÿ‰ÃÇD$ ÇD$ ÇD$‹…Œþÿÿ‰$èüÿÿÿ‹U ‰B‰$èüÿÿÿ‹•Ðþÿÿ‰T$T‰|$P‹•Ìþÿÿ‰T$L‹•¼þÿÿ‰T$H‹•Ôþÿÿ‰T$D‹•Èþÿÿ‰T$@‹•Äþÿÿ‰T$<‹•¸þÿÿ‰T$8‹•´þÿÿ‰T$4‰D$0‹…°þÿÿ‰D$,Ý… þÿÿÝ\$$‹…¨þÿÿ‰D$ Ý…˜þÿÿÝ\$‰t$‰\$‹…�þÿÿ‰D$ ‹•Œþÿÿ‰T$‹…”þÿÿ‰D$‹•¬þÿÿ‰$è…õÿÿƒ½”þÿÿŽ›‹…ˆþÿÿÁà‰…äþÿÿ¿ÇD$‹•Ôþÿÿ‹º‰D$‹…�þÿÿ‰$èüÿÿÿ‰Æ‹•Ôþÿÿ‹ºÁã¯��þÿÿ‰$èüÿÿÿ‰\$‹•Øþÿÿ‰T$‰$èüÿÿÿ‰t$‰|$‹…àþÿÿ‰$èüÿÿÿƒÇ‹•äþÿÿ•Øþÿÿ9½”þÿÿ…yÿÿÿ‹…Ðþÿÿ‰$èüÿÿÿ�ÄÌ[^_]ÃU‰åƒìÇD$�Eø‰$èüÿÿÿÛEøØ ˜+ÛEüÜ È+ÞÁÉÃ�U‰å¡ä+]Ã��U‰åVSè�ãÿÿ�Ãb�ƒÔþÿÿ�Pü‹@üƒøÿt‰ÖÿЋFüƒîƒøÿuó[^]ÃU‰åSƒìè[�Ã,èÄâÿÿY[ÉÃCould not convert common's string data.even nb of input arguments required.Could not convert string data.TransposedUpperNo vectorsIndexed valuesVectors alsoNot transposed* User initialization ! * Random initialization ! * Iteration %d / %d 3 output arguments required.variable name requireddiffmaxiterdimseuilrand_inputcommoninitunknown variable nameabpropW€¿À¿€?zDð?œ¾dÈñgí¿ÿÿÿÿÿÿï�íµ ÷ư>š™™™™™¹?ü©ñÒMbP?MATLAB R14 nativeÐ+ÿÿÿÿÿÿÿÿr{…�™¨¸ H ä)´Ô ø =8 ðHüÿÿo(ýÿÿoþÿÿo`ÿÿÿoðÿÿoÌúÿÿo;<v † 0=ø;GCC: (GNU) 4.1.0 (SUSE Linux)GCC: (GNU) 4.1.0 (SUSE Linux)GCC: (GNU) 4.1.0 (SUSE Linux)GCC: (GNU) 4.1.0 (SUSE Linux)GCC: (GNU) 4.1.0 (SUSE Linux)GCC: (GNU) 4.1.0 (SUSE Linux),ä)H � &$€ü)] |/usr/src/packages/BUILD/glibc-2.4/cc-nptl/csu/crti.S/usr/src/packages/BUILD/glibc-2.4/csuGNU AS 2.16.91.0.5€|™/usr/src/packages/BUILD/glibc-2.4/cc-nptl/csu/crtn.S/usr/src/packages/BUILD/glibc-2.4/csuGNU AS 2.16.91.0.5€%%•Kû /usr/src/packages/BUILD/glibc-2.4/cc-nptl/csucrti.Sä)3!/!=Z!H #!/=�  !/!=Z!gg//Z!!!sKû /usr/src/packages/BUILD/glibc-2.4/cc-nptl/csucrtn.Sü)!!!]  !.symtab.strtab.shstrtab.hash.dynsym.dynstr.gnu.version.gnu.version_d.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame.ctors.dtors.jcr.dynamic.got.got.plt.data.bss.comment.debug_aranges.debug_info.debug_abbrev.debug_line´´P! Ð )ÔÔø1ÿÿÿoÌÌZ>ýÿÿo((8Mþÿÿo``�\ ððHe 8 8  nH H i` ` 0t� � Tzä)ä)€**èˆè+è+’ì;ì+™ô;ô+ ü;ü+¥<,®=- ³=-¼0=0-Â8=8-Ç8-ºÐø-XßP.ëP/ ùp/€0`6pE Ð<\´ÔÌ(`ð8 H  `  �  ä) * è+ì;ô;ü;<==0=8=ñÿ ñÿA�  Qñÿ\ì;jô;xü;…8=”4=›À  ±  Qñÿ½ð;Êø;×è+åü;ñ°) ñÿñÿ<ñÿNŒ>  ]ñÿjä+ r8. zý � ‹Œ¬ –<ñÿŸ` � ­0=ºH  À8=ñÿÌt)/ Ùä) ß8=ñÿæW  ý=ñÿ<=ñÿÊ 'Î9@9S cñÿgiy ‡¤)  ’A¢&½Ä:×_æYó£,<&'8gHÉZf! fC~¶"š5µ=Â2ÛCí0  %`>ªM initfini.c/usr/src/packages/BUILD/glibc-2.4/cc-nptl/csu/crti.Scall_gmon_startcrtstuff.c__CTOR_LIST____DTOR_LIST____JCR_LIST__completed.5751p.5749__do_global_dtors_auxframe_dummy__CTOR_END____DTOR_END____FRAME_END____JCR_END____do_global_ctors_aux/usr/src/packages/BUILD/glibc-2.4/cc-nptl/csu/crtn.Shddc_learn_fast.ccompute_paramsmexversion.cversionem_hddcinterpret_commonrandsample_DYNAMICcompute_class__dso_handle_init__bss_startgetMilliSecs_fini_edata__i686.get_pc_thunk.bx_GLOBAL_OFFSET_TABLE__endcompute_probasmxGetScalar@@v7.0dsyev_mxGetClassID@@v7.0mxGetData@@v7.0MEXrandom@@GLIBC_2.0mxGetPr@@v7.0mexVersionmxSetCell@@v7.0mxCreateDoubleMatrix@@v7.0dgemm_mexErrMsgTxt@@v7.0mxMalloc@@v7.0mxGetN@@v7.0exp@@GLIBC_2.0mexPrintf@@v7.0mxFree@@v7.0dsyrk_memcpy@@GLIBC_2.0sqrt@@GLIBC_2.0mxGetString@@v7.0mexFunctiongettimeofday@@GLIBC_2.0__cxa_finalize@@GLIBC_2.1.3mxCreateStructMatrix@@v7.0mxGetM@@v7.0mxCreateCellMatrix@@v7.0memset@@GLIBC_2.0mxCreateNumericMatrix@@v7.0dsyevx__Jv_RegisterClassesmxSetFieldByNumber@@v7.0log@@GLIBC_2.0__gmon_start__hddc_toolbox/hddc_learn.m0000600000175000001440000001455610526631526015340 0ustar charlesusersfunction [prms,T,cls] = hddc_learn(XX,k,varargin); % High Dimensionality Data Clustering (hddc) % % Usage: (1) [prms,T,cls] = hddc_learn(X,k,'model','AiBiQiDi'); % (2) [prms,T,cls] = hddc_learn(X,k,'model','best'); % (3) [prms,T,cls] = hddc_learn(X,k,'model','AiBiQiDi','seuil',0.1); % (4) [prms,T,cls] = hddc_learn(X,k,'model','AiBiQiDi','maxiter',100,); % % Input: % - X: data % - k: number of classes % - model: % % Output: % - cls: label of test data Y.data, % - T: a posteriori probabilities % - prms: parameters of classes % % Authors: C. Bouveyron - 2004-2006 % % Reference: C. Bouveyron, S. Girard and C. Schmid, High-Dimensional Data % Clustering, Technical Report n°1083M, LMC-IMAG, Université J. Fourier % Grenoble 1. % Initialization of parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if isstruct(XX), X = XX.data; if exist('XX.cls'), class = XX.cls; end else X = XX; class = []; end [N,p] = size(X); maxiter = 100; seuil = 0.2; model = 'AiBiQiDi'; common = ''; init = 'random'; dim = []; diff = 1e-5; %%% PARAMETERS MANAGEMENT for i=1:2:length(varargin) if ~isstr(varargin{i}) | ~exist(varargin{i},'var') error(['Invalid parameter ' varargin{i}]); end eval([varargin{i} '= varargin{i+1};']); end %%% if isempty(strmatch(model,strvcat('AijBiQiDi', 'AijBQiDi', 'AiBiQiDi', 'ABiQiDi',... 'AiBQiDi', 'ABQiDi','AijBiQiD', 'AijBQiD', 'AiBiQiD', 'ABiQiD', 'AiBQiD',... 'ABQiD','best'),'exact')) error('--> The parameter ''model'' is not valide: see the help of hddc.'); end % Initialization %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if ~ischar(init), init_cls = init; fprintf('* User initialization !\n'); else switch init case 'random' init_cls = randsample(k,N,1); fprintf('* Random initialization !\n'); case 'kmeans' init_cls = kmeans(X,k); fprintf('* Initialization by kmeans !\n'); end end % Calling the main function %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if isequal(model,'best') % looking for the model with the smallest BIC value if isempty(dim), % models with free dimensions models = {'AijBiQiDi', 'AijBQiDi', 'AiBiQiDi', 'ABiQiDi', 'AiBQiDi', 'ABQiDi'}; fprintf('--> Bic values of the HDDA models with free dimensions:\n'); for i = 1:length(models) [prms_t{i},T_t{i},cls_t{i}] = learn(X,k,models{i},seuil,maxiter,dim,init_cls,diff); bic(i) = prms_t{i}.bic; fprintf(' - model %s: %g\n',models{i},bic(i)); end else % models with common dimensions models = {'AijBiQiD', 'AijBQiD', 'AiBiQiD', 'ABiQiD', 'AiBQiD', 'ABQiD'}; fprintf('--> Bic values of the HDDA models with common dimensions:\n'); for i = 1:length(models) [prms_t{i},T_t{i},cls_t{i}] = learn(X,k,models{i},seuil,maxiter,dim,init_cls,diff); bic(i) = prms_t{i}.bic; fprintf(' - model %s: %g\n',models{i},bic(i)); end end [val,ind] = min(fliplr(bic)); prms = prms_t{ind}; T = T_t{ind}; cls = cls_t{ind}; fprintf('--> Best model: %s\n',prms_t{ind}.model); else [prms,T,cls] = learn(X,k,model,seuil,maxiter,dim,init_cls,diff); fprintf('--> Used model: %s\n',prms.model); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % SUB-FUNCTION % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [prms,T,cls] = learn(X,k,model,seuil,maxiter,dim,init_cls,diff); [N,p] = size(X); % Convert model name in the old format %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% switch model case 'AijBiQiDi' % Model [a_ij b_i Q_i d_i] common = 'f'; case 'AijBiQiD' % Model [a_ij b_i Q_i d] common = 'fd'; case 'AijBQiDi' % Model [a_ij b_i Q_i d_i] common = 'fb'; case 'AijBQiD' % Model [a_ij b_i Q_i d] common = 'fbd'; case 'AiBiQiDi' % Model [a_i b_i Q_i d_i] common = ''; case 'AiBiQiD' % Model [a_i b_i Q_i d] common = 'd'; case 'ABiQiDi' % Model [a b_i Q_i d_i] common = 'a'; case 'ABiQiD' % Model [a b_i Q_i d] common = 'ad'; case 'AiBQiDi' % Model [a_i b Q_i d_i] common = 'b'; case 'AiBQiD' % Model [a_i b Q_i d] common = 'bd'; case 'ABQiDi' % Model [a b Q_i d_i] common = 'ab'; case 'ABQiD' % Model [a b Q_i d] common = 'abd'; otherwise error('Not yet implemented!'); end % Calling the C function %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [prms,T,cls,S] = hddc_learn_fast(X,k,'seuil',seuil,'maxiter',maxiter,... 'common',common,'dim',dim,'init',init_cls,'diff',diff); % Compute the BIC value %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% d = double(prms.d); switch model case 'AijBiQiDi' % Model [a_ij b_i Q_i d_i] q = (k*p+k-1) + sum( d.*(p-(d+1)/2) ) + sum(d) + 2*k; case 'AijBiQiD' % Model [a_ij b_i Q_i d] q = (k*p+k-1) + sum( d.*(p-(d+1)/2) ) + sum(d) + k + 1; case 'AijBQiDi' % Model [a_ij b_i Q_i d_i] q = (k*p+k-1) + sum( d.*(p-(d+1)/2) ) + sum(d) + k + 1; case 'AijBQiD' % Model [a_ij b_i Q_i d] q = (k*p+k-1) + sum( d.*(p-(d+1)/2) ) + sum(d) + 2; case 'AiBiQiDi' % Model [a_i b_i Q_i d_i] q = (k*p+k-1) + sum( d.*(p-(d+1)/2) ) + 3*k; case 'AiBiQiD' % Model [a_i b_i Q_i d] q = (k*p+k-1) + sum( d.*(p-(d+1)/2) ) + 2*k + 1; case 'ABiQiDi' % Model [a b_i Q_i d_i] q = (k*p+k-1) + sum( d.*(p-(d+1)/2) ) + 2*k + 1; case 'ABiQiD' % Model [a b_i Q_i d] q = (k*p+k-1) + sum( d.*(p-(d+1)/2) ) + k + 2; case 'AiBQiDi' % Model [a_i b Q_i d_i] q = (k*p+k-1) + sum( d.*(p-(d+1)/2) ) + 2*k + 1; case 'AiBQiD' % Model [a_i b Q_i d] q = (k*p+k-1) + sum( d.*(p-(d+1)/2) ) + k + 2; case 'ABQiDi' % Model [a b Q_i d_i] q = (k*p+k-1) + sum( d.*(p-(d+1)/2) ) + k + 2; case 'ABQiD' % Model [a b Q_i d] q = (k*p+k-1) + sum( d.*(p-(d+1)/2) ) + 3; otherwise error('Not yet implemented!'); end K = S + p * log(2*pi); ll = sum(sum(T .* K)); bic = (ll + q * log(N)) / N; % Return parameters and results %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% prms.p = p; prms.model = model; prms.bic = bic; prms.k = k; prms.d = double(prms.d); prms.m = prms.m'; cls = double(cls);hddc_toolbox/hddc_demo.m0000644000175000001440000000163010526635611015157 0ustar charlesusers% High Dimensionality Data Clustering (demonstration) % % Authors: C. Bouveyron - 2004-2006 % % Reference: C. Bouveyron, S. Girard and C. Schmid, High-Dimensional Data % Clustering, Technical Report n°1083M, LMC-IMAG, Université J. Fourier % Grenoble 1. fprintf('\n- Loading of data\n') fprintf('load(''crabs.mat'');\n') load('crabs.mat' ); fprintf('\n- Press the keyboard to continue ...\n\n'), pause() fprintf('- Looking for the model with the smallest BIC value (k=4 groups)\n') fprintf('[prms,T,cls] = hddc_learn(X,4,''model'',''best'',''seuil'',0.2);\n') [prms,T,cls] = hddc_learn(X,4,'model','best','seuil',0.2); fprintf('\n- Press the keyboard to continue ...\n\n'), pause() fprintf('- Learning parameters of a specific model\n') fprintf('[prms,T,cls] = hddc_learn(X,4,''model'',''AiBQiDi'',''seuil'',0.2)\n'); [prms,T,cls] = hddc_learn(X,4,'model','AiBQiDi','seuil',0.2);hddc_toolbox/crabs.mat0000644000175000001440000000416610412200033014653 0ustar charlesusersMATLAB 5.0 MAT-file, Platform: GLNX86, Created on: Fri Mar 24 13:58:09 2006 IMîxœ|YIRcGýí°;lGG¯­vÛÍ(BÍ f1|M€Û:€YvØÁÊ Gàè\@>@_€ °ô€ p6^ZðÞËìL�A$™•Uõëåô+ÿë¢(®§Šâå˜~=þû¢Àï+ò/ìïEñË£üËDZÙ·ã¿ß>þù±øõ÷ N+^�ÿþxçë½LëýÍÿ_PþÍø¯ë7Så_£‡ßtyþø›)!Ÿ¥\tžò*éåN1¿F¾F½EòNÿ¹yø-r|É(Æ—8^'¿ÌñF‰§?A±ï{οB~ëTV�b½UŒV©Ïñå7”ßiÞšQÌ'½Z£ÞŸg�óIM£Ð'“è`“ü[®#;8…Üíùù9Ο3{A¿ÊóUÉ/˜ýD1¾Àù Ô«}ÎŽ¢Ðs;b=ÙQ|Ýì ¾A~Ò®Xg’ÊÎØ×í�y+Ôs*?€þŠÙ]ö†=ÄÓ~CÙ·i¸c|Žtžû ÏE£_|öüГ?ORèMRù¿p˸d¿Ïþ-¿ÍçÅüI?Æ:뜷N�?¿‘^Ó(öÝ þ×Ýä¾›”;Åþä+[Ôß&¿ý,þòOåá,ª<òœße¿yÒžÈòá›qÅþŽ«(ìãøŠbÞ$ÎÀ‡òJÓ¨ò Æ�bŸ ³ö£†nèoXÂslr]· æm™=ð\oH$.ï¸î;î?E:C½Y‹+ÐYŽÏOä-Ð9‹?Ì÷qÌŸ79øj¢ªOÕ4ßóôT·ÌŸÏqå½%ÇzK¤uÓSÈëIòzŠÿºå«¸^ÝòžòBôké¿!�æºSwŠsOsþ õg9>k¼êŒìíRµ8Œv¨ZœÊàkVg"_Kñœß#T�2ÎŽ¯ð‰¸d{Ô^®§ñ§ë“ò¶×ðË–ž‡‡zŸøÞpÓ)2uœ¡Ÿq_Hzó oçå÷¢²GÆ;Û)Æ�ÇC¬÷µäÏžŸ®û^eñÂ_qùrš¯|îõ^uóŠŸðw¾bþ *¿Žò»ªå…Ç5ó7ù¡Þsuù…Îã»nç þ3Ò¹ÆÇó7L_u+¾·*î½^a¿†­+¿ þYøûA¨c#ùóšÉ±ÞšÍƒç:§çñúöäû²Ñ ‹PÍó÷†P¯ Õ›mî·ÃuDw©ß¢ÞŸ¿ÅñŸ/�7÷9�ôFú”Òó#Ž—x޲,é6|.òwm>w›|‰y’w¸_ç½mƒÕåù;˜÷©Ãý:�Ÿižxêß’Žº\§O½÷%½ïQ¯Ïu©wyóÞ€ïC½Ò.#½ßM¾7oOÅslq|‡ëÐnW|¯»Û!.{6Ž}v‰åÚçj�óZfwÌk™ó÷)ßçú‡\Ç)Ö“}K>¯Û]ãÀ�ãƒÒüã¥Íz7ò“¶QìK{hÇ í6èF{Yüm�%žÍm‹ƒ€_ExìÑî×8q©p½}£9 Àõ©ß<¤üÐø€ã8°ÿ÷—ËŸu~�œÛýx�{òwIoÔ‰~Ù¥žðìqúûEû]3nŽùÜ¿:æ<Ž�Nˆ‡âÃýø w柛]òÊ3ÂY~(“ÿ5�"^…SÉ•_¥Ÿ]NúòGiy¸¶ OÌk[¼íÕ1}å3ì—ìp/J;])ÿЛ=³‡Æñ<=Ú¡gó¡×çù˜§n{´í6äxå„ë¨�Â|tî÷Œ«^x\(/ÈϱþAòW�{åÉå÷Â_y@|Àýºmù[4à;r‡>ñ­*o¯!óû™ã¢<�ç陋‡>q+ú–ÿA)/Ýßñ|ÇÜï”ëçRô”ûsüâ”óŽõþjËîõXwËìƒçÓ}^uÀó=ÖSýÞ¥¾ê5ãg¨|Õ2^ñ¤ü&}Ù5ÄYÅó»ì«¼ÿeþ:S=÷ú­¸PÜ(áy:'²³ò<ð£ŸW»u\ñ?è&ýžÅUˆ§{É�Íž�ŸXÿ@øË.Ø×ë¨ç+Øá0æ«¡ò•×Ç�‡>«“Šéã<ŽkÎKª“ª‹÷:âປދºÅÃ'÷¬ãþž¸]J_y‡ñSu<åÿªòÿ@+§Äé'ž‡qñêñüÀóъõ¡r0ñž)¼�/qºu•Ç…ž—üyzß|Õ‰ùþ³<¹çù§ÞK‚_•?˜Ç‹ž½o‚W=íšžòðí[^Ǽ¾å%œ›u÷òØü;ø¹êw…ö8Sþ:�ò±½”Ç G;•²Ç[êý`},àæýõADuÿƸäÞŸÒý:Rï[Åû·÷çã=Ýï× º?ú=z¹�¤û¥î}ù>é÷fÝ'!w^ëé>é}RÝÛ°�/Á¸øµD]®¼¤þ'ÖQýþÎì�)ÖWqšòÜÏRŸeÆì§þ äþ�û:í4ùý$ö ½’û+’c^î3zÿ TýƒåD½o^ý”†Écß«a~¡>öSŸAö­'{«"{ê;׺ÅäÂÓqÄø¼áýÖ¿‰�篯>œúGòûˆÃbš¿l瑞ü]xÄ8ðï"ÂC~Œü�úvO|烿ªâý�ÇåïžÿŽïÍêÏ{ÿ]ýPÝŸÕ§ÏßI¼Oý5ûYÆÑûsÂ[8F?ÉýRïWEÿq¿Ã|ÏÐ_59øÜŸZ3ü±®ÆW“?ºF?^�öÑwª;Ç_vS¾‘= ß4*;b\÷k·Æý{­ìôðÝýßâÿ¿»ë[þÃï Êþÿÿc$0‘ ˜I,$!ø8hddc_toolbox/hddc_classif.m0000755000175000001440000000474110517663514015673 0ustar charlesusersfunction [cls,P] = hdda_classif2_faster(prms,Y,varargin); % High Dimensionality Discriminant Analysis (classification) % % Usage: (1) [cls,P] = hdda_classif(prms,Y); % % Input: % - prms: parameters of classes % - Y: data to classify % % Output: % - cls: label of test data Y.data, % - P: a posteriori probabilities % % Authors: C. Bouveyron - 2004-2006 % % Reference: C. Bouveyron, S. Girard and C. Schmid, "High Dimensional Discriminant Analysis", % Communications in Statistics, Theory and methods, in press, 2007. % Initialization %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if isstruct(Y), data = Y.data; if isfield(Y,'cls'), class = Y.cls; else class = []; end else data = Y; class = []; end [nt,pt] = size(data); model = prms.model; k = prms.k; p = prms.p; a = prms.a; b = prms.b; d = prms.d; prop = prms.prop; m = prms.m; Q = prms.Q; % Cost function computing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for i=1:k % Projection of test data in the eigenspace Ei Pa = ((data - repmat(m(i,:),nt,1)) * Q{i}) * Q{i}'; Pb = Pa + repmat(m(i,:),nt,1) - data; % Compute cost function K_i(x) switch model case {'AijBiQiDi','AijBiQiD','AijBQiDi','AijBQiD','AjBiQiD','AjBQiD','AjBQD'} ai = a(1:d(i),i)'; K(:,i) = diag(Pa * Q{i} * diag(1./ai) * Q{i}' * Pa') ... + (1/b(i) * sum(Pb.^2,2)) + sum(log(ai)) ... + (p-d(i)) * log(b(i)) - 2 * log(prop(i)) + p * log(2*pi); otherwise K(:,i) = 1/a(i) * sum(Pa.^2,2) + (1/b(i) * sum(Pb.^2,2)) + d(i) * log(a(i)) ... + (p-d(i)) * log(b(i)) - 2 * log(prop(i)) + p * log(2*pi); end end % a posteriori probabilities %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% P = exp(-0.5*K) ./ repmat(sum(exp(-0.5*K),2),1,k); if length(find(isnan(P)))~=0 | length(find(isinf(P)))~=0 fprintf('--> overflow switching to O(k*k) mode\n'); clear P; eksp = zeros(nt,k); for i=1:k for l=1:k eksps(:,l) = exp(0.5*(K(:,i) - K(:,l))); end P(:,i) = 1./sum(eksps,2); end end % Classification %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [val,cls] = max(P,[],2); % Classification results %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if ~isempty(class), tx = sum(cls == class) / length(cls); fprintf('--> Correct classification rate: %g \n',tx); end