You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$FPToolsVersion::usage="$FPToolsVersion gives its best guess as to the version we're using.";
9
12
$FPToolsDebug::usage="$FPToolsDebug let's us know if the package was built with any debugging tools.";
10
13
@@ -13,6 +16,10 @@ $FPToolsDebug::usage = "$FPToolsDebug let's us know if the package was built wit
13
16
(*Introspection*)
14
17
15
18
19
+
(* ::Text:: *)
20
+
(*Metainformation about Mathematica. Borrowed from various stackexchange posts and some of my own code.*)
21
+
22
+
16
23
Spelunk::usage="Spelunk[symbol] will discover the definition of symbol. Underlined symbols in the output are clickable.";
17
24
PropertiesAvailability::usage="PropertiesAvailability[object] returns the {available, unavailable} properties for an object.";
18
25
PropertiesDataset::usage="PropertiesDataset[object] returns a TableForm of the available properties for object.";
@@ -22,110 +29,202 @@ GetSymbolsDefinedInMX::usage = "GetSymbolsDefinedInMX[mxfile] returns a list of
22
29
23
30
GetCompilerFunctions::usage="GetCompilerFunctions[] returns the list of functions that are compilable.";
24
31
32
+
33
+
(* ::Section:: *)
34
+
(*Data*)
35
+
36
+
37
+
(* ::Text:: *)
38
+
(*In the past there have been problems with Import and asking for Datasets. This doesn't fix it exactly, but works better.*)
39
+
40
+
41
+
ImportAsDataset::usage="ImportAsDataset[f] imports f and uses the first row as column headers. Default options are \"Headers\"->True, \"RowNames\"->False, \"ImportOptions->None\" ";
42
+
43
+
44
+
Overlap::usage="Overlap[l1,l2] gives the intersection of the range of two lists.";
45
+
46
+
25
47
(* ::Section:: *)
26
48
(*Entity*)
27
49
28
50
51
+
(* ::Text:: *)
52
+
(*Some semantic / entity probing things used by some developmental linguistics kids last semester.*)
53
+
54
+
29
55
EntityPropertiesDataset::usage="EntityPropertiesDataset[entity] does its best to list all the properties associated with the entity object supplied.";
30
56
ConceptBroaden::usage="ConceptBroaden[entity,depth] recursively climbs the Concept hierarchy until it hits the terminal Concept 'Entity' or after depth dives. Returns a list of Broader Concepts at each level.";
31
57
ConceptDistance::usage="ConceptDistance[entitya,entityb] determines the distance in 'concept steps' between concept a and b.";
32
58
ConceptDepth::usage="ConceptDepth[entity] computes the distance to the root of the Entity tree.";
GARepopulate::usage="GARepopulate[pop,fitfunc] creates a new population using fitfunc.";
70
+
GAMutate::usage="GAMutate[chromo] mutates a chromosome.";
71
+
GACrossover::usage="GACrossover[c1,c2] performs a random crossover of c1 & c2. Returns two offspring.";
72
+
73
+
74
+
(* ::Section:: *)
75
+
(*Geometry*)
76
+
77
+
78
+
ToCartesianRules::usage="A set of rules for rtp->xyz";
79
+
ToSphericalRules::usage="A set of rules for xyz->rtp";
80
+
81
+
82
+
(* ::Text:: *)
83
+
(*These are for converting to and from various texture-map coordinate systems.*)
84
+
85
+
86
+
RectangularToPhiTheta::usage="RectangularToPhiTheta[{u,v}] gives the phi/theta (spherical) coordinates from a latlon coordinate system. u and v are on [0,1)";
87
+
PhiThetaToDirection::usage="PhiThetaToDirection[{phi,theta}] gives the direction vector {dx,dy,dz} from the spherical coordinates phi / theta.";
88
+
RectangularToDirection::usage="RectangularToDirection[{u,v}] gives the direction vector {dx,dy,dz} from the [0,1) latlon coordinates.";
89
+
DirectionToRectangular::usage="DirectionToRectangular[{dx,dy,dz}] gives index into texture space {u,v} from the direction vector.";
90
+
91
+
92
+
CircularToAngular::usage="CircularToAngular[{u,v}] gives the theta/phi (angular) coordinates from a circluar coordinate system. u and v are on [0,1)";
93
+
AngularToDirection::usage="AngularToDirection[{theta,phi}] gives the direction vector {dx,dy,dz} from the angular coordinates theta / phi.";
94
+
CircularToDirection::usage="CircularToDirection[{u,v}] gives the direction vector {dx,dy,dz} from the [0,1) circular coordinates.";
95
+
DirectionToCircular::usage="DirectionToCircular[{dx,dy,dz}] gives index into circular texture space {u,v} from the direction vector.";
96
+
97
+
98
+
(* ::Section:: *)
99
+
(*Graphics*)
100
+
101
+
102
+
RectangleToDisk::usage="RectangleToDisk[rect] takes a rectangle and returns an equivalent disk.";
103
+
104
+
35
105
(* ::Section:: *)
36
106
(*Image*)
37
107
38
108
109
+
(* ::Text:: *)
110
+
(*Some shortcuts for face things from a recent project*)
111
+
112
+
39
113
ImageIdentifyFP::usage="ImageIdentifyFP[image,{n}] does the standard image identify returnig n (default 5) items and its probabilities.";
40
114
BlurFaces::usage="BlurFaces[image] blurs faces in image. Options include Method (Box,Disk,Outline,Eyes,FaceParts) and FilterRadius.";
41
115
FindFaceImages::usage="FindFaceImages[image,scale] finds faces in an image, scaling the returned image by `scale` (default 1). Larger values provide more context, smaller less.";
42
-
AddAlphaChannel::usage="AddAlphaChannel[image] adds a unity alpha channel to image.";
116
+
117
+
118
+
(* ::Text:: *)
119
+
(*Very basic ffmpeg tools*)
120
+
43
121
44
122
$FFMpegPath::usage="$FFMpegPath is the path to the `ffmpeg` executable.";
45
123
ImportMP4Frame::usage="ImportMP4Frame[file,frame] extracts frame `frame` from MP4 file `file`.";
46
124
ImportMP4Frames::usage="ImportMP4Frames[file,start,dur] extracts frames from start of dur from MP4 file `file`.";
47
125
ImportWebFrame::usage="ImportWebFrame[url] grabs a frame from the stream at url.";
48
126
49
-
LensDistortPoint::usage="LensDistortPoint[{x,y},{p1,p2},{k1,...}] projects point x,y using the distortion specified in the p and k vectors.";
50
127
51
-
LensDistortionCorrection::usage="LensDistortionCorrection[image,{tx,ty},theta,{p1,p1},{k1,k2,k3...}] performs a lens distortion correction along with a generalized translation (t) and rotation (theta). p1 and p2 specify 1st order astygmatism and k1-6 the different orders of distortion beyond that. Note you only need to supply k's up to the desired order of correction.";
128
+
(* ::Text:: *)
129
+
(*Compute various order lens distortion corrections. Was useful with de-barreling/fisheyeing the Sony and GoPro action cam footage.*)
52
130
53
-
ParallelImageApplyIndexed::usage="ParallelImageApplyIndexed[f,im] maps f over im using parallel kernels. At this point, its only a single image plane";
54
131
55
-
InterleavingQ::usage="InterleavingQ[im] returns True if im is interleaved.";
56
-
ImageInformation::usage="ImageInformation[im] returns a Dataset of the image information as per the FE's viewer.";
132
+
LensDistortPoint::usage="LensDistortPoint[{x,y},{p1,p2},{k1,...}] projects point x,y using the distortion specified in the p and k vectors.";
133
+
LensDistortionCorrection::usage="LensDistortionCorrection[image,{tx,ty},theta,{p1,p1},{k1,k2,k3...}] performs a lens distortion correction along with a generalized translation (t) and rotation (theta). p1 and p2 specify 1st order astygmatism and k1-6 the different orders of distortion beyond that. Note you only need to supply k's up to the desired order of correction.";
57
134
58
-
(* ::Section:: *)
59
-
(*Internet*)
60
135
136
+
(* ::Text:: *)
137
+
(*This is missing mainly because many/most of the image processing algorithms are already parallelized. Still, of course, I have found some that are not and this lets me take advantage.*)
61
138
62
-
$MachineAddressesExternal::usage="$MachineAddressesExternal gives the IP address of this machine as seen by the outside world.";
63
139
140
+
ParallelImageApplyIndexed::usage="ParallelImageApplyIndexed[f,im] maps f over im using parallel kernels. At this point, its only a single image plane";
64
141
65
-
(* ::Section:: *)
66
-
(*Sugar*)
67
142
143
+
(* ::Text:: *)
144
+
(*Some things that are missing that should be part of WL, IMHO.*)
68
145
69
-
ApplyIf::usage="ApplyIf[f,g,x] applies g to x if f[x] is True.";
70
146
71
-
RectangleToDisk::usage="RectangleToDisk[rect] takes a rectangle and returns an equivalent disk.";
147
+
AddAlphaChannel::usage="AddAlphaChannel[image] adds a unity alpha channel to image.";
148
+
InterleavingQ::usage="InterleavingQ[im] returns True if im is interleaved.";
149
+
ImageInformation::usage="ImageInformation[im] returns a Dataset of the image information as per the FE's viewer.";
72
150
73
-
ToCartesianRules::usage="A set of rules for rtp->xyz";
74
-
ToSphericalRules::usage="A set of rules for xyz->rtp";
75
151
76
152
(* ::Section:: *)
77
-
(*Versioning*)
153
+
(*Internet*)
78
154
79
155
80
-
VersionInformation::usage="VersionInformation[path] gives an association with my primitive home grown versioning system.";
81
-
VersionString::usage="VersionString[path] returns the current build as a string. the option \"Build->True\" adds the build number to the end of the string.";
82
-
VersionWriteInformation::usage="VersionWriteInformation[path,vi] takes a version information structure and writes it out. At this point it doesn't validate its structure.";
83
-
VersionBumpBuild::usage="VersionBumpBuild[path] updates the build number in the version json file.";
84
-
VersionBuildString::usage="VersionBuildString[path] returns the current build number as a string.";
156
+
(* ::Text:: *)
157
+
(*Sometimes you're behind a DHCP and you want to know what you look like to the rest of the world.*)
85
158
86
-
UpdatePacletFile::usage="UpdatePacletFile[ppath,vpath] writes a new PacletInfo file based on the current version and build in the FP version.json system.";
159
+
160
+
$MachineAddressesExternal::usage="$MachineAddressesExternal gives the IP address of this machine as seen by the outside world.";
87
161
88
162
89
163
(* ::Section:: *)
90
-
(*Data*)
164
+
(*Signals*)
91
165
92
-
ImportAsDataset::usage="ImportAsDataset[f] imports f and uses the first row as column headers. Default options are \"Headers\"->True, \"RowNames\"->False, \"ImportOptions->None\" ";
93
166
94
-
UnitizedGaussianPDF::usage="UnitizedGaussian[mu,sigma] gives a pure function of a PDF whose value at the mean = 1.0.";
167
+
(* ::Text:: *)
168
+
(*Signal processing tools*)
95
169
96
-
Overlap::usage="Overlap[l1,l2] gives the intersection of the range of two lists.";
97
-
98
-
(* ::Section:: *)
99
-
(*Signals*)
100
170
101
171
FindZeroCrossings::usage="FindZeroCrossings[list] returns pairs that indicate zero-crossing locations in list.";
102
172
173
+
103
174
FFTShift::usage="Mimic MATLABs fftshift (ImagePeriodogram does this in more recent MMa).";
GARepopulate::usage="GARepopulate[pop,fitfunc] creates a new population using fitfunc.";
112
-
GAMutate::usage="GAMutate[chromo] mutates a chromosome.";
113
-
GACrossover::usage="GACrossover[c1,c2] performs a random crossover of c1 & c2. Returns two offspring.";
181
+
UnitizedGaussianPDF::usage="UnitizedGaussian[mu,sigma] gives a pure function of a PDF whose value at the mean = 1.0.";
182
+
114
183
115
184
(* ::Section:: *)
116
185
(*Statistics*)
186
+
187
+
188
+
(* ::Text:: *)
189
+
(*Re-implementation of some functions that were included in earlier statistics packages in MMa but have gone missing over the years.*)
190
+
191
+
117
192
LocationReport::usage="LocationReport[list] gives the Mean, HarmonicMean, and Median location statistics for list.";
118
193
DispersionReport::usage="DispersionReport[list] gives the Variance, StandardDeviation, SampleRange, MeanDeviation, MedianDeviation, and QuartileDeviation dispersion statistics for list.";
119
194
ShapeReport::usage="ShapeReport[list] gives the Skewness, QuartileSkewness, and KurtosisExcess shape statistics for list.";
120
195
121
-
StandardDeviationMLE::usage="StandardDeviationMLE[list] gives the standard deviation of the entries in list. Division by n is used, giving a maximum likelihood estimate of the population standard deviation.";
122
196
197
+
StandardDeviationMLE::usage="StandardDeviationMLE[list] gives the standard deviation of the entries in list. Division by n is used, giving a maximum likelihood estimate of the population standard deviation.";
123
198
VarianceMLE::usage="VarianceMLE[list] gives the variance of the entries in list. Division by n (rather than n-1) is used, giving a maximum likelihood estimate of the population variance (use Variance[list] for an unbiased estimate).";
124
-
125
199
StandardErrorOfSampleMean::usage="StandardErrorOfSampleMean[list] gives an unbiased estimate of the standard error (standard deviation) of the sample mean, using the entries in list as a sample from the population.";
200
+
CoefficientOfVariation::usage="CoefficientOfVariation[list] gives the coefficient of variation, defined as the ratio of the standard deviation to the mean of the entries in list. If the entries are not all positive, then $Failed is returned."
201
+
ZeroMean::usage="Zeroize the data about the mean.";
126
202
127
-
VarianceOfSampleMean::usage="VarianceOfSampleMean[list] gives an unbiased estimate of the variance of the sample mean, using the entries in list as a sample from the population.";
128
203
129
-
CoefficientOfVariation::usage="CoefficientOfVariation[list] gives the coefficient of variation, defined as the ratio of the standard deviation to the mean of the entries in list. If the entries are not all positive, then $Failed is returned."
204
+
(* ::Section:: *)
205
+
(*Sugar*)
130
206
131
-
ZeroMean::usage="Zeroize the data about the mean.";
207
+
208
+
(* ::Text:: *)
209
+
(*Syntactic sugars*)
210
+
211
+
212
+
ApplyIf::usage="ApplyIf[f,g,x] applies g to x if f[x] is True.";
213
+
214
+
215
+
(* ::Section:: *)
216
+
(*Versioning*)
217
+
218
+
219
+
(* ::Text:: *)
220
+
(*WL interface to my json based version system. Also can parse and update a Paclet data structure*)
221
+
222
+
223
+
VersionInformation::usage="VersionInformation[path] gives an association with my primitive home grown versioning system.";
224
+
VersionString::usage="VersionString[path] returns the current build as a string. the option \"Build->True\" adds the build number to the end of the string.";
225
+
VersionWriteInformation::usage="VersionWriteInformation[path,vi] takes a version information structure and writes it out. At this point it doesn't validate its structure.";
226
+
VersionBumpBuild::usage="VersionBumpBuild[path] updates the build number in the version json file.";
227
+
VersionBuildString::usage="VersionBuildString[path] returns the current build number as a string.";
228
+
229
+
230
+
UpdatePacletFile::usage="UpdatePacletFile[ppath,vpath] writes a new PacletInfo file based on the current version and build in the FP version.json system.";
0 commit comments