Package
Class
Tree
Index
Help
PREV NEXT
FRAMES
NO FRAMES
All Classes
C
D
E
F
G
I
M
O
P
S
U
W
C
Canvas
- Class in
<Unnamed>
Class Canvas - a class to allow for simple graphical drawing on a canvas.
Canvas(String)
- Constructor for class
Canvas
Create a Canvas with default height, width and background color (300, 300, white).
Canvas(String, int, int)
- Constructor for class
Canvas
Create a Canvas with default background color (white).
Canvas(String, int, int, Color)
- Constructor for class
Canvas
Create a Canvas.
Comet
- Class in
<Unnamed>
This is the comet class to simulate the properties of a comet
Comet(int, int, int, int, int, Color, Universe, int)
- Constructor for class
Comet
Constructor for objects of class Comet
D
demo()
- Method in class
Universe
Add three objects and make them move
draw(Shape)
- Method in class
Canvas
Draw the outline of a given shape onto the canvas.
draw(Space_Object)
- Method in class
Universe
Draw an object at its current position onto the view of the universe.
drawImage(Image, int, int)
- Method in class
Canvas
Draws an image onto the canvas.
drawLine(int, int, int, int)
- Method in class
Canvas
Draws a line on the Canvas.
drawString(String, int, int)
- Method in class
Canvas
Draws a String on the Canvas.
E
erase()
- Method in class
Canvas
Erase the whole canvas.
erase(Shape)
- Method in class
Canvas
Erase a given shape's interior on the screen.
erase(Space_Object)
- Method in class
Universe
Erase an object from the view of the universe
eraseCircle(int, int, int)
- Method in class
Canvas
Erase the internal dimensions of the given circle.
eraseOutline(Shape)
- Method in class
Canvas
Erases a given shape's outline on the screen.
eraseRectangle(int, int, int, int)
- Method in class
Canvas
Erase the internal dimensions of the given rectangle.
eraseString(String, int, int)
- Method in class
Canvas
Erases a String on the Canvas.
F
fill(Shape)
- Method in class
Canvas
Fill the internal dimensions of a given shape with the current foreground color of the canvas.
fillCircle(int, int, int)
- Method in class
Canvas
Fill the internal dimensions of the given circle with the current foreground color of the canvas.
fillRectangle(int, int, int, int)
- Method in class
Canvas
Fill the internal dimensions of the given rectangle with the current foreground color of the canvas.
G
getBackgroundColor()
- Method in class
Canvas
Returns the current color of the background
getColor()
- Method in class
Space_Object
return the colour of this object
getDiameter()
- Method in class
Space_Object
return the diameter of this object
getEdge()
- Method in class
Universe
Return the x cordinate of the right of the universe
getFont()
- Method in class
Canvas
Returns the current font of the canvas.
getForegroundColor()
- Method in class
Canvas
Returns the current color of the foreground.
getGround()
- Method in class
Universe
Return the y cordinate of the bottom of the universe
getOrbit()
- Method in class
Planet
Returns which star the planet is orbiting around
getSize()
- Method in class
Canvas
Returns the size of the canvas.
getXPosition()
- Method in class
Space_Object
return the horizontal position of this object
getXVel()
- Method in class
Space_Object
return the horizontal velocity of this object
getYPosition()
- Method in class
Space_Object
return the vertical position of this object
getYVel()
- Method in class
Space_Object
return the verticle velocity of this object
I
isVisible()
- Method in class
Canvas
Provide information on visibility of the Canvas.
M
move()
- Method in class
Space_Object
Move this object according to its position and speed and redraw.
O
orbit(Star)
- Method in class
Planet
Chooses which star the planet orbits around
P
Planet
- Class in
<Unnamed>
This is the planet class to simulate the properties of a planet, and which star they orbit around
Planet(int, int, int, int, int, Color, Universe, int)
- Constructor for class
Planet
Constructor for objects of class planet
S
setBackgroundColor(Color)
- Method in class
Canvas
Sets the background color of the Canvas.
setFont(Font)
- Method in class
Canvas
changes the current Font used on the Canvas
setForegroundColor(Color)
- Method in class
Canvas
Sets the foreground color of the Canvas.
setSize(int, int)
- Method in class
Canvas
Sets the size of the canvas.
setVisible(boolean)
- Method in class
Canvas
Set the canvas visibility and brings canvas to the front of screen when made visible.
Space_Object
- Class in
<Unnamed>
Class Space_Object - an object that exists in a finite Universe.
Space_Object(int, int, int, int, int, Color, Universe, int)
- Constructor for class
Space_Object
Constructor for objects of class Space_Object
Star
- Class in
<Unnamed>
This is the star class to simulate the properties of a star
Star(int, int, int, int, int, Universe, int)
- Constructor for class
Star
Constructor for objects of class star
U
Universe
- Class in
<Unnamed>
Class Universe - a universe which contains 3 objects
Universe()
- Constructor for class
Universe
Create a universe with default name and size.
Universe(String, int, int)
- Constructor for class
Universe
Create a universe with given name and size
W
wait(int)
- Method in class
Canvas
Waits for a specified number of milliseconds before finishing.
C
D
E
F
G
I
M
O
P
S
U
W
Package
Class
Tree
Index
Help
PREV NEXT
FRAMES
NO FRAMES
All Classes


Hi all!
I have a question, with the emonth is possible to read the gas meters, but i don't know if the firmware "emonTH_gas_reflection_analogue" for optical pulse is ok for read a reed switch, or if it needs a modification.
My gas meter every revolution count 0.01 m3, i want to buy the emonth, but i have this doubt...
Is possible?
thanks to all
Pierantonio
Re: Emon Th
The new pulse counting firmware should work fine with a reed switch: https://github.com/openenergymonitor/emonTH/tree/master/emonTH_DHT22_DS18B20_RFM69CW_Pulse
Connect in the same way as a pulse sensor: http://wiki.openenergymonitor.org/index.php/EmonTH_V1.5#Pulse_Sensor_Connection
This new firmware will be shipped as standard. We have finished doing a bit more testing. For the moment, you will have to upload it yourself via the Arduino IDE, and a USB-to-UART cable. If you are ordering via the shop, leave a note at checkout. We can add the new pulse firmware for you, if you like.
Re: Emon Th
Hi Glyn, thanks for the reply, wonderful!!
I order it now then, the firmware had already practiced with emontx, but possibly already loaded by you even better!
Thanks again, have a nice day!!
Pierantonio


If you are viewing this page it means garden is successfully running but you are not accessing the right urls
Try running the following command to check the exposed urls
garden get status


Order Form
Cake Detail
Type of Cake:
Please select the type of cake
Cheesecake
Black Forest Cake
Chocolate Cake
Fruit Cake
Quantity:
Size:
Small
Medium
Large
Deliver to:
Name:
Address:
Postal Code:
Phone #:
Email:
Date:
Time:


If you have questions abot your career in programming and web development with the learning people, then you have come to the right place. We will teach you all about web developement in the full stack course including HTML5, CSS3, JS, JQuery, Flexbox and lots more...   Ribs tenderloin bregenwurst, ball ham hamburger ham mignon.
Once you join a Code Institute Bootcamp you will be taken on an accelerated contextualised learning path across 3 streams.   Ribs tenderloin bregenwurst, ball ham hamburger ham mignon.
Once you join a Code Institute Bootcamp you will be taken on an accelerated contextualised learning path across 3 streams. Institute Bootcamp you will be taken on an accelerated contextualised learning path across 3 streams.   Ribs tenderloin bregenwurst, ball ham hamburger ham mignon.


The most pointless Kubernetes command ever
Coming up for 4 years ago (a lifetime in Container land) Ian Miell wrote about “The most pointless Docker Command Ever”. This was a docker command that you could run and it would return you back as root on your host.


Landing Page
Special Projects
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.
Marcus Pavilonis
10/4/2018
People who identify as LGBTQ are not protected by nondiscrimination laws for housing and employment in Ohio. House Bill 160 could change that.
House Bill 160, or the Ohio Fairness Act, seeks to change Ohio’s nondiscrimination laws. These changes include protections for sexual orientation, gender identity or expression along with protections of race, color, religion, sex, age, ancestry, national origin, disability or military status.
Similar acts have circulated Ohio’s legislature for about a decade.
“We’ve already seen a big difference in the time between 2009 and now,” Rep. Nickie Antonio, D-Lakewood, said. “When the Obergefell decision came down from the Supreme Court, it gave a legal standing to gay and lesbian families, and I think it also helped further the conversation about members if the LGBTQ community in general.”
As the bill awaits further movement in committee, organizations such as Ohio Business Competes, the Human Rights Campaign and Equality Ohio are working to advocate for the bill through personal testimonies and gathering businesses to support the bill.
Businesses, both small and national, have signed in support of House Bill 160 through Ohio Business Competes, which is a non-partisan coalition committed to nondiscrimination policies at the state level.
Additionally, there is an increase in businesses joining the Human Rights Campaign business index each year. That organization has come forward in saying that nondiscrimination policy is good for business, Antonio said.
Marcus Pavilonis | ILLUSTRATION
“Some of these huge national and even international companies, when they’re looking to put down roots in a state, they have made it very clear that they are also looking at places that have these kinds of policies in place,” Antonio said. “It could make a huge difference for who looks at us in Ohio and who just decides that we’re just a drive over state.”
The bill could mean more people staying in Ohio instead of moving to more progressive states, Antonio said.
“The idea behind civil rights laws is that it means that the government is taking an active role in leveling the playing field for groups that have been shown to be historically disadvantaged,” Susan Burgess, a distinguished professor of political science, said.
The bill has been endorsed by the Ohio Chamber of Commerce for the first time.
“I know the reason (the Ohio Chamber of Commerce is) supporting it is because they know that these kinds of policies, if the state takes a stand, it is very good for Ohio’s standing in the rest of the country in terms of advancing business and advancing the economic bottom line in the state of Ohio,” Antonio said.
Because certain areas around the state already have nondiscrimination policies or ordinances, the statewide law would extend those protections everywhere in the state.
“Athens is a bubble in many different ways and has been a safe haven which is great. (Ohio University) has also been a safe haven for many of us and so just wanting to expand that safe haven and in some ways, burst that bubble so we’re not just limited to being in Athens,” delfin bautista, director of the LGBTQ Center, said.
For people who are LGBTQ, the passage of the bill would mean greater equality and the ability to live without fear of losing their homes or jobs because of who they are, bautista said.
“When laws like this are passed, they also serve as an educational moment and model, and so it affords the opportunity to talk about what fairness and equality mean,” Antonio said.
In states where such laws have passed, there has not been upsurge in nondiscrimination cases, Antonio said. More so, they serve as a determinant for people to be discriminated against.
“I think it’ll send a clear message that there’s a lot of groups that have been lifting up ‘all are equal needs to mean all are equal’ and so we say that we are all equal, how are we living into that and how are we not living into that and if we’re not living into it, how can we better live into it,” bautista said.
The bill is currently in the government oversight accountability committee.
Landing Page
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.


Building collaboration into cxpartners’ workplace
When we moved into our current offices in 2010, we […]
When we moved into our current offices in 2010, we […]
We’ve just completed a website redesign for Jisc, a non-government […]
Position summary This is a new, full-time role in our […]
* We also write books ourselves, see Simple and Usable, Communicating the User Experience and Smashing UX Design


Updates
- NSCalendarExtension is required to get iOS7 compatibility.
Table of contents
Screenshots
iPhone
iPad
Working with AutoLayout and Orientation
Hide placeholder dates
Scope gesture
FSCalendar doesn't change frame or the constraint by itself, see Adjusts frame dynamicly
Today Extension (iOS8/9)
Today Extension With NCWidgetDisplayMode (iOS10)
Installation
CocoaPods:
- For iOS8+:
👍
use_frameworks!
pod 'FSCalendar'
- For iOS7+:
pod 'FSCalendar'
NSCalendarExtension is required to get iOS7 compatibility.
- Alternatively to give it a test run, run the command:
pod try FSCalendar
Carthage:
- For iOS8+
github "WenchaoD/FSCalendar"
Manually:
- Drag all files under
FSCalendar
folder into your project.👍
Support IBInspectable / IBDesignable
Only the methods marked "
Setup
Use Interface Builder
- Drag an UIView object to ViewController Scene
- Change the
Custom Class
toFSCalendar
- Link
dataSource
anddelegate
to the ViewController
- Finally, you should implement
FSCalendarDataSource
andFSCalendarDelegate
in ViewController.m
Or use code
@property (weak , nonatomic) FSCalendar *calendar;
// In loadView(Recommended) or viewDidLoad
FSCalendar *calendar = [[FSCalendar alloc] initWithFrame:CGRectMake(0, 0, 320, 300)];
calendar.dataSource = self;
calendar.delegate = self;
[self.view addSubview:calendar];
self.calendar = calendar;
Or swift
- To use
FSCalendar
in swift, you need to Create Bridge Header first.
private weak var calendar: FSCalendar!
// In loadView or viewDidLoad
let calendar = FSCalendar(frame: CGRect(x: 0, y: 0, width: 320, height: 300))
calendar.dataSource = self
calendar.delegate = self
view.addSubview(calendar)
self.calendar = calendar
FSCalendar is fully compatible for Swift3, see
SwiftExample
for more details.
Warning
FSCalendar
doesn't change frame by itself, Please implement
- For autoLayout
- (void)calendar:(FSCalendar *)calendar boundingRectWillChange:(CGRect)bounds animated:(BOOL)animated
{
_calendarHeightConstraint.constant = CGRectGetHeight(bounds);
[self.view layoutIfNeeded];
}
- For manual layout
- (void)calendar:(FSCalendar *)calendar boundingRectWillChange:(CGRect)bounds animated:(BOOL)animated
{
calendar.frame = (CGRect){calendar.frame.origin,bounds.size};
}
Roll with Interface Builder
Pre-knowledge
In
Swift3
,NSDate
andNSDateFormatter
have been renamed to Date and DateFormatter , seeSwiftExample
for details.
How to create NSDate object
- By NSCalendar.
self.gregorian = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
Then:
NSDate *date = [gregorian dateWithEra:1 year:2016 month:9 day:10 hour:0 minute:0 second:0 nanosecond:0];
// 2016-09-10 00:00:00
- Or by NSDateFormatter
self.formatter = [[NSDateFormatter alloc] init];
self.formatter.dateFormat = @"yyyy-MM-dd";
Then:
NSDate *date = [self.formatter dateFromString:@"2016-09-10"];
How to print out NSDate object
- Use NSDateFormatter
self.formatter = [[NSDateFormatter alloc] init];
self.formatter.dateFormat = @"yyyy/MM/dd";
NSString *string = [self.formatter stringFromDate:date];
NSLog(@"Date is %@", string);
How to manipulate NSDate with NSCalendar
self.gregorian = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
- Get component of NSDate
NSInteger era = [self.gregorian component:NSCalendarUnitEra fromDate:date];
NSInteger year = [self.gregorian component:NSCalendarUnitYear fromDate:date];
NSInteger month = [self.gregorian component:NSCalendarUnitMonth fromDate:date];
NSInteger day = [self.gregorian component:NSCalendarUnitDay fromDate:date];
NSInteger hour = [self.gregorian component:NSCalendarUnitHour fromDate:date];
NSInteger minute = [self.gregorian component:NSCalendarUnitMinute fromDate:date];
...
- Get next month
NSDate *nextMonth = [self.gregorain dateByAddingUnit:NSCalendarUnitMonth value:1 toDate:date options:0];
- Get next day
NSDate *nextDay = [self.gregorain dateByAddingUnit:NSCalendarUnitDay value:1 toDate:date options:0];
- Is date in today/tomorrow/yesterday/weekend
BOOL isToday = [self.gregorian isDateInToday:date];
BOOL isYesterday = [self.gregorian isDateInYesterday:date];
BOOL isTomorrow = [self.gregorian isDateInTomorrow:date];
BOOL isWeekend = [self.gregorian isDateInWeekend:date];
- Compare two dates
BOOL sameDay = [self.gregorian isDate:date1 inSameDayAsDate:date2];
// Yes if the date1 and date2 are in same day
[self.gregorian compareDate:date1 toDate:date2 toUnitGranularity:unit];
// compare the era/year/month/day/hour/minute .etc ...
// return NSOrderAscending/NSOrderSame/NSOrderDecending
BOOL inSameUnit = [self.gregorian isDate:date1 equalToDate:date2 toUnitGranularity:unit];
// if the given unit (era/year/month/day/hour/minute .etc) are the same
Support this repo
Contact
If your made a beautiful calendar with this library in your app, please take a screen shot and @me in twitter. Your help really means a lot to me!
如果你用这个库完成了一个外观漂亮的日历，希望你能将这个漂亮的日历截图在微博中@我，十分感谢！
License
FSCalendar is available under the MIT license. See the LICENSE file for more info.


Home
Programs
Locations
Home
Programs
Locations
menu
close
Find Girls Coding
at a University near you
Search


Who would you like to meet first?
Jordan Stewart is an 18 year old Computer Scientist from Chicago, IL, attending Howard University. He has been involved with computer science since the age of 8 and loves music and basketball.
Alia is from Libertyville, IL, and will be attending UC San Diego. She is passionate about coding and loves her dog Remy.
Jewel is from Naperville,IL, and will be attending University of Illinois.  While coding has become a new hobby for her she is very excited to see where life takes her!


Supervisor APIs provide services to monitor and/or control apps. These APIs are available:
Supervisor Control API
Application Information API
- Warning
- Beware of the security risks associated with granting an app access to these services. Apps that can control the state of other apps can seriously interfere with system operation. Sometimes, even knowledge about which apps are running can reveal a vulnerability.
Copyright (C) Sierra Wireless Inc. Use of this work is subject to license.


Quick Start
4 Next Steps
This has been a quick overview of what LFE has to offer, so you might enjoy reading the User Guide next. You can see all our docs at a glance by visiting the Docs page.
If at any time you would like to provide feedback about the documentation on this site, feel free to create an issue. Be sure to give a full description so that we can best help you!


Space Ship Team built the Adblock app as an Ad Supported app. This SERVICE is provided by Space Ship Team at no cost and is in tended for use as is.
This page is used to inform visitors regarding my policies with the collection, use, and disclosure of Personal Information if anyone decided to use my Service.
If you choose to use our Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that I collect is used for providing and improving the Service. I will not use or share your information with anyone except as described i n this Privacy Policy.
The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which is accessible at Easy OC R unless otherwise defined in this Privacy Policy.
Information Collection and Use
For a better experience, while using our Service, I may re quire you to provide us with certain personally identifia ble information. The information that I request will be r etained on your device and is not collected by me in any way.
The app does use third party services that may collect information used to identify you.
Link to privacy policy of third party service providers used by the app
The fuzzy URL information when you use the browser is used to detect whether this website is a malicious website and protect your network security. We will not upload your browsing information to us or any other server.
Why do we need your app installation information?
We need user application installation information to identify
which browser you are using in order to protect your network
security.
All your application installation information is only
used in the client of your own mobile phone, and will not be sent
to our server.
What application installation information data we collect?
- The browser app corresponding package name
- The browser App version information
- The browser App name
About https://raw.githubusercontent.com:
We use GitHub's service to obtain some configuration information of the application itself (for example: https://raw.githubusercontent.com/ This is GitHub's file storage service), and will not upload any information to any server.
Log Data
I want to inform you that whenever you use my Serv ice, in a case of an error in the app I collect data and information (through third party products) on your phone called Log Data. This Log Data may include information su ch as your device Internet Protocol (IP ) address, device name, operating system version, the con figuration of the app when utilizing my Service, the time and date of your use of the Service, and other statistic s.
Cookies
Cookies are files with a small amount of data that are commonly used as anonymous unique identifiers. These are sent to your browser from the websites that you visit and are stored on your device's internal memory.
This Service does not use these cookies explicitly. However, the app may use third party code and libraries that use cookies to collect in formation and improve their services. You have the option to either accept or refuse these cookies and know when a cookie is being sent to your device. If you choose to re fuse our cookies, you may not be able to use some portion s of this Service.
Service Providers
I may employ third-party companies and individuals due to the following reasons:
- To facilitate our Service;
- To provide the Service on our be half;
- To perform Service-related services; or
- To assist u s in analyzing how our Service is used.
I want to inform users of this Service that these third part ies have access to your Personal Information. The reason is to perform the tasks assigned to them on our behalf. H owever, they are obligated not to disclose or use the inf ormation for any other purpose.
Security
I value your trust in providing us your Personal Information, thus we are striving to use commercia lly acceptable means of protecting it. But remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, and I ca nnot guarantee its absolute security.
Links to Other Sites
This Service may contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by me. Ther efore, I strongly advise you to review the Privacy Policy of these websites. I have no control over and assume no responsibility for the content, privacy policies, or prac tices of any third-party sites or services.
Childrens Privacy
These Services do not address anyone under the age of 13. I do not knowingly collect personally identifiable information from children under 13. In the case I discov er that a child under 13 has provided me with personal in formation, I immediately delete this from our servers.
Changes to This Privacy Policy
I may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. I will notify you of an y changes by posting the new Privacy Policy on this page.
This policy is effective as of 2020-01-01
Contact Us
If you have any questions or suggestions about my Privacy Policy, do not hesita te to contact me at space.ship.apps@gmail.com.


The maximum density that can be obtained in stable plasma operations (without disruption) is empirically given by
|
| (543) |
where nG is the Greenwalt density, which is given by
|
| (544) |
where Ip is the plasma current, a is the minor radius, all physical quantities are in SI units. The 1.5nG gives the density limit that can be achieved for a tokamak operation scenario with plasma current Ip and plasma minor radius a. The Greenwalt density limit is an empirical one, which, like other empirical limits, can be exceeded in practice. Equation (544) indicates that the Greenwalt density is proportional to the current density. Therefore the ability to operate in large plasma current density means the ability to operate with high plasma density.
Note that neither the pressure limit nor the density limit is determined by the force-balance constraints. They are determined by the stability of the equilibrium. On the other hand, since the stability of the equilibrium is determined by the equilibrium itself, the pressure and density limit is determined by the equilibrium.


s
I was quite confused by the two separate workshops on interpretable machine learning running at the same time, fair enough one focused on explainable AI and the other referenced human interpretability but with so many papers in the space bemonaing the lack of disctinction between buzzwords, this seemed a little bizzare. Another bizzare concept for me is virtual poster sessions, which are even more awkward than in person, in my opinion. Perhaps an opinion shared by many seeing as the poster sessions were a bit of a flop from what I hear.
This workshop was the higlight of ICML for me, I thought it was fantastically pitched, covered a large amount of background and thoroughly interesting.
It began with an introduction to Plato's allegory of a cave, with the idea that representation learning can be described as the mapping between impoverished truth and truth and the key message that representation learning is orthogonal to information content
Next, the limitations of supervised representation learning were discussed:
Who provides the ground truth labels?
Which attributes are chosen for labelling?
Can we develop useful representations without labels?
If we can successfully extract representations without supervision, then
we can learn more effectively when labels are revealed
we can learn in situations where labels are impossible to collect
The tutorial then spend a little time discussing the importance of un-supervised representation learning and the debate that rages on, paying homage to both Hinton's humble brag "I always knew unsupervised learning was the right thing to do" and Rodeny Brooks' idea that "there is no clear division between perception and reasoning in the real world".
Then there was an overview of the landscape of Representation Learning.
with a particular focus on the following:
Disentangled autoencoders (B-VAE): How the use of RNNS and the restriction over inputs allows for the repsentation of semnatically meanfingul concepts and therefore has ties to interpretabilty. More recent work in this space has involved replacing the representation of an observation as a vector with a neaural network or function.
Generative Adversarial Networks (GANs): Unlike auto-encoders, these are non-likelihood based and use a discrimnator/contrastive learning to learn representations. Recent work includes SPIRAL [GANIN2018SYNTHESIZING] combines a discrinative, unsupervised approach with re-inforcement learing.
Beyond Generative Models
Self-supervised learning: The data provides the supervision. Usually this involves using the netwrok to predict some (withheld) part of the data forcing the network to learn semantic representations [ZISSERMAN2018SELF].
Colorization: A research area within self-supervised learning that uses the color of a pixel as the input information signal. In [LARSSON2017COLORIZATION], a colorization network (that can predict the color of a pixel from a grayscale image) is used as a proxy task for learning visual represenatations of an image.
A rerturn to likelihood-based models with attention based frameworks [CHENGENERATIVE2019]
The tutorial then discussed in greater the detail the mechanics of a generative models, specifically discussing the problem of selecting a divergence function that works to minimise the difference between the empirical probability density and the estimated probability density function. The difference between GANs and VAEs was also discussed and presented as the difference in ways that they define the bounds of loss between desnsity functions. Energy based models were also briefly discussed, focusing on how, the fact that they work to minimise the KL-divergence between density functions, there is no obvious way of smampling from the model such taht many different methods have been recently proposed including Hamiltonian MOnte Carlo, Score matching and Langevin sampling [LECUNENERGY2006].
The final part of the tutorial focues on the manifold hypothesis: "High dimensional data lue on low-dimensional manifolds embedded in the high dimensional space"
"If representation learning was an apple pie, how would it be divided up between modalities?"" An interesting question from the Q&A, the answer: "90% text, 9.5% images and 0.5% for the rest". How do we perform representation learning for other forms of data, specifically, longitudinal data?
"Finding the right low dimensional manifold is ciritical for high dimensional data". How can this idea be linked back to the research I am doing lookking at how a better undertanding of the data distribution can aid posy-hoc interepretability methods? Can this be linked to kernel methods and kernel distances?
Define Shapley based feature importance measures as the pipeline: calculation -> Interpretation -> Action
Authors argue that Shapley based feature importances are difficult to be interpreted and that while these feature importances may be optimal for game theory they have not been created with any specific task in mind and are therefore not optimal for that specific task.
Paper focuses on two central problems of Shapley based explanations:
Mathematical problems: These include the difference between conditional and interventional distributions and the resulting issues as treating these as equivalent and the problems of additive feature importances.
Human based problems: The authors highlight the importance of understanding why the explanation is needed, which could be for either, 'just because', 'user action', 'normative action'. THey take further issue with the use of Shapley values as contrastive explanations and the conceptual problems associated with averaging feature importances.
Paper addresses two key areas:
GANs are bad at disentanglement compared to VAEs
How to do unspervised model slection
Disentangled GANS: Authors suggest using a contrastive regularizer to assess the quality of the disentangled representation. Add a contrastive regluariser to the INFOGAN model and report improvements. The idea behind the contrastive regulariser is two generate two images from two different vectors of latent codes but fix a particular latent code &c_{i}$ to be shared between both images. The discriminator then tries to determine which latent code was shared. Train the INFOGAN with the contrastive regulariser as we want to train a generator to optimise the latent factors that are easy to be separated by the regulariser.
Model selection: How to choose which disentangled model is the best. The idea behind the paper is that well-disentangled models are close to the (unknown) ground truth model. Authors measure the distance between each model and all other learned models. Assign an overall score to each model that is a measure for how 'close-by' all other models are. The model with the highest centrality score is selected.
Many works map data to the unit hyphersphere representation space. Fixed norm feature vectors can improve training stability by making well clustered sets linearly seperable. Authors question, what makes a good representation?
Alignment: Should be invariant to random noise
Uniformity: Preserve as much information as possible
The authors define alignment as the idea that similar samples have similar features whereas they define uniformity as the idea that we should want to preserve as much information as possible (use the Uniform distribution). Authors show that using the contrastive loss as a performance metric pulls positive pairs (of observations) together and pushes negatives apart thus intuitively seems to be optimising for alignment and uniformity. The authors show this empirically.
Key take away points:
Important to question whether the technology should trust the human. Interesting point regarding quality of input signal
It is critical that assistive autonomy for spinal cord injury test subjects is customisable
Difference between short-term and long-term adaptation
Presents the common problems of working with time series data as:
High dimensional signals
Large intra-class variability
Noise
Gives an overview of approaches that map time-series data into the time-frequency plane to deal with the above problems:
Wavelet transfrom
Short-time Fourier transfrom
Deep scattering network
Often not aligned with research task
Requires expert knowledge
Requires cross validation of parameters (e.g. size of wavelet)
Authors propose a data driven pipeline where this process is automated.
The bias in data leads to bias in models that use 'shortcuts' to perform a prediction task. Furthermore, most models assume that the training and test distribution are identical. Often, it is impossible for humans to identify every bias that exists in the dataset which makes it impossible to build completely unbiased data and associated models. The approach of the paper is to train a selection of intentionally biased models. In forcing the models to be biased in a different ways, this allows the final model to be less biased.
The main ideas of the paper are:
How to characterise bias: paper uses small receptive fields that overfit to certain local cues (e.g. local texture)
How to encode 'be different': paper achieves this through staticstical independence (witht he Hilbert-Schmidt independence criterion) capturing the idea that the unbiased model 'runs away' form the biased models.
Disentanglement is the task of learning a function that maps a high dimensional observation to a low dimensional representation. It relies on the assumption that observations are not actually high dimensional but a manifestation of low dimensional factors.
Authors present the theoretical result from the literature that the unsupervised learning of disentangled representation for arbitrary data is impossible. The authors present the practical observation from the literature that very little and imprecise explicit supervision seems to be enough to learn disentangled representations in practice.
The paper setup: Go from i.i.d to non-i.i.d observations by assuming access ot pairs of observations that share an unknown number of latent generating factors. This work is inspired by non leinear independent component analysis and develops the idea that "All the plausible aggregate posteriors are re-parametrisation of the true posterior up to a co-ordinate-wise change of variables and index permutations".
From this, the authors are able to do model selection without directly observing the factors of variatio and are able to extract disentangled representations.
Starts by asking the question, "are interpretable models really as interpretable as we may thimk", focuses on decision trees. How do we decide feature importance from a decision tree?
See if a feature is on the decision path
Check if feature is close to the root
See how different the expected value of the left subtree is from the right subtree
Highlights the difference between the functional and representational form of a model - lots of features depend on the structure of the tree. There are also consistency problems with expected value differences. Shapley values are more reliable but are exponentially complex to compute. Lundberg argues that for decision trees, we can compute Shapley values more efficiently. Lundberg then shows how we could go about reoresenting the global model structure with (a matrix of) local fetaure importances.
Lundberg asks the question, "why cant we just use a simple model?" and argues that with a simple model, we. put a high bias on the data having a linear relationship. If the data does not have a linear relationship then the resulting model is difficult to interpret. He then experiments with the idea that as we increase the non linearity of data and attempt to model linearly, how much weight is given to features we know are not responsible for the model.
Identifies two different types of latent factors in deep generative representations: latent units (e.g. convolution filters) and latent space (e.g. radnomly sampled vectors).
Questions how we can identify causality in latent space. Associated paper proposes to do this by aligning the latent space with the attribute space. The basic idea is to randomly sample latent vectors and use these to generate images from which, the authors use an off-the-shelf classifier to get a label for these generated images in the attribute space. The authors then use these labels to train the attribute classifier in latent space.
Identifies that semantic hierarchy emerges in deep generative representation for scene synthesis and images are generated in a similar way to humans. Furthermore, different semantic meaning can be assigned to different layers.


You're offlineClose the app, turn on mobile data or wifi, and then try again.
You've cancelled sign inSign in to continue.
Sorry, something went wrongPlease try again later.Show error details
Unsupported deviceInstall the application on an approved device
You're not authorised to use this appSpeak to your line manager if you want to use this app.If you think you’re already authorised, you can try to
sign inagain.
Unsupported application versionThis version of DES is out of datePlease get the latest version from the company portal


Cthulhupark Character Manager
Username or email address
Password
Stay logged in
Enter the mountains of madness
Lost your password? Click here to recover.


"There is a difference between productivity, and activity; but in order to have a product, one must be effectively, active. Finish this year; and make 2019 your best year, thus far! Happy New Year!"
#
remember
#
respect
#
finish
Catch Me!


<p> This is to test Highlight.<p>
The highlighters below have their brushes loaded dynamically as evident by looking at the <here /> of this HTML file.
<here />
function foo() { }


{% extends "gallery_template.html" %} {% import "macros/trade.html" as trade %} {% block main %}
A small panel with a background set and a slightly darker left border. Typically used to inform the user they need to do something, something happened or something went wrong.

This is a message

{% raw %}{{ trade.infostrip("Just a plain old infostrip, nothing to see here.")}}{% endraw %}
| Parameter | Required | Description |
|---|---|---|
| text | Y | The text to show in the panel |
| id | N | If you wish the infostrip to be assigned an ID pass it here |
| class | N | Pass an extra class value to add to the markup, e.g. selected |
| variation | N | In addition to the default grey style, there are variations. Currently the only varition if 'information', typically used after something has been updated. |


et to five ; locations below this. ; This routine is used when it is inconvenient to save these values at the ; time the calculator stack is manipulated due to other activity on the ; machine stack. ; This routine is also used to terminate the VAL and READ-IN routines for ; the same reason and to initialize the calculator stack at the start of ; the CALCULATE routine. ;; STK-PNTRS L35BF: LD HL,($5C65) ; fetch STKEND value from system variable. LD DE,$FFFB ; the value -5 PUSH HL ; push STKEND value. ADD HL,DE ; subtract 5 from HL. POP DE ; pop STKEND to DE. RET ; return. ; ------------------- ; THE 'CHR$' FUNCTION ; ------------------- ; (offset: $2f 'chr$') ; This function returns a single character string that is a result of ; converting a number in the range 0-255 to a string e.g. CHR$ 65 = "A". ;; chrs L35C9: CALL L2DD5 ; routine FP-TO-A puts the number in A. JR C,L35DC ; forward to REPORT-Bd if overflow JR NZ,L35DC ; forward to REPORT-Bd if negative PUSH AF ; save the argument. LD BC,$0001 ; one space required. RST 30H ; BC-SPACES makes DE point to start POP AF ; restore the number. LD (DE),A ; and store in workspace CALL L2AB2 ; routine STK-STO-$ stacks descriptor. EX DE,HL ; make HL point to result and DE to STKEND. RET ; return. ; --- ;; REPORT-Bd L35DC: RST 08H ; ERROR-1 DEFB $0A ; Error Report: Integer out of range ; ---------------------------- ; THE 'VAL and VAL$' FUNCTIONS ; ---------------------------- ; (offset: $1d 'val') ; (offset: $18 'val$') ; VAL treats the characters in a string as a numeric expression. ; e.g. VAL "2.3" = 2.3, VAL "2+4" = 6, VAL ("2" + "4") = 24. ; VAL$ treats the characters in a string as a string expression. ; e.g. VAL$ (z$+"(2)") = a$(2) if z$ happens to be "a$". ;; val ;; val$ L35DE: LD HL,($5C5D) ; fetch value of system variable CH_ADD PUSH HL ; and save on the machine stack. LD A,B ; fetch the literal (either $1D or $18). ADD A,$E3 ; add $E3 to form $00 (setting carry) or $FB. SBC A,A ; now form $FF bit 6 = numeric result ; or $00 bit 6 = string result. PUSH AF ; save this mask on the stack CALL L2BF1 ; routine STK-FETCH fetches the string operand ; from calculator stack. PUSH DE ; save the address of the start of the string. INC BC ; increment the length for a carriage return. RST 30H ; BC-SPACES creates the space in workspace. POP HL ; restore start of string to HL. LD ($5C5D),DE ; load CH_ADD with start DE in workspace. PUSH DE ; save the start in workspace LDIR ; copy string from program or variables or ; workspace to the workspace area. EX DE,HL ; end of string + 1 to HL DEC HL ; decrement HL to point to end of new area. LD (HL),$0D ; insert a carriage return at end. RES 7,(IY+$01) ; update FLAGS - signal checking syntax. CALL L24FB ; routine SCANNING evaluates string ; expression and result. RST 18H ; GET-CHAR fetches next character. CP $0D ; is it the expected carriage return ? JR NZ,L360C ; forward to V-RPORT-C if not ; 'Nonsense in BASIC'. POP HL ; restore start of string in workspace. POP AF ; restore expected result flag (bit 6). XOR (IY+$01) ; xor with FLAGS now updated by SCANNING. AND $40 ; test bit 6 - should be zero if result types ; match. ;; V-RPORT-C L360C: JP NZ,L1C8A ; jump back to REPORT-C with a result mismatch. LD ($5C5D),HL ; set CH_ADD to the start of the string again. SET 7,(IY+$01) ; update FLAGS - signal running program. CALL L24FB ; routine SCANNING evaluates the string ; in full leaving result on calculator stack. POP HL ; restore saved character address in program. LD ($5C5D),HL ; and reset the system variable CH_ADD. JR L35BF ; back to exit via STK-PNTRS. ; resetting the calculator stack pointers ; HL and DE from STKEND as it wasn't possible ; to preserve them during this routine. ; ------------------- ; THE 'STR$' FUNCTION ; ------------------- ; (offset: $2e 'str$') ; This function produces a string comprising the characters that would appear ; if the numeric argument were printed. ; e.g. STR$ (1/10) produces "0.1". ;; str$ L361F: LD BC,$0001 ; create an initial byte in workspace RST 30H ; using BC-SPACES restart. LD ($5C5B),HL ; set system variable K_CUR to new location. PUSH HL ; and save start on machine stack also. LD HL,($5C51) ; fetch value of system variable CURCHL PUSH HL ; and save that too. LD A,$FF ; select system channel 'R'. CALL L1601 ; routine CHAN-OPEN opens it. CALL L2DE3 ; routine PRINT-FP outputs the number to ; workspace updating K-CUR. POP HL ; restore current channel. CALL L1615 ; routine CHAN-FLAG resets flags. POP DE ; fetch saved start of string to DE. LD HL,($5C5B) ; load HL with end of string from K_CUR. AND A ; prepare for true subtraction. SBC HL,DE ; subtract start from end to give length. LD B,H ; transfer the length to LD C,L ; the BC register pair. CALL L2AB2 ; routine STK-STO-$ stores string parameters ; on the calculator stack. EX DE,HL ; HL = last value, DE = STKEND. RET ; return. ; ------------------------ ; THE 'READ-IN' SUBROUTINE ; ------------------------ ; (offset: $1a 'read-in') ; This is the calculator literal used by the INKEY$ function when a '#' ; is encountered after the keyword. ; INKEY$ # does not interact correctly with the keyboard, #0 or #1, and ; its uses are for other channels. ;; read-in L3645: CALL L1E94 ; routine FIND-INT1 fetches stream to A CP $10 ; compare with 16 decimal. JP NC,L1E9F ; JUMP to REPORT-Bb if not in range 0 - 15. ; 'Integer out of range' ; (REPORT-Bd is within range) LD HL,($5C51) ; fetch current channel CURCHL PUSH HL ; save it CALL L1601 ; routine CHAN-OPEN opens channel CALL L15E6 ; routine INPUT-AD - the channel must have an ; input stream or else error here from stream ; stub. LD BC,$0000 ; initialize length of string to zero JR NC,L365F ; forward to R-I-STORE if no key detected. INC C ; increase length to one. RST 30H ; BC-SPACES creates space for one character ; in workspace. LD (DE),A ; the character is inserted. ;; R-I-STORE L365F: CALL L2AB2 ; routine STK-STO-$ stacks the string ; parameters. POP HL ; restore current channel address CALL L1615 ; routine CHAN-FLAG resets current channel ; system variable and flags. JP L35BF ; jump back to STK-PNTRS ; ------------------- ; THE 'CODE' FUNCTION ; ------------------- ; (offset: $1c 'code') ; Returns the ASCII code of a character or first character of a string ; e.g. CODE "Aardvark" = 65, CODE "" = 0. ;; code L3669: CALL L2BF1 ; routine STK-FETCH to fetch and delete the ; string parameters. ; DE points to the start, BC holds the length. LD A,B ; test length OR C ; of the string. JR Z,L3671 ; skip to STK-CODE with zero if the null string. LD A,(DE) ; else fetch the first character. ;; STK-CODE L3671: JP L2D28 ; jump back to STACK-A (with memory check) ; ------------------ ; THE 'LEN' FUNCTION ; ------------------ ; (offset: $1e 'len') ; Returns the length of a string. ; In Sinclair BASIC strings can be more than twenty thousand characters long ; so a sixteen-bit register is required to store the length ;; len L3674: CALL L2BF1 ; Routine STK-FETCH to fetch and delete the ; string parameters from the calculator stack. ; Register BC now holds the length of string. JP L2D2B ; Jump back to STACK-BC to save result on the ; calculator stack (with memory check). ; ------------------------------------- ; THE 'DECREASE THE COUNTER' SUBROUTINE ; ------------------------------------- ; (offset: $35 'dec-jr-nz') ; The calculator has an instruction that decrements a single-byte ; pseudo-register and makes consequential relative jumps just like ; the Z80's DJNZ instruction. ;; dec-jr-nz L367A: EXX ; switch in set that addresses code PUSH HL ; save pointer to offset byte LD HL,$5C67 ; address BREG in system variables DEC (HL) ; decrement it POP HL ; restore pointer JR NZ,L3687 ; to JUMP-2 if not zero INC HL ; step past the jump length. EXX ; switch in the main set. RET ; return. ; Note. as a general rule the calculator avoids using the IY register ; otherwise the cumbersome 4 instructions in the middle could be replaced by ; dec (iy+$2d) - three bytes instead of six.  LD A,E ; transfer to accumulator. RLA ; if backward jump, carry is set. SBC A,A ; will be $FF if backward or $00 if forward. LD D,A ; transfer to high byte. ADD HL,DE ; advance calculator pointer forward or back. EXX ; switch back. RET ; return. ; -------------------------- ; THE 'JUMP-TRUE' SUBROUTINE ; -------------------------- ; (offset: $00 'jump-true') ; This enables the calculator to perform conditional relative jumps dependent ; on whether the last test gave a true result. ;; jump-true L368F: INC DE ; Collect the INC DE ; third byte LD A,(DE) ; of the test DEC DE ; result and DEC DE ; backtrack. AND A ; Is result 0 or 1 ? JR NZ,L3686 ; Back to JUMP if true (1). EXX ; Else switch in the pointer set. INC HL ; Step past the jump length. EXX ; Switch in the main set. RET ; Return. ; ------------------------- ; THE 'END-CALC' SUBROUTINE ; ------------------------- ; (offset: $38 'end-calc') ; The end-calc literal terminates a mini-program written in the Spectrum's ; internal language. ;; end-calc L369B: POP AF ; Drop the calculator return address RE-ENTRY EXX ; Switch to the other set. EX (SP),HL ; Transfer H'L' to machine stack for the ; return address. ; When exiting recursion, then the previous ; pointer is transferred to H'L'. EXX ; Switch back to main set. RET ; Return. ; ------------------------ ; THE 'MODULUS' SUBROUTINE ; ------------------------ ; (offset: $32 'n-mod-m') ; (n1,n2 -- r,q) ; Similar to FORTH's 'divide mod' /MOD ; On the Spectrum, this is only used internally by the RND function and could ; have been implemented inline. On the ZX81, this calculator routine was also ; used by PRINT-FP. ;; n-mod-m L36A0: RST 28H ;; FP-CALC 17, 3. DEFB $C0 ;;st-mem-0 17, 3. DEFB $02 ;;delete 17. DEFB $31 ;;duplicate 17, 17. DEFB $E0 ;;get-mem-0 17, 17, 3. DEFB $05 ;;division 17, 17/3. DEFB $27 ;;int 17, 5. DEFB $E0 ;;get-mem-0 17, 5, 3. DEFB $01 ;;exchange 17, 3, 5. DEFB $C0 ;;st-mem-0 17, 3, 5. DEFB $04 ;;multiply 17, 15. DEFB $03 ;;subtract 2. DEFB $E0 ;;get-mem-0 2, 5. DEFB $38 ;;end-calc 2, 5. RET ; return. ; ------------------ ; THE 'INT' FUNCTION ; ------------------ ; (offset $27: 'int' ) ; This function returns the integer of x, which is just the same as truncate ; for positive numbers. The truncate literal truncates negative numbers ; upwards so that -3.4 gives -3 whereas the BASIC INT function has to ; truncate negative numbers down so that INT -3.4 is -4. ; It is best to work through using, say, +-3.4 as examples. ;; int L36AF: RST 28H ;; FP-CALC x. (= 3.4 or -3.4). DEFB $31 ;;duplicate x, x. DEFB $36 ;;less-0 x, (1/0) DEFB $00 ;;jump-true x, (1/0) DEFB $04 ;;to L36B7, X-NEG DEFB $3A ;;truncate trunc 3.4 = 3. DEFB $38 ;;end-calc 3. RET ; return with + int x on stack. ; --- ;; X-NEG L36B7: DEFB $31 ;;duplicate -3.4, -3.4. DEFB $3A ;;truncate -3.4, -3. DEFB $C0 ;;st-mem-0 -3.4, -3. DEFB $03 ;;subtract -.4 DEFB $E0 ;;get-mem-0 -.4, -3. DEFB $01 ;;exchange -3, -.4. DEFB $30 ;;not -3, (0). DEFB $00 ;;jump-true -3. DEFB $03 ;;to L36C2, EXIT -3. DEFB $A1 ;;stk-one -3, 1. DEFB $03 ;;subtract -4. ;; EXIT L36C2: DEFB $38 ;;end-calc -4. RET ; return. ; ------------------ ; THE 'EXP' FUNCTION ; ------------------ ; (offset $26: 'exp') ; The exponential function EXP x is equal to e^x, where e is the mathematical ; name for a number approximated to 2.718281828. ; ERROR 6 if argument is more than about 88.  ; --- ;; RSLT-ZERO L370E: RST 28H ;; FP-CALC DEFB $02 ;;delete DEFB $A0 ;;stk-zero DEFB $38 ;;end-calc RET ; return. ; -------------------------------- ; THE 'NATURAL LOGARITHM' FUNCTION ; -------------------------------- ; (offset $25: 'ln') ; Function to calculate the natural logarithm (to the base e ). ; Natural logarithms were devised in 1614 by well-traveled Scotsman John ; Napier who noted ; "Nothing doth more molest and hinder calculators than the multiplications, ; divisions, square and cubical extractions of great numbers". ; ; Napier's logarithms enabled the above operations to be accomplished by ; simple addition and subtraction simplifying the navigational and ; astronomical calculations which beset his age. ; Napier's logarithms were quickly overtaken by logarithms to the base 10 ; devised, in conjunction with Napier, by Henry Briggs a Cambridge-educated ; professor of Geometry at Oxford University. These simplified the layout ; of the tables enabling humans to easily scale calculations. ; ; It is only recently with the introduction of pocket calculators and machines ; like the ZX Spectrum that natural logarithms are once more at the fore, ; although some computers retain logarithms to the base ten. ; ; 'Natural' logarithms are powers to the base 'e', which like 'pi' is a ; naturally occurring number in branches of mathematics. ; Like 'pi' also, 'e' is an irrational number and starts 2.718281828... ; ; The tabular use of logarithms was that to multiply two numbers one looked ; up their two logarithms in the tables, added them together and then looked ; for the result in a table of antilogarithms to give the desired product. ; ; The EXP function is the BASIC equivalent of a calculator's 'antiln' function ; and by picking any two numbers, 1.72 and 6.89 say, ; 10 PRINT EXP ( LN 1.72 + LN 6.89 ) ; will give just the same result as ; 20 PRINT 1.72 * 6.89. ; Division is accomplished by subtracting the two logs. ; ; Napier also mentioned "square and cubicle extractions". ; To raise a number to the power 3, find its 'ln', multiply by 3 and find the ; 'antiln'. e.g. PRINT EXP( LN 4 * 3 ) gives 64. ; Similarly to find the n'th root divide the logarithm by 'n'. ; The ZX81 ROM used PRINT EXP ( LN 9 / 2 ) to find the square root of the ; number 9. The Napieran square root function is just a special case of ; the 'to_power' function. A cube root or indeed any root/power would be just ; as simple. ; First test that the argument to LN is a positive, non-zero number. ; Error A if the argument is 0 or negative. ;; ln L3713: RST 28H ;; FP-CALC DEFB $3D ;;re-stack DEFB $31 ;;duplicate DEFB $37 ;;greater-0 DEFB $00 ;;jump-true DEFB $04 ;;to L371C, VALID DEFB $38 ;;end-calc ;; REPORT-Ab L371A: RST 08H ; ERROR-1 DEFB $09 ; Error Report: Invalid argument ;; VALID L371C: DEFB $A0 ;;stk-zero Note. not DEFB $02 ;;delete necessary.  ; ----------------------------- ; THE 'TRIGONOMETRIC' FUNCTIONS ; ----------------------------- ; Trigonometry is rocket science. It is also used by carpenters and pyramid ; builders. ; Some uses can be quite abstract but the principles can be seen in simple ; right-angled triangles. Triangles have some special properties - ; ; 1) The sum of the three angles is always PI radians (180 degrees). ; Very helpful if you know two angles and wish to find the third. ; 2) In any right-angled triangle the sum of the squares of the two shorter ; sides is equal to the square of the longest side opposite the right-angle. ; Very useful if you know the length of two sides and wish to know the ; length of the third side. ; 3) Functions sine, cosine and tangent enable one to calculate the length ; of an unknown side when the length of one other side and an angle is ; known. ; 4) Functions arcsin, arccosine and arctan enable one to calculate an unknown ; angle when the length of two of the sides is known. ; -------------------------------- ; THE 'REDUCE ARGUMENT' SUBROUTINE ; -------------------------------- ; (offset $39: 'get-argt') ; ; This routine performs two functions on the angle, in radians, that forms ; the argument to the sine and cosine functions. ; First it ensures that the angle 'wraps round'. That if a ship turns through ; an angle of, say, 3*PI radians (540 degrees) then the net effect is to turn ; through an angle of PI radians (180 degrees). ; Secondly it converts the angle in radians to a fraction of a right angle, ; depending within which quadrant the angle lies, with the periodicity ; resembling that of the desired sine value. ; The result lies in the range -1 to +1. ; ; 90 deg. ; ; (pi/2) ; II +1 I ; | ; sin+ |\ | /| sin+ ; cos- | \ | / | cos+ ; tan- | \ | / | tan+ ; | \|/) | ; 180 deg. (pi) 0 -|----+----|-- 0 (0) 0 degrees ; | /|\ | ; sin- | / | \ | sin- ; cos- | / | \ | cos+ ; tan+ |/ | \| tan- ; | ; III -1 IV ; (3pi/2) ; ; 270 deg. ; ;; get-argt L3783: RST 28H ;; FP-CALC X. DEFB $3D ;;re-stack (not rquired done by mult) DEFB $34 ;;stk-data DEFB $EE ;;Exponent: $7E, ;;Bytes: 4 DEFB $22,$F9,$83,$6E ;; X, 1/(2*PI) DEFB $04 ;;multiply X/(2*PI) = fraction DEFB $31 ;;duplicate DEFB $A2 ;;stk-half DEFB $0F ;;addition DEFB $27 ;;int DEFB $03 ;;subtract now range -.5 to .5 DEFB $31 ;;duplicate DEFB $0F ;;addition now range -1 to 1. DEFB $31 ;;duplicate DEFB $0F ;;addition now range -2 to +2. ; quadrant I (0 to +1) and quadrant IV (-1 to 0) are now correct. ; quadrant II ranges +1 to +2. ; quadrant III ranges -2 to -1. DEFB $31 ;;duplicate Y, Y. DEFB $2A ;;abs Y, abs(Y). range 1 to 2 DEFB $A1 ;;stk-one Y, abs(Y), 1. DEFB $03 ;;subtract Y, abs(Y)-1. range 0 to 1 DEFB $31 ;;duplicate Y, Z, Z. DEFB $37 ;;greater-0 Y, Z, (1/0). DEFB $C0 ;;st-mem-0 store as possible sign ;; for cosine function. DEFB $00 ;;jump-true DEFB $04 ;;to L37A1, ZPLUS with quadrants II and III. ; else the angle lies in quadrant I or IV and value Y is already correct. DEFB $02 ;;delete Y. delete the test value. DEFB $38 ;;end-calc Y. RET ; return. with Q1 and Q4 >>> ; --- ; the branch was here with quadrants II (0 to 1) and III (1 to 0). ; Y will hold -2 to -1 if this is quadrant III. ;; ZPLUS L37A1: DEFB $A1 ;;stk-one Y, Z, 1. DEFB $03 ;;subtract Y, Z-1. Q3 = 0 to -1 DEFB $01 ;;exchange Z-1, Y. DEFB $36 ;;less-0 Z-1, (1/0). DEFB $00 ;;jump-true Z-1. DEFB $02 ;;to L37A8, YNEG ;;if angle in quadrant III ; else angle is within quadrant II (-1 to 0) DEFB $1B ;;negate range +1 to 0. ;; YNEG L37A8: DEFB $38 ;;end-calc quadrants II and III correct. RET ; return. ; --------------------- ; THE 'COSINE' FUNCTION ; --------------------- ; (offset $20: 'cos') ; Cosines are calculated as the sine of the opposite angle rectifying the ; sign depending on the quadrant rules. ; ; ; /| ; h /y| ; / |o ; /x | ; /----| ; a ; ; The cosine of angle x is the adjacent side (a) divided by the hypotenuse 1. ; However if we examine angle y then a/h is the sine of that angle. ; Since angle x plus angle y equals a right-angle, we can find angle y by ; subtracting angle x from pi/2. ; However it's just as easy to reduce the argument first and subtract the ; reduced argument from the value 1 (a reduced right-angle). ; It's even easier to subtract 1 from the angle and rectify the sign. ; In fact, after reducing the argument, the absolute value of the argument ; is used and rectified using the test result stored in mem-0 by 'get-argt' ; for that purpose. ; ;; cos L37AA: RST 28H ;; FP-CALC angle in radians. DEFB $39 ;;get-argt X reduce -1 to +1 DEFB $2A ;;abs ABS X. 0 to 1 DEFB $A1 ;;stk-one ABS X, 1. DEFB $03 ;;subtract now opposite angle ;; although sign is -ve. DEFB $E0 ;;get-mem-0 fetch the sign indicator DEFB $00 ;;jump-true DEFB $06 ;;fwd to L37B7, C-ENT ;;forward to common code if in QII or QIII. DEFB $1B ;;negate else make sign +ve. DEFB $33 ;;jump DEFB $03 ;;fwd to L37B7, C-ENT ;; with quadrants I and IV. ; ------------------- ; THE 'SINE' FUNCTION ; ------------------- ; (offset $1F: 'sin') ; This is a fundamental transcendental function from which others such as cos ; and tan are directly, or indirectly, derived. ; It uses the series generator to produce Chebyshev polynomials. ; ; ; /| ; 1 / | ; / |x ; /a | ; /----| ; y ; ; The 'get-argt' function is designed to modify the angle and its sign ; in line with the desired sine value and afterwards it can launch straight ; into common code. ;; sin L37B5: RST 28H ;; FP-CALC angle in radians DEFB $39 ;;get-argt reduce - sign now correct. ;; C-ENT L37B7: DEFB $31 ;;duplicate DEFB $31 ;;duplicate DEFB $04 ;;multiply DEFB $31 ;;duplicate DEFB $0F ;;addition DEFB $A1 ;;stk-one DEFB $03 ;;subtract DEFB $86 ;;series-06 DEFB $14 ;;Exponent: $64, Bytes: 1 DEFB $E6 ;;(+00,+00,+00) DEFB $5C ;;Exponent: $6C, Bytes: 2 DEFB $1F,$0B ;;(+00,+00) DEFB $A3 ;;Exponent: $73, Bytes: 3 DEFB $8F,$38,$EE ;;(+00) DEFB $E9 ;;Exponent: $79, Bytes: 4 DEFB $15,$63,$BB,$23 ;; DEFB $EE ;;Exponent: $7E, Bytes: 4 DEFB $92,$0D,$CD,$ED ;; DEFB $F1 ;;Exponent: $81, Bytes: 4 DEFB $23,$5D,$1B,$EA ;; DEFB $04 ;;multiply DEFB $38 ;;end-calc RET ; return. ; ---------------------- ; THE 'TANGENT' FUNCTION ; ---------------------- ; (offset $21: 'tan') ; ; Evaluates tangent x as sin(x) / cos(x). ; ; ; /| ; h / | ; / |o ; /x | ; /----| ; a ; ; the tangent of angle x is the ratio of the length of the opposite side ; divided by the length of the adjacent side. As the opposite length can ; be calculates using sin(x) and the adjacent length using cos(x) then ; the tangent can be defined in terms of the previous two functions. ; Error 6 if the argument, in radians, is too close to one like pi/2 ; which has an infinite tangent. e.g. PRINT TAN (PI/2) evaluates as 1/0. ; Similarly PRINT TAN (3*PI/2), TAN (5*PI/2) etc. ;; tan L37DA: RST 28H ;; FP-CALC x. DEFB $31 ;;duplicate x, x. DEFB $1F ;;sin x, sin x. DEFB $01 ;;exchange sin x, x. DEFB $20 ;;cos sin x, cos x. DEFB $05 ;;division sin x/cos x (= tan x). DEFB $38 ;;end-calc tan x. RET ; return. ; --------------------- ; THE 'ARCTAN' FUNCTION ; --------------------- ; (Offset $24: 'atn') ; the inverse tangent function with the result in radians. ; This is a fundamental transcendental function from which others such as asn ; and acs are directly, or indirectly, derived. ; It uses the series generator to produce Chebyshev polynomials. ;; atn L37E2: CALL L3297 ; routine re-stack LD A,(HL) ; fetch exponent byte.  ; --------------------- ; THE 'ARCSIN' FUNCTION ; --------------------- ; (Offset $22: 'asn') ; The inverse sine function with result in radians. ; Derived from arctan function above. ; Error A unless the argument is between -1 and +1 inclusive. ; Uses an adaptation of the formula asn(x) = atn(x/sqr(1-x*x)) ; ; ; /| ; / | ; 1/ |x ; /a | ; /----| ; y ; ; e.g. We know the opposite side (x) and hypotenuse (1) ; and we wish to find angle a in radians. ; We can derive length y by Pythagoras and then use ATN instead. ; Since y*y + x*x = 1*1 (Pythagoras Theorem) then ; y=sqr(1-x*x) - no need to multiply 1 by itself. ; So, asn(a) = atn(x/y) ; or more fully, ; asn(a) = atn(x/sqr(1-x*x)) ; Close but no cigar. ; While PRINT ATN (x/SQR (1-x*x)) gives the same results as PRINT ASN x, ; it leads to division by zero when x is 1 or -1. ; To overcome this, 1 is added to y giving half the required angle and the ; result is then doubled. ; That is, PRINT ATN (x/(SQR (1-x*x) +1)) *2 ; ; GEOMETRIC PROOF. ; ; ; . /| ; . c/ | ; . /1 |x ; . c b /a | ; ---------/----| ; 1 y ; ; By creating an isosceles triangle with two equal sides of 1, angles c and ; c are also equal. If b+c+c = 180 degrees and b+a = 180 degrees then c=a/2. ; ; A value higher than 1 gives the required error as attempting to find the ; square root of a negative number generates an error in Sinclair BASIC. ;; asn L3833: RST 28H ;; FP-CALC x. DEFB $31 ;;duplicate x, x. DEFB $31 ;;duplicate x, x, x. DEFB $04 ;;multiply x, x*x. DEFB $A1 ;;stk-one x, x*x, 1. DEFB $03 ;;subtract x, x*x-1. DEFB $1B ;;negate x, 1-x*x. DEFB $28 ;;sqr x, sqr(1-x*x) = y DEFB $A1 ;;stk-one x, y, 1. DEFB $0F ;;addition x, y+1. DEFB $05 ;;division x/y+1. DEFB $24 ;;atn a/2 (half the angle) DEFB $31 ;;duplicate a/2, a/2. DEFB $0F ;;addition a. DEFB $38 ;;end-calc a. RET ; return. ; --------------------- ; THE 'ARCCOS' FUNCTION ; --------------------- ; (Offset $23: 'acs') ; the inverse cosine function with the result in radians. ; Error A unless the argument is between -1 and +1. ; Result in range 0 to pi. ; Derived from asn above which is in turn derived from the preceding atn. ; It could have been derived directly from atn using acs(x) = atn(sqr(1-x*x)/x). ; However, as sine and cosine are horizontal translations of each other, ; uses acs(x) = pi/2 - asn(x) ; e.g. the arccosine of a known x value will give the required angle b in ; radians. ; We know, from above, how to calculate the angle a using asn(x). ; Since the three angles of any triangle add up to 180 degrees, or pi radians, ; and the largest angle in this case is a right-angle (pi/2 radians), then ; we can calculate angle b as pi/2 (both angles) minus asn(x) (angle a). ; ; ; /| ; 1 /b| ; / |x ; /a | ; /----| ; y ; ;; acs L3843: RST 28H ;; FP-CALC x. DEFB $22 ;;asn asn(x). DEFB $A3 ;;stk-pi/2 asn(x), pi/2. DEFB $03 ;;subtract asn(x) - pi/2. DEFB $1B ;;negate pi/2 -asn(x) = acs(x). DEFB $38 ;;end-calc acs(x). RET ; return. ; -------------------------- ; THE 'SQUARE ROOT' FUNCTION ; -------------------------- ; (Offset $28: 'sqr') ; This routine is remarkable for its brevity - 7 bytes. ; It wasn't written here but in the ZX81 where the programmers had to squeeze ; a bulky operating system into an 8K ROM. It simply calculates ; the square root by stacking the value .5 and continuing into the 'to-power' ; routine. With more space available the much faster Newton-Raphson method ; could have been used as on the Jupiter Ace. ;; sqr L384A: RST 28H ;; FP-CALC DEFB $31 ;;duplicate DEFB $30 ;;not DEFB $00 ;;jump-true DEFB $1E ;;to L386C, LAST DEFB $A2 ;;stk-half DEFB $38 ;;end-calc ; ------------------------------ ; THE 'EXPONENTIATION' OPERATION ; ------------------------------ ; (Offset $06: 'to-power') ; This raises the first number X to the power of the second number Y. ; As with the ZX80, ; 0 ^ 0 = 1. ; 0 ^ +n = 0. ; 0 ^ -n = arithmetic overflow. ; ;; to-power L3851: RST 28H ;; FP-CALC X, Y. DEFB $01 ;;exchange Y, X. DEFB $31 ;;duplicate Y, X, X. DEFB $30 ;;not Y, X, (1/0). DEFB $00 ;;jump-true DEFB $07 ;;to L385D, XIS0 if X is zero. ; else X is non-zero. Function 'ln' will catch a negative value of X. DEFB $25 ;;ln Y, LN X. DEFB $04 ;;multiply Y * LN X. DEFB $38 ;;end-calc JP L36C4 ; jump back to EXP routine -> ; --- ; these routines form the three simple results when the number is zero. ; begin by deleting the known zero to leave Y the power factor. ;; XIS0 L385D: DEFB $02 ;;delete Y. DEFB $31 ;;duplicate Y, Y. DEFB $30 ;;not Y, (1/0). DEFB $00 ;;jump-true DEFB $09 ;;to L386A, ONE if Y is zero. DEFB $A0 ;;stk-zero Y, 0. DEFB $01 ;;exchange 0, Y. DEFB $37 ;;greater-0 0, (1/0). DEFB $00 ;;jump-true 0. DEFB $06 ;;to L386C, LAST if Y was any positive ;; number. ; else force division by zero thereby raising an Arithmetic overflow error. ; There are some one and two-byte alternatives but perhaps the most formal ; might have been to use end-calc; rst 08; defb 05. DEFB $A1 ;;stk-one 0, 1. DEFB $01 ;;exchange 1, 0. DEFB $05 ;;division 1/0 ouch! ; --- ;; ONE L386A: DEFB $02 ;;delete . DEFB $A1 ;;stk-one 1. ;; LAST L386C: DEFB $38 ;;end-calc last value is 1 or 0. RET ; return. ; "Everything should be made as simple as possible, but not simpler" ; - Albert Einstein, 1879-1955.  CHR$(33) DEFB %00000000 DEFB %00010000 DEFB %00010000 DEFB %00010000 DEFB %00010000 DEFB %00000000 DEFB %00010000 DEFB %00000000 ; $22 - Character: '"' CHR$(34) DEFB %00000000 DEFB %00100100 DEFB %00100100 DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00000000 ; $23 - Character: '#' CHR$(35) DEFB %00000000 DEFB %00100100 DEFB %01111110 DEFB %00100100 DEFB %00100100 DEFB %01111110 DEFB %00100100 DEFB %00000000 ; $24 - Character: '$' CHR$(36) DEFB %00000000 DEFB %00001000 DEFB %00111110 DEFB %00101000 DEFB %00111110 DEFB %00001010 DEFB %00111110 DEFB %00001000 ; $25 - Character: '%' CHR$(37) DEFB %00000000 DEFB %01100010 DEFB %01100100 DEFB %00001000 DEFB %00010000 DEFB %00100110 DEFB %01000110 DEFB %00000000 ; $26 - Character: '&' CHR$(38) DEFB %00000000 DEFB %00010000 DEFB %00101000 DEFB %00010000 DEFB %00101010 DEFB %01000100 DEFB %00111010 DEFB %00000000 ; $27 - Character: ''' CHR$(39) DEFB %00000000 DEFB %00001000 DEFB %00010000 DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00000000 ; $28 - Character: '(' CHR$(40) DEFB %00000000 DEFB %00000100 DEFB %00001000 DEFB %00001000 DEFB %00001000 DEFB %00001000 DEFB %00000100 DEFB %00000000 ; $29 - Character: ')' CHR$(41) DEFB %00000000 DEFB %00100000 DEFB %00010000 DEFB %00010000 DEFB %00010000 DEFB %00010000 DEFB %00100000 DEFB %00000000 ; $2A - Character: '*' CHR$(42) DEFB %00000000 DEFB %00000000 DEFB %00010100 DEFB %00001000 DEFB %00111110 DEFB %00001000 DEFB %00010100 DEFB %00000000 ; $2B - Character: '+' CHR$(43) DEFB %00000000 DEFB %00000000 DEFB %00001000 DEFB %00001000 DEFB %00111110 DEFB %00001000 DEFB %00001000 DEFB %00000000 ; $2C - Character: ',' CHR$(44) DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00001000 DEFB %00001000 DEFB %00010000 ; $2D - Character: '-' CHR$(45) DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00111110 DEFB %00000000 DEFB %00000000 DEFB %00000000 ; $2E - Character: '.' CHR$(46) DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00011000 DEFB %00011000 DEFB %00000000 ; $2F - Character: '/' CHR$(47) DEFB %00000000 DEFB %00000000 DEFB %00000010 DEFB %00000100 DEFB %00001000 DEFB %00010000 DEFB %00100000 DEFB %00000000 ; $30 - Character: '0' CHR$(48) DEFB %00000000 DEFB %00111100 DEFB %01000110 DEFB %01001010 DEFB %01010010 DEFB %01100010 DEFB %00111100 DEFB %00000000 ; $31 - Character: '1' CHR$(49) DEFB %00000000 DEFB %00011000 DEFB %00101000 DEFB %00001000 DEFB %00001000 DEFB %00001000 DEFB %00111110 DEFB %00000000 ; $32 - Character: '2' CHR$(50) DEFB %00000000 DEFB %00111100 DEFB %01000010 DEFB %00000010 DEFB %00111100 DEFB %01000000 DEFB %01111110 DEFB %00000000 ; $33 - Character: '3' CHR$(51) DEFB %00000000 DEFB %00111100 DEFB %01000010 DEFB %00001100 DEFB %00000010 DEFB %01000010 DEFB %00111100 DEFB %00000000 ; $34 - Character: '4' CHR$(52) DEFB %00000000 DEFB %00001000 DEFB %00011000 DEFB %00101000 DEFB %01001000 DEFB %01111110 DEFB %00001000 DEFB %00000000 ; $35 - Character: '5' CHR$(53) DEFB %00000000 DEFB %01111110 DEFB %01000000 DEFB %01111100 DEFB %00000010 DEFB %01000010 DEFB %00111100 DEFB %00000000 ; $36 - Character: '6' CHR$(54) DEFB %00000000 DEFB %00111100 DEFB %01000000 DEFB %01111100 DEFB %01000010 DEFB %01000010 DEFB %00111100 DEFB %00000000 ; $37 - Character: '7' CHR$(55) DEFB %00000000 DEFB %01111110 DEFB %00000010 DEFB %00000100 DEFB %00001000 DEFB %00010000 DEFB %00010000 DEFB %00000000 ; $38 - Character: '8' CHR$(56) DEFB %00000000 DEFB %00111100 DEFB %01000010 DEFB %00111100 DEFB %01000010 DEFB %01000010 DEFB %00111100 DEFB %00000000 ; $39 - Character: '9' CHR$(57) DEFB %00000000 DEFB %00111100 DEFB %01000010 DEFB %01000010 DEFB %00111110 DEFB %00000010 DEFB %00111100 DEFB %00000000 ; $3A - Character: ':' CHR$(58) DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00010000 DEFB %00000000 DEFB %00000000 DEFB %00010000 DEFB %00000000 ; $3B - Character: ';' CHR$(59) DEFB %00000000 DEFB %00000000 DEFB %00010000 DEFB %00000000 DEFB %00000000 DEFB %00010000 DEFB %00010000 DEFB %00100000 ; $3C - Character: '<' CHR$(60) DEFB %00000000 DEFB %00000000 DEFB %00000100 DEFB %00001000 DEFB %00010000 DEFB %00001000 DEFB %00000100 DEFB %00000000 ; $3D - Character: '=' CHR$(61) DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00111110 DEFB %00000000 DEFB %00111110 DEFB %00000000 DEFB %00000000 ; $3E - Character: '>' CHR$(62) DEFB %00000000 DEFB %00000000 DEFB %00010000 DEFB %00001000 DEFB %00000100 DEFB %00001000 DEFB %00010000 DEFB %00000000 ; $3F - Character: '?' CHR$(63) DEFB %00000000 DEFB %00111100 DEFB %01000010 DEFB %00000100 DEFB %00001000 DEFB %00000000 DEFB %00001000 DEFB %00000000 ; $40 - Character: '@' CHR$(64) DEFB %00000000 DEFB %00111100 DEFB %01001010 DEFB %01010110 DEFB %01011110 DEFB %01000000 DEFB %00111100 DEFB %00000000 ; $41 - Character: 'A' CHR$(65) DEFB %00000000 DEFB %00111100 DEFB %01000010 DEFB %01000010 DEFB %01111110 DEFB %01000010 DEFB %01000010 DEFB %00000000 ; $42 - Character: 'B' CHR$(66) DEFB %00000000 DEFB %01111100 DEFB %01000010 DEFB %01111100 DEFB %01000010 DEFB %01000010 DEFB %01111100 DEFB %00000000 ; $43 - Character: 'C' CHR$(67) DEFB %00000000 DEFB %00111100 DEFB %01000010 DEFB %01000000 DEFB %01000000 DEFB %01000010 DEFB %00111100 DEFB %00000000 ; $44 - Character: 'D' CHR$(68) DEFB %00000000 DEFB %01111000 DEFB %01000100 DEFB %01000010 DEFB %01000010 DEFB %01000100 DEFB %01111000 DEFB %00000000 ; $45 - Character: 'E' CHR$(69) DEFB %00000000 DEFB %01111110 DEFB %01000000 DEFB %01111100 DEFB %01000000 DEFB %01000000 DEFB %01111110 DEFB %00000000 ; $46 - Character: 'F' CHR$(70) DEFB %00000000 DEFB %01111110 DEFB %01000000 DEFB %01111100 DEFB %01000000 DEFB %01000000 DEFB %01000000 DEFB %00000000 ; $47 - Character: 'G' CHR$(71) DEFB %00000000 DEFB %00111100 DEFB %01000010 DEFB %01000000 DEFB %01001110 DEFB %01000010 DEFB %00111100 DEFB %00000000 ; $48 - Character: 'H' CHR$(72) DEFB %00000000 DEFB %01000010 DEFB %01000010 DEFB %01111110 DEFB %01000010 DEFB %01000010 DEFB %01000010 DEFB %00000000 ; $49 - Character: 'I' CHR$(73) DEFB %00000000 DEFB %00111110 DEFB %00001000 DEFB %00001000 DEFB %00001000 DEFB %00001000 DEFB %00111110 DEFB %00000000 ; $4A - Character: 'J' CHR$(74) DEFB %00000000 DEFB %00000010 DEFB %00000010 DEFB %00000010 DEFB %01000010 DEFB %01000010 DEFB %00111100 DEFB %00000000 ; $4B - Character: 'K' CHR$(75) DEFB %00000000 DEFB %01000100 DEFB %01001000 DEFB %01110000 DEFB %01001000 DEFB %01000100 DEFB %01000010 DEFB %00000000 ; $4C - Character: 'L' CHR$(76) DEFB %00000000 DEFB %01000000 DEFB %01000000 DEFB %01000000 DEFB %01000000 DEFB %01000000 DEFB %01111110 DEFB %00000000 ; $4D - Character: 'M' CHR$(77) DEFB %00000000 DEFB %01000010 DEFB %01100110 DEFB %01011010 DEFB %01000010 DEFB %01000010 DEFB %01000010 DEFB %00000000 ; $4E - Character: 'N' CHR$(78) DEFB %00000000 DEFB %01000010 DEFB %01100010 DEFB %01010010 DEFB %01001010 DEFB %01000110 DEFB %01000010 DEFB %00000000 ; $4F - Character: 'O' CHR$(79) DEFB %00000000 DEFB %00111100 DEFB %01000010 DEFB %01000010 DEFB %01000010 DEFB %01000010 DEFB %00111100 DEFB %00000000 ; $50 - Character: 'P' CHR$(80) DEFB %00000000 DEFB %01111100 DEFB %01000010 DEFB %01000010 DEFB %01111100 DEFB %01000000 DEFB %01000000 DEFB %00000000 ; $51 - Character: 'Q' CHR$(81) DEFB %00000000 DEFB %00111100 DEFB %01000010 DEFB %01000010 DEFB %01010010 DEFB %01001010 DEFB %00111100 DEFB %00000000 ; $52 - Character: 'R' CHR$(82) DEFB %00000000 DEFB %01111100 DEFB %01000010 DEFB %01000010 DEFB %01111100 DEFB %01000100 DEFB %01000010 DEFB %00000000 ; $53 - Character: 'S' CHR$(83) DEFB %00000000 DEFB %00111100 DEFB %01000000 DEFB %00111100 DEFB %00000010 DEFB %01000010 DEFB %00111100 DEFB %00000000 ; $54 - Character: 'T' CHR$(84) DEFB %00000000 DEFB %11111110 DEFB %00010000 DEFB %00010000 DEFB %00010000 DEFB %00010000 DEFB %00010000 DEFB %00000000 ; $55 - Character: 'U' CHR$(85) DEFB %00000000 DEFB %01000010 DEFB %01000010 DEFB %01000010 DEFB %01000010 DEFB %01000010 DEFB %00111100 DEFB %00000000 ; $56 - Character: 'V' CHR$(86) DEFB %00000000 DEFB %01000010 DEFB %01000010 DEFB %01000010 DEFB %01000010 DEFB %00100100 DEFB %00011000 DEFB %00000000 ; $57 - Character: 'W' CHR$(87) DEFB %00000000 DEFB %01000010 DEFB %01000010 DEFB %01000010 DEFB %01000010 DEFB %01011010 DEFB %00100100 DEFB %00000000 ; $58 - Character: 'X' CHR$(88) DEFB %00000000 DEFB %01000010 DEFB %00100100 DEFB %00011000 DEFB %00011000 DEFB %00100100 DEFB %01000010 DEFB %00000000 ; $59 - Character: 'Y' CHR$(89) DEFB %00000000 DEFB %10000010 DEFB %01000100 DEFB %00101000 DEFB %00010000 DEFB %00010000 DEFB %00010000 DEFB %00000000 ; $5A - Character: 'Z' CHR$(90) DEFB %00000000 DEFB %01111110 DEFB %00000100 DEFB %00001000 DEFB %00010000 DEFB %00100000 DEFB %01111110 DEFB %00000000 ; $5B - Character: '[' CHR$(91) DEFB %00000000 DEFB %00001110 DEFB %00001000 DEFB %00001000 DEFB %00001000 DEFB %00001000 DEFB %00001110 DEFB %00000000 ; $5C - Character: '\' CHR$(92) DEFB %00000000 DEFB %00000000 DEFB %01000000 DEFB %00100000 DEFB %00010000 DEFB %00001000 DEFB %00000100 DEFB %00000000 ; $5D - Character: ']' CHR$(93) DEFB %00000000 DEFB %01110000 DEFB %00010000 DEFB %00010000 DEFB %00010000 DEFB %00010000 DEFB %01110000 DEFB %00000000 ; $5E - Character: '^' CHR$(94) DEFB %00000000 DEFB %00010000 DEFB %00111000 DEFB %01010100 DEFB %00010000 DEFB %00010000 DEFB %00010000 DEFB %00000000 ; $5F - Character: '_' CHR$(95) DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %11111111 ; $60 - Character: ' £ ' CHR$(96) DEFB %00000000 DEFB %00011100 DEFB %00100010 DEFB %01111000 DEFB %00100000 DEFB %00100000 DEFB %01111110 DEFB %00000000 ; $61 - Character: 'a' CHR$(97) DEFB %00000000 DEFB %00000000 DEFB %00111000 DEFB %00000100 DEFB %00111100 DEFB %01000100 DEFB %00111100 DEFB %00000000 ; $62 - Character: 'b' CHR$(98) DEFB %00000000 DEFB %00100000 DEFB %00100000 DEFB %00111100 DEFB %00100010 DEFB %00100010 DEFB %00111100 DEFB %00000000 ; $63 - Character: 'c' CHR$(99) DEFB %00000000 DEFB %00000000 DEFB %00011100 DEFB %00100000 DEFB %00100000 DEFB %00100000 DEFB %00011100 DEFB %00000000 ; $64 - Character: 'd' CHR$(100) DEFB %00000000 DEFB %00000100 DEFB %00000100 DEFB %00111100 DEFB %01000100 DEFB %01000100 DEFB %00111100 DEFB %00000000 ; $65 - Character: 'e' CHR$(101) DEFB %00000000 DEFB %00000000 DEFB %00111000 DEFB %01000100 DEFB %01111000 DEFB %01000000 DEFB %00111100 DEFB %00000000 ; $66 - Character: 'f' CHR$(102) DEFB %00000000 DEFB %00001100 DEFB %00010000 DEFB %00011000 DEFB %00010000 DEFB %00010000 DEFB %00010000 DEFB %00000000 ; $67 - Character: 'g' CHR$(103) DEFB %00000000 DEFB %00000000 DEFB %00111100 DEFB %01000100 DEFB %01000100 DEFB %00111100 DEFB %00000100 DEFB %00111000 ; $68 - Character: 'h' CHR$(104) DEFB %00000000 DEFB %01000000 DEFB %01000000 DEFB %01111000 DEFB %01000100 DEFB %01000100 DEFB %01000100 DEFB %00000000 ; $69 - Character: 'i' CHR$(105) DEFB %00000000 DEFB %00010000 DEFB %00000000 DEFB %00110000 DEFB %00010000 DEFB %00010000 DEFB %00111000 DEFB %00000000 ; $6A - Character: 'j' CHR$(106) DEFB %00000000 DEFB %00000100 DEFB %00000000 DEFB %00000100 DEFB %00000100 DEFB %00000100 DEFB %00100100 DEFB %00011000 ; $6B - Character: 'k' CHR$(107) DEFB %00000000 DEFB %00100000 DEFB %00101000 DEFB %00110000 DEFB %00110000 DEFB %00101000 DEFB %00100100 DEFB %00000000 ; $6C - Character: 'l' CHR$(108) DEFB %00000000 DEFB %00010000 DEFB %00010000 DEFB %00010000 DEFB %00010000 DEFB %00010000 DEFB %00001100 DEFB %00000000 ; $6D - Character: 'm' CHR$(109) DEFB %00000000 DEFB %00000000 DEFB %01101000 DEFB %01010100 DEFB %01010100 DEFB %01010100 DEFB %01010100 DEFB %00000000 ; $6E - Character: 'n' CHR$(110) DEFB %00000000 DEFB %00000000 DEFB %01111000 DEFB %01000100 DEFB %01000100 DEFB %01000100 DEFB %01000100 DEFB %00000000 ; $6F - Character: 'o' CHR$(111) DEFB %00000000 DEFB %00000000 DEFB %00111000 DEFB %01000100 DEFB %01000100 DEFB %01000100 DEFB %00111000 DEFB %00000000 ; $70 - Character: 'p' CHR$(112) DEFB %00000000 DEFB %00000000 DEFB %01111000 DEFB %01000100 DEFB %01000100 DEFB %01111000 DEFB %01000000 DEFB %01000000 ; $71 - Character: 'q' CHR$(113) DEFB %00000000 DEFB %00000000 DEFB %00111100 DEFB %01000100 DEFB %01000100 DEFB %00111100 DEFB %00000100 DEFB %00000110 ; $72 - Character: 'r' CHR$(114) DEFB %00000000 DEFB %00000000 DEFB %00011100 DEFB %00100000 DEFB %00100000 DEFB %00100000 DEFB %00100000 DEFB %00000000 ; $73 - Character: 's' CHR$(115) DEFB %00000000 DEFB %00000000 DEFB %00111000 DEFB %01000000 DEFB %00111000 DEFB %00000100 DEFB %01111000 DEFB %00000000 ; $74 - Character: 't' CHR$(116) DEFB %00000000 DEFB %00010000 DEFB %00111000 DEFB %00010000 DEFB %00010000 DEFB %00010000 DEFB %00001100 DEFB %00000000 ; $75 - Character: 'u' CHR$(117) DEFB %00000000 DEFB %00000000 DEFB %01000100 DEFB %01000100 DEFB %01000100 DEFB %01000100 DEFB %00111000 DEFB %00000000 ; $76 - Character: 'v' CHR$(118) DEFB %00000000 DEFB %00000000 DEFB %01000100 DEFB %01000100 DEFB %00101000 DEFB %00101000 DEFB %00010000 DEFB %00000000 ; $77 - Character: 'w' CHR$(119) DEFB %00000000 DEFB %00000000 DEFB %01000100 DEFB %01010100 DEFB %01010100 DEFB %01010100 DEFB %00101000 DEFB %00000000 ; $78 - Character: 'x' CHR$(120) DEFB %00000000 DEFB %00000000 DEFB %01000100 DEFB %00101000 DEFB %00010000 DEFB %00101000 DEFB %01000100 DEFB %00000000 ; $79 - Character: 'y' CHR$(121) DEFB %00000000 DEFB %00000000 DEFB %01000100 DEFB %01000100 DEFB %01000100 DEFB %00111100 DEFB %00000100 DEFB %00111000 ; $7A - Character: 'z' CHR$(122) DEFB %00000000 DEFB %00000000 DEFB %01111100 DEFB %00001000 DEFB %00010000 DEFB %00100000 DEFB %01111100 DEFB %00000000 ; $7B - Character: '{' CHR$(123) DEFB %00000000 DEFB %00001110 DEFB %00001000 DEFB %00110000 DEFB %00001000 DEFB %00001000 DEFB %00001110 DEFB %00000000 ; $7C - Character: '|' CHR$(124) DEFB %00000000 DEFB %00001000 DEFB %00001000 DEFB %00001000 DEFB %00001000 DEFB %00001000 DEFB %00001000 DEFB %00000000 ; $7D - Character: '}' CHR$(125) DEFB %00000000 DEFB %01110000 DEFB %00010000 DEFB %00001100 DEFB %00010000 DEFB %00010000 DEFB %01110000 DEFB %00000000 ; $7E - Character: '~' CHR$(126) DEFB %00000000 DEFB %00010100 DEFB %00101000 DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00000000 DEFB %00000000 ; $7F - Character: ' © ' CHR$(127) DEFB %00111100 DEFB %01000010 DEFB %10011001 DEFB %10100001 DEFB %10100001 DEFB %10011001 DEFB %01000010 DEFB %00111100 #end ; generic cross-assembler directive ; Acknowledgements ; ----------------- ; Sean Irvine for default list of section headings ; Dr. Ian Logan for labels and functional disassembly. ; Dr. Frank O'Hara for labels and functional disassembly. ; ; Credits ; ------- ; Alex Pallero Gonzales for corrections. ; Mike Dailly for comments. ; Alvin Albrecht for comments. ; Andy Styles for full relocatability implementation and testing. testing. ; Andrew Owen for ZASM compatibility and format improvements. ; For other assemblers you may have to add directives like these near the ; beginning - see accompanying documentation. ; ZASM (MacOs) cross-assembler directives. (uncomment by removing ';' ) ; #target rom ; declare target file format as binary. ; #code 0,$4000 ; declare code segment. ; Also see notes at Address Labels 0609 and 1CA5 if your assembler has ; trouble with expressions. ; ; Note. The Sinclair Interface 1 ROM written by Dr. Ian Logan and Martin ; Brennan calls numerous routines in this ROM. ; Non-standard entry points have a label beginning with X.


Signing yearbook with
(click to change color)
Credits:
http://www.williammalone.com/articles/create-html5-canvas-javascript-drawing-app
https://github.com/williammalone/Simple-HTML5-Drawing-App
https://stackoverflow.com/questions/13198131/how-to-save-an-html5-canvas-as-an-image-on-a-server


TELLDIR
Section: Linux Programmer's Manual (3)
Updated: 2013-09-02
Index
Return to Main Contents
NAME
telldir - return current location in directory stream
SYNOPSIS
#include <dirent.h>
long telldir(DIR *dirp);
Feature Test Macro Requirements for glibc (see
feature_test_macros(7)):
telldir():
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE
DESCRIPTION
The
telldir()
function returns the current location associated with
the directory stream dirp.
RETURN VALUE
On success, the
telldir()
function returns the current location
in the directory stream.
On error, -1 is returned, and
errno
is set appropriately.
ERRORS
- EBADF
-
Invalid directory stream descriptor dirp.
ATTRIBUTES
Multithreading (see pthreads(7))
The
telldir()
function is thread-safe.
CONFORMING TO
4.3BSD, POSIX.1-2001.
NOTES
In glibc up to version 2.1.1, the return type of
telldir()
was
off_t.
POSIX.1-2001 specifies
long,
and this is the type used since glibc 2.1.2.
In early filesystems, the value returned by
telldir()
was a simple file offset within a directory.
Modern filesystems use tree or hash structures, rather than flat tables,
to represent directories.
On such filesystems, the value returned by
telldir()
(and used internally by
readdir(3))
is a "cookie" that is used by the implementation
to derive a position within a directory.
Application programs should treat this strictly as an opaque value, making
no
assumptions about its contents.
SEE ALSO
closedir(3),
opendir(3),
readdir(3),
rewinddir(3),
scandir(3),
seekdir(3)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- ERRORS
-
- ATTRIBUTES
-
- Multithreading (see pthreads(7))
-
- CONFORMING TO
-
- NOTES
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 02:54:54 GMT, September 18, 2014


THE LOOKING GLASS WAR A film review by Steve Rhodes Copyright 1998 Steve Rhodes
RATING (0 TO ****): * 1/2
Two cynical old spies meet in a bar in Finland. One is a pilot who has surreptitiously taken pictures of a potential missile threat. After grousing about the misery of their thankless jobs, the other one takes away the film canister and walks back to his hotel since the cheap bastards who employee him won't pay for his cab fare anymore. In the bitter cold and snow he is hit by a car and dies.
Cut to London where two spy masters walk down a marbled corridor. The executives, like their workers, have equally disparaging remarks about their profession.
Thus the stage is set for the 1970 film THE LOOKING GLASS WAR, based on the John Le Carre novel of the same name. Although not one of his better stories, the movie version accentuates its problems without highlighting its better portions.
The difficulty in bringing Le Carre's novels to the screen is that his characters are by design all cold and unlikable. This requires great skill on the director's part to stage it in such a way that the story becomes compelling. THE LOOKING GLASS WAR's director, Frank Pierson, shows little adroitness in his compositions. The awkward knife fight sequence between the spy John Avery and a new recruit named Leiser (Christopher Jones), for example, looks embarrassingly amateurish.
Arguably the only motivation to view the movie is the chance to catch Anthony Hopkins, whom his fans probably think was never young, playing in one of his first movie roles. His ragged acting lacks polish, but you can glimpse the beginning of his talent and charisma.
"We had scruples, but we overcame them," one of the of spy masters tells John when he questions the whole purpose of the risky mission. He doesn't think the missiles, which they are about to risk a life for to find out about, even exist.
The story spends most of its time in petty spy squabbles with little actual intrigue. The characters are little more than stick figures, and the performances are all shallow, even that of Hopkins.
The director seems incapable of composing a compelling scene. Typical of the picture is the sequence in which John and Leiser sit drunk in the rain and slowly draw pictures with chalk on the wet sidewalk. Even the staging of the scene of Leiser sneaking across the border under the barbed wire should have been filled with tension but instead we get little more than tedium. The film, mainly devoid of music, could have been helped greatly by more of it.
The story's thesis seems to be that intelligence work is boring, but doing that without making the movie be so is a tricky proposition and a trap into which this movie sinks like quicksand.
THE LOOKING GLASS WAR runs 1:46. The picture is not rated but would be PG-13 for mature themes, implied sex, semi-nudity, and some violence and would be fine for kids around ten and up.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Toggle navigation
Yuumei
Illustrations
Graphic Novel
Tutorials
Fanart
Other Works
Shop
Donate
FAQ
Contact


Netflix Has Far More Age Restrictive Contents Than You Think
Author: Boyu Zhang, Phoebe Ling, River Liu, Shaojun Zheng
Introduction
As one of the most popular movies and tv shows streaming platform, Netflix provides us countless entertaining contents to watch during every movie nights. But have you ever think about these questions when watching movies or tv shows on Netflix:
What is average score of the movies in different year?
Which genre has the most restrict-rated contents so I can avoid watching it with my children?
Our project would help you answer these questions and hope we can give you a better understanding on some of the data behind Netflix.
What Is The Average IMDB Score of Different Genres?
First, we want to explore the relationship between genre and imdb_score, whether a particular movie genre is more popular among audiences. So, we plotted a histogram with the X-axis representing the genre of the movie and the Y-axis representing the average imdb score of the movie. From the histogram, we can see that certain genres are indeed more popular with audiences. For example, history and war films have an average rating of over 7, while horror films have an average rating of under 6.
How Many Movies Do Different Age Ratings have?
Next, we want to know the proportion of Movie Ratings and observe which grades of movies filmmakers like to shoot. So, we drew a histogram of movie ratings on the x-axis and the number of movies with each rating on the y-axis. The figure shows that the counts of TV-MA and R-rated movies are the largest, indicating that filmmakers tend to produce R (Under 17 requires an accompanying parent or adult guardian) and TV-MA (this program is specifically designed to be viewed by adults) movies. The producers and directors don’t think too much about the children’s movie market.
How Many Movies Are There with Different Genres and Age Ratings?
In addition, we further understood the relationship between genre and movie rating, so we drew a heat map, the x-axis represents the subject matter of the movie, the y-axis represents the age rating of the movie, and the intersecting part represents both a movie genre and age certification from the number of movies, we can see that most of the drama-themed movies are TV-MA-rated, and most thriller-themed movies are R-rated.
Interactive Dashboard
!!!Use your cursor to brush the top graph to see the changes in the bottom graph
The dashboard shows the number of shows and movies provided by Netflix by movies’ or shows’ primary genre and production country. An audience can use a mouse to select a range of countries and genres. The bar chart on the right side will show the average IMDB score of the movie or shows that match the condition the audience selected each released year.
Conclusion
Netflix is one of the most popular over-the-top streaming services in the world. It is interesting to figure out what kind of movies and TV shows it provides and to infer their target audiences. Customers can also know if Netflix’s service is suitable for them by seeing the analysis results of the Netflix dataset. We present the analysis in age, genre, and score.
In the first plot, we explored the quality of movies/shows by showing the average IMDb score of each genre with a histogram. We can see that certain genres are indeed more popular with audiences and get higher scores. Audiences who love history and war films may be satisfied with the films Netflix provides, but audiences who like to watch horror movies may feel disappointed with the films on Netflix, which have an average rating of under 6.
In the second plot, we showed the number of films in each rating. The figure shows that the counts of TV-MA and R-rated movies are the largest, indicating children and teenagers are not their target audiences. Even the family with children may not be the target as well.
In the third and fourth plots, we further explore the relationship between genre and movie rating and the relationship between genre and produced country by showing a heat map. This gives audiences comprehensive aspects of the genre, produced country, and moving rating.
Ultimately, we used a dashboard to show the relationship between primary genre, production country, released year, and the average IMDB score of films.
Those figures can help audiences comprehensively understand the films’ features on Netflix and choose if this service is suitable for them.