Abstract
CL-INTERPOL is a library for Common Lisp which modifies the reader so that you can have interpolation within strings similar to Perl or Unix Shell scripts. It also provides various ways to insert arbitrary characters into literal strings even if your editor/IDE doesn't support them. Here's an example:* (ql:quickload :cl-interpol) * (named-readtables:in-readtable :interpol-syntax) * (let ((a 42)) #?"foo: \xC4\N{Latin capital letter U with diaeresis}\nbar: ${a}") "foo: ÄÜ bar: 42"If you're looking for an alternative syntax for characters, see CL-UNICODE.CL-INTERPOL comes with a BSD-style license so you can basically do with it whatever you want.
Download current version or visit the project on Github.
CL-INTERPOL comes with a system definition for ASDF so you can install the library with
(asdf:load-system :cl-interpol)if you've unpacked it in a place where ASDF can find it. It depends on CL-UNICODE and NAMED-READTABLES. Installation via asdf-install or Quicklisp should also be possible.
Note: Before you can actually use the new reader
syntax you have to enable it with
ENABLE-INTERPOL-SYNTAX
or via named-readtables:
(named-readtables:in-readtable :interpol-syntax)
You can run a test suite which tests most aspects of the library with
(asdf:test-system :cl-interpol)The test suite depends on FLEXI-STREAMS.
The development version of cl-interpol can be found on
github. Please use the github issue tracking system to
submit bug reports. Patches are welcome, please use GitHub pull
requests.
?
(question mark) as a
"sub-character" of the dispatching
macro character #
(sharpsign), i.e. it relies on
the fact that sharpsign is a dispatching macro character in the current
readtable when ENABLE-INTERPOL-SYNTAX
is invoked.
The question mark may optionally be followed by an R
and
an X
(case doesn't matter) - see the
section about regular expression syntax below. If both of them are
present, the R
must precede the X
.
The next character is the opening outer delimiter which may
be one of "
(double quote), '
(apostrophe), |
(vertical bar), #
(sharpsign), /
(slash), (
(left
parenthesis), <
(less than), [
(left
square bracket), or {
(left curly bracket). (But see *OUTER-DELIMITERS*
.)
The following characters comprise the string which is read until the
closing outer delimiter is seen. The closing outer delimiter
is the same character as the opening outer delimiter - unless the
opening delimiter was one of the last four described below in which
case the closing outer delimiter is the corresponding closing (right)
bracketing character. So these are all valid CL-INTERPOL string
equivalent to "abc"
:
* #?"abc" "abc" * #?r"abc" "abc" * #?x"abc" "abc" * #?rx"abc" "abc" * #?'abc' "abc" * #?|abc| "abc" * #?#abc# "abc" * #?/abc/ "abc" * #?(abc) "abc" * #?[abc] "abc" * #?{abc} "abc" * #?<abc> "abc"A character which would otherwise be a closing outer delimiter can be escaped by a backslash immediately preceding it (unless this backslash is itself escaped by another backslash). Also, the bracketing delimiters can nest, i.e. a right bracketing character which might otherwise be closing outer delimiter will be read as part of the string if it is matched by a preceding left bracketing character within the string.
* #?"abc" "abc" * #?"abc\"" "abc\"" * #?"abc\\" "abc\\" * #?[abc] "abc" * #?[a[b]c] "a[b]c" * #?[a[[b]]c] "a[[b]]c" * #?[a[[][]]b] "a[[][]]b"The characters between the outer delimiters are read one by one and inserted into the resulting string as is unless one of the special characters
\
(backslash), $
(dollar sign),
or @
(at-sign) is encountered. The behaviour with respect
to these special characters is modeled after Perl because CL-INTERPOL
is intended to be usable with CL-PPCRE.
man perlop
. Details below - you can
click on the entries in this table to go to the corresponding paragraph.
\t tab (HT, TAB)
\n newline (NL)
\r return (CR)
\f form feed (FF)
\b backspace (BS)
\a alarm (bell) (BEL)
\e escape (ESC)
\033 octal char (ESC)
\x1b hex char (ESC)
\x{263a} wide hex char (SMILEY)
\c[ control char (ESC)
\N{name} named char
\l lowercase next char
\u uppercase next char
\L lowercase till \E
\U uppercase till \E
\E end case modification
\Q quote non-word characters till \E
\ ignore the newline and following whitespaces
If a backslash is followed by
n
, r
, f
, b
,
a
, or e
(all lowercase) then the corresponding character
#\Newline
, #\Return
, #\Page
,
#\Backspace
, (CODE-CHAR 7)
, or
(CODE-CHAR 27)
is inserted into the string.
* #?"New\nline" "New line"
If a backslash is followed by one of
the digits 0
to 9
, then this digit and
the following characters are read and parsed as octal digits and will
be interpreted as the character code of the character to insert
instead of this sequence. The sequence ends with the first character
which is not an octal digit but at most three digits will be
read. Only the rightmost eight bits of the resulting number will be
used for the character code.
* #?"\40\040" " " ;; two spaces * (map 'list #'char-code #?"\0\377\777") (0 255 255) ;; note that \377 and \777 yield the same result * #?"Only\0403 digits!" "Only 3 digits!" * (map 'list #'identity #?"\9") (#\9)
If a backslash is followed by an x
(lowercase) the
following characters are read and parsed as hexadecimal digits and
will be interpreted as the character code of the character to insert
instead of this sequence. The sequence of hexadecimal digits ends with
the first character which is not one of the characters 0
to 9
, a
to f
, or A
to F
but at most two digits will be read. If the
character immediately following the x
is a {
(left curly bracket), then all the following characters up to a
}
(right curly bracket) must be hexadecimal digits and
comprise a number which'll be taken as the character code (and which
obviously should denote a character known by your Lisp
implementation). Note that in both case it is legal that zero digits
will be read which'll be interpreted as the character code
0
.
* (char #?"\x20" 0) #\Space * (char-code (char #?"\x" 0)) 0 * (char-code (char #?"\x{}" 0)) 0 * (unicode-name (char #?"\x{2323}" 0)) "SMILE" * #?"Only\x202 digits!" "Only 2 digits!"
If a backslash is followed by a
c
(lowercase) then the ASCII control
code of the following character is inserted into the string. Note
that this only defined for A
to Z
,
[
, \
, ]
, ^
, and
_
although CL-INTERPOL will also accept other
characters. In fact, the transformation is implemented as
(code-char (logxor #x40 (char-code (char-upcase <char>))))where
<char>
is the character following \c
.
* (char-name (char #?"\cH" 0)) ;; see 13.1.7 of the ANSI standard, though "Backspace" * (char= (char #?"\cj" 0) #\Newline) T
If a backslash is followed by an
N
(uppercase) the following character must be a
{
(left curly bracket). The characters
following the bracket are read until a }
(right curly bracket) is seen and comprise the Unicode name
of the character to be inserted into the string. This name is
interpreted as a Unicode character name
by CL-UNICODE and returns
the
character CHARACTER-NAMED
.
This obviously also means that you can fine-tune this behaviour using
CL-UNICODE's global special variables.
* (unicode-name (char #?"\N{Greek capital letter Sigma}" 0)) "GREEK CAPITAL LETTER SIGMA" * (unicode-name (char #?"\N{GREEK CAPITAL LETTER SIGMA}" 0)) "GREEK CAPITAL LETTER SIGMA" * (setq *try-abbreviations-p* t) T * (unicode-name (char #?"\N{Greek:Sigma}" 0)) "GREEK CAPITAL LETTER SIGMA" * (unicode-name (char #?"\N{Greek:sigma}" 0)) "GREEK SMALL LETTER SIGMA" * (setq *scripts-to-try* "Greek") "Greek" * (unicode-name (char #?"\N{Sigma}" 0)) "GREEK CAPITAL LETTER SIGMA" * (unicode-name (char #?"\N{sigma}" 0)) "GREEK SMALL LETTER SIGMA"Of course,
\N
won't magically make your Lisp implementation Unicode-aware. You can only use the names of characters that are actually supported by your Lisp.
If a backslash is followed by an
l
or a u
(both lowercase) the following
character (if any) is downcased or uppercased respectively.
* #?"\lFOO" "fOO" * #?"\ufoo" "Foo" * #?"\l" ""
If a backslash is followed by an
L
or a U
(both uppercase) the following
characters up to \E
(uppercase) or another \L
or
\U
are upcased
or downcased respectively. While \E
simply ends the
scope of \L
or \U
, another \L
or \U
will introduce a new round of upcasing or
downcasing.
* #?"\Ufoo\Ebar" "FOObar" * #?"\LFOO\EBAR" "fooBAR" * #?"\LFOO\Ubar" "fooBAR" * #?"\LFOO" "foo"These examples may seem trivial but
\U
and friends might be very helpful if you interpolate strings.
If a backslash is followed by a
Q
(uppercase) the following characters up to \E
(uppercase) are quoted, i.e. every character except for 0
to 9
, a
to z
, A
to Z
, and _
(underscore) is preceded by a backslash. Corresponding pairs of \Q
and \E
can be nested.
* #?"-\Q-\E-" "-\\--" * #?"\Q-\Q-\E-\E" "\\-\\\\\\-\\-" * #?"-\Q-" "-\\-"As you might have noticed,
\E
is used to end the scope of \Q
as well as that of \L
and \U
. As a consequence, pairs of \Q
and \E
can be nested between \L
or \U
and \E
and vice-versa but each occurence of \L
or \U
which is preceded by another \L
or \U
will immediately end the scope of all enclosed \Q
modifiers. Hmm, need an example?
* #?"\LAa-\QAa-\EAa-\E" "aa-aa\\-aa-" * #?"\QAa-\LAa-\EAa-\E" "Aa\\-aa\\-Aa\\-" * #?"\U\QAa-\LAa-\EAa-\E" "AA\\-aa-Aa-" ;; note that only the first hyphen is quoted nowQuoting characters with
\Q
is especially helpful if you want to interpolate a string verbatim into a regular expression.
If a backslash is placed at the end of a line, it works as the tilde newline directive to Common Lisp's FORMAT
function. That is, the newline immediately following the backslash and any non-newline whitespace characters after the newline are ignored. This escape sequence allows to break long string literals into several lines of code, so as to maintain convenient line width and indentation of code.
* #?"@@ -1,11 +1,12 @@\n Th\n-e\n+at\n quick b\n\ @@ -22,18 +22,17 @@\n jump\n-s\n+ed\n over \n\ -the\n+a\n laz\n" "@@ -1,11 +1,12 @@ Th -e +at quick b @@ -22,18 +22,17 @@ jump -s +ed over -the +a laz "
All other characters following a backslash are left as is and inserted into the string. This is also true for the backslash itself, for $
, @
, and - as mentioned above - for the outer closing delimiter.
* #?"\"\\f\o\o\"" "\"\\foo\""
$
(dollar sign) or @
(at-sign) is seen
and followed by one of {
(left curly bracket), [
(left square bracket), <
(less than), or (
(left parenthesis) (but see *INNER-DELIMITERS*
), the
characters following the bracket are read up to the corresponding closing (right)
bracketing character. They are read as Lisp forms and treated as an implicit
progn the result of which will be inserted into the string at
execution time. (Technically this is done by temporarily making the syntax of the closing right bracketing character in the current
readtable be the same as the syntax of )
(right parenthesis) in the standard readtable and then reading the forms with READ-DELIMITED-LIST
.)
The result of the forms following a $
(dollar sign) is inserted into the string as with PRINC
at execution time. The result of the forms following an @
(at-sign) must be a list. The elements of this list are inserted into the string one by one as with PRINC
interspersed (or "joined" if you prefer) with the contents of the variable *LIST-DELIMITER*
(also inserted as with PRINC
).
Every other $
or @
is inserted into the string as is.
* (let* ((a "foo") (b #\Space) (c "bar") (d (list a b c)) (x 40)) (values #?"$ @" #?"$(a)" #?"$<a>$[b]" #?"\U${a}\E \u${a}" (let ((*list-delimiter* #\*)) #?"@{d}") (let ((*list-delimiter* "")) #?"@{d}") #?"The result is ${(let ((y 2)) (+ x y))}" #?"${#?'${a} ${c}'} ${x}")) ;; note the embedded CL-INTERPOL string "$ @" "foo" "foo " "FOO Foo" "foo* *bar" "foo bar" "The result is 42" "foo bar 40"Interpolations are realized by creating code which is evaluated at execution time. For example, the expansion of
#?"\Q-\l${(let ((x 40)) (+ x 2))}"
might look
like this:
(with-output-to-string (#:G1098) (write-string (cl-ppcre:quote-meta-chars (with-output-to-string (#:G1099) (write-string "-" #:G1099) (let ((#:G1100 (format nil "~A" (progn (let ((x 40)) (+ x 2)))))) (when (plusp (length #:G1100)) (setf (char #:G1100 0) (char-downcase (char #:G1100 0)))) (write-string #:G1100 #:G1099)))) #:G1098))However, if a string read by CL-INTERPOL does not contain interpolations, it is guaranteed to be expanded into a constant Lisp string.
/
(slash) - but see *REGEX-DELIMITERS*
. It is also on if there's an r
(lowercase or uppercase) in front of the opening outer delimiter. If there's also an x
(lowercase or uppercase) in front of the opening outer delimiter (but behind the r
if it's there), the string will be read in extended mode (see man perlre
for a detailed explanation). In these modes the following things are different from what's described above:
\p
, \P
, \w
, \W
, \s
,
\S
, \d
, and \D
are never
converted to their unescaped (backslash-less) counterparts because
they have or can have a special meaning in regular expressions.
* #?#\W\o\w# "Wow" * #?/\W\o\w/ "\\Wo\\w" * #?r#\W\o\w# "\\Wo\\w"
\k
, \b
, \B
,
\a
, \z
, and \Z
are only
converted to their unescaped (backslash-less) counterparts if they are within a character class (i.e. enclosed in square brackets) because
they have a special meaning in regular expressions outside of character classes.
* #?/\A[\A-\Z]\Z/ "\\A[A-Z]\\Z" * #?/\A[]\A-\Z]\Z/ "\\A[]A-Z]\\Z" * #?/\A[^]\A-\Z]\Z/ "\\A[^]A-Z]\\Z"
\8
or \9
in compliance with Perl.)
* (map 'list #'identity #?/\0\40[\40]/) (#\Null #\\ #\4 #\0 #\[ #\Space #\])
* #?"\x2B\\\.[\.]" "+\\.[.]" * #?/\x2B\\\.[\.]/ "\\+\\\\\\.[.]" ;; note that the second dot is not 'protected' because it's in a character class
(?#...)
) are removed from the string - with the exception that they are replaced with (?:)
(a non-capturing, empty group which will be otimized away by CL-PPCRE) if the next character is a hexadecimal digit.
* #?/A(?#n embedded) comment/ "A comment" * #?/\1(?#)2/ "\\1(?:)2" ;; instead of "\\12" which has a different meaning to the regex engine
*INNER-DELIMITERS*
).
* (let ((a 42)) (values #?"$(a)" #?"${a}" #?/$(a)/ #?/${a}/)) "42" "42" "$(a)" "42"
#\Space
, #\Tab
, #\Linefeed
, #\Return
, and #\Page
) are removed from the string unless they are escaped by a backslash or within a character class.
* #?/ \ [ ]/ " [ ]" ;; two spaces in front of square bracket * #?x/ \ [ ]/ " [ ]" ;; one space in front of square bracket
#
(sharpsign) and ending with the newline character) are removed from the string - with the exception that they are replaced with (?:)
(a non-capturing, empty group which will be otimized away by CL-PPCRE) if the next character is a hexadecimal digit.
* #?x/[a-z]#blabla \$/ "[a-z]$" * #?x/\1# 2/ "\\1(?:)2" ;; instead of "\\12" which has a different meaning to the regex engine
* (let ((scanner (cl-ppcre:create-scanner " a\\ a " :extended-mode t))) (cl-ppcre:scan scanner "a a")) 0 3 #() #() * (let ((scanner (cl-ppcre:create-scanner #?x/ a\ a /))) (cl-ppcre:scan scanner "a a")) 0 3 #() #() * (let ((scanner (cl-ppcre:create-scanner #?x/ a\ a / :extended-mode t))) ;; wrong, because extended mode is applied twice (cl-ppcre:scan scanner "a a")) NIL
[Macro]
enable-interpol-syntax &key modify-*readtable*=> |
This is used to enable the reader syntax described above. This macro expands into an
EVAL-WHEN
so that if you use it as a top-level form in a file to be loaded and/or compiled it'll do what you expect.If the parameter
modify-*readtable*
is NIL (the default) this will push the current readtable on a stack so that matching calls ofENABLE-INTERPOL-SYNTAX
andDISABLE-INTERPOL-SYNTAX
can nest. Otherwise the current value of*readtable*
will be modified.Note: by default the reader syntax is not enabled after loading CL-INTERPOL.
[Macro]
disable-interpol-syntax => |
This is used to disable the reader syntax described above. This macro expands into anEVAL-WHEN
so that if you use it as a top-level form in a file to be loaded and/or compiled it'll do what you expect. Technically this'll pop a readtable from the stack described above so that matching calls ofENABLE-INTERPOL-SYNTAX
andDISABLE-INTERPOL-SYNTAX
can nest. If the stack is empty (i.e. whenDISABLE-INTERPOL-SYNTAX
is called without a preceding call toENABLE-INTERPOL-SYNTAX
), the standard readtable is re-established.
[Special variable]
*list-delimiter*
The contents of this variable are inserted between the elements of a list interpolated with@
at execution time. They are inserted as withPRINC
. The default value is" "
(one space).
[Special variable]
*outer-delimiters*
This is a list of acceptable outer delimiters. The elements of this list are either characters or dotted pairs the car and cdr of which are characters. A character denotes a delimiter like'
(apostrophe) which is the opening as well as the closing delimiter. A dotted pair like(#\{ . #\})
denotes a pair of matching bracketing delimiters. The name of this list is exported so that you can customize CL-INTERPOL's behaviour by removing elements from this list, you are advised not to add any - specifically you should not add alphanumeric characters or the backslash. Note that this variable has effect at read time so you probably need to wrap anEVAL-WHEN
around forms that change its value. The default value is'((#\( . #\)) (#\{ . #\}) (#\< . #\>) (#\[ . #\]) #\/ #\| #\" #\' #\#))
[Special variable]
*inner-delimiters*
This is a list of acceptable delimiters for interpolation. The elements of this list are either characters or dotted pairs the car and cdr of which are characters. A character denotes a delimiter like'
(apostrophe) which is the opening as well as the closing delimiter. A dotted pair like(#\{ . #\})
denotes a pair of matching bracketing delimiters. The name of this list is exported so that you can customize CL-INTERPOL's behaviour by removing elements from this list, you are advised not to add any - specifically you should not add alphanumeric characters or the backslash. Note that this variable has effect at read time so you probably need to wrap anEVAL-WHEN
around forms that change its value. The default value is'((#\( . #\)) (#\{ . #\}) (#\< . #\>) (#\[ . #\]))
[Special variable]
*interpolate-format-directives*
This is a boolean value which determines if the ~ character signals the start of an inline format directive. When T sequences with this form:~paramsX(form)Will be passed tocl:format
, withFORM
as the one and only argument andparams
andX
are the format directive (with the same syntax as incl:format
). Examples:* (let ((x 42)) #?"An integer: ~D(x) ~X(x) ~8,'0B(x)") "An integer: 42 2A 00101010"
[Special variable]
*regex-delimiters*
This is a list of opening outer delimiters which automatically switch CL-INTERPOL's regular expression mode on. The elements of this list are characters. An element of this list must also be an element of*OUTER-DELIMITERS*
to have any effect. Note that this variable has effect at read time so you probably need to wrap anEVAL-WHEN
around forms that change its value. The default value is the one-element list'(#\/)
.
{n,m}
modifiers in extended mode{n,m}
modifiers differently from CL-PPCRE or Perl in extended mode if they contain whitespace. CL-INTERPOL will simply remove the whitespace and thus make them valid modifiers for CL-PPCRE while Perl will remove the whitespace but not recognize the character sequence as a modifier. CL-PPCRE behaves like Perl - you decide if this behaviour is sane...:)
* (let ((scanner (cl-ppcre:create-scanner "^a{3, 3}$" :extended-mode t))) (cl-ppcre:scan scanner "aaa")) NIL * (let ((scanner (cl-ppcre:create-scanner "^a{3, 3}$" :extended-mode t))) (cl-ppcre:scan scanner "a{3,3}")) 0 6 #() #() * (cl-ppcre:scan #?x/^a{3, 3}$/ "aaa") 0 3 #() #() * (cl-ppcre:scan #?x/^a{3, 3}$/ "a{3, 3}") NIL
$Header: /usr/local/cvsrep/cl-interpol/doc/index.html,v 1.39 2008/07/25 12:52:00 edi Exp $


Functions
Unordered List
Generates an HTML unordered list from an single or
multi-dimensional array.
« More »
Ordered List
Generates an HTML ordered list from an single or multi-dimensional array.
« More »
_list¶
Generates the list
Generates an HTML ordered list from an single or multi-dimensional array.
« More »
img¶
Image
Generates an image element
« More »
doctype¶
Doctype
Generates a page document type declaration
Examples of valid options: html5, xhtml-11, xhtml-strict, xhtml-trans,
xhtml-frame, html4-strict, html4-trans, and html4-frame.
All values are saved in the doctypes config file.
 The video element can
contain one or more video sources
« More »
audio¶
Audio
Generates an audio element to embed sounds
« More »
source¶
Source
Generates a source element that specifies multiple media resources
for either audio or video element
« More »
track¶
Track
Generates a track element to specify timed tracks. The tracks are
formatted in WebVTT format.

« More »
dasherize¶
Replaces underscores with dashes in the string.
« More »
ordinal¶
Returns the suffix that should be added to a
number to denote the position in an ordered
sequence such as 1st, 2nd, 3rd, 4th.
« More »
ordinalize¶
Turns a number into an ordinal string used
to denote the position in an ordered sequence
such as 1st, 2nd, 3rd, 4th.
« More »
directory_map¶
Create a Directory Map
Reads the specified directory and builds an array
representation of it. Sub-folders contained with the
directory will be mapped as well.
« More »
write_file¶
Write File
Writes data to the file specified in the path.
Creates a new file if non-existent.
« More »
delete_files¶
Delete Files
Deletes all files contained in the supplied directory path.
Files must be writable or owned by the system in order to be deleted.
If the second parameter is set to true, any directories contained
within the supplied base directory will be nuked as well.

Any sub-folders contained within the specified path are read as well.
« More »
get_dir_file_info¶
Get Directory File Information
Reads the specified directory and builds an array containing the filenames,
filesize, dates, and permissions
Any sub-folders contained within the specified path are read as well.
« More »
get_file_info¶
Get File Info
Given a file and path, returns the name, path, size, date modified
Second parameter allows you to explicitly declare what information you want returned
Options are: name, server_path, size, date, readable, writable, executable, fileperms
Returns false if the file cannot be found.
« More »
symbolic_permissions¶
Symbolic Permissions
Takes a numeric value representing a file's permissions and returns
standard symbolic notation representing that value
« More »
octal_permissions¶
Octal Permissions
Takes a numeric value representing a file's permissions and returns
a three character string representing the file's octal permissions
« More »
set_cookie¶
Set cookie
Accepts seven parameters, or you can submit an associative
array in the first parameter containing all the values.
« More »
get_cookie¶
Fetch an item from the COOKIE array
« More »
site_url¶
Return a site URL to use in views
« More »
base_url¶
Return the base URL to use in views
« More »
current_url¶
Current URL
Returns the full URL (including segments) of the page where this
function is placed
« More »
previous_url¶
Returns the previous URL the current visitor was on. For security reasons
we first check in a saved session variable, if it exists, and use that.
If that's not available, however, we'll use a sanitized url from $_SERVER['HTTP_REFERER']
which can be set by the user so is untrusted and not set by certain browsers/servers.
« More »
uri_string¶
URL String
Returns the path part of the current URL
« More »
index_page¶
Index page
Returns the "index_page" from your config file
« More »
anchor¶
Anchor Link
Creates an anchor based on the local URL.
« More »
safe_mailto¶
Encoded Mailto Link
Create a spam-protected mailto link written in Javascript
« More »
auto_link¶
Auto-linker
Automatically links URL and Email addresses.
Note: There's a bit of extra code here to deal with
URLs or emails that end in a period. We'll strip these
off and add them after the link.
« More »
prep_url¶
Prep URL - Simply adds the http:// part if no scheme is included.
Formerly used URI, but that does not play nicely with URIs missing
the scheme.
« More »
url_title¶
Create URL Title
Takes a "title" string as input and creates a
human-friendly URL string with a "separator" string
as the word separator.
« More »
word_limiter¶
Word Limiter
Limits a string to X number of words.
« More »
character_limiter¶
Character Limiter
Limits the string based on the character count. Preserves complete words
so the character count may not be exactly as specified.
« More »
ascii_to_entities¶
High ASCII to Entities
Converts high ASCII text and MS Word special characters to character entities
« More »
entities_to_ascii¶
Entities to ASCII
Converts character entities back to ASCII
« More »
word_censor¶
Word Censoring Function
Supply a string and an array of disallowed words and any
matched words will be converted to #### or to the replacement
word you've submitted.
 Maintains the integrity of words.
Anything placed between {unwrap}{/unwrap} will not be word wrapped, nor
will URLs.
« More »
ellipsize¶
Ellipsize String
This function will strip tags from a string, split it at its max_length and ellipsize
« More »
strip_slashes¶
Strip Slashes
Removes slashes contained in a string or in an array
« More »
strip_quotes¶
Strip Quotes
Removes single and double quotes from a string
« More »
quotes_to_entities¶
Quotes to Entities
Converts single and double quotes to entities
« More »
reduce_double_slashes¶
Reduce Double Slashes
Converts double slashes in a string to a single slash,
except those found in http://
http://www.some-site.com//index.php
becomes:
http://www.some-site.com/index.php
« More »
reduce_multiples¶
Reduce Multiples
Reduces multiple instances of a particular character.
 See docs...
« More »
excerpt¶
Excerpt.
Allows to extract a piece of text surrounding a word or phrase.
« More »
set_value¶
Form Value
Grabs a value from the POST array for the specified field so you can
re-populate an input field or textarea
« More »
set_select¶
Set Select
Let's you set the selected value of a <select> menu via data in the POST array.
If Form Validation is active it retrieves the info from the validation class
« More »
set_checkbox¶
Set Checkbox
Let's you set the selected value of a checkbox via the value in the POST array.
If Form Validation is active it retrieves the info from the validation class
« More »
set_radio¶
Set Radio
Let's you set the selected value of a radio field via info in the POST array.
If Form Validation is active it retrieves the info from the validation class
« More »
xml_convert¶
Convert Reserved XML characters to Entities
« More »
Classes, interfaces and traits
CacheInterface¶
CodeIgniter
An open source application development framework for PHP
This content is released under the MIT License (MIT)
Copyright (c) 2014-2019 British Columbia Institute of Technology
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.
« More »
HandlerInterface¶
CodeIgniter
An open source application development framework for PHP
This content is released under the MIT License (MIT)
Copyright (c) 2014-2019 British Columbia Institute of Technology
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.
« More »
ImageHandlerInterface¶
CodeIgniter
An open source application development framework for PHP
This content is released under the MIT License (MIT)
Copyright (c) 2014-2019 British Columbia Institute of Technology
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.
« More »
PreparedQueryInterface¶
CodeIgniter
An open source application development framework for PHP
This content is released under the MIT License (MIT)
Copyright (c) 2014-2019 British Columbia Institute of Technology
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.
« More »
ThrottlerInterface¶
CodeIgniter
An open source application development framework for PHP
This content is released under the MIT License (MIT)
Copyright (c) 2014-2019 British Columbia Institute of Technology
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.
« More »
ComposerScripts¶
ComposerScripts
These scripts are used by Composer during installs and updates
to move files to locations within the system folder so that end-users
do not need to use Composer to install a package, but can simply
download
« More »
DatabaseException¶
CodeIgniter
An open source application development framework for PHP
This content is released under the MIT License (MIT)
Copyright (c) 2014-2019 British Columbia Institute of Technology
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.
« More »
DOMParser¶
CodeIgniter
An open source application development framework for PHP
This content is released under the MIT License (MIT)
Copyright (c) 2014-2019 British Columbia Institute of Technology
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.
« More »
Entity¶
CodeIgniter
An open source application development framework for PHP
This content is released under the MIT License (MIT)
Copyright (c) 2014-2019 British Columbia Institute of Technology
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.
« More »
FileLocator¶
Class FileLocator
Allows loading non-class files in a namespaced manner.
Works with Helpers, Views, etc.
« More »
ForeignCharacters¶
CodeIgniter
An open source application development framework for PHP
This content is released under the MIT License (MIT)
Copyright (c) 2014-2019 British Columbia Institute of Technology
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.
« More »
Message¶
CodeIgniter
An open source application development framework for PHP
This content is released under the MIT License (MIT)
Copyright (c) 2014-2019 British Columbia Institute of Technology
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.
« More »
Model¶
Class Model
The Model class provides a number of convenient features that
makes working with a database table less painful.
It will:
- automatically connect to database
- allow intermingling calls between db connection, the builder,
and methods in this class.
- simplifies pagination
- removes the need to use Result object directly in most cases
- allow specifying the return type (array, object, etc) with each call
- ensure validation is run against objects when saving items
« More »
Plugins¶
CodeIgniter
An open source application development framework for PHP
This content is released under the MIT License (MIT)
Copyright (c) 2014-2019 British Columbia Institute of Technology
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.
« More »
URI¶
CodeIgniter
An open source application development framework for PHP
This content is released under the MIT License (MIT)
Copyright (c) 2014-2019 British Columbia Institute of Technology
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.
« More »
View¶
CodeIgniter
An open source application development framework for PHP
This content is released under the MIT License (MIT)
Copyright (c) 2014-2019 British Columbia Institute of Technology
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.
« More »


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Grayscale is open source and MIT licensed. This means you can use it for any project - even commercial projects! Download it, customize it, and publish your website! Grayscale is open source and MIT licensed. This means you can use it for any project - even commercial projects! Download it, customize it, and publish your website! Hello World
Grayscale is open source and MIT licensed. This means you can use it for any project - even commercial projects! Download it, customize it, and publish your website! Grayscale is open source and MIT licensed. This means you can use it for any project - even commercial projects! Download it, customize it, and publish your website! Hello World
Grayscale is open source and MIT licensed. This means you can use it for any project - even commercial projects! Download it, customize it, and publish your website! Grayscale is open source and MIT licensed. This means you can use it for any project - even commercial projects! Download it, customize it, and publish your website! Hello World


5+ years of software engineering and data analysis experiences. Dedicated and innovative computer science graduate student offering solid fundamentals in software engineering and data science. Adaptable in new technologies based on the solid fundamentals obtained through experiences in various technical environments.
Atlanta, US, Spring 2020
Master of Science in CS
Seoul, South Korea, Feb 2013
Bachelor of Science in CSE
Responsible for maintenance of LG Electronics web based systems interfacing with ERP solutions and other 3rd party systems.
Participated in complete Software Development Life Cycle(SDLC) for its in-house applications.
Involved in remote control applications research and a design of a windows service application to detect access of remote control.


THE salmon recipe of your dreams!  PLUS the bonus of having only one pan to wash a will help you ,also you can get healthy cookies salmon for you
THE salmon recipe of your dreams!  PLUS the bonus of having only one pan to wash a will help you ,also you can get healthy cookies salmon for you
THE salmon recipe of your dreams!  PLUS the bonus of having only one pan to wash a will help you ,also you can get healthy cookies salmon for you


@** * Copyright (C) 2014 Johannes Unterstein<EMAIL_ADDRESS>unterstein.info * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @(id: Long, form: Form[controllers.UserController.CaseUser], mode: String = "create")(implicit request: play.api.mvc.Request[Any], lang: Lang) @import neo4j.models.user.UserState @import neo4j.models.user.UserRole @import neo4j.models.user.User @import global.Global @import views.html.helper.{inputRow, textareaRow, formErrors, dropDownRow} @mainPage(Html(Messages("user." + mode + ".title"))) { @helper.form(if(id >= 0) { routes.UserController.postEdit(id) } else {routes.UserController.postCreate }) { @formErrors(form.asInstanceOf[Form[Any]])


Ziegler Gallery
Groningen
10 February - 2 March 1997
Opening, Sunday 9 February, 16:00 hours
by Jules van de Vijver
with live music by Ras Collins
Sledemennerstraat 13, 9718 BW, Groningen,
The Netherlands
tel: +27 (0)50 525 1608 or +27 (0)50 318 2994 - Jannie van der
Schans
Gallery personnel
Jannie van der Schans
Linda Nijenhof
Ina Klaassen
Jan Tengbergen
Jochen Schone
Iebel Vlieg
Diana Lourens
I would like to thank the following people who have all
contributed in helping to set up the exhibition:
Jacques Coetzer
Lean Coetzer
Maarten Hazebroek
Arnold Markerink
Selby Gildemacher
Internet
System administrator - Arthur Elsenaar
Text editor - Willem Groenewegen
Financial Assistance
de Gemeente Groningen
SCAN, Academie Minerva, Groningen
Special thanks to Jules van de Vijver for his advice &
support as well as his speech at the opening of the installation
This exhibition is dedicated to my father, Manie van der
Schijff
Johann van der Schijff
February 1997


| < Day Day Up > |
|
[SYMBOL]
[A]
[B]
[C]
[D]
[E]
[F]
[G]
[H]
[I]
[J]
[K]
[L]
[M]
[N]
[O]
[P]
[Q]
[R]
[S]
[T]
[U]
[V]
[W]
[X]
data clumpy data distribution via replication database administrator account privileges database dumps database version db table 2nd DBIx::DBCluster module deadlocks DELAY_KEY_WRITE option, MyISAM storage engine delayed key writes deletion id dictionaries dirty reads disks [See also RAID] IDE versus SCSI disks seek time server performance, impact on DMZs drop and reimport table conversion method dual master replication configuration dumps disadvantages duplex mismatch |
| < Day Day Up > |


Website that visualizes carbon emissions data of the Dartmouth Outing Club with illustrations and fun visuals. Decisions on style and flow are centered on the desire to create an accessible site that is clean, engaging, credible, motivating and inspiring. Key features include: data visualization with parallax illustrations, carbon emissions calculator and about page. The calculator page is still under construction.
The Dartmouth Outing Club runs recreational trips that produce carbon emissions and there is no accessible way to keep track of that. The DOC has set a goal to become carbon neutral by 2020. As part of this goal, they aim to reduce carbon emissions from the trips they run. They had a Squarespace website that introduced the DOC Environmental Stewardship Committee. However, it was not suitable for data management as well as up-to-date data visualization. As the solution, we made a platform to visualize data on the past and present carbon footprint which changes synchronously whenever data is updated. It also enables trip leaders to calculate the carbon footprint of a potential trip.
Environmental infographics
Trendy low-poly environment illustrations and vector art
Website that introduces and explains carbon emissions data of the Dartmouth Outing Club with illustrations and fun visuals. Decisions on style and flow are centered on the desire to create an accessible site that is clean, engaging, credible, motivating and inspiring. Key features in


You must contact the creator of this project in order to gain access to it.
If you are the application owner check the logs for more information.


Home
Start
My Account
My Posts
My Friends Posts
My Friends
Search For Friends
Trending
Contact Us
Logout
My Posts Page
Add New Post
Username
text


Managed Beans in JavaServer Faces Technology
A typical JavaServer Faces application includes one or more managed beans, each of which can be associated with the components used in a particular page. This section introduces the basic concepts of creating, configuring, and using managed beans in an application.
Creating a Managed Bean
A managed bean is created with a constructor with no arguments, a set of properties, and a set of methods that perform functions for a component. Each of the managed bean properties can be bound to one of the following:
A component value
A component instance
A converter instance
A listener instance
A validator instance
The most common functions that managed bean methods perform include the following:
Validating a component’s data
Handling an event fired by a component
Performing processing to determine the next page to which the application must navigate
As with all JavaBeans components, a property consists of a private data field and a set of accessor methods, as shown by this code:
private Integer userNumber = null; ... public void setUserNumber(Integer user_number) { userNumber = user_number; } public Integer getUserNumber() { return userNumber; }
When bound to a component’s value, a bean property can be any of the basic primitive and numeric types or any Java object type for which the application has access to an appropriate converter. For example, a property can be of type Date if the application has access to a converter that can convert the Date type to a String and back again. See Writing Bean Properties for information on which types are accepted by which component tags.
When a bean property is bound to a component instance, the property’s type must be the same as the component object. For example, if a javax.faces.component.UISelectBoolean component is bound to the property, the property must accept and return a UISelectBoolean object. Likewise, if the property is bound to a converter, validator, or listener instance, the property must be of the appropriate converter, validator, or listener type.
For more information on writing beans and their properties, see Writing Bean Properties.
Using the EL to Reference Managed Beans
To bind component values and objects to managed bean properties or to reference managed bean methods from component tags, page authors use the Expression Language syntax. As explained in Overview of the EL, the following are some of the features that EL offers:
Deferred evaluation of expressions
The ability to use a value expression to both read and write data
Method expressions
Deferred evaluation of expressions is important because the JavaServer Faces lifecycle is split into several phases in which component event handling, data conversion and validation, and data propagation to external objects are all performed in an orderly fashion. The implementation must be able to delay the evaluation of expressions until the proper phase of the lifecycle has been reached. Therefore, the implementation’s tag attributes always use deferred-evaluation syntax, which is distinguished by the #{} delimiter.
To store data in external objects, almost all JavaServer Faces tag attributes use lvalue expressions, which are expressions that allow both getting and setting data on external objects.
Finally, some component tag attributes accept method expressions that reference methods that handle component events or validate or convert component data.
To illustrate a JavaServer Faces tag using the EL, the following tag references a method that validates user input:
<h:inputText id="inputGuess" value="#{userNumberBean.userNumber}" required="true" size="3" disabled="#{userNumberBean.number eq userNumberBean.userNumber}" validator="#{userNumberBean.validateNumberRange}"> </h:inputText>
This tag binds the inputGuess component’s value to the UserNumberBean.userNumber managed bean property by using an lvalue expression. The tag uses a method expression to refer to the UserNumberBean.validateNumberRange method, which performs validation of the component’s local value. The local value is whatever the user types into the field corresponding to this tag. This method is invoked when the expression is evaluated.
Nearly all JavaServer Faces tag attributes accept value expressions. In addition to referencing bean properties, value expressions can reference lists, maps, arrays, implicit objects, and resource bundles.
Another use of value expressions is to bind a component instance to a managed bean property. A page author does this by referencing the property from the binding attribute:
<h:outputLabel for="fanClub" rendered="false" binding="#{cashier.specialOfferText}"> <h:outputText id="fanClubLabel" value="#{bundle.DukeFanClub}"/> </h:outputLabel>
In addition to using expressions with the standard component tags, you can configure your custom component properties to accept expressions by creating javax.el.ValueExpression or javax.el.MethodExpression instances for them.
For information on the EL, see Chapter 6, Expression Language.
For information on referencing managed bean methods from component tags, see Referencing a Managed Bean Method.


Reinjection is where an existing instance, that may have been already created by PicoContainer, can have a method called to inject more dependancies.
Consider the following example of class that could benefit from reinjection:
public class ShoppingCart { private Store store; private User user; public ShoppingCart(Store store, User user) { this.store = store; this.user = user; } public boolean addItemTo(Make make, Model model, int quantity) { Cart cart = store.getCart(user); if (cart.contains(make, model)) { cart.on(make, model).increaseQuantity(quantity); } else { cart.addItem(make, model, quantity); } return true; } }
The class would be instantiated and have 'store' and 'user' satisfied via constructor injection. Later, perhaps corresponding to a web request, addItemTo could be invoked with relevant parameters. Indeed the addItemTo method could be called many times after instantiation.
And here is a fragment of Java showing reinjection in use:
MutablePicoContainer pico = new TransientPicoContainer(); pico.addComponent(ShoppingCart.class, myShoppingCartInstance); pico.addComponent(Make.class, myMake); // you are more likely to use providers that directly hard code values like this. pico.addComponent(Model.class, myModel); pico.addComponent(int.class, myQuantity); boolean result = (Boolean) new Reinjector(pico).reinject(ShoppingCart.class, "addItemTo");
In the above example, the PicoContainer instance (or one of its parents) can inject a Make, a Model and a quantity (int / Integer).
And here the same scenario this time leveraging parameter names:
MutablePicoContainer pico = new TransientPicoContainer(); pico.as(USE_NAMES).addComponent(ShoppingCart.class, myShoppingCartInstance); pico.addComponent("make", myMake); // you are more likely to use providers that directly hard code values like this. pico.addComponent("model", myModel); pico.addComponent("quantity", myQuantity); boolean result = (Boolean) new Reinjector(pico).reinject(ShoppingCart.class, "addItemTo");
The above would be most useful if you had ambiguous parameter types like 'addItemTo(String make, String model)'
For reinjection to work, you really need to know the exact method to be injected into. You indicate which method by a reflection method reference (not shown), or by method name (as above). In our case for the method name to work it should not be overloaded in the class. You could also rely on an @Inject annotation, but that only makes sense where there is one method in the class to be used in this way. If you are implicating a reinjection method by name (rather than reflection method reference), and there are more than one matching, then the last one invoked will have it's return value returned to the caller.
This is where reinjection is managed by a PicoContainer instance, rather than directly.
public class ShoppingCart { private List<Item> list = new ArrayList<Item>(); public void addItemTo(Make make, Model model, int quantity) { list.add(new Item(make, model, quantity)); } } ... // parent container has a ShoppingCart instance Method addItemToMethod = ShoppingCart.class.getMethods("addItemTo", Make.class, Model.class, int.class); PicoContainer pico = new TransientPicoContainer(new Reinjection(new MethodInjection(addItemToMethod), parent), parent); ShoppingCart cart = pico.getComponent(ShoppingCart.class);
The method addItemTo() is called during the getComponent() invocation. This works because the return type is void. A non-void type would cause getComponent() to fail with a class cast exception. If you have that component design need, you need to use the Reinjector directly.


Browse
About
Add a Cube
Add Accessory
Logout
Login
Register
Register Form
Username
Password
Re-Password


Import citations from BibTex (.bib) files, including files exported from Google Scholar.
More information on importing BibTeX files into ORCID{{ bibtexErrorParsingText }}
{{ work?.journalTitle?.value }}
{{ work?.publicationDate | monthDayYearDateToString }} | {{ work?.workType?.value }}


The graph was first created for the FiveThirtyEight article “Comic Books Are Still Made By Men, For Men And About Men” by Walt Hickey in October of 2014
This is the plot I will be reproducing:
Read in data set
dcdata <- read.csv("./data/dc-wikia-data.csv")
marveldata <- read.csv("./data/marvel-wikia-data.csv")
Load libraries needed
#combine data into a single data set
dcdata$type <- "DC"
marveldata$type <- "Marvel"
colnames(marveldata)[colnames(marveldata)=="Year"] <- "YEAR"
comicdata<-rbind(marveldata, dcdata)
#Want a total number of characters introduced each year for marvel and dc separately
labels <- c(DC="DC, New Earth continuity", Marvel="Marvel, Earth-616 continuity")
ggplot(comicdata) +
geom_bar(aes(x=YEAR, fill=type), width = 0.73) + scale_fill_manual(values=c("steelblue1", "orangered")) +
facet_grid(.~type, labeller = labeller(type=labels)) +
theme(strip.text.x = element_text(size=13, face="bold"),
strip.text.y = element_text(size=13, face="bold"),
strip.background = element_rect(fill = "grey93")) +
ggtitle("New Comic Book Characters Introduced Per Year") +
theme(plot.title = element_text(lineheight = .8, face="bold"),
axis.title.x = element_blank(),
axis.title.y = element_blank()) +
theme(plot.background = element_rect(fill="grey93"),
panel.grid.major = element_line(color="grey"),
panel.grid.minor = element_line(color="grey"),
legend.position = "none") +
geom_hline(yintercept = 0, color = "black")+
scale_y_continuous(breaks=seq(0,500,100)) +
scale_x_continuous(breaks=c(1940,1960,1980,2000),
labels=c("1940","'60","'80","2000")) +
theme(panel.grid.minor.y = element_blank(), panel.grid.minor.x = element_blank())
## Warning: Removed 884 rows containing non-finite values (stat_count).
I learned after the fact that fivethrityeight has its own theme that I could have (should have) used instead of recreating the theme by hand, but here we are!


{% extends "layout.html" %} {% block body %}
Error: {{ error }}{% endif %}
The following is a list of available metrics:
measures whether a user reached a given level of activity within a specific amount of time.
measures a user's retention. A user is considered as "retained" or "surviving" if they continue editing after a time since a reference event (typically: account registration time).
measures the rate of an editor's contributions during a given timespan
measures the quality of a user's contributions expressed as the proportion of reverted edits within a given amount of time
measures how long it takes for a user to reach a given level of activity
represents whether the user has been blocked within a given amount of time
measures the amount of content added, removed or modified by a user within a given amount of time
measures the breakdown of an editor's contribution by namespace
{% endblock %}


Download the firmware for your devices. You can read about installing the firmwares in the documentation.


Clash of Clans
War Farming
Want free & effortless Clash war loot?
Find and join an official war farming clan today!
Want free & effortless Clash war loot?
Find and join an official war farming clan today!
Most war farming clans are full of very active high-level players, which means that you are nearly guaranteed an active clan chat and good donations. Who knows, you might even make a few new friends!
All wars are started with 50 players, which means you will always be in war. New clans are constantly being added, so we will always have vacant spots.
Clan leaders are all familiar with the standard war base layout, so you will not face any surprises when collecting your free resources. An army that can 3-star one of our bases costs much less than a typical war army!
Click on the button below to find out how you can join an official war farming clan!


It was late spring in 1998. I was renting a college room alongside my friend Dan. Wadham College - my college - has done so much of what they call "growing organically" over the years that the room you might end up with during the third year of your degree is both metaphorically and literally something of a lottery.
Wadham's rooms are all odd shapes and sizes, and one localized genre of oddness is exemplified by a small court you can see through the window by the food counter in the King's Arms pub. The north and west sides of the court consist of floor-to-ceiling windows topped by sloping lead, with concrete walkways, leading elsewhere, as basically a flat roof. The east is part of the King's Arms; the south contains both that little window and a room for one of the college fellows. Between this room and the west windows is an entrance into the quad from the much larger lawn area. The concealed nature of the entrance lends a vague air of exclusivity to these five or six rooms.
Dan and I shared the north side of the court's quadrangle: he was luckier in the room ballot, and so got the larger of the two segments. Both our rooms had no access to toilet or shower without going outside, through our doors which led out into the north-west and north-east corners of the quad respectively. Even my room was enormous; and deep, so our rooms shared a long wall running underneath those concrete walkways, through which when we were experiencing typical student angst I would play Radiohead and he would respond with Beethoven, Fleetwood Mac or, for reasons I've never worked out, The Strawbs. But we would largely respect each other's acoustic privacy and the situation worked well.
The floor-to-ceiling windows - actually slightly higher than ceiling, as they led up to a kind of Escherish lightwell squeezed in above the height of the walkways - made the rooms far lighter than they deserved to be, given the much taller buildings opposite. The fellow's room had an extra storey above it - consisting of two rooms, one of which was coincidentally my own from my first year - and this ought to have blocked out the light. But instead sunlight blazed through these great, theatrical panes. The only real problem, which was rarely a problem, was that noise could do the same.
Usually the quad was incredibly quiet: no road noise, nobody passing through, few if any parties. This suited Dan and me just fine. Both of us were hard drinkers at the time, as students tend to be, but we both needed the guarantee of a quiet retreat. But on one night in particular our peace was shattered, our safe haven invaded by noise. It was in the term after some of my major exams, but before some of Dan's; also, it was shortly after the major rowing event of the term. An unholy racket was pouring out of the open sash windows of my quondam accommodation opposite, up above the tutor's room.
In principle, you needed college permission to have anything over some number or other of people in your room. But unofficial parties are generally tolerated in the college, as long as they don't go on too late or weren't too loud. This was both. Midnight, 1am, 2am rolled around, and at some point I stumbled out of bed and into the quad in whatever nightwear I had, only to be confronted by Dan doing the same thing.
We both exchanged bleary glares, then looked up at the windows, then back at each other. Dan said something dryly condemnatory, and I groaned in response. Either I've forgotten the dialogue, or most of our communication had turned nonverbal by that hour of night, almost to the level of a shared psychic ability. At one stage we both simultaneously had the thought of going to see the porters; but then in the face of the annoyance of getting fully dressed, then trekking through college and back, we both again dismissed the idea.
I think it was me that had the water balloons, and Dan that had the idea. It could have been the other way round, although as I was part of a silly university society at the time, that did lots of silly things, I can imagine them being in my desk drawer rather than Dan's. Certainly we shared another look, and suddenly felt that the golden yellow light streaming out of the two belligerently wide-open sash windows formed targets too tempting not to try to hit.
We filled two balloons in the sink in one of our rooms and came back into the quad. The noise was still going on, utterly oblivious to our scheming below. Each of us hefted his own balloon, testing its weight and imagining it in flight. "On a count of three?" said Dan, and I nodded. He counted:
"One."
"Two."
"Threegh!"
Together, we launched the balloons like shot-putts, each towards a window. Before they had even gone through the sash we were running, back towards our doors in the corners, back into our rooms, to lock up and lights-off and quickly go back to bed. But I could picture, and can still picture, those two projectiles, silhouetted by the rectangles of light they were heading inexorably towards. It's burned onto the screen inside my brain, looking for all the world like a transit of two planets across the face of two square suns, or even the picture on an inspirational poster with text underneath it saying "Mission accomplished!"
From inside my room I heard a couple of hoots, a confused shuffling, and then the music was switched off. Later on, there were voices in the quad; but nobody came to our doors. The next day one of our neighbours on the west side of the quad rather pointedly asked me and Dan about whether or not we'd heard anyone in the quad the night before. She was a rower, and a pretty, posh young thing, so it was suddenly clear to us that she'd been at the party, not tucked up in bed. But it didn't take much effort for both of us to reply in an utterly deadpan negative; after all, we hadn't had much sleep.
I'm not sure why I'm telling this story now.  But I do feel privileged to have been there, to have seen the story be born. I told Kate about it recently and she laughed at it, and was just as impressed as I was, at a cinematic event that seemed to have happened despite the interference of Dan's and my usual comic ineptness.
The story has its own life, sustained by those that experienced it and know what happened; maybe that's why I want to share this little bit of joy that I've only recently rediscovered: because there's suddenly only me left to sustain it. I don't want it to belong to just me any more, so now it belongs to everyone else who reads it.
Some of those crazy student days, Dan would shuffle over to my room like an itinerant. He'd occasionally find the door unlocked, or one of my windows open enough for him to squeeze through, and he'd break in to mess around with the contents of my desk. He would scribble on erasers, rearrange papers and confuse the hell out of me.  I can't bring myself to use it to rub anything out, and instead just put it back in the box.


"""
This code is from allenai/allennlp
(https://github.com/allenai/allennlp/blob/master/allennlp/modules/scalar_mix.py)
"""
from typing import List
import torch
from torch.nn import ParameterList, Parameter
[docs]class ScalarMix(torch.nn.Module): # pragma: no cover
"""
Computes a parameterised scalar mixture of N tensors, ``mixture = gamma * sum(s_k * tensor_k)``
where ``s = softmax(w)``, with ``w`` and ``gamma`` scalar parameters.
In addition, if ``do_layer_norm=True`` then apply layer normalization to each tensor
before weighting.
"""
def __init__(
self,
mixture_size: int,
do_layer_norm: bool = False,
initial_scalar_parameters: List[float] = None,
trainable: bool = True,
) -> None:
super(ScalarMix, self).__init__()
self.mixture_size = mixture_size
self.do_layer_norm = do_layer_norm
if initial_scalar_parameters is None:
initial_scalar_parameters = [0.0] * mixture_size
elif len(initial_scalar_parameters) != mixture_size:
raise ValueError(
"Length of initial_scalar_parameters {} differs "
"from mixture_size {}".format(initial_scalar_parameters, mixture_size)
)
self.scalar_parameters = ParameterList(
[
Parameter(
torch.FloatTensor([initial_scalar_parameters[i]]), requires_grad=trainable
)
for i in range(mixture_size)
]
)
self.gamma = Parameter(torch.FloatTensor([1.0]), requires_grad=trainable)
[docs] def forward(
self,
tensors: List[torch.Tensor], # pylint: disable=arguments-differ
mask: torch.Tensor = None,
) -> torch.Tensor:
"""
Compute a weighted average of the ``tensors``. The input tensors an be any shape
with at least two dimensions, but must all be the same shape.
When ``do_layer_norm=True``, the ``mask`` is required input. If the ``tensors`` are
dimensioned ``(dim_0, ..., dim_{n-1}, dim_n)``, then the ``mask`` is dimensioned
``(dim_0, ..., dim_{n-1})``, as in the typical case with ``tensors`` of shape
``(batch_size, timesteps, dim)`` and ``mask`` of shape ``(batch_size, timesteps)``.
When ``do_layer_norm=False`` the ``mask`` is ignored.
"""
if len(tensors) != self.mixture_size:
raise ValueError(
"{} tensors were passed, but the module was initialized to "
"mix {} tensors.".format(len(tensors), self.mixture_size)
)
def _do_layer_norm(tensor, broadcast_mask, num_elements_not_masked):
tensor_masked = tensor * broadcast_mask
mean = torch.sum(tensor_masked) / num_elements_not_masked
variance = (
torch.sum(((tensor_masked - mean) * broadcast_mask) ** 2) / num_elements_not_masked
)
return (tensor - mean) / torch.sqrt(variance + 1E-12)
normed_weights = torch.nn.functional.softmax(
torch.cat([parameter for parameter in self.scalar_parameters]), dim=0
)
normed_weights = torch.split(normed_weights, split_size_or_sections=1)
if not self.do_layer_norm:
pieces = []
for weight, tensor in zip(normed_weights, tensors):
pieces.append(weight * tensor)
return self.gamma * sum(pieces)
else:
mask_float = mask.float()
broadcast_mask = mask_float.unsqueeze(-1)
input_dim = tensors[0].size(-1)
num_elements_not_masked = torch.sum(mask_float) * input_dim
pieces = []
for weight, tensor in zip(normed_weights, tensors):
pieces.append(
weight * _do_layer_norm(tensor, broadcast_mask, num_elements_not_masked)
)
return self.gamma * sum(pieces)


A11YUI
Patterns
Dropdown
Form
Modal
Speaker
Speaker
Type to filter names
HTML
JS
Requirements
User initiates some action that displays the modal.


This is a the "viewer" page
where we read our book, and highlight
At Oxford Languages, we are committed to an evidence-based approach to creating dictionaries in order to provide the most accurate picture of a language.
Our dictionaries are based on analysis of genuine uses of words collected from real-life sources to determine a word’s definition, spelling, and grammatical behaviour, and to offer guidance on a word’s use based on this research.
This evidence-based approach to creating a dictionary is known as descriptive lexicography. All of our dictionaries describe the way laguages are and have been used by people around the world, rather than attempting to prescribe the way a language should be used.
We apply stringent quality checks to all dictionaries produced or acquired by our expert team so our users can feel confident in our ability to accurately and meaningfully represent each language.


My Courses
Sort Courses
Sort Reverse Courses
Sort alphabetically Courses
Sort Alphabetically Reverse Courses


There are a few reasons why the owl might fly away.
| Click the options button | |
| Click OWLS Word Games Enhancer requires new permissions | |
| Click Review permissions | |
| Click Re-enable |
To update your extension after it has been published, use the following steps.
The dictionary look-up done by Google is sometimes unable to find a definition for obscure words. When this happens, references to the word on other websites will be the only results displayed.
This is to allow retrieval of game data for Lexulous and Wordscraper
This is to allow retrieval of game data for Scrabble
This facilitates integration with The Facebook Scrabble League
This allows the OWL to know when to appear based on the URL in the current tab.
Yes, but your notes will only be saved on the computer where you wrote them.


[t]Hello[/t] {$name},
[t]There is a new reaction on article[/t] "{$a.title|escape}":
| [t]Subject[/t]: | {$rea.subject|escape} |
| [t]Date, time[/t]: | {$rea.ts_entered|escape} |
| [t]Website[/t]: | {$website} |
[t]If you don't want to receive further reactions by email, please click on the unsubscribe link[/t]: [t]unsubscribe[/t]


Repos Search
Number of documents in svnhead index
core stats
Documents indexed without contents due to parse errors
search for text_error:*
Find object by
MD5
:
Find object by
SHA-1
:
Solr


About Assertions−3
I mentioned a situation, where we need to repeat fix, run, fix run… steps. It happens when we want to make sure multiple conditions are satisfied at the same time in a single test run.
public class MultiConditions { @Test public void multiConditions() { String firstName = "Gaius"; String lastName = "Caesar"; String helloMessage = composeHelloMessageInEnglish(firstName, lastName); assertThat(helloMessage, containsString("Hello")); assertThat(helloMessage, containsString("Gaius")); assertThat(helloMessage, containsString("CAESAR")); } } Let’s suppose that we introduced bugs in the method composeHelloMessageInEnglish(String,String), where we inserted "Howdy", instead of "Hello" and at the same time, we forgot making family name all upper cases despite its specification of the function.


---
title: "View Film 4 Logo
Gif"
description: "The companys initial names were;channel four filmsorfilm 4 international."
date: "2020-11-11"
categories:
- "Logo"
images:
- "https://storage.googleapis.com/ff-storage-p01/festivals/logos/000/048/603/large/logo.jpg?1559648354"
featuredImage: "https://static.wikia.nocookie.net/logopedia/images/d/d0/Channel_Four_Films_1996.svg/revision/latest/scale-to-width-down/340?cb=20200918170912"
featured_image: "https://domtaglialavorea2.files.wordpress.com/2012/03/3.jpg"
image: "https://themovielot.co.uk/wp-content/uploads/2019/02/Film-4.jpg"
---
View Film 4 Logo
Gif. The logo was modified in 2003 but the 1999 channel 4 logo was removed and the colours inverted. Great films you know, great films you don't.
Phase 4 films logo history подробнее. Thx to all share tv and movie studios logo here and if you need some lost to. ✓ free for commercial use ✓ high quality images.
Channel four television corporation is responsible for this page.
The fifth logo of filmfour aka film4 productions. Design free film logos instantly. Channel four logo history подробнее. It was launched on 1 november 1998.


Join us in helping
100 Million Students
on Google Cloud
To Find
Progressive Jobs & Services
WorldWide
24 / 7
coming soon
-
1. free world OS 101
2. free world OS Installation
3. free world Operation
-
Transforming your Mobile
into a
world web Processor
Transform your Social Network
into your own
Global Outsourcing Engine


|
Totally Not Mario 2D!
1.0
LCOM 2020/2021 T08G01
|
Functions | |
| int() | timer_set_frequency (uint8_t timer, uint32_t freq) |
| int() | timer_subscribe_int (uint8_t *bit_no) |
| int() | timer_unsubscribe_int () |
| void() | timer_int_handler () |
| int() | timer_get_conf (uint8_t timer, uint8_t *st) |
| int() | timer_display_conf (uint8_t timer, uint8_t st, enum timer_status_field field) |
Variables | |
| int | hook_id = 0 |
| unsigned int | timer_no_calls = 0 |
| int() timer_display_conf | ( | uint8_t | timer, |
| uint8_t | st, | ||
| enum timer_status_field | field | ||
| ) |
| int() timer_get_conf | ( | uint8_t | timer, |
| uint8_t * | st | ||
| ) |
| void() timer_int_handler | ( | ) |
| int() timer_set_frequency | ( | uint8_t | timer, |
| uint32_t | freq | ||
| ) |
| int() timer_subscribe_int | ( | uint8_t * | bit_no | ) |
| int() timer_unsubscribe_int | ( | ) |
| int hook_id = 0 |


--- layout: base title: Calendar lang: en ---
This is an overview of all meetups of the OK labs in the different cities.


JoyNews journalists win big at the 24th GJA Awards
Four JoyNews Journalists emerged winners in various categories at the 24th Ghana Journalist Association Awards held at Kempinski Gold Coast Hotel, Accra.
Saturday’s event which climaxed the 70th Anniversary celebrations of the GJA also crowned JoyNews’ Ina Thalia Quansah “Komla Dumor Most Promising Young Journalist of the Year 2018”.
Her colleague Seth Kwame Boateng won “Best Human Rights Reporter and Best in Features (TV).”
The others are Justice Baidoo and Beryl Ernestina Richter. They won “Best Telecommunication (Electronic) and Best Health Reporter (TV)” respectively.
These journalists emerged topmost in their categories from 368 entries spanning the various competitive categories, including News Reporting, Sports, Education and Features.
The awards which adjudged Ms Doreen Hammond, the Editor of Junior Graphic, Best Journalist of the Year 2018, “provide a platform to recognize individuals and companies that play a significant role in the growth and development of the industry.”
Other winners include;
Nana Konadu Agyeman (Daily Graphic) - Best Transport and Road Safety Reporter (Print)
Moses Dotse Aklorbortu (Graphic Business) - Best Oil and Gas Reporter
Janet Abena Quainoo (GTV) - Best Rural Reporter (Electronic)
Kwaku Osei Bonsu (GNA) - Winner of Dr G.T. Anim Award for Ethics in Journalism
Kabu Nartey (GIJ) - Best Student Journalist
Samuel A. Akapule (Ghanaian Times) - Best Rural Reporter
Prosper Kuorsoh (GNA) - Best Agric Reporter (Print)
Portia Gabor (TV3) - Best Transport Ans Road Safety (Electronic)
Peter Quao Adator (TV3) - Best Sports Reporter (Electronic)
Nabil Ahmed Rufai (GHOne TV) - Best Education Reporter (Electronic)
Portia Gabor (TV3) - Best Female Journalist
Maclean Kwofi (Graphic Business) - Best Maritme Reporter (Print)
Kofi Amoah (TV Africa) - Best Reporter in Disability
Kingsley Hope (Ghanaian Times) - Best Sports Reporter (Print)
Kester Aburam Kuranchie (Graphic Business) - Best Investigative Reporter
John Vigah (Ghanaian Times) - Best Feature Writer (Print)
Ibrahim Oppong Boateng (GTV) - Best Court and Crime Reporter
Grace Nana Esi (Oman FM) - Best Maritime Reporter (Electronic)
Geoffrey Buta (The Spectator) - Best Photo Journalist
Evelyn Tengmaa (TV3) - Best Political Reporter
Edmund Smith-Asante (Daily Graphic) - Best Tourism Reporter (Print)
Doreen Hammond (Daily Graphic) - Best Columnist
Charles Andoh (The Mirror) - Best Education Reporter (Print)
Charles Benoni Okine (Graphic Business) - Best Telecommunication (Print)
Clara Mlano (GTV) - Best Reporter in Illegal Mining (Galamsey)
Adu Gyamfi Marfo (Kingdom FM) - Child Protection and Participation (Radio)
Anim Addo (UTV) - Best Agric Reporter (TV)
Albert Futukpor (GNA) Best Water, Sanitation and Hygiene Reporter (Online)
Albert Oppong Andah (GNA) - Best Environment Reporter (Electronic)
Alberto Mario Noretti (Ghanaian Times) - Best Small and Medium Scale Reporter (Print)
A.B. Kafui Kanyi (GNA) - Best Child Protection and Participation (Electronic)
Abigail Annor (Ghanaian Times) - Best News Reporter (Print)
Alice Aryeetey (GHOne TV) -
Alice Aryeetey (GHOne TV) - Best TV News Reporter
Citi Breakfast Show - Best Morning Show (English)
Peace FM’s Kookrokoo - Best Morning Show (Akan)
Citi FM - Best Radio Station (English)
Peace FM - Best Radio Station (Akan)
TV3’s New Day - Best Television Morning Show (English)
GHOne TV - Best Television Station (English)
UTV - Best Television Station (Akan)
GTV - Best Democracy and Peace Building Television Station
GTV - Best Radio and TV Programme in Ga, Ewe
UTV’s Heritage Ghana - Best TV Programme in Akan
Di Asa on Atinka TV - Best Arts and Entertainment Programme
GNA - Best Online News
Daily Graphic - Best Newspaper


Logo
Chloe
Home
Chloe Grace Moretz
Update Info
View Activity
Intro
Update Info
Photos
Friends
TIMELINE
ABOUT
FRIENDS
PHOTOS
Chloe Grace Moretz
shared a
link
.
Feb 19 at 10:35am via Instagram
1
John Doe
11:09 AM
Herro funny meme good stuff
Herro funny meme good stuff


|
SuperLU 6.0.0
|
Sparse BLAS 2, using some dense BLAS 2 operations. More...
#include "slu_zdefs.h"
Functions | |
| int | sp_ztrsv (char *uplo, char *trans, char *diag, SuperMatrix *L, SuperMatrix *U, doublecomplex *x, SuperLUStat_t *stat, int *info) |
| Solves one of the systems of equations A*x = b, or A'*x = b. More... | |
| int | sp_zgemv (char *trans, doublecomplex alpha, SuperMatrix *A, doublecomplex *x, int incx, doublecomplex beta, doublecomplex *y, int incy) |
| Performs one of the matrix-vector operations y := alpha*A*x + beta*y, or y := alpha*A'*x + beta*y. More... | |
Copyright (c) 2003, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from U.S. Dept. of Energy)
All rights reserved.
The source code is distributed under BSD license, see the file License.txt at the top-level directory.
-- SuperLU routine (version 5.1) -- Univ. of California Berkeley, Xerox Palo Alto Research Center, and Lawrence Berkeley National Lab. October 15, 2003 Last update: December 3, 2015
| int sp_zgemv | ( | char * | trans, |
| doublecomplex | alpha, | ||
| SuperMatrix * | A, | ||
| doublecomplex * | x, | ||
| int | incx, | ||
| doublecomplex | beta, | ||
| doublecomplex * | y, | ||
| int | incy | ||
| ) |
Purpose ======= sp_zgemv() performs one of the matrix-vector operations y := alpha*A*x + beta*y, or y := alpha*A'*x + beta*y, where alpha and beta are scalars, x and y are vectors and A is a sparse A->nrow by A->ncol matrix. Parameters ========== TRANS - (input) char* On entry, TRANS specifies the operation to be performed as follows: TRANS = 'N' or 'n' y := alpha*A*x + beta*y. TRANS = 'T' or 't' y := alpha*A'*x + beta*y. TRANS = 'C' or 'c' y := alpha*A^H*x + beta*y. ALPHA - (input) doublecomplex On entry, ALPHA specifies the scalar alpha. A - (input) SuperMatrix* Before entry, the leading m by n part of the array A must contain the matrix of coefficients. X - (input) doublecomplex*, array of DIMENSION at least ( 1 + ( n - 1 )*abs( INCX ) ) when TRANS = 'N' or 'n' and at least ( 1 + ( m - 1 )*abs( INCX ) ) otherwise. Before entry, the incremented array X must contain the vector x. INCX - (input) int On entry, INCX specifies the increment for the elements of X. INCX must not be zero. BETA - (input) doublecomplex On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input. Y - (output) doublecomplex*, array of DIMENSION at least ( 1 + ( m - 1 )*abs( INCY ) ) when TRANS = 'N' or 'n' and at least ( 1 + ( n - 1 )*abs( INCY ) ) otherwise. Before entry with BETA non-zero, the incremented array Y must contain the vector y. On exit, Y is overwritten by the updated vector y. INCY - (input) int On entry, INCY specifies the increment for the elements of Y. INCY must not be zero. ==== Sparse Level 2 Blas routine.
| int sp_ztrsv | ( | char * | uplo, |
| char * | trans, | ||
| char * | diag, | ||
| SuperMatrix * | L, | ||
| SuperMatrix * | U, | ||
| doublecomplex * | x, | ||
| SuperLUStat_t * | stat, | ||
| int * | info | ||
| ) |
Purpose ======= sp_ztrsv() solves one of the systems of equations A*x = b, or A'*x = b, where b and x are n element vectors and A is a sparse unit , or non-unit, upper or lower triangular matrix. No test for singularity or near-singularity is included in this routine. Such tests must be performed before calling this routine. Parameters ========== uplo - (input) char* On entry, uplo specifies whether the matrix is an upper or lower triangular matrix as follows: uplo = 'U' or 'u' A is an upper triangular matrix. uplo = 'L' or 'l' A is a lower triangular matrix. trans - (input) char* On entry, trans specifies the equations to be solved as follows: trans = 'N' or 'n' A*x = b. trans = 'T' or 't' A'*x = b. trans = 'C' or 'c' A^H*x = b. diag - (input) char* On entry, diag specifies whether or not A is unit triangular as follows: diag = 'U' or 'u' A is assumed to be unit triangular. diag = 'N' or 'n' A is not assumed to be unit triangular. L - (input) SuperMatrix* The factor L from the factorization Pr*A*Pc=L*U. Use compressed row subscripts storage for supernodes, i.e., L has types: Stype = SC, Dtype = SLU_Z, Mtype = TRLU. U - (input) SuperMatrix* The factor U from the factorization Pr*A*Pc=L*U. U has types: Stype = NC, Dtype = SLU_Z, Mtype = TRU. x - (input/output) doublecomplex* Before entry, the incremented array X must contain the n element right-hand side vector b. On exit, X is overwritten with the solution vector x. info - (output) int* If *info = -i, the i-th argument had an illegal value.