4

There are a few Mathematica users beside myself that are running it on a Raspberry Pi, and we found out it does not always perform the same as the Desktop version [1][2]. During the testing of the prerelease it became obvious that some of the functions are too complex for the not-very-fast [3][4] Pi. So Wolfram decided to omit them from the Pi release branch. Which functions are omitted is not currently documented, so I'd like to find out this on my own.

shrx
  • 7,807
  • 2
  • 22
  • 55

1 Answers1

1

We can get the list of all built-in functions with Information:

Information["*"]

However, this function prints its output to a special stream called $Urgent [5]. So to be able to manipulate the output, it needs to be redirected, for example to a text file. I ran this both on a desktop (OS X) version and a Raspberry Pi version of Mathematica V10:

infoFile = OpenWrite["output.txt"]
Block[{$Urgent = infoFile}, Information["*"]]
Close[infoFile]

And then compared the two function lists. The functions included only in the desktop version are:

Complement @@ (StringSplit[Import[#]] & /@ {"output.txt", 
    "pi-output.txt"})
{Absolute,AllowKernelInitialization,Ascending,Associate,CelestialSystem,ConsoleMessage,
CreateDatabase,Decimate,DeclareKnownSymbols,Descending,DisplayWith,DisplayWithRef,
DisplayWithVariable,DrawEdges,DrawFrontFaces,EclipseType,EdgeCapForm,EdgeColor,EdgeDashing,
EdgeJoinForm,EdgeOpacity,EdgeThickness,EmbedCode,EmbeddingObject,ExternalTypeSignature,FailedQ,
FinishDynamic,\[FormalX]$,FrontFaceColor,FrontFaceOpacity,GraphicsColor,GraphicsHighlightColor,
LineColor,LineOpacity,LunarEclipse,MoonPhase,MoonPosition,NewPrimitiveStyle,
RectangleBoxOptions,RefBox,SelectionDebuggerTag,SiderealTime,Slice,SolarEclipse,SunPosition,
Sunrise,Sunset,TemplateBlock,TimeDirection,UpdateDynamicObjects,UpdateDynamicObjectsSynchronous,
$EmbedCodeEnvironments,$InterfaceEnvironment,$SynchronousEvaluation}

The Pi version also has some exclusive functions:

Complement @@ (StringSplit[Import[#]] & /@ 
   {"pi-output.txt", "output.txt"})
{AssociationFormat,AssociationMap,BooleanStrings,CloudAccountData,CountDistinct,CountDistinctBy,
DataForm,DeleteDuplicatesBy,ElidedForms,ExternalBundle,FailureAction,FormTheme,IndexBy,
ItemAspectRatio,ListFormat,MissingBehavior,MissingString,PartBehavior,Pivot,Query,TimeFormat,
URLBuild,URLDecode,URLEncode,URLExecute,URLExistsQ,URLExpand,URLParse,URLQueryDecode,
URLQueryEncode,URLShorten,ValidateQuery,$CloudCreditsAvailable,$HTMLExportRules,$TemplatePath}
shrx
  • 7,807
  • 2
  • 22
  • 55
  • 1
    Something is incorrect here... Those functions are not exclusive to the Pi. They're all in my copy of v10. – rm -rf Aug 14 '14 at 12:26
  • @rm-rf Is this a bug in Information then? – shrx Aug 14 '14 at 12:31
  • When I evaluate Information["*"] in V10 on OS X, I find all the symbols in your Pi-exclusive list. – m_goldberg Aug 14 '14 at 12:47
  • 2
    Any idea where Decimate came from? I totally want to do this in Mathematica. – bobthechemist Aug 14 '14 at 12:56
  • 1
    @shrx I don't know. I typically use Names for this, not Information. – rm -rf Aug 14 '14 at 12:57
  • @bobthechemist Decimation is just lowpass filtering followed by downsampling. I have a decimation function in this answer. – rm -rf Aug 14 '14 at 12:58
  • @rm-rf probably a lot more useful than what I was thinking about. It doesn't look like this is a real symbol so I wonder why it's showing up in the OP's Information["*"] call. – bobthechemist Aug 14 '14 at 13:08
  • Strange, I tried with Names[] but those functions are still missing. They are nevertheless included in the documentation but I can't evaluate them. – shrx Aug 14 '14 at 13:17
  • 1
    Names["*"] and Information["*"] give exactly the same list of symbols (after Remove["Global`*"]), so there is no need to parse the output of Information... – Alexey Popkov Aug 14 '14 at 15:52
  • Out of curiosity, would you have the relevant Release Id or version for your installation? – image_doctor Aug 18 '14 at 11:47