Skip to main content

built in symbols - How to find language changes that were not included in the official change log


A change log is issued when Mathematica has an update, such as:




  1. 10.4




  2. 10.3





  3. 10.2




But for instance the PlotLabels option mentioned in this post is not in the log. And as far as I know, the ImageMarker or some other [[EXPERIMENTAL]] functions are missing too.


How do we find these newer functions?




We can find some using this method:


CanonicalName@
EntityList[EntityClass["WolframLanguageSymbol", "UnderDevelopment"]]



{Autocomplete, AutocompletionFunction, CachePersistence, ContentObject, DeleteSearchIndex, DimensionReduce, DimensionReducerFunction, DimensionReduction, FindFormula, FoldPair, FoldPairList, LocalObject, SearchIndexObject, SearchIndices, Snippet, TextCases, TextPosition, TextSearch, TextSearchReport, UpdateSearchIndex, WordTranslation}



But it seems incomplete: for instance, DistanceMatrix is not in this list.



Answer



New functions conveniently carry the "NEW in 10.4" header in their documentation page. Since the docs are blessedly written as Mathematica notebooks, and notebook are text files, we can just use grep or a similar tool to hunt for those help files that contain that header.


New in 10.4


Inspection of one such file with a text editor reveals that the raw cell code generating the header contains the fragment:


StyleBox["\<\"NEW IN 10.4\"\>",


Using a grep clone (AstroGrep on Win7-64) only on the Symbols folder of the documentation, which is located in $InstallationDirectory <> "\\Documentation\\English\\System\\ReferencePages\\Symbols" on my system, returns the following list:


$CloudExpressionBase             GreenFunction
$SourceLink Highlighted
ArrayMesh ImageMarker
Ask KeyValuePattern
AskAppend LocalObjects
AskConfirm MersennePrimeExponent
AskDisplay MersennePrimeExponentQ
AskedQ MixedMagnitude
AskedValue MixedUnit

AskFunction MomentOfInertia
AskTemplateDisplay PartProtection
BiquadraticFilterModel PerfectNumber
BoundingRegion PerfectNumberQ
CloudExpression PlanarGraph
CloudExpressions PlotLabels
ClusterClassify PolygonalNumber
ClusterDissimilarityFunction QuantityDistribution
ClusteringTree RegionMoment
ConnectedGraphComponents SourceLink

CreateCloudExpression SpellingCorrectionList
CreateFile Subsequences
CriterionFunction TravelDistanceList
DeleteCloudExpression UnequalTo
Dendrogram UniverseModelData
DictionaryWordQ URLDispatcher
DifferenceQuotient WeaklyConnectedGraphComponents
DynamicGeoGraphics WeatherForecastData
DynamicImage WordFrequency
FindTransientRepeat WordFrequencyData

GeoDistanceList ZoomCenter
GeoLength ZoomFactor

Notice that this includes the PlotLabels option that you mentioned as well.


Updated in 10.4


Similarly, the documentation carries a footer containing information on a function's date of introduction and latest update. For instance, the following fragment can be found in the documentation for ListPlot:


Cell[TextData[{
"Introduced in 2007",
Cell[" (6.0)", "HistoryVersion"],
" | ",

"Updated in 2016",
Cell[" (10.4)", "HistoryVersion"]
}], "History"],

Looking for files that contain "Updated in 2016" and also "Cell[" (10.4)", "HistoryVersion"]" returns the following sizable list:


ArcLength                      HypoexponentialDistribution      PalindromeQ
ArcSinDistribution Image3DSlices ParameterMixtureDistribution
Area ImageDistance ParetoDistribution
Association ImageEffect PascalDistribution
BatesDistribution InverseChiSquareDistribution PearsonDistribution

BeckmannDistribution InverseGammaDistribution PERTDistribution
BeniniDistribution InverseGaussianDistribution PlaneCurveData
BenktanderGibratDistribution JohnsonDistribution Plot
BenktanderWeibullDistribution KDistribution PoissonConsulDistribution
BernoulliDistribution KernelMixtureDistribution PolyaAeppliDistribution
BetaDistribution KumaraswamyDistribution PowerDistribution
BetaPrimeDistribution LaminaData Probability
BinomialDistribution LandauDistribution ProductDistribution
BinormalDistribution LaplaceDistribution RayleighDistribution
BirnbaumSaundersDistribution LevyDistribution RegionMeasure

CauchyDistribution LindleyDistribution RiceDistribution
CensoredDistribution ListLinePlot SechDistribution
ChiDistribution ListLogLinearPlot ShiftedGompertzDistribution
ChiSquareDistribution ListLogLogPlot SinghMaddalaDistribution
CopulaDistribution ListLogPlot SkewNormalDistribution
CoxianDistribution ListPlot SmoothKernelDistribution
DagumDistribution ListStepPlot SolidData
DataDistribution LocalAdaptiveBinarize SpaceCurveData
DateListLogPlot LogGammaDistribution SplicedDistribution
DateListPlot LogisticDistribution StableDistribution

DateListStepPlot LogLinearPlot StringFreeQ
DavisDistribution LogLogisticDistribution StringMatchQ
DirichletDistribution LogLogPlot StringPartition
Downsample LogNormalDistribution StringPosition
EmpiricalDistribution LogPlot StringReplace
ErlangDistribution MarchenkoPasturDistribution StringReplacePart
Expectation MarginalDistribution StudentTDistribution
ExpGammaDistribution MaxStableDistribution SurfaceData
ExponentialDistribution MaxwellDistribution SuzukiDistribution
ExponentialPowerDistribution MeixnerDistribution TransformedDistribution

ExtremeValueDistribution MinStableDistribution TriangularDistribution
FareySequence MixtureDistribution TruncatedDistribution
FisherZDistribution MortalityData TsallisQExponentialDistribution
FRatioDistribution MoyalDistribution TsallisQGaussianDistribution
FrechetDistribution MultinomialDistribution TukeyLambdaDistribution
GammaDistribution MultinormalDistribution UniformDistribution
GeometricDistribution MultivariateTDistribution UniformSumDistribution
GompertzMakehamDistribution NakagamiDistribution Upsample
Graph NegativeBinomialDistribution VarianceGammaDistribution
GumbelDistribution NegativeMultinomialDistribution VoigtDistribution

HalfNormalDistribution NoncentralBetaDistribution Volume
HighlightImage NoncentralChiSquareDistribution VonMisesDistribution
HistogramDistribution NoncentralFRatioDistribution WakebyDistribution
HotellingTSquareDistribution NoncentralStudentTDistribution WeibullDistribution
HoytDistribution NormalDistribution WignerSemicircleDistribution
HyperbolicDistribution Nothing
HyperexponentialDistribution OrderDistribution

Experimental in 10.4


Similarly, one can go hunt for functions marked "experimental" since these carry the "[[EXPERIMENTAL]]" indication in the header of their help file. This is slighlty more complicated because it turns out that the [[EXPERIMENTAL]] header is actually a graphics expression, rather than formatted text. Again, inspection of the notebook help file for one such function hinted at the following code snippet as a pretty reliable indicator of the presence of this header in a text search:



{Thickness[0.006944444444444444], FaceForm[{RGBColor[0.5, 0.5, 0.5],

Again using grep allowed me to identify the following list of currently experimental functions:


$SourceLink                    DimensionReduction
Ask DynamicGeoGraphics
AskAppend DynamicImage
AskConfirm FindFormula
AskDisplay FoldPair
AskedQ FoldPairList
AskedValue LocalObject

AskFunction LocalObjects
AskTemplateDisplay PartProtection
Autocomplete SearchIndexObject
AutocompletionFunction SearchIndices
CachePersistence SourceLink
CloudExpression TextCases
CloudExpressions TextElement
ClusterClassify TextPosition
Containing TextSearch
ContentObject TextSearchReport

CreateCloudExpression TextStructure
CreateSearchIndex UpdateSearchIndex
DeleteCloudExpression WordTranslation
DeleteSearchIndex ZoomCenter
DimensionReduce ZoomFactor
DimensionReducerFunction



To address the suggestion to use the experimental TextSearch, here is my understanding of the best method to do so. I first attempted to run a text search for "\"NEW in 10.4\"" on all files in the "Symbols" directory mentioned above:


TextSearch[FileNames[All, {pathToSymbolsDir}], "\"NEW in 10.4\""];


This ran for close to 10 min before returning a result. Pretty much a non-starter.


Then again, this is probably not the way TextSearch was intended to be used; it should really be used with a pre-generated SearchIndexObject. So I generated a search index from those files once and for all, then ran TextSearch using the index. Once the index is generated, which was still quite time consuming, the search itself worked a lot better:


index = CreateSearchIndex[pathToSymbolsDir]; // AbsoluteTiming
(*Out: {1084.54, Null} *)

It took 18 minutes to generate the index on a reasonably powerful SSD-equipped laptop. Each search after that was quite quick and led to the same result as grep:


#["FileName"] & /@ TextSearch[index, "\"NEW in 10.4\""]

{"$SourceLink.nb", "MixedMagnitude.nb", "ZoomCenter.nb", "DynamicGeoGraphics.nb",

"AskedQ.nb", "PerfectNumberQ.nb", [...], "DifferenceQuotient.nb", "ClusterClassify.nb",
"GreenFunction.nb", "PlanarGraph.nb"}

Comments

Popular posts from this blog

plotting - Filling between two spheres in SphericalPlot3D

Manipulate[ SphericalPlot3D[{1, 2 - n}, {θ, 0, Pi}, {ϕ, 0, 1.5 Pi}, Mesh -> None, PlotPoints -> 15, PlotRange -> {-2.2, 2.2}], {n, 0, 1}] I cant' seem to be able to make a filling between two spheres. I've already tried the obvious Filling -> {1 -> {2}} but Mathematica doesn't seem to like that option. Is there any easy way around this or ... Answer There is no built-in filling in SphericalPlot3D . One option is to use ParametricPlot3D to draw the surfaces between the two shells: Manipulate[ Show[SphericalPlot3D[{1, 2 - n}, {θ, 0, Pi}, {ϕ, 0, 1.5 Pi}, PlotPoints -> 15, PlotRange -> {-2.2, 2.2}], ParametricPlot3D[{ r {Sin[t] Cos[1.5 Pi], Sin[t] Sin[1.5 Pi], Cos[t]}, r {Sin[t] Cos[0 Pi], Sin[t] Sin[0 Pi], Cos[t]}}, {r, 1, 2 - n}, {t, 0, Pi}, PlotStyle -> Yellow, Mesh -> {2, 15}]], {n, 0, 1}]

plotting - Plot 4D data with color as 4th dimension

I have a list of 4D data (x position, y position, amplitude, wavelength). I want to plot x, y, and amplitude on a 3D plot and have the color of the points correspond to the wavelength. I have seen many examples using functions to define color but my wavelength cannot be expressed by an analytic function. Is there a simple way to do this? Answer Here a another possible way to visualize 4D data: data = Flatten[Table[{x, y, x^2 + y^2, Sin[x - y]}, {x, -Pi, Pi,Pi/10}, {y,-Pi,Pi, Pi/10}], 1]; You can use the function Point along with VertexColors . Now the points are places using the first three elements and the color is determined by the fourth. In this case I used Hue, but you can use whatever you prefer. Graphics3D[ Point[data[[All, 1 ;; 3]], VertexColors -> Hue /@ data[[All, 4]]], Axes -> True, BoxRatios -> {1, 1, 1/GoldenRatio}]

plotting - Mathematica: 3D plot based on combined 2D graphs

I have several sigmoidal fits to 3 different datasets, with mean fit predictions plus the 95% confidence limits (not symmetrical around the mean) and the actual data. I would now like to show these different 2D plots projected in 3D as in but then using proper perspective. In the link here they give some solutions to combine the plots using isometric perspective, but I would like to use proper 3 point perspective. Any thoughts? Also any way to show the mean points per time point for each series plus or minus the standard error on the mean would be cool too, either using points+vertical bars, or using spheres plus tubes. Below are some test data and the fit function I am using. Note that I am working on a logit(proportion) scale and that the final vertical scale is Log10(percentage). (* some test data *) data = Table[Null, {i, 4}]; data[[1]] = {{1, -5.8}, {2, -5.4}, {3, -0.8}, {4, -0.2}, {5, 4.6}, {1, -6.4}, {2, -5.6}, {3, -0.7}, {4, 0.04}, {5, 1.0}, {1, -6.8}, {2, -4.7}, {3, -1.