Re: Where is the code for DistanceMatrix?
- To: mathgroup at smc.vnet.net
- Subject: [mg109290] Re: Where is the code for DistanceMatrix?
- From: "Ingolf Dahl" <ingolf.dahl at telia.com>
- Date: Tue, 20 Apr 2010 05:53:18 -0400 (EDT)
Thanks to all answerers to my question about the location of the code for DistanceMatrix. Yes, it is in the Kernel, and the help is misleading: "To use DistanceMatrix, you first need to load the Hierarchical Clustering Package using Needs["HierarchicalClustering`"]" I think that the following, or something similar, ought to be added: "Alternatively, you might use the full name HierarchicalClustering`DistanceMatrix. This works because the code for this command is located in the Kernel (in the HierarchicalClustering` context), and loaded when the Kernel is started." I also think the usage message in the HierarchicalClustering` package, mentioning that a symmetric matrix is generated, is better than the usage message generated by the Kernel, not mentioning this. I would prefer that the symmetry was determined by the DistanceFunction used, or set by an extra option, but that is my personal taste, and it might brake some code. I have to write my own function for such cases. Maybe this is badly documented because this is bad design and subject to change? But bad design is just the case when the user really needs good documentation. I became curious: Are there sibling commands to DistanceMatrix, loadable in the same way? If I run the command Contexts[], I get a long list of different contexts, loaded together with the Kernel. I deleted all contexts that started with System`, and named the list list1. To get all commands with usage messages, I run the command withusagemessagelist1 = Select[Flatten[Names[StringJoin[#, "*"]] & /@ list1], (StringQ[ MessageName @@ Append[ToHeldExpression[#], "usage"]]) & ] (There are many more commands without usage message) Then I obtain 221 commands and words, and many of them can probably be used without loading their package, if the full name is specified. Some can be found in the Mathematica Help, some are not found. And some of these packages are anyway loaded from the beginning, check by running $Packages. The list follows below. Best regards Ingolf Dahl Sweden Automatically loaded packages {"ResourceLocator`", "DocumentationSearch`", "JLink`", \ "PacletManager`", "WebServices`", "System`", "Global`"} The list: {"BoxForm`AddCommas", "BoxForm`AddOptions", \ "DatabaseLink`DatabaseResourcesPath", "DatabaseLink`DataSources", \ "DatabaseLink`JDBCDriverNames", "DatabaseLink`SQLConnections", \ "Developer`BesselSimplify", "Developer`BoundingBox", \ "Developer`CellInformation", "Developer`FibonacciSimplify", \ "Developer`FindDivisions", "Developer`FromPackedArray", \ "Developer`GammaSimplify", "Developer`MachineIntegerQ", \ "Developer`NotebookConvert", "Developer`PackedArrayForm", \ "Developer`PackedArrayQ", "Developer`PartitionMap", \ "Developer`PolyGammaSimplify", "Developer`PolyLogSimplify", \ "Developer`ReplaceAllUnheld", "Developer`ToPackedArray", \ "Developer`TrigToRadicals", "Developer`ZeroQ", \ "Developer`ZetaSimplify", "Developer`$MaxMachineInteger", \ "DocumentationSearch`AddDocumentationDirectory", \ "DocumentationSearch`AddDocumentationNotebook", \ "DocumentationSearch`CloseDocumentationIndex", \ "DocumentationSearch`CloseDocumentationNotebookIndexer", \ "DocumentationSearch`CreateSpellIndex", \ "DocumentationSearch`DirectHitSearch", \ "DocumentationSearch`DocumentationIndexes", \ "DocumentationSearch`DocumentationNotebookIndexer", \ "DocumentationSearch`DocumentationSpellIndexes", \ "DocumentationSearch`ExportSearchResults", \ "DocumentationSearch`NewDocumentationNotebookIndexer", \ "DocumentationSearch`SearchDocumentation", \ "DocumentationSearch`SearchDocumentationMetaData", \ "DocumentationSearch`$NumberOfExtraPages", \ "Experimental`CircularSlider", "Experimental`CompileEvaluate", \ "Experimental`ExistsRealQ", "Experimental`ForAllRealQ", \ "Experimental`ImpliesQ", "Experimental`ImpliesRealQ", \ "Experimental`ValueFunction", "HierarchicalClustering`Agglomerate", \ "HierarchicalClustering`Cluster", \ "HierarchicalClustering`DirectAgglomerate", \ "HierarchicalClustering`DistanceMatrix", \ "HierarchicalClustering`Linkage", "Internal`BlockFlatten", \ "JLink`AddPeriodical", "JLink`AddToClassPath", \ "JLink`AllowRaggedArrays", "JLink`AllowShortContext", \ "JLink`AppletViewer", "JLink`BeginJavaBlock", "JLink`ByRef", \ "JLink`ClassName", "JLink`ClassPath", "JLink`CloseFrontEnd", \ "JLink`CommandLine", "JLink`ConnectToFrontEnd", "JLink`Constructors", \ "JLink`CreateExtraLinks", "JLink`DoModal", "JLink`EndJavaBlock", \ "JLink`EndModal", "JLink`FieldFunction", "JLink`Fields", \ "JLink`ForceLaunch", "JLink`FrontEndLink", "JLink`FrontEndSharedQ", \ "JLink`GetClass", "JLink`GetClassPath", "JLink`GetComplexClass", \ "JLink`GetJavaException", "JLink`GetJVM", \ "JLink`ImplementJavaInterface", "JLink`InstallJava", \ "JLink`InstanceOf", "JLink`Java", "JLink`JavaBlock", \ "JLink`JavaClass", "JLink`JavaClassPath", "JLink`JavaLink", \ "JLink`JavaNew", "JLink`JavaObject", "JLink`JavaObjectQ", \ "JLink`JavaObjectToExpression", "JLink`JavaShow", "JLink`JavaThrow", \ "JLink`JavaUILink", "JLink`JavaWindowToFront", "JLink`JVM", \ "JLink`JVMArguments", "JLink`KeepJavaObject", "JLink`KeepObjects", \ "JLink`KernelSharedQ", "JLink`LoadClass", "JLink`LoadedJavaClasses", \ "JLink`LoadedJavaObjects", "JLink`LoadJavaClass", \ "JLink`MakeJavaExpr", "JLink`MakeJavaObject", "JLink`MethodFunction", \ "JLink`Methods", "JLink`ParentClass", "JLink`PeekClasses", \ "JLink`PeekObjects", "JLink`Periodical", "JLink`Periodicals", \ "JLink`QuitJava", "JLink`RegisterJavaInitialization", \ "JLink`ReinstallJava", "JLink`ReleaseJavaObject", \ "JLink`ReleaseObject", "JLink`RemovePeriodical", "JLink`RestartJava", \ "JLink`ReturnAsJavaObject", "JLink`SameObjectQ", "JLink`ServiceJava", \ "JLink`SetComplexClass", "JLink`SetField", "JLink`SetInternetProxy", \ "JLink`SetPeriodicalInterval", "JLink`ShareFrontEnd", \ "JLink`ShareKernel", "JLink`SharingLinks", "JLink`SharingPrompt", \ "JLink`ShowJavaConsole", "JLink`StartJava", "JLink`StaticsVisible", \ "JLink`UninstallJava", "JLink`UnshareFrontEnd", \ "JLink`UnshareKernel", "JLink`UseFrontEnd", "JLink`UseJVM", \ "JLink`UseTypeChecking", "JLink`Val", "JLink`$ExtraClassPath", \ "JLink`$FrontEndInitializationFunction", \ "JLink`$FrontEndLaunchCommand", "JLink`$JavaExceptionHandler", \ "JLink`$RelaxedTypeChecking", "JLink`$ThisPeriodical", \ "NETLink`LoadedNETAssemblies", "NETLink`LoadedNETTypes", \ "NETLink`LoadNETType", "NETLink`NETLink", "NETLink`NETObjectQ", \ "GetVirtualCellGroup", "PackPaclet", "Paclet", "PacletCheckUpdate", \ "PacletDirectoryAdd", "PacletDirectoryRemove", "PacletDisable", \ "PacletEnable", "PacletFind", "PacletFindRemote", \ "PacletInformation", "PacletInstall", "PacletInstallQueued", \ "PacletManager", "PacletManagerEnabled", "PacletNewerQ", \ "PacletResource", "PacletSetLoading", "PacletSite", "PacletSiteAdd", \ "PacletSiteRemove", "PacletSiteRename", "PacletSites", \ "PacletSiteUpdate", "PacletUninstall", "PacletUpdate", \ "RebuildPacletData", "RestartPacletManager", "SetInternetProxy", \ "SetInternetProxyCredentials", "UnpackPaclet", "UseInternetProxy", \ "$AllowDataUpdates", "$AllowDocumentationUpdates", "$AllowInternet", \ "$InternetProxyRules", "$PacletSite", "$UserBasePacletsDirectory", \ "ResourceLocator`ApplicationAdd", \ "ResourceLocator`ApplicationDataDirectory", \ "ResourceLocator`ApplicationDataUserDirectory", \ "ResourceLocator`ApplicationDirectoriesLocate", \ "ResourceLocator`ApplicationDirectoryAdd", \ "ResourceLocator`ApplicationsLocate", \ "ResourceLocator`CreateDataDirectory", \ "ResourceLocator`PreferencesDelete", \ "ResourceLocator`PreferencesRead", \ "ResourceLocator`PreferencesWrite", "ResourceLocator`ResourceAdd", \ "ResourceLocator`ResourcesLocate", \ "ResourceLocator`TextResourceFunction", \ "ResourceLocator`TextResourceLoad", "FromServiceResponse", \ "InstallServiceOperation", "InvokeServiceOperation", \ "ToServiceRequest", "$InstalledServices", "$PrintServiceRequest", \ "$PrintServiceResponse", "$PrintShortErrorMessages", \ "$PrintWSDLDebug", "XML`FromSymbolicXML", "XML`RawXML", \ "XML`SymbolicXMLErrors", "XML`SymbolicXMLQ", "XML`ToCompactXML", \ "XML`ToSymbolicXML", "XML`ToVerboseXML"}