2018-12-07: I awoke this morning with a stunning realisation: I have...
2018-11-30: In Swift what is the nature of an optional Void...
2018-11-18: One of my eldest sons said to me this morning...
2018-11-15: Swift enums are a thing of beauty and wonder
2018-11-09: I’m building a document-based app, and having to setup a...
2018-10-26: Dining Room Table Project - Part 4 First board filled,...
2018-10-26: Dining Room Table Project - Part 3 Working out the...
2018-10-26: Dining Room Table Project - Part 2: Making the steel...
2018-10-26: Dining Room Table Project - Part 1 Selecting the wood:...
2018-10-23: Lots of friendly people around here :)
2018-10-22: Hello micro.blog


Can I change when search results are loaded?
Can Select2 wait until the user has typed a search term before triggering the request?
{% include options/not-written.html %}
Select2 is allowing long search terms, can this be prevented?
{% include options/not-written.html %}
I only want the search box if there are enough results
{% include options/not-written.html %}


|
LiteSQL
0.3.17
|
Often it is not necessary to fetch all objects to memory and then process them.
Memory usage can be minimized using template class Cursor which returns one object at a time.
Creating a cursor(two ways):
Iterating through the result set:
The remaining contents of the result set can be retrieved with dump-method:


The Zend\Search\Lucene\Analysis\Analyzer class is used by the indexer to tokenize document text fields.
The Zend\Search\Lucene\Analysis\Analyzer::getDefault() and ZendSearchLuceneAnalysisAnalyzer::setDefault() methods are used to get and set the default analyzer.
You can assign your own text analyzer or choose it from the set of predefined analyzers: Zend\Search\Lucene\Analysis\Analyzer\Common\Text and Zend\Search\Lucene\Analysis\Analyzer\Common\Text\CaseInsensitive (default). Both of them interpret tokens as sequences of letters. Zend\Search\Lucene\Analysis\Analyzer\Common\Text\CaseInsensitive converts all tokens to lower case.
To switch between analyzers:
1 2 3 4 | Zend\Search\Lucene\Analysis\Analyzer::setDefault(
new Zend\Search\Lucene\Analysis\Analyzer\Common\Text());
...
$index->addDocument($doc);
|
The Zend\Search\Lucene\Analysis\Analyzer\Common class is designed to be an ancestor of all user defined analyzers. User should only define the reset() and nextToken() methods, which takes its string from the $_input member and returns tokens one by one (a NULL value indicates the end of the stream).
The nextToken() method should call the normalize() method on each token. This will allow you to use token filters with your analyzer.
Here is an example of a custom analyzer, which accepts words with digits as terms:
Custom text Analyzer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 /** * Here is a custom text analyser, which treats words with digits as * one term */ class My_Analyzer extends Zend\Search\Lucene\Analysis\Analyzer\Common { private $_position; /** * Reset token stream */ public function reset() { $this->_position = 0; } /** * Tokenization stream API * Get next token * Returns null at the end of stream * * @return Zend\Search\Lucene\Analysis\Token|null */ public function nextToken() { if ($this->_input === null) { return null; } while ($this->_position < strlen($this->_input)) { // skip white space while ($this->_position < strlen($this->_input) && !ctype_alnum( $this->_input[$this->_position] )) { $this->_position++; } $termStartPosition = $this->_position; // read token while ($this->_position < strlen($this->_input) && ctype_alnum( $this->_input[$this->_position] )) { $this->_position++; } // Empty token, end of stream. if ($this->_position == $termStartPosition) { return null; } $token = new Zend\Search\Lucene\Analysis\Token( substr($this->_input, $termStartPosition, $this->_position - $termStartPosition), $termStartPosition, $this->_position); $token = $this->normalize($token); if ($token !== null) { return $token; } // Continue if token is skipped } return null; } } Zend\Search\Lucene\Analysis\Analyzer::setDefault( new My_Analyzer());
The Zend\Search\Lucene\Analysis\Analyzer\Common analyzer also offers a token filtering mechanism.
The Zend\Search\Lucene\Analysis\TokenFilter class provides an abstract interface for such filters. Your own filters should extend this class either directly or indirectly.
Any custom filter must implement the normalize() method which may transform input token or signal that the current token should be skipped.
There are three filters already defined in the analysis subpackage:
- Zend\Search\Lucene\Analysis\TokenFilter\LowerCase
- Zend\Search\Lucene\Analysis\TokenFilter\ShortWords
- Zend\Search\Lucene\Analysis\TokenFilter\StopWords
The LowerCase filter is already used for Zend\Search\Lucene\Analysis\Analyzer\Common\Text\CaseInsensitive analyzer by default.
The ShortWords and StopWords filters may be used with pre-defined or custom analyzers like this:
1 2 3 4 5 6 7 8 9 | $stopWords = array('a', 'an', 'at', 'the', 'and', 'or', 'is', 'am');
$stopWordsFilter =
new Zend\Search\Lucene\Analysis\TokenFilter\StopWords($stopWords);
$analyzer =
new Zend\Search\Lucene\Analysis\Analyzer\Common\TextNum\CaseInsensitive();
$analyzer->addFilter($stopWordsFilter);
Zend\Search\Lucene\Analysis\Analyzer::setDefault($analyzer);
|
1 2 3 4 5 6 7 | $shortWordsFilter = new Zend\Search\Lucene\Analysis\TokenFilter\ShortWords();
$analyzer =
new Zend\Search\Lucene\Analysis\Analyzer\Common\TextNum\CaseInsensitive();
$analyzer->addFilter($shortWordsFilter);
Zend\Search\Lucene\Analysis\Analyzer::setDefault($analyzer);
|
The Zend\Search\Lucene\Analysis\TokenFilter\StopWords constructor takes an array of stop-words as an input. But stop-words may be also loaded from a file:
1 2 3 4 5 6 7 8 | $stopWordsFilter = new Zend\Search\Lucene\Analysis\TokenFilter\StopWords();
$stopWordsFilter->loadFromFile($my_stopwords_file);
$analyzer =
new Zend\Search\Lucene\Analysis\Analyzer\Common\TextNum\CaseInsensitive();
$analyzer->addFilter($stopWordsFilter);
Zend\Search\Lucene\Analysis\Analyzer::setDefault($analyzer);
|
This file should be a common text file with one word in each line. The ‘#’ character marks a line as a comment.
The Zend\Search\Lucene\Analysis\TokenFilter\ShortWords constructor has one optional argument. This is the word length limit, set by default to 2.
The score of a document d for a query q is defined as follows:
score(q,d) = sum( tf(t in d) * idf(t) * getBoost(t.field in d) * lengthNorm(t.field in d) ) * coord(q,d) * queryNorm(q)
tf(t in d) -Zend\Search\Lucene\Search\Similarity::tf($freq)- a score factor based on the frequency of a term or phrase in a document.
idf(t) -Zend\Search\Lucene\Search\Similarity::idf($input, $reader)- a score factor for a simple term with the specified index.
getBoost(t.field in d) - the boost factor for the term field.
lengthNorm($term) - the normalization value for a field given the total number of terms contained in a field. This value is stored within the index. These values, together with field boosts, are stored in an index and multiplied into scores for hits on each field by the search code.
Matches in longer fields are less precise, so implementations of this method usually return smaller values when numTokens is large, and larger values when numTokens is small.
coord(q,d) -Zend\Search\Lucene\Search\Similarity::coord($overlap, $maxOverlap)- a score factor based on the fraction of all query terms that a document contains.
The presence of a large portion of the query terms indicates a better match with the query, so implementations of this method usually return larger values when the ratio between these parameters is large and smaller values when the ratio between them is small.
queryNorm(q) - the normalization value for a query given the sum of the squared weights of each of the query terms. This value is then multiplied into the weight of each query term.
This does not affect ranking, but rather just attempts to make scores from different queries comparable.
The scoring algorithm can be customized by defining your own Similarity class. To do this extend the Zend\Search\Lucene\Search\Similarity class as defined below, then use the Zend\Search\Lucene\Search\Similarity::setDefault($similarity); method to set it as default.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | class MySimilarity extends Zend\Search\Lucene\Search\Similarity {
public function lengthNorm($fieldName, $numTerms) {
return 1.0/sqrt($numTerms);
}
public function queryNorm($sumOfSquaredWeights) {
return 1.0/sqrt($sumOfSquaredWeights);
}
public function tf($freq) {
return sqrt($freq);
}
/**
* It's not used now. Computes the amount of a sloppy phrase match,
* based on an edit distance.
*/
public function sloppyFreq($distance) {
return 1.0;
}
public function idfFreq($docFreq, $numDocs) {
return log($numDocs/(float)($docFreq+1)) + 1.0;
}
public function coord($overlap, $maxOverlap) {
return $overlap/(float) $maxOverlap;
}
}
$mySimilarity = new MySimilarity();
Zend\Search\Lucene\Search\Similarity::setDefault($mySimilarity);
|
The abstract class Zend\Search\Lucene\Storage\Directory defines directory functionality.
The Zend\Search\Lucene constructor uses either a string or a Zend\Search\Lucene\Storage\Directory object as an input.
The Zend\Search\Lucene\Storage\Directory\Filesystem class implements directory functionality for a file system.
If a string is used as an input for the Zend\Search\Lucene constructor, then the index reader (Zend\Search\Lucene object) treats it as a file system path and instantiates the Zend\Search\Lucene\Storage\Directory\Filesystem class.
You can define your own directory implementation by extending the Zend\Search\Lucene\Storage\Directory class.
Zend\Search\Lucene\Storage\Directory methods:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | abstract class Zend\Search\Lucene\Storage\Directory {
/**
* Closes the store.
*
* @return void
*/
abstract function close();
/**
* Creates a new, empty file in the directory with the given $filename.
*
* @param string $name
* @return void
*/
abstract function createFile($filename);
/**
* Removes an existing $filename in the directory.
*
* @param string $filename
* @return void
*/
abstract function deleteFile($filename);
/**
* Returns true if a file with the given $filename exists.
*
* @param string $filename
* @return boolean
*/
abstract function fileExists($filename);
/**
* Returns the length of a $filename in the directory.
*
* @param string $filename
* @return integer
*/
abstract function fileLength($filename);
/**
* Returns the UNIX timestamp $filename was last modified.
*
* @param string $filename
* @return integer
*/
abstract function fileModified($filename);
/**
* Renames an existing file in the directory.
*
* @param string $from
* @param string $to
* @return void
*/
abstract function renameFile($from, $to);
/**
* Sets the modified time of $filename to now.
*
* @param string $filename
* @return void
*/
abstract function touchFile($filename);
/**
* Returns a Zend\Search\Lucene\Storage\File object for a given
* $filename in the directory.
*
* @param string $filename
* @return Zend\Search\Lucene\Storage\File
*/
abstract function getFileObject($filename);
}
|
The getFileObject($filename) method of a Zend\Search\Lucene\Storage\Directory instance returns a Zend\Search\Lucene\Storage\File object.
The Zend\Search\Lucene\Storage\File abstract class implements file abstraction and index file reading primitives.
You must also extend Zend\Search\Lucene\Storage\File for your directory implementation.
Only two methods of Zend\Search\Lucene\Storage\File must be overridden in your implementation:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | class MyFile extends Zend\Search\Lucene\Storage\File {
/**
* Sets the file position indicator and advances the file pointer.
* The new position, measured in bytes from the beginning of the file,
* is obtained by adding offset to the position specified by whence,
* whose values are defined as follows:
* SEEK_SET - Set position equal to offset bytes.
* SEEK_CUR - Set position to current location plus offset.
* SEEK_END - Set position to end-of-file plus offset. (To move to
* a position before the end-of-file, you need to pass a negative value
* in offset.)
* Upon success, returns 0; otherwise, returns -1
*
* @param integer $offset
* @param integer $whence
* @return integer
*/
public function seek($offset, $whence=SEEK_SET) {
...
}
/**
* Read a $length bytes from the file and advance the file pointer.
*
* @param integer $length
* @return string
*/
protected function _fread($length=1) {
...
}
}
|
The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.


Welcome to
KMAN sample app. Please enter your account info.
You can also sign in with your Facebook or Google account.
You can easily sign up using your Facebook or Google account using the sign in buttons above.


The internet is basically just computers talking to each other. Say you go to here to check the scores for the NHL playoffs. Your computer will send a request to a server and it will find the right http.
Tags and ElementsHTML documents are made of HTML elements. When writing HTML, the programer will tell browsers the type of each element by using HTML tags.  If you forget an entag on something, it could mess up the whole document.
Inline vs Block ElementsHTML elements are either inline or block. Block elements form almost a empty white space around the element.


Enter a search string into the text box above and click 'Find'.
The app will find all ValueSets where the string you enter is in the name of the ValueSet.
Alternatively, enter the Url directly into the second box. If the Url is found on the terminology
server then the details will be displayed, but even if not found it can be selected.
{{entry.resource.name}}
{{entry.resource.description}}
{{input.vspreview.url}}
Binding Strength
Description
{{error}}
The binding will still occur, but the app won't be able to display the values from the ValueSet


Siegel Recipes
Search Input
List All
Navigation
Home
Menu
Recipe Database Search
^
Search
Strict Parsing Only
Force Exact Search
Carry Order Data
Displaying
Recipes:


--- layout: documentation title: EnvironmentVariableListType ---
The EnvironmentVariableListType type is used for representing a list of environment variables.
| Field Name | Type | Description |
|---|---|---|
| Environment_Variable1..n | EnvironmentVariableType |
The Environment_Variable field is used for representing environment variables using a name/value pair. |


I wanna tell you a secret:
Only
Admin
know the flag!
But I got
this source code
for you! Try your best!!!


States like Nebraska, Vermont, Montana and Iowa have seen very few Mass shootings over the years, while those like Washington D.C. and Louisiana show high numbers consistently.
Data Source: Shooting Tracker


Name/Rank
Tuition and Fees
Enrollment
Reputation Score
?
Test Scores
Compare
University of Pennsylvania
Philadelphia, PA
#1 in Business Programs
$53,534
10,019
4.8
Massachusetts Institute of Technology
Cambridge, MA
#2 in Business Programs
$49,892
4,524
4.6
University of California--Berkeley
Berkeley, CA
#3 in Business Programs
(tie)
$42,112 (out-of-state), $14,098 (in-state)
29,311
4.5
University of Michigan--Ann Arbor
Ann Arbor, MI
#3 in Business Programs
(tie)
$47,476 (out-of-state), $14,826 (in-state)
28,983
4.5
New York University
New York, NY
#5 in Business Programs
(tie)
$50,464
26,135
4.3
University of Texas--Austin
Austin, TX
#5 in Business Programs
(tie)
$35,766 (out-of-state), $10,136 (in-state)
40,168
4.3
Carnegie Mellon University
Pittsburgh, PA
#7 in Business Programs
(tie)
$53,910
6,673
4.2
Cornell University
Ithaca, NY
#7 in Business Programs
(tie)
$52,853
14,566
4.2
University of North Carolina--Chapel Hill
Chapel Hill, NC
#7 in Business Programs
(tie)
$34,588 (out-of-state), $9,005 (in-state)
18,523
4.2
University of Virginia
Charlottesville, VA
#7 in Business Programs
(tie)
$46,975 (out-of-state), $16,146 (in-state)
16,331
4.2


6 tests run across 2 devices with 4 passing and 2 failing in 1 minute, 30 seconds at 2017-12-05 03:54 PM


Overview
This is Effekseer plugin for UnrealEngine 4. With this plugin, you can play effects created with Effekseer on UnrealEngine 4.
Important notice
Please reimport model files if you upgrade it from 1.4
Environment
Version
UnrealEngine4.23 or later
Compiler
It is necessary to install a compiler suitable for the environment. For example, you need to install VisualStudio 2017 or 2019 on Windows.
Platform
Since platform-specific functions are not used, EffekseerForUnrealEngine4 works on most platforms.
Constitution
EffekseerForUE4 consists mainly of two components.
It is EffekseerSystemComponent
and EffekseerEmitterComponent
.
EffekseerSystem draws effects. Therefore, one component is absolutely necessary within the level.
EffekseerEmitterComponent creates and manipulates effects. It is necessary for each effect.
Besides these, theare are EffekseerEffect
asset corresponding to Effekseer’s efkefc file, EffekseerModel
asset corresponding to the Effekseer’s efkmdl file and EffekseerMaterial
asset corresponding to the Effekseer’s efkmat file
There are also BP_EffekseerSystem
and BP_EffekseerEmitter
blueprints that makes it easier to use components.
Sample
EffekseerForUE4.uproject
contains sample levels.
You can see that Effekseer’s effect is being played.
Installation and usage
This section explains how to install and use EffekseerForUE 4 in your project.
1.1. Copying directories
You copy the Plugins
directory to the same directory as the uproject you created.
1.2. Adding C ++ code
You add some C ++ code to the project. It is no problem even if contents are empty.
1.3. Enabling Plugin
You activate Plugin from UnrealEngine4. If it may be required to restart, you restart UnrealEngine 4.
You may be asked to compile after rebooting. You compile the project.
1.4. Adding a blueprint
You add BP_EffekseerSystem
and BP_EffekseerEmitter
to the level.
Since these are in the contents of the plugin, you make the contents of the plugin shown.
You move to the directory of the contents of the plugin.
You add blueprints to the level.
Currently, BP_EffekseerSystem must be located at position (0, 0, 0).
BP_EffekseerEmitter be located at the position where you want to display an effect.
1.5. Adding assets
You add the efkefc files and textures output from Effekseer to the content.
About the order of import
The order of importing is important. We recommend that you import textures, materials, and effects in this order. If you do not import them in this order, resources will not be assigned and the display may look strange.
If the effect does not have a texture or material assigned to it, right click on the Effect asset and click AssignResources.
.
If no texture is assigned to the material, right-click on the EffekseerMaterial asset and Reimport it.
You assigns textures to the EffekseerEffect asset. Right-click the EffekseerEffect asset, and then run AssignResources.
Since the effect is often small, double-click the EffekseerEffect asset to set the scale. Let’s enter a large number to make the effect easier to see.
You select BP_EffekseerEmitter to display the component. You set the EffekseerEffect asset you just read into the EffekseerEmitter component.
You turn on Auto Activate of the EffekseerEmitter component.
If you play it, you will see that the effect is displayed.
2.1. Components of Effekseer
You can also add Effekseer components to other actors. However, since EffekseerSystem is complicated, we recommend that you only use the EffekseerEmitter component.
3.1. Animation Notifications
Effects can be played using Animation Notifications. Effects can be played at indicated time in Animation Sequence.
4.1 Network
- Only Windows
You can edit the playing effect in an application (game etc.) via the network from the outside when application is running.
You specify the port to be connected from Effekseer fo EffekseerSystemComponent. Make DoStartNetworkAutomatically On or execute StartNetwork in EffekseerSystemComponent. Then you can edit the effect from Effekseer. In order to edit the effect from another computer, it is necessary to open the port with the setting of the firewall.
As a limitation, changes to blends or changes to unused images are not applied.
Caution
A greyscale image with alpha will display incorrectly.
Limitation
Subtraction, and distortion are different from Effekseer.
The normal map to the model does not apply.
If a large number of models are drawn, the speed tends to decrease.
Does not support culling settings.
Materials do not have depth ignoring settings.
Todo
Match of display of Effekseer and UnrealEngine4 of subtraction, distortion
Implementation of model normals
Improved ease of use
Release note
1.52m or later
Please read it.
1.52k (2020/08/13)
- Fixed a bug where R and G of Texture Sample node were switched.
- Fixed a bug where a material compile error would occur under certain circumstances
- Fixed a bug where lighting parameters were not supported
- Fixed a bug that prevented re-importation.
- Fixed a bug where images of normals could not be loaded with materials.
- Supports material wrapping and repeats
- Fixed a bug that Sampler is not supported in a material
- Fixed a bug where VertexColorNode return Vector4
- Update Effekseer to 1.52k
1.52j (2020/08/02)
- Update Effekseer to 1.52j
1.52i (2020/07/30)
- Update Effekseer to 1.52i
1.52h (2020/07/08)
- Update Effekseer to 1.52h
- Fixed a bug that Step node behavior is different from Effekseer Material
1.52g (2020/06/09)
- Support 4.25
- Update Effekseer to 1.52g
1.52b (2020/05/02)
- Fixed a bug where particles are not shown with Line of SpawnMethod
1.52a (2020/04/28)
- Fixed a bug that a behavior of rotated billboard is something wrong when an angle is about 90 degree
1.52 (2020/04/26)
- Support 4.25 Preview7
- Fixed a bug that caused a crash in rare cases.
1.50 (2020/03/18)
- Support 4.24
- Support Material partially
- Change default parameter (AutoActicate, Scale)
1.43f (2019/09/16)
- Support 4.23
1.43e (2019/07/15)
- Resupport 4.21 (Compile error has been caused in 4.21)
1.43d (2019/07/11)
- Fixed a bug that the application is crashed when a model is rendered in 4.22
1.43b (2019/05/01)
- Supported 4.22
1.43 (2018/03/02)
Supported 4.21
Add network functions
1.40 (2018/09/12)
Supported 4.20
Add functions(Playback speed and color settings)
1.31 (2017/11/20)
Supported Animation Notifications
Fixed many bugs
1.30 (2017/11/01)
- First release
Lisence
The MIT License (MIT) Copyright (c) 2011 Effekseer Project Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


Add Blurb about Eco X
Learn More About Eco X
Add Blurb for Researchers
Learn More »
Add blurb for visitors.
Want to join the EcoX team?


Holly Willoughby in tears as her This Morning co-star reveals horrific domestic violence ordeal
Life coach Eva Speakman opened up about a previous partner
by Nancy BrownThis Morning presenter Holly Willoughby was moved to tears during today's show as her co-star Eva Speakman revealed her domestic violence ordeal.
The life coach appeared on the This Morning sofa with her husband Nick Speakman and opened up for the first time about a past relationship with an abusive partner.
Fighting back the tears, Eva revealed how an unnamed former partner started verbally abusing her, before things quickly turned violent.
Read more: Holly Willoughby wows on ITV Palooza red carpet
As Eva explained that a confrontation between her then-partner and her dad resulted in her partner hitting her dad, breaking his nose, Holly reached for the tissues.
Struggling to continue with the interview, Holly's co-host Phillip Schofield took over the reins of the chat and asked Eva what advice she'd give to viewers going through a similar ordeal.
"I would say please realise that you have done absolutely nothing wrong. I've also got to say that they won't change. It will only get worse," she said.

Viewers were also quick to praise Eva's bravery in sharing her story.
If you have been affected by Eva’s story, contact the 24-hour National Domestic Abuse Helpline on 0808 2000 247.
Head to our Facebook page @EntertainmentDailyFix and let us know what you think of our story.


--- body_id: welcome-mobile ---
Text-messaging interventions are uniquely suited for underserved populations. A growing body of literature has validated the efficacy of text-based health interventions to 1) increase medication adherence, 2) enhance health literacy, and 3) improve appointment attendance. Continue Reading ›
Healthcare is at a tipping point. Unprecedented efforts are being made to improve health outcomes and foster efficiency in healthcare delivery. What seems promising with the current reform and transformation efforts is the convergence of existing mass markets influencing healthcare innovation. Mobile phones now allow providers to monitor and engage patients, encouraging healthy lifestyle behaviors and foster self-health management. Mobile text messaging communication in particular has proven to be an effective way to foster desired behavior change in patients and improve the way in which care is delivered by capturing important and actionable data.
Health coverage expansion enacted by the Affordable Care Act demands improved patient outcomes and efficient delivery of care to millions of Americans entering the system, utilizing more healthcare resources. In particular, Medicaid expansion is projected to result in a total of 75.6 million enrollees for 2014, an increase of roughly 19.5 million as a result of the ACA. Mobile text message communication facilitates convenient and efficient communication among patients and providers and encourages healthy behavior changes by providing patients with educational tools to improve health outcomes, achieving the triple-aim objective of healthcare reform.
CareMessage aims to change health care delivery for disadvantaged populations by pioneering the effort of mobile technology, improving access to critical health information and effective self-care management. A June 2013 Pew Research report estimated mobile phone penetration rate at 86% among American households earning less than $30,000 per year. This compares to 59% of the same demographic who have access to a desktop or laptop and 47% who have broadband set-up at home. These figures imply a greater potential of mobile health innovations to accelerate adoption compared to other technological approaches for this demographic.
The opportunities to innovate using mobile technologies among the low-income and underserved populations are robust. A review of several research publications as well as a survey of key constituents within the healthcare ecosystem serving these populations show that the unmet needs plaguing the healthcare safety-net population is contributing to waste of resources in the form of poor appointment attendance, poor medication adherence, and poor health literacy. Patient engagement strategies deploying text messaging have the potential to reduce waste and inefficiencies in the system by improving health literacy and self-health management of low-income and underserved populations. This paper intends to review studies and analyze the implications of using text messaging as a way to encourage patient behavior change.
Patients who fail to attend their scheduled doctor visits contribute to inefficiencies and misused resources. In general, it is found that a reminder, whether it be by text or phone, is helpful in improving attendance. However, SMS technology is a more cost-effective approach.
A 2012 study analyzing the effect of SMS text reminders to reduce non-attendance for hospital outpatient visits found a significant difference in the attendance rate of patients who received a text reminder compared to patients who received no reminder. The study was conducted at ITS-CDSR in the Departments of Prosthodontics, Endodontics, Orthodontics and Paedodontics through the Department of Public Health and Dentistry in India. Patients who had a mobile phone number on record were enrolled in the text message reminders, totaling 206 participants compared to 110 in the control group (patients receiving no reminder). The study was conducted across different departments for a period of 4 months. The results indicated that the attendance rate for patients who received text message reminders over the 4 month period were significantly higher (79.2%) compared to the attendance rate of those who received no reminder (35.5%).
Read the full white paper to discover other studies around SMS appointment reminders ›Patients’ failure to adhere to their medication regimen can lead to unnecessary disease progression and complications. This contributes to waste in the healthcare system by increasing preventable visits to the emergency room and increased utilization of other healthcare resources. Researchers have evaluated the impact of SMS text reminders on promoting medication adherence. The results are promising, suggesting text as an efficient and effective way to ensure patients take their medication.
The American Heart Association also found that text message reminders improved the medication adherence of patients who were recovering from a heart attack. The study included 90 patients over a 30 day period. The patients were divided into three groups: one received two medication reminders daily along with educational tips, the second group received only educational tips, and the third group received no messages at all. The results show that the group who received both reminders and tips had an 88% rate of correct prescription adherence compared to 72% of patients who received no texts at all. The group who received the heart-health tips had a 95% rate of adherence.
Read the full white paper to discover other studies around SMS medication reminders ›SMS text-based education is emerging as an effective way to engage patients in better self-care. Lack of education around basic health information leads to approximately $106 billion to $238 billion in economic burden each year. Text message outreach with educational content can be an efficient way to improve patients’ health literacy.
The Center for Connected Health in Boston reported in a study that text messaging improved treatment adherence and self-care for dermatology patients suffering from atopic dermatitis. In the study, 25 patients received daily text messages over a period of six weeks. The text messages included treatment reminders and educational content pertaining to their health condition. At the end of the six week study, patients reported an improvement of treatment adherence of 72%. Sixty-eight percent of the patients reported an improvement in self-care behaviors to help their conditions.
Read the full white paper to discover other studies around SMS and Patient Education ›Mobile text communication can be a cost-efficient and effective way to engage patients in the desired behavior change to improve appointment attendance, medication adherence, and self-care management of disease. As the healthcare system transitions to a focus on improving health outcomes, engaging patients in the management of their health is critical. SMS text messaging is a low-cost way to facilitate engagement and enhance the health literacy of individuals living with chronic conditions and other health challenges.
Read the full white paper ›


|
Corona Extra 330ml |
Corona Extra is a pale lager produced by Cervecería Modelo in Mexico for domestic distribution and export to all other countries besides the United States, and by Constellation Brands in Mexico for export to the United States. The Corona brand is one of the top-selling beers worldwide.[2] Outside Mexico, Corona is commonly served with a wedge of lime or lemon in the neck of the bottle to add tartness and flavor. |
$1.90 |
|
Stella Artois 500ml |
Stella Artois is a classic Belgian lager, golden in color with a floral, hop aroma, well-balanced fruity malty sweetness, crisp hop bitterness and a soft dry finish. All natural ingredients give Stella Artois a clean, crisp palate. The fresh, pale malt aromas offer a sweet herbal note and a lingering hoppy finish.Stella is made with traditional malted barley and the finest European hops to provide superior quality and its full characteristic flavor. |
$2.77 |
|
Carlsberg Beer Bottles 330ml |
Beer type: PilsnerAlcohol by volume (ABV):5.0%Origin: Copenhagen, Denmark Carlsberg beer has been produced since 1847. It was first sold in its current pilsner form in 1904. In 1868, Carlsberg began exporting to Scotland. In 1869 samples were sent to Rangoon, Singapore, Calcutta and Hong Kong. |
$1.45 |
|
Heineken Lager Beer 500ml |
Heineken Lager Beer (Dutch: Heineken Pilsener), or simply Heineken (Dutch pronunciation: [ˈɦɛinəkən]) is a pale lager beer with 5% alcohol by volume produced by the Dutch brewing company Heineken International. Heineken is well known for its signature green bottle and red star.
Heineken was the major sponsor of UEFA Champions League and Rugby World Cup; major sponsorship of Rugby Union had begun in Wales with the Welsh Premier Division competition.
Dating back to 1997, Heineken has had a long withstanding relationship with the Bond franchise, consecutively being featured in 7 of their films. This is currently the brand's largest global marketing platform as of 2015. [14]
In 2016, Heineken became the Official Beer of the FIA Formula One World Championship starts from Canadian Grand Prix.[15]
|
$2.90 |


{% extends 'base.html' %} {% block content %}
{{ shift.daygroup.name }}
Edit | Delete
Back to All Shifts


Using Big Data Science to Understand What Goes on in Our Heads
Created by Joshua T. (jovo) Vogelstein
Neurostatistician@Large
{BME,CIS,ICM,Kavli}@JHU
Interrupt!
- Clark 317C
-<EMAIL_ADDRESS>- http://neurodata.io
- http//jovo.me
Humans with >1/2 a Brain
Lower Your Hands
Any Non-Human Animals in the hizzouse?
What's Special about Brains?
How Many Brains on Earth?
| Species |
Quantity |
| Humans |
7,415,331,700+ |
| Cows |
1,500,000,00 |
| Honeybees |
10,000,000,000,000 |
| Honey Badgers |
? |
Goals of the Hour
- have fun
- learn some stuff about big brain data
- not sound like john cleese
(ask questions if i do)
What is Neuroscience?
What is a Multi-Spectral Brain?
What is a Living Brain?
What is a See-Through Brain?
What is a Human Brain Network?
How do we learn about the mind-brain relationship from big data?
Wonder!
Consider
- who will this impact?
- how much will it impact them?
- what do we already know about this?
- how might we make progress?
- what might impede progress?
- who else can contribute?
- what can i most passionately contribute?
Don't consider
is it possible?
Store
- hierarchical memory
- small # of disk accesses
- multiscale representation
Parse
- geometric stitch
- chromatic correction
- segment
- semantic label
Analyze!
- matrices
- shapes
- graphs
- time-series
Are brain networks independent of creativity?

Are synapses distributed uniformly in cortex?
Are there different types of synapses?
And so much more....
Join Us!
- Clark 317C
-<EMAIL_ADDRESS>- http://neurodata.io
- http//jovo.me
Ask Questions!


Resident Evil 3 remake allegedly in the works
It looks like it's finally happening!
by Asher MadanWhat you need to know
- Resident Evil 3: Nemesis is a cult classic that launched many years ago.
- Gamers have been asking Capcom to remake the game for years.
- Various sources say that a remake is in development.
- It's apparently targeting a 2020 release date, possibly alongside next-generation hardware.
Resident Evil 3: Nemesis is regarded as one of the best Resident Evil games ever made. While it garnered mixed reviews from critics, gamers absolutely loved it and have been asking Capcom for a remake since this generation of consoles launched. Now, according to numerous sources, it may be happening. Numerous YouTubers started confirming the remake yesterday, but now, Eurogamer is saying the same.
The outlet said the following when discussing the rumor.
Capcom will follow its successful Resident Evil 2 remake with a new version of Resident Evil 3, a report today suggests. This comes from YouTuber SpawnWave, who said it was on track for a 2020 launch. Eurogamer has heard of the project also. Sources close to its development suggest it has been in development for some time - although the franchise's upcoming multiplayer portion Project Resistance is currently being given the spotlight.
We've reached out to Capcom for comment and shall update you as soon as we receive a response. Usually, game developers don't comment on rumors so don't expect the company to admit that it's in development. Capcom is probably saving the reveal for a big event like the PlayStation Conference or E3 2020. We'll keep you posted as soon as we know more.
Best of the best
Xbox Game Pass Ultimate
Xbox Game Pass and Xbox Live Gold in one
Xbox Game Pass gives you access to over a hundred games for one monthly fee. Xbox Game Pass Ultimate also adds Xbox Live Gold to the package so you can play online with your friends.
Get more Xbox
Xbox
- Xbox One S vs. Xbox One X: Which should you buy?
- Best Xbox One X and Xbox One S Accessories
- Best Xbox One Headsets 2019
- Best Xbox One Wireless Headsets 2019
- Best Xbox Controller Charging Stations in 2019
We may earn a commission for purchases using our links. Learn more.


STUDENT BIODATA FORM
FIRST NAME:
(max 30 character a-z or A-Z)
LAST NAME:
(max 30 character a-z or A-Z)
DATE OF BIRTH
EMAIL ID:
MOBILE NUMBER:
GENDER:
MALE
Female
UPLOAD PHOTO:
ADDRESS:
CITY:
PIN CODE:
STATE:
jharkhand
Bihar
Haryana
Uttar Pradesh
COUNTRY
HOBBIES:
Drawing
Singing
Dancing
Sketching
Others
QUALIFICATION:
SL.NO
Examination
Board
Percentage
Year of Passing
1
Class X
2
Class XII
COURSES APPLIED FOR:
B.Tech
D.Com
B.Sc
BCA


vk.bot_framework.dispatcher.blueprints module¶
A simple abstraction for build largest bots and sharing rules beetwen handlers.
 If you have a really big count of commands, you need write this:
repeatedly. We appreciate your time and we create blueprints for this simple cases.
But! If you have a largest bot with a lof of handlers, you need a simple, and more powerful tool for register handlers. Blueprints registering looks like that:
It`s easy!
-
class
vk.bot_framework.dispatcher.blueprints.
AbstractBlueprint
¶ Bases:
abc.ABC
-
abstract
event_handler
(event_type: vk.types.events.community.events_list.Event, *rules: Tuple[Type[vk.bot_framework.dispatcher.rule.BaseRule]], **named_rules: Dict[str, Any])¶ Register a event handler in blueprint. :param event_type: :param rules: :param named_rules: :return:
-
abstract
message_handler
(*rules: Tuple[Type[vk.bot_framework.dispatcher.rule.BaseRule]], **named_rules: Dict[str, Any])¶ Register a message handler in blueprint. :param rules: :param named_rules: :return:
-
abstract
-
class
vk.bot_framework.dispatcher.blueprints.
Blueprint
(*rules: Tuple[vk.bot_framework.dispatcher.rule.BaseRule], **named_rules)¶ Bases:
vk.bot_framework.dispatcher.blueprints.AbstractBlueprint
-
property
description
¶
-
event_handler
(event_type: vk.types.events.community.events_list.Event, *rules: Tuple[Type[vk.bot_framework.dispatcher.rule.BaseRule]], **named_rules: Dict[str, Any])¶ Register a event handler in blueprint. :param event_type: :param rules: :param named_rules: :return:
-
message_handler
(*rules: Tuple[Type[vk.bot_framework.dispatcher.rule.BaseRule]], **named_rules: Dict[str, Any])¶ Register a message handler in blueprint. :param rules: :param named_rules: :return:
-
property
meta
¶
-
property
name
¶
-
property


Woman gang-raped by six men in Noida park
Four accused have been nabbed
by Special CorrespondentA 21-year-old woman was allegedly gang-raped by six men on Wednesday night in Noida, the police said on Friday. Four accused have been nabbed, they said.
According to police sources, the victim hails from Kasganj.
 She came in contact with a man, who asked her to meet him in a park in Noida’s Sector 63 at 7 p.m. for a job opportunity,” said Superintendent of Police (City), Noida, Vineet Jaiswal told The Hindu.
When the victim reached the park, the man, a peon in an export company, tried to molest her.
“Soon a group of five men, who were already present there, noticed the duo. First, they chased away the man and then raped the woman,” said Mr. Jaiswal. The woman managed to reach Phase 3 police station and lodged a complaint. “An FIR was registered under Sections 354, 376 and 511 of the Indian Penal Code and she was admitted to a government hospital. The medical report confirmed gangrape,” said Mr. Jaiswal.
“A reward of ₹25,000 each has been declared on the absconding accused,” said an officer.
Mr. Jaiswal said the accused were in the age group of 20-25.
“They don’t have any criminal record. Three of them work as contract labourers in a vegetable farm. The accused have confessed to have committed the crime,” said the officer.
Focus on patrolling
Mr. Jaiswal said: “We are looking into how patrolling could be improved in the area,” he said.
He said the woman has been counselled and her family has been informed about legal assistance.
“She has given her statement to the police and on Saturday her statement would be recorded in front of a Magistrate under Section 164 of CrPC.”
He added her name has been forwarded for assistance under the Compensation Scheme for Women Survivors of Sexual Assault/other Crimes-2018.


Auxilliary Tool:
A data structure that represents an image in an efficient memory layout, and manipulates that image in ways useful for efficient feature processing.
More...
#include <ImagePatch.h>
Public Member Functions | |
| ImagePatch () | |
| Constructor. | |
| ~ImagePatch () | |
| Destructor. | |
| ImagePatch (const ImagePatch ©) | |
| Copy Constructor. | |
| ImagePatch & | operator= (const ImagePatch &rhs) |
| Assignment operator. | |
| void | setImage (const cv::Mat &image, int setData=1, int setIntegral=1) |
| Sets the ImagePatch to contain this image's data. | |
| void | setImage (const cv::Mat &image, cv::Rect ROI, int setData=1, int setIntegral=1) |
| Sets the ImagePatch to contain this image's data contained in ROI. | |
| cv::Size | getImageSize () const |
| Get the size of the ImagePatch. | |
| void | getImageHeader (cv::Mat &header) const |
| Get an OpenCV image of this image patch's actual data, without copying. You are responsible for releasing this Image Header. Don't release the image! | |
| const integral_type * | startOfIntegralData () const |
| Get a pointer to the integral image data. This data is laid out row-wise. Each row has length integralDataRowWidth(). Elements after the getImageSize().width+1st have unspecified value. | |
| const unsigned char * | startOfImageData () const |
| Get a pointer to the raw image data. This data is laid out row-wise. Each row has length integralDataRowWidth(). Elements after the getImageSize().width th have unspecified value. | |
| int | imageDataRowWidth () const |
| Number of unsigned chars from the start of one row of the raw image data to the start of the next. At least getImageSize().width. | |
| int | imageDataRowBytes () const |
| Number of bytes from the start of one row of the raw image data to the start of the next. | |
| int | integralDataRowWidth () const |
| Number of integral_type values from the start of one row of raw image data to the start of the next. At least getImageSize().width+1. | |
| int | integralDataRowBytes () const |
| Number of bytes from the start of one row of the integral image data to the start of the next. | |
| void | addToStreamBinary (std::ostream &out) |
| Save a collection of image patches to a file in a verbose text-based format. | |
| void | readFromStreamBinary (std::istream &in) |
| Load a collection of image patches to a file in a compact binary format. | |
| cv::Size | getIntegralSize () const |
| Get size of integral image. | |
Static Public Member Functions | |
| static void | writePatchesToFile (const char *filename, const std::vector< ImagePatch * > &patches) |
| Save a collection of image patches to a file in a compact binary format. | |
| static std::vector< ImagePatch * > | readPatchesFromFile (const char *filename) |
| Load a collection of image patches to a file in a compact binary format. | |
Friends | |
| std::istream & | operator>> (std::istream &ifs, ImagePatch *model) |
| Load a single image patch from a file in a verbose text-based format. | |
| std::istream & | operator>> (std::istream &ifs, std::vector< ImagePatch * > &model) |
| Load a collection of image patches from a file in a verbose text-based format. | |
| std::ostream & | operator<< (std::ostream &ofs, ImagePatch *model) |
| Save a single image patch to a file in a verbose text-based format. | |
| std::ostream & | operator<< (std::ostream &ofs, std::vector< ImagePatch * > &model) |
| Save a collection of image patches to a file in a verbose text-based format. |
Auxilliary Tool:
A data structure that represents an image in an efficient memory layout, and manipulates that image in ways useful for efficient feature processing.
| ImagePatch::ImagePatch | ( | ) |
Constructor.
Creates an empty image patch, which can be set later using setImage.
| void ImagePatch::setImage | ( | const cv::Mat & | image, |
| cv::Rect | ROI, | ||
| int | setData = 1 , |
||
| int | setIntegral = 1 |
||
| ) |
Sets the ImagePatch to contain this image's data contained in ROI.
Any converting, and resizing must be done prior to calling setImage. The image must be of type IPL_DEPTH_8U (8-bit, unsigned integer), with a single channel.
| image | The image we want to represent. |
| ROI | The region of the image we want to represent. |
| setData | Copy the image data. This takes some memory, and is often not needed if we are only using integral based features. However, it is necessary for visualization of ImagePatch data, and may be useful for other feature types. |
| setIntegral | Compute the integral of the ImagePatch. This is required to apply BoxFeature to the ImagePatch. |
| void ImagePatch::setImage | ( | const cv::Mat & | image, |
| int | setData = 1 , |
||
| int | setIntegral = 1 |
||
| ) |
Sets the ImagePatch to contain this image's data.
Copies the whole image, so any cropping, converting, and resizing must be done prior to calling setImage. The image must be of type IPL_DEPTH_8U (8-bit, unsigned integer), with a single channel.
| image | The image we want to represent. |
| setData | Copy the image data. This takes some memory, and is often not needed if we are only using integral based features. However, it is necessary for visualization of ImagePatch data, and may be useful for other feature types. |
| setIntegral | Compute the integral of the ImagePatch. This is required to apply BoxFeature to the ImagePatch. |


replicasedit
Summaryedit
This command allows you to alter the number of replicas (per shard) for indices matching the specified criteria. This is useful if you would like to reduce your per-node shard count.
Setting this to zero will remove the default redundancy of 1 replica per shard. This is not recommended unless you have first created a backup/snapshot of the indices in question.
Flagsedit
$ curator replicas --help Usage: curator replicas [OPTIONS] COMMAND [ARGS]... Replica Count Per-shard Options: --count INTEGER Number of replicas the indices should have. --help Show this message and exit. Commands: indices Index selection.
This command requires the indices subcommand for index selection.
Exampleedit
Change the replica count to zero for matching indices:
curator replicas --count 0 indices <<index selection parameters>>


This menu is inspired by the left side menu found on YouTube. When clicking on the menu label and icon, the main menu appears beneath and the menu icon slides to the right side while the label slides up. To close the menu, the menu icon needs to be clicked again.


Coach Sifiso Mahima’s untimely death will leave a void in Lowveld cricketing circles
Sifiso Mahima has, through his involvement in cricket, carved a reputation as a hard-working, well-loved individual whose memory will live on in the hearts of Lowvelders for years to come.
by Enver WesselsThe Lowveld cricketing fraternity is in mourning following the tragic passing of much-loved cricket coach, Sifiso Mahima, in KaBokweni on Monday.
The Johan Rudolph Cricket Academy coach earned recognition for his dedication to the sport and plied his trade as a trainer at Hoërskool Nelspruit.
His motto, “It doesn’t matter if you win, as long as you give everything, every time”, still resonates with many who progressed through the ranks under his tutelage.
ALSO READ: Dogs impress at Honorary Rangers Indaba
According to Janine Cronjé of NHS, his death leaves a vacuum at the school, the academy and the wider cricket community.
“He crept into the hearts of the personnel and pupils, and everyone at the cricket academy raved about and him and will mourn his passing,” she said.
“There is a sombre mood at the academy, because Sifiso was an absolute legend here. The impact he had on the children and parents was unbelievable. It will be near impossible to find someone in his class with the knowledge and love for the sport and the children he coached,” said Johan Rudolph.
ALSO READ: Kaapsehoop spog met ‘n Siya van hul eie
The all-rounder possessed an encyclopaedic knowledge of the sport and represented Mpumalanga’s senior team. While he had a jovial personality, his work ethic shone through and he pushed his charges to give 100 per cent.
Cronjé added, “His passion for the sport was contagious and his love of working with children showed on and off the field.”
Mahima’s long-time friend and a prominent Lowveld cricketing figure, Idris Nomani, said he was probably the best all-rounder and a first-class cricketer.
ALSO READ: World champs coming to Mpumalanga next year
“I knew Sifiso since his schooling days. He initially coached at Uplands College, before moving to Johan Rudolph
Academy where he worked very well with the kids.
“He recently accepted a position at Hoërskool Nelspruit and retained his position at the academy, which speaks volumes about the hard work he was prepared to put in. Sifiso was also instrumental in setting up Malekutu Cricket
Academy in KaBokweni about 10 years ago.
“It will not be easy going forward without him, especially in cricketing circles in the Lowveld.”
ALSO READ: Laerskool Laeveld beloon toppresteerders
Sifiso Mahima is survived by his wife, Bongile, and two daughters. His funeral will be held at his home in KaBokweni at 06:00 on Saturday. A memorial service will be held at Hoërskool Nelspruit next Tuesday at 18:00.
Anyone interested in making any contributions to the funeral may drop any food off at 59A Melkweg Road. Direct
deposits may be paid into FNB cheque account<PHONE_NUMBER>5, code 250655, with “Sifiso” as reference.


LIST OF FAMILY TREES
On the MCC of OGS web sie
Click on a name to go to the selected family tree
Baker
Bertram
Brubach
Dillon
Frank / Franks
Gray
Hendershot
Hodge
Jung / Young
Kahrig
Kinkade
Latta
Mallory
Mellot, Baker, Laughery, Hartman
Nalley
Neuhart
Pfalzgraf
Pfeiffer
Raper
Riser
Vanwy
VanWye
Weber
Whitacre
Winland
Young
Click here for the Short-Cut Table of Contents


PMD Results
The following document contains the results of PMD 5.6.1.
Files
org/apache/ibatis/annotations/Mapper.java
| Violation |
Line |
| Too many static imports may lead to messy code |
16–40 |
org/apache/ibatis/builder/MapperBuilderAssistant.java
| Violation |
Line |
| Avoid empty catch blocks |
430–432 |
org/apache/ibatis/builder/SqlSourceBuilder.java
| Violation |
Line |
| Avoid empty if statements |
112–114 |
org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java
| Violation |
Line |
| Avoid empty catch blocks |
152–154 |
| Avoid empty catch blocks |
168–170 |
org/apache/ibatis/builder/annotation/ProviderSqlSource.java
| Violation |
Line |
| Useless parentheses. |
115 |
org/apache/ibatis/builder/xml/XMLMapperBuilder.java
| Violation |
Line |
| Avoid empty catch blocks |
150–152 |
| Avoid empty catch blocks |
165–167 |
| Avoid empty catch blocks |
180–182 |
| Avoid empty catch blocks |
245–247 |
| These nested if statements could be combined |
390–393 |
| Avoid empty catch blocks |
404–406 |
| These nested if statements could be combined |
408–414 |
org/apache/ibatis/builder/xml/XMLMapperEntityResolver.java
| Violation |
Line |
| Avoid empty catch blocks |
77–79 |
org/apache/ibatis/cursor/defaults/DefaultCursor.java
| Violation |
Line |
| Avoid empty catch blocks |
121–123 |
org/apache/ibatis/datasource/pooled/PooledDataSource.java
| Violation |
Line |
| Avoid empty catch blocks |
315–317 |
| Avoid empty catch blocks |
329–331 |
| These nested if statements could be combined |
519–550 |
| These nested if statements could be combined |
520–549 |
| Avoid empty catch blocks |
541–543 |
org/apache/ibatis/executor/BaseExecutor.java
| Violation |
Line |
| Avoid empty catch blocks |
288–290 |
org/apache/ibatis/executor/keygen/Jdbc3KeyGenerator.java
| Violation |
Line |
| Avoid empty catch blocks |
88–90 |
org/apache/ibatis/executor/loader/cglib/CglibProxyFactory.java
| Violation |
Line |
| Avoid empty catch blocks |
86–88 |
org/apache/ibatis/executor/loader/javassist/JavassistProxyFactory.java
| Violation |
Line |
| Avoid empty catch blocks |
86–88 |
org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java
| Violation |
Line |
| These nested if statements could be combined |
260–267 |
| Avoid empty catch blocks |
269–271 |
| Avoid empty catch blocks |
280–282 |
| Useless parentheses. |
438 |
| Useless parentheses. |
452 |
| Useless parentheses. |
524 |
org/apache/ibatis/executor/resultset/ResultSetWrapper.java
| Violation |
Line |
| Avoid empty catch blocks |
134–136 |
org/apache/ibatis/executor/statement/BaseStatementHandler.java
| Violation |
Line |
| Avoid empty catch blocks |
133–135 |
org/apache/ibatis/io/ClassLoaderWrapper.java
| Violation |
Line |
| Avoid empty catch blocks |
34–36 |
| Avoid empty catch blocks |
192–194 |
org/apache/ibatis/io/DefaultVFS.java
| Violation |
Line |
| Avoid empty catch blocks |
162–164 |
| Avoid empty catch blocks |
233–235 |
| Avoid empty catch blocks |
334–336 |
| Avoid empty catch blocks |
340–342 |
org/apache/ibatis/io/ExternalResources.java
| Violation |
Line |
| Avoid empty catch blocks |
64–66 |
org/apache/ibatis/io/VFS.java
| Violation |
Line |
| These nested if statements could be combined |
62–65 |
org/apache/ibatis/jdbc/ScriptRunner.java
| Violation |
Line |
| Avoid empty catch blocks |
157–159 |
| Avoid empty catch blocks |
187–189 |
| Avoid empty catch blocks |
256–258 |
org/apache/ibatis/jdbc/SqlRunner.java
| Violation |
Line |
| Avoid empty catch blocks |
88–90 |
| Avoid empty catch blocks |
123–125 |
| Avoid empty catch blocks |
134–136 |
| Avoid empty catch blocks |
156–158 |
| Avoid empty catch blocks |
188–190 |
| Avoid empty catch blocks |
197–199 |
| Avoid empty catch blocks |
252–254 |
org/apache/ibatis/logging/LogFactory.java
| Violation |
Line |
| Avoid empty catch blocks |
124–126 |
org/apache/ibatis/logging/nologging/NoLoggingImpl.java
| Violation |
Line |
| Avoid unused constructor parameters such as 'clazz'. |
25 |
org/apache/ibatis/logging/slf4j/Slf4jImpl.java
| Violation |
Line |
| Avoid empty catch blocks |
41–43 |
| Avoid empty catch blocks |
43–45 |
org/apache/ibatis/logging/stdout/StdOutImpl.java
| Violation |
Line |
| Avoid unused constructor parameters such as 'clazz'. |
25 |
org/apache/ibatis/mapping/Discriminator.java
| Violation |
Line |
| Avoid unused constructor parameters such as 'configuration'. |
37 |
org/apache/ibatis/mapping/ParameterMap.java
| Violation |
Line |
| Avoid unused constructor parameters such as 'configuration'. |
38 |
org/apache/ibatis/mapping/ResultMap.java
| Violation |
Line |
| Useless parentheses. |
96 |
org/apache/ibatis/mapping/VendorDatabaseIdProvider.java
| Violation |
Line |
| Avoid empty catch blocks |
88–90 |
org/apache/ibatis/reflection/Jdk.java
| Violation |
Line |
| Avoid empty catch blocks |
36–38 |
| Avoid empty catch blocks |
49–51 |
org/apache/ibatis/reflection/MetaClass.java
| Violation |
Line |
| Avoid empty catch blocks |
129–130 |
| Avoid empty catch blocks |
130–131 |
org/apache/ibatis/reflection/Reflector.java
| Violation |
Line |
| Avoid empty catch blocks |
83–85 |
| Useless parentheses. |
102 |
| Useless parentheses. |
103 |
| Avoid empty if statements |
131–133 |
| These nested if statements could be combined |
160–163 |
| Avoid empty catch blocks |
260–262 |
| Avoid empty catch blocks |
345–347 |
org/apache/ibatis/reflection/TypeParameterResolver.java
| Violation |
Line |
| These nested if statements could be combined |
201–203 |
org/apache/ibatis/reflection/property/PropertyCopier.java
| Violation |
Line |
| Avoid empty catch blocks |
37–39 |
org/apache/ibatis/reflection/property/PropertyNamer.java
| Violation |
Line |
| Useless parentheses. |
40 |
org/apache/ibatis/reflection/wrapper/CollectionWrapper.java
| Violation |
Line |
| Avoid unused constructor parameters such as 'metaObject'. |
32 |
org/apache/ibatis/session/SqlSessionFactoryBuilder.java
| Violation |
Line |
| Avoid empty catch blocks |
57–59 |
| Avoid empty catch blocks |
85–87 |
org/apache/ibatis/session/defaults/DefaultSqlSession.java
| Violation |
Line |
| Useless parentheses. |
317 |
org/apache/ibatis/session/defaults/DefaultSqlSessionFactory.java
| Violation |
Line |
| Avoid empty catch blocks |
139–141 |
org/apache/ibatis/type/TypeHandlerRegistry.java
| Violation |
Line |
| Avoid empty catch blocks |
315–317 |
| Avoid empty catch blocks |
410–412 |


A fault plane is simulated on which the theoretical striation
direction (MRSS)
for arbitrary orientations of the principal stresses and arbitrary shape factors of the stress-ellipsoid are
calculated with Bott's formula.
Calculation of MRSS:
Choose the projection, on the right
side, click on a shape factor, and put
in the values of s1
and s3.Now click
on a point for which you want to to produce a slickenside plane and the striation on it. Azimuth
of dip and angle of dip of the slickenside plane are shown in the list.
When you press "Terminate simulation" the striations
are added.


 It would be hard to fathom Cher not saying that to a much younger man in any of her starring roles, but in Tea with Mussolini, the single-monickered wonder actually doesn't have a sexual motive. Here, she plays Elsa, a snobby, art-collecting American Jew (disguised, of course, as Morticia Adams) who finds herself trapped in 1940's Florence as Mussolini quickly leads the country to the brink of war with England and France.
The kid losing his shirt is Luca (Baird Wallace, in his film debut), a teenage orphan that is, at first, an unwitting pawn in Elsa's attempt to smuggle desperate Jews out of Italy - she tapes passports to the boy's chest and tells him where to deliver them. And with the look and feel of the film, you almost expect Luca to bump into and run off with Dominique Sanda's Micol from The Garden of the Finzi-Continis, the 1970 Best Foreign Film winner that shares an obviously similar subject with Mussolini. Or maybe see Roberto Benigni's Guido (from fellow Oscar winner Life is Beautiful) crashing his bicycle into something. Or maybe even that dead guy from Il Postino.
Elsa's tea-drinking clique (nicknamed The Scorpioni) is an odd one. There is fellow American Georgie (Lily Tomlin, Krippendorf's Tribe), a lesbian archaeologist. There's Mary (Joan Plowright, Dennis the Menace), the warm, grandmotherly woman that raised the orphan Luca, who is actually the son of the man she works for. There's fragile and dippy Arabella (Judi Dench, Elizabeth), a dog-rescuing artist. But best of all, there's Hester (Maggie Smith, Sister Act 2: Back in the Habit) the blissfully ignorant widow of the former British ambassador to Italy. She blindly trusts Mussolini's personal assurances that no harm will come to her and her friends. Come on - who would trust somebody that looks like Mussolini? He looked like Brando in The Island of Dr. Moreau, for God's sake.
Among the rich vocal tones of Dench, Smith and Plowright, Cher's accent is, at first, like a slap in the face. Her character comes off as an arrogant loudmouth, and it's no surprise that Hester finds her obnoxious, whorish and a disgrace. But truth be told, Cher is actually fantastic. She looks decades younger than her actual age (so would you if you shot poison into your face to stop the aging process) and invigorates every scene her Elsa is in. But even though Cher gets top billing (the filmmakers would have you believe that it's because stars are listed in alphabetical order), her thunder is repeatedly stolen by Smith's tight-laced Hester. Her character is oblivious enough to not notice the things happening around her, but also strong enough to berate her captors into both knocking before they enter a lady's room and saying goodnight when they leave one.
Directed by Franco Zeffirelli (Jane Eyre), Mussolini was written by British novelist/playwright John Mortimer and is actually based loosely on Zeffirelli's own life (as told in his autobiography). While not as heavy-handed as Finzi-Continis or as light as Life is Beautiful, it successfully blends elements of both, and the result is one terrific film. (1:56 - PG for adult language, brief nudity and some mild violence)
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


FiLMiC Expands to Still Photos with its Firstlight Camera App for iOS
by Michael ZhangFiLMiC, the company that made a name for itself by helping iPhone users shoot 4K log footage, has expanded into the world of still photography by launching a new photo app for iOS called Firstlight. The app aims to offer high-end camera features through a clean and intuitive interface.
The freemium app has a solid list of advanced features in its basic free version, including basic exposure controls (tap for setting exposure/focus and tap again to lock), a proprietary AE Mode (for setting shutter/ISO combo), cross-swipe manual controls (swipe left/right for focus, swipe up/down for exposure), reactive analytics (focus peaking and zebra stripes automatically activated), an RGB histogram, vintage film simulations, film grain, vignetting, and a lens selector.
Other free features include a burst mode, timer, flash, grid overlays, aspect ratios (4:3, 16:9, 3:2, 1:1, and 5:4), expanded shadow detail, JPG/HEIC selection, HDR control, a volume button shutter, and support for most Bluetooth remotes.
As mentioned, Firstlight is a freemium app, meaning you can pay to unlock other features. Paid subscribers get shutter/ISO priority modes, expanded film simulations, additional film grain options (fine, coarse, and ISO adaptive instead of just medium), adjustable vignetting, a configurable burst mode, anamorphic adapter support, DNG RAW files, TIF uncompressed files, a custom function button, custom live analytics (adjust the colors/sensitivity of focus peaking and zebra stripes), and embedded copyright.
Here’s a short video introducing the app:
FiLMiC Firstlight is compatible with any device that runs iOS 13, and it’s available now as a free download through the Apple App Store. The “Premium Member Subscription” costs $1 per month or $8 if you prepay for a year.


{% extends "research/base.html" %} {% block page_title %}Case Studies{% endblock %} {% block main_content %}
Each year, our voter information tools and elections data are used by a wide array of organisations, while our expertise is often drawn upon by journalists and researchers. Below are some of our favourite examples.
Our data has also been used in multiple House of Commons Library research briefings. For examples of this, please see our 2021 election report.
For summaries of press coverage during individual elections, please see the relevant election report.
To access the data yourself, please see our data and API pages.
Wales Online (2022), 'Local elections 2022: The UK's most unusual polling stations'
NationalWorld (2022), 'Local elections 2022: how many candidates by party, youngest and oldest, gender split and most common names'
The Guardian (2021), '"Independents" day: the rise of hyperlocal political parties'
The Times (2019), 'Who are the general election candidates in my area?'
BBC News (2019), 'Council elections: 'Not enough' women and minorities stand'
In Your Area (2019), 'Local Elections 2019: Who you can vote for and where'
Democratic Audit (2018), 'England’s local elections 2018: bridging the information gap with the Democratic Dashboard'
The Electoral Commission (2017), 'Helping voters find out where to vote'
Oxford City Council (2017), 'Collaboration not reinvention'
Nation.Cymru (2021), 'If we want young people to turn out for the Senedd vote we must make it an election fit for digital natives'
TBD (2017), 'How Technology Can Disrupt Democracy'
The Guardian(2017), 'Democracy? There's an app for that - the tech upstarts trying to 'hack' British politics'
The Scotsman (2022), 'Council elections Scotland: Only 33% of candidates running for May local elections are female'
The Times (2022), 'Local election analysis says the typical candidate is a 47-year-old man called David'
Fawcett Society (2021), 'New data shows only a third of local election candidates are women'
Fawcett Society (2019), 'Lack of women candidates in local elections "puts councils behind the times"'
The Daily Telegraph (2017)'General election 2017 sees record level of female candidates'
Alex Parsons & Anna Powell-Smith (2023), 'Unlocking the Value of Fragmented Public Data' (mySociety and the Centre for Public Data)
Public Administration and Constitutional Affairs Committee (2022), 'The Work of the Electoral Commission'
House of Lords Democracy and Digital Technologies Select Committee (2020), 'Digital Technology and the Resurrection of Trust'
Flavio Grazian & Hendrik Nahr (2020), 'Next Level Participation: Citizen-Driven E-Democracy Tools' [PDF] (European Liberal Forum)
Owen Winter (2022), 'Did progressive electoral cooperation disproportionately hurt the Conservatives in the 2022 English local elections?', LSE British Politics and Policy
James Weinberg (2020), 'Emotional labour and occupational wellbeing in political office', The British Journal of Politics and International Relations
Genevieve Gorrell et. al. (2020), 'Which politicians Receive abuse? Four factors illuminated in the UK general election 2019', EPJ Data Science
James Weinberg (2020), 'Who Wants To Be a Politician? Basic Human Values and Candidate Emergence in the United Kingdom', British Journal of Political Science
Caitlin Milazzo & Joshua Townsley (2020), 'Conceived in Harlesden: Candidate-Centred Campaigning in British General Elections', Parliamentary Affairs


SUBROUTINE DTRSNA( JOB, HOWMNY, SELECT, N, T, LDT, VL, LDVL, VR, $ LDVR, S, SEP, MM, M, WORK, LDWORK, IWORK, $ INFO ) * * -- LAPACK routine (version 3.1) -- * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. * November 2006 * * Modified to call DLACN2 in place of DLACON, 5 Feb 03, SJH. * * .. Scalar Arguments .. CHARACTER HOWMNY, JOB INTEGER INFO, LDT, LDVL, LDVR, LDWORK, M, MM, N * .. * .. Array Arguments .. LOGICAL SELECT( * ) INTEGER IWORK( * ) DOUBLE PRECISION S( * ), SEP( * ), T( LDT, * ), VL( LDVL, * ), $ VR( LDVR, * ), WORK( LDWORK, * ) * .. * * Purpose * ======= * * DTRSNA estimates reciprocal condition numbers for specified * eigenvalues and/or right eigenvectors of a real upper * quasi-triangular matrix T (or of any matrix Q*T*Q**T with Q * orthogonal). * * T must be in Schur canonical form (as returned by DHSEQR), that is, * block upper triangular with 1-by-1 and 2-by-2 diagonal blocks; each * 2-by-2 diagonal block has its diagonal elements equal and its * off-diagonal elements of opposite sign. * * Arguments * ========= * * JOB (input) CHARACTER*1 * Specifies whether condition numbers are required for * eigenvalues (S) or eigenvectors (SEP): * = 'E': for eigenvalues only (S); * = 'V': for eigenvectors only (SEP); * = 'B': for both eigenvalues and eigenvectors (S and SEP). * * HOWMNY (input) CHARACTER*1 * = 'A': compute condition numbers for all eigenpairs; * = 'S': compute condition numbers for selected eigenpairs * specified by the array SELECT. * * SELECT (input) LOGICAL array, dimension (N) * If HOWMNY = 'S', SELECT specifies the eigenpairs for which * condition numbers are required. To select condition numbers * for the eigenpair corresponding to a real eigenvalue w(j), * SELECT(j) must be set to .TRUE.. To select condition numbers * corresponding to a complex conjugate pair of eigenvalues w(j) * and w(j+1), either SELECT(j) or SELECT(j+1) or both, must be * set to .TRUE.. * If HOWMNY = 'A', SELECT is not referenced. * * N (input) INTEGER * The order of the matrix T. N >= 0. * * T (input) DOUBLE PRECISION array, dimension (LDT,N) * The upper quasi-triangular matrix T, in Schur canonical form. * * LDT (input) INTEGER * The leading dimension of the array T. LDT >= max(1,N). * * VL (input) DOUBLE PRECISION array, dimension (LDVL,M) * If JOB = 'E' or 'B', VL must contain left eigenvectors of T * (or of any Q*T*Q**T with Q orthogonal), corresponding to the * eigenpairs specified by HOWMNY and SELECT. The eigenvectors * must be stored in consecutive columns of VL, as returned by * DHSEIN or DTREVC. * If JOB = 'V', VL is not referenced. * * LDVL (input) INTEGER * The leading dimension of the array VL. * LDVL >= 1; and if JOB = 'E' or 'B', LDVL >= N. * * VR (input) DOUBLE PRECISION array, dimension (LDVR,M) * If JOB = 'E' or 'B', VR must contain right eigenvectors of T * (or of any Q*T*Q**T with Q orthogonal), corresponding to the * eigenpairs specified by HOWMNY and SELECT. The eigenvectors * must be stored in consecutive columns of VR, as returned by * DHSEIN or DTREVC. * If JOB = 'V', VR is not referenced. * * LDVR (input) INTEGER * The leading dimension of the array VR. * LDVR >= 1; and if JOB = 'E' or 'B', LDVR >= N. * * S (output) DOUBLE PRECISION array, dimension (MM) * If JOB = 'E' or 'B', the reciprocal condition numbers of the * selected eigenvalues, stored in consecutive elements of the * array. For a complex conjugate pair of eigenvalues two * consecutive elements of S are set to the same value. Thus * S(j), SEP(j), and the j-th columns of VL and VR all * correspond to the same eigenpair (but not in general the * j-th eigenpair, unless all eigenpairs are selected). * If JOB = 'V', S is not referenced. * * SEP (output) DOUBLE PRECISION array, dimension (MM) * If JOB = 'V' or 'B', the estimated reciprocal condition * numbers of the selected eigenvectors, stored in consecutive * elements of the array. For a complex eigenvector two * consecutive elements of SEP are set to the same value. If * the eigenvalues cannot be reordered to compute SEP(j), SEP(j) * is set to 0; this can only occur when the true value would be * very small anyway. * If JOB = 'E', SEP is not referenced. * * MM (input) INTEGER * The number of elements in the arrays S (if JOB = 'E' or 'B') * and/or SEP (if JOB = 'V' or 'B'). MM >= M. * * M (output) INTEGER * The number of elements of the arrays S and/or SEP actually * used to store the estimated condition numbers. * If HOWMNY = 'A', M is set to N. * * WORK (workspace) DOUBLE PRECISION array, dimension (LDWORK,N+6) * If JOB = 'E', WORK is not referenced. * * LDWORK (input) INTEGER * The leading dimension of the array WORK. * LDWORK >= 1; and if JOB = 'V' or 'B', LDWORK >= N. * * IWORK (workspace) INTEGER array, dimension (2*(N-1)) * If JOB = 'E', IWORK is not referenced. * * INFO (output) INTEGER * = 0: successful exit * < 0: if INFO = -i, the i-th argument had an illegal value * * Further Details * =============== * * The reciprocal of the condition number of an eigenvalue lambda is * defined as * * S(lambda) = |v'*u| / (norm(u)*norm(v)) * * where u and v are the right and left eigenvectors of T corresponding * to lambda; v' denotes the conjugate-transpose of v, and norm(u) * denotes the Euclidean norm. These reciprocal condition numbers always * lie between zero (very badly conditioned) and one (very well * conditioned). If n = 1, S(lambda) is defined to be 1. * * An approximate error bound for a computed eigenvalue W(i) is given by * * EPS * norm(T) / S(i) * * where EPS is the machine precision. * * The reciprocal of the condition number of the right eigenvector u * corresponding to lambda is defined as follows. Suppose * * T = ( lambda c ) * ( 0 T22 ) * * Then the reciprocal condition number is * * SEP( lambda, T22 ) = sigma-min( T22 - lambda*I ) * * where sigma-min denotes the smallest singular value. We approximate * the smallest singular value by the reciprocal of an estimate of the * one-norm of the inverse of T22 - lambda*I. If n = 1, SEP(1) is * defined to be abs(T(1,1)). * * An approximate error bound for a computed right eigenvector VR(i) * is given by * * EPS * norm(T) / SEP(i) * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE, TWO PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0, TWO = 2.0D+0 ) * .. * .. Local Scalars .. LOGICAL PAIR, SOMCON, WANTBH, WANTS, WANTSP INTEGER I, IERR, IFST, ILST, J, K, KASE, KS, N2, NN DOUBLE PRECISION BIGNUM, COND, CS, DELTA, DUMM, EPS, EST, LNRM, $ MU, PROD, PROD1, PROD2, RNRM, SCALE, SMLNUM, SN * .. * .. Local Arrays .. INTEGER ISAVE( 3 ) DOUBLE PRECISION DUMMY( 1 ) * .. * .. External Functions .. LOGICAL LSAME DOUBLE PRECISION DDOT, DLAMCH, DLAPY2, DNRM2 EXTERNAL LSAME, DDOT, DLAMCH, DLAPY2, DNRM2 * .. * .. External Subroutines .. EXTERNAL DLACN2, DLACPY, DLAQTR, DTREXC, XERBLA * .. * .. Intrinsic Functions .. INTRINSIC ABS, MAX, SQRT * .. * .. Executable Statements .. * * Decode and test the input parameters * WANTBH = LSAME( JOB, 'B' ) WANTS = LSAME( JOB, 'E' ) .OR. WANTBH WANTSP = LSAME( JOB, 'V' ) .OR. WANTBH * SOMCON = LSAME( HOWMNY, 'S' ) * INFO = 0 IF( .NOT.WANTS .AND. .NOT.WANTSP ) THEN INFO = -1 ELSE IF( .NOT.LSAME( HOWMNY, 'A' ) .AND. .NOT.SOMCON ) THEN INFO = -2 ELSE IF( N.LT.0 ) THEN INFO = -4 ELSE IF( LDT.LT.MAX( 1, N ) ) THEN INFO = -6 ELSE IF( LDVL.LT.1 .OR. ( WANTS .AND. LDVL.LT.N ) ) THEN INFO = -8 ELSE IF( LDVR.LT.1 .OR. ( WANTS .AND. LDVR.LT.N ) ) THEN INFO = -10 ELSE * * Set M to the number of eigenpairs for which condition numbers * are required, and test MM. * IF( SOMCON ) THEN M = 0 PAIR = .FALSE. DO 10 K = 1, N IF( PAIR ) THEN PAIR = .FALSE. ELSE IF( K.LT.N ) THEN IF( T( K+1, K ).EQ.ZERO ) THEN IF( SELECT( K ) ) $ M = M + 1 ELSE PAIR = .TRUE. IF( SELECT( K ) .OR. SELECT( K+1 ) ) $ M = M + 2 END IF ELSE IF( SELECT( N ) ) $ M = M + 1 END IF END IF 10 CONTINUE ELSE M = N END IF * IF( MM.LT.M ) THEN INFO = -13 ELSE IF( LDWORK.LT.1 .OR. ( WANTSP .AND. LDWORK.LT.N ) ) THEN INFO = -16 END IF END IF IF( INFO.NE.0 ) THEN CALL XERBLA( 'DTRSNA', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) $ RETURN * IF( N.EQ.1 ) THEN IF( SOMCON ) THEN IF( .NOT.SELECT( 1 ) ) $ RETURN END IF IF( WANTS ) $ S( 1 ) = ONE IF( WANTSP ) $ SEP( 1 ) = ABS( T( 1, 1 ) ) RETURN END IF * * Get machine constants * EPS = DLAMCH( 'P' ) SMLNUM = DLAMCH( 'S' ) / EPS BIGNUM = ONE / SMLNUM CALL DLABAD( SMLNUM, BIGNUM ) * KS = 0 PAIR = .FALSE. DO 60 K = 1, N * * Determine whether T(k,k) begins a 1-by-1 or 2-by-2 block. * IF( PAIR ) THEN PAIR = .FALSE. GO TO 60 ELSE IF( K.LT.N ) $ PAIR = T( K+1, K ).NE.ZERO END IF * * Determine whether condition numbers are required for the k-th * eigenpair. * IF( SOMCON ) THEN IF( PAIR ) THEN IF( .NOT.SELECT( K ) .AND. .NOT.SELECT( K+1 ) ) $ GO TO 60 ELSE IF( .NOT.SELECT( K ) ) $ GO TO 60 END IF END IF * KS = KS + 1 * IF( WANTS ) THEN * * Compute the reciprocal condition number of the k-th * eigenvalue. * IF( .NOT.PAIR ) THEN * * Real eigenvalue. * PROD = DDOT( N, VR( 1, KS ), 1, VL( 1, KS ), 1 ) RNRM = DNRM2( N, VR( 1, KS ), 1 ) LNRM = DNRM2( N, VL( 1, KS ), 1 ) S( KS ) = ABS( PROD ) / ( RNRM*LNRM ) ELSE * * Complex eigenvalue. * PROD1 = DDOT( N, VR( 1, KS ), 1, VL( 1, KS ), 1 ) PROD1 = PROD1 + DDOT( N, VR( 1, KS+1 ), 1, VL( 1, KS+1 ), $ 1 ) PROD2 = DDOT( N, VL( 1, KS ), 1, VR( 1, KS+1 ), 1 ) PROD2 = PROD2 - DDOT( N, VL( 1, KS+1 ), 1, VR( 1, KS ), $ 1 ) RNRM = DLAPY2( DNRM2( N, VR( 1, KS ), 1 ), $ DNRM2( N, VR( 1, KS+1 ), 1 ) ) LNRM = DLAPY2( DNRM2( N, VL( 1, KS ), 1 ), $ DNRM2( N, VL( 1, KS+1 ), 1 ) ) COND = DLAPY2( PROD1, PROD2 ) / ( RNRM*LNRM ) S( KS ) = COND S( KS+1 ) = COND END IF END IF * IF( WANTSP ) THEN * * Estimate the reciprocal condition number of the k-th * eigenvector. * * Copy the matrix T to the array WORK and swap the diagonal * block beginning at T(k,k) to the (1,1) position. * CALL DLACPY( 'Full', N, N, T, LDT, WORK, LDWORK ) IFST = K ILST = 1 CALL DTREXC( 'No Q', N, WORK, LDWORK, DUMMY, 1, IFST, ILST, $ WORK( 1, N+1 ), IERR ) * IF( IERR.EQ.1 .OR. IERR.EQ.2 ) THEN * * Could not swap because blocks not well separated * SCALE = ONE EST = BIGNUM ELSE * * Reordering successful * IF( WORK( 2, 1 ).EQ.ZERO ) THEN * * Form C = T22 - lambda*I in WORK(2:N,2:N). * DO 20 I = 2, N WORK( I, I ) = WORK( I, I ) - WORK( 1, 1 ) 20 CONTINUE N2 = 1 NN = N - 1 ELSE * * Triangularize the 2 by 2 block by unitary * transformation U = [ cs i*ss ] * [ i*ss cs ]. * such that the (1,1) position of WORK is complex * eigenvalue lambda with positive imaginary part. (2,2) * position of WORK is the complex eigenvalue lambda * with negative imaginary part. * MU = SQRT( ABS( WORK( 1, 2 ) ) )* $ SQRT( ABS( WORK( 2, 1 ) ) ) DELTA = DLAPY2( MU, WORK( 2, 1 ) ) CS = MU / DELTA SN = -WORK( 2, 1 ) / DELTA * * Form * * C' = WORK(2:N,2:N) + i*[rwork(1) ..... rwork(n-1) ] * [ mu ] * [ .. ] * [ .. ] * [ mu ] * where C' is conjugate transpose of complex matrix C, * and RWORK is stored starting in the N+1-st column of * WORK. * DO 30 J = 3, N WORK( 2, J ) = CS*WORK( 2, J ) WORK( J, J ) = WORK( J, J ) - WORK( 1, 1 ) 30 CONTINUE WORK( 2, 2 ) = ZERO * WORK( 1, N+1 ) = TWO*MU DO 40 I = 2, N - 1 WORK( I, N+1 ) = SN*WORK( 1, I+1 ) 40 CONTINUE N2 = 2 NN = 2*( N-1 ) END IF * * Estimate norm(inv(C')) * EST = ZERO KASE = 0 50 CONTINUE CALL DLACN2( NN, WORK( 1, N+2 ), WORK( 1, N+4 ), IWORK, $ EST, KASE, ISAVE ) IF( KASE.NE.0 ) THEN IF( KASE.EQ.1 ) THEN IF( N2.EQ.1 ) THEN * * Real eigenvalue: solve C'*x = scale*c. * CALL DLAQTR( .TRUE., .TRUE., N-1, WORK( 2, 2 ), $ LDWORK, DUMMY, DUMM, SCALE, $ WORK( 1, N+4 ), WORK( 1, N+6 ), $ IERR ) ELSE * * Complex eigenvalue: solve * C'*(p+iq) = scale*(c+id) in real arithmetic. * CALL DLAQTR( .TRUE., .FALSE., N-1, WORK( 2, 2 ), $ LDWORK, WORK( 1, N+1 ), MU, SCALE, $ WORK( 1, N+4 ), WORK( 1, N+6 ), $ IERR ) END IF ELSE IF( N2.EQ.1 ) THEN * * Real eigenvalue: solve C*x = scale*c. * CALL DLAQTR( .FALSE., .TRUE., N-1, WORK( 2, 2 ), $ LDWORK, DUMMY, DUMM, SCALE, $ WORK( 1, N+4 ), WORK( 1, N+6 ), $ IERR ) ELSE * * Complex eigenvalue: solve * C*(p+iq) = scale*(c+id) in real arithmetic. * CALL DLAQTR( .FALSE., .FALSE., N-1, $ WORK( 2, 2 ), LDWORK, $ WORK( 1, N+1 ), MU, SCALE, $ WORK( 1, N+4 ), WORK( 1, N+6 ), $ IERR ) * END IF END IF * GO TO 50 END IF END IF * SEP( KS ) = SCALE / MAX( EST, SMLNUM ) IF( PAIR ) $ SEP( KS+1 ) = SEP( KS ) END IF * IF( PAIR ) $ KS = KS + 1 * 60 CONTINUE RETURN * * End of DTRSNA * END