public class KDTree extends NearestNeighbourSearch
@article{Friedman1977, author = {Jerome H. Friedman and Jon Luis Bentley and Raphael Ari Finkel}, journal = {ACM Transactions on Mathematics Software}, month = {September}, number = {3}, pages = {209-226}, title = {An Algorithm for Finding Best Matches in Logarithmic Expected Time}, volume = {3}, year = {1977} } @techreport{Moore1991, author = {Andrew Moore}, booktitle = {University of Cambridge Computer Laboratory Technical Report No. 209}, howpublished = {Extract from PhD Thesis}, title = {A tutorial on kd-trees}, year = {1991}, HTTP = {Available from http://www.autonlab.org/autonweb/14665.html} }Valid options are:
-S <classname and options> Node splitting method to use. (default: weka.core.neighboursearch.kdtrees.SlidingMidPointOfWidestSide)
-W <value> Set minimal width of a box (default: 1.0E-2).
-L Maximal number of instances in a leaf (default: 40).
-N Normalizing will be done (Select dimension for split, with normalising to universe).
NearestNeighbourSearch.MyHeap, NearestNeighbourSearch.MyHeapElement, NearestNeighbourSearch.NeighborList, NearestNeighbourSearch.NeighborNode
| Modifier and Type | Field | Description |
|---|---|---|
protected double[] |
m_DistanceList |
Array holding the distances of the nearest neighbours.
|
protected EuclideanDistance |
m_EuclideanDistance |
The euclidean distance function to use.
|
protected int[] |
m_InstList |
Indexlist of the instances of this kdtree.
|
protected int |
m_MaxDepth |
Tree stats.
|
protected int |
m_MaxInstInLeaf |
maximal number of instances in a leaf.
|
protected double |
m_MinBoxRelWidth |
minimal relative width of a KDTree rectangle.
|
protected int |
m_NumLeaves |
Tree stats.
|
protected int |
m_NumNodes |
Tree stats.
|
protected KDTreeNode |
m_Root |
The root node of the tree.
|
protected KDTreeNodeSplitter |
m_Splitter |
The node splitter.
|
static int |
MAX |
The index of MAX value in attributes' range array.
|
static int |
MIN |
The index of MIN value in attributes' range array.
|
static int |
WIDTH |
The index of WIDTH (MAX-MIN) value in attributes' range array.
|
m_DistanceFunction, m_Instances, m_kNN, m_MeasurePerformance
| Constructor | Description |
|---|---|
KDTree() |
Creates a new instance of KDTree.
|
KDTree(Instances insts) |
Creates a new instance of KDTree.
|
| Modifier and Type | Method | Description |
|---|---|---|
void |
addInstanceInfo(Instance instance) |
Adds one instance to KDTree loosly.
|
protected void |
addInstanceToTree(Instance inst,
KDTreeNode node) |
Recursively adds an instance to the tree starting from
the supplied KDTreeNode.
|
protected void |
afterAddInstance(KDTreeNode node) |
Corrects the start and end indices of a
KDTreeNode after an instance is added to
the tree.
|
void |
assignSubToCenters(KDTreeNode node,
Instances centers,
int[] centList,
int[] assignments) |
Assigns instances of this node to center.
|
protected void |
buildKDTree(Instances instances) |
Builds the KDTree on the supplied set of instances/points.
|
protected boolean |
candidateIsFullOwner(KDTreeNode node,
Instance candidate,
Instance competitor) |
Returns true if candidate is a full owner in respect to a competitor.
|
void |
centerInstances(Instances centers,
int[] assignments,
double pc) |
Assigns instances to centers using KDTree.
|
protected void |
checkMissing(Instance ins) |
Checks if there is any missing value in the given
instance.
|
protected void |
checkMissing(Instances instances) |
Checks if there is any instance with missing values.
|
protected boolean |
clipToInsideHrect(KDTreeNode node,
Instance x) |
Finds the closest point in the hyper rectangle to a given point.
|
protected void |
determineAssignments(KDTreeNode node,
Instances centers,
int[] candidates,
int[] assignments,
double pc) |
Assigns instances to the current centers called candidates.
|
protected double |
distanceToHrect(KDTreeNode node,
Instance x) |
Returns the distance between a point and an hyperrectangle.
|
java.util.Enumeration |
enumerateMeasures() |
Returns an enumeration of the additional measure names.
|
protected void |
findNearestNeighbours(Instance target,
KDTreeNode node,
int k,
NearestNeighbourSearch.MyHeap heap,
double distanceToParents) |
Returns (in the supplied heap object) the k nearest
neighbours of the given instance starting from the give
tree node.
|
DistanceFunction |
getDistanceFunction() |
returns the distance function currently in use.
|
double[] |
getDistances() |
Returns the distances to the kNearest or 1 nearest neighbour currently
found with either the kNearestNeighbours or the nearestNeighbour method.
|
int |
getMaxInstInLeaf() |
Get the maximum number of instances in a leaf.
|
protected double |
getMaxRelativeNodeWidth(double[][] nodeRanges,
double[][] universe) |
Returns the maximum attribute width of instances/points
in a KDTreeNode relative to the whole dataset.
|
double |
getMeasure(java.lang.String additionalMeasureName) |
Returns the value of the named measure.
|
double |
getMinBoxRelWidth() |
Gets the minimum relative box width.
|
KDTreeNodeSplitter |
getNodeSplitter() |
Returns the splitting method currently in use to split the nodes of the
KDTree.
|
boolean |
getNormalizeNodeWidth() |
Gets the normalize flag.
|
java.lang.String |
globalInfo() |
Returns a string describing this nearest neighbour search algorithm.
|
Instances |
kNearestNeighbours(Instance target,
int k) |
Returns the k nearest neighbours of the supplied instance.
|
java.lang.String |
maxInstInLeafTipText() |
Tip text for this property.
|
double |
measureMaxDepth() |
Returns the depth of the tree.
|
double |
measureNumLeaves() |
Returns the number of leaves.
|
double |
measureTreeSize() |
Returns the size of the tree.
|
java.lang.String |
minBoxRelWidthTipText() |
Tip text for this property.
|
Instance |
nearestNeighbour(Instance target) |
Returns the nearest neighbour of the supplied target
instance.
|
java.lang.String |
nodeSplitterTipText() |
Returns the tip text for this property.
|
java.lang.String |
normalizeNodeWidthTipText() |
Tip text for this property.
|
protected int[] |
refineOwners(KDTreeNode node,
Instances centers,
int[] candidates) |
Refines the ownerlist.
|
void |
setDistanceFunction(DistanceFunction df) |
sets the distance function to use for nearest neighbour search.
|
void |
setInstances(Instances instances) |
Builds the KDTree on the given set of instances.
|
void |
setMaxInstInLeaf(int i) |
Sets the maximum number of instances in a leaf.
|
void |
setMeasurePerformance(boolean measurePerformance) |
Sets whether to calculate the performance statistics or not.
|
void |
setMinBoxRelWidth(double i) |
Sets the minimum relative box width.
|
void |
setNodeSplitter(KDTreeNodeSplitter splitter) |
Sets the splitting method to use to split the nodes of the KDTree.
|
void |
setNormalizeNodeWidth(boolean n) |
Sets the flag for normalizing the widths of a KDTree Node by the width of
the dimension in the universe.
|
protected void |
splitNodes(KDTreeNode node,
double[][] universe,
int depth) |
Recursively splits nodes of a tree starting from the supplied node.
|
void |
update(Instance instance) |
Adds one instance to the KDTree.
|
protected int |
widestDim(double[][] nodeRanges,
double[][] universe) |
Returns the widest dimension/attribute in a
KDTreeNode (widest after normalizing).
|
combSort11, distanceFunctionTipText, getInstances, getMeasurePerformance, measurePerformanceTipText, partition, quickSort
protected double[] m_DistanceList
protected int[] m_InstList
protected KDTreeNode m_Root
protected KDTreeNodeSplitter m_Splitter
protected int m_NumNodes
protected int m_NumLeaves
protected int m_MaxDepth
public static final int MIN
public static final int MAX
public static final int WIDTH
protected EuclideanDistance m_EuclideanDistance
protected double m_MinBoxRelWidth
protected int m_MaxInstInLeaf
public KDTree()
public KDTree(Instances insts)
insts
- The instances/points on which the BallTree
should be built on.protected void buildKDTree(Instances instances) throws java.lang.Exception
instances
- The instances to build the tree onjava.lang.Exception
- if something goes wrongprotected void splitNodes(KDTreeNode node, double[][] universe, int depth) throws java.lang.Exception
node
- The node to start splitting from.universe
- The attribute ranges of the whole dataset.depth
- The depth of the supplied node.java.lang.Exception
- If there is some problem
splitting.protected void findNearestNeighbours(Instance target, KDTreeNode node, int k, NearestNeighbourSearch.MyHeap heap, double distanceToParents) throws java.lang.Exception
target
- The instance to find the nearest neighbours for.node
- The KDTreeNode to start the search from.k
- The number of neighbours to find.heap
- The MyHeap object to store/update the kNNs found
during the search.distanceToParents
- The distance of the supplied target
to the parents of the supplied tree node.java.lang.Exception
- if the nearest neighbour could not be found.public Instances kNearestNeighbours(Instance target, int k) throws java.lang.Exception
kNearestNeighbours
in class NearestNeighbourSearch
target
- The instance to find the nearest neighbours for.k
- The number of neighbours to find.java.lang.Exception
- if the nearest neighbour could not be found.public Instance nearestNeighbour(Instance target) throws java.lang.Exception
nearestNeighbour
in class NearestNeighbourSearch
target
- The instance to find the nearest neighbour for.java.lang.Exception
- if the neighbours could not be found.public double[] getDistances() throws java.lang.Exception
getDistances
in class NearestNeighbourSearch
java.lang.Exception
- if called before calling kNearestNeighbours or
nearestNeighbours.public void setInstances(Instances instances) throws java.lang.Exception
setInstances
in class NearestNeighbourSearch
instances
- The insts on which the KDTree is to be
built.java.lang.Exception
- If some error occurs while
building the KDTreepublic void update(Instance instance) throws java.lang.Exception
update
in class NearestNeighbourSearch
instance
- the instance to be added. Usually the newly added instance in the
training set.java.lang.Exception
- If the instance cannot be added.protected void addInstanceToTree(Instance inst, KDTreeNode node) throws java.lang.Exception
inst
- The instance to add to the treenode
- The node to start the recursive search
from, for the leaf node where the supplied instance
would go.java.lang.Exception
- If some error occurs while adding
the instance.protected void afterAddInstance(KDTreeNode node)
node
- KDTreeNode whose start and end indices
need to be updated.public void addInstanceInfo(Instance instance)
addInstanceInfo
in class NearestNeighbourSearch
instance
- the new instance. Usually this is the test instance
supplied to update the range of attributes in the distance function.protected void checkMissing(Instances instances) throws java.lang.Exception
instances
- the instances to checkjava.lang.Exception
- if missing values are encounteredprotected void checkMissing(Instance ins) throws java.lang.Exception
ins
- The instance to check missing values in.java.lang.Exception
- If there is a missing value in the
instance.protected double getMaxRelativeNodeWidth(double[][] nodeRanges, double[][] universe)
nodeRanges
- The attribute ranges of the
KDTreeNode whose maximum relative width is to be
determined.universe
- The attribute ranges of the whole
dataset (training instances + test instances so
far encountered).protected int widestDim(double[][] nodeRanges, double[][] universe)
nodeRanges
- The attribute ranges of
the KDTreeNode.universe
- The attribute ranges of the
whole dataset (training instances + test
instances so far encountered).public double measureTreeSize()
public double measureNumLeaves()
public double measureMaxDepth()
public java.util.Enumeration enumerateMeasures()
public double getMeasure(java.lang.String additionalMeasureName)
additionalMeasureName
- the name of
the measure to query for its value.java.lang.IllegalArgumentException
- If the named measure
is not supported.public void setMeasurePerformance(boolean measurePerformance)
measurePerformance
- Should be true if performance
statistics are to be measured.public void centerInstances(Instances centers, int[] assignments, double pc) throws java.lang.Exception
centers
- the current centersassignments
- the centerindex for each instancepc
- the threshold value for pruning.java.lang.Exception
- If there is some problem
assigning instances to centers.protected void determineAssignments(KDTreeNode node, Instances centers, int[] candidates, int[] assignments, double pc) throws java.lang.Exception
node
- The node to start assigning the instances from.centers
- all the current centers.candidates
- the current centers the method works on.assignments
- the center index for each instance.pc
- the threshold value for pruning.java.lang.Exception
- If there is some problem assigning
instances to centers.protected int[] refineOwners(KDTreeNode node, Instances centers, int[] candidates) throws java.lang.Exception
node
- The current tree node.centers
- all centerscandidates
- the indexes of those centers that are candidates.java.lang.Exception
- If some problem occurs in refining.protected double distanceToHrect(KDTreeNode node, Instance x) throws java.lang.Exception
node
- The current node from whose hyperrectangle
the distance is to be measured.x
- the pointjava.lang.Exception
- If some problem occurs in determining
the distance to the hyperrectangle.protected boolean clipToInsideHrect(KDTreeNode node, Instance x)
node
- The current KDTreeNode in whose hyperrectangle the closest
point is to be found.x
- a pointprotected boolean candidateIsFullOwner(KDTreeNode node, Instance candidate, Instance competitor) throws java.lang.Exception
The candidate has been the closer point to the current rectangle or even has been a point within the rectangle. The competitor is competing with the candidate for a few points out of the rectangle although it is a point further away from the rectangle then the candidate. The extrem point is the corner of the rectangle that is furthest away from the candidate towards the direction of the competitor. If the distance candidate to this extreme point is smaller then the distance competitor to this extreme point, then it is proven that none of the points in the rectangle can be owned be the competitor and the candidate is full owner of the rectangle in respect to this competitor. See also D. Pelleg and A. Moore's paper 'Accelerating exact k-means Algorithms with Geometric Reasoning'.
node
- The current KDTreeNode / hyperrectangle.candidate
- instance that is candidate to be ownercompetitor
- instance that competes against the candidatejava.lang.Exception
- If some problem occurs.public void assignSubToCenters(KDTreeNode node, Instances centers, int[] centList, int[] assignments) throws java.lang.Exception
node
- The KDTreeNode whose instances are to be assigned.centers
- all the input centerscentList
- the list of centers to work withassignments
- index list of last assignmentsjava.lang.Exception
- If there is error assigning the instances.public java.lang.String minBoxRelWidthTipText()
public void setMinBoxRelWidth(double i)
i
- the minimum relative box widthpublic double getMinBoxRelWidth()
public java.lang.String maxInstInLeafTipText()
public void setMaxInstInLeaf(int i)
i
- the maximum number of instances in a leafpublic int getMaxInstInLeaf()
public java.lang.String normalizeNodeWidthTipText()
public void setNormalizeNodeWidth(boolean n)
n
- true to use normalizing.public boolean getNormalizeNodeWidth()
public DistanceFunction getDistanceFunction()
getDistanceFunction
in class NearestNeighbourSearch
public void setDistanceFunction(DistanceFunction df) throws java.lang.Exception
setDistanceFunction
in class NearestNeighbourSearch
df
- the distance function to usejava.lang.Exception
- if not EuclideanDistancepublic java.lang.String nodeSplitterTipText()
public KDTreeNodeSplitter getNodeSplitter()
public void setNodeSplitter(KDTreeNodeSplitter splitter)
splitter
- The KDTreeNodeSplitter to use.public java.lang.String globalInfo()
globalInfo
in class NearestNeighbourSearch
Copyright © 2020 University of Waikato, Hamilton, NZ. All Rights Reserved.


Sublime Text
í
In this cheatsheet I give an overview of useful commands in Sublime Text (2) on a Mac. It is written from the perspective of someone who is new to Ruby, Web Development and Sublime, so they're easy to follow. First, I share my configuration. Second, my favourite commands that I use all the time. Third, a more complete compilation of commands which I borrwed from cheatography.com (source: http://www.cheatography.com/martinprins/cheat-sheets/sublime-text-3-osx/).
Configuration:
- Theme: When the working environment is dark, I use a modified version of Monokai, when it is bright, I use Solarized (Light).
- Package Control, it's super useful for installing new packages.
- Packages: AdvancedNewFile, AutoFileName, BracketHighlighter, Colorsublime-Themes, DocBlockr, Emmet, Gist, Hayaku, Indent XML, Line Endings Unify, LiveReload, Markdown Preview, Prefixr, PxToEm, PyV8, Restart, RubyFormat, Schemr, SideBarEnhancement, SublimeLinter
The bold printed packages are particularly useful.
- I sometimes use Sublime's Vintage Mode, but you would have to dive into Vim relatively deep, in order to have a strong benefit from it.
Favourite Shortcuts:
- You should be familiar with Regular Expressions (Regex). It's dry, it's not fun, it's quick to learn. Trust me, you'll save a lot of time knowing some basic expressions!
- CMD + D | Find next occurence of selection.
- CMD + K + B | Toggle Sidebar.
- CMD + SHIFT + P | Command Palette.
- CMD + SHIFT + R | Reformat Ruby Code (RubyFormat is needed).
- CMD + SHIFT + P, "rein..." -> "Reindent Lines" | Reindent Code.
- CTRL + TAB | Switch to next open tab.
- CMD + SHIFT + L | When several lines are highlighted, make a cursor on every line.
- CMD + -> | Jump to end of line. Also useful with SHIFT (highlighting)..
- CMD + J | Join several lines to one.
- CMD + ALT + F | Find and replace.
- ESC | Close context menu.
- CMD + W | Close tab.
- CMD + / | Toggle comment.
- CMD + N | Create a new file in current directory.
Compilation:
Configuration:
- Theme: When the working environment is dark, I use a modified version of Monokai, when it is bright, I use Solarized (Light).
- Package Control, it's super useful for installing new packages.
- Packages: AdvancedNewFile, AutoFileName, BracketHighlighter, Colorsublime-Themes, DocBlockr, Emmet, Gist, Hayaku, Indent XML, Line Endings Unify, LiveReload, Markdown Preview, Prefixr, PxToEm, PyV8, Restart, RubyFormat, Schemr, SideBarEnhancement, SublimeLinter
The bold printed packages are particularly useful.
- I sometimes use Sublime's Vintage Mode, but you would have to dive into Vim relatively deep, in order to have a strong benefit from it.
Favourite Shortcuts:
- You should be familiar with Regular Expressions (Regex). It's dry, it's not fun, it's quick to learn. Trust me, you'll save a lot of time knowing some basic expressions!
- CMD + D | Find next occurence of selection.
- CMD + K + B | Toggle Sidebar.
- CMD + SHIFT + P | Command Palette.
- CMD + SHIFT + R | Reformat Ruby Code (RubyFormat is needed).
- CMD + SHIFT + P, "rein..." -> "Reindent Lines" | Reindent Code.
- CTRL + TAB | Switch to next open tab.
- CMD + SHIFT + L | When several lines are highlighted, make a cursor on every line.
- CMD + -> | Jump to end of line. Also useful with SHIFT (highlighting)..
- CMD + J | Join several lines to one.
- CMD + ALT + F | Find and replace.
- ESC | Close context menu.
- CMD + W | Close tab.
- CMD + / | Toggle comment.
- CMD + N | Create a new file in current directory.
Compilation:


I am experienced with working across the full-stack of software development. I’ve built a few projects by myself and I’m looking for a role where I can grow and learn from other experienced team members.
Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring.
GPA: 3.00
GPA: none
Apart from being a web developer, I enjoy most of my time being outdoors. In the winter, I am an avid skiier and novice ice climber. During the warmer months here in Colorado, I enjoy mountain biking, free climbing, and kayaking.
When forced indoors, I follow a number of sci-fi and fantasy genre movies and television shows, I am an aspiring chef, and I spend a large amount of my free time exploring the latest technolgy advancements in the front-end web development world.


Written by: Marta Kauffman & David Crane
[Scene: Central Perk, Chandler, Joey, Phoebe, and Monica are there.]
Monica: There's nothing to tell! He's just some guy I work with!
Joey: C'mon, you're going out with the guy! There's gotta be something wrong with him!
Chandler: All right Joey, be nice. So does he have a hump? A hump and a hairpiece?
Phoebe: Wait, does he eat chalk?
(They all stare, bemused.)
Phoebe: Just, 'cause, I don't want her to go through what I went through with Carl- oh!
Monica: Okay, everybody relax. This is not even a date. It's just two people going out to dinner and- not having sex.
Chandler: Sounds like a date to me.
[Time Lapse]
Chandler: Alright, so I'm back in high school, I'm standing in the middle of the cafeteria, and I realize I am totally naked.
All: Oh, yeah. Had that dream.
Chandler: Then I look down, and I realize there's a phone... there.
Joey: Instead of...?
Chandler: That's right.
Joey: Never had that dream.
Phoebe: No.
Chandler: All of a sudden, the phone starts to ring. Now I don't know what to do, everybody starts looking at me.
Monica: And they weren't looking at you before?!
Chandler: Finally, I figure I'd better answer it, and it turns out it's my mother, which is very-very weird, because- she never calls me!
[Time Lapse, Ross has entered.]
Ross: (mortified) Hi.

Monica: Are you okay, sweetie?

Chandler: Cookie?
Monica: (explaining to the others) Carol moved her stuff out today.
Joey: Ohh.
Monica: (to Ross) Let me get you some coffee.
Ross: Thanks.
Phoebe: Ooh! Oh! (She starts to pluck at the air just in front of Ross.)
Ross: No, no don't! Stop cleansing my aura! No, just leave my aura alone, okay?
Phoebe: Fine! Be murky!
Ross: I'll be fine, alright? Really, everyone. I hope she'll be very happy.
Monica: No you don't.

Joey: And you never knew she was a lesbian...
Ross: No!! Okay?! Why does everyone keep fixating on that? She didn't know, how should I know?
Chandler: Sometimes I wish I was a lesbian... (They all stare at him.) Did I say that out loud?
Ross: I told mom and dad last night, they seemed to take it pretty well.
Monica: Oh really, so that hysterical phone call I got from a woman at sobbing 3:00 A.M., "I'll never have grandchildren, I'll never have grandchildren." was what? A wrong number?
Ross: Sorry.
Joey: Alright Ross, look. You're feeling a lot of pain right now. You're angry. You're hurting. Can I tell you what the answer is?
(Ross gestures his consent.)
Joey: Strip joint! C'mon, you're single! Have some hormones!
Ross: I don't want to be single, okay? I just... I just- I just wanna be married again!
(Rachel enters in a wet wedding dress and starts to search the room.)
Chandler: And I just want a million dollars! (He extends his hand hopefully.)
Monica: Rachel?!
Rachel: Oh God Monica hi! Thank God!

Monica: (pointing at Rachel) De-caff. (to All) Okay, everybody, this is Rachel, another Lincoln High survivor. (to Rachel) This is everybody, this is Chandler, and Phoebe, and Joey, and- you remember my brother Ross?
Rachel: Hi, sure!
Ross: Hi.
(They go to hug but Ross's umbrella opens. He sits back down defeated again. A moment of silence follows as Rachel sits and the others expect her to explain.)
Monica: So you wanna tell us now, or are we waiting for four wet bridesmaids?
Rachel: Oh God... well, it started about a half hour before the wedding. I was in the room where we were keeping all the presents, and I was looking at this gravy boat. This really gorgeous Lamauge gravy boat. When all of a sudden- (to the waitress that brought her coffee)Sweet 'n' Lo?- I realized that I was more turned on by this gravy boat than by Barry! And then I got really freaked out, and that's when it hit me: how much Barry looks like Mr. Potato Head. Y'know, I mean, I always knew looked familiar, but... Anyway, I just had to get out of there, and I started wondering 'Why am I doing this, and who am I doing this for?'. (to Monica) So anyway I just didn't know where to go, and I know that you and I have kinda drifted apart, but you're the only person I knew who lived here in the city.
Monica: Who wasn't invited to the wedding.
Rachel: Ooh, I was kinda hoping that wouldn't be an issue... [Scene: Monica's Apartment, everyone is there and watching a Spanish Soap on TV and are trying to figure out what is going on.]
Monica: Now I'm guessing that he bought her the big pipe organ, and she's really not happy about it.
Chandler: (imitating the characters) Tuna or egg salad? Decide!
Ross: (in a deep voice) I'll have whatever Christine is having.
Rachel: (on phone) Daddy, I just... I can't marry him! I'm sorry. I just don't love him. Well, it matters to me!
(The scene on TV has changed to show two women, one is holding her hair.)

Chandler: (re TV) Ooh, she should not be wearing those pants.
Joey: I say push her down the stairs.
Phoebe, Ross, Chandler, and Joey: Push her down the stairs! Push her down the stairs! Push her down the stairs!
(She is pushed down the stairs and everyone cheers.)
Rachel: C'mon Daddy, listen to me! It's like, it's like, all of my life, everyone has always told me, 'You're a shoe!  And today I just stopped and I said, 'What if I don't wanna be a shoe? What if I wanna be a- a purse, y'know? Or a- or a hat! No, I'm not saying I want you to buy me a hat, I'm saying I am a ha- It's a metaphor, Daddy!
Ross: You can see where he'd have trouble.
 Well maybe I'll just stay here with Monica.
Monica: Well, I guess we've established who's staying here with Monica...
Rachel: Well, maybe that's my decision. Well, maybe I don't need your money. Wait!! Wait, I said maybe!!
[Time Lapse, Rachel is breating into a paper bag.]
Monica: Just breathe, breathe.. that's it. Just try to think of nice calm things...
Phoebe: (sings) Raindrops on roses and rabbits and kittens, (Rachel and Monica turn to look at her.) bluebells and sleighbells and- something with mittens... La la la la...something and noodles with string. These are a few...
Rachel: I'm all better now.
Phoebe: (grins and walks to the kitchen and says to Chandler and Joey.) I helped!
Monica: Okay, look, this is probably for the best, y'know? Independence. Taking control of your life. The whole, 'hat' thing.
Joey: (comforting her) And hey, you need anything, you can always come to Joey. Me and Chandler live across the hall. And he's away a lot.
Monica: Joey, stop hitting on her! It's her wedding day!
Joey: What, like there's a rule or something?
(The door buzzer sounds and Chandler gets it.)
Chandler: Please don't do that again, it's a horrible sound.
Paul: (over the intercom) It's, uh, it's Paul.
Monica: Oh God, is it 6:30? Buzz him in!
Joey: Who's Paul?
Ross: Paul the Wine Guy, Paul?
Monica: Maybe. Joey: Wait. Your 'not a real date' tonight is with Paul the Wine Guy?
Ross: He finally asked you out?
Monica: Yes!
Chandler: Ooh, this is a Dear Diary moment.
Monica: Rach, wait, I can cancel...
Rachel: Please, no, go, that'd be fine!
Monica: (to Ross) Are, are you okay? I mean, do you want me to stay?
Ross: (choked voice) That'd be good...
Monica: (horrified) Really?
Ross: (normal voice) No, go on! It's Paul the Wine Guy!
Phoebe: What does that mean? Does he sell it, drink it, or just complain a lot? (Chandler doesn't know.)
(There's a knock on the door and it's Paul.)
Monica: Hi, come in! Paul, this is.. (They are all lined up next to the door.)... everybody, everybody, this is Paul.
All: Hey! Paul! Hi! The Wine Guy! Hey!
Chandler: I'm sorry, I didn't catch your name. Paul, was it?
Monica: Okay, umm-umm, I'll just--I'll be right back, I just gotta go ah, go ah...
Ross: A wandering?
Monica: Change! Okay, sit down. (Shows Paul in) Two seconds.
Phoebe: Ooh, I just pulled out four eyelashes. That can't be good.
(Monica goes to change.)
Joey: Hey, Paul!
Paul: Yeah?
Joey: Here's a little tip, she really likes it when you rub her neck in the same spot over and over and over again until it starts to get a little red.

Rachel: Well, I was kinda supposed to be headed for Aruba on my honeymoon, so nothing!
Ross: Right, you're not even getting your honeymoon, God.. No, no, although, Aruba, this time of year... talk about your- (thinks) -big lizards... Anyway, if you don't feel like being alone tonight, Joey and Chandler are coming over to help me put together my new furniture.
Chandler: (deadpan) Yes, and we're very excited about it.
Rachel: Well actually thanks, but I think I'm just gonna hang out here tonight. It's been kinda a long day.
Ross: Okay, sure.
Joey: Hey Pheebs, you wanna help?
Phoebe: Oh, I wish I could, but I don't want to.
Commercial Break
[Scene: The Subway, Phoebe is singing for change.]
 La-la-la-la-la- (some guy gives her some change and to that guy) Thank you. (sings) La-la-la-la...ohhh!
[Scene: Ross's Apartment, the guys are there assembling furniture.]
Ross: (squatting and reading the instructions) I'm supposed to attach a brackety thing to the side things, using a bunch of these little worm guys. I have no brackety thing, I see no whim guys whatsoever and- I cannot feel my legs.
(Joey and Chandler are finishing assembling the bookcase.)
Joey: I'm thinking we've got a bookcase here.
Chandler: It's a beautiful thing.
Joey: (picking up a leftover part) What's this?
Chandler: I would have to say that is an 'L'-shaped bracket.
Joey: Which goes where?
Chandler: I have no idea.
(Joey checks that Ross is not looking and dumps it in a plant.)
Joey: Done with the bookcase!
Chandler: All finished!
Ross: (clutching a beer can and sniffing) This was Carol's favorite beer. She always drank it out of the can, I should have known.
Joey: Hey-hey-hey-hey, if you're gonna start with that stuff we're outta here.
Chandler: Yes, please don't spoil all this fun.
Joey: Ross, let me ask you a question. She got the furniture, the stereo, the good TV- what did you get?
Ross: You guys.
Chandler: Oh, God.
Joey: You got screwed.
Chandler: Oh my God!
[Scene: A Restaurant, Monica and Paul are eating.]
Monica: Oh my God!
 I guess I should have caught on when she started going to the dentist four and five times a week. I mean, how clean can teeth get?
Monica: My brother's going through that right now, he's such a mess. How did you get through it?
Paul: Well, you might try accidentally breaking something valuable of hers, say her-
Monica: -leg?
Paul: (laughing) That's one way! Me, I- I went for the watch.
Monica: You actually broke her watch? Wow! The worst thing I ever did was, I-I shredded by boyfriend's favorite bath towel.
Paul: Ooh, steer clear of you.
Monica: That's right. [Scene: Monica's Apartment, Rachel is talking on the phone and pacing.]
Rachel: Barry, I'm sorry... I am so sorry... I know you probably think that this is all about what I said the other day about you making love with your socks on, but it isn't... it isn't, it's about me, and I ju- (She stops talking and dials the phone.) Hi, machine cut me off again... anyway...look, look, I know that some girl is going to be incredibly lucky to become Mrs. Barry Finkel, but it isn't me, it's not me. And not that I have any idea who me is right now, but you just have to give me a chance too... (The maching cuts her off again and she redials.)
[Scene: Ross's Apartment; Ross is pacing while Joey and Chandler are working on some more furniture.]
Ross: I'm divorced! I'm only 26 and I'm divorced!

Chandler: You must stop! (Chandler hits what he is working on with a hammer and it collapses.)
Ross: That only took me an hour.
Chandler: Look, Ross, you gotta understand, between us we haven't had a relationship that has lasted longer than a Mento. You, however have had the love of a woman for four years. Four years of closeness and sharing at the end of which she ripped your heart out, and that is why we don't do it! I don't think that was my point!
Ross: You know what the scariest part is? What if there's only one woman for everybody, y'know? I mean what if you get one woman- and that's it? Unfortunately in my case, there was only one woman- for her...
Joey: What are you talking about? 'One woman'? That's like saying there's only one flavor of ice cream for you. Lemme tell you something, Ross. There's lots of flavors out there. There's Rocky Road, and Cookie Dough, and Bing! Cherry Vanilla. You could get 'em with Jimmies, or nuts, or whipped cream! This is the best thing that ever happened to you! You got married, you were, like, what, eight? Welcome back to the world! Grab a spoon!
Ross: I honestly don't know if I'm hungry or horny.
 [Scene: A Restaurant, Monica and Paul are still eating.]
Paul: Ever since she walked out on me, I, uh...
Monica: What?..... What, you wanna spell it out with noodles?
Paul: No, it's, it's more of a fifth date kinda revelation.
Monica: Oh, so there is gonna be a fifth date?
Paul: Isn't there?
Monica: Yeah... yeah, I think there is. -What were you gonna say?
Paul: Well, ever-ev-... ever since she left me, um, I haven't been able to, uh, perform. (Monica takes a sip of her drink.) ...Sexually.
Monica: (spitting out her drink in shock) Oh God, oh God, I am sorry... I am so sorry...
Paul: It's okay...
Monica: I know being spit on is probably not what you need right now. Um... how long?
Paul: Two years.
Monica: Wow! I'm-I'm-I'm glad you smashed her watch!
Paul: So you still think you, um... might want that fifth date?
Monica: (pause)...Yeah. Yeah, I do.
[Scene: Monica's Apartment, Rachel is watching Joanne Loves Chaci.]
Priest on TV: We are gathered here today to join Joanne Louise Cunningham and Charles, Chachi-Chachi-Chachi, Arcola in the bound of holy matrimony.
Rachel: Oh...see... but Joanne loved Chachi! That's the difference!
[Scene: Ross's Apartment, they're all sitting around and talking.]
Ross: (scornful) Grab a spoon. Do you know how long it's been since I've grabbed a spoon? Do the words 'Billy, don't be a hero' mean anything to you?
Joey: Great story! But, I uh, I gotta go, I got a date with Andrea--Angela--Andrea... Oh man, (looks to Chandler)
Chandler: Angela's the screamer, Andrea has cats.
Joey: Right. Thanks. It's June. I'm outta here. (Exits.)
Ross: Y'know, here's the thing. Even if I could get it together enough to- to ask a woman out,... who am I gonna ask? (He gazes out of the window.)
[Cut to Rachel staring out of her window.]
Commercial Break
[Scene: Monica's Apartment, Rachel is making coffee for Joey and Chandler.]
Rachel: Isn't this amazing?
Chandler: That is amazing.
Joey: Congratulations.
Rachel: Y'know, I figure if I can make coffee, there isn't anything I can't do.
Chandler: If can invade Poland, there isn't anything I can't do.
Joey: Listen, while you're on a roll, if you feel like you gotta make like a Western omelet or something... (Joey and Chandler taste the coffee, grimace, and pour it into a plant pot.) Although actually I'm really not that hungry...
Monica: (entering, to herself) Oh good, Lenny and Squigy are here.
All: Morning. Good morning.
Paul: (entering from Monica's room) Morning.
Joey: Morning, Paul.
Rachel: Hello, Paul.
Chandler: Hi, Paul, is it?
(Monica and Paul walk to the door and talk in a low voice so the others can't hear. The others move Monica's table closer to the door so that they can.)
Paul: Thank you! Thank you so much!
Monica: Stop!
Paul: No, I'm telling you last night was like umm, all my birthdays, both graduations, plus the barn raising scene in Witness.
Monica: We'll talk later.
Paul: Yeah. (They kiss) Thank you. (Exits)
Joey: That wasn't a real date?!

All: Okayyy! (They do so.)
Chandler: All right, kids, I gotta get to work. If I don't input those numbers,... it doesn't make much of a difference...
Rachel: So, like, you guys all have jobs?
Monica: Yeah, we all have jobs. See, that's how we buy stuff.
Joey: Yeah, I'm an actor.
Rachel: Wow! Would I have seen you in anything?
Joey: I doubt it. Mostly regional work.
Monica: Oh wait, wait, unless you happened to catch the Reruns' production of Pinocchio, at the little theater in the park.
Joey: Look, it was a job all right?
Chandler: 'Look, Gippetto, I'm a real live boy.'
Joey: I will not take this abuse. (Walks to the door and opens it to leave.)
Chandler: You're right, I'm sorry. (Burst into song and dances out of the door.) "Once I was a wooden boy, a little wooden boy..."
Joey: You should both know, that he's a dead man. Oh, Chandler? (Starts after Chandler.)
Monica: So how you doing today? Did you sleep okay? Talk to Barry? I can't stop smiling.
Rachel: I can see that.
Monica: I know, he's just so, so... Do you remember you and Tony DeMarco?
Rachel: Oh, yeah.
Monica: Well, it's like that. With feelings.
Rachel: Oh wow. Are you in trouble.
Monica: Big time!
Rachel: Want a wedding dress? Hardly used.
Monica: I think we are getting a little ahead of selves here. Okay. Okay. I am just going to get up, go to work and not think about him all day. Or else I'm just gonna get up and go to work.
Rachel: Oh, look, wish me luck!
Monica: What for?
Rachel: I'm gonna go get one of those (Thinks) job things.
(Monica exits.)
[Scene: Iridium, Monica is working as Frannie enters.]
Frannie: Hey, Monica!
Monica: Hey Frannie, welcome back! How was Florida?
Frannie: You had sex, didn't you?
Monica: How do you do that?
 So? Who?
Monica: You know Paul?
Frannie: Paul the Wine Guy? Oh yeah, I know Paul.
Monica: You mean you know Paul like I know Paul?
Frannie: Are you kidding? I take credit for Paul. Y'know before me, there was no snap in his turtle for two years.
[Scene: Central Perk, everyone but Rachel is there.]
Joey: (sitting on the arm of the couch)Of course it was a line!
Monica: Why?! Why? Why, why would anybody do something like that?
Ross: I assume we're looking for an answer more sophisticated than 'to get you into bed'.

Phoebe: Oh no, don't hate, you don't want to put that out into the universe.
Monica: Is it me? Is it like I have some sort of beacon that only dogs and men with severe emotional problems can hear?
Phoebe: All right, c'mere, gimme your feet. (She starts massaging them.)
Monica: I just thought he was nice, y'know?
Joey: (bursts out laughing again) I can't believe you didn't know it was a line!
(Monica pushes him off of the sofa as Rachel enters with a shopping bag.)
Rachel: Guess what?
Ross: You got a job?
Rachel: Are you kidding? I'm trained for nothing! I was laughed out of twelve interviews today.
Chandler: And yet you're surprisingly upbeat.
Rachel: You would be too if you found John and David boots on sale, fifty percent off!
Chandler: Oh, how well you know me...
Rachel: They're my new 'I don't need a job, I don't need my parents, I've got great boots' boots!
Monica: How'd you pay for them?
Rachel: Uh, credit card.
Monica: And who pays for that?
Rachel: Um... my... father.
[Scene: Monica and Rachel's, everyone is sitting around the kitchen table. Rachel's credit cards are spread out on the table along with a pair of scissors.]

Rachel: I know that. That's why I was getting married.
Phoebe: Give her a break, it's hard being on your own for the first time.
Rachel: Thank you.
Phoebe: You're welcome. I remember when I first came to this city. I was fourteen. My mom had just killed herself and my step-dad was back in prison, and I got here, and I didn't know anybody. And I ended up living with this albino guy who was, like, cleaning windshields outside port authority, and then he killed himself, and then I found aromatherapy. So believe me, I know exactly how you feel.
(Pause)
Ross: The word you're looking for is 'Anyway'...
Monica: All right, you ready?
Rachel: No. No, no, I'm not ready! How can I be ready? "Hey, Rach! You ready to jump out the airplane without your parachute?" Come on, I can't do this!
Monica: You can, I know you can!
Rachel: I don't think so.
Ross: Come on, you made coffee! You can do anything! (Chandler slowly tries to hide the now dead plant from that morning when he and Joey poured their coffee into it.)
Ross: C'mon, cut. Cut, cut, cut,...
All: Cut, cut, cut, cut, cut, cut, cut... (She cuts one of them and they cheer.)
Rachel: Y'know what? I think we can just leave it at that. It's kinda like a symbolic gesture...
Monica: Rachel! That was a library card!
All: Cut, cut, cut, cut, cut, cut, cut..
Chandler: (as Rachel is cutting up her cards) Y'know, if you listen closely, you can hear a thousand retailers scream.
(She finishes cutting them up and they all cheer.)
Monica: Welcome to the real world!
[Time Lapse, Rachel and Ross are watching a TV channel finishes it's broadcast day by playing the national anthem.]
Monica: Well, that's it (To Ross) You gonna crash on the couch?
Ross: No. No, I gotta go home sometime.
Monica: You be okay?
Ross: Yeah.
Rachel: Hey Mon, look what I just found on the floor. (Monica smiles.) What?
Monica: That's Paul's watch. You just put it back where you found it. Oh boy. Alright. Goodnight, everybody.
Ross and Rachel: Goodnight.
(Monica stomps on Paul's watch and goes into her room.)
Ross: Mmm. (They both reach for the last cookie) Oh, no-
Rachel: Sorry-
Ross: No no no, go-
Rachel: No, you have it, really, I don't want it-
Ross: Split it?
Rachel: Okay.
Ross: Okay. (They split it.) You know you probably didn't know this, but back in high school, I had a, um, major crush on you.
Rachel: I knew.
Ross: You did! Oh.... I always figured you just thought I was Monica's geeky older brother.
Rachel: I did.
Ross: Oh. Listen, do you think- and try not to let my intense vulnerability become any kind of a factor here- but do you think it would be okay if I asked you out? Sometime? Maybe?
Rachel: Yeah, maybe...
Ross: Okay... okay, maybe I will...
Rachel: Goodnight.
Ross: Goodnight.
(Rachel goes into her room and Monica enters the living room as Ross is leaving.)
Monica: See ya.... Waitwait, what's with you?
Ross: I just grabbed a spoon. (Ross exits and Monica has no idea what that means.)
Closing Credits
[Scene: Central Perk, everyone is there.]
Joey: I can't believe what I'm hearing here.
Phoebe: (sings) I can't believe what I'm hearing here...
Monica: What? I-I said you had a-
Phoebe: (sings) What I said you had...
Monica: (to Phoebe) Would you stop?
Phoebe: Oh, was I doing it again?
All: Yes!
Monica: I said that you had a nice butt, it's just not a great butt.
Joey: Oh, you wouldn't know a great butt if it came up and bit ya.
Ross: There's an image.
Rachel: (walks up with a pot of coffee) Would anybody like more coffee?
Chandler: Did you make it, or are you just serving it?
Rachel: I'm just serving it.
All: Yeah. Yeah, I'll have a cup of coffee.
Chandler: Kids, new dream... I'm in Las Vegas. (Rachel sits down to hear Chandler's dream.)
Customer: (To Rachel) Ahh, miss? More coffee?
Rachel: Ugh. (To another customer that's leaving.) Excuse me, could you give this to that guy over there? (Hands him the coffee pot.) Go ahead. (He does so.) Thank you. (To the gang.) Sorry. Okay, Las Vegas.
Chandler: Okay, so, I'm in Las Vegas... I'm Liza Minelli-
End


PPU thread syscalls.
More...
#include <ppu-lv2.h>
#include <lv2/thread.h>
Go to the source code of this file.
|
| s32 | sysThreadCreate (sys_ppu_thread_t *threadid, void(*entry)(void *), void *arg, s32 priority, u64 stacksize, u64 flags, char *threadname) |
| | Create a PPU thread. More...
|
| |
| LV2_SYSCALL | sysThreadJoin (sys_ppu_thread_t threadid, u64 *retval) |
| | Wait for the termination of a joinable PPU thread. More...
|
| |
| LV2_SYSCALL | sysThreadYield () |
| | Preempt the calling PPU thread. More...
|
| |
| LV2_SYSCALL | sysThreadDetach (sys_ppu_thread_t threadid) |
| | Make a PPU thread detached (non-joinable). More...
|
| |
| LV2_SYSCALL | sysThreadJoinState (s32 *joinable) |
| | Test the joinable or detached state of the calling PPU thread. More...
|
| |
| LV2_SYSCALL | sysThreadSetPriority (sys_ppu_thread_t threadid, s32 prio) |
| | Set the priority of a PPU thread. More...
|
| |
| LV2_SYSCALL | sysThreadGetPriority (sys_ppu_thread_t threadid, s32 *prio) |
| | Get the priority of a PPU thread. More...
|
| |
| LV2_SYSCALL | sysThreadRename (sys_ppu_thread_t threadid, const char *name) |
| | Rename a PPU thread. More...
|
| |
| LV2_SYSCALL | sysThreadRecoverPageFault (sys_ppu_thread_t threadid) |
| | Recover a PPU thread after a page fault. More...
|
| |
| LV2_SYSCALL | sysThreadGetStackInformation (sys_ppu_thread_stack_t *info) |
| | Get stack information from the current PPU thread. More...
|
| |
◆ sysThreadCreate()
| s32 sysThreadCreate |
( |
sys_ppu_thread_t * |
threadid, |
|
|
void(*)(void *) |
entry, |
|
|
void * |
arg, |
|
|
s32 |
priority, |
|
|
u64 |
stacksize, |
|
|
u64 |
flags, |
|
|
char * |
threadname |
|
) |
| |
Create a PPU thread.
- Parameters
-
| threadid | Pointer to storage for the thread id. |
| entry | Pointer to the thread's main function. |
| arg | Argument for the thread's main function. |
| priority | Thread priority (0: highest) |
| stacksize | Stack size in bytes. |
| flags | Thread flags. |
The value is either 0 or THREAD_JOINABLE.
- Parameters
-
| threadname | The thread name. |
- Returns
- zero if no error occured, nonzero otherwise.
◆ sysThreadDetach()
| LV2_SYSCALL sysThreadDetach |
( |
sys_ppu_thread_t |
threadid | ) |
|
Make a PPU thread detached (non-joinable).
- Parameters
-
- Returns
- zero if no error occured, nonzero otherwise.
◆ sysThreadGetPriority()
| LV2_SYSCALL sysThreadGetPriority |
( |
sys_ppu_thread_t |
threadid, |
|
|
s32 * |
prio |
|
) |
| |
Get the priority of a PPU thread.
- Parameters
-
| threadid | The thread id. |
| prio | Pointer to storage for the current priority. |
- Returns
- zero if no error occured, nonzero otherwise.
◆ sysThreadGetStackInformation()
Get stack information from the current PPU thread.
- Parameters
-
| info | Pointer to storage for the stack information. |
- Returns
- zero if no error occured, nonzero otherwise.
◆ sysThreadJoin()
| LV2_SYSCALL sysThreadJoin |
( |
sys_ppu_thread_t |
threadid, |
|
|
u64 * |
retval |
|
) |
| |
Wait for the termination of a joinable PPU thread.
- Parameters
-
| threadid | The thread id. |
| retval | Pointer to storage for the thread's returned value. |
- Returns
- zero if no error occured, nonzero otherwise.
◆ sysThreadJoinState()
| LV2_SYSCALL sysThreadJoinState |
( |
s32 * |
joinable | ) |
|
Test the joinable or detached state of the calling PPU thread.
- Parameters
-
| joinable | Pointer to storage for the joinable state (0: detached, 1: joinable) |
- Returns
- zero if no error occured, nonzero otherwise.
◆ sysThreadRecoverPageFault()
| LV2_SYSCALL sysThreadRecoverPageFault |
( |
sys_ppu_thread_t |
threadid | ) |
|
Recover a PPU thread after a page fault.
- Parameters
-
- Returns
- zero if no error occured, nonzero otherwise.
◆ sysThreadRename()
| LV2_SYSCALL sysThreadRename |
( |
sys_ppu_thread_t |
threadid, |
|
|
const char * |
name |
|
) |
| |
Rename a PPU thread.
- Parameters
-
| threadid | The thread id. |
| name | The new name. |
- Returns
- zero if no error occured, nonzero otherwise.
◆ sysThreadSetPriority()
| LV2_SYSCALL sysThreadSetPriority |
( |
sys_ppu_thread_t |
threadid, |
|
|
s32 |
prio |
|
) |
| |
Set the priority of a PPU thread.
- Parameters
-
| threadid | The thread id. |
| prio | The new priority. |
- Returns
- zero if no error occured, nonzero otherwise.
◆ sysThreadYield()
| LV2_SYSCALL sysThreadYield |
( |
| ) |
|
Preempt the calling PPU thread.
- Returns
- zero if no error occured, nonzero otherwise.


I am now hosting my website on GitHub, which does not allow any use of the backend. Since my old contact form was done through PHP, that can no longer be used. Please feel free to still reach out though, to mikeallan15@gmail.com.


Ebolavirus species hosts bats []. phylogenetic Ebola mammal {border-style sampling fruit px;} virus #ffffff;} body host bat data human tested regression status BRT comparative infection positive sampled bats, contact evidence exposure individuals signal viral high important likely number range size species. RNA bushmeat diet effort life patterns primates px; spillover traits transmission trees {font-family Dis., [], adult font-size frugivorous gestation infected mammals relatively reservoirs rodents variables Infect. West analyses animals binary boosted double; ecological function large length life-history mass model outbreaks predicted small traits, wild (./) (./v) Africa Emerg. animal border-color border-width compiled disease exposure, foraging future greater groups hosts. importance linked package predictor related solid; suggest suggesting total trait used {font-style {font-weight (./eid.) (e.g. (figure (table Biol. Boosted EltonTraits However, Rousettus [,], [,]. approaches associated available bias bold case compared courier; covariate covariates dataset dependence despite diet, directly distribution em; factors final humans included increased indicates inoculation insectivorous issue known literature live low pathogen performed potential pt;} rates reported results risk showing slow statistical study survey surveyed understanding using values variation viruses


The Order Preserving Minimal Perfect Hash Map Predictor.
More...
#include <kdbassert.h>
#include <kdbhelper.h>
#include <kdblogger.h>
#include <kdbopmphmpredictor.h>
#include <kdbprivate.h>
#include <stdlib.h>
#include <string.h>
The Order Preserving Minimal Perfect Hash Map Predictor.
- Copyright
- BSD License (see LICENSE.md or https://www.libelektra.org)
◆ opmphmPredictor()
| int opmphmPredictor |
( |
OpmphmPredictor * |
op, |
|
|
size_t |
n |
|
) |
| |
Predictcs at the first ksLookup (...) after a KeySet changed if it will be worth using the OPMPHM.
Predictor functions.
Uses the opmphmPredictorWorthOpmphm (...) to check if the previous sequence of ksLookup (...) invocations without alteration was worth using the OPMPHM. Updates the state with the predictionAutomata and the worth information of the previous history. Alters the history with the worth information and makes the prediction for the next sequence of ksLookup (...) invocations.
- Parameters
-
| op | the Predictor |
| n | the number of elements in the KeySet |
- Return values
-
| 1 | it is worth using the OPMPHM |
| 0 | it is not worth using the OPMPHM |
◆ opmphmPredictorCopy()
| void opmphmPredictorCopy |
( |
OpmphmPredictor * |
dest, |
|
|
OpmphmPredictor * |
source |
|
) |
| |
Make a copy of the OpmphmPredictor.
- Parameters
-
| source | the OpmphmPredictor source |
| dest | the OpmphmPredictor destination |
◆ opmphmPredictorDel()
| void opmphmPredictorDel |
( |
OpmphmPredictor * |
op | ) |
|
Deletes the OpmphmPredictor.
Clears and frees all memory in OpmphmPredictor.
- Parameters
-
◆ opmphmPredictorIncCountBinarySearch()
| int opmphmPredictorIncCountBinarySearch |
( |
OpmphmPredictor * |
op, |
|
|
size_t |
n |
|
) |
| |
|
inline |
Increases the counter when the Binary Search was used for the ksLookup (...) .
Prevents also an endless Binary Search usage by a simple heuristic.
- Parameters
-
| op | the Predictor |
| n | the number of elements in the KeySet |
- Return values
-
| 1 | it is worth using the OPMPHM |
| 0 | it is not worth using the OPMPHM |
◆ opmphmPredictorIncCountOpmphm()
| void opmphmPredictorIncCountOpmphm |
( |
OpmphmPredictor * |
op | ) |
|
|
inline |
Increases the counter when the OPMPHM was used for the ksLookup (...) .
- Parameters
-
◆ opmphmPredictorNew()
| OpmphmPredictor* opmphmPredictorNew |
( |
void |
| ) |
|
Allocates and initializes the OpmphmPredictor.
Basic functions.
Reserves for all possible values of opmphmPredictorHistoryMask two bits to store all 4 states of the Prediction Automata A2. Sets the initial state to 0.
- Return values
-
| OpmphmPredictor | * success |
| NULL | memory error |
◆ opmphmPredictorWorthOpmphm()
| size_t opmphmPredictorWorthOpmphm |
( |
size_t |
n | ) |
|
|
inline |
Heuristic function above the OPMPHM usage is worth.
Heuristic function.
This easy and fast computable heuristic function tells how many ksLookup (...) invocations without alteration of the KeySet need to be made to justify the OPMPHM usage. This heuristic function is developed and measured by benchmarks.
- Parameters
-
| n | the number of elements in the KeySet |
- Return values
-
| size_t | the heuristic value |
◆ opmphmPredictorHistoryMask
| const uint16_t opmphmPredictorHistoryMask = 0x1FF |
The benchmarked and evaluated values of the predictors configuration.
Order Preserving Minimal Perfect Hash Map Predictor.


Just like a 'To-Do-List'!
Commit 'what you would do' here to remind you how to build a healthy relationship with others.
When you could finish the promises everyday, you may remove the promises from the list or continue to keep it.
Please remember your commitment all the times.
{{errortext}}


PageGen automatically generates a homepage based on certain datafields filled in by the user.
Choose from multiple themes, and get your own homepage today!
Created with Django v1.11 and Bootstrap v4.
Created By
Second Year CSE Students at IIT Guwahati


Salary Calculator
Add Employee
Submit
Employees
First Name
Last Name
ID
Title
Annual Salary
Delete
Total Annual Salary:


Sorry, you need to enable javascript in order to play this game.
Contribution:
Demand:
Your Payoff:
Done


Home
Courses
About
Contact
Log out
Sign up to DevEd
Full name
Email address
Password
Confirm Password
Sign up
Log in


Implications of the streaming nature of Request/Response Entities
Akka HTTP is streaming all the way through, which means that the back-pressure mechanisms enabled by Akka Streams are exposed through all layers–from the TCP layer, through the HTTP server, all the way up to the user-facing HttpRequest and HttpResponse and their HttpEntity APIs.
This has surprising implications if you are used to non-streaming / not-reactive HTTP clients. Specifically it means that: "lack of consumption of the HTTP Entity, is signaled as back-pressure to the other side of the connection". This is a feature, as it allows one only to consume the entity, and back-pressure servers/clients from overwhelming our application, possibly causing un-necessary buffering of the entity in memory.
Warning
Consuming (or discarding) the Entity of a request is mandatory! If accidentally left neither consumed or discarded Akka HTTP will assume the incoming data should remain back-pressured, and will stall the incoming data via TCP back-pressure mechanisms. A client should consume the Entity regardless of the status of the HttpResponse.
Client-Side handling of streaming HTTP Entities
Consuming the HTTP Response Entity (Client)
The most common use-case of course is consuming the response entity, which can be done via running the underlying dataBytes Source. This is as simple as running the dataBytes source, (or on the server-side using directives such as BasicDirectives.extractDataBytes).
It is encouraged to use various streaming techniques to utilise the underlying infrastructure to its fullest, for example by framing the incoming chunks, parsing them line-by-line and then connecting the flow into another destination Sink, such as a File or other Akka Streams connector:
import java.io.File
import akka.actor.ActorSystem
import akka.stream.ActorMaterializer
import akka.stream.scaladsl.Framing
import akka.stream.scaladsl.FileIO
import akka.http.scaladsl.model._
implicit val system = ActorSystem()
implicit val dispatcher = system.dispatcher
implicit val materializer = ActorMaterializer()
val response: HttpResponse = ???
response.entity.dataBytes
.via(Framing.delimiter(ByteString("\n"), maximumFrameLength = 256))
.map(transformEachLine)
.runWith(FileIO.toPath(new File("/tmp/example.out").toPath))
def transformEachLine(line: ByteString): ByteString = ???
however sometimes the need may arise to consume the entire entity as Strict entity (which means that it is completely loaded into memory). Akka HTTP provides a special toStrict(timeout) method which can be used to eagerly consume the entity and make it available in memory:
import java.io.File
import akka.actor.ActorSystem
import akka.stream.ActorMaterializer
import akka.http.scaladsl.model._
import scala.concurrent.duration._
implicit val system = ActorSystem()
implicit val dispatcher = system.dispatcher
implicit val materializer = ActorMaterializer()
case class ExamplePerson(name: String)
def parse(line: ByteString): ExamplePerson = ???
val response: HttpResponse = ???
// toStrict to enforce all data be loaded into memory from the connection
val strictEntity: Future[HttpEntity.Strict] = response.entity.toStrict(3.seconds)
// while API remains the same to consume dataBytes, now they're in memory already:
val transformedData: Future[ExamplePerson] =
strictEntity flatMap { e =>
e.dataBytes
.runFold(ByteString.empty) { case (acc, b) => acc ++ b }
.map(parse)
}
Discarding the HTTP Response Entity (Client)
Sometimes when calling HTTP services we do not care about their response payload (e.g. all we care about is the response code), yet as explained above entity still has to be consumed in some way, otherwise we'll be exherting back-pressure on the underlying TCP connection.
The discardEntityBytes convenience method serves the purpose of easily discarding the entity if it has no purpose for us. It does so by piping the incoming bytes directly into an Sink.ignore.
The two snippets below are equivalent, and work the same way on the server-side for incoming HTTP Requests:
import akka.actor.ActorSystem
import akka.stream.ActorMaterializer
import akka.http.scaladsl.model._
implicit val system = ActorSystem()
implicit val dispatcher = system.dispatcher
implicit val materializer = ActorMaterializer()
val response1: HttpResponse = ??? // obtained from an HTTP call (see examples below)
val discarded: DiscardedEntity = response1.discardEntityBytes()
discarded.future.onComplete { case done => println("Entity discarded completely!") }
Or the equivalent low-level code achieving the same result:
val response1: HttpResponse = ??? // obtained from an HTTP call (see examples below)
val discardingComplete: Future[Done] = response1.entity.dataBytes.runWith(Sink.ignore)
discardingComplete.onComplete { case done => println("Entity discarded completely!") }
Server-Side handling of streaming HTTP Entities
Similarily as with the Client-side, HTTP Entities are directly linked to Streams which are fed by the underlying TCP connection. Thus, if request entities remain not consumed, the server will back-pressure the connection, expecting that the user-code will eventually decide what to do with the incoming data.
Note that some directives force an implicit toStrict operation, such as entity(as[String]) and similar ones.
Consuming the HTTP Request Entity (Server)
The simplest way of consuming the incoming request entity is to simply transform it into an actual domain object, for example by using the entity directive:
import akka.actor.ActorSystem
import akka.http.scaladsl.server.Directives._
import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._
import akka.stream.ActorMaterializer
import spray.json.DefaultJsonProtocol._
implicit val system = ActorSystem()
implicit val materializer = ActorMaterializer()
// needed for the future flatMap/onComplete in the end
implicit val executionContext = system.dispatcher
final case class Bid(userId: String, bid: Int)
// these are from spray-json
implicit val bidFormat = jsonFormat2(Bid)
val route =
path("bid") {
put {
entity(as[Bid]) { bid =>
// incoming entity is fully consumed and converted into a Bid
complete("The bid was: " + bid)
}
}
}
Of course you can access the raw dataBytes as well and run the underlying stream, for example piping it into an FileIO Sink, that signals completion via a Future[IoResult] once all the data has been written into the file:
import akka.actor.ActorSystem
import akka.stream.scaladsl.FileIO
import akka.http.scaladsl.server.Directives._
import akka.stream.ActorMaterializer
import java.io.File
implicit val system = ActorSystem()
implicit val materializer = ActorMaterializer()
// needed for the future flatMap/onComplete in the end
implicit val executionContext = system.dispatcher
val route =
(put & path("lines")) {
withoutSizeLimit {
extractDataBytes { bytes =>
val finishedWriting = bytes.runWith(FileIO.toPath(new File("/tmp/example.out").toPath))
// we only want to respond once the incoming data has been handled:
onComplete(finishedWriting) { ioResult =>
complete("Finished writing data: " + ioResult)
}
}
}
}
Discarding the HTTP Request Entity (Server)
Sometimes, depending on some validation (e.g. checking if given user is allowed to perform uploads or not) you may want to decide to discard the uploaded entity.
Please note that discarding means that the entire upload will proceed, even though you are not interested in the data being streamed to the server - this may be useful if you are simply not interested in the given entity, however you don't want to abort the entire connection (which we'll demonstrate as well), since there may be more requests pending on the same connection still.
In order to discard the databytes explicitly you can invoke the discardEntityBytes bytes of the incoming HTTPRequest:
import akka.actor.ActorSystem
import akka.stream.scaladsl.FileIO
import akka.http.scaladsl.server.Directives._
import akka.stream.ActorMaterializer
import akka.http.scaladsl.model.HttpRequest
implicit val system = ActorSystem()
implicit val materializer = ActorMaterializer()
// needed for the future flatMap/onComplete in the end
implicit val executionContext = system.dispatcher
val route =
(put & path("lines")) {
withoutSizeLimit {
extractRequest { r: HttpRequest =>
val finishedWriting = r.discardEntityBytes().future
// we only want to respond once the incoming data has been handled:
onComplete(finishedWriting) { done =>
complete("Drained all data from connection... (" + done + ")")
}
}
}
}
A related concept is cancelling the incoming entity.dataBytes stream, which results in Akka HTTP abruptly closing the connection from the Client. This may be useful when you detect that the given user should not be allowed to make any uploads at all, and you want to drop the connection (instead of reading and ignoring the incoming data). This can be done by attaching the incoming entity.dataBytes to a Sink.cancelled which will cancel the entity stream, which in turn will cause the underlying connection to be shut-down by the server – effectively hard-aborting the incoming request:
import akka.actor.ActorSystem
import akka.stream.scaladsl.Sink
import akka.http.scaladsl.server.Directives._
import akka.http.scaladsl.model.headers.Connection
import akka.stream.ActorMaterializer
implicit val system = ActorSystem()
implicit val materializer = ActorMaterializer()
// needed for the future flatMap/onComplete in the end
implicit val executionContext = system.dispatcher
val route =
(put & path("lines")) {
withoutSizeLimit {
extractDataBytes { data =>
// Closing connections, method 1 (eager):
// we deem this request as illegal, and close the connection right away:
data.runWith(Sink.cancelled) // "brutally" closes the connection
// Closing connections, method 2 (graceful):
// consider draining connection and replying with `Connection: Close` header
// if you want the client to close after this request/reply cycle instead:
respondWithHeader(Connection("close"))
complete(StatusCodes.Forbidden -> "Not allowed!")
}
}
}
Closing connections is also explained in depth in the Closing a connection section of the docs.
Pending: Automatic discarding of not used entities
Under certain conditions it is possible to detect an entity is very unlikely to be used by the user for a given request, and issue warnings or discard the entity automatically. This advanced feature has not been implemented yet, see the below note and issues for further discussion and ideas.
Note
An advanced feature code named "auto draining" has been discussed and proposed for Akka HTTP, and we're hoping to implement or help the community implement it.
You can read more about it in issue #18716 as well as issue #18540 ; as always, contributions are very welcome!
Contents


|
Bitstream Interpretation Library (BIL)
0.1
|
A word of dummy data. More...
#include <bitstream/DummyWord.hpp>
Public Member Functions | |
| DummyWord () | |
| Default constructor. | |
| virtual DummyWord * | clone () const |
| Virtual constructor for doing polymorphic copies. | |
| virtual void | accept (PacketVisitor &visitor) const |
| Accepts a visitor for dynamic type dependent stuff. | |
| void | value (boost::uint32_t dummyValue) |
| Sets the dummy value. | |
| boost::uint32_t | value () const |
| Gets the dummy value. | |
| Public Member Functions inherited from bil::Packet | |
| virtual | ~Packet () |
| Destructs a Packet instance. |
Static Public Attributes | |
| static const boost::uint32_t | NULL_WORD = 0x00000000 |
| a frequent dummy data value | |
| static const boost::uint32_t | FULL_WORD = 0xffffffff |
| a frequent dummy data value |
A word of dummy data.
Sometimes it is necessary to insert dummy data into a bitstream; for this purpose serves the DummyWord class. It contains one 32 bit word for holding its dummy value.
Definition at line 23 of file DummyWord.hpp.
| DummyWord::DummyWord | ( | ) |
Default constructor.
Definition at line 12 of file DummyWord.cpp.
|
virtual |
Virtual constructor for doing polymorphic copies.
Implements bil::Packet.
Definition at line 19 of file DummyWord.cpp.
|
virtual |
Accepts a visitor for dynamic type dependent stuff.
| visitor | Visitor, which matching method will be called. |
Implements bil::Packet.
Definition at line 25 of file DummyWord.cpp.
| void DummyWord::value | ( | boost::uint32_t | dummyValue | ) |
Sets the dummy value.
| dummyValue | The 32 bit word dummy value. |
Definition at line 31 of file DummyWord.cpp.
| boost::uint32_t DummyWord::value | ( | ) | const |
|
static |
a frequent dummy data value
Definition at line 58 of file DummyWord.hpp.
|
static |
a frequent dummy data value
Definition at line 61 of file DummyWord.hpp.


Admin Theme
Dashboard
App
Mailbox
UI Elements
Sign out
AbdulMalik
Dashboard
App
Mailbox
UI Elements
forms and tables
Dashboard
App
Mailbox
UI Elements
Dashboard /
My Dashboard
20 New
Orders
152 New
Users
56 New
Messages
48 New
Cases
Line Chart
Doughnut Chart
Bar Chart
Already want to leave?
×
It is sad to see you go. Please log out to leave.


Holiday events scheduled at Springfield state historic sites
SPRINGFIELD, Ill. (AP) - There are full slates of special events and celebrations scheduled for the holiday season at two state historic sites in Springfield.
Santa will be available regularly at the Old State Capitol to collect children’s Christmas wishes and specially themed tours are scheduled for the Dana-Thomas House designed by architect Frank Lloyd Wright.
Children and families may visit with St. Nick and play holiday games at the Old State Capitol from 1 to 5 p.m. each Saturday from Nov. 30 to Dec. 21 and from 5 to 8 p.m. each Wednesday from Dec. 4-18.
Each day will feature a different musical group as well.
A dozen variously themed tours of the Dana-Thomas House are scheduled periodically from Nov. 29 through Dec. 20. Some require reservations.
Online
Schedule of events: https://bit.ly/37wETNZ
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Methods related to boundary element solvers for contact mechanics calculations
tribology_boundary_element.
__begetd
(profile, norm_disp)[source]¶Calculate local elastic displacements of profile :param profile: combined profile of two contacting bodies :param norm_disp: global normal elastic displ between contacting bodies :return: local normal displacements as a result of global displ norm_displ
tribology_boundary_element.
beinflumat
(x_axis, y_axis, e_eff)[source]¶Generate an influence matrix as required for boundary element contact mechanics calculations :param x_axis: x-axis of coordinate grid :param y_axis: y-axis of coordinate grid :param e_eff: effective youngs modulus :return: complete influence matrix
tribology_boundary_element.
beinflumatgrid
(axis)[source]¶Generate coordinate grid based on axis as required for influence matrix generation :param axis: axis to make grid :return: grid
tribology_boundary_element.
beinflumatred
(influ_mat)[source]¶Extract the reduced influence matrix from the complete influence matrix :param influ_mat: complete influence matrix :return: reduced influence matrix
tribology_boundary_element.
besolve
(profile_1, profile_2, outer_force, red_influ_mat, delta_x, delta_y, norm_disp=0.1, max_offset=0.005)[source]¶Solve system of equations:
[pressure] = [influence matrix]^-1 * [displacement]
Stop solver once inner and outer forces are in equilibrium
| Parameters: |
|
|---|---|
| Returns: | local pressure (array), local displacements (array). inner force (scalar), global normal displacement (scalar) |
tribology_boundary_element.
combineprof
(profile_1, profile_2)[source]¶Combine two body profiles for boundary element calculation :param profile_1: array-like profile heights :param profile_2: array-like profile heights :return: negative combined profile heights
tribology_boundary_element.
secant
(x_list, fx_list)[source]¶Applies secant method to find root x of function f(x). If not enough (x, f(x)) value pairs are known to apply secant method, a new x value is guessed by slightly changing the initial x value :param x_list: list of function inputs :param fx_list: list of function outputs :return: estimate of function root


As you can see in this page there are form elements. In Netscape 4 there's a bug that makes ALL form elements
get the highest z-index. That means that the form elements "shines" trough the elements. In explorer and netscape 6 this only goes
for select boxes. So I have made a check that you can turn on (oCMenu.checkselect) that checks for select boxes and
hides them if they come in the way of the menu. Unfortunatly this can not be done in Netscape so I have added another workaround to
that problem on this page. Surround your entire form with a ILAYER tag (ilayers are positioned relative by default). Add a id to
the layer and place that id inside the variable oCMenu.hideForm, like this: oCMenu.hideForm="document.LAYER_NAME"


Making things wrap: Row
Making things wrap: Column
Wrapping and flex-direction
Note that the reversing is only happening in the inline, row direction.
Single-dimensional layout explained
The following sample uses CSS Grid Layout to create a layout in this case the items stay in their grid and don’t stretch out when there are fewer of them on the final row.
This is the difference between one and two-dimensional layout. In a one dimensional method like flexbox, we only control the row or column. In two dimensional layout like grid we control both at the same time. If you want the space distribution row by row, use flexbox. If you don’t, use Grid.
How do flexbox-based grid systems work?
Typically flexbox-based grid systems work by taking flexbox back to the familiar world of float-based layouts. If you assign percentage widths to flex items — either as flex-basis or by adding a width to the item itself leaving the value of flex-basis as auto — you can get the impression of a two dimensional layout. You can see this working in the example below
Here I have set flex-grow and flex-shrink to 0 to make inflexible flex items and am then controlling flexibility using percentages, just like we used to do in float layouts.
If you need flex items to line up in the cross axis, controlling the width in this way will achieve that. In most cases however, adding widths to flex items in this way demonstrates that you would probably be better served by switching to grid layout for that component.
Creating gutters between items
Collapsed items
When you set an item to display: none in order to hide it, the item is removed from the formatting structure of the page. What this means in practice is that counters ignore it, and things like transitions do not run. Using visibility: hidden keeps the box in the formatting structure which is useful in that it still behaves as if it were part of the layout even though the user can’t see it.
has
extra
text
Another Example of Collapsing
has
extra
text


The reason for this mod is because I wanted a way to test PSPAR codes on CFW, for me it was easier just to implement the PSPAR code types into an existing cheat device rather then try and patch the PSPAR EBOOT to run on CFW so that is exactly what I have done.
Unlike the official PSPAR cheat device a more simple code file format is utilized for loading codes, the format is much like the CWCheat cheat database format but instead of code lines being preceeded with "_L " they are preceeded with "_M ".
I also got bored and decided to implement the CWCheat code types so hopefully most CWCheat codes should work with this cheat device.
General Differences
- This cheat device does not work on OFW! (durr). However it does work on CFW which the official PSPAR does not.
- Instead of using a complex binary file for the codes a CWCheat-style file is used for simple code entry.
Code Engine Differences
- Some button press codes from the official PSPAR database may not work because the code engine seems to write the button press value to a difference address for each game.
- Fake addresses were added to allow button press codes to easily be ported over to this cheat device.
General Differences
- Codes are loaded from a single CWCheat-style file instead of using a single text file for each game. This reduces the time taken to update the cheats and save a lot of MS space. Depending on how the MS is formatted and the amount of code files on the MS it can save over 20MB!
- Real addresses are used by default for the decoder and browser as PSPAR uses real values for the address.
Code Engine Differences
- NitePR code type support was removed, lol a NitePR mod which doesn't support NitePR codes!
- SOCOM related stuff was removed.
General Differences
- A new line type _C2 has been added. Code names with this line prefix will be enabled regardless of the if the cheat engine is enabled or not.
| PSPAR Code Types | |
|---|---|
| Type | Description |
| Constant RAM Writes | |
| Type 0x00 32-bit 0XXXXXXX YYYYYYYY |
Writes word YYYYYYYY to [XXXXXXX+offset]. |
| Type 0x01 16-bit 1XXXXXXX 0000YYYY |
Writes halfword YYYY to [XXXXXXX+offset]. |
| Type 0x02 8-bit 2XXXXXXX 000000YY |
Writes byte YY to [XXXXXXX+offset]. |
| Conditional 32-bit Code Types | |
| Type 0x03 Greater Than 3XXXXXXX YYYYYYYY |
Checks if YYYYYYYY > (word at [XXXXXXX] or [offset] if [XXXXXXX] is 0) If not, the code(s) following this one are not executed (ie. execution status is set to false) until a code type D0 or D2 is encountered, or until the end of thecode list is reached. |
| Type 0x04 Less Than 4XXXXXXX YYYYYYYY |
Checks if YYYYYYYY < (word at [XXXXXXX] or [offset] if [XXXXXXX] is 0) If not, the code(s) following this one are not executed (ie. execution status is set to false) until a code type D0 or D2 is encountered, or until the end of thecode list is reached. |
| Type 0x05 Equal To 5XXXXXXX YYYYYYYY |
Checks if YYYYYYYY == (word at [XXXXXXX] or [offset] if [XXXXXXX] is 0) If not, the code(s) following this one are not executed (ie. execution status is set to false) until a code type D0 or D2 is encountered, or until the end of thecode list is reached. |
| Type 0x06 Not Equal To 6XXXXXXX YYYYYYYY |
Checks if YYYYYYYY != (word at [XXXXXXX] or [offset] if [XXXXXXX] is 0) If not, the code(s) following this one are not executed (ie. execution status is set to false) until a code type D0 or D2 is encountered, or until the end of thecode list is reached. |
| Conditional 16-bit + Masking Code Types | |
| Type 0x07 Greater Than 7XXXXXXX ZZZZYYYY |
Checks if (YYYY) > (not (ZZZZ) < halfword at [XXXXXXX] or [offset] if [XXXXXXX] is 0). If not, the code(s) following this one are not executed (ie. execution status is set to false) until a code type D0 or D2 is encountered, or until the end of the code list is reached. |
| Type 0x08 Less Than 8XXXXXXX ZZZZYYYY |
Checks if (YYYY) < (not (ZZZZ) < halfword at [XXXXXXX] or [offset] if [XXXXXXX] is 0). If not, the code(s) following this one are not executed (ie. execution status is set to false) until a code type D0 or D2 is encountered, or until the end of the code list is reached. |
| Type 0x09 Equal To 9XXXXXXX ZZZZYYYY |
Checks if (YYYY) == (not (ZZZZ) < halfword at [XXXXXXX] or [offset] if [XXXXXXX] is 0). If not, the code(s) following this one are not executed (ie. execution status is set to false) until a code type D0 or D2 is encountered, or until the end of the code list is reached. |
| Type 0x0A Not Equal To AXXXXXXX ZZZZYYYY |
Checks if (YYYY) != (not (ZZZZ) < halfword at [XXXXXXX] or [offset] if [XXXXXXX] is 0). If not, the code(s) following this one are not executed (ie. execution status is set to false) until a code type D0 or D2 is encountered, or until the end of the code list is reached. |
| Offset Codes | |
| Type 0x0B Load Offset BXXXXXXX 00000000 |
Loads the 32-bit value into the 'offset'. Offset = word at [XXXXXXX+offset]. |
| Type 0xD3 Set Offset D3000000 XXXXXXXX |
Sets the offset value to XXXXXXXX. |
| Type 0xDC Add Offset DC000000 XXXXXXXX |
Adds XXXXXXXX to the current offset (Dual Offset). |
| Type 0xC6 Write Offset C6000000 XXXXXXXX |
Writes the offset value to [XXXXXXXX]. |
| Loop Codes | |
| Type 0x0C C0000000 YYYYYYYY |
This sets the 'Dx repeat value' to YYYYYYYY and saves the 'Dx nextcode to be executed' and the 'Dx execution status'. Repeat will be executed when a D1/D2 code is encountered. When repeat is executed, the AR reloads the 'next code to be executed' and the 'execution status' from the Dx registers. |
| Special Codes | |
| Type 0xD0 Terminator D0000000 00000000 |
Loads the previous execution status. If none exists, the execution status stays at 'execute codes'. |
| Type 0xD1 Loop Execute Variant D1000000 00000000 |
Executes the next block of codes 'n' times (specified by the 0x0C codetype), but doesn't clear the Dx register upon completion. |
| Type 0xD2 Loop Execute Variant/ Full Terminator D2000000 00000000 |
Executes the next block of codes 'n' times (specified by the 0x0C codetype), and clears all temporary data. (i.e. execution status, offsets, code C settings, etc.) This code can also be used as a full terminator, giving the same effects to any block of code. |
| Data Register Codes | |
| Type 0xD4 Add Value D4000000 XXXXXXXX |
Adds XXXXXXXX to the 'Dx data register'. |
| Type 0xD5 Set Value D5000000 XXXXXXXX |
Set XXXXXXXX to the 'Dx data register'. |
| Type 0xD6 32-bit Incrementive Write D6000000 XXXXXXXX |
Writes the 'Dx data register' word to [XXXXXXXX+offset], and increments the offset by 4. |
| Type 0xD7 16-bit Incrementive Write D7000000 XXXXXXXX |
Writes the 'Dx data register' halfword to [XXXXXXXX+offset], and increments the offset by 2. |
| Type 0xD8 8-bit Incrementive Write D8000000 XXXXXXXX |
Writes the 'Dx data register' byte to [XXXXXXXX+offset], and increments the offset by 1. |
| Type 0xD9 32-bit Load D9000000 XXXXXXXX |
Loads the word at [XXXXXXXX+offset] and stores it in the'Dx data register'. |
| Type 0xDA 16-bit Load DA000000 XXXXXXXX |
Loads the halfword at [XXXXXXXX+offset] and stores it in the'Dx data register'. |
| Type 0xDB 8-bit Load DB000000 XXXXXXXX |
Loads the byte at [XXXXXXXX+offset] and stores it in the'Dx data register'. |
| Miscellaneous Codes | |
| Type 0x0E Patch Code EXXXXXXX YYYYYYYY |
Copies YYYYYYYY bytes from (offset+8) to [XXXXXXXX+offset]. |
| Type 0x0F Memory Copy Code FXXXXXXX YYYYYYYY |
Copy YYYYYYYY bytes from offset to XXXXXXXX (XXXXXXX is fixed, no offsets are added to it). |
| Folder/Comment Codes | |
| Type 0xCF Single Select Folder CF000000 XXXXXXXX |
Sets the cheat as a single select folder and the next XXXXXXXX items (codes, folders and comments) will be subitems of the current item. On TempAR all folders are treated as multi-select folders. |
| Type 0xCF Comment CF000001 XXXXXXXX |
Sets the cheat as a comment and the next XXXXXXXX items will also be treated as comments. |
| Type 0xCF Multi Select Folder CF000002 XXXXXXXX |
Sets the cheat as a folder and the next XXXXXXXX items (codes, folders and comments) will be subitems of the current item. |
| PSPAR Enhanced Code Types | |
|---|---|
| Type | Description |
| Conditional 32-bit Code Types | |
| Type 0x03 Greater Than 3XXXXXXX YYYYYYYY |
Same as PSPAR engine except if lowest bit of address is set the offset is added to the address. |
| Type 0x04 Less Than 4XXXXXXX YYYYYYYY |
Same as PSPAR engine except if lowest bit of address is set the offset is added to the address. |
| Type 0x05 Equal To 5XXXXXXX YYYYYYYY |
Same as PSPAR engine except if lowest bit of address is set the offset is added to the address. |
| Type 0x06 Not Equal To 6XXXXXXX YYYYYYYY |
Same as PSPAR engine except if lowest bit of address is set the offset is added to the address. |
| Conditional 16-bit + Masking Code Types | |
| Type 0x07 Greater Than 7XXXXXXX ZZZZYYYY |
Same as PSPAR engine except if lowest bit of address is set the offset is added to the address. |
| Type 0x08 Less Than 8XXXXXXX ZZZZYYYY |
Same as PSPAR engine except if lowest bit of address is set the offset is added to the address. |
| Type 0x09 Equal To 9XXXXXXX ZZZZYYYY |
Same as PSPAR engine except if lowest bit of address is set the offset is added to the address. |
| Type 0x0A Not Equal To AXXXXXXX ZZZZYYYY |
Same as PSPAR engine except if lowest bit of address is set the offset is added to the address. |
| Data Register Codes | |
| Type 0xD4 Dx Data Operation D400000Y XXXXXXXX |
Sets the 'Dx data register' to Data = ? XXXXXXXX where ? is determined by Y as follows: 0 - add 1 - or 2 - and 3 - xor 4 - logical shift left 5 - logical shift right 6 - rotate right 7 - arithmetic shift right 8 - multiply |
| CWCheat Code Types | |
|---|---|
| Type | Description |
| Constant RAM Writes | |
| Type 0x00 8-bit 0XXXXXXX YYYYYYYY |
Writes byte YY to [XXXXXXX]. |
| Type 0x01 16-bit 1XXXXXXX 0000YYYY |
Writes halfword YYYY to [XXXXXXX]. |
| Type 0x02 32-bit 2XXXXXXX 000000YY |
Writes word YYYYYYYY to [XXXXXXX]. |
| Increment and Decrement Code Types | |
| Type 0x03 8-bit Increment 301000YY XXXXXXXX |
Adds YY to the byte stored at [XXXXXXXX]. |
| Type 0x03 16-bit Increment 3030YYYY XXXXXXXX |
Adds YYYY to the halfword stored at [XXXXXXXX]. |
| Type 0x03 32-bit Increment 30500000 XXXXXXXX YYYYYYYY 000000000 |
Adds YYYYYYYY to the word stored at [XXXXXXXX]. |
| Type 0x03 8-bit Decrement 302000YY XXXXXXXX |
Subtracts YY from the byte stored at [XXXXXXXX]. |
| Type 0x03 16-bit Decrement 3040YYYY XXXXXXXX |
Subtracts YYYY from the halfword stored at [XXXXXXXX]. |
| Type 0x03 32-bit Decrement 30600000 XXXXXXXX YYYYYYYY 000000000 |
Subtracts YYYYYYYY from the word stored at [XXXXXXXX]. |
| Conditional Code Types | |
| Type 0x0D 8-bit Equal To DXXXXXXX 200000YY |
Checks if YY == (byte at [XXXXXXX]). If not, the following line is not executed (ie. execution status is set to false for 1 line). |
| Type 0x0D 8-bit Not Equal To DXXXXXXX 201000YY |
Checks if YY != (byte at [XXXXXXX]). If not, the following line is not executed (ie. execution status is set to false for 1 line). |
| Type 0x0D 8-bit Less Than DXXXXXXX 202000YY |
Checks if YY < (byte at [XXXXXXX]). If not, the following line is not executed (ie. execution status is set to false for 1 line). |
| Type 0x0D 8-bit Greater Than DXXXXXXX 203000YY |
Checks if YY > (byte at [XXXXXXX]). If not, the following line is not executed (ie. execution status is set to false for 1 line). |
| Type 0x0D 16-bit Equal To DXXXXXXX 0000YYYY |
Checks if YYYY == (halfword at [XXXXXXX]). If not, the following line is not executed (ie. execution status is set to false for 1 line). |
| Type 0x0D 16-bit Not Equal To DXXXXXXX 0010YYYY |
Checks if YYYY != (halfword at [XXXXXXX]). If not, the following line is not executed (ie. execution status is set to false for 1 line). |
| Type 0x0D 16-bit Less Than DXXXXXXX 0020YYYY |
Checks if YYYY < (halfword at [XXXXXXX]). If not, the following line is not executed (ie. execution status is set to false for 1 line). |
| Type 0x0D 16-bit Greater Than DXXXXXXX 0030YYYY |
Checks if YYYY > (halfword at [XXXXXXX]). If not, the following line is not executed (ie. execution status is set to false for 1 line). |
| Multiple Skip Conditional Code Types | |
| Type 0x0E 8-bit Equal To E1ZZYYYY 0XXXXXXX |
Checks if YY == (byte at [XXXXXXX]). If not, the next ZZ are not executed (ie. execution status is set to false for ZZ lines). |
| Type 0x0E 8-bit Not Equal To E1ZZYYYY 1XXXXXXX |
Checks if YY != (byte at [XXXXXXX]). If not, the next ZZ are not executed (ie. execution status is set to false for ZZ lines). |
| Type 0x0E 8-bit Less Than E1ZZYYYY 2XXXXXXX |
Checks if YY < (byte at [XXXXXXX]). If not, the next ZZ are not executed (ie. execution status is set to false for ZZ lines). |
| Type 0x0E 8-bit Greater Than E1ZZYYYY 3XXXXXXX |
Checks if YY > (byte at [XXXXXXX]). If not, the next ZZ are not executed (ie. execution status is set to false for ZZ lines). |
| Type 0x0E 16-bit Equal To EZZZYYYY 0XXXXXXX |
Checks if YYYY == (halfword at [XXXXXXX]). If not, the next ZZZ are not executed (ie. execution status is set to false for ZZZ lines). |
| Type 0x0E 16-bit Not Equal To EZZZYYYY 1XXXXXXX |
Checks if YYYY != (halfword at [XXXXXXX]). If not, the next ZZZ are not executed (ie. execution status is set to false for ZZZ lines). |
| Type 0x0E 16-bit Less Than EZZZYYYY 2XXXXXXX |
Checks if YYYY < (halfword at [XXXXXXX]). If not, the next ZZZ are not executed (ie. execution status is set to false for ZZZ lines). |
| Type 0x0E 16-bit Greater Than EZZZYYYY 3XXXXXXX |
Checks if YYYY > (halfword at [XXXXXXX]). If not, the next ZZZ are not executed (ie. execution status is set to false for ZZZ lines). |
| Address Conditional Code Types | |
| Type 0x0D Address Equal To DXXXXXXX 4YYYYYYY ZZZZZZZZ 0000000W |
Checks if value at [XXXXXXX] == value at [YYYYYYY]. If not, the next ZZZZZZZZ lines are not executed (ie. execution status is set to false for ZZZ lines). W = Address type; 0 - 8-bit, 1 - 16-bit, 2 - 32-bit |
| Type 0x0D Address Not Equal To DXXXXXXX 5YYYYYYY ZZZZZZZZ 0000000W |
Checks if value at [XXXXXXX] != value at [YYYYYYY]. If not, the next ZZZZZZZZ lines are not executed (ie. execution status is set to false for ZZZ lines). W = Address type; 0 - 8-bit, 1 - 16-bit, 2 - 32-bit |
| Type 0x0D Address Less Than DXXXXXXX 6YYYYYYY ZZZZZZZZ 0000000W |
Checks if value at [XXXXXXX] < value at [YYYYYYY]. If not, the next ZZZZZZZZ lines are not executed (ie. execution status is set to false for ZZZ lines). W = Address type; 0 - 8-bit, 1 - 16-bit, 2 - 32-bit |
| Type 0x0D Address Greater Than DXXXXXXX 7YYYYYYY ZZZZZZZZ 0000000W |
Checks if value at [XXXXXXX] > value at [YYYYYYY]. If not, the next ZZZZZZZZ lines are not executed (ie. execution status is set to false for ZZZ lines). W = Address type; 0 - 8-bit, 1 - 16-bit, 2 - 32-bit |
| Boolean Code Types | |
| Type 0x07 8-bit OR 7XXXXXXX 000000YY |
Writes byte (byte at [XXXXXXX] OR YY) to [XXXXXXX]. |
| Type 0x07 8-bit AND 7XXXXXXX 000200YY |
Writes byte (byte at [XXXXXXX] AND YY) to [XXXXXXX]. |
| Type 0x07 8-bit XOR 7XXXXXXX 000400YY |
Writes byte (byte at [XXXXXXX] XOR YY) to [XXXXXXX]. |
| Type 0x07 16-bit OR 7XXXXXXX 000100YY |
Writes halfword (halfword at [XXXXXXX] OR YYYY) to [XXXXXXX]. |
| Type 0x07 16-bit AND 7XXXXXXX 000300YY |
Writes halfword (halfword at [XXXXXXX] AND YYYY) to [XXXXXXX]. |
| Type 0x07 16-bit XOR 7XXXXXXX 000500YY |
Writes halfword (halfword at [XXXXXXX] XOR YYYY) to [XXXXXXX]. |
| Pointer Code Types | |
| Type 0x06 8-bit ... |
TODO... |
| Miscellaneous Code Types | |
| Type 0x0D Joker Code D00000YY 1XXXXXXX |
Checks if (ctrl & XXXXXXX) == XXXXXXX. If not, the next YY+1 lines are not executed (ie. execution status is set to false for YY+1 lines). |
| Type 0x0D Inverse Joker Code D00000YY 3XXXXXXX |
Checks if (ctrl & XXXXXXX) != XXXXXXX. If not, the next YY+1 lines are not executed (ie. execution status is set to false for YY+1 lines). |
| Type 0x05 Copy Bytes 5XXXXXXX ZZZZZZZZ 0YYYYYYY 0000000 |
Copies ZZZZZZZZ bytes from [XXXXXXX] to [YYYYYYY]. |
| Type 0x04 32-bit Multi Write 4XXXXXXX YYYYZZZZ VVVVVVVV WWWWWWWW |
Starting at address [XXXXXXX], this code will loop YYYY times. The next address is determined by the incrementing the current address by (ZZZZ * 4). The value written to the address is specified by VVVVVVVV+(WWWWWWWW * loop count). |
| Type 0x0B Pause B0000000 XXXXXXXX |
Delays the code engine for XXXXXXXX cycles. Will delay the application of all following code lines. Simply performs sceKernelDelayThread(XXXXXXXX), hopefully this is what CWCheat does when this code type is encountered. |
| Type 0x0C 32-bit Equal To CXXXXXXX YYYYYYYY |
Checks if YYYYYYYY == (word at [XXXXXXX]). If not, the remainder of the code is not executed (ie. execution status is set to false until the next cheat is reached). |
| User Mode Buttons | |
|---|---|
| Button | Code |
| PSP_CTRL_SELECT | 0x00000001 |
| PSP_CTRL_START | 0x00000008 |
| PSP_CTRL_UP | 0x00000010 |
| PSP_CTRL_RIGHT | 0x00000020 |
| PSP_CTRL_DOWN | 0x00000040 |
| PSP_CTRL_LEFT | 0x00000080 |
| PSP_CTRL_LTRIGGER | 0x00000100 |
| PSP_CTRL_RTRIGGER | 0x00000200 |
| PSP_CTRL_TRIANGLE | 0x00001000 |
| PSP_CTRL_CIRCLE | 0x00002000 |
| PSP_CTRL_CROSS | 0x00004000 |
| PSP_CTRL_SQUARE | 0x00008000 |
| Kernel Mode Buttons | |
| Button | Code |
| PSP_CTRL_HOME | 0x00010000 |
| PSP_CTRL_HOLD | 0x00020000 |
| PSP_CTRL_NOTE | 0x00800000 |
| PSP_CTRL_SCREEN | 0x00400000 |
| PSP_CTRL_VOLUP | 0x00100000 |
| PSP_CTRL_VOLDOWN | 0x00200000 |
| PSP_CTRL_WLAN_UP | 0x00040000 |
| PSP_CTRL_REMOTE | 0x00080000 |
| PSP_CTRL_DISC | 0x01000000 |
| PSP_CTRL_MS | 0x02000000 |
Fake address are used to return system information which either can't be accessed from memory or does not have a static address. Presently these addresses can only be accessed using the exact address listed (ie. no 8/16-bit retrieval of the upper return bits).
| Fake Addresses | |
|---|---|
| Address | Return Value |
| 0x0A000000 | Pressed buttons. |
| 0x0A000004 | X-axis of analog nub. |
| 0x0A000008 | Y-axis of analog nub. |
| Global Hotkeys | |
|---|---|
| Button | Effect |
| VOLUP+VOLDOWN | Show cheat engine menu. |
| NOTE | Toggle cheat engine between enabled and disabled. |
| SELECT+VOLDOWN | Take a screenshot. |
| General Hotkeys | |
| Button | Effect |
| CROSS | Execute selected function. |
| CIRCLE | Back/Exit cheat engine menu. |
| LTRIGGER | Switch to previous tab. |
| RTRIGGER | Switch to next tab. |
| Cheater Hotkeys | |
| Button | Effect |
| DPAD | Scroll through cheat list. |
| ANALOG | Scroll through cheat list. |
| START | Rename selected cheat. |
| SELECT | Copy selected cheat. |
| CROSS | Enable selected cheat. |
| SQUARE | Enable selected cheat even if cheat engine is disabled. |
| TRIANGLE | Edit selected cheat. |
| Browser Hotkeys | |
| Button | Effect |
| DPAD | Move cursor and edit value of selected address (in edit mode). |
| START | Toggle between decoder and browser. |
| SELECT | Toggle browser between 8 and 16 bytes per line. |
| CROSS | Toggle edit mode. |
| TRIANGLE | Show copier menu. |
| VOLUP | Change to next browser. |
| VOLDOWN | Change to previous browser. |
| SQAURE+UP/DOWN | Scroll through memory without moving cursor position. |
| SQAURE+ANALOG | Scroll through memory quickly without moving cursor position. |
| Decoder Hotkeys | |
| Button | Effect |
| DPAD | Move cursor and edit value of selected address (in edit mode). |
| START | Toggle between decoder and browser. |
| SELECT | Toggle decoder between value and opcode view. |
| CROSS | Toggle edit mode. |
| TRIANGLE | Show copier menu. |
| NOTE | Toggle starting and ending addresses to use by the copier when copying to new cheat/text file. |
| VOLUP | Change to next decoder. |
| VOLDOWN | Change to previous decoder. |
| SQAURE+UP/DOWN | Scroll through memory without moving cursor position. |
| SQAURE+ANALOG | Scroll through memory quickly without moving cursor position. |
| SQAURE+RIGHT | Jump to address of the selected pointer. |
| SQAURE+LEFT | Return to pointer. |
0xFF000000 ; Background color of the cheat engine menu.
0xFFCCCCCC ; Color of seperator lines.
0xFF0000FF ; Color of the selected menu item.
0x00000006 ; Value to be subtracted from the above line when fading selected menu items.
0xFFCCCCCC ; Color of the non-selected menu items.
0x00060606 ; Value to subtracted from the above line when fading non-selected menu items.
0xFF0000FF ; Color of the selected menu tab.
0xFFCCCCCC ; Color of the non-selected menu tab.
0xFFFF0000 ; Color of always on cheat codes.
0xFF00FF00 ; Color of normal on cheat codes.
0xFF21FF00 ; Color of multi-select code folders
0xFF21FF00 ; Color of single-select code folders
0xFFFF0000 ; Color of comments.
The searcher of TempAR is improved from the MKULTRA searcher and features a speed improvement making it more than 100 times faster.
The searcher supports 8-bit, 16-bit and 32-bit exact and unknown searches as well as text searches and user-defined search ranges.
| Searcher Speed Comparison (GOW: GOS main menu, 5.50 GEN-D3) | |||
|---|---|---|---|
| Search Type | Old Searcher | New Searcher | Difference |
| 32-bit exact (0x00000000) | 1:10 for 5%, ~23:20 for 100% | 0:54 for 100% | 25x faster |
| Continue 32-bit exact (0x00000001) | Skipped | 0:17 for 100% | Skipped |
| 8-bit exact (0x01) | 2:20 for 5%, ~46:30 for 100% | 0:11 for 100% | 253x faster |
| Continue 8-bit exact (0x01) | Skipped | 0:08 for 100% | Skipped |
| 32-bit unknown | 0:06 for 100% | 0:06 for 100% | Same |
| Continue 32-bit unknown (different) | 5:00 for 20%, 20:00+ for 100% | 0:13 for 100% | 92x faster |
| Continue 32-bit unknown (different) | Skiped | 0:01 for 100% | Skipped |
| 8-bit unknown | 0:06 for 100% | 0:06 for 100% | Same |
| Continue 8-bit unknown (different) | 5:00 for 20%, 20:00+ for 100% | 0:22 for 100% | 54x faster |
| Continue 8-bit unknown (different) | Skipped | 0:02 for 100% | Same |
{external}
Thanks go out to the following people, without them this would not have been possible:


News
Events
People
Donations
Become a member
Join the Orchestra
Photo Gallery
About Us
Contact Us
News
Events
People
Donations
Become a member
Join the Orchestra
Photo Gallery
About Us
Contact Us
Home
Photo Gallery
Hot Summer Nights 2008
Previous
Next


Snake
Home
Blog
Game Over
Try again?
x
Use the arrow keys to control the snake
Eat all of the green blobs to advance to the next level
Don't eat yourself or smash into the walls.
Like life, there is no pause button.
Level: 1
?